diff --git a/src/js/view_models/components/map/MapPictureInPictureComponent.js b/src/js/view_models/components/map/MapPictureInPictureComponent.js index 3d0199f2..9423769a 100644 --- a/src/js/view_models/components/map/MapPictureInPictureComponent.js +++ b/src/js/view_models/components/map/MapPictureInPictureComponent.js @@ -6,6 +6,15 @@ import {MapTerrainAmbitComponent} from "./MapTerrainAmbitComponent"; import {MapStructLayerComponent} from "./MapStructLayerComponent"; import {AttackSequenceAnimationUtil} from "../../../util/AttackSequenceAnimationUtil"; +/** + * Upper-bound, in milliseconds, on how long to wait for a slide-out + * `transitionend` before forcing the post-slide-out work to proceed. The CSS + * transition is 500ms; the extra buffer covers timing jitter and the cases + * where `transitionend` doesn't fire (e.g. when transitioning to/from `auto`, + * or when another class change cancels the in-flight transition). + */ +const SLIDE_OUT_FALLBACK_MS = 750; + /** * A 128x128 picture-in-picture overlay that mirrors the currently-animating * attack-sequence struct when its tile is fully off-screen. @@ -103,6 +112,32 @@ export class MapPictureInPictureComponent extends AbstractViewModelComponent { */ this.pendingHide = false; + /** + * Render request that will be applied after the current PIP has slid + * out. Used to sequence "slide current struct out -> swap contents -> + * slide new struct in" when an attack-sequence event targets a struct + * other than the one the PIP is currently mirroring. + * + * @type {{structId: string, tileElement: HTMLElement, animationEvent: AnimationEvent}|null} + */ + this.pendingRender = null; + + /** + * `transitionend` handler attached to the PIP container while a + * slide-out is in flight. Tracked so it can be removed exactly once. + * + * @type {EventListener|null} + */ + this.slideOutHandler = null; + + /** + * Fallback `setTimeout` id ensuring slide-out post-work runs even if + * `transitionend` is skipped or cancelled. + * + * @type {number|null} + */ + this.slideOutTimeout = null; + /** @type {Array<{target: EventTarget, event: string, handler: EventListener}>} */ this.windowEventHandlers = []; } @@ -197,9 +232,11 @@ export class MapPictureInPictureComponent extends AbstractViewModelComponent { /** * Tear down the currently-rendered struct viewer (if any) and clear all PIP * markup. Used when transitioning to a new active struct or when destroying - * the PIP entirely. + * the PIP entirely. Always called only once the PIP is already parked + * off-screen (so the cleanup doesn't visibly snap the element). */ clearPipContents() { + this.detachSlideOutListener(); if (this.activeViewer) { this.activeViewer.onAnimationsComplete = null; this.activeViewer.destroy(); @@ -213,32 +250,164 @@ export class MapPictureInPictureComponent extends AbstractViewModelComponent { this.activeStructId = null; this.viewerActive = false; this.pendingHide = false; + this.pendingRender = null; } /** - * The PIP viewer's lottie animation reached its final frame. If a hide has - * been requested in the meantime (queue empty / next event non-attack), tear - * the PIP down now. + * The PIP viewer's lottie animation reached its final frame. If a swap or + * hide is pending, this is the moment to begin the slide-out: it keeps the + * exit visually anchored to "the end of the animation" rather than to "the + * moment the next attack-sequence event was dispatched" (which can happen + * mid-animation when the on-map and PIP viewers are out of sync). */ handleViewerAnimationsComplete() { this.viewerActive = false; - if (this.pendingHide) { - this.clearPipContents(); + if (this.pendingHide || this.pendingRender) { + this.beginSlideOut(); } } /** - * Mark the PIP for hide. If the viewer is mid-animation, the actual hide - * is deferred until `handleViewerAnimationsComplete` fires; otherwise we - * hide immediately. + * Mark the PIP for hide. If the viewer is still mid-animation, the + * slide-out is deferred until `handleViewerAnimationsComplete` fires. + * Otherwise the slide-out begins immediately and `clearPipContents` runs + * when the CSS transition completes. */ requestHide() { this.pendingHide = true; - if (!this.viewerActive) { + this.pendingRender = null; + if (this.viewerActive) { + return; + } + this.beginSlideOut(); + } + + /** + * Begin sliding the PIP out of the viewport by removing `mod-visible`, + * which lets the CSS transition the active side anchor back to its + * off-screen rest position. The completion handler runs from + * `transitionend` (or the fallback timer) and decides whether to clear + * the PIP or render the pending struct. + */ + beginSlideOut() { + const container = this.getContainer(); + if (!container) { + this.handleSlideOutComplete(); + return; + } + if (this.slideOutHandler) { + // A slide-out is already in flight; its completion handler will pick + // up the latest `pendingHide` / `pendingRender` state. + return; + } + if (!container.classList.contains('mod-visible')) { + // PIP is already off-screen (e.g. the user scrolled the active + // struct's tile back into view, or the PIP never became visible), + // so no transition will fire. Skip straight to the post-work. + this.handleSlideOutComplete(); + return; + } + this.attachSlideOutListener(container); + container.classList.remove('mod-visible'); + } + + /** + * Attach a one-shot `transitionend` listener to the PIP container plus a + * fallback `setTimeout`. Whichever fires first wins; the other is cleared + * in `detachSlideOutListener`. + * + * @param {HTMLElement} container + */ + attachSlideOutListener(container) { + this.detachSlideOutListener(); + + const handler = (e) => { + // Ignore bubbled transitions from child elements and from properties + // other than the slide axes; only `left`/`right` move the PIP. + if (e.target !== container) { + return; + } + if (e.propertyName !== 'left' && e.propertyName !== 'right') { + return; + } + this.detachSlideOutListener(); + this.handleSlideOutComplete(); + }; + this.slideOutHandler = handler; + container.addEventListener('transitionend', handler); + + this.slideOutTimeout = setTimeout(() => { + if (this.slideOutHandler) { + this.detachSlideOutListener(); + this.handleSlideOutComplete(); + } + }, SLIDE_OUT_FALLBACK_MS); + } + + detachSlideOutListener() { + const container = this.getContainer(); + if (container && this.slideOutHandler) { + container.removeEventListener('transitionend', this.slideOutHandler); + } + this.slideOutHandler = null; + if (this.slideOutTimeout !== null) { + clearTimeout(this.slideOutTimeout); + this.slideOutTimeout = null; + } + } + + /** + * Slide-out has finished. Apply whichever post-work the current state + * implies: clear (hide pending) or render-then-slide-in (swap pending). + * If both are set the hide wins, matching the user-facing semantics that + * "no continuation" always trumps a queued swap. + */ + handleSlideOutComplete() { + if (this.pendingHide) { + this.pendingHide = false; + this.pendingRender = null; this.clearPipContents(); + return; + } + if (this.pendingRender) { + const next = this.pendingRender; + this.pendingRender = null; + const rendered = this.renderForStruct( + next.structId, + next.tileElement, + next.animationEvent + ); + if (rendered) { + this.slideIn(); + } else { + this.clearPipContents(); + } } } + /** + * Force a layout flush so the browser commits the (just-swapped) side + * class's off-screen anchor before `mod-visible` is added, then delegate + * to `updateVisibility` to add `mod-visible` if (and only if) the active + * struct's tile is fully off the user's viewport. + * + * Without the reflow, the browser would batch the side-class swap with + * the subsequent `mod-visible` add, see only the final on-screen anchor, + * and skip the slide-in transition entirely. + */ + slideIn() { + const container = this.getContainer(); + if (!container) { + return; + } + // Reading `offsetWidth` forces a synchronous layout, committing the + // off-screen state established by `renderForStruct` so the subsequent + // `mod-visible` add actually animates `left`/`right`. + // eslint-disable-next-line no-unused-expressions + container.offsetWidth; + this.updateVisibility(); + } + /** * Render the PIP contents for the active struct and autoplay the given * animation in the embedded viewer. @@ -284,9 +453,15 @@ export class MapPictureInPictureComponent extends AbstractViewModelComponent { const markerHTML = this.mapTileMarkers.getCellMarker(ambit, tilePos.rowIndex, tilePos.colIndex) || ''; container.innerHTML = ` - ${terrainTileHTML} - ${markerHTML} -
+
+
+ ${terrainTileHTML} + ${markerHTML} +
+
+
+
+
`; container.classList.remove('mod-side-left', 'mod-side-right'); container.classList.add(side === 'right' ? 'mod-side-right' : 'mod-side-left'); @@ -315,8 +490,14 @@ export class MapPictureInPictureComponent extends AbstractViewModelComponent { /** * Update the PIP's visibility class based on whether the active struct's * tile is fully off-screen. Called on animation events, scroll, and resize. + * + * Skipped while a slide-out for a pending swap or hide is in progress so + * the in-flight transition isn't clobbered by an unrelated scroll/resize. */ updateVisibility() { + if (this.pendingRender || this.pendingHide) { + return; + } const container = this.getContainer(); if (!container) { return; @@ -336,12 +517,15 @@ export class MapPictureInPictureComponent extends AbstractViewModelComponent { /** * Handle an incoming `EVENTS.ANIMATION` event: * - ignore events for other maps - * - if the animation is part of an attack sequence: re-render the PIP for - * the event's struct, replay the animation in muted mode, and update - * visibility - * - if the animation is not part of an attack sequence: the attack - * sequence has ended on our map, so request a hide (deferred until the - * PIP's current animation finishes playing) + * - non-attack-sequence: request the PIP slide out and clear + * - empty PIP: render the new struct and slide it in + * - same struct (e.g. counter-attack chaining additional animations on + * the struct the PIP is already mirroring): re-render contents in + * place; the PIP stays on its current side and visibility is unchanged + * - different struct: queue the new render and slide the current struct + * out first; the new render and slide-in happen in + * `handleSlideOutComplete` once the transition (and, if it was still + * playing, the PIP's current animation) has finished * * @param {AnimationEvent|Event} event */ @@ -355,7 +539,7 @@ export class MapPictureInPictureComponent extends AbstractViewModelComponent { } if (!AttackSequenceAnimationUtil.includesAttackSequenceAnimation(event.animationNames || [])) { - if (this.activeStructId) { + if (this.activeStructId || this.pendingRender) { this.requestHide(); } return; @@ -366,18 +550,38 @@ export class MapPictureInPictureComponent extends AbstractViewModelComponent { return; } - const rendered = this.renderForStruct(event.structId, tileElement, event); - if (!rendered) { + if (!this.activeStructId) { + const rendered = this.renderForStruct(event.structId, tileElement, event); + if (rendered) { + this.slideIn(); + } return; } - this.updateVisibility(); + if (this.activeStructId === event.structId) { + this.renderForStruct(event.structId, tileElement, event); + return; + } + + this.pendingRender = { + structId: event.structId, + tileElement: tileElement, + animationEvent: event, + }; + this.pendingHide = false; + if (this.viewerActive) { + // Wait for the PIP's current animation to finish first; + // `handleViewerAnimationsComplete` will kick off the slide-out. + return; + } + this.beginSlideOut(); } /** * The global `AnimationEventQueue` just transitioned to idle. If the PIP * is still tracking a struct, request a hide; the actual hide is deferred - * until the PIP's current animation finishes playing. + * until the PIP's current animation finishes playing and then a slide-out + * is performed. */ handleAnimationQueueEmpty() { if (this.activeStructId) { @@ -410,6 +614,7 @@ export class MapPictureInPictureComponent extends AbstractViewModelComponent { * `MapComponent` can decide whether to remove it. */ destroy() { + this.detachSlideOutListener(); for (let i = 0; i < this.windowEventHandlers.length; i++) { const {target, event, handler} = this.windowEventHandlers[i]; target.removeEventListener(event, handler); diff --git a/src/public/css/main.css b/src/public/css/main.css index b8b90e17..6ef5e4da 100644 --- a/src/public/css/main.css +++ b/src/public/css/main.css @@ -636,25 +636,109 @@ a.sui-text-secondary:hover { width: var(--tile-width); height: var(--tile-height); z-index: var(--picture-in-picture-z-index); - display: none; - overflow: hidden; - box-sizing: border-box; -} - -.map-pip.mod-visible { display: block; + visibility: hidden; + transition: left 0.5s ease-in-out, right 0.5s ease-in-out; } +/* + * Each side class anchors the PIP's "off-screen rest" position on that side. + * `mod-visible` is the on-screen anchor and only takes effect in combination + * with a side class. Sliding is driven by JS adding/removing `mod-visible` + * while the side class stays put (the side class is only swapped while the + * PIP is parked off-screen, so the `left`/`right` jumps that come from + * swapping sides are never visible). + */ .map-pip.mod-side-left { - left: 26px; - border: 1px solid var(--border-focus-friendly-dark); + visibility: visible; + left: -200px; + right: auto; } .map-pip.mod-side-right { + visibility: visible; + left: auto; + right: -200px; +} + +.map-pip.mod-side-left.mod-visible { + left: 26px; +} + +.map-pip.mod-side-right.mod-visible { right: 26px; +} + +.map-pip-mask { + position: absolute; + top: 0; + left: 0; + display: flex; + box-sizing: border-box; + width: 118px; + height: 118px; + border-radius: 8px 8px; + margin: 5px 5px; + overflow: hidden; + align-items: center; + justify-content: center; +} + +.map-pip.mod-side-left .map-pip-mask { + border: 1px solid var(--border-focus-friendly-dark); +} + +.map-pip.mod-side-right .map-pip-mask { border: 1px solid var(--border-focus-enemy-dark); } +.map-pip-focus { + position: relative; + z-index: 10; + display: flex; + width: var(--tile-width); + height: var(--tile-height); +} + +.map-pip.mod-side-left .map-pip-focus { + background: url("/img/focus/focus-friendly.png") no-repeat center; +} + +.map-pip-caret-container { + position: absolute; + top: 0; + left: 0; + display: flex; + width: 100%; + height: 100%; + flex-direction: column; + align-items: center; + justify-content: center; +} + +.map-pip.mod-side-right .map-pip-focus { + background: url("/img/focus/focus-enemy.png") no-repeat center; +} + +.map-pip-caret-container .map-pip-caret { + position: relative; + display: inline-block; + width: 12px; + height: 36px; +} + +.map-pip.mod-side-left .map-pip-caret-container .map-pip-caret { + left: -71px; + background: url("/img/focus/focus-caret-friendly.png") no-repeat center/cover; +} + +.map-pip.mod-side-right .map-pip-caret-container .map-pip-caret { + left: 71px; + background: url("/img/focus/focus-caret-enemy.png") no-repeat center/cover; + transform: scaleX(-1); +} + + /* * Terrain tiles and markers ship from their owning components with * map-relative positioning (terrain has none, markers use inline top/left @@ -2179,29 +2263,6 @@ a.offcanvas-struct-container.sui-mod-disabled { /* Media Queries Start */ -.map-pip { - position: fixed; - top: calc(50vh - 64px); - top: calc(50dvh - 64px); - width: var(--tile-width); - height: var(--tile-height); - z-index: var(--picture-in-picture-z-index); - display: none; - overflow: hidden; - box-sizing: border-box; -} - - -.map-pip.mod-side-left { - left: 26px; - border: 1px solid var(--border-focus-friendly-dark); -} - -.map-pip.mod-side-right { - right: 26px; - border: 1px solid var(--border-focus-enemy-dark); -} - @media only screen and (min-width: 1152px), only screen and (min-height: 1024px) { #menu-page-layout, @@ -2251,14 +2312,22 @@ only screen and (min-height: 1024px) { } .map-pip.mod-side-left { - left: 52px; + left: -400px; border-width: 2px; } .map-pip.mod-side-right { - right: 52px; + right: -400px; border-width: 2px; } + + .map-pip.mod-side-left.mod-visible { + left: 52px; + } + + .map-pip.mod-side-right.mod-visible { + right: 52px; + } } @media only screen and (min-width: 2304px), only screen and (min-height: 2048px) { @@ -2308,14 +2377,22 @@ only screen and (min-height: 2048px) { } .map-pip.mod-side-left { - left: 104px; + left: -800px; border-width: 4px; } .map-pip.mod-side-right { - right: 104px; + right: -800px; border-width: 4px; } + + .map-pip.mod-side-left.mod-visible { + left: 104px; + } + + .map-pip.mod-side-right.mod-visible { + right: 104px; + } } /* Media Queries End */ \ No newline at end of file diff --git a/src/public/img/focus/focus-caret-enemy.png b/src/public/img/focus/focus-caret-enemy.png new file mode 100644 index 00000000..b3441d94 Binary files /dev/null and b/src/public/img/focus/focus-caret-enemy.png differ diff --git a/src/public/img/focus/focus-caret-friendly.png b/src/public/img/focus/focus-caret-friendly.png new file mode 100644 index 00000000..54febc6b Binary files /dev/null and b/src/public/img/focus/focus-caret-friendly.png differ diff --git a/src/public/js/index.js b/src/public/js/index.js index 929ede11..8c517670 100644 --- a/src/public/js/index.js +++ b/src/public/js/index.js @@ -27675,6 +27675,15 @@ __webpack_require__.r(__webpack_exports__); +/** + * Upper-bound, in milliseconds, on how long to wait for a slide-out + * `transitionend` before forcing the post-slide-out work to proceed. The CSS + * transition is 500ms; the extra buffer covers timing jitter and the cases + * where `transitionend` doesn't fire (e.g. when transitioning to/from `auto`, + * or when another class change cancels the in-flight transition). + */ +const SLIDE_OUT_FALLBACK_MS = 750; + /** * A 128x128 picture-in-picture overlay that mirrors the currently-animating * attack-sequence struct when its tile is fully off-screen. @@ -27772,6 +27781,32 @@ class MapPictureInPictureComponent extends _framework_AbstractViewModelComponent */ this.pendingHide = false; + /** + * Render request that will be applied after the current PIP has slid + * out. Used to sequence "slide current struct out -> swap contents -> + * slide new struct in" when an attack-sequence event targets a struct + * other than the one the PIP is currently mirroring. + * + * @type {{structId: string, tileElement: HTMLElement, animationEvent: AnimationEvent}|null} + */ + this.pendingRender = null; + + /** + * `transitionend` handler attached to the PIP container while a + * slide-out is in flight. Tracked so it can be removed exactly once. + * + * @type {EventListener|null} + */ + this.slideOutHandler = null; + + /** + * Fallback `setTimeout` id ensuring slide-out post-work runs even if + * `transitionend` is skipped or cancelled. + * + * @type {number|null} + */ + this.slideOutTimeout = null; + /** @type {Array<{target: EventTarget, event: string, handler: EventListener}>} */ this.windowEventHandlers = []; } @@ -27866,9 +27901,11 @@ class MapPictureInPictureComponent extends _framework_AbstractViewModelComponent /** * Tear down the currently-rendered struct viewer (if any) and clear all PIP * markup. Used when transitioning to a new active struct or when destroying - * the PIP entirely. + * the PIP entirely. Always called only once the PIP is already parked + * off-screen (so the cleanup doesn't visibly snap the element). */ clearPipContents() { + this.detachSlideOutListener(); if (this.activeViewer) { this.activeViewer.onAnimationsComplete = null; this.activeViewer.destroy(); @@ -27882,30 +27919,162 @@ class MapPictureInPictureComponent extends _framework_AbstractViewModelComponent this.activeStructId = null; this.viewerActive = false; this.pendingHide = false; + this.pendingRender = null; } /** - * The PIP viewer's lottie animation reached its final frame. If a hide has - * been requested in the meantime (queue empty / next event non-attack), tear - * the PIP down now. + * The PIP viewer's lottie animation reached its final frame. If a swap or + * hide is pending, this is the moment to begin the slide-out: it keeps the + * exit visually anchored to "the end of the animation" rather than to "the + * moment the next attack-sequence event was dispatched" (which can happen + * mid-animation when the on-map and PIP viewers are out of sync). */ handleViewerAnimationsComplete() { this.viewerActive = false; - if (this.pendingHide) { - this.clearPipContents(); + if (this.pendingHide || this.pendingRender) { + this.beginSlideOut(); } } /** - * Mark the PIP for hide. If the viewer is mid-animation, the actual hide - * is deferred until `handleViewerAnimationsComplete` fires; otherwise we - * hide immediately. + * Mark the PIP for hide. If the viewer is still mid-animation, the + * slide-out is deferred until `handleViewerAnimationsComplete` fires. + * Otherwise the slide-out begins immediately and `clearPipContents` runs + * when the CSS transition completes. */ requestHide() { this.pendingHide = true; - if (!this.viewerActive) { + this.pendingRender = null; + if (this.viewerActive) { + return; + } + this.beginSlideOut(); + } + + /** + * Begin sliding the PIP out of the viewport by removing `mod-visible`, + * which lets the CSS transition the active side anchor back to its + * off-screen rest position. The completion handler runs from + * `transitionend` (or the fallback timer) and decides whether to clear + * the PIP or render the pending struct. + */ + beginSlideOut() { + const container = this.getContainer(); + if (!container) { + this.handleSlideOutComplete(); + return; + } + if (this.slideOutHandler) { + // A slide-out is already in flight; its completion handler will pick + // up the latest `pendingHide` / `pendingRender` state. + return; + } + if (!container.classList.contains('mod-visible')) { + // PIP is already off-screen (e.g. the user scrolled the active + // struct's tile back into view, or the PIP never became visible), + // so no transition will fire. Skip straight to the post-work. + this.handleSlideOutComplete(); + return; + } + this.attachSlideOutListener(container); + container.classList.remove('mod-visible'); + } + + /** + * Attach a one-shot `transitionend` listener to the PIP container plus a + * fallback `setTimeout`. Whichever fires first wins; the other is cleared + * in `detachSlideOutListener`. + * + * @param {HTMLElement} container + */ + attachSlideOutListener(container) { + this.detachSlideOutListener(); + + const handler = (e) => { + // Ignore bubbled transitions from child elements and from properties + // other than the slide axes; only `left`/`right` move the PIP. + if (e.target !== container) { + return; + } + if (e.propertyName !== 'left' && e.propertyName !== 'right') { + return; + } + this.detachSlideOutListener(); + this.handleSlideOutComplete(); + }; + this.slideOutHandler = handler; + container.addEventListener('transitionend', handler); + + this.slideOutTimeout = setTimeout(() => { + if (this.slideOutHandler) { + this.detachSlideOutListener(); + this.handleSlideOutComplete(); + } + }, SLIDE_OUT_FALLBACK_MS); + } + + detachSlideOutListener() { + const container = this.getContainer(); + if (container && this.slideOutHandler) { + container.removeEventListener('transitionend', this.slideOutHandler); + } + this.slideOutHandler = null; + if (this.slideOutTimeout !== null) { + clearTimeout(this.slideOutTimeout); + this.slideOutTimeout = null; + } + } + + /** + * Slide-out has finished. Apply whichever post-work the current state + * implies: clear (hide pending) or render-then-slide-in (swap pending). + * If both are set the hide wins, matching the user-facing semantics that + * "no continuation" always trumps a queued swap. + */ + handleSlideOutComplete() { + if (this.pendingHide) { + this.pendingHide = false; + this.pendingRender = null; this.clearPipContents(); + return; + } + if (this.pendingRender) { + const next = this.pendingRender; + this.pendingRender = null; + const rendered = this.renderForStruct( + next.structId, + next.tileElement, + next.animationEvent + ); + if (rendered) { + this.slideIn(); + } else { + this.clearPipContents(); + } + } + } + + /** + * Force a layout flush so the browser commits the (just-swapped) side + * class's off-screen anchor before `mod-visible` is added, then delegate + * to `updateVisibility` to add `mod-visible` if (and only if) the active + * struct's tile is fully off the user's viewport. + * + * Without the reflow, the browser would batch the side-class swap with + * the subsequent `mod-visible` add, see only the final on-screen anchor, + * and skip the slide-in transition entirely. + */ + slideIn() { + const container = this.getContainer(); + if (!container) { + return; } + // Reading `offsetWidth` forces a synchronous layout, committing the + // off-screen state established by `renderForStruct` so the subsequent + // `mod-visible` add actually animates `left`/`right`. + // eslint-disable-next-line no-unused-expressions + container.offsetWidth; + this.updateVisibility(); } /** @@ -27953,9 +28122,15 @@ class MapPictureInPictureComponent extends _framework_AbstractViewModelComponent const markerHTML = this.mapTileMarkers.getCellMarker(ambit, tilePos.rowIndex, tilePos.colIndex) || ''; container.innerHTML = ` - ${terrainTileHTML} - ${markerHTML} -
+
+
+ ${terrainTileHTML} + ${markerHTML} +
+
+
+
+
`; container.classList.remove('mod-side-left', 'mod-side-right'); container.classList.add(side === 'right' ? 'mod-side-right' : 'mod-side-left'); @@ -27984,8 +28159,14 @@ class MapPictureInPictureComponent extends _framework_AbstractViewModelComponent /** * Update the PIP's visibility class based on whether the active struct's * tile is fully off-screen. Called on animation events, scroll, and resize. + * + * Skipped while a slide-out for a pending swap or hide is in progress so + * the in-flight transition isn't clobbered by an unrelated scroll/resize. */ updateVisibility() { + if (this.pendingRender || this.pendingHide) { + return; + } const container = this.getContainer(); if (!container) { return; @@ -28005,12 +28186,15 @@ class MapPictureInPictureComponent extends _framework_AbstractViewModelComponent /** * Handle an incoming `EVENTS.ANIMATION` event: * - ignore events for other maps - * - if the animation is part of an attack sequence: re-render the PIP for - * the event's struct, replay the animation in muted mode, and update - * visibility - * - if the animation is not part of an attack sequence: the attack - * sequence has ended on our map, so request a hide (deferred until the - * PIP's current animation finishes playing) + * - non-attack-sequence: request the PIP slide out and clear + * - empty PIP: render the new struct and slide it in + * - same struct (e.g. counter-attack chaining additional animations on + * the struct the PIP is already mirroring): re-render contents in + * place; the PIP stays on its current side and visibility is unchanged + * - different struct: queue the new render and slide the current struct + * out first; the new render and slide-in happen in + * `handleSlideOutComplete` once the transition (and, if it was still + * playing, the PIP's current animation) has finished * * @param {AnimationEvent|Event} event */ @@ -28024,7 +28208,7 @@ class MapPictureInPictureComponent extends _framework_AbstractViewModelComponent } if (!_util_AttackSequenceAnimationUtil__WEBPACK_IMPORTED_MODULE_6__.AttackSequenceAnimationUtil.includesAttackSequenceAnimation(event.animationNames || [])) { - if (this.activeStructId) { + if (this.activeStructId || this.pendingRender) { this.requestHide(); } return; @@ -28035,18 +28219,38 @@ class MapPictureInPictureComponent extends _framework_AbstractViewModelComponent return; } - const rendered = this.renderForStruct(event.structId, tileElement, event); - if (!rendered) { + if (!this.activeStructId) { + const rendered = this.renderForStruct(event.structId, tileElement, event); + if (rendered) { + this.slideIn(); + } return; } - this.updateVisibility(); + if (this.activeStructId === event.structId) { + this.renderForStruct(event.structId, tileElement, event); + return; + } + + this.pendingRender = { + structId: event.structId, + tileElement: tileElement, + animationEvent: event, + }; + this.pendingHide = false; + if (this.viewerActive) { + // Wait for the PIP's current animation to finish first; + // `handleViewerAnimationsComplete` will kick off the slide-out. + return; + } + this.beginSlideOut(); } /** * The global `AnimationEventQueue` just transitioned to idle. If the PIP * is still tracking a struct, request a hide; the actual hide is deferred - * until the PIP's current animation finishes playing. + * until the PIP's current animation finishes playing and then a slide-out + * is performed. */ handleAnimationQueueEmpty() { if (this.activeStructId) { @@ -28079,6 +28283,7 @@ class MapPictureInPictureComponent extends _framework_AbstractViewModelComponent * `MapComponent` can decide whether to remove it. */ destroy() { + this.detachSlideOutListener(); for (let i = 0; i < this.windowEventHandlers.length; i++) { const {target, event, handler} = this.windowEventHandlers[i]; target.removeEventListener(event, handler); diff --git a/src/public/js/index.js.map b/src/public/js/index.js.map index 208b7a99..520cecea 100644 --- a/src/public/js/index.js.map +++ b/src/public/js/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAmD;AACI;AACE;AACoB;AACvB;AACY;AACL;AACY;AAChB;AACc;AACjC;AAC8B;AACD;AACoB;AACN;AACI;AACI;AACxB;AACA;AACR;AACF;AACF;AACb;AACmB;AACf;AACJ;AACI;AACN;;AAE/B;;AAEP;AACA;AACA,oBAAoB,6DAAU;AAC9B,uCAAuC,uFAAuB;AAC9D,4BAA4B,iEAAY;AACxC,6BAA6B,mEAAa;AAC1C,+BAA+B,uEAAe;AAC9C,qCAAqC,mFAAqB;AAC1D,6BAA6B,mEAAa;AAC1C,oCAAoC,iFAAoB;AACxD,kCAAkC,8EAAkB;AACpD,4CAA4C,kGAA4B;AACxE,yCAAyC,4FAAyB;AAClE,2CAA2C,gGAA2B;AACtE,6CAA6C,oGAA6B;AAC1E,iCAAiC,4EAAiB;AAClD,iCAAiC,4EAAiB;AAClD,6BAA6B,oEAAa;AAC1C,4BAA4B,kEAAY;AACxC,2BAA2B,gEAAW;AACtC,8BAA8B,sEAAc;;AAE5C;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,GAAG;AAChB;AACA;AACA,qBAAqB,4EAAoB;AACzC;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,oBAAoB,SAAS,SAAS,QAAQ;AAC9C;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,mBAAmB,QAAQ,SAAS,QAAQ,OAAO,MAAM;AACzD;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,yBAAyB,QAAQ,SAAS,QAAQ,UAAU,cAAc;AAC1E;;AAEA;AACA,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA,gBAAgB,gEAAa;AAC7B;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,gEAAa,6CAA6C,aAAa;AACvF;;AAEA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,gDAAgD,YAAY;AAC5D;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,uDAAuD,YAAY;AACnE,cAAc,UAAU;AACxB;;AAEA;AACA,aAAa,kBAAkB;AAC/B,cAAc;AACd;AACA;AACA,iDAAiD,YAAY;AAC7D;AACA;;AAEA;AACA,aAAa,iBAAiB;AAC9B,cAAc;AACd;AACA;AACA,iDAAiD,YAAY;AAC7D;AACA;;AAEA;AACA,gDAAgD,YAAY;AAC5D;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,gDAAgD,YAAY,UAAU,SAAS;AAC/E;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,mEAAmE,YAAY,UAAU,SAAS;AAClG;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,qCAAqC,SAAS;AAC9C;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,cAAc;AACd;AACA;AACA;AACA;AACA,+CAA+C,YAAY,+BAA+B,SAAS;AACnG;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,gDAAgD,YAAY,mBAAmB,SAAS;AACxF;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,iCAAiC,SAAS;AAC1C;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,cAAc;AACd;AACA;AACA;AACA;AACA,kDAAkD,YAAY,UAAU,SAAS;AACjF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,yCAAyC,SAAS;AAClD;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,cAAc;AACd;AACA;AACA;AACA;AACA,+CAA+C,YAAY,UAAU,SAAS;AAC9E;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,sCAAsC,SAAS;AAC/C;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,cAAc;AACd;AACA;AACA;AACA;AACA,+CAA+C,YAAY,UAAU,SAAS;AAC9E;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,gDAAgD,YAAY,UAAU,SAAS;AAC/E;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,gDAAgD,YAAY,yBAAyB,SAAS;AAC9F;AACA;AACA;AACA;;AAEA;AACA,aAAa,gCAAgC;AAC7C,cAAc;AACd;AACA;AACA,iDAAiD,YAAY;AAC7D;AACA;;AAEA;AACA,aAAa,gCAAgC;AAC7C,cAAc;AACd;AACA;AACA,iDAAiD,YAAY;AAC7D;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,gDAAgD,YAAY,wBAAwB,eAAe;AACnG;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,+EAAqB;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,6BAA6B;AAC1C,cAAc;AACd;AACA;AACA,iDAAiD,YAAY;AAC7D;AACA;;AAEA;AACA,aAAa,wCAAwC;AACrD,cAAc;AACd;AACA;AACA,gDAAgD,YAAY;AAC5D;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,mDAAmD,YAAY,kCAAkC,eAAe;AAChH;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,SAAS,YAAY,uBAAuB,QAAQ,SAAS,QAAQ;AACrE;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,gDAAgD,YAAY,kBAAkB,QAAQ;AACtF;AACA;AACA;AACA;;AAEA;AACA,aAAa,iCAAiC;AAC9C,cAAc;AACd;AACA;AACA,gDAAgD,YAAY;AAC5D;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,gDAAgD,YAAY,iBAAiB,SAAS,QAAQ,KAAK;AACnG;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,mDAAmD,YAAY,iBAAiB,SAAS;AACzF;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,gDAAgD,YAAY,UAAU,KAAK;AAC3E;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,gDAAgD,YAAY;AAC5D;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA,+CAA+C,uCAAuC;AACtF,0EAA0E,kCAAkC;AAC5G,gDAAgD,YAAY,0BAA0B,kBAAkB,EAAE,aAAa;AACvH;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,iCAAiC,QAAQ;AACzC;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,cAAc;AACd;AACA;AACA;AACA;AACA,+CAA+C,YAAY,SAAS,QAAQ;AAC5E;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,+CAA+C,YAAY;AAC3D;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,gDAAgD,YAAY,SAAS,QAAQ;AAC7E;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,kCAAkC,QAAQ;AAC1C;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,cAAc;AACd;AACA;AACA;AACA;AACA,kDAAkD,YAAY,SAAS,QAAQ;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,0CAA0C,QAAQ;AAClD;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,+CAA+C,YAAY,SAAS,QAAQ;AAC5E;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,gDAAgD,YAAY,SAAS,QAAQ;AAC7E;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,aAAa,SAAS;AACtB,cAAc;AACd;AACA;AACA;AACA;AACA,kDAAkD,YAAY;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,gDAAgD,YAAY,UAAU,SAAS;AAC/E;AACA;AACA;AACA;;AAEA;AACA,aAAa,sBAAsB;AACnC,cAAc;AACd;AACA;AACA,oFAAoF,mCAAmC;AACvH,sEAAsE,8BAA8B;AACpG,oCAAoC,6BAA6B;AACjE,mDAAmD,6CAA6C;AAChG,+BAA+B,0BAA0B;;AAEzD,gDAAgD,YAAY,sBAAsB,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,mBAAmB,EAAE,UAAU;AAClK;AACA;AACA;AACA;;AAEA;AACA,aAAa,sBAAsB;AACnC,cAAc;AACd;AACA;AACA;AACA,qFAAqF,mCAAmC;AACxH,sEAAsE,8BAA8B;AACpG,oCAAoC,6BAA6B;AACjE,mDAAmD,6CAA6C;;AAEhG,gDAAgD,YAAY,sBAAsB,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,mBAAmB;AACnK;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,gDAAgD,YAAY,UAAU,SAAS;AAC/E;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,gDAAgD,YAAY,4BAA4B,QAAQ;AAChG;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,aAAa,SAAS;AACtB,cAAc;AACd;AACA;AACA;AACA;AACA,kDAAkD,YAAY;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,gDAAgD,YAAY,iBAAiB,SAAS;AACtF;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,gDAAgD,YAAY,gBAAgB,SAAS;AACrF;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA,gDAAgD,YAAY,eAAe,SAAS;AACpF;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,gDAAgD,YAAY,UAAU,SAAS;AAC/E;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,gDAAgD,YAAY;AAC5D;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACrvBO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACX+E;AAKzC;AACU;AACA;AACQ;;AAEjD,uCAAuC,yFAA2B;;AAEzE;AACA,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA,+BAA+B,kEAAe;AAC9C;;AAEA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,0DAAW;AAChC,qBAAqB,0DAAW;AAChC;AACA,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,iFAAyB;AAC/C;AACA,qCAAqC,oBAAoB;AACzD;;AAEA;AACA;AACA;AACA,2CAA2C,UAAU;AACrD;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA,cAAc,cAAc;AAC5B,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,iFAAyB;AAC/C;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC,oBAAoB;AAC7D;AACA,yBAAyB,2BAA2B,MAAM,cAAc;AACxE;;AAEA;AACA;AACA,yCAAyC,oBAAoB;AAC7D;AACA,yBAAyB,sCAAsC,MAAM,UAAU;AAC/E;AACA,MAAM;AACN;AACA,uCAAuC,oBAAoB;AAC3D;AACA,sBAAsB,2BAA2B,MAAM,WAAW;AAClE;;AAEA;AACA;AACA;AACA,2CAA2C,UAAU;AACrD;AACA;AACA,iBAAiB,kCAAkC;AACnD;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,iFAAyB;;AAE/C;AACA;AACA;AACA,2CAA2C,UAAU;AACrD;AACA;AACA,iBAAiB,+BAA+B;AAChD;AACA;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,0DAAW;AACrB;AACA;AACA;AACA,0BAA0B,iFAAyB;;AAEnD;AACA;AACA;AACA,+CAA+C,UAAU;AACzD;AACA;AACA,qBAAqB,oCAAoC;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,iFAAyB;AAC/C;;AAEA;AACA;AACA;AACA,2CAA2C,UAAU;AACrD;AACA;AACA,iBAAiB,sCAAsC;AACvD,kBAAkB,6BAA6B;AAC/C;AACA;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,iFAAyB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,UAAU;AACrD;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA,gDAAgD;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,SAAS,0CAA0C,EAAE,iBAAiB;AACtE;AACA;AACA,MAAM,2EAAmB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,iFAAyB;AAC/C,+BAA+B,oFAA4B;AAC3D;AACA,WAAW,aAAa,GAAG,4BAA4B;AACvD,UAAU,cAAc;AACxB;AACA,qCAAqC,oBAAoB;AACzD;;AAEA;AACA;AACA;AACA,2CAA2C,UAAU;AACrD;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,wBAAwB,2BAA2B;;AAEnD;AACA,uBAAuB,0BAA0B,GAAG,sCAAsC;AAC1F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,yDAAyD,oBAAoB;AAC3F;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,iFAAyB;AAC/C;;AAEA;AACA;AACA;AACA,2CAA2C,UAAU;AACrD;AACA;AACA,iBAAiB,sCAAsC;AACvD,kBAAkB,6BAA6B;AAC/C;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,0DAAW;AACxC;AACA,2CAA2C,oBAAoB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yBAAyB;AAClC;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B,iBAAiB;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,UAAU;AACV;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAkB;AAC3B;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B,iBAAiB;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,UAAU;AACV;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qDAAqD,sBAAsB;AAC3E;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC9sBuH;AAC/B;AACI;;AAE5F;AACA;AACA;AACO;;AAEP;AACA,aAAa,WAAW;AACxB,aAAa,QAAQ;AACrB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;;AAEA;;AAEA;AACA,gBAAgB,0EAAqB;AACrC;;AAEA;AACA,cAAc,4EAAuB,GAAG,kEAAa;;AAErD;AACA,gBAAgB,0EAAqB;AACrC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB;AACA,cAAc,QAAQ;AACtB;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,iBAAiB;;AAEpC;;AAEA;AACA;AACA,eAAe,0EAAqB;AACpC;;AAEA;AACA;AACA,eAAe,4EAAuB,GAAG,kEAAa;AACtD;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA,qCAAqC,kEAAa;AAClD;AACA;;AAEA;AACA,WAAW,kEAAa;;AAExB;AACA;;AAEA,uBAAuB,kGAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,sGAAgC,6CAA6C,aAAa;AAC5G;;AAEA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;ACzH2C;AACqB;AA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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACvBO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC7FO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC7CO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;;;;;ACRO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACTO;AACP;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACpFO;AACP;AACA;AACA;;;;;;;;;;;;;;;ACHO;AACP;AACA;AACA;;;;;;;;;;;;;;;;ACHO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACNO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACbO;AACP;AACA;;;;;;;;;;;;;;;ACFO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC9BO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACXO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;ACJO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACJO;AACP;AACA;;;;;;;;;;;;;;;ACFO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACRO;AACP,kCAAkC,EAAE;AACpC;AACA,gCAAgC,EAAE,OAAO,GAAG;AAC5C,2BAA2B,EAAE,OAAO,KAAK;AACzC;;;;;;;;;;;;;;;ACLO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC1KO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AChBO;AACP;AACA;AACA;;;;;;;;;;;;;;;;ACHO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACRO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLmE;AACgB;AACI;AACA;AACY;AACM;AACA;AACF;AACE;AACpB;AACF;AACQ;AACA;AACI;AACM;AACE;AACJ;AACR;AACN;AAC/B;;AAE/C,gCAAgC,6EAAkB;;AAEzD;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,aAAa;AAC1B,aAAa,mBAAmB;AAChC,aAAa,cAAc;AAC3B,aAAa,cAAc;AAC3B,aAAa,sBAAsB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,6FAAqB;AAC/C;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,kCAAkC,iEAAY;AAC9C,0BAA0B,iGAAuB;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,iGAAuB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,6GAA6B;AACvD;AACA;;AAEA;AACA,aAAa,sBAAsB;AACnC;AACA;AACA,0BAA0B,mHAAgC;AAC1D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,sBAAsB;AACnC;AACA;AACA,0BAA0B,mHAAgC;AAC1D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,iHAA+B;AACzD;AACA;;AAEA;AACA,0BAA0B,mHAAgC;AAC1D;AACA;;AAEA;AACA,aAAa,eAAe;AAC5B;AACA;AACA,0BAA0B,+FAAsB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,8FAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,sGAAyB;AACnD;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA,0BAA0B,sGAAyB;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,0GAA2B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,gHAA8B;AACxD;AACA;;AAEA;AACA,0BAA0B,kHAA+B;AACzD;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,8GAA6B;AACvD;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,sGAAyB;AACnD;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,gGAAsB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrNmE;AACX;AACoC;AACA;AACR;AACA;AACA;AACJ;AACU;AACM;AACxC;AACgD;AAC7B;AACW;AACF;AAChC;AAC8B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI;AACD;AACY;AAC7B;AACmC;AAG/B;AACiB;AACY;AACN;AACI;AACN;AACa;AACV;AACjD;AACkB;;AAE1D,6BAA6B,6EAAkB;;AAEtD;AACA;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,eAAe;AAC5B,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,kEAAS;AACnC;AACA;;AAEA;AACA,0BAA0B,sGAA0B;AACpD;AACA;;AAEA;AACA,0BAA0B,sGAA0B;AACpD;AACA;;AAEA;AACA,0BAA0B,8FAAsB;AAChD;AACA;;AAEA;AACA,0BAA0B,8FAAsB;AAChD;AACA;;AAEA;AACA,0BAA0B,8FAAsB;AAChD;AACA;;AAEA;AACA,0BAA0B,0FAAoB;AAC9C;AACA;;AAEA;AACA,0BAA0B,oGAAyB;AACnD;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,0GAA4B;AACtD;AACA;;AAEA;AACA,0BAA0B,mHAAgC;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,0GAA4B;AACtD;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,iGAAuB;AACjD;AACA;;AAEA;AACA,0BAA0B,+FAAsB;AAChD;AACA;;AAEA;AACA,0BAA0B,sFAAkB;AAC5C;AACA;;AAEA;AACA,0BAA0B,6FAAqB;AAC/C;AACA;;AAEA;AACA,0BAA0B,6FAAqB;AAC/C;AACA;;AAEA;AACA,0BAA0B,6FAAqB;AAC/C;AACA;;AAEA;AACA,0BAA0B,6FAAqB;AAC/C;AACA;;AAEA;AACA,0BAA0B,6FAAqB;AAC/C;AACA;;AAEA;AACA,0BAA0B,6FAAqB;AAC/C;AACA;;AAEA;AACA,0BAA0B,6FAAqB;AAC/C;AACA;;AAEA;AACA,0BAA0B,6FAAqB;AAC/C;AACA;;AAEA;AACA,0BAA0B,iGAAuB;AACjD;AACA;;AAEA;AACA,0BAA0B,gGAAuB;AACjD;AACA;;AAEA;AACA,aAAa,4BAA4B;AACzC;AACA;AACA,0BAA0B,4GAA6B;AACvD;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,kHAAgC;AAC1D;AACA;;AAEA;AACA,aAAa,4BAA4B;AACzC;AACA;AACA,0BAA0B,oIAAyC;AACnE;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,4BAA4B;AACzC;AACA;AACA,0BAA0B,oGAAyB;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,gHAA+B;AACzD;AACA;;AAEA;AACA,0BAA0B,0GAA4B;AACtD;AACA;;AAEA;AACA,0BAA0B,8GAA8B;AACxD;AACA;;AAEA;AACA,0BAA0B,wGAA2B;AACrD;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;;AAEA;;AAEA,mCAAmC,4EAAkB;AACrD;AACA;;AAEA,IAAI,0DAAQ;;AAEZ;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,aAAa,eAAe;AAC5B;AACA;AACA,0BAA0B,2GAA4B;AACtD;AACA;;AAEA;AACA,aAAa,eAAe;AAC5B;AACA;AACA,0BAA0B,qHAAiC;AAC3D;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACjSmE;AACU;AACZ;AACc;AAC5B;AACoB;;;AAGhE,8BAA8B,6EAAkB;;AAEvD;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,cAAc;AAC3B,aAAa,cAAc;AAC3B,aAAa,aAAa;AAC1B,aAAa,eAAe;AAC5B,aAAa,YAAY;AACzB,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA,oBAAoB;;AAEpB;AACA;;AAEA,0BAA0B,uFAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,2EAAa;AACvC;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,yFAAoB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,iFAAgB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACvGmE;AACc;AAChB;;AAE1D,gCAAgC,6EAAkB;;AAEzD;AACA,aAAa,WAAW;AACxB;AACA;AACA;AACA;;AAEA;AACA,aAAa,oBAAoB;AACjC;AACA;AACA,0BAA0B,2FAAoB;AAC9C;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;ACrBmE;AACU;AACI;AACA;AACM;AAChB;AACQ;;AAExE,8BAA8B,6EAAkB;;AAEvD;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,cAAc;AAC3B,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,uFAAmB;AAC7C;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,2FAAqB;AAC/C;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,2FAAqB;AAC/C;AACA;;AAEA;AACA,0BAA0B,iGAAwB;AAClD;AACA;;AAEA;AACA,0BAA0B,iFAAgB;AAC1C;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,yFAAoB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACxE2C;AACb;;AAEvB,kCAAkC,yCAAK;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,qDAAM;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,qDAAM;AAClC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;AC7CoD;;AAE7C;;AAEP;AACA,eAAe,uBAAuB;AACtC;;AAEA,eAAe,uBAAuB;AACtC;;AAEA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,aAAa,GAAG;AAChB;AACA;AACA,qBAAqB,+DAAgB;;AAErC;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC5DO;;AAEP;AACA,aAAa,GAAG;AAChB;AACA;AACA;;AAEA,eAAe,uBAAuB;AACtC;;AAEA,eAAe,uBAAuB;AACtC;AACA;AACA;;;;;;;;;;;;;;;;;ACdoD;;AAE7C;;AAEP;AACA,oBAAoB,+DAAgB;AACpC;;AAEA;AACA,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACnCO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACRO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACVO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACNO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACLO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACLO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACPO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACRO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACRO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACLO;AACP,iDAAiD;AACjD;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACNO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACNO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACdA;AACA;AACA;AACO;;AAEP;AACA,aAAa,KAAK;AAClB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACbO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACRO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACLO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACNO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACTO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACdO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACLO;AACP,kCAAkC;AAClC;AACA;AACA;AACA;;;;;;;;;;;;;;;ACLO;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAoC;;AAEpC;;AAEP;AACA,aAAa,QAAQ;AACrB;AACA;AACA,UAAU,qDAAM;AAChB;AACA;AACA;;;;;;;;;;;;;;;;;ACX2C;;AAEpC;;AAEP;AACA,aAAa,QAAQ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ACd;AACA,QAAQ,wDAAU;AAClB;AACA;AACA,cAAc;AACd;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B;AACA;;AAEA;AACA,mDAAmD,kFAAsB;AACzE;;AAEA,oBAAoB,kBAAkB;AACtC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,YAAY;AAC5B,uCAAuC,YAAY;AACnD;AACA,WAAW,eAAe;AAC1B;AACA;;AAEA;;AAEA,oBAAoB,sCAAsC;AAC1D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU,wDAAU;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI,OAAO;AACX;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD,kFAAsB;;AAEzE;;AAEA;;AAEA,iCAAiC,8FAAoB;AACrD;AACA;AACA;;AAEA,gCAAgC,4FAAmB;AACnD;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,iFAAiF;AACjF,iCAAiC,kFAAsB;AACvD;AACA;AACA;;AAEA;AACA,sEAAsE,UAAU,EAAE,MAAM;AACxF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC7YwE;;AAEjE;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,kFAAsB;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6CAA6C;AAC7C;;AAEA,sBAAsB,kFAAsB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,6DAA6D;AAC7D;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,kFAAsB;AACtC;;AAEA;AACA,gBAAgB,kFAAsB;AACtC;;AAEA;;;;;;;;;;;;;;;ACxFO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACLyD;;AAElD;;AAEP;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK,GAAG,WAAW;AACnB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAC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B,aAAa,UAAU;AACvB,aAAa,eAAe;AAC5B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,uBAAuB,gEAAY;AACnC;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA,qCAAqC,mFAAqB;AAC1D;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA,2CAA2C,gEAAY;AACvD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8DAA8D,gEAAY;AAC1E,iCAAiC,wEAAiB,KAAK,yEAAgB;AACvE;AACA,UAAU,4DAAU;AACpB;AACA;AACA;AACA;;AAEA,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,2EAAmB;AAC1D,sCAAsC,2EAAmB;AACzD;AACA;;AAEA,MAAM;AACN,uCAAuC,2EAAmB;AAC1D,sCAAsC,2EAAmB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM;AACN,uCAAuC,2EAAmB;AAC1D,sCAAsC,2EAAmB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM;AACN,uCAAuC,2EAAmB;AAC1D,sCAAsC,2EAAmB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,uDAAuD,gEAAY;AACnE;AACA,iCAAiC,sEAAgB;AACjD;AACA,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,mEAAc;AAC1C;AACA,OAAO,qEAAS;AAChB;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iCAAiC,8EAAoB;AACrD;AACA;AACA,iCAAiC,oFAAuB;AACxD;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,4BAA4B,mEAAc;AAC1C;AACA,OAAO,qEAAS;AAChB;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,sEAAc;AAC1E;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,sEAAc;AAC1E;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,qDAAqD;;AAEzE;;AAEA;;AAEA,sBAAsB,mEAAmE;;AAEzF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,4EAAoB;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,oEAAY;AACxB;AACA,YAAY,4EAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6DAA6D,sEAAc;AAC3E,iEAAiE,sEAAc;AAC/E;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sCAAsC,eAAe;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;AC5nByE;AACV;AACb;AACU;AACE;AA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CA;AACA;AACA;AACA,aAAa,+FAAqB;AAClC;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,6FAAmB;AAChC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,gGAAsB;AACnC;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,mGAAyB;AACtC;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,sGAA4B;AACzC;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,6FAAmB;AAChC;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,6FAAmB;AAChC;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,6FAAmB;AAChC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,+FAAqB;AAClC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,0FAAgB;AAC7B;AACA;AACA;AACA,OAAO;AACP,KAAK;A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AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,gGAAsB;AACnC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,6FAAmB;AAChC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,wGAA8B;AAC3C;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,2GAAiC;AAC9C;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,oGAA0B;AACvC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,uGAA6B;AAC1C;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA,aAAa,oGAA0B;AACvC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,0FAAgB;AAC7B;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,2FAAiB;AAC9B;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,sGAA4B;AACzC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,iDAAiD,gEAAY;AAC7D,iDAAiD,gEAAY;AAC7D,iDAAiD,gEAAY;AAC7D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY,SAAS,KAAK;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,eAAe;AAC5B,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA,sEAAsE,gEAAY;AAClF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA,mDAAmD,gEAAY;AAC/D;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,8CAA8C,gEAAY,iDAAiD,gEAAY;AACvH,kDAAkD,gEAAY,qDAAqD,gEAAY;;AAE/H;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA,sCAAsC,gEAAY;AAClD;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,gEAAY;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,gEAAY;AACjD,mCAAmC,gEAAY;AAC/C,mCAAmC,gEAAY;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA,aAAa,mEAAc;AAC3B;AACA;AACA;AACA,UAAU,mEAAc;AACxB,UAAU,mEAAc;AACxB;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,IAAI,OAAO,kCAAkC,UAAU;;AAEvD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,sEAAgB;;AAE7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,8EAAoB;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,oFAAuB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,mEAAY;AACpB,MAAM,mEAAY;AAClB;;AAEA;AACA,6BAA6B,gFAAqB;AAClD;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA,WAAW,gEAAY;AACvB,yCAAyC,gEAAY;AACrD,WAAW,gEAAY;AACvB,yCAAyC,gEAAY;AACrD,WAAW,gEAAY;AACvB,yCAAyC,gEAAY;AACrD;AACA,+CAA+C,WAAW;AAC1D;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,cAAc,iBAAiB,GAAG,qBAAqB;AACvD;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,gBAAgB;AAC7B,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,yEAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,+EAAoB;AACzD;;AAEA;AACA;AACA,kCAAkC,oFAAuB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC,oGAA+B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxb2C;AACN;AACW;AACE;AACiB;AACjB;AACc;AACsB;AAClC;AACE;AACA;;;AAGtD;AACA;AACA;AACO;AACP;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,UAAU;AACzB,eAAe,sBAAsB;AACrC,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,6EAAmB;;AAEzC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,qDAAM;AACtC;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,0CAA0C,8DAAW;AACrD;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,gCAAgC,qDAAM;AACtC,kCAAkC,6EAAmB;AACrD;AACA,SAAS;;AAET;AACA;AACA,gCAAgC,qDAAM;AACtC,kCAAkC,6EAAmB;AACrD;AACA,SAAS;;AAET;AACA;AACA,gCAAgC,qDAAM;AACtC;AACA,SAAS;;AAET;AACA;AACA,gCAAgC,qDAAM;AACtC;AACA,SAAS;;AAET;AACA;AACA,gCAAgC,qDAAM;AACtC;AACA,SAAS;;AAET;AACA;AACA,gCAAgC,qDAAM;AACtC;AACA,SAAS;;AAET;AACA;AACA,gCAAgC,qDAAM;AACtC;AACA,SAAS;;;AAGT;AACA;AACA,gCAAgC,qDAAM;AACtC;AACA,SAAS;;AAET;AACA;AACA,gCAAgC,qDAAM;AACtC;AACA,SAAS;;AAET;AACA,gCAAgC,qDAAM;AACtC,YAAY,OAAO;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,4DAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,4DAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,4DAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,4DAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,4CAA4C,0DAAI;;AAEhD;;AAEA;AACA,QAAQ,OAAO;AACf,QAAQ,OAAO;AACf,QAAQ,OAAO;AACf,QAAQ,OAAO;AACf,QAAQ,OAAO;AACf,QAAQ,OAAO;AACf;;AAEA;AACA,8DAA8D,0DAAI;AAClE;;AAEA;AACA;AACA,4CAA4C,0DAAI;AAChD;;AAEA;AACA,+BAA+B,6EAAmB;AAClD;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA,iCAAiC,gGAA6B;AAC9D;;AAEA;AACA,eAAe,WAAW;AAC1B,gBAAgB;AAChB;AACA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU;AACV,sCAAsC,4DAAW;AACjD;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,8CAA8C,8DAAW;AACzD;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oCAAoC,0EAAkB;;AAEtD;AACA;AACA;;;AAGA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,0DAAI;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,gBAAgB;AAChB;AACA;AACA,0DAA0D,4DAAU;AACpE;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gEAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;;AAEA,qFAAqF,iEAAY;AACjG;AACA;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;;;;;;;;;;ACplB8D;AACE;;AAEzD;;AAEP;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,yBAAyB,kDAAM;AAC/B,WAAW,iDAAK;AAChB;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,iBAAiB,0EAAuB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA,mBAAmB,sDAAM;AACzB,+BAA+B,qDAAS;AACxC;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;ACnDyD;AACzB;;AAEzB;;AAEP;;AAEA,eAAe,QAAQ;AACvB;;AAEA,eAAe,QAAQ;AACvB;;AAEA,eAAe,SAAS;AACxB;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA,MAAM,OAAO,uEAAuE,mBAAmB;AACvG,MAAM;AACN;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,IAAI,mEAAY;AAChB;;AAEA;AACA,aAAa,SAAS;AACtB;AACA;AACA;;AAEA;AACA;AACA,MAAM,mEAAY;AAClB;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;ACpFO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;A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AACA;AACA;AACA,WAAW,qBAAqB;AAChC,gBAAgB,QAAQ;AACxB;;AAEA;AACA,cAAc;AACd;AACA;AACA,+BAA+B,iEAAY;AAC3C;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;AC5U2C;AACc;;AAElD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO,qDAAM;AACb,OAAO,qDAAM;AACb,OAAO,qDAAM;AACb,OAAO,qDAAM;AACb;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,kBAAkB,qDAAM;AACxB;AACA;AACA,kBAAkB,qDAAM;AACxB;AACA;AACA,kBAAkB,qDAAM;AACxB;AACA;AACA,kBAAkB,qDAAM;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,sBAAsB;AACnC,cAAc;AACd;AACA;AACA,wBAAwB,oBAAoB;;AAE5C;AACA,wCAAwC,MAAM;AAC9C;;AAEA,+CAA+C,mEAAc;AAC7D;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;ACzEoD;;AAE7C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,8DAAW;AACnC,2BAA2B,8DAAW;AACtC;AACA;AACA;;;;;;;;;;;;;;;AClBO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,mDAAmD,SAAS;AAC5D;;AAEA;AACA,cAAc;AACd;AACA;AACA,4DAA4D,cAAc;AAC1E;AACA;;;;;;;;;;;;;;;ACjCO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;AClBO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACZO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACPO;AACP;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;AACA;;AAEA;;;;;;;;;;;;;;;;ACbO;AACP;AACA;AACA;AACA;;AAEA,cAAc,SAAS;AACvB;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;;;;;AC1BiE;;AAE1D;AACP;AACA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,UAAU;AACzB;;AAEA,eAAe,aAAa;AAC5B;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,0BAA0B,2EAAmB;AAC7C;;AAEA;AACA,cAAc;AACd;AACA;AACA,0BAA0B,2EAAmB;AAC7C;;AAEA;AACA,cAAc;AACd;AACA;AACA,0BAA0B,2EAAmB;AAC7C;;AAEA;AACA,cAAc;AACd;AACA;AACA,0BAA0B,2EAAmB;AAC7C;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,0BAA0B,2EAAmB;AAC7C;;AAEA;AACA,cAAc;AACd;AACA;AACA,0BAA0B,2EAAmB;AAC7C;;AAEA;AACA,cAAc;AACd;AACA;AACA,0BAA0B,2EAAmB;AAC7C;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACjHsC;;AAE/B;;AAEP;AACA;AACA;;AAEA,eAAe,aAAa;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,iCAAiC,6EAAqB;AACtD;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,mCAAmC,+EAAuB;AAC1D;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,mCAAmC,+EAAuB;AAC1D;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,gCAAgC,4EAAoB;AACpD;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,uCAAuC,mFAA2B;AAClE;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,qCAAqC,iFAAyB;AAC9D;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,mCAAmC,+EAAuB;AAC1D;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,qCAAqC,iFAAyB;AAC9D;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,mCAAmC,+EAAuB;AAC1D;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,gCAAgC,4EAAoB;AACpD;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,gCAAgC,4EAAoB;AACpD;AACA;;;;;;;;;;;;;;;;ACtNsC;;AAE/B;AACP;AACA;AACA,SAAS,2EAAmB;AAC5B,SAAS,2EAAmB;AAC5B,SAAS,4EAAoB;AAC7B,SAAS,4EAAoB;AAC7B,SAAS,wEAAgB;AACzB,SAAS,wEAAgB;AACzB,SAAS,wEAAgB;AACzB,SAAS,wEAAgB;AACzB,SAAS,wEAAgB;AACzB,SAAS,wEAAgB;AACzB,SAAS,wEAAgB;AACzB,SAAS,2EAAmB;AAC5B;AACA;;;;;;;;;;;;;;;;;;;;ACvByD;AACM;AACvB;;AAEjC;AACP;AACA;AACA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;;AAEA;AACA,aAAa,OAAO;AACpB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mEAAc;AACrC,qCAAqC,yEAAiB;AACtD;AACA;AACA,uBAAuB,mEAAc;AACrC,qCAAqC,yEAAiB;AACtD;AACA;AACA,uBAAuB,mEAAc;AACrC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACvEgD;AACI;AACW;AACzB;AACkC;AACF;;;AAG/D;;AAEP;AACA,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,OAAO;AACb;AACA;;AAEA;AACA,MAAM,OAAO;AACb;AACA;;AAEA;AACA;AACA;;AAEA,6BAA6B,0DAAI;;AAEjC;AACA,mCAAmC,yEAAgB;AACnD;AACA,+BAA+B,kFAAsB;AACrD;;AAEA;AACA;AACA,0BAA0B,8DAAW;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,WAAW;AACxB;AACA;AACA;AACA,WAAW,8DAAW;AACtB,WAAW,8DAAW;AACtB;AACA;AACA;;AAEA,WAAW,8DAAW;AACtB,WAAW,8DAAW;AACtB,WAAW,8DAAW;AACtB;AACA;AACA;;AAEA,WAAW,8DAAW;AACtB,QAAQ,OAAO;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,8DAAW;AAC9B;;AAEA;AACA;AACA,mBAAmB,8DAAW;AAC9B;;AAEA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,iCAAiC,8DAAW;AAC5C;;AAEA;AACA,cAAc;AACd;AACA;AACA,iCAAiC,8DAAW;AAC5C;;AAEA;AACA,cAAc;AACd;AACA;AACA,iCAAiC,8DAAW;AAC5C;;AAEA;AACA,cAAc;AACd;AACA;AACA,iCAAiC,8DAAW;AAC5C;;AAEA;AACA,cAAc;AACd;AACA;AACA,iCAAiC,8DAAW;AAC5C;;AAEA;AACA,cAAc;AACd;AACA;AACA,iCAAiC,8DAAW;AAC5C;;AAEA;AACA,cAAc;AACd;AACA;AACA,iCAAiC,8DAAW;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,gFAAqB;AAClD;AACA;;;;;;;;;;;;;;;;;;;;ACzMgD;AACI;AACnB;;;AAG1B;AACP;AACA,kBAAkB,8DAAW;AAC7B;AACA;AACA;AACA;AACA;;AAEA,wBAAwB;AACxB,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B,0DAAI;AAClC;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,2BAA2B,8DAAW;AACtC;;AAEA;AACA,cAAc;AACd;AACA;AACA,2BAA2B,8DAAW;AACtC;;AAEA;AACA,cAAc;AACd;AACA;AACA,2BAA2B,8DAAW;AACtC;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB,8DAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB,8DAAW;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,8BAA8B,0DAAI;AAClC,6BAA6B,0DAAI;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA,yBAAyB,0DAAI;AAC7B;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA,2FAA2F,0DAAI;AAC/F;;AAEA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC/QO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AChBO;;AAEP;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC/FO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;ACX+C;;AAExC;AACP;AACA,qBAAqB,yDAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACbqD;AACV;AACM;AACL;;AAErC;;AAEP;AACA,4BAA4B,gEAAe;AAC3C,uBAAuB,sDAAU;AACjC,0BAA0B,4DAAa;AACvC,yBAAyB,uDAAY;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;;;;;;;;;;;;;;;;;AC9B2C;AACN;;AAE9B,4BAA4B,sDAAU;;AAE7C;AACA;AACA;AACA,YAAY,aAAa;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA,oBAAoB,gDAAO;AAC3B;AACA;AACA;AACA;AACA;;AAEA,eAAe,6BAA6B;AAC5C;AACA;;AAEA;AACA,aAAa,6BAA6B;AAC1C;AACA;AACA;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA,iDAAiD,sCAAsC;AACvF,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;AACA,2DAA2D,gCAAgC;;AAE3F;AACA;;AAEA;AACA;;AAEA;;AAEA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAI,gBAAgB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,eAAe,eAAe;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK,eAAe,eAAe;AACnC;AACA;;;;;;;;;;;;;;;;;;ACpKgE;AACF;;AAEvD;;AAEP;AACA,wBAAwB,yEAAqB;AAC7C;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,cAAc,2EAAsB,gCAAgC,sBAAsB;AAC1F;AACA;;;;;;;;;;;;;;;;;;AChBwD;AACE;;AAEnD;;AAEP;AACA,+BAA+B,kEAAe;AAC9C,gCAAgC,oEAAgB;AAChD;;;AAGA;AACA,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,mBAAmB,wDAAwD;AAC3E;AACA,wDAAwD,cAAc;AACtE;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,yCAAyC;AACnD;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,wBAAwB;AACzE;AACA,YAAY;AACZ,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACtKmE;;AAE5D;;AAEP;AACA;AACA;AACA;AACA,cAAc,8EAAsB;AACpC;;AAEA;;;;;;;;;;;;;;;;;ACX2C;;AAEpC,8BAA8B,sDAAU;;AAE/C;AACA;AACA;AACA,aAAa,eAAe;AAC5B,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,wBAAwB,MAAM;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,OAAO;;AAEP;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;ACjEO;;AAEP;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACV2C;;AAEpC,2BAA2B,sDAAU;;AAE5C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD,eAAe;AACjE,+CAA+C,eAAe;AAC9D;;AAEA;AACA;AACA,oDAAoD,WAAW;AAC/D,iDAAiD,WAAW;AAC5D;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;;;;;;;;;;;;;;;;;AC9H2C;AACN;;AAE9B,yBAAyB,sDAAU;;AAE1C;AACA;AACA;AACA,YAAY,aAAa;AACzB;AACA;;AAEA;AACA;AACA,oBAAoB,gDAAO;AAC3B;;AAEA;AACA,aAAa,aAAa;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAI,gBAAgB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK,eAAe,eAAe;;AAEnC;AACA;AACA,KAAK,eAAe,eAAe;AACnC;AACA;;;;;;;;;;;;;;;;AClHO;AACP;AACA,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,gCAAgC,8CAA8C;AAC9E;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,gCAAgC,6CAA6C;AAC7E;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC,qBAAqB;;AAEtD;AACA;AACA,MAAM;AACN,iCAAiC,wEAAwE;;AAEzG,MAAM;AACN,iCAAiC,4EAA4E;AAC7G;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,gCAAgC,8BAA8B;AAC9D;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,gCAAgC,kBAAkB;AAClD;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;;AAEA,+BAA+B,QAAQ;AACvC;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;;AAEA,8BAA8B,OAAO;AACrC;;AAEA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;;AAEA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,+BAA+B,8BAA8B;AAC7D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,8BAA8B;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,8BAA8B;AACtC,QAAQ,kCAAkC;AAC1C,QAAQ,oCAAoC;AAC5C,QAAQ;AACR;;AAEA;AACA;;AAEA;AACA;AACA,kCAAkC,8BAA8B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC9RO;;AAEP;AACA,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,UAAU;AACvB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AChDO;AACA;AACA;AACA;AACA;;AAEA;;AAEP;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc,QAAQ;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AChDO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,oBAAoB,uCAAuC;AAC3D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC5CO;AACP;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;;;;;;;;;;;;;;;ACZO;;AAEP;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AA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Q,oCAAoC,oCAAoC,gEAAY,0BAA0B;AAC5H,MAAM,yDAAQ;AACd;;AAEA;AACA,MAAM,yDAAQ;AACd,MAAM,yDAAQ,oCAAoC,oCAAoC,gEAAY,uBAAuB;AACzH,MAAM,yDAAQ;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,qDAAM;AAClC,MAAM,OAAO;AACb;AACA,KAAK;;AAEL;AACA,4BAA4B,qDAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,4BAA4B,qDAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;;AAEA;AACA,kDAAkD,sEAAiB;AACnE;AACA;AACA;AACA,gDAAgD,sEAAiB;AACjE,qCAAqC,gEAAY;AACjD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,oBAAoB;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC7U8C;AACC;AACkB;;AAE1D,wBAAwB,2EAAiB;;AAEhD;AACA;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;;AAEA;AACA;AACA,UAAU,wDAAU;AACpB;AACA;AACA;AACA;AACA,IAAI,yDAAQ;AACZ,IAAI,yDAAQ;;AAEZ,IAAI,yDAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;AACA;AACA;;;;;;;;;;;;;;;;;;ACtCkD;AACkB;;AAE7D,+CAA+C,2EAAiB;;AAEvE;AACA,aAAa,WAAW;AACxB,aAAa,aAAa;AAC1B,aAAa,sBAAsB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,yDAAQ;AAChB;AACA,KAAK;AACL,MAAM,yDAAQ;AACd,KAAK;AACL;;AAEA;;AAEA,IAAI,yDAAQ,oBAAoB,yDAAQ;;AAExC,IAAI,yDAAQ;;AAEZ,IAAI,yDAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;ACrDkD;AACkB;AACnB;AACsB;AACxB;AACS;;AAEjD,+CAA+C,2EAAiB;;AAEvE;AACA,aAAa,WAAW;AACxB,aAAa,mBAAmB;AAChC,aAAa,sBAAsB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+DAAW;AACvB;;AAEA,QAAQ,yDAAQ;AAChB;AACA;AACA;;AAEA;AACA,0BAA0B,wDAAS;AACnC,mDAAmD;;AAEnD,IAAI,yDAAQ,oBAAoB,yDAAQ;;AAExC,IAAI,yDAAQ;;AAEZ,IAAI,yDAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC,uBAAuB,wBAAwB;AAC/C,uBAAuB,+BAA+B;AACtD;AACA;AACA;AACA,yBAAyB,wBAAwB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6BAA6B;AACnD,oBAAoB,6BAA6B;AACjD;AACA;AACA,0BAA0B,6BAA6B;AACvD;AACA;AACA;AACA;AACA;AACA,sBAAsB,8BAA8B;AACpD,oBAAoB,8BAA8B;AAClD;AACA;AACA,0BAA0B,8BAA8B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC/HkD;AACkB;AACN;AACL;;AAElD,oCAAoC,2EAAiB;;AAE5D;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,mBAAmB;AAChC,aAAa,sBAAsB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA,WAAW,qEAAgB;AAC3B;AACA,QAAQ;AACR;AACA,oCAAoC,gEAAY;AAChD;AACA;AACA,kCAAkC,gEAAY;AAC9C,QAAQ,yDAAQ;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,IAAI,yDAAQ,oBAAoB,yDAAQ;;AAExC,IAAI,yDAAQ;AACZ;AACA;AACA;AACA,QAAQ,yDAAQ;AAChB,OAAO;;AAEP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;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AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yDAAQ;AACpB,YAAY;AACZ,YAAY,yDAAQ;AACpB,YAAY;AACZ,YAAY,yDAAQ;AACpB,YAAY;AACZ,YAAY,yDAAQ;AACpB;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA4B,wDAAS;;AAErC,uCAAuC;AACvC;;AAEA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;;AAEA;AACA,6EAA6E,+DAAW,iBAAiB,+DAAW;AACpH;;AAEA,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;AACd;AACA;AACA;AACA,UAAU,yDAAQ;AAClB,SAAS;;AAET,MAAM,yDAAQ;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,SAAS;AAC3E;AACA,2BAA2B,wBAAwB;AACnD,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD,sBAAsB,6BAA6B;AACnD,kBAAkB;AAClB,kBAAkB;AAClB;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8BAA8B;AACtD,sBAAsB,8BAA8B;AACpD,kBAAkB;AAClB,kBAAkB;AAClB;AACA;AACA,4BAA4B,8BAA8B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,yDAAQ;;AAEd;AACA,KAAK;AAC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AAoB,yDAAQ;;AAExC,IAAI,yDAAQ;AACZ;AACA;AACA;AACA,QAAQ,yDAAQ;AAChB,OAAO;;AAEP,IAAI,yDAAQ;AACZ;AACA,sBAAsB,4BAA4B;AAClD,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA,yBAAyB,2BAA2B;AACpD;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACvFkD;AACkB;AACY;AACrB;AACF;;AAElD,sCAAsC,2EAAiB;;AAE9D;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,gEAAY;AACjF,+BAA+B,kEAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0FAAwB;AAChE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gEAAgE,gEAAY;AAC5E;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,yDAAQ;AAChB,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,cAAc,UAAU,GAAG,cAAc;AACzC;;AAEA;AACA;AACA,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;AACd,QAAQ,yDAAQ;AAChB,OAAO;AACP,MAAM;AACN,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;AACd,QAAQ,yDAAQ;AAChB,OAAO;AACP;AACA;;AAEA;AACA;;AAEA,IAAI,yDAAQ;AACZ;AACA;AACA;AACA;;AAEA,IAAI,yDAAQ;AACZ;;AAEA;AACA;;AAEA;;AAEA,IAAI,yDAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,qBAAqB;AACxE,kBAAkB;AAClB,kBAAkB;AAClB;AACA;AACA,mBAAmB;AACnB,yBAAyB,kBAAkB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;AACA;;AAEA;AACA,wBAAwB,yDAAQ;AAChC;AACA;AACA,0BAA0B,yDAAQ;AAClC;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;AC7VkD;AACkB;AACT;;AAEpD,4CAA4C,2EAAiB;;AAEpE;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,iCAAiC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kEAAe;AAC9C;AACA;;AAEA;AACA;AACA,2CAA2C,UAAU;AACrD,QAAQ,yDAAQ;AAChB,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,0BAA0B;AACxE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,KAAK,EAAE,SAAS;AAC9B,+CAA+C,yBAAyB;AACxE;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,yBAAyB;;AAExD;AACA;AACA;AACA,YAAY;AACZ,YAAY;AACZ;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,kBAAkB,MAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;AACd,QAAQ,yDAAQ;AAChB,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP,MAAM,yDAAQ;AACd;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,YAAY;;AAEZ;AACA;;AAEA,MAAM,yDAAQ;;AAEd;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;;ACpLkD;AACkB;AACD;AACU;;AAEtE,8CAA8C,2EAAiB;;AAEtE;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA,WAAW,0EAAqB;AAChC;AACA,QAAQ;AACR,0CAA0C,oFAAwB;AAClE;AACA;;AAEA,QAAQ,yDAAQ;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA,oCAAoC,SAAS,IAAI,mCAAmC;AACpF;;AAEA,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;AACd;AACA;AACA;AACA,UAAU,yDAAQ;AAClB,SAAS;;AAET,MAAM,yDAAQ;AACd;AACA;AACA;AACA;AACA,mDAAmD,yBAAyB;AAC5E;AACA;AACA;AACA,0BAA0B,yBAAyB;AACnD,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA,mDAAmD,yBAAyB;AAC5E;AACA;AACA,wBAAwB,yBAAyB;AACjD,0BAA0B,yBAAyB;AACnD;AACA;AACA,oBAAoB;AACpB;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA,yBAAyB,yBAAyB;AAClD;AACA;AACA;AACA;;AAEA,MAAM,yDAAQ;;AAEd;;AAEA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;ACvHkD;AACkB;AACT;;AAEpD,wCAAwC,2EAAiB;;AAEhE;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,8BAA8B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kEAAe;AAC9C;AACA;;AAEA;AACA;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,8CAA8C,0BAA0B;AACxE;AACA;AACA;AACA;AACA,gBAAgB,KAAK,EAAE,SAAS;AAChC;AACA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iCAAiC;AAClD;AACA;AACA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yBAAyB;AAC3C;AACA;AACA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8BAA8B;AAC/C;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,yDAAQ,oBAAoB,yDAAQ;;AAExC,IAAI,yDAAQ;AACZ,MAAM,yDAAQ;AACd,KAAK;;AAEL,IAAI,yDAAQ;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,8DAA8D,UAAU;AACxE;AACA,cAAc;AACd,cAAc;AACd,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,kBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACrNkD;AACkB;AACT;AACC;AACO;AACV;;AAElD,wCAAwC,2EAAiB;;AAEhE;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kEAAe;AAC9C;AACA,8CAA8C,gEAAY;AAC1D;AACA;AACA;;AAEA;AACA;AACA,6CAA6C,eAAe;AAC5D,QAAQ,yDAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;;AAEA;AACA;AACA,iCAAiC,eAAe;;AAEhD;AACA;AACA;AACA;AACA,6CAA6C,UAAU;AACvD;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,+BAA+B,sEAAU;AACzC;AACA,UAAU,0EAAiB;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,yDAAQ,oBAAoB,yDAAQ;;AAE5C,QAAQ,yDAAQ;AAChB,UAAU,yDAAQ;AAClB,SAAS;;AAET;AACA;AACA,SAAS;;AAET,QAAQ,yDAAQ;AAChB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,cAAc;;AAEd;AACA;;AAEA,QAAQ,yDAAQ;;AAEhB;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;;;;AC5IkD;AACkB;AACT;AACJ;AACyB;;AAEzE,0CAA0C,2EAAiB;;AAElE;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kEAAe;AAC9C,6BAA6B,8DAAa;AAC1C,wCAAwC,0FAAwB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,OAAO;AACf,OAAO;AACP;;AAEA;AACA;AACA,QAAQ,yDAAQ;AAChB,OAAO;AACP;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA,uBAAuB,wBAAwB,yDAAyD,uCAAuC;AAC/I,MAAM;AACN,uBAAuB,wBAAwB,iEAAiE,wCAAwC;AACxJ;AACA,cAAc,8BAA8B;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;AACd,QAAQ,yDAAQ;AAChB;AACA;AACA,WAAW;AACX;AACA,OAAO;;AAEP,MAAM,yDAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA,uBAAuB,oDAAoD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC,uBAAuB,8BAA8B;AACrD;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;;AAEA,MAAM,yDAAQ;;AAEd;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;ACnJkD;AACkB;AACX;;AAElD,6CAA6C,2EAAiB;;AAErE;AACA,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,gEAAY;AAC/E;;AAEA;AACA,IAAI,yDAAQ;;AAEZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;;AAEA;AACA,IAAI,yDA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BAA4B,qDAAM;AAClC;;AAEA;AACA;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AClEsF;;AAE/E,uCAAuC,6FAA0B;;AAExE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,UAAU;;AAEnD;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,UAAU;AACxB;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA,UAAU;AACV,oBAAoB,UAAU,UAAU,MAAM;AAC9C,UAAU;AACV;AACA;AACA;AACA;;;;;;;;;;;;;;;ACrCO;AACP;AACA;AACA;;AAEA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;;AAEA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,6BAA6B;AAC1C;AACA;AACA;AACA;;AAEA;AACA,aAAa,UAAU;AACvB;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACvE8C;AACuB;AACnB;;AAE3C;;AAEP;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA,mCAAmC;AACnC;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,WAAW;AACxB,aAAa,eAAe;AAC5B,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,kCAAkC,4EAAkB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA,eAAe;AACf;AACA;AACA;AACA,UAAU,wBAAwB,KAAK,aAAa;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sEAAsE;AACtE;AACA;AACA,OAAO;AACP;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,SAAS;AACtB,cAAc;AACd;AACA;AACA;;AAEA,4DAA4D;AAC5D;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,qDAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA,aAAa,SAAS;AACtB;AACA;AACA;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A2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oDAAoD,qFAA2B;AAC/E;AACA;AACA,QAAQ,oEAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM;;AAEN,oDAAoD,qFAA2B;AAC/E;AACA;AACA,QAAQ,oEAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wEAAwE,oEAAY;AACpF;AACA;;AAEA,iFAAiF,iEAAgB;;AAEjG,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,oBAAoB;AACnE;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iFAAiF,iEAAgB;;AAEjG,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,oBAAoB;AACrE;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACzgCsF;AACxC;AACsB;AACX;;AAElD,kCAAkC,6FAA0B;;AAEnE;AACA,aAAa,WAAW;AACxB,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+EAAwB;;AAEhE;AACA;AACA,sFAAsF,gEAAY;AAClG;;AAEA;;AAEA;AACA,gCAAgC,cAAc;AAC9C,gCAAgC,qDAAM;;AAEtC;AACA,yBAAyB,cAAc;AACvC,yBAAyB,qDAAM;;AAE/B;AACA,6BAA6B,cAAc;AAC3C,6BAA6B,qDAAM;;AAEnC;AACA,gCAAgC,cAAc;AAC9C,gCAAgC,qDAAM;;AAEtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B,cAAc;AACzC;AACA;;AAEA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC,qBAAqB,EAAE,yBAAyB;AACzF,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC,8BAA8B;AACvE,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,kBAAkB;AAChC;AACA,SAAS,qBAAqB;AAC9B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,oBAAoB;AAClC;AACA,SAAS,uBAAuB;AAChC;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,6CAA6C,cAAc;AAC3D;AACA;AACA,kBAAkB;AAClB;AACA,gBAAgB;AAChB;AACA;;AAEA,YAAY;AACZ;;;AAGA;AACA;AACA;AACA,cAAc;;AAEd,cAAc;;AAEd,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AChQsF;AAClB;AACjB;AACQ;;AAEpD,kCAAkC,6FAA0B;;AAEnE;AACA,aAAa,WAAW;AACxB,aAAa,YAAY;AACzB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,SAAS;AAC5B;;AAEA,wBAAwB,UAAU,WAAW,cAAc;AAC3D;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,c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EA;AACA;AACA,mBAAmB,oBAAoB,4BAA4B,OAAO;AAC1E;;AAEA;;AAEA,mBAAmB,wBAAwB;AAC3C;AACA,qBAAqB,mBAAmB,oDAAoD,aAAa;AACzG,sCAAsC,aAAa;AACnD;AACA;AACA;;AAEA,UAAU;;AAEV;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM,OAAO,wBAAwB,qBAAqB;AAC1D;;AAEA,2BAA2B,gBAAgB;;AAE3C;AACA,uEAAuE,gEAAY;;AAEnF;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,gBAAgB;;AAElD;AACA;AACA,mBAAmB,oBAAoB,4BAA4B,OAAO;AAC1E;;AAEA;;AAEA,mBAAmB,wBAAwB;AAC3C;AACA,cAAc;AACd;AACA,2BAA2B,mBAAmB;AAC9C,oBAAoB;AACpB;AACA;AACA;AACA,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU;;AAEV;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA,gCAAgC,2EAAmB;AACnD;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA,6BAA6B,2EAAmB;AAChD;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;A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CA;AACA;AACA;AACA;;AAEA;;AAEA,gCAAgC,sEAAc;AAC9C;AACA;AACA;AACA;AACA,qCAAqC,qFAAuB;AAC5D,YAAY;AACZ;AACA,kCAAkC,sEAAc;AAChD,wDAAwD,4BAA4B;AACpF;AACA;AACA;AACA;AACA,uCAAuC,qFAAuB;AAC9D;;AAEA;AACA,0DAA0D,sEAAc;AACxE;AACA;AACA;AACA,qCAAqC,mFAAsB;AAC3D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA,iCAAiC,SAAS;AAC1C;AACA,iCAAiC,gBAAgB;AACjD;AACA,gCAAgC,mCAAmC;AACnE,iCAAiC,0BAA0B;AAC3D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB;AACA;AACA;AACA,6CAA6C,4BAA4B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,sEAAc;AACxE;;AAEA;AACA;AACA,sCAAsC,2EAAmB;AACzD;AACA;AACA;AACA;AACA,aAAa;AACb,YAAY;AACZ,0DAA0D,sEAAc;AACxE;;AAEA;AACA;AACA,mCAAmC,2EAAmB;AACtD;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA,iCAAiC,SAAS;AAC1C;AACA,iCAAiC,gBAAgB;AACjD;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB;AACA;AACA;AACA,6CAA6C,4BAA4B;AACzE;AACA;AACA;AACA;AACA;;AAEA;AACA;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AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,mCAAmC,wFAA4B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA,iBAAiB,WAAW;AAC5B,mBAAmB,eAAe;AAClC,mBAAmB,iBAAiB;AACpC,mBAAmB,eAAe;AAClC,mBAAmB,mBAAmB;AACtC,mBAAmB,sBAAsB;AACzC,mBAAmB,gBAAgB;AACnC,mBAAmB,qBAAqB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACtX8G;AACrB;;AAEzF;AACA;AACA;AACO,mCAAmC,6FAA0B;;AAEpE;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,KAAK;AACnB;AACA;AACA;AACA,gCAAgC,kEAAa;AAC7C;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA,yCAAyC,kEAAa;AACtD;;AAEA;AACA;AACA;AACA,cAAc,KAAK;AACnB;AACA;AACA;;AAEA,kCAAkC,4EAAuB;AACzD,uCAAuC,kEAAa;;AAEpD;AACA,iDAAiD,0EAAqB;;AAEtE;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gBAAgB,IAAI,QAAQ,iBAAiB,KAAK,SAAS,UAAU;AACvH;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC5EyF;;AAEzF;AACA;AACA;AACO,mCAAmC,6FAA0B;;AAEpE;AACA,aAAa,WAAW;AACxB,aAAa,QAAQ;AACrB,aAAa,KAAK;AAClB,aAAa,KAAK;AAClB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA,yDAAyD,YAAY,IAAI,SAAS,WAAW,IAAI,OAAO,SAAS;AACjH,qCAAqC,uBAAuB;AAC5D;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACxCyF;;AAEzF;AACA;AACA;AACO,oCAAoC,6FAA0B;;AAErE;AACA,aAAa,WAAW;AACxB,aAAa,6BAA6B;AAC1C,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA,oBAAoB,yBAAyB;;AAE7C;;AAEA,sBAAsB,2BAA2B;AACjD;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;AC1CyF;AACxC;AACuB;AACH;AACD;AACF;AACoB;;AAEtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,2CAA2C,6FAA0B;;AAE5E;AACA,aAAa,WAAW;AACxB,aAAa,eAAe;AAC5B,aAAa,mBAAmB;AAChC,aAAa,yBAAyB;AACtC,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB,aAAa,QAAQ,gCAAgC;AACrD;AACA,aAAa,QAAQ;AACrB;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,cAAc;;AAE/C;AACA;AACA;AACA;AACA,kCAAkC,+EAAwB;AAC1D;AACA;AACA;AACA;AACA,MAAM,4EAAuB;AAC7B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,+BAA+B;AAC9C;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA,eAAe,OAAO,2DAA2D,GAAG;AACpF;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,uBAAuB,iBAAiB;AACxC;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,SAAS;AACxF;;AAEA;AACA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,eAAe,mCAAmC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,aAAa;AAC1B,aAAa,gBAAgB;AAC7B,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR,QAAQ;AACR;AACA;AACA;AACA;;AAEA,4BAA4B,+EAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI,6EAAuB;;AAE3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sBAAsB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,0FAA2B;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,wBAAwB;AACrC,aAAa,aAAa;AAC1B;AACA;AACA;AACA,mCAAmC,kCAAkC;AACrE;;AAEA;AACA,iCAAiC,qDAAM;AACvC,iCAAiC,qDAAM;;AAEvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qCAAqC;AACzD,aAAa,wBAAwB;AACrC;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACpaoE;AACtB;AACQ;AACL;AACW;AACA;AACI;AACR;;;AAGjD,yCAAyC,+EAAwB;;AAExE;AACA,aAAa,WAAW;AACxB,aAAa,eAAe;AAC5B,aAAa,aAAa;AAC1B,aAAa,UAAU;AACvB,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,aAAa,YAAY;AACzB,aAAa,YAAY;AACzB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,OAAO,sCAAsC,GAAG;AAC/D;;AAEA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,eAAe;AAC5B;AACA;AACA;AACA,mCAAmC,eAAe;AAClD;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,qCAAqC;AACzD,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,aAAa;AAC1B;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,2BAA2B;AAC/C,6DAA6D,iCAAiC;AAC9F;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB,cAAc,aAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gEAAY;AAC/C,kCAAkC,gEAAY;AAC9C;AACA;AACA;AACA;AACA;AACA,aAAa,4DAAU;AACvB;AACA;AACA;AACA;AACA,0CAA0C,oEAAY;AACtD,aAAa,4DAAU;AACvB;AACA,0CAA0C,oEAAY;AACtD,aAAa,4DAAU;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA,cAAc,cAAc;AAC5B;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yDAAyD,SAAS;AAClE,8DAA8D,oCAAoC;AAClG;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD,cAAc,EAAE,gBAAgB;AACnF;;AAEA;AACA,QAAQ;AACR,QAAQ;AACR;AACA;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iFAAiF,eAAe;AAChG;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,UAAU,YAAY,GAAG,eAAe,mBAAmB,SAAS;AACpE;AACA;AACA;AACA;AACA,mFAAmF,SAAS;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,gCAAgC,qDAAM;AACtC;AACA;AACA,uCAAuC,gEAAY;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA,KAAK;;AAEL;AACA,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA,8CAA8C,YAAY,6CAA6C,eAAe;AACtH;AACA;AACA;AACA,KAAK;AACL,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA,8CAA8C,YAAY,6CAA6C,eAAe;AACtH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;;;;;;AC5biD;AACuB;AAC1B;AACA;AACsB;AACR;AACV;AACmB;;;AAG9D,sCAAsC,+EAAwB;;AAErE;AACA,aAAa,WAAW;AACxB,aAAa,eAAe;AAC5B,aAAa,UAAU;AACvB,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,aAAa,YAAY;AACzB,aAAa,YAAY;AACzB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,4EAAkB;AACpD,yBAAyB,sDAAS;;AAElC,eAAe,0CAA0C;AACzD;;AAEA,eAAe,OAAO,sCAAsC,GAAG;AAC/D;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,0BAA0B;AACvC,aAAa,qBAAqB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B,aAAa,QAAQ;AACrB,aAAa,gBAAgB;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM;;AAEN;AACA;AACA;AACA;AACA;;AAEA,6CAA6C,+EAAwB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gEAAY;AAC3D,oIAAoI,SAAS;AAC7I;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA,wDAAwD,gEAAY;AACpE;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,eAAe;AAC5B;AACA;AACA;AACA,mCAAmC,eAAe;AAClD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qCAAqC;AACzD,aAAa,gBAAgB;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA,KAAK;;AAEL,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA,KAAK;;AAEL,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA,KAAK;;AAEL,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA,KAAK;;AAEL,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA,KAAK;;AAEL,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA,KAAK;;AAEL,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA,KAAK;;AAEL,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;ACrXyF;;AAEzF;AACA;AACA;AACO,uCAAuC,6FAA0B;;AAExE;AACA,aAAa,WAAW;AACxB,aAAa,mBAAmB;AAChC,aAAa,QAAQ;AACrB,aAAa,KAAK;AAClB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,KAAK;AAClB;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,KAAK;AAClB;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA,2CAA2C,cAAc;AACzD;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;;AAEA,2BAA2B,8BAA8B;;AAEzD;AACA;;AAEA,6BAA6B,6BAA6B;;AAE1D;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;AChGyC;AAC2B;AACqB;;AAEzF;AACA;AACA;AACO,kCAAkC,6FAA0B;;AAEnE;AACA,aAAa,WAAW;AACxB,aAAa,+BAA+B;AAC5C,aAAa,mBAAmB;AAChC,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,mCAAmC,kFAA6B;AAChE,qCAAqC,oFAA+B;AACpE,iCAAiC,gFAA2B;AAC5D,2BAA2B,kFAA6B;AACxD,iCAAiC,gFAA2B;AAC5D,mCAAmC,kFAA6B;;AAEhE;AACA;;AAEA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,aAAa,KAAK;AAClB;AACA,cAAc;AACd;AACA,iDAAiD,4EAAuB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,WAAW,kEAAa;AACxB,mBAAmB,wEAAmB;AACtC;AACA;;AAEA;AACA;AACA;AACA;AACA,uFAAuF,oFAA+B;AACtH;AACA;;AAEA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA,cAAc,UAAU;AACxB;AACA;AACA;;AAEA,oBAAoB,IAAI,kEAAa,SAAS;;AAE9C,yBAAyB,kEAAa;;AAEtC,sBAAsB,SAAS,wEAAmB,eAAe;AACjE;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,mBAAmB;;AAEvC;AACA;;AAEA,mBAAmB,+EAAwB;AAC3C;AACA;AACA;AACA;AACA,QAAQ,4EAAuB;AAC/B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;AC9IsD;AAMb;AACgD;;AAEzF;AACA;AACA;AACO,sCAAsC,6FAA0B;;AAEvE;AACA,aAAa,WAAW;AACxB,aAAa,mBAAmB;AAChC,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,KAAK;AAClB,aAAa,KAAK;AAClB;AACA,cAAc,aAAa;AAC3B;AACA;;AAEA,oBAAoB,0DAAW;;AAE/B;AACA,kBAAkB,kEAAa;;AAE/B;AACA;AACA;;AAEA;AACA,mBAAmB,iBAAiB;AACpC;;AAEA;AACA,eAAe,0EAAqB;;AAEpC;AACA;AACA,iBAAiB,4EAAuB,GAAG,kEAAa;AACxD;;AAEA;AACA;;AAEA,wBAAwB,kEAAa;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,IAAI,4EAAuB,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,QAAQ;AACtB;AACA;AACA;AACA,OAAO,6EAAwB;AAC/B,OAAO,6EAAwB;AAC/B,OAAO,+EAA0B;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA;AACA,8DAA8D,6EAAwB;AACtF;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,KAAK;AAClB,aAAa,KAAK;AAClB,aAAa,QAAQ;AACrB,cAAc,aAAa;AAC3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,sBAAsB,+EAA0B;AAChD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,KAAK;AAClB,aAAa,KAAK;AAClB,aAAa,SAAS;AACtB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,UAAU,gBAAgB,MAAM,IAAI,QAAQ,MAAM;AACvF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,KAAK;AAClB,aAAa,KAAK;AAClB,cAAc,aAAa;AAC3B;AACA;AACA;AACA;;AAEA,oBAAoB,IAAI,4EAAuB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7MyF;AAMhD;AACQ;AACA;AACD;AACF;AACA;AAC0C;AACZ;AACI;AACA;AACpB;AACV;;;AAG3C,wCAAwC,6FAA0B;;AAEzE;AACA,aAAa,WAAW;AACxB,aAAa,sBAAsB;AACnC,aAAa,eAAe;AAC5B,aAAa,UAAU;AACvB,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,aAAa,YAAY;AACzB,aAAa,YAAY;AACzB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uDAAS;AAClC;AACA;AACA;AACA,yDAAyD,oEAAe;AACxE;AACA;;AAEA,eAAe,QAAQ;AACvB;;AAEA,eAAe,QAAQ;AACvB;;AAEA,eAAe,QAAQ;AACvB;;AAEA,eAAe,OAAO;AACtB;;AAEA,eAAe,OAAO;AACtB;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,eAAe;AAC5B,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,SAAS;AACnC,qBAAqB,KAAK;AAC1B,0BAA0B,SAAS;AACnC,sBAAsB,MAAM;AAC5B,qBAAqB,KAAK;AAC1B,0BAA0B,SAAS;AACnC,2BAA2B,UAAU;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,0DAA0D,oEAAe;AACzE,sDAAsD,6EAAwB;;AAE9E;AACA;AACA;;AAEA;AACA,qBAAqB,oEAAe;AACpC;AACA;AACA;AACA;AACA,QAAQ,mEAAc;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,sBAAsB,qDAAM,0BAA0B,qDAAM;AAClE,cAAc,+EAA0B;AACxC,MAAM;AACN,oBAAoB,qDAAM,uBAAuB,qDAAM;AACvD,0BAA0B,qDAAM,yBAAyB,qDAAM;AAC/D;AACA,cAAc,+EAA0B;AACxC,MAAM,sBAAsB,qDAAM,yBAAyB,qDAAM;AACjE,cAAc,+EAA0B;AACxC,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,iCAAiC;AACrD;AACA;AACA,UAAU,mEAAc;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA,OAAO,6EAAwB,GAAG,kFAA6B;AAC/D,OAAO,6EAAwB,GAAG,kFAA6B;AAC/D;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,6EAAwB;AAC/C;AACA;AACA;AACA,MAAM,wBAAwB,6EAAwB;AACtD;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ,mEAAc;AACtB,QAAQ,mEAAc;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,+EAA0B;AACjD;AACA;;AAEA;AACA,QAAQ,mEAAc;AACtB,QAAQ,mEAAc;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2EAAsB;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,mEAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2EAAsB;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,mEAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,uBAAuB,oEAAe;AACtC;AACA;;AAEA;AACA,MAAM,mEAAc;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;;AAEA,mBAAmB,iCAAiC;;AAEpD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,oCAAoC,6EAAwB;AAC5D;AACA;AACA;;AAEA,gDAAgD,WAAW;AAC3D;;AAEA;AACA;AACA;AACA;AACA,aAAa,oBAAoB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,uDAAuD,SAAS,iBAAiB,MAAM,gBAAgB,KAAK,qBAAqB,SAAS;AAC1I;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+CAA+C,iEAAY;AAC3D;;AAEA;AACA;AACA,kDAAkD,mEAAc,SAAS,qBAAqB,SAAS;AACvG;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,oFAAuB;;AAEpD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,qFAAuB;;AAEpD;AACA,4CAA4C,sEAAc;AAC1D,QAAQ,4EAAoB;AAC5B,QAAQ,4EAAoB;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,aAAa;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,gFAAqB;AAClD;;AAEA;AACA;;AAEA;AACA;AACA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AAEZ,IAAI,yDAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,yBAAyB;AAC9C;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACxIkD;AACkB;AACT;AACJ;AACqB;AACb;AACK;AACY;AACvB;;AAElD,+BAA+B,2EAAiB;;AAEvD;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,cAAc;AAC3B,aAAa,cAAc;AAC3B,aAAa,aAAa;AAC1B,aAAa,YAAY;AACzB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kEAAe;AAC9C,iCAAiC,2EAAiB;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C,gEAAY;AACxD;AACA;AACA,gBAAgB,8DAAW;AAC3B,OAAO;;AAEP;;AAEA,MAAM,yDAAQ;;AAEd,6CAA6C,mFAAkB;AAC/D,4DAA4D,gEAAY;AACxE,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA,4CAA4C,WAAW;AACvD;AACA;AACA;AACA,gBAAgB,UAAU;;;AAG1B,oBAAoB,KAAK,EAAE,SAAS;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sEAAiB;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CA,UAAU,yDAAQ;AAClB,SAAS;;AAET,MAAM,yDAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,wBAAwB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wBAAwB;AAClD,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,yBAAyB;AAC5E;AACA;AACA,wBAAwB,yBAAyB;AACjD,0BAA0B,yBAAyB;AACnD;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C,0BAA0B,mBAAmB;AAC7C;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,yBAAyB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yBAAyB;AACvD,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA,6BAA6B,yBAAyB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,yDAAQ;;AAEd;;AAEA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;ACnNkD;AACkB;;AAE7D,mCAAmC,2EAAiB;;AAE3D;AACA,aAAa,oBAAoB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI,yDAAQ;;AAEZ,IAAI,yDAAQ;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,IAAI,yDAAQ;AACZ;AACA,UAAU;AACV;AACA,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ;AACA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;AACA;AACA;;;;;;;;;;;;;;;;;;;AChEkD;AACkB;AACX;;AAElD,kCAAkC,2EAAiB;;AAE1D;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;AACA,MAAM,yDAAQ,kCAAkC,qCAAqC;AACrF,KAAK;AACL;AACA,MAAM,yDAAQ,iCAAiC,qCAAqC;AACpF,KAAK;AACL;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;;AAEA;;AAEA,8FAA8F,gEAAY;AAC1G;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;;AAEd,MAAM,yDAAQ;AACd;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,cAAc;AAC9E;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,8BAA8B;AAC9F;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,aAAa;AAC7E;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,YAAY;AAC5E;AACA;AACA;AACA;AACA;;AAEA,MAAM,yDAAQ;;AAEd;;AAEA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;;ACjHkD;AACkB;AACY;AACrB;;AAEpD,oCAAoC,2EAAiB;;AAE5D;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0FAAwB;AAChE,+BAA+B,kEAAe;;AAE9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,kCAAkC;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;AACd,QAAQ,yDAAQ;AAChB,OAAO;;AAEP,MAAM,yDAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,mDAAmD,iDAAiD;AACpG;AACA;AACA,4BAA4B;AAC5B,yBAAyB,kBAAkB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAuD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,wDAAwD,GAAG,4DAA4D;AAChJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,+CAA+C;AACtE;AACA;AACA;AACA,uBAAuB,uDAAuD;AAC9E;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,yDAAQ;;AAEd;;AAEA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;;AC3SkD;AACkB;AACT;AACqB;;AAEzE,uCAAuC,2EAAiB;;AAE/D;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kEAAe;AAC9C;AACA,wCAAwC,0FAAwB;;AAEhE;AACA;AACA;;AAEA;AACA;AACA,qDAAqD,eAAe;AACpE,QAAQ,yDAAQ,kCAAkC,wBAAwB;AAC1E,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,sBAAsB;AACnC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,0BAA0B,eAAe,0BAA0B;AACzF;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,sBAAsB;AACnC,cAAc;AACd;AACA;AACA;AACA;AACA,kBAAkB,8BAA8B;;AAEhD;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA,aAAa,sBAAsB;AACnC,cAAc;AACd;AACA;;AAEA;AACA;AACA,yCAAyC,8BAA8B;;AAEvE;AACA;AACA;AACA,YAAY;AACZ,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;AACd,QAAQ,yDAAQ;AAChB,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP,MAAM,yDAAQ;AACd;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;;AAEA,MAAM,yDAAQ;;AAEd;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;;;;;;AC/JkD;AACkB;AACY;AACrB;AACG;AAC8B;AACxB;AACX;;AAElD,mCAAmC,2EAAiB;;AAE3D;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,cAAc;AAC3B,aAAa,cAAc;AAC3B,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0FAAwB;AAChE,+BAA+B,kEAAe;AAC9C,2BAA2B,wEAAW;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAuD,gEAAY;AACnE;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA,+BAA+B,uBAAuB;AACtD;;AAEA;AACA;AACA,2CAA2C,mGAA0B;AACrE;AACA;;AAEA;AACA;AACA,2CAA2C,mGAA0B;AACrE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA,yDAAyD,gEAAY;AACrE;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA,0BAA0B,2EAAkB;AAC5C,0BAA0B,yDAAQ;AAClC;;AAEA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;;AAEA,MAAM,yDAAQ;AACd;AACA;;AAEA,IAAI,yDAAQ,oBAAoB,yDAAQ;;AAExC,IAAI,yDAAQ;AACZ,MAAM,yDAAQ;AACd,KAAK;;AAEL,IAAI,yDAAQ;AACZ;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B;AACjE;AACA;AACA;AACA,8CAA8C,iBAAiB;AAC/D,8CAA8C,sBAAsB;AACpE;AACA;AACA,UAAU;AACV;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;AACA;AACA;;;;;;;;;;;;;;;;;;;ACpOkD;AACkB;AACT;;AAEpD,oCAAoC,2EAAiB;;AAE5D;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kEAAe;AAC9C;AACA;;AAEA;AACA;AACA,sDAAsD,UAAU;AAChE,QAAQ,yDAAQ,oCAAoC,oBAAoB;AACxE,OAAO;AACP,KAAK;AACL;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,0BAA0B;AACxE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,KAAK,EAAE,SAAS;AAC9B,+CAA+C,yBAAyB;AACxE;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,yBAAyB;;AAEnE;AACA;AACA;AACA,YAAY;AACZ,YAAY;AACZ;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,kBAAkB,MAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;AACd,QAAQ,yDAAQ;AAChB,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP,MAAM,yDAAQ;AACd;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;;AAEA,MAAM,yDAAQ;;AAEd;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;;;AClKkD;AACkB;AACY;AACrB;AACF;;AAElD,+BAA+B,2EAAiB;;AAEvD;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0FAAwB;AAChE,+BAA+B,kEAAe;;AAE9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,oEAAoE,gEAAY;AAChF;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;;AAEA;AACA;;AAEA,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;AACd,QAAQ,yDAAQ;AAChB,OAAO;;AAEP,MAAM,yDAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAuD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,yDAAQ;;AAEd;;AAEA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;AClOkD;AACkB;;AAE7D,+CAA+C,2EAAiB;;AAEvE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;;AAEA;;AAEA,IAAI,yDAAQ,oBAAoB,yDAAQ;;AAExC,IAAI,yDAAQ;;AAEZ,IAAI,yDAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;AACA;AACA;;;;;;;;;;;;;;;;;;ACnDkD;AACkB;;AAE7D,8CAA8C,2EAAiB;;AAEtE;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;;AAEA;;AAEA,IAAI,yDAAQ,oBAAoB,yDAAQ;;AAExC,IAAI,yDAAQ;;AAEZ,IAAI,yDAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;;AAEA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;AACA;AACA;;;;;;;;;;;;;;;;;;;AC3CkD;AACkB;AACG;;AAE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I,yDAAQ;;AAEZ,IAAI,yDAAQ;AACZ;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC1GkD;AACkB;AACR;;AAErD,2CAA2C,2EAAiB;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc,QAAQ;AACtB;AACA;AACA;;AAEA;;AAEA,oBAAoB,0BAA0B;AAC9C;AACA;AACA,2CAA2C,MAAM;AACjD,kCAAkC,iBAAiB;AACnD;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,sEAAU;AACrC;AACA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ,IAAI,yDAAQ;AACZ;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,2FAA2F,oBAAoB;AAC/G;AACA;AACA;AACA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA,UAAU,yDAAQ;AAClB;AACA;AACA;AACA;AACA,gBAAgB,yDAAQ;AACxB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,yDAAQ;AAChB,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI,OAAO;AACX;AACA;;;;;;;;;;;;;;;;;;ACnK4D;AACV;AACkB;;AAE7D,sCAAsC,2EAAiB;;AAE9D;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;;AAEA;AACA,2BAA2B,sEAAU;AACrC;AACA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ,IAAI,yDAAQ;AACZ;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kCAAkC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACtEuE;AACrB;;AAE3C;AACP;AACA,qBAAqB,iFAAoB;AACzC;AACA;AACA;AACA;AACA;AACA,MAAM,yDAAQ;AACd;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACfiD;AACC;AACY;AACM;;AAE7D,mCAAmC,2EAAiB;;AAE3D;AACA,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA,WAAW,qEAAgB;AAC3B,QAAQ,yDAAQ;AAChB,QAAQ;AACR;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mEAAmE,sCAAsC;AACzG;AACA;;AAEA,IAAI,yDAAQ,sCAAsC,sCAAsC;AACxF,IAA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AAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAU,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;AACtC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACtJO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA,+CAA+C,iBAAiB;AAChE;AACA;AACA;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACnEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa,GAAG,uBAAuB;AACvC,yBAAyB;AACzB,yBAAyB;AACzB,mBAAmB,mBAAO,CAAC,oGAAkB;AAC7C,iBAAiB,mBAAO,CAAC,+DAAU;AACnC,cAAc,mBAAO,CAAC,yDAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,GAAG;AACrC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,IAAI;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,qBAAqB,OAAO,aAAa;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;;;;;;;;;;ACzoEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;;;;;;;;;;ACpCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,GAAG,sBAAsB,GAAG,6BAA6B,GAAG,mBAAmB,GAAG,cAAc,GAAG,oBAAoB,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,0BAA0B,GAAG,kCAAkC,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,cAAc,GAAG,6BAA6B,GAAG,4BAA4B,GAAG,yBAAyB,GAAG,sBAAsB,GAAG,eAAe,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,YAAY,GAAG,uBAAuB,GAAG,aAAa;AACxlB,cAAc,mBAAO,CAAC,6DAAS;AAC/B,yCAAwC,EAAE,qCAAqC,yBAAyB,EAAC;AACzG,mDAAkD,EAAE,qCAAqC,mCAAmC,EAAC;AAC7H,aAAa,mBAAO,CAAC,2DAAQ;AAC7B,wCAAuC,EAAE,qCAAqC,uBAAuB,EAAC;AACtG,eAAe,mBAAO,CAAC,+DAAU;AACjC,6CAA4C,EAAE,qCAAqC,8BAA8B,EAAC;AAClH,6CAA4C,EAAE,qCAAqC,8BAA8B,EAAC;AAClH,kBAAkB,mBAAO,CAAC,qEAAa;AACvC,4CAA2C,EAAE,qCAAqC,gCAAgC,EAAC;AACnH,2CAA0C,EAAE,qCAAqC,+BAA+B,EAAC;AACjH,kDAAiD,EAAE,qCAAqC,sCAAsC,EAAC;AAC/H,qDAAoD,EAAE,qCAAqC,yCAAyC,EAAC;AACrI,wDAAuD,EAAE,qCAAqC,4CAA4C,EAAC;AAC3I,yDAAwD,EAAE,qCAAqC,6CAA6C,EAAC;AAC7I,eAAe,mBAAO,CAAC,+DAAU;AACjC,0CAAyC,EAAE,qCAAqC,2BAA2B,EAAC;AAC5G,eAAe,mBAAO,CAAC,+DAAU;AACjC,6CAA4C,EAAE,qCAAqC,8BAA8B,EAAC;AAClH,6CAA4C,EAAE,qCAAqC,8BAA8B,EAAC;AAClH,kBAAkB,mBAAO,CAAC,qEAAa;AACvC,6CAA4C,EAAE,qCAAqC,iCAAiC,EAAC;AACrH,2BAA2B,mBAAO,CAAC,uFAAsB;AACzD,8DAA6D,EAAE,qCAAqC,2DAA2D,EAAC;AAChK,sDAAqD,EAAE,qCAAqC,mDAAmD,EAAC;AAChJ,YAAY,mBAAO,CAAC,yDAAO;AAC3B,0CAAyC,EAAE,qCAAqC,wBAAwB,EAAC;AACzG,0CAAyC,EAAE,qCAAqC,wBAAwB,EAAC;AACzG,0CAAyC,EAAE,qCAAqC,wBAAwB,EAAC;AACzG,0CAAyC,EAAE,qCAAqC,wBAAwB,EAAC;AACzG,eAAe,mBAAO,CAAC,+DAAU;AACjC,gDAA+C,EAAE,qCAAqC,iCAAiC,EAAC;AACxH,0CAAyC,EAAE,qCAAqC,2BAA2B,EAAC;AAC5G,+CAA8C,EAAE,qCAAqC,gCAAgC,EAAC;AACtH,yDAAwD,EAAE,qCAAqC,0CAA0C,EAAC;AAC1I,kDAAiD,EAAE,qCAAqC,mCAAmC,EAAC;AAC5H,gDAA+C,EAAE,qCAAqC,iCAAiC,EAAC;AACxH;;;;;;;;;;;ACxCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,iBAAiB;AACjB,eAAe,mBAAO,CAAC,gEAAoB;AAC3C,gBAAgB,mBAAO,CAAC,6DAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3Ba;AACb;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,6BAA6B,GAAG,4BAA4B,GAAG,eAAe,GAAG,sBAAsB,GAAG,gBAAgB;AAC1H,yBAAyB;AACzB,gBAAgB,mBAAO,CAAC,8FAAe;AACvC;AACA;AACA;AACA,kDAAkD,mBAAO,CAAC,+GAAyB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,qDAAqD,wBAAwB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;;;;;;;;;;;ACjGa;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB;AACrB,iBAAiB;AACjB,0BAA0B;AAC1B,8BAA8B;AAC9B,yBAAyB;AACzB,oBAAoB;AACpB,gBAAgB,mBAAO,CAAC,8FAAe;AACvC,iBAAiB,mBAAO,CAAC,oEAAsB;AAC/C,iBAAiB,mBAAO,CAAC,oEAAsB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,mBAAO,CAAC,yDAAQ;AAC3F,0BAA0B,kBAAkB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,sEAAsE,8BAA8B;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzIa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mBAAO,CAAC,yDAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;;;;;;;;;;AC5Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,iBAAiB;AACjB,oBAAoB,mBAAO,CAAC,0EAAyB;AACrD,gBAAgB,mBAAO,CAAC,6DAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,mBAAmB,mBAAO,CAAC,oGAAkB;AAC7C,gBAAgB,mBAAO,CAAC,8FAAe;AACvC,oBAAoB,mBAAO,CAAC,0EAAyB;AACrD,6BAA6B,mBAAO,CAAC,uFAAsB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,aAAa;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;;;;;;;;;;ACtHa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kCAAkC,GAAG,0BAA0B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,YAAY;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,YAAY;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;;;;;;;;;;;ACxJa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc;AAC/B,cAAc;AACd,cAAc;AACd,iBAAiB,mBAAO,CAAC,oEAAsB;AAC/C,iBAAiB,mBAAO,CAAC,oEAAsB;AAC/C,gBAAgB,mBAAO,CAAC,6DAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;;;;;;;;;;AClDa;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,sBAAsB,GAAG,mBAAmB;AAC7D,6BAA6B;AAC7B,oBAAoB;AACpB,oBAAoB;AACpB,mBAAmB,mBAAO,CAAC,oGAAkB;AAC7C,eAAe,mBAAO,CAAC,4FAAc;AACrC,oBAAoB,mBAAO,CAAC,0EAAyB;AACrD;AACA,gCAAgC,mBAAO,CAAC,6CAAO;AAC/C,eAAe,mBAAO,CAAC,2DAAQ;AAC/B,cAAc,mBAAO,CAAC,yDAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kBAAkB,mBAAmB,mBAAmB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,YAAY;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,iBAAiB,+BAA+B;AAChD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5La;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACVa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;AC/Ba;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,kBAAkB;AAClB,8BAA8B,mBAAO,CAAC,oDAAW;AACjD;AACA;AACA;AACA;AACA,8CAA8C,IAAI;AAClD;AACA;AACA;AACA;AACA;;;;;;;;;;;AC/Ca;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,kBAAkB;AAClB,uBAAuB;AACvB,4BAA4B,mBAAO,CAAC,8CAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;;;;;;;;;;;AC5Da;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa;AACb,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA,6CAA6C,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,aAAa,GAAG,eAAe,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,eAAe,GAAG,iBAAiB;AAC7P,cAAc,mBAAO,CAAC,2FAAS;AAC/B,6CAA4C,EAAE,qCAAqC,6BAA6B,EAAC;AACjH,2CAA0C,EAAE,qCAAqC,2BAA2B,EAAC;AAC7G,eAAe,mBAAO,CAAC,6FAAU;AACjC,8CAA6C,EAAE,qCAAqC,+BAA+B,EAAC;AACpH,4CAA2C,EAAE,qCAAqC,6BAA6B,EAAC;AAChH,eAAe,mBAAO,CAAC,6FAAU;AACjC,8CAA6C,EAAE,qCAAqC,+BAA+B,EAAC;AACpH,mDAAkD,EAAE,qCAAqC,oCAAoC,EAAC;AAC9H,4CAA2C,EAAE,qCAAqC,6BAA6B,EAAC;AAChH,YAAY,mBAAO,CAAC,uFAAO;AAC3B,2CAA0C,EAAE,qCAAqC,yBAAyB,EAAC;AAC3G,yCAAwC,EAAE,qCAAqC,uBAAuB,EAAC;AACvG,gBAAgB,mBAAO,CAAC,+FAAW;AACnC,+CAA8C,EAAE,qCAAqC,iCAAiC,EAAC;AACvH,6CAA4C,EAAE,qCAAqC,+BAA+B,EAAC;AACnH,aAAa,mBAAO,CAAC,yFAAQ;AAC7B,4CAA2C,EAAE,qCAAqC,2BAA2B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,yBAAyB,EAAC;AAC1G;;;;;;;;;;;ACtBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB,iBAAiB;AACjB,6BAA6B,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,IAAI,aAAa,EAAE,IAAI,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,GAAG;AACrE;AACA;;;;;;;;;;;ACnDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;;;;;;;;;;;AClBa;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf;AACA,gCAAgC,mBAAO,CAAC,6CAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,uBAAuB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,MAAM,EAAE,yCAAyC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,oBAAoB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB,GAAG,sBAAsB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;;;;;;;;;;ACpNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,eAAe;AAClF,gBAAgB,mBAAO,CAAC,2FAAW;AACnC,2CAA0C,EAAE,qCAAqC,6BAA6B,EAAC;AAC/G,iBAAiB,mBAAO,CAAC,6FAAY;AACrC,yCAAwC,EAAE,qCAAqC,4BAA4B,EAAC;AAC5G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G;;;;;;;;;;;ACVa;AACb;AACA;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc;AAChE;AACA,gCAAgC,mBAAO,CAAC,6CAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,8BAA8B;AAC9B;AA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A+B,EAAC;AACrH;;;;;;;;;;;ACjBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB;AACrB,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,gBAAgB,mBAAO,CAAC,+DAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa,WAAW,cAAc;AAC1F;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AC5Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB;AACtB,2BAA2B;AAC3B,iCAAiC;AACjC,mCAAmC;AACnC,4BAA4B;AAC5B,wBAAwB,mBAAO,CAAC,+EAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,aAAa;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,2BAA2B,IAAI;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,qBAAqB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,qBAAqB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChIa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB,8BAA8B;AAC9B,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC5Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB,aAAa,mBAAO,CAAC,8FAAmC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACfa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,+BAA+B;AAC/B,+BAA+B;AAC/B,gBAAgB,mBAAO,CAAC,qGAAe;AACvC,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,mBAAmB,mBAAO,CAAC,2GAAkB;AAC7C,gBAAgB,mBAAO,CAAC,qGAAe;AACvC,kBAAkB,mBAAO,CAAC,wEAAW;AACrC,iBAAiB,mBAAO,CAAC,sEAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uBAAuB;AAClE;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA,uCAAuC,eAAe;AACtD;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gBAAgB;AAC3D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,+BAA+B;AAC/B;;;;;;;;;;;AC/Pa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,6BAA6B;AAC7B,gBAAgB,mBAAO,CAAC,qGAAe;AACvC,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,mBAAmB,mBAAO,CAAC,2GAAkB;AAC7C,kBAAkB,mBAAO,CAAC,wEAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;;;;;;;;;;;ACxDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,GAAG,aAAa,GAAG,YAAY,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,yBAAyB,GAAG,6BAA6B,GAAG,gBAAgB,GAAG,4BAA4B,GAAG,8BAA8B,GAAG,2BAA2B,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,4BAA4B,GAAG,yBAAyB,GAAG,yBAAyB,GAAG,6BAA6B,GAAG,+BAA+B,GAAG,+BAA+B,GAAG,mBAAmB;AAChiB;AACA,eAAe,mBAAO,CAAC,sEAAU;AACjC,+CAA8C,EAAE,qCAAqC,gCAAgC,EAAC;AACtH,gCAAgC,mBAAO,CAAC,wGAA2B;AACnE,2DAA0D,EAAE,qCAAqC,6DAA6D,EAAC;AAC/J,2DAA0D,EAAE,qCAAqC,6DAA6D,EAAC;AAC/J,8BAA8B,mBAAO,CAAC,oGAAyB;AAC/D,yDAAwD,EAAE,qCAAqC,yDAAyD,EAAC;AACzJ,cAAc,mBAAO,CAAC,oEAAS;AAC/B,qDAAoD,EAAE,qCAAqC,qCAAqC,EAAC;AACjI,eAAe,mBAAO,CAAC,sEAAU;AACjC,qDAAoD,EAAE,qCAAqC,sCAAsC,EAAC;AAClI,wDAAuD,EAAE,qCAAqC,yCAAyC,EAAC;AACxI,gDAA+C,EAAE,qCAAqC,iCAAiC,EAAC;AACxH,gDAA+C,EAAE,qCAAqC,iCAAiC,EAAC;AACxH,iBAAiB,mBAAO,CAAC,0EAAY;AACrC,uDAAsD,EAAE,qCAAqC,0CAA0C,EAAC;AACxI,0DAAyD,EAAE,qCAAqC,6CAA6C,EAAC;AAC9I,wDAAuD,EAAE,qCAAqC,2CAA2C,EAAC;AAC1I,4CAA2C,EAAE,qCAAqC,+BAA+B,EAAC;AAClH,eAAe,mBAAO,CAAC,sEAAU;AACjC,yDAAwD,EAAE,qCAAqC,0CAA0C,EAAC;AAC1I,gBAAgB,mBAAO,CAAC,wEAAW;AACnC,qDAAoD,EAAE,qCAAqC,uCAAuC,EAAC;AACnI,iDAAgD,EAAE,qCAAqC,mCAAmC,EAAC;AAC3H,+CAA8C,EAAE,qCAAqC,iCAAiC,EAAC;AACvH,eAAe,mBAAO,CAAC,sEAAU;AACjC,8CAA6C,EAAE,qCAAqC,+BAA+B,EAAC;AACpH,cAAc,mBAAO,CAAC,qGAAe;AACrC,wCAAuC,EAAE,qCAAqC,wBAAwB,EAAC;AACvG,yCAAwC,EAAE,qCAAqC,yBAAyB,EAAC;AACzG,8CAA6C,EAAE,qCAAqC,8BAA8B,EAAC;AACnH;;;;;;;;;;;ACnCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB;AACzB,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB;AACpB,yBAAyB;AACzB,oBAAoB;AACpB,4BAA4B;AAC5B;AACA,gBAAgB,mBAAO,CAAC,qGAAe;AACvC,mBAAmB,mBAAO,CAAC,2GAAkB;AAC7C,eAAe,mBAAO,CAAC,mGAAc;AACrC,eAAe,mBAAO,CAAC,0GAAyC;AAChE,eAAe,mBAAO,CAAC,4GAA0C;AACjE,eAAe,mBAAO,CAAC,8GAA2C;AAClE,cAAc,mBAAO,CAAC,4FAAkC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uCAAuC,aAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,gDAAgD,eAAe;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,eAAe;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC9Ha;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,gCAAgC;AAChC,8BAA8B;AAC9B,2BAA2B;AAC3B,4BAA4B;AAC5B,aAAa,mBAAO,CAAC,kGAAqC;AAC1D,eAAe,mBAAO,CAAC,sGAAuC;AAC9D,aAAa,mBAAO,CAAC,8FAAmC;AACxD,cAAc,mBAAO,CAAC,4FAAkC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA,qBAAqB;AACrB,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,QAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,MAAM,2BAA2B,MAAM,6BAA6B,MAAM;AACjG;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,yBAAyB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAgB;AACrD,aAAa;AACb;AACA;AACA;AACA,gBAAgB;AAChB;;;;;;;;;;;ACrJa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,6BAA6B;AAC7B;AACA;AACA;AACA;;;;;;;;;;;ACNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB;AACzB,mBAAmB;AACnB,qBAAqB;AACrB;AACA,gBAAgB,mBAAO,CAAC,qGAAe;AACvC,kBAAkB,mBAAO,CAAC,wHAAgD;AAC1E,aAAa,mBAAO,CAAC,8FAAmC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kBAAkB;AAC5C;AACA;AACA,sBAAsB,gBAAgB;AACtC,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kDAAkD;AAC3E;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;AC5Da;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B,GAAG,kBAAkB;AAChD,kBAAkB;AAClB,eAAe;AACf,eAAe;AACf,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,mBAAmB,mBAAO,CAAC,2GAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,iBAAiB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,iBAAiB;AACnF;AACA;AACA;;;;;;;;;;;ACjEa;AACb;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oCAAoC;AACpC,sCAAsC;AACtC,0BAA0B;AAC1B,uBAAuB;AACvB,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,mBAAmB,mBAAO,CAAC,2GAAkB;AAC7C,mBAAmB,mBAAO,CAAC,qGAAY;AACvC,kBAAkB,mBAAO,CAAC,mGAAW;AACrC;AACA;AACA,0DAA0D,kBAAkB;AAC5E;AACA;AACA;AACA;AACA;AACA,yEAAyE,kBAAkB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7Ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY;AACZ,aAAa;AACb,kBAAkB;AAClB,gBAAgB;AAChB,eAAe,mBAAO,CAAC,mGAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB;AACA,YAAY,aAAa;AACzB;AACA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,MAAM;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzFa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,6BAA6B;AAC7B,2BAA2B;AAC3B,yBAAyB;AACzB,0BAA0B;AAC1B,yBAAyB;AACzB,0BAA0B;AAC1B,mBAAmB,mBAAO,CAAC,2GAAkB;AAC7C,eAAe,mBAAO,CAAC,mGAAc;AACrC,gBAAgB,mBAAO,CAAC,qGAAe;AACvC,kBAAkB,mBAAO,CAAC,mGAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC9Ma;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,GAAG,iBAAiB,GAAG,eAAe,GAAG,wBAAwB,GAAG,mBAAmB,GAAG,gCAAgC,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,yBAAyB,GAAG,+BAA+B,GAAG,kBAAkB,GAAG,sBAAsB,GAAG,yBAAyB,GAAG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,CAAC,oEAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB,uBAAuB;AACvB,yBAAyB;AACzB,sBAAsB;AACtB,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB;AACzB,+BAA+B;AAC/B,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,mBAAmB,mBAAO,CAAC,2GAAkB;AAC7C,gBAAgB,mBAAO,CAAC,qGAAe;AACvC,oBAAoB,mBAAO,CAAC,uGAAa;AACzC,gBAAgB,mBAAO,CAAC,+FAAS;AACjC,oBAAoB,mBAAO,CAAC,uGAAa;AACzC,kBAAkB,mBAAO,CAAC,mGAAW;AACrC,iBAAiB,mBAAO,CAAC,iGAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uBAAuB;AAClE;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA,uCAAuC,eAAe;AACtD;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gBAAgB;AAC3D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,yBAAyB;AACzB;;;;;;;;;;;AC9Pa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,mBAAmB,mBAAO,CAAC,2GAAkB;AAC7C,oBAAoB,mBAAO,CAAC,uGAAa;AACzC,oBAAoB,mBAAO,CAAC,uGAAa;AACzC,kBAAkB,mBAAO,CAAC,mGAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACvDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gCAAgC;AAChC,uBAAuB;AACvB;AACA,mBAAmB,mBAAO,CAAC,2GAAkB;AAC7C,mBAAmB,mBAAO,CAAC,qGAAY;AACvC,kBAAkB,mBAAO,CAAC,mGAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACnCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B;AAC3B,mBAAmB;AACnB,wBAAwB;AACxB,wBAAwB;AACxB;AACA,mBAAmB,mBAAO,CAAC,2GAAkB;AAC7C,eAAe,mBAAO,CAAC,mGAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2CAA2C;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf,iBAAiB;AACjB;AACA,YAAY,6BAA6B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B,GAAG,kBAAkB;AAChD,kBAAkB;AAClB,eAAe;AACf,eAAe;AACf,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,mBAAmB,mBAAO,CAAC,2GAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,iBAAiB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,iBAAiB;AACnF;AACA;AACA;;;;;;;;;;;ACjEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;AC/Ba;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,kBAAkB;AAClB,8BAA8B,mBAAO,CAAC,oDAAW;AACjD;AACA;AACA;AACA;AACA,8CAA8C,IAAI;AAClD;AACA;AACA;AACA;AACA;;;;;;;;;;;AC/Ca;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,kBAAkB;AAClB,uBAAuB;AACvB,4BAA4B,mBAAO,CAAC,8CAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;;;;;;;;;;;AC5Da;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa;AACb,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA,6CAA6C,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,aAAa,GAAG,eAAe,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,eAAe,GAAG,iBAAiB;AAC7P,cAAc,mBAAO,CAAC,kGAAS;AAC/B,6CAA4C,EAAE,qCAAqC,6BAA6B,EAAC;AACjH,2CAA0C,EAAE,qCAAqC,2BAA2B,EAAC;AAC7G,eAAe,mBAAO,CAAC,oGAAU;AACjC,8CAA6C,EAAE,qCAAqC,+BAA+B,EAAC;AACpH,4CAA2C,EAAE,qCAAqC,6BAA6B,EAAC;AAChH,eAAe,mBAAO,CAAC,oGAAU;AACjC,8CAA6C,EAAE,qCAAqC,+BAA+B,EAAC;AACpH,mDAAkD,EAAE,qCAAqC,oCAAoC,EAAC;AAC9H,4CAA2C,EAAE,qCAAqC,6BAA6B,EAAC;AAChH,YAAY,mBAAO,CAAC,8FAAO;AAC3B,2CAA0C,EAAE,qCAAqC,yBAAyB,EAAC;AAC3G,yCAAwC,EAAE,qCAAqC,uBAAuB,EAAC;AACvG,gBAAgB,mBAAO,CAAC,sGAAW;AACnC,+CAA8C,EAAE,qCAAqC,iCAAiC,EAAC;AACvH,6CAA4C,EAAE,qCAAqC,+BAA+B,EAAC;AACnH,aAAa,mBAAO,CAAC,gGAAQ;AAC7B,4CAA2C,EAAE,qCAAqC,2BAA2B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,yBAAyB,EAAC;AAC1G;;;;;;;;;;;ACtBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB,iBAAiB;AACjB,6BAA6B,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,IAAI,aAAa,EAAE,IAAI,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,GAAG;AACrE;AACA;;;;;;;;;;;ACnDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;;;;;;;;;;;AClBa;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf;AACA,gCAAgC,mBAAO,CAAC,6CAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,uBAAuB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,MAAM,EAAE,yCAAyC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,oBAAoB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB,GAAG,sBAAsB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;;;;;;;;;;ACpNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,eAAe;AAClF,gBAAgB,mBAAO,CAAC,kGAAW;AACnC,2CAA0C,EAAE,qCAAqC,6BAA6B,EAAC;AAC/G,iBAAiB,mBAAO,CAAC,oGAAY;AACrC,yCAAwC,EAAE,qCAAqC,4BAA4B,EAAC;AAC5G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G;;;;;;;;;;;ACVa;AACb;AACA;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc;AAChE;AACA,gCAAgC,mBAAO,CAAC,6CAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,qBAAqB;AACrB,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,GAAG,uBAAuB,GAAG,iBAAiB,GAAG,aAAa,GAAG,+BAA+B,GAAG,qBAAqB,GAAG,cAAc,GAAG,8BAA8B,GAAG,0BAA0B;AAC3N,eAAe,mBAAO,CAAC,iGAAU;AACjC,sDAAqD,EAAE,qCAAqC,uCAAuC,EAAC;AACpI,0DAAyD,EAAE,qCAAqC,2CAA2C,EAAC;AAC5I,eAAe,mBAAO,CAAC,iGAAU;AACjC,0CAAyC,EAAE,qCAAqC,2BAA2B,EAAC;AAC5G,iDAAgD,EAAE,qCAAqC,kCAAkC,EAAC;AAC1H,2DAA0D,EAAE,qCAAqC,4CAA4C,EAAC;AAC9I,cAAc,mBAAO,CAAC,+FAAS;AAC/B,yCAAwC,EAAE,qCAAqC,yBAAyB,EAAC;AACzG,mBAAmB,mBAAO,CAAC,yGAAc;AACzC,6CAA4C,EAAE,qCAAqC,kCAAkC,EAAC;AACtH,mDAAkD,EAAE,qCAAqC,wCAAwC,EAAC;AAClI,gDAA+C,EAAE,qCAAqC,qCAAqC,EAAC;AAC5H;;;;;;;;;;;AChBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa;AACb;AACA;AACA;AACA;;;;;;;;;;;;ACNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,oBAAoB;AACpB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM,2BAA2B,MAAM;AACtD;AACA,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5Ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,qBAAqB,GAAG,0BAA0B,GAAG,+BAA+B,GAAG,wBAAwB;AACzI,gCAAgC,mBAAO,CAAC,iGAA2B;AACnE,oDAAmD,EAAE,qCAAqC,sDAAsD,EAAC;AACjJ,2DAA0D,EAAE,qCAAqC,6DAA6D,EAAC;AAC/J,2BAA2B,mBAAO,CAAC,uFAAsB;AACzD,sDAAqD,EAAE,qCAAqC,mDAAmD,EAAC;AAChJ,sBAAsB,mBAAO,CAAC,6EAAiB;AAC/C,iDAAgD,EAAE,qCAAqC,yCAAyC,EAAC;AACjI,wBAAwB,mBAAO,CAAC,iFAAmB;AACnD,mDAAkD,EAAE,qCAAqC,6CAA6C,EAAC;AACvI;;;;;;;;;;;ACZa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,+BAA+B,GAAG,wBAAwB;AAC1D,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,kBAAkB,mBAAO,CAAC,gDAAS;AACnC,0BAA0B,mBAAO,CAAC,iFAAmB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,uBAAuB,wBAAwB,wBAAwB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;;;;;;;;;;;ACpGa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,kBAAkB,mBAAO,CAAC,gDAAS;AACnC,kCAAkC,mBAAO,CAAC,iGAA2B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;;;;;;;;;;;;AC7Ea;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB;AACrB;AACA,wCAAwC,mBAAO,CAAC,8DAAe;AAC/D;AACA,mBAAmB,OAAO;AAC1B,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,SAAS;AAClF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,6BAA6B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,uBAAuB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;ACvJa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,kBAAkB,mBAAO,CAAC,gDAAS;AACnC,wBAAwB,mBAAO,CAAC,6EAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;AClDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB;AACtB,eAAe,mBAAO,CAAC,8FAAc;AACrC,wBAAwB,mBAAO,CAAC,kFAAuB;AACvD,gBAAgB,mBAAO,CAAC,gGAAe;AACvC,eAAe,mBAAO,CAAC,sGAAuC;AAC9D,kBAAkB,mBAAO,CAAC,kHAA6C;AACvE;AACA;AACA;AACA;AACA,YAAY,2CAA2C;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iBAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D;AACA;AACA;;;;;;;;;;;AC9Da;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,2EAA2E,WAAW;AACtF;AACA;AACA,0DAA0D,KAAK;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,KAAK;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;;;;;;;;;;ACjDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B;AAC3B,mBAAmB,mBAAO,CAAC,sGAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;;;;;;;;;;ACjBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,oBAAoB;AACpB,eAAe,mBAAO,CAAC,8FAAc;AACrC,wBAAwB,mBAAO,CAAC,kFAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,YAAY,gCAAgC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AClEa;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AA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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yBAAyB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,QAAQ,4BAA4B,UAAU;AACnG;AACA;AACA;AACA;;;;;;;;;;;ACtFa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,gBAAgB,mBAAO,CAAC,wGAAwC;AAChE,sBAAsB,mBAAO,CAAC,qFAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU,+BAA+B,kBAAkB;AACnF;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;ACnBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACda;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB,aAAa,mBAAO,CAAC,oGAAsC;AAC3D,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;;;;;;;;;;ACTa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B;AAC3B,gBAAgB,mBAAO,CAAC,0GAAyC;AACjE,sBAAsB,mBAAO,CAAC,qFAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;ACnCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB;AACtB,2BAA2B;AAC3B,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gCAAgC;AACxD;AACA;AACA;AACA,aAAa;AACb,0BAA0B,kCAAkC;AAC5D;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;ACnDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,6BAA6B;AAC7B,aAAa,mBAAO,CAAC,kGAAqC;AAC1D,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACZa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B;AACA,gBAAgB,mBAAO,CAAC,gGAAe;AACvC,gBAAgB,mBAAO,CAAC,wGAAwC;AAChE,sBAAsB,mBAAO,CAAC,qFAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU,+BAA+B,gCAAgC;AACjG;AACA;AACA,aAAa;AACb;AACA,wBAAwB,WAAW,+EAA+E,kBAAkB;AACpI;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA,wBAAwB,SAAS,gCAAgC,cAAc;AAC/E;AACA;AACA,aAAa;AACb;AACA,wBAAwB,WAAW,qCAAqC,OAAO;AAC/E;AACA;AACA,aAAa;AACb;AACA,wBAAwB,YAAY;AACpC;AACA,iBAAiB;AACjB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;AChDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iCAAiC;AACjC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACVa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oCAAoC;AACpC,yCAAyC;AACzC,6CAA6C;AAC7C,mCAAmC;AACnC,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA,aAAa;AACb,0BAA0B,mBAAmB;AAC7C;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,oCAAoC;AAC5D;AACA;AACA,aAAa;AACb,0BAA0B,sCAAsC;AAChE;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,qCAAqC;AAC7D;AACA;AACA,aAAa;AACb,0BAA0B,uCAAuC;AACjE;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA,aAAa;AACb,0BAA0B,oBAAoB;AAC9C;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;ACnEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB;AACzB,gDAAgD;AAChD,aAAa,mBAAO,CAAC,kHAA6C;AAClE,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACfa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kCAAkC;AAClC;AACA,gBAAgB,mBAAO,CAAC,wHAAgD;AACxE,sBAAsB,mBAAO,CAAC,qFAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA,6DAA6D;AAC7D;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;ACtEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gCAAgC;AAChC,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACVa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB;AACrB,aAAa,mBAAO,CAAC,0GAAyC;AAC9D,qBAAqB;AACrB;AACA;AACA;AACA;;;;;;;;;;;ACRa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,8BAA8B;AAC9B,gBAAgB,mBAAO,CAAC,gHAA4C;AACpE,sBAAsB,mBAAO,CAAC,qFAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;AC7Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gCAAgC;AAChC,sBAAsB;AACtB,8BAA8B;AAC9B,yBAAyB;AACzB,gCAAgC;AAChC,eAAe,mBAAO,CAAC,8FAAc;AACrC,gBAAgB,mBAAO,CAAC,gGAAe;AACvC,cAAc,mBAAO,CAAC,kGAAqC;AAC3D,cAAc,mBAAO,CAAC,4FAAkC;AACxD,sBAAsB,mBAAO,CAAC,qFAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0BAA0B,gCAAgC;AAC1D;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0BAA0B,4BAA4B;AACtD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb,0BAA0B,6BAA6B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,oCAAoC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,uEAAuE,gBAAgB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0BAA0B,qCAAqC;AAC/D;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,yBAAyB;AACzB;AACA;AACA;AACA,uEAAuE,aAAa;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;AC/Ia;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,gCAAgC;AAChC,uCAAuC;AACvC,6BAA6B;AAC7B,qCAAqC;AACrC,aAAa,mBAAO,CAAC,sFAA+B;AACpD,aAAa,mBAAO,CAAC,gGAAoC;AACzD,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB;AACzB,gBAAgB,mBAAO,CAAC,sGAAuC;AAC/D,sBAAsB,mBAAO,CAAC,qFAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,4BAA4B;AACzF;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA,+DAA+D,oDAAoD;AACnH;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;AClEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;;;;;;;;;;ACPa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB,aAAa,mBAAO,CAAC,0FAAiC;AACtD,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,KAAK;AAC9C;AACA;AACA;;;;;;;;;;;AC5Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,gCAAgC;AAChC;AACA,gBAAgB,mBAAO,CAAC,gGAAe;AACvC,aAAa,mBAAO,CAAC,oHAA8C;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4FAA4F;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,aAAa;AACb,0BAA0B,gGAAgG;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;AC/Ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,iCAAiC;AACjC,aAAa,mBAAO,CAAC,oHAA8C;AACnE,aAAa,mBAAO,CAAC,kGAAqC;AAC1D,aAAa,mBAAO,CAAC,gGAAoC;AACzD,aAAa,mBAAO,CAAC,wGAAwC;AAC7D,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB;AACzB,gBAAgB,mBAAO,CAAC,0HAAiD;AACzE,gBAAgB,mBAAO,CAAC,wGAAwC;AAChE,gBAAgB,mBAAO,CAAC,sGAAuC;AAC/D,gBAAgB,mBAAO,CAAC,8GAA2C;AACnE,qBAAqB,mBAAO,CAAC,wIAAwD;AACrF,sBAAsB,mBAAO,CAAC,qFAAmB;AACjD;AACA;AACA,yDAAyD,qBAAqB;AAC9E;AACA;AACA;AACA;AACA;AACA,yDAAyD,qBAAqB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,4EAA4E,UAAU;AACtF;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,sEAAsE;AACtE;AACA,4EAA4E,UAAU;AACtF;AACA,iBAAiB;AACjB;AACA,4BAA4B,eAAe;AAC3C;AACA,qBAAqB;AACrB,+CAA+C,aAAa;AAC5D,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,sBAAsB;AACtB,+CAA+C,aAAa;AAC5D,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,8EAA8E,YAAY;AAC1F;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AAC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CA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACVa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,8BAA8B;AAC9B,gBAAgB,mBAAO,CAAC,gHAA4C;AACpE,sBAAsB,mBAAO,CAAC,qFAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA,6DAA6D;AAC7D;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;AC7Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,iCAAiC;AACjC,+BAA+B;AAC/B,0BAA0B;AAC1B,iCAAiC;AACjC,4BAA4B;AAC5B,2CAA2C;AAC3C,oCAAoC;AACpC,eAAe,mBAAO,CAAC,8FAAc;AACrC,wBAAwB,mBAAO,CAAC,kFAAuB;AACvD,gBAAgB,mBAAO,CAAC,gGAAe;AACvC;AACA;AACA;AACA,cAAc,MAAM,GAAG,mCAAmC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAqE;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0BAA0B,0EAA0E;AACpG;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,gGAAgG;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0BAA0B,oGAAoG;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,4CAA4C;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0BAA0B,+CAA+C;AACzE;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,mEAAmE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0BAA0B,uEAAuE;AACjG;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,6CAA6C;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0BAA0B,+CAA+C;AACzE;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,6DAA6D;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0BAA0B,gEAAgE;AAC1F;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;ACnMa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB;AACpB,wCAAwC;AACxC,wCAAwC;AACxC,iCAAiC;AACjC,sCAAsC;AACtC,mCAAmC;AACnC,kDAAkD;AAClD,aAAa,mBAAO,CAAC,wGAAwC;AAC7D,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,6BAA6B;AAC7B;AACA,gBAAgB,mBAAO,CAAC,8GAA2C;AACnE,sBAAsB,mBAAO,CAAC,qFAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA,6DAA6D;AAC7D;AACA,aAAa;AACb;AACA,2DAA2D;AAC3D;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA,gEAAgE,iCAAiC;AACjG;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;AC1Ga;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,wBAAwB;AACxB,wBAAwB,mBAAO,CAAC,kFAAuB;AACvD,kBAAkB,mBAAO,CAAC,wHAAgD;AAC1E,kBAAkB,mBAAO,CAAC,wGAAwC;AAClE,aAAa,mBAAO,CAAC,8FAAmC;AACxD,sBAAsB,mBAAO,CAAC,qFAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA,4CAA4C,UAAU,kDAAkD;AACxG,6BAA6B;AAC7B;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;ACjDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sCAAsC;AACtC,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mDAAmD;AAC3E;AACA;AACA;AACA;AACA;AACA,aAAa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rC,wBAAwB,mBAAO,CAAC,kFAAuB;AACvD,yBAAyB,mBAAO,CAAC,oFAAwB;AACzD,gBAAgB,mBAAO,CAAC,gGAAe;AACvC,eAAe,mBAAO,CAAC,sGAAuC;AAC9D,aAAa,mBAAO,CAAC,kHAA6C;AAClE,aAAa,mBAAO,CAAC,wGAAwC;AAC7D,kBAAkB,mBAAO,CAAC,wHAAgD;AAC1E,aAAa,mBAAO,CAAC,8FAAmC;AACxD,aAAa,mBAAO,CAAC,oHAA8C;AACnE,qBAAqB,mBAAO,CAAC,yEAAc;AAC3C,cAAc,mBAAO,CAAC,2DAAO;AAC7B,kBAAkB,mBAAO,CAAC,yEAAW;AACrC,kBAAkB,mBAAO,CAAC,yEAAW;AACrC,yBAAyB,mBAAO,CAAC,iFAAkB;AACnD,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mJAAmJ;AACnK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,kCAAkC;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,kCAAkC;AAChH;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,2DAA2D,kCAAkC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,wEAAwE,kBAAkB;AAC1F;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,6BAA6B;AAC7B;;;;;;;;;;;ACnSa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB,GAAG,wBAAwB,GAAG,oBAAoB;AACxE,0BAA0B;AAC1B,0BAA0B;AAC1B,gCAAgC;AAChC,gCAAgC;AAChC;AACA,gBAAgB,mBAAO,CAAC,gGAAe;AACvC,mBAAmB,mBAAO,CAAC,sGAAkB;AAC7C,eAAe,mBAAO,CAAC,8FAAc;AACrC,yBAAyB,mBAAO,CAAC,oFAAwB;AACzD,gBAAgB,mBAAO,CAAC,gGAAe;AACvC,eAAe,mBAAO,CAAC,gHAA4C;AACnE,mBAAmB,mBAAO,CAAC,qEAAY;AACvC,iBAAiB,mBAAO,CAAC,iEAAU;AACnC,kBAAkB,mBAAO,CAAC,yEAAW;AACrC,sBAAsB,mBAAO,CAAC,iFAAe;AAC7C,iBAAiB,mBAAO,CAAC,iEAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,wBAAwB,YAAY,cAAc,UAAU,cAAc,WAAW,cAAc;AACzJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB,yBAAyB,cAAc,UAAU,cAAc,WAAW,cAAc;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,MAAM,cAAc,UAAU,UAAU,IAAI;AACvG;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4CAA4C;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kCAAkC;AACtD;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,GAAG;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,MAAM,IAAI,QAAQ;AAChD;AACA,8BAA8B,MAAM,GAAG,QAAQ;AAC/C,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,8DAA8D,MAAM,uGAAuG,kBAAkB;AAC7L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,IAAI;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,cAAc;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,sBAAsB;AACtB;;;;;;;;;;;AC1Ta;AACb;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oCAAoC;AACpC,sCAAsC;AACtC,0BAA0B;AAC1B,uBAAuB;AACvB,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,mBAAmB,mBAAO,CAAC,sGAAkB;AAC7C,mBAAmB,mBAAO,CAAC,gGAAY;AACvC,kBAAkB,mBAAO,CAAC,8FAAW;AACrC;AACA;AACA,0DAA0D,kBAAkB;AAC5E;AACA;AACA;AACA;AACA;AACA,yEAAyE,kBAAkB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7Ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY;AACZ,aAAa;AACb,kBAAkB;AAClB,gBAAgB;AAChB,eAAe,mBAAO,CAAC,8FAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB;AACA,YAAY,aAAa;AACzB;AACA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,MAAM;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzFa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,6BAA6B;AAC7B,2BAA2B;AAC3B,yBAAyB;AACzB,0BAA0B;AAC1B,yBAAyB;AACzB,0BAA0B;AAC1B,mBAAmB,mBAAO,CAAC,sGAAkB;AAC7C,eAAe,mBAAO,CAAC,8FAAc;AACrC,gBAAgB,mBAAO,CAAC,gGAAe;AACvC,kBAAkB,mBAAO,CAAC,8FAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC9Ma;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,GAAG,iBAAiB,GAAG,eAAe,GAAG,wBAAwB,GAAG,mBAAmB,GAAG,gCAAgC,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,yBAAyB,GAAG,+BAA+B,GAAG,kBAAkB,GAAG,sBAAsB,GAAG,yBAAyB,GAAG,iCAAiC,GAAG,uBAAuB,GAAG,yBAAyB,GAAG,mBAAmB,GAAG,qCAAqC,GAAG,6BAA6B,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,yBAAyB,GAAG,0BAA0B,GAAG,yBAAyB,GAAG,kBAAkB,GAAG,aAAa,GAAG,YAAY,GAAG,gBAAgB,GAAG,sCAAsC,GAAG,oCAAoC,GAAG,0BAA0B,GAAG,uBAAuB;AAC91B,kBAAkB,mBAAO,CAAC,kGAAa;AACvC,mDAAkD,EAAE,qCAAqC,uCAAuC,EAAC;AACjI,sDAAqD,EAAE,qCAAqC,0CAA0C,EAAC;AACvI,gEAA+D,EAAE,qCAAqC,oDAAoD,EAAC;AAC3J,kEAAiE,EAAE,qCAAqC,sDAAsD,EAAC;AAC/J,cAAc,mBAAO,CAAC,0FAAS;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B,mBAAO,CAAC,sGAAkB;AAC7C,gBAAgB,mBAAO,CAAC,gGAAe;AACvC,oBAAoB,mBAAO,CAAC,kGAAa;AACzC,gBAAgB,mBAAO,CAAC,0FAAS;AACjC,oBAAoB,mBAAO,CAAC,kGAAa;AACzC,kBAAkB,mBAAO,CAAC,8FAAW;AACrC,iBAAiB,mBAAO,CAAC,4FAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uBAAuB;AAClE;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA,uCAAuC,eAAe;AACtD;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gBAAgB;AAC3D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,yBAAyB;AACzB;;;;;;;;;;;AC9Pa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,mBAAmB,mBAAO,CAAC,sGAAkB;AAC7C,oBAAoB,mBAAO,CAAC,kGAAa;AACzC,oBAAoB,mBAAO,CAAC,kGAAa;AACzC,kBAAkB,mBAAO,CAAC,8FAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACvDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gCAAgC;AAChC,uBAAuB;AACvB;AACA,mBAAmB,mBAAO,CAAC,sGAAkB;AAC7C,mBAAmB,mBAAO,CAAC,gGAAY;AACvC,kBAAkB,mBAAO,CAAC,8FAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACnCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B;AAC3B,mBAAmB;AACnB,wBAAwB;AACxB,wBAAwB;AACxB;AACA,mBAAmB,mBAAO,CAAC,sGAAkB;AAC7C,eAAe,mBAAO,CAAC,8FAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2CAA2C;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf,iBAAiB;AACjB;AACA,YAAY,6BAA6B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B,GAAG,kBAAkB;AAChD,kBAAkB;AAClB,eAAe;AACf,eAAe;AACf,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,mBAAmB,mBAAO,CAAC,sGAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,iBAAiB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,iBAAiB;AACnF;AACA;AACA;;;;;;;;;;;ACjEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;AC/Ba;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,kBAAkB;AAClB,8BAA8B,mBAAO,CAAC,oDAAW;AACjD;AACA;AACA;AACA;AACA,8CAA8C,IAAI;AAClD;AACA;AACA;AACA;AACA;;;;;;;;;;;AC/Ca;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,kBAAkB;AAClB,uBAAuB;AACvB,4BAA4B,mBAAO,CAAC,8CAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;;;;;;;;;;;AC5Da;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa;AACb,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA,6CAA6C,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,aAAa,GAAG,eAAe,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,eAAe,GAAG,iBAAiB;AAC7P,cAAc,mBAAO,CAAC,6FAAS;AAC/B,6CAA4C,EAAE,qCAAqC,6BAA6B,EAAC;AACjH,2CAA0C,EAAE,qCAAqC,2BAA2B,EAAC;AAC7G,eAAe,mBAAO,CAAC,+FAAU;AACjC,8CAA6C,EAAE,qCAAqC,+BAA+B,EAAC;AACpH,4CAA2C,EAAE,qCAAqC,6BAA6B,EAAC;AAChH,eAAe,mBAAO,CAAC,+FAAU;AACjC,8CAA6C,EAAE,qCAAqC,+BAA+B,EAAC;AACpH,mDAAkD,EAAE,qCAAqC,oCAAoC,EAAC;AAC9H,4CAA2C,EAAE,qCAAqC,6BAA6B,EAAC;AAChH,YAAY,mBAAO,CAAC,yFAAO;AAC3B,2CAA0C,EAAE,qCAAqC,yBAAyB,EAAC;AAC3G,yCAAwC,EAAE,qCAAqC,uBAAuB,EAAC;AACvG,gBAAgB,mBAAO,CAAC,iGAAW;AACnC,+CAA8C,EAAE,qCAAqC,iCAAiC,EAAC;AACvH,6CAA4C,EAAE,qCAAqC,+BAA+B,EAAC;AACnH,aAAa,mBAAO,CAAC,2FAAQ;AAC7B,4CAA2C,EAAE,qCAAqC,2BAA2B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,yBAAyB,EAAC;AAC1G;;;;;;;;;;;ACtBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB,iBAAiB;AACjB,6BAA6B,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,IAAI,aAAa,EAAE,IAAI,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,GAAG;AACrE;AACA;;;;;;;;;;;ACnDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;;;;;;;;;;;AClBa;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf;AACA,gCAAgC,mBAAO,CAAC,6CAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,uBAAuB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,MAAM,EAAE,yCAAyC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,oBAAoB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB,GAAG,sBAAsB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;;;;;;;;;;ACpNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,eAAe;AAClF,gBAAgB,mBAAO,CAAC,6FAAW;AACnC,2CAA0C,EAAE,qCAAqC,6BAA6B,EAAC;AAC/G,iBAAiB,mBAAO,CAAC,+FAAY;AACrC,yCAAwC,EAAE,qCAAqC,4BAA4B,EAAC;AAC5G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G;;;;;;;;;;;ACVa;AACb;AACA;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc;AAChE;AACA,gCAAgC,mBAAO,CAAC,6CAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,qBAAqB;AACrB,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,GAAG,uBAAuB,GAAG,iBAAiB,GAAG,aAAa,GAAG,+BAA+B,GAAG,qBAAqB,GAAG,cAAc,GAAG,8BAA8B,GAAG,0BAA0B;AAC3N,eAAe,mBAAO,CAAC,4FAAU;AACjC,sDAAqD,EAAE,qCAAqC,uCAAuC,EAAC;AACpI,0DAAyD,EAAE,qCAAqC,2CAA2C,EAAC;AAC5I,eAAe,mBAAO,CAAC,4FAAU;AACjC,0CAAyC,EAAE,qCAAqC,2BAA2B,EAAC;AAC5G,iDAAgD,EAAE,qCAAqC,kCAAkC,EAAC;AAC1H,2DAA0D,EAAE,qCAAqC,4CAA4C,EAAC;AAC9I,cAAc,mBAAO,CAAC,0FAAS;AAC/B,yCAAwC,EAAE,qCAAqC,yBAAyB,EAAC;AACzG,mBAAmB,mBAAO,CAAC,oGAAc;AACzC,6CAA4C,EAAE,qCAAqC,kCAAkC,EAAC;AACtH,mDAAkD,EAAE,qCAAqC,wCAAwC,EAAC;AAClI,gDAA+C,EAAE,qCAAqC,qCAAqC,EAAC;AAC5H;;;;;;;;;;;AChBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa;AACb;AACA;AACA;AACA;;;;;;;;;;;;ACNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,oBAAoB;AACpB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM,2BAA2B,MAAM;AACtD;AACA,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5Ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,kBAAkB,mBAAO,CAAC,gDAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;;;;;;;;;AC9Fa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;;;;;;;;;;;ACtDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC/Ba;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,kBAAkB,GAAG,sBAAsB,GAAG,4BAA4B,GAAG,cAAc;AACvK,eAAe,mBAAO,CAAC,+DAAU;AACjC,0CAAyC,EAAE,qCAAqC,2BAA2B,EAAC;AAC5G,6BAA6B,mBAAO,CAAC,2FAAwB;AAC7D,wDAAuD,EAAE,qCAAqC,uDAAuD,EAAC;AACtJ,uBAAuB,mBAAO,CAAC,+EAAkB;AACjD,kDAAiD,EAAE,qCAAqC,2CAA2C,EAAC;AACpI,gBAAgB,mBAAO,CAAC,iEAAW;AACnC,8CAA6C,EAAE,qCAAqC,gCAAgC,EAAC;AACrH,mDAAkD,EAAE,qCAAqC,qCAAqC,EAAC;AAC/H,iDAAgD,EAAE,qCAAqC,mCAAmC,EAAC;AAC3H,aAAa,mBAAO,CAAC,iEAAW;AAChC,wBAAwB,mBAAO,CAAC,iFAAmB;AACnD,mDAAkD,EAAE,qCAAqC,6CAA6C,EAAC;AACvI;;;;;;;;;;;AC9Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,qBAAqB;AACrB,kBAAkB;AAClB,kBAAkB,mBAAO,CAAC,gDAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iCAAiC,cAAc,aAAa,MAAM;AAClE,aAAa;AACb;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf,mBAAmB;AACnB,eAAe;AACf,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,kBAAkB,mBAAO,CAAC,gDAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;AC/Ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oCAAoC;AACpC,sCAAsC;AACtC,0BAA0B;AAC1B,uBAAuB;AACvB,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,mBAAmB,mBAAO,CAAC,4GAAkB;AAC7C;AACA;AACA,0DAA0D,kBAAkB;AAC5E;AACA;AACA;AACA;AACA;AACA,yEAAyE,kBAAkB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,MAAM;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,cAAc;AAClC,iBAAiB,mBAAO,CAAC,2FAAY;AACrC,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,kBAAkB,mBAAO,CAAC,6FAAa;AACvC,6CAA4C,EAAE,qCAAqC,iCAAiC,EAAC;AACrH;;;;;;;;;;;ACPa;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd;AACA,mBAAmB,mBAAO,CAAC,4GAAkB;AAC7C,qBAAqB,mBAAO,CAAC,mFAAkB;AAC/C,kBAAkB,mBAAO,CAAC,6EAAe;AACzC,oBAAoB,mBAAO,CAAC,sFAAc;AAC1C,8BAA8B,mBAAO,CAAC,oFAAa;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,4CAA4C,sCAAsC;AAClF,kEAAkE,cAAc;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;;;;;;;;;;ACtJa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,mBAAmB;AACnB,6BAA6B;AAC7B,oBAAoB;AACpB,8BAA8B;AAC9B,2BAA2B;AAC3B;AACA,mBAAmB,mBAAO,CAAC,4GAAkB;AAC7C,gBAAgB,mBAAO,CAAC,sGAAe;AACvC,gBAAgB,mBAAO,CAAC,yEAAa;AACrC,qBAAqB,mBAAO,CAAC,mFAAkB;AAC/C,gBAAgB,mBAAO,CAAC,yEAAa;AACrC,oBAAoB,mBAAO,CAAC,sFAAc;AAC1C,iBAAiB,mBAAO,CAAC,gFAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0GAA0G,UAAU;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,UAAU;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mCAAmC,2BAA2B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;;;;;;;;;;ACtba;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB;AACrB,kBAAkB,mBAAO,CAAC,0EAAY;AACtC,qBAAqB,mBAAO,CAAC,sFAAe;AAC5C,kBAAkB,mBAAO,CAAC,uFAAW;AACrC,8BAA8B,mBAAO,CAAC,mFAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB,yCAAyC;AACjE;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uBAAuB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB,0CAA0C;AAClE;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,qBAAqB,+CAA+C;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qDAAqD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,uBAAuB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AC/Ua;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB;AACpB,oBAAoB;AACpB,mBAAmB;AACnB,oBAAoB;AACpB,sBAAsB;AACtB,WAAW;AACX,6BAA6B;AAC7B,oBAAoB;AACpB,qBAAqB;AACrB,kBAAkB;AAClB,mBAAmB;AACnB,qBAAqB;AACrB,qBAAqB;AACrB,mBAAmB,mBAAO,CAAC,4GAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7La;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,iBAAiB;AACjB,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,oBAAoB,mBAAO,CAAC,qFAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AClEa;AACb;AACA,aAAa,UAAU;AACvB,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,GAAG,8BAA8B,GAAG,gCAAgC,GAAG,6BAA6B,GAAG,cAAc,GAAG,qBAAqB;AAC7J,sBAAsB,mBAAO,CAAC,6FAAiB;AAC/C,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A6C,EAAE,aAAa,EAAC;AAC7D,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3Ba;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY;AACZ,sCAAsC,mBAAO,CAAC,wEAAa;AAC3D;AACA;AACA,mDAAmD,WAAW;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,mBAAmB,mBAAO,CAAC,wEAAkB;AAC7C,eAAe,mBAAO,CAAC,8EAAQ;AAC/B,oBAAoB,mBAAO,CAAC,wFAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0BAA0B;AACxD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;AC3Fa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB,mBAAmB,mBAAO,CAAC,wEAAkB;AAC7C,eAAe,mBAAO,CAAC,8EAAQ;AAC/B,oBAAoB,mBAAO,CAAC,wFAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;;;;;;;;;;AC/Ba;AACb;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,oCAAoC,GAAG,kBAAkB,GAAG,uBAAuB;AAC7G,wBAAwB,mBAAO,CAAC,oGAAmB;AACnD,mDAAkD,EAAE,qCAAqC,6CAA6C,EAAC;AACvI,mBAAmB,mBAAO,CAAC,0FAAc;AACzC,8CAA6C,EAAE,qCAAqC,mCAAmC,EAAC;AACxH,kBAAkB,mBAAO,CAAC,wFAAa;AACvC,gEAA+D,EAAE,qCAAqC,oDAAoD,EAAC;AAC3J,wBAAwB,mBAAO,CAAC,oGAAmB;AACnD,mDAAkD,EAAE,qCAAqC,6CAA6C,EAAC;AACvI;;;;;;;;;;;ACZa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oCAAoC;AACpC,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACXa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,mBAAmB,mBAAO,CAAC,wEAAkB;AAC7C,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,kBAAkB,mBAAO,CAAC,gDAAS;AACnC,oBAAoB,mBAAO,CAAC,wFAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,aAAa;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;AC9Ka;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,cAAc;AAClC,iBAAiB,mBAAO,CAAC,gGAAY;AACrC,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,kBAAkB,mBAAO,CAAC,kGAAa;AACvC,6CAA4C,EAAE,qCAAqC,iCAAiC,EAAC;AACrH;;;;;;;;;;;ACPa;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd;AACA,mBAAmB,mBAAO,CAAC,4GAAkB;AAC7C,qBAAqB,mBAAO,CAAC,mFAAkB;AAC/C,kBAAkB,mBAAO,CAAC,6EAAe;AACzC,oBAAoB,mBAAO,CAAC,2FAAc;AAC1C,8BAA8B,mBAAO,CAAC,yFAAa;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,4CAA4C,sCAAsC;AAClF,kEAAkE,cAAc;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;;;;;;;;;;ACtJa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,mBAAmB;AACnB,6BAA6B;AAC7B,8BAA8B;AAC9B,2BAA2B;AAC3B;AACA,mBAAmB,mBAAO,CAAC,4GAAkB;AAC7C,gBAAgB,mBAAO,CAAC,sGAAe;AACvC,gBAAgB,mBAAO,CAAC,yEAAa;AACrC,qBAAqB,mBAAO,CAAC,mFAAkB;AAC/C,gBAAgB,mBAAO,CAAC,yEAAa;AACrC,oBAAoB,mBAAO,CAAC,2FAAc;AAC1C,iBAAiB,mBAAO,CAAC,qFAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0GAA0G,UAAU;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,UAAU;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mCAAmC,2BAA2B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;;;;;;;;;;ACpba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB;AACpB,oBAAoB;AACpB,mBAAmB;AACnB,oBAAoB;AACpB,sBAAsB;AACtB,WAAW;AACX,6BAA6B;AAC7B,oBAAoB;AACpB,qBAAqB;AACrB,kBAAkB;AAClB,mBAAmB;AACnB,qBAAqB;AACrB,qBAAqB;AACrB,mBAAmB,mBAAO,CAAC,4GAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7La;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,iBAAiB;AACjB,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,oBAAoB,mBAAO,CAAC,0FAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AClEa;AACb;AACA,aAAa,eAAe;AAC5B,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B,GAAG,gBAAgB,GAAG,8BAA8B,GAAG,gCAAgC,GAAG,6BAA6B,GAAG,cAAc;AAClK,iBAAiB,mBAAO,CAAC,wFAAY;AACrC,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,yDAAwD,EAAE,qCAAqC,4CAA4C,EAAC;AAC5I,kBAAkB,mBAAO,CAAC,0FAAa;AACvC,4DAA2D,EAAE,qCAAqC,gDAAgD,EAAC;AACnJ,0DAAyD,EAAE,qCAAqC,8CAA8C,EAAC;AAC/I,4CAA2C,EAAE,qCAAqC,gCAAgC,EAAC;AACnH,2BAA2B,mBAAO,CAAC,4GAAsB;AACzD,sDAAqD,EAAE,qCAAqC,mDAAmD,EAAC;AAChJ;;;;;;;;;;;ACda;AACb;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,6BAA6B,GAAG,cAAc;AAC9C,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,aAAa,cAAc,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B,6BAA6B,6BAA6B;AACvF;AACA;AACA,+CAA+C,QAAQ,IAAI,UAAU;AACrE;AACA;AACA;AACA;;;;;;;;;;;AClDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,8BAA8B;AAC9B,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,eAAe,gBAAgB,gBAAgB;AAChD;;;;;;;;;;;AC7Ba;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,kBAAkB,mBAAO,CAAC,0EAAY;AACtC,qBAAqB,mBAAO,CAAC,sFAAe;AAC5C,kBAAkB,mBAAO,CAAC,4FAAW;AACrC,8BAA8B,mBAAO,CAAC,wFAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB,yCAAyC;AACjE;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uBAAuB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB,0CAA0C;AAClE;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,qBAAqB,+CAA+C;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qDAAqD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,uBAAuB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,0BAA0B;AAC1B;;;;;;;;;;;AC5Ua;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,cAAc;AAClC,iBAAiB,mBAAO,CAAC,gGAAY;AACrC,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,kBAAkB,mBAAO,CAAC,kGAAa;AACvC,6CAA4C,EAAE,qCAAqC,iCAAiC,EAAC;AACrH;;;;;;;;;;;ACPa;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd;AACA,mBAAmB,mBAAO,CAAC,4GAAkB;AAC7C,qBAAqB,mBAAO,CAAC,mFAAkB;AAC/C,kBAAkB,mBAAO,CAAC,6EAAe;AACzC,oBAAoB,mBAAO,CAAC,2FAAc;AAC1C,8BAA8B,mBAAO,CAAC,yFAAa;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,4CAA4C,sCAAsC;AAClF,kEAAkE,cAAc;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;;;;;;;;;;ACtJa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,mBAAmB;AACnB,6BAA6B;AAC7B,8BAA8B;AAC9B,2BAA2B;AAC3B;AACA,mBAAmB,mBAAO,CAAC,4GAAkB;AAC7C,gBAAgB,mBAAO,CAAC,sGAAe;AACvC,gBAAgB,mBAAO,CAAC,yEAAa;AACrC,qBAAqB,mBAAO,CAAC,mFAAkB;AAC/C,gBAAgB,mBAAO,CAAC,yEAAa;AACrC,oBAAoB,mBAAO,CAAC,2FAAc;AAC1C,iBAAiB,mBAAO,CAAC,qFAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0GAA0G,UAAU;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,UAAU;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mCAAmC,2BAA2B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;;;;;;;;;;ACpba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB;AACpB,oBAAoB;AACpB,mBAAmB;AACnB,oBAAoB;AACpB,sBAAsB;AACtB,WAAW;AACX,6BAA6B;AAC7B,oBAAoB;AACpB,qBAAqB;AACrB,kBAAkB;AAClB,mBAAmB;AACnB,qBAAqB;AACrB,qBAAqB;AACrB,mBAAmB,mBAAO,CAAC,4GAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7La;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,iBAAiB;AACjB,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,oBAAoB,mBAAO,CAAC,0FAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AClEa;AACb;AACA,aAAa,eAAe;AAC5B,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B,GAAG,gBAAgB,GAAG,8BAA8B,GAAG,gCAAgC,GAAG,6BAA6B,GAAG,cAAc;AAClK,iBAAiB,mBAAO,CAAC,wFAAY;AACrC,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,yDAAwD,EAAE,qCAAqC,4CAA4C,EAAC;AAC5I,kBAAkB,mBAAO,CAAC,0FAAa;AACvC,4DAA2D,EAAE,qCAAqC,gDAAgD,EAAC;AACnJ,0DAAyD,EAAE,qCAAqC,8CAA8C,EAAC;AAC/I,4CAA2C,EAAE,qCAAqC,gCAAgC,EAAC;AACnH,2BAA2B,mBAAO,CAAC,4GAAsB;AACzD,sDAAqD,EAAE,qCAAqC,mDAAmD,EAAC;AAChJ;;;;;;;;;;;ACda;AACb;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,6BAA6B,GAAG,cAAc;AAC9C,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,aAAa,cAAc,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B,6BAA6B,6BAA6B;AACvF;AACA;AACA,+CAA+C,QAAQ,IAAI,UAAU;AACrE;AACA;AACA;AACA;;;;;;;;;;;AClDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,8BAA8B;AAC9B,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,eAAe,gBAAgB,gBAAgB;AAChD;;;;;;;;;;;AC7Ba;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,kBAAkB,mBAAO,CAAC,0EAAY;AACtC,qBAAqB,mBAAO,CAAC,sFAAe;AAC5C,kBAAkB,mBAAO,CAAC,4FAAW;AACrC,8BAA8B,mBAAO,CAAC,wFAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB,yCAAyC;AACjE;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uBAAuB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB,0CAA0C;AAClE;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,qBAAqB,+CAA+C;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qDAAqD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,uBAAuB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,0BAA0B;AAC1B;;;;;;;;;;;AC5Ua;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,4BAA4B;AAC5B,4BAA4B;AAC5B,uBAAuB;AACvB,oBAAoB;AACpB,kBAAkB,mBAAO,CAAC,+EAAW;AACrC,uBAAuB,mBAAO,CAAC,yFAAgB;AAC/C,uBAAuB,mBAAO,CAAC,yFAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACxCa;AACb;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kBAAkB,mBAAmB,mBAAmB;AACzD;;;;;;;;;;;ACba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;AC/Ba;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,kBAAkB;AAClB,8BAA8B,mBAAO,CAAC,oDAAW;AACjD;AACA;AACA;AACA;AACA,8CAA8C,IAAI;AAClD;AACA;AACA;AACA;AACA;;;;;;;;;;;AC/Ca;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,kBAAkB;AAClB,uBAAuB;AACvB,4BAA4B,mBAAO,CAAC,8CAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;;;;;;;;;;;AC5Da;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa;AACb,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA,6CAA6C,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,aAAa,GAAG,eAAe,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,eAAe,GAAG,iBAAiB;AAC7P,cAAc,mBAAO,CAAC,mGAAS;AAC/B,6CAA4C,EAAE,qCAAqC,6BAA6B,EAAC;AACjH,2CAA0C,EAAE,qCAAqC,2BAA2B,EAAC;AAC7G,eAAe,mBAAO,CAAC,qGAAU;AACjC,8CAA6C,EAAE,qCAAqC,+BAA+B,EAAC;AACpH,4CAA2C,EAAE,qCAAqC,6BAA6B,EAAC;AAChH,eAAe,mBAAO,CAAC,qGAAU;AACjC,8CAA6C,EAAE,qCAAqC,+BAA+B,EAAC;AACpH,mDAAkD,EAAE,qCAAqC,oCAAoC,EAAC;AAC9H,4CAA2C,EAAE,qCAAqC,6BAA6B,EAAC;AAChH,YAAY,mBAAO,CAAC,+FAAO;AAC3B,2CAA0C,EAAE,qCAAqC,yBAAyB,EAAC;AAC3G,yCAAwC,EAAE,qCAAqC,uBAAuB,EAAC;AACvG,gBAAgB,mBAAO,CAAC,uGAAW;AACnC,+CAA8C,EAAE,qCAAqC,iCAAiC,EAAC;AACvH,6CAA4C,EAAE,qCAAqC,+BAA+B,EAAC;AACnH,aAAa,mBAAO,CAAC,iGAAQ;AAC7B,4CAA2C,EAAE,qCAAqC,2BAA2B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,yBAAyB,EAAC;AAC1G;;;;;;;;;;;ACtBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB,iBAAiB;AACjB,6BAA6B,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,IAAI,aAAa,EAAE,IAAI,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,GAAG;AACrE;AACA;;;;;;;;;;;ACnDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;;;;;;;;;;;AClBa;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf;AACA,gCAAgC,mBAAO,CAAC,6CAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,uBAAuB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,MAAM,EAAE,yCAAyC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,oBAAoB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB,GAAG,sBAAsB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;;;;;;;;;;ACpNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,eAAe;AAClF,gBAAgB,mBAAO,CAAC,mGAAW;AACnC,2CAA0C,EAAE,qCAAqC,6BAA6B,EAAC;AAC/G,iBAAiB,mBAAO,CAAC,qGAAY;AACrC,yCAAwC,EAAE,qCAAqC,4BAA4B,EAAC;AAC5G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G;;;;;;;;;;;ACVa;AACb;AACA;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc;AAChE;AACA,gCAAgC,mBAAO,CAAC,6CAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,qBAAqB;AACrB,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,GAAG,uBAAuB,GAAG,iBAAiB,GAAG,aAAa,GAAG,+BAA+B,GAAG,qBAAqB,GAAG,cAAc,GAAG,8BAA8B,GAAG,0BAA0B;AAC3N,eAAe,mBAAO,CAAC,kGAAU;AACjC,sDAAqD,EAAE,qCAAqC,uCAAuC,EAAC;AACpI,0DAAyD,EAAE,qCAAqC,2CAA2C,EAAC;AAC5I,eAAe,mBAAO,CAAC,kGAAU;AACjC,0CAAyC,EAAE,qCAAqC,2BAA2B,EAAC;AAC5G,iDAAgD,EAAE,qCAAqC,kCAAkC,EAAC;AAC1H,2DAA0D,EAAE,qCAAqC,4CAA4C,EAAC;AAC9I,cAAc,mBAAO,CAAC,gGAAS;AAC/B,yCAAwC,EAAE,qCAAqC,yBAAyB,EAAC;AACzG,mBAAmB,mBAAO,CAAC,0GAAc;AACzC,6CAA4C,EAAE,qCAAqC,kCAAkC,EAAC;AACtH,mDAAkD,EAAE,qCAAqC,wCAAwC,EAAC;AAClI,gDAA+C,EAAE,qCAAqC,qCAAqC,EAAC;AAC5H;;;;;;;;;;;AChBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa;AACb;AACA;AACA;AACA;;;;;;;;;;;;ACNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,oBAAoB;AACpB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM,2BAA2B,MAAM;AACtD;AACA,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5Ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,gBAAgB;AAChB,qCAAqC;AACrC,0BAA0B;AAC1B,yBAAyB;AACzB,wBAAwB;AACxB,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAO,CAAC,+DAAS;AACjC,mBAAmB,mBAAO,CAAC,qEAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wBAAwB;AACpC,WAAW,wBAAwB;AACnC,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,wBAAwB;AACpC,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,WAAW,iCAAiC;AAC5C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,WAAW,+BAA+B;AAC1C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gCAAgC;AAC3C,aAAa;AACb;AACA;AACA;AACA;AACA,oCAAoC,GAAG,UAAU,GAAG,mBAAmB,GAAG,UAAU,GAAG;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtIa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa,GAAG,cAAc;AAC9B,kBAAkB;AAClB,qBAAqB;AACrB,qBAAqB;AACrB,gBAAgB,mBAAO,CAAC,+DAAS;AACjC,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,eAAe,mBAAO,CAAC,6DAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS,GAAG,SAAS;AAC7C;AACA,kBAAkB,UAAU,EAAE,iCAAiC,EAAE,qBAAqB,cAAc,gBAAgB,UAAU,6BAA6B,EAAE,OAAO;AACpK;AACA;AACA,mBAAmB,UAAU,IAAI,kCAAkC,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,aAAa,GAAG,WAAW,GAAG,cAAc,GAAG,gDAAgD;AAC/M;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD,6EAA6E,gBAAgB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD,6EAA6E,gBAAgB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,cAAc,+BAA+B;AAC7C;AACA;AACA,cAAc,8BAA8B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB,EAAE,KAAK;AAC3C;AACA;AACA;AACA,cAAc,0CAA0C,EAAE,WAAW,EAAE,KAAK;AAC5E;AACA;AACA,0CAA0C,EAAE;AAC5C;AACA;;;;;;;;;;;AChXa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,GAAG,oBAAoB,GAAG,aAAa;AAC3D,oBAAoB;AACpB,mBAAmB;AACnB,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,iBAAiB,mBAAO,CAAC,iEAAU;AACnC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,OAAO;AACnG;AACA,KAAK;AACL,cAAc,OAAO,GAAG,mBAAmB;AAC3C;AACA,oBAAoB;AACpB,oBAAoB;AACpB;;;;;;;;;;;AC9Da;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB,mBAAmB,mBAAO,CAAC,qEAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;;;;;;;;;;ACvHa;AACb;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,GAAG,gBAAgB,GAAG,sBAAsB;AAC9D,cAAc;AACd,cAAc;AACd,cAAc;AACd,eAAe;AACf,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,qEAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7Na;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,UAAU,GAAG,UAAU,GAAG,aAAa;AACvC,cAAc;AACd,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,UAAU;AACV,UAAU;AACV;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtDa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,gCAAgC,GAAG,yBAAyB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,+BAA+B,GAAG,6BAA6B,GAAG,0BAA0B,GAAG,sCAAsC,GAAG,6BAA6B,GAAG,4BAA4B,GAAG,2BAA2B;AAClZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,EAAE;AACjD;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA,2CAA2C,UAAU,EAAE,QAAQ;AAC/D;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5Ra;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB,8BAA8B;AAC9B,eAAe;AACf;AACA,mBAAmB,mBAAO,CAAC,qEAAY;AACvC,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,iBAAiB,mBAAO,CAAC,iEAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA,qEAAqE,KAAK;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,YAAY,EAAE,kBAAkB;AACrD;AACA;AACA,4BAA4B,cAAc;AAC1C,uBAAuB,EAAE,MAAM,EAAE,IAAI,KAAK;AAC1C;AACA;AACA,kBAAkB,EAAE;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY,EAAE,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;;;;;;;;;;;ACvRa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,eAAe,mBAAO,CAAC,6DAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,sDAAsD;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,iBAAiB;AACjB;;;;;;;;;;;;AChFa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,WAAW;AAClD;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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAwE;AACxF;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;;;;;;;;;;;ACvMa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,qCAAqC,GAAG,sCAAsC,GAAG,0BAA0B,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,gCAAgC,GAAG,YAAY,GAAG,YAAY,GAAG,yBAAyB,GAAG,aAAa,GAAG,yBAAyB,GAAG,aAAa,GAAG,mBAAmB,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,wBAAwB,GAAG,2BAA2B,GAAG,6BAA6B,GAAG,4BAA4B,GAAG,eAAe,GAAG,qBAAqB,GA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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gCAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,SAAS;AACT;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACnFa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,mBAAmB,mBAAO,CAAC,qEAAY;AACvC,mBAAmB,mBAAO,CAAC,qEAAY;AACvC,iBAAiB,mBAAO,CAAC,iEAAU;AACnC,kBAAkB,mBAAO,CAAC,mEAAW;AACrC,0BAA0B,mBAAO,CAAC,mFAAmB;AACrD,kBAAkB,mBAAO,CAAC,mEAAW;AACrC,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,iBAAiB,mBAAO,CAAC,iEAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gCAAgC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,MAAM;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,8CAA8C,yBAAyB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,8BAA8B,yCAAyC,EAAE,QAAQ;AACjF;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,YAAY;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yCAAyC,EAAE,QAAQ;AACjF;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;;;;;;;;;;;ACzba;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa;AACb,aAAa,gBAAgB,mBAAO,CAAC,gEAAgB;AACrD;;;;;;;;;;;ACrCa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY,GAAG,YAAY;AAC3B,aAAa,mBAAO,CAAC,+DAAe;AACpC,wCAAuC,EAAE,qCAAqC,uBAAuB,EAAC;AACtG,wCAAuC,EAAE,qCAAqC,uBAAuB,EAAC;AACtG;;;;;;;;;;;ACpBa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mCAAmC,GAAG,4BAA4B,GAAG,6BAA6B,GAAG,0BAA0B,GAAG,sBAAsB,GAAG,sCAAsC;AACjM,sBAAsB;AACtB,qBAAqB;AACrB,0BAA0B;AAC1B,oBAAoB;AACpB,oBAAoB;AACpB,8BAA8B;AAC9B,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,oBAAoB,mBAAO,CAAC,uEAAa;AACzC,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,wBAAwB,mBAAO,CAAC,+EAAiB;AACjD,iBAAiB,mBAAO,CAAC,iEAAU;AACnC,sCAAsC;AACtC,sBAAsB;AACtB,0BAA0B;AAC1B;AACA,6BAA6B,kBAAkB;AAC/C,4BAA4B;AAC5B;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB,GAAG,+BAA+B;AACzE,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB,GAAG,UAAU;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,EAAE;AAClC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gEAAgE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1Ja;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,UAAU,GAAG,aAAa,GAAG,cAAc,GAAG,YAAY;AAC1D,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAO,CAAC,yEAAc;AAC3C,mBAAmB,mBAAO,CAAC,qEAAY;AACvC,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,GAAG,IAAI,KAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,aAAa;AAC1E,mDAAmD,kDAAkD;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,sEAAsE;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,uBAAuB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,mCAAmC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,yBAAyB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,yBAAyB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,oCAAoC;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,WAAW;AAC/C;AACA;AACA,uBAAuB,OAAO,GAAG,WAAW;AAC5C;AACA,4BAA4B,MAAM,IAAI,2BAA2B;AACjE;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpsBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,qBAAqB,GAAG,wBAAwB,GAAG,eAAe,GAAG,YAAY;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,qEAAY;AACvC,oBAAoB,mBAAO,CAAC,uEAAa;AACzC,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,qBAAqB,mBAAO,CAAC,yEAAc;AAC3C,kBAAkB,mBAAO,CAAC,mEAAW;AACrC,0BAA0B,mBAAO,CAAC,mFAAmB;AACrD,0BAA0B,mBAAO,CAAC,mFAAmB;AACrD,qBAAqB,mBAAO,CAAC,yEAAc;AAC3C,iBAAiB,mBAAO,CAAC,iEAAU;AACnC,cAAc,mBAAO,CAAC,2DAAO;AAC7B,iBAAiB,mBAAO,CAAC,iEAAU;AACnC,kBAAkB,mBAAO,CAAC,mEAAW;AACrC,iBAAiB,mBAAO,CAAC,iEAAU;AACnC;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,8BAA8B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,8BAA8B,yBAAyB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,sCAAsC,sBAAsB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,gCAAgC;AAChC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2BAA2B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA,wCAAwC,eAAe;AACvD;AACA;AACA;AACA;AACA;AACA,sEAAsE,GAAG,EAAE,kBAAkB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC,kCAAkC,gCAAgC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI;AACxE;AACA;AACA,gCAAgC,SAAS,EAAE,MAAM,EAAE,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS,EAAE,eAAe,EAAE,IAAI;AAC/D;AACA;AACA,+BAA+B,SAAS,EAAE,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,WAAW,EAAE,SAAS,EAAE,MAAM;AAClE;AACA;AACA,oCAAoC,WAAW,EAAE,MAAM;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO,EAAE,IAAI;AACnD;AACA;AACA,sCAAsC,MAAM;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,kBAAkB;AACzF;AACA;AACA,iCAAiC,aAAa,EAAE,QAAQ,EAAE,kBAAkB;AAC5E;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,MAAM;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACv8Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,iBAAiB,mBAAO,CAAC,iEAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;;;;;;;;;;;ACtJa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,GAAG,mBAAmB,GAAG,mBAAmB;AAC9D,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,iBAAiB,mBAAO,CAAC,iEAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,eAAe;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,8CAA8C,eAAe;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,YAAY;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;;;;;;;;;;ACtIa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,GAAG,eAAe;AAClC,mBAAmB;AACnB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,EAAE;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;;;;;;;;;;;ACzJa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,kBAAkB;AACpC,wBAAwB;AACxB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAO,CAAC,uEAAa;AACzC,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,mBAAmB,mBAAO,CAAC,qEAAY;AACvC,eAAe,mBAAO,CAAC,6DAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS,KAAK,EAAE;AAC3C,kBAAkB,KAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO,gBAAgB,eAAe,IAAI,cAAc;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,MAAM,KAAK,iCAAiC;AACnF,8BAA8B,UAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB,GAAG,+BAA+B;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,iBAAiB;AACjB;AACA;AACA,eAAe;AACf;;;;;;;;;;;AC3Ra;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,iBAAiB,GAAG,aAAa;AAC1E,2BAA2B;AAC3B,mBAAmB;AACnB,qBAAqB;AACrB,oBAAoB;AACpB,oBAAoB;AACpB,gBAAgB;AAChB,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,qEAAY;AACvC,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,qBAAqB,mBAAO,CAAC,yEAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,iBAAiB;AACjB,YAAY;AACZ,UAAU,oCAAoC;AAC9C,UAAU,oCAAoC;AAC9C;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7Ea;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa;AACb,iBAAiB,mBAAO,CAAC,qEAAY;AACrC,yCAAwC,EAAE,qCAAqC,4BAA4B,EAAC;AAC5G;;;;;;;;;;;;ACLa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,GAAG,YAAY;AAClC,cAAc;AACd,cAAc;AACd,eAAe;AACf,aAAa;AACb,gBAAgB;AAChB,gBAAgB;AAChB,qBAAqB;AACrB,eAAe;AACf,eAAe;AACf,cAAc;AACd,eAAe;AACf,aAAa;AACb,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,qEAAY;AACvC,iBAAiB,mBAAO,CAAC,iEAAU;AACnC;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA,aAAa;AACb;AACA,gBAAgB,OAAO;AACvB;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,UAAU;AACzC;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sBAAsB;AAChD,SAAS;AACT;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5Pa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf;AACA,eAAe;AACf;;;;;;;;;;;;ACLa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB,oBAAoB;AACpB,iBAAiB;AACjB,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,oBAAoB,mBAAO,CAAC,uEAAa;AACzC,kBAAkB,mBAAO,CAAC,mEAAW;AACrC,qBAAqB,mBAAO,CAAC,yEAAc;AAC3C,mBAAmB,mBAAO,CAAC,qEAAY;AACvC,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,kBAAkB,mBAAO,CAAC,mEAAW;AACrC,iBAAiB,mBAAO,CAAC,iEAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA,oBAAoB,OAAO,WAAW,8BAA8B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO,WAAW,0BAA0B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO,cAAc,0BAA0B,IAAI,IAAI;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sCAAsC,KAAK,EAAE;AAChE;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,EAAE;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS,IAAI,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,OAAO;AACxD;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;;;;;;;;;;;ACzTa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;;;;;;;;;;ACxEa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa;AACb,gBAAgB,mBAAO,CAAC,2DAAS;AACjC,gBAAgB,mBAAO,CAAC,2DAAS;AACjC,iBAAiB,mBAAO,CAAC,6DAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sCAAsC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,WAAW;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,8DAA8D;AAC9D;AACA;AACA;AACA,aAAa;AACb;;;;;;;;;;;AC/Ha;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;;;;;;;;;;AC3Sa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,qBAAqB,GAAG,mBAAmB;AAC7D,gBAAgB,mBAAO,CAAC,2DAAS;AACjC,+BAA+B,mBAAO,CAAC,yDAAQ;AAC/C,gBAAgB,mBAAO,CAAC,2DAAS;AACjC,gBAAgB,mBAAO,CAAC,2DAAS;AACjC,iBAAiB,mBAAO,CAAC,6DAAU;AACnC,gBAAgB,mBAAO,CAAC,2DAAS;AACjC,mBAAmB;AACnB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,WAAW;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;;;;;;;;;;ACvIa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,UAAU;AACV,gBAAgB,mBAAO,CAAC,2DAAS;AACjC,gBAAgB,mBAAO,CAAC,2DAAS;AACjC,+BAA+B,mBAAO,CAAC,yDAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;;;;;;;;;;ACzFa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,cAAc,GAAG,cAAc,GAAG,gBAAgB,GAAG,cAAc,GAAG,sBAAsB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,qBAAqB,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,sBAAsB,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,qBAAqB;AACnW,cAAc,mBAAO,CAAC,2DAAS;AAC/B,iDAAgD,EAAE,qCAAqC,iCAAiC,EAAC;AACzH,iDAAgD,EAAE,qCAAqC,iCAAiC,EAAC;AACzH,+CAA8C,EAAE,qCAAqC,+BAA+B,EAAC;AACrH,kDAAiD,EAAE,qCAAqC,kCAAkC,EAAC;AAC3H,8CAA6C,EAAE,qCAAqC,8BAA8B,EAAC;AACnH,gDAA+C,EAAE,qCAAqC,gCAAgC,EAAC;AACvH,8CAA6C,EAAE,qCAAqC,8BAA8B,EAAC;AACnH,iDAAgD,EAAE,qCAAqC,iCAAiC,EAAC;AACzH,8CAA6C,EAAE,qCAAqC,8BAA8B,EAAC;AACnH,4CAA2C,EAAE,qCAAqC,4BAA4B,EAAC;AAC/G,8CAA6C,EAAE,qCAAqC,8BAA8B,EAAC;AACnH,kDAAiD,EAAE,qCAAqC,kCAAkC,EAAC;AAC3H,0CAAyC,EAAE,qCAAqC,0BAA0B,EAAC;AAC3G,4CAA2C,EAAE,qCAAqC,4BAA4B,EAAC;AAC/G,aAAa,mBAAO,CAAC,yDAAQ;AAC7B,0CAAyC,EAAE,qCAAqC,yBAAyB,EAAC;AAC1G,0CAAyC,EAAE,qCAAqC,yBAAyB,EAAC;AAC1G,gBAAgB,mBAAO,CAAC,+DAAW;AACnC,2CAA0C,EAAE,qCAAqC,6BAA6B,EAAC;AAC/G;;;;;;;;;;;ACvBa;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oCAAoC,mBAAO,CAAC,wDAAW;AACvD,kBAAe;AACf;;;;;;;;;;;ACPa;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,GAAG,sBAAsB,GAAG,gBAAgB,GAAG,cAAc;AAC/E,kBAAkB;AAClB,sBAAsB;AACtB,qBAAqB;AACrB,kBAAkB;AAClB,qBAAqB;AACrB,oBAAoB;AACpB,mBAAmB;AACnB,kBAAkB;AAClB,qBAAqB;AACrB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,qDAAM;AAC3B,iBAAiB,mBAAO,CAAC,6DAAU;AACnC,gBAAgB,mBAAO,CAAC,2DAAS;AACjC,gBAAgB,mBAAO,CAAC,2DAAS;AACjC,+BAA+B,mBAAO,CAAC,yDAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,YAAY,SAAS;AACrB,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,aAAa,cAAc,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,qBAAqB,sBAAsB,sBAAsB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;;;;;;;;;;ACzOa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,gBAAgB,mBAAO,CAAC,2DAAS;AACjC,gBAAgB,mBAAO,CAAC,2DAAS;AACjC,+BAA+B,mBAAO,CAAC,yDAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;;;;;;;;;;;AC7Ea;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,cAAc;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,OAAO;AACf;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO;AACX;AACA;;;;;;;;;;;AC1Da;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf;AACA,eAAe;AACf;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY,GAAG,YAAY;AAC3B;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAa;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;AACZ;;;;;;;;;;;ACzIa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,yBAAyB,mBAAO,CAAC,uFAA2B;AAC5D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iEAAiE,yBAAyB;AAC1F,aAAa;AACb;AACA;;;;;;;;;;;ACnBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY;AACZ,gBAAgB;AAChB,kBAAkB;AAClB,qBAAqB;AACrB,iBAAiB;AACjB,2BAA2B;AAC3B,qBAAqB;AACrB,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,0DAAa;AACxC,qBAAqB,mBAAO,CAAC,sEAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,qCAAqC;AACrC,8BAA8B;AAC9B,6CAA6C;AAC7C,+BAA+B;AAC/B,aAAa;AACb;AACA;AACA,YAAY,uCAAuC;AACnD,kCAAkC;AAClC,8BAA8B;AAC9B;AACA;AACA,+BAA+B;AAC/B,kCAAkC,wBAAwB;AAC1D;AACA;AACA;AACA,4BAA4B;AAC5B,sBAAsB;AACtB;AACA;AACA,sDAAsD;AACtD,gCAAgC;AAChC,6BAA6B;AAC7B,qCAAqC;AACrC,iCAAiC;AACjC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA,6BAA6B,kBAAkB;AAC/C;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qBAAqB;AAClD;AACA,oBAAoB,gDAAgD;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qBAAqB;AAClD;AACA,uBAAuB;AACvB,oBAAoB,+BAA+B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA,wBAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,sDAAsD,OAAO;AAC7D;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,wDAAwD;AACxD;AACA;AACA;AACA,iCAAiC,eAAe;AAChD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA,gCAAgC,gBAAgB;AAChD;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa,mBAAmB;AAChC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,MAAM;AACtD;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA,0CAA0C,MAAM;AAChD;AACA;AACA;AACA,qCAAqC,GAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,GAAG;AACxC;AACA,0CAA0C;AAC1C,aAAa;AACb;AACA;;;;;;;;;;;AC3da;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB,0BAA0B;AAC1B,0BAA0B;AAC1B,qBAAqB;AACrB,kBAAkB;AAClB,oBAAoB;AACpB,mBAAmB,mBAAO,CAAC,0DAAa;AACxC,qBAAqB,mBAAO,CAAC,sEAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,QAAQ;AACrC,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8CAA8C;AAC1D;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,OAAO;AAChC;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6EAA6E;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,YAAY,6BAA6B;AACzC;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA,mCAAmC;AACnC,iDAAiD;AACjD,iBAAiB;AACjB;AACA;AACA,mBAAmB;AACnB,8EAA8E,gBAAgB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mDAAmD,0BAA0B;AAC7E,yCAAyC;AACzC;AACA;AACA;AACA,SAAS;AACT,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,yCAAyC,cAAc,sCAAsC;AAC7F;AACA,SAAS;AACT;AACA;AACA;;;;;;;;;;;AClNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB;AACpB,WAAW;AACX,WAAW;AACX,YAAY;AACZ,cAAc;AACd,qBAAqB;AACrB,cAAc;AACd,qBAAqB;AACrB,aAAa;AACb,qBAAqB;AACrB,aAAa;AACb,kBAAkB;AAClB,kBAAkB;AAClB,eAAe;AACf,aAAa;AACb,iBAAiB;AACjB,kBAAkB;AAClB,2BAA2B;AAC3B,2BAA2B;AAC3B,wBAAwB;AACxB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,0DAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,4BAA4B;AAC5B,qCAAqC;AACrC,iCAAiC;AACjC;AACA,iCAAiC;AACjC,mCAAmC;AACnC,qCAAqC;AACrC,qCAAqC;AACrC,2CAA2C;AAC3C,2CAA2C;AAC3C,qCAAqC;AACrC,qCAAqC;AACrC,2CAA2C;AAC3C,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,8BAA8B;AAC9B,mCAAmC;AACnC;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA,uDAAuD;AACvD,2CAA2C;AAC3C;AACA;AACA,2BAA2B;AAC3B,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uCAAuC;AACnD;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACziBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,WAAW,GAAG,cAAc;AAC5B,wBAAwB;AACxB,sBAAsB;AACtB,oBAAoB;AACpB,sBAAsB;AACtB,2BAA2B;AAC3B,YAAY;AACZ,aAAa;AACb,yBAAyB;AACzB,0BAA0B;AAC1B,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAO,CAAC,mEAAuB;AACjD,gBAAgB,mBAAO,CAAC,kEAAqB;AAC7C,mBAAmB,mBAAO,CAAC,0DAAa;AACxC,mBAAmB,mBAAO,CAAC,kEAAY;AACvC,qBAAqB,mBAAO,CAAC,sEAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F;AAC7F;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,gBAAgB,+BAA+B;AAC/C;AACA,gBAAgB,+BAA+B;AAC/C;AACA;AACA,gBAAgB,2BAA2B;AAC3C,gBAAgB,2BAA2B;AAC3C;AACA;AACA,iBAAiB;AACjB,KAAK;AACL;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAkB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,SAAS,QAAQ,WAAW;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,YAAY,SAAS;AACrB;AACA,YAAY,8BAA8B;AAC1C,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,YAAY,OAAO;AACnB;AACA,kCAAkC,yCAAyC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iDAAiD,WAAW;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,gDAAgD;AAChD;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qDAAqD,OAAO,wBAAwB,MAAM,kBAAkB,OAAO;AACnH;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,kCAAkC;AAClC,gEAAgE;AAChE;AACA;AACA;AACA;AACA,gCAAgC;AAChC,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,MAAM;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,IAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,oBAAoB,sBAAsB;AAC1C,0DAA0D;AAC1D,qCAAqC;AACrC;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C,oBAAoB,sBAAsB;AAC1C,0DAA0D;AAC1D;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,iEAAiE;AACjE,6BAA6B;AAC7B;AACA,8BAA8B,wBAAwB;AACtD;AACA,wBAAwB,uBAAuB;AAC/C,wBAAwB,iBAAiB;AACzC,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C,wBAAwB,SAAS,mDAAmD;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mCAAmC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA,kBAAkB;AAClB,2DAA2D;AAC3D;AACA;AACA;AACA,uCAAuC;AACvC,iCAAiC;AACjC,iCAAiC;AACjC,6BAA6B;AAC7B,8BAA8B;AAC9B,4CAA4C;AAC5C;AACA,sBAAsB;AACtB,iCAAiC;AACjC,+BAA+B;AAC/B,8BAA8B;AAC9B,kCAAkC;AAClC,+BAA+B;AAC/B,gCAAgC;AAChC,8BAA8B;AAC9B,8BAA8B;AAC9B,oCAAoC;AACpC,+BAA+B;AAC/B,wCAAwC;AACxC,+BAA+B;AAC/B,gCAAgC;AAChC,uCAAuC;AACvC,uCAAuC;AACvC;AACA,yBAAyB,SAAS;AAClC,+BAA+B;AAC/B,sCAAsC;AACtC,yCAAyC;AACzC,6CAA6C;AAC7C,oCAAoC;AACpC,oCAAoC;AACpC,qCAAqC;AACrC,yCAAyC;AACzC,0CAA0C;AAC1C;AACA,iBAAiB;AACjB;AACA;AACA;AACA,2CAA2C;AAC3C,uCAAuC;AACvC;AACA,iCAAiC;AACjC,sCAAsC;AACtC,oCAAoC;AACpC,sCAAsC;AACtC,kCAAkC;AAClC,uCAAuC;AACvC,+CAA+C,kBAAkB;AACjE,yCAAyC;AACzC,2CAA2C;AAC3C,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,8BAA8B;AAC9B,2BAA2B;AAC3B,gCAAgC;AAChC,mCAAmC;AACnC,8BAA8B;AAC9B,8DAA8D;AAC9D,8BAA8B;AAC9B,2BAA2B;AAC3B,2BAA2B;AAC3B,8BAA8B;AAC9B,gCAAgC;AAChC,gCAAgC;AAChC,gCAAgC;AAChC,8BAA8B;AAC9B,gCAAgC;AAChC,8BAA8B;AAC9B,gBAAgB,iBAAiB,uBAAuB;AACxD,4BAA4B;AAC5B,8BAA8B;AAC9B,sCAAsC;AACtC,wCAAwC;AACxC,gDAAgD;AAChD,uCAAuC;AACvC;AACA,gCAAgC;AAChC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,YAAY,KAAK;AACjB;AACA,+DAA+D,oDAAoD;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yCAAyC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAA8C;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,2BAA2B,8DAA8D;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,2BAA2B,OAAO;AACvF;AACA;AACA,0CAA0C;AAC1C;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,YAAY,SAAS;AACrB,YAAY,mCAAmC;AAC/C,YAAY,wDAAwD;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,MAAM;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,0FAA0F;AAC1F,2CAA2C;AAC3C,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE,qDAAqD;AACrD;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8BAA8B;AAC9C,wDAAwD;AACxD;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA,+DAA+D;AAC/D,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA,wBAAwB;AACxB,kCAAkC;AAClC,yDAAyD;AACzD,sCAAsC;AACtC;AACA;AACA,4DAA4D;AAC5D;AACA;AACA,oEAAoE;AACpE;AACA;AACA,mCAAmC;AACnC,+BAA+B;AAC/B;AACA,sDAAsD;AACtD;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,gBAAgB,cAAc,qCAAqC;AACnE;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,sBAAsB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B,8CAA8C;AAC9C,kCAAkC;AAClC,0CAA0C;AAC1C,0CAA0C;AAC1C,+EAA+E;AAC/E;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,kCAAkC;AAClC,oDAAoD;AACpD;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,+BAA+B;AAC/B,KAAK;AACL;AACA;AACA;AACA,YAAY,oCAAoC;AAChD;AACA;AACA;AACA;AACA;;;;;;;;;;;ACl5Ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,mBAAmB,GAAG,wBAAwB,GAAG,eAAe,GAAG,iBAAiB;AAC5G;AACA;AACA;AACA;AACA,cAAc,uBAAuB;AACrC;AACA;AACA;AACA,kBAAkB,mBAAO,CAAC,mEAAuB;AACjD,mBAAmB,mBAAO,CAAC,qEAAwB;AACnD,2BAA2B,mBAAO,CAAC,yEAAoB;AACvD,2BAA2B,mBAAO,CAAC,2FAA6B;AAChE,qBAAqB,mBAAO,CAAC,+EAAuB;AACpD,yBAAyB,mBAAO,CAAC,uFAA2B;AAC5D,mBAAmB,mBAAO,CAAC,yDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,eAAe;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB,WAAW,uBAAuB;AAClC;AACA;AACA;AACA;AACA;AACA,iBAAiB,yCAAyC,gEAAgE;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA,iCAAiC,aAAa;AAC9C;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,wBAAwB;AACxB;AACA;AACA;AACA;AACA,mCAAmC,MAAM;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAK;AACjB;AACA,YAAY,uBAAuB,kCAAkC;AACrE,mEAAmE;AACnE,iEAAiE;AACjE,wDAAwD;AACxD;AACA,YAAY,uBAAuB;AACnC,oCAAoC;AACpC,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA,oCAAoC,wBAAwB;AAC5D,4CAA4C,2BAA2B;AACvE;AACA;AACA,6CAA6C,4BAA4B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB,WAAW,uBAAuB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,wBAAwB;AACxB,YAAY,OAAO;AACnB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,8BAA8B,mBAAmB,kCAAkC;AACnF,mBAAmB;AACnB,8BAA8B,mBAAmB,kCAAkC;AACnF,qBAAqB;AACrB;;;;;;;;;;;ACxSa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB,GAAG,eAAe,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,eAAe,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,eAAe,GAAG,cAAc;AAC/N,aAAa;AACb,eAAe;AACf,gBAAgB;AAChB,2BAA2B;AAC3B,mBAAmB;AACnB,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,0BAA0B;AAC1B,mBAAmB;AACnB,kBAAkB;AAClB,iBAAiB;AACjB,oBAAoB;AACpB,eAAe;AACf,gBAAgB;AAChB,cAAc;AACd,cAAc;AACd,cAAc;AACd,sBAAsB;AACtB,sBAAsB;AACtB,cAAc;AACd,uBAAuB;AACvB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,qEAAwB;AACnD,iBAAiB,mBAAO,CAAC,qEAAwB;AACjD,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,2CAA0C,EAAE,qCAAqC,8BAA8B,EAAC;AAChH,8CAA6C,EAAE,qCAAqC,iCAAiC,EAAC;AACtH,+CAA8C,EAAE,qCAAqC,kCAAkC,EAAC;AACxH,+CAA8C,EAAE,qCAAqC,kCAAkC,EAAC;AACxH,8CAA6C,EAAE,qCAAqC,iCAAiC,EAAC;AACtH,2CAA0C,EAAE,qCAAqC,8BAA8B,EAAC;AAChH,+CAA8C,EAAE,qCAAqC,kCAAkC,EAAC;AACxH,+CAA8C,EAAE,qCAAqC,kCAAkC,EAAC;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,MAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,MAAM;AAC1C,+CAA+C,OAAO;AACtD,sCAAsC,IAAI,YAAY,aAAa;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,SAAS,cAAc,UAAU,cAAc,EAAE;AACrH;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,gDAAgD;AAChD,0BAA0B;AAC1B,0BAA0B;AAC1B,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,iCAAiC;AACjC,iBAAiB;AACjB;AACA;AACA,iCAAiC;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW,WAAW,YAAY,IAAI;AACpD,kCAAkC,oBAAoB,IAAI,aAAa,GAAG;AAC1E;AACA,kCAAkC,UAAU,IAAI,SAAS;AACzD,kCAAkC,oBAAoB,IAAI,SAAS;AACnE,kCAAkC,2BAA2B;AAC7D,kCAAkC,wBAAwB;AAC1D;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,UAAU,yBAAyB,aAAa,QAAQ,QAAQ;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACvWa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,cAAc;AAC9F,oBAAoB;AACpB,WAAW;AACX,WAAW;AACX;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,yDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yBAAyB;AACzC;AACA,0BAA0B,UAAU;AACpC;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+BAA+B;AAC/C,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qDAAqD;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;;;;;;;;;;ACjKa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa,GAAG,aAAa,GAAG,aAAa,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,GAAG,eAAe,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa;AACzT,WAAW;AACX,eAAe;AACf,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,eAAe;AACf;AACA,eAAe;AACf;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;;;;;ACzFa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,cAAc;AACd;;;;;;;;;;;ACJa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY,GAAG,YAAY;AAC3B;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,yDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,gBAAgB,yDAAyD;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB;AACA;AACA;AACA,YAAY;AACZ,mBAAmB;AACnB;;;;;;;;;;;AC1Fa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,iBAAiB,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY;AAC/F;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,qDAAU;AACnC,mBAAmB,mBAAO,CAAC,yDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA,cAAc,gBAAgB;AAC9B,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA,cAAc,aAAa;AAC3B,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA,0DAA0D;AAC1D,sDAAsD;AACtD,kEAAkE;AAClE,4BAA4B,QAAQ;AACpC;AACA,2FAA2F;AAC3F;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA,2FAA2F;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;;;;;;;;;;AC9Ra;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,mBAAmB;AACnB;AACA;AACA;AACA;AACA,kBAAkB,mBAAO,CAAC,uDAAW;AACrC;AACA,mBAAmB,mBAAO,CAAC,yDAAY;AACvC;AACA;AACA;AACA,6CAA6C,0BAA0B;AACvE,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA,oDAAoD,+BAA+B;AACnF;AACA;AACA,YAAY,6BAA6B;AACzC,cAAc;AACd;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,uBAAuB;AAC1E;AACA;AACA,YAAY,wCAAwC;AACpD,cAAc;AACd;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA;AACA;;;;;;;;;;;ACpGa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAO,CAAC,2DAAa;AACzC;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;;;;;;;;;;;ACfa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,GAAG,kBAAkB,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc;AACzN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,qDAAU;AACnC,YAAY,mBAAO,CAAC,uDAAW;AAC/B,mBAAmB,mBAAO,CAAC,yDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yBAAyB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,yBAAyB;AACvC,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAiE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iEAAiE;AAC/E;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;;;;;;;;;;AC/Xa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAO,CAAC,uDAAW;AACrC;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;;;;;;;;;;;ACtBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,cAAc;AACpN,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAO,CAAC,uDAAW;AACrC;AACA,mBAAmB,mBAAO,CAAC,yDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,YAAY;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA,wBAAwB,QAAQ;AAChC;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC,4BAA4B,QAAQ;AACpC;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA,0BAA0B,UAAU;AACpC;AACA,4BAA4B,UAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+BAA+B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,4CAA4C,UAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iDAAiD;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,gBAAgB;AAChB;AACA,gBAAgB;AAChB;AACA,gBAAgB;AAChB;AACA,gBAAgB;AAChB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB,wFAAwF;AACxF;AACA,gBAAgB;AAChB;AACA,gBAAgB;AAChB;;;;;;;;;;;AC9Oa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc;AACrJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAO,CAAC,uDAAW;AACrC;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;;;;;;;;;;;AC5Ba;AACb;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kCAAkC,GAAG,+BAA+B,GAAG,uBAAuB,GAAG,YAAY,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,iBAAiB,GAAG,YAAY;AAC/M,eAAe;AACf,eAAe;AACf,cAAc;AACd,aAAa;AACb,eAAe;AACf,eAAe;AACf,UAAU;AACV,WAAW;AACX,aAAa;AACb,kBAAkB;AAClB,YAAY;AACZ,YAAY;AACZ,gBAAgB;AAChB,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;AAClB,iBAAiB;AACjB,mBAAmB;AACnB,mBAAmB;AACnB,eAAe;AACf,uBAAuB;AACvB,mBAAmB;AACnB,iBAAiB;AACjB,oBAAoB;AACpB,uBAAuB;AACvB,mBAAmB;AACnB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,oEAAsB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,aAAa;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,+BAA+B;AAC/B;AACA,qCAAqC;AACrC;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA,6BAA6B,mBAAmB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,+BAA+B;AAC/B,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACxTA;;AAEA,cAAc,mBAAO,CAAC,kEAAO;;AAE7B,cAAc,wFAA4B;AAC1C,YAAY,mBAAO,CAAC,kEAAa;AACjC,iBAAiB,mBAAO,CAAC,4EAAkB;AAC3C,gBAAgB,mBAAO,CAAC,0EAAiB;AACzC,gBAAgB,mBAAO,CAAC,0EAAiB;;;;;;;;;;;ACRzC,WAAW,mBAAO,CAAC,mDAAS;AAC5B,eAAe,mBAAO,CAAC,6DAAU;;AAEjC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,yFAA8B;AAC1C,4CAA4C;AAC5C,iCAAiC;AACjC,QAAQ;AACR;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;AC5DA,eAAe,mBAAO,CAAC,6DAAU;AACjC,eAAe,8FAA2B;AAC1C,aAAa,4EAAwB;;AAErC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACnHA;;AAEA,gBAAgB,oGAA8B;AAC9C,qBAAqB,qGAAiC;AACtD,qBAAqB,qGAAiC;AACtD,YAAY,mBAAO,CAAC,4DAAQ;;;;;;;;;;;ACL5B,eAAe,8FAA2B;AAC1C,oBAAoB,mGAAgC;AACpD,oBAAoB,mGAAgC;AACpD,aAAa,mBAAO,CAAC,wEAAqB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACznBA,eAAe,mBAAO,CAAC,6DAAU;;AAEjC;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;;AAEA;AACA;;AAEA,WAAW;AACX;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;;;;;;;;;;ACxHA,gBAAgB,mBAAO,CAAC,wEAAc;;AAEtC,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;;;;;;;;;;ACzCjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA,gBAAgB,mBAAO,CAAC,+DAAO;;;;;;;;;;;AClB/B,eAAe,mBAAO,CAAC,6DAAU;;AAEjC,WAAW,mBAAO,CAAC,sDAAY;AAC/B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,IAAI;AACJ;AACA;AACA;;AAEA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACnUA;;AAEA,eAAe,mBAAO,CAAC,8DAAO;AAC9B,eAAe,mBAAO,CAAC,8DAAO;;;;;;;;;;;ACH9B,eAAe,mBAAO,CAAC,6DAAU;AACjC,aAAa,4EAAwB;;AAErC,iBAAiB,mBAAO,CAAC,8DAAO;;AAEhC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;AChDA,eAAe,mBAAO,CAAC,6DAAU;AACjC,aAAa,4EAAwB;;AAErC,WAAW,mBAAO,CAAC,sDAAY;AAC/B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,YAAY;AAC3C;;AAEA;AACA;AACA;;AAEA,kDAAkD,OAAO;AACzD;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA,IAAI;AACJ;AACA,oBAAoB,eAAe;AACnC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA,iBAAiB,eAAe;AAChC;AACA;;AAEA;AACA;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,YAAY;AAChC;;AAEA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,YAAY,iBAAiB;AAC7B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;;;;;;;;;;ACtSA;;AAEA,eAAe,mBAAO,CAAC,8DAAO;AAC9B,eAAe,mBAAO,CAAC,8DAAO;;;;;;;;;;;ACH9B,eAAe,mBAAO,CAAC,6DAAU;;AAEjC,iBAAiB,mBAAO,CAAC,8DAAO;;AAEhC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;;;;;;;;;;;;ACpBA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,eAAe,mDAAwB;AACvC;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA,0DAA0D,mBAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,SAAS;AACjC;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;;AAEA,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;AACA,MAAM;AACN,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;;AAEA,aAAa,eAAe;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,gBAAgB;AACtC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;;AAEA,sBAAsB,OAAO;AAC7B;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;;AAEA,mCAAmC;AACnC,uCAAuC;AACvC;;AAEA;AACA,sBAAsB,OAAO;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,8BAA8B,cAAc;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,QAAQ;AACxC;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,+CAA+C;AACnE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,sBAAsB,sCAAsC;AAC5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,QAAQ;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,QAAQ;AACrC;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,MAA6B;;;;;;;;;;;;;;ACr3GhC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,sBAAsB,2BAA2B,oGAAoG,mBAAmB,iBAAiB,sHAAsH;AAC/S,4CAA4C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD;AAC/P,8DAA8D,sEAAsE,8DAA8D,kDAAkD,iBAAiB,GAAG;AACxQ,+BAA+B,uCAAuC;AACtE,qCAAqC,iEAAiE,sCAAsC,0BAA0B,+CAA+C,2CAA2C,uEAAuE;AACvU,kDAAkD,0CAA0C;AAC5F,eAAe,mBAAO,CAAC,yEAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAO,CAAC,yGAAmC;AAChE,gBAAgB,mBAAO,CAAC,0CAAO;AAC/B;AACA,qBAAqB,uEAAsB;AAC3C;AACA;AACA,mBAAmB,mBAAO,CAAC,wEAAwB;AACnD,eAAe,mBAAO,CAAC,gEAAoB;AAC3C,0BAA0B,mBAAO,CAAC,kEAAqB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,6FAA6B;AACxD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,iBAAiB,OAAO,eAAe,OAAO,eAAe,OAAO,WAAW,OAAO;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sEAAsE,aAAa;AACnF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,6FAA6F,eAAe;AAC5G;AACA;AACA;AACA;AACA;AACA,6FAA6F,eAAe;AAC5G;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,6FAA6F,eAAe;AAC5G;AACA;AACA;AACA;AACA;AACA,6FAA6F,eAAe;AAC5G;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yEAAyE,eAAe;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;AC7kBA;AACA;;AAEa;;AAEb,yBAAyB,wBAAwB,oCAAoC,yCAAyC,kCAAkC,0DAA0D,0BAA0B;AACpP,4BAA4B,gBAAgB,sBAAsB,OAAO,kDAAkD,sDAAsD,8BAA8B,mJAAmJ,qEAAqE,KAAK;AAC5a,4CAA4C,2BAA2B,kBAAkB,kCAAkC,oEAAoE,KAAK,OAAO,oBAAoB;AAC/N,kDAAkD,0CAA0C;AAC5F,4CAA4C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD;AAC/P,8DAA8D,sEAAsE,8DAA8D,kDAAkD,iBAAiB,GAAG;AACxQ,+BAA+B,uCAAuC;AACtE,qCAAqC,iEAAiE,sCAAsC,0BAA0B,+CAA+C,2CAA2C,uEAAuE;AACvU,2CAA2C,+DAA+D,6EAA6E,yEAAyE,eAAe,uDAAuD,GAAG,+CAA+C,iBAAiB,GAAG;AAC5Y,iCAAiC,6DAA6D,yCAAyC,8CAA8C,iCAAiC,mDAAmD,2DAA2D,OAAO,yCAAyC;AACpX,kDAAkD,0EAA0E,eAAe,4BAA4B,mFAAmF;AAC1P,wCAAwC,uBAAuB,yFAAyF;AACxJ,mCAAmC,gEAAgE,sDAAsD,+DAA+D,mCAAmC,6EAA6E,qCAAqC,iDAAiD,8BAA8B,qBAAqB,0EAA0E,qDAAqD,eAAe,yEAAyE,GAAG,2CAA2C;AACttB,2CAA2C,mCAAmC,yCAAyC,OAAO,wDAAwD,gBAAgB,uBAAuB,kDAAkD,kCAAkC,uDAAuD,sBAAsB;AAC9X,uCAAuC,wEAAwE,0CAA0C,8CAA8C,MAAM,4EAA4E,IAAI,eAAe,YAAY;AACxT,iCAAiC;AACjC,iCAAiC,0GAA0G,iBAAiB,aAAa;AACzK,8BAA8B,uGAAuG,mDAAmD;AACxL,sBAAsB,2BAA2B,oGAAoG,mBAAmB,iBAAiB,sHAAsH;AAC/S,eAAe,mBAAO,CAAC,0CAAO;AAC9B;AACA,gBAAgB,mBAAO,CAAC,iEAAW;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,sBAAsB,OAAO,WAAW,OAAO,gBAAgB,OAAO;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,aAAa,IAAI,aAAa;AAClE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,UAAU,OAAO,WAAW,OAAO;AACnC;AACA;AACA,YAAY,OAAO,WAAW,OAAO,yBAAyB,OAAO;AACrE;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,UAAU;AACnE;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA,CAAC;AACD;;;;;;;;;;;AC5bA;AACA;;AAEA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA,sBAAsB,2BAA2B,oGAAoG,mBAAmB,iBAAiB,sHAAsH;AAC/S,4CAA4C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD;AAC/P,8DAA8D,sEAAsE,8DAA8D,kDAAkD,iBAAiB,GAAG;AACxQ,+BAA+B,uCAAuC;AACtE,qCAAqC,iEAAiE,sCAAsC,0BAA0B,+CAA+C,2CAA2C,uEAAuE;AACvU,kDAAkD,0CAA0C;AAC5F,2CAA2C,+DAA+D,6EAA6E,yEAAyE,eAAe,uDAAuD,GAAG,+CAA+C,iBAAiB,GAAG;AAC5Y,iCAAiC,0GAA0G,iBAAiB,aAAa;AACzK,iCAAiC,6DAA6D,yCAAyC,8CAA8C,iCAAiC,mDAAmD,2DAA2D,OAAO,yCAAyC;AACpX,kDAAkD,0EAA0E,eAAe,4BAA4B,mFAAmF;AAC1P,wCAAwC,uBAAuB,yFAAyF;AACxJ,uCAAuC,wEAAwE,0CAA0C,8CAA8C,MAAM,4EAA4E,IAAI,eAAe,YAAY;AACxT,8BAA8B,uGAAuG,mDAAmD;AACxL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,qCAAqC,mBAAO,CAAC,wDAAW;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,iCAAiC,mBAAO,CAAC,0CAAO;AAChD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,CAAC;AACD;AACA,sEAAsE,aAAa;AACnF;AACA;AACA,qCAAqC,mBAAO,CAAC,wDAAW;AACxD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,oBAAoB;;;;;;;;;;;AC1KpB;AACA;;AAEa;;AAEb,kCAAkC;AAClC,8BAA8B;AAC9B,kDAAkD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD;AAC7S,uCAAuC,uDAAuD,uCAAuC,SAAS,uBAAuB;AACrK,uCAAuC,kGAAkG,iBAAiB,wCAAwC,MAAM,yCAAyC,6BAA6B,UAAU,YAAY,kEAAkE,WAAW,YAAY,iBAAiB,UAAU,MAAM,2EAA2E,UAAU,oBAAoB;AACvgB,gCAAgC;AAChC,sBAAsB,2BAA2B,oGAAoG,mBAAmB,iBAAiB,sHAAsH;AAC/S;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,uCAAuC,mBAAO,CAAC,oDAAW;AAC1D;AACA;AACA;AACA,gDAAgD,mBAAO,CAAC,8CAAQ;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uEAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,kBAAkB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW,oBAAoB,WAAW;AACzD;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC9jBY;;AAEZ,kBAAkB;AAClB,mBAAmB;AACnB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA,mCAAmC,SAAS;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C,UAAU;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACrJY;AACZ;;AAEA;AACA;AACA,gBAAgB,qBAAqB;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;;AAEA;AACA;AACA;;AAEA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,kBAAkB;AACpC;AACA;;AAEA;AACA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,iBAAiB;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACrLA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,eAAe,mDAAwB;AACvC;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA,0DAA0D,mBAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,SAAS;AACjC;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B,iBAAiB;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B,iBAAiB;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,gBAAgB;AACtC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;;AAEA,sBAAsB,OAAO;AAC7B;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;;AAEA,mCAAmC;AACnC,uCAAuC;AACvC;;AAEA;AACA,sBAAsB,OAAO;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,8BAA8B,cAAc;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,QAAQ;AACxC;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,+CAA+C;AACnE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,sBAAsB,sCAAsC;AAC5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,QAAQ;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,QAAQ;AACrC;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,MAA6B;;;;;;;;;;;AC19GhC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,iBAAiB,mBAAO,CAAC,qBAAQ;AACjC;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;;;;;;;;;;AChEA;AACA;AACA;AACA;;AAEA,aAAa,sFAA6B;;AAE1C;AACA;;AAEA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,aAAa;AAC/B;AACA;;AAEA,oBAAoB,YAAY;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB,aAAa;AAChC;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;;;;;;;;;;;ACnOlB,UAAU,mBAAO,CAAC,mDAAO;AACzB,aAAa,sFAA6B;AAC1C,gBAAgB,mBAAO,CAAC,wDAAa;AACrC,eAAe,mBAAO,CAAC,6DAAU;AACjC,YAAY,mBAAO,CAAC,uDAAS;AAC7B,UAAU,mBAAO,CAAC,sDAAY;AAC9B,aAAa,mBAAO,CAAC,yDAAU;;AAE/B;AACA;AACA;;AAEA;AACA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACpHA,cAAc,mBAAO,CAAC,+DAAa;AACnC,gBAAgB,mBAAO,CAAC,+DAAa;AACrC,YAAY,mBAAO,CAAC,wEAAmB;;AAEvC;AACA;AACA;;AAEA,oBAAoB,GAAG,cAAc;AACrC,sBAAsB,GAAG,gBAAgB;AACzC,sBAAsB,GAAG,gBAAgB;AACzC,wBAAwB,GAAG,kBAAkB;AAC7C,mBAAmB,GAAG,kBAAkB;;;;;;;;;;;ACZxC,iBAAiB,mBAAO,CAAC,iEAAc;AACvC,aAAa,sFAA6B;AAC1C,YAAY,mBAAO,CAAC,6DAAS;AAC7B,mBAAmB,mBAAO,CAAC,qEAAgB;AAC3C,gBAAgB,mBAAO,CAAC,wDAAa;AACrC,UAAU,mBAAO,CAAC,mDAAO;AACzB,WAAW,mBAAO,CAAC,8DAAgB;AACnC,eAAe,mBAAO,CAAC,6DAAU;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB;AACtB,wBAAwB;;;;;;;;;;;AC3HxB,YAAY,mBAAO,CAAC,6DAAS;AAC7B,iBAAiB,mBAAO,CAAC,iEAAc;AACvC,aAAa,sFAA6B;AAC1C,mBAAmB,mBAAO,CAAC,qEAAgB;AAC3C,gBAAgB,mBAAO,CAAC,wDAAa;AACrC,UAAU,mBAAO,CAAC,mDAAO;AACzB,WAAW,mBAAO,CAAC,8DAAgB;AACnC,eAAe,mBAAO,CAAC,6DAAU;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB;AACtB,oBAAoB;;;;;;;;;;;ACjHpB,aAAa,sFAA6B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACdA,UAAU,mBAAO,CAAC,sDAAY;;AAE9B,eAAe;AACf;;AAEA;AACA;AACA;;AAEA,eAAe;AACf;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;AChBA,aAAa,sFAA6B;AAC1C,UAAU,mBAAO,CAAC,sDAAY;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AChCA,aAAa,sFAA6B;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACzCA,aAAa,sFAA6B;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACxBA,UAAU,mBAAO,CAAC,sDAAY;AAC9B,aAAa,sFAA6B;AAC1C,aAAa,mBAAO,CAAC,0DAAW;;AAEhC;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7BA,eAAe;AACf;AACA;;AAEA,eAAe;AACf;AACA;;;;;;;;;;;ACNA;AACA,OAAO,mBAAO,CAAC,yDAAO;AACtB,OAAO,mBAAO,CAAC,yDAAO;AACtB,OAAO,mBAAO,CAAC,yDAAO;AACtB,QAAQ,mBAAO,CAAC,2DAAQ;AACxB,QAAQ,mBAAO,CAAC,2DAAQ;AACxB,OAAO,mBAAO,CAAC,yDAAO;AACtB,OAAO,mBAAO,CAAC,yDAAO;AACtB,OAAO,mBAAO,CAAC,yDAAO;AACtB;;AAEA,YAAY,mBAAO,CAAC,kEAAa;;AAEjC;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,UAAU,mBAAO,CAAC,sDAAY;;AAE9B;AACA;AACA;AACA;;AAEA,eAAe;AACf;AACA,kBAAkB,MAAM;AACxB;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACfA,UAAU,mBAAO,CAAC,mDAAO;AACzB,aAAa,sFAA6B;AAC1C,gBAAgB,mBAAO,CAAC,wDAAa;AACrC,eAAe,mBAAO,CAAC,6DAAU;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA,UAAU,mBAAO,CAAC,8DAAgB;AAClC,UAAU,mBAAO,CAAC,wEAAwB;AAC1C,eAAe,mBAAO,CAAC,0EAAsB;AAC7C,eAAe,mBAAO,CAAC,oEAAsB;AAC7C,WAAW,mBAAO,CAAC,8DAAgB;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,+BAA+B;;AAEvE;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,8CAA8C;;AAEtF;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,GAAG,cAAc;AACrC,sBAAsB,GAAG,gBAAgB;AACzC,sBAAsB,GAAG,gBAAgB;AACzC,wBAAwB,GAAG,kBAAkB;AAC7C,mBAAmB,GAAG,kBAAkB;;;;;;;;;;;AClExC,iBAAiB,mBAAO,CAAC,wDAAa;AACtC,UAAU,mBAAO,CAAC,gDAAQ;AAC1B,eAAe,mBAAO,CAAC,6DAAU;AACjC,aAAa,sFAA6B;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjDA,kBAAkB;AAClB;AACA;AACA;AACA,kBAAkB,GAAG,WAAW;AAChC;AACA;AACA;AACA,uBAAuB,GAAG,YAAY;AACtC;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;;;;;;;;;;;ACvBa;;AAEb,SAAS,mBAAO,CAAC,6CAAO;AACxB,kBAAkB,mBAAO,CAAC,0DAAa;AACvC,aAAa,sFAA6B;;AAE1C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrCa;;AAEb,+HAAqD;;;;;;;;;;;;ACFxC;;AAEb,aAAa,sFAA6B;AAC1C,iBAAiB,mBAAO,CAAC,0DAAa;AACtC,aAAa,mBAAO,CAAC,wGAAiB;AACtC,eAAe,mBAAO,CAAC,6DAAU;AACjC,WAAW,mBAAO,CAAC,8DAAQ;AAC3B,aAAa,mBAAO,CAAC,kEAAU;;AAE/B,iBAAiB,mBAAO,CAAC,iFAAmB;AAC5C;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC3Fa;;AAEb;AACA,aAAa,sFAA6B;AAC1C,iBAAiB,mBAAO,CAAC,0DAAa;AACtC,UAAU,mBAAO,CAAC,8DAAgB;AAClC,SAAS,mFAAsB;AAC/B,SAAS,mBAAO,CAAC,6CAAO;AACxB,gBAAgB,mBAAO,CAAC,sDAAY;AACpC,aAAa,mBAAO,CAAC,yEAAe;;AAEpC;;AAEA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA,IAAI;AACJ,8BAA8B;AAC9B;AACA;AACA,wDAAwD;AACxD,wEAAwE;;AAExE;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB,sBAAsB;;;;;;;;;;;;ACrJT;;AAEb;AACA,aAAa,sFAA6B;AAC1C,SAAS,mBAAO,CAAC,6CAAO;AACxB,SAAS,mFAAsB;AAC/B,gBAAgB,mBAAO,CAAC,sDAAY;AACpC,aAAa,mBAAO,CAAC,yEAAe;;AAEpC;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA,IAAI;AACJ,8BAA8B;AAC9B;AACA;AACA,wDAAwD;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA,kBAAkB;;AAElB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB,uBAAuB;AACvB;;AAEA;;;;;;;;;;;;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,UAAU,mBAAO,CAAC,0EAAsB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA,yBAAyB,mBAAO,CAAC,6DAAc;AAC/C,gBAAgB,mBAAO,CAAC,6DAAU;AAClC;;AAEA,eAAe,mBAAO,CAAC,+GAAoB;AAC3C,eAAe,mBAAO,CAAC,+GAAoB;;AAE3C;;AAEA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEa;;AAEb;;AAEA,gBAAgB,mBAAO,CAAC,iHAAqB;;AAE7C;AACA,yBAAyB,mBAAO,CAAC,6DAAc;AAC/C,gBAAgB,mBAAO,CAAC,6DAAU;AAClC;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,UAAU,mBAAO,CAAC,0EAAsB;AACxC;;AAEA;;AAEA;AACA,cAAc,mBAAO,CAAC,gDAAS;AAC/B;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS,mFAA8B;;AAEvC;AACA;AACA;AACA;;AAEA;AACA,aAAa,mBAAO,CAAC,qIAA2B;AAChD;;AAEA;;AAEA,aAAa,gJAA6B;AAC1C,4BAA4B,qBAAM,mBAAmB,qBAAM,mFAAmF;AAC9I;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,yBAAyB,mBAAO,CAAC,6DAAc;AAC/C,gBAAgB,mBAAO,CAAC,6DAAU;AAClC;;AAEA;AACA,gBAAgB,mBAAO,CAAC,mBAAM;AAC9B;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA,iBAAiB,mBAAO,CAAC,qIAA+B;AACxD,kBAAkB,mBAAO,CAAC,+HAA4B;AACtD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yEAAyE,6EAA6E;AACtJ;;AAEA;AACA,qBAAqB,mBAAO,CAAC,2GAAkB;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iDAAiD,0FAA0F;;AAE3I;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,8IAAwC;AAChF;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,mBAAO,CAAC,2GAAkB;;AAE/C;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,kGAAkG;AAClG,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA,4FAA4F;AAC5F,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,gDAAgD;;AAEhD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,8IAAwC;AAC9E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gEAAgE,OAAO,oBAAoB,OAAO;;AAElG;AACA,4CAA4C;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;;AAErB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B,sCAAsC,mBAAmB;AACzD,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA,4EAA4E;;AAE5E;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,kBAAkB,yBAAyB;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mDAAmD;AACnD;AACA,mDAAmD,iEAAiE;AACpH;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,uCAAuC;AACvC,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,OAAO;AACxC;AACA;AACA;AACA;;;;;;;;;;;AC1/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,aAAa;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,aAAa,mBAAO,CAAC,2GAAkB;;AAEvC;AACA,yBAAyB,mBAAO,CAAC,6DAAc;AAC/C,gBAAgB,mBAAO,CAAC,6DAAU;AAClC;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;;;;;;ACrNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEa;;AAEb;;AAEA,UAAU,mBAAO,CAAC,0EAAsB;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,OAAO,uCAAuC,OAAO;AACvE;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,yBAAyB,mBAAO,CAAC,6DAAc;AAC/C,gBAAgB,mBAAO,CAAC,6DAAU;AAClC;;AAEA;AACA;AACA,aAAa,mBAAO,CAAC,gEAAgB;AACrC;AACA;;AAEA;AACA,aAAa,mBAAO,CAAC,qIAA2B;AAChD;;AAEA;;AAEA,aAAa,gJAA6B;AAC1C,4BAA4B,qBAAM,mBAAmB,qBAAM,mFAAmF;AAC9I;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,kBAAkB,mBAAO,CAAC,+HAA4B;;AAEtD;;AAEA;;AAEA;AACA,qBAAqB,mBAAO,CAAC,2GAAkB;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAiD,0FAA0F;;AAE3I;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,IAAI;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,mBAAO,CAAC,2GAAkB;;AAE/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iCAAiC;;AAEjC;;AAEA,2CAA2C;AAC3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,oDAAoD;AACpD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5qBa;;AAEb,kDAAkD,0CAA0C;;AAE5F,aAAa,gJAA6B;AAC1C,WAAW,mBAAO,CAAC,mBAAM;;AAEzB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB,gDAAgD;AAChD;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,6BAA6B,qBAAqB;AAClD;AACA;AACA;;;;;;;;;;;AC7Ea;;AAEb;;AAEA,UAAU,mBAAO,CAAC,0EAAsB;AACxC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;ACnFA,kGAA+C;;;;;;;;;;;ACA/C;AACA,aAAa,mBAAO,CAAC,8CAAQ;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE,cAAc;AAChB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7DA,UAAU,4JAAqD;AAC/D,cAAc;AACd,gBAAgB;AAChB,8JAAuD;AACvD,wJAAmD;AACnD,iKAAyD;AACzD,uKAA6D;;;;;;;;;;;;ACN7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,aAAa,+IAA6B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,sCAAsC,sCAAsC;AACzG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;ACvSA;AACA,aAAa,mBAAO,CAAC,8CAAQ;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE,cAAc;AAChB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7DA;AACA;AACA,mBAAmB,MAAM;;AAEzB,kBAAkB,YAAY;AAC9B;AACA;;AAEA;AACA;;;;;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ,eAAe,mBAAO,CAAC,oDAAW;AAClC,gBAAgB,mBAAO,CAAC,gDAAS;AACjC;AACA;AACA;AACA;;AAEA,cAAc;AACd,kBAAkB;AAClB,yBAAyB;;AAEzB;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0CAA0C,OAAO;AACjD,WAAW,OAAO;AAClB,EAAE,OAAO;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;;AAEA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iDAAiD,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,eAAe;AACxC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,yBAAyB,QAAQ;AACjC;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA,qBAAqB,WAAW,GAAG,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,gBAAgB,WAAW,GAAG,IAAI,KAAK,aAAa;AACpD;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;;AAEA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,KAAK,mDAAmD,cAAc;AACzF,GAAG;AACH;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,MAAM,aAAa,SAAS;AACtD;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,SAAS,gBAAgB;AACzB,cAAc,oBAAoB,EAAE,IAAI;AACxC;AACA,YAAY,gBAAgB,EAAE,IAAI;AAClC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,GAAG,SAAS,GAAG,KAAK,qBAAqB,EAAE,EAAE;AACpE,QAAQ;AACR,yBAAyB,GAAG,KAAK,yBAAyB,EAAE,EAAE;AAC9D,mBAAmB,yBAAyB,EAAE,EAAE;AAChD;AACA,MAAM;AACN,oBAAoB,IAAI,EAAE,GAAG,SAAS,IAAI,EAAE,EAAE;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0CAA0C,cAAc,SAAS,OAAO;AACxE;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,YAAY;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACzjEa;;AAEb,WAAW,mBAAO,CAAC,4DAAe;;AAElC,aAAa,mBAAO,CAAC,gFAAiB;AACtC,YAAY,mBAAO,CAAC,8EAAgB;AACpC,oBAAoB,mBAAO,CAAC,8EAAgB;;AAE5C,WAAW,yBAAyB;AACpC;;;;;;;;;;;;ACTa;;AAEb,WAAW,mBAAO,CAAC,4DAAe;AAClC,aAAa,mBAAO,CAAC,gFAAiB;AACtC,kBAAkB,mBAAO,CAAC,4EAAe;;AAEzC,WAAW,uBAAuB;AAClC;AACA;AACA;;;;;;;;;;;;ACTa;;AAEb,WAAW,2BAA2B;AACtC;;;;;;;;;;;;ACHa;;AAEb,WAAW,0BAA0B;AACrC;;;;;;;;;;;;ACHa;;AAEb,WAAW,mBAAO,CAAC,4DAAe;AAClC,iBAAiB,mBAAO,CAAC,wDAAgB;;AAEzC,YAAY,mBAAO,CAAC,8EAAgB;AACpC,mBAAmB,mBAAO,CAAC,4EAAe;;AAE1C,WAAW,uEAAuE;AAClF;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACda;;AAEb,WAAW,0BAA0B;AACrC;;;;;;;;;;;;ACHa;;AAEb,mBAAmB,mBAAO,CAAC,4DAAe;;AAE1C,eAAe,mBAAO,CAAC,6CAAI;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACda;;AAEb,wBAAwB,mBAAO,CAAC,wEAAqB;;AAErD,sBAAsB,mBAAO,CAAC,sEAAoB;;AAElD,oBAAoB,mBAAO,CAAC,gFAAyB;AACrD,gBAAgB,mBAAO,CAAC,8FAAmC;;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C,kBAAkB;AAC9D,EAAE;AACF,CAAC,oBAAoB;AACrB;;;;;;;;;;;;ACvBa;;AAEb,mBAAmB,mBAAO,CAAC,4DAAe;;AAE1C,oBAAoB,mBAAO,CAAC,gFAAyB;;AAErD,WAAW,sEAAsE;AACjF;;AAEA,WAAW,aAAa;AACxB;AACA;;AAEA,4BAA4B,gDAAgD;AAC5E;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;;;;;;;;;;;;AClBa;;AAEb,aAAa,sFAA6B;AAC1C,gBAAgB,0FAA2B;AAC3C,oBAAoB,gHAAuC;AAC3D,eAAe,mBAAO,CAAC,6DAAU;;AAEjC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACtKA;AACA,WAAW,mBAAO,CAAC,yCAAM;AACzB,aAAa,mBAAO,CAAC,qDAAQ;AAC7B,iBAAiB;;AAEjB;AACA;AACA;;AAEA,WAAW,qBAAM,oBAAoB,qBAAM;AAC3C,cAAc,qBAAM;AACpB,EAAE;AACF;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,sBAAsB;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB,sGAAoD;;AAEpD;AACA;AACA;;;;;;;;;;;;AC1Ga;AACb;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,GAAG,oBAAoB,GAAG,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAO,CAAC,mDAAQ;AAC/B,iBAAiB,mBAAO,CAAC,uDAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,eAAe,gBAAgB,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,uFAAuF,QAAQ;AAC/F;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA,uFAAuF,QAAQ;AAC/F;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrVa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,wBAAwB,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,uBAAuB;AACjH;AACA,cAAc,mBAAO,CAAC,wFAA8B;AACpD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACpVa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,gCAAgC,GAAG,+BAA+B,GAAG,uCAAuC,GAAG,sCAAsC,GAAG,oCAAoC,GAAG,mCAAmC,GAAG,oCAAoC,GAAG,mCAAmC,GAAG,4BAA4B,GAAG,2BAA2B,GAAG,wCAAwC,GAAG,uCAAuC,GAAG,mCAAmC,GAAG,kCAAkC,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,4BAA4B,GAAG,2BAA2B,GAAG,6BAA6B,GAAG,4BAA4B,GAAG,uBAAuB;AACvvB;AACA,qBAAqB,mBAAO,CAAC,gHAAqC;AAClE,cAAc,mBAAO,CAAC,wFAA8B;AACpD,eAAe,mBAAO,CAAC,uEAAQ;AAC/B,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;AC5gCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB,GAAG,0BAA0B,GAAG,aAAa,GAAG,4BAA4B,GAAG,uBAAuB;AAC5H;AACA,cAAc,mBAAO,CAAC,wFAA8B;AACpD,oBAAoB,mBAAO,CAAC,oGAAoC;AAChE,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AChQa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,kCAAkC,GAAG,iCAAiC,GAAG,kCAAkC,GAAG,iCAAiC,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,uBAAuB;AAC9P;AACA,qBAAqB,mBAAO,CAAC,gHAAqC;AAClE,gBAAgB,mBAAO,CAAC,0EAAS;AACjC,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACpba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,yBAAyB,GAAG,iBAAiB,GAAG,wBAAwB,GAAG,eAAe,GAAG,uBAAuB,GAAG,gBAAgB,GAAG,uBAAuB;AACzL;AACA,gBAAgB,mBAAO,CAAC,0EAAS;AACjC,cAAc,mBAAO,CAAC,wFAA8B;AACpD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;ACtWa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,GAAG,iBAAiB,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,mBAAmB,GAAG,cAAc,GAAG,uBAAuB;AACvJ;AACA,eAAe,mBAAO,CAAC,wFAAyB;AAChD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC9fa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,gCAAgC,GAAG,+BAA+B,GAAG,gCAAgC,GAAG,kBAAkB,GAAG,+BAA+B,GAAG,kCAAkC,GAAG,iCAAiC,GAAG,mCAAmC,GAAG,kCAAkC,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,6BAA6B,GAAG,4BAA4B,GAAG,gCAAgC,GAAG,+BAA+B,GAAG,4CAA4C,GAAG,2CAA2C,GAAG,sCAAsC,GAAG,qCAAqC,GAAG,gCAAgC,GAAG,+BAA+B,GAAG,4BAA4B,GAAG,2BAA2B,GAAG,uBAAuB;AACn1B;AACA,qBAAqB,mBAAO,CAAC,gHAAqC;AAClE,eAAe,mBAAO,CAAC,wFAAyB;AAChD,eAAe,mBAAO,CAAC,uEAAQ;AAC/B,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACz2Ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,iCAAiC,GAAG,yBAAyB,GAAG,+BAA+B,GAAG,uBAAuB,GAAG,4BAA4B,GAAG,oBAAoB,GAAG,uBAAuB,GAAG,eAAe,GAAG,uBAAuB;AAC7Q;AACA,eAAe,mBAAO,CAAC,wFAAyB;AAChD,eAAe,mBAAO,CAAC,uEAAQ;AAC/B,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AC5ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,iBAAiB,GAAG,eAAe,GAAG,0BAA0B,GAAG,cAAc,GAAG,eAAe,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,sBAAsB,GAAG,kBAAkB,GAAG,uBAAuB;AAC/O;AACA,cAAc,mBAAO,CAAC,2FAAiC;AACvD,gBAAgB,mBAAO,CAAC,+FAAmC;AAC3D,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC71Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,GAAG,mBAAmB,GAAG,uBAAuB;AACpE;AACA,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACpKa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,GAAG,gBAAgB,GAAG,eAAe,GAAG,YAAY,GAAG,uBAAuB;AAC9F;AACA,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACzNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,cAAc,GAAG,uBAAuB;AAC1D;AACA,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACvGa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB,GAAG,uBAAuB;AACnD;AACA,cAAc,mBAAO,CAAC,wFAA8B;AACpD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACvEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,sBAAsB,GAAG,uBAAuB;AAC1E;AACA,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACtHa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,cAAc,GAAG,uBAAuB;AAC1D;AACA,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACvGa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,6CAA6C,GAAG,iCAAiC,GAAG,6BAA6B,GAAG,kCAAkC,GAAG,eAAe,GAAG,4BAA4B,GAAG,2BAA2B,GAAG,mCAAmC,GAAG,sCAAsC,GAAG,+BAA+B,GAAG,kCAAkC,GAAG,cAAc,GAAG,uBAAuB;AACta;AACA,eAAe,mBAAO,CAAC,wFAAyB;AAChD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC/xBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,kCAAkC,GAAG,iCAAiC,GAAG,6CAA6C,GAAG,4CAA4C,GAAG,wCAAwC,GAAG,uCAAuC,GAAG,2CAA2C,GAAG,0CAA0C,GAAG,sCAAsC,GAAG,qCAAqC,GAAG,qCAAqC,GAAG,oCAAoC,GAAG,wCAAwC,GAAG,uCAAuC,GAAG,gDAAgD,GAAG,+CAA+C,GAAG,8CAA8C,GAAG,6CAA6C,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,uBAAuB;AAC/3B;AACA,qBAAqB,mBAAO,CAAC,gHAAqC;AAClE,uBAAuB,mBAAO,CAAC,+FAAgB;AAC/C,eAAe,mBAAO,CAAC,wFAAyB;AAChD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,0EAA0E;AAC1E;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gFAAgF;AAChF;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACrnCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,qCAAqC,GAAG,6BAA6B,GAAG,+BAA+B,GAAG,uBAAuB,GAAG,oCAAoC,GAAG,4BAA4B,GAAG,8CAA8C,GAAG,sCAAsC,GAAG,0CAA0C,GAAG,kCAAkC,GAAG,qCAAqC,GAAG,6BAA6B,GAAG,uBAAuB;AAC7e;AACA,eAAe,mBAAO,CAAC,wFAAyB;AAChD,uBAAuB,mBAAO,CAAC,+FAAgB;AAC/C,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AC/oBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa,GAAG,2BAA2B,GAAG,yBAAyB,GAAG,sBAAsB,GAAG,uBAAuB;AAC1H;AACA,eAAe,mBAAO,CAAC,wFAAyB;AAChD,oBAAoB,mBAAO,CAAC,oGAAoC;AAChE,mBAAmB,mBAAO,CAAC,kGAAmC;AAC9D,cAAc,mBAAO,CAAC,wFAA8B;AACpD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oDAAoD;AACpD,kDAAkD;AAClD;AACA;AACA,yDAAyD;AACzD;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACnUa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,wCAAwC,GAAG,uCAAuC,GAAG,+BAA+B,GAAG,8BAA8B,GAAG,8BAA8B,GAAG,6BAA6B,GAAG,uBAAuB;AAC1Q;AACA,qBAAqB,mBAAO,CAAC,gHAAqC;AAClE,mBAAmB,mBAAO,CAAC,mFAAY;AACvC,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;AC3Ya;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,kCAAkC,GAAG,0BAA0B,GAAG,iCAAiC,GAAG,yBAAyB,GAAG,uBAAuB;AACjL;AACA,cAAc,mBAAO,CAAC,wFAA8B;AACpD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AClOa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,mBAAmB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,YAAY,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,eAAe,GAAG,0BAA0B,GAAG,4BAA4B,GAAG,8BAA8B,GAAG,sBAAsB,GAAG,wBAAwB,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,uBAAuB;AAC1X;AACA,eAAe,mBAAO,CAAC,wFAAyB;AAChD,cAAc,mBAAO,CAAC,wFAA8B;AACpD,oBAAoB,mBAAO,CAAC,oGAAoC;AAChE,mBAAmB,mBAAO,CAAC,kGAAmC;AAC9D,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,iBAAiB,kBAAkB,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,qBAAqB,sBAAsB,sBAAsB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC3+Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,+BAA+B,GAAG,uBAAuB,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,+BAA+B,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,eAAe,GAAG,oCAAoC,GAAG,4BAA4B,GAAG,iCAAiC,GAAG,yBAAyB,GAAG,uBAAuB;AAC3Y;AACA,cAAc,mBAAO,CAAC,wFAA8B;AACpD,eAAe,mBAAO,CAAC,wFAAyB;AAChD,cAAc,mBAAO,CAAC,+DAAO;AAC7B,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AClvBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,YAAY,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,eAAe,GAAG,oBAAoB,GAAG,0BAA0B,GAAG,4BAA4B,GAAG,8BAA8B,GAAG,sBAAsB,GAAG,wBAAwB,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,uBAAuB;AAChY;AACA,eAAe,mBAAO,CAAC,wFAAyB;AAChD,cAAc,mBAAO,CAAC,wFAA8B;AACpD,oBAAoB,mBAAO,CAAC,oGAAoC;AAChE,mBAAmB,mBAAO,CAAC,kGAAmC;AAC9D,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,iBAAiB,kBAAkB,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,qBAAqB,sBAAsB,sBAAsB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,wDAAwD;AACxD,4DAA4D;AAC5D;AACA,6DAA6D;AAC7D,2DAA2D;AAC3D;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACz1Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,gCAAgC,GAAG,+BAA+B,GAAG,6BAA6B,GAAG,4BAA4B,GAAG,4BAA4B,GAAG,2BAA2B,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,0BAA0B,GAAG,yBAAyB,GAAG,yBAAyB,GAAG,wBAAwB,GAAG,8BAA8B,GAAG,6BAA6B,GAAG,6BAA6B,GAAG,4BAA4B,GAAG,uBAAuB;AAC7hB;AACA,cAAc,mBAAO,CAAC,oEAAO;AAC7B,qBAAqB,mBAAO,CAAC,gHAAqC;AAClE,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uDAAuD;AACvD,yDAAyD;AACzD,qDAAqD;AACrD;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACr/Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,+BAA+B,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,eAAe,GAAG,iCAAiC,GAAG,yBAAyB,GAAG,uBAAuB;AACzQ;AACA,cAAc,mBAAO,CAAC,wFAA8B;AACpD,eAAe,mBAAO,CAAC,wFAAyB;AAChD,cAAc,mBAAO,CAAC,oEAAO;AAC7B,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AC9ea;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,6BAA6B,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,eAAe,GAAG,uBAAuB,GAAG,eAAe,GAAG,mCAAmC,GAAG,2BAA2B,GAAG,iCAAiC,GAAG,yBAAyB,GAAG,4CAA4C,GAAG,oCAAoC,GAAG,kDAAkD,GAAG,0CAA0C,GAAG,wCAAwC,GAAG,gCAAgC,GAAG,yCAAyC,GAAG,iCAAiC,GAAG,oCAAoC,GAAG,4BAA4B,GAAG,sCAAsC,GAAG,8BAA8B,GAAG,mCAAmC,GAAG,2BAA2B,GAAG,qCAAqC,GAAG,6BAA6B,GAAG,8BAA8B,GAAG,sBAAsB,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,YAAY,GAAG,uBAAuB;AAC1iC;AACA,gBAAgB,mBAAO,CAAC,qEAAS;AACjC,cAAc,mBAAO,CAAC,wFAA8B;AACpD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,WAAW,YAAY,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AC3wDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,6BAA6B,GAAG,gCAAgC,GAAG,+BAA+B,GAAG,qBAAqB,GAAG,cAAc,GAAG,oCAAoC,GAAG,sCAAsC,GAAG,8BAA8B,GAAG,4BAA4B,GAAG,8BAA8B,GAAG,sBAAsB,GAAG,wBAAwB,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,uBAAuB;AACxjB;AACA,oBAAoB,mBAAO,CAAC,oGAAoC;AAChE,mBAAmB,mBAAO,CAAC,kGAAmC;AAC9D,cAAc,mBAAO,CAAC,wFAA8B;AACpD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,iBAAiB,kBAAkB,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,qBAAqB,sBAAsB,sBAAsB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,6BAA6B,8BAA8B,8BAA8B;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,wDAAwD;AACxD,8DAA8D;AAC9D;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA,4DAA4D;AAC5D,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACpsCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mCAAmC,GAAG,gCAAgC,GAAG,4BAA4B,GAAG,4BAA4B,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,eAAe,GAAG,cAAc,GAAG,uBAAuB,GAAG,yBAAyB,GAAG,sBAAsB,GAAG,sBAAsB,GAAG,wBAAwB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,sBAAsB,GAAG,cAAc,GAAG,uBAAuB;AAC1e;AACA,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,aAAa,cAAc,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,eAAe,gBAAgB,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACvrCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc,GAAG,uBAAuB;AACzD;AACA,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC1Ka;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,qCAAqC,GAAG,oCAAoC,GAAG,8BAA8B,GAAG,6BAA6B,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,uBAAuB;AAC5P;AACA,eAAe,mBAAO,CAAC,uEAAQ;AAC/B,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;AC1Ra;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,iCAAiC,GAAG,gCAAgC,GAAG,gCAAgC,GAAG,+BAA+B,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,uBAAuB;AACxP;AACA,qBAAqB,mBAAO,CAAC,gHAAqC;AAClE,mBAAmB,mBAAO,CAAC,mFAAY;AACvC,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;AC9Ua;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,4BAA4B,GAAG,uBAAuB;AACvE;AACA,oBAAoB,mBAAO,CAAC,oGAAoC;AAChE,mBAAmB,mBAAO,CAAC,kGAAmC;AAC9D,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC9Na;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,yBAAyB,GAAG,wBAAwB,GAAG,mCAAmC,GAAG,kCAAkC,GAAG,uCAAuC,GAAG,sCAAsC,GAAG,wCAAwC,GAAG,uCAAuC,GAAG,kCAAkC,GAAG,iCAAiC,GAAG,kDAAkD,GAAG,iDAAiD,GAAG,yCAAyC,GAAG,wCAAwC,GAAG,wCAAwC,GAAG,uCAAuC,GAAG,+BAA+B,GAAG,8BAA8B,GAAG,kDAAkD,GAAG,iDAAiD,GAAG,yCAAyC,GAAG,wCAAwC,GAAG,8BAA8B,GAAG,6BAA6B,GAAG,+BAA+B,GAAG,8BAA8B,GAAG,uBAAuB;AAC3nC;AACA,qBAAqB,mBAAO,CAAC,gHAAqC;AAClE,kBAAkB,mBAAO,CAAC,gFAAW;AACrC,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACxqDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,wBAAwB,GAAG,YAAY,GAAG,4BAA4B,GAAG,iCAAiC,GAAG,0BAA0B,GAAG,cAAc,GAAG,oBAAoB,GAAG,yBAAyB,GAAG,gCAAgC,GAAG,2BAA2B,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,eAAe,GAAG,cAAc,GAAG,oBAAoB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,uBAAuB,GAAG,sBAAsB,GAAG,wBAAwB,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,wBAAwB,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,uBAAuB;AAC5qB;AACA,gBAAgB,mBAAO,CAAC,8FAAiC;AACzD,oBAAoB,mBAAO,CAAC,oGAAoC;AAChE,cAAc,mBAAO,CAAC,wFAA8B;AACpD,mBAAmB,mBAAO,CAAC,kGAAmC;AAC9D,eAAe,mBAAO,CAAC,wFAAyB;AAChD,gBAAgB,mBAAO,CAAC,4FAAgC;AACxD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,iBAAiB,kBAAkB,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,iBAAiB,kBAAkB,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+DAA+D;AAC/D,wDAAwD;AACxD;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA,2DAA2D;AAC3D,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,qDAAqD;AACrD,2CAA2C;AAC3C;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC1tDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,+BAA+B,GAAG,uBAAuB,GAAG,4CAA4C,GAAG,oCAAoC,GAAG,6BAA6B,GAAG,qBAAqB,GAAG,kCAAkC,GAAG,0BAA0B,GAAG,2BAA2B,GAAG,mBAAmB,GAAG,gCAAgC,GAAG,wBAAwB,GAAG,kCAAkC,GAAG,0BAA0B,GAAG,uBAAuB;AAC/e;AACA,kBAAkB,mBAAO,CAAC,gFAAW;AACrC,cAAc,mBAAO,CAAC,wFAA8B;AACpD,eAAe,mBAAO,CAAC,wFAAyB;AAChD,oBAAoB,mBAAO,CAAC,oGAAoC;AAChE,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA,yDAAyD;AACzD,4DAA4D;AAC5D;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AC74Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sCAAsC,GAAG,uCAAuC,GAAG,gCAAgC,GAAG,2BAA2B,GAAG,4BAA4B,GAAG,sBAAsB,GAAG,wBAAwB,GAAG,gBAAgB,GAAG,uBAAuB;AACjR;AACA,mBAAmB,mBAAO,CAAC,yHAA2C;AACtE,cAAc,mBAAO,CAAC,2FAAiC;AACvD,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,eAAe,gBAAgB,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC/aa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB,GAAG,6BAA6B,GAAG,4BAA4B,GAAG,6BAA6B,GAAG,4BAA4B,GAAG,wBAAwB,GAAG,uBAAuB,GAAG,wBAAwB,GAAG,uBAAuB,GAAG,+BAA+B,GAAG,8BAA8B,GAAG,qBAAqB,GAAG,oBAAoB,GAAG,wBAAwB,GAAG,uBAAuB,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,2BAA2B,GAAG,6BAA6B,GAAG,qBAAqB,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,eAAe,GAAG,uBAAuB;AACltB;AACA,aAAa,mBAAO,CAAC,iEAAM;AAC3B,qBAAqB,mBAAO,CAAC,gHAAqC;AAClE,eAAe,mBAAO,CAAC,kGAA8B;AACrD,gBAAgB,mBAAO,CAAC,8FAAiC;AACzD,gBAAgB,mBAAO,CAAC,8FAAiC;AACzD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,cAAc,eAAe,eAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oBAAoB,qBAAqB,qBAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;;;;;;;;;;;ACvuCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,WAAW,GAAG,WAAW,GAAG,sBAAsB,GAAG,uBAAuB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,cAAc,GAAG,wBAAwB,GAAG,eAAe,GAAG,aAAa,GAAG,UAAU,GAAG,uBAAuB;AACpR;AACA,cAAc,mBAAO,CAAC,wFAA8B;AACpD,kBAAkB,mBAAO,CAAC,oGAA4B;AACtD,mBAAmB,mBAAO,CAAC,sHAAwC;AACnE,eAAe,mBAAO,CAAC,wFAAyB;AAChD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AChhCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,qCAAqC,GAAG,+BAA+B,GAAG,YAAY,GAAG,uBAAuB;AACxI;AACA,oBAAoB,mBAAO,CAAC,oGAAoC;AAChE,cAAc,mBAAO,CAAC,wFAA8B;AACpD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC1Sa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,+CAA+C,GAAG,uCAAuC,GAAG,+CAA+C,GAAG,uCAAuC,GAAG,uCAAuC,GAAG,+BAA+B,GAAG,uBAAuB;AACnT;AACA,eAAe,mBAAO,CAAC,wFAAyB;AAChD,kBAAkB,mBAAO,CAAC,gFAAW;AACrC,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AC7Ya;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,8BAA8B,GAAG,8BAA8B,GAAG,cAAc,GAAG,6BAA6B,GAAG,gCAAgC,GAAG,0BAA0B,GAAG,uBAAuB;AAC1M;AACA,eAAe,mBAAO,CAAC,wFAAyB;AAChD,eAAe,mBAAO,CAAC,wFAAyB;AAChD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACnba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,WAAW,GAAG,uBAAuB;AACrC;AACA,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AClEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,GAAG,uBAAuB;AAC1C;AACA,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACnEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,uBAAuB;AAC3C;AACA,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;ACnEa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,2BAA2B,GAAG,gBAAgB,GAAG,aAAa,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,uBAAuB,GAAG,uBAAuB;AAC9P;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAM;AACrB,eAAe,qBAAM;AACrB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,aAAa;AACzD;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,MAAM;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;;;;;;;;;;ACpIa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,kCAAkC,GAAG,iCAAiC,GAAG,8BAA8B,GAAG,6BAA6B,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,gCAAgC,GAAG,+BAA+B,GAAG,+BAA+B,GAAG,8BAA8B,GAAG,uBAAuB;AAC9X;AACA,qBAAqB,mBAAO,CAAC,6HAAkD;AAC/E,mBAAmB,mBAAO,CAAC,wFAAY;AACvC,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;AC/hBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,kBAAkB,GAAG,uBAAuB;AAC7D;AACA,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC3Ha;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,2BAA2B,GAAG,mBAAmB,GAAG,uBAAuB;AACnG;AACA,eAAe,mBAAO,CAAC,qGAAsC;AAC7D,iBAAiB,mBAAO,CAAC,gGAAgC;AACzD,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AC1Ma;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,gBAAgB,GAAG,mBAAmB,GAAG,cAAc,GAAG,oBAAoB,GAAG,yBAAyB,GAAG,eAAe,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,aAAa,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,aAAa,GAAG,uBAAuB;AAC5S;AACA,iBAAiB,mBAAO,CAAC,wFAAwB;AACjD,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,YAAY,aAAa,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,YAAY,aAAa,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACxuBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,wCAAwC,GAAG,uCAAuC,GAAG,mCAAmC,GAAG,kCAAkC,GAAG,sCAAsC,GAAG,qCAAqC,GAAG,2CAA2C,GAAG,0CAA0C,GAAG,0CAA0C,GAAG,yCAAyC,GAAG,kCAAkC,GAAG,iCAAiC,GAAG,sCAAsC,GAAG,qCAAqC,GAAG,qCAAqC,GAAG,oCAAoC,GAAG,0CAA0C,GAAG,yCAAyC,GAAG,uCAAuC,GAAG,sCAAsC,GAAG,uCAAuC,GAAG,sCAAsC,GAAG,6BAA6B,GAAG,4BAA4B,GAAG,4BAA4B,GAAG,2BAA2B,GAAG,uBAAuB;AAC1jC;AACA,qBAAqB,mBAAO,CAAC,6HAAkD;AAC/E,kBAAkB,mBAAO,CAAC,6EAAW;AACrC,iBAAiB,mBAAO,CAAC,wFAAwB;AACjD,cAAc,mBAAO,CAAC,2FAAiC;AACvD,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACz+Da;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,kCAAkC,GAAG,0BAA0B,GAAG,iCAAiC,GAAG,yBAAyB,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,6BAA6B,GAAG,qBAAqB,GAAG,sCAAsC,GAAG,8BAA8B,GAAG,mCAAmC,GAAG,2BAA2B,GAAG,qCAAqC,GAAG,6BAA6B,GAAG,iCAAiC,GAAG,yBAAyB,GAAG,iCAAiC,GAAG,yBAAyB,GAAG,kCAAkC,GAAG,0BAA0B,GAAG,gCAAgC,GAAG,kCAAkC,GAAG,0BAA0B,GAAG,uBAAuB;AACxxB;AACA,kBAAkB,mBAAO,CAAC,6EAAW;AACrC,iBAAiB,mBAAO,CAAC,wFAAwB;AACjD,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,yBAAyB,0BAA0B,0BAA0B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,mDAAmD;AACnD;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AC5+Ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc,GAAG,uBAAuB,GAAG,4BAA4B,GAAG,6BAA6B,GAAG,gCAAgC,GAAG,6BAA6B,GAAG,uBAAuB;AACrN;AACA,cAAc,mBAAO,CAAC,2FAAiC;AACvD,kBAAkB,mBAAO,CAAC,iHAA4C;AACtE,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AChea;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,2CAA2C,GAAG,0CAA0C,GAAG,wCAAwC,GAAG,uCAAuC,GAAG,iCAAiC,GAAG,gCAAgC,GAAG,iCAAiC,GAAG,gCAAgC,GAAG,0CAA0C,GAAG,yCAAyC,GAAG,oCAAoC,GAAG,mCAAmC,GAAG,mCAAmC,GAAG,kCAAkC,GAAG,iCAAiC,GAAG,gCAAgC,GAAG,gCAAgC,GAAG,+BAA+B,GAAG,uBAAuB;AAC5uB;AACA,qBAAqB,mBAAO,CAAC,6HAAkD;AAC/E,cAAc,mBAAO,CAAC,2FAAiC;AACvD,iBAAiB,mBAAO,CAAC,0EAAU;AACnC,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACxjCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,qCAAqC,GAAG,6BAA6B,GAAG,gCAAgC,GAAG,wBAAwB,GAAG,+BAA+B,GAAG,uBAAuB,GAAG,+BAA+B,GAAG,uBAAuB,GAAG,uBAAuB;AAC7S;AACA,cAAc,mBAAO,CAAC,2FAAiC;AACvD,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AC7fa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,uBAAuB;AAC9G;AACA,iBAAiB,mBAAO,CAAC,iGAAoC;AAC7D,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AChNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,eAAe,GAAG,uBAAuB,GAAG,mBAAmB,GAAG,oBAAoB,GAAG,4BAA4B,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,aAAa,GAAG,uBAAuB;AACtP;AACA,qBAAqB,mBAAO,CAAC,wGAAgC;AAC7D,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,YAAY,aAAa,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACjkBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,qCAAqC,GAAG,oCAAoC,GAAG,6CAA6C,GAAG,4CAA4C,GAAG,0CAA0C,GAAG,yCAAyC,GAAG,sCAAsC,GAAG,qCAAqC,GAAG,gCAAgC,GAAG,+BAA+B,GAAG,+BAA+B,GAAG,8BAA8B,GAAG,uBAAuB;AACjhB;AACA,qBAAqB,mBAAO,CAAC,6HAAkD;AAC/E,qBAAqB,mBAAO,CAAC,sFAAc;AAC3C,iBAAiB,mBAAO,CAAC,wFAAwB;AACjD,cAAc,mBAAO,CAAC,2FAAiC;AACvD,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACnyBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,wCAAwC,GAAG,gCAAgC,GAAG,oCAAoC,GAAG,4BAA4B,GAAG,oCAAoC,GAAG,4BAA4B,GAAG,qCAAqC,GAAG,6BAA6B,GAAG,uBAAuB;AACjV;AACA,qBAAqB,mBAAO,CAAC,sFAAc;AAC3C,cAAc,mBAAO,CAAC,2FAAiC;AACvD,iBAAiB,mBAAO,CAAC,wFAAwB;AACjD,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;ACnuBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,GAAG,cAAc,GAAG,oBAAoB,GAAG,sBAAsB,GAAG,mBAAmB,GAAG,uBAAuB;AACjI;AACA,mBAAmB,mBAAO,CAAC,qGAAsC;AACjE,iBAAiB,mBAAO,CAAC,gGAAgC;AACzD,iBAAiB,mBAAO,CAAC,iGAAoC;AAC7D,oBAAoB,mBAAO,CAAC,uGAAuC;AACnE,qBAAqB,mBAAO,CAAC,gHAAwC;AACrE,gBAAgB,mBAAO,CAAC,iGAAoC;AAC5D,oBAAoB,mBAAO,CAAC,yGAAwC;AACpE,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA,mDAAmD;AACnD,0DAA0D;AAC1D,2DAA2D;AAC3D,yDAAyD;AACzD,oDAAoD;AACpD,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uDAAuD;AACvD,oDAAoD;AACpD;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC1fa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,+BAA+B,GAAG,kCAAkC,GAAG,iCAAiC,GAAG,6BAA6B,GAAG,6BAA6B,GAAG,sBAAsB,GAAG,wBAAwB,GAAG,yBAAyB,GAAG,uBAAuB,GAAG,0BAA0B,GAAG,qBAAqB,GAAG,yBAAyB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,oBAAoB,GAAG,yBAAyB,GAAG,gBAAgB,GAAG,8BAA8B,GAAG,8BAA8B,GAAG,iCAAiC,GAAG,gCAAgC,GAAG,4BAA4B,GAAG,4BAA4B,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,wBAAwB,GAAG,sBAAsB,GAAG,yBAAyB,GAAG,oBAAoB,GAAG,wBAAwB,GAAG,mBAAmB,GAAG,oBAAoB,GAAG,mBAAmB,GAAG,eAAe,GAAG,6BAA6B,GAAG,+BAA+B,GAAG,uBAAuB,GAAG,oDAAoD,GAAG,sDAAsD,GAAG,8CAA8C,GAAG,+CAA+C,GAAG,iDAAiD,GAAG,yCAAyC,GAAG,0CAA0C,GAAG,4CAA4C,GAAG,oCAAoC,GAAG,yBAAyB,GAAG,2BAA2B,GAAG,mBAAmB,GAAG,uBAAuB;AACpiD,iCAAiC,GAAG,gBAAgB,GAAG,mBAAmB,GAAG,wBAAwB,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,aAAa,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,+BAA+B;AACtT;AACA,oBAAoB,mBAAO,CAAC,iGAAiC;AAC7D,iBAAiB,mBAAO,CAAC,+EAAiB;AAC1C,gBAAgB,mBAAO,CAAC,6EAAgB;AACxC,gBAAgB,mBAAO,CAAC,+EAAiB;AACzC,eAAe,mBAAO,CAAC,6EAAgB;AACvC,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,CAAC,kBAAkB,mBAAmB,mBAAmB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,mCAAmC,oCAAoC,oCAAoC;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC,yCAAyC,yCAAyC;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,6CAA6C,8CAA8C,8CAA8C;AAC1I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sBAAsB,uBAAuB,uBAAuB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,yDAAyD;AACzD;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA,kDAAkD;AAClD;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;;;;;;;;;;;AC1kIa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,uBAAuB;AAC3C;AACA,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACnEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,GAAG,eAAe,GAAG,gBAAgB,GAAG,eAAe,GAAG,aAAa,GAAG,uBAAuB;AACjH;AACA,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC9Va;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa,GAAG,uBAAuB;AACvC;AACA,gBAAgB,mBAAO,CAAC,sEAAS;AACjC,mBAAmB,mBAAO,CAAC,4EAAY;AACvC,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA,6CAA6C;AAC7C,yCAAyC;AACzC,wDAAwD;AACxD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACnGa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,GAAG,iCAAiC,GAAG,6BAA6B,GAAG,gBAAgB,GAAG,uBAAuB;AACrI;AACA,gBAAgB,mBAAO,CAAC,sEAAS;AACjC,oBAAoB,mBAAO,CAAC,iGAAiC;AAC7D,oBAAoB,mBAAO,CAAC,8EAAa;AACzC,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACrVa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,sBAAsB,GAAG,mBAAmB,GAAG,uBAAuB,GAAG,uBAAuB;AACzK;AACA,mBAAmB,mBAAO,CAAC,+FAAgC;AAC3D,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACnZa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,cAAc,GAAG,YAAY,GAAG,YAAY,GAAG,cAAc,GAAG,eAAe,GAAG,YAAY,GAAG,qBAAqB,GAAG,2BAA2B,GAAG,6BAA6B,GAAG,qBAAqB,GAAG,yBAAyB,GAAG,2BAA2B,GAAG,mBAAmB,GAAG,uBAAuB;AAC/a;AACA,gBAAgB,mBAAO,CAAC,+EAAiB;AACzC,gBAAgB,mBAAO,CAAC,iFAAkB;AAC1C,oBAAoB,mBAAO,CAAC,iGAAiC;AAC7D,oBAAoB,mBAAO,CAAC,8EAAa;AACzC,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kBAAkB,mBAAmB,mBAAmB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oBAAoB,qBAAqB,qBAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA,kDAAkD;AAClD,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,uDAAuD;AACvD;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC3vCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,iBAAiB,GAAG,oBAAoB,GAAG,uBAAuB;AAC5F;AACA,eAAe,mBAAO,CAAC,6EAAgB;AACvC,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AChPa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,WAAW,GAAG,uBAAuB;AACzD;AACA,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,qBAAqB;AACrB;AACA;AACA;AACa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,gBAAgB,GAAG,kBAAkB;AACzD;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,QAAQ;AACR,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;;;;;;;;;;ACzIa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,oBAAoB,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,sBAAsB,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,qBAAqB,GAAG,oBAAoB;AACtW;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,iBAAiB;AACjB;;;;;;;;;;;ACvaA,eAAe,mBAAO,CAAC,yDAAU;AACjC,SAAS,mBAAO,CAAC,sEAAO;;AAExB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO,MAAM;AACb,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO,MAAM;AACb,cAAc,MAAM;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO,MAAM;AACb,eAAe,MAAM;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA,oBAAoB,MAAM;AAC1B;AACA,UAAU,MAAM;AAChB;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;;;;AC3HA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,eAAe,mDAAwB;AACvC;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA,0DAA0D,mBAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,SAAS;AACjC;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;;AAEA,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;AACA,MAAM;AACN,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;;AAEA,aAAa,eAAe;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,gBAAgB;AACtC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;;AAEA,sBAAsB,OAAO;AAC7B;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;;AAEA,mCAAmC;AACnC,uCAAuC;AACvC;;AAEA;AACA,sBAAsB,OAAO;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,8BAA8B,cAAc;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,QAAQ;AACxC;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,+CAA+C;AACnE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,sBAAsB,sCAAsC;AAC5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,QAAQ;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,QAAQ;AACrC;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,MAA6B;;;;;;;;;;;;ACr3GpB;AACZ,eAAe,mBAAO,CAAC,6DAAU;AACjC,UAAU,mBAAO,CAAC,8CAAQ;AAC1B,gBAAgB,mBAAO,CAAC,oDAAW;AACnC,UAAU,mBAAO,CAAC,8CAAQ;AAC1B,WAAW,mBAAO,CAAC,wDAAa;;AAEhC;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AC7BA,UAAU,mBAAO,CAAC,8CAAQ;;AAE1B;AACA;AACA;;;;;;;;;;;;ACJY;AACZ,eAAe,mBAAO,CAAC,6DAAU;AACjC,aAAa,mBAAO,CAAC,sDAAU;AAC/B,WAAW,mBAAO,CAAC,wDAAa;AAChC,aAAa,sFAA6B;AAC1C,UAAU,mBAAO,CAAC,0DAAiB;AACnC,gBAAgB,mBAAO,CAAC,oDAAW;;AAEnC,UAAU,mBAAO,CAAC,8CAAQ;;AAE1B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7DY;AACZ,eAAe,mBAAO,CAAC,6DAAU;AACjC,aAAa,sFAA6B;;AAE1C,WAAW,mBAAO,CAAC,wDAAa;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA,kBAAkB,eAAe;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA,QAAQ,qBAAM,oBAAoB,qBAAM;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;AACD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,qBAAM,oBAAoB,qBAAM;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA,uDAAuD;AACvD,UAAU;AACV;AACA,UAAU;AACV,8EAA8E;AAC9E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,qBAAqB;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,YAAY,OAAO;AACnB;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,uCAAuC,4BAA4B;AACnE;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,+BAA+B,0BAA0B,eAAe;AACxE;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC,IAAI;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf,aAAa,mCAAmC,OAAO;AACvD,eAAe;AACf,eAAe;AACf,gBAAgB;AAChB;;;;;;;;;;;;AC3qBa;;AAEb;AACA,mBAAmB,GAAG,WAAW,GAAG,yBAAyB,GAAG,8FAAqC;;AAErG;AACA,kBAAkB,GAAG,8FAAqC;;AAE1D;AACA,kBAAkB,GAAG,8FAAqC;;AAE1D,YAAY,mBAAO,CAAC,sEAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;;AAEA,QAAQ,mBAAO,CAAC,gDAAQ;AACxB,cAAc;AACd,kBAAkB;;AAElB,UAAU,mBAAO,CAAC,sEAAmB;;AAErC,cAAc;AACd,oBAAoB;AACpB,gBAAgB;AAChB,sBAAsB;AACtB,gBAAgB;AAChB,sBAAsB;AACtB,kBAAkB;AAClB,wBAAwB;AACxB,kBAAkB;AAClB,mBAA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;;;;;ACrDa;;AAEb,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA,UAAU;AACV;AACA;;AAEA,kBAAkB,QAAQ;AAC1B,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;;AAEA,kBAAkB,QAAQ;AAC1B,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,WAAW;AACX;AACA;;AAEA,kBAAkB,OAAO;AACzB,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,WAAW;AACX;AACA;;AAEA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;;AAEA;AACA;AACA;;AAEA,cAAc;AACd;AACA;;AAEA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,eAAe;AACf;AACA,kBAAkB,yBAAyB;AAC3C;AACA;AACA;AACA;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA,kBAAkB,UAAU;AAC5B;AACA;AACA;;;;;;;;;;;;AC/PA,oBAAoB,mBAAO,CAAC,+EAAqB;AACjD,aAAa,mBAAO,CAAC,wEAAmB;;AAExC,SAAS,mBAAO,CAAC,yDAAU;;AAE3B;AACA,kBAAkB,MAAM;AACxB,gBAAgB,MAAM;;AAEtB;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAM,MAAM;AACZ;AACA;;AAEA;AACA;AACA,+BAA+B,MAAM;;AAErC,OAAO,MAAM;AACb,oBAAoB,MAAM;AAC1B;;AAEA;AACA;AACA;;AAEA,OAAO,MAAM;AACb,gBAAgB,MAAM;AACtB;;AAEA;AACA;;AAEA,0BAA0B,GAAG,gCAAgC,GAAG,wBAAwB;AACxF,2BAA2B,GAAG,qBAAqB;;;;;;;;;;;;ACzCnD,SAAS,mBAAO,CAAC,yEAAO;AACxB,kBAAkB,mBAAO,CAAC,2DAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,2EAAiB;AACtC,kBAAkB,mBAAO,CAAC,0DAAa;AACvC;;AAEA;AACA;AACA,OAAO,MAAM;AACb,cAAc,MAAM;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO,MAAM;AACb,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA,UAAU,MAAM;AAChB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO,MAAM;AACb,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;;;ACnKA,kBAAkB,mBAAO,CAAC,0DAAa;AACvC;AACA;AACA;AACA,SAAS,mBAAO,CAAC,yEAAO;AACxB;AACA,kBAAkB,mBAAO,CAAC,2DAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,WAAW;AACpC;AACA,oBAAoB,yBAAyB;AAC7C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,eAAe,mDAAwB;AACvC;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA,0DAA0D,mBAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,SAAS;AACjC;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;;AAEA,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;AACA,MAAM;AACN,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;;AAEA,aAAa,eAAe;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,gBAAgB;AACtC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;;AAEA,sBAAsB,OAAO;AAC7B;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;;AAEA,mCAAmC;AACnC,uCAAuC;AACvC;;AAEA;AACA,sBAAsB,OAAO;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,8BAA8B,cAAc;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,QAAQ;AACxC;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,+CAA+C;AACnE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,sBAAsB,sCAAsC;AAC5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,QAAQ;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,QAAQ;AACrC;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,MAA6B;;;;;;;;;;;;ACr3GnB;;AAEb,eAAe,mBAAO,CAAC,gFAAyB;AAChD,WAAW,mBAAO,CAAC,0CAAM;;AAEzB;AACA;AACA;AACA,iCAAiC,sCAAsC;AACvE,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,2EAA2E,+BAA+B;;AAE1G;AACA;;AAEA,WAAW,iBAAiB;AAC5B;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;;;;;;;;;;;;AC7Ba;;AAEb;;AAEA,mBAAmB,4FAAkC;AACrD,iBAAiB,mBAAO,CAAC,uEAAkB;AAC3C,gBAAgB,mBAAO,CAAC,gDAAS;AACjC,iBAAiB,mBAAO,CAAC,6EAAkB;AAC3C,kBAAkB,mBAAO,CAAC,yEAAmB;;AAE7C;AACA,cAAc,mBAAO,CAAC,uEAAe;AACrC,iBAAiB,mBAAO,CAAC,6EAAkB;;;;;;;;;;;;ACZ9B;;AAEb,SAAS,mBAAO,CAAC,mEAAO;AACxB,YAAY,mBAAO,CAAC,+DAAU;AAC9B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,OAAO;AACzB,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,QAAQ;AACxB;;AAEA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,WAAW;AAC7B,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;;;;;;;;;;;;AC5Xa;;AAEb,YAAY,mBAAO,CAAC,+DAAU;AAC9B,SAAS,mBAAO,CAAC,mEAAO;AACxB,eAAe,mBAAO,CAAC,6DAAU;AACjC,WAAW,mBAAO,CAAC,kEAAQ;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;AClba;;AAEb;;AAEA,aAAa,mBAAO,CAAC,kEAAQ;AAC7B,cAAc,mBAAO,CAAC,oEAAS;AAC/B,aAAa,mBAAO,CAAC,kEAAQ;AAC7B,gBAAgB,mBAAO,CAAC,wEAAW;;;;;;;;;;;;ACPtB;;AAEb,SAAS,mBAAO,CAAC,mEAAO;AACxB,eAAe,mBAAO,CAAC,6DAAU;AACjC,WAAW,mBAAO,CAAC,kEAAQ;;AAE3B,YAAY,mBAAO,CAAC,+DAAU;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB,wCAAwC;AACxC,gBAAgB;;AAEhB,sBAAsB,iBAAiB;AACvC;;AAEA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACjLa;;AAEb,YAAY,mBAAO,CAAC,+DAAU;AAC9B,SAAS,mBAAO,CAAC,mEAAO;AACxB,eAAe,mBAAO,CAAC,6DAAU;AACjC,WAAW,mBAAO,CAAC,kEAAQ;;AAE3B;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,cAAc;AACpB,MAAM,cAAc;AACpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,mBAAmB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACz6Ba;;AAEb;;AAEA,WAAW,mBAAO,CAAC,mDAAS;AAC5B,YAAY,mBAAO,CAAC,oEAAS;AAC7B,YAAY,mBAAO,CAAC,8DAAS;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,QAAQ,mBAAO,CAAC,8FAAyB;AACzC,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AC7MY;;AAEb,SAAS,mBAAO,CAAC,mEAAO;AACxB,eAAe,mBAAO,CAAC,4DAAW;AAClC,YAAY,mBAAO,CAAC,+DAAU;AAC9B,aAAa,mBAAO,CAAC,iEAAW;AAChC,WAAW,mBAAO,CAAC,gDAAS;AAC5B;;AAEA,cAAc,mBAAO,CAAC,6DAAO;AAC7B,gBAAgB,mBAAO,CAAC,yEAAa;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+CAA+C;AAC/C,oBAAoB,gBAAgB;AACpC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,0CAA0C;AACrE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACrRa;;AAEb,SAAS,mBAAO,CAAC,mEAAO;AACxB,YAAY,mBAAO,CAAC,+DAAU;AAC9B;;AAEA;AACA;AACA;AACA;;AAEA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;;AAEb,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACxHa;;AAEb,SAAS,mBAAO,CAAC,mEAAO;;AAExB,YAAY,mBAAO,CAAC,+DAAU;AAC9B;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC/Ka;;AAEb,WAAW,mBAAO,CAAC,mDAAS;AAC5B,aAAa,mBAAO,CAAC,iEAAW;AAChC,YAAY,mBAAO,CAAC,+DAAU;AAC9B;AACA;AACA,cAAc,mBAAO,CAAC,gEAAO;AAC7B,gBAAgB,mBAAO,CAAC,4EAAa;;AAErC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,UAAU,cAAc;AACxB,UAAU,sBAAsB;AAChC,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gCAAgC;AAC9D;;AAEA;AACA,UAAU,OAAO;AACjB,UAAU,wBAAwB;AAClC,UAAU,4BAA4B;AACtC,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACxHa;;AAEb,YAAY,mBAAO,CAAC,+DAAU;AAC9B;AACA;AACA;;AAEA;AACA,UAAU,OAAO;AACjB,UAAU,QAAQ;AAClB;AACA,UAAU,aAAa;AACvB,UAAU,OAAO;AACjB,UAAU,aAAa;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B,UAAU;AACxC;;AAEA;AACA;AACA;AACA,8BAA8B,gBAAgB;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9Fa;;AAEb,SAAS,mBAAO,CAAC,mEAAO;AACxB,YAAY,mBAAO,CAAC,+DAAU;AAC9B;AACA;AACA;;AAEA;AACA,UAAU,OAAO;AACjB,UAAU,qBAAqB;AAC/B,UAAU,oBAAoB;AAC9B,UAAU,iBAAiB;AAC3B,UAAU,cAAc;AACxB,UAAU,cAAc;AACxB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;AC3wBa;;AAEb;AACA,SAAS,mBAAO,CAAC,mEAAO;AACxB,gBAAgB,mBAAO,CAAC,wEAAqB;AAC7C,eAAe,mBAAO,CAAC,wFAA2B;;AAElD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;;AAEA;AACA;;AAEA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;ACxHA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,eAAe,mDAAwB;AACvC;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA,0DAA0D,mBAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,SAAS;AACjC;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;;AAEA,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;AACA,MAAM;AACN,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;;AAEA,aAAa,eAAe;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,gBAAgB;AACtC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;;AAEA,sBAAsB,OAAO;AAC7B;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;;AAEA,mCAAmC;AACnC,uCAAuC;AACvC;;AAEA;AACA,sBAAsB,OAAO;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,8BAA8B,cAAc;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,QAAQ;AACxC;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,+CAA+C;AACnE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,sBAAsB,sCAAsC;AAC5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,QAAQ;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,QAAQ;AACrC;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,MAA6B;;;;;;;;;;;;ACr3GnB;;AAEb,WAAW,aAAa;AACxB;AACA;AACA;AACA,oBAAoB,SAAS,UAAU;AACvC,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACba;;AAEb,WAAW,kBAAkB;AAC7B;;;;;;;;;;;;ACHa;;AAEb,WAAW,aAAa;AACxB;;;;;;;;;;;;ACHa;;AAEb,WAAW,mBAAmB;AAC9B;;;;;;;;;;;;ACHa;;AAEb,WAAW,iBAAiB;AAC5B;;;;;;;;;;;;ACHa;;AAEb,WAAW,oBAAoB;AAC/B;;;;;;;;;;;;ACHa;;AAEb,WAAW,kBAAkB;AAC7B;;;;;;;;;;;;ACHa;;AAEb,WAAW,iBAAiB;AAC5B;;;;;;;;;;;;ACHa;;AAEb,WAAW,aAAa;AACxB;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,MAAM,OAAO,IAAI,OAAO,OAAO,OAAO;AACtC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,sBAAsB;AACxC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe;AACf;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;;AAEA;AACA,SAAS,yBAAyB;AAClC;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,8DAA8D,YAAY;AAC1E;AACA,8DAA8D,YAAY;AAC1E;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,qCAAqC,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;;;;;;;;;;;AChfA,aAAa,sFAA6B;AAC1C,UAAU,mBAAO,CAAC,8CAAQ;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX;;AAEA;;;;;;;;;;;;AC5Ca;;AAEb,iBAAiB,mBAAO,CAAC,wDAAa;;AAEtC;AACA;;AAEA,WAAW,kKAAkK;AAC7K;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA,WAAW,4JAA4J;AACvK;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA,WAAW,yIAAyI;AACpJ;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA,WAAW,yCAAyC;AACpD;AACA;AACA;;AAEA,WAAW,uBAAuB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;;;;;;;;;;;ACpEa;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qCAAqC,oBAAoB;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA,iFAAiF,sCAAsC;;AAEvH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACnFa;;AAEb,qBAAqB,mBAAO,CAAC,wEAAkB;;AAE/C;;;;;;;;;;;;ACJa;;AAEb;;AAEA,cAAc,mBAAO,CAAC,gEAAiB;;AAEvC,aAAa,mBAAO,CAAC,oDAAW;AAChC,iBAAiB,mBAAO,CAAC,wDAAgB;AACzC,kBAAkB,mBAAO,CAAC,0DAAiB;AAC3C,sBAAsB,mBAAO,CAAC,sDAAe;AAC7C,mBAAmB,mBAAO,CAAC,4DAAkB;AAC7C,iBAAiB,mBAAO,CAAC,wDAAgB;AACzC,gBAAgB,mBAAO,CAAC,sDAAe;;AAEvC,UAAU,mBAAO,CAAC,kEAAqB;AACvC,YAAY,mBAAO,CAAC,sEAAuB;AAC3C,UAAU,mBAAO,CAAC,kEAAqB;AACvC,UAAU,mBAAO,CAAC,kEAAqB;AACvC,UAAU,mBAAO,CAAC,kEAAqB;AACvC,YAAY,mBAAO,CAAC,sEAAuB;AAC3C,WAAW,mBAAO,CAAC,oEAAsB;;AAEzC;;AAEA;AACA;AACA;AACA,kCAAkC,8CAA8C;AAChF,GAAG;AACH;;AAEA,YAAY,mBAAO,CAAC,0CAAM;AAC1B,sBAAsB,mBAAO,CAAC,sEAAoB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,IAAI;AACJ;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,EAAE;AACF;;AAEA,iBAAiB,mBAAO,CAAC,wDAAa;;AAEtC,eAAe,mBAAO,CAAC,oDAAW;AAClC,iBAAiB,mBAAO,CAAC,0FAAiC;AAC1D,kBAAkB,mBAAO,CAAC,4FAAkC;;AAE5D,aAAa,mBAAO,CAAC,sGAAuC;AAC5D,YAAY,mBAAO,CAAC,oGAAsC;;AAE1D;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qDAAqD;AACrD,GAAG;AACH,gDAAgD;AAChD,GAAG;AACH,sDAAsD;AACtD,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW,mBAAO,CAAC,4DAAe;AAClC,aAAa,mBAAO,CAAC,8CAAQ;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzXa;;AAEb,cAAc,mBAAO,CAAC,gEAAiB;;AAEvC,WAAW,mCAAmC;AAC9C;;;;;;;;;;;;ACLa;;AAEb,WAAW,oCAAoC;AAC/C;;;;;;;;;;;;ACHa;;AAEb,sBAAsB,mBAAO,CAAC,oFAA0B;AACxD,uBAAuB,mBAAO,CAAC,kFAAyB;;AAExD,qBAAqB,mBAAO,CAAC,4DAAkB;;AAE/C,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1BA;;AAEa;;AAEb;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;;;;;;;;;;;;ACVa;;AAEb,uBAAuB,mBAAO,CAAC,oEAAmB;;AAElD,qBAAqB,mBAAO,CAAC,6EAAkB;AAC/C,kBAAkB,mBAAO,CAAC,yDAAY;AACtC,WAAW,mBAAO,CAAC,iDAAQ;;AAE3B;;AAEA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;AClBa;;AAEb,qBAAqB,mBAAO,CAAC,6EAAkB;;AAE/C;AACA,YAAY,qBAAM,kBAAkB,qBAAM,IAAI,qBAAM,kBAAkB,qBAAM;AAC5E;AACA;AACA,QAAQ,qBAAM;AACd;;;;;;;;;;;;ACTa;;AAEb,aAAa,mBAAO,CAAC,oEAAmB;AACxC,WAAW,mBAAO,CAAC,0CAAM;AACzB,kBAAkB,mBAAO,CAAC,yDAAY;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;AC5Ba;;AAEb,WAAW,kBAAkB;AAC7B;;;;;;;;;;;;ACHa;;AAEb,WAAW,aAAa;AACxB,YAAY,mBAAO,CAAC,2CAAQ;;AAE5B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACda;;AAEb,sBAAsB,mBAAO,CAAC,sEAAoB;;AAElD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,UAAU;AACnD,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBa;;AAEb;AACA,oBAAoB,mBAAO,CAAC,oDAAS;;AAErC,WAAW,aAAa;AACxB;AACA,yCAAyC;AACzC,qCAAqC;AACrC,8CAA8C;AAC9C,0CAA0C;;AAE1C;AACA;;;;;;;;;;;;ACba;;AAEb,WAAW,mBAAmB;AAC9B;AACA;AACA,2FAA2F;AAC3F,4CAA4C;;AAE5C,cAAc,2BAA2B;AACzC;AACA;AACA;AACA,gCAAgC;;AAEhC,kEAAkE;AAClE,qEAAqE;;AAErE;AACA,iCAAiC;AACjC;AACA,uCAAuC;;AAEvC,2DAA2D;AAC3D,+DAA+D;;AAE/D;AACA;AACA,sBAAsB,gBAAgB;AACtC,2EAA2E;;AAE3E,yGAAyG;;AAEzG;AACA,6CAA6C;;AAE7C,8DAA8D;;AAE9D;AACA;AACA,8BAA8B,oBAAoB;AAClD,uEAAuE;AACvE;;AAEA;AACA;;;;;;;;;;;;AC5Ca;;AAEb,iBAAiB,mBAAO,CAAC,8DAAmB;;AAE5C,WAAW,aAAa;AACxB;AACA;AACA;;;;;;;;;;;;ACPY;AACZ,aAAa,sFAA6B;AAC1C,gBAAgB,0FAA2B;AAC3C,eAAe,mBAAO,CAAC,6DAAU;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;;AAEA;AACA,2CAA2C,WAAW;AACtD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,OAAO;;AAEzB;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACzIA;;AAEA,aAAa,mBAAO,CAAC,8DAAc;AACnC,cAAc,mBAAO,CAAC,gEAAe;AACrC,WAAW,mBAAO,CAAC,0DAAY;AAC/B,cAAc,mBAAO,CAAC,gEAAe;AACrC,YAAY,mBAAO,CAAC,4DAAa;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACda;;AAEb,YAAY,mBAAO,CAAC,yDAAS;AAC7B,aAAa,mBAAO,CAAC,wEAAqB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;;AAEA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,oBAAoB;AACpC;AACA;;AAEA;AACA;;;;;;;;;;;;AC3Fa;;AAEb,YAAY,mBAAO,CAAC,yDAAS;AAC7B,aAAa,mBAAO,CAAC,wEAAqB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,oBAAoB;AAC/C;;AAEA,cAAc,gBAAgB;AAC9B;AACA;;AAEA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;AC9Ca;;AAEb,YAAY,mBAAO,CAAC,yDAAS;AAC7B,aAAa,mBAAO,CAAC,2DAAU;;AAE/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACjJa;;AAEb,6FAAiC;AACjC,mGAAqC;AACrC,mGAAqC;AACrC,mGAAqC;AACrC,mGAAqC;;;;;;;;;;;;ACNxB;;AAEb,YAAY,mBAAO,CAAC,0DAAU;AAC9B,aAAa,mBAAO,CAAC,4DAAW;AAChC,gBAAgB,mBAAO,CAAC,+DAAU;;AAElC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,QAAQ;AAC1B;;AAEA,QAAQ,cAAc;AACtB;;AAEA;AACA;AACA;AACA;AACA;;AAEA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzEa;;AAEb,YAAY,mBAAO,CAAC,0DAAU;AAC9B,aAAa,mBAAO,CAAC,yDAAO;;AAE5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5Ba;;AAEb,YAAY,mBAAO,CAAC,0DAAU;AAC9B,aAAa,mBAAO,CAAC,4DAAW;AAChC,gBAAgB,mBAAO,CAAC,+DAAU;AAClC,aAAa,mBAAO,CAAC,wEAAqB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,QAAQ;AAC1B;AACA,SAAS,cAAc;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACxGa;;AAEb,YAAY,mBAAO,CAAC,0DAAU;;AAE9B,aAAa,mBAAO,CAAC,yDAAO;;AAE5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClCa;;AAEb,YAAY,mBAAO,CAAC,0DAAU;AAC9B,aAAa,mBAAO,CAAC,4DAAW;AAChC,aAAa,mBAAO,CAAC,wEAAqB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,QAAQ;AAC1B;AACA,SAAS,cAAc;AACvB,gDAAgD;AAChD;AACA,4BAA4B;AAC5B;AACA,kDAAkD;AAClD;AACA,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qCAAqC;AACrC,qCAAqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qCAAqC;AACrC,qCAAqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC;AACtC;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzUa;;AAEb,YAAY,mBAAO,CAAC,0DAAU;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,cAAc;;;;;;;;;;;;AChDD;;AAEb,aAAa,mBAAO,CAAC,wEAAqB;AAC1C,eAAe,mBAAO,CAAC,6DAAU;;AAEjC,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA,IAAI;AACJ,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA,yBAAyB,gBAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;;AAEA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA,gBAAgB;;;;;;;;;;;;ACrRH;;AAEb;AACA;AACA,WAAW,mBAAO,CAAC,4DAAe;;AAElC,WAAW,aAAa;AACxB;;;;;;;;;;;;ACPa;;AAEb,WAAW,mBAAO,CAAC,mDAAS;AAC5B,YAAY,mBAAO,CAAC,wFAA2B;AAC/C,aAAa,mBAAO,CAAC,wEAAqB;;AAE1C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;;AAEA;AACA;AACA,0CAA0C;AAC1C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChHA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS,WAAW;;AAEpB;AACA;AACA;AACA,SAAS,WAAW;;AAEpB;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA,SAAS,WAAW;;AAEpB;AACA;AACA,SAAS,UAAU;;AAEnB;AACA;;;;;;;;;;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1Ba;;AAEb,qBAAqB,mBAAO,CAAC,sEAAuB;AACpD,gBAAgB,mBAAO,CAAC,sDAAY;;AAEpC;;AAEA,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA,2DAA2D;;AAE3D,WAAW,aAAa;AACxB;;;;;;;;;;;;AC3Ca;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,6BAA6B,WAAW;AACxC,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,2CAA2C;AAC3C,2EAA2E;;AAE3E,0BAA0B;;AAE1B,0CAA0C;AAC1C;AACA;AACA;AACA;AA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AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAO,CAAC,qBAAQ;AACjC,iBAAiB,mDAAwB;AACzC;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,OAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA,QAAQ;AACR,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;A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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACjJA,SAAS,mBAAO,CAAC,uEAAO;AACxB,cAAc,mBAAO,CAAC,gDAAS;;AAE/B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kBAAkB,cAAc;AAChC;;AAEA;;AAEA;AACA,SAAS,OAAO;AAChB;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kBAAkB,cAAc;AAChC;;AAEA;;AAEA,SAAS,OAAO;AAChB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;AClHA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,eAAe,mDAAwB;AACvC;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA,0DAA0D,mBAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,SAAS;AACjC;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;;AAEA,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;AACA,MAAM;AACN,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;;AAEA,aAAa,eAAe;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,gBAAgB;AACtC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;;AAEA,sBAAsB,OAAO;AAC7B;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;;AAEA,mCAAmC;AACnC,uCAAuC;AACvC;;AAEA;AACA,sBAAsB,OAAO;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,8BAA8B,cAAc;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,QAAQ;AACxC;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,+CAA+C;AACnE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,sBAAsB,sCAAsC;AAC5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,QAAQ;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,QAAQ;AACrC;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,MAA6B;;;;;;;;;;;ACr3GhC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACVa;;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA,IAAI;AACJ,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzDa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBa;;AAEb,aAAa,mBAAO,CAAC,oEAAmB;AACxC,eAAe,mBAAO,CAAC,oDAAW;;AAElC,qBAAqB,mBAAO,CAAC,oEAAkB;AAC/C,kBAAkB,mBAAO,CAAC,wDAAY;AACtC,WAAW,mBAAO,CAAC,gDAAQ;;AAE3B;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACjBa;;AAEb,qBAAqB,mBAAO,CAAC,oEAAkB;;AAE/C;AACA;AACA;;;;;;;;;;;;ACNa;;AAEb,kBAAkB,mBAAO,CAAC,wDAAY;AACtC,aAAa,mBAAO,CAAC,oEAAmB;;AAExC;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA,EAAE;AACF;AACA;;;;;;;;;;;;ACba;;AAEb;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,gEAAe,GAAG;AACxC;AACA,2CAA2C,gBAAgB;AAC3D,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;;AAEA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzHa;;AAEb;AACA,aAAa,mBAAO,CAAC,gEAAe;;AAEpC;AACA,6CAA6C,sBAAsB,EAAE,mBAAO,CAAC,sEAAkB;;AAE/F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/Ba;;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChBa;;AAEb;AACA,iBAAiB,mBAAO,CAAC,wDAAa;AACtC,iBAAiB,mBAAO,CAAC,8DAAmB;AAC5C,gBAAgB,mBAAO,CAAC,sDAAY;AACpC,cAAc,mBAAO,CAAC,gEAAiB;AACvC;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB,2BAA2B;AAC3B;AACA,aAAa;AACb;AACA,iBAAiB,sBAAsB;AACvC,oCAAoC;;AAEpC;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,iBAAiB;AACnC;AACA,2CAA2C;AAC3C,mCAAmC;AACnC,6BAA6B;AAC7B;AACA;AACA;;AAEA,YAAY;AACZ;;;;;;;;;;;;AC7Ca;;AAEb,qBAAqB,mBAAO,CAAC,wEAAkB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oBAAoB;AACrC;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,MAAM;AAChD;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACtDA;AACA;;AAEa;;AAEb,WAAW,mBAAO,CAAC,mDAAS;;AAE5B,0GAA8C;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qBAAqB;;AAErB,gBAAgB;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA,EAAE;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,oBAAoB;;AAEpB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AC1HD;AACA;;AAEa;;AAEb,UAAU,mBAAO,CAAC,mDAAS;;AAE3B;AACA;AACA;AACA;AACA,EAAE;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,EAAE;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACxFa;;AAEb;AACA;AACA;AACA;AACA,UAAU,mBAAO,CAAC,8DAAgB;AAClC,cAAc,mBAAO,CAAC,gEAAgB;AACtC,aAAa,sFAA6B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChCa;;AAEb,WAAW,mBAAO,CAAC,iDAAQ;AAC3B,YAAY,mBAAO,CAAC,0DAAc;AAClC,cAAc,mBAAO,CAAC,uDAAW;AACjC,cAAc,mBAAO,CAAC,gEAAgB;AACtC,aAAa,mBAAO,CAAC,gDAAQ;AAC7B,aAAa,sFAA6B;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9Ga;;AAEb,6FAAuC;AACvC,uGAA0C;;;;;;;;;;;;ACH7B;;AAEb,aAAa,sFAA6B;;AAE1C,sBAAsB,mBAAO,CAAC,iEAAgB;AAC9C,sBAAsB,mBAAO,CAAC,yEAAoB;AAClD,WAAW,mBAAO,CAAC,yDAAQ;AAC3B,eAAe,mBAAO,CAAC,2DAAa;;AAEpC;AACA,aAAa,qBAAM,WAAW,qBAAM;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,qBAAM,YAAY,qBAAM;AAC7B,aAAa,qBAAM;AACnB,GAAG,SAAS,qBAAM;AAClB,aAAa,qBAAM;AACnB,GAAG,SAAS,qBAAM;AAClB,aAAa,qBAAM;AACnB,GAAG;AACH,aAAa,qBAAM;AACnB;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA,KAAK,qBAAM,aAAa,qBAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,cAAc;AAC/B,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qBAAqB,qBAAM;AAC3B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;;;;;;;;;;;;ACzHa;;AAEb;AACA;AACA,IAAI,qBAAM,YAAY,qBAAM;AAC5B;AACA,EAAE,SAAS,qBAAM,YAAY,qBAAM;AACnC,8BAA8B,OAAO;;AAErC;AACA,EAAE;AACF;AACA;AACA;;;;;;;;;;;;ACba;;AAEb;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8DAA8D;AAC9D;AACA;AACA;;;;;;;;;;;;ACrBa;;AAEb,UAAU,mBAAO,CAAC,0DAAiB;AACnC,gBAAgB,mBAAO,CAAC,oDAAW;AACnC,UAAU,mBAAO,CAAC,8CAAQ;AAC1B,aAAa,sFAA6B;;AAE1C,sBAAsB,mBAAO,CAAC,iEAAgB;AAC9C,sBAAsB,mBAAO,CAAC,yEAAoB;AAClD,eAAe,mBAAO,CAAC,2DAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,iBAAiB,eAAe;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,QAAQ;AACzB;;AAEA;AACA;;AAEA,kBAAkB,gBAAgB;AAClC;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;AClIa;;AAEb,aAAa,sFAA6B;AAC1C,eAAe,mBAAO,CAAC,oDAAW;;AAElC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnBa;;AAEb,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChBa;;AAEb,WAAW,OAAO;AAClB,KAAK,OAAO;AACZ,IAAI,OAAO;AACX,IAAI,OAAO,iCAAiC,OAAO;AACnD,qBAAqB;AACrB,EAAE;AACF,mBAAmB,OAAO;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB;AACA,KAAK;AACL;AACA,WAAW,OAAO;AAClB;AACA,KAAK;AACL;AACA,WAAW,OAAO;AAClB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA,KAAK;AACL;AACA;;;;;;;;;;;;AC3CA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC;;AAEtC;AACA;AACA;;AAEA,4BAA4B;AAC5B;AACA;AACA;AACA,6BAA6B;;;;;;;;;;;ACvL7B,oHAAkD;AAClD,uHAAoD;;AAEpD,sBAAsB;AACtB;AACA;;AAEA,qBAAqB;AACrB;AACA;;;;;;;;;;;ACTA,iBAAiB,mBAAO,CAAC,0DAAa;AACtC,aAAa,sFAA6B;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClBA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,eAAe,mDAAwB;AACvC;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA,0DAA0D,mBAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,SAAS;AACjC;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;;AAEA,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;AACA,MAAM;AACN,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;;AAEA,aAAa,eAAe;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,gBAAgB;AACtC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;;AAEA,sBAAsB,OAAO;AAC7B;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;;AAEA,mCAAmC;AACnC,uCAAuC;AACvC;;AAEA;AACA,sBAAsB,OAAO;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,8BAA8B,cAAc;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,QAAQ;AACxC;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,+CAA+C;AACnE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,sBAAsB,sCAAsC;AAC5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,QAAQ;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,QAAQ;AACrC;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,MAA6B;;;;;;;;;;;ACr3GhC,gBAAgB,mBAAO,CAAC,sDAAY;AACpC,UAAU,mBAAO,CAAC,mDAAO;AACzB,UAAU,mBAAO,CAAC,mDAAO;AACzB,SAAS,mBAAO,CAAC,yEAAO;AACxB,UAAU,mBAAO,CAAC,8DAAgB;AAClC,iBAAiB,mBAAO,CAAC,0DAAa;AACtC,iBAAiB,mBAAO,CAAC,iEAAc;AACvC,aAAa,sFAA6B;;AAE1C;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACxGA,gBAAgB,mBAAO,CAAC,sDAAY;AACpC,kBAAkB,mBAAO,CAAC,0DAAa;AACvC,iBAAiB,mBAAO,CAAC,0DAAa;AACtC,UAAU,mBAAO,CAAC,mDAAO;AACzB,UAAU,mBAAO,CAAC,mDAAO;AACzB,SAAS,mBAAO,CAAC,yEAAO;AACxB,iBAAiB,mBAAO,CAAC,iEAAc;AACvC,UAAU,mBAAO,CAAC,8DAAgB;AAClC,aAAa,sFAA6B;;AAE1C;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACvFA,SAAS,mBAAO,CAAC,yEAAO;AACxB,aAAa,sFAA6B;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACPY;;AAEZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,aAAa,sFAA6B;AAC1C,aAAa,qBAAM,WAAW,qBAAM;;AAEpC;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,mBAAmB;AACnB,4BAA4B;AAC5B;AACA,8BAA8B,kBAAkB;AAChD;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB;AACA,KAAK;AACL;;AAEA;AACA;;;;;;;;;;;;;ACjDY;;AAEZ;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,wDAAa;AACtC,kBAAkB,mBAAO,CAAC,0DAAa;AACvC;AACA;AACA,aAAa,qBAAM,WAAW,qBAAM;AACpC;AACA;AACA,yDAAyD;AACzD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,mDAAmD;AACnD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD,EAAE,kBAAkB;AACpB,EAAE,sBAAsB;AACxB,EAAE;AACF,EAAE,kBAAkB;AACpB,EAAE,sBAAsB;AACxB;AACA;AACA,gDAAgD,qBAAM;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,OAAO;AACb;AACA;AACA;AACA;AACA,MAAM,OAAO;AACb;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,qBAAM;AACtD;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;;;;;;;;;;;AC3Ga;;AAEb,gDAAgD,0DAA0D,2CAA2C;;AAErJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;;;AAGF;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;;AAEA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,oBAAoB;;;;;;;;;;;;;AC9HpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,mBAAO,CAAC,kFAAoB;AAC3C,eAAe,mBAAO,CAAC,kFAAoB;AAC3C,mBAAO,CAAC,6DAAU;AAClB;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE,OAAO;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;AC7HD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEa;;AAEb;AACA,gBAAgB,mBAAO,CAAC,oFAAqB;AAC7C,mBAAO,CAAC,6DAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS,mFAA8B;AACvC;AACA;AACA;AACA;;AAEA;AACA,aAAa,mBAAO,CAAC,wGAA2B;AAChD;;AAEA,aAAa,4EAAwB;AACrC,4BAA4B,qBAAM,mBAAmB,qBAAM,mFAAmF;AAC9I;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAO,CAAC,mBAAM;AAC9B;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA,iBAAiB,mBAAO,CAAC,0GAAgC;AACzD,kBAAkB,mBAAO,CAAC,kGAA4B;AACtD,eAAe,mBAAO,CAAC,8FAA0B;AACjD;AACA,qBAAqB,gGAA0B;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAO,CAAC,6DAAU;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yEAAyE,mFAAmF;AAC5J;AACA;AACA,qBAAqB,mBAAO,CAAC,8EAAkB;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iHAAwC;AAChF;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAO,CAAC,8EAAkB;AAC/C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,+FAA+F;AAC/F,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA,4FAA4F;AAC5F,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,iHAAwC;AAC9E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,OAAO,oBAAoB,OAAO;AAClG;AACA,wBAAwB,OAAO,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,QAAQ,OAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,kBAAkB,yBAAyB;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mBAAO,CAAC,gHAAmC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA,mDAAmD,+DAA+D;AAClH;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,oGAAyB;AAC9C;AACA;AACA;AACA;AACA;AACA,iCAAiC,OAAO;AACxC;AACA;AACA;AACA;;;;;;;;;;;AClgCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,aAAa;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA,qBAAqB,gGAA0B;AAC/C;AACA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,8EAAkB;AACvC,mBAAO,CAAC,6DAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEa;;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAa,mBAAO,CAAC,gEAAgB;AACrC;AACA;;AAEA;AACA,aAAa,mBAAO,CAAC,wGAA2B;AAChD;;AAEA,aAAa,4EAAwB;AACrC,4BAA4B,qBAAM,mBAAmB,qBAAM,mFAAmF;AAC9I;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAO,CAAC,kGAA4B;AACtD,eAAe,mBAAO,CAAC,8FAA0B;AACjD;AACA,qBAAqB,gGAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAO,CAAC,6DAAU;AAClB;AACA;AACA,qBAAqB,mBAAO,CAAC,8EAAkB;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,IAAI;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAO,CAAC,8EAAkB;;AAE/C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,OAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,sDAAsD;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO;AACX;AACA;AACA,IAAI,OAAO;AACX;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,OAAO;AACb,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,OAAO;AACb,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO,cAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChoBa;;AAEb;AACA,4CAA4C,2BAA2B,kBAAkB,kCAAkC,oEAAoE,KAAK,OAAO,oBAAoB;AAC/N,+BAA+B,uCAAuC;AACtE,qCAAqC,+DAA+D,sCAAsC,0BAA0B,+CAA+C,yCAAyC,uEAAuE;AACnU,eAAe,mBAAO,CAAC,6FAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,OAAO;AACf;AACA;AACA,YAAY;AACZ;AACA;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,CAAC;AACD;AACA;AACA,yFAAyF;AACzF;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;ACnLa;;AAEb,2CAA2C,gCAAgC,oCAAoC,oDAAoD,6DAA6D,iEAAiE,sCAAsC;AACvU,iCAAiC,gBAAgB,sBAAsB,OAAO,uDAAuD,6DAA6D,4CAA4C,oKAAoK,mFAAmF,KAAK;AAC1e,4CAA4C,2BAA2B,kBAAkB,kCAAkC,oEAAoE,KAAK,OAAO,oBAAoB;AAC/N,kDAAkD,0CAA0C;AAC5F,4CAA4C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD;AAC/P,8DAA8D,sEAAsE,8DAA8D,kDAAkD,iBAAiB,GAAG;AACxQ,+BAA+B,uCAAuC;AACtE,qCAAqC,+DAA+D,sCAAsC,0BAA0B,+CAA+C,yCAAyC,uEAAuE;AACnU,eAAe,mBAAO,CAAC,8CAAQ;AAC/B;AACA,gBAAgB,mBAAO,CAAC,mBAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA,yDAAyD,cAAc;AACvE;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;ACtLY;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,QAAQ,OAAO;AACf,QAAQ;AACR;AACA,QAAQ,OAAO;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,OAAO;AACf,QAAQ;AACR;AACA,QAAQ,OAAO;AACf,QAAQ;AACR,QAAQ,OAAO;AACf;AACA,MAAM;AACN,MAAM,OAAO;AACb;AACA,MAAM;AACN,MAAM,OAAO;AACb;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wFAAwF;AACxF;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC/FA;AACA;;AAEa;;AAEb,iCAAiC,sGAAgC;AACjE;AACA;AACA;AACA;AACA;AACA,wEAAwE,aAAa;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACrFA;AACA;AACA;;;;;;;;;;;;ACFA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sGAAgC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,+BAA+B,mBAAO,CAAC,6FAAiB;AACxD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,aAAa;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;;;;;;;;;;;ACrFa;;AAEb,4BAA4B,sGAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACrBA,kGAA+C;;;;;;;;;;;;ACAlC;;AAEb,aAAa,4EAAwB;AACrC,eAAe,mBAAO,CAAC,6DAAU;AACjC,eAAe,mBAAO,CAAC,2EAAW;;AAElC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI,OAAO;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtKa;;AAEb,aAAa,sFAA6B;AAC1C,eAAe,mBAAO,CAAC,iFAAa;AACpC,gBAAgB,mIAAoC;AACpD,eAAe,mBAAO,CAAC,6DAAU;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4CAA4C;;AAE5C;AACA;AACA;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gDAAgD,WAAW;AAC3D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5Ga;;AAEb,aAAa,sFAA6B;AAC1C,eAAe,mBAAO,CAAC,oDAAW;;AAElC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,UAAU,mBAAO,CAAC,0EAAsB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA,yBAAyB,mBAAO,CAAC,6DAAc;AAC/C,gBAAgB,mBAAO,CAAC,6DAAU;AAClC;;AAEA,eAAe,mBAAO,CAAC,yGAAoB;AAC3C,eAAe,mBAAO,CAAC,yGAAoB;;AAE3C;;AAEA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEa;;AAEb;;AAEA,gBAAgB,mBAAO,CAAC,2GAAqB;;AAE7C;AACA,yBAAyB,mBAAO,CAAC,6DAAc;AAC/C,gBAAgB,mBAAO,CAAC,6DAAU;AAClC;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,UAAU,mBAAO,CAAC,0EAAsB;AACxC;;AAEA;;AAEA;AACA,cAAc,mBAAO,CAAC,gDAAS;AAC/B;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS,mFAA8B;;AAEvC;AACA;AACA;AACA;;AAEA;AACA,aAAa,mBAAO,CAAC,+HAA2B;AAChD;;AAEA;;AAEA,aAAa,0IAA6B;AAC1C,4BAA4B,qBAAM,mBAAmB,qBAAM,mFAAmF;AAC9I;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,yBAAyB,mBAAO,CAAC,6DAAc;AAC/C,gBAAgB,mBAAO,CAAC,6DAAU;AAClC;;AAEA;AACA,gBAAgB,mBAAO,CAAC,mBAAM;AAC9B;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA,iBAAiB,mBAAO,CAAC,+HAA+B;AACxD,kBAAkB,mBAAO,CAAC,yHAA4B;AACtD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yEAAyE,6EAA6E;AACtJ;;AAEA;AACA,qBAAqB,mBAAO,CAAC,qGAAkB;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iDAAiD,0FAA0F;;AAE3I;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,wIAAwC;AAChF;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,mBAAO,CAAC,qGAAkB;;AAE/C;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,kGAAkG;AAClG,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA,4FAA4F;AAC5F,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,gDAAgD;;AAEhD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,wIAAwC;AAC9E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gEAAgE,OAAO,oBAAoB,OAAO;;AAElG;AACA,4CAA4C;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;;AAErB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B,sCAAsC,mBAAmB;AACzD,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA,4EAA4E;;AAE5E;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,kBAAkB,yBAAyB;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mDAAmD;AACnD;AACA,mDAAmD,iEAAiE;AACpH;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,uCAAuC;AACvC,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,OAAO;AACxC;AACA;AACA;AACA;;;;;;;;;;;AC1/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,aAAa;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,aAAa,mBAAO,CAAC,qGAAkB;;AAEvC;AACA,yBAAyB,mBAAO,CAAC,6DAAc;AAC/C,gBAAgB,mBAAO,CAAC,6DAAU;AAClC;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;;;;;;ACrNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEa;;AAEb;;AAEA,UAAU,mBAAO,CAAC,0EAAsB;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,OAAO,uCAAuC,OAAO;AACvE;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,yBAAyB,mBAAO,CAAC,6DAAc;AAC/C,gBAAgB,mBAAO,CAAC,6DAAU;AAClC;;AAEA;AACA;AACA,aAAa,mBAAO,CAAC,gEAAgB;AACrC;AACA;;AAEA;AACA,aAAa,mBAAO,CAAC,+HAA2B;AAChD;;AAEA;;AAEA,aAAa,0IAA6B;AAC1C,4BAA4B,qBAAM,mBAAmB,qBAAM,mFAAmF;AAC9I;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,kBAAkB,mBAAO,CAAC,yHAA4B;;AAEtD;;AAEA;;AAEA;AACA,qBAAqB,mBAAO,CAAC,qGAAkB;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAiD,0FAA0F;;AAE3I;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,IAAI;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,mBAAO,CAAC,qGAAkB;;AAE/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iCAAiC;;AAEjC;;AAEA,2CAA2C;AAC3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,oDAAoD;AACpD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5qBa;;AAEb,kDAAkD,0CAA0C;;AAE5F,aAAa,0IAA6B;AAC1C,WAAW,mBAAO,CAAC,mBAAM;;AAEzB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB,gDAAgD;AAChD;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,6BAA6B,qBAAqB;AAClD;AACA;AACA;;;;;;;;;;;AC7Ea;;AAEb;;AAEA,UAAU,mBAAO,CAAC,0EAAsB;AACxC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;ACnFA,kGAA+C;;;;;;;;;;;ACA/C;AACA,aAAa,mBAAO,CAAC,8CAAQ;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE,cAAc;AAChB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7DA,UAAU,sJAAqD;AAC/D,cAAc;AACd,gBAAgB;AAChB,wJAAuD;AACvD,kJAAmD;AACnD,2JAAyD;AACzD,iKAA6D;;;;;;;;;;;;ACN7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,aAAa,yIAA6B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,sCAAsC,sCAAsC;AACzG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;ACvSA;AACA,aAAa,mBAAO,CAAC,8CAAQ;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE,cAAc;AAChB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7DA;AACA;AACA,aAAa,mBAAO,CAAC,8CAAQ;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE,cAAc;AAChB;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChEa;;AAEb,gBAAgB,mBAAO,CAAC,sDAAY;AACpC,cAAc,mBAAO,CAAC,kDAAU;;AAEhC;AACA,iBAAiB,mBAAO,CAAC,wDAAgB;;AAEzC,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChBa;;AAEb,mBAAmB,mBAAO,CAAC,4DAAe;AAC1C,aAAa,mBAAO,CAAC,0EAAsB;AAC3C,qBAAqB,mBAAO,CAAC,kFAA0B;AACvD,WAAW,mBAAO,CAAC,0CAAM;;AAEzB,iBAAiB,mBAAO,CAAC,wDAAgB;AACzC;;AAEA,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,uBAAuB;AAC5C,IAAI;AACJ,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;;;;;;;;;;;;ACzCa;;AAEb,aAAa,sFAA6B;AAC1C,eAAe,mBAAO,CAAC,oDAAW;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sBAAsB,gBAAgB;AACtC;AACA;;AAEA,kBAAkB,eAAe;AACjC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnFa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qFAAqC;AACrC,wFAAuC;AACvC,8FAA2C;AAC3C,8FAA2C;AAC3C,8FAA2C;AAC3C,8FAA2C;;;;;;;;;;;;AClB9B;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,mBAAO,CAAC,6DAAU;AACjC,WAAW,mBAAO,CAAC,6CAAQ;AAC3B,aAAa,sFAA6B;;AAE1C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,QAAQ;AACzB;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;;AAEA,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACvGa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,mBAAO,CAAC,6DAAU;AACjC,WAAW,mBAAO,CAAC,6CAAQ;AAC3B,aAAa,sFAA6B;;AAE1C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,QAAQ;AACzB;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;;AAEA,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;AC5Ga;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,mBAAO,CAAC,6DAAU;AACjC,aAAa,mBAAO,CAAC,iDAAU;AAC/B,WAAW,mBAAO,CAAC,6CAAQ;AAC3B,aAAa,sFAA6B;;AAE1C;;AAEA;AACA;;AAEA,cAAc;;AAEd;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACtDa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,mBAAO,CAAC,6DAAU;AACjC,WAAW,mBAAO,CAAC,6CAAQ;AAC3B,aAAa,sFAA6B;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,cAAc;;AAEd;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,QAAQ;AACzB;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;;AAEA,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;AC5La;;AAEb,eAAe,mBAAO,CAAC,6DAAU;AACjC,aAAa,mBAAO,CAAC,iDAAU;AAC/B,WAAW,mBAAO,CAAC,6CAAQ;AAC3B,aAAa,sFAA6B;;AAE1C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;AC1Da;;AAEb,eAAe,mBAAO,CAAC,6DAAU;AACjC,WAAW,mBAAO,CAAC,6CAAQ;AAC3B,aAAa,sFAA6B;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AC7XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,SAAS,mFAA8B;AACvC,eAAe,mBAAO,CAAC,6DAAU;;AAEjC;AACA,kBAAkB,mBAAO,CAAC,uGAAyC;AACnE,kBAAkB,mBAAO,CAAC,uGAAyC;AACnE,gBAAgB,mBAAO,CAAC,mGAAuC;AAC/D,mBAAmB,mBAAO,CAAC,yGAA0C;AACrE,qBAAqB,mBAAO,CAAC,6GAA4C;AACzE,kBAAkB,mBAAO,CAAC,mIAAuD;AACjF,kBAAkB,mBAAO,CAAC,yHAAkD;;AAE5E;AACA;;;;AAIA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;;;;;;;;;;;AChIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,aAAa,sFAA6B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,sCAAsC,sCAAsC;AACzG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACvSa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;;;;;;;;;AChCA,8GAA0C;;;;;;;;;;;;ACA7B;;AAEb,aAAa,sFAA6B;AAC1C,cAAc,mBAAO,CAAC,uEAAS;AAC/B,uBAAuB,mBAAO,CAAC,sEAAoB;;AAEnD;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AC5GA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;;;;;;;;;ACHA,wHAAkE;AAClE,wHAAsE;AACtE,oIAA4D;AAC5D,oIAA+D;AAC/D,wHAA2D;AAC3D,wHAAuE;AACvE,iIAA+E;AAC/E,oIAAuE;AACvE,wHAAwE;AACxE,wHAAoE;AACpE,wHAAiE;AACjE,wHAA2E;AAC3E,iIAAqE;AACrE,wHAAiE;AACjE,yHAAmE;AACnE,iIAAmE;AACnE,iIAAsE;AACtE,oIAAiE;AACjE,oIAA+E;AAC/E,oIAA0E;AAC1E,yHAAyE;AACzE,yHAAgF;A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,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,+CAA+C;AAC/C,+CAA+C;AAC/C,+CAA+C;AAC/C,+CAA+C;AAC/C,+CAA+C;AAC/C;AACA,+CAA+C;AAC/C,+CAA+C;AAC/C,+CAA+C;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uDAAuD;AACvD,uDAAuD;AACvD,uDAAuD;AACvD,uDAAuD;AACvD,uDAAuD;AACvD;AACA,uDAAuD;AACvD,uDAAuD;AACvD,uDAAuD;AACvD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,QAAQ;AACtB;AACA,cAAc,QAAQ;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;;AAEA;AACA,kBAAkB,QAAQ;AAC1B;;AAEA;AACA,kBAAkB,QAAQ;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD;;AAEA;AACA;AACA,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB;AACtB,sBAAsB;;AAEtB;AACA;AACA;;AAEA,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB;AACtB,sBAAsB;;AAEtB;AACA;AACA;;AAEA,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB;AACtB,sBAAsB;;AAEtB;AACA;;AAEA,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;;AAEA,0BAA0B;AAC1B,0BAA0B;;AAE1B;AACA;;AAEA,2BAA2B;AAC3B,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;;AAEA,2BAA2B;AAC3B,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;;AAEA,2BAA2B;AAC3B,2BAA2B;;AAE3B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;;AAEA;AACA;AACA;AACA;;AAEA,cAAc,OAAO;;AAErB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,QAAQ;AACtB;AACA;;AAEA;;AAEA;AACA;AACA,eAAe,SAAS;AACxB;AACA,iCAAiC,OAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,cAAc,OAAO;AACrB,cAAc,QAAQ;;AAEtB;AACA;AACA;AACA;;AAEA,eAAe,QAAQ;AACvB;AACA;;AAEA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,cAAc,OAAO;AACrB,cAAc,QAAQ;AACtB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,gBAAgB;AAClC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uBAAuB;AACrC,cAAc,gBAAgB;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,KAAK;AACL,IAAI,SAAS,IAA8B;AAC3C;AACA,aAAa,mBAAO,CAAC,qBAAQ;AAC7B;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,OAAO;AACP;AACA;AACA,CAAC;;AAED,CAAC,EAAE,KAA6B,kEAAkE;;;;;;;;;;;;ACt1ErF;;AAEb,iBAAiB,mBAAO,CAAC,wDAAgB;;AAEzC,gBAAgB,mBAAO,CAAC,sDAAY;;AAEpC,WAAW,4EAA4E;AACvF;;AAEA,mBAAmB,mBAAO,CAAC,8DAAgB;;AAE3C,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,QAAQ,OAAO;AACf,QAAQ;AACR,QAAQ,OAAO;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,SAAS,qBAAM;AACf,IAAI;AACJ;AACA;AACA,YAAY,qBAAM;AAClB;AACA;AACA;;;;;;;;;;;AClEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACLA;AACA;;AAEa;;AAEb,wBAAwB,mBAAO,CAAC,0DAAc;AAC9C,0BAA0B,mBAAO,CAAC,4EAAuB;AACzD,sBAAsB,mBAAO,CAAC,oEAAmB;AACjD,mBAAmB,mBAAO,CAAC,8DAAgB;;AAE3C;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA,yBAAyB;AACzB,2BAA2B;AAC3B,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;;AAGzB;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;;;AC7UD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,wBAAwB,SAAS;AACjC;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa,OAAO,oBAAoB,OAAO;AAC/C;AACA;;AAEA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,OAAO;AACjB;AACA,QAAQ,SAAS,OAAO;AACxB,QAAQ,OAAO;AACf,QAAQ;AACR,QAAQ,OAAO;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA,IAAI,OAAO;AACX,iBAAiB,OAAO;AACxB,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA,QAAQ,OAAO;AACf;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;;AAGf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4CAA4C,KAAK;;AAEjD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;AAGA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA;AACA,WAAW;AACX;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA,kGAA0C;;AAE1C;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,gBAAgB;AAChB,sBAAsB;;AAEtB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,cAAc;AACd,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA,eAAe;AACf,2BAA2B;;AAE3B;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB,kHAAgD;;AAEhD;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,WAAW;AACX,EAAE,OAAO;AACT;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA,WAAW,UAAU;AACrB;AACA,qGAAsC;;AAEtC,eAAe;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO,qCAAqC;AACxE,4BAA4B,OAAO,sDAAsD;AACzF;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;;;;;;;;;;AC1sBnB;AACA;AACA,yBAAyB,eAAe;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,eAAe;AACxC;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;AAC5B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,iBAAiB;AACjB;AACA;;AAEA,oBAAoB;AACpB;AACA;;AAEA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;;;;;;;;;;;ACpJa;;AAEb,cAAc,mBAAO,CAAC,kDAAU;AAChC,2BAA2B,mBAAO,CAAC,8EAAwB;AAC3D,eAAe,mBAAO,CAAC,oDAAW;AAClC,gBAAgB,mBAAO,CAAC,sDAAY;AACpC,WAAW,mBAAO,CAAC,0CAAM;AACzB,eAAe,mBAAO,CAAC,oDAAW;;AAElC;AACA,qBAAqB,mBAAO,CAAC,sEAAuB;;AAEpD,4CAA4C,qBAAM;AAClD;;AAEA;;AAEA,WAAW,8DAA8D;AACzE;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,0BAA0B;AACxC,WAAW,yBAAyB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI,2BAA2B,GAAG;AACjD,kBAAkB,2DAA2D;AAC7E;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA,WAAW,uDAAuD;AAClE;AACA,YAAY,sCAAsC;AAClD;AACA,aAAa,YAAY,2BAA2B,YAAY;AAChE,aAAa,4BAA4B,2BAA2B,YAAY;AAChF;AACA;AACA;AACA;AACA;AACA,yBAAyB,4BAA4B;AACrD;AACA,MAAM,YAAY;AAClB;AACA;AACA;AACA;AACA;;AAEA,WAAW,uDAAuD;AAClE;AACA,YAAY,iCAAiC;AAC7C;AACA,aAAa,YAAY,2BAA2B,YAAY;AAChE,aAAa,4BAA4B,2BAA2B,YAAY;AAChF;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD,MAAM,YAAY;AAClB;AACA;AACA;AACA;AACA;;AAEA,WAAW,aAAa;AACxB;AACA,4CAA4C;AAC5C;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B;AACA;;;;;;;;;;;;;ACpHa;AACb;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa,GAAG,UAAU,GAAG,oBAAoB,GAAG,cAAc;AAClE,iBAAiB,mBAAO,CAAC,gFAA4B;AACrD,mBAAmB,mBAAO,CAAC,sDAAY;AACvC;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT,qCAAqC,YAAY;AACjD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,0BAA0B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA,gBAAgB;AAChB;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,oCAAoC,eAAe;AACnD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4CAA4C;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,OAAO;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,gBAAgB;AAChB;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,gBAAgB;AAChB;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,oBAAoB;AACpB;AACA,kBAAe;AACf,2CAA2C;;;;;;;;;;ACltD3C;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;;ACAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,wBAAwB,mBAAO,CAAC,iFAAiB;AACjD,yBAAyB,mBAAO,CAAC,mFAAkB;AACnD,oBAAoB,mBAAO,CAAC,yFAAqB;AACjD,mBAAmB,mBAAO,CAAC,uFAAoB;AAC/C,oBAAoB,mBAAO,CAAC,yFAAqB;AACjD,sBAAsB,mBAAO,CAAC,qFAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,oBAAoB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnQa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,iBAAiB,kBAAkB,kBAAkB;;;;;;;;;;;;ACpDzC;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB,uBAAuB;AACvB,iBAAiB;AACjB,yBAAyB,mBAAO,CAAC,mFAAkB;AACnD,oBAAoB,mBAAO,CAAC,yFAAqB;AACjD,qBAAqB,mBAAO,CAAC,2FAAsB;AACnD,6BAA6B,mBAAO,CAAC,qGAA2B;AAChE;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,6BAA6B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpNa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChCa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB,oBAAoB,mBAAO,CAAC,mFAAkB;AAC9C;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,mBAAmB,OAAO;AAC1B,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,MAAM;AAC5D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,uDAAuD,MAAM;AAC7D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7Ha;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnCa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,kBAAkB;AAClB,qBAAqB;AACrB,oBAAoB;AACpB,wBAAwB;AACxB,oBAAoB,mBAAO,CAAC,iFAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC5Ea;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB,qBAAqB;AACrB,qBAAqB;AACrB,iBAAiB;AACjB,yBAAyB,mBAAO,CAAC,oFAAmB;AACpD,wBAAwB,mBAAO,CAAC,kFAAkB;AAClD,mBAAmB,mBAAO,CAAC,+EAAY;AACvC,mBAAmB,mBAAO,CAAC,+EAAY;AACvC,6BAA6B,mBAAO,CAAC,sGAA4B;AACjE,2BAA2B,mBAAO,CAAC,kGAA0B;AAC7D,yBAAyB,mBAAO,CAAC,oFAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,yBAAyB,QAAQ,iBAAiB;AACnF;AACA;AACA,iCAAiC,wBAAwB,QAAQ,iBAAiB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,UAAU,IAAI,oCAAoC;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,iBAAiB,sBAAsB,iBAAiB;AAC5H;AACA;AACA;AACA,6DAA6D,eAAe,IAAI,uCAAuC;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,OAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,OAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ,aAAa,eAAe;AAC9E;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA,uBAAuB,oCAAoC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,WAAW;AAChD;AACA;AACA,gCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,cAAc;AAChD;AACA;AACA;AACA,oDAAoD,2BAA2B;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,cAAc;AAC5C;AACA;AACA;AACA;AACA,mCAAmC,yBAAyB;AAC5D;AACA,mCAAmC,sBAAsB;AACzD;AACA,mCAAmC,0CAA0C;AAC7E;AACA;AACA;AACA;AACA;AACA,kCAAkC,0CAA0C,IAAI,yBAAyB;AACzG;AACA,kCAAkC,0CAA0C,IAAI,sBAAsB;AACtG;AACA,kCAAkC,0CAA0C,IAAI,0CAA0C;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzQa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf,mBAAmB;AACnB,kBAAkB;AAClB,yBAAyB,mBAAO,CAAC,oFAAmB;AACpD,2BAA2B,mBAAO,CAAC,+FAAoB;AACvD,mBAAmB,mBAAO,CAAC,+EAAY;AACvC,oBAAoB,mBAAO,CAAC,iFAAa;AACzC,oBAAoB,mBAAO,CAAC,0EAAc;AAC1C,sBAAsB,mBAAO,CAAC,sFAAoB;AAClD,oBAAoB,mBAAO,CAAC,iFAAa;AACzC,yBAAyB,mBAAO,CAAC,oFAAmB;AACpD,mBAAmB,mBAAO,CAAC,+EAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,mBAAmB,eAAe,gBAAgB;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,UAAU;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1hBa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB;AACpB,uBAAuB;AACvB,yBAAyB;AACzB,yBAAyB,mBAAO,CAAC,oFAAmB;AACpD,yBAAyB,mBAAO,CAAC,oFAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;;;;;;;;;;;;ACtGa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB,uBAAuB;AACvB,mBAAmB;AACnB,2BAA2B;AAC3B,iBAAiB;AACjB,iBAAiB;AACjB,mBAAmB;AACnB,oBAAoB,mBAAO,CAAC,iFAAa;AACzC;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnJa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,kBAAkB;AAClB,qBAAqB,mBAAO,CAAC,2FAAsB;AACnD,6BAA6B,mBAAO,CAAC,qGAA2B;AAChE,yBAAyB,mBAAO,CAAC,mFAAkB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,kBAAkB,GAAG,QAAQ;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,QAAQ,GAAG,WAAW,aAAa,UAAU;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACtMa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB;AACpB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1Ja;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,GAAG,oBAAoB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,gBAAgB;AACvK,oBAAoB,mBAAO,CAAC,8EAAa;AACzC,yBAAyB,mBAAO,CAAC,oFAAmB;AACpD,2BAA2B,mBAAO,CAAC,4FAAoB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,eAAe,gBAAgB,gBAAgB;AAChD;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oCAAoC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACjgBa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa,mBAAO,CAAC,gGAAsB;AAC3C,aAAa,mBAAO,CAAC,gGAAsB;AAC3C,aAAa,mBAAO,CAAC,4FAAoB;AACzC,aAAa,mBAAO,CAAC,wFAAkB;AACvC,aAAa,mBAAO,CAAC,8FAAqB;;;;;;;;;;;;ACjC7B;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA,uDAAuD;AACvD;AACA;AACA;AACA,0MAA0M,cAAc;AACxN,8BAA8B,sBAAsB;AACpD,0BAA0B,YAAY,sBAAsB,qCAAqC,2CAA2C,MAAM;AAClJ,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B;AAC3B,iCAAiC;AACjC,yBAAyB;AACzB,uBAAuB,mBAAO,CAAC,gFAAiB;AAChD,6BAA6B,mBAAO,CAAC,gGAAsB;AAC3D,yBAAyB,mBAAO,CAAC,oFAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,8EAA8E;AAClK;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACxJa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,6BAA6B;AAC7B,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;;;;;;;;;;;ACrDa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gCAAgC;AAChC,kCAAkC;AAClC,yBAAyB,mBAAO,CAAC,oFAAmB;AACpD,yBAAyB,mBAAO,CAAC,oFAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,UAAU,iBAAiB,MAAM;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,mCAAmC,iBAAiB,MAAM;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACvMa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB;AACpB,qBAAqB;AACrB,uBAAuB;AACvB,qBAAqB;AACrB,sBAAsB;AACtB,qBAAqB;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClUa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzCa;;AAEb,oBAAoB,mBAAO,CAAC,sFAA4B;;AAExD,4CAA4C,qBAAM;;AAElD,WAAW,aAAa;AACxB;AACA,gBAAgB,yCAAyC;AACzD,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UChBA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCzBA;;;;;WCAA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,IAAI;WACJ;WACA;WACA,IAAI;WACJ;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA,sGAAsG;WACtG;WACA;WACA;WACA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA,EAAE;WACF;WACA;;;;;WChEA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;WACA;WACA;WACA;WACA;;;;;UEJA;UACA;UACA;UACA","sources":["webpack://structs-webapp/./js/api/GuildAPI.js","webpack://structs-webapp/./js/api/GuildAPIResponse.js","webpack://structs-webapp/./js/builders/CheatsheetContentBuilder.js","webpack://structs-webapp/./js/builders/MapOrnamentComponentBuilder.js","webpack://structs-webapp/./js/builders/MapTransitionComponentBuilder.js","webpack://structs-webapp/./js/builders/PlanetCardBuilder.js","webpack://structs-webapp/./js/builders/StructStillBuilder.js","webpack://structs-webapp/./js/builders/StructTypeArtSetBuilder.js","webpack://structs-webapp/./js/constants/Ambits.js","webpack://structs-webapp/./js/constants/AnimationConstants.js","webpack://structs-webapp/./js/constants/Events.js","webpack://structs-webapp/./js/constants/Fee.js","webpack://structs-webapp/./js/constants/HUDConstants.js","webpack://structs-webapp/./js/constants/LocationTypes.js","webpack://structs-webapp/./js/constants/MapConstants.js","webpack://structs-webapp/./js/constants/MapPerspectives.js","webpack://structs-webapp/./js/constants/MenuPageRouterModes.js","webpack://structs-webapp/./js/constants/NotificationDialogueSequences.js","webpack://structs-webapp/./js/constants/ObjectTypes.js","webpack://structs-webapp/./js/constants/PaginationLimits.js","webpack://structs-webapp/./js/constants/Permissions.js","webpack://structs-webapp/./js/constants/PlanetCardTypes.js","webpack://structs-webapp/./js/constants/PlayerMapRoles.js","webpack://structs-webapp/./js/constants/PlayerTypes.js","webpack://structs-webapp/./js/constants/PrecisionConstants.js","webpack://structs-webapp/./js/constants/RaidStatus.js","webpack://structs-webapp/./js/constants/RegexPattern.js","webpack://structs-webapp/./js/constants/SettingConstants.js","webpack://structs-webapp/./js/constants/StructConstants.js","webpack://structs-webapp/./js/constants/TaskConstants.js","webpack://structs-webapp/./js/constants/TaskManagerStatus.js","webpack://structs-webapp/./js/constants/TaskStatus.js","webpack://structs-webapp/./js/constants/TaskTypes.js","webpack://structs-webapp/./js/controllers/AccountController.js","webpack://structs-webapp/./js/controllers/AuthController.js","webpack://structs-webapp/./js/controllers/FleetController.js","webpack://structs-webapp/./js/controllers/GenericController.js","webpack://structs-webapp/./js/controllers/GuildController.js","webpack://structs-webapp/./js/data_structures/AnimationEventQueue.js","webpack://structs-webapp/./js/data_structures/DoublyLinkedList.js","webpack://structs-webapp/./js/data_structures/DoublyLinkedNode.js","webpack://structs-webapp/./js/data_structures/Queue.js","webpack://structs-webapp/./js/dtos/ActivationCodeInfoDTO.js","webpack://structs-webapp/./js/dtos/AddPendingAddressRequestDTO.js","webpack://structs-webapp/./js/dtos/AddPlayerAddressMetaRequestDTO.js","webpack://structs-webapp/./js/dtos/CreateActivationCodeRequestDTO.js","webpack://structs-webapp/./js/dtos/GuildAPICacheItemDTO.js","webpack://structs-webapp/./js/dtos/GuildPowerStatsDTO.js","webpack://structs-webapp/./js/dtos/GuildSearchResultDTO.js","webpack://structs-webapp/./js/dtos/LoginRequestDTO.js","webpack://structs-webapp/./js/dtos/MapStructTileRenderParamsDTO.js","webpack://structs-webapp/./js/dtos/NavItemDTO.js","webpack://structs-webapp/./js/dtos/PlanetaryShieldInfoDTO.js","webpack://structs-webapp/./js/dtos/PlayerSearchResultDTO.js","webpack://structs-webapp/./js/dtos/PositionDTO.js","webpack://structs-webapp/./js/dtos/RaidSearchRequestDTO.js","webpack://structs-webapp/./js/dtos/SetAddressPermissionsRequestDTO.js","webpack://structs-webapp/./js/dtos/SetPendingAddressPermissionsRequestDTO.js","webpack://structs-webapp/./js/dtos/SignupRequestDTO.js","webpack://structs-webapp/./js/dtos/SocialsDTO.js","webpack://structs-webapp/./js/dtos/TransferSearchRequestDTO.js","webpack://structs-webapp/./js/errors/AnimationError.js","webpack://structs-webapp/./js/errors/GuildAPIError.js","webpack://structs-webapp/./js/errors/MapOrnamentComponentBuilderError.js","webpack://structs-webapp/./js/errors/MapTransitionLayerComponentFactoryError.js","webpack://structs-webapp/./js/events/AlphaCountChangedEvent.js","webpack://structs-webapp/./js/events/AnimationEndEvent.js","webpack://structs-webapp/./js/events/AnimationEvent.js","webpack://structs-webapp/./js/events/ChargeLevelChangedEvent.js","webpack://structs-webapp/./js/events/ClearAttackTargetsEvent.js","webpack://structs-webapp/./js/events/ClearDefendTargetsEvent.js","webpack://structs-webapp/./js/events/ClearMoveTargetsEvent.js","webpack://structs-webapp/./js/events/ClearStructTileEvent.js","webpack://structs-webapp/./js/events/EnergyUsageChangedEvent.js","webpack://structs-webapp/./js/events/OreCountChangedEvent.js","webpack://structs-webapp/./js/events/PendingBuildAddedEvent.js","webpack://structs-webapp/./js/events/PlanetRaidStatusChangedEvent.js","webpack://structs-webapp/./js/events/RefreshActionBarEvent.js","webpack://structs-webapp/./js/events/RefreshActionBarIfSelectedEvent.js","webpack://structs-webapp/./js/events/RenderDeploymentIndicatorEvent.js","webpack://structs-webapp/./js/events/RenderStructEvent.js","webpack://structs-webapp/./js/events/RenderStructHUDEvent.js","webpack://structs-webapp/./js/events/SaveGameStateEvent.js","webpack://structs-webapp/./js/events/ShieldHealthChangedEvent.js","webpack://structs-webapp/./js/events/ShowAttackTargetsEvent.js","webpack://structs-webapp/./js/events/ShowDefendTargetsEvent.js","webpack://structs-webapp/./js/events/ShowMoveTargetsEvent.js","webpack://structs-webapp/./js/events/StructCountChangedEvent.js","webpack://structs-webapp/./js/events/TaskCmdKillEvent.js","webpack://structs-webapp/./js/events/TaskCmdSpawnEvent.js","webpack://structs-webapp/./js/events/TaskCompletedEvent.js","webpack://structs-webapp/./js/events/TaskManagerStatusChangedEvent.js","webpack://structs-webapp/./js/events/TaskStateChangedEvent.js","webpack://structs-webapp/./js/events/TaskWorkerChangedEvent.js","webpack://structs-webapp/./js/events/TrackDestroyedStructEvent.js","webpack://structs-webapp/./js/events/TrackDestroyedStructsEvent.js","webpack://structs-webapp/./js/events/UndiscoveredOreCountChangedEvent.js","webpack://structs-webapp/./js/events/UpdateTileStructIdEvent.js","webpack://structs-webapp/./js/factories/AnimationEventFactory.js","webpack://structs-webapp/./js/factories/FleetFactory.js","webpack://structs-webapp/./js/factories/GuildAPIResponseFactory.js","webpack://structs-webapp/./js/factories/GuildFactory.js","webpack://structs-webapp/./js/factories/GuildPowerStatsDTOFactory.js","webpack://structs-webapp/./js/factories/GuildSearchResultDTOFactory.js","webpack://structs-webapp/./js/factories/InfusionFactory.js","webpack://structs-webapp/./js/factories/MapTransitionLayerComponentFactory.js","webpack://structs-webapp/./js/factories/NotificationDialogueSequenceFactory.js","webpack://structs-webapp/./js/factories/PlanetFactory.js","webpack://structs-webapp/./js/factories/PlanetRaidFactory.js","webpack://structs-webapp/./js/factories/PlanetaryShieldInfoDTOFactory.js","webpack://structs-webapp/./js/factories/PlayerAddressFactory.js","webpack://structs-webapp/./js/factories/PlayerAddressPendingFactory.js","webpack://structs-webapp/./js/factories/PlayerFactory.js","webpack://structs-webapp/./js/factories/PlayerOreStatsFactory.js","webpack://structs-webapp/./js/factories/PlayerSearchResultDTOFactory.js","webpack://structs-webapp/./js/factories/SettingFactory.js","webpack://structs-webapp/./js/factories/SocialsDTOFactory.js","webpack://structs-webapp/./js/factories/StructFactory.js","webpack://structs-webapp/./js/factories/StructTypeFactory.js","webpack://structs-webapp/./js/factories/TaskStateFactory.js","webpack://structs-webapp/./js/factories/TransactionFactory.js","webpack://structs-webapp/./js/factories/WorkFactory.js","webpack://structs-webapp/./js/framework/AbstractController.js","webpack://structs-webapp/./js/framework/AbstractFactory.js","webpack://structs-webapp/./js/framework/AbstractGrassListener.js","webpack://structs-webapp/./js/framework/AbstractViewModel.js","webpack://structs-webapp/./js/framework/AbstractViewModelComponent.js","webpack://structs-webapp/./js/framework/BannerLayer.js","webpack://structs-webapp/./js/framework/GrassError.js","webpack://structs-webapp/./js/framework/GrassManager.js","webpack://structs-webapp/./js/framework/JsonAjaxer.js","webpack://structs-webapp/./js/framework/MenuPage.js","webpack://structs-webapp/./js/framework/MenuPageRouter.js","webpack://structs-webapp/./js/framework/NotImplementedError.js","webpack://structs-webapp/./js/framework/NotificationDialogue.js","webpack://structs-webapp/./js/framework/NotificationDialogueSequence.js","webpack://structs-webapp/./js/framework/NotificationDialogueSequenceStep.js","webpack://structs-webapp/./js/grass_listeners/AlphaChangeListener.js","webpack://structs-webapp/./js/grass_listeners/AlphaInfusedChangeListener.js","webpack://structs-webapp/./js/grass_listeners/BlockListener.js","webpack://structs-webapp/./js/grass_listeners/ConnectionCapacityListener.js","webpack://structs-webapp/./js/grass_listeners/KeyPlayerLastActionListener.js","webpack://structs-webapp/./js/grass_listeners/KeyPlayerOreListener.js","webpack://structs-webapp/./js/grass_listeners/NewPlanetListener.js","webpack://structs-webapp/./js/grass_listeners/PlanetRaidStatusListener.js","webpack://structs-webapp/./js/grass_listeners/PlayerAddressApprovedListener.js","webpack://structs-webapp/./js/grass_listeners/PlayerAddressApprovedLoginListener.js","webpack://structs-webapp/./js/grass_listeners/PlayerAddressPendingCreatedListener.js","webpack://structs-webapp/./js/grass_listeners/PlayerAddressRevokedListener.js","webpack://structs-webapp/./js/grass_listeners/PlayerAlphaListener.js","webpack://structs-webapp/./js/grass_listeners/PlayerCapacityListener.js","webpack://structs-webapp/./js/grass_listeners/PlayerCreatedListener.js","webpack://structs-webapp/./js/grass_listeners/PlayerLoadListener.js","webpack://structs-webapp/./js/grass_listeners/PlayerStructsLoadListener.js","webpack://structs-webapp/./js/grass_listeners/RaidStatusListener.js","webpack://structs-webapp/./js/grass_listeners/StructListener.js","webpack://structs-webapp/./js/grass_listeners/StructMineStatusListener.js","webpack://structs-webapp/./js/grass_listeners/StructRefineStatusListener.js","webpack://structs-webapp/./js/grass_listeners/TransferSentListener.js","webpack://structs-webapp/./js/index.js","webpack://structs-webapp/./js/managers/AlphaManager.js","webpack://structs-webapp/./js/managers/AuthManager.js","webpack://structs-webapp/./js/managers/DestroyedStructManager.js","webpack://structs-webapp/./js/managers/FleetManager.js","webpack://structs-webapp/./js/managers/MapMananger.js","webpack://structs-webapp/./js/managers/PermissionManager.js","webpack://structs-webapp/./js/managers/PlanetManager.js","webpack://structs-webapp/./js/managers/PlayerAddressManager.js","webpack://structs-webapp/./js/managers/RaidManager.js","webpack://structs-webapp/./js/managers/SigningClientManager.js","webpack://structs-webapp/./js/managers/StructManager.js","webpack://structs-webapp/./js/managers/TaskManager.js","webpack://structs-webapp/./js/managers/WalletManager.js","webpack://structs-webapp/./js/models/ActionBarLock.js","webpack://structs-webapp/./js/models/Fleet.js","webpack://structs-webapp/./js/models/GameState.js","webpack://structs-webapp/./js/models/Guild.js","webpack://structs-webapp/./js/models/Infusion.js","webpack://structs-webapp/./js/models/KeyPlayer.js","webpack://structs-webapp/./js/models/Planet.js","webpack://structs-webapp/./js/models/PlanetRaid.js","webpack://structs-webapp/./js/models/Player.js","webpack://structs-webapp/./js/models/PlayerAddress.js","webpack://structs-webapp/./js/models/PlayerAddressPending.js","webpack://structs-webapp/./js/models/PlayerOreStats.js","webpack://structs-webapp/./js/models/Setting.js","webpack://structs-webapp/./js/models/Settings.js","webpack://structs-webapp/./js/models/Struct.js","webpack://structs-webapp/./js/models/StructType.js","webpack://structs-webapp/./js/models/StructTypeArtSet.js","webpack://structs-webapp/./js/models/StructTypeCollection.js","webpack://structs-webapp/./js/models/TaskProcess.js","webpack://structs-webapp/./js/models/TaskState.js","webpack://structs-webapp/./js/models/Transaction.js","webpack://structs-webapp/./js/models/UserAgent.js","webpack://structs-webapp/./js/models/Work.js","webpack://structs-webapp/./js/options/MenuWaitingOptions.js","webpack://structs-webapp/./js/sui/SUI.js","webpack://structs-webapp/./js/sui/SUICheatsheet.js","webpack://structs-webapp/./js/sui/SUICheatsheetContentBuilder.js","webpack://structs-webapp/./js/sui/SUICheatsheetRenderer.js","webpack://structs-webapp/./js/sui/SUIFeature.js","webpack://structs-webapp/./js/sui/SUIInputStepper.js","webpack://structs-webapp/./js/sui/SUINotImplementedError.js","webpack://structs-webapp/./js/sui/SUIOffcanvas.js","webpack://structs-webapp/./js/sui/SUITooltip.js","webpack://structs-webapp/./js/sui/SUIUtil.js","webpack://structs-webapp/./js/util/AmbitUtil.js","webpack://structs-webapp/./js/util/AttackSequenceAnimationUtil.js","webpack://structs-webapp/./js/util/CaseConverter.js","webpack://structs-webapp/./js/util/ChargeCalculator.js","webpack://structs-webapp/./js/util/ColorUtil.js","webpack://structs-webapp/./js/util/DateFormatter.js","webpack://structs-webapp/./js/util/NumberFormatter.js","webpack://structs-webapp/./js/util/RaidStatusUtil.js","webpack://structs-webapp/./js/util/ShieldHealthCalculator.js","webpack://structs-webapp/./js/util/TileClassNameUtil.js","webpack://structs-webapp/./js/vendor/Blockies.js","webpack://structs-webapp/./js/view_models/HUDViewModel.js","webpack://structs-webapp/./js/view_models/IndexViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountActivatingDeviceViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountApproveNewDeviceViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountChangeUsername.js","webpack://structs-webapp/./js/view_models/account/AccountConfirmTransfer.js","webpack://structs-webapp/./js/view_models/account/AccountDeviceActivationCancelled.js","webpack://structs-webapp/./js/view_models/account/AccountDeviceActivationComplete.js","webpack://structs-webapp/./js/view_models/account/AccountDeviceViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountDevicesViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountIndexViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountNewDeviceCodeViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountProfileViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountRecipientSearchResults.js","webpack://structs-webapp/./js/view_models/account/AccountRecipientSearchViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountRecipientViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountTransactionHistory.js","webpack://structs-webapp/./js/view_models/account/AccountTransactionViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountTransferAmountViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountTransfersViewModel.js","webpack://structs-webapp/./js/view_models/banners/AbstractBannerViewModel.js","webpack://structs-webapp/./js/view_models/banners/DefeatBannerViewModel.js","webpack://structs-webapp/./js/view_models/banners/VictoryBannerViewModel.js","webpack://structs-webapp/./js/view_models/components/AlphaOwnedComponent.js","webpack://structs-webapp/./js/view_models/components/EnergyUsageComponent.js","webpack://structs-webapp/./js/view_models/components/GenericResourceComponent.js","webpack://structs-webapp/./js/view_models/components/LottieCustomPlayer.js","webpack://structs-webapp/./js/view_models/components/MapStructLottieAnimationSVG.js","webpack://structs-webapp/./js/view_models/components/MapStructViewerComponent.js","webpack://structs-webapp/./js/view_models/components/PlanetCardComponent.js","webpack://structs-webapp/./js/view_models/components/StructStillRenderer.js","webpack://structs-webapp/./js/view_models/components/hud/ActionBarComponent.js","webpack://structs-webapp/./js/view_models/components/hud/StatusBarTopLeftComponent.js","webpack://structs-webapp/./js/view_models/components/hud/StatusBarTopRightComponent.js","webpack://structs-webapp/./js/view_models/components/map/AbstractMapTransitionLayerComponent.js","webpack://structs-webapp/./js/view_models/components/map/GenericMapLayerComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapFogOfWarComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapOrnamentComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapOrnamentsComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapPictureInPictureComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapStructHUDLayerComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapStructLayerComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapTerrainAmbitComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapTerrainComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapTileMarkersComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapTileSelectionComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapTransitionComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapTransitionLayerOrnamentComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapTransitionLayerTileSetComponent.js","webpack://structs-webapp/./js/view_models/components/offcanvas/DeployOffcanvas.js","webpack://structs-webapp/./js/view_models/components/sequences/AttackerVictoryDialogueSequence.js","webpack://structs-webapp/./js/view_models/components/sequences/DefeatedByAttackerDialogueSequence.js","webpack://structs-webapp/./js/view_models/components/sequences/DefeatedByDefenderDialogueSequence.js","webpack://structs-webapp/./js/view_models/components/sequences/DefenderVictoryDialogueSequence.js","webpack://structs-webapp/./js/view_models/fleet/FleetIndexViewModel.js","webpack://structs-webapp/./js/view_models/fleet/PreviewViewModel.js","webpack://structs-webapp/./js/view_models/fleet/ScanResultsViewModel.js","webpack://structs-webapp/./js/view_models/fleet/ScanViewModel.js","webpack://structs-webapp/./js/view_models/generic/MenuWaitingViewModel.js","webpack://structs-webapp/./js/view_models/guild/GuildIndexViewModel.js","webpack://structs-webapp/./js/view_models/guild/GuildProfileViewModel.js","webpack://structs-webapp/./js/view_models/guild/GuildsDirectoryViewModel.js","webpack://structs-webapp/./js/view_models/guild/ManageAlphaViewModel.js","webpack://structs-webapp/./js/view_models/guild/MemberRosterViewModel.js","webpack://structs-webapp/./js/view_models/guild/ReactorViewModel.js","webpack://structs-webapp/./js/view_models/login/ActivateDeviceCancelledViewModel.js","webpack://structs-webapp/./js/view_models/login/ActivateDeviceCompleteViewModel.js","webpack://structs-webapp/./js/view_models/login/ActivateDeviceVerifyViewModel.js","webpack://structs-webapp/./js/view_models/login/ActivateDeviceViewModel.js","webpack://structs-webapp/./js/view_models/login/ActivateDeviceWaitingForApprovalViewModel.js","webpack://structs-webapp/./js/view_models/login/ActivatingDeviceViewModel.js","webpack://structs-webapp/./js/view_models/login/LoggingInViewModel.js","webpack://structs-webapp/./js/view_models/login/RecoverAccountFailViewModel.js","webpack://structs-webapp/./js/view_models/login/RecoverAccountStartViewModel.js","webpack://structs-webapp/./js/view_models/login/RecoverAccountSuccessViewModel.js","webpack://structs-webapp/./js/view_models/logout/LogoutAssetsWarningViewModel.js","webpack://structs-webapp/./js/view_models/logout/LogoutPermissionsWarningViewModel.js","webpack://structs-webapp/./js/view_models/signup/ConnectingToCorp1ViewModel.js","webpack://structs-webapp/./js/view_models/signup/ConnectingToCorp2ViewModel.js","webpack://structs-webapp/./js/view_models/signup/IncomingCall1ViewModel.js","webpack://structs-webapp/./js/view_models/signup/IncomingCall2ViewModel.js","webpack://structs-webapp/./js/view_models/signup/IncomingCall3ViewModel.js","webpack://structs-webapp/./js/view_models/signup/Orientation1ViewModel.js","webpack://structs-webapp/./js/view_models/signup/Orientation2ViewModel.js","webpack://structs-webapp/./js/view_models/signup/Orientation3ViewModel.js","webpack://structs-webapp/./js/view_models/signup/Orientation4ViewModel.js","webpack://structs-webapp/./js/view_models/signup/Orientation5ViewModel.js","webpack://structs-webapp/./js/view_models/signup/Orientation6ViewModel.js","webpack://structs-webapp/./js/view_models/signup/Orientation7ViewModel.js","webpack://structs-webapp/./js/view_models/signup/Orientation8ViewModel.js","webpack://structs-webapp/./js/view_models/signup/OrientationEndViewModel.js","webpack://structs-webapp/./js/view_models/signup/RecoveryKeyConfirmationViewModel.js","webpack://structs-webapp/./js/view_models/signup/RecoveryKeyCreationViewModel.js","webpack://structs-webapp/./js/view_models/signup/RecoveryKeyFaqViewModel.js","webpack://structs-webapp/./js/view_models/signup/RecoveryKeyIntroViewModel.js","webpack://structs-webapp/./js/view_models/signup/SetUsernameViewModel.js","webpack://structs-webapp/./js/view_models/signup/SignupSuccessViewModel.js","webpack://structs-webapp/./js/view_models/templates/ConfirmTemplate.js","webpack://structs-webapp/./js/view_models/templates/HRBotTalkingTemplate.js","webpack://structs-webapp/./js/view_models/templates/OrientationStructDeployedTemplate.js","webpack://structs-webapp/./js/view_models/templates/partials/PageHeader.js","webpack://structs-webapp/./js/view_models/templates/partials/Pagination.js","webpack://structs-webapp/./js/view_models/templates/partials/SystemModal.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/bip39.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/hmac.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/keccak.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/libsodium.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/pbkdf2.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/random.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/ripemd.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/secp256k1.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/secp256k1signature.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/sha.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/slip10.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/utils.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/encoding/build/ascii.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/encoding/build/base64.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/encoding/build/bech32.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/encoding/build/hex.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/encoding/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/encoding/build/rfc3339.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/encoding/build/utf8.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/math/build/decimal.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/math/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/math/build/integers.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/utils/build/arrays.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/utils/build/assert.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/utils/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/utils/build/sleep.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/utils/build/typechecks.js","webpack://structs-webapp/./node_modules/@cosmjs/json-rpc/build/compatibility.js","webpack://structs-webapp/./node_modules/@cosmjs/json-rpc/build/id.js","webpack://structs-webapp/./node_modules/@cosmjs/json-rpc/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/json-rpc/build/jsonrpcclient.js","webpack://structs-webapp/./node_modules/@cosmjs/json-rpc/build/parse.js","webpack://structs-webapp/./node_modules/@cosmjs/json-rpc/build/types.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/build/decode.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/build/directsecp256k1hdwallet.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/build/directsecp256k1wallet.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/build/paths.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/build/pubkey.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/build/registry.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/build/signer.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/build/signing.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/build/wallet.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/addresses.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/coins.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/encoding.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/multisig.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/omitdefault.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/paths.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/pubkeys.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/secp256k1hdwallet.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/secp256k1wallet.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/signature.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/signdoc.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/stdtx.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/wallet.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/ascii.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/base64.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/bech32.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/hex.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/rfc3339.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/utf8.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/math/build/decimal.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/math/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/math/build/integers.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/arrays.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/assert.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/sleep.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/typechecks.js","webpack://structs-webapp/./node_modules/@cosmjs/socket/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/socket/build/queueingstreamingsocket.js","webpack://structs-webapp/./node_modules/@cosmjs/socket/build/reconnectingsocket.js","webpack://structs-webapp/./node_modules/@cosmjs/socket/build/socketwrapper.js","webpack://structs-webapp/./node_modules/@cosmjs/socket/build/streamingsocket.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/accounts.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/aminotypes.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/events.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/fee.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/logs.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/auth/queries.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/authz/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/authz/messages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/authz/queries.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/bank/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/bank/messages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/bank/queries.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/crisis/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/distribution/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/distribution/messages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/distribution/queries.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/evidence/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/feegrant/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/feegrant/messages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/feegrant/queries.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/gov/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/gov/messages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/gov/queries.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/group/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/group/messages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/ibc/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/ibc/messages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/ibc/queries.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/index.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/mint/queries.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/slashing/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/slashing/queries.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/staking/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/staking/messages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/staking/queries.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/tx/queries.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/vesting/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/vesting/messages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/multisignature.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/queryclient/index.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/queryclient/queryclient.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/queryclient/utils.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/search.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/signingstargateclient.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/stargateclient.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/addresses.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/coins.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/encoding.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/multisig.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/omitdefault.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/paths.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/pubkeys.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/secp256k1hdwallet.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/secp256k1wallet.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/signature.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/signdoc.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/stdtx.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/wallet.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/ascii.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/base64.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/bech32.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/hex.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/rfc3339.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/utf8.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/math/build/decimal.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/math/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/math/build/integers.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/arrays.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/assert.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/sleep.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/typechecks.js","webpack://structs-webapp/./node_modules/@cosmjs/stream/build/concat.js","webpack://structs-webapp/./node_modules/@cosmjs/stream/build/defaultvalueproducer.js","webpack://structs-webapp/./node_modules/@cosmjs/stream/build/dropduplicates.js","webpack://structs-webapp/./node_modules/@cosmjs/stream/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/stream/build/promise.js","webpack://structs-webapp/./node_modules/@cosmjs/stream/build/reducer.js","webpack://structs-webapp/./node_modules/@cosmjs/stream/build/valueandupdates.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/addresses.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/comet38/adaptor/index.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/comet38/adaptor/requests.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/comet38/adaptor/responses.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/comet38/comet38client.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/comet38/encodings.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/comet38/hasher.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/comet38/index.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/comet38/requests.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/comet38/responses.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/dates.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/inthelpers.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/jsonrpc.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/http.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/httpbatchclient.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/httpclient.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/index.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/rpcclient.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/websocketclient.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/index.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/requests.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/responses.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/encodings.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/hasher.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/index.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/requests.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/responses.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/tendermint34client.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/index.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/requests.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/responses.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/encodings.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/hasher.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/index.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/requests.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/responses.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/tendermint37client.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermintclient.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/types.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/ascii.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/base64.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/bech32.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/hex.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/rfc3339.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/utf8.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/math/build/decimal.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/math/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/math/build/integers.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/arrays.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/assert.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/sleep.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/typechecks.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/authenticator.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/bench.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/core.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/databuffer.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/denobuffer.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/encoders.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/errors.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/headers.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/heartbeats.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/idleheartbeat_monitor.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/internal_mod.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/ipparser.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/mod.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/msg.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/muxsubscription.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/nats.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/nkeys.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/nuid.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/options.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/parser.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/protocol.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/queued_iterator.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/request.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/semver.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/servers.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/transport.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/types.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/util.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/version.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/ws_transport.js","webpack://structs-webapp/./node_modules/@nats-io/nkeys/lib/base32.js","webpack://structs-webapp/./node_modules/@nats-io/nkeys/lib/codec.js","webpack://structs-webapp/./node_modules/@nats-io/nkeys/lib/crc16.js","webpack://structs-webapp/./node_modules/@nats-io/nkeys/lib/curve.js","webpack://structs-webapp/./node_modules/@nats-io/nkeys/lib/kp.js","webpack://structs-webapp/./node_modules/@nats-io/nkeys/lib/mod.js","webpack://structs-webapp/./node_modules/@nats-io/nkeys/lib/nacl.js","webpack://structs-webapp/./node_modules/@nats-io/nkeys/lib/nkeys.js","webpack://structs-webapp/./node_modules/@nats-io/nkeys/lib/public.js","webpack://structs-webapp/./node_modules/@nats-io/nkeys/lib/util.js","webpack://structs-webapp/./node_modules/@nats-io/nkeys/lib/version.js","webpack://structs-webapp/./node_modules/@nats-io/nuid/lib/nuid.js","webpack://structs-webapp/./node_modules/@noble/curves/_shortw_utils.js","webpack://structs-webapp/./node_modules/@noble/curves/abstract/curve.js","webpack://structs-webapp/./node_modules/@noble/curves/abstract/hash-to-curve.js","webpack://structs-webapp/./node_modules/@noble/curves/abstract/modular.js","webpack://structs-webapp/./node_modules/@noble/curves/abstract/weierstrass.js","webpack://structs-webapp/./node_modules/@noble/curves/secp256k1.js","webpack://structs-webapp/./node_modules/@noble/curves/utils.js","webpack://structs-webapp/./node_modules/@noble/hashes/_md.js","webpack://structs-webapp/./node_modules/@noble/hashes/_u64.js","webpack://structs-webapp/./node_modules/@noble/hashes/crypto.js","webpack://structs-webapp/./node_modules/@noble/hashes/hmac.js","webpack://structs-webapp/./node_modules/@noble/hashes/legacy.js","webpack://structs-webapp/./node_modules/@noble/hashes/pbkdf2.js","webpack://structs-webapp/./node_modules/@noble/hashes/ripemd160.js","webpack://structs-webapp/./node_modules/@noble/hashes/sha2.js","webpack://structs-webapp/./node_modules/@noble/hashes/sha256.js","webpack://structs-webapp/./node_modules/@noble/hashes/sha3.js","webpack://structs-webapp/./node_modules/@noble/hashes/sha512.js","webpack://structs-webapp/./node_modules/@noble/hashes/utils.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/api.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/base/buffer.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/base/index.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/base/node.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/base/reporter.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/constants/der.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/constants/index.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/decoders/der.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/decoders/index.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/decoders/pem.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/encoders/der.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/encoders/index.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/encoders/pem.js","webpack://structs-webapp/./node_modules/asn1.js/node_modules/bn.js/lib/bn.js","webpack://structs-webapp/./node_modules/assert/build/assert.js","webpack://structs-webapp/./node_modules/assert/build/internal/assert/assertion_error.js","webpack://structs-webapp/./node_modules/assert/build/internal/errors.js","webpack://structs-webapp/./node_modules/assert/build/internal/util/comparisons.js","webpack://structs-webapp/./node_modules/base64-js/index.js","webpack://structs-webapp/./node_modules/bech32/index.js","webpack://structs-webapp/./node_modules/bn.js/lib/bn.js","webpack://structs-webapp/./node_modules/brorand/index.js","webpack://structs-webapp/./node_modules/browserify-aes/aes.js","webpack://structs-webapp/./node_modules/browserify-aes/authCipher.js","webpack://structs-webapp/./node_modules/browserify-aes/browser.js","webpack://structs-webapp/./node_modules/browserify-aes/decrypter.js","webpack://structs-webapp/./node_modules/browserify-aes/encrypter.js","webpack://structs-webapp/./node_modules/browserify-aes/ghash.js","webpack://structs-webapp/./node_modules/browserify-aes/incr32.js","webpack://structs-webapp/./node_modules/browserify-aes/modes/cbc.js","webpack://structs-webapp/./node_modules/browserify-aes/modes/cfb.js","webpack://structs-webapp/./node_modules/browserify-aes/modes/cfb1.js","webpack://structs-webapp/./node_modules/browserify-aes/modes/cfb8.js","webpack://structs-webapp/./node_modules/browserify-aes/modes/ctr.js","webpack://structs-webapp/./node_modules/browserify-aes/modes/ecb.js","webpack://structs-webapp/./node_modules/browserify-aes/modes/index.js","webpack://structs-webapp/./node_modules/browserify-aes/modes/ofb.js","webpack://structs-webapp/./node_modules/browserify-aes/streamCipher.js","webpack://structs-webapp/./node_modules/browserify-cipher/browser.js","webpack://structs-webapp/./node_modules/browserify-des/index.js","webpack://structs-webapp/./node_modules/browserify-des/modes.js","webpack://structs-webapp/./node_modules/browserify-rsa/index.js","webpack://structs-webapp/./node_modules/browserify-sign/algos.js","webpack://structs-webapp/./node_modules/browserify-sign/browser/index.js","webpack://structs-webapp/./node_modules/browserify-sign/browser/sign.js","webpack://structs-webapp/./node_modules/browserify-sign/browser/verify.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer/index.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/string_decoder/lib/string_decoder.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer/index.js","webpack://structs-webapp/./node_modules/buffer-xor/index.js","webpack://structs-webapp/./node_modules/buffer/index.js","webpack://structs-webapp/./node_modules/call-bind-apply-helpers/actualApply.js","webpack://structs-webapp/./node_modules/call-bind-apply-helpers/applyBind.js","webpack://structs-webapp/./node_modules/call-bind-apply-helpers/functionApply.js","webpack://structs-webapp/./node_modules/call-bind-apply-helpers/functionCall.js","webpack://structs-webapp/./node_modules/call-bind-apply-helpers/index.js","webpack://structs-webapp/./node_modules/call-bind-apply-helpers/reflectApply.js","webpack://structs-webapp/./node_modules/call-bind/callBound.js","webpack://structs-webapp/./node_modules/call-bind/index.js","webpack://structs-webapp/./node_modules/call-bound/index.js","webpack://structs-webapp/./node_modules/cipher-base/index.js","webpack://structs-webapp/./node_modules/console-browserify/index.js","webpack://structs-webapp/./node_modules/core-util-is/lib/util.js","webpack://structs-webapp/./node_modules/cosmjs-types/binary.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/auth/v1beta1/auth.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/auth/v1beta1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/authz/v1beta1/authz.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/authz/v1beta1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/authz/v1beta1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/bank/v1beta1/bank.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/bank/v1beta1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/bank/v1beta1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/base/abci/v1beta1/abci.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/crypto/ed25519/keys.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/crypto/multisig/keys.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/crypto/multisig/v1beta1/multisig.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/crypto/secp256k1/keys.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/distribution/v1beta1/distribution.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/distribution/v1beta1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/distribution/v1beta1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/feegrant.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/gov/v1/gov.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/gov/v1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/gov/v1beta1/gov.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/gov/v1beta1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/gov/v1beta1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/group/v1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/group/v1/types.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/ics23/v1/proofs.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/mint/v1beta1/mint.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/mint/v1beta1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/slashing/v1beta1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/slashing/v1beta1/slashing.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/staking/v1beta1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/staking/v1beta1/staking.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/staking/v1beta1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/tx/signing/v1beta1/signing.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/tx/v1beta1/service.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/tx/v1beta1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/upgrade/v1beta1/upgrade.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/vesting/v1beta1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/vesting/v1beta1/vesting.js","webpack://structs-webapp/./node_modules/cosmjs-types/google/protobuf/any.js","webpack://structs-webapp/./node_modules/cosmjs-types/google/protobuf/duration.js","webpack://structs-webapp/./node_modules/cosmjs-types/google/protobuf/timestamp.js","webpack://structs-webapp/./node_modules/cosmjs-types/helpers.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/applications/transfer/v1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/applications/transfer/v1/transfer.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/applications/transfer/v1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/core/channel/v1/channel.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/core/channel/v1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/core/channel/v1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/core/client/v1/client.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/core/client/v1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/core/client/v1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/core/commitment/v1/commitment.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/core/connection/v1/connection.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/core/connection/v1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/core/connection/v1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/lightclients/tendermint/v1/tendermint.js","webpack://structs-webapp/./node_modules/cosmjs-types/tendermint/abci/types.js","webpack://structs-webapp/./node_modules/cosmjs-types/tendermint/crypto/keys.js","webpack://structs-webapp/./node_modules/cosmjs-types/tendermint/crypto/proof.js","webpack://structs-webapp/./node_modules/cosmjs-types/tendermint/types/block.js","webpack://structs-webapp/./node_modules/cosmjs-types/tendermint/types/evidence.js","webpack://structs-webapp/./node_modules/cosmjs-types/tendermint/types/params.js","webpack://structs-webapp/./node_modules/cosmjs-types/tendermint/types/types.js","webpack://structs-webapp/./node_modules/cosmjs-types/tendermint/types/validator.js","webpack://structs-webapp/./node_modules/cosmjs-types/tendermint/version/types.js","webpack://structs-webapp/./node_modules/cosmjs-types/utf8.js","webpack://structs-webapp/./node_modules/cosmjs-types/varint.js","webpack://structs-webapp/./node_modules/create-ecdh/browser.js","webpack://structs-webapp/./node_modules/create-ecdh/node_modules/bn.js/lib/bn.js","webpack://structs-webapp/./node_modules/create-hash/browser.js","webpack://structs-webapp/./node_modules/create-hash/md5.js","webpack://structs-webapp/./node_modules/create-hmac/browser.js","webpack://structs-webapp/./node_modules/create-hmac/legacy.js","webpack://structs-webapp/./node_modules/cross-fetch/dist/browser-ponyfill.js","webpack://structs-webapp/./node_modules/crypto-browserify/index.js","webpack://structs-webapp/./node_modules/define-data-property/index.js","webpack://structs-webapp/./node_modules/define-properties/index.js","webpack://structs-webapp/./node_modules/des.js/lib/des.js","webpack://structs-webapp/./node_modules/des.js/lib/des/cbc.js","webpack://structs-webapp/./node_modules/des.js/lib/des/cipher.js","webpack://structs-webapp/./node_modules/des.js/lib/des/des.js","webpack://structs-webapp/./node_modules/des.js/lib/des/ede.js","webpack://structs-webapp/./node_modules/des.js/lib/des/utils.js","webpack://structs-webapp/./node_modules/diffie-hellman/browser.js","webpack://structs-webapp/./node_modules/diffie-hellman/lib/dh.js","webpack://structs-webapp/./node_modules/diffie-hellman/lib/generatePrime.js","webpack://structs-webapp/./node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js","webpack://structs-webapp/./node_modules/dunder-proto/get.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/curve/base.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/curve/edwards.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/curve/index.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/curve/mont.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/curve/short.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/curves.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/ec/index.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/ec/key.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/ec/signature.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/eddsa/index.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/eddsa/key.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/eddsa/signature.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/utils.js","webpack://structs-webapp/./node_modules/elliptic/node_modules/bn.js/lib/bn.js","webpack://structs-webapp/./node_modules/es-define-property/index.js","webpack://structs-webapp/./node_modules/es-errors/eval.js","webpack://structs-webapp/./node_modules/es-errors/index.js","webpack://structs-webapp/./node_modules/es-errors/range.js","webpack://structs-webapp/./node_modules/es-errors/ref.js","webpack://structs-webapp/./node_modules/es-errors/syntax.js","webpack://structs-webapp/./node_modules/es-errors/type.js","webpack://structs-webapp/./node_modules/es-errors/uri.js","webpack://structs-webapp/./node_modules/es-object-atoms/index.js","webpack://structs-webapp/./node_modules/events/events.js","webpack://structs-webapp/./node_modules/evp_bytestokey/index.js","webpack://structs-webapp/./node_modules/for-each/index.js","webpack://structs-webapp/./node_modules/function-bind/implementation.js","webpack://structs-webapp/./node_modules/function-bind/index.js","webpack://structs-webapp/./node_modules/get-intrinsic/index.js","webpack://structs-webapp/./node_modules/get-proto/Object.getPrototypeOf.js","webpack://structs-webapp/./node_modules/get-proto/Reflect.getPrototypeOf.js","webpack://structs-webapp/./node_modules/get-proto/index.js","webpack://structs-webapp/./node_modules/globalthis/implementation.browser.js","webpack://structs-webapp/./node_modules/globalthis/index.js","webpack://structs-webapp/./node_modules/globalthis/polyfill.js","webpack://structs-webapp/./node_modules/globalthis/shim.js","webpack://structs-webapp/./node_modules/gopd/gOPD.js","webpack://structs-webapp/./node_modules/gopd/index.js","webpack://structs-webapp/./node_modules/has-property-descriptors/index.js","webpack://structs-webapp/./node_modules/has-symbols/index.js","webpack://structs-webapp/./node_modules/has-symbols/shams.js","webpack://structs-webapp/./node_modules/has-tostringtag/shams.js","webpack://structs-webapp/./node_modules/hash-base/index.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash/common.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash/hmac.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash/ripemd.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash/sha.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash/sha/1.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash/sha/224.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash/sha/256.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash/sha/384.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash/sha/512.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash/sha/common.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash/utils.js","webpack://structs-webapp/./node_modules/hasown/index.js","webpack://structs-webapp/./node_modules/hmac-drbg/lib/hmac-drbg.js","webpack://structs-webapp/./node_modules/ieee754/index.js","webpack://structs-webapp/./node_modules/inherits/inherits_browser.js","webpack://structs-webapp/./node_modules/is-arguments/index.js","webpack://structs-webapp/./node_modules/is-callable/index.js","webpack://structs-webapp/./node_modules/is-generator-function/index.js","webpack://structs-webapp/./node_modules/is-nan/implementation.js","webpack://structs-webapp/./node_modules/is-nan/index.js","webpack://structs-webapp/./node_modules/is-nan/polyfill.js","webpack://structs-webapp/./node_modules/is-nan/shim.js","webpack://structs-webapp/./node_modules/is-regex/index.js","webpack://structs-webapp/./node_modules/is-typed-array/index.js","webpack://structs-webapp/./node_modules/isarray/index.js","webpack://structs-webapp/./node_modules/isomorphic-ws/browser.js","webpack://structs-webapp/./node_modules/js-sha256/src/sha256.js","webpack://structs-webapp/./node_modules/libsodium-sumo/dist/modules-sumo/libsodium-sumo.js","webpack://structs-webapp/./node_modules/libsodium-wrappers-sumo/dist/modules-sumo/libsodium-wrappers.js","webpack://structs-webapp/./node_modules/math-intrinsics/abs.js","webpack://structs-webapp/./node_modules/math-intrinsics/floor.js","webpack://structs-webapp/./node_modules/math-intrinsics/isNaN.js","webpack://structs-webapp/./node_modules/math-intrinsics/max.js","webpack://structs-webapp/./node_modules/math-intrinsics/min.js","webpack://structs-webapp/./node_modules/math-intrinsics/pow.js","webpack://structs-webapp/./node_modules/math-intrinsics/round.js","webpack://structs-webapp/./node_modules/math-intrinsics/sign.js","webpack://structs-webapp/./node_modules/md5.js/index.js","webpack://structs-webapp/./node_modules/miller-rabin/lib/mr.js","webpack://structs-webapp/./node_modules/miller-rabin/node_modules/bn.js/lib/bn.js","webpack://structs-webapp/./node_modules/minimalistic-assert/index.js","webpack://structs-webapp/./node_modules/minimalistic-crypto-utils/lib/utils.js","webpack://structs-webapp/./node_modules/object-is/implementation.js","webpack://structs-webapp/./node_modules/object-is/index.js","webpack://structs-webapp/./node_modules/object-is/polyfill.js","webpack://structs-webapp/./node_modules/object-is/shim.js","webpack://structs-webapp/./node_modules/object-keys/implementation.js","webpack://structs-webapp/./node_modules/object-keys/index.js","webpack://structs-webapp/./node_modules/object-keys/isArguments.js","webpack://structs-webapp/./node_modules/object.assign/implementation.js","webpack://structs-webapp/./node_modules/object.assign/polyfill.js","webpack://structs-webapp/./node_modules/parse-asn1/asn1.js","webpack://structs-webapp/./node_modules/parse-asn1/certificate.js","webpack://structs-webapp/./node_modules/parse-asn1/fixProc.js","webpack://structs-webapp/./node_modules/parse-asn1/index.js","webpack://structs-webapp/./node_modules/pbkdf2/browser.js","webpack://structs-webapp/./node_modules/pbkdf2/lib/async.js","webpack://structs-webapp/./node_modules/pbkdf2/lib/default-encoding.js","webpack://structs-webapp/./node_modules/pbkdf2/lib/precondition.js","webpack://structs-webapp/./node_modules/pbkdf2/lib/sync-browser.js","webpack://structs-webapp/./node_modules/pbkdf2/lib/to-buffer.js","webpack://structs-webapp/./node_modules/possible-typed-array-names/index.js","webpack://structs-webapp/./node_modules/process-nextick-args/index.js","webpack://structs-webapp/./node_modules/process/browser.js","webpack://structs-webapp/./node_modules/public-encrypt/browser.js","webpack://structs-webapp/./node_modules/public-encrypt/mgf.js","webpack://structs-webapp/./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js","webpack://structs-webapp/./node_modules/public-encrypt/privateDecrypt.js","webpack://structs-webapp/./node_modules/public-encrypt/publicEncrypt.js","webpack://structs-webapp/./node_modules/public-encrypt/withPublic.js","webpack://structs-webapp/./node_modules/public-encrypt/xor.js","webpack://structs-webapp/./node_modules/randombytes/browser.js","webpack://structs-webapp/./node_modules/randomfill/browser.js","webpack://structs-webapp/./node_modules/readable-stream/errors-browser.js","webpack://structs-webapp/./node_modules/readable-stream/lib/_stream_duplex.js","webpack://structs-webapp/./node_modules/readable-stream/lib/_stream_passthrough.js","webpack://structs-webapp/./node_modules/readable-stream/lib/_stream_readable.js","webpack://structs-webapp/./node_modules/readable-stream/lib/_stream_transform.js","webpack://structs-webapp/./node_modules/readable-stream/lib/_stream_writable.js","webpack://structs-webapp/./node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack://structs-webapp/./node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://structs-webapp/./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://structs-webapp/./node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://structs-webapp/./node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack://structs-webapp/./node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://structs-webapp/./node_modules/readable-stream/lib/internal/streams/state.js","webpack://structs-webapp/./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://structs-webapp/./node_modules/ripemd160/index.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/hash-base/index.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/hash-base/to-buffer.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/readable-stream/lib/_stream_duplex.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/readable-stream/lib/_stream_passthrough.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/readable-stream/lib/_stream_readable.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/readable-stream/lib/_stream_transform.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/readable-stream/lib/_stream_writable.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/readable-stream/node_modules/safe-buffer/index.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/readable-stream/readable-browser.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/string_decoder/lib/string_decoder.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/string_decoder/node_modules/safe-buffer/index.js","webpack://structs-webapp/./node_modules/safe-buffer/index.js","webpack://structs-webapp/./node_modules/safe-regex-test/index.js","webpack://structs-webapp/./node_modules/set-function-length/index.js","webpack://structs-webapp/./node_modules/sha.js/hash.js","webpack://structs-webapp/./node_modules/sha.js/index.js","webpack://structs-webapp/./node_modules/sha.js/sha.js","webpack://structs-webapp/./node_modules/sha.js/sha1.js","webpack://structs-webapp/./node_modules/sha.js/sha224.js","webpack://structs-webapp/./node_modules/sha.js/sha256.js","webpack://structs-webapp/./node_modules/sha.js/sha384.js","webpack://structs-webapp/./node_modules/sha.js/sha512.js","webpack://structs-webapp/./node_modules/stream-browserify/index.js","webpack://structs-webapp/./node_modules/string_decoder/lib/string_decoder.js","webpack://structs-webapp/./node_modules/symbol-observable/lib/ponyfill.js","webpack://structs-webapp/./node_modules/symbol-observable/ponyfill.js","webpack://structs-webapp/./node_modules/to-buffer/index.js","webpack://structs-webapp/./node_modules/to-buffer/node_modules/isarray/index.js","webpack://structs-webapp/./js/ts/structs.structs/registry.ts","webpack://structs-webapp/./js/ts/structs.structs/types/cosmos/base/query/v1beta1/pagination.ts","webpack://structs-webapp/./js/ts/structs.structs/types/cosmos/base/v1beta1/coin.ts","webpack://structs-webapp/./js/ts/structs.structs/types/google/protobuf/timestamp.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/address.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/agreement.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/allocation.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/events.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/fleet.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/genesis.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/grid.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/guild.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/infusion.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/keys.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/packet.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/params.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/permission.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/planet.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/player.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/provider.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/query.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/reactor.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/struct.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/substation.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/tx.ts","webpack://structs-webapp/./node_modules/tweetnacl/nacl-fast.js","webpack://structs-webapp/./node_modules/typed-array-buffer/index.js","webpack://structs-webapp/./node_modules/util-deprecate/browser.js","webpack://structs-webapp/./node_modules/util/support/isBufferBrowser.js","webpack://structs-webapp/./node_modules/util/support/types.js","webpack://structs-webapp/./node_modules/util/util.js","webpack://structs-webapp/./node_modules/vm-browserify/index.js","webpack://structs-webapp/./node_modules/which-typed-array/index.js","webpack://structs-webapp/./node_modules/xstream/index.js","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/asn1.js/node_modules/bn.js/lib|buffer","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/bn.js/lib|buffer","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/brorand|crypto","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams|util","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/browserify-sign/node_modules/readable-stream/lib|util","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/create-ecdh/node_modules/bn.js/lib|buffer","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/diffie-hellman/node_modules/bn.js/lib|buffer","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/elliptic/node_modules/bn.js/lib|buffer","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/js-sha256/src|buffer","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/js-sha256/src|crypto","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/libsodium-sumo/dist/modules-sumo|fs","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/libsodium-sumo/dist/modules-sumo|path","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/miller-rabin/node_modules/bn.js/lib|buffer","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/public-encrypt/node_modules/bn.js/lib|buffer","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/readable-stream/lib/internal/streams|util","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/readable-stream/lib|util","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/ripemd160/node_modules/readable-stream/lib/internal/streams|util","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/ripemd160/node_modules/readable-stream/lib|util","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/tweetnacl|crypto","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/create.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/descriptors.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/from-binary.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/is-message.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/proto-int64.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/reflect/error.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/reflect/guard.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/reflect/reflect-check.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/reflect/reflect.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/reflect/scalar.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/reflect/unsafe.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/to-binary.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/wire/base64-encoding.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/wire/binary-encoding.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/wire/index.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/wire/size-delimited.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/wire/text-encoding.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/wire/text-format.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/wire/varint.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/wkt/wrappers.js","webpack://structs-webapp/./node_modules/available-typed-arrays/index.js","webpack://structs-webapp/webpack/bootstrap","webpack://structs-webapp/webpack/runtime/amd options","webpack://structs-webapp/webpack/runtime/async module","webpack://structs-webapp/webpack/runtime/compat get default export","webpack://structs-webapp/webpack/runtime/define property getters","webpack://structs-webapp/webpack/runtime/global","webpack://structs-webapp/webpack/runtime/hasOwnProperty shorthand","webpack://structs-webapp/webpack/runtime/make namespace object","webpack://structs-webapp/webpack/runtime/node module decorator","webpack://structs-webapp/webpack/before-startup","webpack://structs-webapp/webpack/startup","webpack://structs-webapp/webpack/after-startup"],"sourcesContent":["import {JsonAjaxer} from \"../framework/JsonAjaxer\";\nimport {GuildFactory} from \"../factories/GuildFactory\";\nimport {PlayerFactory} from \"../factories/PlayerFactory\";\nimport {GuildAPIResponseFactory} from \"../factories/GuildAPIResponseFactory\";\nimport {GuildAPIError} from \"../errors/GuildAPIError\";\nimport {GuildAPICacheItemDTO} from \"../dtos/GuildAPICacheItemDTO\";\nimport {InfusionFactory} from \"../factories/InfusionFactory\";\nimport {PlayerOreStatsFactory} from \"../factories/PlayerOreStatsFactory\";\nimport {PlanetFactory} from \"../factories/PlanetFactory\";\nimport {PlayerAddressFactory} from \"../factories/PlayerAddressFactory\";\nimport {Guild} from \"../models/Guild\";\nimport {ActivationCodeInfoDTO} from \"../dtos/ActivationCodeInfoDTO\";\nimport {TransactionFactory} from \"../factories/TransactionFactory\";\nimport {PlayerSearchResultDTOFactory} from \"../factories/PlayerSearchResultDTOFactory\";\nimport {GuildPowerStatsDTOFactory} from \"../factories/GuildPowerStatsDTOFactory\";\nimport {GuildSearchResultDTOFactory} from \"../factories/GuildSearchResultDTOFactory\";\nimport {PlanetaryShieldInfoDTOFactory} from \"../factories/PlanetaryShieldInfoDTOFactory\";\nimport {PlanetRaidFactory} from \"../factories/PlanetRaidFactory\";\nimport {StructTypeFactory} from \"../factories/StructTypeFactory\";\nimport {StructFactory} from \"../factories/StructFactory\";\nimport {FleetFactory} from \"../factories/FleetFactory\";\nimport {WorkFactory} from \"../factories/WorkFactory\";\nimport {Struct} from \"../models/Struct\";\nimport {SettingFactory} from \"../factories/SettingFactory\";\nimport {Settings} from \"../models/Settings\";\nimport {Player} from \"../models/Player\";\nimport {Infusion} from \"../models/Infusion\";\nimport {Fleet} from \"../models/Fleet\";\n\nexport class GuildAPI {\n\n constructor() {\n this.apiUrl = '/api';\n this.ajax = new JsonAjaxer();\n this.guildAPIResponseFactory = new GuildAPIResponseFactory();\n this.guildFactory = new GuildFactory();\n this.playerFactory = new PlayerFactory();\n this.infusionFactory = new InfusionFactory();\n this.playerOreStatsFactory = new PlayerOreStatsFactory();\n this.planetFactory = new PlanetFactory();\n this.playerAddressFactory = new PlayerAddressFactory();\n this.transactionFactory = new TransactionFactory();\n this.playerSearchResultDTOFactory = new PlayerSearchResultDTOFactory();\n this.guildPowerStatsDTOFactory = new GuildPowerStatsDTOFactory();\n this.guildSearchResultDTOFactory = new GuildSearchResultDTOFactory();\n this.planetaryShieldInfoDTOFactory = new PlanetaryShieldInfoDTOFactory();\n this.planetRaidFactory = new PlanetRaidFactory();\n this.structTypeFactory = new StructTypeFactory();\n this.structFactory = new StructFactory();\n this.fleetFactory = new FleetFactory();\n this.workFactory = new WorkFactory();\n this.settingFactory = new SettingFactory();\n\n }\n\n /**\n * @param {string} key\n * @param {*} value\n */\n cacheItem(key, value) {\n const item = new GuildAPICacheItemDTO(value);\n localStorage.setItem(key, JSON.stringify(item));\n }\n\n /**\n * @param {string} key\n * @param {number} ttl\n * @return {null|*}\n */\n getCachedItem(key, ttl = 1000 * 60 * 60) {\n let item = localStorage.getItem(key);\n\n if (item === null) {\n return null;\n }\n\n item = JSON.parse(item);\n\n if (item.timestamp + ttl < Date.now()) {\n localStorage.removeItem(key);\n return null;\n }\n\n return item.value;\n }\n\n /**\n * @param {string} playerId\n * @param {string} address\n * @return {string}\n */\n buildAddressRegisterMessage(playerId, address) {\n return `PLAYER${playerId}ADDRESS${address}`;\n }\n\n /**\n * @param {string} guildId\n * @param {string} address\n * @param {number} nonce\n * @return {string}\n */\n buildGuildMembershipJoinProxyMessage(guildId, address, nonce) {\n return `GUILD${guildId}ADDRESS${address}NONCE${nonce}`;\n }\n\n /**\n *\n * @param {string} guildId\n * @param {string} address\n * @param {string} unixTimestamp\n * @return {string}\n */\n buildLoginMessage(guildId, address, unixTimestamp) {\n return `LOGIN_GUILD${guildId}ADDRESS${address}DATETIME${unixTimestamp}`;\n }\n\n /**\n * @param {GuildAPIResponse} guildAPIResponse\n */\n handleResponseFailure(guildAPIResponse) {\n if (!guildAPIResponse.success) {\n throw new GuildAPIError(`Guild API request was unsuccessful. See network request for details.`);\n }\n }\n\n /**\n * @param {string} requestUrl\n * @param {string} dataProperty\n * @return {Promise<*>}\n */\n async getSingleDataValue(requestUrl, dataProperty) {\n const jsonResponse = await this.ajax.get(requestUrl);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n\n if (response.data === null\n || response.data === undefined\n || !response.data.hasOwnProperty(dataProperty)\n ) {\n throw new GuildAPIError(`Data does not contain required property (${dataProperty}).`);\n }\n\n return response.data[dataProperty];\n }\n\n /**\n * @return {Promise}\n */\n async getThisGuild() {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/guild/this`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.guildFactory.make(response.data);\n }\n\n /**\n * @return {Promise}\n */\n async getTimestamp() {\n const timestamp = await this.getSingleDataValue(`${this.apiUrl}/timestamp`, 'unix_timestamp');\n return `${timestamp}`;\n }\n\n /**\n * @param {SignupRequestDTO} signupRequestDTO\n * @return {Promise}\n */\n async signup(signupRequestDTO) {\n const jsonResponse = await this.ajax.post(`${this.apiUrl}/auth/signup`, signupRequestDTO);\n return this.guildAPIResponseFactory.make(jsonResponse);\n }\n\n /**\n * @param {LoginRequestDTO} loginRequestDTO\n * @return {GuildAPIResponse}\n */\n async login(loginRequestDTO) {\n const jsonResponse = await this.ajax.post(`${this.apiUrl}/auth/login`, loginRequestDTO);\n return this.guildAPIResponseFactory.make(jsonResponse);\n }\n\n async logout() {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/auth/logout`);\n return this.guildAPIResponseFactory.make(jsonResponse);\n }\n\n /**\n * @param {string} playerId\n * @return {Promise}\n */\n async getPlayer(playerId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/player/${playerId}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.playerFactory.make(response.data);\n }\n\n /**\n * @param {string} playerId\n * @return {Promise}\n */\n async getPlayerLastActionBlockHeight(playerId) {\n const lastActionBlockHeight = await this.getSingleDataValue(`${this.apiUrl}/player/${playerId}/action/last/block/height`, 'last_action_block_height');\n return parseInt(lastActionBlockHeight);\n }\n\n /**\n * @param {string} playerId\n * @return {string}\n */\n getPlayerAddressCountCacheKey(playerId) {\n return `getPlayerAddressCount::${playerId}`;\n }\n\n /**\n * @param {string} playerId\n * @param {boolean} forceRefresh\n * @return {Promise}\n */\n async getPlayerAddressCount(playerId, forceRefresh = false) {\n let count = this.getCachedItem(this.getPlayerAddressCountCacheKey(playerId));\n if (count === null || forceRefresh) {\n count = await this.getSingleDataValue(`${this.apiUrl}/player-address/count/player/${playerId}`, 'count');\n this.cacheItem(this.getPlayerAddressCountCacheKey(playerId), count);\n }\n return parseInt(count);\n }\n\n /**\n * @param {string} playerId\n * @return {Promise}\n */\n async getInfusionByPlayerId(playerId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/infusion/player/${playerId}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.infusionFactory.make(response.data);\n }\n\n /**\n * @param {string} playerId\n * @return {string}\n */\n getPlayerOreStatsCacheKey(playerId) {\n return `getPlayerOreStats::${playerId}`;\n }\n\n /**\n * @param {string} playerId\n * @param {boolean} forceRefresh\n * @return {Promise}\n */\n async getPlayerOreStats(playerId, forceRefresh = false) {\n let response = this.getCachedItem(this.getPlayerOreStatsCacheKey(playerId));\n if (response === null || forceRefresh) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/player/${playerId}/ore/stats`);\n response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n this.cacheItem(this.getPlayerOreStatsCacheKey(playerId), response);\n }\n return this.playerOreStatsFactory.make(response.data, playerId);\n }\n\n /**\n * @param {string} playerId\n * @return {string}\n */\n getPlayerPlanetsCompletedCacheKey(playerId) {\n return `getPlayerPlanetsCompleted::${playerId}`;\n }\n\n /**\n * @param {string} playerId\n * @param {boolean} forceRefresh\n * @return {Promise}\n */\n async getPlayerPlanetsCompleted(playerId, forceRefresh = false) {\n let count = this.getCachedItem(this.getPlayerPlanetsCompletedCacheKey(playerId));\n if (count === null || forceRefresh) {\n count = await this.getSingleDataValue(`${this.apiUrl}/player/${playerId}/planet/completed`, 'count');\n this.cacheItem(this.getPlayerPlanetsCompletedCacheKey(playerId), count);\n }\n return parseInt(count);\n }\n\n /**\n * @param {string} playerId\n * @return {string}\n */\n getPlayerRaidsLaunchedCacheKey(playerId) {\n return `getPlayerRaidsLaunched::${playerId}`;\n }\n\n /**\n * @param {string} playerId\n * @param {boolean} forceRefresh\n * @return {Promise}\n */\n async getPlayerRaidsLaunched(playerId, forceRefresh = false) {\n let count = this.getCachedItem(this.getPlayerRaidsLaunchedCacheKey(playerId));\n if (count === null || forceRefresh) {\n count = await this.getSingleDataValue(`${this.apiUrl}/player/${playerId}/raid/launched`, 'count');\n this.cacheItem(this.getPlayerRaidsLaunchedCacheKey(playerId), count);\n }\n return parseInt(count);\n }\n\n /**\n * @param {string} planetId\n * @return {Promise}\n */\n async getPlanet(planetId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/planet/${planetId}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.planetFactory.make(response.data);\n }\n\n /**\n * @param {string} playerId\n * @return {Promise}\n */\n async getPlayerAddressList(playerId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/player-address/player/${playerId}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.playerAddressFactory.parseList(response.data);\n }\n\n /**\n * @param {AddPlayerAddressMetaRequestDTO} addPlayerAddressMetaRequestDTO\n * @return {Promise}\n */\n async addPlayerAddressMeta(addPlayerAddressMetaRequestDTO) {\n const jsonResponse = await this.ajax.post(`${this.apiUrl}/player-address/meta`, addPlayerAddressMetaRequestDTO);\n return this.guildAPIResponseFactory.make(jsonResponse);\n }\n\n /**\n * @param {CreateActivationCodeRequestDTO} createActivationCodeRequestDTO\n * @return {Promise}\n */\n async createActivationCode(createActivationCodeRequestDTO) {\n const jsonResponse = await this.ajax.post(`${this.apiUrl}/player-address/activation-code`, createActivationCodeRequestDTO);\n return this.guildAPIResponseFactory.make(jsonResponse);\n }\n\n /**\n * @param {string} activationCode\n * @return {Promise}\n */\n async getActivationCodeInfo(activationCode) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/auth/activation-code/${activationCode}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n\n if (response.data === null) {\n return null;\n }\n\n const info = new ActivationCodeInfoDTO();\n info.code = activationCode;\n Object.assign(info, response.data);\n\n return info;\n }\n\n /**\n * @param {AddPendingAddressRequestDTO} addPendingAddressRequestDTO\n * @return {Promise}\n */\n async addPendingAddress(addPendingAddressRequestDTO) {\n const jsonResponse = await this.ajax.post(`${this.apiUrl}/auth/player-address`, addPendingAddressRequestDTO);\n return this.guildAPIResponseFactory.make(jsonResponse);\n }\n\n /**\n * @param {SetPendingAddressPermissionsRequestDTO} setPendingAddressPermissionsRequestDTO\n * @return {Promise}\n */\n async setPendingAddressPermissions(setPendingAddressPermissionsRequestDTO) {\n const jsonResponse = await this.ajax.put(`${this.apiUrl}/player-address/pending/permissions`, setPendingAddressPermissionsRequestDTO);\n return this.guildAPIResponseFactory.make(jsonResponse);\n }\n\n /**\n * @param {string} activationCode\n * @return {Promise}\n */\n async deleteActivationCode(activationCode) {\n const jsonResponse = await this.ajax.delete(`${this.apiUrl}/player-address/activation-code/${activationCode}`);\n return this.guildAPIResponseFactory.make(jsonResponse);\n }\n\n /**\n * @param address\n * @param guildId\n * @return {Promise}\n */\n async getPlayerIdByAddressAndGuild(address, guildId) {\n return await this.getSingleDataValue(\n `${this.apiUrl}/auth/player-address/${address}/guild/${guildId}/player-id`,\n 'player_id'\n );\n }\n\n /**\n * @param {string} address\n * @return {Promise}\n */\n async getPlayerAddress(address) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/player-address/${address}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.playerAddressFactory.make(response.data);\n }\n\n /**\n * @param {SetAddressPermissionsRequestDTO} setAddressPermissionsRequestDTO\n * @return {Promise}\n */\n async setAddressPermissions(setAddressPermissionsRequestDTO) {\n const jsonResponse = await this.ajax.put(`${this.apiUrl}/player-address/permissions`, setAddressPermissionsRequestDTO);\n return this.guildAPIResponseFactory.make(jsonResponse);\n }\n\n /**\n * @param {string} playerId\n * @param {number} page\n * @return {Promise}\n */\n async getTransactions(playerId, page) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/ledger/player/${playerId}/page/${page}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.transactionFactory.parseList(response.data);\n }\n\n /**\n * @param {string} playerId\n * @return {Promise}\n */\n async countTransactions(playerId) {\n const count = await this.getSingleDataValue(`${this.apiUrl}/ledger/player/${playerId}/count`, 'count');\n return parseInt(count);\n }\n\n /**\n * @param {number} txId\n * @return {Promise}\n */\n async getTransaction(txId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/ledger/${txId}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.transactionFactory.make(response.data);\n }\n\n /**\n * @return {Promise}\n */\n async getGuildFilterList() {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/guild/name`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.guildFactory.parseList(response.data);\n }\n\n /**\n * @param transferSearchRequestDTO\n * @return {Promise}\n */\n async transferSearch(transferSearchRequestDTO) {\n const searchStringParam = `search_string=${transferSearchRequestDTO.search_string}`;\n const guildIdParam = transferSearchRequestDTO.guild_id ? `&guild_id=${transferSearchRequestDTO.guild_id}` : '';\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/player/transfer/search?${searchStringParam}${guildIdParam}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.playerSearchResultDTOFactory.parseList(response.data);\n }\n\n /**\n * @return {string}\n */\n getCountGuildMembersCacheKey(guildId) {\n return `countGuildMembers::${guildId}`;\n }\n\n /**\n * @param {string} guildId\n * @param {boolean} forceRefresh\n * @return {Promise}\n */\n async countGuildMembers(guildId, forceRefresh = false) {\n let count = this.getCachedItem(this.getCountGuildMembersCacheKey(guildId));\n if (count === null || forceRefresh) {\n count = await this.getSingleDataValue(`${this.apiUrl}/guild/${guildId}/members/count`, 'count');\n this.cacheItem(this.getCountGuildMembersCacheKey(guildId), count);\n }\n return parseInt(count);\n }\n\n /**\n * @return {string}\n */\n getCountGuildsCacheKey() {\n return `countGuilds`;\n }\n\n /**\n * @return {Promise}\n */\n async countGuilds(forceRefresh = false) {\n let count = this.getCachedItem(this.getCountGuildsCacheKey());\n if (count === null || forceRefresh) {\n count = await this.getSingleDataValue(`${this.apiUrl}/guild/count`, 'count');\n this.cacheItem(this.getCountGuildsCacheKey(), count);\n }\n return parseInt(count);\n }\n\n /**\n * @param {string} guildId\n * @return {Promise}\n */\n async getGuild(guildId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/guild/${guildId}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.guildFactory.make(response.data);\n }\n\n /**\n * @param {string} guildId\n * @return {string}\n */\n getGuildPowerStatsCacheKey(guildId) {\n return `getGuildPowerStats::${guildId}`;\n }\n\n /**\n * @param {string} guildId\n * @param {boolean} forceRefresh\n * @return {Promise}\n */\n async getGuildPowerStats(guildId, forceRefresh = false) {\n let stats = this.getCachedItem(this.getGuildPowerStatsCacheKey(guildId));\n if (stats === null || forceRefresh) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/guild/${guildId}/power/stats`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n stats = this.guildPowerStatsDTOFactory.make(response.data);\n this.cacheItem(this.getGuildPowerStatsCacheKey(guildId), stats);\n }\n return stats;\n }\n\n /**\n * @param {string} guildId\n * @return {string}\n */\n countGuildPlanetsCompletedCacheKey(guildId) {\n return `countGuildPlanetsCompleted::${guildId}`;\n }\n\n /**\n * @return {Promise}\n */\n async countGuildPlanetsCompleted(guildId, forceRefresh = false) {\n let count = this.getCachedItem(this.countGuildPlanetsCompletedCacheKey(guildId));\n if (count === null || forceRefresh) {\n count = await this.getSingleDataValue(`${this.apiUrl}/guild/${guildId}/planet/complete/count`, 'count');\n this.cacheItem(this.countGuildPlanetsCompletedCacheKey(guildId), count);\n }\n return parseInt(count);\n }\n\n /**\n * @param {string} guildId\n * @return {Promise}\n */\n async getGuildRoster(guildId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/guild/${guildId}/roster`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.playerSearchResultDTOFactory.parseList(response.data);\n }\n\n /**\n * @return {string}\n */\n getGuildsDirectoryCacheKey() {\n return `getGuildsDirectory`;\n }\n\n /**\n * @param {boolean} forceRefresh\n * @return {Promise}\n */\n async getGuildsDirectory(forceRefresh = false) {\n let guilds = this.getCachedItem(this.getGuildsDirectoryCacheKey());\n if (guilds === null || forceRefresh) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/guild/directory`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n guilds = this.guildSearchResultDTOFactory.parseList(response.data);\n this.cacheItem(this.getGuildsDirectoryCacheKey(), guilds);\n }\n return guilds;\n }\n\n /**\n * @param {string} planetId\n * @return {Promise}\n */\n async getPlanetaryShieldInfo(planetId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/planet/${planetId}/shield`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.planetaryShieldInfoDTOFactory.make(response.data);\n }\n\n /**\n * @param {RaidSearchRequestDTO} raidSearchRequestDTO\n * @return {Promise}\n */\n async raidSearch(raidSearchRequestDTO) {\n const searchStringParam = raidSearchRequestDTO.search_string ? `search_string=${raidSearchRequestDTO.search_string}` : '';\n const guildIdParam = raidSearchRequestDTO.guild_id ? `&guild_id=${raidSearchRequestDTO.guild_id}` : '';\n const minOreParam = `&min_ore=${raidSearchRequestDTO.min_ore}`;\n const fleetAwayOnlyParam = `&fleet_away_only=${raidSearchRequestDTO.fleet_away_only ? 1 : 0}`;\n const pageParam = `&page=${raidSearchRequestDTO.page}`;\n\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/player/raid/search?${searchStringParam}${guildIdParam}${minOreParam}${fleetAwayOnlyParam}${pageParam}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.playerSearchResultDTOFactory.parseList(response.data);\n }\n\n /**\n * @param {RaidSearchRequestDTO} raidSearchRequestDTO\n * @return {Promise}\n */\n async raidSearchCount(raidSearchRequestDTO) {\n const count_only = `count_only=1`;\n const searchStringParam = raidSearchRequestDTO.search_string ? `&search_string=${raidSearchRequestDTO.search_string}` : '';\n const guildIdParam = raidSearchRequestDTO.guild_id ? `&guild_id=${raidSearchRequestDTO.guild_id}` : '';\n const minOreParam = `&min_ore=${raidSearchRequestDTO.min_ore}`;\n const fleetAwayOnlyParam = `&fleet_away_only=${raidSearchRequestDTO.fleet_away_only ? 1 : 0}`;\n\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/player/raid/search?${count_only}${searchStringParam}${guildIdParam}${minOreParam}${fleetAwayOnlyParam}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n\n return (response.data.hasOwnProperty('length') && response.data.length === 1 && response.data[0].hasOwnProperty('count'))\n ? parseInt(response.data[0].count)\n : 0;\n }\n\n /**\n * @param {string} planetId\n * @return {Promise}\n */\n async getActivePlanetRaidByPlanetId(planetId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/planet/${planetId}/raid/active`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.planetRaidFactory.make(response.data);\n }\n\n /**\n * @param {string} fleetId\n * @return {Promise}\n */\n async getActivePlanetRaidByFleetId(fleetId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/planet/raid/active/fleet/${fleetId}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.planetRaidFactory.make(response.data);\n }\n\n /**\n * @return {string}\n */\n getStructTypesCacheKey() {\n return `getStructTypes`;\n }\n\n /**\n * @param {boolean} forceRefresh\n * @return {Promise}\n */\n async getStructTypes(forceRefresh = false) {\n let structTypeResponseData = this.getCachedItem(this.getStructTypesCacheKey(), 1000 * 60 * 60 * 24);\n if (structTypeResponseData === null || forceRefresh) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/struct/type`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n structTypeResponseData = response.data;\n this.cacheItem(this.getStructTypesCacheKey(), structTypeResponseData);\n }\n return this.structTypeFactory.parseList(structTypeResponseData);\n }\n\n /**\n * @param {string} playerId\n * @return {Promise}\n */\n async getStructsByPlayerId(playerId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/struct/player/${playerId}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.structFactory.parseList(response.data);\n }\n\n /**\n * @param {string} playerId\n * @return {Promise}\n */\n async getFleetByPlayerId(playerId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/fleet/player/${playerId}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.fleetFactory.make(response.data);\n }\n\n /**\n * @param playerId\n * @return {Promise}\n */\n async getWorkByPlayerId(playerId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/work/player/${playerId}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.workFactory.parseList(response.data);\n }\n\n /**\n * @param {string} structId\n * @return {Promise}\n */\n async getStruct(structId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/struct/${structId}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.structFactory.make(response.data);\n }\n\n /**\n * @return {Promise}\n */\n async getSettings() {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/setting`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.settingFactory.parseList(response.data);\n }\n}","export class GuildAPIResponse {\n\n constructor(\n success = false,\n errors = [],\n data = null\n ) {\n this.success = success;\n this.errors = errors;\n this.data = data;\n }\n}","import {SUICheatsheetContentBuilder} from \"../sui/SUICheatsheetContentBuilder\";\nimport {\n STRUCT_DESCRIPTIONS,\n STRUCT_EQUIPMENT_ICON_MAP,\n STRUCT_WEAPON_CONTROL_LABELS\n} from \"../constants/StructConstants\";\nimport {AMBIT_ORDER} from \"../constants/Ambits\";\nimport {StructType} from \"../models/StructType\";\nimport {NumberFormatter} from \"../util/NumberFormatter\";\n\nexport class CheatsheetContentBuilder extends SUICheatsheetContentBuilder {\n\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super();\n this.gameState = gameState;\n this.numberFormatter = new NumberFormatter();\n }\n\n /**\n * @param {StructType} structType\n * @return {string[]}\n */\n getPassiveWeaponryAmbits(structType) {\n const ambits = new Set([\n ...structType.primary_weapon_ambits_array,\n ...structType.secondary_weapon_ambits_array\n ]);\n return [...ambits].sort((a, b) => {\n const indexA = AMBIT_ORDER.indexOf(a.toUpperCase());\n const indexB = AMBIT_ORDER.indexOf(b.toUpperCase());\n return indexA - indexB;\n });\n }\n\n /**\n * @param {string} weaponType\n * @param {number} weaponDamage\n * @param {string} weaponLabel\n * @param {string[]} weaponAmbits\n * @param {string} notEquippedValue\n * @return {string}\n */\n renderWeaponProperty(\n weaponType,\n weaponLabel,\n weaponDamage,\n weaponAmbits,\n notEquippedValue\n ) {\n if (!weaponType || weaponType === notEquippedValue) {\n return '';\n }\n\n const iconClass = STRUCT_EQUIPMENT_ICON_MAP[weaponType];\n const ambitIcons = weaponAmbits.map(ambit => \n ``\n ).join('');\n\n return `\n
\n
\n \n
\n
\n
${weaponLabel}
\n
\n ${weaponDamage} DMG\n ${ambitIcons}\n
\n
\n
\n `;\n }\n\n /**\n * @param {StructType} structType\n * @return {string}\n */\n renderPassiveWeaponProperty(structType) {\n if (!structType.passive_weaponry || structType.passive_weaponry === 'noPassiveWeaponry') {\n return '';\n }\n\n const iconClass = STRUCT_EQUIPMENT_ICON_MAP[structType.passive_weaponry];\n const weaponAmbits = this.getPassiveWeaponryAmbits(structType);\n const possibleAmbitsLower = structType.possible_ambit_array.map(a => a.toLowerCase());\n\n let damageHTML = '';\n\n if (structType.counter_attack_same_ambit > structType.counter_attack) {\n // Separate ambits into regular and same-ambit groups\n const regularAmbits = weaponAmbits.filter(a => !possibleAmbitsLower.includes(a.toLowerCase()));\n const sameAmbits = weaponAmbits.filter(a => possibleAmbitsLower.includes(a.toLowerCase()));\n\n if (regularAmbits.length > 0) {\n const regularIcons = regularAmbits.map(ambit =>\n ``\n ).join('');\n damageHTML += `${structType.counter_attack} DMG ${regularIcons} `;\n }\n\n if (sameAmbits.length > 0) {\n const sameIcons = sameAmbits.map(ambit =>\n ``\n ).join('');\n damageHTML += `${structType.counter_attack_same_ambit} DMG ${sameIcons}`;\n }\n } else {\n const ambitIcons = weaponAmbits.map(ambit =>\n ``\n ).join('');\n damageHTML = `${structType.counter_attack} DMG ${ambitIcons}`;\n }\n\n return `\n
\n
\n \n
\n
\n
${structType.passive_weaponry_label}
\n
\n ${damageHTML}\n
\n
\n
\n `;\n }\n\n /**\n * @param {StructType} structType\n * @return {string}\n */\n renderUnitDefensesProperty(structType) {\n if (structType.unit_defenses === 'noUnitDefenses') {\n return '';\n }\n\n const iconClass = STRUCT_EQUIPMENT_ICON_MAP[structType.unit_defenses];\n\n return `\n
\n
\n \n
\n
\n
${structType.unit_defenses_label}
\n
\n
\n `;\n }\n\n /**\n * @param {StructType} structType\n * @return {string}\n */\n renderPlanetaryDefensesProperty(structType) {\n switch (structType.planetary_defenses) {\n case 'noPlanetaryDefense':\n return '';\n case 'defensiveCannon':\n return this.renderWeaponProperty(\n structType.planetary_defenses,\n structType.planetary_defenses_label,\n 1,\n AMBIT_ORDER.map(ambit => ambit.toLowerCase()),\n 'noPlanetaryDefense'\n );\n default:\n const iconClass = STRUCT_EQUIPMENT_ICON_MAP[structType.planetary_defenses];\n\n return `\n
\n
\n \n
\n
\n
${structType.planetary_defenses_label}
\n
\n
\n `;\n }\n }\n\n /**\n * @param {StructType} structType\n * @return {string}\n */\n renderOreReserveDefensesProperty(structType) {\n if (structType.ore_reserve_defenses === 'noOreReserveDefenses') {\n return '';\n }\n\n const iconClass = STRUCT_EQUIPMENT_ICON_MAP[structType.ore_reserve_defenses];\n const planetaryShieldContribution = this.numberFormatter.format(structType.planetary_shield_contribution);\n\n return `\n
\n
\n \n
\n
\n
${structType.ore_reserve_defenses_label}
\n
+${planetaryShieldContribution} Planetary Defense
\n
\n
\n `;\n }\n\n /**\n * @param {StructType} structType\n * @return {string}\n */\n renderPowerGenerationProperty(structType) {\n if (structType.power_generation === 'noPowerGeneration') {\n return '';\n }\n\n const iconClass = STRUCT_EQUIPMENT_ICON_MAP[structType.power_generation];\n\n return `\n
\n
\n \n
\n
\n
Consume Alpha
\n
\n
\n
\n
\n \n
\n
\n
+${structType.generating_rate} KW Per Alpha
\n
\n
\n `;\n }\n\n /**\n * @param {StructType} structType\n * @param {object} dataset\n * @return {string}\n */\n buildStructCheatsheet(structType, dataset = {}) {\n let propertiesHTML = '';\n\n propertiesHTML += this.renderWeaponProperty(\n structType.primary_weapon,\n structType.primary_weapon_label,\n structType.primary_weapon_damage,\n structType.primary_weapon_ambits_array,\n 'noActiveWeaponry'\n );\n\n propertiesHTML += this.renderWeaponProperty(\n structType.secondary_weapon,\n structType.secondary_weapon_label,\n structType.secondary_weapon_damage,\n structType.secondary_weapon_ambits_array,\n 'noActiveWeaponry'\n );\n\n propertiesHTML += this.renderPassiveWeaponProperty(structType);\n\n propertiesHTML += this.renderUnitDefensesProperty(structType);\n\n propertiesHTML += this.renderPlanetaryDefensesProperty(structType);\n\n propertiesHTML += this.renderOreReserveDefensesProperty(structType);\n\n propertiesHTML += this.renderPowerGenerationProperty(structType);\n\n return this.renderer.renderContentHTML(\n `${structType.default_cosmetic_model_number} ${structType.class}`,\n structType.build_charge,\n structType.build_draw,\n STRUCT_DESCRIPTIONS[structType.type],\n dataset.contextualMsg ? dataset.contextualMsg : '',\n propertiesHTML || null\n );\n }\n\n /**\n *\n * @param {string} selectedProperty\n * @param {string} weaponType\n * @param {string} weaponControl\n * @param {number} weaponCharge\n * @param {number} weaponDamage\n * @param {number} weaponShots\n * @param {string[]} weaponAmbitsArray\n * @return {string}\n */\n renderPropertiesForWeapon(\n selectedProperty,\n weaponType,\n weaponControl,\n weaponCharge,\n weaponDamage,\n weaponShots,\n weaponAmbitsArray\n ) {\n if (!selectedProperty || (selectedProperty !== 'primary_weapon' && selectedProperty !== 'secondary_weapon')) {\n return '';\n }\n\n const iconClass = STRUCT_EQUIPMENT_ICON_MAP[weaponType];\n const weaponControlLabel = STRUCT_WEAPON_CONTROL_LABELS[weaponControl];\n let weaponDamageLabel = (weaponShots > 1)\n ? `${weaponDamage}-${weaponDamage * weaponShots} DMG`\n :`${weaponDamage} DMG`;\n const ambitIcons = weaponAmbitsArray.map(ambit =>\n ``\n ).join('');\n\n return `\n
\n
\n \n
\n
\n
${weaponControlLabel}
\n
\n
\n
\n
\n \n
\n
\n
\n ${weaponDamageLabel}\n
\n
\n
\n
\n
\n \n
\n
\n
\n ${ambitIcons}\n
\n
\n
\n `;\n }\n\n /**\n * @param {string} selectedProperty\n * @param {StructType} structType\n * @return {string}\n */\n renderPropertiesForPassiveWeaponry(selectedProperty, structType) {\n if (!selectedProperty || selectedProperty !== 'passive_weaponry') {\n return '';\n }\n\n if (!structType.passive_weaponry || structType.passive_weaponry === 'noPassiveWeaponry') {\n return '';\n }\n\n const weaponAmbits = this.getPassiveWeaponryAmbits(structType);\n\n let damageHTML = `${structType.counter_attack} DMG`;\n\n if (structType.counter_attack_same_ambit > structType.counter_attack) {\n damageHTML += `${structType.counter_attack}-${structType.counter_attack_same_ambit} DMG`;\n }\n\n return `\n
\n
\n \n
\n
\n
\n ${damageHTML}\n
\n
\n
\n
\n
\n \n
\n
\n
\n ${weaponAmbits.map(ambit => ``).join('')}\n
\n
\n
\n `;\n }\n\n /**\n * @param {string} selectedProperty\n * @param {StructType} structType\n * @return {string}\n */\n renderPropertiesForOreReserveDefenses(selectedProperty, structType) {\n if (!selectedProperty || selectedProperty !== 'ore_reserve_defenses') {\n return '';\n }\n\n if (structType.ore_reserve_defenses === 'noOreReserveDefenses') {\n return '';\n }\n\n const iconClass = STRUCT_EQUIPMENT_ICON_MAP[structType.ore_reserve_defenses];\n const planetaryShieldContribution = this.numberFormatter.format(structType.planetary_shield_contribution);\n\n return `\n
\n
\n \n
\n
\n
${structType.ore_reserve_defenses_label}
\n
+${planetaryShieldContribution} Planetary Defense
\n
\n
\n `;\n }\n\n /**\n * @param {string} selectedProperty\n * @param {StructType} structType\n * @return {string}\n */\n renderPropertiesForPlanetaryDefenses(selectedProperty, structType) {\n if (!selectedProperty || selectedProperty !== 'planetary_defenses') {\n return '';\n }\n\n if (structType.planetary_defenses === 'defensiveCannon') {\n const weaponDamage = 1;\n const weaponAmbits = AMBIT_ORDER.map(ambit => ambit.toLowerCase());\n const ambitIcons = weaponAmbits.map(ambit =>\n ``\n ).join('');\n \n return `\n
\n
\n \n
\n
\n
\n ${weaponDamage} DMG\n
\n
\n
\n
\n
\n \n
\n
\n
\n ${ambitIcons}\n
\n
\n
\n `;\n }\n\n // Default or other planetary defenses if any\n return '';\n }\n\n /**\n * @param {StructType} structType\n * @param {object} dataset\n * @return {string}\n */\n buildStructPropertyCheatsheet(structType, dataset) {\n const selectedProperty = dataset.selectedProperty;\n let titleText = '';\n let batteryCost = null;\n let descriptionText = '';\n let propertySectionHTML = '';\n\n switch (selectedProperty) {\n case 'primary_weapon':\n titleText = structType.primary_weapon_label;\n batteryCost = structType.primary_weapon_charge;\n descriptionText = structType.primary_weapon_description;\n propertySectionHTML = this.renderPropertiesForWeapon(\n selectedProperty,\n structType.primary_weapon,\n structType.primary_weapon_control,\n structType.primary_weapon_charge,\n structType.primary_weapon_damage,\n structType.primary_weapon_shots,\n structType.primary_weapon_ambits_array\n );\n break;\n case 'secondary_weapon':\n titleText = structType.secondary_weapon_label;\n batteryCost = structType.secondary_weapon_charge;\n descriptionText = structType.secondary_weapon_description;\n propertySectionHTML = this.renderPropertiesForWeapon(\n selectedProperty,\n structType.secondary_weapon,\n structType.secondary_weapon_control,\n structType.secondary_weapon_charge,\n structType.secondary_weapon_damage,\n structType.secondary_weapon_shots,\n structType.secondary_weapon_ambits_array\n );\n break;\n case 'movable':\n titleText = structType.drive_label;\n batteryCost = structType.move_charge;\n descriptionText = structType.drive_description;\n break;\n case 'passive_weaponry':\n titleText = structType.passive_weaponry_label;\n descriptionText = structType.passive_weaponry_description;\n propertySectionHTML = this.renderPropertiesForPassiveWeaponry(selectedProperty, structType);\n break;\n case 'unit_defenses':\n titleText = structType.unit_defenses_label;\n descriptionText = structType.unit_defenses_description;\n break;\n case 'ore_reserve_defenses':\n titleText = structType.ore_reserve_defenses_label;\n descriptionText = structType.ore_reserve_defenses_description;\n propertySectionHTML = this.renderPropertiesForOreReserveDefenses(selectedProperty, structType);\n break;\n case 'planetary_defenses':\n titleText = structType.planetary_defenses_label;\n descriptionText = structType.planetary_defenses_description;\n propertySectionHTML = this.renderPropertiesForPlanetaryDefenses(selectedProperty, structType);\n break;\n }\n\n return this.renderer.renderContentHTML(\n titleText,\n batteryCost,\n null,\n descriptionText,\n null,\n propertySectionHTML\n );\n }\n\n /**\n * @param {object} dataset\n * @return {string}\n */\n renderUndiscoveredOre(dataset) {\n return this.renderer.renderContentHTML(\n 'Undiscovered Ore',\n null,\n null,\n `${dataset.undiscoveredOre} Ore remains to be mined.`\n );\n }\n\n /**\n * @param {object} dataset\n * @return {string}\n */\n renderExtractorActive(dataset) {\n let oreExtracting = 0;\n let timeRemaining = '';\n\n if (dataset.estTime) {\n oreExtracting = 1;\n timeRemaining = `
${dataset.estTime} Est. time remaining.
`;\n }\n\n return this.renderer.renderContentHTML(\n 'Extractor Active',\n null,\n null,\n `\n
${oreExtracting} Ore extracting.
\n ${timeRemaining}\n `\n );\n }\n\n /**\n * @param {object} dataset\n * @return {string}\n */\n renderOreReady(dataset) {\n return this.renderer.renderContentHTML(\n 'Ore Ready',\n null,\n null,\n `${dataset.oreReady} Ore remains to be refined.`\n );\n }\n\n /**\n * @param {object} dataset\n * @return {string}\n */\n renderRefineryActive(dataset) {\n let oreRefining = 0;\n let timeRemaining = '';\n\n if (dataset.estTime) {\n oreRefining = 1;\n timeRemaining = `
${dataset.estTime} Est. time remaining.
`;\n }\n\n return this.renderer.renderContentHTML(\n 'Refinery Active',\n null,\n null,\n `\n
${oreRefining} Ore refining.
\n ${timeRemaining}\n `\n );\n }\n\n /**\n * @param {object} dataset triggering element's data attributes\n * @return {string}\n */\n build(dataset) {\n let html = '';\n\n switch (dataset.suiCheatsheet) {\n case 'icon-beacon':\n html = this.renderer.renderContentForEmptyTileHTML(\n 'Planetary Beacon',\n 'Planetary Structs can be deployed to this location.'\n );\n break;\n case 'icon-blocked':\n html = this.renderer.renderContentForEmptyTileHTML(\n 'Blocked',\n 'Structs cannot be deployed to this location.'\n );\n break;\n case 'icon-cmd-post':\n html = this.renderer.renderContentForEmptyTileHTML(\n 'Command Post',\n 'Only the Command Ship can be deployed to this location.'\n );\n break;\n case 'icon-enemy-tile':\n html = this.renderer.renderContentForEmptyTileHTML(\n 'Enemy Territory',\n 'Structs cannot be deployed in Enemy Territory.'\n );\n break;\n case 'icon-fleet-tile':\n html = this.renderer.renderContentForEmptyTileHTML(\n 'Fleet Territory',\n 'Fleet Structs can be deployed to this location.'\n );\n break;\n case 'icon-unknown-territory':\n html = this.renderer.renderContentForEmptyTileHTML(\n 'Unknown Territory',\n 'There is nothing of interest here yet.'\n );\n break;\n case 'enemy-struct-deploying':\n html = this.renderer.renderContentForEmptyTileHTML(\n 'Enemy Struct Deploying',\n 'A new enemy struct is being deployed.'\n );\n break;\n case 'icon-undiscovered-ore':\n html = this.renderUndiscoveredOre(dataset);\n break;\n case 'extractor-active':\n html = this.renderExtractorActive(dataset);\n break;\n case 'icon-ore-ready':\n html = this.renderOreReady(dataset);\n break;\n case 'refinery-active':\n html = this.renderRefineryActive(dataset);\n break;\n case 'icon-unpowered':\n html = this.renderer.renderContentHTML(\n 'Unpowered',\n null,\n null,\n 'This Struct is not receiving power. It’s abilities are not active.'\n );\n break;\n default:\n const structType = this.gameState.structTypes.getStructType(dataset.suiCheatsheet);\n\n if (!structType) {\n throw new Error(`Unknown cheatsheet key: ${dataset.suiCheatsheet}`);\n }\n\n if (dataset.selectedProperty) {\n html = this.buildStructPropertyCheatsheet(structType, dataset);\n } else if (dataset.actionButton === 'defend') {\n html = this.renderer.renderContentHTML(\n 'Defend',\n structType.defend_change_charge,\n null,\n `Blocks incoming damage and counter-attacks on behalf of another Struct.`\n );\n } else {\n html = this.buildStructCheatsheet(structType, dataset);\n }\n\n }\n\n return html;\n }\n}\n","import {MAP_ORNAMENTS, MAP_TILE_ROWS_PER_AMBIT, MAP_TILE_SIZE, MAP_TRANSITION_HEIGHT} from \"../constants/MapConstants\";\nimport {MapOrnamentComponent} from \"../view_models/components/map/MapOrnamentComponent\";\nimport {MapOrnamentComponentBuilderError} from \"../errors/MapOrnamentComponentBuilderError\";\n\n/**\n * Builds an ornament based on its name.\n */\nexport class MapOrnamentComponentBuilder {\n\n /**\n * @param {GameState} gameState\n * @param {Planet} planet\n * @param {int} mapColCount\n */\n constructor(\n gameState,\n planet,\n mapColCount\n ) {\n this.gameState = gameState;\n this.planet = planet;\n this.mapColCount = mapColCount;\n }\n\n /**\n * Determines the ornament ambit overlay's height based on the target ambit and whether to include\n * the surrounding transition areas.\n *\n * @param ambit the ambit the ornament is for\n * @param includeTopTransition whether or not the ornament area uses the top transition space\n * @param includeBottomTransition whether or not the ornament area uses the bottom transition space\n *\n * @return {number} the height of the ornament area in pixels\n */\n calculateOrnamentAmbitHeight(ambit, includeTopTransition = true, includeBottomTransition = true) {\n\n let height = 0;\n\n if (includeTopTransition) {\n height += MAP_TRANSITION_HEIGHT;\n }\n\n // Ambit height\n height += MAP_TILE_ROWS_PER_AMBIT * MAP_TILE_SIZE;\n\n if (includeBottomTransition) {\n height += MAP_TRANSITION_HEIGHT;\n }\n\n return height;\n }\n\n /**\n * Determines where the top of the ornament ambit's overlay should be positioned\n * based on the target ambit and if the top transition is included.\n *\n * @param {string} ornamentAmbit the ambit the ornament is for\n * @param {boolean} ornamentIncludesTopTransition whether or not the ornament area uses the top transition space\n *\n * @return {number} top position in pixels\n */\n calculateOrnamentAmbitTop(ornamentAmbit, ornamentIncludesTopTransition = true) {\n let top = 0;\n\n const planetAmbits = this.planet.getAmbits();\n const ambitIndex = planetAmbits.indexOf(ornamentAmbit);\n\n for(let i = 0; i <= ambitIndex; i++) {\n\n const currentAmbit = planetAmbits[i];\n\n // Transition height\n if (!(ornamentAmbit === currentAmbit && ornamentIncludesTopTransition)) {\n top += MAP_TRANSITION_HEIGHT;\n }\n\n // Ambit height\n if (ornamentAmbit !== currentAmbit) {\n top += MAP_TILE_ROWS_PER_AMBIT * MAP_TILE_SIZE;\n }\n }\n\n return top;\n }\n\n /**\n * @param {string} ornamentName\n * @param {string} ornamentAmbit\n *\n * @return {MapOrnamentComponent}\n *\n * @throws {MapOrnamentComponentBuilderError}\n */\n make(ornamentName, ornamentAmbit) {\n let ornament = null;\n const width = this.mapColCount * MAP_TILE_SIZE;\n let height = 0;\n let top = 0;\n\n switch(ornamentName) {\n case MAP_ORNAMENTS.SPACE_MONSTER:\n\n height = this.calculateOrnamentAmbitHeight(ornamentAmbit);\n top = this.calculateOrnamentAmbitTop(ornamentAmbit);\n\n ornament = new MapOrnamentComponent(\n this.gameState,\n 'map-ornament-space-monster',\n width,\n height,\n top\n );\n\n break;\n default:\n throw new MapOrnamentComponentBuilderError(`Could find ornament with ornament name: (${ornamentName})`);\n }\n\n return ornament;\n }\n\n}\n","import {AMBITS} from \"../constants/Ambits\";\nimport {MAP_NAMED_TRANSITIONS} from \"../constants/MapConstants\";\nimport {MapTransitionComponent} from \"../view_models/components/map/MapTransitionComponent\";\nimport {AbstractViewModelComponent} from \"../framework/AbstractViewModelComponent\";\n\n/**\n * Builds a transition based on which ambit is above the transition\n * and which ambit is below the transition.\n */\nexport class MapTransitionComponentBuilder extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {MapTransitionLayerComponentFactory} transitionLayerFactory\n */\n constructor(gameState, transitionLayerFactory) {\n super(gameState);\n this.transitionLayerFactory = transitionLayerFactory;\n }\n\n /**\n * @param {int} mapColCount\n * @param {string} topAmbit\n * @param {string} bottomAmbit\n *\n * @return {MapTransitionComponent}\n */\n make(mapColCount, topAmbit = '', bottomAmbit = '') {\n let layers = [];\n\n if (topAmbit) {\n layers.push(this.transitionLayerFactory.make(\n '',\n mapColCount,\n topAmbit,\n 'bottom'\n ));\n }\n\n if (bottomAmbit === AMBITS.AIR) {\n // Example of a transition ornament\n // layers.push(this.transitionLayerFactory.make('map-transition-ornament-flying-pom'));\n }\n\n if (bottomAmbit === AMBITS.LAND) {\n layers.push(this.transitionLayerFactory.make(\n '',\n mapColCount,\n MAP_NAMED_TRANSITIONS.HORIZON\n ));\n }\n\n if (bottomAmbit) {\n layers.push(this.transitionLayerFactory.make(\n '',\n mapColCount,\n bottomAmbit,\n 'top'\n ));\n }\n\n return new MapTransitionComponent(this.gameState, layers);\n }\n}","import {PLANET_CARD_TYPES} from \"../constants/PlanetCardTypes\";\nimport {PlanetCardComponent} from \"../view_models/components/PlanetCardComponent\";\nimport {MenuPage} from \"../framework/MenuPage\";\nimport {RAID_STATUS} from \"../constants/RaidStatus\";\nimport {NewPlanetListener} from \"../grass_listeners/NewPlanetListener\";\nimport {MAP_CONTAINER_IDS} from \"../constants/MapConstants\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class PlanetCardBuilder {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {GrassManager} grassManager\n * @param {FleetManager} fleetManager\n * @param {PlanetManager} planetManager\n * @param {MapManager} mapManager\n * @param {RaidManager} raidManager\n * @param {StructManager} structManager\n */\n constructor(\n gameState,\n guildAPI,\n grassManager,\n fleetManager,\n planetManager,\n mapManager,\n raidManager,\n structManager\n ) {\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.grassManager = grassManager;\n this.fleetManager = fleetManager;\n this.planetManager = planetManager;\n this.mapManager = mapManager;\n this.raidManager = raidManager;\n this.structManager = structManager;\n }\n\n /**\n * @return {PlanetCardComponent}\n */\n createAlphaBasePlanetCard() {\n return new PlanetCardComponent(\n this.gameState,\n 'alpha-base',\n false\n );\n }\n\n /**\n * @return {PlanetCardComponent}\n */\n createRaidPlanetCard() {\n return new PlanetCardComponent(\n this.gameState,\n 'raid',\n true\n )\n }\n\n showAlphaBaseMap() {\n this.gameState.setActiveMapContainerId(MAP_CONTAINER_IDS.ALPHA_BASE);\n this.mapManager.showMap(MAP_CONTAINER_IDS.ALPHA_BASE);\n MenuPage.close();\n }\n\n showRaidMap() {\n this.gameState.setActiveMapContainerId(MAP_CONTAINER_IDS.RAID);\n this.mapManager.showMap(MAP_CONTAINER_IDS.RAID);\n MenuPage.close();\n }\n\n buildAlphaBaseLoading(alphaBaseCard, type) {\n if (type !== PLANET_CARD_TYPES.ALPHA_BASE_LOADING) {\n return;\n }\n\n alphaBaseCard.hasGeneralMessage = true;\n alphaBaseCard.generalMessageIconClass = 'hidden';\n alphaBaseCard.generalMessage = `\"3`;\n }\n\n /**\n * @param {PlanetCardComponent} alphaBaseCard\n */\n configureAlphaBaseCardCounterUpdateHandlers(alphaBaseCard) {\n alphaBaseCard.undiscoveredOreUpdateHandler = (event) => {\n if (event.playerType !== PLAYER_TYPES.PLAYER) {\n return;\n }\n const display = document.getElementById(`${alphaBaseCard.undiscoveredOreId}-value`);\n if (display) {\n display.innerHTML = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.undiscovered_ore;\n }\n };\n alphaBaseCard.alphaOreUpdateHandler = (event) => {\n if (event.playerType !== PLAYER_TYPES.PLAYER) {\n return;\n }\n const display = document.getElementById(`${alphaBaseCard.alphaOreId}-value`);\n if (display) {\n display.innerHTML = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.ore;\n }\n };\n alphaBaseCard.shieldHealthUpdateHandler = (event) => {\n if (event.playerType !== PLAYER_TYPES.PLAYER) {\n return;\n }\n const display = document.getElementById(`${alphaBaseCard.shieldHealthId}-value`);\n if (display) {\n display.innerHTML = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].getPlanetShieldHealth();\n }\n };\n alphaBaseCard.deployedStructsUpdateHandler = (event) => {\n if (event.playerType !== PLAYER_TYPES.PLAYER) {\n return;\n }\n const display = document.getElementById(`${alphaBaseCard.deployedStructsId}-value`);\n if (display) {\n display.innerHTML = this.structManager.getStructCountByPlayerType(PLAYER_TYPES.PLAYER);\n }\n };\n }\n\n /**\n * @param {PlanetCardComponent} alphaBaseCard\n * @param {string} type\n */\n buildAlphaBaseActive(alphaBaseCard, type) {\n if (type !== PLANET_CARD_TYPES.ALPHA_BASE_ACTIVE) {\n return;\n }\n\n alphaBaseCard.planetName = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.name;\n\n alphaBaseCard.hasStatusGroup = true;\n alphaBaseCard.undiscoveredOre = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.undiscovered_ore;\n alphaBaseCard.alphaOre = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.ore;\n alphaBaseCard.shieldHealth = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].getPlanetShieldHealth();\n alphaBaseCard.deployedStructs = this.structManager.getStructCountByPlayerType(PLAYER_TYPES.PLAYER);\n\n this.configureAlphaBaseCardCounterUpdateHandlers(alphaBaseCard);\n\n alphaBaseCard.hasPrimaryBtn = true;\n alphaBaseCard.primaryBtnLabel = 'Command';\n alphaBaseCard.primaryBtnHandler = () => {\n this.showAlphaBaseMap();\n }\n }\n\n buildAlphaBaseCompleted(alphaBaseCard, type) {\n if (type !== PLANET_CARD_TYPES.ALPHA_BASE_COMPLETED) {\n return;\n }\n\n alphaBaseCard.planetName = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.name;\n\n alphaBaseCard.hasStatusGroup = true;\n alphaBaseCard.undiscoveredOre = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.undiscovered_ore;\n alphaBaseCard.alphaOre = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.ore;\n alphaBaseCard.shieldHealth = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].getPlanetShieldHealth();\n alphaBaseCard.deployedStructs = this.structManager.getStructCountByPlayerType(PLAYER_TYPES.PLAYER);\n\n this.configureAlphaBaseCardCounterUpdateHandlers(alphaBaseCard);\n\n alphaBaseCard.hasAlert = true;\n alphaBaseCard.alertIconColorClass = 'sui-text-primary';\n alphaBaseCard.alertMessage = 'All Alpha extracted.';\n\n alphaBaseCard.hasPrimaryBtn = true;\n alphaBaseCard.primaryBtnLabel = 'Command';\n alphaBaseCard.primaryBtnHandler = () => {\n this.showAlphaBaseMap();\n }\n\n alphaBaseCard.hasSecondaryBtn = true;\n alphaBaseCard.secondaryBtnLabel = 'Depart';\n alphaBaseCard.secondaryBtnHandler = () => {\n MenuPage.router.goto('Fleet', 'index', {\n planetCardType: PLANET_CARD_TYPES.ALPHA_BASE_DEPART\n });\n }\n }\n\n buildAlphaBaseDepart(alphaBaseCard, type) {\n if (type !== PLANET_CARD_TYPES.ALPHA_BASE_DEPART) {\n return;\n }\n\n alphaBaseCard.planetName = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.name;\n\n alphaBaseCard.hasAlert = true;\n alphaBaseCard.alertMessage = 'Depart planet?';\n\n alphaBaseCard.hasGeneralMessage = true;\n alphaBaseCard.generalMessageIconClass = 'hidden';\n alphaBaseCard.generalMessage = `Fleet will travel to an undiscovered world.`;\n\n alphaBaseCard.hasPrimaryBtn = true;\n alphaBaseCard.primaryBtnLabel = 'Confirm';\n alphaBaseCard.primaryBtnHandler = () => {\n MenuPage.router.goto('Fleet', 'index', {planetCardType: PLANET_CARD_TYPES.ALPHA_BASE_LOADING})\n\n const newPlanetListener = new NewPlanetListener(\n this.gameState,\n this.guildAPI,\n this.mapManager,\n this.grassManager,\n this.raidManager\n );\n\n this.grassManager.registerListener(newPlanetListener);\n\n this.planetManager.findNewPlanet().then();\n }\n\n alphaBaseCard.hasSecondaryBtn = true;\n alphaBaseCard.secondaryBtnLabel = 'Cancel';\n alphaBaseCard.secondaryBtnHandler = () => {\n MenuPage.router.goto('Fleet', 'index');\n }\n }\n\n buildAlphaBaseArrived(alphaBaseCard, type) {\n if (type !== PLANET_CARD_TYPES.ALPHA_BASE_ARRIVED) {\n return;\n }\n\n alphaBaseCard.planetName = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.name;\n\n alphaBaseCard.hasGeneralMessage = true;\n alphaBaseCard.generalMessageIconClass = 'icon-planet';\n alphaBaseCard.generalMessage = `Fleet has arrived at ${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.name}.`;\n\n alphaBaseCard.hasPrimaryBtn = true;\n alphaBaseCard.primaryBtnLabel = 'View';\n alphaBaseCard.primaryBtnHandler = () => {\n this.showAlphaBaseMap();\n }\n\n alphaBaseCard.hasSecondaryBtn = true;\n alphaBaseCard.secondaryBtnLabel = 'Dismiss';\n alphaBaseCard.secondaryBtnHandler = () => {\n MenuPage.router.goto('Fleet', 'index');\n }\n }\n\n /**\n * @param {string} type\n * @param {PlanetCardComponent} raidCard\n */\n buildRaidLoading(raidCard, type) {\n if (type !== PLANET_CARD_TYPES.RAID_LOADING) {\n return;\n }\n\n raidCard.hasGeneralMessage = true;\n raidCard.generalMessageIconClass = 'hidden';\n raidCard.generalMessage = `\"3`;\n }\n\n /**\n * @param {string} type\n * @param {PlanetCardComponent} raidCard\n */\n buildRaidNone(raidCard, type) {\n if (type !== PLANET_CARD_TYPES.RAID_NONE) {\n return;\n }\n\n raidCard.hasGeneralMessage = true;\n raidCard.generalMessageIconClass = 'hidden';\n raidCard.generalMessage = 'No Raid active.';\n\n raidCard.hasSecondaryBtn = true;\n raidCard.secondaryBtnLabel = 'Scan';\n raidCard.secondaryBtnHandler = () => {\n MenuPage.router.goto('Fleet', 'scan');\n }\n }\n\n /**\n * @param {string} type\n * @param {PlanetCardComponent} raidCard\n */\n buildRaidStarted(raidCard, type) {\n if (type !== PLANET_CARD_TYPES.RAID_STARTED) {\n return;\n }\n\n raidCard.planetName = this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].getUsername();\n\n raidCard.hasGeneralMessage = true;\n raidCard.generalMessageIconClass = 'icon-raid';\n raidCard.generalMessage = `Fleet has begun raid on ${this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].getUsername()}.`;\n\n raidCard.hasPrimaryBtn = true;\n raidCard.primaryBtnLabel = 'View';\n raidCard.primaryBtnHandler = () => {\n MenuPage.router.goto('Fleet', 'index');\n this.showRaidMap();\n }\n\n raidCard.hasSecondaryBtn = true;\n raidCard.secondaryBtnLabel = 'Dismiss';\n raidCard.secondaryBtnHandler = () => {\n MenuPage.router.goto('Fleet', 'index');\n }\n }\n\n /**\n * @param {string} type\n * @param {PlanetCardComponent} raidCard\n */\n buildRaidActive(raidCard, type) {\n if (type !== PLANET_CARD_TYPES.RAID_ACTIVE) {\n return;\n }\n\n raidCard.planetName = this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].getUsername();\n\n raidCard.hasStatusGroup = true;\n raidCard.undiscoveredOre = this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planet.undiscovered_ore;\n raidCard.alphaOre = this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].player.ore;\n raidCard.shieldHealth = this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].getPlanetShieldHealth();\n raidCard.deployedStructs = this.structManager.getStructCountByPlayerType(PLAYER_TYPES.RAID_ENEMY);\n\n raidCard.undiscoveredOreUpdateHandler = (event) => {\n if (event.playerType !== PLAYER_TYPES.RAID_ENEMY) {\n return;\n }\n const display = document.getElementById(`${raidCard.undiscoveredOreId}-value`);\n if (display) {\n display.innerHTML = this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planet.undiscovered_ore;\n }\n };\n raidCard.alphaOreUpdateHandler = (event) => {\n if (event.playerType !== PLAYER_TYPES.RAID_ENEMY) {\n return;\n }\n const display = document.getElementById(`${raidCard.alphaOreId}-value`);\n if (display) {\n display.innerHTML = this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].player.ore;\n }\n };\n raidCard.shieldHealthUpdateHandler = (event) => {\n if (event.playerType !== PLAYER_TYPES.RAID_ENEMY) {\n return;\n }\n const display = document.getElementById(`${raidCard.shieldHealthId}-value`);\n if (display) {\n display.innerHTML = this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].getPlanetShieldHealth();\n }\n };\n raidCard.deployedStructsUpdateHandler = (event) => {\n if (event.playerType !== PLAYER_TYPES.RAID_ENEMY) {\n return;\n }\n const display = document.getElementById(`${raidCard.deployedStructsId}-value`);\n if (display) {\n display.innerHTML = this.structManager.getStructCountByPlayerType(PLAYER_TYPES.RAID_ENEMY);\n }\n };\n\n raidCard.hasPrimaryBtn = true;\n raidCard.primaryBtnLabel = 'Command';\n raidCard.primaryBtnHandler = () => {\n this.showRaidMap();\n }\n\n raidCard.hasSecondaryBtn = true;\n raidCard.secondaryBtnLabel = 'Retreat';\n raidCard.secondaryBtnHandler = () => {\n MenuPage.router.goto('Fleet', 'index', {raidCardType: PLANET_CARD_TYPES.RAID_RETREAT})\n }\n }\n\n /**\n * @param {string} type\n * @param {PlanetCardComponent} raidCard\n */\n buildRaidRetreat(raidCard, type) {\n if (type !== PLANET_CARD_TYPES.RAID_RETREAT) {\n return;\n }\n\n raidCard.planetName = this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].getUsername();\n\n raidCard.hasAlert = true;\n raidCard.alertMessage = 'Abandon raid?';\n\n raidCard.hasGeneralMessage = true;\n raidCard.generalMessageIconClass = 'hidden';\n raidCard.generalMessage = `Fleet will return to Alpha Base.`;\n\n raidCard.hasPrimaryBtn = true;\n raidCard.primaryBtnLabel = 'Confirm';\n raidCard.primaryBtnHandler = () => {\n MenuPage.router.goto('Fleet', 'index', {raidCardType: PLANET_CARD_TYPES.RAID_LOADING})\n this.fleetManager.moveFleet(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.id).then();\n }\n\n raidCard.hasSecondaryBtn = true;\n raidCard.secondaryBtnLabel = 'Cancel';\n raidCard.secondaryBtnHandler = () => {\n MenuPage.router.goto('Fleet', 'index');\n }\n }\n\n /**\n * @param {string|null} selectedType\n */\n determineAlphaBaseCardType(selectedType = null) {\n\n const selectAlphaBaseTypes = [\n PLANET_CARD_TYPES.ALPHA_BASE_LOADING,\n PLANET_CARD_TYPES.ALPHA_BASE_ACTIVE,\n PLANET_CARD_TYPES.ALPHA_BASE_COMPLETED,\n PLANET_CARD_TYPES.ALPHA_BASE_DEPART,\n PLANET_CARD_TYPES.ALPHA_BASE_ARRIVED\n ];\n\n let type = PLANET_CARD_TYPES.ALPHA_BASE_ACTIVE;\n\n if (selectAlphaBaseTypes.includes(selectedType)) {\n\n type = selectedType;\n\n } else if (this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.undiscovered_ore === 0) {\n\n type = PLANET_CARD_TYPES.ALPHA_BASE_COMPLETED;\n\n }\n\n return type;\n }\n\n /**\n * @param {string|null} selectedType\n * @return {string}\n */\n determineRaidCardType(selectedType = null) {\n const selectRaidTypes = [\n PLANET_CARD_TYPES.RAID_LOADING,\n PLANET_CARD_TYPES.RAID_NONE,\n PLANET_CARD_TYPES.RAID_ACTIVE,\n PLANET_CARD_TYPES.RAID_RETREAT\n ];\n\n let type = PLANET_CARD_TYPES.RAID_NONE;\n\n if (selectRaidTypes.includes(selectedType)) {\n\n type = selectedType;\n\n } else if (this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo.status === RAID_STATUS.REQUESTED) {\n\n type = PLANET_CARD_TYPES.RAID_LOADING;\n\n } else if (\n selectedType === PLANET_CARD_TYPES.RAID_STARTED\n && this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo.status === RAID_STATUS.INITIATED\n ) {\n\n type = PLANET_CARD_TYPES.RAID_STARTED;\n\n } else if (\n this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo.status === RAID_STATUS.INITIATED\n || this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo.status === RAID_STATUS.ONGOING\n ) {\n\n type = PLANET_CARD_TYPES.RAID_ACTIVE;\n\n }\n\n return type;\n }\n\n /**\n * @param {string|null} selectedType\n * @return {PlanetCardComponent}\n */\n buildAlphaBaseCard(selectedType = null) {\n let planetCard = this.createAlphaBasePlanetCard();\n\n const type = this.determineAlphaBaseCardType(selectedType);\n console.log(type);\n\n this.buildAlphaBaseLoading(planetCard, type);\n this.buildAlphaBaseActive(planetCard, type);\n this.buildAlphaBaseCompleted(planetCard, type);\n this.buildAlphaBaseDepart(planetCard, type);\n this.buildAlphaBaseArrived(planetCard, type);\n\n return planetCard;\n }\n\n /**\n * @param {string|null} selectedType\n * @return {PlanetCardComponent}\n */\n buildRaidCard(selectedType = null) {\n let planetCard = this.createRaidPlanetCard();\n\n const type = this.determineRaidCardType(selectedType);\n\n this.buildRaidLoading(planetCard, type);\n this.buildRaidNone(planetCard, type);\n this.buildRaidStarted(planetCard, type);\n this.buildRaidActive(planetCard, type);\n this.buildRaidRetreat(planetCard, type);\n\n return planetCard;\n }\n\n /**\n * @param {boolean} isRaidCard\n * @param {string|null} selectedType\n * @return {PlanetCardComponent}\n */\n build(isRaidCard = false, selectedType = null) {\n return isRaidCard\n ? this.buildRaidCard(selectedType)\n : this.buildAlphaBaseCard(selectedType);\n }\n}","import {StructStillRenderer} from \"../view_models/components/StructStillRenderer\";\nimport {\n STRUCT_EQUIPMENT,\n STRUCT_STILL_LAYERS,\n STRUCT_WATER_RIPPLE,\n STRUCT_WEAPON_SYSTEM\n} from \"../constants/StructConstants\";\nimport {StructType} from \"../models/StructType\";\nimport {StructTypeArtSetBuilder} from \"./StructTypeArtSetBuilder\";\n\nexport class StructStillBuilder {\n\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n this.gameState = gameState;\n this.structTypeArtSetBuilder = new StructTypeArtSetBuilder();\n }\n \n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildBattleship(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n '',\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildCommandShip(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildCruiser(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON],\n art[STRUCT_WEAPON_SYSTEM.SECONDARY_WEAPON],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n art[STRUCT_WATER_RIPPLE]\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildDestroyer(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n art[STRUCT_WATER_RIPPLE]\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildOreExtractor(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_EQUIPMENT.PLANETARY_MINING],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildFrigate(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n '',\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON]\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildFieldGenerator(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_EQUIPMENT.POWER_GENERATION],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildHighAltitudeInterceptor(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n '',\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON]\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildJammingSatellite(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_EQUIPMENT.PLANETARY_DEFENSES],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildMobileArtillery(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildOrbitalShieldGenerator(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_EQUIPMENT.ORE_RESERVE_DEFENSES],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildOreBunker(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_EQUIPMENT.ORE_RESERVE_DEFENSES],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildPlanetaryDefenseCannon(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_EQUIPMENT.PLANETARY_DEFENSES],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildPursuitFighter(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n '',\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON]\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildOreRefinery(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_EQUIPMENT.PLANETARY_REFINERY],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildSAMLauncher(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildStarfighter(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_WEAPON_SYSTEM.SECONDARY_WEAPON],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON]\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildStealthBomber(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n '',\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON]\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildSubmersible(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n art[STRUCT_WATER_RIPPLE]\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildTank(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n \n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n build(structType) {\n const structTypeClean = structType.type.replace(/[^a-zA-Z0-9]/g, '');\n\n if (!this[`build${structTypeClean}`]) {\n throw new Error(`No struct still for struct type ${structType.type}`);\n }\n\n return this[`build${structTypeClean}`](structType);\n }\n}\n","import {\n STRUCT_EQUIPMENT,\n STRUCT_STILL_LAYERS,\n STRUCT_WATER_RIPPLE,\n STRUCT_WEAPON_SYSTEM\n} from \"../constants/StructConstants\";\nimport {StructType} from \"../models/StructType\";\nimport {StructTypeArtSet} from \"../models/StructTypeArtSet\";\n\nexport class StructTypeArtSetBuilder {\n\n constructor() {\n this.structImageDir = '/img/structs';\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}\n */\n buildBattleship(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/battleship/battleship-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/battleship/battleship-struct-dmg.png';\n \n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildCommandShip(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/cmd-ship/cmd-ship-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/cmd-ship/cmd-ship-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/cmd-ship/cmd-ship-top-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildCruiser(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/cruiser/cruiser-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/cruiser/cruiser-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/cruiser/cruiser-top-weapon-ballistic.png';\n art[STRUCT_WEAPON_SYSTEM.SECONDARY_WEAPON] = this.structImageDir + '/cruiser/cruiser-top-weapon-smart.png';\n art[STRUCT_WATER_RIPPLE] = this.structImageDir + '/cruiser/cruiser-bottom-ripples.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildDestroyer(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/destroyer/destroyer-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/destroyer/destroyer-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/destroyer/destroyer-top-weapon.png';\n art[STRUCT_WATER_RIPPLE] = this.structImageDir + '/destroyer/destroyer-bottom-ripples.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildOreExtractor(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/extractor/extractor-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/extractor/extractor-struct-dmg.png';\n art[STRUCT_EQUIPMENT.PLANETARY_MINING] = this.structImageDir + '/extractor/extractor-top-drill.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildFrigate(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/frigate/frigate-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/frigate/frigate-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/frigate/frigate-bottom-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildFieldGenerator(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/generator/generator-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/generator/generator-struct-dmg.png';\n art[STRUCT_EQUIPMENT.POWER_GENERATION] = this.structImageDir + '/generator/generator-top-tube.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildHighAltitudeInterceptor(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/interceptor/interceptor-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/interceptor/interceptor-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/interceptor/interceptor-bottom-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildJammingSatellite(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/jamming-sat/jamming-sat-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/jamming-sat/jamming-sat-struct-dmg.png';\n art[STRUCT_EQUIPMENT.PLANETARY_DEFENSES] = this.structImageDir + '/jamming-sat/jamming-sat-top-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildMobileArtillery(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/mobile-artillery/mobile-artillery-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/mobile-artillery/mobile-artillery-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/mobile-artillery/mobile-artillery-top-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildOrbitalShieldGenerator(structType) {\n const art = new StructTypeArtSet(structType);\n \n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/orb-shield/orb-shield-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/orb-shield/orb-shield-struct-dmg.png';\n art[STRUCT_EQUIPMENT.ORE_RESERVE_DEFENSES] = this.structImageDir + '/orb-shield/orb-shield-top-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildOreBunker(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/ore-bunker/ore-bunker-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/ore-bunker/ore-bunker-struct-dmg.png';\n art[STRUCT_EQUIPMENT.ORE_RESERVE_DEFENSES] = this.structImageDir + '/ore-bunker/ore-bunker-top-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildPlanetaryDefenseCannon(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/pdc/pdc-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/pdc/pdc-struct-dmg.png';\n art[STRUCT_EQUIPMENT.PLANETARY_DEFENSES] = this.structImageDir + '/pdc/pdc-top-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildPursuitFighter(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/pursuit-fighter/pursuit-fighter-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/pursuit-fighter/pursuit-fighter-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/pursuit-fighter/pursuit-fighter-bottom-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildOreRefinery(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/refinery/refinery-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/refinery/refinery-struct-dmg.png';\n art[STRUCT_EQUIPMENT.PLANETARY_REFINERY] = this.structImageDir + '/refinery/refinery-top-bays.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildStarfighter(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/starfighter/starfighter-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/starfighter/starfighter-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/starfighter/starfighter-bottom-weapon-smart.png';\n art[STRUCT_WEAPON_SYSTEM.SECONDARY_WEAPON] = this.structImageDir + '/starfighter/starfighter-top-weapon-ballistic.png'\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildSAMLauncher(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/sam-launcher/sam-launcher-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/sam-launcher/sam-launcher-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/sam-launcher/sam-launcher-top-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildStealthBomber(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/stealth-bomber/stealth-bomber-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/stealth-bomber/stealth-bomber-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/stealth-bomber/stealth-bomber-bottom-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildSubmersible(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/submersible/submersible-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/submersible/submersible-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/submersible/submersible-top-weapon.png';\n art[STRUCT_WATER_RIPPLE] = this.structImageDir + '/submersible/submersible-bottom-ripples.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildTank(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/tank/tank-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/tank/tank-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/tank/tank-top-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n build(structType) {\n const structTypeClean = structType.type.replace(/[^a-zA-Z0-9]/g, '');\n\n if (!this[`build${structTypeClean}`]) {\n throw new Error(`No struct art set for struct type ${structType.type}`);\n }\n\n return this[`build${structTypeClean}`](structType);\n }\n}\n","export const\n AMBITS = {\n LAND: 'LAND',\n AIR: 'AIR',\n SPACE: 'SPACE',\n WATER: 'WATER',\n },\n\n AMBIT_ORDER = [\n AMBITS.SPACE,\n AMBITS.AIR,\n AMBITS.LAND,\n AMBITS.WATER\n ],\n\n AMBIT_ENUM = {\n 'NONE': 0,\n 'WATER': 1,\n 'LAND': 2,\n 'AIR': 3,\n 'SPACE': 4,\n 'LOCAL': 5\n }\n;","export const\n ANIMATION = {\n NAMES: {\n ATTACK: {\n PRIMARY_WEAPON: 'ATTACK_PRIMARY_WEAPON',\n SECONDARY_WEAPON: 'ATTACK_SECONDARY_WEAPON',\n },\n DEPLOYMENT: {\n SPACE: 'DEPLOYMENT_SPACE',\n AIR: 'DEPLOYMENT_AIR',\n LAND: 'DEPLOYMENT_LAND',\n WATER: 'DEPLOYMENT_WATER',\n },\n DESTROY: {\n SPACE: 'DESTROY_SPACE',\n AIR: 'DESTROY_AIR',\n LAND: 'DESTROY_LAND',\n WATER: 'DESTROY_WATER',\n },\n FIRST: 'FIRST',\n LAST: 'LAST',\n MOVE: {\n ARRIVE: 'MOVE_ARRIVE',\n DEPART: 'MOVE_DEPART',\n },\n STEALTH: {\n ACTIVATE: 'STEALTH_ACTIVATE',\n DEACTIVATE: 'STEALTH_DEACTIVATE',\n },\n IMPACT: {\n ANGLED: {\n DOWN: {\n CANNON: 'IMPACT_ANGLED_DOWN_CANNON',\n MISSILE: 'IMPACT_ANGLED_DOWN_MISSILE',\n TORPEDO: 'IMPACT_ANGLED_DOWN_TORPEDO'\n },\n UP: {\n CANNON: 'IMPACT_ANGLED_UP_CANNON',\n GATLING: 'IMPACT_ANGLED_UP_GATLING',\n MISSILE: 'IMPACT_ANGLED_UP_MISSILE',\n TORPEDO: 'IMPACT_ANGLED_UP_TORPEDO'\n },\n },\n HORIZONTAL: {\n CANNON: 'IMPACT_HORIZONTAL_CANNON',\n GATLING: 'IMPACT_HORIZONTAL_GATLING',\n MISSILE: 'IMPACT_HORIZONTAL_MISSILE',\n TORPEDO: 'IMPACT_HORIZONTAL_TORPEDO',\n }\n },\n EVADE: 'EVADE',\n SHAKE: {\n ANGLED: {\n DOWN: {\n DEFAULT: {\n FIRST: 'SHAKE_ANGLED_DOWN_DEFAULT_FIRST',\n LAST: 'SHAKE_ANGLED_DOWN_DEFAULT_LAST',\n }\n },\n UP: {\n DEFAULT: {\n FIRST: 'SHAKE_ANGLED_UP_DEFAULT_FIRST',\n LAST: 'SHAKE_ANGLED_UP_DEFAULT_LAST',\n },\n GATLING: {\n FIRST: 'SHAKE_ANGLED_UP_GATLING_FIRST',\n LAST: 'SHAKE_ANGLED_UP_GATLING_LAST',\n }\n },\n },\n HORIZONTAL: {\n DEFAULT: {\n FIRST: 'SHAKE_HORIZONTAL_DEFAULT_FIRST',\n LAST: 'SHAKE_HORIZONTAL_DEFAULT_LAST',\n },\n GATLING: {\n FIRST: 'SHAKE_HORIZONTAL_GATLING_FIRST',\n LAST: 'SHAKE_HORIZONTAL_GATLING_LAST',\n }\n },\n ATTACK: {\n PRIMARY_WEAPON: 'ATTACK_PRIMARY_WEAPON',\n SECONDARY_WEAPON: 'ATTACK_SECONDARY_WEAPON',\n }\n }\n },\n PROJECTILES: {\n CANNON: 'CANNON',\n GATLING: 'GATLING',\n MISSILE: 'MISSILE',\n TORPEDO: 'TORPEDO',\n }\n }\n;\n","export const EVENTS = {\n ALPHA_COUNT_CHANGED: 'ALPHA_COUNT_CHANGED',\n ANIMATION: 'ANIMATION',\n ANIMATION_END: 'ANIMATION_END',\n ANIMATION_QUEUE_EMPTY: 'ANIMATION_QUEUE_EMPTY',\n BLOCK_HEIGHT_CHANGED: 'BLOCK_HEIGHT_CHANGED',\n CHARGE_LEVEL_CHANGED: 'CHARGE_LEVEL_CHANGED',\n CLEAR_ATTACK_TARGETS: 'CLEAR_ATTACK_TARGETS',\n CLEAR_DEFEND_TARGETS: 'CLEAR_DEFEND_TARGETS',\n CLEAR_MOVE_TARGETS: 'CLEAR_MOVE_TARGETS',\n CLEAR_STRUCT_TILE: 'CLEAR_STRUCT_TILE',\n ENERGY_USAGE_CHANGED: 'ENERGY_USAGE_CHANGED',\n LOTTIE_CUSTOMIZED: 'LOTTIE_CUSTOMIZED',\n ORE_COUNT_CHANGED: 'ORE_COUNT_CHANGED',\n PENDING_BUILD_ADDED: 'PENDING_BUILD_ADDED',\n PLANET_RAID_STATUS_CHANGED: 'PLANET_RAID_STATUS_CHANGED',\n REFRESH_ACTION_BAR: 'REFRESH_ACTION_BAR',\n REFRESH_ACTION_BAR_IF_SELECTED: 'REFRESH_ACTION_BAR_IF_SELECTED',\n RENDER_ALL_STRUCTS: 'RENDER_ALL_STRUCTS',\n RENDER_DEPLOYMENT_INDICATOR: 'RENDER_DEPLOYMENT_INDICATOR',\n RENDER_STRUCT_HUD: 'RENDER_STRUCT_HUD',\n RENDER_STRUCT: 'RENDER_STRUCT',\n SHOW_MOVE_TARGETS: 'SHOW_MOVE_TARGETS',\n UPDATE_TILE_STRUCT_ID: 'UPDATE_TILE_STRUCT_ID',\n SAVE_GAME_STATE: 'SAVE_GAME_STATE',\n SHIELD_HEALTH_CHANGED: 'SHIELD_HEALTH_CHANGED',\n SHOW_ATTACK_TARGETS: 'SHOW_ATTACK_TARGETS',\n SHOW_DEFEND_TARGETS: 'SHOW_DEFEND_TARGETS',\n STRUCT_COUNT_CHANGED: 'STRUCT_COUNT_CHANGED',\n TASK_CMD_KILL: 'TASK_CMD_KILL',\n TASK_CMD_MANAGER_PAUSE: 'TASK_CMD_MANAGER_PAUSE',\n TASK_CMD_MANAGER_RESUME: 'TASK_CMD_MANAGER_RESUME',\n TASK_CMD_PAUSE: 'TASK_CMD_PAUSE',\n TASK_CMD_RESUME: 'TASK_CMD_RESUME',\n TASK_CMD_SPAWN: 'TASK_CMD_SPAWN',\n TASK_CMD_FORCE_RUN: 'TASK_CMD_FORCE_RUN',\n TASK_CMD_SWEEP: 'TASK_CMD_SWEEP',\n TASK_CMD_SWEEP_ALL: 'TASK_CMD_SWEEP_ALL',\n TASK_COMPLETED: 'TASK_COMPLETED',\n TASK_STATE_CHANGED: 'TASK_STATE_CHANGED',\n TASK_MANAGER_STATUS_CHANGED: 'TASK_MANAGER_STATUS_CHANGED',\n TASK_WORKER_CHANGED: 'TASK_WORKER_CHANGED',\n TRACK_DESTROYED_STRUCT: 'TRACK_DESTROYED_STRUCT',\n TRACK_DESTROYED_STRUCTS: 'TRACK_DESTROYED_STRUCTS',\n UNDISCOVERED_ORE_COUNT_CHANGED: 'UNDISCOVERED_ORE_COUNT_CHANGED',\n};","export const FEE = {\n amount: [\n {\n denom: \"ualpha\",\n amount: \"0\",\n },\n ],\n gas: \"500000\",\n};","export const\n HUD_IDS = {\n ACTION_BAR_PLAYER: 'action-bar-player',\n ACTION_BAR_ALPHA_BASE_ENEMY: 'action-bar-alpha-base-enemy',\n ACTION_BAR_RAID_ENEMY: 'action-bar-raid-enemy',\n STATUS_BAR_TOP_LEFT: 'status-bar-top-left',\n STATUS_BAR_TOP_RIGHT_ALPHA_BASE: 'status-bar-top-right-alpha-base',\n STATUS_BAR_TOP_RIGHT_RAID: 'status-bar-top-right-raid'\n }\n;","export const LOCATION_TYPE_INDEX = {\n 'planet': 2,\n 'fleet': 9\n};\n","export const\n MAP_COL_DEFENDER_COMMAND = 'DEFENDER_COMMAND',\n MAP_COL_DEFENDER_PLANETARY = 'DEFENDER_PLANETARY',\n MAP_COL_DEFENDER_FLEET = 'DEFENDER_FLEET',\n MAP_COL_DIVIDER = 'DIVIDER',\n MAP_COL_ATTACKER_FLEET = 'ATTACKER_FLEET',\n MAP_COL_ATTACKER_COMMAND = 'ATTACKER_COMMAND',\n\n MAP_DEFAULT_COMMAND_COL_COUNT = 1,\n MAP_DEFAULT_PLANETARY_COL_COUNT = 2,\n MAP_DEFAULT_FLEET_COL_COUNT = 2,\n MAP_DEFAULT_DIVIDER_COL_COUNT = 1,\n\n MAP_TILE_ROWS_PER_AMBIT = 2,\n\n MAP_COL_ORDER = [\n MAP_COL_DEFENDER_COMMAND,\n MAP_COL_DEFENDER_PLANETARY,\n MAP_COL_DEFENDER_FLEET,\n MAP_COL_DIVIDER,\n MAP_COL_ATTACKER_FLEET,\n MAP_COL_ATTACKER_COMMAND\n ],\n\n MAP_COL_COUNT_PROPS = {\n DEFENDER_COMMAND: 'defenderCommandColCount',\n DEFENDER_PLANETARY: 'defenderPlanetaryColCount',\n DEFENDER_FLEET: 'defenderFleetColCount',\n DIVIDER: 'dividerColCount',\n ATTACKER_FLEET: 'attackerFleetColCount',\n ATTACKER_COMMAND: 'attackerCommandColCount'\n },\n\n MAP_TILE_SIZE = 128,\n\n MAP_TRANSITION_HEIGHT = 128,\n\n MAP_NAMED_TRANSITIONS = {\n HORIZON: 'HORIZON'\n },\n\n MAP_TRANSITION_TILE_LABELS = {\n ATMOSPHERE: 'ATMOSPHERE',\n HORIZON: 'HORIZON',\n SHORE: 'SHORE'\n },\n\n MAP_TILE_TYPES = {\n FOG_OF_WAR: 'FOG_OF_WAR',\n TRANSITION: 'TRANSITION',\n COMMAND: 'COMMAND',\n COMMAND_BLOCKED: 'COMMAND_BLOCKED',\n PLANETARY_SLOT: 'PLANETARY_SLOT',\n PLANETARY_BLOCKED: 'PLANETARY_BLOCKED',\n FLEET: 'FLEET',\n DIVIDER: 'DIVIDER',\n },\n\n MAP_TILE_TYPE_ICONS = {\n FOG_OF_WAR: 'icon-unknown-territory',\n TRANSITION: 'icon-blocked',\n COMMAND: 'icon-cmd-post',\n COMMAND_BLOCKED: 'icon-blocked',\n PLANETARY_SLOT: 'icon-beacon',\n PLANETARY_BLOCKED: 'icon-blocked',\n FLEET: 'icon-fleet-tile',\n DIVIDER: 'icon-blocked',\n ENEMY_TERRITORY: 'icon-enemy-tile',\n },\n\n MAP_ORNAMENTS = {\n SPACE_MONSTER: 'SPACE_MONSTER'\n },\n\n MAP_CONTAINER_IDS = {\n ALPHA_BASE: 'alpha-base-map-container',\n RAID: 'raid-map-container',\n PREVIEW: 'preview-map-container'\n },\n\n MAP_TYPES = {\n ALPHA_BASE: 'alphaBaseMap',\n RAID: 'raidMap'\n }\n;","export const MAP_PERSPECTIVES = {\n ATTACKER: 'ATTACKER',\n DEFENDER: 'DEFENDER'\n};","export const MENU_PAGE_ROUTER_MODES = {\n DEFAULT: 'DEFAULT',\n PREVIEW: 'PREVIEW'\n};\n","export const\n NOTIFICATION_DIALOGUE_SEQUENCES = {\n DEFEATED_BY_ATTACKER: 'DEFEATED_BY_ATTACKER',\n DEFEATED_BY_DEFENDER: 'DEFEATED_BY_DEFENDER',\n ATTACKER_VICTORY: 'ATTACKER_VICTORY',\n DEFENDER_VICTORY: 'DEFENDER_VICTORY',\n };","export const OBJECT_TYPES = {\n GUILD: 'guild',\n PLAYER: 'player',\n PLANET: 'planet',\n REACTOR: 'reactor',\n SUBSTATION: 'substation',\n STRUCT: 'struct',\n ALLOCATION: 'allocation',\n INFUSION: 'infusion',\n ADDRESS: 'address',\n FLEET: 'fleet',\n PROVIDER: 'provider',\n AGREEMENT: 'agreement',\n};\n\n","export const PAGINATION_LIMITS = {\n DEFAULT: 100,\n};","export const PERMISSIONS = {\n PLAY: 1,\n ADMIN: 2,\n UPDATE: 4,\n DELETE: 8,\n TOKEN_TRANSFER: 16,\n TOKEN_INFUSE: 32,\n TOKEN_MIGRATE: 64,\n TOKEN_DEFUSE: 128,\n SOURCE_ALLOCATION: 256,\n GUILD_MEMBERSHIP: 512,\n SUBSTATION_CONNECTION: 1024,\n ALLOCATION_CONNECTION: 2048,\n GUILD_TOKEN_BURN: 4096,\n GUILD_TOKEN_MINT: 8192,\n GUILD_ENDPOINT_UPDATE: 16384,\n GUILD_JOIN_CONSTRAINTS_UPDATE: 32768,\n GUILD_SUBSTATION_UPDATE: 65536,\n PROVIDER_WITHDRAW: 131072,\n PROVIDER_OPEN: 262144,\n REACTOR_GUILD_CREATE: 524288,\n HASH_BUILD: 1048576,\n HASH_MINE: 2097152,\n HASH_REFINE: 4194304,\n HASH_RAID: 8388608,\n GUILD_UGC_UPDATE: 16777216,\n\n ASSETS_ALL: 16 | 32 | 64 | 128,\n HASH_ALL: 1048576 | 2097152 | 4194304 | 8388608,\n ALL: (1 << 25) - 1,\n};\n","export const PLANET_CARD_TYPES = {\n ALPHA_BASE_LOADING: 'ALPHA_BASE_LOADING',\n ALPHA_BASE_ACTIVE: 'ALPHA_BASE_ACTIVE',\n ALPHA_BASE_COMPLETED: 'ALPHA_BASE_COMPLETED',\n ALPHA_BASE_DEPART: 'ALPHA_BASE_DEPART',\n ALPHA_BASE_ARRIVED: 'ALPHA_BASE_ARRIVED',\n RAID_LOADING: 'RAID_LOADING',\n RAID_NONE: 'RAID_NONE',\n RAID_STARTED: 'RAID_STARTED',\n RAID_ACTIVE: 'RAID_ACTIVE',\n RAID_RETREAT: 'RAID_RETREAT'\n};","export const PLAYER_MAP_ROLES = {\n ATTACKER: 'ATTACKER',\n DEFENDER: 'DEFENDER',\n SPECTATOR: 'SPECTATOR',\n};","export const PLAYER_TYPES = {\n PLAYER: 'player',\n RAID_ENEMY: 'raid_enemy',\n PLANET_RAIDER: 'planet_raider',\n};\n","export const PRECISION_CONVERSION = {\n ENERGY: 1000\n};","export const RAID_STATUS = {\n REQUESTED: 'requested',\n INITIATED: 'initiated',\n ONGOING: 'ongoing',\n ATTACKER_DEFEATED: 'attackerDefeated',\n ATTACKER_RETREATED: 'attackerRetreated',\n RAID_SUCCESSFUL: 'raidSuccessful',\n DEMILITARIZED: 'demilitarized',\n};\n","export const\n CODE_PATTERN = /^[A-HJ-NP-Z2-9]{5}$/,\n DISCORD_URL_PATTERN = /(?<=(discord\\.gg\\/))[a-zA-Z0-9]+/,\n SEARCH_STRING_PATTERN = /^[\\p{L}0-9-_]{3,}$/u,\n USERNAME_PATTERN = /^[\\p{L}0-9-_]{3,20}$/u\n;","export const\n SETTING = {\n PLANETARY_SHIELD_BASE: 'PLANETARY_SHIELD_BASE',\n PLANET_STARTING_ORE: 'PLANET_STARTING_ORE',\n PLANET_STARTING_SLOTS: 'PLANET_STARTING_SLOTS',\n PLAYER_PASSIVE_DRAW: 'PLAYER_PASSIVE_DRAW',\n PLAYER_RESUME_CHARGE: 'PLAYER_RESUME_CHARGE',\n REACTOR_RATIO: 'REACTOR_RATIO',\n STRUCT_SWEEP_DELAY: 'STRUCT_SWEEP_DELAY'\n }\n;\n","export const\n STRUCT_TYPES = {\n BATTLESHIP: 'Battleship',\n COMMAND_SHIP: 'Command Ship',\n CONTINENTAL_POWER_PLANT: 'Continental Power Plant',\n CRUISER: 'Cruiser',\n DESTROYER: 'Destroyer',\n FIELD_GENERATOR: 'Field Generator',\n FRIGATE: 'Frigate',\n HIGH_ALTITUDE_INTERCEPTOR: 'High Altitude Interceptor',\n JAMMING_SATELLITE: 'Jamming Satellite',\n MOBILE_ARTILLERY: 'Mobile Artillery',\n ORBITAL_SHIELD_GENERATOR: 'Orbital Shield Generator',\n ORE_BUNKER: 'Ore Bunker',\n ORE_EXTRACTOR: 'Ore Extractor',\n ORE_REFINERY: 'Ore Refinery',\n PLANETARY_DEFENSE_CANNON: 'Planetary Defense Cannon',\n PURSUIT_FIGHTER: 'Pursuit Fighter',\n SAM_LAUNCHER: 'SAM Launcher',\n STARFIGHTER: 'Starfighter',\n STEALTH_BOMBER: 'Stealth Bomber',\n SUBMERSIBLE: 'Submersible',\n TANK: 'Tank',\n WORLD_ENGINE: 'World Engine',\n },\n STRUCT_CATEGORIES = {\n FLEET: 'fleet',\n PLANET: 'planet'\n },\n STRUCT_PRIMARY_WEAPON = {\n UNGUIDED_WEAPONRY: 'unguidedWeaponry',\n GUIDED_WEAPONRY: 'guidedWeaponry',\n NO_ACTIVE_WEAPONRY: 'noActiveWeaponry'\n },\n STRUCT_SECONDARY_WEAPON = {\n UNGUIDED_WEAPONRY: 'unguidedWeaponry',\n ATTACK_RUN: 'attackRun',\n NO_ACTIVE_WEAPONRY: 'noActiveWeaponry'\n },\n STRUCT_PASSIVE_WEAPONRY = {\n COUNTER_ATTACK: 'counterAttack',\n STRONG_COUNTER_ATTACK: 'strongCounterAttack',\n ADVANCED_COUNTER_ATTACK: 'advancedCounterAttack',\n NO_PASSIVE_WEAPONRY: 'noPassiveWeaponry'\n },\n STRUCT_UNIT_DEFENSES = {\n ARMOUR: 'armour',\n DEFENSIVE_MANEUVER: 'defensiveManeuver',\n INDIRECT_COMBAT_MODULE: 'indirectCombatModule',\n SIGNAL_JAMMING: 'signalJamming',\n STEALTH_MODE: 'stealthMode',\n NO_UNIT_DEFENSES: 'noUnitDefenses'\n },\n STRUCT_ORE_RESERVE_DEFENSES = {\n COORDINATED_RESERVE_RESPONSE_TRACKER: 'coordinatedReserveResponseTracker',\n MONITORING_STATION: 'monitoringStation',\n ORE_BUNKER: 'oreBunker',\n NO_ORE_RESERVE_DEFENSES: 'noOreReserveDefenses'\n },\n STRUCT_PLANETARY_DEFENSES = {\n DEFENSIVE_CANNON: 'defensiveCannon',\n LOW_ORBIT_BALLISTIC_INTERCEPTOR_NETWORK: 'lowOrbitBallisticInterceptorNetwork',\n NO_PLANETARY_DEFENSE: 'noPlanetaryDefense'\n },\n STRUCT_PLANETARY_MINING = {\n ORE_MINING_RIG: 'oreMiningRig',\n NO_PLANETARY_MINING: 'noPlanetaryMining'\n },\n STRUCT_PLANETARY_REFINERY = {\n ORE_REFINERY: 'oreRefinery',\n NO_PLANETARY_REFINERY: 'noPlanetaryRefinery'\n },\n STRUCT_POWER_GENERATION = {\n SMALL_GENERATOR: 'smallGenerator',\n MEDIUM_GENERATOR: 'mediumGenerator',\n LARGE_GENERATOR: 'largeGenerator',\n NO_POWER_GENERATION: 'noPowerGeneration'\n },\n STRUCT_EQUIPMENT_ICON_MAP = {\n [STRUCT_SECONDARY_WEAPON.ATTACK_RUN]: 'icon-ballistic-weapon',\n [STRUCT_PRIMARY_WEAPON.GUIDED_WEAPONRY]: 'icon-smart-weapon',\n [STRUCT_PRIMARY_WEAPON.UNGUIDED_WEAPONRY]: 'icon-ballistic-weapon',\n\n [STRUCT_PASSIVE_WEAPONRY.ADVANCED_COUNTER_ATTACK]: 'icon-adv-counter',\n [STRUCT_PASSIVE_WEAPONRY.COUNTER_ATTACK]: 'icon-counter',\n [STRUCT_PASSIVE_WEAPONRY.STRONG_COUNTER_ATTACK]: 'icon-adv-counter',\n\n [STRUCT_UNIT_DEFENSES.ARMOUR]: 'icon-armour',\n [STRUCT_UNIT_DEFENSES.DEFENSIVE_MANEUVER]: 'icon-kinetic-barrier',\n [STRUCT_UNIT_DEFENSES.INDIRECT_COMBAT_MODULE]: 'icon-indirect',\n [STRUCT_UNIT_DEFENSES.SIGNAL_JAMMING]: 'icon-signal-jam',\n [STRUCT_UNIT_DEFENSES.STEALTH_MODE]: 'icon-stealth',\n\n [STRUCT_ORE_RESERVE_DEFENSES.COORDINATED_RESERVE_RESPONSE_TRACKER]: 'icon-planetary-shield',\n [STRUCT_PLANETARY_DEFENSES.DEFENSIVE_CANNON]: 'icon-counter',\n [STRUCT_PLANETARY_DEFENSES.LOW_ORBIT_BALLISTIC_INTERCEPTOR_NETWORK]: 'icon-signal-jam',\n [STRUCT_ORE_RESERVE_DEFENSES.MONITORING_STATION]: 'icon-planetary-shield',\n [STRUCT_ORE_RESERVE_DEFENSES.ORE_BUNKER]: 'icon-planetary-shield',\n [STRUCT_POWER_GENERATION.SMALL_GENERATOR]: 'icon-refine'\n },\n STRUCT_DESCRIPTIONS = {\n [STRUCT_TYPES.BATTLESHIP]: \"\",\n [STRUCT_TYPES.COMMAND_SHIP]: \"\",\n [STRUCT_TYPES.CONTINENTAL_POWER_PLANT]: \"Consumes Alpha Matter to generate Energy.\",\n [STRUCT_TYPES.CRUISER]: \"\",\n [STRUCT_TYPES.DESTROYER]: \"\",\n [STRUCT_TYPES.FIELD_GENERATOR]: \"Consumes Alpha Matter to generate Energy.\",\n [STRUCT_TYPES.FRIGATE]: \"\",\n [STRUCT_TYPES.HIGH_ALTITUDE_INTERCEPTOR]: \"\",\n [STRUCT_TYPES.JAMMING_SATELLITE]: \"Applies Signal Jamming to all enemy Smart Attacks.\",\n [STRUCT_TYPES.MOBILE_ARTILLERY]: \"\",\n [STRUCT_TYPES.ORBITAL_SHIELD_GENERATOR]: \"Improves Planetary Defense.\",\n [STRUCT_TYPES.ORE_BUNKER]: \"Massively improves Planetary Defense by storing Ore underground.\",\n [STRUCT_TYPES.ORE_EXTRACTOR]: \"Extracts Alpha Ore from the planet.\",\n [STRUCT_TYPES.ORE_REFINERY]: \"Refines Ore into usable Alpha Matter.\",\n [STRUCT_TYPES.PLANETARY_DEFENSE_CANNON]: \"Launches Counter-Attacks against attacking Structs.\",\n [STRUCT_TYPES.PURSUIT_FIGHTER]: \"\",\n [STRUCT_TYPES.SAM_LAUNCHER]: \"\",\n [STRUCT_TYPES.STARFIGHTER]: \"\",\n [STRUCT_TYPES.STEALTH_BOMBER]: \"\",\n [STRUCT_TYPES.SUBMERSIBLE]: \"\",\n [STRUCT_TYPES.TANK]: \"\",\n [STRUCT_TYPES.WORLD_ENGINE]: \"Consumes Alpha Matter to generate Energy.\"\n },\n STRUCT_WEAPON_SYSTEM = {\n PRIMARY_WEAPON: 'primaryWeapon',\n SECONDARY_WEAPON: 'secondaryWeapon'\n },\n STRUCT_WEAPON_CONTROL = {\n GUIDED: 'guided',\n UNGUIDED: 'unguided'\n },\n STRUCT_WEAPON_CONTROL_LABELS = {\n [STRUCT_WEAPON_CONTROL.GUIDED]: 'Smart Weapon',\n [STRUCT_WEAPON_CONTROL.UNGUIDED]: 'Ballistic Weapon'\n },\n STRUCT_STATUS_FLAGS = {\n MATERIALIZED: 1,\n BUILT: 2,\n ONLINE: 4,\n STORED: 8,\n HIDDEN: 16,\n DESTROYED: 32,\n LOCKED: 64\n },\n STRUCT_ACTIONS = {\n ACTIVATE: 'ACTIVATE',\n DEACTIVATE: 'DEACTIVATE',\n ATTACK_PRIMARY_WEAPON: 'ATTACK_PRIMARY_WEAPON',\n ATTACK_SECONDARY_WEAPON: 'ATTACK_SECONDARY_WEAPON',\n DEFENSE_SET: 'DEFENSE_SET',\n DEFENSE_CLEAR: 'DEFENSE_CLEAR',\n MOVE: 'MOVE',\n STEALTH_ACTIVATE: 'STEALTH_ACTIVATE',\n STEALTH_DEACTIVATE: 'STEALTH_DEACTIVATE'\n },\n STRUCT_WATER_RIPPLE = 'waterRipple',\n STRUCT_EQUIPMENT = {\n PASSIVE_WEAPONRY: 'passiveWeaponry',\n UNIT_DEFENSES: 'unitDefenses',\n ORE_RESERVE_DEFENSES: 'oreReserveDefenses',\n PLANETARY_DEFENSES: 'planetaryDefenses',\n PLANETARY_MINING: 'planetaryMining',\n PLANETARY_REFINERY: 'planetaryRefinery',\n POWER_GENERATION: 'powerGeneration',\n },\n STRUCT_STILL_LAYERS = {\n STRUCT_VARIANT_BASE: 'structVariantBase',\n STRUCT_VARIANT_DMG: 'structVariantDmg',\n }\n;\n","export const TASK = {\n WORKER_PATH: '/js/workers/TaskWorker.js',\n MAX_BLOCKS_WHEN_ESTIMATING: 30000,\n MAX_CONCURRENT_PROCESSES: 5,\n CHECKPOINT_COMMIT: 5000000,\n DIFFICULTY_RECALCULATE: 5000000,\n DIFFICULTY_START: 10,\n DIFFICULTY_START_SLEEP_DELAY: 10000,\n CHECKPOINT_BLOCK: 10,\n ESTIMATED_BLOCK_TIME: 5000,\n HASHRATE_INITIAL_ESTIMATE: 300.0,\n IDENTITY_PREFIX: \"IDENTITY\",\n NONCE_PREFIX: \"NONCE\",\n TARGET_DELIMITER: \"@\",\n AUTOMATIC_STATUS_INTERVAL: 60000,\n START_DELAY: 10000,\n};\n","export const TASK_MANAGER_STATUS = {\n OFFLINE: 'offline',\n ONLINE: 'online',\n};\n","export const TASK_STATUS = {\n INITIATED: 'initiated',\n STARTING: 'starting',\n WAITING: 'waiting',\n RUNNING: 'running',\n PAUSED: 'paused',\n TERMINATED: 'terminated',\n COMPLETED: 'completed',\n};\n","export const TASK_TYPES = {\n RAID: 'RAID',\n BUILD: 'BUILD',\n MINE: 'MINE',\n REFINE: 'REFINE',\n};\n","import {AbstractController} from \"../framework/AbstractController\";\nimport {AccountIndexViewModel} from \"../view_models/account/AccountIndexViewModel\";\nimport {AccountProfileViewModel} from \"../view_models/account/AccountProfileViewModel\";\nimport {AccountDevicesViewModel} from \"../view_models/account/AccountDevicesViewModel\";\nimport {AccountNewDeviceCodeViewModel} from \"../view_models/account/AccountNewDeviceCodeViewModel\";\nimport {AccountApproveNewDeviceViewModel} from \"../view_models/account/AccountApproveNewDeviceViewModel\";\nimport {AccountActivatingDeviceViewModel} from \"../view_models/account/AccountActivatingDeviceViewModel\";\nimport {AccountDeviceActivationComplete} from \"../view_models/account/AccountDeviceActivationComplete\";\nimport {AccountDeviceActivationCancelled} from \"../view_models/account/AccountDeviceActivationCancelled\";\nimport {AccountDeviceViewModel} from \"../view_models/account/AccountDeviceViewModel\";\nimport {AccountChangeUsername} from \"../view_models/account/AccountChangeUsername\";\nimport {AccountTransfersViewModel} from \"../view_models/account/AccountTransfersViewModel\";\nimport {AccountTransactionHistory} from \"../view_models/account/AccountTransactionHistory\";\nimport {AccountTransactionViewModel} from \"../view_models/account/AccountTransactionViewModel\";\nimport {AccountTransferAmountViewModel} from \"../view_models/account/AccountTransferAmountViewModel\";\nimport {AccountRecipientSearchViewModel} from \"../view_models/account/AccountRecipientSearchViewModel\";\nimport {AccountRecipientSearchResults} from \"../view_models/account/AccountRecipientSearchResults\";\nimport {AccountRecipientViewModel} from \"../view_models/account/AccountRecipientViewModel\";\nimport {AccountConfirmTransfer} from \"../view_models/account/AccountConfirmTransfer\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class AccountController extends AbstractController {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {AuthManager} authManager\n * @param {PermissionManager} permissionManager\n * @param {AlphaManager} alphaManager\n * @param {GrassManager} grassManager\n * @param {SigningClientManager} signingClientManager\n */\n constructor(\n gameState,\n guildAPI,\n authManager,\n permissionManager,\n alphaManager,\n grassManager,\n signingClientManager\n ) {\n super('Account', gameState);\n this.guildAPI = guildAPI;\n this.authManager = authManager;\n this.permissionManager = permissionManager;\n this.alphaManager = alphaManager;\n this.grassManager = grassManager;\n this.signingClientManager = signingClientManager;\n }\n\n index() {\n const viewModel = new AccountIndexViewModel(this.gameState, this.guildAPI, this.authManager);\n viewModel.render();\n }\n\n /**\n * @param {object} options\n */\n profile(options) {\n const playerId = (options.hasOwnProperty('playerId') && options.playerId)\n ? options.playerId\n : this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id;\n const viewModel = new AccountProfileViewModel(\n this.gameState,\n this.guildAPI,\n playerId\n );\n viewModel.render();\n }\n\n devices() {\n const viewModel = new AccountDevicesViewModel(\n this.gameState,\n this.guildAPI,\n this.authManager,\n this.permissionManager\n );\n viewModel.render();\n }\n\n newDeviceCode() {\n const viewModel = new AccountNewDeviceCodeViewModel(this.gameState, this.guildAPI, this.authManager);\n viewModel.render();\n }\n\n /**\n * @param {PlayerAddressPending} playerAddressPending\n */\n approveNewDevice(playerAddressPending) {\n const viewModel = new AccountApproveNewDeviceViewModel(\n this.gameState,\n this.permissionManager,\n playerAddressPending\n );\n viewModel.render();\n }\n\n /**\n * @param {PlayerAddressPending} playerAddressPending\n */\n activatingDevice(playerAddressPending) {\n const viewModel = new AccountActivatingDeviceViewModel(\n this.gameState,\n this.authManager,\n playerAddressPending\n );\n viewModel.render();\n }\n\n deviceActivationComplete() {\n const viewModel = new AccountDeviceActivationComplete();\n viewModel.render();\n }\n\n deviceActivationCancelled() {\n const viewModel = new AccountDeviceActivationCancelled();\n viewModel.render();\n }\n\n /**\n * @param {PlayerAddress} deviceAddress\n */\n manageDevice(deviceAddress) {\n const viewModel = new AccountDeviceViewModel(\n this.gameState,\n this.guildAPI,\n this.permissionManager,\n deviceAddress\n );\n viewModel.render();\n }\n\n changeUsername() {\n const viewModel = new AccountChangeUsername(\n this.gameState,\n this.guildAPI,\n this.permissionManager,\n this.signingClientManager\n );\n viewModel.render();\n }\n\n transfers() {\n const viewModel = new AccountTransfersViewModel();\n viewModel.render();\n }\n\n /**\n * @param {object} options\n */\n transactionHistory(options) {\n const page = options.hasOwnProperty('page') ? options.page : 1;\n const viewModel = new AccountTransactionHistory(\n this.gameState,\n this.guildAPI,\n page\n );\n viewModel.render();\n }\n\n /**\n * @param {object} options\n */\n transaction(options) {\n const viewModel = new AccountTransactionViewModel(\n this.gameState,\n this.guildAPI,\n options.txId,\n options.comingFromPage,\n options.hasOwnProperty('hasBackToAccountBtn') ? options.hasBackToAccountBtn : false,\n );\n viewModel.render();\n }\n\n transferAmount() {\n const viewModel = new AccountTransferAmountViewModel(this.gameState);\n viewModel.render();\n }\n\n recipientSearch() {\n const viewModel = new AccountRecipientSearchViewModel(this.gameState, this.guildAPI);\n viewModel.render();\n }\n\n /**\n * @param {object} options\n */\n recipientSearchResults(options) {\n const viewModel = new AccountRecipientSearchResults(this.gameState, this.guildAPI, options)\n viewModel.render();\n }\n\n /**\n * @param {object} options\n */\n recipient(options) {\n const viewModel = new AccountRecipientViewModel(this.gameState, this.guildAPI, options);\n viewModel.render();\n }\n\n /**\n * @param {object} options\n */\n confirmTransfer(options) {\n const viewModel = new AccountConfirmTransfer(\n this.gameState,\n this.guildAPI,\n this.alphaManager,\n this.grassManager,\n options\n );\n viewModel.render();\n }\n}","import {AbstractController} from \"../framework/AbstractController\";\nimport {IndexView} from \"../view_models/IndexViewModel\";\nimport {ConnectingToCorp1ViewModel} from \"../view_models/signup/ConnectingToCorp1ViewModel\";\nimport {ConnectingToCorp2ViewModel} from \"../view_models/signup/ConnectingToCorp2ViewModel\";\nimport {IncomingCall1ViewModel} from \"../view_models/signup/IncomingCall1ViewModel\";\nimport {IncomingCall2ViewModel} from \"../view_models/signup/IncomingCall2ViewModel\";\nimport {IncomingCall3ViewModel} from \"../view_models/signup/IncomingCall3ViewModel\";\nimport {SetUsernameViewModel} from \"../view_models/signup/SetUsernameViewModel\";\nimport {RecoveryKeyIntroViewModel} from \"../view_models/signup/RecoveryKeyIntroViewModel\";\nimport {RecoveryKeyCreationViewModel} from \"../view_models/signup/RecoveryKeyCreationViewModel\";\nimport {WalletManager} from \"../managers/WalletManager\";\nimport {RecoveryKeyConfirmationViewModel} from \"../view_models/signup/RecoveryKeyConfirmationViewModel\";\nimport {LoggingInViewModel} from \"../view_models/login/LoggingInViewModel\";\nimport {RecoveryKeyFaqViewModel} from \"../view_models/signup/RecoveryKeyFaqViewModel\";\nimport {SignupSuccessViewModel} from \"../view_models/signup/SignupSuccessViewModel\";\nimport {AuthManager} from \"../managers/AuthManager\";\nimport {Orientation1ViewModel} from \"../view_models/signup/Orientation1ViewModel\";\nimport {Orientation2ViewModel} from \"../view_models/signup/Orientation2ViewModel\";\nimport {Orientation3ViewModel} from \"../view_models/signup/Orientation3ViewModel\";\nimport {Orientation4ViewModel} from \"../view_models/signup/Orientation4ViewModel\";\nimport {Orientation5ViewModel} from \"../view_models/signup/Orientation5ViewModel\";\nimport {Orientation6ViewModel} from \"../view_models/signup/Orientation6ViewModel\";\nimport {Orientation7ViewModel} from \"../view_models/signup/Orientation7ViewModel\";\nimport {Orientation8ViewModel} from \"../view_models/signup/Orientation8ViewModel\";\nimport {OrientationEndViewModel} from \"../view_models/signup/OrientationEndViewModel\";\nimport {ActivateDeviceViewModel} from \"../view_models/login/ActivateDeviceViewModel\";\nimport {ActivateDeviceVerifyViewModel} from \"../view_models/login/ActivateDeviceVerifyViewModel\";\nimport {ActivationCodeInfoDTO} from \"../dtos/ActivationCodeInfoDTO\";\nimport {ActivateDeviceCancelledViewModel} from \"../view_models/login/ActivateDeviceCancelledViewModel\";\nimport {\n ActivateDeviceWaitingForApprovalViewModel\n} from \"../view_models/login/ActivateDeviceWaitingForApprovalViewModel\";\nimport {ActivatingDeviceViewModel} from \"../view_models/login/ActivatingDeviceViewModel\";\nimport {ActivateDeviceCompleteViewModel} from \"../view_models/login/ActivateDeviceCompleteViewModel\";\nimport {RecoverAccountStartViewModel} from \"../view_models/login/RecoverAccountStartViewModel\";\nimport {RecoverAccountSuccessViewModel} from \"../view_models/login/RecoverAccountSuccessViewModel\";\nimport {RecoverAccountFailViewModel} from \"../view_models/login/RecoverAccountFailViewModel\";\nimport {LogoutPermissionsWarningViewModel} from \"../view_models/logout/LogoutPermissionsWarningViewModel\";\nimport {LogoutAssetsWarningViewModel} from \"../view_models/logout/LogoutAssetsWarningViewModel\";\nimport {MenuPage} from \"../framework/MenuPage\";\nimport {MenuWaitingOptions} from \"../options/MenuWaitingOptions\";\n\nexport class AuthController extends AbstractController {\n\n /**\n *\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {WalletManager} walletManager\n * @param {AuthManager} authManager\n */\n constructor(\n gameState,\n guildAPI,\n walletManager,\n authManager\n ) {\n super('Auth', gameState);\n this.guildAPI = guildAPI;\n this.walletManager = walletManager;\n this.authManager = authManager;\n }\n\n index() {\n const viewModel = new IndexView();\n viewModel.render();\n }\n\n signupConnectingToCorporate1() {\n const viewModel = new ConnectingToCorp1ViewModel();\n viewModel.render();\n }\n\n signupConnectingToCorporate2() {\n const viewModel = new ConnectingToCorp2ViewModel();\n viewModel.render();\n }\n\n signupIncomingCall1() {\n const viewModel = new IncomingCall1ViewModel();\n viewModel.render();\n }\n\n signupIncomingCall2() {\n const viewModel = new IncomingCall2ViewModel();\n viewModel.render();\n }\n\n signupIncomingCall3() {\n const viewModel = new IncomingCall3ViewModel();\n viewModel.render();\n }\n\n signupSetUsername() {\n const viewModel = new SetUsernameViewModel(this.gameState);\n viewModel.render();\n }\n\n signupRecoveryKeyIntro() {\n const viewModel = new RecoveryKeyIntroViewModel();\n viewModel.render();\n }\n\n signupRecoveryKeyCreation() {\n if (this.gameState.mnemonic === null) {\n this.gameState.mnemonic = this.walletManager.createMnemonic();\n }\n const viewModel = new RecoveryKeyCreationViewModel(this.gameState.mnemonic);\n viewModel.render();\n }\n\n signupRecoveryKeyConfirmation() {\n const viewModel = new RecoveryKeyConfirmationViewModel(\n this.gameState,\n this.authManager\n );\n viewModel.render();\n }\n\n /**\n * @param {object} options\n */\n signupRecoveryKeyConfirmFail(options) {\n const viewModel = new RecoveryKeyCreationViewModel(this.gameState.mnemonic);\n viewModel.render(options.view);\n }\n\n /**\n * @param {object} options\n */\n signupRecoveryKeyFaq(options) {\n const viewModel = new RecoveryKeyFaqViewModel(options.backButtonHandler);\n viewModel.render();\n }\n\n signupSuccess() {\n const viewModel = new SignupSuccessViewModel();\n viewModel.render();\n }\n\n loggingIn() {\n const viewModel = new LoggingInViewModel();\n viewModel.render();\n }\n\n orientation1() {\n const viewModel = new Orientation1ViewModel();\n viewModel.render();\n }\n\n orientation2() {\n const viewModel = new Orientation2ViewModel();\n viewModel.render();\n }\n\n orientation3() {\n const viewModel = new Orientation3ViewModel();\n viewModel.render();\n }\n\n orientation4() {\n const viewModel = new Orientation4ViewModel();\n viewModel.render();\n }\n\n orientation5() {\n const viewModel = new Orientation5ViewModel();\n viewModel.render();\n }\n\n orientation6() {\n const viewModel = new Orientation6ViewModel();\n viewModel.render();\n }\n\n orientation7() {\n const viewModel = new Orientation7ViewModel();\n viewModel.render();\n }\n\n orientation8() {\n const viewModel = new Orientation8ViewModel();\n viewModel.render();\n }\n\n orientationEnd() {\n const viewModel = new OrientationEndViewModel();\n viewModel.render();\n }\n\n loginActivateDevice() {\n const viewModel = new ActivateDeviceViewModel(this.guildAPI);\n viewModel.render();\n }\n\n /**\n * @param {ActivationCodeInfoDTO|null} activationCodeInfoDTO\n */\n loginActivateDeviceVerify(activationCodeInfoDTO = null) {\n const viewModel = new ActivateDeviceVerifyViewModel(\n this.authManager,\n activationCodeInfoDTO\n );\n viewModel.render();\n }\n\n loginActivateDeviceCancelled() {\n const viewModel = new ActivateDeviceCancelledViewModel();\n viewModel.render();\n }\n\n /**\n * @param {ActivationCodeInfoDTO|null} activationCodeInfoDTO\n */\n loginActivateDeviceWaitingForApproval(activationCodeInfoDTO = null) {\n const viewModel = new ActivateDeviceWaitingForApprovalViewModel(\n this.gameState,\n activationCodeInfoDTO\n );\n viewModel.render();\n }\n\n /**\n * @param {ActivationCodeInfoDTO|null} activationCodeInfoDTO\n */\n loginActivatingDevice(activationCodeInfoDTO) {\n const viewModel = new ActivatingDeviceViewModel(\n this.gameState,\n this.authManager,\n activationCodeInfoDTO\n );\n viewModel.render();\n }\n\n loginActivateDeviceComplete() {\n const viewModel = new ActivateDeviceCompleteViewModel(this.gameState);\n viewModel.render();\n }\n\n loginRecoverAccountStart() {\n const viewModel = new RecoverAccountStartViewModel(this.gameState, this.authManager);\n viewModel.render();\n }\n\n loginRecoverAccountSuccess() {\n const viewModel = new RecoverAccountSuccessViewModel();\n viewModel.render();\n }\n\n loginRecoverAccountFail() {\n const viewModel = new RecoverAccountFailViewModel();\n viewModel.render();\n }\n\n /**\n * @param {object} options\n */\n logout(options) {\n\n const addressToRevoke = options.hasOwnProperty('address') ? options.address : null;\n\n const menuWaitingOptions = new MenuWaitingOptions();\n menuWaitingOptions.headerBtnLabel = 'Logout';\n menuWaitingOptions.waitingMessage = 'Logging out.';\n\n MenuPage.router.goto('Generic', 'menuWaiting', menuWaitingOptions);\n\n if (addressToRevoke) {\n this.authManager.revokeAddress(addressToRevoke).then();\n } else {\n this.authManager.logout();\n }\n }\n\n /**\n * @param {PlayerAddress} playerAddress\n */\n logoutAssetsWarning(playerAddress) {\n const viewModel = new LogoutAssetsWarningViewModel(this.gameState, playerAddress);\n viewModel.render();\n }\n\n /**\n * @param {PlayerAddress} playerAddress\n */\n logoutPermissionsWarning(playerAddress) {\n const viewModel = new LogoutPermissionsWarningViewModel(this.gameState, playerAddress);\n viewModel.render();\n }\n}","import {AbstractController} from \"../framework/AbstractController\";\nimport {FleetIndexViewModel} from \"../view_models/fleet/FleetIndexViewModel\";\nimport {ScanViewModel} from \"../view_models/fleet/ScanViewModel\";\nimport {ScanResultsViewModel} from \"../view_models/fleet/ScanResultsViewModel\";\nimport {MapManager} from \"../managers/MapMananger\";\nimport {PreviewViewModel} from \"../view_models/fleet/PreviewViewModel\";\n\n\nexport class FleetController extends AbstractController {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {GrassManager} grassManager\n * @param {FleetManager} fleetManager\n * @param {RaidManager} raidManager\n * @param {PlanetManager} planetManager\n * @param {MapManager} mapManager\n * @param {StructManager} structManager\n */\n constructor(\n gameState,\n guildAPI,\n grassManager,\n fleetManager,\n raidManager,\n planetManager,\n mapManager,\n structManager\n ) {\n super('Fleet', gameState);\n this.guildAPI = guildAPI;\n this.grassManager = grassManager;\n this.fleetManager = fleetManager;\n this.raidManager = raidManager;\n this.planetManager = planetManager;\n this.mapManager = mapManager;\n this.structManager = structManager;\n }\n\n /**\n * @param {Object} options\n */\n index(options = {}) {\n\n const planetCardType = options.hasOwnProperty('planetCardType') ? options.planetCardType : null;\n const raidCardType = options.hasOwnProperty('raidCardType') ? options.raidCardType : null;\n\n const viewModel = new FleetIndexViewModel(\n this.gameState,\n this.guildAPI,\n this.fleetManager,\n this.grassManager,\n this.planetManager,\n this.mapManager,\n this.raidManager,\n this.structManager,\n planetCardType,\n raidCardType\n );\n viewModel.render();\n }\n\n scan() {\n const viewModel = new ScanViewModel(this.gameState, this.guildAPI);\n viewModel.render();\n }\n\n /**\n * @param {Object} options\n */\n scanResults(options) {\n const viewModel = new ScanResultsViewModel(\n this.gameState,\n this.guildAPI,\n this.fleetManager,\n this.grassManager,\n this.raidManager,\n this.mapManager,\n options\n );\n viewModel.render();\n }\n\n /**\n * @param {Object} options\n */\n preview(options) {\n const viewModel = new PreviewViewModel(\n this.gameState,\n this.guildAPI,\n this.fleetManager,\n this.grassManager,\n this.raidManager,\n this.mapManager,\n options.planet_id,\n options.planet_undiscovered_ore,\n options.defender_id,\n options.defender_ore,\n options.attacker_id\n );\n viewModel.render();\n }\n}","import {AbstractController} from \"../framework/AbstractController\";\nimport {MenuWaitingViewModel} from \"../view_models/generic/MenuWaitingViewModel\";\nimport {MenuWaitingOptions} from \"../options/MenuWaitingOptions\";\n\nexport class GenericController extends AbstractController {\n\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super('Generic', gameState);\n }\n\n /**\n * @param {MenuWaitingOptions} options\n */\n menuWaiting(options) {\n const viewModel = new MenuWaitingViewModel(options);\n viewModel.render();\n }\n\n}","import {AbstractController} from \"../framework/AbstractController\";\nimport {GuildIndexViewModel} from \"../view_models/guild/GuildIndexViewModel\";\nimport {GuildProfileViewModel} from \"../view_models/guild/GuildProfileViewModel\";\nimport {MemberRosterViewModel} from \"../view_models/guild/MemberRosterViewModel\";\nimport {GuildsDirectoryViewModel} from \"../view_models/guild/GuildsDirectoryViewModel\";\nimport {ReactorViewModel} from \"../view_models/guild/ReactorViewModel\";\nimport {ManageAlphaViewModel} from \"../view_models/guild/ManageAlphaViewModel\";\n\nexport class GuildController extends AbstractController {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {GrassManager} grassManager\n * @param {AlphaManager} alphaManager\n */\n constructor(\n gameState,\n guildAPI,\n grassManager,\n alphaManager\n ) {\n super('Guild', gameState);\n this.guildAPI = guildAPI;\n this.grassManager = grassManager;\n this.alphaManager = alphaManager;\n }\n\n index() {\n const viewModel = new GuildIndexViewModel(this.gameState, this.guildAPI);\n viewModel.render();\n }\n\n /**\n * @param {object} options\n */\n profile(options) {\n const viewModel = new GuildProfileViewModel(this.gameState, this.guildAPI, options.guildId);\n viewModel.render();\n }\n\n /**\n * @param {object} options\n */\n roster(options) {\n const viewModel = new MemberRosterViewModel(this.gameState, this.guildAPI, options.guildId);\n viewModel.render();\n }\n\n directory() {\n const viewModel = new GuildsDirectoryViewModel(this.gameState, this.guildAPI);\n viewModel.render();\n }\n\n reactor() {\n const viewModel = new ReactorViewModel(this.gameState, this.guildAPI);\n viewModel.render();\n }\n\n /**\n * @param {object} options\n */\n manageAlpha(options) {\n const viewModel = new ManageAlphaViewModel(\n this.gameState,\n this.guildAPI,\n this.grassManager,\n this.alphaManager,\n options\n );\n viewModel.render();\n }\n}","import {EVENTS} from \"../constants/Events\";\nimport {Queue} from \"./Queue\";\n\nexport class AnimationEventQueue extends Queue {\n\n constructor() {\n super();\n this.isPlaying = false;\n this.currentEvent = null;\n }\n\n enqueue(event) {\n super.enqueue(event);\n if (!this.isPlaying) {\n this.playNext();\n }\n }\n\n playNext() {\n if (this.isEmpty()) {\n const wasPlaying = this.isPlaying;\n this.isPlaying = false;\n this.currentEvent = null;\n // Notify listeners that the queue has just transitioned to idle so they\n // can flush any work they deferred while animations were in flight (e.g.\n // HUD renders that would otherwise have clobbered partial-state frames).\n if (wasPlaying) {\n window.dispatchEvent(new CustomEvent(EVENTS.ANIMATION_QUEUE_EMPTY));\n }\n return;\n }\n\n this.isPlaying = true;\n this.currentEvent = super.dequeue();\n window.dispatchEvent(this.currentEvent);\n }\n\n initListeners() {\n window.addEventListener(EVENTS.ANIMATION_END, async () => {\n if (this.currentEvent && this.currentEvent.onAnimationEnd) {\n await this.currentEvent.onAnimationEnd();\n }\n this.playNext();\n });\n }\n}\n","import {DoublyLinkedNode} from \"./DoublyLinkedNode\";\n\nexport class DoublyLinkedList {\n\n constructor() {\n /** @type {DoublyLinkedNode|null} */\n this.head = null;\n\n /** @type {DoublyLinkedNode|null} */\n this.tail = null;\n\n this.size = 0;\n }\n\n /**\n * @return {boolean}\n */\n isEmpty() {\n return this.size === 0;\n }\n\n /**\n * @param {*} value\n */\n addToTail(value) {\n const node = new DoublyLinkedNode(value);\n\n if (this.isEmpty()) {\n this.head = node;\n this.tail = node;\n } else {\n node.prev = this.tail;\n this.tail.next = node;\n this.tail = node;\n }\n\n this.size++;\n }\n\n /**\n * @return {*|null}\n */\n removeFromHead() {\n if (this.isEmpty()) {\n return null;\n }\n\n const value = this.head.value;\n\n if (this.size === 1) {\n this.head = null;\n this.tail = null;\n } else {\n this.head = this.head.next;\n this.head.prev = null;\n }\n\n this.size--;\n return value;\n }\n}\n","export class DoublyLinkedNode {\n\n /**\n * @param {*} value\n */\n constructor(value) {\n this.value = value;\n\n /** @type {DoublyLinkedNode|null} */\n this.prev = null;\n\n /** @type {DoublyLinkedNode|null} */\n this.next = null;\n }\n}\n","import {DoublyLinkedList} from \"./DoublyLinkedList\";\n\nexport class Queue {\n\n constructor() {\n this.list = new DoublyLinkedList();\n }\n\n /**\n * @param {*} value\n */\n enqueue(value) {\n this.list.addToTail(value);\n }\n\n /**\n * @return {*|null}\n */\n dequeue() {\n return this.list.removeFromHead();\n }\n\n /**\n * @return {boolean}\n */\n isEmpty() {\n return this.list.isEmpty();\n }\n\n /**\n * @return {number}\n */\n getSize() {\n return this.list.size;\n }\n}\n","export class ActivationCodeInfoDTO {\n constructor() {\n this.code = null;\n this.player_id = null;\n this.tag = null;\n this.username = null;\n this.pfp = null;\n }\n}","export class AddPendingAddressRequestDTO {\n constructor() {\n this.player_id = null;\n this.guild_id = null;\n this.code = null;\n this.address = null;\n this.signature = null;\n this.pubkey = null;\n this.user_agent = null;\n }\n}","export class AddPlayerAddressMetaRequestDTO {\n constructor() {\n this.address = null;\n this.guild_id = null;\n this.user_agent = null;\n }\n}","export class CreateActivationCodeRequestDTO {\n constructor() {\n this.logged_in_address = null;\n this.guild_id = null;\n }\n}","export class GuildAPICacheItemDTO {\n constructor(value) {\n this.value = value;\n this.timestamp = Date.now();\n }\n}","export class GuildPowerStatsDTO {\n constructor() {\n this.total_fuel = null;\n this.total_load = null;\n this.total_capacity = null;\n this.avg_connection_capacity = null;\n }\n}","export class GuildSearchResultDTO {\n constructor() {\n this.guild_id = null;\n this.name = null;\n this.logo = null;\n this.alpha = null;\n this.members = null;\n }\n}","export class LoginRequestDTO {\n constructor() {\n this.address = null;\n this.signature = null;\n this.pubkey = null;\n this.guild_id = null;\n this.unix_timestamp = null;\n }\n}","export class MapStructTileRenderParamsDTO {\n constructor() {\n this.tileElement = null;\n this.struct = null;\n }\n}","export class NavItemDTO {\n constructor(id, label, actionHandler = () => {}) {\n this.id = id;\n this.label = label;\n this.actionHandler = actionHandler;\n }\n}","export class PlanetaryShieldInfoDTO {\n constructor() {\n this.planet_id = null;\n this.planetary_shield = null;\n this.block_start_raid = null;\n }\n}","export class PlayerSearchResultDTO {\n constructor() {\n this.id = null;\n this.address = null;\n this.username = null;\n this.pfp = null;\n this.guild_name = null;\n this.tag = null;\n this.fleet_status = null;\n this.alpha = null;\n this.undiscovered_ore = null;\n this.ore = null;\n this.planet_id = null;\n }\n}","/**\n * Generic position data transfer object\n */\nexport class PositionDTO {\n\n /**\n * @param {int} x\n * @param {int} y\n */\n constructor(x = 0, y = 0) {\n this.x = x;\n this.y = y;\n }\n}\n","export class RaidSearchRequestDTO {\n constructor() {\n this.search_string = null;\n this.guild_id = null;\n this.min_ore = 0;\n this.fleet_away_only = 0;\n this.page = 1;\n }\n}","export class SetAddressPermissionsRequestDTO {\n constructor() {\n this.address = null;\n this.permissions = null;\n }\n}","export class SetPendingAddressPermissionsRequestDTO {\n constructor() {\n this.code = null;\n this.address = null;\n this.permissions = null;\n }\n}","export class SignupRequestDTO {\n constructor() {\n this.primary_address = null;\n this.signature = null;\n this.pubkey = null;\n this.guild_id = null;\n this.username = null;\n this.pfp = null;\n }\n}","export class SocialsDTO {\n constructor() {\n this.bluesky = null;\n this.discord_contact = null;\n this.discord_server = null;\n this.facebook = null;\n this.farcaster = null;\n this.instagram = null;\n this.telegram_channel = null;\n this.telegram_contact = null;\n this.twitch = null;\n this.x = null;\n this.youtube = null;\n }\n}","export class TransferSearchRequestDTO {\n constructor() {\n this.search_string = null;\n this.guild_id = null;\n }\n}","export class AnimationError extends Error {\n constructor(message, detail = {}) {\n super(message);\n this.detail = detail;\n }\n}","export class GuildAPIError extends Error {}","export class MapOrnamentComponentBuilderError extends Error {}","export class MapTransitionLayerComponentFactoryError extends Error {}","import {EVENTS} from \"../constants/Events\";\n\nexport class AlphaCountChangedEvent extends CustomEvent {\n\n /**\n * @param {string} playerType\n */\n constructor(playerType) {\n super(EVENTS.ALPHA_COUNT_CHANGED);\n this.playerType = playerType;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class AnimationEndEvent extends CustomEvent {\n\n /**\n * @param {string} animationName the name of the animation\n * @param {string} structId the subject of the animation\n * @param {string|null} mapId the id of the map the animation played on\n * @param {number|null} healthAfter the struct health that this animation ended with;\n * lets HUD/HUD-like listeners render partial state mid-attack-sequence rather than\n * pulling the (already-final) value from gameState\n */\n constructor(animationName, structId, mapId = null, healthAfter = null) {\n super(EVENTS.ANIMATION_END);\n\n this.animationName = animationName;\n this.structId = structId;\n this.mapId = mapId;\n this.healthAfter = healthAfter;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class AnimationEvent extends CustomEvent {\n\n /**\n * @param {string} structId the subject of the animation\n * @param {string[]} animationNames the names of the animations to play simultaneously\n * @param {boolean} showStructStillDuringAnimation whether or not to show the still struct image while the animation plays\n * @param {boolean} showStructStillAfterAnimation whether or not the still struct image should still be shown after the animations ends\n * @param {object} options optional parameters such which projectile to use in the animation\n * @param {string|null} mapId the id of the map the animation should play on; used by\n * map layer listeners to ignore events not intended for them\n */\n constructor(\n structId,\n animationNames,\n showStructStillDuringAnimation = false,\n showStructStillAfterAnimation = true,\n options = {},\n mapId = null\n ) {\n super(EVENTS.ANIMATION);\n\n this.structId = structId;\n this.animationNames = animationNames;\n this.showStructStillDuringAnimation = showStructStillDuringAnimation;\n this.showStructStillAfterAnimation = showStructStillAfterAnimation;\n this.options = options;\n this.mapId = mapId;\n\n /** @type {function(): (void|Promise)} */\n this.onAnimationEnd = null;\n }\n\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class ChargeLevelChangedEvent extends CustomEvent {\n constructor(playerId, chargeLevel) {\n super(EVENTS.CHARGE_LEVEL_CHANGED);\n this.playerId = playerId;\n this.chargeLevel = chargeLevel;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class ClearAttackTargetsEvent extends CustomEvent {\n /**\n * @param {string} mapId\n */\n constructor(mapId) {\n super(EVENTS.CLEAR_ATTACK_TARGETS);\n this.mapId = mapId;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class ClearDefendTargetsEvent extends CustomEvent {\n /**\n * @param {string} mapId\n */\n constructor(mapId) {\n super(EVENTS.CLEAR_DEFEND_TARGETS);\n this.mapId = mapId;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class ClearMoveTargetsEvent extends CustomEvent {\n /**\n * @param {string} mapId\n */\n constructor(mapId) {\n super(EVENTS.CLEAR_MOVE_TARGETS);\n this.mapId = mapId;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class ClearStructTileEvent extends CustomEvent {\n /**\n * @param {string} mapId\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n */\n constructor(mapId, tileType, ambit, slot, playerId) {\n super(EVENTS.CLEAR_STRUCT_TILE);\n this.mapId = mapId;\n this.tileType = tileType;\n this.ambit = ambit;\n this.slot = slot;\n this.playerId = playerId;\n }\n}\n\n","import {EVENTS} from \"../constants/Events\";\n\nexport class EnergyUsageChangedEvent extends CustomEvent {\n\n /**\n * @param {string} playerType\n */\n constructor(playerType) {\n super(EVENTS.ENERGY_USAGE_CHANGED);\n this.playerType = playerType;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class OreCountChangedEvent extends CustomEvent {\n\n /**\n * @param {string} playerType\n */\n constructor(playerType) {\n super(EVENTS.ORE_COUNT_CHANGED);\n this.playerType = playerType;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class PendingBuildAddedEvent extends CustomEvent {\n /**\n * @param {string} mapId\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n * @param {StructType} structType\n */\n constructor(mapId, tileType, ambit, slot, playerId, structType) {\n super(EVENTS.PENDING_BUILD_ADDED);\n this.mapId = mapId;\n this.tileType = tileType;\n this.ambit = ambit;\n this.slot = slot;\n this.playerId = playerId;\n this.structType = structType;\n }\n}\n\n","import {EVENTS} from \"../constants/Events\";\n\nexport class PlanetRaidStatusChangedEvent extends CustomEvent {\n\n /**\n * @param {string} playerType\n */\n constructor(playerType) {\n super(EVENTS.PLANET_RAID_STATUS_CHANGED);\n this.playerType = playerType;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class RefreshActionBarEvent extends CustomEvent {\n\n constructor() {\n super(EVENTS.REFRESH_ACTION_BAR);\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class RefreshActionBarIfSelectedEvent extends CustomEvent {\n /**\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n * @param {string} structId\n */\n constructor(tileType, ambit, slot, playerId, structId) {\n super(EVENTS.REFRESH_ACTION_BAR_IF_SELECTED);\n this.tileType = tileType;\n this.ambit = ambit;\n this.slot = slot;\n this.playerId = playerId;\n this.structId = structId;\n }\n}\n\n","import {EVENTS} from \"../constants/Events\";\n\nexport class RenderDeploymentIndicatorEvent extends CustomEvent {\n /**\n * @param {string} mapId\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n */\n constructor(mapId, tileType, ambit, slot, playerId) {\n super(EVENTS.RENDER_DEPLOYMENT_INDICATOR);\n this.mapId = mapId;\n this.tileType = tileType;\n this.ambit = ambit;\n this.slot = slot;\n this.playerId = playerId;\n }\n}\n\n","import {EVENTS} from \"../constants/Events\";\nimport {Struct} from \"../models/Struct\";\n\nexport class RenderStructEvent extends CustomEvent {\n /**\n * @param {string} mapId\n * @param {Struct} struct\n * @param {AnimationEvent} animationToAutoplay\n */\n constructor(mapId, struct, animationToAutoplay = null) {\n super(EVENTS.RENDER_STRUCT);\n this.mapId = mapId;\n this.struct = struct;\n this.animationToAutoplay = animationToAutoplay;\n }\n}\n\n","import {EVENTS} from \"../constants/Events\";\nimport {Struct} from \"../models/Struct\";\n\nexport class RenderStructHUDEvent extends CustomEvent {\n /**\n * @param {string} mapId\n * @param {Struct} struct\n */\n constructor(mapId, struct) {\n super(EVENTS.RENDER_STRUCT_HUD);\n this.mapId = mapId;\n this.struct = struct;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class SaveGameStateEvent extends CustomEvent {\n constructor() {\n super(EVENTS.SAVE_GAME_STATE);\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class ShieldHealthChangedEvent extends CustomEvent {\n\n /**\n * @param {string} playerType\n */\n constructor(playerType) {\n super(EVENTS.SHIELD_HEALTH_CHANGED);\n this.playerType = playerType;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class ShowAttackTargetsEvent extends CustomEvent {\n /**\n * @param {string} mapId\n * @param {string[]} weaponAmbitsArray - Valid ambits for the weapon (e.g. [\"space\", \"air\"])\n */\n constructor(mapId, weaponAmbitsArray) {\n super(EVENTS.SHOW_ATTACK_TARGETS);\n this.mapId = mapId;\n this.weaponAmbitsArray = weaponAmbitsArray;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class ShowDefendTargetsEvent extends CustomEvent {\n /**\n * @param {string} mapId\n */\n constructor(mapId) {\n super(EVENTS.SHOW_DEFEND_TARGETS);\n this.mapId = mapId;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class ShowMoveTargetsEvent extends CustomEvent {\n /**\n * @param {string} mapId\n */\n constructor(mapId) {\n super(EVENTS.SHOW_MOVE_TARGETS);\n this.mapId = mapId;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class StructCountChangedEvent extends CustomEvent {\n\n /**\n * @param {string} playerType\n */\n constructor(playerType) {\n super(EVENTS.STRUCT_COUNT_CHANGED);\n this.playerType = playerType;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class TaskCmdKillEvent extends CustomEvent {\n /**\n * @param {string} pid\n */\n constructor(pid) {\n super(EVENTS.TASK_CMD_KILL);\n this.pid = pid;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class TaskCmdSpawnEvent extends CustomEvent {\n /**\n * @param {TaskState} state\n */\n constructor(state) {\n super(EVENTS.TASK_CMD_SPAWN);\n this.state = state;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class TaskCompletedEvent extends CustomEvent {\n /**\n * @param {TaskState} state\n */\n constructor(state) {\n super(EVENTS.TASK_COMPLETED);\n this.state = state;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class TaskManagerStatusChangedEvent extends CustomEvent {\n /**\n * @param {string} status\n */\n constructor(status) {\n super(EVENTS.TASK_MANAGER_STATUS_CHANGED);\n this.status = status;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class TaskStateChangedEvent extends CustomEvent {\n /**\n * @param {TaskState} state\n */\n constructor(state) {\n super(EVENTS.TASK_STATE_CHANGED);\n this.state = state;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class TaskWorkerChangedEvent extends CustomEvent {\n /**\n * @param {TaskState} state\n */\n constructor(state) {\n super(EVENTS.TASK_WORKER_CHANGED);\n this.state = state;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class TrackDestroyedStructEvent extends CustomEvent {\n\n /**\n * @param {string} playerType\n * @param {string} structId\n */\n constructor(playerType, structId) {\n super(EVENTS.TRACK_DESTROYED_STRUCT);\n this.playerType = playerType;\n this.structId = structId;\n }\n}\n\n","import {EVENTS} from \"../constants/Events\";\n\nexport class TrackDestroyedStructsEvent extends CustomEvent {\n\n /**\n * @param {string} playerType\n */\n constructor(playerType) {\n super(EVENTS.TRACK_DESTROYED_STRUCTS);\n this.playerType = playerType;\n }\n}\n\n","import {EVENTS} from \"../constants/Events\";\n\nexport class UndiscoveredOreCountChangedEvent extends CustomEvent {\n\n /**\n * @param {string} playerType\n */\n constructor(playerType) {\n super(EVENTS.UNDISCOVERED_ORE_COUNT_CHANGED);\n this.playerType = playerType;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class UpdateTileStructIdEvent extends CustomEvent {\n /**\n * @param {string} mapId\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n * @param {string} structId\n */\n constructor(mapId, tileType, ambit, slot, playerId, structId) {\n super(EVENTS.UPDATE_TILE_STRUCT_ID);\n this.mapId = mapId;\n this.tileType = tileType;\n this.ambit = ambit;\n this.slot = slot;\n this.playerId = playerId;\n this.structId = structId;\n }\n}\n\n","import {ANIMATION} from \"../constants/AnimationConstants\";\nimport {AnimationEvent} from \"../events/AnimationEvent\";\nimport {CaseConverter, UPPER_SNAKE_CASE} from \"../util/CaseConverter\";\nimport {\n STRUCT_TYPES,\n STRUCT_UNIT_DEFENSES,\n STRUCT_WEAPON_SYSTEM\n} from \"../constants/StructConstants\";\nimport {AMBITS} from \"../constants/Ambits\";\nimport {AnimationError} from \"../errors/AnimationError\";\n\nexport class AnimationEventFactory {\n\n constructor() {\n this.caseConverter = new CaseConverter();\n }\n\n /**\n * @param {string} structId the id of the struct that activated stealth mode\n * @param {string|null} mapId the id of the map the animation should play on\n * @return {AnimationEvent} an event specifying the animation to play when stealth mode is activated\n */\n makeStealthActivateAnimationEvent(structId, mapId = null) {\n return new AnimationEvent(\n structId,\n [ANIMATION.NAMES.STEALTH.ACTIVATE],\n false,\n true,\n {},\n mapId\n );\n }\n\n /**\n * @param {string} structId the id of the struct that deactivated stealth mode\n * @param {string|null} mapId the id of the map the animation should play on\n * @return {AnimationEvent} an event specifying the animation to play when stealth mode is deactivated\n */\n makeStealthDeactivateAnimationEvent(structId, mapId = null) {\n return new AnimationEvent(\n structId,\n [ANIMATION.NAMES.STEALTH.DEACTIVATE],\n false,\n true,\n {},\n mapId\n );\n }\n\n /**\n * @param {string} attackStructId the id of the attacking struct\n * @param {string} weaponSystem the weapon system being used by the attacking struct such as primaryWeapon, secondaryWeapon or planetaryDefenses\n * @param {string|null} mapId the id of the map the animation should play on\n * @param {number|null} attackStructHealthAfter the attacking struct's health at\n * the point in the sequence at which this animation ends; when provided, the\n * still/HUD will render at this partial value instead of falling back to\n * gameState (which already holds the final post-attack value)\n * @return {AnimationEvent} an event specifying the animation to play for the attacking struct\n */\n makeAttackAnimationEvent(attackStructId, weaponSystem, mapId = null, attackStructHealthAfter = null) {\n const weaponSystemFormatted = this.caseConverter.convert(weaponSystem, UPPER_SNAKE_CASE);\n const options = {};\n if (attackStructHealthAfter !== null && attackStructHealthAfter !== undefined) {\n options.healthAfter = parseInt('' + attackStructHealthAfter);\n }\n return new AnimationEvent(\n attackStructId,\n [ANIMATION.NAMES.ATTACK[weaponSystemFormatted]],\n false,\n true,\n options,\n mapId\n );\n }\n\n /**\n * @param {string} targetStructId the id of the struct being targeted\n * @param {string} attackStructType the StructType.type of the attacking struct\n * @param {string} attackStructOperatingAmbit the current ambit of the attacking struct\n * @param {string} weaponSystem the weapon system being used by the attacking struct such as primaryWeapon, secondaryWeapon or planetaryDefenses\n * @param {string} targetStructType the StructType.type of the struct being targeted\n * @param {string} targetStructOperatingAmbit the current ambit of the struct being targeted\n * @param {string} targetStructCategory whether the struct being targeted is fleet or planetary\n * @param {string|number} targetHealthBefore the health of the struct being targeted before receiving damage\n * @param {string|number} targetHealthAfter the health of the struct being targeted after receiving damage\n * @param {boolean} evaded whether or not the struct being targeted evaded the attack\n * @param {string} evadedCause the unit defenses used to evade the attack\n * @param {string|null} mapId the id of the map the animation should play on\n * @return {AnimationEvent|null} an event specifying the animation to play for the target struct\n */\n makeReceiveDamageAnimationEvent(\n targetStructId,\n attackStructType,\n attackStructOperatingAmbit,\n weaponSystem,\n targetStructType,\n targetStructOperatingAmbit,\n targetStructCategory,\n targetHealthBefore,\n targetHealthAfter,\n evaded = false,\n evadedCause = '',\n mapId = null\n ) {\n\n attackStructOperatingAmbit = attackStructOperatingAmbit.toUpperCase();\n targetStructOperatingAmbit = targetStructOperatingAmbit.toUpperCase();\n targetHealthBefore = parseInt('' + targetHealthBefore);\n targetHealthAfter = parseInt('' + targetHealthAfter);\n\n const options = {\n healthAfter: targetHealthAfter,\n };\n\n // --- Evasion cases ---\n\n if (evaded && evadedCause === STRUCT_UNIT_DEFENSES.SIGNAL_JAMMING) {\n return new AnimationEvent(\n targetStructId,\n [\n ANIMATION.NAMES.EVADE,\n ],\n true,\n true,\n { ...options, projectile: ANIMATION.PROJECTILES.TORPEDO },\n mapId\n );\n } else if (evaded) {\n return new AnimationEvent(\n targetStructId,\n [ANIMATION.NAMES.EVADE],\n true,\n true,\n options,\n mapId\n );\n }\n\n let animationNames = [];\n let firstOrLast = (targetHealthAfter > 0) ? ANIMATION.NAMES.FIRST : ANIMATION.NAMES.LAST;\n let projectile = '';\n\n // --- Horizontal cases ---\n\n // - Horizontal Cannon -\n if (\n (\n attackStructType === STRUCT_TYPES.BATTLESHIP\n && attackStructOperatingAmbit === AMBITS.SPACE\n && targetStructOperatingAmbit === AMBITS.SPACE\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n || (\n attackStructType === STRUCT_TYPES.TANK\n && attackStructOperatingAmbit === AMBITS.LAND\n && targetStructOperatingAmbit === AMBITS.LAND\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n ) {\n animationNames.push(ANIMATION.NAMES.IMPACT.HORIZONTAL.CANNON);\n animationNames.push(ANIMATION.NAMES.SHAKE.HORIZONTAL.DEFAULT[firstOrLast]);\n\n projectile = ANIMATION.PROJECTILES.CANNON;\n }\n\n // - Horizontal Missile -\n else if (\n (\n attackStructType === STRUCT_TYPES.STARFIGHTER\n && attackStructOperatingAmbit === AMBITS.SPACE\n && targetStructOperatingAmbit === AMBITS.SPACE\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n || (\n attackStructType === STRUCT_TYPES.FRIGATE\n && attackStructOperatingAmbit === AMBITS.SPACE\n && targetStructOperatingAmbit === AMBITS.SPACE\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n || (\n attackStructType === STRUCT_TYPES.PURSUIT_FIGHTER\n && attackStructOperatingAmbit === AMBITS.AIR\n && targetStructOperatingAmbit === AMBITS.AIR\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n || (\n attackStructType === STRUCT_TYPES.COMMAND_SHIP\n && attackStructOperatingAmbit === targetStructOperatingAmbit\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n ) {\n animationNames.push(ANIMATION.NAMES.IMPACT.HORIZONTAL.MISSILE);\n animationNames.push(ANIMATION.NAMES.SHAKE.HORIZONTAL.DEFAULT[firstOrLast]);\n\n projectile = ANIMATION.PROJECTILES.MISSILE;\n }\n\n // - Horizontal Torpedo -\n else if (\n attackStructType === STRUCT_TYPES.HIGH_ALTITUDE_INTERCEPTOR\n && attackStructOperatingAmbit === AMBITS.AIR\n && targetStructOperatingAmbit === AMBITS.AIR\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n ) {\n animationNames.push(ANIMATION.NAMES.IMPACT.HORIZONTAL.TORPEDO);\n animationNames.push(ANIMATION.NAMES.SHAKE.HORIZONTAL.DEFAULT[firstOrLast]);\n\n projectile = ANIMATION.PROJECTILES.TORPEDO;\n }\n\n // - Horizontal Gatling -\n else if (\n attackStructType === STRUCT_TYPES.STARFIGHTER\n && attackStructOperatingAmbit === AMBITS.SPACE\n && targetStructOperatingAmbit === AMBITS.SPACE\n && weaponSystem === STRUCT_WEAPON_SYSTEM.SECONDARY_WEAPON\n ) {\n animationNames.push(ANIMATION.NAMES.IMPACT.HORIZONTAL.GATLING);\n animationNames.push(ANIMATION.NAMES.SHAKE.HORIZONTAL.GATLING[firstOrLast]);\n\n projectile = ANIMATION.PROJECTILES.GATLING;\n }\n\n // --- Angled down cases ---\n\n // - Angled down missile -\n else if (\n (\n attackStructType === STRUCT_TYPES.CRUISER\n && attackStructOperatingAmbit === AMBITS.WATER\n && targetStructOperatingAmbit === AMBITS.LAND\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n || (\n attackStructType === STRUCT_TYPES.SUBMERSIBLE\n && attackStructOperatingAmbit === AMBITS.WATER\n && targetStructOperatingAmbit === AMBITS.WATER\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n ) {\n animationNames.push(ANIMATION.NAMES.IMPACT.ANGLED.DOWN.MISSILE);\n animationNames.push(ANIMATION.NAMES.SHAKE.ANGLED.DOWN.DEFAULT[firstOrLast]);\n\n projectile = ANIMATION.PROJECTILES.MISSILE;\n }\n\n // - Angled down torpedo -\n else if (\n (\n attackStructType === STRUCT_TYPES.DESTROYER\n && attackStructOperatingAmbit === AMBITS.WATER\n && targetStructOperatingAmbit === AMBITS.WATER\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n || (\n attackStructType === STRUCT_TYPES.STEALTH_BOMBER\n && attackStructOperatingAmbit === AMBITS.AIR\n && (\n targetStructOperatingAmbit === AMBITS.WATER\n || targetStructOperatingAmbit === AMBITS.LAND\n )\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n ) {\n animationNames.push(ANIMATION.NAMES.IMPACT.ANGLED.DOWN.TORPEDO);\n animationNames.push(ANIMATION.NAMES.SHAKE.ANGLED.DOWN.DEFAULT[firstOrLast]);\n\n projectile = ANIMATION.PROJECTILES.TORPEDO;\n }\n\n // - Angled down cannon -\n else if (\n (\n attackStructType === STRUCT_TYPES.MOBILE_ARTILLERY\n && attackStructOperatingAmbit === AMBITS.LAND\n && (\n targetStructOperatingAmbit === AMBITS.WATER\n || targetStructOperatingAmbit === AMBITS.LAND\n )\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n || (\n attackStructType === STRUCT_TYPES.BATTLESHIP\n && attackStructOperatingAmbit === AMBITS.SPACE\n && (\n targetStructOperatingAmbit === AMBITS.WATER\n || targetStructOperatingAmbit === AMBITS.LAND\n )\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n || (\n attackStructType === STRUCT_TYPES.PLANETARY_DEFENSE_CANNON\n && (\n attackStructOperatingAmbit === AMBITS.LAND\n || attackStructOperatingAmbit === AMBITS.WATER\n )\n && (\n targetStructOperatingAmbit === AMBITS.WATER\n || targetStructOperatingAmbit === AMBITS.LAND\n )\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n ) {\n animationNames.push(ANIMATION.NAMES.IMPACT.ANGLED.DOWN.CANNON);\n animationNames.push(ANIMATION.NAMES.SHAKE.ANGLED.DOWN.DEFAULT[firstOrLast]);\n\n projectile = ANIMATION.PROJECTILES.CANNON;\n }\n\n // --- Angled up cases ---\n\n // - Angled up cannon -\n else if (\n attackStructType === STRUCT_TYPES.PLANETARY_DEFENSE_CANNON\n && (\n attackStructOperatingAmbit === AMBITS.LAND\n || attackStructOperatingAmbit === AMBITS.WATER\n )\n && (\n targetStructOperatingAmbit === AMBITS.SPACE\n || targetStructOperatingAmbit === AMBITS.AIR\n )\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n ) {\n animationNames.push(ANIMATION.NAMES.IMPACT.ANGLED.UP.CANNON);\n animationNames.push(ANIMATION.NAMES.SHAKE.ANGLED.UP.DEFAULT[firstOrLast]);\n\n projectile = ANIMATION.PROJECTILES.CANNON;\n }\n\n // - Angled up missile -\n else if (\n (\n attackStructType === STRUCT_TYPES.SAM_LAUNCHER\n && attackStructOperatingAmbit === AMBITS.LAND\n && (\n targetStructOperatingAmbit === AMBITS.AIR\n || targetStructOperatingAmbit === AMBITS.SPACE\n )\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n || (\n attackStructType === STRUCT_TYPES.SUBMERSIBLE\n && attackStructOperatingAmbit === AMBITS.WATER\n && (\n targetStructOperatingAmbit === AMBITS.AIR\n || targetStructOperatingAmbit === AMBITS.SPACE\n )\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n ) {\n animationNames.push(ANIMATION.NAMES.IMPACT.ANGLED.UP.MISSILE);\n animationNames.push(ANIMATION.NAMES.SHAKE.ANGLED.UP.DEFAULT[firstOrLast]);\n\n projectile = ANIMATION.PROJECTILES.MISSILE;\n }\n\n // - Angled up torpedo -\n else if (\n (\n attackStructType === STRUCT_TYPES.DESTROYER\n && attackStructOperatingAmbit === AMBITS.WATER\n && targetStructOperatingAmbit === AMBITS.AIR\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n || (\n attackStructType === STRUCT_TYPES.HIGH_ALTITUDE_INTERCEPTOR\n && attackStructOperatingAmbit === AMBITS.AIR\n && targetStructOperatingAmbit === AMBITS.SPACE\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n ) {\n animationNames.push(ANIMATION.NAMES.IMPACT.ANGLED.UP.TORPEDO);\n animationNames.push(ANIMATION.NAMES.SHAKE.ANGLED.UP.DEFAULT[firstOrLast]);\n\n projectile = ANIMATION.PROJECTILES.TORPEDO;\n }\n\n // - Angled up gatling -\n else if (\n attackStructType === STRUCT_TYPES.CRUISER\n && attackStructOperatingAmbit === AMBITS.WATER\n && targetStructOperatingAmbit === AMBITS.AIR\n && weaponSystem === STRUCT_WEAPON_SYSTEM.SECONDARY_WEAPON\n ) {\n animationNames.push(ANIMATION.NAMES.IMPACT.ANGLED.UP.GATLING);\n animationNames.push(ANIMATION.NAMES.SHAKE.ANGLED.UP.GATLING[firstOrLast]);\n\n projectile = ANIMATION.PROJECTILES.GATLING;\n }\n\n if (!animationNames.length) {\n throw new AnimationError(\n 'No receive damage animation matching parameters. See detail.',\n {\n targetStructId: targetStructId,\n attackStructType: attackStructType,\n attackStructOperatingAmbit: attackStructOperatingAmbit,\n weaponSystem: weaponSystem,\n targetStructType: targetStructType,\n targetStructOperatingAmbit: targetStructOperatingAmbit,\n targetStructCategory: targetStructCategory,\n targetHealthBefore: targetHealthBefore,\n targetHealthAfter: targetHealthAfter,\n evaded: evaded,\n evadedCause: evadedCause,\n }\n );\n }\n\n return new AnimationEvent(\n targetStructId,\n animationNames,\n false,\n true,\n { ...options, projectile: projectile },\n mapId\n );\n }\n\n /**\n * @param {string} structId the id of the struct that was destroyed\n * @param {string} ambit the current ambit of the struct that was destroyed\n * @param {string|null} mapId the id of the map the animation should play on\n * @return {AnimationEvent} an event specifying the animation to play for the struct that was destroyed\n */\n makeDestroyAnimationEvent(structId, ambit, mapId = null) {\n const ambitFormatted = ambit.toUpperCase();\n return new AnimationEvent(\n structId,\n [ANIMATION.NAMES.DESTROY[ambitFormatted]],\n false,\n false,\n { healthAfter: 0 },\n mapId\n );\n }\n\n /**\n * @param {string} structId the id of the struct that was deployed\n * @param {string} ambit the current ambit of the struct that was deployed\n * @param {string|null} mapId the id of the map the animation should play on\n * @return {AnimationEvent} an event specifying the animation to play for the struct that was deployed\n */\n makeDeploymentAnimationEvent(structId, ambit, mapId = null) {\n const ambitFormatted = ambit.toUpperCase();\n return new AnimationEvent(\n structId,\n [ANIMATION.NAMES.DEPLOYMENT[ambitFormatted]],\n false,\n true,\n {},\n mapId\n );\n }\n}\n","import {AbstractFactory} from \"../framework/AbstractFactory\";\nimport {Fleet} from \"../models/Fleet\";\n\nexport class FleetFactory extends AbstractFactory {\n\n /**\n * @param {object} obj\n * @return {Fleet}\n */\n make(obj) {\n const fleet = new Fleet();\n Object.assign(fleet, obj);\n return fleet;\n }\n}","import {GuildAPIResponse} from \"../api/GuildAPIResponse\";\nimport {GuildAPIError} from \"../errors/GuildAPIError\";\n\nexport class GuildAPIResponseFactory {\n make(jsonResponse) {\n if (!jsonResponse.hasOwnProperty('success')\n || typeof jsonResponse.success !== 'boolean'\n || !jsonResponse.hasOwnProperty('errors')\n || !jsonResponse.hasOwnProperty('data')\n ) {\n throw new GuildAPIError('Invalid response from server');\n }\n\n return new GuildAPIResponse(\n jsonResponse.success,\n jsonResponse.errors,\n jsonResponse.data\n );\n }\n}","import {Guild} from \"../models/Guild\";\nimport {AbstractFactory} from \"../framework/AbstractFactory\";\nimport {SocialsDTOFactory} from \"./SocialsDTOFactory\";\n\nexport class GuildFactory extends AbstractFactory {\n\n constructor() {\n super();\n this.socialsDTOFactory = new SocialsDTOFactory();\n }\n\n /**\n * @param {object} obj\n * @return {Guild}\n */\n make(obj) {\n const guild = new Guild();\n Object.assign(guild, obj);\n if (guild.hasOwnProperty('socials') && guild.socials !== null) {\n guild.socials = this.socialsDTOFactory.make(JSON.parse(guild.socials));\n }\n return guild;\n }\n}","import {AbstractFactory} from \"../framework/AbstractFactory\";\nimport {GuildPowerStatsDTO} from \"../dtos/GuildPowerStatsDTO\";\n\nexport class GuildPowerStatsDTOFactory extends AbstractFactory {\n\n /**\n * @param {object} obj\n * @return {GuildPowerStatsDTO}\n */\n make(obj) {\n const dto = new GuildPowerStatsDTO();\n Object.assign(dto, obj);\n return dto;\n }\n}","import {AbstractFactory} from \"../framework/AbstractFactory\";\nimport {GuildSearchResultDTO} from \"../dtos/GuildSearchResultDTO\";\n\nexport class GuildSearchResultDTOFactory extends AbstractFactory {\n /**\n * @param {object} obj\n * @return {GuildSearchResultDTO}\n */\n make(obj) {\n const guild = new GuildSearchResultDTO();\n Object.assign(guild, obj);\n return guild;\n }\n}","import {Infusion} from \"../models/Infusion\";\n\nexport class InfusionFactory {\n make(obj) {\n const infusion = new Infusion();\n Object.assign(infusion, obj);\n return infusion;\n }\n}","import {AMBIT_ORDER} from \"../constants/Ambits\";\nimport {MapTransitionLayerTileSetComponent} from \"../view_models/components/map/MapTransitionLayerTileSetComponent\";\nimport {MAP_NAMED_TRANSITIONS} from \"../constants/MapConstants\";\nimport {MapTransitionLayerComponentFactoryError} from \"../errors/MapTransitionLayerComponentFactoryError\";\nimport {MapTransitionLayerOrnamentComponent} from \"../view_models/components/map/MapTransitionLayerOrnamentComponent\";\n\n/**\n * Produces different types of transition layers.\n */\nexport class MapTransitionLayerComponentFactory {\n\n /**\n * @param {TileClassNameUtil} tileClassNameUtil\n */\n constructor(tileClassNameUtil) {\n this.tileClassNameUtil = tileClassNameUtil;\n }\n\n /**\n * @param {string} ornamentClassName\n * @param {int} mapColCount\n * @param {string} ambitOrTransition ambit or named transition (such as Horizon)\n * @param {string} verticalPos top|middle|bottom\n *\n * @return {AbstractMapTransitionLayerComponent}\n *\n * @throws {MapTransitionLayerComponentFactoryError}\n */\n make(ornamentClassName = '', mapColCount = 0, ambitOrTransition = '', verticalPos = '') {\n\n if (AMBIT_ORDER.includes(ambitOrTransition)) {\n\n return new MapTransitionLayerTileSetComponent(\n mapColCount,\n this.tileClassNameUtil.getTileEdgeClassName(ambitOrTransition, verticalPos, 'left'),\n this.tileClassNameUtil.getTileEdgeClassName(ambitOrTransition, verticalPos, 'middle'),\n this.tileClassNameUtil.getTileEdgeClassName(ambitOrTransition, verticalPos, 'right'),\n );\n\n } else if (MAP_NAMED_TRANSITIONS[ambitOrTransition]) {\n\n return new MapTransitionLayerTileSetComponent(\n mapColCount,\n this.tileClassNameUtil.getTileNamedTransitionClassName(ambitOrTransition, 'left'),\n this.tileClassNameUtil.getTileNamedTransitionClassName(ambitOrTransition, 'middle'),\n this.tileClassNameUtil.getTileNamedTransitionClassName(ambitOrTransition, 'right')\n );\n\n } else if (ornamentClassName) {\n\n return new MapTransitionLayerOrnamentComponent(ornamentClassName);\n\n } else {\n\n throw new MapTransitionLayerComponentFactoryError(`Unknown ornament, ambit or named transition: (${ornamentClassName}${ambitOrTransition})`);\n\n }\n }\n}\n","import {NOTIFICATION_DIALOGUE_SEQUENCES} from \"../constants/NotificationDialogueSequences\";\nimport {AttackerVictoryDialogueSequence} from \"../view_models/components/sequences/AttackerVictoryDialogueSequence\";\nimport {DefeatedByAttackerDialogueSequence} from \"../view_models/components/sequences/DefeatedByAttackerDialogueSequence\";\nimport {DefenderVictoryDialogueSequence} from \"../view_models/components/sequences/DefenderVictoryDialogueSequence\";\nimport {\n DefeatedByDefenderDialogueSequence\n} from \"../view_models/components/sequences/DefeatedByDefenderDialogueSequence\";\nimport {NotificationDialogueSequence} from \"../framework/NotificationDialogueSequence\";\n\nexport class NotificationDialogueSequenceFactory {\n\n /**\n * @param {string} sequenceName See NOTIFICATION_DIALOGUE_SEQUENCES\n * @param {object} params\n * @return {NotificationDialogueSequence}\n */\n make(sequenceName, params = {}) {\n switch (sequenceName) {\n case NOTIFICATION_DIALOGUE_SEQUENCES.ATTACKER_VICTORY:\n return new AttackerVictoryDialogueSequence(params?.alphaOreRecovered);\n case NOTIFICATION_DIALOGUE_SEQUENCES.DEFENDER_VICTORY:\n return new DefenderVictoryDialogueSequence();\n case NOTIFICATION_DIALOGUE_SEQUENCES.DEFEATED_BY_ATTACKER:\n return new DefeatedByAttackerDialogueSequence(params?.alphaOreLost);\n case NOTIFICATION_DIALOGUE_SEQUENCES.DEFEATED_BY_DEFENDER:\n return new DefeatedByDefenderDialogueSequence();\n default:\n throw new Error(`NotificationDialogueSequenceFactory: No notification dialogue sequence with name: ${sequenceName}`);\n }\n }\n}","import {Planet} from \"../models/Planet\";\n\nexport class PlanetFactory {\n make(obj) {\n const planet = new Planet();\n Object.assign(planet, obj);\n planet.undiscovered_ore = parseInt(planet.undiscovered_ore);\n return planet;\n }\n}","import {PlanetRaid} from \"../models/PlanetRaid\";\n\nexport class PlanetRaidFactory {\n make(obj) {\n const planetRaid = new PlanetRaid();\n Object.assign(planetRaid, obj);\n return planetRaid;\n }\n}","import {PlanetaryShieldInfoDTO} from \"../dtos/PlanetaryShieldInfoDTO\";\nimport {AbstractFactory} from \"../framework/AbstractFactory\";\n\nexport class PlanetaryShieldInfoDTOFactory extends AbstractFactory {\n\n /**\n * @param {object} obj\n * @return {PlanetaryShieldInfoDTO}\n */\n make(obj) {\n const dto = new PlanetaryShieldInfoDTO();\n Object.assign(dto, obj);\n return dto;\n }\n}","import {PlayerAddress} from \"../models/PlayerAddress\";\nimport {AbstractFactory} from \"../framework/AbstractFactory\";\n\nexport class PlayerAddressFactory extends AbstractFactory {\n\n /**\n * @param {object} obj\n * @return {PlayerAddress}\n */\n make(obj) {\n const playerAddress = new PlayerAddress();\n Object.assign(playerAddress, obj);\n return playerAddress;\n }\n}","import {PlayerAddressPending} from \"../models/PlayerAddressPending\";\n\nexport class PlayerAddressPendingFactory {\n\n /**\n * @param {Object} obj\n * @return {PlayerAddressPending}\n */\n make(obj) {\n const playerAddressPending = new PlayerAddressPending();\n Object.assign(playerAddressPending, obj);\n return playerAddressPending;\n }\n}","import {Player} from \"../models/Player\";\nimport {PRECISION_CONVERSION} from \"../constants/PrecisionConstants\";\n\nexport class PlayerFactory {\n\n /**\n * @param {string} numberString\n * @return {number}\n */\n convertFromPreciseNumber(numberString) {\n return Number(BigInt(numberString) / BigInt(PRECISION_CONVERSION.ENERGY));\n }\n\n make(obj) {\n const player = new Player();\n Object.assign(player, obj);\n player.load = this.convertFromPreciseNumber(player.load);\n player.structs_load = this.convertFromPreciseNumber(player.structs_load);\n player.capacity = this.convertFromPreciseNumber(player.capacity);\n player.connection_capacity = this.convertFromPreciseNumber(player.connection_capacity);\n player.ore = parseInt(player.ore);\n return player;\n }\n}","import {PlayerOreStats} from \"../models/PlayerOreStats\";\n\nexport class PlayerOreStatsFactory {\n make(obj, playerId) {\n const player = new PlayerOreStats();\n\n if (!obj) {\n player.playerId = playerId;\n player.forfeited = 0;\n player.mined = 0;\n player.seized = 0;\n } else {\n Object.assign(player, obj);\n }\n\n return player;\n }\n}","import {AbstractFactory} from \"../framework/AbstractFactory\";\nimport {PlayerSearchResultDTO} from \"../dtos/PlayerSearchResultDTO\";\n\nexport class PlayerSearchResultDTOFactory extends AbstractFactory {\n\n /**\n * @param {object} obj\n * @return {PlayerSearchResultDTO}\n */\n make(obj) {\n const player = new PlayerSearchResultDTO();\n Object.assign(player, obj);\n return player;\n }\n}","import {AbstractFactory} from \"../framework/AbstractFactory\";\nimport {Setting} from \"../models/Setting\";\nimport {Settings} from \"../models/Settings\";\n\n\nexport class SettingFactory extends AbstractFactory {\n\n /**\n * @param {object} obj\n * @return {Setting}\n */\n make(obj) {\n const setting = new Setting();\n Object.assign(setting, obj);\n return setting;\n }\n\n /**\n * @param {object[]} list\n * @return {Settings}\n */\n parseList(list) {\n const settings = new Settings();\n for (let i = 0; i < list.length; i++) {\n settings.add(this.make(list[i]));\n }\n return settings;\n }\n}","import {AbstractFactory} from \"../framework/AbstractFactory\";\nimport {SocialsDTO} from \"../dtos/SocialsDTO\";\nimport {DISCORD_URL_PATTERN} from \"../constants/RegexPattern\";\n\nexport class SocialsDTOFactory extends AbstractFactory {\n\n /**\n * @param {string} url\n * @return {string}\n */\n filterDiscordUrl(url) {\n if (DISCORD_URL_PATTERN.test(url)) {\n return `https://discord.gg/${url.match(DISCORD_URL_PATTERN)[0]}`;\n }\n return \"\";\n }\n\n /**\n * @param {object} obj\n * @return {SocialsDTO}\n */\n make(obj) {\n const dto = new SocialsDTO();\n Object.assign(dto, obj);\n\n dto.discord_server = this.filterDiscordUrl(dto.discord_server);\n\n return dto;\n }\n}","import {AbstractFactory} from \"../framework/AbstractFactory\";\nimport {Struct} from \"../models/Struct\";\n\nexport class StructFactory extends AbstractFactory {\n\n /**\n * @param {object} obj\n * @return {Struct}\n */\n make(obj) {\n const struct = new Struct();\n Object.assign(struct, obj);\n struct.defending_struct_ids = JSON.parse(obj.defending_struct_ids);\n return struct;\n }\n\n}","import {AbstractFactory} from \"../framework/AbstractFactory\";\nimport {StructType} from \"../models/StructType\";\n\nexport class StructTypeFactory extends AbstractFactory {\n\n /**\n * @param {object} obj\n * @return {StructType}\n */\n make(obj) {\n const structType = new StructType();\n Object.assign(structType, obj);\n structType.possible_ambit_array = JSON.parse(obj.possible_ambit_array);\n structType.primary_weapon_ambits_array = JSON.parse(obj.primary_weapon_ambits_array);\n structType.secondary_weapon_ambits_array = JSON.parse(obj.secondary_weapon_ambits_array);\n return structType;\n }\n\n}","import {TaskState} from \"../models/TaskState\";\nimport {AbstractFactory} from \"../framework/AbstractFactory\";\nimport {TASK} from \"../constants/TaskConstants\";\nimport {TASK_TYPES} from \"../constants/TaskTypes\";\nimport {OBJECT_TYPES as OBJECT_TYPE} from \"../constants/ObjectTypes\";\n\nexport class TaskStateFactory extends AbstractFactory {\n\n /**\n * @param {object} obj\n * @return {TaskState}\n */\n make(obj) {\n const task_state = new TaskState();\n Object.assign(task_state, obj);\n\n return task_state;\n }\n\n\n /**\n * @param {string} fleet_id\n * @param {string} planet_id\n * @param {number} block_start\n * @param {number} difficulty_target\n * @return {TaskState}\n */\n initRaidTask(fleet_id, planet_id, block_start, difficulty_target){\n\n const task_state = new TaskState();\n\n task_state.task_type = TASK_TYPES.RAID;\n task_state.object_type = OBJECT_TYPE.FLEET;\n task_state.object_id = fleet_id;\n task_state.target_id = planet_id;\n task_state.block_start = block_start;\n task_state.difficulty_target = difficulty_target;\n\n task_state.prefix = task_state.object_id + TASK.TARGET_DELIMITER + task_state.target_id + task_state.task_type + task_state.block_start + TASK.NONCE_PREFIX;\n task_state.postfix = '';\n\n return task_state;\n }\n\n\n\n /**\n * @param {string} struct_id\n * @param {string} task_type\n * @param {number} block_start\n * @param {number} difficulty_target\n * @return {TaskState}\n */\n initStructTask(struct_id, task_type, block_start, difficulty_target){\n\n const task_state = new TaskState();\n\n task_state.task_type = task_type;\n task_state.object_type = OBJECT_TYPE.STRUCT;\n task_state.object_id = struct_id;\n task_state.block_start = block_start;\n task_state.difficulty_target = difficulty_target;\n\n task_state.prefix = task_state.object_id + task_state.task_type + task_state.block_start + TASK.NONCE_PREFIX;\n task_state.postfix = '';\n\n return task_state;\n }\n\n /**\n * @param {Work} work\n * @return {TaskState}\n */\n initTaskFromWork(work) {\n switch(work.category) {\n case TASK_TYPES.RAID:\n return this.initRaidTask(work.object_id, work.target_id, work.block_start, work.difficulty_target);\n case TASK_TYPES.BUILD:\n case TASK_TYPES.MINE:\n case TASK_TYPES.REFINE:\n return this.initStructTask(work.object_id, work.category, work.block_start, work.difficulty_target);\n default:\n throw new Error(`Unknown task type: ${work.category}`);\n }\n }\n\n\n}","import {Transaction} from \"../models/Transaction\";\nimport {AbstractFactory} from \"../framework/AbstractFactory\";\n\nexport class TransactionFactory extends AbstractFactory {\n\n /**\n * @param {object} obj\n * @return {Transaction}\n */\n make(obj) {\n const transaction = new Transaction();\n Object.assign(transaction, obj);\n return transaction;\n }\n}","import {AbstractFactory} from \"../framework/AbstractFactory\";\nimport {Work} from \"../models/Work\";\n\nexport class WorkFactory extends AbstractFactory {\n\n /**\n * @param {object} obj\n * @return {Work}\n */\n make(obj) {\n const work = new Work();\n Object.assign(work, obj);\n return work;\n }\n\n}","export class AbstractController {\n /**\n * @param {string} name\n * @param {GameState} gameState\n */\n constructor(name, gameState) {\n this.name = name;\n this.gameState = gameState;\n }\n}","import {NotImplementedError} from \"./NotImplementedError\";\n\nexport class AbstractFactory {\n\n make(obj) {\n throw new NotImplementedError();\n }\n\n parseList(list) {\n return list.map(this.make);\n }\n}","import {NotImplementedError} from \"./NotImplementedError\";\n\nexport class AbstractGrassListener {\n\n /**\n * @param {string} name\n */\n constructor(name) {\n this.name = name;\n }\n\n handler(messageData) {\n throw new NotImplementedError();\n }\n\n shouldUnregister() {\n return false;\n }\n}","import {NotImplementedError} from \"./NotImplementedError\";\n\nexport class AbstractViewModel {\n render() {\n throw new NotImplementedError();\n }\n}\n","import {NotImplementedError} from \"./NotImplementedError\";\nimport {NumberFormatter} from \"../util/NumberFormatter\";\n\nexport class AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n this.gameState = gameState;\n this.numberFormatter = new NumberFormatter();\n }\n\n initPageCode() {\n throw new NotImplementedError();\n }\n\n renderHTML() {\n throw new NotImplementedError();\n }\n}\n","export class BannerLayer {\n\n /* Element IDs Start */\n\n static id = 'banner-layer';\n\n /* Element IDs End */\n\n static setContent(content) {\n const bannerLayer = document.getElementById(BannerLayer.id);\n if (bannerLayer) {\n bannerLayer.innerHTML = content;\n }\n }\n\n static clear() {\n const bannerLayer = document.getElementById(BannerLayer.id);\n if (bannerLayer) {\n bannerLayer.innerHTML = '';\n }\n }\n\n static hideAndClear() {\n const bannerLayer = document.getElementById(BannerLayer.id);\n if (bannerLayer) {\n bannerLayer.classList.add('hidden');\n }\n BannerLayer.clear();\n }\n\n static show() {\n const bannerLayer = document.getElementById(BannerLayer.id);\n if (bannerLayer) {\n bannerLayer.classList.remove('hidden');\n }\n }\n}\n","export class GrassError extends Error {}","import * as natsCore from \"@nats-io/nats-core\";\nimport {GrassError} from \"./GrassError\";\n\n/**\n * Guild Rapid Alert System Stream\n */\nexport class GrassManager {\n\n /**\n * @param {string} grassServerUrl\n * @param {string} subject\n */\n constructor(grassServerUrl, subject) {\n this.grassServerUrl = grassServerUrl;\n this.subject = subject;\n this.listeners = new Map();\n }\n\n /**\n * @param {MsgImpl} message\n * @return {object}\n */\n getMessageData(message) {\n return message.json();\n }\n\n /**\n * @param {object} messageData\n * @return {boolean}\n */\n shouldIgnoreMessage(messageData) {\n return !messageData.hasOwnProperty('subject')\n || !messageData.hasOwnProperty('category');\n }\n\n /**\n * @param {AbstractGrassListener} listener\n */\n registerListener(listener) {\n this.listeners.set(listener.name, listener);\n }\n\n /**\n * @param {string} name\n */\n unregisterListener(name) {\n this.listeners.delete(name);\n }\n\n init() {\n natsCore.wsconnect({\n servers: this.grassServerUrl,\n }).then((nc) => {\n const subscription = nc.subscribe(this.subject);\n (async function () {\n\n for await (const message of subscription) {\n\n const messageData = this.getMessageData(message);\n\n console.log(messageData);\n\n if (this.shouldIgnoreMessage(messageData)) {\n continue;\n }\n\n this.listeners.forEach((listener) => {\n listener.handler(messageData);\n\n if (listener.shouldUnregister()) {\n this.unregisterListener(listener.name);\n }\n });\n\n }\n\n throw new GrassError(\"GRASS subscription closed unexpectedly.\");\n\n }.bind(this))();\n });\n }\n}","/**\n * Encapsulate and abstract HTTP request methods.\n */\nexport class JsonAjaxer {\n async get (url) {\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json'\n },\n redirect: 'follow'\n });\n return response.json();\n }\n\n async post (url, data) {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(data)\n });\n\n return response.json();\n }\n\n async put (url, data) {\n const response = await fetch(url, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(data)\n });\n\n return response.json();\n }\n\n async delete (url, data) {\n const response = await fetch(url, {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(data)\n });\n\n return response.json();\n }\n}\n","import {MenuPageRouter} from \"./MenuPageRouter\";\nimport {NavItemDTO} from \"../dtos/NavItemDTO\";\nimport {SUI} from \"../sui/SUI\";\nimport {EnergyUsageComponent} from \"../view_models/components/EnergyUsageComponent\";\nimport {AlphaOwnedComponent} from \"../view_models/components/AlphaOwnedComponent\";\nimport {MENU_PAGE_ROUTER_MODES} from \"../constants/MenuPageRouterModes\";\n\nexport class MenuPage {\n\n /** @type {GameState} */\n static gameState;\n\n /** @type {MapManager} */\n static mapManager;\n\n /* Element IDs Start */\n\n static pageLayoutId = 'menu-page-layout';\n\n static panelChunkId = 'menu-page-panel-chunk';\n\n static navId = 'menu-page-nav';\n\n static navItemsId = 'menu-page-nav-items';\n\n static closeBtnId = 'menu-page-nav-close';\n\n static screenBodyId = 'menu-page-screen-body';\n\n static bodyId = 'menu-page-body-content';\n\n static dialoguePanelId = 'menu-page-dialogue';\n\n static dialogueIndicatorId = 'menu-page-dialogue-indicator';\n\n static dialogueIndicatorContentId = 'menu-page-dialogue-indicator-content';\n\n static dialogueScreenId = 'menu-page-dialogue-screen';\n\n static dialogueScreenContentId = 'menu-page-dialogue-screen-content';\n\n static dialogueBtnChunkBId = 'menu-page-dialogue-btn-chunk-b';\n\n static dialogueBtnAId = 'menu-page-dialogue-btn-a';\n\n static dialogueBtnBId = 'menu-page-dialogue-btn-b';\n\n static pageTemplateNavBtnId = 'menu-page-template-nav-btn';\n\n static resourceEnergyUsageId = 'menu-page-resource-energy-usage';\n\n static resourceAlphaOwnedId = 'menu-page-resource-alpha-owned';\n\n static pageTemplateContentId = 'menu-page-template-content';\n\n static navItemFleetId = 'nav-item-fleet';\n\n static navItemGuildId = 'nav-item-guild';\n\n static navItemAccountId = 'nav-item-Account';\n\n static loadingScreenId = 'loading-screen';\n\n /* Element IDs End */\n\n static router = new MenuPageRouter();\n\n static sui = new SUI();\n\n static menuNavItems = [\n new NavItemDTO(\n MenuPage.navItemFleetId,\n 'FLEET',\n () => { MenuPage.router.goto('Fleet', 'index') }\n ),\n new NavItemDTO(\n MenuPage.navItemGuildId,\n 'GUILD',\n () => { MenuPage.router.goto('Guild', 'index') }\n ),\n new NavItemDTO(\n MenuPage.navItemAccountId,\n 'ACCOUNT',\n () => { MenuPage.router.goto('Account', 'index') }\n )\n ];\n\n /* Dynamic Handlers Start */\n\n static dialogueBtnAHandler = () => {};\n\n static dialogueBtnBHandler = () => {};\n\n static pageTemplateNavBtnHandler = () => {};\n\n /* Dynamic Handlers End */\n\n /**\n * @param {NavItemDTO[]}items\n * @param {string|null} activeId the ID of the active nav item\n */\n static setNavItems(items, activeId = null) {\n\n let itemsHtml = '';\n const isPreviewMode = MenuPage.router.mode === MENU_PAGE_ROUTER_MODES.PREVIEW;\n let activeNavItemIndex = 0;\n\n for (let i = 0; i < items.length; i++) {\n let activeClass= '';\n\n if (activeId === items[i].id || (!activeId && i === 0)) {\n activeClass = 'sui-mod-active';\n activeNavItemIndex = i;\n }\n\n if (!isPreviewMode || activeClass) {\n itemsHtml += `${items[i].label}`;\n }\n }\n\n document.getElementById(MenuPage.navItemsId).innerHTML = itemsHtml;\n\n for (let i = 0; !isPreviewMode && (i < items.length); i++) {\n document.getElementById(items[i].id).addEventListener('click', items[i].actionHandler);\n }\n }\n\n static disableCloseBtn() {\n document.getElementById(MenuPage.closeBtnId).classList.add('hidden');\n }\n\n static enableCloseBtn() {\n document.getElementById(MenuPage.closeBtnId).classList.remove('hidden');\n }\n\n static hideAndClearNav() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-structs',\n 'Structs'\n )\n ];\n MenuPage.setNavItems(navItems, 'nav-item-structs');\n document.getElementById(MenuPage.navId).classList.add('hidden');\n }\n\n static showNav() {\n document.getElementById(MenuPage.navId).classList.remove('hidden');\n }\n\n static setBodyContent(content) {\n document.getElementById(MenuPage.bodyId).innerHTML = content;\n }\n\n static setDialogueIndicatorContent(content, useFadeAnimation = false) {\n const dialogueIndicatorContent = document.getElementById(MenuPage.dialogueIndicatorContentId);\n dialogueIndicatorContent.innerHTML = content;\n\n if (useFadeAnimation) {\n MenuPage.applyFadeInFadeOutAnimation(dialogueIndicatorContent);\n }\n }\n\n static applyFadeInFadeOutAnimation(element) {\n element.classList.add('fade-in-fade-out');\n element.addEventListener('animationend', () => {\n element.classList.remove('fade-in-fade-out');\n });\n }\n\n static setDialogueScreenContent(content, useFadeAnimation = false) {\n const dialogueScreenContent = document.getElementById(MenuPage.dialogueScreenContentId);\n dialogueScreenContent.innerHTML = content;\n\n if (useFadeAnimation) {\n MenuPage.applyFadeInFadeOutAnimation(dialogueScreenContent);\n }\n }\n\n static setDialogueScreenTheme(theme) {\n const dialogueScreen = document.getElementById(MenuPage.dialogueScreenId);\n dialogueScreen.classList.remove(...dialogueScreen.classList);\n dialogueScreen.classList.add('sui-screen-dialogue');\n dialogueScreen.classList.add(theme);\n }\n\n static setDialogueScreenThemeToNeutral() {\n MenuPage.setDialogueScreenTheme('sui-theme-neutral');\n }\n\n static setDialogueScreenThemeToEnemy() {\n MenuPage.setDialogueScreenTheme('sui-theme-enemy');\n }\n\n static enableDialogueBtnA() {\n document.getElementById(MenuPage.dialogueBtnAId).classList.remove('hidden');\n }\n\n static disableDialogueBtnA() {\n document.getElementById(MenuPage.dialogueBtnAId).classList.add('hidden');\n }\n\n static enableDialogueBtnB() {\n document.getElementById(MenuPage.dialogueBtnChunkBId).classList.remove('hidden');\n }\n\n static disableDialogueBtnB() {\n document.getElementById(MenuPage.dialogueBtnChunkBId).classList.add('hidden');\n }\n\n static clearDialogueScreen() {\n document.getElementById(MenuPage.dialogueScreenContentId).innerHTML = '';\n }\n\n static clearDialogueBtnAHandler() {\n MenuPage.dialogueBtnAHandler = () => {};\n }\n\n static clearDialogueBtnBHandler() {\n MenuPage.dialogueBtnBHandler = () => {};\n }\n\n static clearPageTemplateNavBtnHandler() {\n MenuPage.pageTemplateNavBtnHandler = () => {};\n }\n\n static hideAndClearDialoguePanel() {\n document.getElementById(MenuPage.dialoguePanelId).classList.add('hidden');\n MenuPage.clearDialogueScreen();\n MenuPage.setDialogueScreenThemeToNeutral();\n MenuPage.clearDialogueBtnAHandler();\n MenuPage.clearDialogueBtnBHandler();\n }\n\n static showDialoguePanel() {\n document.getElementById(MenuPage.dialoguePanelId).classList.remove('hidden');\n }\n\n static closeBtnHandler() {\n document.getElementById(MenuPage.pageLayoutId).classList.add('hidden');\n }\n\n static close() {\n MenuPage.mapManager.showActiveMap();\n console.log(MenuPage.gameState.activeMapContainerId)\n MenuPage.closeBtnHandler();\n }\n\n static open() {\n document.getElementById(MenuPage.pageLayoutId).classList.remove('hidden');\n }\n\n static initCloseBtnListener() {\n document.getElementById(MenuPage.closeBtnId).addEventListener('click', MenuPage.close);\n }\n\n static initDialogueBtnAListener() {\n const dialogueBtnA = document.getElementById(MenuPage.dialogueBtnAId);\n dialogueBtnA.addEventListener('click', () => {\n MenuPage.dialogueBtnAHandler();\n });\n }\n\n static initDialogueBtnBListener() {\n const dialogueBtnB = document.getElementById(MenuPage.dialogueBtnBId);\n dialogueBtnB.addEventListener('click', () => {\n MenuPage.dialogueBtnBHandler();\n });\n }\n\n static initPageTemplateNavBtnListener() {\n const pageTemplateNavBtn = document.getElementById(MenuPage.pageTemplateNavBtnId);\n pageTemplateNavBtn.addEventListener('click', () => {\n MenuPage.pageTemplateNavBtnHandler();\n });\n }\n\n static initListeners() {\n MenuPage.initCloseBtnListener();\n MenuPage.initDialogueBtnAListener();\n MenuPage.initDialogueBtnBListener();\n }\n\n static enablePageTemplate(\n activeNavItemId = null,\n showResources = true,\n useTransparentBackground = false,\n useCustomResources = false,\n customResourcesHTML = '',\n initCustomPageTemplateCode = () => {}\n ) {\n\n MenuPage.setNavItems(MenuPage.menuNavItems, activeNavItemId);\n MenuPage.enableCloseBtn();\n\n let headerResourcesHTML = useCustomResources ? customResourcesHTML : '';\n let energyUsageComponent;\n let alphaOwnedComponent;\n const isPreviewMode = MenuPage.router.mode === MENU_PAGE_ROUTER_MODES.PREVIEW;\n\n showResources = !isPreviewMode && showResources;\n\n if (!useCustomResources && showResources) {\n\n energyUsageComponent = new EnergyUsageComponent(\n MenuPage.gameState,\n MenuPage.resourceEnergyUsageId\n );\n\n alphaOwnedComponent = new AlphaOwnedComponent(\n MenuPage.gameState,\n MenuPage.resourceAlphaOwnedId,\n );\n\n headerResourcesHTML = `\n
\n ${energyUsageComponent.renderHTML()}\n ${alphaOwnedComponent.renderHTML()}\n
\n `;\n\n }\n\n const pageTemplate = `\n
\n \n \n \n
\n \n \n Member Roster\n \n \n ${headerResourcesHTML}\n
\n \n \n \n
\n \n \n \n
\n
\n `;\n\n MenuPage.setBodyContent(pageTemplate);\n\n MenuPage.useOpaqueBackground();\n\n if (useTransparentBackground) {\n MenuPage.useTransparentBackground();\n }\n\n if (!useCustomResources && showResources) {\n energyUsageComponent.initPageCode();\n alphaOwnedComponent.initPageCode();\n }\n\n MenuPage.initPageTemplateNavBtnListener();\n\n initCustomPageTemplateCode();\n }\n\n static setPageTemplateHeaderBtn(label, showBackIcon = false, handler = () => {}) {\n if (MenuPage.router.mode === MENU_PAGE_ROUTER_MODES.PREVIEW) {\n showBackIcon = false;\n handler = () => {};\n }\n\n const backIcon = showBackIcon ? '' : '';\n document.getElementById(this.pageTemplateNavBtnId).innerHTML = `${backIcon} ${label}`;\n this.pageTemplateNavBtnHandler = handler;\n }\n\n static setPageTemplateContent(content) {\n document.getElementById(this.pageTemplateContentId).innerHTML = content;\n }\n\n static useTransparentBackground() {\n document.getElementById(this.screenBodyId).classList.add('hidden-background');\n document.getElementById(this.panelChunkId).classList.add('hidden-background');\n }\n\n static useOpaqueBackground() {\n document.getElementById(this.screenBodyId).classList.remove('hidden-background');\n document.getElementById(this.panelChunkId).classList.remove('hidden-background');\n }\n\n static hideLoadingScreen() {\n document.getElementById(MenuPage.loadingScreenId).classList.add('hidden');\n }\n}\n","import {MENU_PAGE_ROUTER_MODES} from \"../constants/MenuPageRouterModes\";\n\nexport class MenuPageRouter {\n constructor() {\n this.controllers = new Map();\n\n this.currentController = null;\n this.currentPage = null;\n this.currentOptions = {};\n\n this.lastController = null;\n this.lastPage = null;\n this.lastOptions = {};\n\n this.mode = MENU_PAGE_ROUTER_MODES.DEFAULT;\n\n /**\n * Incremented on every navigation. Async work started during one navigation\n * can compare a snapshot of this value against the current one to detect\n * whether the user has since navigated away.\n */\n this.navigationId = 0;\n }\n\n registerController(controller) {\n this.controllers.set(controller.name, controller);\n }\n\n goto(controllerName, pageName, options = {}) {\n this.navigationId++;\n\n if (this.mode !== MENU_PAGE_ROUTER_MODES.PREVIEW) {\n if (!(\n this.currentController === controllerName\n && this.currentPage === pageName\n && JSON.stringify(this.currentOptions) === JSON.stringify(options)\n )) {\n this.lastController = this.currentController;\n this.lastPage = this.currentPage;\n this.lastOptions = this.currentOptions;\n\n this.currentController = controllerName;\n this.currentPage = pageName;\n this.currentOptions = options;\n }\n\n localStorage.setItem(\"lastMenuPage\", JSON.stringify({\n controller: this.lastController,\n page: this.lastPage,\n options: this.lastOptions\n }))\n localStorage.setItem(\"currentMenuPage\", JSON.stringify({\n controller: controllerName,\n page: pageName,\n options: options\n }));\n }\n\n this.controllers.get(controllerName)[pageName](options);\n }\n\n back() {\n this.goto(this.lastController, this.lastPage, this.lastOptions);\n }\n\n restore(defaultController, defaultPage, defaultOptions = {}) {\n const lastMenuPage = JSON.parse(localStorage.getItem(\"lastMenuPage\"));\n const currentMenuPage = JSON.parse(localStorage.getItem(\"currentMenuPage\"));\n\n if (!currentMenuPage || !lastMenuPage) {\n this.goto(defaultController, defaultPage, defaultOptions);\n } else {\n this.currentPage = lastMenuPage.page;\n this.currentController = lastMenuPage.controller;\n this.currentOptions = lastMenuPage.options;\n\n this.goto(currentMenuPage.controller, currentMenuPage.page, currentMenuPage.options);\n }\n }\n\n enablePreviewMode() {\n this.mode = MENU_PAGE_ROUTER_MODES.PREVIEW;\n }\n\n enableDefaultMode() {\n this.mode = MENU_PAGE_ROUTER_MODES.DEFAULT;\n }\n\n}","export class NotImplementedError extends Error {\n constructor(message= 'Function not implemented') {\n super(message);\n this.name = \"NotImplementedError\";\n }\n}\n","import {HUDViewModel} from \"../view_models/HUDViewModel\";\n\nexport class NotificationDialogue {\n\n /* Element IDs Start */\n\n static dialoguePanelId = 'notification-dialogue';\n\n static dialogueIndicatorContentId = 'notification-dialogue-indicator-content';\n\n static dialogueScreenId = 'notification-dialogue-screen';\n\n static dialogueScreenContentId = 'notification-dialogue-screen-content';\n\n static dialogueBtnAId = 'notification-dialogue-btn-a';\n\n /* Element IDs End */\n\n /* Dynamic Handlers Start */\n\n static dialogueBtnAHandler = () => {};\n\n /* Dynamic Handlers End */\n\n static setDialogueIndicatorContent(content, useFadeAnimation = false) {\n const dialogueIndicatorContent = document.getElementById(NotificationDialogue.dialogueIndicatorContentId);\n dialogueIndicatorContent.innerHTML = content;\n\n if (useFadeAnimation) {\n NotificationDialogue.applyFadeInFadeOutAnimation(dialogueIndicatorContent);\n }\n }\n\n static applyFadeInFadeOutAnimation(element) {\n element.classList.add('fade-in-fade-out');\n element.addEventListener('animationend', () => {\n element.classList.remove('fade-in-fade-out');\n }, {once: true});\n }\n\n static setDialogueScreenContent(content, useFadeAnimation = false) {\n const dialogueScreenContent = document.getElementById(NotificationDialogue.dialogueScreenContentId);\n dialogueScreenContent.innerHTML = content;\n\n if (useFadeAnimation) {\n NotificationDialogue.applyFadeInFadeOutAnimation(dialogueScreenContent);\n }\n }\n\n static setDialogueScreenTheme(theme) {\n const dialogueScreen = document.getElementById(NotificationDialogue.dialogueScreenId);\n dialogueScreen.classList.remove(...dialogueScreen.classList);\n dialogueScreen.classList.add('sui-screen-dialogue');\n dialogueScreen.classList.add(theme);\n }\n\n static setDialogueScreenThemeToPlayer() {\n NotificationDialogue.setDialogueScreenTheme('sui-theme-player');\n }\n\n static setDialogueScreenThemeToNeutral() {\n NotificationDialogue.setDialogueScreenTheme('sui-theme-neutral');\n }\n\n static setDialogueScreenThemeToEnemy() {\n NotificationDialogue.setDialogueScreenTheme('sui-theme-enemy');\n }\n\n static clearDialogueScreen() {\n document.getElementById(NotificationDialogue.dialogueScreenContentId).innerHTML = '';\n }\n\n static clearDialogueBtnAHandler() {\n NotificationDialogue.dialogueBtnAHandler = () => {};\n }\n\n static hideAndClearDialoguePanel() {\n document.getElementById(NotificationDialogue.dialoguePanelId).classList.add('hidden');\n NotificationDialogue.clearDialogueScreen();\n NotificationDialogue.setDialogueScreenThemeToNeutral();\n NotificationDialogue.clearDialogueBtnAHandler();\n HUDViewModel.show();\n }\n\n static showDialoguePanel() {\n HUDViewModel.hide();\n document.getElementById(NotificationDialogue.dialoguePanelId).classList.remove('hidden');\n }\n\n static initDialogueBtnAListener() {\n const dialogueBtnA = document.getElementById(NotificationDialogue.dialogueBtnAId);\n dialogueBtnA.addEventListener('click', () => {\n NotificationDialogue.dialogueBtnAHandler();\n });\n }\n\n static initListeners() {\n NotificationDialogue.initDialogueBtnAListener();\n }\n}\n","import {NotificationDialogueSequenceStep} from \"./NotificationDialogueSequenceStep\";\nimport {NotificationDialogue} from \"./NotificationDialogue\";\n\nexport class NotificationDialogueSequence {\n constructor() {\n\n /** @type {NotificationDialogueSequenceStep[]} dialogueSequence */\n this.dialogueSequence = [];\n\n /** @type {number} */\n this.dialogueIndex = 0;\n\n /** @type {function} */\n this.actionOnSequenceEnd = () => {};\n\n this.initPageCode = () => {};\n }\n\n step() {\n if (this.dialogueIndex < this.dialogueSequence.length) {\n const step = this.dialogueSequence[this.dialogueIndex];\n\n NotificationDialogue.setDialogueIndicatorContent(step.indicatorContent)\n NotificationDialogue.setDialogueScreenContent(step.screenContent);\n\n this.dialogueIndex++;\n }\n }\n\n start() {\n NotificationDialogue.hideAndClearDialoguePanel();\n\n let pendingAction = null;\n\n NotificationDialogue.dialogueBtnAHandler = () => {\n const actionResult = this.dialogueSequence[this.dialogueIndex - 1]?.btnAExtraAction();\n\n if (actionResult instanceof Promise) {\n pendingAction = actionResult;\n }\n\n if (this.dialogueIndex === this.dialogueSequence.length) {\n NotificationDialogue.hideAndClearDialoguePanel();\n\n if (pendingAction) {\n pendingAction.then(() => {\n this.actionOnSequenceEnd();\n });\n } else {\n this.actionOnSequenceEnd();\n }\n return;\n }\n\n this.step();\n };\n\n this.step();\n this.initPageCode();\n\n NotificationDialogue.showDialoguePanel();\n }\n}","export class NotificationDialogueSequenceStep {\n\n /**\n * @param {string} indicatorContent\n * @param {string} screenContent\n * @param {function} btnAExtraAction\n */\n constructor(indicatorContent, screenContent, btnAExtraAction = () => {}) {\n this.indicatorContent = indicatorContent;\n this.screenContent = screenContent;\n this.btnAExtraAction = btnAExtraAction;\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class AlphaChangeListener extends AbstractGrassListener {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n */\n constructor(gameState, guildAPI) {\n super('ALPHA_CHANGE');\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n }\n\n handler(messageData) {\n if (\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id\n && ['sent','received'].includes(messageData.category)\n && messageData.subject.startsWith(`structs.inventory.ualpha.${this.gameState.thisGuild.id}.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}`)\n ) {\n let amount = parseInt(messageData.amount);\n\n if (messageData.category === 'sent') {\n amount = -1 * amount;\n }\n\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setAlpha(parseInt(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.alpha) + amount);\n }\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {MenuPage} from \"../framework/MenuPage\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class AlphaInfusedChangeListener extends AbstractGrassListener {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {string} category\n */\n constructor(gameState, guildAPI, category) {\n super('ALPHA_INFUSED_CHANGE');\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.category = category;\n }\n\n handler(messageData) {\n if (\n messageData.category === this.category\n && (messageData.subject.startsWith(`structs.inventory.ualpha.infused.${this.gameState.thisGuild.id}.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}`)\n || messageData.subject.startsWith(`structs.inventory.ualpha.defusing.${this.gameState.thisGuild.id}.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}`)\n )\n ) {\n this.shouldUnregister = () => true;\n\n this.guildAPI.getPlayer(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id).then(player => {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setPlayer(player); // Refresh alpha count\n MenuPage.router.goto('Guild', 'reactor'); // Infusion gets reloaded from Guild controller\n });\n\n }\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {EVENTS} from \"../constants/Events\";\n\nexport class BlockListener extends AbstractGrassListener {\n\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super('BLOCK');\n this.gameState = gameState;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'block'\n && messageData.subject === 'consensus'\n ) {\n this.gameState.setCurrentBlockHeight(messageData.height);\n window.dispatchEvent(new CustomEvent(EVENTS.BLOCK_HEIGHT_CHANGED));\n }\n }\n}\n","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class ConnectionCapacityListener extends AbstractGrassListener {\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super('CONNECTION_CAPACITY');\n this.gameState = gameState;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'connectionCapacity'\n && messageData.subject === `structs.grid.substation.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.substation_id}`\n ) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setConnectionCapacity(messageData.value);\n }\n }\n}\n","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {RaidStatusUtil} from \"../util/RaidStatusUtil\";\n\nexport class KeyPlayerLastActionListener extends AbstractGrassListener {\n\n /**\n * @param {GameState} gameState\n * @param {string} playerType\n */\n constructor(gameState, playerType) {\n super(`${playerType}_LAST_ACTION`);\n this.gameState = gameState;\n this.playerType = playerType;\n this.raidStatusUtil = new RaidStatusUtil();\n }\n\n handler(messageData) {\n if (\n messageData.category === 'lastAction'\n && messageData.subject === `structs.grid.player.${this.gameState.keyPlayers[this.playerType].id}`\n ) {\n this.gameState.keyPlayers[this.playerType].setLastActionBlockHeight(this.gameState.currentBlockHeight, messageData.value);\n }\n\n if (\n this.gameState.keyPlayers[this.playerType].isRaidDependent()\n && messageData.category === 'raid_status'\n && messageData.subject === `structs.planet.${this.gameState.getPlanetRaidInfoForKeyPlayer(this.playerType).planet_id}`\n && this.raidStatusUtil.hasRaidEnded(messageData.detail.status)\n ) {\n this.shouldUnregister = () => true;\n }\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {RaidStatusUtil} from \"../util/RaidStatusUtil\";\n\nexport class KeyPlayerOreListener extends AbstractGrassListener {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {string} playerType\n */\n constructor(gameState, guildAPI, playerType) {\n super(`${playerType}_ORE`);\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.playerType = playerType;\n this.raidStatusUtil = new RaidStatusUtil();\n }\n\n handler(messageData) {\n if (\n messageData.category === 'ore'\n && messageData.subject === `structs.grid.player.${this.gameState.keyPlayers[this.playerType].id}`\n ) {\n this.gameState.keyPlayers[this.playerType].setOre(messageData.value);\n\n // Update undiscovered ore count too\n if (this.gameState.keyPlayers[this.playerType].planetUsedForMap) {\n this.guildAPI.getPlanet(this.gameState.keyPlayers[this.playerType].getPlanetId()).then(planet => {\n this.gameState.keyPlayers[this.playerType].setPlanet(planet);\n });\n }\n }\n\n if (\n this.gameState.keyPlayers[this.playerType].isRaidDependent()\n && messageData.category === 'raid_status'\n && messageData.subject === `structs.planet.${this.gameState.getPlanetRaidInfoForKeyPlayer(this.playerType).planet_id}`\n && this.raidStatusUtil.hasRaidEnded(messageData.detail.status)\n ) {\n this.shouldUnregister = () => true;\n }\n }\n}\n","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {MenuPage} from \"../framework/MenuPage\";\nimport {PLANET_CARD_TYPES} from \"../constants/PlanetCardTypes\";\nimport {PlanetRaidStatusListener} from \"./PlanetRaidStatusListener\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class NewPlanetListener extends AbstractGrassListener {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {MapManager} mapManager\n * @param {GrassManager} grassManager\n * @param {RaidManager} raidManager\n */\n constructor(\n gameState,\n guildAPI,\n mapManager,\n grassManager,\n raidManager\n ) {\n super('NEW_PLANET');\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.mapManager = mapManager;\n this.grassManager = grassManager;\n this.raidManager = raidManager;\n this.redirectControllerName = 'Fleet';\n this.redirectPageName = 'index';\n this.redirectOptions = {planetCardType: PLANET_CARD_TYPES.ALPHA_BASE_ARRIVED};\n }\n\n handler(messageData) {\n if (\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player\n && messageData.category === 'player_consensus'\n && messageData.subject === `structs.player.${this.gameState.thisGuild.id}.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}`\n && messageData.planet_id\n ) {\n this.shouldUnregister = () => true;\n const playerId = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id;\n\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.planet_id = messageData.planet_id;\n\n Promise.all([\n this.guildAPI.getPlanet(messageData.planet_id),\n this.guildAPI.getFleetByPlayerId(playerId),\n this.guildAPI.getStructsByPlayerId(playerId)\n ]).then(([planet, fleet, structs]) => {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setPlanet(planet);\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setPlanetShieldHealth(this.gameState.currentBlockHeight);\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].fleet = fleet;\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.fleet_id = fleet.id;\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setStructs(structs);\n\n this.grassManager.registerListener(new PlanetRaidStatusListener(\n this.gameState,\n this.guildAPI,\n this.raidManager,\n this.mapManager\n ));\n this.mapManager.configureAlphaBaseMap();\n this.gameState.alphaBaseMap.render();\n\n MenuPage.router.goto(this.redirectControllerName, this.redirectPageName, this.redirectOptions);\n });\n }\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {RAID_STATUS} from \"../constants/RaidStatus\";\nimport {RaidStatusUtil} from \"../util/RaidStatusUtil\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\nimport {NOTIFICATION_DIALOGUE_SEQUENCES} from \"../constants/NotificationDialogueSequences\";\nimport {NotificationDialogueSequenceFactory} from \"../factories/NotificationDialogueSequenceFactory\";\nimport {MAP_CONTAINER_IDS} from \"../constants/MapConstants\";\nimport {MenuPage} from \"../framework/MenuPage\";\n\nexport class PlanetRaidStatusListener extends AbstractGrassListener {\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {RaidManager} raidManager\n * @param {MapManager} mapManager\n */\n constructor(\n gameState,\n guildAPI,\n raidManager,\n mapManager\n ) {\n super('PLANET_RAID_STATUS');\n this.gameState = gameState;\n this.guildAPI = gameState.guildAPI;\n this.raidManager = raidManager;\n this.mapManager = mapManager;\n this.raidStatusUtil = new RaidStatusUtil();\n this.notificationDialogueSequenceFactory = new NotificationDialogueSequenceFactory();\n }\n\n raidInitiated(messageData) {\n if (messageData.detail.status !== RAID_STATUS.INITIATED) {\n return;\n }\n\n console.log('PLANET RAID INITIATED HANDLER');\n\n this.guildAPI.getActivePlanetRaidByPlanetId(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.id).then(raidInfo => {\n this.gameState.setPlanetPlanetRaidInfo(raidInfo, false);\n\n this.raidManager.initPlanetRaider().then(() => {\n console.log('PLANET RAID ENEMY INITIATED DONE');\n\n this.mapManager.configureAlphaBaseMap()\n this.gameState.alphaBaseMap.render();\n });\n });\n }\n\n raidOngoing(messageData) {\n if (messageData.detail.status !== RAID_STATUS.ONGOING) {\n return;\n }\n\n console.log('PLANET RAID ONGOING HANDLER');\n\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setPlanetRaidStatus(messageData.detail.status);\n }\n\n raidEndActions() {\n this.gameState.clearPlanetRaidData();\n\n this.mapManager.configureAlphaBaseMap()\n this.gameState.alphaBaseMap.render();\n\n this.gameState.setActiveMapContainerId(MAP_CONTAINER_IDS.ALPHA_BASE);\n this.mapManager.showMap(MAP_CONTAINER_IDS.ALPHA_BASE);\n MenuPage.router.goto('Fleet', 'index');\n MenuPage.open();\n\n this.shouldUnregister = () => true;\n }\n\n raidEnded(messageData) {\n if (!this.raidStatusUtil.hasRaidEnded(messageData.detail.status)) {\n return;\n }\n\n console.log('PLANET RAID HAS ENDED HANDLER');\n\n const seizedOre = messageData.detail.seized_ore\n ? messageData.detail.seized_ore\n : 0;\n\n let dialogue = null;\n if (this.raidStatusUtil.isRaidSuccessful(messageData.detail.status)) {\n dialogue = this.notificationDialogueSequenceFactory.make(\n NOTIFICATION_DIALOGUE_SEQUENCES.DEFEATED_BY_ATTACKER,\n {alphaOreLost: seizedOre}\n );\n } else if (this.raidStatusUtil.isAttackerDefeated(messageData.detail.status)) {\n dialogue = this.notificationDialogueSequenceFactory.make(NOTIFICATION_DIALOGUE_SEQUENCES.DEFENDER_VICTORY);\n }\n\n if (dialogue) {\n dialogue.actionOnSequenceEnd = () => {\n this.raidEndActions();\n }\n dialogue.start();\n } else {\n this.raidEndActions();\n }\n }\n\n handler(messageData) {\n if (\n messageData.category === 'raid_status'\n && messageData.subject === `structs.planet.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.id}`\n ) {\n console.log('PLANET RAID STATUS LISTENER', messageData);\n\n this.raidInitiated(messageData);\n this.raidOngoing(messageData);\n this.raidEnded(messageData);\n }\n }\n}\n","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {MenuPage} from \"../framework/MenuPage\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class PlayerAddressApprovedListener extends AbstractGrassListener {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {PlayerAddressPending} playerAddressPending\n */\n constructor(\n gameState,\n guildAPI,\n playerAddressPending\n ) {\n super('PLAYER_ADDRESS_APPROVED');\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.playerAddressPending = playerAddressPending;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'player_address'\n && messageData.subject === `structs.player.${this.gameState.thisGuild.id}.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}`\n && messageData.status === 'approved'\n && messageData.address === this.playerAddressPending.address\n ) {\n this.shouldUnregister = () => true;\n\n // Refresh device count cache\n this.guildAPI.getPlayerAddressCount(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id, true).then();\n\n MenuPage.router.goto('Account', 'deviceActivationComplete');\n }\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {MenuPage} from \"../framework/MenuPage\";\n\nexport class PlayerAddressApprovedLoginListener extends AbstractGrassListener {\n\n /**\n * @param {GameState} gameState\n * @param {ActivationCodeInfoDTO} activationCodeInfo\n */\n constructor(\n gameState,\n activationCodeInfo\n ) {\n super('PLAYER_ADDRESS_APPROVED_LOGIN');\n this.gameState = gameState;\n this.activationCodeInfo = activationCodeInfo;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'player_address'\n && messageData.subject === `structs.player.${this.gameState.thisGuild.id}.${this.activationCodeInfo.player_id}`\n && messageData.status === 'approved'\n && messageData.address === this.gameState.signingAccount.address\n ) {\n this.shouldUnregister = () => true;\n\n MenuPage.router.goto('Auth', 'loginActivatingDevice', this.activationCodeInfo);\n }\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {MenuPage} from \"../framework/MenuPage\";\n\nexport class PlayerAddressPendingCreatedListener extends AbstractGrassListener {\n\n /**\n * @param {PlayerAddressPendingFactory} playerAddressPendingFactory\n * @param {string} activationCode\n */\n constructor(\n playerAddressPendingFactory,\n activationCode\n ) {\n super('PLAYER_ADDRESS_PENDING_CREATED');\n this.playerAddressPendingFactory = playerAddressPendingFactory;\n this.activationCode = activationCode;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'player_address_pending'\n && messageData.subject === `structs.address.register.${this.activationCode}`\n && !messageData.permissions\n ) {\n const playerAddressPending = this.playerAddressPendingFactory.make(messageData);\n\n this.shouldUnregister = () => true;\n\n MenuPage.router.goto('Account', 'approveNewDevice', playerAddressPending);\n }\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {MenuPage} from \"../framework/MenuPage\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class PlayerAddressRevokedListener extends AbstractGrassListener {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {string} addressToWatch\n */\n constructor(\n gameState,\n guildAPI,\n addressToWatch\n ) {\n super('PLAYER_ADDRESS_REVOKED');\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.addressToWatch = addressToWatch;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'player_address'\n && messageData.subject === `structs.player.${this.gameState.thisGuild.id}.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}`\n && messageData.status === 'revoked'\n && messageData.address === this.addressToWatch\n ) {\n this.shouldUnregister = () => true;\n\n if (this.gameState.signingAccount.address === this.addressToWatch) {\n MenuPage.router.goto('Auth', 'logout');\n } else {\n this.guildAPI.getPlayerAddressCount(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id, true).then(() => {\n MenuPage.router.goto('Account', 'devices');\n });\n }\n }\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class PlayerAlphaListener extends AbstractGrassListener {\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super('PLAYER_ALPHA');\n this.gameState = gameState;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'alpha'\n && messageData.subject === `structs.grid.player.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}`\n ) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setAlpha(messageData.value);\n }\n }\n}\n","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class PlayerCapacityListener extends AbstractGrassListener {\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super('PLAYER_CAPACITY');\n this.gameState = gameState;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'capacity'\n && messageData.subject === `structs.grid.player.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}`\n ) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setPlayerCapacity(messageData.value);\n }\n }\n}\n","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\n\nexport class PlayerCreatedListener extends AbstractGrassListener {\n\n constructor() {\n super('PLAYER_CREATED');\n this.guildId = null;\n this.playerAddress = null;\n this.authManager = null;\n this.guildAPI = null;\n this.gameState = null;\n this.planetManager = null;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'player_consensus'\n && messageData.subject.startsWith(`structs.player.${this.guildId}`)\n && messageData.primary_address === this.playerAddress\n ) {\n console.log(messageData.id);\n\n this.authManager.login(messageData.id).then(async function () {\n await this.planetManager.findNewPlanet();\n }.bind(this));\n\n this.shouldUnregister = () => true;\n }\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class PlayerLoadListener extends AbstractGrassListener {\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super('PLAYER_LOAD');\n this.gameState = gameState;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'load'\n && messageData.subject === `structs.grid.player.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}`\n ) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setLoad(messageData.value);\n }\n }\n}\n","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class PlayerStructsLoadListener extends AbstractGrassListener {\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super('PLAYER_STRUCTS_LOAD');\n this.gameState = gameState;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'structsLoad'\n && messageData.subject === `structs.grid.player.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}`\n ) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setStructsLoad(messageData.value);\n }\n }\n}\n","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {RAID_STATUS} from \"../constants/RaidStatus\";\nimport {RaidStatusUtil} from \"../util/RaidStatusUtil\";\nimport {MenuPage} from \"../framework/MenuPage\";\nimport {PLANET_CARD_TYPES} from \"../constants/PlanetCardTypes\";\nimport {TaskStateFactory} from \"../factories/TaskStateFactory\";\nimport {TaskCmdKillEvent} from \"../events/TaskCmdKillEvent\";\nimport {TaskCmdSpawnEvent} from \"../events/TaskCmdSpawnEvent\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\nimport {NotificationDialogueSequenceFactory} from \"../factories/NotificationDialogueSequenceFactory\";\nimport {NOTIFICATION_DIALOGUE_SEQUENCES} from \"../constants/NotificationDialogueSequences\";\nimport {MAP_CONTAINER_IDS} from \"../constants/MapConstants\";\n\nexport class RaidStatusListener extends AbstractGrassListener {\n /**\n * @param {GameState} gameState\n * @param {RaidManager} raidManager\n * @param {MapManager} mapManager\n */\n constructor(\n gameState,\n raidManager,\n mapManager\n ) {\n super('RAID_STATUS');\n this.gameState = gameState;\n this.raidManager = raidManager;\n this.mapManager = mapManager;\n this.raidStatusUtil = new RaidStatusUtil();\n this.notificationDialogueSequenceFactory = new NotificationDialogueSequenceFactory();\n }\n\n raidInitiated(messageData) {\n if (messageData.detail.status !== RAID_STATUS.INITIATED) {\n return;\n }\n\n console.log('RAID INITIATED HANDLER');\n\n // Don't dispatch as we need to wait for the raid enemy info\n this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].setPlanetRaidStatus(messageData.detail.status, false);\n\n this.raidManager.initRaidEnemy().then(() => {\n console.log('RAID ENEMY INITIATED DONE');\n\n window.dispatchEvent(new TaskCmdSpawnEvent(new TaskStateFactory().initRaidTask(messageData.detail.fleet_id, messageData.detail.planet_id, this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetShieldInfo.block_start_raid, this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetShieldInfo.planetary_shield )));\n\n // Also needs updating as the fleet has moved away\n this.mapManager.configureAlphaBaseMap();\n this.gameState.alphaBaseMap.render();\n\n this.mapManager.configureRaidMap();\n this.gameState.raidMap.render();\n\n MenuPage.router.goto('Fleet', 'index', {'raidCardType': PLANET_CARD_TYPES.RAID_STARTED});\n });\n }\n\n raidOngoing(messageData) {\n if (messageData.detail.status !== RAID_STATUS.ONGOING) {\n return;\n }\n\n console.log('RAID ONGOING HANDLER');\n\n this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].setPlanetRaidStatus(messageData.detail.status);\n\n window.dispatchEvent(new TaskCmdSpawnEvent(new TaskStateFactory().initRaidTask(messageData.detail.fleet_id, messageData.detail.planet_id, this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetShieldInfo.block_start_raid, this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetShieldInfo.planetary_shield )));\n }\n\n\n raidEndActions(messageData) {\n // Player's fleet needs updating as it's been moved back home.\n this.gameState.guildAPI.getFleetByPlayerId(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id).then(playerFleet => {\n\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].fleet = playerFleet;\n\n window.dispatchEvent(new TaskCmdKillEvent(messageData.detail.fleet_id));\n\n // Clear the planet raid info\n this.gameState.clearRaidData();\n\n this.mapManager.configureRaidMap();\n this.gameState.raidMap.render();\n\n this.mapManager.configureAlphaBaseMap();\n this.gameState.alphaBaseMap.render();\n\n this.gameState.setActiveMapContainerId(MAP_CONTAINER_IDS.ALPHA_BASE);\n this.mapManager.showMap(MAP_CONTAINER_IDS.ALPHA_BASE);\n MenuPage.router.goto('Fleet', 'index');\n MenuPage.open();\n\n this.shouldUnregister = () => true;\n\n });\n }\n\n raidEnded(messageData) {\n if (!this.raidStatusUtil.hasRaidEnded(messageData.detail.status)) {\n return;\n }\n\n console.log('RAID HAS ENDED HANDLER');\n\n const seizedOre = messageData.detail.seized_ore\n ? messageData.detail.seized_ore\n : 0;\n\n let dialogue = null;\n if (this.raidStatusUtil.isRaidSuccessful(messageData.detail.status)) {\n dialogue = this.notificationDialogueSequenceFactory.make(\n NOTIFICATION_DIALOGUE_SEQUENCES.ATTACKER_VICTORY,\n {alphaOreRecovered: seizedOre}\n );\n } else if (this.raidStatusUtil.isAttackerDefeated(messageData.detail.status)) {\n dialogue = this.notificationDialogueSequenceFactory.make(NOTIFICATION_DIALOGUE_SEQUENCES.DEFEATED_BY_DEFENDER);\n }\n\n if (dialogue) {\n dialogue.actionOnSequenceEnd = () => {\n this.raidEndActions(messageData);\n }\n dialogue.start();\n } else {\n this.raidEndActions(messageData);\n }\n }\n\n handler(messageData) {\n if (\n messageData.category === 'raid_status'\n && messageData.subject === `structs.planet.${this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo.planet_id}`\n ) {\n console.log('RAID STATUS LISTENER', messageData);\n\n this.raidInitiated(messageData);\n this.raidOngoing(messageData);\n this.raidEnded(messageData);\n }\n\n /**\n * Handles the special case where the player is raiding a planet\n * and the raid enemy's fleet leaves or arrives during the battle.\n */\n if (\n (messageData.category === 'fleet_depart' || messageData.category === 'fleet_arrive')\n && messageData.subject === `structs.planet.${this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].getPlanetId()}`\n && this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].isFleetOwner(messageData.detail?.fleet_id)\n ) {\n this.raidManager.refreshRaidFleet().then(() => {\n this.gameState.raidMap.render();\n })\n }\n }\n}\n","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {TaskStateFactory} from \"../factories/TaskStateFactory\";\nimport {TASK_TYPES} from \"../constants/TaskTypes\";\nimport {TaskCmdKillEvent} from \"../events/TaskCmdKillEvent\";\nimport {TaskCmdSpawnEvent} from \"../events/TaskCmdSpawnEvent\";\nimport {STRUCT_ACTIONS, STRUCT_STATUS_FLAGS, STRUCT_TYPES, STRUCT_WEAPON_SYSTEM} from \"../constants/StructConstants\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\nimport {ClearStructTileEvent} from \"../events/ClearStructTileEvent\";\nimport {UpdateTileStructIdEvent} from \"../events/UpdateTileStructIdEvent\";\nimport {AnimationEventFactory} from \"../factories/AnimationEventFactory\";\nimport {AnimationEvent} from \"../events/AnimationEvent\";\nimport {ANIMATION} from \"../constants/AnimationConstants\";\n\nexport class StructListener extends AbstractGrassListener {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {StructManager} structManager\n * @param {string} targetPlayerType - The player type whose planet this listener monitors\n */\n constructor(\n gameState,\n guildAPI,\n structManager,\n targetPlayerType = PLAYER_TYPES.PLAYER\n ) {\n super(`STRUCT_CHANGE_${targetPlayerType}`);\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.structManager = structManager;\n this.targetPlayerType = targetPlayerType;\n this.animationEventFactory = new AnimationEventFactory();\n }\n\n /**\n * Get the player type for a given owner ID.\n * @param {string} ownerId\n * @returns {string|null}\n */\n getOwnerPlayerType(ownerId) {\n for (const playerType of Object.values(PLAYER_TYPES)) {\n if (this.gameState.keyPlayers[playerType].id === ownerId) {\n return playerType;\n }\n }\n return null;\n }\n\n /**\n * Determines if this listener should be unregistered.\n * For RAID_ENEMY listeners, unregister when the raid is no longer active.\n * @returns {boolean}\n */\n shouldUnregister() {\n if (this.gameState.keyPlayers[this.targetPlayerType].isRaidDependent()) {\n return !this.gameState.getPlanetRaidInfoForKeyPlayer(this.targetPlayerType)?.isRaidActive();\n }\n return false;\n }\n\n /**\n * @param {string} subject\n * @param {object} messageData\n */\n handleStructBlockBuildStart(subject, messageData) {\n if (!(\n messageData.category === 'struct_block_build_start'\n && messageData.subject === subject\n && messageData.detail.block > 0\n )) {\n return;\n }\n\n // Skip the struct viewer re-render here: this handler only needs the\n // refreshed struct snapshot to spawn the build progress task. The\n // deployment indicator was already rendered client-side by\n // DeployOffcanvas (own structs) or by the initial map sync, and the\n // BUILT struct_status transition handled in handleStructStatus is what\n // swaps the indicator out for the built viewer plus deployment animation.\n // Letting refreshStruct re-render here lets the last block_build_start's\n // RenderStructEvent race the BUILT transition's deployment animation -\n // if the block event's API response lands while the animation is in\n // flight, the struct viewer is torn down and the animation either never\n // completes or completes against an orphaned wrapper, stalling the\n // animation queue. RenderStructHUDEvent is still dispatched\n // unconditionally inside refreshStruct so the build progress bar updates.\n this.structManager.refreshStruct(\n messageData.detail.struct_id,\n this.gameState.keyPlayers[this.targetPlayerType].planetMapType,\n false,\n false\n ).then((struct) => {\n\n if (struct && this.getOwnerPlayerType(struct.owner) === PLAYER_TYPES.PLAYER) {\n window.dispatchEvent(new TaskCmdSpawnEvent(new TaskStateFactory().initStructTask(\n messageData.detail.struct_id,\n TASK_TYPES.BUILD,\n messageData.detail.block,\n this.gameState.structTypes.getStructTypeById(struct.type).build_difficulty\n )));\n }\n\n });\n }\n\n /**\n * @param {string} subject\n * @param {object} messageData\n */\n handleStructStatus(subject, messageData) {\n if (!(\n messageData.category === 'struct_status'\n && messageData.subject === subject\n )) {\n return;\n }\n\n let removePendingBuild = false;\n let renderStruct = true;\n const mapType = this.gameState.keyPlayers[this.targetPlayerType].planetMapType;\n const mapId = this.gameState[mapType]?.mapId ?? null;\n\n if (\n (messageData.detail.status_old & STRUCT_STATUS_FLAGS.BUILT) === 0\n && (messageData.detail.status & STRUCT_STATUS_FLAGS.BUILT) > 0\n ) {\n removePendingBuild = true;\n\n } else if (\n (messageData.detail.status_old & STRUCT_STATUS_FLAGS.HIDDEN) === 0\n && (messageData.detail.status & STRUCT_STATUS_FLAGS.HIDDEN) > 0\n ) {\n renderStruct = false;\n const animationEvent = this.animationEventFactory.makeStealthActivateAnimationEvent(\n messageData.detail.struct_id,\n mapId\n );\n this.gameState.animationEventQueue.enqueue(animationEvent);\n\n } else if (\n (messageData.detail.status_old & STRUCT_STATUS_FLAGS.HIDDEN) > 0\n && (messageData.detail.status & STRUCT_STATUS_FLAGS.HIDDEN) === 0\n ) {\n renderStruct = false;\n const animationEvent = this.animationEventFactory.makeStealthDeactivateAnimationEvent(\n messageData.detail.struct_id,\n mapId\n );\n this.gameState.animationEventQueue.enqueue(animationEvent);\n\n } else if (\n (messageData.detail.status_old & STRUCT_STATUS_FLAGS.DESTROYED) === 0\n && (messageData.detail.status & STRUCT_STATUS_FLAGS.DESTROYED) > 0\n ) {\n // The destroy animation enqueued by handleStructAttack drives the visual\n // teardown, and DestroyedStructManager clears the tile after the sweep\n // delay. Re-rendering the viewer here would destroy the receive-damage\n // animations mid-flight (their 'complete' listeners die with the lottie\n // instance), stalling the animation queue so the destroy animation never\n // dequeues.\n renderStruct = false;\n\n } else {\n // Any other status transition (e.g. ONLINE/OFFLINE, LOCKED, STORED, or\n // a follow-up status change emitted alongside a transition we already\n // handled) doesn't change anything the struct still itself renders -\n // those indicators live on the HUD layer which is still refreshed by\n // the RenderStructHUDEvent dispatched unconditionally from refreshStruct.\n // Re-rendering the struct viewer for these would tear down any in-flight\n // animation triggered by a previously-matched transition (most notably\n // the deployment animation autoplayed when BUILT was first set), leaving\n // the viewer pointing at a wiped DOM and stalling the animation queue.\n renderStruct = false;\n }\n\n this.structManager.refreshStruct(\n messageData.detail.struct_id,\n mapType,\n removePendingBuild,\n renderStruct\n ).then((struct) => {\n\n this.gameState.actionBarLock.clear();\n\n // Only kill build tasks for the player's own structs\n if (\n removePendingBuild\n && struct\n && (struct.owner === this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id)\n ) {\n window.dispatchEvent(new TaskCmdKillEvent(messageData.detail.struct_id));\n }\n });\n }\n\n /**\n * @param {string} subject\n * @param {object} messageData\n */\n handleStructMove(subject, messageData) {\n if (!(\n messageData.category === 'struct_move'\n && messageData.subject === subject\n )) {\n return;\n }\n\n const structId = messageData.detail.struct_id;\n const oldStruct = this.structManager.getStructById(structId);\n const mapType = this.gameState.keyPlayers[this.targetPlayerType].planetMapType;\n const mapId = this.gameState[mapType]?.mapId;\n\n // 1. Enqueue depart animation\n const departEvent = new AnimationEvent(\n structId,\n [ANIMATION.NAMES.MOVE.DEPART],\n false,\n false,\n {},\n mapId ?? null\n );\n\n departEvent.onAnimationEnd = async () => {\n if (oldStruct && mapId) {\n const oldTileType = this.structManager.getTileTypeFromStruct(oldStruct);\n const oldAmbit = oldStruct.operating_ambit.toUpperCase();\n\n window.dispatchEvent(new ClearStructTileEvent(\n mapId, oldTileType, oldAmbit, oldStruct.slot, oldStruct.owner\n ));\n window.dispatchEvent(new UpdateTileStructIdEvent(\n mapId, oldTileType, oldAmbit, oldStruct.slot, oldStruct.owner, ''\n ));\n }\n\n await this.structManager.refreshStruct(structId, mapType);\n };\n\n this.gameState.animationEventQueue.enqueue(departEvent);\n\n // 2. Enqueue arrive animation (plays after depart + side effects complete)\n const arriveEvent = new AnimationEvent(\n structId,\n [ANIMATION.NAMES.MOVE.ARRIVE],\n false,\n true,\n {},\n mapId ?? null\n );\n\n arriveEvent.onAnimationEnd = () => {\n this.gameState.actionBarLock.clear();\n };\n\n this.gameState.animationEventQueue.enqueue(arriveEvent);\n }\n\n /**\n * @param {string} subject\n * @param {object} messageData\n */\n handleStructDefenseAdd(subject, messageData) {\n if (!(\n messageData.category === 'struct_defense_add'\n && messageData.subject === subject\n )) {\n return;\n }\n\n const defenderStructId = messageData.detail.defender_struct_id;\n const protectedStructId = messageData.detail.protected_struct_id;\n const mapType = this.gameState.keyPlayers[this.targetPlayerType].planetMapType;\n\n // Refresh both the defender and protected structs\n Promise.all([\n this.structManager.refreshStruct(defenderStructId, mapType, false, false),\n this.structManager.refreshStruct(protectedStructId, mapType, false, false)\n ]).then(() => {\n // Only clear actionBarLock if this was triggered by the current player's action\n if (\n this.gameState.actionBarLock.getCurrentAction() === STRUCT_ACTIONS.DEFENSE_SET\n && this.gameState.actionBarLock.isLocked()\n ) {\n this.gameState.actionBarLock.clear();\n }\n });\n }\n\n /**\n * @param {string} subject\n * @param {object} messageData\n */\n handleStructDefenseRemove(subject, messageData) {\n if (!(\n messageData.category === 'struct_defense_remove'\n && messageData.subject === subject\n )) {\n return;\n }\n\n const defenderStructId = messageData.detail.defender_struct_id;\n const protectedStructId = messageData.detail.protected_struct_id;\n const mapType = this.gameState.keyPlayers[this.targetPlayerType].planetMapType;\n\n // Refresh both the defender and protected structs\n Promise.all([\n this.structManager.refreshStruct(defenderStructId, mapType, false, false),\n this.structManager.refreshStruct(protectedStructId, mapType, false, false)\n ]).then(() => {\n // Only clear actionBarLock if this was triggered by the current player's action\n if (\n this.gameState.actionBarLock.getCurrentAction() === STRUCT_ACTIONS.DEFENSE_CLEAR\n && this.gameState.actionBarLock.isLocked()\n ) {\n this.gameState.actionBarLock.clear();\n }\n });\n }\n\n /**\n * @param {string} subject\n * @param {object} messageData\n */\n handleStructAttack(subject, messageData) {\n if (!(\n messageData.category === 'struct_attack'\n && messageData.subject === subject\n )) {\n return;\n }\n\n const mapType = this.gameState.keyPlayers[this.targetPlayerType].planetMapType;\n const mapId = this.gameState[mapType]?.mapId ?? null;\n const structIdsToRefresh = new Set();\n\n structIdsToRefresh.add(messageData.detail.attackerStructId);\n\n // Track the attacker's running health across all shots/counters so each\n // animation event for the attacker can carry the partial health value at\n // the point in the sequence at which it ends. Without this, gameState\n // (refreshed in parallel with the queue) would hold the final post-attack\n // health and the still/HUD would jump straight to that final state after\n // the first counter animation.\n let runningAttackerHealth = parseInt('' + (messageData.detail.attackerHealthBefore || 0));\n\n for (let i = 0; i < messageData.detail.eventAttackShotDetail.length; i++) {\n\n const eventAttackShotDetail = messageData.detail.eventAttackShotDetail[i];\n\n let defenderCounterDestroyedAttacker = false;\n\n for (let j = 0; j < eventAttackShotDetail.eventAttackDefenderCounterDetail.length; j++) {\n\n const eventAttackDefenderCounterDetail = eventAttackShotDetail.eventAttackDefenderCounterDetail[j];\n\n // i. Play counterByStruct attack animation\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeAttackAnimationEvent(\n eventAttackDefenderCounterDetail.counterByStructId,\n eventAttackDefenderCounterDetail.counterByStructWeaponSystem,\n mapId\n )\n );\n\n const counterDamage = parseInt('' + (eventAttackDefenderCounterDetail.counterDamage || 0));\n const attackerHealthBeforeCounter = runningAttackerHealth;\n const attackerHealthAfterCounter = Math.max(0, attackerHealthBeforeCounter - counterDamage);\n runningAttackerHealth = attackerHealthAfterCounter;\n\n // ii. Play attackerStruct receiving damage animation\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeReceiveDamageAnimationEvent(\n messageData.detail.attackerStructId,\n eventAttackDefenderCounterDetail.counterByStructType,\n eventAttackDefenderCounterDetail.counterByStructOperatingAmbit,\n eventAttackDefenderCounterDetail.counterByStructWeaponSystem,\n messageData.detail.attackerStructType,\n messageData.detail.attackerStructOperatingAmbit,\n messageData.detail.attackerStructLocationType,\n attackerHealthBeforeCounter,\n attackerHealthAfterCounter,\n false,\n '',\n mapId\n )\n );\n\n if (eventAttackDefenderCounterDetail.counterDestroyedAttacker) {\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeDestroyAnimationEvent(\n messageData.detail.attackerStructId,\n messageData.detail.attackerStructOperatingAmbit,\n mapId\n )\n );\n\n defenderCounterDestroyedAttacker = true;\n break;\n }\n }\n\n if (!defenderCounterDestroyedAttacker) {\n // b. If not counterDestroyedAttacker, play attackerStruct attack animation.\n // Thread runningAttackerHealth so the still/HUD don't snap to the final\n // gameState health when this animation ends; the target counter (if any)\n // is still ahead of us in the queue.\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeAttackAnimationEvent(\n messageData.detail.attackerStructId,\n messageData.detail.weaponSystem,\n mapId,\n runningAttackerHealth\n )\n );\n }\n\n if (eventAttackShotDetail.evaded) {\n // c. If evaded, play targetStruct evade animation\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeReceiveDamageAnimationEvent(\n eventAttackShotDetail.targetStructId,\n messageData.detail.attackerStructType,\n messageData.detail.attackerStructOperatingAmbit,\n messageData.detail.weaponSystem,\n eventAttackShotDetail.targetStructType,\n eventAttackShotDetail.targetStructOperatingAmbit,\n eventAttackShotDetail.targetStructLocationType,\n eventAttackShotDetail.targetHealthBefore,\n eventAttackShotDetail.targetHealthAfter,\n eventAttackShotDetail.evaded,\n eventAttackShotDetail.evadedCause,\n mapId\n )\n );\n }\n\n if (eventAttackShotDetail.blocked) {\n // d. If blocked, play blockedByStruct receiving damage animation\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeReceiveDamageAnimationEvent(\n eventAttackShotDetail.blockedByStructId,\n messageData.detail.attackerStructType,\n messageData.detail.attackerStructOperatingAmbit,\n messageData.detail.weaponSystem,\n eventAttackShotDetail.blockedByStructType,\n eventAttackShotDetail.blockedByStructOperatingAmbit,\n eventAttackShotDetail.blockedByStructLocationType,\n eventAttackShotDetail.blockerHealthBefore,\n eventAttackShotDetail.blockerHealthAfter,\n false,\n '',\n mapId\n )\n );\n\n if (eventAttackShotDetail.blockerDestroyed) {\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeDestroyAnimationEvent(\n eventAttackShotDetail.blockedByStructId,\n eventAttackShotDetail.blockedByStructOperatingAmbit,\n mapId\n )\n );\n }\n\n structIdsToRefresh.add(eventAttackShotDetail.blockedByStructId);\n }\n\n if (parseInt(eventAttackShotDetail.targetHealthBefore) !== parseInt(eventAttackShotDetail.targetHealthAfter)) {\n // e. If targetHealthBefore !== targetHealthAfter, play targetStruct receive damage animation\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeReceiveDamageAnimationEvent(\n eventAttackShotDetail.targetStructId,\n messageData.detail.attackerStructType,\n messageData.detail.attackerStructOperatingAmbit,\n messageData.detail.weaponSystem,\n eventAttackShotDetail.targetStructType,\n eventAttackShotDetail.targetStructOperatingAmbit,\n eventAttackShotDetail.targetStructLocationType,\n eventAttackShotDetail.targetHealthBefore,\n eventAttackShotDetail.targetHealthAfter,\n false,\n '',\n mapId\n )\n );\n\n if (eventAttackShotDetail.targetDestroyed) {\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeDestroyAnimationEvent(\n eventAttackShotDetail.targetStructId,\n eventAttackShotDetail.targetStructOperatingAmbit,\n mapId\n )\n );\n }\n\n structIdsToRefresh.add(eventAttackShotDetail.targetStructId);\n }\n\n if (!eventAttackShotDetail.targetDestroyed && eventAttackShotDetail.targetCountered) {\n // f. If targetHealthAfter > 0 and targetCountered, play targetStruct attack animation.\n // Thread targetHealthAfter so the still/HUD reflect the post-damage value when this\n // animation ends; otherwise the still would fall back to gameState (which may not\n // have refreshed yet) and visually flash backward to the pre-damage health.\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeAttackAnimationEvent(\n eventAttackShotDetail.targetStructId,\n eventAttackShotDetail.targetCounterWeaponSystem,\n mapId,\n eventAttackShotDetail.targetHealthAfter\n )\n );\n\n const targetCounterDamage = parseInt('' + (eventAttackShotDetail.targetCounteredDamage || 0));\n const attackerHealthBeforeTargetCounter = runningAttackerHealth;\n const attackerHealthAfterTargetCounter = Math.max(0, attackerHealthBeforeTargetCounter - targetCounterDamage);\n runningAttackerHealth = attackerHealthAfterTargetCounter;\n\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeReceiveDamageAnimationEvent(\n messageData.detail.attackerStructId,\n eventAttackShotDetail.targetStructType,\n eventAttackShotDetail.targetStructOperatingAmbit,\n eventAttackShotDetail.targetCounterWeaponSystem,\n messageData.detail.attackerStructType,\n messageData.detail.attackerStructOperatingAmbit,\n messageData.detail.attackerStructLocationType,\n attackerHealthBeforeTargetCounter,\n attackerHealthAfterTargetCounter,\n false,\n '',\n mapId\n )\n );\n }\n\n if (eventAttackShotDetail.targetCounterDestroyedAttacker) {\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeDestroyAnimationEvent(\n messageData.detail.attackerStructId,\n messageData.detail.attackerStructOperatingAmbit,\n mapId\n )\n );\n }\n }\n\n if (messageData.detail.planetaryDefenseCannonDamageToAttacker) {\n\n // The message doesn't carry the PDC struct id, but the listener is scoped\n // to a single planet (this.targetPlayerType's planet) and there is at most\n // one planetary defense cannon per planet, so we can locate it by struct\n // type among the structs owned by this listener's target player.\n const planetaryDefenseCannonStruct = this.gameState.getPlanetaryDefenseStructByKeyPlayer(this.targetPlayerType);\n\n const planetaryDefenseCannonDamage = parseInt(messageData.detail.planetaryDefenseCannonDamage);\n const attackerHealthBeforePDCCounter = runningAttackerHealth;\n const attackerHealthAfterPDCCounter = Math.max(0, attackerHealthBeforePDCCounter - planetaryDefenseCannonDamage);\n runningAttackerHealth = attackerHealthAfterPDCCounter;\n\n if (planetaryDefenseCannonStruct) {\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeAttackAnimationEvent(\n planetaryDefenseCannonStruct.id,\n STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON,\n mapId\n )\n );\n\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeReceiveDamageAnimationEvent(\n messageData.detail.attackerStructId,\n STRUCT_TYPES.PLANETARY_DEFENSE_CANNON,\n planetaryDefenseCannonStruct.operating_ambit,\n STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON,\n messageData.detail.attackerStructType,\n messageData.detail.attackerStructOperatingAmbit,\n messageData.detail.attackerStructLocationType,\n attackerHealthBeforePDCCounter,\n attackerHealthAfterPDCCounter,\n false,\n '',\n mapId\n )\n );\n\n structIdsToRefresh.add(planetaryDefenseCannonStruct.id);\n\n if (messageData.detail.planetaryDefenseCannonDamageDestroyedAttacker) {\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeDestroyAnimationEvent(\n messageData.detail.attackerStructId,\n messageData.detail.attackerStructOperatingAmbit,\n mapId\n )\n );\n }\n }\n }\n\n // Refresh all involved structs\n const refreshPromises = Array.from(structIdsToRefresh).map(\n structId => this.structManager.refreshStruct(structId, mapType, false, false)\n );\n\n Promise.all(refreshPromises).then(() => {\n // Only clear actionBarLock if this was triggered by the current player's attack action\n if (\n (this.gameState.actionBarLock.getCurrentAction() === STRUCT_ACTIONS.ATTACK_PRIMARY_WEAPON\n || this.gameState.actionBarLock.getCurrentAction() === STRUCT_ACTIONS.ATTACK_SECONDARY_WEAPON)\n && this.gameState.actionBarLock.isLocked()\n ) {\n this.gameState.actionBarLock.clear();\n }\n });\n }\n\n handler(messageData) {\n const targetPlanetId = this.gameState.keyPlayers[this.targetPlayerType].getPlanetId();\n\n // Skip if we don't have a target planet ID yet\n if (!targetPlanetId) {\n return;\n }\n\n const subject = `structs.planet.${targetPlanetId}`;\n\n this.handleStructBlockBuildStart(subject, messageData);\n this.handleStructStatus(subject, messageData);\n this.handleStructMove(subject, messageData);\n this.handleStructDefenseAdd(subject, messageData);\n this.handleStructDefenseRemove(subject, messageData);\n this.handleStructAttack(subject, messageData);\n }\n}\n","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {TaskStateFactory} from \"../factories/TaskStateFactory\";\nimport {TASK_TYPES} from \"../constants/TaskTypes\";\nimport {TaskCmdKillEvent} from \"../events/TaskCmdKillEvent\";\nimport {TaskCmdSpawnEvent} from \"../events/TaskCmdSpawnEvent\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class StructMineStatusListener extends AbstractGrassListener {\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super('STRUCTS_MINE_STATUS_CHANGE');\n this.gameState = gameState;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'struct_block_ore_mine_start'\n && messageData.subject === `structs.planet.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.planet_id}`\n ) {\n if (messageData.detail.block === 0) {\n window.dispatchEvent(new TaskCmdKillEvent(messageData.detail.struct_id));\n } else {\n const structId = messageData.detail.struct_id;\n const structTypeId = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].structs[structId].type;\n const oreMineDifficulty = this.gameState.structTypes.getStructTypeById(structTypeId).ore_mining_difficulty;\n\n window.dispatchEvent(new TaskCmdSpawnEvent(new TaskStateFactory().initStructTask(messageData.detail.struct_id, TASK_TYPES.MINE, messageData.detail.block, oreMineDifficulty)));\n }\n }\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {TaskStateFactory} from \"../factories/TaskStateFactory\";\nimport {TASK_TYPES} from \"../constants/TaskTypes\";\nimport {TaskCmdKillEvent} from \"../events/TaskCmdKillEvent\";\nimport {TaskCmdSpawnEvent} from \"../events/TaskCmdSpawnEvent\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\n\nexport class StructRefineStatusListener extends AbstractGrassListener {\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super('STRUCTS_REFINE_STATUS_CHANGE');\n this.gameState = gameState;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'struct_block_ore_refine_start'\n && messageData.subject === `structs.planet.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.planet_id}`\n ) {\n if (messageData.detail.block === 0) {\n window.dispatchEvent(new TaskCmdKillEvent(messageData.detail.struct_id));\n } else {\n const structId = messageData.detail.struct_id;\n const structTypeId = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].structs[structId].type;\n const oreRefineDifficulty = this.gameState.structTypes.getStructTypeById(structTypeId).ore_refining_difficulty;\n\n window.dispatchEvent(new TaskCmdSpawnEvent(new TaskStateFactory().initStructTask(messageData.detail.struct_id, TASK_TYPES.REFINE, messageData.detail.block, oreRefineDifficulty)));\n }\n }\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {MenuPage} from \"../framework/MenuPage\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class TransferSentListener extends AbstractGrassListener {\n\n /**\n * @param {GameState} gameState\n * @param {string} fromAddress\n * @param {string} toAddress\n * @param {number} alphaAmount\n */\n constructor(gameState, fromAddress, toAddress, alphaAmount) {\n super('TRANSFER_SENT');\n this.gameState = gameState;\n this.fromAddress = fromAddress;\n this.toAddress = toAddress;\n this.alphaAmount = alphaAmount;\n }\n\n handler(messageData) {\n if (\n this.gameState.thisGuild.id\n && this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id\n && messageData.category === 'sent'\n && messageData.subject === `structs.inventory.ualpha.${this.gameState.thisGuild.id}.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}.${this.fromAddress}`\n && messageData.address === this.fromAddress\n && messageData.counterparty === this.toAddress\n && Math.abs(messageData.amount) === this.alphaAmount\n ) {\n this.shouldUnregister = () => true;\n\n MenuPage.router.goto('Account', 'transaction', {txId: messageData.id, comingFromPage: 1, hasBackToAccountBtn: true});\n }\n }\n}","import {MenuPage} from './framework/MenuPage';\nimport {AuthController} from \"./controllers/AuthController\";\nimport {GameState} from \"./models/GameState\";\nimport {GuildAPI} from \"./api/GuildAPI\";\nimport {WalletManager} from \"./managers/WalletManager\";\nimport {AuthManager} from \"./managers/AuthManager\";\nimport {GrassManager} from \"./framework/GrassManager\";\nimport {BlockListener} from \"./grass_listeners/BlockListener\";\nimport {HUDViewModel} from \"./view_models/HUDViewModel\";\nimport {AccountController} from \"./controllers/AccountController\";\nimport {SigningClientManager} from \"./managers/SigningClientManager\";\nimport {PlanetManager} from \"./managers/PlanetManager\";\nimport {PlayerAddressManager} from \"./managers/PlayerAddressManager\";\nimport {PermissionManager} from \"./managers/PermissionManager\";\nimport {PlayerAddressPendingFactory} from \"./factories/PlayerAddressPendingFactory\";\nimport {GenericController} from \"./controllers/GenericController\";\nimport {AlphaManager} from \"./managers/AlphaManager\";\nimport {GuildController} from \"./controllers/GuildController\";\nimport {FleetController} from \"./controllers/FleetController\";\nimport {FleetManager} from \"./managers/FleetManager\";\nimport {RaidManager} from \"./managers/RaidManager\";\nimport {MapComponent} from \"./view_models/components/map/MapComponent\";\nimport {MapManager} from \"./managers/MapMananger\";\nimport {MAP_CONTAINER_IDS} from \"./constants/MapConstants\";\nimport {CheatsheetContentBuilder} from \"./builders/CheatsheetContentBuilder\";\nimport {StructManager} from \"./managers/StructManager\";\nimport {TaskManager} from \"./managers/TaskManager\";\nimport {TaskStateFactory} from \"./factories/TaskStateFactory\";\nimport {EVENTS} from \"./constants/Events\";\nimport {TASK} from \"./constants/TaskConstants\";\nimport {PLAYER_TYPES} from \"./constants/PlayerTypes\";\nimport {DestroyedStructManager} from \"./managers/DestroyedStructManager\";\nimport {NotificationDialogue} from \"./framework/NotificationDialogue\";\nimport {AnimationEventQueue} from \"./data_structures/AnimationEventQueue\";\n\n// TODO Remove eventually...\n// Or formalize a migration system (MigrationManager?)\nconst actionBarMigrate = localStorage.getItem(\"actionBarMigrate-20260107\");\nif (!actionBarMigrate) {\n console.log('Migrating to new Struct Type System');\n localStorage.setItem(\"actionBarMigrate-20260107\", \"true\");\n localStorage.removeItem('getStructTypes');\n}\n\nconst gameState = new GameState();\nglobal.gameState = gameState;\n\nconst guildAPI = new GuildAPI();\nglobal.guildAPI = guildAPI;\n\nconst walletManager = new WalletManager();\nglobal.walletManager = walletManager;\n\nconst grassManager = new GrassManager(\n `ws://${window.location.hostname}:1443`,\n \"structs.>\"\n);\n\nconst blockGrassManager = new GrassManager(\n `ws://${window.location.hostname}:1443`,\n \"consensus\"\n);\n\nconst signingClientManager = new SigningClientManager(gameState);\nglobal.signingClientManager = signingClientManager;\n\nconst structManager = new StructManager(gameState, guildAPI, signingClientManager);\n\nconst planetManager = new PlanetManager(gameState, signingClientManager);\n\nconst playerAddressManager = new PlayerAddressManager(gameState, guildAPI);\n\nconst permissionManager = new PermissionManager();\n\nconst playerAddressPendingFactory = new PlayerAddressPendingFactory();\n\nconst mapManager = new MapManager(gameState);\n\nconst raidManager = new RaidManager(gameState, guildAPI, grassManager, mapManager, structManager);\n\nconst taskStateFactory = new TaskStateFactory();\n\nconst taskManager = new TaskManager(gameState, guildAPI, signingClientManager, taskStateFactory);\nglobal.taskManager = taskManager;\n\nconst destroyedStructManager = new DestroyedStructManager(gameState, structManager);\nglobal.destroyedStructManager = destroyedStructManager;\n\nconst animationEventQueue = new AnimationEventQueue();\nanimationEventQueue.initListeners();\ngameState.animationEventQueue = animationEventQueue;\n\nconst authManager = new AuthManager(\n gameState,\n guildAPI,\n walletManager,\n grassManager,\n signingClientManager,\n planetManager,\n playerAddressManager,\n playerAddressPendingFactory,\n raidManager,\n mapManager,\n taskManager,\n structManager,\n destroyedStructManager\n);\n\nconst alphaManager = new AlphaManager(gameState, signingClientManager);\n\nconst fleetManager = new FleetManager(gameState, signingClientManager);\n\nconst blockListener = new BlockListener(gameState);\n\nconst authController = new AuthController(\n gameState,\n guildAPI,\n walletManager,\n authManager\n);\nconst accountController = new AccountController(\n gameState,\n guildAPI,\n authManager,\n permissionManager,\n alphaManager,\n grassManager,\n signingClientManager\n);\nconst genericController = new GenericController(\n gameState\n);\nconst guildController = new GuildController(\n gameState,\n guildAPI,\n grassManager,\n alphaManager\n);\nconst fleetController = new FleetController(\n gameState,\n guildAPI,\n grassManager,\n fleetManager,\n raidManager,\n planetManager,\n mapManager,\n structManager\n);\n\ngameState.alphaBaseMap = new MapComponent(\n gameState,\n signingClientManager,\n structManager,\n taskManager,\n MAP_CONTAINER_IDS.ALPHA_BASE,\n 'alpha-base'\n);\n\ngameState.raidMap = new MapComponent(\n gameState,\n signingClientManager,\n structManager,\n taskManager,\n MAP_CONTAINER_IDS.RAID,\n 'raid'\n);\n\ngameState.previewMap = new MapComponent(\n gameState,\n signingClientManager,\n structManager,\n taskManager,\n MAP_CONTAINER_IDS.PREVIEW,\n 'preview',\n false\n);\n\nMenuPage.gameState = gameState;\nMenuPage.mapManager = mapManager;\nMenuPage.router.registerController(authController);\nMenuPage.router.registerController(accountController);\nMenuPage.router.registerController(genericController);\nMenuPage.router.registerController(guildController);\nMenuPage.router.registerController(fleetController);\nMenuPage.initListeners();\nMenuPage.sui.cheatsheet.setContentBuilder(new CheatsheetContentBuilder(gameState));\n\nNotificationDialogue.initListeners();\n\ngrassManager.init();\nblockGrassManager.registerListener(blockListener);\nblockGrassManager.init();\n\nconst hudContainer = document.getElementById(HUDViewModel.containerId);\n\nawait gameState.load();\ngameState.settings = await guildAPI.getSettings();\ngameState.thisGuild = await guildAPI.getThisGuild();\n\nHUDViewModel.init(gameState, signingClientManager, structManager, taskManager);\nhudContainer.innerHTML = HUDViewModel.render();\nHUDViewModel.initPageCode();\n\nMenuPage.sui.autoInitAll();\n\nif (!gameState.keyPlayers[PLAYER_TYPES.PLAYER].id) {\n MenuPage.router.goto('Auth', 'index');\n\n MenuPage.hideLoadingScreen();\n} else {\n authManager.login(gameState.keyPlayers[PLAYER_TYPES.PLAYER].id).then(() => {\n playerAddressManager.addPlayerAddressMeta().then(() => {\n MenuPage.close();\n MenuPage.router.restore('Fleet', 'index');\n MenuPage.hideLoadingScreen();\n });\n });\n}\n\n// Start the hashing engine after a delay\nnew Promise(resolve => setTimeout(resolve, TASK.START_DELAY)).then(() => window.dispatchEvent(new CustomEvent(EVENTS.TASK_CMD_MANAGER_RESUME)));\n","import {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class AlphaManager {\n\n /**\n * @param gameState\n * @param {SigningClientManager} signingClientManager\n */\n constructor(gameState, signingClientManager) {\n this.gameState = gameState;\n this.signingClientManager = signingClientManager;\n }\n\n /**\n * @param {number} alphaAmount\n * @return {string}\n */\n convertAlphaToUAlpha(alphaAmount) {\n return (BigInt(alphaAmount) * BigInt(1000000)).toString();\n }\n\n /**\n * @param {string} recipientAddress\n * @param {number} alphaAmount\n */\n async transferAlpha(recipientAddress, alphaAmount) {\n await this.signingClientManager.queueMsgPlayerSend(\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.primary_address,\n recipientAddress,\n [{\n denom: \"ualpha\",\n amount: this.convertAlphaToUAlpha(alphaAmount),\n }]\n );\n }\n\n /**\n * @param {number} alphaAmount\n */\n async infuse(alphaAmount) {\n await this.signingClientManager.queueMsgReactorInfuse(\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.primary_address,\n this.gameState.thisGuild.validator,\n {\n denom: \"ualpha\",\n amount: this.convertAlphaToUAlpha(alphaAmount),\n }\n );\n }\n\n /**\n * @param {number} alphaAmount\n */\n async defuse(alphaAmount) {\n await this.signingClientManager.queueMsgReactorDefuse(\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.primary_address,\n this.gameState.thisGuild.validator,\n {\n denom: \"ualpha\",\n amount: this.convertAlphaToUAlpha(alphaAmount),\n }\n );\n }\n}","import {PlayerCreatedListener} from \"../grass_listeners/PlayerCreatedListener\";\nimport {LoginRequestDTO} from \"../dtos/LoginRequestDTO\";\nimport {KeyPlayerOreListener} from \"../grass_listeners/KeyPlayerOreListener\";\nimport {PlayerCapacityListener} from \"../grass_listeners/PlayerCapacityListener\";\nimport {PlayerLoadListener} from \"../grass_listeners/PlayerLoadListener\";\nimport {PlayerStructsLoadListener} from \"../grass_listeners/PlayerStructsLoadListener\";\nimport {ConnectionCapacityListener} from \"../grass_listeners/ConnectionCapacityListener\";\nimport {PlayerAlphaListener} from \"../grass_listeners/PlayerAlphaListener\";\nimport {MenuPage} from \"../framework/MenuPage\";\nimport {PlanetManager} from \"./PlanetManager\";\nimport {NewPlanetListener} from \"../grass_listeners/NewPlanetListener\";\nimport {AddPendingAddressRequestDTO} from \"../dtos/AddPendingAddressRequestDTO\";\nimport {PlayerAddressApprovedLoginListener} from \"../grass_listeners/PlayerAddressApprovedLoginListener\";\nimport {PlayerAddressPendingCreatedListener} from \"../grass_listeners/PlayerAddressPendingCreatedListener\";\nimport {PlayerAddressPendingFactory} from \"../factories/PlayerAddressPendingFactory\";\nimport {SetPendingAddressPermissionsRequestDTO} from \"../dtos/SetPendingAddressPermissionsRequestDTO\";\nimport {PlayerAddressApprovedListener} from \"../grass_listeners/PlayerAddressApprovedListener\";\nimport {PlayerAddressRevokedListener} from \"../grass_listeners/PlayerAddressRevokedListener\";\nimport {AlphaChangeListener} from \"../grass_listeners/AlphaChangeListener\";\nimport {PlanetRaidStatusListener} from \"../grass_listeners/PlanetRaidStatusListener\";\nimport {StructListener} from \"../grass_listeners/StructListener\";\nimport {StructMineStatusListener} from \"../grass_listeners/StructMineStatusListener\";\nimport {StructRefineStatusListener} from \"../grass_listeners/StructRefineStatusListener\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\nimport {KeyPlayerLastActionListener} from \"../grass_listeners/KeyPlayerLastActionListener\";\n\nexport class AuthManager {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {WalletManager} walletManager\n * @param {GrassManager} grassManager\n * @param {SigningClientManager} signingClientManager\n * @param {PlanetManager} planetManager\n * @param {PlayerAddressManager} playerAddressManager\n * @param {PlayerAddressPendingFactory} playerAddressPendingFactory\n * @param {RaidManager} raidManager\n * @param {MapManager} mapManager\n * @param {TaskManager} taskManager\n * @param {StructManager} structManager\n * @param {DestroyedStructManager} destroyedStructManager\n */\n constructor(\n gameState,\n guildAPI,\n walletManager,\n grassManager,\n signingClientManager,\n planetManager,\n playerAddressManager,\n playerAddressPendingFactory,\n raidManager,\n mapManager,\n taskManager,\n structManager,\n destroyedStructManager,\n ) {\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.walletManager = walletManager;\n this.grassManager = grassManager;\n this.signingClientManager = signingClientManager;\n this.planetManager = planetManager;\n this.playerAddressManager = playerAddressManager;\n this.playerAddressPendingFactory = playerAddressPendingFactory;\n this.raidManager = raidManager;\n this.mapManager = mapManager;\n this.taskManager = taskManager;\n this.structManager = structManager;\n this.destroyedStructManager = destroyedStructManager;\n }\n\n /**\n * @param {string} mnemonic\n * @return {Promise}\n */\n async initWallet(mnemonic) {\n this.gameState.wallet = await this.walletManager.createWallet(mnemonic);\n const accounts = await this.gameState.wallet.getAccountsWithPrivkeys();\n this.gameState.signingAccount = accounts[0];\n this.gameState.pubkey = this.walletManager.bytesToHex(this.gameState.signingAccount.pubkey);\n }\n\n /**\n * @param {string} mnemonic\n * @return {Promise}\n */\n async signup(mnemonic) {\n await this.initWallet(mnemonic);\n\n this.gameState.signupRequest.pubkey = this.gameState.pubkey;\n this.gameState.signupRequest.primary_address = this.gameState.signingAccount.address;\n this.gameState.signupRequest.guild_id = this.gameState.thisGuild.id;\n\n const message = this.guildAPI.buildGuildMembershipJoinProxyMessage(\n this.gameState.signupRequest.guild_id,\n this.gameState.signupRequest.primary_address,\n 0\n );\n\n this.gameState.signupRequest.signature = await this.walletManager.createSignatureForProxyMessage(\n message,\n this.gameState.signingAccount.privkey\n );\n\n const playerCreatedListener = new PlayerCreatedListener();\n playerCreatedListener.guildId = this.gameState.signupRequest.guild_id;\n playerCreatedListener.playerAddress = this.gameState.signupRequest.primary_address;\n playerCreatedListener.authManager = this;\n playerCreatedListener.guildAPI = this.guildAPI;\n playerCreatedListener.gameState = this.gameState;\n playerCreatedListener.grassManager = this.grassManager;\n playerCreatedListener.planetManager = this.planetManager;\n\n const newPlanetListener = new NewPlanetListener(\n this.gameState,\n this.guildAPI,\n this.mapManager,\n this.grassManager,\n this.raidManager\n );\n newPlanetListener.redirectControllerName = 'Auth';\n newPlanetListener.redirectPageName = 'orientation1';\n\n // Needs to be registered first because it listens for planet_id whose creation is trigger by playerCreatedListener.\n this.grassManager.registerListener(newPlanetListener);\n\n this.grassManager.registerListener(playerCreatedListener);\n\n const response = await this.guildAPI.signup(this.gameState.signupRequest);\n\n return response.success;\n }\n\n /**\n * @param {string} playerId\n * @return {Promise}\n */\n async login(playerId) {\n const timestamp = await this.guildAPI.getTimestamp();\n\n const request = new LoginRequestDTO();\n request.address = this.gameState.signingAccount.address;\n request.pubkey = this.gameState.pubkey;\n request.guild_id = this.gameState.thisGuild.id;\n request.unix_timestamp = timestamp;\n\n const message = this.guildAPI.buildLoginMessage(\n request.guild_id,\n request.address,\n timestamp\n );\n\n request.signature = await this.walletManager.createSignatureForProxyMessage(\n message,\n this.gameState.signingAccount.privkey\n );\n\n const response = await this.guildAPI.login(request);\n\n console.log('Login response status:', response);\n\n if (response.success) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setId(playerId); // Must be set before registering many GRASS listeners\n\n this.grassManager.registerListener(new KeyPlayerLastActionListener(this.gameState, PLAYER_TYPES.PLAYER));\n this.grassManager.registerListener(new PlayerAlphaListener(this.gameState));\n this.grassManager.registerListener(new KeyPlayerOreListener(this.gameState, this.guildAPI, PLAYER_TYPES.PLAYER));\n this.grassManager.registerListener(new PlayerLoadListener(this.gameState));\n this.grassManager.registerListener(new PlayerStructsLoadListener(this.gameState));\n this.grassManager.registerListener(new PlayerCapacityListener(this.gameState));\n this.grassManager.registerListener(new ConnectionCapacityListener(this.gameState));\n this.grassManager.registerListener(new PlayerAddressRevokedListener(\n this.gameState,\n this.guildAPI,\n this.gameState.signingAccount.address\n ));\n this.grassManager.registerListener(new AlphaChangeListener(this.gameState, this.guildAPI));\n\n // Task related listeners\n this.grassManager.registerListener(new StructListener(\n this.gameState,\n this.guildAPI,\n this.structManager,\n PLAYER_TYPES.PLAYER\n ));\n this.grassManager.registerListener(new StructMineStatusListener(this.gameState));\n this.grassManager.registerListener(new StructRefineStatusListener(this.gameState));\n\n await this.signingClientManager.initSigningClient(this.gameState.wallet);\n await this.playerAddressManager.addPlayerAddressMeta();\n\n this.destroyedStructManager.init();\n\n const [\n player,\n height,\n structTypes,\n fleet,\n structs\n ] = await Promise.all([\n this.guildAPI.getPlayer(playerId),\n this.guildAPI.getPlayerLastActionBlockHeight(playerId),\n this.guildAPI.getStructTypes(),\n this.guildAPI.getFleetByPlayerId(playerId),\n this.guildAPI.getStructsByPlayerId(playerId)\n ]);\n\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setPlayer(player);\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setLastActionBlockHeight(this.gameState.currentBlockHeight, height);\n this.gameState.setStructTypes(structTypes);\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].fleet = fleet;\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setStructs(structs);\n\n if (this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.planet_id) {\n\n const [\n planet,\n shieldInfo,\n planetPlanetRaidInfo,\n raidPlanetRaidInfo\n ] = await Promise.all([\n this.guildAPI.getPlanet(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.planet_id),\n this.guildAPI.getPlanetaryShieldInfo(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.planet_id),\n this.guildAPI.getActivePlanetRaidByPlanetId(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.planet_id),\n this.guildAPI.getActivePlanetRaidByFleetId(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.fleet_id)\n ]);\n\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setPlanet(planet);\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setPlanetShieldInfo(shieldInfo, this.gameState.currentBlockHeight);\n this.gameState.setPlanetPlanetRaidInfo(planetPlanetRaidInfo);\n this.gameState.setRaidPlanetRaidInfo(raidPlanetRaidInfo);\n\n await Promise.all([\n this.raidManager.initPlanetRaider(),\n this.raidManager.initRaidEnemy(),\n ]);\n\n this.grassManager.registerListener(new PlanetRaidStatusListener(\n this.gameState,\n this.guildAPI,\n this.raidManager,\n this.mapManager\n ));\n\n this.mapManager.configureAlphaBaseMap();\n this.gameState.alphaBaseMap.render();\n\n this.mapManager.configureRaidMap();\n this.gameState.raidMap.render();\n\n this.mapManager.showActiveMap();\n\n // Do this last so block height is available\n await this.taskManager.restoreTasksFromDB();\n }\n }\n\n return response.success;\n }\n\n /**\n * @param {string} mnemonic\n * @return {Promise}\n */\n async loginWithMnemonic(mnemonic) {\n try {\n this.gameState.mnemonic = mnemonic;\n await this.initWallet(mnemonic);\n\n const playerId = await this.guildAPI.getPlayerIdByAddressAndGuild(\n this.gameState.signingAccount.address,\n this.gameState.thisGuild.id\n );\n\n return this.login(playerId);\n } catch (error) {\n console.log(error);\n return false;\n }\n }\n\n /**\n * @param {string|null} addressToRevoke\n */\n async revokeAddress(addressToRevoke) {\n this.grassManager.registerListener(new PlayerAddressRevokedListener(\n this.gameState,\n this.guildAPI,\n addressToRevoke\n ));\n\n await this.signingClientManager.queueMsgAddressRevoke(\n addressToRevoke\n );\n }\n\n logout() {\n this.guildAPI.logout().then(() => {\n localStorage.clear();\n MenuPage.router.goto('Auth', 'index');\n MenuPage.open();\n window.location.reload();\n });\n }\n\n /**\n * @param {ActivationCodeInfoDTO} activationCodeInfo\n * @return {Promise}\n */\n async addNewDevice(activationCodeInfo) {\n this.gameState.mnemonic = this.walletManager.createMnemonic();\n\n await this.initWallet(this.gameState.mnemonic);\n\n const message = this.guildAPI.buildAddressRegisterMessage(\n activationCodeInfo.player_id,\n this.gameState.signingAccount.address\n );\n\n const signature = await this.walletManager.createSignatureForProxyMessage(\n message,\n this.gameState.signingAccount.privkey\n );\n\n const request = new AddPendingAddressRequestDTO();\n request.player_id = activationCodeInfo.player_id;\n request.guild_id = this.gameState.thisGuild.id;\n request.code = activationCodeInfo.code;\n request.address = this.gameState.signingAccount.address;\n request.signature = signature;\n request.pubkey = this.gameState.pubkey;\n request.user_agent = window.navigator.userAgent;\n\n const playerAddressApprovedLoginListener = new PlayerAddressApprovedLoginListener(\n this.gameState,\n activationCodeInfo\n );\n this.grassManager.registerListener(playerAddressApprovedLoginListener);\n\n const response = await this.guildAPI.addPendingAddress(request);\n\n return response.success;\n }\n\n /**\n * @param {CreateActivationCodeRequestDTO} request\n * @return {Promise}\n */\n async createActivationCode(request) {\n const response = await this.guildAPI.createActivationCode(request);\n\n let code = 'ERROR';\n\n if (response.success) {\n code = response.data.code;\n\n this.grassManager.registerListener(new PlayerAddressPendingCreatedListener(\n this.playerAddressPendingFactory,\n code\n ));\n }\n\n return code;\n }\n\n /**\n * @param {PlayerAddressPending} playerAddressPending\n * @return {Promise}\n */\n async activateDevice(playerAddressPending) {\n const setPermissionsRequest = new SetPendingAddressPermissionsRequestDTO();\n setPermissionsRequest.code = playerAddressPending.code;\n setPermissionsRequest.address = playerAddressPending.address;\n setPermissionsRequest.permissions = playerAddressPending.permissions;\n\n const response = await this.guildAPI.setPendingAddressPermissions(setPermissionsRequest);\n\n if (!response.success) {\n return false;\n }\n\n const playerAddressApprovedListener = new PlayerAddressApprovedListener(\n this.gameState,\n this.guildAPI,\n playerAddressPending\n );\n this.grassManager.registerListener(playerAddressApprovedListener);\n\n await this.signingClientManager.queueMsgAddressRegister(\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id,\n playerAddressPending.address,\n playerAddressPending.pubkey,\n playerAddressPending.signature,\n playerAddressPending.permissions\n );\n\n await this.guildAPI.deleteActivationCode(playerAddressPending.code);\n\n return true;\n }\n\n}","import {Struct} from \"../models/Struct\";\nimport {SETTING} from \"../constants/SettingConstants\";\nimport {ClearStructTileEvent} from \"../events/ClearStructTileEvent\";\nimport {EVENTS} from \"../constants/Events\";\n\nexport class DestroyedStructManager {\n\n /**\n * @param {GameState} gameState\n * @param {StructManager} structManager\n */\n constructor(gameState, structManager) {\n this.gameState = gameState;\n this.structManager = structManager;\n this.destroyedStructs = {};\n }\n\n /**\n * @param {string} playerType\n * @param {Struct} struct\n */\n track(playerType, struct) {\n if (struct.isDestroyed()) {\n this.destroyedStructs[struct.id] = {\n playerType: playerType,\n struct: struct\n };\n }\n }\n\n /**\n * @param {string} playerType\n */\n trackAll(playerType) {\n Object.keys(this.gameState.keyPlayers[playerType].structs).forEach((structId) => {\n this.track(playerType, this.gameState.keyPlayers[playerType].structs[structId]);\n });\n }\n\n sweep() {\n const sweepDelay = this.gameState.settings.get(SETTING.STRUCT_SWEEP_DELAY);\n const currentBlock = this.gameState.currentBlockHeight;\n const keys = Object.keys(this.destroyedStructs);\n\n for (let i = 0; i < keys.length; i++) {\n\n const item = this.destroyedStructs[keys[i]];\n\n if (item.struct.destroyed_block + sweepDelay < currentBlock) {\n\n delete(this.destroyedStructs[keys[i]]);\n delete this.gameState.keyPlayers[item.playerType].structs[item.struct.id];\n\n const mapId = this.structManager.getMapIdByPlayerTypeAndStruct(item.struct, item.playerType);\n const tileType = this.structManager.getTileTypeFromStruct(item.struct);\n\n if (mapId && tileType) {\n\n window.dispatchEvent(new ClearStructTileEvent(\n mapId,\n tileType,\n item.struct.operating_ambit.toUpperCase(),\n item.struct.slot,\n item.struct.owner\n ));\n\n }\n\n }\n }\n }\n\n init() {\n window.addEventListener(EVENTS.BLOCK_HEIGHT_CHANGED, () => {\n this.sweep();\n });\n\n window.addEventListener(EVENTS.TRACK_DESTROYED_STRUCTS, (event) => {\n this.trackAll(event.playerType);\n });\n\n window.addEventListener(EVENTS.TRACK_DESTROYED_STRUCT, (event) => {\n const struct = this.structManager.getStructById(event.structId);\n if (struct) {\n this.track(event.playerType, struct);\n }\n });\n }\n\n}","\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class FleetManager {\n\n /**\n * @param gameState\n * @param {SigningClientManager} signingClientManager\n */\n constructor(gameState, signingClientManager) {\n this.gameState = gameState;\n this.signingClientManager = signingClientManager;\n }\n\n /**\n * @param {string} destinationLocationId\n */\n async moveFleet(destinationLocationId) {\n await this.signingClientManager.queueMsgFleetMove(\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.fleet_id,\n destinationLocationId\n );\n }\n}","import {PLAYER_MAP_ROLES} from \"../constants/PlayerMapRoles\";\nimport {MAP_CONTAINER_IDS} from \"../constants/MapConstants\";\nimport {HUD_IDS} from \"../constants/HUDConstants\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class MapManager {\n\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n this.gameState = gameState;\n }\n\n configureAlphaBaseMap() {\n this.gameState.alphaBaseMap.setPlanet(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet);\n this.gameState.alphaBaseMap.setDefender(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player);\n this.gameState.alphaBaseMap.setDefenderFleet(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].fleet);\n this.gameState.alphaBaseMap.setAttacker(this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].player);\n this.gameState.alphaBaseMap.setAttackerFleet(this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].fleet);\n this.gameState.alphaBaseMap.setPlayerMapRole(PLAYER_MAP_ROLES.DEFENDER);\n }\n\n configureRaidMap() {\n this.gameState.raidMap.setPlanet(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planet);\n this.gameState.raidMap.setDefender(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].player);\n this.gameState.raidMap.setDefenderFleet(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].fleet);\n this.gameState.raidMap.setAttacker(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player);\n this.gameState.raidMap.setAttackerFleet(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].fleet);\n this.gameState.raidMap.setPlayerMapRole(PLAYER_MAP_ROLES.ATTACKER);\n }\n\n /**\n * @param {Planet} planet\n * @param {Player} defender\n * @param {Player} attacker\n * @param {Fleet} defenderFleet\n * @param {Fleet} attackerFleet\n */\n configurePreviewMap(planet, defender, attacker, defenderFleet, attackerFleet) {\n this.gameState.previewMap.setPlanet(planet);\n this.gameState.previewMap.setDefender(defender);\n this.gameState.previewMap.setDefenderFleet(defenderFleet);\n this.gameState.previewMap.setAttacker(attacker);\n this.gameState.previewMap.setAttackerFleet(attackerFleet);\n this.gameState.previewMap.setPlayerMapRole(PLAYER_MAP_ROLES.SPECTATOR);\n }\n\n hideHUD() {\n Object.values(HUD_IDS).forEach(id => {\n document.getElementById(id).classList.add('hidden');\n });\n }\n\n showHUDForMap(mapContainerId) {\n this.hideHUD();\n\n if (mapContainerId === MAP_CONTAINER_IDS.RAID) {\n document.getElementById(HUD_IDS.STATUS_BAR_TOP_RIGHT_RAID).classList.remove('hidden');\n document.getElementById(HUD_IDS.ACTION_BAR_RAID_ENEMY).classList.remove('hidden');\n } else if (mapContainerId === MAP_CONTAINER_IDS.ALPHA_BASE) {\n document.getElementById(HUD_IDS.STATUS_BAR_TOP_RIGHT_ALPHA_BASE).classList.remove('hidden');\n if (this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].player) {\n document.getElementById(HUD_IDS.ACTION_BAR_ALPHA_BASE_ENEMY).classList.remove('hidden');\n }\n }\n\n if (\n mapContainerId === MAP_CONTAINER_IDS.ALPHA_BASE\n || mapContainerId === MAP_CONTAINER_IDS.RAID\n ) {\n document.getElementById(HUD_IDS.STATUS_BAR_TOP_LEFT).classList.remove('hidden');\n document.getElementById(HUD_IDS.ACTION_BAR_PLAYER).classList.remove('hidden');\n }\n }\n\n /**\n * @param {string} mapContainerId\n */\n showMap(mapContainerId) {\n this.showHUDForMap(mapContainerId);\n\n document.querySelectorAll('.map-container').forEach(mapContainer => {\n mapContainer.classList.add('hidden');\n });\n document.getElementById(mapContainerId).classList.remove('hidden');\n }\n\n showActiveMap() {\n this.showMap(this.gameState.activeMapContainerId);\n }\n}","import {PERMISSIONS} from \"../constants/Permissions\";\n\nexport class PermissionManager {\n\n /**\n * @return {number}\n */\n getDefaultPlayerPermissions() {\n return PERMISSIONS.PLAY\n | PERMISSIONS.SOURCE_ALLOCATION\n | PERMISSIONS.GUILD_MEMBERSHIP\n | PERMISSIONS.SUBSTATION_CONNECTION\n | PERMISSIONS.ALLOCATION_CONNECTION\n | PERMISSIONS.HASH_ALL\n | PERMISSIONS.GUILD_UGC_UPDATE;\n }\n\n /**\n * @return {number}\n */\n getManageDevicesPermissions() {\n return PERMISSIONS.ADMIN\n | PERMISSIONS.UPDATE\n | PERMISSIONS.DELETE;\n }\n\n /**\n * @param {number} initialPermissions\n * @param {array} permissionsToAdd\n * @return {number}\n */\n addPermissions(initialPermissions, permissionsToAdd) {\n return permissionsToAdd.reduce((permissions, permissionToAdd) =>\n permissions | permissionToAdd\n , initialPermissions);\n }\n\n /**\n * @param initialPermissions\n * @param permissionsToRemove\n * @return {*}\n */\n removePermissions(initialPermissions, permissionsToRemove) {\n return permissionsToRemove.reduce((permissions, permissionToRemove) =>\n permissions & ~permissionToRemove\n , initialPermissions);\n }\n}","import {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class PlanetManager {\n\n /**\n * @param {GameState} gameState\n * @param {SigningClientManager} signingClientManager\n */\n constructor(gameState, signingClientManager) {\n this.gameState = gameState;\n this.signingClientManager = signingClientManager;\n }\n\n async findNewPlanet() {\n await this.signingClientManager.queueMsgPlanetExplore(\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id\n );\n }\n}","import {AddPlayerAddressMetaRequestDTO} from \"../dtos/AddPlayerAddressMetaRequestDTO\";\n\nexport class PlayerAddressManager {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n */\n constructor(gameState, guildAPI) {\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n }\n\n async addPlayerAddressMeta() {\n const request = new AddPlayerAddressMetaRequestDTO();\n request.address = this.gameState.signingAccount.address;\n request.guild_id = this.gameState.thisGuild.id;\n request.user_agent = window.navigator.userAgent;\n\n const response = await this.guildAPI.addPlayerAddressMeta(request);\n\n if (!response.success) {\n console.log(response);\n }\n }\n}","import {KeyPlayerOreListener} from \"../grass_listeners/KeyPlayerOreListener\";\nimport {RaidStatusListener} from \"../grass_listeners/RaidStatusListener\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\nimport {KeyPlayerLastActionListener} from \"../grass_listeners/KeyPlayerLastActionListener\";\nimport {StructListener} from \"../grass_listeners/StructListener\";\n\nexport class RaidManager {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {GrassManager} grassManager\n * @param {MapManager} mapManager\n * @param {StructManager} structManager\n */\n constructor(\n gameState,\n guildAPI,\n grassManager,\n mapManager,\n structManager\n ) {\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.grassManager = grassManager;\n this.mapManager = mapManager;\n this.structManager = structManager;\n }\n\n /**\n * @return {Promise}\n */\n async initRaidEnemy() {\n if (!this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo.isRaidActive()) {\n return;\n }\n\n this.grassManager.registerListener(new RaidStatusListener(this.gameState, this, this.mapManager));\n this.grassManager.registerListener(new KeyPlayerLastActionListener(this.gameState, PLAYER_TYPES.RAID_ENEMY));\n this.grassManager.registerListener(new KeyPlayerOreListener(this.gameState, this.guildAPI, PLAYER_TYPES.RAID_ENEMY));\n\n // Register struct status listener for RAID_ENEMY's planet\n this.grassManager.registerListener(new StructListener(\n this.gameState,\n this.guildAPI,\n this.structManager,\n PLAYER_TYPES.RAID_ENEMY\n ));\n\n const [\n player,\n height,\n planet,\n shieldInfo,\n raidEnemyFleet,\n playerFleet, // Needs updating as fleet would be away now\n structs,\n ] = await Promise.all([\n this.guildAPI.getPlayer(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].id),\n this.guildAPI.getPlayerLastActionBlockHeight(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].id),\n this.guildAPI.getPlanet(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo.planet_id),\n this.guildAPI.getPlanetaryShieldInfo(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo.planet_id),\n this.guildAPI.getFleetByPlayerId(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].id),\n this.guildAPI.getFleetByPlayerId(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id),\n this.guildAPI.getStructsByPlayerId(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].id)\n ]);\n\n this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].setPlayer(player);\n this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].setLastActionBlockHeight(this.gameState.currentBlockHeight, height);\n this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].setPlanet(planet);\n this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].setPlanetShieldInfo(shieldInfo, this.gameState.currentBlockHeight);\n this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].fleet = raidEnemyFleet;\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].fleet = playerFleet;\n this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].setStructs(structs);\n }\n\n /**\n * @return {Promise}\n */\n async initPlanetRaider() {\n if (!this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planetRaidInfo.isRaidActive()) {\n return;\n }\n\n this.grassManager.registerListener(new KeyPlayerLastActionListener(this.gameState, PLAYER_TYPES.PLANET_RAIDER));\n\n const [\n player,\n height,\n fleet,\n structs,\n shieldInfo\n ] = await Promise.all([\n this.guildAPI.getPlayer(this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].id),\n this.guildAPI.getPlayerLastActionBlockHeight(this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].id),\n this.guildAPI.getFleetByPlayerId(this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].id),\n this.guildAPI.getStructsByPlayerId(this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].id),\n this.guildAPI.getPlanetaryShieldInfo(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planetRaidInfo.planet_id),\n ]);\n\n this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].setPlayer(player);\n this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].setLastActionBlockHeight(this.gameState.currentBlockHeight, height);\n this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].fleet = fleet;\n this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].setStructs(structs);\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setPlanetShieldInfo(shieldInfo, this.gameState.currentBlockHeight);\n }\n\n async refreshRaidFleet() {\n this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].fleet = await this.guildAPI.getFleetByPlayerId(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].id);\n this.gameState.raidMap.setDefenderFleet(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].fleet);\n }\n}","import {Registry} from \"@cosmjs/proto-signing\";\nimport {defaultRegistryTypes, SigningStargateClient} from \"@cosmjs/stargate\";\n// noinspection ES6PreferShortImport\nimport {msgTypes} from \"../ts/structs.structs/registry\";\nimport {\n MsgAddressRegister,\n MsgPlanetExplore,\n MsgPlanetRaidComplete,\n MsgPlanetUpdateName,\n MsgAddressRevoke,\n MsgFleetMove,\n MsgAllocationCreate,\n MsgAllocationDelete,\n MsgAllocationUpdate,\n MsgAllocationTransfer,\n MsgGuildCreate,\n MsgGuildBankMint,\n MsgGuildBankRedeem,\n MsgGuildBankConfiscateAndBurn,\n MsgGuildUpdateOwnerId,\n MsgGuildUpdateEntrySubstationId,\n MsgGuildUpdateEndpoint,\n MsgGuildUpdateJoinInfusionMinimum,\n MsgGuildUpdateJoinInfusionMinimumBypassByInvite,\n MsgGuildUpdateJoinInfusionMinimumBypassByRequest,\n MsgGuildUpdateEntryRank,\n MsgGuildUpdateName,\n MsgGuildUpdatePfp,\n MsgGuildMembershipInvite,\n MsgGuildMembershipInviteApprove,\n MsgGuildMembershipInviteDeny,\n MsgGuildMembershipInviteRevoke,\n MsgGuildMembershipJoin,\n MsgGuildMembershipJoinProxy,\n MsgGuildMembershipKick,\n MsgGuildMembershipRequest,\n MsgGuildMembershipRequestApprove,\n MsgGuildMembershipRequestDeny,\n MsgGuildMembershipRequestRevoke,\n MsgPermissionGrantOnObject,\n MsgPermissionGrantOnAddress,\n MsgPermissionRevokeOnObject,\n MsgPermissionRevokeOnAddress,\n MsgPermissionSetOnObject,\n MsgPermissionSetOnAddress,\n MsgPermissionGuildRankSet,\n MsgPermissionGuildRankRevoke,\n MsgPlayerUpdatePrimaryAddress,\n MsgPlayerUpdateGuildRank,\n MsgPlayerUpdateName,\n MsgPlayerUpdatePfp,\n MsgPlayerSend,\n MsgStructActivate,\n MsgStructDeactivate,\n MsgStructBuildInitiate,\n MsgStructBuildCancel,\n MsgStructBuildComplete,\n MsgStructDefenseSet,\n MsgStructDefenseClear,\n MsgStructMove,\n MsgStructOreMinerComplete,\n MsgStructOreRefineryComplete,\n MsgStructAttack,\n MsgStructStealthActivate,\n MsgStructStealthDeactivate,\n MsgStructGeneratorInfuse,\n MsgSubstationCreate,\n MsgSubstationDelete,\n MsgSubstationAllocationConnect,\n MsgSubstationAllocationDisconnect,\n MsgSubstationPlayerConnect,\n MsgSubstationPlayerDisconnect,\n MsgSubstationPlayerMigrate,\n MsgSubstationUpdateName,\n MsgSubstationUpdatePfp,\n MsgAgreementOpen,\n MsgAgreementClose,\n MsgAgreementCapacityIncrease,\n MsgAgreementCapacityDecrease,\n MsgAgreementDurationIncrease,\n MsgProviderCreate,\n MsgProviderWithdrawBalance,\n MsgProviderUpdateCapacityMinimum,\n MsgProviderUpdateCapacityMaximum,\n MsgProviderUpdateDurationMinimum,\n MsgProviderUpdateDurationMaximum,\n MsgProviderUpdateAccessPolicy,\n MsgProviderDelete,\n MsgReactorInfuse,\n MsgReactorBeginMigration,\n MsgReactorDefuse,\n MsgReactorCancelDefusion\n} from \"../ts/structs.structs/types/structs/structs/tx\";\nimport {EVENTS} from \"../constants/Events\";\nimport {FEE} from \"../constants/Fee\";\nimport {AMBIT_ENUM} from \"../constants/Ambits\";\nimport {TASK} from \"../constants/TaskConstants\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\nimport {LOCATION_TYPE_INDEX} from \"../constants/LocationTypes\";\n\nexport class SigningClientManager {\n\n /**\n * @param {GameState} gameState\n */\n constructor(gameState, debug = false) {\n console.info('Initiating Signing Client Manager');\n this.gameState = gameState;\n\n // TODO Make this value more dynamic\n // Possibly a database setting or env, provided via server\n //this.wsUrl = `ws://${window.location.hostname}:26657`;\n this.debug = debug;\n this.wsUrl = debug\n ? `ws://reactor.oh.energy:26657`\n : `ws://${window.location.hostname}:26657`;\n\n this.registry = new Registry([...defaultRegistryTypes, ...msgTypes]);\n\n this.messageQueue = [];\n this.lastBroadcastHeight = 0;\n\n window.addEventListener(EVENTS.BLOCK_HEIGHT_CHANGED, async function (event) {\n await this.transactQueue();\n }.bind(this));\n\n }\n\n /**\n * @param {DirectSecp256k1HdWallet} wallet\n * @return {Promise}\n */\n async initSigningClient(wallet) {\n console.debug(\"Initializing signing client...\");\n this.gameState.signingClient = await SigningStargateClient.connectWithSigner(\n this.wsUrl,\n wallet,\n {\n registry: this.registry,\n },\n );\n console.info(\"Signing client initialized.\");\n }\n\n async transactQueue() {\n if (this.lastBroadcastHeight < this.gameState.currentBlockHeight) {\n this.lastBroadcastHeight = this.gameState.currentBlockHeight\n if (this.messageQueue.length > 0) {\n\n /* Temporary Fix to prevent batching\n let processMessageQueue = [...this.messageQueue];\n this.messageQueue.splice(0,processMessageQueue.length);\n */\n let processMessageQueue = [this.messageQueue[0]];\n this.messageQueue.splice(0,processMessageQueue.length);\n\n\n console.debug('Running TransactQueue');\n console.info(processMessageQueue);\n // TODO establish a maximum of messages to include in a single transaction\n try {\n const response = await this.gameState.signingClient.signAndBroadcast(\n this.gameState.signingAccount.address,\n processMessageQueue,\n FEE\n );\n\n if (this.debug) {\n if (response.code === 0 ) {\n console.debug('Transaction Successful: Code 0');\n } else {\n console.warn('Transaction Failed: Code ', response.code);\n }\n\n console.debug('Transaction Hash:', response.transactionHash);\n console.debug('Height:', response.height);\n console.debug('Msg Responses:', response.msgResponses.map(msg => ({\n typeUrl: msg.typeUrl,\n value: this.registry.decode(msg)\n })));\n console.debug('Events:', response.events);\n\n }\n } catch (error) {\n console.warn('Sign and Broadcast Error:', error);\n }\n }\n }\n }\n\n /**\n * @param {object} msg\n * @return {string}\n */\n async queue(msg) {\n this.messageQueue.push(msg);\n await this.transactQueue();\n }\n\n /**\n * @param {string} fromAddress\n * @param {string} toAddress\n * @param {Array<{denom: string, amount: string}>} amount\n */\n async queueMsgPlayerSend(fromAddress, toAddress, amount) {\n this.queue({\n typeUrl: '/structs.structs.MsgPlayerSend',\n value: MsgPlayerSend.fromPartial({\n creator: this.gameState.signingAccount.address,\n fromAddress: fromAddress,\n toAddress: toAddress,\n amount: amount\n }),\n });\n }\n\n /**\n * @param {string} playerId\n */\n async queueMsgPlanetExplore(playerId) {\n this.queue({\n typeUrl: '/structs.structs.MsgPlanetExplore',\n value: MsgPlanetExplore.fromPartial({\n creator: this.gameState.signingAccount.address,\n playerId: playerId\n }),\n });\n }\n\n /**\n * @param {string} playerId\n * @param {string} addressToRegister\n * @param {string} proofPubKey\n * @param {string} proofSignature\n * @param {number} permissions\n */\n async queueMsgAddressRegister(playerId, addressToRegister, proofPubKey, proofSignature, permissions) {\n this.queue({\n typeUrl: '/structs.structs.MsgAddressRegister',\n value: MsgAddressRegister.fromPartial({\n creator: this.gameState.signingAccount.address,\n playerId: playerId,\n address: addressToRegister,\n proofPubKey: proofPubKey,\n proofSignature: proofSignature,\n permissions: permissions\n }),\n });\n }\n\n /**\n * @param {string} addressToRevoke\n */\n async queueMsgAddressRevoke(addressToRevoke) {\n this.queue({\n typeUrl: '/structs.structs.MsgAddressRevoke',\n value: MsgAddressRevoke.fromPartial({\n creator: this.gameState.signingAccount.address,\n address: addressToRevoke\n }),\n });\n }\n\n /**\n * @param {string} fleetId\n * @param {string} destinationLocationId\n */\n async queueMsgFleetMove(fleetId, destinationLocationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgFleetMove',\n value: MsgFleetMove.fromPartial({\n creator: this.gameState.signingAccount.address,\n fleetId: fleetId,\n destinationLocationId: destinationLocationId\n }),\n });\n }\n\n /**\n * @param {string} fleetId\n * @param {string} proof\n * @param {string} nonce\n */\n async queueMsgPlanetRaidComplete(fleetId, proof, nonce) {\n this.queue({\n typeUrl: '/structs.structs.MsgPlanetRaidComplete',\n value: MsgPlanetRaidComplete.fromPartial({\n creator: this.gameState.signingAccount.address,\n fleetId: fleetId,\n proof: proof,\n nonce: nonce\n }),\n });\n }\n\n /**\n * @param {string} planetId\n * @param {string} name\n */\n async queueMsgPlanetUpdateName(planetId, name) {\n this.queue({\n typeUrl: '/structs.structs.MsgPlanetUpdateName',\n value: MsgPlanetUpdateName.fromPartial({\n creator: this.gameState.signingAccount.address,\n planetId: planetId,\n name: name\n }),\n });\n }\n\n /**\n * @param {string} structId\n * @param {string} proof\n * @param {string} nonce\n */\n async queueMsgStructBuildComplete(structId, proof, nonce) {\n this.queue({\n typeUrl: '/structs.structs.MsgStructBuildComplete',\n value: MsgStructBuildComplete.fromPartial({\n creator: this.gameState.signingAccount.address,\n structId: structId,\n proof: proof,\n nonce: nonce\n }),\n });\n }\n\n /**\n * @param {string} structId\n * @param {string} proof\n * @param {string} nonce\n */\n async queueMsgStructOreMinerComplete(structId, proof, nonce) {\n this.queue({\n typeUrl: '/structs.structs.MsgStructOreMinerComplete',\n value: MsgStructOreMinerComplete.fromPartial({\n creator: this.gameState.signingAccount.address,\n structId: structId,\n proof: proof,\n nonce: nonce\n }),\n });\n }\n\n /**\n * @param {string} structId\n * @param {string} proof\n * @param {string} nonce\n */\n async queueMsgStructOreRefineryComplete(structId, proof, nonce) {\n this.queue({\n typeUrl: '/structs.structs.MsgStructOreRefineryComplete',\n value: MsgStructOreRefineryComplete.fromPartial({\n creator: this.gameState.signingAccount.address,\n structId: structId,\n proof: proof,\n nonce: nonce\n }),\n });\n }\n\n /**\n * @param {string} controller\n * @param {string} sourceObjectId\n * @param {string} allocationType\n * @param {number} power\n */\n async queueMsgAllocationCreate(controller, sourceObjectId, allocationType, power) {\n this.queue({\n typeUrl: '/structs.structs.MsgAllocationCreate',\n value: MsgAllocationCreate.fromPartial({\n creator: this.gameState.signingAccount.address,\n controller: controller,\n sourceObjectId: sourceObjectId,\n allocationType: allocationType,\n power: power\n }),\n });\n }\n\n /**\n * @param {string} allocationId\n */\n async queueMsgAllocationDelete(allocationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgAllocationDelete',\n value: MsgAllocationDelete.fromPartial({\n creator: this.gameState.signingAccount.address,\n allocationId: allocationId\n }),\n });\n }\n\n /**\n * @param {string} allocationId\n * @param {number} power\n */\n async queueMsgAllocationUpdate(allocationId, power) {\n this.queue({\n typeUrl: '/structs.structs.MsgAllocationUpdate',\n value: MsgAllocationUpdate.fromPartial({\n creator: this.gameState.signingAccount.address,\n allocationId: allocationId,\n power: power\n }),\n });\n }\n\n /**\n * @param {string} allocationId\n * @param {string} controller\n */\n async queueMsgAllocationTransfer(allocationId, controller) {\n this.queue({\n typeUrl: '/structs.structs.MsgAllocationTransfer',\n value: MsgAllocationTransfer.fromPartial({\n creator: this.gameState.signingAccount.address,\n allocationId: allocationId,\n controller: controller\n }),\n });\n }\n\n /**\n * @param {number} amountAlpha\n * @param {number} amountToken\n */\n async queueMsgGuildBankMint(amountAlpha, amountToken) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildBankMint',\n value: MsgGuildBankMint.fromPartial({\n creator: this.gameState.signingAccount.address,\n amountAlpha: amountAlpha,\n amountToken: amountToken\n }),\n });\n }\n\n /**\n * @param {{denom: string, amount: string}} amountToken\n */\n async queueMsgGuildBankRedeem(amountToken) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildBankRedeem',\n value: MsgGuildBankRedeem.fromPartial({\n creator: this.gameState.signingAccount.address,\n amountToken: amountToken\n }),\n });\n }\n\n /**\n * @param {string} address\n * @param {number} amountToken\n */\n async queueMsgGuildBankConfiscateAndBurn(address, amountToken) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildBankConfiscateAndBurn',\n value: MsgGuildBankConfiscateAndBurn.fromPartial({\n creator: this.gameState.signingAccount.address,\n address: address,\n amountToken: amountToken\n }),\n });\n }\n\n /**\n * @param {string} reactorId\n * @param {string} endpoint\n * @param {string} entrySubstationId\n */\n async queueMsgGuildCreate(reactorId, endpoint, entrySubstationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildCreate',\n value: MsgGuildCreate.fromPartial({\n creator: this.gameState.signingAccount.address,\n reactorId: reactorId,\n endpoint: endpoint,\n entrySubstationId: entrySubstationId\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} entrySubstationId\n */\n async queueMsgGuildUpdateEntrySubstationId(guildId, entrySubstationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildUpdateEntrySubstationId',\n value: MsgGuildUpdateEntrySubstationId.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n entrySubstationId: entrySubstationId\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} owner\n */\n async queueMsgGuildUpdateOwnerId(guildId, owner) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildUpdateOwnerId',\n value: MsgGuildUpdateOwnerId.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n owner: owner\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} endpoint\n */\n async queueMsgGuildUpdateEndpoint(guildId, endpoint) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildUpdateEndpoint',\n value: MsgGuildUpdateEndpoint.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n endpoint: endpoint\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} name\n */\n async queueMsgGuildUpdateName(guildId, name) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildUpdateName',\n value: MsgGuildUpdateName.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n name: name\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} pfp\n */\n async queueMsgGuildUpdatePfp(guildId, pfp) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildUpdatePfp',\n value: MsgGuildUpdatePfp.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n pfp: pfp\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {number} joinInfusionMinimum\n */\n async queueMsgGuildUpdateJoinInfusionMinimum(guildId, joinInfusionMinimum) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildUpdateJoinInfusionMinimum',\n value: MsgGuildUpdateJoinInfusionMinimum.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n joinInfusionMinimum: joinInfusionMinimum\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {number} guildJoinBypassLevel\n */\n async queueMsgGuildUpdateJoinInfusionMinimumBypassByInvite(guildId, guildJoinBypassLevel) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildUpdateJoinInfusionMinimumBypassByInvite',\n value: MsgGuildUpdateJoinInfusionMinimumBypassByInvite.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n guildJoinBypassLevel: guildJoinBypassLevel\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {number} guildJoinBypassLevel\n */\n async queueMsgGuildUpdateJoinInfusionMinimumBypassByRequest(guildId, guildJoinBypassLevel) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildUpdateJoinInfusionMinimumBypassByRequest',\n value: MsgGuildUpdateJoinInfusionMinimumBypassByRequest.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n guildJoinBypassLevel: guildJoinBypassLevel\n }),\n });\n }\n\n /**\n * @param {number} newEntryRank\n */\n async queueMsgGuildUpdateEntryRank(newEntryRank) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildUpdateEntryRank',\n value: MsgGuildUpdateEntryRank.fromPartial({\n creator: this.gameState.signingAccount.address,\n newEntryRank: newEntryRank\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} playerId\n * @param {string} substationId\n */\n async queueMsgGuildMembershipInvite(guildId, playerId, substationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildMembershipInvite',\n value: MsgGuildMembershipInvite.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n playerId: playerId,\n substationId: substationId\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} playerId\n * @param {string} substationId\n */\n async queueMsgGuildMembershipInviteApprove(guildId, playerId, substationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildMembershipInviteApprove',\n value: MsgGuildMembershipInviteApprove.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n playerId: playerId,\n substationId: substationId\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} playerId\n */\n async queueMsgGuildMembershipInviteDeny(guildId, playerId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildMembershipInviteDeny',\n value: MsgGuildMembershipInviteDeny.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n playerId: playerId\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} playerId\n */\n async queueMsgGuildMembershipInviteRevoke(guildId, playerId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildMembershipInviteRevoke',\n value: MsgGuildMembershipInviteRevoke.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n playerId: playerId\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} playerId\n * @param {string} substationId\n * @param {string[]} infusionId\n */\n async queueMsgGuildMembershipJoin(guildId, playerId, substationId, infusionId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildMembershipJoin',\n value: MsgGuildMembershipJoin.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n playerId: playerId,\n substationId: substationId,\n infusionId: infusionId\n }),\n });\n }\n\n /**\n * @param {string} address\n * @param {string} substationId\n * @param {string} proofPubKey\n * @param {string} proofSignature\n * @param {string} playerName\n * @param {string} playerPfp\n */\n async queueMsgGuildMembershipJoinProxy(address, substationId, proofPubKey, proofSignature, playerName, playerPfp) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildMembershipJoinProxy',\n value: MsgGuildMembershipJoinProxy.fromPartial({\n creator: this.gameState.signingAccount.address,\n address: address,\n substationId: substationId,\n proofPubKey: proofPubKey,\n proofSignature: proofSignature,\n playerName: playerName,\n playerPfp: playerPfp\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} playerId\n */\n async queueMsgGuildMembershipKick(guildId, playerId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildMembershipKick',\n value: MsgGuildMembershipKick.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n playerId: playerId\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} playerId\n * @param {string} substationId\n */\n async queueMsgGuildMembershipRequest(guildId, playerId, substationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildMembershipRequest',\n value: MsgGuildMembershipRequest.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n playerId: playerId,\n substationId: substationId\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} playerId\n * @param {string} substationId\n */\n async queueMsgGuildMembershipRequestApprove(guildId, playerId, substationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildMembershipRequestApprove',\n value: MsgGuildMembershipRequestApprove.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n playerId: playerId,\n substationId: substationId\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} playerId\n */\n async queueMsgGuildMembershipRequestDeny(guildId, playerId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildMembershipRequestDeny',\n value: MsgGuildMembershipRequestDeny.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n playerId: playerId\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} playerId\n */\n async queueMsgGuildMembershipRequestRevoke(guildId, playerId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildMembershipRequestRevoke',\n value: MsgGuildMembershipRequestRevoke.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n playerId: playerId\n }),\n });\n }\n\n /**\n * @param {string} objectId\n * @param {string} playerId\n * @param {number} permissions\n */\n async queueMsgPermissionGrantOnObject(objectId, playerId, permissions) {\n this.queue({\n typeUrl: '/structs.structs.MsgPermissionGrantOnObject',\n value: MsgPermissionGrantOnObject.fromPartial({\n creator: this.gameState.signingAccount.address,\n objectId: objectId,\n playerId: playerId,\n permissions: permissions\n }),\n });\n }\n\n /**\n * @param {string} address\n * @param {number} permissions\n */\n async queueMsgPermissionGrantOnAddress(address, permissions) {\n this.queue({\n typeUrl: '/structs.structs.MsgPermissionGrantOnAddress',\n value: MsgPermissionGrantOnAddress.fromPartial({\n creator: this.gameState.signingAccount.address,\n address: address,\n permissions: permissions\n }),\n });\n }\n\n /**\n * @param {string} objectId\n * @param {string} playerId\n * @param {number} permissions\n */\n async queueMsgPermissionRevokeOnObject(objectId, playerId, permissions) {\n this.queue({\n typeUrl: '/structs.structs.MsgPermissionRevokeOnObject',\n value: MsgPermissionRevokeOnObject.fromPartial({\n creator: this.gameState.signingAccount.address,\n objectId: objectId,\n playerId: playerId,\n permissions: permissions\n }),\n });\n }\n\n /**\n * @param {string} address\n * @param {number} permissions\n */\n async queueMsgPermissionRevokeOnAddress(address, permissions) {\n this.queue({\n typeUrl: '/structs.structs.MsgPermissionRevokeOnAddress',\n value: MsgPermissionRevokeOnAddress.fromPartial({\n creator: this.gameState.signingAccount.address,\n address: address,\n permissions: permissions\n }),\n });\n }\n\n /**\n * @param {string} objectId\n * @param {string} playerId\n * @param {number} permissions\n */\n async queueMsgPermissionSetOnObject(objectId, playerId, permissions) {\n this.queue({\n typeUrl: '/structs.structs.MsgPermissionSetOnObject',\n value: MsgPermissionSetOnObject.fromPartial({\n creator: this.gameState.signingAccount.address,\n objectId: objectId,\n playerId: playerId,\n permissions: permissions\n }),\n });\n }\n\n /**\n * @param {string} address\n * @param {number} permissions\n */\n async queueMsgPermissionSetOnAddress(address, permissions) {\n this.queue({\n typeUrl: '/structs.structs.MsgPermissionSetOnAddress',\n value: MsgPermissionSetOnAddress.fromPartial({\n creator: this.gameState.signingAccount.address,\n address: address,\n permissions: permissions\n }),\n });\n }\n\n /**\n * @param {string} objectId\n * @param {string} guildId\n * @param {number} permission\n * @param {number} rank\n */\n async queueMsgPermissionGuildRankSet(objectId, guildId, permission, rank) {\n this.queue({\n typeUrl: '/structs.structs.MsgPermissionGuildRankSet',\n value: MsgPermissionGuildRankSet.fromPartial({\n creator: this.gameState.signingAccount.address,\n objectId: objectId,\n guildId: guildId,\n permission: permission,\n rank: rank\n }),\n });\n }\n\n /**\n * @param {string} objectId\n * @param {string} guildId\n * @param {number} permission\n */\n async queueMsgPermissionGuildRankRevoke(objectId, guildId, permission) {\n this.queue({\n typeUrl: '/structs.structs.MsgPermissionGuildRankRevoke',\n value: MsgPermissionGuildRankRevoke.fromPartial({\n creator: this.gameState.signingAccount.address,\n objectId: objectId,\n guildId: guildId,\n permission: permission\n }),\n });\n }\n\n /**\n * @param {string} primaryAddress\n */\n async queueMsgPlayerUpdatePrimaryAddress(primaryAddress) {\n this.queue({\n typeUrl: '/structs.structs.MsgPlayerUpdatePrimaryAddress',\n value: MsgPlayerUpdatePrimaryAddress.fromPartial({\n creator: this.gameState.signingAccount.address,\n primaryAddress: primaryAddress\n }),\n });\n }\n\n /**\n * @param {string} playerId\n * @param {number} guildRank\n */\n async queueMsgPlayerUpdateGuildRank(playerId, guildRank) {\n this.queue({\n typeUrl: '/structs.structs.MsgPlayerUpdateGuildRank',\n value: MsgPlayerUpdateGuildRank.fromPartial({\n creator: this.gameState.signingAccount.address,\n playerId: playerId,\n guildRank: guildRank\n }),\n });\n }\n\n /**\n * @param {string} playerId\n * @param {string} name\n */\n async queueMsgPlayerUpdateName(playerId, name) {\n this.queue({\n typeUrl: '/structs.structs.MsgPlayerUpdateName',\n value: MsgPlayerUpdateName.fromPartial({\n creator: this.gameState.signingAccount.address,\n playerId: playerId,\n name: name\n }),\n });\n }\n\n /**\n * @param {string} playerId\n * @param {string} pfp\n */\n async queueMsgPlayerUpdatePfp(playerId, pfp) {\n this.queue({\n typeUrl: '/structs.structs.MsgPlayerUpdatePfp',\n value: MsgPlayerUpdatePfp.fromPartial({\n creator: this.gameState.signingAccount.address,\n playerId: playerId,\n pfp: pfp\n }),\n });\n }\n\n /**\n * @param {string} structId\n */\n async queueMsgStructActivate(structId) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setLastActionBlockHeight(this.gameState.currentBlockHeight, this.gameState.currentBlockHeight + 1);\n this.queue({\n typeUrl: '/structs.structs.MsgStructActivate',\n value: MsgStructActivate.fromPartial({\n creator: this.gameState.signingAccount.address,\n structId: structId\n }),\n });\n }\n\n /**\n * @param {string} structId\n */\n async queueMsgStructDeactivate(structId) {\n this.queue({\n typeUrl: '/structs.structs.MsgStructDeactivate',\n value: MsgStructDeactivate.fromPartial({\n creator: this.gameState.signingAccount.address,\n structId: structId\n }),\n });\n }\n\n /**\n * @param {string} playerId\n * @param {number} structTypeId\n * @param {string} operatingAmbit\n * @param {number} slot\n */\n async queueMsgStructBuildInitiate(playerId, structTypeId, operatingAmbit, slot) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setLastActionBlockHeight(this.gameState.currentBlockHeight, this.gameState.currentBlockHeight + 1);\n const ambitNumber = AMBIT_ENUM[operatingAmbit.toUpperCase()];\n this.queue({\n typeUrl: '/structs.structs.MsgStructBuildInitiate',\n value: MsgStructBuildInitiate.fromPartial({\n creator: this.gameState.signingAccount.address,\n playerId: playerId,\n structTypeId: structTypeId,\n operatingAmbit: ambitNumber,\n slot: slot\n }),\n });\n }\n\n /**\n * @param {string} structId\n */\n async queueMsgStructBuildCancel(structId) {\n this.queue({\n typeUrl: '/structs.structs.MsgStructBuildCancel',\n value: MsgStructBuildCancel.fromPartial({\n creator: this.gameState.signingAccount.address,\n structId: structId\n }),\n });\n }\n\n /**\n * @param {string} defenderStructId\n * @param {string} protectedStructId\n */\n async queueMsgStructDefenseSet(defenderStructId, protectedStructId) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setLastActionBlockHeight(this.gameState.currentBlockHeight, this.gameState.currentBlockHeight + 1);\n this.queue({\n typeUrl: '/structs.structs.MsgStructDefenseSet',\n value: MsgStructDefenseSet.fromPartial({\n creator: this.gameState.signingAccount.address,\n defenderStructId: defenderStructId,\n protectedStructId: protectedStructId\n }),\n });\n }\n\n /**\n * @param {string} defenderStructId\n */\n async queueMsgStructDefenseClear(defenderStructId) {\n this.queue({\n typeUrl: '/structs.structs.MsgStructDefenseClear',\n value: MsgStructDefenseClear.fromPartial({\n creator: this.gameState.signingAccount.address,\n defenderStructId: defenderStructId\n }),\n });\n }\n\n /**\n * @param {string} structId\n * @param {string} locationType\n * @param {string} ambit\n * @param {number} slot\n */\n async queueMsgStructMove(structId, locationType, ambit, slot) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setLastActionBlockHeight(this.gameState.currentBlockHeight, this.gameState.currentBlockHeight + 1);\n const locationTypeIndex = LOCATION_TYPE_INDEX[locationType.toLowerCase()];\n const ambitNumber = AMBIT_ENUM[ambit.toUpperCase()];\n this.queue({\n typeUrl: '/structs.structs.MsgStructMove',\n value: MsgStructMove.fromPartial({\n creator: this.gameState.signingAccount.address,\n structId: structId,\n locationType: locationTypeIndex,\n ambit: ambitNumber,\n slot: slot\n }),\n });\n }\n\n /**\n * @param {string} operatingStructId\n * @param {string[]} targetStructId\n * @param {string} weaponSystem\n */\n async queueMsgStructAttack(operatingStructId, targetStructId, weaponSystem) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setLastActionBlockHeight(this.gameState.currentBlockHeight, this.gameState.currentBlockHeight + 1);\n this.queue({\n typeUrl: '/structs.structs.MsgStructAttack',\n value: MsgStructAttack.fromPartial({\n creator: this.gameState.signingAccount.address,\n operatingStructId: operatingStructId,\n targetStructId: targetStructId,\n weaponSystem: weaponSystem\n }),\n });\n }\n\n /**\n * @param {string} structId\n */\n async queueMsgStructStealthActivate(structId) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setLastActionBlockHeight(this.gameState.currentBlockHeight, this.gameState.currentBlockHeight + 1);\n this.queue({\n typeUrl: '/structs.structs.MsgStructStealthActivate',\n value: MsgStructStealthActivate.fromPartial({\n creator: this.gameState.signingAccount.address,\n structId: structId\n }),\n });\n }\n\n /**\n * @param {string} structId\n */\n async queueMsgStructStealthDeactivate(structId) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setLastActionBlockHeight(this.gameState.currentBlockHeight, this.gameState.currentBlockHeight + 1);\n this.queue({\n typeUrl: '/structs.structs.MsgStructStealthDeactivate',\n value: MsgStructStealthDeactivate.fromPartial({\n creator: this.gameState.signingAccount.address,\n structId: structId\n }),\n });\n }\n\n /**\n * @param {string} structId\n * @param {string} infuseAmount\n */\n async queueMsgStructGeneratorInfuse(structId, infuseAmount) {\n this.queue({\n typeUrl: '/structs.structs.MsgStructGeneratorInfuse',\n value: MsgStructGeneratorInfuse.fromPartial({\n creator: this.gameState.signingAccount.address,\n structId: structId,\n infuseAmount: infuseAmount\n }),\n });\n }\n\n /**\n * @param {string} owner\n * @param {string} allocationId\n */\n async queueMsgSubstationCreate(owner, allocationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgSubstationCreate',\n value: MsgSubstationCreate.fromPartial({\n creator: this.gameState.signingAccount.address,\n owner: owner,\n allocationId: allocationId\n }),\n });\n }\n\n /**\n * @param {string} substationId\n * @param {string} name\n */\n async queueMsgSubstationUpdateName(substationId, name) {\n this.queue({\n typeUrl: '/structs.structs.MsgSubstationUpdateName',\n value: MsgSubstationUpdateName.fromPartial({\n creator: this.gameState.signingAccount.address,\n substationId: substationId,\n name: name\n }),\n });\n }\n\n /**\n * @param {string} substationId\n * @param {string} pfp\n */\n async queueMsgSubstationUpdatePfp(substationId, pfp) {\n this.queue({\n typeUrl: '/structs.structs.MsgSubstationUpdatePfp',\n value: MsgSubstationUpdatePfp.fromPartial({\n creator: this.gameState.signingAccount.address,\n substationId: substationId,\n pfp: pfp\n }),\n });\n }\n\n /**\n * @param {string} substationId\n * @param {string} migrationSubstationId\n */\n async queueMsgSubstationDelete(substationId, migrationSubstationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgSubstationDelete',\n value: MsgSubstationDelete.fromPartial({\n creator: this.gameState.signingAccount.address,\n substationId: substationId,\n migrationSubstationId: migrationSubstationId\n }),\n });\n }\n\n /**\n * @param {string} allocationId\n * @param {string} destinationId\n */\n async queueMsgSubstationAllocationConnect(allocationId, destinationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgSubstationAllocationConnect',\n value: MsgSubstationAllocationConnect.fromPartial({\n creator: this.gameState.signingAccount.address,\n allocationId: allocationId,\n destinationId: destinationId\n }),\n });\n }\n\n /**\n * @param {string} allocationId\n */\n async queueMsgSubstationAllocationDisconnect(allocationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgSubstationAllocationDisconnect',\n value: MsgSubstationAllocationDisconnect.fromPartial({\n creator: this.gameState.signingAccount.address,\n allocationId: allocationId\n }),\n });\n }\n\n /**\n * @param {string} substationId\n * @param {string} playerId\n */\n async queueMsgSubstationPlayerConnect(substationId, playerId) {\n this.queue({\n typeUrl: '/structs.structs.MsgSubstationPlayerConnect',\n value: MsgSubstationPlayerConnect.fromPartial({\n creator: this.gameState.signingAccount.address,\n substationId: substationId,\n playerId: playerId\n }),\n });\n }\n\n /**\n * @param {string} playerId\n */\n async queueMsgSubstationPlayerDisconnect(playerId) {\n this.queue({\n typeUrl: '/structs.structs.MsgSubstationPlayerDisconnect',\n value: MsgSubstationPlayerDisconnect.fromPartial({\n creator: this.gameState.signingAccount.address,\n playerId: playerId\n }),\n });\n }\n\n /**\n * @param {string} substationId\n * @param {string[]} playerId\n */\n async queueMsgSubstationPlayerMigrate(substationId, playerId) {\n this.queue({\n typeUrl: '/structs.structs.MsgSubstationPlayerMigrate',\n value: MsgSubstationPlayerMigrate.fromPartial({\n creator: this.gameState.signingAccount.address,\n substationId: substationId,\n playerId: playerId\n }),\n });\n }\n\n /**\n * @param {string} providerId\n * @param {number} duration\n * @param {number} capacity\n */\n async queueMsgAgreementOpen(providerId, duration, capacity) {\n this.queue({\n typeUrl: '/structs.structs.MsgAgreementOpen',\n value: MsgAgreementOpen.fromPartial({\n creator: this.gameState.signingAccount.address,\n providerId: providerId,\n duration: duration,\n capacity: capacity\n }),\n });\n }\n\n /**\n * @param {string} agreementId\n */\n async queueMsgAgreementClose(agreementId) {\n this.queue({\n typeUrl: '/structs.structs.MsgAgreementClose',\n value: MsgAgreementClose.fromPartial({\n creator: this.gameState.signingAccount.address,\n agreementId: agreementId\n }),\n });\n }\n\n /**\n * @param {string} agreementId\n * @param {number} capacityIncrease\n */\n async queueMsgAgreementCapacityIncrease(agreementId, capacityIncrease) {\n this.queue({\n typeUrl: '/structs.structs.MsgAgreementCapacityIncrease',\n value: MsgAgreementCapacityIncrease.fromPartial({\n creator: this.gameState.signingAccount.address,\n agreementId: agreementId,\n capacityIncrease: capacityIncrease\n }),\n });\n }\n\n /**\n * @param {string} agreementId\n * @param {number} capacityDecrease\n */\n async queueMsgAgreementCapacityDecrease(agreementId, capacityDecrease) {\n this.queue({\n typeUrl: '/structs.structs.MsgAgreementCapacityDecrease',\n value: MsgAgreementCapacityDecrease.fromPartial({\n creator: this.gameState.signingAccount.address,\n agreementId: agreementId,\n capacityDecrease: capacityDecrease\n }),\n });\n }\n\n /**\n * @param {string} agreementId\n * @param {number} durationIncrease\n */\n async queueMsgAgreementDurationIncrease(agreementId, durationIncrease) {\n this.queue({\n typeUrl: '/structs.structs.MsgAgreementDurationIncrease',\n value: MsgAgreementDurationIncrease.fromPartial({\n creator: this.gameState.signingAccount.address,\n agreementId: agreementId,\n durationIncrease: durationIncrease\n }),\n });\n }\n\n /**\n * @param {string} substationId\n * @param {{denom: string, amount: string}} rate\n * @param {string} accessPolicy\n * @param {string} providerCancellationPenalty\n * @param {string} consumerCancellationPenalty\n * @param {number} capacityMinimum\n * @param {number} capacityMaximum\n * @param {number} durationMinimum\n * @param {number} durationMaximum\n */\n async queueMsgProviderCreate(substationId, rate, accessPolicy, providerCancellationPenalty, consumerCancellationPenalty, capacityMinimum, capacityMaximum, durationMinimum, durationMaximum) {\n this.queue({\n typeUrl: '/structs.structs.MsgProviderCreate',\n value: MsgProviderCreate.fromPartial({\n creator: this.gameState.signingAccount.address,\n substationId: substationId,\n rate: rate,\n accessPolicy: accessPolicy,\n providerCancellationPenalty: providerCancellationPenalty,\n consumerCancellationPenalty: consumerCancellationPenalty,\n capacityMinimum: capacityMinimum,\n capacityMaximum: capacityMaximum,\n durationMinimum: durationMinimum,\n durationMaximum: durationMaximum\n }),\n });\n }\n\n /**\n * @param {string} providerId\n * @param {string} destinationAddress\n */\n async queueMsgProviderWithdrawBalance(providerId, destinationAddress) {\n this.queue({\n typeUrl: '/structs.structs.MsgProviderWithdrawBalance',\n value: MsgProviderWithdrawBalance.fromPartial({\n creator: this.gameState.signingAccount.address,\n providerId: providerId,\n destinationAddress: destinationAddress\n }),\n });\n }\n\n /**\n * @param {string} providerId\n * @param {number} newMinimumCapacity\n */\n async queueMsgProviderUpdateCapacityMinimum(providerId, newMinimumCapacity) {\n this.queue({\n typeUrl: '/structs.structs.MsgProviderUpdateCapacityMinimum',\n value: MsgProviderUpdateCapacityMinimum.fromPartial({\n creator: this.gameState.signingAccount.address,\n providerId: providerId,\n newMinimumCapacity: newMinimumCapacity\n }),\n });\n }\n\n /**\n * @param {string} providerId\n * @param {number} newMaximumCapacity\n */\n async queueMsgProviderUpdateCapacityMaximum(providerId, newMaximumCapacity) {\n this.queue({\n typeUrl: '/structs.structs.MsgProviderUpdateCapacityMaximum',\n value: MsgProviderUpdateCapacityMaximum.fromPartial({\n creator: this.gameState.signingAccount.address,\n providerId: providerId,\n newMaximumCapacity: newMaximumCapacity\n }),\n });\n }\n\n /**\n * @param {string} providerId\n * @param {number} newMinimumDuration\n */\n async queueMsgProviderUpdateDurationMinimum(providerId, newMinimumDuration) {\n this.queue({\n typeUrl: '/structs.structs.MsgProviderUpdateDurationMinimum',\n value: MsgProviderUpdateDurationMinimum.fromPartial({\n creator: this.gameState.signingAccount.address,\n providerId: providerId,\n newMinimumDuration: newMinimumDuration\n }),\n });\n }\n\n /**\n * @param {string} providerId\n * @param {number} newMaximumDuration\n */\n async queueMsgProviderUpdateDurationMaximum(providerId, newMaximumDuration) {\n this.queue({\n typeUrl: '/structs.structs.MsgProviderUpdateDurationMaximum',\n value: MsgProviderUpdateDurationMaximum.fromPartial({\n creator: this.gameState.signingAccount.address,\n providerId: providerId,\n newMaximumDuration: newMaximumDuration\n }),\n });\n }\n\n /**\n * @param {string} providerId\n * @param {string} accessPolicy\n */\n async queueMsgProviderUpdateAccessPolicy(providerId, accessPolicy) {\n this.queue({\n typeUrl: '/structs.structs.MsgProviderUpdateAccessPolicy',\n value: MsgProviderUpdateAccessPolicy.fromPartial({\n creator: this.gameState.signingAccount.address,\n providerId: providerId,\n accessPolicy: accessPolicy\n }),\n });\n }\n\n /**\n * @param {string} providerId\n */\n async queueMsgProviderDelete(providerId) {\n this.queue({\n typeUrl: '/structs.structs.MsgProviderDelete',\n value: MsgProviderDelete.fromPartial({\n creator: this.gameState.signingAccount.address,\n providerId: providerId\n }),\n });\n }\n\n /**\n * @param {string} delegatorAddress\n * @param {string} validatorAddress\n * @param {{denom: string, amount: string}} amount\n */\n async queueMsgReactorInfuse(delegatorAddress, validatorAddress, amount) {\n this.queue({\n typeUrl: '/structs.structs.MsgReactorInfuse',\n value: MsgReactorInfuse.fromPartial({\n creator: this.gameState.signingAccount.address,\n delegatorAddress: delegatorAddress,\n validatorAddress: validatorAddress,\n amount: amount\n }),\n });\n }\n\n /**\n * @param {string} delegatorAddress\n * @param {string} validatorSrcAddress\n * @param {string} validatorDstAddress\n * @param {{denom: string, amount: string}} amount\n */\n async queueMsgReactorBeginMigration(delegatorAddress, validatorSrcAddress, validatorDstAddress, amount) {\n this.queue({\n typeUrl: '/structs.structs.MsgReactorBeginMigration',\n value: MsgReactorBeginMigration.fromPartial({\n creator: this.gameState.signingAccount.address,\n delegatorAddress: delegatorAddress,\n validatorSrcAddress: validatorSrcAddress,\n validatorDstAddress: validatorDstAddress,\n amount: amount\n }),\n });\n }\n\n /**\n * @param {string} delegatorAddress\n * @param {string} validatorAddress\n * @param {{denom: string, amount: string}} amount\n */\n async queueMsgReactorDefuse(delegatorAddress, validatorAddress, amount) {\n this.queue({\n typeUrl: '/structs.structs.MsgReactorDefuse',\n value: MsgReactorDefuse.fromPartial({\n creator: this.gameState.signingAccount.address,\n delegatorAddress: delegatorAddress,\n validatorAddress: validatorAddress,\n amount: amount\n }),\n });\n }\n\n /**\n * @param {string} delegatorAddress\n * @param {string} validatorAddress\n * @param {{denom: string, amount: string}} amount\n * @param {number} creationHeight\n */\n async queueMsgReactorCancelDefusion(delegatorAddress, validatorAddress, amount, creationHeight) {\n this.queue({\n typeUrl: '/structs.structs.MsgReactorCancelDefusion',\n value: MsgReactorCancelDefusion.fromPartial({\n creator: this.gameState.signingAccount.address,\n delegatorAddress: delegatorAddress,\n validatorAddress: validatorAddress,\n amount: amount,\n creationHeight: creationHeight\n }),\n });\n }\n\n}","import {Struct} from \"../models/Struct\";\nimport {StructType} from \"../models/StructType\";\nimport {MAP_TILE_TYPES} from \"../constants/MapConstants\";\nimport {TaskCmdKillEvent} from \"../events/TaskCmdKillEvent\";\nimport {ClearStructTileEvent} from \"../events/ClearStructTileEvent\";\nimport {UpdateTileStructIdEvent} from \"../events/UpdateTileStructIdEvent\";\nimport {HUDViewModel} from \"../view_models/HUDViewModel\";\nimport {RefreshActionBarEvent} from \"../events/RefreshActionBarEvent\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\nimport {RefreshActionBarIfSelectedEvent} from \"../events/RefreshActionBarIfSelectedEvent\";\nimport {RenderStructEvent} from \"../events/RenderStructEvent\";\nimport {RenderStructHUDEvent} from \"../events/RenderStructHUDEvent\";\nimport {Fleet} from \"../models/Fleet\";\nimport {AnimationEventFactory} from \"../factories/AnimationEventFactory\";\n\nexport class StructManager {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {SigningClientManager} signingClientManager\n */\n constructor(\n gameState,\n guildAPI,\n signingClientManager\n ) {\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.signingClientManager = signingClientManager;\n this.animationEventFactory = new AnimationEventFactory();\n }\n\n /**\n * @param {Struct} struct\n * @return {boolean}\n */\n isCommandStruct(struct) {\n const structType = this.gameState.structTypes.getStructTypeById(struct.type);\n return !!structType.is_command;\n }\n\n /**\n * @param {Struct} struct\n * @param {string} planetId\n * @param {Fleet} fleet\n * @return {boolean}\n */\n isStructOnPlanet(struct, planetId, fleet = null) {\n return (struct.location_type === 'planet' && struct.location_id === planetId)\n || (struct.location_type === 'fleet' && fleet?.location_id === planetId);\n }\n\n /**\n * Get a struct by its owner, and it's position on planet or in fleet\n * @param {string} playerId - The id of the struct owner\n * @param {string} locationType - \"fleet\" or \"planet\"\n * @param {string} locationId - Fleet ID or Planet ID\n * @param {string} mapPlanetId - the planet to look for the struct on\n * @param {string} ambit - \"space\", \"air\", \"land\", \"water\"\n * @param {number} slot - Slot number\n * @param {boolean} isCommandSlot - Whether the slot is a command slot or just a planetary or fleet slot\n * @param {Fleet} fleet - The fleet belonging to the player, required for fleet structs\n * @return {Struct|null}\n */\n getStructByPositionAndPlayerId(\n playerId,\n locationType,\n locationId,\n mapPlanetId,\n ambit,\n slot,\n isCommandSlot,\n fleet\n ) {\n\n /**\n * @type {Struct[]}\n */\n const allStructs = [\n ...Object.values(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].structs),\n ...Object.values(this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].structs),\n ...Object.values(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].structs),\n ...Object.values(this.gameState.previewDefenderStructs),\n ...Object.values(this.gameState.previewAttackerStructs)\n ];\n\n return allStructs.find(struct =>\n struct.owner === playerId\n && struct.location_type === locationType\n && struct.location_id === locationId\n && struct.operating_ambit.toLowerCase() === ambit.toLowerCase()\n && `${struct.slot}` === `${slot}`\n && this.isCommandStruct(struct) === isCommandSlot\n && this.isStructOnPlanet(struct, mapPlanetId, fleet)\n ) || null;\n }\n\n /**\n * Get a struct id by its owner, and it's position on planet or in fleet\n * @param {string} playerId - The id of the struct owner\n * @param {string} locationType - \"fleet\" or \"planet\"\n * @param {string} locationId - Fleet ID or Planet ID\n * @param {string} mapPlanetId - the planet to look for the struct on\n * @param {string} ambit - \"space\", \"air\", \"land\", \"water\"\n * @param {string|number} slot - Slot number\n * @param {boolean} isCommandSlot - Whether the slot is a command slot or just a planetary or fleet slot\n * @param {Fleet} fleet - The fleet belonging to the player, required for fleet structs\n * @return {string}\n */\n getStructIdByPositionAndPlayerId(\n playerId,\n locationType,\n locationId,\n mapPlanetId,\n ambit,\n slot,\n isCommandSlot,\n fleet\n ) {\n if (slot === \"\") {\n return \"\";\n }\n\n const struct = this.getStructByPositionAndPlayerId(playerId, locationType, locationId, mapPlanetId, ambit, parseInt(slot), isCommandSlot, fleet);\n return struct ? struct.id : '';\n }\n\n /**\n * @param {StructType} structType\n * @return {string}\n */\n getDeploymentBlockerBuildLimitReached(structType) {\n if (structType.build_limit > 0) {\n const structTypeCount = Object.values(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].structs).filter(struct =>\n struct.type === structType.id\n ).length;\n\n if (structTypeCount >= structType.build_limit) {\n return 'Already deployed';\n }\n }\n\n return '';\n }\n\n /**\n * @param {StructType} structType\n * @return {string}\n */\n getDeploymentBlockerInsufficientCharge(structType) {\n const playerCharge = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].getCharge(this.gameState.currentBlockHeight);\n return playerCharge < structType.build_charge\n ? 'Insufficient battery'\n : '';\n }\n\n /**\n * @return {number}\n */\n getEnergySupply() {\n let totalLoad = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.load + this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.structs_load;\n let totalCapacity = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.capacity + this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.connection_capacity;\n\n return totalCapacity - totalLoad;\n }\n\n /**\n * @param {StructType} structType\n * @return {string}\n */\n getDeploymentBlockerInsufficientEnergySupply(structType) {\n const energySupply = this.getEnergySupply();\n return (energySupply < structType.build_draw || energySupply < structType.passive_draw)\n ? 'Insufficient energy supply'\n : '';\n }\n\n /**\n * @param {StructType} structType\n * @return {string}\n */\n getDeploymentBlockerNoCommandShip(structType) {\n if (structType.is_command) {\n return '';\n }\n\n return !this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].fleet.command_struct\n ? 'Requires command ship'\n : '';\n }\n\n /**\n * @param {StructType} structType\n * @return {string|string}\n */\n getDeploymentBlockerCommandShipAway(structType) {\n if (structType.is_command) {\n return '';\n }\n\n return this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].fleet.status === 'away'\n ? 'Command ship is away'\n : '';\n }\n\n /**\n * Checks if the logged in player is eligible to deploy the select struct type and returns any blockers.\n *\n * @param {StructType} structType\n * @return {string}\n */\n getDeploymentBlocker(structType) {\n return this.getDeploymentBlockerNoCommandShip(structType)\n || this.getDeploymentBlockerBuildLimitReached(structType)\n || this.getDeploymentBlockerInsufficientEnergySupply(structType)\n || this.getDeploymentBlockerInsufficientCharge(structType)\n || this.getDeploymentBlockerCommandShipAway(structType);\n }\n\n /**\n * Gets a struct by ID from all available struct objects. O(1) lookup.\n *\n * @param {string} structId\n * @return {Struct|null}\n */\n getStructById(structId) {\n if (!structId) {\n return null;\n }\n\n return this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].structs[structId]\n || this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].structs[structId]\n || this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].structs[structId]\n || this.gameState.previewDefenderStructs[structId]\n || this.gameState.previewAttackerStructs[structId]\n || null;\n }\n\n /**\n * Determine tile type from struct location and type\n * @param {Struct} struct\n * @return {string|null}\n */\n getTileTypeFromStruct(struct) {\n if (struct.location_type === 'planet') {\n return MAP_TILE_TYPES.PLANETARY_SLOT;\n }\n if (struct.location_type === 'fleet') {\n return this.isCommandStruct(struct)\n ? MAP_TILE_TYPES.COMMAND\n : MAP_TILE_TYPES.FLEET;\n }\n return null;\n }\n\n /**\n * @param {Struct} struct\n */\n cancelStructBuild(struct) {\n console.log(`Canceling build of struct ${struct.id}`);\n\n // Get struct position info before removing\n const tileType = this.getTileTypeFromStruct(struct);\n const ambit = struct.operating_ambit.toUpperCase();\n const slot = struct.slot;\n const playerId = struct.owner;\n const mapId = this.gameState.alphaBaseMap.mapId;\n\n // Kill the task worker\n window.dispatchEvent(new TaskCmdKillEvent(struct.id));\n\n if (!struct.isDestroyed()) {\n // Send cancel message to backend (fire and forget)\n this.signingClientManager.queueMsgStructBuildCancel(\n struct.id\n ).then();\n }\n\n // Optimistic UI update: remove struct from gameState immediately\n this.gameState.removeStruct(struct.id);\n\n // Clear the struct layer tile\n window.dispatchEvent(new ClearStructTileEvent(\n mapId,\n tileType,\n ambit,\n slot,\n playerId\n ));\n\n // Clear the tile selection's data-struct-id\n window.dispatchEvent(new UpdateTileStructIdEvent(\n mapId,\n tileType,\n ambit,\n slot,\n playerId,\n '' // Empty string to clear the struct ID\n ));\n\n // Clear currentSelectedTile.structId\n if (HUDViewModel.currentSelectedTile) {\n HUDViewModel.currentSelectedTile.structId = null;\n }\n\n // Refresh the action bar to show empty tile state\n window.dispatchEvent(new RefreshActionBarEvent());\n }\n\n /**\n * @param {String} playerType\n * @return {Object}\n */\n getStructsByPlayerType(playerType) {\n switch (playerType) {\n case PLAYER_TYPES.PLAYER:\n return this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].structs;\n case PLAYER_TYPES.PLANET_RAIDER:\n return this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].structs;\n case PLAYER_TYPES.RAID_ENEMY:\n return this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].structs;\n default:\n throw new Error(`No such player type ${playerType}`);\n }\n }\n\n /**\n * @param {string} playerType\n * @return {string}\n */\n getStructCountByPlayerType(playerType) {\n const structs = this.getStructsByPlayerType(playerType);\n const isFleetAway = this.gameState.keyPlayers[playerType]?.fleet?.status === 'away';\n let planetaryStructCount = 0;\n let fleetStructCount = 0;\n for (const struct of Object.values(structs)) {\n if (struct.location_type === 'planet') {\n planetaryStructCount++;\n } else if (struct.location_type === 'fleet' && !isFleetAway) {\n fleetStructCount++;\n }\n }\n return `${fleetStructCount}+${planetaryStructCount}`;\n }\n\n /**\n * @param {string} structId\n * @param {string} mapType\n * @param {boolean} removePendingBuild\n * @param {boolean} renderStruct\n * @param {AnimationEvent} animationToAutoplay\n * @return {Promise}\n */\n async refreshStruct(\n structId,\n mapType,\n removePendingBuild = false,\n renderStruct = true,\n animationToAutoplay = null\n ) {\n const struct = await this.guildAPI.getStruct(structId);\n this.gameState.setStruct(struct);\n\n const tileType = this.getTileTypeFromStruct(struct);\n const ambit = struct.operating_ambit.toUpperCase();\n const mapId = this.gameState[mapType]?.mapId ?? null;\n\n // Remove pending build from gameState\n if (tileType && removePendingBuild) {\n this.gameState.removePendingBuild(tileType, ambit, struct.slot, struct.owner);\n\n if (!animationToAutoplay) {\n animationToAutoplay = this.animationEventFactory.makeDeploymentAnimationEvent(\n struct.id,\n ambit,\n mapId\n );\n }\n }\n\n // Dispatch event to update the struct layer\n if (renderStruct) {\n const renderStructEvent = new RenderStructEvent(\n this.gameState[mapType].mapId,\n struct,\n animationToAutoplay\n );\n window.dispatchEvent(renderStructEvent);\n }\n\n const renderStructHUDEvent = new RenderStructHUDEvent(this.gameState[mapType].mapId, struct);\n window.dispatchEvent(renderStructHUDEvent);\n\n // Dispatch event to update the tile selection layer's struct ID\n if (tileType) {\n const updateTileEvent = new UpdateTileStructIdEvent(\n this.gameState[mapType].mapId,\n tileType,\n ambit,\n struct.slot,\n struct.owner,\n struct.id\n );\n window.dispatchEvent(updateTileEvent);\n\n // Dispatch event to refresh action bar if this struct's tile is currently selected\n const refreshActionBarEvent = new RefreshActionBarIfSelectedEvent(\n tileType,\n ambit,\n struct.slot,\n struct.owner,\n struct.id\n );\n window.dispatchEvent(refreshActionBarEvent);\n }\n\n return struct;\n }\n\n /**\n * @param {Struct} struct\n * @param {string} playerType\n */\n getMapIdByPlayerTypeAndStruct(struct, playerType) {\n\n let onPlanet = (struct.location_type === 'fleet')\n ? this.gameState.keyPlayers[playerType].fleet?.location_id\n : struct.location_id;\n\n if (this.gameState.alphaBaseMap.planet && onPlanet === this.gameState.alphaBaseMap.planet.id) {\n return this.gameState.alphaBaseMap.mapId;\n }\n\n if (this.gameState.raidMap.planet && onPlanet === this.gameState.raidMap.planet.id) {\n return this.gameState.raidMap.mapId;\n }\n\n return null;\n }\n}","import {EVENTS} from \"../constants/Events\";\nimport {FEE} from \"../constants/Fee\";\nimport {TASK} from \"../constants/TaskConstants\";\nimport {TASK_TYPES} from \"../constants/TaskTypes\";\nimport {TASK_MANAGER_STATUS} from \"../constants/TaskManagerStatus\";\nimport {TaskProcess} from \"../models/TaskProcess\";\nimport {TaskCompletedEvent} from \"../events/TaskCompletedEvent\";\nimport {TaskManagerStatusChangedEvent} from \"../events/TaskManagerStatusChangedEvent\";\nimport {TASK_STATUS} from \"../constants/TaskStatus\";\nimport {OBJECT_TYPES} from \"../constants/ObjectTypes\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\n\n/*\n * The Task Manager\n */\nexport class TaskManager {\n \n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {SigningClientManager} signingClientManager\n * @param {TaskStateFactory} taskStateFactory\n */\n constructor(\n gameState,\n guildAPI,\n signingClientManager,\n taskStateFactory\n ) {\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.signingClientManager = signingClientManager;\n this.taskStateFactory = taskStateFactory;\n\n this.status = TASK_MANAGER_STATUS.OFFLINE;\n\n this.processes = {};\n this.waiting_queue = [];\n this.running_queue = [];\n\n /*\n TASK_STATE_CHANGED used to propagate task state throughout. Can be\n used by UI elements for updating progress bars and estimates.\n\n TASK_WORKER_CHANGED is used by the Web Worker and likely shouldn't\n be used by UI elements as they may miss other events such\n as Pausing and Resuming.\n */\n window.addEventListener(EVENTS.TASK_WORKER_CHANGED, function (event) {\n this.setState(event.state);\n console.log(this.processes[event.state.getPID()].state)\n if (event.state.isCompleted()) {\n\n event.state.setBlockCheckpoint(this.gameState.currentBlockHeight);\n // Make sure the hash is acceptable compared to the estimations performed in the worker\n if (event.state.checkResultHashDifficulty()) {\n this.complete(event.state.getPID());\n } else {\n event.state.setStatus(TASK_STATUS.STARTING);\n this.spawn(event.state);\n }\n\n }\n }.bind(this));\n\n // TASK_CMD_MANAGER_PAUSE\n // Can be dispatched anywhere to halt the Task Manager\n window.addEventListener(EVENTS.TASK_CMD_MANAGER_PAUSE, function (event) {\n this.setManagerStatus(TASK_MANAGER_STATUS.OFFLINE);\n this.pauseAll();\n }.bind(this));\n\n // TASK_CMD_MANAGER_RESUME\n // Can be dispatched anywhere to resume the Task Manager\n window.addEventListener(EVENTS.TASK_CMD_MANAGER_RESUME, function (event) {\n this.setManagerStatus(TASK_MANAGER_STATUS.ONLINE);\n this.resumeAll();\n }.bind(this));\n\n // TASK_CMD_FORCE_RUN\n // Can be dispatched anywhere to force a process in waiting to start running\n window.addEventListener(EVENTS.TASK_CMD_FORCE_RUN, function (event) {\n this.forceRun(event.pid);\n }.bind(this));\n\n // TASK_CMD_KILL\n // Can be dispatched anywhere to kill tasks.\n window.addEventListener(EVENTS.TASK_CMD_KILL, function (event) {\n this.terminate(event.pid);\n }.bind(this));\n\n // TASK_CMD_PAUSE\n // Can be dispatched anywhere to pause a job\n window.addEventListener(EVENTS.TASK_CMD_PAUSE, function (event) {\n this.pause(event.pid);\n }.bind(this));\n\n // TASK_CMD_RESUME\n // Can be dispatched anywhere to resume a job\n window.addEventListener(EVENTS.TASK_CMD_RESUME, function (event) {\n this.resume(event.pid);\n }.bind(this));\n\n // TASK_CMD_SPAWN\n // Can be dispatched anywhere to execute new tasks.\n window.addEventListener(EVENTS.TASK_CMD_SPAWN, function (event) {\n this.spawn(event.state);\n }.bind(this));\n\n\n // TASK_CMD_SWEEP\n // Can be dispatched anywhere to remove a job from the processes object\n window.addEventListener(EVENTS.TASK_CMD_SWEEP, function (event) {\n this.sweep(event.pid);\n }.bind(this));\n\n // TASK_CMD_SWEEP_ALL\n // Can be dispatched anywhere to remove all finished jobs from the processes object\n window.addEventListener(EVENTS.TASK_CMD_SWEEP_ALL, function (event) {\n this.sweepAll();\n }.bind(this));\n\n // Handle a completed task\n window.addEventListener(EVENTS.TASK_COMPLETED, async function (event) {\n console.log('It is done! \\n ' + event.state.toLog());\n\n // TODO - restructure this to not be switch based\n // TODO - add result verification (check hash, difficulty, etc)\n // TODO - More complex result handling, currently assumes\n // only processing your own work.\n //\n // If the Task belongs to this user\n // Create a transactions\n // else\n // submit to guild\n\n let msg;\n this.sweep(event.state.getPID());\n switch (event.state.task_type) {\n case TASK_TYPES.RAID:\n await this.signingClientManager.queueMsgPlanetRaidComplete(\n event.state.object_id,\n event.state.result_hash,\n event.state.result_nonce\n );\n break;\n case TASK_TYPES.BUILD:\n await this.signingClientManager.queueMsgStructBuildComplete(\n event.state.object_id,\n event.state.result_hash,\n event.state.result_nonce\n );\n break;\n\n case TASK_TYPES.MINE:\n await this.signingClientManager.queueMsgStructOreMinerComplete(\n event.state.object_id,\n event.state.result_hash,\n event.state.result_nonce\n );\n break;\n\n case TASK_TYPES.REFINE:\n await this.signingClientManager.queueMsgStructOreRefineryComplete(\n event.state.object_id,\n event.state.result_hash,\n event.state.result_nonce\n );\n break;\n }\n }.bind(this));\n\n // Add Console Utilities\n setInterval(() => this.StatusAll(), TASK.AUTOMATIC_STATUS_INTERVAL);\n\n }\n\n StatusAll() {\n console.log(this.processes);\n console.log(this.waiting_queue);\n console.log(this.running_queue);\n console.log('hashrate ' + this.getProcessAverageHashrate());\n console.log('percent est. ' + this.getProcessPercentCompleteEstimateAll());\n console.log('time est. ' + this.getProcessTimeRemainingEstimateAll()/1000.0);\n }\n\n canStartTask() {\n return this.isOnline() && this.running_queue.length < TASK.MAX_CONCURRENT_PROCESSES\n }\n\n // TODO I'd like to change this to === but I'm not sure if something will currently send it over\n isAtCapacity() {\n return this.running_queue.length >= TASK.MAX_CONCURRENT_PROCESSES\n }\n\n isOnline() {\n return this.status === TASK_MANAGER_STATUS.ONLINE;\n }\n\n /**\n * @param {string} new_status\n */\n setManagerStatus(new_status) {\n this.status = new_status;\n window.dispatchEvent(new TaskManagerStatusChangedEvent(this.status));\n }\n\n /**\n * @param {TaskState} task_state\n * @return {string}\n */\n spawn(task_state) {\n const pid = task_state.getPID();\n\n task_state.setBlockCheckpoint(this.gameState.currentBlockHeight);\n\n if (this.processes[pid]) {\n this.processes[pid].replaceState(task_state);\n } else {\n this.processes[pid] = new TaskProcess(task_state);\n if (this.canStartTask()) {\n this.processes[pid].start(pid);\n this.running_queue.push(pid);\n } else {\n this.waiting_queue.push(pid);\n }\n }\n return pid;\n }\n\n runNext() {\n if (this.canStartTask()) {\n const next_pid = this.waiting_queue.pop()\n if (next_pid !== undefined) {\n console.log(next_pid)\n this.processes[next_pid].state.setBlockCheckpoint(this.gameState.currentBlockHeight);\n this.processes[next_pid].start(next_pid);\n this.running_queue.push(next_pid);\n }\n }\n }\n\n /**\n * @param {string} pid\n */\n forceRun(pid){\n if (this.processes[pid]) {\n if (this.processes[pid].isWaiting()) {\n this.processes[pid].setStatus(TASK_STATUS.RUNNING);\n this.processes[pid].start();\n }\n }\n }\n\n /**\n * @param {string} pid\n */\n terminate(pid) {\n const running_index = this.running_queue.indexOf(pid);\n const waiting_index = this.waiting_queue.indexOf(pid);\n if ((running_index !== -1) || (waiting_index !== -1)) {\n this.processes[pid].terminate();\n\n this.runningQueueRemove(pid);\n this.waitingQueueRemove(pid);\n\n this.runNext();\n }\n }\n\n /**\n * @param {string} pid\n */\n complete(pid) {\n if (this.processes[pid]) {\n this.processes[pid].clearWorker();\n\n this.runningQueueRemove(pid);\n this.waitingQueueRemove(pid);\n\n window.dispatchEvent(new TaskCompletedEvent(this.processes[pid].state));\n\n this.runNext();\n }\n }\n\n\n /**\n * @param {string} pid\n */\n pause(pid) {\n if (this.processes[pid]) {\n if (this.processes[pid].canPause()) {\n\n const estimatedHashrate = this.getProcessAverageHashrate();\n const estimatedBlockStartOffset = this.getProcessBlockOffset(pid, estimatedHashrate);\n\n this.processes[pid].pause(estimatedHashrate, estimatedBlockStartOffset);\n this.runningQueueRemove(pid);\n\n this.waiting_queue.push(pid);\n\n this.runNext();\n }\n }\n }\n\n pauseAll() {\n let pause_list = [...this.running_queue];\n\n const estimatedHashrate = this.getProcessAverageHashrate();\n\n for (const pid of pause_list) {\n if (this.processes[pid].canPause()) {\n const estimatedBlockStartOffset = this.getProcessBlockOffset(pid, estimatedHashrate);\n\n this.processes[pid].pause(estimatedHashrate, estimatedBlockStartOffset);\n this.runningQueueRemove(pid);\n\n this.waiting_queue.push(pid);\n }\n }\n }\n\n /**\n * @param {string} pid\n */\n resume(pid) {\n if (this.processes[pid]\n && this.processes[pid].canResume()\n ) {\n // Pull it out of the waiting queue\n this.waitingQueueRemove(pid)\n\n if (this.canStartTask()) {\n this.running_queue.push(pid);\n this.processes[pid].state.setBlockCheckpoint(this.gameState.currentBlockHeight);\n this.processes[pid].start(pid);\n\n } else {\n // Add back to the next position of the waiting queue\n this.waiting_queue.push(pid);\n\n // Sleep the oldest\n // Which will automatically run the next in the queue after\n const sleep_pid = this.running_queue[0];\n this.pause(sleep_pid);\n }\n }\n }\n\n resumeAll() {\n let resume_list = [...this.waiting_queue];\n for (const pid of resume_list) {\n if (this.isAtCapacity()) {\n break;\n }\n this.resume(pid);\n }\n }\n\n /**\n * @param {string} pid\n */\n sweep(pid) {\n if (this.processes[pid]) {\n this.terminate(pid);\n delete this.processes[pid];\n }\n }\n\n sweepAll() {\n let sweep_list = [];\n for (const pid of Object.keys(this.processes)) {\n if (this.processes[pid].canSweep()) {\n sweep_list.push(pid);\n }\n }\n\n for (const pid of sweep_list) {\n delete this.processes[pid];\n }\n }\n\n /**\n * @param {string} pid\n */\n waitingQueueRemove(pid){\n const waiting_index = this.waiting_queue.indexOf(pid);\n if (waiting_index !== -1) {\n this.waiting_queue.splice(waiting_index, 1);\n }\n }\n\n /**\n * @param {string} pid\n */\n runningQueueRemove(pid) {\n const running_index = this.running_queue.indexOf(pid);\n if (running_index !== -1) {\n this.running_queue.splice(running_index, 1);\n }\n }\n\n /**\n * @param {TaskState} new_state\n */\n setState(new_state) {\n this.processes[new_state.getPID()].setState(new_state);\n }\n\n /**\n * @param {string} pid\n * @return {number}\n */\n getProcessPercentCompleteEstimate(pid) {\n const hashrate = this.getProcessAverageHashrate();\n const offsetBlock = this.getProcessBlockOffset(pid, hashrate);\n\n return this.processes[pid].state.getPercentCompleteEstimate(hashrate, offsetBlock);\n }\n\n /**\n * @return {number}\n */\n getProcessPercentCompleteEstimateAll() {\n const hashrate = this.getProcessAverageHashrate();\n\n let i = 0;\n let avg_complete = 0.0;\n for (const pid of Object.keys(this.processes)) {\n i++\n const offsetBlock = this.getProcessBlockOffset(pid, hashrate);\n avg_complete += this.processes[pid].state.getPercentCompleteEstimate(hashrate, offsetBlock);\n }\n\n if (i == 0) {\n return 1;\n }\n return avg_complete / (i);\n }\n\n /**\n * @param {string} pid\n * @return {number}\n */\n getProcessTimeRemainingEstimate(pid) {\n const hashrate = this.getProcessAverageHashrate();\n const offsetBlock = this.getProcessBlockOffset(pid, hashrate);\n\n if (this.processes[pid]) {\n return this.processes[pid].state.getTimeRemainingEstimate(hashrate, offsetBlock);\n }\n\n return 0;\n }\n\n /**\n * @param {string} queue_pid\n * @param {number} hashRate\n * @return {number}\n */\n getProcessBlockOffset(queue_pid, hashrate) {\n let longest_block = 0;\n let running_list = [...this.running_queue];\n for (const pid of running_list) {\n if (pid === queue_pid) { return 0; }\n const current_block_length = this.processes[pid].state.getTimeRemainingEstimate(hashrate, 0 );\n longest_block = (current_block_length > longest_block) ? current_block_length : longest_block;\n }\n\n // Only process the waiting list if the running list has any jobs\n // Otherwise we end up with a wonky estimate on initial jobs\n if (running_list.length > 0) {\n let waiting_list = [...this.waiting_queue];\n for (const pid of waiting_list) {\n if (pid === queue_pid) { break; }\n const current_block_length = this.processes[pid].state.getTimeRemainingEstimate(hashrate, longest_block );\n longest_block = (current_block_length > longest_block) ? current_block_length : longest_block;\n }\n }\n return longest_block;\n\n }\n\n\n\n /**\n * @return {number}\n */\n getProcessTimeRemainingEstimateAll() {\n const hashrate = this.getProcessAverageHashrate();\n\n let longest = 0;\n for (const pid of Object.keys(this.processes)) {\n const offsetBlock = this.getProcessBlockOffset(pid, hashrate);\n const estimate = this.processes[pid].state.getTimeRemainingEstimate(hashrate, offsetBlock);\n if (estimate > longest) {\n longest = estimate;\n }\n }\n return longest;\n }\n\n /**\n * @param {string} pid\n * @return {number}\n */\n getProcessHashrate(pid) {\n return this.processes[pid].state.getHashrate();\n }\n\n /**\n * @return {number}\n */\n getProcessHashrateAll() {\n let total = 0;\n for (const pid of Object.keys(this.processes)) {\n total += this.processes[pid].state.getHashrate();\n }\n return total;\n }\n\n\n /**\n * @return {number}\n */\n getProcessAverageHashrate() {\n let average = 0;\n let iterations = 0;\n for (const pid of Object.keys(this.processes)) {\n // Make sure the state is actually running and not waiting\n if (this.processes[pid].state.isRunning()) {\n average += this.processes[pid].state.getHashrate();\n iterations++\n }\n }\n\n if (iterations == 0 || average == 0) {\n return TASK.HASHRATE_INITIAL_ESTIMATE;\n }\n return average / iterations;\n }\n\n /**\n * Searches for a build process by struct ID.\n *\n * @param {string} structId\n * @return {TaskProcess|null}\n */\n getBuildProcessByStructId(structId) {\n return this.getProcessByStructIdAndType(structId, TASK_TYPES.BUILD);\n }\n\n /**\n * Searches for a process associated with a given struct ID and task type.\n *\n * @param {string} structId\n * @param {string} taskType see TASK_TYPES\n * @return {TaskProcess|null}\n */\n getProcessByStructIdAndType(structId, taskType) {\n for (const pid of Object.keys(this.processes)) {\n const process = this.processes[pid];\n const state = process.state;\n if (\n state.task_type === taskType\n && state.object_type === OBJECT_TYPES.STRUCT\n && state.object_id === structId\n ) {\n return process;\n }\n }\n return null;\n }\n\n\n /**\n * Restores worker tasks for the logged in player from the database.\n *\n * @return {Promise}\n */\n async restoreTasksFromDB() {\n\n // Only restore tasks, if the task manager is not already in use.\n if (Object.keys(this.processes).length || this.running_queue.length || this.waiting_queue.length) {\n return;\n }\n\n const work = await this.guildAPI.getWorkByPlayerId(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id);\n work.forEach((workTask) => {\n const task = this.taskStateFactory.initTaskFromWork(workTask);\n this.spawn(task);\n });\n }\n}\n","import {DirectSecp256k1HdWallet} from \"@cosmjs/proto-signing\";\nimport {Bip39, Random, Secp256k1, sha256} from \"@cosmjs/crypto\";\n\nexport class WalletManager {\n\n constructor() {\n this.textEncoder = new TextEncoder();\n }\n\n /**\n * @return {string}\n */\n createMnemonic() {\n const getNewRandom = Random.getBytes(16);\n return Bip39.encode(getNewRandom).toString();\n }\n\n /**\n * @param {string} mnemonic\n * @return {Promise}\n */\n async createWallet(mnemonic) {\n return await DirectSecp256k1HdWallet.fromMnemonic(\n mnemonic,\n {\n prefix: \"structs\"\n }\n );\n }\n\n /**\n * @param {string} message\n * @param {Uint8Array} privateKey\n * @return {Promise}\n */\n async createSignatureForProxyMessage(message, privateKey) {\n const encodedMessage = this.textEncoder.encode(message);\n const digest = sha256(encodedMessage);\n const rawSignature = await Secp256k1.createSignature(digest, privateKey);\n return this.bytesToHex(rawSignature.toFixedLength());\n }\n\n /**\n * @param byteArray\n * @return {string}\n */\n bytesToHex(byteArray) {\n return Array.from(byteArray, function(byte) {\n return ('0' + (byte & 0xFF).toString(16)).slice(-2);\n }).join('');\n }\n}","import {HUDViewModel} from \"../view_models/HUDViewModel\";\nimport {Struct} from \"./Struct\";\n\nexport class ActionBarLock {\n\n constructor() {\n\n /** @type {string} See STRUCT_ACTIONS */\n this.currentAction = '';\n\n /** @type {Struct} The struct that is the source of this action. */\n this.actionSourceStruct = null;\n\n /** @type {boolean} */\n this.locked = false;\n }\n\n /**\n * @param {string} action\n */\n setCurrentAction(action) {\n if (this.locked) {\n console.warn(`Cannot set current action, ActionBarLock is locked for action ${this.currentAction}`);\n } else {\n this.currentAction = action;\n }\n }\n\n /**\n * @return {string}\n */\n getCurrentAction() {\n return this.currentAction;\n }\n\n lock() {\n this.locked = true;\n\n // Refresh the action bar to show the executing progress bar\n HUDViewModel.refreshActionBar();\n }\n\n /**\n * @param {boolean} refreshActionBar\n */\n unlock(refreshActionBar = true) {\n this.locked = false;\n\n if (refreshActionBar) {\n // Refresh the action bar to end the executing progress bar and show the relevant action bar\n HUDViewModel.refreshActionBar();\n }\n }\n\n /**\n * @return {boolean}\n */\n isLocked() {\n return this.locked;\n }\n\n /**\n * @param {boolean} refreshActionBar\n */\n clear(refreshActionBar = true) {\n this.unlock(refreshActionBar);\n this.setActionSourceStruct(null);\n this.setCurrentAction('');\n }\n\n /**\n * @param {Struct} struct\n */\n setActionSourceStruct(struct) {\n this.actionSourceStruct = struct;\n }\n\n /**\n * @return {Struct}\n */\n getActionSourceStruct() {\n return this.actionSourceStruct;\n }\n\n}","export class Fleet {\n constructor() {\n this.id = null;\n this.owner = null;\n this.map = null;\n this.space_slots = null;\n this.air_slots = null;\n this.land_slots = null;\n this.water_slots = null;\n this.location_type = null;\n this.location_id = null;\n this.status = null;\n this.location_list_forward = null;\n this.location_list_backward = null;\n this.command_struct = null;\n this.created_at = null;\n this.updated_at = null;\n }\n}\n\n","import {SignupRequestDTO} from \"../dtos/SignupRequestDTO\";\nimport {ChargeCalculator} from \"../util/ChargeCalculator\";\nimport {EVENTS} from \"../constants/Events\";\nimport {ChargeLevelChangedEvent} from \"../events/ChargeLevelChangedEvent\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\nimport {WalletManager} from \"../managers/WalletManager\";\nimport {GuildAPI} from \"../api/GuildAPI\";\nimport {PlanetRaid} from \"./PlanetRaid\";\nimport {MAP_CONTAINER_IDS, MAP_TYPES} from \"../constants/MapConstants\";\nimport {StructTypeCollection} from \"./StructTypeCollection\";\nimport {Struct} from \"./Struct\";\nimport {StructType} from \"./StructType\";\nimport {KeyPlayer} from \"./KeyPlayer\";\nimport {StructCountChangedEvent} from \"../events/StructCountChangedEvent\";\nimport {PlanetRaidStatusChangedEvent} from \"../events/PlanetRaidStatusChangedEvent\";\nimport {Guild} from \"./Guild\";\nimport {ActionBarLock} from \"./ActionBarLock\";\nimport {Settings} from \"./Settings\";\nimport {STRUCT_TYPES} from \"../constants/StructConstants\";\n\nexport class GameState {\n\n constructor() {\n this.chargeCalculator = new ChargeCalculator();\n this.walletManager = new WalletManager();\n this.guildAPI = new GuildAPI();\n\n /* Multistep Request Data */\n this.signupRequest = new SignupRequestDTO();\n this.transferAmount = 0;\n\n /* Persistent Data */\n this.mnemonic = null;\n this.pubkey = null;\n this.lastSaveBlockHeight = 0;\n this.activeMapContainerId = MAP_CONTAINER_IDS.ALPHA_BASE;\n\n /* Must Be Re-instantiated On Load */\n this.wallet = null;\n this.signingAccount = null;\n this.signingClient = null;\n\n /** @type {MapComponent} */\n this.alphaBaseMap = null;\n\n /** @type {MapComponent} */\n this.raidMap = null;\n\n /** @type {MapComponent} */\n this.previewMap = null;\n\n /* API Primed Data */\n\n /** @type {Settings} */\n this.settings = null;\n\n /** @type {Guild} */\n this.thisGuild = null;\n\n /**\n * @type {{player: KeyPlayer, raid_enemy: KeyPlayer, planet_raider: KeyPlayer}}\n */\n this.keyPlayers = {\n [PLAYER_TYPES.PLAYER]: new KeyPlayer(\n PLAYER_TYPES.PLAYER,\n true,\n MAP_TYPES.ALPHA_BASE\n ),\n [PLAYER_TYPES.RAID_ENEMY]: new KeyPlayer(\n PLAYER_TYPES.RAID_ENEMY,\n true,\n MAP_TYPES.RAID\n ),\n [PLAYER_TYPES.PLANET_RAIDER]: new KeyPlayer(\n PLAYER_TYPES.PLANET_RAIDER,\n false,\n '',\n PLAYER_TYPES.PLAYER\n )\n };\n\n this.structTypes = new StructTypeCollection();\n\n /** @type {Object} */\n this.previewDefenderStructs = {};\n\n /** @type {Object} */\n this.previewAttackerStructs = {};\n\n /* GRASS Only Data */\n\n this.currentBlockHeight = 0;\n\n /* Temp Data */\n\n /**\n * Tracks pending builds before the struct ID is known.\n * Key: \"{tileType}-{ambit}-{slot}-{playerId}\"\n * Value: {structType: StructType, timestamp: number}\n * @type {Map}\n */\n this.pendingBuilds = new Map();\n\n /** @type {ActionBarLock} The current struct action (see STRUCT_ACTIONS) that holds the lock. */\n this.actionBarLock = new ActionBarLock();\n\n /** @type {AnimationEventQueue} */\n this.animationEventQueue = null;\n\n /* Allow saving from other classes without cyclical references. */\n window.addEventListener(EVENTS.SAVE_GAME_STATE, this.save.bind(this));\n }\n\n save() {\n this.lastSaveBlockHeight = this.currentBlockHeight;\n\n localStorage.setItem('gameState', JSON.stringify({\n mnemonic: this.mnemonic,\n pubkey: this.pubkey,\n thisPlayerId: this.keyPlayers[PLAYER_TYPES.PLAYER].id,\n lastSaveBlockHeight: this.lastSaveBlockHeight,\n lastActionBlockHeight: this.keyPlayers[PLAYER_TYPES.PLAYER].lastActionBlockHeight,\n planetRaiderLastActionBlockHeight: this.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].lastActionBlockHeight,\n raidEnemyLastActionBlockHeight: this.keyPlayers[PLAYER_TYPES.RAID_ENEMY].lastActionBlockHeight,\n chargeLevel: this.keyPlayers[PLAYER_TYPES.PLAYER].chargeLevel,\n planetRaiderChargeLevel: this.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].chargeLevel,\n raidEnemyChargeLevel: this.keyPlayers[PLAYER_TYPES.RAID_ENEMY].chargeLevel,\n transferAmount: this.transferAmount,\n activeMapContainerId: this.activeMapContainerId\n }));\n }\n\n async load() {\n const gameState = localStorage.getItem('gameState');\n\n if (!gameState) {\n return;\n }\n\n const gameStateParsed = JSON.parse(gameState);\n\n this.mnemonic = gameStateParsed.mnemonic;\n this.pubkey = gameStateParsed.pubkey;\n this.keyPlayers[PLAYER_TYPES.PLAYER].id = gameStateParsed.thisPlayerId;\n this.lastSaveBlockHeight = gameStateParsed.lastSaveBlockHeight;\n this.keyPlayers[PLAYER_TYPES.PLAYER].lastActionBlockHeight = gameStateParsed.lastActionBlockHeight;\n this.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].lastActionBlockHeight = gameStateParsed.planetRaiderLastActionBlockHeight;\n this.keyPlayers[PLAYER_TYPES.RAID_ENEMY].lastActionBlockHeight = gameStateParsed.raidEnemyLastActionBlockHeight;\n this.keyPlayers[PLAYER_TYPES.PLAYER].chargeLevel = gameStateParsed.chargeLevel;\n this.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].chargeLevel = gameStateParsed.planetRaiderChargeLevel;\n this.keyPlayers[PLAYER_TYPES.RAID_ENEMY].chargeLevel = gameStateParsed.raidEnemyChargeLevel;\n this.transferAmount = gameStateParsed.transferAmount;\n this.activeMapContainerId = gameStateParsed.activeMapContainerId;\n\n if (this.mnemonic) {\n // Properties to re-instantiate\n this.wallet = await this.walletManager.createWallet(this.mnemonic);\n const accounts = await this.wallet.getAccountsWithPrivkeys();\n this.signingAccount = accounts[0];\n }\n }\n\n /**\n * @param {number} height\n */\n setCurrentBlockHeight(height) {\n this.currentBlockHeight = height;\n\n Object.values(PLAYER_TYPES).forEach(playerType => {\n if (this.keyPlayers[playerType].player) {\n this.keyPlayers[playerType].chargeLevel = this.chargeCalculator.calc(this.currentBlockHeight, this.keyPlayers[playerType].lastActionBlockHeight);\n\n window.dispatchEvent(new ChargeLevelChangedEvent(this.keyPlayers[playerType].id, this.keyPlayers[playerType].chargeLevel));\n }\n if (this.keyPlayers[playerType].planetUsedForMap && this.keyPlayers[playerType].planetRaidInfo.isRaidActive()) {\n this.keyPlayers[playerType].setPlanetShieldHealth(height);\n }\n });\n\n this.save();\n\n console.log(`New Block ${height}`);\n }\n\n /**\n * @param {PlanetRaid} info\n * @param dispatchEvent\n */\n setPlanetPlanetRaidInfo(info, dispatchEvent = true) {\n this.keyPlayers[PLAYER_TYPES.PLAYER].planetRaidInfo = info;\n this.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].id = info.fleet_owner;\n this.save();\n\n if (dispatchEvent) {\n window.dispatchEvent(new PlanetRaidStatusChangedEvent(PLAYER_TYPES.PLAYER));\n }\n }\n\n /**\n * @param {PlanetRaid} info\n * @param dispatchEvent\n */\n setRaidPlanetRaidInfo(info, dispatchEvent = true) {\n this.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo = info;\n this.keyPlayers[PLAYER_TYPES.RAID_ENEMY].id = info.planet_owner;\n this.save();\n\n if (dispatchEvent) {\n window.dispatchEvent(new PlanetRaidStatusChangedEvent(PLAYER_TYPES.RAID_ENEMY));\n }\n }\n\n /**\n * @param {number} amount\n */\n setTransferAmount(amount) {\n this.transferAmount = amount;\n this.save();\n }\n\n /**\n * @param {string} id\n */\n setActiveMapContainerId(id) {\n this.activeMapContainerId = id;\n this.save();\n }\n\n /**\n * @param {array} types\n */\n setStructTypes(types) {\n this.structTypes.setStructTypes(types);\n }\n\n /**\n * @param {Struct} struct\n */\n setStruct(struct) {\n const playerType = this.getPlayerTypeById(struct.owner);\n this.keyPlayers[playerType].setStruct(struct);\n }\n\n /**\n * Removes a struct by ID from all struct objects.\n *\n * @param {string} structId\n * @return {Struct|null} The removed struct, or null if not found\n */\n removeStruct(structId) {\n Object.keys(PLAYER_TYPES).forEach((playerType) => {\n if (this.keyPlayers[playerType].structs[structId]) {\n const removedStruct = this.keyPlayers[playerType].structs[structId];\n delete this.keyPlayers[playerType].structs[structId];\n\n window.dispatchEvent(new StructCountChangedEvent(playerType));\n\n return removedStruct;\n }\n });\n\n return null;\n }\n\n /**\n * Adds a pending build to track before the struct ID is known.\n *\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n * @param {StructType} structType\n */\n addPendingBuild(tileType, ambit, slot, playerId, structType) {\n const key = this.getPendingBuildKey(tileType, ambit, slot, playerId);\n this.pendingBuilds.set(key, {\n structType: structType,\n timestamp: Date.now()\n });\n }\n\n /**\n * Removes a pending build after the struct ID is known.\n *\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n */\n removePendingBuild(tileType, ambit, slot, playerId) {\n const key = this.getPendingBuildKey(tileType, ambit, slot, playerId);\n this.pendingBuilds.delete(key);\n }\n\n /**\n * @param {Struct[]} structs\n */\n setPreviewDefenderStructs(structs) {\n this.previewDefenderStructs = {};\n structs.forEach(struct => {\n this.previewDefenderStructs[struct.id] = struct;\n });\n }\n\n /**\n * @param {Struct[]} structs\n */\n setPreviewAttackerStructs(structs) {\n this.previewAttackerStructs = {};\n structs.forEach(struct => {\n this.previewAttackerStructs[struct.id] = struct;\n });\n }\n\n clearPlanetRaidData() {\n this.keyPlayers[PLAYER_TYPES.PLAYER].planetRaidInfo = new PlanetRaid();\n this.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].id = '';\n this.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].player = null;\n this.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].lastActionBlockHeight = 0;\n this.keyPlayers[PLAYER_TYPES.PLAYER].setPlanetShieldHealth(this.currentBlockHeight);\n\n this.save();\n }\n\n clearRaidData() {\n this.keyPlayers[PLAYER_TYPES.RAID_ENEMY].id = '';\n this.keyPlayers[PLAYER_TYPES.RAID_ENEMY].player = null;\n this.keyPlayers[PLAYER_TYPES.RAID_ENEMY].lastActionBlockHeight = 0;\n this.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planet = null;\n this.setRaidPlanetRaidInfo(new PlanetRaid());\n\n this.save();\n }\n\n /**\n * @param {string} type player or enemy\n * @return {string|null}\n */\n getPlayerIdByType(type) {\n return (this.keyPlayers[type] && this.keyPlayers[type].id)\n ? this.keyPlayers[type].id\n : null;\n }\n\n /**\n * @param {String} playerId\n * @return {string}\n */\n getPlayerTypeById(playerId) {\n for (const playerType of Object.values(PLAYER_TYPES)) {\n if (this.keyPlayers[playerType].id === playerId) {\n return playerType;\n }\n }\n\n throw new Error(`Player with ID ${playerId} has no type`);\n }\n\n /**\n * Generates a key for the pending builds map.\n *\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n * @return {string}\n */\n getPendingBuildKey(tileType, ambit, slot, playerId) {\n return `${tileType}-${ambit.toLowerCase()}-${slot}-${playerId}`;\n }\n\n /**\n * Gets a pending build by position.\n *\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n * @return {{structType: StructType, timestamp: number}|null}\n */\n getPendingBuild(tileType, ambit, slot, playerId) {\n const key = this.getPendingBuildKey(tileType, ambit, slot, playerId);\n return this.pendingBuilds.get(key) || null;\n }\n\n /**\n * @param {string} playerType\n * @return {PlanetRaid}\n */\n getPlanetRaidInfoForKeyPlayer(playerType) {\n if (this.keyPlayers[playerType].hasForeignRaidInfo()) {\n const sourcePlayerType = this.keyPlayers[playerType].getForeignRaidInfoSource();\n return this.keyPlayers[sourcePlayerType].planetRaidInfo;\n }\n return this.keyPlayers[playerType].planetRaidInfo;\n }\n\n /** @return {null|string} */\n getActiveMapId() {\n const mapContainerElm = document.getElementById(this.activeMapContainerId);\n if (mapContainerElm) {\n const mapElm = mapContainerElm.querySelector('.map');\n if (mapElm) {\n return mapElm.id\n }\n }\n return null;\n }\n\n /**\n * @param {string|null} playerType\n * @return {Struct|null}\n */\n getPlanetaryDefenseStructByKeyPlayer(playerType) {\n const keyPlayer = playerType ? this.keyPlayers[playerType] : null;\n const pdcStructType = this.structTypes.getStructType(STRUCT_TYPES.PLANETARY_DEFENSE_CANNON);\n if (!keyPlayer || !pdcStructType) {\n return null;\n }\n return Object.values(keyPlayer.structs).find(struct =>\n struct.type === pdcStructType.id\n && struct.location_type === 'planet'\n ) || null;\n }\n\n printMyPlayer() {\n console.log('Player ID: ' + this.keyPlayers[PLAYER_TYPES.PLAYER].id);\n console.log('Singing Account: ' + this.signingAccount.address);\n console.log('Primary Account: ' + this.keyPlayers[PLAYER_TYPES.PLAYER].player.primary_address);\n }\n}\n","export class Guild {\n constructor() {\n this.id = null;\n this.endpoint = null;\n this.join_infusion_minimum = null;\n this.join_infusion_minimum_bypass_by_request = null;\n this.join_infusion_minimum_bypass_by_invite = null;\n this.primary_reactor_id = null;\n this.entry_substation_id = null;\n this.creator = null;\n this.owner = null;\n this.name = null;\n this.description = null;\n this.tag = null;\n this.logo = null;\n this.socials = null;\n this.website = null;\n this.this_infrastructure = true;\n this.status = null;\n this.reactor_ratio = null;\n this.default_commission = null;\n this.validator = null;\n }\n}","export class Infusion {\n constructor() {\n this.destination_id = null;\n this.address = null;\n this.destination_type = null;\n this.player_id = null;\n this.fuel = null;\n this.defusing = null;\n this.power = null;\n this.ratio = null;\n this.commission = null;\n this.created_at = null;\n this.updated_at = null;\n this.join_infusion_minimum = null;\n }\n}","import {PlanetaryShieldInfoDTO} from \"../dtos/PlanetaryShieldInfoDTO\";\nimport {PlanetRaid} from \"./PlanetRaid\";\nimport {ChargeLevelChangedEvent} from \"../events/ChargeLevelChangedEvent\";\nimport {ChargeCalculator} from \"../util/ChargeCalculator\";\nimport {SaveGameStateEvent} from \"../events/SaveGameStateEvent\";\nimport {StructCountChangedEvent} from \"../events/StructCountChangedEvent\";\nimport {Player} from \"./Player\";\nimport {AlphaCountChangedEvent} from \"../events/AlphaCountChangedEvent\";\nimport {EnergyUsageChangedEvent} from \"../events/EnergyUsageChangedEvent\";\nimport {OreCountChangedEvent} from \"../events/OreCountChangedEvent\";\nimport {ShieldHealthCalculator} from \"../util/ShieldHealthCalculator\";\nimport {ShieldHealthChangedEvent} from \"../events/ShieldHealthChangedEvent\";\nimport {UndiscoveredOreCountChangedEvent} from \"../events/UndiscoveredOreCountChangedEvent\";\nimport {PlanetRaidStatusChangedEvent} from \"../events/PlanetRaidStatusChangedEvent\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\nimport {Fleet} from \"./Fleet\";\nimport {TrackDestroyedStructsEvent} from \"../events/TrackDestroyedStructsEvent\";\nimport {TrackDestroyedStructEvent} from \"../events/TrackDestroyedStructEvent\";\n\nexport class KeyPlayer {\n\n /**\n * @param {string} playerType See PLAYER_TYPES\n * @param {boolean} planetUsedForMap Whether or not this key player's planet is used for a map\n * @param {string} planetMapType The map type of this planet if it's used for a map.\n * @param {string} foreignRaidInfoKeyPlayer The key player that contains the raid info\n */\n constructor(\n playerType,\n planetUsedForMap,\n planetMapType = '',\n foreignRaidInfoKeyPlayer = ''\n ) {\n\n this.chargeCalculator = new ChargeCalculator();\n this.shieldHealthCalculator = new ShieldHealthCalculator();\n\n /** @type {string} See PLAYER_TYPES */\n this.playerType = playerType;\n\n /** @type {string} */\n this.id = '';\n\n /** @type {Player} */\n this.player = null;\n\n /** @type {number} */\n this.lastActionBlockHeight = 0;\n\n /** @type {number} */\n this.chargeLevel = 0;\n\n /** @type {Planet} */\n this.planet = null;\n\n /** @type {number} */\n this.planetShieldHealth = 100;\n\n /** @type {PlanetaryShieldInfoDTO} */\n this.planetShieldInfo = new PlanetaryShieldInfoDTO();\n\n /** @type {PlanetRaid} */\n this.planetRaidInfo = new PlanetRaid();\n\n /** @type {boolean} Whether or not this key player's planet is used for a map */\n this.planetUsedForMap = planetUsedForMap;\n\n /** @type {string} The map type of this planet if it's used for a map. */\n this.planetMapType = planetUsedForMap ? planetMapType : '';\n\n /** @type {Fleet} */\n this.fleet = null;\n\n /** @type {Object} */\n this.structs = {};\n\n /** @type {string} foreignRaidInfoKeyPlayer */\n this.foreignRaidInfoKeyPlayer = foreignRaidInfoKeyPlayer;\n\n }\n\n setAlpha(alpha) {\n if (this.player && this.player.hasOwnProperty('alpha')) {\n this.player.alpha = alpha;\n\n window.dispatchEvent(new SaveGameStateEvent());\n window.dispatchEvent(new AlphaCountChangedEvent(this.playerType));\n }\n }\n\n /**\n * @param {number} connectionCapacity\n */\n setConnectionCapacity(connectionCapacity) {\n if (this.player && this.player.hasOwnProperty('connection_capacity')) {\n this.player.connection_capacity = connectionCapacity;\n\n window.dispatchEvent(new SaveGameStateEvent());\n window.dispatchEvent(new EnergyUsageChangedEvent(this.playerType));\n }\n }\n\n /**\n * @param {string} id\n */\n setId(id) {\n this.id = id;\n\n window.dispatchEvent(new SaveGameStateEvent());\n }\n\n /**\n * @param {number} currentBlockHeight\n * @param {number} height\n */\n setLastActionBlockHeight(currentBlockHeight, height) {\n this.lastActionBlockHeight = height;\n this.chargeLevel = this.chargeCalculator.calc(currentBlockHeight, this.lastActionBlockHeight);\n\n window.dispatchEvent(new SaveGameStateEvent());\n window.dispatchEvent(new ChargeLevelChangedEvent(this.id, this.chargeLevel));\n }\n\n /**\n * @param {number} load\n */\n setLoad(load) {\n if (this.player && this.player.hasOwnProperty('load')) {\n this.player.load = load;\n\n window.dispatchEvent(new SaveGameStateEvent());\n window.dispatchEvent(new EnergyUsageChangedEvent(this.playerType));\n }\n }\n\n /**\n * @param {number|string} ore\n */\n setOre(ore) {\n if (this.player && this.player.hasOwnProperty('ore')) {\n this.player.ore = parseInt(ore);\n\n window.dispatchEvent(new SaveGameStateEvent());\n window.dispatchEvent(new OreCountChangedEvent(this.playerType));\n }\n }\n\n /**\n * @param {Planet} planet\n */\n setPlanet(planet) {\n this.planet = planet;\n\n window.dispatchEvent(new UndiscoveredOreCountChangedEvent(this.playerType));\n }\n\n /**\n * @param {string} status\n * @param dispatchEvent\n */\n setPlanetRaidStatus(status, dispatchEvent = true) {\n this.planetRaidInfo.status = status;\n window.dispatchEvent(new SaveGameStateEvent());\n\n if (dispatchEvent) {\n window.dispatchEvent(new PlanetRaidStatusChangedEvent(this.playerType));\n }\n }\n\n /**\n * @param {number} currentBlockHeight\n */\n setPlanetShieldHealth(currentBlockHeight) {\n let health = 100;\n\n if (\n this.planetRaidInfo.isRaidActive()\n && currentBlockHeight\n && this.planetShieldInfo.block_start_raid\n ) {\n health = this.shieldHealthCalculator.calc(\n this.planetShieldInfo.planetary_shield,\n this.planetShieldInfo.block_start_raid,\n currentBlockHeight\n );\n }\n\n this.planetShieldHealth = health;\n\n window.dispatchEvent(new ShieldHealthChangedEvent(this.playerType));\n }\n\n /**\n * @param {PlanetaryShieldInfoDTO} info\n * @param {number} currentBlockHeight\n */\n setPlanetShieldInfo(info, currentBlockHeight) {\n this.planetShieldInfo = info;\n\n this.setPlanetShieldHealth(currentBlockHeight);\n }\n\n /**\n * @param {Player} player\n */\n setPlayer(player) {\n this.player = player;\n\n window.dispatchEvent(new AlphaCountChangedEvent(this.playerType));\n window.dispatchEvent(new EnergyUsageChangedEvent(this.playerType));\n window.dispatchEvent(new OreCountChangedEvent(this.playerType));\n }\n\n /**\n * @param {number} capacity\n */\n setPlayerCapacity(capacity) {\n if (this.player && this.player.hasOwnProperty('capacity')) {\n this.player.capacity = capacity;\n\n window.dispatchEvent(new SaveGameStateEvent());\n window.dispatchEvent(new EnergyUsageChangedEvent(this.playerType));\n }\n }\n\n /**\n * @param {Struct[]} structs\n */\n setStructs(structs) {\n this.structs = {};\n structs.forEach(struct => {\n this.structs[struct.id] = struct;\n });\n\n window.dispatchEvent(new StructCountChangedEvent(this.playerType));\n window.dispatchEvent(new TrackDestroyedStructsEvent(this.playerType));\n }\n\n /**\n * @param {number} structsLoad\n */\n setStructsLoad(structsLoad) {\n if (this.player && this.player.hasOwnProperty('structs_load')) {\n this.player.structs_load = structsLoad;\n\n window.dispatchEvent(new SaveGameStateEvent());\n window.dispatchEvent(new EnergyUsageChangedEvent(this.playerType));\n }\n }\n\n /**\n * @param {Struct} struct\n */\n setStruct(struct) {\n this.structs[struct.id] = struct;\n\n window.dispatchEvent(new StructCountChangedEvent(this.playerType));\n window.dispatchEvent(new TrackDestroyedStructEvent(this.playerType, struct.id));\n }\n\n /**\n * @param {number} currentBlockHeight\n * @return {number}\n */\n getCharge(currentBlockHeight) {\n return this.chargeCalculator.calcCharge(currentBlockHeight, this.lastActionBlockHeight);\n }\n\n getForeignRaidInfoSource() {\n return this.foreignRaidInfoKeyPlayer;\n }\n\n getPlanetId() {\n if (!this.planetUsedForMap) {\n return null;\n }\n\n if (this.planet) {\n return this.planet.id;\n } else if (this.isRaidDependent()) {\n return this.planetRaidInfo.planet_id;\n }\n\n return null;\n }\n\n /**\n * @return {string}\n */\n getPlanetShieldHealth() {\n return this.planetShieldHealth + \"%\";\n }\n\n /**\n * @return {string}\n */\n getTag() {\n return this.player && this.player.tag && this.player.tag.length > 0\n ? `[${this.player.tag}]`\n : '';\n }\n\n /**\n * @return {string}\n */\n getUsername() {\n return this.player && this.player.username && this.player.username.length > 0\n ? `${this.player.username}`\n : `PID# ${this.id}`;\n }\n\n /**\n * @return {boolean}\n */\n isRaidDependent() {\n return this.playerType !== PLAYER_TYPES.PLAYER;\n }\n\n /**\n * @return {boolean}\n */\n hasForeignRaidInfo() {\n return !!this.foreignRaidInfoKeyPlayer;\n }\n\n /**\n * @param {string} fleetId\n */\n isFleetOwner(fleetId) {\n return fleetId && this.fleet?.id === fleetId;\n }\n\n}\n","import {AMBITS} from \"../constants/Ambits\";\nimport {MAP_TILE_TYPES} from \"../constants/MapConstants\";\n\nexport class Planet {\n constructor() {\n this.id = null;\n this.owner = null;\n this.map = null;\n this.space_slots = null;\n this.air_slots = null;\n this.land_slots = null;\n this.water_slots = null;\n this.name = null;\n this.undiscovered_ore = null;\n\n // TODO: Temporary, for map testing until ornament system chain side is built\n this.ornaments = new Map([\n [AMBITS.SPACE, []],\n [AMBITS.AIR, []],\n [AMBITS.LAND, []],\n [AMBITS.WATER, []]\n ]);\n }\n\n /**\n * Get a list of the planet's available ambits.\n *\n * @return {string[]}\n */\n getAmbits() {\n const ambits = [];\n if (this.space_slots && this.space_slots > 0) {\n ambits.push(AMBITS.SPACE);\n }\n if (this.air_slots && this.air_slots > 0) {\n ambits.push(AMBITS.AIR);\n }\n if (this.land_slots && this.land_slots > 0) {\n ambits.push(AMBITS.LAND);\n }\n if (this.water_slots && this.water_slots > 0) {\n ambits.push(AMBITS.WATER);\n }\n return ambits;\n }\n\n /**\n * Get a map of ambits to ambit map ornaments.\n *\n * @return {Map}\n */\n getOrnaments() {\n return this.ornaments;\n }\n\n /**\n * @param {string} ambit\n * @param {StructTypeCollection} structTypes\n * @return {number}\n */\n getPlanetarySlotsByAmbit(ambit, structTypes) {\n const property = `${ambit.toLowerCase()}_slots`;\n\n if (this[property] === undefined) {\n throw new Error(`Invalid ambit: ${ambit}`);\n }\n\n if (structTypes.fetchAllByTileTypeAndAmbit(MAP_TILE_TYPES.PLANETARY_SLOT, ambit).length > 0) {\n return this[property];\n }\n\n return 0;\n }\n}","import {RAID_STATUS} from \"../constants/RaidStatus\";\n\nexport class PlanetRaid {\n constructor() {\n this.planet_id = null;\n this.planet_owner = null;\n this.fleet_id = null;\n this.fleet_owner = null;\n this.status = null;\n this.updated_at = null;\n }\n\n isRaidActive() {\n return (\n this.status === RAID_STATUS.INITIATED\n || this.status === RAID_STATUS.ONGOING\n );\n }\n}","export class Player {\n constructor() {\n this.id = null;\n this.primary_address = null;\n this.guild_id = null;\n this.substation_id = null;\n this.planet_id = null;\n this.fleet_id = null;\n this.username = null;\n this.pfp = null;\n this.guild_name = null;\n this.tag = null;\n this.alpha = null;\n this.ore = null;\n this.load = null;\n this.structs_load = null;\n this.capacity = null;\n this.connection_capacity = null;\n }\n\n /**\n * @return {string}\n */\n getTag() {\n return (this.tag && this.tag.length > 0) ? `[${this.tag}]` : '';\n }\n\n /**\n * @return {string}\n */\n getUsername() {\n return (this.username && this.username.length > 0) ? `${this.username}` : 'Name Redacted';\n }\n}","export class PlayerAddress {\n constructor() {\n this.address = null;\n this.player_id = null;\n this.guild_id = null;\n this.status = null;\n\n this.ip = null;\n this.user_agent = null;\n\n this.block_time = null;\n\n this.permissions = null;\n\n this.alpha = null;\n\n this.isOnlyManagingDevice = false;\n }\n}","export class PlayerAddressPending {\n constructor() {\n this.code = null;\n this.address = null;\n this.signature = null;\n this.pubkey = null;\n this.ip = null;\n this.user_agent = null;\n this.permissions = null;\n this.created_at = null;\n this.updated_at = null;\n }\n}","export class PlayerOreStats {\n constructor() {\n this.player_id = null;\n this.forfeited = null;\n this.mined = null;\n this.seized = null;\n }\n}","export class Setting {\n constructor() {\n\n /** @type {string|null} */\n this.name = null;\n\n /** @type {string|null} */\n this.value = null;\n\n /** @type {string|null} */\n this.updated_at = null;\n }\n\n}\n","export class Settings {\n \n constructor() {\n this.settings = new Map();\n }\n\n /** @param {Setting} setting */\n add(setting) {\n this.settings.set(setting.name, setting);\n }\n\n /**\n * @param {string} settingName\n * @return {string|number|null}\n */\n get(settingName) {\n if (!this.settings.has(settingName)) {\n return null;\n }\n\n const value = this.settings.get(settingName).value;\n const parsedValue = parseInt(value);\n\n return isNaN(parsedValue) ? value : parsedValue;\n }\n\n}","import {STRUCT_STATUS_FLAGS} from \"../constants/StructConstants\";\n\nexport class Struct {\n constructor() {\n /** @type {string|null} */\n this.id = null;\n\n /** @type {number|null} */\n this.index = null;\n\n /** @type {number|null} - FK to struct_type.id */\n this.type = null;\n\n /** @type {string|null} */\n this.creator = null;\n\n /** @type {string|null} - Player ID who owns this struct */\n this.owner = null;\n\n /** @type {string|null} - \"fleet\" or \"planet\" */\n this.location_type = null;\n\n /** @type {string|null} - Fleet ID or Planet ID */\n this.location_id = null;\n\n /** @type {string|null} - \"space\", \"air\", \"land\", \"water\" */\n this.operating_ambit = null;\n\n /** @type {number|null} */\n this.slot = null;\n\n /** @type {number|null} */\n this.health = null;\n\n /** @type {number|null} */\n this.status = null;\n\n /** @type {string|null} the ID of the struct that this struct is protecting => */\n this.protected_struct_id = null;\n\n /** @type {string[]} the IDs of the structs that are defending this struct <=> */\n this.defending_struct_ids = [];\n\n /** @type {number|null} */\n this.destroyed_block = null;\n }\n\n /**\n * @return {boolean}\n */\n isMaterialized() {\n return (this.status & STRUCT_STATUS_FLAGS.MATERIALIZED) > 0;\n }\n\n /**\n * @return {boolean}\n */\n isBuilt() {\n return (this.status & STRUCT_STATUS_FLAGS.BUILT) > 0;\n }\n\n /**\n * @return {boolean}\n */\n isOnline() {\n return (this.status & STRUCT_STATUS_FLAGS.ONLINE) > 0;\n }\n\n /**\n * @return {boolean}\n */\n isStored() {\n return (this.status & STRUCT_STATUS_FLAGS.STORED) > 0;\n }\n\n /**\n * @return {boolean}\n */\n isDefending() {\n return !!this.protected_struct_id;\n }\n\n /**\n * @return {boolean}\n */\n isDefended() {\n return this.defending_struct_ids.length > 0;\n }\n\n /**\n * @return {boolean}\n */\n isHidden() {\n return (this.status & STRUCT_STATUS_FLAGS.HIDDEN) > 0;\n }\n\n /**\n * @return {boolean}\n */\n isDestroyed() {\n return (this.status & STRUCT_STATUS_FLAGS.DESTROYED) > 0;\n }\n\n /**\n * @return {boolean}\n */\n isLocked() {\n return (this.status & STRUCT_STATUS_FLAGS.LOCKED) > 0;\n }\n\n /**\n * @param {number} flag see STRUCT_STATUS_FLAGS\n */\n addStatusFlag(flag) {\n this.status |= flag;\n }\n\n /**\n * @param {number} flag see STRUCT_STATUS_FLAGS\n */\n removeStatusFlag(flag) {\n this.status &= ~flag;\n }\n}\n\n","import {\n STRUCT_PRIMARY_WEAPON,\n STRUCT_SECONDARY_WEAPON,\n STRUCT_PASSIVE_WEAPONRY,\n STRUCT_UNIT_DEFENSES,\n STRUCT_ORE_RESERVE_DEFENSES,\n STRUCT_PLANETARY_DEFENSES,\n STRUCT_PLANETARY_MINING,\n STRUCT_PLANETARY_REFINERY,\n STRUCT_POWER_GENERATION\n} from \"../constants/StructConstants\";\n\nexport class StructType {\n\n constructor() {\n this.id = null;\n this.type = null;\n\n /** @type {string|null} */\n this.category = null;\n\n this.build_limit = null;\n this.build_difficulty = null;\n this.build_draw = null;\n this.max_health = null;\n this.passive_draw = null;\n this.possible_ambit = null;\n this.movable = null;\n this.slot_bound = null;\n this.primary_weapon = null;\n this.primary_weapon_label = null;\n this.primary_weapon_description = null;\n this.primary_weapon_control = null;\n this.primary_weapon_charge = null;\n this.primary_weapon_ambits = null;\n this.primary_weapon_ambits_array = null;\n this.primary_weapon_targets = null;\n this.primary_weapon_shots = null;\n this.primary_weapon_damage = null;\n this.primary_weapon_blockable = null;\n this.primary_weapon_counterable = null;\n this.primary_weapon_recoil_damage = null;\n this.primary_weapon_shot_success_rate_numerator = null;\n this.primary_weapon_shot_success_rate_denominator = null;\n this.secondary_weapon = null;\n this.secondary_weapon_label = null;\n this.secondary_weapon_description = null;\n this.secondary_weapon_control = null;\n this.secondary_weapon_charge = null;\n this.secondary_weapon_ambits = null;\n this.secondary_weapon_ambits_array = null;\n this.secondary_weapon_targets = null;\n this.secondary_weapon_shots = null;\n this.secondary_weapon_damage = null;\n this.secondary_weapon_blockable = null;\n this.secondary_weapon_counterable = null;\n this.secondary_weapon_recoil_damage = null;\n this.secondary_weapon_shot_success_rate_numerator = null;\n this.secondary_weapon_shot_success_rate_denominator = null;\n this.passive_weaponry = null;\n this.passive_weaponry_label = null;\n this.passive_weaponry_description = null;\n this.unit_defenses = null;\n this.unit_defenses_label = null;\n this.unit_defenses_description = null;\n this.ore_reserve_defenses = null;\n this.ore_reserve_defenses_label = null;\n this.ore_reserve_defenses_description = null;\n this.planetary_defenses = null;\n this.planetary_defenses_label = null;\n this.planetary_defenses_description = null;\n this.planetary_mining = null;\n this.planetary_mining_label = null;\n this.planetary_mining_description = null;\n this.planetary_refinery = null;\n this.planetary_refinery_label = null;\n this.planetary_refinery_description = null;\n this.power_generation = null;\n this.power_generation_label = null;\n this.power_generation_description = null;\n this.activate_charge = null;\n this.build_charge = null;\n this.defend_change_charge = null;\n this.move_charge = null;\n this.ore_mining_charge = null;\n this.ore_refining_charge = null;\n this.stealth_activate_charge = null;\n this.attack_reduction = null;\n this.attack_counterable = null;\n this.stealth_systems = null;\n this.counter_attack = null;\n this.counter_attack_same_ambit = null;\n this.post_destruction_damage = null;\n this.generating_rate = null;\n this.planetary_shield_contribution = null;\n this.ore_mining_difficulty = null;\n this.ore_refining_difficulty = null;\n this.unguided_defensive_success_rate_numerator = null;\n this.unguided_defensive_success_rate_denominator = null;\n this.guided_defensive_success_rate_numerator = null;\n this.guided_defensive_success_rate_denominator = null;\n this.trigger_raid_defeat_by_destruction = null;\n this.updated_at = null;\n this.possible_ambit_array = null;\n this.is_command = null;\n this.drive_label = null;\n this.drive_description = null;\n this['class'] = null;\n this.class_abbreviation = null;\n this.default_cosmetic_model_number = null;\n this.default_cosmetic_name = null;\n }\n\n /**\n * Checks if the struct type has a primary weapon.\n * @return {boolean}\n */\n hasPrimaryWeapon() {\n return this.primary_weapon\n && this.primary_weapon !== STRUCT_PRIMARY_WEAPON.NO_ACTIVE_WEAPONRY;\n }\n\n /**\n * Checks if the struct type has a secondary weapon.\n * @return {boolean}\n */\n hasSecondaryWeapon() {\n return this.secondary_weapon\n && this.secondary_weapon !== STRUCT_SECONDARY_WEAPON.NO_ACTIVE_WEAPONRY;\n }\n\n /**\n * Checks if the struct type has passive weaponry.\n * @return {boolean}\n */\n hasPassiveWeaponry() {\n return this.passive_weaponry\n && this.passive_weaponry !== STRUCT_PASSIVE_WEAPONRY.NO_PASSIVE_WEAPONRY;\n }\n\n /**\n * Checks if the struct type has unit defenses.\n * @return {boolean}\n */\n hasUnitDefenses() {\n return this.unit_defenses\n && this.unit_defenses !== STRUCT_UNIT_DEFENSES.NO_UNIT_DEFENSES;\n }\n\n /**\n * Checks if the struct type has ore reserve defenses.\n * @return {boolean}\n */\n hasOreReserveDefenses() {\n return this.ore_reserve_defenses\n && this.ore_reserve_defenses !== STRUCT_ORE_RESERVE_DEFENSES.NO_ORE_RESERVE_DEFENSES;\n }\n\n /**\n * Checks if the struct type has planetary defenses.\n * @return {boolean}\n */\n hasPlanetaryDefenses() {\n return this.planetary_defenses\n && this.planetary_defenses !== STRUCT_PLANETARY_DEFENSES.NO_PLANETARY_DEFENSE;\n }\n\n /**\n * Checks if the struct type has planetary mining capability.\n * @return {boolean}\n */\n hasPlanetaryMining() {\n return this.planetary_mining\n && this.planetary_mining !== STRUCT_PLANETARY_MINING.NO_PLANETARY_MINING;\n }\n\n /**\n * Checks if the struct type has planetary refinery capability.\n * @return {boolean}\n */\n hasPlanetaryRefinery() {\n return this.planetary_refinery\n && this.planetary_refinery !== STRUCT_PLANETARY_REFINERY.NO_PLANETARY_REFINERY;\n }\n\n /**\n * Checks if the struct type has power generation capability.\n * @return {boolean}\n */\n hasPowerGeneration() {\n return this.power_generation\n && this.power_generation !== STRUCT_POWER_GENERATION.NO_POWER_GENERATION;\n }\n\n /**\n * Checks if the struct type has the ability to move.\n * @return {boolean}\n */\n isMovable() {\n return this.movable;\n }\n\n /**\n * Checks if the struct type has defensive maneuver capability.\n * @return {boolean}\n */\n hasDefensiveManeuver() {\n return this.unit_defenses\n && this.unit_defenses === STRUCT_UNIT_DEFENSES.DEFENSIVE_MANEUVER;\n }\n\n /**\n * Checks if the struct type has signal jamming capability.\n * @return {boolean}\n */\n hasSignalJamming() {\n return this.unit_defenses\n && this.unit_defenses === STRUCT_UNIT_DEFENSES.SIGNAL_JAMMING;\n }\n}","import {\n STRUCT_EQUIPMENT,\n STRUCT_STILL_LAYERS,\n STRUCT_WATER_RIPPLE,\n STRUCT_WEAPON_SYSTEM\n} from \"../constants/StructConstants\";\n\nexport class StructTypeArtSet {\n constructor(structType) {\n this.structType = structType;\n this[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = '';\n this[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = '';\n this[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = '';\n this[STRUCT_WEAPON_SYSTEM.SECONDARY_WEAPON] = '';\n this[STRUCT_EQUIPMENT.PASSIVE_WEAPONRY] = '';\n this[STRUCT_EQUIPMENT.UNIT_DEFENSES] = '';\n this[STRUCT_EQUIPMENT.ORE_RESERVE_DEFENSES] = '';\n this[STRUCT_EQUIPMENT.PLANETARY_DEFENSES] = '';\n this[STRUCT_EQUIPMENT.PLANETARY_MINING] = '';\n this[STRUCT_EQUIPMENT.PLANETARY_REFINERY] = '';\n this[STRUCT_EQUIPMENT.POWER_GENERATION] = '';\n this[STRUCT_WATER_RIPPLE] = '';\n }\n}\n\n","import {MAP_TILE_TYPES} from \"../constants/MapConstants\";\nimport {STRUCT_CATEGORIES} from \"../constants/StructConstants\";\nimport {StructType} from \"./StructType\";\n\nexport class StructTypeCollection {\n constructor() {\n this.structTypes = [];\n }\n\n /**\n * @param {StructType[]} structTypes\n */\n setStructTypes(structTypes) {\n this.structTypes = structTypes;\n }\n\n /**\n * @param {String}type\n * @return {StructType|undefined}\n */\n getStructType(type) {\n return this.structTypes.find((structType) =>\n structType.type === type\n && !this.isExcluded(structType)\n );\n }\n\n /**\n * @param {number} id\n * @return {StructType}\n */\n getStructTypeById(id) {\n return this.structTypes.find((structType) =>\n structType.id === id\n && !this.isExcluded(structType)\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {boolean}\n */\n isExcluded(structType) {\n return structType.type.toLowerCase() === 'continental power plant'\n || structType.type.toLowerCase() === 'world engine';\n }\n\n /**\n * @param {string} tileType\n * @param {string} ambit\n * @return {StructType[]}\n */\n fetchAllByTileTypeAndAmbit(tileType, ambit) {\n return this.structTypes.filter((structType) =>\n structType.possible_ambit_array.includes(ambit.toLowerCase())\n && (\n (\n tileType === MAP_TILE_TYPES.PLANETARY_SLOT\n && structType.category === STRUCT_CATEGORIES.PLANET\n && !this.isExcluded(structType)\n ) || (\n tileType === MAP_TILE_TYPES.FLEET\n && structType.category === STRUCT_CATEGORIES.FLEET\n && !structType.is_command\n ) || (\n tileType === MAP_TILE_TYPES.COMMAND\n && structType.is_command\n )\n )\n );\n }\n}","import {TASK} from \"../constants/TaskConstants\";\nimport {TASK_STATUS} from \"../constants/TaskStatus\";\nimport {TaskStateFactory} from \"../factories/TaskStateFactory\";\nimport {TaskState} from \"./TaskState\";\nimport {TaskWorkerChangedEvent} from \"../events/TaskWorkerChangedEvent\";\nimport {TaskStateChangedEvent} from \"../events/TaskStateChangedEvent\";\n\n\nexport class TaskProcess {\n\n /**\n * @param {TaskState} _state\n */\n constructor(state) {\n this.worker = null;\n this.state = state;\n }\n\n start() {\n if (this.isCompleted()){\n console.log('Cannot start Completed state');\n return false;\n }\n\n if (this.isTerminated()){\n console.log('Cannot start Terminated state');\n return false;\n }\n\n if (this.hasWorker()) {\n this.worker.terminate();\n }\n\n this.worker = new Worker(TASK.WORKER_PATH);\n\n this.worker.onmessage = async function (result) {\n const taskStateFactory = new TaskStateFactory();\n let state = taskStateFactory.make(result.data[0]);\n window.dispatchEvent(new TaskWorkerChangedEvent(state));\n }\n\n // Send the initial state to the Worker\n if (!this.isRunning()) {\n this.state.status = TASK_STATUS.STARTING;\n }\n this.clearEstimatedBlockStartOffset();\n this.worker.postMessage([this.state]);\n return true\n }\n\n /**\n * @param {TaskState} new_state\n */\n replaceState(new_state) {\n switch (this.state.status) {\n case TASK_STATUS.INITIATED:\n case TASK_STATUS.PAUSED:\n new_state.setStatus(this.state.status);\n this.setState(new_state);\n break;\n\n case TASK_STATUS.STARTING:\n case TASK_STATUS.RUNNING:\n case TASK_STATUS.TERMINATED:\n this.setState(new_state);\n this.start();\n break;\n\n case TASK_STATUS.COMPLETED:\n console.log(\"Tried to spawn new state over completed task \" + this.state.getPID());\n break;\n }\n }\n\n pause(estimatedHashrate, estimatedBlockStartOffset) {\n this.clearWorker();\n this.setEstimatedHashrateAndBlockStartOffset(estimatedHashrate, estimatedBlockStartOffset);\n this.setStatus(TASK_STATUS.PAUSED);\n }\n\n terminate() {\n this.clearWorker();\n this.setStatus(TASK_STATUS.TERMINATED);\n }\n\n clearWorker() {\n this.worker.terminate();\n this.worker = null;\n }\n\n /**\n * @return {string}\n */\n getPID(){\n return this.state.getObjectId();\n }\n\n /**\n * @return {boolean}\n */\n hasWorker() {\n return (this.worker !== null);\n }\n\n /**\n * @return {boolean}\n */\n isInitiated() {\n return this.state.status === TASK_STATUS.INITIATED;\n }\n\n /**\n * @return {boolean}\n */\n isStarting() {\n return this.state.status === TASK_STATUS.STARTING;\n }\n\n /**\n * @return {boolean}\n */\n isWaiting() {\n return this.state.status === TASK_STATUS.WAITING;\n }\n\n /**\n * @return {boolean}\n */\n isRunning() {\n return this.state.status === TASK_STATUS.RUNNING;\n }\n\n /**\n * @return {boolean}\n */\n isPaused() {\n return this.state.status === TASK_STATUS.PAUSED;\n }\n\n /**\n * @return {boolean}\n */\n isTerminated() {\n return this.state.status === TASK_STATUS.TERMINATED;\n }\n\n /**\n * @return {boolean}\n */\n isCompleted() {\n return this.state.status === TASK_STATUS.COMPLETED;\n }\n\n canStart() {\n return this.isInitiated() || this.isPaused();\n }\n\n canPause() {\n return this.isStarting() || this.isWaiting() || this.isRunning();\n }\n\n canResume() {\n return !(this.isRunning() || this.isWaiting() || this.isStarting() || this.isCompleted());\n }\n\n canSweep() {\n return this.isTerminated() || this.isCompleted();\n }\n\n /**\n * @param {string} new_status\n */\n setStatus(new_status) {\n this.state.status = new_status;\n this.dispatchProgress();\n }\n\n /**\n * @param {TaskState} new_state\n */\n setState(new_state) {\n this.state = new_state;\n this.dispatchProgress();\n }\n\n /**\n * @param {number} estimatedHashrate\n * @param {number} estimatedBlockStartOffset\n */\n setEstimatedHashrateAndBlockStartOffset(estimatedHashrate, estimatedBlockStartOffset){\n this.state.estimated_hashrate = estimatedHashrate;\n this.state.estimated_block_start_offset = estimatedBlockStartOffset;\n }\n\n clearEstimatedBlockStartOffset() {\n this.state.estimated_block_start_offset = 0;\n }\n\n dispatchProgress(){\n window.dispatchEvent(new TaskStateChangedEvent(this.state));\n }\n}\n","import {TASK} from \"../constants/TaskConstants\";\nimport {TASK_STATUS} from \"../constants/TaskStatus\";\nimport {sha256} from \"js-sha256\";\n\n\nexport class TaskState {\n constructor() {\n this.status = TASK_STATUS.INITIATED;\n this.object_id = null;\n this.target_id = null;\n this.object_type = null;\n this.task_type = null;\n this.identity = null;\n\n this.prefix = null; // Entire string up to NONCE\n this.postfix = null; // Optional IDENTITY\n this.nonce_start = Math.floor(Math.random() * 10000000000);\n this.nonce_current = this.nonce_start;\n this.iterations = 0;\n this.iterations_since_last_start = 0;\n this.process_start_time = new Date();\n this.process_end_time = null;\n this.difficulty_start = null;\n this.difficulty_target = null;\n this.block_start = null;\n this.block_checkpoint = null;\n this.block_checkpoint_time = null;\n this.block_current_estimated = null;\n this.result_exists = false;\n this.result_message = null;\n this.result_nonce = null;\n this.result_hash = null;\n this.result_difficulty = 0;\n\n this.estimated_hashrate = TASK.HASHRATE_INITIAL_ESTIMATE;\n this.estimated_block_start_offset = 0;\n this.last_status_change_time = new Date();\n }\n\n /**\n * @return {boolean}\n */\n isCompleted() {\n return this.status === TASK_STATUS.COMPLETED;\n }\n\n /**\n * @return {boolean}\n */\n isWaiting() {\n return this.status === TASK_STATUS.WAITING;\n }\n\n /**\n * @return {boolean}\n */\n isRunning() {\n return this.status === TASK_STATUS.RUNNING;\n }\n\n /**\n * @return {string}\n */\n toLog(){\n return JSON.stringify(this, null, 2);\n }\n\n /**\n * @param {number} block\n */\n setBlockCheckpoint(block) {\n this.block_checkpoint_time = new Date();\n this.block_checkpoint = block;\n this.block_current_estimated = block;\n }\n\n /**\n * @param {string} status\n */\n setStatus(status) {\n this.last_status_change_time = new Date();\n this.status = status\n }\n\n /**\n * @param {string} nonce\n * @param {string} message\n * @param {string} hash\n * @param {number} difficulty\n */\n setResult(nonce, message, hash, difficulty) {\n this.status = TASK_STATUS.COMPLETED;\n this.process_end_time = new Date();\n this.result_exists = true;\n this.result_message = message;\n this.result_nonce = nonce + this.postfix;\n this.result_hash = hash;\n this.result_difficulty = difficulty;\n }\n\n /**\n * @param {number} difficulty\n */\n setPreviousResult(difficulty) {\n this.status = TASK_STATUS.COMPLETED;\n this.process_end_time = new Date();\n this.result_difficulty = difficulty;\n }\n\n getNextNonce() {\n this.iterations++;\n return ++this.nonce_current;\n }\n\n getObjectId() {\n return this.object_id;\n }\n\n /**\n * @return {string}\n */\n getPID() {\n return this.object_id;\n }\n\n /**\n * Calculate percent complete using getBlockRemainingEstimate.\n *\n * @param {number} hashrate\n * @param {number} blockStartOffset\n * @return {number} Percent complete (0.0 to 1.0)\n */\n getPercentCompleteEstimate(hashrate = this.getHashrate(), blockStartOffset = this.estimated_block_start_offset) {\n if (this.isCompleted()) {\n return 1.0;\n }\n\n // Age represents blocks processed since start\n const age = this.block_current_estimated - this.block_start;\n\n // Get the blocks remaining using current hash rate\n const blocksRemaining = this.getBlockRemainingEstimate(hashrate, blockStartOffset);\n\n // Total blocks needed = blocks already processed + blocks remaining\n const totalBlocks = age + blocksRemaining;\n\n // Percent complete = blocks processed / total blocks needed\n const percent = totalBlocks > 0 ? age / totalBlocks : 0.0;\n\n return Math.min(1.0, Math.max(0.0, percent));\n }\n\n\n /**\n * @param {number} hashrate\n * @param {number} blockStartOffset\n * @return {number}\n */\n getBlockRemainingEstimate(hashrate= this.getHashrate(), blockStartOffset = this.estimated_block_start_offset) {\n if (this.isCompleted()) {\n return 0;\n }\n\n const currentAge = this.getCurrentAgeEstimate()\n\n const baseDifficultyRange = this.difficulty_target;\n const maxBlocksToCheck = TASK.MAX_BLOCKS_WHEN_ESTIMATING;\n const blockTimeSeconds = TASK.ESTIMATED_BLOCK_TIME;\n\n let cumulativeExpectedSuccesses = 0;\n let blocksAhead = 0;\n\n while (cumulativeExpectedSuccesses < 1 && blocksAhead < maxBlocksToCheck) {\n if (blocksAhead > blockStartOffset) {\n const ageAtBlock = currentAge + blocksAhead;\n const difficulty = this.getCalculatedDifficulty(ageAtBlock, baseDifficultyRange);\n const successProbability = 1 / Math.pow(16, difficulty);\n\n // Expected number of successful hashes in this block\n const expectedSuccessesInBlock = hashrate * blockTimeSeconds * successProbability;\n cumulativeExpectedSuccesses += expectedSuccessesInBlock;\n }\n blocksAhead++;\n }\n\n return Math.min(blocksAhead, maxBlocksToCheck);\n }\n\n\n /**\n * @param {number} hashrate\n * @param {number} blockStartOffset\n * @return {number}\n */\n getTimeRemainingEstimate(hashrate= this.getHashrate(), blockStartOffset = this.estimated_block_start_offset) {\n const blocksAhead = this.getBlockRemainingEstimate(hashrate, blockStartOffset);\n return blocksAhead * TASK.ESTIMATED_BLOCK_TIME;\n }\n\n /**\n * @return {number}\n */\n getHashrate() {\n if (!this.isRunning()) {\n return this.estimated_hashrate;\n }\n\n const current_time = new Date();\n return this.iterations_since_last_start / (Math.floor((current_time - this.last_status_change_time)) * 1);\n }\n\n /**\n * @param {string} nonce\n * @return {string}\n */\n getMessage(nonce) {\n return this.prefix + nonce + this.postfix;\n }\n\n /**\n * @return {number}\n */\n getCurrentAgeEstimate() {\n const current_time = new Date();\n const estimated_blocks_past = Math.floor((current_time - this.block_checkpoint_time) / TASK.ESTIMATED_BLOCK_TIME);\n this.block_current_estimated = Math.floor(this.block_checkpoint + estimated_blocks_past);\n\n return this.block_current_estimated - this.block_start;\n }\n\n /**\n * @return {number}\n */\n getCurrentDifficulty(){\n const age = this.getCurrentAgeEstimate();\n\n if (age <= 1) {\n return 64;\n }\n\n // Using logarithmic function to calculate difficulty\n let difficulty = 64 - Math.floor(Math.log10(age) / Math.log10(this.difficulty_target) * 63);\n\n return Math.max(1, difficulty)\n }\n\n /**\n * Calculate difficulty from age\n *\n * @param {number} age - Current age in blocks\n * @param {number} baseDifficultyRange - Base difficulty range\n * @returns {number} Difficulty (number of leading zeros required in hash)\n */\n getCalculatedDifficulty(age, baseDifficultyRange) {\n if (age <= 1) {\n return 64;\n }\n\n const difficulty = 64 - Math.floor(\n Math.log10(age) / Math.log10(baseDifficultyRange) * 63\n );\n\n return Math.max(1, difficulty);\n }\n\n /**\n * Check to see if Hash was built for an acceptable block height\n */\n checkResultHashDifficulty() {\n return this.result_difficulty >= this.getCurrentDifficulty();\n }\n}","export class Transaction {\n constructor() {\n this.time = null;\n this.id = null;\n this.object_id = null;\n this.address = null;\n this.counterparty = null;\n this.counterparty_player_id = null;\n this.counterparty_username = null;\n this.amount = null;\n this.amount_p = null;\n this.block_height = null;\n this.action = null;\n this.direction = null;\n this.denom = null;\n }\n}","export class UserAgent {\n\n /**\n * @param {string} userAgent\n */\n constructor(userAgent) {\n this.userAgent = userAgent;\n }\n\n /**\n * @return {string}\n */\n getDeviceTypeAndOS() {\n const match = this.userAgent.match(/(?<=\\()[^)]+/);\n return match ? match[0] : 'Unknown OS';\n }\n\n /**\n * Many browsers are Chrome based so always check this one last.\n *\n * @return {string|null}\n */\n isChrome() {\n return /(?<= )Chrome(?=\\/)/i.test(this.userAgent)\n ? \"Chrome Based\"\n : null;\n }\n\n /**\n * @return {string|null}\n */\n isEdge() {\n return /(?<= )Edg(?=\\/)/i.test(this.userAgent)\n ? \"Edge\"\n : null;\n }\n\n /**\n * @return {string|null}\n */\n isFirefox() {\n return /(?<= )Firefox(?=\\/)/i.test(this.userAgent)\n ? \"Firefox\"\n : null;\n }\n\n /**\n * @return {string|null}\n */\n isOpera() {\n return /(?<= )OPR(?=\\/)/i.test(this.userAgent)\n ? \"Opera\"\n : null;\n }\n\n /**\n * @return {string|null}\n */\n isSafari() {\n return /(?<= )Safari(?=\\/)/i.test(this.userAgent) && !/(?<= )Chrome(?=\\/)/i.test(this.userAgent)\n ? \"Safari\"\n : null;\n }\n\n /**\n * @return {string|null}\n */\n isSamsungBrowser() {\n return /(?<= )SamsungBrowser(?=\\/)/i.test(this.userAgent)\n ? \"Samsung\"\n : null;\n }\n\n /**\n * If the browser is unrecognized just dump the user agent string without the device type and OS.\n *\n * @return {string}\n */\n isUnrecognizedBrowser() {\n const match = this.userAgent.match(/(?<=\\) ).*/);\n return match ? match[0] : 'Unrecognized';\n }\n\n /**\n * @return {string}\n */\n getBrowser() {\n return this.isEdge()\n || this.isFirefox()\n || this.isOpera()\n || this.isSafari()\n || this.isSamsungBrowser()\n || this.isChrome()\n || this.isUnrecognizedBrowser();\n }\n}","export class Work {\n\n constructor() {\n this.object_id = null;\n this.player_id = null;\n this.target_id = null;\n this.category = null;\n this.block_start = null;\n this.difficulty_target = null;\n }\n\n}\n","import {MenuPage} from \"../framework/MenuPage\";\n\nexport class MenuWaitingOptions {\n constructor() {\n this.navItemId = MenuPage.navItemAccountId\n this.waitingAnimation = 'DEFAULT';\n this.waitingMessage = null;\n this.hasDoNotCloseMessage = true;\n this.headerBtnLabel = '';\n this.headerBtnShowBackIcon = false;\n this.headerBtnHandler = () => {};\n this.initPageCode = () => {};\n }\n}","import {SUIInputStepper} from \"./SUIInputStepper.js\";\nimport {SUITooltip} from \"./SUITooltip.js\";\nimport {SUICheatsheet} from \"./SUICheatsheet.js\";\nimport {SUIOffcanvas} from \"./SUIOffcanvas\";\n\nexport class SUI {\n\n constructor() {\n this.inputStepper = new SUIInputStepper();\n this.tooltip = new SUITooltip();\n this.cheatsheet = new SUICheatsheet();\n this.offcanvas = new SUIOffcanvas();\n\n this.autoInitClasses = [\n this.inputStepper,\n this.tooltip,\n this.cheatsheet,\n this.offcanvas\n ];\n }\n\n /**\n * Auto initialize all SUI features\n */\n autoInitAll() {\n this.autoInitClasses.forEach(suiFeature => {\n suiFeature.autoInitAll();\n });\n }\n\n}\n","import {SUIFeature} from \"./SUIFeature.js\";\nimport {SUIUtil} from \"./SUIUtil.js\";\n\nexport class SUICheatsheet extends SUIFeature {\n\n /**\n * Used to track how long the mouse or touch screen is pressed.\n *\n * @type {number|null} a timeout ID\n */\n static pointerPressedTimer = null;\n\n /**\n * Set to true once the long-press timer fires and the cheatsheet is\n * actually shown. Used to suppress the synthetic `click` event that\n * browsers fire on release, so that releasing a long-press is not\n * treated as a click on the underlying element (e.g. an action bar\n * button).\n *\n * @type {boolean}\n */\n static cheatsheetWasShown = false;\n\n static OPEN_DELAY = 500;\n\n constructor() {\n super();\n this.util = new SUIUtil();\n this.suiThemes = [\n 'sui-theme-player',\n 'sui-theme-enemy',\n 'sui-theme-neutral'\n ];\n\n /** @type {SUICheatsheetContentBuilder} */\n this.contentBuilder = null;\n }\n\n /**\n * @param {SUICheatsheetContentBuilder} contentBuilder\n */\n setContentBuilder(contentBuilder) {\n this.contentBuilder = contentBuilder;\n }\n\n /**\n * @param {HTMLElement} cheatsheetElm\n */\n clearPointerPressedTimer(cheatsheetElm) {\n\n // If there is an existing cheatsheet, remove it.\n if (cheatsheetElm.parentElement) {\n cheatsheetElm.parentElement.removeChild(cheatsheetElm);\n }\n\n clearTimeout(SUICheatsheet.pointerPressedTimer);\n }\n\n /**\n * @param {HTMLElement} cheatsheetElm\n * @param {HTMLElement} cheatsheetTriggerElm\n */\n pointerPressed(cheatsheetElm, cheatsheetTriggerElm) {\n clearTimeout(SUICheatsheet.pointerPressedTimer);\n SUICheatsheet.cheatsheetWasShown = false;\n\n // If there is an existing cheatsheet, remove it.\n if (cheatsheetElm.parentElement) {\n cheatsheetElm.parentElement.removeChild(cheatsheetElm);\n }\n\n SUICheatsheet.pointerPressedTimer = setTimeout(function() {\n\n this.suiThemes.forEach(themeClass => {\n cheatsheetElm.classList.remove(themeClass);\n });\n\n if (cheatsheetTriggerElm.dataset.suiTheme) {\n cheatsheetElm.classList.add(`sui-theme-${cheatsheetTriggerElm.dataset.suiTheme}`);\n } else {\n cheatsheetElm.classList.add(this.suiThemes[0]);\n }\n\n // Append to body so cheatsheet is not clipped by ancestor overflow\n document.body.appendChild(cheatsheetElm);\n\n // Use the triggering elements data attribute as key to which cheatsheet to show.\n cheatsheetElm.innerHTML = this.contentBuilder.build({...cheatsheetTriggerElm.dataset});\n\n // Get viewport-relative coordinates for fixed positioning\n const triggerRect = cheatsheetTriggerElm.getBoundingClientRect();\n\n // Position cheatsheet in best fitting location (tries: top, right, bottom, left)\n this.util.positionBestFitFixed(cheatsheetElm, triggerRect);\n\n SUICheatsheet.cheatsheetWasShown = true;\n\n }.bind(this), SUICheatsheet.OPEN_DELAY);\n }\n\n /**\n * Initialize all cheatsheets on the page.\n */\n autoInitAll() {\n\n const cheatsheetElm = document.createElement('div');\n cheatsheetElm.id = `sui-cheatsheet-container`;\n cheatsheetElm.classList.add('sui-cheatsheet');\n cheatsheetElm.style.position = 'fixed';\n\n let pressedEvent = 'mousedown';\n let releasedEvent = 'mouseup';\n\n if (window.matchMedia(\"(pointer: coarse)\").matches) {\n pressedEvent = 'touchstart';\n releasedEvent = 'touchend';\n\n // Press and hold on mobile also fires a contextmenu event which we need to block\n // because it can obscure the cheatsheet and also cause inadvertent actions.\n document.body.addEventListener('contextmenu', (e) => {\n if (e.target.closest('[data-sui-cheatsheet]')) {\n e.preventDefault();\n }\n }, { passive: false });\n }\n\n document.body.addEventListener(pressedEvent, function (e) {\n const cheatsheetTriggerElm = e.target.closest('[data-sui-cheatsheet]');\n if (cheatsheetTriggerElm) {\n this.pointerPressed(cheatsheetElm, cheatsheetTriggerElm);\n }\n }.bind(this), { passive: true });\n\n // Suppress the synthetic `click` event that follows the release of a\n // long-press, so that long-pressing an element to view its cheatsheet\n // does not also trigger that element's click handler. Capture phase is\n // used so we run before any handler attached directly to the trigger.\n document.body.addEventListener('click', function (e) {\n if (\n SUICheatsheet.cheatsheetWasShown\n && e.target.closest('[data-sui-cheatsheet]')\n ) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n // Clear immediately on the success path so a subsequent quick\n // click on the same (or another) trigger is not also suppressed.\n SUICheatsheet.cheatsheetWasShown = false;\n }\n }, true);\n\n window.addEventListener(releasedEvent, function () {\n this.clearPointerPressedTimer(cheatsheetElm);\n // Fallback flag-clear in case no synthetic `click` follows the\n // release (e.g. touchcancel, user dragged off the trigger, or the\n // browser otherwise does not dispatch a click). The delay is long\n // enough to outlast platform synthetic-click latency (historically\n // up to ~300ms on touch) but short enough not to interfere with a\n // subsequent intentional tap.\n setTimeout(() => {\n SUICheatsheet.cheatsheetWasShown = false;\n }, 350);\n }.bind(this), { passive: true });\n }\n}\n","import {SUINotImplementedError} from \"./SUINotImplementedError\";\nimport {SUICheatsheetRenderer} from \"./SUICheatsheetRenderer\";\n\nexport class SUICheatsheetContentBuilder {\n\n constructor() {\n this.renderer = new SUICheatsheetRenderer();\n }\n\n /**\n * @param {object} dataset triggering element's data attributes\n * @return {string}\n */\n build(dataset) {\n throw new SUINotImplementedError(`build() not implemented for ${dataset.cheatsheetKey}`);\n }\n}\n","import {NumberFormatter} from \"../util/NumberFormatter\";\nimport {ChargeCalculator} from \"../util/ChargeCalculator\";\n\nexport class SUICheatsheetRenderer {\n\n constructor() {\n this.numberFormatter = new NumberFormatter();\n this.chargeCalculator = new ChargeCalculator();\n }\n\n\n /**\n * @param {number|null} batteryCost\n * @return {string}\n */\n renderBatteryCostHTML(batteryCost = null) {\n if (batteryCost === null) {\n return '';\n }\n\n let batteryChunks = '';\n\n const chargeLevel = this.chargeCalculator.calcChargeLevelByCharge(batteryCost);\n\n for(let i = 1; i < this.chargeCalculator.chargeLevelThresholds.length; i++) {\n const isFilledClass = i <= chargeLevel ? 'sui-mod-filled' : '';\n batteryChunks += `
`;\n }\n\n return `\n
\n ${batteryChunks}\n
\n `;\n }\n\n /**\n * @param {number|null} energyCost\n * @return {string}\n */\n renderEnergyCostHTML(energyCost = null) {\n if (energyCost === null) {\n return '';\n }\n return `\n
\n ${this.numberFormatter.format(energyCost)} \n
\n `;\n }\n\n /**\n * @param {string} titleText\n * @param {number|null} batteryCost\n * @param {number|null} energyCost\n * @return {string}\n */\n renderTitleHTML(\n titleText,\n batteryCost = null,\n energyCost = null\n ) {\n return `\n
\n
${titleText.toUpperCase()}
\n
\n ${this.renderBatteryCostHTML(batteryCost)}\n ${this.renderEnergyCostHTML(energyCost)}\n
\n
\n `;\n }\n\n /**\n * @param {string|null} descriptionText\n * @return {string}\n */\n renderDescriptionHTML(descriptionText) {\n if (!descriptionText) {\n return '';\n }\n return `\n
\n ${descriptionText}\n
\n `;\n }\n\n /**\n * @param {string|null} contextualMessageText\n * @return {string}\n */\n renderContextualMessageHTML(contextualMessageText) {\n if (!contextualMessageText) {\n return '';\n }\n return `\n
\n ${contextualMessageText}\n
\n `\n }\n\n /**\n * @param {string|null} propertySectionHTML\n * @return {string}\n */\n renderCheatsheetPropertySectionHTML(propertySectionHTML) {\n if (!propertySectionHTML) {\n return '';\n }\n return `\n
\n ${propertySectionHTML}\n
\n `;\n }\n\n /**\n * @param {string} titleText\n * @param {number|null} batteryCost\n * @param {number|null} energyCost\n * @param {string|null} descriptionText\n * @param {string|null} contextualMessageText\n * @param {string|null} propertySectionHTML\n * @return {string}\n */\n renderContentHTML(\n titleText,\n batteryCost = null,\n energyCost = null,\n descriptionText = null,\n contextualMessageText = null,\n propertySectionHTML = null\n ) {\n return `\n
\n \n ${this.renderTitleHTML(titleText, batteryCost, energyCost)}\n \n
\n ${this.renderDescriptionHTML(descriptionText)}\n \n ${this.renderCheatsheetPropertySectionHTML(propertySectionHTML)}\n \n ${this.renderContextualMessageHTML(contextualMessageText)}\n
\n `;\n }\n\n /**\n * @param {string} titleText\n * @param {string} descriptionText\n * @return {string}\n */\n renderContentForEmptyTileHTML(\n titleText,\n descriptionText\n ) {\n return this.renderContentHTML(\n titleText,\n null,\n null,\n descriptionText\n );\n }\n}","import {SUINotImplementedError} from \"./SUINotImplementedError.js\";\n\nexport class SUIFeature {\n\n /**\n * Auto initialize feature\n */\n autoInitAll() {\n throw new SUINotImplementedError();\n }\n\n}\n","import {SUIFeature} from \"./SUIFeature.js\";\n\nexport class SUIInputStepper extends SUIFeature {\n\n /**\n * Ensure that the number is a number between the min or max value or the empty string.\n *\n * @param {string|number} value\n * @param {number} min\n * @param {number} max\n * @return {number|string}\n */\n filterNumberInput(value, min, max) {\n let cleanValue = `${value}`.replace(/^[^0-9]*$/, '');\n\n if (cleanValue === '') {\n return cleanValue;\n }\n\n cleanValue = parseInt(cleanValue);\n cleanValue = Math.max(cleanValue, min);\n cleanValue = Math.min(cleanValue, max);\n\n return cleanValue;\n }\n\n /**\n * Initialize all input steppers on the page.\n */\n autoInitAll() {\n let inputSteppers = document.querySelectorAll('.sui-input-stepper input[type=number]');\n\n if (inputSteppers.length === 0) {\n return;\n }\n\n inputSteppers.forEach(inputStepper => {\n const decreaseBtn = inputStepper.previousElementSibling;\n const increaseBtn = inputStepper.nextElementSibling;\n\n const enableDisableButtons = () => {\n decreaseBtn.disabled = inputStepper.disabled || (inputStepper.value <= inputStepper.min);\n increaseBtn.disabled = inputStepper.disabled || (inputStepper.value >= inputStepper.max);\n };\n\n decreaseBtn.addEventListener('click', function(event) {\n event.preventDefault();\n inputStepper.stepDown();\n enableDisableButtons();\n });\n\n increaseBtn.addEventListener('click', function(event) {\n event.preventDefault();\n inputStepper.stepUp();\n enableDisableButtons();\n });\n\n inputStepper.addEventListener('input', function() {\n inputStepper.value = this.filterNumberInput(inputStepper.value, inputStepper.min, inputStepper.max);\n enableDisableButtons();\n }.bind(this));\n\n enableDisableButtons();\n });\n }\n}\n","export class SUINotImplementedError extends Error {\n\n /**\n * @param {string} message\n */\n constructor(message= '') {\n super(message);\n this.name = \"SUINotImplementedError\";\n this.message = message ? message : 'Method not implemented';\n }\n}\n","import {SUIFeature} from \"./SUIFeature.js\";\n\nexport class SUIOffcanvas extends SUIFeature {\n\n constructor() {\n super();\n\n this.offcanvasElm = null;\n this.placement = 'left';\n this.theme = 'player';\n\n // Closes the offcanvas when a click occurs outside of it. Bound here so\n // the same reference can be added/removed from the document listener.\n this.handleOutsideClick = (e) => {\n if (this.offcanvasElm && !this.offcanvasElm.contains(e.target)) {\n this.close();\n }\n };\n }\n\n setPlacement(placement) {\n this.placement = placement;\n this.offcanvasElm.classList.remove(`sui-mod-${this.placement}`);\n this.offcanvasElm.classList.add(`sui-mod-${this.placement}`);\n }\n\n setTheme(theme) {\n this.theme = theme;\n this.offcanvasElm.classList.remove(`sui-theme-${this.theme}`);\n this.offcanvasElm.classList.add(`sui-theme-${this.theme}`);\n }\n\n open() {\n this.offcanvasElm.classList.remove('hidden');\n\n // Defer attaching so the click that triggered open() does not bubble up\n // to the document listener and immediately close the offcanvas. The\n // browser de-duplicates identical (listener, options) pairs, so repeated\n // open() calls remain safe.\n setTimeout(() => {\n document.addEventListener('click', this.handleOutsideClick);\n }, 0);\n }\n\n close() {\n this.offcanvasElm.classList.add('hidden');\n document.removeEventListener('click', this.handleOutsideClick);\n }\n\n setHeader(header) {\n this.offcanvasElm.querySelector('.sui-offcanvas-header').innerHTML = header;\n }\n\n setContent(content) {\n this.offcanvasElm.querySelector('.sui-offcanvas-body').innerHTML = content;\n }\n\n renderOffcanvasInnerHTML() {\n return `\n
\n
\n \n \n \n
\n
\n
\n
HEADER
\n
\n \n \n \n
\n
\n \n \n \n \n \n
\n
\n
\n \n \n \n
\n \n \n \n
\n \n \n \n
\n
\n
\n \n \n \n
\n
\n `;\n }\n\n /**\n * Initialize the offcanvas element. There can only be one offcanvas at a time.\n */\n autoInitAll() {\n\n this.offcanvasElm = document.createElement('div');\n this.offcanvasElm.id = `sui-offcanvas`;\n this.offcanvasElm.classList.add('hidden');\n this.offcanvasElm.classList.add('sui-panel');\n this.setPlacement(this.placement);\n this.setTheme(this.theme);\n this.offcanvasElm.innerHTML = this.renderOffcanvasInnerHTML();\n\n document.body.appendChild(this.offcanvasElm);\n\n if (this.offcanvasElm) {\n this.offcanvasElm.querySelector('.sui-offcanvas-close-btn').addEventListener('click', () => {\n this.close();\n });\n }\n\n }\n}\n","import {SUIFeature} from \"./SUIFeature.js\";\nimport {SUIUtil} from \"./SUIUtil.js\";\n\nexport class SUITooltip extends SUIFeature {\n\n /**\n * Used to track how long the mouse or touch screen is pressed.\n *\n * @type {number|null} a timeout ID\n */\n static pointerPressedTimer = null;\n\n constructor() {\n super();\n this.util = new SUIUtil();\n }\n\n /**\n * @param {HTMLElement} tooltipHtmlElement\n */\n clearPointerPressedTimer(tooltipHtmlElement) {\n tooltipHtmlElement.classList.remove('sui-mod-show');\n\n // If there is an existing tooltip, remove it.\n if (tooltipHtmlElement.parentElement) {\n tooltipHtmlElement.parentElement.removeChild(tooltipHtmlElement);\n }\n\n clearTimeout(SUITooltip.pointerPressedTimer);\n }\n\n /**\n * @param {HTMLElement} tooltipElm\n * @param {HTMLElement} tooltipTriggerElm\n */\n pointerPressed(tooltipElm, tooltipTriggerElm) {\n clearTimeout(SUITooltip.pointerPressedTimer);\n\n // If there is an existing tooltip, remove it.\n if (tooltipElm.parentElement) {\n tooltipElm.parentElement.removeChild(tooltipElm);\n }\n\n SUITooltip.pointerPressedTimer = setTimeout(function() {\n\n // To position the tooltip the parent also must have position defined.\n const parentStyle = getComputedStyle(tooltipTriggerElm.parentElement);\n if (parentStyle.getPropertyValue('position') === 'static') {\n tooltipTriggerElm.parentElement.style.position = 'relative';\n }\n\n // Add the tooltip to the triggering element's parent, so that the tool tip stays relative to the target.\n tooltipTriggerElm.parentElement.appendChild(tooltipElm);\n\n // Set the tooltip content based on the triggering elements data attribute\n tooltipElm.innerHTML = tooltipTriggerElm.dataset.suiTooltip;\n\n // Show the tool tip\n tooltipElm.classList.add('sui-mod-show');\n\n this.util.horizontallyCenter(tooltipElm, tooltipTriggerElm);\n\n if (tooltipTriggerElm.dataset.suiModPlacement === 'bottom') {\n this.util.positionBelow(tooltipElm, tooltipTriggerElm);\n } else {\n this.util.positionAbove(tooltipElm, tooltipTriggerElm);\n }\n\n }.bind(this), 100);\n }\n\n /**\n * Initialize all tooltips on the page.\n */\n autoInitAll() {\n\n const tooltipElm = document.createElement('div');\n tooltipElm.id = `sui-tooltip-container`;\n tooltipElm.classList.add('sui-tooltip');\n tooltipElm.style.position = 'absolute';\n\n let pressedEvent = 'mousedown';\n let releasedEvent = 'mouseup';\n\n if (window.matchMedia(\"(pointer: coarse)\").matches) {\n pressedEvent = 'touchstart';\n releasedEvent = 'touchend';\n\n // Press and hold on mobile also fires a contextmenu event which we need to block\n // because it can obscure the tooltip and also cause inadvertent actions.\n document.body.addEventListener('contextmenu', (e) => {\n if (\n e.target.matches('[data-sui-tooltip]')\n || e.target.parentElement.matches('[data-sui-tooltip]')\n ) {\n e.preventDefault();\n }\n }, { passive: false });\n }\n\n document.body.addEventListener(pressedEvent, function (e) {\n if (e.target.matches('[data-sui-tooltip]')) {\n this.pointerPressed(tooltipElm, e.target);\n }\n if (e.target.parentElement.matches('[data-sui-tooltip]')) {\n this.pointerPressed(tooltipElm, e.target.parentElement);\n }\n\n }.bind(this), { passive: true });\n\n window.addEventListener(releasedEvent, function () {\n this.clearPointerPressedTimer(tooltipElm);\n }.bind(this), { passive: true });\n }\n}\n","export class SUIUtil {\n /**\n * @param {HTMLElement} dynamicElm\n * @param {HTMLElement} originElm\n */\n positionAbove(dynamicElm, originElm) {\n const originRect = originElm.getBoundingClientRect();\n\n // If dynamic element would end up offscreen, place it below\n if (\n originRect.top < dynamicElm.offsetHeight\n && (window.innerHeight - originRect.bottom) >= dynamicElm.offsetHeight\n ) {\n this.positionBelow(dynamicElm, originElm);\n } else {\n dynamicElm.style.top = `${originElm.offsetTop - dynamicElm.offsetHeight}px`;\n }\n }\n\n /**\n * @param {HTMLElement} dynamicElm\n * @param {HTMLElement} originElm\n */\n positionBelow(dynamicElm, originElm) {\n const originRect = originElm.getBoundingClientRect();\n\n // If dynamic element would end up offscreen, place it above\n if (\n (window.innerHeight - originRect.bottom) < dynamicElm.offsetHeight\n && originRect.top > dynamicElm.offsetHeight\n ) {\n this.positionAbove(dynamicElm, originElm);\n } else {\n dynamicElm.style.top = `${originElm.offsetTop + originElm.offsetHeight}px`;\n }\n }\n\n /**\n * @param {HTMLElement} dynamicElm\n * @param {HTMLElement} originElm\n */\n horizontallyCenter(dynamicElm, originElm) {\n const originRect = originElm.getBoundingClientRect();\n\n // If the dynamic element will go offscreen on the left,\n // align the dynamic element up to the left edge.\n if (originRect.left - (originElm.offsetWidth / 2) < dynamicElm.offsetWidth / 2) {\n dynamicElm.style.left = `${originElm.offsetLeft}px`;\n\n // If the dynamic element will go offscreen on the right,\n // align the dynamic element up to the right edge.\n } else if ((originElm.offsetWidth / 2) + (window.innerWidth - originRect.right) < dynamicElm.offsetWidth / 2) {\n dynamicElm.style.left = `${(originElm.offsetLeft + originElm.offsetWidth) - dynamicElm.offsetWidth}px`;\n\n } else {\n dynamicElm.style.left = `${originElm.offsetLeft - (dynamicElm.offsetWidth - originElm.offsetWidth) / 2}px`;\n }\n }\n\n /**\n * Read the effective uniform scale factor from an element's computed\n * `transform`. Returns 1 when no transform is applied (or it can't be parsed).\n *\n * The cheatsheet (and similar elements) opt in to viewport scaling via media\n * queries that apply `transform: scale(N)`. Their `style.top`/`style.left`\n * stay in unscaled (logical) pixel space, so positioning math has to use the\n * post-scale visual size to land correctly.\n *\n * @param {HTMLElement} elm\n * @return {number}\n */\n getEffectiveScale(elm) {\n const transform = window.getComputedStyle(elm).transform;\n if (!transform || transform === 'none') {\n return 1;\n }\n const match = transform.match(/matrix\\(\\s*([^,)]+)/);\n if (!match) {\n return 1;\n }\n const scale = parseFloat(match[1]);\n return Number.isFinite(scale) && scale > 0 ? scale : 1;\n }\n\n /**\n * Position element above the origin using fixed positioning (viewport-relative).\n * Falls back to below if there's not enough space above.\n *\n * @param {HTMLElement} dynamicElm\n * @param {DOMRect} originRect\n * @param {number} [scale=1] visual scale factor applied to dynamicElm\n */\n positionAboveFixed(dynamicElm, originRect, scale = 1) {\n const visualHeight = dynamicElm.offsetHeight * scale;\n\n // If dynamic element would go offscreen above, place it below instead\n if (\n originRect.top < visualHeight\n && (window.innerHeight - originRect.bottom) >= visualHeight\n ) {\n this.positionBelowFixed(dynamicElm, originRect, scale);\n } else {\n dynamicElm.style.top = `${originRect.top - visualHeight}px`;\n }\n }\n\n /**\n * Position element below the origin using fixed positioning (viewport-relative).\n * Falls back to above if there's not enough space below.\n *\n * @param {HTMLElement} dynamicElm\n * @param {DOMRect} originRect\n * @param {number} [scale=1] visual scale factor applied to dynamicElm\n */\n positionBelowFixed(dynamicElm, originRect, scale = 1) {\n const visualHeight = dynamicElm.offsetHeight * scale;\n\n // If dynamic element would go offscreen below, place it above instead\n if (\n (window.innerHeight - originRect.bottom) < visualHeight\n && originRect.top > visualHeight\n ) {\n this.positionAboveFixed(dynamicElm, originRect, scale);\n } else {\n dynamicElm.style.top = `${originRect.bottom}px`;\n }\n }\n\n /**\n * Horizontally center element relative to origin using fixed positioning (viewport-relative).\n * Adjusts to keep element within viewport bounds.\n *\n * @param {HTMLElement} dynamicElm\n * @param {DOMRect} originRect\n * @param {number} [scale=1] visual scale factor applied to dynamicElm\n */\n horizontallyCenterFixed(dynamicElm, originRect, scale = 1) {\n const visualWidth = dynamicElm.offsetWidth * scale;\n const originCenterX = originRect.left + (originRect.width / 2);\n let leftPos = originCenterX - (visualWidth / 2);\n\n // If element would go offscreen on the left, align to left edge\n if (leftPos < 0) {\n leftPos = originRect.left;\n\n // If element would go offscreen on the right, align to right edge\n } else if (leftPos + visualWidth > window.innerWidth) {\n leftPos = originRect.right - visualWidth;\n }\n\n dynamicElm.style.left = `${leftPos}px`;\n }\n\n /**\n * Vertically center element relative to origin using fixed positioning (viewport-relative).\n * Adjusts to keep element within viewport bounds.\n *\n * @param {HTMLElement} dynamicElm\n * @param {DOMRect} originRect\n * @param {number} [scale=1] visual scale factor applied to dynamicElm\n */\n verticallyCenterFixed(dynamicElm, originRect, scale = 1) {\n const visualHeight = dynamicElm.offsetHeight * scale;\n const originCenterY = originRect.top + (originRect.height / 2);\n let topPos = originCenterY - (visualHeight / 2);\n\n // If element would go offscreen on the top, align to top edge\n if (topPos < 0) {\n topPos = 0;\n\n // If element would go offscreen on the bottom, align to bottom edge\n } else if (topPos + visualHeight > window.innerHeight) {\n topPos = window.innerHeight - visualHeight;\n }\n\n dynamicElm.style.top = `${topPos}px`;\n }\n\n /**\n * Position element to the right of the origin using fixed positioning (viewport-relative).\n *\n * @param {HTMLElement} dynamicElm\n * @param {DOMRect} originRect\n * @param {number} [scale=1] visual scale factor applied to dynamicElm\n */\n positionRightFixed(dynamicElm, originRect, scale = 1) {\n dynamicElm.style.left = `${originRect.right}px`;\n this.verticallyCenterFixed(dynamicElm, originRect, scale);\n }\n\n /**\n * Position element to the left of the origin using fixed positioning (viewport-relative).\n *\n * @param {HTMLElement} dynamicElm\n * @param {DOMRect} originRect\n * @param {number} [scale=1] visual scale factor applied to dynamicElm\n */\n positionLeftFixed(dynamicElm, originRect, scale = 1) {\n const visualWidth = dynamicElm.offsetWidth * scale;\n dynamicElm.style.left = `${originRect.left - visualWidth}px`;\n this.verticallyCenterFixed(dynamicElm, originRect, scale);\n }\n\n /**\n * Position element in the best fitting position relative to origin.\n * Tries positions in order: top, right, bottom, left.\n * Falls back to the side with the most available space.\n *\n * If `scale` is omitted it is read from the element's computed transform so\n * the math accounts for any media-query driven scaling applied to dynamicElm.\n *\n * @param {HTMLElement} dynamicElm\n * @param {DOMRect} originRect\n * @param {number} [scale] visual scale factor applied to dynamicElm\n */\n positionBestFitFixed(dynamicElm, originRect, scale) {\n if (scale === undefined) {\n scale = this.getEffectiveScale(dynamicElm);\n }\n\n const visualWidth = dynamicElm.offsetWidth * scale;\n const visualHeight = dynamicElm.offsetHeight * scale;\n\n // Calculate available space on each side\n const spaceTop = originRect.top;\n const spaceRight = window.innerWidth - originRect.right;\n const spaceBottom = window.innerHeight - originRect.bottom;\n const spaceLeft = originRect.left;\n\n // Check if element fits on each side (in order: top, right, bottom, left)\n const fitsTop = spaceTop >= visualHeight;\n const fitsRight = spaceRight >= visualWidth;\n const fitsBottom = spaceBottom >= visualHeight;\n const fitsLeft = spaceLeft >= visualWidth;\n\n // Try positions in order: top, right, bottom, left\n if (fitsTop) {\n dynamicElm.style.top = `${originRect.top - visualHeight}px`;\n this.horizontallyCenterFixed(dynamicElm, originRect, scale);\n return;\n }\n\n if (fitsRight) {\n this.positionRightFixed(dynamicElm, originRect, scale);\n return;\n }\n\n if (fitsBottom) {\n dynamicElm.style.top = `${originRect.bottom}px`;\n this.horizontallyCenterFixed(dynamicElm, originRect, scale);\n return;\n }\n\n if (fitsLeft) {\n this.positionLeftFixed(dynamicElm, originRect, scale);\n return;\n }\n\n // None fit - find the side with the most space\n const spaces = [\n { side: 'top', space: spaceTop },\n { side: 'right', space: spaceRight },\n { side: 'bottom', space: spaceBottom },\n { side: 'left', space: spaceLeft }\n ];\n\n spaces.sort((a, b) => b.space - a.space);\n const bestSide = spaces[0].side;\n\n switch (bestSide) {\n case 'top':\n dynamicElm.style.top = `${originRect.top - visualHeight}px`;\n this.horizontallyCenterFixed(dynamicElm, originRect, scale);\n break;\n case 'right':\n this.positionRightFixed(dynamicElm, originRect, scale);\n break;\n case 'bottom':\n dynamicElm.style.top = `${originRect.bottom}px`;\n this.horizontallyCenterFixed(dynamicElm, originRect, scale);\n break;\n case 'left':\n this.positionLeftFixed(dynamicElm, originRect, scale);\n break;\n }\n }\n}\n","export class AmbitUtil {\n\n /**\n * @param {string[]} ambitArray\n * @param {string} targetAmbit\n * @param {string|null} localAmbit\n * @return {boolean}\n */\n contains(ambitArray, targetAmbit, localAmbit = null) {\n targetAmbit = targetAmbit.toLowerCase();\n localAmbit = localAmbit ? localAmbit.toLowerCase() : '';\n\n return !!ambitArray.find(ambit => {\n ambit = ambit.toLowerCase();\n return ambit === targetAmbit\n || (ambit === 'local' && localAmbit && localAmbit === targetAmbit)\n });\n }\n\n}","/**\n * Identifies whether a given animation (or set of animations) belongs to an\n * attack sequence enqueued by `StructListener.handleStructAttack`.\n *\n * Attack sequences are made up of attack, impact, shake, evade and destroy\n * animations. Status-driven animations (deployment, move, stealth) are not\n * part of the attack sequence.\n */\nexport class AttackSequenceAnimationUtil {\n\n /**\n * Animation name prefixes that only ever appear during an attack sequence.\n * `EVADE` is included as an exact match because it is the only animation in\n * its family.\n */\n static ATTACK_SEQUENCE_NAME_PREFIXES = [\n 'ATTACK_',\n 'IMPACT_',\n 'SHAKE_',\n 'EVADE',\n 'DESTROY_',\n ];\n\n /**\n * @param {string} animationName\n * @return {boolean}\n */\n static isAttackSequenceAnimation(animationName) {\n if (!animationName) {\n return false;\n }\n return AttackSequenceAnimationUtil.ATTACK_SEQUENCE_NAME_PREFIXES.some(\n (prefix) => animationName === prefix || animationName.startsWith(prefix)\n );\n }\n\n /**\n * @param {string[]} animationNames\n * @return {boolean}\n */\n static includesAttackSequenceAnimation(animationNames) {\n if (!Array.isArray(animationNames)) {\n return false;\n }\n return animationNames.some(\n (name) => AttackSequenceAnimationUtil.isAttackSequenceAnimation(name)\n );\n }\n}\n","export const CAMEL_CASE = 'CAMEL_CASE';\nexport const KEBAB_CASE = 'KEBAB_CASE';\nexport const LOWER_SNAKE_CASE = 'LOWER_SNAKE_CASE';\nexport const UPPER_SNAKE_CASE = 'UPPER_SNAKE_CASE';\nexport const SPACE_SEPARATED_WORDS = 'SPACE_SEPARATED_WORDS';\n\nexport class CaseConverter {\n\n /**\n * Converts a string into the specified case.\n *\n * @param {string} source the source string which can be space separate words, or in camel case, kebab case, lower snake case, or upper snake case\n * @param {string} targetCase the case to convert the source to\n * @return {string} the source string formatted in the given case\n */\n convert(source, targetCase) {\n const words = this.tokenize(source);\n\n switch (targetCase) {\n case CAMEL_CASE:\n return words\n .map((w, i) => i === 0 ? w : w.charAt(0).toUpperCase() + w.slice(1))\n .join('');\n case KEBAB_CASE:\n return words.join('-');\n case LOWER_SNAKE_CASE:\n return words.join('_');\n case UPPER_SNAKE_CASE:\n return words.map(w => w.toUpperCase()).join('_');\n case SPACE_SEPARATED_WORDS:\n return words.join(' ');\n default:\n return source;\n }\n }\n\n /**\n * @param {string} source\n * @return {string[]}\n */\n tokenize(source) {\n return source\n .replace(/[-_]/g, ' ')\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n .toLowerCase()\n .split(/\\s+/)\n .filter(w => w.length > 0);\n }\n}\n","export class ChargeCalculator {\n constructor() {\n this.chargeLevelThresholds = [\n 0,\n 1,\n 8,\n 20,\n 39,\n 666\n ];\n }\n\n /**\n * @param {number} charge\n * @return {number}\n */\n calcChargeLevelByCharge(charge) {\n for (let i = 0; i < this.chargeLevelThresholds.length; i++) {\n if (charge <= this.chargeLevelThresholds[i]) {\n return i;\n }\n }\n\n return this.chargeLevelThresholds.length - 1;\n }\n\n /**\n * @param {number} currentBlockHeight\n * @param {number} lastActionBlockHeight\n * @return {number}\n */\n calcCharge(currentBlockHeight, lastActionBlockHeight) {\n return currentBlockHeight - (lastActionBlockHeight + 1);\n }\n\n /**\n * @param {number} currentBlockHeight\n * @param {number} lastActionBlockHeight\n * @return {number}\n */\n calc(currentBlockHeight, lastActionBlockHeight) {\n const charge = this.calcCharge(currentBlockHeight, lastActionBlockHeight);\n return this.calcChargeLevelByCharge(charge);\n }\n}","export class ColorUtil {\n /**\n * @param {string} address base36 address\n * @param {number} colorIndex which slice of the string to use for the color\n * @return {string}\n */\n getHexColorFromBase36Address(address, colorIndex) {\n const addressPartBase36 = address.substring(address.length - colorIndex * 5 - 5, address.length - colorIndex * 5);\n const addressPartBase16 = parseInt(addressPartBase36, 36).toString(16);\n const hexColor = addressPartBase16.slice(-6);\n return `#${hexColor}`;\n }\n}","export class DateFormatter {\n\n /**\n * @param datetimeString\n * @return {string}\n */\n formatDate(datetimeString) {\n return new Date(datetimeString).toLocaleDateString(\n 'default',\n {\n month:\"long\",\n day:\"numeric\",\n year:\"numeric\"\n }\n );\n }\n\n formatTime(datetimeString) {\n return new Date(datetimeString).toLocaleTimeString(\n 'default',\n {\n hour : \"2-digit\",\n minute : \"2-digit\",\n second : \"2-digit\"\n }\n );\n }\n\n formatDatetime(datetimeString) {\n return `${this.formatTime(datetimeString)} ${this.formatDate(datetimeString)}` ;\n }\n}","export class NumberFormatter {\n\n constructor() {\n this.scale = {\n '1': 'k',\n '2': 'M',\n '3': 'G',\n '4': 'T',\n '5': 'P',\n '6': 'E',\n '7': 'Z',\n '8': 'Y',\n '9': 'R',\n '10': 'Q'\n }\n }\n\n /**\n * @param {number|string} number\n * @return {string}\n */\n format(number) {\n const intString = `${parseInt(`${number}`)}`;\n const numDigits = intString.length;\n\n if (numDigits <= 3) {\n return intString;\n }\n\n let remainderDigits = numDigits % 3;\n remainderDigits = remainderDigits === 0 ? 3 : remainderDigits;\n const scaleIndex = ((numDigits - remainderDigits) / 3);\n const unit = this.scale[scaleIndex];\n\n return intString.substring(0, remainderDigits) + unit;\n }\n\n /**\n * @param {number} ms milliseconds\n * @return {string}\n */\n formatMilliseconds(ms) {\n const timeParts = [];\n\n const hours = Math.floor(ms / (1000 * 60 * 60));\n const minutes = Math.floor((ms % (1000 * 60 * 60)) / (1000 * 60));\n\n if (hours > 0) {\n timeParts.push(`${hours}h`);\n }\n\n if (minutes > 0) {\n timeParts.push(`${minutes}m`);\n }\n\n return timeParts.join(' ');\n }\n}\n","import {RAID_STATUS} from \"../constants/RaidStatus\";\n\nexport class RaidStatusUtil {\n\n /**\n * @param {string} raidStatus\n * @return {boolean}\n */\n hasRaidEnded(raidStatus) {\n return (\n raidStatus === RAID_STATUS.ATTACKER_DEFEATED\n || raidStatus === RAID_STATUS.RAID_SUCCESSFUL\n || raidStatus === RAID_STATUS.DEMILITARIZED\n || raidStatus === RAID_STATUS.ATTACKER_RETREATED\n );\n }\n\n /**\n * @param {string} raidStatus\n * @return {boolean}\n */\n isAttackerDefeated(raidStatus) {\n return raidStatus === RAID_STATUS.ATTACKER_DEFEATED;\n }\n\n /**\n * @param {string} raidStatus\n * @return {boolean}\n */\n isRaidSuccessful(raidStatus) {\n return raidStatus === RAID_STATUS.RAID_SUCCESSFUL;\n }\n}","import {TASK} from \"../constants/TaskConstants\";\n\nexport class ShieldHealthCalculator {\n\n /**\n * Calculate difficulty from age\n *\n * @param {number} age - Current age in blocks\n * @param {number} baseDifficultyRange - Base difficulty range\n * @returns {number} Difficulty (number of leading zeros required in hash)\n */\n getCalculatedDifficulty(age, baseDifficultyRange) {\n if (age <= 1) {\n return 64;\n }\n\n const difficulty = 64 - Math.floor(\n Math.log10(age) / Math.log10(baseDifficultyRange) * 63\n );\n\n return Math.max(1, difficulty);\n }\n\n /**\n * Calculate total blocks needed at hash rate 1 (worst case) to break the shield\n *\n * @param {number} blockStartRaid - Block when raid started\n * @param {number} planetaryShield - Difficulty target (base difficulty range)\n * @return {number} Total blocks needed\n */\n getTotalBlocksNeededAtHashRate1(blockStartRaid, planetaryShield) {\n const baseDifficultyRange = Math.max(planetaryShield, 1);\n const maxBlocksToCheck = TASK.MAX_BLOCKS_WHEN_ESTIMATING;\n const blockTimeSeconds = TASK.ESTIMATED_BLOCK_TIME;\n const hashrate = 1; // Worst case\n\n let cumulativeExpectedSuccesses = 0;\n let blocksAhead = 0;\n\n // Start from age 0 (blockStartRaid) and calculate forward\n while (cumulativeExpectedSuccesses < 1 && blocksAhead < maxBlocksToCheck) {\n const ageAtBlock = blocksAhead; // Age starts at 0\n const difficulty = this.getCalculatedDifficulty(ageAtBlock, baseDifficultyRange);\n const successProbability = 1 / Math.pow(16, difficulty);\n\n // Expected number of successful hashes in this block\n const expectedSuccessesInBlock = hashrate * blockTimeSeconds * successProbability;\n cumulativeExpectedSuccesses += expectedSuccessesInBlock;\n blocksAhead++;\n }\n\n return Math.min(blocksAhead, maxBlocksToCheck);\n }\n\n /**\n * @param {number} planetaryShield\n * @param {number} blockStartRaid\n * @param {number} currentBlock\n * @return {number}\n */\n calc(\n planetaryShield,\n blockStartRaid,\n currentBlock\n ) {\n // Age represents blocks processed since raid started\n const age = currentBlock - blockStartRaid;\n\n // If no blocks have passed, shield is at 100%\n if (age <= 0) {\n return 100;\n }\n\n // Calculate total blocks needed at hash rate 1 (worst case) to break shield\n const totalBlocksNeeded = this.getTotalBlocksNeededAtHashRate1(blockStartRaid, planetaryShield);\n\n // Calculate percent complete\n const percentComplete = totalBlocksNeeded > 0 ? age / totalBlocksNeeded : 1.0;\n\n // Shield health = (1 - percentComplete) * 100, clamped to 0-100\n const shieldHealth = (1 - percentComplete) * 100;\n\n return Math.ceil(Math.max(shieldHealth, 0));\n }\n}","/**\n * A unified class for generating css tile class names;\n */\nexport class TileClassNameUtil {\n\n /**\n * @param {string} ambit\n * @param {string} verticalPos\n * @param {string} horizontalPos\n *\n * @return {string}\n */\n getTileClassName(ambit, verticalPos, horizontalPos) {\n return `tile-${ambit.toLowerCase()}-${verticalPos}-${horizontalPos}`;\n }\n\n /**\n * @param {string} ambit\n * @param {string} verticalPos\n * @param {string} horizontalPos\n *\n * @return {string}\n */\n getTileEdgeClassName(ambit, verticalPos, horizontalPos) {\n return `tile-${ambit.toLowerCase()}-edge-${verticalPos}-${horizontalPos}`;\n }\n\n /**\n * @param {string} transitionName\n * @param {string} horizontalPos\n *\n * @return {string}\n */\n getTileNamedTransitionClassName(transitionName, horizontalPos) {\n return `tile-${transitionName.toLowerCase()}-${horizontalPos}`;\n }\n\n /**\n * @param {string} ambit\n *\n * @return {string}\n */\n getTileBlockedClassName(ambit) {\n return `tile-blocked-${ambit.toLowerCase()}`;\n }\n\n /**\n * @param {string} ambit\n *\n * @return {string}\n */\n getTileBeaconClassName(ambit) {\n return `tile-beacon-${ambit.toLowerCase()}`;\n }\n\n}","import {ColorUtil} from \"../util/ColorUtil\";\n\nexport class Blockies {\n\n\tconstructor() {\n\t\tthis.colorUtil = new ColorUtil();\n\t\tthis.randseed = new Array(4); // Xorshift: [x, y, z, w] 32 bit values\n\t}\n\n\tseedrand(seed) {\n\t\tthis.randseed.fill(0);\n\n\t\tfor(let i = 0; i < seed.length; i++) {\n\t\t\tthis.randseed[i%4] = ((this.randseed[i%4] << 5) - this.randseed[i%4]) + seed.charCodeAt(i);\n\t\t}\n\t}\n\n\trand() {\n\t\t// based on Java's String.hashCode(), expanded to 4 32bit values\n\t\tconst t = this.randseed[0] ^ (this.randseed[0] << 11);\n\n\t\tthis.randseed[0] = this.randseed[1];\n\t\tthis.randseed[1] = this.randseed[2];\n\t\tthis.randseed[2] = this.randseed[3];\n\t\tthis.randseed[3] = (this.randseed[3] ^ (this.randseed[3] >> 19) ^ t ^ (t >> 8));\n\n\t\treturn (this.randseed[3] >>> 0) / ((1 << 31) >>> 0);\n\t}\n\n\tcreateColor() {\n\t\t//saturation is the whole color spectrum\n\t\tconst h = Math.floor(this.rand() * 360);\n\t\t//saturation goes from 40 to 100, it avoids greyish colors\n\t\tconst s = ((this.rand() * 60) + 40) + '%';\n\t\t//lightness can be anything from 0 to 100, but probabilities are a bell curve around 50%\n\t\tconst l = ((this.rand() + this.rand() + this.rand() + this.rand()) * 25) + '%';\n\n\t\treturn 'hsl(' + h + ',' + s + ',' + l + ')';\n\t}\n\n\tcreateImageData(size) {\n\t\tconst width = size; // Only support square icons for now\n\t\tconst height = size;\n\n\t\tconst dataWidth = Math.ceil(width / 2);\n\t\tconst mirrorWidth = width - dataWidth;\n\n\t\tconst data = [];\n\t\tfor(let y = 0; y < height; y++) {\n\t\t\tlet row = [];\n\t\t\tfor(let x = 0; x < dataWidth; x++) {\n\t\t\t\t// this makes foreground and background color to have a 43% (1/2.3) probability\n\t\t\t\t// spot color has 13% chance\n\t\t\t\trow[x] = Math.floor(this.rand()*2.3);\n\t\t\t}\n\t\t\tconst r = row.slice(0, mirrorWidth);\n\t\t\tr.reverse();\n\t\t\trow = row.concat(r);\n\n\t\t\tfor(let i = 0; i < row.length; i++) {\n\t\t\t\tdata.push(row[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn data;\n\t}\n\n\tbuildOpts(opts) {\n\t\tconst newOpts = {};\n\n\t\tnewOpts.seed = opts.seed || Math.floor((Math.random()*Math.pow(10,16))).toString(16);\n\n\t\tthis.seedrand(newOpts.seed);\n\n\t\tnewOpts.size = opts.size || 8;\n\t\tnewOpts.scale = opts.scale || 4;\n\t\tnewOpts.color = opts.color || this.createColor();\n\t\tnewOpts.bgcolor = opts.bgcolor || this.createColor();\n\t\tnewOpts.spotcolor = opts.spotcolor || this.createColor();\n\n\t\treturn newOpts;\n\t}\n\n\trenderIcon(opts, canvas) {\n\t\topts = this.buildOpts(opts || {});\n\t\tconst imageData = this.createImageData(opts.size);\n\t\tconst width = Math.sqrt(imageData.length);\n\n\t\tcanvas.width = canvas.height = opts.size * opts.scale;\n\n\t\tconst cc = canvas.getContext('2d');\n\t\tcc.fillStyle = opts.bgcolor;\n\t\tcc.fillRect(0, 0, canvas.width, canvas.height);\n\t\tcc.fillStyle = opts.color;\n\n\t\tfor(let i = 0; i < imageData.length; i++) {\n\n\t\t\t// if data is 0, leave the background\n\t\t\tif(imageData[i]) {\n\t\t\t\tconst row = Math.floor(i / width);\n\t\t\t\tconst col = i % width;\n\n\t\t\t\t// if data is 2, choose spot color, if 1 choose foreground\n\t\t\t\tcc.fillStyle = (imageData[i] === 1) ? opts.color : opts.spotcolor;\n\n\t\t\t\tcc.fillRect(col * opts.scale, row * opts.scale, opts.scale, opts.scale);\n\t\t\t}\n\t\t}\n\n\t\treturn canvas;\n\t}\n\n\tcreateIcon(opts) {\n\t\tlet canvas = document.createElement('canvas');\n\n\t\tthis.renderIcon(opts, canvas);\n\n\t\treturn canvas;\n\t}\n\n\tcreateBlockie(address) {\n\t\treturn this.createIcon({\n\t\t\tseed: address,\n\t\t\tcolor: this.colorUtil.getHexColorFromBase36Address(address,0),\n\t\t\tbgcolor: this.colorUtil.getHexColorFromBase36Address(address,1),\n\t\t\tsize: 10,\n\t\t\tscale: 8,\n\t\t\tspotcolor: this.colorUtil.getHexColorFromBase36Address(address,2)\n\t\t});\n\t}\n}\n","import {AbstractViewModel} from \"../framework/AbstractViewModel\";\nimport {StatusBarTopLeftComponent} from \"./components/hud/StatusBarTopLeftComponent\";\nimport {StatusBarTopRightComponent} from \"./components/hud/StatusBarTopRightComponent\";\nimport {ActionBarComponent} from \"./components/hud/ActionBarComponent\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\nimport {EVENTS} from \"../constants/Events\";\nimport {MenuPage} from \"../framework/MenuPage\";\nimport {HUD_IDS} from \"../constants/HUDConstants\";\nimport {MAP_CONTAINER_IDS} from \"../constants/MapConstants\";\nimport {MENU_PAGE_ROUTER_MODES} from \"../constants/MenuPageRouterModes\";\n\nexport class HUDViewModel extends AbstractViewModel {\n\n /** @type {GameState} */\n static gameState;\n\n /** @type {SigningClientManager} */\n static signingClientManager;\n\n static containerId = 'hud-container';\n\n /** @type {StatusBarTopLeftComponent} */\n static topLeftStatusBar;\n\n /** @type {StatusBarTopRightComponent} */\n static topRightStatusBarAlphaBase;\n\n /** @type {StatusBarTopRightComponent} */\n static topRightStatusBarRaid;\n\n /** @type {ActionBarComponent} */\n static bottomLeftActionBar;\n\n /** @type {ActionBarComponent} */\n static bottomRightActionBarAlphaBase;\n\n /** @type {ActionBarComponent} */\n static bottomRightActionBarRaid;\n\n /**\n * Currently selected tile data for action bar refresh.\n * @type {{tileType: string, ambit: string, slot: number|null, playerId: string, side: string, structId: string|null, tileLabel: string}|null}\n */\n static currentSelectedTile = null;\n\n /**\n * @param {GameState} gameState\n * @param {SigningClientManager} signingClientManager\n * @param {StructManager} structManager\n * @param {TaskManager} taskManager\n */\n static init(\n gameState,\n signingClientManager,\n structManager,\n taskManager\n ) {\n HUDViewModel.gameState = gameState;\n HUDViewModel.signingClientManager = signingClientManager;\n\n HUDViewModel.topLeftStatusBar = new StatusBarTopLeftComponent(\n gameState,\n HUD_IDS.STATUS_BAR_TOP_LEFT\n );\n\n HUDViewModel.topRightStatusBarAlphaBase = new StatusBarTopRightComponent(\n gameState,\n false,\n HUD_IDS.STATUS_BAR_TOP_RIGHT_ALPHA_BASE\n );\n\n HUDViewModel.topRightStatusBarRaid = new StatusBarTopRightComponent(\n gameState,\n true,\n HUD_IDS.STATUS_BAR_TOP_RIGHT_RAID\n );\n\n HUDViewModel.bottomLeftActionBar = new ActionBarComponent(\n gameState,\n signingClientManager,\n structManager,\n taskManager,\n PLAYER_TYPES.PLAYER,\n 'left',\n HUD_IDS.ACTION_BAR_PLAYER\n );\n\n HUDViewModel.bottomRightActionBarAlphaBase = new ActionBarComponent(\n gameState,\n signingClientManager,\n structManager,\n taskManager,\n PLAYER_TYPES.PLANET_RAIDER,\n 'right',\n HUD_IDS.ACTION_BAR_ALPHA_BASE_ENEMY\n );\n\n HUDViewModel.bottomRightActionBarRaid = new ActionBarComponent(\n gameState,\n signingClientManager,\n structManager,\n taskManager,\n PLAYER_TYPES.RAID_ENEMY,\n 'right',\n HUD_IDS.ACTION_BAR_RAID_ENEMY\n );\n\n HUDViewModel.bottomLeftActionBar.profileClickHandler = function () {\n const allowedControllers = [\n 'Fleet',\n 'Guild',\n 'Account',\n ];\n if (!allowedControllers.includes(MenuPage.router.currentController)) {\n MenuPage.router.goto('Fleet', 'index');\n } else {\n if (MenuPage.router.mode !== MENU_PAGE_ROUTER_MODES.DEFAULT) {\n MenuPage.router.enableDefaultMode();\n }\n MenuPage.router.goto(MenuPage.router.currentController, MenuPage.router.currentPage, MenuPage.router.currentOptions);\n }\n MenuPage.open();\n };\n\n HUDViewModel.bottomRightActionBarAlphaBase.profileClickHandler = () => {\n MenuPage.router.enablePreviewMode();\n MenuPage.router.goto('Account', 'profile', {playerId: this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].player.id});\n MenuPage.open();\n };\n\n HUDViewModel.bottomRightActionBarRaid.profileClickHandler = () => {\n MenuPage.router.enablePreviewMode();\n MenuPage.router.goto('Account', 'profile', {playerId: this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].player.id});\n MenuPage.open();\n };\n }\n\n static initPageCode() {\n HUDViewModel.topLeftStatusBar.initPageCode();\n HUDViewModel.topRightStatusBarAlphaBase.initPageCode();\n HUDViewModel.topRightStatusBarRaid.initPageCode();\n HUDViewModel.bottomLeftActionBar.initPageCode();\n HUDViewModel.bottomRightActionBarAlphaBase.initPageCode();\n HUDViewModel.bottomRightActionBarRaid.initPageCode();\n\n window.addEventListener(EVENTS.REFRESH_ACTION_BAR, () => {\n console.log('Refreshing action bar');\n HUDViewModel.refreshActionBar();\n });\n\n // Listen for REFRESH_ACTION_BAR events (when a struct arrives at a position)\n window.addEventListener(EVENTS.REFRESH_ACTION_BAR_IF_SELECTED, (event) => {\n HUDViewModel.refreshActionBarIfSelected(\n event.tileType,\n event.ambit,\n event.slot,\n event.playerId,\n event.structId\n );\n });\n\n // Listen for PENDING_BUILD_ADDED events to refresh action bar if the tile is selected\n window.addEventListener(EVENTS.PENDING_BUILD_ADDED, (event) => {\n if (HUDViewModel.currentSelectedTile) {\n const current = HUDViewModel.currentSelectedTile;\n if (\n current.tileType === event.tileType\n && current.ambit.toUpperCase() === event.ambit.toUpperCase()\n && current.slot === event.slot\n && current.playerId === event.playerId\n ) {\n // Refresh the action bar to show the pending build\n const actionBar = HUDViewModel.whichActionBar(current.side);\n HUDViewModel[actionBar].showActionBarFor(\n current.tileType,\n current.tileLabel,\n current.side,\n current.slot,\n current.structId\n );\n }\n }\n });\n }\n\n static render() {\n return `\n ${HUDViewModel.topLeftStatusBar.renderHTML()}\n ${HUDViewModel.topRightStatusBarAlphaBase.renderHTML()}\n ${HUDViewModel.topRightStatusBarRaid.renderHTML()}\n ${HUDViewModel.bottomLeftActionBar.renderHTML()}\n ${HUDViewModel.bottomRightActionBarAlphaBase.renderHTML()}\n ${HUDViewModel.bottomRightActionBarRaid.renderHTML()}\n `;\n }\n\n /**\n * @param {string} sideClicked left or right or empty string\n * @return {string}\n */\n static whichActionBar(sideClicked) {\n let actionBar = 'bottomLeftActionBar';\n\n if (sideClicked === 'right') {\n if (this.gameState.activeMapContainerId === MAP_CONTAINER_IDS.RAID) {\n actionBar = 'bottomRightActionBarRaid';\n }\n if (\n this.gameState.activeMapContainerId === MAP_CONTAINER_IDS.ALPHA_BASE\n && this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].player\n ) {\n actionBar = 'bottomRightActionBarAlphaBase';\n }\n }\n\n return actionBar;\n }\n\n static hideActionBarActionChunks() {\n HUDViewModel.bottomLeftActionBar.hideActionChunk();\n HUDViewModel.bottomRightActionBarAlphaBase.hideActionChunk();\n HUDViewModel.bottomRightActionBarRaid.hideActionChunk();\n }\n\n /**\n * @param {HTMLElement|object} clickedDomElement\n */\n static showActionBar(clickedDomElement) {\n HUDViewModel.hideActionBarActionChunks();\n\n const actionBar = HUDViewModel.whichActionBar(clickedDomElement.dataset.side);\n const structId = clickedDomElement.dataset.structId;\n\n let slot = parseInt(clickedDomElement.dataset.slot, 10);\n if (isNaN(slot)) {\n slot = null;\n }\n\n const tileType = clickedDomElement.dataset.tileType;\n const tileLabel = clickedDomElement.dataset.tileLabel || clickedDomElement.dataset.ambit;\n const side = clickedDomElement.dataset.side;\n const playerId = clickedDomElement.dataset.playerId;\n\n // Store the currently selected tile for action bar refresh\n HUDViewModel.currentSelectedTile = {\n tileType: tileType,\n ambit: clickedDomElement.dataset.ambit,\n slot: slot,\n playerId: playerId,\n side: side,\n structId: structId || null,\n tileLabel: tileLabel\n };\n\n // Show action bar for both empty and occupied tiles\n // Pass structId to determine if deploy button should be disabled\n HUDViewModel[actionBar].showActionBarFor(\n tileType,\n tileLabel,\n side,\n slot,\n structId || null\n );\n }\n\n /**\n * Refresh the action bar for the currently selected tile.\n * Called when a struct arrives at the selected position.\n *\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n * @param {string} structId\n */\n static refreshActionBarIfSelected(tileType, ambit, slot, playerId, structId) {\n if (!HUDViewModel.currentSelectedTile) {\n return;\n }\n\n const current = HUDViewModel.currentSelectedTile;\n\n // Check if the event matches the currently selected tile\n if (\n current.tileType === tileType\n && current.ambit.toUpperCase() === ambit.toUpperCase()\n && current.slot === slot\n && current.playerId === playerId\n ) {\n // Update the stored struct ID\n HUDViewModel.currentSelectedTile.structId = structId;\n\n // Refresh the action bar\n const actionBar = HUDViewModel.whichActionBar(current.side);\n HUDViewModel[actionBar].showActionBarFor(\n current.tileType,\n current.tileLabel,\n current.side,\n current.slot,\n structId\n );\n }\n }\n\n static refreshActionBar() {\n if (!HUDViewModel.currentSelectedTile) {\n return;\n }\n\n const current = HUDViewModel.currentSelectedTile;\n const actionBar = HUDViewModel.whichActionBar(current.side);\n HUDViewModel[actionBar].showActionBarFor(\n current.tileType,\n current.tileLabel,\n current.side,\n current.slot,\n current.structId\n );\n }\n\n static hide() {\n const container = document.getElementById(this.containerId);\n if (container) {\n container.classList.add('hidden')\n }\n }\n\n static show() {\n const container = document.getElementById(this.containerId);\n if (container) {\n container.classList.remove('hidden')\n }\n }\n}\n","import {NavItemDTO} from \"../dtos/NavItemDTO\";\nimport {MenuPage} from \"../framework/MenuPage\";\nimport {AbstractViewModel} from \"../framework/AbstractViewModel\";\n\nexport class IndexView extends AbstractViewModel {\n\n initPageCode() {\n document.getElementById('new-player-btn').addEventListener('click', () => {\n MenuPage.router.goto('Auth', 'signupConnectingToCorporate1');\n });\n document.getElementById('returning-player-btn').addEventListener('click', () => {\n MenuPage.router.goto('Auth', 'loginActivateDevice');\n });\n }\n\n render () {\n const navItems = [\n new NavItemDTO(\n 'nav-item-structs',\n 'Structs'\n )\n ];\n MenuPage.setNavItems(navItems, 'nav-item-structs');\n MenuPage.disableCloseBtn()\n\n MenuPage.setBodyContent(`\n \n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class AccountActivatingDeviceViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {AuthManager} authManager\n * @param {PlayerAddressPending} playerAddressPending\n */\n constructor(\n gameState,\n authManager,\n playerAddressPending\n ) {\n super();\n this.gameState = gameState;\n this.authManager = authManager;\n this.playerAddressPending = playerAddressPending;\n }\n\n initPageCode() {\n this.authManager.activateDevice(this.playerAddressPending).then(async function (success) {\n if (!success) {\n MenuPage.router.goto('Account', 'deviceActivationCancelled');\n }\n }).catch(() => {\n MenuPage.router.goto('Account', 'deviceActivationCancelled');\n });\n }\n\n render () {\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn('Activate New Device');\n\n MenuPage.setPageTemplateContent(`\n
\n \"3\n
\n Activating device
\n
\n Do not close this screen.\n
\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {UserAgent} from \"../../models/UserAgent\";\nimport {PlayerAddressPending} from \"../../models/PlayerAddressPending\";\nimport {Blockies} from \"../../vendor/Blockies\";\nimport {PERMISSIONS} from \"../../constants/Permissions\";\n\nexport class AccountApproveNewDeviceViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {PermissionManager} permissionManager\n * @param {PlayerAddressPending} playerAddressPending\n */\n constructor(\n gameState,\n permissionManager,\n playerAddressPending\n ) {\n super();\n this.gameState = gameState;\n this.permissionManager = permissionManager;\n this.playerAddressPending = playerAddressPending;\n this.blockies = new Blockies();\n this.manageDevicesCheckboxId = 'manageDevicesCheckbox';\n this.transferAssetsCheckboxId = 'transferAssetsCheckbox';\n this.approveDeviceBtnId = 'approveDeviceBtn';\n this.denyDeviceBtnId = 'denyDeviceBtn';\n this.newDeviceBlockieId = 'newDeviceBlockie';\n }\n\n initPageCode() {\n document.getElementById(`${this.newDeviceBlockieId}`).append(\n this.blockies.createBlockie(this.playerAddressPending.address)\n );\n document.getElementById(`${this.approveDeviceBtnId}`).addEventListener(\n 'click',\n () => {\n this.playerAddressPending.permissions = this.permissionManager.getDefaultPlayerPermissions();\n this.playerAddressPending.permissions |= (document.getElementById(this.manageDevicesCheckboxId).checked\n ? this.permissionManager.getManageDevicesPermissions()\n : 0);\n this.playerAddressPending.permissions |= document.getElementById(this.transferAssetsCheckboxId).checked\n ? PERMISSIONS.ASSETS_ALL\n : 0;\n\n MenuPage.router.goto('Account', 'activatingDevice', this.playerAddressPending);\n }\n );\n }\n\n render() {\n const userAgent = new UserAgent(this.playerAddressPending.user_agent);\n const location = this.playerAddressPending.ip; // TODO: When geoip data is added, use that field if set\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn('Activate New Device');\n\n MenuPage.setPageTemplateContent(`\n
\n \n
\n
The following device is requesting access to your account:
\n
\n
\n
New Device
\n
\n
${location}
\n
${userAgent.getBrowser()} Browser
\n
${userAgent.getDeviceTypeAndOS()}
\n
\n
\n
\n
\n
\n
Device Seal
\n
Ensure this image matches the one shown on the device to be activated.
\n
\n
\n
\n
\n \n
\n
Set permissions for the new device:
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {USERNAME_PATTERN} from \"../../constants/RegexPattern\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class AccountChangeUsername extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {PermissionManager} permissionManager\n * @param {SigningClientManager} signingClientManager\n */\n constructor(\n gameState,\n guildAPI,\n permissionManager,\n signingClientManager\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.permissionManager = permissionManager;\n this.signingClientManager = signingClientManager;\n this.changeUsernameInputId = 'changeUsername';\n this.changeUsernameBtnId = 'changeUsernameBtn';\n this.changeUsernameErrorId = 'changeUsernameError';\n this.canEditUsername = true;\n this.disabledMessage = \"This device doesn't have permission to change the display name. Sign in on a device with management permissions to update it.\";\n }\n\n initPageCode() {\n if (!this.canEditUsername) {\n return;\n }\n\n const usernameInput = document.getElementById(this.changeUsernameInputId);\n usernameInput.addEventListener('keyup', () => {\n const submitBtn = document.getElementById(this.changeUsernameBtnId);\n\n if (usernameInput.value.length > 0 && submitBtn.classList.contains('sui-mod-disabled')) {\n submitBtn.disabled = false;\n submitBtn.classList.remove('sui-mod-disabled');\n submitBtn.classList.add('sui-mod-primary');\n } else if (usernameInput.value.length === 0 && submitBtn.classList.contains('sui-mod-primary')) {\n submitBtn.disabled = true;\n submitBtn.classList.remove('sui-mod-primary');\n submitBtn.classList.add('sui-mod-disabled');\n }\n });\n\n const submitBtnHandler = () => {\n document.getElementById(this.changeUsernameErrorId).classList.remove('sui-mod-show');\n\n const usernameInput = document.getElementById(this.changeUsernameInputId);\n\n if (!USERNAME_PATTERN.test(usernameInput.value)) {\n document.getElementById(this.changeUsernameErrorId).classList.add('sui-mod-show');\n } else {\n this.signingClientManager.queueMsgPlayerUpdateName(\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id,\n usernameInput.value\n );\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.username = usernameInput.value;\n MenuPage.router.goto('Account', 'profile');\n }\n };\n\n document.getElementById(this.changeUsernameBtnId).addEventListener('click', submitBtnHandler);\n usernameInput.addEventListener('keyup', (e) => {\n if (e.key === 'Enter') {\n submitBtnHandler();\n }\n });\n }\n\n render() {\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn(\n 'Change Display Name',\n true,\n () => {\n MenuPage.router.goto('Account', 'profile');\n });\n\n this.guildAPI.getPlayerAddress(this.gameState.signingAccount.address).then((currentDevice) => {\n const currentDevicePermissions = parseInt(currentDevice.permissions);\n const manageBits = this.permissionManager.getManageDevicesPermissions();\n this.canEditUsername = (currentDevicePermissions & manageBits) === manageBits;\n\n const inputAttrs = this.canEditUsername ? '' : 'readonly';\n const inputClass = this.canEditUsername ? 'sui-input-text' : 'sui-input-text sui-mod-disabled';\n const errorClass = this.canEditUsername ? 'sui-input-text-warning' : 'sui-input-text-warning sui-mod-show';\n const errorMessage = this.canEditUsername\n ? \"Name must be 3\\u201320 characters and only include letters, numbers, '-' and '_'.\"\n : this.disabledMessage;\n\n MenuPage.setPageTemplateContent(`\n
\n
\n
\n \n \n
\n
\n
${errorMessage}
\n
\n
\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\nimport {MenuWaitingOptions} from \"../../options/MenuWaitingOptions\";\nimport {TransferSentListener} from \"../../grass_listeners/TransferSentListener\";\n\nexport class AccountConfirmTransfer extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {AlphaManager} alphaManager\n * @param {GrassManager} grassManager\n * @param {PlayerSearchResultDTO|object} playerSearchResultDTO\n */\n constructor(\n gameState,\n guildAPI,\n alphaManager,\n grassManager,\n playerSearchResultDTO\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.alphaManager = alphaManager;\n this.grassManager = grassManager;\n this.playerSearchResultDTO = playerSearchResultDTO;\n this.numberFormatter = new NumberFormatter();\n this.cancelBtnId = 'confirm-transfer-cancel-btn';\n this.transferBtnId = 'confirm-transfer-transfer-btn';\n }\n\n initPageCode() {\n document.getElementById(this.cancelBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'index');\n });\n document.getElementById(this.transferBtnId).addEventListener('click', () => {\n const options = new MenuWaitingOptions();\n options.headerBtnLabel = 'Transferring...';\n options.waitingAnimation = 'ALPHA_TRANSFER';\n options.hasDoNotCloseMessage = false;\n\n MenuPage.router.goto('Generic', 'menuWaiting', options);\n\n this.grassManager.registerListener(new TransferSentListener(\n this.gameState,\n this.gameState.signingAccount.address,\n this.playerSearchResultDTO.address,\n this.gameState.transferAmount\n ));\n\n this.alphaManager.transferAlpha(this.playerSearchResultDTO.address, this.gameState.transferAmount).then();\n });\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderNameHTML(playerSearchResultDTO) {\n let html = 'Non-Player Address';\n if (playerSearchResultDTO.id) {\n let tag = playerSearchResultDTO.tag\n ? `[${playerSearchResultDTO.tag}]`\n : '';\n let username = playerSearchResultDTO.username\n ? playerSearchResultDTO.username\n : 'Name Redacted';\n html = `${tag} ${username}`;\n }\n return html;\n }\n\n render () {\n const amount = this.numberFormatter.format(this.gameState.transferAmount);\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn('Confirm Transfer', true, () => {\n MenuPage.router.back();\n });\n\n MenuPage.setPageTemplateContent(`\n
\n \n
\n
Transaction Details
\n
\n \n
\n
Amount
\n
\n
\n ${amount}\n \n
\n
\n
\n \n
\n
Recipient
\n
\n ${this.renderNameHTML(this.playerSearchResultDTO)}\n
\n ${\n this.playerSearchResultDTO.id\n ? '#' + this.playerSearchResultDTO.id\n : this.playerSearchResultDTO.address\n }\n
\n
\n\n
\n
\n \n \n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class AccountDeviceActivationCancelled extends AbstractViewModel {\n\n constructor() {\n super();\n this.returnToAccountBtnId = 'return-to-account-btn';\n }\n\n initPageCode() {\n document.getElementById(this.returnToAccountBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'index');\n });\n }\n\n render () {\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn('Activate New Device');\n\n MenuPage.setPageTemplateContent(`\n
\n
\n
\n \n Activation Cancelled\n
\n
This device has not been activated.
\n
\n \n
\n \n
\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class AccountDeviceActivationComplete extends AbstractViewModel {\n\n constructor() {\n super();\n this.returnToAccountBtnId = 'return-to-account-btn';\n }\n\n initPageCode() {\n document.getElementById(this.returnToAccountBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'index');\n });\n }\n\n render () {\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn('Activate New Device');\n\n MenuPage.setPageTemplateContent(`\n
\n
\n
\n \n Device Approved\n
\n
The new device has been activated.
\n
\n \n
\n \n
\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {UserAgent} from \"../../models/UserAgent\";\nimport {PERMISSIONS} from \"../../constants/Permissions\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\nimport {SetAddressPermissionsRequestDTO} from \"../../dtos/SetAddressPermissionsRequestDTO\";\nimport {MenuWaitingOptions} from \"../../options/MenuWaitingOptions\";\n\nexport class AccountDeviceViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {PermissionManager} permissionManager\n * @param {PlayerAddress} deviceAddress\n */\n constructor(\n gameState,\n guildAPI,\n permissionManager,\n deviceAddress,\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.permissionManager = permissionManager;\n this.deviceAddress = deviceAddress;\n this.playerAddressDetails = null;\n this.deviceLogoutBtnId = 'deviceLogoutBtn';\n this.manageDevicesCheckboxId = 'manageDevicesCheckbox';\n this.transferAssetsCheckboxId = 'transferAssetsCheckbox';\n this.cancelDeviceChangesBtnId = 'cancelDeviceChangesBtnId';\n this.saveDeviceChangesBtnId = 'saveDeviceChangesBtn';\n\n this.isPrimaryDevice = (this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.primary_address === this.deviceAddress.address);\n this.isCurrentDevice = (this.gameState.signingAccount.address === this.deviceAddress.address);\n this.canEditPermissions = true;\n }\n\n initPageCode() {\n if (this.canEditPermissions) {\n document.getElementById(`${this.cancelDeviceChangesBtnId}`).addEventListener(\n 'click',\n () => {\n MenuPage.router.goto('Account', 'devices');\n }\n );\n\n document.getElementById(this.saveDeviceChangesBtnId).addEventListener(\n 'click',\n () => {\n const request = new SetAddressPermissionsRequestDTO();\n request.address = this.playerAddressDetails.address;\n request.permissions = this.permissionManager.getDefaultPlayerPermissions();\n request.permissions |= (document.getElementById(this.manageDevicesCheckboxId).checked\n ? this.permissionManager.getManageDevicesPermissions()\n : 0);\n request.permissions |= document.getElementById(this.transferAssetsCheckboxId).checked\n ? PERMISSIONS.ASSETS_ALL\n : 0;\n\n const options = new MenuWaitingOptions();\n options.headerBtnLabel = 'Manage Device';\n options.waitingMessage = 'Saving changes.';\n\n MenuPage.router.goto('Generic', 'menuWaiting', options);\n\n this.guildAPI.setAddressPermissions(request).then(() => {\n MenuPage.router.goto('Account', 'devices');\n });\n }\n );\n }\n\n const logoutBtn = document.getElementById(this.deviceLogoutBtnId);\n if (logoutBtn) {\n logoutBtn.addEventListener(\n 'click',\n () => {\n if (!this.isPrimaryDevice && this.playerAddressDetails.alpha) {\n MenuPage.router.goto('Auth', 'logoutAssetsWarning', this.playerAddressDetails);\n } else if (this.playerAddressDetails.isOnlyManagingDevice) {\n MenuPage.router.goto('Auth', 'logoutPermissionsWarning', this.playerAddressDetails);\n } else if (this.isPrimaryDevice) {\n MenuPage.router.goto('Auth', 'logout');\n } else {\n MenuPage.router.goto('Auth', 'logout', this.playerAddressDetails);\n }\n });\n }\n }\n\n render() {\n const fetchTargetDevice = this.guildAPI.getPlayerAddress(this.deviceAddress.address);\n const fetchCurrentDevice = this.isCurrentDevice\n ? fetchTargetDevice\n : this.guildAPI.getPlayerAddress(this.gameState.signingAccount.address);\n\n Promise.all([fetchTargetDevice, fetchCurrentDevice]).then(([playerAddress, currentDevicePlayerAddress]) => {\n this.playerAddressDetails = playerAddress;\n this.playerAddressDetails.isOnlyManagingDevice = this.deviceAddress.isOnlyManagingDevice;\n\n const currentDevicePermissions = parseInt(currentDevicePlayerAddress.permissions);\n this.canEditPermissions =\n (currentDevicePermissions & this.permissionManager.getManageDevicesPermissions()) === this.permissionManager.getManageDevicesPermissions();\n\n const userAgent = new UserAgent(playerAddress.user_agent);\n\n let location = playerAddress.ip; // TODO: When geoip data is added, use that field if set\n let logoutSection = '';\n\n if (this.isPrimaryDevice) {\n location = `[PRIMARY DEVICE]
${location}`;\n logoutSection = `\n
\n
\n
Primary Device Logout
\n
Remote logout is not available for primary devices. Please log out using the primary device itself.
\n
\n
\n `;\n } else if (this.isCurrentDevice || this.canEditPermissions) {\n logoutSection = `\n Log Out\n `;\n }\n\n const isCheckedManageDevices = (parseInt(playerAddress.permissions) & this.permissionManager.getManageDevicesPermissions()) === this.permissionManager.getManageDevicesPermissions();\n const isCheckedTransferAssets = (parseInt(playerAddress.permissions) & PERMISSIONS.ASSETS_ALL) === PERMISSIONS.ASSETS_ALL;\n const checkboxDisabledAttr = this.canEditPermissions ? '' : 'disabled';\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn(\n 'Manage Device',\n true,\n () => {\n MenuPage.router.goto('Account', 'devices');\n });\n\n MenuPage.setPageTemplateContent(`\n
\n\n
\n \n
\n \n \n
\n
${location}
\n
\n
${userAgent.getBrowser()} Browser
\n
${userAgent.getDeviceTypeAndOS()}
\n
\n
\n
\n \n ${logoutSection}\n
\n \n
\n
Device permissions:
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n ${this.canEditPermissions ? `\n
\n Cancel\n Save\n
\n ` : ''}\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {Blockies} from \"../../vendor/Blockies\";\nimport {UserAgent} from \"../../models/UserAgent\";\nimport {PlayerAddress} from \"../../models/PlayerAddress\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class AccountDevicesViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {AuthManager} authManager\n * @param {PermissionManager} permissionManager\n */\n constructor(\n gameState,\n guildAPI,\n authManager,\n permissionManager\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.authManager = authManager;\n this.permissionManager = permissionManager;\n this.activateNewDeviceBtnId = 'activate-new-device';\n this.blockies = new Blockies();\n this.devices = new Map();\n }\n\n initPageCode() {\n document.getElementById(this.activateNewDeviceBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'newDeviceCode');\n });\n\n let numManagingDevices = 0;\n this.devices.forEach((device) => {\n numManagingDevices += ((parseInt(device.playerAddress.permissions) & this.permissionManager.getManageDevicesPermissions()) === this.permissionManager.getManageDevicesPermissions()) ? 1 : 0;\n });\n\n this.devices.forEach((device, address) => {\n document.getElementById(`device-${address}`).append(device.blockieElm);\n document.getElementById(`manage-${address}`).addEventListener('click', () => {\n if (\n numManagingDevices === 1\n && ((parseInt(device.playerAddress.permissions) & this.permissionManager.getManageDevicesPermissions()) === this.permissionManager.getManageDevicesPermissions())\n ) {\n device.playerAddress.isOnlyManagingDevice = true;\n }\n MenuPage.router.goto('Account', 'manageDevice', device.playerAddress);\n });\n })\n }\n\n /**\n * @param {PlayerAddress} playerAddress\n * @return {string}\n */\n renderDevice(playerAddress) {\n this.devices.set(playerAddress.address, {\n playerAddress: playerAddress,\n blockieElm: this.blockies.createBlockie(playerAddress.address)\n });\n const userAgent = new UserAgent(playerAddress.user_agent);\n\n let location = playerAddress.ip; // TODO: When geoip data is added, use that field if set\n\n if (this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.primary_address === playerAddress.address) {\n location = `[Primary Device]
${location}`;\n }\n\n const lastActivity = new Date(playerAddress.block_time).toLocaleDateString(\n 'default',\n {\n month:\"long\",\n day:\"numeric\",\n year:\"numeric\"\n }\n );\n const deviceInfoList = [];\n\n if (playerAddress.address === this.gameState.signingAccount.address) {\n deviceInfoList.push('This Device');\n } else {\n deviceInfoList.push(`${userAgent.getBrowser()} Browser`);\n deviceInfoList.push(`${userAgent.getDeviceTypeAndOS()}`);\n deviceInfoList.push(`Last Activity: ${lastActivity}`);\n }\n\n const deviceInfoListHtml = deviceInfoList.reduce((html, info) => html + `
${info}
`, '');\n\n return `\n
\n
\n
\n
\n
${location}
\n
\n ${deviceInfoListHtml}\n
\n
\n
\n Manage\n
\n `;\n }\n\n render () {\n this.guildAPI.getPlayerAddressList(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id).then((playerAddresses) => {\n\n const deviceListHtml = playerAddresses.reduce((html, playerAddress) => {\n return html + this.renderDevice(playerAddress)\n }, '');\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn(\n 'Devices',\n true,\n () => {\n MenuPage.router.goto('Account', 'index');\n });\n\n MenuPage.setPageTemplateContent(`\n
\n \n ${deviceListHtml}\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class AccountIndexViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {AuthManager} authManager\n */\n constructor(\n gameState,\n guildAPI,\n authManager\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.authManager = authManager;\n this.copyPidBtnId = 'account-menu-copy-pid';\n this.profileBtnId = 'account-menu-profile-btn';\n this.transfersBtnId = 'account-menu-transfers-btn';\n this.devicesBtnId = 'account-menu-devices-btn';\n this.logoutBtnId = 'account-menu-logout-btn';\n }\n\n initPageCode() {\n document.getElementById(this.copyPidBtnId).addEventListener('click', async function () {\n if (navigator.clipboard) {\n await navigator.clipboard.writeText(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id);\n }\n }.bind(this));\n document.getElementById(this.logoutBtnId).addEventListener('click', function () {\n this.authManager.logout();\n }.bind(this));\n document.getElementById(this.profileBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'profile');\n });\n document.getElementById(this.transfersBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'transfers');\n });\n document.getElementById(this.devicesBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'devices');\n });\n }\n\n render () {\n this.guildAPI.getPlayerAddressCount(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id).then((addressCount) => {\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn('Account');\n\n MenuPage.setPageTemplateContent(`\n
\n
\n
\n
\n ${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].getTag()}\n ${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].getUsername()}\n
\n
\n PID #${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}\n \n \n \n
\n
\n
\n \n
\n
\n \n \n \n
\n \n
\n
\n
\n \n \n \n
\n \n
\n
\n
\n \n \n \n
\n \n
${addressCount} Devices Active
\n
\n
\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {CreateActivationCodeRequestDTO} from \"../../dtos/CreateActivationCodeRequestDTO\";\n\nexport class AccountNewDeviceCodeViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {AuthManager} authManager\n */\n constructor(\n gameState,\n guildAPI,\n authManager\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.authManager = authManager;\n this.generateActivationCode = 'generate-activation-code';\n this.generateNewCode = 'generate-new-code';\n this.activationCodeWrapper = 'activation-code-Wrapper';\n this.activationCodeDisplay = 'activation-code-display';\n }\n\n initPageCode() {\n const generatedActivationCodeElm = document.getElementById(this.generateActivationCode);\n\n generatedActivationCodeElm.addEventListener('click', () => {\n\n const request = new CreateActivationCodeRequestDTO();\n request.logged_in_address = this.gameState.signingAccount.address;\n request.guild_id = this.gameState.thisGuild.id;\n\n this.authManager.createActivationCode(request).then((code) => {\n document.getElementById(this.activationCodeDisplay).innerHTML = code;\n generatedActivationCodeElm.classList.add('hidden');\n document.getElementById(this.activationCodeWrapper).classList.remove('hidden');\n });\n\n });\n\n document.getElementById(this.generateNewCode).addEventListener('click', () => {\n\n const request = new CreateActivationCodeRequestDTO();\n request.logged_in_address = this.gameState.signingAccount.address;\n request.guild_id = this.gameState.thisGuild.id;\n\n this.authManager.createActivationCode(request).then((code) => {\n document.getElementById(this.activationCodeDisplay).innerHTML = code;\n });\n\n });\n }\n\n render () {\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn(\n 'Activate New Device',\n true,\n () => {\n MenuPage.router.goto('Account', 'devices');\n });\n\n MenuPage.setPageTemplateContent(`\n
\n \n
\n
\n
\n
Activation Code
\n
\n
\n \n
\n
Do not close this screen until activation is complete.
\n
\n
Enter the above code on the Returning Player screen on your new device to activate it.
\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {GenericResourceComponent} from \"../components/GenericResourceComponent\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class AccountProfileViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {string} playerId\n */\n constructor(\n gameState,\n guildAPI,\n playerId\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.playerId = playerId;\n this.player = null;\n this.guild = null;\n this.isOwnProfile = (this.playerId === this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id);\n this.numberFormatter = new NumberFormatter();\n this.editUsernameBtnId = 'account-profile-edit-username-btn';\n this.copyPidBtnId = 'account-profile-copy-pid-btn';\n this.copyPidBtnId2 = 'account-profile-copy-pid-btn-2';\n this.copyAddressBtnId = 'account-profile-copy-address-btn';\n this.alphaMatterId = 'account-profile-alpha-matter';\n this.alphaInfusedId = 'account-profile-alpha-infused';\n this.energyUsageId = 'account-profile-energy-usage';\n this.oreMinedId = 'account-profile-ore-mined';\n this.oreStolenId = 'account-profile-ore-stolen';\n this.oreLostId = 'account-profile-ore-lost';\n this.genericResourceComponent = new GenericResourceComponent(gameState);\n this.alphaInfused = 0;\n this.playerOreStats = null;\n this.playerPlanetsCompleted = 0;\n this.playerRaidsLaunched = 0;\n }\n\n async fetchPageData() {\n const infusionPromise = this.guildAPI.getInfusionByPlayerId(this.playerId);\n const playerOreStatsPromise = this.guildAPI.getPlayerOreStats(this.playerId);\n const playerPlanetsCompletedPromise = this.guildAPI.getPlayerPlanetsCompleted(this.playerId);\n const playerRaidsLaunchedPromise = this.guildAPI.getPlayerRaidsLaunched(this.playerId);\n\n let playerPromise;\n let guildPromise;\n if (this.isOwnProfile) {\n playerPromise = Promise.resolve(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player);\n guildPromise = Promise.resolve(this.gameState.thisGuild);\n } else {\n playerPromise = this.guildAPI.getPlayer(this.playerId);\n guildPromise = playerPromise.then((player) => this.guildAPI.getGuild(player.guild_id));\n }\n\n const [\n player,\n guild,\n infusion,\n playerOreStats,\n playerPlanetsCompleted,\n playerRaidsLaunched\n ] = await Promise.all([\n playerPromise,\n guildPromise,\n infusionPromise,\n playerOreStatsPromise,\n playerPlanetsCompletedPromise,\n playerRaidsLaunchedPromise\n ]);\n\n this.player = player;\n this.guild = guild;\n this.alphaInfused = infusion.fuel;\n this.playerOreStats = playerOreStats;\n this.playerPlanetsCompleted = playerPlanetsCompleted;\n this.playerRaidsLaunched = playerRaidsLaunched;\n }\n\n initPageCode() {\n if (this.isOwnProfile) {\n document.getElementById(this.editUsernameBtnId).addEventListener('click', function () {\n MenuPage.router.goto('Account', 'changeUsername');\n });\n }\n\n document.getElementById(this.copyPidBtnId).addEventListener('click', async function () {\n if (navigator.clipboard) {\n await navigator.clipboard.writeText(this.playerId);\n }\n }.bind(this));\n document.getElementById(this.copyPidBtnId2).addEventListener('click', async function () {\n if (navigator.clipboard) {\n await navigator.clipboard.writeText(this.playerId);\n }\n }.bind(this));\n document.getElementById(this.copyAddressBtnId).addEventListener('click', async function () {\n if (navigator.clipboard) {\n await navigator.clipboard.writeText(this.player.primary_address);\n }\n }.bind(this));\n }\n\n renderEditUsernameBtnHTML() {\n return this.isOwnProfile\n ? `\n \n \n \n `\n : '' ;\n }\n\n getEnergyUsage() {\n const load = this.player.load ? this.player.load : 0;\n const structsLoad = this.player.structs_load ? this.player.structs_load : 0;\n const capacity = this.player.capacity ? this.player.capacity : 0;\n const connectionCapacity = this.player.connection_capacity ? this.player.connection_capacity : 0;\n\n let totalLoad = load + structsLoad;\n let totalCapacity = capacity + connectionCapacity;\n totalLoad = this.numberFormatter.format(totalLoad);\n totalCapacity = this.numberFormatter.format(totalCapacity);\n\n return `${totalLoad}/${totalCapacity}`;\n }\n\n renderPageTemplateHeader() {\n if (this.isOwnProfile) {\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn('Profile', true, () => {\n MenuPage.router.goto('Account', 'index');\n });\n } else {\n MenuPage.enablePageTemplate(MenuPage.navItemGuildId);\n\n MenuPage.setPageTemplateHeaderBtn('Guild Profile', true, () => {\n MenuPage.router.back();\n });\n }\n }\n\n renderSkeleton() {\n this.renderPageTemplateHeader();\n\n MenuPage.setPageTemplateContent(`\n
\n \"3\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n }\n\n renderContent() {\n const editUsernameBtn = this.renderEditUsernameBtnHTML();\n\n this.renderPageTemplateHeader();\n\n MenuPage.setPageTemplateContent(`\n
\n
\n
\n
\n
\n
\n
\n ${this.player.getTag()}\n ${this.player.getUsername()}\n ${editUsernameBtn}\n
\n
\n #${this.playerId}\n \n
\n \n
\n
\n
\n
\n
\n \n
\n
Player Details
\n
\n
\n
Guild
\n
${this.guild.name}
\n
\n
\n
\n Player ID\n \n \n \n
\n
\n #${this.playerId}\n \n \n \n
\n
\n
\n
\n Blockchain Address\n \n \n \n
\n
\n Copy Address\n \n \n \n
\n
\n
\n
\n \n
\n
Power
\n
\n
\n
Alpha Matter
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.alphaMatterId,\n 'sui-icon-alpha-matter',\n 'Alpha Matter',\n this.numberFormatter.format(this.player.alpha)\n )\n }\n
\n
\n
\n
Alpha Infused
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.alphaInfusedId, \n 'sui-icon-alpha-matter', \n 'Alpha Infused', \n this.alphaInfused\n )\n }\n
\n
\n
\n
Energy Usage
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.energyUsageId,\n 'sui-icon-energy',\n 'Energy usage',\n this.getEnergyUsage()\n )\n }\n
\n
\n
\n
\n \n
\n
Statistics
\n
\n
\n
Planets Completed
\n
${this.playerPlanetsCompleted}
\n
\n
\n
Raids Launched
\n
${this.playerRaidsLaunched}
\n
\n
\n
Ore Mined
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.oreMinedId,\n 'sui-icon-alpha-ore',\n 'Ore Mined',\n this.playerOreStats.mined\n )\n }\n
\n
\n
\n
Ore Stolen
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.oreStolenId,\n 'sui-icon-alpha-ore',\n 'Ore Stolen',\n this.playerOreStats.seized\n )\n }\n
\n
\n
\n
Ore Lost
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.oreLostId,\n 'sui-icon-alpha-ore',\n 'Ore Lost',\n this.playerOreStats.forfeited\n )\n }\n
\n
\n
\n
\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n\n render () {\n const navAtRender = MenuPage.router.navigationId;\n this.renderSkeleton();\n this.fetchPageData().then(() => {\n if (navAtRender !== MenuPage.router.navigationId) return;\n this.renderContent();\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\n\nexport class AccountRecipientSearchResults extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {TransferSearchRequestDTO|object} transferSearchRequest\n */\n constructor(\n gameState,\n guildAPI,\n transferSearchRequest\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.transferSearchRequest = transferSearchRequest;\n this.numberFormatter = new NumberFormatter();\n this.players = [];\n }\n\n initPageCode() {\n this.players.forEach((player) => {\n document.getElementById(`recipient-${player.id}`).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'recipient', player)\n });\n })\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderIconHTML(playerSearchResultDTO) {\n let html = `\n
\n
\n
\n `;\n\n if (!playerSearchResultDTO.id) {\n html = `\n
\n \n
\n `;\n }\n\n return html;\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderPlayerInfoHTML(playerSearchResultDTO) {\n let html = `\n
\n
\n Address ${playerSearchResultDTO.address}\n
\n
\n `;\n\n if (playerSearchResultDTO.id) {\n let tag = playerSearchResultDTO.tag\n ? `[${playerSearchResultDTO.tag}]`\n : '';\n let username = playerSearchResultDTO.username\n ? playerSearchResultDTO.username\n : 'Name Redacted'\n\n html = `\n
\n
\n ${tag} ${username}
\n PID #${playerSearchResultDTO.id}\n
\n
\n `;\n }\n\n return html;\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderAlphaHTML(playerSearchResultDTO) {\n if (isNaN(parseInt(playerSearchResultDTO.alpha))) {\n return '';\n }\n\n const amount = this.numberFormatter.format(playerSearchResultDTO.alpha);\n return `\n ${amount}\n \n `;\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderResultRowHTML(playerSearchResultDTO) {\n\n const iconHTML = this.renderIconHTML(playerSearchResultDTO);\n const playerInfoHTML = this.renderPlayerInfoHTML(playerSearchResultDTO);\n const alphaHTML = this.renderAlphaHTML(playerSearchResultDTO);\n const btnId = `recipient-${playerSearchResultDTO.id}`;\n\n return `\n
\n
\n ${iconHTML}\n ${playerInfoHTML}\n
\n
\n
\n
\n ${alphaHTML}\n
\n
\n View\n
\n
\n `;\n }\n\n render () {\n this.guildAPI.transferSearch(this.transferSearchRequest).then((players) => {\n\n this.players = players;\n\n let noResultsMessage = this.players.length > 0\n ? ''\n : `
No results found. Please try a different search term.
`;\n let maxResultsMessage = this.players.length >= 25\n ? `
Showing the first 25 results. Try narrowing your search for better results.
`\n : '';\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn('Search Results', true, () => {\n MenuPage.router.goto('Account', 'recipientSearch');\n });\n\n const playersListHTML = players.reduce((html, player) => {\n return html + this.renderResultRowHTML(player)\n }, '');\n\n MenuPage.setPageTemplateContent(`\n
\n \n ${noResultsMessage}\n \n
\n \n ${playersListHTML}\n \n
\n \n ${maxResultsMessage}\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {SEARCH_STRING_PATTERN} from \"../../constants/RegexPattern\";\nimport {TransferSearchRequestDTO} from \"../../dtos/TransferSearchRequestDTO\";\n\nexport class AccountRecipientSearchViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n */\n constructor(\n gameState,\n guildAPI\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.playerSearchInputId = 'playerSearch';\n this.playerSearchBtnId = 'playerSearchBtn';\n this.playerSearchErrorId = 'playerSearchError';\n this.guildFilterSelectId = 'guildFilterSelect';\n }\n\n initPageCode() {\n const playerSearchInput = document.getElementById(this.playerSearchInputId);\n playerSearchInput.addEventListener('keyup', () => {\n const submitBtn = document.getElementById(this.playerSearchBtnId);\n\n if (playerSearchInput.value.length > 0 && submitBtn.classList.contains('sui-mod-disabled')) {\n submitBtn.disabled = false;\n submitBtn.classList.remove('sui-mod-disabled');\n submitBtn.classList.add('sui-mod-primary');\n } else if (playerSearchInput.value.length === 0 && submitBtn.classList.contains('sui-mod-primary')) {\n submitBtn.disabled = true;\n submitBtn.classList.remove('sui-mod-primary');\n submitBtn.classList.add('sui-mod-disabled');\n }\n });\n\n const submitBtnHandler = () => {\n document.getElementById(this.playerSearchErrorId).classList.remove('sui-mod-show');\n\n const playerSearchInput = document.getElementById(this.playerSearchInputId);\n\n if (!SEARCH_STRING_PATTERN.test(playerSearchInput.value)) {\n document.getElementById(this.playerSearchErrorId).classList.add('sui-mod-show');\n } else {\n const transferSearchRequest = new TransferSearchRequestDTO();\n transferSearchRequest.search_string = playerSearchInput.value;\n transferSearchRequest.guild_id = document.getElementById(this.guildFilterSelectId).value;\n\n MenuPage.router.goto('Account', 'recipientSearchResults', transferSearchRequest);\n }\n };\n\n document.getElementById(this.playerSearchBtnId).addEventListener('click', submitBtnHandler);\n playerSearchInput.addEventListener('keyup', (e) => {\n if (e.key === 'Enter') {\n submitBtnHandler();\n }\n });\n }\n\n render() {\n this.guildAPI.getGuildFilterList().then(guilds => {\n\n const guildFilterOptions = guilds.reduce((options, guild) =>\n options + ``\n , '');\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn(\n 'Find Recipient',\n true,\n () => {\n MenuPage.router.goto('Account', 'transferAmount');\n });\n\n MenuPage.setPageTemplateContent(`\n
\n
Who do you want to send to?
\n
\n
\n \n \n \n
\n
\n
Enter at least 3 characters, using only letters, numbers, '-' and '_'.
\n
\n
\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\n\nexport class AccountRecipientViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {PlayerSearchResultDTO|object} playerSearchResultDTO\n */\n constructor(\n gameState,\n guildAPI,\n playerSearchResultDTO\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.playerSearchResultDTO = playerSearchResultDTO;\n this.numberFormatter = new NumberFormatter();\n this.selectThisPlayerBtnId = 'select-this-player-btn';\n }\n\n initPageCode() {\n document.getElementById(this.selectThisPlayerBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'confirmTransfer', this.playerSearchResultDTO)\n })\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderIconHTML(playerSearchResultDTO) {\n let html = `\n
\n
\n
\n `;\n\n if (!playerSearchResultDTO.id) {\n html = `\n
\n \n
\n `;\n }\n\n return html;\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderNameHTML(playerSearchResultDTO) {\n let html = 'Non-Player Address';\n if (playerSearchResultDTO.id) {\n let tag = playerSearchResultDTO.tag\n ? `[${playerSearchResultDTO.tag}]`\n : '';\n let username = playerSearchResultDTO.username\n ? playerSearchResultDTO.username\n : 'Name Redacted';\n html = `${tag} ${username}`;\n }\n return html;\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderAlphaHTML(playerSearchResultDTO) {\n if (isNaN(parseInt(playerSearchResultDTO.alpha))) {\n return '';\n }\n\n const amount = this.numberFormatter.format(playerSearchResultDTO.alpha);\n return `\n ${amount}\n \n `;\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n getCardTitle(playerSearchResultDTO) {\n return playerSearchResultDTO.id ? `Player Details` : 'Recipient Details';\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderGuildDataRow(playerSearchResultDTO) {\n return playerSearchResultDTO.guild_name\n ? `\n
\n
Guild
\n
${playerSearchResultDTO.guild_name}
\n
\n `\n : '';\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderPlayerIdDataRow(playerSearchResultDTO) {\n return playerSearchResultDTO.id\n ? `\n
\n
\n Player ID\n \n \n \n
\n
#${playerSearchResultDTO.id}
\n
\n `\n : '';\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderAddressDataRow(playerSearchResultDTO) {\n return playerSearchResultDTO.address\n ? `\n
\n
\n Blockchain Address\n \n \n \n
\n
${playerSearchResultDTO.address}
\n
\n `\n : '';\n }\n\n render () {\n\n const iconHTML = this.renderIconHTML(this.playerSearchResultDTO);\n const nameHTML = this.renderNameHTML(this.playerSearchResultDTO);\n const alphaHTML = this.renderAlphaHTML(this.playerSearchResultDTO);\n const cardTitle = this.getCardTitle(this.playerSearchResultDTO);\n const guildDataRow = this.renderGuildDataRow(this.playerSearchResultDTO);\n const playerIdDataRow = this.renderPlayerIdDataRow(this.playerSearchResultDTO);\n const addressDataRow = this.renderAddressDataRow(this.playerSearchResultDTO);\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn('Recipient', true, () => {\n MenuPage.router.goto('Account', 'recipientSearchResults');\n });\n\n MenuPage.setPageTemplateContent(`\n
\n
\n ${iconHTML}\n
\n
\n ${nameHTML}\n
\n
\n ${alphaHTML}\n
\n
\n
\n \n
\n
${cardTitle}
\n
\n ${guildDataRow}\n ${playerIdDataRow}\n ${addressDataRow}\n
\n
\n \n \n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\nimport {Pagination} from \"../templates/partials/Pagination\";\nimport {PAGINATION_LIMITS} from \"../../constants/PaginationLimits\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class AccountTransactionHistory extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {number} page\n */\n constructor(\n gameState,\n guildAPI,\n page\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.numberFormatter = new NumberFormatter();\n this.page = page;\n this.playerId = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id;\n // this.playerId = '1-1';\n this.transactions = [];\n }\n\n initPageCode() {\n this.transactions.forEach((transaction) => {\n document.getElementById(`transaction-${transaction.id}`).addEventListener('click', () => {\n MenuPage.router.goto(\n 'Account',\n 'transaction',\n {\n txId: transaction.id,\n comingFromPage: this.page\n }\n );\n });\n })\n }\n\n /**\n * @param {Transaction} transaction\n * @return {string}\n */\n renderTransactionHTML(transaction) {\n\n const iconClass = transaction.action === 'sent' ? 'icon-outgoing' : 'icon-incoming';\n const amount = this.numberFormatter.format(transaction.amount);\n const btnId = `transaction-${transaction.id}`;\n\n return `\n
\n
\n
\n \n
\n
\n
\n Transaction #${transaction.id}\n
\n Completed\n
\n
\n
\n
\n
\n ${amount}\n \n
\n
\n View\n
\n
\n `;\n }\n\n render () {\n this.guildAPI.getTransactions(this.playerId, this.page).then((transactions) => {\n this.guildAPI.countTransactions(this.playerId).then(transactionCount => {\n\n this.transactions = transactions;\n\n let noTransactionsMessage = `
No confirmed alpha transactions yet.
`;\n let paginationHTML = '';\n\n const pagination = new Pagination(\n this.page,\n PAGINATION_LIMITS.DEFAULT,\n transactionCount,\n 'transactions',\n 'Account',\n 'transactionHistory'\n );\n\n if (transactionCount) {\n noTransactionsMessage = '';\n paginationHTML = pagination.render();\n }\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn('Transaction History', true, () => {\n MenuPage.router.goto('Account', 'transfers');\n });\n\n const transactionListHTML = transactions.reduce((html, transaction) => {\n return html + this.renderTransactionHTML(transaction)\n }, '');\n\n MenuPage.setPageTemplateContent(`\n
\n \n ${noTransactionsMessage}\n \n
\n \n ${transactionListHTML}\n \n
\n \n ${paginationHTML}\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n pagination.init();\n });\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\nimport {DateFormatter} from \"../../util/DateFormatter\";\nimport {GenericResourceComponent} from \"../components/GenericResourceComponent\";\n\nexport class AccountTransactionViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {number} txId\n * @param {number} comingFromPage\n * @param {boolean} hasBackToAccountBtn\n */\n constructor(\n gameState,\n guildAPI,\n txId,\n comingFromPage,\n hasBackToAccountBtn = false\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.numberFormatter = new NumberFormatter();\n this.dateFormatter = new DateFormatter();\n this.genericResourceComponent = new GenericResourceComponent(gameState);\n this.txId = txId;\n this.comingFromPage = comingFromPage;\n this.amountId = 'transaction-resource-amount';\n this.counterpartyLinkId = 'transaction-counterparty-link';\n this.transaction = null;\n this.hasBackToAccountBtn = hasBackToAccountBtn;\n this.backToAccountBtnId = 'transaction-back-to-account-btn';\n }\n\n initPageCode() {\n if (this.transaction.counterparty_player_id) {\n document.getElementById(this.counterpartyLinkId).addEventListener('click', () => {\n console.log(this.transaction.counterparty_player_id);\n });\n }\n\n if (this.hasBackToAccountBtn) {\n document.getElementById(this.backToAccountBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'index');\n });\n }\n }\n\n /**\n * @return {string}\n */\n renderCounterpartyName() {\n if (this.transaction.counterparty_username) {\n return `${this.transaction.counterparty_username}`;\n } else if (this.transaction.counterparty_player_id) {\n return `Player #${this.transaction.counterparty_player_id}`;\n }\n return `${this.transaction.counterparty}`;\n }\n\n renderBackToAccountBtn() {\n return this.hasBackToAccountBtn\n ? `\n \n `\n : '';\n }\n\n render () {\n this.guildAPI.getTransaction(this.txId).then((transaction) => {\n\n this.transaction = transaction;\n\n const counterpartyLabel = transaction.action === 'sent' ? 'Recipient' : 'Sender';\n const backToAccountBtn = this.renderBackToAccountBtn();\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn('Transaction Details', true, () => {\n MenuPage.router.goto(\n 'Account',\n 'transactionHistory',\n {page: this.comingFromPage}\n );\n });\n\n MenuPage.setPageTemplateContent(`\n
\n
\n \n This transaction was completed successfully.\n
\n \n
\n
Player Details
\n
\n \n
\n
Transaction ID
\n
#${this.txId}
\n
\n \n
\n
Date
\n
${this.dateFormatter.formatDatetime(transaction.time)}
\n
\n \n
\n
Amount
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.amountId,\n 'sui-icon-alpha-matter',\n 'Alpha Matter',\n this.numberFormatter.format(transaction.amount)\n )\n }\n
\n
\n \n
\n
${counterpartyLabel}
\n
${this.renderCounterpartyName()}
\n
\n
\n
\n \n ${backToAccountBtn}\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class AccountTransferAmountViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super();\n this.gameState = gameState;\n this.amountInputId = 'transferAmountInput';\n this.nextBtnId = 'transferAmountNextBtn';\n this.gameState.setTransferAmount(0);\n this.maxTransfer = Math.min(parseInt(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.alpha) || 0, 99);\n }\n\n initPageCode() {\n MenuPage.sui.inputStepper.autoInitAll();\n\n const amountInput = document.getElementById(this.amountInputId);\n const decreaseBtn = amountInput.previousElementSibling;\n const increaseBtn = amountInput.nextElementSibling;\n\n const inputStepperChangeHandler = () => {\n const nextBtn = document.getElementById(this.nextBtnId);\n if (\n 0 < document.getElementById(this.amountInputId).value\n && document.getElementById(this.amountInputId).value <= this.maxTransfer\n ) {\n nextBtn.disabled = false;\n nextBtn.classList.add('sui-mod-primary');\n nextBtn.classList.remove('sui-mod-disabled');\n } else {\n nextBtn.disabled = true;\n nextBtn.classList.add('sui-mod-disabled');\n nextBtn.classList.remove('sui-mod-primary');\n }\n }\n\n decreaseBtn.addEventListener('click', inputStepperChangeHandler);\n increaseBtn.addEventListener('click', inputStepperChangeHandler);\n amountInput.addEventListener('input', inputStepperChangeHandler);\n\n document.getElementById(this.nextBtnId).addEventListener('click', () => {\n this.gameState.setTransferAmount(parseInt(document.getElementById(this.amountInputId).value));\n MenuPage.router.goto('Account', 'recipientSearch');\n })\n }\n\n render () {\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn('Amount', true, () => {\n MenuPage.router.goto('Account', 'transfers');\n });\n\n MenuPage.setPageTemplateContent(`\n
\n \n
How much Alpha Matter do you want to send?
\n \n
\n \n \n \n \n
\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class AccountTransfersViewModel extends AbstractViewModel {\n\n constructor() {\n super();\n this.sendAlphaBtnId = 'account-menu-send-alpha-btn';\n this.transactionHistoryBtnId = 'account-menu-transaction-history-btn';\n }\n\n initPageCode() {\n document.getElementById(this.sendAlphaBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'transferAmount');\n });\n document.getElementById(this.transactionHistoryBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'transactionHistory');\n });\n }\n\n render () {\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn('Account', true, () => {\n MenuPage.router.goto('Account', 'index');\n });\n\n MenuPage.setPageTemplateContent(`\n \n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NotImplementedError} from \"../../framework/NotImplementedError\";\n\nexport class AbstractBannerViewModel extends AbstractViewModel {\n\n constructor() {\n super();\n this.id = '';\n this.banner = null;\n this.isLoaded = false;\n }\n\n close() {\n throw new NotImplementedError();\n }\n\n}","import {BannerLayer} from \"../../framework/BannerLayer\";\nimport {AbstractBannerViewModel} from \"./AbstractBannerViewModel\";\n\nexport class DefeatBannerViewModel extends AbstractBannerViewModel {\n\n constructor() {\n super();\n this.id = 'defeat-banner';\n this.banner = null;\n }\n\n render() {\n BannerLayer.setContent(`
`);\n BannerLayer.show();\n\n const {lottie} = window;\n const {loadAnimation} = lottie;\n\n this.banner = loadAnimation({\n container: document.getElementById(this.id),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: '/lottie/defeat-banner/data.json'\n });\n this.banner.addEventListener('DOMLoaded', () => {\n this.isLoaded = true;\n this.banner.playSegments([0,45], true);\n this.banner.loop = true;\n this.banner.playSegments([45,96], false);\n });\n }\n\n close() {\n return new Promise((resolve) => {\n if (!this.isLoaded) {\n this.banner?.destroy();\n BannerLayer.hideAndClear();\n resolve();\n return;\n }\n\n this.banner.loop = false;\n this.banner.addEventListener('complete', () => {\n BannerLayer.hideAndClear();\n resolve();\n });\n this.banner.playSegments([97,123], false);\n });\n }\n\n}","import {BannerLayer} from \"../../framework/BannerLayer\";\nimport {AbstractBannerViewModel} from \"./AbstractBannerViewModel\";\n\nexport class VictoryBannerViewModel extends AbstractBannerViewModel {\n\n constructor() {\n super();\n this.id = 'victory-banner';\n this.banner = null;\n }\n\n render() {\n BannerLayer.setContent(`
`);\n BannerLayer.show();\n\n const {lottie} = window;\n const {loadAnimation} = lottie;\n\n this.banner = loadAnimation({\n container: document.getElementById(this.id),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: '/lottie/victory-banner/data.json'\n });\n this.banner.addEventListener('DOMLoaded', () => {\n this.isLoaded = true;\n this.banner.playSegments([0,45], true);\n this.banner.loop = true;\n this.banner.playSegments([45,96], false);\n });\n }\n\n close() {\n return new Promise((resolve) => {\n if (!this.isLoaded) {\n this.banner?.destroy();\n BannerLayer.hideAndClear();\n resolve();\n return;\n }\n\n this.banner.loop = false;\n this.banner.addEventListener('complete', () => {\n BannerLayer.hideAndClear();\n resolve();\n });\n this.banner.playSegments([97,123], false);\n });\n }\n\n}","import {AbstractViewModelComponent} from \"../../framework/AbstractViewModelComponent\";\nimport {EVENTS} from \"../../constants/Events\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class AlphaOwnedComponent extends AbstractViewModelComponent {\n\n constructor(gameState, elementId) {\n super(gameState);\n this.elementId = elementId;\n this.alphaOwnedClass = 'alpha-owned';\n\n this.alphaOwnedHandler = this.alphaOwnedHandler.bind(this);\n }\n\n getAlphaOwned() {\n let alpha = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player ? this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.alpha : 0;\n return this.numberFormatter.format(alpha);\n }\n\n alphaOwnedHandler(event) {\n if (event.playerType !== PLAYER_TYPES.PLAYER) {\n return;\n }\n\n const alphaOwnedLinkElm = document.getElementById(this.elementId);\n\n if (!alphaOwnedLinkElm) {\n window.removeEventListener(EVENTS.ALPHA_COUNT_CHANGED, this.alphaOwnedHandler);\n return;\n }\n\n const alphaOwnedNumbersContainer = alphaOwnedLinkElm.querySelector(`.${this.alphaOwnedClass}`);\n alphaOwnedNumbersContainer.innerText = this.getAlphaOwned();\n }\n\n initPageCode() {\n const alphaOwnedLinkElm = document.getElementById(this.elementId);\n const alphaOwnedNumbersContainer = alphaOwnedLinkElm.querySelector(`.${this.alphaOwnedClass}`);\n alphaOwnedNumbersContainer.innerText = this.getAlphaOwned();\n\n window.addEventListener(EVENTS.ALPHA_COUNT_CHANGED, this.alphaOwnedHandler);\n }\n\n renderHTML() {\n return `\n \n \n \n \n `;\n }\n}","import {AbstractViewModelComponent} from \"../../framework/AbstractViewModelComponent\";\nimport {EVENTS} from \"../../constants/Events\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class EnergyUsageComponent extends AbstractViewModelComponent {\n\n constructor(gameState, elementId) {\n super(gameState);\n this.elementId = elementId;\n this.energyUsageClass = 'energy-usage';\n\n this.energyUsageHandler = this.energyUsageHandler.bind(this);\n }\n\n getEnergyUsage() {\n const load = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player ? this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.load : 0;\n const structsLoad = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player ? this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.structs_load : 0;\n const capacity = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player ? this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.capacity : 0;\n const connectionCapacity = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player ? this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.connection_capacity : 0;\n\n let totalLoad = load + structsLoad;\n let totalCapacity = capacity + connectionCapacity;\n totalLoad = this.numberFormatter.format(totalLoad);\n totalCapacity = this.numberFormatter.format(totalCapacity);\n\n return `${totalLoad}/${totalCapacity}`;\n }\n\n energyUsageHandler(event) {\n if (event.playerType !== PLAYER_TYPES.PLAYER) {\n return;\n }\n\n const energyUsageLinkElm = document.getElementById(this.elementId);\n\n if (!energyUsageLinkElm) {\n window.removeEventListener(EVENTS.ENERGY_USAGE_CHANGED, this.energyUsageHandler);\n return;\n }\n\n const energyUsageNumbersContainer = energyUsageLinkElm.querySelector(`.${this.energyUsageClass}`);\n energyUsageNumbersContainer.innerText = this.getEnergyUsage();\n }\n\n initPageCode() {\n const energyUsageLinkElm = document.getElementById(this.elementId);\n const energyUsageNumbersContainer = energyUsageLinkElm.querySelector(`.${this.energyUsageClass}`);\n energyUsageNumbersContainer.innerText = this.getEnergyUsage();\n\n window.addEventListener(EVENTS.ENERGY_USAGE_CHANGED, this.energyUsageHandler);\n }\n\n renderHTML() {\n return `\n \n \n \n \n `;\n }\n}","import {AbstractViewModelComponent} from \"../../framework/AbstractViewModelComponent\";\n\nexport class GenericResourceComponent extends AbstractViewModelComponent {\n\n constructor(gameState) {\n super(gameState);\n }\n\n renderHTML(\n elementId,\n iconClass,\n toolTipText,\n value,\n iconFirst = false\n ) {\n let iconPos1 = '';\n let iconPos2 = ``;\n\n if (iconFirst) {\n iconPos1 = iconPos2;\n iconPos2 = '';\n }\n\n return `\n \n ${iconPos1}\n ${value}\n ${iconPos2}\n \n `;\n }\n}","export class LottieCustomPlayer {\n constructor() {\n this.animations = [];\n }\n\n getAnimation(animationName) {\n for (let i = 0; i < this.animations.length; i++) {\n if (this.animations[i].animationName === animationName) {\n return this.animations[i];\n }\n }\n return null;\n }\n\n hideAll() {\n for (let i = 0; i < this.animations.length; i++) {\n this.animations[i].hide();\n }\n }\n\n stopAll() {\n for (let i = 0; i < this.animations.length; i++) {\n this.animations[i].stop();\n }\n }\n\n checkHasAnimations() {\n if (this.animations.length === 0) {\n throw Error('No animations to play');\n }\n }\n\n /**\n * @param {string} animationName\n */\n play(animationName) {\n this.checkHasAnimations();\n for (let i = 0; i < this.animations.length; i++) {\n if (this.animations[i].animationName === animationName) {\n this.animations[i].play().then();\n break;\n }\n }\n }\n\n /**\n * @param {MapStructLottieAnimationSVG} animation\n */\n registerAnimation(animation) {\n this.animations.push(animation);\n }\n\n /**\n * @param {string[]} animationsToAutoplay\n */\n init(animationsToAutoplay = []) {\n for (let i = 0; i < this.animations.length; i++) {\n let autoplay = animationsToAutoplay.includes(this.animations[i].animationName);\n this.animations[i].init(autoplay);\n }\n }\n\n /**\n * Destroy every registered animation and clear the registry.\n */\n destroyAll() {\n for (let i = 0; i < this.animations.length; i++) {\n this.animations[i].destroy();\n }\n this.animations = [];\n }\n}\n","import {EVENTS} from \"../../constants/Events\";\nimport {StructStillBuilder} from \"../../builders/StructStillBuilder\";\nimport {StructType} from \"../../models/StructType\"\n\nexport class MapStructLottieAnimationSVG {\n\n /**\n * Process-wide cache of in-flight / completed image decodes, keyed by\n * source URL. Repeated swaps of the same sprite across wrapper instances\n * (and across animations) skip the network round-trip and decode cost.\n *\n * @type {Map>}\n */\n static _imageCache = new Map();\n\n /**\n * Preload (and where supported, decode) an image. Successful loads stay\n * cached for the page lifetime; failures are evicted so a transient\n * error can't permanently poison the entry.\n *\n * @param {string} src\n * @returns {Promise}\n */\n static _preloadImage(src) {\n const cached = MapStructLottieAnimationSVG._imageCache.get(src);\n if (cached) {\n return cached;\n }\n\n const img = new Image();\n img.src = src;\n\n const ready = typeof img.decode === 'function'\n ? img.decode()\n : new Promise((resolve, reject) => {\n img.onload = () => resolve();\n img.onerror = reject;\n });\n\n const entry = ready\n .then(() => img)\n .catch((err) => {\n MapStructLottieAnimationSVG._imageCache.delete(src);\n throw err;\n });\n\n MapStructLottieAnimationSVG._imageCache.set(src, entry);\n return entry;\n }\n\n /**\n * Only works with Lottie SVG rendering.\n *\n * @param {GameState} gameState\n * @param {StructManager} structManager\n * @param {string} animationName\n * @param {string} structId\n * @param {StructType} structType\n * @param {string} lottieContainerId\n * @param {Object} lottieLoadOptions\n */\n constructor(gameState, structManager, animationName, structId, structType, lottieContainerId, lottieLoadOptions) {\n this.gameState = gameState;\n this.structManager = structManager;\n this.structStillBuilder = new StructStillBuilder(gameState);\n this.animationName = animationName;\n this.structId = structId;\n this.structType = structType;\n this.lottieContainerId = lottieContainerId;\n this.lottieLoadOptions = lottieLoadOptions;\n this.animation = null;\n this.isLoaded = false;\n\n this.lottieLoadOptions.autoplay = false;\n\n this.onCompleteCallback = () => {};\n\n // Monotonic generation token used to disambiguate overlapping\n // configStructImages() calls. Each new config bumps the counter\n // so that in flight swaps that finish after a newer config started\n // bail out before mutating the DOM so the latest sprite set always wins.\n this._configGen = 0;\n }\n\n /**\n * Swap the image in the lottie animation as identified by the targetClass with the image specified by newImageSrc.\n *\n * @param {string} targetClass the class of the parent g container in the lottie that holds the image to replace\n * @param {string} newImageSrc the image source for the new image\n * @param {number} [generation] generation token from a configStructImages call.\n * If provided and stale by the time preload finishes, the append is skipped so a newer config can win.\n * @returns {Promise}\n */\n swapImage(targetClass, newImageSrc, generation) {\n const originalSVGImage = document.querySelector(\n `#${this.lottieContainerId} g g${targetClass} image`\n );\n\n if (!originalSVGImage) {\n return Promise.resolve();\n }\n\n const gContainer = originalSVGImage.parentNode;\n gContainer.innerHTML = '';\n\n if (!newImageSrc) {\n return Promise.resolve();\n }\n\n const height = originalSVGImage.height.baseVal.valueAsString;\n const width = originalSVGImage.width.baseVal.valueAsString;\n\n return MapStructLottieAnimationSVG._preloadImage(newImageSrc)\n .catch(() => {\n // Swallow preload failures and still insert the SVG ; the\n // browser may yet succeed via its own fetch and a broken-image\n // attempt is no worse than a permanently empty slot.\n })\n .then(() => {\n // Bail if the wrapper was destroyed during the preload; destroy()\n // nulls this.animation, so the append below would land on an\n // orphaned SVG node that lottie has already torn down.\n if (!this.animation) {\n return;\n }\n\n // Bail if a newer configStructImages superseded us. Leave the DOM\n // alone so the live owner's swap can win.\n if (generation !== undefined && generation !== this._configGen) {\n return;\n }\n\n const svgImage = document.createElementNS('http://www.w3.org/2000/svg', 'image');\n svgImage.setAttributeNS(null, 'height', height);\n svgImage.setAttributeNS(null, 'width', width);\n svgImage.setAttributeNS('http://www.w3.org/1999/xlink', 'href', newImageSrc);\n svgImage.setAttributeNS(null, 'visibility', 'visible');\n\n gContainer.append(svgImage);\n });\n }\n\n /**\n * @returns {Promise} resolves with the generation token this\n * call ran under, so callers can detect being superseded by a later\n * configStructImages() before continuing.\n */\n configStructImages() {\n const struct = this.structManager.getStructById(this.structId);\n if (!struct) {\n return Promise.resolve(this._configGen);\n }\n const structStillRenderer = this.structStillBuilder.build(this.structType);\n\n let structInitSrc = structStillRenderer.structVariantDmg;\n\n if (this.structType.max_health === struct.health) {\n structInitSrc = structStillRenderer.structVariantBase;\n }\n\n const generation = ++this._configGen;\n\n return Promise.all([\n this.swapImage('.struct_top_layer_1', structStillRenderer.topDetailLayer1, generation),\n this.swapImage('.struct_top_layer_2', structStillRenderer.topDetailLayer2, generation),\n this.swapImage('.struct_init', structInitSrc, generation),\n this.swapImage('.struct_dmg', structStillRenderer.structVariantDmg, generation),\n this.swapImage('.struct_bottom_layer_1', structStillRenderer.bottomDetailLayer1, generation),\n ]).then(() => generation);\n }\n\n show() {\n this.lottieLoadOptions.container.style.visibility = 'visible';\n }\n\n hide() {\n this.lottieLoadOptions.container.style.visibility = 'hidden';\n }\n\n async play() {\n if (!this.animation) {\n // First-time play: lazily load the Lottie data and let the DOMLoaded\n // callback (customizeLottie) trigger playback once the JSON + images\n // have finished downloading.\n this.load(true);\n return;\n }\n\n if (!this.isLoaded) {\n // Animation has been requested but the JSON/images aren't ready yet.\n // The pending DOMLoaded callback will autoplay, so just no-op here to\n // avoid issuing a duplicate play() against an unloaded Lottie.\n return;\n }\n\n this.animation.stop();\n const ranGen = await this.configStructImages();\n\n // Bail if a newer play()/configStructImages() superseded us, or if\n // destroy() ran while images were preloading. The newer caller (or\n // teardown) is responsible for the final DOM/animation state.\n if (!this.animation || ranGen !== this._configGen) {\n return;\n }\n\n this.show();\n this.animation.play();\n }\n\n stop() {\n this.hide();\n if (this.animation) {\n this.animation.stop();\n }\n }\n\n /**\n * @param {boolean} autoplayAfterCustomized\n * @return {Promise}\n */\n async customizeLottie(autoplayAfterCustomized) {\n await this.configStructImages();\n\n // destroy() may have run while images were preloading; bail out so we\n // don't flip flags or dispatch events against a torn-down wrapper.\n if (!this.animation) {\n return;\n }\n\n this.isLoaded = true;\n\n if (autoplayAfterCustomized) {\n await this.play();\n\n // play() also awaits internally, so destroy() may have raced in\n // between. Re-check before dispatching the customized event.\n if (!this.animation) {\n return;\n }\n }\n\n if (this.lottieLoadOptions && this.lottieLoadOptions.container) {\n this.lottieLoadOptions.container.dispatchEvent(new CustomEvent(\n EVENTS.LOTTIE_CUSTOMIZED,\n {\n detail: {\n animationName: this.animationName,\n }\n }\n ));\n }\n }\n\n /**\n * Initialize the wrapper without fetching the Lottie data. Pass\n * `autoplayAfterInit = true` to eagerly load and autoplay; otherwise the\n * animation is loaded lazily on the first play() call.\n *\n * @param {boolean} autoplayAfterInit\n */\n init(autoplayAfterInit) {\n this.hide();\n\n if (autoplayAfterInit) {\n this.load(true);\n }\n }\n\n /**\n * Load the Lottie animation data and register completion handlers. Safe\n * to call multiple times; subsequent calls are no-ops.\n *\n * @param {boolean} autoplayAfterCustomized whether to autoplay once\n * customizeLottie runs after DOMLoaded\n */\n load(autoplayAfterCustomized = false) {\n if (this.animation) {\n return;\n }\n\n const {lottie} = window;\n const {loadAnimation} = lottie;\n const animation = loadAnimation(this.lottieLoadOptions);\n\n animation.addEventListener('DOMLoaded', this.customizeLottie.bind(this, autoplayAfterCustomized));\n\n animation.addEventListener('complete', () => {\n this.hide();\n this.onCompleteCallback();\n });\n\n this.animation = animation;\n }\n\n /**\n * Tear down the underlying lottie player and release references so the\n * animation's frame cache, image bitmaps, internal listeners, and SVG\n * renderer can be garbage collected. Safe to call when the animation was\n * never loaded.\n */\n destroy() {\n // Drop our own callback first so any in-flight 'complete' event that\n // fires during lottie teardown can't re-enter wrapper logic against a\n // half-destroyed instance.\n this.onCompleteCallback = () => {};\n\n if (this.animation) {\n try {\n this.animation.destroy();\n } catch (e) {\n // lottie can throw if destroy is invoked on a partially-initialized\n // animation (e.g. JSON fetch in flight). Swallow so a single bad\n // animation can't block teardown of the rest of the viewer.\n }\n this.animation = null;\n }\n\n this.isLoaded = false;\n\n // Drop the strong reference to the (possibly already detached) DOM\n // container so it can be reclaimed even if something else still holds\n // a reference to this wrapper.\n if (this.lottieLoadOptions) {\n this.lottieLoadOptions.container = null;\n }\n }\n}\n","import {ANIMATION} from \"../../constants/AnimationConstants\";\nimport {LottieCustomPlayer} from \"./LottieCustomPlayer\";\nimport {MapStructLottieAnimationSVG} from \"./MapStructLottieAnimationSVG\";\nimport {StructStillBuilder} from \"../../builders/StructStillBuilder\";\nimport {CaseConverter, LOWER_SNAKE_CASE} from \"../../util/CaseConverter\";\nimport {AnimationEndEvent} from \"../../events/AnimationEndEvent\";\nimport {STRUCT_TYPES} from \"../../constants/StructConstants\";\n\nexport class MapStructViewerComponent {\n\n /**\n * @param {GameState} gameState\n * @param {StructManager} structManager\n * @param {string} structId\n * @param {number} structTypeId\n * @param {string|null} mapId the id of the map that owns this viewer; included on\n * dispatched AnimationEndEvents so listeners can filter by their own map\n * @param {string} idPrefix prepended to every internal lottie/container element id.\n * Lets multiple viewers (e.g. the on-map viewer and a picture-in-picture viewer)\n * coexist for the same struct without `document.getElementById` collisions.\n * @param {boolean} dispatchAnimationEnd whether the viewer should dispatch an\n * `AnimationEndEvent` on lottie complete. Picture-in-picture / mirror viewers\n * must pass `false` so they don't drive the global `AnimationEventQueue`.\n */\n constructor(\n gameState,\n structManager,\n structId,\n structTypeId,\n mapId = null,\n idPrefix = '',\n dispatchAnimationEnd = true\n ) {\n this.gameState = gameState;\n this.structManager = structManager;\n this.structId = structId;\n this.structTypeId = structTypeId;\n this.mapId = mapId;\n this.idPrefix = idPrefix;\n this.dispatchAnimationEnd = dispatchAnimationEnd;\n this.layerZIndex = 0;\n\n this.lottieCustomPlayer = new LottieCustomPlayer();\n this.caseConverter = new CaseConverter();\n this.structStillBuilder = new StructStillBuilder(this.gameState);\n\n /**\n * Optional hook invoked from `prepareAnimationLifecycle` after the last\n * animation in a play/init cycle completes. Fires regardless of\n * `dispatchAnimationEnd` so muted viewers (e.g. the picture-in-picture\n * mirror) can still observe their own completion without driving the\n * global `AnimationEventQueue`.\n *\n * @type {function(): void}\n */\n this.onAnimationsComplete = null;\n\n this.showStructStillAfterAnimation = true;\n this.structType = this.gameState.structTypes.getStructTypeById(structTypeId);\n\n this.deploymentSpaceAnimationContainerId = `${this.idPrefix}deploymentSpaceAnimation-${this.structId}`;\n this.deploymentAirAnimationContainerId = `${this.idPrefix}deploymentAirAnimation-${this.structId}`;\n this.deploymentLandAnimationContainerId = `${this.idPrefix}deploymentLandAnimation-${this.structId}`;\n this.deploymentWaterAnimationContainerId = `${this.idPrefix}deploymentWaterAnimation-${this.structId}`;\n\n this.moveArriveAnimationContainerId = `${this.idPrefix}moveArriveAnimation-${this.structId}`;\n this.moveDepartAnimationContainerId = `${this.idPrefix}moveDepartAnimation-${this.structId}`;\n\n this.stealthActivateAnimationContainerId = `${this.idPrefix}stealthActivateAnimation-${this.structId}`;\n this.stealthDeactivateAnimationContainerId = `${this.idPrefix}stealthDeactivateAnimation-${this.structId}`;\n\n this.impactAngledDownCannonAnimationContainerId = `${this.idPrefix}impactAngledDownCannonAnimation-${this.structId}`;\n this.impactAngledDownMissileAnimationContainerId = `${this.idPrefix}impactAngledDownMissileAnimation-${this.structId}`;\n this.impactAngledDownTorpedoAnimationContainerId = `${this.idPrefix}impactAngledDownTorpedoAnimation-${this.structId}`;\n this.impactAngledUpMissileAnimationContainerId = `${this.idPrefix}impactAngledUpMissileAnimation-${this.structId}`;\n this.impactAngledUpTorpedoAnimationContainerId = `${this.idPrefix}impactAngledUpTorpedoAnimation-${this.structId}`;\n this.impactAngledUpGatlingAnimationContainerId = `${this.idPrefix}impactAngledUpGatlingAnimation-${this.structId}`;\n this.impactAngledUpCannonAnimationContainerId = `${this.idPrefix}impactAngledUpCannonAnimation-${this.structId}`;\n this.impactHorizontalCannonAnimationContainerId = `${this.idPrefix}impactHorizontalCannonAnimation-${this.structId}`;\n this.impactHorizontalGatlingAnimationContainerId = `${this.idPrefix}impactHorizontalGatlingAnimation-${this.structId}`;\n this.impactHorizontalMissileAnimationContainerId = `${this.idPrefix}impactHorizontalMissileAnimation-${this.structId}`;\n this.impactHorizontalTorpedoAnimationContainerId = `${this.idPrefix}impactHorizontalTorpedoAnimation-${this.structId}`;\n\n this.evadeAnimationContainerId = `${this.idPrefix}evadeAnimation-${this.structId}`;\n\n this.shakeAngledDownDefaultFirstAnimationContainerId = `${this.idPrefix}shakeAngledDownDefaultFirstAnimation-${this.structId}`;\n this.shakeAngledDownDefaultLastAnimationContainerId = `${this.idPrefix}shakeAngledDownDefaultLastAnimation-${this.structId}`;\n this.shakeAngledUpDefaultFirstAnimationContainerId = `${this.idPrefix}shakeAngledUpDefaultFirstAnimation-${this.structId}`;\n this.shakeAngledUpDefaultLastAnimationContainerId = `${this.idPrefix}shakeAngledUpDefaultLastAnimation-${this.structId}`;\n this.shakeAngledUpGatlingFirstAnimationContainerId = `${this.idPrefix}shakeAngledUpGatlingFirstAnimation-${this.structId}`;\n this.shakeAngledUpGatlingLastAnimationContainerId = `${this.idPrefix}shakeAngledUpGatlingLastAnimation-${this.structId}`;\n this.shakeHorizontalDefaultFirstAnimationContainerId = `${this.idPrefix}shakeHorizontalDefaultFirstAnimation-${this.structId}`;\n this.shakeHorizontalDefaultLastAnimationContainerId = `${this.idPrefix}shakeHorizontalDefaultLastAnimation-${this.structId}`;\n this.shakeHorizontalGatlingFirstAnimationContainerId = `${this.idPrefix}shakeHorizontalGatlingFirstAnimation-${this.structId}`;\n this.shakeHorizontalGatlingLastAnimationContainerId = `${this.idPrefix}shakeHorizontalGatlingLastAnimation-${this.structId}`;\n\n this.destroySpaceAnimationContainerId = `${this.idPrefix}destroySpaceAnimation-${this.structId}`;\n this.destroyAirAnimationContainerId = `${this.idPrefix}destroyAirAnimation-${this.structId}`;\n this.destroyLandAnimationContainerId = `${this.idPrefix}destroyLandAnimation-${this.structId}`;\n this.destroyWaterAnimationContainerId = `${this.idPrefix}destroyWaterAnimation-${this.structId}`;\n\n this.attackPrimaryWeaponAnimationContainerId = `${this.idPrefix}attackPrimaryWeaponAnimation-${this.structId}`;\n this.attackSecondaryWeaponAnimationContainerId = `${this.idPrefix}attackSecondaryWeaponAnimation-${this.structId}`;\n\n this.structStillContainerId = `${this.idPrefix}structStill-${this.structId}`;\n }\n\n getLayerZIndex() {\n this.layerZIndex++;\n return this.layerZIndex;\n }\n\n hideStructStill() {\n const structStillContainer = document.getElementById(this.structStillContainerId);\n if (!structStillContainer) {\n return;\n }\n structStillContainer.classList.add('invisible');\n }\n\n showStructStill() {\n const structStillContainer = document.getElementById(this.structStillContainerId);\n if (!structStillContainer) {\n return;\n }\n structStillContainer.classList.remove('invisible');\n }\n\n /**\n * @param {boolean} isActive whether the struct should be rendered in a stealth-active state\n */\n setStealthActive(isActive) {\n const structStillContainer = document.getElementById(this.structStillContainerId);\n if (!structStillContainer) {\n return;\n }\n if (isActive) {\n structStillContainer.classList.add('struct-stealth-active');\n } else {\n structStillContainer.classList.remove('struct-stealth-active');\n }\n }\n\n /**\n * Render the struct still HTML using either an explicit health value or, when\n * none is provided, the struct's current health from gameState. The override\n * is used during multi-source attack sequences where gameState already holds\n * the final health but the visual should reflect the per-animation partial\n * state.\n *\n * @param {number|null} healthOverride\n * @return {string}\n */\n renderStructStillInnerHTML(healthOverride = null) {\n const struct = this.structManager.getStructById(this.structId);\n if (!struct) {\n return '';\n }\n const structStill = this.structStillBuilder.build(this.structType);\n const health = (healthOverride !== null && healthOverride !== undefined)\n ? healthOverride\n : struct.health;\n return structStill.renderHTML(health);\n }\n\n /**\n * Refresh only the struct still image, preserving any state classes (e.g.\n * struct-stealth-active) on the container and leaving all other animation\n * layers untouched. Pass `healthOverride` to render a specific (partial)\n * health value rather than the current gameState value.\n *\n * @param {number|null} healthOverride\n */\n updateStructStill(healthOverride = null) {\n const structStillContainer = document.getElementById(this.structStillContainerId);\n if (!structStillContainer) {\n return;\n }\n structStillContainer.innerHTML = this.renderStructStillInnerHTML(healthOverride);\n }\n\n /**\n * @param {boolean} showStructStillDuringAnimation\n * @param {boolean} showStructStillAfterAnimation\n */\n preparePlaybackState(\n showStructStillDuringAnimation = false,\n showStructStillAfterAnimation = true\n ) {\n this.showStructStillAfterAnimation = showStructStillAfterAnimation;\n this.lottieCustomPlayer.hideAll();\n\n if (showStructStillDuringAnimation) {\n this.showStructStill();\n } else {\n this.hideStructStill();\n }\n }\n\n resetAnimationCallbacks() {\n for (let i = 0; i < this.lottieCustomPlayer.animations.length; i++) {\n this.lottieCustomPlayer.animations[i].onCompleteCallback = () => {};\n }\n }\n\n /**\n * @param {string[]} animationNames\n * @param {object} options optional values from the originating AnimationEvent;\n * `healthAfter` is read here to drive partial-state still/HUD rendering for\n * multi-source attack sequences (where gameState already holds the final\n * post-attack value but the visual should reflect this animation's partial\n * snapshot)\n */\n prepareAnimationLifecycle(animationNames, options = {}) {\n this.resetAnimationCallbacks();\n\n let pendingCount = animationNames.length;\n\n const healthAfter = (options && options.healthAfter !== undefined && options.healthAfter !== null)\n ? parseInt('' + options.healthAfter)\n : null;\n\n for (let i = 0; i < animationNames.length; i++) {\n const animationName = animationNames[i];\n const animation = this.lottieCustomPlayer.getAnimation(animationName);\n\n if (!animation) {\n throw new Error(`Missing animation \"${animationName}\" for struct ${this.structId}`);\n }\n\n animation.onCompleteCallback = () => {\n if (animationName === ANIMATION.NAMES.STEALTH.ACTIVATE) {\n this.setStealthActive(true);\n } else if (animationName === ANIMATION.NAMES.STEALTH.DEACTIVATE) {\n this.setStealthActive(false);\n }\n\n pendingCount--;\n if (pendingCount === 0) {\n this.updateStructStill(healthAfter);\n if (this.showStructStillAfterAnimation) {\n this.showStructStill();\n }\n if (typeof this.onAnimationsComplete === 'function') {\n this.onAnimationsComplete();\n }\n if (this.dispatchAnimationEnd) {\n window.dispatchEvent(new AnimationEndEvent(\n animationName,\n this.structId,\n this.mapId,\n healthAfter\n ));\n }\n }\n };\n }\n }\n\n /**\n * @param {string[]} animationNames\n * @param {boolean} showStructStillDuringAnimation whether or not to show the still struct image while the animation plays\n * @param {boolean} showStructStillAfterAnimation whether or not the still struct image should still be shown after the animations ends\n * @param {object} options the originating AnimationEvent's options (e.g. healthAfter)\n */\n play(\n animationNames,\n showStructStillDuringAnimation = false,\n showStructStillAfterAnimation = true,\n options = {}\n ) {\n this.preparePlaybackState(\n showStructStillDuringAnimation,\n showStructStillAfterAnimation\n );\n this.prepareAnimationLifecycle(animationNames, options);\n\n for (let i = 0; i < animationNames.length; i++) {\n this.lottieCustomPlayer.play(animationNames[i]);\n }\n }\n\n /**\n * @param {string[]} animationNames the names of the animations to play after initialization\n * @param {boolean} showStructStillDuringAnimation whether or not to show the still struct image while the animation plays\n * @param {boolean} showStructStillAfterAnimation whether or not the still struct image should still be shown after the animations ends\n * @param {object} options the originating AnimationEvent's options (e.g. healthAfter)\n */\n init(\n animationNames = [],\n showStructStillDuringAnimation = false,\n showStructStillAfterAnimation = true,\n options = {}\n ) {\n this.registerAnimations();\n\n if (animationNames.length) {\n this.preparePlaybackState(\n showStructStillDuringAnimation,\n showStructStillAfterAnimation\n );\n this.prepareAnimationLifecycle(animationNames, options);\n } else {\n this.showStructStillAfterAnimation = true;\n this.lottieCustomPlayer.hideAll();\n this.showStructStill();\n }\n\n this.lottieCustomPlayer.init(animationNames);\n }\n\n renderMoveHTML() {\n if (!this.structType.isMovable()) {\n return '';\n }\n\n return `\n
\n
\n `;\n }\n\n renderStealthHTML() {\n if (!this.structType.stealth_systems) {\n return '';\n }\n\n return `\n
\n
\n `;\n }\n\n renderEvadeHTML() {\n if (!this.structType.hasDefensiveManeuver() && !this.structType.hasSignalJamming()) {\n return '';\n }\n\n return `\n
\n `;\n }\n\n renderAttackPrimaryWeaponHTML() {\n if (!this.structType.hasPrimaryWeapon() && this.structType.type !== STRUCT_TYPES.PLANETARY_DEFENSE_CANNON) {\n return '';\n }\n\n return `\n
\n `;\n }\n\n renderAttackSecondaryWeaponHTML() {\n if (!this.structType.hasSecondaryWeapon()) {\n return '';\n }\n\n return `\n
\n `;\n }\n\n renderHTML() {\n const struct = this.structManager.getStructById(this.structId);\n const stealthClass = struct && struct.isHidden() ? ' struct-stealth-active' : '';\n\n return `\n
\n
${this.renderStructStillInnerHTML()}
\n\n ${this.renderAttackSecondaryWeaponHTML()}\n ${this.renderAttackPrimaryWeaponHTML()}\n\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n ${this.renderEvadeHTML()}\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n ${this.renderStealthHTML()}\n ${this.renderMoveHTML()}\n\n
\n
\n
\n
\n
\n `;\n }\n\n registerAnimations() {\n this.registerStandardAnimations();\n this.registerMoveAnimations();\n this.registerStealthAnimations();\n this.registerEvadeAnimation();\n this.registerAttackPrimaryWeaponAnimation();\n this.registerAttackSecondaryWeaponAnimation();\n }\n\n /**\n * Tear down all lottie players owned by this viewer. Must be called before\n * the viewer is dereferenced (e.g. when its tile is cleared or the viewer\n * is replaced), otherwise lottie-web's internal animation registry keeps\n * the JSON, image bitmaps, rAF subscription, and DOM listeners alive.\n */\n destroy() {\n this.lottieCustomPlayer.destroyAll();\n }\n\n registerStandardAnimations() {\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.DEPLOYMENT.SPACE,\n this.structId,\n this.structType,\n this.deploymentSpaceAnimationContainerId,\n {\n container: document.getElementById(this.deploymentSpaceAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/deployment_space/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.DEPLOYMENT.AIR,\n this.structId,\n this.structType,\n this.deploymentAirAnimationContainerId,\n {\n container: document.getElementById(this.deploymentAirAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/deployment_air/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.DEPLOYMENT.LAND,\n this.structId,\n this.structType,\n this.deploymentLandAnimationContainerId,\n {\n container: document.getElementById(this.deploymentLandAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/deployment_land/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.DEPLOYMENT.WATER,\n this.structId,\n this.structType,\n this.deploymentWaterAnimationContainerId,\n {\n container: document.getElementById(this.deploymentWaterAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/deployment_water/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.IMPACT.ANGLED.DOWN.CANNON,\n this.structId,\n this.structType,\n this.impactAngledDownCannonAnimationContainerId,\n {\n container: document.getElementById(this.impactAngledDownCannonAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/impact_angled_down_cannon/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.IMPACT.ANGLED.DOWN.MISSILE,\n this.structId,\n this.structType,\n this.impactAngledDownMissileAnimationContainerId,\n {\n container: document.getElementById(this.impactAngledDownMissileAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/impact_angled_down_missile/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.IMPACT.ANGLED.DOWN.TORPEDO,\n this.structId,\n this.structType,\n this.impactAngledDownTorpedoAnimationContainerId,\n {\n container: document.getElementById(this.impactAngledDownTorpedoAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/impact_angled_down_torpedo/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.IMPACT.ANGLED.UP.CANNON,\n this.structId,\n this.structType,\n this.impactAngledUpCannonAnimationContainerId,\n {\n container: document.getElementById(this.impactAngledUpCannonAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/impact_angled_up_cannon/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.IMPACT.ANGLED.UP.MISSILE,\n this.structId,\n this.structType,\n this.impactAngledUpMissileAnimationContainerId,\n {\n container: document.getElementById(this.impactAngledUpMissileAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/impact_angled_up_missile/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.IMPACT.ANGLED.UP.TORPEDO,\n this.structId,\n this.structType,\n this.impactAngledUpTorpedoAnimationContainerId,\n {\n container: document.getElementById(this.impactAngledUpTorpedoAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/impact_angled_up_torpedo/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.IMPACT.ANGLED.UP.GATLING,\n this.structId,\n this.structType,\n this.impactAngledUpGatlingAnimationContainerId,\n {\n container: document.getElementById(this.impactAngledUpGatlingAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/impact_angled_up_gatling/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.IMPACT.HORIZONTAL.CANNON,\n this.structId,\n this.structType,\n this.impactHorizontalCannonAnimationContainerId,\n {\n container: document.getElementById(this.impactHorizontalCannonAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/impact_horizontal_cannon/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.IMPACT.HORIZONTAL.GATLING,\n this.structId,\n this.structType,\n this.impactHorizontalGatlingAnimationContainerId,\n {\n container: document.getElementById(this.impactHorizontalGatlingAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/impact_horizontal_gatling/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.IMPACT.HORIZONTAL.MISSILE,\n this.structId,\n this.structType,\n this.impactHorizontalMissileAnimationContainerId,\n {\n container: document.getElementById(this.impactHorizontalMissileAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/impact_horizontal_missile/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.IMPACT.HORIZONTAL.TORPEDO,\n this.structId,\n this.structType,\n this.impactHorizontalTorpedoAnimationContainerId,\n {\n container: document.getElementById(this.impactHorizontalTorpedoAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/impact_horizontal_torpedo/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.SHAKE.ANGLED.DOWN.DEFAULT.FIRST,\n this.structId,\n this.structType,\n this.shakeAngledDownDefaultFirstAnimationContainerId,\n {\n container: document.getElementById(this.shakeAngledDownDefaultFirstAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/shake_angled_down_default_first/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.SHAKE.ANGLED.DOWN.DEFAULT.LAST,\n this.structId,\n this.structType,\n this.shakeAngledDownDefaultLastAnimationContainerId,\n {\n container: document.getElementById(this.shakeAngledDownDefaultLastAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/shake_angled_down_default_last/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.SHAKE.ANGLED.UP.DEFAULT.FIRST,\n this.structId,\n this.structType,\n this.shakeAngledUpDefaultFirstAnimationContainerId,\n {\n container: document.getElementById(this.shakeAngledUpDefaultFirstAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/shake_angled_up_default_first/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.SHAKE.ANGLED.UP.DEFAULT.LAST,\n this.structId,\n this.structType,\n this.shakeAngledUpDefaultLastAnimationContainerId,\n {\n container: document.getElementById(this.shakeAngledUpDefaultLastAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/shake_angled_up_default_last/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.SHAKE.ANGLED.UP.GATLING.FIRST,\n this.structId,\n this.structType,\n this.shakeAngledUpGatlingFirstAnimationContainerId,\n {\n container: document.getElementById(this.shakeAngledUpGatlingFirstAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/shake_angled_up_gatling_first/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.SHAKE.ANGLED.UP.GATLING.LAST,\n this.structId,\n this.structType,\n this.shakeAngledUpGatlingLastAnimationContainerId,\n {\n container: document.getElementById(this.shakeAngledUpGatlingLastAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/shake_angled_up_gatling_last/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.SHAKE.HORIZONTAL.DEFAULT.FIRST,\n this.structId,\n this.structType,\n this.shakeHorizontalDefaultFirstAnimationContainerId,\n {\n container: document.getElementById(this.shakeHorizontalDefaultFirstAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/shake_horizontal_default_first/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.SHAKE.HORIZONTAL.DEFAULT.LAST,\n this.structId,\n this.structType,\n this.shakeHorizontalDefaultLastAnimationContainerId,\n {\n container: document.getElementById(this.shakeHorizontalDefaultLastAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/shake_horizontal_default_last/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.SHAKE.HORIZONTAL.GATLING.FIRST,\n this.structId,\n this.structType,\n this.shakeHorizontalGatlingFirstAnimationContainerId,\n {\n container: document.getElementById(this.shakeHorizontalGatlingFirstAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/shake_horizontal_gatling_first/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.SHAKE.HORIZONTAL.GATLING.LAST,\n this.structId,\n this.structType,\n this.shakeHorizontalGatlingLastAnimationContainerId,\n {\n container: document.getElementById(this.shakeHorizontalGatlingLastAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/shake_horizontal_gatling_last/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.DESTROY.SPACE,\n this.structId,\n this.structType,\n this.destroySpaceAnimationContainerId,\n {\n container: document.getElementById(this.destroySpaceAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/destroy_space/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.DESTROY.AIR,\n this.structId,\n this.structType,\n this.destroyAirAnimationContainerId,\n {\n container: document.getElementById(this.destroyAirAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/destroy_air/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.DESTROY.LAND,\n this.structId,\n this.structType,\n this.destroyLandAnimationContainerId,\n {\n container: document.getElementById(this.destroyLandAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/destroy_land/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.DESTROY.WATER,\n this.structId,\n this.structType,\n this.destroyWaterAnimationContainerId,\n {\n container: document.getElementById(this.destroyWaterAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/destroy_water/data.json`\n }\n ));\n }\n\n registerMoveAnimations() {\n if (!this.structType.isMovable()) {\n return;\n }\n\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.MOVE.ARRIVE,\n this.structId,\n this.structType,\n this.moveArriveAnimationContainerId,\n {\n container: document.getElementById(this.moveArriveAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/move_arrive/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.MOVE.DEPART,\n this.structId,\n this.structType,\n this.moveDepartAnimationContainerId,\n {\n container: document.getElementById(this.moveDepartAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/move_depart/data.json`\n }\n ));\n }\n\n registerStealthAnimations() {\n if (!this.structType.stealth_systems) {\n return;\n }\n\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.STEALTH.ACTIVATE,\n this.structId,\n this.structType,\n this.stealthActivateAnimationContainerId,\n {\n container: document.getElementById(this.stealthActivateAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/stealth_activate/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.STEALTH.DEACTIVATE,\n this.structId,\n this.structType,\n this.stealthDeactivateAnimationContainerId,\n {\n container: document.getElementById(this.stealthDeactivateAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/stealth_deactivate/data.json`\n }\n ));\n }\n\n registerEvadeAnimation() {\n if (this.structType.hasDefensiveManeuver()) {\n\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.EVADE,\n this.structId,\n this.structType,\n this.evadeAnimationContainerId,\n {\n container: document.getElementById(this.evadeAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/defensive_maneuver/data.json`\n }\n ));\n\n } else if (this.structType.hasSignalJamming()) {\n\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.EVADE,\n this.structId,\n this.structType,\n this.evadeAnimationContainerId,\n {\n container: document.getElementById(this.evadeAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/signal_jamming/data.json`\n }\n ));\n\n }\n }\n\n registerAttackPrimaryWeaponAnimation() {\n if (!this.structType.hasPrimaryWeapon() && this.structType.type !== STRUCT_TYPES.PLANETARY_DEFENSE_CANNON) {\n return;\n }\n\n const structTypeDirectory = this.caseConverter.convert(this.structType.type, LOWER_SNAKE_CASE);\n\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.ATTACK.PRIMARY_WEAPON,\n this.structId,\n this.structType,\n this.attackPrimaryWeaponAnimationContainerId,\n {\n container: document.getElementById(this.attackPrimaryWeaponAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/attack_primary_weapon/${structTypeDirectory}/data.json`\n }\n ));\n }\n\n registerAttackSecondaryWeaponAnimation() {\n if (!this.structType.hasSecondaryWeapon()) {\n return;\n }\n\n const structTypeDirectory = this.caseConverter.convert(this.structType.type, LOWER_SNAKE_CASE);\n\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.ATTACK.SECONDARY_WEAPON,\n this.structId,\n this.structType,\n this.attackSecondaryWeaponAnimationContainerId,\n {\n container: document.getElementById(this.attackSecondaryWeaponAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/attack_secondary_weapon/${structTypeDirectory}/data.json`\n }\n ));\n }\n}\n","import {AbstractViewModelComponent} from \"../../framework/AbstractViewModelComponent\";\nimport {EVENTS} from \"../../constants/Events\";\nimport {GenericResourceComponent} from \"./GenericResourceComponent\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class PlanetCardComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {string} idPrefix\n * @param {boolean} isRaidCard\n */\n constructor(\n gameState,\n idPrefix,\n isRaidCard\n ) {\n super(gameState);\n this.genericResourceComponent = new GenericResourceComponent(gameState);\n\n this.idPrefix = idPrefix;\n this.isRaidCard = isRaidCard;\n this.isFleetOnPlanet = (Boolean(isRaidCard) === Boolean(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo.isRaidActive()));\n this.planetName = '';\n\n this.hasStatusGroup = false;\n\n this.undiscoveredOre = 0;\n this.undiscoveredOreId = `${this.idPrefix}-planet-card-undiscovered-ore`;\n this.undiscoveredOreEvent = EVENTS.UNDISCOVERED_ORE_COUNT_CHANGED;\n\n this.alphaOre = 0;\n this.alphaOreId = `${this.idPrefix}-planet-card-alpha-ore`;\n this.alphaOreEvent = EVENTS.ORE_COUNT_CHANGED;\n\n this.shieldHealth = '0%';\n this.shieldHealthId = `${this.idPrefix}-planet-card-shield-health`;\n this.shieldHealthEvent = EVENTS.SHIELD_HEALTH_CHANGED;\n\n this.deployedStructs = '0+0';\n this.deployedStructsId = `${this.idPrefix}-planet-card-deployed-structs`;\n this.deployedStructsEvent = EVENTS.STRUCT_COUNT_CHANGED;\n\n this.undiscoveredOreUpdateHandler = () => {};\n this.alphaOreUpdateHandler = () => {};\n this.shieldHealthUpdateHandler = () => {};\n this.deployedStructsUpdateHandler = () => {};\n\n this.hasAlert = false;\n this.alertIconClass = \"icon-alert\";\n this.alertIconColorClass = \"sui-text-warning\";\n this.alertMessage = \"\";\n\n this.hasGeneralMessage = false;\n this.generalMessageIconClass = \"icon-raid\";\n this.generalMessage = \"\";\n\n this.hasPrimaryBtn = false;\n this.primaryBtnId = `${this.idPrefix}-planet-card-primary-btn`;\n this.primaryBtnLabel = \"\";\n this.primaryBtnHandler = () => {};\n\n this.hasSecondaryBtn = false;\n this.secondaryBtnId = `${this.idPrefix}-planet-card-secondary-btn`;\n this.secondaryBtnLabel = \"\";\n this.secondaryBtnHandler = () => {};\n }\n\n initPageCode() {\n\n if (this.hasStatusGroup) {\n window.addEventListener(this.undiscoveredOreEvent, this.undiscoveredOreUpdateHandler.bind(this));\n window.addEventListener(this.alphaOreEvent, this.alphaOreUpdateHandler.bind(this));\n window.addEventListener(this.shieldHealthEvent, this.shieldHealthUpdateHandler.bind(this));\n window.addEventListener(this.deployedStructsEvent, this.deployedStructsUpdateHandler.bind(this));\n }\n\n if (this.hasPrimaryBtn) {\n document.getElementById(this.primaryBtnId).addEventListener('click', this.primaryBtnHandler.bind(this));\n }\n\n if (this.hasSecondaryBtn) {\n document.getElementById(this.secondaryBtnId).addEventListener('click', this.secondaryBtnHandler.bind(this));\n }\n }\n\n renderFleetBadgeHTML() {\n if (!this.isFleetOnPlanet) {\n return '';\n }\n\n return `Fleet`;\n }\n\n renderPlanetNameHTML() {\n if (!this.planetName) {\n return '';\n }\n\n return `${this.planetName}`;\n }\n\n renderStatusGroupHTML() {\n if (!this.hasStatusGroup) {\n return '';\n }\n\n return `\n
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.undiscoveredOreId,\n 'sui-icon-undiscovered-ore',\n 'Undiscovered Ore',\n this.numberFormatter.format(this.undiscoveredOre),\n true\n )\n }\n\n ${\n this.genericResourceComponent.renderHTML(\n this.alphaOreId,\n 'sui-icon-alpha-ore',\n 'Alpha Ore',\n this.numberFormatter.format(this.alphaOre),\n true\n )\n }\n
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.shieldHealthId,\n this.isRaidCard ? 'sui-icon-enemy-shield-health' : 'sui-icon-shield-health',\n 'Planetary Shield',\n this.shieldHealth,\n true\n )\n }\n \n ${\n this.genericResourceComponent.renderHTML(\n this.deployedStructsId,\n this.isRaidCard ? 'sui-icon-enemy-deployed-structs' : 'sui-icon-deployed-structs',\n 'Fleet+Planetary Structs',\n this.deployedStructs,\n true\n )\n }\n
\n
\n `;\n }\n\n renderAlertHTML() {\n if (!this.hasAlert) {\n return '';\n }\n\n return `\n
\n \n ${this.alertMessage}\n
\n `;\n }\n\n renderGeneralMessageHTML() {\n if (!this.hasGeneralMessage) {\n return '';\n }\n\n return `\n
\n \n ${this.generalMessage}\n
\n `;\n }\n\n renderPrimaryBtnHTML() {\n if (!this.hasPrimaryBtn) {\n return '';\n }\n\n return `\n ${this.primaryBtnLabel}\n `;\n }\n\n renderSecondaryBtnHTML() {\n if (!this.hasSecondaryBtn) {\n return '';\n }\n\n return `\n ${this.secondaryBtnLabel}\n `;\n }\n\n renderHTML() {\n\n const cardIconClass = this.isRaidCard ? \"icon-raid\" : \"icon-planet\";\n\n const cardTitle = this.isRaidCard ? \"Raid\" : \"Alpha Base\";\n\n return `\n
\n\n
\n
\n \n
\n \n ${cardTitle}\n \n ${this.renderPlanetNameHTML()}\n
\n
\n\n ${this.renderFleetBadgeHTML()}\n
\n\n\n
\n
\n \n ${this.renderStatusGroupHTML()}\n\n ${this.renderAlertHTML()}\n\n ${this.renderGeneralMessageHTML()}\n \n
\n\n
\n \n ${this.renderSecondaryBtnHTML()}\n \n ${this.renderPrimaryBtnHTML()}\n \n
\n
\n\n
\n `;\n }\n}","import {AbstractViewModelComponent} from \"../../framework/AbstractViewModelComponent\";\nimport {STRUCT_STILL_LAYERS} from \"../../constants/StructConstants\";\nimport {StructType} from \"../../models/StructType\";\nimport {AnimationError} from \"../../errors/AnimationError\";\n\nexport class StructStillRenderer extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {StructType} structType\n * @param {string} topDetailLayer1\n * @param {string} topDetailLayer2\n * @param {string} structVariantBase\n * @param {string} structVariantDmg\n * @param {string} bottomDetailLayer1\n */\n constructor(\n gameState,\n structType,\n topDetailLayer1,\n topDetailLayer2,\n structVariantBase,\n structVariantDmg,\n bottomDetailLayer1\n ) {\n super(gameState);\n\n this.structType = structType;\n this.topDetailLayer1 = topDetailLayer1;\n this.topDetailLayer2 = topDetailLayer2;\n this.structVariantBase = structVariantBase;\n this.structVariantDmg = structVariantDmg;\n this.bottomDetailLayer1 = bottomDetailLayer1;\n }\n\n /**\n * @param {string} layerPath path to the image file\n * @param {string|null} position top or bottom\n * @return {string}\n */\n renderLayerHtml(layerPath, position = null) {\n if (!layerPath) {\n return '';\n }\n\n const positionClass = position\n ? ` struct-${position}-detail`\n : '';\n\n return `\"\"/`;\n }\n\n /**\n * @return {string}\n */\n renderTopDetailLayers() {\n return this.renderLayerHtml(this.topDetailLayer1, 'top')\n + this.renderLayerHtml(this.topDetailLayer2, 'top');\n }\n\n /**\n * @return {string}\n */\n renderBottomDetailLayers() {\n return this.renderLayerHtml(this.bottomDetailLayer1, 'bottom');\n }\n\n /**\n * @param {string} variant\n * @return {string}\n */\n renderStructVariant(variant) {\n if (!this.hasOwnProperty(variant)) {\n throw new AnimationError(`Struct variant does not exist ${variant}`);\n }\n return this.renderLayerHtml(this[variant]);\n }\n\n /**\n * @param {number} currentHealth\n * @param {string} structVariant\n * @return {string}\n */\n renderHTML(currentHealth = -1, structVariant = '') {\n\n if (currentHealth === 0) {\n return `
`;\n }\n\n if (structVariant === '') {\n structVariant = (0 < currentHealth && currentHealth < this.structType.max_health)\n ? STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG\n : STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE;\n }\n\n return `\n
\n ${this.renderTopDetailLayers()}\n ${this.renderStructVariant(structVariant)}\n ${this.renderBottomDetailLayers()}\n
\n `;\n }\n\n}","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\nimport {EVENTS} from \"../../../constants/Events\";\nimport {MAP_CONTAINER_IDS, MAP_TILE_TYPE_ICONS, MAP_TILE_TYPES} from \"../../../constants/MapConstants\";\nimport {PLAYER_TYPES} from \"../../../constants/PlayerTypes\";\nimport {DeployOffcanvas} from \"../offcanvas/DeployOffcanvas\";\nimport {Struct} from \"../../../models/Struct\";\nimport {StructType} from \"../../../models/StructType\";\nimport {STRUCT_ACTIONS, STRUCT_CATEGORIES, STRUCT_EQUIPMENT_ICON_MAP, STRUCT_STATUS_FLAGS} from \"../../../constants/StructConstants\";\nimport {ShowMoveTargetsEvent} from \"../../../events/ShowMoveTargetsEvent\";\nimport {ClearMoveTargetsEvent} from \"../../../events/ClearMoveTargetsEvent\";\nimport {ShowDefendTargetsEvent} from \"../../../events/ShowDefendTargetsEvent\";\nimport {ClearDefendTargetsEvent} from \"../../../events/ClearDefendTargetsEvent\";\nimport {ShowAttackTargetsEvent} from \"../../../events/ShowAttackTargetsEvent\";\nimport {ClearAttackTargetsEvent} from \"../../../events/ClearAttackTargetsEvent\";\nimport {TASK_TYPES} from \"../../../constants/TaskTypes\";\nimport {NumberFormatter} from \"../../../util/NumberFormatter\";\n\nexport class ActionBarComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {SigningClientManager} signingClientManager\n * @param {StructManager} structManager\n * @param {TaskManager} taskManager\n * @param {string} playerType\n * @param {string} align left or right\n * @param {string} id\n */\n constructor(\n gameState,\n signingClientManager,\n structManager,\n taskManager,\n playerType,\n align,\n id\n ) {\n super(gameState);\n\n this.playerType = playerType;\n this.signingClientManager = signingClientManager;\n this.structManager = structManager;\n this.taskManager = taskManager;\n this.numberFormatter = new NumberFormatter();\n\n /* Style */\n this.themeClass = `sui-theme-${this.playerType === PLAYER_TYPES.PLAYER ? 'player' : 'enemy'}`;\n this.align = align;\n\n /* IDs */\n this.id = id;\n this.playerChunkId = `${this.playerType}-action-bar-player-chunk`;\n this.playerChunkPortraitId = `${this.playerType}-action-bar-portrait`;\n this.playerChunkBatteryId = `${this.playerType}-action-bar-battery`;\n this.connectorId = `${this.playerType}-action-bar-connector`;\n this.actionChunkId = `${this.playerType}-action-bar-action-chunk`;\n this.headerScreenId = `${this.playerType}-action-bar-header`;\n this.propertiesScreenId = `${this.playerType}-action-bar-properties-screen`;\n this.progressBarId = `${this.playerType}-action-bar-progress-bar`;\n this.undiscoveredOreContainerId = `${this.playerType}-action-bar-undiscovered-or-container`;\n this.oreReadyContainerId = `${this.playerType}-action-bar-ore-ready-container`;\n this.inProgressValueContainerId = `${this.playerType}-action-bar-progress-bar-in-progress-value`;\n this.panelSwitchId = `${this.playerType}-action-bar-panel-switch`;\n\n /* Profile Chunk */\n this.profileClickHandler = function () {};\n this.batteryfilledClass = 'sui-mod-filled';\n\n /**\n * Currently selected struct\n * @type {Struct|null}\n */\n this.selectedStruct = null;\n }\n\n /**\n * Currently selected struct ID if there is one.\n * @return {string|null}\n */\n getSelectedStructId() {\n return this.selectedStruct ? this.selectedStruct.id : null;\n }\n\n /**\n * @param {ChargeLevelChangedEvent} event\n */\n updateActionButtons(event) {\n if (\n this.playerType === PLAYER_TYPES.PLAYER\n && event.playerId === this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id\n && this.selectedStruct\n && this.selectedStruct.isOnline()\n ) {\n const charge = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].getCharge(this.gameState.currentBlockHeight);\n const actionButtons = document.getElementById(this.actionChunkId).querySelectorAll('.sui-action-bar-btn-group a.sui-panel-btn');\n actionButtons.forEach(actionButton => {\n if (\n parseInt(actionButton.getAttribute('data-action-charge')) <= charge\n && actionButton.classList.contains('sui-mod-disabled')\n ) {\n const isActive = parseInt(actionButton.getAttribute('data-active-defense') || 0);\n if (isActive) {\n actionButton.classList.add('sui-mod-active-defense');\n } else {\n actionButton.classList.add('sui-mod-default');\n }\n actionButton.classList.remove('sui-mod-disabled');\n }\n });\n }\n }\n\n initPageCode() {\n window.addEventListener(EVENTS.CHARGE_LEVEL_CHANGED, function (event) {\n if (event.playerId === this.gameState.getPlayerIdByType(this.playerType)) {\n this.renderChargeLevel(event.chargeLevel);\n }\n\n if (this.selectedStruct && !this.selectedStruct.isOnline()) {\n const panelSwitchElm = document.getElementById(this.panelSwitchId);\n\n if (panelSwitchElm && panelSwitchElm.dataset.state === 'disabled') {\n const structType = this.gameState.structTypes.getStructTypeById(this.selectedStruct.type);\n const panelSwitchState = this.getPanelSwitchState(this.selectedStruct, structType);\n\n if (panelSwitchState.canToggle) {\n this.showStructActionBar(this.selectedStruct);\n }\n }\n\n }\n\n this.updateActionButtons(event);\n\n }.bind(this));\n\n document.getElementById(this.playerChunkPortraitId).addEventListener('click', this.profileClickHandler.bind(this));\n\n // Listen for task worker changes to update progress bar\n window.addEventListener(EVENTS.TASK_WORKER_CHANGED, (event) => {\n if (!this.getSelectedStructId() || event.state.object_id !== this.getSelectedStructId()) {\n return;\n }\n if (event.state.task_type === TASK_TYPES.BUILD) {\n this.updateProgressBar(event.state.getPercentCompleteEstimate());\n } else if (event.state.task_type === TASK_TYPES.MINE || event.state.task_type === TASK_TYPES.REFINE) {\n const estInMS = event.state.getTimeRemainingEstimate();\n const estFormatted = this.numberFormatter.formatMilliseconds(estInMS);\n this.updateInProgressValue(estFormatted);\n }\n });\n\n const undiscoveredOreContainer = document.getElementById(this.undiscoveredOreContainerId);\n if (undiscoveredOreContainer) {\n window.addEventListener(EVENTS.UNDISCOVERED_ORE_COUNT_CHANGED, (event) => {\n if (event.playerType === PLAYER_TYPES.PLAYER) {\n undiscoveredOreContainer.innerHTML = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.undiscovered_ore;\n }\n });\n }\n\n const oreReadyContainer = document.getElementById(this.oreReadyContainerId);\n if (oreReadyContainer) {\n window.addEventListener(EVENTS.ORE_COUNT_CHANGED, () => {\n oreReadyContainer.innerHTML = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.ore;\n });\n }\n }\n\n /**\n * Update the progress bar contents without re-rendering the entire action bar.\n *\n * @param {number} percentageToComplete\n */\n updateProgressBar(percentageToComplete) {\n const progressBarWrapper = document.getElementById(this.progressBarId);\n if (progressBarWrapper) {\n progressBarWrapper.innerHTML = this.renderProgressBar(percentageToComplete);\n }\n }\n\n /**\n * Update the in progress time estimate without re-rendering the entire action bar.\n *\n * @param {string} value\n */\n updateInProgressValue(value) {\n const inProgressValueContainer = document.getElementById(this.inProgressValueContainerId);\n if (inProgressValueContainer) {\n inProgressValueContainer.innerHTML = value;\n }\n }\n\n renderChargeLevel(level) {\n const battery = document.getElementById(this.playerChunkBatteryId);\n const batteryChunks = battery.children;\n\n for (let i = 0; i < batteryChunks.length; i++) {\n if (i + 1 > level) {\n batteryChunks[i].classList.remove(this.batteryfilledClass);\n } else {\n batteryChunks[i].classList.add(this.batteryfilledClass);\n }\n }\n }\n\n renderPortraitChunkHTML() {\n const hoverIcon = this.playerType === PLAYER_TYPES.PLAYER ? 'icon-menu' : 'icon-info';\n return `\n
\n \n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n `;\n }\n\n showActionChunk() {\n document.getElementById(this.connectorId).classList.remove('hidden');\n document.getElementById(this.actionChunkId).classList.remove('hidden');\n }\n\n hideActionChunk() {\n document.getElementById(this.connectorId).classList.add('hidden');\n document.getElementById(this.actionChunkId).classList.add('hidden');\n }\n\n /**\n *\n * @param {string} tileType see MAP_TILE_TYPES\n * @return {string} icon class\n */\n getPropertyIconForTileType(tileType) {\n if (\n this.align === 'right'\n && (\n tileType === MAP_TILE_TYPES.COMMAND\n || tileType === MAP_TILE_TYPES.PLANETARY_SLOT\n || tileType === MAP_TILE_TYPES.FLEET\n )\n ) {\n return MAP_TILE_TYPE_ICONS.ENEMY_TERRITORY;\n }\n\n return MAP_TILE_TYPE_ICONS[tileType];\n }\n\n /**\n * Renders the progress bar chunks HTML without the wrapper.\n *\n * @param {number} percentageToComplete - A number from 0 to 1 representing completion percentage\n * @return {string} HTML for the progress bar chunks\n */\n renderProgressBar(percentageToComplete) {\n const totalChunks = 10;\n const filledChunks = Math.floor(percentageToComplete * totalChunks);\n\n let chunksHTML = '';\n for (let i = 0; i < totalChunks; i++) {\n const filledClass = i < filledChunks ? ' sui-mod-filled' : '';\n chunksHTML += `
`;\n }\n\n return `\n
\n ${chunksHTML}\n
\n `;\n }\n\n /**\n * @param {string} tileType\n * @param {string} ambitOrTileLabel\n * @param {string} side right or left\n * @param {number|null} slot\n * @param {string|null} structId - ID of struct occupying the tile, null if empty\n */\n showActionBarFor(\n tileType,\n ambitOrTileLabel,\n side,\n slot = null,\n structId = null\n ) {\n if (side === 'left' && this.gameState.actionBarLock.isLocked()) {\n this.showExecutingActionBar();\n return;\n }\n\n const struct = this.structManager.getStructById(structId);\n\n // If the struct is building, show the building action bar\n if (struct && !struct.isBuilt()) {\n this.showBuildingActionBar(struct);\n return;\n }\n\n // If the struct is built, show the built struct action bar\n if (struct && struct.isBuilt()) {\n this.showStructActionBar(struct);\n return;\n }\n\n // Check if there's a pending build at this position\n const playerId = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id;\n const pendingBuild = this.gameState.getPendingBuild(tileType, ambitOrTileLabel, slot, playerId);\n\n if (pendingBuild) {\n this.showPendingBuildActionBar(pendingBuild.structType);\n } else {\n this.showEmptyTileActionBar(tileType, ambitOrTileLabel, side, slot);\n }\n }\n\n showExecutingActionBar() {\n document.getElementById(this.actionChunkId).innerHTML = `\n
\n
Executing
\n
\n\n
\n\n
\n
\n
\n
\n
\n
\n
\n\n
\n `;\n\n this.showActionChunk();\n }\n\n /**\n * Shows the action bar for a pending build (before struct ID is known).\n *\n * @param {StructType} structType\n */\n showPendingBuildActionBar(structType) {\n // Clear current building struct ID (pending builds don't have one yet)\n this.selectedStruct = null;\n\n const header = structType.class_abbreviation;\n\n // Pending builds start at 0% progress\n const percentageToComplete = 0;\n\n const cancelBtnId = `${this.playerType}-action-bar-cancel-btn`;\n\n const cancelBtn = `\n
\n \n \n \n
\n `;\n\n document.getElementById(this.actionChunkId).innerHTML = `\n
\n
${header}
\n
\n\n
\n\n
\n
\n
\n ${this.renderProgressBar(percentageToComplete)}\n
\n
\n
\n\n ${cancelBtn}\n\n
\n `;\n\n this.showActionChunk();\n }\n\n /**\n * @param {string} tileType\n * @param {string} ambitOrTileLabel\n * @param {string} side right or left\n * @param {number|null} slot\n */\n showEmptyTileActionBar(\n tileType,\n ambitOrTileLabel,\n side,\n slot = null,\n ) {\n // Clear current building struct ID\n this.selectedStruct = null;\n\n const header = ambitOrTileLabel.toUpperCase();\n\n const propertyIcon = this.getPropertyIconForTileType(tileType);\n const propertyIconLinkId = `${this.playerType}-action-bar-property-tile-type`;\n\n const hasDeployButton = tileType === MAP_TILE_TYPES.PLANETARY_SLOT\n || tileType === MAP_TILE_TYPES.FLEET\n || tileType === MAP_TILE_TYPES.COMMAND;\n let deployBtn = '';\n const deployBtnId = `${this.playerType}-action-bar-deploy-btn`;\n let attachDeployBtnHandler = () => {};\n let btnTypeClass = 'sui-mod-disabled';\n\n if (hasDeployButton) {\n // Only enable deploy button if:\n // 1. It's on the left side (player's side)\n // 2. The map is the alpha base map\n // TODO 3. The player's command ship is on the alpha base\n if (\n side === 'left'\n && this.gameState.activeMapContainerId === MAP_CONTAINER_IDS.ALPHA_BASE\n ) {\n btnTypeClass = 'sui-mod-default';\n attachDeployBtnHandler = () => {\n document.getElementById(deployBtnId).addEventListener('click', function () {\n const deployOffcanvas = new DeployOffcanvas(\n this.gameState,\n this.signingClientManager,\n this.structManager,\n tileType,\n ambitOrTileLabel,\n slot\n );\n deployOffcanvas.render();\n }.bind(this));\n };\n }\n\n deployBtn = `\n
\n \n \n \n
\n `;\n }\n\n document.getElementById(this.actionChunkId).innerHTML = `\n
\n
${header}
\n
\n\n
\n\n
\n
\n \n \n \n
\n
\n\n ${deployBtn}\n\n
\n `;\n\n attachDeployBtnHandler();\n\n this.showActionChunk();\n }\n\n /**\n * Shows the action bar for a struct that is currently being built.\n *\n * @param {Struct} struct\n */\n showBuildingActionBar(struct) {\n // Store current building struct ID for progress bar updates\n this.selectedStruct = struct;\n\n const structType = this.gameState.structTypes.getStructTypeById(struct.type);\n const header = structType.class_abbreviation;\n\n // Get the build progress\n let percentageToComplete = 0;\n\n const buildProcess = this.taskManager.getBuildProcessByStructId(struct.id);\n if (buildProcess) {\n percentageToComplete = this.taskManager.getProcessPercentCompleteEstimate(buildProcess.state.getPID());\n console.log(`Build progress: ${percentageToComplete}`);\n }\n\n const cancelBtnId = `${this.playerType}-action-bar-cancel-btn`;\n\n // Only the owning player can cancel a build in progress\n const isOwnedByPlayer = struct.owner === this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id;\n\n const cancelBtn = isOwnedByPlayer\n ? `\n
\n \n \n \n
\n `\n : '' ;\n\n const propertyIconLinkId = `${this.playerType}-action-bar-property-tile-type`;\n\n document.getElementById(this.actionChunkId).innerHTML = `\n
\n
${header}
\n
\n\n
\n\n
\n
\n ${ isOwnedByPlayer\n ? `\n
\n ${this.renderProgressBar(percentageToComplete)}\n
\n `\n : `\n \n \n \n `\n }\n
\n
\n\n ${cancelBtn}\n\n
\n `;\n\n if (isOwnedByPlayer) {\n document.getElementById(cancelBtnId).addEventListener('click', function () {\n this.structManager.cancelStructBuild(struct);\n }.bind(this));\n }\n\n this.showActionChunk();\n }\n\n /**\n * Determines the panel switch state based on struct online status and player charge.\n *\n * @param {Struct} struct\n * @param {StructType} structType\n * @return {{image: string, state: string, canToggle: boolean}}\n */\n getPanelSwitchState(struct, structType) {\n if (this.isActionAvailable(struct, 0, true)) {\n return {\n image: '/img/sui/panel/panel-switch-on.png',\n state: 'on',\n canToggle: true\n };\n }\n\n if (this.isActionAvailable(struct, structType.activate_charge, false)) {\n return {\n image: '/img/sui/panel/panel-switch-off.png',\n state: 'off',\n canToggle: true\n };\n }\n\n return {\n image: '/img/sui/panel/panel-switch-disabled.png',\n state: 'disabled',\n canToggle: false\n };\n }\n\n /**\n * Handles panel switch click to toggle struct online/offline state.\n *\n * @param {Struct} struct\n * @param {StructType} structType\n */\n handlePanelSwitchClick(struct, structType) {\n if (this.isActionAvailable(struct, 0, true)) {\n // Turn off: deactivate the struct\n this.signingClientManager.queueMsgStructDeactivate(struct.id).then(() => {\n struct.removeStatusFlag(STRUCT_STATUS_FLAGS.ONLINE);\n this.showStructActionBar(struct);\n });\n } else if (this.isActionAvailable(struct, structType.activate_charge, false)){\n // Turn on: activate the struct\n this.signingClientManager.queueMsgStructActivate(struct.id).then(() => {\n struct.addStatusFlag(STRUCT_STATUS_FLAGS.ONLINE);\n this.showStructActionBar(struct);\n });\n }\n }\n\n /**\n * Shows the action bar for a built (completed) struct.\n *\n * @param {Struct} struct\n */\n showStructActionBar(struct) {\n this.selectedStruct = struct;\n\n const structType = this.gameState.structTypes.getStructTypeById(struct.type);\n const header = structType.class_abbreviation;\n\n const isOnline = struct.isOnline();\n\n // Determine panel switch state\n const panelSwitchState = this.getPanelSwitchState(struct, structType);\n const panelSwitchCursor = panelSwitchState.canToggle ? 'pointer' : 'not-allowed';\n\n // Build list of property icons based on struct type capabilities and online state\n let propertyIcons;\n if (isOnline) {\n propertyIcons = this.buildStructPropertyIcons(struct, structType);\n } else {\n // Show unpowered icon when offline\n propertyIcons = `\n \n \n \n `;\n }\n\n // Build action buttons based on struct type capabilities\n const actionButtons = this.buildStructActionButtons(struct, structType);\n\n document.getElementById(this.actionChunkId).innerHTML = `\n
\n
${header}
\n
\n\n
\n \n
\n \"panel\n
\n\n
\n
\n ${propertyIcons}\n
\n
\n\n ${\n actionButtons\n ? `\n
\n ${actionButtons}\n
\n `\n : ''\n }\n\n
\n `;\n\n // Attach panel switch handler if it can be toggled\n if (panelSwitchState.canToggle) {\n document.getElementById(this.panelSwitchId).addEventListener('click', () => {\n this.handlePanelSwitchClick(struct, structType);\n });\n }\n\n // Attach action button handlers (only functional when online)\n if (isOnline) {\n this.attachStructActionButtonHandlers(struct, structType);\n }\n\n this.showActionChunk();\n }\n\n /**\n * @param {string} iconClass\n * @param {string} selectedProperty\n * @param {string} structTypeId\n * @return {string}\n */\n structPropertyIconHtml(iconClass, selectedProperty, structTypeId) {\n return `\n \n \n \n `;\n }\n\n /**\n * @param {Struct} struct\n * @param {StructType} structType\n * @return {string[]}\n */\n buildExtractorPropertyIcons(struct, structType) {\n if (!structType.hasPlanetaryMining()) {\n return [];\n }\n\n const icons = [];\n\n icons.push(`\n \n ${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.undiscovered_ore}\n \n `);\n\n if (struct.isOnline()) {\n const estInMS = this.taskManager.getProcessTimeRemainingEstimate(this.getSelectedStructId());\n const estFormatted = this.numberFormatter.formatMilliseconds(estInMS);\n\n icons.push(`\n \n ${estFormatted}\n \n `);\n }\n\n return icons;\n }\n\n /**\n * @param {Struct} struct\n * @param {StructType} structType\n * @return {string[]}\n */\n buildRefineryPropertyIcons(struct, structType) {\n if (!structType.hasPlanetaryRefinery()) {\n return [];\n }\n\n const icons = [];\n\n icons.push(`\n \n ${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.ore}\n \n `);\n\n if (struct.isOnline()) {\n const estInMS = this.taskManager.getProcessTimeRemainingEstimate(this.getSelectedStructId());\n const estFormatted = this.numberFormatter.formatMilliseconds(estInMS);\n\n icons.push(`\n \n ${estFormatted}\n \n `);\n }\n\n return icons;\n }\n\n /**\n * @param {Struct} struct\n * @param {StructType} structType\n * @return {string}\n */\n buildStructPropertyIcons(struct, structType) {\n const standardPropsMap = {\n 'hasPassiveWeaponry': 'passive_weaponry',\n 'hasUnitDefenses': 'unit_defenses',\n 'hasOreReserveDefenses': 'ore_reserve_defenses',\n 'hasPlanetaryDefenses': 'planetary_defenses',\n };\n let icons = [];\n\n Object.keys(standardPropsMap).forEach((hasEquipmentFn) => {\n if (structType[hasEquipmentFn]()) {\n const prop = standardPropsMap[hasEquipmentFn];\n const equipmentType = structType[prop];\n const iconClass = STRUCT_EQUIPMENT_ICON_MAP[equipmentType];\n if (!iconClass) {\n console.log(`Missing icon for equipment type: ${hasEquipmentFn}`)\n }\n icons.push(this.structPropertyIconHtml(iconClass, prop, structType.type));\n }\n });\n\n icons = icons.concat(this.buildExtractorPropertyIcons(struct, structType));\n icons = icons.concat(this.buildRefineryPropertyIcons(struct, structType));\n\n return icons.join('');\n }\n\n /**\n * @return {string}\n */\n getActionBtnIdPrefix() {\n return `${this.playerType}-action-bar`;\n }\n\n /**\n * @param {Struct} struct\n * @param {number} actionCharge\n * @param {boolean} isOnlineAction\n * @return {boolean}\n */\n isActionAvailable(struct, actionCharge = 0, isOnlineAction = true) {\n return (struct.isOnline() === isOnlineAction)\n && struct.owner === this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id\n && (!actionCharge || actionCharge <= this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].getCharge(this.gameState.currentBlockHeight));\n }\n\n /**\n * @param {array} buttons\n * @param {Struct} struct\n * @param {StructType} structType\n */\n buildPrimaryWeaponActionButton(buttons, struct, structType) {\n if (structType.hasPrimaryWeapon()) {\n const iconClass = structType.primary_weapon_control === 'guided'\n ? 'icon-smart-weapon'\n : 'icon-ballistic-weapon';\n const btnClass = this.isActionAvailable(struct, structType.primary_weapon_charge)\n ? 'sui-mod-default'\n : 'sui-mod-disabled';\n buttons.push(`\n \n \n \n `);\n }\n }\n\n /**\n * @param {Struct} struct\n * @param {StructType} structType\n */\n attachPrimaryWeaponButtonHandler(struct, structType) {\n if (structType.hasPrimaryWeapon()) {\n const btn = document.getElementById(`${this.getActionBtnIdPrefix()}-primary-weapon-btn`);\n if (btn) {\n btn.addEventListener('click', () => {\n if (!this.isActionAvailable(struct, structType.primary_weapon_charge)) {\n return;\n }\n\n const currentAction = this.gameState.actionBarLock.getCurrentAction();\n\n if (currentAction === STRUCT_ACTIONS.ATTACK_PRIMARY_WEAPON) {\n // Already in primary weapon mode - cancel\n this.gameState.actionBarLock.clear(false);\n btn.classList.remove('sui-mod-active-offense');\n btn.classList.add('sui-mod-default');\n window.dispatchEvent(new ClearAttackTargetsEvent(this.gameState.getActiveMapId()));\n } else {\n // If secondary weapon mode was active, reset its button\n if (currentAction === STRUCT_ACTIONS.ATTACK_SECONDARY_WEAPON) {\n const secBtn = document.getElementById(`${this.getActionBtnIdPrefix()}-secondary-weapon-btn`);\n if (secBtn) {\n secBtn.classList.remove('sui-mod-active-offense');\n secBtn.classList.add('sui-mod-default');\n }\n window.dispatchEvent(new ClearAttackTargetsEvent(this.gameState.getActiveMapId()));\n }\n\n // Activate primary weapon mode\n this.gameState.actionBarLock.setCurrentAction(STRUCT_ACTIONS.ATTACK_PRIMARY_WEAPON);\n this.gameState.actionBarLock.setActionSourceStruct(struct);\n btn.classList.remove('sui-mod-default');\n btn.classList.add('sui-mod-active-offense');\n window.dispatchEvent(new ShowAttackTargetsEvent(\n this.gameState.getActiveMapId(),\n structType.primary_weapon_ambits_array\n ));\n }\n });\n }\n }\n }\n\n /**\n * @param {array} buttons\n * @param {Struct} struct\n * @param {StructType} structType\n */\n buildSecondaryWeaponActionButton(buttons, struct, structType) {\n if (structType.hasSecondaryWeapon()) {\n const iconClass = structType.secondary_weapon_control === 'guided'\n ? 'icon-smart-weapon'\n : 'icon-ballistic-weapon';\n const btnClass = this.isActionAvailable(struct, structType.secondary_weapon_charge)\n ? 'sui-mod-default'\n : 'sui-mod-disabled';\n buttons.push(`\n \n \n \n `);\n }\n }\n\n /**\n * @param {Struct} struct\n * @param {StructType} structType\n */\n attachSecondaryWeaponButtonHandler(struct, structType) {\n if (structType.hasSecondaryWeapon()) {\n const btn = document.getElementById(`${this.getActionBtnIdPrefix()}-secondary-weapon-btn`);\n if (btn) {\n btn.addEventListener('click', () => {\n if (!this.isActionAvailable(struct, structType.secondary_weapon_charge)) {\n return;\n }\n\n const currentAction = this.gameState.actionBarLock.getCurrentAction();\n\n if (currentAction === STRUCT_ACTIONS.ATTACK_SECONDARY_WEAPON) {\n // Already in secondary weapon mode - cancel\n this.gameState.actionBarLock.clear(false);\n btn.classList.remove('sui-mod-active-offense');\n btn.classList.add('sui-mod-default');\n window.dispatchEvent(new ClearAttackTargetsEvent(this.gameState.getActiveMapId()));\n } else {\n // If primary weapon mode was active, reset its button\n if (currentAction === STRUCT_ACTIONS.ATTACK_PRIMARY_WEAPON) {\n const priBtn = document.getElementById(`${this.getActionBtnIdPrefix()}-primary-weapon-btn`);\n if (priBtn) {\n priBtn.classList.remove('sui-mod-active-offense');\n priBtn.classList.add('sui-mod-default');\n }\n window.dispatchEvent(new ClearAttackTargetsEvent(this.gameState.getActiveMapId()));\n }\n\n // Activate secondary weapon mode\n this.gameState.actionBarLock.setCurrentAction(STRUCT_ACTIONS.ATTACK_SECONDARY_WEAPON);\n this.gameState.actionBarLock.setActionSourceStruct(struct);\n btn.classList.remove('sui-mod-default');\n btn.classList.add('sui-mod-active-offense');\n window.dispatchEvent(new ShowAttackTargetsEvent(\n this.gameState.getActiveMapId(),\n structType.secondary_weapon_ambits_array\n ));\n }\n });\n }\n }\n }\n\n /**\n * @param {array} buttons\n * @param {Struct} struct\n * @param {StructType} structType\n */\n buildStealthModeActionButton(buttons, struct, structType) {\n if (structType.stealth_systems) {\n let btnClass;\n if (!this.isActionAvailable(struct, structType.stealth_activate_charge)) {\n btnClass = 'sui-mod-disabled';\n } else if (struct.isHidden()) {\n btnClass = 'sui-mod-active-defense';\n } else {\n btnClass = 'sui-mod-default';\n }\n buttons.push(`\n \n \n \n `);\n }\n }\n\n /**\n * @param {Struct} struct\n * @param {StructType} structType\n */\n attachStealthModeButtonHandler(struct, structType) {\n if (structType.stealth_systems) {\n const btn = document.getElementById(`${this.getActionBtnIdPrefix()}-stealth-btn`);\n if (btn) {\n btn.addEventListener('click', () => {\n if (!this.isActionAvailable(struct, structType.stealth_activate_charge)) {\n return;\n }\n if (struct.isHidden()) {\n this.gameState.actionBarLock.setCurrentAction(STRUCT_ACTIONS.STEALTH_DEACTIVATE);\n this.gameState.actionBarLock.lock();\n\n // Deactivate stealth mode\n this.signingClientManager.queueMsgStructStealthDeactivate(struct.id).then(() => {\n struct.removeStatusFlag(STRUCT_STATUS_FLAGS.HIDDEN);\n // Update button to default state\n btn.setAttribute('data-active-defense', '0');\n btn.classList.remove('sui-mod-active-defense');\n btn.classList.add('sui-mod-default');\n });\n } else {\n this.gameState.actionBarLock.setCurrentAction(STRUCT_ACTIONS.STEALTH_ACTIVATE);\n this.gameState.actionBarLock.lock();\n\n // Activate stealth mode\n this.signingClientManager.queueMsgStructStealthActivate(struct.id).then(() => {\n struct.addStatusFlag(STRUCT_STATUS_FLAGS.HIDDEN);\n // Update button to active state\n btn.setAttribute('data-active-defense', '1');\n btn.classList.remove('sui-mod-default');\n btn.classList.add('sui-mod-active-defense');\n });\n }\n });\n }\n }\n }\n\n /**\n * @param {array} buttons\n * @param {Struct} struct\n * @param {StructType} structType\n */\n buildMoveActionButton(buttons, struct, structType) {\n if (structType.movable) {\n const btnClass = this.isActionAvailable(struct, structType.move_charge)\n ? 'sui-mod-default'\n : 'sui-mod-disabled';\n\n buttons.push(`\n \n \n \n `);\n }\n }\n\n /**\n * @param {Struct} struct\n * @param {StructType} structType\n */\n attachMoveButtonHandler(struct, structType) {\n if (structType.movable) {\n const btn = document.getElementById(`${this.getActionBtnIdPrefix()}-move-btn`);\n if (btn) {\n btn.addEventListener('click', () => {\n if (!this.isActionAvailable(struct, structType.move_charge)) {\n return;\n }\n\n if (btn.classList.contains('sui-mod-active-defense')) {\n // Deactivate move mode\n this.gameState.actionBarLock.clear(false);\n btn.classList.remove('sui-mod-active-defense');\n btn.classList.add('sui-mod-default');\n\n // Clear move target indicators\n window.dispatchEvent(new ClearMoveTargetsEvent(this.gameState.getActiveMapId()));\n } else {\n // Activate move mode\n this.gameState.actionBarLock.setCurrentAction(STRUCT_ACTIONS.MOVE);\n this.gameState.actionBarLock.setActionSourceStruct(struct);\n btn.classList.remove('sui-mod-default');\n btn.classList.add('sui-mod-active-defense');\n\n // Show move target indicators on empty command tiles\n window.dispatchEvent(new ShowMoveTargetsEvent(this.gameState.getActiveMapId()));\n }\n });\n }\n }\n }\n\n /**\n * @param {array} buttons\n * @param {Struct} struct\n * @param {StructType} structType\n */\n buildDefendActionButton(buttons, struct, structType) {\n if (structType.category === STRUCT_CATEGORIES.FLEET) {\n let btnClass;\n if (!this.isActionAvailable(struct, structType.defend_change_charge)) {\n btnClass = 'sui-mod-disabled';\n } else if (struct.isDefending()) {\n btnClass = 'sui-mod-active-defense';\n } else {\n btnClass = 'sui-mod-default';\n }\n\n buttons.push(`\n \n \n \n `);\n }\n }\n\n /**\n * @param {Struct} struct\n * @param {StructType} structType\n */\n attachDefendButtonHandler(struct, structType) {\n if (structType.category === STRUCT_CATEGORIES.FLEET) {\n const btn = document.getElementById(`${this.getActionBtnIdPrefix()}-defend-btn`);\n if (btn) {\n btn.addEventListener('click', async () => {\n if (!this.isActionAvailable(struct, structType.defend_change_charge)) {\n return;\n }\n\n const currentAction = this.gameState.actionBarLock.getCurrentAction();\n\n if (struct.isDefending()) {\n // Struct is currently defending another struct - clicking clears the defense\n this.gameState.actionBarLock.setCurrentAction(STRUCT_ACTIONS.DEFENSE_CLEAR);\n this.gameState.actionBarLock.setActionSourceStruct(struct);\n this.gameState.actionBarLock.lock();\n\n // Update button to default state while processing\n btn.setAttribute('data-active-defense', '0');\n btn.classList.remove('sui-mod-active-defense');\n btn.classList.add('sui-mod-default');\n\n // Send defense clear message to chain\n await this.signingClientManager.queueMsgStructDefenseClear(struct.id);\n\n } else if (currentAction === STRUCT_ACTIONS.DEFENSE_SET) {\n // Already in defense selection mode - cancel it\n this.gameState.actionBarLock.clear(false);\n\n // Update button to default state\n btn.setAttribute('data-active-defense', '0');\n btn.classList.remove('sui-mod-active-defense');\n btn.classList.add('sui-mod-default');\n\n // Clear defend target indicators\n window.dispatchEvent(new ClearDefendTargetsEvent(this.gameState.getActiveMapId()));\n\n } else {\n // Activate defense selection mode\n this.gameState.actionBarLock.setCurrentAction(STRUCT_ACTIONS.DEFENSE_SET);\n this.gameState.actionBarLock.setActionSourceStruct(struct);\n\n // Update button to active state\n btn.setAttribute('data-active-defense', '1');\n btn.classList.remove('sui-mod-default');\n btn.classList.add('sui-mod-active-defense');\n\n // Mark enemy structs as invalid\n window.dispatchEvent(new ShowDefendTargetsEvent(this.gameState.getActiveMapId()));\n }\n });\n }\n }\n }\n\n /**\n * Builds the HTML for struct action buttons based on struct type capabilities.\n *\n * @param {Struct} struct\n * @param {StructType} structType\n * @return {string} HTML for action buttons\n */\n buildStructActionButtons(struct, structType) {\n const buttons = [];\n\n this.buildPrimaryWeaponActionButton(buttons, struct, structType);\n this.buildSecondaryWeaponActionButton(buttons, struct, structType);\n this.buildStealthModeActionButton(buttons, struct, structType);\n this.buildMoveActionButton(buttons, struct, structType);\n this.buildDefendActionButton(buttons, struct, structType);\n\n return buttons.join('');\n }\n\n /**\n * Attaches click handlers to struct action buttons.\n *\n * @param {Struct} struct\n * @param {StructType} structType\n */\n attachStructActionButtonHandlers(struct, structType) {\n this.attachPrimaryWeaponButtonHandler(struct, structType);\n this.attachSecondaryWeaponButtonHandler(struct, structType);\n this.attachStealthModeButtonHandler(struct, structType);\n this.attachMoveButtonHandler(struct, structType);\n this.attachDefendButtonHandler(struct, structType);\n }\n\n renderHTML() {\n let actionChunkLeftHTML = '';\n let actionChunkRightHTML = `\n
\n
\n `;\n\n if (this.align === 'right') {\n actionChunkLeftHTML = `\n
\n
\n `;\n actionChunkRightHTML = '';\n }\n\n return `\n
\n
\n
\n \n ${actionChunkLeftHTML}\n \n ${this.renderPortraitChunkHTML()}\n \n ${actionChunkRightHTML}\n \n
\n
\n
\n `;\n }\n}","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\nimport {EnergyUsageComponent} from \"../EnergyUsageComponent\";\n\nexport class StatusBarTopLeftComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {string} id\n */\n constructor(gameState, id) {\n super(gameState);\n this.id = id;\n this.energyUsageComponent = new EnergyUsageComponent(gameState, 'hud-energy-usage');\n }\n\n\n initPageCode() {\n this.energyUsageComponent.initPageCode();\n }\n\n renderHTML() {\n return `\n
\n ${this.energyUsageComponent.renderHTML()}\n
\n `;\n }\n}","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\nimport {EVENTS} from \"../../../constants/Events\";\nimport {MAP_CONTAINER_IDS} from \"../../../constants/MapConstants\";\nimport {PLAYER_TYPES} from \"../../../constants/PlayerTypes\";\n\nexport class StatusBarTopRightComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {Boolean} isRaidPlanet\n * @param {string} id\n */\n constructor(gameState, isRaidPlanet, id) {\n super(gameState);\n this.id = id;\n this.isRaidPlanet = isRaidPlanet;\n this.prefix = '';\n this.theme = '';\n this.shieldIcon = 'sui-icon-shield-health';\n this.shieldHealthChangedEvent = EVENTS.SHIELD_HEALTH_CHANGED;\n this.oreCountChangedEvent = EVENTS.ORE_COUNT_CHANGED;\n\n if (this.isRaidPlanet) {\n this.prefix = 'raid-';\n this.theme = 'sui-theme-enemy';\n this.shieldIcon ='sui-icon-enemy-shield-health';\n }\n\n this.startHidden = ((this.gameState.activeMapContainerId === MAP_CONTAINER_IDS.RAID) === this.isRaidPlanet)\n ? '' : 'hidden';\n\n this.hudShieldHealthValueId = `${this.prefix}hud-shield-health`;\n this.hudShieldHealthHintId = `${this.prefix}${this.hudShieldHealthValueId}-hint`;\n this.hudOreValueId = `${this.prefix}hud-ore`;\n this.hudOreHintId = `${this.prefix}${this.hudOreValueId}-hint`;\n }\n\n initPageCode() {\n window.addEventListener(this.shieldHealthChangedEvent, function (event) {\n if (\n (this.isRaidPlanet && event.playerType === PLAYER_TYPES.RAID_ENEMY)\n || (!this.isRaidPlanet && event.playerType === PLAYER_TYPES.PLAYER)\n ) {\n document.getElementById(this.hudShieldHealthValueId).innerText = `${this.gameState.keyPlayers[event.playerType].planetShieldHealth}`;\n }\n }.bind(this));\n\n window.addEventListener(this.oreCountChangedEvent, function (event) {\n if (\n (this.isRaidPlanet && event.playerType === PLAYER_TYPES.RAID_ENEMY && this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].player)\n || (!this.isRaidPlanet && event.playerType === PLAYER_TYPES.PLAYER && this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player)\n ) {\n document.getElementById(this.hudOreValueId).innerText = `${this.gameState.keyPlayers[event.playerType].player.ore}`;\n }\n }.bind(this));\n }\n\n renderHTML() {\n return `\n \n `;\n }\n}","/**\n * Transition layer interface.\n *\n * There are different types of transition layers such a tile set layer and ornament layers.\n */\nexport class AbstractMapTransitionLayerComponent {\n\n /**\n * Renders the transition layer\n *\n * @param {int} layerOrderNumber determines the layer's z position\n *\n * @return {string} html\n */\n renderHTML(layerOrderNumber) {\n return '';\n }\n}","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\nimport {\n MAP_COL_ATTACKER_COMMAND, MAP_COL_ATTACKER_FLEET, MAP_COL_DEFENDER_COMMAND, MAP_COL_DEFENDER_FLEET,\n MAP_COL_DEFENDER_PLANETARY, MAP_COL_DIVIDER, MAP_DEFAULT_FLEET_COL_COUNT,\n MAP_TILE_ROWS_PER_AMBIT, MAP_TILE_TYPES,\n MAP_DEFAULT_COMMAND_COL_COUNT\n} from \"../../../constants/MapConstants\";\nimport {Player} from \"../../../models/Player\";\nimport {MapStructTileRenderParamsDTO} from \"../../../dtos/MapStructTileRenderParamsDTO\";\nimport {Struct} from \"../../../models/Struct\";\nimport {Fleet} from \"../../../models/Fleet\";\n\n\nexport class GenericMapLayerComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {string} tileRowClass\n * @param {string} tileClass\n * @param {StructManager} structManager\n * @param {string[]} mapColBreakdown\n * @param {(Planet|null)} planet\n * @param {Player|null} defender\n * @param {Player|null} attacker\n * @param {Fleet|null} defenderFleet\n * @param {Fleet|null} attackerFleet\n * @param {string} containerId\n * @param {string} mapId\n */\n constructor(\n gameState,\n tileRowClass,\n tileClass,\n structManager,\n mapColBreakdown,\n planet,\n defender,\n attacker,\n defenderFleet = null,\n attackerFleet = null,\n containerId = \"\",\n mapId = \"\"\n ) {\n super(gameState);\n this.tileRowClass = tileRowClass;\n this.tileClass = tileClass;\n this.structManager = structManager;\n this.mapColBreakdown = mapColBreakdown;\n this.dividerIndex = this.mapColBreakdown.lastIndexOf(MAP_COL_DIVIDER);\n this.planet = planet;\n this.defender = defender;\n this.attacker = attacker;\n this.defenderFleet = defenderFleet;\n this.attackerFleet = attackerFleet;\n this.containerId = containerId;\n this.mapId = mapId;\n }\n\n /**\n * @param {number} col\n * @return {string}\n */\n getTileSide(col) {\n if (col < this.dividerIndex) {\n return 'left';\n } else if (col === this.dividerIndex) {\n return '';\n } else {\n return 'right';\n }\n }\n\n /**\n * Check if tile has required position data attributes\n * @param {string} tileType\n * @param {string} ambit\n * @param {string} slot\n * @param {string} playerId\n * @return {boolean}\n */\n hasTilePositionData(tileType, ambit, slot, playerId) {\n return !!(tileType && ambit && slot !== '' && playerId);\n }\n\n /**\n * Build CSS selector for finding a struct tile\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n * @return {string}\n */\n buildTileSelector(tileType, ambit, slot, playerId) {\n return `.${this.tileClass}[data-tile-type=\"${tileType}\"][data-ambit=\"${ambit}\"][data-slot=\"${slot}\"][data-player-id=\"${playerId}\"]`;\n }\n\n /**\n * Get location info for a tile based on its type and player\n * @param {string} tileType\n * @param {string} playerId\n * @return {{locationType: string, locationId: string|null, isCommandSlot: boolean}|null}\n */\n getLocationInfoFromTile(tileType, playerId) {\n if (tileType === MAP_TILE_TYPES.PLANETARY_SLOT) {\n return {\n locationType: 'planet',\n locationId: this.planet.id,\n isCommandSlot: false\n };\n }\n\n if (tileType === MAP_TILE_TYPES.COMMAND || tileType === MAP_TILE_TYPES.FLEET) {\n let locationId = null;\n if (this.defender && playerId === this.defender.id) {\n locationId = this.defender.fleet_id;\n } else if (this.attacker && playerId === this.attacker.id) {\n locationId = this.attacker.fleet_id;\n }\n\n return {\n locationType: 'fleet',\n locationId: locationId,\n isCommandSlot: (tileType === MAP_TILE_TYPES.COMMAND)\n };\n }\n\n return null;\n }\n\n /**\n * @param {string} tileType the tile type. See MAP_TILE_TYPES constant array.\n * @param {string} side the side of the map the tile is on\n * @param {string} playerId the ID of the player that owns the tile or empty if no one does such as a transition tile.\n * @param {string} ambit the ambit the tile is in or empty if it's a transition tile.\n * @param {string|number} slot the planetary or fleet slot number. Empty if it's not a command, planetary, fleet or command tile.\n * @return {string}\n */\n renderTileHTML(\n tileType,\n side = \"\",\n playerId = \"\",\n ambit = \"\",\n slot = \"\"\n ) {\n return `\n \n `;\n }\n\n renderFogOfWarTileHTML(mapColType) {\n if (this.attacker) {\n return '';\n }\n\n const mapColTypeLastIndex = this.mapColBreakdown.lastIndexOf(mapColType);\n const attackerSide = (this.mapColBreakdown[0] === MAP_COL_ATTACKER_COMMAND) ? 'LEFT' : 'RIGHT';\n\n if (this.dividerIndex === -1 || mapColTypeLastIndex === -1) {\n throw new Error('Divider or map col type not found');\n }\n\n if (\n mapColType === MAP_COL_DIVIDER\n || (attackerSide === 'RIGHT' && this.dividerIndex < mapColTypeLastIndex)\n || (attackerSide === 'LEFT' && mapColTypeLastIndex < this.dividerIndex)\n ) {\n return this.renderTileHTML(\n MAP_TILE_TYPES.FOG_OF_WAR,\n attackerSide.toLowerCase()\n );\n }\n\n return '';\n }\n\n /**\n * @param {string} topAmbit the ambit that is on top in the transition\n * @param {string} bottomAmbit the ambit that is on the bottom in the transition\n * @param {boolean} isInFinalTransitionPosition is this for the final transition of the map\n * @param {number|null} totalAmbits the total number of ambits in the ambit\n * @param {number|null} bottomAmbitIndex the ambit index of the bottom ambit\n * @return {string} the row of struct tiles for the whole transition row\n */\n renderTransitionRowHTML(\n topAmbit,\n bottomAmbit,\n isInFinalTransitionPosition = false,\n totalAmbits = null,\n bottomAmbitIndex= null\n ) {\n const isFinalTransition = isInFinalTransitionPosition && (bottomAmbitIndex === (totalAmbits - 1));\n\n if (isInFinalTransitionPosition && !isFinalTransition) {\n return '';\n }\n\n let tiles = '';\n\n for (let c = 0; c < this.mapColBreakdown.length; c++) {\n tiles += this.renderFogOfWarTileHTML(this.mapColBreakdown[c])\n || this.renderTileHTML(\n MAP_TILE_TYPES.TRANSITION,\n this.getTileSide(c)\n );\n }\n\n return `\n
\n ${tiles}\n
\n `;\n }\n\n /**\n * Creates a command slot tracker object for an ambit.\n * Each command column type gets 1 usable slot per ambit.\n *\n * @return {Object} commandSlotTracker\n */\n createCommandSlotTracker() {\n return {\n [MAP_COL_DEFENDER_COMMAND]: MAP_DEFAULT_COMMAND_COL_COUNT,\n [MAP_COL_ATTACKER_COMMAND]: MAP_DEFAULT_COMMAND_COL_COUNT,\n };\n }\n\n /**\n * @param {string} mapColType\n * @param {string} side\n * @param {string} ambit\n * @param {Object} commandSlotTracker\n * @return {string}\n */\n renderCommandTileHTML(\n mapColType,\n side,\n ambit,\n commandSlotTracker\n ) {\n let playerId = '';\n\n if (mapColType === MAP_COL_DEFENDER_COMMAND) {\n playerId = this.defender.id;\n } else if (mapColType === MAP_COL_ATTACKER_COMMAND) {\n playerId = this.attacker.id;\n } else {\n return '';\n }\n\n // Check if there's an available command slot for this column type\n const hasAvailableSlot = commandSlotTracker[mapColType] > 0;\n\n if (hasAvailableSlot) {\n commandSlotTracker[mapColType]--;\n }\n\n const tileType = hasAvailableSlot\n ? MAP_TILE_TYPES.COMMAND\n : MAP_TILE_TYPES.COMMAND_BLOCKED;\n\n // Command structs are always slot 0 in a fleet\n return this.renderTileHTML(\n tileType,\n side,\n playerId,\n ambit,\n hasAvailableSlot ? 0 : ''\n );\n }\n\n /**\n * @param {string} mapColType\n * @param {string} side\n * @param {string} ambit\n * @param {string} slot\n * @return {string}\n */\n renderPlanetaryTileHTML(\n mapColType,\n side,\n ambit,\n slot\n ) {\n if (mapColType !== MAP_COL_DEFENDER_PLANETARY) {\n return '';\n }\n\n const tileType = (slot === '')\n ? MAP_TILE_TYPES.PLANETARY_BLOCKED\n : MAP_TILE_TYPES.PLANETARY_SLOT;\n\n return this.renderTileHTML(\n tileType,\n side,\n this.defender.id,\n ambit,\n slot\n );\n }\n\n /**\n * @param {string} mapColType\n * @param {string} side\n * @param {string} ambit\n * @param {string} slot\n * @return {string}\n */\n renderFleetTileHTML(\n mapColType,\n side,\n ambit,\n slot\n ) {\n if (mapColType === MAP_COL_DEFENDER_FLEET) {\n return this.renderTileHTML(MAP_TILE_TYPES.FLEET, side, this.defender.id, ambit, slot);\n }\n if (mapColType === MAP_COL_ATTACKER_FLEET) {\n return this.renderTileHTML(MAP_TILE_TYPES.FLEET, side, this.attacker.id, ambit, slot);\n }\n return '';\n }\n\n /**\n * @param {string} mapColType\n * @param {string} ambit\n * @return {string}\n */\n renderDividerTileHTML(\n mapColType,\n ambit\n ) {\n if (mapColType !== MAP_COL_DIVIDER) {\n return '';\n }\n\n return this.renderTileHTML(\n MAP_TILE_TYPES.DIVIDER,\n '',\n '',\n ambit\n );\n }\n\n /**\n * @param {string} targetColType\n * @return {{first: null|number, last: null|number}}\n */\n findFirstAndLastOccurrencesOfColType(targetColType) {\n const first = this.mapColBreakdown.indexOf(targetColType);\n return {\n first: first === -1 ? null : first,\n last: first === -1 ? null : this.mapColBreakdown.lastIndexOf(targetColType)\n };\n }\n\n /**\n * @param {string} targetColType\n * @param {number} currentMapRowIndex\n * @param {number} currentMapColIndex\n * @param {number} totalSlots\n * @return {string}\n */\n calcSlotNumber(\n targetColType,\n currentMapRowIndex,\n currentMapColIndex,\n totalSlots\n ) {\n let targetColTypeOccurrences = this.findFirstAndLastOccurrencesOfColType(targetColType);\n\n const tilesOfTargetTypePerRow = (targetColTypeOccurrences.last - targetColTypeOccurrences.first) + 1;\n\n // Slot indexing from right to left\n const slotsToReserveThisRow = (targetColTypeOccurrences.last - currentMapColIndex);\n let slotNumber = slotsToReserveThisRow + currentMapRowIndex * tilesOfTargetTypePerRow;\n\n // Slot indexing from left to right\n if (this.mapColBreakdown[0] === MAP_COL_ATTACKER_COMMAND) {\n const slotsAssignedThisRow = currentMapColIndex - targetColTypeOccurrences.first;\n slotNumber = slotsAssignedThisRow + currentMapRowIndex * tilesOfTargetTypePerRow;\n }\n\n return (slotNumber >= totalSlots) ? '' : `${slotNumber}`;\n }\n\n\n\n /**\n * @return {string}\n */\n renderHTML() {\n let html = '';\n let previousAmbit = '';\n\n const planetAmbits = this.planet.getAmbits();\n\n for (let a = 0; a < planetAmbits.length; a++) {\n\n const currentAmbit = planetAmbits[a];\n const numPlanetarySlots = this.planet.getPlanetarySlotsByAmbit(currentAmbit, this.gameState.structTypes);\n const totalFleetSlotsPerAmbitPerPlayer = MAP_TILE_ROWS_PER_AMBIT * MAP_DEFAULT_FLEET_COL_COUNT;\n const commandSlotTracker = this.createCommandSlotTracker();\n\n html += this.renderTransitionRowHTML(previousAmbit, currentAmbit);\n\n for (let r = 0; r < MAP_TILE_ROWS_PER_AMBIT; r++) {\n\n html += `
`;\n\n for (let c = 0; c < this.mapColBreakdown.length; c++) {\n\n const mapColType = this.mapColBreakdown[c];\n let side = this.getTileSide(c);\n\n html += this.renderFogOfWarTileHTML(mapColType)\n || this.renderCommandTileHTML(mapColType, side, currentAmbit, commandSlotTracker)\n || this.renderPlanetaryTileHTML(\n mapColType,\n side,\n currentAmbit,\n this.calcSlotNumber(MAP_COL_DEFENDER_PLANETARY, r, c, numPlanetarySlots)\n )\n || this.renderFleetTileHTML(\n mapColType,\n side,\n currentAmbit,\n this.calcSlotNumber(mapColType, r, c, totalFleetSlotsPerAmbitPerPlayer)\n )\n || this.renderDividerTileHTML(mapColType, currentAmbit)\n ;\n }\n\n html += `
`;\n }\n\n html += this.renderTransitionRowHTML(\n previousAmbit,\n currentAmbit,\n true,\n planetAmbits.length,\n a\n );\n\n previousAmbit = currentAmbit;\n }\n\n return html;\n }\n\n /**\n * Clear a tile by position (e.g., when build is canceled).\n *\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n */\n clearTile(tileType, ambit, slot, playerId) {\n const selector = this.buildTileSelector(tileType, ambit, slot, playerId);\n const container = document.getElementById(this.containerId);\n const tileElement = container.querySelector(selector);\n if (tileElement) {\n tileElement.innerHTML = '';\n tileElement.setAttribute('data-struct-id', '');\n }\n }\n\n /**\n * @param {string} playerId\n * @return {Fleet|null}\n */\n getFleetByPlayerId(playerId) {\n if (this.attackerFleet?.owner === playerId) {\n return this.attackerFleet;\n } else if (this.defenderFleet?.owner === playerId) {\n return this.defenderFleet;\n }\n return null;\n }\n\n buildMapStructTilRenderParamsFromTileElement(tileElement) {\n const renderParams = new MapStructTileRenderParamsDTO();\n renderParams.tileElement = tileElement;\n\n const tileType = tileElement.getAttribute('data-tile-type');\n const ambit = tileElement.getAttribute('data-ambit');\n const slot = tileElement.getAttribute('data-slot');\n const playerId = tileElement.getAttribute('data-player-id');\n\n if (!this.hasTilePositionData(tileType, ambit, slot, playerId)) {\n return null;\n }\n\n const locationInfo = this.getLocationInfoFromTile(tileType, playerId);\n if (!locationInfo) {\n return null;\n }\n\n const slotNum = parseInt(slot, 10);\n const fleet = this.getFleetByPlayerId(playerId);\n\n renderParams.struct = this.structManager.getStructByPositionAndPlayerId(\n playerId,\n locationInfo.locationType,\n locationInfo.locationId,\n this.planet.id,\n ambit,\n slotNum,\n locationInfo.isCommandSlot,\n fleet\n );\n\n return renderParams;\n }\n\n /**\n * @param {Struct} struct\n * @return {MapStructTileRenderParamsDTO|null}\n */\n buildMapStructTilRenderParamsFromStruct(struct) {\n const renderParams = new MapStructTileRenderParamsDTO();\n renderParams.struct = struct;\n\n const tileType = this.structManager.getTileTypeFromStruct(struct);\n\n if (!tileType) {\n return null;\n }\n\n const ambit = struct.operating_ambit ? struct.operating_ambit.toUpperCase() : '';\n const selector = this.buildTileSelector(tileType, ambit, struct.slot, struct.owner);\n const container = document.getElementById(this.containerId);\n renderParams.tileElement = container.querySelector(selector);\n\n if (!renderParams.tileElement) {\n return null;\n }\n\n return renderParams;\n }\n}\n","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\nimport {TileClassNameUtil} from \"../../../util/TileClassNameUtil\";\nimport {MapTransitionLayerComponentFactory} from \"../../../factories/MapTransitionLayerComponentFactory\";\nimport {MapTransitionComponentBuilder} from \"../../../builders/MapTransitionComponentBuilder\";\nimport {MapTerrainComponent} from \"./MapTerrainComponent\";\nimport {MapOrnamentComponentBuilder} from \"../../../builders/MapOrnamentComponentBuilder\";\nimport {MapOrnamentsComponent} from \"./MapOrnamentsComponent\";\nimport {MapTileMarkersComponent} from \"./MapTileMarkersComponent\";\nimport {MapFogOfWarComponent} from \"./MapFogOfWarComponent\";\nimport {MAP_ORNAMENTS} from \"../../../constants/MapConstants\";\nimport {PLAYER_MAP_ROLES} from \"../../../constants/PlayerMapRoles\";\nimport {MAP_PERSPECTIVES} from \"../../../constants/MapPerspectives\";\nimport {MapTileSelectionComponent} from \"./MapTileSelectionComponent\";\nimport {MapStructLayerComponent} from \"./MapStructLayerComponent\";\nimport {MapStructHUDLayerComponent} from \"./MapStructHUDLayerComponent\";\nimport {MapPictureInPictureComponent} from \"./MapPictureInPictureComponent\";\nimport {Planet} from \"../../../models/Planet\";\nimport {Player} from \"../../../models/Player\";\n\nexport class MapComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {SigningClientManager} signingClientManager\n * @param {StructManager} structManager\n * @param {TaskManager} taskManager\n * @param {string} containerId\n * @param {string} idPrefix\n * @param {boolean} enableTileSelectionLayer\n */\n constructor(\n gameState,\n signingClientManager,\n structManager,\n taskManager,\n containerId,\n idPrefix,\n enableTileSelectionLayer = true\n ) {\n super(gameState);\n\n /** @type {SigningClientManager} */\n this.signingClientManager = signingClientManager;\n\n this.structManager = structManager;\n\n /** @type {TaskManager} */\n this.taskManager = taskManager;\n\n this.containerId = containerId;\n\n this.idPrefix = idPrefix;\n\n this.enableTileSelectionLayer = enableTileSelectionLayer;\n\n this.mapId = `${this.idPrefix}-map`;\n this.terrainId = `${this.idPrefix}-map-terrain`;\n this.ornamentsId = `${this.idPrefix}-map-ornaments`;\n this.markersId = `${this.idPrefix}-map-markers`;\n this.structLayerId = `${this.idPrefix}-map-struct-layer`;\n this.structHUDLayerId = `${this.idPrefix}-map-struct-hud-layer`;\n this.fogOfWarId = `${this.idPrefix}-map-fog-of-war`;\n this.tileSelectionId = `${this.idPrefix}-map-tile-selection`;\n this.pictureInPictureId = `${this.idPrefix}-map-pip`;\n\n /** @type {Planet|null} */\n this.planet = null;\n\n /** @type {Player|null} */\n this.attacker = null;\n\n /** @type {Player|null} */\n this.defender = null;\n\n /** @type {Fleet|null} */\n this.attackerFleet = null;\n\n /** @type {Fleet|null} */\n this.defenderFleet = null;\n\n this.perspective = null; // ATTACKER, DEFENDER\n\n this.tileClassNameUtil = new TileClassNameUtil();\n this.transitionLayerFactory = new MapTransitionLayerComponentFactory(this.tileClassNameUtil);\n this.transitionBuilder = new MapTransitionComponentBuilder(gameState, this.transitionLayerFactory);\n\n /** @type {MapTerrainComponent|null} */\n this.mapTerrain = null;\n\n /** @type {MapOrnamentComponentBuilder|null} */\n this.mapOrnamentBuilder = null;\n\n /** @type {MapOrnamentsComponent|null} */\n this.mapOrnaments = null;\n\n /** @type {MapTileMarkersComponent|null} */\n this.mapTileMarkers = null;\n\n /** @type {MapFogOfWarComponent|null} */\n this.mapFogOfWar = null;\n\n /** @type {MapStructLayerComponent|null} */\n this.mapStructLayer = null;\n\n /** @type {MapStructHUDLayerComponent|null} */\n this.mapStructHUDLayer = null;\n\n /** @type {MapTileSelectionComponent|null} */\n this.mapTileSelection = null;\n\n /** @type {MapPictureInPictureComponent|null} */\n this.mapPictureInPicture = null;\n }\n\n /**\n * @param {Planet} planet\n */\n setPlanet(planet) {\n this.planet = planet;\n }\n\n /**\n * @param {Player} player\n */\n setDefender(player) {\n this.defender = player;\n }\n\n /**\n * @param {Player|null} player\n */\n setAttacker(player) {\n this.attacker = player;\n }\n\n /**\n * @param {Fleet|null} fleet\n */\n setDefenderFleet(fleet) {\n this.defenderFleet = fleet;\n }\n\n /**\n * @param {Fleet|null} fleet\n */\n setAttackerFleet(fleet) {\n this.attackerFleet = fleet;\n }\n\n /**\n * @param {string} role\n */\n setPlayerMapRole(role) {\n if(!Object.values(PLAYER_MAP_ROLES).includes(role)) {\n throw new Error(`Invalid player map role: ${role}`);\n }\n\n switch (role) {\n case PLAYER_MAP_ROLES.ATTACKER:\n this.perspective = MAP_PERSPECTIVES.ATTACKER;\n break;\n case PLAYER_MAP_ROLES.DEFENDER:\n this.perspective = MAP_PERSPECTIVES.DEFENDER;\n break;\n case PLAYER_MAP_ROLES.SPECTATOR:\n this.perspective = MAP_PERSPECTIVES.ATTACKER;\n break;\n }\n }\n\n shouldDisplayFogOfWar() {\n return !this.attacker && (this.perspective === MAP_PERSPECTIVES.DEFENDER);\n }\n\n initMapComponents() {\n /**\n * URL parameter parsing for testing different scenarios.\n * URL param syntax: ?[ornament(/[a-zA-Z_]+/)]=[space|air|land|water]\n * */\n const urlParams = new URLSearchParams(document.location.search);\n\n Object.keys(MAP_ORNAMENTS).forEach((ornamentKey) => {\n let ornamentAmbit = urlParams.get(ornamentKey.toLowerCase());\n\n if (ornamentAmbit) {\n console.log(ornamentAmbit);\n ornamentAmbit = ornamentAmbit.toUpperCase();\n const ambitOrnaments = this.planet.ornaments.get(ornamentAmbit);\n ambitOrnaments.push(ornamentKey);\n this.planet.ornaments.set(ornamentAmbit, ambitOrnaments);\n console.log(this.planet);\n }\n })\n\n this.mapTerrain = new MapTerrainComponent(\n this.gameState,\n this.transitionBuilder,\n this.tileClassNameUtil,\n this.planet\n );\n this.mapTerrain.init();\n\n this.mapOrnamentBuilder = new MapOrnamentComponentBuilder(\n gameState,\n this.planet,\n this.mapTerrain.mapColCount\n );\n\n this.mapOrnaments = new MapOrnamentsComponent(\n this.gameState,\n this.mapOrnamentBuilder,\n this.planet\n );\n\n const mapColBreakdown = this.mapTerrain.getMapColBreakdown(this.perspective === MAP_PERSPECTIVES.DEFENDER);\n this.mapTileMarkers = new MapTileMarkersComponent(\n this.gameState,\n this.tileClassNameUtil,\n mapColBreakdown,\n this.planet\n );\n\n this.mapFogOfWar = new MapFogOfWarComponent(\n this.gameState,\n mapColBreakdown,\n this.planet\n );\n \n this.mapStructLayer = new MapStructLayerComponent(\n this.gameState,\n this.structManager,\n mapColBreakdown,\n this.planet,\n this.defender,\n this.attacker,\n this.defenderFleet,\n this.attackerFleet,\n this.structLayerId,\n this.mapId\n );\n\n this.mapStructHUDLayer = new MapStructHUDLayerComponent(\n this.gameState,\n this.structManager,\n this.taskManager,\n mapColBreakdown,\n this.planet,\n this.defender,\n this.attacker,\n this.defenderFleet,\n this.attackerFleet,\n this.structHUDLayerId,\n this.mapId\n );\n\n if (this.enableTileSelectionLayer) {\n\n this.mapTileSelection = new MapTileSelectionComponent(\n this.gameState,\n this.signingClientManager,\n this.structManager,\n mapColBreakdown,\n this.planet,\n this.defender,\n this.attacker,\n this.defenderFleet,\n this.attackerFleet,\n this.tileSelectionId,\n this.mapId\n );\n\n }\n\n this.mapPictureInPicture = new MapPictureInPictureComponent(\n this.gameState,\n this.structManager,\n this.tileClassNameUtil,\n this.mapTileMarkers,\n mapColBreakdown,\n this.planet,\n this.mapId,\n this.structLayerId,\n this.pictureInPictureId,\n this.idPrefix\n );\n }\n\n /**\n * @return {string}\n */\n renderHTML() {\n return `\n
\n
\n
\n
\n
\n
\n
\n
\n
\n `;\n }\n\n destroyMapStructLayer() {\n if (this.mapStructLayer) {\n this.mapStructLayer.destroy();\n }\n }\n\n destroyMapStructHUDLayer() {\n if (this.mapStructHUDLayer) {\n this.mapStructHUDLayer.destroy();\n }\n }\n\n /**\n * Tear down the PIP component (its window listeners and lottie players) and\n * remove its DOM element. The PIP is rendered at `document.body` level so\n * it is not wiped out by `${this.containerId}.innerHTML = ...` and must be\n * cleaned up explicitly across re-renders.\n */\n destroyMapPictureInPicture() {\n if (this.mapPictureInPicture) {\n this.mapPictureInPicture.destroy();\n this.mapPictureInPicture = null;\n }\n const existing = document.getElementById(this.pictureInPictureId);\n if (existing && existing.parentNode) {\n existing.parentNode.removeChild(existing);\n }\n }\n\n render() {\n this.destroyMapStructLayer();\n this.destroyMapStructHUDLayer();\n this.destroyMapPictureInPicture();\n\n document.getElementById(this.containerId).innerHTML = this.renderHTML();\n\n if (this.planet === null) {\n return;\n }\n\n this.initMapComponents();\n\n document.getElementById(this.terrainId).innerHTML = this.mapTerrain.renderHTML();\n\n document.getElementById(this.ornamentsId).innerHTML = this.mapOrnaments.renderHTML();\n\n document.getElementById(this.markersId).innerHTML = this.mapTileMarkers.renderHTML();\n\n document.getElementById(this.structLayerId).innerHTML = this.mapStructLayer.renderHTML();\n\n document.getElementById(this.structHUDLayerId).innerHTML = this.mapStructHUDLayer.renderHTML();\n\n if (this.shouldDisplayFogOfWar()) {\n document.getElementById(this.fogOfWarId).innerHTML = this.mapFogOfWar.renderHTML();\n }\n\n if (this.enableTileSelectionLayer) {\n document.getElementById(this.tileSelectionId).innerHTML = this.mapTileSelection.renderHTML();\n this.mapTileSelection.initPageCode();\n }\n\n // The PIP must live outside the (transform-scaled) `.map-container` so it\n // can be `position: fixed` against the browser viewport. Append it as a\n // direct child of ; destroyMapPictureInPicture() cleans it up.\n document.body.insertAdjacentHTML('beforeend', this.mapPictureInPicture.renderHTML());\n\n this.mapStructLayer.initPageCode();\n this.mapStructHUDLayer.initPageCode();\n this.mapPictureInPicture.initPageCode();\n }\n}","import {MAP_TILE_ROWS_PER_AMBIT, MAP_TILE_SIZE, MAP_TRANSITION_HEIGHT} from \"../../../constants/MapConstants\";\nimport {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\n\n/**\n * An overlay to hide the enemy side of the map when there is no enemy.\n */\nexport class MapFogOfWarComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {string[]} mapColBreakdown\n * @param {Planet} planet\n */\n constructor(\n gameState,\n mapColBreakdown,\n planet\n ) {\n super(gameState);\n this.mapColBreakdown = mapColBreakdown;\n this.planet = planet;\n }\n\n /**\n * Calculate the pixel width from the start of the map dividing column\n * to the right edge of the map.\n *\n * @return {int} the map width in pixels\n */\n calcWidthFromMapDividerToRightEdge() {\n const numColsFromDivider = this.mapColBreakdown.length - this.mapColBreakdown.indexOf('DIVIDER');\n return numColsFromDivider * MAP_TILE_SIZE;\n }\n\n /**\n * Calculate the left position of the map dividing column.\n *\n * @return {number} the left position in pixels\n */\n calcDividerLeftPos() {\n return this.mapColBreakdown.length * MAP_TILE_SIZE - this.calcWidthFromMapDividerToRightEdge();\n }\n\n /**\n * Calculate the pixel height of the map.\n *\n * @return {int} the map height in pixels\n */\n calcMapHeight() {\n const numAmbits = this.planet.getAmbits().length;\n\n const ambitRows = numAmbits * MAP_TILE_ROWS_PER_AMBIT;\n const heightOfAmbits = ambitRows * MAP_TILE_SIZE;\n\n const transitionRows = numAmbits + 1;\n const heightOfTransitions = transitionRows * MAP_TRANSITION_HEIGHT;\n\n return heightOfAmbits + heightOfTransitions;\n }\n\n /**\n * Renders fog of war overlay.\n *\n * @return {string} html\n */\n renderHTML() {\n const leftPosFogOfWar = this.calcDividerLeftPos();\n const widthFromDivider = this.calcWidthFromMapDividerToRightEdge();\n const mapHeight = this.calcMapHeight();\n return `\n
\n
\n
\n
\n `;\n }\n}\n","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\n\n/**\n * A decorative layer that overlays an ambit between the terrain and map marker layers.\n */\nexport class MapOrnamentComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {string} ornamentClassName\n * @param {int} width in pixels\n * @param {int} height in pixels\n * @param {int} top in pixels\n */\n constructor(\n gameState,\n ornamentClassName,\n width,\n height,\n top\n ) {\n super(gameState);\n this.ornamentClassName = ornamentClassName;\n this.width = width;\n this.height = height;\n this.top = top;\n }\n\n /**\n * Renders an ornament.\n *\n * @return {string} html\n */\n renderHTML() {\n return `\n
\n
\n
\n `;\n }\n}\n","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\n\n/**\n * An overlay for ambit level map ornaments.\n */\nexport class MapOrnamentsComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {MapOrnamentComponentBuilder} mapOrnamentBuilder\n * @param {Planet} planet\n */\n constructor(\n gameState,\n mapOrnamentBuilder,\n planet\n ) {\n super(gameState);\n this.mapOrnamentBuilder = mapOrnamentBuilder;\n this.planet = planet;\n }\n\n /**\n * @return {string}\n */\n renderHTML() {\n const planetAmbits = this.planet.getAmbits();\n const planetOrnaments = this.planet.getOrnaments();\n\n let html = '';\n\n for (let j = 0; j < planetAmbits.length; j++) {\n\n const ambitOrnaments = planetOrnaments.get(planetAmbits[j]);\n\n for (let i = 0; i < ambitOrnaments.length; i++) {\n html += (this.mapOrnamentBuilder.make(ambitOrnaments[i], planetAmbits[j])).renderHTML();\n }\n }\n\n return html;\n }\n}","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\nimport {EVENTS} from \"../../../constants/Events\";\nimport {MAP_TILE_ROWS_PER_AMBIT} from \"../../../constants/MapConstants\";\nimport {MapStructViewerComponent} from \"../MapStructViewerComponent\";\nimport {MapTerrainAmbitComponent} from \"./MapTerrainAmbitComponent\";\nimport {MapStructLayerComponent} from \"./MapStructLayerComponent\";\nimport {AttackSequenceAnimationUtil} from \"../../../util/AttackSequenceAnimationUtil\";\n\n/**\n * A 128x128 picture-in-picture overlay that mirrors the currently-animating\n * attack-sequence struct when its tile is fully off-screen.\n *\n * The PIP renders three layers for a single tile (terrain, optional marker,\n * struct viewer) and is positioned `position: fixed` against the browser\n * viewport so it is unaffected by the map's `transform: scale(...)`.\n *\n * The PIP delegates every \"render a tile\" decision back to the canonical\n * components so behavior stays in sync if those components change:\n * - terrain -> `MapTerrainAmbitComponent.renderTile`\n * - markers -> `MapTileMarkersComponent.getCellMarker` (wraps `processCell`)\n * - struct mount -> `MapStructLayerComponent.mountStructViewerInTile`\n * (extracted from `MapStructLayerComponent.renderStruct`)\n *\n * The PIP's struct viewer runs in \"muted\" mode (no `AnimationEndEvent`\n * dispatch) so its lottie completions can't drive the global\n * `AnimationEventQueue`.\n */\nexport class MapPictureInPictureComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {StructManager} structManager\n * @param {TileClassNameUtil} tileClassNameUtil\n * @param {MapTileMarkersComponent} mapTileMarkers\n * @param {string[]} mapColBreakdown\n * @param {Planet} planet\n * @param {string} mapId the id of the owning map; only animation events\n * whose `mapId` matches will affect this PIP\n * @param {string} structLayerId the DOM id of the owning map's struct layer\n * (used to locate the struct's tile element for visibility checks)\n * @param {string} containerId the DOM id this PIP renders into\n * @param {string} idPrefix used to build the PIP viewer's id prefix so its\n * internal lottie container ids don't collide with the on-map viewer's\n * ids for the same struct\n */\n constructor(\n gameState,\n structManager,\n tileClassNameUtil,\n mapTileMarkers,\n mapColBreakdown,\n planet,\n mapId,\n structLayerId,\n containerId,\n idPrefix\n ) {\n super(gameState);\n this.structManager = structManager;\n this.tileClassNameUtil = tileClassNameUtil;\n this.mapTileMarkers = mapTileMarkers;\n this.mapColBreakdown = mapColBreakdown;\n this.planet = planet;\n this.mapId = mapId;\n this.structLayerId = structLayerId;\n this.containerId = containerId;\n this.idPrefix = idPrefix;\n\n this.viewerIdPrefix = `pip-${this.idPrefix}-`;\n\n // Reused for `renderTile`, `rowIndexToVerticalPos`, and\n // `colIndexToHorizontalPos`. The instance is ambit-agnostic (the methods\n // we call accept ambit as a parameter or only consult mapColCount /\n // rowsPerAmbit), so a single helper is enough for every PIP render.\n this.terrainAmbitHelper = new MapTerrainAmbitComponent(\n this.gameState,\n this.tileClassNameUtil,\n '',\n this.mapColBreakdown.length,\n MAP_TILE_ROWS_PER_AMBIT\n );\n\n /** @type {string|null} struct id this PIP is currently tracking */\n this.activeStructId = null;\n\n /** @type {MapStructViewerComponent|null} */\n this.activeViewer = null;\n\n /**\n * True while the PIP viewer's lottie animation is in flight.\n * Flipped to false in `handleViewerAnimationsComplete`.\n *\n * @type {boolean}\n */\n this.viewerActive = false;\n\n /**\n * True when the attack sequence has produced a \"no continuation\" signal\n * (queue empty or next event is not an attack-sequence animation) and we\n * are waiting for the PIP's current animation to finish before hiding.\n *\n * @type {boolean}\n */\n this.pendingHide = false;\n\n /** @type {Array<{target: EventTarget, event: string, handler: EventListener}>} */\n this.windowEventHandlers = [];\n }\n\n /**\n * @return {string}\n */\n renderHTML() {\n return `
`;\n }\n\n /**\n * @return {HTMLElement|null}\n */\n getContainer() {\n return document.getElementById(this.containerId);\n }\n\n /**\n * Locate the on-map tile element for the given struct id, scoped to this\n * PIP's owning map.\n *\n * @param {string} structId\n * @return {HTMLElement|null}\n */\n findTileElement(structId) {\n if (!structId) {\n return null;\n }\n const structLayer = document.getElementById(this.structLayerId);\n if (!structLayer) {\n return null;\n }\n return structLayer.querySelector(`.map-struct-layer-tile[data-struct-id=\"${structId}\"]`);\n }\n\n /**\n * Determine whether a tile element is fully off-screen relative to the\n * browser viewport. Returns false when any part of the tile is visible.\n *\n * @param {HTMLElement|null} tileElement\n * @return {boolean}\n */\n isTileFullyOffscreen(tileElement) {\n if (!tileElement) {\n return false;\n }\n const rect = tileElement.getBoundingClientRect();\n const viewportWidth = window.innerWidth || document.documentElement.clientWidth;\n const viewportHeight = window.innerHeight || document.documentElement.clientHeight;\n return (\n rect.bottom <= 0\n || rect.top >= viewportHeight\n || rect.right <= 0\n || rect.left >= viewportWidth\n );\n }\n\n /**\n * Determine the (rowIndex within ambit, colIndex within row) of a struct\n * layer tile by walking the DOM. Transition rows and ambit boundary rows\n * stop the upward walk.\n *\n * @param {HTMLElement} tileElement\n * @return {{rowIndex: number, colIndex: number}|null}\n */\n findAmbitTilePosition(tileElement) {\n const ambit = tileElement.getAttribute('data-ambit');\n const row = tileElement.parentElement;\n if (!ambit || !row) {\n return null;\n }\n const colIndex = Array.from(row.children).indexOf(tileElement);\n\n let rowIndex = 0;\n let prev = row.previousElementSibling;\n while (prev) {\n const firstSiblingTile = prev.querySelector('.map-struct-layer-tile');\n if (!firstSiblingTile) {\n break;\n }\n if (firstSiblingTile.getAttribute('data-ambit') !== ambit) {\n break;\n }\n rowIndex++;\n prev = prev.previousElementSibling;\n }\n\n return {rowIndex, colIndex};\n }\n\n /**\n * Tear down the currently-rendered struct viewer (if any) and clear all PIP\n * markup. Used when transitioning to a new active struct or when destroying\n * the PIP entirely.\n */\n clearPipContents() {\n if (this.activeViewer) {\n this.activeViewer.onAnimationsComplete = null;\n this.activeViewer.destroy();\n this.activeViewer = null;\n }\n const container = this.getContainer();\n if (container) {\n container.innerHTML = '';\n container.classList.remove('mod-visible', 'mod-side-left', 'mod-side-right');\n }\n this.activeStructId = null;\n this.viewerActive = false;\n this.pendingHide = false;\n }\n\n /**\n * The PIP viewer's lottie animation reached its final frame. If a hide has\n * been requested in the meantime (queue empty / next event non-attack), tear\n * the PIP down now.\n */\n handleViewerAnimationsComplete() {\n this.viewerActive = false;\n if (this.pendingHide) {\n this.clearPipContents();\n }\n }\n\n /**\n * Mark the PIP for hide. If the viewer is mid-animation, the actual hide\n * is deferred until `handleViewerAnimationsComplete` fires; otherwise we\n * hide immediately.\n */\n requestHide() {\n this.pendingHide = true;\n if (!this.viewerActive) {\n this.clearPipContents();\n }\n }\n\n /**\n * Render the PIP contents for the active struct and autoplay the given\n * animation in the embedded viewer.\n *\n * The terrain tile is produced by `MapTerrainAmbitComponent.renderTile`,\n * the marker (if any) by `MapTileMarkersComponent.getCellMarker` (which\n * wraps `processCell`), and the struct viewer by\n * `MapStructLayerComponent.mountStructViewerInTile` (extracted from\n * `MapStructLayerComponent.renderStruct`).\n *\n * @param {string} structId\n * @param {HTMLElement} tileElement on-map tile element backing the struct\n * @param {AnimationEvent} animationEvent the triggering animation event\n * @return {boolean} whether the contents were rendered successfully\n */\n renderForStruct(structId, tileElement, animationEvent) {\n const struct = this.structManager.getStructById(structId);\n const ambit = tileElement.getAttribute('data-ambit');\n const side = tileElement.getAttribute('data-side');\n const tilePos = this.findAmbitTilePosition(tileElement);\n const container = this.getContainer();\n\n if (\n !struct\n || !struct.isBuilt()\n || !ambit\n || !side\n || !tilePos\n || !container\n ) {\n return false;\n }\n\n if (this.activeViewer) {\n this.activeViewer.onAnimationsComplete = null;\n this.activeViewer.destroy();\n this.activeViewer = null;\n }\n\n const verticalPos = this.terrainAmbitHelper.rowIndexToVerticalPos(tilePos.rowIndex);\n const horizontalPos = this.terrainAmbitHelper.colIndexToHorizontalPos(tilePos.colIndex);\n const terrainTileHTML = this.terrainAmbitHelper.renderTile(ambit, verticalPos, horizontalPos);\n const markerHTML = this.mapTileMarkers.getCellMarker(ambit, tilePos.rowIndex, tilePos.colIndex) || '';\n\n container.innerHTML = `\n ${terrainTileHTML}\n ${markerHTML}\n
\n `;\n container.classList.remove('mod-side-left', 'mod-side-right');\n container.classList.add(side === 'right' ? 'mod-side-right' : 'mod-side-left');\n\n this.activeViewer = new MapStructViewerComponent(\n this.gameState,\n this.structManager,\n struct.id,\n struct.type,\n this.mapId,\n this.viewerIdPrefix,\n false\n );\n this.activeViewer.onAnimationsComplete = () => this.handleViewerAnimationsComplete();\n\n const structSlot = container.querySelector('.map-pip-struct');\n MapStructLayerComponent.mountStructViewerInTile(structSlot, this.activeViewer, animationEvent);\n\n this.activeStructId = structId;\n this.viewerActive = true;\n this.pendingHide = false;\n\n return true;\n }\n\n /**\n * Update the PIP's visibility class based on whether the active struct's\n * tile is fully off-screen. Called on animation events, scroll, and resize.\n */\n updateVisibility() {\n const container = this.getContainer();\n if (!container) {\n return;\n }\n if (!this.activeStructId) {\n container.classList.remove('mod-visible');\n return;\n }\n const tileElement = this.findTileElement(this.activeStructId);\n if (this.isTileFullyOffscreen(tileElement)) {\n container.classList.add('mod-visible');\n } else {\n container.classList.remove('mod-visible');\n }\n }\n\n /**\n * Handle an incoming `EVENTS.ANIMATION` event:\n * - ignore events for other maps\n * - if the animation is part of an attack sequence: re-render the PIP for\n * the event's struct, replay the animation in muted mode, and update\n * visibility\n * - if the animation is not part of an attack sequence: the attack\n * sequence has ended on our map, so request a hide (deferred until the\n * PIP's current animation finishes playing)\n *\n * @param {AnimationEvent|Event} event\n */\n handleAnimation(event) {\n if (\n !event\n || !event.structId\n || (event.mapId && event.mapId !== this.mapId)\n ) {\n return;\n }\n\n if (!AttackSequenceAnimationUtil.includesAttackSequenceAnimation(event.animationNames || [])) {\n if (this.activeStructId) {\n this.requestHide();\n }\n return;\n }\n\n const tileElement = this.findTileElement(event.structId);\n if (!tileElement) {\n return;\n }\n\n const rendered = this.renderForStruct(event.structId, tileElement, event);\n if (!rendered) {\n return;\n }\n\n this.updateVisibility();\n }\n\n /**\n * The global `AnimationEventQueue` just transitioned to idle. If the PIP\n * is still tracking a struct, request a hide; the actual hide is deferred\n * until the PIP's current animation finishes playing.\n */\n handleAnimationQueueEmpty() {\n if (this.activeStructId) {\n this.requestHide();\n }\n }\n\n /**\n * @param {string} eventName\n * @param {EventListener|function} handler\n * @param {EventTarget} target\n */\n addEventListenerTracked(eventName, handler, target = window) {\n target.addEventListener(eventName, handler);\n this.windowEventHandlers.push({target, event: eventName, handler});\n }\n\n initPageCode() {\n this.addEventListenerTracked(EVENTS.ANIMATION, (event) => this.handleAnimation(event));\n this.addEventListenerTracked(EVENTS.ANIMATION_QUEUE_EMPTY, () => this.handleAnimationQueueEmpty());\n\n const visibilityHandler = () => this.updateVisibility();\n this.addEventListenerTracked('scroll', visibilityHandler, window);\n this.addEventListenerTracked('resize', visibilityHandler, window);\n }\n\n /**\n * Remove all listeners, destroy the embedded viewer, and clear PIP markup.\n * The container element itself is left in place so the owning\n * `MapComponent` can decide whether to remove it.\n */\n destroy() {\n for (let i = 0; i < this.windowEventHandlers.length; i++) {\n const {target, event, handler} = this.windowEventHandlers[i];\n target.removeEventListener(event, handler);\n }\n this.windowEventHandlers = [];\n\n this.clearPipContents();\n }\n}\n","import {GenericMapLayerComponent} from \"./GenericMapLayerComponent\";\nimport {Struct} from \"../../../models/Struct\";\nimport {StructType} from \"../../../models/StructType\";\nimport {EVENTS} from \"../../../constants/Events\";\nimport {OBJECT_TYPES} from \"../../../constants/ObjectTypes\";\nimport {PLAYER_TYPES} from \"../../../constants/PlayerTypes\";\nimport {STRUCT_TYPES} from \"../../../constants/StructConstants\";\nimport {TASK_TYPES} from \"../../../constants/TaskTypes\";\n\n\nexport class MapStructHUDLayerComponent extends GenericMapLayerComponent {\n\n /**\n * @param {GameState} gameState\n * @param {StructManager} structManager\n * @param {TaskManager} taskManager\n * @param {string[]} mapColBreakdown\n * @param {Planet|null} planet\n * @param {Player|null} defender\n * @param {Player|null} attacker\n * @param {Fleet|null} defenderFleet\n * @param {Fleet|null} attackerFleet\n * @param {string} containerId - The ID of the DOM container element for this HUD layer\n * @param {string} mapId\n */\n constructor(\n gameState,\n structManager,\n taskManager,\n mapColBreakdown,\n planet,\n defender,\n attacker,\n defenderFleet,\n attackerFleet,\n containerId = \"\",\n mapId = \"\"\n ) {\n super(\n gameState,\n 'map-struct-hud-layer-row',\n 'map-struct-hud-layer-tile',\n structManager,\n mapColBreakdown,\n planet,\n defender,\n attacker,\n defenderFleet,\n attackerFleet,\n containerId,\n mapId\n );\n\n /** @type {TaskManager} */\n this.taskManager = taskManager;\n\n /** @type {Array<{event: string, handler: EventListener}>} */\n this.windowEventHandlers = [];\n\n // Buffer of RENDER_STRUCT_HUD requests that arrived while the animation\n // queue was playing. Keyed by structId so that repeated requests collapse\n // to the latest struct snapshot. Flushed when ANIMATION_QUEUE_EMPTY fires.\n /** @type {Map} */\n this.deferredHudRenders = new Map();\n }\n\n /**\n * Register a window event listener and remember it so it can be removed in destroy().\n *\n * @param {string} event\n * @param {EventListener} handler\n */\n addWindowEventListener(event, handler) {\n window.addEventListener(event, handler);\n this.windowEventHandlers.push({event, handler});\n }\n\n /**\n * Remove all window event listeners registered by this component.\n */\n destroy() {\n for (let i = 0; i < this.windowEventHandlers.length; i++) {\n const {event, handler} = this.windowEventHandlers[i];\n window.removeEventListener(event, handler);\n }\n this.windowEventHandlers = [];\n this.deferredHudRenders.clear();\n }\n\n /**\n * @param {Struct} struct\n * @param {number|null} healthOverride if non-null, render the bar at this health\n * value instead of struct.health (used to show partial state mid-attack-sequence)\n * @return {string}\n */\n renderHealthBar(struct, healthOverride = null) {\n if (!struct.isBuilt()) {\n return '';\n }\n\n const structType = this.gameState.structTypes.getStructTypeById(struct.type);\n const segments = [];\n const health = (healthOverride !== null && healthOverride !== undefined)\n ? healthOverride\n : struct.health;\n\n for (let i = 0; i < structType.max_health; i++) {\n segments.push(`
`);\n }\n\n return `\n
\n ${segments.join('')}\n
\n `;\n }\n\n /**\n * Determines which task type's progress bar (if any) should be shown for the\n * given struct in the HUD layer. Returns null when no progress bar applies.\n *\n * Task progress is calculated locally on each player's machine against their\n * own task state, so the bar would never advance for structs owned by other\n * players. Restrict progress bars to structs owned by the current player.\n *\n * @param {Struct} struct\n * @param {StructType} structType\n * @return {string|null} a value from TASK_TYPES or null\n */\n getProgressBarTaskType(struct, structType) {\n if (!struct || struct.isDestroyed()) {\n return null;\n }\n const currentPlayerId = this.gameState.keyPlayers\n && this.gameState.keyPlayers[PLAYER_TYPES.PLAYER]\n ? this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id\n : null;\n if (!currentPlayerId || struct.owner !== currentPlayerId) {\n return null;\n }\n if (!struct.isBuilt()) {\n return TASK_TYPES.BUILD;\n }\n if (!struct.isOnline()) {\n return null;\n }\n if (structType && structType.type === STRUCT_TYPES.ORE_EXTRACTOR) {\n return TASK_TYPES.MINE;\n }\n if (structType && structType.type === STRUCT_TYPES.ORE_REFINERY) {\n return TASK_TYPES.REFINE;\n }\n return null;\n }\n\n /**\n * Clamp a fractional percent (0.0 - 1.0) and return it as a CSS percentage.\n *\n * @param {number} percent\n * @return {string}\n */\n formatProgressPercent(percent) {\n const clamped = Math.max(0, Math.min(1, percent || 0));\n return `${clamped * 100}%`;\n }\n\n /**\n * Render the struct progress bar HTML if applicable for the given struct.\n *\n * @param {Struct} struct\n * @return {string}\n */\n renderProgressBar(struct) {\n const structType = this.gameState.structTypes\n ? this.gameState.structTypes.getStructTypeById(struct.type)\n : null;\n const taskType = this.getProgressBarTaskType(struct, structType);\n if (!taskType) {\n return '';\n }\n\n let percent = 0;\n if (this.taskManager) {\n const process = this.taskManager.getProcessByStructIdAndType(struct.id, taskType);\n if (process) {\n percent = this.taskManager.getProcessPercentCompleteEstimate(process.state.getPID());\n }\n }\n\n return `\n
\n
\n
\n `;\n }\n\n /**\n * @param {Struct} struct\n * @return {string}\n */\n renderIndicatorIsDefended(struct) {\n return !struct.isDestroyed() && struct.isDefended()\n ? ``\n : '';\n }\n\n /**\n * @param {Struct} struct\n * @return {string}\n */\n renderIndicatorIsDefending(struct) {\n return !struct.isDestroyed() && struct.isDefending()\n ? ``\n : '';\n }\n\n /**\n * @param {Struct} struct\n * @return {string}\n */\n renderIndicatorIsDestroyed(struct) {\n return struct.isDestroyed()\n ? ``\n : '';\n }\n\n /**\n * @param {Struct} struct\n * @return {string}\n */\n renderIndicatorIsOffline(struct) {\n return !struct.isDestroyed() && struct.isBuilt() && !struct.isOnline()\n ? ``\n : '';\n }\n\n /**\n * @param {Struct} struct\n * @return {string}\n */\n renderStatusIndicators(struct) {\n return `\n
\n ${this.renderIndicatorIsDestroyed(struct)}\n ${this.renderIndicatorIsOffline(struct)}\n ${this.renderIndicatorIsDefended(struct)}\n ${this.renderIndicatorIsDefending(struct)}\n
\n `;\n }\n\n /**\n * Render the content for a single HUD tile\n * @param {HTMLElement} tileElement\n * @param {Struct|null} struct\n * @param {number|null} healthOverride if non-null, render the health bar at this\n * value instead of struct.health (used to show partial state mid-attack-sequence)\n */\n renderStructHUD(tileElement, struct = null, healthOverride = null) {\n const shouldRender = struct && (!struct.isDestroyed() || struct.isBuilt());\n\n if (!shouldRender) {\n tileElement.innerHTML = '';\n tileElement.setAttribute('data-struct-id', '');\n return;\n }\n\n const healthBarHTML = this.renderHealthBar(struct, healthOverride);\n const progressBarHTML = this.renderProgressBar(struct);\n const statusBarsHTML = (healthBarHTML || progressBarHTML)\n ? `
${healthBarHTML}${progressBarHTML}
`\n : '';\n\n tileElement.innerHTML = `\n ${statusBarsHTML}\n ${this.renderStatusIndicators(struct)}\n `;\n tileElement.setAttribute('data-struct-id', struct.id);\n }\n\n /**\n * @param {HTMLElement} tileElement\n */\n renderStructHUDFromTileElement(tileElement) {\n const renderParams = this.buildMapStructTilRenderParamsFromTileElement(tileElement);\n if (renderParams) {\n this.renderStructHUD(renderParams.tileElement, renderParams.struct);\n }\n }\n\n /**\n * @param {Struct} struct\n * @param {number|null} healthOverride if non-null, render the health bar at this\n * value instead of struct.health\n */\n renderStructHUDFromStruct(struct, healthOverride = null) {\n const renderParams = this.buildMapStructTilRenderParamsFromStruct(struct);\n if (renderParams) {\n this.renderStructHUD(renderParams.tileElement, renderParams.struct, healthOverride);\n }\n }\n\n renderAllStructHUDs() {\n const tiles = document.getElementById(this.containerId).querySelectorAll(`.${this.tileClass}`);\n tiles.forEach(tile => {\n this.renderStructHUDFromTileElement(tile);\n });\n }\n\n /**\n * Update only the width of an already rendered progress bar fill for the\n * given struct, without re-rendering the entire HUD tile. If the tile\n * currently has no progress bar of the supplied taskType (e.g. the struct\n * just transitioned from BUILD to MINE), fall back to a full HUD render\n * so the correct bar appears.\n *\n * @param {string} structId\n * @param {string} taskType see TASK_TYPES\n * @param {number} percent fractional (0.0 - 1.0)\n */\n updateProgressBarFill(structId, taskType, percent) {\n const tile = document.querySelector(\n `#${this.mapId} .${this.tileClass}[data-struct-id=\"${structId}\"]`\n );\n if (!tile) {\n return;\n }\n const progressBar = tile.querySelector(`.struct-progress-bar[data-task-type=\"${taskType}\"]`);\n if (!progressBar) {\n const struct = this.structManager.getStructById(structId);\n if (struct) {\n this.renderStructHUD(tile, struct);\n }\n return;\n }\n const fill = progressBar.querySelector('.struct-progress-bar-fill');\n if (fill) {\n fill.style.width = this.formatProgressPercent(percent);\n }\n }\n\n /**\n * Initialize page code: set up event listeners for future expansion\n */\n initPageCode() {\n this.renderAllStructHUDs();\n\n this.addWindowEventListener(EVENTS.TASK_STATE_CHANGED, (event) => {\n if (\n !event.state\n || event.state.object_type !== OBJECT_TYPES.STRUCT\n ) {\n return;\n }\n\n const structId = event.state.object_id;\n const struct = this.structManager.getStructById(structId);\n if (!struct) {\n return;\n }\n\n const structType = this.gameState.structTypes\n ? this.gameState.structTypes.getStructTypeById(struct.type)\n : null;\n const expectedTaskType = this.getProgressBarTaskType(struct, structType);\n if (!expectedTaskType) {\n return;\n }\n\n // Use the manager's estimator (factors hashrate + block offset) so the\n // live update matches the value used by renderProgressBar on the\n // initial draw and avoids a visible jump on the first tick.\n this.updateProgressBarFill(\n structId,\n expectedTaskType,\n this.taskManager.getProcessPercentCompleteEstimate(event.state.getPID())\n );\n });\n\n this.addWindowEventListener(EVENTS.RENDER_STRUCT_HUD, (event) => {\n if (event.mapId !== this.mapId) {\n return;\n }\n // While the animation queue is playing, defer applying gameState-based\n // HUD renders. Animation lifecycles drive partial-state HUD content via\n // ANIMATION_END's healthAfter, and applying gameState mid-sequence would\n // clobber that partial state with the (already-final) post-attack value.\n // The deferred render is flushed once the queue goes idle.\n if (this.gameState.animationEventQueue && this.gameState.animationEventQueue.isPlaying) {\n this.deferredHudRenders.set(event.struct.id, event.struct);\n return;\n }\n this.renderStructHUDFromStruct(event.struct);\n });\n\n this.addWindowEventListener(EVENTS.ANIMATION_QUEUE_EMPTY, () => {\n if (this.deferredHudRenders.size === 0) {\n return;\n }\n for (const struct of this.deferredHudRenders.values()) {\n this.renderStructHUDFromStruct(struct);\n }\n this.deferredHudRenders.clear();\n });\n\n this.addWindowEventListener(EVENTS.CLEAR_STRUCT_TILE, (event) => {\n if (event.mapId === this.mapId) {\n this.clearTile(event.tileType, event.ambit, event.slot, event.playerId);\n }\n });\n\n // Hide the HUD while animations are playing for the tile and show HUD after they're finished\n this.addWindowEventListener(EVENTS.ANIMATION, (event) => {\n if (event.mapId && event.mapId !== this.mapId) {\n return;\n }\n const tile = document.querySelector(`#${this.mapId} .map-struct-hud-layer-tile[data-struct-id=\"${event.structId}\"]`);\n if (tile) {\n tile.classList.add('invisible');\n }\n });\n this.addWindowEventListener(EVENTS.ANIMATION_END, (event) => {\n if (event.mapId && event.mapId !== this.mapId) {\n return;\n }\n const tile = document.querySelector(`#${this.mapId} .map-struct-hud-layer-tile[data-struct-id=\"${event.structId}\"]`);\n if (!tile) {\n return;\n }\n\n // When the animation carries a partial health value (e.g. from a multi-source\n // attack sequence), re-render the HUD content at that health before revealing\n // it. Without this, gameState already holds the final post-attack health, so\n // the HUD would jump to the final state after the first counter animation.\n if (event.healthAfter !== null && event.healthAfter !== undefined) {\n const struct = this.structManager.getStructById(event.structId);\n if (struct) {\n this.renderStructHUD(tile, struct, event.healthAfter);\n }\n }\n\n tile.classList.remove('invisible');\n });\n }\n}\n","import {EVENTS} from \"../../../constants/Events\";\nimport {StructStillBuilder} from \"../../../builders/StructStillBuilder\";\nimport {Player} from \"../../../models/Player\";\nimport {Struct} from \"../../../models/Struct\";\nimport {GenericMapLayerComponent} from \"./GenericMapLayerComponent\";\nimport {PLAYER_TYPES} from \"../../../constants/PlayerTypes\";\nimport {AmbitUtil} from \"../../../util/AmbitUtil\";\nimport {MapStructViewerComponent} from \"../MapStructViewerComponent\";\n\n\nexport class MapStructLayerComponent extends GenericMapLayerComponent {\n\n /**\n * @param {GameState} gameState\n * @param {StructManager} structManager\n * @param {string[]} mapColBreakdown\n * @param {Planet|null} planet\n * @param {Player|null} defender\n * @param {Player|null} attacker\n * @param {Fleet|null} defenderFleet\n * @param {Fleet|null} attackerFleet\n * @param {string} containerId - The ID of the DOM container element for this struct layer\n * @param {string} mapId\n */\n constructor(\n gameState,\n structManager,\n mapColBreakdown,\n planet,\n defender,\n attacker,\n defenderFleet,\n attackerFleet,\n containerId = \"\",\n mapId = \"\"\n ) {\n super(\n gameState,\n 'map-struct-layer-row',\n 'map-struct-layer-tile',\n structManager,\n mapColBreakdown,\n planet,\n defender,\n attacker,\n defenderFleet,\n attackerFleet,\n containerId,\n mapId\n );\n\n this.structStillBuilder = new StructStillBuilder(this.gameState);\n this.ambitUtil = new AmbitUtil();\n\n /** @type {Object} */\n this.mapStructViewers = {};\n\n /** @type {Array<{event: string, handler: EventListener}>} */\n this.windowEventHandlers = [];\n }\n\n /**\n * @return {string}\n */\n renderDeploymentIndicatorHTML() {\n return `\n
\n \"Deployment\n
\n `;\n }\n\n /**\n * Render the deployment indicator over a particular tile.\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n */\n renderDeploymentIndicator(tileType, ambit, slot, playerId) {\n const selector = this.buildTileSelector(tileType, ambit, slot, playerId);\n const container = document.getElementById(this.containerId);\n const tileElement = container.querySelector(selector);\n tileElement.innerHTML = this.renderDeploymentIndicatorHTML();\n }\n\n /**\n * Destroy and forget the viewer associated with `structId` (if any). This\n * releases the underlying lottie players so their frame caches, image\n * bitmaps, DOM listeners, and SVG renderers can be garbage collected.\n *\n * @param {string} structId\n */\n destroyMapStructViewer(structId) {\n if (structId && this.mapStructViewers[structId]) {\n this.mapStructViewers[structId].destroy();\n delete this.mapStructViewers[structId];\n }\n }\n\n /**\n * Render a `MapStructViewerComponent` into a tile element and initialize\n * its lottie players, optionally autoplaying a given animation.\n *\n * Shared by `renderStruct` (the on-map struct layer) and by the picture-in-\n * picture component (whose internal struct slot also mounts a viewer).\n * Centralizing it ensures any future change to the mount + init lifecycle\n * only needs to happen in one place.\n *\n * @param {HTMLElement} tileElement\n * @param {MapStructViewerComponent} viewer\n * @param {AnimationEvent|null} animationToAutoplay\n */\n static mountStructViewerInTile(tileElement, viewer, animationToAutoplay = null) {\n tileElement.innerHTML = viewer.renderHTML();\n if (animationToAutoplay) {\n viewer.init(\n animationToAutoplay.animationNames,\n animationToAutoplay.showStructStillDuringAnimation,\n animationToAutoplay.showStructStillAfterAnimation,\n animationToAutoplay.options\n );\n } else {\n viewer.init();\n }\n }\n\n /**\n * @param {HTMLElement} tileElement\n * @param {Struct} struct\n * @param {AnimationEvent} animationToAutoplay the animation to autoplay once the struct is rendered and ready to play animations\n */\n renderStruct(tileElement, struct, animationToAutoplay = null) {\n if (!struct) {\n\n const oldStructId = tileElement.getAttribute('data-struct-id');\n this.destroyMapStructViewer(oldStructId);\n tileElement.innerHTML = '';\n if (oldStructId) {\n tileElement.setAttribute('data-struct-id', '');\n }\n\n } else if (!struct.isBuilt()) {\n\n // Defensive: if the tile previously held a built struct (whose viewer\n // we own), tear it down before the deployment-indicator overwrite so\n // its lottie players don't leak.\n const oldStructId = tileElement.getAttribute('data-struct-id');\n if (oldStructId && oldStructId !== struct.id) {\n this.destroyMapStructViewer(oldStructId);\n }\n tileElement.innerHTML = this.renderDeploymentIndicatorHTML();\n tileElement.setAttribute('data-struct-id', struct.id);\n\n } else {\n\n // Tear down any prior viewer at this key (same struct re-rendering on a\n // status/build/move event) before we overwrite the reference, otherwise\n // lottie-web's internal registry keeps every previously-played\n // animation alive for the lifetime of the page.\n this.destroyMapStructViewer(struct.id);\n\n this.mapStructViewers[struct.id] = new MapStructViewerComponent(\n this.gameState,\n this.structManager,\n struct.id,\n struct.type,\n this.mapId\n );\n MapStructLayerComponent.mountStructViewerInTile(\n tileElement,\n this.mapStructViewers[struct.id],\n animationToAutoplay\n );\n tileElement.setAttribute('data-struct-id', struct.id);\n }\n }\n\n /**\n * @param {HTMLElement} tileElement\n */\n renderStructFromTileElement(tileElement) {\n const renderParams = this.buildMapStructTilRenderParamsFromTileElement(tileElement);\n if (renderParams) {\n this.renderStruct(renderParams.tileElement, renderParams.struct);\n }\n }\n\n /**\n * @param {Struct} struct\n * @param {AnimationEvent} animationToAutoplay the animation to autoplay once the struct is rendered and ready to play animations\n */\n renderStructFromStruct(struct, animationToAutoplay = null) {\n const renderParams = this.buildMapStructTilRenderParamsFromStruct(struct);\n if (renderParams) {\n this.renderStruct(renderParams.tileElement, renderParams.struct, animationToAutoplay);\n }\n }\n\n /**\n * Sync all struct tiles in the container by looking up structs for each tile\n */\n renderAllStructs() {\n const container = document.getElementById(this.containerId);\n const tiles = container.querySelectorAll('.map-struct-layer-tile');\n tiles.forEach(tileElement => this.renderStructFromTileElement(tileElement));\n }\n\n /**\n * Mark enemy structs as invalid selections when entering defend mode.\n */\n showDefendTargets() {\n const container = document.getElementById(this.containerId);\n const playerId = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id;\n const tiles = container.querySelectorAll(`.map-struct-layer-tile[data-side=\"right\"][data-player-id^=\"1\"]:not([data-player-id=\"${playerId}\"])`);\n tiles.forEach(tile => {\n tile.classList.add('mod-invalid-selection');\n });\n }\n\n /**\n * Clear all defend target indicators.\n */\n clearDefendTargets() {\n const container = document.getElementById(this.containerId);\n const tiles = container.querySelectorAll('.map-struct-layer-tile.mod-invalid-selection');\n tiles.forEach(tile => {\n tile.classList.remove('mod-invalid-selection');\n });\n }\n\n /**\n * Mark enemy structs as invalid selections when entering attack mode\n * if their operating ambit does not fall within the weapon's ambit array.\n *\n * @param {string[]} weaponAmbitsArray - Valid target ambits for the weapon (e.g. [\"space\", \"air\"])\n */\n showAttackTargets(weaponAmbitsArray) {\n const container = document.getElementById(this.containerId);\n const attackingPlayerId = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id;\n const attackingStruct = this.gameState.actionBarLock.getActionSourceStruct();\n const tiles = container.querySelectorAll(`.map-struct-layer-tile[data-struct-id^=\"5\"]`);\n\n tiles.forEach(tile => {\n const ambit = tile.getAttribute('data-ambit');\n const playerId = tile.getAttribute('data-player-id');\n const structId = tile.getAttribute('data-struct-id');\n\n // Mark as invalid if the struct's operating ambit is not in the weapon's ambit array\n // or the struct belongs to the player except if it's the attacking struct\n if (\n attackingStruct.id !== structId\n && (\n attackingPlayerId === playerId\n || !this.ambitUtil.contains(weaponAmbitsArray, ambit, attackingStruct.operating_ambit)\n )\n ) {\n tile.classList.add('mod-invalid-selection');\n }\n });\n }\n\n /**\n * Clear all attack target indicators.\n */\n clearAttackTargets() {\n const container = document.getElementById(this.containerId);\n const tiles = container.querySelectorAll('.map-struct-layer-tile.mod-invalid-selection');\n tiles.forEach(tile => {\n tile.classList.remove('mod-invalid-selection');\n });\n }\n\n /**\n * Register a window event listener and remember it so it can be removed in destroy().\n *\n * @param {string} event\n * @param {EventListener} handler\n */\n addWindowEventListener(event, handler) {\n window.addEventListener(event, handler);\n this.windowEventHandlers.push({event, handler});\n }\n\n /**\n * Remove all window event listeners registered by this component, destroy\n * every owned struct viewer (releasing its lottie players), and clear\n * viewer references.\n */\n destroy() {\n for (let i = 0; i < this.windowEventHandlers.length; i++) {\n const {event, handler} = this.windowEventHandlers[i];\n window.removeEventListener(event, handler);\n }\n this.windowEventHandlers = [];\n\n for (const structId in this.mapStructViewers) {\n if (Object.prototype.hasOwnProperty.call(this.mapStructViewers, structId)) {\n this.mapStructViewers[structId].destroy();\n }\n }\n this.mapStructViewers = {};\n }\n\n /**\n * Initialize page code: populate structs and set up event listeners\n */\n initPageCode() {\n // Populate initial structs\n this.renderAllStructs();\n\n this.addWindowEventListener(EVENTS.RENDER_ALL_STRUCTS, (event) => {\n if (event.mapId === this.mapId) {\n this.renderAllStructs();\n }\n });\n\n this.addWindowEventListener(EVENTS.ANIMATION, (event) => {\n if (event.mapId && event.mapId !== this.mapId) {\n return;\n }\n if (this.mapStructViewers[event.structId]) {\n this.mapStructViewers[event.structId].play(\n event.animationNames,\n event.showStructStillDuringAnimation,\n event.showStructStillAfterAnimation,\n event.options\n );\n }\n });\n\n this.addWindowEventListener(EVENTS.RENDER_STRUCT, (event) => {\n if (event.mapId === this.mapId) {\n this.renderStructFromStruct(event.struct, event.animationToAutoplay);\n }\n });\n\n this.addWindowEventListener(EVENTS.RENDER_DEPLOYMENT_INDICATOR, (event) => {\n if (event.mapId === this.mapId) {\n this.renderDeploymentIndicator(event.tileType, event.ambit, event.slot, event.playerId);\n }\n });\n\n this.addWindowEventListener(EVENTS.CLEAR_STRUCT_TILE, (event) => {\n if (event.mapId === this.mapId) {\n this.clearTile(event.tileType, event.ambit, event.slot, event.playerId);\n }\n });\n\n this.addWindowEventListener(EVENTS.SHOW_DEFEND_TARGETS, (event) => {\n if (event.mapId === this.mapId) {\n this.showDefendTargets();\n }\n });\n\n this.addWindowEventListener(EVENTS.CLEAR_DEFEND_TARGETS, (event) => {\n if (event.mapId === this.mapId) {\n this.clearDefendTargets();\n }\n });\n\n this.addWindowEventListener(EVENTS.SHOW_ATTACK_TARGETS, (event) => {\n if (event.mapId === this.mapId) {\n this.showAttackTargets(event.weaponAmbitsArray);\n }\n });\n\n this.addWindowEventListener(EVENTS.CLEAR_ATTACK_TARGETS, (event) => {\n if (event.mapId === this.mapId) {\n this.clearAttackTargets();\n }\n });\n }\n}\n","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\n\n/**\n * Component for rendering the terrain tiles that make up an ambit, excluding transitions.\n */\nexport class MapTerrainAmbitComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {TileClassNameUtil} tileClassNameUtil\n * @param {string} ambit\n * @param {int} mapColCount\n * @param {int} rowsPerAmbit\n */\n constructor(\n gameState,\n tileClassNameUtil,\n ambit,\n mapColCount,\n rowsPerAmbit\n ) {\n super(gameState);\n this.tileClassNameUtil = tileClassNameUtil;\n this.ambit = ambit;\n this.mapColCount = mapColCount;\n this.rowsPerAmbit = rowsPerAmbit;\n }\n\n /**\n * Converts a tile row index to a vertical position.\n *\n * @param {int} rowIndex\n *\n * @return {string} top|middle|bottom\n */\n rowIndexToVerticalPos(rowIndex) {\n let verticalPos = 'bottom';\n if (rowIndex === 0) {\n verticalPos = 'top';\n } else if (rowIndex > 0 && rowIndex < this.rowsPerAmbit - 1) {\n verticalPos = 'middle';\n }\n return verticalPos;\n }\n\n /**\n * Converts a tile column index to a horizontal position.\n *\n * @param {int} colIndex\n *\n * @return {string} left|middle|right\n */\n colIndexToHorizontalPos(colIndex) {\n let horizontalPos = 'right';\n if (colIndex === 0) {\n horizontalPos = 'left';\n } else if (colIndex > 0 && colIndex < this.mapColCount - 1) {\n horizontalPos = 'middle';\n }\n return horizontalPos;\n }\n\n /**\n * Renders an individual terrain tile.\n *\n * @param {string} ambit\n * @param {string} verticalPos\n * @param {string} horizontalPos\n *\n * @return {string} html\n */\n renderTile(ambit, verticalPos, horizontalPos) {\n const tileClassName = this.tileClassNameUtil.getTileClassName(ambit, verticalPos, horizontalPos);\n return `
`;\n }\n\n /**\n * Render the terrain tiles that make up the ambit.\n *\n * @return {string} html\n */\n renderHTML() {\n let html = `
`;\n\n for (let rowIndex = 0; rowIndex < this.rowsPerAmbit; rowIndex++) {\n\n const verticalPos = this.rowIndexToVerticalPos(rowIndex);\n html += `
`;\n\n for (let colIndex = 0; colIndex < this.mapColCount; colIndex++) {\n\n const horizontalPos = this.colIndexToHorizontalPos(colIndex);\n html += this.renderTile(this.ambit, verticalPos, horizontalPos);\n\n }\n\n html += `
`;\n }\n\n html += `
`;\n\n return html;\n }\n}","import {\n MAP_COL_COUNT_PROPS,\n MAP_COL_ORDER,\n MAP_DEFAULT_COMMAND_COL_COUNT,\n MAP_DEFAULT_DIVIDER_COL_COUNT,\n MAP_DEFAULT_FLEET_COL_COUNT,\n MAP_DEFAULT_PLANETARY_COL_COUNT, MAP_TILE_ROWS_PER_AMBIT\n} from \"../../../constants/MapConstants\";\nimport {MapTerrainAmbitComponent} from \"./MapTerrainAmbitComponent\";\nimport {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\n\n/**\n * The terrain part of the map including ambit transitions.\n */\nexport class MapTerrainComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {MapTransitionComponentBuilder} transitionBuilder\n * @param {TileClassNameUtil} tileClassNameUtil\n * @param {Planet} planet\n */\n constructor(\n gameState,\n transitionBuilder,\n tileClassNameUtil,\n planet\n ) {\n super(gameState);\n this.transitionBuilder = transitionBuilder;\n this.tileClassNameUtil = tileClassNameUtil;\n\n this.planet = planet;\n\n this.defenderCommandColCount = MAP_DEFAULT_COMMAND_COL_COUNT;\n this.defenderPlanetaryColCount = MAP_DEFAULT_PLANETARY_COL_COUNT;\n this.defenderFleetColCount = MAP_DEFAULT_FLEET_COL_COUNT;\n this.dividerColCount = MAP_DEFAULT_DIVIDER_COL_COUNT;\n this.attackerFleetColCount = MAP_DEFAULT_FLEET_COL_COUNT;\n this.attackerCommandColCount = MAP_DEFAULT_COMMAND_COL_COUNT;\n\n this.mapColCount = 0;\n }\n\n /**\n * Determines how many tile columns are needed based on the number of slots.\n *\n * @param {Planet|Fleet} slotsPerAmbit Planet or Fleet\n * @param {int} maxRows\n *\n * @return {number}\n */\n calcColsNeededBySlots(slotsPerAmbit, maxRows = MAP_TILE_ROWS_PER_AMBIT) {\n return Math.ceil(\n Math.max(\n slotsPerAmbit.space_slots,\n slotsPerAmbit.air_slots,\n slotsPerAmbit.land_slots,\n slotsPerAmbit.water_slots\n ) / maxRows\n );\n }\n\n /**\n * Count the number of tile columns in the map.\n *\n * @return {number}\n */\n countMapCols() {\n return MAP_COL_ORDER.reduce((sum, col) =>\n sum + this[MAP_COL_COUNT_PROPS[col]]\n , 0);\n }\n\n /**\n * Calculate and store the number of each type of tile column.\n */\n init() {\n this.defenderPlanetaryColCount = Math.max(this.calcColsNeededBySlots(this.planet), MAP_DEFAULT_PLANETARY_COL_COUNT);\n this.mapColCount = this.countMapCols();\n }\n\n /**\n * Determine the type of each column.\n *\n * @param {boolean} planetOwnerView if the viewing player is not the planet owner, the column order needs to be reverse\n *\n * @return {string[]} the type of each column\n */\n getMapColBreakdown(planetOwnerView = true) {\n let breakdown = [];\n\n for (let i = 0; i < MAP_COL_ORDER.length; i++) {\n\n const columnType = MAP_COL_ORDER[i];\n\n for (let j = 0; j < this[MAP_COL_COUNT_PROPS[columnType]]; j++) {\n breakdown.push(columnType);\n }\n\n }\n\n if (!planetOwnerView) {\n breakdown.reverse();\n }\n\n return breakdown;\n }\n\n /**\n * Renders the full terrain layer of the map.\n *\n * @return {string} html\n */\n renderHTML() {\n let html = '';\n let lastAmbit = '';\n const ambits = this.planet.getAmbits();\n\n for (let i = 0; i < ambits.length; i++) {\n\n let transition = this.transitionBuilder.make(this.mapColCount, lastAmbit, ambits[i]);\n html += transition.renderHTML();\n\n html += (new MapTerrainAmbitComponent(\n gameState,\n this.tileClassNameUtil,\n ambits[i],\n this.countMapCols(),\n MAP_TILE_ROWS_PER_AMBIT\n )).renderHTML();\n\n if (i === ambits.length - 1) {\n transition = this.transitionBuilder.make(this.mapColCount, ambits[i]);\n html += transition.renderHTML();\n }\n\n lastAmbit = ambits[i];\n }\n\n return html;\n }\n}","import {PositionDTO} from \"../../../dtos/PositionDTO\";\nimport {\n MAP_COL_ATTACKER_COMMAND, MAP_COL_DEFENDER_COMMAND, MAP_COL_DEFENDER_PLANETARY,\n MAP_TILE_ROWS_PER_AMBIT,\n MAP_TILE_SIZE,\n MAP_TRANSITION_HEIGHT\n} from \"../../../constants/MapConstants\";\nimport {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\n\n/**\n * An overlay to show obstructions and other indicators on top of map tiles.\n */\nexport class MapTileMarkersComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {TileClassNameUtil} tileClassNameUtil\n * @param {string[]} mapColBreakdown\n * @param {Planet} planet\n */\n constructor(\n gameState,\n tileClassNameUtil,\n mapColBreakdown,\n planet\n ) {\n super(gameState);\n this.tileClassNameUtil = tileClassNameUtil;\n this.mapColBreakdown = mapColBreakdown;\n this.planet = planet;\n }\n\n /**\n * Converts a relative ambit tile position (such as Space, column 2, row 1)\n * to an x, y, z pixel coordinate with respect to the overall map.\n *\n * @param {string} ambit\n * @param {int} ambitRow\n * @param {int} col\n *\n * @return {PositionDTO} pos\n */\n convertAmbitPosToPixelPos(ambit, ambitRow, col) {\n\n const pos = new PositionDTO();\n\n // Calculate x pixel position\n pos.x = col * MAP_TILE_SIZE;\n\n // Calculate y pixel position\n const planetAmbits = this.planet.getAmbits();\n const ambitIndex = planetAmbits.indexOf(ambit);\n\n let lastAmbit = '';\n for(let i = 0; i <= ambitIndex; i++) {\n const currentAmbit = planetAmbits[i];\n\n // Transition height\n pos.y += MAP_TRANSITION_HEIGHT;\n\n // Ambit height\n if (ambit !== currentAmbit) {\n pos.y += MAP_TILE_ROWS_PER_AMBIT * MAP_TILE_SIZE;\n }\n\n lastAmbit = currentAmbit;\n }\n\n pos.y += ambitRow * MAP_TILE_SIZE;\n\n return pos;\n }\n\n /**\n * Renders the tile marker overlay\n * determining where blocked and beacon markers should go based on\n * the map column breakdown and planetary slots.\n *\n * @return {string} html\n */\n renderHTML() {\n const markers = [];\n const planetAmbits = this.planet.getAmbits();\n\n for (const ambit of planetAmbits) {\n const slotTracker = this.createSlotTracker(ambit);\n\n for (let r = 0; r < MAP_TILE_ROWS_PER_AMBIT; r++) {\n for (const c of this.getColumnIndices()) {\n const marker = this.processCell(ambit, r, c, slotTracker);\n if (marker) {\n markers.push(marker);\n }\n }\n }\n }\n\n return markers.join('');\n }\n\n /**\n * Creates a slot tracker object for an ambit with consumption logic.\n *\n * @param {string} ambit\n * @return {Object} slotTracker\n */\n createSlotTracker(ambit) {\n return {\n [MAP_COL_ATTACKER_COMMAND]: 1,\n [MAP_COL_DEFENDER_COMMAND]: 1,\n [MAP_COL_DEFENDER_PLANETARY]: this.planet.getPlanetarySlotsByAmbit(ambit, this.gameState.structTypes),\n };\n }\n\n /**\n * Returns column indices in the correct order based on perspective.\n * If the view is from the attacker's perspective, the blockers and beacons should be swapped.\n *\n * @return {number[]} indices\n */\n getColumnIndices() {\n const isAttackerPerspective = this.mapColBreakdown[0] === MAP_COL_ATTACKER_COMMAND;\n const indices = [...Array(this.mapColBreakdown.length).keys()];\n return isAttackerPerspective ? indices : indices.reverse();\n }\n\n /**\n * Processes a single cell and returns marker HTML or null.\n *\n * @param {string} ambit\n * @param {int} row\n * @param {int} col\n * @param {Object} slotTracker\n * @return {string|null} marker HTML or null\n */\n processCell(ambit, row, col, slotTracker) {\n const colType = this.mapColBreakdown[col];\n\n if (!(colType in slotTracker)) {\n return null;\n }\n\n const hasAvailableSlot = slotTracker[colType] > 0;\n\n if (hasAvailableSlot) {\n slotTracker[colType]--;\n\n // Only planetary tiles show beacons for available slots\n if (colType !== MAP_COL_DEFENDER_PLANETARY) {\n return null;\n }\n }\n\n return this.renderMarker(ambit, row, col, hasAvailableSlot);\n }\n\n /**\n * Renders a single marker div.\n *\n * @param {string} ambit\n * @param {int} row\n * @param {int} col\n * @param {boolean} isBeacon\n * @return {string} marker HTML\n */\n renderMarker(ambit, row, col, isBeacon = false) {\n const pos = this.convertAmbitPosToPixelPos(ambit, row, col);\n const className = isBeacon\n ? this.tileClassNameUtil.getTileBeaconClassName(ambit)\n : this.tileClassNameUtil.getTileBlockedClassName(ambit);\n\n return `
`;\n }\n\n /**\n * Resolve the marker HTML (or null) for a single ambit cell.\n *\n * The marker decision in `processCell` depends on a slot tracker that is\n * consumed left-to-right (or right-to-left) and top-to-bottom across the\n * ambit, so determining the marker for one cell requires replaying that\n * walk from (0, 0) up to and including the target cell. This method\n * encapsulates that replay using `createSlotTracker`, `getColumnIndices`,\n * and `processCell` directly so callers (e.g. the picture-in-picture\n * component) don't duplicate marker logic.\n *\n * @param {string} targetAmbit\n * @param {int} targetRow\n * @param {int} targetCol\n * @return {string|null} marker HTML for the target cell, or null\n */\n getCellMarker(targetAmbit, targetRow, targetCol) {\n const slotTracker = this.createSlotTracker(targetAmbit);\n let cellMarker = null;\n\n for (let r = 0; r < MAP_TILE_ROWS_PER_AMBIT; r++) {\n for (const c of this.getColumnIndices()) {\n const result = this.processCell(targetAmbit, r, c, slotTracker);\n if (r === targetRow && c === targetCol) {\n cellMarker = result;\n }\n }\n }\n\n return cellMarker;\n }\n}\n","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\nimport {\n MAP_COL_ATTACKER_COMMAND, MAP_COL_ATTACKER_FLEET, MAP_COL_DEFENDER_COMMAND, MAP_COL_DEFENDER_FLEET,\n MAP_COL_DEFENDER_PLANETARY, MAP_COL_DIVIDER, MAP_DEFAULT_FLEET_COL_COUNT,\n MAP_TILE_ROWS_PER_AMBIT, MAP_TILE_TYPES, MAP_TRANSITION_TILE_LABELS,\n MAP_DEFAULT_COMMAND_COL_COUNT\n} from \"../../../constants/MapConstants\";\nimport {AMBITS} from \"../../../constants/Ambits\";\nimport {EVENTS} from \"../../../constants/Events\";\nimport {HUDViewModel} from \"../../HUDViewModel\";\nimport {Planet} from \"../../../models/Planet\";\nimport {Player} from \"../../../models/Player\";\nimport {STRUCT_ACTIONS, STRUCT_WEAPON_SYSTEM} from \"../../../constants/StructConstants\";\nimport {ClearMoveTargetsEvent} from \"../../../events/ClearMoveTargetsEvent\";\nimport {ClearDefendTargetsEvent} from \"../../../events/ClearDefendTargetsEvent\";\nimport {ClearAttackTargetsEvent} from \"../../../events/ClearAttackTargetsEvent\";\nimport {PLAYER_TYPES} from \"../../../constants/PlayerTypes\";\nimport {AmbitUtil} from \"../../../util/AmbitUtil\";\n\n\nexport class MapTileSelectionComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {SigningClientManager} signingClientManager\n * @param {StructManager} structManager\n * @param {string[]} mapColBreakdown\n * @param {Planet|null} planet\n * @param {Player|null} defender\n * @param {Player|null} attacker\n * @param {Fleet|null} defenderFleet\n * @param {Fleet|null} attackerFleet\n * @param {string} containerId - The ID of the DOM container element for this tile selection layer\n * @param {string} mapId\n */\n constructor(\n gameState,\n signingClientManager,\n structManager,\n mapColBreakdown,\n planet,\n defender,\n attacker,\n defenderFleet,\n attackerFleet,\n containerId = \"\",\n mapId = \"\"\n ) {\n super(gameState);\n this.ambitUtil = new AmbitUtil();\n this.signingClientManager = signingClientManager;\n this.structManager = structManager;\n this.mapColBreakdown = mapColBreakdown;\n this.dividerIndex = this.mapColBreakdown.lastIndexOf(MAP_COL_DIVIDER);\n this.containerId = containerId;\n this.mapId = mapId;\n\n /** @type {Planet} */\n this.planet = planet;\n\n /** @type {Player} */\n this.defender = defender;\n\n /** @type {Player} */\n this.attacker = attacker;\n\n /** @type {Fleet} */\n this.defenderFleet = defenderFleet;\n\n /** @type {Fleet} */\n this.attackerFleet = attackerFleet;\n }\n\n /**\n * @param {number} col\n * @return {string}\n */\n getTileSide(col) {\n if (col < this.dividerIndex) {\n return 'left';\n } else if (col === this.dividerIndex) {\n return '';\n } else {\n return 'right';\n }\n }\n\n /**\n * @param {string} tileType the tile type. See MAP_TILE_TYPES constant array.\n * @param {string} side the side of the map the tile is on\n * @param {string} playerId the ID of the player that owns the tile or empty if no one does such as a transition tile.\n * @param {string} ambit the ambit the tile is in or empty if it's a transition tile.\n * @param {string|number} slot the planetary or fleet slot number. Empty if it's not a command, planetary, fleet or command tile.\n * @param {string} structId the ID of the struct occupying the tile or empty if the tile is not occupied.\n * @param {string} tileLabel a custom tile label that is displayed in the action bar. Used for transition tiles.\n * @return {string}\n */\n renderSelectionTileHTML(\n tileType,\n side = \"\",\n playerId = \"\",\n ambit = \"\",\n slot = \"\",\n structId = \"\",\n tileLabel = \"\"\n ) {\n return `\n \n \n `;\n }\n\n /**\n * @param {string} mapColType\n * @param {string} tileLabel the label for the fog of war tile. Should be the current ambit for\n * ambit rows or the transition tile label for transition rows.\n * @return {string}\n */\n renderFogOfWarTileHTML(mapColType, tileLabel = '') {\n if (this.attacker) {\n return '';\n }\n\n const mapColTypeLastIndex = this.mapColBreakdown.lastIndexOf(mapColType);\n const dividerIndex = this.mapColBreakdown.lastIndexOf(MAP_COL_DIVIDER);\n const attackerSide = (this.mapColBreakdown[0] === MAP_COL_ATTACKER_COMMAND) ? 'LEFT' : 'RIGHT';\n\n if (dividerIndex === -1 || mapColTypeLastIndex === -1) {\n throw new Error('Divider or map col type not found');\n }\n\n if (\n mapColType === MAP_COL_DIVIDER\n || (attackerSide === 'RIGHT' && dividerIndex < mapColTypeLastIndex)\n || (attackerSide === 'LEFT' && mapColTypeLastIndex < dividerIndex)\n ) {\n return this.renderSelectionTileHTML(\n MAP_TILE_TYPES.FOG_OF_WAR,\n attackerSide.toLowerCase(),\n '',\n '',\n '',\n '',\n tileLabel\n );\n }\n\n return '';\n }\n\n /**\n * Determine what the transition tile's label should be based on the current ambit and previous ambit.\n *\n * @param {string} topAmbit\n * @param {string} bottomAmbit\n * @param {boolean} isFinalTransition\n * @return {string}\n */\n getTransitionTileLabel(\n topAmbit,\n bottomAmbit,\n isFinalTransition = false\n ) {\n let label;\n\n if (isFinalTransition) {\n label = bottomAmbit.toUpperCase();\n } else if (topAmbit === AMBITS.SPACE && bottomAmbit === AMBITS.AIR) {\n label = MAP_TRANSITION_TILE_LABELS.ATMOSPHERE;\n } else if (\n (topAmbit === AMBITS.SPACE || topAmbit === AMBITS.AIR)\n && (bottomAmbit === AMBITS.LAND || bottomAmbit === AMBITS.WATER)\n ) {\n label = MAP_TRANSITION_TILE_LABELS.HORIZON;\n } else if (topAmbit === AMBITS.LAND && bottomAmbit === AMBITS.WATER) {\n label = MAP_TRANSITION_TILE_LABELS.SHORE;\n } else {\n label = bottomAmbit.toUpperCase();\n }\n\n return label;\n }\n\n /**\n * @param {string} topAmbit the ambit that is on top in the transition\n * @param {string} bottomAmbit the ambit that is on the bottom in the transition\n * @param {boolean} isInFinalTransitionPosition is this for the final transition of the map\n * @param {number|null} totalAmbits the total number of ambits in the ambit\n * @param {number|null} bottomAmbitIndex the ambit index of the bottom ambit\n * @return {string} the row of selection tiles for the whole transition row\n */\n renderTransitionRowHTML(\n topAmbit,\n bottomAmbit,\n isInFinalTransitionPosition = false,\n totalAmbits = null,\n bottomAmbitIndex= null\n ) {\n const isFinalTransition = isInFinalTransitionPosition && (bottomAmbitIndex === (totalAmbits - 1));\n\n if (isInFinalTransitionPosition && !isFinalTransition) {\n return '';\n }\n\n let tiles = '';\n const tileLabel = this.getTransitionTileLabel(topAmbit, bottomAmbit, isFinalTransition);\n\n for (let c = 0; c < this.mapColBreakdown.length; c++) {\n tiles += this.renderFogOfWarTileHTML(this.mapColBreakdown[c], tileLabel)\n || this.renderSelectionTileHTML(\n MAP_TILE_TYPES.TRANSITION,\n this.getTileSide(c),\n '',\n '',\n '',\n '',\n tileLabel\n );\n }\n\n return `\n
\n ${tiles}\n
\n `;\n }\n\n /**\n * Creates a command slot tracker object for an ambit.\n * Each command column type gets 1 usable slot per ambit.\n *\n * @return {Object} commandSlotTracker\n */\n createCommandSlotTracker() {\n return {\n [MAP_COL_DEFENDER_COMMAND]: MAP_DEFAULT_COMMAND_COL_COUNT,\n [MAP_COL_ATTACKER_COMMAND]: MAP_DEFAULT_COMMAND_COL_COUNT,\n };\n }\n\n /**\n * @param {string} mapColType\n * @param {string} side\n * @param {string} ambit\n * @param {Object} commandSlotTracker\n * @return {string}\n */\n renderCommandTileHTML(\n mapColType,\n side,\n ambit,\n commandSlotTracker\n ) {\n let playerId = '';\n let fleetId = '';\n let fleet = null;\n\n if (mapColType === MAP_COL_DEFENDER_COMMAND) {\n playerId = this.defender.id;\n fleetId = this.defender.fleet_id;\n fleet = this.defenderFleet;\n } else if (mapColType === MAP_COL_ATTACKER_COMMAND) {\n playerId = this.attacker.id;\n fleetId = this.attacker.fleet_id;\n fleet = this.attackerFleet;\n } else {\n return '';\n }\n\n // Check if there's an available command slot for this column type\n const hasAvailableSlot = commandSlotTracker[mapColType] > 0;\n\n if (hasAvailableSlot) {\n commandSlotTracker[mapColType]--;\n }\n\n const tileType = hasAvailableSlot\n ? MAP_TILE_TYPES.COMMAND\n : MAP_TILE_TYPES.COMMAND_BLOCKED;\n\n // Command structs are always slot 0\n const structId = hasAvailableSlot \n ? this.structManager.getStructIdByPositionAndPlayerId(\n playerId,\n 'fleet',\n fleetId,\n this.planet.id,\n ambit,\n 0,\n true,\n fleet\n )\n : '';\n\n return this.renderSelectionTileHTML(\n tileType,\n side,\n playerId,\n ambit,\n hasAvailableSlot ? 0 : '',\n structId\n );\n }\n\n /**\n * @param {string} mapColType\n * @param {string} side\n * @param {string} ambit\n * @param {string} slot\n * @return {string}\n */\n renderPlanetaryTileHTML(\n mapColType,\n side,\n ambit,\n slot\n ) {\n if (mapColType !== MAP_COL_DEFENDER_PLANETARY) {\n return '';\n }\n\n const tileType = (slot === '')\n ? MAP_TILE_TYPES.PLANETARY_BLOCKED\n : MAP_TILE_TYPES.PLANETARY_SLOT;\n\n const structId = slot !== '' \n ? this.structManager.getStructIdByPositionAndPlayerId(\n this.defender.id,\n 'planet',\n this.planet.id,\n this.planet.id,\n ambit,\n slot,\n false,\n this.defenderFleet\n )\n : '';\n\n return this.renderSelectionTileHTML(\n tileType,\n side,\n this.defender.id,\n ambit,\n slot,\n structId\n );\n }\n\n /**\n * @param {string} mapColType\n * @param {string} side\n * @param {string} ambit\n * @param {string} slot\n * @return {string}\n */\n renderDefenderFleetTileHTML(\n mapColType,\n side,\n ambit,\n slot\n ) {\n if (mapColType !== MAP_COL_DEFENDER_FLEET) {\n return '';\n }\n\n const structId = slot !== ''\n ? this.structManager.getStructIdByPositionAndPlayerId(\n this.defender.id,\n 'fleet',\n this.defender.fleet_id,\n this.planet.id,\n ambit,\n slot,\n false,\n this.defenderFleet\n )\n : '';\n\n return this.renderSelectionTileHTML(\n MAP_TILE_TYPES.FLEET,\n side,\n this.defender.id,\n ambit,\n slot,\n structId\n );\n }\n\n /**\n * @param {string} mapColType\n * @param {string} side\n * @param {string} ambit\n * @param {string} slot\n * @return {string}\n */\n renderAttackerFleetTileHTML(\n mapColType,\n side,\n ambit,\n slot\n ) {\n if (mapColType !== MAP_COL_ATTACKER_FLEET) {\n return '';\n }\n\n const structId = slot !== ''\n ? this.structManager.getStructIdByPositionAndPlayerId(\n this.attacker.id,\n 'fleet',\n this.attacker.fleet_id,\n this.planet.id,\n ambit,\n slot,\n false,\n this.attackerFleet\n )\n : '';\n\n return this.renderSelectionTileHTML(\n MAP_TILE_TYPES.FLEET,\n side,\n this.attacker.id,\n ambit,\n slot,\n structId\n );\n }\n\n /**\n * @param {string} mapColType\n * @param {string} ambit\n * @return {string}\n */\n renderDividerTileHTML(\n mapColType,\n ambit\n ) {\n if (mapColType !== MAP_COL_DIVIDER) {\n return '';\n }\n\n return this.renderSelectionTileHTML(\n MAP_TILE_TYPES.DIVIDER,\n '',\n '',\n ambit\n );\n }\n\n /**\n * @param {string} targetColType\n * @return {{first: null|number, last: null|number}}\n */\n findFirstAndLastOccurrencesOfColType(targetColType) {\n let firstOccurrence = null;\n let lastOccurrence = null;\n\n for(let i = 0; i < this.mapColBreakdown.length; i++) {\n\n if (this.mapColBreakdown[i] !== targetColType) {\n continue;\n }\n\n if (firstOccurrence === null) {\n firstOccurrence = i;\n }\n\n lastOccurrence = i;\n }\n\n return {\n first: firstOccurrence,\n last: lastOccurrence\n }\n\n }\n\n /**\n * @param {string} targetColType\n * @param {number} currentMapRowIndex\n * @param {number} currentMapColIndex\n * @param {number} totalSlots\n * @return {string}\n */\n calcSlotNumber(\n targetColType,\n currentMapRowIndex,\n currentMapColIndex,\n totalSlots\n ) {\n let targetColTypeOccurrences = this.findFirstAndLastOccurrencesOfColType(targetColType);\n\n const tilesOfTargetTypePerRow = (targetColTypeOccurrences.last - targetColTypeOccurrences.first) + 1;\n\n // Slot indexing from right to left\n const slotsToReserveThisRow = (targetColTypeOccurrences.last - currentMapColIndex);\n let slotNumber = slotsToReserveThisRow + currentMapRowIndex * tilesOfTargetTypePerRow;\n\n // Slot indexing from left to right\n if (this.mapColBreakdown[0] === MAP_COL_ATTACKER_COMMAND) {\n const slotsAssignedThisRow = currentMapColIndex - targetColTypeOccurrences.first;\n slotNumber = slotsAssignedThisRow + currentMapRowIndex * tilesOfTargetTypePerRow;\n }\n\n return (slotNumber >= totalSlots) ? '' : `${slotNumber}`;\n }\n\n /**\n * Add the relevant focus cursor to a selected tile.\n * Use this when you select a tile without an action engaged.\n *\n * @param {HTMLElement|object} tile\n */\n addFocusToSourceTile(tile) {\n document.querySelectorAll('a.map-tile-selection-tile.focus-source').forEach(focusedTile => {\n focusedTile.classList.remove('focus-source');\n focusedTile.classList.remove('focus-friendly');\n focusedTile.classList.remove('focus-neutral');\n focusedTile.classList.remove('focus-enemy');\n });\n\n tile.classList.add('focus-source');\n\n if (tile.dataset.side === 'left' && tile.dataset.playerId) {\n tile.classList.add('focus-friendly');\n } else if (tile.dataset.side === 'right' && tile.dataset.playerId) {\n tile.classList.add('focus-enemy');\n } else {\n tile.classList.add('focus-neutral');\n }\n }\n\n /**\n * Build CSS selector for finding a tile by position.\n *\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n * @return {string}\n */\n buildTileSelector(tileType, ambit, slot, playerId) {\n return `.map-tile-selection-tile[data-tile-type=\"${tileType}\"][data-ambit=\"${ambit}\"][data-slot=\"${slot}\"][data-player-id=\"${playerId}\"]`;\n }\n\n /**\n * Update a tile's struct ID attribute.\n *\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n * @param {string} structId\n */\n updateTileStructId(tileType, ambit, slot, playerId, structId) {\n const selector = this.buildTileSelector(tileType, ambit, slot, playerId);\n const tileElement = document.getElementById(this.containerId).querySelector(selector);\n if (tileElement) {\n tileElement.setAttribute('data-struct-id', structId);\n }\n }\n\n /**\n * Show move target indicators on valid empty command tiles.\n */\n showMoveTargets() {\n const container = document.getElementById(this.containerId);\n const playerId = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id;\n const structBeingMoved = this.gameState.actionBarLock.getActionSourceStruct();\n\n // Get all command tiles on the player's side (defender) that are empty\n const commandTiles = container.querySelectorAll(\n `.map-tile-selection-tile[data-tile-type=\"${MAP_TILE_TYPES.COMMAND}\"][data-player-id=\"${playerId}\"]`\n );\n\n commandTiles.forEach(tile => {\n const structId = tile.getAttribute('data-struct-id');\n const tileAmbit = tile.getAttribute('data-ambit');\n\n // Only show indicator on empty tiles in the same ambit (command structs move within ambit)\n // or empty tiles in any ambit if the struct can move across ambits\n const structType = this.gameState.structTypes.getStructTypeById(structBeingMoved.type);\n const possibleAmbits = structType.possible_ambit_array || [structBeingMoved.operating_ambit.toLowerCase()];\n\n if (!structId && possibleAmbits.includes(tileAmbit.toLowerCase())) {\n tile.classList.add('focus-move');\n }\n });\n }\n\n /**\n * Clear all move target indicators.\n */\n clearMoveTargets() {\n const container = document.getElementById(this.containerId);\n container.querySelectorAll('.map-tile-selection-tile.focus-move').forEach(tile => {\n tile.classList.remove('focus-move');\n });\n }\n\n /**\n * Handle a click on a defend target tile.\n *\n * @param {HTMLElement} tile - The tile that was clicked\n */\n async handleDefendTargetClick(tile) {\n const protectedStructId = tile.getAttribute('data-struct-id');\n if (!protectedStructId) {\n return;\n }\n\n // Lock the action bar until we hear the grass notification from the struct defend action\n this.gameState.actionBarLock.lock();\n\n // Clear defend target indicators\n window.dispatchEvent(new ClearDefendTargetsEvent(this.mapId));\n\n const defendingStruct = this.gameState.actionBarLock.getActionSourceStruct();\n\n // Send defend set message to chain\n await this.signingClientManager.queueMsgStructDefenseSet(\n defendingStruct.id,\n protectedStructId\n );\n }\n\n /**\n * Handle a click on a valid attack target tile.\n *\n * @param {HTMLElement} tile - The tile that was clicked\n * @param {string} currentAction - The current action (ATTACK_PRIMARY_WEAPON or ATTACK_SECONDARY_WEAPON)\n */\n async handleAttackTargetClick(tile, currentAction) {\n const targetStructId = tile.getAttribute('data-struct-id');\n if (!targetStructId) {\n return;\n }\n\n // Lock the action bar until we hear the grass notification from the struct attack action\n this.gameState.actionBarLock.lock();\n\n // Clear attack target indicators\n window.dispatchEvent(new ClearAttackTargetsEvent(this.mapId));\n\n const attackingStruct = this.gameState.actionBarLock.getActionSourceStruct();\n const weaponSystem = (currentAction === STRUCT_ACTIONS.ATTACK_PRIMARY_WEAPON)\n ? STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n : STRUCT_WEAPON_SYSTEM.SECONDARY_WEAPON;\n\n // Send attack message to chain\n await this.signingClientManager.queueMsgStructAttack(\n attackingStruct.id,\n [targetStructId],\n weaponSystem\n );\n }\n\n /**\n * Handle a click on a move target tile.\n *\n * @param {HTMLElement} tile - The tile that was clicked\n */\n async handleMoveTargetClick(tile) {\n // The lock the action bar until we hear the grass notification from the struct move action\n this.gameState.actionBarLock.lock();\n\n const ambit = tile.getAttribute('data-ambit');\n const slot = parseInt(tile.getAttribute('data-slot'), 10);\n const structBeingMoved = this.gameState.actionBarLock.getActionSourceStruct();\n\n // Send move message to chain\n await this.signingClientManager.queueMsgStructMove(\n structBeingMoved.id,\n structBeingMoved.location_type,\n ambit,\n slot\n );\n\n // Update focus to the new tile\n this.addFocusToSourceTile(tile);\n\n // Dispatch event to clear move targets on all maps\n window.dispatchEvent(new ClearMoveTargetsEvent(this.mapId));\n }\n\n initPageCode() {\n const container = document.getElementById(this.containerId);\n\n container.querySelectorAll('a.map-tile-selection-tile').forEach(tile => {\n tile.addEventListener('click', async (e) => {\n const currentAction = this.gameState.actionBarLock.getCurrentAction();\n\n // Check if we're in move mode and clicked on a valid move target\n if (currentAction === STRUCT_ACTIONS.MOVE && e.currentTarget.classList.contains('focus-move')) {\n await this.handleMoveTargetClick(e.currentTarget);\n return;\n }\n\n // If we're in move mode but clicked elsewhere, cancel the move\n if (currentAction === STRUCT_ACTIONS.MOVE) {\n this.clearMoveTargets();\n this.gameState.actionBarLock.clear(false);\n window.dispatchEvent(new ClearMoveTargetsEvent(this.mapId));\n }\n\n // Check if we're in attack mode (primary or secondary weapon)\n if (\n currentAction === STRUCT_ACTIONS.ATTACK_PRIMARY_WEAPON\n || currentAction === STRUCT_ACTIONS.ATTACK_SECONDARY_WEAPON\n ) {\n const targetStructId = e.currentTarget.getAttribute('data-struct-id');\n const targetPlayerId = e.currentTarget.getAttribute('data-player-id');\n const attackingStruct = this.gameState.actionBarLock.getActionSourceStruct();\n\n // Valid target: enemy struct whose ambit is within the weapon's ambit array\n const isEnemy = targetPlayerId\n && targetPlayerId !== this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id;\n\n if (targetStructId && isEnemy) {\n const targetStruct = this.structManager.getStructById(targetStructId);\n const attackerStructType = this.gameState.structTypes.getStructTypeById(attackingStruct.type);\n const weaponAmbitsArray = (currentAction === STRUCT_ACTIONS.ATTACK_PRIMARY_WEAPON)\n ? attackerStructType.primary_weapon_ambits_array\n : attackerStructType.secondary_weapon_ambits_array;\n\n if (\n targetStruct\n && this.ambitUtil.contains(weaponAmbitsArray, targetStruct.operating_ambit, attackingStruct.operating_ambit)\n ) {\n await this.handleAttackTargetClick(e.currentTarget, currentAction);\n return;\n }\n }\n\n // Invalid target or empty tile - cancel attack mode\n window.dispatchEvent(new ClearAttackTargetsEvent(this.mapId));\n this.gameState.actionBarLock.clear(false);\n }\n\n // Check if we're in defend mode\n if (currentAction === STRUCT_ACTIONS.DEFENSE_SET) {\n const structId = e.currentTarget.getAttribute('data-struct-id');\n const playerId = e.currentTarget.getAttribute('data-player-id');\n const defendingStruct = this.gameState.actionBarLock.getActionSourceStruct();\n\n // Check if clicked on a valid defend target (friendly struct, not the defending struct itself)\n const isValidTarget = structId \n && structId !== defendingStruct.id\n && playerId === this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id;\n\n if (isValidTarget) {\n await this.handleDefendTargetClick(e.currentTarget);\n return;\n }\n\n // Clicked elsewhere (invalid or empty tile), cancel the defense\n window.dispatchEvent(new ClearDefendTargetsEvent(this.mapId));\n this.gameState.actionBarLock.clear(false);\n }\n\n this.addFocusToSourceTile(e.currentTarget);\n HUDViewModel.showActionBar(e.currentTarget);\n console.log(e.currentTarget);\n });\n });\n\n // Listen for UPDATE_TILE_STRUCT_ID events\n window.addEventListener(EVENTS.UPDATE_TILE_STRUCT_ID, (event) => {\n if (event.mapId === this.mapId) {\n this.updateTileStructId(\n event.tileType,\n event.ambit,\n event.slot,\n event.playerId,\n event.structId\n );\n }\n });\n\n // Listen for SHOW_MOVE_TARGETS events\n window.addEventListener(EVENTS.SHOW_MOVE_TARGETS, (event) => {\n if (event.mapId === this.mapId) {\n this.showMoveTargets();\n }\n });\n\n // Listen for CLEAR_MOVE_TARGETS events\n window.addEventListener(EVENTS.CLEAR_MOVE_TARGETS, (event) => {\n if (event.mapId === this.mapId) {\n this.clearMoveTargets();\n }\n });\n }\n\n /**\n * @return {string}\n */\n renderHTML() {\n let html = '';\n let previousAmbit = '';\n\n const planetAmbits = this.planet.getAmbits();\n\n for (let a = 0; a < planetAmbits.length; a++) {\n\n const currentAmbit = planetAmbits[a];\n const numPlanetarySlots = this.planet.getPlanetarySlotsByAmbit(currentAmbit, this.gameState.structTypes);\n const totalFleetSlotsPerAmbitPerPlayer = MAP_TILE_ROWS_PER_AMBIT * MAP_DEFAULT_FLEET_COL_COUNT;\n const commandSlotTracker = this.createCommandSlotTracker();\n\n html += this.renderTransitionRowHTML(previousAmbit, currentAmbit);\n\n for (let r = 0; r < MAP_TILE_ROWS_PER_AMBIT; r++) {\n\n html += `
`;\n\n for (let c = 0; c < this.mapColBreakdown.length; c++) {\n\n const mapColType = this.mapColBreakdown[c];\n let side = this.getTileSide(c);\n\n html += this.renderFogOfWarTileHTML(mapColType, currentAmbit.toUpperCase())\n || this.renderCommandTileHTML(mapColType, side, currentAmbit, commandSlotTracker)\n || this.renderPlanetaryTileHTML(\n mapColType,\n side,\n currentAmbit,\n this.calcSlotNumber(MAP_COL_DEFENDER_PLANETARY, r, c, numPlanetarySlots)\n )\n || this.renderDefenderFleetTileHTML(\n mapColType,\n side,\n currentAmbit,\n this.calcSlotNumber(MAP_COL_DEFENDER_FLEET, r, c, totalFleetSlotsPerAmbitPerPlayer)\n )\n || this.renderAttackerFleetTileHTML(\n mapColType,\n side,\n currentAmbit,\n this.calcSlotNumber(MAP_COL_ATTACKER_FLEET, r, c, totalFleetSlotsPerAmbitPerPlayer)\n )\n || this.renderDividerTileHTML(mapColType, currentAmbit)\n ;\n }\n\n html += `
`;\n }\n\n html += this.renderTransitionRowHTML(\n previousAmbit,\n currentAmbit,\n true,\n planetAmbits.length,\n a\n );\n\n previousAmbit = currentAmbit;\n }\n\n return html;\n }\n}","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\n\n/**\n * Transition space between ambits.\n */\nexport class MapTransitionComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {AbstractMapTransitionLayerComponent[]} layers\n */\n constructor(gameState, layers) {\n super(gameState);\n this.layers = layers;\n }\n\n /**\n * Renders the transition space using a composition of transition layers.\n *\n * @return {string} html\n */\n renderHTML() {\n let html = `
`;\n\n for(let i = 0; i < this.layers.length; i++) {\n html += this.layers[i].renderHTML(i);\n }\n\n html += `
`;\n return html;\n }\n}","import {AbstractMapTransitionLayerComponent} from \"./AbstractMapTransitionLayerComponent\";\n\n/**\n * For transition layers that use a single non-repeating image.\n */\nexport class MapTransitionLayerOrnamentComponent extends AbstractMapTransitionLayerComponent {\n\n /**\n * @param {string} ornamentClassName\n */\n constructor(ornamentClassName) {\n super();\n this.ornamentClassName = ornamentClassName;\n }\n\n /**\n * @param {int} layerOrderNumber\n *\n * @return {string}\n */\n renderHTML(layerOrderNumber) {\n return `\n
\n
\n
\n `;\n }\n}\n","import {AbstractMapTransitionLayerComponent} from \"./AbstractMapTransitionLayerComponent\";\n\n/**\n * For transition layers that use a 3 image tile set with a horizontally repeating middle.\n */\nexport class MapTransitionLayerTileSetComponent extends AbstractMapTransitionLayerComponent {\n\n /**\n * @param {int} mapColCount\n * @param {string} leftTileClassName\n * @param {string} middleTileClassName\n * @param {string} rightTileClassName\n */\n constructor(\n mapColCount,\n leftTileClassName,\n middleTileClassName,\n rightTileClassName\n ) {\n super();\n this.mapColCount = mapColCount;\n this.leftTileClassName = leftTileClassName;\n this.middleTileClassName = middleTileClassName;\n this.rightTileClassName = rightTileClassName;\n }\n\n /**\n * @param {int} layerOrderNumber\n *\n * @return {string}\n */\n renderHTML(layerOrderNumber) {\n let html = `
`;\n\n for(let i = 0; i < this.mapColCount; i++) {\n if (i === 0) {\n html += `
`;\n } else if (0 < i && i < this.mapColCount - 1) {\n html += `
`;\n } else {\n html += `
`;\n }\n }\n\n html += `
`;\n\n return html;\n }\n}\n","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\nimport {MenuPage} from \"../../../framework/MenuPage\";\nimport {StructStillBuilder} from \"../../../builders/StructStillBuilder\";\nimport {MAP_TILE_TYPES} from \"../../../constants/MapConstants\";\nimport {StructType} from \"../../../models/StructType\";\nimport {RenderDeploymentIndicatorEvent} from \"../../../events/RenderDeploymentIndicatorEvent\";\nimport {PendingBuildAddedEvent} from \"../../../events/PendingBuildAddedEvent\";\nimport {SUICheatsheet} from \"../../../sui/SUICheatsheet\";\nimport {PLAYER_TYPES} from \"../../../constants/PlayerTypes\";\n\nexport class DeployOffcanvas extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {SigningClientManager} signingClientManager\n * @param {StructManager} structManager\n * @param {string} tileType see MAP_TILE_TYPES\n * @param {string} ambit\n * @param {number|null} slot\n */\n constructor(\n gameState,\n signingClientManager,\n structManager,\n tileType,\n ambit,\n slot = null\n ) {\n super(gameState);\n this.tileType = tileType;\n this.ambit = ambit;\n this.signingClientManager = signingClientManager;\n this.structManager = structManager;\n this.slot = slot;\n this.structStillBuilder = new StructStillBuilder(this.gameState);\n\n /** @type {StructType[]}*/\n this.deployableStructTypes = this.gameState.structTypes.fetchAllByTileTypeAndAmbit(this.tileType, this.ambit);\n\n this.idPrefix = 'deploy-';\n this.className = 'deploy-struct-type';\n this.disabledClassName = 'deploy-struct-type-disabled';\n }\n\n /**\n * @param {StructType} structType\n * @return {string}\n */\n createLinkId(structType) {\n const name = structType.type.toLowerCase().replace(/\\s/g, '-');\n return `${this.idPrefix}${name}`;\n }\n\n /**\n * @param {StructType} structType\n */\n getTileTypeByStructType(structType) {\n if (structType.category === 'planet') {\n return MAP_TILE_TYPES.PLANETARY_SLOT;\n } else if (structType.category === 'fleet') {\n if (structType.is_command) {\n return MAP_TILE_TYPES.COMMAND\n } else {\n return MAP_TILE_TYPES.FLEET\n }\n }\n\n throw new Error(`Unknown struct type category: ${structType.category}`);\n }\n\n initPageCode() {\n this.deployableStructTypes.forEach(structType => {\n if (this.structManager.getDeploymentBlocker(structType)) {\n return;\n }\n\n const element = document.getElementById(this.createLinkId(structType));\n let mouseDownTime = null;\n\n element.addEventListener('mousedown', () => {\n mouseDownTime = performance.now();\n });\n\n element.addEventListener('mouseup', () => {\n if (mouseDownTime === null) {\n return;\n }\n\n const elapsed = performance.now() - mouseDownTime;\n mouseDownTime = null;\n\n if (elapsed > SUICheatsheet.OPEN_DELAY - 50) {\n return;\n }\n\n console.log(`Deploy: ${structType.type}`);\n\n const tileType = this.getTileTypeByStructType(structType);\n\n this.signingClientManager.queueMsgStructBuildInitiate(\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id,\n structType.id,\n this.ambit,\n this.slot\n ).then();\n\n MenuPage.sui.offcanvas.close();\n\n // Add pending build to gameState\n this.gameState.addPendingBuild(\n tileType,\n this.ambit,\n this.slot,\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id,\n structType\n );\n\n // Dispatch event to render deployment indicator on struct layer\n window.dispatchEvent(new RenderDeploymentIndicatorEvent(\n this.gameState.alphaBaseMap.mapId,\n tileType,\n this.ambit,\n this.slot,\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id\n ));\n\n // Dispatch event to notify that a pending build was added\n window.dispatchEvent(new PendingBuildAddedEvent(\n this.gameState.alphaBaseMap.mapId,\n tileType,\n this.ambit,\n this.slot,\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id,\n structType\n ));\n });\n });\n }\n\n /**\n * @return {string}\n */\n renderHTML() {\n return `\n
\n ${this.deployableStructTypes.map(structType => {\n const structStill = this.structStillBuilder.build(structType);\n const deploymentBlocker = this.structManager.getDeploymentBlocker(structType);\n const disabledClassName = deploymentBlocker ? this.disabledClassName : '';\n return `\n \n ${structStill.renderHTML()}\n \n `;\n }).join('')}\n
\n `;\n }\n\n render() {\n MenuPage.sui.offcanvas.setHeader('Select Struct');\n MenuPage.sui.offcanvas.setContent(this.renderHTML());\n MenuPage.sui.offcanvas.open();\n this.initPageCode();\n }\n}\n","import {NotificationDialogueSequence} from \"../../../framework/NotificationDialogueSequence\";\nimport {NotificationDialogueSequenceStep} from \"../../../framework/NotificationDialogueSequenceStep\";\nimport {VictoryBannerViewModel} from \"../../banners/VictoryBannerViewModel\";\n\nexport class AttackerVictoryDialogueSequence extends NotificationDialogueSequence {\n constructor(alphaOreRecovered) {\n super();\n\n this.bannerViewModel = new VictoryBannerViewModel();\n\n this.alphaOreRecovered = alphaOreRecovered;\n\n this.dialogueSequence = [\n new NotificationDialogueSequenceStep(\n '',\n 'Victory! The enemy\\'s planetary shield has been defeated.',\n () => this.bannerViewModel.close()\n ),\n new NotificationDialogueSequenceStep(\n '',\n `You recovered ${this.alphaOreRecovered} Alpha Ore from the enemy base.`,\n ),\n new NotificationDialogueSequenceStep(\n '',\n 'Your fleet will now return to base.',\n ),\n ];\n\n this.initPageCode = () => {\n this.bannerViewModel.render();\n }\n }\n}","import {NotificationDialogueSequence} from \"../../../framework/NotificationDialogueSequence\";\nimport {NotificationDialogueSequenceStep} from \"../../../framework/NotificationDialogueSequenceStep\";\nimport {DefeatBannerViewModel} from \"../../banners/DefeatBannerViewModel\";\n\nexport class DefeatedByAttackerDialogueSequence extends NotificationDialogueSequence {\n constructor(alphaOreLost) {\n super();\n\n this.bannerViewModel = new DefeatBannerViewModel();\n\n this.alphaOreLost = alphaOreLost;\n\n this.dialogueSequence = [\n new NotificationDialogueSequenceStep(\n '',\n `Defeat! Your Planetary Shield was depleted, allowing the enemy to steal ${this.alphaOreLost} Alpha Ore.`,\n () => this.bannerViewModel.close()\n )\n ];\n\n this.initPageCode = () => {\n this.bannerViewModel.render();\n }\n }\n}","import {NotificationDialogueSequence} from \"../../../framework/NotificationDialogueSequence\";\nimport {NotificationDialogueSequenceStep} from \"../../../framework/NotificationDialogueSequenceStep\";\nimport {DefeatBannerViewModel} from \"../../banners/DefeatBannerViewModel\";\n\nexport class DefeatedByDefenderDialogueSequence extends NotificationDialogueSequence {\n constructor() {\n super();\n\n this.bannerViewModel = new DefeatBannerViewModel();\n\n this.dialogueSequence = [\n new NotificationDialogueSequenceStep(\n '',\n `Defeat! Your command ship was destroyed.`,\n () => this.bannerViewModel.close()\n ),\n new NotificationDialogueSequenceStep(\n '',\n 'You will now be returned to your base.',\n ),\n ];\n\n this.initPageCode = () => {\n this.bannerViewModel.render();\n }\n }\n}","import {NotificationDialogueSequence} from \"../../../framework/NotificationDialogueSequence\";\nimport {NotificationDialogueSequenceStep} from \"../../../framework/NotificationDialogueSequenceStep\";\nimport {VictoryBannerViewModel} from \"../../banners/VictoryBannerViewModel\";\n\nexport class DefenderVictoryDialogueSequence extends NotificationDialogueSequence {\n constructor() {\n super();\n\n this.bannerViewModel = new VictoryBannerViewModel();\n\n this.dialogueSequence = [\n new NotificationDialogueSequenceStep(\n '',\n 'Victory! You successfully repelled the enemy\\'s attack.',\n () => this.bannerViewModel.close()\n )\n ];\n\n this.initPageCode = () => {\n this.bannerViewModel.render();\n }\n }\n}","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {RaidStatusUtil} from \"../../util/RaidStatusUtil\";\nimport {PlanetCardBuilder} from \"../../builders/PlanetCardBuilder\";\nimport {EVENTS} from \"../../constants/Events\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class FleetIndexViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {FleetManager} fleetManager\n * @param {GrassManager} grassManager\n * @param {PlanetManager} planetManager\n * @param {MapManager} mapManager\n * @param {RaidManager} raidManager\n * @param {StructManager} structManager\n * @param {string|null} planetCardType\n * @param {string|null} raidCardType\n */\n constructor(\n gameState,\n guildAPI,\n fleetManager,\n grassManager,\n planetManager,\n mapManager,\n raidManager,\n structManager,\n planetCardType = null,\n raidCardType= null\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.fleetManager = fleetManager;\n this.grassManager = grassManager;\n this.planetManager = planetManager;\n this.mapManager = mapManager;\n this.structManager = structManager;\n this.planetCardType = planetCardType;\n this.raidCardType = raidCardType;\n\n this.raidStatusUtil = new RaidStatusUtil();\n this.raidCardContainerId = 'raid-card-container';\n\n this.planetCardBuilder = new PlanetCardBuilder(\n gameState,\n guildAPI,\n grassManager,\n fleetManager,\n planetManager,\n mapManager,\n raidManager,\n structManager\n );\n this.alphaBaseCard = this.planetCardBuilder.build(false, this.planetCardType);\n this.raidCard = this.planetCardBuilder.build(true, this.raidCardType);\n }\n\n initPageCode() {\n this.alphaBaseCard.initPageCode();\n this.raidCard.initPageCode();\n\n window.addEventListener(EVENTS.PLANET_RAID_STATUS_CHANGED, (event) => {\n if (event.playerType === PLAYER_TYPES.PLAYER || event.playerType === PLAYER_TYPES.RAID_ENEMY) {\n MenuPage.router.goto('Fleet', 'index');\n }\n })\n }\n\n renderRaidLogBtnHTML() {\n if (\n this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo === null\n || !this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo.isRaidActive()\n ) {\n return '';\n }\n\n return `\n \n `;\n }\n\n render() {\n\n MenuPage.enablePageTemplate(MenuPage.navItemFleetId);\n\n MenuPage.setPageTemplateHeaderBtn('Fleet Status');\n\n MenuPage.setPageTemplateContent(`\n
\n \n
\n \n
\n \n ${this.alphaBaseCard.renderHTML()}\n \n \n \n
\n \n
\n \n ${this.raidCard.renderHTML()}\n \n ${this.renderRaidLogBtnHTML()}\n \n
\n \n
\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\nimport {RAID_STATUS} from \"../../constants/RaidStatus\";\nimport {RaidStatusListener} from \"../../grass_listeners/RaidStatusListener\";\nimport {MAP_CONTAINER_IDS} from \"../../constants/MapConstants\";\nimport {PlanetRaidFactory} from \"../../factories/PlanetRaidFactory\";\nimport {GenericResourceComponent} from \"../components/GenericResourceComponent\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class PreviewViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {FleetManager} fleetManager\n * @param {GrassManager} grassManager\n * @param {RaidManager} raidManager\n * @param {MapManager} mapManager\n * @param {string} planet_id\n * @param {number} planet_undiscovered_ore\n * @param {string} defender_id\n * @param {number} defender_ore\n * @param {string|null} attacker_id\n */\n constructor(\n gameState,\n guildAPI,\n fleetManager,\n grassManager,\n raidManager,\n mapManager,\n planet_id,\n planet_undiscovered_ore,\n defender_id,\n defender_ore,\n attacker_id = null\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.fleetManager = fleetManager;\n this.grassManager = grassManager;\n this.raidManager = raidManager;\n this.mapManager = mapManager;\n this.planet_id = planet_id;\n this.planet_undiscovered_ore = planet_undiscovered_ore;\n this.defender_id = defender_id;\n this.defender_ore = defender_ore;\n this.attacker_id = attacker_id;\n this.numberFormatter = new NumberFormatter();\n this.planetRaidFactory = new PlanetRaidFactory();\n this.launchFleetBtnId = 'launch-fleet';\n this.undiscoveredOreId = 'preview-planet-undiscovered-ore';\n this.alphaOreId = 'preview-defender-ore-mined';\n }\n\n initPageCode() {\n if (this.attacker === null) {\n return;\n }\n\n const launchFleetBtnElm = document.getElementById(this.launchFleetBtnId);\n\n if (!launchFleetBtnElm) {\n return;\n }\n\n launchFleetBtnElm.addEventListener('click', () => {\n const planetRaid = this.planetRaidFactory.make({\n fleet_id: this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.fleet_id,\n planet_id: this.planet_id,\n planet_owner: this.defender_id,\n status: RAID_STATUS.REQUESTED\n });\n\n this.gameState.setRaidPlanetRaidInfo(planetRaid);\n\n MenuPage.router.goto('Fleet', 'index');\n\n this.grassManager.registerListener(new RaidStatusListener(this.gameState, this.raidManager, this.mapManager));\n this.fleetManager.moveFleet(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo.planet_id).then();\n });\n }\n\n /**\n * @param {Player} player\n * @return {string}\n */\n renderUsernameHTML(player) {\n let tag = player.tag\n ? `[${player.tag}]`\n : '';\n let username = player.username\n ? player.username\n : `PID #${player.id}`;\n\n\n return `${tag} ${username}`;\n }\n\n render() {\n Promise.all([\n this.guildAPI.getPlanet(this.planet_id),\n this.guildAPI.getPlayer(this.defender_id),\n this.guildAPI.getStructsByPlayerId(this.defender_id),\n this.guildAPI.getFleetByPlayerId(this.defender_id),\n (async () => (this.attacker_id === null)\n ? null\n : await this.guildAPI.getPlayer(this.attacker_id)\n )(),\n (async () => (this.attacker_id === null)\n ? []\n : await this.guildAPI.getStructsByPlayerId(this.attacker_id)\n )(),\n (async () => (this.attacker_id === null)\n ? null\n : await this.guildAPI.getFleetByPlayerId(this.attacker_id)\n )(),\n ]).then(\n ([\n planet,\n defender,\n defenderStructs,\n defenderFleet,\n attacker,\n attackerStructs,\n attackerFleet,\n ]) => {\n this.mapManager.configurePreviewMap(planet, defender, attacker, defenderFleet, attackerFleet);\n this.gameState.setPreviewDefenderStructs(defenderStructs);\n this.gameState.setPreviewAttackerStructs(attackerStructs);\n this.mapManager.showMap(MAP_CONTAINER_IDS.PREVIEW);\n this.gameState.previewMap.render();\n\n const genericResourceComponent = new GenericResourceComponent(MenuPage.gameState);\n\n const headerResourcesHTML = `\n
\n ${\n genericResourceComponent.renderHTML(\n this.undiscoveredOreId,\n 'sui-icon-undiscovered-ore',\n 'Undiscovered Ore',\n this.numberFormatter.format(this.planet_undiscovered_ore)\n )\n }\n ${\n genericResourceComponent.renderHTML(\n this.alphaOreId,\n 'sui-icon-alpha-ore',\n 'Ore Mined',\n this.numberFormatter.format(this.defender_ore)\n )\n }\n
\n `;\n\n MenuPage.enablePageTemplate(\n MenuPage.navItemFleetId,\n false,\n true,\n true,\n headerResourcesHTML\n );\n\n MenuPage.setPageTemplateHeaderBtn(this.renderUsernameHTML(defender), true, () => {\n MenuPage.router.back();\n });\n\n const launchFleetBtn = (this.attacker_id === null)\n ? `\n \n `\n : ``;\n\n MenuPage.setPageTemplateContent(`${launchFleetBtn}`);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n MenuPage.open();\n }\n );\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\nimport {Pagination} from \"../templates/partials/Pagination\";\nimport {PAGINATION_LIMITS} from \"../../constants/PaginationLimits\";\nimport {PlanetRaidFactory} from \"../../factories/PlanetRaidFactory\";\n\nexport class ScanResultsViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {FleetManager} fleetManager\n * @param {GrassManager} grassManager\n * @param {RaidManager} raidManager\n * @param {MapManager} mapManager\n * @param {RaidSearchRequestDTO|object} raidSearchRequest\n */\n constructor(\n gameState,\n guildAPI,\n fleetManager,\n grassManager,\n raidManager,\n mapManager,\n raidSearchRequest\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.fleetManager = fleetManager;\n this.grassManager = grassManager;\n this.raidManager = raidManager;\n this.mapManager = mapManager;\n this.raidSearchRequest = raidSearchRequest;\n this.planetRaidFactory = new PlanetRaidFactory();\n this.numberFormatter = new NumberFormatter();\n this.players = [];\n }\n\n initPageCode() {\n this.players.forEach((player) => {\n document.getElementById(`scan-${player.id}`).addEventListener('click', () => {\n\n this.guildAPI.getActivePlanetRaidByPlanetId(player.planet_id).then(\n planetRaid => {\n MenuPage.router.goto('Fleet', 'preview', {\n planet_id: player.planet_id,\n planet_undiscovered_ore: player.undiscovered_ore ? player.undiscovered_ore : 0,\n defender_id: player.id,\n defender_ore: player.ore ? player.ore : 0,\n attacker_id: planetRaid.isRaidActive() ? planetRaid.fleet_owner : null\n });\n }\n );\n });\n })\n }\n\n /**\n * @return {string}\n */\n renderIconHTML() {\n return `\n
\n
\n
\n `;\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderPlayerInfoHTML(playerSearchResultDTO) {\n let tag = playerSearchResultDTO.tag\n ? `[${playerSearchResultDTO.tag}]`\n : '';\n let username = playerSearchResultDTO.username\n ? playerSearchResultDTO.username\n : `PID #${playerSearchResultDTO.id}`;\n let fleetBadge = playerSearchResultDTO.fleet_status === 'away'\n ? `Fleet Away`\n : `On Station`;\n\n return `\n
\n
\n ${tag} ${username}
\n ${fleetBadge}\n
\n
\n `;\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderResultRowHTML(playerSearchResultDTO) {\n\n const iconHTML = this.renderIconHTML();\n const playerInfoHTML = this.renderPlayerInfoHTML(playerSearchResultDTO);\n const btnId = `scan-${playerSearchResultDTO.id}`;\n\n return `\n
\n
\n ${iconHTML}\n ${playerInfoHTML}\n
\n
\n
\n
\n ${this.numberFormatter.format(playerSearchResultDTO.undiscovered_ore)}\n \n
\n
\n ${this.numberFormatter.format(playerSearchResultDTO.ore)}\n \n
\n
\n View\n
\n
\n `;\n }\n\n render() {\n Promise.all([\n this.guildAPI.raidSearch(this.raidSearchRequest),\n this.guildAPI.raidSearchCount(this.raidSearchRequest)\n ]).then(([\n players,\n count\n ]) => {\n this.players = players;\n\n let noResultsMessage = `
No results found. Please try a different search term.
`;\n let paginationHTML = '';\n\n const pagination = new Pagination(\n this.raidSearchRequest.page,\n PAGINATION_LIMITS.DEFAULT,\n count,\n 'scan',\n 'Fleet',\n 'scanResults',\n this.raidSearchRequest\n );\n\n if (count) {\n noResultsMessage = '';\n paginationHTML = pagination.render();\n }\n\n MenuPage.enablePageTemplate(MenuPage.navItemFleetId);\n\n MenuPage.setPageTemplateHeaderBtn('Scan Results', true, () => {\n MenuPage.router.goto('Fleet', 'scan');\n });\n\n const playersListHTML = players.reduce((html, player) => {\n return html + this.renderResultRowHTML(player)\n }, '');\n\n MenuPage.setPageTemplateContent(`\n
\n \n ${noResultsMessage}\n \n
\n \n ${playersListHTML}\n \n
\n \n ${paginationHTML}\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n pagination.init();\n });\n\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {SEARCH_STRING_PATTERN} from \"../../constants/RegexPattern\";\nimport {RaidSearchRequestDTO} from \"../../dtos/RaidSearchRequestDTO\";\n\nexport class ScanViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n */\n constructor(\n gameState,\n guildAPI\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n\n this.minVulnerableOreId = 'minVulnerableOre';\n this.guildFilterSelectId = 'guildFilterSelect';\n this.fleetStatusId = 'fleetStatusCheckbox';\n this.searchByStatusBtnId = 'searchByStatusBtn';\n this.playerSearchInputId = 'playerSearch';\n this.playerSearchBtnId = 'playerSearchBtn';\n this.playerSearchErrorId = 'playerSearchError';\n }\n\n getMinOre() {\n const minOre = parseInt(document.getElementById(this.minVulnerableOreId).value);\n return isNaN(minOre)\n ? 0\n : Math.max(minOre, 0);\n }\n\n initPageCode() {\n MenuPage.sui.inputStepper.autoInitAll();\n\n // Search By Status Submission\n document.getElementById(this.searchByStatusBtnId).addEventListener('click', () => {\n const raidSearchRequest = new RaidSearchRequestDTO();\n raidSearchRequest.min_ore = this.getMinOre();\n raidSearchRequest.guild_id = document.getElementById(this.guildFilterSelectId).value;\n raidSearchRequest.fleet_away_only = document.getElementById(this.fleetStatusId).checked;\n\n MenuPage.router.goto('Fleet', 'scanResults', raidSearchRequest);\n });\n\n // Search By Player Input Checker\n const playerSearchInput = document.getElementById(this.playerSearchInputId);\n playerSearchInput.addEventListener('keyup', () => {\n const submitBtn = document.getElementById(this.playerSearchBtnId);\n\n if (playerSearchInput.value.length > 0 && submitBtn.classList.contains('sui-mod-disabled')) {\n submitBtn.disabled = false;\n submitBtn.classList.remove('sui-mod-disabled');\n submitBtn.classList.add('sui-mod-primary');\n } else if (playerSearchInput.value.length === 0 && submitBtn.classList.contains('sui-mod-primary')) {\n submitBtn.disabled = true;\n submitBtn.classList.remove('sui-mod-primary');\n submitBtn.classList.add('sui-mod-disabled');\n }\n });\n\n // Search By Player Submission\n document.getElementById(this.playerSearchBtnId).addEventListener('click', () => {\n document.getElementById(this.playerSearchErrorId).classList.remove('sui-mod-show');\n\n const playerSearchInput = document.getElementById(this.playerSearchInputId);\n\n if (!SEARCH_STRING_PATTERN.test(playerSearchInput.value)) {\n document.getElementById(this.playerSearchErrorId).classList.add('sui-mod-show');\n } else {\n const raidSearchRequest = new RaidSearchRequestDTO();\n raidSearchRequest.search_string = playerSearchInput.value;\n\n MenuPage.router.goto('Fleet', 'scanResults', raidSearchRequest);\n }\n });\n }\n\n render() {\n this.guildAPI.getGuildFilterList().then(guilds => {\n\n const guildFilterOptions = guilds.reduce((options, guild) =>\n options + ``\n , '');\n\n MenuPage.enablePageTemplate(MenuPage.navItemFleetId);\n\n MenuPage.setPageTemplateHeaderBtn(\n 'Scan',\n true,\n () => {\n MenuPage.router.goto('Fleet', 'index');\n });\n\n MenuPage.setPageTemplateContent(`\n
\n \n
\n
Search By Status
\n
\n \n \n \n \n \n \n \n \n
\n
\n \n
\n
Search By Player
\n
\n
\n
\n \n \n
\n
\n
Enter at least 3 characters, using only letters, numbers, '-' and '_'.
\n
\n
\n
\n
\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class MenuWaitingViewModel extends AbstractViewModel {\n\n /**\n * @param {MenuWaitingOptions} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n renderWaitingAnimation() {\n switch (this.options.waitingAnimation) {\n case 'ALPHA_TRANSFER':\n return `\"alpha`;\n case 'INFUSE':\n return `\"alpha`;\n case 'DEFUSE':\n return `\"alpha`;\n default:\n return `\"3`;\n }\n }\n\n renderWaitingMessage() {\n return this.options.waitingMessage ? this.options.waitingMessage : '';\n }\n\n renderDoNotCloseWarning() {\n return this.options.hasDoNotCloseMessage\n ? `Do not close this screen.`\n : '';\n }\n\n render () {\n MenuPage.enablePageTemplate(this.options.navItemId, false);\n\n MenuPage.setPageTemplateHeaderBtn(\n this.options.headerBtnLabel,\n this.options.headerBtnShowBackIcon,\n this.options.headerBtnHandler\n );\n\n const waitingAnimation = this.renderWaitingAnimation();\n const waitingMessage = this.renderWaitingMessage();\n const doNotCloseWarning = this.renderDoNotCloseWarning();\n\n MenuPage.setPageTemplateContent(`\n
\n ${waitingAnimation}\n
\n ${waitingMessage}\n ${(waitingMessage && doNotCloseWarning) ? `

` : ''}\n ${doNotCloseWarning}\n
\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.options.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class GuildIndexViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n */\n constructor(\n gameState,\n guildAPI\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.alphaReactorBtnId = 'guild-menu-alpha-reactor-btn';\n this.guildProfileBtnId = 'guild-menu-profile-btn';\n this.memberRosterBtnId = 'guild-menu-member-roster-btn';\n this.guildsDirectoryBtnId = 'guild-menu-guilds-directory-btn';\n }\n\n initPageCode() {\n document.getElementById(this.alphaReactorBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Guild', 'reactor');\n });\n document.getElementById(this.guildProfileBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Guild', 'profile', {guildId: this.gameState.thisGuild.id});\n });\n document.getElementById(this.memberRosterBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Guild', 'roster', {guildId: this.gameState.thisGuild.id});\n });\n document.getElementById(this.guildsDirectoryBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Guild', 'directory');\n });\n }\n\n render () {\n\n const alphaInfusedPromise = this.guildAPI.getInfusionByPlayerId(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id);\n const memberCountPromise = this.guildAPI.countGuildMembers(this.gameState.thisGuild.id);\n const guildCountPromise = this.guildAPI.countGuilds();\n\n Promise.all([\n alphaInfusedPromise,\n memberCountPromise,\n guildCountPromise\n ]).then((responseValues) => {\n const alphaInfused = responseValues[0].fuel;\n const memberCount = responseValues[1];\n const guildCount = responseValues[2];\n\n MenuPage.enablePageTemplate(MenuPage.navItemGuildId);\n\n MenuPage.setPageTemplateHeaderBtn('Guild Status');\n\n MenuPage.setPageTemplateContent(`\n \n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {GenericResourceComponent} from \"../components/GenericResourceComponent\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\n\nexport class GuildProfileViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {string} guildId\n */\n constructor(\n gameState,\n guildAPI,\n guildId\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.guildId = guildId;\n this.genericResourceComponent = new GenericResourceComponent(gameState);\n this.numberFormatter = new NumberFormatter();\n\n this.copyGidBtnId = 'guild-profile-copy-gid-btn';\n this.guildMinimumId = 'guild-profile-guild-minimum';\n this.baseEnergySupplyId = 'guild-profile-base-energy-supply';\n this.commissionId = 'guild-profile-commission';\n this.alphaInfusedId = 'guild-profile-alpha-infused';\n this.energyUsageId = 'guild-profile-energy-usage';\n\n this.guild = null;\n this.powerStats = 0;\n this.membersCount = null;\n this.completePlanetsCount = 0;\n }\n\n async fetchPageData() {\n\n const [guild, powerStats, membersCount, completePlanetsCount] = await Promise.all([\n this.guildAPI.getGuild(this.guildId),\n this.guildAPI.getGuildPowerStats(this.guildId),\n this.guildAPI.countGuildMembers(this.guildId),\n this.guildAPI.countGuildPlanetsCompleted(this.guildId)\n ]);\n\n this.guild = guild;\n this.powerStats = powerStats;\n this.membersCount = membersCount;\n this.completePlanetsCount = completePlanetsCount;\n }\n\n initPageCode() {\n document.getElementById(this.copyGidBtnId).addEventListener('click', async function () {\n if (navigator.clipboard) {\n await navigator.clipboard.writeText(this.guild.id);\n }\n }.bind(this));\n }\n\n renderJoinWarningHTML() {\n if (this.guild.id === this.gameState.thisGuild.id) {\n return '';\n }\n\n let guildWebsiteLink = '';\n\n if (this.guild.website) {\n guildWebsiteLink = `\n Visit the ${this.guild.name} Guild Site \n `;\n }\n\n return `\n
\n \n
\n Players joining a Guild are required to play Structs through that Guild’s external game client.\n ${guildWebsiteLink}\n
\n
\n `;\n }\n\n renderJoinBtnsHTML() {\n let discordBtn = '';\n let guildBtn = '';\n\n if (this.guild.socials?.discord_server) {\n discordBtn = `\n Join Discord\n `;\n }\n\n // Switching guilds from the UI is out of scope for the MVP\n // if (this.guild.id !== this.gameState.thisGuild.id) {\n // guildBtn = `\n // Join Guild\n // `;\n // }\n\n if (discordBtn === '' && guildBtn === '') {\n return '';\n }\n\n return `\n
\n ${discordBtn}\n ${guildBtn}\n
\n `;\n }\n\n render () {\n this.fetchPageData().then(() => {\n\n MenuPage.enablePageTemplate(MenuPage.navItemGuildId);\n\n MenuPage.setPageTemplateHeaderBtn('Guild Profile', true, () => {\n MenuPage.router.back();\n });\n\n MenuPage.setPageTemplateContent(`\n
\n
\n
\n
\n
\n
\n
\n ${this.guild.name ? this.guild.name : 'Name Redacted'}\n ${this.guild.tag ? \"[\" + this.guild.tag + \"]\" : ''}\n
\n
\n Guild ID #${this.guild.id}\n \n
\n \n
\n
\n
\n
\n
\n \n
\n
Guild Data
\n
\n
\n ${this.guild.description ? this.guild.description : 'Description Redacted'}\n
\n
\n
\n \n ${this.renderJoinWarningHTML()}\n \n ${this.renderJoinBtnsHTML()}\n \n
\n
Guild Power
\n
\n
\n
\n Guild Minimum\n \n \n \n
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.guildMinimumId,\n 'sui-icon-alpha-matter',\n 'Minimum alpha required to join guild',\n this.numberFormatter.format(this.guild.join_infusion_minimum)\n )\n }\n
\n
\n
\n
\n Avg. Base Energy Supply\n \n \n \n
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.baseEnergySupplyId,\n 'sui-icon-energy',\n 'Average energy supplied to guild members',\n this.numberFormatter.format(this.powerStats.avg_connection_capacity)\n )\n }\n
\n
\n
\n
\n Alpha Efficiency\n \n \n \n
\n
\n ${this.numberFormatter.format(this.guild.reactor_ratio)} /\n 1 \n
\n
\n
\n
Commission
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.commissionId,\n 'sui-icon-energy',\n 'The guild\\'s cut',\n Math.floor(this.guild.default_commission * 100) + '%'\n )\n }\n
\n
\n
\n
Alpha Infused
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.alphaInfusedId,\n 'sui-icon-alpha-matter',\n 'Alpha infused with the guild',\n this.numberFormatter.format(this.powerStats.total_fuel)\n )\n }\n
\n
\n
\n
Energy Usage
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.energyUsageId,\n 'sui-icon-energy',\n 'Cumulative guild member energy usage',\n `${this.numberFormatter.format(this.powerStats.total_load)}/${this.numberFormatter.format(this.powerStats.total_capacity)}` \n )\n }\n
\n
\n
\n
\n \n
\n
Guild Statistics
\n
\n
\n
Members
\n
${this.numberFormatter.format(this.membersCount)}
\n
\n
\n
Planets Completed
\n
${this.numberFormatter.format(this.completePlanetsCount)}
\n
\n
\n
\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\nimport {GenericResourceComponent} from \"../components/GenericResourceComponent\";\n\nexport class GuildsDirectoryViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n */\n constructor(\n gameState,\n guildAPI\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.numberFormatter = new NumberFormatter();\n this.guilds = [];\n this.genericResourceComponent = new GenericResourceComponent(gameState);\n\n this.membersId = 'guild-dir-members';\n this.alphaInfusedId = 'guild-dir-alpha-infused';\n }\n\n initPageCode() {\n this.guilds.forEach((guild) => {\n document.getElementById(`guild-search-result-${guild.guild_id}`).addEventListener('click', () => {\n MenuPage.router.goto('Guild', 'profile', {guildId: guild.guild_id})\n });\n })\n }\n\n /**\n * @param {GuildSearchResultDTO} guildSearchResultDTO\n * @return {string}\n */\n renderIconHTML(guildSearchResultDTO) {\n let html = `\n
\n \n
\n `;\n\n if (guildSearchResultDTO.logo) {\n html = `\n
\n \"Guild\n
\n `;\n }\n\n return html;\n }\n\n /**\n * @param {GuildSearchResultDTO} guildSearchResultDTO\n * @return {string}\n */\n renderGuildInfoHTML(guildSearchResultDTO) {\n let name = guildSearchResultDTO.name\n ? guildSearchResultDTO.name\n : `Guild #${guildSearchResultDTO.guild_id}`;\n\n return `\n
\n
\n ${name}\n
\n
\n `;\n }\n\n /**\n * @param {GuildSearchResultDTO} guildSearchResultDTO\n * @return {string}\n */\n renderResultRowHTML(guildSearchResultDTO) {\n\n const iconHTML = this.renderIconHTML(guildSearchResultDTO);\n const guildInfoHTML = this.renderGuildInfoHTML(guildSearchResultDTO);\n const btnId = `guild-search-result-${guildSearchResultDTO.guild_id}`;\n\n return `\n
\n
\n ${iconHTML}\n ${guildInfoHTML}\n
\n
\n
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.membersId,\n 'sui-icon-players',\n 'Number of members in the guild',\n this.numberFormatter.format(guildSearchResultDTO.members)\n )\n }\n
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.alphaInfusedId,\n 'sui-icon-alpha-matter',\n 'Alpha infused with the guild',\n this.numberFormatter.format(guildSearchResultDTO.alpha)\n )\n }\n
\n
\n View\n
\n
\n `;\n }\n\n render () {\n this.guildAPI.getGuildsDirectory().then((guilds) => {\n\n this.guilds = guilds;\n\n let noResultsMessage = this.guilds.length > 0 ? '' : `
Guild has no members yet.
`;\n\n MenuPage.enablePageTemplate(MenuPage.navItemGuildId);\n\n MenuPage.setPageTemplateHeaderBtn(\"Guild's Directory\", true, () => {\n MenuPage.router.goto('Guild', 'index');\n });\n\n const guildsListHTML = guilds.reduce((html, guild) => {\n return html + this.renderResultRowHTML(guild)\n }, '');\n\n MenuPage.setPageTemplateContent(`\n
\n \n ${noResultsMessage}\n \n
\n \n ${guildsListHTML}\n \n
\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {GenericResourceComponent} from \"../components/GenericResourceComponent\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\nimport {SystemModal} from \"../templates/partials/SystemModal\";\nimport {AlphaInfusedChangeListener} from \"../../grass_listeners/AlphaInfusedChangeListener\";\nimport {MenuWaitingOptions} from \"../../options/MenuWaitingOptions\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class ManageAlphaViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {GrassManager} grassManager\n * @param {AlphaManager} alphaManager\n * @param {Infusion|object} infusion\n */\n constructor(\n gameState,\n guildAPI,\n grassManager,\n alphaManager,\n infusion\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.grassManager = grassManager;\n this.alphaManager = alphaManager;\n this.infusion = infusion;\n this.genericResourceComponent = new GenericResourceComponent(gameState);\n this.numberFormatter = new NumberFormatter();\n this.systemModal = new SystemModal();\n\n this.alphaToInfuse = this.infusion.fuel;\n this.joinInfusionMinimum = this.gameState.thisGuild.join_infusion_minimum;\n\n this.addBtnId = 'manage-alpha-add';\n this.subtractBtnId = 'manage-alpha-subtract';\n this.alphaInfusedId = 'manage-alpha-alpha-infused';\n this.alphaInfusedValueId = 'manage-alpha-alpha-infused-value';\n this.energyId = 'manage-alpha-energy';\n this.energyValueId = 'manage-alpha-energy-value';\n this.cancelBtnId = 'manage-alpha-cancel';\n this.saveChangesBtnId = 'manage-alpha-save-changes';\n\n this.infusionWarning = `Alpha will be removed from your inventory and added to the reactor.`;\n this.defusionWarning = `Alpha will be removed from the reactor and put on cooldown.`;\n }\n\n calculateEnergy() {\n return Math.floor(this.alphaToInfuse * this.gameState.thisGuild.reactor_ratio * (1 - this.gameState.thisGuild.default_commission));\n }\n\n postToggleRender() {\n const subtractBtn = document.getElementById(this.subtractBtnId);\n const addBtn = document.getElementById(this.addBtnId);\n const alphaInfusedValue = document.getElementById(this.alphaInfusedValueId);\n const energyValue = document.getElementById(this.energyValueId);\n const errorElm = document.querySelector('.manage-alpha-error');\n const ctaBtns = document.querySelector('.manage-alpha-cta-btns');\n\n if (this.alphaToInfuse < this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.alpha) {\n addBtn.classList.remove('sui-mod-disabled');\n addBtn.disabled = false;\n } else {\n addBtn.classList.add('sui-mod-disabled');\n addBtn.disabled = true;\n }\n\n if (this.alphaToInfuse > 0 && this.alphaToInfuse > this.joinInfusionMinimum) {\n subtractBtn.classList.remove('sui-mod-disabled');\n subtractBtn.disabled = false;\n } else {\n subtractBtn.classList.add('sui-mod-disabled');\n subtractBtn.disabled = true;\n }\n\n if (\n this.alphaToInfuse !== this.infusion.fuel\n && this.alphaToInfuse >= this.joinInfusionMinimum\n ) {\n ctaBtns.classList.remove('hidden');\n } else {\n ctaBtns.classList.add('hidden');\n }\n\n if (this.alphaToInfuse <= this.joinInfusionMinimum) {\n errorElm.classList.remove('hidden');\n } else {\n errorElm.classList.add('hidden');\n }\n\n alphaInfusedValue.innerText = this.alphaToInfuse;\n energyValue.innerHTML = `${this.calculateEnergy()}`;\n }\n\n infuse() {\n const alphaDiff = this.alphaToInfuse - this.infusion.fuel;\n this.grassManager.registerListener(new AlphaInfusedChangeListener(this.gameState, this.guildAPI, 'infused'));\n this.alphaManager.infuse(alphaDiff).then();\n }\n\n defuse() {\n const alphaDiff = this.infusion.fuel - this.alphaToInfuse;\n this.grassManager.registerListener(new AlphaInfusedChangeListener(this.gameState, this.guildAPI, 'defusion_started'));\n this.alphaManager.defuse(alphaDiff).then();\n }\n\n initPageCode() {\n this.systemModal.init();\n\n document.getElementById(this.subtractBtnId).addEventListener('click', (event) => {\n event.preventDefault();\n\n if (this.alphaToInfuse > 0 && this.alphaToInfuse > this.joinInfusionMinimum) {\n this.alphaToInfuse--;\n }\n\n this.postToggleRender();\n });\n\n document.getElementById(this.addBtnId).addEventListener('click', (event) => {\n event.preventDefault();\n\n if (this.alphaToInfuse < this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.alpha) {\n this.alphaToInfuse++;\n }\n\n this.postToggleRender();\n });\n\n document.getElementById(this.cancelBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Guild', 'reactor');\n });\n document.getElementById(this.saveChangesBtnId).addEventListener('click', () => {\n\n document.getElementById(this.systemModal.messageId).innerHTML = (this.alphaToInfuse > this.infusion.fuel)\n ? this.infusionWarning\n : this.defusionWarning;\n\n this.systemModal.show();\n });\n\n this.postToggleRender();\n }\n\n render () {\n\n this.systemModal.iconClasses = `sui-icon-alpha-matter`;\n this.systemModal.confirmBtnHandler = () => {\n const options = new MenuWaitingOptions();\n options.navItemId = MenuPage.navItemGuildId;\n options.hasDoNotCloseMessage = false;\n\n if (this.alphaToInfuse > this.infusion.fuel) {\n this.infuse();\n\n options.headerBtnLabel = 'Infusing...';\n options.waitingAnimation = 'INFUSE';\n } else {\n this.defuse();\n\n options.headerBtnLabel = 'Defusing...';\n options.waitingAnimation = 'DEFUSE';\n }\n\n MenuPage.router.goto('Generic', 'menuWaiting', options);\n };\n const modalHTML = this.systemModal.render();\n\n MenuPage.enablePageTemplate(MenuPage.navItemGuildId);\n\n MenuPage.setPageTemplateHeaderBtn('Manage Alpha', true, () => {\n MenuPage.router.goto('Guild', 'reactor');\n });\n\n MenuPage.setPageTemplateContent(`\n
\n \n
\n \n \"alpha\n \n
\n \n
\n ${\n this.genericResourceComponent.renderHTML(\n this.alphaInfusedId,\n 'sui-icon-alpha-matter',\n 'Alpha to infuse',\n this.infusion.fuel\n )\n }\n ${\n this.genericResourceComponent.renderHTML(\n this.energyId,\n 'sui-icon-energy',\n 'Expected energy supply',\n this.numberFormatter.format(this.alphaToInfuse * this.infusion.ratio * (this.infusion.commission/100))\n )\n }\n
\n \n
\n \n The Guild Minimum is ${this.joinInfusionMinimum} Alpha Matter.\n
\n \n \n \n ${modalHTML}\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\n\nexport class MemberRosterViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {string} guildId\n */\n constructor(\n gameState,\n guildAPI,\n guildId\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.guildId = guildId;\n this.numberFormatter = new NumberFormatter();\n this.players = [];\n }\n\n initPageCode() {\n this.players.forEach((player) => {\n document.getElementById(`player-search-result-${player.id}`).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'profile', {playerId: player.id})\n });\n })\n }\n\n /**\n * @return {string}\n */\n renderIconHTML() {\n return `\n
\n
\n
\n `;\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderPlayerInfoHTML(playerSearchResultDTO) {\n let html = `\n
\n
\n Address ${playerSearchResultDTO.address}\n
\n
\n `;\n\n if (playerSearchResultDTO.id) {\n let tag = playerSearchResultDTO.tag\n ? `[${playerSearchResultDTO.tag}]`\n : '';\n let username = playerSearchResultDTO.username\n ? playerSearchResultDTO.username\n : 'Name Redacted'\n\n html = `\n
\n
\n ${tag} ${username}
\n PID #${playerSearchResultDTO.id}\n
\n
\n `;\n }\n\n return html;\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderAlphaHTML(playerSearchResultDTO) {\n if (isNaN(parseInt(playerSearchResultDTO.alpha))) {\n return '';\n }\n\n const amount = this.numberFormatter.format(playerSearchResultDTO.alpha);\n return `\n ${amount}\n \n `;\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderResultRowHTML(playerSearchResultDTO) {\n\n const iconHTML = this.renderIconHTML();\n const playerInfoHTML = this.renderPlayerInfoHTML(playerSearchResultDTO);\n const alphaHTML = this.renderAlphaHTML(playerSearchResultDTO);\n const btnId = `player-search-result-${playerSearchResultDTO.id}`;\n\n return `\n
\n
\n ${iconHTML}\n ${playerInfoHTML}\n
\n
\n
\n
\n ${alphaHTML}\n
\n
\n View\n
\n
\n `;\n }\n\n render () {\n this.guildAPI.getGuildRoster(this.guildId).then((players) => {\n\n this.players = players;\n\n let noResultsMessage = this.players.length > 0 ? '' : `
Guild has no members yet.
`;\n\n MenuPage.enablePageTemplate(MenuPage.navItemGuildId);\n\n MenuPage.setPageTemplateHeaderBtn('Member Roster', true, () => {\n MenuPage.router.goto('Guild', 'index');\n });\n\n const playersListHTML = players.reduce((html, player) => {\n return html + this.renderResultRowHTML(player)\n }, '');\n\n MenuPage.setPageTemplateContent(`\n
\n \n ${noResultsMessage}\n \n
\n \n ${playersListHTML}\n \n
\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {GenericResourceComponent} from \"../components/GenericResourceComponent\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class ReactorViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n */\n constructor(\n gameState,\n guildAPI\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.guildId = this.gameState.thisGuild.id;\n this.genericResourceComponent = new GenericResourceComponent(gameState);\n this.numberFormatter = new NumberFormatter();\n\n this.guildMinimumId = 'guild-profile-guild-minimum';\n this.commissionId = 'guild-profile-commission';\n this.alphaInfusedId = 'guild-profile-alpha-infused';\n this.defusingId = 'guild-profile-defusing';\n this.totalSupplyId = 'guild-profile-total-supply';\n this.manageAlphaBtnId = 'guild-reactor-manage-alpha-btn';\n\n this.guild = null;\n this.infusion = null;\n }\n\n async fetchPageData() {\n\n const [guild, infusion] = await Promise.all([\n this.guildAPI.getGuild(this.guildId),\n this.guildAPI.getInfusionByPlayerId(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id)\n ]);\n\n this.guild = guild;\n this.infusion = infusion;\n }\n\n initPageCode() {\n document.getElementById(this.manageAlphaBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Guild', 'manageAlpha', this.infusion);\n });\n }\n\n render () {\n this.fetchPageData().then(() => {\n\n MenuPage.enablePageTemplate(MenuPage.navItemGuildId);\n\n MenuPage.setPageTemplateHeaderBtn('Guild Reactor', true, () => {\n MenuPage.router.goto('Guild', 'index');\n });\n\n MenuPage.setPageTemplateContent(`\n
\n \n
\n \n \"alpha\n \n
\n \n
\n
ALPHA MATTER
\n
\n \n
\n
Alpha Infused
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.alphaInfusedId,\n 'sui-icon-alpha-matter',\n 'Alpha infused with the guild',\n this.numberFormatter.format(this.infusion.fuel)\n )\n }\n
\n
\n
\n
\n Cooldown\n \n \n \n
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.defusingId,\n 'sui-icon-inert-alpha',\n 'Alpha removed from the reactor that must cooldown before reuse',\n this.numberFormatter.format(this.infusion.defusing)\n )\n }\n
\n
\n \n
\n
\n \n
\n
ENERGY
\n
\n \n
\n
Total Supply
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.totalSupplyId,\n 'sui-icon-energy',\n 'Expected supply of power',\n this.numberFormatter.format(this.infusion.power)\n )\n }\n
\n
\n \n
\n
\n \n \n \n
\n \n
\n \n
\n
Reactor Details
\n
\n
\n
\n Guild Minimum\n \n \n \n
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.guildMinimumId,\n 'sui-icon-alpha-matter',\n 'Minimum alpha required to join guild',\n this.numberFormatter.format(this.guild.join_infusion_minimum)\n )\n }\n
\n
\n
\n
\n Reactor Efficiency\n \n \n \n
\n
\n ${this.numberFormatter.format(this.guild.reactor_ratio)} /\n 1 \n
\n
\n
\n
\n Commission\n \n \n \n
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.commissionId,\n 'sui-icon-energy',\n 'The guild\\'s cut',\n Math.floor(this.guild.default_commission * 100) + '%'\n )\n }\n
\n
\n \n
\n
\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class ActivateDeviceCancelledViewModel extends AbstractViewModel {\n\n constructor() {\n super();\n this.tryAgainBtnId = 'try-again-btn';\n this.logInWithRecoveryKeyBtnId = 'log-in-with-recovery-key-btn';\n }\n\n initPageCode() {\n document.getElementById(this.tryAgainBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Auth', 'loginActivateDevice');\n });\n document.getElementById(this.logInWithRecoveryKeyBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Auth', 'loginRecoverAccountStart');\n });\n }\n\n render () {\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn('Activate Device');\n\n MenuPage.setPageTemplateContent(`\n
\n
\n
\n \n Activation Cancelled\n
\n
This device has not been logged in.
\n
\n \n
\n \n \n
\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class ActivateDeviceCompleteViewModel extends AbstractViewModel {\n\n constructor() {\n super();\n this.playStructsBtnId = 'play-structs-btn';\n }\n\n initPageCode() {\n document.getElementById(this.playStructsBtnId).addEventListener('click', () => {\n MenuPage.close();\n });\n }\n\n render () {\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn('Activate Device');\n\n MenuPage.setPageTemplateContent(`\n
\n
\n
\n \n Activation Completed\n
\n
Your device has been successfully activated and you are now logged-in.
\n
\n \n
\n \n
\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {ActivationCodeInfoDTO} from \"../../dtos/ActivationCodeInfoDTO\";\n\nexport class ActivateDeviceVerifyViewModel extends AbstractViewModel {\n\n /**\n * @param {AuthManager} authManager\n * @param {ActivationCodeInfoDTO | null} activationCodeInfo\n */\n constructor(\n authManager,\n activationCodeInfo\n ) {\n super();\n this.authManager = authManager;\n this.activationCodeInfo = activationCodeInfo;\n this.yesBtnId = 'yes-btn';\n this.noBtnId = 'no-btn';\n }\n\n initPageCode() {\n document.getElementById(this.noBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Auth', 'loginActivateDeviceCancelled');\n });\n document.getElementById(this.yesBtnId).addEventListener('click', () => {\n this.authManager.addNewDevice(this.activationCodeInfo).then(success => {\n if (success) {\n MenuPage.router.goto(\n 'Auth',\n 'loginActivateDeviceWaitingForApproval',\n this.activationCodeInfo\n );\n } else {\n MenuPage.router.goto('Auth', 'loginActivateDeviceCancelled');\n }\n }).catch(() => {\n MenuPage.router.goto('Auth', 'loginActivateDeviceCancelled');\n });\n });\n }\n\n render () {\n\n if (this.activationCodeInfo === null) {\n MenuPage.router.goto('Auth', 'loginActivateDevice');\n return;\n }\n\n const tag = this.activationCodeInfo.tag ? `[${this.activationCodeInfo.tag}]` : '';\n const username = this.activationCodeInfo.username ? this.activationCodeInfo.username : '';\n const playerId = this.activationCodeInfo.player_id;\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn('Activate Device', true, () => {\n MenuPage.router.goto('Auth', 'loginActivateDevice');\n });\n\n MenuPage.setPageTemplateContent(`\n
\n
Is this your account?
\n \n
\n
\n
\n
\n
${tag}
\n
${username}
\n
\n
\n
Player ID
\n
#${playerId}
\n
\n
\n
\n \n \n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {CODE_PATTERN} from \"../../constants/RegexPattern\";\n\nexport class ActivateDeviceViewModel extends AbstractViewModel {\n\n /**\n * @param {GuildAPI} guildAPI\n */\n constructor(guildAPI) {\n super();\n this.guildAPI = guildAPI;\n this.activationCodeInputId = 'activationCode';\n this.activationCodeInputErrorId = 'activation-code-input-error';\n this.activationCodeSubmitBtnId = 'activation-code-submit-btn';\n this.logInWithRecoveryKeyBtnId = 'log-in-with-recovery-key-btn';\n this.errorMessage = 'Activation Code is invalid or has expired.'\n }\n\n initPageCode() {\n const errorElm = document.getElementById(this.activationCodeInputErrorId);\n\n document.getElementById(this.activationCodeSubmitBtnId).addEventListener('click', () => {\n\n errorElm.innerHTML = '';\n const input = document.getElementById(this.activationCodeInputId);\n let code = input.value.toUpperCase();\n input.value = code;\n\n if (!CODE_PATTERN.test(code)) {\n errorElm.innerHTML = this.errorMessage;\n return;\n }\n\n this.guildAPI.getActivationCodeInfo(code).then(info => {\n\n if (info === null) {\n errorElm.innerHTML = this.errorMessage;\n return;\n }\n\n MenuPage.router.goto('Auth', 'loginActivateDeviceVerify', info);\n\n }).catch(() => {\n errorElm.innerHTML = this.errorMessage;\n });\n });\n\n document.getElementById(this.logInWithRecoveryKeyBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Auth', 'loginRecoverAccountStart');\n })\n }\n\n render () {\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn('Activate Device', true, () => {\n MenuPage.router.goto('Auth', 'index');\n });\n\n MenuPage.setPageTemplateContent(`\n
\n
To receive an activation code, go to Account > Devices on any logged in device.
\n \n
\n
\n \n
\n
\n \n
\n \n
\n
Not logged in anywhere else?
\n \n
\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {Blockies} from \"../../vendor/Blockies\";\n\nexport class ActivateDeviceWaitingForApprovalViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {ActivationCodeInfoDTO} activationCodeInfo\n */\n constructor(gameState, activationCodeInfo) {\n super();\n this.gameState = gameState;\n this.activationCodeInfo = activationCodeInfo;\n this.blockies = new Blockies();\n this.blockieWrapperId = 'login-blockie-wrapper';\n this.deviceSealHintId = 'device-seal-hint';\n }\n\n initPageCode() {\n document.getElementById(this.blockieWrapperId).append(\n this.blockies.createBlockie(this.gameState.signingAccount.address)\n );\n }\n\n render () {\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn('Activate Device');\n\n MenuPage.setPageTemplateContent(`\n
\n \"3\n \n
\n
\n Please review and confirm the activation request on your logged-in device.
\n
\n Do not close this screen.\n
\n
\n
\n
\n
DEVICE SEAL
\n
\n What's this?\n
\n
\n
\n
\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class ActivatingDeviceViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {AuthManager} authManager\n * @param {ActivationCodeInfoDTO} activationCodeInfo\n */\n constructor(\n gameState,\n authManager,\n activationCodeInfo\n ) {\n super();\n this.gameState = gameState;\n this.authManager = authManager;\n this.activationCodeInfo = activationCodeInfo;\n }\n\n initPageCode() {\n this.authManager.login(this.activationCodeInfo.player_id).then(async function (success) {\n if (success) {\n MenuPage.router.goto('Auth', 'loginActivateDeviceComplete');\n } else {\n MenuPage.router.goto('Auth', 'loginActivateDeviceCancelled');\n }\n }.bind(this)).catch((e) => {\n console.log(e);\n MenuPage.router.goto('Auth', 'loginActivateDeviceCancelled');\n });\n }\n\n render () {\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn('Activate Device');\n\n MenuPage.setPageTemplateContent(`\n
\n \"3\n
\n Activating device
\n
\n Do not close this screen.\n
\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n }\n}\n","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class LoggingInViewModel extends AbstractViewModel{\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'Connecting...'\n )\n ];\n MenuPage.setNavItems(navItems);\n MenuPage.disableCloseBtn();\n MenuPage.showNav();\n\n MenuPage.setBodyContent(`\n
\n \n
\n
\n \"Computer\n
\n
\n \n
\n `);\n\n MenuPage.setDialogueIndicatorContent(``);\n MenuPage.setDialogueScreenContent(`Please wait while your Employee Record is confirmed...`);\n MenuPage.disableDialogueBtnB();\n MenuPage.disableDialogueBtnA();\n MenuPage.showDialoguePanel();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class RecoverAccountFailViewModel extends AbstractViewModel {\n\n constructor() {\n super();\n this.tryAgainBtnId = 'try-again-btn';\n this.logInFromAnotherDeviceBtnId = 'log-in-from-another-device-btn';\n }\n\n initPageCode() {\n document.getElementById(this.tryAgainBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Auth', 'loginRecoverAccountStart');\n });\n document.getElementById(this.logInFromAnotherDeviceBtnId).addEventListener('click', () => {\n console.log('Log in with recovery key');\n MenuPage.router.goto('Auth', 'loginActivateDevice');\n });\n }\n\n render () {\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn('Recover Account');\n\n MenuPage.setPageTemplateContent(`\n
\n
\n
\n \n Invalid Recovery Key\n
\n
The Recovery Key provided did not match any known account. Please ensure each word is spelled correctly and is entered in the correct order.
\n
\n \n
\n \n \n
\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {PageHeader} from \"../templates/partials/PageHeader\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class RecoverAccountStartViewModel extends AbstractViewModel {\n /**\n * @param {GameState} gameState\n * @param {AuthManager} authManager\n */\n constructor(\n gameState,\n authManager\n ) {\n super();\n this.gameState = gameState;\n this.authManager = authManager;\n this.recoveryKeyFaqBtnId = 'recovery-key-faq-link';\n }\n\n initPageCode() {\n const recoveryKeyInput = document.getElementById('recovery-key-input');\n recoveryKeyInput.addEventListener('keyup', () => {\n const submitBtn = document.getElementById('submit-btn');\n\n if (recoveryKeyInput.value.length > 0 && submitBtn.classList.contains('sui-mod-disabled')) {\n submitBtn.disabled = false;\n submitBtn.classList.remove('sui-mod-disabled');\n submitBtn.classList.add('sui-mod-primary');\n } else if (recoveryKeyInput.value.length === 0 && submitBtn.classList.contains('sui-mod-primary')) {\n submitBtn.disabled = true;\n submitBtn.classList.remove('sui-mod-primary');\n submitBtn.classList.add('sui-mod-disabled');\n }\n });\n\n const submitBtnHandler = () => {\n const recoveryKeyInput = document.getElementById('recovery-key-input');\n recoveryKeyInput.value = recoveryKeyInput.value.replace(/\\s\\s+/g, ' ');\n\n MenuPage.router.goto('Auth', 'loggingIn');\n\n this.authManager.loginWithMnemonic(recoveryKeyInput.value).then(async (success) => {\n if (success) {\n MenuPage.router.goto('Auth', 'loginRecoverAccountSuccess');\n } else {\n MenuPage.router.goto('Auth', 'loginRecoverAccountFail');\n }\n });\n };\n\n document.getElementById('submit-btn').addEventListener('click', submitBtnHandler);\n recoveryKeyInput.addEventListener('keyup', (e) => {\n if (e.key === 'Enter') {\n submitBtnHandler();\n }\n });\n\n document.getElementById(this.recoveryKeyFaqBtnId).addEventListener('click', () => {\n MenuPage.router.goto(\n 'Auth',\n 'signupRecoveryKeyFaq',\n {\n backButtonHandler: () => {\n MenuPage.router.goto('Auth', 'loginRecoverAccountStart');\n }\n }\n );\n });\n }\n\n async render() {\n const pageHeader = new PageHeader();\n pageHeader.pageLabel = 'Recovery Account';\n pageHeader.showBackButton = true;\n pageHeader.backButtonHandler = () => {\n MenuPage.router.goto('Auth', 'loginActivateDevice');\n };\n\n MenuPage.hideAndClearNav();\n\n MenuPage.setBodyContent(`\n
\n \n ${pageHeader.render()}\n \n
\n \n
\n \n \n
\n
\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n pageHeader.init();\n this.initPageCode();\n }\n}","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class RecoverAccountSuccessViewModel extends AbstractViewModel {\n\n constructor() {\n super();\n this.playStructsBtnId = 'play-structs-btn';\n }\n\n initPageCode() {\n document.getElementById(this.playStructsBtnId).addEventListener('click', () => {\n MenuPage.close();\n });\n }\n\n render () {\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn('Recover Account');\n\n MenuPage.setPageTemplateContent(`\n
\n
\n
\n \n Success!\n
\n
Your account has been recovered and you are now logged in.
\n
\n \n
\n \n
\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {ConfirmTemplate} from \"../templates/ConfirmTemplate\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class LogoutAssetsWarningViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {PlayerAddress} playerAddress\n */\n constructor(gameState, playerAddress) {\n super();\n this.gameState = gameState;\n this.playerAddress = playerAddress;\n this.isPrimaryDevice = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.primary_address === this.playerAddress.address;\n }\n\n render() {\n const view = new ConfirmTemplate();\n\n view.headerBtnLabel = 'Manage Device';\n\n view.messageHeaderColorClass = 'sui-mod-warning';\n view.messageHeaderIconClass = 'icon-alert';\n view.messageHeaderText = 'IMPORTANT';\n view.messageBody1HTML = `\n The following assets are associated with this device. If this device is logged out, these assets will be migrated to your \n Primary Account Address.\n `;\n view.messageBody2HTML = `\n \n ${this.playerAddress.alpha}x\n \n \n `;\n\n view.confirmBtn1Enabled = true;\n view.confirmBtn1Label = 'Stay Logged In';\n view.confirmBtn1ColorClass = 'sui-mod-primary';\n\n view.confirmBtn2Enabled = true;\n view.confirmBtn2Label = 'Log Out Now';\n view.confirmBtn2ColorClass = 'sui-mod-destructive';\n\n view.initPageCode = () => {\n document.getElementById(view.confirmBtn1Id).addEventListener('click', () => {\n MenuPage.router.back();\n });\n document.getElementById(view.confirmBtn2Id).addEventListener('click', () => {\n if (this.playerAddress.isOnlyManagingDevice) {\n MenuPage.router.goto('Auth', 'logoutPermissionsWarning');\n } else if (this.isPrimaryDevice) {\n MenuPage.router.goto('Auth', 'logout');\n } else {\n MenuPage.router.goto('Auth', 'logout', this.playerAddress);\n }\n });\n };\n\n view.render();\n }\n}","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {ConfirmTemplate} from \"../templates/ConfirmTemplate\";\n\nexport class LogoutPermissionsWarningViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {PlayerAddress} playerAddress\n */\n constructor(gameState, playerAddress) {\n super();\n this.gameState = gameState;\n this.playerAddress = playerAddress;\n }\n\n render() {\n const view = new ConfirmTemplate();\n\n view.headerBtnLabel = 'Manage Device';\n\n view.messageHeaderColorClass = 'sui-mod-warning';\n view.messageHeaderIconClass = 'icon-alert';\n view.messageHeaderText = 'IMPORTANT';\n view.messageBody1HTML = `\n This is the only device with Manage Device permissions active. If these permissions are removed, you will be unable to activate new devices without using your\n Recovery Key.\n `;\n\n view.confirmBtn1Enabled = true;\n view.confirmBtn1Label = 'Save Changes';\n view.confirmBtn1ColorClass = 'sui-mod-primary';\n\n view.confirmBtn2Enabled = true;\n view.confirmBtn2Label = 'Cancel';\n view.confirmBtn2ColorClass = 'sui-mod-destructive';\n\n view.initPageCode = () => {\n document.getElementById(view.confirmBtn1Id).addEventListener('click', () => {\n if (this.isPrimaryDevice) {\n MenuPage.router.goto('Auth', 'logout');\n } else {\n MenuPage.router.goto('Auth', 'logout', this.playerAddress);\n }\n });\n document.getElementById(view.confirmBtn2Id).addEventListener('click', () => {\n MenuPage.router.back();\n });\n };\n\n view.render();\n }\n}","import {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class ConnectingToCorp1ViewModel extends AbstractViewModel {\n\n initPageCode() {\n document.getElementById('glitch-logo-fade').addEventListener('animationstart', () => {\n MenuPage.router.goto('Auth', 'signupConnectingToCorporate2');\n });\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'Connecting...'\n )\n ];\n MenuPage.setNavItems(navItems);\n MenuPage.disableCloseBtn()\n\n MenuPage.setBodyContent(`\n
\n
\n
\n
\n `);\n\n MenuPage.setDialogueIndicatorContent(``);\n MenuPage.setDialogueScreenContent(`Connecting to Corporate Database...`);\n MenuPage.disableDialogueBtnB();\n MenuPage.disableDialogueBtnA();\n MenuPage.showDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class ConnectingToCorp2ViewModel extends AbstractViewModel {\n\n initPageCode() {\n setTimeout(() => {\n MenuPage.router.goto('Auth', 'signupIncomingCall1');\n }, 4000);\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'SN.Corporation'\n )\n ];\n MenuPage.setNavItems(navItems);\n\n document.getElementById('snc-logo-wrapper').innerHTML = `\n \"SNC\n

WE KNOW BETTER.

\n `;\n\n MenuPage.setDialogueIndicatorContent(``, true);\n MenuPage.setDialogueScreenContent(`Connection Successful.`, true);\n MenuPage.showDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class IncomingCall1ViewModel extends AbstractViewModel {\n\n initLottieAnimations() {\n const {lottie} = window;\n const {loadAnimation} = lottie;\n loadAnimation({\n container: document.getElementById('lottie-scan-lines'),\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/lottie/transition-scan-lines/data.json'\n });\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'Incoming Call'\n )\n ];\n MenuPage.setNavItems(navItems);\n MenuPage.disableCloseBtn();\n\n MenuPage.setBodyContent(`\n
\n
\n
\n
\n \n
\n `);\n\n MenuPage.setDialogueIndicatorContent(``, true);\n MenuPage.setDialogueScreenContent(`Alert: Priority Call`, true);\n MenuPage.dialogueBtnAHandler = () => {\n MenuPage.router.goto('Auth', 'signupIncomingCall2');\n };\n MenuPage.enableDialogueBtnA();\n MenuPage.showDialoguePanel();\n\n this.initLottieAnimations();\n }\n}","import {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class IncomingCall2ViewModel extends AbstractViewModel {\n initLottieAnimations() {\n const {lottie} = window;\n const {loadAnimation} = lottie;\n loadAnimation({\n container: document.getElementById('hrbot-talking-large'),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: '/lottie/hr-bot/data.json'\n });\n }\n\n initPageCode() {\n setTimeout(() => {\n MenuPage.router.goto('Auth', 'signupIncomingCall3');\n }, 800);\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'Connecting...'\n )\n ];\n MenuPage.setNavItems(navItems);\n\n MenuPage.setBodyContent(`\n
\n
\n \n
\n `);\n\n MenuPage.disableDialogueBtnA();\n\n this.initLottieAnimations();\n\n this.initPageCode();\n }\n}","import {HRBotTalkingTemplate} from \"../templates/HRBotTalkingTemplate\";\nimport {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class IncomingCall3ViewModel extends AbstractViewModel {\n render() {\n const view = new HRBotTalkingTemplate();\n view.dialogueSequence = [\n `SN.CORP: Greetings, SN.CORPORATION employee. I am your designated Synthetic Resources Officer.`,\n `I have been tasked with assisting you as you complete your Employee Orientation.`\n ];\n view.actionOnSequenceEnd = () => {\n MenuPage.router.goto('Auth', 'signupSetUsername');\n }\n view.render();\n }\n}\n","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class Orientation1ViewModel extends AbstractViewModel {\n\n initLottieAnimations() {\n const {lottie} = window;\n const {loadAnimation} = lottie;\n const scanLines = loadAnimation({\n container: document.getElementById('lottie-scan-lines'),\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/lottie/transition-scan-lines/data.json'\n });\n loadAnimation({\n container: document.getElementById('hrbot-talking-small'),\n renderer: 'svg',\n loop: true,\n autoplay: true,\n path: '/lottie/hr-bot/data.json'\n });\n\n scanLines.addEventListener('complete', () => {\n document.getElementById('lottie-scan-lines').classList.add('hidden');\n });\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'SN.Corporation'\n )\n ];\n MenuPage.setNavItems(navItems);\n MenuPage.disableCloseBtn();\n MenuPage.showNav();\n\n MenuPage.setBodyContent(`\n
\n
\n
\n
\n \n
\n
\n
\n
\n SN.CORPORATION\n
\n
\n Contract #8322\n
\n
\n \n
\n
\n \n
\n `);\n\n MenuPage.setDialogueIndicatorContent(`
`);\n MenuPage.setDialogueScreenContent(`Thank you. We can now begin your orientation.`);\n MenuPage.dialogueBtnAHandler = () => {\n MenuPage.router.goto('Auth', 'orientation2');\n };\n MenuPage.disableDialogueBtnB();\n MenuPage.enableDialogueBtnA();\n MenuPage.showDialoguePanel();\n\n this.initLottieAnimations()\n }\n}\n","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class Orientation2ViewModel extends AbstractViewModel {\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'SN.Corporation'\n )\n ];\n MenuPage.setNavItems(navItems);\n\n MenuPage.setBodyContent(`\n
\n\n
\n
\n \n
\n \"SNC\n

WE KNOW BETTER.

\n
\n \n
\n
\n \n
\n `);\n\n MenuPage.setDialogueScreenContent(\n `You have been contracted by SN.CORPORATION, a member of the \n Structs Conglomerate,\n to conduct Alpha Matter mining operations in the Milky Way Galaxy.`\n );\n MenuPage.dialogueBtnAHandler = () => {\n MenuPage.router.goto('Auth', 'orientation3');\n };\n }\n}\n","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class Orientation3ViewModel extends AbstractViewModel {\n\n initLottieAnimations() {\n const {lottie} = window;\n const {loadAnimation} = lottie;\n const scanLines = loadAnimation({\n container: document.getElementById('lottie-scan-lines'),\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/lottie/transition-scan-lines/data.json'\n });\n\n scanLines.addEventListener('complete', () => {\n document.getElementById('lottie-scan-lines').classList.add('hidden');\n });\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'SN.Corporation'\n )\n ];\n MenuPage.setNavItems(navItems);\n MenuPage.disableCloseBtn();\n MenuPage.showNav();\n\n MenuPage.setBodyContent(`\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n Alpha Matter\n
\n
\n Ap - 52.456u\n
\n
\n \n
\n
\n \n
\n `);\n\n MenuPage.setDialogueScreenContent(\n `Alpha Matter\n is a rare and powerful substance that fuels galactic civilization. Unfortunately, it is dangerously unstable.`\n );\n MenuPage.dialogueBtnAHandler = () => {\n MenuPage.router.goto('Auth', 'orientation4');\n };\n\n this.initLottieAnimations();\n }\n}\n","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class Orientation4ViewModel extends AbstractViewModel {\n\n initLottieAnimations() {\n const {lottie} = window;\n const {loadAnimation} = lottie;\n const scanLines = loadAnimation({\n container: document.getElementById('lottie-scan-lines'),\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/lottie/transition-scan-lines/data.json'\n });\n const hoagExplosion = loadAnimation({\n container: document.getElementById('lottie-hoag-explosion'),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: '/lottie/hoag-explosion/data.json'\n });\n\n setTimeout(() => {\n hoagExplosion.play();\n }, 1000);\n\n scanLines.addEventListener('complete', () => {\n document.getElementById('lottie-scan-lines').classList.add('hidden');\n });\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'SN.Corporation'\n )\n ];\n MenuPage.setNavItems(navItems);\n MenuPage.disableCloseBtn();\n MenuPage.showNav();\n\n MenuPage.setBodyContent(`\n
\n
\n
\n
\n
\n
\n
\n
\n
\n Trydor,
\n Hoag System\n
\n
\n
\n
\n
\n `);\n\n MenuPage.setDialogueScreenContent(\n `Improper handling of Alpha Matter during the Hoag Incident resulted in \n catastrophic loss of life.`\n );\n MenuPage.dialogueBtnAHandler = () => {\n MenuPage.router.goto('Auth', 'orientation5');\n };\n\n this.initLottieAnimations();\n }\n}\n","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class Orientation5ViewModel extends AbstractViewModel {\n\n initLottieAnimations() {\n const {lottie} = window;\n const {loadAnimation} = lottie;\n const scanLines = loadAnimation({\n container: document.getElementById('lottie-scan-lines'),\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/lottie/transition-scan-lines/data.json'\n });\n\n scanLines.addEventListener('complete', () => {\n document.getElementById('lottie-scan-lines').classList.add('hidden');\n });\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'SN.Corporation'\n )\n ];\n MenuPage.setNavItems(navItems);\n MenuPage.disableCloseBtn();\n MenuPage.showNav();\n\n MenuPage.setBodyContent(`\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n Mining Regulations\n
\n
\n See file: Ref_72426B.dx\n
\n
\n
\n
\n \n
\n `);\n\n MenuPage.setDialogueScreenContent(\n `Following the incident, the \n Alpha Star Council\n banned sentient lifeforms from operating Alpha mining colonies.`\n );\n MenuPage.dialogueBtnAHandler = () => {\n MenuPage.router.goto('Auth', 'orientation6');\n };\n\n this.initLottieAnimations();\n }\n}\n","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {MenuPage} from \"../../framework/MenuPage\";\nimport {OrientationStructDeployedTemplate} from \"../templates/OrientationStructDeployedTemplate\";\n\nexport class Orientation6ViewModel extends AbstractViewModel {\n\n render() {\n const view = new OrientationStructDeployedTemplate();\n\n view.bodyTextSequence = {\n 0: `Galactic Codex Entry #2722`,\n 1: `Status: DISPUTED`,\n };\n\n view.dialogueSequence = [\n `For this reason, Alpha mining operations are now conducted by a race of advanced machines known as\n Structs.`,\n\n `Structs are not officially recognized as sentient lifeforms by the Alpha Star Council, granting them sole access to Alpha-laced worlds.`\n ];\n\n view.actionOnSequenceEnd = () => {\n MenuPage.router.goto('Auth', 'orientation7');\n }\n\n view.render();\n }\n}\n","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class Orientation7ViewModel extends AbstractViewModel {\n\n initLottieAnimations() {\n const {lottie} = window;\n const {loadAnimation} = lottie;\n const scanLines = loadAnimation({\n container: document.getElementById('lottie-scan-lines'),\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/lottie/transition-scan-lines/data.json'\n });\n loadAnimation({\n container: document.getElementById('hrbot-talking-small'),\n renderer: 'svg',\n loop: true,\n autoplay: true,\n path: '/lottie/hr-bot/data.json'\n });\n loadAnimation({\n container: document.getElementById('lottie-ship-passing-planet'),\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/lottie/ship-passing-planet/data.json'\n });\n\n scanLines.addEventListener('complete', () => {\n document.getElementById('lottie-scan-lines').classList.add('hidden');\n });\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'SN.Corporation'\n )\n ];\n MenuPage.setNavItems(navItems);\n MenuPage.disableCloseBtn();\n MenuPage.showNav();\n\n MenuPage.setBodyContent(`\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n `);\n\n MenuPage.setDialogueIndicatorContent(`
`);\n MenuPage.setDialogueScreenContent(`Your task is to deploy Structs to uncharted worlds across the galaxy and harvest Alpha Matter on behalf of SN.CORPORATION.`);\n MenuPage.dialogueBtnAHandler = () => {\n MenuPage.router.goto('Auth', 'orientation8');\n };\n MenuPage.disableDialogueBtnB();\n MenuPage.enableDialogueBtnA();\n MenuPage.showDialoguePanel();\n\n this.initLottieAnimations()\n }\n}\n","import {HRBotTalkingTemplate} from \"../templates/HRBotTalkingTemplate\";\nimport {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class Orientation8ViewModel extends AbstractViewModel {\n render() {\n const view = new HRBotTalkingTemplate();\n view.startWithScanLines = true;\n view.dialogueSequence = [\n `SN.CORPORATION accepts no responsibility for damages incurred during Alpha mining operations, including but not limited to...`,\n `...piracy, corporate espionage, raids, Alpha-tear events, acts of cosmic beings, interplanetary warf... (See full message: 602,1023 pages)`\n ];\n view.actionOnSequenceEnd = () => {\n MenuPage.router.goto('Auth', 'orientationEnd');\n }\n view.render();\n }\n}","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class OrientationEndViewModel extends AbstractViewModel {\n\n initLottieAnimations() {\n const {lottie} = window;\n const {loadAnimation} = lottie;\n const scanLines = loadAnimation({\n container: document.getElementById('lottie-scan-lines'),\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/lottie/transition-scan-lines/data.json'\n });\n loadAnimation({\n container: document.getElementById('hrbot-talking-small'),\n renderer: 'svg',\n loop: true,\n autoplay: true,\n path: '/lottie/hr-bot/data.json'\n });\n\n scanLines.addEventListener('complete', () => {\n document.getElementById('lottie-scan-lines').classList.add('hidden');\n });\n }\n\n initPageCode() {\n document.getElementById('beginOperations').addEventListener('click', () => {\n console.log('begin operations');\n MenuPage.close();\n });\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'SN.Corporation'\n )\n ];\n MenuPage.setNavItems(navItems);\n MenuPage.disableCloseBtn();\n MenuPage.showNav();\n\n MenuPage.setBodyContent(`\n
\n
\n
\n
\n \n
\n
Orientation Complete
\n
\n \n
\n
\n \n
\n `);\n\n MenuPage.setDialogueIndicatorContent(`
`);\n MenuPage.setDialogueScreenContent(\n `Your orientation has now been completed. It is time for you to commence operations on your first planet.`\n );\n MenuPage.clearDialogueBtnAHandler();\n MenuPage.clearDialogueBtnBHandler();\n MenuPage.disableDialogueBtnA();\n MenuPage.disableDialogueBtnB();\n\n this.initLottieAnimations();\n this.initPageCode();\n }\n}\n","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {PageHeader} from \"../templates/partials/PageHeader\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class RecoveryKeyConfirmationViewModel extends AbstractViewModel {\n /**\n * @param {GameState} gameState\n * @param {AuthManager} authManager\n */\n constructor(\n gameState,\n authManager\n ) {\n super();\n this.gameState = gameState;\n this.authManager = authManager;\n }\n\n initPageCode() {\n const recoveryKeyInput = document.getElementById('recovery-key-input');\n recoveryKeyInput.addEventListener('keyup', () => {\n const submitBtn = document.getElementById('submit-btn');\n\n if (recoveryKeyInput.value.length > 0 && submitBtn.classList.contains('sui-mod-disabled')) {\n submitBtn.disabled = false;\n submitBtn.classList.remove('sui-mod-disabled');\n submitBtn.classList.add('sui-mod-primary');\n } else if (recoveryKeyInput.value.length === 0 && submitBtn.classList.contains('sui-mod-primary')) {\n submitBtn.disabled = true;\n submitBtn.classList.remove('sui-mod-primary');\n submitBtn.classList.add('sui-mod-disabled');\n }\n });\n\n const submitBtnHandler = () => {\n const recoveryKeyInput = document.getElementById('recovery-key-input');\n recoveryKeyInput.value = recoveryKeyInput.value.replace(/\\s\\s+/g, ' ');\n\n if (recoveryKeyInput.value !== this.gameState.mnemonic) {\n\n MenuPage.router.goto('Auth', 'signupRecoveryKeyConfirmFail', {view: 'CONFIRM_FAIL'});\n\n } else {\n\n this.authManager.signup(this.gameState.mnemonic).then((success) => {\n if (success) {\n this.gameState.save();\n\n MenuPage.router.goto('Auth', 'signupSuccess');\n } else {\n MenuPage.router.goto('Auth', 'signupRecoveryKeyConfirmFail', {view: 'CONFIRM_FAIL'});\n }\n });\n\n }\n };\n\n document.getElementById('submit-btn').addEventListener('click', submitBtnHandler);\n recoveryKeyInput.addEventListener('keyup', (e) => {\n if (e.key === 'Enter') {\n submitBtnHandler();\n }\n });\n }\n\n async render() {\n const pageHeader = new PageHeader();\n pageHeader.pageLabel = 'Confirm Recovery Key';\n pageHeader.showBackButton = true;\n pageHeader.backButtonHandler = () => {\n MenuPage.router.goto('Auth', 'signupRecoveryKeyCreation');\n };\n\n MenuPage.hideAndClearNav();\n\n MenuPage.setBodyContent(`\n
\n \n ${pageHeader.render()}\n \n
\n
\n
To confirm your Recovery Key, enter each word, in order, separated by spaces.
\n
\n
\n \n \n
\n
\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n pageHeader.init();\n this.initPageCode();\n }\n}","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {PageHeader} from \"../templates/partials/PageHeader\";\n\nexport class RecoveryKeyCreationViewModel extends AbstractViewModel {\n\n /**\n * @param mnemonic\n */\n constructor(mnemonic) {\n super();\n this.mnemonic = mnemonic;\n }\n\n /**\n * @param {string} mnemonic\n * @return {string} html\n */\n renderRecoveryKeyHtml(mnemonic) {\n const mnemonicArray = mnemonic.split(' ');\n\n let html = `
`;\n\n for (let i = 0; i < mnemonicArray.length; i++) {\n html += `\n
\n ${i + 1}\n ${mnemonicArray[i]}\n
\n `;\n }\n\n html += `
`;\n\n return html;\n }\n\n initPageCode() {\n document.getElementById('display-recovery-key-btn').addEventListener('click', () => {\n document.getElementById('display-recovery-key-btn').classList.add('hidden');\n document.getElementById('recovery-key').classList.remove('hidden');\n\n const writtenDownBtn = document.getElementById('written-down-btn');\n writtenDownBtn.classList.remove('sui-mod-disabled');\n writtenDownBtn.classList.add('sui-mod-primary');\n writtenDownBtn.disabled = false;\n });\n\n document.getElementById('written-down-btn').addEventListener('click', () => {\n MenuPage.router.goto('Auth', 'signupRecoveryKeyConfirmation');\n });\n }\n\n /**\n * @param {string} pageLabel\n * @param {boolean} showBackButton\n * @param {function} backButtonHandler\n * @param {string} messageHtml\n * @param {string} writtenDownBtnLabel\n * @param {function} customCodeCallback\n */\n renderPage(\n pageLabel,\n showBackButton,\n backButtonHandler,\n messageHtml,\n writtenDownBtnLabel,\n customCodeCallback = () => {}\n ) {\n const recoveryKeyHtml = this.renderRecoveryKeyHtml(this.mnemonic);\n\n const pageHeader = new PageHeader();\n pageHeader.pageLabel = pageLabel;\n pageHeader.showBackButton = true;\n pageHeader.backButtonHandler = backButtonHandler;\n\n MenuPage.hideAndClearNav();\n\n MenuPage.setBodyContent(`\n
\n \n ${pageHeader.render()}\n \n
\n
\n ${messageHtml}\n
\n
\n \n \n Display Recovery Key\n \n ${ recoveryKeyHtml }\n
\n
\n \n
\n
\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n pageHeader.init();\n\n customCodeCallback();\n }\n\n renderCreationView() {\n this.renderPage(\n 'Create Recovery Key',\n false,\n () => {},\n `\n
Write down your 12-word Recovery Key and keep it in a safe place. You will need this Key to recover your account if you log out or clear your browser cache.
\n Learn More About Recovery Keys\n `,\n `I've Written It Down`,\n () => {\n document.getElementById('recovery-key-faq-link').addEventListener('click', () => {\n MenuPage.router.goto(\n 'Auth',\n 'signupRecoveryKeyFaq',\n {\n backButtonHandler: () => {\n MenuPage.router.goto('Auth', 'signupRecoveryKeyCreation');\n }\n }\n );\n });\n }\n );\n }\n\n renderConfirmFail() {\n this.renderPage(\n 'Confirm Recovery Key',\n true,\n () => {\n MenuPage.router.goto('Auth', 'signupRecoveryKeyConfirmation');\n },\n `\n
\n \n Incorrect Recovery Key\n
\n
Please review the exact spelling and order of your 12-word Recovery Key below, then try again.
\n `,\n `Try Again`\n );\n }\n\n render(view = 'CREATION') {\n if (view === 'CREATION') {\n this.renderCreationView();\n } else if (view === 'CONFIRM_FAIL') {\n this.renderConfirmFail();\n }\n console.log(this.mnemonic);\n }\n}","import {PageHeader} from \"../templates/partials/PageHeader\";\nimport {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class RecoveryKeyFaqViewModel extends AbstractViewModel {\n\n /**\n * @param {function} backButtonHandler\n */\n constructor(backButtonHandler) {\n super();\n this.backButtonHandler = backButtonHandler;\n this.loginFromAnotherDeviceLinkId = 'recovery-key-faq-login-from-another-device-link';\n }\n\n initPageCode() {\n document.getElementById(this.loginFromAnotherDeviceLinkId).addEventListener('click', () => {\n MenuPage.router.goto('Auth', 'loginActivateDevice');\n });\n }\n\n render() {\n const pageHeader = new PageHeader();\n pageHeader.pageLabel = 'About Recovery Keys';\n pageHeader.showBackButton = true;\n pageHeader.backButtonHandler = this.backButtonHandler;\n\n MenuPage.hideAndClearNav();\n\n MenuPage.setBodyContent(`\n
\n \n ${pageHeader.render()}\n \n
\n
\n
What is a Recovery Key?
\n
Your recovery key is the 12-word secrect code that was given to you created your account.
\n
\n
\n
Why do I need my Recovery Key?
\n
In the event that you lose access to your account, you can use your Recovery Key to log in.
\n
\n
\n
How can I protect my Recovery Key?
\n
It is important to write down your Recovery Key and keep it in a safe place. You may also consider saving your Recovery Key to a password manager. We do not store Recovery Keys and cannot help you retrieve your Key if you lose it.
\n
\n
\n
I want to log in on a new device. Do I need my recovery Key?
\n
No. If you currently have access to a logged-in device, you can log in a new device by using the Login From Another Device option.
\n
\n Note: this option is only available if the logged-in device has Account Management permissions.
\n
\n If you have no currently logged-in devices with Account Management permissions, you will need to use your Recovery Key to log in again.\n
\n
\n
\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n pageHeader.init();\n this.initPageCode();\n }\n}","import {HRBotTalkingTemplate} from \"../templates/HRBotTalkingTemplate\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class RecoveryKeyIntroViewModel {\n render() {\n const view = new HRBotTalkingTemplate();\n view.startWithScanLines = true;\n view.dialogueSequence = [\n `Next, you will create a Recovery Key for your account. This Key allows you to recover your account in the event that you lose access.`,\n ];\n view.actionOnSequenceEnd = () => {\n MenuPage.router.goto('Auth', 'signupRecoveryKeyCreation');\n }\n view.render();\n }\n}","import {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\nimport {USERNAME_PATTERN} from \"../../constants/RegexPattern\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class SetUsernameViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super();\n this.gameState = gameState;\n }\n\n initLottieAnimations() {\n const {lottie} = window;\n const {loadAnimation} = lottie;\n const scanLines = loadAnimation({\n container: document.getElementById('lottie-scan-lines'),\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/lottie/transition-scan-lines/data.json'\n });\n loadAnimation({\n container: document.getElementById('hrbot-talking-small'),\n renderer: 'svg',\n loop: true,\n autoplay: true,\n path: '/lottie/hr-bot/data.json'\n });\n\n scanLines.addEventListener('complete', () => {\n document.getElementById('lottie-scan-lines').classList.add('hidden');\n });\n }\n\n initPageCode() {\n const usernameInput = document.getElementById('username-input');\n usernameInput.addEventListener('keyup', () => {\n const submitBtn = document.getElementById('submit-btn');\n\n if (usernameInput.value.length > 0 && submitBtn.classList.contains('sui-mod-disabled')) {\n submitBtn.disabled = false;\n submitBtn.classList.remove('sui-mod-disabled');\n submitBtn.classList.add('sui-mod-primary');\n } else if (usernameInput.value.length === 0 && submitBtn.classList.contains('sui-mod-primary')) {\n submitBtn.disabled = true;\n submitBtn.classList.remove('sui-mod-primary');\n submitBtn.classList.add('sui-mod-disabled');\n }\n });\n\n const submitBtnHandler = () => {\n const usernameInput = document.getElementById('username-input');\n\n if (!USERNAME_PATTERN.test(usernameInput.value)) {\n MenuPage.setDialogueScreenContent(`Only letters, numbers, - and _ are allowed. Length must be between 3 and 20 characters.`, true);\n } else {\n this.gameState.signupRequest.username = document.getElementById('username-input').value;\n\n this.renderSuccessfulSubmission();\n }\n };\n\n document.getElementById('submit-btn').addEventListener('click', submitBtnHandler);\n usernameInput.addEventListener('keyup', (e) => {\n if (e.key === 'Enter') {\n submitBtnHandler();\n }\n });\n }\n\n renderSuccessfulSubmission() {\n const setUsernameNameSection = document.getElementById('set-username-name-section');\n\n setUsernameNameSection.classList.remove('set-username-input-mode');\n setUsernameNameSection.classList.add('set-username-display-mode');\n\n setUsernameNameSection.innerHTML = `\n

${this.gameState.signupRequest.username}

\n
Profile Created
\n `;\n\n MenuPage.setDialogueScreenContent(`Welcome, ${this.gameState.signupRequest.username}.`, true);\n MenuPage.dialogueBtnAHandler = () => {\n MenuPage.router.goto('Auth', 'signupRecoveryKeyIntro');\n };\n MenuPage.enableDialogueBtnA();\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'SN.Corporation'\n )\n ];\n MenuPage.setNavItems(navItems);\n\n MenuPage.setBodyContent(`\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n `);\n\n MenuPage.setDialogueIndicatorContent(`
`);\n MenuPage.setDialogueScreenContent(`To begin, please confirm your identity.`, true);\n MenuPage.clearDialogueBtnAHandler();\n MenuPage.clearDialogueBtnBHandler();\n MenuPage.disableDialogueBtnA();\n MenuPage.disableDialogueBtnB();\n MenuPage.showDialoguePanel();\n\n this.initLottieAnimations()\n\n this.initPageCode();\n }\n}","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {PageHeader} from \"../templates/partials/PageHeader\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class SignupSuccessViewModel extends AbstractViewModel {\n\n initPageCode() {\n document.getElementById('return-to-game-btn').addEventListener('click', () => {\n MenuPage.router.goto('Auth', 'loggingIn');\n });\n }\n\n render() {\n const pageHeader = new PageHeader();\n pageHeader.pageLabel = 'Success!';\n\n MenuPage.hideAndClearNav();\n\n MenuPage.setBodyContent(`\n
\n \n ${pageHeader.render()}\n \n
\n
\n
\n \n Success!\n
\n
Your account has been created. Keep your Recovery Key safe; you will need it if you lose access to your account.
\n
\n
\n \n
\n
\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}","import {MenuPage} from \"../../framework/MenuPage\";\n\nexport class ConfirmTemplate {\n\n constructor() {\n this.showResources = false;\n\n this.headerBtnLabel = '';\n this.headerShowBackBtn = false;\n this.headerBackBtnHandler = () => {};\n\n this.messageHeaderColorClass = '';\n this.messageHeaderIconClass = '';\n this.messageHeaderText = '';\n this.messageBody1HTML = '';\n this.messageBody2HTML = '';\n\n this.confirmBtn1Enabled = false;\n this.confirmBtn1Id = 'confirm-template-btn-1';\n this.confirmBtn1Label = '';\n this.confirmBtn1ColorClass = '';\n\n this.confirmBtn2Enabled = false;\n this.confirmBtn2Id = 'confirm-template-btn-2';\n this.confirmBtn2Label = '';\n this.confirmBtn2ColorClass = '';\n\n this.initPageCode = () => {};\n }\n\n render() {\n MenuPage.enablePageTemplate(\n MenuPage.navItemAccountId,\n this.showResources\n );\n\n MenuPage.setPageTemplateHeaderBtn(\n this.headerBtnLabel,\n this.headerShowBackBtn,\n this.headerBackBtnHandler\n );\n\n let confirmBtn1HTML = '';\n let confirmBtn2HTML = '';\n\n if (this.confirmBtn1Enabled) {\n confirmBtn1HTML = `\n
\n \n
\n `;\n }\n\n if (this.confirmBtn2Enabled) {\n confirmBtn2HTML = `\n
\n \n
\n `;\n }\n\n MenuPage.setPageTemplateContent(`\n
\n
\n
\n \n ${this.messageHeaderText}\n
\n
${this.messageBody1HTML}
\n
\n \n
${this.messageBody2HTML}
\n \n
\n ${confirmBtn1HTML}\n ${confirmBtn2HTML}\n
\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}","import {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class HRBotTalkingTemplate {\n\n constructor() {\n this.dialogueSequence = [];\n this.dialogueIndex = 0;\n this.actionOnSequenceEnd = () => {};\n this.startWithScanLines = false;\n this.initPageCode = () => {};\n }\n\n initLottieAnimations() {\n const {lottie} = window;\n const {loadAnimation} = lottie;\n\n if (this.startWithScanLines) {\n\n const scanLines = loadAnimation({\n container: document.getElementById('lottie-scan-lines'),\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/lottie/transition-scan-lines/data.json'\n });\n scanLines.addEventListener('complete', () => {\n document.getElementById('lottie-scan-lines').classList.add('hidden');\n });\n\n }\n\n const lottieHRBotLarge = loadAnimation({\n container: document.getElementById('hrbot-talking-large'),\n renderer: 'svg',\n loop: true,\n autoplay: false,\n path: '/lottie/hr-bot/data.json'\n });\n const lottieHRBotSmall = loadAnimation({\n container: document.getElementById('hrbot-talking-small'),\n renderer: 'svg',\n loop: true,\n autoplay: false,\n path: '/lottie/hr-bot/data.json'\n });\n setTimeout(() => {\n lottieHRBotLarge.play();\n lottieHRBotSmall.play();\n }, 500);\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'SN.Corporation'\n )\n ];\n MenuPage.setNavItems(navItems);\n MenuPage.disableCloseBtn();\n\n MenuPage.setBodyContent(`\n
\n
\n
\n
\n
\n
\n `);\n\n MenuPage.setDialogueIndicatorContent(`
`, true);\n MenuPage.setDialogueScreenContent(this.dialogueSequence[0], true);\n\n MenuPage.disableDialogueBtnB();\n MenuPage.clearDialogueBtnBHandler();\n MenuPage.dialogueBtnAHandler = () => {\n this.dialogueIndex++;\n\n if (this.dialogueIndex < this.dialogueSequence.length) {\n MenuPage.setDialogueScreenContent(this.dialogueSequence[this.dialogueIndex], true);\n this.initPageCode();\n }\n\n if (this.dialogueIndex === this.dialogueSequence.length) {\n this.actionOnSequenceEnd();\n }\n };\n MenuPage.enableDialogueBtnA();\n MenuPage.showDialoguePanel();\n\n this.initLottieAnimations();\n this.initPageCode();\n }\n}","import {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class OrientationStructDeployedTemplate {\n\n constructor() {\n this.sequenceIndex = 0;\n\n this.dialogueSequence = []; // Dialogue always changes in the sequence index changes.\n\n // Objects allow you to specify which indexes the body text and page code should change.\n this.bodyTextSequence = {};\n this.pageCodeSequence = {};\n\n this.actionOnSequenceEnd = () => {};\n }\n\n initLottieAnimations() {\n const {lottie} = window;\n const {loadAnimation} = lottie;\n const scanLines = loadAnimation({\n container: document.getElementById('lottie-scan-lines'),\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/lottie/transition-scan-lines/data.json'\n });\n loadAnimation({\n container: document.getElementById('hrbot-talking-small'),\n renderer: 'svg',\n loop: true,\n autoplay: true,\n path: '/lottie/hr-bot/data.json'\n });\n\n scanLines.addEventListener('complete', () => {\n document.getElementById('lottie-scan-lines').classList.add('hidden');\n });\n }\n\n initPageCode() {\n if (this.pageCodeSequence[0]) {\n this.pageCodeSequence[0]();\n }\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'SN.Corporation'\n )\n ];\n MenuPage.setNavItems(navItems);\n MenuPage.disableCloseBtn();\n MenuPage.showNav();\n\n MenuPage.setBodyContent(`\n
\n\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n STRUCTS\n
\n
\n Galactic Codex Entry #2722\n
\n
\n
\n
\n
\n \n
\n `);\n\n MenuPage.setDialogueIndicatorContent(`
`);\n MenuPage.setDialogueScreenContent(\n `For this reason, Alpha mining operations are now conducted by a race of advanced machines knowns as\n Structs.`\n );\n MenuPage.dialogueBtnAHandler = () => {\n this.sequenceIndex++;\n\n if (this.sequenceIndex < this.dialogueSequence.length) {\n const bodyTextElm = document.getElementById('orientation-struct-deployment-body-text');\n bodyTextElm.innerHTML = this.bodyTextSequence[this.sequenceIndex];\n\n MenuPage.setDialogueScreenContent(this.dialogueSequence[this.sequenceIndex], true);\n\n if (this.pageCodeSequence[this.sequenceIndex]) {\n this.pageCodeSequence[this.sequenceIndex]();\n }\n }\n\n if (this.sequenceIndex === this.dialogueSequence.length) {\n this.actionOnSequenceEnd();\n }\n };\n MenuPage.disableDialogueBtnB();\n MenuPage.enableDialogueBtnA();\n MenuPage.showDialoguePanel();\n\n this.initLottieAnimations();\n this.initPageCode();\n }\n}","export class PageHeader {\n\n constructor() {\n this.pageLabel = '';\n this.showBackButton = false;\n this.backButtonHandler = () => {};\n }\n\n init() {\n document.getElementById('page-header-back-button').addEventListener('click', this.backButtonHandler);\n }\n\n render() {\n const backButtonIcon = this.showBackButton\n ? ``\n : '';\n const backButtonHref = this.showBackButton\n ? 'href=\"javascript: void(0)\"'\n : '';\n\n return `\n \n\n \n\n \n `;\n }\n}","import {MenuPage} from \"../../../framework/MenuPage\";\n\nexport class Pagination {\n\n constructor(\n currentPage,\n resultsPerPage,\n totalResults,\n idPrefix,\n targetController,\n targetAction,\n options = {}\n ) {\n this.currentPage = currentPage;\n this.resultsPerPage = resultsPerPage;\n this.totalResults = totalResults;\n this.totalPages = Math.ceil(this.totalResults / this.resultsPerPage);\n this.idPrefix = idPrefix;\n this.targetController = targetController;\n this.targetAction = targetAction;\n this.pageBtns = [];\n this.options = options;\n }\n\n init() {\n if (this.currentPage > 1) {\n document.getElementById(`${this.idPrefix}-pagi-prev-btn`).addEventListener('click', () => {\n MenuPage.router.goto(this.targetController, this.targetAction, {...this.options, page: this.currentPage - 1});\n });\n }\n\n if (this.currentPage < this.totalPages) {\n document.getElementById(`${this.idPrefix}-pagi-next-btn`).addEventListener('click', () => {\n MenuPage.router.goto(this.targetController, this.targetAction, {...this.options, page: this.currentPage + 1});\n });\n }\n\n this.pageBtns.forEach((pageBtnNumber) => {\n document.getElementById(`${this.idPrefix}-pagi-${pageBtnNumber}-btn`).addEventListener('click', () => {\n MenuPage.router.goto(this.targetController, this.targetAction, {...this.options, page: pageBtnNumber});\n });\n });\n }\n\n renderPreviousPageBtn() {\n if (this.currentPage === 1) {\n return '';\n }\n\n return `\n \n \n \n `;\n }\n\n renderNextPageBtn() {\n if (this.currentPage >= this.totalPages) {\n return '';\n }\n\n return `\n \n \n \n `;\n }\n\n\n renderPageBtn(label, isActive = false) {\n const activeClass = isActive ? 'sui-mod-active' : '';\n\n if (label === '...') {\n return `
...
`;\n }\n\n this.pageBtns.push(label);\n\n return `\n ${label}\n `;\n }\n\n renderNumberedPageBtns() {\n let btn1 = this.renderPageBtn(1, (this.currentPage === 1));\n let btn2 = '';\n let btn3 = '';\n let btn4 = '';\n let btn5 = '';\n\n if (this.totalPages >= 2) {\n if ((this.totalPages <= 5 || this.currentPage <= 3)) {\n btn2 = this.renderPageBtn(2, (this.currentPage === 2));\n } else {\n btn2 = this.renderPageBtn('...');\n }\n }\n\n if (this.totalPages >= 3) {\n if (this.totalPages <= 5 || this.currentPage <= 3) {\n btn3 = this.renderPageBtn(3, (this.currentPage === 3));\n } else if (this.currentPage > 3 && this.totalPages - this.currentPage > 2) {\n btn3 = this.renderPageBtn(this.currentPage, true);\n } else {\n btn3 = this.renderPageBtn('...');\n }\n }\n\n if (this.totalPages >= 4) {\n if (this.totalPages <= 5) {\n btn4 = this.renderPageBtn(4, (this.currentPage === 4));\n } else {\n btn4 = this.renderPageBtn('...');\n }\n }\n\n if (this.totalPages >= 5) {\n if (this.totalPages - this.currentPage <= 2) {\n btn3 = this.renderPageBtn(this.totalPages - 2, (this.currentPage === this.totalPages - 2));\n btn4 = this.renderPageBtn(this.totalPages - 1, (this.currentPage === this.totalPages - 1));\n }\n\n btn5 = this.renderPageBtn(this.totalPages, (this.currentPage === this.totalPages));\n }\n\n return `\n
\n ${btn1}${btn2}${btn3}${btn4}${btn5}\n
\n `;\n }\n\n render() {\n\n const previousPageBtn = this.renderPreviousPageBtn();\n const nextPageBtn = this.renderNextPageBtn();\n const pageBtns = this.renderNumberedPageBtns();\n\n return `\n \n\n
\n ${previousPageBtn}\n ${pageBtns}\n ${nextPageBtn}\n
\n\n \n `;\n }\n}","export class SystemModal {\n\n constructor() {\n this.systemModalId = 'system-modal';\n this.iconClasses = 'icon-deploy';\n this.messageId = 'system-modal-message';\n this.cancelBtnId = 'system-modal-cancel-btn';\n this.confirmBtnId = 'system-modal-confirm-btn';\n this.cancelBtnHandler = () => {\n this.hide();\n };\n this.confirmBtnHandler = () => {};\n this.cancelBtnLabel = 'Cancel';\n this.confirmBtnLabel = 'Confirm';\n }\n\n init() {\n document.getElementById(this.cancelBtnId).addEventListener('click', this.cancelBtnHandler);\n document.getElementById(this.confirmBtnId).addEventListener('click', this.confirmBtnHandler);\n }\n\n show() {\n document.getElementById(this.systemModalId).classList.remove('hidden');\n }\n\n hide() {\n document.getElementById(this.systemModalId).classList.add('hidden');\n }\n\n render() {\n return `\n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n ${this.confirmBtnLabel}\n
\n
\n
\n
\n \n \n `;\n }\n}","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bip39 = exports.EnglishMnemonic = void 0;\nexports.entropyToMnemonic = entropyToMnemonic;\nexports.mnemonicToEntropy = mnemonicToEntropy;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst pbkdf2_1 = require(\"./pbkdf2\");\nconst sha_1 = require(\"./sha\");\nconst wordlist = [\n \"abandon\",\n \"ability\",\n \"able\",\n \"about\",\n \"above\",\n \"absent\",\n \"absorb\",\n \"abstract\",\n \"absurd\",\n \"abuse\",\n \"access\",\n \"accident\",\n \"account\",\n \"accuse\",\n \"achieve\",\n \"acid\",\n \"acoustic\",\n \"acquire\",\n \"across\",\n \"act\",\n \"action\",\n \"actor\",\n \"actress\",\n \"actual\",\n \"adapt\",\n \"add\",\n \"addict\",\n \"address\",\n \"adjust\",\n \"admit\",\n \"adult\",\n \"advance\",\n \"advice\",\n \"aerobic\",\n \"affair\",\n \"afford\",\n \"afraid\",\n \"again\",\n \"age\",\n \"agent\",\n \"agree\",\n \"ahead\",\n \"aim\",\n \"air\",\n \"airport\",\n \"aisle\",\n \"alarm\",\n \"album\",\n \"alcohol\",\n \"alert\",\n \"alien\",\n \"all\",\n \"alley\",\n \"allow\",\n \"almost\",\n \"alone\",\n \"alpha\",\n \"already\",\n \"also\",\n \"alter\",\n \"always\",\n \"amateur\",\n \"amazing\",\n \"among\",\n \"amount\",\n \"amused\",\n \"analyst\",\n \"anchor\",\n \"ancient\",\n \"anger\",\n \"angle\",\n \"angry\",\n \"animal\",\n \"ankle\",\n \"announce\",\n \"annual\",\n \"another\",\n \"answer\",\n \"antenna\",\n \"antique\",\n \"anxiety\",\n \"any\",\n \"apart\",\n \"apology\",\n \"appear\",\n \"apple\",\n \"approve\",\n \"april\",\n \"arch\",\n \"arctic\",\n \"area\",\n \"arena\",\n \"argue\",\n \"arm\",\n \"armed\",\n \"armor\",\n \"army\",\n \"around\",\n \"arrange\",\n \"arrest\",\n \"arrive\",\n \"arrow\",\n \"art\",\n \"artefact\",\n \"artist\",\n \"artwork\",\n \"ask\",\n \"aspect\",\n \"assault\",\n \"asset\",\n \"assist\",\n \"assume\",\n \"asthma\",\n \"athlete\",\n \"atom\",\n \"attack\",\n \"attend\",\n \"attitude\",\n \"attract\",\n \"auction\",\n \"audit\",\n \"august\",\n \"aunt\",\n \"author\",\n \"auto\",\n \"autumn\",\n \"average\",\n \"avocado\",\n \"avoid\",\n \"awake\",\n \"aware\",\n \"away\",\n \"awesome\",\n \"awful\",\n \"awkward\",\n \"axis\",\n \"baby\",\n \"bachelor\",\n \"bacon\",\n \"badge\",\n \"bag\",\n \"balance\",\n \"balcony\",\n \"ball\",\n \"bamboo\",\n \"banana\",\n \"banner\",\n \"bar\",\n \"barely\",\n \"bargain\",\n \"barrel\",\n \"base\",\n \"basic\",\n \"basket\",\n \"battle\",\n \"beach\",\n \"bean\",\n \"beauty\",\n \"because\",\n \"become\",\n \"beef\",\n \"before\",\n \"begin\",\n \"behave\",\n \"behind\",\n \"believe\",\n \"below\",\n \"belt\",\n \"bench\",\n \"benefit\",\n \"best\",\n \"betray\",\n \"better\",\n \"between\",\n \"beyond\",\n \"bicycle\",\n \"bid\",\n \"bike\",\n \"bind\",\n \"biology\",\n \"bird\",\n \"birth\",\n \"bitter\",\n \"black\",\n \"blade\",\n \"blame\",\n \"blanket\",\n \"blast\",\n \"bleak\",\n \"bless\",\n \"blind\",\n \"blood\",\n \"blossom\",\n \"blouse\",\n \"blue\",\n \"blur\",\n \"blush\",\n \"board\",\n \"boat\",\n \"body\",\n \"boil\",\n \"bomb\",\n \"bone\",\n \"bonus\",\n \"book\",\n \"boost\",\n \"border\",\n \"boring\",\n \"borrow\",\n \"boss\",\n \"bottom\",\n \"bounce\",\n \"box\",\n \"boy\",\n \"bracket\",\n \"brain\",\n \"brand\",\n \"brass\",\n \"brave\",\n \"bread\",\n \"breeze\",\n \"brick\",\n \"bridge\",\n \"brief\",\n \"bright\",\n \"bring\",\n \"brisk\",\n \"broccoli\",\n \"broken\",\n \"bronze\",\n \"broom\",\n \"brother\",\n \"brown\",\n \"brush\",\n \"bubble\",\n \"buddy\",\n \"budget\",\n \"buffalo\",\n \"build\",\n \"bulb\",\n \"bulk\",\n \"bullet\",\n \"bundle\",\n \"bunker\",\n \"burden\",\n \"burger\",\n \"burst\",\n \"bus\",\n \"business\",\n \"busy\",\n \"butter\",\n \"buyer\",\n \"buzz\",\n \"cabbage\",\n \"cabin\",\n \"cable\",\n \"cactus\",\n \"cage\",\n \"cake\",\n \"call\",\n \"calm\",\n \"camera\",\n \"camp\",\n \"can\",\n \"canal\",\n \"cancel\",\n \"candy\",\n \"cannon\",\n \"canoe\",\n \"canvas\",\n \"canyon\",\n \"capable\",\n \"capital\",\n \"captain\",\n \"car\",\n \"carbon\",\n \"card\",\n \"cargo\",\n \"carpet\",\n \"carry\",\n \"cart\",\n \"case\",\n \"cash\",\n \"casino\",\n \"castle\",\n \"casual\",\n \"cat\",\n \"catalog\",\n \"catch\",\n \"category\",\n \"cattle\",\n \"caught\",\n \"cause\",\n \"caution\",\n \"cave\",\n \"ceiling\",\n \"celery\",\n \"cement\",\n \"census\",\n \"century\",\n \"cereal\",\n \"certain\",\n \"chair\",\n \"chalk\",\n \"champion\",\n \"change\",\n \"chaos\",\n \"chapter\",\n \"charge\",\n \"chase\",\n \"chat\",\n \"cheap\",\n \"check\",\n \"cheese\",\n \"chef\",\n \"cherry\",\n \"chest\",\n \"chicken\",\n \"chief\",\n \"child\",\n \"chimney\",\n \"choice\",\n \"choose\",\n \"chronic\",\n \"chuckle\",\n \"chunk\",\n \"churn\",\n \"cigar\",\n \"cinnamon\",\n \"circle\",\n \"citizen\",\n \"city\",\n \"civil\",\n \"claim\",\n \"clap\",\n \"clarify\",\n \"claw\",\n \"clay\",\n \"clean\",\n \"clerk\",\n \"clever\",\n \"click\",\n \"client\",\n \"cliff\",\n \"climb\",\n \"clinic\",\n \"clip\",\n \"clock\",\n \"clog\",\n \"close\",\n \"cloth\",\n \"cloud\",\n \"clown\",\n \"club\",\n \"clump\",\n \"cluster\",\n \"clutch\",\n \"coach\",\n \"coast\",\n \"coconut\",\n \"code\",\n \"coffee\",\n \"coil\",\n \"coin\",\n \"collect\",\n \"color\",\n \"column\",\n \"combine\",\n \"come\",\n \"comfort\",\n \"comic\",\n \"common\",\n \"company\",\n \"concert\",\n \"conduct\",\n \"confirm\",\n \"congress\",\n \"connect\",\n \"consider\",\n \"control\",\n \"convince\",\n \"cook\",\n \"cool\",\n \"copper\",\n \"copy\",\n \"coral\",\n \"core\",\n \"corn\",\n \"correct\",\n \"cost\",\n \"cotton\",\n \"couch\",\n \"country\",\n \"couple\",\n \"course\",\n \"cousin\",\n \"cover\",\n \"coyote\",\n \"crack\",\n \"cradle\",\n \"craft\",\n \"cram\",\n \"crane\",\n \"crash\",\n \"crater\",\n \"crawl\",\n \"crazy\",\n \"cream\",\n \"credit\",\n \"creek\",\n \"crew\",\n \"cricket\",\n \"crime\",\n \"crisp\",\n \"critic\",\n \"crop\",\n \"cross\",\n \"crouch\",\n \"crowd\",\n \"crucial\",\n \"cruel\",\n \"cruise\",\n \"crumble\",\n \"crunch\",\n \"crush\",\n \"cry\",\n \"crystal\",\n \"cube\",\n \"culture\",\n \"cup\",\n \"cupboard\",\n \"curious\",\n \"current\",\n \"curtain\",\n \"curve\",\n \"cushion\",\n \"custom\",\n \"cute\",\n \"cycle\",\n \"dad\",\n \"damage\",\n \"damp\",\n \"dance\",\n \"danger\",\n \"daring\",\n \"dash\",\n \"daughter\",\n \"dawn\",\n \"day\",\n \"deal\",\n \"debate\",\n \"debris\",\n \"decade\",\n \"december\",\n \"decide\",\n \"decline\",\n \"decorate\",\n \"decrease\",\n \"deer\",\n \"defense\",\n \"define\",\n \"defy\",\n \"degree\",\n \"delay\",\n \"deliver\",\n \"demand\",\n \"demise\",\n \"denial\",\n \"dentist\",\n \"deny\",\n \"depart\",\n \"depend\",\n \"deposit\",\n \"depth\",\n \"deputy\",\n \"derive\",\n \"describe\",\n \"desert\",\n \"design\",\n \"desk\",\n \"despair\",\n \"destroy\",\n \"detail\",\n \"detect\",\n \"develop\",\n \"device\",\n \"devote\",\n \"diagram\",\n \"dial\",\n \"diamond\",\n \"diary\",\n \"dice\",\n \"diesel\",\n \"diet\",\n \"differ\",\n \"digital\",\n \"dignity\",\n \"dilemma\",\n \"dinner\",\n \"dinosaur\",\n \"direct\",\n \"dirt\",\n \"disagree\",\n \"discover\",\n \"disease\",\n \"dish\",\n \"dismiss\",\n \"disorder\",\n \"display\",\n \"distance\",\n \"divert\",\n \"divide\",\n \"divorce\",\n \"dizzy\",\n \"doctor\",\n \"document\",\n \"dog\",\n \"doll\",\n \"dolphin\",\n \"domain\",\n \"donate\",\n \"donkey\",\n \"donor\",\n \"door\",\n \"dose\",\n \"double\",\n \"dove\",\n \"draft\",\n \"dragon\",\n \"drama\",\n \"drastic\",\n \"draw\",\n \"dream\",\n \"dress\",\n \"drift\",\n \"drill\",\n \"drink\",\n \"drip\",\n \"drive\",\n \"drop\",\n \"drum\",\n \"dry\",\n \"duck\",\n \"dumb\",\n \"dune\",\n \"during\",\n \"dust\",\n \"dutch\",\n \"duty\",\n \"dwarf\",\n \"dynamic\",\n \"eager\",\n \"eagle\",\n \"early\",\n \"earn\",\n \"earth\",\n \"easily\",\n \"east\",\n \"easy\",\n \"echo\",\n \"ecology\",\n \"economy\",\n \"edge\",\n \"edit\",\n \"educate\",\n \"effort\",\n \"egg\",\n \"eight\",\n \"either\",\n \"elbow\",\n \"elder\",\n \"electric\",\n \"elegant\",\n \"element\",\n \"elephant\",\n \"elevator\",\n \"elite\",\n \"else\",\n \"embark\",\n \"embody\",\n \"embrace\",\n \"emerge\",\n \"emotion\",\n \"employ\",\n \"empower\",\n \"empty\",\n \"enable\",\n \"enact\",\n \"end\",\n \"endless\",\n \"endorse\",\n \"enemy\",\n \"energy\",\n \"enforce\",\n \"engage\",\n \"engine\",\n \"enhance\",\n \"enjoy\",\n \"enlist\",\n \"enough\",\n \"enrich\",\n \"enroll\",\n \"ensure\",\n \"enter\",\n \"entire\",\n \"entry\",\n \"envelope\",\n \"episode\",\n \"equal\",\n \"equip\",\n \"era\",\n \"erase\",\n \"erode\",\n \"erosion\",\n \"error\",\n \"erupt\",\n \"escape\",\n \"essay\",\n \"essence\",\n \"estate\",\n \"eternal\",\n \"ethics\",\n \"evidence\",\n \"evil\",\n \"evoke\",\n \"evolve\",\n \"exact\",\n \"example\",\n \"excess\",\n \"exchange\",\n \"excite\",\n \"exclude\",\n \"excuse\",\n \"execute\",\n \"exercise\",\n \"exhaust\",\n \"exhibit\",\n \"exile\",\n \"exist\",\n \"exit\",\n \"exotic\",\n \"expand\",\n \"expect\",\n \"expire\",\n \"explain\",\n \"expose\",\n \"express\",\n \"extend\",\n \"extra\",\n \"eye\",\n \"eyebrow\",\n \"fabric\",\n \"face\",\n \"faculty\",\n \"fade\",\n \"faint\",\n \"faith\",\n \"fall\",\n \"false\",\n \"fame\",\n \"family\",\n \"famous\",\n \"fan\",\n \"fancy\",\n \"fantasy\",\n \"farm\",\n \"fashion\",\n \"fat\",\n \"fatal\",\n \"father\",\n \"fatigue\",\n \"fault\",\n \"favorite\",\n \"feature\",\n \"february\",\n \"federal\",\n \"fee\",\n \"feed\",\n \"feel\",\n \"female\",\n \"fence\",\n \"festival\",\n \"fetch\",\n \"fever\",\n \"few\",\n \"fiber\",\n \"fiction\",\n \"field\",\n \"figure\",\n \"file\",\n \"film\",\n \"filter\",\n \"final\",\n \"find\",\n \"fine\",\n \"finger\",\n \"finish\",\n \"fire\",\n \"firm\",\n \"first\",\n \"fiscal\",\n \"fish\",\n \"fit\",\n \"fitness\",\n \"fix\",\n \"flag\",\n \"flame\",\n \"flash\",\n \"flat\",\n \"flavor\",\n \"flee\",\n \"flight\",\n \"flip\",\n \"float\",\n \"flock\",\n \"floor\",\n \"flower\",\n \"fluid\",\n \"flush\",\n \"fly\",\n \"foam\",\n \"focus\",\n \"fog\",\n \"foil\",\n \"fold\",\n \"follow\",\n \"food\",\n \"foot\",\n \"force\",\n \"forest\",\n \"forget\",\n \"fork\",\n \"fortune\",\n \"forum\",\n \"forward\",\n \"fossil\",\n \"foster\",\n \"found\",\n \"fox\",\n \"fragile\",\n \"frame\",\n \"frequent\",\n \"fresh\",\n \"friend\",\n \"fringe\",\n \"frog\",\n \"front\",\n \"frost\",\n \"frown\",\n \"frozen\",\n \"fruit\",\n \"fuel\",\n \"fun\",\n \"funny\",\n \"furnace\",\n \"fury\",\n \"future\",\n \"gadget\",\n \"gain\",\n \"galaxy\",\n \"gallery\",\n \"game\",\n \"gap\",\n \"garage\",\n \"garbage\",\n \"garden\",\n \"garlic\",\n \"garment\",\n \"gas\",\n \"gasp\",\n \"gate\",\n \"gather\",\n \"gauge\",\n \"gaze\",\n \"general\",\n \"genius\",\n \"genre\",\n \"gentle\",\n \"genuine\",\n \"gesture\",\n \"ghost\",\n \"giant\",\n \"gift\",\n \"giggle\",\n \"ginger\",\n \"giraffe\",\n \"girl\",\n \"give\",\n \"glad\",\n \"glance\",\n \"glare\",\n \"glass\",\n \"glide\",\n \"glimpse\",\n \"globe\",\n \"gloom\",\n \"glory\",\n \"glove\",\n \"glow\",\n \"glue\",\n \"goat\",\n \"goddess\",\n \"gold\",\n \"good\",\n \"goose\",\n \"gorilla\",\n \"gospel\",\n \"gossip\",\n \"govern\",\n \"gown\",\n \"grab\",\n \"grace\",\n \"grain\",\n \"grant\",\n \"grape\",\n \"grass\",\n \"gravity\",\n \"great\",\n \"green\",\n \"grid\",\n \"grief\",\n \"grit\",\n \"grocery\",\n \"group\",\n \"grow\",\n \"grunt\",\n \"guard\",\n \"guess\",\n \"guide\",\n \"guilt\",\n \"guitar\",\n \"gun\",\n \"gym\",\n \"habit\",\n \"hair\",\n \"half\",\n \"hammer\",\n \"hamster\",\n \"hand\",\n \"happy\",\n \"harbor\",\n \"hard\",\n \"harsh\",\n \"harvest\",\n \"hat\",\n \"have\",\n \"hawk\",\n \"hazard\",\n \"head\",\n \"health\",\n \"heart\",\n \"heavy\",\n \"hedgehog\",\n \"height\",\n \"hello\",\n \"helmet\",\n \"help\",\n \"hen\",\n \"hero\",\n \"hidden\",\n \"high\",\n \"hill\",\n \"hint\",\n \"hip\",\n \"hire\",\n \"history\",\n \"hobby\",\n \"hockey\",\n \"hold\",\n \"hole\",\n \"holiday\",\n \"hollow\",\n \"home\",\n \"honey\",\n \"hood\",\n \"hope\",\n \"horn\",\n \"horror\",\n \"horse\",\n \"hospital\",\n \"host\",\n \"hotel\",\n \"hour\",\n \"hover\",\n \"hub\",\n \"huge\",\n \"human\",\n \"humble\",\n \"humor\",\n \"hundred\",\n \"hungry\",\n \"hunt\",\n \"hurdle\",\n \"hurry\",\n \"hurt\",\n \"husband\",\n \"hybrid\",\n \"ice\",\n \"icon\",\n \"idea\",\n \"identify\",\n \"idle\",\n \"ignore\",\n \"ill\",\n \"illegal\",\n \"illness\",\n \"image\",\n \"imitate\",\n \"immense\",\n \"immune\",\n \"impact\",\n \"impose\",\n \"improve\",\n \"impulse\",\n \"inch\",\n \"include\",\n \"income\",\n \"increase\",\n \"index\",\n \"indicate\",\n \"indoor\",\n \"industry\",\n \"infant\",\n \"inflict\",\n \"inform\",\n \"inhale\",\n \"inherit\",\n \"initial\",\n \"inject\",\n \"injury\",\n \"inmate\",\n \"inner\",\n \"innocent\",\n \"input\",\n \"inquiry\",\n \"insane\",\n \"insect\",\n \"inside\",\n \"inspire\",\n \"install\",\n \"intact\",\n \"interest\",\n \"into\",\n \"invest\",\n \"invite\",\n \"involve\",\n \"iron\",\n \"island\",\n \"isolate\",\n \"issue\",\n \"item\",\n \"ivory\",\n \"jacket\",\n \"jaguar\",\n \"jar\",\n \"jazz\",\n \"jealous\",\n \"jeans\",\n \"jelly\",\n \"jewel\",\n \"job\",\n \"join\",\n \"joke\",\n \"journey\",\n \"joy\",\n \"judge\",\n \"juice\",\n \"jump\",\n \"jungle\",\n \"junior\",\n \"junk\",\n \"just\",\n \"kangaroo\",\n \"keen\",\n \"keep\",\n \"ketchup\",\n \"key\",\n \"kick\",\n \"kid\",\n \"kidney\",\n \"kind\",\n \"kingdom\",\n \"kiss\",\n \"kit\",\n \"kitchen\",\n \"kite\",\n \"kitten\",\n \"kiwi\",\n \"knee\",\n \"knife\",\n \"knock\",\n \"know\",\n \"lab\",\n \"label\",\n \"labor\",\n \"ladder\",\n \"lady\",\n \"lake\",\n \"lamp\",\n \"language\",\n \"laptop\",\n \"large\",\n \"later\",\n \"latin\",\n \"laugh\",\n \"laundry\",\n \"lava\",\n \"law\",\n \"lawn\",\n \"lawsuit\",\n \"layer\",\n \"lazy\",\n \"leader\",\n \"leaf\",\n \"learn\",\n \"leave\",\n \"lecture\",\n \"left\",\n \"leg\",\n \"legal\",\n \"legend\",\n \"leisure\",\n \"lemon\",\n \"lend\",\n \"length\",\n \"lens\",\n \"leopard\",\n \"lesson\",\n \"letter\",\n \"level\",\n \"liar\",\n \"liberty\",\n \"library\",\n \"license\",\n \"life\",\n \"lift\",\n \"light\",\n \"like\",\n \"limb\",\n \"limit\",\n \"link\",\n \"lion\",\n \"liquid\",\n \"list\",\n \"little\",\n \"live\",\n \"lizard\",\n \"load\",\n \"loan\",\n \"lobster\",\n \"local\",\n \"lock\",\n \"logic\",\n \"lonely\",\n \"long\",\n \"loop\",\n \"lottery\",\n \"loud\",\n \"lounge\",\n \"love\",\n \"loyal\",\n \"lucky\",\n \"luggage\",\n \"lumber\",\n \"lunar\",\n \"lunch\",\n \"luxury\",\n \"lyrics\",\n \"machine\",\n \"mad\",\n \"magic\",\n \"magnet\",\n \"maid\",\n \"mail\",\n \"main\",\n \"major\",\n \"make\",\n \"mammal\",\n \"man\",\n \"manage\",\n \"mandate\",\n \"mango\",\n \"mansion\",\n \"manual\",\n \"maple\",\n \"marble\",\n \"march\",\n \"margin\",\n \"marine\",\n \"market\",\n \"marriage\",\n \"mask\",\n \"mass\",\n \"master\",\n \"match\",\n \"material\",\n \"math\",\n \"matrix\",\n \"matter\",\n \"maximum\",\n \"maze\",\n \"meadow\",\n \"mean\",\n \"measure\",\n \"meat\",\n \"mechanic\",\n \"medal\",\n \"media\",\n \"melody\",\n \"melt\",\n \"member\",\n \"memory\",\n \"mention\",\n \"menu\",\n \"mercy\",\n \"merge\",\n \"merit\",\n \"merry\",\n \"mesh\",\n \"message\",\n \"metal\",\n \"method\",\n \"middle\",\n \"midnight\",\n \"milk\",\n \"million\",\n \"mimic\",\n \"mind\",\n \"minimum\",\n \"minor\",\n \"minute\",\n \"miracle\",\n \"mirror\",\n \"misery\",\n \"miss\",\n \"mistake\",\n \"mix\",\n \"mixed\",\n \"mixture\",\n \"mobile\",\n \"model\",\n \"modify\",\n \"mom\",\n \"moment\",\n \"monitor\",\n \"monkey\",\n \"monster\",\n \"month\",\n \"moon\",\n \"moral\",\n \"more\",\n \"morning\",\n \"mosquito\",\n \"mother\",\n \"motion\",\n \"motor\",\n \"mountain\",\n \"mouse\",\n \"move\",\n \"movie\",\n \"much\",\n \"muffin\",\n \"mule\",\n \"multiply\",\n \"muscle\",\n \"museum\",\n \"mushroom\",\n \"music\",\n \"must\",\n \"mutual\",\n \"myself\",\n \"mystery\",\n \"myth\",\n \"naive\",\n \"name\",\n \"napkin\",\n \"narrow\",\n \"nasty\",\n \"nation\",\n \"nature\",\n \"near\",\n \"neck\",\n \"need\",\n \"negative\",\n \"neglect\",\n \"neither\",\n \"nephew\",\n \"nerve\",\n \"nest\",\n \"net\",\n \"network\",\n \"neutral\",\n \"never\",\n \"news\",\n \"next\",\n \"nice\",\n \"night\",\n \"noble\",\n \"noise\",\n \"nominee\",\n \"noodle\",\n \"normal\",\n \"north\",\n \"nose\",\n \"notable\",\n \"note\",\n \"nothing\",\n \"notice\",\n \"novel\",\n \"now\",\n \"nuclear\",\n \"number\",\n \"nurse\",\n \"nut\",\n \"oak\",\n \"obey\",\n \"object\",\n \"oblige\",\n \"obscure\",\n \"observe\",\n \"obtain\",\n \"obvious\",\n \"occur\",\n \"ocean\",\n \"october\",\n \"odor\",\n \"off\",\n \"offer\",\n \"office\",\n \"often\",\n \"oil\",\n \"okay\",\n \"old\",\n \"olive\",\n \"olympic\",\n \"omit\",\n \"once\",\n \"one\",\n \"onion\",\n \"online\",\n \"only\",\n \"open\",\n \"opera\",\n \"opinion\",\n \"oppose\",\n \"option\",\n \"orange\",\n \"orbit\",\n \"orchard\",\n \"order\",\n \"ordinary\",\n \"organ\",\n \"orient\",\n \"original\",\n \"orphan\",\n \"ostrich\",\n \"other\",\n \"outdoor\",\n \"outer\",\n \"output\",\n \"outside\",\n \"oval\",\n \"oven\",\n \"over\",\n \"own\",\n \"owner\",\n \"oxygen\",\n \"oyster\",\n \"ozone\",\n \"pact\",\n \"paddle\",\n \"page\",\n \"pair\",\n \"palace\",\n \"palm\",\n \"panda\",\n \"panel\",\n \"panic\",\n \"panther\",\n \"paper\",\n \"parade\",\n \"parent\",\n \"park\",\n \"parrot\",\n \"party\",\n \"pass\",\n \"patch\",\n \"path\",\n \"patient\",\n \"patrol\",\n \"pattern\",\n \"pause\",\n \"pave\",\n \"payment\",\n \"peace\",\n \"peanut\",\n \"pear\",\n \"peasant\",\n \"pelican\",\n \"pen\",\n \"penalty\",\n \"pencil\",\n \"people\",\n \"pepper\",\n \"perfect\",\n \"permit\",\n \"person\",\n \"pet\",\n \"phone\",\n \"photo\",\n \"phrase\",\n \"physical\",\n \"piano\",\n \"picnic\",\n \"picture\",\n \"piece\",\n \"pig\",\n \"pigeon\",\n \"pill\",\n \"pilot\",\n \"pink\",\n \"pioneer\",\n \"pipe\",\n \"pistol\",\n \"pitch\",\n \"pizza\",\n \"place\",\n \"planet\",\n \"plastic\",\n \"plate\",\n \"play\",\n \"please\",\n \"pledge\",\n \"pluck\",\n \"plug\",\n \"plunge\",\n \"poem\",\n \"poet\",\n \"point\",\n \"polar\",\n \"pole\",\n \"police\",\n \"pond\",\n \"pony\",\n \"pool\",\n \"popular\",\n \"portion\",\n \"position\",\n \"possible\",\n \"post\",\n \"potato\",\n \"pottery\",\n \"poverty\",\n \"powder\",\n \"power\",\n \"practice\",\n \"praise\",\n \"predict\",\n \"prefer\",\n \"prepare\",\n \"present\",\n \"pretty\",\n \"prevent\",\n \"price\",\n \"pride\",\n \"primary\",\n \"print\",\n \"priority\",\n \"prison\",\n \"private\",\n \"prize\",\n \"problem\",\n \"process\",\n \"produce\",\n \"profit\",\n \"program\",\n \"project\",\n \"promote\",\n \"proof\",\n \"property\",\n \"prosper\",\n \"protect\",\n \"proud\",\n \"provide\",\n \"public\",\n \"pudding\",\n \"pull\",\n \"pulp\",\n \"pulse\",\n \"pumpkin\",\n \"punch\",\n \"pupil\",\n \"puppy\",\n \"purchase\",\n \"purity\",\n \"purpose\",\n \"purse\",\n \"push\",\n \"put\",\n \"puzzle\",\n \"pyramid\",\n \"quality\",\n \"quantum\",\n \"quarter\",\n \"question\",\n \"quick\",\n \"quit\",\n \"quiz\",\n \"quote\",\n \"rabbit\",\n \"raccoon\",\n \"race\",\n \"rack\",\n \"radar\",\n \"radio\",\n \"rail\",\n \"rain\",\n \"raise\",\n \"rally\",\n \"ramp\",\n \"ranch\",\n \"random\",\n \"range\",\n \"rapid\",\n \"rare\",\n \"rate\",\n \"rather\",\n \"raven\",\n \"raw\",\n \"razor\",\n \"ready\",\n \"real\",\n \"reason\",\n \"rebel\",\n \"rebuild\",\n \"recall\",\n \"receive\",\n \"recipe\",\n \"record\",\n \"recycle\",\n \"reduce\",\n \"reflect\",\n \"reform\",\n \"refuse\",\n \"region\",\n \"regret\",\n \"regular\",\n \"reject\",\n \"relax\",\n \"release\",\n \"relief\",\n \"rely\",\n \"remain\",\n \"remember\",\n \"remind\",\n \"remove\",\n \"render\",\n \"renew\",\n \"rent\",\n \"reopen\",\n \"repair\",\n \"repeat\",\n \"replace\",\n \"report\",\n \"require\",\n \"rescue\",\n \"resemble\",\n \"resist\",\n \"resource\",\n \"response\",\n \"result\",\n \"retire\",\n \"retreat\",\n \"return\",\n \"reunion\",\n \"reveal\",\n \"review\",\n \"reward\",\n \"rhythm\",\n \"rib\",\n \"ribbon\",\n \"rice\",\n \"rich\",\n \"ride\",\n \"ridge\",\n \"rifle\",\n \"right\",\n \"rigid\",\n \"ring\",\n \"riot\",\n \"ripple\",\n \"risk\",\n \"ritual\",\n \"rival\",\n \"river\",\n \"road\",\n \"roast\",\n \"robot\",\n \"robust\",\n \"rocket\",\n \"romance\",\n \"roof\",\n \"rookie\",\n \"room\",\n \"rose\",\n \"rotate\",\n \"rough\",\n \"round\",\n \"route\",\n \"royal\",\n \"rubber\",\n \"rude\",\n \"rug\",\n \"rule\",\n \"run\",\n \"runway\",\n \"rural\",\n \"sad\",\n \"saddle\",\n \"sadness\",\n \"safe\",\n \"sail\",\n \"salad\",\n \"salmon\",\n \"salon\",\n \"salt\",\n \"salute\",\n \"same\",\n \"sample\",\n \"sand\",\n \"satisfy\",\n \"satoshi\",\n \"sauce\",\n \"sausage\",\n \"save\",\n \"say\",\n \"scale\",\n \"scan\",\n \"scare\",\n \"scatter\",\n \"scene\",\n \"scheme\",\n \"school\",\n \"science\",\n \"scissors\",\n \"scorpion\",\n \"scout\",\n \"scrap\",\n \"screen\",\n \"script\",\n \"scrub\",\n \"sea\",\n \"search\",\n \"season\",\n \"seat\",\n \"second\",\n \"secret\",\n \"section\",\n \"security\",\n \"seed\",\n \"seek\",\n \"segment\",\n \"select\",\n \"sell\",\n \"seminar\",\n \"senior\",\n \"sense\",\n \"sentence\",\n \"series\",\n \"service\",\n \"session\",\n \"settle\",\n \"setup\",\n \"seven\",\n \"shadow\",\n \"shaft\",\n \"shallow\",\n \"share\",\n \"shed\",\n \"shell\",\n \"sheriff\",\n \"shield\",\n \"shift\",\n \"shine\",\n \"ship\",\n \"shiver\",\n \"shock\",\n \"shoe\",\n \"shoot\",\n \"shop\",\n \"short\",\n \"shoulder\",\n \"shove\",\n \"shrimp\",\n \"shrug\",\n \"shuffle\",\n \"shy\",\n \"sibling\",\n \"sick\",\n \"side\",\n \"siege\",\n \"sight\",\n \"sign\",\n \"silent\",\n \"silk\",\n \"silly\",\n \"silver\",\n \"similar\",\n \"simple\",\n \"since\",\n \"sing\",\n \"siren\",\n \"sister\",\n \"situate\",\n \"six\",\n \"size\",\n \"skate\",\n \"sketch\",\n \"ski\",\n \"skill\",\n \"skin\",\n \"skirt\",\n \"skull\",\n \"slab\",\n \"slam\",\n \"sleep\",\n \"slender\",\n \"slice\",\n \"slide\",\n \"slight\",\n \"slim\",\n \"slogan\",\n \"slot\",\n \"slow\",\n \"slush\",\n \"small\",\n \"smart\",\n \"smile\",\n \"smoke\",\n \"smooth\",\n \"snack\",\n \"snake\",\n \"snap\",\n \"sniff\",\n \"snow\",\n \"soap\",\n \"soccer\",\n \"social\",\n \"sock\",\n \"soda\",\n \"soft\",\n \"solar\",\n \"soldier\",\n \"solid\",\n \"solution\",\n \"solve\",\n \"someone\",\n \"song\",\n \"soon\",\n \"sorry\",\n \"sort\",\n \"soul\",\n \"sound\",\n \"soup\",\n \"source\",\n \"south\",\n \"space\",\n \"spare\",\n \"spatial\",\n \"spawn\",\n \"speak\",\n \"special\",\n \"speed\",\n \"spell\",\n \"spend\",\n \"sphere\",\n \"spice\",\n \"spider\",\n \"spike\",\n \"spin\",\n \"spirit\",\n \"split\",\n \"spoil\",\n \"sponsor\",\n \"spoon\",\n \"sport\",\n \"spot\",\n \"spray\",\n \"spread\",\n \"spring\",\n \"spy\",\n \"square\",\n \"squeeze\",\n \"squirrel\",\n \"stable\",\n \"stadium\",\n \"staff\",\n \"stage\",\n \"stairs\",\n \"stamp\",\n \"stand\",\n \"start\",\n \"state\",\n \"stay\",\n \"steak\",\n \"steel\",\n \"stem\",\n \"step\",\n \"stereo\",\n \"stick\",\n \"still\",\n \"sting\",\n \"stock\",\n \"stomach\",\n \"stone\",\n \"stool\",\n \"story\",\n \"stove\",\n \"strategy\",\n \"street\",\n \"strike\",\n \"strong\",\n \"struggle\",\n \"student\",\n \"stuff\",\n \"stumble\",\n \"style\",\n \"subject\",\n \"submit\",\n \"subway\",\n \"success\",\n \"such\",\n \"sudden\",\n \"suffer\",\n \"sugar\",\n \"suggest\",\n \"suit\",\n \"summer\",\n \"sun\",\n \"sunny\",\n \"sunset\",\n \"super\",\n \"supply\",\n \"supreme\",\n \"sure\",\n \"surface\",\n \"surge\",\n \"surprise\",\n \"surround\",\n \"survey\",\n \"suspect\",\n \"sustain\",\n \"swallow\",\n \"swamp\",\n \"swap\",\n \"swarm\",\n \"swear\",\n \"sweet\",\n \"swift\",\n \"swim\",\n \"swing\",\n \"switch\",\n \"sword\",\n \"symbol\",\n \"symptom\",\n \"syrup\",\n \"system\",\n \"table\",\n \"tackle\",\n \"tag\",\n \"tail\",\n \"talent\",\n \"talk\",\n \"tank\",\n \"tape\",\n \"target\",\n \"task\",\n \"taste\",\n \"tattoo\",\n \"taxi\",\n \"teach\",\n \"team\",\n \"tell\",\n \"ten\",\n \"tenant\",\n \"tennis\",\n \"tent\",\n \"term\",\n \"test\",\n \"text\",\n \"thank\",\n \"that\",\n \"theme\",\n \"then\",\n \"theory\",\n \"there\",\n \"they\",\n \"thing\",\n \"this\",\n \"thought\",\n \"three\",\n \"thrive\",\n \"throw\",\n \"thumb\",\n \"thunder\",\n \"ticket\",\n \"tide\",\n \"tiger\",\n \"tilt\",\n \"timber\",\n \"time\",\n \"tiny\",\n \"tip\",\n \"tired\",\n \"tissue\",\n \"title\",\n \"toast\",\n \"tobacco\",\n \"today\",\n \"toddler\",\n \"toe\",\n \"together\",\n \"toilet\",\n \"token\",\n \"tomato\",\n \"tomorrow\",\n \"tone\",\n \"tongue\",\n \"tonight\",\n \"tool\",\n \"tooth\",\n \"top\",\n \"topic\",\n \"topple\",\n \"torch\",\n \"tornado\",\n \"tortoise\",\n \"toss\",\n \"total\",\n \"tourist\",\n \"toward\",\n \"tower\",\n \"town\",\n \"toy\",\n \"track\",\n \"trade\",\n \"traffic\",\n \"tragic\",\n \"train\",\n \"transfer\",\n \"trap\",\n \"trash\",\n \"travel\",\n \"tray\",\n \"treat\",\n \"tree\",\n \"trend\",\n \"trial\",\n \"tribe\",\n \"trick\",\n \"trigger\",\n \"trim\",\n \"trip\",\n \"trophy\",\n \"trouble\",\n \"truck\",\n \"true\",\n \"truly\",\n \"trumpet\",\n \"trust\",\n \"truth\",\n \"try\",\n \"tube\",\n \"tuition\",\n \"tumble\",\n \"tuna\",\n \"tunnel\",\n \"turkey\",\n \"turn\",\n \"turtle\",\n \"twelve\",\n \"twenty\",\n \"twice\",\n \"twin\",\n \"twist\",\n \"two\",\n \"type\",\n \"typical\",\n \"ugly\",\n \"umbrella\",\n \"unable\",\n \"unaware\",\n \"uncle\",\n \"uncover\",\n \"under\",\n \"undo\",\n \"unfair\",\n \"unfold\",\n \"unhappy\",\n \"uniform\",\n \"unique\",\n \"unit\",\n \"universe\",\n \"unknown\",\n \"unlock\",\n \"until\",\n \"unusual\",\n \"unveil\",\n \"update\",\n \"upgrade\",\n \"uphold\",\n \"upon\",\n \"upper\",\n \"upset\",\n \"urban\",\n \"urge\",\n \"usage\",\n \"use\",\n \"used\",\n \"useful\",\n \"useless\",\n \"usual\",\n \"utility\",\n \"vacant\",\n \"vacuum\",\n \"vague\",\n \"valid\",\n \"valley\",\n \"valve\",\n \"van\",\n \"vanish\",\n \"vapor\",\n \"various\",\n \"vast\",\n \"vault\",\n \"vehicle\",\n \"velvet\",\n \"vendor\",\n \"venture\",\n \"venue\",\n \"verb\",\n \"verify\",\n \"version\",\n \"very\",\n \"vessel\",\n \"veteran\",\n \"viable\",\n \"vibrant\",\n \"vicious\",\n \"victory\",\n \"video\",\n \"view\",\n \"village\",\n \"vintage\",\n \"violin\",\n \"virtual\",\n \"virus\",\n \"visa\",\n \"visit\",\n \"visual\",\n \"vital\",\n \"vivid\",\n \"vocal\",\n \"voice\",\n \"void\",\n \"volcano\",\n \"volume\",\n \"vote\",\n \"voyage\",\n \"wage\",\n \"wagon\",\n \"wait\",\n \"walk\",\n \"wall\",\n \"walnut\",\n \"want\",\n \"warfare\",\n \"warm\",\n \"warrior\",\n \"wash\",\n \"wasp\",\n \"waste\",\n \"water\",\n \"wave\",\n \"way\",\n \"wealth\",\n \"weapon\",\n \"wear\",\n \"weasel\",\n \"weather\",\n \"web\",\n \"wedding\",\n \"weekend\",\n \"weird\",\n \"welcome\",\n \"west\",\n \"wet\",\n \"whale\",\n \"what\",\n \"wheat\",\n \"wheel\",\n \"when\",\n \"where\",\n \"whip\",\n \"whisper\",\n \"wide\",\n \"width\",\n \"wife\",\n \"wild\",\n \"will\",\n \"win\",\n \"window\",\n \"wine\",\n \"wing\",\n \"wink\",\n \"winner\",\n \"winter\",\n \"wire\",\n \"wisdom\",\n \"wise\",\n \"wish\",\n \"witness\",\n \"wolf\",\n \"woman\",\n \"wonder\",\n \"wood\",\n \"wool\",\n \"word\",\n \"work\",\n \"world\",\n \"worry\",\n \"worth\",\n \"wrap\",\n \"wreck\",\n \"wrestle\",\n \"wrist\",\n \"write\",\n \"wrong\",\n \"yard\",\n \"year\",\n \"yellow\",\n \"you\",\n \"young\",\n \"youth\",\n \"zebra\",\n \"zero\",\n \"zone\",\n \"zoo\",\n];\nfunction bytesToBitstring(bytes) {\n return Array.from(bytes)\n .map((byte) => byte.toString(2).padStart(8, \"0\"))\n .join(\"\");\n}\nfunction deriveChecksumBits(entropy) {\n const entropyLengthBits = entropy.length * 8; // \"ENT\" (in bits)\n const checksumLengthBits = entropyLengthBits / 32; // \"CS\" (in bits)\n const hash = (0, sha_1.sha256)(entropy);\n return bytesToBitstring(hash).slice(0, checksumLengthBits);\n}\nfunction bitstringToByte(bin) {\n return parseInt(bin, 2);\n}\nconst allowedEntropyLengths = [16, 20, 24, 28, 32];\nconst allowedWordLengths = [12, 15, 18, 21, 24];\nfunction entropyToMnemonic(entropy) {\n if (allowedEntropyLengths.indexOf(entropy.length) === -1) {\n throw new Error(\"invalid input length\");\n }\n const entropyBits = bytesToBitstring(entropy);\n const checksumBits = deriveChecksumBits(entropy);\n const bits = entropyBits + checksumBits;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const chunks = bits.match(/(.{11})/g);\n const words = chunks.map((binary) => {\n const index = bitstringToByte(binary);\n return wordlist[index];\n });\n return words.join(\" \");\n}\nconst invalidNumberOfWords = \"Invalid number of words\";\nconst wordNotInWordlist = \"Found word that is not in the wordlist\";\nconst invalidEntropy = \"Invalid entropy\";\nconst invalidChecksum = \"Invalid mnemonic checksum\";\nfunction normalize(str) {\n return str.normalize(\"NFKD\");\n}\nfunction mnemonicToEntropy(mnemonic) {\n const words = normalize(mnemonic).split(\" \");\n if (!allowedWordLengths.includes(words.length)) {\n throw new Error(invalidNumberOfWords);\n }\n // convert word indices to 11 bit binary strings\n const bits = words\n .map((word) => {\n const index = wordlist.indexOf(word);\n if (index === -1) {\n throw new Error(wordNotInWordlist);\n }\n return index.toString(2).padStart(11, \"0\");\n })\n .join(\"\");\n // split the binary string into ENT/CS\n const dividerIndex = Math.floor(bits.length / 33) * 32;\n const entropyBits = bits.slice(0, dividerIndex);\n const checksumBits = bits.slice(dividerIndex);\n // calculate the checksum and compare\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const entropyBytes = entropyBits.match(/(.{1,8})/g).map(bitstringToByte);\n if (entropyBytes.length < 16 || entropyBytes.length > 32 || entropyBytes.length % 4 !== 0) {\n throw new Error(invalidEntropy);\n }\n const entropy = Uint8Array.from(entropyBytes);\n const newChecksum = deriveChecksumBits(entropy);\n if (newChecksum !== checksumBits) {\n throw new Error(invalidChecksum);\n }\n return entropy;\n}\nclass EnglishMnemonic {\n constructor(mnemonic) {\n if (!EnglishMnemonic.mnemonicMatcher.test(mnemonic)) {\n throw new Error(\"Invalid mnemonic format\");\n }\n const words = mnemonic.split(\" \");\n const allowedWordsLengths = [12, 15, 18, 21, 24];\n if (allowedWordsLengths.indexOf(words.length) === -1) {\n throw new Error(`Invalid word count in mnemonic (allowed: ${allowedWordsLengths} got: ${words.length})`);\n }\n for (const word of words) {\n if (EnglishMnemonic.wordlist.indexOf(word) === -1) {\n throw new Error(\"Mnemonic contains invalid word\");\n }\n }\n // Throws with informative error message if mnemonic is not valid\n mnemonicToEntropy(mnemonic);\n this.data = mnemonic;\n }\n toString() {\n return this.data;\n }\n}\nexports.EnglishMnemonic = EnglishMnemonic;\nEnglishMnemonic.wordlist = wordlist;\n// list of space separated lower case words (1 or more)\nEnglishMnemonic.mnemonicMatcher = /^[a-z]+( [a-z]+)*$/;\nclass Bip39 {\n /**\n * Encodes raw entropy of length 16, 20, 24, 28 or 32 bytes as an English mnemonic between 12 and 24 words.\n *\n * | Entropy | Words |\n * |--------------------|-------|\n * | 128 bit (16 bytes) | 12 |\n * | 160 bit (20 bytes) | 15 |\n * | 192 bit (24 bytes) | 18 |\n * | 224 bit (28 bytes) | 21 |\n * | 256 bit (32 bytes) | 24 |\n *\n *\n * @see https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki#generating-the-mnemonic\n * @param entropy The entropy to be encoded. This must be cryptographically secure.\n */\n static encode(entropy) {\n return new EnglishMnemonic(entropyToMnemonic(entropy));\n }\n static decode(mnemonic) {\n return mnemonicToEntropy(mnemonic.toString());\n }\n static async mnemonicToSeed(mnemonic, password) {\n const mnemonicBytes = (0, encoding_1.toUtf8)(normalize(mnemonic.toString()));\n const salt = \"mnemonic\" + (password ? normalize(password) : \"\");\n const saltBytes = (0, encoding_1.toUtf8)(salt);\n return (0, pbkdf2_1.pbkdf2Sha512)(mnemonicBytes, saltBytes, 2048, 64);\n }\n}\nexports.Bip39 = Bip39;\n//# sourceMappingURL=bip39.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Hmac = void 0;\nclass Hmac {\n constructor(hashFunctionConstructor, originalKey) {\n // This implementation is based on https://en.wikipedia.org/wiki/HMAC#Implementation\n // with the addition of incremental hashing support. Thus part of the algorithm\n // is in the constructor and the rest in digest().\n const blockSize = new hashFunctionConstructor().blockSize;\n this.hash = (data) => new hashFunctionConstructor().update(data).digest();\n let key = originalKey;\n if (key.length > blockSize) {\n key = this.hash(key);\n }\n if (key.length < blockSize) {\n const zeroPadding = new Uint8Array(blockSize - key.length);\n key = new Uint8Array([...key, ...zeroPadding]);\n }\n // eslint-disable-next-line no-bitwise\n this.oKeyPad = key.map((keyByte) => keyByte ^ 0x5c);\n // eslint-disable-next-line no-bitwise\n this.iKeyPad = key.map((keyByte) => keyByte ^ 0x36);\n this.messageHasher = new hashFunctionConstructor();\n this.blockSize = blockSize;\n this.update(this.iKeyPad);\n }\n update(data) {\n this.messageHasher.update(data);\n return this;\n }\n digest() {\n const innerHash = this.messageHasher.digest();\n return this.hash(new Uint8Array([...this.oKeyPad, ...innerHash]));\n }\n}\nexports.Hmac = Hmac;\n//# sourceMappingURL=hmac.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringToPath = exports.Slip10RawIndex = exports.slip10CurveFromString = exports.Slip10Curve = exports.Slip10 = exports.pathToString = exports.sha512 = exports.Sha512 = exports.sha256 = exports.Sha256 = exports.Secp256k1Signature = exports.ExtendedSecp256k1Signature = exports.Secp256k1 = exports.ripemd160 = exports.Ripemd160 = exports.Random = exports.Xchacha20poly1305Ietf = exports.xchacha20NonceLength = exports.isArgon2idOptions = exports.Ed25519Keypair = exports.Ed25519 = exports.Argon2id = exports.keccak256 = exports.Keccak256 = exports.Hmac = exports.EnglishMnemonic = exports.Bip39 = void 0;\nvar bip39_1 = require(\"./bip39\");\nObject.defineProperty(exports, \"Bip39\", { enumerable: true, get: function () { return bip39_1.Bip39; } });\nObject.defineProperty(exports, \"EnglishMnemonic\", { enumerable: true, get: function () { return bip39_1.EnglishMnemonic; } });\nvar hmac_1 = require(\"./hmac\");\nObject.defineProperty(exports, \"Hmac\", { enumerable: true, get: function () { return hmac_1.Hmac; } });\nvar keccak_1 = require(\"./keccak\");\nObject.defineProperty(exports, \"Keccak256\", { enumerable: true, get: function () { return keccak_1.Keccak256; } });\nObject.defineProperty(exports, \"keccak256\", { enumerable: true, get: function () { return keccak_1.keccak256; } });\nvar libsodium_1 = require(\"./libsodium\");\nObject.defineProperty(exports, \"Argon2id\", { enumerable: true, get: function () { return libsodium_1.Argon2id; } });\nObject.defineProperty(exports, \"Ed25519\", { enumerable: true, get: function () { return libsodium_1.Ed25519; } });\nObject.defineProperty(exports, \"Ed25519Keypair\", { enumerable: true, get: function () { return libsodium_1.Ed25519Keypair; } });\nObject.defineProperty(exports, \"isArgon2idOptions\", { enumerable: true, get: function () { return libsodium_1.isArgon2idOptions; } });\nObject.defineProperty(exports, \"xchacha20NonceLength\", { enumerable: true, get: function () { return libsodium_1.xchacha20NonceLength; } });\nObject.defineProperty(exports, \"Xchacha20poly1305Ietf\", { enumerable: true, get: function () { return libsodium_1.Xchacha20poly1305Ietf; } });\nvar random_1 = require(\"./random\");\nObject.defineProperty(exports, \"Random\", { enumerable: true, get: function () { return random_1.Random; } });\nvar ripemd_1 = require(\"./ripemd\");\nObject.defineProperty(exports, \"Ripemd160\", { enumerable: true, get: function () { return ripemd_1.Ripemd160; } });\nObject.defineProperty(exports, \"ripemd160\", { enumerable: true, get: function () { return ripemd_1.ripemd160; } });\nvar secp256k1_1 = require(\"./secp256k1\");\nObject.defineProperty(exports, \"Secp256k1\", { enumerable: true, get: function () { return secp256k1_1.Secp256k1; } });\nvar secp256k1signature_1 = require(\"./secp256k1signature\");\nObject.defineProperty(exports, \"ExtendedSecp256k1Signature\", { enumerable: true, get: function () { return secp256k1signature_1.ExtendedSecp256k1Signature; } });\nObject.defineProperty(exports, \"Secp256k1Signature\", { enumerable: true, get: function () { return secp256k1signature_1.Secp256k1Signature; } });\nvar sha_1 = require(\"./sha\");\nObject.defineProperty(exports, \"Sha256\", { enumerable: true, get: function () { return sha_1.Sha256; } });\nObject.defineProperty(exports, \"sha256\", { enumerable: true, get: function () { return sha_1.sha256; } });\nObject.defineProperty(exports, \"Sha512\", { enumerable: true, get: function () { return sha_1.Sha512; } });\nObject.defineProperty(exports, \"sha512\", { enumerable: true, get: function () { return sha_1.sha512; } });\nvar slip10_1 = require(\"./slip10\");\nObject.defineProperty(exports, \"pathToString\", { enumerable: true, get: function () { return slip10_1.pathToString; } });\nObject.defineProperty(exports, \"Slip10\", { enumerable: true, get: function () { return slip10_1.Slip10; } });\nObject.defineProperty(exports, \"Slip10Curve\", { enumerable: true, get: function () { return slip10_1.Slip10Curve; } });\nObject.defineProperty(exports, \"slip10CurveFromString\", { enumerable: true, get: function () { return slip10_1.slip10CurveFromString; } });\nObject.defineProperty(exports, \"Slip10RawIndex\", { enumerable: true, get: function () { return slip10_1.Slip10RawIndex; } });\nObject.defineProperty(exports, \"stringToPath\", { enumerable: true, get: function () { return slip10_1.stringToPath; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Keccak256 = void 0;\nexports.keccak256 = keccak256;\nconst sha3_1 = require(\"@noble/hashes/sha3\");\nconst utils_1 = require(\"./utils\");\nclass Keccak256 {\n constructor(firstData) {\n this.blockSize = 512 / 8;\n this.impl = sha3_1.keccak_256.create();\n if (firstData) {\n this.update(firstData);\n }\n }\n update(data) {\n this.impl.update((0, utils_1.toRealUint8Array)(data));\n return this;\n }\n digest() {\n return this.impl.digest();\n }\n}\nexports.Keccak256 = Keccak256;\n/** Convenience function equivalent to `new Keccak256(data).digest()` */\nfunction keccak256(data) {\n return new Keccak256(data).digest();\n}\n//# sourceMappingURL=keccak.js.map","\"use strict\";\n// Keep all classes requiring libsodium-js in one file as having multiple\n// requiring of the libsodium-wrappers module currently crashes browsers\n//\n// libsodium.js API: https://gist.github.com/webmaster128/b2dbe6d54d36dd168c9fabf441b9b09c\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Xchacha20poly1305Ietf = exports.xchacha20NonceLength = exports.Ed25519 = exports.Ed25519Keypair = exports.Argon2id = void 0;\nexports.isArgon2idOptions = isArgon2idOptions;\nconst utils_1 = require(\"@cosmjs/utils\");\n// Using crypto_pwhash requires sumo. Once we migrate to a standalone\n// Argon2 implementation, we can use the normal libsodium-wrappers\n// again: https://github.com/cosmos/cosmjs/issues/1031\nconst libsodium_wrappers_sumo_1 = __importDefault(require(\"libsodium-wrappers-sumo\"));\nfunction isArgon2idOptions(thing) {\n if (!(0, utils_1.isNonNullObject)(thing))\n return false;\n if (typeof thing.outputLength !== \"number\")\n return false;\n if (typeof thing.opsLimit !== \"number\")\n return false;\n if (typeof thing.memLimitKib !== \"number\")\n return false;\n return true;\n}\nclass Argon2id {\n static async execute(password, salt, options) {\n await libsodium_wrappers_sumo_1.default.ready;\n return libsodium_wrappers_sumo_1.default.crypto_pwhash(options.outputLength, password, salt, // libsodium only supports 16 byte salts and will throw when you don't respect that\n options.opsLimit, options.memLimitKib * 1024, libsodium_wrappers_sumo_1.default.crypto_pwhash_ALG_ARGON2ID13);\n }\n}\nexports.Argon2id = Argon2id;\nclass Ed25519Keypair {\n // a libsodium privkey has the format ` + `\n static fromLibsodiumPrivkey(libsodiumPrivkey) {\n if (libsodiumPrivkey.length !== 64) {\n throw new Error(`Unexpected key length ${libsodiumPrivkey.length}. Must be 64.`);\n }\n return new Ed25519Keypair(libsodiumPrivkey.slice(0, 32), libsodiumPrivkey.slice(32, 64));\n }\n constructor(privkey, pubkey) {\n this.privkey = privkey;\n this.pubkey = pubkey;\n }\n toLibsodiumPrivkey() {\n return new Uint8Array([...this.privkey, ...this.pubkey]);\n }\n}\nexports.Ed25519Keypair = Ed25519Keypair;\nclass Ed25519 {\n /**\n * Generates a keypair deterministically from a given 32 bytes seed.\n *\n * This seed equals the Ed25519 private key.\n * For implementation details see crypto_sign_seed_keypair in\n * https://download.libsodium.org/doc/public-key_cryptography/public-key_signatures.html\n * and diagram on https://blog.mozilla.org/warner/2011/11/29/ed25519-keys/\n */\n static async makeKeypair(seed) {\n await libsodium_wrappers_sumo_1.default.ready;\n const keypair = libsodium_wrappers_sumo_1.default.crypto_sign_seed_keypair(seed);\n return Ed25519Keypair.fromLibsodiumPrivkey(keypair.privateKey);\n }\n static async createSignature(message, keyPair) {\n await libsodium_wrappers_sumo_1.default.ready;\n return libsodium_wrappers_sumo_1.default.crypto_sign_detached(message, keyPair.toLibsodiumPrivkey());\n }\n static async verifySignature(signature, message, pubkey) {\n await libsodium_wrappers_sumo_1.default.ready;\n return libsodium_wrappers_sumo_1.default.crypto_sign_verify_detached(signature, message, pubkey);\n }\n}\nexports.Ed25519 = Ed25519;\n/**\n * Nonce length in bytes for all flavours of XChaCha20.\n *\n * @see https://libsodium.gitbook.io/doc/advanced/stream_ciphers/xchacha20#notes\n */\nexports.xchacha20NonceLength = 24;\nclass Xchacha20poly1305Ietf {\n static async encrypt(message, key, nonce) {\n await libsodium_wrappers_sumo_1.default.ready;\n const additionalData = null;\n return libsodium_wrappers_sumo_1.default.crypto_aead_xchacha20poly1305_ietf_encrypt(message, additionalData, null, // secret nonce: unused and should be null (https://download.libsodium.org/doc/secret-key_cryptography/aead/chacha20-poly1305/xchacha20-poly1305_construction)\n nonce, key);\n }\n static async decrypt(ciphertext, key, nonce) {\n await libsodium_wrappers_sumo_1.default.ready;\n const additionalData = null;\n return libsodium_wrappers_sumo_1.default.crypto_aead_xchacha20poly1305_ietf_decrypt(null, // secret nonce: unused and should be null (https://download.libsodium.org/doc/secret-key_cryptography/aead/chacha20-poly1305/xchacha20-poly1305_construction)\n ciphertext, additionalData, nonce, key);\n }\n}\nexports.Xchacha20poly1305Ietf = Xchacha20poly1305Ietf;\n//# sourceMappingURL=libsodium.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getNodeCrypto = getNodeCrypto;\nexports.getSubtle = getSubtle;\nexports.pbkdf2Sha512Subtle = pbkdf2Sha512Subtle;\nexports.pbkdf2Sha512NodeCrypto = pbkdf2Sha512NodeCrypto;\nexports.pbkdf2Sha512Noble = pbkdf2Sha512Noble;\nexports.pbkdf2Sha512 = pbkdf2Sha512;\nconst utils_1 = require(\"@cosmjs/utils\");\nconst pbkdf2_1 = require(\"@noble/hashes/pbkdf2\");\nconst sha512_1 = require(\"@noble/hashes/sha512\");\n/**\n * Returns the Node.js crypto module when available and `undefined`\n * otherwise.\n *\n * Detects an unimplemented fallback module from Webpack 5 and returns\n * `undefined` in that case.\n */\nasync function getNodeCrypto() {\n try {\n const nodeCrypto = await Promise.resolve().then(() => __importStar(require(\"crypto\")));\n // We get `Object{default: Object{}}` as a fallback when using\n // `crypto: false` in Webpack 5, which we interprete as unavailable.\n if (typeof nodeCrypto === \"object\" && Object.keys(nodeCrypto).length <= 1) {\n return undefined;\n }\n return nodeCrypto;\n }\n catch {\n return undefined;\n }\n}\nasync function getSubtle() {\n // From Node.js 15 onwards, webcrypto is available in globalThis.\n // In version 15 and 16 this was stored under the webcrypto key.\n // With Node.js 17 it was moved to the same locations where browsers\n // make it available.\n // Loading `require(\"crypto\")` here seems unnecessary since it only\n // causes issues with bundlers and does not increase compatibility.\n // Browsers and Node.js 17+\n let subtle = globalThis?.crypto?.subtle;\n // Node.js 15+\n if (!subtle)\n subtle = globalThis?.crypto?.webcrypto?.subtle;\n return subtle;\n}\nasync function pbkdf2Sha512Subtle(\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nsubtle, secret, salt, iterations, keylen) {\n (0, utils_1.assert)(subtle, \"Argument subtle is falsy\");\n (0, utils_1.assert)(typeof subtle === \"object\", \"Argument subtle is not of type object\");\n (0, utils_1.assert)(typeof subtle.importKey === \"function\", \"subtle.importKey is not a function\");\n (0, utils_1.assert)(typeof subtle.deriveBits === \"function\", \"subtle.deriveBits is not a function\");\n return subtle.importKey(\"raw\", secret, { name: \"PBKDF2\" }, false, [\"deriveBits\"]).then((key) => subtle\n .deriveBits({\n name: \"PBKDF2\",\n salt: salt,\n iterations: iterations,\n hash: { name: \"SHA-512\" },\n }, key, keylen * 8)\n .then((buffer) => new Uint8Array(buffer)));\n}\n/**\n * Implements pbkdf2-sha512 using the Node.js crypro module (`import \"crypto\"`).\n * This does not use subtle from [Crypto](https://developer.mozilla.org/en-US/docs/Web/API/Crypto).\n */\nasync function pbkdf2Sha512NodeCrypto(\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nnodeCrypto, secret, salt, iterations, keylen) {\n (0, utils_1.assert)(nodeCrypto, \"Argument nodeCrypto is falsy\");\n (0, utils_1.assert)(typeof nodeCrypto === \"object\", \"Argument nodeCrypto is not of type object\");\n (0, utils_1.assert)(typeof nodeCrypto.pbkdf2 === \"function\", \"nodeCrypto.pbkdf2 is not a function\");\n return new Promise((resolve, reject) => {\n nodeCrypto.pbkdf2(secret, salt, iterations, keylen, \"sha512\", (error, result) => {\n if (error) {\n reject(error);\n }\n else {\n resolve(Uint8Array.from(result));\n }\n });\n });\n}\nasync function pbkdf2Sha512Noble(secret, salt, iterations, keylen) {\n return (0, pbkdf2_1.pbkdf2Async)(sha512_1.sha512, secret, salt, { c: iterations, dkLen: keylen });\n}\n/**\n * A pbkdf2 implementation for BIP39. This is not exported at package level and thus a private API.\n */\nasync function pbkdf2Sha512(secret, salt, iterations, keylen) {\n const subtle = await getSubtle();\n if (subtle) {\n return pbkdf2Sha512Subtle(subtle, secret, salt, iterations, keylen);\n }\n else {\n const nodeCrypto = await getNodeCrypto();\n if (nodeCrypto) {\n return pbkdf2Sha512NodeCrypto(nodeCrypto, secret, salt, iterations, keylen);\n }\n else {\n return pbkdf2Sha512Noble(secret, salt, iterations, keylen);\n }\n }\n}\n//# sourceMappingURL=pbkdf2.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Random = void 0;\nclass Random {\n /**\n * Returns `count` cryptographically secure random bytes\n */\n static getBytes(count) {\n try {\n const globalObject = typeof window === \"object\" ? window : self;\n const cryptoApi = typeof globalObject.crypto !== \"undefined\" ? globalObject.crypto : globalObject.msCrypto;\n const out = new Uint8Array(count);\n cryptoApi.getRandomValues(out);\n return out;\n }\n catch {\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const crypto = require(\"crypto\");\n return new Uint8Array([...crypto.randomBytes(count)]);\n }\n catch {\n throw new Error(\"No secure random number generator found\");\n }\n }\n }\n}\nexports.Random = Random;\n//# sourceMappingURL=random.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Ripemd160 = void 0;\nexports.ripemd160 = ripemd160;\nconst ripemd160_1 = require(\"@noble/hashes/ripemd160\");\nconst utils_1 = require(\"./utils\");\nclass Ripemd160 {\n constructor(firstData) {\n this.blockSize = 512 / 8;\n this.impl = ripemd160_1.ripemd160.create();\n if (firstData) {\n this.update(firstData);\n }\n }\n update(data) {\n this.impl.update((0, utils_1.toRealUint8Array)(data));\n return this;\n }\n digest() {\n return this.impl.digest();\n }\n}\nexports.Ripemd160 = Ripemd160;\n/** Convenience function equivalent to `new Ripemd160(data).digest()` */\nfunction ripemd160(data) {\n return new Ripemd160(data).digest();\n}\n//# sourceMappingURL=ripemd.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Secp256k1 = void 0;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst secp256k1_1 = require(\"@noble/curves/secp256k1\");\nconst secp256k1signature_1 = require(\"./secp256k1signature\");\nfunction unsignedBigIntToBytes(a) {\n (0, utils_1.assert)(a >= 0n);\n let hex = a.toString(16);\n if (hex.length % 2)\n hex = \"0\" + hex;\n return (0, encoding_1.fromHex)(hex);\n}\nfunction bytesToUnsignedBigInt(a) {\n return BigInt(\"0x\" + (0, encoding_1.toHex)(a));\n}\nclass Secp256k1 {\n /**\n * Takes a 32 byte private key and returns a privkey/pubkey pair.\n *\n * The resulting pubkey is uncompressed. For the use in Cosmos it should\n * be compressed first using `Secp256k1.compressPubkey`.\n */\n static async makeKeypair(privkey) {\n if (privkey.length !== 32) {\n throw new Error(\"input data is not a valid secp256k1 private key\");\n }\n if (!secp256k1_1.secp256k1.utils.isValidPrivateKey(privkey)) {\n // not strictly smaller than N\n throw new Error(\"input data is not a valid secp256k1 private key\");\n }\n const out = {\n privkey: privkey,\n // encodes uncompressed as\n // - 1-byte prefix \"04\"\n // - 32-byte x coordinate\n // - 32-byte y coordinate\n pubkey: secp256k1_1.secp256k1.getPublicKey(privkey, false),\n };\n return out;\n }\n /**\n * Creates a signature that is\n * - deterministic (RFC 6979)\n * - lowS signature\n * - DER encoded\n */\n static async createSignature(messageHash, privkey) {\n if (messageHash.length === 0) {\n throw new Error(\"Message hash must not be empty\");\n }\n if (messageHash.length > 32) {\n throw new Error(\"Message hash length must not exceed 32 bytes\");\n }\n const { recovery, r, s } = secp256k1_1.secp256k1.sign(messageHash, privkey, {\n lowS: true,\n });\n if (typeof recovery !== \"number\")\n throw new Error(\"Recovery param missing\");\n return new secp256k1signature_1.ExtendedSecp256k1Signature(unsignedBigIntToBytes(r), unsignedBigIntToBytes(s), recovery);\n }\n static async verifySignature(signature, messageHash, pubkey) {\n if (messageHash.length === 0) {\n throw new Error(\"Message hash must not be empty\");\n }\n if (messageHash.length > 32) {\n throw new Error(\"Message hash length must not exceed 32 bytes\");\n }\n const encodedSig = secp256k1_1.secp256k1.Signature.fromDER(signature.toDer());\n return secp256k1_1.secp256k1.verify(encodedSig, messageHash, pubkey, { lowS: false });\n }\n static recoverPubkey(signature, messageHash) {\n const pk = new secp256k1_1.secp256k1.Signature(bytesToUnsignedBigInt(signature.r()), bytesToUnsignedBigInt(signature.s()), signature.recovery).recoverPublicKey(messageHash);\n return pk.toBytes(false);\n }\n /**\n * Takes a compressed or uncompressed pubkey and return a compressed one.\n *\n * This function is idempotent.\n */\n static compressPubkey(pubkey) {\n switch (pubkey.length) {\n case 33:\n return pubkey;\n case 65:\n return secp256k1_1.secp256k1.Point.fromHex(pubkey).toRawBytes(true);\n default:\n throw new Error(\"Invalid pubkey length\");\n }\n }\n /**\n * Takes a compressed or uncompressed pubkey and returns an uncompressed one.\n *\n * This function is idempotent.\n */\n static uncompressPubkey(pubkey) {\n switch (pubkey.length) {\n case 33:\n return secp256k1_1.secp256k1.Point.fromHex(pubkey).toRawBytes(false);\n case 65:\n return pubkey;\n default:\n throw new Error(\"Invalid pubkey length\");\n }\n }\n static trimRecoveryByte(signature) {\n switch (signature.length) {\n case 64:\n return signature;\n case 65:\n return signature.slice(0, 64);\n default:\n throw new Error(\"Invalid signature length\");\n }\n }\n}\nexports.Secp256k1 = Secp256k1;\n//# sourceMappingURL=secp256k1.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExtendedSecp256k1Signature = exports.Secp256k1Signature = void 0;\nfunction trimLeadingNullBytes(inData) {\n let numberOfLeadingNullBytes = 0;\n for (const byte of inData) {\n if (byte === 0x00) {\n numberOfLeadingNullBytes++;\n }\n else {\n break;\n }\n }\n return inData.slice(numberOfLeadingNullBytes);\n}\nconst derTagInteger = 0x02;\nclass Secp256k1Signature {\n /**\n * Takes the pair of integers (r, s) as 2x32 byte of binary data.\n *\n * Note: This is the format Cosmos SDK uses natively.\n *\n * @param data a 64 byte value containing integers r and s.\n */\n static fromFixedLength(data) {\n if (data.length !== 64) {\n throw new Error(`Got invalid data length: ${data.length}. Expected 2x 32 bytes for the pair (r, s)`);\n }\n return new Secp256k1Signature(trimLeadingNullBytes(data.slice(0, 32)), trimLeadingNullBytes(data.slice(32, 64)));\n }\n static fromDer(data) {\n let pos = 0;\n if (data[pos++] !== 0x30) {\n throw new Error(\"Prefix 0x30 expected\");\n }\n const bodyLength = data[pos++];\n if (data.length - pos !== bodyLength) {\n throw new Error(\"Data length mismatch detected\");\n }\n // r\n const rTag = data[pos++];\n if (rTag !== derTagInteger) {\n throw new Error(\"INTEGER tag expected\");\n }\n const rLength = data[pos++];\n if (rLength >= 0x80) {\n throw new Error(\"Decoding length values above 127 not supported\");\n }\n const rData = data.slice(pos, pos + rLength);\n pos += rLength;\n // s\n const sTag = data[pos++];\n if (sTag !== derTagInteger) {\n throw new Error(\"INTEGER tag expected\");\n }\n const sLength = data[pos++];\n if (sLength >= 0x80) {\n throw new Error(\"Decoding length values above 127 not supported\");\n }\n const sData = data.slice(pos, pos + sLength);\n pos += sLength;\n return new Secp256k1Signature(\n // r/s data can contain leading 0 bytes to express integers being non-negative in DER\n trimLeadingNullBytes(rData), trimLeadingNullBytes(sData));\n }\n constructor(r, s) {\n if (r.length > 32 || r.length === 0 || r[0] === 0x00) {\n throw new Error(\"Unsigned integer r must be encoded as unpadded big endian.\");\n }\n if (s.length > 32 || s.length === 0 || s[0] === 0x00) {\n throw new Error(\"Unsigned integer s must be encoded as unpadded big endian.\");\n }\n this.data = {\n r: r,\n s: s,\n };\n }\n r(length) {\n if (length === undefined) {\n return this.data.r;\n }\n else {\n const paddingLength = length - this.data.r.length;\n if (paddingLength < 0) {\n throw new Error(\"Length too small to hold parameter r\");\n }\n const padding = new Uint8Array(paddingLength);\n return new Uint8Array([...padding, ...this.data.r]);\n }\n }\n s(length) {\n if (length === undefined) {\n return this.data.s;\n }\n else {\n const paddingLength = length - this.data.s.length;\n if (paddingLength < 0) {\n throw new Error(\"Length too small to hold parameter s\");\n }\n const padding = new Uint8Array(paddingLength);\n return new Uint8Array([...padding, ...this.data.s]);\n }\n }\n toFixedLength() {\n return new Uint8Array([...this.r(32), ...this.s(32)]);\n }\n toDer() {\n // DER supports negative integers but our data is unsigned. Thus we need to prepend\n // a leading 0 byte when the highest bit is set to differentiate negative values\n const rEncoded = this.data.r[0] >= 0x80 ? new Uint8Array([0, ...this.data.r]) : this.data.r;\n const sEncoded = this.data.s[0] >= 0x80 ? new Uint8Array([0, ...this.data.s]) : this.data.s;\n const rLength = rEncoded.length;\n const sLength = sEncoded.length;\n const data = new Uint8Array([derTagInteger, rLength, ...rEncoded, derTagInteger, sLength, ...sEncoded]);\n return new Uint8Array([0x30, data.length, ...data]);\n }\n}\nexports.Secp256k1Signature = Secp256k1Signature;\n/**\n * A Secp256k1Signature plus the recovery parameter\n */\nclass ExtendedSecp256k1Signature extends Secp256k1Signature {\n /**\n * Decode extended signature from the simple fixed length encoding\n * described in toFixedLength().\n */\n static fromFixedLength(data) {\n if (data.length !== 65) {\n throw new Error(`Got invalid data length ${data.length}. Expected 32 + 32 + 1`);\n }\n return new ExtendedSecp256k1Signature(trimLeadingNullBytes(data.slice(0, 32)), trimLeadingNullBytes(data.slice(32, 64)), data[64]);\n }\n constructor(r, s, recovery) {\n super(r, s);\n if (!Number.isInteger(recovery)) {\n throw new Error(\"The recovery parameter must be an integer.\");\n }\n if (recovery < 0 || recovery > 4) {\n throw new Error(\"The recovery parameter must be one of 0, 1, 2, 3.\");\n }\n this.recovery = recovery;\n }\n /**\n * A simple custom encoding that encodes the extended signature as\n * r (32 bytes) | s (32 bytes) | recovery param (1 byte)\n * where | denotes concatenation of bonary data.\n */\n toFixedLength() {\n return new Uint8Array([...this.r(32), ...this.s(32), this.recovery]);\n }\n}\nexports.ExtendedSecp256k1Signature = ExtendedSecp256k1Signature;\n//# sourceMappingURL=secp256k1signature.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha512 = exports.Sha256 = void 0;\nexports.sha256 = sha256;\nexports.sha512 = sha512;\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst sha512_1 = require(\"@noble/hashes/sha512\");\nconst utils_1 = require(\"./utils\");\nclass Sha256 {\n constructor(firstData) {\n this.blockSize = 512 / 8;\n this.impl = sha256_1.sha256.create();\n if (firstData) {\n this.update(firstData);\n }\n }\n update(data) {\n this.impl.update((0, utils_1.toRealUint8Array)(data));\n return this;\n }\n digest() {\n return this.impl.digest();\n }\n}\nexports.Sha256 = Sha256;\n/** Convenience function equivalent to `new Sha256(data).digest()` */\nfunction sha256(data) {\n return new Sha256(data).digest();\n}\nclass Sha512 {\n constructor(firstData) {\n this.blockSize = 1024 / 8;\n this.impl = sha512_1.sha512.create();\n if (firstData) {\n this.update(firstData);\n }\n }\n update(data) {\n this.impl.update((0, utils_1.toRealUint8Array)(data));\n return this;\n }\n digest() {\n return this.impl.digest();\n }\n}\nexports.Sha512 = Sha512;\n/** Convenience function equivalent to `new Sha512(data).digest()` */\nfunction sha512(data) {\n return new Sha512(data).digest();\n}\n//# sourceMappingURL=sha.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Slip10 = exports.Slip10RawIndex = exports.Slip10Curve = void 0;\nexports.slip10CurveFromString = slip10CurveFromString;\nexports.pathToString = pathToString;\nexports.stringToPath = stringToPath;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst secp256k1_1 = require(\"@noble/curves/secp256k1\");\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst hmac_1 = require(\"./hmac\");\nconst sha_1 = require(\"./sha\");\n/**\n * Raw values must match the curve string in SLIP-0010 master key generation\n *\n * @see https://github.com/satoshilabs/slips/blob/master/slip-0010.md#master-key-generation\n */\nvar Slip10Curve;\n(function (Slip10Curve) {\n Slip10Curve[\"Secp256k1\"] = \"Bitcoin seed\";\n Slip10Curve[\"Ed25519\"] = \"ed25519 seed\";\n})(Slip10Curve || (exports.Slip10Curve = Slip10Curve = {}));\nfunction bytesToUnsignedBigInt(a) {\n return BigInt(\"0x\" + (0, encoding_1.toHex)(a));\n}\n/**\n * Reverse mapping of Slip10Curve\n */\nfunction slip10CurveFromString(curveString) {\n switch (curveString) {\n case Slip10Curve.Ed25519:\n return Slip10Curve.Ed25519;\n case Slip10Curve.Secp256k1:\n return Slip10Curve.Secp256k1;\n default:\n throw new Error(`Unknown curve string: '${curveString}'`);\n }\n}\nclass Slip10RawIndex extends math_1.Uint32 {\n static hardened(hardenedIndex) {\n return new Slip10RawIndex(hardenedIndex + 2 ** 31);\n }\n static normal(normalIndex) {\n return new Slip10RawIndex(normalIndex);\n }\n isHardened() {\n return this.data >= 2 ** 31;\n }\n}\nexports.Slip10RawIndex = Slip10RawIndex;\n// Universal private key derivation accoring to\n// https://github.com/satoshilabs/slips/blob/master/slip-0010.md\nclass Slip10 {\n static derivePath(curve, seed, path) {\n let result = this.master(curve, seed);\n for (const rawIndex of path) {\n result = this.child(curve, result.privkey, result.chainCode, rawIndex);\n }\n return result;\n }\n static master(curve, seed) {\n const i = new hmac_1.Hmac(sha_1.Sha512, (0, encoding_1.toAscii)(curve)).update(seed).digest();\n const il = i.slice(0, 32);\n const ir = i.slice(32, 64);\n if (curve !== Slip10Curve.Ed25519 && (this.isZero(il) || this.isGteN(curve, il))) {\n return this.master(curve, i);\n }\n return {\n chainCode: ir,\n privkey: il,\n };\n }\n static child(curve, parentPrivkey, parentChainCode, rawIndex) {\n let i;\n if (rawIndex.isHardened()) {\n const payload = new Uint8Array([0x00, ...parentPrivkey, ...rawIndex.toBytesBigEndian()]);\n i = new hmac_1.Hmac(sha_1.Sha512, parentChainCode).update(payload).digest();\n }\n else {\n if (curve === Slip10Curve.Ed25519) {\n throw new Error(\"Normal keys are not allowed with ed25519\");\n }\n else {\n // Step 1 of https://github.com/satoshilabs/slips/blob/master/slip-0010.md#private-parent-key--private-child-key\n // Calculate I = HMAC-SHA512(Key = c_par, Data = ser_P(point(k_par)) || ser_32(i)).\n // where the functions point() and ser_p() are defined in BIP-0032\n const data = new Uint8Array([\n ...Slip10.serializedPoint(curve, bytesToUnsignedBigInt(parentPrivkey)),\n ...rawIndex.toBytesBigEndian(),\n ]);\n i = new hmac_1.Hmac(sha_1.Sha512, parentChainCode).update(data).digest();\n }\n }\n return this.childImpl(curve, parentPrivkey, parentChainCode, rawIndex, i);\n }\n /**\n * Implementation of ser_P(point(k_par)) from BIP-0032\n *\n * @see https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\n */\n static serializedPoint(curve, p) {\n switch (curve) {\n case Slip10Curve.Secp256k1:\n return secp256k1_1.secp256k1.Point.BASE.multiply(p).toRawBytes(true);\n default:\n throw new Error(\"curve not supported\");\n }\n }\n static childImpl(curve, parentPrivkey, parentChainCode, rawIndex, i) {\n // step 2 (of the Private parent key → private child key algorithm)\n const il = i.slice(0, 32);\n const ir = i.slice(32, 64);\n // step 3\n const returnChainCode = ir;\n // step 4\n if (curve === Slip10Curve.Ed25519) {\n return {\n chainCode: returnChainCode,\n privkey: il,\n };\n }\n // step 5\n const n = this.n(curve);\n const returnChildKeyAsNumber = new bn_js_1.default(il).add(new bn_js_1.default(parentPrivkey)).mod(n);\n const returnChildKey = Uint8Array.from(returnChildKeyAsNumber.toArray(\"be\", 32));\n // step 6\n if (this.isGteN(curve, il) || this.isZero(returnChildKey)) {\n const newI = new hmac_1.Hmac(sha_1.Sha512, parentChainCode)\n .update(new Uint8Array([0x01, ...ir, ...rawIndex.toBytesBigEndian()]))\n .digest();\n return this.childImpl(curve, parentPrivkey, parentChainCode, rawIndex, newI);\n }\n // step 7\n return {\n chainCode: returnChainCode,\n privkey: returnChildKey,\n };\n }\n static isZero(privkey) {\n return privkey.every((byte) => byte === 0);\n }\n static isGteN(curve, privkey) {\n const keyAsNumber = new bn_js_1.default(privkey);\n return keyAsNumber.gte(this.n(curve));\n }\n static n(curve) {\n switch (curve) {\n case Slip10Curve.Secp256k1:\n return new bn_js_1.default(\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141\", 16);\n default:\n throw new Error(\"curve not supported\");\n }\n }\n}\nexports.Slip10 = Slip10;\nfunction pathToString(path) {\n return path.reduce((current, component) => {\n const componentString = component.isHardened()\n ? `${component.toNumber() - 2 ** 31}'`\n : component.toString();\n return current + \"/\" + componentString;\n }, \"m\");\n}\nfunction stringToPath(input) {\n if (!input.startsWith(\"m\"))\n throw new Error(\"Path string must start with 'm'\");\n let rest = input.slice(1);\n const out = new Array();\n while (rest) {\n const match = rest.match(/^\\/([0-9]+)('?)/);\n if (!match)\n throw new Error(\"Syntax error while reading path component\");\n const [fullMatch, numberString, apostrophe] = match;\n const value = math_1.Uint53.fromString(numberString).toNumber();\n if (value >= 2 ** 31)\n throw new Error(\"Component value too high. Must not exceed 2**31-1.\");\n if (apostrophe)\n out.push(Slip10RawIndex.hardened(value));\n else\n out.push(Slip10RawIndex.normal(value));\n rest = rest.slice(fullMatch.length);\n }\n return out;\n}\n//# sourceMappingURL=slip10.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toRealUint8Array = toRealUint8Array;\n// See https://github.com/paulmillr/noble-hashes/issues/25 for why this is needed\nfunction toRealUint8Array(data) {\n if (data instanceof Uint8Array)\n return data;\n else\n return Uint8Array.from(data);\n}\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toAscii = toAscii;\nexports.fromAscii = fromAscii;\nfunction toAscii(input) {\n const toNums = (str) => str.split(\"\").map((x) => {\n const charCode = x.charCodeAt(0);\n // 0x00–0x1F control characters\n // 0x20–0x7E printable characters\n // 0x7F delete character\n // 0x80–0xFF out of 7 bit ascii range\n if (charCode < 0x20 || charCode > 0x7e) {\n throw new Error(\"Cannot encode character that is out of printable ASCII range: \" + charCode);\n }\n return charCode;\n });\n return Uint8Array.from(toNums(input));\n}\nfunction fromAscii(data) {\n const fromNums = (listOfNumbers) => listOfNumbers.map((x) => {\n // 0x00–0x1F control characters\n // 0x20–0x7E printable characters\n // 0x7F delete character\n // 0x80–0xFF out of 7 bit ascii range\n if (x < 0x20 || x > 0x7e) {\n throw new Error(\"Cannot decode character that is out of printable ASCII range: \" + x);\n }\n return String.fromCharCode(x);\n });\n return fromNums(Array.from(data)).join(\"\");\n}\n//# sourceMappingURL=ascii.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBase64 = toBase64;\nexports.fromBase64 = fromBase64;\nconst base64js = __importStar(require(\"base64-js\"));\nfunction toBase64(data) {\n return base64js.fromByteArray(data);\n}\nfunction fromBase64(base64String) {\n if (!base64String.match(/^[a-zA-Z0-9+/]*={0,2}$/)) {\n throw new Error(\"Invalid base64 string format\");\n }\n return base64js.toByteArray(base64String);\n}\n//# sourceMappingURL=base64.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBech32 = toBech32;\nexports.fromBech32 = fromBech32;\nexports.normalizeBech32 = normalizeBech32;\nconst bech32 = __importStar(require(\"bech32\"));\nfunction toBech32(prefix, data, limit) {\n const address = bech32.encode(prefix, bech32.toWords(data), limit);\n return address;\n}\nfunction fromBech32(address, limit = Infinity) {\n const decodedAddress = bech32.decode(address, limit);\n return {\n prefix: decodedAddress.prefix,\n data: new Uint8Array(bech32.fromWords(decodedAddress.words)),\n };\n}\n/**\n * Takes a bech32 address and returns a normalized (i.e. lower case) representation of it.\n *\n * The input is validated along the way, which makes this significantly safer than\n * using `address.toLowerCase()`.\n */\nfunction normalizeBech32(address) {\n const { prefix, data } = fromBech32(address);\n return toBech32(prefix, data);\n}\n//# sourceMappingURL=bech32.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toHex = toHex;\nexports.fromHex = fromHex;\nfunction toHex(data) {\n let out = \"\";\n for (const byte of data) {\n out += (\"0\" + byte.toString(16)).slice(-2);\n }\n return out;\n}\nfunction fromHex(hexstring) {\n if (hexstring.length % 2 !== 0) {\n throw new Error(\"hex string length must be a multiple of 2\");\n }\n const out = new Uint8Array(hexstring.length / 2);\n for (let i = 0; i < out.length; i++) {\n const j = 2 * i;\n const hexByteAsString = hexstring.slice(j, j + 2);\n if (!hexByteAsString.match(/[0-9a-f]{2}/i)) {\n throw new Error(\"hex string contains invalid characters\");\n }\n out[i] = parseInt(hexByteAsString, 16);\n }\n return out;\n}\n//# sourceMappingURL=hex.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = exports.toRfc3339 = exports.fromRfc3339 = exports.toHex = exports.fromHex = exports.toBech32 = exports.normalizeBech32 = exports.fromBech32 = exports.toBase64 = exports.fromBase64 = exports.toAscii = exports.fromAscii = void 0;\nvar ascii_1 = require(\"./ascii\");\nObject.defineProperty(exports, \"fromAscii\", { enumerable: true, get: function () { return ascii_1.fromAscii; } });\nObject.defineProperty(exports, \"toAscii\", { enumerable: true, get: function () { return ascii_1.toAscii; } });\nvar base64_1 = require(\"./base64\");\nObject.defineProperty(exports, \"fromBase64\", { enumerable: true, get: function () { return base64_1.fromBase64; } });\nObject.defineProperty(exports, \"toBase64\", { enumerable: true, get: function () { return base64_1.toBase64; } });\nvar bech32_1 = require(\"./bech32\");\nObject.defineProperty(exports, \"fromBech32\", { enumerable: true, get: function () { return bech32_1.fromBech32; } });\nObject.defineProperty(exports, \"normalizeBech32\", { enumerable: true, get: function () { return bech32_1.normalizeBech32; } });\nObject.defineProperty(exports, \"toBech32\", { enumerable: true, get: function () { return bech32_1.toBech32; } });\nvar hex_1 = require(\"./hex\");\nObject.defineProperty(exports, \"fromHex\", { enumerable: true, get: function () { return hex_1.fromHex; } });\nObject.defineProperty(exports, \"toHex\", { enumerable: true, get: function () { return hex_1.toHex; } });\nvar rfc3339_1 = require(\"./rfc3339\");\nObject.defineProperty(exports, \"fromRfc3339\", { enumerable: true, get: function () { return rfc3339_1.fromRfc3339; } });\nObject.defineProperty(exports, \"toRfc3339\", { enumerable: true, get: function () { return rfc3339_1.toRfc3339; } });\nvar utf8_1 = require(\"./utf8\");\nObject.defineProperty(exports, \"fromUtf8\", { enumerable: true, get: function () { return utf8_1.fromUtf8; } });\nObject.defineProperty(exports, \"toUtf8\", { enumerable: true, get: function () { return utf8_1.toUtf8; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromRfc3339 = fromRfc3339;\nexports.toRfc3339 = toRfc3339;\nconst rfc3339Matcher = /^(\\d{4})-(\\d{2})-(\\d{2})[T ](\\d{2}):(\\d{2}):(\\d{2})(\\.\\d{1,9})?((?:[+-]\\d{2}:\\d{2})|Z)$/;\nfunction padded(integer, length = 2) {\n return integer.toString().padStart(length, \"0\");\n}\nfunction fromRfc3339(str) {\n const matches = rfc3339Matcher.exec(str);\n if (!matches) {\n throw new Error(\"Date string is not in RFC3339 format\");\n }\n const year = +matches[1];\n const month = +matches[2];\n const day = +matches[3];\n const hour = +matches[4];\n const minute = +matches[5];\n const second = +matches[6];\n // fractional seconds match either undefined or a string like \".1\", \".123456789\"\n const milliSeconds = matches[7] ? Math.floor(+matches[7] * 1000) : 0;\n let tzOffsetSign;\n let tzOffsetHours;\n let tzOffsetMinutes;\n // if timezone is undefined, it must be Z or nothing (otherwise the group would have captured).\n if (matches[8] === \"Z\") {\n tzOffsetSign = 1;\n tzOffsetHours = 0;\n tzOffsetMinutes = 0;\n }\n else {\n tzOffsetSign = matches[8].substring(0, 1) === \"-\" ? -1 : 1;\n tzOffsetHours = +matches[8].substring(1, 3);\n tzOffsetMinutes = +matches[8].substring(4, 6);\n }\n const tzOffset = tzOffsetSign * (tzOffsetHours * 60 + tzOffsetMinutes) * 60; // seconds\n const date = new Date();\n date.setUTCFullYear(year, month - 1, day);\n date.setUTCHours(hour, minute, second, milliSeconds);\n return new Date(date.getTime() - tzOffset * 1000);\n}\nfunction toRfc3339(date) {\n const year = date.getUTCFullYear();\n const month = padded(date.getUTCMonth() + 1);\n const day = padded(date.getUTCDate());\n const hour = padded(date.getUTCHours());\n const minute = padded(date.getUTCMinutes());\n const second = padded(date.getUTCSeconds());\n const ms = padded(date.getUTCMilliseconds(), 3);\n return `${year}-${month}-${day}T${hour}:${minute}:${second}.${ms}Z`;\n}\n//# sourceMappingURL=rfc3339.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = toUtf8;\nexports.fromUtf8 = fromUtf8;\nfunction toUtf8(str) {\n return new TextEncoder().encode(str);\n}\n/**\n * Takes UTF-8 data and decodes it to a string.\n *\n * In lossy mode, the [REPLACEMENT CHARACTER](https://en.wikipedia.org/wiki/Specials_(Unicode_block))\n * is used to substitude invalid encodings.\n * By default lossy mode is off and invalid data will lead to exceptions.\n */\nfunction fromUtf8(data, lossy = false) {\n const fatal = !lossy;\n return new TextDecoder(\"utf-8\", { fatal }).decode(data);\n}\n//# sourceMappingURL=utf8.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Decimal = void 0;\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\n// Too large values lead to massive memory usage. Limit to something sensible.\n// The largest value we need is 18 (Ether).\nconst maxFractionalDigits = 100;\n/**\n * A type for arbitrary precision, non-negative decimals.\n *\n * Instances of this class are immutable.\n */\nclass Decimal {\n static fromUserInput(input, fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n const badCharacter = input.match(/[^0-9.]/);\n if (badCharacter) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n throw new Error(`Invalid character at position ${badCharacter.index + 1}`);\n }\n let whole;\n let fractional;\n if (input === \"\") {\n whole = \"0\";\n fractional = \"\";\n }\n else if (input.search(/\\./) === -1) {\n // integer format, no separator\n whole = input;\n fractional = \"\";\n }\n else {\n const parts = input.split(\".\");\n switch (parts.length) {\n case 0:\n case 1:\n throw new Error(\"Fewer than two elements in split result. This must not happen here.\");\n case 2:\n if (!parts[1])\n throw new Error(\"Fractional part missing\");\n whole = parts[0];\n fractional = parts[1].replace(/0+$/, \"\");\n break;\n default:\n throw new Error(\"More than one separator found\");\n }\n }\n if (fractional.length > fractionalDigits) {\n throw new Error(\"Got more fractional digits than supported\");\n }\n const quantity = `${whole}${fractional.padEnd(fractionalDigits, \"0\")}`;\n return new Decimal(quantity, fractionalDigits);\n }\n static fromAtomics(atomics, fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(atomics, fractionalDigits);\n }\n /**\n * Creates a Decimal with value 0.0 and the given number of fractial digits.\n *\n * Fractional digits are not relevant for the value but needed to be able\n * to perform arithmetic operations with other decimals.\n */\n static zero(fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(\"0\", fractionalDigits);\n }\n /**\n * Creates a Decimal with value 1.0 and the given number of fractial digits.\n *\n * Fractional digits are not relevant for the value but needed to be able\n * to perform arithmetic operations with other decimals.\n */\n static one(fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(\"1\" + \"0\".repeat(fractionalDigits), fractionalDigits);\n }\n static verifyFractionalDigits(fractionalDigits) {\n if (!Number.isInteger(fractionalDigits))\n throw new Error(\"Fractional digits is not an integer\");\n if (fractionalDigits < 0)\n throw new Error(\"Fractional digits must not be negative\");\n if (fractionalDigits > maxFractionalDigits) {\n throw new Error(`Fractional digits must not exceed ${maxFractionalDigits}`);\n }\n }\n static compare(a, b) {\n if (a.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n return a.data.atomics.cmp(new bn_js_1.default(b.atomics));\n }\n get atomics() {\n return this.data.atomics.toString();\n }\n get fractionalDigits() {\n return this.data.fractionalDigits;\n }\n constructor(atomics, fractionalDigits) {\n if (!atomics.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format. Only non-negative integers in decimal representation supported.\");\n }\n this.data = {\n atomics: new bn_js_1.default(atomics),\n fractionalDigits: fractionalDigits,\n };\n }\n /** Creates a new instance with the same value */\n clone() {\n return new Decimal(this.atomics, this.fractionalDigits);\n }\n /** Returns the greatest decimal <= this which has no fractional part (rounding down) */\n floor() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return this.clone();\n }\n else {\n return Decimal.fromAtomics(whole.mul(factor).toString(), this.fractionalDigits);\n }\n }\n /** Returns the smallest decimal >= this which has no fractional part (rounding up) */\n ceil() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return this.clone();\n }\n else {\n return Decimal.fromAtomics(whole.addn(1).mul(factor).toString(), this.fractionalDigits);\n }\n }\n toString() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return whole.toString();\n }\n else {\n const fullFractionalPart = fractional.toString().padStart(this.data.fractionalDigits, \"0\");\n const trimmedFractionalPart = fullFractionalPart.replace(/0+$/, \"\");\n return `${whole.toString()}.${trimmedFractionalPart}`;\n }\n }\n /**\n * Returns an approximation as a float type. Only use this if no\n * exact calculation is required.\n */\n toFloatApproximation() {\n const out = Number(this.toString());\n if (Number.isNaN(out))\n throw new Error(\"Conversion to number failed\");\n return out;\n }\n /**\n * a.plus(b) returns a+b.\n *\n * Both values need to have the same fractional digits.\n */\n plus(b) {\n if (this.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n const sum = this.data.atomics.add(new bn_js_1.default(b.atomics));\n return new Decimal(sum.toString(), this.fractionalDigits);\n }\n /**\n * a.minus(b) returns a-b.\n *\n * Both values need to have the same fractional digits.\n * The resulting difference needs to be non-negative.\n */\n minus(b) {\n if (this.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n const difference = this.data.atomics.sub(new bn_js_1.default(b.atomics));\n if (difference.ltn(0))\n throw new Error(\"Difference must not be negative\");\n return new Decimal(difference.toString(), this.fractionalDigits);\n }\n /**\n * a.multiply(b) returns a*b.\n *\n * We only allow multiplication by unsigned integers to avoid rounding errors.\n */\n multiply(b) {\n const product = this.data.atomics.mul(new bn_js_1.default(b.toString()));\n return new Decimal(product.toString(), this.fractionalDigits);\n }\n equals(b) {\n return Decimal.compare(this, b) === 0;\n }\n isLessThan(b) {\n return Decimal.compare(this, b) < 0;\n }\n isLessThanOrEqual(b) {\n return Decimal.compare(this, b) <= 0;\n }\n isGreaterThan(b) {\n return Decimal.compare(this, b) > 0;\n }\n isGreaterThanOrEqual(b) {\n return Decimal.compare(this, b) >= 0;\n }\n}\nexports.Decimal = Decimal;\n//# sourceMappingURL=decimal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uint64 = exports.Uint53 = exports.Uint32 = exports.Int53 = exports.Decimal = void 0;\nvar decimal_1 = require(\"./decimal\");\nObject.defineProperty(exports, \"Decimal\", { enumerable: true, get: function () { return decimal_1.Decimal; } });\nvar integers_1 = require(\"./integers\");\nObject.defineProperty(exports, \"Int53\", { enumerable: true, get: function () { return integers_1.Int53; } });\nObject.defineProperty(exports, \"Uint32\", { enumerable: true, get: function () { return integers_1.Uint32; } });\nObject.defineProperty(exports, \"Uint53\", { enumerable: true, get: function () { return integers_1.Uint53; } });\nObject.defineProperty(exports, \"Uint64\", { enumerable: true, get: function () { return integers_1.Uint64; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n/* eslint-disable no-bitwise */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uint64 = exports.Uint53 = exports.Int53 = exports.Uint32 = void 0;\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst uint64MaxValue = new bn_js_1.default(\"18446744073709551615\", 10, \"be\");\nclass Uint32 {\n /** @deprecated use Uint32.fromBytes */\n static fromBigEndianBytes(bytes) {\n return Uint32.fromBytes(bytes);\n }\n /**\n * Creates a Uint32 from a fixed length byte array.\n *\n * @param bytes a list of exactly 4 bytes\n * @param endianess defaults to big endian\n */\n static fromBytes(bytes, endianess = \"be\") {\n if (bytes.length !== 4) {\n throw new Error(\"Invalid input length. Expected 4 bytes.\");\n }\n for (let i = 0; i < bytes.length; ++i) {\n if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) {\n throw new Error(\"Invalid value in byte. Found: \" + bytes[i]);\n }\n }\n const beBytes = endianess === \"be\" ? bytes : Array.from(bytes).reverse();\n // Use multiplication instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint32(beBytes[0] * 2 ** 24 + beBytes[1] * 2 ** 16 + beBytes[2] * 2 ** 8 + beBytes[3]);\n }\n static fromString(str) {\n if (!str.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Uint32(Number.parseInt(str, 10));\n }\n constructor(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n if (input < 0 || input > 4294967295) {\n throw new Error(\"Input not in uint32 range: \" + input.toString());\n }\n this.data = input;\n }\n toBytesBigEndian() {\n // Use division instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint8Array([\n Math.floor(this.data / 2 ** 24) & 0xff,\n Math.floor(this.data / 2 ** 16) & 0xff,\n Math.floor(this.data / 2 ** 8) & 0xff,\n Math.floor(this.data / 2 ** 0) & 0xff,\n ]);\n }\n toBytesLittleEndian() {\n // Use division instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint8Array([\n Math.floor(this.data / 2 ** 0) & 0xff,\n Math.floor(this.data / 2 ** 8) & 0xff,\n Math.floor(this.data / 2 ** 16) & 0xff,\n Math.floor(this.data / 2 ** 24) & 0xff,\n ]);\n }\n toNumber() {\n return this.data;\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Uint32 = Uint32;\nclass Int53 {\n static fromString(str) {\n if (!str.match(/^-?[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Int53(Number.parseInt(str, 10));\n }\n constructor(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n if (input < Number.MIN_SAFE_INTEGER || input > Number.MAX_SAFE_INTEGER) {\n throw new Error(\"Input not in int53 range: \" + input.toString());\n }\n this.data = input;\n }\n toNumber() {\n return this.data;\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Int53 = Int53;\nclass Uint53 {\n static fromString(str) {\n const signed = Int53.fromString(str);\n return new Uint53(signed.toNumber());\n }\n constructor(input) {\n const signed = new Int53(input);\n if (signed.toNumber() < 0) {\n throw new Error(\"Input is negative\");\n }\n this.data = signed;\n }\n toNumber() {\n return this.data.toNumber();\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Uint53 = Uint53;\nclass Uint64 {\n /** @deprecated use Uint64.fromBytes */\n static fromBytesBigEndian(bytes) {\n return Uint64.fromBytes(bytes);\n }\n /**\n * Creates a Uint64 from a fixed length byte array.\n *\n * @param bytes a list of exactly 8 bytes\n * @param endianess defaults to big endian\n */\n static fromBytes(bytes, endianess = \"be\") {\n if (bytes.length !== 8) {\n throw new Error(\"Invalid input length. Expected 8 bytes.\");\n }\n for (let i = 0; i < bytes.length; ++i) {\n if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) {\n throw new Error(\"Invalid value in byte. Found: \" + bytes[i]);\n }\n }\n const beBytes = endianess === \"be\" ? Array.from(bytes) : Array.from(bytes).reverse();\n return new Uint64(new bn_js_1.default(beBytes));\n }\n static fromString(str) {\n if (!str.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Uint64(new bn_js_1.default(str, 10, \"be\"));\n }\n static fromNumber(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n let bigint;\n try {\n bigint = new bn_js_1.default(input);\n }\n catch {\n throw new Error(\"Input is not a safe integer\");\n }\n return new Uint64(bigint);\n }\n constructor(data) {\n if (data.isNeg()) {\n throw new Error(\"Input is negative\");\n }\n if (data.gt(uint64MaxValue)) {\n throw new Error(\"Input exceeds uint64 range\");\n }\n this.data = data;\n }\n toBytesBigEndian() {\n return Uint8Array.from(this.data.toArray(\"be\", 8));\n }\n toBytesLittleEndian() {\n return Uint8Array.from(this.data.toArray(\"le\", 8));\n }\n toString() {\n return this.data.toString(10);\n }\n toBigInt() {\n return BigInt(this.toString());\n }\n toNumber() {\n return this.data.toNumber();\n }\n}\nexports.Uint64 = Uint64;\n// Assign classes to unused variables in order to verify static interface conformance at compile time.\n// Workaround for https://github.com/microsoft/TypeScript/issues/33892\nconst _int53Class = Int53;\nconst _uint53Class = Uint53;\nconst _uint32Class = Uint32;\nconst _uint64Class = Uint64;\n//# sourceMappingURL=integers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.arrayContentEquals = arrayContentEquals;\nexports.arrayContentStartsWith = arrayContentStartsWith;\n/**\n * Compares the content of two arrays-like objects for equality.\n *\n * Equality is defined as having equal length and element values, where element equality means `===` returning `true`.\n *\n * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type.\n * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type.\n */\nfunction arrayContentEquals(a, b) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; ++i) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n}\n/**\n * Checks if `a` starts with the contents of `b`.\n *\n * This requires equality of the element values, where element equality means `===` returning `true`.\n *\n * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type.\n * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type.\n */\nfunction arrayContentStartsWith(a, b) {\n if (a.length < b.length)\n return false;\n for (let i = 0; i < b.length; ++i) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n}\n//# sourceMappingURL=arrays.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assert = assert;\nexports.assertDefined = assertDefined;\nexports.assertDefinedAndNotNull = assertDefinedAndNotNull;\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction assert(condition, msg) {\n if (!condition) {\n throw new Error(msg || \"condition is not truthy\");\n }\n}\nfunction assertDefined(value, msg) {\n if (value === undefined) {\n throw new Error(msg ?? \"value is undefined\");\n }\n}\nfunction assertDefinedAndNotNull(value, msg) {\n if (value === undefined || value === null) {\n throw new Error(msg ?? \"value is undefined or null\");\n }\n}\n//# sourceMappingURL=assert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isUint8Array = exports.isNonNullObject = exports.isDefined = exports.sleep = exports.assertDefinedAndNotNull = exports.assertDefined = exports.assert = exports.arrayContentStartsWith = exports.arrayContentEquals = void 0;\nvar arrays_1 = require(\"./arrays\");\nObject.defineProperty(exports, \"arrayContentEquals\", { enumerable: true, get: function () { return arrays_1.arrayContentEquals; } });\nObject.defineProperty(exports, \"arrayContentStartsWith\", { enumerable: true, get: function () { return arrays_1.arrayContentStartsWith; } });\nvar assert_1 = require(\"./assert\");\nObject.defineProperty(exports, \"assert\", { enumerable: true, get: function () { return assert_1.assert; } });\nObject.defineProperty(exports, \"assertDefined\", { enumerable: true, get: function () { return assert_1.assertDefined; } });\nObject.defineProperty(exports, \"assertDefinedAndNotNull\", { enumerable: true, get: function () { return assert_1.assertDefinedAndNotNull; } });\nvar sleep_1 = require(\"./sleep\");\nObject.defineProperty(exports, \"sleep\", { enumerable: true, get: function () { return sleep_1.sleep; } });\nvar typechecks_1 = require(\"./typechecks\");\nObject.defineProperty(exports, \"isDefined\", { enumerable: true, get: function () { return typechecks_1.isDefined; } });\nObject.defineProperty(exports, \"isNonNullObject\", { enumerable: true, get: function () { return typechecks_1.isNonNullObject; } });\nObject.defineProperty(exports, \"isUint8Array\", { enumerable: true, get: function () { return typechecks_1.isUint8Array; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sleep = sleep;\nasync function sleep(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n//# sourceMappingURL=sleep.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNonNullObject = isNonNullObject;\nexports.isUint8Array = isUint8Array;\nexports.isDefined = isDefined;\n/**\n * Checks if data is a non-null object (i.e. matches the TypeScript object type).\n *\n * Note: this returns true for arrays, which are objects in JavaScript\n * even though array and object are different types in JSON.\n *\n * @see https://www.typescriptlang.org/docs/handbook/basic-types.html#object\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isNonNullObject(data) {\n return typeof data === \"object\" && data !== null;\n}\n/**\n * Checks if data is an Uint8Array. Note: Buffer is treated as not a Uint8Array\n */\nfunction isUint8Array(data) {\n if (!isNonNullObject(data))\n return false;\n // Avoid instanceof check which is unreliable in some JS environments\n // https://medium.com/@simonwarta/limitations-of-the-instanceof-operator-f4bcdbe7a400\n // Use check that was discussed in https://github.com/crypto-browserify/pbkdf2/pull/81\n if (Object.prototype.toString.call(data) !== \"[object Uint8Array]\")\n return false;\n if (typeof Buffer !== \"undefined\" && typeof Buffer.isBuffer !== \"undefined\") {\n // Buffer.isBuffer is available at runtime\n if (Buffer.isBuffer(data))\n return false;\n }\n return true;\n}\n/**\n * Checks if input is not undefined in a TypeScript-friendly way.\n *\n * This is convenient to use in e.g. `Array.filter` as it will convert\n * the type of a `Array` to `Array`.\n */\nfunction isDefined(value) {\n return value !== undefined;\n}\n//# sourceMappingURL=typechecks.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isJsonCompatibleValue = isJsonCompatibleValue;\nexports.isJsonCompatibleArray = isJsonCompatibleArray;\nexports.isJsonCompatibleDictionary = isJsonCompatibleDictionary;\nfunction isJsonCompatibleValue(value) {\n if (typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\" ||\n value === null ||\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n isJsonCompatibleArray(value) ||\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n isJsonCompatibleDictionary(value)) {\n return true;\n }\n else {\n return false;\n }\n}\nfunction isJsonCompatibleArray(value) {\n if (!Array.isArray(value)) {\n return false;\n }\n for (const item of value) {\n if (!isJsonCompatibleValue(item)) {\n return false;\n }\n }\n // all items okay\n return true;\n}\nfunction isJsonCompatibleDictionary(value) {\n if (typeof value !== \"object\" || value === null) {\n // value must be a non-null object\n return false;\n }\n // Exclude special kind of objects like Array, Date or Uint8Array\n // Object.prototype.toString() returns a specified value:\n // http://www.ecma-international.org/ecma-262/7.0/index.html#sec-object.prototype.tostring\n if (Object.prototype.toString.call(value) !== \"[object Object]\") {\n return false;\n }\n return Object.values(value).every(isJsonCompatibleValue);\n}\n//# sourceMappingURL=compatibility.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeJsonRpcId = makeJsonRpcId;\n// Start with 10001 to avoid possible collisions with all hand-selected values like e.g. 1,2,3,42,100\nlet counter = 10000;\n/**\n * Creates a new ID to be used for creating a JSON-RPC request.\n *\n * Multiple calls of this produce unique values.\n *\n * The output may be any value compatible to JSON-RPC request IDs with an undefined output format and generation logic.\n */\nfunction makeJsonRpcId() {\n return (counter += 1);\n}\n//# sourceMappingURL=id.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.jsonRpcCode = exports.isJsonRpcSuccessResponse = exports.isJsonRpcErrorResponse = exports.parseJsonRpcSuccessResponse = exports.parseJsonRpcResponse = exports.parseJsonRpcRequest = exports.parseJsonRpcId = exports.parseJsonRpcErrorResponse = exports.JsonRpcClient = exports.makeJsonRpcId = void 0;\nvar id_1 = require(\"./id\");\nObject.defineProperty(exports, \"makeJsonRpcId\", { enumerable: true, get: function () { return id_1.makeJsonRpcId; } });\nvar jsonrpcclient_1 = require(\"./jsonrpcclient\");\nObject.defineProperty(exports, \"JsonRpcClient\", { enumerable: true, get: function () { return jsonrpcclient_1.JsonRpcClient; } });\nvar parse_1 = require(\"./parse\");\nObject.defineProperty(exports, \"parseJsonRpcErrorResponse\", { enumerable: true, get: function () { return parse_1.parseJsonRpcErrorResponse; } });\nObject.defineProperty(exports, \"parseJsonRpcId\", { enumerable: true, get: function () { return parse_1.parseJsonRpcId; } });\nObject.defineProperty(exports, \"parseJsonRpcRequest\", { enumerable: true, get: function () { return parse_1.parseJsonRpcRequest; } });\nObject.defineProperty(exports, \"parseJsonRpcResponse\", { enumerable: true, get: function () { return parse_1.parseJsonRpcResponse; } });\nObject.defineProperty(exports, \"parseJsonRpcSuccessResponse\", { enumerable: true, get: function () { return parse_1.parseJsonRpcSuccessResponse; } });\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"isJsonRpcErrorResponse\", { enumerable: true, get: function () { return types_1.isJsonRpcErrorResponse; } });\nObject.defineProperty(exports, \"isJsonRpcSuccessResponse\", { enumerable: true, get: function () { return types_1.isJsonRpcSuccessResponse; } });\nObject.defineProperty(exports, \"jsonRpcCode\", { enumerable: true, get: function () { return types_1.jsonRpcCode; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonRpcClient = void 0;\nconst stream_1 = require(\"@cosmjs/stream\");\nconst types_1 = require(\"./types\");\n/**\n * A thin wrapper that is used to bring together requests and responses by ID.\n *\n * Using this class is only advised for continous communication channels like\n * WebSockets or WebWorker messaging.\n */\nclass JsonRpcClient {\n constructor(connection) {\n this.connection = connection;\n }\n async run(request) {\n const filteredStream = this.connection.responseStream.filter((r) => r.id === request.id);\n const pendingResponses = (0, stream_1.firstEvent)(filteredStream);\n this.connection.sendRequest(request);\n const response = await pendingResponses;\n if ((0, types_1.isJsonRpcErrorResponse)(response)) {\n const error = response.error;\n throw new Error(`JSON RPC error: code=${error.code}; message='${error.message}'`);\n }\n return response;\n }\n}\nexports.JsonRpcClient = JsonRpcClient;\n//# sourceMappingURL=jsonrpcclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseJsonRpcId = parseJsonRpcId;\nexports.parseJsonRpcRequest = parseJsonRpcRequest;\nexports.parseJsonRpcErrorResponse = parseJsonRpcErrorResponse;\nexports.parseJsonRpcSuccessResponse = parseJsonRpcSuccessResponse;\nexports.parseJsonRpcResponse = parseJsonRpcResponse;\nconst compatibility_1 = require(\"./compatibility\");\n/**\n * Extracts ID field from request or response object.\n *\n * Returns `null` when no valid ID was found.\n */\nfunction parseJsonRpcId(data) {\n if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) {\n throw new Error(\"Data must be JSON compatible dictionary\");\n }\n const id = data.id;\n if (typeof id !== \"number\" && typeof id !== \"string\") {\n return null;\n }\n return id;\n}\nfunction parseJsonRpcRequest(data) {\n if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) {\n throw new Error(\"Data must be JSON compatible dictionary\");\n }\n if (data.jsonrpc !== \"2.0\") {\n throw new Error(`Got unexpected jsonrpc version: ${data.jsonrpc}`);\n }\n const id = parseJsonRpcId(data);\n if (id === null) {\n throw new Error(\"Invalid id field\");\n }\n const method = data.method;\n if (typeof method !== \"string\") {\n throw new Error(\"Invalid method field\");\n }\n if (!(0, compatibility_1.isJsonCompatibleArray)(data.params) && !(0, compatibility_1.isJsonCompatibleDictionary)(data.params)) {\n throw new Error(\"Invalid params field\");\n }\n return {\n jsonrpc: \"2.0\",\n id: id,\n method: method,\n params: data.params,\n };\n}\nfunction parseError(error) {\n if (typeof error.code !== \"number\") {\n throw new Error(\"Error property 'code' is not a number\");\n }\n if (typeof error.message !== \"string\") {\n throw new Error(\"Error property 'message' is not a string\");\n }\n let maybeUndefinedData;\n if (error.data === undefined) {\n maybeUndefinedData = undefined;\n }\n else if ((0, compatibility_1.isJsonCompatibleValue)(error.data)) {\n maybeUndefinedData = error.data;\n }\n else {\n throw new Error(\"Error property 'data' is defined but not a JSON compatible value.\");\n }\n return {\n code: error.code,\n message: error.message,\n ...(maybeUndefinedData !== undefined ? { data: maybeUndefinedData } : {}),\n };\n}\n/** Throws if data is not a JsonRpcErrorResponse */\nfunction parseJsonRpcErrorResponse(data) {\n if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) {\n throw new Error(\"Data must be JSON compatible dictionary\");\n }\n if (data.jsonrpc !== \"2.0\") {\n throw new Error(`Got unexpected jsonrpc version: ${JSON.stringify(data)}`);\n }\n const id = data.id;\n if (typeof id !== \"number\" && typeof id !== \"string\" && id !== null) {\n throw new Error(\"Invalid id field\");\n }\n if (typeof data.error === \"undefined\" || !(0, compatibility_1.isJsonCompatibleDictionary)(data.error)) {\n throw new Error(\"Invalid error field\");\n }\n return {\n jsonrpc: \"2.0\",\n id: id,\n error: parseError(data.error),\n };\n}\n/** Throws if data is not a JsonRpcSuccessResponse */\nfunction parseJsonRpcSuccessResponse(data) {\n if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) {\n throw new Error(\"Data must be JSON compatible dictionary\");\n }\n if (data.jsonrpc !== \"2.0\") {\n throw new Error(`Got unexpected jsonrpc version: ${JSON.stringify(data)}`);\n }\n const id = data.id;\n if (typeof id !== \"number\" && typeof id !== \"string\") {\n throw new Error(\"Invalid id field\");\n }\n if (typeof data.result === \"undefined\") {\n throw new Error(\"Invalid result field\");\n }\n const result = data.result;\n return {\n jsonrpc: \"2.0\",\n id: id,\n result: result,\n };\n}\n/**\n * Returns a JsonRpcErrorResponse if input can be parsed as a JSON-RPC error. Otherwise parses\n * input as JsonRpcSuccessResponse. Throws if input is neither a valid error nor success response.\n */\nfunction parseJsonRpcResponse(data) {\n let response;\n try {\n response = parseJsonRpcErrorResponse(data);\n }\n catch (_) {\n response = parseJsonRpcSuccessResponse(data);\n }\n return response;\n}\n//# sourceMappingURL=parse.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.jsonRpcCode = void 0;\nexports.isJsonRpcErrorResponse = isJsonRpcErrorResponse;\nexports.isJsonRpcSuccessResponse = isJsonRpcSuccessResponse;\nfunction isJsonRpcErrorResponse(response) {\n return typeof response.error === \"object\";\n}\nfunction isJsonRpcSuccessResponse(response) {\n return !isJsonRpcErrorResponse(response);\n}\n/**\n * Error codes as specified in JSON-RPC 2.0\n *\n * @see https://www.jsonrpc.org/specification#error_object\n */\nexports.jsonRpcCode = {\n parseError: -32700,\n invalidRequest: -32600,\n methodNotFound: -32601,\n invalidParams: -32602,\n internalError: -32603,\n // server error (Reserved for implementation-defined server-errors.):\n // -32000 to -32099\n serverError: {\n default: -32000,\n },\n};\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeTxRaw = decodeTxRaw;\nconst tx_1 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\n/**\n * Takes a serialized TxRaw (the bytes stored in Tendermint) and decodes it into something usable.\n */\nfunction decodeTxRaw(tx) {\n const txRaw = tx_1.TxRaw.decode(tx);\n return {\n authInfo: tx_1.AuthInfo.decode(txRaw.authInfoBytes),\n body: tx_1.TxBody.decode(txRaw.bodyBytes),\n signatures: txRaw.signatures,\n };\n}\n//# sourceMappingURL=decode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DirectSecp256k1HdWallet = void 0;\nexports.extractKdfConfiguration = extractKdfConfiguration;\nconst amino_1 = require(\"@cosmjs/amino\");\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst signing_1 = require(\"./signing\");\nconst wallet_1 = require(\"./wallet\");\nconst serializationTypeV1 = \"directsecp256k1hdwallet-v1\";\n/**\n * A KDF configuration that is not very strong but can be used on the main thread.\n * It takes about 1 second in Node.js 16.0.0 and should have similar runtimes in other modern Wasm hosts.\n */\nconst basicPasswordHashingOptions = {\n algorithm: \"argon2id\",\n params: {\n outputLength: 32,\n opsLimit: 24,\n memLimitKib: 12 * 1024,\n },\n};\nfunction isDerivationJson(thing) {\n if (!(0, utils_1.isNonNullObject)(thing))\n return false;\n if (typeof thing.hdPath !== \"string\")\n return false;\n if (typeof thing.prefix !== \"string\")\n return false;\n return true;\n}\nfunction extractKdfConfigurationV1(doc) {\n return doc.kdf;\n}\nfunction extractKdfConfiguration(serialization) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n switch (root.type) {\n case serializationTypeV1:\n return extractKdfConfigurationV1(root);\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n}\nconst defaultOptions = {\n bip39Password: \"\",\n hdPaths: [(0, amino_1.makeCosmoshubPath)(0)],\n prefix: \"cosmos\",\n};\n/** A wallet for protobuf based signing using SIGN_MODE_DIRECT */\nclass DirectSecp256k1HdWallet {\n /**\n * Restores a wallet from the given BIP39 mnemonic.\n *\n * @param mnemonic Any valid English mnemonic.\n * @param options An optional `DirectSecp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix.\n */\n static async fromMnemonic(mnemonic, options = {}) {\n const mnemonicChecked = new crypto_1.EnglishMnemonic(mnemonic);\n const seed = await crypto_1.Bip39.mnemonicToSeed(mnemonicChecked, options.bip39Password);\n return new DirectSecp256k1HdWallet(mnemonicChecked, {\n ...options,\n seed: seed,\n });\n }\n /**\n * Generates a new wallet with a BIP39 mnemonic of the given length.\n *\n * @param length The number of words in the mnemonic (12, 15, 18, 21 or 24).\n * @param options An optional `DirectSecp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix.\n */\n static async generate(length = 12, options = {}) {\n const entropyLength = 4 * Math.floor((11 * length) / 33);\n const entropy = crypto_1.Random.getBytes(entropyLength);\n const mnemonic = crypto_1.Bip39.encode(entropy);\n return DirectSecp256k1HdWallet.fromMnemonic(mnemonic.toString(), options);\n }\n /**\n * Restores a wallet from an encrypted serialization.\n *\n * @param password The user provided password used to generate an encryption key via a KDF.\n * This is not normalized internally (see \"Unicode normalization\" to learn more).\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n static async deserialize(serialization, password) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n switch (root.type) {\n case serializationTypeV1:\n return DirectSecp256k1HdWallet.deserializeTypeV1(serialization, password);\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n }\n /**\n * Restores a wallet from an encrypted serialization.\n *\n * This is an advanced alternative to calling `deserialize(serialization, password)` directly, which allows\n * you to offload the KDF execution to a non-UI thread (e.g. in a WebWorker).\n *\n * The caller is responsible for ensuring the key was derived with the given KDF configuration. This can be\n * done using `extractKdfConfiguration(serialization)` and `executeKdf(password, kdfConfiguration)` from this package.\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n static async deserializeWithEncryptionKey(serialization, encryptionKey) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n const untypedRoot = root;\n switch (untypedRoot.type) {\n case serializationTypeV1: {\n const decryptedBytes = await (0, wallet_1.decrypt)((0, encoding_1.fromBase64)(untypedRoot.data), encryptionKey, untypedRoot.encryption);\n const decryptedDocument = JSON.parse((0, encoding_1.fromUtf8)(decryptedBytes));\n const { mnemonic, accounts } = decryptedDocument;\n (0, utils_1.assert)(typeof mnemonic === \"string\");\n if (!Array.isArray(accounts))\n throw new Error(\"Property 'accounts' is not an array\");\n if (!accounts.every((account) => isDerivationJson(account))) {\n throw new Error(\"Account is not in the correct format.\");\n }\n const firstPrefix = accounts[0].prefix;\n if (!accounts.every(({ prefix }) => prefix === firstPrefix)) {\n throw new Error(\"Accounts do not all have the same prefix\");\n }\n const hdPaths = accounts.map(({ hdPath }) => (0, crypto_1.stringToPath)(hdPath));\n return DirectSecp256k1HdWallet.fromMnemonic(mnemonic, {\n hdPaths: hdPaths,\n prefix: firstPrefix,\n });\n }\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n }\n static async deserializeTypeV1(serialization, password) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n const encryptionKey = await (0, wallet_1.executeKdf)(password, root.kdf);\n return DirectSecp256k1HdWallet.deserializeWithEncryptionKey(serialization, encryptionKey);\n }\n constructor(mnemonic, options) {\n const prefix = options.prefix ?? defaultOptions.prefix;\n const hdPaths = options.hdPaths ?? defaultOptions.hdPaths;\n this.secret = mnemonic;\n this.seed = options.seed;\n this.accounts = hdPaths.map((hdPath) => ({\n hdPath: hdPath,\n prefix: prefix,\n }));\n }\n get mnemonic() {\n return this.secret.toString();\n }\n async getAccounts() {\n const accountsWithPrivkeys = await this.getAccountsWithPrivkeys();\n return accountsWithPrivkeys.map(({ algo, pubkey, address }) => ({\n algo: algo,\n pubkey: pubkey,\n address: address,\n }));\n }\n async signDirect(signerAddress, signDoc) {\n const accounts = await this.getAccountsWithPrivkeys();\n const account = accounts.find(({ address }) => address === signerAddress);\n if (account === undefined) {\n throw new Error(`Address ${signerAddress} not found in wallet`);\n }\n const { privkey, pubkey } = account;\n const signBytes = (0, signing_1.makeSignBytes)(signDoc);\n const hashedMessage = (0, crypto_1.sha256)(signBytes);\n const signature = await crypto_1.Secp256k1.createSignature(hashedMessage, privkey);\n const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]);\n const stdSignature = (0, amino_1.encodeSecp256k1Signature)(pubkey, signatureBytes);\n return {\n signed: signDoc,\n signature: stdSignature,\n };\n }\n /**\n * Generates an encrypted serialization of this wallet.\n *\n * @param password The user provided password used to generate an encryption key via a KDF.\n * This is not normalized internally (see \"Unicode normalization\" to learn more).\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n async serialize(password) {\n const kdfConfiguration = basicPasswordHashingOptions;\n const encryptionKey = await (0, wallet_1.executeKdf)(password, kdfConfiguration);\n return this.serializeWithEncryptionKey(encryptionKey, kdfConfiguration);\n }\n /**\n * Generates an encrypted serialization of this wallet.\n *\n * This is an advanced alternative to calling `serialize(password)` directly, which allows you to\n * offload the KDF execution to a non-UI thread (e.g. in a WebWorker).\n *\n * The caller is responsible for ensuring the key was derived with the given KDF options. If this\n * is not the case, the wallet cannot be restored with the original password.\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n async serializeWithEncryptionKey(encryptionKey, kdfConfiguration) {\n const dataToEncrypt = {\n mnemonic: this.mnemonic,\n accounts: this.accounts.map(({ hdPath, prefix }) => ({\n hdPath: (0, crypto_1.pathToString)(hdPath),\n prefix: prefix,\n })),\n };\n const dataToEncryptRaw = (0, encoding_1.toUtf8)(JSON.stringify(dataToEncrypt));\n const encryptionConfiguration = {\n algorithm: wallet_1.supportedAlgorithms.xchacha20poly1305Ietf,\n };\n const encryptedData = await (0, wallet_1.encrypt)(dataToEncryptRaw, encryptionKey, encryptionConfiguration);\n const out = {\n type: serializationTypeV1,\n kdf: kdfConfiguration,\n encryption: encryptionConfiguration,\n data: (0, encoding_1.toBase64)(encryptedData),\n };\n return JSON.stringify(out);\n }\n async getKeyPair(hdPath) {\n const { privkey } = crypto_1.Slip10.derivePath(crypto_1.Slip10Curve.Secp256k1, this.seed, hdPath);\n const { pubkey } = await crypto_1.Secp256k1.makeKeypair(privkey);\n return {\n privkey: privkey,\n pubkey: crypto_1.Secp256k1.compressPubkey(pubkey),\n };\n }\n async getAccountsWithPrivkeys() {\n return Promise.all(this.accounts.map(async ({ hdPath, prefix }) => {\n const { privkey, pubkey } = await this.getKeyPair(hdPath);\n const address = (0, encoding_1.toBech32)(prefix, (0, amino_1.rawSecp256k1PubkeyToRawAddress)(pubkey));\n return {\n algo: \"secp256k1\",\n privkey: privkey,\n pubkey: pubkey,\n address: address,\n };\n }));\n }\n}\nexports.DirectSecp256k1HdWallet = DirectSecp256k1HdWallet;\n//# sourceMappingURL=directsecp256k1hdwallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DirectSecp256k1Wallet = void 0;\nconst amino_1 = require(\"@cosmjs/amino\");\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst signing_1 = require(\"./signing\");\n/**\n * A wallet that holds a single secp256k1 keypair.\n *\n * If you want to work with BIP39 mnemonics and multiple accounts, use DirectSecp256k1HdWallet.\n */\nclass DirectSecp256k1Wallet {\n /**\n * Creates a DirectSecp256k1Wallet from the given private key\n *\n * @param privkey The private key.\n * @param prefix The bech32 address prefix (human readable part). Defaults to \"cosmos\".\n */\n static async fromKey(privkey, prefix = \"cosmos\") {\n const uncompressed = (await crypto_1.Secp256k1.makeKeypair(privkey)).pubkey;\n return new DirectSecp256k1Wallet(privkey, crypto_1.Secp256k1.compressPubkey(uncompressed), prefix);\n }\n constructor(privkey, pubkey, prefix) {\n this.privkey = privkey;\n this.pubkey = pubkey;\n this.prefix = prefix;\n }\n get address() {\n return (0, encoding_1.toBech32)(this.prefix, (0, amino_1.rawSecp256k1PubkeyToRawAddress)(this.pubkey));\n }\n async getAccounts() {\n return [\n {\n algo: \"secp256k1\",\n address: this.address,\n pubkey: this.pubkey,\n },\n ];\n }\n async signDirect(address, signDoc) {\n const signBytes = (0, signing_1.makeSignBytes)(signDoc);\n if (address !== this.address) {\n throw new Error(`Address ${address} not found in wallet`);\n }\n const hashedMessage = (0, crypto_1.sha256)(signBytes);\n const signature = await crypto_1.Secp256k1.createSignature(hashedMessage, this.privkey);\n const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]);\n const stdSignature = (0, amino_1.encodeSecp256k1Signature)(this.pubkey, signatureBytes);\n return {\n signed: signDoc,\n signature: stdSignature,\n };\n }\n}\nexports.DirectSecp256k1Wallet = DirectSecp256k1Wallet;\n//# sourceMappingURL=directsecp256k1wallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseCoins = exports.coins = exports.coin = exports.executeKdf = exports.makeSignDoc = exports.makeSignBytes = exports.makeAuthInfoBytes = exports.isOfflineDirectSigner = exports.Registry = exports.isTxBodyEncodeObject = exports.isTsProtoGeneratedType = exports.isPbjsGeneratedType = exports.encodePubkey = exports.decodePubkey = exports.decodeOptionalPubkey = exports.anyToSinglePubkey = exports.makeCosmoshubPath = exports.DirectSecp256k1Wallet = exports.extractKdfConfiguration = exports.DirectSecp256k1HdWallet = exports.decodeTxRaw = void 0;\n// This type happens to be shared between Amino and Direct sign modes\nvar decode_1 = require(\"./decode\");\nObject.defineProperty(exports, \"decodeTxRaw\", { enumerable: true, get: function () { return decode_1.decodeTxRaw; } });\nvar directsecp256k1hdwallet_1 = require(\"./directsecp256k1hdwallet\");\nObject.defineProperty(exports, \"DirectSecp256k1HdWallet\", { enumerable: true, get: function () { return directsecp256k1hdwallet_1.DirectSecp256k1HdWallet; } });\nObject.defineProperty(exports, \"extractKdfConfiguration\", { enumerable: true, get: function () { return directsecp256k1hdwallet_1.extractKdfConfiguration; } });\nvar directsecp256k1wallet_1 = require(\"./directsecp256k1wallet\");\nObject.defineProperty(exports, \"DirectSecp256k1Wallet\", { enumerable: true, get: function () { return directsecp256k1wallet_1.DirectSecp256k1Wallet; } });\nvar paths_1 = require(\"./paths\");\nObject.defineProperty(exports, \"makeCosmoshubPath\", { enumerable: true, get: function () { return paths_1.makeCosmoshubPath; } });\nvar pubkey_1 = require(\"./pubkey\");\nObject.defineProperty(exports, \"anyToSinglePubkey\", { enumerable: true, get: function () { return pubkey_1.anyToSinglePubkey; } });\nObject.defineProperty(exports, \"decodeOptionalPubkey\", { enumerable: true, get: function () { return pubkey_1.decodeOptionalPubkey; } });\nObject.defineProperty(exports, \"decodePubkey\", { enumerable: true, get: function () { return pubkey_1.decodePubkey; } });\nObject.defineProperty(exports, \"encodePubkey\", { enumerable: true, get: function () { return pubkey_1.encodePubkey; } });\nvar registry_1 = require(\"./registry\");\nObject.defineProperty(exports, \"isPbjsGeneratedType\", { enumerable: true, get: function () { return registry_1.isPbjsGeneratedType; } });\nObject.defineProperty(exports, \"isTsProtoGeneratedType\", { enumerable: true, get: function () { return registry_1.isTsProtoGeneratedType; } });\nObject.defineProperty(exports, \"isTxBodyEncodeObject\", { enumerable: true, get: function () { return registry_1.isTxBodyEncodeObject; } });\nObject.defineProperty(exports, \"Registry\", { enumerable: true, get: function () { return registry_1.Registry; } });\nvar signer_1 = require(\"./signer\");\nObject.defineProperty(exports, \"isOfflineDirectSigner\", { enumerable: true, get: function () { return signer_1.isOfflineDirectSigner; } });\nvar signing_1 = require(\"./signing\");\nObject.defineProperty(exports, \"makeAuthInfoBytes\", { enumerable: true, get: function () { return signing_1.makeAuthInfoBytes; } });\nObject.defineProperty(exports, \"makeSignBytes\", { enumerable: true, get: function () { return signing_1.makeSignBytes; } });\nObject.defineProperty(exports, \"makeSignDoc\", { enumerable: true, get: function () { return signing_1.makeSignDoc; } });\nvar wallet_1 = require(\"./wallet\");\nObject.defineProperty(exports, \"executeKdf\", { enumerable: true, get: function () { return wallet_1.executeKdf; } });\nvar amino_1 = require(\"@cosmjs/amino\");\nObject.defineProperty(exports, \"coin\", { enumerable: true, get: function () { return amino_1.coin; } });\nObject.defineProperty(exports, \"coins\", { enumerable: true, get: function () { return amino_1.coins; } });\nObject.defineProperty(exports, \"parseCoins\", { enumerable: true, get: function () { return amino_1.parseCoins; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeCosmoshubPath = makeCosmoshubPath;\nconst crypto_1 = require(\"@cosmjs/crypto\");\n/**\n * The Cosmos Hub derivation path in the form `m/44'/118'/0'/0/a`\n * with 0-based account index `a`.\n */\nfunction makeCosmoshubPath(a) {\n return [\n crypto_1.Slip10RawIndex.hardened(44),\n crypto_1.Slip10RawIndex.hardened(118),\n crypto_1.Slip10RawIndex.hardened(0),\n crypto_1.Slip10RawIndex.normal(0),\n crypto_1.Slip10RawIndex.normal(a),\n ];\n}\n//# sourceMappingURL=paths.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodePubkey = encodePubkey;\nexports.anyToSinglePubkey = anyToSinglePubkey;\nexports.decodePubkey = decodePubkey;\nexports.decodeOptionalPubkey = decodeOptionalPubkey;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst amino_1 = require(\"@cosmjs/amino\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst keys_1 = require(\"cosmjs-types/cosmos/crypto/ed25519/keys\");\nconst keys_2 = require(\"cosmjs-types/cosmos/crypto/multisig/keys\");\nconst keys_3 = require(\"cosmjs-types/cosmos/crypto/secp256k1/keys\");\nconst any_1 = require(\"cosmjs-types/google/protobuf/any\");\n/**\n * Takes a pubkey in the Amino JSON object style (type/value wrapper)\n * and convertes it into a protobuf `Any`.\n *\n * This is the reverse operation to `decodePubkey`.\n */\nfunction encodePubkey(pubkey) {\n if ((0, amino_1.isSecp256k1Pubkey)(pubkey)) {\n const pubkeyProto = keys_3.PubKey.fromPartial({\n key: (0, encoding_1.fromBase64)(pubkey.value),\n });\n return any_1.Any.fromPartial({\n typeUrl: \"/cosmos.crypto.secp256k1.PubKey\",\n value: Uint8Array.from(keys_3.PubKey.encode(pubkeyProto).finish()),\n });\n }\n else if ((0, amino_1.isEd25519Pubkey)(pubkey)) {\n const pubkeyProto = keys_1.PubKey.fromPartial({\n key: (0, encoding_1.fromBase64)(pubkey.value),\n });\n return any_1.Any.fromPartial({\n typeUrl: \"/cosmos.crypto.ed25519.PubKey\",\n value: Uint8Array.from(keys_1.PubKey.encode(pubkeyProto).finish()),\n });\n }\n else if ((0, amino_1.isMultisigThresholdPubkey)(pubkey)) {\n const pubkeyProto = keys_2.LegacyAminoPubKey.fromPartial({\n threshold: math_1.Uint53.fromString(pubkey.value.threshold).toNumber(),\n publicKeys: pubkey.value.pubkeys.map(encodePubkey),\n });\n return any_1.Any.fromPartial({\n typeUrl: \"/cosmos.crypto.multisig.LegacyAminoPubKey\",\n value: Uint8Array.from(keys_2.LegacyAminoPubKey.encode(pubkeyProto).finish()),\n });\n }\n else {\n throw new Error(`Pubkey type ${pubkey.type} not recognized`);\n }\n}\n/**\n * Decodes a single pubkey (i.e. not a multisig pubkey) from `Any` into\n * `SinglePubkey`.\n *\n * In most cases you probably want to use `decodePubkey`.\n */\nfunction anyToSinglePubkey(pubkey) {\n switch (pubkey.typeUrl) {\n case \"/cosmos.crypto.secp256k1.PubKey\": {\n const { key } = keys_3.PubKey.decode(pubkey.value);\n return (0, amino_1.encodeSecp256k1Pubkey)(key);\n }\n case \"/cosmos.crypto.ed25519.PubKey\": {\n const { key } = keys_1.PubKey.decode(pubkey.value);\n return (0, amino_1.encodeEd25519Pubkey)(key);\n }\n default:\n throw new Error(`Pubkey type_url ${pubkey.typeUrl} not recognized as single public key type`);\n }\n}\n/**\n * Decodes a pubkey from a protobuf `Any` into `Pubkey`.\n * This supports single pubkeys such as Cosmos ed25519 and secp256k1 keys\n * as well as multisig threshold pubkeys.\n */\nfunction decodePubkey(pubkey) {\n switch (pubkey.typeUrl) {\n case \"/cosmos.crypto.secp256k1.PubKey\":\n case \"/cosmos.crypto.ed25519.PubKey\": {\n return anyToSinglePubkey(pubkey);\n }\n case \"/cosmos.crypto.multisig.LegacyAminoPubKey\": {\n const { threshold, publicKeys } = keys_2.LegacyAminoPubKey.decode(pubkey.value);\n const out = {\n type: \"tendermint/PubKeyMultisigThreshold\",\n value: {\n threshold: threshold.toString(),\n pubkeys: publicKeys.map(anyToSinglePubkey),\n },\n };\n return out;\n }\n default:\n throw new Error(`Pubkey type URL '${pubkey.typeUrl}' not recognized`);\n }\n}\n/**\n * Decodes an optional pubkey from a protobuf `Any` into `Pubkey | null`.\n * This supports single pubkeys such as Cosmos ed25519 and secp256k1 keys\n * as well as multisig threshold pubkeys.\n */\nfunction decodeOptionalPubkey(pubkey) {\n if (!pubkey)\n return null;\n if (pubkey.typeUrl) {\n if (pubkey.value.length) {\n // both set\n return decodePubkey(pubkey);\n }\n else {\n throw new Error(`Pubkey is an Any with type URL '${pubkey.typeUrl}' but an empty value`);\n }\n }\n else {\n if (pubkey.value.length) {\n throw new Error(`Pubkey is an Any with an empty type URL but a value set`);\n }\n else {\n // both unset, assuming this empty instance means null\n return null;\n }\n }\n}\n//# sourceMappingURL=pubkey.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Registry = void 0;\nexports.isTelescopeGeneratedType = isTelescopeGeneratedType;\nexports.isTsProtoGeneratedType = isTsProtoGeneratedType;\nexports.isPbjsGeneratedType = isPbjsGeneratedType;\nexports.isTxBodyEncodeObject = isTxBodyEncodeObject;\nconst tx_1 = require(\"cosmjs-types/cosmos/bank/v1beta1/tx\");\nconst coin_1 = require(\"cosmjs-types/cosmos/base/v1beta1/coin\");\nconst tx_2 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nconst any_1 = require(\"cosmjs-types/google/protobuf/any\");\nfunction isTelescopeGeneratedType(type) {\n const casted = type;\n return typeof casted.fromPartial === \"function\" && typeof casted.typeUrl == \"string\";\n}\nfunction isTsProtoGeneratedType(type) {\n return typeof type.fromPartial === \"function\";\n}\nfunction isPbjsGeneratedType(type) {\n return !isTsProtoGeneratedType(type);\n}\nconst defaultTypeUrls = {\n cosmosCoin: \"/cosmos.base.v1beta1.Coin\",\n cosmosMsgSend: \"/cosmos.bank.v1beta1.MsgSend\",\n cosmosTxBody: \"/cosmos.tx.v1beta1.TxBody\",\n googleAny: \"/google.protobuf.Any\",\n};\nfunction isTxBodyEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmos.tx.v1beta1.TxBody\";\n}\nclass Registry {\n /**\n * Creates a new Registry for mapping protobuf type identifiers/type URLs to\n * actual implementations. Those implementations are typically generated with ts-proto\n * but we also support protobuf.js as a type generator.\n *\n * If there is no parameter given, a `new Registry()` adds the types `Coin` and `MsgSend`\n * for historic reasons. Those can be overriden by customTypes.\n *\n * There are currently two methods for adding new types:\n * 1. Passing types to the constructor.\n * 2. Using the `register()` method\n */\n constructor(customTypes) {\n const { cosmosCoin, cosmosMsgSend } = defaultTypeUrls;\n this.types = customTypes\n ? new Map([...customTypes])\n : new Map([\n [cosmosCoin, coin_1.Coin],\n [cosmosMsgSend, tx_1.MsgSend],\n ]);\n }\n register(typeUrl, type) {\n this.types.set(typeUrl, type);\n }\n /**\n * Looks up a type that was previously added to the registry.\n *\n * The generator information (ts-proto or pbjs) gets lost along the way.\n * If you need to work with the result type in TypeScript, you can use:\n *\n * ```\n * import { assert } from \"@cosmjs/utils\";\n *\n * const Coin = registry.lookupType(\"/cosmos.base.v1beta1.Coin\");\n * assert(Coin); // Ensures not unset\n * assert(isTsProtoGeneratedType(Coin)); // Ensures this is the type we expect\n *\n * // Coin is typed TsProtoGeneratedType now.\n * ```\n */\n lookupType(typeUrl) {\n return this.types.get(typeUrl);\n }\n lookupTypeWithError(typeUrl) {\n const type = this.lookupType(typeUrl);\n if (!type) {\n throw new Error(`Unregistered type url: ${typeUrl}`);\n }\n return type;\n }\n /**\n * Takes a typeUrl/value pair and encodes the value to protobuf if\n * the given type was previously registered.\n *\n * If the value has to be wrapped in an Any, this needs to be done\n * manually after this call. Or use `encodeAsAny` instead.\n */\n encode(encodeObject) {\n const { value, typeUrl } = encodeObject;\n if (isTxBodyEncodeObject(encodeObject)) {\n return this.encodeTxBody(value);\n }\n const type = this.lookupTypeWithError(typeUrl);\n const instance = isTelescopeGeneratedType(type) || isTsProtoGeneratedType(type)\n ? type.fromPartial(value)\n : type.create(value);\n return type.encode(instance).finish();\n }\n /**\n * Takes a typeUrl/value pair and encodes the value to an Any if\n * the given type was previously registered.\n */\n encodeAsAny(encodeObject) {\n const binaryValue = this.encode(encodeObject);\n return any_1.Any.fromPartial({\n typeUrl: encodeObject.typeUrl,\n value: binaryValue,\n });\n }\n encodeTxBody(txBodyFields) {\n const wrappedMessages = txBodyFields.messages.map((message) => this.encodeAsAny(message));\n const txBody = tx_2.TxBody.fromPartial({\n ...txBodyFields,\n timeoutHeight: BigInt(txBodyFields.timeoutHeight?.toString() ?? \"0\"),\n messages: wrappedMessages,\n });\n return tx_2.TxBody.encode(txBody).finish();\n }\n decode({ typeUrl, value }) {\n if (typeUrl === defaultTypeUrls.cosmosTxBody) {\n return this.decodeTxBody(value);\n }\n const type = this.lookupTypeWithError(typeUrl);\n const decoded = type.decode(value);\n Object.entries(decoded).forEach(([key, val]) => {\n if (typeof Buffer !== \"undefined\" && typeof Buffer.isBuffer !== \"undefined\" && Buffer.isBuffer(val)) {\n decoded[key] = Uint8Array.from(val);\n }\n });\n return decoded;\n }\n decodeTxBody(txBody) {\n const decodedTxBody = tx_2.TxBody.decode(txBody);\n return {\n ...decodedTxBody,\n messages: decodedTxBody.messages.map(({ typeUrl: typeUrl, value }) => {\n if (!typeUrl) {\n throw new Error(\"Missing type_url in Any\");\n }\n if (!value) {\n throw new Error(\"Missing value in Any\");\n }\n return this.decode({ typeUrl, value });\n }),\n };\n }\n}\nexports.Registry = Registry;\n//# sourceMappingURL=registry.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isOfflineDirectSigner = isOfflineDirectSigner;\nfunction isOfflineDirectSigner(signer) {\n return signer.signDirect !== undefined;\n}\n//# sourceMappingURL=signer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeAuthInfoBytes = makeAuthInfoBytes;\nexports.makeSignDoc = makeSignDoc;\nexports.makeSignBytes = makeSignBytes;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst utils_1 = require(\"@cosmjs/utils\");\nconst signing_1 = require(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing\");\nconst tx_1 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\n/**\n * Create signer infos from the provided signers.\n *\n * This implementation does not support different signing modes for the different signers.\n */\nfunction makeSignerInfos(signers, signMode) {\n return signers.map(({ pubkey, sequence }) => ({\n publicKey: pubkey,\n modeInfo: {\n single: { mode: signMode },\n },\n sequence: BigInt(sequence),\n }));\n}\n/**\n * Creates and serializes an AuthInfo document.\n *\n * This implementation does not support different signing modes for the different signers.\n */\nfunction makeAuthInfoBytes(signers, feeAmount, gasLimit, feeGranter, feePayer, signMode = signing_1.SignMode.SIGN_MODE_DIRECT) {\n // Required arguments 4 and 5 were added in CosmJS 0.29. Use runtime checks to help our non-TS users.\n (0, utils_1.assert)(feeGranter === undefined || typeof feeGranter === \"string\", \"feeGranter must be undefined or string\");\n (0, utils_1.assert)(feePayer === undefined || typeof feePayer === \"string\", \"feePayer must be undefined or string\");\n const authInfo = tx_1.AuthInfo.fromPartial({\n signerInfos: makeSignerInfos(signers, signMode),\n fee: {\n amount: [...feeAmount],\n gasLimit: BigInt(gasLimit),\n granter: feeGranter,\n payer: feePayer,\n },\n });\n return tx_1.AuthInfo.encode(authInfo).finish();\n}\nfunction makeSignDoc(bodyBytes, authInfoBytes, chainId, accountNumber) {\n return {\n bodyBytes: bodyBytes,\n authInfoBytes: authInfoBytes,\n chainId: chainId,\n accountNumber: BigInt(accountNumber),\n };\n}\nfunction makeSignBytes({ accountNumber, authInfoBytes, bodyBytes, chainId }) {\n const signDoc = tx_1.SignDoc.fromPartial({\n accountNumber: accountNumber,\n authInfoBytes: authInfoBytes,\n bodyBytes: bodyBytes,\n chainId: chainId,\n });\n return tx_1.SignDoc.encode(signDoc).finish();\n}\n//# sourceMappingURL=signing.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.supportedAlgorithms = exports.cosmjsSalt = void 0;\nexports.executeKdf = executeKdf;\nexports.encrypt = encrypt;\nexports.decrypt = decrypt;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\n/**\n * A fixed salt is chosen to archive a deterministic password to key derivation.\n * This reduces the scope of a potential rainbow attack to all CosmJS users.\n * Must be 16 bytes due to implementation limitations.\n */\nexports.cosmjsSalt = (0, encoding_1.toAscii)(\"The CosmJS salt.\");\n/**\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\nasync function executeKdf(password, configuration) {\n switch (configuration.algorithm) {\n case \"argon2id\": {\n const options = configuration.params;\n if (!(0, crypto_1.isArgon2idOptions)(options))\n throw new Error(\"Invalid format of argon2id params\");\n return crypto_1.Argon2id.execute(password, exports.cosmjsSalt, options);\n }\n default:\n throw new Error(\"Unsupported KDF algorithm\");\n }\n}\nexports.supportedAlgorithms = {\n xchacha20poly1305Ietf: \"xchacha20poly1305-ietf\",\n};\n/**\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\nasync function encrypt(plaintext, encryptionKey, config) {\n switch (config.algorithm) {\n case exports.supportedAlgorithms.xchacha20poly1305Ietf: {\n const nonce = crypto_1.Random.getBytes(crypto_1.xchacha20NonceLength);\n // Prepend fixed-length nonce to ciphertext as suggested in the example from https://github.com/jedisct1/libsodium.js#api\n return new Uint8Array([\n ...nonce,\n ...(await crypto_1.Xchacha20poly1305Ietf.encrypt(plaintext, encryptionKey, nonce)),\n ]);\n }\n default:\n throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`);\n }\n}\n/**\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\nasync function decrypt(ciphertext, encryptionKey, config) {\n switch (config.algorithm) {\n case exports.supportedAlgorithms.xchacha20poly1305Ietf: {\n const nonce = ciphertext.slice(0, crypto_1.xchacha20NonceLength);\n return crypto_1.Xchacha20poly1305Ietf.decrypt(ciphertext.slice(crypto_1.xchacha20NonceLength), encryptionKey, nonce);\n }\n default:\n throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`);\n }\n}\n//# sourceMappingURL=wallet.js.map","\"use strict\";\n// See https://github.com/tendermint/tendermint/blob/f2ada0a604b4c0763bda2f64fac53d506d3beca7/docs/spec/blockchain/encoding.md#public-key-cryptography\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.rawEd25519PubkeyToRawAddress = rawEd25519PubkeyToRawAddress;\nexports.rawSecp256k1PubkeyToRawAddress = rawSecp256k1PubkeyToRawAddress;\nexports.pubkeyToRawAddress = pubkeyToRawAddress;\nexports.pubkeyToAddress = pubkeyToAddress;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst encoding_2 = require(\"./encoding\");\nconst pubkeys_1 = require(\"./pubkeys\");\nfunction rawEd25519PubkeyToRawAddress(pubkeyData) {\n if (pubkeyData.length !== 32) {\n throw new Error(`Invalid Ed25519 pubkey length: ${pubkeyData.length}`);\n }\n return (0, crypto_1.sha256)(pubkeyData).slice(0, 20);\n}\nfunction rawSecp256k1PubkeyToRawAddress(pubkeyData) {\n if (pubkeyData.length !== 33) {\n throw new Error(`Invalid Secp256k1 pubkey length (compressed): ${pubkeyData.length}`);\n }\n return (0, crypto_1.ripemd160)((0, crypto_1.sha256)(pubkeyData));\n}\n// For secp256k1 this assumes we already have a compressed pubkey.\nfunction pubkeyToRawAddress(pubkey) {\n if ((0, pubkeys_1.isSecp256k1Pubkey)(pubkey)) {\n const pubkeyData = (0, encoding_1.fromBase64)(pubkey.value);\n return rawSecp256k1PubkeyToRawAddress(pubkeyData);\n }\n else if ((0, pubkeys_1.isEd25519Pubkey)(pubkey)) {\n const pubkeyData = (0, encoding_1.fromBase64)(pubkey.value);\n return rawEd25519PubkeyToRawAddress(pubkeyData);\n }\n else if ((0, pubkeys_1.isMultisigThresholdPubkey)(pubkey)) {\n // https://github.com/tendermint/tendermint/blob/38b401657e4ad7a7eeb3c30a3cbf512037df3740/crypto/multisig/threshold_pubkey.go#L71-L74\n const pubkeyData = (0, encoding_2.encodeAminoPubkey)(pubkey);\n return (0, crypto_1.sha256)(pubkeyData).slice(0, 20);\n }\n else {\n throw new Error(\"Unsupported public key type\");\n }\n}\nfunction pubkeyToAddress(pubkey, prefix) {\n return (0, encoding_1.toBech32)(prefix, pubkeyToRawAddress(pubkey));\n}\n//# sourceMappingURL=addresses.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.coin = coin;\nexports.coins = coins;\nexports.parseCoins = parseCoins;\nexports.addCoins = addCoins;\nconst math_1 = require(\"@cosmjs/math\");\n/**\n * Creates a coin.\n *\n * If your values do not exceed the safe integer range of JS numbers (53 bit),\n * you can use the number type here. This is the case for all typical Cosmos SDK\n * chains that use the default 6 decimals.\n *\n * In case you need to supportr larger values, use unsigned integer strings instead.\n */\nfunction coin(amount, denom) {\n let outAmount;\n if (typeof amount === \"number\") {\n try {\n outAmount = new math_1.Uint53(amount).toString();\n }\n catch (_err) {\n throw new Error(\"Given amount is not a safe integer. Consider using a string instead to overcome the limitations of JS numbers.\");\n }\n }\n else {\n if (!amount.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid unsigned integer string format\");\n }\n outAmount = amount.replace(/^0*/, \"\") || \"0\";\n }\n return {\n amount: outAmount,\n denom: denom,\n };\n}\n/**\n * Creates a list of coins with one element.\n */\nfunction coins(amount, denom) {\n return [coin(amount, denom)];\n}\n/**\n * Takes a coins list like \"819966000ucosm,700000000ustake\" and parses it.\n *\n * Starting with CosmJS 0.32.3, the following imports are all synonym and support\n * a variety of denom types such as IBC denoms or tokenfactory. If you need to\n * restrict the denom to something very minimal, this needs to be implemented\n * separately in the caller.\n *\n * ```\n * import { parseCoins } from \"@cosmjs/proto-signing\";\n * // equals\n * import { parseCoins } from \"@cosmjs/stargate\";\n * // equals\n * import { parseCoins } from \"@cosmjs/amino\";\n * ```\n *\n * This function is not made for supporting decimal amounts and does not support\n * parsing gas prices.\n */\nfunction parseCoins(input) {\n return input\n .replace(/\\s/g, \"\")\n .split(\",\")\n .filter(Boolean)\n .map((part) => {\n // Denom regex from Stargate (https://github.com/cosmos/cosmos-sdk/blob/v0.42.7/types/coin.go#L599-L601)\n const match = part.match(/^([0-9]+)([a-zA-Z][a-zA-Z0-9/]{2,127})$/);\n if (!match)\n throw new Error(\"Got an invalid coin string\");\n return {\n amount: match[1].replace(/^0+/, \"\") || \"0\",\n denom: match[2],\n };\n });\n}\n/**\n * Function to sum up coins with type Coin\n */\nfunction addCoins(lhs, rhs) {\n if (lhs.denom !== rhs.denom)\n throw new Error(\"Trying to add two coins with different denoms\");\n return {\n amount: math_1.Decimal.fromAtomics(lhs.amount, 0).plus(math_1.Decimal.fromAtomics(rhs.amount, 0)).atomics,\n denom: lhs.denom,\n };\n}\n//# sourceMappingURL=coins.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeSecp256k1Pubkey = encodeSecp256k1Pubkey;\nexports.encodeEd25519Pubkey = encodeEd25519Pubkey;\nexports.decodeAminoPubkey = decodeAminoPubkey;\nexports.decodeBech32Pubkey = decodeBech32Pubkey;\nexports.encodeAminoPubkey = encodeAminoPubkey;\nexports.encodeBech32Pubkey = encodeBech32Pubkey;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst pubkeys_1 = require(\"./pubkeys\");\n/**\n * Takes a Secp256k1 public key as raw bytes and returns the Amino JSON\n * representation of it (the type/value wrapper object).\n */\nfunction encodeSecp256k1Pubkey(pubkey) {\n if (pubkey.length !== 33 || (pubkey[0] !== 0x02 && pubkey[0] !== 0x03)) {\n throw new Error(\"Public key must be compressed secp256k1, i.e. 33 bytes starting with 0x02 or 0x03\");\n }\n return {\n type: pubkeys_1.pubkeyType.secp256k1,\n value: (0, encoding_1.toBase64)(pubkey),\n };\n}\n/**\n * Takes an Edd25519 public key as raw bytes and returns the Amino JSON\n * representation of it (the type/value wrapper object).\n */\nfunction encodeEd25519Pubkey(pubkey) {\n if (pubkey.length !== 32) {\n throw new Error(\"Ed25519 public key must be 32 bytes long\");\n }\n return {\n type: pubkeys_1.pubkeyType.ed25519,\n value: (0, encoding_1.toBase64)(pubkey),\n };\n}\n// As discussed in https://github.com/binance-chain/javascript-sdk/issues/163\n// Prefixes listed here: https://github.com/tendermint/tendermint/blob/d419fffe18531317c28c29a292ad7d253f6cafdf/docs/spec/blockchain/encoding.md#public-key-cryptography\n// Last bytes is varint-encoded length prefix\nconst pubkeyAminoPrefixSecp256k1 = (0, encoding_1.fromHex)(\"eb5ae987\" + \"21\" /* fixed length */);\nconst pubkeyAminoPrefixEd25519 = (0, encoding_1.fromHex)(\"1624de64\" + \"20\" /* fixed length */);\nconst pubkeyAminoPrefixSr25519 = (0, encoding_1.fromHex)(\"0dfb1005\" + \"20\" /* fixed length */);\n/** See https://github.com/tendermint/tendermint/commit/38b401657e4ad7a7eeb3c30a3cbf512037df3740 */\nconst pubkeyAminoPrefixMultisigThreshold = (0, encoding_1.fromHex)(\"22c1f7e2\" /* variable length not included */);\n/**\n * Decodes a pubkey in the Amino binary format to a type/value object.\n */\nfunction decodeAminoPubkey(data) {\n if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixSecp256k1)) {\n const rest = data.slice(pubkeyAminoPrefixSecp256k1.length);\n if (rest.length !== 33) {\n throw new Error(\"Invalid rest data length. Expected 33 bytes (compressed secp256k1 pubkey).\");\n }\n return {\n type: pubkeys_1.pubkeyType.secp256k1,\n value: (0, encoding_1.toBase64)(rest),\n };\n }\n else if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixEd25519)) {\n const rest = data.slice(pubkeyAminoPrefixEd25519.length);\n if (rest.length !== 32) {\n throw new Error(\"Invalid rest data length. Expected 32 bytes (Ed25519 pubkey).\");\n }\n return {\n type: pubkeys_1.pubkeyType.ed25519,\n value: (0, encoding_1.toBase64)(rest),\n };\n }\n else if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixSr25519)) {\n const rest = data.slice(pubkeyAminoPrefixSr25519.length);\n if (rest.length !== 32) {\n throw new Error(\"Invalid rest data length. Expected 32 bytes (Sr25519 pubkey).\");\n }\n return {\n type: pubkeys_1.pubkeyType.sr25519,\n value: (0, encoding_1.toBase64)(rest),\n };\n }\n else if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixMultisigThreshold)) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return decodeMultisigPubkey(data);\n }\n else {\n throw new Error(\"Unsupported public key type. Amino data starts with: \" + (0, encoding_1.toHex)(data.slice(0, 5)));\n }\n}\n/**\n * Decodes a bech32 pubkey to Amino binary, which is then decoded to a type/value object.\n * The bech32 prefix is ignored and discareded.\n *\n * @param bechEncoded the bech32 encoded pubkey\n */\nfunction decodeBech32Pubkey(bechEncoded) {\n const { data } = (0, encoding_1.fromBech32)(bechEncoded);\n return decodeAminoPubkey(data);\n}\n/**\n * Uvarint decoder for Amino.\n * @see https://github.com/tendermint/go-amino/blob/8e779b71f40d175/decoder.go#L64-76\n * @returns varint as number, and bytes count occupied by varaint\n */\nfunction decodeUvarint(reader) {\n if (reader.length < 1) {\n throw new Error(\"Can't decode varint. EOF\");\n }\n if (reader[0] > 127) {\n throw new Error(\"Decoding numbers > 127 is not supported here. Please tell those lazy CosmJS maintainers to port the binary.Varint implementation from the Go standard library and write some tests.\");\n }\n return [reader[0], 1];\n}\n/**\n * Decodes a multisig pubkey to type object.\n * Pubkey structure [ prefix + const + threshold + loop:(const + pubkeyLength + pubkey ) ]\n * [ 4b + 1b + varint + loop:(1b + varint + pubkeyLength bytes) ]\n * @param data encoded pubkey\n */\nfunction decodeMultisigPubkey(data) {\n const reader = Array.from(data);\n // remove multisig amino prefix;\n const prefixFromReader = reader.splice(0, pubkeyAminoPrefixMultisigThreshold.length);\n if (!(0, utils_1.arrayContentStartsWith)(prefixFromReader, pubkeyAminoPrefixMultisigThreshold)) {\n throw new Error(\"Invalid multisig prefix.\");\n }\n // remove 0x08 threshold prefix;\n if (reader.shift() != 0x08) {\n throw new Error(\"Invalid multisig data. Expecting 0x08 prefix before threshold.\");\n }\n // read threshold\n const [threshold, thresholdBytesLength] = decodeUvarint(reader);\n reader.splice(0, thresholdBytesLength);\n // read participants pubkeys\n const pubkeys = [];\n while (reader.length > 0) {\n // remove 0x12 threshold prefix;\n if (reader.shift() != 0x12) {\n throw new Error(\"Invalid multisig data. Expecting 0x12 prefix before participant pubkey length.\");\n }\n // read pubkey length\n const [pubkeyLength, pubkeyLengthBytesSize] = decodeUvarint(reader);\n reader.splice(0, pubkeyLengthBytesSize);\n // verify that we can read pubkey\n if (reader.length < pubkeyLength) {\n throw new Error(\"Invalid multisig data length.\");\n }\n // read and decode participant pubkey\n const encodedPubkey = reader.splice(0, pubkeyLength);\n const pubkey = decodeAminoPubkey(Uint8Array.from(encodedPubkey));\n pubkeys.push(pubkey);\n }\n return {\n type: pubkeys_1.pubkeyType.multisigThreshold,\n value: {\n threshold: threshold.toString(),\n pubkeys: pubkeys,\n },\n };\n}\n/**\n * Uvarint encoder for Amino. This is the same encoding as `binary.PutUvarint` from the Go\n * standard library.\n *\n * @see https://github.com/tendermint/go-amino/blob/8e779b71f40d175/encoder.go#L77-L85\n */\nfunction encodeUvarint(value) {\n const checked = math_1.Uint53.fromString(value.toString()).toNumber();\n if (checked > 127) {\n throw new Error(\"Encoding numbers > 127 is not supported here. Please tell those lazy CosmJS maintainers to port the binary.PutUvarint implementation from the Go standard library and write some tests.\");\n }\n return [checked];\n}\n/**\n * Encodes a public key to binary Amino.\n */\nfunction encodeAminoPubkey(pubkey) {\n if ((0, pubkeys_1.isMultisigThresholdPubkey)(pubkey)) {\n const out = Array.from(pubkeyAminoPrefixMultisigThreshold);\n out.push(0x08); // TODO: What is this?\n out.push(...encodeUvarint(pubkey.value.threshold));\n for (const pubkeyData of pubkey.value.pubkeys.map((p) => encodeAminoPubkey(p))) {\n out.push(0x12); // TODO: What is this?\n out.push(...encodeUvarint(pubkeyData.length));\n out.push(...pubkeyData);\n }\n return new Uint8Array(out);\n }\n else if ((0, pubkeys_1.isEd25519Pubkey)(pubkey)) {\n return new Uint8Array([...pubkeyAminoPrefixEd25519, ...(0, encoding_1.fromBase64)(pubkey.value)]);\n }\n else if ((0, pubkeys_1.isSecp256k1Pubkey)(pubkey)) {\n return new Uint8Array([...pubkeyAminoPrefixSecp256k1, ...(0, encoding_1.fromBase64)(pubkey.value)]);\n }\n else {\n throw new Error(\"Unsupported pubkey type\");\n }\n}\n/**\n * Encodes a public key to binary Amino and then to bech32.\n *\n * @param pubkey the public key to encode\n * @param prefix the bech32 prefix (human readable part)\n */\nfunction encodeBech32Pubkey(pubkey, prefix) {\n return (0, encoding_1.toBech32)(prefix, encodeAminoPubkey(pubkey));\n}\n//# sourceMappingURL=encoding.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.executeKdf = exports.makeStdTx = exports.isStdTx = exports.serializeSignDoc = exports.makeSignDoc = exports.encodeSecp256k1Signature = exports.decodeSignature = exports.Secp256k1Wallet = exports.Secp256k1HdWallet = exports.extractKdfConfiguration = exports.pubkeyType = exports.isSinglePubkey = exports.isSecp256k1Pubkey = exports.isMultisigThresholdPubkey = exports.isEd25519Pubkey = exports.makeCosmoshubPath = exports.omitDefault = exports.createMultisigThresholdPubkey = exports.encodeSecp256k1Pubkey = exports.encodeEd25519Pubkey = exports.encodeBech32Pubkey = exports.encodeAminoPubkey = exports.decodeBech32Pubkey = exports.decodeAminoPubkey = exports.parseCoins = exports.coins = exports.coin = exports.addCoins = exports.rawSecp256k1PubkeyToRawAddress = exports.rawEd25519PubkeyToRawAddress = exports.pubkeyToRawAddress = exports.pubkeyToAddress = void 0;\nvar addresses_1 = require(\"./addresses\");\nObject.defineProperty(exports, \"pubkeyToAddress\", { enumerable: true, get: function () { return addresses_1.pubkeyToAddress; } });\nObject.defineProperty(exports, \"pubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.pubkeyToRawAddress; } });\nObject.defineProperty(exports, \"rawEd25519PubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.rawEd25519PubkeyToRawAddress; } });\nObject.defineProperty(exports, \"rawSecp256k1PubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.rawSecp256k1PubkeyToRawAddress; } });\nvar coins_1 = require(\"./coins\");\nObject.defineProperty(exports, \"addCoins\", { enumerable: true, get: function () { return coins_1.addCoins; } });\nObject.defineProperty(exports, \"coin\", { enumerable: true, get: function () { return coins_1.coin; } });\nObject.defineProperty(exports, \"coins\", { enumerable: true, get: function () { return coins_1.coins; } });\nObject.defineProperty(exports, \"parseCoins\", { enumerable: true, get: function () { return coins_1.parseCoins; } });\nvar encoding_1 = require(\"./encoding\");\nObject.defineProperty(exports, \"decodeAminoPubkey\", { enumerable: true, get: function () { return encoding_1.decodeAminoPubkey; } });\nObject.defineProperty(exports, \"decodeBech32Pubkey\", { enumerable: true, get: function () { return encoding_1.decodeBech32Pubkey; } });\nObject.defineProperty(exports, \"encodeAminoPubkey\", { enumerable: true, get: function () { return encoding_1.encodeAminoPubkey; } });\nObject.defineProperty(exports, \"encodeBech32Pubkey\", { enumerable: true, get: function () { return encoding_1.encodeBech32Pubkey; } });\nObject.defineProperty(exports, \"encodeEd25519Pubkey\", { enumerable: true, get: function () { return encoding_1.encodeEd25519Pubkey; } });\nObject.defineProperty(exports, \"encodeSecp256k1Pubkey\", { enumerable: true, get: function () { return encoding_1.encodeSecp256k1Pubkey; } });\nvar multisig_1 = require(\"./multisig\");\nObject.defineProperty(exports, \"createMultisigThresholdPubkey\", { enumerable: true, get: function () { return multisig_1.createMultisigThresholdPubkey; } });\nvar omitdefault_1 = require(\"./omitdefault\");\nObject.defineProperty(exports, \"omitDefault\", { enumerable: true, get: function () { return omitdefault_1.omitDefault; } });\nvar paths_1 = require(\"./paths\");\nObject.defineProperty(exports, \"makeCosmoshubPath\", { enumerable: true, get: function () { return paths_1.makeCosmoshubPath; } });\nvar pubkeys_1 = require(\"./pubkeys\");\nObject.defineProperty(exports, \"isEd25519Pubkey\", { enumerable: true, get: function () { return pubkeys_1.isEd25519Pubkey; } });\nObject.defineProperty(exports, \"isMultisigThresholdPubkey\", { enumerable: true, get: function () { return pubkeys_1.isMultisigThresholdPubkey; } });\nObject.defineProperty(exports, \"isSecp256k1Pubkey\", { enumerable: true, get: function () { return pubkeys_1.isSecp256k1Pubkey; } });\nObject.defineProperty(exports, \"isSinglePubkey\", { enumerable: true, get: function () { return pubkeys_1.isSinglePubkey; } });\nObject.defineProperty(exports, \"pubkeyType\", { enumerable: true, get: function () { return pubkeys_1.pubkeyType; } });\nvar secp256k1hdwallet_1 = require(\"./secp256k1hdwallet\");\nObject.defineProperty(exports, \"extractKdfConfiguration\", { enumerable: true, get: function () { return secp256k1hdwallet_1.extractKdfConfiguration; } });\nObject.defineProperty(exports, \"Secp256k1HdWallet\", { enumerable: true, get: function () { return secp256k1hdwallet_1.Secp256k1HdWallet; } });\nvar secp256k1wallet_1 = require(\"./secp256k1wallet\");\nObject.defineProperty(exports, \"Secp256k1Wallet\", { enumerable: true, get: function () { return secp256k1wallet_1.Secp256k1Wallet; } });\nvar signature_1 = require(\"./signature\");\nObject.defineProperty(exports, \"decodeSignature\", { enumerable: true, get: function () { return signature_1.decodeSignature; } });\nObject.defineProperty(exports, \"encodeSecp256k1Signature\", { enumerable: true, get: function () { return signature_1.encodeSecp256k1Signature; } });\nvar signdoc_1 = require(\"./signdoc\");\nObject.defineProperty(exports, \"makeSignDoc\", { enumerable: true, get: function () { return signdoc_1.makeSignDoc; } });\nObject.defineProperty(exports, \"serializeSignDoc\", { enumerable: true, get: function () { return signdoc_1.serializeSignDoc; } });\nvar stdtx_1 = require(\"./stdtx\");\nObject.defineProperty(exports, \"isStdTx\", { enumerable: true, get: function () { return stdtx_1.isStdTx; } });\nObject.defineProperty(exports, \"makeStdTx\", { enumerable: true, get: function () { return stdtx_1.makeStdTx; } });\nvar wallet_1 = require(\"./wallet\");\nObject.defineProperty(exports, \"executeKdf\", { enumerable: true, get: function () { return wallet_1.executeKdf; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compareArrays = compareArrays;\nexports.createMultisigThresholdPubkey = createMultisigThresholdPubkey;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst addresses_1 = require(\"./addresses\");\n/**\n * Compare arrays lexicographically.\n *\n * Returns value < 0 if `a < b`.\n * Returns value > 0 if `a > b`.\n * Returns 0 if `a === b`.\n */\nfunction compareArrays(a, b) {\n const aHex = (0, encoding_1.toHex)(a);\n const bHex = (0, encoding_1.toHex)(b);\n return aHex === bHex ? 0 : aHex < bHex ? -1 : 1;\n}\nfunction createMultisigThresholdPubkey(pubkeys, threshold, nosort = false) {\n const uintThreshold = new math_1.Uint53(threshold);\n if (uintThreshold.toNumber() > pubkeys.length) {\n throw new Error(`Threshold k = ${uintThreshold.toNumber()} exceeds number of keys n = ${pubkeys.length}`);\n }\n const outPubkeys = nosort\n ? pubkeys\n : Array.from(pubkeys).sort((lhs, rhs) => {\n // https://github.com/cosmos/cosmos-sdk/blob/v0.42.2/client/keys/add.go#L172-L174\n const addressLhs = (0, addresses_1.pubkeyToRawAddress)(lhs);\n const addressRhs = (0, addresses_1.pubkeyToRawAddress)(rhs);\n return compareArrays(addressLhs, addressRhs);\n });\n return {\n type: \"tendermint/PubKeyMultisigThreshold\",\n value: {\n threshold: uintThreshold.toString(),\n pubkeys: outPubkeys,\n },\n };\n}\n//# sourceMappingURL=multisig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.omitDefault = omitDefault;\n/**\n * Returns the given input. If the input is the default value\n * of protobuf, undefined is returned. Use this when creating Amino JSON converters.\n */\nfunction omitDefault(input) {\n switch (typeof input) {\n case \"string\":\n return input === \"\" ? undefined : input;\n case \"number\":\n return input === 0 ? undefined : input;\n case \"bigint\":\n return input === BigInt(0) ? undefined : input;\n case \"boolean\":\n return !input ? undefined : input;\n default:\n throw new Error(`Got unsupported type '${typeof input}'`);\n }\n}\n//# sourceMappingURL=omitdefault.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeCosmoshubPath = makeCosmoshubPath;\nconst crypto_1 = require(\"@cosmjs/crypto\");\n/**\n * The Cosmos Hub derivation path in the form `m/44'/118'/0'/0/a`\n * with 0-based account index `a`.\n */\nfunction makeCosmoshubPath(a) {\n return [\n crypto_1.Slip10RawIndex.hardened(44),\n crypto_1.Slip10RawIndex.hardened(118),\n crypto_1.Slip10RawIndex.hardened(0),\n crypto_1.Slip10RawIndex.normal(0),\n crypto_1.Slip10RawIndex.normal(a),\n ];\n}\n//# sourceMappingURL=paths.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pubkeyType = void 0;\nexports.isEd25519Pubkey = isEd25519Pubkey;\nexports.isSecp256k1Pubkey = isSecp256k1Pubkey;\nexports.isSinglePubkey = isSinglePubkey;\nexports.isMultisigThresholdPubkey = isMultisigThresholdPubkey;\nfunction isEd25519Pubkey(pubkey) {\n return pubkey.type === \"tendermint/PubKeyEd25519\";\n}\nfunction isSecp256k1Pubkey(pubkey) {\n return pubkey.type === \"tendermint/PubKeySecp256k1\";\n}\nexports.pubkeyType = {\n /** @see https://github.com/tendermint/tendermint/blob/v0.33.0/crypto/ed25519/ed25519.go#L22 */\n secp256k1: \"tendermint/PubKeySecp256k1\",\n /** @see https://github.com/tendermint/tendermint/blob/v0.33.0/crypto/secp256k1/secp256k1.go#L23 */\n ed25519: \"tendermint/PubKeyEd25519\",\n /** @see https://github.com/tendermint/tendermint/blob/v0.33.0/crypto/sr25519/codec.go#L12 */\n sr25519: \"tendermint/PubKeySr25519\",\n multisigThreshold: \"tendermint/PubKeyMultisigThreshold\",\n};\nfunction isSinglePubkey(pubkey) {\n const singPubkeyTypes = [exports.pubkeyType.ed25519, exports.pubkeyType.secp256k1, exports.pubkeyType.sr25519];\n return singPubkeyTypes.includes(pubkey.type);\n}\nfunction isMultisigThresholdPubkey(pubkey) {\n return pubkey.type === \"tendermint/PubKeyMultisigThreshold\";\n}\n//# sourceMappingURL=pubkeys.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Secp256k1HdWallet = void 0;\nexports.extractKdfConfiguration = extractKdfConfiguration;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst addresses_1 = require(\"./addresses\");\nconst paths_1 = require(\"./paths\");\nconst signature_1 = require(\"./signature\");\nconst signdoc_1 = require(\"./signdoc\");\nconst wallet_1 = require(\"./wallet\");\nconst serializationTypeV1 = \"secp256k1wallet-v1\";\n/**\n * A KDF configuration that is not very strong but can be used on the main thread.\n * It takes about 1 second in Node.js 16.0.0 and should have similar runtimes in other modern Wasm hosts.\n */\nconst basicPasswordHashingOptions = {\n algorithm: \"argon2id\",\n params: {\n outputLength: 32,\n opsLimit: 24,\n memLimitKib: 12 * 1024,\n },\n};\nfunction isDerivationJson(thing) {\n if (!(0, utils_1.isNonNullObject)(thing))\n return false;\n if (typeof thing.hdPath !== \"string\")\n return false;\n if (typeof thing.prefix !== \"string\")\n return false;\n return true;\n}\nfunction extractKdfConfigurationV1(doc) {\n return doc.kdf;\n}\nfunction extractKdfConfiguration(serialization) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n switch (root.type) {\n case serializationTypeV1:\n return extractKdfConfigurationV1(root);\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n}\nconst defaultOptions = {\n bip39Password: \"\",\n hdPaths: [(0, paths_1.makeCosmoshubPath)(0)],\n prefix: \"cosmos\",\n};\nclass Secp256k1HdWallet {\n /**\n * Restores a wallet from the given BIP39 mnemonic.\n *\n * @param mnemonic Any valid English mnemonic.\n * @param options An optional `Secp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix.\n */\n static async fromMnemonic(mnemonic, options = {}) {\n const mnemonicChecked = new crypto_1.EnglishMnemonic(mnemonic);\n const seed = await crypto_1.Bip39.mnemonicToSeed(mnemonicChecked, options.bip39Password);\n return new Secp256k1HdWallet(mnemonicChecked, {\n ...options,\n seed: seed,\n });\n }\n /**\n * Generates a new wallet with a BIP39 mnemonic of the given length.\n *\n * @param length The number of words in the mnemonic (12, 15, 18, 21 or 24).\n * @param options An optional `Secp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix.\n */\n static async generate(length = 12, options = {}) {\n const entropyLength = 4 * Math.floor((11 * length) / 33);\n const entropy = crypto_1.Random.getBytes(entropyLength);\n const mnemonic = crypto_1.Bip39.encode(entropy);\n return Secp256k1HdWallet.fromMnemonic(mnemonic.toString(), options);\n }\n /**\n * Restores a wallet from an encrypted serialization.\n *\n * @param password The user provided password used to generate an encryption key via a KDF.\n * This is not normalized internally (see \"Unicode normalization\" to learn more).\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n static async deserialize(serialization, password) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n switch (root.type) {\n case serializationTypeV1:\n return Secp256k1HdWallet.deserializeTypeV1(serialization, password);\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n }\n /**\n * Restores a wallet from an encrypted serialization.\n *\n * This is an advanced alternative to calling `deserialize(serialization, password)` directly, which allows\n * you to offload the KDF execution to a non-UI thread (e.g. in a WebWorker).\n *\n * The caller is responsible for ensuring the key was derived with the given KDF configuration. This can be\n * done using `extractKdfConfiguration(serialization)` and `executeKdf(password, kdfConfiguration)` from this package.\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n static async deserializeWithEncryptionKey(serialization, encryptionKey) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n const untypedRoot = root;\n switch (untypedRoot.type) {\n case serializationTypeV1: {\n const decryptedBytes = await (0, wallet_1.decrypt)((0, encoding_1.fromBase64)(untypedRoot.data), encryptionKey, untypedRoot.encryption);\n const decryptedDocument = JSON.parse((0, encoding_1.fromUtf8)(decryptedBytes));\n const { mnemonic, accounts } = decryptedDocument;\n (0, utils_1.assert)(typeof mnemonic === \"string\");\n if (!Array.isArray(accounts))\n throw new Error(\"Property 'accounts' is not an array\");\n if (!accounts.every((account) => isDerivationJson(account))) {\n throw new Error(\"Account is not in the correct format.\");\n }\n const firstPrefix = accounts[0].prefix;\n if (!accounts.every(({ prefix }) => prefix === firstPrefix)) {\n throw new Error(\"Accounts do not all have the same prefix\");\n }\n const hdPaths = accounts.map(({ hdPath }) => (0, crypto_1.stringToPath)(hdPath));\n return Secp256k1HdWallet.fromMnemonic(mnemonic, {\n hdPaths: hdPaths,\n prefix: firstPrefix,\n });\n }\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n }\n static async deserializeTypeV1(serialization, password) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n const encryptionKey = await (0, wallet_1.executeKdf)(password, root.kdf);\n return Secp256k1HdWallet.deserializeWithEncryptionKey(serialization, encryptionKey);\n }\n constructor(mnemonic, options) {\n const hdPaths = options.hdPaths ?? defaultOptions.hdPaths;\n const prefix = options.prefix ?? defaultOptions.prefix;\n this.secret = mnemonic;\n this.seed = options.seed;\n this.accounts = hdPaths.map((hdPath) => ({\n hdPath: hdPath,\n prefix,\n }));\n }\n get mnemonic() {\n return this.secret.toString();\n }\n async getAccounts() {\n const accountsWithPrivkeys = await this.getAccountsWithPrivkeys();\n return accountsWithPrivkeys.map(({ algo, pubkey, address }) => ({\n algo: algo,\n pubkey: pubkey,\n address: address,\n }));\n }\n async signAmino(signerAddress, signDoc) {\n const accounts = await this.getAccountsWithPrivkeys();\n const account = accounts.find(({ address }) => address === signerAddress);\n if (account === undefined) {\n throw new Error(`Address ${signerAddress} not found in wallet`);\n }\n const { privkey, pubkey } = account;\n const message = (0, crypto_1.sha256)((0, signdoc_1.serializeSignDoc)(signDoc));\n const signature = await crypto_1.Secp256k1.createSignature(message, privkey);\n const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]);\n return {\n signed: signDoc,\n signature: (0, signature_1.encodeSecp256k1Signature)(pubkey, signatureBytes),\n };\n }\n /**\n * Generates an encrypted serialization of this wallet.\n *\n * @param password The user provided password used to generate an encryption key via a KDF.\n * This is not normalized internally (see \"Unicode normalization\" to learn more).\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n async serialize(password) {\n const kdfConfiguration = basicPasswordHashingOptions;\n const encryptionKey = await (0, wallet_1.executeKdf)(password, kdfConfiguration);\n return this.serializeWithEncryptionKey(encryptionKey, kdfConfiguration);\n }\n /**\n * Generates an encrypted serialization of this wallet.\n *\n * This is an advanced alternative to calling `serialize(password)` directly, which allows you to\n * offload the KDF execution to a non-UI thread (e.g. in a WebWorker).\n *\n * The caller is responsible for ensuring the key was derived with the given KDF options. If this\n * is not the case, the wallet cannot be restored with the original password.\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n async serializeWithEncryptionKey(encryptionKey, kdfConfiguration) {\n const dataToEncrypt = {\n mnemonic: this.mnemonic,\n accounts: this.accounts.map(({ hdPath, prefix }) => ({\n hdPath: (0, crypto_1.pathToString)(hdPath),\n prefix: prefix,\n })),\n };\n const dataToEncryptRaw = (0, encoding_1.toUtf8)(JSON.stringify(dataToEncrypt));\n const encryptionConfiguration = {\n algorithm: wallet_1.supportedAlgorithms.xchacha20poly1305Ietf,\n };\n const encryptedData = await (0, wallet_1.encrypt)(dataToEncryptRaw, encryptionKey, encryptionConfiguration);\n const out = {\n type: serializationTypeV1,\n kdf: kdfConfiguration,\n encryption: encryptionConfiguration,\n data: (0, encoding_1.toBase64)(encryptedData),\n };\n return JSON.stringify(out);\n }\n async getKeyPair(hdPath) {\n const { privkey } = crypto_1.Slip10.derivePath(crypto_1.Slip10Curve.Secp256k1, this.seed, hdPath);\n const { pubkey } = await crypto_1.Secp256k1.makeKeypair(privkey);\n return {\n privkey: privkey,\n pubkey: crypto_1.Secp256k1.compressPubkey(pubkey),\n };\n }\n async getAccountsWithPrivkeys() {\n return Promise.all(this.accounts.map(async ({ hdPath, prefix }) => {\n const { privkey, pubkey } = await this.getKeyPair(hdPath);\n const address = (0, encoding_1.toBech32)(prefix, (0, addresses_1.rawSecp256k1PubkeyToRawAddress)(pubkey));\n return {\n algo: \"secp256k1\",\n privkey: privkey,\n pubkey: pubkey,\n address: address,\n };\n }));\n }\n}\nexports.Secp256k1HdWallet = Secp256k1HdWallet;\n//# sourceMappingURL=secp256k1hdwallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Secp256k1Wallet = void 0;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst addresses_1 = require(\"./addresses\");\nconst signature_1 = require(\"./signature\");\nconst signdoc_1 = require(\"./signdoc\");\n/**\n * A wallet that holds a single secp256k1 keypair.\n *\n * If you want to work with BIP39 mnemonics and multiple accounts, use Secp256k1HdWallet.\n */\nclass Secp256k1Wallet {\n /**\n * Creates a Secp256k1Wallet from the given private key\n *\n * @param privkey The private key.\n * @param prefix The bech32 address prefix (human readable part). Defaults to \"cosmos\".\n */\n static async fromKey(privkey, prefix = \"cosmos\") {\n const uncompressed = (await crypto_1.Secp256k1.makeKeypair(privkey)).pubkey;\n return new Secp256k1Wallet(privkey, crypto_1.Secp256k1.compressPubkey(uncompressed), prefix);\n }\n constructor(privkey, pubkey, prefix) {\n this.privkey = privkey;\n this.pubkey = pubkey;\n this.prefix = prefix;\n }\n get address() {\n return (0, encoding_1.toBech32)(this.prefix, (0, addresses_1.rawSecp256k1PubkeyToRawAddress)(this.pubkey));\n }\n async getAccounts() {\n return [\n {\n algo: \"secp256k1\",\n address: this.address,\n pubkey: this.pubkey,\n },\n ];\n }\n async signAmino(signerAddress, signDoc) {\n if (signerAddress !== this.address) {\n throw new Error(`Address ${signerAddress} not found in wallet`);\n }\n const message = new crypto_1.Sha256((0, signdoc_1.serializeSignDoc)(signDoc)).digest();\n const signature = await crypto_1.Secp256k1.createSignature(message, this.privkey);\n const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]);\n return {\n signed: signDoc,\n signature: (0, signature_1.encodeSecp256k1Signature)(this.pubkey, signatureBytes),\n };\n }\n}\nexports.Secp256k1Wallet = Secp256k1Wallet;\n//# sourceMappingURL=secp256k1wallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeSecp256k1Signature = encodeSecp256k1Signature;\nexports.decodeSignature = decodeSignature;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst encoding_2 = require(\"./encoding\");\nconst pubkeys_1 = require(\"./pubkeys\");\n/**\n * Takes a binary pubkey and signature to create a signature object\n *\n * @param pubkey a compressed secp256k1 public key\n * @param signature a 64 byte fixed length representation of secp256k1 signature components r and s\n */\nfunction encodeSecp256k1Signature(pubkey, signature) {\n if (signature.length !== 64) {\n throw new Error(\"Signature must be 64 bytes long. Cosmos SDK uses a 2x32 byte fixed length encoding for the secp256k1 signature integers r and s.\");\n }\n return {\n pub_key: (0, encoding_2.encodeSecp256k1Pubkey)(pubkey),\n signature: (0, encoding_1.toBase64)(signature),\n };\n}\nfunction decodeSignature(signature) {\n switch (signature.pub_key.type) {\n // Note: please don't add cases here without writing additional unit tests\n case pubkeys_1.pubkeyType.secp256k1:\n return {\n pubkey: (0, encoding_1.fromBase64)(signature.pub_key.value),\n signature: (0, encoding_1.fromBase64)(signature.signature),\n };\n default:\n throw new Error(\"Unsupported pubkey type\");\n }\n}\n//# sourceMappingURL=signature.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sortedJsonStringify = sortedJsonStringify;\nexports.makeSignDoc = makeSignDoc;\nexports.escapeCharacters = escapeCharacters;\nexports.serializeSignDoc = serializeSignDoc;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nfunction sortedObject(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return obj;\n }\n if (Array.isArray(obj)) {\n return obj.map(sortedObject);\n }\n const sortedKeys = Object.keys(obj).sort();\n const result = {};\n // NOTE: Use forEach instead of reduce for performance with large objects eg Wasm code\n sortedKeys.forEach((key) => {\n result[key] = sortedObject(obj[key]);\n });\n return result;\n}\n/** Returns a JSON string with objects sorted by key */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction sortedJsonStringify(obj) {\n return JSON.stringify(sortedObject(obj));\n}\nfunction makeSignDoc(msgs, fee, chainId, memo, accountNumber, sequence, timeout_height) {\n return {\n chain_id: chainId,\n account_number: math_1.Uint53.fromString(accountNumber.toString()).toString(),\n sequence: math_1.Uint53.fromString(sequence.toString()).toString(),\n fee: fee,\n msgs: msgs,\n memo: memo || \"\",\n ...(timeout_height && { timeout_height: timeout_height.toString() }),\n };\n}\n/**\n * Takes a valid JSON document and performs the following escapings in string values:\n *\n * `&` -> `\\u0026`\n * `<` -> `\\u003c`\n * `>` -> `\\u003e`\n *\n * Since those characters do not occur in other places of the JSON document, only\n * string values are affected.\n *\n * If the input is invalid JSON, the behaviour is undefined.\n */\nfunction escapeCharacters(input) {\n // When we migrate to target es2021 or above, we can use replaceAll instead of global patterns.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll\n const amp = /&/g;\n const lt = //g;\n return input.replace(amp, \"\\\\u0026\").replace(lt, \"\\\\u003c\").replace(gt, \"\\\\u003e\");\n}\nfunction serializeSignDoc(signDoc) {\n const serialized = escapeCharacters(sortedJsonStringify(signDoc));\n return (0, encoding_1.toUtf8)(serialized);\n}\n//# sourceMappingURL=signdoc.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isStdTx = isStdTx;\nexports.makeStdTx = makeStdTx;\nfunction isStdTx(txValue) {\n const { memo, msg, fee, signatures } = txValue;\n return (typeof memo === \"string\" && Array.isArray(msg) && typeof fee === \"object\" && Array.isArray(signatures));\n}\nfunction makeStdTx(content, signatures) {\n return {\n msg: content.msgs,\n fee: content.fee,\n memo: content.memo,\n signatures: Array.isArray(signatures) ? signatures : [signatures],\n };\n}\n//# sourceMappingURL=stdtx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.supportedAlgorithms = exports.cosmjsSalt = void 0;\nexports.executeKdf = executeKdf;\nexports.encrypt = encrypt;\nexports.decrypt = decrypt;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\n/**\n * A fixed salt is chosen to archive a deterministic password to key derivation.\n * This reduces the scope of a potential rainbow attack to all CosmJS users.\n * Must be 16 bytes due to implementation limitations.\n */\nexports.cosmjsSalt = (0, encoding_1.toAscii)(\"The CosmJS salt.\");\n/**\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\nasync function executeKdf(password, configuration) {\n switch (configuration.algorithm) {\n case \"argon2id\": {\n const options = configuration.params;\n if (!(0, crypto_1.isArgon2idOptions)(options))\n throw new Error(\"Invalid format of argon2id params\");\n return crypto_1.Argon2id.execute(password, exports.cosmjsSalt, options);\n }\n default:\n throw new Error(\"Unsupported KDF algorithm\");\n }\n}\nexports.supportedAlgorithms = {\n xchacha20poly1305Ietf: \"xchacha20poly1305-ietf\",\n};\n/**\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\nasync function encrypt(plaintext, encryptionKey, config) {\n switch (config.algorithm) {\n case exports.supportedAlgorithms.xchacha20poly1305Ietf: {\n const nonce = crypto_1.Random.getBytes(crypto_1.xchacha20NonceLength);\n // Prepend fixed-length nonce to ciphertext as suggested in the example from https://github.com/jedisct1/libsodium.js#api\n return new Uint8Array([\n ...nonce,\n ...(await crypto_1.Xchacha20poly1305Ietf.encrypt(plaintext, encryptionKey, nonce)),\n ]);\n }\n default:\n throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`);\n }\n}\n/**\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\nasync function decrypt(ciphertext, encryptionKey, config) {\n switch (config.algorithm) {\n case exports.supportedAlgorithms.xchacha20poly1305Ietf: {\n const nonce = ciphertext.slice(0, crypto_1.xchacha20NonceLength);\n return crypto_1.Xchacha20poly1305Ietf.decrypt(ciphertext.slice(crypto_1.xchacha20NonceLength), encryptionKey, nonce);\n }\n default:\n throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`);\n }\n}\n//# sourceMappingURL=wallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toAscii = toAscii;\nexports.fromAscii = fromAscii;\nfunction toAscii(input) {\n const toNums = (str) => str.split(\"\").map((x) => {\n const charCode = x.charCodeAt(0);\n // 0x00–0x1F control characters\n // 0x20–0x7E printable characters\n // 0x7F delete character\n // 0x80–0xFF out of 7 bit ascii range\n if (charCode < 0x20 || charCode > 0x7e) {\n throw new Error(\"Cannot encode character that is out of printable ASCII range: \" + charCode);\n }\n return charCode;\n });\n return Uint8Array.from(toNums(input));\n}\nfunction fromAscii(data) {\n const fromNums = (listOfNumbers) => listOfNumbers.map((x) => {\n // 0x00–0x1F control characters\n // 0x20–0x7E printable characters\n // 0x7F delete character\n // 0x80–0xFF out of 7 bit ascii range\n if (x < 0x20 || x > 0x7e) {\n throw new Error(\"Cannot decode character that is out of printable ASCII range: \" + x);\n }\n return String.fromCharCode(x);\n });\n return fromNums(Array.from(data)).join(\"\");\n}\n//# sourceMappingURL=ascii.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBase64 = toBase64;\nexports.fromBase64 = fromBase64;\nconst base64js = __importStar(require(\"base64-js\"));\nfunction toBase64(data) {\n return base64js.fromByteArray(data);\n}\nfunction fromBase64(base64String) {\n if (!base64String.match(/^[a-zA-Z0-9+/]*={0,2}$/)) {\n throw new Error(\"Invalid base64 string format\");\n }\n return base64js.toByteArray(base64String);\n}\n//# sourceMappingURL=base64.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBech32 = toBech32;\nexports.fromBech32 = fromBech32;\nexports.normalizeBech32 = normalizeBech32;\nconst bech32 = __importStar(require(\"bech32\"));\nfunction toBech32(prefix, data, limit) {\n const address = bech32.encode(prefix, bech32.toWords(data), limit);\n return address;\n}\nfunction fromBech32(address, limit = Infinity) {\n const decodedAddress = bech32.decode(address, limit);\n return {\n prefix: decodedAddress.prefix,\n data: new Uint8Array(bech32.fromWords(decodedAddress.words)),\n };\n}\n/**\n * Takes a bech32 address and returns a normalized (i.e. lower case) representation of it.\n *\n * The input is validated along the way, which makes this significantly safer than\n * using `address.toLowerCase()`.\n */\nfunction normalizeBech32(address) {\n const { prefix, data } = fromBech32(address);\n return toBech32(prefix, data);\n}\n//# sourceMappingURL=bech32.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toHex = toHex;\nexports.fromHex = fromHex;\nfunction toHex(data) {\n let out = \"\";\n for (const byte of data) {\n out += (\"0\" + byte.toString(16)).slice(-2);\n }\n return out;\n}\nfunction fromHex(hexstring) {\n if (hexstring.length % 2 !== 0) {\n throw new Error(\"hex string length must be a multiple of 2\");\n }\n const out = new Uint8Array(hexstring.length / 2);\n for (let i = 0; i < out.length; i++) {\n const j = 2 * i;\n const hexByteAsString = hexstring.slice(j, j + 2);\n if (!hexByteAsString.match(/[0-9a-f]{2}/i)) {\n throw new Error(\"hex string contains invalid characters\");\n }\n out[i] = parseInt(hexByteAsString, 16);\n }\n return out;\n}\n//# sourceMappingURL=hex.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = exports.toRfc3339 = exports.fromRfc3339 = exports.toHex = exports.fromHex = exports.toBech32 = exports.normalizeBech32 = exports.fromBech32 = exports.toBase64 = exports.fromBase64 = exports.toAscii = exports.fromAscii = void 0;\nvar ascii_1 = require(\"./ascii\");\nObject.defineProperty(exports, \"fromAscii\", { enumerable: true, get: function () { return ascii_1.fromAscii; } });\nObject.defineProperty(exports, \"toAscii\", { enumerable: true, get: function () { return ascii_1.toAscii; } });\nvar base64_1 = require(\"./base64\");\nObject.defineProperty(exports, \"fromBase64\", { enumerable: true, get: function () { return base64_1.fromBase64; } });\nObject.defineProperty(exports, \"toBase64\", { enumerable: true, get: function () { return base64_1.toBase64; } });\nvar bech32_1 = require(\"./bech32\");\nObject.defineProperty(exports, \"fromBech32\", { enumerable: true, get: function () { return bech32_1.fromBech32; } });\nObject.defineProperty(exports, \"normalizeBech32\", { enumerable: true, get: function () { return bech32_1.normalizeBech32; } });\nObject.defineProperty(exports, \"toBech32\", { enumerable: true, get: function () { return bech32_1.toBech32; } });\nvar hex_1 = require(\"./hex\");\nObject.defineProperty(exports, \"fromHex\", { enumerable: true, get: function () { return hex_1.fromHex; } });\nObject.defineProperty(exports, \"toHex\", { enumerable: true, get: function () { return hex_1.toHex; } });\nvar rfc3339_1 = require(\"./rfc3339\");\nObject.defineProperty(exports, \"fromRfc3339\", { enumerable: true, get: function () { return rfc3339_1.fromRfc3339; } });\nObject.defineProperty(exports, \"toRfc3339\", { enumerable: true, get: function () { return rfc3339_1.toRfc3339; } });\nvar utf8_1 = require(\"./utf8\");\nObject.defineProperty(exports, \"fromUtf8\", { enumerable: true, get: function () { return utf8_1.fromUtf8; } });\nObject.defineProperty(exports, \"toUtf8\", { enumerable: true, get: function () { return utf8_1.toUtf8; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromRfc3339 = fromRfc3339;\nexports.toRfc3339 = toRfc3339;\nconst rfc3339Matcher = /^(\\d{4})-(\\d{2})-(\\d{2})[T ](\\d{2}):(\\d{2}):(\\d{2})(\\.\\d{1,9})?((?:[+-]\\d{2}:\\d{2})|Z)$/;\nfunction padded(integer, length = 2) {\n return integer.toString().padStart(length, \"0\");\n}\nfunction fromRfc3339(str) {\n const matches = rfc3339Matcher.exec(str);\n if (!matches) {\n throw new Error(\"Date string is not in RFC3339 format\");\n }\n const year = +matches[1];\n const month = +matches[2];\n const day = +matches[3];\n const hour = +matches[4];\n const minute = +matches[5];\n const second = +matches[6];\n // fractional seconds match either undefined or a string like \".1\", \".123456789\"\n const milliSeconds = matches[7] ? Math.floor(+matches[7] * 1000) : 0;\n let tzOffsetSign;\n let tzOffsetHours;\n let tzOffsetMinutes;\n // if timezone is undefined, it must be Z or nothing (otherwise the group would have captured).\n if (matches[8] === \"Z\") {\n tzOffsetSign = 1;\n tzOffsetHours = 0;\n tzOffsetMinutes = 0;\n }\n else {\n tzOffsetSign = matches[8].substring(0, 1) === \"-\" ? -1 : 1;\n tzOffsetHours = +matches[8].substring(1, 3);\n tzOffsetMinutes = +matches[8].substring(4, 6);\n }\n const tzOffset = tzOffsetSign * (tzOffsetHours * 60 + tzOffsetMinutes) * 60; // seconds\n const date = new Date();\n date.setUTCFullYear(year, month - 1, day);\n date.setUTCHours(hour, minute, second, milliSeconds);\n return new Date(date.getTime() - tzOffset * 1000);\n}\nfunction toRfc3339(date) {\n const year = date.getUTCFullYear();\n const month = padded(date.getUTCMonth() + 1);\n const day = padded(date.getUTCDate());\n const hour = padded(date.getUTCHours());\n const minute = padded(date.getUTCMinutes());\n const second = padded(date.getUTCSeconds());\n const ms = padded(date.getUTCMilliseconds(), 3);\n return `${year}-${month}-${day}T${hour}:${minute}:${second}.${ms}Z`;\n}\n//# sourceMappingURL=rfc3339.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = toUtf8;\nexports.fromUtf8 = fromUtf8;\nfunction toUtf8(str) {\n return new TextEncoder().encode(str);\n}\n/**\n * Takes UTF-8 data and decodes it to a string.\n *\n * In lossy mode, the [REPLACEMENT CHARACTER](https://en.wikipedia.org/wiki/Specials_(Unicode_block))\n * is used to substitude invalid encodings.\n * By default lossy mode is off and invalid data will lead to exceptions.\n */\nfunction fromUtf8(data, lossy = false) {\n const fatal = !lossy;\n return new TextDecoder(\"utf-8\", { fatal }).decode(data);\n}\n//# sourceMappingURL=utf8.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Decimal = void 0;\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\n// Too large values lead to massive memory usage. Limit to something sensible.\n// The largest value we need is 18 (Ether).\nconst maxFractionalDigits = 100;\n/**\n * A type for arbitrary precision, non-negative decimals.\n *\n * Instances of this class are immutable.\n */\nclass Decimal {\n static fromUserInput(input, fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n const badCharacter = input.match(/[^0-9.]/);\n if (badCharacter) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n throw new Error(`Invalid character at position ${badCharacter.index + 1}`);\n }\n let whole;\n let fractional;\n if (input === \"\") {\n whole = \"0\";\n fractional = \"\";\n }\n else if (input.search(/\\./) === -1) {\n // integer format, no separator\n whole = input;\n fractional = \"\";\n }\n else {\n const parts = input.split(\".\");\n switch (parts.length) {\n case 0:\n case 1:\n throw new Error(\"Fewer than two elements in split result. This must not happen here.\");\n case 2:\n if (!parts[1])\n throw new Error(\"Fractional part missing\");\n whole = parts[0];\n fractional = parts[1].replace(/0+$/, \"\");\n break;\n default:\n throw new Error(\"More than one separator found\");\n }\n }\n if (fractional.length > fractionalDigits) {\n throw new Error(\"Got more fractional digits than supported\");\n }\n const quantity = `${whole}${fractional.padEnd(fractionalDigits, \"0\")}`;\n return new Decimal(quantity, fractionalDigits);\n }\n static fromAtomics(atomics, fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(atomics, fractionalDigits);\n }\n /**\n * Creates a Decimal with value 0.0 and the given number of fractial digits.\n *\n * Fractional digits are not relevant for the value but needed to be able\n * to perform arithmetic operations with other decimals.\n */\n static zero(fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(\"0\", fractionalDigits);\n }\n /**\n * Creates a Decimal with value 1.0 and the given number of fractial digits.\n *\n * Fractional digits are not relevant for the value but needed to be able\n * to perform arithmetic operations with other decimals.\n */\n static one(fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(\"1\" + \"0\".repeat(fractionalDigits), fractionalDigits);\n }\n static verifyFractionalDigits(fractionalDigits) {\n if (!Number.isInteger(fractionalDigits))\n throw new Error(\"Fractional digits is not an integer\");\n if (fractionalDigits < 0)\n throw new Error(\"Fractional digits must not be negative\");\n if (fractionalDigits > maxFractionalDigits) {\n throw new Error(`Fractional digits must not exceed ${maxFractionalDigits}`);\n }\n }\n static compare(a, b) {\n if (a.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n return a.data.atomics.cmp(new bn_js_1.default(b.atomics));\n }\n get atomics() {\n return this.data.atomics.toString();\n }\n get fractionalDigits() {\n return this.data.fractionalDigits;\n }\n constructor(atomics, fractionalDigits) {\n if (!atomics.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format. Only non-negative integers in decimal representation supported.\");\n }\n this.data = {\n atomics: new bn_js_1.default(atomics),\n fractionalDigits: fractionalDigits,\n };\n }\n /** Creates a new instance with the same value */\n clone() {\n return new Decimal(this.atomics, this.fractionalDigits);\n }\n /** Returns the greatest decimal <= this which has no fractional part (rounding down) */\n floor() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return this.clone();\n }\n else {\n return Decimal.fromAtomics(whole.mul(factor).toString(), this.fractionalDigits);\n }\n }\n /** Returns the smallest decimal >= this which has no fractional part (rounding up) */\n ceil() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return this.clone();\n }\n else {\n return Decimal.fromAtomics(whole.addn(1).mul(factor).toString(), this.fractionalDigits);\n }\n }\n toString() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return whole.toString();\n }\n else {\n const fullFractionalPart = fractional.toString().padStart(this.data.fractionalDigits, \"0\");\n const trimmedFractionalPart = fullFractionalPart.replace(/0+$/, \"\");\n return `${whole.toString()}.${trimmedFractionalPart}`;\n }\n }\n /**\n * Returns an approximation as a float type. Only use this if no\n * exact calculation is required.\n */\n toFloatApproximation() {\n const out = Number(this.toString());\n if (Number.isNaN(out))\n throw new Error(\"Conversion to number failed\");\n return out;\n }\n /**\n * a.plus(b) returns a+b.\n *\n * Both values need to have the same fractional digits.\n */\n plus(b) {\n if (this.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n const sum = this.data.atomics.add(new bn_js_1.default(b.atomics));\n return new Decimal(sum.toString(), this.fractionalDigits);\n }\n /**\n * a.minus(b) returns a-b.\n *\n * Both values need to have the same fractional digits.\n * The resulting difference needs to be non-negative.\n */\n minus(b) {\n if (this.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n const difference = this.data.atomics.sub(new bn_js_1.default(b.atomics));\n if (difference.ltn(0))\n throw new Error(\"Difference must not be negative\");\n return new Decimal(difference.toString(), this.fractionalDigits);\n }\n /**\n * a.multiply(b) returns a*b.\n *\n * We only allow multiplication by unsigned integers to avoid rounding errors.\n */\n multiply(b) {\n const product = this.data.atomics.mul(new bn_js_1.default(b.toString()));\n return new Decimal(product.toString(), this.fractionalDigits);\n }\n equals(b) {\n return Decimal.compare(this, b) === 0;\n }\n isLessThan(b) {\n return Decimal.compare(this, b) < 0;\n }\n isLessThanOrEqual(b) {\n return Decimal.compare(this, b) <= 0;\n }\n isGreaterThan(b) {\n return Decimal.compare(this, b) > 0;\n }\n isGreaterThanOrEqual(b) {\n return Decimal.compare(this, b) >= 0;\n }\n}\nexports.Decimal = Decimal;\n//# sourceMappingURL=decimal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uint64 = exports.Uint53 = exports.Uint32 = exports.Int53 = exports.Decimal = void 0;\nvar decimal_1 = require(\"./decimal\");\nObject.defineProperty(exports, \"Decimal\", { enumerable: true, get: function () { return decimal_1.Decimal; } });\nvar integers_1 = require(\"./integers\");\nObject.defineProperty(exports, \"Int53\", { enumerable: true, get: function () { return integers_1.Int53; } });\nObject.defineProperty(exports, \"Uint32\", { enumerable: true, get: function () { return integers_1.Uint32; } });\nObject.defineProperty(exports, \"Uint53\", { enumerable: true, get: function () { return integers_1.Uint53; } });\nObject.defineProperty(exports, \"Uint64\", { enumerable: true, get: function () { return integers_1.Uint64; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n/* eslint-disable no-bitwise */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uint64 = exports.Uint53 = exports.Int53 = exports.Uint32 = void 0;\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst uint64MaxValue = new bn_js_1.default(\"18446744073709551615\", 10, \"be\");\nclass Uint32 {\n /** @deprecated use Uint32.fromBytes */\n static fromBigEndianBytes(bytes) {\n return Uint32.fromBytes(bytes);\n }\n /**\n * Creates a Uint32 from a fixed length byte array.\n *\n * @param bytes a list of exactly 4 bytes\n * @param endianess defaults to big endian\n */\n static fromBytes(bytes, endianess = \"be\") {\n if (bytes.length !== 4) {\n throw new Error(\"Invalid input length. Expected 4 bytes.\");\n }\n for (let i = 0; i < bytes.length; ++i) {\n if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) {\n throw new Error(\"Invalid value in byte. Found: \" + bytes[i]);\n }\n }\n const beBytes = endianess === \"be\" ? bytes : Array.from(bytes).reverse();\n // Use multiplication instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint32(beBytes[0] * 2 ** 24 + beBytes[1] * 2 ** 16 + beBytes[2] * 2 ** 8 + beBytes[3]);\n }\n static fromString(str) {\n if (!str.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Uint32(Number.parseInt(str, 10));\n }\n constructor(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n if (input < 0 || input > 4294967295) {\n throw new Error(\"Input not in uint32 range: \" + input.toString());\n }\n this.data = input;\n }\n toBytesBigEndian() {\n // Use division instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint8Array([\n Math.floor(this.data / 2 ** 24) & 0xff,\n Math.floor(this.data / 2 ** 16) & 0xff,\n Math.floor(this.data / 2 ** 8) & 0xff,\n Math.floor(this.data / 2 ** 0) & 0xff,\n ]);\n }\n toBytesLittleEndian() {\n // Use division instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint8Array([\n Math.floor(this.data / 2 ** 0) & 0xff,\n Math.floor(this.data / 2 ** 8) & 0xff,\n Math.floor(this.data / 2 ** 16) & 0xff,\n Math.floor(this.data / 2 ** 24) & 0xff,\n ]);\n }\n toNumber() {\n return this.data;\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Uint32 = Uint32;\nclass Int53 {\n static fromString(str) {\n if (!str.match(/^-?[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Int53(Number.parseInt(str, 10));\n }\n constructor(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n if (input < Number.MIN_SAFE_INTEGER || input > Number.MAX_SAFE_INTEGER) {\n throw new Error(\"Input not in int53 range: \" + input.toString());\n }\n this.data = input;\n }\n toNumber() {\n return this.data;\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Int53 = Int53;\nclass Uint53 {\n static fromString(str) {\n const signed = Int53.fromString(str);\n return new Uint53(signed.toNumber());\n }\n constructor(input) {\n const signed = new Int53(input);\n if (signed.toNumber() < 0) {\n throw new Error(\"Input is negative\");\n }\n this.data = signed;\n }\n toNumber() {\n return this.data.toNumber();\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Uint53 = Uint53;\nclass Uint64 {\n /** @deprecated use Uint64.fromBytes */\n static fromBytesBigEndian(bytes) {\n return Uint64.fromBytes(bytes);\n }\n /**\n * Creates a Uint64 from a fixed length byte array.\n *\n * @param bytes a list of exactly 8 bytes\n * @param endianess defaults to big endian\n */\n static fromBytes(bytes, endianess = \"be\") {\n if (bytes.length !== 8) {\n throw new Error(\"Invalid input length. Expected 8 bytes.\");\n }\n for (let i = 0; i < bytes.length; ++i) {\n if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) {\n throw new Error(\"Invalid value in byte. Found: \" + bytes[i]);\n }\n }\n const beBytes = endianess === \"be\" ? Array.from(bytes) : Array.from(bytes).reverse();\n return new Uint64(new bn_js_1.default(beBytes));\n }\n static fromString(str) {\n if (!str.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Uint64(new bn_js_1.default(str, 10, \"be\"));\n }\n static fromNumber(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n let bigint;\n try {\n bigint = new bn_js_1.default(input);\n }\n catch {\n throw new Error(\"Input is not a safe integer\");\n }\n return new Uint64(bigint);\n }\n constructor(data) {\n if (data.isNeg()) {\n throw new Error(\"Input is negative\");\n }\n if (data.gt(uint64MaxValue)) {\n throw new Error(\"Input exceeds uint64 range\");\n }\n this.data = data;\n }\n toBytesBigEndian() {\n return Uint8Array.from(this.data.toArray(\"be\", 8));\n }\n toBytesLittleEndian() {\n return Uint8Array.from(this.data.toArray(\"le\", 8));\n }\n toString() {\n return this.data.toString(10);\n }\n toBigInt() {\n return BigInt(this.toString());\n }\n toNumber() {\n return this.data.toNumber();\n }\n}\nexports.Uint64 = Uint64;\n// Assign classes to unused variables in order to verify static interface conformance at compile time.\n// Workaround for https://github.com/microsoft/TypeScript/issues/33892\nconst _int53Class = Int53;\nconst _uint53Class = Uint53;\nconst _uint32Class = Uint32;\nconst _uint64Class = Uint64;\n//# sourceMappingURL=integers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.arrayContentEquals = arrayContentEquals;\nexports.arrayContentStartsWith = arrayContentStartsWith;\n/**\n * Compares the content of two arrays-like objects for equality.\n *\n * Equality is defined as having equal length and element values, where element equality means `===` returning `true`.\n *\n * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type.\n * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type.\n */\nfunction arrayContentEquals(a, b) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; ++i) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n}\n/**\n * Checks if `a` starts with the contents of `b`.\n *\n * This requires equality of the element values, where element equality means `===` returning `true`.\n *\n * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type.\n * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type.\n */\nfunction arrayContentStartsWith(a, b) {\n if (a.length < b.length)\n return false;\n for (let i = 0; i < b.length; ++i) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n}\n//# sourceMappingURL=arrays.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assert = assert;\nexports.assertDefined = assertDefined;\nexports.assertDefinedAndNotNull = assertDefinedAndNotNull;\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction assert(condition, msg) {\n if (!condition) {\n throw new Error(msg || \"condition is not truthy\");\n }\n}\nfunction assertDefined(value, msg) {\n if (value === undefined) {\n throw new Error(msg ?? \"value is undefined\");\n }\n}\nfunction assertDefinedAndNotNull(value, msg) {\n if (value === undefined || value === null) {\n throw new Error(msg ?? \"value is undefined or null\");\n }\n}\n//# sourceMappingURL=assert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isUint8Array = exports.isNonNullObject = exports.isDefined = exports.sleep = exports.assertDefinedAndNotNull = exports.assertDefined = exports.assert = exports.arrayContentStartsWith = exports.arrayContentEquals = void 0;\nvar arrays_1 = require(\"./arrays\");\nObject.defineProperty(exports, \"arrayContentEquals\", { enumerable: true, get: function () { return arrays_1.arrayContentEquals; } });\nObject.defineProperty(exports, \"arrayContentStartsWith\", { enumerable: true, get: function () { return arrays_1.arrayContentStartsWith; } });\nvar assert_1 = require(\"./assert\");\nObject.defineProperty(exports, \"assert\", { enumerable: true, get: function () { return assert_1.assert; } });\nObject.defineProperty(exports, \"assertDefined\", { enumerable: true, get: function () { return assert_1.assertDefined; } });\nObject.defineProperty(exports, \"assertDefinedAndNotNull\", { enumerable: true, get: function () { return assert_1.assertDefinedAndNotNull; } });\nvar sleep_1 = require(\"./sleep\");\nObject.defineProperty(exports, \"sleep\", { enumerable: true, get: function () { return sleep_1.sleep; } });\nvar typechecks_1 = require(\"./typechecks\");\nObject.defineProperty(exports, \"isDefined\", { enumerable: true, get: function () { return typechecks_1.isDefined; } });\nObject.defineProperty(exports, \"isNonNullObject\", { enumerable: true, get: function () { return typechecks_1.isNonNullObject; } });\nObject.defineProperty(exports, \"isUint8Array\", { enumerable: true, get: function () { return typechecks_1.isUint8Array; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sleep = sleep;\nasync function sleep(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n//# sourceMappingURL=sleep.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNonNullObject = isNonNullObject;\nexports.isUint8Array = isUint8Array;\nexports.isDefined = isDefined;\n/**\n * Checks if data is a non-null object (i.e. matches the TypeScript object type).\n *\n * Note: this returns true for arrays, which are objects in JavaScript\n * even though array and object are different types in JSON.\n *\n * @see https://www.typescriptlang.org/docs/handbook/basic-types.html#object\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isNonNullObject(data) {\n return typeof data === \"object\" && data !== null;\n}\n/**\n * Checks if data is an Uint8Array. Note: Buffer is treated as not a Uint8Array\n */\nfunction isUint8Array(data) {\n if (!isNonNullObject(data))\n return false;\n // Avoid instanceof check which is unreliable in some JS environments\n // https://medium.com/@simonwarta/limitations-of-the-instanceof-operator-f4bcdbe7a400\n // Use check that was discussed in https://github.com/crypto-browserify/pbkdf2/pull/81\n if (Object.prototype.toString.call(data) !== \"[object Uint8Array]\")\n return false;\n if (typeof Buffer !== \"undefined\" && typeof Buffer.isBuffer !== \"undefined\") {\n // Buffer.isBuffer is available at runtime\n if (Buffer.isBuffer(data))\n return false;\n }\n return true;\n}\n/**\n * Checks if input is not undefined in a TypeScript-friendly way.\n *\n * This is convenient to use in e.g. `Array.filter` as it will convert\n * the type of a `Array` to `Array`.\n */\nfunction isDefined(value) {\n return value !== undefined;\n}\n//# sourceMappingURL=typechecks.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StreamingSocket = exports.SocketWrapper = exports.ReconnectingSocket = exports.QueueingStreamingSocket = exports.ConnectionStatus = void 0;\nvar queueingstreamingsocket_1 = require(\"./queueingstreamingsocket\");\nObject.defineProperty(exports, \"ConnectionStatus\", { enumerable: true, get: function () { return queueingstreamingsocket_1.ConnectionStatus; } });\nObject.defineProperty(exports, \"QueueingStreamingSocket\", { enumerable: true, get: function () { return queueingstreamingsocket_1.QueueingStreamingSocket; } });\nvar reconnectingsocket_1 = require(\"./reconnectingsocket\");\nObject.defineProperty(exports, \"ReconnectingSocket\", { enumerable: true, get: function () { return reconnectingsocket_1.ReconnectingSocket; } });\nvar socketwrapper_1 = require(\"./socketwrapper\");\nObject.defineProperty(exports, \"SocketWrapper\", { enumerable: true, get: function () { return socketwrapper_1.SocketWrapper; } });\nvar streamingsocket_1 = require(\"./streamingsocket\");\nObject.defineProperty(exports, \"StreamingSocket\", { enumerable: true, get: function () { return streamingsocket_1.StreamingSocket; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueueingStreamingSocket = exports.ConnectionStatus = void 0;\nconst stream_1 = require(\"@cosmjs/stream\");\nconst xstream_1 = require(\"xstream\");\nconst streamingsocket_1 = require(\"./streamingsocket\");\nvar ConnectionStatus;\n(function (ConnectionStatus) {\n ConnectionStatus[ConnectionStatus[\"Unconnected\"] = 0] = \"Unconnected\";\n ConnectionStatus[ConnectionStatus[\"Connecting\"] = 1] = \"Connecting\";\n ConnectionStatus[ConnectionStatus[\"Connected\"] = 2] = \"Connected\";\n ConnectionStatus[ConnectionStatus[\"Disconnected\"] = 3] = \"Disconnected\";\n})(ConnectionStatus || (exports.ConnectionStatus = ConnectionStatus = {}));\n/**\n * A wrapper around StreamingSocket that can queue requests.\n */\nclass QueueingStreamingSocket {\n constructor(url, timeout = 10000, reconnectedHandler) {\n this.queue = [];\n this.isProcessingQueue = false;\n this.url = url;\n this.timeout = timeout;\n this.reconnectedHandler = reconnectedHandler;\n const eventProducer = {\n start: (listener) => (this.eventProducerListener = listener),\n stop: () => (this.eventProducerListener = undefined),\n };\n this.events = xstream_1.Stream.create(eventProducer);\n this.connectionStatusProducer = new stream_1.DefaultValueProducer(ConnectionStatus.Unconnected);\n this.connectionStatus = new stream_1.ValueAndUpdates(this.connectionStatusProducer);\n this.socket = new streamingsocket_1.StreamingSocket(this.url, this.timeout);\n this.socket.events.subscribe({\n next: (event) => {\n if (!this.eventProducerListener)\n throw new Error(\"No event producer listener set\");\n this.eventProducerListener.next(event);\n },\n error: () => this.connectionStatusProducer.update(ConnectionStatus.Disconnected),\n });\n }\n connect() {\n this.connectionStatusProducer.update(ConnectionStatus.Connecting);\n this.socket.connected.then(async () => {\n this.connectionStatusProducer.update(ConnectionStatus.Connected);\n return this.processQueue();\n }, () => this.connectionStatusProducer.update(ConnectionStatus.Disconnected));\n this.socket.connect();\n }\n disconnect() {\n this.connectionStatusProducer.update(ConnectionStatus.Disconnected);\n this.socket.disconnect();\n }\n reconnect() {\n this.socket = new streamingsocket_1.StreamingSocket(this.url, this.timeout);\n this.socket.events.subscribe({\n next: (event) => {\n if (!this.eventProducerListener)\n throw new Error(\"No event producer listener set\");\n this.eventProducerListener.next(event);\n },\n error: () => this.connectionStatusProducer.update(ConnectionStatus.Disconnected),\n });\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.socket.connected.then(() => {\n if (this.reconnectedHandler) {\n this.reconnectedHandler();\n }\n });\n this.connect();\n }\n getQueueLength() {\n return this.queue.length;\n }\n queueRequest(request) {\n this.queue.push(request);\n // We don’t need to wait for the queue to be processed.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.processQueue();\n }\n async processQueue() {\n if (this.isProcessingQueue || this.connectionStatus.value !== ConnectionStatus.Connected) {\n return;\n }\n this.isProcessingQueue = true;\n let request;\n while ((request = this.queue.shift())) {\n try {\n await this.socket.send(request);\n this.isProcessingQueue = false;\n }\n catch (error) {\n // Probably the connection is down; will try again automatically when reconnected.\n this.queue.unshift(request);\n this.isProcessingQueue = false;\n return;\n }\n }\n }\n}\nexports.QueueingStreamingSocket = QueueingStreamingSocket;\n//# sourceMappingURL=queueingstreamingsocket.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReconnectingSocket = void 0;\nconst xstream_1 = require(\"xstream\");\nconst queueingstreamingsocket_1 = require(\"./queueingstreamingsocket\");\n/**\n * A wrapper around QueueingStreamingSocket that reconnects automatically.\n */\nclass ReconnectingSocket {\n /** Starts with a 0.1 second timeout, then doubles every attempt with a maximum timeout of 5 seconds. */\n static calculateTimeout(index) {\n return Math.min(2 ** index * 100, 5000);\n }\n constructor(url, timeout = 10000, reconnectedHandler) {\n this.unconnected = true;\n this.disconnected = false;\n this.timeoutIndex = 0;\n this.reconnectTimeout = null;\n const eventProducer = {\n start: (listener) => (this.eventProducerListener = listener),\n stop: () => (this.eventProducerListener = undefined),\n };\n this.events = xstream_1.Stream.create(eventProducer);\n this.socket = new queueingstreamingsocket_1.QueueingStreamingSocket(url, timeout, reconnectedHandler);\n this.socket.events.subscribe({\n next: (event) => {\n if (this.eventProducerListener) {\n this.eventProducerListener.next(event);\n }\n },\n error: (error) => {\n if (this.eventProducerListener) {\n this.eventProducerListener.error(error);\n }\n },\n });\n this.connectionStatus = this.socket.connectionStatus;\n this.connectionStatus.updates.subscribe({\n next: (status) => {\n if (status === queueingstreamingsocket_1.ConnectionStatus.Connected) {\n this.timeoutIndex = 0;\n }\n if (status === queueingstreamingsocket_1.ConnectionStatus.Disconnected) {\n if (this.reconnectTimeout) {\n clearTimeout(this.reconnectTimeout);\n this.reconnectTimeout = null;\n }\n this.reconnectTimeout = setTimeout(() => this.socket.reconnect(), ReconnectingSocket.calculateTimeout(this.timeoutIndex++));\n }\n },\n });\n }\n connect() {\n if (!this.unconnected) {\n throw new Error(\"Cannot connect: socket has already connected\");\n }\n this.socket.connect();\n this.unconnected = false;\n }\n disconnect() {\n if (this.unconnected) {\n throw new Error(\"Cannot disconnect: socket has not yet connected\");\n }\n this.socket.disconnect();\n if (this.eventProducerListener) {\n this.eventProducerListener.complete();\n }\n this.disconnected = true;\n }\n queueRequest(request) {\n if (this.disconnected) {\n throw new Error(\"Cannot queue request: socket has disconnected\");\n }\n this.socket.queueRequest(request);\n }\n}\nexports.ReconnectingSocket = ReconnectingSocket;\n//# sourceMappingURL=reconnectingsocket.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SocketWrapper = void 0;\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst isomorphic_ws_1 = __importDefault(require(\"isomorphic-ws\"));\nfunction environmentIsNodeJs() {\n return (typeof process !== \"undefined\" &&\n typeof process.versions !== \"undefined\" &&\n typeof process.versions.node !== \"undefined\");\n}\n/**\n * A thin wrapper around isomorphic-ws' WebSocket class that adds\n * - constant message/error/open/close handlers\n * - explict connection via a connect() method\n * - type support for events\n * - handling of corner cases in the open and close behaviour\n */\nclass SocketWrapper {\n constructor(url, messageHandler, errorHandler, openHandler, closeHandler, timeout = 10000) {\n this.closed = false;\n this.connected = new Promise((resolve, reject) => {\n this.connectedResolver = resolve;\n this.connectedRejecter = reject;\n });\n this.url = url;\n this.messageHandler = messageHandler;\n this.errorHandler = errorHandler;\n this.openHandler = openHandler;\n this.closeHandler = closeHandler;\n this.timeout = timeout;\n }\n /**\n * returns a promise that resolves when connection is open\n */\n connect() {\n const socket = new isomorphic_ws_1.default(this.url);\n socket.onerror = (error) => {\n this.clearTimeout();\n if (this.errorHandler) {\n this.errorHandler(error);\n }\n };\n socket.onmessage = (messageEvent) => {\n this.messageHandler({\n type: messageEvent.type,\n data: messageEvent.data,\n });\n };\n socket.onopen = (_) => {\n this.clearTimeout();\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.connectedResolver();\n if (this.openHandler) {\n this.openHandler();\n }\n };\n socket.onclose = (closeEvent) => {\n this.closed = true;\n if (this.closeHandler) {\n this.closeHandler(closeEvent);\n }\n };\n const started = Date.now();\n this.timeoutId = setTimeout(() => {\n socket.onmessage = () => 0;\n socket.onerror = () => 0;\n socket.onopen = () => 0;\n socket.onclose = () => 0;\n socket.close();\n this.socket = undefined;\n const elapsed = Math.floor(Date.now() - started);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.connectedRejecter(`Connection attempt timed out after ${elapsed} ms`);\n }, this.timeout);\n this.socket = socket;\n }\n /**\n * Closes an established connection and aborts other connection states\n */\n disconnect() {\n if (!this.socket) {\n throw new Error(\"Socket undefined. This must be called after connecting.\");\n }\n this.clearTimeout();\n switch (this.socket.readyState) {\n case isomorphic_ws_1.default.OPEN:\n this.socket.close(1000 /* Normal Closure */);\n break;\n case isomorphic_ws_1.default.CLOSED:\n // nothing to be done\n break;\n case isomorphic_ws_1.default.CONNECTING:\n // imitate missing abort API\n this.socket.onopen = () => 0;\n this.socket.onclose = () => 0;\n this.socket.onerror = () => 0;\n this.socket.onmessage = () => 0;\n this.socket = undefined;\n if (this.closeHandler) {\n this.closeHandler({ wasClean: false, code: 4001 });\n }\n break;\n case isomorphic_ws_1.default.CLOSING:\n // already closing. Let it proceed\n break;\n default:\n throw new Error(`Unknown readyState: ${this.socket.readyState}`);\n }\n }\n async send(data) {\n return new Promise((resolve, reject) => {\n if (!this.socket) {\n throw new Error(\"Socket undefined. This must be called after connecting.\");\n }\n if (this.closed) {\n throw new Error(\"Socket was closed, so no data can be sent anymore.\");\n }\n // this exception should be thrown by send() automatically according to\n // https://developer.mozilla.org/de/docs/Web/API/WebSocket#send() but it does not work in browsers\n if (this.socket.readyState !== isomorphic_ws_1.default.OPEN) {\n throw new Error(\"Websocket is not open\");\n }\n if (environmentIsNodeJs()) {\n this.socket.send(data, (err) => (err ? reject(err) : resolve()));\n }\n else {\n // Browser websocket send method does not accept a callback\n this.socket.send(data);\n resolve();\n }\n });\n }\n /**\n * Clears the timeout function, such that no timeout error will be raised anymore. This should be\n * called when the connection is established, a connection error occurred or the socket is disconnected.\n *\n * This method must not be called before `connect()`.\n * This method is idempotent.\n */\n clearTimeout() {\n if (!this.timeoutId) {\n throw new Error(\"Timeout ID not set. This should not happen and usually means connect() was not called.\");\n }\n // Note: do not unset this.timeoutId to allow multiple calls to this function\n clearTimeout(this.timeoutId);\n }\n}\nexports.SocketWrapper = SocketWrapper;\n//# sourceMappingURL=socketwrapper.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StreamingSocket = void 0;\nconst xstream_1 = require(\"xstream\");\nconst socketwrapper_1 = require(\"./socketwrapper\");\n/**\n * A WebSocket wrapper that exposes all events as a stream.\n *\n * This underlying socket will not be closed when the stream has no listeners\n */\nclass StreamingSocket {\n constructor(url, timeout = 10000) {\n this.socket = new socketwrapper_1.SocketWrapper(url, (event) => {\n if (this.eventProducerListener) {\n this.eventProducerListener.next(event);\n }\n }, (errorEvent) => {\n if (this.eventProducerListener) {\n this.eventProducerListener.error(errorEvent);\n }\n }, () => {\n // socket opened\n }, (closeEvent) => {\n if (this.eventProducerListener) {\n if (closeEvent.wasClean) {\n this.eventProducerListener.complete();\n }\n else {\n this.eventProducerListener.error(\"Socket was closed unclean\");\n }\n }\n }, timeout);\n this.connected = this.socket.connected;\n const eventProducer = {\n start: (listener) => (this.eventProducerListener = listener),\n stop: () => (this.eventProducerListener = undefined),\n };\n this.events = xstream_1.Stream.create(eventProducer);\n }\n connect() {\n this.socket.connect();\n }\n disconnect() {\n this.socket.disconnect();\n }\n async send(data) {\n return this.socket.send(data);\n }\n}\nexports.StreamingSocket = StreamingSocket;\n//# sourceMappingURL=streamingsocket.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.accountFromAny = accountFromAny;\nconst math_1 = require(\"@cosmjs/math\");\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst auth_1 = require(\"cosmjs-types/cosmos/auth/v1beta1/auth\");\nconst vesting_1 = require(\"cosmjs-types/cosmos/vesting/v1beta1/vesting\");\nfunction uint64FromProto(input) {\n return math_1.Uint64.fromString(input.toString());\n}\nfunction accountFromBaseAccount(input) {\n const { address, pubKey, accountNumber, sequence } = input;\n const pubkey = (0, proto_signing_1.decodeOptionalPubkey)(pubKey);\n return {\n address: address,\n pubkey: pubkey,\n accountNumber: uint64FromProto(accountNumber).toNumber(),\n sequence: uint64FromProto(sequence).toNumber(),\n };\n}\n/**\n * Basic implementation of AccountParser. This is supposed to support the most relevant\n * common Cosmos SDK account types. If you need support for exotic account types,\n * you'll need to write your own account decoder.\n */\nfunction accountFromAny(input) {\n const { typeUrl, value } = input;\n switch (typeUrl) {\n // auth\n case \"/cosmos.auth.v1beta1.BaseAccount\":\n return accountFromBaseAccount(auth_1.BaseAccount.decode(value));\n case \"/cosmos.auth.v1beta1.ModuleAccount\": {\n const baseAccount = auth_1.ModuleAccount.decode(value).baseAccount;\n (0, utils_1.assert)(baseAccount);\n return accountFromBaseAccount(baseAccount);\n }\n // vesting\n case \"/cosmos.vesting.v1beta1.BaseVestingAccount\": {\n const baseAccount = vesting_1.BaseVestingAccount.decode(value)?.baseAccount;\n (0, utils_1.assert)(baseAccount);\n return accountFromBaseAccount(baseAccount);\n }\n case \"/cosmos.vesting.v1beta1.ContinuousVestingAccount\": {\n const baseAccount = vesting_1.ContinuousVestingAccount.decode(value)?.baseVestingAccount?.baseAccount;\n (0, utils_1.assert)(baseAccount);\n return accountFromBaseAccount(baseAccount);\n }\n case \"/cosmos.vesting.v1beta1.DelayedVestingAccount\": {\n const baseAccount = vesting_1.DelayedVestingAccount.decode(value)?.baseVestingAccount?.baseAccount;\n (0, utils_1.assert)(baseAccount);\n return accountFromBaseAccount(baseAccount);\n }\n case \"/cosmos.vesting.v1beta1.PeriodicVestingAccount\": {\n const baseAccount = vesting_1.PeriodicVestingAccount.decode(value)?.baseVestingAccount?.baseAccount;\n (0, utils_1.assert)(baseAccount);\n return accountFromBaseAccount(baseAccount);\n }\n default:\n throw new Error(`Unsupported type: '${typeUrl}'`);\n }\n}\n//# sourceMappingURL=accounts.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AminoTypes = void 0;\n/**\n * A map from Stargate message types as used in the messages's `Any` type\n * to Amino types.\n */\nclass AminoTypes {\n constructor(types) {\n this.register = types;\n }\n toAmino({ typeUrl, value }) {\n const converter = this.register[typeUrl];\n if (!converter) {\n throw new Error(`Type URL '${typeUrl}' does not exist in the Amino message type register. ` +\n \"If you need support for this message type, you can pass in additional entries to the AminoTypes constructor. \" +\n \"If you think this message type should be included by default, please open an issue at https://github.com/cosmos/cosmjs/issues.\");\n }\n return {\n type: converter.aminoType,\n value: converter.toAmino(value),\n };\n }\n fromAmino({ type, value }) {\n const matches = Object.entries(this.register).filter(([_typeUrl, { aminoType }]) => aminoType === type);\n switch (matches.length) {\n case 0: {\n throw new Error(`Amino type identifier '${type}' does not exist in the Amino message type register. ` +\n \"If you need support for this message type, you can pass in additional entries to the AminoTypes constructor. \" +\n \"If you think this message type should be included by default, please open an issue at https://github.com/cosmos/cosmjs/issues.\");\n }\n case 1: {\n const [typeUrl, converter] = matches[0];\n return {\n typeUrl: typeUrl,\n value: converter.fromAmino(value),\n };\n }\n default:\n throw new Error(`Multiple types are registered with Amino type identifier '${type}': '` +\n matches\n .map(([key, _value]) => key)\n .sort()\n .join(\"', '\") +\n \"'. Thus fromAmino cannot be performed.\");\n }\n }\n}\nexports.AminoTypes = AminoTypes;\n//# sourceMappingURL=aminotypes.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTendermintEvent = fromTendermintEvent;\nconst encoding_1 = require(\"@cosmjs/encoding\");\n/**\n * Takes a Tendermint 0.34 or 0.37 event with binary encoded key and value\n * and converts it into an `Event` with string attributes.\n */\nfunction fromTendermintEvent(event) {\n return {\n type: event.type,\n attributes: event.attributes.map((attr) => ({\n key: typeof attr.key == \"string\" ? attr.key : (0, encoding_1.fromUtf8)(attr.key, true),\n value: typeof attr.value == \"string\" ? attr.value : (0, encoding_1.fromUtf8)(attr.value, true),\n })),\n };\n}\n//# sourceMappingURL=events.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GasPrice = void 0;\nexports.calculateFee = calculateFee;\nconst math_1 = require(\"@cosmjs/math\");\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\n/**\n * Denom checker for the Cosmos SDK 0.42 denom pattern\n * (https://github.com/cosmos/cosmos-sdk/blob/v0.42.4/types/coin.go#L599-L601).\n *\n * This is like a regexp but with helpful error messages.\n */\nfunction checkDenom(denom) {\n if (denom.length < 3 || denom.length > 128) {\n throw new Error(\"Denom must be between 3 and 128 characters\");\n }\n}\n/**\n * A gas price, i.e. the price of a single unit of gas. This is typically a fraction of\n * the smallest fee token unit, such as 0.012utoken.\n */\nclass GasPrice {\n constructor(amount, denom) {\n this.amount = amount;\n this.denom = denom;\n }\n /**\n * Parses a gas price formatted as ``, e.g. `GasPrice.fromString(\"0.012utoken\")`.\n *\n * The denom must match the Cosmos SDK 0.42 pattern (https://github.com/cosmos/cosmos-sdk/blob/v0.42.4/types/coin.go#L599-L601).\n * See `GasPrice` in @cosmjs/stargate for a more generic matcher.\n *\n * Separators are not yet supported.\n */\n static fromString(gasPrice) {\n // Use Decimal.fromUserInput and checkDenom for detailed checks and helpful error messages\n const matchResult = gasPrice.match(/^([0-9.]+)([a-zA-Z][a-zA-Z0-9/:._-]*)$/);\n if (!matchResult) {\n throw new Error(\"Invalid gas price string\");\n }\n const [_, amount, denom] = matchResult;\n checkDenom(denom);\n const fractionalDigits = 18;\n const decimalAmount = math_1.Decimal.fromUserInput(amount, fractionalDigits);\n return new GasPrice(decimalAmount, denom);\n }\n /**\n * Returns a string representation of this gas price, e.g. \"0.025uatom\".\n * This can be used as an input to `GasPrice.fromString`.\n */\n toString() {\n return this.amount.toString() + this.denom;\n }\n}\nexports.GasPrice = GasPrice;\nfunction calculateFee(gasLimit, gasPrice) {\n const processedGasPrice = typeof gasPrice === \"string\" ? GasPrice.fromString(gasPrice) : gasPrice;\n const { denom, amount: gasPriceAmount } = processedGasPrice;\n // Note: Amount can exceed the safe integer range (https://github.com/cosmos/cosmjs/issues/1134),\n // which we handle by converting from Decimal to string without going through number.\n const amount = gasPriceAmount.multiply(new math_1.Uint53(gasLimit)).ceil().toString();\n return {\n amount: (0, proto_signing_1.coins)(amount, denom),\n gas: gasLimit.toString(),\n };\n}\n//# sourceMappingURL=fee.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isMsgVoteWeightedEncodeObject = exports.isMsgVoteEncodeObject = exports.isMsgUndelegateEncodeObject = exports.isMsgTransferEncodeObject = exports.isMsgSubmitProposalEncodeObject = exports.isMsgSendEncodeObject = exports.isMsgEditValidatorEncodeObject = exports.isMsgDepositEncodeObject = exports.isMsgDelegateEncodeObject = exports.isMsgCreateValidatorEncodeObject = exports.isMsgCancelUnbondingDelegationEncodeObject = exports.isMsgBeginRedelegateEncodeObject = exports.isAminoMsgWithdrawValidatorCommission = exports.isAminoMsgWithdrawDelegatorReward = exports.isAminoMsgVoteWeighted = exports.isAminoMsgVote = exports.isAminoMsgVerifyInvariant = exports.isAminoMsgUnjail = exports.isAminoMsgUndelegate = exports.isAminoMsgTransfer = exports.isAminoMsgSubmitProposal = exports.isAminoMsgSubmitEvidence = exports.isAminoMsgSetWithdrawAddress = exports.isAminoMsgSend = exports.isAminoMsgMultiSend = exports.isAminoMsgFundCommunityPool = exports.isAminoMsgEditValidator = exports.isAminoMsgDeposit = exports.isAminoMsgDelegate = exports.isAminoMsgCreateVestingAccount = exports.isAminoMsgCreateValidator = exports.isAminoMsgBeginRedelegate = exports.createVestingAminoConverters = exports.createStakingAminoConverters = exports.createSlashingAminoConverters = exports.createIbcAminoConverters = exports.createGroupAminoConverters = exports.createGovAminoConverters = exports.createFeegrantAminoConverters = exports.createEvidenceAminoConverters = exports.createDistributionAminoConverters = exports.createCrysisAminoConverters = exports.createBankAminoConverters = exports.createAuthzAminoConverters = exports.logs = exports.GasPrice = exports.calculateFee = exports.fromTendermintEvent = exports.AminoTypes = exports.accountFromAny = void 0;\nexports.parseCoins = exports.makeCosmoshubPath = exports.coins = exports.coin = exports.TimeoutError = exports.StargateClient = exports.isDeliverTxSuccess = exports.isDeliverTxFailure = exports.BroadcastTxError = exports.assertIsDeliverTxSuccess = exports.assertIsDeliverTxFailure = exports.SigningStargateClient = exports.defaultRegistryTypes = exports.createDefaultAminoConverters = exports.isSearchTxQueryArray = exports.QueryClient = exports.decodeCosmosSdkDecFromProto = exports.createProtobufRpcClient = exports.createPagination = exports.makeMultisignedTxBytes = exports.makeMultisignedTx = exports.setupTxExtension = exports.setupStakingExtension = exports.setupSlashingExtension = exports.setupMintExtension = exports.setupIbcExtension = exports.setupGovExtension = exports.setupFeegrantExtension = exports.setupDistributionExtension = exports.setupBankExtension = exports.setupAuthzExtension = exports.setupAuthExtension = exports.isMsgWithdrawDelegatorRewardEncodeObject = void 0;\nvar accounts_1 = require(\"./accounts\");\nObject.defineProperty(exports, \"accountFromAny\", { enumerable: true, get: function () { return accounts_1.accountFromAny; } });\nvar aminotypes_1 = require(\"./aminotypes\");\nObject.defineProperty(exports, \"AminoTypes\", { enumerable: true, get: function () { return aminotypes_1.AminoTypes; } });\nvar events_1 = require(\"./events\");\nObject.defineProperty(exports, \"fromTendermintEvent\", { enumerable: true, get: function () { return events_1.fromTendermintEvent; } });\nvar fee_1 = require(\"./fee\");\nObject.defineProperty(exports, \"calculateFee\", { enumerable: true, get: function () { return fee_1.calculateFee; } });\nObject.defineProperty(exports, \"GasPrice\", { enumerable: true, get: function () { return fee_1.GasPrice; } });\nexports.logs = __importStar(require(\"./logs\"));\nvar modules_1 = require(\"./modules\");\nObject.defineProperty(exports, \"createAuthzAminoConverters\", { enumerable: true, get: function () { return modules_1.createAuthzAminoConverters; } });\nObject.defineProperty(exports, \"createBankAminoConverters\", { enumerable: true, get: function () { return modules_1.createBankAminoConverters; } });\nObject.defineProperty(exports, \"createCrysisAminoConverters\", { enumerable: true, get: function () { return modules_1.createCrysisAminoConverters; } });\nObject.defineProperty(exports, \"createDistributionAminoConverters\", { enumerable: true, get: function () { return modules_1.createDistributionAminoConverters; } });\nObject.defineProperty(exports, \"createEvidenceAminoConverters\", { enumerable: true, get: function () { return modules_1.createEvidenceAminoConverters; } });\nObject.defineProperty(exports, \"createFeegrantAminoConverters\", { enumerable: true, get: function () { return modules_1.createFeegrantAminoConverters; } });\nObject.defineProperty(exports, \"createGovAminoConverters\", { enumerable: true, get: function () { return modules_1.createGovAminoConverters; } });\nObject.defineProperty(exports, \"createGroupAminoConverters\", { enumerable: true, get: function () { return modules_1.createGroupAminoConverters; } });\nObject.defineProperty(exports, \"createIbcAminoConverters\", { enumerable: true, get: function () { return modules_1.createIbcAminoConverters; } });\nObject.defineProperty(exports, \"createSlashingAminoConverters\", { enumerable: true, get: function () { return modules_1.createSlashingAminoConverters; } });\nObject.defineProperty(exports, \"createStakingAminoConverters\", { enumerable: true, get: function () { return modules_1.createStakingAminoConverters; } });\nObject.defineProperty(exports, \"createVestingAminoConverters\", { enumerable: true, get: function () { return modules_1.createVestingAminoConverters; } });\nObject.defineProperty(exports, \"isAminoMsgBeginRedelegate\", { enumerable: true, get: function () { return modules_1.isAminoMsgBeginRedelegate; } });\nObject.defineProperty(exports, \"isAminoMsgCreateValidator\", { enumerable: true, get: function () { return modules_1.isAminoMsgCreateValidator; } });\nObject.defineProperty(exports, \"isAminoMsgCreateVestingAccount\", { enumerable: true, get: function () { return modules_1.isAminoMsgCreateVestingAccount; } });\nObject.defineProperty(exports, \"isAminoMsgDelegate\", { enumerable: true, get: function () { return modules_1.isAminoMsgDelegate; } });\nObject.defineProperty(exports, \"isAminoMsgDeposit\", { enumerable: true, get: function () { return modules_1.isAminoMsgDeposit; } });\nObject.defineProperty(exports, \"isAminoMsgEditValidator\", { enumerable: true, get: function () { return modules_1.isAminoMsgEditValidator; } });\nObject.defineProperty(exports, \"isAminoMsgFundCommunityPool\", { enumerable: true, get: function () { return modules_1.isAminoMsgFundCommunityPool; } });\nObject.defineProperty(exports, \"isAminoMsgMultiSend\", { enumerable: true, get: function () { return modules_1.isAminoMsgMultiSend; } });\nObject.defineProperty(exports, \"isAminoMsgSend\", { enumerable: true, get: function () { return modules_1.isAminoMsgSend; } });\nObject.defineProperty(exports, \"isAminoMsgSetWithdrawAddress\", { enumerable: true, get: function () { return modules_1.isAminoMsgSetWithdrawAddress; } });\nObject.defineProperty(exports, \"isAminoMsgSubmitEvidence\", { enumerable: true, get: function () { return modules_1.isAminoMsgSubmitEvidence; } });\nObject.defineProperty(exports, \"isAminoMsgSubmitProposal\", { enumerable: true, get: function () { return modules_1.isAminoMsgSubmitProposal; } });\nObject.defineProperty(exports, \"isAminoMsgTransfer\", { enumerable: true, get: function () { return modules_1.isAminoMsgTransfer; } });\nObject.defineProperty(exports, \"isAminoMsgUndelegate\", { enumerable: true, get: function () { return modules_1.isAminoMsgUndelegate; } });\nObject.defineProperty(exports, \"isAminoMsgUnjail\", { enumerable: true, get: function () { return modules_1.isAminoMsgUnjail; } });\nObject.defineProperty(exports, \"isAminoMsgVerifyInvariant\", { enumerable: true, get: function () { return modules_1.isAminoMsgVerifyInvariant; } });\nObject.defineProperty(exports, \"isAminoMsgVote\", { enumerable: true, get: function () { return modules_1.isAminoMsgVote; } });\nObject.defineProperty(exports, \"isAminoMsgVoteWeighted\", { enumerable: true, get: function () { return modules_1.isAminoMsgVoteWeighted; } });\nObject.defineProperty(exports, \"isAminoMsgWithdrawDelegatorReward\", { enumerable: true, get: function () { return modules_1.isAminoMsgWithdrawDelegatorReward; } });\nObject.defineProperty(exports, \"isAminoMsgWithdrawValidatorCommission\", { enumerable: true, get: function () { return modules_1.isAminoMsgWithdrawValidatorCommission; } });\nObject.defineProperty(exports, \"isMsgBeginRedelegateEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgBeginRedelegateEncodeObject; } });\nObject.defineProperty(exports, \"isMsgCancelUnbondingDelegationEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgCancelUnbondingDelegationEncodeObject; } });\nObject.defineProperty(exports, \"isMsgCreateValidatorEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgCreateValidatorEncodeObject; } });\nObject.defineProperty(exports, \"isMsgDelegateEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgDelegateEncodeObject; } });\nObject.defineProperty(exports, \"isMsgDepositEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgDepositEncodeObject; } });\nObject.defineProperty(exports, \"isMsgEditValidatorEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgEditValidatorEncodeObject; } });\nObject.defineProperty(exports, \"isMsgSendEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgSendEncodeObject; } });\nObject.defineProperty(exports, \"isMsgSubmitProposalEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgSubmitProposalEncodeObject; } });\nObject.defineProperty(exports, \"isMsgTransferEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgTransferEncodeObject; } });\nObject.defineProperty(exports, \"isMsgUndelegateEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgUndelegateEncodeObject; } });\nObject.defineProperty(exports, \"isMsgVoteEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgVoteEncodeObject; } });\nObject.defineProperty(exports, \"isMsgVoteWeightedEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgVoteWeightedEncodeObject; } });\nObject.defineProperty(exports, \"isMsgWithdrawDelegatorRewardEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgWithdrawDelegatorRewardEncodeObject; } });\nObject.defineProperty(exports, \"setupAuthExtension\", { enumerable: true, get: function () { return modules_1.setupAuthExtension; } });\nObject.defineProperty(exports, \"setupAuthzExtension\", { enumerable: true, get: function () { return modules_1.setupAuthzExtension; } });\nObject.defineProperty(exports, \"setupBankExtension\", { enumerable: true, get: function () { return modules_1.setupBankExtension; } });\nObject.defineProperty(exports, \"setupDistributionExtension\", { enumerable: true, get: function () { return modules_1.setupDistributionExtension; } });\nObject.defineProperty(exports, \"setupFeegrantExtension\", { enumerable: true, get: function () { return modules_1.setupFeegrantExtension; } });\nObject.defineProperty(exports, \"setupGovExtension\", { enumerable: true, get: function () { return modules_1.setupGovExtension; } });\nObject.defineProperty(exports, \"setupIbcExtension\", { enumerable: true, get: function () { return modules_1.setupIbcExtension; } });\nObject.defineProperty(exports, \"setupMintExtension\", { enumerable: true, get: function () { return modules_1.setupMintExtension; } });\nObject.defineProperty(exports, \"setupSlashingExtension\", { enumerable: true, get: function () { return modules_1.setupSlashingExtension; } });\nObject.defineProperty(exports, \"setupStakingExtension\", { enumerable: true, get: function () { return modules_1.setupStakingExtension; } });\nObject.defineProperty(exports, \"setupTxExtension\", { enumerable: true, get: function () { return modules_1.setupTxExtension; } });\nvar multisignature_1 = require(\"./multisignature\");\nObject.defineProperty(exports, \"makeMultisignedTx\", { enumerable: true, get: function () { return multisignature_1.makeMultisignedTx; } });\nObject.defineProperty(exports, \"makeMultisignedTxBytes\", { enumerable: true, get: function () { return multisignature_1.makeMultisignedTxBytes; } });\nvar queryclient_1 = require(\"./queryclient\");\nObject.defineProperty(exports, \"createPagination\", { enumerable: true, get: function () { return queryclient_1.createPagination; } });\nObject.defineProperty(exports, \"createProtobufRpcClient\", { enumerable: true, get: function () { return queryclient_1.createProtobufRpcClient; } });\nObject.defineProperty(exports, \"decodeCosmosSdkDecFromProto\", { enumerable: true, get: function () { return queryclient_1.decodeCosmosSdkDecFromProto; } });\nObject.defineProperty(exports, \"QueryClient\", { enumerable: true, get: function () { return queryclient_1.QueryClient; } });\nvar search_1 = require(\"./search\");\nObject.defineProperty(exports, \"isSearchTxQueryArray\", { enumerable: true, get: function () { return search_1.isSearchTxQueryArray; } });\nvar signingstargateclient_1 = require(\"./signingstargateclient\");\nObject.defineProperty(exports, \"createDefaultAminoConverters\", { enumerable: true, get: function () { return signingstargateclient_1.createDefaultAminoConverters; } });\nObject.defineProperty(exports, \"defaultRegistryTypes\", { enumerable: true, get: function () { return signingstargateclient_1.defaultRegistryTypes; } });\nObject.defineProperty(exports, \"SigningStargateClient\", { enumerable: true, get: function () { return signingstargateclient_1.SigningStargateClient; } });\nvar stargateclient_1 = require(\"./stargateclient\");\nObject.defineProperty(exports, \"assertIsDeliverTxFailure\", { enumerable: true, get: function () { return stargateclient_1.assertIsDeliverTxFailure; } });\nObject.defineProperty(exports, \"assertIsDeliverTxSuccess\", { enumerable: true, get: function () { return stargateclient_1.assertIsDeliverTxSuccess; } });\nObject.defineProperty(exports, \"BroadcastTxError\", { enumerable: true, get: function () { return stargateclient_1.BroadcastTxError; } });\nObject.defineProperty(exports, \"isDeliverTxFailure\", { enumerable: true, get: function () { return stargateclient_1.isDeliverTxFailure; } });\nObject.defineProperty(exports, \"isDeliverTxSuccess\", { enumerable: true, get: function () { return stargateclient_1.isDeliverTxSuccess; } });\nObject.defineProperty(exports, \"StargateClient\", { enumerable: true, get: function () { return stargateclient_1.StargateClient; } });\nObject.defineProperty(exports, \"TimeoutError\", { enumerable: true, get: function () { return stargateclient_1.TimeoutError; } });\nvar proto_signing_1 = require(\"@cosmjs/proto-signing\");\nObject.defineProperty(exports, \"coin\", { enumerable: true, get: function () { return proto_signing_1.coin; } });\nObject.defineProperty(exports, \"coins\", { enumerable: true, get: function () { return proto_signing_1.coins; } });\nObject.defineProperty(exports, \"makeCosmoshubPath\", { enumerable: true, get: function () { return proto_signing_1.makeCosmoshubPath; } });\nObject.defineProperty(exports, \"parseCoins\", { enumerable: true, get: function () { return proto_signing_1.parseCoins; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseAttribute = parseAttribute;\nexports.parseEvent = parseEvent;\nexports.parseLog = parseLog;\nexports.parseLogs = parseLogs;\nexports.parseRawLog = parseRawLog;\nexports.findAttribute = findAttribute;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst utils_1 = require(\"@cosmjs/utils\");\nfunction parseAttribute(input) {\n if (!(0, utils_1.isNonNullObject)(input))\n throw new Error(\"Attribute must be a non-null object\");\n const { key, value } = input;\n if (typeof key !== \"string\" || !key)\n throw new Error(\"Attribute's key must be a non-empty string\");\n if (typeof value !== \"string\" && typeof value !== \"undefined\") {\n throw new Error(\"Attribute's value must be a string or unset\");\n }\n return {\n key: key,\n value: value || \"\",\n };\n}\nfunction parseEvent(input) {\n if (!(0, utils_1.isNonNullObject)(input))\n throw new Error(\"Event must be a non-null object\");\n const { type, attributes } = input;\n if (typeof type !== \"string\" || type === \"\") {\n throw new Error(`Event type must be a non-empty string`);\n }\n if (!Array.isArray(attributes))\n throw new Error(\"Event's attributes must be an array\");\n return {\n type: type,\n attributes: attributes.map(parseAttribute),\n };\n}\nfunction parseLog(input) {\n if (!(0, utils_1.isNonNullObject)(input))\n throw new Error(\"Log must be a non-null object\");\n const { msg_index, log, events } = input;\n if (typeof msg_index !== \"number\")\n throw new Error(\"Log's msg_index must be a number\");\n if (typeof log !== \"string\")\n throw new Error(\"Log's log must be a string\");\n if (!Array.isArray(events))\n throw new Error(\"Log's events must be an array\");\n return {\n msg_index: msg_index,\n log: log,\n events: events.map(parseEvent),\n };\n}\nfunction parseLogs(input) {\n if (!Array.isArray(input))\n throw new Error(\"Logs must be an array\");\n return input.map(parseLog);\n}\nfunction parseRawLog(input) {\n // Cosmos SDK >= 0.50 gives us an empty string here. This should be handled like undefined.\n if (!input)\n return [];\n const logsToParse = JSON.parse(input).map(({ events }, i) => ({\n msg_index: i,\n events,\n log: \"\",\n }));\n return parseLogs(logsToParse);\n}\n/**\n * Searches in logs for the first event of the given event type and in that event\n * for the first first attribute with the given attribute key.\n *\n * Throws if the attribute was not found.\n */\nfunction findAttribute(logs, eventType, attrKey) {\n const firstLogs = logs.find(() => true);\n const out = firstLogs?.events\n .find((event) => event.type === eventType)\n ?.attributes.find((attr) => attr.key === attrKey);\n if (!out) {\n throw new Error(`Could not find attribute '${attrKey}' in first event of type '${eventType}' in first log.`);\n }\n return out;\n}\n//# sourceMappingURL=logs.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupAuthExtension = setupAuthExtension;\nconst query_1 = require(\"cosmjs-types/cosmos/auth/v1beta1/query\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction setupAuthExtension(base) {\n const rpc = (0, queryclient_1.createProtobufRpcClient)(base);\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n auth: {\n account: async (address) => {\n const { account } = await queryService.Account({ address: address });\n return account ?? null;\n },\n },\n };\n}\n//# sourceMappingURL=queries.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createAuthzAminoConverters = createAuthzAminoConverters;\nfunction createAuthzAminoConverters() {\n return {\n // For Cosmos SDK < 0.46 the Amino JSON codec was broken on chain and thus inaccessible.\n // Now this can be implemented for 0.46+ chains, see\n // https://github.com/cosmos/cosmjs/issues/1092\n //\n // \"/cosmos.authz.v1beta1.MsgGrant\": IMPLEMENT ME,\n // \"/cosmos.authz.v1beta1.MsgExec\": IMPLEMENT ME,\n // \"/cosmos.authz.v1beta1.MsgRevoke\": IMPLEMENT ME,\n };\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.authzTypes = void 0;\nconst tx_1 = require(\"cosmjs-types/cosmos/authz/v1beta1/tx\");\nexports.authzTypes = [\n [\"/cosmos.authz.v1beta1.MsgExec\", tx_1.MsgExec],\n [\"/cosmos.authz.v1beta1.MsgGrant\", tx_1.MsgGrant],\n [\"/cosmos.authz.v1beta1.MsgRevoke\", tx_1.MsgRevoke],\n];\n//# sourceMappingURL=messages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupAuthzExtension = setupAuthzExtension;\nconst query_1 = require(\"cosmjs-types/cosmos/authz/v1beta1/query\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction setupAuthzExtension(base) {\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const rpc = (0, queryclient_1.createProtobufRpcClient)(base);\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n authz: {\n grants: async (granter, grantee, msgTypeUrl, paginationKey) => {\n return await queryService.Grants({\n granter: granter,\n grantee: grantee,\n msgTypeUrl: msgTypeUrl,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n },\n granteeGrants: async (grantee, paginationKey) => {\n return await queryService.GranteeGrants({\n grantee: grantee,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n },\n granterGrants: async (granter, paginationKey) => {\n return await queryService.GranterGrants({\n granter: granter,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n },\n },\n };\n}\n//# sourceMappingURL=queries.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAminoMsgSend = isAminoMsgSend;\nexports.isAminoMsgMultiSend = isAminoMsgMultiSend;\nexports.createBankAminoConverters = createBankAminoConverters;\nfunction isAminoMsgSend(msg) {\n return msg.type === \"cosmos-sdk/MsgSend\";\n}\nfunction isAminoMsgMultiSend(msg) {\n return msg.type === \"cosmos-sdk/MsgMultiSend\";\n}\nfunction createBankAminoConverters() {\n return {\n \"/cosmos.bank.v1beta1.MsgSend\": {\n aminoType: \"cosmos-sdk/MsgSend\",\n toAmino: ({ fromAddress, toAddress, amount }) => ({\n from_address: fromAddress,\n to_address: toAddress,\n amount: [...amount],\n }),\n fromAmino: ({ from_address, to_address, amount }) => ({\n fromAddress: from_address,\n toAddress: to_address,\n amount: [...amount],\n }),\n },\n \"/cosmos.bank.v1beta1.MsgMultiSend\": {\n aminoType: \"cosmos-sdk/MsgMultiSend\",\n toAmino: ({ inputs, outputs }) => ({\n inputs: inputs.map((input) => ({\n address: input.address,\n coins: [...input.coins],\n })),\n outputs: outputs.map((output) => ({\n address: output.address,\n coins: [...output.coins],\n })),\n }),\n fromAmino: ({ inputs, outputs }) => ({\n inputs: inputs.map((input) => ({\n address: input.address,\n coins: [...input.coins],\n })),\n outputs: outputs.map((output) => ({\n address: output.address,\n coins: [...output.coins],\n })),\n }),\n },\n };\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bankTypes = void 0;\nexports.isMsgSendEncodeObject = isMsgSendEncodeObject;\nconst tx_1 = require(\"cosmjs-types/cosmos/bank/v1beta1/tx\");\nexports.bankTypes = [\n [\"/cosmos.bank.v1beta1.MsgMultiSend\", tx_1.MsgMultiSend],\n [\"/cosmos.bank.v1beta1.MsgSend\", tx_1.MsgSend],\n];\nfunction isMsgSendEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmos.bank.v1beta1.MsgSend\";\n}\n//# sourceMappingURL=messages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupBankExtension = setupBankExtension;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst utils_1 = require(\"@cosmjs/utils\");\nconst query_1 = require(\"cosmjs-types/cosmos/bank/v1beta1/query\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction setupBankExtension(base) {\n const rpc = (0, queryclient_1.createProtobufRpcClient)(base);\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n bank: {\n balance: async (address, denom) => {\n const { balance } = await queryService.Balance({ address: address, denom: denom });\n (0, utils_1.assert)(balance);\n return balance;\n },\n allBalances: async (address) => {\n const { balances } = await queryService.AllBalances(query_1.QueryAllBalancesRequest.fromPartial({ address: address }));\n return balances;\n },\n totalSupply: async (paginationKey) => {\n const response = await queryService.TotalSupply({\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n supplyOf: async (denom) => {\n const { amount } = await queryService.SupplyOf({ denom: denom });\n (0, utils_1.assert)(amount);\n return amount;\n },\n denomMetadata: async (denom) => {\n const { metadata } = await queryService.DenomMetadata({ denom });\n (0, utils_1.assert)(metadata);\n return metadata;\n },\n denomsMetadata: async () => {\n const { metadatas } = await queryService.DenomsMetadata(query_1.QueryDenomsMetadataRequest.fromPartial({\n pagination: undefined, // Not implemented\n }));\n return metadatas;\n },\n },\n };\n}\n//# sourceMappingURL=queries.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAminoMsgVerifyInvariant = isAminoMsgVerifyInvariant;\nexports.createCrysisAminoConverters = createCrysisAminoConverters;\nfunction isAminoMsgVerifyInvariant(msg) {\n return msg.type === \"cosmos-sdk/MsgVerifyInvariant\";\n}\nfunction createCrysisAminoConverters() {\n throw new Error(\"Not implemented\");\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAminoMsgSetWithdrawAddress = isAminoMsgSetWithdrawAddress;\nexports.isAminoMsgWithdrawDelegatorReward = isAminoMsgWithdrawDelegatorReward;\nexports.isAminoMsgWithdrawValidatorCommission = isAminoMsgWithdrawValidatorCommission;\nexports.isAminoMsgFundCommunityPool = isAminoMsgFundCommunityPool;\nexports.createDistributionAminoConverters = createDistributionAminoConverters;\nfunction isAminoMsgSetWithdrawAddress(msg) {\n // NOTE: Type string and names diverge here!\n return msg.type === \"cosmos-sdk/MsgModifyWithdrawAddress\";\n}\nfunction isAminoMsgWithdrawDelegatorReward(msg) {\n // NOTE: Type string and names diverge here!\n return msg.type === \"cosmos-sdk/MsgWithdrawDelegationReward\";\n}\nfunction isAminoMsgWithdrawValidatorCommission(msg) {\n return msg.type === \"cosmos-sdk/MsgWithdrawValidatorCommission\";\n}\nfunction isAminoMsgFundCommunityPool(msg) {\n return msg.type === \"cosmos-sdk/MsgFundCommunityPool\";\n}\nfunction createDistributionAminoConverters() {\n return {\n \"/cosmos.distribution.v1beta1.MsgFundCommunityPool\": {\n aminoType: \"cosmos-sdk/MsgFundCommunityPool\",\n toAmino: ({ amount, depositor }) => ({\n amount: [...amount],\n depositor: depositor,\n }),\n fromAmino: ({ amount, depositor }) => ({\n amount: [...amount],\n depositor: depositor,\n }),\n },\n \"/cosmos.distribution.v1beta1.MsgSetWithdrawAddress\": {\n aminoType: \"cosmos-sdk/MsgModifyWithdrawAddress\",\n toAmino: ({ delegatorAddress, withdrawAddress, }) => ({\n delegator_address: delegatorAddress,\n withdraw_address: withdrawAddress,\n }),\n fromAmino: ({ delegator_address, withdraw_address, }) => ({\n delegatorAddress: delegator_address,\n withdrawAddress: withdraw_address,\n }),\n },\n \"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward\": {\n aminoType: \"cosmos-sdk/MsgWithdrawDelegationReward\",\n toAmino: ({ delegatorAddress, validatorAddress, }) => ({\n delegator_address: delegatorAddress,\n validator_address: validatorAddress,\n }),\n fromAmino: ({ delegator_address, validator_address, }) => ({\n delegatorAddress: delegator_address,\n validatorAddress: validator_address,\n }),\n },\n \"/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission\": {\n aminoType: \"cosmos-sdk/MsgWithdrawValidatorCommission\",\n toAmino: ({ validatorAddress, }) => ({\n validator_address: validatorAddress,\n }),\n fromAmino: ({ validator_address, }) => ({\n validatorAddress: validator_address,\n }),\n },\n };\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.distributionTypes = void 0;\nexports.isMsgWithdrawDelegatorRewardEncodeObject = isMsgWithdrawDelegatorRewardEncodeObject;\nconst tx_1 = require(\"cosmjs-types/cosmos/distribution/v1beta1/tx\");\nexports.distributionTypes = [\n [\"/cosmos.distribution.v1beta1.MsgFundCommunityPool\", tx_1.MsgFundCommunityPool],\n [\"/cosmos.distribution.v1beta1.MsgSetWithdrawAddress\", tx_1.MsgSetWithdrawAddress],\n [\"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward\", tx_1.MsgWithdrawDelegatorReward],\n [\"/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission\", tx_1.MsgWithdrawValidatorCommission],\n];\nfunction isMsgWithdrawDelegatorRewardEncodeObject(object) {\n return (object.typeUrl ===\n \"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward\");\n}\n//# sourceMappingURL=messages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupDistributionExtension = setupDistributionExtension;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst query_1 = require(\"cosmjs-types/cosmos/distribution/v1beta1/query\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction setupDistributionExtension(base) {\n const rpc = (0, queryclient_1.createProtobufRpcClient)(base);\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n distribution: {\n communityPool: async () => {\n const response = await queryService.CommunityPool({});\n return response;\n },\n delegationRewards: async (delegatorAddress, validatorAddress) => {\n const response = await queryService.DelegationRewards({\n delegatorAddress: delegatorAddress,\n validatorAddress: validatorAddress,\n });\n return response;\n },\n delegationTotalRewards: async (delegatorAddress) => {\n const response = await queryService.DelegationTotalRewards({\n delegatorAddress: delegatorAddress,\n });\n return response;\n },\n delegatorValidators: async (delegatorAddress) => {\n const response = await queryService.DelegatorValidators({\n delegatorAddress: delegatorAddress,\n });\n return response;\n },\n delegatorWithdrawAddress: async (delegatorAddress) => {\n const response = await queryService.DelegatorWithdrawAddress({\n delegatorAddress: delegatorAddress,\n });\n return response;\n },\n params: async () => {\n const response = await queryService.Params({});\n return response;\n },\n validatorCommission: async (validatorAddress) => {\n const response = await queryService.ValidatorCommission({\n validatorAddress: validatorAddress,\n });\n return response;\n },\n validatorOutstandingRewards: async (validatorAddress) => {\n const response = await queryService.ValidatorOutstandingRewards({\n validatorAddress: validatorAddress,\n });\n return response;\n },\n validatorSlashes: async (validatorAddress, startingHeight, endingHeight, paginationKey) => {\n const response = await queryService.ValidatorSlashes({\n validatorAddress: validatorAddress,\n startingHeight: BigInt(startingHeight),\n endingHeight: BigInt(endingHeight),\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n },\n };\n}\n//# sourceMappingURL=queries.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAminoMsgSubmitEvidence = isAminoMsgSubmitEvidence;\nexports.createEvidenceAminoConverters = createEvidenceAminoConverters;\nfunction isAminoMsgSubmitEvidence(msg) {\n return msg.type === \"cosmos-sdk/MsgSubmitEvidence\";\n}\nfunction createEvidenceAminoConverters() {\n throw new Error(\"Not implemented\");\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createFeegrantAminoConverters = createFeegrantAminoConverters;\nfunction createFeegrantAminoConverters() {\n return {\n // For Cosmos SDK < 0.46 the Amino JSON codec was broken on chain and thus inaccessible.\n // Now this can be implemented for 0.46+ chains, see\n // https://github.com/cosmos/cosmjs/issues/1092\n //\n // \"/cosmos.feegrant.v1beta1.MsgGrantAllowance\": IMPLEMENT_ME,\n // \"/cosmos.feegrant.v1beta1.MsgRevokeAllowance\": IMPLEMENT_ME,\n };\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.feegrantTypes = void 0;\nconst tx_1 = require(\"cosmjs-types/cosmos/feegrant/v1beta1/tx\");\nexports.feegrantTypes = [\n [\"/cosmos.feegrant.v1beta1.MsgGrantAllowance\", tx_1.MsgGrantAllowance],\n [\"/cosmos.feegrant.v1beta1.MsgRevokeAllowance\", tx_1.MsgRevokeAllowance],\n];\n//# sourceMappingURL=messages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupFeegrantExtension = setupFeegrantExtension;\nconst query_1 = require(\"cosmjs-types/cosmos/feegrant/v1beta1/query\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction setupFeegrantExtension(base) {\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const rpc = (0, queryclient_1.createProtobufRpcClient)(base);\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n feegrant: {\n allowance: async (granter, grantee) => {\n const response = await queryService.Allowance({\n granter: granter,\n grantee: grantee,\n });\n return response;\n },\n allowances: async (grantee, paginationKey) => {\n const response = await queryService.Allowances({\n grantee: grantee,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n },\n };\n}\n//# sourceMappingURL=queries.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAminoMsgSubmitProposal = isAminoMsgSubmitProposal;\nexports.isAminoMsgVote = isAminoMsgVote;\nexports.isAminoMsgVoteWeighted = isAminoMsgVoteWeighted;\nexports.isAminoMsgDeposit = isAminoMsgDeposit;\nexports.createGovAminoConverters = createGovAminoConverters;\nconst math_1 = require(\"@cosmjs/math\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst gov_1 = require(\"cosmjs-types/cosmos/gov/v1beta1/gov\");\nconst any_1 = require(\"cosmjs-types/google/protobuf/any\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction isAminoMsgSubmitProposal(msg) {\n return msg.type === \"cosmos-sdk/MsgSubmitProposal\";\n}\nfunction isAminoMsgVote(msg) {\n return msg.type === \"cosmos-sdk/MsgVote\";\n}\nfunction isAminoMsgVoteWeighted(msg) {\n return msg.type === \"cosmos-sdk/MsgVoteWeighted\";\n}\nfunction isAminoMsgDeposit(msg) {\n return msg.type === \"cosmos-sdk/MsgDeposit\";\n}\nfunction createGovAminoConverters() {\n // Gov v1 types missing, see\n // https://github.com/cosmos/cosmjs/issues/1442\n return {\n \"/cosmos.gov.v1beta1.MsgDeposit\": {\n aminoType: \"cosmos-sdk/MsgDeposit\",\n toAmino: ({ amount, depositor, proposalId }) => {\n return {\n amount,\n depositor,\n proposal_id: proposalId.toString(),\n };\n },\n fromAmino: ({ amount, depositor, proposal_id }) => {\n return {\n amount: Array.from(amount),\n depositor,\n proposalId: BigInt(proposal_id),\n };\n },\n },\n \"/cosmos.gov.v1beta1.MsgVote\": {\n aminoType: \"cosmos-sdk/MsgVote\",\n toAmino: ({ option, proposalId, voter }) => {\n return {\n option: option,\n proposal_id: proposalId.toString(),\n voter: voter,\n };\n },\n fromAmino: ({ option, proposal_id, voter }) => {\n return {\n option: (0, gov_1.voteOptionFromJSON)(option),\n proposalId: BigInt(proposal_id),\n voter: voter,\n };\n },\n },\n \"/cosmos.gov.v1beta1.MsgVoteWeighted\": {\n aminoType: \"cosmos-sdk/MsgVoteWeighted\",\n toAmino: ({ options, proposalId, voter }) => {\n return {\n options: options.map((o) => ({\n option: o.option,\n // Weight is between 0 and 1, so we always have 20 characters when printing all trailing\n // zeros (e.g. \"0.700000000000000000\" or \"1.000000000000000000\")\n weight: (0, queryclient_1.decodeCosmosSdkDecFromProto)(o.weight).toString().padEnd(20, \"0\"),\n })),\n proposal_id: proposalId.toString(),\n voter: voter,\n };\n },\n fromAmino: ({ options, proposal_id, voter }) => {\n return {\n proposalId: BigInt(proposal_id),\n voter: voter,\n options: options.map((o) => ({\n option: (0, gov_1.voteOptionFromJSON)(o.option),\n weight: math_1.Decimal.fromUserInput(o.weight, 18).atomics,\n })),\n };\n },\n },\n \"/cosmos.gov.v1beta1.MsgSubmitProposal\": {\n aminoType: \"cosmos-sdk/MsgSubmitProposal\",\n toAmino: ({ initialDeposit, proposer, content, }) => {\n (0, utils_1.assertDefinedAndNotNull)(content);\n let proposal;\n switch (content.typeUrl) {\n case \"/cosmos.gov.v1beta1.TextProposal\": {\n const textProposal = gov_1.TextProposal.decode(content.value);\n proposal = {\n type: \"cosmos-sdk/TextProposal\",\n value: {\n description: textProposal.description,\n title: textProposal.title,\n },\n };\n break;\n }\n default:\n throw new Error(`Unsupported proposal type: '${content.typeUrl}'`);\n }\n return {\n initial_deposit: initialDeposit,\n proposer: proposer,\n content: proposal,\n };\n },\n fromAmino: ({ initial_deposit, proposer, content, }) => {\n let any_content;\n switch (content.type) {\n case \"cosmos-sdk/TextProposal\": {\n const { value } = content;\n (0, utils_1.assert)((0, utils_1.isNonNullObject)(value));\n const { title, description } = value;\n (0, utils_1.assert)(typeof title === \"string\");\n (0, utils_1.assert)(typeof description === \"string\");\n any_content = any_1.Any.fromPartial({\n typeUrl: \"/cosmos.gov.v1beta1.TextProposal\",\n value: gov_1.TextProposal.encode(gov_1.TextProposal.fromPartial({\n title: title,\n description: description,\n })).finish(),\n });\n break;\n }\n default:\n throw new Error(`Unsupported proposal type: '${content.type}'`);\n }\n return {\n initialDeposit: Array.from(initial_deposit),\n proposer: proposer,\n content: any_content,\n };\n },\n },\n };\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.govTypes = void 0;\nexports.isMsgDepositEncodeObject = isMsgDepositEncodeObject;\nexports.isMsgSubmitProposalEncodeObject = isMsgSubmitProposalEncodeObject;\nexports.isMsgVoteEncodeObject = isMsgVoteEncodeObject;\nexports.isMsgVoteWeightedEncodeObject = isMsgVoteWeightedEncodeObject;\nconst tx_1 = require(\"cosmjs-types/cosmos/gov/v1/tx\");\nconst tx_2 = require(\"cosmjs-types/cosmos/gov/v1beta1/tx\");\nexports.govTypes = [\n [\"/cosmos.gov.v1.MsgDeposit\", tx_1.MsgDeposit],\n [\"/cosmos.gov.v1.MsgSubmitProposal\", tx_1.MsgSubmitProposal],\n [\"/cosmos.gov.v1.MsgUpdateParams\", tx_1.MsgUpdateParams],\n [\"/cosmos.gov.v1.MsgVote\", tx_1.MsgVote],\n [\"/cosmos.gov.v1.MsgVoteWeighted\", tx_1.MsgVoteWeighted],\n [\"/cosmos.gov.v1beta1.MsgDeposit\", tx_2.MsgDeposit],\n [\"/cosmos.gov.v1beta1.MsgSubmitProposal\", tx_2.MsgSubmitProposal],\n [\"/cosmos.gov.v1beta1.MsgVote\", tx_2.MsgVote],\n [\"/cosmos.gov.v1beta1.MsgVoteWeighted\", tx_2.MsgVoteWeighted],\n];\nfunction isMsgDepositEncodeObject(object) {\n return object.typeUrl === \"/cosmos.gov.v1beta1.MsgDeposit\";\n}\nfunction isMsgSubmitProposalEncodeObject(object) {\n return object.typeUrl === \"/cosmos.gov.v1beta1.MsgSubmitProposal\";\n}\nfunction isMsgVoteEncodeObject(object) {\n return object.typeUrl === \"/cosmos.gov.v1beta1.MsgVote\";\n}\nfunction isMsgVoteWeightedEncodeObject(object) {\n return object.typeUrl === \"/cosmos.gov.v1beta1.MsgVoteWeighted\";\n}\n//# sourceMappingURL=messages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupGovExtension = setupGovExtension;\nconst query_1 = require(\"cosmjs-types/cosmos/gov/v1beta1/query\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction setupGovExtension(base) {\n const rpc = (0, queryclient_1.createProtobufRpcClient)(base);\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n gov: {\n params: async (parametersType) => {\n const response = await queryService.Params({ paramsType: parametersType });\n return response;\n },\n proposals: async (proposalStatus, depositorAddress, voterAddress, paginationKey) => {\n const response = await queryService.Proposals({\n proposalStatus,\n depositor: depositorAddress,\n voter: voterAddress,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n proposal: async (proposalId) => {\n const response = await queryService.Proposal({ proposalId: (0, queryclient_1.longify)(proposalId) });\n return response;\n },\n deposits: async (proposalId, paginationKey) => {\n const response = await queryService.Deposits({\n proposalId: (0, queryclient_1.longify)(proposalId),\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n deposit: async (proposalId, depositorAddress) => {\n const response = await queryService.Deposit({\n proposalId: (0, queryclient_1.longify)(proposalId),\n depositor: depositorAddress,\n });\n return response;\n },\n tally: async (proposalId) => {\n const response = await queryService.TallyResult({\n proposalId: (0, queryclient_1.longify)(proposalId),\n });\n return response;\n },\n votes: async (proposalId, paginationKey) => {\n const response = await queryService.Votes({\n proposalId: (0, queryclient_1.longify)(proposalId),\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n vote: async (proposalId, voterAddress) => {\n const response = await queryService.Vote({\n proposalId: (0, queryclient_1.longify)(proposalId),\n voter: voterAddress,\n });\n return response;\n },\n },\n };\n}\n//# sourceMappingURL=queries.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createGroupAminoConverters = createGroupAminoConverters;\nfunction createGroupAminoConverters() {\n // Missing, see https://github.com/cosmos/cosmjs/issues/1441\n return {};\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.groupTypes = void 0;\nconst tx_1 = require(\"cosmjs-types/cosmos/group/v1/tx\");\nexports.groupTypes = [\n [\"/cosmos.group.v1.MsgCreateGroup\", tx_1.MsgCreateGroup],\n [\"/cosmos.group.v1.MsgCreateGroupPolicy\", tx_1.MsgCreateGroupPolicy],\n [\"/cosmos.group.v1.MsgCreateGroupWithPolicy\", tx_1.MsgCreateGroupWithPolicy],\n [\"/cosmos.group.v1.MsgExec\", tx_1.MsgExec],\n [\"/cosmos.group.v1.MsgLeaveGroup\", tx_1.MsgLeaveGroup],\n [\"/cosmos.group.v1.MsgSubmitProposal\", tx_1.MsgSubmitProposal],\n [\"/cosmos.group.v1.MsgUpdateGroupAdmin\", tx_1.MsgUpdateGroupAdmin],\n [\"/cosmos.group.v1.MsgUpdateGroupMembers\", tx_1.MsgUpdateGroupMembers],\n [\"/cosmos.group.v1.MsgUpdateGroupMetadata\", tx_1.MsgUpdateGroupMetadata],\n [\"/cosmos.group.v1.MsgUpdateGroupPolicyAdmin\", tx_1.MsgUpdateGroupPolicyAdmin],\n [\"/cosmos.group.v1.MsgUpdateGroupPolicyDecisionPolicy\", tx_1.MsgUpdateGroupPolicyDecisionPolicy],\n [\"/cosmos.group.v1.MsgUpdateGroupPolicyMetadata\", tx_1.MsgUpdateGroupPolicyMetadata],\n [\"/cosmos.group.v1.MsgVote\", tx_1.MsgVote],\n [\"/cosmos.group.v1.MsgWithdrawProposal\", tx_1.MsgWithdrawProposal],\n];\n// There are no EncodeObject implementations for the new v1 message types because\n// those things don't scale (https://github.com/cosmos/cosmjs/issues/1440). We need to\n// address this more fundamentally. Users can use\n// const msg = {\n// typeUrl: \"/cosmos.group.v1.MsgCreateGroup\",\n// value: MsgCreateGroup.fromPartial({ ... })\n// }\n// in their app.\n//# sourceMappingURL=messages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAminoMsgTransfer = isAminoMsgTransfer;\nexports.createIbcAminoConverters = createIbcAminoConverters;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst amino_1 = require(\"@cosmjs/amino\");\nconst tx_1 = require(\"cosmjs-types/ibc/applications/transfer/v1/tx\");\nfunction isAminoMsgTransfer(msg) {\n return msg.type === \"cosmos-sdk/MsgTransfer\";\n}\nfunction createIbcAminoConverters() {\n return {\n \"/ibc.applications.transfer.v1.MsgTransfer\": {\n aminoType: \"cosmos-sdk/MsgTransfer\",\n toAmino: ({ sourcePort, sourceChannel, token, sender, receiver, timeoutHeight, timeoutTimestamp, memo, }) => ({\n source_port: sourcePort,\n source_channel: sourceChannel,\n token: token,\n sender: sender,\n receiver: receiver,\n timeout_height: timeoutHeight\n ? {\n revision_height: (0, amino_1.omitDefault)(timeoutHeight.revisionHeight)?.toString(),\n revision_number: (0, amino_1.omitDefault)(timeoutHeight.revisionNumber)?.toString(),\n }\n : {},\n timeout_timestamp: (0, amino_1.omitDefault)(timeoutTimestamp)?.toString(),\n memo: (0, amino_1.omitDefault)(memo),\n }),\n fromAmino: ({ source_port, source_channel, token, sender, receiver, timeout_height, timeout_timestamp, memo, }) => tx_1.MsgTransfer.fromPartial({\n sourcePort: source_port,\n sourceChannel: source_channel,\n token: token,\n sender: sender,\n receiver: receiver,\n timeoutHeight: timeout_height\n ? {\n revisionHeight: BigInt(timeout_height.revision_height || \"0\"),\n revisionNumber: BigInt(timeout_height.revision_number || \"0\"),\n }\n : undefined,\n timeoutTimestamp: BigInt(timeout_timestamp || \"0\"),\n memo: memo ?? \"\",\n }),\n },\n };\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ibcTypes = void 0;\nexports.isMsgTransferEncodeObject = isMsgTransferEncodeObject;\nconst tx_1 = require(\"cosmjs-types/ibc/applications/transfer/v1/tx\");\nconst tx_2 = require(\"cosmjs-types/ibc/core/channel/v1/tx\");\nconst tx_3 = require(\"cosmjs-types/ibc/core/client/v1/tx\");\nconst tx_4 = require(\"cosmjs-types/ibc/core/connection/v1/tx\");\nexports.ibcTypes = [\n [\"/ibc.applications.transfer.v1.MsgTransfer\", tx_1.MsgTransfer],\n [\"/ibc.core.channel.v1.MsgAcknowledgement\", tx_2.MsgAcknowledgement],\n [\"/ibc.core.channel.v1.MsgChannelCloseConfirm\", tx_2.MsgChannelCloseConfirm],\n [\"/ibc.core.channel.v1.MsgChannelCloseInit\", tx_2.MsgChannelCloseInit],\n [\"/ibc.core.channel.v1.MsgChannelOpenAck\", tx_2.MsgChannelOpenAck],\n [\"/ibc.core.channel.v1.MsgChannelOpenConfirm\", tx_2.MsgChannelOpenConfirm],\n [\"/ibc.core.channel.v1.MsgChannelOpenInit\", tx_2.MsgChannelOpenInit],\n [\"/ibc.core.channel.v1.MsgChannelOpenTry\", tx_2.MsgChannelOpenTry],\n [\"/ibc.core.channel.v1.MsgRecvPacket\", tx_2.MsgRecvPacket],\n [\"/ibc.core.channel.v1.MsgTimeout\", tx_2.MsgTimeout],\n [\"/ibc.core.channel.v1.MsgTimeoutOnClose\", tx_2.MsgTimeoutOnClose],\n [\"/ibc.core.client.v1.MsgCreateClient\", tx_3.MsgCreateClient],\n [\"/ibc.core.client.v1.MsgSubmitMisbehaviour\", tx_3.MsgSubmitMisbehaviour],\n [\"/ibc.core.client.v1.MsgUpdateClient\", tx_3.MsgUpdateClient],\n [\"/ibc.core.client.v1.MsgUpgradeClient\", tx_3.MsgUpgradeClient],\n [\"/ibc.core.connection.v1.MsgConnectionOpenAck\", tx_4.MsgConnectionOpenAck],\n [\"/ibc.core.connection.v1.MsgConnectionOpenConfirm\", tx_4.MsgConnectionOpenConfirm],\n [\"/ibc.core.connection.v1.MsgConnectionOpenInit\", tx_4.MsgConnectionOpenInit],\n [\"/ibc.core.connection.v1.MsgConnectionOpenTry\", tx_4.MsgConnectionOpenTry],\n];\nfunction isMsgTransferEncodeObject(object) {\n return object.typeUrl === \"/ibc.applications.transfer.v1.MsgTransfer\";\n}\n//# sourceMappingURL=messages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupIbcExtension = setupIbcExtension;\nconst query_1 = require(\"cosmjs-types/ibc/applications/transfer/v1/query\");\nconst query_2 = require(\"cosmjs-types/ibc/core/channel/v1/query\");\nconst query_3 = require(\"cosmjs-types/ibc/core/client/v1/query\");\nconst query_4 = require(\"cosmjs-types/ibc/core/connection/v1/query\");\nconst tendermint_1 = require(\"cosmjs-types/ibc/lightclients/tendermint/v1/tendermint\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction decodeTendermintClientStateAny(clientState) {\n if (clientState?.typeUrl !== \"/ibc.lightclients.tendermint.v1.ClientState\") {\n throw new Error(`Unexpected client state type: ${clientState?.typeUrl}`);\n }\n return tendermint_1.ClientState.decode(clientState.value);\n}\nfunction decodeTendermintConsensusStateAny(clientState) {\n if (clientState?.typeUrl !== \"/ibc.lightclients.tendermint.v1.ConsensusState\") {\n throw new Error(`Unexpected client state type: ${clientState?.typeUrl}`);\n }\n return tendermint_1.ConsensusState.decode(clientState.value);\n}\nfunction setupIbcExtension(base) {\n const rpc = (0, queryclient_1.createProtobufRpcClient)(base);\n // Use these services to get easy typed access to query methods\n // These cannot be used for proof verification\n const channelQueryService = new query_2.QueryClientImpl(rpc);\n const clientQueryService = new query_3.QueryClientImpl(rpc);\n const connectionQueryService = new query_4.QueryClientImpl(rpc);\n const transferQueryService = new query_1.QueryClientImpl(rpc);\n return {\n ibc: {\n channel: {\n channel: async (portId, channelId) => channelQueryService.Channel({\n portId: portId,\n channelId: channelId,\n }),\n channels: async (paginationKey) => channelQueryService.Channels({\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n }),\n allChannels: async () => {\n const channels = [];\n let response;\n let key;\n do {\n response = await channelQueryService.Channels({\n pagination: (0, queryclient_1.createPagination)(key),\n });\n channels.push(...response.channels);\n key = response.pagination?.nextKey;\n } while (key && key.length);\n return query_2.QueryChannelsResponse.fromPartial({\n channels: channels,\n height: response.height,\n });\n },\n connectionChannels: async (connection, paginationKey) => channelQueryService.ConnectionChannels({\n connection: connection,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n }),\n allConnectionChannels: async (connection) => {\n const channels = [];\n let response;\n let key;\n do {\n response = await channelQueryService.ConnectionChannels({\n connection: connection,\n pagination: (0, queryclient_1.createPagination)(key),\n });\n channels.push(...response.channels);\n key = response.pagination?.nextKey;\n } while (key && key.length);\n return query_2.QueryConnectionChannelsResponse.fromPartial({\n channels: channels,\n height: response.height,\n });\n },\n clientState: async (portId, channelId) => channelQueryService.ChannelClientState({\n portId: portId,\n channelId: channelId,\n }),\n consensusState: async (portId, channelId, revisionNumber, revisionHeight) => channelQueryService.ChannelConsensusState({\n portId: portId,\n channelId: channelId,\n revisionNumber: BigInt(revisionNumber),\n revisionHeight: BigInt(revisionHeight),\n }),\n packetCommitment: async (portId, channelId, sequence) => channelQueryService.PacketCommitment({\n portId: portId,\n channelId: channelId,\n sequence: (0, queryclient_1.longify)(sequence),\n }),\n packetCommitments: async (portId, channelId, paginationKey) => channelQueryService.PacketCommitments({\n channelId: channelId,\n portId: portId,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n }),\n allPacketCommitments: async (portId, channelId) => {\n const commitments = [];\n let response;\n let key;\n do {\n response = await channelQueryService.PacketCommitments({\n channelId: channelId,\n portId: portId,\n pagination: (0, queryclient_1.createPagination)(key),\n });\n commitments.push(...response.commitments);\n key = response.pagination?.nextKey;\n } while (key && key.length);\n return query_2.QueryPacketCommitmentsResponse.fromPartial({\n commitments: commitments,\n height: response.height,\n });\n },\n packetReceipt: async (portId, channelId, sequence) => channelQueryService.PacketReceipt({\n portId: portId,\n channelId: channelId,\n sequence: (0, queryclient_1.longify)(sequence),\n }),\n packetAcknowledgement: async (portId, channelId, sequence) => channelQueryService.PacketAcknowledgement({\n portId: portId,\n channelId: channelId,\n sequence: (0, queryclient_1.longify)(sequence),\n }),\n packetAcknowledgements: async (portId, channelId, paginationKey) => {\n const request = query_2.QueryPacketAcknowledgementsRequest.fromPartial({\n portId: portId,\n channelId: channelId,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return channelQueryService.PacketAcknowledgements(request);\n },\n allPacketAcknowledgements: async (portId, channelId) => {\n const acknowledgements = [];\n let response;\n let key;\n do {\n const request = query_2.QueryPacketAcknowledgementsRequest.fromPartial({\n channelId: channelId,\n portId: portId,\n pagination: (0, queryclient_1.createPagination)(key),\n });\n response = await channelQueryService.PacketAcknowledgements(request);\n acknowledgements.push(...response.acknowledgements);\n key = response.pagination?.nextKey;\n } while (key && key.length);\n return query_2.QueryPacketAcknowledgementsResponse.fromPartial({\n acknowledgements: acknowledgements,\n height: response.height,\n });\n },\n unreceivedPackets: async (portId, channelId, packetCommitmentSequences) => channelQueryService.UnreceivedPackets({\n portId: portId,\n channelId: channelId,\n packetCommitmentSequences: packetCommitmentSequences.map((s) => BigInt(s)),\n }),\n unreceivedAcks: async (portId, channelId, packetAckSequences) => channelQueryService.UnreceivedAcks({\n portId: portId,\n channelId: channelId,\n packetAckSequences: packetAckSequences.map((s) => BigInt(s)),\n }),\n nextSequenceReceive: async (portId, channelId) => channelQueryService.NextSequenceReceive({\n portId: portId,\n channelId: channelId,\n }),\n },\n client: {\n state: async (clientId) => clientQueryService.ClientState({ clientId }),\n states: async (paginationKey) => clientQueryService.ClientStates({\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n }),\n allStates: async () => {\n const clientStates = [];\n let response;\n let key;\n do {\n response = await clientQueryService.ClientStates({\n pagination: (0, queryclient_1.createPagination)(key),\n });\n clientStates.push(...response.clientStates);\n key = response.pagination?.nextKey;\n } while (key && key.length);\n return query_3.QueryClientStatesResponse.fromPartial({\n clientStates: clientStates,\n });\n },\n consensusState: async (clientId, consensusHeight) => clientQueryService.ConsensusState(query_3.QueryConsensusStateRequest.fromPartial({\n clientId: clientId,\n revisionHeight: consensusHeight !== undefined ? BigInt(consensusHeight) : undefined,\n latestHeight: consensusHeight === undefined,\n })),\n consensusStates: async (clientId, paginationKey) => clientQueryService.ConsensusStates({\n clientId: clientId,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n }),\n allConsensusStates: async (clientId) => {\n const consensusStates = [];\n let response;\n let key;\n do {\n response = await clientQueryService.ConsensusStates({\n clientId: clientId,\n pagination: (0, queryclient_1.createPagination)(key),\n });\n consensusStates.push(...response.consensusStates);\n key = response.pagination?.nextKey;\n } while (key && key.length);\n return query_3.QueryConsensusStatesResponse.fromPartial({\n consensusStates: consensusStates,\n });\n },\n params: async () => clientQueryService.ClientParams({}),\n stateTm: async (clientId) => {\n const response = await clientQueryService.ClientState({ clientId });\n return decodeTendermintClientStateAny(response.clientState);\n },\n statesTm: async (paginationKey) => {\n const { clientStates } = await clientQueryService.ClientStates({\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return clientStates.map(({ clientState }) => decodeTendermintClientStateAny(clientState));\n },\n allStatesTm: async () => {\n const clientStates = [];\n let response;\n let key;\n do {\n response = await clientQueryService.ClientStates({\n pagination: (0, queryclient_1.createPagination)(key),\n });\n clientStates.push(...response.clientStates);\n key = response.pagination?.nextKey;\n } while (key && key.length);\n return clientStates.map(({ clientState }) => decodeTendermintClientStateAny(clientState));\n },\n consensusStateTm: async (clientId, consensusHeight) => {\n const response = await clientQueryService.ConsensusState(query_3.QueryConsensusStateRequest.fromPartial({\n clientId: clientId,\n revisionHeight: consensusHeight?.revisionHeight,\n revisionNumber: consensusHeight?.revisionNumber,\n latestHeight: consensusHeight === undefined,\n }));\n return decodeTendermintConsensusStateAny(response.consensusState);\n },\n },\n connection: {\n connection: async (connectionId) => connectionQueryService.Connection({\n connectionId: connectionId,\n }),\n connections: async (paginationKey) => connectionQueryService.Connections({\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n }),\n allConnections: async () => {\n const connections = [];\n let response;\n let key;\n do {\n response = await connectionQueryService.Connections({\n pagination: (0, queryclient_1.createPagination)(key),\n });\n connections.push(...response.connections);\n key = response.pagination?.nextKey;\n } while (key && key.length);\n return query_4.QueryConnectionsResponse.fromPartial({\n connections: connections,\n height: response.height,\n });\n },\n clientConnections: async (clientId) => connectionQueryService.ClientConnections({\n clientId: clientId,\n }),\n clientState: async (connectionId) => connectionQueryService.ConnectionClientState({\n connectionId: connectionId,\n }),\n consensusState: async (connectionId, revisionHeight) => connectionQueryService.ConnectionConsensusState(query_4.QueryConnectionConsensusStateRequest.fromPartial({\n connectionId: connectionId,\n revisionHeight: BigInt(revisionHeight),\n })),\n },\n transfer: {\n denomTrace: async (hash) => transferQueryService.DenomTrace({ hash: hash }),\n denomTraces: async (paginationKey) => transferQueryService.DenomTraces({\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n }),\n allDenomTraces: async () => {\n const denomTraces = [];\n let response;\n let key;\n do {\n response = await transferQueryService.DenomTraces({\n pagination: (0, queryclient_1.createPagination)(key),\n });\n denomTraces.push(...response.denomTraces);\n key = response.pagination?.nextKey;\n } while (key && key.length);\n return query_1.QueryDenomTracesResponse.fromPartial({\n denomTraces: denomTraces,\n });\n },\n params: async () => transferQueryService.Params({}),\n },\n },\n };\n}\n//# sourceMappingURL=queries.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAminoMsgCreateValidator = exports.isAminoMsgBeginRedelegate = exports.createStakingAminoConverters = exports.setupSlashingExtension = exports.isAminoMsgUnjail = exports.createSlashingAminoConverters = exports.setupMintExtension = exports.setupIbcExtension = exports.isMsgTransferEncodeObject = exports.ibcTypes = exports.isAminoMsgTransfer = exports.createIbcAminoConverters = exports.groupTypes = exports.createGroupAminoConverters = exports.setupGovExtension = exports.isMsgVoteWeightedEncodeObject = exports.isMsgVoteEncodeObject = exports.isMsgSubmitProposalEncodeObject = exports.isMsgDepositEncodeObject = exports.govTypes = exports.isAminoMsgVoteWeighted = exports.isAminoMsgVote = exports.isAminoMsgSubmitProposal = exports.isAminoMsgDeposit = exports.createGovAminoConverters = exports.setupFeegrantExtension = exports.feegrantTypes = exports.createFeegrantAminoConverters = exports.isAminoMsgSubmitEvidence = exports.createEvidenceAminoConverters = exports.setupDistributionExtension = exports.isMsgWithdrawDelegatorRewardEncodeObject = exports.distributionTypes = exports.isAminoMsgWithdrawValidatorCommission = exports.isAminoMsgWithdrawDelegatorReward = exports.isAminoMsgSetWithdrawAddress = exports.isAminoMsgFundCommunityPool = exports.createDistributionAminoConverters = exports.isAminoMsgVerifyInvariant = exports.createCrysisAminoConverters = exports.setupBankExtension = exports.isMsgSendEncodeObject = exports.bankTypes = exports.isAminoMsgSend = exports.isAminoMsgMultiSend = exports.createBankAminoConverters = exports.setupAuthzExtension = exports.authzTypes = exports.createAuthzAminoConverters = exports.setupAuthExtension = void 0;\nexports.vestingTypes = exports.isAminoMsgCreateVestingAccount = exports.createVestingAminoConverters = exports.setupTxExtension = exports.setupStakingExtension = exports.stakingTypes = exports.isMsgUndelegateEncodeObject = exports.isMsgEditValidatorEncodeObject = exports.isMsgDelegateEncodeObject = exports.isMsgCreateValidatorEncodeObject = exports.isMsgCancelUnbondingDelegationEncodeObject = exports.isMsgBeginRedelegateEncodeObject = exports.isAminoMsgUndelegate = exports.isAminoMsgEditValidator = exports.isAminoMsgDelegate = void 0;\nvar queries_1 = require(\"./auth/queries\");\nObject.defineProperty(exports, \"setupAuthExtension\", { enumerable: true, get: function () { return queries_1.setupAuthExtension; } });\nvar aminomessages_1 = require(\"./authz/aminomessages\");\nObject.defineProperty(exports, \"createAuthzAminoConverters\", { enumerable: true, get: function () { return aminomessages_1.createAuthzAminoConverters; } });\nvar messages_1 = require(\"./authz/messages\");\nObject.defineProperty(exports, \"authzTypes\", { enumerable: true, get: function () { return messages_1.authzTypes; } });\nvar queries_2 = require(\"./authz/queries\");\nObject.defineProperty(exports, \"setupAuthzExtension\", { enumerable: true, get: function () { return queries_2.setupAuthzExtension; } });\nvar aminomessages_2 = require(\"./bank/aminomessages\");\nObject.defineProperty(exports, \"createBankAminoConverters\", { enumerable: true, get: function () { return aminomessages_2.createBankAminoConverters; } });\nObject.defineProperty(exports, \"isAminoMsgMultiSend\", { enumerable: true, get: function () { return aminomessages_2.isAminoMsgMultiSend; } });\nObject.defineProperty(exports, \"isAminoMsgSend\", { enumerable: true, get: function () { return aminomessages_2.isAminoMsgSend; } });\nvar messages_2 = require(\"./bank/messages\");\nObject.defineProperty(exports, \"bankTypes\", { enumerable: true, get: function () { return messages_2.bankTypes; } });\nObject.defineProperty(exports, \"isMsgSendEncodeObject\", { enumerable: true, get: function () { return messages_2.isMsgSendEncodeObject; } });\nvar queries_3 = require(\"./bank/queries\");\nObject.defineProperty(exports, \"setupBankExtension\", { enumerable: true, get: function () { return queries_3.setupBankExtension; } });\nvar aminomessages_3 = require(\"./crisis/aminomessages\");\nObject.defineProperty(exports, \"createCrysisAminoConverters\", { enumerable: true, get: function () { return aminomessages_3.createCrysisAminoConverters; } });\nObject.defineProperty(exports, \"isAminoMsgVerifyInvariant\", { enumerable: true, get: function () { return aminomessages_3.isAminoMsgVerifyInvariant; } });\nvar aminomessages_4 = require(\"./distribution/aminomessages\");\nObject.defineProperty(exports, \"createDistributionAminoConverters\", { enumerable: true, get: function () { return aminomessages_4.createDistributionAminoConverters; } });\nObject.defineProperty(exports, \"isAminoMsgFundCommunityPool\", { enumerable: true, get: function () { return aminomessages_4.isAminoMsgFundCommunityPool; } });\nObject.defineProperty(exports, \"isAminoMsgSetWithdrawAddress\", { enumerable: true, get: function () { return aminomessages_4.isAminoMsgSetWithdrawAddress; } });\nObject.defineProperty(exports, \"isAminoMsgWithdrawDelegatorReward\", { enumerable: true, get: function () { return aminomessages_4.isAminoMsgWithdrawDelegatorReward; } });\nObject.defineProperty(exports, \"isAminoMsgWithdrawValidatorCommission\", { enumerable: true, get: function () { return aminomessages_4.isAminoMsgWithdrawValidatorCommission; } });\nvar messages_3 = require(\"./distribution/messages\");\nObject.defineProperty(exports, \"distributionTypes\", { enumerable: true, get: function () { return messages_3.distributionTypes; } });\nObject.defineProperty(exports, \"isMsgWithdrawDelegatorRewardEncodeObject\", { enumerable: true, get: function () { return messages_3.isMsgWithdrawDelegatorRewardEncodeObject; } });\nvar queries_4 = require(\"./distribution/queries\");\nObject.defineProperty(exports, \"setupDistributionExtension\", { enumerable: true, get: function () { return queries_4.setupDistributionExtension; } });\nvar aminomessages_5 = require(\"./evidence/aminomessages\");\nObject.defineProperty(exports, \"createEvidenceAminoConverters\", { enumerable: true, get: function () { return aminomessages_5.createEvidenceAminoConverters; } });\nObject.defineProperty(exports, \"isAminoMsgSubmitEvidence\", { enumerable: true, get: function () { return aminomessages_5.isAminoMsgSubmitEvidence; } });\nvar aminomessages_6 = require(\"./feegrant/aminomessages\");\nObject.defineProperty(exports, \"createFeegrantAminoConverters\", { enumerable: true, get: function () { return aminomessages_6.createFeegrantAminoConverters; } });\nvar messages_4 = require(\"./feegrant/messages\");\nObject.defineProperty(exports, \"feegrantTypes\", { enumerable: true, get: function () { return messages_4.feegrantTypes; } });\nvar queries_5 = require(\"./feegrant/queries\");\nObject.defineProperty(exports, \"setupFeegrantExtension\", { enumerable: true, get: function () { return queries_5.setupFeegrantExtension; } });\nvar aminomessages_7 = require(\"./gov/aminomessages\");\nObject.defineProperty(exports, \"createGovAminoConverters\", { enumerable: true, get: function () { return aminomessages_7.createGovAminoConverters; } });\nObject.defineProperty(exports, \"isAminoMsgDeposit\", { enumerable: true, get: function () { return aminomessages_7.isAminoMsgDeposit; } });\nObject.defineProperty(exports, \"isAminoMsgSubmitProposal\", { enumerable: true, get: function () { return aminomessages_7.isAminoMsgSubmitProposal; } });\nObject.defineProperty(exports, \"isAminoMsgVote\", { enumerable: true, get: function () { return aminomessages_7.isAminoMsgVote; } });\nObject.defineProperty(exports, \"isAminoMsgVoteWeighted\", { enumerable: true, get: function () { return aminomessages_7.isAminoMsgVoteWeighted; } });\nvar messages_5 = require(\"./gov/messages\");\nObject.defineProperty(exports, \"govTypes\", { enumerable: true, get: function () { return messages_5.govTypes; } });\nObject.defineProperty(exports, \"isMsgDepositEncodeObject\", { enumerable: true, get: function () { return messages_5.isMsgDepositEncodeObject; } });\nObject.defineProperty(exports, \"isMsgSubmitProposalEncodeObject\", { enumerable: true, get: function () { return messages_5.isMsgSubmitProposalEncodeObject; } });\nObject.defineProperty(exports, \"isMsgVoteEncodeObject\", { enumerable: true, get: function () { return messages_5.isMsgVoteEncodeObject; } });\nObject.defineProperty(exports, \"isMsgVoteWeightedEncodeObject\", { enumerable: true, get: function () { return messages_5.isMsgVoteWeightedEncodeObject; } });\nvar queries_6 = require(\"./gov/queries\");\nObject.defineProperty(exports, \"setupGovExtension\", { enumerable: true, get: function () { return queries_6.setupGovExtension; } });\nvar aminomessages_8 = require(\"./group/aminomessages\");\nObject.defineProperty(exports, \"createGroupAminoConverters\", { enumerable: true, get: function () { return aminomessages_8.createGroupAminoConverters; } });\nvar messages_6 = require(\"./group/messages\");\nObject.defineProperty(exports, \"groupTypes\", { enumerable: true, get: function () { return messages_6.groupTypes; } });\nvar aminomessages_9 = require(\"./ibc/aminomessages\");\nObject.defineProperty(exports, \"createIbcAminoConverters\", { enumerable: true, get: function () { return aminomessages_9.createIbcAminoConverters; } });\nObject.defineProperty(exports, \"isAminoMsgTransfer\", { enumerable: true, get: function () { return aminomessages_9.isAminoMsgTransfer; } });\nvar messages_7 = require(\"./ibc/messages\");\nObject.defineProperty(exports, \"ibcTypes\", { enumerable: true, get: function () { return messages_7.ibcTypes; } });\nObject.defineProperty(exports, \"isMsgTransferEncodeObject\", { enumerable: true, get: function () { return messages_7.isMsgTransferEncodeObject; } });\nvar queries_7 = require(\"./ibc/queries\");\nObject.defineProperty(exports, \"setupIbcExtension\", { enumerable: true, get: function () { return queries_7.setupIbcExtension; } });\nvar queries_8 = require(\"./mint/queries\");\nObject.defineProperty(exports, \"setupMintExtension\", { enumerable: true, get: function () { return queries_8.setupMintExtension; } });\nvar aminomessages_10 = require(\"./slashing/aminomessages\");\nObject.defineProperty(exports, \"createSlashingAminoConverters\", { enumerable: true, get: function () { return aminomessages_10.createSlashingAminoConverters; } });\nObject.defineProperty(exports, \"isAminoMsgUnjail\", { enumerable: true, get: function () { return aminomessages_10.isAminoMsgUnjail; } });\nvar queries_9 = require(\"./slashing/queries\");\nObject.defineProperty(exports, \"setupSlashingExtension\", { enumerable: true, get: function () { return queries_9.setupSlashingExtension; } });\nvar aminomessages_11 = require(\"./staking/aminomessages\");\nObject.defineProperty(exports, \"createStakingAminoConverters\", { enumerable: true, get: function () { return aminomessages_11.createStakingAminoConverters; } });\nObject.defineProperty(exports, \"isAminoMsgBeginRedelegate\", { enumerable: true, get: function () { return aminomessages_11.isAminoMsgBeginRedelegate; } });\nObject.defineProperty(exports, \"isAminoMsgCreateValidator\", { enumerable: true, get: function () { return aminomessages_11.isAminoMsgCreateValidator; } });\nObject.defineProperty(exports, \"isAminoMsgDelegate\", { enumerable: true, get: function () { return aminomessages_11.isAminoMsgDelegate; } });\nObject.defineProperty(exports, \"isAminoMsgEditValidator\", { enumerable: true, get: function () { return aminomessages_11.isAminoMsgEditValidator; } });\nObject.defineProperty(exports, \"isAminoMsgUndelegate\", { enumerable: true, get: function () { return aminomessages_11.isAminoMsgUndelegate; } });\nvar messages_8 = require(\"./staking/messages\");\nObject.defineProperty(exports, \"isMsgBeginRedelegateEncodeObject\", { enumerable: true, get: function () { return messages_8.isMsgBeginRedelegateEncodeObject; } });\nObject.defineProperty(exports, \"isMsgCancelUnbondingDelegationEncodeObject\", { enumerable: true, get: function () { return messages_8.isMsgCancelUnbondingDelegationEncodeObject; } });\nObject.defineProperty(exports, \"isMsgCreateValidatorEncodeObject\", { enumerable: true, get: function () { return messages_8.isMsgCreateValidatorEncodeObject; } });\nObject.defineProperty(exports, \"isMsgDelegateEncodeObject\", { enumerable: true, get: function () { return messages_8.isMsgDelegateEncodeObject; } });\nObject.defineProperty(exports, \"isMsgEditValidatorEncodeObject\", { enumerable: true, get: function () { return messages_8.isMsgEditValidatorEncodeObject; } });\nObject.defineProperty(exports, \"isMsgUndelegateEncodeObject\", { enumerable: true, get: function () { return messages_8.isMsgUndelegateEncodeObject; } });\nObject.defineProperty(exports, \"stakingTypes\", { enumerable: true, get: function () { return messages_8.stakingTypes; } });\nvar queries_10 = require(\"./staking/queries\");\nObject.defineProperty(exports, \"setupStakingExtension\", { enumerable: true, get: function () { return queries_10.setupStakingExtension; } });\nvar queries_11 = require(\"./tx/queries\");\nObject.defineProperty(exports, \"setupTxExtension\", { enumerable: true, get: function () { return queries_11.setupTxExtension; } });\nvar aminomessages_12 = require(\"./vesting/aminomessages\");\nObject.defineProperty(exports, \"createVestingAminoConverters\", { enumerable: true, get: function () { return aminomessages_12.createVestingAminoConverters; } });\nObject.defineProperty(exports, \"isAminoMsgCreateVestingAccount\", { enumerable: true, get: function () { return aminomessages_12.isAminoMsgCreateVestingAccount; } });\nvar messages_9 = require(\"./vesting/messages\");\nObject.defineProperty(exports, \"vestingTypes\", { enumerable: true, get: function () { return messages_9.vestingTypes; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupMintExtension = setupMintExtension;\nconst utils_1 = require(\"@cosmjs/utils\");\nconst query_1 = require(\"cosmjs-types/cosmos/mint/v1beta1/query\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction setupMintExtension(base) {\n const rpc = (0, queryclient_1.createProtobufRpcClient)(base);\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n mint: {\n params: async () => {\n const { params } = await queryService.Params({});\n (0, utils_1.assert)(params);\n return {\n blocksPerYear: params.blocksPerYear,\n goalBonded: (0, queryclient_1.decodeCosmosSdkDecFromProto)(params.goalBonded),\n inflationMin: (0, queryclient_1.decodeCosmosSdkDecFromProto)(params.inflationMin),\n inflationMax: (0, queryclient_1.decodeCosmosSdkDecFromProto)(params.inflationMax),\n inflationRateChange: (0, queryclient_1.decodeCosmosSdkDecFromProto)(params.inflationRateChange),\n mintDenom: params.mintDenom,\n };\n },\n inflation: async () => {\n const { inflation } = await queryService.Inflation({});\n return (0, queryclient_1.decodeCosmosSdkDecFromProto)(inflation);\n },\n annualProvisions: async () => {\n const { annualProvisions } = await queryService.AnnualProvisions({});\n return (0, queryclient_1.decodeCosmosSdkDecFromProto)(annualProvisions);\n },\n },\n };\n}\n//# sourceMappingURL=queries.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAminoMsgUnjail = isAminoMsgUnjail;\nexports.createSlashingAminoConverters = createSlashingAminoConverters;\nfunction isAminoMsgUnjail(msg) {\n return msg.type === \"cosmos-sdk/MsgUnjail\";\n}\nfunction createSlashingAminoConverters() {\n throw new Error(\"Not implemented\");\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupSlashingExtension = setupSlashingExtension;\nconst query_1 = require(\"cosmjs-types/cosmos/slashing/v1beta1/query\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction setupSlashingExtension(base) {\n const rpc = (0, queryclient_1.createProtobufRpcClient)(base);\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n slashing: {\n signingInfo: async (consAddress) => {\n const response = await queryService.SigningInfo({\n consAddress: consAddress,\n });\n return response;\n },\n signingInfos: async (paginationKey) => {\n const response = await queryService.SigningInfos({\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n params: async () => {\n const response = await queryService.Params({});\n return response;\n },\n },\n };\n}\n//# sourceMappingURL=queries.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.protoDecimalToJson = protoDecimalToJson;\nexports.isAminoMsgCreateValidator = isAminoMsgCreateValidator;\nexports.isAminoMsgEditValidator = isAminoMsgEditValidator;\nexports.isAminoMsgDelegate = isAminoMsgDelegate;\nexports.isAminoMsgBeginRedelegate = isAminoMsgBeginRedelegate;\nexports.isAminoMsgUndelegate = isAminoMsgUndelegate;\nexports.isAminoMsgCancelUnbondingDelegation = isAminoMsgCancelUnbondingDelegation;\nexports.createStakingAminoConverters = createStakingAminoConverters;\nconst math_1 = require(\"@cosmjs/math\");\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\nconst utils_1 = require(\"@cosmjs/utils\");\nfunction protoDecimalToJson(decimal) {\n const parsed = math_1.Decimal.fromAtomics(decimal, 18);\n const [whole, fractional] = parsed.toString().split(\".\");\n return `${whole}.${(fractional ?? \"\").padEnd(18, \"0\")}`;\n}\nfunction jsonDecimalToProto(decimal) {\n const parsed = math_1.Decimal.fromUserInput(decimal, 18);\n return parsed.atomics;\n}\nfunction isAminoMsgCreateValidator(msg) {\n return msg.type === \"cosmos-sdk/MsgCreateValidator\";\n}\nfunction isAminoMsgEditValidator(msg) {\n return msg.type === \"cosmos-sdk/MsgEditValidator\";\n}\nfunction isAminoMsgDelegate(msg) {\n return msg.type === \"cosmos-sdk/MsgDelegate\";\n}\nfunction isAminoMsgBeginRedelegate(msg) {\n return msg.type === \"cosmos-sdk/MsgBeginRedelegate\";\n}\nfunction isAminoMsgUndelegate(msg) {\n return msg.type === \"cosmos-sdk/MsgUndelegate\";\n}\nfunction isAminoMsgCancelUnbondingDelegation(msg) {\n return msg.type === \"cosmos-sdk/MsgCancelUnbondingDelegation\";\n}\nfunction createStakingAminoConverters() {\n return {\n \"/cosmos.staking.v1beta1.MsgBeginRedelegate\": {\n aminoType: \"cosmos-sdk/MsgBeginRedelegate\",\n toAmino: ({ delegatorAddress, validatorSrcAddress, validatorDstAddress, amount, }) => {\n (0, utils_1.assertDefinedAndNotNull)(amount, \"missing amount\");\n return {\n delegator_address: delegatorAddress,\n validator_src_address: validatorSrcAddress,\n validator_dst_address: validatorDstAddress,\n amount: amount,\n };\n },\n fromAmino: ({ delegator_address, validator_src_address, validator_dst_address, amount, }) => ({\n delegatorAddress: delegator_address,\n validatorSrcAddress: validator_src_address,\n validatorDstAddress: validator_dst_address,\n amount: amount,\n }),\n },\n \"/cosmos.staking.v1beta1.MsgCreateValidator\": {\n aminoType: \"cosmos-sdk/MsgCreateValidator\",\n toAmino: ({ description, commission, minSelfDelegation, delegatorAddress, validatorAddress, pubkey, value, }) => {\n (0, utils_1.assertDefinedAndNotNull)(description, \"missing description\");\n (0, utils_1.assertDefinedAndNotNull)(commission, \"missing commission\");\n (0, utils_1.assertDefinedAndNotNull)(pubkey, \"missing pubkey\");\n (0, utils_1.assertDefinedAndNotNull)(value, \"missing value\");\n return {\n description: {\n moniker: description.moniker,\n identity: description.identity,\n website: description.website,\n security_contact: description.securityContact,\n details: description.details,\n },\n commission: {\n rate: protoDecimalToJson(commission.rate),\n max_rate: protoDecimalToJson(commission.maxRate),\n max_change_rate: protoDecimalToJson(commission.maxChangeRate),\n },\n min_self_delegation: minSelfDelegation,\n delegator_address: delegatorAddress,\n validator_address: validatorAddress,\n pubkey: (0, proto_signing_1.decodePubkey)(pubkey),\n value: value,\n };\n },\n fromAmino: ({ description, commission, min_self_delegation, delegator_address, validator_address, pubkey, value, }) => {\n return {\n description: {\n moniker: description.moniker,\n identity: description.identity,\n website: description.website,\n securityContact: description.security_contact,\n details: description.details,\n },\n commission: {\n rate: jsonDecimalToProto(commission.rate),\n maxRate: jsonDecimalToProto(commission.max_rate),\n maxChangeRate: jsonDecimalToProto(commission.max_change_rate),\n },\n minSelfDelegation: min_self_delegation,\n delegatorAddress: delegator_address,\n validatorAddress: validator_address,\n pubkey: (0, proto_signing_1.encodePubkey)(pubkey),\n value: value,\n };\n },\n },\n \"/cosmos.staking.v1beta1.MsgDelegate\": {\n aminoType: \"cosmos-sdk/MsgDelegate\",\n toAmino: ({ delegatorAddress, validatorAddress, amount }) => {\n (0, utils_1.assertDefinedAndNotNull)(amount, \"missing amount\");\n return {\n delegator_address: delegatorAddress,\n validator_address: validatorAddress,\n amount: amount,\n };\n },\n fromAmino: ({ delegator_address, validator_address, amount, }) => ({\n delegatorAddress: delegator_address,\n validatorAddress: validator_address,\n amount: amount,\n }),\n },\n \"/cosmos.staking.v1beta1.MsgEditValidator\": {\n aminoType: \"cosmos-sdk/MsgEditValidator\",\n toAmino: ({ description, commissionRate, minSelfDelegation, validatorAddress, }) => {\n (0, utils_1.assertDefinedAndNotNull)(description, \"missing description\");\n return {\n description: {\n moniker: description.moniker,\n identity: description.identity,\n website: description.website,\n security_contact: description.securityContact,\n details: description.details,\n },\n // empty string in the protobuf document means \"do not change\"\n commission_rate: commissionRate ? protoDecimalToJson(commissionRate) : undefined,\n // empty string in the protobuf document means \"do not change\"\n min_self_delegation: minSelfDelegation ? minSelfDelegation : undefined,\n validator_address: validatorAddress,\n };\n },\n fromAmino: ({ description, commission_rate, min_self_delegation, validator_address, }) => ({\n description: {\n moniker: description.moniker,\n identity: description.identity,\n website: description.website,\n securityContact: description.security_contact,\n details: description.details,\n },\n // empty string in the protobuf document means \"do not change\"\n commissionRate: commission_rate ? jsonDecimalToProto(commission_rate) : \"\",\n // empty string in the protobuf document means \"do not change\"\n minSelfDelegation: min_self_delegation ?? \"\",\n validatorAddress: validator_address,\n }),\n },\n \"/cosmos.staking.v1beta1.MsgUndelegate\": {\n aminoType: \"cosmos-sdk/MsgUndelegate\",\n toAmino: ({ delegatorAddress, validatorAddress, amount, }) => {\n (0, utils_1.assertDefinedAndNotNull)(amount, \"missing amount\");\n return {\n delegator_address: delegatorAddress,\n validator_address: validatorAddress,\n amount: amount,\n };\n },\n fromAmino: ({ delegator_address, validator_address, amount, }) => ({\n delegatorAddress: delegator_address,\n validatorAddress: validator_address,\n amount: amount,\n }),\n },\n \"/cosmos.staking.v1beta1.MsgCancelUnbondingDelegation\": {\n aminoType: \"cosmos-sdk/MsgCancelUnbondingDelegation\",\n toAmino: ({ delegatorAddress, validatorAddress, amount, creationHeight, }) => {\n (0, utils_1.assertDefinedAndNotNull)(amount, \"missing amount\");\n return {\n delegator_address: delegatorAddress,\n validator_address: validatorAddress,\n amount: amount,\n creation_height: creationHeight.toString(),\n };\n },\n fromAmino: ({ delegator_address, validator_address, amount, creation_height, }) => ({\n delegatorAddress: delegator_address,\n validatorAddress: validator_address,\n amount: amount,\n creationHeight: BigInt(creation_height),\n }),\n },\n };\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stakingTypes = void 0;\nexports.isMsgBeginRedelegateEncodeObject = isMsgBeginRedelegateEncodeObject;\nexports.isMsgCreateValidatorEncodeObject = isMsgCreateValidatorEncodeObject;\nexports.isMsgDelegateEncodeObject = isMsgDelegateEncodeObject;\nexports.isMsgEditValidatorEncodeObject = isMsgEditValidatorEncodeObject;\nexports.isMsgUndelegateEncodeObject = isMsgUndelegateEncodeObject;\nexports.isMsgCancelUnbondingDelegationEncodeObject = isMsgCancelUnbondingDelegationEncodeObject;\nconst tx_1 = require(\"cosmjs-types/cosmos/staking/v1beta1/tx\");\nexports.stakingTypes = [\n [\"/cosmos.staking.v1beta1.MsgBeginRedelegate\", tx_1.MsgBeginRedelegate],\n [\"/cosmos.staking.v1beta1.MsgCreateValidator\", tx_1.MsgCreateValidator],\n [\"/cosmos.staking.v1beta1.MsgDelegate\", tx_1.MsgDelegate],\n [\"/cosmos.staking.v1beta1.MsgEditValidator\", tx_1.MsgEditValidator],\n [\"/cosmos.staking.v1beta1.MsgUndelegate\", tx_1.MsgUndelegate],\n [\"/cosmos.staking.v1beta1.MsgCancelUnbondingDelegation\", tx_1.MsgCancelUnbondingDelegation],\n];\nfunction isMsgBeginRedelegateEncodeObject(o) {\n return o.typeUrl === \"/cosmos.staking.v1beta1.MsgBeginRedelegate\";\n}\nfunction isMsgCreateValidatorEncodeObject(o) {\n return o.typeUrl === \"/cosmos.staking.v1beta1.MsgCreateValidator\";\n}\nfunction isMsgDelegateEncodeObject(object) {\n return object.typeUrl === \"/cosmos.staking.v1beta1.MsgDelegate\";\n}\nfunction isMsgEditValidatorEncodeObject(o) {\n return o.typeUrl === \"/cosmos.staking.v1beta1.MsgEditValidator\";\n}\nfunction isMsgUndelegateEncodeObject(object) {\n return object.typeUrl === \"/cosmos.staking.v1beta1.MsgUndelegate\";\n}\nfunction isMsgCancelUnbondingDelegationEncodeObject(object) {\n return (object.typeUrl ===\n \"/cosmos.staking.v1beta1.MsgCancelUnbondingDelegation\");\n}\n//# sourceMappingURL=messages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupStakingExtension = setupStakingExtension;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst query_1 = require(\"cosmjs-types/cosmos/staking/v1beta1/query\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction setupStakingExtension(base) {\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const rpc = (0, queryclient_1.createProtobufRpcClient)(base);\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n staking: {\n delegation: async (delegatorAddress, validatorAddress) => {\n const response = await queryService.Delegation({\n delegatorAddr: delegatorAddress,\n validatorAddr: validatorAddress,\n });\n return response;\n },\n delegatorDelegations: async (delegatorAddress, paginationKey) => {\n const response = await queryService.DelegatorDelegations({\n delegatorAddr: delegatorAddress,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n delegatorUnbondingDelegations: async (delegatorAddress, paginationKey) => {\n const response = await queryService.DelegatorUnbondingDelegations({\n delegatorAddr: delegatorAddress,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n delegatorValidator: async (delegatorAddress, validatorAddress) => {\n const response = await queryService.DelegatorValidator({\n delegatorAddr: delegatorAddress,\n validatorAddr: validatorAddress,\n });\n return response;\n },\n delegatorValidators: async (delegatorAddress, paginationKey) => {\n const response = await queryService.DelegatorValidators({\n delegatorAddr: delegatorAddress,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n historicalInfo: async (height) => {\n const response = await queryService.HistoricalInfo({\n height: BigInt(height),\n });\n return response;\n },\n params: async () => {\n const response = await queryService.Params({});\n return response;\n },\n pool: async () => {\n const response = await queryService.Pool({});\n return response;\n },\n redelegations: async (delegatorAddress, sourceValidatorAddress, destinationValidatorAddress, paginationKey) => {\n const response = await queryService.Redelegations({\n delegatorAddr: delegatorAddress,\n srcValidatorAddr: sourceValidatorAddress,\n dstValidatorAddr: destinationValidatorAddress,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n unbondingDelegation: async (delegatorAddress, validatorAddress) => {\n const response = await queryService.UnbondingDelegation({\n delegatorAddr: delegatorAddress,\n validatorAddr: validatorAddress,\n });\n return response;\n },\n validator: async (validatorAddress) => {\n const response = await queryService.Validator({ validatorAddr: validatorAddress });\n return response;\n },\n validatorDelegations: async (validatorAddress, paginationKey) => {\n const response = await queryService.ValidatorDelegations({\n validatorAddr: validatorAddress,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n validators: async (status, paginationKey) => {\n const response = await queryService.Validators({\n status: status,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n validatorUnbondingDelegations: async (validatorAddress, paginationKey) => {\n const response = await queryService.ValidatorUnbondingDelegations({\n validatorAddr: validatorAddress,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n },\n };\n}\n//# sourceMappingURL=queries.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupTxExtension = setupTxExtension;\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\nconst signing_1 = require(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing\");\nconst service_1 = require(\"cosmjs-types/cosmos/tx/v1beta1/service\");\nconst tx_1 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction setupTxExtension(base) {\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const rpc = (0, queryclient_1.createProtobufRpcClient)(base);\n const queryService = new service_1.ServiceClientImpl(rpc);\n return {\n tx: {\n getTx: async (txId) => {\n const request = {\n hash: txId,\n };\n const response = await queryService.GetTx(request);\n return response;\n },\n simulate: async (messages, memo, signer, sequence) => {\n const tx = tx_1.Tx.fromPartial({\n authInfo: tx_1.AuthInfo.fromPartial({\n fee: tx_1.Fee.fromPartial({}),\n signerInfos: [\n {\n publicKey: (0, proto_signing_1.encodePubkey)(signer),\n sequence: BigInt(sequence),\n modeInfo: { single: { mode: signing_1.SignMode.SIGN_MODE_UNSPECIFIED } },\n },\n ],\n }),\n body: tx_1.TxBody.fromPartial({\n messages: Array.from(messages),\n memo: memo,\n }),\n signatures: [new Uint8Array()],\n });\n const request = service_1.SimulateRequest.fromPartial({\n txBytes: tx_1.Tx.encode(tx).finish(),\n });\n const response = await queryService.Simulate(request);\n return response;\n },\n },\n };\n}\n//# sourceMappingURL=queries.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAminoMsgCreateVestingAccount = isAminoMsgCreateVestingAccount;\nexports.createVestingAminoConverters = createVestingAminoConverters;\nfunction isAminoMsgCreateVestingAccount(msg) {\n return msg.type === \"cosmos-sdk/MsgCreateVestingAccount\";\n}\nfunction createVestingAminoConverters() {\n return {\n \"/cosmos.vesting.v1beta1.MsgCreateVestingAccount\": {\n aminoType: \"cosmos-sdk/MsgCreateVestingAccount\",\n toAmino: ({ fromAddress, toAddress, amount, endTime, delayed, }) => ({\n from_address: fromAddress,\n to_address: toAddress,\n amount: [...amount],\n end_time: endTime.toString(),\n delayed: delayed,\n }),\n fromAmino: ({ from_address, to_address, amount, end_time, delayed, }) => ({\n fromAddress: from_address,\n toAddress: to_address,\n amount: [...amount],\n endTime: BigInt(end_time),\n delayed: delayed,\n }),\n },\n };\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.vestingTypes = void 0;\nconst tx_1 = require(\"cosmjs-types/cosmos/vesting/v1beta1/tx\");\nexports.vestingTypes = [\n [\"/cosmos.vesting.v1beta1.MsgCreateVestingAccount\", tx_1.MsgCreateVestingAccount],\n];\n//# sourceMappingURL=messages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeCompactBitArray = makeCompactBitArray;\nexports.makeMultisignedTx = makeMultisignedTx;\nexports.makeMultisignedTxBytes = makeMultisignedTxBytes;\nconst amino_1 = require(\"@cosmjs/amino\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\nconst multisig_1 = require(\"cosmjs-types/cosmos/crypto/multisig/v1beta1/multisig\");\nconst signing_1 = require(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing\");\nconst tx_1 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nconst tx_2 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nfunction makeCompactBitArray(bits) {\n const byteCount = Math.ceil(bits.length / 8);\n const extraBits = bits.length - Math.floor(bits.length / 8) * 8;\n const bytes = new Uint8Array(byteCount); // zero-filled\n bits.forEach((value, index) => {\n const bytePos = Math.floor(index / 8);\n const bitPos = index % 8;\n // eslint-disable-next-line no-bitwise\n if (value)\n bytes[bytePos] |= 0b1 << (8 - 1 - bitPos);\n });\n return multisig_1.CompactBitArray.fromPartial({ elems: bytes, extraBitsStored: extraBits });\n}\n/**\n * Creates a signed transaction from signer info, transaction body and signatures.\n * The result can be broadcasted after serialization.\n *\n * Consider using `makeMultisignedTxBytes` instead if you want to broadcast the\n * transaction immediately.\n */\nfunction makeMultisignedTx(multisigPubkey, sequence, fee, bodyBytes, signatures) {\n const addresses = Array.from(signatures.keys());\n const prefix = (0, encoding_1.fromBech32)(addresses[0]).prefix;\n const signers = Array(multisigPubkey.value.pubkeys.length).fill(false);\n const signaturesList = new Array();\n for (let i = 0; i < multisigPubkey.value.pubkeys.length; i++) {\n const signerAddress = (0, amino_1.pubkeyToAddress)(multisigPubkey.value.pubkeys[i], prefix);\n const signature = signatures.get(signerAddress);\n if (signature) {\n signers[i] = true;\n signaturesList.push(signature);\n }\n }\n const signerInfo = {\n publicKey: (0, proto_signing_1.encodePubkey)(multisigPubkey),\n modeInfo: {\n multi: {\n bitarray: makeCompactBitArray(signers),\n modeInfos: signaturesList.map((_) => ({ single: { mode: signing_1.SignMode.SIGN_MODE_LEGACY_AMINO_JSON } })),\n },\n },\n sequence: BigInt(sequence),\n };\n const authInfo = tx_1.AuthInfo.fromPartial({\n signerInfos: [signerInfo],\n fee: {\n amount: [...fee.amount],\n gasLimit: BigInt(fee.gas),\n },\n });\n const authInfoBytes = tx_1.AuthInfo.encode(authInfo).finish();\n const signedTx = tx_2.TxRaw.fromPartial({\n bodyBytes: bodyBytes,\n authInfoBytes: authInfoBytes,\n signatures: [multisig_1.MultiSignature.encode(multisig_1.MultiSignature.fromPartial({ signatures: signaturesList })).finish()],\n });\n return signedTx;\n}\n/**\n * Creates a signed transaction from signer info, transaction body and signatures.\n * The result can be broadcasted.\n *\n * This is a wrapper around `makeMultisignedTx` that encodes the transaction for broadcasting.\n */\nfunction makeMultisignedTxBytes(multisigPubkey, sequence, fee, bodyBytes, signatures) {\n const signedTx = makeMultisignedTx(multisigPubkey, sequence, fee, bodyBytes, signatures);\n return Uint8Array.from(tx_2.TxRaw.encode(signedTx).finish());\n}\n//# sourceMappingURL=multisignature.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.longify = exports.decodeCosmosSdkDecFromProto = exports.createProtobufRpcClient = exports.createPagination = exports.QueryClient = void 0;\nvar queryclient_1 = require(\"./queryclient\");\nObject.defineProperty(exports, \"QueryClient\", { enumerable: true, get: function () { return queryclient_1.QueryClient; } });\nvar utils_1 = require(\"./utils\");\nObject.defineProperty(exports, \"createPagination\", { enumerable: true, get: function () { return utils_1.createPagination; } });\nObject.defineProperty(exports, \"createProtobufRpcClient\", { enumerable: true, get: function () { return utils_1.createProtobufRpcClient; } });\nObject.defineProperty(exports, \"decodeCosmosSdkDecFromProto\", { enumerable: true, get: function () { return utils_1.decodeCosmosSdkDecFromProto; } });\nObject.defineProperty(exports, \"longify\", { enumerable: true, get: function () { return utils_1.longify; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClient = void 0;\nconst utils_1 = require(\"@cosmjs/utils\");\nclass QueryClient {\n static withExtensions(cometClient, ...extensionSetups) {\n const client = new QueryClient(cometClient);\n const extensions = extensionSetups.map((setupExtension) => setupExtension(client));\n for (const extension of extensions) {\n (0, utils_1.assert)((0, utils_1.isNonNullObject)(extension), `Extension must be a non-null object`);\n for (const [moduleKey, moduleValue] of Object.entries(extension)) {\n (0, utils_1.assert)((0, utils_1.isNonNullObject)(moduleValue), `Module must be a non-null object. Found type ${typeof moduleValue} for module \"${moduleKey}\".`);\n const current = client[moduleKey] || {};\n client[moduleKey] = {\n ...current,\n ...moduleValue,\n };\n }\n }\n return client;\n }\n constructor(cometClient) {\n this.cometClient = cometClient;\n }\n /**\n * Performs an ABCI query to Tendermint without requesting a proof.\n *\n * If the `desiredHeight` is set, a particular height is requested. Otherwise\n * the latest height is requested. The response contains the actual height of\n * the query.\n */\n async queryAbci(path, request, desiredHeight) {\n const response = await this.cometClient.abciQuery({\n path: path,\n data: request,\n prove: false,\n height: desiredHeight,\n });\n if (response.code) {\n throw new Error(`Query failed with (${response.code}): ${response.log}`);\n }\n if (!response.height) {\n throw new Error(\"No query height returned\");\n }\n return {\n value: response.value,\n height: response.height,\n };\n }\n}\nexports.QueryClient = QueryClient;\n//# sourceMappingURL=queryclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toAccAddress = toAccAddress;\nexports.createPagination = createPagination;\nexports.createProtobufRpcClient = createProtobufRpcClient;\nexports.longify = longify;\nexports.decodeCosmosSdkDecFromProto = decodeCosmosSdkDecFromProto;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst pagination_1 = require(\"cosmjs-types/cosmos/base/query/v1beta1/pagination\");\n/**\n * Takes a bech32 encoded address and returns the data part. The prefix is ignored and discarded.\n * This is called AccAddress in Cosmos SDK, which is basically an alias for raw binary data.\n * The result is typically 20 bytes long but not restricted to that.\n */\nfunction toAccAddress(address) {\n return (0, encoding_1.fromBech32)(address).data;\n}\n/**\n * If paginationKey is set, return a `PageRequest` with the given key.\n * If paginationKey is unset, return `undefined`.\n *\n * Use this with a query response's pagination next key to\n * request the next page.\n */\nfunction createPagination(paginationKey) {\n return paginationKey ? pagination_1.PageRequest.fromPartial({ key: paginationKey }) : pagination_1.PageRequest.fromPartial({});\n}\nfunction createProtobufRpcClient(base) {\n return {\n request: async (service, method, data) => {\n const path = `/${service}/${method}`;\n const response = await base.queryAbci(path, data, undefined);\n return response.value;\n },\n };\n}\n/**\n * Takes a uint64 value as string, number, BigInt or Uint64 and returns a BigInt\n * of it.\n */\nfunction longify(value) {\n const checkedValue = math_1.Uint64.fromString(value.toString());\n return BigInt(checkedValue.toString());\n}\n/**\n * Takes a string or binary encoded `github.com/cosmos/cosmos-sdk/types.Dec` from the\n * protobuf API and converts it into a `Decimal` with 18 fractional digits.\n *\n * See https://github.com/cosmos/cosmos-sdk/issues/10863 for more context why this is needed.\n */\nfunction decodeCosmosSdkDecFromProto(input) {\n const asString = typeof input === \"string\" ? input : (0, encoding_1.fromAscii)(input);\n return math_1.Decimal.fromAtomics(asString, 18);\n}\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isSearchTxQueryArray = isSearchTxQueryArray;\nfunction isSearchTxQueryArray(query) {\n return Array.isArray(query);\n}\n//# sourceMappingURL=search.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SigningStargateClient = exports.defaultRegistryTypes = void 0;\nexports.createDefaultAminoConverters = createDefaultAminoConverters;\nconst amino_1 = require(\"@cosmjs/amino\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\nconst tendermint_rpc_1 = require(\"@cosmjs/tendermint-rpc\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst coin_1 = require(\"cosmjs-types/cosmos/base/v1beta1/coin\");\nconst tx_1 = require(\"cosmjs-types/cosmos/distribution/v1beta1/tx\");\nconst tx_2 = require(\"cosmjs-types/cosmos/staking/v1beta1/tx\");\nconst signing_1 = require(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing\");\nconst tx_3 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nconst tx_4 = require(\"cosmjs-types/ibc/applications/transfer/v1/tx\");\nconst aminotypes_1 = require(\"./aminotypes\");\nconst fee_1 = require(\"./fee\");\nconst modules_1 = require(\"./modules\");\nconst modules_2 = require(\"./modules\");\nconst stargateclient_1 = require(\"./stargateclient\");\nexports.defaultRegistryTypes = [\n [\"/cosmos.base.v1beta1.Coin\", coin_1.Coin],\n ...modules_1.authzTypes,\n ...modules_1.bankTypes,\n ...modules_1.distributionTypes,\n ...modules_1.feegrantTypes,\n ...modules_1.govTypes,\n ...modules_1.groupTypes,\n ...modules_1.stakingTypes,\n ...modules_1.ibcTypes,\n ...modules_1.vestingTypes,\n];\nfunction createDefaultAminoConverters() {\n return {\n ...(0, modules_2.createAuthzAminoConverters)(),\n ...(0, modules_2.createBankAminoConverters)(),\n ...(0, modules_2.createDistributionAminoConverters)(),\n ...(0, modules_2.createGovAminoConverters)(),\n ...(0, modules_2.createStakingAminoConverters)(),\n ...(0, modules_2.createIbcAminoConverters)(),\n ...(0, modules_2.createFeegrantAminoConverters)(),\n ...(0, modules_2.createVestingAminoConverters)(),\n };\n}\nclass SigningStargateClient extends stargateclient_1.StargateClient {\n /**\n * Creates an instance by connecting to the given CometBFT RPC endpoint.\n *\n * This uses auto-detection to decide between a CometBFT 0.38, Tendermint 0.37 and 0.34 client.\n * To set the Comet client explicitly, use `createWithSigner`.\n */\n static async connectWithSigner(endpoint, signer, options = {}) {\n const cometClient = await (0, tendermint_rpc_1.connectComet)(endpoint);\n return SigningStargateClient.createWithSigner(cometClient, signer, options);\n }\n /**\n * Creates an instance from a manually created Comet client.\n * Use this to use `Comet38Client` or `Tendermint37Client` instead of `Tendermint34Client`.\n */\n static async createWithSigner(cometClient, signer, options = {}) {\n return new SigningStargateClient(cometClient, signer, options);\n }\n /**\n * Creates a client in offline mode.\n *\n * This should only be used in niche cases where you know exactly what you're doing,\n * e.g. when building an offline signing application.\n *\n * When you try to use online functionality with such a signer, an\n * exception will be raised.\n */\n static async offline(signer, options = {}) {\n return new SigningStargateClient(undefined, signer, options);\n }\n constructor(cometClient, signer, options) {\n super(cometClient, options);\n // Starting with Cosmos SDK 0.47, we see many cases in which 1.3 is not enough anymore\n // E.g. https://github.com/cosmos/cosmos-sdk/issues/16020\n this.defaultGasMultiplier = 1.4;\n const { registry = new proto_signing_1.Registry(exports.defaultRegistryTypes), aminoTypes = new aminotypes_1.AminoTypes(createDefaultAminoConverters()), } = options;\n this.registry = registry;\n this.aminoTypes = aminoTypes;\n this.signer = signer;\n this.broadcastTimeoutMs = options.broadcastTimeoutMs;\n this.broadcastPollIntervalMs = options.broadcastPollIntervalMs;\n this.gasPrice = options.gasPrice;\n }\n async simulate(signerAddress, messages, memo) {\n const anyMsgs = messages.map((m) => this.registry.encodeAsAny(m));\n const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress);\n if (!accountFromSigner) {\n throw new Error(\"Failed to retrieve account from signer\");\n }\n const pubkey = (0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey);\n const { sequence } = await this.getSequence(signerAddress);\n const { gasInfo } = await this.forceGetQueryClient().tx.simulate(anyMsgs, memo, pubkey, sequence);\n (0, utils_1.assertDefined)(gasInfo);\n return math_1.Uint53.fromString(gasInfo.gasUsed.toString()).toNumber();\n }\n async sendTokens(senderAddress, recipientAddress, amount, fee, memo = \"\") {\n const sendMsg = {\n typeUrl: \"/cosmos.bank.v1beta1.MsgSend\",\n value: {\n fromAddress: senderAddress,\n toAddress: recipientAddress,\n amount: [...amount],\n },\n };\n return this.signAndBroadcast(senderAddress, [sendMsg], fee, memo);\n }\n async delegateTokens(delegatorAddress, validatorAddress, amount, fee, memo = \"\") {\n const delegateMsg = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgDelegate\",\n value: tx_2.MsgDelegate.fromPartial({\n delegatorAddress: delegatorAddress,\n validatorAddress: validatorAddress,\n amount: amount,\n }),\n };\n return this.signAndBroadcast(delegatorAddress, [delegateMsg], fee, memo);\n }\n async undelegateTokens(delegatorAddress, validatorAddress, amount, fee, memo = \"\") {\n const undelegateMsg = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgUndelegate\",\n value: tx_2.MsgUndelegate.fromPartial({\n delegatorAddress: delegatorAddress,\n validatorAddress: validatorAddress,\n amount: amount,\n }),\n };\n return this.signAndBroadcast(delegatorAddress, [undelegateMsg], fee, memo);\n }\n async withdrawRewards(delegatorAddress, validatorAddress, fee, memo = \"\") {\n const withdrawMsg = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward\",\n value: tx_1.MsgWithdrawDelegatorReward.fromPartial({\n delegatorAddress: delegatorAddress,\n validatorAddress: validatorAddress,\n }),\n };\n return this.signAndBroadcast(delegatorAddress, [withdrawMsg], fee, memo);\n }\n /**\n * @deprecated This API does not support setting the memo field of `MsgTransfer` (only the transaction memo).\n * We'll remove this method at some point because trying to wrap the various message types is a losing strategy.\n * Please migrate to `signAndBroadcast` with an `MsgTransferEncodeObject` created in the caller code instead.\n * @see https://github.com/cosmos/cosmjs/issues/1493\n */\n async sendIbcTokens(senderAddress, recipientAddress, transferAmount, sourcePort, sourceChannel, timeoutHeight, \n /** timeout in seconds */\n timeoutTimestamp, fee, memo = \"\") {\n const timeoutTimestampNanoseconds = timeoutTimestamp\n ? BigInt(timeoutTimestamp) * BigInt(1000000000)\n : undefined;\n const transferMsg = {\n typeUrl: \"/ibc.applications.transfer.v1.MsgTransfer\",\n value: tx_4.MsgTransfer.fromPartial({\n sourcePort: sourcePort,\n sourceChannel: sourceChannel,\n sender: senderAddress,\n receiver: recipientAddress,\n token: transferAmount,\n timeoutHeight: timeoutHeight,\n timeoutTimestamp: timeoutTimestampNanoseconds,\n }),\n };\n return this.signAndBroadcast(senderAddress, [transferMsg], fee, memo);\n }\n async signAndBroadcast(signerAddress, messages, fee, memo = \"\", timeoutHeight) {\n let usedFee;\n if (fee == \"auto\" || typeof fee === \"number\") {\n (0, utils_1.assertDefined)(this.gasPrice, \"Gas price must be set in the client options when auto gas is used.\");\n const gasEstimation = await this.simulate(signerAddress, messages, memo);\n const multiplier = typeof fee === \"number\" ? fee : this.defaultGasMultiplier;\n usedFee = (0, fee_1.calculateFee)(Math.round(gasEstimation * multiplier), this.gasPrice);\n }\n else {\n usedFee = fee;\n }\n const txRaw = await this.sign(signerAddress, messages, usedFee, memo, undefined, timeoutHeight);\n const txBytes = tx_3.TxRaw.encode(txRaw).finish();\n return this.broadcastTx(txBytes, this.broadcastTimeoutMs, this.broadcastPollIntervalMs);\n }\n /**\n * This method is useful if you want to send a transaction in broadcast,\n * without waiting for it to be placed inside a block, because for example\n * I would like to receive the hash to later track the transaction with another tool.\n * @returns Returns the hash of the transaction\n */\n async signAndBroadcastSync(signerAddress, messages, fee, memo = \"\", timeoutHeight) {\n let usedFee;\n if (fee == \"auto\" || typeof fee === \"number\") {\n (0, utils_1.assertDefined)(this.gasPrice, \"Gas price must be set in the client options when auto gas is used.\");\n const gasEstimation = await this.simulate(signerAddress, messages, memo);\n const multiplier = typeof fee === \"number\" ? fee : this.defaultGasMultiplier;\n usedFee = (0, fee_1.calculateFee)(Math.round(gasEstimation * multiplier), this.gasPrice);\n }\n else {\n usedFee = fee;\n }\n const txRaw = await this.sign(signerAddress, messages, usedFee, memo, undefined, timeoutHeight);\n const txBytes = tx_3.TxRaw.encode(txRaw).finish();\n return this.broadcastTxSync(txBytes);\n }\n /**\n * Gets account number and sequence from the API, creates a sign doc,\n * creates a single signature and assembles the signed transaction.\n *\n * The sign mode (SIGN_MODE_DIRECT or SIGN_MODE_LEGACY_AMINO_JSON) is determined by this client's signer.\n *\n * You can pass signer data (account number, sequence and chain ID) explicitly instead of querying them\n * from the chain. This is needed when signing for a multisig account, but it also allows for offline signing\n * (See the SigningStargateClient.offline constructor).\n */\n async sign(signerAddress, messages, fee, memo, explicitSignerData, timeoutHeight) {\n let signerData;\n if (explicitSignerData) {\n signerData = explicitSignerData;\n }\n else {\n const { accountNumber, sequence } = await this.getSequence(signerAddress);\n const chainId = await this.getChainId();\n signerData = {\n accountNumber: accountNumber,\n sequence: sequence,\n chainId: chainId,\n };\n }\n return (0, proto_signing_1.isOfflineDirectSigner)(this.signer)\n ? this.signDirect(signerAddress, messages, fee, memo, signerData, timeoutHeight)\n : this.signAmino(signerAddress, messages, fee, memo, signerData, timeoutHeight);\n }\n async signAmino(signerAddress, messages, fee, memo, { accountNumber, sequence, chainId }, timeoutHeight) {\n (0, utils_1.assert)(!(0, proto_signing_1.isOfflineDirectSigner)(this.signer));\n const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress);\n if (!accountFromSigner) {\n throw new Error(\"Failed to retrieve account from signer\");\n }\n const pubkey = (0, proto_signing_1.encodePubkey)((0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey));\n const signMode = signing_1.SignMode.SIGN_MODE_LEGACY_AMINO_JSON;\n const msgs = messages.map((msg) => this.aminoTypes.toAmino(msg));\n const signDoc = (0, amino_1.makeSignDoc)(msgs, fee, chainId, memo, accountNumber, sequence, timeoutHeight);\n const { signature, signed } = await this.signer.signAmino(signerAddress, signDoc);\n const signedTxBody = {\n messages: signed.msgs.map((msg) => this.aminoTypes.fromAmino(msg)),\n memo: signed.memo,\n timeoutHeight: timeoutHeight,\n };\n const signedTxBodyEncodeObject = {\n typeUrl: \"/cosmos.tx.v1beta1.TxBody\",\n value: signedTxBody,\n };\n const signedTxBodyBytes = this.registry.encode(signedTxBodyEncodeObject);\n const signedGasLimit = math_1.Int53.fromString(signed.fee.gas).toNumber();\n const signedSequence = math_1.Int53.fromString(signed.sequence).toNumber();\n const signedAuthInfoBytes = (0, proto_signing_1.makeAuthInfoBytes)([{ pubkey, sequence: signedSequence }], signed.fee.amount, signedGasLimit, signed.fee.granter, signed.fee.payer, signMode);\n return tx_3.TxRaw.fromPartial({\n bodyBytes: signedTxBodyBytes,\n authInfoBytes: signedAuthInfoBytes,\n signatures: [(0, encoding_1.fromBase64)(signature.signature)],\n });\n }\n async signDirect(signerAddress, messages, fee, memo, { accountNumber, sequence, chainId }, timeoutHeight) {\n (0, utils_1.assert)((0, proto_signing_1.isOfflineDirectSigner)(this.signer));\n const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress);\n if (!accountFromSigner) {\n throw new Error(\"Failed to retrieve account from signer\");\n }\n const pubkey = (0, proto_signing_1.encodePubkey)((0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey));\n const txBodyEncodeObject = {\n typeUrl: \"/cosmos.tx.v1beta1.TxBody\",\n value: {\n messages: messages,\n memo: memo,\n timeoutHeight: timeoutHeight,\n },\n };\n const txBodyBytes = this.registry.encode(txBodyEncodeObject);\n const gasLimit = math_1.Int53.fromString(fee.gas).toNumber();\n const authInfoBytes = (0, proto_signing_1.makeAuthInfoBytes)([{ pubkey, sequence }], fee.amount, gasLimit, fee.granter, fee.payer);\n const signDoc = (0, proto_signing_1.makeSignDoc)(txBodyBytes, authInfoBytes, chainId, accountNumber);\n const { signature, signed } = await this.signer.signDirect(signerAddress, signDoc);\n return tx_3.TxRaw.fromPartial({\n bodyBytes: signed.bodyBytes,\n authInfoBytes: signed.authInfoBytes,\n signatures: [(0, encoding_1.fromBase64)(signature.signature)],\n });\n }\n}\nexports.SigningStargateClient = SigningStargateClient;\n//# sourceMappingURL=signingstargateclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StargateClient = exports.BroadcastTxError = exports.TimeoutError = void 0;\nexports.isDeliverTxFailure = isDeliverTxFailure;\nexports.isDeliverTxSuccess = isDeliverTxSuccess;\nexports.assertIsDeliverTxSuccess = assertIsDeliverTxSuccess;\nexports.assertIsDeliverTxFailure = assertIsDeliverTxFailure;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst amino_1 = require(\"@cosmjs/amino\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst tendermint_rpc_1 = require(\"@cosmjs/tendermint-rpc\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst abci_1 = require(\"cosmjs-types/cosmos/base/abci/v1beta1/abci\");\nconst accounts_1 = require(\"./accounts\");\nconst events_1 = require(\"./events\");\nconst modules_1 = require(\"./modules\");\nconst queryclient_1 = require(\"./queryclient\");\nconst search_1 = require(\"./search\");\nclass TimeoutError extends Error {\n constructor(message, txId) {\n super(message);\n this.txId = txId;\n }\n}\nexports.TimeoutError = TimeoutError;\nfunction isDeliverTxFailure(result) {\n return !!result.code;\n}\nfunction isDeliverTxSuccess(result) {\n return !isDeliverTxFailure(result);\n}\n/**\n * Ensures the given result is a success. Throws a detailed error message otherwise.\n */\nfunction assertIsDeliverTxSuccess(result) {\n if (isDeliverTxFailure(result)) {\n throw new Error(`Error when broadcasting tx ${result.transactionHash} at height ${result.height}. Code: ${result.code}; Raw log: ${result.rawLog}`);\n }\n}\n/**\n * Ensures the given result is a failure. Throws a detailed error message otherwise.\n */\nfunction assertIsDeliverTxFailure(result) {\n if (isDeliverTxSuccess(result)) {\n throw new Error(`Transaction ${result.transactionHash} did not fail at height ${result.height}. Code: ${result.code}; Raw log: ${result.rawLog}`);\n }\n}\n/**\n * An error when broadcasting the transaction. This contains the CheckTx errors\n * from the blockchain. Once a transaction is included in a block no BroadcastTxError\n * is thrown, even if the execution fails (DeliverTx errors).\n */\nclass BroadcastTxError extends Error {\n constructor(code, codespace, log) {\n super(`Broadcasting transaction failed with code ${code} (codespace: ${codespace}). Log: ${log}`);\n this.code = code;\n this.codespace = codespace;\n this.log = log;\n }\n}\nexports.BroadcastTxError = BroadcastTxError;\nclass StargateClient {\n /**\n * Creates an instance by connecting to the given CometBFT RPC endpoint.\n *\n * This uses auto-detection to decide between a CometBFT 0.38, Tendermint 0.37 and 0.34 client.\n * To set the Comet client explicitly, use `create`.\n */\n static async connect(endpoint, options = {}) {\n const cometClient = await (0, tendermint_rpc_1.connectComet)(endpoint);\n return StargateClient.create(cometClient, options);\n }\n /**\n * Creates an instance from a manually created Comet client.\n * Use this to use `Comet38Client` or `Tendermint37Client` instead of `Tendermint34Client`.\n */\n static async create(cometClient, options = {}) {\n return new StargateClient(cometClient, options);\n }\n constructor(cometClient, options) {\n if (cometClient) {\n this.cometClient = cometClient;\n this.queryClient = queryclient_1.QueryClient.withExtensions(cometClient, modules_1.setupAuthExtension, modules_1.setupBankExtension, modules_1.setupStakingExtension, modules_1.setupTxExtension);\n }\n const { accountParser = accounts_1.accountFromAny } = options;\n this.accountParser = accountParser;\n }\n getCometClient() {\n return this.cometClient;\n }\n forceGetCometClient() {\n if (!this.cometClient) {\n throw new Error(\"Comet client not available. You cannot use online functionality in offline mode.\");\n }\n return this.cometClient;\n }\n getQueryClient() {\n return this.queryClient;\n }\n forceGetQueryClient() {\n if (!this.queryClient) {\n throw new Error(\"Query client not available. You cannot use online functionality in offline mode.\");\n }\n return this.queryClient;\n }\n async getChainId() {\n if (!this.chainId) {\n const response = await this.forceGetCometClient().status();\n const chainId = response.nodeInfo.network;\n if (!chainId)\n throw new Error(\"Chain ID must not be empty\");\n this.chainId = chainId;\n }\n return this.chainId;\n }\n async getHeight() {\n const status = await this.forceGetCometClient().status();\n return status.syncInfo.latestBlockHeight;\n }\n async getAccount(searchAddress) {\n try {\n const account = await this.forceGetQueryClient().auth.account(searchAddress);\n return account ? this.accountParser(account) : null;\n }\n catch (error) {\n if (/rpc error: code = NotFound/i.test(error.toString())) {\n return null;\n }\n throw error;\n }\n }\n async getSequence(address) {\n const account = await this.getAccount(address);\n if (!account) {\n throw new Error(`Account '${address}' does not exist on chain. Send some tokens there before trying to query sequence.`);\n }\n return {\n accountNumber: account.accountNumber,\n sequence: account.sequence,\n };\n }\n async getBlock(height) {\n const response = await this.forceGetCometClient().block(height);\n return {\n id: (0, encoding_1.toHex)(response.blockId.hash).toUpperCase(),\n header: {\n version: {\n block: new math_1.Uint53(response.block.header.version.block).toString(),\n app: new math_1.Uint53(response.block.header.version.app).toString(),\n },\n height: response.block.header.height,\n chainId: response.block.header.chainId,\n time: (0, tendermint_rpc_1.toRfc3339WithNanoseconds)(response.block.header.time),\n },\n txs: response.block.txs,\n };\n }\n async getBalance(address, searchDenom) {\n return this.forceGetQueryClient().bank.balance(address, searchDenom);\n }\n /**\n * Queries all balances for all denoms that belong to this address.\n *\n * Uses the grpc queries (which iterates over the store internally), and we cannot get\n * proofs from such a method.\n */\n async getAllBalances(address) {\n return this.forceGetQueryClient().bank.allBalances(address);\n }\n async getBalanceStaked(address) {\n const allDelegations = [];\n let startAtKey = undefined;\n do {\n const { delegationResponses, pagination } = await this.forceGetQueryClient().staking.delegatorDelegations(address, startAtKey);\n const loadedDelegations = delegationResponses || [];\n allDelegations.push(...loadedDelegations);\n startAtKey = pagination?.nextKey;\n } while (startAtKey !== undefined && startAtKey.length !== 0);\n const sumValues = allDelegations.reduce((previousValue, currentValue) => {\n // Safe because field is set to non-nullable (https://github.com/cosmos/cosmos-sdk/blob/v0.45.3/proto/cosmos/staking/v1beta1/staking.proto#L295)\n (0, utils_1.assert)(currentValue.balance);\n return previousValue !== null ? (0, amino_1.addCoins)(previousValue, currentValue.balance) : currentValue.balance;\n }, null);\n return sumValues;\n }\n async getDelegation(delegatorAddress, validatorAddress) {\n let delegatedAmount;\n try {\n delegatedAmount = (await this.forceGetQueryClient().staking.delegation(delegatorAddress, validatorAddress)).delegationResponse?.balance;\n }\n catch (e) {\n if (e.toString().includes(\"key not found\")) {\n // ignore, `delegatedAmount` remains undefined\n }\n else {\n throw e;\n }\n }\n return delegatedAmount || null;\n }\n async getTx(id) {\n const results = await this.txsQuery(`tx.hash='${id}'`);\n return results[0] ?? null;\n }\n async searchTx(query) {\n let rawQuery;\n if (typeof query === \"string\") {\n rawQuery = query;\n }\n else if ((0, search_1.isSearchTxQueryArray)(query)) {\n rawQuery = query\n .map((t) => {\n // numeric values must not have quotes https://github.com/cosmos/cosmjs/issues/1462\n if (typeof t.value === \"string\")\n return `${t.key}='${t.value}'`;\n else\n return `${t.key}=${t.value}`;\n })\n .join(\" AND \");\n }\n else {\n throw new Error(\"Got unsupported query type. See CosmJS 0.31 CHANGELOG for API breaking changes here.\");\n }\n return this.txsQuery(rawQuery);\n }\n disconnect() {\n if (this.cometClient)\n this.cometClient.disconnect();\n }\n /**\n * Broadcasts a signed transaction to the network and monitors its inclusion in a block.\n *\n * If broadcasting is rejected by the node for some reason (e.g. because of a CheckTx failure),\n * an error is thrown.\n *\n * If the transaction is not included in a block before the provided timeout, this errors with a `TimeoutError`.\n *\n * If the transaction is included in a block, a `DeliverTxResponse` is returned. The caller then\n * usually needs to check for execution success or failure.\n */\n async broadcastTx(tx, timeoutMs = 60000, pollIntervalMs = 3000) {\n let timedOut = false;\n const txPollTimeout = setTimeout(() => {\n timedOut = true;\n }, timeoutMs);\n const pollForTx = async (txId) => {\n if (timedOut) {\n throw new TimeoutError(`Transaction with ID ${txId} was submitted but was not yet found on the chain. You might want to check later. There was a wait of ${timeoutMs / 1000} seconds.`, txId);\n }\n await (0, utils_1.sleep)(pollIntervalMs);\n const result = await this.getTx(txId);\n return result\n ? {\n code: result.code,\n height: result.height,\n txIndex: result.txIndex,\n events: result.events,\n rawLog: result.rawLog,\n transactionHash: txId,\n msgResponses: result.msgResponses,\n gasUsed: result.gasUsed,\n gasWanted: result.gasWanted,\n }\n : pollForTx(txId);\n };\n const transactionId = await this.broadcastTxSync(tx);\n return new Promise((resolve, reject) => pollForTx(transactionId).then((value) => {\n clearTimeout(txPollTimeout);\n resolve(value);\n }, (error) => {\n clearTimeout(txPollTimeout);\n reject(error);\n }));\n }\n /**\n * Broadcasts a signed transaction to the network without monitoring it.\n *\n * If broadcasting is rejected by the node for some reason (e.g. because of a CheckTx failure),\n * an error is thrown.\n *\n * If the transaction is broadcasted, a `string` containing the hash of the transaction is returned. The caller then\n * usually needs to check if the transaction was included in a block and was successful.\n *\n * @returns Returns the hash of the transaction\n */\n async broadcastTxSync(tx) {\n const broadcasted = await this.forceGetCometClient().broadcastTxSync({ tx });\n if (broadcasted.code) {\n return Promise.reject(new BroadcastTxError(broadcasted.code, broadcasted.codespace ?? \"\", broadcasted.log));\n }\n const transactionId = (0, encoding_1.toHex)(broadcasted.hash).toUpperCase();\n return transactionId;\n }\n async txsQuery(query) {\n const results = await this.forceGetCometClient().txSearchAll({ query: query });\n return results.txs.map((tx) => {\n const txMsgData = abci_1.TxMsgData.decode(tx.result.data ?? new Uint8Array());\n return {\n height: tx.height,\n txIndex: tx.index,\n hash: (0, encoding_1.toHex)(tx.hash).toUpperCase(),\n code: tx.result.code,\n events: tx.result.events.map(events_1.fromTendermintEvent),\n rawLog: tx.result.log || \"\",\n tx: tx.tx,\n msgResponses: txMsgData.msgResponses,\n gasUsed: tx.result.gasUsed,\n gasWanted: tx.result.gasWanted,\n };\n });\n }\n}\nexports.StargateClient = StargateClient;\n//# sourceMappingURL=stargateclient.js.map","\"use strict\";\n// See https://github.com/tendermint/tendermint/blob/f2ada0a604b4c0763bda2f64fac53d506d3beca7/docs/spec/blockchain/encoding.md#public-key-cryptography\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.rawEd25519PubkeyToRawAddress = rawEd25519PubkeyToRawAddress;\nexports.rawSecp256k1PubkeyToRawAddress = rawSecp256k1PubkeyToRawAddress;\nexports.pubkeyToRawAddress = pubkeyToRawAddress;\nexports.pubkeyToAddress = pubkeyToAddress;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst encoding_2 = require(\"./encoding\");\nconst pubkeys_1 = require(\"./pubkeys\");\nfunction rawEd25519PubkeyToRawAddress(pubkeyData) {\n if (pubkeyData.length !== 32) {\n throw new Error(`Invalid Ed25519 pubkey length: ${pubkeyData.length}`);\n }\n return (0, crypto_1.sha256)(pubkeyData).slice(0, 20);\n}\nfunction rawSecp256k1PubkeyToRawAddress(pubkeyData) {\n if (pubkeyData.length !== 33) {\n throw new Error(`Invalid Secp256k1 pubkey length (compressed): ${pubkeyData.length}`);\n }\n return (0, crypto_1.ripemd160)((0, crypto_1.sha256)(pubkeyData));\n}\n// For secp256k1 this assumes we already have a compressed pubkey.\nfunction pubkeyToRawAddress(pubkey) {\n if ((0, pubkeys_1.isSecp256k1Pubkey)(pubkey)) {\n const pubkeyData = (0, encoding_1.fromBase64)(pubkey.value);\n return rawSecp256k1PubkeyToRawAddress(pubkeyData);\n }\n else if ((0, pubkeys_1.isEd25519Pubkey)(pubkey)) {\n const pubkeyData = (0, encoding_1.fromBase64)(pubkey.value);\n return rawEd25519PubkeyToRawAddress(pubkeyData);\n }\n else if ((0, pubkeys_1.isMultisigThresholdPubkey)(pubkey)) {\n // https://github.com/tendermint/tendermint/blob/38b401657e4ad7a7eeb3c30a3cbf512037df3740/crypto/multisig/threshold_pubkey.go#L71-L74\n const pubkeyData = (0, encoding_2.encodeAminoPubkey)(pubkey);\n return (0, crypto_1.sha256)(pubkeyData).slice(0, 20);\n }\n else {\n throw new Error(\"Unsupported public key type\");\n }\n}\nfunction pubkeyToAddress(pubkey, prefix) {\n return (0, encoding_1.toBech32)(prefix, pubkeyToRawAddress(pubkey));\n}\n//# sourceMappingURL=addresses.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.coin = coin;\nexports.coins = coins;\nexports.parseCoins = parseCoins;\nexports.addCoins = addCoins;\nconst math_1 = require(\"@cosmjs/math\");\n/**\n * Creates a coin.\n *\n * If your values do not exceed the safe integer range of JS numbers (53 bit),\n * you can use the number type here. This is the case for all typical Cosmos SDK\n * chains that use the default 6 decimals.\n *\n * In case you need to supportr larger values, use unsigned integer strings instead.\n */\nfunction coin(amount, denom) {\n let outAmount;\n if (typeof amount === \"number\") {\n try {\n outAmount = new math_1.Uint53(amount).toString();\n }\n catch (_err) {\n throw new Error(\"Given amount is not a safe integer. Consider using a string instead to overcome the limitations of JS numbers.\");\n }\n }\n else {\n if (!amount.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid unsigned integer string format\");\n }\n outAmount = amount.replace(/^0*/, \"\") || \"0\";\n }\n return {\n amount: outAmount,\n denom: denom,\n };\n}\n/**\n * Creates a list of coins with one element.\n */\nfunction coins(amount, denom) {\n return [coin(amount, denom)];\n}\n/**\n * Takes a coins list like \"819966000ucosm,700000000ustake\" and parses it.\n *\n * Starting with CosmJS 0.32.3, the following imports are all synonym and support\n * a variety of denom types such as IBC denoms or tokenfactory. If you need to\n * restrict the denom to something very minimal, this needs to be implemented\n * separately in the caller.\n *\n * ```\n * import { parseCoins } from \"@cosmjs/proto-signing\";\n * // equals\n * import { parseCoins } from \"@cosmjs/stargate\";\n * // equals\n * import { parseCoins } from \"@cosmjs/amino\";\n * ```\n *\n * This function is not made for supporting decimal amounts and does not support\n * parsing gas prices.\n */\nfunction parseCoins(input) {\n return input\n .replace(/\\s/g, \"\")\n .split(\",\")\n .filter(Boolean)\n .map((part) => {\n // Denom regex from Stargate (https://github.com/cosmos/cosmos-sdk/blob/v0.42.7/types/coin.go#L599-L601)\n const match = part.match(/^([0-9]+)([a-zA-Z][a-zA-Z0-9/]{2,127})$/);\n if (!match)\n throw new Error(\"Got an invalid coin string\");\n return {\n amount: match[1].replace(/^0+/, \"\") || \"0\",\n denom: match[2],\n };\n });\n}\n/**\n * Function to sum up coins with type Coin\n */\nfunction addCoins(lhs, rhs) {\n if (lhs.denom !== rhs.denom)\n throw new Error(\"Trying to add two coins with different denoms\");\n return {\n amount: math_1.Decimal.fromAtomics(lhs.amount, 0).plus(math_1.Decimal.fromAtomics(rhs.amount, 0)).atomics,\n denom: lhs.denom,\n };\n}\n//# sourceMappingURL=coins.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeSecp256k1Pubkey = encodeSecp256k1Pubkey;\nexports.encodeEd25519Pubkey = encodeEd25519Pubkey;\nexports.decodeAminoPubkey = decodeAminoPubkey;\nexports.decodeBech32Pubkey = decodeBech32Pubkey;\nexports.encodeAminoPubkey = encodeAminoPubkey;\nexports.encodeBech32Pubkey = encodeBech32Pubkey;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst pubkeys_1 = require(\"./pubkeys\");\n/**\n * Takes a Secp256k1 public key as raw bytes and returns the Amino JSON\n * representation of it (the type/value wrapper object).\n */\nfunction encodeSecp256k1Pubkey(pubkey) {\n if (pubkey.length !== 33 || (pubkey[0] !== 0x02 && pubkey[0] !== 0x03)) {\n throw new Error(\"Public key must be compressed secp256k1, i.e. 33 bytes starting with 0x02 or 0x03\");\n }\n return {\n type: pubkeys_1.pubkeyType.secp256k1,\n value: (0, encoding_1.toBase64)(pubkey),\n };\n}\n/**\n * Takes an Edd25519 public key as raw bytes and returns the Amino JSON\n * representation of it (the type/value wrapper object).\n */\nfunction encodeEd25519Pubkey(pubkey) {\n if (pubkey.length !== 32) {\n throw new Error(\"Ed25519 public key must be 32 bytes long\");\n }\n return {\n type: pubkeys_1.pubkeyType.ed25519,\n value: (0, encoding_1.toBase64)(pubkey),\n };\n}\n// As discussed in https://github.com/binance-chain/javascript-sdk/issues/163\n// Prefixes listed here: https://github.com/tendermint/tendermint/blob/d419fffe18531317c28c29a292ad7d253f6cafdf/docs/spec/blockchain/encoding.md#public-key-cryptography\n// Last bytes is varint-encoded length prefix\nconst pubkeyAminoPrefixSecp256k1 = (0, encoding_1.fromHex)(\"eb5ae987\" + \"21\" /* fixed length */);\nconst pubkeyAminoPrefixEd25519 = (0, encoding_1.fromHex)(\"1624de64\" + \"20\" /* fixed length */);\nconst pubkeyAminoPrefixSr25519 = (0, encoding_1.fromHex)(\"0dfb1005\" + \"20\" /* fixed length */);\n/** See https://github.com/tendermint/tendermint/commit/38b401657e4ad7a7eeb3c30a3cbf512037df3740 */\nconst pubkeyAminoPrefixMultisigThreshold = (0, encoding_1.fromHex)(\"22c1f7e2\" /* variable length not included */);\n/**\n * Decodes a pubkey in the Amino binary format to a type/value object.\n */\nfunction decodeAminoPubkey(data) {\n if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixSecp256k1)) {\n const rest = data.slice(pubkeyAminoPrefixSecp256k1.length);\n if (rest.length !== 33) {\n throw new Error(\"Invalid rest data length. Expected 33 bytes (compressed secp256k1 pubkey).\");\n }\n return {\n type: pubkeys_1.pubkeyType.secp256k1,\n value: (0, encoding_1.toBase64)(rest),\n };\n }\n else if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixEd25519)) {\n const rest = data.slice(pubkeyAminoPrefixEd25519.length);\n if (rest.length !== 32) {\n throw new Error(\"Invalid rest data length. Expected 32 bytes (Ed25519 pubkey).\");\n }\n return {\n type: pubkeys_1.pubkeyType.ed25519,\n value: (0, encoding_1.toBase64)(rest),\n };\n }\n else if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixSr25519)) {\n const rest = data.slice(pubkeyAminoPrefixSr25519.length);\n if (rest.length !== 32) {\n throw new Error(\"Invalid rest data length. Expected 32 bytes (Sr25519 pubkey).\");\n }\n return {\n type: pubkeys_1.pubkeyType.sr25519,\n value: (0, encoding_1.toBase64)(rest),\n };\n }\n else if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixMultisigThreshold)) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return decodeMultisigPubkey(data);\n }\n else {\n throw new Error(\"Unsupported public key type. Amino data starts with: \" + (0, encoding_1.toHex)(data.slice(0, 5)));\n }\n}\n/**\n * Decodes a bech32 pubkey to Amino binary, which is then decoded to a type/value object.\n * The bech32 prefix is ignored and discareded.\n *\n * @param bechEncoded the bech32 encoded pubkey\n */\nfunction decodeBech32Pubkey(bechEncoded) {\n const { data } = (0, encoding_1.fromBech32)(bechEncoded);\n return decodeAminoPubkey(data);\n}\n/**\n * Uvarint decoder for Amino.\n * @see https://github.com/tendermint/go-amino/blob/8e779b71f40d175/decoder.go#L64-76\n * @returns varint as number, and bytes count occupied by varaint\n */\nfunction decodeUvarint(reader) {\n if (reader.length < 1) {\n throw new Error(\"Can't decode varint. EOF\");\n }\n if (reader[0] > 127) {\n throw new Error(\"Decoding numbers > 127 is not supported here. Please tell those lazy CosmJS maintainers to port the binary.Varint implementation from the Go standard library and write some tests.\");\n }\n return [reader[0], 1];\n}\n/**\n * Decodes a multisig pubkey to type object.\n * Pubkey structure [ prefix + const + threshold + loop:(const + pubkeyLength + pubkey ) ]\n * [ 4b + 1b + varint + loop:(1b + varint + pubkeyLength bytes) ]\n * @param data encoded pubkey\n */\nfunction decodeMultisigPubkey(data) {\n const reader = Array.from(data);\n // remove multisig amino prefix;\n const prefixFromReader = reader.splice(0, pubkeyAminoPrefixMultisigThreshold.length);\n if (!(0, utils_1.arrayContentStartsWith)(prefixFromReader, pubkeyAminoPrefixMultisigThreshold)) {\n throw new Error(\"Invalid multisig prefix.\");\n }\n // remove 0x08 threshold prefix;\n if (reader.shift() != 0x08) {\n throw new Error(\"Invalid multisig data. Expecting 0x08 prefix before threshold.\");\n }\n // read threshold\n const [threshold, thresholdBytesLength] = decodeUvarint(reader);\n reader.splice(0, thresholdBytesLength);\n // read participants pubkeys\n const pubkeys = [];\n while (reader.length > 0) {\n // remove 0x12 threshold prefix;\n if (reader.shift() != 0x12) {\n throw new Error(\"Invalid multisig data. Expecting 0x12 prefix before participant pubkey length.\");\n }\n // read pubkey length\n const [pubkeyLength, pubkeyLengthBytesSize] = decodeUvarint(reader);\n reader.splice(0, pubkeyLengthBytesSize);\n // verify that we can read pubkey\n if (reader.length < pubkeyLength) {\n throw new Error(\"Invalid multisig data length.\");\n }\n // read and decode participant pubkey\n const encodedPubkey = reader.splice(0, pubkeyLength);\n const pubkey = decodeAminoPubkey(Uint8Array.from(encodedPubkey));\n pubkeys.push(pubkey);\n }\n return {\n type: pubkeys_1.pubkeyType.multisigThreshold,\n value: {\n threshold: threshold.toString(),\n pubkeys: pubkeys,\n },\n };\n}\n/**\n * Uvarint encoder for Amino. This is the same encoding as `binary.PutUvarint` from the Go\n * standard library.\n *\n * @see https://github.com/tendermint/go-amino/blob/8e779b71f40d175/encoder.go#L77-L85\n */\nfunction encodeUvarint(value) {\n const checked = math_1.Uint53.fromString(value.toString()).toNumber();\n if (checked > 127) {\n throw new Error(\"Encoding numbers > 127 is not supported here. Please tell those lazy CosmJS maintainers to port the binary.PutUvarint implementation from the Go standard library and write some tests.\");\n }\n return [checked];\n}\n/**\n * Encodes a public key to binary Amino.\n */\nfunction encodeAminoPubkey(pubkey) {\n if ((0, pubkeys_1.isMultisigThresholdPubkey)(pubkey)) {\n const out = Array.from(pubkeyAminoPrefixMultisigThreshold);\n out.push(0x08); // TODO: What is this?\n out.push(...encodeUvarint(pubkey.value.threshold));\n for (const pubkeyData of pubkey.value.pubkeys.map((p) => encodeAminoPubkey(p))) {\n out.push(0x12); // TODO: What is this?\n out.push(...encodeUvarint(pubkeyData.length));\n out.push(...pubkeyData);\n }\n return new Uint8Array(out);\n }\n else if ((0, pubkeys_1.isEd25519Pubkey)(pubkey)) {\n return new Uint8Array([...pubkeyAminoPrefixEd25519, ...(0, encoding_1.fromBase64)(pubkey.value)]);\n }\n else if ((0, pubkeys_1.isSecp256k1Pubkey)(pubkey)) {\n return new Uint8Array([...pubkeyAminoPrefixSecp256k1, ...(0, encoding_1.fromBase64)(pubkey.value)]);\n }\n else {\n throw new Error(\"Unsupported pubkey type\");\n }\n}\n/**\n * Encodes a public key to binary Amino and then to bech32.\n *\n * @param pubkey the public key to encode\n * @param prefix the bech32 prefix (human readable part)\n */\nfunction encodeBech32Pubkey(pubkey, prefix) {\n return (0, encoding_1.toBech32)(prefix, encodeAminoPubkey(pubkey));\n}\n//# sourceMappingURL=encoding.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.executeKdf = exports.makeStdTx = exports.isStdTx = exports.serializeSignDoc = exports.makeSignDoc = exports.encodeSecp256k1Signature = exports.decodeSignature = exports.Secp256k1Wallet = exports.Secp256k1HdWallet = exports.extractKdfConfiguration = exports.pubkeyType = exports.isSinglePubkey = exports.isSecp256k1Pubkey = exports.isMultisigThresholdPubkey = exports.isEd25519Pubkey = exports.makeCosmoshubPath = exports.omitDefault = exports.createMultisigThresholdPubkey = exports.encodeSecp256k1Pubkey = exports.encodeEd25519Pubkey = exports.encodeBech32Pubkey = exports.encodeAminoPubkey = exports.decodeBech32Pubkey = exports.decodeAminoPubkey = exports.parseCoins = exports.coins = exports.coin = exports.addCoins = exports.rawSecp256k1PubkeyToRawAddress = exports.rawEd25519PubkeyToRawAddress = exports.pubkeyToRawAddress = exports.pubkeyToAddress = void 0;\nvar addresses_1 = require(\"./addresses\");\nObject.defineProperty(exports, \"pubkeyToAddress\", { enumerable: true, get: function () { return addresses_1.pubkeyToAddress; } });\nObject.defineProperty(exports, \"pubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.pubkeyToRawAddress; } });\nObject.defineProperty(exports, \"rawEd25519PubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.rawEd25519PubkeyToRawAddress; } });\nObject.defineProperty(exports, \"rawSecp256k1PubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.rawSecp256k1PubkeyToRawAddress; } });\nvar coins_1 = require(\"./coins\");\nObject.defineProperty(exports, \"addCoins\", { enumerable: true, get: function () { return coins_1.addCoins; } });\nObject.defineProperty(exports, \"coin\", { enumerable: true, get: function () { return coins_1.coin; } });\nObject.defineProperty(exports, \"coins\", { enumerable: true, get: function () { return coins_1.coins; } });\nObject.defineProperty(exports, \"parseCoins\", { enumerable: true, get: function () { return coins_1.parseCoins; } });\nvar encoding_1 = require(\"./encoding\");\nObject.defineProperty(exports, \"decodeAminoPubkey\", { enumerable: true, get: function () { return encoding_1.decodeAminoPubkey; } });\nObject.defineProperty(exports, \"decodeBech32Pubkey\", { enumerable: true, get: function () { return encoding_1.decodeBech32Pubkey; } });\nObject.defineProperty(exports, \"encodeAminoPubkey\", { enumerable: true, get: function () { return encoding_1.encodeAminoPubkey; } });\nObject.defineProperty(exports, \"encodeBech32Pubkey\", { enumerable: true, get: function () { return encoding_1.encodeBech32Pubkey; } });\nObject.defineProperty(exports, \"encodeEd25519Pubkey\", { enumerable: true, get: function () { return encoding_1.encodeEd25519Pubkey; } });\nObject.defineProperty(exports, \"encodeSecp256k1Pubkey\", { enumerable: true, get: function () { return encoding_1.encodeSecp256k1Pubkey; } });\nvar multisig_1 = require(\"./multisig\");\nObject.defineProperty(exports, \"createMultisigThresholdPubkey\", { enumerable: true, get: function () { return multisig_1.createMultisigThresholdPubkey; } });\nvar omitdefault_1 = require(\"./omitdefault\");\nObject.defineProperty(exports, \"omitDefault\", { enumerable: true, get: function () { return omitdefault_1.omitDefault; } });\nvar paths_1 = require(\"./paths\");\nObject.defineProperty(exports, \"makeCosmoshubPath\", { enumerable: true, get: function () { return paths_1.makeCosmoshubPath; } });\nvar pubkeys_1 = require(\"./pubkeys\");\nObject.defineProperty(exports, \"isEd25519Pubkey\", { enumerable: true, get: function () { return pubkeys_1.isEd25519Pubkey; } });\nObject.defineProperty(exports, \"isMultisigThresholdPubkey\", { enumerable: true, get: function () { return pubkeys_1.isMultisigThresholdPubkey; } });\nObject.defineProperty(exports, \"isSecp256k1Pubkey\", { enumerable: true, get: function () { return pubkeys_1.isSecp256k1Pubkey; } });\nObject.defineProperty(exports, \"isSinglePubkey\", { enumerable: true, get: function () { return pubkeys_1.isSinglePubkey; } });\nObject.defineProperty(exports, \"pubkeyType\", { enumerable: true, get: function () { return pubkeys_1.pubkeyType; } });\nvar secp256k1hdwallet_1 = require(\"./secp256k1hdwallet\");\nObject.defineProperty(exports, \"extractKdfConfiguration\", { enumerable: true, get: function () { return secp256k1hdwallet_1.extractKdfConfiguration; } });\nObject.defineProperty(exports, \"Secp256k1HdWallet\", { enumerable: true, get: function () { return secp256k1hdwallet_1.Secp256k1HdWallet; } });\nvar secp256k1wallet_1 = require(\"./secp256k1wallet\");\nObject.defineProperty(exports, \"Secp256k1Wallet\", { enumerable: true, get: function () { return secp256k1wallet_1.Secp256k1Wallet; } });\nvar signature_1 = require(\"./signature\");\nObject.defineProperty(exports, \"decodeSignature\", { enumerable: true, get: function () { return signature_1.decodeSignature; } });\nObject.defineProperty(exports, \"encodeSecp256k1Signature\", { enumerable: true, get: function () { return signature_1.encodeSecp256k1Signature; } });\nvar signdoc_1 = require(\"./signdoc\");\nObject.defineProperty(exports, \"makeSignDoc\", { enumerable: true, get: function () { return signdoc_1.makeSignDoc; } });\nObject.defineProperty(exports, \"serializeSignDoc\", { enumerable: true, get: function () { return signdoc_1.serializeSignDoc; } });\nvar stdtx_1 = require(\"./stdtx\");\nObject.defineProperty(exports, \"isStdTx\", { enumerable: true, get: function () { return stdtx_1.isStdTx; } });\nObject.defineProperty(exports, \"makeStdTx\", { enumerable: true, get: function () { return stdtx_1.makeStdTx; } });\nvar wallet_1 = require(\"./wallet\");\nObject.defineProperty(exports, \"executeKdf\", { enumerable: true, get: function () { return wallet_1.executeKdf; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compareArrays = compareArrays;\nexports.createMultisigThresholdPubkey = createMultisigThresholdPubkey;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst addresses_1 = require(\"./addresses\");\n/**\n * Compare arrays lexicographically.\n *\n * Returns value < 0 if `a < b`.\n * Returns value > 0 if `a > b`.\n * Returns 0 if `a === b`.\n */\nfunction compareArrays(a, b) {\n const aHex = (0, encoding_1.toHex)(a);\n const bHex = (0, encoding_1.toHex)(b);\n return aHex === bHex ? 0 : aHex < bHex ? -1 : 1;\n}\nfunction createMultisigThresholdPubkey(pubkeys, threshold, nosort = false) {\n const uintThreshold = new math_1.Uint53(threshold);\n if (uintThreshold.toNumber() > pubkeys.length) {\n throw new Error(`Threshold k = ${uintThreshold.toNumber()} exceeds number of keys n = ${pubkeys.length}`);\n }\n const outPubkeys = nosort\n ? pubkeys\n : Array.from(pubkeys).sort((lhs, rhs) => {\n // https://github.com/cosmos/cosmos-sdk/blob/v0.42.2/client/keys/add.go#L172-L174\n const addressLhs = (0, addresses_1.pubkeyToRawAddress)(lhs);\n const addressRhs = (0, addresses_1.pubkeyToRawAddress)(rhs);\n return compareArrays(addressLhs, addressRhs);\n });\n return {\n type: \"tendermint/PubKeyMultisigThreshold\",\n value: {\n threshold: uintThreshold.toString(),\n pubkeys: outPubkeys,\n },\n };\n}\n//# sourceMappingURL=multisig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.omitDefault = omitDefault;\n/**\n * Returns the given input. If the input is the default value\n * of protobuf, undefined is returned. Use this when creating Amino JSON converters.\n */\nfunction omitDefault(input) {\n switch (typeof input) {\n case \"string\":\n return input === \"\" ? undefined : input;\n case \"number\":\n return input === 0 ? undefined : input;\n case \"bigint\":\n return input === BigInt(0) ? undefined : input;\n case \"boolean\":\n return !input ? undefined : input;\n default:\n throw new Error(`Got unsupported type '${typeof input}'`);\n }\n}\n//# sourceMappingURL=omitdefault.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeCosmoshubPath = makeCosmoshubPath;\nconst crypto_1 = require(\"@cosmjs/crypto\");\n/**\n * The Cosmos Hub derivation path in the form `m/44'/118'/0'/0/a`\n * with 0-based account index `a`.\n */\nfunction makeCosmoshubPath(a) {\n return [\n crypto_1.Slip10RawIndex.hardened(44),\n crypto_1.Slip10RawIndex.hardened(118),\n crypto_1.Slip10RawIndex.hardened(0),\n crypto_1.Slip10RawIndex.normal(0),\n crypto_1.Slip10RawIndex.normal(a),\n ];\n}\n//# sourceMappingURL=paths.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pubkeyType = void 0;\nexports.isEd25519Pubkey = isEd25519Pubkey;\nexports.isSecp256k1Pubkey = isSecp256k1Pubkey;\nexports.isSinglePubkey = isSinglePubkey;\nexports.isMultisigThresholdPubkey = isMultisigThresholdPubkey;\nfunction isEd25519Pubkey(pubkey) {\n return pubkey.type === \"tendermint/PubKeyEd25519\";\n}\nfunction isSecp256k1Pubkey(pubkey) {\n return pubkey.type === \"tendermint/PubKeySecp256k1\";\n}\nexports.pubkeyType = {\n /** @see https://github.com/tendermint/tendermint/blob/v0.33.0/crypto/ed25519/ed25519.go#L22 */\n secp256k1: \"tendermint/PubKeySecp256k1\",\n /** @see https://github.com/tendermint/tendermint/blob/v0.33.0/crypto/secp256k1/secp256k1.go#L23 */\n ed25519: \"tendermint/PubKeyEd25519\",\n /** @see https://github.com/tendermint/tendermint/blob/v0.33.0/crypto/sr25519/codec.go#L12 */\n sr25519: \"tendermint/PubKeySr25519\",\n multisigThreshold: \"tendermint/PubKeyMultisigThreshold\",\n};\nfunction isSinglePubkey(pubkey) {\n const singPubkeyTypes = [exports.pubkeyType.ed25519, exports.pubkeyType.secp256k1, exports.pubkeyType.sr25519];\n return singPubkeyTypes.includes(pubkey.type);\n}\nfunction isMultisigThresholdPubkey(pubkey) {\n return pubkey.type === \"tendermint/PubKeyMultisigThreshold\";\n}\n//# sourceMappingURL=pubkeys.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Secp256k1HdWallet = void 0;\nexports.extractKdfConfiguration = extractKdfConfiguration;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst addresses_1 = require(\"./addresses\");\nconst paths_1 = require(\"./paths\");\nconst signature_1 = require(\"./signature\");\nconst signdoc_1 = require(\"./signdoc\");\nconst wallet_1 = require(\"./wallet\");\nconst serializationTypeV1 = \"secp256k1wallet-v1\";\n/**\n * A KDF configuration that is not very strong but can be used on the main thread.\n * It takes about 1 second in Node.js 16.0.0 and should have similar runtimes in other modern Wasm hosts.\n */\nconst basicPasswordHashingOptions = {\n algorithm: \"argon2id\",\n params: {\n outputLength: 32,\n opsLimit: 24,\n memLimitKib: 12 * 1024,\n },\n};\nfunction isDerivationJson(thing) {\n if (!(0, utils_1.isNonNullObject)(thing))\n return false;\n if (typeof thing.hdPath !== \"string\")\n return false;\n if (typeof thing.prefix !== \"string\")\n return false;\n return true;\n}\nfunction extractKdfConfigurationV1(doc) {\n return doc.kdf;\n}\nfunction extractKdfConfiguration(serialization) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n switch (root.type) {\n case serializationTypeV1:\n return extractKdfConfigurationV1(root);\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n}\nconst defaultOptions = {\n bip39Password: \"\",\n hdPaths: [(0, paths_1.makeCosmoshubPath)(0)],\n prefix: \"cosmos\",\n};\nclass Secp256k1HdWallet {\n /**\n * Restores a wallet from the given BIP39 mnemonic.\n *\n * @param mnemonic Any valid English mnemonic.\n * @param options An optional `Secp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix.\n */\n static async fromMnemonic(mnemonic, options = {}) {\n const mnemonicChecked = new crypto_1.EnglishMnemonic(mnemonic);\n const seed = await crypto_1.Bip39.mnemonicToSeed(mnemonicChecked, options.bip39Password);\n return new Secp256k1HdWallet(mnemonicChecked, {\n ...options,\n seed: seed,\n });\n }\n /**\n * Generates a new wallet with a BIP39 mnemonic of the given length.\n *\n * @param length The number of words in the mnemonic (12, 15, 18, 21 or 24).\n * @param options An optional `Secp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix.\n */\n static async generate(length = 12, options = {}) {\n const entropyLength = 4 * Math.floor((11 * length) / 33);\n const entropy = crypto_1.Random.getBytes(entropyLength);\n const mnemonic = crypto_1.Bip39.encode(entropy);\n return Secp256k1HdWallet.fromMnemonic(mnemonic.toString(), options);\n }\n /**\n * Restores a wallet from an encrypted serialization.\n *\n * @param password The user provided password used to generate an encryption key via a KDF.\n * This is not normalized internally (see \"Unicode normalization\" to learn more).\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n static async deserialize(serialization, password) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n switch (root.type) {\n case serializationTypeV1:\n return Secp256k1HdWallet.deserializeTypeV1(serialization, password);\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n }\n /**\n * Restores a wallet from an encrypted serialization.\n *\n * This is an advanced alternative to calling `deserialize(serialization, password)` directly, which allows\n * you to offload the KDF execution to a non-UI thread (e.g. in a WebWorker).\n *\n * The caller is responsible for ensuring the key was derived with the given KDF configuration. This can be\n * done using `extractKdfConfiguration(serialization)` and `executeKdf(password, kdfConfiguration)` from this package.\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n static async deserializeWithEncryptionKey(serialization, encryptionKey) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n const untypedRoot = root;\n switch (untypedRoot.type) {\n case serializationTypeV1: {\n const decryptedBytes = await (0, wallet_1.decrypt)((0, encoding_1.fromBase64)(untypedRoot.data), encryptionKey, untypedRoot.encryption);\n const decryptedDocument = JSON.parse((0, encoding_1.fromUtf8)(decryptedBytes));\n const { mnemonic, accounts } = decryptedDocument;\n (0, utils_1.assert)(typeof mnemonic === \"string\");\n if (!Array.isArray(accounts))\n throw new Error(\"Property 'accounts' is not an array\");\n if (!accounts.every((account) => isDerivationJson(account))) {\n throw new Error(\"Account is not in the correct format.\");\n }\n const firstPrefix = accounts[0].prefix;\n if (!accounts.every(({ prefix }) => prefix === firstPrefix)) {\n throw new Error(\"Accounts do not all have the same prefix\");\n }\n const hdPaths = accounts.map(({ hdPath }) => (0, crypto_1.stringToPath)(hdPath));\n return Secp256k1HdWallet.fromMnemonic(mnemonic, {\n hdPaths: hdPaths,\n prefix: firstPrefix,\n });\n }\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n }\n static async deserializeTypeV1(serialization, password) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n const encryptionKey = await (0, wallet_1.executeKdf)(password, root.kdf);\n return Secp256k1HdWallet.deserializeWithEncryptionKey(serialization, encryptionKey);\n }\n constructor(mnemonic, options) {\n const hdPaths = options.hdPaths ?? defaultOptions.hdPaths;\n const prefix = options.prefix ?? defaultOptions.prefix;\n this.secret = mnemonic;\n this.seed = options.seed;\n this.accounts = hdPaths.map((hdPath) => ({\n hdPath: hdPath,\n prefix,\n }));\n }\n get mnemonic() {\n return this.secret.toString();\n }\n async getAccounts() {\n const accountsWithPrivkeys = await this.getAccountsWithPrivkeys();\n return accountsWithPrivkeys.map(({ algo, pubkey, address }) => ({\n algo: algo,\n pubkey: pubkey,\n address: address,\n }));\n }\n async signAmino(signerAddress, signDoc) {\n const accounts = await this.getAccountsWithPrivkeys();\n const account = accounts.find(({ address }) => address === signerAddress);\n if (account === undefined) {\n throw new Error(`Address ${signerAddress} not found in wallet`);\n }\n const { privkey, pubkey } = account;\n const message = (0, crypto_1.sha256)((0, signdoc_1.serializeSignDoc)(signDoc));\n const signature = await crypto_1.Secp256k1.createSignature(message, privkey);\n const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]);\n return {\n signed: signDoc,\n signature: (0, signature_1.encodeSecp256k1Signature)(pubkey, signatureBytes),\n };\n }\n /**\n * Generates an encrypted serialization of this wallet.\n *\n * @param password The user provided password used to generate an encryption key via a KDF.\n * This is not normalized internally (see \"Unicode normalization\" to learn more).\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n async serialize(password) {\n const kdfConfiguration = basicPasswordHashingOptions;\n const encryptionKey = await (0, wallet_1.executeKdf)(password, kdfConfiguration);\n return this.serializeWithEncryptionKey(encryptionKey, kdfConfiguration);\n }\n /**\n * Generates an encrypted serialization of this wallet.\n *\n * This is an advanced alternative to calling `serialize(password)` directly, which allows you to\n * offload the KDF execution to a non-UI thread (e.g. in a WebWorker).\n *\n * The caller is responsible for ensuring the key was derived with the given KDF options. If this\n * is not the case, the wallet cannot be restored with the original password.\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n async serializeWithEncryptionKey(encryptionKey, kdfConfiguration) {\n const dataToEncrypt = {\n mnemonic: this.mnemonic,\n accounts: this.accounts.map(({ hdPath, prefix }) => ({\n hdPath: (0, crypto_1.pathToString)(hdPath),\n prefix: prefix,\n })),\n };\n const dataToEncryptRaw = (0, encoding_1.toUtf8)(JSON.stringify(dataToEncrypt));\n const encryptionConfiguration = {\n algorithm: wallet_1.supportedAlgorithms.xchacha20poly1305Ietf,\n };\n const encryptedData = await (0, wallet_1.encrypt)(dataToEncryptRaw, encryptionKey, encryptionConfiguration);\n const out = {\n type: serializationTypeV1,\n kdf: kdfConfiguration,\n encryption: encryptionConfiguration,\n data: (0, encoding_1.toBase64)(encryptedData),\n };\n return JSON.stringify(out);\n }\n async getKeyPair(hdPath) {\n const { privkey } = crypto_1.Slip10.derivePath(crypto_1.Slip10Curve.Secp256k1, this.seed, hdPath);\n const { pubkey } = await crypto_1.Secp256k1.makeKeypair(privkey);\n return {\n privkey: privkey,\n pubkey: crypto_1.Secp256k1.compressPubkey(pubkey),\n };\n }\n async getAccountsWithPrivkeys() {\n return Promise.all(this.accounts.map(async ({ hdPath, prefix }) => {\n const { privkey, pubkey } = await this.getKeyPair(hdPath);\n const address = (0, encoding_1.toBech32)(prefix, (0, addresses_1.rawSecp256k1PubkeyToRawAddress)(pubkey));\n return {\n algo: \"secp256k1\",\n privkey: privkey,\n pubkey: pubkey,\n address: address,\n };\n }));\n }\n}\nexports.Secp256k1HdWallet = Secp256k1HdWallet;\n//# sourceMappingURL=secp256k1hdwallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Secp256k1Wallet = void 0;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst addresses_1 = require(\"./addresses\");\nconst signature_1 = require(\"./signature\");\nconst signdoc_1 = require(\"./signdoc\");\n/**\n * A wallet that holds a single secp256k1 keypair.\n *\n * If you want to work with BIP39 mnemonics and multiple accounts, use Secp256k1HdWallet.\n */\nclass Secp256k1Wallet {\n /**\n * Creates a Secp256k1Wallet from the given private key\n *\n * @param privkey The private key.\n * @param prefix The bech32 address prefix (human readable part). Defaults to \"cosmos\".\n */\n static async fromKey(privkey, prefix = \"cosmos\") {\n const uncompressed = (await crypto_1.Secp256k1.makeKeypair(privkey)).pubkey;\n return new Secp256k1Wallet(privkey, crypto_1.Secp256k1.compressPubkey(uncompressed), prefix);\n }\n constructor(privkey, pubkey, prefix) {\n this.privkey = privkey;\n this.pubkey = pubkey;\n this.prefix = prefix;\n }\n get address() {\n return (0, encoding_1.toBech32)(this.prefix, (0, addresses_1.rawSecp256k1PubkeyToRawAddress)(this.pubkey));\n }\n async getAccounts() {\n return [\n {\n algo: \"secp256k1\",\n address: this.address,\n pubkey: this.pubkey,\n },\n ];\n }\n async signAmino(signerAddress, signDoc) {\n if (signerAddress !== this.address) {\n throw new Error(`Address ${signerAddress} not found in wallet`);\n }\n const message = new crypto_1.Sha256((0, signdoc_1.serializeSignDoc)(signDoc)).digest();\n const signature = await crypto_1.Secp256k1.createSignature(message, this.privkey);\n const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]);\n return {\n signed: signDoc,\n signature: (0, signature_1.encodeSecp256k1Signature)(this.pubkey, signatureBytes),\n };\n }\n}\nexports.Secp256k1Wallet = Secp256k1Wallet;\n//# sourceMappingURL=secp256k1wallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeSecp256k1Signature = encodeSecp256k1Signature;\nexports.decodeSignature = decodeSignature;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst encoding_2 = require(\"./encoding\");\nconst pubkeys_1 = require(\"./pubkeys\");\n/**\n * Takes a binary pubkey and signature to create a signature object\n *\n * @param pubkey a compressed secp256k1 public key\n * @param signature a 64 byte fixed length representation of secp256k1 signature components r and s\n */\nfunction encodeSecp256k1Signature(pubkey, signature) {\n if (signature.length !== 64) {\n throw new Error(\"Signature must be 64 bytes long. Cosmos SDK uses a 2x32 byte fixed length encoding for the secp256k1 signature integers r and s.\");\n }\n return {\n pub_key: (0, encoding_2.encodeSecp256k1Pubkey)(pubkey),\n signature: (0, encoding_1.toBase64)(signature),\n };\n}\nfunction decodeSignature(signature) {\n switch (signature.pub_key.type) {\n // Note: please don't add cases here without writing additional unit tests\n case pubkeys_1.pubkeyType.secp256k1:\n return {\n pubkey: (0, encoding_1.fromBase64)(signature.pub_key.value),\n signature: (0, encoding_1.fromBase64)(signature.signature),\n };\n default:\n throw new Error(\"Unsupported pubkey type\");\n }\n}\n//# sourceMappingURL=signature.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sortedJsonStringify = sortedJsonStringify;\nexports.makeSignDoc = makeSignDoc;\nexports.escapeCharacters = escapeCharacters;\nexports.serializeSignDoc = serializeSignDoc;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nfunction sortedObject(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return obj;\n }\n if (Array.isArray(obj)) {\n return obj.map(sortedObject);\n }\n const sortedKeys = Object.keys(obj).sort();\n const result = {};\n // NOTE: Use forEach instead of reduce for performance with large objects eg Wasm code\n sortedKeys.forEach((key) => {\n result[key] = sortedObject(obj[key]);\n });\n return result;\n}\n/** Returns a JSON string with objects sorted by key */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction sortedJsonStringify(obj) {\n return JSON.stringify(sortedObject(obj));\n}\nfunction makeSignDoc(msgs, fee, chainId, memo, accountNumber, sequence, timeout_height) {\n return {\n chain_id: chainId,\n account_number: math_1.Uint53.fromString(accountNumber.toString()).toString(),\n sequence: math_1.Uint53.fromString(sequence.toString()).toString(),\n fee: fee,\n msgs: msgs,\n memo: memo || \"\",\n ...(timeout_height && { timeout_height: timeout_height.toString() }),\n };\n}\n/**\n * Takes a valid JSON document and performs the following escapings in string values:\n *\n * `&` -> `\\u0026`\n * `<` -> `\\u003c`\n * `>` -> `\\u003e`\n *\n * Since those characters do not occur in other places of the JSON document, only\n * string values are affected.\n *\n * If the input is invalid JSON, the behaviour is undefined.\n */\nfunction escapeCharacters(input) {\n // When we migrate to target es2021 or above, we can use replaceAll instead of global patterns.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll\n const amp = /&/g;\n const lt = //g;\n return input.replace(amp, \"\\\\u0026\").replace(lt, \"\\\\u003c\").replace(gt, \"\\\\u003e\");\n}\nfunction serializeSignDoc(signDoc) {\n const serialized = escapeCharacters(sortedJsonStringify(signDoc));\n return (0, encoding_1.toUtf8)(serialized);\n}\n//# sourceMappingURL=signdoc.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isStdTx = isStdTx;\nexports.makeStdTx = makeStdTx;\nfunction isStdTx(txValue) {\n const { memo, msg, fee, signatures } = txValue;\n return (typeof memo === \"string\" && Array.isArray(msg) && typeof fee === \"object\" && Array.isArray(signatures));\n}\nfunction makeStdTx(content, signatures) {\n return {\n msg: content.msgs,\n fee: content.fee,\n memo: content.memo,\n signatures: Array.isArray(signatures) ? signatures : [signatures],\n };\n}\n//# sourceMappingURL=stdtx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.supportedAlgorithms = exports.cosmjsSalt = void 0;\nexports.executeKdf = executeKdf;\nexports.encrypt = encrypt;\nexports.decrypt = decrypt;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\n/**\n * A fixed salt is chosen to archive a deterministic password to key derivation.\n * This reduces the scope of a potential rainbow attack to all CosmJS users.\n * Must be 16 bytes due to implementation limitations.\n */\nexports.cosmjsSalt = (0, encoding_1.toAscii)(\"The CosmJS salt.\");\n/**\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\nasync function executeKdf(password, configuration) {\n switch (configuration.algorithm) {\n case \"argon2id\": {\n const options = configuration.params;\n if (!(0, crypto_1.isArgon2idOptions)(options))\n throw new Error(\"Invalid format of argon2id params\");\n return crypto_1.Argon2id.execute(password, exports.cosmjsSalt, options);\n }\n default:\n throw new Error(\"Unsupported KDF algorithm\");\n }\n}\nexports.supportedAlgorithms = {\n xchacha20poly1305Ietf: \"xchacha20poly1305-ietf\",\n};\n/**\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\nasync function encrypt(plaintext, encryptionKey, config) {\n switch (config.algorithm) {\n case exports.supportedAlgorithms.xchacha20poly1305Ietf: {\n const nonce = crypto_1.Random.getBytes(crypto_1.xchacha20NonceLength);\n // Prepend fixed-length nonce to ciphertext as suggested in the example from https://github.com/jedisct1/libsodium.js#api\n return new Uint8Array([\n ...nonce,\n ...(await crypto_1.Xchacha20poly1305Ietf.encrypt(plaintext, encryptionKey, nonce)),\n ]);\n }\n default:\n throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`);\n }\n}\n/**\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\nasync function decrypt(ciphertext, encryptionKey, config) {\n switch (config.algorithm) {\n case exports.supportedAlgorithms.xchacha20poly1305Ietf: {\n const nonce = ciphertext.slice(0, crypto_1.xchacha20NonceLength);\n return crypto_1.Xchacha20poly1305Ietf.decrypt(ciphertext.slice(crypto_1.xchacha20NonceLength), encryptionKey, nonce);\n }\n default:\n throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`);\n }\n}\n//# sourceMappingURL=wallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toAscii = toAscii;\nexports.fromAscii = fromAscii;\nfunction toAscii(input) {\n const toNums = (str) => str.split(\"\").map((x) => {\n const charCode = x.charCodeAt(0);\n // 0x00–0x1F control characters\n // 0x20–0x7E printable characters\n // 0x7F delete character\n // 0x80–0xFF out of 7 bit ascii range\n if (charCode < 0x20 || charCode > 0x7e) {\n throw new Error(\"Cannot encode character that is out of printable ASCII range: \" + charCode);\n }\n return charCode;\n });\n return Uint8Array.from(toNums(input));\n}\nfunction fromAscii(data) {\n const fromNums = (listOfNumbers) => listOfNumbers.map((x) => {\n // 0x00–0x1F control characters\n // 0x20–0x7E printable characters\n // 0x7F delete character\n // 0x80–0xFF out of 7 bit ascii range\n if (x < 0x20 || x > 0x7e) {\n throw new Error(\"Cannot decode character that is out of printable ASCII range: \" + x);\n }\n return String.fromCharCode(x);\n });\n return fromNums(Array.from(data)).join(\"\");\n}\n//# sourceMappingURL=ascii.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBase64 = toBase64;\nexports.fromBase64 = fromBase64;\nconst base64js = __importStar(require(\"base64-js\"));\nfunction toBase64(data) {\n return base64js.fromByteArray(data);\n}\nfunction fromBase64(base64String) {\n if (!base64String.match(/^[a-zA-Z0-9+/]*={0,2}$/)) {\n throw new Error(\"Invalid base64 string format\");\n }\n return base64js.toByteArray(base64String);\n}\n//# sourceMappingURL=base64.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBech32 = toBech32;\nexports.fromBech32 = fromBech32;\nexports.normalizeBech32 = normalizeBech32;\nconst bech32 = __importStar(require(\"bech32\"));\nfunction toBech32(prefix, data, limit) {\n const address = bech32.encode(prefix, bech32.toWords(data), limit);\n return address;\n}\nfunction fromBech32(address, limit = Infinity) {\n const decodedAddress = bech32.decode(address, limit);\n return {\n prefix: decodedAddress.prefix,\n data: new Uint8Array(bech32.fromWords(decodedAddress.words)),\n };\n}\n/**\n * Takes a bech32 address and returns a normalized (i.e. lower case) representation of it.\n *\n * The input is validated along the way, which makes this significantly safer than\n * using `address.toLowerCase()`.\n */\nfunction normalizeBech32(address) {\n const { prefix, data } = fromBech32(address);\n return toBech32(prefix, data);\n}\n//# sourceMappingURL=bech32.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toHex = toHex;\nexports.fromHex = fromHex;\nfunction toHex(data) {\n let out = \"\";\n for (const byte of data) {\n out += (\"0\" + byte.toString(16)).slice(-2);\n }\n return out;\n}\nfunction fromHex(hexstring) {\n if (hexstring.length % 2 !== 0) {\n throw new Error(\"hex string length must be a multiple of 2\");\n }\n const out = new Uint8Array(hexstring.length / 2);\n for (let i = 0; i < out.length; i++) {\n const j = 2 * i;\n const hexByteAsString = hexstring.slice(j, j + 2);\n if (!hexByteAsString.match(/[0-9a-f]{2}/i)) {\n throw new Error(\"hex string contains invalid characters\");\n }\n out[i] = parseInt(hexByteAsString, 16);\n }\n return out;\n}\n//# sourceMappingURL=hex.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = exports.toRfc3339 = exports.fromRfc3339 = exports.toHex = exports.fromHex = exports.toBech32 = exports.normalizeBech32 = exports.fromBech32 = exports.toBase64 = exports.fromBase64 = exports.toAscii = exports.fromAscii = void 0;\nvar ascii_1 = require(\"./ascii\");\nObject.defineProperty(exports, \"fromAscii\", { enumerable: true, get: function () { return ascii_1.fromAscii; } });\nObject.defineProperty(exports, \"toAscii\", { enumerable: true, get: function () { return ascii_1.toAscii; } });\nvar base64_1 = require(\"./base64\");\nObject.defineProperty(exports, \"fromBase64\", { enumerable: true, get: function () { return base64_1.fromBase64; } });\nObject.defineProperty(exports, \"toBase64\", { enumerable: true, get: function () { return base64_1.toBase64; } });\nvar bech32_1 = require(\"./bech32\");\nObject.defineProperty(exports, \"fromBech32\", { enumerable: true, get: function () { return bech32_1.fromBech32; } });\nObject.defineProperty(exports, \"normalizeBech32\", { enumerable: true, get: function () { return bech32_1.normalizeBech32; } });\nObject.defineProperty(exports, \"toBech32\", { enumerable: true, get: function () { return bech32_1.toBech32; } });\nvar hex_1 = require(\"./hex\");\nObject.defineProperty(exports, \"fromHex\", { enumerable: true, get: function () { return hex_1.fromHex; } });\nObject.defineProperty(exports, \"toHex\", { enumerable: true, get: function () { return hex_1.toHex; } });\nvar rfc3339_1 = require(\"./rfc3339\");\nObject.defineProperty(exports, \"fromRfc3339\", { enumerable: true, get: function () { return rfc3339_1.fromRfc3339; } });\nObject.defineProperty(exports, \"toRfc3339\", { enumerable: true, get: function () { return rfc3339_1.toRfc3339; } });\nvar utf8_1 = require(\"./utf8\");\nObject.defineProperty(exports, \"fromUtf8\", { enumerable: true, get: function () { return utf8_1.fromUtf8; } });\nObject.defineProperty(exports, \"toUtf8\", { enumerable: true, get: function () { return utf8_1.toUtf8; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromRfc3339 = fromRfc3339;\nexports.toRfc3339 = toRfc3339;\nconst rfc3339Matcher = /^(\\d{4})-(\\d{2})-(\\d{2})[T ](\\d{2}):(\\d{2}):(\\d{2})(\\.\\d{1,9})?((?:[+-]\\d{2}:\\d{2})|Z)$/;\nfunction padded(integer, length = 2) {\n return integer.toString().padStart(length, \"0\");\n}\nfunction fromRfc3339(str) {\n const matches = rfc3339Matcher.exec(str);\n if (!matches) {\n throw new Error(\"Date string is not in RFC3339 format\");\n }\n const year = +matches[1];\n const month = +matches[2];\n const day = +matches[3];\n const hour = +matches[4];\n const minute = +matches[5];\n const second = +matches[6];\n // fractional seconds match either undefined or a string like \".1\", \".123456789\"\n const milliSeconds = matches[7] ? Math.floor(+matches[7] * 1000) : 0;\n let tzOffsetSign;\n let tzOffsetHours;\n let tzOffsetMinutes;\n // if timezone is undefined, it must be Z or nothing (otherwise the group would have captured).\n if (matches[8] === \"Z\") {\n tzOffsetSign = 1;\n tzOffsetHours = 0;\n tzOffsetMinutes = 0;\n }\n else {\n tzOffsetSign = matches[8].substring(0, 1) === \"-\" ? -1 : 1;\n tzOffsetHours = +matches[8].substring(1, 3);\n tzOffsetMinutes = +matches[8].substring(4, 6);\n }\n const tzOffset = tzOffsetSign * (tzOffsetHours * 60 + tzOffsetMinutes) * 60; // seconds\n const date = new Date();\n date.setUTCFullYear(year, month - 1, day);\n date.setUTCHours(hour, minute, second, milliSeconds);\n return new Date(date.getTime() - tzOffset * 1000);\n}\nfunction toRfc3339(date) {\n const year = date.getUTCFullYear();\n const month = padded(date.getUTCMonth() + 1);\n const day = padded(date.getUTCDate());\n const hour = padded(date.getUTCHours());\n const minute = padded(date.getUTCMinutes());\n const second = padded(date.getUTCSeconds());\n const ms = padded(date.getUTCMilliseconds(), 3);\n return `${year}-${month}-${day}T${hour}:${minute}:${second}.${ms}Z`;\n}\n//# sourceMappingURL=rfc3339.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = toUtf8;\nexports.fromUtf8 = fromUtf8;\nfunction toUtf8(str) {\n return new TextEncoder().encode(str);\n}\n/**\n * Takes UTF-8 data and decodes it to a string.\n *\n * In lossy mode, the [REPLACEMENT CHARACTER](https://en.wikipedia.org/wiki/Specials_(Unicode_block))\n * is used to substitude invalid encodings.\n * By default lossy mode is off and invalid data will lead to exceptions.\n */\nfunction fromUtf8(data, lossy = false) {\n const fatal = !lossy;\n return new TextDecoder(\"utf-8\", { fatal }).decode(data);\n}\n//# sourceMappingURL=utf8.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Decimal = void 0;\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\n// Too large values lead to massive memory usage. Limit to something sensible.\n// The largest value we need is 18 (Ether).\nconst maxFractionalDigits = 100;\n/**\n * A type for arbitrary precision, non-negative decimals.\n *\n * Instances of this class are immutable.\n */\nclass Decimal {\n static fromUserInput(input, fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n const badCharacter = input.match(/[^0-9.]/);\n if (badCharacter) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n throw new Error(`Invalid character at position ${badCharacter.index + 1}`);\n }\n let whole;\n let fractional;\n if (input === \"\") {\n whole = \"0\";\n fractional = \"\";\n }\n else if (input.search(/\\./) === -1) {\n // integer format, no separator\n whole = input;\n fractional = \"\";\n }\n else {\n const parts = input.split(\".\");\n switch (parts.length) {\n case 0:\n case 1:\n throw new Error(\"Fewer than two elements in split result. This must not happen here.\");\n case 2:\n if (!parts[1])\n throw new Error(\"Fractional part missing\");\n whole = parts[0];\n fractional = parts[1].replace(/0+$/, \"\");\n break;\n default:\n throw new Error(\"More than one separator found\");\n }\n }\n if (fractional.length > fractionalDigits) {\n throw new Error(\"Got more fractional digits than supported\");\n }\n const quantity = `${whole}${fractional.padEnd(fractionalDigits, \"0\")}`;\n return new Decimal(quantity, fractionalDigits);\n }\n static fromAtomics(atomics, fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(atomics, fractionalDigits);\n }\n /**\n * Creates a Decimal with value 0.0 and the given number of fractial digits.\n *\n * Fractional digits are not relevant for the value but needed to be able\n * to perform arithmetic operations with other decimals.\n */\n static zero(fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(\"0\", fractionalDigits);\n }\n /**\n * Creates a Decimal with value 1.0 and the given number of fractial digits.\n *\n * Fractional digits are not relevant for the value but needed to be able\n * to perform arithmetic operations with other decimals.\n */\n static one(fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(\"1\" + \"0\".repeat(fractionalDigits), fractionalDigits);\n }\n static verifyFractionalDigits(fractionalDigits) {\n if (!Number.isInteger(fractionalDigits))\n throw new Error(\"Fractional digits is not an integer\");\n if (fractionalDigits < 0)\n throw new Error(\"Fractional digits must not be negative\");\n if (fractionalDigits > maxFractionalDigits) {\n throw new Error(`Fractional digits must not exceed ${maxFractionalDigits}`);\n }\n }\n static compare(a, b) {\n if (a.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n return a.data.atomics.cmp(new bn_js_1.default(b.atomics));\n }\n get atomics() {\n return this.data.atomics.toString();\n }\n get fractionalDigits() {\n return this.data.fractionalDigits;\n }\n constructor(atomics, fractionalDigits) {\n if (!atomics.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format. Only non-negative integers in decimal representation supported.\");\n }\n this.data = {\n atomics: new bn_js_1.default(atomics),\n fractionalDigits: fractionalDigits,\n };\n }\n /** Creates a new instance with the same value */\n clone() {\n return new Decimal(this.atomics, this.fractionalDigits);\n }\n /** Returns the greatest decimal <= this which has no fractional part (rounding down) */\n floor() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return this.clone();\n }\n else {\n return Decimal.fromAtomics(whole.mul(factor).toString(), this.fractionalDigits);\n }\n }\n /** Returns the smallest decimal >= this which has no fractional part (rounding up) */\n ceil() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return this.clone();\n }\n else {\n return Decimal.fromAtomics(whole.addn(1).mul(factor).toString(), this.fractionalDigits);\n }\n }\n toString() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return whole.toString();\n }\n else {\n const fullFractionalPart = fractional.toString().padStart(this.data.fractionalDigits, \"0\");\n const trimmedFractionalPart = fullFractionalPart.replace(/0+$/, \"\");\n return `${whole.toString()}.${trimmedFractionalPart}`;\n }\n }\n /**\n * Returns an approximation as a float type. Only use this if no\n * exact calculation is required.\n */\n toFloatApproximation() {\n const out = Number(this.toString());\n if (Number.isNaN(out))\n throw new Error(\"Conversion to number failed\");\n return out;\n }\n /**\n * a.plus(b) returns a+b.\n *\n * Both values need to have the same fractional digits.\n */\n plus(b) {\n if (this.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n const sum = this.data.atomics.add(new bn_js_1.default(b.atomics));\n return new Decimal(sum.toString(), this.fractionalDigits);\n }\n /**\n * a.minus(b) returns a-b.\n *\n * Both values need to have the same fractional digits.\n * The resulting difference needs to be non-negative.\n */\n minus(b) {\n if (this.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n const difference = this.data.atomics.sub(new bn_js_1.default(b.atomics));\n if (difference.ltn(0))\n throw new Error(\"Difference must not be negative\");\n return new Decimal(difference.toString(), this.fractionalDigits);\n }\n /**\n * a.multiply(b) returns a*b.\n *\n * We only allow multiplication by unsigned integers to avoid rounding errors.\n */\n multiply(b) {\n const product = this.data.atomics.mul(new bn_js_1.default(b.toString()));\n return new Decimal(product.toString(), this.fractionalDigits);\n }\n equals(b) {\n return Decimal.compare(this, b) === 0;\n }\n isLessThan(b) {\n return Decimal.compare(this, b) < 0;\n }\n isLessThanOrEqual(b) {\n return Decimal.compare(this, b) <= 0;\n }\n isGreaterThan(b) {\n return Decimal.compare(this, b) > 0;\n }\n isGreaterThanOrEqual(b) {\n return Decimal.compare(this, b) >= 0;\n }\n}\nexports.Decimal = Decimal;\n//# sourceMappingURL=decimal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uint64 = exports.Uint53 = exports.Uint32 = exports.Int53 = exports.Decimal = void 0;\nvar decimal_1 = require(\"./decimal\");\nObject.defineProperty(exports, \"Decimal\", { enumerable: true, get: function () { return decimal_1.Decimal; } });\nvar integers_1 = require(\"./integers\");\nObject.defineProperty(exports, \"Int53\", { enumerable: true, get: function () { return integers_1.Int53; } });\nObject.defineProperty(exports, \"Uint32\", { enumerable: true, get: function () { return integers_1.Uint32; } });\nObject.defineProperty(exports, \"Uint53\", { enumerable: true, get: function () { return integers_1.Uint53; } });\nObject.defineProperty(exports, \"Uint64\", { enumerable: true, get: function () { return integers_1.Uint64; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n/* eslint-disable no-bitwise */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uint64 = exports.Uint53 = exports.Int53 = exports.Uint32 = void 0;\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst uint64MaxValue = new bn_js_1.default(\"18446744073709551615\", 10, \"be\");\nclass Uint32 {\n /** @deprecated use Uint32.fromBytes */\n static fromBigEndianBytes(bytes) {\n return Uint32.fromBytes(bytes);\n }\n /**\n * Creates a Uint32 from a fixed length byte array.\n *\n * @param bytes a list of exactly 4 bytes\n * @param endianess defaults to big endian\n */\n static fromBytes(bytes, endianess = \"be\") {\n if (bytes.length !== 4) {\n throw new Error(\"Invalid input length. Expected 4 bytes.\");\n }\n for (let i = 0; i < bytes.length; ++i) {\n if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) {\n throw new Error(\"Invalid value in byte. Found: \" + bytes[i]);\n }\n }\n const beBytes = endianess === \"be\" ? bytes : Array.from(bytes).reverse();\n // Use multiplication instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint32(beBytes[0] * 2 ** 24 + beBytes[1] * 2 ** 16 + beBytes[2] * 2 ** 8 + beBytes[3]);\n }\n static fromString(str) {\n if (!str.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Uint32(Number.parseInt(str, 10));\n }\n constructor(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n if (input < 0 || input > 4294967295) {\n throw new Error(\"Input not in uint32 range: \" + input.toString());\n }\n this.data = input;\n }\n toBytesBigEndian() {\n // Use division instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint8Array([\n Math.floor(this.data / 2 ** 24) & 0xff,\n Math.floor(this.data / 2 ** 16) & 0xff,\n Math.floor(this.data / 2 ** 8) & 0xff,\n Math.floor(this.data / 2 ** 0) & 0xff,\n ]);\n }\n toBytesLittleEndian() {\n // Use division instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint8Array([\n Math.floor(this.data / 2 ** 0) & 0xff,\n Math.floor(this.data / 2 ** 8) & 0xff,\n Math.floor(this.data / 2 ** 16) & 0xff,\n Math.floor(this.data / 2 ** 24) & 0xff,\n ]);\n }\n toNumber() {\n return this.data;\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Uint32 = Uint32;\nclass Int53 {\n static fromString(str) {\n if (!str.match(/^-?[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Int53(Number.parseInt(str, 10));\n }\n constructor(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n if (input < Number.MIN_SAFE_INTEGER || input > Number.MAX_SAFE_INTEGER) {\n throw new Error(\"Input not in int53 range: \" + input.toString());\n }\n this.data = input;\n }\n toNumber() {\n return this.data;\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Int53 = Int53;\nclass Uint53 {\n static fromString(str) {\n const signed = Int53.fromString(str);\n return new Uint53(signed.toNumber());\n }\n constructor(input) {\n const signed = new Int53(input);\n if (signed.toNumber() < 0) {\n throw new Error(\"Input is negative\");\n }\n this.data = signed;\n }\n toNumber() {\n return this.data.toNumber();\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Uint53 = Uint53;\nclass Uint64 {\n /** @deprecated use Uint64.fromBytes */\n static fromBytesBigEndian(bytes) {\n return Uint64.fromBytes(bytes);\n }\n /**\n * Creates a Uint64 from a fixed length byte array.\n *\n * @param bytes a list of exactly 8 bytes\n * @param endianess defaults to big endian\n */\n static fromBytes(bytes, endianess = \"be\") {\n if (bytes.length !== 8) {\n throw new Error(\"Invalid input length. Expected 8 bytes.\");\n }\n for (let i = 0; i < bytes.length; ++i) {\n if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) {\n throw new Error(\"Invalid value in byte. Found: \" + bytes[i]);\n }\n }\n const beBytes = endianess === \"be\" ? Array.from(bytes) : Array.from(bytes).reverse();\n return new Uint64(new bn_js_1.default(beBytes));\n }\n static fromString(str) {\n if (!str.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Uint64(new bn_js_1.default(str, 10, \"be\"));\n }\n static fromNumber(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n let bigint;\n try {\n bigint = new bn_js_1.default(input);\n }\n catch {\n throw new Error(\"Input is not a safe integer\");\n }\n return new Uint64(bigint);\n }\n constructor(data) {\n if (data.isNeg()) {\n throw new Error(\"Input is negative\");\n }\n if (data.gt(uint64MaxValue)) {\n throw new Error(\"Input exceeds uint64 range\");\n }\n this.data = data;\n }\n toBytesBigEndian() {\n return Uint8Array.from(this.data.toArray(\"be\", 8));\n }\n toBytesLittleEndian() {\n return Uint8Array.from(this.data.toArray(\"le\", 8));\n }\n toString() {\n return this.data.toString(10);\n }\n toBigInt() {\n return BigInt(this.toString());\n }\n toNumber() {\n return this.data.toNumber();\n }\n}\nexports.Uint64 = Uint64;\n// Assign classes to unused variables in order to verify static interface conformance at compile time.\n// Workaround for https://github.com/microsoft/TypeScript/issues/33892\nconst _int53Class = Int53;\nconst _uint53Class = Uint53;\nconst _uint32Class = Uint32;\nconst _uint64Class = Uint64;\n//# sourceMappingURL=integers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.arrayContentEquals = arrayContentEquals;\nexports.arrayContentStartsWith = arrayContentStartsWith;\n/**\n * Compares the content of two arrays-like objects for equality.\n *\n * Equality is defined as having equal length and element values, where element equality means `===` returning `true`.\n *\n * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type.\n * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type.\n */\nfunction arrayContentEquals(a, b) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; ++i) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n}\n/**\n * Checks if `a` starts with the contents of `b`.\n *\n * This requires equality of the element values, where element equality means `===` returning `true`.\n *\n * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type.\n * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type.\n */\nfunction arrayContentStartsWith(a, b) {\n if (a.length < b.length)\n return false;\n for (let i = 0; i < b.length; ++i) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n}\n//# sourceMappingURL=arrays.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assert = assert;\nexports.assertDefined = assertDefined;\nexports.assertDefinedAndNotNull = assertDefinedAndNotNull;\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction assert(condition, msg) {\n if (!condition) {\n throw new Error(msg || \"condition is not truthy\");\n }\n}\nfunction assertDefined(value, msg) {\n if (value === undefined) {\n throw new Error(msg ?? \"value is undefined\");\n }\n}\nfunction assertDefinedAndNotNull(value, msg) {\n if (value === undefined || value === null) {\n throw new Error(msg ?? \"value is undefined or null\");\n }\n}\n//# sourceMappingURL=assert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isUint8Array = exports.isNonNullObject = exports.isDefined = exports.sleep = exports.assertDefinedAndNotNull = exports.assertDefined = exports.assert = exports.arrayContentStartsWith = exports.arrayContentEquals = void 0;\nvar arrays_1 = require(\"./arrays\");\nObject.defineProperty(exports, \"arrayContentEquals\", { enumerable: true, get: function () { return arrays_1.arrayContentEquals; } });\nObject.defineProperty(exports, \"arrayContentStartsWith\", { enumerable: true, get: function () { return arrays_1.arrayContentStartsWith; } });\nvar assert_1 = require(\"./assert\");\nObject.defineProperty(exports, \"assert\", { enumerable: true, get: function () { return assert_1.assert; } });\nObject.defineProperty(exports, \"assertDefined\", { enumerable: true, get: function () { return assert_1.assertDefined; } });\nObject.defineProperty(exports, \"assertDefinedAndNotNull\", { enumerable: true, get: function () { return assert_1.assertDefinedAndNotNull; } });\nvar sleep_1 = require(\"./sleep\");\nObject.defineProperty(exports, \"sleep\", { enumerable: true, get: function () { return sleep_1.sleep; } });\nvar typechecks_1 = require(\"./typechecks\");\nObject.defineProperty(exports, \"isDefined\", { enumerable: true, get: function () { return typechecks_1.isDefined; } });\nObject.defineProperty(exports, \"isNonNullObject\", { enumerable: true, get: function () { return typechecks_1.isNonNullObject; } });\nObject.defineProperty(exports, \"isUint8Array\", { enumerable: true, get: function () { return typechecks_1.isUint8Array; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sleep = sleep;\nasync function sleep(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n//# sourceMappingURL=sleep.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNonNullObject = isNonNullObject;\nexports.isUint8Array = isUint8Array;\nexports.isDefined = isDefined;\n/**\n * Checks if data is a non-null object (i.e. matches the TypeScript object type).\n *\n * Note: this returns true for arrays, which are objects in JavaScript\n * even though array and object are different types in JSON.\n *\n * @see https://www.typescriptlang.org/docs/handbook/basic-types.html#object\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isNonNullObject(data) {\n return typeof data === \"object\" && data !== null;\n}\n/**\n * Checks if data is an Uint8Array. Note: Buffer is treated as not a Uint8Array\n */\nfunction isUint8Array(data) {\n if (!isNonNullObject(data))\n return false;\n // Avoid instanceof check which is unreliable in some JS environments\n // https://medium.com/@simonwarta/limitations-of-the-instanceof-operator-f4bcdbe7a400\n // Use check that was discussed in https://github.com/crypto-browserify/pbkdf2/pull/81\n if (Object.prototype.toString.call(data) !== \"[object Uint8Array]\")\n return false;\n if (typeof Buffer !== \"undefined\" && typeof Buffer.isBuffer !== \"undefined\") {\n // Buffer.isBuffer is available at runtime\n if (Buffer.isBuffer(data))\n return false;\n }\n return true;\n}\n/**\n * Checks if input is not undefined in a TypeScript-friendly way.\n *\n * This is convenient to use in e.g. `Array.filter` as it will convert\n * the type of a `Array` to `Array`.\n */\nfunction isDefined(value) {\n return value !== undefined;\n}\n//# sourceMappingURL=typechecks.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.concat = concat;\nconst xstream_1 = require(\"xstream\");\n/**\n * An implementation of concat that buffers all source stream events\n *\n * Marble diagram:\n *\n * ```text\n * --1--2---3---4-|\n * -a--b-c--d-|\n * --------X---------Y---------Z-\n * concat\n * --1--2---3---4-abcdXY-------Z-\n * ```\n *\n * This is inspired by RxJS's concat as documented at http://rxmarbles.com/#concat and behaves\n * differently than xstream's concat as discussed in https://github.com/staltz/xstream/issues/170.\n *\n */\nfunction concat(...streams) {\n const subscriptions = new Array();\n const queues = new Array(); // one queue per stream\n const completedStreams = new Set();\n let activeStreamIndex = 0;\n function reset() {\n while (subscriptions.length > 0) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const subscription = subscriptions.shift();\n subscription.unsubscribe();\n }\n queues.length = 0;\n completedStreams.clear();\n activeStreamIndex = 0;\n }\n const producer = {\n start: (listener) => {\n streams.forEach((_) => queues.push([]));\n function emitAllQueuesEvents(streamIndex) {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const element = queues[streamIndex].shift();\n if (element === undefined) {\n return;\n }\n listener.next(element);\n }\n }\n function isDone() {\n return activeStreamIndex >= streams.length;\n }\n if (isDone()) {\n listener.complete();\n return;\n }\n streams.forEach((stream, index) => {\n subscriptions.push(stream.subscribe({\n next: (value) => {\n if (index === activeStreamIndex) {\n listener.next(value);\n }\n else {\n queues[index].push(value);\n }\n },\n complete: () => {\n completedStreams.add(index);\n while (completedStreams.has(activeStreamIndex)) {\n // this stream completed: emit all and move on\n emitAllQueuesEvents(activeStreamIndex);\n activeStreamIndex++;\n }\n if (isDone()) {\n listener.complete();\n }\n else {\n // now active stream can have some events queued but did not yet complete\n emitAllQueuesEvents(activeStreamIndex);\n }\n },\n error: (error) => {\n listener.error(error);\n reset();\n },\n }));\n });\n },\n stop: () => {\n reset();\n },\n };\n return xstream_1.Stream.create(producer);\n}\n//# sourceMappingURL=concat.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultValueProducer = void 0;\n// allows pre-producing values before anyone is listening\nclass DefaultValueProducer {\n get value() {\n return this.internalValue;\n }\n constructor(value, callbacks) {\n this.callbacks = callbacks;\n this.internalValue = value;\n }\n /**\n * Update the current value.\n *\n * If producer is active (i.e. someone is listening), this emits an event.\n * If not, just the current value is updated.\n */\n update(value) {\n this.internalValue = value;\n if (this.listener) {\n this.listener.next(value);\n }\n }\n /**\n * Produce an error\n */\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n error(error) {\n if (this.listener) {\n this.listener.error(error);\n }\n }\n /**\n * Called by the stream. Do not call this directly.\n */\n start(listener) {\n this.listener = listener;\n listener.next(this.internalValue);\n if (this.callbacks) {\n this.callbacks.onStarted();\n }\n }\n /**\n * Called by the stream. Do not call this directly.\n */\n stop() {\n if (this.callbacks) {\n this.callbacks.onStop();\n }\n this.listener = undefined;\n }\n}\nexports.DefaultValueProducer = DefaultValueProducer;\n//# sourceMappingURL=defaultvalueproducer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dropDuplicates = dropDuplicates;\n/**\n * Drops duplicate values in a stream.\n *\n * Marble diagram:\n *\n * ```text\n * -1-1-1-2-4-3-3-4--\n * dropDuplicates\n * -1-----2-4-3------\n * ```\n *\n * Each value must be uniquely identified by a string given by\n * valueToKey(value).\n *\n * Internally this maintains a set of keys that have been processed already,\n * i.e. memory consumption and Set lookup times should be considered when\n * using this function.\n */\nfunction dropDuplicates(valueToKey) {\n const operand = (instream) => {\n const emittedKeys = new Set();\n const deduplicatedStream = instream\n .filter((value) => !emittedKeys.has(valueToKey(value)))\n .debug((value) => emittedKeys.add(valueToKey(value)));\n return deduplicatedStream;\n };\n return operand;\n}\n//# sourceMappingURL=dropduplicates.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueAndUpdates = exports.toListPromise = exports.fromListPromise = exports.firstEvent = exports.dropDuplicates = exports.DefaultValueProducer = exports.concat = void 0;\nvar concat_1 = require(\"./concat\");\nObject.defineProperty(exports, \"concat\", { enumerable: true, get: function () { return concat_1.concat; } });\nvar defaultvalueproducer_1 = require(\"./defaultvalueproducer\");\nObject.defineProperty(exports, \"DefaultValueProducer\", { enumerable: true, get: function () { return defaultvalueproducer_1.DefaultValueProducer; } });\nvar dropduplicates_1 = require(\"./dropduplicates\");\nObject.defineProperty(exports, \"dropDuplicates\", { enumerable: true, get: function () { return dropduplicates_1.dropDuplicates; } });\nvar promise_1 = require(\"./promise\");\nObject.defineProperty(exports, \"firstEvent\", { enumerable: true, get: function () { return promise_1.firstEvent; } });\nObject.defineProperty(exports, \"fromListPromise\", { enumerable: true, get: function () { return promise_1.fromListPromise; } });\nObject.defineProperty(exports, \"toListPromise\", { enumerable: true, get: function () { return promise_1.toListPromise; } });\n__exportStar(require(\"./reducer\"), exports);\nvar valueandupdates_1 = require(\"./valueandupdates\");\nObject.defineProperty(exports, \"ValueAndUpdates\", { enumerable: true, get: function () { return valueandupdates_1.ValueAndUpdates; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromListPromise = fromListPromise;\nexports.toListPromise = toListPromise;\nexports.firstEvent = firstEvent;\nconst xstream_1 = require(\"xstream\");\n/**\n * Emits one event for each list element as soon as the promise resolves\n */\nfunction fromListPromise(promise) {\n const producer = {\n start: (listener) => {\n // the code in `start` runs as soon as anyone listens to the stream\n promise\n .then((iterable) => {\n for (const element of iterable) {\n listener.next(element);\n }\n listener.complete();\n })\n .catch((error) => listener.error(error));\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n stop: () => { },\n };\n return xstream_1.Stream.create(producer);\n}\n/**\n * Listens to stream and collects events. When `count` events are collected,\n * the promise resolves with an array of events.\n *\n * Rejects if stream completes before `count` events are collected.\n */\nasync function toListPromise(stream, count) {\n return new Promise((resolve, reject) => {\n if (count === 0) {\n resolve([]);\n return;\n }\n const events = new Array();\n // take() unsubscribes from source stream automatically\n stream.take(count).subscribe({\n next: (event) => {\n events.push(event);\n if (events.length === count) {\n resolve(events);\n }\n },\n complete: () => {\n reject(`Stream completed before all events could be collected. ` +\n `Collected ${events.length}, expected ${count}`);\n },\n error: (error) => reject(error),\n });\n });\n}\n/**\n * Listens to stream, collects one event and revolves.\n *\n * Rejects if stream completes before one event was fired.\n */\nasync function firstEvent(stream) {\n return (await toListPromise(stream, 1))[0];\n}\n//# sourceMappingURL=promise.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Reducer = void 0;\nexports.countStream = countStream;\nexports.asArray = asArray;\nexports.lastValue = lastValue;\n// Reducer takes a stream of events T and a ReducerFunc, that\n// materializes a state of type U.\nclass Reducer {\n constructor(stream, reducer, initState) {\n this.stream = stream;\n this.reducer = reducer;\n this.state = initState;\n this.completed = new Promise((resolve, reject) => {\n const subscription = this.stream.subscribe({\n next: (evt) => {\n this.state = this.reducer(this.state, evt);\n },\n complete: () => {\n resolve();\n // this must happen after resolve, to ensure stream.subscribe() has finished\n subscription.unsubscribe();\n },\n error: (err) => {\n reject(err);\n // the stream already closed on error, but unsubscribe to be safe\n subscription.unsubscribe();\n },\n });\n });\n }\n // value returns current materialized state\n value() {\n return this.state;\n }\n // finished resolves on completed stream, rejects on stream error\n async finished() {\n return this.completed;\n }\n}\nexports.Reducer = Reducer;\nfunction increment(sum, _) {\n return sum + 1;\n}\n// countStream returns a reducer that contains current count\n// of events on the stream\nfunction countStream(stream) {\n return new Reducer(stream, increment, 0);\n}\nfunction append(list, evt) {\n return [...list, evt];\n}\n// asArray maintains an array containing all events that have\n// occurred on the stream\nfunction asArray(stream) {\n return new Reducer(stream, append, []);\n}\nfunction last(_, event) {\n return event;\n}\n// lastValue returns the last value read from the stream, or undefined if no values sent\nfunction lastValue(stream) {\n return new Reducer(stream, last, undefined);\n}\n//# sourceMappingURL=reducer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueAndUpdates = void 0;\nconst xstream_1 = require(\"xstream\");\n/**\n * A read only wrapper around DefaultValueProducer that allows\n * to synchronously get the current value using the .value property\n * and listen to updates by suscribing to the .updates stream\n */\nclass ValueAndUpdates {\n get value() {\n return this.producer.value;\n }\n constructor(producer) {\n this.producer = producer;\n this.updates = xstream_1.MemoryStream.createWithMemory(this.producer);\n }\n /**\n * Resolves as soon as search value is found.\n *\n * @param search either a value or a function that must return true when found\n * @returns the value of the update that caused the search match\n */\n async waitFor(search) {\n const searchImplementation = typeof search === \"function\" ? search : (value) => value === search;\n return new Promise((resolve, reject) => {\n const subscription = this.updates.subscribe({\n next: (newValue) => {\n if (searchImplementation(newValue)) {\n resolve(newValue);\n // MemoryStream.subscribe() calls next with the last value.\n // Make async to ensure the subscription exists\n setTimeout(() => subscription.unsubscribe(), 0);\n }\n },\n complete: () => {\n subscription.unsubscribe();\n reject(\"Update stream completed without expected value\");\n },\n error: (error) => {\n reject(error);\n },\n });\n });\n }\n}\nexports.ValueAndUpdates = ValueAndUpdates;\n//# sourceMappingURL=valueandupdates.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.rawEd25519PubkeyToRawAddress = rawEd25519PubkeyToRawAddress;\nexports.rawSecp256k1PubkeyToRawAddress = rawSecp256k1PubkeyToRawAddress;\nexports.pubkeyToRawAddress = pubkeyToRawAddress;\nexports.pubkeyToAddress = pubkeyToAddress;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nfunction rawEd25519PubkeyToRawAddress(pubkeyData) {\n if (pubkeyData.length !== 32) {\n throw new Error(`Invalid Ed25519 pubkey length: ${pubkeyData.length}`);\n }\n return (0, crypto_1.sha256)(pubkeyData).slice(0, 20);\n}\nfunction rawSecp256k1PubkeyToRawAddress(pubkeyData) {\n if (pubkeyData.length !== 33) {\n throw new Error(`Invalid Secp256k1 pubkey length (compressed): ${pubkeyData.length}`);\n }\n return (0, crypto_1.ripemd160)((0, crypto_1.sha256)(pubkeyData));\n}\n/**\n * Returns Tendermint address as bytes.\n *\n * This is for addresses that are derived by the Tendermint keypair (typically Ed25519).\n * Sometimes those addresses are bech32-encoded and contain the term \"cons\" in the presix\n * (\"cosmosvalcons1...\").\n *\n * For secp256k1 this assumes we already have a compressed pubkey, which is the default in Cosmos.\n */\nfunction pubkeyToRawAddress(type, data) {\n switch (type) {\n case \"ed25519\":\n return rawEd25519PubkeyToRawAddress(data);\n case \"secp256k1\":\n return rawSecp256k1PubkeyToRawAddress(data);\n default:\n // Keep this case here to guard against new types being added but not handled\n throw new Error(`Pubkey type ${type} not supported`);\n }\n}\n/**\n * Returns Tendermint address in uppercase hex format.\n *\n * This is for addresses that are derived by the Tendermint keypair (typically Ed25519).\n * Sometimes those addresses are bech32-encoded and contain the term \"cons\" in the presix\n * (\"cosmosvalcons1...\").\n *\n * For secp256k1 this assumes we already have a compressed pubkey, which is the default in Cosmos.\n */\nfunction pubkeyToAddress(type, data) {\n return (0, encoding_1.toHex)(pubkeyToRawAddress(type, data)).toUpperCase();\n}\n//# sourceMappingURL=addresses.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Responses = exports.Params = void 0;\nvar requests_1 = require(\"./requests\");\nObject.defineProperty(exports, \"Params\", { enumerable: true, get: function () { return requests_1.Params; } });\nvar responses_1 = require(\"./responses\");\nObject.defineProperty(exports, \"Responses\", { enumerable: true, get: function () { return responses_1.Responses; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst inthelpers_1 = require(\"../../inthelpers\");\nconst jsonrpc_1 = require(\"../../jsonrpc\");\nconst encodings_1 = require(\"../encodings\");\nconst requests = __importStar(require(\"../requests\"));\nfunction encodeHeightParam(param) {\n return {\n height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.height),\n };\n}\nfunction encodeBlockchainRequestParams(param) {\n return {\n minHeight: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.minHeight),\n maxHeight: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.maxHeight),\n };\n}\nfunction encodeBlockSearchParams(params) {\n return {\n query: params.query,\n page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page),\n per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page),\n order_by: params.order_by,\n };\n}\nfunction encodeAbciQueryParams(params) {\n return {\n path: (0, encodings_1.assertNotEmpty)(params.path),\n data: (0, encoding_1.toHex)(params.data),\n height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.height),\n prove: params.prove,\n };\n}\nfunction encodeBroadcastTxParams(params) {\n return {\n tx: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.tx)),\n };\n}\nfunction encodeTxParams(params) {\n return {\n hash: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.hash)),\n prove: params.prove,\n };\n}\nfunction encodeTxSearchParams(params) {\n return {\n query: params.query,\n prove: params.prove,\n page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page),\n per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page),\n order_by: params.order_by,\n };\n}\nfunction encodeValidatorsParams(params) {\n return {\n height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.height),\n page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page),\n per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page),\n };\n}\nclass Params {\n static encodeAbciInfo(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeAbciQuery(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeAbciQueryParams(req.params));\n }\n static encodeBlock(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeBlockchain(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockchainRequestParams(req.params));\n }\n static encodeBlockResults(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeBlockSearch(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockSearchParams(req.params));\n }\n static encodeBroadcastTx(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBroadcastTxParams(req.params));\n }\n static encodeCommit(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeGenesis(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeHealth(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeNumUnconfirmedTxs(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeStatus(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeSubscribe(req) {\n const eventTag = { key: \"tm.event\", value: req.query.type };\n const query = requests.buildQuery({ tags: [eventTag], raw: req.query.raw });\n return (0, jsonrpc_1.createJsonRpcRequest)(\"subscribe\", { query: query });\n }\n static encodeTx(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxParams(req.params));\n }\n // TODO: encode params for query string???\n static encodeTxSearch(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxSearchParams(req.params));\n }\n static encodeValidators(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeValidatorsParams(req.params));\n }\n}\nexports.Params = Params;\n//# sourceMappingURL=requests.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Responses = void 0;\nexports.decodeEvent = decodeEvent;\nexports.decodeValidatorUpdate = decodeValidatorUpdate;\nexports.decodeCommit = decodeCommit;\nexports.decodeValidatorGenesis = decodeValidatorGenesis;\nexports.decodeValidatorInfo = decodeValidatorInfo;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst dates_1 = require(\"../../dates\");\nconst inthelpers_1 = require(\"../../inthelpers\");\nconst types_1 = require(\"../../types\");\nconst encodings_1 = require(\"../encodings\");\nconst hasher_1 = require(\"../hasher\");\nfunction decodeAbciInfo(data) {\n return {\n data: data.data,\n lastBlockHeight: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.last_block_height),\n lastBlockAppHash: (0, encodings_1.may)(encoding_1.fromBase64, data.last_block_app_hash),\n };\n}\nfunction decodeQueryProof(data) {\n return {\n ops: data.ops.map((op) => ({\n type: op.type,\n key: (0, encoding_1.fromBase64)(op.key),\n data: (0, encoding_1.fromBase64)(op.data),\n })),\n };\n}\nfunction decodeAbciQuery(data) {\n return {\n key: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(data.key ?? \"\")),\n value: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(data.value ?? \"\")),\n proof: (0, encodings_1.may)(decodeQueryProof, data.proofOps),\n height: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.height),\n code: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.code),\n codespace: (0, encodings_1.assertString)(data.codespace ?? \"\"),\n index: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.index),\n log: data.log,\n info: (0, encodings_1.assertString)(data.info ?? \"\"),\n };\n}\nfunction decodeEventAttribute(attribute) {\n return {\n key: (0, encodings_1.assertNotEmpty)(attribute.key),\n value: attribute.value ?? \"\",\n };\n}\nfunction decodeAttributes(attributes) {\n return (0, encodings_1.assertArray)(attributes).map(decodeEventAttribute);\n}\nfunction decodeEvent(event) {\n return {\n type: event.type,\n attributes: event.attributes ? decodeAttributes(event.attributes) : [],\n };\n}\nfunction decodeEvents(events) {\n return (0, encodings_1.assertArray)(events).map(decodeEvent);\n}\nfunction decodeTxData(data) {\n return {\n code: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNumber)(data.code ?? 0)),\n codespace: data.codespace,\n log: data.log,\n data: (0, encodings_1.may)(encoding_1.fromBase64, data.data),\n events: data.events ? decodeEvents(data.events) : [],\n gasWanted: (0, inthelpers_1.apiToBigInt)(data.gas_wanted ?? \"0\"),\n gasUsed: (0, inthelpers_1.apiToBigInt)(data.gas_used ?? \"0\"),\n };\n}\nfunction decodePubkey(data) {\n if (\"Sum\" in data) {\n // we don't need to check type because we're checking algorithm\n const [[algorithm, value]] = Object.entries(data.Sum.value);\n (0, utils_1.assert)(algorithm === \"ed25519\" || algorithm === \"secp256k1\", `unknown pubkey type: ${algorithm}`);\n return {\n algorithm,\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(value)),\n };\n }\n else {\n switch (data.type) {\n // go-amino special code\n case \"tendermint/PubKeyEd25519\":\n return {\n algorithm: \"ed25519\",\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)),\n };\n case \"tendermint/PubKeySecp256k1\":\n return {\n algorithm: \"secp256k1\",\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)),\n };\n default:\n throw new Error(`unknown pubkey type: ${data.type}`);\n }\n }\n}\n/**\n * Note: we do not parse block.time_iota_ms for now because of this CHANGELOG entry\n *\n * > Add time_iota_ms to block's consensus parameters (not exposed to the application)\n * https://github.com/tendermint/tendermint/blob/master/CHANGELOG.md#v0310\n */\nfunction decodeBlockParams(data) {\n return {\n maxBytes: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_bytes)),\n maxGas: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_gas)),\n };\n}\nfunction decodeEvidenceParams(data) {\n return {\n maxAgeNumBlocks: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_age_num_blocks)),\n maxAgeDuration: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_age_duration)),\n };\n}\nfunction decodeConsensusParams(data) {\n return {\n block: decodeBlockParams((0, encodings_1.assertObject)(data.block)),\n evidence: decodeEvidenceParams((0, encodings_1.assertObject)(data.evidence)),\n };\n}\nfunction decodeValidatorUpdate(data) {\n return {\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: (0, inthelpers_1.apiToBigInt)(data.power ?? \"0\"),\n };\n}\nfunction decodeBlockResults(data) {\n return {\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n results: (data.txs_results || []).map(decodeTxData),\n validatorUpdates: (data.validator_updates || []).map(decodeValidatorUpdate),\n consensusUpdates: (0, encodings_1.may)(decodeConsensusParams, data.consensus_param_updates),\n finalizeBlockEvents: decodeEvents(data.finalize_block_events || []),\n };\n}\nfunction decodeBlockId(data) {\n return {\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n parts: {\n total: (0, encodings_1.assertNotEmpty)(data.parts.total),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.parts.hash)),\n },\n };\n}\nfunction decodeBlockVersion(data) {\n return {\n block: (0, inthelpers_1.apiToSmallInt)(data.block),\n app: (0, inthelpers_1.apiToSmallInt)(data.app ?? 0),\n };\n}\nfunction decodeHeader(data) {\n return {\n version: decodeBlockVersion(data.version),\n chainId: (0, encodings_1.assertNotEmpty)(data.chain_id),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n time: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.time)),\n // When there is no last block ID (i.e. this block's height is 1), we get an empty structure like this:\n // { hash: '', parts: { total: 0, hash: '' } }\n lastBlockId: data.last_block_id.hash ? decodeBlockId(data.last_block_id) : null,\n lastCommitHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_commit_hash)),\n dataHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.data_hash)),\n validatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.validators_hash)),\n nextValidatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.next_validators_hash)),\n consensusHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.consensus_hash)),\n appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)),\n lastResultsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_results_hash)),\n evidenceHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.evidence_hash)),\n proposerAddress: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.proposer_address)),\n };\n}\nfunction decodeBlockMeta(data) {\n return {\n blockId: decodeBlockId(data.block_id),\n blockSize: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.block_size)),\n header: decodeHeader(data.header),\n numTxs: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.num_txs)),\n };\n}\nfunction decodeBlockchain(data) {\n return {\n lastHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.last_height)),\n blockMetas: (0, encodings_1.assertArray)(data.block_metas).map(decodeBlockMeta),\n };\n}\nfunction decodeBroadcastTxSync(data) {\n return {\n ...decodeTxData(data),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n };\n}\nfunction decodeBroadcastTxCommit(data) {\n const txResult = data.tx_result ? decodeTxData(data.tx_result) : undefined;\n return {\n height: (0, inthelpers_1.apiToSmallInt)(data.height),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n checkTx: decodeTxData((0, encodings_1.assertObject)(data.check_tx)),\n deliverTx: txResult,\n txResult: txResult,\n };\n}\nfunction decodeBlockIdFlag(blockIdFlag) {\n (0, utils_1.assert)(blockIdFlag in types_1.BlockIdFlag);\n return blockIdFlag;\n}\nfunction decodeCommitSignature(data) {\n return {\n blockIdFlag: decodeBlockIdFlag(data.block_id_flag),\n validatorAddress: data.validator_address ? (0, encoding_1.fromHex)(data.validator_address) : undefined,\n timestamp: data.timestamp ? (0, dates_1.fromRfc3339WithNanoseconds)(data.timestamp) : undefined,\n signature: data.signature ? (0, encoding_1.fromBase64)(data.signature) : undefined,\n };\n}\nfunction decodeCommit(data) {\n return {\n blockId: decodeBlockId((0, encodings_1.assertObject)(data.block_id)),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n round: (0, inthelpers_1.apiToSmallInt)(data.round),\n signatures: data.signatures ? (0, encodings_1.assertArray)(data.signatures).map(decodeCommitSignature) : [],\n };\n}\nfunction decodeCommitResponse(data) {\n return {\n canonical: (0, encodings_1.assertBoolean)(data.canonical),\n header: decodeHeader(data.signed_header.header),\n commit: decodeCommit(data.signed_header.commit),\n };\n}\nfunction decodeValidatorGenesis(data) {\n return {\n address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)),\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: (0, inthelpers_1.apiToBigInt)((0, encodings_1.assertNotEmpty)(data.power)),\n };\n}\nfunction decodeGenesis(data) {\n return {\n genesisTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.genesis_time)),\n chainId: (0, encodings_1.assertNotEmpty)(data.chain_id),\n consensusParams: decodeConsensusParams(data.consensus_params),\n validators: data.validators ? (0, encodings_1.assertArray)(data.validators).map(decodeValidatorGenesis) : [],\n appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)), // empty string in kvstore app\n appState: data.app_state,\n };\n}\nfunction decodeValidatorInfo(data) {\n return {\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: (0, inthelpers_1.apiToBigInt)((0, encodings_1.assertNotEmpty)(data.voting_power)),\n address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)),\n proposerPriority: data.proposer_priority ? (0, inthelpers_1.apiToSmallInt)(data.proposer_priority) : undefined,\n };\n}\nfunction decodeNodeInfo(data) {\n return {\n id: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.id)),\n listenAddr: (0, encodings_1.assertNotEmpty)(data.listen_addr),\n network: (0, encodings_1.assertNotEmpty)(data.network),\n version: (0, encodings_1.assertString)(data.version), // Can be empty (https://github.com/cosmos/cosmos-sdk/issues/7963)\n channels: (0, encodings_1.assertString)(data.channels), // can be empty\n moniker: (0, encodings_1.assertNotEmpty)(data.moniker),\n other: (0, encodings_1.dictionaryToStringMap)(data.other),\n protocolVersion: {\n app: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.app)),\n block: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.block)),\n p2p: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.p2p)),\n },\n };\n}\nfunction decodeSyncInfo(data) {\n const earliestBlockHeight = data.earliest_block_height\n ? (0, inthelpers_1.apiToSmallInt)(data.earliest_block_height)\n : undefined;\n const earliestBlockTime = data.earliest_block_time\n ? (0, dates_1.fromRfc3339WithNanoseconds)(data.earliest_block_time)\n : undefined;\n return {\n earliestAppHash: data.earliest_app_hash ? (0, encoding_1.fromHex)(data.earliest_app_hash) : undefined,\n earliestBlockHash: data.earliest_block_hash ? (0, encoding_1.fromHex)(data.earliest_block_hash) : undefined,\n earliestBlockHeight: earliestBlockHeight || undefined,\n earliestBlockTime: earliestBlockTime?.getTime() ? earliestBlockTime : undefined,\n latestBlockHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_block_hash)),\n latestAppHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_app_hash)),\n latestBlockTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.latest_block_time)),\n latestBlockHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.latest_block_height)),\n catchingUp: (0, encodings_1.assertBoolean)(data.catching_up),\n };\n}\nfunction decodeStatus(data) {\n return {\n nodeInfo: decodeNodeInfo(data.node_info),\n syncInfo: decodeSyncInfo(data.sync_info),\n validatorInfo: decodeValidatorInfo(data.validator_info),\n };\n}\nfunction decodeTxProof(data) {\n return {\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.data)),\n rootHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.root_hash)),\n proof: {\n total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.proof.total)),\n index: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.proof.index)),\n leafHash: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.proof.leaf_hash)),\n aunts: (0, encodings_1.assertArray)(data.proof.aunts).map(encoding_1.fromBase64),\n },\n };\n}\nfunction decodeTxResponse(data) {\n return {\n tx: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx)),\n result: decodeTxData((0, encodings_1.assertObject)(data.tx_result)),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n index: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNumber)(data.index)),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n proof: (0, encodings_1.may)(decodeTxProof, data.proof),\n };\n}\nfunction decodeTxSearch(data) {\n return {\n totalCount: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_count)),\n txs: (0, encodings_1.assertArray)(data.txs).map(decodeTxResponse),\n };\n}\nfunction decodeTxEvent(data) {\n const tx = (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx));\n return {\n tx: tx,\n hash: (0, hasher_1.hashTx)(tx),\n result: decodeTxData(data.result),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n };\n}\nfunction decodeValidators(data) {\n return {\n blockHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.block_height)),\n validators: (0, encodings_1.assertArray)(data.validators).map(decodeValidatorInfo),\n count: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.count)),\n total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total)),\n };\n}\nfunction decodeBlock(data) {\n return {\n header: decodeHeader((0, encodings_1.assertObject)(data.header)),\n // For the block at height 1, last commit is not set. This is represented in an empty object like this:\n // { height: '0', round: 0, block_id: { hash: '', parts: [Object] }, signatures: [] }\n lastCommit: data.last_commit.block_id.hash ? decodeCommit((0, encodings_1.assertObject)(data.last_commit)) : null,\n txs: data.data.txs ? (0, encodings_1.assertArray)(data.data.txs).map(encoding_1.fromBase64) : [],\n // Lift up .evidence.evidence to just .evidence\n // See https://github.com/tendermint/tendermint/issues/7697\n evidence: data.evidence?.evidence ?? [],\n };\n}\nfunction decodeBlockResponse(data) {\n return {\n blockId: decodeBlockId(data.block_id),\n block: decodeBlock(data.block),\n };\n}\nfunction decodeBlockSearch(data) {\n return {\n totalCount: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_count)),\n blocks: (0, encodings_1.assertArray)(data.blocks).map(decodeBlockResponse),\n };\n}\nfunction decodeNumUnconfirmedTxs(data) {\n return {\n total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total)),\n totalBytes: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_bytes)),\n };\n}\nclass Responses {\n static decodeAbciInfo(response) {\n return decodeAbciInfo((0, encodings_1.assertObject)(response.result.response));\n }\n static decodeAbciQuery(response) {\n return decodeAbciQuery((0, encodings_1.assertObject)(response.result.response));\n }\n static decodeBlock(response) {\n return decodeBlockResponse(response.result);\n }\n static decodeBlockResults(response) {\n return decodeBlockResults(response.result);\n }\n static decodeBlockSearch(response) {\n return decodeBlockSearch(response.result);\n }\n static decodeBlockchain(response) {\n return decodeBlockchain(response.result);\n }\n static decodeBroadcastTxSync(response) {\n return decodeBroadcastTxSync(response.result);\n }\n static decodeBroadcastTxAsync(response) {\n return Responses.decodeBroadcastTxSync(response);\n }\n static decodeBroadcastTxCommit(response) {\n return decodeBroadcastTxCommit(response.result);\n }\n static decodeCommit(response) {\n return decodeCommitResponse(response.result);\n }\n static decodeGenesis(response) {\n return decodeGenesis((0, encodings_1.assertObject)(response.result.genesis));\n }\n static decodeHealth() {\n return null;\n }\n static decodeNumUnconfirmedTxs(response) {\n return decodeNumUnconfirmedTxs(response.result);\n }\n static decodeStatus(response) {\n return decodeStatus(response.result);\n }\n static decodeNewBlockEvent(event) {\n return decodeBlock(event.data.value.block);\n }\n static decodeNewBlockHeaderEvent(event) {\n return decodeHeader(event.data.value.header);\n }\n static decodeTxEvent(event) {\n return decodeTxEvent(event.data.value.TxResult);\n }\n static decodeTx(response) {\n return decodeTxResponse(response.result);\n }\n static decodeTxSearch(response) {\n return decodeTxSearch(response.result);\n }\n static decodeValidators(response) {\n return decodeValidators(response.result);\n }\n}\nexports.Responses = Responses;\n//# sourceMappingURL=responses.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Comet38Client = void 0;\nconst jsonrpc_1 = require(\"../jsonrpc\");\nconst rpcclients_1 = require(\"../rpcclients\");\nconst adaptor_1 = require(\"./adaptor\");\nconst requests = __importStar(require(\"./requests\"));\n/**\n * A client for the CometBFT 0.38 and 1.x RPC API\n */\nclass Comet38Client {\n /**\n * Creates a new Tendermint client for the given endpoint.\n *\n * Uses HTTP when the URL schema is http or https. Uses WebSockets otherwise.\n */\n static async connect(endpoint) {\n let rpcClient;\n if (typeof endpoint === \"object\") {\n rpcClient = new rpcclients_1.HttpClient(endpoint);\n }\n else {\n const useHttp = endpoint.startsWith(\"http://\") || endpoint.startsWith(\"https://\");\n rpcClient = useHttp ? new rpcclients_1.HttpClient(endpoint) : new rpcclients_1.WebsocketClient(endpoint);\n }\n // For some very strange reason I don't understand, tests start to fail on some systems\n // (our CI) when skipping the status call before doing other queries. Sleeping a little\n // while did not help. Thus we query the version as a way to say \"hi\" to the backend,\n // even in cases where we don't use the result.\n const _version = await this.detectVersion(rpcClient);\n return Comet38Client.create(rpcClient);\n }\n /**\n * Creates a new Tendermint client given an RPC client.\n */\n static async create(rpcClient) {\n return new Comet38Client(rpcClient);\n }\n static async detectVersion(client) {\n const req = (0, jsonrpc_1.createJsonRpcRequest)(requests.Method.Status);\n const response = await client.execute(req);\n const result = response.result;\n if (!result || !result.node_info) {\n throw new Error(\"Unrecognized format for status response\");\n }\n const version = result.node_info.version;\n if (typeof version !== \"string\") {\n throw new Error(\"Unrecognized version format: must be string\");\n }\n return version;\n }\n /**\n * Use `Tendermint37Client.connect` or `Tendermint37Client.create` to create an instance.\n */\n constructor(client) {\n this.client = client;\n }\n disconnect() {\n this.client.disconnect();\n }\n async abciInfo() {\n const query = { method: requests.Method.AbciInfo };\n return this.doCall(query, adaptor_1.Params.encodeAbciInfo, adaptor_1.Responses.decodeAbciInfo);\n }\n async abciQuery(params) {\n const query = { params: params, method: requests.Method.AbciQuery };\n return this.doCall(query, adaptor_1.Params.encodeAbciQuery, adaptor_1.Responses.decodeAbciQuery);\n }\n async block(height) {\n const query = { method: requests.Method.Block, params: { height: height } };\n return this.doCall(query, adaptor_1.Params.encodeBlock, adaptor_1.Responses.decodeBlock);\n }\n async blockResults(height) {\n const query = {\n method: requests.Method.BlockResults,\n params: { height: height },\n };\n return this.doCall(query, adaptor_1.Params.encodeBlockResults, adaptor_1.Responses.decodeBlockResults);\n }\n /**\n * Search for events that are in a block.\n *\n * NOTE\n * This method will error on any node that is running a Tendermint version lower than 0.34.9.\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/block_search\n */\n async blockSearch(params) {\n const query = { params: params, method: requests.Method.BlockSearch };\n const resp = await this.doCall(query, adaptor_1.Params.encodeBlockSearch, adaptor_1.Responses.decodeBlockSearch);\n return {\n ...resp,\n // make sure we sort by height, as tendermint may be sorting by string value of the height\n blocks: [...resp.blocks].sort((a, b) => a.block.header.height - b.block.header.height),\n };\n }\n // this should paginate through all blockSearch options to ensure it returns all results.\n // starts with page 1 or whatever was provided (eg. to start on page 7)\n //\n // NOTE\n // This method will error on any node that is running a Tendermint version lower than 0.34.9.\n async blockSearchAll(params) {\n let page = params.page || 1;\n const blocks = [];\n let done = false;\n while (!done) {\n const resp = await this.blockSearch({ ...params, page: page });\n blocks.push(...resp.blocks);\n if (blocks.length < resp.totalCount) {\n page++;\n }\n else {\n done = true;\n }\n }\n // make sure we sort by height, as tendermint may be sorting by string value of the height\n // and the earlier items may be in a higher page than the later items\n blocks.sort((a, b) => a.block.header.height - b.block.header.height);\n return {\n totalCount: blocks.length,\n blocks: blocks,\n };\n }\n /**\n * Queries block headers filtered by minHeight <= height <= maxHeight.\n *\n * @param minHeight The minimum height to be included in the result. Defaults to 0.\n * @param maxHeight The maximum height to be included in the result. Defaults to infinity.\n */\n async blockchain(minHeight, maxHeight) {\n const query = {\n method: requests.Method.Blockchain,\n params: {\n minHeight: minHeight,\n maxHeight: maxHeight,\n },\n };\n return this.doCall(query, adaptor_1.Params.encodeBlockchain, adaptor_1.Responses.decodeBlockchain);\n }\n /**\n * Broadcast transaction to mempool and wait for response\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_sync\n */\n async broadcastTxSync(params) {\n const query = { params: params, method: requests.Method.BroadcastTxSync };\n return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxSync);\n }\n /**\n * Broadcast transaction to mempool and do not wait for result\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_async\n */\n async broadcastTxAsync(params) {\n const query = { params: params, method: requests.Method.BroadcastTxAsync };\n return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxAsync);\n }\n /**\n * Broadcast transaction to mempool and wait for block\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_commit\n */\n async broadcastTxCommit(params) {\n const query = { params: params, method: requests.Method.BroadcastTxCommit };\n return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxCommit);\n }\n async commit(height) {\n const query = { method: requests.Method.Commit, params: { height: height } };\n return this.doCall(query, adaptor_1.Params.encodeCommit, adaptor_1.Responses.decodeCommit);\n }\n async genesis() {\n const query = { method: requests.Method.Genesis };\n return this.doCall(query, adaptor_1.Params.encodeGenesis, adaptor_1.Responses.decodeGenesis);\n }\n async health() {\n const query = { method: requests.Method.Health };\n return this.doCall(query, adaptor_1.Params.encodeHealth, adaptor_1.Responses.decodeHealth);\n }\n async numUnconfirmedTxs() {\n const query = { method: requests.Method.NumUnconfirmedTxs };\n return this.doCall(query, adaptor_1.Params.encodeNumUnconfirmedTxs, adaptor_1.Responses.decodeNumUnconfirmedTxs);\n }\n async status() {\n const query = { method: requests.Method.Status };\n return this.doCall(query, adaptor_1.Params.encodeStatus, adaptor_1.Responses.decodeStatus);\n }\n subscribeNewBlock() {\n const request = {\n method: requests.Method.Subscribe,\n query: { type: requests.SubscriptionEventType.NewBlock },\n };\n return this.subscribe(request, adaptor_1.Responses.decodeNewBlockEvent);\n }\n subscribeNewBlockHeader() {\n const request = {\n method: requests.Method.Subscribe,\n query: { type: requests.SubscriptionEventType.NewBlockHeader },\n };\n return this.subscribe(request, adaptor_1.Responses.decodeNewBlockHeaderEvent);\n }\n subscribeTx(query) {\n const request = {\n method: requests.Method.Subscribe,\n query: {\n type: requests.SubscriptionEventType.Tx,\n raw: query,\n },\n };\n return this.subscribe(request, adaptor_1.Responses.decodeTxEvent);\n }\n /**\n * Get a single transaction by hash\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/tx\n */\n async tx(params) {\n const query = { params: params, method: requests.Method.Tx };\n return this.doCall(query, adaptor_1.Params.encodeTx, adaptor_1.Responses.decodeTx);\n }\n /**\n * Search for transactions that are in a block\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/tx_search\n */\n async txSearch(params) {\n const query = { params: params, method: requests.Method.TxSearch };\n return this.doCall(query, adaptor_1.Params.encodeTxSearch, adaptor_1.Responses.decodeTxSearch);\n }\n // this should paginate through all txSearch options to ensure it returns all results.\n // starts with page 1 or whatever was provided (eg. to start on page 7)\n async txSearchAll(params) {\n let page = params.page || 1;\n const txs = [];\n let done = false;\n while (!done) {\n const resp = await this.txSearch({ ...params, page: page });\n txs.push(...resp.txs);\n if (txs.length < resp.totalCount) {\n page++;\n }\n else {\n done = true;\n }\n }\n return {\n totalCount: txs.length,\n txs: txs,\n };\n }\n async validators(params) {\n const query = {\n method: requests.Method.Validators,\n params: params,\n };\n return this.doCall(query, adaptor_1.Params.encodeValidators, adaptor_1.Responses.decodeValidators);\n }\n async validatorsAll(height) {\n const validators = [];\n let page = 1;\n let done = false;\n let blockHeight = height;\n while (!done) {\n const response = await this.validators({\n per_page: 50,\n height: blockHeight,\n page: page,\n });\n validators.push(...response.validators);\n blockHeight = blockHeight || response.blockHeight;\n if (validators.length < response.total) {\n page++;\n }\n else {\n done = true;\n }\n }\n return {\n // NOTE: Default value is for type safety but this should always be set\n blockHeight: blockHeight ?? 0,\n count: validators.length,\n total: validators.length,\n validators: validators,\n };\n }\n // doCall is a helper to handle the encode/call/decode logic\n async doCall(request, encode, decode) {\n const req = encode(request);\n const result = await this.client.execute(req);\n return decode(result);\n }\n subscribe(request, decode) {\n if (!(0, rpcclients_1.instanceOfRpcStreamingClient)(this.client)) {\n throw new Error(\"This RPC client type cannot subscribe to events\");\n }\n const req = adaptor_1.Params.encodeSubscribe(request);\n const eventStream = this.client.listen(req);\n return eventStream.map((event) => {\n return decode(event);\n });\n }\n}\nexports.Comet38Client = Comet38Client;\n//# sourceMappingURL=comet38client.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assertSet = assertSet;\nexports.assertBoolean = assertBoolean;\nexports.assertString = assertString;\nexports.assertNumber = assertNumber;\nexports.assertArray = assertArray;\nexports.assertObject = assertObject;\nexports.assertNotEmpty = assertNotEmpty;\nexports.may = may;\nexports.dictionaryToStringMap = dictionaryToStringMap;\nexports.encodeString = encodeString;\nexports.encodeUvarint = encodeUvarint;\nexports.encodeTime = encodeTime;\nexports.encodeBytes = encodeBytes;\nexports.encodeVersion = encodeVersion;\nexports.encodeBlockId = encodeBlockId;\nconst encoding_1 = require(\"@cosmjs/encoding\");\n/**\n * A runtime checker that ensures a given value is set (i.e. not undefined or null)\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n */\nfunction assertSet(value) {\n if (value === undefined) {\n throw new Error(\"Value must not be undefined\");\n }\n if (value === null) {\n throw new Error(\"Value must not be null\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is a boolean\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertBoolean(value) {\n assertSet(value);\n if (typeof value !== \"boolean\") {\n throw new Error(\"Value must be a boolean\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is a string.\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertString(value) {\n assertSet(value);\n if (typeof value !== \"string\") {\n throw new Error(\"Value must be a string\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is a number\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertNumber(value) {\n assertSet(value);\n if (typeof value !== \"number\") {\n throw new Error(\"Value must be a number\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is an array\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertArray(value) {\n assertSet(value);\n if (!Array.isArray(value)) {\n throw new Error(\"Value must be a an array\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is an object in the sense of JSON\n * (an unordered collection of key–value pairs where the keys are strings)\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertObject(value) {\n assertSet(value);\n if (typeof value !== \"object\") {\n throw new Error(\"Value must be an object\");\n }\n // Exclude special kind of objects like Array, Date or Uint8Array\n // Object.prototype.toString() returns a specified value:\n // http://www.ecma-international.org/ecma-262/7.0/index.html#sec-object.prototype.tostring\n if (Object.prototype.toString.call(value) !== \"[object Object]\") {\n throw new Error(\"Value must be a simple object\");\n }\n return value;\n}\n/**\n * Throws an error if value matches the empty value for the\n * given type (array/string of length 0, number of value 0, ...)\n *\n * Otherwise returns the value.\n *\n * This implies assertSet\n */\nfunction assertNotEmpty(value) {\n assertSet(value);\n if (typeof value === \"number\" && value === 0) {\n throw new Error(\"must provide a non-zero value\");\n }\n else if (value.length === 0) {\n throw new Error(\"must provide a non-empty value\");\n }\n return value;\n}\n// may will run the transform if value is defined, otherwise returns undefined\nfunction may(transform, value) {\n return value === undefined || value === null ? undefined : transform(value);\n}\nfunction dictionaryToStringMap(obj) {\n const out = new Map();\n for (const key of Object.keys(obj)) {\n const value = obj[key];\n if (typeof value !== \"string\") {\n throw new Error(\"Found dictionary value of type other than string\");\n }\n out.set(key, value);\n }\n return out;\n}\n// Encodings needed for hashing block headers\n// Several of these functions are inspired by https://github.com/nomic-io/js-tendermint/blob/tendermint-0.30/src/\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L193-L195\nfunction encodeString(s) {\n const utf8 = (0, encoding_1.toUtf8)(s);\n return Uint8Array.from([utf8.length, ...utf8]);\n}\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L79-L87\nfunction encodeUvarint(n) {\n return n >= 0x80\n ? // eslint-disable-next-line no-bitwise\n Uint8Array.from([(n & 0xff) | 0x80, ...encodeUvarint(n >> 7)])\n : // eslint-disable-next-line no-bitwise\n Uint8Array.from([n & 0xff]);\n}\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L134-L178\nfunction encodeTime(time) {\n const milliseconds = time.getTime();\n const seconds = Math.floor(milliseconds / 1000);\n const secondsArray = seconds ? [0x08, ...encodeUvarint(seconds)] : new Uint8Array();\n const nanoseconds = (time.nanoseconds || 0) + (milliseconds % 1000) * 1e6;\n const nanosecondsArray = nanoseconds ? [0x10, ...encodeUvarint(nanoseconds)] : new Uint8Array();\n return Uint8Array.from([...secondsArray, ...nanosecondsArray]);\n}\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L180-L187\nfunction encodeBytes(bytes) {\n // Since we're only dealing with short byte arrays we don't need a full VarBuffer implementation yet\n if (bytes.length >= 0x80)\n throw new Error(\"Not implemented for byte arrays of length 128 or more\");\n return bytes.length ? Uint8Array.from([bytes.length, ...bytes]) : new Uint8Array();\n}\nfunction encodeVersion(version) {\n const blockArray = version.block\n ? Uint8Array.from([0x08, ...encodeUvarint(version.block)])\n : new Uint8Array();\n const appArray = version.app ? Uint8Array.from([0x10, ...encodeUvarint(version.app)]) : new Uint8Array();\n return Uint8Array.from([...blockArray, ...appArray]);\n}\nfunction encodeBlockId(blockId) {\n return Uint8Array.from([\n 0x0a,\n blockId.hash.length,\n ...blockId.hash,\n 0x12,\n blockId.parts.hash.length + 4,\n 0x08,\n blockId.parts.total,\n 0x12,\n blockId.parts.hash.length,\n ...blockId.parts.hash,\n ]);\n}\n//# sourceMappingURL=encodings.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hashTx = hashTx;\nexports.hashBlock = hashBlock;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encodings_1 = require(\"./encodings\");\n// hash is sha256\n// https://github.com/tendermint/tendermint/blob/master/UPGRADING.md#v0260\nfunction hashTx(tx) {\n return (0, crypto_1.sha256)(tx);\n}\nfunction getSplitPoint(n) {\n if (n < 1)\n throw new Error(\"Cannot split an empty tree\");\n const largestPowerOf2 = 2 ** Math.floor(Math.log2(n));\n return largestPowerOf2 < n ? largestPowerOf2 : largestPowerOf2 / 2;\n}\nfunction hashLeaf(leaf) {\n const hash = new crypto_1.Sha256(Uint8Array.from([0]));\n hash.update(leaf);\n return hash.digest();\n}\nfunction hashInner(left, right) {\n const hash = new crypto_1.Sha256(Uint8Array.from([1]));\n hash.update(left);\n hash.update(right);\n return hash.digest();\n}\n// See https://github.com/tendermint/tendermint/blob/v0.31.8/docs/spec/blockchain/encoding.md#merkleroot\n// Note: the hashes input may not actually be hashes, especially before a recursive call\nfunction hashTree(hashes) {\n switch (hashes.length) {\n case 0:\n throw new Error(\"Cannot hash empty tree\");\n case 1:\n return hashLeaf(hashes[0]);\n default: {\n const slicePoint = getSplitPoint(hashes.length);\n const left = hashTree(hashes.slice(0, slicePoint));\n const right = hashTree(hashes.slice(slicePoint));\n return hashInner(left, right);\n }\n }\n}\nfunction hashBlock(header) {\n if (!header.lastBlockId) {\n throw new Error(\"Hashing a block header with no last block ID (i.e. header at height 1) is not supported. If you need this, contributions are welcome. Please add documentation and test vectors for this case.\");\n }\n const encodedFields = [\n (0, encodings_1.encodeVersion)(header.version),\n (0, encodings_1.encodeString)(header.chainId),\n (0, encodings_1.encodeUvarint)(header.height),\n (0, encodings_1.encodeTime)(header.time),\n (0, encodings_1.encodeBlockId)(header.lastBlockId),\n (0, encodings_1.encodeBytes)(header.lastCommitHash),\n (0, encodings_1.encodeBytes)(header.dataHash),\n (0, encodings_1.encodeBytes)(header.validatorsHash),\n (0, encodings_1.encodeBytes)(header.nextValidatorsHash),\n (0, encodings_1.encodeBytes)(header.consensusHash),\n (0, encodings_1.encodeBytes)(header.appHash),\n (0, encodings_1.encodeBytes)(header.lastResultsHash),\n (0, encodings_1.encodeBytes)(header.evidenceHash),\n (0, encodings_1.encodeBytes)(header.proposerAddress),\n ];\n return hashTree(encodedFields);\n}\n//# sourceMappingURL=hasher.js.map","\"use strict\";\n// Note: all exports in this module are publicly available via\n// `import { comet38 } from \"@cosmjs/tendermint-rpc\"`\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VoteType = exports.broadcastTxSyncSuccess = exports.broadcastTxCommitSuccess = exports.SubscriptionEventType = exports.Method = exports.Comet38Client = void 0;\nvar comet38client_1 = require(\"./comet38client\");\nObject.defineProperty(exports, \"Comet38Client\", { enumerable: true, get: function () { return comet38client_1.Comet38Client; } });\nvar requests_1 = require(\"./requests\");\nObject.defineProperty(exports, \"Method\", { enumerable: true, get: function () { return requests_1.Method; } });\nObject.defineProperty(exports, \"SubscriptionEventType\", { enumerable: true, get: function () { return requests_1.SubscriptionEventType; } });\nvar responses_1 = require(\"./responses\");\nObject.defineProperty(exports, \"broadcastTxCommitSuccess\", { enumerable: true, get: function () { return responses_1.broadcastTxCommitSuccess; } });\nObject.defineProperty(exports, \"broadcastTxSyncSuccess\", { enumerable: true, get: function () { return responses_1.broadcastTxSyncSuccess; } });\nObject.defineProperty(exports, \"VoteType\", { enumerable: true, get: function () { return responses_1.VoteType; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/naming-convention */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SubscriptionEventType = exports.Method = void 0;\nexports.buildQuery = buildQuery;\n/**\n * RPC methods as documented in https://docs.tendermint.com/master/rpc/\n *\n * Enum raw value must match the spelling in the \"shell\" example call (snake_case)\n */\nvar Method;\n(function (Method) {\n Method[\"AbciInfo\"] = \"abci_info\";\n Method[\"AbciQuery\"] = \"abci_query\";\n Method[\"Block\"] = \"block\";\n /** Get block headers for minHeight <= height <= maxHeight. */\n Method[\"Blockchain\"] = \"blockchain\";\n Method[\"BlockResults\"] = \"block_results\";\n Method[\"BlockSearch\"] = \"block_search\";\n Method[\"BroadcastTxAsync\"] = \"broadcast_tx_async\";\n Method[\"BroadcastTxSync\"] = \"broadcast_tx_sync\";\n Method[\"BroadcastTxCommit\"] = \"broadcast_tx_commit\";\n Method[\"Commit\"] = \"commit\";\n Method[\"Genesis\"] = \"genesis\";\n Method[\"Health\"] = \"health\";\n Method[\"NumUnconfirmedTxs\"] = \"num_unconfirmed_txs\";\n Method[\"Status\"] = \"status\";\n Method[\"Subscribe\"] = \"subscribe\";\n Method[\"Tx\"] = \"tx\";\n Method[\"TxSearch\"] = \"tx_search\";\n Method[\"Validators\"] = \"validators\";\n Method[\"Unsubscribe\"] = \"unsubscribe\";\n})(Method || (exports.Method = Method = {}));\n/**\n * Raw values must match the tendermint event name\n *\n * @see https://godoc.org/github.com/tendermint/tendermint/types#pkg-constants\n */\nvar SubscriptionEventType;\n(function (SubscriptionEventType) {\n SubscriptionEventType[\"NewBlock\"] = \"NewBlock\";\n SubscriptionEventType[\"NewBlockHeader\"] = \"NewBlockHeader\";\n SubscriptionEventType[\"Tx\"] = \"Tx\";\n})(SubscriptionEventType || (exports.SubscriptionEventType = SubscriptionEventType = {}));\nfunction buildQuery(components) {\n const tags = components.tags ? components.tags : [];\n const tagComponents = tags.map((tag) => `${tag.key}='${tag.value}'`);\n const rawComponents = components.raw ? [components.raw] : [];\n return [...tagComponents, ...rawComponents].join(\" AND \");\n}\n//# sourceMappingURL=requests.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VoteType = void 0;\nexports.broadcastTxSyncSuccess = broadcastTxSyncSuccess;\nexports.broadcastTxCommitSuccess = broadcastTxCommitSuccess;\n/**\n * Returns true iff transaction made it successfully into the transaction pool\n */\nfunction broadcastTxSyncSuccess(res) {\n // code must be 0 on success\n return res.code === 0;\n}\n/**\n * Returns true iff transaction made it successfully into a block\n * (i.e. success in `check_tx` and `deliver_tx` field)\n */\nfunction broadcastTxCommitSuccess(response) {\n // code must be 0 on success\n // deliverTx may be present but empty on failure\n return response.checkTx.code === 0 && !!response.deliverTx && response.deliverTx.code === 0;\n}\n/**\n * raw values from https://github.com/tendermint/tendermint/blob/dfa9a9a30a666132425b29454e90a472aa579a48/types/vote.go#L44\n */\nvar VoteType;\n(function (VoteType) {\n VoteType[VoteType[\"PreVote\"] = 1] = \"PreVote\";\n VoteType[VoteType[\"PreCommit\"] = 2] = \"PreCommit\";\n})(VoteType || (exports.VoteType = VoteType = {}));\n//# sourceMappingURL=responses.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DateTime = void 0;\nexports.fromRfc3339WithNanoseconds = fromRfc3339WithNanoseconds;\nexports.toRfc3339WithNanoseconds = toRfc3339WithNanoseconds;\nexports.fromSeconds = fromSeconds;\nexports.toSeconds = toSeconds;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nfunction fromRfc3339WithNanoseconds(dateTimeString) {\n const out = (0, encoding_1.fromRfc3339)(dateTimeString);\n const nanosecondsMatch = dateTimeString.match(/\\.(\\d+)Z$/);\n const nanoseconds = nanosecondsMatch ? nanosecondsMatch[1].slice(3) : \"\";\n out.nanoseconds = parseInt(nanoseconds.padEnd(6, \"0\"), 10);\n return out;\n}\nfunction toRfc3339WithNanoseconds(dateTime) {\n const millisecondIso = dateTime.toISOString();\n const nanoseconds = dateTime.nanoseconds?.toString() ?? \"\";\n return `${millisecondIso.slice(0, -1)}${nanoseconds.padStart(6, \"0\")}Z`;\n}\nfunction fromSeconds(seconds, nanos = 0) {\n const checkedNanos = new math_1.Uint32(nanos).toNumber();\n if (checkedNanos > 999999999) {\n throw new Error(\"Nano seconds must not exceed 999999999\");\n }\n const out = new Date(seconds * 1000 + Math.floor(checkedNanos / 1000000));\n out.nanoseconds = checkedNanos % 1000000;\n return out;\n}\n/**\n * Calculates the UNIX timestamp in seconds as well as the nanoseconds after the given second.\n *\n * This is useful when dealing with external systems like the protobuf type\n * [.google.protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Timestamp)\n * or any other system that does not use millisecond precision.\n */\nfunction toSeconds(date) {\n return {\n seconds: Math.floor(date.getTime() / 1000),\n nanos: (date.getTime() % 1000) * 1000000 + (date.nanoseconds ?? 0),\n };\n}\n/** @deprecated Use fromRfc3339WithNanoseconds/toRfc3339WithNanoseconds instead */\nclass DateTime {\n /** @deprecated Use fromRfc3339WithNanoseconds instead */\n static decode(dateTimeString) {\n return fromRfc3339WithNanoseconds(dateTimeString);\n }\n /** @deprecated Use toRfc3339WithNanoseconds instead */\n static encode(dateTime) {\n return toRfc3339WithNanoseconds(dateTime);\n }\n}\nexports.DateTime = DateTime;\n//# sourceMappingURL=dates.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlockIdFlag = exports.isTendermint37Client = exports.isTendermint34Client = exports.isComet38Client = exports.connectComet = exports.Tendermint37Client = exports.tendermint37 = exports.Tendermint34Client = exports.tendermint34 = exports.VoteType = exports.SubscriptionEventType = exports.Method = exports.broadcastTxSyncSuccess = exports.broadcastTxCommitSuccess = exports.WebsocketClient = exports.HttpClient = exports.HttpBatchClient = exports.Comet38Client = exports.comet38 = exports.toSeconds = exports.toRfc3339WithNanoseconds = exports.fromSeconds = exports.fromRfc3339WithNanoseconds = exports.DateTime = exports.rawSecp256k1PubkeyToRawAddress = exports.rawEd25519PubkeyToRawAddress = exports.pubkeyToRawAddress = exports.pubkeyToAddress = void 0;\nvar addresses_1 = require(\"./addresses\");\nObject.defineProperty(exports, \"pubkeyToAddress\", { enumerable: true, get: function () { return addresses_1.pubkeyToAddress; } });\nObject.defineProperty(exports, \"pubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.pubkeyToRawAddress; } });\nObject.defineProperty(exports, \"rawEd25519PubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.rawEd25519PubkeyToRawAddress; } });\nObject.defineProperty(exports, \"rawSecp256k1PubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.rawSecp256k1PubkeyToRawAddress; } });\nvar dates_1 = require(\"./dates\");\nObject.defineProperty(exports, \"DateTime\", { enumerable: true, get: function () { return dates_1.DateTime; } });\nObject.defineProperty(exports, \"fromRfc3339WithNanoseconds\", { enumerable: true, get: function () { return dates_1.fromRfc3339WithNanoseconds; } });\nObject.defineProperty(exports, \"fromSeconds\", { enumerable: true, get: function () { return dates_1.fromSeconds; } });\nObject.defineProperty(exports, \"toRfc3339WithNanoseconds\", { enumerable: true, get: function () { return dates_1.toRfc3339WithNanoseconds; } });\nObject.defineProperty(exports, \"toSeconds\", { enumerable: true, get: function () { return dates_1.toSeconds; } });\n// The public Tendermint34Client.create constructor allows manually choosing an RpcClient.\n// This is currently the only way to switch to the HttpBatchClient (which may become default at some point).\n// Due to this API, we make RPC client implementations public.\nexports.comet38 = __importStar(require(\"./comet38\"));\nvar comet38_1 = require(\"./comet38\");\nObject.defineProperty(exports, \"Comet38Client\", { enumerable: true, get: function () { return comet38_1.Comet38Client; } });\nvar rpcclients_1 = require(\"./rpcclients\");\nObject.defineProperty(exports, \"HttpBatchClient\", { enumerable: true, get: function () { return rpcclients_1.HttpBatchClient; } });\nObject.defineProperty(exports, \"HttpClient\", { enumerable: true, get: function () { return rpcclients_1.HttpClient; } });\nObject.defineProperty(exports, \"WebsocketClient\", { enumerable: true, get: function () { return rpcclients_1.WebsocketClient; } });\nvar tendermint34_1 = require(\"./tendermint34\");\nObject.defineProperty(exports, \"broadcastTxCommitSuccess\", { enumerable: true, get: function () { return tendermint34_1.broadcastTxCommitSuccess; } });\nObject.defineProperty(exports, \"broadcastTxSyncSuccess\", { enumerable: true, get: function () { return tendermint34_1.broadcastTxSyncSuccess; } });\nObject.defineProperty(exports, \"Method\", { enumerable: true, get: function () { return tendermint34_1.Method; } });\nObject.defineProperty(exports, \"SubscriptionEventType\", { enumerable: true, get: function () { return tendermint34_1.SubscriptionEventType; } });\nObject.defineProperty(exports, \"VoteType\", { enumerable: true, get: function () { return tendermint34_1.VoteType; } });\nexports.tendermint34 = __importStar(require(\"./tendermint34\"));\nvar tendermint34_2 = require(\"./tendermint34\");\nObject.defineProperty(exports, \"Tendermint34Client\", { enumerable: true, get: function () { return tendermint34_2.Tendermint34Client; } });\nexports.tendermint37 = __importStar(require(\"./tendermint37\"));\nvar tendermint37_1 = require(\"./tendermint37\");\nObject.defineProperty(exports, \"Tendermint37Client\", { enumerable: true, get: function () { return tendermint37_1.Tendermint37Client; } });\nvar tendermintclient_1 = require(\"./tendermintclient\");\nObject.defineProperty(exports, \"connectComet\", { enumerable: true, get: function () { return tendermintclient_1.connectComet; } });\nObject.defineProperty(exports, \"isComet38Client\", { enumerable: true, get: function () { return tendermintclient_1.isComet38Client; } });\nObject.defineProperty(exports, \"isTendermint34Client\", { enumerable: true, get: function () { return tendermintclient_1.isTendermint34Client; } });\nObject.defineProperty(exports, \"isTendermint37Client\", { enumerable: true, get: function () { return tendermintclient_1.isTendermint37Client; } });\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"BlockIdFlag\", { enumerable: true, get: function () { return types_1.BlockIdFlag; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.apiToSmallInt = apiToSmallInt;\nexports.apiToBigInt = apiToBigInt;\nexports.smallIntToApi = smallIntToApi;\nconst math_1 = require(\"@cosmjs/math\");\nconst encodings_1 = require(\"./tendermint34/encodings\");\n/**\n * Takes an integer value from the Tendermint RPC API and\n * returns it as number.\n *\n * Only works within the safe integer range.\n */\nfunction apiToSmallInt(input) {\n const asInt = typeof input === \"number\" ? new math_1.Int53(input) : math_1.Int53.fromString(input);\n return asInt.toNumber();\n}\n/**\n * Takes an integer value from the Tendermint RPC API and\n * returns it as BigInt.\n *\n * This supports the full uint64 and int64 ranges.\n */\nfunction apiToBigInt(input) {\n (0, encodings_1.assertString)(input); // Runtime check on top of TypeScript just to be safe for semi-trusted API types\n if (!input.match(/^-?[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return BigInt(input);\n}\n/**\n * Takes an integer in the safe integer range and returns\n * a string representation to be used in the Tendermint RPC API.\n */\nfunction smallIntToApi(num) {\n return new math_1.Int53(num).toString();\n}\n//# sourceMappingURL=inthelpers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createJsonRpcRequest = createJsonRpcRequest;\nconst numbersWithoutZero = \"123456789\";\n/** generates a random numeric character */\nfunction randomNumericChar() {\n return numbersWithoutZero[Math.floor(Math.random() * numbersWithoutZero.length)];\n}\n/**\n * An (absolutely not cryptographically secure) random integer > 0.\n */\nfunction randomId() {\n return parseInt(Array.from({ length: 12 })\n .map(() => randomNumericChar())\n .join(\"\"), 10);\n}\n/** Creates a JSON-RPC request with random ID */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction createJsonRpcRequest(method, params) {\n const paramsCopy = params ? { ...params } : {};\n return {\n jsonrpc: \"2.0\",\n id: randomId(),\n method: method,\n params: paramsCopy,\n };\n}\n//# sourceMappingURL=jsonrpc.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.http = http;\nconst cross_fetch_1 = __importDefault(require(\"cross-fetch\"));\nfunction filterBadStatus(res) {\n if (res.status >= 400) {\n throw new Error(`Bad status on response: ${res.status}`);\n }\n return res;\n}\n/**\n * Helper to work around missing CORS support in Tendermint (https://github.com/tendermint/tendermint/pull/2800)\n *\n * For some reason, fetch does not complain about missing server-side CORS support.\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nasync function http(method, url, headers, request) {\n const settings = {\n method: method,\n body: request ? JSON.stringify(request) : undefined,\n headers: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n };\n return (0, cross_fetch_1.default)(url, settings)\n .then(filterBadStatus)\n .then((res) => res.json());\n}\n//# sourceMappingURL=http.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpBatchClient = void 0;\nconst json_rpc_1 = require(\"@cosmjs/json-rpc\");\nconst http_1 = require(\"./http\");\nconst rpcclient_1 = require(\"./rpcclient\");\n// Those values are private and can change any time.\n// Does a user need to know them? I don't think so. You either set\n// a custom value or leave the option field unset.\nconst defaultHttpBatchClientOptions = {\n dispatchInterval: 20,\n batchSizeLimit: 20,\n};\nclass HttpBatchClient {\n constructor(endpoint, options = {}) {\n this.queue = [];\n this.options = {\n batchSizeLimit: options.batchSizeLimit ?? defaultHttpBatchClientOptions.batchSizeLimit,\n dispatchInterval: options.dispatchInterval ?? defaultHttpBatchClientOptions.dispatchInterval,\n };\n if (typeof endpoint === \"string\") {\n if (!(0, rpcclient_1.hasProtocol)(endpoint)) {\n throw new Error(\"Endpoint URL is missing a protocol. Expected 'https://' or 'http://'.\");\n }\n this.url = endpoint;\n }\n else {\n this.url = endpoint.url;\n this.headers = endpoint.headers;\n }\n this.timer = setInterval(() => this.tick(), options.dispatchInterval);\n this.validate();\n }\n disconnect() {\n this.timer && clearInterval(this.timer);\n this.timer = undefined;\n }\n async execute(request) {\n return new Promise((resolve, reject) => {\n this.queue.push({ request, resolve, reject });\n if (this.queue.length >= this.options.batchSizeLimit) {\n // this train is full, let's go\n this.tick();\n }\n });\n }\n validate() {\n if (!this.options.batchSizeLimit ||\n !Number.isSafeInteger(this.options.batchSizeLimit) ||\n this.options.batchSizeLimit < 1) {\n throw new Error(\"batchSizeLimit must be a safe integer >= 1\");\n }\n }\n /**\n * This is called in an interval where promise rejections cannot be handled.\n * So this is not async and HTTP errors need to be handled by the queued promises.\n */\n tick() {\n // Avoid race conditions\n const batch = this.queue.splice(0, this.options.batchSizeLimit);\n if (!batch.length)\n return;\n const requests = batch.map((s) => s.request);\n const requestIds = requests.map((request) => request.id);\n (0, http_1.http)(\"POST\", this.url, this.headers, requests).then((raw) => {\n // Requests with a single entry return as an object\n const arr = Array.isArray(raw) ? raw : [raw];\n arr.forEach((el) => {\n const req = batch.find((s) => s.request.id === el.id);\n if (!req)\n return;\n const { reject, resolve } = req;\n const response = (0, json_rpc_1.parseJsonRpcResponse)(el);\n if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) {\n reject(new Error(JSON.stringify(response.error)));\n }\n else {\n resolve(response);\n }\n });\n }, (error) => {\n for (const requestId of requestIds) {\n const req = batch.find((s) => s.request.id === requestId);\n if (!req)\n return;\n req.reject(error);\n }\n });\n }\n}\nexports.HttpBatchClient = HttpBatchClient;\n//# sourceMappingURL=httpbatchclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = void 0;\nconst json_rpc_1 = require(\"@cosmjs/json-rpc\");\nconst http_1 = require(\"./http\");\nconst rpcclient_1 = require(\"./rpcclient\");\nclass HttpClient {\n constructor(endpoint) {\n if (typeof endpoint === \"string\") {\n if (!(0, rpcclient_1.hasProtocol)(endpoint)) {\n throw new Error(\"Endpoint URL is missing a protocol. Expected 'https://' or 'http://'.\");\n }\n this.url = endpoint;\n }\n else {\n this.url = endpoint.url;\n this.headers = endpoint.headers;\n }\n }\n disconnect() {\n // nothing to be done\n }\n async execute(request) {\n const response = (0, json_rpc_1.parseJsonRpcResponse)(await (0, http_1.http)(\"POST\", this.url, this.headers, request));\n if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) {\n throw new Error(JSON.stringify(response.error));\n }\n return response;\n }\n}\nexports.HttpClient = HttpClient;\n//# sourceMappingURL=httpclient.js.map","\"use strict\";\n// This folder contains Tendermint-specific RPC clients\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebsocketClient = exports.instanceOfRpcStreamingClient = exports.HttpClient = exports.HttpBatchClient = void 0;\nvar httpbatchclient_1 = require(\"./httpbatchclient\");\nObject.defineProperty(exports, \"HttpBatchClient\", { enumerable: true, get: function () { return httpbatchclient_1.HttpBatchClient; } });\nvar httpclient_1 = require(\"./httpclient\");\nObject.defineProperty(exports, \"HttpClient\", { enumerable: true, get: function () { return httpclient_1.HttpClient; } });\nvar rpcclient_1 = require(\"./rpcclient\");\nObject.defineProperty(exports, \"instanceOfRpcStreamingClient\", { enumerable: true, get: function () { return rpcclient_1.instanceOfRpcStreamingClient; } });\nvar websocketclient_1 = require(\"./websocketclient\");\nObject.defineProperty(exports, \"WebsocketClient\", { enumerable: true, get: function () { return websocketclient_1.WebsocketClient; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.instanceOfRpcStreamingClient = instanceOfRpcStreamingClient;\nexports.hasProtocol = hasProtocol;\nfunction instanceOfRpcStreamingClient(client) {\n return typeof client.listen === \"function\";\n}\n// Helpers for all RPC clients\nfunction hasProtocol(url) {\n return url.search(\"://\") !== -1;\n}\n//# sourceMappingURL=rpcclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebsocketClient = void 0;\nconst json_rpc_1 = require(\"@cosmjs/json-rpc\");\nconst socket_1 = require(\"@cosmjs/socket\");\nconst stream_1 = require(\"@cosmjs/stream\");\nconst xstream_1 = require(\"xstream\");\nconst rpcclient_1 = require(\"./rpcclient\");\nfunction defaultErrorHandler(error) {\n throw error;\n}\nfunction toJsonRpcResponse(message) {\n // this should never happen, but I want an alert if it does\n if (message.type !== \"message\") {\n throw new Error(`Unexcepted message type on websocket: ${message.type}`);\n }\n const jsonRpcEvent = (0, json_rpc_1.parseJsonRpcResponse)(JSON.parse(message.data));\n return jsonRpcEvent;\n}\nclass RpcEventProducer {\n constructor(request, socket) {\n this.running = false;\n this.subscriptions = [];\n this.request = request;\n this.socket = socket;\n }\n /**\n * Implementation of Producer.start\n */\n start(listener) {\n if (this.running) {\n throw Error(\"Already started. Please stop first before restarting.\");\n }\n this.running = true;\n this.connectToClient(listener);\n this.socket.queueRequest(JSON.stringify(this.request));\n }\n /**\n * Implementation of Producer.stop\n *\n * Called by the stream when the stream's last listener stopped listening\n * or when the producer completed.\n */\n stop() {\n this.running = false;\n // Tell the server we are done in order to save resources. We cannot wait for the result.\n // This may fail when socket connection is not open, thus ignore errors in queueRequest\n const endRequest = { ...this.request, method: \"unsubscribe\" };\n try {\n this.socket.queueRequest(JSON.stringify(endRequest));\n }\n catch (error) {\n if (error instanceof Error && error.message.match(/socket has disconnected/i)) {\n // ignore\n }\n else {\n throw error;\n }\n }\n }\n connectToClient(listener) {\n const responseStream = this.socket.events.map(toJsonRpcResponse);\n // this should unsubscribe itself, so doesn't need to be removed explicitly\n const idSubscription = responseStream\n .filter((response) => response.id === this.request.id)\n .subscribe({\n next: (response) => {\n if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) {\n this.closeSubscriptions();\n listener.error(JSON.stringify(response.error));\n }\n idSubscription.unsubscribe();\n },\n });\n // this will fire on a response (success or error)\n // Tendermint adds an \"#event\" suffix for events that follow a previous subscription\n // https://github.com/tendermint/tendermint/blob/v0.23.0/rpc/core/events.go#L107\n const idEventSubscription = responseStream\n .filter((response) => response.id === this.request.id)\n .subscribe({\n next: (response) => {\n if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) {\n this.closeSubscriptions();\n listener.error(JSON.stringify(response.error));\n }\n else {\n listener.next(response.result);\n }\n },\n });\n // this will fire in case the websocket disconnects cleanly\n const nonResponseSubscription = responseStream.subscribe({\n error: (error) => {\n this.closeSubscriptions();\n listener.error(error);\n },\n complete: () => {\n this.closeSubscriptions();\n listener.complete();\n },\n });\n this.subscriptions.push(idSubscription, idEventSubscription, nonResponseSubscription);\n }\n closeSubscriptions() {\n for (const subscription of this.subscriptions) {\n subscription.unsubscribe();\n }\n // clear unused subscriptions\n this.subscriptions = [];\n }\n}\nclass WebsocketClient {\n constructor(baseUrl, onError = defaultErrorHandler) {\n // Lazily create streams and use the same stream when listening to the same query twice.\n //\n // Creating streams is cheap since producer is not started as long as nobody listens to events. Thus this\n // map is never cleared and there is no need to do so. But unsubscribe all the subscriptions!\n this.subscriptionStreams = new Map();\n if (!(0, rpcclient_1.hasProtocol)(baseUrl)) {\n throw new Error(\"Base URL is missing a protocol. Expected 'ws://' or 'wss://'.\");\n }\n // make sure we don't end up with ...//websocket\n const path = baseUrl.endsWith(\"/\") ? \"websocket\" : \"/websocket\";\n this.url = baseUrl + path;\n this.socket = new socket_1.ReconnectingSocket(this.url);\n const errorSubscription = this.socket.events.subscribe({\n error: (error) => {\n onError(error);\n errorSubscription.unsubscribe();\n },\n });\n this.jsonRpcResponseStream = this.socket.events.map(toJsonRpcResponse);\n this.socket.connect();\n }\n async execute(request) {\n const pendingResponse = this.responseForRequestId(request.id);\n this.socket.queueRequest(JSON.stringify(request));\n const response = await pendingResponse;\n if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) {\n throw new Error(JSON.stringify(response.error));\n }\n return response;\n }\n listen(request) {\n if (request.method !== \"subscribe\") {\n throw new Error(`Request method must be \"subscribe\" to start event listening`);\n }\n const query = request.params.query;\n if (typeof query !== \"string\") {\n throw new Error(\"request.params.query must be a string\");\n }\n if (!this.subscriptionStreams.has(query)) {\n const producer = new RpcEventProducer(request, this.socket);\n const stream = xstream_1.Stream.create(producer);\n this.subscriptionStreams.set(query, stream);\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this.subscriptionStreams.get(query).filter((response) => response.query !== undefined);\n }\n /**\n * Resolves as soon as websocket is connected. execute() queues requests automatically,\n * so this should be required for testing purposes only.\n */\n async connected() {\n await this.socket.connectionStatus.waitFor(socket_1.ConnectionStatus.Connected);\n }\n disconnect() {\n this.socket.disconnect();\n }\n async responseForRequestId(id) {\n return (0, stream_1.firstEvent)(this.jsonRpcResponseStream.filter((r) => r.id === id));\n }\n}\nexports.WebsocketClient = WebsocketClient;\n//# sourceMappingURL=websocketclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Responses = exports.Params = void 0;\nvar requests_1 = require(\"./requests\");\nObject.defineProperty(exports, \"Params\", { enumerable: true, get: function () { return requests_1.Params; } });\nvar responses_1 = require(\"./responses\");\nObject.defineProperty(exports, \"Responses\", { enumerable: true, get: function () { return responses_1.Responses; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst inthelpers_1 = require(\"../../inthelpers\");\nconst jsonrpc_1 = require(\"../../jsonrpc\");\nconst encodings_1 = require(\"../encodings\");\nconst requests = __importStar(require(\"../requests\"));\nfunction encodeHeightParam(param) {\n return {\n height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.height),\n };\n}\nfunction encodeBlockchainRequestParams(param) {\n return {\n minHeight: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.minHeight),\n maxHeight: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.maxHeight),\n };\n}\nfunction encodeBlockSearchParams(params) {\n return {\n query: params.query,\n page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page),\n per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page),\n order_by: params.order_by,\n };\n}\nfunction encodeAbciQueryParams(params) {\n return {\n path: (0, encodings_1.assertNotEmpty)(params.path),\n data: (0, encoding_1.toHex)(params.data),\n height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.height),\n prove: params.prove,\n };\n}\nfunction encodeBroadcastTxParams(params) {\n return {\n tx: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.tx)),\n };\n}\nfunction encodeTxParams(params) {\n return {\n hash: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.hash)),\n prove: params.prove,\n };\n}\nfunction encodeTxSearchParams(params) {\n return {\n query: params.query,\n prove: params.prove,\n page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page),\n per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page),\n order_by: params.order_by,\n };\n}\nfunction encodeValidatorsParams(params) {\n return {\n height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.height),\n page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page),\n per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page),\n };\n}\nclass Params {\n static encodeAbciInfo(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeAbciQuery(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeAbciQueryParams(req.params));\n }\n static encodeBlock(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeBlockchain(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockchainRequestParams(req.params));\n }\n static encodeBlockResults(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeBlockSearch(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockSearchParams(req.params));\n }\n static encodeBroadcastTx(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBroadcastTxParams(req.params));\n }\n static encodeCommit(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeGenesis(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeHealth(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeNumUnconfirmedTxs(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeStatus(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeSubscribe(req) {\n const eventTag = { key: \"tm.event\", value: req.query.type };\n const query = requests.buildQuery({ tags: [eventTag], raw: req.query.raw });\n return (0, jsonrpc_1.createJsonRpcRequest)(\"subscribe\", { query: query });\n }\n static encodeTx(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxParams(req.params));\n }\n // TODO: encode params for query string???\n static encodeTxSearch(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxSearchParams(req.params));\n }\n static encodeValidators(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeValidatorsParams(req.params));\n }\n}\nexports.Params = Params;\n//# sourceMappingURL=requests.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Responses = void 0;\nexports.decodeEvent = decodeEvent;\nexports.decodeValidatorUpdate = decodeValidatorUpdate;\nexports.decodeValidatorGenesis = decodeValidatorGenesis;\nexports.decodeValidatorInfo = decodeValidatorInfo;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst dates_1 = require(\"../../dates\");\nconst inthelpers_1 = require(\"../../inthelpers\");\nconst types_1 = require(\"../../types\");\nconst encodings_1 = require(\"../encodings\");\nconst hasher_1 = require(\"../hasher\");\nfunction decodeAbciInfo(data) {\n return {\n data: data.data,\n lastBlockHeight: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.last_block_height),\n lastBlockAppHash: (0, encodings_1.may)(encoding_1.fromBase64, data.last_block_app_hash),\n };\n}\nfunction decodeQueryProof(data) {\n return {\n ops: data.ops.map((op) => ({\n type: op.type,\n key: (0, encoding_1.fromBase64)(op.key),\n data: (0, encoding_1.fromBase64)(op.data),\n })),\n };\n}\nfunction decodeAbciQuery(data) {\n return {\n key: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(data.key ?? \"\")),\n value: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(data.value ?? \"\")),\n proof: (0, encodings_1.may)(decodeQueryProof, data.proofOps),\n height: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.height),\n code: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.code),\n codespace: (0, encodings_1.assertString)(data.codespace ?? \"\"),\n index: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.index),\n log: data.log,\n info: (0, encodings_1.assertString)(data.info ?? \"\"),\n };\n}\nfunction decodeAttribute(attribute) {\n return {\n key: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(attribute.key)),\n value: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(attribute.value ?? \"\")),\n };\n}\nfunction decodeAttributes(attributes) {\n return (0, encodings_1.assertArray)(attributes).map(decodeAttribute);\n}\nfunction decodeEvent(event) {\n return {\n type: event.type,\n attributes: event.attributes ? decodeAttributes(event.attributes) : [],\n };\n}\nfunction decodeEvents(events) {\n return (0, encodings_1.assertArray)(events).map(decodeEvent);\n}\nfunction decodeTxData(data) {\n return {\n code: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNumber)(data.code ?? 0)),\n codespace: data.codespace,\n log: data.log,\n data: (0, encodings_1.may)(encoding_1.fromBase64, data.data),\n events: data.events ? decodeEvents(data.events) : [],\n gasWanted: (0, inthelpers_1.apiToBigInt)(data.gas_wanted ?? \"0\"),\n gasUsed: (0, inthelpers_1.apiToBigInt)(data.gas_used ?? \"0\"),\n };\n}\nfunction decodePubkey(data) {\n if (\"Sum\" in data) {\n // we don't need to check type because we're checking algorithm\n const [[algorithm, value]] = Object.entries(data.Sum.value);\n (0, utils_1.assert)(algorithm === \"ed25519\" || algorithm === \"secp256k1\", `unknown pubkey type: ${algorithm}`);\n return {\n algorithm,\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(value)),\n };\n }\n else {\n switch (data.type) {\n // go-amino special code\n case \"tendermint/PubKeyEd25519\":\n return {\n algorithm: \"ed25519\",\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)),\n };\n case \"tendermint/PubKeySecp256k1\":\n return {\n algorithm: \"secp256k1\",\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)),\n };\n default:\n throw new Error(`unknown pubkey type: ${data.type}`);\n }\n }\n}\n/**\n * Note: we do not parse block.time_iota_ms for now because of this CHANGELOG entry\n *\n * > Add time_iota_ms to block's consensus parameters (not exposed to the application)\n * https://github.com/tendermint/tendermint/blob/master/CHANGELOG.md#v0310\n */\nfunction decodeBlockParams(data) {\n return {\n maxBytes: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_bytes)),\n maxGas: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_gas)),\n };\n}\nfunction decodeEvidenceParams(data) {\n return {\n maxAgeNumBlocks: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_age_num_blocks)),\n maxAgeDuration: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_age_duration)),\n };\n}\nfunction decodeConsensusParams(data) {\n return {\n block: decodeBlockParams((0, encodings_1.assertObject)(data.block)),\n evidence: decodeEvidenceParams((0, encodings_1.assertObject)(data.evidence)),\n };\n}\nfunction decodeValidatorUpdate(data) {\n return {\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: (0, inthelpers_1.apiToBigInt)(data.power ?? \"0\"),\n };\n}\nfunction decodeBlockResults(data) {\n return {\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n results: (data.txs_results || []).map(decodeTxData),\n validatorUpdates: (data.validator_updates || []).map(decodeValidatorUpdate),\n consensusUpdates: (0, encodings_1.may)(decodeConsensusParams, data.consensus_param_updates),\n beginBlockEvents: decodeEvents(data.begin_block_events || []),\n endBlockEvents: decodeEvents(data.end_block_events || []),\n };\n}\nfunction decodeBlockId(data) {\n return {\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n parts: {\n total: (0, encodings_1.assertNotEmpty)(data.parts.total),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.parts.hash)),\n },\n };\n}\nfunction decodeBlockVersion(data) {\n return {\n block: (0, inthelpers_1.apiToSmallInt)(data.block),\n app: (0, inthelpers_1.apiToSmallInt)(data.app ?? 0),\n };\n}\nfunction decodeHeader(data) {\n return {\n version: decodeBlockVersion(data.version),\n chainId: (0, encodings_1.assertNotEmpty)(data.chain_id),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n time: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.time)),\n // When there is no last block ID (i.e. this block's height is 1), we get an empty structure like this:\n // { hash: '', parts: { total: 0, hash: '' } }\n lastBlockId: data.last_block_id.hash ? decodeBlockId(data.last_block_id) : null,\n lastCommitHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_commit_hash)),\n dataHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.data_hash)),\n validatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.validators_hash)),\n nextValidatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.next_validators_hash)),\n consensusHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.consensus_hash)),\n appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)),\n lastResultsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_results_hash)),\n evidenceHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.evidence_hash)),\n proposerAddress: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.proposer_address)),\n };\n}\nfunction decodeBlockMeta(data) {\n return {\n blockId: decodeBlockId(data.block_id),\n blockSize: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.block_size)),\n header: decodeHeader(data.header),\n numTxs: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.num_txs)),\n };\n}\nfunction decodeBlockchain(data) {\n return {\n lastHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.last_height)),\n blockMetas: (0, encodings_1.assertArray)(data.block_metas).map(decodeBlockMeta),\n };\n}\nfunction decodeBroadcastTxSync(data) {\n return {\n ...decodeTxData(data),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n };\n}\nfunction decodeBroadcastTxCommit(data) {\n return {\n height: (0, inthelpers_1.apiToSmallInt)(data.height),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n checkTx: decodeTxData((0, encodings_1.assertObject)(data.check_tx)),\n deliverTx: (0, encodings_1.may)(decodeTxData, data.deliver_tx),\n };\n}\nfunction decodeBlockIdFlag(blockIdFlag) {\n (0, utils_1.assert)(blockIdFlag in types_1.BlockIdFlag);\n return blockIdFlag;\n}\nfunction decodeCommitSignature(data) {\n return {\n blockIdFlag: decodeBlockIdFlag(data.block_id_flag),\n validatorAddress: data.validator_address ? (0, encoding_1.fromHex)(data.validator_address) : undefined,\n timestamp: data.timestamp ? (0, dates_1.fromRfc3339WithNanoseconds)(data.timestamp) : undefined,\n signature: data.signature ? (0, encoding_1.fromBase64)(data.signature) : undefined,\n };\n}\nfunction decodeCommit(data) {\n return {\n blockId: decodeBlockId((0, encodings_1.assertObject)(data.block_id)),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n round: (0, inthelpers_1.apiToSmallInt)(data.round),\n signatures: (0, encodings_1.assertArray)(data.signatures).map(decodeCommitSignature),\n };\n}\nfunction decodeCommitResponse(data) {\n return {\n canonical: (0, encodings_1.assertBoolean)(data.canonical),\n header: decodeHeader(data.signed_header.header),\n commit: decodeCommit(data.signed_header.commit),\n };\n}\nfunction decodeValidatorGenesis(data) {\n return {\n address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)),\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: (0, inthelpers_1.apiToBigInt)((0, encodings_1.assertNotEmpty)(data.power)),\n };\n}\nfunction decodeGenesis(data) {\n return {\n genesisTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.genesis_time)),\n chainId: (0, encodings_1.assertNotEmpty)(data.chain_id),\n consensusParams: decodeConsensusParams(data.consensus_params),\n validators: data.validators ? (0, encodings_1.assertArray)(data.validators).map(decodeValidatorGenesis) : [],\n appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)), // empty string in kvstore app\n appState: data.app_state,\n };\n}\nfunction decodeValidatorInfo(data) {\n return {\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: (0, inthelpers_1.apiToBigInt)((0, encodings_1.assertNotEmpty)(data.voting_power)),\n address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)),\n proposerPriority: data.proposer_priority ? (0, inthelpers_1.apiToSmallInt)(data.proposer_priority) : undefined,\n };\n}\nfunction decodeNodeInfo(data) {\n return {\n id: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.id)),\n listenAddr: (0, encodings_1.assertNotEmpty)(data.listen_addr),\n network: (0, encodings_1.assertNotEmpty)(data.network),\n version: (0, encodings_1.assertString)(data.version), // Can be empty (https://github.com/cosmos/cosmos-sdk/issues/7963)\n channels: (0, encodings_1.assertNotEmpty)(data.channels),\n moniker: (0, encodings_1.assertNotEmpty)(data.moniker),\n other: (0, encodings_1.dictionaryToStringMap)(data.other),\n protocolVersion: {\n app: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.app)),\n block: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.block)),\n p2p: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.p2p)),\n },\n };\n}\nfunction decodeSyncInfo(data) {\n const earliestBlockHeight = data.earliest_block_height\n ? (0, inthelpers_1.apiToSmallInt)(data.earliest_block_height)\n : undefined;\n const earliestBlockTime = data.earliest_block_time\n ? (0, dates_1.fromRfc3339WithNanoseconds)(data.earliest_block_time)\n : undefined;\n return {\n earliestAppHash: data.earliest_app_hash ? (0, encoding_1.fromHex)(data.earliest_app_hash) : undefined,\n earliestBlockHash: data.earliest_block_hash ? (0, encoding_1.fromHex)(data.earliest_block_hash) : undefined,\n earliestBlockHeight: earliestBlockHeight || undefined,\n earliestBlockTime: earliestBlockTime?.getTime() ? earliestBlockTime : undefined,\n latestBlockHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_block_hash)),\n latestAppHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_app_hash)),\n latestBlockTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.latest_block_time)),\n latestBlockHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.latest_block_height)),\n catchingUp: (0, encodings_1.assertBoolean)(data.catching_up),\n };\n}\nfunction decodeStatus(data) {\n return {\n nodeInfo: decodeNodeInfo(data.node_info),\n syncInfo: decodeSyncInfo(data.sync_info),\n validatorInfo: decodeValidatorInfo(data.validator_info),\n };\n}\nfunction decodeTxProof(data) {\n return {\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.data)),\n rootHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.root_hash)),\n proof: {\n total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.proof.total)),\n index: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.proof.index)),\n leafHash: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.proof.leaf_hash)),\n aunts: (0, encodings_1.assertArray)(data.proof.aunts).map(encoding_1.fromBase64),\n },\n };\n}\nfunction decodeTxResponse(data) {\n return {\n tx: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx)),\n result: decodeTxData((0, encodings_1.assertObject)(data.tx_result)),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n index: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNumber)(data.index)),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n proof: (0, encodings_1.may)(decodeTxProof, data.proof),\n };\n}\nfunction decodeTxSearch(data) {\n return {\n totalCount: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_count)),\n txs: (0, encodings_1.assertArray)(data.txs).map(decodeTxResponse),\n };\n}\nfunction decodeTxEvent(data) {\n const tx = (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx));\n return {\n tx: tx,\n hash: (0, hasher_1.hashTx)(tx),\n result: decodeTxData(data.result),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n };\n}\nfunction decodeValidators(data) {\n return {\n blockHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.block_height)),\n validators: (0, encodings_1.assertArray)(data.validators).map(decodeValidatorInfo),\n count: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.count)),\n total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total)),\n };\n}\nfunction decodeBlock(data) {\n return {\n header: decodeHeader((0, encodings_1.assertObject)(data.header)),\n // For the block at height 1, last commit is not set. This is represented in an empty object like this:\n // { height: '0', round: 0, block_id: { hash: '', parts: [Object] }, signatures: [] }\n lastCommit: data.last_commit.block_id.hash ? decodeCommit((0, encodings_1.assertObject)(data.last_commit)) : null,\n txs: data.data.txs ? (0, encodings_1.assertArray)(data.data.txs).map(encoding_1.fromBase64) : [],\n // Lift up .evidence.evidence to just .evidence\n // See https://github.com/tendermint/tendermint/issues/7697\n evidence: data.evidence?.evidence ?? [],\n };\n}\nfunction decodeBlockResponse(data) {\n return {\n blockId: decodeBlockId(data.block_id),\n block: decodeBlock(data.block),\n };\n}\nfunction decodeBlockSearch(data) {\n return {\n totalCount: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_count)),\n blocks: (0, encodings_1.assertArray)(data.blocks).map(decodeBlockResponse),\n };\n}\nfunction decodeNumUnconfirmedTxs(data) {\n return {\n total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total)),\n totalBytes: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_bytes)),\n };\n}\nclass Responses {\n static decodeAbciInfo(response) {\n return decodeAbciInfo((0, encodings_1.assertObject)(response.result.response));\n }\n static decodeAbciQuery(response) {\n return decodeAbciQuery((0, encodings_1.assertObject)(response.result.response));\n }\n static decodeBlock(response) {\n return decodeBlockResponse(response.result);\n }\n static decodeBlockResults(response) {\n return decodeBlockResults(response.result);\n }\n static decodeBlockSearch(response) {\n return decodeBlockSearch(response.result);\n }\n static decodeBlockchain(response) {\n return decodeBlockchain(response.result);\n }\n static decodeBroadcastTxSync(response) {\n return decodeBroadcastTxSync(response.result);\n }\n static decodeBroadcastTxAsync(response) {\n return Responses.decodeBroadcastTxSync(response);\n }\n static decodeBroadcastTxCommit(response) {\n return decodeBroadcastTxCommit(response.result);\n }\n static decodeCommit(response) {\n return decodeCommitResponse(response.result);\n }\n static decodeGenesis(response) {\n return decodeGenesis((0, encodings_1.assertObject)(response.result.genesis));\n }\n static decodeHealth() {\n return null;\n }\n static decodeNumUnconfirmedTxs(response) {\n return decodeNumUnconfirmedTxs(response.result);\n }\n static decodeStatus(response) {\n return decodeStatus(response.result);\n }\n static decodeNewBlockEvent(event) {\n return decodeBlock(event.data.value.block);\n }\n static decodeNewBlockHeaderEvent(event) {\n return decodeHeader(event.data.value.header);\n }\n static decodeTxEvent(event) {\n return decodeTxEvent(event.data.value.TxResult);\n }\n static decodeTx(response) {\n return decodeTxResponse(response.result);\n }\n static decodeTxSearch(response) {\n return decodeTxSearch(response.result);\n }\n static decodeValidators(response) {\n return decodeValidators(response.result);\n }\n}\nexports.Responses = Responses;\n//# sourceMappingURL=responses.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assertSet = assertSet;\nexports.assertBoolean = assertBoolean;\nexports.assertString = assertString;\nexports.assertNumber = assertNumber;\nexports.assertArray = assertArray;\nexports.assertObject = assertObject;\nexports.assertNotEmpty = assertNotEmpty;\nexports.may = may;\nexports.dictionaryToStringMap = dictionaryToStringMap;\nexports.encodeString = encodeString;\nexports.encodeUvarint = encodeUvarint;\nexports.encodeTime = encodeTime;\nexports.encodeBytes = encodeBytes;\nexports.encodeVersion = encodeVersion;\nexports.encodeBlockId = encodeBlockId;\nconst encoding_1 = require(\"@cosmjs/encoding\");\n/**\n * A runtime checker that ensures a given value is set (i.e. not undefined or null)\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n */\nfunction assertSet(value) {\n if (value === undefined) {\n throw new Error(\"Value must not be undefined\");\n }\n if (value === null) {\n throw new Error(\"Value must not be null\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is a boolean\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertBoolean(value) {\n assertSet(value);\n if (typeof value !== \"boolean\") {\n throw new Error(\"Value must be a boolean\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is a string.\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertString(value) {\n assertSet(value);\n if (typeof value !== \"string\") {\n throw new Error(\"Value must be a string\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is a number\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertNumber(value) {\n assertSet(value);\n if (typeof value !== \"number\") {\n throw new Error(\"Value must be a number\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is an array\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertArray(value) {\n assertSet(value);\n if (!Array.isArray(value)) {\n throw new Error(\"Value must be a an array\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is an object in the sense of JSON\n * (an unordered collection of key–value pairs where the keys are strings)\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertObject(value) {\n assertSet(value);\n if (typeof value !== \"object\") {\n throw new Error(\"Value must be an object\");\n }\n // Exclude special kind of objects like Array, Date or Uint8Array\n // Object.prototype.toString() returns a specified value:\n // http://www.ecma-international.org/ecma-262/7.0/index.html#sec-object.prototype.tostring\n if (Object.prototype.toString.call(value) !== \"[object Object]\") {\n throw new Error(\"Value must be a simple object\");\n }\n return value;\n}\n/**\n * Throws an error if value matches the empty value for the\n * given type (array/string of length 0, number of value 0, ...)\n *\n * Otherwise returns the value.\n *\n * This implies assertSet\n */\nfunction assertNotEmpty(value) {\n assertSet(value);\n if (typeof value === \"number\" && value === 0) {\n throw new Error(\"must provide a non-zero value\");\n }\n else if (value.length === 0) {\n throw new Error(\"must provide a non-empty value\");\n }\n return value;\n}\n// may will run the transform if value is defined, otherwise returns undefined\nfunction may(transform, value) {\n return value === undefined || value === null ? undefined : transform(value);\n}\nfunction dictionaryToStringMap(obj) {\n const out = new Map();\n for (const key of Object.keys(obj)) {\n const value = obj[key];\n if (typeof value !== \"string\") {\n throw new Error(\"Found dictionary value of type other than string\");\n }\n out.set(key, value);\n }\n return out;\n}\n// Encodings needed for hashing block headers\n// Several of these functions are inspired by https://github.com/nomic-io/js-tendermint/blob/tendermint-0.30/src/\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L193-L195\nfunction encodeString(s) {\n const utf8 = (0, encoding_1.toUtf8)(s);\n return Uint8Array.from([utf8.length, ...utf8]);\n}\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L79-L87\nfunction encodeUvarint(n) {\n return n >= 0x80\n ? // eslint-disable-next-line no-bitwise\n Uint8Array.from([(n & 0xff) | 0x80, ...encodeUvarint(n >> 7)])\n : // eslint-disable-next-line no-bitwise\n Uint8Array.from([n & 0xff]);\n}\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L134-L178\nfunction encodeTime(time) {\n const milliseconds = time.getTime();\n const seconds = Math.floor(milliseconds / 1000);\n const secondsArray = seconds ? [0x08, ...encodeUvarint(seconds)] : new Uint8Array();\n const nanoseconds = (time.nanoseconds || 0) + (milliseconds % 1000) * 1e6;\n const nanosecondsArray = nanoseconds ? [0x10, ...encodeUvarint(nanoseconds)] : new Uint8Array();\n return Uint8Array.from([...secondsArray, ...nanosecondsArray]);\n}\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L180-L187\nfunction encodeBytes(bytes) {\n // Since we're only dealing with short byte arrays we don't need a full VarBuffer implementation yet\n if (bytes.length >= 0x80)\n throw new Error(\"Not implemented for byte arrays of length 128 or more\");\n return bytes.length ? Uint8Array.from([bytes.length, ...bytes]) : new Uint8Array();\n}\nfunction encodeVersion(version) {\n const blockArray = version.block\n ? Uint8Array.from([0x08, ...encodeUvarint(version.block)])\n : new Uint8Array();\n const appArray = version.app ? Uint8Array.from([0x10, ...encodeUvarint(version.app)]) : new Uint8Array();\n return Uint8Array.from([...blockArray, ...appArray]);\n}\nfunction encodeBlockId(blockId) {\n return Uint8Array.from([\n 0x0a,\n blockId.hash.length,\n ...blockId.hash,\n 0x12,\n blockId.parts.hash.length + 4,\n 0x08,\n blockId.parts.total,\n 0x12,\n blockId.parts.hash.length,\n ...blockId.parts.hash,\n ]);\n}\n//# sourceMappingURL=encodings.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hashTx = hashTx;\nexports.hashBlock = hashBlock;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encodings_1 = require(\"./encodings\");\n// hash is sha256\n// https://github.com/tendermint/tendermint/blob/master/UPGRADING.md#v0260\nfunction hashTx(tx) {\n return (0, crypto_1.sha256)(tx);\n}\nfunction getSplitPoint(n) {\n if (n < 1)\n throw new Error(\"Cannot split an empty tree\");\n const largestPowerOf2 = 2 ** Math.floor(Math.log2(n));\n return largestPowerOf2 < n ? largestPowerOf2 : largestPowerOf2 / 2;\n}\nfunction hashLeaf(leaf) {\n const hash = new crypto_1.Sha256(Uint8Array.from([0]));\n hash.update(leaf);\n return hash.digest();\n}\nfunction hashInner(left, right) {\n const hash = new crypto_1.Sha256(Uint8Array.from([1]));\n hash.update(left);\n hash.update(right);\n return hash.digest();\n}\n// See https://github.com/tendermint/tendermint/blob/v0.31.8/docs/spec/blockchain/encoding.md#merkleroot\n// Note: the hashes input may not actually be hashes, especially before a recursive call\nfunction hashTree(hashes) {\n switch (hashes.length) {\n case 0:\n throw new Error(\"Cannot hash empty tree\");\n case 1:\n return hashLeaf(hashes[0]);\n default: {\n const slicePoint = getSplitPoint(hashes.length);\n const left = hashTree(hashes.slice(0, slicePoint));\n const right = hashTree(hashes.slice(slicePoint));\n return hashInner(left, right);\n }\n }\n}\nfunction hashBlock(header) {\n if (!header.lastBlockId) {\n throw new Error(\"Hashing a block header with no last block ID (i.e. header at height 1) is not supported. If you need this, contributions are welcome. Please add documentation and test vectors for this case.\");\n }\n const encodedFields = [\n (0, encodings_1.encodeVersion)(header.version),\n (0, encodings_1.encodeString)(header.chainId),\n (0, encodings_1.encodeUvarint)(header.height),\n (0, encodings_1.encodeTime)(header.time),\n (0, encodings_1.encodeBlockId)(header.lastBlockId),\n (0, encodings_1.encodeBytes)(header.lastCommitHash),\n (0, encodings_1.encodeBytes)(header.dataHash),\n (0, encodings_1.encodeBytes)(header.validatorsHash),\n (0, encodings_1.encodeBytes)(header.nextValidatorsHash),\n (0, encodings_1.encodeBytes)(header.consensusHash),\n (0, encodings_1.encodeBytes)(header.appHash),\n (0, encodings_1.encodeBytes)(header.lastResultsHash),\n (0, encodings_1.encodeBytes)(header.evidenceHash),\n (0, encodings_1.encodeBytes)(header.proposerAddress),\n ];\n return hashTree(encodedFields);\n}\n//# sourceMappingURL=hasher.js.map","\"use strict\";\n// Note: all exports in this module are publicly available via\n// `import { tendermint34 } from \"@cosmjs/tendermint-rpc\"`\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Tendermint34Client = exports.VoteType = exports.broadcastTxSyncSuccess = exports.broadcastTxCommitSuccess = exports.SubscriptionEventType = exports.Method = void 0;\nvar requests_1 = require(\"./requests\");\nObject.defineProperty(exports, \"Method\", { enumerable: true, get: function () { return requests_1.Method; } });\nObject.defineProperty(exports, \"SubscriptionEventType\", { enumerable: true, get: function () { return requests_1.SubscriptionEventType; } });\nvar responses_1 = require(\"./responses\");\nObject.defineProperty(exports, \"broadcastTxCommitSuccess\", { enumerable: true, get: function () { return responses_1.broadcastTxCommitSuccess; } });\nObject.defineProperty(exports, \"broadcastTxSyncSuccess\", { enumerable: true, get: function () { return responses_1.broadcastTxSyncSuccess; } });\nObject.defineProperty(exports, \"VoteType\", { enumerable: true, get: function () { return responses_1.VoteType; } });\nvar tendermint34client_1 = require(\"./tendermint34client\");\nObject.defineProperty(exports, \"Tendermint34Client\", { enumerable: true, get: function () { return tendermint34client_1.Tendermint34Client; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/naming-convention */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SubscriptionEventType = exports.Method = void 0;\nexports.buildQuery = buildQuery;\n/**\n * RPC methods as documented in https://docs.tendermint.com/master/rpc/\n *\n * Enum raw value must match the spelling in the \"shell\" example call (snake_case)\n */\nvar Method;\n(function (Method) {\n Method[\"AbciInfo\"] = \"abci_info\";\n Method[\"AbciQuery\"] = \"abci_query\";\n Method[\"Block\"] = \"block\";\n /** Get block headers for minHeight <= height <= maxHeight. */\n Method[\"Blockchain\"] = \"blockchain\";\n Method[\"BlockResults\"] = \"block_results\";\n Method[\"BlockSearch\"] = \"block_search\";\n Method[\"BroadcastTxAsync\"] = \"broadcast_tx_async\";\n Method[\"BroadcastTxSync\"] = \"broadcast_tx_sync\";\n Method[\"BroadcastTxCommit\"] = \"broadcast_tx_commit\";\n Method[\"Commit\"] = \"commit\";\n Method[\"Genesis\"] = \"genesis\";\n Method[\"Health\"] = \"health\";\n Method[\"NumUnconfirmedTxs\"] = \"num_unconfirmed_txs\";\n Method[\"Status\"] = \"status\";\n Method[\"Subscribe\"] = \"subscribe\";\n Method[\"Tx\"] = \"tx\";\n Method[\"TxSearch\"] = \"tx_search\";\n Method[\"Validators\"] = \"validators\";\n Method[\"Unsubscribe\"] = \"unsubscribe\";\n})(Method || (exports.Method = Method = {}));\n/**\n * Raw values must match the tendermint event name\n *\n * @see https://godoc.org/github.com/tendermint/tendermint/types#pkg-constants\n */\nvar SubscriptionEventType;\n(function (SubscriptionEventType) {\n SubscriptionEventType[\"NewBlock\"] = \"NewBlock\";\n SubscriptionEventType[\"NewBlockHeader\"] = \"NewBlockHeader\";\n SubscriptionEventType[\"Tx\"] = \"Tx\";\n})(SubscriptionEventType || (exports.SubscriptionEventType = SubscriptionEventType = {}));\nfunction buildQuery(components) {\n const tags = components.tags ? components.tags : [];\n const tagComponents = tags.map((tag) => `${tag.key}='${tag.value}'`);\n const rawComponents = components.raw ? [components.raw] : [];\n return [...tagComponents, ...rawComponents].join(\" AND \");\n}\n//# sourceMappingURL=requests.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VoteType = void 0;\nexports.broadcastTxSyncSuccess = broadcastTxSyncSuccess;\nexports.broadcastTxCommitSuccess = broadcastTxCommitSuccess;\n/**\n * Returns true iff transaction made it successfully into the transaction pool\n */\nfunction broadcastTxSyncSuccess(res) {\n // code must be 0 on success\n return res.code === 0;\n}\n/**\n * Returns true iff transaction made it successfully into a block\n * (i.e. success in `check_tx` and `deliver_tx` field)\n */\nfunction broadcastTxCommitSuccess(response) {\n // code must be 0 on success\n // deliverTx may be present but empty on failure\n return response.checkTx.code === 0 && !!response.deliverTx && response.deliverTx.code === 0;\n}\n/**\n * raw values from https://github.com/tendermint/tendermint/blob/dfa9a9a30a666132425b29454e90a472aa579a48/types/vote.go#L44\n */\nvar VoteType;\n(function (VoteType) {\n VoteType[VoteType[\"PreVote\"] = 1] = \"PreVote\";\n VoteType[VoteType[\"PreCommit\"] = 2] = \"PreCommit\";\n})(VoteType || (exports.VoteType = VoteType = {}));\n//# sourceMappingURL=responses.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Tendermint34Client = void 0;\nconst jsonrpc_1 = require(\"../jsonrpc\");\nconst rpcclients_1 = require(\"../rpcclients\");\nconst adaptor_1 = require(\"./adaptor\");\nconst requests = __importStar(require(\"./requests\"));\nclass Tendermint34Client {\n /**\n * Creates a new Tendermint client for the given endpoint.\n *\n * Uses HTTP when the URL schema is http or https. Uses WebSockets otherwise.\n */\n static async connect(endpoint) {\n let rpcClient;\n if (typeof endpoint === \"object\") {\n rpcClient = new rpcclients_1.HttpClient(endpoint);\n }\n else {\n const useHttp = endpoint.startsWith(\"http://\") || endpoint.startsWith(\"https://\");\n rpcClient = useHttp ? new rpcclients_1.HttpClient(endpoint) : new rpcclients_1.WebsocketClient(endpoint);\n }\n // For some very strange reason I don't understand, tests start to fail on some systems\n // (our CI) when skipping the status call before doing other queries. Sleeping a little\n // while did not help. Thus we query the version as a way to say \"hi\" to the backend,\n // even in cases where we don't use the result.\n const _version = await this.detectVersion(rpcClient);\n return Tendermint34Client.create(rpcClient);\n }\n /**\n * Creates a new Tendermint client given an RPC client.\n */\n static async create(rpcClient) {\n return new Tendermint34Client(rpcClient);\n }\n static async detectVersion(client) {\n const req = (0, jsonrpc_1.createJsonRpcRequest)(requests.Method.Status);\n const response = await client.execute(req);\n const result = response.result;\n if (!result || !result.node_info) {\n throw new Error(\"Unrecognized format for status response\");\n }\n const version = result.node_info.version;\n if (typeof version !== \"string\") {\n throw new Error(\"Unrecognized version format: must be string\");\n }\n return version;\n }\n /**\n * Use `Tendermint34Client.connect` or `Tendermint34Client.create` to create an instance.\n */\n constructor(client) {\n this.client = client;\n }\n disconnect() {\n this.client.disconnect();\n }\n async abciInfo() {\n const query = { method: requests.Method.AbciInfo };\n return this.doCall(query, adaptor_1.Params.encodeAbciInfo, adaptor_1.Responses.decodeAbciInfo);\n }\n async abciQuery(params) {\n const query = { params: params, method: requests.Method.AbciQuery };\n return this.doCall(query, adaptor_1.Params.encodeAbciQuery, adaptor_1.Responses.decodeAbciQuery);\n }\n async block(height) {\n const query = { method: requests.Method.Block, params: { height: height } };\n return this.doCall(query, adaptor_1.Params.encodeBlock, adaptor_1.Responses.decodeBlock);\n }\n async blockResults(height) {\n const query = {\n method: requests.Method.BlockResults,\n params: { height: height },\n };\n return this.doCall(query, adaptor_1.Params.encodeBlockResults, adaptor_1.Responses.decodeBlockResults);\n }\n /**\n * Search for events that are in a block.\n *\n * NOTE\n * This method will error on any node that is running a Tendermint version lower than 0.34.9.\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/block_search\n */\n async blockSearch(params) {\n const query = { params: params, method: requests.Method.BlockSearch };\n const resp = await this.doCall(query, adaptor_1.Params.encodeBlockSearch, adaptor_1.Responses.decodeBlockSearch);\n return {\n ...resp,\n // make sure we sort by height, as tendermint may be sorting by string value of the height\n blocks: [...resp.blocks].sort((a, b) => a.block.header.height - b.block.header.height),\n };\n }\n // this should paginate through all blockSearch options to ensure it returns all results.\n // starts with page 1 or whatever was provided (eg. to start on page 7)\n //\n // NOTE\n // This method will error on any node that is running a Tendermint version lower than 0.34.9.\n async blockSearchAll(params) {\n let page = params.page || 1;\n const blocks = [];\n let done = false;\n while (!done) {\n const resp = await this.blockSearch({ ...params, page: page });\n blocks.push(...resp.blocks);\n if (blocks.length < resp.totalCount) {\n page++;\n }\n else {\n done = true;\n }\n }\n // make sure we sort by height, as tendermint may be sorting by string value of the height\n // and the earlier items may be in a higher page than the later items\n blocks.sort((a, b) => a.block.header.height - b.block.header.height);\n return {\n totalCount: blocks.length,\n blocks: blocks,\n };\n }\n /**\n * Queries block headers filtered by minHeight <= height <= maxHeight.\n *\n * @param minHeight The minimum height to be included in the result. Defaults to 0.\n * @param maxHeight The maximum height to be included in the result. Defaults to infinity.\n */\n async blockchain(minHeight, maxHeight) {\n const query = {\n method: requests.Method.Blockchain,\n params: {\n minHeight: minHeight,\n maxHeight: maxHeight,\n },\n };\n return this.doCall(query, adaptor_1.Params.encodeBlockchain, adaptor_1.Responses.decodeBlockchain);\n }\n /**\n * Broadcast transaction to mempool and wait for response\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_sync\n */\n async broadcastTxSync(params) {\n const query = { params: params, method: requests.Method.BroadcastTxSync };\n return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxSync);\n }\n /**\n * Broadcast transaction to mempool and do not wait for result\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_async\n */\n async broadcastTxAsync(params) {\n const query = { params: params, method: requests.Method.BroadcastTxAsync };\n return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxAsync);\n }\n /**\n * Broadcast transaction to mempool and wait for block\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_commit\n */\n async broadcastTxCommit(params) {\n const query = { params: params, method: requests.Method.BroadcastTxCommit };\n return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxCommit);\n }\n async commit(height) {\n const query = { method: requests.Method.Commit, params: { height: height } };\n return this.doCall(query, adaptor_1.Params.encodeCommit, adaptor_1.Responses.decodeCommit);\n }\n async genesis() {\n const query = { method: requests.Method.Genesis };\n return this.doCall(query, adaptor_1.Params.encodeGenesis, adaptor_1.Responses.decodeGenesis);\n }\n async health() {\n const query = { method: requests.Method.Health };\n return this.doCall(query, adaptor_1.Params.encodeHealth, adaptor_1.Responses.decodeHealth);\n }\n async numUnconfirmedTxs() {\n const query = { method: requests.Method.NumUnconfirmedTxs };\n return this.doCall(query, adaptor_1.Params.encodeNumUnconfirmedTxs, adaptor_1.Responses.decodeNumUnconfirmedTxs);\n }\n async status() {\n const query = { method: requests.Method.Status };\n return this.doCall(query, adaptor_1.Params.encodeStatus, adaptor_1.Responses.decodeStatus);\n }\n subscribeNewBlock() {\n const request = {\n method: requests.Method.Subscribe,\n query: { type: requests.SubscriptionEventType.NewBlock },\n };\n return this.subscribe(request, adaptor_1.Responses.decodeNewBlockEvent);\n }\n subscribeNewBlockHeader() {\n const request = {\n method: requests.Method.Subscribe,\n query: { type: requests.SubscriptionEventType.NewBlockHeader },\n };\n return this.subscribe(request, adaptor_1.Responses.decodeNewBlockHeaderEvent);\n }\n subscribeTx(query) {\n const request = {\n method: requests.Method.Subscribe,\n query: {\n type: requests.SubscriptionEventType.Tx,\n raw: query,\n },\n };\n return this.subscribe(request, adaptor_1.Responses.decodeTxEvent);\n }\n /**\n * Get a single transaction by hash\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/tx\n */\n async tx(params) {\n const query = { params: params, method: requests.Method.Tx };\n return this.doCall(query, adaptor_1.Params.encodeTx, adaptor_1.Responses.decodeTx);\n }\n /**\n * Search for transactions that are in a block\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/tx_search\n */\n async txSearch(params) {\n const query = { params: params, method: requests.Method.TxSearch };\n return this.doCall(query, adaptor_1.Params.encodeTxSearch, adaptor_1.Responses.decodeTxSearch);\n }\n // this should paginate through all txSearch options to ensure it returns all results.\n // starts with page 1 or whatever was provided (eg. to start on page 7)\n async txSearchAll(params) {\n let page = params.page || 1;\n const txs = [];\n let done = false;\n while (!done) {\n const resp = await this.txSearch({ ...params, page: page });\n txs.push(...resp.txs);\n if (txs.length < resp.totalCount) {\n page++;\n }\n else {\n done = true;\n }\n }\n return {\n totalCount: txs.length,\n txs: txs,\n };\n }\n async validators(params) {\n const query = {\n method: requests.Method.Validators,\n params: params,\n };\n return this.doCall(query, adaptor_1.Params.encodeValidators, adaptor_1.Responses.decodeValidators);\n }\n async validatorsAll(height) {\n const validators = [];\n let page = 1;\n let done = false;\n let blockHeight = height;\n while (!done) {\n const response = await this.validators({\n per_page: 50,\n height: blockHeight,\n page: page,\n });\n validators.push(...response.validators);\n blockHeight = blockHeight || response.blockHeight;\n if (validators.length < response.total) {\n page++;\n }\n else {\n done = true;\n }\n }\n return {\n // NOTE: Default value is for type safety but this should always be set\n blockHeight: blockHeight ?? 0,\n count: validators.length,\n total: validators.length,\n validators: validators,\n };\n }\n // doCall is a helper to handle the encode/call/decode logic\n async doCall(request, encode, decode) {\n const req = encode(request);\n const result = await this.client.execute(req);\n return decode(result);\n }\n subscribe(request, decode) {\n if (!(0, rpcclients_1.instanceOfRpcStreamingClient)(this.client)) {\n throw new Error(\"This RPC client type cannot subscribe to events\");\n }\n const req = adaptor_1.Params.encodeSubscribe(request);\n const eventStream = this.client.listen(req);\n return eventStream.map((event) => {\n return decode(event);\n });\n }\n}\nexports.Tendermint34Client = Tendermint34Client;\n//# sourceMappingURL=tendermint34client.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Responses = exports.Params = void 0;\nvar requests_1 = require(\"./requests\");\nObject.defineProperty(exports, \"Params\", { enumerable: true, get: function () { return requests_1.Params; } });\nvar responses_1 = require(\"./responses\");\nObject.defineProperty(exports, \"Responses\", { enumerable: true, get: function () { return responses_1.Responses; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst inthelpers_1 = require(\"../../inthelpers\");\nconst jsonrpc_1 = require(\"../../jsonrpc\");\nconst encodings_1 = require(\"../encodings\");\nconst requests = __importStar(require(\"../requests\"));\nfunction encodeHeightParam(param) {\n return {\n height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.height),\n };\n}\nfunction encodeBlockchainRequestParams(param) {\n return {\n minHeight: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.minHeight),\n maxHeight: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.maxHeight),\n };\n}\nfunction encodeBlockSearchParams(params) {\n return {\n query: params.query,\n page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page),\n per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page),\n order_by: params.order_by,\n };\n}\nfunction encodeAbciQueryParams(params) {\n return {\n path: (0, encodings_1.assertNotEmpty)(params.path),\n data: (0, encoding_1.toHex)(params.data),\n height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.height),\n prove: params.prove,\n };\n}\nfunction encodeBroadcastTxParams(params) {\n return {\n tx: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.tx)),\n };\n}\nfunction encodeTxParams(params) {\n return {\n hash: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.hash)),\n prove: params.prove,\n };\n}\nfunction encodeTxSearchParams(params) {\n return {\n query: params.query,\n prove: params.prove,\n page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page),\n per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page),\n order_by: params.order_by,\n };\n}\nfunction encodeValidatorsParams(params) {\n return {\n height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.height),\n page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page),\n per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page),\n };\n}\nclass Params {\n static encodeAbciInfo(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeAbciQuery(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeAbciQueryParams(req.params));\n }\n static encodeBlock(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeBlockchain(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockchainRequestParams(req.params));\n }\n static encodeBlockResults(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeBlockSearch(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockSearchParams(req.params));\n }\n static encodeBroadcastTx(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBroadcastTxParams(req.params));\n }\n static encodeCommit(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeGenesis(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeHealth(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeNumUnconfirmedTxs(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeStatus(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeSubscribe(req) {\n const eventTag = { key: \"tm.event\", value: req.query.type };\n const query = requests.buildQuery({ tags: [eventTag], raw: req.query.raw });\n return (0, jsonrpc_1.createJsonRpcRequest)(\"subscribe\", { query: query });\n }\n static encodeTx(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxParams(req.params));\n }\n // TODO: encode params for query string???\n static encodeTxSearch(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxSearchParams(req.params));\n }\n static encodeValidators(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeValidatorsParams(req.params));\n }\n}\nexports.Params = Params;\n//# sourceMappingURL=requests.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Responses = void 0;\nexports.decodeEvent = decodeEvent;\nexports.decodeValidatorUpdate = decodeValidatorUpdate;\nexports.decodeValidatorGenesis = decodeValidatorGenesis;\nexports.decodeValidatorInfo = decodeValidatorInfo;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst dates_1 = require(\"../../dates\");\nconst inthelpers_1 = require(\"../../inthelpers\");\nconst types_1 = require(\"../../types\");\nconst encodings_1 = require(\"../encodings\");\nconst hasher_1 = require(\"../hasher\");\nfunction decodeAbciInfo(data) {\n return {\n data: data.data,\n lastBlockHeight: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.last_block_height),\n lastBlockAppHash: (0, encodings_1.may)(encoding_1.fromBase64, data.last_block_app_hash),\n };\n}\nfunction decodeQueryProof(data) {\n return {\n ops: data.ops.map((op) => ({\n type: op.type,\n key: (0, encoding_1.fromBase64)(op.key),\n data: (0, encoding_1.fromBase64)(op.data),\n })),\n };\n}\nfunction decodeAbciQuery(data) {\n return {\n key: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(data.key ?? \"\")),\n value: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(data.value ?? \"\")),\n proof: (0, encodings_1.may)(decodeQueryProof, data.proofOps),\n height: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.height),\n code: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.code),\n codespace: (0, encodings_1.assertString)(data.codespace ?? \"\"),\n index: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.index),\n log: data.log,\n info: (0, encodings_1.assertString)(data.info ?? \"\"),\n };\n}\nfunction decodeEventAttribute(attribute) {\n return {\n key: (0, encodings_1.assertNotEmpty)(attribute.key),\n value: attribute.value ?? \"\",\n };\n}\nfunction decodeAttributes(attributes) {\n return (0, encodings_1.assertArray)(attributes).map(decodeEventAttribute);\n}\nfunction decodeEvent(event) {\n return {\n type: event.type,\n attributes: event.attributes ? decodeAttributes(event.attributes) : [],\n };\n}\nfunction decodeEvents(events) {\n return (0, encodings_1.assertArray)(events).map(decodeEvent);\n}\nfunction decodeTxData(data) {\n return {\n code: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNumber)(data.code ?? 0)),\n codespace: data.codespace,\n log: data.log,\n data: (0, encodings_1.may)(encoding_1.fromBase64, data.data),\n events: data.events ? decodeEvents(data.events) : [],\n gasWanted: (0, inthelpers_1.apiToBigInt)(data.gas_wanted ?? \"0\"),\n gasUsed: (0, inthelpers_1.apiToBigInt)(data.gas_used ?? \"0\"),\n };\n}\nfunction decodePubkey(data) {\n if (\"Sum\" in data) {\n // we don't need to check type because we're checking algorithm\n const [[algorithm, value]] = Object.entries(data.Sum.value);\n (0, utils_1.assert)(algorithm === \"ed25519\" || algorithm === \"secp256k1\", `unknown pubkey type: ${algorithm}`);\n return {\n algorithm,\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(value)),\n };\n }\n else {\n switch (data.type) {\n // go-amino special code\n case \"tendermint/PubKeyEd25519\":\n return {\n algorithm: \"ed25519\",\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)),\n };\n case \"tendermint/PubKeySecp256k1\":\n return {\n algorithm: \"secp256k1\",\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)),\n };\n default:\n throw new Error(`unknown pubkey type: ${data.type}`);\n }\n }\n}\n/**\n * Note: we do not parse block.time_iota_ms for now because of this CHANGELOG entry\n *\n * > Add time_iota_ms to block's consensus parameters (not exposed to the application)\n * https://github.com/tendermint/tendermint/blob/master/CHANGELOG.md#v0310\n */\nfunction decodeBlockParams(data) {\n return {\n maxBytes: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_bytes)),\n maxGas: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_gas)),\n };\n}\nfunction decodeEvidenceParams(data) {\n return {\n maxAgeNumBlocks: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_age_num_blocks)),\n maxAgeDuration: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_age_duration)),\n };\n}\nfunction decodeConsensusParams(data) {\n return {\n block: decodeBlockParams((0, encodings_1.assertObject)(data.block)),\n evidence: decodeEvidenceParams((0, encodings_1.assertObject)(data.evidence)),\n };\n}\nfunction decodeValidatorUpdate(data) {\n return {\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: (0, inthelpers_1.apiToBigInt)(data.power ?? \"0\"),\n };\n}\nfunction decodeBlockResults(data) {\n return {\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n results: (data.txs_results || []).map(decodeTxData),\n validatorUpdates: (data.validator_updates || []).map(decodeValidatorUpdate),\n consensusUpdates: (0, encodings_1.may)(decodeConsensusParams, data.consensus_param_updates),\n beginBlockEvents: decodeEvents(data.begin_block_events || []),\n endBlockEvents: decodeEvents(data.end_block_events || []),\n };\n}\nfunction decodeBlockId(data) {\n return {\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n parts: {\n total: (0, encodings_1.assertNotEmpty)(data.parts.total),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.parts.hash)),\n },\n };\n}\nfunction decodeBlockVersion(data) {\n return {\n block: (0, inthelpers_1.apiToSmallInt)(data.block),\n app: (0, inthelpers_1.apiToSmallInt)(data.app ?? 0),\n };\n}\nfunction decodeHeader(data) {\n return {\n version: decodeBlockVersion(data.version),\n chainId: (0, encodings_1.assertNotEmpty)(data.chain_id),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n time: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.time)),\n // When there is no last block ID (i.e. this block's height is 1), we get an empty structure like this:\n // { hash: '', parts: { total: 0, hash: '' } }\n lastBlockId: data.last_block_id.hash ? decodeBlockId(data.last_block_id) : null,\n lastCommitHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_commit_hash)),\n dataHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.data_hash)),\n validatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.validators_hash)),\n nextValidatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.next_validators_hash)),\n consensusHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.consensus_hash)),\n appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)),\n lastResultsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_results_hash)),\n evidenceHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.evidence_hash)),\n proposerAddress: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.proposer_address)),\n };\n}\nfunction decodeBlockMeta(data) {\n return {\n blockId: decodeBlockId(data.block_id),\n blockSize: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.block_size)),\n header: decodeHeader(data.header),\n numTxs: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.num_txs)),\n };\n}\nfunction decodeBlockchain(data) {\n return {\n lastHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.last_height)),\n blockMetas: (0, encodings_1.assertArray)(data.block_metas).map(decodeBlockMeta),\n };\n}\nfunction decodeBroadcastTxSync(data) {\n return {\n ...decodeTxData(data),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n };\n}\nfunction decodeBroadcastTxCommit(data) {\n return {\n height: (0, inthelpers_1.apiToSmallInt)(data.height),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n checkTx: decodeTxData((0, encodings_1.assertObject)(data.check_tx)),\n deliverTx: (0, encodings_1.may)(decodeTxData, data.deliver_tx),\n };\n}\nfunction decodeBlockIdFlag(blockIdFlag) {\n (0, utils_1.assert)(blockIdFlag in types_1.BlockIdFlag);\n return blockIdFlag;\n}\nfunction decodeCommitSignature(data) {\n return {\n blockIdFlag: decodeBlockIdFlag(data.block_id_flag),\n validatorAddress: data.validator_address ? (0, encoding_1.fromHex)(data.validator_address) : undefined,\n timestamp: data.timestamp ? (0, dates_1.fromRfc3339WithNanoseconds)(data.timestamp) : undefined,\n signature: data.signature ? (0, encoding_1.fromBase64)(data.signature) : undefined,\n };\n}\nfunction decodeCommit(data) {\n return {\n blockId: decodeBlockId((0, encodings_1.assertObject)(data.block_id)),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n round: (0, inthelpers_1.apiToSmallInt)(data.round),\n signatures: (0, encodings_1.assertArray)(data.signatures).map(decodeCommitSignature),\n };\n}\nfunction decodeCommitResponse(data) {\n return {\n canonical: (0, encodings_1.assertBoolean)(data.canonical),\n header: decodeHeader(data.signed_header.header),\n commit: decodeCommit(data.signed_header.commit),\n };\n}\nfunction decodeValidatorGenesis(data) {\n return {\n address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)),\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: (0, inthelpers_1.apiToBigInt)((0, encodings_1.assertNotEmpty)(data.power)),\n };\n}\nfunction decodeGenesis(data) {\n return {\n genesisTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.genesis_time)),\n chainId: (0, encodings_1.assertNotEmpty)(data.chain_id),\n consensusParams: decodeConsensusParams(data.consensus_params),\n validators: data.validators ? (0, encodings_1.assertArray)(data.validators).map(decodeValidatorGenesis) : [],\n appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)), // empty string in kvstore app\n appState: data.app_state,\n };\n}\nfunction decodeValidatorInfo(data) {\n return {\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: (0, inthelpers_1.apiToBigInt)((0, encodings_1.assertNotEmpty)(data.voting_power)),\n address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)),\n proposerPriority: data.proposer_priority ? (0, inthelpers_1.apiToSmallInt)(data.proposer_priority) : undefined,\n };\n}\nfunction decodeNodeInfo(data) {\n return {\n id: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.id)),\n listenAddr: (0, encodings_1.assertNotEmpty)(data.listen_addr),\n network: (0, encodings_1.assertNotEmpty)(data.network),\n version: (0, encodings_1.assertString)(data.version), // Can be empty (https://github.com/cosmos/cosmos-sdk/issues/7963)\n channels: (0, encodings_1.assertString)(data.channels), // can be empty\n moniker: (0, encodings_1.assertNotEmpty)(data.moniker),\n other: (0, encodings_1.dictionaryToStringMap)(data.other),\n protocolVersion: {\n app: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.app)),\n block: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.block)),\n p2p: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.p2p)),\n },\n };\n}\nfunction decodeSyncInfo(data) {\n const earliestBlockHeight = data.earliest_block_height\n ? (0, inthelpers_1.apiToSmallInt)(data.earliest_block_height)\n : undefined;\n const earliestBlockTime = data.earliest_block_time\n ? (0, dates_1.fromRfc3339WithNanoseconds)(data.earliest_block_time)\n : undefined;\n return {\n earliestAppHash: data.earliest_app_hash ? (0, encoding_1.fromHex)(data.earliest_app_hash) : undefined,\n earliestBlockHash: data.earliest_block_hash ? (0, encoding_1.fromHex)(data.earliest_block_hash) : undefined,\n earliestBlockHeight: earliestBlockHeight || undefined,\n earliestBlockTime: earliestBlockTime?.getTime() ? earliestBlockTime : undefined,\n latestBlockHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_block_hash)),\n latestAppHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_app_hash)),\n latestBlockTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.latest_block_time)),\n latestBlockHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.latest_block_height)),\n catchingUp: (0, encodings_1.assertBoolean)(data.catching_up),\n };\n}\nfunction decodeStatus(data) {\n return {\n nodeInfo: decodeNodeInfo(data.node_info),\n syncInfo: decodeSyncInfo(data.sync_info),\n validatorInfo: decodeValidatorInfo(data.validator_info),\n };\n}\nfunction decodeTxProof(data) {\n return {\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.data)),\n rootHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.root_hash)),\n proof: {\n total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.proof.total)),\n index: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.proof.index)),\n leafHash: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.proof.leaf_hash)),\n aunts: (0, encodings_1.assertArray)(data.proof.aunts).map(encoding_1.fromBase64),\n },\n };\n}\nfunction decodeTxResponse(data) {\n return {\n tx: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx)),\n result: decodeTxData((0, encodings_1.assertObject)(data.tx_result)),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n index: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNumber)(data.index)),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n proof: (0, encodings_1.may)(decodeTxProof, data.proof),\n };\n}\nfunction decodeTxSearch(data) {\n return {\n totalCount: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_count)),\n txs: (0, encodings_1.assertArray)(data.txs).map(decodeTxResponse),\n };\n}\nfunction decodeTxEvent(data) {\n const tx = (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx));\n return {\n tx: tx,\n hash: (0, hasher_1.hashTx)(tx),\n result: decodeTxData(data.result),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n };\n}\nfunction decodeValidators(data) {\n return {\n blockHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.block_height)),\n validators: (0, encodings_1.assertArray)(data.validators).map(decodeValidatorInfo),\n count: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.count)),\n total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total)),\n };\n}\nfunction decodeBlock(data) {\n return {\n header: decodeHeader((0, encodings_1.assertObject)(data.header)),\n // For the block at height 1, last commit is not set. This is represented in an empty object like this:\n // { height: '0', round: 0, block_id: { hash: '', parts: [Object] }, signatures: [] }\n lastCommit: data.last_commit.block_id.hash ? decodeCommit((0, encodings_1.assertObject)(data.last_commit)) : null,\n txs: data.data.txs ? (0, encodings_1.assertArray)(data.data.txs).map(encoding_1.fromBase64) : [],\n // Lift up .evidence.evidence to just .evidence\n // See https://github.com/tendermint/tendermint/issues/7697\n evidence: data.evidence?.evidence ?? [],\n };\n}\nfunction decodeBlockResponse(data) {\n return {\n blockId: decodeBlockId(data.block_id),\n block: decodeBlock(data.block),\n };\n}\nfunction decodeBlockSearch(data) {\n return {\n totalCount: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_count)),\n blocks: (0, encodings_1.assertArray)(data.blocks).map(decodeBlockResponse),\n };\n}\nfunction decodeNumUnconfirmedTxs(data) {\n return {\n total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total)),\n totalBytes: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_bytes)),\n };\n}\nclass Responses {\n static decodeAbciInfo(response) {\n return decodeAbciInfo((0, encodings_1.assertObject)(response.result.response));\n }\n static decodeAbciQuery(response) {\n return decodeAbciQuery((0, encodings_1.assertObject)(response.result.response));\n }\n static decodeBlock(response) {\n return decodeBlockResponse(response.result);\n }\n static decodeBlockResults(response) {\n return decodeBlockResults(response.result);\n }\n static decodeBlockSearch(response) {\n return decodeBlockSearch(response.result);\n }\n static decodeBlockchain(response) {\n return decodeBlockchain(response.result);\n }\n static decodeBroadcastTxSync(response) {\n return decodeBroadcastTxSync(response.result);\n }\n static decodeBroadcastTxAsync(response) {\n return Responses.decodeBroadcastTxSync(response);\n }\n static decodeBroadcastTxCommit(response) {\n return decodeBroadcastTxCommit(response.result);\n }\n static decodeCommit(response) {\n return decodeCommitResponse(response.result);\n }\n static decodeGenesis(response) {\n return decodeGenesis((0, encodings_1.assertObject)(response.result.genesis));\n }\n static decodeHealth() {\n return null;\n }\n static decodeNumUnconfirmedTxs(response) {\n return decodeNumUnconfirmedTxs(response.result);\n }\n static decodeStatus(response) {\n return decodeStatus(response.result);\n }\n static decodeNewBlockEvent(event) {\n return decodeBlock(event.data.value.block);\n }\n static decodeNewBlockHeaderEvent(event) {\n return decodeHeader(event.data.value.header);\n }\n static decodeTxEvent(event) {\n return decodeTxEvent(event.data.value.TxResult);\n }\n static decodeTx(response) {\n return decodeTxResponse(response.result);\n }\n static decodeTxSearch(response) {\n return decodeTxSearch(response.result);\n }\n static decodeValidators(response) {\n return decodeValidators(response.result);\n }\n}\nexports.Responses = Responses;\n//# sourceMappingURL=responses.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assertSet = assertSet;\nexports.assertBoolean = assertBoolean;\nexports.assertString = assertString;\nexports.assertNumber = assertNumber;\nexports.assertArray = assertArray;\nexports.assertObject = assertObject;\nexports.assertNotEmpty = assertNotEmpty;\nexports.may = may;\nexports.dictionaryToStringMap = dictionaryToStringMap;\nexports.encodeString = encodeString;\nexports.encodeUvarint = encodeUvarint;\nexports.encodeTime = encodeTime;\nexports.encodeBytes = encodeBytes;\nexports.encodeVersion = encodeVersion;\nexports.encodeBlockId = encodeBlockId;\nconst encoding_1 = require(\"@cosmjs/encoding\");\n/**\n * A runtime checker that ensures a given value is set (i.e. not undefined or null)\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n */\nfunction assertSet(value) {\n if (value === undefined) {\n throw new Error(\"Value must not be undefined\");\n }\n if (value === null) {\n throw new Error(\"Value must not be null\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is a boolean\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertBoolean(value) {\n assertSet(value);\n if (typeof value !== \"boolean\") {\n throw new Error(\"Value must be a boolean\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is a string.\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertString(value) {\n assertSet(value);\n if (typeof value !== \"string\") {\n throw new Error(\"Value must be a string\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is a number\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertNumber(value) {\n assertSet(value);\n if (typeof value !== \"number\") {\n throw new Error(\"Value must be a number\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is an array\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertArray(value) {\n assertSet(value);\n if (!Array.isArray(value)) {\n throw new Error(\"Value must be a an array\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is an object in the sense of JSON\n * (an unordered collection of key–value pairs where the keys are strings)\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertObject(value) {\n assertSet(value);\n if (typeof value !== \"object\") {\n throw new Error(\"Value must be an object\");\n }\n // Exclude special kind of objects like Array, Date or Uint8Array\n // Object.prototype.toString() returns a specified value:\n // http://www.ecma-international.org/ecma-262/7.0/index.html#sec-object.prototype.tostring\n if (Object.prototype.toString.call(value) !== \"[object Object]\") {\n throw new Error(\"Value must be a simple object\");\n }\n return value;\n}\n/**\n * Throws an error if value matches the empty value for the\n * given type (array/string of length 0, number of value 0, ...)\n *\n * Otherwise returns the value.\n *\n * This implies assertSet\n */\nfunction assertNotEmpty(value) {\n assertSet(value);\n if (typeof value === \"number\" && value === 0) {\n throw new Error(\"must provide a non-zero value\");\n }\n else if (value.length === 0) {\n throw new Error(\"must provide a non-empty value\");\n }\n return value;\n}\n// may will run the transform if value is defined, otherwise returns undefined\nfunction may(transform, value) {\n return value === undefined || value === null ? undefined : transform(value);\n}\nfunction dictionaryToStringMap(obj) {\n const out = new Map();\n for (const key of Object.keys(obj)) {\n const value = obj[key];\n if (typeof value !== \"string\") {\n throw new Error(\"Found dictionary value of type other than string\");\n }\n out.set(key, value);\n }\n return out;\n}\n// Encodings needed for hashing block headers\n// Several of these functions are inspired by https://github.com/nomic-io/js-tendermint/blob/tendermint-0.30/src/\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L193-L195\nfunction encodeString(s) {\n const utf8 = (0, encoding_1.toUtf8)(s);\n return Uint8Array.from([utf8.length, ...utf8]);\n}\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L79-L87\nfunction encodeUvarint(n) {\n return n >= 0x80\n ? // eslint-disable-next-line no-bitwise\n Uint8Array.from([(n & 0xff) | 0x80, ...encodeUvarint(n >> 7)])\n : // eslint-disable-next-line no-bitwise\n Uint8Array.from([n & 0xff]);\n}\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L134-L178\nfunction encodeTime(time) {\n const milliseconds = time.getTime();\n const seconds = Math.floor(milliseconds / 1000);\n const secondsArray = seconds ? [0x08, ...encodeUvarint(seconds)] : new Uint8Array();\n const nanoseconds = (time.nanoseconds || 0) + (milliseconds % 1000) * 1e6;\n const nanosecondsArray = nanoseconds ? [0x10, ...encodeUvarint(nanoseconds)] : new Uint8Array();\n return Uint8Array.from([...secondsArray, ...nanosecondsArray]);\n}\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L180-L187\nfunction encodeBytes(bytes) {\n // Since we're only dealing with short byte arrays we don't need a full VarBuffer implementation yet\n if (bytes.length >= 0x80)\n throw new Error(\"Not implemented for byte arrays of length 128 or more\");\n return bytes.length ? Uint8Array.from([bytes.length, ...bytes]) : new Uint8Array();\n}\nfunction encodeVersion(version) {\n const blockArray = version.block\n ? Uint8Array.from([0x08, ...encodeUvarint(version.block)])\n : new Uint8Array();\n const appArray = version.app ? Uint8Array.from([0x10, ...encodeUvarint(version.app)]) : new Uint8Array();\n return Uint8Array.from([...blockArray, ...appArray]);\n}\nfunction encodeBlockId(blockId) {\n return Uint8Array.from([\n 0x0a,\n blockId.hash.length,\n ...blockId.hash,\n 0x12,\n blockId.parts.hash.length + 4,\n 0x08,\n blockId.parts.total,\n 0x12,\n blockId.parts.hash.length,\n ...blockId.parts.hash,\n ]);\n}\n//# sourceMappingURL=encodings.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hashTx = hashTx;\nexports.hashBlock = hashBlock;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encodings_1 = require(\"./encodings\");\n// hash is sha256\n// https://github.com/tendermint/tendermint/blob/master/UPGRADING.md#v0260\nfunction hashTx(tx) {\n return (0, crypto_1.sha256)(tx);\n}\nfunction getSplitPoint(n) {\n if (n < 1)\n throw new Error(\"Cannot split an empty tree\");\n const largestPowerOf2 = 2 ** Math.floor(Math.log2(n));\n return largestPowerOf2 < n ? largestPowerOf2 : largestPowerOf2 / 2;\n}\nfunction hashLeaf(leaf) {\n const hash = new crypto_1.Sha256(Uint8Array.from([0]));\n hash.update(leaf);\n return hash.digest();\n}\nfunction hashInner(left, right) {\n const hash = new crypto_1.Sha256(Uint8Array.from([1]));\n hash.update(left);\n hash.update(right);\n return hash.digest();\n}\n// See https://github.com/tendermint/tendermint/blob/v0.31.8/docs/spec/blockchain/encoding.md#merkleroot\n// Note: the hashes input may not actually be hashes, especially before a recursive call\nfunction hashTree(hashes) {\n switch (hashes.length) {\n case 0:\n throw new Error(\"Cannot hash empty tree\");\n case 1:\n return hashLeaf(hashes[0]);\n default: {\n const slicePoint = getSplitPoint(hashes.length);\n const left = hashTree(hashes.slice(0, slicePoint));\n const right = hashTree(hashes.slice(slicePoint));\n return hashInner(left, right);\n }\n }\n}\nfunction hashBlock(header) {\n if (!header.lastBlockId) {\n throw new Error(\"Hashing a block header with no last block ID (i.e. header at height 1) is not supported. If you need this, contributions are welcome. Please add documentation and test vectors for this case.\");\n }\n const encodedFields = [\n (0, encodings_1.encodeVersion)(header.version),\n (0, encodings_1.encodeString)(header.chainId),\n (0, encodings_1.encodeUvarint)(header.height),\n (0, encodings_1.encodeTime)(header.time),\n (0, encodings_1.encodeBlockId)(header.lastBlockId),\n (0, encodings_1.encodeBytes)(header.lastCommitHash),\n (0, encodings_1.encodeBytes)(header.dataHash),\n (0, encodings_1.encodeBytes)(header.validatorsHash),\n (0, encodings_1.encodeBytes)(header.nextValidatorsHash),\n (0, encodings_1.encodeBytes)(header.consensusHash),\n (0, encodings_1.encodeBytes)(header.appHash),\n (0, encodings_1.encodeBytes)(header.lastResultsHash),\n (0, encodings_1.encodeBytes)(header.evidenceHash),\n (0, encodings_1.encodeBytes)(header.proposerAddress),\n ];\n return hashTree(encodedFields);\n}\n//# sourceMappingURL=hasher.js.map","\"use strict\";\n// Note: all exports in this module are publicly available via\n// `import { tendermint37 } from \"@cosmjs/tendermint-rpc\"`\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Tendermint37Client = exports.VoteType = exports.broadcastTxSyncSuccess = exports.broadcastTxCommitSuccess = exports.SubscriptionEventType = exports.Method = void 0;\nvar requests_1 = require(\"./requests\");\nObject.defineProperty(exports, \"Method\", { enumerable: true, get: function () { return requests_1.Method; } });\nObject.defineProperty(exports, \"SubscriptionEventType\", { enumerable: true, get: function () { return requests_1.SubscriptionEventType; } });\nvar responses_1 = require(\"./responses\");\nObject.defineProperty(exports, \"broadcastTxCommitSuccess\", { enumerable: true, get: function () { return responses_1.broadcastTxCommitSuccess; } });\nObject.defineProperty(exports, \"broadcastTxSyncSuccess\", { enumerable: true, get: function () { return responses_1.broadcastTxSyncSuccess; } });\nObject.defineProperty(exports, \"VoteType\", { enumerable: true, get: function () { return responses_1.VoteType; } });\nvar tendermint37client_1 = require(\"./tendermint37client\");\nObject.defineProperty(exports, \"Tendermint37Client\", { enumerable: true, get: function () { return tendermint37client_1.Tendermint37Client; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/naming-convention */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SubscriptionEventType = exports.Method = void 0;\nexports.buildQuery = buildQuery;\n/**\n * RPC methods as documented in https://docs.tendermint.com/master/rpc/\n *\n * Enum raw value must match the spelling in the \"shell\" example call (snake_case)\n */\nvar Method;\n(function (Method) {\n Method[\"AbciInfo\"] = \"abci_info\";\n Method[\"AbciQuery\"] = \"abci_query\";\n Method[\"Block\"] = \"block\";\n /** Get block headers for minHeight <= height <= maxHeight. */\n Method[\"Blockchain\"] = \"blockchain\";\n Method[\"BlockResults\"] = \"block_results\";\n Method[\"BlockSearch\"] = \"block_search\";\n Method[\"BroadcastTxAsync\"] = \"broadcast_tx_async\";\n Method[\"BroadcastTxSync\"] = \"broadcast_tx_sync\";\n Method[\"BroadcastTxCommit\"] = \"broadcast_tx_commit\";\n Method[\"Commit\"] = \"commit\";\n Method[\"Genesis\"] = \"genesis\";\n Method[\"Health\"] = \"health\";\n Method[\"NumUnconfirmedTxs\"] = \"num_unconfirmed_txs\";\n Method[\"Status\"] = \"status\";\n Method[\"Subscribe\"] = \"subscribe\";\n Method[\"Tx\"] = \"tx\";\n Method[\"TxSearch\"] = \"tx_search\";\n Method[\"Validators\"] = \"validators\";\n Method[\"Unsubscribe\"] = \"unsubscribe\";\n})(Method || (exports.Method = Method = {}));\n/**\n * Raw values must match the tendermint event name\n *\n * @see https://godoc.org/github.com/tendermint/tendermint/types#pkg-constants\n */\nvar SubscriptionEventType;\n(function (SubscriptionEventType) {\n SubscriptionEventType[\"NewBlock\"] = \"NewBlock\";\n SubscriptionEventType[\"NewBlockHeader\"] = \"NewBlockHeader\";\n SubscriptionEventType[\"Tx\"] = \"Tx\";\n})(SubscriptionEventType || (exports.SubscriptionEventType = SubscriptionEventType = {}));\nfunction buildQuery(components) {\n const tags = components.tags ? components.tags : [];\n const tagComponents = tags.map((tag) => `${tag.key}='${tag.value}'`);\n const rawComponents = components.raw ? [components.raw] : [];\n return [...tagComponents, ...rawComponents].join(\" AND \");\n}\n//# sourceMappingURL=requests.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VoteType = void 0;\nexports.broadcastTxSyncSuccess = broadcastTxSyncSuccess;\nexports.broadcastTxCommitSuccess = broadcastTxCommitSuccess;\n/**\n * Returns true iff transaction made it successfully into the transaction pool\n */\nfunction broadcastTxSyncSuccess(res) {\n // code must be 0 on success\n return res.code === 0;\n}\n/**\n * Returns true iff transaction made it successfully into a block\n * (i.e. success in `check_tx` and `deliver_tx` field)\n */\nfunction broadcastTxCommitSuccess(response) {\n // code must be 0 on success\n // deliverTx may be present but empty on failure\n return response.checkTx.code === 0 && !!response.deliverTx && response.deliverTx.code === 0;\n}\n/**\n * raw values from https://github.com/tendermint/tendermint/blob/dfa9a9a30a666132425b29454e90a472aa579a48/types/vote.go#L44\n */\nvar VoteType;\n(function (VoteType) {\n VoteType[VoteType[\"PreVote\"] = 1] = \"PreVote\";\n VoteType[VoteType[\"PreCommit\"] = 2] = \"PreCommit\";\n})(VoteType || (exports.VoteType = VoteType = {}));\n//# sourceMappingURL=responses.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Tendermint37Client = void 0;\nconst jsonrpc_1 = require(\"../jsonrpc\");\nconst rpcclients_1 = require(\"../rpcclients\");\nconst adaptor_1 = require(\"./adaptor\");\nconst requests = __importStar(require(\"./requests\"));\nclass Tendermint37Client {\n /**\n * Creates a new Tendermint client for the given endpoint.\n *\n * Uses HTTP when the URL schema is http or https. Uses WebSockets otherwise.\n */\n static async connect(endpoint) {\n let rpcClient;\n if (typeof endpoint === \"object\") {\n rpcClient = new rpcclients_1.HttpClient(endpoint);\n }\n else {\n const useHttp = endpoint.startsWith(\"http://\") || endpoint.startsWith(\"https://\");\n rpcClient = useHttp ? new rpcclients_1.HttpClient(endpoint) : new rpcclients_1.WebsocketClient(endpoint);\n }\n // For some very strange reason I don't understand, tests start to fail on some systems\n // (our CI) when skipping the status call before doing other queries. Sleeping a little\n // while did not help. Thus we query the version as a way to say \"hi\" to the backend,\n // even in cases where we don't use the result.\n const _version = await this.detectVersion(rpcClient);\n return Tendermint37Client.create(rpcClient);\n }\n /**\n * Creates a new Tendermint client given an RPC client.\n */\n static async create(rpcClient) {\n return new Tendermint37Client(rpcClient);\n }\n static async detectVersion(client) {\n const req = (0, jsonrpc_1.createJsonRpcRequest)(requests.Method.Status);\n const response = await client.execute(req);\n const result = response.result;\n if (!result || !result.node_info) {\n throw new Error(\"Unrecognized format for status response\");\n }\n const version = result.node_info.version;\n if (typeof version !== \"string\") {\n throw new Error(\"Unrecognized version format: must be string\");\n }\n return version;\n }\n /**\n * Use `Tendermint37Client.connect` or `Tendermint37Client.create` to create an instance.\n */\n constructor(client) {\n this.client = client;\n }\n disconnect() {\n this.client.disconnect();\n }\n async abciInfo() {\n const query = { method: requests.Method.AbciInfo };\n return this.doCall(query, adaptor_1.Params.encodeAbciInfo, adaptor_1.Responses.decodeAbciInfo);\n }\n async abciQuery(params) {\n const query = { params: params, method: requests.Method.AbciQuery };\n return this.doCall(query, adaptor_1.Params.encodeAbciQuery, adaptor_1.Responses.decodeAbciQuery);\n }\n async block(height) {\n const query = { method: requests.Method.Block, params: { height: height } };\n return this.doCall(query, adaptor_1.Params.encodeBlock, adaptor_1.Responses.decodeBlock);\n }\n async blockResults(height) {\n const query = {\n method: requests.Method.BlockResults,\n params: { height: height },\n };\n return this.doCall(query, adaptor_1.Params.encodeBlockResults, adaptor_1.Responses.decodeBlockResults);\n }\n /**\n * Search for events that are in a block.\n *\n * NOTE\n * This method will error on any node that is running a Tendermint version lower than 0.34.9.\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/block_search\n */\n async blockSearch(params) {\n const query = { params: params, method: requests.Method.BlockSearch };\n const resp = await this.doCall(query, adaptor_1.Params.encodeBlockSearch, adaptor_1.Responses.decodeBlockSearch);\n return {\n ...resp,\n // make sure we sort by height, as tendermint may be sorting by string value of the height\n blocks: [...resp.blocks].sort((a, b) => a.block.header.height - b.block.header.height),\n };\n }\n // this should paginate through all blockSearch options to ensure it returns all results.\n // starts with page 1 or whatever was provided (eg. to start on page 7)\n //\n // NOTE\n // This method will error on any node that is running a Tendermint version lower than 0.34.9.\n async blockSearchAll(params) {\n let page = params.page || 1;\n const blocks = [];\n let done = false;\n while (!done) {\n const resp = await this.blockSearch({ ...params, page: page });\n blocks.push(...resp.blocks);\n if (blocks.length < resp.totalCount) {\n page++;\n }\n else {\n done = true;\n }\n }\n // make sure we sort by height, as tendermint may be sorting by string value of the height\n // and the earlier items may be in a higher page than the later items\n blocks.sort((a, b) => a.block.header.height - b.block.header.height);\n return {\n totalCount: blocks.length,\n blocks: blocks,\n };\n }\n /**\n * Queries block headers filtered by minHeight <= height <= maxHeight.\n *\n * @param minHeight The minimum height to be included in the result. Defaults to 0.\n * @param maxHeight The maximum height to be included in the result. Defaults to infinity.\n */\n async blockchain(minHeight, maxHeight) {\n const query = {\n method: requests.Method.Blockchain,\n params: {\n minHeight: minHeight,\n maxHeight: maxHeight,\n },\n };\n return this.doCall(query, adaptor_1.Params.encodeBlockchain, adaptor_1.Responses.decodeBlockchain);\n }\n /**\n * Broadcast transaction to mempool and wait for response\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_sync\n */\n async broadcastTxSync(params) {\n const query = { params: params, method: requests.Method.BroadcastTxSync };\n return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxSync);\n }\n /**\n * Broadcast transaction to mempool and do not wait for result\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_async\n */\n async broadcastTxAsync(params) {\n const query = { params: params, method: requests.Method.BroadcastTxAsync };\n return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxAsync);\n }\n /**\n * Broadcast transaction to mempool and wait for block\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_commit\n */\n async broadcastTxCommit(params) {\n const query = { params: params, method: requests.Method.BroadcastTxCommit };\n return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxCommit);\n }\n async commit(height) {\n const query = { method: requests.Method.Commit, params: { height: height } };\n return this.doCall(query, adaptor_1.Params.encodeCommit, adaptor_1.Responses.decodeCommit);\n }\n async genesis() {\n const query = { method: requests.Method.Genesis };\n return this.doCall(query, adaptor_1.Params.encodeGenesis, adaptor_1.Responses.decodeGenesis);\n }\n async health() {\n const query = { method: requests.Method.Health };\n return this.doCall(query, adaptor_1.Params.encodeHealth, adaptor_1.Responses.decodeHealth);\n }\n async numUnconfirmedTxs() {\n const query = { method: requests.Method.NumUnconfirmedTxs };\n return this.doCall(query, adaptor_1.Params.encodeNumUnconfirmedTxs, adaptor_1.Responses.decodeNumUnconfirmedTxs);\n }\n async status() {\n const query = { method: requests.Method.Status };\n return this.doCall(query, adaptor_1.Params.encodeStatus, adaptor_1.Responses.decodeStatus);\n }\n subscribeNewBlock() {\n const request = {\n method: requests.Method.Subscribe,\n query: { type: requests.SubscriptionEventType.NewBlock },\n };\n return this.subscribe(request, adaptor_1.Responses.decodeNewBlockEvent);\n }\n subscribeNewBlockHeader() {\n const request = {\n method: requests.Method.Subscribe,\n query: { type: requests.SubscriptionEventType.NewBlockHeader },\n };\n return this.subscribe(request, adaptor_1.Responses.decodeNewBlockHeaderEvent);\n }\n subscribeTx(query) {\n const request = {\n method: requests.Method.Subscribe,\n query: {\n type: requests.SubscriptionEventType.Tx,\n raw: query,\n },\n };\n return this.subscribe(request, adaptor_1.Responses.decodeTxEvent);\n }\n /**\n * Get a single transaction by hash\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/tx\n */\n async tx(params) {\n const query = { params: params, method: requests.Method.Tx };\n return this.doCall(query, adaptor_1.Params.encodeTx, adaptor_1.Responses.decodeTx);\n }\n /**\n * Search for transactions that are in a block\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/tx_search\n */\n async txSearch(params) {\n const query = { params: params, method: requests.Method.TxSearch };\n return this.doCall(query, adaptor_1.Params.encodeTxSearch, adaptor_1.Responses.decodeTxSearch);\n }\n // this should paginate through all txSearch options to ensure it returns all results.\n // starts with page 1 or whatever was provided (eg. to start on page 7)\n async txSearchAll(params) {\n let page = params.page || 1;\n const txs = [];\n let done = false;\n while (!done) {\n const resp = await this.txSearch({ ...params, page: page });\n txs.push(...resp.txs);\n if (txs.length < resp.totalCount) {\n page++;\n }\n else {\n done = true;\n }\n }\n return {\n totalCount: txs.length,\n txs: txs,\n };\n }\n async validators(params) {\n const query = {\n method: requests.Method.Validators,\n params: params,\n };\n return this.doCall(query, adaptor_1.Params.encodeValidators, adaptor_1.Responses.decodeValidators);\n }\n async validatorsAll(height) {\n const validators = [];\n let page = 1;\n let done = false;\n let blockHeight = height;\n while (!done) {\n const response = await this.validators({\n per_page: 50,\n height: blockHeight,\n page: page,\n });\n validators.push(...response.validators);\n blockHeight = blockHeight || response.blockHeight;\n if (validators.length < response.total) {\n page++;\n }\n else {\n done = true;\n }\n }\n return {\n // NOTE: Default value is for type safety but this should always be set\n blockHeight: blockHeight ?? 0,\n count: validators.length,\n total: validators.length,\n validators: validators,\n };\n }\n // doCall is a helper to handle the encode/call/decode logic\n async doCall(request, encode, decode) {\n const req = encode(request);\n const result = await this.client.execute(req);\n return decode(result);\n }\n subscribe(request, decode) {\n if (!(0, rpcclients_1.instanceOfRpcStreamingClient)(this.client)) {\n throw new Error(\"This RPC client type cannot subscribe to events\");\n }\n const req = adaptor_1.Params.encodeSubscribe(request);\n const eventStream = this.client.listen(req);\n return eventStream.map((event) => {\n return decode(event);\n });\n }\n}\nexports.Tendermint37Client = Tendermint37Client;\n//# sourceMappingURL=tendermint37client.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isTendermint34Client = isTendermint34Client;\nexports.isTendermint37Client = isTendermint37Client;\nexports.isComet38Client = isComet38Client;\nexports.connectComet = connectComet;\nconst comet38_1 = require(\"./comet38\");\nconst tendermint34_1 = require(\"./tendermint34\");\nconst tendermint37_1 = require(\"./tendermint37\");\nfunction isTendermint34Client(client) {\n return client instanceof tendermint34_1.Tendermint34Client;\n}\nfunction isTendermint37Client(client) {\n return client instanceof tendermint37_1.Tendermint37Client;\n}\nfunction isComet38Client(client) {\n return client instanceof comet38_1.Comet38Client;\n}\n/**\n * Auto-detects the version of the backend and uses a suitable client.\n */\nasync function connectComet(endpoint) {\n // Tendermint/CometBFT 0.34/0.37/0.38 auto-detection. Starting with 0.37 we seem to get reliable versions again 🎉\n // Using 0.34 as the fallback.\n let out;\n const tm37Client = await tendermint37_1.Tendermint37Client.connect(endpoint);\n const version = (await tm37Client.status()).nodeInfo.version;\n if (version.startsWith(\"0.37.\")) {\n out = tm37Client;\n }\n else if (version.startsWith(\"0.38.\") || version.startsWith(\"1.0.\")) {\n tm37Client.disconnect();\n out = await comet38_1.Comet38Client.connect(endpoint);\n }\n else {\n tm37Client.disconnect();\n out = await tendermint34_1.Tendermint34Client.connect(endpoint);\n }\n return out;\n}\n//# sourceMappingURL=tendermintclient.js.map","\"use strict\";\n// Types in this file are exported outside of the @cosmjs/tendermint-rpc package,\n// e.g. as part of a request or response\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlockIdFlag = void 0;\nvar BlockIdFlag;\n(function (BlockIdFlag) {\n BlockIdFlag[BlockIdFlag[\"Unknown\"] = 0] = \"Unknown\";\n BlockIdFlag[BlockIdFlag[\"Absent\"] = 1] = \"Absent\";\n BlockIdFlag[BlockIdFlag[\"Commit\"] = 2] = \"Commit\";\n BlockIdFlag[BlockIdFlag[\"Nil\"] = 3] = \"Nil\";\n BlockIdFlag[BlockIdFlag[\"Unrecognized\"] = -1] = \"Unrecognized\";\n})(BlockIdFlag || (exports.BlockIdFlag = BlockIdFlag = {}));\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toAscii = toAscii;\nexports.fromAscii = fromAscii;\nfunction toAscii(input) {\n const toNums = (str) => str.split(\"\").map((x) => {\n const charCode = x.charCodeAt(0);\n // 0x00–0x1F control characters\n // 0x20–0x7E printable characters\n // 0x7F delete character\n // 0x80–0xFF out of 7 bit ascii range\n if (charCode < 0x20 || charCode > 0x7e) {\n throw new Error(\"Cannot encode character that is out of printable ASCII range: \" + charCode);\n }\n return charCode;\n });\n return Uint8Array.from(toNums(input));\n}\nfunction fromAscii(data) {\n const fromNums = (listOfNumbers) => listOfNumbers.map((x) => {\n // 0x00–0x1F control characters\n // 0x20–0x7E printable characters\n // 0x7F delete character\n // 0x80–0xFF out of 7 bit ascii range\n if (x < 0x20 || x > 0x7e) {\n throw new Error(\"Cannot decode character that is out of printable ASCII range: \" + x);\n }\n return String.fromCharCode(x);\n });\n return fromNums(Array.from(data)).join(\"\");\n}\n//# sourceMappingURL=ascii.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBase64 = toBase64;\nexports.fromBase64 = fromBase64;\nconst base64js = __importStar(require(\"base64-js\"));\nfunction toBase64(data) {\n return base64js.fromByteArray(data);\n}\nfunction fromBase64(base64String) {\n if (!base64String.match(/^[a-zA-Z0-9+/]*={0,2}$/)) {\n throw new Error(\"Invalid base64 string format\");\n }\n return base64js.toByteArray(base64String);\n}\n//# sourceMappingURL=base64.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBech32 = toBech32;\nexports.fromBech32 = fromBech32;\nexports.normalizeBech32 = normalizeBech32;\nconst bech32 = __importStar(require(\"bech32\"));\nfunction toBech32(prefix, data, limit) {\n const address = bech32.encode(prefix, bech32.toWords(data), limit);\n return address;\n}\nfunction fromBech32(address, limit = Infinity) {\n const decodedAddress = bech32.decode(address, limit);\n return {\n prefix: decodedAddress.prefix,\n data: new Uint8Array(bech32.fromWords(decodedAddress.words)),\n };\n}\n/**\n * Takes a bech32 address and returns a normalized (i.e. lower case) representation of it.\n *\n * The input is validated along the way, which makes this significantly safer than\n * using `address.toLowerCase()`.\n */\nfunction normalizeBech32(address) {\n const { prefix, data } = fromBech32(address);\n return toBech32(prefix, data);\n}\n//# sourceMappingURL=bech32.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toHex = toHex;\nexports.fromHex = fromHex;\nfunction toHex(data) {\n let out = \"\";\n for (const byte of data) {\n out += (\"0\" + byte.toString(16)).slice(-2);\n }\n return out;\n}\nfunction fromHex(hexstring) {\n if (hexstring.length % 2 !== 0) {\n throw new Error(\"hex string length must be a multiple of 2\");\n }\n const out = new Uint8Array(hexstring.length / 2);\n for (let i = 0; i < out.length; i++) {\n const j = 2 * i;\n const hexByteAsString = hexstring.slice(j, j + 2);\n if (!hexByteAsString.match(/[0-9a-f]{2}/i)) {\n throw new Error(\"hex string contains invalid characters\");\n }\n out[i] = parseInt(hexByteAsString, 16);\n }\n return out;\n}\n//# sourceMappingURL=hex.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = exports.toRfc3339 = exports.fromRfc3339 = exports.toHex = exports.fromHex = exports.toBech32 = exports.normalizeBech32 = exports.fromBech32 = exports.toBase64 = exports.fromBase64 = exports.toAscii = exports.fromAscii = void 0;\nvar ascii_1 = require(\"./ascii\");\nObject.defineProperty(exports, \"fromAscii\", { enumerable: true, get: function () { return ascii_1.fromAscii; } });\nObject.defineProperty(exports, \"toAscii\", { enumerable: true, get: function () { return ascii_1.toAscii; } });\nvar base64_1 = require(\"./base64\");\nObject.defineProperty(exports, \"fromBase64\", { enumerable: true, get: function () { return base64_1.fromBase64; } });\nObject.defineProperty(exports, \"toBase64\", { enumerable: true, get: function () { return base64_1.toBase64; } });\nvar bech32_1 = require(\"./bech32\");\nObject.defineProperty(exports, \"fromBech32\", { enumerable: true, get: function () { return bech32_1.fromBech32; } });\nObject.defineProperty(exports, \"normalizeBech32\", { enumerable: true, get: function () { return bech32_1.normalizeBech32; } });\nObject.defineProperty(exports, \"toBech32\", { enumerable: true, get: function () { return bech32_1.toBech32; } });\nvar hex_1 = require(\"./hex\");\nObject.defineProperty(exports, \"fromHex\", { enumerable: true, get: function () { return hex_1.fromHex; } });\nObject.defineProperty(exports, \"toHex\", { enumerable: true, get: function () { return hex_1.toHex; } });\nvar rfc3339_1 = require(\"./rfc3339\");\nObject.defineProperty(exports, \"fromRfc3339\", { enumerable: true, get: function () { return rfc3339_1.fromRfc3339; } });\nObject.defineProperty(exports, \"toRfc3339\", { enumerable: true, get: function () { return rfc3339_1.toRfc3339; } });\nvar utf8_1 = require(\"./utf8\");\nObject.defineProperty(exports, \"fromUtf8\", { enumerable: true, get: function () { return utf8_1.fromUtf8; } });\nObject.defineProperty(exports, \"toUtf8\", { enumerable: true, get: function () { return utf8_1.toUtf8; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromRfc3339 = fromRfc3339;\nexports.toRfc3339 = toRfc3339;\nconst rfc3339Matcher = /^(\\d{4})-(\\d{2})-(\\d{2})[T ](\\d{2}):(\\d{2}):(\\d{2})(\\.\\d{1,9})?((?:[+-]\\d{2}:\\d{2})|Z)$/;\nfunction padded(integer, length = 2) {\n return integer.toString().padStart(length, \"0\");\n}\nfunction fromRfc3339(str) {\n const matches = rfc3339Matcher.exec(str);\n if (!matches) {\n throw new Error(\"Date string is not in RFC3339 format\");\n }\n const year = +matches[1];\n const month = +matches[2];\n const day = +matches[3];\n const hour = +matches[4];\n const minute = +matches[5];\n const second = +matches[6];\n // fractional seconds match either undefined or a string like \".1\", \".123456789\"\n const milliSeconds = matches[7] ? Math.floor(+matches[7] * 1000) : 0;\n let tzOffsetSign;\n let tzOffsetHours;\n let tzOffsetMinutes;\n // if timezone is undefined, it must be Z or nothing (otherwise the group would have captured).\n if (matches[8] === \"Z\") {\n tzOffsetSign = 1;\n tzOffsetHours = 0;\n tzOffsetMinutes = 0;\n }\n else {\n tzOffsetSign = matches[8].substring(0, 1) === \"-\" ? -1 : 1;\n tzOffsetHours = +matches[8].substring(1, 3);\n tzOffsetMinutes = +matches[8].substring(4, 6);\n }\n const tzOffset = tzOffsetSign * (tzOffsetHours * 60 + tzOffsetMinutes) * 60; // seconds\n const date = new Date();\n date.setUTCFullYear(year, month - 1, day);\n date.setUTCHours(hour, minute, second, milliSeconds);\n return new Date(date.getTime() - tzOffset * 1000);\n}\nfunction toRfc3339(date) {\n const year = date.getUTCFullYear();\n const month = padded(date.getUTCMonth() + 1);\n const day = padded(date.getUTCDate());\n const hour = padded(date.getUTCHours());\n const minute = padded(date.getUTCMinutes());\n const second = padded(date.getUTCSeconds());\n const ms = padded(date.getUTCMilliseconds(), 3);\n return `${year}-${month}-${day}T${hour}:${minute}:${second}.${ms}Z`;\n}\n//# sourceMappingURL=rfc3339.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = toUtf8;\nexports.fromUtf8 = fromUtf8;\nfunction toUtf8(str) {\n return new TextEncoder().encode(str);\n}\n/**\n * Takes UTF-8 data and decodes it to a string.\n *\n * In lossy mode, the [REPLACEMENT CHARACTER](https://en.wikipedia.org/wiki/Specials_(Unicode_block))\n * is used to substitude invalid encodings.\n * By default lossy mode is off and invalid data will lead to exceptions.\n */\nfunction fromUtf8(data, lossy = false) {\n const fatal = !lossy;\n return new TextDecoder(\"utf-8\", { fatal }).decode(data);\n}\n//# sourceMappingURL=utf8.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Decimal = void 0;\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\n// Too large values lead to massive memory usage. Limit to something sensible.\n// The largest value we need is 18 (Ether).\nconst maxFractionalDigits = 100;\n/**\n * A type for arbitrary precision, non-negative decimals.\n *\n * Instances of this class are immutable.\n */\nclass Decimal {\n static fromUserInput(input, fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n const badCharacter = input.match(/[^0-9.]/);\n if (badCharacter) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n throw new Error(`Invalid character at position ${badCharacter.index + 1}`);\n }\n let whole;\n let fractional;\n if (input === \"\") {\n whole = \"0\";\n fractional = \"\";\n }\n else if (input.search(/\\./) === -1) {\n // integer format, no separator\n whole = input;\n fractional = \"\";\n }\n else {\n const parts = input.split(\".\");\n switch (parts.length) {\n case 0:\n case 1:\n throw new Error(\"Fewer than two elements in split result. This must not happen here.\");\n case 2:\n if (!parts[1])\n throw new Error(\"Fractional part missing\");\n whole = parts[0];\n fractional = parts[1].replace(/0+$/, \"\");\n break;\n default:\n throw new Error(\"More than one separator found\");\n }\n }\n if (fractional.length > fractionalDigits) {\n throw new Error(\"Got more fractional digits than supported\");\n }\n const quantity = `${whole}${fractional.padEnd(fractionalDigits, \"0\")}`;\n return new Decimal(quantity, fractionalDigits);\n }\n static fromAtomics(atomics, fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(atomics, fractionalDigits);\n }\n /**\n * Creates a Decimal with value 0.0 and the given number of fractial digits.\n *\n * Fractional digits are not relevant for the value but needed to be able\n * to perform arithmetic operations with other decimals.\n */\n static zero(fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(\"0\", fractionalDigits);\n }\n /**\n * Creates a Decimal with value 1.0 and the given number of fractial digits.\n *\n * Fractional digits are not relevant for the value but needed to be able\n * to perform arithmetic operations with other decimals.\n */\n static one(fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(\"1\" + \"0\".repeat(fractionalDigits), fractionalDigits);\n }\n static verifyFractionalDigits(fractionalDigits) {\n if (!Number.isInteger(fractionalDigits))\n throw new Error(\"Fractional digits is not an integer\");\n if (fractionalDigits < 0)\n throw new Error(\"Fractional digits must not be negative\");\n if (fractionalDigits > maxFractionalDigits) {\n throw new Error(`Fractional digits must not exceed ${maxFractionalDigits}`);\n }\n }\n static compare(a, b) {\n if (a.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n return a.data.atomics.cmp(new bn_js_1.default(b.atomics));\n }\n get atomics() {\n return this.data.atomics.toString();\n }\n get fractionalDigits() {\n return this.data.fractionalDigits;\n }\n constructor(atomics, fractionalDigits) {\n if (!atomics.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format. Only non-negative integers in decimal representation supported.\");\n }\n this.data = {\n atomics: new bn_js_1.default(atomics),\n fractionalDigits: fractionalDigits,\n };\n }\n /** Creates a new instance with the same value */\n clone() {\n return new Decimal(this.atomics, this.fractionalDigits);\n }\n /** Returns the greatest decimal <= this which has no fractional part (rounding down) */\n floor() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return this.clone();\n }\n else {\n return Decimal.fromAtomics(whole.mul(factor).toString(), this.fractionalDigits);\n }\n }\n /** Returns the smallest decimal >= this which has no fractional part (rounding up) */\n ceil() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return this.clone();\n }\n else {\n return Decimal.fromAtomics(whole.addn(1).mul(factor).toString(), this.fractionalDigits);\n }\n }\n toString() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return whole.toString();\n }\n else {\n const fullFractionalPart = fractional.toString().padStart(this.data.fractionalDigits, \"0\");\n const trimmedFractionalPart = fullFractionalPart.replace(/0+$/, \"\");\n return `${whole.toString()}.${trimmedFractionalPart}`;\n }\n }\n /**\n * Returns an approximation as a float type. Only use this if no\n * exact calculation is required.\n */\n toFloatApproximation() {\n const out = Number(this.toString());\n if (Number.isNaN(out))\n throw new Error(\"Conversion to number failed\");\n return out;\n }\n /**\n * a.plus(b) returns a+b.\n *\n * Both values need to have the same fractional digits.\n */\n plus(b) {\n if (this.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n const sum = this.data.atomics.add(new bn_js_1.default(b.atomics));\n return new Decimal(sum.toString(), this.fractionalDigits);\n }\n /**\n * a.minus(b) returns a-b.\n *\n * Both values need to have the same fractional digits.\n * The resulting difference needs to be non-negative.\n */\n minus(b) {\n if (this.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n const difference = this.data.atomics.sub(new bn_js_1.default(b.atomics));\n if (difference.ltn(0))\n throw new Error(\"Difference must not be negative\");\n return new Decimal(difference.toString(), this.fractionalDigits);\n }\n /**\n * a.multiply(b) returns a*b.\n *\n * We only allow multiplication by unsigned integers to avoid rounding errors.\n */\n multiply(b) {\n const product = this.data.atomics.mul(new bn_js_1.default(b.toString()));\n return new Decimal(product.toString(), this.fractionalDigits);\n }\n equals(b) {\n return Decimal.compare(this, b) === 0;\n }\n isLessThan(b) {\n return Decimal.compare(this, b) < 0;\n }\n isLessThanOrEqual(b) {\n return Decimal.compare(this, b) <= 0;\n }\n isGreaterThan(b) {\n return Decimal.compare(this, b) > 0;\n }\n isGreaterThanOrEqual(b) {\n return Decimal.compare(this, b) >= 0;\n }\n}\nexports.Decimal = Decimal;\n//# sourceMappingURL=decimal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uint64 = exports.Uint53 = exports.Uint32 = exports.Int53 = exports.Decimal = void 0;\nvar decimal_1 = require(\"./decimal\");\nObject.defineProperty(exports, \"Decimal\", { enumerable: true, get: function () { return decimal_1.Decimal; } });\nvar integers_1 = require(\"./integers\");\nObject.defineProperty(exports, \"Int53\", { enumerable: true, get: function () { return integers_1.Int53; } });\nObject.defineProperty(exports, \"Uint32\", { enumerable: true, get: function () { return integers_1.Uint32; } });\nObject.defineProperty(exports, \"Uint53\", { enumerable: true, get: function () { return integers_1.Uint53; } });\nObject.defineProperty(exports, \"Uint64\", { enumerable: true, get: function () { return integers_1.Uint64; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n/* eslint-disable no-bitwise */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uint64 = exports.Uint53 = exports.Int53 = exports.Uint32 = void 0;\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst uint64MaxValue = new bn_js_1.default(\"18446744073709551615\", 10, \"be\");\nclass Uint32 {\n /** @deprecated use Uint32.fromBytes */\n static fromBigEndianBytes(bytes) {\n return Uint32.fromBytes(bytes);\n }\n /**\n * Creates a Uint32 from a fixed length byte array.\n *\n * @param bytes a list of exactly 4 bytes\n * @param endianess defaults to big endian\n */\n static fromBytes(bytes, endianess = \"be\") {\n if (bytes.length !== 4) {\n throw new Error(\"Invalid input length. Expected 4 bytes.\");\n }\n for (let i = 0; i < bytes.length; ++i) {\n if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) {\n throw new Error(\"Invalid value in byte. Found: \" + bytes[i]);\n }\n }\n const beBytes = endianess === \"be\" ? bytes : Array.from(bytes).reverse();\n // Use multiplication instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint32(beBytes[0] * 2 ** 24 + beBytes[1] * 2 ** 16 + beBytes[2] * 2 ** 8 + beBytes[3]);\n }\n static fromString(str) {\n if (!str.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Uint32(Number.parseInt(str, 10));\n }\n constructor(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n if (input < 0 || input > 4294967295) {\n throw new Error(\"Input not in uint32 range: \" + input.toString());\n }\n this.data = input;\n }\n toBytesBigEndian() {\n // Use division instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint8Array([\n Math.floor(this.data / 2 ** 24) & 0xff,\n Math.floor(this.data / 2 ** 16) & 0xff,\n Math.floor(this.data / 2 ** 8) & 0xff,\n Math.floor(this.data / 2 ** 0) & 0xff,\n ]);\n }\n toBytesLittleEndian() {\n // Use division instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint8Array([\n Math.floor(this.data / 2 ** 0) & 0xff,\n Math.floor(this.data / 2 ** 8) & 0xff,\n Math.floor(this.data / 2 ** 16) & 0xff,\n Math.floor(this.data / 2 ** 24) & 0xff,\n ]);\n }\n toNumber() {\n return this.data;\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Uint32 = Uint32;\nclass Int53 {\n static fromString(str) {\n if (!str.match(/^-?[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Int53(Number.parseInt(str, 10));\n }\n constructor(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n if (input < Number.MIN_SAFE_INTEGER || input > Number.MAX_SAFE_INTEGER) {\n throw new Error(\"Input not in int53 range: \" + input.toString());\n }\n this.data = input;\n }\n toNumber() {\n return this.data;\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Int53 = Int53;\nclass Uint53 {\n static fromString(str) {\n const signed = Int53.fromString(str);\n return new Uint53(signed.toNumber());\n }\n constructor(input) {\n const signed = new Int53(input);\n if (signed.toNumber() < 0) {\n throw new Error(\"Input is negative\");\n }\n this.data = signed;\n }\n toNumber() {\n return this.data.toNumber();\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Uint53 = Uint53;\nclass Uint64 {\n /** @deprecated use Uint64.fromBytes */\n static fromBytesBigEndian(bytes) {\n return Uint64.fromBytes(bytes);\n }\n /**\n * Creates a Uint64 from a fixed length byte array.\n *\n * @param bytes a list of exactly 8 bytes\n * @param endianess defaults to big endian\n */\n static fromBytes(bytes, endianess = \"be\") {\n if (bytes.length !== 8) {\n throw new Error(\"Invalid input length. Expected 8 bytes.\");\n }\n for (let i = 0; i < bytes.length; ++i) {\n if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) {\n throw new Error(\"Invalid value in byte. Found: \" + bytes[i]);\n }\n }\n const beBytes = endianess === \"be\" ? Array.from(bytes) : Array.from(bytes).reverse();\n return new Uint64(new bn_js_1.default(beBytes));\n }\n static fromString(str) {\n if (!str.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Uint64(new bn_js_1.default(str, 10, \"be\"));\n }\n static fromNumber(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n let bigint;\n try {\n bigint = new bn_js_1.default(input);\n }\n catch {\n throw new Error(\"Input is not a safe integer\");\n }\n return new Uint64(bigint);\n }\n constructor(data) {\n if (data.isNeg()) {\n throw new Error(\"Input is negative\");\n }\n if (data.gt(uint64MaxValue)) {\n throw new Error(\"Input exceeds uint64 range\");\n }\n this.data = data;\n }\n toBytesBigEndian() {\n return Uint8Array.from(this.data.toArray(\"be\", 8));\n }\n toBytesLittleEndian() {\n return Uint8Array.from(this.data.toArray(\"le\", 8));\n }\n toString() {\n return this.data.toString(10);\n }\n toBigInt() {\n return BigInt(this.toString());\n }\n toNumber() {\n return this.data.toNumber();\n }\n}\nexports.Uint64 = Uint64;\n// Assign classes to unused variables in order to verify static interface conformance at compile time.\n// Workaround for https://github.com/microsoft/TypeScript/issues/33892\nconst _int53Class = Int53;\nconst _uint53Class = Uint53;\nconst _uint32Class = Uint32;\nconst _uint64Class = Uint64;\n//# sourceMappingURL=integers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.arrayContentEquals = arrayContentEquals;\nexports.arrayContentStartsWith = arrayContentStartsWith;\n/**\n * Compares the content of two arrays-like objects for equality.\n *\n * Equality is defined as having equal length and element values, where element equality means `===` returning `true`.\n *\n * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type.\n * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type.\n */\nfunction arrayContentEquals(a, b) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; ++i) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n}\n/**\n * Checks if `a` starts with the contents of `b`.\n *\n * This requires equality of the element values, where element equality means `===` returning `true`.\n *\n * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type.\n * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type.\n */\nfunction arrayContentStartsWith(a, b) {\n if (a.length < b.length)\n return false;\n for (let i = 0; i < b.length; ++i) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n}\n//# sourceMappingURL=arrays.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assert = assert;\nexports.assertDefined = assertDefined;\nexports.assertDefinedAndNotNull = assertDefinedAndNotNull;\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction assert(condition, msg) {\n if (!condition) {\n throw new Error(msg || \"condition is not truthy\");\n }\n}\nfunction assertDefined(value, msg) {\n if (value === undefined) {\n throw new Error(msg ?? \"value is undefined\");\n }\n}\nfunction assertDefinedAndNotNull(value, msg) {\n if (value === undefined || value === null) {\n throw new Error(msg ?? \"value is undefined or null\");\n }\n}\n//# sourceMappingURL=assert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isUint8Array = exports.isNonNullObject = exports.isDefined = exports.sleep = exports.assertDefinedAndNotNull = exports.assertDefined = exports.assert = exports.arrayContentStartsWith = exports.arrayContentEquals = void 0;\nvar arrays_1 = require(\"./arrays\");\nObject.defineProperty(exports, \"arrayContentEquals\", { enumerable: true, get: function () { return arrays_1.arrayContentEquals; } });\nObject.defineProperty(exports, \"arrayContentStartsWith\", { enumerable: true, get: function () { return arrays_1.arrayContentStartsWith; } });\nvar assert_1 = require(\"./assert\");\nObject.defineProperty(exports, \"assert\", { enumerable: true, get: function () { return assert_1.assert; } });\nObject.defineProperty(exports, \"assertDefined\", { enumerable: true, get: function () { return assert_1.assertDefined; } });\nObject.defineProperty(exports, \"assertDefinedAndNotNull\", { enumerable: true, get: function () { return assert_1.assertDefinedAndNotNull; } });\nvar sleep_1 = require(\"./sleep\");\nObject.defineProperty(exports, \"sleep\", { enumerable: true, get: function () { return sleep_1.sleep; } });\nvar typechecks_1 = require(\"./typechecks\");\nObject.defineProperty(exports, \"isDefined\", { enumerable: true, get: function () { return typechecks_1.isDefined; } });\nObject.defineProperty(exports, \"isNonNullObject\", { enumerable: true, get: function () { return typechecks_1.isNonNullObject; } });\nObject.defineProperty(exports, \"isUint8Array\", { enumerable: true, get: function () { return typechecks_1.isUint8Array; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sleep = sleep;\nasync function sleep(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n//# sourceMappingURL=sleep.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNonNullObject = isNonNullObject;\nexports.isUint8Array = isUint8Array;\nexports.isDefined = isDefined;\n/**\n * Checks if data is a non-null object (i.e. matches the TypeScript object type).\n *\n * Note: this returns true for arrays, which are objects in JavaScript\n * even though array and object are different types in JSON.\n *\n * @see https://www.typescriptlang.org/docs/handbook/basic-types.html#object\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isNonNullObject(data) {\n return typeof data === \"object\" && data !== null;\n}\n/**\n * Checks if data is an Uint8Array. Note: Buffer is treated as not a Uint8Array\n */\nfunction isUint8Array(data) {\n if (!isNonNullObject(data))\n return false;\n // Avoid instanceof check which is unreliable in some JS environments\n // https://medium.com/@simonwarta/limitations-of-the-instanceof-operator-f4bcdbe7a400\n // Use check that was discussed in https://github.com/crypto-browserify/pbkdf2/pull/81\n if (Object.prototype.toString.call(data) !== \"[object Uint8Array]\")\n return false;\n if (typeof Buffer !== \"undefined\" && typeof Buffer.isBuffer !== \"undefined\") {\n // Buffer.isBuffer is available at runtime\n if (Buffer.isBuffer(data))\n return false;\n }\n return true;\n}\n/**\n * Checks if input is not undefined in a TypeScript-friendly way.\n *\n * This is convenient to use in e.g. `Array.filter` as it will convert\n * the type of a `Array` to `Array`.\n */\nfunction isDefined(value) {\n return value !== undefined;\n}\n//# sourceMappingURL=typechecks.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.multiAuthenticator = multiAuthenticator;\nexports.noAuthFn = noAuthFn;\nexports.usernamePasswordAuthenticator = usernamePasswordAuthenticator;\nexports.tokenAuthenticator = tokenAuthenticator;\nexports.nkeyAuthenticator = nkeyAuthenticator;\nexports.jwtAuthenticator = jwtAuthenticator;\nexports.credsAuthenticator = credsAuthenticator;\n/*\n * Copyright 2020-2023 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst nkeys_1 = require(\"./nkeys\");\nconst encoders_1 = require(\"./encoders\");\nfunction multiAuthenticator(authenticators) {\n return (nonce) => {\n let auth = {};\n authenticators.forEach((a) => {\n const args = a(nonce) || {};\n auth = Object.assign(auth, args);\n });\n return auth;\n };\n}\nfunction noAuthFn() {\n return () => {\n return;\n };\n}\n/**\n * Returns a user/pass authenticator for the specified user and optional password\n * @param { string | () => string } user\n * @param {string | () => string } pass\n * @return {UserPass}\n */\nfunction usernamePasswordAuthenticator(user, pass) {\n return () => {\n const u = typeof user === \"function\" ? user() : user;\n const p = typeof pass === \"function\" ? pass() : pass;\n return { user: u, pass: p };\n };\n}\n/**\n * Returns a token authenticator for the specified token\n * @param { string | () => string } token\n * @return {TokenAuth}\n */\nfunction tokenAuthenticator(token) {\n return () => {\n const auth_token = typeof token === \"function\" ? token() : token;\n return { auth_token };\n };\n}\n/**\n * Returns an Authenticator that returns a NKeyAuth based that uses the\n * specified seed or function returning a seed.\n * @param {Uint8Array | (() => Uint8Array)} seed - the nkey seed\n * @return {NKeyAuth}\n */\nfunction nkeyAuthenticator(seed) {\n return (nonce) => {\n const s = typeof seed === \"function\" ? seed() : seed;\n const kp = s ? nkeys_1.nkeys.fromSeed(s) : undefined;\n const nkey = kp ? kp.getPublicKey() : \"\";\n const challenge = encoders_1.TE.encode(nonce || \"\");\n const sigBytes = kp !== undefined && nonce ? kp.sign(challenge) : undefined;\n const sig = sigBytes ? nkeys_1.nkeys.encode(sigBytes) : \"\";\n return { nkey, sig };\n };\n}\n/**\n * Returns an Authenticator function that returns a JwtAuth.\n * If a seed is provided, the public key, and signature are\n * calculated.\n *\n * @param {string | ()=>string} ajwt - the jwt\n * @param {Uint8Array | ()=> Uint8Array } seed - the optional nkey seed\n * @return {Authenticator}\n */\nfunction jwtAuthenticator(ajwt, seed) {\n return (nonce) => {\n const jwt = typeof ajwt === \"function\" ? ajwt() : ajwt;\n const fn = nkeyAuthenticator(seed);\n const { nkey, sig } = fn(nonce);\n return { jwt, nkey, sig };\n };\n}\n/**\n * Returns an Authenticator function that returns a JwtAuth.\n * This is a convenience Authenticator that parses the\n * specified creds and delegates to the jwtAuthenticator.\n * @param {Uint8Array | () => Uint8Array } creds - the contents of a creds file or a function that returns the creds\n * @returns {JwtAuth}\n */\nfunction credsAuthenticator(creds) {\n const fn = typeof creds !== \"function\" ? () => creds : creds;\n const parse = () => {\n const CREDS = /\\s*(?:(?:[-]{3,}[^\\n]*[-]{3,}\\n)(.+)(?:\\n\\s*[-]{3,}[^\\n]*[-]{3,}\\n))/ig;\n const s = encoders_1.TD.decode(fn());\n // get the JWT\n let m = CREDS.exec(s);\n if (!m) {\n throw new Error(\"unable to parse credentials\");\n }\n const jwt = m[1].trim();\n // get the nkey\n m = CREDS.exec(s);\n if (!m) {\n throw new Error(\"unable to parse credentials\");\n }\n const seed = encoders_1.TE.encode(m[1].trim());\n return { jwt, seed };\n };\n const jwtFn = () => {\n const { jwt } = parse();\n return jwt;\n };\n const nkeyFn = () => {\n const { seed } = parse();\n return seed;\n };\n return jwtAuthenticator(jwtFn, nkeyFn);\n}\n//# sourceMappingURL=authenticator.js.map","\"use strict\";\n/*\n * Copyright 2020-2022 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bench = exports.Metric = void 0;\nexports.throughput = throughput;\nexports.msgThroughput = msgThroughput;\nexports.humanizeBytes = humanizeBytes;\nconst types_1 = require(\"./types\");\nconst nuid_1 = require(\"./nuid\");\nconst util_1 = require(\"./util\");\nclass Metric {\n name;\n duration;\n date;\n payload;\n msgs;\n lang;\n version;\n bytes;\n asyncRequests;\n min;\n max;\n constructor(name, duration) {\n this.name = name;\n this.duration = duration;\n this.date = Date.now();\n this.payload = 0;\n this.msgs = 0;\n this.bytes = 0;\n }\n toString() {\n const sec = (this.duration) / 1000;\n const mps = Math.round(this.msgs / sec);\n const label = this.asyncRequests ? \"asyncRequests\" : \"\";\n let minmax = \"\";\n if (this.max) {\n minmax = `${this.min}/${this.max}`;\n }\n return `${this.name}${label ? \" [asyncRequests]\" : \"\"} ${humanizeNumber(mps)} msgs/sec - [${sec.toFixed(2)} secs] ~ ${throughput(this.bytes, sec)} ${minmax}`;\n }\n toCsv() {\n return `\"${this.name}\",${new Date(this.date).toISOString()},${this.lang},${this.version},${this.msgs},${this.payload},${this.bytes},${this.duration},${this.asyncRequests ? this.asyncRequests : false}\\n`;\n }\n static header() {\n return `Test,Date,Lang,Version,Count,MsgPayload,Bytes,Millis,Async\\n`;\n }\n}\nexports.Metric = Metric;\nclass Bench {\n nc;\n callbacks;\n msgs;\n size;\n subject;\n asyncRequests;\n pub;\n sub;\n req;\n rep;\n perf;\n payload;\n constructor(nc, opts = {\n msgs: 100000,\n size: 128,\n subject: \"\",\n asyncRequests: false,\n pub: false,\n sub: false,\n req: false,\n rep: false,\n }) {\n this.nc = nc;\n this.callbacks = opts.callbacks || false;\n this.msgs = opts.msgs || 0;\n this.size = opts.size || 0;\n this.subject = opts.subject || nuid_1.nuid.next();\n this.asyncRequests = opts.asyncRequests || false;\n this.pub = opts.pub || false;\n this.sub = opts.sub || false;\n this.req = opts.req || false;\n this.rep = opts.rep || false;\n this.perf = new util_1.Perf();\n this.payload = this.size ? new Uint8Array(this.size) : types_1.Empty;\n if (!this.pub && !this.sub && !this.req && !this.rep) {\n throw new Error(\"no options selected\");\n }\n }\n async run() {\n this.nc.closed()\n .then((err) => {\n if (err) {\n throw err;\n }\n });\n if (this.callbacks) {\n await this.runCallbacks();\n }\n else {\n await this.runAsync();\n }\n return this.processMetrics();\n }\n processMetrics() {\n const nc = this.nc;\n const { lang, version } = nc.protocol.transport;\n if (this.pub && this.sub) {\n this.perf.measure(\"pubsub\", \"pubStart\", \"subStop\");\n }\n if (this.req && this.rep) {\n this.perf.measure(\"reqrep\", \"reqStart\", \"reqStop\");\n }\n const measures = this.perf.getEntries();\n const pubsub = measures.find((m) => m.name === \"pubsub\");\n const reqrep = measures.find((m) => m.name === \"reqrep\");\n const req = measures.find((m) => m.name === \"req\");\n const rep = measures.find((m) => m.name === \"rep\");\n const pub = measures.find((m) => m.name === \"pub\");\n const sub = measures.find((m) => m.name === \"sub\");\n const stats = this.nc.stats();\n const metrics = [];\n if (pubsub) {\n const { name, duration } = pubsub;\n const m = new Metric(name, duration);\n m.msgs = this.msgs * 2;\n m.bytes = stats.inBytes + stats.outBytes;\n m.lang = lang;\n m.version = version;\n m.payload = this.payload.length;\n metrics.push(m);\n }\n if (reqrep) {\n const { name, duration } = reqrep;\n const m = new Metric(name, duration);\n m.msgs = this.msgs * 2;\n m.bytes = stats.inBytes + stats.outBytes;\n m.lang = lang;\n m.version = version;\n m.payload = this.payload.length;\n metrics.push(m);\n }\n if (pub) {\n const { name, duration } = pub;\n const m = new Metric(name, duration);\n m.msgs = this.msgs;\n m.bytes = stats.outBytes;\n m.lang = lang;\n m.version = version;\n m.payload = this.payload.length;\n metrics.push(m);\n }\n if (sub) {\n const { name, duration } = sub;\n const m = new Metric(name, duration);\n m.msgs = this.msgs;\n m.bytes = stats.inBytes;\n m.lang = lang;\n m.version = version;\n m.payload = this.payload.length;\n metrics.push(m);\n }\n if (rep) {\n const { name, duration } = rep;\n const m = new Metric(name, duration);\n m.msgs = this.msgs;\n m.bytes = stats.inBytes + stats.outBytes;\n m.lang = lang;\n m.version = version;\n m.payload = this.payload.length;\n metrics.push(m);\n }\n if (req) {\n const { name, duration } = req;\n const m = new Metric(name, duration);\n m.msgs = this.msgs;\n m.bytes = stats.inBytes + stats.outBytes;\n m.lang = lang;\n m.version = version;\n m.payload = this.payload.length;\n metrics.push(m);\n }\n return metrics;\n }\n async runCallbacks() {\n const jobs = [];\n if (this.sub) {\n const d = (0, util_1.deferred)();\n jobs.push(d);\n let i = 0;\n this.nc.subscribe(this.subject, {\n max: this.msgs,\n callback: () => {\n i++;\n if (i === 1) {\n this.perf.mark(\"subStart\");\n }\n if (i === this.msgs) {\n this.perf.mark(\"subStop\");\n this.perf.measure(\"sub\", \"subStart\", \"subStop\");\n d.resolve();\n }\n },\n });\n }\n if (this.rep) {\n const d = (0, util_1.deferred)();\n jobs.push(d);\n let i = 0;\n this.nc.subscribe(this.subject, {\n max: this.msgs,\n callback: (_, m) => {\n m.respond(this.payload);\n i++;\n if (i === 1) {\n this.perf.mark(\"repStart\");\n }\n if (i === this.msgs) {\n this.perf.mark(\"repStop\");\n this.perf.measure(\"rep\", \"repStart\", \"repStop\");\n d.resolve();\n }\n },\n });\n }\n if (this.pub) {\n const job = (async () => {\n this.perf.mark(\"pubStart\");\n for (let i = 0; i < this.msgs; i++) {\n this.nc.publish(this.subject, this.payload);\n }\n await this.nc.flush();\n this.perf.mark(\"pubStop\");\n this.perf.measure(\"pub\", \"pubStart\", \"pubStop\");\n })();\n jobs.push(job);\n }\n if (this.req) {\n const job = (async () => {\n if (this.asyncRequests) {\n this.perf.mark(\"reqStart\");\n const a = [];\n for (let i = 0; i < this.msgs; i++) {\n a.push(this.nc.request(this.subject, this.payload, { timeout: 20000 }));\n }\n await Promise.all(a);\n this.perf.mark(\"reqStop\");\n this.perf.measure(\"req\", \"reqStart\", \"reqStop\");\n }\n else {\n this.perf.mark(\"reqStart\");\n for (let i = 0; i < this.msgs; i++) {\n await this.nc.request(this.subject);\n }\n this.perf.mark(\"reqStop\");\n this.perf.measure(\"req\", \"reqStart\", \"reqStop\");\n }\n })();\n jobs.push(job);\n }\n await Promise.all(jobs);\n }\n async runAsync() {\n const jobs = [];\n if (this.rep) {\n let first = false;\n const sub = this.nc.subscribe(this.subject, { max: this.msgs });\n const job = (async () => {\n for await (const m of sub) {\n if (!first) {\n this.perf.mark(\"repStart\");\n first = true;\n }\n m.respond(this.payload);\n }\n await this.nc.flush();\n this.perf.mark(\"repStop\");\n this.perf.measure(\"rep\", \"repStart\", \"repStop\");\n })();\n jobs.push(job);\n }\n if (this.sub) {\n let first = false;\n const sub = this.nc.subscribe(this.subject, { max: this.msgs });\n const job = (async () => {\n for await (const _m of sub) {\n if (!first) {\n this.perf.mark(\"subStart\");\n first = true;\n }\n }\n this.perf.mark(\"subStop\");\n this.perf.measure(\"sub\", \"subStart\", \"subStop\");\n })();\n jobs.push(job);\n }\n if (this.pub) {\n const job = (async () => {\n this.perf.mark(\"pubStart\");\n for (let i = 0; i < this.msgs; i++) {\n this.nc.publish(this.subject, this.payload);\n }\n await this.nc.flush();\n this.perf.mark(\"pubStop\");\n this.perf.measure(\"pub\", \"pubStart\", \"pubStop\");\n })();\n jobs.push(job);\n }\n if (this.req) {\n const job = (async () => {\n if (this.asyncRequests) {\n this.perf.mark(\"reqStart\");\n const a = [];\n for (let i = 0; i < this.msgs; i++) {\n a.push(this.nc.request(this.subject, this.payload, { timeout: 20000 }));\n }\n await Promise.all(a);\n this.perf.mark(\"reqStop\");\n this.perf.measure(\"req\", \"reqStart\", \"reqStop\");\n }\n else {\n this.perf.mark(\"reqStart\");\n for (let i = 0; i < this.msgs; i++) {\n await this.nc.request(this.subject);\n }\n this.perf.mark(\"reqStop\");\n this.perf.measure(\"req\", \"reqStart\", \"reqStop\");\n }\n })();\n jobs.push(job);\n }\n await Promise.all(jobs);\n }\n}\nexports.Bench = Bench;\nfunction throughput(bytes, seconds) {\n return `${humanizeBytes(bytes / seconds)}/sec`;\n}\nfunction msgThroughput(msgs, seconds) {\n return `${(Math.floor(msgs / seconds))} msgs/sec`;\n}\nfunction humanizeBytes(bytes, si = false) {\n const base = si ? 1000 : 1024;\n const pre = si\n ? [\"k\", \"M\", \"G\", \"T\", \"P\", \"E\"]\n : [\"K\", \"M\", \"G\", \"T\", \"P\", \"E\"];\n const post = si ? \"iB\" : \"B\";\n if (bytes < base) {\n return `${bytes.toFixed(2)} ${post}`;\n }\n const exp = parseInt(Math.log(bytes) / Math.log(base) + \"\");\n const index = parseInt((exp - 1) + \"\");\n return `${(bytes / Math.pow(base, exp)).toFixed(2)} ${pre[index]}${post}`;\n}\nfunction humanizeNumber(n) {\n return n.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n}\n//# sourceMappingURL=bench.js.map","\"use strict\";\n/*\n * Copyright 2023 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_HOST = exports.DEFAULT_PORT = exports.Match = void 0;\nexports.syncIterator = syncIterator;\nexports.createInbox = createInbox;\nconst nuid_1 = require(\"./nuid\");\nconst errors_1 = require(\"./errors\");\nexports.Match = {\n // Exact option is case-sensitive\n Exact: \"exact\",\n // Case-sensitive, but key is transformed to Canonical MIME representation\n CanonicalMIME: \"canonical\",\n // Case-insensitive matches\n IgnoreCase: \"insensitive\",\n};\n/**\n * syncIterator is a utility function that allows an AsyncIterator to be triggered\n * by calling next() - the utility will yield null if the underlying iterator is closed.\n * Note it is possibly an error to call use this function on an AsyncIterable that has\n * already been started (Symbol.asyncIterator() has been called) from a looping construct.\n */\nfunction syncIterator(src) {\n const iter = src[Symbol.asyncIterator]();\n return {\n async next() {\n const m = await iter.next();\n if (m.done) {\n return Promise.resolve(null);\n }\n return Promise.resolve(m.value);\n },\n };\n}\nfunction createInbox(prefix = \"\") {\n prefix = prefix || \"_INBOX\";\n if (typeof prefix !== \"string\") {\n throw (new TypeError(\"prefix must be a string\"));\n }\n prefix.split(\".\")\n .forEach((v) => {\n if (v === \"*\" || v === \">\") {\n throw errors_1.InvalidArgumentError.format(\"prefix\", `cannot have wildcards ('${prefix}')`);\n }\n });\n return `${prefix}.${nuid_1.nuid.next()}`;\n}\nexports.DEFAULT_PORT = 4222;\nexports.DEFAULT_HOST = \"127.0.0.1\";\n//# sourceMappingURL=core.js.map","\"use strict\";\n/*\n * Copyright 2018-2021 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DataBuffer = void 0;\nconst encoders_1 = require(\"./encoders\");\nclass DataBuffer {\n buffers;\n byteLength;\n constructor() {\n this.buffers = [];\n this.byteLength = 0;\n }\n static concat(...bufs) {\n let max = 0;\n for (let i = 0; i < bufs.length; i++) {\n max += bufs[i].length;\n }\n const out = new Uint8Array(max);\n let index = 0;\n for (let i = 0; i < bufs.length; i++) {\n out.set(bufs[i], index);\n index += bufs[i].length;\n }\n return out;\n }\n static fromAscii(m) {\n if (!m) {\n m = \"\";\n }\n return encoders_1.TE.encode(m);\n }\n static toAscii(a) {\n return encoders_1.TD.decode(a);\n }\n reset() {\n this.buffers.length = 0;\n this.byteLength = 0;\n }\n pack() {\n if (this.buffers.length > 1) {\n const v = new Uint8Array(this.byteLength);\n let index = 0;\n for (let i = 0; i < this.buffers.length; i++) {\n v.set(this.buffers[i], index);\n index += this.buffers[i].length;\n }\n this.buffers.length = 0;\n this.buffers.push(v);\n }\n }\n shift() {\n if (this.buffers.length) {\n const a = this.buffers.shift();\n if (a) {\n this.byteLength -= a.length;\n return a;\n }\n }\n return new Uint8Array(0);\n }\n drain(n) {\n if (this.buffers.length) {\n this.pack();\n const v = this.buffers.pop();\n if (v) {\n const max = this.byteLength;\n if (n === undefined || n > max) {\n n = max;\n }\n const d = v.subarray(0, n);\n if (max > n) {\n this.buffers.push(v.subarray(n));\n }\n this.byteLength = max - n;\n return d;\n }\n }\n return new Uint8Array(0);\n }\n fill(a, ...bufs) {\n if (a) {\n this.buffers.push(a);\n this.byteLength += a.length;\n }\n for (let i = 0; i < bufs.length; i++) {\n if (bufs[i] && bufs[i].length) {\n this.buffers.push(bufs[i]);\n this.byteLength += bufs[i].length;\n }\n }\n }\n peek() {\n if (this.buffers.length) {\n this.pack();\n return this.buffers[0];\n }\n return new Uint8Array(0);\n }\n size() {\n return this.byteLength;\n }\n length() {\n return this.buffers.length;\n }\n}\nexports.DataBuffer = DataBuffer;\n//# sourceMappingURL=databuffer.js.map","\"use strict\";\n// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DenoBuffer = exports.MAX_SIZE = exports.AssertionError = void 0;\nexports.assert = assert;\nexports.concat = concat;\nexports.append = append;\nexports.readAll = readAll;\nexports.writeAll = writeAll;\n// This code has been ported almost directly from Go's src/bytes/buffer.go\n// Copyright 2009 The Go Authors. All rights reserved. BSD license.\n// https://github.com/golang/go/blob/master/LICENSE\n// This code removes all Deno specific functionality to enable its use\n// in a browser environment\n//@internal\nconst encoders_1 = require(\"./encoders\");\nclass AssertionError extends Error {\n constructor(msg) {\n super(msg);\n this.name = \"AssertionError\";\n }\n}\nexports.AssertionError = AssertionError;\n// @internal\nfunction assert(cond, msg = \"Assertion failed.\") {\n if (!cond) {\n throw new AssertionError(msg);\n }\n}\n// MIN_READ is the minimum ArrayBuffer size passed to a read call by\n// buffer.ReadFrom. As long as the Buffer has at least MIN_READ bytes beyond\n// what is required to hold the contents of r, readFrom() will not grow the\n// underlying buffer.\nconst MIN_READ = 32 * 1024;\nexports.MAX_SIZE = 2 ** 32 - 2;\n// `off` is the offset into `dst` where it will at which to begin writing values\n// from `src`.\n// Returns the number of bytes copied.\nfunction copy(src, dst, off = 0) {\n const r = dst.byteLength - off;\n if (src.byteLength > r) {\n src = src.subarray(0, r);\n }\n dst.set(src, off);\n return src.byteLength;\n}\nfunction concat(origin, b) {\n if (origin === undefined && b === undefined) {\n return new Uint8Array(0);\n }\n if (origin === undefined) {\n return b;\n }\n if (b === undefined) {\n return origin;\n }\n const output = new Uint8Array(origin.length + b.length);\n output.set(origin, 0);\n output.set(b, origin.length);\n return output;\n}\nfunction append(origin, b) {\n return concat(origin, Uint8Array.of(b));\n}\nclass DenoBuffer {\n _buf; // contents are the bytes _buf[off : len(_buf)]\n _off; // read at _buf[off], write at _buf[_buf.byteLength]\n constructor(ab) {\n this._off = 0;\n if (ab == null) {\n this._buf = new Uint8Array(0);\n return;\n }\n this._buf = new Uint8Array(ab);\n }\n bytes(options = { copy: true }) {\n if (options.copy === false)\n return this._buf.subarray(this._off);\n return this._buf.slice(this._off);\n }\n empty() {\n return this._buf.byteLength <= this._off;\n }\n get length() {\n return this._buf.byteLength - this._off;\n }\n get capacity() {\n return this._buf.buffer.byteLength;\n }\n truncate(n) {\n if (n === 0) {\n this.reset();\n return;\n }\n if (n < 0 || n > this.length) {\n throw Error(\"bytes.Buffer: truncation out of range\");\n }\n this._reslice(this._off + n);\n }\n reset() {\n this._reslice(0);\n this._off = 0;\n }\n _tryGrowByReslice(n) {\n const l = this._buf.byteLength;\n if (n <= this.capacity - l) {\n this._reslice(l + n);\n return l;\n }\n return -1;\n }\n _reslice(len) {\n assert(len <= this._buf.buffer.byteLength);\n this._buf = new Uint8Array(this._buf.buffer, 0, len);\n }\n readByte() {\n const a = new Uint8Array(1);\n if (this.read(a)) {\n return a[0];\n }\n return null;\n }\n read(p) {\n if (this.empty()) {\n // Buffer is empty, reset to recover space.\n this.reset();\n if (p.byteLength === 0) {\n // this edge case is tested in 'bufferReadEmptyAtEOF' test\n return 0;\n }\n return null;\n }\n const nread = copy(this._buf.subarray(this._off), p);\n this._off += nread;\n return nread;\n }\n writeByte(n) {\n return this.write(Uint8Array.of(n));\n }\n writeString(s) {\n return this.write(encoders_1.TE.encode(s));\n }\n write(p) {\n const m = this._grow(p.byteLength);\n return copy(p, this._buf, m);\n }\n _grow(n) {\n const m = this.length;\n // If buffer is empty, reset to recover space.\n if (m === 0 && this._off !== 0) {\n this.reset();\n }\n // Fast: Try to _grow by means of a _reslice.\n const i = this._tryGrowByReslice(n);\n if (i >= 0) {\n return i;\n }\n const c = this.capacity;\n if (n <= Math.floor(c / 2) - m) {\n // We can slide things down instead of allocating a new\n // ArrayBuffer. We only need m+n <= c to slide, but\n // we instead let capacity get twice as large so we\n // don't spend all our time copying.\n copy(this._buf.subarray(this._off), this._buf);\n }\n else if (c + n > exports.MAX_SIZE) {\n throw new Error(\"The buffer cannot be grown beyond the maximum size.\");\n }\n else {\n // Not enough space anywhere, we need to allocate.\n const buf = new Uint8Array(Math.min(2 * c + n, exports.MAX_SIZE));\n copy(this._buf.subarray(this._off), buf);\n this._buf = buf;\n }\n // Restore this.off and len(this._buf).\n this._off = 0;\n this._reslice(Math.min(m + n, exports.MAX_SIZE));\n return m;\n }\n grow(n) {\n if (n < 0) {\n throw Error(\"Buffer._grow: negative count\");\n }\n const m = this._grow(n);\n this._reslice(m);\n }\n readFrom(r) {\n let n = 0;\n const tmp = new Uint8Array(MIN_READ);\n while (true) {\n const shouldGrow = this.capacity - this.length < MIN_READ;\n // read into tmp buffer if there's not enough room\n // otherwise read directly into the internal buffer\n const buf = shouldGrow\n ? tmp\n : new Uint8Array(this._buf.buffer, this.length);\n const nread = r.read(buf);\n if (nread === null) {\n return n;\n }\n // write will grow if needed\n if (shouldGrow)\n this.write(buf.subarray(0, nread));\n else\n this._reslice(this.length + nread);\n n += nread;\n }\n }\n}\nexports.DenoBuffer = DenoBuffer;\nfunction readAll(r) {\n const buf = new DenoBuffer();\n buf.readFrom(r);\n return buf.bytes();\n}\nfunction writeAll(w, arr) {\n let nwritten = 0;\n while (nwritten < arr.length) {\n nwritten += w.write(arr.subarray(nwritten));\n }\n}\n//# sourceMappingURL=denobuffer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TD = exports.TE = exports.Empty = void 0;\nexports.encode = encode;\nexports.decode = decode;\n/*\n * Copyright 2020 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexports.Empty = new Uint8Array(0);\nexports.TE = new TextEncoder();\nexports.TD = new TextDecoder();\nfunction concat(...bufs) {\n let max = 0;\n for (let i = 0; i < bufs.length; i++) {\n max += bufs[i].length;\n }\n const out = new Uint8Array(max);\n let index = 0;\n for (let i = 0; i < bufs.length; i++) {\n out.set(bufs[i], index);\n index += bufs[i].length;\n }\n return out;\n}\nfunction encode(...a) {\n const bufs = [];\n for (let i = 0; i < a.length; i++) {\n bufs.push(exports.TE.encode(a[i]));\n }\n if (bufs.length === 0) {\n return exports.Empty;\n }\n if (bufs.length === 1) {\n return bufs[0];\n }\n return concat(...bufs);\n}\nfunction decode(a) {\n if (!a || a.length === 0) {\n return \"\";\n }\n return exports.TD.decode(a);\n}\n//# sourceMappingURL=encoders.js.map","\"use strict\";\n/*\n * Copyright 2024 Synadia Communications, Inc\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.errors = exports.PermissionViolationError = exports.NoRespondersError = exports.TimeoutError = exports.RequestError = exports.ProtocolError = exports.ConnectionError = exports.DrainingConnectionError = exports.ClosedConnectionError = exports.AuthorizationError = exports.UserAuthenticationExpiredError = exports.InvalidOperationError = exports.InvalidArgumentError = exports.InvalidSubjectError = void 0;\n/**\n * Represents an error that is thrown when an invalid subject is encountered.\n * This class extends the built-in Error object.\n *\n * @class\n * @extends Error\n */\nclass InvalidSubjectError extends Error {\n constructor(subject, options) {\n super(`illegal subject: '${subject}'`, options);\n this.name = \"InvalidSubjectError\";\n }\n}\nexports.InvalidSubjectError = InvalidSubjectError;\nclass InvalidArgumentError extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"InvalidArgumentError\";\n }\n static format(property, message, options) {\n if (Array.isArray(message) && message.length > 1) {\n message = message[0];\n }\n if (Array.isArray(property)) {\n property = property.map((n) => `'${n}'`);\n property = property.join(\",\");\n }\n else {\n property = `'${property}'`;\n }\n return new InvalidArgumentError(`${property} ${message}`, options);\n }\n}\nexports.InvalidArgumentError = InvalidArgumentError;\n/**\n * InvalidOperationError is a custom error class that extends the standard Error object.\n * It represents an error that occurs when an invalid operation is attempted on one of\n * objects returned by the API. For example, trying to iterate on an object that was\n * configured with a callback.\n *\n * @class InvalidOperationError\n * @extends {Error}\n *\n * @param {string} message - The error message that explains the reason for the error.\n * @param {ErrorOptions} [options] - Optional parameter to provide additional error options.\n */\nclass InvalidOperationError extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"InvalidOperationError\";\n }\n}\nexports.InvalidOperationError = InvalidOperationError;\n/**\n * Represents an error indicating that user authentication has expired.\n * This error is typically thrown when a user attempts to access a connection\n * but their authentication credentials have expired.\n */\nclass UserAuthenticationExpiredError extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"UserAuthenticationExpiredError\";\n }\n static parse(s) {\n const ss = s.toLowerCase();\n if (ss.indexOf(\"user authentication expired\") !== -1) {\n return new UserAuthenticationExpiredError(s);\n }\n return null;\n }\n}\nexports.UserAuthenticationExpiredError = UserAuthenticationExpiredError;\n/**\n * Represents an error related to authorization issues.\n * Note that these could represent an authorization violation,\n * or that the account authentication configuration has expired,\n * or an authentication timeout.\n */\nclass AuthorizationError extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"AuthorizationError\";\n }\n static parse(s) {\n const messages = [\n \"authorization violation\",\n \"account authentication expired\",\n \"authentication timeout\",\n ];\n const ss = s.toLowerCase();\n for (let i = 0; i < messages.length; i++) {\n if (ss.indexOf(messages[i]) !== -1) {\n return new AuthorizationError(s);\n }\n }\n return null;\n }\n}\nexports.AuthorizationError = AuthorizationError;\n/**\n * Class representing an error thrown when an operation is attempted on a closed connection.\n *\n * This error is intended to signal that a connection-related operation could not be completed\n * because the connection is no longer open or has been terminated.\n *\n * @class\n * @extends Error\n */\nclass ClosedConnectionError extends Error {\n constructor() {\n super(\"closed connection\");\n this.name = \"ClosedConnectionError\";\n }\n}\nexports.ClosedConnectionError = ClosedConnectionError;\n/**\n * The `ConnectionDrainingError` class represents a specific type of error\n * that occurs when a connection is being drained.\n *\n * This error is typically used in scenarios where connections need to be\n * gracefully closed or when they are transitioning to an inactive state.\n *\n * The error message is set to \"connection draining\" and the error name is\n * overridden to \"DrainingConnectionError\".\n */\nclass DrainingConnectionError extends Error {\n constructor() {\n super(\"connection draining\");\n this.name = \"DrainingConnectionError\";\n }\n}\nexports.DrainingConnectionError = DrainingConnectionError;\n/**\n * Represents an error that occurs when a network connection fails.\n * Extends the built-in Error class to provide additional context for connection-related issues.\n *\n * @param {string} message - A human-readable description of the error.\n * @param {ErrorOptions} [options] - Optional settings for customizing the error behavior.\n */\nclass ConnectionError extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"ConnectionError\";\n }\n}\nexports.ConnectionError = ConnectionError;\n/**\n * Represents an error encountered during protocol operations.\n * This class extends the built-in `Error` class, providing a specific\n * error type called `ProtocolError`.\n *\n * @param {string} message - A descriptive message describing the error.\n * @param {ErrorOptions} [options] - Optional parameters to include additional details.\n */\nclass ProtocolError extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"ProtocolError\";\n }\n}\nexports.ProtocolError = ProtocolError;\n/**\n * Class representing an error that occurs during an request operation\n * (such as TimeoutError, or NoRespondersError, or some other error).\n *\n * @extends Error\n */\nclass RequestError extends Error {\n constructor(message = \"\", options) {\n super(message, options);\n this.name = \"RequestError\";\n }\n isNoResponders() {\n return this.cause instanceof NoRespondersError;\n }\n}\nexports.RequestError = RequestError;\n/**\n * TimeoutError is a custom error class that extends the built-in Error class.\n * It is used to represent an error that occurs when an operation exceeds a\n * predefined time limit.\n *\n * @class\n * @extends {Error}\n */\nclass TimeoutError extends Error {\n constructor(options) {\n super(\"timeout\", options);\n this.name = \"TimeoutError\";\n }\n}\nexports.TimeoutError = TimeoutError;\n/**\n * NoRespondersError is an error thrown when no responders (no service is\n * subscribing to the subject) are found for a given subject. This error\n * is typically found as the cause for a RequestError\n *\n * @extends Error\n *\n * @param {string} subject - The subject for which no responders were found.\n * @param {ErrorOptions} [options] - Optional error options.\n */\nclass NoRespondersError extends Error {\n subject;\n constructor(subject, options) {\n super(`no responders: '${subject}'`, options);\n this.subject = subject;\n this.name = \"NoResponders\";\n }\n}\nexports.NoRespondersError = NoRespondersError;\n/**\n * Class representing a Permission Violation Error.\n * It provides information about the operation (either \"publish\" or \"subscription\")\n * and the subject used for the operation and the optional queue (if a subscription).\n *\n * This error is terminal for a subscription.\n */\nclass PermissionViolationError extends Error {\n operation;\n subject;\n queue;\n constructor(message, operation, subject, queue, options) {\n super(message, options);\n this.name = \"PermissionViolationError\";\n this.operation = operation;\n this.subject = subject;\n this.queue = queue;\n }\n static parse(s) {\n const t = s ? s.toLowerCase() : \"\";\n if (t.indexOf(\"permissions violation\") === -1) {\n return null;\n }\n let operation = \"publish\";\n let subject = \"\";\n let queue = undefined;\n const m = s.match(/(Publish|Subscription) to \"(\\S+)\"/);\n if (m) {\n operation = m[1].toLowerCase();\n subject = m[2];\n if (operation === \"subscription\") {\n const qm = s.match(/using queue \"(\\S+)\"/);\n if (qm) {\n queue = qm[1];\n }\n }\n }\n return new PermissionViolationError(s, operation, subject, queue);\n }\n}\nexports.PermissionViolationError = PermissionViolationError;\nexports.errors = {\n AuthorizationError,\n ClosedConnectionError,\n ConnectionError,\n DrainingConnectionError,\n InvalidArgumentError,\n InvalidOperationError,\n InvalidSubjectError,\n NoRespondersError,\n PermissionViolationError,\n ProtocolError,\n RequestError,\n TimeoutError,\n UserAuthenticationExpiredError,\n};\n//# sourceMappingURL=errors.js.map","\"use strict\";\n/*\n * Copyright 2020-2023 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgHdrsImpl = void 0;\nexports.canonicalMIMEHeaderKey = canonicalMIMEHeaderKey;\nexports.headers = headers;\n// Heavily inspired by Golang's https://golang.org/src/net/http/header.go\nconst encoders_1 = require(\"./encoders\");\nconst core_1 = require(\"./core\");\nconst errors_1 = require(\"./errors\");\n// https://www.ietf.org/rfc/rfc822.txt\n// 3.1.2. STRUCTURE OF HEADER FIELDS\n//\n// Once a field has been unfolded, it may be viewed as being com-\n// posed of a field-name followed by a colon (\":\"), followed by a\n// field-body, and terminated by a carriage-return/line-feed.\n// The field-name must be composed of printable ASCII characters\n// (i.e., characters that have values between 33. and 126.,\n// decimal, except colon). The field-body may be composed of any\n// ASCII characters, except CR or LF. (While CR and/or LF may be\n// present in the actual text, they are removed by the action of\n// unfolding the field.)\nfunction canonicalMIMEHeaderKey(k) {\n const a = 97;\n const A = 65;\n const Z = 90;\n const z = 122;\n const dash = 45;\n const colon = 58;\n const start = 33;\n const end = 126;\n const toLower = a - A;\n let upper = true;\n const buf = new Array(k.length);\n for (let i = 0; i < k.length; i++) {\n let c = k.charCodeAt(i);\n if (c === colon || c < start || c > end) {\n throw errors_1.InvalidArgumentError.format(\"header\", `'${k[i]}' is not a valid character in a header name`);\n }\n if (upper && a <= c && c <= z) {\n c -= toLower;\n }\n else if (!upper && A <= c && c <= Z) {\n c += toLower;\n }\n buf[i] = c;\n upper = c == dash;\n }\n return String.fromCharCode(...buf);\n}\nfunction headers(code = 0, description = \"\") {\n if ((code === 0 && description !== \"\") || (code > 0 && description === \"\")) {\n throw errors_1.InvalidArgumentError.format(\"description\", \"is required\");\n }\n return new MsgHdrsImpl(code, description);\n}\nconst HEADER = \"NATS/1.0\";\nclass MsgHdrsImpl {\n _code;\n headers;\n _description;\n constructor(code = 0, description = \"\") {\n this._code = code;\n this._description = description;\n this.headers = new Map();\n }\n [Symbol.iterator]() {\n return this.headers.entries();\n }\n size() {\n return this.headers.size;\n }\n equals(mh) {\n if (mh && this.headers.size === mh.headers.size &&\n this._code === mh._code) {\n for (const [k, v] of this.headers) {\n const a = mh.values(k);\n if (v.length !== a.length) {\n return false;\n }\n const vv = [...v].sort();\n const aa = [...a].sort();\n for (let i = 0; i < vv.length; i++) {\n if (vv[i] !== aa[i]) {\n return false;\n }\n }\n }\n return true;\n }\n return false;\n }\n static decode(a) {\n const mh = new MsgHdrsImpl();\n const s = encoders_1.TD.decode(a);\n const lines = s.split(\"\\r\\n\");\n const h = lines[0];\n if (h !== HEADER) {\n // malformed headers could add extra space without adding a code or description\n let str = h.replace(HEADER, \"\").trim();\n if (str.length > 0) {\n mh._code = parseInt(str, 10);\n if (isNaN(mh._code)) {\n mh._code = 0;\n }\n const scode = mh._code.toString();\n str = str.replace(scode, \"\");\n mh._description = str.trim();\n }\n }\n if (lines.length >= 1) {\n lines.slice(1).map((s) => {\n if (s) {\n const idx = s.indexOf(\":\");\n if (idx > -1) {\n const k = s.slice(0, idx);\n const v = s.slice(idx + 1).trim();\n mh.append(k, v);\n }\n }\n });\n }\n return mh;\n }\n toString() {\n if (this.headers.size === 0 && this._code === 0) {\n return \"\";\n }\n let s = HEADER;\n if (this._code > 0 && this._description !== \"\") {\n s += ` ${this._code} ${this._description}`;\n }\n for (const [k, v] of this.headers) {\n for (let i = 0; i < v.length; i++) {\n s = `${s}\\r\\n${k}: ${v[i]}`;\n }\n }\n return `${s}\\r\\n\\r\\n`;\n }\n encode() {\n return encoders_1.TE.encode(this.toString());\n }\n static validHeaderValue(k) {\n const inv = /[\\r\\n]/;\n if (inv.test(k)) {\n throw errors_1.InvalidArgumentError.format(\"header\", \"values cannot contain \\\\r or \\\\n\");\n }\n return k.trim();\n }\n keys() {\n const keys = [];\n for (const sk of this.headers.keys()) {\n keys.push(sk);\n }\n return keys;\n }\n findKeys(k, match = core_1.Match.Exact) {\n const keys = this.keys();\n switch (match) {\n case core_1.Match.Exact:\n return keys.filter((v) => {\n return v === k;\n });\n case core_1.Match.CanonicalMIME:\n k = canonicalMIMEHeaderKey(k);\n return keys.filter((v) => {\n return v === k;\n });\n default: {\n const lci = k.toLowerCase();\n return keys.filter((v) => {\n return lci === v.toLowerCase();\n });\n }\n }\n }\n get(k, match = core_1.Match.Exact) {\n const keys = this.findKeys(k, match);\n if (keys.length) {\n const v = this.headers.get(keys[0]);\n if (v) {\n return Array.isArray(v) ? v[0] : v;\n }\n }\n return \"\";\n }\n last(k, match = core_1.Match.Exact) {\n const keys = this.findKeys(k, match);\n if (keys.length) {\n const v = this.headers.get(keys[0]);\n if (v) {\n return Array.isArray(v) ? v[v.length - 1] : v;\n }\n }\n return \"\";\n }\n has(k, match = core_1.Match.Exact) {\n return this.findKeys(k, match).length > 0;\n }\n set(k, v, match = core_1.Match.Exact) {\n this.delete(k, match);\n this.append(k, v, match);\n }\n append(k, v, match = core_1.Match.Exact) {\n // validate the key\n const ck = canonicalMIMEHeaderKey(k);\n if (match === core_1.Match.CanonicalMIME) {\n k = ck;\n }\n // if we get non-sensical ignores/etc, we should try\n // to do the right thing and use the first key that matches\n const keys = this.findKeys(k, match);\n k = keys.length > 0 ? keys[0] : k;\n const value = MsgHdrsImpl.validHeaderValue(v);\n let a = this.headers.get(k);\n if (!a) {\n a = [];\n this.headers.set(k, a);\n }\n a.push(value);\n }\n values(k, match = core_1.Match.Exact) {\n const buf = [];\n const keys = this.findKeys(k, match);\n keys.forEach((v) => {\n const values = this.headers.get(v);\n if (values) {\n buf.push(...values);\n }\n });\n return buf;\n }\n delete(k, match = core_1.Match.Exact) {\n const keys = this.findKeys(k, match);\n keys.forEach((v) => {\n this.headers.delete(v);\n });\n }\n get hasError() {\n return this._code >= 300;\n }\n get status() {\n return `${this._code} ${this._description}`.trim();\n }\n toRecord() {\n const data = {};\n this.keys().forEach((v) => {\n data[v] = this.values(v);\n });\n return data;\n }\n get code() {\n return this._code;\n }\n get description() {\n return this._description;\n }\n static fromRecord(r) {\n const h = new MsgHdrsImpl();\n for (const k in r) {\n h.headers.set(k, r[k]);\n }\n return h;\n }\n}\nexports.MsgHdrsImpl = MsgHdrsImpl;\n//# sourceMappingURL=headers.js.map","\"use strict\";\n/*\n * Copyright 2020-2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Heartbeat = void 0;\nconst util_1 = require(\"./util\");\nclass Heartbeat {\n ph;\n interval;\n maxOut;\n timer;\n pendings;\n constructor(ph, interval, maxOut) {\n this.ph = ph;\n this.interval = interval;\n this.maxOut = maxOut;\n this.pendings = [];\n }\n // api to start the heartbeats, since this can be\n // spuriously called from dial, ensure we don't\n // leak timers\n start() {\n this.cancel();\n this._schedule();\n }\n // api for canceling the heartbeats, if stale is\n // true it will initiate a client disconnect\n cancel(stale) {\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = undefined;\n }\n this._reset();\n if (stale) {\n this.ph.disconnect();\n }\n }\n _schedule() {\n // @ts-ignore: node is not a number - we treat this opaquely\n this.timer = setTimeout(() => {\n this.ph.dispatchStatus({ type: \"ping\", pendingPings: this.pendings.length + 1 });\n if (this.pendings.length === this.maxOut) {\n this.cancel(true);\n return;\n }\n const ping = (0, util_1.deferred)();\n this.ph.flush(ping)\n .then(() => {\n this._reset();\n })\n .catch(() => {\n // we disconnected - pongs were rejected\n this.cancel();\n });\n this.pendings.push(ping);\n this._schedule();\n }, this.interval);\n }\n _reset() {\n // clear pendings after resolving them\n this.pendings = this.pendings.filter((p) => {\n const d = p;\n d.resolve();\n return false;\n });\n }\n}\nexports.Heartbeat = Heartbeat;\n//# sourceMappingURL=heartbeats.js.map","\"use strict\";\n/*\n * Copyright 2022 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IdleHeartbeatMonitor = void 0;\nclass IdleHeartbeatMonitor {\n interval;\n maxOut;\n cancelAfter;\n timer;\n autoCancelTimer;\n last;\n missed;\n count;\n callback;\n /**\n * Constructor\n * @param interval in millis to check\n * @param cb a callback to report when heartbeats are missed\n * @param opts monitor options @see IdleHeartbeatOptions\n */\n constructor(interval, cb, opts = { maxOut: 2 }) {\n this.interval = interval;\n this.maxOut = opts?.maxOut || 2;\n this.cancelAfter = opts?.cancelAfter || 0;\n this.last = Date.now();\n this.missed = 0;\n this.count = 0;\n this.callback = cb;\n this._schedule();\n }\n /**\n * cancel monitoring\n */\n cancel() {\n if (this.autoCancelTimer) {\n clearTimeout(this.autoCancelTimer);\n }\n if (this.timer) {\n clearInterval(this.timer);\n }\n this.timer = 0;\n this.autoCancelTimer = 0;\n this.missed = 0;\n }\n /**\n * work signals that there was work performed\n */\n work() {\n this.last = Date.now();\n this.missed = 0;\n }\n /**\n * internal api to change the interval, cancelAfter and maxOut\n * @param interval\n * @param cancelAfter\n * @param maxOut\n */\n _change(interval, cancelAfter = 0, maxOut = 2) {\n this.interval = interval;\n this.maxOut = maxOut;\n this.cancelAfter = cancelAfter;\n this.restart();\n }\n /**\n * cancels and restarts the monitoring\n */\n restart() {\n this.cancel();\n this._schedule();\n }\n /**\n * internal api called to start monitoring\n */\n _schedule() {\n if (this.cancelAfter > 0) {\n // @ts-ignore: in node is not a number - we treat this opaquely\n this.autoCancelTimer = setTimeout(() => {\n this.cancel();\n }, this.cancelAfter);\n }\n // @ts-ignore: in node is not a number - we treat this opaquely\n this.timer = setInterval(() => {\n this.count++;\n if ((Date.now() - this.last) > this.interval) {\n this.missed++;\n }\n if (this.missed >= this.maxOut) {\n try {\n if (this.callback(this.missed) === true) {\n this.cancel();\n }\n }\n catch (err) {\n console.log(err);\n }\n }\n }, this.interval);\n }\n}\nexports.IdleHeartbeatMonitor = IdleHeartbeatMonitor;\n//# sourceMappingURL=idleheartbeat_monitor.js.map","\"use strict\";\n/*\n * Copyright 2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TD = exports.Metric = exports.Bench = exports.writeAll = exports.readAll = exports.MAX_SIZE = exports.DenoBuffer = exports.State = exports.Parser = exports.Kind = exports.QueuedIteratorImpl = exports.usernamePasswordAuthenticator = exports.tokenAuthenticator = exports.nkeyAuthenticator = exports.jwtAuthenticator = exports.credsAuthenticator = exports.RequestOne = exports.parseOptions = exports.hasWsProtocol = exports.defaultOptions = exports.DEFAULT_MAX_RECONNECT_ATTEMPTS = exports.checkUnsupportedOption = exports.checkOptions = exports.buildAuthenticator = exports.DataBuffer = exports.MuxSubscription = exports.Heartbeat = exports.MsgHdrsImpl = exports.headers = exports.canonicalMIMEHeaderKey = exports.timeout = exports.SimpleMutex = exports.render = exports.nanos = exports.millis = exports.extend = exports.delay = exports.deferred = exports.deadline = exports.collect = exports.backoff = exports.ProtocolHandler = exports.INFO = exports.Connect = exports.setTransportFactory = exports.getResolveFn = exports.MsgImpl = exports.nuid = exports.Nuid = exports.NatsConnectionImpl = void 0;\nexports.UserAuthenticationExpiredError = exports.TimeoutError = exports.RequestError = exports.ProtocolError = exports.PermissionViolationError = exports.NoRespondersError = exports.InvalidSubjectError = exports.InvalidOperationError = exports.InvalidArgumentError = exports.errors = exports.DrainingConnectionError = exports.ConnectionError = exports.ClosedConnectionError = exports.AuthorizationError = exports.wsUrlParseFn = exports.wsconnect = exports.Servers = exports.isIPV4OrHostname = exports.IdleHeartbeatMonitor = exports.Subscriptions = exports.SubscriptionImpl = exports.syncIterator = exports.Match = exports.createInbox = exports.protoLen = exports.extractProtocolMessage = exports.Empty = exports.parseSemVer = exports.Features = exports.Feature = exports.compare = exports.parseIP = exports.isIP = exports.ipV4 = exports.TE = void 0;\nvar nats_1 = require(\"./nats\");\nObject.defineProperty(exports, \"NatsConnectionImpl\", { enumerable: true, get: function () { return nats_1.NatsConnectionImpl; } });\nvar nuid_1 = require(\"./nuid\");\nObject.defineProperty(exports, \"Nuid\", { enumerable: true, get: function () { return nuid_1.Nuid; } });\nObject.defineProperty(exports, \"nuid\", { enumerable: true, get: function () { return nuid_1.nuid; } });\nvar msg_1 = require(\"./msg\");\nObject.defineProperty(exports, \"MsgImpl\", { enumerable: true, get: function () { return msg_1.MsgImpl; } });\nvar transport_1 = require(\"./transport\");\nObject.defineProperty(exports, \"getResolveFn\", { enumerable: true, get: function () { return transport_1.getResolveFn; } });\nObject.defineProperty(exports, \"setTransportFactory\", { enumerable: true, get: function () { return transport_1.setTransportFactory; } });\nvar protocol_1 = require(\"./protocol\");\nObject.defineProperty(exports, \"Connect\", { enumerable: true, get: function () { return protocol_1.Connect; } });\nObject.defineProperty(exports, \"INFO\", { enumerable: true, get: function () { return protocol_1.INFO; } });\nObject.defineProperty(exports, \"ProtocolHandler\", { enumerable: true, get: function () { return protocol_1.ProtocolHandler; } });\nvar util_1 = require(\"./util\");\nObject.defineProperty(exports, \"backoff\", { enumerable: true, get: function () { return util_1.backoff; } });\nObject.defineProperty(exports, \"collect\", { enumerable: true, get: function () { return util_1.collect; } });\nObject.defineProperty(exports, \"deadline\", { enumerable: true, get: function () { return util_1.deadline; } });\nObject.defineProperty(exports, \"deferred\", { enumerable: true, get: function () { return util_1.deferred; } });\nObject.defineProperty(exports, \"delay\", { enumerable: true, get: function () { return util_1.delay; } });\nObject.defineProperty(exports, \"extend\", { enumerable: true, get: function () { return util_1.extend; } });\nObject.defineProperty(exports, \"millis\", { enumerable: true, get: function () { return util_1.millis; } });\nObject.defineProperty(exports, \"nanos\", { enumerable: true, get: function () { return util_1.nanos; } });\nObject.defineProperty(exports, \"render\", { enumerable: true, get: function () { return util_1.render; } });\nObject.defineProperty(exports, \"SimpleMutex\", { enumerable: true, get: function () { return util_1.SimpleMutex; } });\nObject.defineProperty(exports, \"timeout\", { enumerable: true, get: function () { return util_1.timeout; } });\nvar headers_1 = require(\"./headers\");\nObject.defineProperty(exports, \"canonicalMIMEHeaderKey\", { enumerable: true, get: function () { return headers_1.canonicalMIMEHeaderKey; } });\nObject.defineProperty(exports, \"headers\", { enumerable: true, get: function () { return headers_1.headers; } });\nObject.defineProperty(exports, \"MsgHdrsImpl\", { enumerable: true, get: function () { return headers_1.MsgHdrsImpl; } });\nvar heartbeats_1 = require(\"./heartbeats\");\nObject.defineProperty(exports, \"Heartbeat\", { enumerable: true, get: function () { return heartbeats_1.Heartbeat; } });\nvar muxsubscription_1 = require(\"./muxsubscription\");\nObject.defineProperty(exports, \"MuxSubscription\", { enumerable: true, get: function () { return muxsubscription_1.MuxSubscription; } });\nvar databuffer_1 = require(\"./databuffer\");\nObject.defineProperty(exports, \"DataBuffer\", { enumerable: true, get: function () { return databuffer_1.DataBuffer; } });\nvar options_1 = require(\"./options\");\nObject.defineProperty(exports, \"buildAuthenticator\", { enumerable: true, get: function () { return options_1.buildAuthenticator; } });\nObject.defineProperty(exports, \"checkOptions\", { enumerable: true, get: function () { return options_1.checkOptions; } });\nObject.defineProperty(exports, \"checkUnsupportedOption\", { enumerable: true, get: function () { return options_1.checkUnsupportedOption; } });\nObject.defineProperty(exports, \"DEFAULT_MAX_RECONNECT_ATTEMPTS\", { enumerable: true, get: function () { return options_1.DEFAULT_MAX_RECONNECT_ATTEMPTS; } });\nObject.defineProperty(exports, \"defaultOptions\", { enumerable: true, get: function () { return options_1.defaultOptions; } });\nObject.defineProperty(exports, \"hasWsProtocol\", { enumerable: true, get: function () { return options_1.hasWsProtocol; } });\nObject.defineProperty(exports, \"parseOptions\", { enumerable: true, get: function () { return options_1.parseOptions; } });\nvar request_1 = require(\"./request\");\nObject.defineProperty(exports, \"RequestOne\", { enumerable: true, get: function () { return request_1.RequestOne; } });\nvar authenticator_1 = require(\"./authenticator\");\nObject.defineProperty(exports, \"credsAuthenticator\", { enumerable: true, get: function () { return authenticator_1.credsAuthenticator; } });\nObject.defineProperty(exports, \"jwtAuthenticator\", { enumerable: true, get: function () { return authenticator_1.jwtAuthenticator; } });\nObject.defineProperty(exports, \"nkeyAuthenticator\", { enumerable: true, get: function () { return authenticator_1.nkeyAuthenticator; } });\nObject.defineProperty(exports, \"tokenAuthenticator\", { enumerable: true, get: function () { return authenticator_1.tokenAuthenticator; } });\nObject.defineProperty(exports, \"usernamePasswordAuthenticator\", { enumerable: true, get: function () { return authenticator_1.usernamePasswordAuthenticator; } });\n__exportStar(require(\"./nkeys\"), exports);\nvar queued_iterator_1 = require(\"./queued_iterator\");\nObject.defineProperty(exports, \"QueuedIteratorImpl\", { enumerable: true, get: function () { return queued_iterator_1.QueuedIteratorImpl; } });\nvar parser_1 = require(\"./parser\");\nObject.defineProperty(exports, \"Kind\", { enumerable: true, get: function () { return parser_1.Kind; } });\nObject.defineProperty(exports, \"Parser\", { enumerable: true, get: function () { return parser_1.Parser; } });\nObject.defineProperty(exports, \"State\", { enumerable: true, get: function () { return parser_1.State; } });\nvar denobuffer_1 = require(\"./denobuffer\");\nObject.defineProperty(exports, \"DenoBuffer\", { enumerable: true, get: function () { return denobuffer_1.DenoBuffer; } });\nObject.defineProperty(exports, \"MAX_SIZE\", { enumerable: true, get: function () { return denobuffer_1.MAX_SIZE; } });\nObject.defineProperty(exports, \"readAll\", { enumerable: true, get: function () { return denobuffer_1.readAll; } });\nObject.defineProperty(exports, \"writeAll\", { enumerable: true, get: function () { return denobuffer_1.writeAll; } });\nvar bench_1 = require(\"./bench\");\nObject.defineProperty(exports, \"Bench\", { enumerable: true, get: function () { return bench_1.Bench; } });\nObject.defineProperty(exports, \"Metric\", { enumerable: true, get: function () { return bench_1.Metric; } });\nvar encoders_1 = require(\"./encoders\");\nObject.defineProperty(exports, \"TD\", { enumerable: true, get: function () { return encoders_1.TD; } });\nObject.defineProperty(exports, \"TE\", { enumerable: true, get: function () { return encoders_1.TE; } });\nvar ipparser_1 = require(\"./ipparser\");\nObject.defineProperty(exports, \"ipV4\", { enumerable: true, get: function () { return ipparser_1.ipV4; } });\nObject.defineProperty(exports, \"isIP\", { enumerable: true, get: function () { return ipparser_1.isIP; } });\nObject.defineProperty(exports, \"parseIP\", { enumerable: true, get: function () { return ipparser_1.parseIP; } });\nvar semver_1 = require(\"./semver\");\nObject.defineProperty(exports, \"compare\", { enumerable: true, get: function () { return semver_1.compare; } });\nObject.defineProperty(exports, \"Feature\", { enumerable: true, get: function () { return semver_1.Feature; } });\nObject.defineProperty(exports, \"Features\", { enumerable: true, get: function () { return semver_1.Features; } });\nObject.defineProperty(exports, \"parseSemVer\", { enumerable: true, get: function () { return semver_1.parseSemVer; } });\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"Empty\", { enumerable: true, get: function () { return types_1.Empty; } });\nvar transport_2 = require(\"./transport\");\nObject.defineProperty(exports, \"extractProtocolMessage\", { enumerable: true, get: function () { return transport_2.extractProtocolMessage; } });\nObject.defineProperty(exports, \"protoLen\", { enumerable: true, get: function () { return transport_2.protoLen; } });\nvar core_1 = require(\"./core\");\nObject.defineProperty(exports, \"createInbox\", { enumerable: true, get: function () { return core_1.createInbox; } });\nObject.defineProperty(exports, \"Match\", { enumerable: true, get: function () { return core_1.Match; } });\nObject.defineProperty(exports, \"syncIterator\", { enumerable: true, get: function () { return core_1.syncIterator; } });\nvar protocol_2 = require(\"./protocol\");\nObject.defineProperty(exports, \"SubscriptionImpl\", { enumerable: true, get: function () { return protocol_2.SubscriptionImpl; } });\nObject.defineProperty(exports, \"Subscriptions\", { enumerable: true, get: function () { return protocol_2.Subscriptions; } });\nvar idleheartbeat_monitor_1 = require(\"./idleheartbeat_monitor\");\nObject.defineProperty(exports, \"IdleHeartbeatMonitor\", { enumerable: true, get: function () { return idleheartbeat_monitor_1.IdleHeartbeatMonitor; } });\nvar servers_1 = require(\"./servers\");\nObject.defineProperty(exports, \"isIPV4OrHostname\", { enumerable: true, get: function () { return servers_1.isIPV4OrHostname; } });\nObject.defineProperty(exports, \"Servers\", { enumerable: true, get: function () { return servers_1.Servers; } });\nvar ws_transport_1 = require(\"./ws_transport\");\nObject.defineProperty(exports, \"wsconnect\", { enumerable: true, get: function () { return ws_transport_1.wsconnect; } });\nObject.defineProperty(exports, \"wsUrlParseFn\", { enumerable: true, get: function () { return ws_transport_1.wsUrlParseFn; } });\nvar errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"AuthorizationError\", { enumerable: true, get: function () { return errors_1.AuthorizationError; } });\nObject.defineProperty(exports, \"ClosedConnectionError\", { enumerable: true, get: function () { return errors_1.ClosedConnectionError; } });\nObject.defineProperty(exports, \"ConnectionError\", { enumerable: true, get: function () { return errors_1.ConnectionError; } });\nObject.defineProperty(exports, \"DrainingConnectionError\", { enumerable: true, get: function () { return errors_1.DrainingConnectionError; } });\nObject.defineProperty(exports, \"errors\", { enumerable: true, get: function () { return errors_1.errors; } });\nObject.defineProperty(exports, \"InvalidArgumentError\", { enumerable: true, get: function () { return errors_1.InvalidArgumentError; } });\nObject.defineProperty(exports, \"InvalidOperationError\", { enumerable: true, get: function () { return errors_1.InvalidOperationError; } });\nObject.defineProperty(exports, \"InvalidSubjectError\", { enumerable: true, get: function () { return errors_1.InvalidSubjectError; } });\nObject.defineProperty(exports, \"NoRespondersError\", { enumerable: true, get: function () { return errors_1.NoRespondersError; } });\nObject.defineProperty(exports, \"PermissionViolationError\", { enumerable: true, get: function () { return errors_1.PermissionViolationError; } });\nObject.defineProperty(exports, \"ProtocolError\", { enumerable: true, get: function () { return errors_1.ProtocolError; } });\nObject.defineProperty(exports, \"RequestError\", { enumerable: true, get: function () { return errors_1.RequestError; } });\nObject.defineProperty(exports, \"TimeoutError\", { enumerable: true, get: function () { return errors_1.TimeoutError; } });\nObject.defineProperty(exports, \"UserAuthenticationExpiredError\", { enumerable: true, get: function () { return errors_1.UserAuthenticationExpiredError; } });\n//# sourceMappingURL=internal_mod.js.map","\"use strict\";\n/*\n * Copyright 2020-2021 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ipV4 = ipV4;\nexports.isIP = isIP;\nexports.parseIP = parseIP;\n// JavaScript port of go net/ip/ParseIP\n// https://github.com/golang/go/blob/master/src/net/ip.go\n// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nconst IPv4LEN = 4;\nconst IPv6LEN = 16;\nconst ASCII0 = 48;\nconst ASCII9 = 57;\nconst ASCIIA = 65;\nconst ASCIIF = 70;\nconst ASCIIa = 97;\nconst ASCIIf = 102;\nconst big = 0xFFFFFF;\nfunction ipV4(a, b, c, d) {\n const ip = new Uint8Array(IPv6LEN);\n const prefix = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff];\n prefix.forEach((v, idx) => {\n ip[idx] = v;\n });\n ip[12] = a;\n ip[13] = b;\n ip[14] = c;\n ip[15] = d;\n return ip;\n}\nfunction isIP(h) {\n return parseIP(h) !== undefined;\n}\nfunction parseIP(h) {\n for (let i = 0; i < h.length; i++) {\n switch (h[i]) {\n case \".\":\n return parseIPv4(h);\n case \":\":\n return parseIPv6(h);\n }\n }\n return;\n}\nfunction parseIPv4(s) {\n const ip = new Uint8Array(IPv4LEN);\n for (let i = 0; i < IPv4LEN; i++) {\n if (s.length === 0) {\n return undefined;\n }\n if (i > 0) {\n if (s[0] !== \".\") {\n return undefined;\n }\n s = s.substring(1);\n }\n const { n, c, ok } = dtoi(s);\n if (!ok || n > 0xFF) {\n return undefined;\n }\n s = s.substring(c);\n ip[i] = n;\n }\n return ipV4(ip[0], ip[1], ip[2], ip[3]);\n}\nfunction parseIPv6(s) {\n const ip = new Uint8Array(IPv6LEN);\n let ellipsis = -1;\n if (s.length >= 2 && s[0] === \":\" && s[1] === \":\") {\n ellipsis = 0;\n s = s.substring(2);\n if (s.length === 0) {\n return ip;\n }\n }\n let i = 0;\n while (i < IPv6LEN) {\n const { n, c, ok } = xtoi(s);\n if (!ok || n > 0xFFFF) {\n return undefined;\n }\n if (c < s.length && s[c] === \".\") {\n if (ellipsis < 0 && i != IPv6LEN - IPv4LEN) {\n return undefined;\n }\n if (i + IPv4LEN > IPv6LEN) {\n return undefined;\n }\n const ip4 = parseIPv4(s);\n if (ip4 === undefined) {\n return undefined;\n }\n ip[i] = ip4[12];\n ip[i + 1] = ip4[13];\n ip[i + 2] = ip4[14];\n ip[i + 3] = ip4[15];\n s = \"\";\n i += IPv4LEN;\n break;\n }\n ip[i] = n >> 8;\n ip[i + 1] = n;\n i += 2;\n s = s.substring(c);\n if (s.length === 0) {\n break;\n }\n if (s[0] !== \":\" || s.length == 1) {\n return undefined;\n }\n s = s.substring(1);\n if (s[0] === \":\") {\n if (ellipsis >= 0) {\n return undefined;\n }\n ellipsis = i;\n s = s.substring(1);\n if (s.length === 0) {\n break;\n }\n }\n }\n if (s.length !== 0) {\n return undefined;\n }\n if (i < IPv6LEN) {\n if (ellipsis < 0) {\n return undefined;\n }\n const n = IPv6LEN - i;\n for (let j = i - 1; j >= ellipsis; j--) {\n ip[j + n] = ip[j];\n }\n for (let j = ellipsis + n - 1; j >= ellipsis; j--) {\n ip[j] = 0;\n }\n }\n else if (ellipsis >= 0) {\n return undefined;\n }\n return ip;\n}\nfunction dtoi(s) {\n let i = 0;\n let n = 0;\n for (i = 0; i < s.length && ASCII0 <= s.charCodeAt(i) && s.charCodeAt(i) <= ASCII9; i++) {\n n = n * 10 + (s.charCodeAt(i) - ASCII0);\n if (n >= big) {\n return { n: big, c: i, ok: false };\n }\n }\n if (i === 0) {\n return { n: 0, c: 0, ok: false };\n }\n return { n: n, c: i, ok: true };\n}\nfunction xtoi(s) {\n let n = 0;\n let i = 0;\n for (i = 0; i < s.length; i++) {\n if (ASCII0 <= s.charCodeAt(i) && s.charCodeAt(i) <= ASCII9) {\n n *= 16;\n n += s.charCodeAt(i) - ASCII0;\n }\n else if (ASCIIa <= s.charCodeAt(i) && s.charCodeAt(i) <= ASCIIf) {\n n *= 16;\n n += (s.charCodeAt(i) - ASCIIa) + 10;\n }\n else if (ASCIIA <= s.charCodeAt(i) && s.charCodeAt(i) <= ASCIIF) {\n n *= 16;\n n += (s.charCodeAt(i) - ASCIIA) + 10;\n }\n else {\n break;\n }\n if (n >= big) {\n return { n: 0, c: i, ok: false };\n }\n }\n if (i === 0) {\n return { n: 0, c: i, ok: false };\n }\n return { n: n, c: i, ok: true };\n}\n//# sourceMappingURL=ipparser.js.map","\"use strict\";\n/*\n * Copyright 2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wsconnect = exports.usernamePasswordAuthenticator = exports.UserAuthenticationExpiredError = exports.tokenAuthenticator = exports.TimeoutError = exports.syncIterator = exports.RequestError = exports.ProtocolError = exports.PermissionViolationError = exports.nuid = exports.Nuid = exports.NoRespondersError = exports.nkeys = exports.nkeyAuthenticator = exports.nanos = exports.MsgHdrsImpl = exports.millis = exports.Metric = exports.Match = exports.jwtAuthenticator = exports.InvalidSubjectError = exports.InvalidOperationError = exports.InvalidArgumentError = exports.headers = exports.hasWsProtocol = exports.errors = exports.Empty = exports.DrainingConnectionError = exports.delay = exports.deferred = exports.deadline = exports.credsAuthenticator = exports.createInbox = exports.ConnectionError = exports.ClosedConnectionError = exports.canonicalMIMEHeaderKey = exports.buildAuthenticator = exports.Bench = exports.backoff = exports.AuthorizationError = void 0;\nvar internal_mod_1 = require(\"./internal_mod\");\nObject.defineProperty(exports, \"AuthorizationError\", { enumerable: true, get: function () { return internal_mod_1.AuthorizationError; } });\nObject.defineProperty(exports, \"backoff\", { enumerable: true, get: function () { return internal_mod_1.backoff; } });\nObject.defineProperty(exports, \"Bench\", { enumerable: true, get: function () { return internal_mod_1.Bench; } });\nObject.defineProperty(exports, \"buildAuthenticator\", { enumerable: true, get: function () { return internal_mod_1.buildAuthenticator; } });\nObject.defineProperty(exports, \"canonicalMIMEHeaderKey\", { enumerable: true, get: function () { return internal_mod_1.canonicalMIMEHeaderKey; } });\nObject.defineProperty(exports, \"ClosedConnectionError\", { enumerable: true, get: function () { return internal_mod_1.ClosedConnectionError; } });\nObject.defineProperty(exports, \"ConnectionError\", { enumerable: true, get: function () { return internal_mod_1.ConnectionError; } });\nObject.defineProperty(exports, \"createInbox\", { enumerable: true, get: function () { return internal_mod_1.createInbox; } });\nObject.defineProperty(exports, \"credsAuthenticator\", { enumerable: true, get: function () { return internal_mod_1.credsAuthenticator; } });\nObject.defineProperty(exports, \"deadline\", { enumerable: true, get: function () { return internal_mod_1.deadline; } });\nObject.defineProperty(exports, \"deferred\", { enumerable: true, get: function () { return internal_mod_1.deferred; } });\nObject.defineProperty(exports, \"delay\", { enumerable: true, get: function () { return internal_mod_1.delay; } });\nObject.defineProperty(exports, \"DrainingConnectionError\", { enumerable: true, get: function () { return internal_mod_1.DrainingConnectionError; } });\nObject.defineProperty(exports, \"Empty\", { enumerable: true, get: function () { return internal_mod_1.Empty; } });\nObject.defineProperty(exports, \"errors\", { enumerable: true, get: function () { return internal_mod_1.errors; } });\nObject.defineProperty(exports, \"hasWsProtocol\", { enumerable: true, get: function () { return internal_mod_1.hasWsProtocol; } });\nObject.defineProperty(exports, \"headers\", { enumerable: true, get: function () { return internal_mod_1.headers; } });\nObject.defineProperty(exports, \"InvalidArgumentError\", { enumerable: true, get: function () { return internal_mod_1.InvalidArgumentError; } });\nObject.defineProperty(exports, \"InvalidOperationError\", { enumerable: true, get: function () { return internal_mod_1.InvalidOperationError; } });\nObject.defineProperty(exports, \"InvalidSubjectError\", { enumerable: true, get: function () { return internal_mod_1.InvalidSubjectError; } });\nObject.defineProperty(exports, \"jwtAuthenticator\", { enumerable: true, get: function () { return internal_mod_1.jwtAuthenticator; } });\nObject.defineProperty(exports, \"Match\", { enumerable: true, get: function () { return internal_mod_1.Match; } });\nObject.defineProperty(exports, \"Metric\", { enumerable: true, get: function () { return internal_mod_1.Metric; } });\nObject.defineProperty(exports, \"millis\", { enumerable: true, get: function () { return internal_mod_1.millis; } });\nObject.defineProperty(exports, \"MsgHdrsImpl\", { enumerable: true, get: function () { return internal_mod_1.MsgHdrsImpl; } });\nObject.defineProperty(exports, \"nanos\", { enumerable: true, get: function () { return internal_mod_1.nanos; } });\nObject.defineProperty(exports, \"nkeyAuthenticator\", { enumerable: true, get: function () { return internal_mod_1.nkeyAuthenticator; } });\nObject.defineProperty(exports, \"nkeys\", { enumerable: true, get: function () { return internal_mod_1.nkeys; } });\nObject.defineProperty(exports, \"NoRespondersError\", { enumerable: true, get: function () { return internal_mod_1.NoRespondersError; } });\nObject.defineProperty(exports, \"Nuid\", { enumerable: true, get: function () { return internal_mod_1.Nuid; } });\nObject.defineProperty(exports, \"nuid\", { enumerable: true, get: function () { return internal_mod_1.nuid; } });\nObject.defineProperty(exports, \"PermissionViolationError\", { enumerable: true, get: function () { return internal_mod_1.PermissionViolationError; } });\nObject.defineProperty(exports, \"ProtocolError\", { enumerable: true, get: function () { return internal_mod_1.ProtocolError; } });\nObject.defineProperty(exports, \"RequestError\", { enumerable: true, get: function () { return internal_mod_1.RequestError; } });\nObject.defineProperty(exports, \"syncIterator\", { enumerable: true, get: function () { return internal_mod_1.syncIterator; } });\nObject.defineProperty(exports, \"TimeoutError\", { enumerable: true, get: function () { return internal_mod_1.TimeoutError; } });\nObject.defineProperty(exports, \"tokenAuthenticator\", { enumerable: true, get: function () { return internal_mod_1.tokenAuthenticator; } });\nObject.defineProperty(exports, \"UserAuthenticationExpiredError\", { enumerable: true, get: function () { return internal_mod_1.UserAuthenticationExpiredError; } });\nObject.defineProperty(exports, \"usernamePasswordAuthenticator\", { enumerable: true, get: function () { return internal_mod_1.usernamePasswordAuthenticator; } });\nObject.defineProperty(exports, \"wsconnect\", { enumerable: true, get: function () { return internal_mod_1.wsconnect; } });\n//# sourceMappingURL=mod.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgImpl = void 0;\n/*\n * Copyright 2020-2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst headers_1 = require(\"./headers\");\nconst encoders_1 = require(\"./encoders\");\nclass MsgImpl {\n _headers;\n _msg;\n _rdata;\n _reply;\n _subject;\n publisher;\n constructor(msg, data, publisher) {\n this._msg = msg;\n this._rdata = data;\n this.publisher = publisher;\n }\n get subject() {\n if (this._subject) {\n return this._subject;\n }\n this._subject = encoders_1.TD.decode(this._msg.subject);\n return this._subject;\n }\n get reply() {\n if (this._reply) {\n return this._reply;\n }\n this._reply = encoders_1.TD.decode(this._msg.reply);\n return this._reply;\n }\n get sid() {\n return this._msg.sid;\n }\n get headers() {\n if (this._msg.hdr > -1 && !this._headers) {\n const buf = this._rdata.subarray(0, this._msg.hdr);\n this._headers = headers_1.MsgHdrsImpl.decode(buf);\n }\n return this._headers;\n }\n get data() {\n if (!this._rdata) {\n return new Uint8Array(0);\n }\n return this._msg.hdr > -1\n ? this._rdata.subarray(this._msg.hdr)\n : this._rdata;\n }\n // eslint-ignore-next-line @typescript-eslint/no-explicit-any\n respond(data = encoders_1.Empty, opts) {\n if (this.reply) {\n this.publisher.publish(this.reply, data, opts);\n return true;\n }\n return false;\n }\n size() {\n const subj = this._msg.subject.length;\n const reply = this._msg.reply?.length || 0;\n const payloadAndHeaders = this._msg.size === -1 ? 0 : this._msg.size;\n return subj + reply + payloadAndHeaders;\n }\n json(reviver) {\n return JSON.parse(this.string(), reviver);\n }\n string() {\n return encoders_1.TD.decode(this.data);\n }\n requestInfo() {\n const v = this.headers?.get(\"Nats-Request-Info\");\n if (v) {\n return JSON.parse(v, function (key, value) {\n if ((key === \"start\" || key === \"stop\") && value !== \"\") {\n return new Date(Date.parse(value));\n }\n return value;\n });\n }\n return null;\n }\n}\nexports.MsgImpl = MsgImpl;\n//# sourceMappingURL=msg.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MuxSubscription = void 0;\nconst core_1 = require(\"./core\");\nconst errors_1 = require(\"./errors\");\nclass MuxSubscription {\n baseInbox;\n reqs;\n constructor() {\n this.reqs = new Map();\n }\n size() {\n return this.reqs.size;\n }\n init(prefix) {\n this.baseInbox = `${(0, core_1.createInbox)(prefix)}.`;\n return this.baseInbox;\n }\n add(r) {\n if (!isNaN(r.received)) {\n r.received = 0;\n }\n this.reqs.set(r.token, r);\n }\n get(token) {\n return this.reqs.get(token);\n }\n cancel(r) {\n this.reqs.delete(r.token);\n }\n getToken(m) {\n const s = m.subject || \"\";\n if (s.indexOf(this.baseInbox) === 0) {\n return s.substring(this.baseInbox.length);\n }\n return null;\n }\n all() {\n return Array.from(this.reqs.values());\n }\n handleError(isMuxPermissionError, err) {\n if (isMuxPermissionError) {\n // one or more requests queued but mux cannot process them\n this.all().forEach((r) => {\n r.resolver(err, {});\n });\n return true;\n }\n if (err.operation === \"publish\") {\n const req = this.all().find((s) => {\n return s.requestSubject === err.subject;\n });\n if (req) {\n req.resolver(err, {});\n return true;\n }\n }\n return false;\n }\n dispatcher() {\n return (err, m) => {\n const token = this.getToken(m);\n if (token) {\n const r = this.get(token);\n if (r) {\n if (err === null) {\n err = (m?.data?.length === 0 && m.headers?.code === 503)\n ? new errors_1.NoRespondersError(r.requestSubject)\n : null;\n }\n r.resolver(err, m);\n }\n }\n };\n }\n close() {\n const err = new errors_1.RequestError(\"connection closed\");\n this.reqs.forEach((req) => {\n req.resolver(err, {});\n });\n }\n}\nexports.MuxSubscription = MuxSubscription;\n//# sourceMappingURL=muxsubscription.js.map","\"use strict\";\n/*\n * Copyright 2018-2023 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NatsConnectionImpl = void 0;\nconst util_1 = require(\"./util\");\nconst protocol_1 = require(\"./protocol\");\nconst encoders_1 = require(\"./encoders\");\nconst semver_1 = require(\"./semver\");\nconst options_1 = require(\"./options\");\nconst queued_iterator_1 = require(\"./queued_iterator\");\nconst request_1 = require(\"./request\");\nconst core_1 = require(\"./core\");\nconst errors_1 = require(\"./errors\");\nclass NatsConnectionImpl {\n options;\n protocol;\n draining;\n constructor(opts) {\n this.draining = false;\n this.options = (0, options_1.parseOptions)(opts);\n }\n static connect(opts = {}) {\n return new Promise((resolve, reject) => {\n const nc = new NatsConnectionImpl(opts);\n protocol_1.ProtocolHandler.connect(nc.options, nc)\n .then((ph) => {\n nc.protocol = ph;\n resolve(nc);\n })\n .catch((err) => {\n reject(err);\n });\n });\n }\n closed() {\n return this.protocol.closed;\n }\n async close() {\n await this.protocol.close();\n }\n _check(subject, sub, pub) {\n if (this.isClosed()) {\n throw new errors_1.errors.ClosedConnectionError();\n }\n if (sub && this.isDraining()) {\n throw new errors_1.errors.DrainingConnectionError();\n }\n if (pub && this.protocol.noMorePublishing) {\n throw new errors_1.errors.DrainingConnectionError();\n }\n subject = subject || \"\";\n if (subject.length === 0) {\n throw new errors_1.errors.InvalidSubjectError(subject);\n }\n }\n publish(subject, data, options) {\n this._check(subject, false, true);\n if (options?.reply) {\n this._check(options.reply, false, true);\n }\n this.protocol.publish(subject, data, options);\n }\n publishMessage(msg) {\n return this.publish(msg.subject, msg.data, {\n reply: msg.reply,\n headers: msg.headers,\n });\n }\n respondMessage(msg) {\n if (msg.reply) {\n this.publish(msg.reply, msg.data, {\n reply: msg.reply,\n headers: msg.headers,\n });\n return true;\n }\n return false;\n }\n subscribe(subject, opts = {}) {\n this._check(subject, true, false);\n const sub = new protocol_1.SubscriptionImpl(this.protocol, subject, opts);\n if (typeof opts.callback !== \"function\" && typeof opts.slow === \"number\") {\n sub.setSlowNotificationFn(opts.slow, (pending) => {\n this.protocol.dispatchStatus({\n type: \"slowConsumer\",\n sub,\n pending,\n });\n });\n }\n this.protocol.subscribe(sub);\n return sub;\n }\n _resub(s, subject, max) {\n this._check(subject, true, false);\n const si = s;\n // FIXME: need way of understanding a callbacks processed\n // count without it, we cannot really do much - ie\n // for rejected messages, the count would be lower, etc.\n // To handle cases were for example KV is building a map\n // the consumer would say how many messages we need to do\n // a proper build before we can handle updates.\n si.max = max; // this might clear it\n if (max) {\n // we cannot auto-unsub, because we don't know the\n // number of messages we processed vs received\n // allow the auto-unsub on processMsg to work if they\n // we were called with a new max\n si.max = max + si.received;\n }\n this.protocol.resub(si, subject);\n }\n // possibilities are:\n // stop on error or any non-100 status\n // AND:\n // - wait for timer\n // - wait for n messages or timer\n // - wait for unknown messages, done when empty or reset timer expires (with possible alt wait)\n // - wait for unknown messages, done when an empty payload is received or timer expires (with possible alt wait)\n requestMany(subject, data = encoders_1.Empty, opts = { maxWait: 1000, maxMessages: -1 }) {\n const asyncTraces = !(this.protocol.options.noAsyncTraces || false);\n try {\n this._check(subject, true, true);\n }\n catch (err) {\n return Promise.reject(err);\n }\n opts.strategy = opts.strategy || \"timer\";\n opts.maxWait = opts.maxWait || 1000;\n if (opts.maxWait < 1) {\n return Promise.reject(errors_1.InvalidArgumentError.format(\"timeout\", \"must be greater than 0\"));\n }\n // the iterator for user results\n const qi = new queued_iterator_1.QueuedIteratorImpl();\n function stop(err) {\n qi.push(() => {\n qi.stop(err);\n });\n }\n // callback for the subscription or the mux handler\n // simply pushes errors and messages into the iterator\n function callback(err, msg) {\n if (err || msg === null) {\n stop(err === null ? undefined : err);\n }\n else {\n qi.push(msg);\n }\n }\n if (opts.noMux) {\n // we setup a subscription and manage it\n const stack = asyncTraces ? new Error().stack : null;\n let max = typeof opts.maxMessages === \"number\" && opts.maxMessages > 0\n ? opts.maxMessages\n : -1;\n const sub = this.subscribe((0, core_1.createInbox)(this.options.inboxPrefix), {\n callback: (err, msg) => {\n // we only expect runtime errors or a no responders\n if (msg?.data?.length === 0 &&\n msg?.headers?.status === \"503\") {\n err = new errors_1.errors.NoRespondersError(subject);\n }\n // augment any error with the current stack to provide context\n // for the error on the suer code\n if (err) {\n if (stack) {\n err.stack += `\\n\\n${stack}`;\n }\n cancel(err);\n return;\n }\n // push the message\n callback(null, msg);\n // see if the m request is completed\n if (opts.strategy === \"count\") {\n max--;\n if (max === 0) {\n cancel();\n }\n }\n if (opts.strategy === \"stall\") {\n clearTimers();\n timer = setTimeout(() => {\n cancel();\n }, 300);\n }\n if (opts.strategy === \"sentinel\") {\n if (msg && msg.data.length === 0) {\n cancel();\n }\n }\n },\n });\n sub.requestSubject = subject;\n sub.closed\n .then(() => {\n stop();\n })\n .catch((err) => {\n qi.stop(err);\n });\n const cancel = (err) => {\n if (err) {\n qi.push(() => {\n throw err;\n });\n }\n clearTimers();\n sub.drain()\n .then(() => {\n stop();\n })\n .catch((_err) => {\n stop();\n });\n };\n qi.iterClosed\n .then(() => {\n clearTimers();\n sub?.unsubscribe();\n })\n .catch((_err) => {\n clearTimers();\n sub?.unsubscribe();\n });\n try {\n this.publish(subject, data, { reply: sub.getSubject() });\n }\n catch (err) {\n cancel(err);\n }\n let timer = setTimeout(() => {\n cancel();\n }, opts.maxWait);\n const clearTimers = () => {\n if (timer) {\n clearTimeout(timer);\n }\n };\n }\n else {\n // the ingestion is the RequestMany\n const rmo = opts;\n rmo.callback = callback;\n qi.iterClosed.then(() => {\n r.cancel();\n }).catch((err) => {\n r.cancel(err);\n });\n const r = new request_1.RequestMany(this.protocol.muxSubscriptions, subject, rmo);\n this.protocol.request(r);\n try {\n this.publish(subject, data, {\n reply: `${this.protocol.muxSubscriptions.baseInbox}${r.token}`,\n headers: opts.headers,\n });\n }\n catch (err) {\n r.cancel(err);\n }\n }\n return Promise.resolve(qi);\n }\n request(subject, data, opts = { timeout: 1000, noMux: false }) {\n try {\n this._check(subject, true, true);\n }\n catch (err) {\n return Promise.reject(err);\n }\n const asyncTraces = !(this.protocol.options.noAsyncTraces || false);\n opts.timeout = opts.timeout || 1000;\n if (opts.timeout < 1) {\n return Promise.reject(errors_1.InvalidArgumentError.format(\"timeout\", `must be greater than 0`));\n }\n if (!opts.noMux && opts.reply) {\n return Promise.reject(errors_1.InvalidArgumentError.format([\"reply\", \"noMux\"], \"are mutually exclusive\"));\n }\n if (opts.noMux) {\n const inbox = opts.reply\n ? opts.reply\n : (0, core_1.createInbox)(this.options.inboxPrefix);\n const d = (0, util_1.deferred)();\n const errCtx = asyncTraces ? new errors_1.errors.RequestError(\"\") : null;\n const sub = this.subscribe(inbox, {\n max: 1,\n timeout: opts.timeout,\n callback: (err, msg) => {\n // check for no responders status\n if (msg && msg.data?.length === 0 && msg.headers?.code === 503) {\n err = new errors_1.errors.NoRespondersError(subject);\n }\n if (err) {\n // we have a proper stack on timeout\n if (!(err instanceof errors_1.TimeoutError)) {\n if (errCtx) {\n errCtx.message = err.message;\n errCtx.cause = err;\n err = errCtx;\n }\n else {\n err = new errors_1.errors.RequestError(err.message, { cause: err });\n }\n }\n d.reject(err);\n sub.unsubscribe();\n }\n else {\n d.resolve(msg);\n }\n },\n });\n sub.requestSubject = subject;\n this.protocol.publish(subject, data, {\n reply: inbox,\n headers: opts.headers,\n });\n return d;\n }\n else {\n const r = new request_1.RequestOne(this.protocol.muxSubscriptions, subject, opts, asyncTraces);\n this.protocol.request(r);\n try {\n this.publish(subject, data, {\n reply: `${this.protocol.muxSubscriptions.baseInbox}${r.token}`,\n headers: opts.headers,\n });\n }\n catch (err) {\n r.cancel(err);\n }\n const p = Promise.race([r.timer, r.deferred]);\n p.catch(() => {\n r.cancel();\n });\n return p;\n }\n }\n /** *\n * Flushes to the server. Promise resolves when round-trip completes.\n * @returns {Promise}\n */\n flush() {\n if (this.isClosed()) {\n return Promise.reject(new errors_1.errors.ClosedConnectionError());\n }\n return this.protocol.flush();\n }\n drain() {\n if (this.isClosed()) {\n return Promise.reject(new errors_1.errors.ClosedConnectionError());\n }\n if (this.isDraining()) {\n return Promise.reject(new errors_1.errors.DrainingConnectionError());\n }\n this.draining = true;\n return this.protocol.drain();\n }\n isClosed() {\n return this.protocol.isClosed();\n }\n isDraining() {\n return this.draining;\n }\n getServer() {\n const srv = this.protocol.getServer();\n return srv ? srv.listen : \"\";\n }\n status() {\n const iter = new queued_iterator_1.QueuedIteratorImpl();\n iter.iterClosed.then(() => {\n const idx = this.protocol.listeners.indexOf(iter);\n if (idx > -1) {\n this.protocol.listeners.splice(idx, 1);\n }\n });\n this.protocol.listeners.push(iter);\n return iter;\n }\n get info() {\n return this.protocol.isClosed() ? undefined : this.protocol.info;\n }\n async context() {\n const r = await this.request(`$SYS.REQ.USER.INFO`);\n return r.json((key, value) => {\n if (key === \"time\") {\n return new Date(Date.parse(value));\n }\n return value;\n });\n }\n stats() {\n return {\n inBytes: this.protocol.inBytes,\n outBytes: this.protocol.outBytes,\n inMsgs: this.protocol.inMsgs,\n outMsgs: this.protocol.outMsgs,\n };\n }\n getServerVersion() {\n const info = this.info;\n return info ? (0, semver_1.parseSemVer)(info.version) : undefined;\n }\n async rtt() {\n if (this.isClosed()) {\n throw new errors_1.errors.ClosedConnectionError();\n }\n if (!this.protocol.connected) {\n throw new errors_1.errors.RequestError(\"connection disconnected\");\n }\n const start = Date.now();\n await this.flush();\n return Date.now() - start;\n }\n get features() {\n return this.protocol.features;\n }\n reconnect() {\n if (this.isClosed()) {\n return Promise.reject(new errors_1.errors.ClosedConnectionError());\n }\n if (this.isDraining()) {\n return Promise.reject(new errors_1.errors.DrainingConnectionError());\n }\n return this.protocol.reconnect();\n }\n}\nexports.NatsConnectionImpl = NatsConnectionImpl;\n//# sourceMappingURL=nats.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.nkeys = void 0;\nexports.nkeys = __importStar(require(\"@nats-io/nkeys\"));\n//# sourceMappingURL=nkeys.js.map","\"use strict\";\n/*\n * Copyright 2016-2021 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.nuid = exports.Nuid = void 0;\nvar nuid_1 = require(\"@nats-io/nuid\");\nObject.defineProperty(exports, \"Nuid\", { enumerable: true, get: function () { return nuid_1.Nuid; } });\nObject.defineProperty(exports, \"nuid\", { enumerable: true, get: function () { return nuid_1.nuid; } });\n//# sourceMappingURL=nuid.js.map","\"use strict\";\n/*\n * Copyright 2021-2023 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_RECONNECT_TIME_WAIT = exports.DEFAULT_MAX_PING_OUT = exports.DEFAULT_PING_INTERVAL = exports.DEFAULT_JITTER_TLS = exports.DEFAULT_JITTER = exports.DEFAULT_MAX_RECONNECT_ATTEMPTS = void 0;\nexports.defaultOptions = defaultOptions;\nexports.hasWsProtocol = hasWsProtocol;\nexports.buildAuthenticator = buildAuthenticator;\nexports.parseOptions = parseOptions;\nexports.checkOptions = checkOptions;\nexports.checkUnsupportedOption = checkUnsupportedOption;\nconst util_1 = require(\"./util\");\nconst transport_1 = require(\"./transport\");\nconst core_1 = require(\"./core\");\nconst authenticator_1 = require(\"./authenticator\");\nconst errors_1 = require(\"./errors\");\nexports.DEFAULT_MAX_RECONNECT_ATTEMPTS = 10;\nexports.DEFAULT_JITTER = 100;\nexports.DEFAULT_JITTER_TLS = 1000;\n// Ping interval\nexports.DEFAULT_PING_INTERVAL = 2 * 60 * 1000; // 2 minutes\nexports.DEFAULT_MAX_PING_OUT = 2;\n// DISCONNECT Parameters, 2 sec wait, 10 tries\nexports.DEFAULT_RECONNECT_TIME_WAIT = 2 * 1000;\nfunction defaultOptions() {\n return {\n maxPingOut: exports.DEFAULT_MAX_PING_OUT,\n maxReconnectAttempts: exports.DEFAULT_MAX_RECONNECT_ATTEMPTS,\n noRandomize: false,\n pedantic: false,\n pingInterval: exports.DEFAULT_PING_INTERVAL,\n reconnect: true,\n reconnectJitter: exports.DEFAULT_JITTER,\n reconnectJitterTLS: exports.DEFAULT_JITTER_TLS,\n reconnectTimeWait: exports.DEFAULT_RECONNECT_TIME_WAIT,\n tls: undefined,\n verbose: false,\n waitOnFirstConnect: false,\n ignoreAuthErrorAbort: false,\n };\n}\nfunction hasWsProtocol(opts) {\n if (opts) {\n let { servers } = opts;\n if (typeof servers === \"string\") {\n servers = [servers];\n }\n if (servers) {\n for (let i = 0; i < servers.length; i++) {\n const s = servers[i].toLowerCase();\n if (s.startsWith(\"ws://\") || s.startsWith(\"wss://\")) {\n return true;\n }\n }\n }\n }\n return false;\n}\nfunction buildAuthenticator(opts) {\n const buf = [];\n // jwtAuthenticator is created by the user, since it\n // will require possibly reading files which\n // some of the clients are simply unable to do\n if (typeof opts.authenticator === \"function\") {\n buf.push(opts.authenticator);\n }\n if (Array.isArray(opts.authenticator)) {\n buf.push(...opts.authenticator);\n }\n if (opts.token) {\n buf.push((0, authenticator_1.tokenAuthenticator)(opts.token));\n }\n if (opts.user) {\n buf.push((0, authenticator_1.usernamePasswordAuthenticator)(opts.user, opts.pass));\n }\n return buf.length === 0 ? (0, authenticator_1.noAuthFn)() : (0, authenticator_1.multiAuthenticator)(buf);\n}\nfunction parseOptions(opts) {\n const dhp = `${core_1.DEFAULT_HOST}:${(0, transport_1.defaultPort)()}`;\n opts = opts || { servers: [dhp] };\n opts.servers = opts.servers || [];\n if (typeof opts.servers === \"string\") {\n opts.servers = [opts.servers];\n }\n if (opts.servers.length > 0 && opts.port) {\n throw errors_1.InvalidArgumentError.format([\"servers\", \"port\"], \"are mutually exclusive\");\n }\n if (opts.servers.length === 0 && opts.port) {\n opts.servers = [`${core_1.DEFAULT_HOST}:${opts.port}`];\n }\n if (opts.servers && opts.servers.length === 0) {\n opts.servers = [dhp];\n }\n const options = (0, util_1.extend)(defaultOptions(), opts);\n options.authenticator = buildAuthenticator(options);\n [\"reconnectDelayHandler\", \"authenticator\"].forEach((n) => {\n if (options[n] && typeof options[n] !== \"function\") {\n throw TypeError(`'${n}' must be a function`);\n }\n });\n if (!options.reconnectDelayHandler) {\n options.reconnectDelayHandler = () => {\n let extra = options.tls\n ? options.reconnectJitterTLS\n : options.reconnectJitter;\n if (extra) {\n extra++;\n extra = Math.floor(Math.random() * extra);\n }\n return options.reconnectTimeWait + extra;\n };\n }\n if (options.inboxPrefix) {\n (0, core_1.createInbox)(options.inboxPrefix);\n }\n // if not set - we set it\n if (options.resolve === undefined) {\n // set a default based on whether the client can resolve or not\n options.resolve = typeof (0, transport_1.getResolveFn)() === \"function\";\n }\n if (options.resolve) {\n if (typeof (0, transport_1.getResolveFn)() !== \"function\") {\n throw errors_1.InvalidArgumentError.format(\"resolve\", \"is not supported in the current runtime\");\n }\n }\n return options;\n}\nfunction checkOptions(info, options) {\n const { proto, tls_required: tlsRequired, tls_available: tlsAvailable } = info;\n if ((proto === undefined || proto < 1) && options.noEcho) {\n throw new errors_1.errors.ConnectionError(`server does not support 'noEcho'`);\n }\n const tls = tlsRequired || tlsAvailable || false;\n if (options.tls && !tls) {\n throw new errors_1.errors.ConnectionError(`server does not support 'tls'`);\n }\n}\nfunction checkUnsupportedOption(prop, v) {\n if (v) {\n throw errors_1.InvalidArgumentError.format(prop, \"is not supported\");\n }\n}\n//# sourceMappingURL=options.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cc = exports.State = exports.Parser = exports.Kind = void 0;\nexports.describe = describe;\n// deno-lint-ignore-file no-undef\n/*\n * Copyright 2020-2021 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst denobuffer_1 = require(\"./denobuffer\");\nconst encoders_1 = require(\"./encoders\");\nexports.Kind = {\n OK: 0,\n ERR: 1,\n MSG: 2,\n INFO: 3,\n PING: 4,\n PONG: 5,\n};\nfunction describe(e) {\n let ks;\n let data = \"\";\n switch (e.kind) {\n case exports.Kind.MSG:\n ks = \"MSG\";\n break;\n case exports.Kind.OK:\n ks = \"OK\";\n break;\n case exports.Kind.ERR:\n ks = \"ERR\";\n data = encoders_1.TD.decode(e.data);\n break;\n case exports.Kind.PING:\n ks = \"PING\";\n break;\n case exports.Kind.PONG:\n ks = \"PONG\";\n break;\n case exports.Kind.INFO:\n ks = \"INFO\";\n data = encoders_1.TD.decode(e.data);\n }\n return `${ks}: ${data}`;\n}\nfunction newMsgArg() {\n const ma = {};\n ma.sid = -1;\n ma.hdr = -1;\n ma.size = -1;\n return ma;\n}\nconst ASCII_0 = 48;\nconst ASCII_9 = 57;\n// This is an almost verbatim port of the Go NATS parser\n// https://github.com/nats-io/nats.go/blob/master/parser.go\nclass Parser {\n dispatcher;\n state;\n as;\n drop;\n hdr;\n ma;\n argBuf;\n msgBuf;\n constructor(dispatcher) {\n this.dispatcher = dispatcher;\n this.state = exports.State.OP_START;\n this.as = 0;\n this.drop = 0;\n this.hdr = 0;\n }\n parse(buf) {\n let i;\n for (i = 0; i < buf.length; i++) {\n const b = buf[i];\n switch (this.state) {\n case exports.State.OP_START:\n switch (b) {\n case exports.cc.M:\n case exports.cc.m:\n this.state = exports.State.OP_M;\n this.hdr = -1;\n this.ma = newMsgArg();\n break;\n case exports.cc.H:\n case exports.cc.h:\n this.state = exports.State.OP_H;\n this.hdr = 0;\n this.ma = newMsgArg();\n break;\n case exports.cc.P:\n case exports.cc.p:\n this.state = exports.State.OP_P;\n break;\n case exports.cc.PLUS:\n this.state = exports.State.OP_PLUS;\n break;\n case exports.cc.MINUS:\n this.state = exports.State.OP_MINUS;\n break;\n case exports.cc.I:\n case exports.cc.i:\n this.state = exports.State.OP_I;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_H:\n switch (b) {\n case exports.cc.M:\n case exports.cc.m:\n this.state = exports.State.OP_M;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_M:\n switch (b) {\n case exports.cc.S:\n case exports.cc.s:\n this.state = exports.State.OP_MS;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_MS:\n switch (b) {\n case exports.cc.G:\n case exports.cc.g:\n this.state = exports.State.OP_MSG;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_MSG:\n switch (b) {\n case exports.cc.SPACE:\n case exports.cc.TAB:\n this.state = exports.State.OP_MSG_SPC;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_MSG_SPC:\n switch (b) {\n case exports.cc.SPACE:\n case exports.cc.TAB:\n continue;\n default:\n this.state = exports.State.MSG_ARG;\n this.as = i;\n }\n break;\n case exports.State.MSG_ARG:\n switch (b) {\n case exports.cc.CR:\n this.drop = 1;\n break;\n case exports.cc.NL: {\n const arg = this.argBuf\n ? this.argBuf.bytes()\n : buf.subarray(this.as, i - this.drop);\n this.processMsgArgs(arg);\n this.drop = 0;\n this.as = i + 1;\n this.state = exports.State.MSG_PAYLOAD;\n // jump ahead with the index. If this overruns\n // what is left we fall out and process a split buffer.\n i = this.as + this.ma.size - 1;\n break;\n }\n default:\n if (this.argBuf) {\n this.argBuf.writeByte(b);\n }\n }\n break;\n case exports.State.MSG_PAYLOAD:\n if (this.msgBuf) {\n if (this.msgBuf.length >= this.ma.size) {\n const data = this.msgBuf.bytes({ copy: false });\n this.dispatcher.push({ kind: exports.Kind.MSG, msg: this.ma, data: data });\n this.argBuf = undefined;\n this.msgBuf = undefined;\n this.state = exports.State.MSG_END;\n }\n else {\n let toCopy = this.ma.size - this.msgBuf.length;\n const avail = buf.length - i;\n if (avail < toCopy) {\n toCopy = avail;\n }\n if (toCopy > 0) {\n this.msgBuf.write(buf.subarray(i, i + toCopy));\n i = (i + toCopy) - 1;\n }\n else {\n this.msgBuf.writeByte(b);\n }\n }\n }\n else if (i - this.as >= this.ma.size) {\n this.dispatcher.push({ kind: exports.Kind.MSG, msg: this.ma, data: buf.subarray(this.as, i) });\n this.argBuf = undefined;\n this.msgBuf = undefined;\n this.state = exports.State.MSG_END;\n }\n break;\n case exports.State.MSG_END:\n switch (b) {\n case exports.cc.NL:\n this.drop = 0;\n this.as = i + 1;\n this.state = exports.State.OP_START;\n break;\n default:\n continue;\n }\n break;\n case exports.State.OP_PLUS:\n switch (b) {\n case exports.cc.O:\n case exports.cc.o:\n this.state = exports.State.OP_PLUS_O;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_PLUS_O:\n switch (b) {\n case exports.cc.K:\n case exports.cc.k:\n this.state = exports.State.OP_PLUS_OK;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_PLUS_OK:\n switch (b) {\n case exports.cc.NL:\n this.dispatcher.push({ kind: exports.Kind.OK });\n this.drop = 0;\n this.state = exports.State.OP_START;\n break;\n }\n break;\n case exports.State.OP_MINUS:\n switch (b) {\n case exports.cc.E:\n case exports.cc.e:\n this.state = exports.State.OP_MINUS_E;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_MINUS_E:\n switch (b) {\n case exports.cc.R:\n case exports.cc.r:\n this.state = exports.State.OP_MINUS_ER;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_MINUS_ER:\n switch (b) {\n case exports.cc.R:\n case exports.cc.r:\n this.state = exports.State.OP_MINUS_ERR;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_MINUS_ERR:\n switch (b) {\n case exports.cc.SPACE:\n case exports.cc.TAB:\n this.state = exports.State.OP_MINUS_ERR_SPC;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_MINUS_ERR_SPC:\n switch (b) {\n case exports.cc.SPACE:\n case exports.cc.TAB:\n continue;\n default:\n this.state = exports.State.MINUS_ERR_ARG;\n this.as = i;\n }\n break;\n case exports.State.MINUS_ERR_ARG:\n switch (b) {\n case exports.cc.CR:\n this.drop = 1;\n break;\n case exports.cc.NL: {\n let arg;\n if (this.argBuf) {\n arg = this.argBuf.bytes();\n this.argBuf = undefined;\n }\n else {\n arg = buf.subarray(this.as, i - this.drop);\n }\n this.dispatcher.push({ kind: exports.Kind.ERR, data: arg });\n this.drop = 0;\n this.as = i + 1;\n this.state = exports.State.OP_START;\n break;\n }\n default:\n if (this.argBuf) {\n this.argBuf.write(Uint8Array.of(b));\n }\n }\n break;\n case exports.State.OP_P:\n switch (b) {\n case exports.cc.I:\n case exports.cc.i:\n this.state = exports.State.OP_PI;\n break;\n case exports.cc.O:\n case exports.cc.o:\n this.state = exports.State.OP_PO;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_PO:\n switch (b) {\n case exports.cc.N:\n case exports.cc.n:\n this.state = exports.State.OP_PON;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_PON:\n switch (b) {\n case exports.cc.G:\n case exports.cc.g:\n this.state = exports.State.OP_PONG;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_PONG:\n switch (b) {\n case exports.cc.NL:\n this.dispatcher.push({ kind: exports.Kind.PONG });\n this.drop = 0;\n this.state = exports.State.OP_START;\n break;\n }\n break;\n case exports.State.OP_PI:\n switch (b) {\n case exports.cc.N:\n case exports.cc.n:\n this.state = exports.State.OP_PIN;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_PIN:\n switch (b) {\n case exports.cc.G:\n case exports.cc.g:\n this.state = exports.State.OP_PING;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_PING:\n switch (b) {\n case exports.cc.NL:\n this.dispatcher.push({ kind: exports.Kind.PING });\n this.drop = 0;\n this.state = exports.State.OP_START;\n break;\n }\n break;\n case exports.State.OP_I:\n switch (b) {\n case exports.cc.N:\n case exports.cc.n:\n this.state = exports.State.OP_IN;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_IN:\n switch (b) {\n case exports.cc.F:\n case exports.cc.f:\n this.state = exports.State.OP_INF;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_INF:\n switch (b) {\n case exports.cc.O:\n case exports.cc.o:\n this.state = exports.State.OP_INFO;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_INFO:\n switch (b) {\n case exports.cc.SPACE:\n case exports.cc.TAB:\n this.state = exports.State.OP_INFO_SPC;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_INFO_SPC:\n switch (b) {\n case exports.cc.SPACE:\n case exports.cc.TAB:\n continue;\n default:\n this.state = exports.State.INFO_ARG;\n this.as = i;\n }\n break;\n case exports.State.INFO_ARG:\n switch (b) {\n case exports.cc.CR:\n this.drop = 1;\n break;\n case exports.cc.NL: {\n let arg;\n if (this.argBuf) {\n arg = this.argBuf.bytes();\n this.argBuf = undefined;\n }\n else {\n arg = buf.subarray(this.as, i - this.drop);\n }\n this.dispatcher.push({ kind: exports.Kind.INFO, data: arg });\n this.drop = 0;\n this.as = i + 1;\n this.state = exports.State.OP_START;\n break;\n }\n default:\n if (this.argBuf) {\n this.argBuf.writeByte(b);\n }\n }\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n }\n if ((this.state === exports.State.MSG_ARG || this.state === exports.State.MINUS_ERR_ARG ||\n this.state === exports.State.INFO_ARG) && !this.argBuf) {\n this.argBuf = new denobuffer_1.DenoBuffer(buf.subarray(this.as, i - this.drop));\n }\n if (this.state === exports.State.MSG_PAYLOAD && !this.msgBuf) {\n if (!this.argBuf) {\n this.cloneMsgArg();\n }\n this.msgBuf = new denobuffer_1.DenoBuffer(buf.subarray(this.as));\n }\n }\n cloneMsgArg() {\n const s = this.ma.subject.length;\n const r = this.ma.reply ? this.ma.reply.length : 0;\n const buf = new Uint8Array(s + r);\n buf.set(this.ma.subject);\n if (this.ma.reply) {\n buf.set(this.ma.reply, s);\n }\n this.argBuf = new denobuffer_1.DenoBuffer(buf);\n this.ma.subject = buf.subarray(0, s);\n if (this.ma.reply) {\n this.ma.reply = buf.subarray(s);\n }\n }\n processMsgArgs(arg) {\n if (this.hdr >= 0) {\n return this.processHeaderMsgArgs(arg);\n }\n const args = [];\n let start = -1;\n for (let i = 0; i < arg.length; i++) {\n const b = arg[i];\n switch (b) {\n case exports.cc.SPACE:\n case exports.cc.TAB:\n case exports.cc.CR:\n case exports.cc.NL:\n if (start >= 0) {\n args.push(arg.subarray(start, i));\n start = -1;\n }\n break;\n default:\n if (start < 0) {\n start = i;\n }\n }\n }\n if (start >= 0) {\n args.push(arg.subarray(start));\n }\n switch (args.length) {\n case 3:\n this.ma.subject = args[0];\n this.ma.sid = this.protoParseInt(args[1]);\n this.ma.reply = undefined;\n this.ma.size = this.protoParseInt(args[2]);\n break;\n case 4:\n this.ma.subject = args[0];\n this.ma.sid = this.protoParseInt(args[1]);\n this.ma.reply = args[2];\n this.ma.size = this.protoParseInt(args[3]);\n break;\n default:\n throw this.fail(arg, \"processMsgArgs Parse Error\");\n }\n if (this.ma.sid < 0) {\n throw this.fail(arg, \"processMsgArgs Bad or Missing Sid Error\");\n }\n if (this.ma.size < 0) {\n throw this.fail(arg, \"processMsgArgs Bad or Missing Size Error\");\n }\n }\n fail(data, label = \"\") {\n if (!label) {\n label = `parse error [${this.state}]`;\n }\n else {\n label = `${label} [${this.state}]`;\n }\n return new Error(`${label}: ${encoders_1.TD.decode(data)}`);\n }\n processHeaderMsgArgs(arg) {\n const args = [];\n let start = -1;\n for (let i = 0; i < arg.length; i++) {\n const b = arg[i];\n switch (b) {\n case exports.cc.SPACE:\n case exports.cc.TAB:\n case exports.cc.CR:\n case exports.cc.NL:\n if (start >= 0) {\n args.push(arg.subarray(start, i));\n start = -1;\n }\n break;\n default:\n if (start < 0) {\n start = i;\n }\n }\n }\n if (start >= 0) {\n args.push(arg.subarray(start));\n }\n switch (args.length) {\n case 4:\n this.ma.subject = args[0];\n this.ma.sid = this.protoParseInt(args[1]);\n this.ma.reply = undefined;\n this.ma.hdr = this.protoParseInt(args[2]);\n this.ma.size = this.protoParseInt(args[3]);\n break;\n case 5:\n this.ma.subject = args[0];\n this.ma.sid = this.protoParseInt(args[1]);\n this.ma.reply = args[2];\n this.ma.hdr = this.protoParseInt(args[3]);\n this.ma.size = this.protoParseInt(args[4]);\n break;\n default:\n throw this.fail(arg, \"processHeaderMsgArgs Parse Error\");\n }\n if (this.ma.sid < 0) {\n throw this.fail(arg, \"processHeaderMsgArgs Bad or Missing Sid Error\");\n }\n if (this.ma.hdr < 0 || this.ma.hdr > this.ma.size) {\n throw this.fail(arg, \"processHeaderMsgArgs Bad or Missing Header Size Error\");\n }\n if (this.ma.size < 0) {\n throw this.fail(arg, \"processHeaderMsgArgs Bad or Missing Size Error\");\n }\n }\n protoParseInt(a) {\n if (a.length === 0) {\n return -1;\n }\n let n = 0;\n for (let i = 0; i < a.length; i++) {\n if (a[i] < ASCII_0 || a[i] > ASCII_9) {\n return -1;\n }\n n = n * 10 + (a[i] - ASCII_0);\n }\n return n;\n }\n}\nexports.Parser = Parser;\nexports.State = {\n OP_START: 0,\n OP_PLUS: 1,\n OP_PLUS_O: 2,\n OP_PLUS_OK: 3,\n OP_MINUS: 4,\n OP_MINUS_E: 5,\n OP_MINUS_ER: 6,\n OP_MINUS_ERR: 7,\n OP_MINUS_ERR_SPC: 8,\n MINUS_ERR_ARG: 9,\n OP_M: 10,\n OP_MS: 11,\n OP_MSG: 12,\n OP_MSG_SPC: 13,\n MSG_ARG: 14,\n MSG_PAYLOAD: 15,\n MSG_END: 16,\n OP_H: 17,\n OP_P: 18,\n OP_PI: 19,\n OP_PIN: 20,\n OP_PING: 21,\n OP_PO: 22,\n OP_PON: 23,\n OP_PONG: 24,\n OP_I: 25,\n OP_IN: 26,\n OP_INF: 27,\n OP_INFO: 28,\n OP_INFO_SPC: 29,\n INFO_ARG: 30,\n};\nexports.cc = {\n CR: \"\\r\".charCodeAt(0),\n E: \"E\".charCodeAt(0),\n e: \"e\".charCodeAt(0),\n F: \"F\".charCodeAt(0),\n f: \"f\".charCodeAt(0),\n G: \"G\".charCodeAt(0),\n g: \"g\".charCodeAt(0),\n H: \"H\".charCodeAt(0),\n h: \"h\".charCodeAt(0),\n I: \"I\".charCodeAt(0),\n i: \"i\".charCodeAt(0),\n K: \"K\".charCodeAt(0),\n k: \"k\".charCodeAt(0),\n M: \"M\".charCodeAt(0),\n m: \"m\".charCodeAt(0),\n MINUS: \"-\".charCodeAt(0),\n N: \"N\".charCodeAt(0),\n n: \"n\".charCodeAt(0),\n NL: \"\\n\".charCodeAt(0),\n O: \"O\".charCodeAt(0),\n o: \"o\".charCodeAt(0),\n P: \"P\".charCodeAt(0),\n p: \"p\".charCodeAt(0),\n PLUS: \"+\".charCodeAt(0),\n R: \"R\".charCodeAt(0),\n r: \"r\".charCodeAt(0),\n S: \"S\".charCodeAt(0),\n s: \"s\".charCodeAt(0),\n SPACE: \" \".charCodeAt(0),\n TAB: \"\\t\".charCodeAt(0),\n};\n//# sourceMappingURL=parser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProtocolHandler = exports.Subscriptions = exports.SubscriptionImpl = exports.Connect = exports.INFO = void 0;\n/*\n * Copyright 2018-2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst encoders_1 = require(\"./encoders\");\nconst transport_1 = require(\"./transport\");\nconst util_1 = require(\"./util\");\nconst databuffer_1 = require(\"./databuffer\");\nconst servers_1 = require(\"./servers\");\nconst queued_iterator_1 = require(\"./queued_iterator\");\nconst muxsubscription_1 = require(\"./muxsubscription\");\nconst heartbeats_1 = require(\"./heartbeats\");\nconst parser_1 = require(\"./parser\");\nconst msg_1 = require(\"./msg\");\nconst semver_1 = require(\"./semver\");\nconst options_1 = require(\"./options\");\nconst errors_1 = require(\"./errors\");\nconst FLUSH_THRESHOLD = 1024 * 32;\nexports.INFO = /^INFO\\s+([^\\r\\n]+)\\r\\n/i;\nconst PONG_CMD = (0, encoders_1.encode)(\"PONG\\r\\n\");\nconst PING_CMD = (0, encoders_1.encode)(\"PING\\r\\n\");\nclass Connect {\n echo;\n no_responders;\n protocol;\n verbose;\n pedantic;\n jwt;\n nkey;\n sig;\n user;\n pass;\n auth_token;\n tls_required;\n name;\n lang;\n version;\n headers;\n constructor(transport, opts, nonce) {\n this.protocol = 1;\n this.version = transport.version;\n this.lang = transport.lang;\n this.echo = opts.noEcho ? false : undefined;\n this.verbose = opts.verbose;\n this.pedantic = opts.pedantic;\n this.tls_required = opts.tls ? true : undefined;\n this.name = opts.name;\n const creds = (opts && typeof opts.authenticator === \"function\"\n ? opts.authenticator(nonce)\n : {}) || {};\n (0, util_1.extend)(this, creds);\n }\n}\nexports.Connect = Connect;\nclass SlowNotifier {\n slow;\n cb;\n notified;\n constructor(slow, cb) {\n this.slow = slow;\n this.cb = cb;\n this.notified = false;\n }\n maybeNotify(pending) {\n // if we are below the threshold reset the ability to notify\n if (pending <= this.slow) {\n this.notified = false;\n }\n else {\n if (!this.notified) {\n // crossed the threshold, notify and silence.\n this.cb(pending);\n this.notified = true;\n }\n }\n }\n}\nclass SubscriptionImpl extends queued_iterator_1.QueuedIteratorImpl {\n sid;\n queue;\n draining;\n max;\n subject;\n drained;\n protocol;\n timer;\n info;\n cleanupFn;\n closed;\n requestSubject;\n slow;\n constructor(protocol, subject, opts = {}) {\n super();\n (0, util_1.extend)(this, opts);\n this.protocol = protocol;\n this.subject = subject;\n this.draining = false;\n this.noIterator = typeof opts.callback === \"function\";\n this.closed = (0, util_1.deferred)();\n const asyncTraces = !(protocol.options?.noAsyncTraces || false);\n if (opts.timeout) {\n this.timer = (0, util_1.timeout)(opts.timeout, asyncTraces);\n this.timer\n .then(() => {\n // timer was cancelled\n this.timer = undefined;\n })\n .catch((err) => {\n // timer fired\n this.stop(err);\n if (this.noIterator) {\n this.callback(err, {});\n }\n });\n }\n if (!this.noIterator) {\n // cleanup - they used break or return from the iterator\n // make sure we clean up, if they didn't call unsub\n this.iterClosed.then((err) => {\n this.closed.resolve(err);\n this.unsubscribe();\n });\n }\n }\n setSlowNotificationFn(slow, fn) {\n this.slow = undefined;\n if (fn) {\n if (this.noIterator) {\n throw new Error(\"callbacks don't support slow notifications\");\n }\n this.slow = new SlowNotifier(slow, fn);\n }\n }\n callback(err, msg) {\n this.cancelTimeout();\n err ? this.stop(err) : this.push(msg);\n if (!err && this.slow) {\n this.slow.maybeNotify(this.getPending());\n }\n }\n close(err) {\n if (!this.isClosed()) {\n this.cancelTimeout();\n const fn = () => {\n this.stop();\n if (this.cleanupFn) {\n try {\n this.cleanupFn(this, this.info);\n }\n catch (_err) {\n // ignoring\n }\n }\n this.closed.resolve(err);\n };\n if (this.noIterator) {\n fn();\n }\n else {\n this.push(fn);\n }\n }\n }\n unsubscribe(max) {\n this.protocol.unsubscribe(this, max);\n }\n cancelTimeout() {\n if (this.timer) {\n this.timer.cancel();\n this.timer = undefined;\n }\n }\n drain() {\n if (this.protocol.isClosed()) {\n return Promise.reject(new errors_1.errors.ClosedConnectionError());\n }\n if (this.isClosed()) {\n return Promise.reject(new errors_1.errors.InvalidOperationError(\"subscription is already closed\"));\n }\n if (!this.drained) {\n this.draining = true;\n this.protocol.unsub(this);\n this.drained = this.protocol.flush((0, util_1.deferred)())\n .then(() => {\n this.protocol.subscriptions.cancel(this);\n })\n .catch(() => {\n this.protocol.subscriptions.cancel(this);\n });\n }\n return this.drained;\n }\n isDraining() {\n return this.draining;\n }\n isClosed() {\n return this.done;\n }\n getSubject() {\n return this.subject;\n }\n getMax() {\n return this.max;\n }\n getID() {\n return this.sid;\n }\n}\nexports.SubscriptionImpl = SubscriptionImpl;\nclass Subscriptions {\n mux;\n subs;\n sidCounter;\n constructor() {\n this.sidCounter = 0;\n this.mux = null;\n this.subs = new Map();\n }\n size() {\n return this.subs.size;\n }\n add(s) {\n this.sidCounter++;\n s.sid = this.sidCounter;\n this.subs.set(s.sid, s);\n return s;\n }\n setMux(s) {\n this.mux = s;\n return s;\n }\n getMux() {\n return this.mux;\n }\n get(sid) {\n return this.subs.get(sid);\n }\n resub(s) {\n this.sidCounter++;\n this.subs.delete(s.sid);\n s.sid = this.sidCounter;\n this.subs.set(s.sid, s);\n return s;\n }\n all() {\n return Array.from(this.subs.values());\n }\n cancel(s) {\n if (s) {\n s.close();\n this.subs.delete(s.sid);\n }\n }\n handleError(err) {\n const subs = this.all();\n let sub;\n if (err.operation === \"subscription\") {\n sub = subs.find((s) => {\n return s.subject === err.subject && s.queue === err.queue;\n });\n }\n else if (err.operation === \"publish\") {\n // we have a no mux subscription\n sub = subs.find((s) => {\n return s.requestSubject === err.subject;\n });\n }\n if (sub) {\n sub.callback(err, {});\n sub.close(err);\n this.subs.delete(sub.sid);\n return sub !== this.mux;\n }\n return false;\n }\n close() {\n this.subs.forEach((sub) => {\n sub.close();\n });\n }\n}\nexports.Subscriptions = Subscriptions;\nclass ProtocolHandler {\n connected;\n connectedOnce;\n infoReceived;\n info;\n muxSubscriptions;\n options;\n outbound;\n pongs;\n subscriptions;\n transport;\n noMorePublishing;\n connectError;\n publisher;\n _closed;\n closed;\n listeners;\n heartbeats;\n parser;\n outMsgs;\n inMsgs;\n outBytes;\n inBytes;\n pendingLimit;\n lastError;\n abortReconnect;\n whyClosed;\n servers;\n server;\n features;\n connectPromise;\n dialDelay;\n raceTimer;\n constructor(options, publisher) {\n this._closed = false;\n this.connected = false;\n this.connectedOnce = false;\n this.infoReceived = false;\n this.noMorePublishing = false;\n this.abortReconnect = false;\n this.listeners = [];\n this.pendingLimit = FLUSH_THRESHOLD;\n this.outMsgs = 0;\n this.inMsgs = 0;\n this.outBytes = 0;\n this.inBytes = 0;\n this.options = options;\n this.publisher = publisher;\n this.subscriptions = new Subscriptions();\n this.muxSubscriptions = new muxsubscription_1.MuxSubscription();\n this.outbound = new databuffer_1.DataBuffer();\n this.pongs = [];\n this.whyClosed = \"\";\n //@ts-ignore: options.pendingLimit is hidden\n this.pendingLimit = options.pendingLimit || this.pendingLimit;\n this.features = new semver_1.Features({ major: 0, minor: 0, micro: 0 });\n this.connectPromise = null;\n this.dialDelay = null;\n const servers = typeof options.servers === \"string\"\n ? [options.servers]\n : options.servers;\n this.servers = new servers_1.Servers(servers, {\n randomize: !options.noRandomize,\n });\n this.closed = (0, util_1.deferred)();\n this.parser = new parser_1.Parser(this);\n this.heartbeats = new heartbeats_1.Heartbeat(this, this.options.pingInterval || options_1.DEFAULT_PING_INTERVAL, this.options.maxPingOut || options_1.DEFAULT_MAX_PING_OUT);\n }\n resetOutbound() {\n this.outbound.reset();\n const pongs = this.pongs;\n this.pongs = [];\n // reject the pongs - the disconnect from here shouldn't have a trace\n // because that confuses API consumers\n const err = new errors_1.errors.RequestError(\"connection disconnected\");\n err.stack = \"\";\n pongs.forEach((p) => {\n p.reject(err);\n });\n this.parser = new parser_1.Parser(this);\n this.infoReceived = false;\n }\n dispatchStatus(status) {\n this.listeners.forEach((q) => {\n q.push(status);\n });\n }\n prepare() {\n if (this.transport) {\n this.transport.discard();\n }\n this.info = undefined;\n this.resetOutbound();\n const pong = (0, util_1.deferred)();\n pong.catch(() => {\n // provide at least one catch - as pong rejection can happen before it is expected\n });\n this.pongs.unshift(pong);\n this.connectError = (err) => {\n pong.reject(err);\n };\n this.transport = (0, transport_1.newTransport)();\n this.transport.closed()\n .then(async (_err) => {\n this.connected = false;\n if (!this.isClosed()) {\n // if the transport gave an error use that, otherwise\n // we may have received a protocol error\n await this.disconnected(this.transport.closeError || this.lastError);\n return;\n }\n });\n return pong;\n }\n disconnect() {\n this.dispatchStatus({ type: \"staleConnection\" });\n this.transport.disconnect();\n }\n reconnect() {\n if (this.connected) {\n this.dispatchStatus({\n type: \"forceReconnect\",\n });\n this.transport.disconnect();\n }\n return Promise.resolve();\n }\n async disconnected(err) {\n this.dispatchStatus({\n type: \"disconnect\",\n server: this.servers.getCurrentServer().toString(),\n });\n if (this.options.reconnect) {\n await this.dialLoop()\n .then(() => {\n this.dispatchStatus({\n type: \"reconnect\",\n server: this.servers.getCurrentServer().toString(),\n });\n // if we are here we reconnected, but we have an authentication\n // that expired, we need to clean it up, otherwise we'll queue up\n // two of these, and the default for the client will be to\n // close, rather than attempt again - possibly they have an\n // authenticator that dynamically updates\n if (this.lastError instanceof errors_1.errors.UserAuthenticationExpiredError) {\n this.lastError = undefined;\n }\n })\n .catch((err) => {\n this.close(err).catch();\n });\n }\n else {\n await this.close(err).catch();\n }\n }\n async dial(srv) {\n const pong = this.prepare();\n try {\n this.raceTimer = (0, util_1.timeout)(this.options.timeout || 20000);\n const cp = this.transport.connect(srv, this.options);\n await Promise.race([cp, this.raceTimer]);\n (async () => {\n try {\n for await (const b of this.transport) {\n this.parser.parse(b);\n }\n }\n catch (err) {\n console.log(\"reader closed\", err);\n }\n })().then();\n }\n catch (err) {\n pong.reject(err);\n }\n try {\n await Promise.race([this.raceTimer, pong]);\n this.raceTimer?.cancel();\n this.connected = true;\n this.connectError = undefined;\n this.sendSubscriptions();\n this.connectedOnce = true;\n this.server.didConnect = true;\n this.server.reconnects = 0;\n this.flushPending();\n this.heartbeats.start();\n }\n catch (err) {\n this.raceTimer?.cancel();\n await this.transport.close(err);\n throw err;\n }\n }\n async _doDial(srv) {\n const { resolve } = this.options;\n const alts = await srv.resolve({\n fn: (0, transport_1.getResolveFn)(),\n debug: this.options.debug,\n randomize: !this.options.noRandomize,\n resolve,\n });\n let lastErr = null;\n for (const a of alts) {\n try {\n lastErr = null;\n this.dispatchStatus({ type: \"reconnecting\" });\n await this.dial(a);\n // if here we connected\n return;\n }\n catch (err) {\n lastErr = err;\n }\n }\n // if we are here, we failed, and we have no additional\n // alternatives for this server\n throw lastErr;\n }\n dialLoop() {\n if (this.connectPromise === null) {\n this.connectPromise = this.dodialLoop();\n this.connectPromise\n .then(() => { })\n .catch(() => { })\n .finally(() => {\n this.connectPromise = null;\n });\n }\n return this.connectPromise;\n }\n async dodialLoop() {\n let lastError;\n while (true) {\n if (this._closed) {\n // if we are disconnected, and close is called, the client\n // still tries to reconnect - to match the reconnect policy\n // in the case of close, want to stop.\n this.servers.clear();\n }\n const wait = this.options.reconnectDelayHandler\n ? this.options.reconnectDelayHandler()\n : options_1.DEFAULT_RECONNECT_TIME_WAIT;\n let maxWait = wait;\n const srv = this.selectServer();\n if (!srv || this.abortReconnect) {\n if (lastError) {\n throw lastError;\n }\n else if (this.lastError) {\n throw this.lastError;\n }\n else {\n throw new errors_1.errors.ConnectionError(\"connection refused\");\n }\n }\n const now = Date.now();\n if (srv.lastConnect === 0 || srv.lastConnect + wait <= now) {\n srv.lastConnect = Date.now();\n try {\n await this._doDial(srv);\n break;\n }\n catch (err) {\n lastError = err;\n if (!this.connectedOnce) {\n if (this.options.waitOnFirstConnect) {\n continue;\n }\n this.servers.removeCurrentServer();\n }\n srv.reconnects++;\n const mra = this.options.maxReconnectAttempts || 0;\n if (mra !== -1 && srv.reconnects >= mra) {\n this.servers.removeCurrentServer();\n }\n }\n }\n else {\n maxWait = Math.min(maxWait, srv.lastConnect + wait - now);\n this.dialDelay = (0, util_1.delay)(maxWait);\n await this.dialDelay;\n }\n }\n }\n static async connect(options, publisher) {\n const h = new ProtocolHandler(options, publisher);\n await h.dialLoop();\n return h;\n }\n static toError(s) {\n let err = errors_1.errors.PermissionViolationError.parse(s);\n if (err) {\n return err;\n }\n err = errors_1.errors.UserAuthenticationExpiredError.parse(s);\n if (err) {\n return err;\n }\n err = errors_1.errors.AuthorizationError.parse(s);\n if (err) {\n return err;\n }\n return new errors_1.errors.ProtocolError(s);\n }\n processMsg(msg, data) {\n this.inMsgs++;\n this.inBytes += data.length;\n if (!this.subscriptions.sidCounter) {\n return;\n }\n const sub = this.subscriptions.get(msg.sid);\n if (!sub) {\n return;\n }\n sub.received += 1;\n if (sub.callback) {\n sub.callback(null, new msg_1.MsgImpl(msg, data, this));\n }\n if (sub.max !== undefined && sub.received >= sub.max) {\n sub.unsubscribe();\n }\n }\n processError(m) {\n let s = (0, encoders_1.decode)(m);\n if (s.startsWith(\"'\") && s.endsWith(\"'\")) {\n s = s.slice(1, s.length - 1);\n }\n const err = ProtocolHandler.toError(s);\n switch (err.constructor) {\n case errors_1.errors.PermissionViolationError: {\n const pe = err;\n const mux = this.subscriptions.getMux();\n const isMuxPermission = mux ? pe.subject === mux.subject : false;\n this.subscriptions.handleError(pe);\n this.muxSubscriptions.handleError(isMuxPermission, pe);\n if (isMuxPermission) {\n // remove the permission - enable it to be recreated\n this.subscriptions.setMux(null);\n }\n }\n }\n this.dispatchStatus({ type: \"error\", error: err });\n this.handleError(err);\n }\n handleError(err) {\n if (err instanceof errors_1.errors.UserAuthenticationExpiredError ||\n err instanceof errors_1.errors.AuthorizationError) {\n this.handleAuthError(err);\n }\n if (!(err instanceof errors_1.errors.PermissionViolationError)) {\n this.lastError = err;\n }\n }\n handleAuthError(err) {\n if ((this.lastError instanceof errors_1.errors.UserAuthenticationExpiredError ||\n this.lastError instanceof errors_1.errors.AuthorizationError) &&\n this.options.ignoreAuthErrorAbort === false) {\n this.abortReconnect = true;\n }\n if (this.connectError) {\n this.connectError(err);\n }\n else {\n this.disconnect();\n }\n }\n processPing() {\n this.transport.send(PONG_CMD);\n }\n processPong() {\n const cb = this.pongs.shift();\n if (cb) {\n cb.resolve();\n }\n }\n processInfo(m) {\n const info = JSON.parse((0, encoders_1.decode)(m));\n this.info = info;\n const updates = this.options && this.options.ignoreClusterUpdates\n ? undefined\n : this.servers.update(info, this.transport.isEncrypted());\n if (!this.infoReceived) {\n this.features.update((0, semver_1.parseSemVer)(info.version));\n this.infoReceived = true;\n if (this.transport.isEncrypted()) {\n this.servers.updateTLSName();\n }\n // send connect\n const { version, lang } = this.transport;\n try {\n const c = new Connect({ version, lang }, this.options, info.nonce);\n if (info.headers) {\n c.headers = true;\n c.no_responders = true;\n }\n const cs = JSON.stringify(c);\n this.transport.send((0, encoders_1.encode)(`CONNECT ${cs}${transport_1.CR_LF}`));\n this.transport.send(PING_CMD);\n }\n catch (err) {\n // if we are dying here, this is likely some an authenticator blowing up\n this.close(err).catch();\n }\n }\n if (updates) {\n const { added, deleted } = updates;\n this.dispatchStatus({ type: \"update\", added, deleted });\n }\n const ldm = info.ldm !== undefined ? info.ldm : false;\n if (ldm) {\n this.dispatchStatus({\n type: \"ldm\",\n server: this.servers.getCurrentServer().toString(),\n });\n }\n }\n push(e) {\n switch (e.kind) {\n case parser_1.Kind.MSG: {\n const { msg, data } = e;\n this.processMsg(msg, data);\n break;\n }\n case parser_1.Kind.OK:\n break;\n case parser_1.Kind.ERR:\n this.processError(e.data);\n break;\n case parser_1.Kind.PING:\n this.processPing();\n break;\n case parser_1.Kind.PONG:\n this.processPong();\n break;\n case parser_1.Kind.INFO:\n this.processInfo(e.data);\n break;\n }\n }\n sendCommand(cmd, ...payloads) {\n const len = this.outbound.length();\n let buf;\n if (typeof cmd === \"string\") {\n buf = (0, encoders_1.encode)(cmd);\n }\n else {\n buf = cmd;\n }\n this.outbound.fill(buf, ...payloads);\n if (len === 0) {\n queueMicrotask(() => {\n this.flushPending();\n });\n }\n else if (this.outbound.size() >= this.pendingLimit) {\n // flush inline\n this.flushPending();\n }\n }\n publish(subject, payload = encoders_1.Empty, options) {\n let data;\n if (payload instanceof Uint8Array) {\n data = payload;\n }\n else if (typeof payload === \"string\") {\n data = encoders_1.TE.encode(payload);\n }\n else {\n throw new TypeError(\"payload types can be strings or Uint8Array\");\n }\n let len = data.length;\n options = options || {};\n options.reply = options.reply || \"\";\n let headers = encoders_1.Empty;\n let hlen = 0;\n if (options.headers) {\n if (this.info && !this.info.headers) {\n errors_1.InvalidArgumentError.format(\"headers\", \"are not available on this server\");\n }\n const hdrs = options.headers;\n headers = hdrs.encode();\n hlen = headers.length;\n len = data.length + hlen;\n }\n if (this.info && len > this.info.max_payload) {\n throw errors_1.InvalidArgumentError.format(\"payload\", \"max_payload size exceeded\");\n }\n this.outBytes += len;\n this.outMsgs++;\n let proto;\n if (options.headers) {\n if (options.reply) {\n proto = `HPUB ${subject} ${options.reply} ${hlen} ${len}\\r\\n`;\n }\n else {\n proto = `HPUB ${subject} ${hlen} ${len}\\r\\n`;\n }\n this.sendCommand(proto, headers, data, transport_1.CRLF);\n }\n else {\n if (options.reply) {\n proto = `PUB ${subject} ${options.reply} ${len}\\r\\n`;\n }\n else {\n proto = `PUB ${subject} ${len}\\r\\n`;\n }\n this.sendCommand(proto, data, transport_1.CRLF);\n }\n }\n request(r) {\n this.initMux();\n this.muxSubscriptions.add(r);\n return r;\n }\n subscribe(s) {\n this.subscriptions.add(s);\n this._subunsub(s);\n return s;\n }\n _sub(s) {\n if (s.queue) {\n this.sendCommand(`SUB ${s.subject} ${s.queue} ${s.sid}\\r\\n`);\n }\n else {\n this.sendCommand(`SUB ${s.subject} ${s.sid}\\r\\n`);\n }\n }\n _subunsub(s) {\n this._sub(s);\n if (s.max) {\n this.unsubscribe(s, s.max);\n }\n return s;\n }\n unsubscribe(s, max) {\n this.unsub(s, max);\n if (s.max === undefined || s.received >= s.max) {\n this.subscriptions.cancel(s);\n }\n }\n unsub(s, max) {\n if (!s || this.isClosed()) {\n return;\n }\n if (max) {\n this.sendCommand(`UNSUB ${s.sid} ${max}\\r\\n`);\n }\n else {\n this.sendCommand(`UNSUB ${s.sid}\\r\\n`);\n }\n s.max = max;\n }\n resub(s, subject) {\n if (!s || this.isClosed()) {\n return;\n }\n this.unsub(s);\n s.subject = subject;\n this.subscriptions.resub(s);\n // we don't auto-unsub here because we don't\n // really know \"processed\"\n this._sub(s);\n }\n flush(p) {\n if (!p) {\n p = (0, util_1.deferred)();\n }\n this.pongs.push(p);\n this.outbound.fill(PING_CMD);\n this.flushPending();\n return p;\n }\n sendSubscriptions() {\n const cmds = [];\n this.subscriptions.all().forEach((s) => {\n const sub = s;\n if (sub.queue) {\n cmds.push(`SUB ${sub.subject} ${sub.queue} ${sub.sid}${transport_1.CR_LF}`);\n }\n else {\n cmds.push(`SUB ${sub.subject} ${sub.sid}${transport_1.CR_LF}`);\n }\n });\n if (cmds.length) {\n this.transport.send((0, encoders_1.encode)(cmds.join(\"\")));\n }\n }\n async close(err) {\n if (this._closed) {\n return;\n }\n this.whyClosed = new Error(\"close trace\").stack || \"\";\n this.heartbeats.cancel();\n if (this.connectError) {\n this.connectError(err);\n this.connectError = undefined;\n }\n this.muxSubscriptions.close();\n this.subscriptions.close();\n const proms = [];\n for (let i = 0; i < this.listeners.length; i++) {\n const qi = this.listeners[i];\n if (qi) {\n qi.stop();\n proms.push(qi.iterClosed);\n }\n }\n if (proms.length) {\n await Promise.all(proms);\n }\n this._closed = true;\n await this.transport.close(err);\n this.raceTimer?.cancel();\n this.dialDelay?.cancel();\n this.closed.resolve(err);\n }\n isClosed() {\n return this._closed;\n }\n async drain() {\n const subs = this.subscriptions.all();\n const promises = [];\n subs.forEach((sub) => {\n promises.push(sub.drain());\n });\n try {\n await Promise.allSettled(promises);\n }\n catch {\n // nothing we can do here\n }\n finally {\n this.noMorePublishing = true;\n await this.flush();\n }\n return this.close();\n }\n flushPending() {\n if (!this.infoReceived || !this.connected) {\n return;\n }\n if (this.outbound.size()) {\n const d = this.outbound.drain();\n this.transport.send(d);\n }\n }\n initMux() {\n const mux = this.subscriptions.getMux();\n if (!mux) {\n const inbox = this.muxSubscriptions.init(this.options.inboxPrefix);\n // dot is already part of mux\n const sub = new SubscriptionImpl(this, `${inbox}*`);\n sub.callback = this.muxSubscriptions.dispatcher();\n this.subscriptions.setMux(sub);\n this.subscribe(sub);\n }\n }\n selectServer() {\n const server = this.servers.selectServer();\n if (server === undefined) {\n return undefined;\n }\n // Place in client context.\n this.server = server;\n return this.server;\n }\n getServer() {\n return this.server;\n }\n}\nexports.ProtocolHandler = ProtocolHandler;\n//# sourceMappingURL=protocol.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueuedIteratorImpl = void 0;\nconst util_1 = require(\"./util\");\nconst errors_1 = require(\"./errors\");\nclass QueuedIteratorImpl {\n inflight;\n processed;\n // this is updated by the protocol\n received;\n noIterator;\n iterClosed;\n done;\n signal;\n yields;\n filtered;\n pendingFiltered;\n ctx;\n _data; //data is for use by extenders in any way they like\n err;\n time;\n profile;\n yielding;\n didBreak;\n constructor() {\n this.inflight = 0;\n this.filtered = 0;\n this.pendingFiltered = 0;\n this.processed = 0;\n this.received = 0;\n this.noIterator = false;\n this.done = false;\n this.signal = (0, util_1.deferred)();\n this.yields = [];\n this.iterClosed = (0, util_1.deferred)();\n this.time = 0;\n this.yielding = false;\n this.didBreak = false;\n this.profile = false;\n }\n [Symbol.asyncIterator]() {\n return this.iterate();\n }\n push(v) {\n if (this.done) {\n return;\n }\n // if they `break` from a `for await`, any signaling that is pushed via\n // a function is not handled this can prevent closed promises from\n // resolving downstream.\n if (this.didBreak) {\n if (typeof v === \"function\") {\n const cb = v;\n try {\n cb();\n }\n catch (_) {\n // ignored\n }\n }\n return;\n }\n if (typeof v === \"function\") {\n this.pendingFiltered++;\n }\n this.yields.push(v);\n this.signal.resolve();\n }\n async *iterate() {\n if (this.noIterator) {\n throw new errors_1.InvalidOperationError(\"iterator cannot be used when a callback is registered\");\n }\n if (this.yielding) {\n throw new errors_1.InvalidOperationError(\"iterator is already yielding\");\n }\n this.yielding = true;\n try {\n while (true) {\n if (this.yields.length === 0) {\n await this.signal;\n }\n if (this.err) {\n throw this.err;\n }\n const yields = this.yields;\n this.inflight = yields.length;\n this.yields = [];\n for (let i = 0; i < yields.length; i++) {\n if (typeof yields[i] === \"function\") {\n this.pendingFiltered--;\n const fn = yields[i];\n try {\n fn();\n }\n catch (err) {\n // failed on the invocation - fail the iterator\n // so they know to fix the callback\n throw err;\n }\n // fn could have also set an error\n if (this.err) {\n throw this.err;\n }\n continue;\n }\n this.processed++;\n this.inflight--;\n const start = this.profile ? Date.now() : 0;\n yield yields[i];\n this.time = this.profile ? Date.now() - start : 0;\n }\n // yielding could have paused and microtask\n // could have added messages. Prevent allocations\n // if possible\n if (this.done) {\n break;\n }\n else if (this.yields.length === 0) {\n yields.length = 0;\n this.yields = yields;\n this.signal = (0, util_1.deferred)();\n }\n }\n }\n finally {\n // the iterator used break/return\n this.didBreak = true;\n this.stop();\n }\n }\n stop(err) {\n if (this.done) {\n return;\n }\n this.err = err;\n this.done = true;\n this.signal.resolve();\n this.iterClosed.resolve(err);\n }\n getProcessed() {\n return this.noIterator ? this.received : this.processed;\n }\n getPending() {\n return this.yields.length + this.inflight - this.pendingFiltered;\n }\n getReceived() {\n return this.received - this.filtered;\n }\n}\nexports.QueuedIteratorImpl = QueuedIteratorImpl;\n//# sourceMappingURL=queued_iterator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequestOne = exports.RequestMany = exports.BaseRequest = void 0;\nconst util_1 = require(\"./util\");\nconst nuid_1 = require(\"./nuid\");\nconst errors_1 = require(\"./errors\");\nclass BaseRequest {\n token;\n received;\n ctx;\n requestSubject;\n mux;\n constructor(mux, requestSubject, asyncTraces = true) {\n this.mux = mux;\n this.requestSubject = requestSubject;\n this.received = 0;\n this.token = nuid_1.nuid.next();\n if (asyncTraces) {\n this.ctx = new errors_1.RequestError();\n }\n }\n}\nexports.BaseRequest = BaseRequest;\n/**\n * Request expects multiple message response\n * the request ends when the timer expires,\n * an error arrives or an expected count of messages\n * arrives, end is signaled by a null message\n */\nclass RequestMany extends BaseRequest {\n callback;\n done;\n timer;\n max;\n opts;\n constructor(mux, requestSubject, opts = { maxWait: 1000 }) {\n super(mux, requestSubject);\n this.opts = opts;\n if (typeof this.opts.callback !== \"function\") {\n throw new TypeError(\"callback must be a function\");\n }\n this.callback = this.opts.callback;\n this.max = typeof opts.maxMessages === \"number\" && opts.maxMessages > 0\n ? opts.maxMessages\n : -1;\n this.done = (0, util_1.deferred)();\n this.done.then(() => {\n this.callback(null, null);\n });\n // @ts-ignore: node is not a number\n this.timer = setTimeout(() => {\n this.cancel();\n }, opts.maxWait);\n }\n cancel(err) {\n if (err) {\n this.callback(err, null);\n }\n clearTimeout(this.timer);\n this.mux.cancel(this);\n this.done.resolve();\n }\n resolver(err, msg) {\n if (err) {\n if (this.ctx) {\n err.stack += `\\n\\n${this.ctx.stack}`;\n }\n this.cancel(err);\n }\n else {\n this.callback(null, msg);\n if (this.opts.strategy === \"count\") {\n this.max--;\n if (this.max === 0) {\n this.cancel();\n }\n }\n if (this.opts.strategy === \"stall\") {\n clearTimeout(this.timer);\n // @ts-ignore: node is not a number\n this.timer = setTimeout(() => {\n this.cancel();\n }, this.opts.stall || 300);\n }\n if (this.opts.strategy === \"sentinel\") {\n if (msg && msg.data.length === 0) {\n this.cancel();\n }\n }\n }\n }\n}\nexports.RequestMany = RequestMany;\nclass RequestOne extends BaseRequest {\n deferred;\n timer;\n constructor(mux, requestSubject, opts = { timeout: 1000 }, asyncTraces = true) {\n super(mux, requestSubject, asyncTraces);\n // extend(this, opts);\n this.deferred = (0, util_1.deferred)();\n this.timer = (0, util_1.timeout)(opts.timeout, asyncTraces);\n }\n resolver(err, msg) {\n if (this.timer) {\n this.timer.cancel();\n }\n if (err) {\n // we have proper stack on timeout\n if (!(err instanceof errors_1.TimeoutError)) {\n if (this.ctx) {\n this.ctx.message = err.message;\n this.ctx.cause = err;\n err = this.ctx;\n }\n else {\n err = new errors_1.errors.RequestError(err.message, { cause: err });\n }\n }\n this.deferred.reject(err);\n }\n else {\n this.deferred.resolve(msg);\n }\n this.cancel();\n }\n cancel(err) {\n if (this.timer) {\n this.timer.cancel();\n }\n this.mux.cancel(this);\n this.deferred.reject(err ? err : new errors_1.RequestError(\"cancelled\"));\n }\n}\nexports.RequestOne = RequestOne;\n//# sourceMappingURL=request.js.map","\"use strict\";\n/*\n * Copyright 2022-2023 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Features = exports.Feature = void 0;\nexports.parseSemVer = parseSemVer;\nexports.compare = compare;\nfunction parseSemVer(s = \"\") {\n const m = s.match(/(\\d+).(\\d+).(\\d+)/);\n if (m) {\n return {\n major: parseInt(m[1]),\n minor: parseInt(m[2]),\n micro: parseInt(m[3]),\n };\n }\n throw new Error(`'${s}' is not a semver value`);\n}\nfunction compare(a, b) {\n if (a.major < b.major)\n return -1;\n if (a.major > b.major)\n return 1;\n if (a.minor < b.minor)\n return -1;\n if (a.minor > b.minor)\n return 1;\n if (a.micro < b.micro)\n return -1;\n if (a.micro > b.micro)\n return 1;\n return 0;\n}\nexports.Feature = {\n JS_KV: \"js_kv\",\n JS_OBJECTSTORE: \"js_objectstore\",\n JS_PULL_MAX_BYTES: \"js_pull_max_bytes\",\n JS_NEW_CONSUMER_CREATE_API: \"js_new_consumer_create\",\n JS_ALLOW_DIRECT: \"js_allow_direct\",\n JS_MULTIPLE_CONSUMER_FILTER: \"js_multiple_consumer_filter\",\n JS_SIMPLIFICATION: \"js_simplification\",\n JS_STREAM_CONSUMER_METADATA: \"js_stream_consumer_metadata\",\n JS_CONSUMER_FILTER_SUBJECTS: \"js_consumer_filter_subjects\",\n JS_STREAM_FIRST_SEQ: \"js_stream_first_seq\",\n JS_STREAM_SUBJECT_TRANSFORM: \"js_stream_subject_transform\",\n JS_STREAM_SOURCE_SUBJECT_TRANSFORM: \"js_stream_source_subject_transform\",\n JS_STREAM_COMPRESSION: \"js_stream_compression\",\n JS_DEFAULT_CONSUMER_LIMITS: \"js_default_consumer_limits\",\n JS_BATCH_DIRECT_GET: \"js_batch_direct_get\",\n JS_PRIORITY_GROUPS: \"js_priority_groups\",\n};\nclass Features {\n server;\n features;\n disabled;\n constructor(v) {\n this.features = new Map();\n this.disabled = [];\n this.update(v);\n }\n /**\n * Removes all disabled entries\n */\n resetDisabled() {\n this.disabled.length = 0;\n this.update(this.server);\n }\n /**\n * Disables a particular feature.\n * @param f\n */\n disable(f) {\n this.disabled.push(f);\n this.update(this.server);\n }\n isDisabled(f) {\n return this.disabled.indexOf(f) !== -1;\n }\n update(v) {\n if (typeof v === \"string\") {\n v = parseSemVer(v);\n }\n this.server = v;\n this.set(exports.Feature.JS_KV, \"2.6.2\");\n this.set(exports.Feature.JS_OBJECTSTORE, \"2.6.3\");\n this.set(exports.Feature.JS_PULL_MAX_BYTES, \"2.8.3\");\n this.set(exports.Feature.JS_NEW_CONSUMER_CREATE_API, \"2.9.0\");\n this.set(exports.Feature.JS_ALLOW_DIRECT, \"2.9.0\");\n this.set(exports.Feature.JS_MULTIPLE_CONSUMER_FILTER, \"2.10.0\");\n this.set(exports.Feature.JS_SIMPLIFICATION, \"2.9.4\");\n this.set(exports.Feature.JS_STREAM_CONSUMER_METADATA, \"2.10.0\");\n this.set(exports.Feature.JS_CONSUMER_FILTER_SUBJECTS, \"2.10.0\");\n this.set(exports.Feature.JS_STREAM_FIRST_SEQ, \"2.10.0\");\n this.set(exports.Feature.JS_STREAM_SUBJECT_TRANSFORM, \"2.10.0\");\n this.set(exports.Feature.JS_STREAM_SOURCE_SUBJECT_TRANSFORM, \"2.10.0\");\n this.set(exports.Feature.JS_STREAM_COMPRESSION, \"2.10.0\");\n this.set(exports.Feature.JS_DEFAULT_CONSUMER_LIMITS, \"2.10.0\");\n this.set(exports.Feature.JS_BATCH_DIRECT_GET, \"2.11.0\");\n this.set(exports.Feature.JS_PRIORITY_GROUPS, \"2.11.0\");\n this.disabled.forEach((f) => {\n this.features.delete(f);\n });\n }\n /**\n * Register a feature that requires a particular server version.\n * @param f\n * @param requires\n */\n set(f, requires) {\n this.features.set(f, {\n min: requires,\n ok: compare(this.server, parseSemVer(requires)) >= 0,\n });\n }\n /**\n * Returns whether the feature is available and the min server\n * version that supports it.\n * @param f\n */\n get(f) {\n return this.features.get(f) || { min: \"unknown\", ok: false };\n }\n /**\n * Returns true if the feature is supported\n * @param f\n */\n supports(f) {\n return this.get(f)?.ok || false;\n }\n /**\n * Returns true if the server is at least the specified version\n * @param v\n */\n require(v) {\n if (typeof v === \"string\") {\n v = parseSemVer(v);\n }\n return compare(this.server, v) >= 0;\n }\n}\nexports.Features = Features;\n//# sourceMappingURL=semver.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Servers = exports.ServerImpl = void 0;\nexports.isIPV4OrHostname = isIPV4OrHostname;\nexports.hostPort = hostPort;\n/*\n * Copyright 2018-2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst transport_1 = require(\"./transport\");\nconst util_1 = require(\"./util\");\nconst ipparser_1 = require(\"./ipparser\");\nconst core_1 = require(\"./core\");\nfunction isIPV4OrHostname(hp) {\n // in the wild seeing IPv4s as IPv6s\n // ::ffff:35.234.43.228 which incorrectly get mapped to IPv4 unless\n // we add this test first\n if (hp.indexOf(\"[\") !== -1 || hp.indexOf(\"::\") !== -1) {\n return false;\n }\n if (hp.indexOf(\".\") !== -1) {\n return true;\n }\n // if we have a plain hostname or host:port\n if (hp.split(\":\").length <= 2) {\n return true;\n }\n return false;\n}\nfunction isIPV6(hp) {\n return !isIPV4OrHostname(hp);\n}\nfunction filterIpv6MappedToIpv4(hp) {\n const prefix = \"::FFFF:\";\n const idx = hp.toUpperCase().indexOf(prefix);\n if (idx !== -1 && hp.indexOf(\".\") !== -1) {\n // we have something like: ::FFFF:127.0.0.1 or [::FFFF:127.0.0.1]:4222\n let ip = hp.substring(idx + prefix.length);\n ip = ip.replace(\"[\", \"\");\n return ip.replace(\"]\", \"\");\n }\n return hp;\n}\nfunction hostPort(u) {\n u = u.trim();\n // remove any protocol that may have been provided\n if (u.match(/^(.*:\\/\\/)(.*)/m)) {\n u = u.replace(/^(.*:\\/\\/)(.*)/gm, \"$2\");\n }\n // in web environments, URL may not be a living standard\n // that means that protocols other than HTTP/S are not\n // parsable correctly.\n // the third complication is that we may have been given\n // an IPv6 or worse IPv6 mapping an Ipv4\n u = filterIpv6MappedToIpv4(u);\n // we only wrap cases where they gave us a plain ipv6\n // and we are not already bracketed\n if (isIPV6(u) && u.indexOf(\"[\") === -1) {\n u = `[${u}]`;\n }\n // if we have ipv6, we expect port after ']:' otherwise after ':'\n const op = isIPV6(u) ? u.match(/(]:)(\\d+)/) : u.match(/(:)(\\d+)/);\n const port = op && op.length === 3 && op[1] && op[2]\n ? parseInt(op[2])\n : core_1.DEFAULT_PORT;\n // the next complication is that new URL() may\n // eat ports which match the protocol - so for example\n // port 80 may be eliminated - so we flip the protocol\n // so that it always yields a value\n const protocol = port === 80 ? \"https\" : \"http\";\n const url = new URL(`${protocol}://${u}`);\n url.port = `${port}`;\n let hostname = url.hostname;\n // if we are bracketed, we need to rip it out\n if (hostname.charAt(0) === \"[\") {\n hostname = hostname.substring(1, hostname.length - 1);\n }\n const listen = url.host;\n return { listen, hostname, port };\n}\n/**\n * @hidden\n */\nclass ServerImpl {\n src;\n listen;\n hostname;\n port;\n didConnect;\n reconnects;\n lastConnect;\n gossiped;\n tlsName;\n resolves;\n constructor(u, gossiped = false) {\n this.src = u;\n this.tlsName = \"\";\n const v = hostPort(u);\n this.listen = v.listen;\n this.hostname = v.hostname;\n this.port = v.port;\n this.didConnect = false;\n this.reconnects = 0;\n this.lastConnect = 0;\n this.gossiped = gossiped;\n }\n toString() {\n return this.listen;\n }\n async resolve(opts) {\n if (!opts.fn || opts.resolve === false) {\n // we cannot resolve - transport doesn't support it\n // or user opted out\n // don't add - to resolves or we get a circ reference\n return [this];\n }\n const buf = [];\n if ((0, ipparser_1.isIP)(this.hostname)) {\n // don't add - to resolves or we get a circ reference\n return [this];\n }\n else {\n // resolve the hostname to ips\n const ips = await opts.fn(this.hostname);\n if (opts.debug) {\n console.log(`resolve ${this.hostname} = ${ips.join(\",\")}`);\n }\n for (const ip of ips) {\n // letting URL handle the details of representing IPV6 ip with a port, etc\n // careful to make sure the protocol doesn't line with standard ports or they\n // get swallowed\n const proto = this.port === 80 ? \"https\" : \"http\";\n // ipv6 won't be bracketed here, because it came from resolve\n const url = new URL(`${proto}://${isIPV6(ip) ? \"[\" + ip + \"]\" : ip}`);\n url.port = `${this.port}`;\n const ss = new ServerImpl(url.host, false);\n ss.tlsName = this.hostname;\n buf.push(ss);\n }\n }\n if (opts.randomize) {\n (0, util_1.shuffle)(buf);\n }\n this.resolves = buf;\n return buf;\n }\n}\nexports.ServerImpl = ServerImpl;\n/**\n * @hidden\n */\nclass Servers {\n firstSelect;\n servers;\n currentServer;\n tlsName;\n randomize;\n constructor(listens = [], opts = {}) {\n this.firstSelect = true;\n this.servers = [];\n this.tlsName = \"\";\n this.randomize = opts.randomize || false;\n const urlParseFn = (0, transport_1.getUrlParseFn)();\n if (listens) {\n listens.forEach((hp) => {\n hp = urlParseFn ? urlParseFn(hp) : hp;\n this.servers.push(new ServerImpl(hp));\n });\n if (this.randomize) {\n this.servers = (0, util_1.shuffle)(this.servers);\n }\n }\n if (this.servers.length === 0) {\n this.addServer(`${core_1.DEFAULT_HOST}:${(0, transport_1.defaultPort)()}`, false);\n }\n this.currentServer = this.servers[0];\n }\n clear() {\n this.servers.length = 0;\n }\n updateTLSName() {\n const cs = this.getCurrentServer();\n if (!(0, ipparser_1.isIP)(cs.hostname)) {\n this.tlsName = cs.hostname;\n this.servers.forEach((s) => {\n if (s.gossiped) {\n s.tlsName = this.tlsName;\n }\n });\n }\n }\n getCurrentServer() {\n return this.currentServer;\n }\n addServer(u, implicit = false) {\n const urlParseFn = (0, transport_1.getUrlParseFn)();\n u = urlParseFn ? urlParseFn(u) : u;\n const s = new ServerImpl(u, implicit);\n if ((0, ipparser_1.isIP)(s.hostname)) {\n s.tlsName = this.tlsName;\n }\n this.servers.push(s);\n }\n selectServer() {\n // allow using select without breaking the order of the servers\n if (this.firstSelect) {\n this.firstSelect = false;\n return this.currentServer;\n }\n const t = this.servers.shift();\n if (t) {\n this.servers.push(t);\n this.currentServer = t;\n }\n return t;\n }\n removeCurrentServer() {\n this.removeServer(this.currentServer);\n }\n removeServer(server) {\n if (server) {\n const index = this.servers.indexOf(server);\n this.servers.splice(index, 1);\n }\n }\n length() {\n return this.servers.length;\n }\n next() {\n return this.servers.length ? this.servers[0] : undefined;\n }\n getServers() {\n return this.servers;\n }\n update(info, encrypted) {\n const added = [];\n let deleted = [];\n const urlParseFn = (0, transport_1.getUrlParseFn)();\n const discovered = new Map();\n if (info.connect_urls && info.connect_urls.length > 0) {\n info.connect_urls.forEach((hp) => {\n hp = urlParseFn ? urlParseFn(hp, encrypted) : hp;\n const s = new ServerImpl(hp, true);\n discovered.set(hp, s);\n });\n }\n // remove gossiped servers that are no longer reported\n const toDelete = [];\n this.servers.forEach((s, index) => {\n const u = s.listen;\n if (s.gossiped && this.currentServer.listen !== u &&\n discovered.get(u) === undefined) {\n // server was removed\n toDelete.push(index);\n }\n // remove this entry from reported\n discovered.delete(u);\n });\n // perform the deletion\n toDelete.reverse();\n toDelete.forEach((index) => {\n const removed = this.servers.splice(index, 1);\n deleted = deleted.concat(removed[0].listen);\n });\n // remaining servers are new\n discovered.forEach((v, k) => {\n this.servers.push(v);\n added.push(k);\n });\n return { added, deleted };\n }\n}\nexports.Servers = Servers;\n//# sourceMappingURL=servers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LF = exports.CR = exports.CRLF = exports.CR_LF_LEN = exports.CR_LF = void 0;\nexports.setTransportFactory = setTransportFactory;\nexports.defaultPort = defaultPort;\nexports.getUrlParseFn = getUrlParseFn;\nexports.newTransport = newTransport;\nexports.getResolveFn = getResolveFn;\nexports.protoLen = protoLen;\nexports.extractProtocolMessage = extractProtocolMessage;\n/*\n * Copyright 2020-2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst encoders_1 = require(\"./encoders\");\nconst core_1 = require(\"./core\");\nconst databuffer_1 = require(\"./databuffer\");\nlet transportConfig;\nfunction setTransportFactory(config) {\n transportConfig = config;\n}\nfunction defaultPort() {\n return transportConfig !== undefined &&\n transportConfig.defaultPort !== undefined\n ? transportConfig.defaultPort\n : core_1.DEFAULT_PORT;\n}\nfunction getUrlParseFn() {\n return transportConfig !== undefined && transportConfig.urlParseFn\n ? transportConfig.urlParseFn\n : undefined;\n}\nfunction newTransport() {\n if (!transportConfig || typeof transportConfig.factory !== \"function\") {\n throw new Error(\"transport fn is not set\");\n }\n return transportConfig.factory();\n}\nfunction getResolveFn() {\n return transportConfig !== undefined && transportConfig.dnsResolveFn\n ? transportConfig.dnsResolveFn\n : undefined;\n}\nexports.CR_LF = \"\\r\\n\";\nexports.CR_LF_LEN = exports.CR_LF.length;\nexports.CRLF = databuffer_1.DataBuffer.fromAscii(exports.CR_LF);\nexports.CR = new Uint8Array(exports.CRLF)[0]; // 13\nexports.LF = new Uint8Array(exports.CRLF)[1]; // 10\nfunction protoLen(ba) {\n for (let i = 0; i < ba.length; i++) {\n const n = i + 1;\n if (ba.byteLength > n && ba[i] === exports.CR && ba[n] === exports.LF) {\n return n + 1;\n }\n }\n return 0;\n}\nfunction extractProtocolMessage(a) {\n // protocol messages are ascii, so Uint8Array\n const len = protoLen(a);\n if (len > 0) {\n const ba = new Uint8Array(a);\n const out = ba.slice(0, len);\n return encoders_1.TD.decode(out);\n }\n return \"\";\n}\n//# sourceMappingURL=transport.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Empty = void 0;\nvar encoders_1 = require(\"./encoders\");\nObject.defineProperty(exports, \"Empty\", { enumerable: true, get: function () { return encoders_1.Empty; } });\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SimpleMutex = exports.Perf = void 0;\nexports.extend = extend;\nexports.render = render;\nexports.timeout = timeout;\nexports.delay = delay;\nexports.deadline = deadline;\nexports.deferred = deferred;\nexports.debugDeferred = debugDeferred;\nexports.shuffle = shuffle;\nexports.collect = collect;\nexports.jitter = jitter;\nexports.backoff = backoff;\nexports.nanos = nanos;\nexports.millis = millis;\n/*\n * Copyright 2018-2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// deno-lint-ignore-file no-explicit-any\nconst encoders_1 = require(\"./encoders\");\nconst errors_1 = require(\"./errors\");\nfunction extend(a, ...b) {\n for (let i = 0; i < b.length; i++) {\n const o = b[i];\n Object.keys(o).forEach(function (k) {\n a[k] = o[k];\n });\n }\n return a;\n}\nfunction render(frame) {\n const cr = \"␍\";\n const lf = \"␊\";\n return encoders_1.TD.decode(frame)\n .replace(/\\n/g, lf)\n .replace(/\\r/g, cr);\n}\nfunction timeout(ms, asyncTraces = true) {\n // by generating the stack here to help identify what timed out\n const err = asyncTraces ? new errors_1.TimeoutError() : null;\n let methods;\n let timer;\n const p = new Promise((_resolve, reject) => {\n const cancel = () => {\n if (timer) {\n clearTimeout(timer);\n }\n };\n methods = { cancel };\n // @ts-ignore: node is not a number\n timer = setTimeout(() => {\n if (err === null) {\n reject(new errors_1.TimeoutError());\n }\n else {\n reject(err);\n }\n }, ms);\n });\n // noinspection JSUnusedAssignment\n return Object.assign(p, methods);\n}\nfunction delay(ms = 0) {\n let methods;\n const p = new Promise((resolve) => {\n const timer = setTimeout(() => {\n resolve();\n }, ms);\n const cancel = () => {\n if (timer) {\n clearTimeout(timer);\n resolve();\n }\n };\n methods = { cancel };\n });\n return Object.assign(p, methods);\n}\nasync function deadline(p, millis = 1000) {\n const d = deferred();\n const timer = setTimeout(() => {\n d.reject(new errors_1.TimeoutError());\n }, millis);\n try {\n return await Promise.race([p, d]);\n }\n finally {\n clearTimeout(timer);\n }\n}\n/**\n * Returns a Promise that has a resolve/reject methods that can\n * be used to resolve and defer the Deferred.\n */\nfunction deferred() {\n let methods = {};\n const p = new Promise((resolve, reject) => {\n methods = { resolve, reject };\n });\n return Object.assign(p, methods);\n}\nfunction debugDeferred() {\n let methods = {};\n const p = new Promise((resolve, reject) => {\n methods = {\n resolve: (v) => {\n console.trace(\"resolve\", v);\n resolve(v);\n },\n reject: (err) => {\n console.trace(\"reject\");\n reject(err);\n },\n };\n });\n return Object.assign(p, methods);\n}\nfunction shuffle(a) {\n for (let i = a.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [a[i], a[j]] = [a[j], a[i]];\n }\n return a;\n}\nasync function collect(iter) {\n const buf = [];\n for await (const v of iter) {\n buf.push(v);\n }\n return buf;\n}\nclass Perf {\n timers;\n measures;\n constructor() {\n this.timers = new Map();\n this.measures = new Map();\n }\n mark(key) {\n this.timers.set(key, performance.now());\n }\n measure(key, startKey, endKey) {\n const s = this.timers.get(startKey);\n if (s === undefined) {\n throw new Error(`${startKey} is not defined`);\n }\n const e = this.timers.get(endKey);\n if (e === undefined) {\n throw new Error(`${endKey} is not defined`);\n }\n this.measures.set(key, e - s);\n }\n getEntries() {\n const values = [];\n this.measures.forEach((v, k) => {\n values.push({ name: k, duration: v });\n });\n return values;\n }\n}\nexports.Perf = Perf;\nclass SimpleMutex {\n max;\n current;\n waiting;\n /**\n * @param max number of concurrent operations\n */\n constructor(max = 1) {\n this.max = max;\n this.current = 0;\n this.waiting = [];\n }\n /**\n * Returns a promise that resolves when the mutex is acquired\n */\n lock() {\n // increment the count\n this.current++;\n // if we have runners, resolve it\n if (this.current <= this.max) {\n return Promise.resolve();\n }\n // otherwise defer it\n const d = deferred();\n this.waiting.push(d);\n return d;\n }\n /**\n * Release an acquired mutex - must be called\n */\n unlock() {\n // decrement the count\n this.current--;\n // if we have deferred, resolve one\n const d = this.waiting.pop();\n d?.resolve();\n }\n}\nexports.SimpleMutex = SimpleMutex;\n/**\n * Returns a new number between .5*n and 1.5*n.\n * If the n is 0, returns 0.\n * @param n\n */\nfunction jitter(n) {\n if (n === 0) {\n return 0;\n }\n return Math.floor(n / 2 + Math.random() * n);\n}\n/**\n * Returns a Backoff with the specified interval policy set.\n * @param policy\n */\nfunction backoff(policy = [0, 250, 250, 500, 500, 3000, 5000]) {\n if (!Array.isArray(policy)) {\n policy = [0, 250, 250, 500, 500, 3000, 5000];\n }\n const max = policy.length - 1;\n return {\n backoff(attempt) {\n return jitter(attempt > max ? policy[max] : policy[attempt]);\n },\n };\n}\n/**\n * Converts the specified millis into Nanos\n * @param millis\n */\nfunction nanos(millis) {\n return millis * 1000000;\n}\n/**\n * Convert the specified Nanos into millis\n * @param ns\n */\nfunction millis(ns) {\n return Math.floor(ns / 1000000);\n}\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.version = void 0;\n// This file is generated - do not edit\nexports.version = \"3.0.0\";\n//# sourceMappingURL=version.js.map","\"use strict\";\n/*\n * Copyright 2020-2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WsTransport = void 0;\nexports.wsUrlParseFn = wsUrlParseFn;\nexports.wsconnect = wsconnect;\nconst util_1 = require(\"./util\");\nconst transport_1 = require(\"./transport\");\nconst options_1 = require(\"./options\");\nconst databuffer_1 = require(\"./databuffer\");\nconst protocol_1 = require(\"./protocol\");\nconst nats_1 = require(\"./nats\");\nconst version_1 = require(\"./version\");\nconst errors_1 = require(\"./errors\");\nconst VERSION = version_1.version;\nconst LANG = \"nats.ws\";\nclass WsTransport {\n version;\n lang;\n closeError;\n connected;\n done;\n // @ts-ignore: expecting global WebSocket\n socket;\n options;\n socketClosed;\n encrypted;\n peeked;\n yields;\n signal;\n closedNotification;\n constructor() {\n this.version = VERSION;\n this.lang = LANG;\n this.connected = false;\n this.done = false;\n this.socketClosed = false;\n this.encrypted = false;\n this.peeked = false;\n this.yields = [];\n this.signal = (0, util_1.deferred)();\n this.closedNotification = (0, util_1.deferred)();\n }\n async connect(server, options) {\n const connected = false;\n const ok = (0, util_1.deferred)();\n this.options = options;\n const u = server.src;\n if (options.wsFactory) {\n const { socket, encrypted } = await options.wsFactory(server.src, options);\n this.socket = socket;\n this.encrypted = encrypted;\n }\n else {\n this.encrypted = u.indexOf(\"wss://\") === 0;\n this.socket = new WebSocket(u);\n }\n this.socket.binaryType = \"arraybuffer\";\n this.socket.onopen = () => {\n if (this.done) {\n this._closed(new Error(\"aborted\"));\n }\n // we don't do anything here...\n };\n this.socket.onmessage = (me) => {\n if (this.done) {\n return;\n }\n this.yields.push(new Uint8Array(me.data));\n if (this.peeked) {\n this.signal.resolve();\n return;\n }\n const t = databuffer_1.DataBuffer.concat(...this.yields);\n const pm = (0, transport_1.extractProtocolMessage)(t);\n if (pm !== \"\") {\n const m = protocol_1.INFO.exec(pm);\n if (!m) {\n if (options.debug) {\n console.error(\"!!!\", (0, util_1.render)(t));\n }\n ok.reject(new Error(\"unexpected response from server\"));\n return;\n }\n try {\n const info = JSON.parse(m[1]);\n (0, options_1.checkOptions)(info, this.options);\n this.peeked = true;\n this.connected = true;\n this.signal.resolve();\n ok.resolve();\n }\n catch (err) {\n ok.reject(err);\n return;\n }\n }\n };\n // @ts-ignore: CloseEvent is provided in browsers\n this.socket.onclose = (evt) => {\n let reason;\n if (!evt.wasClean && evt.reason !== \"\") {\n reason = new Error(evt.reason);\n }\n this._closed(reason);\n this._cleanup();\n };\n // @ts-ignore: signature can be any\n this.socket.onerror = (e) => {\n if (this.done) {\n return;\n }\n const evt = e;\n const err = new errors_1.errors.ConnectionError(evt.message);\n if (!connected) {\n ok.reject(err);\n }\n else {\n this._closed(err);\n }\n this._cleanup();\n };\n return ok;\n }\n _cleanup() {\n if (this.socketClosed === false) {\n // node seems to not emit closed if there's an error\n // all other runtimes do.\n this.socketClosed = true;\n this.socket.onopen = null;\n this.socket.onmessage = null;\n this.socket.onerror = null;\n this.socket.onclose = null;\n this.closedNotification.resolve(this.closeError);\n }\n }\n disconnect() {\n this._closed(undefined, true);\n }\n async _closed(err, _internal = true) {\n if (this.done) {\n try {\n this.socket.close();\n }\n catch (_) {\n // nothing\n }\n return;\n }\n this.closeError = err;\n if (!err) {\n while (!this.socketClosed && this.socket.bufferedAmount > 0) {\n await (0, util_1.delay)(100);\n }\n }\n this.done = true;\n try {\n this.socket.close();\n }\n catch (_) {\n // ignore this\n }\n return this.closedNotification;\n }\n get isClosed() {\n return this.done;\n }\n [Symbol.asyncIterator]() {\n return this.iterate();\n }\n async *iterate() {\n while (true) {\n if (this.done) {\n return;\n }\n if (this.yields.length === 0) {\n await this.signal;\n }\n const yields = this.yields;\n this.yields = [];\n for (let i = 0; i < yields.length; i++) {\n if (this.options.debug) {\n console.info(`> ${(0, util_1.render)(yields[i])}`);\n }\n yield yields[i];\n }\n // yielding could have paused and microtask\n // could have added messages. Prevent allocations\n // if possible\n if (this.done) {\n break;\n }\n else if (this.yields.length === 0) {\n yields.length = 0;\n this.yields = yields;\n this.signal = (0, util_1.deferred)();\n }\n }\n }\n isEncrypted() {\n return this.connected && this.encrypted;\n }\n send(frame) {\n if (this.done) {\n return;\n }\n try {\n this.socket.send(frame.buffer);\n if (this.options.debug) {\n console.info(`< ${(0, util_1.render)(frame)}`);\n }\n return;\n }\n catch (err) {\n // we ignore write errors because client will\n // fail on a read or when the heartbeat timer\n // detects a stale connection\n if (this.options.debug) {\n console.error(`!!! ${(0, util_1.render)(frame)}: ${err}`);\n }\n }\n }\n close(err) {\n return this._closed(err, false);\n }\n closed() {\n return this.closedNotification;\n }\n // this is to allow a force discard on a connection\n // if the connection fails during the handshake protocol.\n // Firefox for example, will keep connections going,\n // so eventually if it succeeds, the client will have\n // an additional transport running. With this\n discard() {\n this.socket?.close();\n }\n}\nexports.WsTransport = WsTransport;\nfunction wsUrlParseFn(u, encrypted) {\n const ut = /^(.*:\\/\\/)(.*)/;\n if (!ut.test(u)) {\n // if we have no hint to encrypted and no protocol, assume encrypted\n // else we fix the url from the update to match\n if (typeof encrypted === \"boolean\") {\n u = `${encrypted === true ? \"https\" : \"http\"}://${u}`;\n }\n else {\n u = `https://${u}`;\n }\n }\n let url = new URL(u);\n const srcProto = url.protocol.toLowerCase();\n if (srcProto === \"ws:\") {\n encrypted = false;\n }\n if (srcProto === \"wss:\") {\n encrypted = true;\n }\n if (srcProto !== \"https:\" && srcProto !== \"http\") {\n u = u.replace(/^(.*:\\/\\/)(.*)/gm, \"$2\");\n url = new URL(`http://${u}`);\n }\n let protocol;\n let port;\n const host = url.hostname;\n const path = url.pathname;\n const search = url.search || \"\";\n switch (srcProto) {\n case \"http:\":\n case \"ws:\":\n case \"nats:\":\n port = url.port || \"80\";\n protocol = \"ws:\";\n break;\n case \"https:\":\n case \"wss:\":\n case \"tls:\":\n port = url.port || \"443\";\n protocol = \"wss:\";\n break;\n default:\n port = url.port || encrypted === true ? \"443\" : \"80\";\n protocol = encrypted === true ? \"wss:\" : \"ws:\";\n break;\n }\n return `${protocol}//${host}:${port}${path}${search}`;\n}\nfunction wsconnect(opts = {}) {\n (0, transport_1.setTransportFactory)({\n defaultPort: 443,\n urlParseFn: wsUrlParseFn,\n factory: () => {\n if (opts.tls) {\n throw errors_1.InvalidArgumentError.format(\"tls\", \"is not configurable on w3c websocket connections\");\n }\n return new WsTransport();\n },\n });\n return nats_1.NatsConnectionImpl.connect(opts);\n}\n//# sourceMappingURL=ws_transport.js.map","\"use strict\";\n/*\n * Copyright 2018-2021 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.base32 = void 0;\n// Fork of https://github.com/LinusU/base32-encode\n// and https://github.com/LinusU/base32-decode to support returning\n// buffers without padding.\n/**\n * @ignore\n */\nconst b32Alphabet = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\";\n/**\n * @ignore\n */\nclass base32 {\n static encode(src) {\n let bits = 0;\n let value = 0;\n const a = new Uint8Array(src);\n const buf = new Uint8Array(src.byteLength * 2);\n let j = 0;\n for (let i = 0; i < a.byteLength; i++) {\n value = (value << 8) | a[i];\n bits += 8;\n while (bits >= 5) {\n const index = (value >>> (bits - 5)) & 31;\n buf[j++] = b32Alphabet.charAt(index).charCodeAt(0);\n bits -= 5;\n }\n }\n if (bits > 0) {\n const index = (value << (5 - bits)) & 31;\n buf[j++] = b32Alphabet.charAt(index).charCodeAt(0);\n }\n return buf.slice(0, j);\n }\n static decode(src) {\n let bits = 0;\n let byte = 0;\n let j = 0;\n const a = new Uint8Array(src);\n const out = new Uint8Array(a.byteLength * 5 / 8 | 0);\n for (let i = 0; i < a.byteLength; i++) {\n const v = String.fromCharCode(a[i]);\n const vv = b32Alphabet.indexOf(v);\n if (vv === -1) {\n throw new Error(\"Illegal Base32 character: \" + a[i]);\n }\n byte = (byte << 5) | vv;\n bits += 5;\n if (bits >= 8) {\n out[j++] = (byte >>> (bits - 8)) & 255;\n bits -= 8;\n }\n }\n return out.slice(0, j);\n }\n}\nexports.base32 = base32;\n//# sourceMappingURL=base32.js.map","\"use strict\";\n/*\n * Copyright 2018-2020 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Codec = void 0;\nconst crc16_1 = require(\"./crc16\");\nconst nkeys_1 = require(\"./nkeys\");\nconst base32_1 = require(\"./base32\");\n/**\n * @ignore\n */\nclass Codec {\n static encode(prefix, src) {\n if (!src || !(src instanceof Uint8Array)) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.SerializationError);\n }\n if (!nkeys_1.Prefixes.isValidPrefix(prefix)) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidPrefixByte);\n }\n return Codec._encode(false, prefix, src);\n }\n static encodeSeed(role, src) {\n if (!src) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ApiError);\n }\n if (!nkeys_1.Prefixes.isValidPublicPrefix(role)) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidPrefixByte);\n }\n if (src.byteLength !== 32) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidSeedLen);\n }\n return Codec._encode(true, role, src);\n }\n static decode(expected, src) {\n if (!nkeys_1.Prefixes.isValidPrefix(expected)) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidPrefixByte);\n }\n const raw = Codec._decode(src);\n if (raw[0] !== expected) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidPrefixByte);\n }\n return raw.slice(1);\n }\n static decodeSeed(src) {\n const raw = Codec._decode(src);\n const prefix = Codec._decodePrefix(raw);\n if (prefix[0] != nkeys_1.Prefix.Seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidSeed);\n }\n if (!nkeys_1.Prefixes.isValidPublicPrefix(prefix[1])) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidPrefixByte);\n }\n return ({ buf: raw.slice(2), prefix: prefix[1] });\n }\n // unsafe encode no prefix/role validation\n static _encode(seed, role, payload) {\n // offsets for this token\n const payloadOffset = seed ? 2 : 1;\n const payloadLen = payload.byteLength;\n const checkLen = 2;\n const cap = payloadOffset + payloadLen + checkLen;\n const checkOffset = payloadOffset + payloadLen;\n const raw = new Uint8Array(cap);\n // make the prefixes human readable when encoded\n if (seed) {\n const encodedPrefix = Codec._encodePrefix(nkeys_1.Prefix.Seed, role);\n raw.set(encodedPrefix);\n }\n else {\n raw[0] = role;\n }\n raw.set(payload, payloadOffset);\n //calculate the checksum write it LE\n const checksum = crc16_1.crc16.checksum(raw.slice(0, checkOffset));\n const dv = new DataView(raw.buffer);\n dv.setUint16(checkOffset, checksum, true);\n return base32_1.base32.encode(raw);\n }\n // unsafe decode - no prefix/role validation\n static _decode(src) {\n if (src.byteLength < 4) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidEncoding);\n }\n let raw;\n try {\n raw = base32_1.base32.decode(src);\n }\n catch (ex) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidEncoding, { cause: ex });\n }\n const checkOffset = raw.byteLength - 2;\n const dv = new DataView(raw.buffer);\n const checksum = dv.getUint16(checkOffset, true);\n const payload = raw.slice(0, checkOffset);\n if (!crc16_1.crc16.validate(payload, checksum)) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidChecksum);\n }\n return payload;\n }\n static _encodePrefix(kind, role) {\n // In order to make this human printable for both bytes, we need to do a little\n // bit manipulation to setup for base32 encoding which takes 5 bits at a time.\n const b1 = kind | (role >> 5);\n const b2 = (role & 31) << 3; // 31 = 00011111\n return new Uint8Array([b1, b2]);\n }\n static _decodePrefix(raw) {\n // Need to do the reverse from the printable representation to\n // get back to internal representation.\n const b1 = raw[0] & 248; // 248 = 11111000\n const b2 = (raw[0] & 7) << 5 | ((raw[1] & 248) >> 3); // 7 = 00000111\n return new Uint8Array([b1, b2]);\n }\n}\nexports.Codec = Codec;\n//# sourceMappingURL=codec.js.map","\"use strict\";\n/*\n * Copyright 2018-2020 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crc16 = void 0;\n// An implementation of crc16 according to CCITT standards for XMODEM.\n/**\n * @ignore\n */\nconst crc16tab = new Uint16Array([\n 0x0000,\n 0x1021,\n 0x2042,\n 0x3063,\n 0x4084,\n 0x50a5,\n 0x60c6,\n 0x70e7,\n 0x8108,\n 0x9129,\n 0xa14a,\n 0xb16b,\n 0xc18c,\n 0xd1ad,\n 0xe1ce,\n 0xf1ef,\n 0x1231,\n 0x0210,\n 0x3273,\n 0x2252,\n 0x52b5,\n 0x4294,\n 0x72f7,\n 0x62d6,\n 0x9339,\n 0x8318,\n 0xb37b,\n 0xa35a,\n 0xd3bd,\n 0xc39c,\n 0xf3ff,\n 0xe3de,\n 0x2462,\n 0x3443,\n 0x0420,\n 0x1401,\n 0x64e6,\n 0x74c7,\n 0x44a4,\n 0x5485,\n 0xa56a,\n 0xb54b,\n 0x8528,\n 0x9509,\n 0xe5ee,\n 0xf5cf,\n 0xc5ac,\n 0xd58d,\n 0x3653,\n 0x2672,\n 0x1611,\n 0x0630,\n 0x76d7,\n 0x66f6,\n 0x5695,\n 0x46b4,\n 0xb75b,\n 0xa77a,\n 0x9719,\n 0x8738,\n 0xf7df,\n 0xe7fe,\n 0xd79d,\n 0xc7bc,\n 0x48c4,\n 0x58e5,\n 0x6886,\n 0x78a7,\n 0x0840,\n 0x1861,\n 0x2802,\n 0x3823,\n 0xc9cc,\n 0xd9ed,\n 0xe98e,\n 0xf9af,\n 0x8948,\n 0x9969,\n 0xa90a,\n 0xb92b,\n 0x5af5,\n 0x4ad4,\n 0x7ab7,\n 0x6a96,\n 0x1a71,\n 0x0a50,\n 0x3a33,\n 0x2a12,\n 0xdbfd,\n 0xcbdc,\n 0xfbbf,\n 0xeb9e,\n 0x9b79,\n 0x8b58,\n 0xbb3b,\n 0xab1a,\n 0x6ca6,\n 0x7c87,\n 0x4ce4,\n 0x5cc5,\n 0x2c22,\n 0x3c03,\n 0x0c60,\n 0x1c41,\n 0xedae,\n 0xfd8f,\n 0xcdec,\n 0xddcd,\n 0xad2a,\n 0xbd0b,\n 0x8d68,\n 0x9d49,\n 0x7e97,\n 0x6eb6,\n 0x5ed5,\n 0x4ef4,\n 0x3e13,\n 0x2e32,\n 0x1e51,\n 0x0e70,\n 0xff9f,\n 0xefbe,\n 0xdfdd,\n 0xcffc,\n 0xbf1b,\n 0xaf3a,\n 0x9f59,\n 0x8f78,\n 0x9188,\n 0x81a9,\n 0xb1ca,\n 0xa1eb,\n 0xd10c,\n 0xc12d,\n 0xf14e,\n 0xe16f,\n 0x1080,\n 0x00a1,\n 0x30c2,\n 0x20e3,\n 0x5004,\n 0x4025,\n 0x7046,\n 0x6067,\n 0x83b9,\n 0x9398,\n 0xa3fb,\n 0xb3da,\n 0xc33d,\n 0xd31c,\n 0xe37f,\n 0xf35e,\n 0x02b1,\n 0x1290,\n 0x22f3,\n 0x32d2,\n 0x4235,\n 0x5214,\n 0x6277,\n 0x7256,\n 0xb5ea,\n 0xa5cb,\n 0x95a8,\n 0x8589,\n 0xf56e,\n 0xe54f,\n 0xd52c,\n 0xc50d,\n 0x34e2,\n 0x24c3,\n 0x14a0,\n 0x0481,\n 0x7466,\n 0x6447,\n 0x5424,\n 0x4405,\n 0xa7db,\n 0xb7fa,\n 0x8799,\n 0x97b8,\n 0xe75f,\n 0xf77e,\n 0xc71d,\n 0xd73c,\n 0x26d3,\n 0x36f2,\n 0x0691,\n 0x16b0,\n 0x6657,\n 0x7676,\n 0x4615,\n 0x5634,\n 0xd94c,\n 0xc96d,\n 0xf90e,\n 0xe92f,\n 0x99c8,\n 0x89e9,\n 0xb98a,\n 0xa9ab,\n 0x5844,\n 0x4865,\n 0x7806,\n 0x6827,\n 0x18c0,\n 0x08e1,\n 0x3882,\n 0x28a3,\n 0xcb7d,\n 0xdb5c,\n 0xeb3f,\n 0xfb1e,\n 0x8bf9,\n 0x9bd8,\n 0xabbb,\n 0xbb9a,\n 0x4a75,\n 0x5a54,\n 0x6a37,\n 0x7a16,\n 0x0af1,\n 0x1ad0,\n 0x2ab3,\n 0x3a92,\n 0xfd2e,\n 0xed0f,\n 0xdd6c,\n 0xcd4d,\n 0xbdaa,\n 0xad8b,\n 0x9de8,\n 0x8dc9,\n 0x7c26,\n 0x6c07,\n 0x5c64,\n 0x4c45,\n 0x3ca2,\n 0x2c83,\n 0x1ce0,\n 0x0cc1,\n 0xef1f,\n 0xff3e,\n 0xcf5d,\n 0xdf7c,\n 0xaf9b,\n 0xbfba,\n 0x8fd9,\n 0x9ff8,\n 0x6e17,\n 0x7e36,\n 0x4e55,\n 0x5e74,\n 0x2e93,\n 0x3eb2,\n 0x0ed1,\n 0x1ef0,\n]);\n/**\n * @ignore\n */\nclass crc16 {\n // crc16 returns the crc for the data provided.\n static checksum(data) {\n let crc = 0;\n for (let i = 0; i < data.byteLength; i++) {\n const b = data[i];\n crc = ((crc << 8) & 0xffff) ^ crc16tab[((crc >> 8) ^ b) & 0x00FF];\n }\n return crc;\n }\n // validate will check the calculated crc16 checksum for data against the expected.\n static validate(data, expected) {\n const ba = crc16.checksum(data);\n return ba == expected;\n }\n}\nexports.crc16 = crc16;\n//# sourceMappingURL=crc16.js.map","\"use strict\";\n/*\n * Copyright 2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CurveKP = exports.curveNonceLen = exports.curveKeyLen = void 0;\nconst nkeys_1 = require(\"./nkeys\");\nconst nacl_1 = __importDefault(require(\"./nacl\"));\nconst codec_1 = require(\"./codec\");\nconst nkeys_2 = require(\"./nkeys\");\nconst base32_1 = require(\"./base32\");\nconst crc16_1 = require(\"./crc16\");\nexports.curveKeyLen = 32;\nconst curveDecodeLen = 35;\nexports.curveNonceLen = 24;\n// \"xkv1\" in bytes\nconst XKeyVersionV1 = [120, 107, 118, 49];\nclass CurveKP {\n seed;\n constructor(seed) {\n this.seed = seed;\n }\n clear() {\n if (!this.seed) {\n return;\n }\n this.seed.fill(0);\n this.seed = undefined;\n }\n getPrivateKey() {\n if (!this.seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n return codec_1.Codec.encode(nkeys_2.Prefix.Private, this.seed);\n }\n getPublicKey() {\n if (!this.seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n const pub = nacl_1.default.scalarMult.base(this.seed);\n const buf = codec_1.Codec.encode(nkeys_2.Prefix.Curve, pub);\n return new TextDecoder().decode(buf);\n }\n getSeed() {\n if (!this.seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n return codec_1.Codec.encodeSeed(nkeys_2.Prefix.Curve, this.seed);\n }\n sign() {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidCurveOperation);\n }\n verify() {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidCurveOperation);\n }\n decodePubCurveKey(src) {\n try {\n const raw = base32_1.base32.decode(new TextEncoder().encode(src));\n if (raw.byteLength !== curveDecodeLen) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidCurveKey);\n }\n if (raw[0] !== nkeys_2.Prefix.Curve) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidPublicKey);\n }\n const checkOffset = raw.byteLength - 2;\n const dv = new DataView(raw.buffer);\n const checksum = dv.getUint16(checkOffset, true);\n const payload = raw.slice(0, checkOffset);\n if (!crc16_1.crc16.validate(payload, checksum)) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidChecksum);\n }\n // remove the prefix byte\n return payload.slice(1);\n }\n catch (ex) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidRecipient, { cause: ex });\n }\n }\n seal(message, recipient, nonce) {\n if (!this.seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n if (!nonce) {\n nonce = nacl_1.default.randomBytes(exports.curveNonceLen);\n }\n const pub = this.decodePubCurveKey(recipient);\n // prefix a header to the nonce\n const out = new Uint8Array(XKeyVersionV1.length + exports.curveNonceLen);\n out.set(XKeyVersionV1, 0);\n out.set(nonce, XKeyVersionV1.length);\n // this is only the encoded payload\n const encrypted = nacl_1.default.box(message, nonce, pub, this.seed);\n // the full message is the header+nonce+encrypted\n const fullMessage = new Uint8Array(out.length + encrypted.length);\n fullMessage.set(out);\n fullMessage.set(encrypted, out.length);\n return fullMessage;\n }\n open(message, sender) {\n if (!this.seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n if (message.length <= exports.curveNonceLen + XKeyVersionV1.length) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidEncrypted);\n }\n for (let i = 0; i < XKeyVersionV1.length; i++) {\n if (message[i] !== XKeyVersionV1[i]) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidEncrypted);\n }\n }\n const pub = this.decodePubCurveKey(sender);\n // strip off the header\n message = message.slice(XKeyVersionV1.length);\n // extract the nonce\n const nonce = message.slice(0, exports.curveNonceLen);\n // stripe the nonce\n message = message.slice(exports.curveNonceLen);\n return nacl_1.default.box.open(message, nonce, pub, this.seed);\n }\n}\nexports.CurveKP = CurveKP;\n//# sourceMappingURL=curve.js.map","\"use strict\";\n/*\n * Copyright 2018-2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KP = void 0;\nconst codec_1 = require(\"./codec\");\nconst nkeys_1 = require(\"./nkeys\");\nconst nacl_1 = __importDefault(require(\"./nacl\"));\n/**\n * @ignore\n */\nclass KP {\n seed;\n constructor(seed) {\n this.seed = seed;\n }\n getRawSeed() {\n if (!this.seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n const sd = codec_1.Codec.decodeSeed(this.seed);\n return sd.buf;\n }\n getSeed() {\n if (!this.seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n return this.seed;\n }\n getPublicKey() {\n if (!this.seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n const sd = codec_1.Codec.decodeSeed(this.seed);\n const kp = nacl_1.default.sign.keyPair.fromSeed(this.getRawSeed());\n const buf = codec_1.Codec.encode(sd.prefix, kp.publicKey);\n return new TextDecoder().decode(buf);\n }\n getPrivateKey() {\n if (!this.seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n const kp = nacl_1.default.sign.keyPair.fromSeed(this.getRawSeed());\n return codec_1.Codec.encode(nkeys_1.Prefix.Private, kp.secretKey);\n }\n sign(input) {\n if (!this.seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n const kp = nacl_1.default.sign.keyPair.fromSeed(this.getRawSeed());\n return nacl_1.default.sign.detached(input, kp.secretKey);\n }\n verify(input, sig) {\n if (!this.seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n const kp = nacl_1.default.sign.keyPair.fromSeed(this.getRawSeed());\n return nacl_1.default.sign.detached.verify(input, sig, kp.publicKey);\n }\n clear() {\n if (!this.seed) {\n return;\n }\n this.seed.fill(0);\n this.seed = undefined;\n }\n seal(_, _recipient, _nonce) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidNKeyOperation);\n }\n open(_, _sender) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidNKeyOperation);\n }\n}\nexports.KP = KP;\n//# sourceMappingURL=kp.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.version = exports.encode = exports.decode = exports.Prefixes = exports.Prefix = exports.NKeysErrorCode = exports.NKeysError = exports.fromSeed = exports.fromPublic = exports.fromCurveSeed = exports.createUser = exports.createServer = exports.createPair = exports.createOperator = exports.createCurve = exports.createCluster = exports.createAccount = void 0;\nvar nkeys_1 = require(\"./nkeys\");\nObject.defineProperty(exports, \"createAccount\", { enumerable: true, get: function () { return nkeys_1.createAccount; } });\nObject.defineProperty(exports, \"createCluster\", { enumerable: true, get: function () { return nkeys_1.createCluster; } });\nObject.defineProperty(exports, \"createCurve\", { enumerable: true, get: function () { return nkeys_1.createCurve; } });\nObject.defineProperty(exports, \"createOperator\", { enumerable: true, get: function () { return nkeys_1.createOperator; } });\nObject.defineProperty(exports, \"createPair\", { enumerable: true, get: function () { return nkeys_1.createPair; } });\nObject.defineProperty(exports, \"createServer\", { enumerable: true, get: function () { return nkeys_1.createServer; } });\nObject.defineProperty(exports, \"createUser\", { enumerable: true, get: function () { return nkeys_1.createUser; } });\nObject.defineProperty(exports, \"fromCurveSeed\", { enumerable: true, get: function () { return nkeys_1.fromCurveSeed; } });\nObject.defineProperty(exports, \"fromPublic\", { enumerable: true, get: function () { return nkeys_1.fromPublic; } });\nObject.defineProperty(exports, \"fromSeed\", { enumerable: true, get: function () { return nkeys_1.fromSeed; } });\nObject.defineProperty(exports, \"NKeysError\", { enumerable: true, get: function () { return nkeys_1.NKeysError; } });\nObject.defineProperty(exports, \"NKeysErrorCode\", { enumerable: true, get: function () { return nkeys_1.NKeysErrorCode; } });\nObject.defineProperty(exports, \"Prefix\", { enumerable: true, get: function () { return nkeys_1.Prefix; } });\nObject.defineProperty(exports, \"Prefixes\", { enumerable: true, get: function () { return nkeys_1.Prefixes; } });\nvar util_1 = require(\"./util\");\nObject.defineProperty(exports, \"decode\", { enumerable: true, get: function () { return util_1.decode; } });\nObject.defineProperty(exports, \"encode\", { enumerable: true, get: function () { return util_1.encode; } });\nvar version_1 = require(\"./version\");\nObject.defineProperty(exports, \"version\", { enumerable: true, get: function () { return version_1.version; } });\n//# sourceMappingURL=mod.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tweetnacl_1 = __importDefault(require(\"tweetnacl\"));\nexports.default = tweetnacl_1.default;\n//# sourceMappingURL=nacl.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NKeysError = exports.NKeysErrorCode = exports.Prefixes = exports.Prefix = void 0;\nexports.createPair = createPair;\nexports.createOperator = createOperator;\nexports.createAccount = createAccount;\nexports.createUser = createUser;\nexports.createCluster = createCluster;\nexports.createServer = createServer;\nexports.createCurve = createCurve;\nexports.fromPublic = fromPublic;\nexports.fromCurveSeed = fromCurveSeed;\nexports.fromSeed = fromSeed;\n/*\n * Copyright 2018-2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst kp_1 = require(\"./kp\");\nconst public_1 = require(\"./public\");\nconst codec_1 = require(\"./codec\");\nconst curve_1 = require(\"./curve\");\nconst nacl_1 = __importDefault(require(\"./nacl\"));\n/**\n * @ignore\n */\nfunction createPair(prefix) {\n const len = prefix === Prefix.Curve ? curve_1.curveKeyLen : 32;\n const rawSeed = nacl_1.default.randomBytes(len);\n const str = codec_1.Codec.encodeSeed(prefix, new Uint8Array(rawSeed));\n return prefix === Prefix.Curve\n ? new curve_1.CurveKP(new Uint8Array(rawSeed))\n : new kp_1.KP(str);\n}\n/**\n * Creates a KeyPair with an operator prefix\n * @returns {KeyPair} Returns the created KeyPair.\n */\nfunction createOperator() {\n return createPair(Prefix.Operator);\n}\n/**\n * Creates a KeyPair with an account prefix\n * @returns {KeyPair} Returns the created KeyPair.\n */\nfunction createAccount() {\n return createPair(Prefix.Account);\n}\n/**\n * Creates a KeyPair with a user prefix\n * @returns {KeyPair} Returns the created KeyPair.\n */\nfunction createUser() {\n return createPair(Prefix.User);\n}\n/**\n * @ignore\n */\nfunction createCluster() {\n return createPair(Prefix.Cluster);\n}\n/**\n * @ignore\n */\nfunction createServer() {\n return createPair(Prefix.Server);\n}\n/**\n * Generates and returns a KeyPair object using the Curve prefix.\n * Curve KeyPairs can seal/open (encrypt/decrypt) payloads.\n *\n * @return {KeyPair} The generated KeyPair object with Curve prefix.\n */\nfunction createCurve() {\n return createPair(Prefix.Curve);\n}\n/**\n * Creates a KeyPair from a specified public key\n * @param {string} src of the public key in string format.\n * @returns {KeyPair} Returns the created KeyPair.\n * @see KeyPair#getPublicKey\n */\nfunction fromPublic(src) {\n const ba = new TextEncoder().encode(src);\n const raw = codec_1.Codec._decode(ba);\n const prefix = Prefixes.parsePrefix(raw[0]);\n if (Prefixes.isValidPublicPrefix(prefix)) {\n return new public_1.PublicKey(ba);\n }\n throw new NKeysError(NKeysErrorCode.InvalidPublicKey);\n}\n/**\n * Creates a KeyPair from a Curve seed. Curve keys can encrypt and decrypt payloads.\n *\n * @param {Uint8Array} src - The seed representing the Curve key in encoded format.\n * @return {KeyPair} The resulting KeyPair generated from the Curve seed.\n * @throws {NKeysError} If the seed's prefix is not a Curve prefix or if the seed length is invalid.\n */\nfunction fromCurveSeed(src) {\n const sd = codec_1.Codec.decodeSeed(src);\n if (sd.prefix !== Prefix.Curve) {\n throw new NKeysError(NKeysErrorCode.InvalidCurveSeed);\n }\n if (sd.buf.byteLength !== curve_1.curveKeyLen) {\n throw new NKeysError(NKeysErrorCode.InvalidSeedLen);\n }\n return new curve_1.CurveKP(sd.buf);\n}\n/**\n * Creates a KeyPair from a specified seed.\n * @param {Uint8Array} src of the seed key as Uint8Array\n * @returns {KeyPair} Returns the created KeyPair.\n * @see KeyPair#getSeed\n */\nfunction fromSeed(src) {\n const sd = codec_1.Codec.decodeSeed(src);\n // if we are here it decoded properly\n if (sd.prefix === Prefix.Curve) {\n return fromCurveSeed(src);\n }\n return new kp_1.KP(src);\n}\n/**\n * @ignore\n */\nvar Prefix;\n(function (Prefix) {\n Prefix[Prefix[\"Unknown\"] = -1] = \"Unknown\";\n //Seed is the version byte used for encoded NATS Seeds\n Prefix[Prefix[\"Seed\"] = 144] = \"Seed\";\n //PrefixBytePrivate is the version byte used for encoded NATS Private keys\n Prefix[Prefix[\"Private\"] = 120] = \"Private\";\n //PrefixByteOperator is the version byte used for encoded NATS Operators\n Prefix[Prefix[\"Operator\"] = 112] = \"Operator\";\n //PrefixByteServer is the version byte used for encoded NATS Servers\n Prefix[Prefix[\"Server\"] = 104] = \"Server\";\n //PrefixByteCluster is the version byte used for encoded NATS Clusters\n Prefix[Prefix[\"Cluster\"] = 16] = \"Cluster\";\n //PrefixByteAccount is the version byte used for encoded NATS Accounts\n Prefix[Prefix[\"Account\"] = 0] = \"Account\";\n //PrefixByteUser is the version byte used for encoded NATS Users\n Prefix[Prefix[\"User\"] = 160] = \"User\";\n Prefix[Prefix[\"Curve\"] = 184] = \"Curve\";\n})(Prefix || (exports.Prefix = Prefix = {}));\n/**\n * @private\n */\nclass Prefixes {\n static isValidPublicPrefix(prefix) {\n return prefix == Prefix.Server ||\n prefix == Prefix.Operator ||\n prefix == Prefix.Cluster ||\n prefix == Prefix.Account ||\n prefix == Prefix.User ||\n prefix == Prefix.Curve;\n }\n static startsWithValidPrefix(s) {\n const c = s[0];\n return c == \"S\" || c == \"P\" || c == \"O\" || c == \"N\" || c == \"C\" ||\n c == \"A\" || c == \"U\" || c == \"X\";\n }\n static isValidPrefix(prefix) {\n const v = this.parsePrefix(prefix);\n return v !== Prefix.Unknown;\n }\n static parsePrefix(v) {\n switch (v) {\n case Prefix.Seed:\n return Prefix.Seed;\n case Prefix.Private:\n return Prefix.Private;\n case Prefix.Operator:\n return Prefix.Operator;\n case Prefix.Server:\n return Prefix.Server;\n case Prefix.Cluster:\n return Prefix.Cluster;\n case Prefix.Account:\n return Prefix.Account;\n case Prefix.User:\n return Prefix.User;\n case Prefix.Curve:\n return Prefix.Curve;\n default:\n return Prefix.Unknown;\n }\n }\n}\nexports.Prefixes = Prefixes;\n/**\n * Possible error codes on exceptions thrown by the library.\n */\nvar NKeysErrorCode;\n(function (NKeysErrorCode) {\n NKeysErrorCode[\"InvalidPrefixByte\"] = \"nkeys: invalid prefix byte\";\n NKeysErrorCode[\"InvalidKey\"] = \"nkeys: invalid key\";\n NKeysErrorCode[\"InvalidPublicKey\"] = \"nkeys: invalid public key\";\n NKeysErrorCode[\"InvalidSeedLen\"] = \"nkeys: invalid seed length\";\n NKeysErrorCode[\"InvalidSeed\"] = \"nkeys: invalid seed\";\n NKeysErrorCode[\"InvalidCurveSeed\"] = \"nkeys: invalid curve seed\";\n NKeysErrorCode[\"InvalidCurveKey\"] = \"nkeys: not a valid curve key\";\n NKeysErrorCode[\"InvalidCurveOperation\"] = \"nkeys: curve key is not valid for sign/verify\";\n NKeysErrorCode[\"InvalidNKeyOperation\"] = \"keys: only curve key can seal/open\";\n NKeysErrorCode[\"InvalidEncoding\"] = \"nkeys: invalid encoded key\";\n NKeysErrorCode[\"InvalidRecipient\"] = \"nkeys: not a valid recipient public curve key\";\n NKeysErrorCode[\"InvalidEncrypted\"] = \"nkeys: encrypted input is not valid\";\n NKeysErrorCode[\"CannotSign\"] = \"nkeys: cannot sign, no private key available\";\n NKeysErrorCode[\"PublicKeyOnly\"] = \"nkeys: no seed or private key available\";\n NKeysErrorCode[\"InvalidChecksum\"] = \"nkeys: invalid checksum\";\n NKeysErrorCode[\"SerializationError\"] = \"nkeys: serialization error\";\n NKeysErrorCode[\"ApiError\"] = \"nkeys: api error\";\n NKeysErrorCode[\"ClearedPair\"] = \"nkeys: pair is cleared\";\n})(NKeysErrorCode || (exports.NKeysErrorCode = NKeysErrorCode = {}));\nclass NKeysError extends Error {\n code;\n constructor(code, options) {\n super(code, options);\n this.code = code;\n }\n}\nexports.NKeysError = NKeysError;\n//# sourceMappingURL=nkeys.js.map","\"use strict\";\n/*\n * Copyright 2018-2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = void 0;\nconst codec_1 = require(\"./codec\");\nconst nkeys_1 = require(\"./nkeys\");\nconst nacl_1 = __importDefault(require(\"./nacl\"));\n/**\n * @ignore\n */\nclass PublicKey {\n publicKey;\n constructor(publicKey) {\n this.publicKey = publicKey;\n }\n getPublicKey() {\n if (!this.publicKey) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n return new TextDecoder().decode(this.publicKey);\n }\n getPrivateKey() {\n if (!this.publicKey) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.PublicKeyOnly);\n }\n getSeed() {\n if (!this.publicKey) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.PublicKeyOnly);\n }\n sign(_) {\n if (!this.publicKey) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.CannotSign);\n }\n verify(input, sig) {\n if (!this.publicKey) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n const buf = codec_1.Codec._decode(this.publicKey);\n return nacl_1.default.sign.detached.verify(input, sig, buf.slice(1));\n }\n clear() {\n if (!this.publicKey) {\n return;\n }\n this.publicKey.fill(0);\n this.publicKey = undefined;\n }\n seal(_, _recipient, _nonce) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidNKeyOperation);\n }\n open(_, _sender) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidNKeyOperation);\n }\n}\nexports.PublicKey = PublicKey;\n//# sourceMappingURL=public.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encode = encode;\nexports.decode = decode;\nexports.dump = dump;\n/*\n * Copyright 2018-2020 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Encode binary data to a base64 string\n * @param {Uint8Array} bytes to encode to base64\n */\nfunction encode(bytes) {\n return btoa(String.fromCharCode(...bytes));\n}\n/**\n * Decode a base64 encoded string to a binary Uint8Array\n * @param {string} b64str encoded string\n */\nfunction decode(b64str) {\n const bin = atob(b64str);\n const bytes = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; i++) {\n bytes[i] = bin.charCodeAt(i);\n }\n return bytes;\n}\n/**\n * @ignore\n */\nfunction dump(buf, msg) {\n if (msg) {\n console.log(msg);\n }\n const a = [];\n for (let i = 0; i < buf.byteLength; i++) {\n if (i % 8 === 0) {\n a.push(\"\\n\");\n }\n let v = buf[i].toString(16);\n if (v.length === 1) {\n v = \"0\" + v;\n }\n a.push(v);\n }\n console.log(a.join(\" \"));\n}\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.version = void 0;\n// this file is autogenerated - do not edit\nexports.version = \"2.0.3\";\n//# sourceMappingURL=version.js.map","/*\n * Copyright 2016-2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.nuid = exports.Nuid = void 0;\nconst digits = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\nconst base = 36;\nconst preLen = 12;\nconst seqLen = 10;\nconst maxSeq = 3656158440062976; // base^seqLen == 36^10\nconst minInc = 33;\nconst maxInc = 333;\nconst totalLen = preLen + seqLen;\nfunction _getRandomValues(a) {\n for (let i = 0; i < a.length; i++) {\n a[i] = Math.floor(Math.random() * 255);\n }\n}\nfunction fillRandom(a) {\n if (globalThis?.crypto?.getRandomValues) {\n globalThis.crypto.getRandomValues(a);\n }\n else {\n _getRandomValues(a);\n }\n}\n/**\n * Nuid is a class that generates unique identifiers.\n */\nclass Nuid {\n /**\n * @hidden\n */\n buf;\n /**\n * @hidden\n */\n seq;\n /**\n * @hidden\n */\n inc;\n /**\n * @hidden\n */\n inited;\n constructor() {\n this.buf = new Uint8Array(totalLen);\n this.inited = false;\n }\n /**\n * Initializes a nuid with a crypto random prefix,\n * and pseudo-random sequence and increment. This function\n * is only called if any api on a nuid is called.\n *\n * @ignore\n */\n init() {\n this.inited = true;\n this.setPre();\n this.initSeqAndInc();\n this.fillSeq();\n }\n /**\n * Initializes the pseudo random sequence number and the increment range.\n * @ignore\n */\n initSeqAndInc() {\n this.seq = Math.floor(Math.random() * maxSeq);\n this.inc = Math.floor(Math.random() * (maxInc - minInc) + minInc);\n }\n /**\n * Sets the prefix from crypto random bytes. Converts them to base36.\n *\n * @ignore\n */\n setPre() {\n const cbuf = new Uint8Array(preLen);\n fillRandom(cbuf);\n for (let i = 0; i < preLen; i++) {\n const di = cbuf[i] % base;\n this.buf[i] = digits.charCodeAt(di);\n }\n }\n /**\n * Fills the sequence part of the nuid as base36 from this.seq.\n * @ignore\n */\n fillSeq() {\n let n = this.seq;\n for (let i = totalLen - 1; i >= preLen; i--) {\n this.buf[i] = digits.charCodeAt(n % base);\n n = Math.floor(n / base);\n }\n }\n /**\n * Returns the next nuid.\n */\n next() {\n if (!this.inited) {\n this.init();\n }\n this.seq += this.inc;\n if (this.seq > maxSeq) {\n this.setPre();\n this.initSeqAndInc();\n }\n this.fillSeq();\n // @ts-ignore - Uint8Arrays can be an argument\n return String.fromCharCode.apply(String, this.buf);\n }\n /**\n * Resets the prefix and counter for the nuid. This is typically\n * called automatically from within next() if the current sequence\n * exceeds the resolution of the nuid.\n */\n reset() {\n this.init();\n }\n}\nexports.Nuid = Nuid;\n/**\n * A nuid instance you can use by simply calling `next()` on it.\n */\nexports.nuid = new Nuid();\n//# sourceMappingURL=nuid.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getHash = getHash;\nexports.createCurve = createCurve;\n/**\n * Utilities for short weierstrass curves, combined with noble-hashes.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst weierstrass_ts_1 = require(\"./abstract/weierstrass.js\");\n/** connects noble-curves to noble-hashes */\nfunction getHash(hash) {\n return { hash };\n}\n/** @deprecated use new `weierstrass()` and `ecdsa()` methods */\nfunction createCurve(curveDef, defHash) {\n const create = (hash) => (0, weierstrass_ts_1.weierstrass)({ ...curveDef, hash: hash });\n return { ...create(defHash), create };\n}\n//# sourceMappingURL=_shortw_utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wNAF = void 0;\nexports.negateCt = negateCt;\nexports.normalizeZ = normalizeZ;\nexports.mulEndoUnsafe = mulEndoUnsafe;\nexports.pippenger = pippenger;\nexports.precomputeMSMUnsafe = precomputeMSMUnsafe;\nexports.validateBasic = validateBasic;\nexports._createCurveFields = _createCurveFields;\n/**\n * Methods for elliptic curve multiplication by scalars.\n * Contains wNAF, pippenger.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst utils_ts_1 = require(\"../utils.js\");\nconst modular_ts_1 = require(\"./modular.js\");\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nfunction negateCt(condition, item) {\n const neg = item.negate();\n return condition ? neg : item;\n}\n/**\n * Takes a bunch of Projective Points but executes only one\n * inversion on all of them. Inversion is very slow operation,\n * so this improves performance massively.\n * Optimization: converts a list of projective points to a list of identical points with Z=1.\n */\nfunction normalizeZ(c, points) {\n const invertedZs = (0, modular_ts_1.FpInvertBatch)(c.Fp, points.map((p) => p.Z));\n return points.map((p, i) => c.fromAffine(p.toAffine(invertedZs[i])));\n}\nfunction validateW(W, bits) {\n if (!Number.isSafeInteger(W) || W <= 0 || W > bits)\n throw new Error('invalid window size, expected [1..' + bits + '], got W=' + W);\n}\nfunction calcWOpts(W, scalarBits) {\n validateW(W, scalarBits);\n const windows = Math.ceil(scalarBits / W) + 1; // W=8 33. Not 32, because we skip zero\n const windowSize = 2 ** (W - 1); // W=8 128. Not 256, because we skip zero\n const maxNumber = 2 ** W; // W=8 256\n const mask = (0, utils_ts_1.bitMask)(W); // W=8 255 == mask 0b11111111\n const shiftBy = BigInt(W); // W=8 8\n return { windows, windowSize, mask, maxNumber, shiftBy };\n}\nfunction calcOffsets(n, window, wOpts) {\n const { windowSize, mask, maxNumber, shiftBy } = wOpts;\n let wbits = Number(n & mask); // extract W bits.\n let nextN = n >> shiftBy; // shift number by W bits.\n // What actually happens here:\n // const highestBit = Number(mask ^ (mask >> 1n));\n // let wbits2 = wbits - 1; // skip zero\n // if (wbits2 & highestBit) { wbits2 ^= Number(mask); // (~);\n // split if bits > max: +224 => 256-32\n if (wbits > windowSize) {\n // we skip zero, which means instead of `>= size-1`, we do `> size`\n wbits -= maxNumber; // -32, can be maxNumber - wbits, but then we need to set isNeg here.\n nextN += _1n; // +256 (carry)\n }\n const offsetStart = window * windowSize;\n const offset = offsetStart + Math.abs(wbits) - 1; // -1 because we skip zero\n const isZero = wbits === 0; // is current window slice a 0?\n const isNeg = wbits < 0; // is current window slice negative?\n const isNegF = window % 2 !== 0; // fake random statement for noise\n const offsetF = offsetStart; // fake offset for noise\n return { nextN, offset, isZero, isNeg, isNegF, offsetF };\n}\nfunction validateMSMPoints(points, c) {\n if (!Array.isArray(points))\n throw new Error('array expected');\n points.forEach((p, i) => {\n if (!(p instanceof c))\n throw new Error('invalid point at index ' + i);\n });\n}\nfunction validateMSMScalars(scalars, field) {\n if (!Array.isArray(scalars))\n throw new Error('array of scalars expected');\n scalars.forEach((s, i) => {\n if (!field.isValid(s))\n throw new Error('invalid scalar at index ' + i);\n });\n}\n// Since points in different groups cannot be equal (different object constructor),\n// we can have single place to store precomputes.\n// Allows to make points frozen / immutable.\nconst pointPrecomputes = new WeakMap();\nconst pointWindowSizes = new WeakMap();\nfunction getW(P) {\n // To disable precomputes:\n // return 1;\n return pointWindowSizes.get(P) || 1;\n}\nfunction assert0(n) {\n if (n !== _0n)\n throw new Error('invalid wNAF');\n}\n/**\n * Elliptic curve multiplication of Point by scalar. Fragile.\n * Table generation takes **30MB of ram and 10ms on high-end CPU**,\n * but may take much longer on slow devices. Actual generation will happen on\n * first call of `multiply()`. By default, `BASE` point is precomputed.\n *\n * Scalars should always be less than curve order: this should be checked inside of a curve itself.\n * Creates precomputation tables for fast multiplication:\n * - private scalar is split by fixed size windows of W bits\n * - every window point is collected from window's table & added to accumulator\n * - since windows are different, same point inside tables won't be accessed more than once per calc\n * - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar)\n * - +1 window is neccessary for wNAF\n * - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n *\n * @todo Research returning 2d JS array of windows, instead of a single window.\n * This would allow windows to be in different memory locations\n */\nclass wNAF {\n // Parametrized with a given Point class (not individual point)\n constructor(Point, bits) {\n this.BASE = Point.BASE;\n this.ZERO = Point.ZERO;\n this.Fn = Point.Fn;\n this.bits = bits;\n }\n // non-const time multiplication ladder\n _unsafeLadder(elm, n, p = this.ZERO) {\n let d = elm;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n }\n /**\n * Creates a wNAF precomputation window. Used for caching.\n * Default window size is set by `utils.precompute()` and is equal to 8.\n * Number of precomputed points depends on the curve size:\n * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:\n * - 𝑊 is the window size\n * - 𝑛 is the bitlength of the curve order.\n * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n * @param point Point instance\n * @param W window size\n * @returns precomputed point tables flattened to a single array\n */\n precomputeWindow(point, W) {\n const { windows, windowSize } = calcWOpts(W, this.bits);\n const points = [];\n let p = point;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n // i=1, bc we skip 0\n for (let i = 1; i < windowSize; i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n }\n /**\n * Implements ec multiplication using precomputed tables and w-ary non-adjacent form.\n * More compact implementation:\n * https://github.com/paulmillr/noble-secp256k1/blob/47cb1669b6e506ad66b35fe7d76132ae97465da2/index.ts#L502-L541\n * @returns real and fake (for const-time) points\n */\n wNAF(W, precomputes, n) {\n // Scalar should be smaller than field order\n if (!this.Fn.isValid(n))\n throw new Error('invalid scalar');\n // Accumulators\n let p = this.ZERO;\n let f = this.BASE;\n // This code was first written with assumption that 'f' and 'p' will never be infinity point:\n // since each addition is multiplied by 2 ** W, it cannot cancel each other. However,\n // there is negate now: it is possible that negated element from low value\n // would be the same as high element, which will create carry into next window.\n // It's not obvious how this can fail, but still worth investigating later.\n const wo = calcWOpts(W, this.bits);\n for (let window = 0; window < wo.windows; window++) {\n // (n === _0n) is handled and not early-exited. isEven and offsetF are used for noise\n const { nextN, offset, isZero, isNeg, isNegF, offsetF } = calcOffsets(n, window, wo);\n n = nextN;\n if (isZero) {\n // bits are 0: add garbage to fake point\n // Important part for const-time getPublicKey: add random \"noise\" point to f.\n f = f.add(negateCt(isNegF, precomputes[offsetF]));\n }\n else {\n // bits are 1: add to result point\n p = p.add(negateCt(isNeg, precomputes[offset]));\n }\n }\n assert0(n);\n // Return both real and fake points: JIT won't eliminate f.\n // At this point there is a way to F be infinity-point even if p is not,\n // which makes it less const-time: around 1 bigint multiply.\n return { p, f };\n }\n /**\n * Implements ec unsafe (non const-time) multiplication using precomputed tables and w-ary non-adjacent form.\n * @param acc accumulator point to add result of multiplication\n * @returns point\n */\n wNAFUnsafe(W, precomputes, n, acc = this.ZERO) {\n const wo = calcWOpts(W, this.bits);\n for (let window = 0; window < wo.windows; window++) {\n if (n === _0n)\n break; // Early-exit, skip 0 value\n const { nextN, offset, isZero, isNeg } = calcOffsets(n, window, wo);\n n = nextN;\n if (isZero) {\n // Window bits are 0: skip processing.\n // Move to next window.\n continue;\n }\n else {\n const item = precomputes[offset];\n acc = acc.add(isNeg ? item.negate() : item); // Re-using acc allows to save adds in MSM\n }\n }\n assert0(n);\n return acc;\n }\n getPrecomputes(W, point, transform) {\n // Calculate precomputes on a first run, reuse them after\n let comp = pointPrecomputes.get(point);\n if (!comp) {\n comp = this.precomputeWindow(point, W);\n if (W !== 1) {\n // Doing transform outside of if brings 15% perf hit\n if (typeof transform === 'function')\n comp = transform(comp);\n pointPrecomputes.set(point, comp);\n }\n }\n return comp;\n }\n cached(point, scalar, transform) {\n const W = getW(point);\n return this.wNAF(W, this.getPrecomputes(W, point, transform), scalar);\n }\n unsafe(point, scalar, transform, prev) {\n const W = getW(point);\n if (W === 1)\n return this._unsafeLadder(point, scalar, prev); // For W=1 ladder is ~x2 faster\n return this.wNAFUnsafe(W, this.getPrecomputes(W, point, transform), scalar, prev);\n }\n // We calculate precomputes for elliptic curve point multiplication\n // using windowed method. This specifies window size and\n // stores precomputed values. Usually only base point would be precomputed.\n createCache(P, W) {\n validateW(W, this.bits);\n pointWindowSizes.set(P, W);\n pointPrecomputes.delete(P);\n }\n hasCache(elm) {\n return getW(elm) !== 1;\n }\n}\nexports.wNAF = wNAF;\n/**\n * Endomorphism-specific multiplication for Koblitz curves.\n * Cost: 128 dbl, 0-256 adds.\n */\nfunction mulEndoUnsafe(Point, point, k1, k2) {\n let acc = point;\n let p1 = Point.ZERO;\n let p2 = Point.ZERO;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n)\n p1 = p1.add(acc);\n if (k2 & _1n)\n p2 = p2.add(acc);\n acc = acc.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n return { p1, p2 };\n}\n/**\n * Pippenger algorithm for multi-scalar multiplication (MSM, Pa + Qb + Rc + ...).\n * 30x faster vs naive addition on L=4096, 10x faster than precomputes.\n * For N=254bit, L=1, it does: 1024 ADD + 254 DBL. For L=5: 1536 ADD + 254 DBL.\n * Algorithmically constant-time (for same L), even when 1 point + scalar, or when scalar = 0.\n * @param c Curve Point constructor\n * @param fieldN field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @param scalars array of L scalars (aka secret keys / bigints)\n */\nfunction pippenger(c, fieldN, points, scalars) {\n // If we split scalars by some window (let's say 8 bits), every chunk will only\n // take 256 buckets even if there are 4096 scalars, also re-uses double.\n // TODO:\n // - https://eprint.iacr.org/2024/750.pdf\n // - https://tches.iacr.org/index.php/TCHES/article/view/10287\n // 0 is accepted in scalars\n validateMSMPoints(points, c);\n validateMSMScalars(scalars, fieldN);\n const plength = points.length;\n const slength = scalars.length;\n if (plength !== slength)\n throw new Error('arrays of points and scalars must have equal length');\n // if (plength === 0) throw new Error('array must be of length >= 2');\n const zero = c.ZERO;\n const wbits = (0, utils_ts_1.bitLen)(BigInt(plength));\n let windowSize = 1; // bits\n if (wbits > 12)\n windowSize = wbits - 3;\n else if (wbits > 4)\n windowSize = wbits - 2;\n else if (wbits > 0)\n windowSize = 2;\n const MASK = (0, utils_ts_1.bitMask)(windowSize);\n const buckets = new Array(Number(MASK) + 1).fill(zero); // +1 for zero array\n const lastBits = Math.floor((fieldN.BITS - 1) / windowSize) * windowSize;\n let sum = zero;\n for (let i = lastBits; i >= 0; i -= windowSize) {\n buckets.fill(zero);\n for (let j = 0; j < slength; j++) {\n const scalar = scalars[j];\n const wbits = Number((scalar >> BigInt(i)) & MASK);\n buckets[wbits] = buckets[wbits].add(points[j]);\n }\n let resI = zero; // not using this will do small speed-up, but will lose ct\n // Skip first bucket, because it is zero\n for (let j = buckets.length - 1, sumI = zero; j > 0; j--) {\n sumI = sumI.add(buckets[j]);\n resI = resI.add(sumI);\n }\n sum = sum.add(resI);\n if (i !== 0)\n for (let j = 0; j < windowSize; j++)\n sum = sum.double();\n }\n return sum;\n}\n/**\n * Precomputed multi-scalar multiplication (MSM, Pa + Qb + Rc + ...).\n * @param c Curve Point constructor\n * @param fieldN field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @returns function which multiplies points with scaars\n */\nfunction precomputeMSMUnsafe(c, fieldN, points, windowSize) {\n /**\n * Performance Analysis of Window-based Precomputation\n *\n * Base Case (256-bit scalar, 8-bit window):\n * - Standard precomputation requires:\n * - 31 additions per scalar × 256 scalars = 7,936 ops\n * - Plus 255 summary additions = 8,191 total ops\n * Note: Summary additions can be optimized via accumulator\n *\n * Chunked Precomputation Analysis:\n * - Using 32 chunks requires:\n * - 255 additions per chunk\n * - 256 doublings\n * - Total: (255 × 32) + 256 = 8,416 ops\n *\n * Memory Usage Comparison:\n * Window Size | Standard Points | Chunked Points\n * ------------|-----------------|---------------\n * 4-bit | 520 | 15\n * 8-bit | 4,224 | 255\n * 10-bit | 13,824 | 1,023\n * 16-bit | 557,056 | 65,535\n *\n * Key Advantages:\n * 1. Enables larger window sizes due to reduced memory overhead\n * 2. More efficient for smaller scalar counts:\n * - 16 chunks: (16 × 255) + 256 = 4,336 ops\n * - ~2x faster than standard 8,191 ops\n *\n * Limitations:\n * - Not suitable for plain precomputes (requires 256 constant doublings)\n * - Performance degrades with larger scalar counts:\n * - Optimal for ~256 scalars\n * - Less efficient for 4096+ scalars (Pippenger preferred)\n */\n validateW(windowSize, fieldN.BITS);\n validateMSMPoints(points, c);\n const zero = c.ZERO;\n const tableSize = 2 ** windowSize - 1; // table size (without zero)\n const chunks = Math.ceil(fieldN.BITS / windowSize); // chunks of item\n const MASK = (0, utils_ts_1.bitMask)(windowSize);\n const tables = points.map((p) => {\n const res = [];\n for (let i = 0, acc = p; i < tableSize; i++) {\n res.push(acc);\n acc = acc.add(p);\n }\n return res;\n });\n return (scalars) => {\n validateMSMScalars(scalars, fieldN);\n if (scalars.length > points.length)\n throw new Error('array of scalars must be smaller than array of points');\n let res = zero;\n for (let i = 0; i < chunks; i++) {\n // No need to double if accumulator is still zero.\n if (res !== zero)\n for (let j = 0; j < windowSize; j++)\n res = res.double();\n const shiftBy = BigInt(chunks * windowSize - (i + 1) * windowSize);\n for (let j = 0; j < scalars.length; j++) {\n const n = scalars[j];\n const curr = Number((n >> shiftBy) & MASK);\n if (!curr)\n continue; // skip zero scalars chunks\n res = res.add(tables[j][curr - 1]);\n }\n }\n return res;\n };\n}\n// TODO: remove\n/** @deprecated */\nfunction validateBasic(curve) {\n (0, modular_ts_1.validateField)(curve.Fp);\n (0, utils_ts_1.validateObject)(curve, {\n n: 'bigint',\n h: 'bigint',\n Gx: 'field',\n Gy: 'field',\n }, {\n nBitLength: 'isSafeInteger',\n nByteLength: 'isSafeInteger',\n });\n // Set defaults\n return Object.freeze({\n ...(0, modular_ts_1.nLength)(curve.n, curve.nBitLength),\n ...curve,\n ...{ p: curve.Fp.ORDER },\n });\n}\nfunction createField(order, field, isLE) {\n if (field) {\n if (field.ORDER !== order)\n throw new Error('Field.ORDER must match order: Fp == p, Fn == n');\n (0, modular_ts_1.validateField)(field);\n return field;\n }\n else {\n return (0, modular_ts_1.Field)(order, { isLE });\n }\n}\n/** Validates CURVE opts and creates fields */\nfunction _createCurveFields(type, CURVE, curveOpts = {}, FpFnLE) {\n if (FpFnLE === undefined)\n FpFnLE = type === 'edwards';\n if (!CURVE || typeof CURVE !== 'object')\n throw new Error(`expected valid ${type} CURVE object`);\n for (const p of ['p', 'n', 'h']) {\n const val = CURVE[p];\n if (!(typeof val === 'bigint' && val > _0n))\n throw new Error(`CURVE.${p} must be positive bigint`);\n }\n const Fp = createField(CURVE.p, curveOpts.Fp, FpFnLE);\n const Fn = createField(CURVE.n, curveOpts.Fn, FpFnLE);\n const _b = type === 'weierstrass' ? 'b' : 'd';\n const params = ['Gx', 'Gy', 'a', _b];\n for (const p of params) {\n // @ts-ignore\n if (!Fp.isValid(CURVE[p]))\n throw new Error(`CURVE.${p} must be valid field element of CURVE.Fp`);\n }\n CURVE = Object.freeze(Object.assign({}, CURVE));\n return { CURVE, Fp, Fn };\n}\n//# sourceMappingURL=curve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._DST_scalar = void 0;\nexports.expand_message_xmd = expand_message_xmd;\nexports.expand_message_xof = expand_message_xof;\nexports.hash_to_field = hash_to_field;\nexports.isogenyMap = isogenyMap;\nexports.createHasher = createHasher;\nconst utils_ts_1 = require(\"../utils.js\");\nconst modular_ts_1 = require(\"./modular.js\");\n// Octet Stream to Integer. \"spec\" implementation of os2ip is 2.5x slower vs bytesToNumberBE.\nconst os2ip = utils_ts_1.bytesToNumberBE;\n// Integer to Octet Stream (numberToBytesBE)\nfunction i2osp(value, length) {\n anum(value);\n anum(length);\n if (value < 0 || value >= 1 << (8 * length))\n throw new Error('invalid I2OSP input: ' + value);\n const res = Array.from({ length }).fill(0);\n for (let i = length - 1; i >= 0; i--) {\n res[i] = value & 0xff;\n value >>>= 8;\n }\n return new Uint8Array(res);\n}\nfunction strxor(a, b) {\n const arr = new Uint8Array(a.length);\n for (let i = 0; i < a.length; i++) {\n arr[i] = a[i] ^ b[i];\n }\n return arr;\n}\nfunction anum(item) {\n if (!Number.isSafeInteger(item))\n throw new Error('number expected');\n}\nfunction normDST(DST) {\n if (!(0, utils_ts_1.isBytes)(DST) && typeof DST !== 'string')\n throw new Error('DST must be Uint8Array or string');\n return typeof DST === 'string' ? (0, utils_ts_1.utf8ToBytes)(DST) : DST;\n}\n/**\n * Produces a uniformly random byte string using a cryptographic hash function H that outputs b bits.\n * [RFC 9380 5.3.1](https://www.rfc-editor.org/rfc/rfc9380#section-5.3.1).\n */\nfunction expand_message_xmd(msg, DST, lenInBytes, H) {\n (0, utils_ts_1.abytes)(msg);\n anum(lenInBytes);\n DST = normDST(DST);\n // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n if (DST.length > 255)\n DST = H((0, utils_ts_1.concatBytes)((0, utils_ts_1.utf8ToBytes)('H2C-OVERSIZE-DST-'), DST));\n const { outputLen: b_in_bytes, blockLen: r_in_bytes } = H;\n const ell = Math.ceil(lenInBytes / b_in_bytes);\n if (lenInBytes > 65535 || ell > 255)\n throw new Error('expand_message_xmd: invalid lenInBytes');\n const DST_prime = (0, utils_ts_1.concatBytes)(DST, i2osp(DST.length, 1));\n const Z_pad = i2osp(0, r_in_bytes);\n const l_i_b_str = i2osp(lenInBytes, 2); // len_in_bytes_str\n const b = new Array(ell);\n const b_0 = H((0, utils_ts_1.concatBytes)(Z_pad, msg, l_i_b_str, i2osp(0, 1), DST_prime));\n b[0] = H((0, utils_ts_1.concatBytes)(b_0, i2osp(1, 1), DST_prime));\n for (let i = 1; i <= ell; i++) {\n const args = [strxor(b_0, b[i - 1]), i2osp(i + 1, 1), DST_prime];\n b[i] = H((0, utils_ts_1.concatBytes)(...args));\n }\n const pseudo_random_bytes = (0, utils_ts_1.concatBytes)(...b);\n return pseudo_random_bytes.slice(0, lenInBytes);\n}\n/**\n * Produces a uniformly random byte string using an extendable-output function (XOF) H.\n * 1. The collision resistance of H MUST be at least k bits.\n * 2. H MUST be an XOF that has been proved indifferentiable from\n * a random oracle under a reasonable cryptographic assumption.\n * [RFC 9380 5.3.2](https://www.rfc-editor.org/rfc/rfc9380#section-5.3.2).\n */\nfunction expand_message_xof(msg, DST, lenInBytes, k, H) {\n (0, utils_ts_1.abytes)(msg);\n anum(lenInBytes);\n DST = normDST(DST);\n // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n // DST = H('H2C-OVERSIZE-DST-' || a_very_long_DST, Math.ceil((lenInBytes * k) / 8));\n if (DST.length > 255) {\n const dkLen = Math.ceil((2 * k) / 8);\n DST = H.create({ dkLen }).update((0, utils_ts_1.utf8ToBytes)('H2C-OVERSIZE-DST-')).update(DST).digest();\n }\n if (lenInBytes > 65535 || DST.length > 255)\n throw new Error('expand_message_xof: invalid lenInBytes');\n return (H.create({ dkLen: lenInBytes })\n .update(msg)\n .update(i2osp(lenInBytes, 2))\n // 2. DST_prime = DST || I2OSP(len(DST), 1)\n .update(DST)\n .update(i2osp(DST.length, 1))\n .digest());\n}\n/**\n * Hashes arbitrary-length byte strings to a list of one or more elements of a finite field F.\n * [RFC 9380 5.2](https://www.rfc-editor.org/rfc/rfc9380#section-5.2).\n * @param msg a byte string containing the message to hash\n * @param count the number of elements of F to output\n * @param options `{DST: string, p: bigint, m: number, k: number, expand: 'xmd' | 'xof', hash: H}`, see above\n * @returns [u_0, ..., u_(count - 1)], a list of field elements.\n */\nfunction hash_to_field(msg, count, options) {\n (0, utils_ts_1._validateObject)(options, {\n p: 'bigint',\n m: 'number',\n k: 'number',\n hash: 'function',\n });\n const { p, k, m, hash, expand, DST } = options;\n if (!(0, utils_ts_1.isHash)(options.hash))\n throw new Error('expected valid hash');\n (0, utils_ts_1.abytes)(msg);\n anum(count);\n const log2p = p.toString(2).length;\n const L = Math.ceil((log2p + k) / 8); // section 5.1 of ietf draft link above\n const len_in_bytes = count * m * L;\n let prb; // pseudo_random_bytes\n if (expand === 'xmd') {\n prb = expand_message_xmd(msg, DST, len_in_bytes, hash);\n }\n else if (expand === 'xof') {\n prb = expand_message_xof(msg, DST, len_in_bytes, k, hash);\n }\n else if (expand === '_internal_pass') {\n // for internal tests only\n prb = msg;\n }\n else {\n throw new Error('expand must be \"xmd\" or \"xof\"');\n }\n const u = new Array(count);\n for (let i = 0; i < count; i++) {\n const e = new Array(m);\n for (let j = 0; j < m; j++) {\n const elm_offset = L * (j + i * m);\n const tv = prb.subarray(elm_offset, elm_offset + L);\n e[j] = (0, modular_ts_1.mod)(os2ip(tv), p);\n }\n u[i] = e;\n }\n return u;\n}\nfunction isogenyMap(field, map) {\n // Make same order as in spec\n const coeff = map.map((i) => Array.from(i).reverse());\n return (x, y) => {\n const [xn, xd, yn, yd] = coeff.map((val) => val.reduce((acc, i) => field.add(field.mul(acc, x), i)));\n // 6.6.3\n // Exceptional cases of iso_map are inputs that cause the denominator of\n // either rational function to evaluate to zero; such cases MUST return\n // the identity point on E.\n const [xd_inv, yd_inv] = (0, modular_ts_1.FpInvertBatch)(field, [xd, yd], true);\n x = field.mul(xn, xd_inv); // xNum / xDen\n y = field.mul(y, field.mul(yn, yd_inv)); // y * (yNum / yDev)\n return { x, y };\n };\n}\nexports._DST_scalar = (0, utils_ts_1.utf8ToBytes)('HashToScalar-');\n/** Creates hash-to-curve methods from EC Point and mapToCurve function. See {@link H2CHasher}. */\nfunction createHasher(Point, mapToCurve, defaults) {\n if (typeof mapToCurve !== 'function')\n throw new Error('mapToCurve() must be defined');\n function map(num) {\n return Point.fromAffine(mapToCurve(num));\n }\n function clear(initial) {\n const P = initial.clearCofactor();\n if (P.equals(Point.ZERO))\n return Point.ZERO; // zero will throw in assert\n P.assertValidity();\n return P;\n }\n return {\n defaults,\n hashToCurve(msg, options) {\n const opts = Object.assign({}, defaults, options);\n const u = hash_to_field(msg, 2, opts);\n const u0 = map(u[0]);\n const u1 = map(u[1]);\n return clear(u0.add(u1));\n },\n encodeToCurve(msg, options) {\n const optsDst = defaults.encodeDST ? { DST: defaults.encodeDST } : {};\n const opts = Object.assign({}, defaults, optsDst, options);\n const u = hash_to_field(msg, 1, opts);\n const u0 = map(u[0]);\n return clear(u0);\n },\n /** See {@link H2CHasher} */\n mapToCurve(scalars) {\n if (!Array.isArray(scalars))\n throw new Error('expected array of bigints');\n for (const i of scalars)\n if (typeof i !== 'bigint')\n throw new Error('expected array of bigints');\n return clear(map(scalars));\n },\n // hash_to_scalar can produce 0: https://www.rfc-editor.org/errata/eid8393\n // RFC 9380, draft-irtf-cfrg-bbs-signatures-08\n hashToScalar(msg, options) {\n // @ts-ignore\n const N = Point.Fn.ORDER;\n const opts = Object.assign({}, defaults, { p: N, m: 1, DST: exports._DST_scalar }, options);\n return hash_to_field(msg, 1, opts)[0][0];\n },\n };\n}\n//# sourceMappingURL=hash-to-curve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNegativeLE = void 0;\nexports.mod = mod;\nexports.pow = pow;\nexports.pow2 = pow2;\nexports.invert = invert;\nexports.tonelliShanks = tonelliShanks;\nexports.FpSqrt = FpSqrt;\nexports.validateField = validateField;\nexports.FpPow = FpPow;\nexports.FpInvertBatch = FpInvertBatch;\nexports.FpDiv = FpDiv;\nexports.FpLegendre = FpLegendre;\nexports.FpIsSquare = FpIsSquare;\nexports.nLength = nLength;\nexports.Field = Field;\nexports.FpSqrtOdd = FpSqrtOdd;\nexports.FpSqrtEven = FpSqrtEven;\nexports.hashToPrivateScalar = hashToPrivateScalar;\nexports.getFieldBytesLength = getFieldBytesLength;\nexports.getMinHashLength = getMinHashLength;\nexports.mapHashToField = mapHashToField;\n/**\n * Utils for modular division and fields.\n * Field over 11 is a finite (Galois) field is integer number operations `mod 11`.\n * There is no division: it is replaced by modular multiplicative inverse.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst utils_ts_1 = require(\"../utils.js\");\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = /* @__PURE__ */ BigInt(2), _3n = /* @__PURE__ */ BigInt(3);\n// prettier-ignore\nconst _4n = /* @__PURE__ */ BigInt(4), _5n = /* @__PURE__ */ BigInt(5), _7n = /* @__PURE__ */ BigInt(7);\n// prettier-ignore\nconst _8n = /* @__PURE__ */ BigInt(8), _9n = /* @__PURE__ */ BigInt(9), _16n = /* @__PURE__ */ BigInt(16);\n// Calculates a modulo b\nfunction mod(a, b) {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\n/**\n * Efficiently raise num to power and do modular division.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\nfunction pow(num, power, modulo) {\n return FpPow(Field(modulo), num, power);\n}\n/** Does `x^(2^power)` mod p. `pow2(30, 4)` == `30^(2^4)` */\nfunction pow2(x, power, modulo) {\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= modulo;\n }\n return res;\n}\n/**\n * Inverses number over modulo.\n * Implemented using [Euclidean GCD](https://brilliant.org/wiki/extended-euclidean-algorithm/).\n */\nfunction invert(number, modulo) {\n if (number === _0n)\n throw new Error('invert: expected non-zero number');\n if (modulo <= _0n)\n throw new Error('invert: expected positive modulus, got ' + modulo);\n // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n let a = mod(number, modulo);\n let b = modulo;\n // prettier-ignore\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n // JIT applies optimization if those two lines follow each other\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n // prettier-ignore\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\nfunction assertIsSquare(Fp, root, n) {\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n}\n// Not all roots are possible! Example which will throw:\n// const NUM =\n// n = 72057594037927816n;\n// Fp = Field(BigInt('0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab'));\nfunction sqrt3mod4(Fp, n) {\n const p1div4 = (Fp.ORDER + _1n) / _4n;\n const root = Fp.pow(n, p1div4);\n assertIsSquare(Fp, root, n);\n return root;\n}\nfunction sqrt5mod8(Fp, n) {\n const p5div8 = (Fp.ORDER - _5n) / _8n;\n const n2 = Fp.mul(n, _2n);\n const v = Fp.pow(n2, p5div8);\n const nv = Fp.mul(n, v);\n const i = Fp.mul(Fp.mul(nv, _2n), v);\n const root = Fp.mul(nv, Fp.sub(i, Fp.ONE));\n assertIsSquare(Fp, root, n);\n return root;\n}\n// Based on RFC9380, Kong algorithm\n// prettier-ignore\nfunction sqrt9mod16(P) {\n const Fp_ = Field(P);\n const tn = tonelliShanks(P);\n const c1 = tn(Fp_, Fp_.neg(Fp_.ONE)); // 1. c1 = sqrt(-1) in F, i.e., (c1^2) == -1 in F\n const c2 = tn(Fp_, c1); // 2. c2 = sqrt(c1) in F, i.e., (c2^2) == c1 in F\n const c3 = tn(Fp_, Fp_.neg(c1)); // 3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n const c4 = (P + _7n) / _16n; // 4. c4 = (q + 7) / 16 # Integer arithmetic\n return (Fp, n) => {\n let tv1 = Fp.pow(n, c4); // 1. tv1 = x^c4\n let tv2 = Fp.mul(tv1, c1); // 2. tv2 = c1 * tv1\n const tv3 = Fp.mul(tv1, c2); // 3. tv3 = c2 * tv1\n const tv4 = Fp.mul(tv1, c3); // 4. tv4 = c3 * tv1\n const e1 = Fp.eql(Fp.sqr(tv2), n); // 5. e1 = (tv2^2) == x\n const e2 = Fp.eql(Fp.sqr(tv3), n); // 6. e2 = (tv3^2) == x\n tv1 = Fp.cmov(tv1, tv2, e1); // 7. tv1 = CMOV(tv1, tv2, e1) # Select tv2 if (tv2^2) == x\n tv2 = Fp.cmov(tv4, tv3, e2); // 8. tv2 = CMOV(tv4, tv3, e2) # Select tv3 if (tv3^2) == x\n const e3 = Fp.eql(Fp.sqr(tv2), n); // 9. e3 = (tv2^2) == x\n const root = Fp.cmov(tv1, tv2, e3); // 10. z = CMOV(tv1, tv2, e3) # Select sqrt from tv1 & tv2\n assertIsSquare(Fp, root, n);\n return root;\n };\n}\n/**\n * Tonelli-Shanks square root search algorithm.\n * 1. https://eprint.iacr.org/2012/685.pdf (page 12)\n * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks\n * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nfunction tonelliShanks(P) {\n // Initialization (precomputation).\n // Caching initialization could boost perf by 7%.\n if (P < _3n)\n throw new Error('sqrt is not defined for small field');\n // Factor P - 1 = Q * 2^S, where Q is odd\n let Q = P - _1n;\n let S = 0;\n while (Q % _2n === _0n) {\n Q /= _2n;\n S++;\n }\n // Find the first quadratic non-residue Z >= 2\n let Z = _2n;\n const _Fp = Field(P);\n while (FpLegendre(_Fp, Z) === 1) {\n // Basic primality test for P. After x iterations, chance of\n // not finding quadratic non-residue is 2^x, so 2^1000.\n if (Z++ > 1000)\n throw new Error('Cannot find square root: probably non-prime P');\n }\n // Fast-path; usually done before Z, but we do \"primality test\".\n if (S === 1)\n return sqrt3mod4;\n // Slow-path\n // TODO: test on Fp2 and others\n let cc = _Fp.pow(Z, Q); // c = z^Q\n const Q1div2 = (Q + _1n) / _2n;\n return function tonelliSlow(Fp, n) {\n if (Fp.is0(n))\n return n;\n // Check if n is a quadratic residue using Legendre symbol\n if (FpLegendre(Fp, n) !== 1)\n throw new Error('Cannot find square root');\n // Initialize variables for the main loop\n let M = S;\n let c = Fp.mul(Fp.ONE, cc); // c = z^Q, move cc from field _Fp into field Fp\n let t = Fp.pow(n, Q); // t = n^Q, first guess at the fudge factor\n let R = Fp.pow(n, Q1div2); // R = n^((Q+1)/2), first guess at the square root\n // Main loop\n // while t != 1\n while (!Fp.eql(t, Fp.ONE)) {\n if (Fp.is0(t))\n return Fp.ZERO; // if t=0 return R=0\n let i = 1;\n // Find the smallest i >= 1 such that t^(2^i) ≡ 1 (mod P)\n let t_tmp = Fp.sqr(t); // t^(2^1)\n while (!Fp.eql(t_tmp, Fp.ONE)) {\n i++;\n t_tmp = Fp.sqr(t_tmp); // t^(2^2)...\n if (i === M)\n throw new Error('Cannot find square root');\n }\n // Calculate the exponent for b: 2^(M - i - 1)\n const exponent = _1n << BigInt(M - i - 1); // bigint is important\n const b = Fp.pow(c, exponent); // b = 2^(M - i - 1)\n // Update variables\n M = i;\n c = Fp.sqr(b); // c = b^2\n t = Fp.mul(t, c); // t = (t * b^2)\n R = Fp.mul(R, b); // R = R*b\n }\n return R;\n };\n}\n/**\n * Square root for a finite field. Will try optimized versions first:\n *\n * 1. P ≡ 3 (mod 4)\n * 2. P ≡ 5 (mod 8)\n * 3. P ≡ 9 (mod 16)\n * 4. Tonelli-Shanks algorithm\n *\n * Different algorithms can give different roots, it is up to user to decide which one they want.\n * For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n */\nfunction FpSqrt(P) {\n // P ≡ 3 (mod 4) => √n = n^((P+1)/4)\n if (P % _4n === _3n)\n return sqrt3mod4;\n // P ≡ 5 (mod 8) => Atkin algorithm, page 10 of https://eprint.iacr.org/2012/685.pdf\n if (P % _8n === _5n)\n return sqrt5mod8;\n // P ≡ 9 (mod 16) => Kong algorithm, page 11 of https://eprint.iacr.org/2012/685.pdf (algorithm 4)\n if (P % _16n === _9n)\n return sqrt9mod16(P);\n // Tonelli-Shanks algorithm\n return tonelliShanks(P);\n}\n// Little-endian check for first LE bit (last BE bit);\nconst isNegativeLE = (num, modulo) => (mod(num, modulo) & _1n) === _1n;\nexports.isNegativeLE = isNegativeLE;\n// prettier-ignore\nconst FIELD_FIELDS = [\n 'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr',\n 'eql', 'add', 'sub', 'mul', 'pow', 'div',\n 'addN', 'subN', 'mulN', 'sqrN'\n];\nfunction validateField(field) {\n const initial = {\n ORDER: 'bigint',\n MASK: 'bigint',\n BYTES: 'number',\n BITS: 'number',\n };\n const opts = FIELD_FIELDS.reduce((map, val) => {\n map[val] = 'function';\n return map;\n }, initial);\n (0, utils_ts_1._validateObject)(field, opts);\n // const max = 16384;\n // if (field.BYTES < 1 || field.BYTES > max) throw new Error('invalid field');\n // if (field.BITS < 1 || field.BITS > 8 * max) throw new Error('invalid field');\n return field;\n}\n// Generic field functions\n/**\n * Same as `pow` but for Fp: non-constant-time.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n */\nfunction FpPow(Fp, num, power) {\n if (power < _0n)\n throw new Error('invalid exponent, negatives unsupported');\n if (power === _0n)\n return Fp.ONE;\n if (power === _1n)\n return num;\n let p = Fp.ONE;\n let d = num;\n while (power > _0n) {\n if (power & _1n)\n p = Fp.mul(p, d);\n d = Fp.sqr(d);\n power >>= _1n;\n }\n return p;\n}\n/**\n * Efficiently invert an array of Field elements.\n * Exception-free. Will return `undefined` for 0 elements.\n * @param passZero map 0 to 0 (instead of undefined)\n */\nfunction FpInvertBatch(Fp, nums, passZero = false) {\n const inverted = new Array(nums.length).fill(passZero ? Fp.ZERO : undefined);\n // Walk from first to last, multiply them by each other MOD p\n const multipliedAcc = nums.reduce((acc, num, i) => {\n if (Fp.is0(num))\n return acc;\n inverted[i] = acc;\n return Fp.mul(acc, num);\n }, Fp.ONE);\n // Invert last element\n const invertedAcc = Fp.inv(multipliedAcc);\n // Walk from last to first, multiply them by inverted each other MOD p\n nums.reduceRight((acc, num, i) => {\n if (Fp.is0(num))\n return acc;\n inverted[i] = Fp.mul(acc, inverted[i]);\n return Fp.mul(acc, num);\n }, invertedAcc);\n return inverted;\n}\n// TODO: remove\nfunction FpDiv(Fp, lhs, rhs) {\n return Fp.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, Fp.ORDER) : Fp.inv(rhs));\n}\n/**\n * Legendre symbol.\n * Legendre constant is used to calculate Legendre symbol (a | p)\n * which denotes the value of a^((p-1)/2) (mod p).\n *\n * * (a | p) ≡ 1 if a is a square (mod p), quadratic residue\n * * (a | p) ≡ -1 if a is not a square (mod p), quadratic non residue\n * * (a | p) ≡ 0 if a ≡ 0 (mod p)\n */\nfunction FpLegendre(Fp, n) {\n // We can use 3rd argument as optional cache of this value\n // but seems unneeded for now. The operation is very fast.\n const p1mod2 = (Fp.ORDER - _1n) / _2n;\n const powered = Fp.pow(n, p1mod2);\n const yes = Fp.eql(powered, Fp.ONE);\n const zero = Fp.eql(powered, Fp.ZERO);\n const no = Fp.eql(powered, Fp.neg(Fp.ONE));\n if (!yes && !zero && !no)\n throw new Error('invalid Legendre symbol result');\n return yes ? 1 : zero ? 0 : -1;\n}\n// This function returns True whenever the value x is a square in the field F.\nfunction FpIsSquare(Fp, n) {\n const l = FpLegendre(Fp, n);\n return l === 1;\n}\n// CURVE.n lengths\nfunction nLength(n, nBitLength) {\n // Bit size, byte size of CURVE.n\n if (nBitLength !== undefined)\n (0, utils_ts_1.anumber)(nBitLength);\n const _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length;\n const nByteLength = Math.ceil(_nBitLength / 8);\n return { nBitLength: _nBitLength, nByteLength };\n}\n/**\n * Creates a finite field. Major performance optimizations:\n * * 1. Denormalized operations like mulN instead of mul.\n * * 2. Identical object shape: never add or remove keys.\n * * 3. `Object.freeze`.\n * Fragile: always run a benchmark on a change.\n * Security note: operations don't check 'isValid' for all elements for performance reasons,\n * it is caller responsibility to check this.\n * This is low-level code, please make sure you know what you're doing.\n *\n * Note about field properties:\n * * CHARACTERISTIC p = prime number, number of elements in main subgroup.\n * * ORDER q = similar to cofactor in curves, may be composite `q = p^m`.\n *\n * @param ORDER field order, probably prime, or could be composite\n * @param bitLen how many bits the field consumes\n * @param isLE (default: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\nfunction Field(ORDER, bitLenOrOpts, // TODO: use opts only in v2?\nisLE = false, opts = {}) {\n if (ORDER <= _0n)\n throw new Error('invalid field: expected ORDER > 0, got ' + ORDER);\n let _nbitLength = undefined;\n let _sqrt = undefined;\n let modFromBytes = false;\n let allowedLengths = undefined;\n if (typeof bitLenOrOpts === 'object' && bitLenOrOpts != null) {\n if (opts.sqrt || isLE)\n throw new Error('cannot specify opts in two arguments');\n const _opts = bitLenOrOpts;\n if (_opts.BITS)\n _nbitLength = _opts.BITS;\n if (_opts.sqrt)\n _sqrt = _opts.sqrt;\n if (typeof _opts.isLE === 'boolean')\n isLE = _opts.isLE;\n if (typeof _opts.modFromBytes === 'boolean')\n modFromBytes = _opts.modFromBytes;\n allowedLengths = _opts.allowedLengths;\n }\n else {\n if (typeof bitLenOrOpts === 'number')\n _nbitLength = bitLenOrOpts;\n if (opts.sqrt)\n _sqrt = opts.sqrt;\n }\n const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, _nbitLength);\n if (BYTES > 2048)\n throw new Error('invalid field: expected ORDER of <= 2048 bytes');\n let sqrtP; // cached sqrtP\n const f = Object.freeze({\n ORDER,\n isLE,\n BITS,\n BYTES,\n MASK: (0, utils_ts_1.bitMask)(BITS),\n ZERO: _0n,\n ONE: _1n,\n allowedLengths: allowedLengths,\n create: (num) => mod(num, ORDER),\n isValid: (num) => {\n if (typeof num !== 'bigint')\n throw new Error('invalid field element: expected bigint, got ' + typeof num);\n return _0n <= num && num < ORDER; // 0 is valid element, but it's not invertible\n },\n is0: (num) => num === _0n,\n // is valid and invertible\n isValidNot0: (num) => !f.is0(num) && f.isValid(num),\n isOdd: (num) => (num & _1n) === _1n,\n neg: (num) => mod(-num, ORDER),\n eql: (lhs, rhs) => lhs === rhs,\n sqr: (num) => mod(num * num, ORDER),\n add: (lhs, rhs) => mod(lhs + rhs, ORDER),\n sub: (lhs, rhs) => mod(lhs - rhs, ORDER),\n mul: (lhs, rhs) => mod(lhs * rhs, ORDER),\n pow: (num, power) => FpPow(f, num, power),\n div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER),\n // Same as above, but doesn't normalize\n sqrN: (num) => num * num,\n addN: (lhs, rhs) => lhs + rhs,\n subN: (lhs, rhs) => lhs - rhs,\n mulN: (lhs, rhs) => lhs * rhs,\n inv: (num) => invert(num, ORDER),\n sqrt: _sqrt ||\n ((n) => {\n if (!sqrtP)\n sqrtP = FpSqrt(ORDER);\n return sqrtP(f, n);\n }),\n toBytes: (num) => (isLE ? (0, utils_ts_1.numberToBytesLE)(num, BYTES) : (0, utils_ts_1.numberToBytesBE)(num, BYTES)),\n fromBytes: (bytes, skipValidation = true) => {\n if (allowedLengths) {\n if (!allowedLengths.includes(bytes.length) || bytes.length > BYTES) {\n throw new Error('Field.fromBytes: expected ' + allowedLengths + ' bytes, got ' + bytes.length);\n }\n const padded = new Uint8Array(BYTES);\n // isLE add 0 to right, !isLE to the left.\n padded.set(bytes, isLE ? 0 : padded.length - bytes.length);\n bytes = padded;\n }\n if (bytes.length !== BYTES)\n throw new Error('Field.fromBytes: expected ' + BYTES + ' bytes, got ' + bytes.length);\n let scalar = isLE ? (0, utils_ts_1.bytesToNumberLE)(bytes) : (0, utils_ts_1.bytesToNumberBE)(bytes);\n if (modFromBytes)\n scalar = mod(scalar, ORDER);\n if (!skipValidation)\n if (!f.isValid(scalar))\n throw new Error('invalid field element: outside of range 0..ORDER');\n // NOTE: we don't validate scalar here, please use isValid. This done such way because some\n // protocol may allow non-reduced scalar that reduced later or changed some other way.\n return scalar;\n },\n // TODO: we don't need it here, move out to separate fn\n invertBatch: (lst) => FpInvertBatch(f, lst),\n // We can't move this out because Fp6, Fp12 implement it\n // and it's unclear what to return in there.\n cmov: (a, b, c) => (c ? b : a),\n });\n return Object.freeze(f);\n}\n// Generic random scalar, we can do same for other fields if via Fp2.mul(Fp2.ONE, Fp2.random)?\n// This allows unsafe methods like ignore bias or zero. These unsafe, but often used in different protocols (if deterministic RNG).\n// which mean we cannot force this via opts.\n// Not sure what to do with randomBytes, we can accept it inside opts if wanted.\n// Probably need to export getMinHashLength somewhere?\n// random(bytes?: Uint8Array, unsafeAllowZero = false, unsafeAllowBias = false) {\n// const LEN = !unsafeAllowBias ? getMinHashLength(ORDER) : BYTES;\n// if (bytes === undefined) bytes = randomBytes(LEN); // _opts.randomBytes?\n// const num = isLE ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes);\n// // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n// const reduced = unsafeAllowZero ? mod(num, ORDER) : mod(num, ORDER - _1n) + _1n;\n// return reduced;\n// },\nfunction FpSqrtOdd(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(\"Field doesn't have isOdd\");\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? root : Fp.neg(root);\n}\nfunction FpSqrtEven(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(\"Field doesn't have isOdd\");\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? Fp.neg(root) : root;\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Same as mapKeyToField, but accepts less bytes (40 instead of 48 for 32-byte field).\n * Which makes it slightly more biased, less secure.\n * @deprecated use `mapKeyToField` instead\n */\nfunction hashToPrivateScalar(hash, groupOrder, isLE = false) {\n hash = (0, utils_ts_1.ensureBytes)('privateHash', hash);\n const hashLen = hash.length;\n const minLen = nLength(groupOrder).nByteLength + 8;\n if (minLen < 24 || hashLen < minLen || hashLen > 1024)\n throw new Error('hashToPrivateScalar: expected ' + minLen + '-1024 bytes of input, got ' + hashLen);\n const num = isLE ? (0, utils_ts_1.bytesToNumberLE)(hash) : (0, utils_ts_1.bytesToNumberBE)(hash);\n return mod(num, groupOrder - _1n) + _1n;\n}\n/**\n * Returns total number of bytes consumed by the field element.\n * For example, 32 bytes for usual 256-bit weierstrass curve.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of field\n */\nfunction getFieldBytesLength(fieldOrder) {\n if (typeof fieldOrder !== 'bigint')\n throw new Error('field order must be bigint');\n const bitLength = fieldOrder.toString(2).length;\n return Math.ceil(bitLength / 8);\n}\n/**\n * Returns minimal amount of bytes that can be safely reduced\n * by field order.\n * Should be 2^-128 for 128-bit curve such as P256.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of target hash\n */\nfunction getMinHashLength(fieldOrder) {\n const length = getFieldBytesLength(fieldOrder);\n return length + Math.ceil(length / 2);\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Can take (n + n/2) or more bytes of uniform input e.g. from CSPRNG or KDF\n * and convert them into private scalar, with the modulo bias being negligible.\n * Needs at least 48 bytes of input for 32-byte private key.\n * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/\n * FIPS 186-5, A.2 https://csrc.nist.gov/publications/detail/fips/186/5/final\n * RFC 9380, https://www.rfc-editor.org/rfc/rfc9380#section-5\n * @param hash hash output from SHA3 or a similar function\n * @param groupOrder size of subgroup - (e.g. secp256k1.CURVE.n)\n * @param isLE interpret hash bytes as LE num\n * @returns valid private scalar\n */\nfunction mapHashToField(key, fieldOrder, isLE = false) {\n const len = key.length;\n const fieldLen = getFieldBytesLength(fieldOrder);\n const minLen = getMinHashLength(fieldOrder);\n // No small numbers: need to understand bias story. No huge numbers: easier to detect JS timings.\n if (len < 16 || len < minLen || len > 1024)\n throw new Error('expected ' + minLen + '-1024 bytes of input, got ' + len);\n const num = isLE ? (0, utils_ts_1.bytesToNumberLE)(key) : (0, utils_ts_1.bytesToNumberBE)(key);\n // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n const reduced = mod(num, fieldOrder - _1n) + _1n;\n return isLE ? (0, utils_ts_1.numberToBytesLE)(reduced, fieldLen) : (0, utils_ts_1.numberToBytesBE)(reduced, fieldLen);\n}\n//# sourceMappingURL=modular.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DER = exports.DERErr = void 0;\nexports._splitEndoScalar = _splitEndoScalar;\nexports._normFnElement = _normFnElement;\nexports.weierstrassN = weierstrassN;\nexports.SWUFpSqrtRatio = SWUFpSqrtRatio;\nexports.mapToCurveSimpleSWU = mapToCurveSimpleSWU;\nexports.ecdh = ecdh;\nexports.ecdsa = ecdsa;\nexports.weierstrassPoints = weierstrassPoints;\nexports._legacyHelperEquat = _legacyHelperEquat;\nexports.weierstrass = weierstrass;\n/**\n * Short Weierstrass curve methods. The formula is: y² = x³ + ax + b.\n *\n * ### Design rationale for types\n *\n * * Interaction between classes from different curves should fail:\n * `k256.Point.BASE.add(p256.Point.BASE)`\n * * For this purpose we want to use `instanceof` operator, which is fast and works during runtime\n * * Different calls of `curve()` would return different classes -\n * `curve(params) !== curve(params)`: if somebody decided to monkey-patch their curve,\n * it won't affect others\n *\n * TypeScript can't infer types for classes created inside a function. Classes is one instance\n * of nominative types in TypeScript and interfaces only check for shape, so it's hard to create\n * unique type for every function call.\n *\n * We can use generic types via some param, like curve opts, but that would:\n * 1. Enable interaction between `curve(params)` and `curve(params)` (curves of same params)\n * which is hard to debug.\n * 2. Params can be generic and we can't enforce them to be constant value:\n * if somebody creates curve from non-constant params,\n * it would be allowed to interact with other curves with non-constant params\n *\n * @todo https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-7.html#unique-symbol\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst hmac_js_1 = require(\"@noble/hashes/hmac.js\");\nconst utils_1 = require(\"@noble/hashes/utils\");\nconst utils_ts_1 = require(\"../utils.js\");\nconst curve_ts_1 = require(\"./curve.js\");\nconst modular_ts_1 = require(\"./modular.js\");\n// We construct basis in such way that den is always positive and equals n, but num sign depends on basis (not on secret value)\nconst divNearest = (num, den) => (num + (num >= 0 ? den : -den) / _2n) / den;\n/**\n * Splits scalar for GLV endomorphism.\n */\nfunction _splitEndoScalar(k, basis, n) {\n // Split scalar into two such that part is ~half bits: `abs(part) < sqrt(N)`\n // Since part can be negative, we need to do this on point.\n // TODO: verifyScalar function which consumes lambda\n const [[a1, b1], [a2, b2]] = basis;\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n // |k1|/|k2| is < sqrt(N), but can be negative.\n // If we do `k1 mod N`, we'll get big scalar (`> sqrt(N)`): so, we do cheaper negation instead.\n let k1 = k - c1 * a1 - c2 * a2;\n let k2 = -c1 * b1 - c2 * b2;\n const k1neg = k1 < _0n;\n const k2neg = k2 < _0n;\n if (k1neg)\n k1 = -k1;\n if (k2neg)\n k2 = -k2;\n // Double check that resulting scalar less than half bits of N: otherwise wNAF will fail.\n // This should only happen on wrong basises. Also, math inside is too complex and I don't trust it.\n const MAX_NUM = (0, utils_ts_1.bitMask)(Math.ceil((0, utils_ts_1.bitLen)(n) / 2)) + _1n; // Half bits of N\n if (k1 < _0n || k1 >= MAX_NUM || k2 < _0n || k2 >= MAX_NUM) {\n throw new Error('splitScalar (endomorphism): failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n}\nfunction validateSigFormat(format) {\n if (!['compact', 'recovered', 'der'].includes(format))\n throw new Error('Signature format must be \"compact\", \"recovered\", or \"der\"');\n return format;\n}\nfunction validateSigOpts(opts, def) {\n const optsn = {};\n for (let optName of Object.keys(def)) {\n // @ts-ignore\n optsn[optName] = opts[optName] === undefined ? def[optName] : opts[optName];\n }\n (0, utils_ts_1._abool2)(optsn.lowS, 'lowS');\n (0, utils_ts_1._abool2)(optsn.prehash, 'prehash');\n if (optsn.format !== undefined)\n validateSigFormat(optsn.format);\n return optsn;\n}\nclass DERErr extends Error {\n constructor(m = '') {\n super(m);\n }\n}\nexports.DERErr = DERErr;\n/**\n * ASN.1 DER encoding utilities. ASN is very complex & fragile. Format:\n *\n * [0x30 (SEQUENCE), bytelength, 0x02 (INTEGER), intLength, R, 0x02 (INTEGER), intLength, S]\n *\n * Docs: https://letsencrypt.org/docs/a-warm-welcome-to-asn1-and-der/, https://luca.ntop.org/Teaching/Appunti/asn1.html\n */\nexports.DER = {\n // asn.1 DER encoding utils\n Err: DERErr,\n // Basic building block is TLV (Tag-Length-Value)\n _tlv: {\n encode: (tag, data) => {\n const { Err: E } = exports.DER;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length & 1)\n throw new E('tlv.encode: unpadded data');\n const dataLen = data.length / 2;\n const len = (0, utils_ts_1.numberToHexUnpadded)(dataLen);\n if ((len.length / 2) & 128)\n throw new E('tlv.encode: long form length too big');\n // length of length with long form flag\n const lenLen = dataLen > 127 ? (0, utils_ts_1.numberToHexUnpadded)((len.length / 2) | 128) : '';\n const t = (0, utils_ts_1.numberToHexUnpadded)(tag);\n return t + lenLen + len + data;\n },\n // v - value, l - left bytes (unparsed)\n decode(tag, data) {\n const { Err: E } = exports.DER;\n let pos = 0;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length < 2 || data[pos++] !== tag)\n throw new E('tlv.decode: wrong tlv');\n const first = data[pos++];\n const isLong = !!(first & 128); // First bit of first length byte is flag for short/long form\n let length = 0;\n if (!isLong)\n length = first;\n else {\n // Long form: [longFlag(1bit), lengthLength(7bit), length (BE)]\n const lenLen = first & 127;\n if (!lenLen)\n throw new E('tlv.decode(long): indefinite length not supported');\n if (lenLen > 4)\n throw new E('tlv.decode(long): byte length is too big'); // this will overflow u32 in js\n const lengthBytes = data.subarray(pos, pos + lenLen);\n if (lengthBytes.length !== lenLen)\n throw new E('tlv.decode: length bytes not complete');\n if (lengthBytes[0] === 0)\n throw new E('tlv.decode(long): zero leftmost byte');\n for (const b of lengthBytes)\n length = (length << 8) | b;\n pos += lenLen;\n if (length < 128)\n throw new E('tlv.decode(long): not minimal encoding');\n }\n const v = data.subarray(pos, pos + length);\n if (v.length !== length)\n throw new E('tlv.decode: wrong value length');\n return { v, l: data.subarray(pos + length) };\n },\n },\n // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n // since we always use positive integers here. It must always be empty:\n // - add zero byte if exists\n // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n _int: {\n encode(num) {\n const { Err: E } = exports.DER;\n if (num < _0n)\n throw new E('integer: negative integers are not allowed');\n let hex = (0, utils_ts_1.numberToHexUnpadded)(num);\n // Pad with zero byte if negative flag is present\n if (Number.parseInt(hex[0], 16) & 0b1000)\n hex = '00' + hex;\n if (hex.length & 1)\n throw new E('unexpected DER parsing assertion: unpadded hex');\n return hex;\n },\n decode(data) {\n const { Err: E } = exports.DER;\n if (data[0] & 128)\n throw new E('invalid signature integer: negative');\n if (data[0] === 0x00 && !(data[1] & 128))\n throw new E('invalid signature integer: unnecessary leading zero');\n return (0, utils_ts_1.bytesToNumberBE)(data);\n },\n },\n toSig(hex) {\n // parse DER signature\n const { Err: E, _int: int, _tlv: tlv } = exports.DER;\n const data = (0, utils_ts_1.ensureBytes)('signature', hex);\n const { v: seqBytes, l: seqLeftBytes } = tlv.decode(0x30, data);\n if (seqLeftBytes.length)\n throw new E('invalid signature: left bytes after parsing');\n const { v: rBytes, l: rLeftBytes } = tlv.decode(0x02, seqBytes);\n const { v: sBytes, l: sLeftBytes } = tlv.decode(0x02, rLeftBytes);\n if (sLeftBytes.length)\n throw new E('invalid signature: left bytes after parsing');\n return { r: int.decode(rBytes), s: int.decode(sBytes) };\n },\n hexFromSig(sig) {\n const { _tlv: tlv, _int: int } = exports.DER;\n const rs = tlv.encode(0x02, int.encode(sig.r));\n const ss = tlv.encode(0x02, int.encode(sig.s));\n const seq = rs + ss;\n return tlv.encode(0x30, seq);\n },\n};\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3), _4n = BigInt(4);\nfunction _normFnElement(Fn, key) {\n const { BYTES: expected } = Fn;\n let num;\n if (typeof key === 'bigint') {\n num = key;\n }\n else {\n let bytes = (0, utils_ts_1.ensureBytes)('private key', key);\n try {\n num = Fn.fromBytes(bytes);\n }\n catch (error) {\n throw new Error(`invalid private key: expected ui8a of size ${expected}, got ${typeof key}`);\n }\n }\n if (!Fn.isValidNot0(num))\n throw new Error('invalid private key: out of range [1..N-1]');\n return num;\n}\n/**\n * Creates weierstrass Point constructor, based on specified curve options.\n *\n * @example\n```js\nconst opts = {\n p: BigInt('0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff'),\n n: BigInt('0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551'),\n h: BigInt(1),\n a: BigInt('0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc'),\n b: BigInt('0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b'),\n Gx: BigInt('0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296'),\n Gy: BigInt('0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5'),\n};\nconst p256_Point = weierstrass(opts);\n```\n */\nfunction weierstrassN(params, extraOpts = {}) {\n const validated = (0, curve_ts_1._createCurveFields)('weierstrass', params, extraOpts);\n const { Fp, Fn } = validated;\n let CURVE = validated.CURVE;\n const { h: cofactor, n: CURVE_ORDER } = CURVE;\n (0, utils_ts_1._validateObject)(extraOpts, {}, {\n allowInfinityPoint: 'boolean',\n clearCofactor: 'function',\n isTorsionFree: 'function',\n fromBytes: 'function',\n toBytes: 'function',\n endo: 'object',\n wrapPrivateKey: 'boolean',\n });\n const { endo } = extraOpts;\n if (endo) {\n // validateObject(endo, { beta: 'bigint', splitScalar: 'function' });\n if (!Fp.is0(CURVE.a) || typeof endo.beta !== 'bigint' || !Array.isArray(endo.basises)) {\n throw new Error('invalid endo: expected \"beta\": bigint and \"basises\": array');\n }\n }\n const lengths = getWLengths(Fp, Fn);\n function assertCompressionIsSupported() {\n if (!Fp.isOdd)\n throw new Error('compression is not supported: Field does not have .isOdd()');\n }\n // Implements IEEE P1363 point encoding\n function pointToBytes(_c, point, isCompressed) {\n const { x, y } = point.toAffine();\n const bx = Fp.toBytes(x);\n (0, utils_ts_1._abool2)(isCompressed, 'isCompressed');\n if (isCompressed) {\n assertCompressionIsSupported();\n const hasEvenY = !Fp.isOdd(y);\n return (0, utils_ts_1.concatBytes)(pprefix(hasEvenY), bx);\n }\n else {\n return (0, utils_ts_1.concatBytes)(Uint8Array.of(0x04), bx, Fp.toBytes(y));\n }\n }\n function pointFromBytes(bytes) {\n (0, utils_ts_1._abytes2)(bytes, undefined, 'Point');\n const { publicKey: comp, publicKeyUncompressed: uncomp } = lengths; // e.g. for 32-byte: 33, 65\n const length = bytes.length;\n const head = bytes[0];\n const tail = bytes.subarray(1);\n // No actual validation is done here: use .assertValidity()\n if (length === comp && (head === 0x02 || head === 0x03)) {\n const x = Fp.fromBytes(tail);\n if (!Fp.isValid(x))\n throw new Error('bad point: is not on curve, wrong x');\n const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n let y;\n try {\n y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n }\n catch (sqrtError) {\n const err = sqrtError instanceof Error ? ': ' + sqrtError.message : '';\n throw new Error('bad point: is not on curve, sqrt error' + err);\n }\n assertCompressionIsSupported();\n const isYOdd = Fp.isOdd(y); // (y & _1n) === _1n;\n const isHeadOdd = (head & 1) === 1; // ECDSA-specific\n if (isHeadOdd !== isYOdd)\n y = Fp.neg(y);\n return { x, y };\n }\n else if (length === uncomp && head === 0x04) {\n // TODO: more checks\n const L = Fp.BYTES;\n const x = Fp.fromBytes(tail.subarray(0, L));\n const y = Fp.fromBytes(tail.subarray(L, L * 2));\n if (!isValidXY(x, y))\n throw new Error('bad point: is not on curve');\n return { x, y };\n }\n else {\n throw new Error(`bad point: got length ${length}, expected compressed=${comp} or uncompressed=${uncomp}`);\n }\n }\n const encodePoint = extraOpts.toBytes || pointToBytes;\n const decodePoint = extraOpts.fromBytes || pointFromBytes;\n function weierstrassEquation(x) {\n const x2 = Fp.sqr(x); // x * x\n const x3 = Fp.mul(x2, x); // x² * x\n return Fp.add(Fp.add(x3, Fp.mul(x, CURVE.a)), CURVE.b); // x³ + a * x + b\n }\n // TODO: move top-level\n /** Checks whether equation holds for given x, y: y² == x³ + ax + b */\n function isValidXY(x, y) {\n const left = Fp.sqr(y); // y²\n const right = weierstrassEquation(x); // x³ + ax + b\n return Fp.eql(left, right);\n }\n // Validate whether the passed curve params are valid.\n // Test 1: equation y² = x³ + ax + b should work for generator point.\n if (!isValidXY(CURVE.Gx, CURVE.Gy))\n throw new Error('bad curve params: generator point');\n // Test 2: discriminant Δ part should be non-zero: 4a³ + 27b² != 0.\n // Guarantees curve is genus-1, smooth (non-singular).\n const _4a3 = Fp.mul(Fp.pow(CURVE.a, _3n), _4n);\n const _27b2 = Fp.mul(Fp.sqr(CURVE.b), BigInt(27));\n if (Fp.is0(Fp.add(_4a3, _27b2)))\n throw new Error('bad curve params: a or b');\n /** Asserts coordinate is valid: 0 <= n < Fp.ORDER. */\n function acoord(title, n, banZero = false) {\n if (!Fp.isValid(n) || (banZero && Fp.is0(n)))\n throw new Error(`bad point coordinate ${title}`);\n return n;\n }\n function aprjpoint(other) {\n if (!(other instanceof Point))\n throw new Error('ProjectivePoint expected');\n }\n function splitEndoScalarN(k) {\n if (!endo || !endo.basises)\n throw new Error('no endo');\n return _splitEndoScalar(k, endo.basises, Fn.ORDER);\n }\n // Memoized toAffine / validity check. They are heavy. Points are immutable.\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (X, Y, Z) ∋ (x=X/Z, y=Y/Z)\n const toAffineMemo = (0, utils_ts_1.memoized)((p, iz) => {\n const { X, Y, Z } = p;\n // Fast-path for normalized points\n if (Fp.eql(Z, Fp.ONE))\n return { x: X, y: Y };\n const is0 = p.is0();\n // If invZ was 0, we return zero point. However we still want to execute\n // all operations, so we replace invZ with a random number, 1.\n if (iz == null)\n iz = is0 ? Fp.ONE : Fp.inv(Z);\n const x = Fp.mul(X, iz);\n const y = Fp.mul(Y, iz);\n const zz = Fp.mul(Z, iz);\n if (is0)\n return { x: Fp.ZERO, y: Fp.ZERO };\n if (!Fp.eql(zz, Fp.ONE))\n throw new Error('invZ was invalid');\n return { x, y };\n });\n // NOTE: on exception this will crash 'cached' and no value will be set.\n // Otherwise true will be return\n const assertValidMemo = (0, utils_ts_1.memoized)((p) => {\n if (p.is0()) {\n // (0, 1, 0) aka ZERO is invalid in most contexts.\n // In BLS, ZERO can be serialized, so we allow it.\n // (0, 0, 0) is invalid representation of ZERO.\n if (extraOpts.allowInfinityPoint && !Fp.is0(p.Y))\n return;\n throw new Error('bad point: ZERO');\n }\n // Some 3rd-party test vectors require different wording between here & `fromCompressedHex`\n const { x, y } = p.toAffine();\n if (!Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('bad point: x or y not field elements');\n if (!isValidXY(x, y))\n throw new Error('bad point: equation left != right');\n if (!p.isTorsionFree())\n throw new Error('bad point: not in prime-order subgroup');\n return true;\n });\n function finishEndo(endoBeta, k1p, k2p, k1neg, k2neg) {\n k2p = new Point(Fp.mul(k2p.X, endoBeta), k2p.Y, k2p.Z);\n k1p = (0, curve_ts_1.negateCt)(k1neg, k1p);\n k2p = (0, curve_ts_1.negateCt)(k2neg, k2p);\n return k1p.add(k2p);\n }\n /**\n * Projective Point works in 3d / projective (homogeneous) coordinates:(X, Y, Z) ∋ (x=X/Z, y=Y/Z).\n * Default Point works in 2d / affine coordinates: (x, y).\n * We're doing calculations in projective, because its operations don't require costly inversion.\n */\n class Point {\n /** Does NOT validate if the point is valid. Use `.assertValidity()`. */\n constructor(X, Y, Z) {\n this.X = acoord('x', X);\n this.Y = acoord('y', Y, true);\n this.Z = acoord('z', Z);\n Object.freeze(this);\n }\n static CURVE() {\n return CURVE;\n }\n /** Does NOT validate if the point is valid. Use `.assertValidity()`. */\n static fromAffine(p) {\n const { x, y } = p || {};\n if (!p || !Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('invalid affine point');\n if (p instanceof Point)\n throw new Error('projective point not allowed');\n // (0, 0) would've produced (0, 0, 1) - instead, we need (0, 1, 0)\n if (Fp.is0(x) && Fp.is0(y))\n return Point.ZERO;\n return new Point(x, y, Fp.ONE);\n }\n static fromBytes(bytes) {\n const P = Point.fromAffine(decodePoint((0, utils_ts_1._abytes2)(bytes, undefined, 'point')));\n P.assertValidity();\n return P;\n }\n static fromHex(hex) {\n return Point.fromBytes((0, utils_ts_1.ensureBytes)('pointHex', hex));\n }\n get x() {\n return this.toAffine().x;\n }\n get y() {\n return this.toAffine().y;\n }\n /**\n *\n * @param windowSize\n * @param isLazy true will defer table computation until the first multiplication\n * @returns\n */\n precompute(windowSize = 8, isLazy = true) {\n wnaf.createCache(this, windowSize);\n if (!isLazy)\n this.multiply(_3n); // random number\n return this;\n }\n // TODO: return `this`\n /** A point on curve is valid if it conforms to equation. */\n assertValidity() {\n assertValidMemo(this);\n }\n hasEvenY() {\n const { y } = this.toAffine();\n if (!Fp.isOdd)\n throw new Error(\"Field doesn't support isOdd\");\n return !Fp.isOdd(y);\n }\n /** Compare one point to another. */\n equals(other) {\n aprjpoint(other);\n const { X: X1, Y: Y1, Z: Z1 } = this;\n const { X: X2, Y: Y2, Z: Z2 } = other;\n const U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1));\n const U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1));\n return U1 && U2;\n }\n /** Flips point to one corresponding to (x, -y) in Affine coordinates. */\n negate() {\n return new Point(this.X, Fp.neg(this.Y), this.Z);\n }\n // Renes-Costello-Batina exception-free doubling formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 3\n // Cost: 8M + 3S + 3*a + 2*b3 + 15add.\n double() {\n const { a, b } = CURVE;\n const b3 = Fp.mul(b, _3n);\n const { X: X1, Y: Y1, Z: Z1 } = this;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n let t0 = Fp.mul(X1, X1); // step 1\n let t1 = Fp.mul(Y1, Y1);\n let t2 = Fp.mul(Z1, Z1);\n let t3 = Fp.mul(X1, Y1);\n t3 = Fp.add(t3, t3); // step 5\n Z3 = Fp.mul(X1, Z1);\n Z3 = Fp.add(Z3, Z3);\n X3 = Fp.mul(a, Z3);\n Y3 = Fp.mul(b3, t2);\n Y3 = Fp.add(X3, Y3); // step 10\n X3 = Fp.sub(t1, Y3);\n Y3 = Fp.add(t1, Y3);\n Y3 = Fp.mul(X3, Y3);\n X3 = Fp.mul(t3, X3);\n Z3 = Fp.mul(b3, Z3); // step 15\n t2 = Fp.mul(a, t2);\n t3 = Fp.sub(t0, t2);\n t3 = Fp.mul(a, t3);\n t3 = Fp.add(t3, Z3);\n Z3 = Fp.add(t0, t0); // step 20\n t0 = Fp.add(Z3, t0);\n t0 = Fp.add(t0, t2);\n t0 = Fp.mul(t0, t3);\n Y3 = Fp.add(Y3, t0);\n t2 = Fp.mul(Y1, Z1); // step 25\n t2 = Fp.add(t2, t2);\n t0 = Fp.mul(t2, t3);\n X3 = Fp.sub(X3, t0);\n Z3 = Fp.mul(t2, t1);\n Z3 = Fp.add(Z3, Z3); // step 30\n Z3 = Fp.add(Z3, Z3);\n return new Point(X3, Y3, Z3);\n }\n // Renes-Costello-Batina exception-free addition formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 1\n // Cost: 12M + 0S + 3*a + 3*b3 + 23add.\n add(other) {\n aprjpoint(other);\n const { X: X1, Y: Y1, Z: Z1 } = this;\n const { X: X2, Y: Y2, Z: Z2 } = other;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n const a = CURVE.a;\n const b3 = Fp.mul(CURVE.b, _3n);\n let t0 = Fp.mul(X1, X2); // step 1\n let t1 = Fp.mul(Y1, Y2);\n let t2 = Fp.mul(Z1, Z2);\n let t3 = Fp.add(X1, Y1);\n let t4 = Fp.add(X2, Y2); // step 5\n t3 = Fp.mul(t3, t4);\n t4 = Fp.add(t0, t1);\n t3 = Fp.sub(t3, t4);\n t4 = Fp.add(X1, Z1);\n let t5 = Fp.add(X2, Z2); // step 10\n t4 = Fp.mul(t4, t5);\n t5 = Fp.add(t0, t2);\n t4 = Fp.sub(t4, t5);\n t5 = Fp.add(Y1, Z1);\n X3 = Fp.add(Y2, Z2); // step 15\n t5 = Fp.mul(t5, X3);\n X3 = Fp.add(t1, t2);\n t5 = Fp.sub(t5, X3);\n Z3 = Fp.mul(a, t4);\n X3 = Fp.mul(b3, t2); // step 20\n Z3 = Fp.add(X3, Z3);\n X3 = Fp.sub(t1, Z3);\n Z3 = Fp.add(t1, Z3);\n Y3 = Fp.mul(X3, Z3);\n t1 = Fp.add(t0, t0); // step 25\n t1 = Fp.add(t1, t0);\n t2 = Fp.mul(a, t2);\n t4 = Fp.mul(b3, t4);\n t1 = Fp.add(t1, t2);\n t2 = Fp.sub(t0, t2); // step 30\n t2 = Fp.mul(a, t2);\n t4 = Fp.add(t4, t2);\n t0 = Fp.mul(t1, t4);\n Y3 = Fp.add(Y3, t0);\n t0 = Fp.mul(t5, t4); // step 35\n X3 = Fp.mul(t3, X3);\n X3 = Fp.sub(X3, t0);\n t0 = Fp.mul(t3, t1);\n Z3 = Fp.mul(t5, Z3);\n Z3 = Fp.add(Z3, t0); // step 40\n return new Point(X3, Y3, Z3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n is0() {\n return this.equals(Point.ZERO);\n }\n /**\n * Constant time multiplication.\n * Uses wNAF method. Windowed method may be 10% faster,\n * but takes 2x longer to generate and consumes 2x memory.\n * Uses precomputes when available.\n * Uses endomorphism for Koblitz curves.\n * @param scalar by which the point would be multiplied\n * @returns New point\n */\n multiply(scalar) {\n const { endo } = extraOpts;\n if (!Fn.isValidNot0(scalar))\n throw new Error('invalid scalar: out of range'); // 0 is invalid\n let point, fake; // Fake point is used to const-time mult\n const mul = (n) => wnaf.cached(this, n, (p) => (0, curve_ts_1.normalizeZ)(Point, p));\n /** See docs for {@link EndomorphismOpts} */\n if (endo) {\n const { k1neg, k1, k2neg, k2 } = splitEndoScalarN(scalar);\n const { p: k1p, f: k1f } = mul(k1);\n const { p: k2p, f: k2f } = mul(k2);\n fake = k1f.add(k2f);\n point = finishEndo(endo.beta, k1p, k2p, k1neg, k2neg);\n }\n else {\n const { p, f } = mul(scalar);\n point = p;\n fake = f;\n }\n // Normalize `z` for both points, but return only real one\n return (0, curve_ts_1.normalizeZ)(Point, [point, fake])[0];\n }\n /**\n * Non-constant-time multiplication. Uses double-and-add algorithm.\n * It's faster, but should only be used when you don't care about\n * an exposed secret key e.g. sig verification, which works over *public* keys.\n */\n multiplyUnsafe(sc) {\n const { endo } = extraOpts;\n const p = this;\n if (!Fn.isValid(sc))\n throw new Error('invalid scalar: out of range'); // 0 is valid\n if (sc === _0n || p.is0())\n return Point.ZERO;\n if (sc === _1n)\n return p; // fast-path\n if (wnaf.hasCache(this))\n return this.multiply(sc);\n if (endo) {\n const { k1neg, k1, k2neg, k2 } = splitEndoScalarN(sc);\n const { p1, p2 } = (0, curve_ts_1.mulEndoUnsafe)(Point, p, k1, k2); // 30% faster vs wnaf.unsafe\n return finishEndo(endo.beta, p1, p2, k1neg, k2neg);\n }\n else {\n return wnaf.unsafe(p, sc);\n }\n }\n multiplyAndAddUnsafe(Q, a, b) {\n const sum = this.multiplyUnsafe(a).add(Q.multiplyUnsafe(b));\n return sum.is0() ? undefined : sum;\n }\n /**\n * Converts Projective point to affine (x, y) coordinates.\n * @param invertedZ Z^-1 (inverted zero) - optional, precomputation is useful for invertBatch\n */\n toAffine(invertedZ) {\n return toAffineMemo(this, invertedZ);\n }\n /**\n * Checks whether Point is free of torsion elements (is in prime subgroup).\n * Always torsion-free for cofactor=1 curves.\n */\n isTorsionFree() {\n const { isTorsionFree } = extraOpts;\n if (cofactor === _1n)\n return true;\n if (isTorsionFree)\n return isTorsionFree(Point, this);\n return wnaf.unsafe(this, CURVE_ORDER).is0();\n }\n clearCofactor() {\n const { clearCofactor } = extraOpts;\n if (cofactor === _1n)\n return this; // Fast-path\n if (clearCofactor)\n return clearCofactor(Point, this);\n return this.multiplyUnsafe(cofactor);\n }\n isSmallOrder() {\n // can we use this.clearCofactor()?\n return this.multiplyUnsafe(cofactor).is0();\n }\n toBytes(isCompressed = true) {\n (0, utils_ts_1._abool2)(isCompressed, 'isCompressed');\n this.assertValidity();\n return encodePoint(Point, this, isCompressed);\n }\n toHex(isCompressed = true) {\n return (0, utils_ts_1.bytesToHex)(this.toBytes(isCompressed));\n }\n toString() {\n return ``;\n }\n // TODO: remove\n get px() {\n return this.X;\n }\n get py() {\n return this.X;\n }\n get pz() {\n return this.Z;\n }\n toRawBytes(isCompressed = true) {\n return this.toBytes(isCompressed);\n }\n _setWindowSize(windowSize) {\n this.precompute(windowSize);\n }\n static normalizeZ(points) {\n return (0, curve_ts_1.normalizeZ)(Point, points);\n }\n static msm(points, scalars) {\n return (0, curve_ts_1.pippenger)(Point, Fn, points, scalars);\n }\n static fromPrivateKey(privateKey) {\n return Point.BASE.multiply(_normFnElement(Fn, privateKey));\n }\n }\n // base / generator point\n Point.BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n // zero / infinity / identity point\n Point.ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO); // 0, 1, 0\n // math field\n Point.Fp = Fp;\n // scalar field\n Point.Fn = Fn;\n const bits = Fn.BITS;\n const wnaf = new curve_ts_1.wNAF(Point, extraOpts.endo ? Math.ceil(bits / 2) : bits);\n Point.BASE.precompute(8); // Enable precomputes. Slows down first publicKey computation by 20ms.\n return Point;\n}\n// Points start with byte 0x02 when y is even; otherwise 0x03\nfunction pprefix(hasEvenY) {\n return Uint8Array.of(hasEvenY ? 0x02 : 0x03);\n}\n/**\n * Implementation of the Shallue and van de Woestijne method for any weierstrass curve.\n * TODO: check if there is a way to merge this with uvRatio in Edwards; move to modular.\n * b = True and y = sqrt(u / v) if (u / v) is square in F, and\n * b = False and y = sqrt(Z * (u / v)) otherwise.\n * @param Fp\n * @param Z\n * @returns\n */\nfunction SWUFpSqrtRatio(Fp, Z) {\n // Generic implementation\n const q = Fp.ORDER;\n let l = _0n;\n for (let o = q - _1n; o % _2n === _0n; o /= _2n)\n l += _1n;\n const c1 = l; // 1. c1, the largest integer such that 2^c1 divides q - 1.\n // We need 2n ** c1 and 2n ** (c1-1). We can't use **; but we can use <<.\n // 2n ** c1 == 2n << (c1-1)\n const _2n_pow_c1_1 = _2n << (c1 - _1n - _1n);\n const _2n_pow_c1 = _2n_pow_c1_1 * _2n;\n const c2 = (q - _1n) / _2n_pow_c1; // 2. c2 = (q - 1) / (2^c1) # Integer arithmetic\n const c3 = (c2 - _1n) / _2n; // 3. c3 = (c2 - 1) / 2 # Integer arithmetic\n const c4 = _2n_pow_c1 - _1n; // 4. c4 = 2^c1 - 1 # Integer arithmetic\n const c5 = _2n_pow_c1_1; // 5. c5 = 2^(c1 - 1) # Integer arithmetic\n const c6 = Fp.pow(Z, c2); // 6. c6 = Z^c2\n const c7 = Fp.pow(Z, (c2 + _1n) / _2n); // 7. c7 = Z^((c2 + 1) / 2)\n let sqrtRatio = (u, v) => {\n let tv1 = c6; // 1. tv1 = c6\n let tv2 = Fp.pow(v, c4); // 2. tv2 = v^c4\n let tv3 = Fp.sqr(tv2); // 3. tv3 = tv2^2\n tv3 = Fp.mul(tv3, v); // 4. tv3 = tv3 * v\n let tv5 = Fp.mul(u, tv3); // 5. tv5 = u * tv3\n tv5 = Fp.pow(tv5, c3); // 6. tv5 = tv5^c3\n tv5 = Fp.mul(tv5, tv2); // 7. tv5 = tv5 * tv2\n tv2 = Fp.mul(tv5, v); // 8. tv2 = tv5 * v\n tv3 = Fp.mul(tv5, u); // 9. tv3 = tv5 * u\n let tv4 = Fp.mul(tv3, tv2); // 10. tv4 = tv3 * tv2\n tv5 = Fp.pow(tv4, c5); // 11. tv5 = tv4^c5\n let isQR = Fp.eql(tv5, Fp.ONE); // 12. isQR = tv5 == 1\n tv2 = Fp.mul(tv3, c7); // 13. tv2 = tv3 * c7\n tv5 = Fp.mul(tv4, tv1); // 14. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, isQR); // 15. tv3 = CMOV(tv2, tv3, isQR)\n tv4 = Fp.cmov(tv5, tv4, isQR); // 16. tv4 = CMOV(tv5, tv4, isQR)\n // 17. for i in (c1, c1 - 1, ..., 2):\n for (let i = c1; i > _1n; i--) {\n let tv5 = i - _2n; // 18. tv5 = i - 2\n tv5 = _2n << (tv5 - _1n); // 19. tv5 = 2^tv5\n let tvv5 = Fp.pow(tv4, tv5); // 20. tv5 = tv4^tv5\n const e1 = Fp.eql(tvv5, Fp.ONE); // 21. e1 = tv5 == 1\n tv2 = Fp.mul(tv3, tv1); // 22. tv2 = tv3 * tv1\n tv1 = Fp.mul(tv1, tv1); // 23. tv1 = tv1 * tv1\n tvv5 = Fp.mul(tv4, tv1); // 24. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, e1); // 25. tv3 = CMOV(tv2, tv3, e1)\n tv4 = Fp.cmov(tvv5, tv4, e1); // 26. tv4 = CMOV(tv5, tv4, e1)\n }\n return { isValid: isQR, value: tv3 };\n };\n if (Fp.ORDER % _4n === _3n) {\n // sqrt_ratio_3mod4(u, v)\n const c1 = (Fp.ORDER - _3n) / _4n; // 1. c1 = (q - 3) / 4 # Integer arithmetic\n const c2 = Fp.sqrt(Fp.neg(Z)); // 2. c2 = sqrt(-Z)\n sqrtRatio = (u, v) => {\n let tv1 = Fp.sqr(v); // 1. tv1 = v^2\n const tv2 = Fp.mul(u, v); // 2. tv2 = u * v\n tv1 = Fp.mul(tv1, tv2); // 3. tv1 = tv1 * tv2\n let y1 = Fp.pow(tv1, c1); // 4. y1 = tv1^c1\n y1 = Fp.mul(y1, tv2); // 5. y1 = y1 * tv2\n const y2 = Fp.mul(y1, c2); // 6. y2 = y1 * c2\n const tv3 = Fp.mul(Fp.sqr(y1), v); // 7. tv3 = y1^2; 8. tv3 = tv3 * v\n const isQR = Fp.eql(tv3, u); // 9. isQR = tv3 == u\n let y = Fp.cmov(y2, y1, isQR); // 10. y = CMOV(y2, y1, isQR)\n return { isValid: isQR, value: y }; // 11. return (isQR, y) isQR ? y : y*c2\n };\n }\n // No curves uses that\n // if (Fp.ORDER % _8n === _5n) // sqrt_ratio_5mod8\n return sqrtRatio;\n}\n/**\n * Simplified Shallue-van de Woestijne-Ulas Method\n * https://www.rfc-editor.org/rfc/rfc9380#section-6.6.2\n */\nfunction mapToCurveSimpleSWU(Fp, opts) {\n (0, modular_ts_1.validateField)(Fp);\n const { A, B, Z } = opts;\n if (!Fp.isValid(A) || !Fp.isValid(B) || !Fp.isValid(Z))\n throw new Error('mapToCurveSimpleSWU: invalid opts');\n const sqrtRatio = SWUFpSqrtRatio(Fp, Z);\n if (!Fp.isOdd)\n throw new Error('Field does not have .isOdd()');\n // Input: u, an element of F.\n // Output: (x, y), a point on E.\n return (u) => {\n // prettier-ignore\n let tv1, tv2, tv3, tv4, tv5, tv6, x, y;\n tv1 = Fp.sqr(u); // 1. tv1 = u^2\n tv1 = Fp.mul(tv1, Z); // 2. tv1 = Z * tv1\n tv2 = Fp.sqr(tv1); // 3. tv2 = tv1^2\n tv2 = Fp.add(tv2, tv1); // 4. tv2 = tv2 + tv1\n tv3 = Fp.add(tv2, Fp.ONE); // 5. tv3 = tv2 + 1\n tv3 = Fp.mul(tv3, B); // 6. tv3 = B * tv3\n tv4 = Fp.cmov(Z, Fp.neg(tv2), !Fp.eql(tv2, Fp.ZERO)); // 7. tv4 = CMOV(Z, -tv2, tv2 != 0)\n tv4 = Fp.mul(tv4, A); // 8. tv4 = A * tv4\n tv2 = Fp.sqr(tv3); // 9. tv2 = tv3^2\n tv6 = Fp.sqr(tv4); // 10. tv6 = tv4^2\n tv5 = Fp.mul(tv6, A); // 11. tv5 = A * tv6\n tv2 = Fp.add(tv2, tv5); // 12. tv2 = tv2 + tv5\n tv2 = Fp.mul(tv2, tv3); // 13. tv2 = tv2 * tv3\n tv6 = Fp.mul(tv6, tv4); // 14. tv6 = tv6 * tv4\n tv5 = Fp.mul(tv6, B); // 15. tv5 = B * tv6\n tv2 = Fp.add(tv2, tv5); // 16. tv2 = tv2 + tv5\n x = Fp.mul(tv1, tv3); // 17. x = tv1 * tv3\n const { isValid, value } = sqrtRatio(tv2, tv6); // 18. (is_gx1_square, y1) = sqrt_ratio(tv2, tv6)\n y = Fp.mul(tv1, u); // 19. y = tv1 * u -> Z * u^3 * y1\n y = Fp.mul(y, value); // 20. y = y * y1\n x = Fp.cmov(x, tv3, isValid); // 21. x = CMOV(x, tv3, is_gx1_square)\n y = Fp.cmov(y, value, isValid); // 22. y = CMOV(y, y1, is_gx1_square)\n const e1 = Fp.isOdd(u) === Fp.isOdd(y); // 23. e1 = sgn0(u) == sgn0(y)\n y = Fp.cmov(Fp.neg(y), y, e1); // 24. y = CMOV(-y, y, e1)\n const tv4_inv = (0, modular_ts_1.FpInvertBatch)(Fp, [tv4], true)[0];\n x = Fp.mul(x, tv4_inv); // 25. x = x / tv4\n return { x, y };\n };\n}\nfunction getWLengths(Fp, Fn) {\n return {\n secretKey: Fn.BYTES,\n publicKey: 1 + Fp.BYTES,\n publicKeyUncompressed: 1 + 2 * Fp.BYTES,\n publicKeyHasPrefix: true,\n signature: 2 * Fn.BYTES,\n };\n}\n/**\n * Sometimes users only need getPublicKey, getSharedSecret, and secret key handling.\n * This helper ensures no signature functionality is present. Less code, smaller bundle size.\n */\nfunction ecdh(Point, ecdhOpts = {}) {\n const { Fn } = Point;\n const randomBytes_ = ecdhOpts.randomBytes || utils_ts_1.randomBytes;\n const lengths = Object.assign(getWLengths(Point.Fp, Fn), { seed: (0, modular_ts_1.getMinHashLength)(Fn.ORDER) });\n function isValidSecretKey(secretKey) {\n try {\n return !!_normFnElement(Fn, secretKey);\n }\n catch (error) {\n return false;\n }\n }\n function isValidPublicKey(publicKey, isCompressed) {\n const { publicKey: comp, publicKeyUncompressed } = lengths;\n try {\n const l = publicKey.length;\n if (isCompressed === true && l !== comp)\n return false;\n if (isCompressed === false && l !== publicKeyUncompressed)\n return false;\n return !!Point.fromBytes(publicKey);\n }\n catch (error) {\n return false;\n }\n }\n /**\n * Produces cryptographically secure secret key from random of size\n * (groupLen + ceil(groupLen / 2)) with modulo bias being negligible.\n */\n function randomSecretKey(seed = randomBytes_(lengths.seed)) {\n return (0, modular_ts_1.mapHashToField)((0, utils_ts_1._abytes2)(seed, lengths.seed, 'seed'), Fn.ORDER);\n }\n /**\n * Computes public key for a secret key. Checks for validity of the secret key.\n * @param isCompressed whether to return compact (default), or full key\n * @returns Public key, full when isCompressed=false; short when isCompressed=true\n */\n function getPublicKey(secretKey, isCompressed = true) {\n return Point.BASE.multiply(_normFnElement(Fn, secretKey)).toBytes(isCompressed);\n }\n function keygen(seed) {\n const secretKey = randomSecretKey(seed);\n return { secretKey, publicKey: getPublicKey(secretKey) };\n }\n /**\n * Quick and dirty check for item being public key. Does not validate hex, or being on-curve.\n */\n function isProbPub(item) {\n if (typeof item === 'bigint')\n return false;\n if (item instanceof Point)\n return true;\n const { secretKey, publicKey, publicKeyUncompressed } = lengths;\n if (Fn.allowedLengths || secretKey === publicKey)\n return undefined;\n const l = (0, utils_ts_1.ensureBytes)('key', item).length;\n return l === publicKey || l === publicKeyUncompressed;\n }\n /**\n * ECDH (Elliptic Curve Diffie Hellman).\n * Computes shared public key from secret key A and public key B.\n * Checks: 1) secret key validity 2) shared key is on-curve.\n * Does NOT hash the result.\n * @param isCompressed whether to return compact (default), or full key\n * @returns shared public key\n */\n function getSharedSecret(secretKeyA, publicKeyB, isCompressed = true) {\n if (isProbPub(secretKeyA) === true)\n throw new Error('first arg must be private key');\n if (isProbPub(publicKeyB) === false)\n throw new Error('second arg must be public key');\n const s = _normFnElement(Fn, secretKeyA);\n const b = Point.fromHex(publicKeyB); // checks for being on-curve\n return b.multiply(s).toBytes(isCompressed);\n }\n const utils = {\n isValidSecretKey,\n isValidPublicKey,\n randomSecretKey,\n // TODO: remove\n isValidPrivateKey: isValidSecretKey,\n randomPrivateKey: randomSecretKey,\n normPrivateKeyToScalar: (key) => _normFnElement(Fn, key),\n precompute(windowSize = 8, point = Point.BASE) {\n return point.precompute(windowSize, false);\n },\n };\n return Object.freeze({ getPublicKey, getSharedSecret, keygen, Point, utils, lengths });\n}\n/**\n * Creates ECDSA signing interface for given elliptic curve `Point` and `hash` function.\n * We need `hash` for 2 features:\n * 1. Message prehash-ing. NOT used if `sign` / `verify` are called with `prehash: false`\n * 2. k generation in `sign`, using HMAC-drbg(hash)\n *\n * ECDSAOpts are only rarely needed.\n *\n * @example\n * ```js\n * const p256_Point = weierstrass(...);\n * const p256_sha256 = ecdsa(p256_Point, sha256);\n * const p256_sha224 = ecdsa(p256_Point, sha224);\n * const p256_sha224_r = ecdsa(p256_Point, sha224, { randomBytes: (length) => { ... } });\n * ```\n */\nfunction ecdsa(Point, hash, ecdsaOpts = {}) {\n (0, utils_1.ahash)(hash);\n (0, utils_ts_1._validateObject)(ecdsaOpts, {}, {\n hmac: 'function',\n lowS: 'boolean',\n randomBytes: 'function',\n bits2int: 'function',\n bits2int_modN: 'function',\n });\n const randomBytes = ecdsaOpts.randomBytes || utils_ts_1.randomBytes;\n const hmac = ecdsaOpts.hmac ||\n ((key, ...msgs) => (0, hmac_js_1.hmac)(hash, key, (0, utils_ts_1.concatBytes)(...msgs)));\n const { Fp, Fn } = Point;\n const { ORDER: CURVE_ORDER, BITS: fnBits } = Fn;\n const { keygen, getPublicKey, getSharedSecret, utils, lengths } = ecdh(Point, ecdsaOpts);\n const defaultSigOpts = {\n prehash: false,\n lowS: typeof ecdsaOpts.lowS === 'boolean' ? ecdsaOpts.lowS : false,\n format: undefined, //'compact' as ECDSASigFormat,\n extraEntropy: false,\n };\n const defaultSigOpts_format = 'compact';\n function isBiggerThanHalfOrder(number) {\n const HALF = CURVE_ORDER >> _1n;\n return number > HALF;\n }\n function validateRS(title, num) {\n if (!Fn.isValidNot0(num))\n throw new Error(`invalid signature ${title}: out of range 1..Point.Fn.ORDER`);\n return num;\n }\n function validateSigLength(bytes, format) {\n validateSigFormat(format);\n const size = lengths.signature;\n const sizer = format === 'compact' ? size : format === 'recovered' ? size + 1 : undefined;\n return (0, utils_ts_1._abytes2)(bytes, sizer, `${format} signature`);\n }\n /**\n * ECDSA signature with its (r, s) properties. Supports compact, recovered & DER representations.\n */\n class Signature {\n constructor(r, s, recovery) {\n this.r = validateRS('r', r); // r in [1..N-1];\n this.s = validateRS('s', s); // s in [1..N-1];\n if (recovery != null)\n this.recovery = recovery;\n Object.freeze(this);\n }\n static fromBytes(bytes, format = defaultSigOpts_format) {\n validateSigLength(bytes, format);\n let recid;\n if (format === 'der') {\n const { r, s } = exports.DER.toSig((0, utils_ts_1._abytes2)(bytes));\n return new Signature(r, s);\n }\n if (format === 'recovered') {\n recid = bytes[0];\n format = 'compact';\n bytes = bytes.subarray(1);\n }\n const L = Fn.BYTES;\n const r = bytes.subarray(0, L);\n const s = bytes.subarray(L, L * 2);\n return new Signature(Fn.fromBytes(r), Fn.fromBytes(s), recid);\n }\n static fromHex(hex, format) {\n return this.fromBytes((0, utils_ts_1.hexToBytes)(hex), format);\n }\n addRecoveryBit(recovery) {\n return new Signature(this.r, this.s, recovery);\n }\n recoverPublicKey(messageHash) {\n const FIELD_ORDER = Fp.ORDER;\n const { r, s, recovery: rec } = this;\n if (rec == null || ![0, 1, 2, 3].includes(rec))\n throw new Error('recovery id invalid');\n // ECDSA recovery is hard for cofactor > 1 curves.\n // In sign, `r = q.x mod n`, and here we recover q.x from r.\n // While recovering q.x >= n, we need to add r+n for cofactor=1 curves.\n // However, for cofactor>1, r+n may not get q.x:\n // r+n*i would need to be done instead where i is unknown.\n // To easily get i, we either need to:\n // a. increase amount of valid recid values (4, 5...); OR\n // b. prohibit non-prime-order signatures (recid > 1).\n const hasCofactor = CURVE_ORDER * _2n < FIELD_ORDER;\n if (hasCofactor && rec > 1)\n throw new Error('recovery id is ambiguous for h>1 curve');\n const radj = rec === 2 || rec === 3 ? r + CURVE_ORDER : r;\n if (!Fp.isValid(radj))\n throw new Error('recovery id 2 or 3 invalid');\n const x = Fp.toBytes(radj);\n const R = Point.fromBytes((0, utils_ts_1.concatBytes)(pprefix((rec & 1) === 0), x));\n const ir = Fn.inv(radj); // r^-1\n const h = bits2int_modN((0, utils_ts_1.ensureBytes)('msgHash', messageHash)); // Truncate hash\n const u1 = Fn.create(-h * ir); // -hr^-1\n const u2 = Fn.create(s * ir); // sr^-1\n // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1). unsafe is fine: there is no private data.\n const Q = Point.BASE.multiplyUnsafe(u1).add(R.multiplyUnsafe(u2));\n if (Q.is0())\n throw new Error('point at infinify');\n Q.assertValidity();\n return Q;\n }\n // Signatures should be low-s, to prevent malleability.\n hasHighS() {\n return isBiggerThanHalfOrder(this.s);\n }\n toBytes(format = defaultSigOpts_format) {\n validateSigFormat(format);\n if (format === 'der')\n return (0, utils_ts_1.hexToBytes)(exports.DER.hexFromSig(this));\n const r = Fn.toBytes(this.r);\n const s = Fn.toBytes(this.s);\n if (format === 'recovered') {\n if (this.recovery == null)\n throw new Error('recovery bit must be present');\n return (0, utils_ts_1.concatBytes)(Uint8Array.of(this.recovery), r, s);\n }\n return (0, utils_ts_1.concatBytes)(r, s);\n }\n toHex(format) {\n return (0, utils_ts_1.bytesToHex)(this.toBytes(format));\n }\n // TODO: remove\n assertValidity() { }\n static fromCompact(hex) {\n return Signature.fromBytes((0, utils_ts_1.ensureBytes)('sig', hex), 'compact');\n }\n static fromDER(hex) {\n return Signature.fromBytes((0, utils_ts_1.ensureBytes)('sig', hex), 'der');\n }\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, Fn.neg(this.s), this.recovery) : this;\n }\n toDERRawBytes() {\n return this.toBytes('der');\n }\n toDERHex() {\n return (0, utils_ts_1.bytesToHex)(this.toBytes('der'));\n }\n toCompactRawBytes() {\n return this.toBytes('compact');\n }\n toCompactHex() {\n return (0, utils_ts_1.bytesToHex)(this.toBytes('compact'));\n }\n }\n // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets.\n // FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits, which matches bits2int.\n // bits2int can produce res>N, we can do mod(res, N) since the bitLen is the same.\n // int2octets can't be used; pads small msgs with 0: unacceptatble for trunc as per RFC vectors\n const bits2int = ecdsaOpts.bits2int ||\n function bits2int_def(bytes) {\n // Our custom check \"just in case\", for protection against DoS\n if (bytes.length > 8192)\n throw new Error('input is too large');\n // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m)\n // for some cases, since bytes.length * 8 is not actual bitLength.\n const num = (0, utils_ts_1.bytesToNumberBE)(bytes); // check for == u8 done here\n const delta = bytes.length * 8 - fnBits; // truncate to nBitLength leftmost bits\n return delta > 0 ? num >> BigInt(delta) : num;\n };\n const bits2int_modN = ecdsaOpts.bits2int_modN ||\n function bits2int_modN_def(bytes) {\n return Fn.create(bits2int(bytes)); // can't use bytesToNumberBE here\n };\n // Pads output with zero as per spec\n const ORDER_MASK = (0, utils_ts_1.bitMask)(fnBits);\n /** Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`. */\n function int2octets(num) {\n // IMPORTANT: the check ensures working for case `Fn.BYTES != Fn.BITS * 8`\n (0, utils_ts_1.aInRange)('num < 2^' + fnBits, num, _0n, ORDER_MASK);\n return Fn.toBytes(num);\n }\n function validateMsgAndHash(message, prehash) {\n (0, utils_ts_1._abytes2)(message, undefined, 'message');\n return prehash ? (0, utils_ts_1._abytes2)(hash(message), undefined, 'prehashed message') : message;\n }\n /**\n * Steps A, D of RFC6979 3.2.\n * Creates RFC6979 seed; converts msg/privKey to numbers.\n * Used only in sign, not in verify.\n *\n * Warning: we cannot assume here that message has same amount of bytes as curve order,\n * this will be invalid at least for P521. Also it can be bigger for P224 + SHA256.\n */\n function prepSig(message, privateKey, opts) {\n if (['recovered', 'canonical'].some((k) => k in opts))\n throw new Error('sign() legacy options not supported');\n const { lowS, prehash, extraEntropy } = validateSigOpts(opts, defaultSigOpts);\n message = validateMsgAndHash(message, prehash); // RFC6979 3.2 A: h1 = H(m)\n // We can't later call bits2octets, since nested bits2int is broken for curves\n // with fnBits % 8 !== 0. Because of that, we unwrap it here as int2octets call.\n // const bits2octets = (bits) => int2octets(bits2int_modN(bits))\n const h1int = bits2int_modN(message);\n const d = _normFnElement(Fn, privateKey); // validate secret key, convert to bigint\n const seedArgs = [int2octets(d), int2octets(h1int)];\n // extraEntropy. RFC6979 3.6: additional k' (optional).\n if (extraEntropy != null && extraEntropy !== false) {\n // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n // gen random bytes OR pass as-is\n const e = extraEntropy === true ? randomBytes(lengths.secretKey) : extraEntropy;\n seedArgs.push((0, utils_ts_1.ensureBytes)('extraEntropy', e)); // check for being bytes\n }\n const seed = (0, utils_ts_1.concatBytes)(...seedArgs); // Step D of RFC6979 3.2\n const m = h1int; // NOTE: no need to call bits2int second time here, it is inside truncateHash!\n // Converts signature params into point w r/s, checks result for validity.\n // To transform k => Signature:\n // q = k⋅G\n // r = q.x mod n\n // s = k^-1(m + rd) mod n\n // Can use scalar blinding b^-1(bm + bdr) where b ∈ [1,q−1] according to\n // https://tches.iacr.org/index.php/TCHES/article/view/7337/6509. We've decided against it:\n // a) dependency on CSPRNG b) 15% slowdown c) doesn't really help since bigints are not CT\n function k2sig(kBytes) {\n // RFC 6979 Section 3.2, step 3: k = bits2int(T)\n // Important: all mod() calls here must be done over N\n const k = bits2int(kBytes); // mod n, not mod p\n if (!Fn.isValidNot0(k))\n return; // Valid scalars (including k) must be in 1..N-1\n const ik = Fn.inv(k); // k^-1 mod n\n const q = Point.BASE.multiply(k).toAffine(); // q = k⋅G\n const r = Fn.create(q.x); // r = q.x mod n\n if (r === _0n)\n return;\n const s = Fn.create(ik * Fn.create(m + r * d)); // Not using blinding here, see comment above\n if (s === _0n)\n return;\n let recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n); // recovery bit (2 or 3, when q.x > n)\n let normS = s;\n if (lowS && isBiggerThanHalfOrder(s)) {\n normS = Fn.neg(s); // if lowS was passed, ensure s is always\n recovery ^= 1; // // in the bottom half of N\n }\n return new Signature(r, normS, recovery); // use normS, not s\n }\n return { seed, k2sig };\n }\n /**\n * Signs message hash with a secret key.\n *\n * ```\n * sign(m, d) where\n * k = rfc6979_hmac_drbg(m, d)\n * (x, y) = G × k\n * r = x mod n\n * s = (m + dr) / k mod n\n * ```\n */\n function sign(message, secretKey, opts = {}) {\n message = (0, utils_ts_1.ensureBytes)('message', message);\n const { seed, k2sig } = prepSig(message, secretKey, opts); // Steps A, D of RFC6979 3.2.\n const drbg = (0, utils_ts_1.createHmacDrbg)(hash.outputLen, Fn.BYTES, hmac);\n const sig = drbg(seed, k2sig); // Steps B, C, D, E, F, G\n return sig;\n }\n function tryParsingSig(sg) {\n // Try to deduce format\n let sig = undefined;\n const isHex = typeof sg === 'string' || (0, utils_ts_1.isBytes)(sg);\n const isObj = !isHex &&\n sg !== null &&\n typeof sg === 'object' &&\n typeof sg.r === 'bigint' &&\n typeof sg.s === 'bigint';\n if (!isHex && !isObj)\n throw new Error('invalid signature, expected Uint8Array, hex string or Signature instance');\n if (isObj) {\n sig = new Signature(sg.r, sg.s);\n }\n else if (isHex) {\n try {\n sig = Signature.fromBytes((0, utils_ts_1.ensureBytes)('sig', sg), 'der');\n }\n catch (derError) {\n if (!(derError instanceof exports.DER.Err))\n throw derError;\n }\n if (!sig) {\n try {\n sig = Signature.fromBytes((0, utils_ts_1.ensureBytes)('sig', sg), 'compact');\n }\n catch (error) {\n return false;\n }\n }\n }\n if (!sig)\n return false;\n return sig;\n }\n /**\n * Verifies a signature against message and public key.\n * Rejects lowS signatures by default: see {@link ECDSAVerifyOpts}.\n * Implements section 4.1.4 from https://www.secg.org/sec1-v2.pdf:\n *\n * ```\n * verify(r, s, h, P) where\n * u1 = hs^-1 mod n\n * u2 = rs^-1 mod n\n * R = u1⋅G + u2⋅P\n * mod(R.x, n) == r\n * ```\n */\n function verify(signature, message, publicKey, opts = {}) {\n const { lowS, prehash, format } = validateSigOpts(opts, defaultSigOpts);\n publicKey = (0, utils_ts_1.ensureBytes)('publicKey', publicKey);\n message = validateMsgAndHash((0, utils_ts_1.ensureBytes)('message', message), prehash);\n if ('strict' in opts)\n throw new Error('options.strict was renamed to lowS');\n const sig = format === undefined\n ? tryParsingSig(signature)\n : Signature.fromBytes((0, utils_ts_1.ensureBytes)('sig', signature), format);\n if (sig === false)\n return false;\n try {\n const P = Point.fromBytes(publicKey);\n if (lowS && sig.hasHighS())\n return false;\n const { r, s } = sig;\n const h = bits2int_modN(message); // mod n, not mod p\n const is = Fn.inv(s); // s^-1 mod n\n const u1 = Fn.create(h * is); // u1 = hs^-1 mod n\n const u2 = Fn.create(r * is); // u2 = rs^-1 mod n\n const R = Point.BASE.multiplyUnsafe(u1).add(P.multiplyUnsafe(u2)); // u1⋅G + u2⋅P\n if (R.is0())\n return false;\n const v = Fn.create(R.x); // v = r.x mod n\n return v === r;\n }\n catch (e) {\n return false;\n }\n }\n function recoverPublicKey(signature, message, opts = {}) {\n const { prehash } = validateSigOpts(opts, defaultSigOpts);\n message = validateMsgAndHash(message, prehash);\n return Signature.fromBytes(signature, 'recovered').recoverPublicKey(message).toBytes();\n }\n return Object.freeze({\n keygen,\n getPublicKey,\n getSharedSecret,\n utils,\n lengths,\n Point,\n sign,\n verify,\n recoverPublicKey,\n Signature,\n hash,\n });\n}\n/** @deprecated use `weierstrass` in newer releases */\nfunction weierstrassPoints(c) {\n const { CURVE, curveOpts } = _weierstrass_legacy_opts_to_new(c);\n const Point = weierstrassN(CURVE, curveOpts);\n return _weierstrass_new_output_to_legacy(c, Point);\n}\nfunction _weierstrass_legacy_opts_to_new(c) {\n const CURVE = {\n a: c.a,\n b: c.b,\n p: c.Fp.ORDER,\n n: c.n,\n h: c.h,\n Gx: c.Gx,\n Gy: c.Gy,\n };\n const Fp = c.Fp;\n let allowedLengths = c.allowedPrivateKeyLengths\n ? Array.from(new Set(c.allowedPrivateKeyLengths.map((l) => Math.ceil(l / 2))))\n : undefined;\n const Fn = (0, modular_ts_1.Field)(CURVE.n, {\n BITS: c.nBitLength,\n allowedLengths: allowedLengths,\n modFromBytes: c.wrapPrivateKey,\n });\n const curveOpts = {\n Fp,\n Fn,\n allowInfinityPoint: c.allowInfinityPoint,\n endo: c.endo,\n isTorsionFree: c.isTorsionFree,\n clearCofactor: c.clearCofactor,\n fromBytes: c.fromBytes,\n toBytes: c.toBytes,\n };\n return { CURVE, curveOpts };\n}\nfunction _ecdsa_legacy_opts_to_new(c) {\n const { CURVE, curveOpts } = _weierstrass_legacy_opts_to_new(c);\n const ecdsaOpts = {\n hmac: c.hmac,\n randomBytes: c.randomBytes,\n lowS: c.lowS,\n bits2int: c.bits2int,\n bits2int_modN: c.bits2int_modN,\n };\n return { CURVE, curveOpts, hash: c.hash, ecdsaOpts };\n}\nfunction _legacyHelperEquat(Fp, a, b) {\n /**\n * y² = x³ + ax + b: Short weierstrass curve formula. Takes x, returns y².\n * @returns y²\n */\n function weierstrassEquation(x) {\n const x2 = Fp.sqr(x); // x * x\n const x3 = Fp.mul(x2, x); // x² * x\n return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x³ + a * x + b\n }\n return weierstrassEquation;\n}\nfunction _weierstrass_new_output_to_legacy(c, Point) {\n const { Fp, Fn } = Point;\n function isWithinCurveOrder(num) {\n return (0, utils_ts_1.inRange)(num, _1n, Fn.ORDER);\n }\n const weierstrassEquation = _legacyHelperEquat(Fp, c.a, c.b);\n return Object.assign({}, {\n CURVE: c,\n Point: Point,\n ProjectivePoint: Point,\n normPrivateKeyToScalar: (key) => _normFnElement(Fn, key),\n weierstrassEquation,\n isWithinCurveOrder,\n });\n}\nfunction _ecdsa_new_output_to_legacy(c, _ecdsa) {\n const Point = _ecdsa.Point;\n return Object.assign({}, _ecdsa, {\n ProjectivePoint: Point,\n CURVE: Object.assign({}, c, (0, modular_ts_1.nLength)(Point.Fn.ORDER, Point.Fn.BITS)),\n });\n}\n// _ecdsa_legacy\nfunction weierstrass(c) {\n const { CURVE, curveOpts, hash, ecdsaOpts } = _ecdsa_legacy_opts_to_new(c);\n const Point = weierstrassN(CURVE, curveOpts);\n const signs = ecdsa(Point, hash, ecdsaOpts);\n return _ecdsa_new_output_to_legacy(c, signs);\n}\n//# sourceMappingURL=weierstrass.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeToCurve = exports.hashToCurve = exports.secp256k1_hasher = exports.schnorr = exports.secp256k1 = void 0;\n/**\n * SECG secp256k1. See [pdf](https://www.secg.org/sec2-v2.pdf).\n *\n * Belongs to Koblitz curves: it has efficiently-computable GLV endomorphism ψ,\n * check out {@link EndomorphismOpts}. Seems to be rigid (not backdoored).\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst sha2_js_1 = require(\"@noble/hashes/sha2.js\");\nconst utils_js_1 = require(\"@noble/hashes/utils.js\");\nconst _shortw_utils_ts_1 = require(\"./_shortw_utils.js\");\nconst hash_to_curve_ts_1 = require(\"./abstract/hash-to-curve.js\");\nconst modular_ts_1 = require(\"./abstract/modular.js\");\nconst weierstrass_ts_1 = require(\"./abstract/weierstrass.js\");\nconst utils_ts_1 = require(\"./utils.js\");\n// Seems like generator was produced from some seed:\n// `Point.BASE.multiply(Point.Fn.inv(2n, N)).toAffine().x`\n// // gives short x 0x3b78ce563f89a0ed9414f5aa28ad0d96d6795f9c63n\nconst secp256k1_CURVE = {\n p: BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f'),\n n: BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141'),\n h: BigInt(1),\n a: BigInt(0),\n b: BigInt(7),\n Gx: BigInt('0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798'),\n Gy: BigInt('0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8'),\n};\nconst secp256k1_ENDO = {\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n basises: [\n [BigInt('0x3086d221a7d46bcde86c90e49284eb15'), -BigInt('0xe4437ed6010e88286f547fa90abfe4c3')],\n [BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8'), BigInt('0x3086d221a7d46bcde86c90e49284eb15')],\n ],\n};\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\n/**\n * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.\n * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]\n */\nfunction sqrtMod(y) {\n const P = secp256k1_CURVE.p;\n // prettier-ignore\n const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);\n // prettier-ignore\n const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88);\n const b2 = (y * y * y) % P; // x^3, 11\n const b3 = (b2 * b2 * y) % P; // x^7\n const b6 = ((0, modular_ts_1.pow2)(b3, _3n, P) * b3) % P;\n const b9 = ((0, modular_ts_1.pow2)(b6, _3n, P) * b3) % P;\n const b11 = ((0, modular_ts_1.pow2)(b9, _2n, P) * b2) % P;\n const b22 = ((0, modular_ts_1.pow2)(b11, _11n, P) * b11) % P;\n const b44 = ((0, modular_ts_1.pow2)(b22, _22n, P) * b22) % P;\n const b88 = ((0, modular_ts_1.pow2)(b44, _44n, P) * b44) % P;\n const b176 = ((0, modular_ts_1.pow2)(b88, _88n, P) * b88) % P;\n const b220 = ((0, modular_ts_1.pow2)(b176, _44n, P) * b44) % P;\n const b223 = ((0, modular_ts_1.pow2)(b220, _3n, P) * b3) % P;\n const t1 = ((0, modular_ts_1.pow2)(b223, _23n, P) * b22) % P;\n const t2 = ((0, modular_ts_1.pow2)(t1, _6n, P) * b2) % P;\n const root = (0, modular_ts_1.pow2)(t2, _2n, P);\n if (!Fpk1.eql(Fpk1.sqr(root), y))\n throw new Error('Cannot find square root');\n return root;\n}\nconst Fpk1 = (0, modular_ts_1.Field)(secp256k1_CURVE.p, { sqrt: sqrtMod });\n/**\n * secp256k1 curve, ECDSA and ECDH methods.\n *\n * Field: `2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n`\n *\n * @example\n * ```js\n * import { secp256k1 } from '@noble/curves/secp256k1';\n * const { secretKey, publicKey } = secp256k1.keygen();\n * const msg = new TextEncoder().encode('hello');\n * const sig = secp256k1.sign(msg, secretKey);\n * const isValid = secp256k1.verify(sig, msg, publicKey) === true;\n * ```\n */\nexports.secp256k1 = (0, _shortw_utils_ts_1.createCurve)({ ...secp256k1_CURVE, Fp: Fpk1, lowS: true, endo: secp256k1_ENDO }, sha2_js_1.sha256);\n// Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.\n// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\n/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */\nconst TAGGED_HASH_PREFIXES = {};\nfunction taggedHash(tag, ...messages) {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = (0, sha2_js_1.sha256)((0, utils_ts_1.utf8ToBytes)(tag));\n tagP = (0, utils_ts_1.concatBytes)(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return (0, sha2_js_1.sha256)((0, utils_ts_1.concatBytes)(tagP, ...messages));\n}\n// ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03\nconst pointToBytes = (point) => point.toBytes(true).slice(1);\nconst Pointk1 = /* @__PURE__ */ (() => exports.secp256k1.Point)();\nconst hasEven = (y) => y % _2n === _0n;\n// Calculate point, scalar and bytes\nfunction schnorrGetExtPubKey(priv) {\n const { Fn, BASE } = Pointk1;\n const d_ = (0, weierstrass_ts_1._normFnElement)(Fn, priv);\n const p = BASE.multiply(d_); // P = d'⋅G; 0 < d' < n check is done inside\n const scalar = hasEven(p.y) ? d_ : Fn.neg(d_);\n return { scalar, bytes: pointToBytes(p) };\n}\n/**\n * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.\n * @returns valid point checked for being on-curve\n */\nfunction lift_x(x) {\n const Fp = Fpk1;\n if (!Fp.isValidNot0(x))\n throw new Error('invalid x: Fail if x ≥ p');\n const xx = Fp.create(x * x);\n const c = Fp.create(xx * x + BigInt(7)); // Let c = x³ + 7 mod p.\n let y = Fp.sqrt(c); // Let y = c^(p+1)/4 mod p. Same as sqrt().\n // Return the unique point P such that x(P) = x and\n // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise.\n if (!hasEven(y))\n y = Fp.neg(y);\n const p = Pointk1.fromAffine({ x, y });\n p.assertValidity();\n return p;\n}\nconst num = utils_ts_1.bytesToNumberBE;\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge(...args) {\n return Pointk1.Fn.create(num(taggedHash('BIP0340/challenge', ...args)));\n}\n/**\n * Schnorr public key is just `x` coordinate of Point as per BIP340.\n */\nfunction schnorrGetPublicKey(secretKey) {\n return schnorrGetExtPubKey(secretKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)\n}\n/**\n * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.\n * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.\n */\nfunction schnorrSign(message, secretKey, auxRand = (0, utils_js_1.randomBytes)(32)) {\n const { Fn } = Pointk1;\n const m = (0, utils_ts_1.ensureBytes)('message', message);\n const { bytes: px, scalar: d } = schnorrGetExtPubKey(secretKey); // checks for isWithinCurveOrder\n const a = (0, utils_ts_1.ensureBytes)('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array\n const t = Fn.toBytes(d ^ num(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a)\n const rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m)\n // Let k' = int(rand) mod n. Fail if k' = 0. Let R = k'⋅G\n const { bytes: rx, scalar: k } = schnorrGetExtPubKey(rand);\n const e = challenge(rx, px, m); // Let e = int(hash/challenge(bytes(R) || bytes(P) || m)) mod n.\n const sig = new Uint8Array(64); // Let sig = bytes(R) || bytes((k + ed) mod n).\n sig.set(rx, 0);\n sig.set(Fn.toBytes(Fn.create(k + e * d)), 32);\n // If Verify(bytes(P), m, sig) (see below) returns failure, abort\n if (!schnorrVerify(sig, m, px))\n throw new Error('sign: Invalid signature produced');\n return sig;\n}\n/**\n * Verifies Schnorr signature.\n * Will swallow errors & return false except for initial type validation of arguments.\n */\nfunction schnorrVerify(signature, message, publicKey) {\n const { Fn, BASE } = Pointk1;\n const sig = (0, utils_ts_1.ensureBytes)('signature', signature, 64);\n const m = (0, utils_ts_1.ensureBytes)('message', message);\n const pub = (0, utils_ts_1.ensureBytes)('publicKey', publicKey, 32);\n try {\n const P = lift_x(num(pub)); // P = lift_x(int(pk)); fail if that fails\n const r = num(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n if (!(0, utils_ts_1.inRange)(r, _1n, secp256k1_CURVE.p))\n return false;\n const s = num(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n if (!(0, utils_ts_1.inRange)(s, _1n, secp256k1_CURVE.n))\n return false;\n // int(challenge(bytes(r)||bytes(P)||m))%n\n const e = challenge(Fn.toBytes(r), pointToBytes(P), m);\n // R = s⋅G - e⋅P, where -eP == (n-e)P\n const R = BASE.multiplyUnsafe(s).add(P.multiplyUnsafe(Fn.neg(e)));\n const { x, y } = R.toAffine();\n // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.\n if (R.is0() || !hasEven(y) || x !== r)\n return false;\n return true;\n }\n catch (error) {\n return false;\n }\n}\n/**\n * Schnorr signatures over secp256k1.\n * https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\n * @example\n * ```js\n * import { schnorr } from '@noble/curves/secp256k1';\n * const { secretKey, publicKey } = schnorr.keygen();\n * // const publicKey = schnorr.getPublicKey(secretKey);\n * const msg = new TextEncoder().encode('hello');\n * const sig = schnorr.sign(msg, secretKey);\n * const isValid = schnorr.verify(sig, msg, publicKey);\n * ```\n */\nexports.schnorr = (() => {\n const size = 32;\n const seedLength = 48;\n const randomSecretKey = (seed = (0, utils_js_1.randomBytes)(seedLength)) => {\n return (0, modular_ts_1.mapHashToField)(seed, secp256k1_CURVE.n);\n };\n // TODO: remove\n exports.secp256k1.utils.randomSecretKey;\n function keygen(seed) {\n const secretKey = randomSecretKey(seed);\n return { secretKey, publicKey: schnorrGetPublicKey(secretKey) };\n }\n return {\n keygen,\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n Point: Pointk1,\n utils: {\n randomSecretKey: randomSecretKey,\n randomPrivateKey: randomSecretKey,\n taggedHash,\n // TODO: remove\n lift_x,\n pointToBytes,\n numberToBytesBE: utils_ts_1.numberToBytesBE,\n bytesToNumberBE: utils_ts_1.bytesToNumberBE,\n mod: modular_ts_1.mod,\n },\n lengths: {\n secretKey: size,\n publicKey: size,\n publicKeyHasPrefix: false,\n signature: size * 2,\n seed: seedLength,\n },\n };\n})();\nconst isoMap = /* @__PURE__ */ (() => (0, hash_to_curve_ts_1.isogenyMap)(Fpk1, [\n // xNum\n [\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7',\n '0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581',\n '0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262',\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c',\n ],\n // xDen\n [\n '0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b',\n '0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n // yNum\n [\n '0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c',\n '0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3',\n '0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931',\n '0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84',\n ],\n // yDen\n [\n '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b',\n '0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573',\n '0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n].map((i) => i.map((j) => BigInt(j)))))();\nconst mapSWU = /* @__PURE__ */ (() => (0, weierstrass_ts_1.mapToCurveSimpleSWU)(Fpk1, {\n A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n B: BigInt('1771'),\n Z: Fpk1.create(BigInt('-11')),\n}))();\n/** Hashing / encoding to secp256k1 points / field. RFC 9380 methods. */\nexports.secp256k1_hasher = (() => (0, hash_to_curve_ts_1.createHasher)(exports.secp256k1.Point, (scalars) => {\n const { x, y } = mapSWU(Fpk1.create(scalars[0]));\n return isoMap(x, y);\n}, {\n DST: 'secp256k1_XMD:SHA-256_SSWU_RO_',\n encodeDST: 'secp256k1_XMD:SHA-256_SSWU_NU_',\n p: Fpk1.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha2_js_1.sha256,\n}))();\n/** @deprecated use `import { secp256k1_hasher } from '@noble/curves/secp256k1.js';` */\nexports.hashToCurve = (() => exports.secp256k1_hasher.hashToCurve)();\n/** @deprecated use `import { secp256k1_hasher } from '@noble/curves/secp256k1.js';` */\nexports.encodeToCurve = (() => exports.secp256k1_hasher.encodeToCurve)();\n//# sourceMappingURL=secp256k1.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.notImplemented = exports.bitMask = exports.utf8ToBytes = exports.randomBytes = exports.isBytes = exports.hexToBytes = exports.concatBytes = exports.bytesToUtf8 = exports.bytesToHex = exports.anumber = exports.abytes = void 0;\nexports.abool = abool;\nexports._abool2 = _abool2;\nexports._abytes2 = _abytes2;\nexports.numberToHexUnpadded = numberToHexUnpadded;\nexports.hexToNumber = hexToNumber;\nexports.bytesToNumberBE = bytesToNumberBE;\nexports.bytesToNumberLE = bytesToNumberLE;\nexports.numberToBytesBE = numberToBytesBE;\nexports.numberToBytesLE = numberToBytesLE;\nexports.numberToVarBytesBE = numberToVarBytesBE;\nexports.ensureBytes = ensureBytes;\nexports.equalBytes = equalBytes;\nexports.copyBytes = copyBytes;\nexports.asciiToBytes = asciiToBytes;\nexports.inRange = inRange;\nexports.aInRange = aInRange;\nexports.bitLen = bitLen;\nexports.bitGet = bitGet;\nexports.bitSet = bitSet;\nexports.createHmacDrbg = createHmacDrbg;\nexports.validateObject = validateObject;\nexports.isHash = isHash;\nexports._validateObject = _validateObject;\nexports.memoized = memoized;\n/**\n * Hex, bytes and number utilities.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst utils_js_1 = require(\"@noble/hashes/utils.js\");\nvar utils_js_2 = require(\"@noble/hashes/utils.js\");\nObject.defineProperty(exports, \"abytes\", { enumerable: true, get: function () { return utils_js_2.abytes; } });\nObject.defineProperty(exports, \"anumber\", { enumerable: true, get: function () { return utils_js_2.anumber; } });\nObject.defineProperty(exports, \"bytesToHex\", { enumerable: true, get: function () { return utils_js_2.bytesToHex; } });\nObject.defineProperty(exports, \"bytesToUtf8\", { enumerable: true, get: function () { return utils_js_2.bytesToUtf8; } });\nObject.defineProperty(exports, \"concatBytes\", { enumerable: true, get: function () { return utils_js_2.concatBytes; } });\nObject.defineProperty(exports, \"hexToBytes\", { enumerable: true, get: function () { return utils_js_2.hexToBytes; } });\nObject.defineProperty(exports, \"isBytes\", { enumerable: true, get: function () { return utils_js_2.isBytes; } });\nObject.defineProperty(exports, \"randomBytes\", { enumerable: true, get: function () { return utils_js_2.randomBytes; } });\nObject.defineProperty(exports, \"utf8ToBytes\", { enumerable: true, get: function () { return utils_js_2.utf8ToBytes; } });\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nfunction abool(title, value) {\n if (typeof value !== 'boolean')\n throw new Error(title + ' boolean expected, got ' + value);\n}\n// tmp name until v2\nfunction _abool2(value, title = '') {\n if (typeof value !== 'boolean') {\n const prefix = title && `\"${title}\"`;\n throw new Error(prefix + 'expected boolean, got type=' + typeof value);\n }\n return value;\n}\n// tmp name until v2\n/** Asserts something is Uint8Array. */\nfunction _abytes2(value, length, title = '') {\n const bytes = (0, utils_js_1.isBytes)(value);\n const len = value?.length;\n const needsLen = length !== undefined;\n if (!bytes || (needsLen && len !== length)) {\n const prefix = title && `\"${title}\" `;\n const ofLen = needsLen ? ` of length ${length}` : '';\n const got = bytes ? `length=${len}` : `type=${typeof value}`;\n throw new Error(prefix + 'expected Uint8Array' + ofLen + ', got ' + got);\n }\n return value;\n}\n// Used in weierstrass, der\nfunction numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? '0' + hex : hex;\n}\nfunction hexToNumber(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n return hex === '' ? _0n : BigInt('0x' + hex); // Big Endian\n}\n// BE: Big Endian, LE: Little Endian\nfunction bytesToNumberBE(bytes) {\n return hexToNumber((0, utils_js_1.bytesToHex)(bytes));\n}\nfunction bytesToNumberLE(bytes) {\n (0, utils_js_1.abytes)(bytes);\n return hexToNumber((0, utils_js_1.bytesToHex)(Uint8Array.from(bytes).reverse()));\n}\nfunction numberToBytesBE(n, len) {\n return (0, utils_js_1.hexToBytes)(n.toString(16).padStart(len * 2, '0'));\n}\nfunction numberToBytesLE(n, len) {\n return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nfunction numberToVarBytesBE(n) {\n return (0, utils_js_1.hexToBytes)(numberToHexUnpadded(n));\n}\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'secret key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nfunction ensureBytes(title, hex, expectedLength) {\n let res;\n if (typeof hex === 'string') {\n try {\n res = (0, utils_js_1.hexToBytes)(hex);\n }\n catch (e) {\n throw new Error(title + ' must be hex string or Uint8Array, cause: ' + e);\n }\n }\n else if ((0, utils_js_1.isBytes)(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n }\n else {\n throw new Error(title + ' must be hex string or Uint8Array');\n }\n const len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength)\n throw new Error(title + ' of length ' + expectedLength + ' expected, got ' + len);\n return res;\n}\n// Compares 2 u8a-s in kinda constant time\nfunction equalBytes(a, b) {\n if (a.length !== b.length)\n return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++)\n diff |= a[i] ^ b[i];\n return diff === 0;\n}\n/**\n * Copies Uint8Array. We can't use u8a.slice(), because u8a can be Buffer,\n * and Buffer#slice creates mutable copy. Never use Buffers!\n */\nfunction copyBytes(bytes) {\n return Uint8Array.from(bytes);\n}\n/**\n * Decodes 7-bit ASCII string to Uint8Array, throws on non-ascii symbols\n * Should be safe to use for things expected to be ASCII.\n * Returns exact same result as utf8ToBytes for ASCII or throws.\n */\nfunction asciiToBytes(ascii) {\n return Uint8Array.from(ascii, (c, i) => {\n const charCode = c.charCodeAt(0);\n if (c.length !== 1 || charCode > 127) {\n throw new Error(`string contains non-ASCII character \"${ascii[i]}\" with code ${charCode} at position ${i}`);\n }\n return charCode;\n });\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\n// export const utf8ToBytes: typeof utf8ToBytes_ = utf8ToBytes_;\n/**\n * Converts bytes to string using UTF8 encoding.\n * @example bytesToUtf8(Uint8Array.from([97, 98, 99])) // 'abc'\n */\n// export const bytesToUtf8: typeof bytesToUtf8_ = bytesToUtf8_;\n// Is positive bigint\nconst isPosBig = (n) => typeof n === 'bigint' && _0n <= n;\nfunction inRange(n, min, max) {\n return isPosBig(n) && isPosBig(min) && isPosBig(max) && min <= n && n < max;\n}\n/**\n * Asserts min <= n < max. NOTE: It's < max and not <= max.\n * @example\n * aInRange('x', x, 1n, 256n); // would assume x is in (1n..255n)\n */\nfunction aInRange(title, n, min, max) {\n // Why min <= n < max and not a (min < n < max) OR b (min <= n <= max)?\n // consider P=256n, min=0n, max=P\n // - a for min=0 would require -1: `inRange('x', x, -1n, P)`\n // - b would commonly require subtraction: `inRange('x', x, 0n, P - 1n)`\n // - our way is the cleanest: `inRange('x', x, 0n, P)\n if (!inRange(n, min, max))\n throw new Error('expected valid ' + title + ': ' + min + ' <= n < ' + max + ', got ' + n);\n}\n// Bit operations\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n * TODO: merge with nLength in modular\n */\nfunction bitLen(n) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1)\n ;\n return len;\n}\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nfunction bitGet(n, pos) {\n return (n >> BigInt(pos)) & _1n;\n}\n/**\n * Sets single bit at position.\n */\nfunction bitSet(n, pos, value) {\n return n | ((value ? _1n : _0n) << BigInt(pos));\n}\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nconst bitMask = (n) => (_1n << BigInt(n)) - _1n;\nexports.bitMask = bitMask;\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n * const drbg = createHmacDRBG(32, 32, hmac);\n * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nfunction createHmacDrbg(hashLen, qByteLen, hmacFn) {\n if (typeof hashLen !== 'number' || hashLen < 2)\n throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2)\n throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function')\n throw new Error('hmacFn must be a function');\n // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n const u8n = (len) => new Uint8Array(len); // creates Uint8Array\n const u8of = (byte) => Uint8Array.of(byte); // another shortcut\n let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n let i = 0; // Iterations counter, will throw when over 1000\n const reset = () => {\n v.fill(1);\n k.fill(0);\n i = 0;\n };\n const h = (...b) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n const reseed = (seed = u8n(0)) => {\n // HMAC-DRBG reseed() function. Steps D-G\n k = h(u8of(0x00), seed); // k = hmac(k || v || 0x00 || seed)\n v = h(); // v = hmac(k || v)\n if (seed.length === 0)\n return;\n k = h(u8of(0x01), seed); // k = hmac(k || v || 0x01 || seed)\n v = h(); // v = hmac(k || v)\n };\n const gen = () => {\n // HMAC-DRBG generate() function\n if (i++ >= 1000)\n throw new Error('drbg: tried 1000 values');\n let len = 0;\n const out = [];\n while (len < qByteLen) {\n v = h();\n const sl = v.slice();\n out.push(sl);\n len += v.length;\n }\n return (0, utils_js_1.concatBytes)(...out);\n };\n const genUntil = (seed, pred) => {\n reset();\n reseed(seed); // Steps D-G\n let res = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen())))\n reseed();\n reset();\n return res;\n };\n return genUntil;\n}\n// Validating curves and fields\nconst validatorFns = {\n bigint: (val) => typeof val === 'bigint',\n function: (val) => typeof val === 'function',\n boolean: (val) => typeof val === 'boolean',\n string: (val) => typeof val === 'string',\n stringOrUint8Array: (val) => typeof val === 'string' || (0, utils_js_1.isBytes)(val),\n isSafeInteger: (val) => Number.isSafeInteger(val),\n array: (val) => Array.isArray(val),\n field: (val, object) => object.Fp.isValid(val),\n hash: (val) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n};\n// type Record = { [P in K]: T; }\nfunction validateObject(object, validators, optValidators = {}) {\n const checkField = (fieldName, type, isOptional) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error('invalid validator function');\n const val = object[fieldName];\n if (isOptional && val === undefined)\n return;\n if (!checkVal(val, object)) {\n throw new Error('param ' + String(fieldName) + ' is invalid. Expected ' + type + ', got ' + val);\n }\n };\n for (const [fieldName, type] of Object.entries(validators))\n checkField(fieldName, type, false);\n for (const [fieldName, type] of Object.entries(optValidators))\n checkField(fieldName, type, true);\n return object;\n}\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\nfunction isHash(val) {\n return typeof val === 'function' && Number.isSafeInteger(val.outputLen);\n}\nfunction _validateObject(object, fields, optFields = {}) {\n if (!object || typeof object !== 'object')\n throw new Error('expected valid options object');\n function checkField(fieldName, expectedType, isOpt) {\n const val = object[fieldName];\n if (isOpt && val === undefined)\n return;\n const current = typeof val;\n if (current !== expectedType || val === null)\n throw new Error(`param \"${fieldName}\" is invalid: expected ${expectedType}, got ${current}`);\n }\n Object.entries(fields).forEach(([k, v]) => checkField(k, v, false));\n Object.entries(optFields).forEach(([k, v]) => checkField(k, v, true));\n}\n/**\n * throws not implemented error\n */\nconst notImplemented = () => {\n throw new Error('not implemented');\n};\nexports.notImplemented = notImplemented;\n/**\n * Memoizes (caches) computation result.\n * Uses WeakMap: the value is going auto-cleaned by GC after last reference is removed.\n */\nfunction memoized(fn) {\n const map = new WeakMap();\n return (arg, ...args) => {\n const val = map.get(arg);\n if (val !== undefined)\n return val;\n const computed = fn(arg, ...args);\n map.set(arg, computed);\n return computed;\n };\n}\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SHA512_IV = exports.SHA384_IV = exports.SHA224_IV = exports.SHA256_IV = exports.HashMD = void 0;\nexports.setBigUint64 = setBigUint64;\nexports.Chi = Chi;\nexports.Maj = Maj;\n/**\n * Internal Merkle-Damgard hash utils.\n * @module\n */\nconst utils_ts_1 = require(\"./utils.js\");\n/** Polyfill for Safari 14. https://caniuse.com/mdn-javascript_builtins_dataview_setbiguint64 */\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n/** Choice: a ? b : c */\nfunction Chi(a, b, c) {\n return (a & b) ^ (~a & c);\n}\n/** Majority function, true if any two inputs is true. */\nfunction Maj(a, b, c) {\n return (a & b) ^ (a & c) ^ (b & c);\n}\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nclass HashMD extends utils_ts_1.Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.buffer = new Uint8Array(blockLen);\n this.view = (0, utils_ts_1.createView)(this.buffer);\n }\n update(data) {\n (0, utils_ts_1.aexists)(this);\n data = (0, utils_ts_1.toBytes)(data);\n (0, utils_ts_1.abytes)(data);\n const { view, buffer, blockLen } = this;\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = (0, utils_ts_1.createView)(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n (0, utils_ts_1.aexists)(this);\n (0, utils_ts_1.aoutput)(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n (0, utils_ts_1.clean)(this.buffer.subarray(pos));\n // we have less than padOffset left in buffer, so we cannot put length in\n // current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = (0, utils_ts_1.createView)(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.destroyed = destroyed;\n to.finished = finished;\n to.length = length;\n to.pos = pos;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n clone() {\n return this._cloneInto();\n }\n}\nexports.HashMD = HashMD;\n/**\n * Initial SHA-2 state: fractional parts of square roots of first 16 primes 2..53.\n * Check out `test/misc/sha2-gen-iv.js` for recomputation guide.\n */\n/** Initial SHA256 state. Bits 0..32 of frac part of sqrt of primes 2..19 */\nexports.SHA256_IV = Uint32Array.from([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,\n]);\n/** Initial SHA224 state. Bits 32..64 of frac part of sqrt of primes 23..53 */\nexports.SHA224_IV = Uint32Array.from([\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4,\n]);\n/** Initial SHA384 state. Bits 0..64 of frac part of sqrt of primes 23..53 */\nexports.SHA384_IV = Uint32Array.from([\n 0xcbbb9d5d, 0xc1059ed8, 0x629a292a, 0x367cd507, 0x9159015a, 0x3070dd17, 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31, 0x8eb44a87, 0x68581511, 0xdb0c2e0d, 0x64f98fa7, 0x47b5481d, 0xbefa4fa4,\n]);\n/** Initial SHA512 state. Bits 0..64 of frac part of sqrt of primes 2..19 */\nexports.SHA512_IV = Uint32Array.from([\n 0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f, 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179,\n]);\n//# sourceMappingURL=_md.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBig = exports.shrSL = exports.shrSH = exports.rotrSL = exports.rotrSH = exports.rotrBL = exports.rotrBH = exports.rotr32L = exports.rotr32H = exports.rotlSL = exports.rotlSH = exports.rotlBL = exports.rotlBH = exports.add5L = exports.add5H = exports.add4L = exports.add4H = exports.add3L = exports.add3H = void 0;\nexports.add = add;\nexports.fromBig = fromBig;\nexports.split = split;\n/**\n * Internal helpers for u64. BigUint64Array is too slow as per 2025, so we implement it using Uint32Array.\n * @todo re-check https://issues.chromium.org/issues/42212588\n * @module\n */\nconst U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\nfunction fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nfunction split(lst, le = false) {\n const len = lst.length;\n let Ah = new Uint32Array(len);\n let Al = new Uint32Array(len);\n for (let i = 0; i < len; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\nexports.toBig = toBig;\n// for Shift in [0, 32)\nconst shrSH = (h, _l, s) => h >>> s;\nexports.shrSH = shrSH;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\nexports.shrSL = shrSL;\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nexports.rotrSH = rotrSH;\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\nexports.rotrSL = rotrSL;\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nexports.rotrBH = rotrBH;\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\nexports.rotrBL = rotrBL;\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h, l) => l;\nexports.rotr32H = rotr32H;\nconst rotr32L = (h, _l) => h;\nexports.rotr32L = rotr32L;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nexports.rotlSH = rotlSH;\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\nexports.rotlSL = rotlSL;\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nexports.rotlBH = rotlBH;\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\nexports.rotlBL = rotlBL;\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nexports.add3L = add3L;\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nexports.add3H = add3H;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nexports.add4L = add4L;\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nexports.add4H = add4H;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nexports.add5L = add5L;\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\nexports.add5H = add5H;\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexports.default = u64;\n//# sourceMappingURL=_u64.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crypto = void 0;\nexports.crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hmac = exports.HMAC = void 0;\n/**\n * HMAC: RFC2104 message authentication code.\n * @module\n */\nconst utils_ts_1 = require(\"./utils.js\");\nclass HMAC extends utils_ts_1.Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n (0, utils_ts_1.ahash)(hash);\n const key = (0, utils_ts_1.toBytes)(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new Error('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n (0, utils_ts_1.clean)(pad);\n }\n update(buf) {\n (0, utils_ts_1.aexists)(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n (0, utils_ts_1.aexists)(this);\n (0, utils_ts_1.abytes)(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n clone() {\n return this._cloneInto();\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\nexports.HMAC = HMAC;\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n * @example\n * import { hmac } from '@noble/hashes/hmac';\n * import { sha256 } from '@noble/hashes/sha2';\n * const mac1 = hmac(sha256, 'key', 'message');\n */\nconst hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nexports.hmac = hmac;\nexports.hmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ripemd160 = exports.RIPEMD160 = exports.md5 = exports.MD5 = exports.sha1 = exports.SHA1 = void 0;\n/**\n\nSHA1 (RFC 3174), MD5 (RFC 1321) and RIPEMD160 (RFC 2286) legacy, weak hash functions.\nDon't use them in a new protocol. What \"weak\" means:\n\n- Collisions can be made with 2^18 effort in MD5, 2^60 in SHA1, 2^80 in RIPEMD160.\n- No practical pre-image attacks (only theoretical, 2^123.4)\n- HMAC seems kinda ok: https://datatracker.ietf.org/doc/html/rfc6151\n * @module\n */\nconst _md_ts_1 = require(\"./_md.js\");\nconst utils_ts_1 = require(\"./utils.js\");\n/** Initial SHA1 state */\nconst SHA1_IV = /* @__PURE__ */ Uint32Array.from([\n 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0,\n]);\n// Reusable temporary buffer\nconst SHA1_W = /* @__PURE__ */ new Uint32Array(80);\n/** SHA1 legacy hash class. */\nclass SHA1 extends _md_ts_1.HashMD {\n constructor() {\n super(64, 20, 8, false);\n this.A = SHA1_IV[0] | 0;\n this.B = SHA1_IV[1] | 0;\n this.C = SHA1_IV[2] | 0;\n this.D = SHA1_IV[3] | 0;\n this.E = SHA1_IV[4] | 0;\n }\n get() {\n const { A, B, C, D, E } = this;\n return [A, B, C, D, E];\n }\n set(A, B, C, D, E) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n }\n process(view, offset) {\n for (let i = 0; i < 16; i++, offset += 4)\n SHA1_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 80; i++)\n SHA1_W[i] = (0, utils_ts_1.rotl)(SHA1_W[i - 3] ^ SHA1_W[i - 8] ^ SHA1_W[i - 14] ^ SHA1_W[i - 16], 1);\n // Compression function main loop, 80 rounds\n let { A, B, C, D, E } = this;\n for (let i = 0; i < 80; i++) {\n let F, K;\n if (i < 20) {\n F = (0, _md_ts_1.Chi)(B, C, D);\n K = 0x5a827999;\n }\n else if (i < 40) {\n F = B ^ C ^ D;\n K = 0x6ed9eba1;\n }\n else if (i < 60) {\n F = (0, _md_ts_1.Maj)(B, C, D);\n K = 0x8f1bbcdc;\n }\n else {\n F = B ^ C ^ D;\n K = 0xca62c1d6;\n }\n const T = ((0, utils_ts_1.rotl)(A, 5) + F + E + K + SHA1_W[i]) | 0;\n E = D;\n D = C;\n C = (0, utils_ts_1.rotl)(B, 30);\n B = A;\n A = T;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n this.set(A, B, C, D, E);\n }\n roundClean() {\n (0, utils_ts_1.clean)(SHA1_W);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0);\n (0, utils_ts_1.clean)(this.buffer);\n }\n}\nexports.SHA1 = SHA1;\n/** SHA1 (RFC 3174) legacy hash function. It was cryptographically broken. */\nexports.sha1 = (0, utils_ts_1.createHasher)(() => new SHA1());\n/** Per-round constants */\nconst p32 = /* @__PURE__ */ Math.pow(2, 32);\nconst K = /* @__PURE__ */ Array.from({ length: 64 }, (_, i) => Math.floor(p32 * Math.abs(Math.sin(i + 1))));\n/** md5 initial state: same as sha1, but 4 u32 instead of 5. */\nconst MD5_IV = /* @__PURE__ */ SHA1_IV.slice(0, 4);\n// Reusable temporary buffer\nconst MD5_W = /* @__PURE__ */ new Uint32Array(16);\n/** MD5 legacy hash class. */\nclass MD5 extends _md_ts_1.HashMD {\n constructor() {\n super(64, 16, 8, true);\n this.A = MD5_IV[0] | 0;\n this.B = MD5_IV[1] | 0;\n this.C = MD5_IV[2] | 0;\n this.D = MD5_IV[3] | 0;\n }\n get() {\n const { A, B, C, D } = this;\n return [A, B, C, D];\n }\n set(A, B, C, D) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n }\n process(view, offset) {\n for (let i = 0; i < 16; i++, offset += 4)\n MD5_W[i] = view.getUint32(offset, true);\n // Compression function main loop, 64 rounds\n let { A, B, C, D } = this;\n for (let i = 0; i < 64; i++) {\n let F, g, s;\n if (i < 16) {\n F = (0, _md_ts_1.Chi)(B, C, D);\n g = i;\n s = [7, 12, 17, 22];\n }\n else if (i < 32) {\n F = (0, _md_ts_1.Chi)(D, B, C);\n g = (5 * i + 1) % 16;\n s = [5, 9, 14, 20];\n }\n else if (i < 48) {\n F = B ^ C ^ D;\n g = (3 * i + 5) % 16;\n s = [4, 11, 16, 23];\n }\n else {\n F = C ^ (B | ~D);\n g = (7 * i) % 16;\n s = [6, 10, 15, 21];\n }\n F = F + A + K[i] + MD5_W[g];\n A = D;\n D = C;\n C = B;\n B = B + (0, utils_ts_1.rotl)(F, s[i % 4]);\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n this.set(A, B, C, D);\n }\n roundClean() {\n (0, utils_ts_1.clean)(MD5_W);\n }\n destroy() {\n this.set(0, 0, 0, 0);\n (0, utils_ts_1.clean)(this.buffer);\n }\n}\nexports.MD5 = MD5;\n/**\n * MD5 (RFC 1321) legacy hash function. It was cryptographically broken.\n * MD5 architecture is similar to SHA1, with some differences:\n * - Reduced output length: 16 bytes (128 bit) instead of 20\n * - 64 rounds, instead of 80\n * - Little-endian: could be faster, but will require more code\n * - Non-linear index selection: huge speed-up for unroll\n * - Per round constants: more memory accesses, additional speed-up for unroll\n */\nexports.md5 = (0, utils_ts_1.createHasher)(() => new MD5());\n// RIPEMD-160\nconst Rho160 = /* @__PURE__ */ Uint8Array.from([\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n]);\nconst Id160 = /* @__PURE__ */ (() => Uint8Array.from(new Array(16).fill(0).map((_, i) => i)))();\nconst Pi160 = /* @__PURE__ */ (() => Id160.map((i) => (9 * i + 5) % 16))();\nconst idxLR = /* @__PURE__ */ (() => {\n const L = [Id160];\n const R = [Pi160];\n const res = [L, R];\n for (let i = 0; i < 4; i++)\n for (let j of res)\n j.push(j[i].map((k) => Rho160[k]));\n return res;\n})();\nconst idxL = /* @__PURE__ */ (() => idxLR[0])();\nconst idxR = /* @__PURE__ */ (() => idxLR[1])();\n// const [idxL, idxR] = idxLR;\nconst shifts160 = /* @__PURE__ */ [\n [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8],\n [12, 13, 11, 15, 6, 9, 9, 7, 12, 15, 11, 13, 7, 8, 7, 7],\n [13, 15, 14, 11, 7, 7, 6, 8, 13, 14, 13, 12, 5, 5, 6, 9],\n [14, 11, 12, 14, 8, 6, 5, 5, 15, 12, 15, 14, 9, 9, 8, 6],\n [15, 12, 13, 13, 9, 5, 8, 6, 14, 11, 12, 11, 8, 6, 5, 5],\n].map((i) => Uint8Array.from(i));\nconst shiftsL160 = /* @__PURE__ */ idxL.map((idx, i) => idx.map((j) => shifts160[i][j]));\nconst shiftsR160 = /* @__PURE__ */ idxR.map((idx, i) => idx.map((j) => shifts160[i][j]));\nconst Kl160 = /* @__PURE__ */ Uint32Array.from([\n 0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e,\n]);\nconst Kr160 = /* @__PURE__ */ Uint32Array.from([\n 0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000,\n]);\n// It's called f() in spec.\nfunction ripemd_f(group, x, y, z) {\n if (group === 0)\n return x ^ y ^ z;\n if (group === 1)\n return (x & y) | (~x & z);\n if (group === 2)\n return (x | ~y) ^ z;\n if (group === 3)\n return (x & z) | (y & ~z);\n return x ^ (y | ~z);\n}\n// Reusable temporary buffer\nconst BUF_160 = /* @__PURE__ */ new Uint32Array(16);\nclass RIPEMD160 extends _md_ts_1.HashMD {\n constructor() {\n super(64, 20, 8, true);\n this.h0 = 0x67452301 | 0;\n this.h1 = 0xefcdab89 | 0;\n this.h2 = 0x98badcfe | 0;\n this.h3 = 0x10325476 | 0;\n this.h4 = 0xc3d2e1f0 | 0;\n }\n get() {\n const { h0, h1, h2, h3, h4 } = this;\n return [h0, h1, h2, h3, h4];\n }\n set(h0, h1, h2, h3, h4) {\n this.h0 = h0 | 0;\n this.h1 = h1 | 0;\n this.h2 = h2 | 0;\n this.h3 = h3 | 0;\n this.h4 = h4 | 0;\n }\n process(view, offset) {\n for (let i = 0; i < 16; i++, offset += 4)\n BUF_160[i] = view.getUint32(offset, true);\n // prettier-ignore\n let al = this.h0 | 0, ar = al, bl = this.h1 | 0, br = bl, cl = this.h2 | 0, cr = cl, dl = this.h3 | 0, dr = dl, el = this.h4 | 0, er = el;\n // Instead of iterating 0 to 80, we split it into 5 groups\n // And use the groups in constants, functions, etc. Much simpler\n for (let group = 0; group < 5; group++) {\n const rGroup = 4 - group;\n const hbl = Kl160[group], hbr = Kr160[group]; // prettier-ignore\n const rl = idxL[group], rr = idxR[group]; // prettier-ignore\n const sl = shiftsL160[group], sr = shiftsR160[group]; // prettier-ignore\n for (let i = 0; i < 16; i++) {\n const tl = ((0, utils_ts_1.rotl)(al + ripemd_f(group, bl, cl, dl) + BUF_160[rl[i]] + hbl, sl[i]) + el) | 0;\n al = el, el = dl, dl = (0, utils_ts_1.rotl)(cl, 10) | 0, cl = bl, bl = tl; // prettier-ignore\n }\n // 2 loops are 10% faster\n for (let i = 0; i < 16; i++) {\n const tr = ((0, utils_ts_1.rotl)(ar + ripemd_f(rGroup, br, cr, dr) + BUF_160[rr[i]] + hbr, sr[i]) + er) | 0;\n ar = er, er = dr, dr = (0, utils_ts_1.rotl)(cr, 10) | 0, cr = br, br = tr; // prettier-ignore\n }\n }\n // Add the compressed chunk to the current hash value\n this.set((this.h1 + cl + dr) | 0, (this.h2 + dl + er) | 0, (this.h3 + el + ar) | 0, (this.h4 + al + br) | 0, (this.h0 + bl + cr) | 0);\n }\n roundClean() {\n (0, utils_ts_1.clean)(BUF_160);\n }\n destroy() {\n this.destroyed = true;\n (0, utils_ts_1.clean)(this.buffer);\n this.set(0, 0, 0, 0, 0);\n }\n}\nexports.RIPEMD160 = RIPEMD160;\n/**\n * RIPEMD-160 - a legacy hash function from 1990s.\n * * https://homes.esat.kuleuven.be/~bosselae/ripemd160.html\n * * https://homes.esat.kuleuven.be/~bosselae/ripemd160/pdf/AB-9601/AB-9601.pdf\n */\nexports.ripemd160 = (0, utils_ts_1.createHasher)(() => new RIPEMD160());\n//# sourceMappingURL=legacy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pbkdf2 = pbkdf2;\nexports.pbkdf2Async = pbkdf2Async;\n/**\n * PBKDF (RFC 2898). Can be used to create a key from password and salt.\n * @module\n */\nconst hmac_ts_1 = require(\"./hmac.js\");\n// prettier-ignore\nconst utils_ts_1 = require(\"./utils.js\");\n// Common prologue and epilogue for sync/async functions\nfunction pbkdf2Init(hash, _password, _salt, _opts) {\n (0, utils_ts_1.ahash)(hash);\n const opts = (0, utils_ts_1.checkOpts)({ dkLen: 32, asyncTick: 10 }, _opts);\n const { c, dkLen, asyncTick } = opts;\n (0, utils_ts_1.anumber)(c);\n (0, utils_ts_1.anumber)(dkLen);\n (0, utils_ts_1.anumber)(asyncTick);\n if (c < 1)\n throw new Error('iterations (c) should be >= 1');\n const password = (0, utils_ts_1.kdfInputToBytes)(_password);\n const salt = (0, utils_ts_1.kdfInputToBytes)(_salt);\n // DK = PBKDF2(PRF, Password, Salt, c, dkLen);\n const DK = new Uint8Array(dkLen);\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n const PRF = hmac_ts_1.hmac.create(hash, password);\n const PRFSalt = PRF._cloneInto().update(salt);\n return { c, dkLen, asyncTick, DK, PRF, PRFSalt };\n}\nfunction pbkdf2Output(PRF, PRFSalt, DK, prfW, u) {\n PRF.destroy();\n PRFSalt.destroy();\n if (prfW)\n prfW.destroy();\n (0, utils_ts_1.clean)(u);\n return DK;\n}\n/**\n * PBKDF2-HMAC: RFC 2898 key derivation function\n * @param hash - hash function that would be used e.g. sha256\n * @param password - password from which a derived key is generated\n * @param salt - cryptographic salt\n * @param opts - {c, dkLen} where c is work factor and dkLen is output message size\n * @example\n * const key = pbkdf2(sha256, 'password', 'salt', { dkLen: 32, c: Math.pow(2, 18) });\n */\nfunction pbkdf2(hash, password, salt, opts) {\n const { c, dkLen, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n let prfW; // Working copy\n const arr = new Uint8Array(4);\n const view = (0, utils_ts_1.createView)(arr);\n const u = new Uint8Array(PRF.outputLen);\n // DK = T1 + T2 + ⋯ + Tdklen/hlen\n for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n // Ti = F(Password, Salt, c, i)\n const Ti = DK.subarray(pos, pos + PRF.outputLen);\n view.setInt32(0, ti, false);\n // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n Ti.set(u.subarray(0, Ti.length));\n for (let ui = 1; ui < c; ui++) {\n // Uc = PRF(Password, Uc−1)\n PRF._cloneInto(prfW).update(u).digestInto(u);\n for (let i = 0; i < Ti.length; i++)\n Ti[i] ^= u[i];\n }\n }\n return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\n/**\n * PBKDF2-HMAC: RFC 2898 key derivation function. Async version.\n * @example\n * await pbkdf2Async(sha256, 'password', 'salt', { dkLen: 32, c: 500_000 });\n */\nasync function pbkdf2Async(hash, password, salt, opts) {\n const { c, dkLen, asyncTick, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n let prfW; // Working copy\n const arr = new Uint8Array(4);\n const view = (0, utils_ts_1.createView)(arr);\n const u = new Uint8Array(PRF.outputLen);\n // DK = T1 + T2 + ⋯ + Tdklen/hlen\n for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n // Ti = F(Password, Salt, c, i)\n const Ti = DK.subarray(pos, pos + PRF.outputLen);\n view.setInt32(0, ti, false);\n // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n Ti.set(u.subarray(0, Ti.length));\n await (0, utils_ts_1.asyncLoop)(c - 1, asyncTick, () => {\n // Uc = PRF(Password, Uc−1)\n PRF._cloneInto(prfW).update(u).digestInto(u);\n for (let i = 0; i < Ti.length; i++)\n Ti[i] ^= u[i];\n });\n }\n return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\n//# sourceMappingURL=pbkdf2.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ripemd160 = exports.RIPEMD160 = void 0;\n/**\n * RIPEMD-160 legacy hash function.\n * https://homes.esat.kuleuven.be/~bosselae/ripemd160.html\n * https://homes.esat.kuleuven.be/~bosselae/ripemd160/pdf/AB-9601/AB-9601.pdf\n * @module\n * @deprecated\n */\nconst legacy_ts_1 = require(\"./legacy.js\");\n/** @deprecated Use import from `noble/hashes/legacy` module */\nexports.RIPEMD160 = legacy_ts_1.RIPEMD160;\n/** @deprecated Use import from `noble/hashes/legacy` module */\nexports.ripemd160 = legacy_ts_1.ripemd160;\n//# sourceMappingURL=ripemd160.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha512_224 = exports.sha512_256 = exports.sha384 = exports.sha512 = exports.sha224 = exports.sha256 = exports.SHA512_256 = exports.SHA512_224 = exports.SHA384 = exports.SHA512 = exports.SHA224 = exports.SHA256 = void 0;\n/**\n * SHA2 hash function. A.k.a. sha256, sha384, sha512, sha512_224, sha512_256.\n * SHA256 is the fastest hash implementable in JS, even faster than Blake3.\n * Check out [RFC 4634](https://datatracker.ietf.org/doc/html/rfc4634) and\n * [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf).\n * @module\n */\nconst _md_ts_1 = require(\"./_md.js\");\nconst u64 = require(\"./_u64.js\");\nconst utils_ts_1 = require(\"./utils.js\");\n/**\n * Round constants:\n * First 32 bits of fractional parts of the cube roots of the first 64 primes 2..311)\n */\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ Uint32Array.from([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n/** Reusable temporary buffer. \"W\" comes straight from spec. */\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nclass SHA256 extends _md_ts_1.HashMD {\n constructor(outputLen = 32) {\n super(64, outputLen, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = _md_ts_1.SHA256_IV[0] | 0;\n this.B = _md_ts_1.SHA256_IV[1] | 0;\n this.C = _md_ts_1.SHA256_IV[2] | 0;\n this.D = _md_ts_1.SHA256_IV[3] | 0;\n this.E = _md_ts_1.SHA256_IV[4] | 0;\n this.F = _md_ts_1.SHA256_IV[5] | 0;\n this.G = _md_ts_1.SHA256_IV[6] | 0;\n this.H = _md_ts_1.SHA256_IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = (0, utils_ts_1.rotr)(W15, 7) ^ (0, utils_ts_1.rotr)(W15, 18) ^ (W15 >>> 3);\n const s1 = (0, utils_ts_1.rotr)(W2, 17) ^ (0, utils_ts_1.rotr)(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = (0, utils_ts_1.rotr)(E, 6) ^ (0, utils_ts_1.rotr)(E, 11) ^ (0, utils_ts_1.rotr)(E, 25);\n const T1 = (H + sigma1 + (0, _md_ts_1.Chi)(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = (0, utils_ts_1.rotr)(A, 2) ^ (0, utils_ts_1.rotr)(A, 13) ^ (0, utils_ts_1.rotr)(A, 22);\n const T2 = (sigma0 + (0, _md_ts_1.Maj)(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n (0, utils_ts_1.clean)(SHA256_W);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n (0, utils_ts_1.clean)(this.buffer);\n }\n}\nexports.SHA256 = SHA256;\nclass SHA224 extends SHA256 {\n constructor() {\n super(28);\n this.A = _md_ts_1.SHA224_IV[0] | 0;\n this.B = _md_ts_1.SHA224_IV[1] | 0;\n this.C = _md_ts_1.SHA224_IV[2] | 0;\n this.D = _md_ts_1.SHA224_IV[3] | 0;\n this.E = _md_ts_1.SHA224_IV[4] | 0;\n this.F = _md_ts_1.SHA224_IV[5] | 0;\n this.G = _md_ts_1.SHA224_IV[6] | 0;\n this.H = _md_ts_1.SHA224_IV[7] | 0;\n }\n}\nexports.SHA224 = SHA224;\n// SHA2-512 is slower than sha256 in js because u64 operations are slow.\n// Round contants\n// First 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409\n// prettier-ignore\nconst K512 = /* @__PURE__ */ (() => u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n))))();\nconst SHA512_Kh = /* @__PURE__ */ (() => K512[0])();\nconst SHA512_Kl = /* @__PURE__ */ (() => K512[1])();\n// Reusable temporary buffers\nconst SHA512_W_H = /* @__PURE__ */ new Uint32Array(80);\nconst SHA512_W_L = /* @__PURE__ */ new Uint32Array(80);\nclass SHA512 extends _md_ts_1.HashMD {\n constructor(outputLen = 64) {\n super(128, outputLen, 16, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = _md_ts_1.SHA512_IV[0] | 0;\n this.Al = _md_ts_1.SHA512_IV[1] | 0;\n this.Bh = _md_ts_1.SHA512_IV[2] | 0;\n this.Bl = _md_ts_1.SHA512_IV[3] | 0;\n this.Ch = _md_ts_1.SHA512_IV[4] | 0;\n this.Cl = _md_ts_1.SHA512_IV[5] | 0;\n this.Dh = _md_ts_1.SHA512_IV[6] | 0;\n this.Dl = _md_ts_1.SHA512_IV[7] | 0;\n this.Eh = _md_ts_1.SHA512_IV[8] | 0;\n this.El = _md_ts_1.SHA512_IV[9] | 0;\n this.Fh = _md_ts_1.SHA512_IV[10] | 0;\n this.Fl = _md_ts_1.SHA512_IV[11] | 0;\n this.Gh = _md_ts_1.SHA512_IV[12] | 0;\n this.Gl = _md_ts_1.SHA512_IV[13] | 0;\n this.Hh = _md_ts_1.SHA512_IV[14] | 0;\n this.Hl = _md_ts_1.SHA512_IV[15] | 0;\n }\n // prettier-ignore\n get() {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n roundClean() {\n (0, utils_ts_1.clean)(SHA512_W_H, SHA512_W_L);\n }\n destroy() {\n (0, utils_ts_1.clean)(this.buffer);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nexports.SHA512 = SHA512;\nclass SHA384 extends SHA512 {\n constructor() {\n super(48);\n this.Ah = _md_ts_1.SHA384_IV[0] | 0;\n this.Al = _md_ts_1.SHA384_IV[1] | 0;\n this.Bh = _md_ts_1.SHA384_IV[2] | 0;\n this.Bl = _md_ts_1.SHA384_IV[3] | 0;\n this.Ch = _md_ts_1.SHA384_IV[4] | 0;\n this.Cl = _md_ts_1.SHA384_IV[5] | 0;\n this.Dh = _md_ts_1.SHA384_IV[6] | 0;\n this.Dl = _md_ts_1.SHA384_IV[7] | 0;\n this.Eh = _md_ts_1.SHA384_IV[8] | 0;\n this.El = _md_ts_1.SHA384_IV[9] | 0;\n this.Fh = _md_ts_1.SHA384_IV[10] | 0;\n this.Fl = _md_ts_1.SHA384_IV[11] | 0;\n this.Gh = _md_ts_1.SHA384_IV[12] | 0;\n this.Gl = _md_ts_1.SHA384_IV[13] | 0;\n this.Hh = _md_ts_1.SHA384_IV[14] | 0;\n this.Hl = _md_ts_1.SHA384_IV[15] | 0;\n }\n}\nexports.SHA384 = SHA384;\n/**\n * Truncated SHA512/256 and SHA512/224.\n * SHA512_IV is XORed with 0xa5a5a5a5a5a5a5a5, then used as \"intermediary\" IV of SHA512/t.\n * Then t hashes string to produce result IV.\n * See `test/misc/sha2-gen-iv.js`.\n */\n/** SHA512/224 IV */\nconst T224_IV = /* @__PURE__ */ Uint32Array.from([\n 0x8c3d37c8, 0x19544da2, 0x73e19966, 0x89dcd4d6, 0x1dfab7ae, 0x32ff9c82, 0x679dd514, 0x582f9fcf,\n 0x0f6d2b69, 0x7bd44da8, 0x77e36f73, 0x04c48942, 0x3f9d85a8, 0x6a1d36c8, 0x1112e6ad, 0x91d692a1,\n]);\n/** SHA512/256 IV */\nconst T256_IV = /* @__PURE__ */ Uint32Array.from([\n 0x22312194, 0xfc2bf72c, 0x9f555fa3, 0xc84c64c2, 0x2393b86b, 0x6f53b151, 0x96387719, 0x5940eabd,\n 0x96283ee2, 0xa88effe3, 0xbe5e1e25, 0x53863992, 0x2b0199fc, 0x2c85b8aa, 0x0eb72ddc, 0x81c52ca2,\n]);\nclass SHA512_224 extends SHA512 {\n constructor() {\n super(28);\n this.Ah = T224_IV[0] | 0;\n this.Al = T224_IV[1] | 0;\n this.Bh = T224_IV[2] | 0;\n this.Bl = T224_IV[3] | 0;\n this.Ch = T224_IV[4] | 0;\n this.Cl = T224_IV[5] | 0;\n this.Dh = T224_IV[6] | 0;\n this.Dl = T224_IV[7] | 0;\n this.Eh = T224_IV[8] | 0;\n this.El = T224_IV[9] | 0;\n this.Fh = T224_IV[10] | 0;\n this.Fl = T224_IV[11] | 0;\n this.Gh = T224_IV[12] | 0;\n this.Gl = T224_IV[13] | 0;\n this.Hh = T224_IV[14] | 0;\n this.Hl = T224_IV[15] | 0;\n }\n}\nexports.SHA512_224 = SHA512_224;\nclass SHA512_256 extends SHA512 {\n constructor() {\n super(32);\n this.Ah = T256_IV[0] | 0;\n this.Al = T256_IV[1] | 0;\n this.Bh = T256_IV[2] | 0;\n this.Bl = T256_IV[3] | 0;\n this.Ch = T256_IV[4] | 0;\n this.Cl = T256_IV[5] | 0;\n this.Dh = T256_IV[6] | 0;\n this.Dl = T256_IV[7] | 0;\n this.Eh = T256_IV[8] | 0;\n this.El = T256_IV[9] | 0;\n this.Fh = T256_IV[10] | 0;\n this.Fl = T256_IV[11] | 0;\n this.Gh = T256_IV[12] | 0;\n this.Gl = T256_IV[13] | 0;\n this.Hh = T256_IV[14] | 0;\n this.Hl = T256_IV[15] | 0;\n }\n}\nexports.SHA512_256 = SHA512_256;\n/**\n * SHA2-256 hash function from RFC 4634.\n *\n * It is the fastest JS hash, even faster than Blake3.\n * To break sha256 using birthday attack, attackers need to try 2^128 hashes.\n * BTC network is doing 2^70 hashes/sec (2^95 hashes/year) as per 2025.\n */\nexports.sha256 = (0, utils_ts_1.createHasher)(() => new SHA256());\n/** SHA2-224 hash function from RFC 4634 */\nexports.sha224 = (0, utils_ts_1.createHasher)(() => new SHA224());\n/** SHA2-512 hash function from RFC 4634. */\nexports.sha512 = (0, utils_ts_1.createHasher)(() => new SHA512());\n/** SHA2-384 hash function from RFC 4634. */\nexports.sha384 = (0, utils_ts_1.createHasher)(() => new SHA384());\n/**\n * SHA2-512/256 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexports.sha512_256 = (0, utils_ts_1.createHasher)(() => new SHA512_256());\n/**\n * SHA2-512/224 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexports.sha512_224 = (0, utils_ts_1.createHasher)(() => new SHA512_224());\n//# sourceMappingURL=sha2.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha224 = exports.SHA224 = exports.sha256 = exports.SHA256 = void 0;\n/**\n * SHA2-256 a.k.a. sha256. In JS, it is the fastest hash, even faster than Blake3.\n *\n * To break sha256 using birthday attack, attackers need to try 2^128 hashes.\n * BTC network is doing 2^70 hashes/sec (2^95 hashes/year) as per 2025.\n *\n * Check out [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf).\n * @module\n * @deprecated\n */\nconst sha2_ts_1 = require(\"./sha2.js\");\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.SHA256 = sha2_ts_1.SHA256;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.sha256 = sha2_ts_1.sha256;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.SHA224 = sha2_ts_1.SHA224;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.sha224 = sha2_ts_1.sha224;\n//# sourceMappingURL=sha256.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shake256 = exports.shake128 = exports.keccak_512 = exports.keccak_384 = exports.keccak_256 = exports.keccak_224 = exports.sha3_512 = exports.sha3_384 = exports.sha3_256 = exports.sha3_224 = exports.Keccak = void 0;\nexports.keccakP = keccakP;\n/**\n * SHA3 (keccak) hash function, based on a new \"Sponge function\" design.\n * Different from older hashes, the internal state is bigger than output size.\n *\n * Check out [FIPS-202](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf),\n * [Website](https://keccak.team/keccak.html),\n * [the differences between SHA-3 and Keccak](https://crypto.stackexchange.com/questions/15727/what-are-the-key-differences-between-the-draft-sha-3-standard-and-the-keccak-sub).\n *\n * Check out `sha3-addons` module for cSHAKE, k12, and others.\n * @module\n */\nconst _u64_ts_1 = require(\"./_u64.js\");\n// prettier-ignore\nconst utils_ts_1 = require(\"./utils.js\");\n// No __PURE__ annotations in sha3 header:\n// EVERYTHING is in fact used on every export.\n// Various per round constants calculations\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _7n = BigInt(7);\nconst _256n = BigInt(256);\nconst _0x71n = BigInt(0x71);\nconst SHA3_PI = [];\nconst SHA3_ROTL = [];\nconst _SHA3_IOTA = [];\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n)\n t ^= _1n << ((_1n << /* @__PURE__ */ BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst IOTAS = (0, _u64_ts_1.split)(_SHA3_IOTA, true);\nconst SHA3_IOTA_H = IOTAS[0];\nconst SHA3_IOTA_L = IOTAS[1];\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => (s > 32 ? (0, _u64_ts_1.rotlBH)(h, l, s) : (0, _u64_ts_1.rotlSH)(h, l, s));\nconst rotlL = (h, l, s) => (s > 32 ? (0, _u64_ts_1.rotlBL)(h, l, s) : (0, _u64_ts_1.rotlSL)(h, l, s));\n/** `keccakf1600` internal function, additionally allows to adjust round count. */\nfunction keccakP(s, rounds = 24) {\n const B = new Uint32Array(5 * 2);\n // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n for (let round = 24 - rounds; round < 24; round++) {\n // Theta θ\n for (let x = 0; x < 10; x++)\n B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n for (let x = 0; x < 10; x += 2) {\n const idx1 = (x + 8) % 10;\n const idx0 = (x + 2) % 10;\n const B0 = B[idx0];\n const B1 = B[idx0 + 1];\n const Th = rotlH(B0, B1, 1) ^ B[idx1];\n const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n for (let y = 0; y < 50; y += 10) {\n s[x + y] ^= Th;\n s[x + y + 1] ^= Tl;\n }\n }\n // Rho (ρ) and Pi (π)\n let curH = s[2];\n let curL = s[3];\n for (let t = 0; t < 24; t++) {\n const shift = SHA3_ROTL[t];\n const Th = rotlH(curH, curL, shift);\n const Tl = rotlL(curH, curL, shift);\n const PI = SHA3_PI[t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = Th;\n s[PI + 1] = Tl;\n }\n // Chi (χ)\n for (let y = 0; y < 50; y += 10) {\n for (let x = 0; x < 10; x++)\n B[x] = s[y + x];\n for (let x = 0; x < 10; x++)\n s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n }\n // Iota (ι)\n s[0] ^= SHA3_IOTA_H[round];\n s[1] ^= SHA3_IOTA_L[round];\n }\n (0, utils_ts_1.clean)(B);\n}\n/** Keccak sponge function. */\nclass Keccak extends utils_ts_1.Hash {\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n super();\n this.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n this.enableXOF = false;\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n // Can be passed from user as dkLen\n (0, utils_ts_1.anumber)(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n // 0 < blockLen < 200\n if (!(0 < blockLen && blockLen < 200))\n throw new Error('only keccak-f1600 function is supported');\n this.state = new Uint8Array(200);\n this.state32 = (0, utils_ts_1.u32)(this.state);\n }\n clone() {\n return this._cloneInto();\n }\n keccak() {\n (0, utils_ts_1.swap32IfBE)(this.state32);\n keccakP(this.state32, this.rounds);\n (0, utils_ts_1.swap32IfBE)(this.state32);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n (0, utils_ts_1.aexists)(this);\n data = (0, utils_ts_1.toBytes)(data);\n (0, utils_ts_1.abytes)(data);\n const { blockLen, state } = this;\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++)\n state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen)\n this.keccak();\n }\n return this;\n }\n finish() {\n if (this.finished)\n return;\n this.finished = true;\n const { state, suffix, pos, blockLen } = this;\n // Do the padding\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n writeInto(out) {\n (0, utils_ts_1.aexists)(this, false);\n (0, utils_ts_1.abytes)(out);\n this.finish();\n const bufferOut = this.state;\n const { blockLen } = this;\n for (let pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= blockLen)\n this.keccak();\n const take = Math.min(blockLen - this.posOut, len - pos);\n out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n this.posOut += take;\n pos += take;\n }\n return out;\n }\n xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF)\n throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes) {\n (0, utils_ts_1.anumber)(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n (0, utils_ts_1.aoutput)(out, this);\n if (this.finished)\n throw new Error('digest() was already called');\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy() {\n this.destroyed = true;\n (0, utils_ts_1.clean)(this.state);\n }\n _cloneInto(to) {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n to.state32.set(this.state32);\n to.pos = this.pos;\n to.posOut = this.posOut;\n to.finished = this.finished;\n to.rounds = rounds;\n // Suffix can change in cSHAKE\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n}\nexports.Keccak = Keccak;\nconst gen = (suffix, blockLen, outputLen) => (0, utils_ts_1.createHasher)(() => new Keccak(blockLen, suffix, outputLen));\n/** SHA3-224 hash function. */\nexports.sha3_224 = (() => gen(0x06, 144, 224 / 8))();\n/** SHA3-256 hash function. Different from keccak-256. */\nexports.sha3_256 = (() => gen(0x06, 136, 256 / 8))();\n/** SHA3-384 hash function. */\nexports.sha3_384 = (() => gen(0x06, 104, 384 / 8))();\n/** SHA3-512 hash function. */\nexports.sha3_512 = (() => gen(0x06, 72, 512 / 8))();\n/** keccak-224 hash function. */\nexports.keccak_224 = (() => gen(0x01, 144, 224 / 8))();\n/** keccak-256 hash function. Different from SHA3-256. */\nexports.keccak_256 = (() => gen(0x01, 136, 256 / 8))();\n/** keccak-384 hash function. */\nexports.keccak_384 = (() => gen(0x01, 104, 384 / 8))();\n/** keccak-512 hash function. */\nexports.keccak_512 = (() => gen(0x01, 72, 512 / 8))();\nconst genShake = (suffix, blockLen, outputLen) => (0, utils_ts_1.createXOFer)((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\n/** SHAKE128 XOF with 128-bit security. */\nexports.shake128 = (() => genShake(0x1f, 168, 128 / 8))();\n/** SHAKE256 XOF with 256-bit security. */\nexports.shake256 = (() => genShake(0x1f, 136, 256 / 8))();\n//# sourceMappingURL=sha3.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha512_256 = exports.SHA512_256 = exports.sha512_224 = exports.SHA512_224 = exports.sha384 = exports.SHA384 = exports.sha512 = exports.SHA512 = void 0;\n/**\n * SHA2-512 a.k.a. sha512 and sha384. It is slower than sha256 in js because u64 operations are slow.\n *\n * Check out [RFC 4634](https://datatracker.ietf.org/doc/html/rfc4634) and\n * [the paper on truncated SHA512/256](https://eprint.iacr.org/2010/548.pdf).\n * @module\n * @deprecated\n */\nconst sha2_ts_1 = require(\"./sha2.js\");\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.SHA512 = sha2_ts_1.SHA512;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.sha512 = sha2_ts_1.sha512;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.SHA384 = sha2_ts_1.SHA384;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.sha384 = sha2_ts_1.sha384;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.SHA512_224 = sha2_ts_1.SHA512_224;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.sha512_224 = sha2_ts_1.sha512_224;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.SHA512_256 = sha2_ts_1.SHA512_256;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.sha512_256 = sha2_ts_1.sha512_256;\n//# sourceMappingURL=sha512.js.map","\"use strict\";\n/**\n * Utilities for hex, bytes, CSPRNG.\n * @module\n */\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wrapXOFConstructorWithOpts = exports.wrapConstructorWithOpts = exports.wrapConstructor = exports.Hash = exports.nextTick = exports.swap32IfBE = exports.byteSwapIfBE = exports.swap8IfBE = exports.isLE = void 0;\nexports.isBytes = isBytes;\nexports.anumber = anumber;\nexports.abytes = abytes;\nexports.ahash = ahash;\nexports.aexists = aexists;\nexports.aoutput = aoutput;\nexports.u8 = u8;\nexports.u32 = u32;\nexports.clean = clean;\nexports.createView = createView;\nexports.rotr = rotr;\nexports.rotl = rotl;\nexports.byteSwap = byteSwap;\nexports.byteSwap32 = byteSwap32;\nexports.bytesToHex = bytesToHex;\nexports.hexToBytes = hexToBytes;\nexports.asyncLoop = asyncLoop;\nexports.utf8ToBytes = utf8ToBytes;\nexports.bytesToUtf8 = bytesToUtf8;\nexports.toBytes = toBytes;\nexports.kdfInputToBytes = kdfInputToBytes;\nexports.concatBytes = concatBytes;\nexports.checkOpts = checkOpts;\nexports.createHasher = createHasher;\nexports.createOptHasher = createOptHasher;\nexports.createXOFer = createXOFer;\nexports.randomBytes = randomBytes;\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nconst crypto_1 = require(\"@noble/hashes/crypto\");\n/** Checks if something is Uint8Array. Be careful: nodejs Buffer will return true. */\nfunction isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n/** Asserts something is positive integer. */\nfunction anumber(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error('positive integer expected, got ' + n);\n}\n/** Asserts something is Uint8Array. */\nfunction abytes(b, ...lengths) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\n}\n/** Asserts something is hash */\nfunction ahash(h) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.createHasher');\n anumber(h.outputLen);\n anumber(h.blockLen);\n}\n/** Asserts a hash instance has not been destroyed / finished */\nfunction aexists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\n/** Asserts output is properly-sized byte array */\nfunction aoutput(out, instance) {\n abytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error('digestInto() expects output buffer of length at least ' + min);\n }\n}\n/** Cast u8 / u16 / u32 to u8. */\nfunction u8(arr) {\n return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** Cast u8 / u16 / u32 to u32. */\nfunction u32(arr) {\n return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n}\n/** Zeroize a byte array. Warning: JS provides no guarantees. */\nfunction clean(...arrays) {\n for (let i = 0; i < arrays.length; i++) {\n arrays[i].fill(0);\n }\n}\n/** Create DataView of an array for easy byte-level manipulation. */\nfunction createView(arr) {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** The rotate right (circular right shift) operation for uint32 */\nfunction rotr(word, shift) {\n return (word << (32 - shift)) | (word >>> shift);\n}\n/** The rotate left (circular left shift) operation for uint32 */\nfunction rotl(word, shift) {\n return (word << shift) | ((word >>> (32 - shift)) >>> 0);\n}\n/** Is current platform little-endian? Most are. Big-Endian platform: IBM */\nexports.isLE = (() => new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)();\n/** The byte swap operation for uint32 */\nfunction byteSwap(word) {\n return (((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff));\n}\n/** Conditionally byte swap if on a big-endian platform */\nexports.swap8IfBE = exports.isLE\n ? (n) => n\n : (n) => byteSwap(n);\n/** @deprecated */\nexports.byteSwapIfBE = exports.swap8IfBE;\n/** In place byte swap for Uint32Array */\nfunction byteSwap32(arr) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n return arr;\n}\nexports.swap32IfBE = exports.isLE\n ? (u) => u\n : byteSwap32;\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin = /* @__PURE__ */ (() => \n// @ts-ignore\ntypeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function')();\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * Convert byte array to hex string. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nfunction bytesToHex(bytes) {\n abytes(bytes);\n // @ts-ignore\n if (hasHexBuiltin)\n return bytes.toHex();\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };\nfunction asciiToBase16(ch) {\n if (ch >= asciis._0 && ch <= asciis._9)\n return ch - asciis._0; // '2' => 50-48\n if (ch >= asciis.A && ch <= asciis.F)\n return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n if (ch >= asciis.a && ch <= asciis.f)\n return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n return;\n}\n/**\n * Convert hex string to byte array. Uses built-in function, when available.\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // @ts-ignore\n if (hasHexBuiltin)\n return Uint8Array.fromHex(hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n }\n return array;\n}\n/**\n * There is no setImmediate in browser and setTimeout is slow.\n * Call of async fn will return Promise, which will be fullfiled only on\n * next scheduler queue processing step and this is exactly what we need.\n */\nconst nextTick = async () => { };\nexports.nextTick = nextTick;\n/** Returns control to thread each 'tick' ms to avoid blocking. */\nasync function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await (0, exports.nextTick)();\n ts += diff;\n }\n}\n/**\n * Converts string to bytes using UTF8 encoding.\n * @example utf8ToBytes('abc') // Uint8Array.from([97, 98, 99])\n */\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error('string expected');\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Converts bytes to string using UTF8 encoding.\n * @example bytesToUtf8(Uint8Array.from([97, 98, 99])) // 'abc'\n */\nfunction bytesToUtf8(bytes) {\n return new TextDecoder().decode(bytes);\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nfunction toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n/**\n * Helper for KDFs: consumes uint8array or string.\n * When string is passed, does utf8 decoding, using TextDecoder.\n */\nfunction kdfInputToBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n/** Copies several Uint8Arrays into one. */\nfunction concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\nfunction checkOpts(defaults, opts) {\n if (opts !== undefined && {}.toString.call(opts) !== '[object Object]')\n throw new Error('options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\n/** For runtime check if class implements interface */\nclass Hash {\n}\nexports.Hash = Hash;\n/** Wraps hash function, creating an interface on top of it */\nfunction createHasher(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nfunction createOptHasher(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nfunction createXOFer(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexports.wrapConstructor = createHasher;\nexports.wrapConstructorWithOpts = createOptHasher;\nexports.wrapXOFConstructorWithOpts = createXOFer;\n/** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */\nfunction randomBytes(bytesLength = 32) {\n if (crypto_1.crypto && typeof crypto_1.crypto.getRandomValues === 'function') {\n return crypto_1.crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto_1.crypto && typeof crypto_1.crypto.randomBytes === 'function') {\n return Uint8Array.from(crypto_1.crypto.randomBytes(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","var asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","var asn1 = require('../asn1');\nvar inherits = require('inherits');\n\nvar api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n};\n\nEntity.prototype._createNamed = function createNamed(base) {\n var named;\n try {\n named = require('vm').runInThisContext(\n '(function ' + this.name + '(entity) {\\n' +\n ' this._initNamed(entity);\\n' +\n '})'\n );\n } catch (e) {\n named = function (entity) {\n this._initNamed(entity);\n };\n }\n inherits(named, base);\n named.prototype._initNamed = function initnamed(entity) {\n base.call(this, entity);\n };\n\n return new named(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(asn1.decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(asn1.encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","var inherits = require('inherits');\nvar Reporter = require('../base').Reporter;\nvar Buffer = require('buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n var res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n}\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n var res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n}\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n}\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!(item instanceof EncoderBuffer))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = new Buffer(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","var base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","var Reporter = require('../base').Reporter;\nvar EncoderBuffer = require('../base').EncoderBuffer;\nvar DecoderBuffer = require('../base').DecoderBuffer;\nvar assert = require('minimalistic-assert');\n\n// Supported tags\nvar tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nvar methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nvar overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent) {\n var state = {};\n this._baseState = state;\n\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nvar stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n var state = this._baseState;\n var cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n var res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n var state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n var clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n var state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n var state = this._baseState;\n\n // Filter children and args\n var children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n var res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n var value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n var state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n var state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n var state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n var state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n var state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n var state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n var state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n var state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n var result = state['default'];\n var present = true;\n\n var prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n var tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n var save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n var prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n var explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n var start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n if (state.any)\n var save = input.save();\n var body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any)\n result = result;\n else if (state.choice === null)\n result = this._decodeGeneric(state.tag, input, options);\n else\n result = this._decodeChoice(input, options);\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n var data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n var state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n var state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n var state = this._baseState;\n var result = null;\n var match = false;\n\n Object.keys(state.choice).some(function(key) {\n var save = input.save();\n var node = state.choice[key];\n try {\n var value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n var state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n var result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n var result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default']\n else\n return;\n }\n\n // Encode children first\n var content = null;\n var primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n var prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n var res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n var child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n var state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n var result;\n if (!state.any && state.choice === null) {\n var tag = state.implicit !== null ? state.implicit : state.tag;\n var cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n var state = this._baseState;\n\n var node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n var state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '\\(\\)\\+,\\-\\.\\/:=\\?]*$/.test(str);\n};\n","var inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n var state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n var state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n var state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n var state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n var state = this._reporterState;\n\n var prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n var state = this._reporterState;\n\n var now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n var err;\n var state = this._reporterState;\n\n var inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n var state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n};\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","var constants = require('../constants');\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = constants._reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = constants._reverse(exports.tag);\n","var constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n var res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n var value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","var inherits = require('inherits');\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\nvar bignum = asn1.bignum;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!(data instanceof base.DecoderBuffer))\n data = new base.DecoderBuffer(data, options);\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n var state = buffer.save();\n var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n var decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n var len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n var state = buffer.save();\n var res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n while (true) {\n var tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n var len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n var res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len)\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n var result = [];\n while (!buffer.isEmpty()) {\n var possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n var res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n var unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n var raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n var str = '';\n for (var i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n var numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n var printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n var result;\n var identifiers = [];\n var ident = 0;\n while (!buffer.isEmpty()) {\n var subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n var first = (identifiers[0] / 40) | 0;\n var second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n var tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n var str = buffer.raw().toString();\n if (tag === 'gentime') {\n var year = str.slice(0, 4) | 0;\n var mon = str.slice(4, 6) | 0;\n var day = str.slice(6, 8) | 0;\n var hour = str.slice(8, 10) | 0;\n var min = str.slice(10, 12) | 0;\n var sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n var year = str.slice(0, 2) | 0;\n var mon = str.slice(2, 4) | 0;\n var day = str.slice(4, 6) | 0;\n var hour = str.slice(6, 8) | 0;\n var min = str.slice(8, 10) | 0;\n var sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull(buffer) {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n var res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n var raw = buffer.raw();\n var res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n var tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n var cls = der.tagClass[tag >> 6];\n var primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n var oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n var tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n var len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n var num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (var i = 0; i < num; i++) {\n len <<= 8;\n var j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","var decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n var lines = data.toString().split(/[\\r\\n]+/g);\n\n var label = options.label.toUpperCase();\n\n var re = /^-----(BEGIN|END) ([^-]+)-----$/;\n var start = -1;\n var end = -1;\n for (var i = 0; i < lines.length; i++) {\n var match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n var base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9\\+\\/=]+/gi, '');\n\n var input = new Buffer(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n var encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n var header = new Buffer(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n var lenOctets = 1;\n for (var i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n var header = new Buffer(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n var buf = new Buffer(str.length * 2);\n for (var i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s\\.]+/g);\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n var size = 0;\n for (var i = 0; i < id.length; i++) {\n var ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n var objid = new Buffer(size);\n var offset = objid.length - 1;\n for (var i = id.length - 1; i >= 0; i--) {\n var ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n var str;\n var date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n var numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = new Buffer(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n var size = num.length;\n if (num.length === 0)\n size++;\n\n var out = new Buffer(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n var size = 1;\n for (var i = num; i >= 0x100; i >>= 8)\n size++;\n\n var out = new Array(size);\n for (var i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(new Buffer(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n var state = this._baseState;\n var i;\n if (state['default'] === null)\n return false;\n\n var data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n var res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","var encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","var inherits = require('inherits');\n\nvar DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n var buf = DEREncoder.prototype.encode.call(this, data);\n\n var p = buf.toString('base64');\n var out = [ '-----BEGIN ' + options.label + '-----' ];\n for (var i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a51ae424a513ec9a6aa3466baa0cc1d55dd4f3b\n\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nvar _require = require('./internal/errors'),\n _require$codes = _require.codes,\n ERR_AMBIGUOUS_ARGUMENT = _require$codes.ERR_AMBIGUOUS_ARGUMENT,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_INVALID_ARG_VALUE = _require$codes.ERR_INVALID_ARG_VALUE,\n ERR_INVALID_RETURN_VALUE = _require$codes.ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\nvar AssertionError = require('./internal/assert/assertion_error');\nvar _require2 = require('util/'),\n inspect = _require2.inspect;\nvar _require$types = require('util/').types,\n isPromise = _require$types.isPromise,\n isRegExp = _require$types.isRegExp;\nvar objectAssign = require('object.assign/polyfill')();\nvar objectIs = require('object-is/polyfill')();\nvar RegExpPrototypeTest = require('call-bind/callBound')('RegExp.prototype.test');\nvar errorCache = new Map();\nvar isDeepEqual;\nvar isDeepStrictEqual;\nvar parseExpressionAt;\nvar findNodeAround;\nvar decoder;\nfunction lazyLoadComparison() {\n var comparison = require('./internal/util/comparisons');\n isDeepEqual = comparison.isDeepEqual;\n isDeepStrictEqual = comparison.isDeepStrictEqual;\n}\n\n// Escape control characters but not \\n and \\t to keep the line breaks and\n// indentation intact.\n// eslint-disable-next-line no-control-regex\nvar escapeSequencesRegExp = /[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f]/g;\nvar meta = [\"\\\\u0000\", \"\\\\u0001\", \"\\\\u0002\", \"\\\\u0003\", \"\\\\u0004\", \"\\\\u0005\", \"\\\\u0006\", \"\\\\u0007\", '\\\\b', '', '', \"\\\\u000b\", '\\\\f', '', \"\\\\u000e\", \"\\\\u000f\", \"\\\\u0010\", \"\\\\u0011\", \"\\\\u0012\", \"\\\\u0013\", \"\\\\u0014\", \"\\\\u0015\", \"\\\\u0016\", \"\\\\u0017\", \"\\\\u0018\", \"\\\\u0019\", \"\\\\u001a\", \"\\\\u001b\", \"\\\\u001c\", \"\\\\u001d\", \"\\\\u001e\", \"\\\\u001f\"];\nvar escapeFn = function escapeFn(str) {\n return meta[str.charCodeAt(0)];\n};\nvar warned = false;\n\n// The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\nvar NO_EXCEPTION_SENTINEL = {};\n\n// All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction innerFail(obj) {\n if (obj.message instanceof Error) throw obj.message;\n throw new AssertionError(obj);\n}\nfunction fail(actual, expected, message, operator, stackStartFn) {\n var argsLen = arguments.length;\n var internalMessage;\n if (argsLen === 0) {\n internalMessage = 'Failed';\n } else if (argsLen === 1) {\n message = actual;\n actual = undefined;\n } else {\n if (warned === false) {\n warned = true;\n var warn = process.emitWarning ? process.emitWarning : console.warn.bind(console);\n warn('assert.fail() with more than one argument is deprecated. ' + 'Please use assert.strictEqual() instead or only pass a message.', 'DeprecationWarning', 'DEP0094');\n }\n if (argsLen === 2) operator = '!=';\n }\n if (message instanceof Error) throw message;\n var errArgs = {\n actual: actual,\n expected: expected,\n operator: operator === undefined ? 'fail' : operator,\n stackStartFn: stackStartFn || fail\n };\n if (message !== undefined) {\n errArgs.message = message;\n }\n var err = new AssertionError(errArgs);\n if (internalMessage) {\n err.message = internalMessage;\n err.generatedMessage = true;\n }\n throw err;\n}\nassert.fail = fail;\n\n// The AssertionError is defined in internal/error.\nassert.AssertionError = AssertionError;\nfunction innerOk(fn, argLen, value, message) {\n if (!value) {\n var generatedMessage = false;\n if (argLen === 0) {\n generatedMessage = true;\n message = 'No value argument passed to `assert.ok()`';\n } else if (message instanceof Error) {\n throw message;\n }\n var err = new AssertionError({\n actual: value,\n expected: true,\n message: message,\n operator: '==',\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n}\n\n// Pure assertion tests whether a value is truthy, as determined\n// by !!value.\nfunction ok() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n innerOk.apply(void 0, [ok, args.length].concat(args));\n}\nassert.ok = ok;\n\n// The equality assertion tests shallow, coercive equality with ==.\n/* eslint-disable no-restricted-properties */\nassert.equal = function equal(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n // eslint-disable-next-line eqeqeq\n if (actual != expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '==',\n stackStartFn: equal\n });\n }\n};\n\n// The non-equality assertion tests for whether two objects are not\n// equal with !=.\nassert.notEqual = function notEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n // eslint-disable-next-line eqeqeq\n if (actual == expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '!=',\n stackStartFn: notEqual\n });\n }\n};\n\n// The equivalence assertion tests a deep equality relation.\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (!isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepEqual',\n stackStartFn: deepEqual\n });\n }\n};\n\n// The non-equivalence assertion tests for any deep inequality.\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepEqual',\n stackStartFn: notDeepEqual\n });\n }\n};\n/* eslint-enable */\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (!isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepStrictEqual',\n stackStartFn: deepStrictEqual\n });\n }\n};\nassert.notDeepStrictEqual = notDeepStrictEqual;\nfunction notDeepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepStrictEqual',\n stackStartFn: notDeepStrictEqual\n });\n }\n}\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (!objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'strictEqual',\n stackStartFn: strictEqual\n });\n }\n};\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notStrictEqual',\n stackStartFn: notStrictEqual\n });\n }\n};\nvar Comparison = /*#__PURE__*/_createClass(function Comparison(obj, keys, actual) {\n var _this = this;\n _classCallCheck(this, Comparison);\n keys.forEach(function (key) {\n if (key in obj) {\n if (actual !== undefined && typeof actual[key] === 'string' && isRegExp(obj[key]) && RegExpPrototypeTest(obj[key], actual[key])) {\n _this[key] = actual[key];\n } else {\n _this[key] = obj[key];\n }\n }\n });\n});\nfunction compareExceptionKey(actual, expected, key, message, keys, fn) {\n if (!(key in actual) || !isDeepStrictEqual(actual[key], expected[key])) {\n if (!message) {\n // Create placeholder objects to create a nice output.\n var a = new Comparison(actual, keys);\n var b = new Comparison(expected, keys, actual);\n var err = new AssertionError({\n actual: a,\n expected: b,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.actual = actual;\n err.expected = expected;\n err.operator = fn.name;\n throw err;\n }\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: fn.name,\n stackStartFn: fn\n });\n }\n}\nfunction expectedException(actual, expected, msg, fn) {\n if (typeof expected !== 'function') {\n if (isRegExp(expected)) return RegExpPrototypeTest(expected, actual);\n // assert.doesNotThrow does not accept objects.\n if (arguments.length === 2) {\n throw new ERR_INVALID_ARG_TYPE('expected', ['Function', 'RegExp'], expected);\n }\n\n // Handle primitives properly.\n if (_typeof(actual) !== 'object' || actual === null) {\n var err = new AssertionError({\n actual: actual,\n expected: expected,\n message: msg,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.operator = fn.name;\n throw err;\n }\n var keys = Object.keys(expected);\n // Special handle errors to make sure the name and the message are compared\n // as well.\n if (expected instanceof Error) {\n keys.push('name', 'message');\n } else if (keys.length === 0) {\n throw new ERR_INVALID_ARG_VALUE('error', expected, 'may not be an empty object');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n keys.forEach(function (key) {\n if (typeof actual[key] === 'string' && isRegExp(expected[key]) && RegExpPrototypeTest(expected[key], actual[key])) {\n return;\n }\n compareExceptionKey(actual, expected, key, msg, keys, fn);\n });\n return true;\n }\n // Guard instanceof against arrow functions as they don't have a prototype.\n if (expected.prototype !== undefined && actual instanceof expected) {\n return true;\n }\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n return expected.call({}, actual) === true;\n}\nfunction getActual(fn) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', 'Function', fn);\n }\n try {\n fn();\n } catch (e) {\n return e;\n }\n return NO_EXCEPTION_SENTINEL;\n}\nfunction checkIsPromise(obj) {\n // Accept native ES6 promises and promises that are implemented in a similar\n // way. Do not accept thenables that use a function as `obj` and that have no\n // `catch` handler.\n\n // TODO: thenables are checked up until they have the correct methods,\n // but according to documentation, the `then` method should receive\n // the `fulfill` and `reject` arguments as well or it may be never resolved.\n\n return isPromise(obj) || obj !== null && _typeof(obj) === 'object' && typeof obj.then === 'function' && typeof obj.catch === 'function';\n}\nfunction waitForActual(promiseFn) {\n return Promise.resolve().then(function () {\n var resultPromise;\n if (typeof promiseFn === 'function') {\n // Return a rejected promise if `promiseFn` throws synchronously.\n resultPromise = promiseFn();\n // Fail in case no promise is returned.\n if (!checkIsPromise(resultPromise)) {\n throw new ERR_INVALID_RETURN_VALUE('instance of Promise', 'promiseFn', resultPromise);\n }\n } else if (checkIsPromise(promiseFn)) {\n resultPromise = promiseFn;\n } else {\n throw new ERR_INVALID_ARG_TYPE('promiseFn', ['Function', 'Promise'], promiseFn);\n }\n return Promise.resolve().then(function () {\n return resultPromise;\n }).then(function () {\n return NO_EXCEPTION_SENTINEL;\n }).catch(function (e) {\n return e;\n });\n });\n}\nfunction expectsError(stackStartFn, actual, error, message) {\n if (typeof error === 'string') {\n if (arguments.length === 4) {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n if (_typeof(actual) === 'object' && actual !== null) {\n if (actual.message === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error message \\\"\".concat(actual.message, \"\\\" is identical to the message.\"));\n }\n } else if (actual === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error \\\"\".concat(actual, \"\\\" is identical to the message.\"));\n }\n message = error;\n error = undefined;\n } else if (error != null && _typeof(error) !== 'object' && typeof error !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n if (actual === NO_EXCEPTION_SENTINEL) {\n var details = '';\n if (error && error.name) {\n details += \" (\".concat(error.name, \")\");\n }\n details += message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'rejects' ? 'rejection' : 'exception';\n innerFail({\n actual: undefined,\n expected: error,\n operator: stackStartFn.name,\n message: \"Missing expected \".concat(fnType).concat(details),\n stackStartFn: stackStartFn\n });\n }\n if (error && !expectedException(actual, error, message, stackStartFn)) {\n throw actual;\n }\n}\nfunction expectsNoError(stackStartFn, actual, error, message) {\n if (actual === NO_EXCEPTION_SENTINEL) return;\n if (typeof error === 'string') {\n message = error;\n error = undefined;\n }\n if (!error || expectedException(actual, error)) {\n var details = message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'doesNotReject' ? 'rejection' : 'exception';\n innerFail({\n actual: actual,\n expected: error,\n operator: stackStartFn.name,\n message: \"Got unwanted \".concat(fnType).concat(details, \"\\n\") + \"Actual message: \\\"\".concat(actual && actual.message, \"\\\"\"),\n stackStartFn: stackStartFn\n });\n }\n throw actual;\n}\nassert.throws = function throws(promiseFn) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n expectsError.apply(void 0, [throws, getActual(promiseFn)].concat(args));\n};\nassert.rejects = function rejects(promiseFn) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n return waitForActual(promiseFn).then(function (result) {\n return expectsError.apply(void 0, [rejects, result].concat(args));\n });\n};\nassert.doesNotThrow = function doesNotThrow(fn) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n expectsNoError.apply(void 0, [doesNotThrow, getActual(fn)].concat(args));\n};\nassert.doesNotReject = function doesNotReject(fn) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n return waitForActual(fn).then(function (result) {\n return expectsNoError.apply(void 0, [doesNotReject, result].concat(args));\n });\n};\nassert.ifError = function ifError(err) {\n if (err !== null && err !== undefined) {\n var message = 'ifError got unwanted exception: ';\n if (_typeof(err) === 'object' && typeof err.message === 'string') {\n if (err.message.length === 0 && err.constructor) {\n message += err.constructor.name;\n } else {\n message += err.message;\n }\n } else {\n message += inspect(err);\n }\n var newErr = new AssertionError({\n actual: err,\n expected: null,\n operator: 'ifError',\n message: message,\n stackStartFn: ifError\n });\n\n // Make sure we actually have a stack trace!\n var origStack = err.stack;\n if (typeof origStack === 'string') {\n // This will remove any duplicated frames from the error frames taken\n // from within `ifError` and add the original error frames to the newly\n // created ones.\n var tmp2 = origStack.split('\\n');\n tmp2.shift();\n // Filter all frames existing in err.stack.\n var tmp1 = newErr.stack.split('\\n');\n for (var i = 0; i < tmp2.length; i++) {\n // Find the first occurrence of the frame.\n var pos = tmp1.indexOf(tmp2[i]);\n if (pos !== -1) {\n // Only keep new frames.\n tmp1 = tmp1.slice(0, pos);\n break;\n }\n }\n newErr.stack = \"\".concat(tmp1.join('\\n'), \"\\n\").concat(tmp2.join('\\n'));\n }\n throw newErr;\n }\n};\n\n// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a871df3dfb8ea663ef5e1f8f62701ec51384ecb\nfunction internalMatch(string, regexp, message, fn, fnName) {\n if (!isRegExp(regexp)) {\n throw new ERR_INVALID_ARG_TYPE('regexp', 'RegExp', regexp);\n }\n var match = fnName === 'match';\n if (typeof string !== 'string' || RegExpPrototypeTest(regexp, string) !== match) {\n if (message instanceof Error) {\n throw message;\n }\n var generatedMessage = !message;\n\n // 'The input was expected to not match the regular expression ' +\n message = message || (typeof string !== 'string' ? 'The \"string\" argument must be of type string. Received type ' + \"\".concat(_typeof(string), \" (\").concat(inspect(string), \")\") : (match ? 'The input did not match the regular expression ' : 'The input was expected to not match the regular expression ') + \"\".concat(inspect(regexp), \". Input:\\n\\n\").concat(inspect(string), \"\\n\"));\n var err = new AssertionError({\n actual: string,\n expected: regexp,\n message: message,\n operator: fnName,\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n}\nassert.match = function match(string, regexp, message) {\n internalMatch(string, regexp, message, match, 'match');\n};\nassert.doesNotMatch = function doesNotMatch(string, regexp, message) {\n internalMatch(string, regexp, message, doesNotMatch, 'doesNotMatch');\n};\n\n// Expose a strict only variant of assert\nfunction strict() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n innerOk.apply(void 0, [strict, args.length].concat(args));\n}\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;","// Currently in sync with Node.js lib/internal/assert/assertion_error.js\n// https://github.com/nodejs/node/commit/0817840f775032169ddd70c85ac059f18ffcc81c\n\n'use strict';\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _require = require('util/'),\n inspect = _require.inspect;\nvar _require2 = require('../errors'),\n ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE;\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat\nfunction repeat(str, count) {\n count = Math.floor(count);\n if (str.length == 0 || count == 0) return '';\n var maxCount = str.length * count;\n count = Math.floor(Math.log(count) / Math.log(2));\n while (count) {\n str += str;\n count--;\n }\n str += str.substring(0, maxCount - str.length);\n return str;\n}\nvar blue = '';\nvar green = '';\nvar red = '';\nvar white = '';\nvar kReadableOperator = {\n deepStrictEqual: 'Expected values to be strictly deep-equal:',\n strictEqual: 'Expected values to be strictly equal:',\n strictEqualObject: 'Expected \"actual\" to be reference-equal to \"expected\":',\n deepEqual: 'Expected values to be loosely deep-equal:',\n equal: 'Expected values to be loosely equal:',\n notDeepStrictEqual: 'Expected \"actual\" not to be strictly deep-equal to:',\n notStrictEqual: 'Expected \"actual\" to be strictly unequal to:',\n notStrictEqualObject: 'Expected \"actual\" not to be reference-equal to \"expected\":',\n notDeepEqual: 'Expected \"actual\" not to be loosely deep-equal to:',\n notEqual: 'Expected \"actual\" to be loosely unequal to:',\n notIdentical: 'Values identical but not reference-equal:'\n};\n\n// Comparing short primitives should just show === / !== instead of using the\n// diff.\nvar kMaxShortLength = 10;\nfunction copyError(source) {\n var keys = Object.keys(source);\n var target = Object.create(Object.getPrototypeOf(source));\n keys.forEach(function (key) {\n target[key] = source[key];\n });\n Object.defineProperty(target, 'message', {\n value: source.message\n });\n return target;\n}\nfunction inspectValue(val) {\n // The util.inspect default values could be changed. This makes sure the\n // error messages contain the necessary information nevertheless.\n return inspect(val, {\n compact: false,\n customInspect: false,\n depth: 1000,\n maxArrayLength: Infinity,\n // Assert compares only enumerable properties (with a few exceptions).\n showHidden: false,\n // Having a long line as error is better than wrapping the line for\n // comparison for now.\n // TODO(BridgeAR): `breakLength` should be limited as soon as soon as we\n // have meta information about the inspected properties (i.e., know where\n // in what line the property starts and ends).\n breakLength: Infinity,\n // Assert does not detect proxies currently.\n showProxy: false,\n sorted: true,\n // Inspect getters as we also check them when comparing entries.\n getters: true\n });\n}\nfunction createErrDiff(actual, expected, operator) {\n var other = '';\n var res = '';\n var lastPos = 0;\n var end = '';\n var skipped = false;\n var actualInspected = inspectValue(actual);\n var actualLines = actualInspected.split('\\n');\n var expectedLines = inspectValue(expected).split('\\n');\n var i = 0;\n var indicator = '';\n\n // In case both values are objects explicitly mark them as not reference equal\n // for the `strictEqual` operator.\n if (operator === 'strictEqual' && _typeof(actual) === 'object' && _typeof(expected) === 'object' && actual !== null && expected !== null) {\n operator = 'strictEqualObject';\n }\n\n // If \"actual\" and \"expected\" fit on a single line and they are not strictly\n // equal, check further special handling.\n if (actualLines.length === 1 && expectedLines.length === 1 && actualLines[0] !== expectedLines[0]) {\n var inputLength = actualLines[0].length + expectedLines[0].length;\n // If the character length of \"actual\" and \"expected\" together is less than\n // kMaxShortLength and if neither is an object and at least one of them is\n // not `zero`, use the strict equal comparison to visualize the output.\n if (inputLength <= kMaxShortLength) {\n if ((_typeof(actual) !== 'object' || actual === null) && (_typeof(expected) !== 'object' || expected === null) && (actual !== 0 || expected !== 0)) {\n // -0 === +0\n return \"\".concat(kReadableOperator[operator], \"\\n\\n\") + \"\".concat(actualLines[0], \" !== \").concat(expectedLines[0], \"\\n\");\n }\n } else if (operator !== 'strictEqualObject') {\n // If the stderr is a tty and the input length is lower than the current\n // columns per line, add a mismatch indicator below the output. If it is\n // not a tty, use a default value of 80 characters.\n var maxLength = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;\n if (inputLength < maxLength) {\n while (actualLines[0][i] === expectedLines[0][i]) {\n i++;\n }\n // Ignore the first characters.\n if (i > 2) {\n // Add position indicator for the first mismatch in case it is a\n // single line and the input length is less than the column length.\n indicator = \"\\n \".concat(repeat(' ', i), \"^\");\n i = 0;\n }\n }\n }\n }\n\n // Remove all ending lines that match (this optimizes the output for\n // readability by reducing the number of total changed lines).\n var a = actualLines[actualLines.length - 1];\n var b = expectedLines[expectedLines.length - 1];\n while (a === b) {\n if (i++ < 2) {\n end = \"\\n \".concat(a).concat(end);\n } else {\n other = a;\n }\n actualLines.pop();\n expectedLines.pop();\n if (actualLines.length === 0 || expectedLines.length === 0) break;\n a = actualLines[actualLines.length - 1];\n b = expectedLines[expectedLines.length - 1];\n }\n var maxLines = Math.max(actualLines.length, expectedLines.length);\n // Strict equal with identical objects that are not identical by reference.\n // E.g., assert.deepStrictEqual({ a: Symbol() }, { a: Symbol() })\n if (maxLines === 0) {\n // We have to get the result again. The lines were all removed before.\n var _actualLines = actualInspected.split('\\n');\n\n // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n if (_actualLines.length > 30) {\n _actualLines[26] = \"\".concat(blue, \"...\").concat(white);\n while (_actualLines.length > 27) {\n _actualLines.pop();\n }\n }\n return \"\".concat(kReadableOperator.notIdentical, \"\\n\\n\").concat(_actualLines.join('\\n'), \"\\n\");\n }\n if (i > 3) {\n end = \"\\n\".concat(blue, \"...\").concat(white).concat(end);\n skipped = true;\n }\n if (other !== '') {\n end = \"\\n \".concat(other).concat(end);\n other = '';\n }\n var printedLines = 0;\n var msg = kReadableOperator[operator] + \"\\n\".concat(green, \"+ actual\").concat(white, \" \").concat(red, \"- expected\").concat(white);\n var skippedMsg = \" \".concat(blue, \"...\").concat(white, \" Lines skipped\");\n for (i = 0; i < maxLines; i++) {\n // Only extra expected lines exist\n var cur = i - lastPos;\n if (actualLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(expectedLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(expectedLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the expected line to the cache.\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLines[i]);\n printedLines++;\n // Only extra actual lines exist\n } else if (expectedLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the actual line to the result.\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLines[i]);\n printedLines++;\n // Lines diverge\n } else {\n var expectedLine = expectedLines[i];\n var actualLine = actualLines[i];\n // If the lines diverge, specifically check for lines that only diverge by\n // a trailing comma. In that case it is actually identical and we should\n // mark it as such.\n var divergingLines = actualLine !== expectedLine && (!endsWith(actualLine, ',') || actualLine.slice(0, -1) !== expectedLine);\n // If the expected line has a trailing comma but is otherwise identical,\n // add a comma at the end of the actual line. Otherwise the output could\n // look weird as in:\n //\n // [\n // 1 // No comma at the end!\n // + 2\n // ]\n //\n if (divergingLines && endsWith(expectedLine, ',') && expectedLine.slice(0, -1) === actualLine) {\n divergingLines = false;\n actualLine += ',';\n }\n if (divergingLines) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the actual line to the result and cache the expected diverging\n // line so consecutive diverging lines show up as +++--- and not +-+-+-.\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLine);\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLine);\n printedLines += 2;\n // Lines are identical\n } else {\n // Add all cached information to the result before adding other things\n // and reset the cache.\n res += other;\n other = '';\n // If the last diverging line is exactly one line above or if it is the\n // very first line, add the line to the result.\n if (cur === 1 || i === 0) {\n res += \"\\n \".concat(actualLine);\n printedLines++;\n }\n }\n }\n // Inspected object to big (Show ~20 rows max)\n if (printedLines > 20 && i < maxLines - 2) {\n return \"\".concat(msg).concat(skippedMsg, \"\\n\").concat(res, \"\\n\").concat(blue, \"...\").concat(white).concat(other, \"\\n\") + \"\".concat(blue, \"...\").concat(white);\n }\n }\n return \"\".concat(msg).concat(skipped ? skippedMsg : '', \"\\n\").concat(res).concat(other).concat(end).concat(indicator);\n}\nvar AssertionError = /*#__PURE__*/function (_Error, _inspect$custom) {\n _inherits(AssertionError, _Error);\n var _super = _createSuper(AssertionError);\n function AssertionError(options) {\n var _this;\n _classCallCheck(this, AssertionError);\n if (_typeof(options) !== 'object' || options === null) {\n throw new ERR_INVALID_ARG_TYPE('options', 'Object', options);\n }\n var message = options.message,\n operator = options.operator,\n stackStartFn = options.stackStartFn;\n var actual = options.actual,\n expected = options.expected;\n var limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n if (message != null) {\n _this = _super.call(this, String(message));\n } else {\n if (process.stderr && process.stderr.isTTY) {\n // Reset on each call to make sure we handle dynamically set environment\n // variables correct.\n if (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1) {\n blue = \"\\x1B[34m\";\n green = \"\\x1B[32m\";\n white = \"\\x1B[39m\";\n red = \"\\x1B[31m\";\n } else {\n blue = '';\n green = '';\n white = '';\n red = '';\n }\n }\n // Prevent the error stack from being visible by duplicating the error\n // in a very close way to the original in case both sides are actually\n // instances of Error.\n if (_typeof(actual) === 'object' && actual !== null && _typeof(expected) === 'object' && expected !== null && 'stack' in actual && actual instanceof Error && 'stack' in expected && expected instanceof Error) {\n actual = copyError(actual);\n expected = copyError(expected);\n }\n if (operator === 'deepStrictEqual' || operator === 'strictEqual') {\n _this = _super.call(this, createErrDiff(actual, expected, operator));\n } else if (operator === 'notDeepStrictEqual' || operator === 'notStrictEqual') {\n // In case the objects are equal but the operator requires unequal, show\n // the first object and say A equals B\n var base = kReadableOperator[operator];\n var res = inspectValue(actual).split('\\n');\n\n // In case \"actual\" is an object, it should not be reference equal.\n if (operator === 'notStrictEqual' && _typeof(actual) === 'object' && actual !== null) {\n base = kReadableOperator.notStrictEqualObject;\n }\n\n // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n if (res.length > 30) {\n res[26] = \"\".concat(blue, \"...\").concat(white);\n while (res.length > 27) {\n res.pop();\n }\n }\n\n // Only print a single input.\n if (res.length === 1) {\n _this = _super.call(this, \"\".concat(base, \" \").concat(res[0]));\n } else {\n _this = _super.call(this, \"\".concat(base, \"\\n\\n\").concat(res.join('\\n'), \"\\n\"));\n }\n } else {\n var _res = inspectValue(actual);\n var other = '';\n var knownOperators = kReadableOperator[operator];\n if (operator === 'notDeepEqual' || operator === 'notEqual') {\n _res = \"\".concat(kReadableOperator[operator], \"\\n\\n\").concat(_res);\n if (_res.length > 1024) {\n _res = \"\".concat(_res.slice(0, 1021), \"...\");\n }\n } else {\n other = \"\".concat(inspectValue(expected));\n if (_res.length > 512) {\n _res = \"\".concat(_res.slice(0, 509), \"...\");\n }\n if (other.length > 512) {\n other = \"\".concat(other.slice(0, 509), \"...\");\n }\n if (operator === 'deepEqual' || operator === 'equal') {\n _res = \"\".concat(knownOperators, \"\\n\\n\").concat(_res, \"\\n\\nshould equal\\n\\n\");\n } else {\n other = \" \".concat(operator, \" \").concat(other);\n }\n }\n _this = _super.call(this, \"\".concat(_res).concat(other));\n }\n }\n Error.stackTraceLimit = limit;\n _this.generatedMessage = !message;\n Object.defineProperty(_assertThisInitialized(_this), 'name', {\n value: 'AssertionError [ERR_ASSERTION]',\n enumerable: false,\n writable: true,\n configurable: true\n });\n _this.code = 'ERR_ASSERTION';\n _this.actual = actual;\n _this.expected = expected;\n _this.operator = operator;\n if (Error.captureStackTrace) {\n // eslint-disable-next-line no-restricted-syntax\n Error.captureStackTrace(_assertThisInitialized(_this), stackStartFn);\n }\n // Create error message including the error code in the name.\n _this.stack;\n // Reset the name.\n _this.name = 'AssertionError';\n return _possibleConstructorReturn(_this);\n }\n _createClass(AssertionError, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.name, \" [\").concat(this.code, \"]: \").concat(this.message);\n }\n }, {\n key: _inspect$custom,\n value: function value(recurseTimes, ctx) {\n // This limits the `actual` and `expected` property default inspection to\n // the minimum depth. Otherwise those values would be too verbose compared\n // to the actual error message which contains a combined view of these two\n // input values.\n return inspect(this, _objectSpread(_objectSpread({}, ctx), {}, {\n customInspect: false,\n depth: 0\n }));\n }\n }]);\n return AssertionError;\n}( /*#__PURE__*/_wrapNativeSuper(Error), inspect.custom);\nmodule.exports = AssertionError;","// Currently in sync with Node.js lib/internal/errors.js\n// https://github.com/nodejs/node/commit/3b044962c48fe313905877a96b5d0894a5404f6f\n\n/* eslint node-core/documented-errors: \"error\" */\n/* eslint node-core/alphabetize-errors: \"error\" */\n/* eslint node-core/prefer-util-format-errors: \"error\" */\n\n'use strict';\n\n// The whole point behind this internal module is to allow Node.js to no\n// longer be forced to treat every error message change as a semver-major\n// change. The NodeError classes here all expose a `code` property whose\n// value statically and permanently identifies the error. While the error\n// message may change, the code should not.\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar codes = {};\n\n// Lazy loaded\nvar assert;\nvar util;\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /*#__PURE__*/function (_Base) {\n _inherits(NodeError, _Base);\n var _super = _createSuper(NodeError);\n function NodeError(arg1, arg2, arg3) {\n var _this;\n _classCallCheck(this, NodeError);\n _this = _super.call(this, getMessage(arg1, arg2, arg3));\n _this.code = code;\n return _this;\n }\n return _createClass(NodeError);\n }(Base);\n codes[code] = NodeError;\n}\n\n// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\ncreateErrorType('ERR_AMBIGUOUS_ARGUMENT', 'The \"%s\" argument is ambiguous. %s', TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n if (assert === undefined) assert = require('../assert');\n assert(typeof name === 'string', \"'name' must be a string\");\n\n // determiner: 'must be' or 'must not be'\n var determiner;\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n var msg;\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n // TODO(BridgeAR): Improve the output by showing `null` and similar.\n msg += \". Received type \".concat(_typeof(actual));\n return msg;\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_VALUE', function (name, value) {\n var reason = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'is invalid';\n if (util === undefined) util = require('util/');\n var inspected = util.inspect(value);\n if (inspected.length > 128) {\n inspected = \"\".concat(inspected.slice(0, 128), \"...\");\n }\n return \"The argument '\".concat(name, \"' \").concat(reason, \". Received \").concat(inspected);\n}, TypeError, RangeError);\ncreateErrorType('ERR_INVALID_RETURN_VALUE', function (input, name, value) {\n var type;\n if (value && value.constructor && value.constructor.name) {\n type = \"instance of \".concat(value.constructor.name);\n } else {\n type = \"type \".concat(_typeof(value));\n }\n return \"Expected \".concat(input, \" to be returned from the \\\"\").concat(name, \"\\\"\") + \" function but got \".concat(type, \".\");\n}, TypeError);\ncreateErrorType('ERR_MISSING_ARGS', function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (assert === undefined) assert = require('../assert');\n assert(args.length > 0, 'At least one arg needs to be specified');\n var msg = 'The ';\n var len = args.length;\n args = args.map(function (a) {\n return \"\\\"\".concat(a, \"\\\"\");\n });\n switch (len) {\n case 1:\n msg += \"\".concat(args[0], \" argument\");\n break;\n case 2:\n msg += \"\".concat(args[0], \" and \").concat(args[1], \" arguments\");\n break;\n default:\n msg += args.slice(0, len - 1).join(', ');\n msg += \", and \".concat(args[len - 1], \" arguments\");\n break;\n }\n return \"\".concat(msg, \" must be specified\");\n}, TypeError);\nmodule.exports.codes = codes;","// Currently in sync with Node.js lib/internal/util/comparisons.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar regexFlagsSupported = /a/g.flags !== undefined;\nvar arrayFromSet = function arrayFromSet(set) {\n var array = [];\n set.forEach(function (value) {\n return array.push(value);\n });\n return array;\n};\nvar arrayFromMap = function arrayFromMap(map) {\n var array = [];\n map.forEach(function (value, key) {\n return array.push([key, value]);\n });\n return array;\n};\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar objectGetOwnPropertySymbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function () {\n return [];\n};\nvar numberIsNaN = Number.isNaN ? Number.isNaN : require('is-nan');\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\nvar hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty);\nvar propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable);\nvar objectToString = uncurryThis(Object.prototype.toString);\nvar _require$types = require('util/').types,\n isAnyArrayBuffer = _require$types.isAnyArrayBuffer,\n isArrayBufferView = _require$types.isArrayBufferView,\n isDate = _require$types.isDate,\n isMap = _require$types.isMap,\n isRegExp = _require$types.isRegExp,\n isSet = _require$types.isSet,\n isNativeError = _require$types.isNativeError,\n isBoxedPrimitive = _require$types.isBoxedPrimitive,\n isNumberObject = _require$types.isNumberObject,\n isStringObject = _require$types.isStringObject,\n isBooleanObject = _require$types.isBooleanObject,\n isBigIntObject = _require$types.isBigIntObject,\n isSymbolObject = _require$types.isSymbolObject,\n isFloat32Array = _require$types.isFloat32Array,\n isFloat64Array = _require$types.isFloat64Array;\nfunction isNonIndex(key) {\n if (key.length === 0 || key.length > 10) return true;\n for (var i = 0; i < key.length; i++) {\n var code = key.charCodeAt(i);\n if (code < 48 || code > 57) return true;\n }\n // The maximum size for an array is 2 ** 32 -1.\n return key.length === 10 && key >= Math.pow(2, 32);\n}\nfunction getOwnNonIndexProperties(value) {\n return Object.keys(value).filter(isNonIndex).concat(objectGetOwnPropertySymbols(value).filter(Object.prototype.propertyIsEnumerable.bind(value)));\n}\n\n// Taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n var x = a.length;\n var y = b.length;\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y) {\n return -1;\n }\n if (y < x) {\n return 1;\n }\n return 0;\n}\nvar ONLY_ENUMERABLE = undefined;\nvar kStrict = true;\nvar kLoose = false;\nvar kNoIterator = 0;\nvar kIsArray = 1;\nvar kIsSet = 2;\nvar kIsMap = 3;\n\n// Check if they have the same source and flags\nfunction areSimilarRegExps(a, b) {\n return regexFlagsSupported ? a.source === b.source && a.flags === b.flags : RegExp.prototype.toString.call(a) === RegExp.prototype.toString.call(b);\n}\nfunction areSimilarFloatArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n for (var offset = 0; offset < a.byteLength; offset++) {\n if (a[offset] !== b[offset]) {\n return false;\n }\n }\n return true;\n}\nfunction areSimilarTypedArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n return compare(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)) === 0;\n}\nfunction areEqualArrayBuffers(buf1, buf2) {\n return buf1.byteLength === buf2.byteLength && compare(new Uint8Array(buf1), new Uint8Array(buf2)) === 0;\n}\nfunction isEqualBoxedPrimitive(val1, val2) {\n if (isNumberObject(val1)) {\n return isNumberObject(val2) && objectIs(Number.prototype.valueOf.call(val1), Number.prototype.valueOf.call(val2));\n }\n if (isStringObject(val1)) {\n return isStringObject(val2) && String.prototype.valueOf.call(val1) === String.prototype.valueOf.call(val2);\n }\n if (isBooleanObject(val1)) {\n return isBooleanObject(val2) && Boolean.prototype.valueOf.call(val1) === Boolean.prototype.valueOf.call(val2);\n }\n if (isBigIntObject(val1)) {\n return isBigIntObject(val2) && BigInt.prototype.valueOf.call(val1) === BigInt.prototype.valueOf.call(val2);\n }\n return isSymbolObject(val2) && Symbol.prototype.valueOf.call(val1) === Symbol.prototype.valueOf.call(val2);\n}\n\n// Notes: Type tags are historical [[Class]] properties that can be set by\n// FunctionTemplate::SetClassName() in C++ or Symbol.toStringTag in JS\n// and retrieved using Object.prototype.toString.call(obj) in JS\n// See https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n// for a list of tags pre-defined in the spec.\n// There are some unspecified tags in the wild too (e.g. typed array tags).\n// Since tags can be altered, they only serve fast failures\n//\n// Typed arrays and buffers are checked by comparing the content in their\n// underlying ArrayBuffer. This optimization requires that it's\n// reasonable to interpret their underlying memory in the same way,\n// which is checked by comparing their type tags.\n// (e.g. a Uint8Array and a Uint16Array with the same memory content\n// could still be different because they will be interpreted differently).\n//\n// For strict comparison, objects should have\n// a) The same built-in type tags\n// b) The same prototypes.\n\nfunction innerDeepEqual(val1, val2, strict, memos) {\n // All identical values are equivalent, as determined by ===.\n if (val1 === val2) {\n if (val1 !== 0) return true;\n return strict ? objectIs(val1, val2) : true;\n }\n\n // Check more closely if val1 and val2 are equal.\n if (strict) {\n if (_typeof(val1) !== 'object') {\n return typeof val1 === 'number' && numberIsNaN(val1) && numberIsNaN(val2);\n }\n if (_typeof(val2) !== 'object' || val1 === null || val2 === null) {\n return false;\n }\n if (Object.getPrototypeOf(val1) !== Object.getPrototypeOf(val2)) {\n return false;\n }\n } else {\n if (val1 === null || _typeof(val1) !== 'object') {\n if (val2 === null || _typeof(val2) !== 'object') {\n // eslint-disable-next-line eqeqeq\n return val1 == val2;\n }\n return false;\n }\n if (val2 === null || _typeof(val2) !== 'object') {\n return false;\n }\n }\n var val1Tag = objectToString(val1);\n var val2Tag = objectToString(val2);\n if (val1Tag !== val2Tag) {\n return false;\n }\n if (Array.isArray(val1)) {\n // Check for sparse arrays and general fast path\n if (val1.length !== val2.length) {\n return false;\n }\n var keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n if (keys1.length !== keys2.length) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsArray, keys1);\n }\n // [browserify] This triggers on certain types in IE (Map/Set) so we don't\n // wan't to early return out of the rest of the checks. However we can check\n // if the second value is one of these values and the first isn't.\n if (val1Tag === '[object Object]') {\n // return keyCheck(val1, val2, strict, memos, kNoIterator);\n if (!isMap(val1) && isMap(val2) || !isSet(val1) && isSet(val2)) {\n return false;\n }\n }\n if (isDate(val1)) {\n if (!isDate(val2) || Date.prototype.getTime.call(val1) !== Date.prototype.getTime.call(val2)) {\n return false;\n }\n } else if (isRegExp(val1)) {\n if (!isRegExp(val2) || !areSimilarRegExps(val1, val2)) {\n return false;\n }\n } else if (isNativeError(val1) || val1 instanceof Error) {\n // Do not compare the stack as it might differ even though the error itself\n // is otherwise identical.\n if (val1.message !== val2.message || val1.name !== val2.name) {\n return false;\n }\n } else if (isArrayBufferView(val1)) {\n if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) {\n if (!areSimilarFloatArrays(val1, val2)) {\n return false;\n }\n } else if (!areSimilarTypedArrays(val1, val2)) {\n return false;\n }\n // Buffer.compare returns true, so val1.length === val2.length. If they both\n // only contain numeric keys, we don't need to exam further than checking\n // the symbols.\n var _keys = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var _keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n if (_keys.length !== _keys2.length) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kNoIterator, _keys);\n } else if (isSet(val1)) {\n if (!isSet(val2) || val1.size !== val2.size) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsSet);\n } else if (isMap(val1)) {\n if (!isMap(val2) || val1.size !== val2.size) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsMap);\n } else if (isAnyArrayBuffer(val1)) {\n if (!areEqualArrayBuffers(val1, val2)) {\n return false;\n }\n } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kNoIterator);\n}\nfunction getEnumerables(val, keys) {\n return keys.filter(function (k) {\n return propertyIsEnumerable(val, k);\n });\n}\nfunction keyCheck(val1, val2, strict, memos, iterationType, aKeys) {\n // For all remaining Object pairs, including Array, objects and Maps,\n // equivalence is determined by having:\n // a) The same number of owned enumerable properties\n // b) The same set of keys/indexes (although not necessarily the same order)\n // c) Equivalent values for every corresponding key/index\n // d) For Sets and Maps, equal contents\n // Note: this accounts for both named and indexed properties on Arrays.\n if (arguments.length === 5) {\n aKeys = Object.keys(val1);\n var bKeys = Object.keys(val2);\n\n // The pair must have the same number of owned properties.\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n }\n\n // Cheap key test\n var i = 0;\n for (; i < aKeys.length; i++) {\n if (!hasOwnProperty(val2, aKeys[i])) {\n return false;\n }\n }\n if (strict && arguments.length === 5) {\n var symbolKeysA = objectGetOwnPropertySymbols(val1);\n if (symbolKeysA.length !== 0) {\n var count = 0;\n for (i = 0; i < symbolKeysA.length; i++) {\n var key = symbolKeysA[i];\n if (propertyIsEnumerable(val1, key)) {\n if (!propertyIsEnumerable(val2, key)) {\n return false;\n }\n aKeys.push(key);\n count++;\n } else if (propertyIsEnumerable(val2, key)) {\n return false;\n }\n }\n var symbolKeysB = objectGetOwnPropertySymbols(val2);\n if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) {\n return false;\n }\n } else {\n var _symbolKeysB = objectGetOwnPropertySymbols(val2);\n if (_symbolKeysB.length !== 0 && getEnumerables(val2, _symbolKeysB).length !== 0) {\n return false;\n }\n }\n }\n if (aKeys.length === 0 && (iterationType === kNoIterator || iterationType === kIsArray && val1.length === 0 || val1.size === 0)) {\n return true;\n }\n\n // Use memos to handle cycles.\n if (memos === undefined) {\n memos = {\n val1: new Map(),\n val2: new Map(),\n position: 0\n };\n } else {\n // We prevent up to two map.has(x) calls by directly retrieving the value\n // and checking for undefined. The map can only contain numbers, so it is\n // safe to check for undefined only.\n var val2MemoA = memos.val1.get(val1);\n if (val2MemoA !== undefined) {\n var val2MemoB = memos.val2.get(val2);\n if (val2MemoB !== undefined) {\n return val2MemoA === val2MemoB;\n }\n }\n memos.position++;\n }\n memos.val1.set(val1, memos.position);\n memos.val2.set(val2, memos.position);\n var areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType);\n memos.val1.delete(val1);\n memos.val2.delete(val2);\n return areEq;\n}\nfunction setHasEqualElement(set, val1, strict, memo) {\n // Go looking.\n var setValues = arrayFromSet(set);\n for (var i = 0; i < setValues.length; i++) {\n var val2 = setValues[i];\n if (innerDeepEqual(val1, val2, strict, memo)) {\n // Remove the matching element to make sure we do not check that again.\n set.delete(val2);\n return true;\n }\n }\n return false;\n}\n\n// See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using\n// Sadly it is not possible to detect corresponding values properly in case the\n// type is a string, number, bigint or boolean. The reason is that those values\n// can match lots of different string values (e.g., 1n == '+00001').\nfunction findLooseMatchingPrimitives(prim) {\n switch (_typeof(prim)) {\n case 'undefined':\n return null;\n case 'object':\n // Only pass in null as object!\n return undefined;\n case 'symbol':\n return false;\n case 'string':\n prim = +prim;\n // Loose equal entries exist only if the string is possible to convert to\n // a regular number and not NaN.\n // Fall through\n case 'number':\n if (numberIsNaN(prim)) {\n return false;\n }\n }\n return true;\n}\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) return altValue;\n return b.has(altValue) && !a.has(altValue);\n}\nfunction mapMightHaveLoosePrim(a, b, prim, item, memo) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) {\n return altValue;\n }\n var curB = b.get(altValue);\n if (curB === undefined && !b.has(altValue) || !innerDeepEqual(item, curB, false, memo)) {\n return false;\n }\n return !a.has(altValue) && innerDeepEqual(item, curB, false, memo);\n}\nfunction setEquiv(a, b, strict, memo) {\n // This is a lazily initiated Set of entries which have to be compared\n // pairwise.\n var set = null;\n var aValues = arrayFromSet(a);\n for (var i = 0; i < aValues.length; i++) {\n var val = aValues[i];\n // Note: Checking for the objects first improves the performance for object\n // heavy sets but it is a minor slow down for primitives. As they are fast\n // to check this improves the worst case scenario instead.\n if (_typeof(val) === 'object' && val !== null) {\n if (set === null) {\n set = new Set();\n }\n // If the specified value doesn't exist in the second set its an not null\n // object (or non strict only: a not matching primitive) we'll need to go\n // hunting for something thats deep-(strict-)equal to it. To make this\n // O(n log n) complexity we have to copy these values in a new set first.\n set.add(val);\n } else if (!b.has(val)) {\n if (strict) return false;\n\n // Fast path to detect missing string, symbol, undefined and null values.\n if (!setMightHaveLoosePrim(a, b, val)) {\n return false;\n }\n if (set === null) {\n set = new Set();\n }\n set.add(val);\n }\n }\n if (set !== null) {\n var bValues = arrayFromSet(b);\n for (var _i = 0; _i < bValues.length; _i++) {\n var _val = bValues[_i];\n // We have to check if a primitive value is already\n // matching and only if it's not, go hunting for it.\n if (_typeof(_val) === 'object' && _val !== null) {\n if (!setHasEqualElement(set, _val, strict, memo)) return false;\n } else if (!strict && !a.has(_val) && !setHasEqualElement(set, _val, strict, memo)) {\n return false;\n }\n }\n return set.size === 0;\n }\n return true;\n}\nfunction mapHasEqualEntry(set, map, key1, item1, strict, memo) {\n // To be able to handle cases like:\n // Map([[{}, 'a'], [{}, 'b']]) vs Map([[{}, 'b'], [{}, 'a']])\n // ... we need to consider *all* matching keys, not just the first we find.\n var setValues = arrayFromSet(set);\n for (var i = 0; i < setValues.length; i++) {\n var key2 = setValues[i];\n if (innerDeepEqual(key1, key2, strict, memo) && innerDeepEqual(item1, map.get(key2), strict, memo)) {\n set.delete(key2);\n return true;\n }\n }\n return false;\n}\nfunction mapEquiv(a, b, strict, memo) {\n var set = null;\n var aEntries = arrayFromMap(a);\n for (var i = 0; i < aEntries.length; i++) {\n var _aEntries$i = _slicedToArray(aEntries[i], 2),\n key = _aEntries$i[0],\n item1 = _aEntries$i[1];\n if (_typeof(key) === 'object' && key !== null) {\n if (set === null) {\n set = new Set();\n }\n set.add(key);\n } else {\n // By directly retrieving the value we prevent another b.has(key) check in\n // almost all possible cases.\n var item2 = b.get(key);\n if (item2 === undefined && !b.has(key) || !innerDeepEqual(item1, item2, strict, memo)) {\n if (strict) return false;\n // Fast path to detect missing string, symbol, undefined and null\n // keys.\n if (!mapMightHaveLoosePrim(a, b, key, item1, memo)) return false;\n if (set === null) {\n set = new Set();\n }\n set.add(key);\n }\n }\n }\n if (set !== null) {\n var bEntries = arrayFromMap(b);\n for (var _i2 = 0; _i2 < bEntries.length; _i2++) {\n var _bEntries$_i = _slicedToArray(bEntries[_i2], 2),\n _key = _bEntries$_i[0],\n item = _bEntries$_i[1];\n if (_typeof(_key) === 'object' && _key !== null) {\n if (!mapHasEqualEntry(set, a, _key, item, strict, memo)) return false;\n } else if (!strict && (!a.has(_key) || !innerDeepEqual(a.get(_key), item, false, memo)) && !mapHasEqualEntry(set, a, _key, item, false, memo)) {\n return false;\n }\n }\n return set.size === 0;\n }\n return true;\n}\nfunction objEquiv(a, b, strict, keys, memos, iterationType) {\n // Sets and maps don't have their entries accessible via normal object\n // properties.\n var i = 0;\n if (iterationType === kIsSet) {\n if (!setEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsMap) {\n if (!mapEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsArray) {\n for (; i < a.length; i++) {\n if (hasOwnProperty(a, i)) {\n if (!hasOwnProperty(b, i) || !innerDeepEqual(a[i], b[i], strict, memos)) {\n return false;\n }\n } else if (hasOwnProperty(b, i)) {\n return false;\n } else {\n // Array is sparse.\n var keysA = Object.keys(a);\n for (; i < keysA.length; i++) {\n var key = keysA[i];\n if (!hasOwnProperty(b, key) || !innerDeepEqual(a[key], b[key], strict, memos)) {\n return false;\n }\n }\n if (keysA.length !== Object.keys(b).length) {\n return false;\n }\n return true;\n }\n }\n }\n\n // The pair must have equivalent values for every corresponding key.\n // Possibly expensive deep test:\n for (i = 0; i < keys.length; i++) {\n var _key2 = keys[i];\n if (!innerDeepEqual(a[_key2], b[_key2], strict, memos)) {\n return false;\n }\n }\n return true;\n}\nfunction isDeepEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kLoose);\n}\nfunction isDeepStrictEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kStrict);\n}\nmodule.exports = {\n isDeepEqual: isDeepEqual,\n isDeepStrictEqual: isDeepStrictEqual\n};","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","'use strict'\nvar ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'\n\n// pre-compute lookup table\nvar ALPHABET_MAP = {}\nfor (var z = 0; z < ALPHABET.length; z++) {\n var x = ALPHABET.charAt(z)\n\n if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')\n ALPHABET_MAP[x] = z\n}\n\nfunction polymodStep (pre) {\n var b = pre >> 25\n return ((pre & 0x1FFFFFF) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3)\n}\n\nfunction prefixChk (prefix) {\n var chk = 1\n for (var i = 0; i < prefix.length; ++i) {\n var c = prefix.charCodeAt(i)\n if (c < 33 || c > 126) return 'Invalid prefix (' + prefix + ')'\n\n chk = polymodStep(chk) ^ (c >> 5)\n }\n chk = polymodStep(chk)\n\n for (i = 0; i < prefix.length; ++i) {\n var v = prefix.charCodeAt(i)\n chk = polymodStep(chk) ^ (v & 0x1f)\n }\n return chk\n}\n\nfunction encode (prefix, words, LIMIT) {\n LIMIT = LIMIT || 90\n if ((prefix.length + 7 + words.length) > LIMIT) throw new TypeError('Exceeds length limit')\n\n prefix = prefix.toLowerCase()\n\n // determine chk mod\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') throw new Error(chk)\n\n var result = prefix + '1'\n for (var i = 0; i < words.length; ++i) {\n var x = words[i]\n if ((x >> 5) !== 0) throw new Error('Non 5-bit word')\n\n chk = polymodStep(chk) ^ x\n result += ALPHABET.charAt(x)\n }\n\n for (i = 0; i < 6; ++i) {\n chk = polymodStep(chk)\n }\n chk ^= 1\n\n for (i = 0; i < 6; ++i) {\n var v = (chk >> ((5 - i) * 5)) & 0x1f\n result += ALPHABET.charAt(v)\n }\n\n return result\n}\n\nfunction __decode (str, LIMIT) {\n LIMIT = LIMIT || 90\n if (str.length < 8) return str + ' too short'\n if (str.length > LIMIT) return 'Exceeds length limit'\n\n // don't allow mixed case\n var lowered = str.toLowerCase()\n var uppered = str.toUpperCase()\n if (str !== lowered && str !== uppered) return 'Mixed-case string ' + str\n str = lowered\n\n var split = str.lastIndexOf('1')\n if (split === -1) return 'No separator character for ' + str\n if (split === 0) return 'Missing prefix for ' + str\n\n var prefix = str.slice(0, split)\n var wordChars = str.slice(split + 1)\n if (wordChars.length < 6) return 'Data too short'\n\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') return chk\n\n var words = []\n for (var i = 0; i < wordChars.length; ++i) {\n var c = wordChars.charAt(i)\n var v = ALPHABET_MAP[c]\n if (v === undefined) return 'Unknown character ' + c\n chk = polymodStep(chk) ^ v\n\n // not in the checksum?\n if (i + 6 >= wordChars.length) continue\n words.push(v)\n }\n\n if (chk !== 1) return 'Invalid checksum for ' + str\n return { prefix: prefix, words: words }\n}\n\nfunction decodeUnsafe () {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n}\n\nfunction decode (str) {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n\n throw new Error(res)\n}\n\nfunction convert (data, inBits, outBits, pad) {\n var value = 0\n var bits = 0\n var maxV = (1 << outBits) - 1\n\n var result = []\n for (var i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i]\n bits += inBits\n\n while (bits >= outBits) {\n bits -= outBits\n result.push((value >> bits) & maxV)\n }\n }\n\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV)\n }\n } else {\n if (bits >= inBits) return 'Excess padding'\n if ((value << (outBits - bits)) & maxV) return 'Non-zero padding'\n }\n\n return result\n}\n\nfunction toWordsUnsafe (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n}\n\nfunction toWords (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nfunction fromWordsUnsafe (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n}\n\nfunction fromWords (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nmodule.exports = {\n decodeUnsafe: decodeUnsafe,\n decode: decode,\n encode: encode,\n toWordsUnsafe: toWordsUnsafe,\n toWords: toWords,\n fromWordsUnsafe: fromWordsUnsafe,\n fromWords: fromWords\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","'use strict';\n\nvar BN = require('bn.js');\nvar randomBytes = require('randombytes');\nvar Buffer = require('safe-buffer').Buffer;\n\nfunction getr(priv) {\n\tvar len = priv.modulus.byteLength();\n\tvar r;\n\tdo {\n\t\tr = new BN(randomBytes(len));\n\t} while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2));\n\treturn r;\n}\n\nfunction blind(priv) {\n\tvar r = getr(priv);\n\tvar blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed();\n\treturn { blinder: blinder, unblinder: r.invm(priv.modulus) };\n}\n\nfunction crt(msg, priv) {\n\tvar blinds = blind(priv);\n\tvar len = priv.modulus.byteLength();\n\tvar blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus);\n\tvar c1 = blinded.toRed(BN.mont(priv.prime1));\n\tvar c2 = blinded.toRed(BN.mont(priv.prime2));\n\tvar qinv = priv.coefficient;\n\tvar p = priv.prime1;\n\tvar q = priv.prime2;\n\tvar m1 = c1.redPow(priv.exponent1).fromRed();\n\tvar m2 = c2.redPow(priv.exponent2).fromRed();\n\tvar h = m1.isub(m2).imul(qinv).umod(p).imul(q);\n\treturn m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len);\n}\ncrt.getr = getr;\n\nmodule.exports = crt;\n","'use strict';\n\nmodule.exports = require('./browser/algorithms.json');\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar createHash = require('create-hash');\nvar stream = require('readable-stream');\nvar inherits = require('inherits');\nvar sign = require('./sign');\nvar verify = require('./verify');\n\nvar algorithms = require('./algorithms.json');\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex');\n algorithms[key.toLowerCase()] = algorithms[key];\n});\n\nfunction Sign(algorithm) {\n stream.Writable.call(this);\n\n var data = algorithms[algorithm];\n if (!data) { throw new Error('Unknown message digest'); }\n\n this._hashType = data.hash;\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\ninherits(Sign, stream.Writable);\n\nSign.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n done();\n};\n\nSign.prototype.update = function update(data, enc) {\n this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n return this;\n};\n\nSign.prototype.sign = function signMethod(key, enc) {\n this.end();\n var hash = this._hash.digest();\n var sig = sign(hash, key, this._hashType, this._signType, this._tag);\n\n return enc ? sig.toString(enc) : sig;\n};\n\nfunction Verify(algorithm) {\n stream.Writable.call(this);\n\n var data = algorithms[algorithm];\n if (!data) { throw new Error('Unknown message digest'); }\n\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\ninherits(Verify, stream.Writable);\n\nVerify.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n done();\n};\n\nVerify.prototype.update = function update(data, enc) {\n this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n return this;\n};\n\nVerify.prototype.verify = function verifyMethod(key, sig, enc) {\n var sigBuffer = typeof sig === 'string' ? Buffer.from(sig, enc) : sig;\n\n this.end();\n var hash = this._hash.digest();\n return verify(sigBuffer, hash, key, this._signType, this._tag);\n};\n\nfunction createSign(algorithm) {\n return new Sign(algorithm);\n}\n\nfunction createVerify(algorithm) {\n return new Verify(algorithm);\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n};\n","'use strict';\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer;\nvar createHmac = require('create-hmac');\nvar crt = require('browserify-rsa');\nvar EC = require('elliptic').ec;\nvar BN = require('bn.js');\nvar parseKeys = require('parse-asn1');\nvar curves = require('./curves.json');\n\nvar RSA_PKCS1_PADDING = 1;\n\nfunction sign(hash, key, hashType, signType, tag) {\n var priv = parseKeys(key);\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n return ecSign(hash, priv);\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') { throw new Error('wrong private key type'); }\n return dsaSign(hash, priv, hashType);\n }\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n if (key.padding !== undefined && key.padding !== RSA_PKCS1_PADDING) { throw new Error('illegal or unsupported padding mode'); }\n\n hash = Buffer.concat([tag, hash]);\n var len = priv.modulus.byteLength();\n var pad = [0, 1];\n while (hash.length + pad.length + 1 < len) { pad.push(0xff); }\n pad.push(0x00);\n var i = -1;\n while (++i < hash.length) { pad.push(hash[i]); }\n\n var out = crt(pad, priv);\n return out;\n}\n\nfunction ecSign(hash, priv) {\n var curveId = curves[priv.curve.join('.')];\n if (!curveId) { throw new Error('unknown curve ' + priv.curve.join('.')); }\n\n var curve = new EC(curveId);\n var key = curve.keyFromPrivate(priv.privateKey);\n var out = key.sign(hash);\n\n return Buffer.from(out.toDER());\n}\n\nfunction dsaSign(hash, priv, algo) {\n var x = priv.params.priv_key;\n var p = priv.params.p;\n var q = priv.params.q;\n var g = priv.params.g;\n var r = new BN(0);\n var k;\n var H = bits2int(hash, q).mod(q);\n var s = false;\n var kv = getKey(x, q, hash, algo);\n while (s === false) {\n k = makeKey(q, kv, algo);\n r = makeR(g, k, p, q);\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q);\n if (s.cmpn(0) === 0) {\n s = false;\n r = new BN(0);\n }\n }\n return toDER(r, s);\n}\n\nfunction toDER(r, s) {\n r = r.toArray();\n s = s.toArray();\n\n // Pad values\n if (r[0] & 0x80) { r = [0].concat(r); }\n if (s[0] & 0x80) { s = [0].concat(s); }\n\n var total = r.length + s.length + 4;\n var res = [\n 0x30, total, 0x02, r.length\n ];\n res = res.concat(r, [0x02, s.length], s);\n return Buffer.from(res);\n}\n\nfunction getKey(x, q, hash, algo) {\n x = Buffer.from(x.toArray());\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length);\n x = Buffer.concat([zeros, x]);\n }\n var hlen = hash.length;\n var hbits = bits2octets(hash, q);\n var v = Buffer.alloc(hlen);\n v.fill(1);\n var k = Buffer.alloc(hlen);\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n return { k: k, v: v };\n}\n\nfunction bits2int(obits, q) {\n var bits = new BN(obits);\n var shift = (obits.length << 3) - q.bitLength();\n if (shift > 0) { bits.ishrn(shift); }\n return bits;\n}\n\nfunction bits2octets(bits, q) {\n bits = bits2int(bits, q);\n bits = bits.mod(q);\n var out = Buffer.from(bits.toArray());\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length);\n out = Buffer.concat([zeros, out]);\n }\n return out;\n}\n\nfunction makeKey(q, kv, algo) {\n var t;\n var k;\n\n do {\n t = Buffer.alloc(0);\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n t = Buffer.concat([t, kv.v]);\n }\n\n k = bits2int(t, q);\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest();\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n } while (k.cmp(q) !== -1);\n\n return k;\n}\n\nfunction makeR(g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q);\n}\n\nmodule.exports = sign;\nmodule.exports.getKey = getKey;\nmodule.exports.makeKey = makeKey;\n","'use strict';\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer;\nvar BN = require('bn.js');\nvar EC = require('elliptic').ec;\nvar parseKeys = require('parse-asn1');\nvar curves = require('./curves.json');\n\nfunction verify(sig, hash, key, signType, tag) {\n var pub = parseKeys(key);\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n return ecVerify(sig, hash, pub);\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') { throw new Error('wrong public key type'); }\n return dsaVerify(sig, hash, pub);\n }\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n\n hash = Buffer.concat([tag, hash]);\n var len = pub.modulus.byteLength();\n var pad = [1];\n var padNum = 0;\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff);\n padNum += 1;\n }\n pad.push(0x00);\n var i = -1;\n while (++i < hash.length) {\n pad.push(hash[i]);\n }\n pad = Buffer.from(pad);\n var red = BN.mont(pub.modulus);\n sig = new BN(sig).toRed(red);\n\n sig = sig.redPow(new BN(pub.publicExponent));\n sig = Buffer.from(sig.fromRed().toArray());\n var out = padNum < 8 ? 1 : 0;\n len = Math.min(sig.length, pad.length);\n if (sig.length !== pad.length) { out = 1; }\n\n i = -1;\n while (++i < len) { out |= sig[i] ^ pad[i]; }\n return out === 0;\n}\n\nfunction ecVerify(sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')];\n if (!curveId) { throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.')); }\n\n var curve = new EC(curveId);\n var pubkey = pub.data.subjectPrivateKey.data;\n\n return curve.verify(hash, sig, pubkey);\n}\n\nfunction dsaVerify(sig, hash, pub) {\n var p = pub.data.p;\n var q = pub.data.q;\n var g = pub.data.g;\n var y = pub.data.pub_key;\n var unpacked = parseKeys.signature.decode(sig, 'der');\n var s = unpacked.s;\n var r = unpacked.r;\n checkValue(s, q);\n checkValue(r, q);\n var montp = BN.mont(p);\n var w = s.invm(q);\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q);\n return v.cmp(r) === 0;\n}\n\nfunction checkValue(b, q) {\n if (b.cmpn(0) <= 0) { throw new Error('invalid sig'); }\n if (b.cmp(q) >= 0) { throw new Error('invalid sig'); }\n}\n\nmodule.exports = verify;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, { hasUnpiped: false });\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n pna.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n pna.nextTick(emitErrorNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, _this, err);\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","module.exports = require('events').EventEmitter;\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","'use strict';\n\nvar bind = require('function-bind');\nvar $apply = require('./functionApply');\nvar actualApply = require('./actualApply');\n\n/** @type {import('./applyBind')} */\nmodule.exports = function applyBind() {\n\treturn actualApply(bind, $apply, arguments);\n};\n","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","'use strict';\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","'use strict';\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar setFunctionLength = require('set-function-length');\n\nvar $defineProperty = require('es-define-property');\n\nvar callBindBasic = require('call-bind-apply-helpers');\nvar applyBind = require('call-bind-apply-helpers/applyBind');\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = callBindBasic(arguments);\n\tvar adjustedLength = originalFunction.length - (arguments.length - 1);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + (adjustedLength > 0 ? adjustedLength : 0),\n\t\ttrue\n\t);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBindBasic = require('call-bind-apply-helpers');\n\n/** @type {(thisArg: string, searchString: string, position?: number) => number} */\nvar $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]);\n\n/** @type {import('.')} */\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\t/* eslint no-extra-parens: 0 */\n\n\tvar intrinsic = /** @type {(this: unknown, ...args: unknown[]) => unknown} */ (GetIntrinsic(name, !!allowMissing));\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBindBasic(/** @type {const} */ ([intrinsic]));\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar Transform = require('stream').Transform;\nvar StringDecoder = require('string_decoder').StringDecoder;\nvar inherits = require('inherits');\n\nfunction CipherBase(hashMode) {\n\tTransform.call(this);\n\tthis.hashMode = typeof hashMode === 'string';\n\tif (this.hashMode) {\n\t\tthis[hashMode] = this._finalOrDigest;\n\t} else {\n\t\tthis['final'] = this._finalOrDigest;\n\t}\n\tif (this._final) {\n\t\tthis.__final = this._final;\n\t\tthis._final = null;\n\t}\n\tthis._decoder = null;\n\tthis._encoding = null;\n}\ninherits(CipherBase, Transform);\n\nvar useUint8Array = typeof Uint8Array !== 'undefined';\nvar useArrayBuffer = typeof ArrayBuffer !== 'undefined'\n\t&& typeof Uint8Array !== 'undefined'\n\t&& ArrayBuffer.isView\n\t&& (Buffer.prototype instanceof Uint8Array || Buffer.TYPED_ARRAY_SUPPORT);\n\nfunction toBuffer(data, encoding) {\n\t/*\n\t * No need to do anything for exact instance\n\t * This is only valid when safe-buffer.Buffer === buffer.Buffer, i.e. when Buffer.from/Buffer.alloc existed\n\t */\n\tif (data instanceof Buffer) {\n\t\treturn data;\n\t}\n\n\t// Convert strings to Buffer\n\tif (typeof data === 'string') {\n\t\treturn Buffer.from(data, encoding);\n\t}\n\n\t/*\n\t * Wrap any TypedArray instances and DataViews\n\t * Makes sense only on engines with full TypedArray support -- let Buffer detect that\n\t */\n\tif (useArrayBuffer && ArrayBuffer.isView(data)) {\n\t\t// Bug in Node.js <6.3.1, which treats this as out-of-bounds\n\t\tif (data.byteLength === 0) {\n\t\t\treturn Buffer.alloc(0);\n\t\t}\n\n\t\tvar res = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n\t\t/*\n\t\t * Recheck result size, as offset/length doesn't work on Node.js <5.10\n\t\t * We just go to Uint8Array case if this fails\n\t\t */\n\t\tif (res.byteLength === data.byteLength) {\n\t\t\treturn res;\n\t\t}\n\t}\n\n\t/*\n\t * Uint8Array in engines where Buffer.from might not work with ArrayBuffer, just copy over\n\t * Doesn't make sense with other TypedArray instances\n\t */\n\tif (useUint8Array && data instanceof Uint8Array) {\n\t\treturn Buffer.from(data);\n\t}\n\n\t/*\n\t * Old Buffer polyfill on an engine that doesn't have TypedArray support\n\t * Also, this is from a different Buffer polyfill implementation then we have, as instanceof check failed\n\t * Convert to our current Buffer implementation\n\t */\n\tif (\n\t\tBuffer.isBuffer(data)\n\t\t\t&& data.constructor\n\t\t\t&& typeof data.constructor.isBuffer === 'function'\n\t\t\t&& data.constructor.isBuffer(data)\n\t) {\n\t\treturn Buffer.from(data);\n\t}\n\n\tthrow new TypeError('The \"data\" argument must be of type string or an instance of Buffer, TypedArray, or DataView.');\n}\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n\tvar bufferData = toBuffer(data, inputEnc); // asserts correct input type\n\tvar outData = this._update(bufferData);\n\tif (this.hashMode) {\n\t\treturn this;\n\t}\n\n\tif (outputEnc) {\n\t\toutData = this._toString(outData, outputEnc);\n\t}\n\n\treturn outData;\n};\n\nCipherBase.prototype.setAutoPadding = function () {};\nCipherBase.prototype.getAuthTag = function () {\n\tthrow new Error('trying to get auth tag in unsupported state');\n};\n\nCipherBase.prototype.setAuthTag = function () {\n\tthrow new Error('trying to set auth tag in unsupported state');\n};\n\nCipherBase.prototype.setAAD = function () {\n\tthrow new Error('trying to set aad in unsupported state');\n};\n\nCipherBase.prototype._transform = function (data, _, next) {\n\tvar err;\n\ttry {\n\t\tif (this.hashMode) {\n\t\t\tthis._update(data);\n\t\t} else {\n\t\t\tthis.push(this._update(data));\n\t\t}\n\t} catch (e) {\n\t\terr = e;\n\t} finally {\n\t\tnext(err);\n\t}\n};\nCipherBase.prototype._flush = function (done) {\n\tvar err;\n\ttry {\n\t\tthis.push(this.__final());\n\t} catch (e) {\n\t\terr = e;\n\t}\n\n\tdone(err);\n};\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n\tvar outData = this.__final() || Buffer.alloc(0);\n\tif (outputEnc) {\n\t\toutData = this._toString(outData, outputEnc, true);\n\t}\n\treturn outData;\n};\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n\tif (!this._decoder) {\n\t\tthis._decoder = new StringDecoder(enc);\n\t\tthis._encoding = enc;\n\t}\n\n\tif (this._encoding !== enc) {\n\t\tthrow new Error('can’t switch encodings');\n\t}\n\n\tvar out = this._decoder.write(value);\n\tif (fin) {\n\t\tout += this._decoder.end();\n\t}\n\n\treturn out;\n};\n\nmodule.exports = CipherBase;\n","/*global window, global*/\nvar util = require(\"util\")\nvar assert = require(\"assert\")\nfunction now() { return new Date().getTime() }\n\nvar slice = Array.prototype.slice\nvar console\nvar times = {}\n\nif (typeof global !== \"undefined\" && global.console) {\n console = global.console\n} else if (typeof window !== \"undefined\" && window.console) {\n console = window.console\n} else {\n console = {}\n}\n\nvar functions = [\n [log, \"log\"],\n [info, \"info\"],\n [warn, \"warn\"],\n [error, \"error\"],\n [time, \"time\"],\n [timeEnd, \"timeEnd\"],\n [trace, \"trace\"],\n [dir, \"dir\"],\n [consoleAssert, \"assert\"]\n]\n\nfor (var i = 0; i < functions.length; i++) {\n var tuple = functions[i]\n var f = tuple[0]\n var name = tuple[1]\n\n if (!console[name]) {\n console[name] = f\n }\n}\n\nmodule.exports = console\n\nfunction log() {}\n\nfunction info() {\n console.log.apply(console, arguments)\n}\n\nfunction warn() {\n console.log.apply(console, arguments)\n}\n\nfunction error() {\n console.warn.apply(console, arguments)\n}\n\nfunction time(label) {\n times[label] = now()\n}\n\nfunction timeEnd(label) {\n var time = times[label]\n if (!time) {\n throw new Error(\"No such label: \" + label)\n }\n\n delete times[label]\n var duration = now() - time\n console.log(label + \": \" + duration + \"ms\")\n}\n\nfunction trace() {\n var err = new Error()\n err.name = \"Trace\"\n err.message = util.format.apply(null, arguments)\n console.error(err.stack)\n}\n\nfunction dir(object) {\n console.log(util.inspect(object) + \"\\n\")\n}\n\nfunction consoleAssert(expression) {\n if (!expression) {\n var arr = slice.call(arguments, 1)\n assert.ok(false, util.format.apply(null, arr))\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","\"use strict\";\n/* eslint-disable */\n/**\n * This file and any referenced files were automatically generated by @cosmology/telescope@1.0.7\n * DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain\n * and run the transpile command or yarn proto command to regenerate this bundle.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BinaryWriter = exports.BinaryReader = exports.WireType = void 0;\n// Copyright (c) 2016, Daniel Wirtz All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// * Neither the name of its author, nor the names of its contributors\n// may be used to endorse or promote products derived from this software\n// without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n// ---\n// Code generated by the command line utilities is owned by the owner\n// of the input file used when generating it. This code is not\n// standalone and requires a support library to be linked with it. This\n// support library is itself covered by the above license.\nconst utf8_1 = require(\"./utf8\");\nconst varint_1 = require(\"./varint\");\nvar WireType;\n(function (WireType) {\n WireType[WireType[\"Varint\"] = 0] = \"Varint\";\n WireType[WireType[\"Fixed64\"] = 1] = \"Fixed64\";\n WireType[WireType[\"Bytes\"] = 2] = \"Bytes\";\n WireType[WireType[\"Fixed32\"] = 5] = \"Fixed32\";\n})(WireType || (exports.WireType = WireType = {}));\nclass BinaryReader {\n assertBounds() {\n if (this.pos > this.len)\n throw new RangeError(\"premature EOF\");\n }\n constructor(buf) {\n this.buf = buf ? new Uint8Array(buf) : new Uint8Array(0);\n this.pos = 0;\n this.type = 0;\n this.len = this.buf.length;\n }\n tag() {\n const tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7;\n if (fieldNo <= 0 || wireType < 0 || wireType > 5)\n throw new Error(\"illegal tag: field no \" + fieldNo + \" wire type \" + wireType);\n return [fieldNo, wireType, tag];\n }\n skip(length) {\n if (typeof length === \"number\") {\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n }\n else {\n do {\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n }\n skipType(wireType) {\n switch (wireType) {\n case WireType.Varint:\n this.skip();\n break;\n case WireType.Fixed64:\n this.skip(8);\n break;\n case WireType.Bytes:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case WireType.Fixed32:\n this.skip(4);\n break;\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n }\n uint32() {\n return varint_1.varint32read.bind(this)();\n }\n int32() {\n return this.uint32() | 0;\n }\n sint32() {\n const num = this.uint32();\n return num % 2 === 1 ? (num + 1) / -2 : num / 2; // zigzag encoding\n }\n fixed32() {\n const val = (0, varint_1.readUInt32)(this.buf, this.pos);\n this.pos += 4;\n return val;\n }\n sfixed32() {\n const val = (0, varint_1.readInt32)(this.buf, this.pos);\n this.pos += 4;\n return val;\n }\n int64() {\n const [lo, hi] = varint_1.varint64read.bind(this)();\n return BigInt((0, varint_1.int64ToString)(lo, hi));\n }\n uint64() {\n const [lo, hi] = varint_1.varint64read.bind(this)();\n return BigInt((0, varint_1.uInt64ToString)(lo, hi));\n }\n sint64() {\n let [lo, hi] = varint_1.varint64read.bind(this)();\n // zig zag\n [lo, hi] = (0, varint_1.zzDecode)(lo, hi);\n return BigInt((0, varint_1.int64ToString)(lo, hi));\n }\n fixed64() {\n const lo = this.sfixed32();\n const hi = this.sfixed32();\n return BigInt((0, varint_1.uInt64ToString)(lo, hi));\n }\n sfixed64() {\n const lo = this.sfixed32();\n const hi = this.sfixed32();\n return BigInt((0, varint_1.int64ToString)(lo, hi));\n }\n float() {\n throw new Error(\"float not supported\");\n }\n double() {\n throw new Error(\"double not supported\");\n }\n bool() {\n const [lo, hi] = varint_1.varint64read.bind(this)();\n return lo !== 0 || hi !== 0;\n }\n bytes() {\n const len = this.uint32(), start = this.pos;\n this.pos += len;\n this.assertBounds();\n return this.buf.subarray(start, start + len);\n }\n string() {\n const bytes = this.bytes();\n return (0, utf8_1.utf8Read)(bytes, 0, bytes.length);\n }\n}\nexports.BinaryReader = BinaryReader;\nclass Op {\n constructor(fn, len, val) {\n this.fn = fn;\n this.len = len;\n this.val = val;\n }\n proceed(buf, pos) {\n if (this.fn) {\n this.fn(this.val, buf, pos);\n }\n }\n}\nclass State {\n constructor(writer) {\n this.head = writer.head;\n this.tail = writer.tail;\n this.len = writer.len;\n this.next = writer.states;\n }\n}\nclass BinaryWriter {\n constructor() {\n this.len = 0;\n // uint64 is the same with int64\n this.uint64 = BinaryWriter.prototype.int64;\n // sfixed64 is the same with fixed64\n this.sfixed64 = BinaryWriter.prototype.fixed64;\n // sfixed32 is the same with fixed32\n this.sfixed32 = BinaryWriter.prototype.fixed32;\n this.head = new Op(null, 0, 0);\n this.tail = this.head;\n this.states = null;\n }\n static create() {\n return new BinaryWriter();\n }\n static alloc(size) {\n if (typeof Uint8Array !== \"undefined\") {\n return pool((size) => new Uint8Array(size), Uint8Array.prototype.subarray)(size);\n }\n else {\n return new Array(size);\n }\n }\n _push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n }\n finish() {\n let head = this.head.next, pos = 0;\n const buf = BinaryWriter.alloc(this.len);\n while (head) {\n head.proceed(buf, pos);\n pos += head.len;\n head = head.next;\n }\n return buf;\n }\n fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(null, 0, 0);\n this.len = 0;\n return this;\n }\n reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n }\n else {\n this.head = this.tail = new Op(null, 0, 0);\n this.len = 0;\n }\n return this;\n }\n ldelim() {\n const head = this.head, tail = this.tail, len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n }\n tag(fieldNo, type) {\n return this.uint32(((fieldNo << 3) | type) >>> 0);\n }\n uint32(value) {\n this.len += (this.tail = this.tail.next =\n new Op(varint_1.writeVarint32, (value = value >>> 0) < 128 ? 1 : value < 16384 ? 2 : value < 2097152 ? 3 : value < 268435456 ? 4 : 5, value)).len;\n return this;\n }\n int32(value) {\n return value < 0\n ? this._push(varint_1.writeVarint64, 10, (0, varint_1.int64FromString)(value.toString())) // 10 bytes per spec\n : this.uint32(value);\n }\n sint32(value) {\n return this.uint32(((value << 1) ^ (value >> 31)) >>> 0);\n }\n int64(value) {\n const { lo, hi } = (0, varint_1.int64FromString)(value.toString());\n return this._push(varint_1.writeVarint64, (0, varint_1.int64Length)(lo, hi), { lo, hi });\n }\n sint64(value) {\n let { lo, hi } = (0, varint_1.int64FromString)(value.toString());\n // zig zag\n [lo, hi] = (0, varint_1.zzEncode)(lo, hi);\n return this._push(varint_1.writeVarint64, (0, varint_1.int64Length)(lo, hi), { lo, hi });\n }\n fixed64(value) {\n const { lo, hi } = (0, varint_1.int64FromString)(value.toString());\n return this._push(varint_1.writeFixed32, 4, lo)._push(varint_1.writeFixed32, 4, hi);\n }\n bool(value) {\n return this._push(varint_1.writeByte, 1, value ? 1 : 0);\n }\n fixed32(value) {\n return this._push(varint_1.writeFixed32, 4, value >>> 0);\n }\n float(value) {\n throw new Error(\"float not supported\" + value);\n }\n double(value) {\n throw new Error(\"double not supported\" + value);\n }\n bytes(value) {\n const len = value.length >>> 0;\n if (!len)\n return this._push(varint_1.writeByte, 1, 0);\n return this.uint32(len)._push(writeBytes, len, value);\n }\n string(value) {\n const len = (0, utf8_1.utf8Length)(value);\n return len ? this.uint32(len)._push(utf8_1.utf8Write, len, value) : this._push(varint_1.writeByte, 1, 0);\n }\n}\nexports.BinaryWriter = BinaryWriter;\nfunction writeBytes(val, buf, pos) {\n if (typeof Uint8Array !== \"undefined\") {\n buf.set(val, pos);\n }\n else {\n for (let i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n }\n}\nfunction pool(alloc, slice, size) {\n const SIZE = size || 8192;\n const MAX = SIZE >>> 1;\n let slab = null;\n let offset = SIZE;\n return function pool_alloc(size) {\n if (size < 1 || size > MAX)\n return alloc(size);\n if (offset + size > SIZE) {\n slab = alloc(SIZE);\n offset = 0;\n }\n const buf = slice.call(slab, offset, (offset += size));\n if (offset & 7)\n // align to 32 bit\n offset = (offset | 7) + 1;\n return buf;\n };\n}\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n//# sourceMappingURL=binary.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.ModuleCredential = exports.ModuleAccount = exports.BaseAccount = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.auth.v1beta1\";\nfunction createBaseBaseAccount() {\n return {\n address: \"\",\n pubKey: undefined,\n accountNumber: BigInt(0),\n sequence: BigInt(0),\n };\n}\nexports.BaseAccount = {\n typeUrl: \"/cosmos.auth.v1beta1.BaseAccount\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.pubKey !== undefined) {\n any_1.Any.encode(message.pubKey, writer.uint32(18).fork()).ldelim();\n }\n if (message.accountNumber !== BigInt(0)) {\n writer.uint32(24).uint64(message.accountNumber);\n }\n if (message.sequence !== BigInt(0)) {\n writer.uint32(32).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBaseAccount();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.pubKey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.accountNumber = reader.uint64();\n break;\n case 4:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBaseAccount();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.pubKey))\n obj.pubKey = any_1.Any.fromJSON(object.pubKey);\n if ((0, helpers_1.isSet)(object.accountNumber))\n obj.accountNumber = BigInt(object.accountNumber.toString());\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.pubKey !== undefined && (obj.pubKey = message.pubKey ? any_1.Any.toJSON(message.pubKey) : undefined);\n message.accountNumber !== undefined &&\n (obj.accountNumber = (message.accountNumber || BigInt(0)).toString());\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBaseAccount();\n message.address = object.address ?? \"\";\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = any_1.Any.fromPartial(object.pubKey);\n }\n if (object.accountNumber !== undefined && object.accountNumber !== null) {\n message.accountNumber = BigInt(object.accountNumber.toString());\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n return message;\n },\n};\nfunction createBaseModuleAccount() {\n return {\n baseAccount: undefined,\n name: \"\",\n permissions: [],\n };\n}\nexports.ModuleAccount = {\n typeUrl: \"/cosmos.auth.v1beta1.ModuleAccount\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.baseAccount !== undefined) {\n exports.BaseAccount.encode(message.baseAccount, writer.uint32(10).fork()).ldelim();\n }\n if (message.name !== \"\") {\n writer.uint32(18).string(message.name);\n }\n for (const v of message.permissions) {\n writer.uint32(26).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseModuleAccount();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseAccount = exports.BaseAccount.decode(reader, reader.uint32());\n break;\n case 2:\n message.name = reader.string();\n break;\n case 3:\n message.permissions.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseModuleAccount();\n if ((0, helpers_1.isSet)(object.baseAccount))\n obj.baseAccount = exports.BaseAccount.fromJSON(object.baseAccount);\n if ((0, helpers_1.isSet)(object.name))\n obj.name = String(object.name);\n if (Array.isArray(object?.permissions))\n obj.permissions = object.permissions.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.baseAccount !== undefined &&\n (obj.baseAccount = message.baseAccount ? exports.BaseAccount.toJSON(message.baseAccount) : undefined);\n message.name !== undefined && (obj.name = message.name);\n if (message.permissions) {\n obj.permissions = message.permissions.map((e) => e);\n }\n else {\n obj.permissions = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseModuleAccount();\n if (object.baseAccount !== undefined && object.baseAccount !== null) {\n message.baseAccount = exports.BaseAccount.fromPartial(object.baseAccount);\n }\n message.name = object.name ?? \"\";\n message.permissions = object.permissions?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseModuleCredential() {\n return {\n moduleName: \"\",\n derivationKeys: [],\n };\n}\nexports.ModuleCredential = {\n typeUrl: \"/cosmos.auth.v1beta1.ModuleCredential\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.moduleName !== \"\") {\n writer.uint32(10).string(message.moduleName);\n }\n for (const v of message.derivationKeys) {\n writer.uint32(18).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseModuleCredential();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.moduleName = reader.string();\n break;\n case 2:\n message.derivationKeys.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseModuleCredential();\n if ((0, helpers_1.isSet)(object.moduleName))\n obj.moduleName = String(object.moduleName);\n if (Array.isArray(object?.derivationKeys))\n obj.derivationKeys = object.derivationKeys.map((e) => (0, helpers_1.bytesFromBase64)(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.moduleName !== undefined && (obj.moduleName = message.moduleName);\n if (message.derivationKeys) {\n obj.derivationKeys = message.derivationKeys.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.derivationKeys = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseModuleCredential();\n message.moduleName = object.moduleName ?? \"\";\n message.derivationKeys = object.derivationKeys?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseParams() {\n return {\n maxMemoCharacters: BigInt(0),\n txSigLimit: BigInt(0),\n txSizeCostPerByte: BigInt(0),\n sigVerifyCostEd25519: BigInt(0),\n sigVerifyCostSecp256k1: BigInt(0),\n };\n}\nexports.Params = {\n typeUrl: \"/cosmos.auth.v1beta1.Params\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.maxMemoCharacters !== BigInt(0)) {\n writer.uint32(8).uint64(message.maxMemoCharacters);\n }\n if (message.txSigLimit !== BigInt(0)) {\n writer.uint32(16).uint64(message.txSigLimit);\n }\n if (message.txSizeCostPerByte !== BigInt(0)) {\n writer.uint32(24).uint64(message.txSizeCostPerByte);\n }\n if (message.sigVerifyCostEd25519 !== BigInt(0)) {\n writer.uint32(32).uint64(message.sigVerifyCostEd25519);\n }\n if (message.sigVerifyCostSecp256k1 !== BigInt(0)) {\n writer.uint32(40).uint64(message.sigVerifyCostSecp256k1);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxMemoCharacters = reader.uint64();\n break;\n case 2:\n message.txSigLimit = reader.uint64();\n break;\n case 3:\n message.txSizeCostPerByte = reader.uint64();\n break;\n case 4:\n message.sigVerifyCostEd25519 = reader.uint64();\n break;\n case 5:\n message.sigVerifyCostSecp256k1 = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseParams();\n if ((0, helpers_1.isSet)(object.maxMemoCharacters))\n obj.maxMemoCharacters = BigInt(object.maxMemoCharacters.toString());\n if ((0, helpers_1.isSet)(object.txSigLimit))\n obj.txSigLimit = BigInt(object.txSigLimit.toString());\n if ((0, helpers_1.isSet)(object.txSizeCostPerByte))\n obj.txSizeCostPerByte = BigInt(object.txSizeCostPerByte.toString());\n if ((0, helpers_1.isSet)(object.sigVerifyCostEd25519))\n obj.sigVerifyCostEd25519 = BigInt(object.sigVerifyCostEd25519.toString());\n if ((0, helpers_1.isSet)(object.sigVerifyCostSecp256k1))\n obj.sigVerifyCostSecp256k1 = BigInt(object.sigVerifyCostSecp256k1.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.maxMemoCharacters !== undefined &&\n (obj.maxMemoCharacters = (message.maxMemoCharacters || BigInt(0)).toString());\n message.txSigLimit !== undefined && (obj.txSigLimit = (message.txSigLimit || BigInt(0)).toString());\n message.txSizeCostPerByte !== undefined &&\n (obj.txSizeCostPerByte = (message.txSizeCostPerByte || BigInt(0)).toString());\n message.sigVerifyCostEd25519 !== undefined &&\n (obj.sigVerifyCostEd25519 = (message.sigVerifyCostEd25519 || BigInt(0)).toString());\n message.sigVerifyCostSecp256k1 !== undefined &&\n (obj.sigVerifyCostSecp256k1 = (message.sigVerifyCostSecp256k1 || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseParams();\n if (object.maxMemoCharacters !== undefined && object.maxMemoCharacters !== null) {\n message.maxMemoCharacters = BigInt(object.maxMemoCharacters.toString());\n }\n if (object.txSigLimit !== undefined && object.txSigLimit !== null) {\n message.txSigLimit = BigInt(object.txSigLimit.toString());\n }\n if (object.txSizeCostPerByte !== undefined && object.txSizeCostPerByte !== null) {\n message.txSizeCostPerByte = BigInt(object.txSizeCostPerByte.toString());\n }\n if (object.sigVerifyCostEd25519 !== undefined && object.sigVerifyCostEd25519 !== null) {\n message.sigVerifyCostEd25519 = BigInt(object.sigVerifyCostEd25519.toString());\n }\n if (object.sigVerifyCostSecp256k1 !== undefined && object.sigVerifyCostSecp256k1 !== null) {\n message.sigVerifyCostSecp256k1 = BigInt(object.sigVerifyCostSecp256k1.toString());\n }\n return message;\n },\n};\n//# sourceMappingURL=auth.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryAccountInfoResponse = exports.QueryAccountInfoRequest = exports.QueryAccountAddressByIDResponse = exports.QueryAccountAddressByIDRequest = exports.AddressStringToBytesResponse = exports.AddressStringToBytesRequest = exports.AddressBytesToStringResponse = exports.AddressBytesToStringRequest = exports.Bech32PrefixResponse = exports.Bech32PrefixRequest = exports.QueryModuleAccountByNameResponse = exports.QueryModuleAccountByNameRequest = exports.QueryModuleAccountsResponse = exports.QueryModuleAccountsRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryAccountResponse = exports.QueryAccountRequest = exports.QueryAccountsResponse = exports.QueryAccountsRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst pagination_1 = require(\"../../base/query/v1beta1/pagination\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst auth_1 = require(\"./auth\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.auth.v1beta1\";\nfunction createBaseQueryAccountsRequest() {\n return {\n pagination: undefined,\n };\n}\nexports.QueryAccountsRequest = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryAccountsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAccountsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAccountsRequest();\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAccountsRequest();\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryAccountsResponse() {\n return {\n accounts: [],\n pagination: undefined,\n };\n}\nexports.QueryAccountsResponse = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryAccountsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.accounts) {\n any_1.Any.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAccountsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.accounts.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAccountsResponse();\n if (Array.isArray(object?.accounts))\n obj.accounts = object.accounts.map((e) => any_1.Any.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.accounts) {\n obj.accounts = message.accounts.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.accounts = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAccountsResponse();\n message.accounts = object.accounts?.map((e) => any_1.Any.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryAccountRequest() {\n return {\n address: \"\",\n };\n}\nexports.QueryAccountRequest = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryAccountRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAccountRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAccountRequest();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAccountRequest();\n message.address = object.address ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryAccountResponse() {\n return {\n account: undefined,\n };\n}\nexports.QueryAccountResponse = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryAccountResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.account !== undefined) {\n any_1.Any.encode(message.account, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAccountResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.account = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAccountResponse();\n if ((0, helpers_1.isSet)(object.account))\n obj.account = any_1.Any.fromJSON(object.account);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.account !== undefined &&\n (obj.account = message.account ? any_1.Any.toJSON(message.account) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAccountResponse();\n if (object.account !== undefined && object.account !== null) {\n message.account = any_1.Any.fromPartial(object.account);\n }\n return message;\n },\n};\nfunction createBaseQueryParamsRequest() {\n return {};\n}\nexports.QueryParamsRequest = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryParamsRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryParamsRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryParamsRequest();\n return message;\n },\n};\nfunction createBaseQueryParamsResponse() {\n return {\n params: auth_1.Params.fromPartial({}),\n };\n}\nexports.QueryParamsResponse = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryParamsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.params !== undefined) {\n auth_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = auth_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryParamsResponse();\n if ((0, helpers_1.isSet)(object.params))\n obj.params = auth_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? auth_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryParamsResponse();\n if (object.params !== undefined && object.params !== null) {\n message.params = auth_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nfunction createBaseQueryModuleAccountsRequest() {\n return {};\n}\nexports.QueryModuleAccountsRequest = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryModuleAccountsRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryModuleAccountsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryModuleAccountsRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryModuleAccountsRequest();\n return message;\n },\n};\nfunction createBaseQueryModuleAccountsResponse() {\n return {\n accounts: [],\n };\n}\nexports.QueryModuleAccountsResponse = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryModuleAccountsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.accounts) {\n any_1.Any.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryModuleAccountsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.accounts.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryModuleAccountsResponse();\n if (Array.isArray(object?.accounts))\n obj.accounts = object.accounts.map((e) => any_1.Any.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.accounts) {\n obj.accounts = message.accounts.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.accounts = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryModuleAccountsResponse();\n message.accounts = object.accounts?.map((e) => any_1.Any.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseQueryModuleAccountByNameRequest() {\n return {\n name: \"\",\n };\n}\nexports.QueryModuleAccountByNameRequest = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryModuleAccountByNameRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.name !== \"\") {\n writer.uint32(10).string(message.name);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryModuleAccountByNameRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryModuleAccountByNameRequest();\n if ((0, helpers_1.isSet)(object.name))\n obj.name = String(object.name);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.name !== undefined && (obj.name = message.name);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryModuleAccountByNameRequest();\n message.name = object.name ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryModuleAccountByNameResponse() {\n return {\n account: undefined,\n };\n}\nexports.QueryModuleAccountByNameResponse = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryModuleAccountByNameResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.account !== undefined) {\n any_1.Any.encode(message.account, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryModuleAccountByNameResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.account = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryModuleAccountByNameResponse();\n if ((0, helpers_1.isSet)(object.account))\n obj.account = any_1.Any.fromJSON(object.account);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.account !== undefined &&\n (obj.account = message.account ? any_1.Any.toJSON(message.account) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryModuleAccountByNameResponse();\n if (object.account !== undefined && object.account !== null) {\n message.account = any_1.Any.fromPartial(object.account);\n }\n return message;\n },\n};\nfunction createBaseBech32PrefixRequest() {\n return {};\n}\nexports.Bech32PrefixRequest = {\n typeUrl: \"/cosmos.auth.v1beta1.Bech32PrefixRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBech32PrefixRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseBech32PrefixRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseBech32PrefixRequest();\n return message;\n },\n};\nfunction createBaseBech32PrefixResponse() {\n return {\n bech32Prefix: \"\",\n };\n}\nexports.Bech32PrefixResponse = {\n typeUrl: \"/cosmos.auth.v1beta1.Bech32PrefixResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.bech32Prefix !== \"\") {\n writer.uint32(10).string(message.bech32Prefix);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBech32PrefixResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bech32Prefix = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBech32PrefixResponse();\n if ((0, helpers_1.isSet)(object.bech32Prefix))\n obj.bech32Prefix = String(object.bech32Prefix);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.bech32Prefix !== undefined && (obj.bech32Prefix = message.bech32Prefix);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBech32PrefixResponse();\n message.bech32Prefix = object.bech32Prefix ?? \"\";\n return message;\n },\n};\nfunction createBaseAddressBytesToStringRequest() {\n return {\n addressBytes: new Uint8Array(),\n };\n}\nexports.AddressBytesToStringRequest = {\n typeUrl: \"/cosmos.auth.v1beta1.AddressBytesToStringRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.addressBytes.length !== 0) {\n writer.uint32(10).bytes(message.addressBytes);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAddressBytesToStringRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.addressBytes = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseAddressBytesToStringRequest();\n if ((0, helpers_1.isSet)(object.addressBytes))\n obj.addressBytes = (0, helpers_1.bytesFromBase64)(object.addressBytes);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.addressBytes !== undefined &&\n (obj.addressBytes = (0, helpers_1.base64FromBytes)(message.addressBytes !== undefined ? message.addressBytes : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseAddressBytesToStringRequest();\n message.addressBytes = object.addressBytes ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseAddressBytesToStringResponse() {\n return {\n addressString: \"\",\n };\n}\nexports.AddressBytesToStringResponse = {\n typeUrl: \"/cosmos.auth.v1beta1.AddressBytesToStringResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.addressString !== \"\") {\n writer.uint32(10).string(message.addressString);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAddressBytesToStringResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.addressString = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseAddressBytesToStringResponse();\n if ((0, helpers_1.isSet)(object.addressString))\n obj.addressString = String(object.addressString);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.addressString !== undefined && (obj.addressString = message.addressString);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseAddressBytesToStringResponse();\n message.addressString = object.addressString ?? \"\";\n return message;\n },\n};\nfunction createBaseAddressStringToBytesRequest() {\n return {\n addressString: \"\",\n };\n}\nexports.AddressStringToBytesRequest = {\n typeUrl: \"/cosmos.auth.v1beta1.AddressStringToBytesRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.addressString !== \"\") {\n writer.uint32(10).string(message.addressString);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAddressStringToBytesRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.addressString = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseAddressStringToBytesRequest();\n if ((0, helpers_1.isSet)(object.addressString))\n obj.addressString = String(object.addressString);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.addressString !== undefined && (obj.addressString = message.addressString);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseAddressStringToBytesRequest();\n message.addressString = object.addressString ?? \"\";\n return message;\n },\n};\nfunction createBaseAddressStringToBytesResponse() {\n return {\n addressBytes: new Uint8Array(),\n };\n}\nexports.AddressStringToBytesResponse = {\n typeUrl: \"/cosmos.auth.v1beta1.AddressStringToBytesResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.addressBytes.length !== 0) {\n writer.uint32(10).bytes(message.addressBytes);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAddressStringToBytesResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.addressBytes = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseAddressStringToBytesResponse();\n if ((0, helpers_1.isSet)(object.addressBytes))\n obj.addressBytes = (0, helpers_1.bytesFromBase64)(object.addressBytes);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.addressBytes !== undefined &&\n (obj.addressBytes = (0, helpers_1.base64FromBytes)(message.addressBytes !== undefined ? message.addressBytes : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseAddressStringToBytesResponse();\n message.addressBytes = object.addressBytes ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseQueryAccountAddressByIDRequest() {\n return {\n id: BigInt(0),\n accountId: BigInt(0),\n };\n}\nexports.QueryAccountAddressByIDRequest = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryAccountAddressByIDRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.id !== BigInt(0)) {\n writer.uint32(8).int64(message.id);\n }\n if (message.accountId !== BigInt(0)) {\n writer.uint32(16).uint64(message.accountId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAccountAddressByIDRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.int64();\n break;\n case 2:\n message.accountId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAccountAddressByIDRequest();\n if ((0, helpers_1.isSet)(object.id))\n obj.id = BigInt(object.id.toString());\n if ((0, helpers_1.isSet)(object.accountId))\n obj.accountId = BigInt(object.accountId.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.id !== undefined && (obj.id = (message.id || BigInt(0)).toString());\n message.accountId !== undefined && (obj.accountId = (message.accountId || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAccountAddressByIDRequest();\n if (object.id !== undefined && object.id !== null) {\n message.id = BigInt(object.id.toString());\n }\n if (object.accountId !== undefined && object.accountId !== null) {\n message.accountId = BigInt(object.accountId.toString());\n }\n return message;\n },\n};\nfunction createBaseQueryAccountAddressByIDResponse() {\n return {\n accountAddress: \"\",\n };\n}\nexports.QueryAccountAddressByIDResponse = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryAccountAddressByIDResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.accountAddress !== \"\") {\n writer.uint32(10).string(message.accountAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAccountAddressByIDResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.accountAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAccountAddressByIDResponse();\n if ((0, helpers_1.isSet)(object.accountAddress))\n obj.accountAddress = String(object.accountAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.accountAddress !== undefined && (obj.accountAddress = message.accountAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAccountAddressByIDResponse();\n message.accountAddress = object.accountAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryAccountInfoRequest() {\n return {\n address: \"\",\n };\n}\nexports.QueryAccountInfoRequest = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryAccountInfoRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAccountInfoRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAccountInfoRequest();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAccountInfoRequest();\n message.address = object.address ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryAccountInfoResponse() {\n return {\n info: undefined,\n };\n}\nexports.QueryAccountInfoResponse = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryAccountInfoResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.info !== undefined) {\n auth_1.BaseAccount.encode(message.info, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAccountInfoResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.info = auth_1.BaseAccount.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAccountInfoResponse();\n if ((0, helpers_1.isSet)(object.info))\n obj.info = auth_1.BaseAccount.fromJSON(object.info);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.info !== undefined && (obj.info = message.info ? auth_1.BaseAccount.toJSON(message.info) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAccountInfoResponse();\n if (object.info !== undefined && object.info !== null) {\n message.info = auth_1.BaseAccount.fromPartial(object.info);\n }\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Accounts = this.Accounts.bind(this);\n this.Account = this.Account.bind(this);\n this.AccountAddressByID = this.AccountAddressByID.bind(this);\n this.Params = this.Params.bind(this);\n this.ModuleAccounts = this.ModuleAccounts.bind(this);\n this.ModuleAccountByName = this.ModuleAccountByName.bind(this);\n this.Bech32Prefix = this.Bech32Prefix.bind(this);\n this.AddressBytesToString = this.AddressBytesToString.bind(this);\n this.AddressStringToBytes = this.AddressStringToBytes.bind(this);\n this.AccountInfo = this.AccountInfo.bind(this);\n }\n Accounts(request = {\n pagination: pagination_1.PageRequest.fromPartial({}),\n }) {\n const data = exports.QueryAccountsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"Accounts\", data);\n return promise.then((data) => exports.QueryAccountsResponse.decode(new binary_1.BinaryReader(data)));\n }\n Account(request) {\n const data = exports.QueryAccountRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"Account\", data);\n return promise.then((data) => exports.QueryAccountResponse.decode(new binary_1.BinaryReader(data)));\n }\n AccountAddressByID(request) {\n const data = exports.QueryAccountAddressByIDRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"AccountAddressByID\", data);\n return promise.then((data) => exports.QueryAccountAddressByIDResponse.decode(new binary_1.BinaryReader(data)));\n }\n Params(request = {}) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n ModuleAccounts(request = {}) {\n const data = exports.QueryModuleAccountsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"ModuleAccounts\", data);\n return promise.then((data) => exports.QueryModuleAccountsResponse.decode(new binary_1.BinaryReader(data)));\n }\n ModuleAccountByName(request) {\n const data = exports.QueryModuleAccountByNameRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"ModuleAccountByName\", data);\n return promise.then((data) => exports.QueryModuleAccountByNameResponse.decode(new binary_1.BinaryReader(data)));\n }\n Bech32Prefix(request = {}) {\n const data = exports.Bech32PrefixRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"Bech32Prefix\", data);\n return promise.then((data) => exports.Bech32PrefixResponse.decode(new binary_1.BinaryReader(data)));\n }\n AddressBytesToString(request) {\n const data = exports.AddressBytesToStringRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"AddressBytesToString\", data);\n return promise.then((data) => exports.AddressBytesToStringResponse.decode(new binary_1.BinaryReader(data)));\n }\n AddressStringToBytes(request) {\n const data = exports.AddressStringToBytesRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"AddressStringToBytes\", data);\n return promise.then((data) => exports.AddressStringToBytesResponse.decode(new binary_1.BinaryReader(data)));\n }\n AccountInfo(request) {\n const data = exports.QueryAccountInfoRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"AccountInfo\", data);\n return promise.then((data) => exports.QueryAccountInfoResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GrantQueueItem = exports.GrantAuthorization = exports.Grant = exports.GenericAuthorization = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.authz.v1beta1\";\nfunction createBaseGenericAuthorization() {\n return {\n msg: \"\",\n };\n}\nexports.GenericAuthorization = {\n typeUrl: \"/cosmos.authz.v1beta1.GenericAuthorization\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.msg !== \"\") {\n writer.uint32(10).string(message.msg);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGenericAuthorization();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.msg = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGenericAuthorization();\n if ((0, helpers_1.isSet)(object.msg))\n obj.msg = String(object.msg);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.msg !== undefined && (obj.msg = message.msg);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGenericAuthorization();\n message.msg = object.msg ?? \"\";\n return message;\n },\n};\nfunction createBaseGrant() {\n return {\n authorization: undefined,\n expiration: undefined,\n };\n}\nexports.Grant = {\n typeUrl: \"/cosmos.authz.v1beta1.Grant\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.authorization !== undefined) {\n any_1.Any.encode(message.authorization, writer.uint32(10).fork()).ldelim();\n }\n if (message.expiration !== undefined) {\n timestamp_1.Timestamp.encode(message.expiration, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGrant();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.authorization = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.expiration = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGrant();\n if ((0, helpers_1.isSet)(object.authorization))\n obj.authorization = any_1.Any.fromJSON(object.authorization);\n if ((0, helpers_1.isSet)(object.expiration))\n obj.expiration = (0, helpers_1.fromJsonTimestamp)(object.expiration);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.authorization !== undefined &&\n (obj.authorization = message.authorization ? any_1.Any.toJSON(message.authorization) : undefined);\n message.expiration !== undefined && (obj.expiration = (0, helpers_1.fromTimestamp)(message.expiration).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGrant();\n if (object.authorization !== undefined && object.authorization !== null) {\n message.authorization = any_1.Any.fromPartial(object.authorization);\n }\n if (object.expiration !== undefined && object.expiration !== null) {\n message.expiration = timestamp_1.Timestamp.fromPartial(object.expiration);\n }\n return message;\n },\n};\nfunction createBaseGrantAuthorization() {\n return {\n granter: \"\",\n grantee: \"\",\n authorization: undefined,\n expiration: undefined,\n };\n}\nexports.GrantAuthorization = {\n typeUrl: \"/cosmos.authz.v1beta1.GrantAuthorization\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.authorization !== undefined) {\n any_1.Any.encode(message.authorization, writer.uint32(26).fork()).ldelim();\n }\n if (message.expiration !== undefined) {\n timestamp_1.Timestamp.encode(message.expiration, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGrantAuthorization();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.authorization = any_1.Any.decode(reader, reader.uint32());\n break;\n case 4:\n message.expiration = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGrantAuthorization();\n if ((0, helpers_1.isSet)(object.granter))\n obj.granter = String(object.granter);\n if ((0, helpers_1.isSet)(object.grantee))\n obj.grantee = String(object.grantee);\n if ((0, helpers_1.isSet)(object.authorization))\n obj.authorization = any_1.Any.fromJSON(object.authorization);\n if ((0, helpers_1.isSet)(object.expiration))\n obj.expiration = (0, helpers_1.fromJsonTimestamp)(object.expiration);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.authorization !== undefined &&\n (obj.authorization = message.authorization ? any_1.Any.toJSON(message.authorization) : undefined);\n message.expiration !== undefined && (obj.expiration = (0, helpers_1.fromTimestamp)(message.expiration).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGrantAuthorization();\n message.granter = object.granter ?? \"\";\n message.grantee = object.grantee ?? \"\";\n if (object.authorization !== undefined && object.authorization !== null) {\n message.authorization = any_1.Any.fromPartial(object.authorization);\n }\n if (object.expiration !== undefined && object.expiration !== null) {\n message.expiration = timestamp_1.Timestamp.fromPartial(object.expiration);\n }\n return message;\n },\n};\nfunction createBaseGrantQueueItem() {\n return {\n msgTypeUrls: [],\n };\n}\nexports.GrantQueueItem = {\n typeUrl: \"/cosmos.authz.v1beta1.GrantQueueItem\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.msgTypeUrls) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGrantQueueItem();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.msgTypeUrls.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGrantQueueItem();\n if (Array.isArray(object?.msgTypeUrls))\n obj.msgTypeUrls = object.msgTypeUrls.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.msgTypeUrls) {\n obj.msgTypeUrls = message.msgTypeUrls.map((e) => e);\n }\n else {\n obj.msgTypeUrls = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGrantQueueItem();\n message.msgTypeUrls = object.msgTypeUrls?.map((e) => e) || [];\n return message;\n },\n};\n//# sourceMappingURL=authz.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryGranteeGrantsResponse = exports.QueryGranteeGrantsRequest = exports.QueryGranterGrantsResponse = exports.QueryGranterGrantsRequest = exports.QueryGrantsResponse = exports.QueryGrantsRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst pagination_1 = require(\"../../base/query/v1beta1/pagination\");\nconst authz_1 = require(\"./authz\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.authz.v1beta1\";\nfunction createBaseQueryGrantsRequest() {\n return {\n granter: \"\",\n grantee: \"\",\n msgTypeUrl: \"\",\n pagination: undefined,\n };\n}\nexports.QueryGrantsRequest = {\n typeUrl: \"/cosmos.authz.v1beta1.QueryGrantsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.msgTypeUrl !== \"\") {\n writer.uint32(26).string(message.msgTypeUrl);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGrantsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.msgTypeUrl = reader.string();\n break;\n case 4:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryGrantsRequest();\n if ((0, helpers_1.isSet)(object.granter))\n obj.granter = String(object.granter);\n if ((0, helpers_1.isSet)(object.grantee))\n obj.grantee = String(object.grantee);\n if ((0, helpers_1.isSet)(object.msgTypeUrl))\n obj.msgTypeUrl = String(object.msgTypeUrl);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.msgTypeUrl !== undefined && (obj.msgTypeUrl = message.msgTypeUrl);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryGrantsRequest();\n message.granter = object.granter ?? \"\";\n message.grantee = object.grantee ?? \"\";\n message.msgTypeUrl = object.msgTypeUrl ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryGrantsResponse() {\n return {\n grants: [],\n pagination: undefined,\n };\n}\nexports.QueryGrantsResponse = {\n typeUrl: \"/cosmos.authz.v1beta1.QueryGrantsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.grants) {\n authz_1.Grant.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGrantsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.grants.push(authz_1.Grant.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryGrantsResponse();\n if (Array.isArray(object?.grants))\n obj.grants = object.grants.map((e) => authz_1.Grant.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.grants) {\n obj.grants = message.grants.map((e) => (e ? authz_1.Grant.toJSON(e) : undefined));\n }\n else {\n obj.grants = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryGrantsResponse();\n message.grants = object.grants?.map((e) => authz_1.Grant.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryGranterGrantsRequest() {\n return {\n granter: \"\",\n pagination: undefined,\n };\n}\nexports.QueryGranterGrantsRequest = {\n typeUrl: \"/cosmos.authz.v1beta1.QueryGranterGrantsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGranterGrantsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryGranterGrantsRequest();\n if ((0, helpers_1.isSet)(object.granter))\n obj.granter = String(object.granter);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryGranterGrantsRequest();\n message.granter = object.granter ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryGranterGrantsResponse() {\n return {\n grants: [],\n pagination: undefined,\n };\n}\nexports.QueryGranterGrantsResponse = {\n typeUrl: \"/cosmos.authz.v1beta1.QueryGranterGrantsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.grants) {\n authz_1.GrantAuthorization.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGranterGrantsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.grants.push(authz_1.GrantAuthorization.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryGranterGrantsResponse();\n if (Array.isArray(object?.grants))\n obj.grants = object.grants.map((e) => authz_1.GrantAuthorization.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.grants) {\n obj.grants = message.grants.map((e) => (e ? authz_1.GrantAuthorization.toJSON(e) : undefined));\n }\n else {\n obj.grants = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryGranterGrantsResponse();\n message.grants = object.grants?.map((e) => authz_1.GrantAuthorization.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryGranteeGrantsRequest() {\n return {\n grantee: \"\",\n pagination: undefined,\n };\n}\nexports.QueryGranteeGrantsRequest = {\n typeUrl: \"/cosmos.authz.v1beta1.QueryGranteeGrantsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.grantee !== \"\") {\n writer.uint32(10).string(message.grantee);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGranteeGrantsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.grantee = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryGranteeGrantsRequest();\n if ((0, helpers_1.isSet)(object.grantee))\n obj.grantee = String(object.grantee);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryGranteeGrantsRequest();\n message.grantee = object.grantee ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryGranteeGrantsResponse() {\n return {\n grants: [],\n pagination: undefined,\n };\n}\nexports.QueryGranteeGrantsResponse = {\n typeUrl: \"/cosmos.authz.v1beta1.QueryGranteeGrantsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.grants) {\n authz_1.GrantAuthorization.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGranteeGrantsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.grants.push(authz_1.GrantAuthorization.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryGranteeGrantsResponse();\n if (Array.isArray(object?.grants))\n obj.grants = object.grants.map((e) => authz_1.GrantAuthorization.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.grants) {\n obj.grants = message.grants.map((e) => (e ? authz_1.GrantAuthorization.toJSON(e) : undefined));\n }\n else {\n obj.grants = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryGranteeGrantsResponse();\n message.grants = object.grants?.map((e) => authz_1.GrantAuthorization.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Grants = this.Grants.bind(this);\n this.GranterGrants = this.GranterGrants.bind(this);\n this.GranteeGrants = this.GranteeGrants.bind(this);\n }\n Grants(request) {\n const data = exports.QueryGrantsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.authz.v1beta1.Query\", \"Grants\", data);\n return promise.then((data) => exports.QueryGrantsResponse.decode(new binary_1.BinaryReader(data)));\n }\n GranterGrants(request) {\n const data = exports.QueryGranterGrantsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.authz.v1beta1.Query\", \"GranterGrants\", data);\n return promise.then((data) => exports.QueryGranterGrantsResponse.decode(new binary_1.BinaryReader(data)));\n }\n GranteeGrants(request) {\n const data = exports.QueryGranteeGrantsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.authz.v1beta1.Query\", \"GranteeGrants\", data);\n return promise.then((data) => exports.QueryGranteeGrantsResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgRevokeResponse = exports.MsgRevoke = exports.MsgGrantResponse = exports.MsgExec = exports.MsgExecResponse = exports.MsgGrant = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst authz_1 = require(\"./authz\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.authz.v1beta1\";\nfunction createBaseMsgGrant() {\n return {\n granter: \"\",\n grantee: \"\",\n grant: authz_1.Grant.fromPartial({}),\n };\n}\nexports.MsgGrant = {\n typeUrl: \"/cosmos.authz.v1beta1.MsgGrant\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.grant !== undefined) {\n authz_1.Grant.encode(message.grant, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGrant();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.grant = authz_1.Grant.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgGrant();\n if ((0, helpers_1.isSet)(object.granter))\n obj.granter = String(object.granter);\n if ((0, helpers_1.isSet)(object.grantee))\n obj.grantee = String(object.grantee);\n if ((0, helpers_1.isSet)(object.grant))\n obj.grant = authz_1.Grant.fromJSON(object.grant);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.grant !== undefined && (obj.grant = message.grant ? authz_1.Grant.toJSON(message.grant) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgGrant();\n message.granter = object.granter ?? \"\";\n message.grantee = object.grantee ?? \"\";\n if (object.grant !== undefined && object.grant !== null) {\n message.grant = authz_1.Grant.fromPartial(object.grant);\n }\n return message;\n },\n};\nfunction createBaseMsgExecResponse() {\n return {\n results: [],\n };\n}\nexports.MsgExecResponse = {\n typeUrl: \"/cosmos.authz.v1beta1.MsgExecResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.results) {\n writer.uint32(10).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgExecResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.results.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgExecResponse();\n if (Array.isArray(object?.results))\n obj.results = object.results.map((e) => (0, helpers_1.bytesFromBase64)(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.results) {\n obj.results = message.results.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.results = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgExecResponse();\n message.results = object.results?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseMsgExec() {\n return {\n grantee: \"\",\n msgs: [],\n };\n}\nexports.MsgExec = {\n typeUrl: \"/cosmos.authz.v1beta1.MsgExec\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.grantee !== \"\") {\n writer.uint32(10).string(message.grantee);\n }\n for (const v of message.msgs) {\n any_1.Any.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgExec();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.grantee = reader.string();\n break;\n case 2:\n message.msgs.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgExec();\n if ((0, helpers_1.isSet)(object.grantee))\n obj.grantee = String(object.grantee);\n if (Array.isArray(object?.msgs))\n obj.msgs = object.msgs.map((e) => any_1.Any.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.grantee !== undefined && (obj.grantee = message.grantee);\n if (message.msgs) {\n obj.msgs = message.msgs.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.msgs = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgExec();\n message.grantee = object.grantee ?? \"\";\n message.msgs = object.msgs?.map((e) => any_1.Any.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgGrantResponse() {\n return {};\n}\nexports.MsgGrantResponse = {\n typeUrl: \"/cosmos.authz.v1beta1.MsgGrantResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGrantResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgGrantResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgGrantResponse();\n return message;\n },\n};\nfunction createBaseMsgRevoke() {\n return {\n granter: \"\",\n grantee: \"\",\n msgTypeUrl: \"\",\n };\n}\nexports.MsgRevoke = {\n typeUrl: \"/cosmos.authz.v1beta1.MsgRevoke\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.msgTypeUrl !== \"\") {\n writer.uint32(26).string(message.msgTypeUrl);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgRevoke();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.msgTypeUrl = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgRevoke();\n if ((0, helpers_1.isSet)(object.granter))\n obj.granter = String(object.granter);\n if ((0, helpers_1.isSet)(object.grantee))\n obj.grantee = String(object.grantee);\n if ((0, helpers_1.isSet)(object.msgTypeUrl))\n obj.msgTypeUrl = String(object.msgTypeUrl);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.msgTypeUrl !== undefined && (obj.msgTypeUrl = message.msgTypeUrl);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgRevoke();\n message.granter = object.granter ?? \"\";\n message.grantee = object.grantee ?? \"\";\n message.msgTypeUrl = object.msgTypeUrl ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgRevokeResponse() {\n return {};\n}\nexports.MsgRevokeResponse = {\n typeUrl: \"/cosmos.authz.v1beta1.MsgRevokeResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgRevokeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgRevokeResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgRevokeResponse();\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Grant = this.Grant.bind(this);\n this.Exec = this.Exec.bind(this);\n this.Revoke = this.Revoke.bind(this);\n }\n Grant(request) {\n const data = exports.MsgGrant.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.authz.v1beta1.Msg\", \"Grant\", data);\n return promise.then((data) => exports.MsgGrantResponse.decode(new binary_1.BinaryReader(data)));\n }\n Exec(request) {\n const data = exports.MsgExec.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.authz.v1beta1.Msg\", \"Exec\", data);\n return promise.then((data) => exports.MsgExecResponse.decode(new binary_1.BinaryReader(data)));\n }\n Revoke(request) {\n const data = exports.MsgRevoke.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.authz.v1beta1.Msg\", \"Revoke\", data);\n return promise.then((data) => exports.MsgRevokeResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Metadata = exports.DenomUnit = exports.Supply = exports.Output = exports.Input = exports.SendEnabled = exports.Params = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.bank.v1beta1\";\nfunction createBaseParams() {\n return {\n sendEnabled: [],\n defaultSendEnabled: false,\n };\n}\nexports.Params = {\n typeUrl: \"/cosmos.bank.v1beta1.Params\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.sendEnabled) {\n exports.SendEnabled.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.defaultSendEnabled === true) {\n writer.uint32(16).bool(message.defaultSendEnabled);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sendEnabled.push(exports.SendEnabled.decode(reader, reader.uint32()));\n break;\n case 2:\n message.defaultSendEnabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseParams();\n if (Array.isArray(object?.sendEnabled))\n obj.sendEnabled = object.sendEnabled.map((e) => exports.SendEnabled.fromJSON(e));\n if ((0, helpers_1.isSet)(object.defaultSendEnabled))\n obj.defaultSendEnabled = Boolean(object.defaultSendEnabled);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.sendEnabled) {\n obj.sendEnabled = message.sendEnabled.map((e) => (e ? exports.SendEnabled.toJSON(e) : undefined));\n }\n else {\n obj.sendEnabled = [];\n }\n message.defaultSendEnabled !== undefined && (obj.defaultSendEnabled = message.defaultSendEnabled);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseParams();\n message.sendEnabled = object.sendEnabled?.map((e) => exports.SendEnabled.fromPartial(e)) || [];\n message.defaultSendEnabled = object.defaultSendEnabled ?? false;\n return message;\n },\n};\nfunction createBaseSendEnabled() {\n return {\n denom: \"\",\n enabled: false,\n };\n}\nexports.SendEnabled = {\n typeUrl: \"/cosmos.bank.v1beta1.SendEnabled\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.enabled === true) {\n writer.uint32(16).bool(message.enabled);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSendEnabled();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.enabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSendEnabled();\n if ((0, helpers_1.isSet)(object.denom))\n obj.denom = String(object.denom);\n if ((0, helpers_1.isSet)(object.enabled))\n obj.enabled = Boolean(object.enabled);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.enabled !== undefined && (obj.enabled = message.enabled);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSendEnabled();\n message.denom = object.denom ?? \"\";\n message.enabled = object.enabled ?? false;\n return message;\n },\n};\nfunction createBaseInput() {\n return {\n address: \"\",\n coins: [],\n };\n}\nexports.Input = {\n typeUrl: \"/cosmos.bank.v1beta1.Input\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n for (const v of message.coins) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseInput();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.coins.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseInput();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if (Array.isArray(object?.coins))\n obj.coins = object.coins.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n if (message.coins) {\n obj.coins = message.coins.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.coins = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseInput();\n message.address = object.address ?? \"\";\n message.coins = object.coins?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseOutput() {\n return {\n address: \"\",\n coins: [],\n };\n}\nexports.Output = {\n typeUrl: \"/cosmos.bank.v1beta1.Output\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n for (const v of message.coins) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOutput();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.coins.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseOutput();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if (Array.isArray(object?.coins))\n obj.coins = object.coins.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n if (message.coins) {\n obj.coins = message.coins.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.coins = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseOutput();\n message.address = object.address ?? \"\";\n message.coins = object.coins?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseSupply() {\n return {\n total: [],\n };\n}\nexports.Supply = {\n typeUrl: \"/cosmos.bank.v1beta1.Supply\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.total) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSupply();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSupply();\n if (Array.isArray(object?.total))\n obj.total = object.total.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.total) {\n obj.total = message.total.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.total = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSupply();\n message.total = object.total?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseDenomUnit() {\n return {\n denom: \"\",\n exponent: 0,\n aliases: [],\n };\n}\nexports.DenomUnit = {\n typeUrl: \"/cosmos.bank.v1beta1.DenomUnit\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.exponent !== 0) {\n writer.uint32(16).uint32(message.exponent);\n }\n for (const v of message.aliases) {\n writer.uint32(26).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDenomUnit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.exponent = reader.uint32();\n break;\n case 3:\n message.aliases.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDenomUnit();\n if ((0, helpers_1.isSet)(object.denom))\n obj.denom = String(object.denom);\n if ((0, helpers_1.isSet)(object.exponent))\n obj.exponent = Number(object.exponent);\n if (Array.isArray(object?.aliases))\n obj.aliases = object.aliases.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.exponent !== undefined && (obj.exponent = Math.round(message.exponent));\n if (message.aliases) {\n obj.aliases = message.aliases.map((e) => e);\n }\n else {\n obj.aliases = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDenomUnit();\n message.denom = object.denom ?? \"\";\n message.exponent = object.exponent ?? 0;\n message.aliases = object.aliases?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseMetadata() {\n return {\n description: \"\",\n denomUnits: [],\n base: \"\",\n display: \"\",\n name: \"\",\n symbol: \"\",\n uri: \"\",\n uriHash: \"\",\n };\n}\nexports.Metadata = {\n typeUrl: \"/cosmos.bank.v1beta1.Metadata\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.description !== \"\") {\n writer.uint32(10).string(message.description);\n }\n for (const v of message.denomUnits) {\n exports.DenomUnit.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.base !== \"\") {\n writer.uint32(26).string(message.base);\n }\n if (message.display !== \"\") {\n writer.uint32(34).string(message.display);\n }\n if (message.name !== \"\") {\n writer.uint32(42).string(message.name);\n }\n if (message.symbol !== \"\") {\n writer.uint32(50).string(message.symbol);\n }\n if (message.uri !== \"\") {\n writer.uint32(58).string(message.uri);\n }\n if (message.uriHash !== \"\") {\n writer.uint32(66).string(message.uriHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMetadata();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.description = reader.string();\n break;\n case 2:\n message.denomUnits.push(exports.DenomUnit.decode(reader, reader.uint32()));\n break;\n case 3:\n message.base = reader.string();\n break;\n case 4:\n message.display = reader.string();\n break;\n case 5:\n message.name = reader.string();\n break;\n case 6:\n message.symbol = reader.string();\n break;\n case 7:\n message.uri = reader.string();\n break;\n case 8:\n message.uriHash = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMetadata();\n if ((0, helpers_1.isSet)(object.description))\n obj.description = String(object.description);\n if (Array.isArray(object?.denomUnits))\n obj.denomUnits = object.denomUnits.map((e) => exports.DenomUnit.fromJSON(e));\n if ((0, helpers_1.isSet)(object.base))\n obj.base = String(object.base);\n if ((0, helpers_1.isSet)(object.display))\n obj.display = String(object.display);\n if ((0, helpers_1.isSet)(object.name))\n obj.name = String(object.name);\n if ((0, helpers_1.isSet)(object.symbol))\n obj.symbol = String(object.symbol);\n if ((0, helpers_1.isSet)(object.uri))\n obj.uri = String(object.uri);\n if ((0, helpers_1.isSet)(object.uriHash))\n obj.uriHash = String(object.uriHash);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.description !== undefined && (obj.description = message.description);\n if (message.denomUnits) {\n obj.denomUnits = message.denomUnits.map((e) => (e ? exports.DenomUnit.toJSON(e) : undefined));\n }\n else {\n obj.denomUnits = [];\n }\n message.base !== undefined && (obj.base = message.base);\n message.display !== undefined && (obj.display = message.display);\n message.name !== undefined && (obj.name = message.name);\n message.symbol !== undefined && (obj.symbol = message.symbol);\n message.uri !== undefined && (obj.uri = message.uri);\n message.uriHash !== undefined && (obj.uriHash = message.uriHash);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMetadata();\n message.description = object.description ?? \"\";\n message.denomUnits = object.denomUnits?.map((e) => exports.DenomUnit.fromPartial(e)) || [];\n message.base = object.base ?? \"\";\n message.display = object.display ?? \"\";\n message.name = object.name ?? \"\";\n message.symbol = object.symbol ?? \"\";\n message.uri = object.uri ?? \"\";\n message.uriHash = object.uriHash ?? \"\";\n return message;\n },\n};\n//# sourceMappingURL=bank.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QuerySendEnabledResponse = exports.QuerySendEnabledRequest = exports.QueryDenomOwnersResponse = exports.DenomOwner = exports.QueryDenomOwnersRequest = exports.QueryDenomMetadataResponse = exports.QueryDenomMetadataRequest = exports.QueryDenomsMetadataResponse = exports.QueryDenomsMetadataRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QuerySupplyOfResponse = exports.QuerySupplyOfRequest = exports.QueryTotalSupplyResponse = exports.QueryTotalSupplyRequest = exports.QuerySpendableBalanceByDenomResponse = exports.QuerySpendableBalanceByDenomRequest = exports.QuerySpendableBalancesResponse = exports.QuerySpendableBalancesRequest = exports.QueryAllBalancesResponse = exports.QueryAllBalancesRequest = exports.QueryBalanceResponse = exports.QueryBalanceRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst pagination_1 = require(\"../../base/query/v1beta1/pagination\");\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst bank_1 = require(\"./bank\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.bank.v1beta1\";\nfunction createBaseQueryBalanceRequest() {\n return {\n address: \"\",\n denom: \"\",\n };\n}\nexports.QueryBalanceRequest = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryBalanceRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.denom !== \"\") {\n writer.uint32(18).string(message.denom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryBalanceRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.denom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryBalanceRequest();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.denom))\n obj.denom = String(object.denom);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.denom !== undefined && (obj.denom = message.denom);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryBalanceRequest();\n message.address = object.address ?? \"\";\n message.denom = object.denom ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryBalanceResponse() {\n return {\n balance: undefined,\n };\n}\nexports.QueryBalanceResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryBalanceResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.balance !== undefined) {\n coin_1.Coin.encode(message.balance, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryBalanceResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.balance = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryBalanceResponse();\n if ((0, helpers_1.isSet)(object.balance))\n obj.balance = coin_1.Coin.fromJSON(object.balance);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.balance !== undefined &&\n (obj.balance = message.balance ? coin_1.Coin.toJSON(message.balance) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryBalanceResponse();\n if (object.balance !== undefined && object.balance !== null) {\n message.balance = coin_1.Coin.fromPartial(object.balance);\n }\n return message;\n },\n};\nfunction createBaseQueryAllBalancesRequest() {\n return {\n address: \"\",\n pagination: undefined,\n };\n}\nexports.QueryAllBalancesRequest = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryAllBalancesRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllBalancesRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAllBalancesRequest();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAllBalancesRequest();\n message.address = object.address ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryAllBalancesResponse() {\n return {\n balances: [],\n pagination: undefined,\n };\n}\nexports.QueryAllBalancesResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryAllBalancesResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.balances) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllBalancesResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.balances.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAllBalancesResponse();\n if (Array.isArray(object?.balances))\n obj.balances = object.balances.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.balances) {\n obj.balances = message.balances.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.balances = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAllBalancesResponse();\n message.balances = object.balances?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQuerySpendableBalancesRequest() {\n return {\n address: \"\",\n pagination: undefined,\n };\n}\nexports.QuerySpendableBalancesRequest = {\n typeUrl: \"/cosmos.bank.v1beta1.QuerySpendableBalancesRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySpendableBalancesRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySpendableBalancesRequest();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySpendableBalancesRequest();\n message.address = object.address ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQuerySpendableBalancesResponse() {\n return {\n balances: [],\n pagination: undefined,\n };\n}\nexports.QuerySpendableBalancesResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.QuerySpendableBalancesResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.balances) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySpendableBalancesResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.balances.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySpendableBalancesResponse();\n if (Array.isArray(object?.balances))\n obj.balances = object.balances.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.balances) {\n obj.balances = message.balances.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.balances = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySpendableBalancesResponse();\n message.balances = object.balances?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQuerySpendableBalanceByDenomRequest() {\n return {\n address: \"\",\n denom: \"\",\n };\n}\nexports.QuerySpendableBalanceByDenomRequest = {\n typeUrl: \"/cosmos.bank.v1beta1.QuerySpendableBalanceByDenomRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.denom !== \"\") {\n writer.uint32(18).string(message.denom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySpendableBalanceByDenomRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.denom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySpendableBalanceByDenomRequest();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.denom))\n obj.denom = String(object.denom);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.denom !== undefined && (obj.denom = message.denom);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySpendableBalanceByDenomRequest();\n message.address = object.address ?? \"\";\n message.denom = object.denom ?? \"\";\n return message;\n },\n};\nfunction createBaseQuerySpendableBalanceByDenomResponse() {\n return {\n balance: undefined,\n };\n}\nexports.QuerySpendableBalanceByDenomResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.QuerySpendableBalanceByDenomResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.balance !== undefined) {\n coin_1.Coin.encode(message.balance, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySpendableBalanceByDenomResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.balance = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySpendableBalanceByDenomResponse();\n if ((0, helpers_1.isSet)(object.balance))\n obj.balance = coin_1.Coin.fromJSON(object.balance);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.balance !== undefined &&\n (obj.balance = message.balance ? coin_1.Coin.toJSON(message.balance) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySpendableBalanceByDenomResponse();\n if (object.balance !== undefined && object.balance !== null) {\n message.balance = coin_1.Coin.fromPartial(object.balance);\n }\n return message;\n },\n};\nfunction createBaseQueryTotalSupplyRequest() {\n return {\n pagination: undefined,\n };\n}\nexports.QueryTotalSupplyRequest = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryTotalSupplyRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryTotalSupplyRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryTotalSupplyRequest();\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryTotalSupplyRequest();\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryTotalSupplyResponse() {\n return {\n supply: [],\n pagination: undefined,\n };\n}\nexports.QueryTotalSupplyResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryTotalSupplyResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.supply) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryTotalSupplyResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.supply.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryTotalSupplyResponse();\n if (Array.isArray(object?.supply))\n obj.supply = object.supply.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.supply) {\n obj.supply = message.supply.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.supply = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryTotalSupplyResponse();\n message.supply = object.supply?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQuerySupplyOfRequest() {\n return {\n denom: \"\",\n };\n}\nexports.QuerySupplyOfRequest = {\n typeUrl: \"/cosmos.bank.v1beta1.QuerySupplyOfRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySupplyOfRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySupplyOfRequest();\n if ((0, helpers_1.isSet)(object.denom))\n obj.denom = String(object.denom);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySupplyOfRequest();\n message.denom = object.denom ?? \"\";\n return message;\n },\n};\nfunction createBaseQuerySupplyOfResponse() {\n return {\n amount: coin_1.Coin.fromPartial({}),\n };\n}\nexports.QuerySupplyOfResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.QuerySupplyOfResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.amount !== undefined) {\n coin_1.Coin.encode(message.amount, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySupplyOfResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySupplyOfResponse();\n if ((0, helpers_1.isSet)(object.amount))\n obj.amount = coin_1.Coin.fromJSON(object.amount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySupplyOfResponse();\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = coin_1.Coin.fromPartial(object.amount);\n }\n return message;\n },\n};\nfunction createBaseQueryParamsRequest() {\n return {};\n}\nexports.QueryParamsRequest = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryParamsRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryParamsRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryParamsRequest();\n return message;\n },\n};\nfunction createBaseQueryParamsResponse() {\n return {\n params: bank_1.Params.fromPartial({}),\n };\n}\nexports.QueryParamsResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryParamsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.params !== undefined) {\n bank_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = bank_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryParamsResponse();\n if ((0, helpers_1.isSet)(object.params))\n obj.params = bank_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? bank_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryParamsResponse();\n if (object.params !== undefined && object.params !== null) {\n message.params = bank_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nfunction createBaseQueryDenomsMetadataRequest() {\n return {\n pagination: undefined,\n };\n}\nexports.QueryDenomsMetadataRequest = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryDenomsMetadataRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomsMetadataRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomsMetadataRequest();\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomsMetadataRequest();\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDenomsMetadataResponse() {\n return {\n metadatas: [],\n pagination: undefined,\n };\n}\nexports.QueryDenomsMetadataResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryDenomsMetadataResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.metadatas) {\n bank_1.Metadata.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomsMetadataResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.metadatas.push(bank_1.Metadata.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomsMetadataResponse();\n if (Array.isArray(object?.metadatas))\n obj.metadatas = object.metadatas.map((e) => bank_1.Metadata.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.metadatas) {\n obj.metadatas = message.metadatas.map((e) => (e ? bank_1.Metadata.toJSON(e) : undefined));\n }\n else {\n obj.metadatas = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomsMetadataResponse();\n message.metadatas = object.metadatas?.map((e) => bank_1.Metadata.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDenomMetadataRequest() {\n return {\n denom: \"\",\n };\n}\nexports.QueryDenomMetadataRequest = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryDenomMetadataRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomMetadataRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomMetadataRequest();\n if ((0, helpers_1.isSet)(object.denom))\n obj.denom = String(object.denom);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomMetadataRequest();\n message.denom = object.denom ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryDenomMetadataResponse() {\n return {\n metadata: bank_1.Metadata.fromPartial({}),\n };\n}\nexports.QueryDenomMetadataResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryDenomMetadataResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.metadata !== undefined) {\n bank_1.Metadata.encode(message.metadata, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomMetadataResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.metadata = bank_1.Metadata.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomMetadataResponse();\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = bank_1.Metadata.fromJSON(object.metadata);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.metadata !== undefined &&\n (obj.metadata = message.metadata ? bank_1.Metadata.toJSON(message.metadata) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomMetadataResponse();\n if (object.metadata !== undefined && object.metadata !== null) {\n message.metadata = bank_1.Metadata.fromPartial(object.metadata);\n }\n return message;\n },\n};\nfunction createBaseQueryDenomOwnersRequest() {\n return {\n denom: \"\",\n pagination: undefined,\n };\n}\nexports.QueryDenomOwnersRequest = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryDenomOwnersRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomOwnersRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomOwnersRequest();\n if ((0, helpers_1.isSet)(object.denom))\n obj.denom = String(object.denom);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomOwnersRequest();\n message.denom = object.denom ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseDenomOwner() {\n return {\n address: \"\",\n balance: coin_1.Coin.fromPartial({}),\n };\n}\nexports.DenomOwner = {\n typeUrl: \"/cosmos.bank.v1beta1.DenomOwner\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.balance !== undefined) {\n coin_1.Coin.encode(message.balance, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDenomOwner();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.balance = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDenomOwner();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.balance))\n obj.balance = coin_1.Coin.fromJSON(object.balance);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.balance !== undefined &&\n (obj.balance = message.balance ? coin_1.Coin.toJSON(message.balance) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDenomOwner();\n message.address = object.address ?? \"\";\n if (object.balance !== undefined && object.balance !== null) {\n message.balance = coin_1.Coin.fromPartial(object.balance);\n }\n return message;\n },\n};\nfunction createBaseQueryDenomOwnersResponse() {\n return {\n denomOwners: [],\n pagination: undefined,\n };\n}\nexports.QueryDenomOwnersResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryDenomOwnersResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.denomOwners) {\n exports.DenomOwner.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomOwnersResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denomOwners.push(exports.DenomOwner.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomOwnersResponse();\n if (Array.isArray(object?.denomOwners))\n obj.denomOwners = object.denomOwners.map((e) => exports.DenomOwner.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.denomOwners) {\n obj.denomOwners = message.denomOwners.map((e) => (e ? exports.DenomOwner.toJSON(e) : undefined));\n }\n else {\n obj.denomOwners = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomOwnersResponse();\n message.denomOwners = object.denomOwners?.map((e) => exports.DenomOwner.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQuerySendEnabledRequest() {\n return {\n denoms: [],\n pagination: undefined,\n };\n}\nexports.QuerySendEnabledRequest = {\n typeUrl: \"/cosmos.bank.v1beta1.QuerySendEnabledRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.denoms) {\n writer.uint32(10).string(v);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(794).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySendEnabledRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denoms.push(reader.string());\n break;\n case 99:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySendEnabledRequest();\n if (Array.isArray(object?.denoms))\n obj.denoms = object.denoms.map((e) => String(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.denoms) {\n obj.denoms = message.denoms.map((e) => e);\n }\n else {\n obj.denoms = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySendEnabledRequest();\n message.denoms = object.denoms?.map((e) => e) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQuerySendEnabledResponse() {\n return {\n sendEnabled: [],\n pagination: undefined,\n };\n}\nexports.QuerySendEnabledResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.QuerySendEnabledResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.sendEnabled) {\n bank_1.SendEnabled.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(794).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySendEnabledResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sendEnabled.push(bank_1.SendEnabled.decode(reader, reader.uint32()));\n break;\n case 99:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySendEnabledResponse();\n if (Array.isArray(object?.sendEnabled))\n obj.sendEnabled = object.sendEnabled.map((e) => bank_1.SendEnabled.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.sendEnabled) {\n obj.sendEnabled = message.sendEnabled.map((e) => (e ? bank_1.SendEnabled.toJSON(e) : undefined));\n }\n else {\n obj.sendEnabled = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySendEnabledResponse();\n message.sendEnabled = object.sendEnabled?.map((e) => bank_1.SendEnabled.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Balance = this.Balance.bind(this);\n this.AllBalances = this.AllBalances.bind(this);\n this.SpendableBalances = this.SpendableBalances.bind(this);\n this.SpendableBalanceByDenom = this.SpendableBalanceByDenom.bind(this);\n this.TotalSupply = this.TotalSupply.bind(this);\n this.SupplyOf = this.SupplyOf.bind(this);\n this.Params = this.Params.bind(this);\n this.DenomMetadata = this.DenomMetadata.bind(this);\n this.DenomsMetadata = this.DenomsMetadata.bind(this);\n this.DenomOwners = this.DenomOwners.bind(this);\n this.SendEnabled = this.SendEnabled.bind(this);\n }\n Balance(request) {\n const data = exports.QueryBalanceRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"Balance\", data);\n return promise.then((data) => exports.QueryBalanceResponse.decode(new binary_1.BinaryReader(data)));\n }\n AllBalances(request) {\n const data = exports.QueryAllBalancesRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"AllBalances\", data);\n return promise.then((data) => exports.QueryAllBalancesResponse.decode(new binary_1.BinaryReader(data)));\n }\n SpendableBalances(request) {\n const data = exports.QuerySpendableBalancesRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"SpendableBalances\", data);\n return promise.then((data) => exports.QuerySpendableBalancesResponse.decode(new binary_1.BinaryReader(data)));\n }\n SpendableBalanceByDenom(request) {\n const data = exports.QuerySpendableBalanceByDenomRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"SpendableBalanceByDenom\", data);\n return promise.then((data) => exports.QuerySpendableBalanceByDenomResponse.decode(new binary_1.BinaryReader(data)));\n }\n TotalSupply(request = {\n pagination: pagination_1.PageRequest.fromPartial({}),\n }) {\n const data = exports.QueryTotalSupplyRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"TotalSupply\", data);\n return promise.then((data) => exports.QueryTotalSupplyResponse.decode(new binary_1.BinaryReader(data)));\n }\n SupplyOf(request) {\n const data = exports.QuerySupplyOfRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"SupplyOf\", data);\n return promise.then((data) => exports.QuerySupplyOfResponse.decode(new binary_1.BinaryReader(data)));\n }\n Params(request = {}) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n DenomMetadata(request) {\n const data = exports.QueryDenomMetadataRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"DenomMetadata\", data);\n return promise.then((data) => exports.QueryDenomMetadataResponse.decode(new binary_1.BinaryReader(data)));\n }\n DenomsMetadata(request = {\n pagination: pagination_1.PageRequest.fromPartial({}),\n }) {\n const data = exports.QueryDenomsMetadataRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"DenomsMetadata\", data);\n return promise.then((data) => exports.QueryDenomsMetadataResponse.decode(new binary_1.BinaryReader(data)));\n }\n DenomOwners(request) {\n const data = exports.QueryDenomOwnersRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"DenomOwners\", data);\n return promise.then((data) => exports.QueryDenomOwnersResponse.decode(new binary_1.BinaryReader(data)));\n }\n SendEnabled(request) {\n const data = exports.QuerySendEnabledRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"SendEnabled\", data);\n return promise.then((data) => exports.QuerySendEnabledResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgSetSendEnabledResponse = exports.MsgSetSendEnabled = exports.MsgUpdateParamsResponse = exports.MsgUpdateParams = exports.MsgMultiSendResponse = exports.MsgMultiSend = exports.MsgSendResponse = exports.MsgSend = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst bank_1 = require(\"./bank\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.bank.v1beta1\";\nfunction createBaseMsgSend() {\n return {\n fromAddress: \"\",\n toAddress: \"\",\n amount: [],\n };\n}\nexports.MsgSend = {\n typeUrl: \"/cosmos.bank.v1beta1.MsgSend\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.fromAddress !== \"\") {\n writer.uint32(10).string(message.fromAddress);\n }\n if (message.toAddress !== \"\") {\n writer.uint32(18).string(message.toAddress);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSend();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.fromAddress = reader.string();\n break;\n case 2:\n message.toAddress = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgSend();\n if ((0, helpers_1.isSet)(object.fromAddress))\n obj.fromAddress = String(object.fromAddress);\n if ((0, helpers_1.isSet)(object.toAddress))\n obj.toAddress = String(object.toAddress);\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress);\n message.toAddress !== undefined && (obj.toAddress = message.toAddress);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgSend();\n message.fromAddress = object.fromAddress ?? \"\";\n message.toAddress = object.toAddress ?? \"\";\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgSendResponse() {\n return {};\n}\nexports.MsgSendResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.MsgSendResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSendResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgSendResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgSendResponse();\n return message;\n },\n};\nfunction createBaseMsgMultiSend() {\n return {\n inputs: [],\n outputs: [],\n };\n}\nexports.MsgMultiSend = {\n typeUrl: \"/cosmos.bank.v1beta1.MsgMultiSend\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.inputs) {\n bank_1.Input.encode(v, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.outputs) {\n bank_1.Output.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgMultiSend();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.inputs.push(bank_1.Input.decode(reader, reader.uint32()));\n break;\n case 2:\n message.outputs.push(bank_1.Output.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgMultiSend();\n if (Array.isArray(object?.inputs))\n obj.inputs = object.inputs.map((e) => bank_1.Input.fromJSON(e));\n if (Array.isArray(object?.outputs))\n obj.outputs = object.outputs.map((e) => bank_1.Output.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.inputs) {\n obj.inputs = message.inputs.map((e) => (e ? bank_1.Input.toJSON(e) : undefined));\n }\n else {\n obj.inputs = [];\n }\n if (message.outputs) {\n obj.outputs = message.outputs.map((e) => (e ? bank_1.Output.toJSON(e) : undefined));\n }\n else {\n obj.outputs = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgMultiSend();\n message.inputs = object.inputs?.map((e) => bank_1.Input.fromPartial(e)) || [];\n message.outputs = object.outputs?.map((e) => bank_1.Output.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgMultiSendResponse() {\n return {};\n}\nexports.MsgMultiSendResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.MsgMultiSendResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgMultiSendResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgMultiSendResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgMultiSendResponse();\n return message;\n },\n};\nfunction createBaseMsgUpdateParams() {\n return {\n authority: \"\",\n params: bank_1.Params.fromPartial({}),\n };\n}\nexports.MsgUpdateParams = {\n typeUrl: \"/cosmos.bank.v1beta1.MsgUpdateParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.authority !== \"\") {\n writer.uint32(10).string(message.authority);\n }\n if (message.params !== undefined) {\n bank_1.Params.encode(message.params, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.authority = reader.string();\n break;\n case 2:\n message.params = bank_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpdateParams();\n if ((0, helpers_1.isSet)(object.authority))\n obj.authority = String(object.authority);\n if ((0, helpers_1.isSet)(object.params))\n obj.params = bank_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.authority !== undefined && (obj.authority = message.authority);\n message.params !== undefined && (obj.params = message.params ? bank_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpdateParams();\n message.authority = object.authority ?? \"\";\n if (object.params !== undefined && object.params !== null) {\n message.params = bank_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nfunction createBaseMsgUpdateParamsResponse() {\n return {};\n}\nexports.MsgUpdateParamsResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.MsgUpdateParamsResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpdateParamsResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpdateParamsResponse();\n return message;\n },\n};\nfunction createBaseMsgSetSendEnabled() {\n return {\n authority: \"\",\n sendEnabled: [],\n useDefaultFor: [],\n };\n}\nexports.MsgSetSendEnabled = {\n typeUrl: \"/cosmos.bank.v1beta1.MsgSetSendEnabled\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.authority !== \"\") {\n writer.uint32(10).string(message.authority);\n }\n for (const v of message.sendEnabled) {\n bank_1.SendEnabled.encode(v, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.useDefaultFor) {\n writer.uint32(26).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSetSendEnabled();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.authority = reader.string();\n break;\n case 2:\n message.sendEnabled.push(bank_1.SendEnabled.decode(reader, reader.uint32()));\n break;\n case 3:\n message.useDefaultFor.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgSetSendEnabled();\n if ((0, helpers_1.isSet)(object.authority))\n obj.authority = String(object.authority);\n if (Array.isArray(object?.sendEnabled))\n obj.sendEnabled = object.sendEnabled.map((e) => bank_1.SendEnabled.fromJSON(e));\n if (Array.isArray(object?.useDefaultFor))\n obj.useDefaultFor = object.useDefaultFor.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.authority !== undefined && (obj.authority = message.authority);\n if (message.sendEnabled) {\n obj.sendEnabled = message.sendEnabled.map((e) => (e ? bank_1.SendEnabled.toJSON(e) : undefined));\n }\n else {\n obj.sendEnabled = [];\n }\n if (message.useDefaultFor) {\n obj.useDefaultFor = message.useDefaultFor.map((e) => e);\n }\n else {\n obj.useDefaultFor = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgSetSendEnabled();\n message.authority = object.authority ?? \"\";\n message.sendEnabled = object.sendEnabled?.map((e) => bank_1.SendEnabled.fromPartial(e)) || [];\n message.useDefaultFor = object.useDefaultFor?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseMsgSetSendEnabledResponse() {\n return {};\n}\nexports.MsgSetSendEnabledResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.MsgSetSendEnabledResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSetSendEnabledResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgSetSendEnabledResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgSetSendEnabledResponse();\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Send = this.Send.bind(this);\n this.MultiSend = this.MultiSend.bind(this);\n this.UpdateParams = this.UpdateParams.bind(this);\n this.SetSendEnabled = this.SetSendEnabled.bind(this);\n }\n Send(request) {\n const data = exports.MsgSend.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Msg\", \"Send\", data);\n return promise.then((data) => exports.MsgSendResponse.decode(new binary_1.BinaryReader(data)));\n }\n MultiSend(request) {\n const data = exports.MsgMultiSend.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Msg\", \"MultiSend\", data);\n return promise.then((data) => exports.MsgMultiSendResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpdateParams(request) {\n const data = exports.MsgUpdateParams.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Msg\", \"UpdateParams\", data);\n return promise.then((data) => exports.MsgUpdateParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n SetSendEnabled(request) {\n const data = exports.MsgSetSendEnabled.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Msg\", \"SetSendEnabled\", data);\n return promise.then((data) => exports.MsgSetSendEnabledResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SearchTxsResult = exports.TxMsgData = exports.MsgData = exports.SimulationResponse = exports.Result = exports.GasInfo = exports.Attribute = exports.StringEvent = exports.ABCIMessageLog = exports.TxResponse = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst types_1 = require(\"../../../../tendermint/abci/types\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"cosmos.base.abci.v1beta1\";\nfunction createBaseTxResponse() {\n return {\n height: BigInt(0),\n txhash: \"\",\n codespace: \"\",\n code: 0,\n data: \"\",\n rawLog: \"\",\n logs: [],\n info: \"\",\n gasWanted: BigInt(0),\n gasUsed: BigInt(0),\n tx: undefined,\n timestamp: \"\",\n events: [],\n };\n}\nexports.TxResponse = {\n typeUrl: \"/cosmos.base.abci.v1beta1.TxResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.height !== BigInt(0)) {\n writer.uint32(8).int64(message.height);\n }\n if (message.txhash !== \"\") {\n writer.uint32(18).string(message.txhash);\n }\n if (message.codespace !== \"\") {\n writer.uint32(26).string(message.codespace);\n }\n if (message.code !== 0) {\n writer.uint32(32).uint32(message.code);\n }\n if (message.data !== \"\") {\n writer.uint32(42).string(message.data);\n }\n if (message.rawLog !== \"\") {\n writer.uint32(50).string(message.rawLog);\n }\n for (const v of message.logs) {\n exports.ABCIMessageLog.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.info !== \"\") {\n writer.uint32(66).string(message.info);\n }\n if (message.gasWanted !== BigInt(0)) {\n writer.uint32(72).int64(message.gasWanted);\n }\n if (message.gasUsed !== BigInt(0)) {\n writer.uint32(80).int64(message.gasUsed);\n }\n if (message.tx !== undefined) {\n any_1.Any.encode(message.tx, writer.uint32(90).fork()).ldelim();\n }\n if (message.timestamp !== \"\") {\n writer.uint32(98).string(message.timestamp);\n }\n for (const v of message.events) {\n types_1.Event.encode(v, writer.uint32(106).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n case 2:\n message.txhash = reader.string();\n break;\n case 3:\n message.codespace = reader.string();\n break;\n case 4:\n message.code = reader.uint32();\n break;\n case 5:\n message.data = reader.string();\n break;\n case 6:\n message.rawLog = reader.string();\n break;\n case 7:\n message.logs.push(exports.ABCIMessageLog.decode(reader, reader.uint32()));\n break;\n case 8:\n message.info = reader.string();\n break;\n case 9:\n message.gasWanted = reader.int64();\n break;\n case 10:\n message.gasUsed = reader.int64();\n break;\n case 11:\n message.tx = any_1.Any.decode(reader, reader.uint32());\n break;\n case 12:\n message.timestamp = reader.string();\n break;\n case 13:\n message.events.push(types_1.Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxResponse();\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.txhash))\n obj.txhash = String(object.txhash);\n if ((0, helpers_1.isSet)(object.codespace))\n obj.codespace = String(object.codespace);\n if ((0, helpers_1.isSet)(object.code))\n obj.code = Number(object.code);\n if ((0, helpers_1.isSet)(object.data))\n obj.data = String(object.data);\n if ((0, helpers_1.isSet)(object.rawLog))\n obj.rawLog = String(object.rawLog);\n if (Array.isArray(object?.logs))\n obj.logs = object.logs.map((e) => exports.ABCIMessageLog.fromJSON(e));\n if ((0, helpers_1.isSet)(object.info))\n obj.info = String(object.info);\n if ((0, helpers_1.isSet)(object.gasWanted))\n obj.gasWanted = BigInt(object.gasWanted.toString());\n if ((0, helpers_1.isSet)(object.gasUsed))\n obj.gasUsed = BigInt(object.gasUsed.toString());\n if ((0, helpers_1.isSet)(object.tx))\n obj.tx = any_1.Any.fromJSON(object.tx);\n if ((0, helpers_1.isSet)(object.timestamp))\n obj.timestamp = String(object.timestamp);\n if (Array.isArray(object?.events))\n obj.events = object.events.map((e) => types_1.Event.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.txhash !== undefined && (obj.txhash = message.txhash);\n message.codespace !== undefined && (obj.codespace = message.codespace);\n message.code !== undefined && (obj.code = Math.round(message.code));\n message.data !== undefined && (obj.data = message.data);\n message.rawLog !== undefined && (obj.rawLog = message.rawLog);\n if (message.logs) {\n obj.logs = message.logs.map((e) => (e ? exports.ABCIMessageLog.toJSON(e) : undefined));\n }\n else {\n obj.logs = [];\n }\n message.info !== undefined && (obj.info = message.info);\n message.gasWanted !== undefined && (obj.gasWanted = (message.gasWanted || BigInt(0)).toString());\n message.gasUsed !== undefined && (obj.gasUsed = (message.gasUsed || BigInt(0)).toString());\n message.tx !== undefined && (obj.tx = message.tx ? any_1.Any.toJSON(message.tx) : undefined);\n message.timestamp !== undefined && (obj.timestamp = message.timestamp);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? types_1.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxResponse();\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n message.txhash = object.txhash ?? \"\";\n message.codespace = object.codespace ?? \"\";\n message.code = object.code ?? 0;\n message.data = object.data ?? \"\";\n message.rawLog = object.rawLog ?? \"\";\n message.logs = object.logs?.map((e) => exports.ABCIMessageLog.fromPartial(e)) || [];\n message.info = object.info ?? \"\";\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = BigInt(object.gasWanted.toString());\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = BigInt(object.gasUsed.toString());\n }\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = any_1.Any.fromPartial(object.tx);\n }\n message.timestamp = object.timestamp ?? \"\";\n message.events = object.events?.map((e) => types_1.Event.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseABCIMessageLog() {\n return {\n msgIndex: 0,\n log: \"\",\n events: [],\n };\n}\nexports.ABCIMessageLog = {\n typeUrl: \"/cosmos.base.abci.v1beta1.ABCIMessageLog\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.msgIndex !== 0) {\n writer.uint32(8).uint32(message.msgIndex);\n }\n if (message.log !== \"\") {\n writer.uint32(18).string(message.log);\n }\n for (const v of message.events) {\n exports.StringEvent.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseABCIMessageLog();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.msgIndex = reader.uint32();\n break;\n case 2:\n message.log = reader.string();\n break;\n case 3:\n message.events.push(exports.StringEvent.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseABCIMessageLog();\n if ((0, helpers_1.isSet)(object.msgIndex))\n obj.msgIndex = Number(object.msgIndex);\n if ((0, helpers_1.isSet)(object.log))\n obj.log = String(object.log);\n if (Array.isArray(object?.events))\n obj.events = object.events.map((e) => exports.StringEvent.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.msgIndex !== undefined && (obj.msgIndex = Math.round(message.msgIndex));\n message.log !== undefined && (obj.log = message.log);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.StringEvent.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseABCIMessageLog();\n message.msgIndex = object.msgIndex ?? 0;\n message.log = object.log ?? \"\";\n message.events = object.events?.map((e) => exports.StringEvent.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseStringEvent() {\n return {\n type: \"\",\n attributes: [],\n };\n}\nexports.StringEvent = {\n typeUrl: \"/cosmos.base.abci.v1beta1.StringEvent\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.type !== \"\") {\n writer.uint32(10).string(message.type);\n }\n for (const v of message.attributes) {\n exports.Attribute.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStringEvent();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.string();\n break;\n case 2:\n message.attributes.push(exports.Attribute.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseStringEvent();\n if ((0, helpers_1.isSet)(object.type))\n obj.type = String(object.type);\n if (Array.isArray(object?.attributes))\n obj.attributes = object.attributes.map((e) => exports.Attribute.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = message.type);\n if (message.attributes) {\n obj.attributes = message.attributes.map((e) => (e ? exports.Attribute.toJSON(e) : undefined));\n }\n else {\n obj.attributes = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseStringEvent();\n message.type = object.type ?? \"\";\n message.attributes = object.attributes?.map((e) => exports.Attribute.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseAttribute() {\n return {\n key: \"\",\n value: \"\",\n };\n}\nexports.Attribute = {\n typeUrl: \"/cosmos.base.abci.v1beta1.Attribute\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAttribute();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n case 2:\n message.value = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseAttribute();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = String(object.key);\n if ((0, helpers_1.isSet)(object.value))\n obj.value = String(object.value);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined && (obj.key = message.key);\n message.value !== undefined && (obj.value = message.value);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseAttribute();\n message.key = object.key ?? \"\";\n message.value = object.value ?? \"\";\n return message;\n },\n};\nfunction createBaseGasInfo() {\n return {\n gasWanted: BigInt(0),\n gasUsed: BigInt(0),\n };\n}\nexports.GasInfo = {\n typeUrl: \"/cosmos.base.abci.v1beta1.GasInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.gasWanted !== BigInt(0)) {\n writer.uint32(8).uint64(message.gasWanted);\n }\n if (message.gasUsed !== BigInt(0)) {\n writer.uint32(16).uint64(message.gasUsed);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGasInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.gasWanted = reader.uint64();\n break;\n case 2:\n message.gasUsed = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGasInfo();\n if ((0, helpers_1.isSet)(object.gasWanted))\n obj.gasWanted = BigInt(object.gasWanted.toString());\n if ((0, helpers_1.isSet)(object.gasUsed))\n obj.gasUsed = BigInt(object.gasUsed.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.gasWanted !== undefined && (obj.gasWanted = (message.gasWanted || BigInt(0)).toString());\n message.gasUsed !== undefined && (obj.gasUsed = (message.gasUsed || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGasInfo();\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = BigInt(object.gasWanted.toString());\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = BigInt(object.gasUsed.toString());\n }\n return message;\n },\n};\nfunction createBaseResult() {\n return {\n data: new Uint8Array(),\n log: \"\",\n events: [],\n msgResponses: [],\n };\n}\nexports.Result = {\n typeUrl: \"/cosmos.base.abci.v1beta1.Result\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n if (message.log !== \"\") {\n writer.uint32(18).string(message.log);\n }\n for (const v of message.events) {\n types_1.Event.encode(v, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.msgResponses) {\n any_1.Any.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResult();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n case 2:\n message.log = reader.string();\n break;\n case 3:\n message.events.push(types_1.Event.decode(reader, reader.uint32()));\n break;\n case 4:\n message.msgResponses.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResult();\n if ((0, helpers_1.isSet)(object.data))\n obj.data = (0, helpers_1.bytesFromBase64)(object.data);\n if ((0, helpers_1.isSet)(object.log))\n obj.log = String(object.log);\n if (Array.isArray(object?.events))\n obj.events = object.events.map((e) => types_1.Event.fromJSON(e));\n if (Array.isArray(object?.msgResponses))\n obj.msgResponses = object.msgResponses.map((e) => any_1.Any.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array()));\n message.log !== undefined && (obj.log = message.log);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? types_1.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n if (message.msgResponses) {\n obj.msgResponses = message.msgResponses.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.msgResponses = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResult();\n message.data = object.data ?? new Uint8Array();\n message.log = object.log ?? \"\";\n message.events = object.events?.map((e) => types_1.Event.fromPartial(e)) || [];\n message.msgResponses = object.msgResponses?.map((e) => any_1.Any.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseSimulationResponse() {\n return {\n gasInfo: exports.GasInfo.fromPartial({}),\n result: undefined,\n };\n}\nexports.SimulationResponse = {\n typeUrl: \"/cosmos.base.abci.v1beta1.SimulationResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.gasInfo !== undefined) {\n exports.GasInfo.encode(message.gasInfo, writer.uint32(10).fork()).ldelim();\n }\n if (message.result !== undefined) {\n exports.Result.encode(message.result, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSimulationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.gasInfo = exports.GasInfo.decode(reader, reader.uint32());\n break;\n case 2:\n message.result = exports.Result.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSimulationResponse();\n if ((0, helpers_1.isSet)(object.gasInfo))\n obj.gasInfo = exports.GasInfo.fromJSON(object.gasInfo);\n if ((0, helpers_1.isSet)(object.result))\n obj.result = exports.Result.fromJSON(object.result);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.gasInfo !== undefined &&\n (obj.gasInfo = message.gasInfo ? exports.GasInfo.toJSON(message.gasInfo) : undefined);\n message.result !== undefined && (obj.result = message.result ? exports.Result.toJSON(message.result) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSimulationResponse();\n if (object.gasInfo !== undefined && object.gasInfo !== null) {\n message.gasInfo = exports.GasInfo.fromPartial(object.gasInfo);\n }\n if (object.result !== undefined && object.result !== null) {\n message.result = exports.Result.fromPartial(object.result);\n }\n return message;\n },\n};\nfunction createBaseMsgData() {\n return {\n msgType: \"\",\n data: new Uint8Array(),\n };\n}\nexports.MsgData = {\n typeUrl: \"/cosmos.base.abci.v1beta1.MsgData\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.msgType !== \"\") {\n writer.uint32(10).string(message.msgType);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgData();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.msgType = reader.string();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgData();\n if ((0, helpers_1.isSet)(object.msgType))\n obj.msgType = String(object.msgType);\n if ((0, helpers_1.isSet)(object.data))\n obj.data = (0, helpers_1.bytesFromBase64)(object.data);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.msgType !== undefined && (obj.msgType = message.msgType);\n message.data !== undefined &&\n (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgData();\n message.msgType = object.msgType ?? \"\";\n message.data = object.data ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseTxMsgData() {\n return {\n data: [],\n msgResponses: [],\n };\n}\nexports.TxMsgData = {\n typeUrl: \"/cosmos.base.abci.v1beta1.TxMsgData\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.data) {\n exports.MsgData.encode(v, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.msgResponses) {\n any_1.Any.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxMsgData();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data.push(exports.MsgData.decode(reader, reader.uint32()));\n break;\n case 2:\n message.msgResponses.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxMsgData();\n if (Array.isArray(object?.data))\n obj.data = object.data.map((e) => exports.MsgData.fromJSON(e));\n if (Array.isArray(object?.msgResponses))\n obj.msgResponses = object.msgResponses.map((e) => any_1.Any.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.data) {\n obj.data = message.data.map((e) => (e ? exports.MsgData.toJSON(e) : undefined));\n }\n else {\n obj.data = [];\n }\n if (message.msgResponses) {\n obj.msgResponses = message.msgResponses.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.msgResponses = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxMsgData();\n message.data = object.data?.map((e) => exports.MsgData.fromPartial(e)) || [];\n message.msgResponses = object.msgResponses?.map((e) => any_1.Any.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseSearchTxsResult() {\n return {\n totalCount: BigInt(0),\n count: BigInt(0),\n pageNumber: BigInt(0),\n pageTotal: BigInt(0),\n limit: BigInt(0),\n txs: [],\n };\n}\nexports.SearchTxsResult = {\n typeUrl: \"/cosmos.base.abci.v1beta1.SearchTxsResult\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.totalCount !== BigInt(0)) {\n writer.uint32(8).uint64(message.totalCount);\n }\n if (message.count !== BigInt(0)) {\n writer.uint32(16).uint64(message.count);\n }\n if (message.pageNumber !== BigInt(0)) {\n writer.uint32(24).uint64(message.pageNumber);\n }\n if (message.pageTotal !== BigInt(0)) {\n writer.uint32(32).uint64(message.pageTotal);\n }\n if (message.limit !== BigInt(0)) {\n writer.uint32(40).uint64(message.limit);\n }\n for (const v of message.txs) {\n exports.TxResponse.encode(v, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSearchTxsResult();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.totalCount = reader.uint64();\n break;\n case 2:\n message.count = reader.uint64();\n break;\n case 3:\n message.pageNumber = reader.uint64();\n break;\n case 4:\n message.pageTotal = reader.uint64();\n break;\n case 5:\n message.limit = reader.uint64();\n break;\n case 6:\n message.txs.push(exports.TxResponse.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSearchTxsResult();\n if ((0, helpers_1.isSet)(object.totalCount))\n obj.totalCount = BigInt(object.totalCount.toString());\n if ((0, helpers_1.isSet)(object.count))\n obj.count = BigInt(object.count.toString());\n if ((0, helpers_1.isSet)(object.pageNumber))\n obj.pageNumber = BigInt(object.pageNumber.toString());\n if ((0, helpers_1.isSet)(object.pageTotal))\n obj.pageTotal = BigInt(object.pageTotal.toString());\n if ((0, helpers_1.isSet)(object.limit))\n obj.limit = BigInt(object.limit.toString());\n if (Array.isArray(object?.txs))\n obj.txs = object.txs.map((e) => exports.TxResponse.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.totalCount !== undefined && (obj.totalCount = (message.totalCount || BigInt(0)).toString());\n message.count !== undefined && (obj.count = (message.count || BigInt(0)).toString());\n message.pageNumber !== undefined && (obj.pageNumber = (message.pageNumber || BigInt(0)).toString());\n message.pageTotal !== undefined && (obj.pageTotal = (message.pageTotal || BigInt(0)).toString());\n message.limit !== undefined && (obj.limit = (message.limit || BigInt(0)).toString());\n if (message.txs) {\n obj.txs = message.txs.map((e) => (e ? exports.TxResponse.toJSON(e) : undefined));\n }\n else {\n obj.txs = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSearchTxsResult();\n if (object.totalCount !== undefined && object.totalCount !== null) {\n message.totalCount = BigInt(object.totalCount.toString());\n }\n if (object.count !== undefined && object.count !== null) {\n message.count = BigInt(object.count.toString());\n }\n if (object.pageNumber !== undefined && object.pageNumber !== null) {\n message.pageNumber = BigInt(object.pageNumber.toString());\n }\n if (object.pageTotal !== undefined && object.pageTotal !== null) {\n message.pageTotal = BigInt(object.pageTotal.toString());\n }\n if (object.limit !== undefined && object.limit !== null) {\n message.limit = BigInt(object.limit.toString());\n }\n message.txs = object.txs?.map((e) => exports.TxResponse.fromPartial(e)) || [];\n return message;\n },\n};\n//# sourceMappingURL=abci.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PageResponse = exports.PageRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"cosmos.base.query.v1beta1\";\nfunction createBasePageRequest() {\n return {\n key: new Uint8Array(),\n offset: BigInt(0),\n limit: BigInt(0),\n countTotal: false,\n reverse: false,\n };\n}\nexports.PageRequest = {\n typeUrl: \"/cosmos.base.query.v1beta1.PageRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.offset !== BigInt(0)) {\n writer.uint32(16).uint64(message.offset);\n }\n if (message.limit !== BigInt(0)) {\n writer.uint32(24).uint64(message.limit);\n }\n if (message.countTotal === true) {\n writer.uint32(32).bool(message.countTotal);\n }\n if (message.reverse === true) {\n writer.uint32(40).bool(message.reverse);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePageRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.offset = reader.uint64();\n break;\n case 3:\n message.limit = reader.uint64();\n break;\n case 4:\n message.countTotal = reader.bool();\n break;\n case 5:\n message.reverse = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePageRequest();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n if ((0, helpers_1.isSet)(object.offset))\n obj.offset = BigInt(object.offset.toString());\n if ((0, helpers_1.isSet)(object.limit))\n obj.limit = BigInt(object.limit.toString());\n if ((0, helpers_1.isSet)(object.countTotal))\n obj.countTotal = Boolean(object.countTotal);\n if ((0, helpers_1.isSet)(object.reverse))\n obj.reverse = Boolean(object.reverse);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n message.offset !== undefined && (obj.offset = (message.offset || BigInt(0)).toString());\n message.limit !== undefined && (obj.limit = (message.limit || BigInt(0)).toString());\n message.countTotal !== undefined && (obj.countTotal = message.countTotal);\n message.reverse !== undefined && (obj.reverse = message.reverse);\n return obj;\n },\n fromPartial(object) {\n const message = createBasePageRequest();\n message.key = object.key ?? new Uint8Array();\n if (object.offset !== undefined && object.offset !== null) {\n message.offset = BigInt(object.offset.toString());\n }\n if (object.limit !== undefined && object.limit !== null) {\n message.limit = BigInt(object.limit.toString());\n }\n message.countTotal = object.countTotal ?? false;\n message.reverse = object.reverse ?? false;\n return message;\n },\n};\nfunction createBasePageResponse() {\n return {\n nextKey: new Uint8Array(),\n total: BigInt(0),\n };\n}\nexports.PageResponse = {\n typeUrl: \"/cosmos.base.query.v1beta1.PageResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.nextKey.length !== 0) {\n writer.uint32(10).bytes(message.nextKey);\n }\n if (message.total !== BigInt(0)) {\n writer.uint32(16).uint64(message.total);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePageResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.nextKey = reader.bytes();\n break;\n case 2:\n message.total = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePageResponse();\n if ((0, helpers_1.isSet)(object.nextKey))\n obj.nextKey = (0, helpers_1.bytesFromBase64)(object.nextKey);\n if ((0, helpers_1.isSet)(object.total))\n obj.total = BigInt(object.total.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.nextKey !== undefined &&\n (obj.nextKey = (0, helpers_1.base64FromBytes)(message.nextKey !== undefined ? message.nextKey : new Uint8Array()));\n message.total !== undefined && (obj.total = (message.total || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBasePageResponse();\n message.nextKey = object.nextKey ?? new Uint8Array();\n if (object.total !== undefined && object.total !== null) {\n message.total = BigInt(object.total.toString());\n }\n return message;\n },\n};\n//# sourceMappingURL=pagination.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DecProto = exports.IntProto = exports.DecCoin = exports.Coin = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.base.v1beta1\";\nfunction createBaseCoin() {\n return {\n denom: \"\",\n amount: \"\",\n };\n}\nexports.Coin = {\n typeUrl: \"/cosmos.base.v1beta1.Coin\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.amount !== \"\") {\n writer.uint32(18).string(message.amount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCoin();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.amount = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCoin();\n if ((0, helpers_1.isSet)(object.denom))\n obj.denom = String(object.denom);\n if ((0, helpers_1.isSet)(object.amount))\n obj.amount = String(object.amount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.amount !== undefined && (obj.amount = message.amount);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCoin();\n message.denom = object.denom ?? \"\";\n message.amount = object.amount ?? \"\";\n return message;\n },\n};\nfunction createBaseDecCoin() {\n return {\n denom: \"\",\n amount: \"\",\n };\n}\nexports.DecCoin = {\n typeUrl: \"/cosmos.base.v1beta1.DecCoin\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.amount !== \"\") {\n writer.uint32(18).string(message.amount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDecCoin();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.amount = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDecCoin();\n if ((0, helpers_1.isSet)(object.denom))\n obj.denom = String(object.denom);\n if ((0, helpers_1.isSet)(object.amount))\n obj.amount = String(object.amount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.amount !== undefined && (obj.amount = message.amount);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDecCoin();\n message.denom = object.denom ?? \"\";\n message.amount = object.amount ?? \"\";\n return message;\n },\n};\nfunction createBaseIntProto() {\n return {\n int: \"\",\n };\n}\nexports.IntProto = {\n typeUrl: \"/cosmos.base.v1beta1.IntProto\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.int !== \"\") {\n writer.uint32(10).string(message.int);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseIntProto();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.int = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseIntProto();\n if ((0, helpers_1.isSet)(object.int))\n obj.int = String(object.int);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.int !== undefined && (obj.int = message.int);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseIntProto();\n message.int = object.int ?? \"\";\n return message;\n },\n};\nfunction createBaseDecProto() {\n return {\n dec: \"\",\n };\n}\nexports.DecProto = {\n typeUrl: \"/cosmos.base.v1beta1.DecProto\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.dec !== \"\") {\n writer.uint32(10).string(message.dec);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDecProto();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.dec = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDecProto();\n if ((0, helpers_1.isSet)(object.dec))\n obj.dec = String(object.dec);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.dec !== undefined && (obj.dec = message.dec);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDecProto();\n message.dec = object.dec ?? \"\";\n return message;\n },\n};\n//# sourceMappingURL=coin.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PrivKey = exports.PubKey = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.crypto.ed25519\";\nfunction createBasePubKey() {\n return {\n key: new Uint8Array(),\n };\n}\nexports.PubKey = {\n typeUrl: \"/cosmos.crypto.ed25519.PubKey\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePubKey();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePubKey();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBasePubKey();\n message.key = object.key ?? new Uint8Array();\n return message;\n },\n};\nfunction createBasePrivKey() {\n return {\n key: new Uint8Array(),\n };\n}\nexports.PrivKey = {\n typeUrl: \"/cosmos.crypto.ed25519.PrivKey\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePrivKey();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePrivKey();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBasePrivKey();\n message.key = object.key ?? new Uint8Array();\n return message;\n },\n};\n//# sourceMappingURL=keys.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LegacyAminoPubKey = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.crypto.multisig\";\nfunction createBaseLegacyAminoPubKey() {\n return {\n threshold: 0,\n publicKeys: [],\n };\n}\nexports.LegacyAminoPubKey = {\n typeUrl: \"/cosmos.crypto.multisig.LegacyAminoPubKey\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.threshold !== 0) {\n writer.uint32(8).uint32(message.threshold);\n }\n for (const v of message.publicKeys) {\n any_1.Any.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseLegacyAminoPubKey();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.threshold = reader.uint32();\n break;\n case 2:\n message.publicKeys.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseLegacyAminoPubKey();\n if ((0, helpers_1.isSet)(object.threshold))\n obj.threshold = Number(object.threshold);\n if (Array.isArray(object?.publicKeys))\n obj.publicKeys = object.publicKeys.map((e) => any_1.Any.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.threshold !== undefined && (obj.threshold = Math.round(message.threshold));\n if (message.publicKeys) {\n obj.publicKeys = message.publicKeys.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.publicKeys = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseLegacyAminoPubKey();\n message.threshold = object.threshold ?? 0;\n message.publicKeys = object.publicKeys?.map((e) => any_1.Any.fromPartial(e)) || [];\n return message;\n },\n};\n//# sourceMappingURL=keys.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CompactBitArray = exports.MultiSignature = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"cosmos.crypto.multisig.v1beta1\";\nfunction createBaseMultiSignature() {\n return {\n signatures: [],\n };\n}\nexports.MultiSignature = {\n typeUrl: \"/cosmos.crypto.multisig.v1beta1.MultiSignature\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.signatures) {\n writer.uint32(10).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMultiSignature();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMultiSignature();\n if (Array.isArray(object?.signatures))\n obj.signatures = object.signatures.map((e) => (0, helpers_1.bytesFromBase64)(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMultiSignature();\n message.signatures = object.signatures?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseCompactBitArray() {\n return {\n extraBitsStored: 0,\n elems: new Uint8Array(),\n };\n}\nexports.CompactBitArray = {\n typeUrl: \"/cosmos.crypto.multisig.v1beta1.CompactBitArray\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.extraBitsStored !== 0) {\n writer.uint32(8).uint32(message.extraBitsStored);\n }\n if (message.elems.length !== 0) {\n writer.uint32(18).bytes(message.elems);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCompactBitArray();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.extraBitsStored = reader.uint32();\n break;\n case 2:\n message.elems = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCompactBitArray();\n if ((0, helpers_1.isSet)(object.extraBitsStored))\n obj.extraBitsStored = Number(object.extraBitsStored);\n if ((0, helpers_1.isSet)(object.elems))\n obj.elems = (0, helpers_1.bytesFromBase64)(object.elems);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.extraBitsStored !== undefined && (obj.extraBitsStored = Math.round(message.extraBitsStored));\n message.elems !== undefined &&\n (obj.elems = (0, helpers_1.base64FromBytes)(message.elems !== undefined ? message.elems : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCompactBitArray();\n message.extraBitsStored = object.extraBitsStored ?? 0;\n message.elems = object.elems ?? new Uint8Array();\n return message;\n },\n};\n//# sourceMappingURL=multisig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PrivKey = exports.PubKey = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.crypto.secp256k1\";\nfunction createBasePubKey() {\n return {\n key: new Uint8Array(),\n };\n}\nexports.PubKey = {\n typeUrl: \"/cosmos.crypto.secp256k1.PubKey\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePubKey();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePubKey();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBasePubKey();\n message.key = object.key ?? new Uint8Array();\n return message;\n },\n};\nfunction createBasePrivKey() {\n return {\n key: new Uint8Array(),\n };\n}\nexports.PrivKey = {\n typeUrl: \"/cosmos.crypto.secp256k1.PrivKey\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePrivKey();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePrivKey();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBasePrivKey();\n message.key = object.key ?? new Uint8Array();\n return message;\n },\n};\n//# sourceMappingURL=keys.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommunityPoolSpendProposalWithDeposit = exports.DelegationDelegatorReward = exports.DelegatorStartingInfo = exports.CommunityPoolSpendProposal = exports.FeePool = exports.ValidatorSlashEvents = exports.ValidatorSlashEvent = exports.ValidatorOutstandingRewards = exports.ValidatorAccumulatedCommission = exports.ValidatorCurrentRewards = exports.ValidatorHistoricalRewards = exports.Params = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.distribution.v1beta1\";\nfunction createBaseParams() {\n return {\n communityTax: \"\",\n baseProposerReward: \"\",\n bonusProposerReward: \"\",\n withdrawAddrEnabled: false,\n };\n}\nexports.Params = {\n typeUrl: \"/cosmos.distribution.v1beta1.Params\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.communityTax !== \"\") {\n writer.uint32(10).string(message.communityTax);\n }\n if (message.baseProposerReward !== \"\") {\n writer.uint32(18).string(message.baseProposerReward);\n }\n if (message.bonusProposerReward !== \"\") {\n writer.uint32(26).string(message.bonusProposerReward);\n }\n if (message.withdrawAddrEnabled === true) {\n writer.uint32(32).bool(message.withdrawAddrEnabled);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.communityTax = reader.string();\n break;\n case 2:\n message.baseProposerReward = reader.string();\n break;\n case 3:\n message.bonusProposerReward = reader.string();\n break;\n case 4:\n message.withdrawAddrEnabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseParams();\n if ((0, helpers_1.isSet)(object.communityTax))\n obj.communityTax = String(object.communityTax);\n if ((0, helpers_1.isSet)(object.baseProposerReward))\n obj.baseProposerReward = String(object.baseProposerReward);\n if ((0, helpers_1.isSet)(object.bonusProposerReward))\n obj.bonusProposerReward = String(object.bonusProposerReward);\n if ((0, helpers_1.isSet)(object.withdrawAddrEnabled))\n obj.withdrawAddrEnabled = Boolean(object.withdrawAddrEnabled);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.communityTax !== undefined && (obj.communityTax = message.communityTax);\n message.baseProposerReward !== undefined && (obj.baseProposerReward = message.baseProposerReward);\n message.bonusProposerReward !== undefined && (obj.bonusProposerReward = message.bonusProposerReward);\n message.withdrawAddrEnabled !== undefined && (obj.withdrawAddrEnabled = message.withdrawAddrEnabled);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseParams();\n message.communityTax = object.communityTax ?? \"\";\n message.baseProposerReward = object.baseProposerReward ?? \"\";\n message.bonusProposerReward = object.bonusProposerReward ?? \"\";\n message.withdrawAddrEnabled = object.withdrawAddrEnabled ?? false;\n return message;\n },\n};\nfunction createBaseValidatorHistoricalRewards() {\n return {\n cumulativeRewardRatio: [],\n referenceCount: 0,\n };\n}\nexports.ValidatorHistoricalRewards = {\n typeUrl: \"/cosmos.distribution.v1beta1.ValidatorHistoricalRewards\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.cumulativeRewardRatio) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.referenceCount !== 0) {\n writer.uint32(16).uint32(message.referenceCount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorHistoricalRewards();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.cumulativeRewardRatio.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.referenceCount = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidatorHistoricalRewards();\n if (Array.isArray(object?.cumulativeRewardRatio))\n obj.cumulativeRewardRatio = object.cumulativeRewardRatio.map((e) => coin_1.DecCoin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.referenceCount))\n obj.referenceCount = Number(object.referenceCount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.cumulativeRewardRatio) {\n obj.cumulativeRewardRatio = message.cumulativeRewardRatio.map((e) => e ? coin_1.DecCoin.toJSON(e) : undefined);\n }\n else {\n obj.cumulativeRewardRatio = [];\n }\n message.referenceCount !== undefined && (obj.referenceCount = Math.round(message.referenceCount));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidatorHistoricalRewards();\n message.cumulativeRewardRatio = object.cumulativeRewardRatio?.map((e) => coin_1.DecCoin.fromPartial(e)) || [];\n message.referenceCount = object.referenceCount ?? 0;\n return message;\n },\n};\nfunction createBaseValidatorCurrentRewards() {\n return {\n rewards: [],\n period: BigInt(0),\n };\n}\nexports.ValidatorCurrentRewards = {\n typeUrl: \"/cosmos.distribution.v1beta1.ValidatorCurrentRewards\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.rewards) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.period !== BigInt(0)) {\n writer.uint32(16).uint64(message.period);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorCurrentRewards();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.period = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidatorCurrentRewards();\n if (Array.isArray(object?.rewards))\n obj.rewards = object.rewards.map((e) => coin_1.DecCoin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.period))\n obj.period = BigInt(object.period.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.rewards) {\n obj.rewards = message.rewards.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.rewards = [];\n }\n message.period !== undefined && (obj.period = (message.period || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidatorCurrentRewards();\n message.rewards = object.rewards?.map((e) => coin_1.DecCoin.fromPartial(e)) || [];\n if (object.period !== undefined && object.period !== null) {\n message.period = BigInt(object.period.toString());\n }\n return message;\n },\n};\nfunction createBaseValidatorAccumulatedCommission() {\n return {\n commission: [],\n };\n}\nexports.ValidatorAccumulatedCommission = {\n typeUrl: \"/cosmos.distribution.v1beta1.ValidatorAccumulatedCommission\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.commission) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorAccumulatedCommission();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commission.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidatorAccumulatedCommission();\n if (Array.isArray(object?.commission))\n obj.commission = object.commission.map((e) => coin_1.DecCoin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.commission) {\n obj.commission = message.commission.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.commission = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidatorAccumulatedCommission();\n message.commission = object.commission?.map((e) => coin_1.DecCoin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseValidatorOutstandingRewards() {\n return {\n rewards: [],\n };\n}\nexports.ValidatorOutstandingRewards = {\n typeUrl: \"/cosmos.distribution.v1beta1.ValidatorOutstandingRewards\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.rewards) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorOutstandingRewards();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidatorOutstandingRewards();\n if (Array.isArray(object?.rewards))\n obj.rewards = object.rewards.map((e) => coin_1.DecCoin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.rewards) {\n obj.rewards = message.rewards.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.rewards = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidatorOutstandingRewards();\n message.rewards = object.rewards?.map((e) => coin_1.DecCoin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseValidatorSlashEvent() {\n return {\n validatorPeriod: BigInt(0),\n fraction: \"\",\n };\n}\nexports.ValidatorSlashEvent = {\n typeUrl: \"/cosmos.distribution.v1beta1.ValidatorSlashEvent\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validatorPeriod !== BigInt(0)) {\n writer.uint32(8).uint64(message.validatorPeriod);\n }\n if (message.fraction !== \"\") {\n writer.uint32(18).string(message.fraction);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorSlashEvent();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorPeriod = reader.uint64();\n break;\n case 2:\n message.fraction = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidatorSlashEvent();\n if ((0, helpers_1.isSet)(object.validatorPeriod))\n obj.validatorPeriod = BigInt(object.validatorPeriod.toString());\n if ((0, helpers_1.isSet)(object.fraction))\n obj.fraction = String(object.fraction);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validatorPeriod !== undefined &&\n (obj.validatorPeriod = (message.validatorPeriod || BigInt(0)).toString());\n message.fraction !== undefined && (obj.fraction = message.fraction);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidatorSlashEvent();\n if (object.validatorPeriod !== undefined && object.validatorPeriod !== null) {\n message.validatorPeriod = BigInt(object.validatorPeriod.toString());\n }\n message.fraction = object.fraction ?? \"\";\n return message;\n },\n};\nfunction createBaseValidatorSlashEvents() {\n return {\n validatorSlashEvents: [],\n };\n}\nexports.ValidatorSlashEvents = {\n typeUrl: \"/cosmos.distribution.v1beta1.ValidatorSlashEvents\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.validatorSlashEvents) {\n exports.ValidatorSlashEvent.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorSlashEvents();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorSlashEvents.push(exports.ValidatorSlashEvent.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidatorSlashEvents();\n if (Array.isArray(object?.validatorSlashEvents))\n obj.validatorSlashEvents = object.validatorSlashEvents.map((e) => exports.ValidatorSlashEvent.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.validatorSlashEvents) {\n obj.validatorSlashEvents = message.validatorSlashEvents.map((e) => e ? exports.ValidatorSlashEvent.toJSON(e) : undefined);\n }\n else {\n obj.validatorSlashEvents = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidatorSlashEvents();\n message.validatorSlashEvents =\n object.validatorSlashEvents?.map((e) => exports.ValidatorSlashEvent.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseFeePool() {\n return {\n communityPool: [],\n };\n}\nexports.FeePool = {\n typeUrl: \"/cosmos.distribution.v1beta1.FeePool\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.communityPool) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFeePool();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.communityPool.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseFeePool();\n if (Array.isArray(object?.communityPool))\n obj.communityPool = object.communityPool.map((e) => coin_1.DecCoin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.communityPool) {\n obj.communityPool = message.communityPool.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.communityPool = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseFeePool();\n message.communityPool = object.communityPool?.map((e) => coin_1.DecCoin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseCommunityPoolSpendProposal() {\n return {\n title: \"\",\n description: \"\",\n recipient: \"\",\n amount: [],\n };\n}\nexports.CommunityPoolSpendProposal = {\n typeUrl: \"/cosmos.distribution.v1beta1.CommunityPoolSpendProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.recipient !== \"\") {\n writer.uint32(26).string(message.recipient);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCommunityPoolSpendProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.recipient = reader.string();\n break;\n case 4:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCommunityPoolSpendProposal();\n if ((0, helpers_1.isSet)(object.title))\n obj.title = String(object.title);\n if ((0, helpers_1.isSet)(object.description))\n obj.description = String(object.description);\n if ((0, helpers_1.isSet)(object.recipient))\n obj.recipient = String(object.recipient);\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.recipient !== undefined && (obj.recipient = message.recipient);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCommunityPoolSpendProposal();\n message.title = object.title ?? \"\";\n message.description = object.description ?? \"\";\n message.recipient = object.recipient ?? \"\";\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseDelegatorStartingInfo() {\n return {\n previousPeriod: BigInt(0),\n stake: \"\",\n height: BigInt(0),\n };\n}\nexports.DelegatorStartingInfo = {\n typeUrl: \"/cosmos.distribution.v1beta1.DelegatorStartingInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.previousPeriod !== BigInt(0)) {\n writer.uint32(8).uint64(message.previousPeriod);\n }\n if (message.stake !== \"\") {\n writer.uint32(18).string(message.stake);\n }\n if (message.height !== BigInt(0)) {\n writer.uint32(24).uint64(message.height);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDelegatorStartingInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.previousPeriod = reader.uint64();\n break;\n case 2:\n message.stake = reader.string();\n break;\n case 3:\n message.height = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDelegatorStartingInfo();\n if ((0, helpers_1.isSet)(object.previousPeriod))\n obj.previousPeriod = BigInt(object.previousPeriod.toString());\n if ((0, helpers_1.isSet)(object.stake))\n obj.stake = String(object.stake);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.previousPeriod !== undefined &&\n (obj.previousPeriod = (message.previousPeriod || BigInt(0)).toString());\n message.stake !== undefined && (obj.stake = message.stake);\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDelegatorStartingInfo();\n if (object.previousPeriod !== undefined && object.previousPeriod !== null) {\n message.previousPeriod = BigInt(object.previousPeriod.toString());\n }\n message.stake = object.stake ?? \"\";\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n return message;\n },\n};\nfunction createBaseDelegationDelegatorReward() {\n return {\n validatorAddress: \"\",\n reward: [],\n };\n}\nexports.DelegationDelegatorReward = {\n typeUrl: \"/cosmos.distribution.v1beta1.DelegationDelegatorReward\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n for (const v of message.reward) {\n coin_1.DecCoin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDelegationDelegatorReward();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n case 2:\n message.reward.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDelegationDelegatorReward();\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n if (Array.isArray(object?.reward))\n obj.reward = object.reward.map((e) => coin_1.DecCoin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n if (message.reward) {\n obj.reward = message.reward.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.reward = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDelegationDelegatorReward();\n message.validatorAddress = object.validatorAddress ?? \"\";\n message.reward = object.reward?.map((e) => coin_1.DecCoin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseCommunityPoolSpendProposalWithDeposit() {\n return {\n title: \"\",\n description: \"\",\n recipient: \"\",\n amount: \"\",\n deposit: \"\",\n };\n}\nexports.CommunityPoolSpendProposalWithDeposit = {\n typeUrl: \"/cosmos.distribution.v1beta1.CommunityPoolSpendProposalWithDeposit\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.recipient !== \"\") {\n writer.uint32(26).string(message.recipient);\n }\n if (message.amount !== \"\") {\n writer.uint32(34).string(message.amount);\n }\n if (message.deposit !== \"\") {\n writer.uint32(42).string(message.deposit);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCommunityPoolSpendProposalWithDeposit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.recipient = reader.string();\n break;\n case 4:\n message.amount = reader.string();\n break;\n case 5:\n message.deposit = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCommunityPoolSpendProposalWithDeposit();\n if ((0, helpers_1.isSet)(object.title))\n obj.title = String(object.title);\n if ((0, helpers_1.isSet)(object.description))\n obj.description = String(object.description);\n if ((0, helpers_1.isSet)(object.recipient))\n obj.recipient = String(object.recipient);\n if ((0, helpers_1.isSet)(object.amount))\n obj.amount = String(object.amount);\n if ((0, helpers_1.isSet)(object.deposit))\n obj.deposit = String(object.deposit);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.recipient !== undefined && (obj.recipient = message.recipient);\n message.amount !== undefined && (obj.amount = message.amount);\n message.deposit !== undefined && (obj.deposit = message.deposit);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCommunityPoolSpendProposalWithDeposit();\n message.title = object.title ?? \"\";\n message.description = object.description ?? \"\";\n message.recipient = object.recipient ?? \"\";\n message.amount = object.amount ?? \"\";\n message.deposit = object.deposit ?? \"\";\n return message;\n },\n};\n//# sourceMappingURL=distribution.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryCommunityPoolResponse = exports.QueryCommunityPoolRequest = exports.QueryDelegatorWithdrawAddressResponse = exports.QueryDelegatorWithdrawAddressRequest = exports.QueryDelegatorValidatorsResponse = exports.QueryDelegatorValidatorsRequest = exports.QueryDelegationTotalRewardsResponse = exports.QueryDelegationTotalRewardsRequest = exports.QueryDelegationRewardsResponse = exports.QueryDelegationRewardsRequest = exports.QueryValidatorSlashesResponse = exports.QueryValidatorSlashesRequest = exports.QueryValidatorCommissionResponse = exports.QueryValidatorCommissionRequest = exports.QueryValidatorOutstandingRewardsResponse = exports.QueryValidatorOutstandingRewardsRequest = exports.QueryValidatorDistributionInfoResponse = exports.QueryValidatorDistributionInfoRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst pagination_1 = require(\"../../base/query/v1beta1/pagination\");\nconst distribution_1 = require(\"./distribution\");\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.distribution.v1beta1\";\nfunction createBaseQueryParamsRequest() {\n return {};\n}\nexports.QueryParamsRequest = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryParamsRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryParamsRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryParamsRequest();\n return message;\n },\n};\nfunction createBaseQueryParamsResponse() {\n return {\n params: distribution_1.Params.fromPartial({}),\n };\n}\nexports.QueryParamsResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryParamsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.params !== undefined) {\n distribution_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = distribution_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryParamsResponse();\n if ((0, helpers_1.isSet)(object.params))\n obj.params = distribution_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? distribution_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryParamsResponse();\n if (object.params !== undefined && object.params !== null) {\n message.params = distribution_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nfunction createBaseQueryValidatorDistributionInfoRequest() {\n return {\n validatorAddress: \"\",\n };\n}\nexports.QueryValidatorDistributionInfoRequest = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryValidatorDistributionInfoRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorDistributionInfoRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorDistributionInfoRequest();\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorDistributionInfoRequest();\n message.validatorAddress = object.validatorAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryValidatorDistributionInfoResponse() {\n return {\n operatorAddress: \"\",\n selfBondRewards: [],\n commission: [],\n };\n}\nexports.QueryValidatorDistributionInfoResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryValidatorDistributionInfoResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.operatorAddress !== \"\") {\n writer.uint32(10).string(message.operatorAddress);\n }\n for (const v of message.selfBondRewards) {\n coin_1.DecCoin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.commission) {\n coin_1.DecCoin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorDistributionInfoResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.operatorAddress = reader.string();\n break;\n case 2:\n message.selfBondRewards.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n case 3:\n message.commission.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorDistributionInfoResponse();\n if ((0, helpers_1.isSet)(object.operatorAddress))\n obj.operatorAddress = String(object.operatorAddress);\n if (Array.isArray(object?.selfBondRewards))\n obj.selfBondRewards = object.selfBondRewards.map((e) => coin_1.DecCoin.fromJSON(e));\n if (Array.isArray(object?.commission))\n obj.commission = object.commission.map((e) => coin_1.DecCoin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.operatorAddress !== undefined && (obj.operatorAddress = message.operatorAddress);\n if (message.selfBondRewards) {\n obj.selfBondRewards = message.selfBondRewards.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.selfBondRewards = [];\n }\n if (message.commission) {\n obj.commission = message.commission.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.commission = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorDistributionInfoResponse();\n message.operatorAddress = object.operatorAddress ?? \"\";\n message.selfBondRewards = object.selfBondRewards?.map((e) => coin_1.DecCoin.fromPartial(e)) || [];\n message.commission = object.commission?.map((e) => coin_1.DecCoin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseQueryValidatorOutstandingRewardsRequest() {\n return {\n validatorAddress: \"\",\n };\n}\nexports.QueryValidatorOutstandingRewardsRequest = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryValidatorOutstandingRewardsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorOutstandingRewardsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorOutstandingRewardsRequest();\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorOutstandingRewardsRequest();\n message.validatorAddress = object.validatorAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryValidatorOutstandingRewardsResponse() {\n return {\n rewards: distribution_1.ValidatorOutstandingRewards.fromPartial({}),\n };\n}\nexports.QueryValidatorOutstandingRewardsResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryValidatorOutstandingRewardsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.rewards !== undefined) {\n distribution_1.ValidatorOutstandingRewards.encode(message.rewards, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorOutstandingRewardsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards = distribution_1.ValidatorOutstandingRewards.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorOutstandingRewardsResponse();\n if ((0, helpers_1.isSet)(object.rewards))\n obj.rewards = distribution_1.ValidatorOutstandingRewards.fromJSON(object.rewards);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.rewards !== undefined &&\n (obj.rewards = message.rewards ? distribution_1.ValidatorOutstandingRewards.toJSON(message.rewards) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorOutstandingRewardsResponse();\n if (object.rewards !== undefined && object.rewards !== null) {\n message.rewards = distribution_1.ValidatorOutstandingRewards.fromPartial(object.rewards);\n }\n return message;\n },\n};\nfunction createBaseQueryValidatorCommissionRequest() {\n return {\n validatorAddress: \"\",\n };\n}\nexports.QueryValidatorCommissionRequest = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryValidatorCommissionRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorCommissionRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorCommissionRequest();\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorCommissionRequest();\n message.validatorAddress = object.validatorAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryValidatorCommissionResponse() {\n return {\n commission: distribution_1.ValidatorAccumulatedCommission.fromPartial({}),\n };\n}\nexports.QueryValidatorCommissionResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryValidatorCommissionResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.commission !== undefined) {\n distribution_1.ValidatorAccumulatedCommission.encode(message.commission, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorCommissionResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commission = distribution_1.ValidatorAccumulatedCommission.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorCommissionResponse();\n if ((0, helpers_1.isSet)(object.commission))\n obj.commission = distribution_1.ValidatorAccumulatedCommission.fromJSON(object.commission);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.commission !== undefined &&\n (obj.commission = message.commission\n ? distribution_1.ValidatorAccumulatedCommission.toJSON(message.commission)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorCommissionResponse();\n if (object.commission !== undefined && object.commission !== null) {\n message.commission = distribution_1.ValidatorAccumulatedCommission.fromPartial(object.commission);\n }\n return message;\n },\n};\nfunction createBaseQueryValidatorSlashesRequest() {\n return {\n validatorAddress: \"\",\n startingHeight: BigInt(0),\n endingHeight: BigInt(0),\n pagination: undefined,\n };\n}\nexports.QueryValidatorSlashesRequest = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryValidatorSlashesRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n if (message.startingHeight !== BigInt(0)) {\n writer.uint32(16).uint64(message.startingHeight);\n }\n if (message.endingHeight !== BigInt(0)) {\n writer.uint32(24).uint64(message.endingHeight);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorSlashesRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n case 2:\n message.startingHeight = reader.uint64();\n break;\n case 3:\n message.endingHeight = reader.uint64();\n break;\n case 4:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorSlashesRequest();\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n if ((0, helpers_1.isSet)(object.startingHeight))\n obj.startingHeight = BigInt(object.startingHeight.toString());\n if ((0, helpers_1.isSet)(object.endingHeight))\n obj.endingHeight = BigInt(object.endingHeight.toString());\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.startingHeight !== undefined &&\n (obj.startingHeight = (message.startingHeight || BigInt(0)).toString());\n message.endingHeight !== undefined && (obj.endingHeight = (message.endingHeight || BigInt(0)).toString());\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorSlashesRequest();\n message.validatorAddress = object.validatorAddress ?? \"\";\n if (object.startingHeight !== undefined && object.startingHeight !== null) {\n message.startingHeight = BigInt(object.startingHeight.toString());\n }\n if (object.endingHeight !== undefined && object.endingHeight !== null) {\n message.endingHeight = BigInt(object.endingHeight.toString());\n }\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryValidatorSlashesResponse() {\n return {\n slashes: [],\n pagination: undefined,\n };\n}\nexports.QueryValidatorSlashesResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryValidatorSlashesResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.slashes) {\n distribution_1.ValidatorSlashEvent.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorSlashesResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.slashes.push(distribution_1.ValidatorSlashEvent.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorSlashesResponse();\n if (Array.isArray(object?.slashes))\n obj.slashes = object.slashes.map((e) => distribution_1.ValidatorSlashEvent.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.slashes) {\n obj.slashes = message.slashes.map((e) => (e ? distribution_1.ValidatorSlashEvent.toJSON(e) : undefined));\n }\n else {\n obj.slashes = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorSlashesResponse();\n message.slashes = object.slashes?.map((e) => distribution_1.ValidatorSlashEvent.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDelegationRewardsRequest() {\n return {\n delegatorAddress: \"\",\n validatorAddress: \"\",\n };\n}\nexports.QueryDelegationRewardsRequest = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryDelegationRewardsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegationRewardsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegationRewardsRequest();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegationRewardsRequest();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryDelegationRewardsResponse() {\n return {\n rewards: [],\n };\n}\nexports.QueryDelegationRewardsResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryDelegationRewardsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.rewards) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegationRewardsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegationRewardsResponse();\n if (Array.isArray(object?.rewards))\n obj.rewards = object.rewards.map((e) => coin_1.DecCoin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.rewards) {\n obj.rewards = message.rewards.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.rewards = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegationRewardsResponse();\n message.rewards = object.rewards?.map((e) => coin_1.DecCoin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseQueryDelegationTotalRewardsRequest() {\n return {\n delegatorAddress: \"\",\n };\n}\nexports.QueryDelegationTotalRewardsRequest = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryDelegationTotalRewardsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegationTotalRewardsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegationTotalRewardsRequest();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegationTotalRewardsRequest();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryDelegationTotalRewardsResponse() {\n return {\n rewards: [],\n total: [],\n };\n}\nexports.QueryDelegationTotalRewardsResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryDelegationTotalRewardsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.rewards) {\n distribution_1.DelegationDelegatorReward.encode(v, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.total) {\n coin_1.DecCoin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegationTotalRewardsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards.push(distribution_1.DelegationDelegatorReward.decode(reader, reader.uint32()));\n break;\n case 2:\n message.total.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegationTotalRewardsResponse();\n if (Array.isArray(object?.rewards))\n obj.rewards = object.rewards.map((e) => distribution_1.DelegationDelegatorReward.fromJSON(e));\n if (Array.isArray(object?.total))\n obj.total = object.total.map((e) => coin_1.DecCoin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.rewards) {\n obj.rewards = message.rewards.map((e) => (e ? distribution_1.DelegationDelegatorReward.toJSON(e) : undefined));\n }\n else {\n obj.rewards = [];\n }\n if (message.total) {\n obj.total = message.total.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.total = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegationTotalRewardsResponse();\n message.rewards = object.rewards?.map((e) => distribution_1.DelegationDelegatorReward.fromPartial(e)) || [];\n message.total = object.total?.map((e) => coin_1.DecCoin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseQueryDelegatorValidatorsRequest() {\n return {\n delegatorAddress: \"\",\n };\n}\nexports.QueryDelegatorValidatorsRequest = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryDelegatorValidatorsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorValidatorsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorValidatorsRequest();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorValidatorsRequest();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryDelegatorValidatorsResponse() {\n return {\n validators: [],\n };\n}\nexports.QueryDelegatorValidatorsResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryDelegatorValidatorsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.validators) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorValidatorsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validators.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorValidatorsResponse();\n if (Array.isArray(object?.validators))\n obj.validators = object.validators.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.validators) {\n obj.validators = message.validators.map((e) => e);\n }\n else {\n obj.validators = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorValidatorsResponse();\n message.validators = object.validators?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseQueryDelegatorWithdrawAddressRequest() {\n return {\n delegatorAddress: \"\",\n };\n}\nexports.QueryDelegatorWithdrawAddressRequest = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryDelegatorWithdrawAddressRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorWithdrawAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorWithdrawAddressRequest();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorWithdrawAddressRequest();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryDelegatorWithdrawAddressResponse() {\n return {\n withdrawAddress: \"\",\n };\n}\nexports.QueryDelegatorWithdrawAddressResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryDelegatorWithdrawAddressResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.withdrawAddress !== \"\") {\n writer.uint32(10).string(message.withdrawAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorWithdrawAddressResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.withdrawAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorWithdrawAddressResponse();\n if ((0, helpers_1.isSet)(object.withdrawAddress))\n obj.withdrawAddress = String(object.withdrawAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.withdrawAddress !== undefined && (obj.withdrawAddress = message.withdrawAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorWithdrawAddressResponse();\n message.withdrawAddress = object.withdrawAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryCommunityPoolRequest() {\n return {};\n}\nexports.QueryCommunityPoolRequest = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryCommunityPoolRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryCommunityPoolRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryCommunityPoolRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryCommunityPoolRequest();\n return message;\n },\n};\nfunction createBaseQueryCommunityPoolResponse() {\n return {\n pool: [],\n };\n}\nexports.QueryCommunityPoolResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryCommunityPoolResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.pool) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryCommunityPoolResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pool.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryCommunityPoolResponse();\n if (Array.isArray(object?.pool))\n obj.pool = object.pool.map((e) => coin_1.DecCoin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.pool) {\n obj.pool = message.pool.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.pool = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryCommunityPoolResponse();\n message.pool = object.pool?.map((e) => coin_1.DecCoin.fromPartial(e)) || [];\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Params = this.Params.bind(this);\n this.ValidatorDistributionInfo = this.ValidatorDistributionInfo.bind(this);\n this.ValidatorOutstandingRewards = this.ValidatorOutstandingRewards.bind(this);\n this.ValidatorCommission = this.ValidatorCommission.bind(this);\n this.ValidatorSlashes = this.ValidatorSlashes.bind(this);\n this.DelegationRewards = this.DelegationRewards.bind(this);\n this.DelegationTotalRewards = this.DelegationTotalRewards.bind(this);\n this.DelegatorValidators = this.DelegatorValidators.bind(this);\n this.DelegatorWithdrawAddress = this.DelegatorWithdrawAddress.bind(this);\n this.CommunityPool = this.CommunityPool.bind(this);\n }\n Params(request = {}) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n ValidatorDistributionInfo(request) {\n const data = exports.QueryValidatorDistributionInfoRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"ValidatorDistributionInfo\", data);\n return promise.then((data) => exports.QueryValidatorDistributionInfoResponse.decode(new binary_1.BinaryReader(data)));\n }\n ValidatorOutstandingRewards(request) {\n const data = exports.QueryValidatorOutstandingRewardsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"ValidatorOutstandingRewards\", data);\n return promise.then((data) => exports.QueryValidatorOutstandingRewardsResponse.decode(new binary_1.BinaryReader(data)));\n }\n ValidatorCommission(request) {\n const data = exports.QueryValidatorCommissionRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"ValidatorCommission\", data);\n return promise.then((data) => exports.QueryValidatorCommissionResponse.decode(new binary_1.BinaryReader(data)));\n }\n ValidatorSlashes(request) {\n const data = exports.QueryValidatorSlashesRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"ValidatorSlashes\", data);\n return promise.then((data) => exports.QueryValidatorSlashesResponse.decode(new binary_1.BinaryReader(data)));\n }\n DelegationRewards(request) {\n const data = exports.QueryDelegationRewardsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"DelegationRewards\", data);\n return promise.then((data) => exports.QueryDelegationRewardsResponse.decode(new binary_1.BinaryReader(data)));\n }\n DelegationTotalRewards(request) {\n const data = exports.QueryDelegationTotalRewardsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"DelegationTotalRewards\", data);\n return promise.then((data) => exports.QueryDelegationTotalRewardsResponse.decode(new binary_1.BinaryReader(data)));\n }\n DelegatorValidators(request) {\n const data = exports.QueryDelegatorValidatorsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"DelegatorValidators\", data);\n return promise.then((data) => exports.QueryDelegatorValidatorsResponse.decode(new binary_1.BinaryReader(data)));\n }\n DelegatorWithdrawAddress(request) {\n const data = exports.QueryDelegatorWithdrawAddressRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"DelegatorWithdrawAddress\", data);\n return promise.then((data) => exports.QueryDelegatorWithdrawAddressResponse.decode(new binary_1.BinaryReader(data)));\n }\n CommunityPool(request = {}) {\n const data = exports.QueryCommunityPoolRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"CommunityPool\", data);\n return promise.then((data) => exports.QueryCommunityPoolResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgCommunityPoolSpendResponse = exports.MsgCommunityPoolSpend = exports.MsgUpdateParamsResponse = exports.MsgUpdateParams = exports.MsgFundCommunityPoolResponse = exports.MsgFundCommunityPool = exports.MsgWithdrawValidatorCommissionResponse = exports.MsgWithdrawValidatorCommission = exports.MsgWithdrawDelegatorRewardResponse = exports.MsgWithdrawDelegatorReward = exports.MsgSetWithdrawAddressResponse = exports.MsgSetWithdrawAddress = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst distribution_1 = require(\"./distribution\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.distribution.v1beta1\";\nfunction createBaseMsgSetWithdrawAddress() {\n return {\n delegatorAddress: \"\",\n withdrawAddress: \"\",\n };\n}\nexports.MsgSetWithdrawAddress = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgSetWithdrawAddress\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.withdrawAddress !== \"\") {\n writer.uint32(18).string(message.withdrawAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSetWithdrawAddress();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.withdrawAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgSetWithdrawAddress();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.withdrawAddress))\n obj.withdrawAddress = String(object.withdrawAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.withdrawAddress !== undefined && (obj.withdrawAddress = message.withdrawAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgSetWithdrawAddress();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.withdrawAddress = object.withdrawAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgSetWithdrawAddressResponse() {\n return {};\n}\nexports.MsgSetWithdrawAddressResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgSetWithdrawAddressResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSetWithdrawAddressResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgSetWithdrawAddressResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgSetWithdrawAddressResponse();\n return message;\n },\n};\nfunction createBaseMsgWithdrawDelegatorReward() {\n return {\n delegatorAddress: \"\",\n validatorAddress: \"\",\n };\n}\nexports.MsgWithdrawDelegatorReward = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgWithdrawDelegatorReward();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgWithdrawDelegatorReward();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgWithdrawDelegatorReward();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgWithdrawDelegatorRewardResponse() {\n return {\n amount: [],\n };\n}\nexports.MsgWithdrawDelegatorRewardResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorRewardResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgWithdrawDelegatorRewardResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgWithdrawDelegatorRewardResponse();\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgWithdrawDelegatorRewardResponse();\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgWithdrawValidatorCommission() {\n return {\n validatorAddress: \"\",\n };\n}\nexports.MsgWithdrawValidatorCommission = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgWithdrawValidatorCommission();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgWithdrawValidatorCommission();\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgWithdrawValidatorCommission();\n message.validatorAddress = object.validatorAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgWithdrawValidatorCommissionResponse() {\n return {\n amount: [],\n };\n}\nexports.MsgWithdrawValidatorCommissionResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommissionResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgWithdrawValidatorCommissionResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgWithdrawValidatorCommissionResponse();\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgWithdrawValidatorCommissionResponse();\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgFundCommunityPool() {\n return {\n amount: [],\n depositor: \"\",\n };\n}\nexports.MsgFundCommunityPool = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgFundCommunityPool\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgFundCommunityPool();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.depositor = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgFundCommunityPool();\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.depositor))\n obj.depositor = String(object.depositor);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n message.depositor !== undefined && (obj.depositor = message.depositor);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgFundCommunityPool();\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n message.depositor = object.depositor ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgFundCommunityPoolResponse() {\n return {};\n}\nexports.MsgFundCommunityPoolResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgFundCommunityPoolResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgFundCommunityPoolResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgFundCommunityPoolResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgFundCommunityPoolResponse();\n return message;\n },\n};\nfunction createBaseMsgUpdateParams() {\n return {\n authority: \"\",\n params: distribution_1.Params.fromPartial({}),\n };\n}\nexports.MsgUpdateParams = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgUpdateParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.authority !== \"\") {\n writer.uint32(10).string(message.authority);\n }\n if (message.params !== undefined) {\n distribution_1.Params.encode(message.params, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.authority = reader.string();\n break;\n case 2:\n message.params = distribution_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpdateParams();\n if ((0, helpers_1.isSet)(object.authority))\n obj.authority = String(object.authority);\n if ((0, helpers_1.isSet)(object.params))\n obj.params = distribution_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.authority !== undefined && (obj.authority = message.authority);\n message.params !== undefined && (obj.params = message.params ? distribution_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpdateParams();\n message.authority = object.authority ?? \"\";\n if (object.params !== undefined && object.params !== null) {\n message.params = distribution_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nfunction createBaseMsgUpdateParamsResponse() {\n return {};\n}\nexports.MsgUpdateParamsResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgUpdateParamsResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpdateParamsResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpdateParamsResponse();\n return message;\n },\n};\nfunction createBaseMsgCommunityPoolSpend() {\n return {\n authority: \"\",\n recipient: \"\",\n amount: [],\n };\n}\nexports.MsgCommunityPoolSpend = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgCommunityPoolSpend\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.authority !== \"\") {\n writer.uint32(10).string(message.authority);\n }\n if (message.recipient !== \"\") {\n writer.uint32(18).string(message.recipient);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCommunityPoolSpend();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.authority = reader.string();\n break;\n case 2:\n message.recipient = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCommunityPoolSpend();\n if ((0, helpers_1.isSet)(object.authority))\n obj.authority = String(object.authority);\n if ((0, helpers_1.isSet)(object.recipient))\n obj.recipient = String(object.recipient);\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.authority !== undefined && (obj.authority = message.authority);\n message.recipient !== undefined && (obj.recipient = message.recipient);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCommunityPoolSpend();\n message.authority = object.authority ?? \"\";\n message.recipient = object.recipient ?? \"\";\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgCommunityPoolSpendResponse() {\n return {};\n}\nexports.MsgCommunityPoolSpendResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgCommunityPoolSpendResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCommunityPoolSpendResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgCommunityPoolSpendResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgCommunityPoolSpendResponse();\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.SetWithdrawAddress = this.SetWithdrawAddress.bind(this);\n this.WithdrawDelegatorReward = this.WithdrawDelegatorReward.bind(this);\n this.WithdrawValidatorCommission = this.WithdrawValidatorCommission.bind(this);\n this.FundCommunityPool = this.FundCommunityPool.bind(this);\n this.UpdateParams = this.UpdateParams.bind(this);\n this.CommunityPoolSpend = this.CommunityPoolSpend.bind(this);\n }\n SetWithdrawAddress(request) {\n const data = exports.MsgSetWithdrawAddress.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"SetWithdrawAddress\", data);\n return promise.then((data) => exports.MsgSetWithdrawAddressResponse.decode(new binary_1.BinaryReader(data)));\n }\n WithdrawDelegatorReward(request) {\n const data = exports.MsgWithdrawDelegatorReward.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"WithdrawDelegatorReward\", data);\n return promise.then((data) => exports.MsgWithdrawDelegatorRewardResponse.decode(new binary_1.BinaryReader(data)));\n }\n WithdrawValidatorCommission(request) {\n const data = exports.MsgWithdrawValidatorCommission.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"WithdrawValidatorCommission\", data);\n return promise.then((data) => exports.MsgWithdrawValidatorCommissionResponse.decode(new binary_1.BinaryReader(data)));\n }\n FundCommunityPool(request) {\n const data = exports.MsgFundCommunityPool.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"FundCommunityPool\", data);\n return promise.then((data) => exports.MsgFundCommunityPoolResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpdateParams(request) {\n const data = exports.MsgUpdateParams.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"UpdateParams\", data);\n return promise.then((data) => exports.MsgUpdateParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n CommunityPoolSpend(request) {\n const data = exports.MsgCommunityPoolSpend.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"CommunityPoolSpend\", data);\n return promise.then((data) => exports.MsgCommunityPoolSpendResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Grant = exports.AllowedMsgAllowance = exports.PeriodicAllowance = exports.BasicAllowance = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst duration_1 = require(\"../../../google/protobuf/duration\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.feegrant.v1beta1\";\nfunction createBaseBasicAllowance() {\n return {\n spendLimit: [],\n expiration: undefined,\n };\n}\nexports.BasicAllowance = {\n typeUrl: \"/cosmos.feegrant.v1beta1.BasicAllowance\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.spendLimit) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.expiration !== undefined) {\n timestamp_1.Timestamp.encode(message.expiration, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBasicAllowance();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.spendLimit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.expiration = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBasicAllowance();\n if (Array.isArray(object?.spendLimit))\n obj.spendLimit = object.spendLimit.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.expiration))\n obj.expiration = (0, helpers_1.fromJsonTimestamp)(object.expiration);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.spendLimit) {\n obj.spendLimit = message.spendLimit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.spendLimit = [];\n }\n message.expiration !== undefined && (obj.expiration = (0, helpers_1.fromTimestamp)(message.expiration).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBasicAllowance();\n message.spendLimit = object.spendLimit?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.expiration !== undefined && object.expiration !== null) {\n message.expiration = timestamp_1.Timestamp.fromPartial(object.expiration);\n }\n return message;\n },\n};\nfunction createBasePeriodicAllowance() {\n return {\n basic: exports.BasicAllowance.fromPartial({}),\n period: duration_1.Duration.fromPartial({}),\n periodSpendLimit: [],\n periodCanSpend: [],\n periodReset: timestamp_1.Timestamp.fromPartial({}),\n };\n}\nexports.PeriodicAllowance = {\n typeUrl: \"/cosmos.feegrant.v1beta1.PeriodicAllowance\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.basic !== undefined) {\n exports.BasicAllowance.encode(message.basic, writer.uint32(10).fork()).ldelim();\n }\n if (message.period !== undefined) {\n duration_1.Duration.encode(message.period, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.periodSpendLimit) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.periodCanSpend) {\n coin_1.Coin.encode(v, writer.uint32(34).fork()).ldelim();\n }\n if (message.periodReset !== undefined) {\n timestamp_1.Timestamp.encode(message.periodReset, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePeriodicAllowance();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.basic = exports.BasicAllowance.decode(reader, reader.uint32());\n break;\n case 2:\n message.period = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 3:\n message.periodSpendLimit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 4:\n message.periodCanSpend.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 5:\n message.periodReset = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePeriodicAllowance();\n if ((0, helpers_1.isSet)(object.basic))\n obj.basic = exports.BasicAllowance.fromJSON(object.basic);\n if ((0, helpers_1.isSet)(object.period))\n obj.period = duration_1.Duration.fromJSON(object.period);\n if (Array.isArray(object?.periodSpendLimit))\n obj.periodSpendLimit = object.periodSpendLimit.map((e) => coin_1.Coin.fromJSON(e));\n if (Array.isArray(object?.periodCanSpend))\n obj.periodCanSpend = object.periodCanSpend.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.periodReset))\n obj.periodReset = (0, helpers_1.fromJsonTimestamp)(object.periodReset);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.basic !== undefined &&\n (obj.basic = message.basic ? exports.BasicAllowance.toJSON(message.basic) : undefined);\n message.period !== undefined &&\n (obj.period = message.period ? duration_1.Duration.toJSON(message.period) : undefined);\n if (message.periodSpendLimit) {\n obj.periodSpendLimit = message.periodSpendLimit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.periodSpendLimit = [];\n }\n if (message.periodCanSpend) {\n obj.periodCanSpend = message.periodCanSpend.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.periodCanSpend = [];\n }\n message.periodReset !== undefined && (obj.periodReset = (0, helpers_1.fromTimestamp)(message.periodReset).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBasePeriodicAllowance();\n if (object.basic !== undefined && object.basic !== null) {\n message.basic = exports.BasicAllowance.fromPartial(object.basic);\n }\n if (object.period !== undefined && object.period !== null) {\n message.period = duration_1.Duration.fromPartial(object.period);\n }\n message.periodSpendLimit = object.periodSpendLimit?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n message.periodCanSpend = object.periodCanSpend?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.periodReset !== undefined && object.periodReset !== null) {\n message.periodReset = timestamp_1.Timestamp.fromPartial(object.periodReset);\n }\n return message;\n },\n};\nfunction createBaseAllowedMsgAllowance() {\n return {\n allowance: undefined,\n allowedMessages: [],\n };\n}\nexports.AllowedMsgAllowance = {\n typeUrl: \"/cosmos.feegrant.v1beta1.AllowedMsgAllowance\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.allowance !== undefined) {\n any_1.Any.encode(message.allowance, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.allowedMessages) {\n writer.uint32(18).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAllowedMsgAllowance();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.allowance = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.allowedMessages.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseAllowedMsgAllowance();\n if ((0, helpers_1.isSet)(object.allowance))\n obj.allowance = any_1.Any.fromJSON(object.allowance);\n if (Array.isArray(object?.allowedMessages))\n obj.allowedMessages = object.allowedMessages.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.allowance !== undefined &&\n (obj.allowance = message.allowance ? any_1.Any.toJSON(message.allowance) : undefined);\n if (message.allowedMessages) {\n obj.allowedMessages = message.allowedMessages.map((e) => e);\n }\n else {\n obj.allowedMessages = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseAllowedMsgAllowance();\n if (object.allowance !== undefined && object.allowance !== null) {\n message.allowance = any_1.Any.fromPartial(object.allowance);\n }\n message.allowedMessages = object.allowedMessages?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseGrant() {\n return {\n granter: \"\",\n grantee: \"\",\n allowance: undefined,\n };\n}\nexports.Grant = {\n typeUrl: \"/cosmos.feegrant.v1beta1.Grant\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.allowance !== undefined) {\n any_1.Any.encode(message.allowance, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGrant();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.allowance = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGrant();\n if ((0, helpers_1.isSet)(object.granter))\n obj.granter = String(object.granter);\n if ((0, helpers_1.isSet)(object.grantee))\n obj.grantee = String(object.grantee);\n if ((0, helpers_1.isSet)(object.allowance))\n obj.allowance = any_1.Any.fromJSON(object.allowance);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.allowance !== undefined &&\n (obj.allowance = message.allowance ? any_1.Any.toJSON(message.allowance) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGrant();\n message.granter = object.granter ?? \"\";\n message.grantee = object.grantee ?? \"\";\n if (object.allowance !== undefined && object.allowance !== null) {\n message.allowance = any_1.Any.fromPartial(object.allowance);\n }\n return message;\n },\n};\n//# sourceMappingURL=feegrant.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryAllowancesByGranterResponse = exports.QueryAllowancesByGranterRequest = exports.QueryAllowancesResponse = exports.QueryAllowancesRequest = exports.QueryAllowanceResponse = exports.QueryAllowanceRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst pagination_1 = require(\"../../base/query/v1beta1/pagination\");\nconst feegrant_1 = require(\"./feegrant\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.feegrant.v1beta1\";\nfunction createBaseQueryAllowanceRequest() {\n return {\n granter: \"\",\n grantee: \"\",\n };\n}\nexports.QueryAllowanceRequest = {\n typeUrl: \"/cosmos.feegrant.v1beta1.QueryAllowanceRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllowanceRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAllowanceRequest();\n if ((0, helpers_1.isSet)(object.granter))\n obj.granter = String(object.granter);\n if ((0, helpers_1.isSet)(object.grantee))\n obj.grantee = String(object.grantee);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAllowanceRequest();\n message.granter = object.granter ?? \"\";\n message.grantee = object.grantee ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryAllowanceResponse() {\n return {\n allowance: undefined,\n };\n}\nexports.QueryAllowanceResponse = {\n typeUrl: \"/cosmos.feegrant.v1beta1.QueryAllowanceResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.allowance !== undefined) {\n feegrant_1.Grant.encode(message.allowance, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllowanceResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.allowance = feegrant_1.Grant.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAllowanceResponse();\n if ((0, helpers_1.isSet)(object.allowance))\n obj.allowance = feegrant_1.Grant.fromJSON(object.allowance);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.allowance !== undefined &&\n (obj.allowance = message.allowance ? feegrant_1.Grant.toJSON(message.allowance) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAllowanceResponse();\n if (object.allowance !== undefined && object.allowance !== null) {\n message.allowance = feegrant_1.Grant.fromPartial(object.allowance);\n }\n return message;\n },\n};\nfunction createBaseQueryAllowancesRequest() {\n return {\n grantee: \"\",\n pagination: undefined,\n };\n}\nexports.QueryAllowancesRequest = {\n typeUrl: \"/cosmos.feegrant.v1beta1.QueryAllowancesRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.grantee !== \"\") {\n writer.uint32(10).string(message.grantee);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllowancesRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.grantee = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAllowancesRequest();\n if ((0, helpers_1.isSet)(object.grantee))\n obj.grantee = String(object.grantee);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAllowancesRequest();\n message.grantee = object.grantee ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryAllowancesResponse() {\n return {\n allowances: [],\n pagination: undefined,\n };\n}\nexports.QueryAllowancesResponse = {\n typeUrl: \"/cosmos.feegrant.v1beta1.QueryAllowancesResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.allowances) {\n feegrant_1.Grant.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllowancesResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.allowances.push(feegrant_1.Grant.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAllowancesResponse();\n if (Array.isArray(object?.allowances))\n obj.allowances = object.allowances.map((e) => feegrant_1.Grant.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.allowances) {\n obj.allowances = message.allowances.map((e) => (e ? feegrant_1.Grant.toJSON(e) : undefined));\n }\n else {\n obj.allowances = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAllowancesResponse();\n message.allowances = object.allowances?.map((e) => feegrant_1.Grant.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryAllowancesByGranterRequest() {\n return {\n granter: \"\",\n pagination: undefined,\n };\n}\nexports.QueryAllowancesByGranterRequest = {\n typeUrl: \"/cosmos.feegrant.v1beta1.QueryAllowancesByGranterRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllowancesByGranterRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAllowancesByGranterRequest();\n if ((0, helpers_1.isSet)(object.granter))\n obj.granter = String(object.granter);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAllowancesByGranterRequest();\n message.granter = object.granter ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryAllowancesByGranterResponse() {\n return {\n allowances: [],\n pagination: undefined,\n };\n}\nexports.QueryAllowancesByGranterResponse = {\n typeUrl: \"/cosmos.feegrant.v1beta1.QueryAllowancesByGranterResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.allowances) {\n feegrant_1.Grant.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllowancesByGranterResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.allowances.push(feegrant_1.Grant.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAllowancesByGranterResponse();\n if (Array.isArray(object?.allowances))\n obj.allowances = object.allowances.map((e) => feegrant_1.Grant.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.allowances) {\n obj.allowances = message.allowances.map((e) => (e ? feegrant_1.Grant.toJSON(e) : undefined));\n }\n else {\n obj.allowances = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAllowancesByGranterResponse();\n message.allowances = object.allowances?.map((e) => feegrant_1.Grant.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Allowance = this.Allowance.bind(this);\n this.Allowances = this.Allowances.bind(this);\n this.AllowancesByGranter = this.AllowancesByGranter.bind(this);\n }\n Allowance(request) {\n const data = exports.QueryAllowanceRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.feegrant.v1beta1.Query\", \"Allowance\", data);\n return promise.then((data) => exports.QueryAllowanceResponse.decode(new binary_1.BinaryReader(data)));\n }\n Allowances(request) {\n const data = exports.QueryAllowancesRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.feegrant.v1beta1.Query\", \"Allowances\", data);\n return promise.then((data) => exports.QueryAllowancesResponse.decode(new binary_1.BinaryReader(data)));\n }\n AllowancesByGranter(request) {\n const data = exports.QueryAllowancesByGranterRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.feegrant.v1beta1.Query\", \"AllowancesByGranter\", data);\n return promise.then((data) => exports.QueryAllowancesByGranterResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgRevokeAllowanceResponse = exports.MsgRevokeAllowance = exports.MsgGrantAllowanceResponse = exports.MsgGrantAllowance = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.feegrant.v1beta1\";\nfunction createBaseMsgGrantAllowance() {\n return {\n granter: \"\",\n grantee: \"\",\n allowance: undefined,\n };\n}\nexports.MsgGrantAllowance = {\n typeUrl: \"/cosmos.feegrant.v1beta1.MsgGrantAllowance\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.allowance !== undefined) {\n any_1.Any.encode(message.allowance, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGrantAllowance();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.allowance = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgGrantAllowance();\n if ((0, helpers_1.isSet)(object.granter))\n obj.granter = String(object.granter);\n if ((0, helpers_1.isSet)(object.grantee))\n obj.grantee = String(object.grantee);\n if ((0, helpers_1.isSet)(object.allowance))\n obj.allowance = any_1.Any.fromJSON(object.allowance);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.allowance !== undefined &&\n (obj.allowance = message.allowance ? any_1.Any.toJSON(message.allowance) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgGrantAllowance();\n message.granter = object.granter ?? \"\";\n message.grantee = object.grantee ?? \"\";\n if (object.allowance !== undefined && object.allowance !== null) {\n message.allowance = any_1.Any.fromPartial(object.allowance);\n }\n return message;\n },\n};\nfunction createBaseMsgGrantAllowanceResponse() {\n return {};\n}\nexports.MsgGrantAllowanceResponse = {\n typeUrl: \"/cosmos.feegrant.v1beta1.MsgGrantAllowanceResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGrantAllowanceResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgGrantAllowanceResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgGrantAllowanceResponse();\n return message;\n },\n};\nfunction createBaseMsgRevokeAllowance() {\n return {\n granter: \"\",\n grantee: \"\",\n };\n}\nexports.MsgRevokeAllowance = {\n typeUrl: \"/cosmos.feegrant.v1beta1.MsgRevokeAllowance\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgRevokeAllowance();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgRevokeAllowance();\n if ((0, helpers_1.isSet)(object.granter))\n obj.granter = String(object.granter);\n if ((0, helpers_1.isSet)(object.grantee))\n obj.grantee = String(object.grantee);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgRevokeAllowance();\n message.granter = object.granter ?? \"\";\n message.grantee = object.grantee ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgRevokeAllowanceResponse() {\n return {};\n}\nexports.MsgRevokeAllowanceResponse = {\n typeUrl: \"/cosmos.feegrant.v1beta1.MsgRevokeAllowanceResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgRevokeAllowanceResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgRevokeAllowanceResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgRevokeAllowanceResponse();\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.GrantAllowance = this.GrantAllowance.bind(this);\n this.RevokeAllowance = this.RevokeAllowance.bind(this);\n }\n GrantAllowance(request) {\n const data = exports.MsgGrantAllowance.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.feegrant.v1beta1.Msg\", \"GrantAllowance\", data);\n return promise.then((data) => exports.MsgGrantAllowanceResponse.decode(new binary_1.BinaryReader(data)));\n }\n RevokeAllowance(request) {\n const data = exports.MsgRevokeAllowance.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.feegrant.v1beta1.Msg\", \"RevokeAllowance\", data);\n return promise.then((data) => exports.MsgRevokeAllowanceResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.TallyParams = exports.VotingParams = exports.DepositParams = exports.Vote = exports.TallyResult = exports.Proposal = exports.Deposit = exports.WeightedVoteOption = exports.proposalStatusToJSON = exports.proposalStatusFromJSON = exports.ProposalStatus = exports.voteOptionToJSON = exports.voteOptionFromJSON = exports.VoteOption = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst duration_1 = require(\"../../../google/protobuf/duration\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.gov.v1\";\n/** VoteOption enumerates the valid vote options for a given governance proposal. */\nvar VoteOption;\n(function (VoteOption) {\n /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_UNSPECIFIED\"] = 0] = \"VOTE_OPTION_UNSPECIFIED\";\n /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_YES\"] = 1] = \"VOTE_OPTION_YES\";\n /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_ABSTAIN\"] = 2] = \"VOTE_OPTION_ABSTAIN\";\n /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_NO\"] = 3] = \"VOTE_OPTION_NO\";\n /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_NO_WITH_VETO\"] = 4] = \"VOTE_OPTION_NO_WITH_VETO\";\n VoteOption[VoteOption[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(VoteOption || (exports.VoteOption = VoteOption = {}));\nfunction voteOptionFromJSON(object) {\n switch (object) {\n case 0:\n case \"VOTE_OPTION_UNSPECIFIED\":\n return VoteOption.VOTE_OPTION_UNSPECIFIED;\n case 1:\n case \"VOTE_OPTION_YES\":\n return VoteOption.VOTE_OPTION_YES;\n case 2:\n case \"VOTE_OPTION_ABSTAIN\":\n return VoteOption.VOTE_OPTION_ABSTAIN;\n case 3:\n case \"VOTE_OPTION_NO\":\n return VoteOption.VOTE_OPTION_NO;\n case 4:\n case \"VOTE_OPTION_NO_WITH_VETO\":\n return VoteOption.VOTE_OPTION_NO_WITH_VETO;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return VoteOption.UNRECOGNIZED;\n }\n}\nexports.voteOptionFromJSON = voteOptionFromJSON;\nfunction voteOptionToJSON(object) {\n switch (object) {\n case VoteOption.VOTE_OPTION_UNSPECIFIED:\n return \"VOTE_OPTION_UNSPECIFIED\";\n case VoteOption.VOTE_OPTION_YES:\n return \"VOTE_OPTION_YES\";\n case VoteOption.VOTE_OPTION_ABSTAIN:\n return \"VOTE_OPTION_ABSTAIN\";\n case VoteOption.VOTE_OPTION_NO:\n return \"VOTE_OPTION_NO\";\n case VoteOption.VOTE_OPTION_NO_WITH_VETO:\n return \"VOTE_OPTION_NO_WITH_VETO\";\n case VoteOption.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.voteOptionToJSON = voteOptionToJSON;\n/** ProposalStatus enumerates the valid statuses of a proposal. */\nvar ProposalStatus;\n(function (ProposalStatus) {\n /** PROPOSAL_STATUS_UNSPECIFIED - PROPOSAL_STATUS_UNSPECIFIED defines the default proposal status. */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_UNSPECIFIED\"] = 0] = \"PROPOSAL_STATUS_UNSPECIFIED\";\n /**\n * PROPOSAL_STATUS_DEPOSIT_PERIOD - PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit\n * period.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_DEPOSIT_PERIOD\"] = 1] = \"PROPOSAL_STATUS_DEPOSIT_PERIOD\";\n /**\n * PROPOSAL_STATUS_VOTING_PERIOD - PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting\n * period.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_VOTING_PERIOD\"] = 2] = \"PROPOSAL_STATUS_VOTING_PERIOD\";\n /**\n * PROPOSAL_STATUS_PASSED - PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has\n * passed.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_PASSED\"] = 3] = \"PROPOSAL_STATUS_PASSED\";\n /**\n * PROPOSAL_STATUS_REJECTED - PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has\n * been rejected.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_REJECTED\"] = 4] = \"PROPOSAL_STATUS_REJECTED\";\n /**\n * PROPOSAL_STATUS_FAILED - PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has\n * failed.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_FAILED\"] = 5] = \"PROPOSAL_STATUS_FAILED\";\n ProposalStatus[ProposalStatus[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ProposalStatus || (exports.ProposalStatus = ProposalStatus = {}));\nfunction proposalStatusFromJSON(object) {\n switch (object) {\n case 0:\n case \"PROPOSAL_STATUS_UNSPECIFIED\":\n return ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED;\n case 1:\n case \"PROPOSAL_STATUS_DEPOSIT_PERIOD\":\n return ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD;\n case 2:\n case \"PROPOSAL_STATUS_VOTING_PERIOD\":\n return ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD;\n case 3:\n case \"PROPOSAL_STATUS_PASSED\":\n return ProposalStatus.PROPOSAL_STATUS_PASSED;\n case 4:\n case \"PROPOSAL_STATUS_REJECTED\":\n return ProposalStatus.PROPOSAL_STATUS_REJECTED;\n case 5:\n case \"PROPOSAL_STATUS_FAILED\":\n return ProposalStatus.PROPOSAL_STATUS_FAILED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ProposalStatus.UNRECOGNIZED;\n }\n}\nexports.proposalStatusFromJSON = proposalStatusFromJSON;\nfunction proposalStatusToJSON(object) {\n switch (object) {\n case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED:\n return \"PROPOSAL_STATUS_UNSPECIFIED\";\n case ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD:\n return \"PROPOSAL_STATUS_DEPOSIT_PERIOD\";\n case ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD:\n return \"PROPOSAL_STATUS_VOTING_PERIOD\";\n case ProposalStatus.PROPOSAL_STATUS_PASSED:\n return \"PROPOSAL_STATUS_PASSED\";\n case ProposalStatus.PROPOSAL_STATUS_REJECTED:\n return \"PROPOSAL_STATUS_REJECTED\";\n case ProposalStatus.PROPOSAL_STATUS_FAILED:\n return \"PROPOSAL_STATUS_FAILED\";\n case ProposalStatus.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.proposalStatusToJSON = proposalStatusToJSON;\nfunction createBaseWeightedVoteOption() {\n return {\n option: 0,\n weight: \"\",\n };\n}\nexports.WeightedVoteOption = {\n typeUrl: \"/cosmos.gov.v1.WeightedVoteOption\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.option !== 0) {\n writer.uint32(8).int32(message.option);\n }\n if (message.weight !== \"\") {\n writer.uint32(18).string(message.weight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseWeightedVoteOption();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.option = reader.int32();\n break;\n case 2:\n message.weight = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseWeightedVoteOption();\n if ((0, helpers_1.isSet)(object.option))\n obj.option = voteOptionFromJSON(object.option);\n if ((0, helpers_1.isSet)(object.weight))\n obj.weight = String(object.weight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.option !== undefined && (obj.option = voteOptionToJSON(message.option));\n message.weight !== undefined && (obj.weight = message.weight);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseWeightedVoteOption();\n message.option = object.option ?? 0;\n message.weight = object.weight ?? \"\";\n return message;\n },\n};\nfunction createBaseDeposit() {\n return {\n proposalId: BigInt(0),\n depositor: \"\",\n amount: [],\n };\n}\nexports.Deposit = {\n typeUrl: \"/cosmos.gov.v1.Deposit\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDeposit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.depositor = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDeposit();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.depositor))\n obj.depositor = String(object.depositor);\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.depositor !== undefined && (obj.depositor = message.depositor);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDeposit();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.depositor = object.depositor ?? \"\";\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseProposal() {\n return {\n id: BigInt(0),\n messages: [],\n status: 0,\n finalTallyResult: undefined,\n submitTime: undefined,\n depositEndTime: undefined,\n totalDeposit: [],\n votingStartTime: undefined,\n votingEndTime: undefined,\n metadata: \"\",\n title: \"\",\n summary: \"\",\n proposer: \"\",\n };\n}\nexports.Proposal = {\n typeUrl: \"/cosmos.gov.v1.Proposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.id !== BigInt(0)) {\n writer.uint32(8).uint64(message.id);\n }\n for (const v of message.messages) {\n any_1.Any.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.status !== 0) {\n writer.uint32(24).int32(message.status);\n }\n if (message.finalTallyResult !== undefined) {\n exports.TallyResult.encode(message.finalTallyResult, writer.uint32(34).fork()).ldelim();\n }\n if (message.submitTime !== undefined) {\n timestamp_1.Timestamp.encode(message.submitTime, writer.uint32(42).fork()).ldelim();\n }\n if (message.depositEndTime !== undefined) {\n timestamp_1.Timestamp.encode(message.depositEndTime, writer.uint32(50).fork()).ldelim();\n }\n for (const v of message.totalDeposit) {\n coin_1.Coin.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.votingStartTime !== undefined) {\n timestamp_1.Timestamp.encode(message.votingStartTime, writer.uint32(66).fork()).ldelim();\n }\n if (message.votingEndTime !== undefined) {\n timestamp_1.Timestamp.encode(message.votingEndTime, writer.uint32(74).fork()).ldelim();\n }\n if (message.metadata !== \"\") {\n writer.uint32(82).string(message.metadata);\n }\n if (message.title !== \"\") {\n writer.uint32(90).string(message.title);\n }\n if (message.summary !== \"\") {\n writer.uint32(98).string(message.summary);\n }\n if (message.proposer !== \"\") {\n writer.uint32(106).string(message.proposer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.uint64();\n break;\n case 2:\n message.messages.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 3:\n message.status = reader.int32();\n break;\n case 4:\n message.finalTallyResult = exports.TallyResult.decode(reader, reader.uint32());\n break;\n case 5:\n message.submitTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 6:\n message.depositEndTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 7:\n message.totalDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 8:\n message.votingStartTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 9:\n message.votingEndTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 10:\n message.metadata = reader.string();\n break;\n case 11:\n message.title = reader.string();\n break;\n case 12:\n message.summary = reader.string();\n break;\n case 13:\n message.proposer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseProposal();\n if ((0, helpers_1.isSet)(object.id))\n obj.id = BigInt(object.id.toString());\n if (Array.isArray(object?.messages))\n obj.messages = object.messages.map((e) => any_1.Any.fromJSON(e));\n if ((0, helpers_1.isSet)(object.status))\n obj.status = proposalStatusFromJSON(object.status);\n if ((0, helpers_1.isSet)(object.finalTallyResult))\n obj.finalTallyResult = exports.TallyResult.fromJSON(object.finalTallyResult);\n if ((0, helpers_1.isSet)(object.submitTime))\n obj.submitTime = (0, helpers_1.fromJsonTimestamp)(object.submitTime);\n if ((0, helpers_1.isSet)(object.depositEndTime))\n obj.depositEndTime = (0, helpers_1.fromJsonTimestamp)(object.depositEndTime);\n if (Array.isArray(object?.totalDeposit))\n obj.totalDeposit = object.totalDeposit.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.votingStartTime))\n obj.votingStartTime = (0, helpers_1.fromJsonTimestamp)(object.votingStartTime);\n if ((0, helpers_1.isSet)(object.votingEndTime))\n obj.votingEndTime = (0, helpers_1.fromJsonTimestamp)(object.votingEndTime);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n if ((0, helpers_1.isSet)(object.title))\n obj.title = String(object.title);\n if ((0, helpers_1.isSet)(object.summary))\n obj.summary = String(object.summary);\n if ((0, helpers_1.isSet)(object.proposer))\n obj.proposer = String(object.proposer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.id !== undefined && (obj.id = (message.id || BigInt(0)).toString());\n if (message.messages) {\n obj.messages = message.messages.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.messages = [];\n }\n message.status !== undefined && (obj.status = proposalStatusToJSON(message.status));\n message.finalTallyResult !== undefined &&\n (obj.finalTallyResult = message.finalTallyResult\n ? exports.TallyResult.toJSON(message.finalTallyResult)\n : undefined);\n message.submitTime !== undefined && (obj.submitTime = (0, helpers_1.fromTimestamp)(message.submitTime).toISOString());\n message.depositEndTime !== undefined &&\n (obj.depositEndTime = (0, helpers_1.fromTimestamp)(message.depositEndTime).toISOString());\n if (message.totalDeposit) {\n obj.totalDeposit = message.totalDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.totalDeposit = [];\n }\n message.votingStartTime !== undefined &&\n (obj.votingStartTime = (0, helpers_1.fromTimestamp)(message.votingStartTime).toISOString());\n message.votingEndTime !== undefined &&\n (obj.votingEndTime = (0, helpers_1.fromTimestamp)(message.votingEndTime).toISOString());\n message.metadata !== undefined && (obj.metadata = message.metadata);\n message.title !== undefined && (obj.title = message.title);\n message.summary !== undefined && (obj.summary = message.summary);\n message.proposer !== undefined && (obj.proposer = message.proposer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseProposal();\n if (object.id !== undefined && object.id !== null) {\n message.id = BigInt(object.id.toString());\n }\n message.messages = object.messages?.map((e) => any_1.Any.fromPartial(e)) || [];\n message.status = object.status ?? 0;\n if (object.finalTallyResult !== undefined && object.finalTallyResult !== null) {\n message.finalTallyResult = exports.TallyResult.fromPartial(object.finalTallyResult);\n }\n if (object.submitTime !== undefined && object.submitTime !== null) {\n message.submitTime = timestamp_1.Timestamp.fromPartial(object.submitTime);\n }\n if (object.depositEndTime !== undefined && object.depositEndTime !== null) {\n message.depositEndTime = timestamp_1.Timestamp.fromPartial(object.depositEndTime);\n }\n message.totalDeposit = object.totalDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.votingStartTime !== undefined && object.votingStartTime !== null) {\n message.votingStartTime = timestamp_1.Timestamp.fromPartial(object.votingStartTime);\n }\n if (object.votingEndTime !== undefined && object.votingEndTime !== null) {\n message.votingEndTime = timestamp_1.Timestamp.fromPartial(object.votingEndTime);\n }\n message.metadata = object.metadata ?? \"\";\n message.title = object.title ?? \"\";\n message.summary = object.summary ?? \"\";\n message.proposer = object.proposer ?? \"\";\n return message;\n },\n};\nfunction createBaseTallyResult() {\n return {\n yesCount: \"\",\n abstainCount: \"\",\n noCount: \"\",\n noWithVetoCount: \"\",\n };\n}\nexports.TallyResult = {\n typeUrl: \"/cosmos.gov.v1.TallyResult\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.yesCount !== \"\") {\n writer.uint32(10).string(message.yesCount);\n }\n if (message.abstainCount !== \"\") {\n writer.uint32(18).string(message.abstainCount);\n }\n if (message.noCount !== \"\") {\n writer.uint32(26).string(message.noCount);\n }\n if (message.noWithVetoCount !== \"\") {\n writer.uint32(34).string(message.noWithVetoCount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTallyResult();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.yesCount = reader.string();\n break;\n case 2:\n message.abstainCount = reader.string();\n break;\n case 3:\n message.noCount = reader.string();\n break;\n case 4:\n message.noWithVetoCount = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTallyResult();\n if ((0, helpers_1.isSet)(object.yesCount))\n obj.yesCount = String(object.yesCount);\n if ((0, helpers_1.isSet)(object.abstainCount))\n obj.abstainCount = String(object.abstainCount);\n if ((0, helpers_1.isSet)(object.noCount))\n obj.noCount = String(object.noCount);\n if ((0, helpers_1.isSet)(object.noWithVetoCount))\n obj.noWithVetoCount = String(object.noWithVetoCount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.yesCount !== undefined && (obj.yesCount = message.yesCount);\n message.abstainCount !== undefined && (obj.abstainCount = message.abstainCount);\n message.noCount !== undefined && (obj.noCount = message.noCount);\n message.noWithVetoCount !== undefined && (obj.noWithVetoCount = message.noWithVetoCount);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTallyResult();\n message.yesCount = object.yesCount ?? \"\";\n message.abstainCount = object.abstainCount ?? \"\";\n message.noCount = object.noCount ?? \"\";\n message.noWithVetoCount = object.noWithVetoCount ?? \"\";\n return message;\n },\n};\nfunction createBaseVote() {\n return {\n proposalId: BigInt(0),\n voter: \"\",\n options: [],\n metadata: \"\",\n };\n}\nexports.Vote = {\n typeUrl: \"/cosmos.gov.v1.Vote\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n for (const v of message.options) {\n exports.WeightedVoteOption.encode(v, writer.uint32(34).fork()).ldelim();\n }\n if (message.metadata !== \"\") {\n writer.uint32(42).string(message.metadata);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVote();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 4:\n message.options.push(exports.WeightedVoteOption.decode(reader, reader.uint32()));\n break;\n case 5:\n message.metadata = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseVote();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.voter))\n obj.voter = String(object.voter);\n if (Array.isArray(object?.options))\n obj.options = object.options.map((e) => exports.WeightedVoteOption.fromJSON(e));\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n if (message.options) {\n obj.options = message.options.map((e) => (e ? exports.WeightedVoteOption.toJSON(e) : undefined));\n }\n else {\n obj.options = [];\n }\n message.metadata !== undefined && (obj.metadata = message.metadata);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseVote();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.voter = object.voter ?? \"\";\n message.options = object.options?.map((e) => exports.WeightedVoteOption.fromPartial(e)) || [];\n message.metadata = object.metadata ?? \"\";\n return message;\n },\n};\nfunction createBaseDepositParams() {\n return {\n minDeposit: [],\n maxDepositPeriod: undefined,\n };\n}\nexports.DepositParams = {\n typeUrl: \"/cosmos.gov.v1.DepositParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.minDeposit) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.maxDepositPeriod !== undefined) {\n duration_1.Duration.encode(message.maxDepositPeriod, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDepositParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.minDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.maxDepositPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDepositParams();\n if (Array.isArray(object?.minDeposit))\n obj.minDeposit = object.minDeposit.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.maxDepositPeriod))\n obj.maxDepositPeriod = duration_1.Duration.fromJSON(object.maxDepositPeriod);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.minDeposit) {\n obj.minDeposit = message.minDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.minDeposit = [];\n }\n message.maxDepositPeriod !== undefined &&\n (obj.maxDepositPeriod = message.maxDepositPeriod\n ? duration_1.Duration.toJSON(message.maxDepositPeriod)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDepositParams();\n message.minDeposit = object.minDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null) {\n message.maxDepositPeriod = duration_1.Duration.fromPartial(object.maxDepositPeriod);\n }\n return message;\n },\n};\nfunction createBaseVotingParams() {\n return {\n votingPeriod: undefined,\n };\n}\nexports.VotingParams = {\n typeUrl: \"/cosmos.gov.v1.VotingParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.votingPeriod !== undefined) {\n duration_1.Duration.encode(message.votingPeriod, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVotingParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.votingPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseVotingParams();\n if ((0, helpers_1.isSet)(object.votingPeriod))\n obj.votingPeriod = duration_1.Duration.fromJSON(object.votingPeriod);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.votingPeriod !== undefined &&\n (obj.votingPeriod = message.votingPeriod ? duration_1.Duration.toJSON(message.votingPeriod) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseVotingParams();\n if (object.votingPeriod !== undefined && object.votingPeriod !== null) {\n message.votingPeriod = duration_1.Duration.fromPartial(object.votingPeriod);\n }\n return message;\n },\n};\nfunction createBaseTallyParams() {\n return {\n quorum: \"\",\n threshold: \"\",\n vetoThreshold: \"\",\n };\n}\nexports.TallyParams = {\n typeUrl: \"/cosmos.gov.v1.TallyParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.quorum !== \"\") {\n writer.uint32(10).string(message.quorum);\n }\n if (message.threshold !== \"\") {\n writer.uint32(18).string(message.threshold);\n }\n if (message.vetoThreshold !== \"\") {\n writer.uint32(26).string(message.vetoThreshold);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTallyParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.quorum = reader.string();\n break;\n case 2:\n message.threshold = reader.string();\n break;\n case 3:\n message.vetoThreshold = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTallyParams();\n if ((0, helpers_1.isSet)(object.quorum))\n obj.quorum = String(object.quorum);\n if ((0, helpers_1.isSet)(object.threshold))\n obj.threshold = String(object.threshold);\n if ((0, helpers_1.isSet)(object.vetoThreshold))\n obj.vetoThreshold = String(object.vetoThreshold);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.quorum !== undefined && (obj.quorum = message.quorum);\n message.threshold !== undefined && (obj.threshold = message.threshold);\n message.vetoThreshold !== undefined && (obj.vetoThreshold = message.vetoThreshold);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTallyParams();\n message.quorum = object.quorum ?? \"\";\n message.threshold = object.threshold ?? \"\";\n message.vetoThreshold = object.vetoThreshold ?? \"\";\n return message;\n },\n};\nfunction createBaseParams() {\n return {\n minDeposit: [],\n maxDepositPeriod: undefined,\n votingPeriod: undefined,\n quorum: \"\",\n threshold: \"\",\n vetoThreshold: \"\",\n minInitialDepositRatio: \"\",\n burnVoteQuorum: false,\n burnProposalDepositPrevote: false,\n burnVoteVeto: false,\n };\n}\nexports.Params = {\n typeUrl: \"/cosmos.gov.v1.Params\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.minDeposit) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.maxDepositPeriod !== undefined) {\n duration_1.Duration.encode(message.maxDepositPeriod, writer.uint32(18).fork()).ldelim();\n }\n if (message.votingPeriod !== undefined) {\n duration_1.Duration.encode(message.votingPeriod, writer.uint32(26).fork()).ldelim();\n }\n if (message.quorum !== \"\") {\n writer.uint32(34).string(message.quorum);\n }\n if (message.threshold !== \"\") {\n writer.uint32(42).string(message.threshold);\n }\n if (message.vetoThreshold !== \"\") {\n writer.uint32(50).string(message.vetoThreshold);\n }\n if (message.minInitialDepositRatio !== \"\") {\n writer.uint32(58).string(message.minInitialDepositRatio);\n }\n if (message.burnVoteQuorum === true) {\n writer.uint32(104).bool(message.burnVoteQuorum);\n }\n if (message.burnProposalDepositPrevote === true) {\n writer.uint32(112).bool(message.burnProposalDepositPrevote);\n }\n if (message.burnVoteVeto === true) {\n writer.uint32(120).bool(message.burnVoteVeto);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.minDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.maxDepositPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 3:\n message.votingPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 4:\n message.quorum = reader.string();\n break;\n case 5:\n message.threshold = reader.string();\n break;\n case 6:\n message.vetoThreshold = reader.string();\n break;\n case 7:\n message.minInitialDepositRatio = reader.string();\n break;\n case 13:\n message.burnVoteQuorum = reader.bool();\n break;\n case 14:\n message.burnProposalDepositPrevote = reader.bool();\n break;\n case 15:\n message.burnVoteVeto = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseParams();\n if (Array.isArray(object?.minDeposit))\n obj.minDeposit = object.minDeposit.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.maxDepositPeriod))\n obj.maxDepositPeriod = duration_1.Duration.fromJSON(object.maxDepositPeriod);\n if ((0, helpers_1.isSet)(object.votingPeriod))\n obj.votingPeriod = duration_1.Duration.fromJSON(object.votingPeriod);\n if ((0, helpers_1.isSet)(object.quorum))\n obj.quorum = String(object.quorum);\n if ((0, helpers_1.isSet)(object.threshold))\n obj.threshold = String(object.threshold);\n if ((0, helpers_1.isSet)(object.vetoThreshold))\n obj.vetoThreshold = String(object.vetoThreshold);\n if ((0, helpers_1.isSet)(object.minInitialDepositRatio))\n obj.minInitialDepositRatio = String(object.minInitialDepositRatio);\n if ((0, helpers_1.isSet)(object.burnVoteQuorum))\n obj.burnVoteQuorum = Boolean(object.burnVoteQuorum);\n if ((0, helpers_1.isSet)(object.burnProposalDepositPrevote))\n obj.burnProposalDepositPrevote = Boolean(object.burnProposalDepositPrevote);\n if ((0, helpers_1.isSet)(object.burnVoteVeto))\n obj.burnVoteVeto = Boolean(object.burnVoteVeto);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.minDeposit) {\n obj.minDeposit = message.minDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.minDeposit = [];\n }\n message.maxDepositPeriod !== undefined &&\n (obj.maxDepositPeriod = message.maxDepositPeriod\n ? duration_1.Duration.toJSON(message.maxDepositPeriod)\n : undefined);\n message.votingPeriod !== undefined &&\n (obj.votingPeriod = message.votingPeriod ? duration_1.Duration.toJSON(message.votingPeriod) : undefined);\n message.quorum !== undefined && (obj.quorum = message.quorum);\n message.threshold !== undefined && (obj.threshold = message.threshold);\n message.vetoThreshold !== undefined && (obj.vetoThreshold = message.vetoThreshold);\n message.minInitialDepositRatio !== undefined &&\n (obj.minInitialDepositRatio = message.minInitialDepositRatio);\n message.burnVoteQuorum !== undefined && (obj.burnVoteQuorum = message.burnVoteQuorum);\n message.burnProposalDepositPrevote !== undefined &&\n (obj.burnProposalDepositPrevote = message.burnProposalDepositPrevote);\n message.burnVoteVeto !== undefined && (obj.burnVoteVeto = message.burnVoteVeto);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseParams();\n message.minDeposit = object.minDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null) {\n message.maxDepositPeriod = duration_1.Duration.fromPartial(object.maxDepositPeriod);\n }\n if (object.votingPeriod !== undefined && object.votingPeriod !== null) {\n message.votingPeriod = duration_1.Duration.fromPartial(object.votingPeriod);\n }\n message.quorum = object.quorum ?? \"\";\n message.threshold = object.threshold ?? \"\";\n message.vetoThreshold = object.vetoThreshold ?? \"\";\n message.minInitialDepositRatio = object.minInitialDepositRatio ?? \"\";\n message.burnVoteQuorum = object.burnVoteQuorum ?? false;\n message.burnProposalDepositPrevote = object.burnProposalDepositPrevote ?? false;\n message.burnVoteVeto = object.burnVoteVeto ?? false;\n return message;\n },\n};\n//# sourceMappingURL=gov.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgUpdateParamsResponse = exports.MsgUpdateParams = exports.MsgDepositResponse = exports.MsgDeposit = exports.MsgVoteWeightedResponse = exports.MsgVoteWeighted = exports.MsgVoteResponse = exports.MsgVote = exports.MsgExecLegacyContentResponse = exports.MsgExecLegacyContent = exports.MsgSubmitProposalResponse = exports.MsgSubmitProposal = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst gov_1 = require(\"./gov\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.gov.v1\";\nfunction createBaseMsgSubmitProposal() {\n return {\n messages: [],\n initialDeposit: [],\n proposer: \"\",\n metadata: \"\",\n title: \"\",\n summary: \"\",\n };\n}\nexports.MsgSubmitProposal = {\n typeUrl: \"/cosmos.gov.v1.MsgSubmitProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.messages) {\n any_1.Any.encode(v, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.initialDeposit) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.proposer !== \"\") {\n writer.uint32(26).string(message.proposer);\n }\n if (message.metadata !== \"\") {\n writer.uint32(34).string(message.metadata);\n }\n if (message.title !== \"\") {\n writer.uint32(42).string(message.title);\n }\n if (message.summary !== \"\") {\n writer.uint32(50).string(message.summary);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubmitProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.messages.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 2:\n message.initialDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 3:\n message.proposer = reader.string();\n break;\n case 4:\n message.metadata = reader.string();\n break;\n case 5:\n message.title = reader.string();\n break;\n case 6:\n message.summary = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgSubmitProposal();\n if (Array.isArray(object?.messages))\n obj.messages = object.messages.map((e) => any_1.Any.fromJSON(e));\n if (Array.isArray(object?.initialDeposit))\n obj.initialDeposit = object.initialDeposit.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.proposer))\n obj.proposer = String(object.proposer);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n if ((0, helpers_1.isSet)(object.title))\n obj.title = String(object.title);\n if ((0, helpers_1.isSet)(object.summary))\n obj.summary = String(object.summary);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.messages) {\n obj.messages = message.messages.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.messages = [];\n }\n if (message.initialDeposit) {\n obj.initialDeposit = message.initialDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.initialDeposit = [];\n }\n message.proposer !== undefined && (obj.proposer = message.proposer);\n message.metadata !== undefined && (obj.metadata = message.metadata);\n message.title !== undefined && (obj.title = message.title);\n message.summary !== undefined && (obj.summary = message.summary);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgSubmitProposal();\n message.messages = object.messages?.map((e) => any_1.Any.fromPartial(e)) || [];\n message.initialDeposit = object.initialDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n message.proposer = object.proposer ?? \"\";\n message.metadata = object.metadata ?? \"\";\n message.title = object.title ?? \"\";\n message.summary = object.summary ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgSubmitProposalResponse() {\n return {\n proposalId: BigInt(0),\n };\n}\nexports.MsgSubmitProposalResponse = {\n typeUrl: \"/cosmos.gov.v1.MsgSubmitProposalResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubmitProposalResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgSubmitProposalResponse();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgSubmitProposalResponse();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n return message;\n },\n};\nfunction createBaseMsgExecLegacyContent() {\n return {\n content: undefined,\n authority: \"\",\n };\n}\nexports.MsgExecLegacyContent = {\n typeUrl: \"/cosmos.gov.v1.MsgExecLegacyContent\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.content !== undefined) {\n any_1.Any.encode(message.content, writer.uint32(10).fork()).ldelim();\n }\n if (message.authority !== \"\") {\n writer.uint32(18).string(message.authority);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgExecLegacyContent();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.content = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.authority = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgExecLegacyContent();\n if ((0, helpers_1.isSet)(object.content))\n obj.content = any_1.Any.fromJSON(object.content);\n if ((0, helpers_1.isSet)(object.authority))\n obj.authority = String(object.authority);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.content !== undefined &&\n (obj.content = message.content ? any_1.Any.toJSON(message.content) : undefined);\n message.authority !== undefined && (obj.authority = message.authority);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgExecLegacyContent();\n if (object.content !== undefined && object.content !== null) {\n message.content = any_1.Any.fromPartial(object.content);\n }\n message.authority = object.authority ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgExecLegacyContentResponse() {\n return {};\n}\nexports.MsgExecLegacyContentResponse = {\n typeUrl: \"/cosmos.gov.v1.MsgExecLegacyContentResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgExecLegacyContentResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgExecLegacyContentResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgExecLegacyContentResponse();\n return message;\n },\n};\nfunction createBaseMsgVote() {\n return {\n proposalId: BigInt(0),\n voter: \"\",\n option: 0,\n metadata: \"\",\n };\n}\nexports.MsgVote = {\n typeUrl: \"/cosmos.gov.v1.MsgVote\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (message.option !== 0) {\n writer.uint32(24).int32(message.option);\n }\n if (message.metadata !== \"\") {\n writer.uint32(34).string(message.metadata);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVote();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.option = reader.int32();\n break;\n case 4:\n message.metadata = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgVote();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.voter))\n obj.voter = String(object.voter);\n if ((0, helpers_1.isSet)(object.option))\n obj.option = (0, gov_1.voteOptionFromJSON)(object.option);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n message.option !== undefined && (obj.option = (0, gov_1.voteOptionToJSON)(message.option));\n message.metadata !== undefined && (obj.metadata = message.metadata);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgVote();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.voter = object.voter ?? \"\";\n message.option = object.option ?? 0;\n message.metadata = object.metadata ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgVoteResponse() {\n return {};\n}\nexports.MsgVoteResponse = {\n typeUrl: \"/cosmos.gov.v1.MsgVoteResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVoteResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgVoteResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgVoteResponse();\n return message;\n },\n};\nfunction createBaseMsgVoteWeighted() {\n return {\n proposalId: BigInt(0),\n voter: \"\",\n options: [],\n metadata: \"\",\n };\n}\nexports.MsgVoteWeighted = {\n typeUrl: \"/cosmos.gov.v1.MsgVoteWeighted\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n for (const v of message.options) {\n gov_1.WeightedVoteOption.encode(v, writer.uint32(26).fork()).ldelim();\n }\n if (message.metadata !== \"\") {\n writer.uint32(34).string(message.metadata);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVoteWeighted();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.options.push(gov_1.WeightedVoteOption.decode(reader, reader.uint32()));\n break;\n case 4:\n message.metadata = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgVoteWeighted();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.voter))\n obj.voter = String(object.voter);\n if (Array.isArray(object?.options))\n obj.options = object.options.map((e) => gov_1.WeightedVoteOption.fromJSON(e));\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n if (message.options) {\n obj.options = message.options.map((e) => (e ? gov_1.WeightedVoteOption.toJSON(e) : undefined));\n }\n else {\n obj.options = [];\n }\n message.metadata !== undefined && (obj.metadata = message.metadata);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgVoteWeighted();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.voter = object.voter ?? \"\";\n message.options = object.options?.map((e) => gov_1.WeightedVoteOption.fromPartial(e)) || [];\n message.metadata = object.metadata ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgVoteWeightedResponse() {\n return {};\n}\nexports.MsgVoteWeightedResponse = {\n typeUrl: \"/cosmos.gov.v1.MsgVoteWeightedResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVoteWeightedResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgVoteWeightedResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgVoteWeightedResponse();\n return message;\n },\n};\nfunction createBaseMsgDeposit() {\n return {\n proposalId: BigInt(0),\n depositor: \"\",\n amount: [],\n };\n}\nexports.MsgDeposit = {\n typeUrl: \"/cosmos.gov.v1.MsgDeposit\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgDeposit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.depositor = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgDeposit();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.depositor))\n obj.depositor = String(object.depositor);\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.depositor !== undefined && (obj.depositor = message.depositor);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgDeposit();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.depositor = object.depositor ?? \"\";\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgDepositResponse() {\n return {};\n}\nexports.MsgDepositResponse = {\n typeUrl: \"/cosmos.gov.v1.MsgDepositResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgDepositResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgDepositResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgDepositResponse();\n return message;\n },\n};\nfunction createBaseMsgUpdateParams() {\n return {\n authority: \"\",\n params: gov_1.Params.fromPartial({}),\n };\n}\nexports.MsgUpdateParams = {\n typeUrl: \"/cosmos.gov.v1.MsgUpdateParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.authority !== \"\") {\n writer.uint32(10).string(message.authority);\n }\n if (message.params !== undefined) {\n gov_1.Params.encode(message.params, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.authority = reader.string();\n break;\n case 2:\n message.params = gov_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpdateParams();\n if ((0, helpers_1.isSet)(object.authority))\n obj.authority = String(object.authority);\n if ((0, helpers_1.isSet)(object.params))\n obj.params = gov_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.authority !== undefined && (obj.authority = message.authority);\n message.params !== undefined && (obj.params = message.params ? gov_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpdateParams();\n message.authority = object.authority ?? \"\";\n if (object.params !== undefined && object.params !== null) {\n message.params = gov_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nfunction createBaseMsgUpdateParamsResponse() {\n return {};\n}\nexports.MsgUpdateParamsResponse = {\n typeUrl: \"/cosmos.gov.v1.MsgUpdateParamsResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpdateParamsResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpdateParamsResponse();\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.SubmitProposal = this.SubmitProposal.bind(this);\n this.ExecLegacyContent = this.ExecLegacyContent.bind(this);\n this.Vote = this.Vote.bind(this);\n this.VoteWeighted = this.VoteWeighted.bind(this);\n this.Deposit = this.Deposit.bind(this);\n this.UpdateParams = this.UpdateParams.bind(this);\n }\n SubmitProposal(request) {\n const data = exports.MsgSubmitProposal.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1.Msg\", \"SubmitProposal\", data);\n return promise.then((data) => exports.MsgSubmitProposalResponse.decode(new binary_1.BinaryReader(data)));\n }\n ExecLegacyContent(request) {\n const data = exports.MsgExecLegacyContent.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1.Msg\", \"ExecLegacyContent\", data);\n return promise.then((data) => exports.MsgExecLegacyContentResponse.decode(new binary_1.BinaryReader(data)));\n }\n Vote(request) {\n const data = exports.MsgVote.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1.Msg\", \"Vote\", data);\n return promise.then((data) => exports.MsgVoteResponse.decode(new binary_1.BinaryReader(data)));\n }\n VoteWeighted(request) {\n const data = exports.MsgVoteWeighted.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1.Msg\", \"VoteWeighted\", data);\n return promise.then((data) => exports.MsgVoteWeightedResponse.decode(new binary_1.BinaryReader(data)));\n }\n Deposit(request) {\n const data = exports.MsgDeposit.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1.Msg\", \"Deposit\", data);\n return promise.then((data) => exports.MsgDepositResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpdateParams(request) {\n const data = exports.MsgUpdateParams.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1.Msg\", \"UpdateParams\", data);\n return promise.then((data) => exports.MsgUpdateParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TallyParams = exports.VotingParams = exports.DepositParams = exports.Vote = exports.TallyResult = exports.Proposal = exports.Deposit = exports.TextProposal = exports.WeightedVoteOption = exports.proposalStatusToJSON = exports.proposalStatusFromJSON = exports.ProposalStatus = exports.voteOptionToJSON = exports.voteOptionFromJSON = exports.VoteOption = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst duration_1 = require(\"../../../google/protobuf/duration\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.gov.v1beta1\";\n/** VoteOption enumerates the valid vote options for a given governance proposal. */\nvar VoteOption;\n(function (VoteOption) {\n /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_UNSPECIFIED\"] = 0] = \"VOTE_OPTION_UNSPECIFIED\";\n /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_YES\"] = 1] = \"VOTE_OPTION_YES\";\n /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_ABSTAIN\"] = 2] = \"VOTE_OPTION_ABSTAIN\";\n /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_NO\"] = 3] = \"VOTE_OPTION_NO\";\n /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_NO_WITH_VETO\"] = 4] = \"VOTE_OPTION_NO_WITH_VETO\";\n VoteOption[VoteOption[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(VoteOption || (exports.VoteOption = VoteOption = {}));\nfunction voteOptionFromJSON(object) {\n switch (object) {\n case 0:\n case \"VOTE_OPTION_UNSPECIFIED\":\n return VoteOption.VOTE_OPTION_UNSPECIFIED;\n case 1:\n case \"VOTE_OPTION_YES\":\n return VoteOption.VOTE_OPTION_YES;\n case 2:\n case \"VOTE_OPTION_ABSTAIN\":\n return VoteOption.VOTE_OPTION_ABSTAIN;\n case 3:\n case \"VOTE_OPTION_NO\":\n return VoteOption.VOTE_OPTION_NO;\n case 4:\n case \"VOTE_OPTION_NO_WITH_VETO\":\n return VoteOption.VOTE_OPTION_NO_WITH_VETO;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return VoteOption.UNRECOGNIZED;\n }\n}\nexports.voteOptionFromJSON = voteOptionFromJSON;\nfunction voteOptionToJSON(object) {\n switch (object) {\n case VoteOption.VOTE_OPTION_UNSPECIFIED:\n return \"VOTE_OPTION_UNSPECIFIED\";\n case VoteOption.VOTE_OPTION_YES:\n return \"VOTE_OPTION_YES\";\n case VoteOption.VOTE_OPTION_ABSTAIN:\n return \"VOTE_OPTION_ABSTAIN\";\n case VoteOption.VOTE_OPTION_NO:\n return \"VOTE_OPTION_NO\";\n case VoteOption.VOTE_OPTION_NO_WITH_VETO:\n return \"VOTE_OPTION_NO_WITH_VETO\";\n case VoteOption.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.voteOptionToJSON = voteOptionToJSON;\n/** ProposalStatus enumerates the valid statuses of a proposal. */\nvar ProposalStatus;\n(function (ProposalStatus) {\n /** PROPOSAL_STATUS_UNSPECIFIED - PROPOSAL_STATUS_UNSPECIFIED defines the default proposal status. */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_UNSPECIFIED\"] = 0] = \"PROPOSAL_STATUS_UNSPECIFIED\";\n /**\n * PROPOSAL_STATUS_DEPOSIT_PERIOD - PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit\n * period.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_DEPOSIT_PERIOD\"] = 1] = \"PROPOSAL_STATUS_DEPOSIT_PERIOD\";\n /**\n * PROPOSAL_STATUS_VOTING_PERIOD - PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting\n * period.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_VOTING_PERIOD\"] = 2] = \"PROPOSAL_STATUS_VOTING_PERIOD\";\n /**\n * PROPOSAL_STATUS_PASSED - PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has\n * passed.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_PASSED\"] = 3] = \"PROPOSAL_STATUS_PASSED\";\n /**\n * PROPOSAL_STATUS_REJECTED - PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has\n * been rejected.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_REJECTED\"] = 4] = \"PROPOSAL_STATUS_REJECTED\";\n /**\n * PROPOSAL_STATUS_FAILED - PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has\n * failed.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_FAILED\"] = 5] = \"PROPOSAL_STATUS_FAILED\";\n ProposalStatus[ProposalStatus[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ProposalStatus || (exports.ProposalStatus = ProposalStatus = {}));\nfunction proposalStatusFromJSON(object) {\n switch (object) {\n case 0:\n case \"PROPOSAL_STATUS_UNSPECIFIED\":\n return ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED;\n case 1:\n case \"PROPOSAL_STATUS_DEPOSIT_PERIOD\":\n return ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD;\n case 2:\n case \"PROPOSAL_STATUS_VOTING_PERIOD\":\n return ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD;\n case 3:\n case \"PROPOSAL_STATUS_PASSED\":\n return ProposalStatus.PROPOSAL_STATUS_PASSED;\n case 4:\n case \"PROPOSAL_STATUS_REJECTED\":\n return ProposalStatus.PROPOSAL_STATUS_REJECTED;\n case 5:\n case \"PROPOSAL_STATUS_FAILED\":\n return ProposalStatus.PROPOSAL_STATUS_FAILED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ProposalStatus.UNRECOGNIZED;\n }\n}\nexports.proposalStatusFromJSON = proposalStatusFromJSON;\nfunction proposalStatusToJSON(object) {\n switch (object) {\n case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED:\n return \"PROPOSAL_STATUS_UNSPECIFIED\";\n case ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD:\n return \"PROPOSAL_STATUS_DEPOSIT_PERIOD\";\n case ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD:\n return \"PROPOSAL_STATUS_VOTING_PERIOD\";\n case ProposalStatus.PROPOSAL_STATUS_PASSED:\n return \"PROPOSAL_STATUS_PASSED\";\n case ProposalStatus.PROPOSAL_STATUS_REJECTED:\n return \"PROPOSAL_STATUS_REJECTED\";\n case ProposalStatus.PROPOSAL_STATUS_FAILED:\n return \"PROPOSAL_STATUS_FAILED\";\n case ProposalStatus.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.proposalStatusToJSON = proposalStatusToJSON;\nfunction createBaseWeightedVoteOption() {\n return {\n option: 0,\n weight: \"\",\n };\n}\nexports.WeightedVoteOption = {\n typeUrl: \"/cosmos.gov.v1beta1.WeightedVoteOption\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.option !== 0) {\n writer.uint32(8).int32(message.option);\n }\n if (message.weight !== \"\") {\n writer.uint32(18).string(message.weight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseWeightedVoteOption();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.option = reader.int32();\n break;\n case 2:\n message.weight = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseWeightedVoteOption();\n if ((0, helpers_1.isSet)(object.option))\n obj.option = voteOptionFromJSON(object.option);\n if ((0, helpers_1.isSet)(object.weight))\n obj.weight = String(object.weight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.option !== undefined && (obj.option = voteOptionToJSON(message.option));\n message.weight !== undefined && (obj.weight = message.weight);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseWeightedVoteOption();\n message.option = object.option ?? 0;\n message.weight = object.weight ?? \"\";\n return message;\n },\n};\nfunction createBaseTextProposal() {\n return {\n title: \"\",\n description: \"\",\n };\n}\nexports.TextProposal = {\n typeUrl: \"/cosmos.gov.v1beta1.TextProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTextProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTextProposal();\n if ((0, helpers_1.isSet)(object.title))\n obj.title = String(object.title);\n if ((0, helpers_1.isSet)(object.description))\n obj.description = String(object.description);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTextProposal();\n message.title = object.title ?? \"\";\n message.description = object.description ?? \"\";\n return message;\n },\n};\nfunction createBaseDeposit() {\n return {\n proposalId: BigInt(0),\n depositor: \"\",\n amount: [],\n };\n}\nexports.Deposit = {\n typeUrl: \"/cosmos.gov.v1beta1.Deposit\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDeposit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.depositor = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDeposit();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.depositor))\n obj.depositor = String(object.depositor);\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.depositor !== undefined && (obj.depositor = message.depositor);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDeposit();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.depositor = object.depositor ?? \"\";\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseProposal() {\n return {\n proposalId: BigInt(0),\n content: undefined,\n status: 0,\n finalTallyResult: exports.TallyResult.fromPartial({}),\n submitTime: timestamp_1.Timestamp.fromPartial({}),\n depositEndTime: timestamp_1.Timestamp.fromPartial({}),\n totalDeposit: [],\n votingStartTime: timestamp_1.Timestamp.fromPartial({}),\n votingEndTime: timestamp_1.Timestamp.fromPartial({}),\n };\n}\nexports.Proposal = {\n typeUrl: \"/cosmos.gov.v1beta1.Proposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.content !== undefined) {\n any_1.Any.encode(message.content, writer.uint32(18).fork()).ldelim();\n }\n if (message.status !== 0) {\n writer.uint32(24).int32(message.status);\n }\n if (message.finalTallyResult !== undefined) {\n exports.TallyResult.encode(message.finalTallyResult, writer.uint32(34).fork()).ldelim();\n }\n if (message.submitTime !== undefined) {\n timestamp_1.Timestamp.encode(message.submitTime, writer.uint32(42).fork()).ldelim();\n }\n if (message.depositEndTime !== undefined) {\n timestamp_1.Timestamp.encode(message.depositEndTime, writer.uint32(50).fork()).ldelim();\n }\n for (const v of message.totalDeposit) {\n coin_1.Coin.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.votingStartTime !== undefined) {\n timestamp_1.Timestamp.encode(message.votingStartTime, writer.uint32(66).fork()).ldelim();\n }\n if (message.votingEndTime !== undefined) {\n timestamp_1.Timestamp.encode(message.votingEndTime, writer.uint32(74).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.content = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.status = reader.int32();\n break;\n case 4:\n message.finalTallyResult = exports.TallyResult.decode(reader, reader.uint32());\n break;\n case 5:\n message.submitTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 6:\n message.depositEndTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 7:\n message.totalDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 8:\n message.votingStartTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 9:\n message.votingEndTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseProposal();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.content))\n obj.content = any_1.Any.fromJSON(object.content);\n if ((0, helpers_1.isSet)(object.status))\n obj.status = proposalStatusFromJSON(object.status);\n if ((0, helpers_1.isSet)(object.finalTallyResult))\n obj.finalTallyResult = exports.TallyResult.fromJSON(object.finalTallyResult);\n if ((0, helpers_1.isSet)(object.submitTime))\n obj.submitTime = (0, helpers_1.fromJsonTimestamp)(object.submitTime);\n if ((0, helpers_1.isSet)(object.depositEndTime))\n obj.depositEndTime = (0, helpers_1.fromJsonTimestamp)(object.depositEndTime);\n if (Array.isArray(object?.totalDeposit))\n obj.totalDeposit = object.totalDeposit.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.votingStartTime))\n obj.votingStartTime = (0, helpers_1.fromJsonTimestamp)(object.votingStartTime);\n if ((0, helpers_1.isSet)(object.votingEndTime))\n obj.votingEndTime = (0, helpers_1.fromJsonTimestamp)(object.votingEndTime);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.content !== undefined &&\n (obj.content = message.content ? any_1.Any.toJSON(message.content) : undefined);\n message.status !== undefined && (obj.status = proposalStatusToJSON(message.status));\n message.finalTallyResult !== undefined &&\n (obj.finalTallyResult = message.finalTallyResult\n ? exports.TallyResult.toJSON(message.finalTallyResult)\n : undefined);\n message.submitTime !== undefined && (obj.submitTime = (0, helpers_1.fromTimestamp)(message.submitTime).toISOString());\n message.depositEndTime !== undefined &&\n (obj.depositEndTime = (0, helpers_1.fromTimestamp)(message.depositEndTime).toISOString());\n if (message.totalDeposit) {\n obj.totalDeposit = message.totalDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.totalDeposit = [];\n }\n message.votingStartTime !== undefined &&\n (obj.votingStartTime = (0, helpers_1.fromTimestamp)(message.votingStartTime).toISOString());\n message.votingEndTime !== undefined &&\n (obj.votingEndTime = (0, helpers_1.fromTimestamp)(message.votingEndTime).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseProposal();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n if (object.content !== undefined && object.content !== null) {\n message.content = any_1.Any.fromPartial(object.content);\n }\n message.status = object.status ?? 0;\n if (object.finalTallyResult !== undefined && object.finalTallyResult !== null) {\n message.finalTallyResult = exports.TallyResult.fromPartial(object.finalTallyResult);\n }\n if (object.submitTime !== undefined && object.submitTime !== null) {\n message.submitTime = timestamp_1.Timestamp.fromPartial(object.submitTime);\n }\n if (object.depositEndTime !== undefined && object.depositEndTime !== null) {\n message.depositEndTime = timestamp_1.Timestamp.fromPartial(object.depositEndTime);\n }\n message.totalDeposit = object.totalDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.votingStartTime !== undefined && object.votingStartTime !== null) {\n message.votingStartTime = timestamp_1.Timestamp.fromPartial(object.votingStartTime);\n }\n if (object.votingEndTime !== undefined && object.votingEndTime !== null) {\n message.votingEndTime = timestamp_1.Timestamp.fromPartial(object.votingEndTime);\n }\n return message;\n },\n};\nfunction createBaseTallyResult() {\n return {\n yes: \"\",\n abstain: \"\",\n no: \"\",\n noWithVeto: \"\",\n };\n}\nexports.TallyResult = {\n typeUrl: \"/cosmos.gov.v1beta1.TallyResult\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.yes !== \"\") {\n writer.uint32(10).string(message.yes);\n }\n if (message.abstain !== \"\") {\n writer.uint32(18).string(message.abstain);\n }\n if (message.no !== \"\") {\n writer.uint32(26).string(message.no);\n }\n if (message.noWithVeto !== \"\") {\n writer.uint32(34).string(message.noWithVeto);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTallyResult();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.yes = reader.string();\n break;\n case 2:\n message.abstain = reader.string();\n break;\n case 3:\n message.no = reader.string();\n break;\n case 4:\n message.noWithVeto = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTallyResult();\n if ((0, helpers_1.isSet)(object.yes))\n obj.yes = String(object.yes);\n if ((0, helpers_1.isSet)(object.abstain))\n obj.abstain = String(object.abstain);\n if ((0, helpers_1.isSet)(object.no))\n obj.no = String(object.no);\n if ((0, helpers_1.isSet)(object.noWithVeto))\n obj.noWithVeto = String(object.noWithVeto);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.yes !== undefined && (obj.yes = message.yes);\n message.abstain !== undefined && (obj.abstain = message.abstain);\n message.no !== undefined && (obj.no = message.no);\n message.noWithVeto !== undefined && (obj.noWithVeto = message.noWithVeto);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTallyResult();\n message.yes = object.yes ?? \"\";\n message.abstain = object.abstain ?? \"\";\n message.no = object.no ?? \"\";\n message.noWithVeto = object.noWithVeto ?? \"\";\n return message;\n },\n};\nfunction createBaseVote() {\n return {\n proposalId: BigInt(0),\n voter: \"\",\n option: 0,\n options: [],\n };\n}\nexports.Vote = {\n typeUrl: \"/cosmos.gov.v1beta1.Vote\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (message.option !== 0) {\n writer.uint32(24).int32(message.option);\n }\n for (const v of message.options) {\n exports.WeightedVoteOption.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVote();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.option = reader.int32();\n break;\n case 4:\n message.options.push(exports.WeightedVoteOption.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseVote();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.voter))\n obj.voter = String(object.voter);\n if ((0, helpers_1.isSet)(object.option))\n obj.option = voteOptionFromJSON(object.option);\n if (Array.isArray(object?.options))\n obj.options = object.options.map((e) => exports.WeightedVoteOption.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n message.option !== undefined && (obj.option = voteOptionToJSON(message.option));\n if (message.options) {\n obj.options = message.options.map((e) => (e ? exports.WeightedVoteOption.toJSON(e) : undefined));\n }\n else {\n obj.options = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseVote();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.voter = object.voter ?? \"\";\n message.option = object.option ?? 0;\n message.options = object.options?.map((e) => exports.WeightedVoteOption.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseDepositParams() {\n return {\n minDeposit: [],\n maxDepositPeriod: duration_1.Duration.fromPartial({}),\n };\n}\nexports.DepositParams = {\n typeUrl: \"/cosmos.gov.v1beta1.DepositParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.minDeposit) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.maxDepositPeriod !== undefined) {\n duration_1.Duration.encode(message.maxDepositPeriod, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDepositParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.minDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.maxDepositPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDepositParams();\n if (Array.isArray(object?.minDeposit))\n obj.minDeposit = object.minDeposit.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.maxDepositPeriod))\n obj.maxDepositPeriod = duration_1.Duration.fromJSON(object.maxDepositPeriod);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.minDeposit) {\n obj.minDeposit = message.minDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.minDeposit = [];\n }\n message.maxDepositPeriod !== undefined &&\n (obj.maxDepositPeriod = message.maxDepositPeriod\n ? duration_1.Duration.toJSON(message.maxDepositPeriod)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDepositParams();\n message.minDeposit = object.minDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null) {\n message.maxDepositPeriod = duration_1.Duration.fromPartial(object.maxDepositPeriod);\n }\n return message;\n },\n};\nfunction createBaseVotingParams() {\n return {\n votingPeriod: duration_1.Duration.fromPartial({}),\n };\n}\nexports.VotingParams = {\n typeUrl: \"/cosmos.gov.v1beta1.VotingParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.votingPeriod !== undefined) {\n duration_1.Duration.encode(message.votingPeriod, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVotingParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.votingPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseVotingParams();\n if ((0, helpers_1.isSet)(object.votingPeriod))\n obj.votingPeriod = duration_1.Duration.fromJSON(object.votingPeriod);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.votingPeriod !== undefined &&\n (obj.votingPeriod = message.votingPeriod ? duration_1.Duration.toJSON(message.votingPeriod) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseVotingParams();\n if (object.votingPeriod !== undefined && object.votingPeriod !== null) {\n message.votingPeriod = duration_1.Duration.fromPartial(object.votingPeriod);\n }\n return message;\n },\n};\nfunction createBaseTallyParams() {\n return {\n quorum: new Uint8Array(),\n threshold: new Uint8Array(),\n vetoThreshold: new Uint8Array(),\n };\n}\nexports.TallyParams = {\n typeUrl: \"/cosmos.gov.v1beta1.TallyParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.quorum.length !== 0) {\n writer.uint32(10).bytes(message.quorum);\n }\n if (message.threshold.length !== 0) {\n writer.uint32(18).bytes(message.threshold);\n }\n if (message.vetoThreshold.length !== 0) {\n writer.uint32(26).bytes(message.vetoThreshold);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTallyParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.quorum = reader.bytes();\n break;\n case 2:\n message.threshold = reader.bytes();\n break;\n case 3:\n message.vetoThreshold = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTallyParams();\n if ((0, helpers_1.isSet)(object.quorum))\n obj.quorum = (0, helpers_1.bytesFromBase64)(object.quorum);\n if ((0, helpers_1.isSet)(object.threshold))\n obj.threshold = (0, helpers_1.bytesFromBase64)(object.threshold);\n if ((0, helpers_1.isSet)(object.vetoThreshold))\n obj.vetoThreshold = (0, helpers_1.bytesFromBase64)(object.vetoThreshold);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.quorum !== undefined &&\n (obj.quorum = (0, helpers_1.base64FromBytes)(message.quorum !== undefined ? message.quorum : new Uint8Array()));\n message.threshold !== undefined &&\n (obj.threshold = (0, helpers_1.base64FromBytes)(message.threshold !== undefined ? message.threshold : new Uint8Array()));\n message.vetoThreshold !== undefined &&\n (obj.vetoThreshold = (0, helpers_1.base64FromBytes)(message.vetoThreshold !== undefined ? message.vetoThreshold : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTallyParams();\n message.quorum = object.quorum ?? new Uint8Array();\n message.threshold = object.threshold ?? new Uint8Array();\n message.vetoThreshold = object.vetoThreshold ?? new Uint8Array();\n return message;\n },\n};\n//# sourceMappingURL=gov.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryTallyResultResponse = exports.QueryTallyResultRequest = exports.QueryDepositsResponse = exports.QueryDepositsRequest = exports.QueryDepositResponse = exports.QueryDepositRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryVotesResponse = exports.QueryVotesRequest = exports.QueryVoteResponse = exports.QueryVoteRequest = exports.QueryProposalsResponse = exports.QueryProposalsRequest = exports.QueryProposalResponse = exports.QueryProposalRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst gov_1 = require(\"./gov\");\nconst pagination_1 = require(\"../../base/query/v1beta1/pagination\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.gov.v1beta1\";\nfunction createBaseQueryProposalRequest() {\n return {\n proposalId: BigInt(0),\n };\n}\nexports.QueryProposalRequest = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryProposalRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryProposalRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryProposalRequest();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryProposalRequest();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n return message;\n },\n};\nfunction createBaseQueryProposalResponse() {\n return {\n proposal: gov_1.Proposal.fromPartial({}),\n };\n}\nexports.QueryProposalResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryProposalResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposal !== undefined) {\n gov_1.Proposal.encode(message.proposal, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryProposalResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposal = gov_1.Proposal.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryProposalResponse();\n if ((0, helpers_1.isSet)(object.proposal))\n obj.proposal = gov_1.Proposal.fromJSON(object.proposal);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposal !== undefined &&\n (obj.proposal = message.proposal ? gov_1.Proposal.toJSON(message.proposal) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryProposalResponse();\n if (object.proposal !== undefined && object.proposal !== null) {\n message.proposal = gov_1.Proposal.fromPartial(object.proposal);\n }\n return message;\n },\n};\nfunction createBaseQueryProposalsRequest() {\n return {\n proposalStatus: 0,\n voter: \"\",\n depositor: \"\",\n pagination: undefined,\n };\n}\nexports.QueryProposalsRequest = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryProposalsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalStatus !== 0) {\n writer.uint32(8).int32(message.proposalStatus);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (message.depositor !== \"\") {\n writer.uint32(26).string(message.depositor);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryProposalsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalStatus = reader.int32();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.depositor = reader.string();\n break;\n case 4:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryProposalsRequest();\n if ((0, helpers_1.isSet)(object.proposalStatus))\n obj.proposalStatus = (0, gov_1.proposalStatusFromJSON)(object.proposalStatus);\n if ((0, helpers_1.isSet)(object.voter))\n obj.voter = String(object.voter);\n if ((0, helpers_1.isSet)(object.depositor))\n obj.depositor = String(object.depositor);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalStatus !== undefined &&\n (obj.proposalStatus = (0, gov_1.proposalStatusToJSON)(message.proposalStatus));\n message.voter !== undefined && (obj.voter = message.voter);\n message.depositor !== undefined && (obj.depositor = message.depositor);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryProposalsRequest();\n message.proposalStatus = object.proposalStatus ?? 0;\n message.voter = object.voter ?? \"\";\n message.depositor = object.depositor ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryProposalsResponse() {\n return {\n proposals: [],\n pagination: undefined,\n };\n}\nexports.QueryProposalsResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryProposalsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.proposals) {\n gov_1.Proposal.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryProposalsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposals.push(gov_1.Proposal.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryProposalsResponse();\n if (Array.isArray(object?.proposals))\n obj.proposals = object.proposals.map((e) => gov_1.Proposal.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.proposals) {\n obj.proposals = message.proposals.map((e) => (e ? gov_1.Proposal.toJSON(e) : undefined));\n }\n else {\n obj.proposals = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryProposalsResponse();\n message.proposals = object.proposals?.map((e) => gov_1.Proposal.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryVoteRequest() {\n return {\n proposalId: BigInt(0),\n voter: \"\",\n };\n}\nexports.QueryVoteRequest = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryVoteRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryVoteRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryVoteRequest();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.voter))\n obj.voter = String(object.voter);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryVoteRequest();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.voter = object.voter ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryVoteResponse() {\n return {\n vote: gov_1.Vote.fromPartial({}),\n };\n}\nexports.QueryVoteResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryVoteResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.vote !== undefined) {\n gov_1.Vote.encode(message.vote, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryVoteResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.vote = gov_1.Vote.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryVoteResponse();\n if ((0, helpers_1.isSet)(object.vote))\n obj.vote = gov_1.Vote.fromJSON(object.vote);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.vote !== undefined && (obj.vote = message.vote ? gov_1.Vote.toJSON(message.vote) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryVoteResponse();\n if (object.vote !== undefined && object.vote !== null) {\n message.vote = gov_1.Vote.fromPartial(object.vote);\n }\n return message;\n },\n};\nfunction createBaseQueryVotesRequest() {\n return {\n proposalId: BigInt(0),\n pagination: undefined,\n };\n}\nexports.QueryVotesRequest = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryVotesRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryVotesRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryVotesRequest();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryVotesRequest();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryVotesResponse() {\n return {\n votes: [],\n pagination: undefined,\n };\n}\nexports.QueryVotesResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryVotesResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.votes) {\n gov_1.Vote.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryVotesResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.votes.push(gov_1.Vote.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryVotesResponse();\n if (Array.isArray(object?.votes))\n obj.votes = object.votes.map((e) => gov_1.Vote.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.votes) {\n obj.votes = message.votes.map((e) => (e ? gov_1.Vote.toJSON(e) : undefined));\n }\n else {\n obj.votes = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryVotesResponse();\n message.votes = object.votes?.map((e) => gov_1.Vote.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryParamsRequest() {\n return {\n paramsType: \"\",\n };\n}\nexports.QueryParamsRequest = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryParamsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.paramsType !== \"\") {\n writer.uint32(10).string(message.paramsType);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.paramsType = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryParamsRequest();\n if ((0, helpers_1.isSet)(object.paramsType))\n obj.paramsType = String(object.paramsType);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.paramsType !== undefined && (obj.paramsType = message.paramsType);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryParamsRequest();\n message.paramsType = object.paramsType ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryParamsResponse() {\n return {\n votingParams: gov_1.VotingParams.fromPartial({}),\n depositParams: gov_1.DepositParams.fromPartial({}),\n tallyParams: gov_1.TallyParams.fromPartial({}),\n };\n}\nexports.QueryParamsResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryParamsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.votingParams !== undefined) {\n gov_1.VotingParams.encode(message.votingParams, writer.uint32(10).fork()).ldelim();\n }\n if (message.depositParams !== undefined) {\n gov_1.DepositParams.encode(message.depositParams, writer.uint32(18).fork()).ldelim();\n }\n if (message.tallyParams !== undefined) {\n gov_1.TallyParams.encode(message.tallyParams, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.votingParams = gov_1.VotingParams.decode(reader, reader.uint32());\n break;\n case 2:\n message.depositParams = gov_1.DepositParams.decode(reader, reader.uint32());\n break;\n case 3:\n message.tallyParams = gov_1.TallyParams.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryParamsResponse();\n if ((0, helpers_1.isSet)(object.votingParams))\n obj.votingParams = gov_1.VotingParams.fromJSON(object.votingParams);\n if ((0, helpers_1.isSet)(object.depositParams))\n obj.depositParams = gov_1.DepositParams.fromJSON(object.depositParams);\n if ((0, helpers_1.isSet)(object.tallyParams))\n obj.tallyParams = gov_1.TallyParams.fromJSON(object.tallyParams);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.votingParams !== undefined &&\n (obj.votingParams = message.votingParams ? gov_1.VotingParams.toJSON(message.votingParams) : undefined);\n message.depositParams !== undefined &&\n (obj.depositParams = message.depositParams ? gov_1.DepositParams.toJSON(message.depositParams) : undefined);\n message.tallyParams !== undefined &&\n (obj.tallyParams = message.tallyParams ? gov_1.TallyParams.toJSON(message.tallyParams) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryParamsResponse();\n if (object.votingParams !== undefined && object.votingParams !== null) {\n message.votingParams = gov_1.VotingParams.fromPartial(object.votingParams);\n }\n if (object.depositParams !== undefined && object.depositParams !== null) {\n message.depositParams = gov_1.DepositParams.fromPartial(object.depositParams);\n }\n if (object.tallyParams !== undefined && object.tallyParams !== null) {\n message.tallyParams = gov_1.TallyParams.fromPartial(object.tallyParams);\n }\n return message;\n },\n};\nfunction createBaseQueryDepositRequest() {\n return {\n proposalId: BigInt(0),\n depositor: \"\",\n };\n}\nexports.QueryDepositRequest = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryDepositRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDepositRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.depositor = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDepositRequest();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.depositor))\n obj.depositor = String(object.depositor);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.depositor !== undefined && (obj.depositor = message.depositor);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDepositRequest();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.depositor = object.depositor ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryDepositResponse() {\n return {\n deposit: gov_1.Deposit.fromPartial({}),\n };\n}\nexports.QueryDepositResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryDepositResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.deposit !== undefined) {\n gov_1.Deposit.encode(message.deposit, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDepositResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.deposit = gov_1.Deposit.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDepositResponse();\n if ((0, helpers_1.isSet)(object.deposit))\n obj.deposit = gov_1.Deposit.fromJSON(object.deposit);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.deposit !== undefined &&\n (obj.deposit = message.deposit ? gov_1.Deposit.toJSON(message.deposit) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDepositResponse();\n if (object.deposit !== undefined && object.deposit !== null) {\n message.deposit = gov_1.Deposit.fromPartial(object.deposit);\n }\n return message;\n },\n};\nfunction createBaseQueryDepositsRequest() {\n return {\n proposalId: BigInt(0),\n pagination: undefined,\n };\n}\nexports.QueryDepositsRequest = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryDepositsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDepositsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDepositsRequest();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDepositsRequest();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDepositsResponse() {\n return {\n deposits: [],\n pagination: undefined,\n };\n}\nexports.QueryDepositsResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryDepositsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.deposits) {\n gov_1.Deposit.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDepositsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.deposits.push(gov_1.Deposit.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDepositsResponse();\n if (Array.isArray(object?.deposits))\n obj.deposits = object.deposits.map((e) => gov_1.Deposit.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.deposits) {\n obj.deposits = message.deposits.map((e) => (e ? gov_1.Deposit.toJSON(e) : undefined));\n }\n else {\n obj.deposits = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDepositsResponse();\n message.deposits = object.deposits?.map((e) => gov_1.Deposit.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryTallyResultRequest() {\n return {\n proposalId: BigInt(0),\n };\n}\nexports.QueryTallyResultRequest = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryTallyResultRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryTallyResultRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryTallyResultRequest();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryTallyResultRequest();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n return message;\n },\n};\nfunction createBaseQueryTallyResultResponse() {\n return {\n tally: gov_1.TallyResult.fromPartial({}),\n };\n}\nexports.QueryTallyResultResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryTallyResultResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.tally !== undefined) {\n gov_1.TallyResult.encode(message.tally, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryTallyResultResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tally = gov_1.TallyResult.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryTallyResultResponse();\n if ((0, helpers_1.isSet)(object.tally))\n obj.tally = gov_1.TallyResult.fromJSON(object.tally);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.tally !== undefined &&\n (obj.tally = message.tally ? gov_1.TallyResult.toJSON(message.tally) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryTallyResultResponse();\n if (object.tally !== undefined && object.tally !== null) {\n message.tally = gov_1.TallyResult.fromPartial(object.tally);\n }\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Proposal = this.Proposal.bind(this);\n this.Proposals = this.Proposals.bind(this);\n this.Vote = this.Vote.bind(this);\n this.Votes = this.Votes.bind(this);\n this.Params = this.Params.bind(this);\n this.Deposit = this.Deposit.bind(this);\n this.Deposits = this.Deposits.bind(this);\n this.TallyResult = this.TallyResult.bind(this);\n }\n Proposal(request) {\n const data = exports.QueryProposalRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Proposal\", data);\n return promise.then((data) => exports.QueryProposalResponse.decode(new binary_1.BinaryReader(data)));\n }\n Proposals(request) {\n const data = exports.QueryProposalsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Proposals\", data);\n return promise.then((data) => exports.QueryProposalsResponse.decode(new binary_1.BinaryReader(data)));\n }\n Vote(request) {\n const data = exports.QueryVoteRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Vote\", data);\n return promise.then((data) => exports.QueryVoteResponse.decode(new binary_1.BinaryReader(data)));\n }\n Votes(request) {\n const data = exports.QueryVotesRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Votes\", data);\n return promise.then((data) => exports.QueryVotesResponse.decode(new binary_1.BinaryReader(data)));\n }\n Params(request) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n Deposit(request) {\n const data = exports.QueryDepositRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Deposit\", data);\n return promise.then((data) => exports.QueryDepositResponse.decode(new binary_1.BinaryReader(data)));\n }\n Deposits(request) {\n const data = exports.QueryDepositsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Deposits\", data);\n return promise.then((data) => exports.QueryDepositsResponse.decode(new binary_1.BinaryReader(data)));\n }\n TallyResult(request) {\n const data = exports.QueryTallyResultRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"TallyResult\", data);\n return promise.then((data) => exports.QueryTallyResultResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgDepositResponse = exports.MsgDeposit = exports.MsgVoteWeightedResponse = exports.MsgVoteWeighted = exports.MsgVoteResponse = exports.MsgVote = exports.MsgSubmitProposalResponse = exports.MsgSubmitProposal = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst gov_1 = require(\"./gov\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.gov.v1beta1\";\nfunction createBaseMsgSubmitProposal() {\n return {\n content: undefined,\n initialDeposit: [],\n proposer: \"\",\n };\n}\nexports.MsgSubmitProposal = {\n typeUrl: \"/cosmos.gov.v1beta1.MsgSubmitProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.content !== undefined) {\n any_1.Any.encode(message.content, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.initialDeposit) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.proposer !== \"\") {\n writer.uint32(26).string(message.proposer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubmitProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.content = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.initialDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 3:\n message.proposer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgSubmitProposal();\n if ((0, helpers_1.isSet)(object.content))\n obj.content = any_1.Any.fromJSON(object.content);\n if (Array.isArray(object?.initialDeposit))\n obj.initialDeposit = object.initialDeposit.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.proposer))\n obj.proposer = String(object.proposer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.content !== undefined &&\n (obj.content = message.content ? any_1.Any.toJSON(message.content) : undefined);\n if (message.initialDeposit) {\n obj.initialDeposit = message.initialDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.initialDeposit = [];\n }\n message.proposer !== undefined && (obj.proposer = message.proposer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgSubmitProposal();\n if (object.content !== undefined && object.content !== null) {\n message.content = any_1.Any.fromPartial(object.content);\n }\n message.initialDeposit = object.initialDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n message.proposer = object.proposer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgSubmitProposalResponse() {\n return {\n proposalId: BigInt(0),\n };\n}\nexports.MsgSubmitProposalResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.MsgSubmitProposalResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubmitProposalResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgSubmitProposalResponse();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgSubmitProposalResponse();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n return message;\n },\n};\nfunction createBaseMsgVote() {\n return {\n proposalId: BigInt(0),\n voter: \"\",\n option: 0,\n };\n}\nexports.MsgVote = {\n typeUrl: \"/cosmos.gov.v1beta1.MsgVote\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (message.option !== 0) {\n writer.uint32(24).int32(message.option);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVote();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.option = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgVote();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.voter))\n obj.voter = String(object.voter);\n if ((0, helpers_1.isSet)(object.option))\n obj.option = (0, gov_1.voteOptionFromJSON)(object.option);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n message.option !== undefined && (obj.option = (0, gov_1.voteOptionToJSON)(message.option));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgVote();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.voter = object.voter ?? \"\";\n message.option = object.option ?? 0;\n return message;\n },\n};\nfunction createBaseMsgVoteResponse() {\n return {};\n}\nexports.MsgVoteResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.MsgVoteResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVoteResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgVoteResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgVoteResponse();\n return message;\n },\n};\nfunction createBaseMsgVoteWeighted() {\n return {\n proposalId: BigInt(0),\n voter: \"\",\n options: [],\n };\n}\nexports.MsgVoteWeighted = {\n typeUrl: \"/cosmos.gov.v1beta1.MsgVoteWeighted\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n for (const v of message.options) {\n gov_1.WeightedVoteOption.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVoteWeighted();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.options.push(gov_1.WeightedVoteOption.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgVoteWeighted();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.voter))\n obj.voter = String(object.voter);\n if (Array.isArray(object?.options))\n obj.options = object.options.map((e) => gov_1.WeightedVoteOption.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n if (message.options) {\n obj.options = message.options.map((e) => (e ? gov_1.WeightedVoteOption.toJSON(e) : undefined));\n }\n else {\n obj.options = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgVoteWeighted();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.voter = object.voter ?? \"\";\n message.options = object.options?.map((e) => gov_1.WeightedVoteOption.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgVoteWeightedResponse() {\n return {};\n}\nexports.MsgVoteWeightedResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.MsgVoteWeightedResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVoteWeightedResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgVoteWeightedResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgVoteWeightedResponse();\n return message;\n },\n};\nfunction createBaseMsgDeposit() {\n return {\n proposalId: BigInt(0),\n depositor: \"\",\n amount: [],\n };\n}\nexports.MsgDeposit = {\n typeUrl: \"/cosmos.gov.v1beta1.MsgDeposit\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgDeposit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.depositor = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgDeposit();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.depositor))\n obj.depositor = String(object.depositor);\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.depositor !== undefined && (obj.depositor = message.depositor);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgDeposit();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.depositor = object.depositor ?? \"\";\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgDepositResponse() {\n return {};\n}\nexports.MsgDepositResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.MsgDepositResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgDepositResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgDepositResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgDepositResponse();\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.SubmitProposal = this.SubmitProposal.bind(this);\n this.Vote = this.Vote.bind(this);\n this.VoteWeighted = this.VoteWeighted.bind(this);\n this.Deposit = this.Deposit.bind(this);\n }\n SubmitProposal(request) {\n const data = exports.MsgSubmitProposal.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Msg\", \"SubmitProposal\", data);\n return promise.then((data) => exports.MsgSubmitProposalResponse.decode(new binary_1.BinaryReader(data)));\n }\n Vote(request) {\n const data = exports.MsgVote.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Msg\", \"Vote\", data);\n return promise.then((data) => exports.MsgVoteResponse.decode(new binary_1.BinaryReader(data)));\n }\n VoteWeighted(request) {\n const data = exports.MsgVoteWeighted.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Msg\", \"VoteWeighted\", data);\n return promise.then((data) => exports.MsgVoteWeightedResponse.decode(new binary_1.BinaryReader(data)));\n }\n Deposit(request) {\n const data = exports.MsgDeposit.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Msg\", \"Deposit\", data);\n return promise.then((data) => exports.MsgDepositResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgLeaveGroupResponse = exports.MsgLeaveGroup = exports.MsgExecResponse = exports.MsgExec = exports.MsgVoteResponse = exports.MsgVote = exports.MsgWithdrawProposalResponse = exports.MsgWithdrawProposal = exports.MsgSubmitProposalResponse = exports.MsgSubmitProposal = exports.MsgUpdateGroupPolicyMetadataResponse = exports.MsgUpdateGroupPolicyMetadata = exports.MsgUpdateGroupPolicyDecisionPolicyResponse = exports.MsgUpdateGroupPolicyDecisionPolicy = exports.MsgCreateGroupWithPolicyResponse = exports.MsgCreateGroupWithPolicy = exports.MsgUpdateGroupPolicyAdminResponse = exports.MsgUpdateGroupPolicyAdmin = exports.MsgCreateGroupPolicyResponse = exports.MsgCreateGroupPolicy = exports.MsgUpdateGroupMetadataResponse = exports.MsgUpdateGroupMetadata = exports.MsgUpdateGroupAdminResponse = exports.MsgUpdateGroupAdmin = exports.MsgUpdateGroupMembersResponse = exports.MsgUpdateGroupMembers = exports.MsgCreateGroupResponse = exports.MsgCreateGroup = exports.execToJSON = exports.execFromJSON = exports.Exec = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst types_1 = require(\"./types\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.group.v1\";\n/** Exec defines modes of execution of a proposal on creation or on new vote. */\nvar Exec;\n(function (Exec) {\n /**\n * EXEC_UNSPECIFIED - An empty value means that there should be a separate\n * MsgExec request for the proposal to execute.\n */\n Exec[Exec[\"EXEC_UNSPECIFIED\"] = 0] = \"EXEC_UNSPECIFIED\";\n /**\n * EXEC_TRY - Try to execute the proposal immediately.\n * If the proposal is not allowed per the DecisionPolicy,\n * the proposal will still be open and could\n * be executed at a later point.\n */\n Exec[Exec[\"EXEC_TRY\"] = 1] = \"EXEC_TRY\";\n Exec[Exec[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(Exec || (exports.Exec = Exec = {}));\nfunction execFromJSON(object) {\n switch (object) {\n case 0:\n case \"EXEC_UNSPECIFIED\":\n return Exec.EXEC_UNSPECIFIED;\n case 1:\n case \"EXEC_TRY\":\n return Exec.EXEC_TRY;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return Exec.UNRECOGNIZED;\n }\n}\nexports.execFromJSON = execFromJSON;\nfunction execToJSON(object) {\n switch (object) {\n case Exec.EXEC_UNSPECIFIED:\n return \"EXEC_UNSPECIFIED\";\n case Exec.EXEC_TRY:\n return \"EXEC_TRY\";\n case Exec.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.execToJSON = execToJSON;\nfunction createBaseMsgCreateGroup() {\n return {\n admin: \"\",\n members: [],\n metadata: \"\",\n };\n}\nexports.MsgCreateGroup = {\n typeUrl: \"/cosmos.group.v1.MsgCreateGroup\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.admin !== \"\") {\n writer.uint32(10).string(message.admin);\n }\n for (const v of message.members) {\n types_1.MemberRequest.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.metadata !== \"\") {\n writer.uint32(26).string(message.metadata);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateGroup();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.admin = reader.string();\n break;\n case 2:\n message.members.push(types_1.MemberRequest.decode(reader, reader.uint32()));\n break;\n case 3:\n message.metadata = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCreateGroup();\n if ((0, helpers_1.isSet)(object.admin))\n obj.admin = String(object.admin);\n if (Array.isArray(object?.members))\n obj.members = object.members.map((e) => types_1.MemberRequest.fromJSON(e));\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.admin !== undefined && (obj.admin = message.admin);\n if (message.members) {\n obj.members = message.members.map((e) => (e ? types_1.MemberRequest.toJSON(e) : undefined));\n }\n else {\n obj.members = [];\n }\n message.metadata !== undefined && (obj.metadata = message.metadata);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCreateGroup();\n message.admin = object.admin ?? \"\";\n message.members = object.members?.map((e) => types_1.MemberRequest.fromPartial(e)) || [];\n message.metadata = object.metadata ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgCreateGroupResponse() {\n return {\n groupId: BigInt(0),\n };\n}\nexports.MsgCreateGroupResponse = {\n typeUrl: \"/cosmos.group.v1.MsgCreateGroupResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.groupId !== BigInt(0)) {\n writer.uint32(8).uint64(message.groupId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateGroupResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.groupId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCreateGroupResponse();\n if ((0, helpers_1.isSet)(object.groupId))\n obj.groupId = BigInt(object.groupId.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCreateGroupResponse();\n if (object.groupId !== undefined && object.groupId !== null) {\n message.groupId = BigInt(object.groupId.toString());\n }\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupMembers() {\n return {\n admin: \"\",\n groupId: BigInt(0),\n memberUpdates: [],\n };\n}\nexports.MsgUpdateGroupMembers = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupMembers\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.admin !== \"\") {\n writer.uint32(10).string(message.admin);\n }\n if (message.groupId !== BigInt(0)) {\n writer.uint32(16).uint64(message.groupId);\n }\n for (const v of message.memberUpdates) {\n types_1.MemberRequest.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupMembers();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.admin = reader.string();\n break;\n case 2:\n message.groupId = reader.uint64();\n break;\n case 3:\n message.memberUpdates.push(types_1.MemberRequest.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpdateGroupMembers();\n if ((0, helpers_1.isSet)(object.admin))\n obj.admin = String(object.admin);\n if ((0, helpers_1.isSet)(object.groupId))\n obj.groupId = BigInt(object.groupId.toString());\n if (Array.isArray(object?.memberUpdates))\n obj.memberUpdates = object.memberUpdates.map((e) => types_1.MemberRequest.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.admin !== undefined && (obj.admin = message.admin);\n message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());\n if (message.memberUpdates) {\n obj.memberUpdates = message.memberUpdates.map((e) => (e ? types_1.MemberRequest.toJSON(e) : undefined));\n }\n else {\n obj.memberUpdates = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpdateGroupMembers();\n message.admin = object.admin ?? \"\";\n if (object.groupId !== undefined && object.groupId !== null) {\n message.groupId = BigInt(object.groupId.toString());\n }\n message.memberUpdates = object.memberUpdates?.map((e) => types_1.MemberRequest.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupMembersResponse() {\n return {};\n}\nexports.MsgUpdateGroupMembersResponse = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupMembersResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupMembersResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpdateGroupMembersResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpdateGroupMembersResponse();\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupAdmin() {\n return {\n admin: \"\",\n groupId: BigInt(0),\n newAdmin: \"\",\n };\n}\nexports.MsgUpdateGroupAdmin = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupAdmin\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.admin !== \"\") {\n writer.uint32(10).string(message.admin);\n }\n if (message.groupId !== BigInt(0)) {\n writer.uint32(16).uint64(message.groupId);\n }\n if (message.newAdmin !== \"\") {\n writer.uint32(26).string(message.newAdmin);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupAdmin();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.admin = reader.string();\n break;\n case 2:\n message.groupId = reader.uint64();\n break;\n case 3:\n message.newAdmin = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpdateGroupAdmin();\n if ((0, helpers_1.isSet)(object.admin))\n obj.admin = String(object.admin);\n if ((0, helpers_1.isSet)(object.groupId))\n obj.groupId = BigInt(object.groupId.toString());\n if ((0, helpers_1.isSet)(object.newAdmin))\n obj.newAdmin = String(object.newAdmin);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.admin !== undefined && (obj.admin = message.admin);\n message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());\n message.newAdmin !== undefined && (obj.newAdmin = message.newAdmin);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpdateGroupAdmin();\n message.admin = object.admin ?? \"\";\n if (object.groupId !== undefined && object.groupId !== null) {\n message.groupId = BigInt(object.groupId.toString());\n }\n message.newAdmin = object.newAdmin ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupAdminResponse() {\n return {};\n}\nexports.MsgUpdateGroupAdminResponse = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupAdminResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupAdminResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpdateGroupAdminResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpdateGroupAdminResponse();\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupMetadata() {\n return {\n admin: \"\",\n groupId: BigInt(0),\n metadata: \"\",\n };\n}\nexports.MsgUpdateGroupMetadata = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupMetadata\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.admin !== \"\") {\n writer.uint32(10).string(message.admin);\n }\n if (message.groupId !== BigInt(0)) {\n writer.uint32(16).uint64(message.groupId);\n }\n if (message.metadata !== \"\") {\n writer.uint32(26).string(message.metadata);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupMetadata();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.admin = reader.string();\n break;\n case 2:\n message.groupId = reader.uint64();\n break;\n case 3:\n message.metadata = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpdateGroupMetadata();\n if ((0, helpers_1.isSet)(object.admin))\n obj.admin = String(object.admin);\n if ((0, helpers_1.isSet)(object.groupId))\n obj.groupId = BigInt(object.groupId.toString());\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.admin !== undefined && (obj.admin = message.admin);\n message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());\n message.metadata !== undefined && (obj.metadata = message.metadata);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpdateGroupMetadata();\n message.admin = object.admin ?? \"\";\n if (object.groupId !== undefined && object.groupId !== null) {\n message.groupId = BigInt(object.groupId.toString());\n }\n message.metadata = object.metadata ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupMetadataResponse() {\n return {};\n}\nexports.MsgUpdateGroupMetadataResponse = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupMetadataResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupMetadataResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpdateGroupMetadataResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpdateGroupMetadataResponse();\n return message;\n },\n};\nfunction createBaseMsgCreateGroupPolicy() {\n return {\n admin: \"\",\n groupId: BigInt(0),\n metadata: \"\",\n decisionPolicy: undefined,\n };\n}\nexports.MsgCreateGroupPolicy = {\n typeUrl: \"/cosmos.group.v1.MsgCreateGroupPolicy\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.admin !== \"\") {\n writer.uint32(10).string(message.admin);\n }\n if (message.groupId !== BigInt(0)) {\n writer.uint32(16).uint64(message.groupId);\n }\n if (message.metadata !== \"\") {\n writer.uint32(26).string(message.metadata);\n }\n if (message.decisionPolicy !== undefined) {\n any_1.Any.encode(message.decisionPolicy, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateGroupPolicy();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.admin = reader.string();\n break;\n case 2:\n message.groupId = reader.uint64();\n break;\n case 3:\n message.metadata = reader.string();\n break;\n case 4:\n message.decisionPolicy = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCreateGroupPolicy();\n if ((0, helpers_1.isSet)(object.admin))\n obj.admin = String(object.admin);\n if ((0, helpers_1.isSet)(object.groupId))\n obj.groupId = BigInt(object.groupId.toString());\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n if ((0, helpers_1.isSet)(object.decisionPolicy))\n obj.decisionPolicy = any_1.Any.fromJSON(object.decisionPolicy);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.admin !== undefined && (obj.admin = message.admin);\n message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());\n message.metadata !== undefined && (obj.metadata = message.metadata);\n message.decisionPolicy !== undefined &&\n (obj.decisionPolicy = message.decisionPolicy ? any_1.Any.toJSON(message.decisionPolicy) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCreateGroupPolicy();\n message.admin = object.admin ?? \"\";\n if (object.groupId !== undefined && object.groupId !== null) {\n message.groupId = BigInt(object.groupId.toString());\n }\n message.metadata = object.metadata ?? \"\";\n if (object.decisionPolicy !== undefined && object.decisionPolicy !== null) {\n message.decisionPolicy = any_1.Any.fromPartial(object.decisionPolicy);\n }\n return message;\n },\n};\nfunction createBaseMsgCreateGroupPolicyResponse() {\n return {\n address: \"\",\n };\n}\nexports.MsgCreateGroupPolicyResponse = {\n typeUrl: \"/cosmos.group.v1.MsgCreateGroupPolicyResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateGroupPolicyResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCreateGroupPolicyResponse();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCreateGroupPolicyResponse();\n message.address = object.address ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupPolicyAdmin() {\n return {\n admin: \"\",\n groupPolicyAddress: \"\",\n newAdmin: \"\",\n };\n}\nexports.MsgUpdateGroupPolicyAdmin = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupPolicyAdmin\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.admin !== \"\") {\n writer.uint32(10).string(message.admin);\n }\n if (message.groupPolicyAddress !== \"\") {\n writer.uint32(18).string(message.groupPolicyAddress);\n }\n if (message.newAdmin !== \"\") {\n writer.uint32(26).string(message.newAdmin);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupPolicyAdmin();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.admin = reader.string();\n break;\n case 2:\n message.groupPolicyAddress = reader.string();\n break;\n case 3:\n message.newAdmin = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpdateGroupPolicyAdmin();\n if ((0, helpers_1.isSet)(object.admin))\n obj.admin = String(object.admin);\n if ((0, helpers_1.isSet)(object.groupPolicyAddress))\n obj.groupPolicyAddress = String(object.groupPolicyAddress);\n if ((0, helpers_1.isSet)(object.newAdmin))\n obj.newAdmin = String(object.newAdmin);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.admin !== undefined && (obj.admin = message.admin);\n message.groupPolicyAddress !== undefined && (obj.groupPolicyAddress = message.groupPolicyAddress);\n message.newAdmin !== undefined && (obj.newAdmin = message.newAdmin);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpdateGroupPolicyAdmin();\n message.admin = object.admin ?? \"\";\n message.groupPolicyAddress = object.groupPolicyAddress ?? \"\";\n message.newAdmin = object.newAdmin ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupPolicyAdminResponse() {\n return {};\n}\nexports.MsgUpdateGroupPolicyAdminResponse = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupPolicyAdminResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupPolicyAdminResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpdateGroupPolicyAdminResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpdateGroupPolicyAdminResponse();\n return message;\n },\n};\nfunction createBaseMsgCreateGroupWithPolicy() {\n return {\n admin: \"\",\n members: [],\n groupMetadata: \"\",\n groupPolicyMetadata: \"\",\n groupPolicyAsAdmin: false,\n decisionPolicy: undefined,\n };\n}\nexports.MsgCreateGroupWithPolicy = {\n typeUrl: \"/cosmos.group.v1.MsgCreateGroupWithPolicy\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.admin !== \"\") {\n writer.uint32(10).string(message.admin);\n }\n for (const v of message.members) {\n types_1.MemberRequest.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.groupMetadata !== \"\") {\n writer.uint32(26).string(message.groupMetadata);\n }\n if (message.groupPolicyMetadata !== \"\") {\n writer.uint32(34).string(message.groupPolicyMetadata);\n }\n if (message.groupPolicyAsAdmin === true) {\n writer.uint32(40).bool(message.groupPolicyAsAdmin);\n }\n if (message.decisionPolicy !== undefined) {\n any_1.Any.encode(message.decisionPolicy, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateGroupWithPolicy();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.admin = reader.string();\n break;\n case 2:\n message.members.push(types_1.MemberRequest.decode(reader, reader.uint32()));\n break;\n case 3:\n message.groupMetadata = reader.string();\n break;\n case 4:\n message.groupPolicyMetadata = reader.string();\n break;\n case 5:\n message.groupPolicyAsAdmin = reader.bool();\n break;\n case 6:\n message.decisionPolicy = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCreateGroupWithPolicy();\n if ((0, helpers_1.isSet)(object.admin))\n obj.admin = String(object.admin);\n if (Array.isArray(object?.members))\n obj.members = object.members.map((e) => types_1.MemberRequest.fromJSON(e));\n if ((0, helpers_1.isSet)(object.groupMetadata))\n obj.groupMetadata = String(object.groupMetadata);\n if ((0, helpers_1.isSet)(object.groupPolicyMetadata))\n obj.groupPolicyMetadata = String(object.groupPolicyMetadata);\n if ((0, helpers_1.isSet)(object.groupPolicyAsAdmin))\n obj.groupPolicyAsAdmin = Boolean(object.groupPolicyAsAdmin);\n if ((0, helpers_1.isSet)(object.decisionPolicy))\n obj.decisionPolicy = any_1.Any.fromJSON(object.decisionPolicy);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.admin !== undefined && (obj.admin = message.admin);\n if (message.members) {\n obj.members = message.members.map((e) => (e ? types_1.MemberRequest.toJSON(e) : undefined));\n }\n else {\n obj.members = [];\n }\n message.groupMetadata !== undefined && (obj.groupMetadata = message.groupMetadata);\n message.groupPolicyMetadata !== undefined && (obj.groupPolicyMetadata = message.groupPolicyMetadata);\n message.groupPolicyAsAdmin !== undefined && (obj.groupPolicyAsAdmin = message.groupPolicyAsAdmin);\n message.decisionPolicy !== undefined &&\n (obj.decisionPolicy = message.decisionPolicy ? any_1.Any.toJSON(message.decisionPolicy) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCreateGroupWithPolicy();\n message.admin = object.admin ?? \"\";\n message.members = object.members?.map((e) => types_1.MemberRequest.fromPartial(e)) || [];\n message.groupMetadata = object.groupMetadata ?? \"\";\n message.groupPolicyMetadata = object.groupPolicyMetadata ?? \"\";\n message.groupPolicyAsAdmin = object.groupPolicyAsAdmin ?? false;\n if (object.decisionPolicy !== undefined && object.decisionPolicy !== null) {\n message.decisionPolicy = any_1.Any.fromPartial(object.decisionPolicy);\n }\n return message;\n },\n};\nfunction createBaseMsgCreateGroupWithPolicyResponse() {\n return {\n groupId: BigInt(0),\n groupPolicyAddress: \"\",\n };\n}\nexports.MsgCreateGroupWithPolicyResponse = {\n typeUrl: \"/cosmos.group.v1.MsgCreateGroupWithPolicyResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.groupId !== BigInt(0)) {\n writer.uint32(8).uint64(message.groupId);\n }\n if (message.groupPolicyAddress !== \"\") {\n writer.uint32(18).string(message.groupPolicyAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateGroupWithPolicyResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.groupId = reader.uint64();\n break;\n case 2:\n message.groupPolicyAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCreateGroupWithPolicyResponse();\n if ((0, helpers_1.isSet)(object.groupId))\n obj.groupId = BigInt(object.groupId.toString());\n if ((0, helpers_1.isSet)(object.groupPolicyAddress))\n obj.groupPolicyAddress = String(object.groupPolicyAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());\n message.groupPolicyAddress !== undefined && (obj.groupPolicyAddress = message.groupPolicyAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCreateGroupWithPolicyResponse();\n if (object.groupId !== undefined && object.groupId !== null) {\n message.groupId = BigInt(object.groupId.toString());\n }\n message.groupPolicyAddress = object.groupPolicyAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupPolicyDecisionPolicy() {\n return {\n admin: \"\",\n groupPolicyAddress: \"\",\n decisionPolicy: undefined,\n };\n}\nexports.MsgUpdateGroupPolicyDecisionPolicy = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupPolicyDecisionPolicy\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.admin !== \"\") {\n writer.uint32(10).string(message.admin);\n }\n if (message.groupPolicyAddress !== \"\") {\n writer.uint32(18).string(message.groupPolicyAddress);\n }\n if (message.decisionPolicy !== undefined) {\n any_1.Any.encode(message.decisionPolicy, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupPolicyDecisionPolicy();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.admin = reader.string();\n break;\n case 2:\n message.groupPolicyAddress = reader.string();\n break;\n case 3:\n message.decisionPolicy = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpdateGroupPolicyDecisionPolicy();\n if ((0, helpers_1.isSet)(object.admin))\n obj.admin = String(object.admin);\n if ((0, helpers_1.isSet)(object.groupPolicyAddress))\n obj.groupPolicyAddress = String(object.groupPolicyAddress);\n if ((0, helpers_1.isSet)(object.decisionPolicy))\n obj.decisionPolicy = any_1.Any.fromJSON(object.decisionPolicy);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.admin !== undefined && (obj.admin = message.admin);\n message.groupPolicyAddress !== undefined && (obj.groupPolicyAddress = message.groupPolicyAddress);\n message.decisionPolicy !== undefined &&\n (obj.decisionPolicy = message.decisionPolicy ? any_1.Any.toJSON(message.decisionPolicy) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpdateGroupPolicyDecisionPolicy();\n message.admin = object.admin ?? \"\";\n message.groupPolicyAddress = object.groupPolicyAddress ?? \"\";\n if (object.decisionPolicy !== undefined && object.decisionPolicy !== null) {\n message.decisionPolicy = any_1.Any.fromPartial(object.decisionPolicy);\n }\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupPolicyDecisionPolicyResponse() {\n return {};\n}\nexports.MsgUpdateGroupPolicyDecisionPolicyResponse = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupPolicyDecisionPolicyResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupPolicyDecisionPolicyResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpdateGroupPolicyDecisionPolicyResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpdateGroupPolicyDecisionPolicyResponse();\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupPolicyMetadata() {\n return {\n admin: \"\",\n groupPolicyAddress: \"\",\n metadata: \"\",\n };\n}\nexports.MsgUpdateGroupPolicyMetadata = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupPolicyMetadata\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.admin !== \"\") {\n writer.uint32(10).string(message.admin);\n }\n if (message.groupPolicyAddress !== \"\") {\n writer.uint32(18).string(message.groupPolicyAddress);\n }\n if (message.metadata !== \"\") {\n writer.uint32(26).string(message.metadata);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupPolicyMetadata();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.admin = reader.string();\n break;\n case 2:\n message.groupPolicyAddress = reader.string();\n break;\n case 3:\n message.metadata = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpdateGroupPolicyMetadata();\n if ((0, helpers_1.isSet)(object.admin))\n obj.admin = String(object.admin);\n if ((0, helpers_1.isSet)(object.groupPolicyAddress))\n obj.groupPolicyAddress = String(object.groupPolicyAddress);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.admin !== undefined && (obj.admin = message.admin);\n message.groupPolicyAddress !== undefined && (obj.groupPolicyAddress = message.groupPolicyAddress);\n message.metadata !== undefined && (obj.metadata = message.metadata);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpdateGroupPolicyMetadata();\n message.admin = object.admin ?? \"\";\n message.groupPolicyAddress = object.groupPolicyAddress ?? \"\";\n message.metadata = object.metadata ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupPolicyMetadataResponse() {\n return {};\n}\nexports.MsgUpdateGroupPolicyMetadataResponse = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupPolicyMetadataResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupPolicyMetadataResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpdateGroupPolicyMetadataResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpdateGroupPolicyMetadataResponse();\n return message;\n },\n};\nfunction createBaseMsgSubmitProposal() {\n return {\n groupPolicyAddress: \"\",\n proposers: [],\n metadata: \"\",\n messages: [],\n exec: 0,\n title: \"\",\n summary: \"\",\n };\n}\nexports.MsgSubmitProposal = {\n typeUrl: \"/cosmos.group.v1.MsgSubmitProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.groupPolicyAddress !== \"\") {\n writer.uint32(10).string(message.groupPolicyAddress);\n }\n for (const v of message.proposers) {\n writer.uint32(18).string(v);\n }\n if (message.metadata !== \"\") {\n writer.uint32(26).string(message.metadata);\n }\n for (const v of message.messages) {\n any_1.Any.encode(v, writer.uint32(34).fork()).ldelim();\n }\n if (message.exec !== 0) {\n writer.uint32(40).int32(message.exec);\n }\n if (message.title !== \"\") {\n writer.uint32(50).string(message.title);\n }\n if (message.summary !== \"\") {\n writer.uint32(58).string(message.summary);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubmitProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.groupPolicyAddress = reader.string();\n break;\n case 2:\n message.proposers.push(reader.string());\n break;\n case 3:\n message.metadata = reader.string();\n break;\n case 4:\n message.messages.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 5:\n message.exec = reader.int32();\n break;\n case 6:\n message.title = reader.string();\n break;\n case 7:\n message.summary = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgSubmitProposal();\n if ((0, helpers_1.isSet)(object.groupPolicyAddress))\n obj.groupPolicyAddress = String(object.groupPolicyAddress);\n if (Array.isArray(object?.proposers))\n obj.proposers = object.proposers.map((e) => String(e));\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n if (Array.isArray(object?.messages))\n obj.messages = object.messages.map((e) => any_1.Any.fromJSON(e));\n if ((0, helpers_1.isSet)(object.exec))\n obj.exec = execFromJSON(object.exec);\n if ((0, helpers_1.isSet)(object.title))\n obj.title = String(object.title);\n if ((0, helpers_1.isSet)(object.summary))\n obj.summary = String(object.summary);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.groupPolicyAddress !== undefined && (obj.groupPolicyAddress = message.groupPolicyAddress);\n if (message.proposers) {\n obj.proposers = message.proposers.map((e) => e);\n }\n else {\n obj.proposers = [];\n }\n message.metadata !== undefined && (obj.metadata = message.metadata);\n if (message.messages) {\n obj.messages = message.messages.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.messages = [];\n }\n message.exec !== undefined && (obj.exec = execToJSON(message.exec));\n message.title !== undefined && (obj.title = message.title);\n message.summary !== undefined && (obj.summary = message.summary);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgSubmitProposal();\n message.groupPolicyAddress = object.groupPolicyAddress ?? \"\";\n message.proposers = object.proposers?.map((e) => e) || [];\n message.metadata = object.metadata ?? \"\";\n message.messages = object.messages?.map((e) => any_1.Any.fromPartial(e)) || [];\n message.exec = object.exec ?? 0;\n message.title = object.title ?? \"\";\n message.summary = object.summary ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgSubmitProposalResponse() {\n return {\n proposalId: BigInt(0),\n };\n}\nexports.MsgSubmitProposalResponse = {\n typeUrl: \"/cosmos.group.v1.MsgSubmitProposalResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubmitProposalResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgSubmitProposalResponse();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgSubmitProposalResponse();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n return message;\n },\n};\nfunction createBaseMsgWithdrawProposal() {\n return {\n proposalId: BigInt(0),\n address: \"\",\n };\n}\nexports.MsgWithdrawProposal = {\n typeUrl: \"/cosmos.group.v1.MsgWithdrawProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.address !== \"\") {\n writer.uint32(18).string(message.address);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgWithdrawProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.address = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgWithdrawProposal();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.address !== undefined && (obj.address = message.address);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgWithdrawProposal();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.address = object.address ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgWithdrawProposalResponse() {\n return {};\n}\nexports.MsgWithdrawProposalResponse = {\n typeUrl: \"/cosmos.group.v1.MsgWithdrawProposalResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgWithdrawProposalResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgWithdrawProposalResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgWithdrawProposalResponse();\n return message;\n },\n};\nfunction createBaseMsgVote() {\n return {\n proposalId: BigInt(0),\n voter: \"\",\n option: 0,\n metadata: \"\",\n exec: 0,\n };\n}\nexports.MsgVote = {\n typeUrl: \"/cosmos.group.v1.MsgVote\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (message.option !== 0) {\n writer.uint32(24).int32(message.option);\n }\n if (message.metadata !== \"\") {\n writer.uint32(34).string(message.metadata);\n }\n if (message.exec !== 0) {\n writer.uint32(40).int32(message.exec);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVote();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.option = reader.int32();\n break;\n case 4:\n message.metadata = reader.string();\n break;\n case 5:\n message.exec = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgVote();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.voter))\n obj.voter = String(object.voter);\n if ((0, helpers_1.isSet)(object.option))\n obj.option = (0, types_1.voteOptionFromJSON)(object.option);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n if ((0, helpers_1.isSet)(object.exec))\n obj.exec = execFromJSON(object.exec);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n message.option !== undefined && (obj.option = (0, types_1.voteOptionToJSON)(message.option));\n message.metadata !== undefined && (obj.metadata = message.metadata);\n message.exec !== undefined && (obj.exec = execToJSON(message.exec));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgVote();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.voter = object.voter ?? \"\";\n message.option = object.option ?? 0;\n message.metadata = object.metadata ?? \"\";\n message.exec = object.exec ?? 0;\n return message;\n },\n};\nfunction createBaseMsgVoteResponse() {\n return {};\n}\nexports.MsgVoteResponse = {\n typeUrl: \"/cosmos.group.v1.MsgVoteResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVoteResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgVoteResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgVoteResponse();\n return message;\n },\n};\nfunction createBaseMsgExec() {\n return {\n proposalId: BigInt(0),\n executor: \"\",\n };\n}\nexports.MsgExec = {\n typeUrl: \"/cosmos.group.v1.MsgExec\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.executor !== \"\") {\n writer.uint32(18).string(message.executor);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgExec();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.executor = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgExec();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.executor))\n obj.executor = String(object.executor);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.executor !== undefined && (obj.executor = message.executor);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgExec();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.executor = object.executor ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgExecResponse() {\n return {\n result: 0,\n };\n}\nexports.MsgExecResponse = {\n typeUrl: \"/cosmos.group.v1.MsgExecResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.result !== 0) {\n writer.uint32(16).int32(message.result);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgExecResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 2:\n message.result = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgExecResponse();\n if ((0, helpers_1.isSet)(object.result))\n obj.result = (0, types_1.proposalExecutorResultFromJSON)(object.result);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = (0, types_1.proposalExecutorResultToJSON)(message.result));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgExecResponse();\n message.result = object.result ?? 0;\n return message;\n },\n};\nfunction createBaseMsgLeaveGroup() {\n return {\n address: \"\",\n groupId: BigInt(0),\n };\n}\nexports.MsgLeaveGroup = {\n typeUrl: \"/cosmos.group.v1.MsgLeaveGroup\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.groupId !== BigInt(0)) {\n writer.uint32(16).uint64(message.groupId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgLeaveGroup();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.groupId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgLeaveGroup();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.groupId))\n obj.groupId = BigInt(object.groupId.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgLeaveGroup();\n message.address = object.address ?? \"\";\n if (object.groupId !== undefined && object.groupId !== null) {\n message.groupId = BigInt(object.groupId.toString());\n }\n return message;\n },\n};\nfunction createBaseMsgLeaveGroupResponse() {\n return {};\n}\nexports.MsgLeaveGroupResponse = {\n typeUrl: \"/cosmos.group.v1.MsgLeaveGroupResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgLeaveGroupResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgLeaveGroupResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgLeaveGroupResponse();\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.CreateGroup = this.CreateGroup.bind(this);\n this.UpdateGroupMembers = this.UpdateGroupMembers.bind(this);\n this.UpdateGroupAdmin = this.UpdateGroupAdmin.bind(this);\n this.UpdateGroupMetadata = this.UpdateGroupMetadata.bind(this);\n this.CreateGroupPolicy = this.CreateGroupPolicy.bind(this);\n this.CreateGroupWithPolicy = this.CreateGroupWithPolicy.bind(this);\n this.UpdateGroupPolicyAdmin = this.UpdateGroupPolicyAdmin.bind(this);\n this.UpdateGroupPolicyDecisionPolicy = this.UpdateGroupPolicyDecisionPolicy.bind(this);\n this.UpdateGroupPolicyMetadata = this.UpdateGroupPolicyMetadata.bind(this);\n this.SubmitProposal = this.SubmitProposal.bind(this);\n this.WithdrawProposal = this.WithdrawProposal.bind(this);\n this.Vote = this.Vote.bind(this);\n this.Exec = this.Exec.bind(this);\n this.LeaveGroup = this.LeaveGroup.bind(this);\n }\n CreateGroup(request) {\n const data = exports.MsgCreateGroup.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"CreateGroup\", data);\n return promise.then((data) => exports.MsgCreateGroupResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpdateGroupMembers(request) {\n const data = exports.MsgUpdateGroupMembers.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"UpdateGroupMembers\", data);\n return promise.then((data) => exports.MsgUpdateGroupMembersResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpdateGroupAdmin(request) {\n const data = exports.MsgUpdateGroupAdmin.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"UpdateGroupAdmin\", data);\n return promise.then((data) => exports.MsgUpdateGroupAdminResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpdateGroupMetadata(request) {\n const data = exports.MsgUpdateGroupMetadata.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"UpdateGroupMetadata\", data);\n return promise.then((data) => exports.MsgUpdateGroupMetadataResponse.decode(new binary_1.BinaryReader(data)));\n }\n CreateGroupPolicy(request) {\n const data = exports.MsgCreateGroupPolicy.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"CreateGroupPolicy\", data);\n return promise.then((data) => exports.MsgCreateGroupPolicyResponse.decode(new binary_1.BinaryReader(data)));\n }\n CreateGroupWithPolicy(request) {\n const data = exports.MsgCreateGroupWithPolicy.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"CreateGroupWithPolicy\", data);\n return promise.then((data) => exports.MsgCreateGroupWithPolicyResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpdateGroupPolicyAdmin(request) {\n const data = exports.MsgUpdateGroupPolicyAdmin.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"UpdateGroupPolicyAdmin\", data);\n return promise.then((data) => exports.MsgUpdateGroupPolicyAdminResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpdateGroupPolicyDecisionPolicy(request) {\n const data = exports.MsgUpdateGroupPolicyDecisionPolicy.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"UpdateGroupPolicyDecisionPolicy\", data);\n return promise.then((data) => exports.MsgUpdateGroupPolicyDecisionPolicyResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpdateGroupPolicyMetadata(request) {\n const data = exports.MsgUpdateGroupPolicyMetadata.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"UpdateGroupPolicyMetadata\", data);\n return promise.then((data) => exports.MsgUpdateGroupPolicyMetadataResponse.decode(new binary_1.BinaryReader(data)));\n }\n SubmitProposal(request) {\n const data = exports.MsgSubmitProposal.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"SubmitProposal\", data);\n return promise.then((data) => exports.MsgSubmitProposalResponse.decode(new binary_1.BinaryReader(data)));\n }\n WithdrawProposal(request) {\n const data = exports.MsgWithdrawProposal.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"WithdrawProposal\", data);\n return promise.then((data) => exports.MsgWithdrawProposalResponse.decode(new binary_1.BinaryReader(data)));\n }\n Vote(request) {\n const data = exports.MsgVote.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"Vote\", data);\n return promise.then((data) => exports.MsgVoteResponse.decode(new binary_1.BinaryReader(data)));\n }\n Exec(request) {\n const data = exports.MsgExec.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"Exec\", data);\n return promise.then((data) => exports.MsgExecResponse.decode(new binary_1.BinaryReader(data)));\n }\n LeaveGroup(request) {\n const data = exports.MsgLeaveGroup.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"LeaveGroup\", data);\n return promise.then((data) => exports.MsgLeaveGroupResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Vote = exports.TallyResult = exports.Proposal = exports.GroupPolicyInfo = exports.GroupMember = exports.GroupInfo = exports.DecisionPolicyWindows = exports.PercentageDecisionPolicy = exports.ThresholdDecisionPolicy = exports.MemberRequest = exports.Member = exports.proposalExecutorResultToJSON = exports.proposalExecutorResultFromJSON = exports.ProposalExecutorResult = exports.proposalStatusToJSON = exports.proposalStatusFromJSON = exports.ProposalStatus = exports.voteOptionToJSON = exports.voteOptionFromJSON = exports.VoteOption = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst duration_1 = require(\"../../../google/protobuf/duration\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.group.v1\";\n/** VoteOption enumerates the valid vote options for a given proposal. */\nvar VoteOption;\n(function (VoteOption) {\n /**\n * VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines an unspecified vote option which will\n * return an error.\n */\n VoteOption[VoteOption[\"VOTE_OPTION_UNSPECIFIED\"] = 0] = \"VOTE_OPTION_UNSPECIFIED\";\n /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_YES\"] = 1] = \"VOTE_OPTION_YES\";\n /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_ABSTAIN\"] = 2] = \"VOTE_OPTION_ABSTAIN\";\n /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_NO\"] = 3] = \"VOTE_OPTION_NO\";\n /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_NO_WITH_VETO\"] = 4] = \"VOTE_OPTION_NO_WITH_VETO\";\n VoteOption[VoteOption[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(VoteOption || (exports.VoteOption = VoteOption = {}));\nfunction voteOptionFromJSON(object) {\n switch (object) {\n case 0:\n case \"VOTE_OPTION_UNSPECIFIED\":\n return VoteOption.VOTE_OPTION_UNSPECIFIED;\n case 1:\n case \"VOTE_OPTION_YES\":\n return VoteOption.VOTE_OPTION_YES;\n case 2:\n case \"VOTE_OPTION_ABSTAIN\":\n return VoteOption.VOTE_OPTION_ABSTAIN;\n case 3:\n case \"VOTE_OPTION_NO\":\n return VoteOption.VOTE_OPTION_NO;\n case 4:\n case \"VOTE_OPTION_NO_WITH_VETO\":\n return VoteOption.VOTE_OPTION_NO_WITH_VETO;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return VoteOption.UNRECOGNIZED;\n }\n}\nexports.voteOptionFromJSON = voteOptionFromJSON;\nfunction voteOptionToJSON(object) {\n switch (object) {\n case VoteOption.VOTE_OPTION_UNSPECIFIED:\n return \"VOTE_OPTION_UNSPECIFIED\";\n case VoteOption.VOTE_OPTION_YES:\n return \"VOTE_OPTION_YES\";\n case VoteOption.VOTE_OPTION_ABSTAIN:\n return \"VOTE_OPTION_ABSTAIN\";\n case VoteOption.VOTE_OPTION_NO:\n return \"VOTE_OPTION_NO\";\n case VoteOption.VOTE_OPTION_NO_WITH_VETO:\n return \"VOTE_OPTION_NO_WITH_VETO\";\n case VoteOption.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.voteOptionToJSON = voteOptionToJSON;\n/** ProposalStatus defines proposal statuses. */\nvar ProposalStatus;\n(function (ProposalStatus) {\n /** PROPOSAL_STATUS_UNSPECIFIED - An empty value is invalid and not allowed. */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_UNSPECIFIED\"] = 0] = \"PROPOSAL_STATUS_UNSPECIFIED\";\n /** PROPOSAL_STATUS_SUBMITTED - Initial status of a proposal when submitted. */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_SUBMITTED\"] = 1] = \"PROPOSAL_STATUS_SUBMITTED\";\n /**\n * PROPOSAL_STATUS_ACCEPTED - Final status of a proposal when the final tally is done and the outcome\n * passes the group policy's decision policy.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_ACCEPTED\"] = 2] = \"PROPOSAL_STATUS_ACCEPTED\";\n /**\n * PROPOSAL_STATUS_REJECTED - Final status of a proposal when the final tally is done and the outcome\n * is rejected by the group policy's decision policy.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_REJECTED\"] = 3] = \"PROPOSAL_STATUS_REJECTED\";\n /**\n * PROPOSAL_STATUS_ABORTED - Final status of a proposal when the group policy is modified before the\n * final tally.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_ABORTED\"] = 4] = \"PROPOSAL_STATUS_ABORTED\";\n /**\n * PROPOSAL_STATUS_WITHDRAWN - A proposal can be withdrawn before the voting start time by the owner.\n * When this happens the final status is Withdrawn.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_WITHDRAWN\"] = 5] = \"PROPOSAL_STATUS_WITHDRAWN\";\n ProposalStatus[ProposalStatus[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ProposalStatus || (exports.ProposalStatus = ProposalStatus = {}));\nfunction proposalStatusFromJSON(object) {\n switch (object) {\n case 0:\n case \"PROPOSAL_STATUS_UNSPECIFIED\":\n return ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED;\n case 1:\n case \"PROPOSAL_STATUS_SUBMITTED\":\n return ProposalStatus.PROPOSAL_STATUS_SUBMITTED;\n case 2:\n case \"PROPOSAL_STATUS_ACCEPTED\":\n return ProposalStatus.PROPOSAL_STATUS_ACCEPTED;\n case 3:\n case \"PROPOSAL_STATUS_REJECTED\":\n return ProposalStatus.PROPOSAL_STATUS_REJECTED;\n case 4:\n case \"PROPOSAL_STATUS_ABORTED\":\n return ProposalStatus.PROPOSAL_STATUS_ABORTED;\n case 5:\n case \"PROPOSAL_STATUS_WITHDRAWN\":\n return ProposalStatus.PROPOSAL_STATUS_WITHDRAWN;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ProposalStatus.UNRECOGNIZED;\n }\n}\nexports.proposalStatusFromJSON = proposalStatusFromJSON;\nfunction proposalStatusToJSON(object) {\n switch (object) {\n case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED:\n return \"PROPOSAL_STATUS_UNSPECIFIED\";\n case ProposalStatus.PROPOSAL_STATUS_SUBMITTED:\n return \"PROPOSAL_STATUS_SUBMITTED\";\n case ProposalStatus.PROPOSAL_STATUS_ACCEPTED:\n return \"PROPOSAL_STATUS_ACCEPTED\";\n case ProposalStatus.PROPOSAL_STATUS_REJECTED:\n return \"PROPOSAL_STATUS_REJECTED\";\n case ProposalStatus.PROPOSAL_STATUS_ABORTED:\n return \"PROPOSAL_STATUS_ABORTED\";\n case ProposalStatus.PROPOSAL_STATUS_WITHDRAWN:\n return \"PROPOSAL_STATUS_WITHDRAWN\";\n case ProposalStatus.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.proposalStatusToJSON = proposalStatusToJSON;\n/** ProposalExecutorResult defines types of proposal executor results. */\nvar ProposalExecutorResult;\n(function (ProposalExecutorResult) {\n /** PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED - An empty value is not allowed. */\n ProposalExecutorResult[ProposalExecutorResult[\"PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED\"] = 0] = \"PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED\";\n /** PROPOSAL_EXECUTOR_RESULT_NOT_RUN - We have not yet run the executor. */\n ProposalExecutorResult[ProposalExecutorResult[\"PROPOSAL_EXECUTOR_RESULT_NOT_RUN\"] = 1] = \"PROPOSAL_EXECUTOR_RESULT_NOT_RUN\";\n /** PROPOSAL_EXECUTOR_RESULT_SUCCESS - The executor was successful and proposed action updated state. */\n ProposalExecutorResult[ProposalExecutorResult[\"PROPOSAL_EXECUTOR_RESULT_SUCCESS\"] = 2] = \"PROPOSAL_EXECUTOR_RESULT_SUCCESS\";\n /** PROPOSAL_EXECUTOR_RESULT_FAILURE - The executor returned an error and proposed action didn't update state. */\n ProposalExecutorResult[ProposalExecutorResult[\"PROPOSAL_EXECUTOR_RESULT_FAILURE\"] = 3] = \"PROPOSAL_EXECUTOR_RESULT_FAILURE\";\n ProposalExecutorResult[ProposalExecutorResult[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ProposalExecutorResult || (exports.ProposalExecutorResult = ProposalExecutorResult = {}));\nfunction proposalExecutorResultFromJSON(object) {\n switch (object) {\n case 0:\n case \"PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED\":\n return ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED;\n case 1:\n case \"PROPOSAL_EXECUTOR_RESULT_NOT_RUN\":\n return ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_NOT_RUN;\n case 2:\n case \"PROPOSAL_EXECUTOR_RESULT_SUCCESS\":\n return ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_SUCCESS;\n case 3:\n case \"PROPOSAL_EXECUTOR_RESULT_FAILURE\":\n return ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_FAILURE;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ProposalExecutorResult.UNRECOGNIZED;\n }\n}\nexports.proposalExecutorResultFromJSON = proposalExecutorResultFromJSON;\nfunction proposalExecutorResultToJSON(object) {\n switch (object) {\n case ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED:\n return \"PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED\";\n case ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_NOT_RUN:\n return \"PROPOSAL_EXECUTOR_RESULT_NOT_RUN\";\n case ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_SUCCESS:\n return \"PROPOSAL_EXECUTOR_RESULT_SUCCESS\";\n case ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_FAILURE:\n return \"PROPOSAL_EXECUTOR_RESULT_FAILURE\";\n case ProposalExecutorResult.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.proposalExecutorResultToJSON = proposalExecutorResultToJSON;\nfunction createBaseMember() {\n return {\n address: \"\",\n weight: \"\",\n metadata: \"\",\n addedAt: timestamp_1.Timestamp.fromPartial({}),\n };\n}\nexports.Member = {\n typeUrl: \"/cosmos.group.v1.Member\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.weight !== \"\") {\n writer.uint32(18).string(message.weight);\n }\n if (message.metadata !== \"\") {\n writer.uint32(26).string(message.metadata);\n }\n if (message.addedAt !== undefined) {\n timestamp_1.Timestamp.encode(message.addedAt, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMember();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.weight = reader.string();\n break;\n case 3:\n message.metadata = reader.string();\n break;\n case 4:\n message.addedAt = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMember();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.weight))\n obj.weight = String(object.weight);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n if ((0, helpers_1.isSet)(object.addedAt))\n obj.addedAt = (0, helpers_1.fromJsonTimestamp)(object.addedAt);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.weight !== undefined && (obj.weight = message.weight);\n message.metadata !== undefined && (obj.metadata = message.metadata);\n message.addedAt !== undefined && (obj.addedAt = (0, helpers_1.fromTimestamp)(message.addedAt).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMember();\n message.address = object.address ?? \"\";\n message.weight = object.weight ?? \"\";\n message.metadata = object.metadata ?? \"\";\n if (object.addedAt !== undefined && object.addedAt !== null) {\n message.addedAt = timestamp_1.Timestamp.fromPartial(object.addedAt);\n }\n return message;\n },\n};\nfunction createBaseMemberRequest() {\n return {\n address: \"\",\n weight: \"\",\n metadata: \"\",\n };\n}\nexports.MemberRequest = {\n typeUrl: \"/cosmos.group.v1.MemberRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.weight !== \"\") {\n writer.uint32(18).string(message.weight);\n }\n if (message.metadata !== \"\") {\n writer.uint32(26).string(message.metadata);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMemberRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.weight = reader.string();\n break;\n case 3:\n message.metadata = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMemberRequest();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.weight))\n obj.weight = String(object.weight);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.weight !== undefined && (obj.weight = message.weight);\n message.metadata !== undefined && (obj.metadata = message.metadata);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMemberRequest();\n message.address = object.address ?? \"\";\n message.weight = object.weight ?? \"\";\n message.metadata = object.metadata ?? \"\";\n return message;\n },\n};\nfunction createBaseThresholdDecisionPolicy() {\n return {\n threshold: \"\",\n windows: undefined,\n };\n}\nexports.ThresholdDecisionPolicy = {\n typeUrl: \"/cosmos.group.v1.ThresholdDecisionPolicy\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.threshold !== \"\") {\n writer.uint32(10).string(message.threshold);\n }\n if (message.windows !== undefined) {\n exports.DecisionPolicyWindows.encode(message.windows, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseThresholdDecisionPolicy();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.threshold = reader.string();\n break;\n case 2:\n message.windows = exports.DecisionPolicyWindows.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseThresholdDecisionPolicy();\n if ((0, helpers_1.isSet)(object.threshold))\n obj.threshold = String(object.threshold);\n if ((0, helpers_1.isSet)(object.windows))\n obj.windows = exports.DecisionPolicyWindows.fromJSON(object.windows);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.threshold !== undefined && (obj.threshold = message.threshold);\n message.windows !== undefined &&\n (obj.windows = message.windows ? exports.DecisionPolicyWindows.toJSON(message.windows) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseThresholdDecisionPolicy();\n message.threshold = object.threshold ?? \"\";\n if (object.windows !== undefined && object.windows !== null) {\n message.windows = exports.DecisionPolicyWindows.fromPartial(object.windows);\n }\n return message;\n },\n};\nfunction createBasePercentageDecisionPolicy() {\n return {\n percentage: \"\",\n windows: undefined,\n };\n}\nexports.PercentageDecisionPolicy = {\n typeUrl: \"/cosmos.group.v1.PercentageDecisionPolicy\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.percentage !== \"\") {\n writer.uint32(10).string(message.percentage);\n }\n if (message.windows !== undefined) {\n exports.DecisionPolicyWindows.encode(message.windows, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePercentageDecisionPolicy();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.percentage = reader.string();\n break;\n case 2:\n message.windows = exports.DecisionPolicyWindows.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePercentageDecisionPolicy();\n if ((0, helpers_1.isSet)(object.percentage))\n obj.percentage = String(object.percentage);\n if ((0, helpers_1.isSet)(object.windows))\n obj.windows = exports.DecisionPolicyWindows.fromJSON(object.windows);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.percentage !== undefined && (obj.percentage = message.percentage);\n message.windows !== undefined &&\n (obj.windows = message.windows ? exports.DecisionPolicyWindows.toJSON(message.windows) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBasePercentageDecisionPolicy();\n message.percentage = object.percentage ?? \"\";\n if (object.windows !== undefined && object.windows !== null) {\n message.windows = exports.DecisionPolicyWindows.fromPartial(object.windows);\n }\n return message;\n },\n};\nfunction createBaseDecisionPolicyWindows() {\n return {\n votingPeriod: duration_1.Duration.fromPartial({}),\n minExecutionPeriod: duration_1.Duration.fromPartial({}),\n };\n}\nexports.DecisionPolicyWindows = {\n typeUrl: \"/cosmos.group.v1.DecisionPolicyWindows\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.votingPeriod !== undefined) {\n duration_1.Duration.encode(message.votingPeriod, writer.uint32(10).fork()).ldelim();\n }\n if (message.minExecutionPeriod !== undefined) {\n duration_1.Duration.encode(message.minExecutionPeriod, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDecisionPolicyWindows();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.votingPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 2:\n message.minExecutionPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDecisionPolicyWindows();\n if ((0, helpers_1.isSet)(object.votingPeriod))\n obj.votingPeriod = duration_1.Duration.fromJSON(object.votingPeriod);\n if ((0, helpers_1.isSet)(object.minExecutionPeriod))\n obj.minExecutionPeriod = duration_1.Duration.fromJSON(object.minExecutionPeriod);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.votingPeriod !== undefined &&\n (obj.votingPeriod = message.votingPeriod ? duration_1.Duration.toJSON(message.votingPeriod) : undefined);\n message.minExecutionPeriod !== undefined &&\n (obj.minExecutionPeriod = message.minExecutionPeriod\n ? duration_1.Duration.toJSON(message.minExecutionPeriod)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDecisionPolicyWindows();\n if (object.votingPeriod !== undefined && object.votingPeriod !== null) {\n message.votingPeriod = duration_1.Duration.fromPartial(object.votingPeriod);\n }\n if (object.minExecutionPeriod !== undefined && object.minExecutionPeriod !== null) {\n message.minExecutionPeriod = duration_1.Duration.fromPartial(object.minExecutionPeriod);\n }\n return message;\n },\n};\nfunction createBaseGroupInfo() {\n return {\n id: BigInt(0),\n admin: \"\",\n metadata: \"\",\n version: BigInt(0),\n totalWeight: \"\",\n createdAt: timestamp_1.Timestamp.fromPartial({}),\n };\n}\nexports.GroupInfo = {\n typeUrl: \"/cosmos.group.v1.GroupInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.id !== BigInt(0)) {\n writer.uint32(8).uint64(message.id);\n }\n if (message.admin !== \"\") {\n writer.uint32(18).string(message.admin);\n }\n if (message.metadata !== \"\") {\n writer.uint32(26).string(message.metadata);\n }\n if (message.version !== BigInt(0)) {\n writer.uint32(32).uint64(message.version);\n }\n if (message.totalWeight !== \"\") {\n writer.uint32(42).string(message.totalWeight);\n }\n if (message.createdAt !== undefined) {\n timestamp_1.Timestamp.encode(message.createdAt, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGroupInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.uint64();\n break;\n case 2:\n message.admin = reader.string();\n break;\n case 3:\n message.metadata = reader.string();\n break;\n case 4:\n message.version = reader.uint64();\n break;\n case 5:\n message.totalWeight = reader.string();\n break;\n case 6:\n message.createdAt = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGroupInfo();\n if ((0, helpers_1.isSet)(object.id))\n obj.id = BigInt(object.id.toString());\n if ((0, helpers_1.isSet)(object.admin))\n obj.admin = String(object.admin);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n if ((0, helpers_1.isSet)(object.version))\n obj.version = BigInt(object.version.toString());\n if ((0, helpers_1.isSet)(object.totalWeight))\n obj.totalWeight = String(object.totalWeight);\n if ((0, helpers_1.isSet)(object.createdAt))\n obj.createdAt = (0, helpers_1.fromJsonTimestamp)(object.createdAt);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.id !== undefined && (obj.id = (message.id || BigInt(0)).toString());\n message.admin !== undefined && (obj.admin = message.admin);\n message.metadata !== undefined && (obj.metadata = message.metadata);\n message.version !== undefined && (obj.version = (message.version || BigInt(0)).toString());\n message.totalWeight !== undefined && (obj.totalWeight = message.totalWeight);\n message.createdAt !== undefined && (obj.createdAt = (0, helpers_1.fromTimestamp)(message.createdAt).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGroupInfo();\n if (object.id !== undefined && object.id !== null) {\n message.id = BigInt(object.id.toString());\n }\n message.admin = object.admin ?? \"\";\n message.metadata = object.metadata ?? \"\";\n if (object.version !== undefined && object.version !== null) {\n message.version = BigInt(object.version.toString());\n }\n message.totalWeight = object.totalWeight ?? \"\";\n if (object.createdAt !== undefined && object.createdAt !== null) {\n message.createdAt = timestamp_1.Timestamp.fromPartial(object.createdAt);\n }\n return message;\n },\n};\nfunction createBaseGroupMember() {\n return {\n groupId: BigInt(0),\n member: undefined,\n };\n}\nexports.GroupMember = {\n typeUrl: \"/cosmos.group.v1.GroupMember\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.groupId !== BigInt(0)) {\n writer.uint32(8).uint64(message.groupId);\n }\n if (message.member !== undefined) {\n exports.Member.encode(message.member, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGroupMember();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.groupId = reader.uint64();\n break;\n case 2:\n message.member = exports.Member.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGroupMember();\n if ((0, helpers_1.isSet)(object.groupId))\n obj.groupId = BigInt(object.groupId.toString());\n if ((0, helpers_1.isSet)(object.member))\n obj.member = exports.Member.fromJSON(object.member);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());\n message.member !== undefined && (obj.member = message.member ? exports.Member.toJSON(message.member) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGroupMember();\n if (object.groupId !== undefined && object.groupId !== null) {\n message.groupId = BigInt(object.groupId.toString());\n }\n if (object.member !== undefined && object.member !== null) {\n message.member = exports.Member.fromPartial(object.member);\n }\n return message;\n },\n};\nfunction createBaseGroupPolicyInfo() {\n return {\n address: \"\",\n groupId: BigInt(0),\n admin: \"\",\n metadata: \"\",\n version: BigInt(0),\n decisionPolicy: undefined,\n createdAt: timestamp_1.Timestamp.fromPartial({}),\n };\n}\nexports.GroupPolicyInfo = {\n typeUrl: \"/cosmos.group.v1.GroupPolicyInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.groupId !== BigInt(0)) {\n writer.uint32(16).uint64(message.groupId);\n }\n if (message.admin !== \"\") {\n writer.uint32(26).string(message.admin);\n }\n if (message.metadata !== \"\") {\n writer.uint32(34).string(message.metadata);\n }\n if (message.version !== BigInt(0)) {\n writer.uint32(40).uint64(message.version);\n }\n if (message.decisionPolicy !== undefined) {\n any_1.Any.encode(message.decisionPolicy, writer.uint32(50).fork()).ldelim();\n }\n if (message.createdAt !== undefined) {\n timestamp_1.Timestamp.encode(message.createdAt, writer.uint32(58).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGroupPolicyInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.groupId = reader.uint64();\n break;\n case 3:\n message.admin = reader.string();\n break;\n case 4:\n message.metadata = reader.string();\n break;\n case 5:\n message.version = reader.uint64();\n break;\n case 6:\n message.decisionPolicy = any_1.Any.decode(reader, reader.uint32());\n break;\n case 7:\n message.createdAt = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGroupPolicyInfo();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.groupId))\n obj.groupId = BigInt(object.groupId.toString());\n if ((0, helpers_1.isSet)(object.admin))\n obj.admin = String(object.admin);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n if ((0, helpers_1.isSet)(object.version))\n obj.version = BigInt(object.version.toString());\n if ((0, helpers_1.isSet)(object.decisionPolicy))\n obj.decisionPolicy = any_1.Any.fromJSON(object.decisionPolicy);\n if ((0, helpers_1.isSet)(object.createdAt))\n obj.createdAt = (0, helpers_1.fromJsonTimestamp)(object.createdAt);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());\n message.admin !== undefined && (obj.admin = message.admin);\n message.metadata !== undefined && (obj.metadata = message.metadata);\n message.version !== undefined && (obj.version = (message.version || BigInt(0)).toString());\n message.decisionPolicy !== undefined &&\n (obj.decisionPolicy = message.decisionPolicy ? any_1.Any.toJSON(message.decisionPolicy) : undefined);\n message.createdAt !== undefined && (obj.createdAt = (0, helpers_1.fromTimestamp)(message.createdAt).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGroupPolicyInfo();\n message.address = object.address ?? \"\";\n if (object.groupId !== undefined && object.groupId !== null) {\n message.groupId = BigInt(object.groupId.toString());\n }\n message.admin = object.admin ?? \"\";\n message.metadata = object.metadata ?? \"\";\n if (object.version !== undefined && object.version !== null) {\n message.version = BigInt(object.version.toString());\n }\n if (object.decisionPolicy !== undefined && object.decisionPolicy !== null) {\n message.decisionPolicy = any_1.Any.fromPartial(object.decisionPolicy);\n }\n if (object.createdAt !== undefined && object.createdAt !== null) {\n message.createdAt = timestamp_1.Timestamp.fromPartial(object.createdAt);\n }\n return message;\n },\n};\nfunction createBaseProposal() {\n return {\n id: BigInt(0),\n groupPolicyAddress: \"\",\n metadata: \"\",\n proposers: [],\n submitTime: timestamp_1.Timestamp.fromPartial({}),\n groupVersion: BigInt(0),\n groupPolicyVersion: BigInt(0),\n status: 0,\n finalTallyResult: exports.TallyResult.fromPartial({}),\n votingPeriodEnd: timestamp_1.Timestamp.fromPartial({}),\n executorResult: 0,\n messages: [],\n title: \"\",\n summary: \"\",\n };\n}\nexports.Proposal = {\n typeUrl: \"/cosmos.group.v1.Proposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.id !== BigInt(0)) {\n writer.uint32(8).uint64(message.id);\n }\n if (message.groupPolicyAddress !== \"\") {\n writer.uint32(18).string(message.groupPolicyAddress);\n }\n if (message.metadata !== \"\") {\n writer.uint32(26).string(message.metadata);\n }\n for (const v of message.proposers) {\n writer.uint32(34).string(v);\n }\n if (message.submitTime !== undefined) {\n timestamp_1.Timestamp.encode(message.submitTime, writer.uint32(42).fork()).ldelim();\n }\n if (message.groupVersion !== BigInt(0)) {\n writer.uint32(48).uint64(message.groupVersion);\n }\n if (message.groupPolicyVersion !== BigInt(0)) {\n writer.uint32(56).uint64(message.groupPolicyVersion);\n }\n if (message.status !== 0) {\n writer.uint32(64).int32(message.status);\n }\n if (message.finalTallyResult !== undefined) {\n exports.TallyResult.encode(message.finalTallyResult, writer.uint32(74).fork()).ldelim();\n }\n if (message.votingPeriodEnd !== undefined) {\n timestamp_1.Timestamp.encode(message.votingPeriodEnd, writer.uint32(82).fork()).ldelim();\n }\n if (message.executorResult !== 0) {\n writer.uint32(88).int32(message.executorResult);\n }\n for (const v of message.messages) {\n any_1.Any.encode(v, writer.uint32(98).fork()).ldelim();\n }\n if (message.title !== \"\") {\n writer.uint32(106).string(message.title);\n }\n if (message.summary !== \"\") {\n writer.uint32(114).string(message.summary);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.uint64();\n break;\n case 2:\n message.groupPolicyAddress = reader.string();\n break;\n case 3:\n message.metadata = reader.string();\n break;\n case 4:\n message.proposers.push(reader.string());\n break;\n case 5:\n message.submitTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 6:\n message.groupVersion = reader.uint64();\n break;\n case 7:\n message.groupPolicyVersion = reader.uint64();\n break;\n case 8:\n message.status = reader.int32();\n break;\n case 9:\n message.finalTallyResult = exports.TallyResult.decode(reader, reader.uint32());\n break;\n case 10:\n message.votingPeriodEnd = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 11:\n message.executorResult = reader.int32();\n break;\n case 12:\n message.messages.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 13:\n message.title = reader.string();\n break;\n case 14:\n message.summary = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseProposal();\n if ((0, helpers_1.isSet)(object.id))\n obj.id = BigInt(object.id.toString());\n if ((0, helpers_1.isSet)(object.groupPolicyAddress))\n obj.groupPolicyAddress = String(object.groupPolicyAddress);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n if (Array.isArray(object?.proposers))\n obj.proposers = object.proposers.map((e) => String(e));\n if ((0, helpers_1.isSet)(object.submitTime))\n obj.submitTime = (0, helpers_1.fromJsonTimestamp)(object.submitTime);\n if ((0, helpers_1.isSet)(object.groupVersion))\n obj.groupVersion = BigInt(object.groupVersion.toString());\n if ((0, helpers_1.isSet)(object.groupPolicyVersion))\n obj.groupPolicyVersion = BigInt(object.groupPolicyVersion.toString());\n if ((0, helpers_1.isSet)(object.status))\n obj.status = proposalStatusFromJSON(object.status);\n if ((0, helpers_1.isSet)(object.finalTallyResult))\n obj.finalTallyResult = exports.TallyResult.fromJSON(object.finalTallyResult);\n if ((0, helpers_1.isSet)(object.votingPeriodEnd))\n obj.votingPeriodEnd = (0, helpers_1.fromJsonTimestamp)(object.votingPeriodEnd);\n if ((0, helpers_1.isSet)(object.executorResult))\n obj.executorResult = proposalExecutorResultFromJSON(object.executorResult);\n if (Array.isArray(object?.messages))\n obj.messages = object.messages.map((e) => any_1.Any.fromJSON(e));\n if ((0, helpers_1.isSet)(object.title))\n obj.title = String(object.title);\n if ((0, helpers_1.isSet)(object.summary))\n obj.summary = String(object.summary);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.id !== undefined && (obj.id = (message.id || BigInt(0)).toString());\n message.groupPolicyAddress !== undefined && (obj.groupPolicyAddress = message.groupPolicyAddress);\n message.metadata !== undefined && (obj.metadata = message.metadata);\n if (message.proposers) {\n obj.proposers = message.proposers.map((e) => e);\n }\n else {\n obj.proposers = [];\n }\n message.submitTime !== undefined && (obj.submitTime = (0, helpers_1.fromTimestamp)(message.submitTime).toISOString());\n message.groupVersion !== undefined && (obj.groupVersion = (message.groupVersion || BigInt(0)).toString());\n message.groupPolicyVersion !== undefined &&\n (obj.groupPolicyVersion = (message.groupPolicyVersion || BigInt(0)).toString());\n message.status !== undefined && (obj.status = proposalStatusToJSON(message.status));\n message.finalTallyResult !== undefined &&\n (obj.finalTallyResult = message.finalTallyResult\n ? exports.TallyResult.toJSON(message.finalTallyResult)\n : undefined);\n message.votingPeriodEnd !== undefined &&\n (obj.votingPeriodEnd = (0, helpers_1.fromTimestamp)(message.votingPeriodEnd).toISOString());\n message.executorResult !== undefined &&\n (obj.executorResult = proposalExecutorResultToJSON(message.executorResult));\n if (message.messages) {\n obj.messages = message.messages.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.messages = [];\n }\n message.title !== undefined && (obj.title = message.title);\n message.summary !== undefined && (obj.summary = message.summary);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseProposal();\n if (object.id !== undefined && object.id !== null) {\n message.id = BigInt(object.id.toString());\n }\n message.groupPolicyAddress = object.groupPolicyAddress ?? \"\";\n message.metadata = object.metadata ?? \"\";\n message.proposers = object.proposers?.map((e) => e) || [];\n if (object.submitTime !== undefined && object.submitTime !== null) {\n message.submitTime = timestamp_1.Timestamp.fromPartial(object.submitTime);\n }\n if (object.groupVersion !== undefined && object.groupVersion !== null) {\n message.groupVersion = BigInt(object.groupVersion.toString());\n }\n if (object.groupPolicyVersion !== undefined && object.groupPolicyVersion !== null) {\n message.groupPolicyVersion = BigInt(object.groupPolicyVersion.toString());\n }\n message.status = object.status ?? 0;\n if (object.finalTallyResult !== undefined && object.finalTallyResult !== null) {\n message.finalTallyResult = exports.TallyResult.fromPartial(object.finalTallyResult);\n }\n if (object.votingPeriodEnd !== undefined && object.votingPeriodEnd !== null) {\n message.votingPeriodEnd = timestamp_1.Timestamp.fromPartial(object.votingPeriodEnd);\n }\n message.executorResult = object.executorResult ?? 0;\n message.messages = object.messages?.map((e) => any_1.Any.fromPartial(e)) || [];\n message.title = object.title ?? \"\";\n message.summary = object.summary ?? \"\";\n return message;\n },\n};\nfunction createBaseTallyResult() {\n return {\n yesCount: \"\",\n abstainCount: \"\",\n noCount: \"\",\n noWithVetoCount: \"\",\n };\n}\nexports.TallyResult = {\n typeUrl: \"/cosmos.group.v1.TallyResult\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.yesCount !== \"\") {\n writer.uint32(10).string(message.yesCount);\n }\n if (message.abstainCount !== \"\") {\n writer.uint32(18).string(message.abstainCount);\n }\n if (message.noCount !== \"\") {\n writer.uint32(26).string(message.noCount);\n }\n if (message.noWithVetoCount !== \"\") {\n writer.uint32(34).string(message.noWithVetoCount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTallyResult();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.yesCount = reader.string();\n break;\n case 2:\n message.abstainCount = reader.string();\n break;\n case 3:\n message.noCount = reader.string();\n break;\n case 4:\n message.noWithVetoCount = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTallyResult();\n if ((0, helpers_1.isSet)(object.yesCount))\n obj.yesCount = String(object.yesCount);\n if ((0, helpers_1.isSet)(object.abstainCount))\n obj.abstainCount = String(object.abstainCount);\n if ((0, helpers_1.isSet)(object.noCount))\n obj.noCount = String(object.noCount);\n if ((0, helpers_1.isSet)(object.noWithVetoCount))\n obj.noWithVetoCount = String(object.noWithVetoCount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.yesCount !== undefined && (obj.yesCount = message.yesCount);\n message.abstainCount !== undefined && (obj.abstainCount = message.abstainCount);\n message.noCount !== undefined && (obj.noCount = message.noCount);\n message.noWithVetoCount !== undefined && (obj.noWithVetoCount = message.noWithVetoCount);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTallyResult();\n message.yesCount = object.yesCount ?? \"\";\n message.abstainCount = object.abstainCount ?? \"\";\n message.noCount = object.noCount ?? \"\";\n message.noWithVetoCount = object.noWithVetoCount ?? \"\";\n return message;\n },\n};\nfunction createBaseVote() {\n return {\n proposalId: BigInt(0),\n voter: \"\",\n option: 0,\n metadata: \"\",\n submitTime: timestamp_1.Timestamp.fromPartial({}),\n };\n}\nexports.Vote = {\n typeUrl: \"/cosmos.group.v1.Vote\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (message.option !== 0) {\n writer.uint32(24).int32(message.option);\n }\n if (message.metadata !== \"\") {\n writer.uint32(34).string(message.metadata);\n }\n if (message.submitTime !== undefined) {\n timestamp_1.Timestamp.encode(message.submitTime, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVote();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.option = reader.int32();\n break;\n case 4:\n message.metadata = reader.string();\n break;\n case 5:\n message.submitTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseVote();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.voter))\n obj.voter = String(object.voter);\n if ((0, helpers_1.isSet)(object.option))\n obj.option = voteOptionFromJSON(object.option);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n if ((0, helpers_1.isSet)(object.submitTime))\n obj.submitTime = (0, helpers_1.fromJsonTimestamp)(object.submitTime);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n message.option !== undefined && (obj.option = voteOptionToJSON(message.option));\n message.metadata !== undefined && (obj.metadata = message.metadata);\n message.submitTime !== undefined && (obj.submitTime = (0, helpers_1.fromTimestamp)(message.submitTime).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseVote();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.voter = object.voter ?? \"\";\n message.option = object.option ?? 0;\n message.metadata = object.metadata ?? \"\";\n if (object.submitTime !== undefined && object.submitTime !== null) {\n message.submitTime = timestamp_1.Timestamp.fromPartial(object.submitTime);\n }\n return message;\n },\n};\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CompressedNonExistenceProof = exports.CompressedExistenceProof = exports.CompressedBatchEntry = exports.CompressedBatchProof = exports.BatchEntry = exports.BatchProof = exports.InnerSpec = exports.ProofSpec = exports.InnerOp = exports.LeafOp = exports.CommitmentProof = exports.NonExistenceProof = exports.ExistenceProof = exports.lengthOpToJSON = exports.lengthOpFromJSON = exports.LengthOp = exports.hashOpToJSON = exports.hashOpFromJSON = exports.HashOp = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.ics23.v1\";\nvar HashOp;\n(function (HashOp) {\n /** NO_HASH - NO_HASH is the default if no data passed. Note this is an illegal argument some places. */\n HashOp[HashOp[\"NO_HASH\"] = 0] = \"NO_HASH\";\n HashOp[HashOp[\"SHA256\"] = 1] = \"SHA256\";\n HashOp[HashOp[\"SHA512\"] = 2] = \"SHA512\";\n HashOp[HashOp[\"KECCAK\"] = 3] = \"KECCAK\";\n HashOp[HashOp[\"RIPEMD160\"] = 4] = \"RIPEMD160\";\n /** BITCOIN - ripemd160(sha256(x)) */\n HashOp[HashOp[\"BITCOIN\"] = 5] = \"BITCOIN\";\n HashOp[HashOp[\"SHA512_256\"] = 6] = \"SHA512_256\";\n HashOp[HashOp[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(HashOp || (exports.HashOp = HashOp = {}));\nfunction hashOpFromJSON(object) {\n switch (object) {\n case 0:\n case \"NO_HASH\":\n return HashOp.NO_HASH;\n case 1:\n case \"SHA256\":\n return HashOp.SHA256;\n case 2:\n case \"SHA512\":\n return HashOp.SHA512;\n case 3:\n case \"KECCAK\":\n return HashOp.KECCAK;\n case 4:\n case \"RIPEMD160\":\n return HashOp.RIPEMD160;\n case 5:\n case \"BITCOIN\":\n return HashOp.BITCOIN;\n case 6:\n case \"SHA512_256\":\n return HashOp.SHA512_256;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return HashOp.UNRECOGNIZED;\n }\n}\nexports.hashOpFromJSON = hashOpFromJSON;\nfunction hashOpToJSON(object) {\n switch (object) {\n case HashOp.NO_HASH:\n return \"NO_HASH\";\n case HashOp.SHA256:\n return \"SHA256\";\n case HashOp.SHA512:\n return \"SHA512\";\n case HashOp.KECCAK:\n return \"KECCAK\";\n case HashOp.RIPEMD160:\n return \"RIPEMD160\";\n case HashOp.BITCOIN:\n return \"BITCOIN\";\n case HashOp.SHA512_256:\n return \"SHA512_256\";\n case HashOp.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.hashOpToJSON = hashOpToJSON;\n/**\n * LengthOp defines how to process the key and value of the LeafOp\n * to include length information. After encoding the length with the given\n * algorithm, the length will be prepended to the key and value bytes.\n * (Each one with it's own encoded length)\n */\nvar LengthOp;\n(function (LengthOp) {\n /** NO_PREFIX - NO_PREFIX don't include any length info */\n LengthOp[LengthOp[\"NO_PREFIX\"] = 0] = \"NO_PREFIX\";\n /** VAR_PROTO - VAR_PROTO uses protobuf (and go-amino) varint encoding of the length */\n LengthOp[LengthOp[\"VAR_PROTO\"] = 1] = \"VAR_PROTO\";\n /** VAR_RLP - VAR_RLP uses rlp int encoding of the length */\n LengthOp[LengthOp[\"VAR_RLP\"] = 2] = \"VAR_RLP\";\n /** FIXED32_BIG - FIXED32_BIG uses big-endian encoding of the length as a 32 bit integer */\n LengthOp[LengthOp[\"FIXED32_BIG\"] = 3] = \"FIXED32_BIG\";\n /** FIXED32_LITTLE - FIXED32_LITTLE uses little-endian encoding of the length as a 32 bit integer */\n LengthOp[LengthOp[\"FIXED32_LITTLE\"] = 4] = \"FIXED32_LITTLE\";\n /** FIXED64_BIG - FIXED64_BIG uses big-endian encoding of the length as a 64 bit integer */\n LengthOp[LengthOp[\"FIXED64_BIG\"] = 5] = \"FIXED64_BIG\";\n /** FIXED64_LITTLE - FIXED64_LITTLE uses little-endian encoding of the length as a 64 bit integer */\n LengthOp[LengthOp[\"FIXED64_LITTLE\"] = 6] = \"FIXED64_LITTLE\";\n /** REQUIRE_32_BYTES - REQUIRE_32_BYTES is like NONE, but will fail if the input is not exactly 32 bytes (sha256 output) */\n LengthOp[LengthOp[\"REQUIRE_32_BYTES\"] = 7] = \"REQUIRE_32_BYTES\";\n /** REQUIRE_64_BYTES - REQUIRE_64_BYTES is like NONE, but will fail if the input is not exactly 64 bytes (sha512 output) */\n LengthOp[LengthOp[\"REQUIRE_64_BYTES\"] = 8] = \"REQUIRE_64_BYTES\";\n LengthOp[LengthOp[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(LengthOp || (exports.LengthOp = LengthOp = {}));\nfunction lengthOpFromJSON(object) {\n switch (object) {\n case 0:\n case \"NO_PREFIX\":\n return LengthOp.NO_PREFIX;\n case 1:\n case \"VAR_PROTO\":\n return LengthOp.VAR_PROTO;\n case 2:\n case \"VAR_RLP\":\n return LengthOp.VAR_RLP;\n case 3:\n case \"FIXED32_BIG\":\n return LengthOp.FIXED32_BIG;\n case 4:\n case \"FIXED32_LITTLE\":\n return LengthOp.FIXED32_LITTLE;\n case 5:\n case \"FIXED64_BIG\":\n return LengthOp.FIXED64_BIG;\n case 6:\n case \"FIXED64_LITTLE\":\n return LengthOp.FIXED64_LITTLE;\n case 7:\n case \"REQUIRE_32_BYTES\":\n return LengthOp.REQUIRE_32_BYTES;\n case 8:\n case \"REQUIRE_64_BYTES\":\n return LengthOp.REQUIRE_64_BYTES;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return LengthOp.UNRECOGNIZED;\n }\n}\nexports.lengthOpFromJSON = lengthOpFromJSON;\nfunction lengthOpToJSON(object) {\n switch (object) {\n case LengthOp.NO_PREFIX:\n return \"NO_PREFIX\";\n case LengthOp.VAR_PROTO:\n return \"VAR_PROTO\";\n case LengthOp.VAR_RLP:\n return \"VAR_RLP\";\n case LengthOp.FIXED32_BIG:\n return \"FIXED32_BIG\";\n case LengthOp.FIXED32_LITTLE:\n return \"FIXED32_LITTLE\";\n case LengthOp.FIXED64_BIG:\n return \"FIXED64_BIG\";\n case LengthOp.FIXED64_LITTLE:\n return \"FIXED64_LITTLE\";\n case LengthOp.REQUIRE_32_BYTES:\n return \"REQUIRE_32_BYTES\";\n case LengthOp.REQUIRE_64_BYTES:\n return \"REQUIRE_64_BYTES\";\n case LengthOp.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.lengthOpToJSON = lengthOpToJSON;\nfunction createBaseExistenceProof() {\n return {\n key: new Uint8Array(),\n value: new Uint8Array(),\n leaf: undefined,\n path: [],\n };\n}\nexports.ExistenceProof = {\n typeUrl: \"/cosmos.ics23.v1.ExistenceProof\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n if (message.leaf !== undefined) {\n exports.LeafOp.encode(message.leaf, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.path) {\n exports.InnerOp.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseExistenceProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n case 3:\n message.leaf = exports.LeafOp.decode(reader, reader.uint32());\n break;\n case 4:\n message.path.push(exports.InnerOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseExistenceProof();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n if ((0, helpers_1.isSet)(object.value))\n obj.value = (0, helpers_1.bytesFromBase64)(object.value);\n if ((0, helpers_1.isSet)(object.leaf))\n obj.leaf = exports.LeafOp.fromJSON(object.leaf);\n if (Array.isArray(object?.path))\n obj.path = object.path.map((e) => exports.InnerOp.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n message.value !== undefined &&\n (obj.value = (0, helpers_1.base64FromBytes)(message.value !== undefined ? message.value : new Uint8Array()));\n message.leaf !== undefined && (obj.leaf = message.leaf ? exports.LeafOp.toJSON(message.leaf) : undefined);\n if (message.path) {\n obj.path = message.path.map((e) => (e ? exports.InnerOp.toJSON(e) : undefined));\n }\n else {\n obj.path = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseExistenceProof();\n message.key = object.key ?? new Uint8Array();\n message.value = object.value ?? new Uint8Array();\n if (object.leaf !== undefined && object.leaf !== null) {\n message.leaf = exports.LeafOp.fromPartial(object.leaf);\n }\n message.path = object.path?.map((e) => exports.InnerOp.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseNonExistenceProof() {\n return {\n key: new Uint8Array(),\n left: undefined,\n right: undefined,\n };\n}\nexports.NonExistenceProof = {\n typeUrl: \"/cosmos.ics23.v1.NonExistenceProof\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.left !== undefined) {\n exports.ExistenceProof.encode(message.left, writer.uint32(18).fork()).ldelim();\n }\n if (message.right !== undefined) {\n exports.ExistenceProof.encode(message.right, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseNonExistenceProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.left = exports.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.right = exports.ExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseNonExistenceProof();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n if ((0, helpers_1.isSet)(object.left))\n obj.left = exports.ExistenceProof.fromJSON(object.left);\n if ((0, helpers_1.isSet)(object.right))\n obj.right = exports.ExistenceProof.fromJSON(object.right);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n message.left !== undefined && (obj.left = message.left ? exports.ExistenceProof.toJSON(message.left) : undefined);\n message.right !== undefined &&\n (obj.right = message.right ? exports.ExistenceProof.toJSON(message.right) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseNonExistenceProof();\n message.key = object.key ?? new Uint8Array();\n if (object.left !== undefined && object.left !== null) {\n message.left = exports.ExistenceProof.fromPartial(object.left);\n }\n if (object.right !== undefined && object.right !== null) {\n message.right = exports.ExistenceProof.fromPartial(object.right);\n }\n return message;\n },\n};\nfunction createBaseCommitmentProof() {\n return {\n exist: undefined,\n nonexist: undefined,\n batch: undefined,\n compressed: undefined,\n };\n}\nexports.CommitmentProof = {\n typeUrl: \"/cosmos.ics23.v1.CommitmentProof\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.exist !== undefined) {\n exports.ExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim();\n }\n if (message.nonexist !== undefined) {\n exports.NonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim();\n }\n if (message.batch !== undefined) {\n exports.BatchProof.encode(message.batch, writer.uint32(26).fork()).ldelim();\n }\n if (message.compressed !== undefined) {\n exports.CompressedBatchProof.encode(message.compressed, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCommitmentProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = exports.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = exports.NonExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.batch = exports.BatchProof.decode(reader, reader.uint32());\n break;\n case 4:\n message.compressed = exports.CompressedBatchProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCommitmentProof();\n if ((0, helpers_1.isSet)(object.exist))\n obj.exist = exports.ExistenceProof.fromJSON(object.exist);\n if ((0, helpers_1.isSet)(object.nonexist))\n obj.nonexist = exports.NonExistenceProof.fromJSON(object.nonexist);\n if ((0, helpers_1.isSet)(object.batch))\n obj.batch = exports.BatchProof.fromJSON(object.batch);\n if ((0, helpers_1.isSet)(object.compressed))\n obj.compressed = exports.CompressedBatchProof.fromJSON(object.compressed);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.exist !== undefined &&\n (obj.exist = message.exist ? exports.ExistenceProof.toJSON(message.exist) : undefined);\n message.nonexist !== undefined &&\n (obj.nonexist = message.nonexist ? exports.NonExistenceProof.toJSON(message.nonexist) : undefined);\n message.batch !== undefined && (obj.batch = message.batch ? exports.BatchProof.toJSON(message.batch) : undefined);\n message.compressed !== undefined &&\n (obj.compressed = message.compressed ? exports.CompressedBatchProof.toJSON(message.compressed) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCommitmentProof();\n if (object.exist !== undefined && object.exist !== null) {\n message.exist = exports.ExistenceProof.fromPartial(object.exist);\n }\n if (object.nonexist !== undefined && object.nonexist !== null) {\n message.nonexist = exports.NonExistenceProof.fromPartial(object.nonexist);\n }\n if (object.batch !== undefined && object.batch !== null) {\n message.batch = exports.BatchProof.fromPartial(object.batch);\n }\n if (object.compressed !== undefined && object.compressed !== null) {\n message.compressed = exports.CompressedBatchProof.fromPartial(object.compressed);\n }\n return message;\n },\n};\nfunction createBaseLeafOp() {\n return {\n hash: 0,\n prehashKey: 0,\n prehashValue: 0,\n length: 0,\n prefix: new Uint8Array(),\n };\n}\nexports.LeafOp = {\n typeUrl: \"/cosmos.ics23.v1.LeafOp\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.hash !== 0) {\n writer.uint32(8).int32(message.hash);\n }\n if (message.prehashKey !== 0) {\n writer.uint32(16).int32(message.prehashKey);\n }\n if (message.prehashValue !== 0) {\n writer.uint32(24).int32(message.prehashValue);\n }\n if (message.length !== 0) {\n writer.uint32(32).int32(message.length);\n }\n if (message.prefix.length !== 0) {\n writer.uint32(42).bytes(message.prefix);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseLeafOp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.int32();\n break;\n case 2:\n message.prehashKey = reader.int32();\n break;\n case 3:\n message.prehashValue = reader.int32();\n break;\n case 4:\n message.length = reader.int32();\n break;\n case 5:\n message.prefix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseLeafOp();\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = hashOpFromJSON(object.hash);\n if ((0, helpers_1.isSet)(object.prehashKey))\n obj.prehashKey = hashOpFromJSON(object.prehashKey);\n if ((0, helpers_1.isSet)(object.prehashValue))\n obj.prehashValue = hashOpFromJSON(object.prehashValue);\n if ((0, helpers_1.isSet)(object.length))\n obj.length = lengthOpFromJSON(object.length);\n if ((0, helpers_1.isSet)(object.prefix))\n obj.prefix = (0, helpers_1.bytesFromBase64)(object.prefix);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));\n message.prehashKey !== undefined && (obj.prehashKey = hashOpToJSON(message.prehashKey));\n message.prehashValue !== undefined && (obj.prehashValue = hashOpToJSON(message.prehashValue));\n message.length !== undefined && (obj.length = lengthOpToJSON(message.length));\n message.prefix !== undefined &&\n (obj.prefix = (0, helpers_1.base64FromBytes)(message.prefix !== undefined ? message.prefix : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseLeafOp();\n message.hash = object.hash ?? 0;\n message.prehashKey = object.prehashKey ?? 0;\n message.prehashValue = object.prehashValue ?? 0;\n message.length = object.length ?? 0;\n message.prefix = object.prefix ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseInnerOp() {\n return {\n hash: 0,\n prefix: new Uint8Array(),\n suffix: new Uint8Array(),\n };\n}\nexports.InnerOp = {\n typeUrl: \"/cosmos.ics23.v1.InnerOp\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.hash !== 0) {\n writer.uint32(8).int32(message.hash);\n }\n if (message.prefix.length !== 0) {\n writer.uint32(18).bytes(message.prefix);\n }\n if (message.suffix.length !== 0) {\n writer.uint32(26).bytes(message.suffix);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseInnerOp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.int32();\n break;\n case 2:\n message.prefix = reader.bytes();\n break;\n case 3:\n message.suffix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseInnerOp();\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = hashOpFromJSON(object.hash);\n if ((0, helpers_1.isSet)(object.prefix))\n obj.prefix = (0, helpers_1.bytesFromBase64)(object.prefix);\n if ((0, helpers_1.isSet)(object.suffix))\n obj.suffix = (0, helpers_1.bytesFromBase64)(object.suffix);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));\n message.prefix !== undefined &&\n (obj.prefix = (0, helpers_1.base64FromBytes)(message.prefix !== undefined ? message.prefix : new Uint8Array()));\n message.suffix !== undefined &&\n (obj.suffix = (0, helpers_1.base64FromBytes)(message.suffix !== undefined ? message.suffix : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseInnerOp();\n message.hash = object.hash ?? 0;\n message.prefix = object.prefix ?? new Uint8Array();\n message.suffix = object.suffix ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseProofSpec() {\n return {\n leafSpec: undefined,\n innerSpec: undefined,\n maxDepth: 0,\n minDepth: 0,\n };\n}\nexports.ProofSpec = {\n typeUrl: \"/cosmos.ics23.v1.ProofSpec\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.leafSpec !== undefined) {\n exports.LeafOp.encode(message.leafSpec, writer.uint32(10).fork()).ldelim();\n }\n if (message.innerSpec !== undefined) {\n exports.InnerSpec.encode(message.innerSpec, writer.uint32(18).fork()).ldelim();\n }\n if (message.maxDepth !== 0) {\n writer.uint32(24).int32(message.maxDepth);\n }\n if (message.minDepth !== 0) {\n writer.uint32(32).int32(message.minDepth);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProofSpec();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.leafSpec = exports.LeafOp.decode(reader, reader.uint32());\n break;\n case 2:\n message.innerSpec = exports.InnerSpec.decode(reader, reader.uint32());\n break;\n case 3:\n message.maxDepth = reader.int32();\n break;\n case 4:\n message.minDepth = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseProofSpec();\n if ((0, helpers_1.isSet)(object.leafSpec))\n obj.leafSpec = exports.LeafOp.fromJSON(object.leafSpec);\n if ((0, helpers_1.isSet)(object.innerSpec))\n obj.innerSpec = exports.InnerSpec.fromJSON(object.innerSpec);\n if ((0, helpers_1.isSet)(object.maxDepth))\n obj.maxDepth = Number(object.maxDepth);\n if ((0, helpers_1.isSet)(object.minDepth))\n obj.minDepth = Number(object.minDepth);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.leafSpec !== undefined &&\n (obj.leafSpec = message.leafSpec ? exports.LeafOp.toJSON(message.leafSpec) : undefined);\n message.innerSpec !== undefined &&\n (obj.innerSpec = message.innerSpec ? exports.InnerSpec.toJSON(message.innerSpec) : undefined);\n message.maxDepth !== undefined && (obj.maxDepth = Math.round(message.maxDepth));\n message.minDepth !== undefined && (obj.minDepth = Math.round(message.minDepth));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseProofSpec();\n if (object.leafSpec !== undefined && object.leafSpec !== null) {\n message.leafSpec = exports.LeafOp.fromPartial(object.leafSpec);\n }\n if (object.innerSpec !== undefined && object.innerSpec !== null) {\n message.innerSpec = exports.InnerSpec.fromPartial(object.innerSpec);\n }\n message.maxDepth = object.maxDepth ?? 0;\n message.minDepth = object.minDepth ?? 0;\n return message;\n },\n};\nfunction createBaseInnerSpec() {\n return {\n childOrder: [],\n childSize: 0,\n minPrefixLength: 0,\n maxPrefixLength: 0,\n emptyChild: new Uint8Array(),\n hash: 0,\n };\n}\nexports.InnerSpec = {\n typeUrl: \"/cosmos.ics23.v1.InnerSpec\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n writer.uint32(10).fork();\n for (const v of message.childOrder) {\n writer.int32(v);\n }\n writer.ldelim();\n if (message.childSize !== 0) {\n writer.uint32(16).int32(message.childSize);\n }\n if (message.minPrefixLength !== 0) {\n writer.uint32(24).int32(message.minPrefixLength);\n }\n if (message.maxPrefixLength !== 0) {\n writer.uint32(32).int32(message.maxPrefixLength);\n }\n if (message.emptyChild.length !== 0) {\n writer.uint32(42).bytes(message.emptyChild);\n }\n if (message.hash !== 0) {\n writer.uint32(48).int32(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseInnerSpec();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.childOrder.push(reader.int32());\n }\n }\n else {\n message.childOrder.push(reader.int32());\n }\n break;\n case 2:\n message.childSize = reader.int32();\n break;\n case 3:\n message.minPrefixLength = reader.int32();\n break;\n case 4:\n message.maxPrefixLength = reader.int32();\n break;\n case 5:\n message.emptyChild = reader.bytes();\n break;\n case 6:\n message.hash = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseInnerSpec();\n if (Array.isArray(object?.childOrder))\n obj.childOrder = object.childOrder.map((e) => Number(e));\n if ((0, helpers_1.isSet)(object.childSize))\n obj.childSize = Number(object.childSize);\n if ((0, helpers_1.isSet)(object.minPrefixLength))\n obj.minPrefixLength = Number(object.minPrefixLength);\n if ((0, helpers_1.isSet)(object.maxPrefixLength))\n obj.maxPrefixLength = Number(object.maxPrefixLength);\n if ((0, helpers_1.isSet)(object.emptyChild))\n obj.emptyChild = (0, helpers_1.bytesFromBase64)(object.emptyChild);\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = hashOpFromJSON(object.hash);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.childOrder) {\n obj.childOrder = message.childOrder.map((e) => Math.round(e));\n }\n else {\n obj.childOrder = [];\n }\n message.childSize !== undefined && (obj.childSize = Math.round(message.childSize));\n message.minPrefixLength !== undefined && (obj.minPrefixLength = Math.round(message.minPrefixLength));\n message.maxPrefixLength !== undefined && (obj.maxPrefixLength = Math.round(message.maxPrefixLength));\n message.emptyChild !== undefined &&\n (obj.emptyChild = (0, helpers_1.base64FromBytes)(message.emptyChild !== undefined ? message.emptyChild : new Uint8Array()));\n message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseInnerSpec();\n message.childOrder = object.childOrder?.map((e) => e) || [];\n message.childSize = object.childSize ?? 0;\n message.minPrefixLength = object.minPrefixLength ?? 0;\n message.maxPrefixLength = object.maxPrefixLength ?? 0;\n message.emptyChild = object.emptyChild ?? new Uint8Array();\n message.hash = object.hash ?? 0;\n return message;\n },\n};\nfunction createBaseBatchProof() {\n return {\n entries: [],\n };\n}\nexports.BatchProof = {\n typeUrl: \"/cosmos.ics23.v1.BatchProof\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.entries) {\n exports.BatchEntry.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBatchProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.entries.push(exports.BatchEntry.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBatchProof();\n if (Array.isArray(object?.entries))\n obj.entries = object.entries.map((e) => exports.BatchEntry.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.BatchEntry.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBatchProof();\n message.entries = object.entries?.map((e) => exports.BatchEntry.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseBatchEntry() {\n return {\n exist: undefined,\n nonexist: undefined,\n };\n}\nexports.BatchEntry = {\n typeUrl: \"/cosmos.ics23.v1.BatchEntry\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.exist !== undefined) {\n exports.ExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim();\n }\n if (message.nonexist !== undefined) {\n exports.NonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBatchEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = exports.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = exports.NonExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBatchEntry();\n if ((0, helpers_1.isSet)(object.exist))\n obj.exist = exports.ExistenceProof.fromJSON(object.exist);\n if ((0, helpers_1.isSet)(object.nonexist))\n obj.nonexist = exports.NonExistenceProof.fromJSON(object.nonexist);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.exist !== undefined &&\n (obj.exist = message.exist ? exports.ExistenceProof.toJSON(message.exist) : undefined);\n message.nonexist !== undefined &&\n (obj.nonexist = message.nonexist ? exports.NonExistenceProof.toJSON(message.nonexist) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBatchEntry();\n if (object.exist !== undefined && object.exist !== null) {\n message.exist = exports.ExistenceProof.fromPartial(object.exist);\n }\n if (object.nonexist !== undefined && object.nonexist !== null) {\n message.nonexist = exports.NonExistenceProof.fromPartial(object.nonexist);\n }\n return message;\n },\n};\nfunction createBaseCompressedBatchProof() {\n return {\n entries: [],\n lookupInners: [],\n };\n}\nexports.CompressedBatchProof = {\n typeUrl: \"/cosmos.ics23.v1.CompressedBatchProof\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.entries) {\n exports.CompressedBatchEntry.encode(v, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.lookupInners) {\n exports.InnerOp.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCompressedBatchProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.entries.push(exports.CompressedBatchEntry.decode(reader, reader.uint32()));\n break;\n case 2:\n message.lookupInners.push(exports.InnerOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCompressedBatchProof();\n if (Array.isArray(object?.entries))\n obj.entries = object.entries.map((e) => exports.CompressedBatchEntry.fromJSON(e));\n if (Array.isArray(object?.lookupInners))\n obj.lookupInners = object.lookupInners.map((e) => exports.InnerOp.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.CompressedBatchEntry.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n if (message.lookupInners) {\n obj.lookupInners = message.lookupInners.map((e) => (e ? exports.InnerOp.toJSON(e) : undefined));\n }\n else {\n obj.lookupInners = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCompressedBatchProof();\n message.entries = object.entries?.map((e) => exports.CompressedBatchEntry.fromPartial(e)) || [];\n message.lookupInners = object.lookupInners?.map((e) => exports.InnerOp.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseCompressedBatchEntry() {\n return {\n exist: undefined,\n nonexist: undefined,\n };\n}\nexports.CompressedBatchEntry = {\n typeUrl: \"/cosmos.ics23.v1.CompressedBatchEntry\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.exist !== undefined) {\n exports.CompressedExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim();\n }\n if (message.nonexist !== undefined) {\n exports.CompressedNonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCompressedBatchEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = exports.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = exports.CompressedNonExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCompressedBatchEntry();\n if ((0, helpers_1.isSet)(object.exist))\n obj.exist = exports.CompressedExistenceProof.fromJSON(object.exist);\n if ((0, helpers_1.isSet)(object.nonexist))\n obj.nonexist = exports.CompressedNonExistenceProof.fromJSON(object.nonexist);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.exist !== undefined &&\n (obj.exist = message.exist ? exports.CompressedExistenceProof.toJSON(message.exist) : undefined);\n message.nonexist !== undefined &&\n (obj.nonexist = message.nonexist ? exports.CompressedNonExistenceProof.toJSON(message.nonexist) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCompressedBatchEntry();\n if (object.exist !== undefined && object.exist !== null) {\n message.exist = exports.CompressedExistenceProof.fromPartial(object.exist);\n }\n if (object.nonexist !== undefined && object.nonexist !== null) {\n message.nonexist = exports.CompressedNonExistenceProof.fromPartial(object.nonexist);\n }\n return message;\n },\n};\nfunction createBaseCompressedExistenceProof() {\n return {\n key: new Uint8Array(),\n value: new Uint8Array(),\n leaf: undefined,\n path: [],\n };\n}\nexports.CompressedExistenceProof = {\n typeUrl: \"/cosmos.ics23.v1.CompressedExistenceProof\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n if (message.leaf !== undefined) {\n exports.LeafOp.encode(message.leaf, writer.uint32(26).fork()).ldelim();\n }\n writer.uint32(34).fork();\n for (const v of message.path) {\n writer.int32(v);\n }\n writer.ldelim();\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCompressedExistenceProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n case 3:\n message.leaf = exports.LeafOp.decode(reader, reader.uint32());\n break;\n case 4:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.path.push(reader.int32());\n }\n }\n else {\n message.path.push(reader.int32());\n }\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCompressedExistenceProof();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n if ((0, helpers_1.isSet)(object.value))\n obj.value = (0, helpers_1.bytesFromBase64)(object.value);\n if ((0, helpers_1.isSet)(object.leaf))\n obj.leaf = exports.LeafOp.fromJSON(object.leaf);\n if (Array.isArray(object?.path))\n obj.path = object.path.map((e) => Number(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n message.value !== undefined &&\n (obj.value = (0, helpers_1.base64FromBytes)(message.value !== undefined ? message.value : new Uint8Array()));\n message.leaf !== undefined && (obj.leaf = message.leaf ? exports.LeafOp.toJSON(message.leaf) : undefined);\n if (message.path) {\n obj.path = message.path.map((e) => Math.round(e));\n }\n else {\n obj.path = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCompressedExistenceProof();\n message.key = object.key ?? new Uint8Array();\n message.value = object.value ?? new Uint8Array();\n if (object.leaf !== undefined && object.leaf !== null) {\n message.leaf = exports.LeafOp.fromPartial(object.leaf);\n }\n message.path = object.path?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseCompressedNonExistenceProof() {\n return {\n key: new Uint8Array(),\n left: undefined,\n right: undefined,\n };\n}\nexports.CompressedNonExistenceProof = {\n typeUrl: \"/cosmos.ics23.v1.CompressedNonExistenceProof\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.left !== undefined) {\n exports.CompressedExistenceProof.encode(message.left, writer.uint32(18).fork()).ldelim();\n }\n if (message.right !== undefined) {\n exports.CompressedExistenceProof.encode(message.right, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCompressedNonExistenceProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.left = exports.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.right = exports.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCompressedNonExistenceProof();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n if ((0, helpers_1.isSet)(object.left))\n obj.left = exports.CompressedExistenceProof.fromJSON(object.left);\n if ((0, helpers_1.isSet)(object.right))\n obj.right = exports.CompressedExistenceProof.fromJSON(object.right);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n message.left !== undefined &&\n (obj.left = message.left ? exports.CompressedExistenceProof.toJSON(message.left) : undefined);\n message.right !== undefined &&\n (obj.right = message.right ? exports.CompressedExistenceProof.toJSON(message.right) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCompressedNonExistenceProof();\n message.key = object.key ?? new Uint8Array();\n if (object.left !== undefined && object.left !== null) {\n message.left = exports.CompressedExistenceProof.fromPartial(object.left);\n }\n if (object.right !== undefined && object.right !== null) {\n message.right = exports.CompressedExistenceProof.fromPartial(object.right);\n }\n return message;\n },\n};\n//# sourceMappingURL=proofs.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.Minter = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.mint.v1beta1\";\nfunction createBaseMinter() {\n return {\n inflation: \"\",\n annualProvisions: \"\",\n };\n}\nexports.Minter = {\n typeUrl: \"/cosmos.mint.v1beta1.Minter\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.inflation !== \"\") {\n writer.uint32(10).string(message.inflation);\n }\n if (message.annualProvisions !== \"\") {\n writer.uint32(18).string(message.annualProvisions);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMinter();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.inflation = reader.string();\n break;\n case 2:\n message.annualProvisions = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMinter();\n if ((0, helpers_1.isSet)(object.inflation))\n obj.inflation = String(object.inflation);\n if ((0, helpers_1.isSet)(object.annualProvisions))\n obj.annualProvisions = String(object.annualProvisions);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.inflation !== undefined && (obj.inflation = message.inflation);\n message.annualProvisions !== undefined && (obj.annualProvisions = message.annualProvisions);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMinter();\n message.inflation = object.inflation ?? \"\";\n message.annualProvisions = object.annualProvisions ?? \"\";\n return message;\n },\n};\nfunction createBaseParams() {\n return {\n mintDenom: \"\",\n inflationRateChange: \"\",\n inflationMax: \"\",\n inflationMin: \"\",\n goalBonded: \"\",\n blocksPerYear: BigInt(0),\n };\n}\nexports.Params = {\n typeUrl: \"/cosmos.mint.v1beta1.Params\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.mintDenom !== \"\") {\n writer.uint32(10).string(message.mintDenom);\n }\n if (message.inflationRateChange !== \"\") {\n writer.uint32(18).string(message.inflationRateChange);\n }\n if (message.inflationMax !== \"\") {\n writer.uint32(26).string(message.inflationMax);\n }\n if (message.inflationMin !== \"\") {\n writer.uint32(34).string(message.inflationMin);\n }\n if (message.goalBonded !== \"\") {\n writer.uint32(42).string(message.goalBonded);\n }\n if (message.blocksPerYear !== BigInt(0)) {\n writer.uint32(48).uint64(message.blocksPerYear);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.mintDenom = reader.string();\n break;\n case 2:\n message.inflationRateChange = reader.string();\n break;\n case 3:\n message.inflationMax = reader.string();\n break;\n case 4:\n message.inflationMin = reader.string();\n break;\n case 5:\n message.goalBonded = reader.string();\n break;\n case 6:\n message.blocksPerYear = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseParams();\n if ((0, helpers_1.isSet)(object.mintDenom))\n obj.mintDenom = String(object.mintDenom);\n if ((0, helpers_1.isSet)(object.inflationRateChange))\n obj.inflationRateChange = String(object.inflationRateChange);\n if ((0, helpers_1.isSet)(object.inflationMax))\n obj.inflationMax = String(object.inflationMax);\n if ((0, helpers_1.isSet)(object.inflationMin))\n obj.inflationMin = String(object.inflationMin);\n if ((0, helpers_1.isSet)(object.goalBonded))\n obj.goalBonded = String(object.goalBonded);\n if ((0, helpers_1.isSet)(object.blocksPerYear))\n obj.blocksPerYear = BigInt(object.blocksPerYear.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.mintDenom !== undefined && (obj.mintDenom = message.mintDenom);\n message.inflationRateChange !== undefined && (obj.inflationRateChange = message.inflationRateChange);\n message.inflationMax !== undefined && (obj.inflationMax = message.inflationMax);\n message.inflationMin !== undefined && (obj.inflationMin = message.inflationMin);\n message.goalBonded !== undefined && (obj.goalBonded = message.goalBonded);\n message.blocksPerYear !== undefined &&\n (obj.blocksPerYear = (message.blocksPerYear || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseParams();\n message.mintDenom = object.mintDenom ?? \"\";\n message.inflationRateChange = object.inflationRateChange ?? \"\";\n message.inflationMax = object.inflationMax ?? \"\";\n message.inflationMin = object.inflationMin ?? \"\";\n message.goalBonded = object.goalBonded ?? \"\";\n if (object.blocksPerYear !== undefined && object.blocksPerYear !== null) {\n message.blocksPerYear = BigInt(object.blocksPerYear.toString());\n }\n return message;\n },\n};\n//# sourceMappingURL=mint.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryAnnualProvisionsResponse = exports.QueryAnnualProvisionsRequest = exports.QueryInflationResponse = exports.QueryInflationRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst mint_1 = require(\"./mint\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.mint.v1beta1\";\nfunction createBaseQueryParamsRequest() {\n return {};\n}\nexports.QueryParamsRequest = {\n typeUrl: \"/cosmos.mint.v1beta1.QueryParamsRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryParamsRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryParamsRequest();\n return message;\n },\n};\nfunction createBaseQueryParamsResponse() {\n return {\n params: mint_1.Params.fromPartial({}),\n };\n}\nexports.QueryParamsResponse = {\n typeUrl: \"/cosmos.mint.v1beta1.QueryParamsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.params !== undefined) {\n mint_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = mint_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryParamsResponse();\n if ((0, helpers_1.isSet)(object.params))\n obj.params = mint_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? mint_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryParamsResponse();\n if (object.params !== undefined && object.params !== null) {\n message.params = mint_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nfunction createBaseQueryInflationRequest() {\n return {};\n}\nexports.QueryInflationRequest = {\n typeUrl: \"/cosmos.mint.v1beta1.QueryInflationRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryInflationRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryInflationRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryInflationRequest();\n return message;\n },\n};\nfunction createBaseQueryInflationResponse() {\n return {\n inflation: new Uint8Array(),\n };\n}\nexports.QueryInflationResponse = {\n typeUrl: \"/cosmos.mint.v1beta1.QueryInflationResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.inflation.length !== 0) {\n writer.uint32(10).bytes(message.inflation);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryInflationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.inflation = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryInflationResponse();\n if ((0, helpers_1.isSet)(object.inflation))\n obj.inflation = (0, helpers_1.bytesFromBase64)(object.inflation);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.inflation !== undefined &&\n (obj.inflation = (0, helpers_1.base64FromBytes)(message.inflation !== undefined ? message.inflation : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryInflationResponse();\n message.inflation = object.inflation ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseQueryAnnualProvisionsRequest() {\n return {};\n}\nexports.QueryAnnualProvisionsRequest = {\n typeUrl: \"/cosmos.mint.v1beta1.QueryAnnualProvisionsRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAnnualProvisionsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryAnnualProvisionsRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryAnnualProvisionsRequest();\n return message;\n },\n};\nfunction createBaseQueryAnnualProvisionsResponse() {\n return {\n annualProvisions: new Uint8Array(),\n };\n}\nexports.QueryAnnualProvisionsResponse = {\n typeUrl: \"/cosmos.mint.v1beta1.QueryAnnualProvisionsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.annualProvisions.length !== 0) {\n writer.uint32(10).bytes(message.annualProvisions);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAnnualProvisionsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.annualProvisions = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAnnualProvisionsResponse();\n if ((0, helpers_1.isSet)(object.annualProvisions))\n obj.annualProvisions = (0, helpers_1.bytesFromBase64)(object.annualProvisions);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.annualProvisions !== undefined &&\n (obj.annualProvisions = (0, helpers_1.base64FromBytes)(message.annualProvisions !== undefined ? message.annualProvisions : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAnnualProvisionsResponse();\n message.annualProvisions = object.annualProvisions ?? new Uint8Array();\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Params = this.Params.bind(this);\n this.Inflation = this.Inflation.bind(this);\n this.AnnualProvisions = this.AnnualProvisions.bind(this);\n }\n Params(request = {}) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.mint.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n Inflation(request = {}) {\n const data = exports.QueryInflationRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.mint.v1beta1.Query\", \"Inflation\", data);\n return promise.then((data) => exports.QueryInflationResponse.decode(new binary_1.BinaryReader(data)));\n }\n AnnualProvisions(request = {}) {\n const data = exports.QueryAnnualProvisionsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.mint.v1beta1.Query\", \"AnnualProvisions\", data);\n return promise.then((data) => exports.QueryAnnualProvisionsResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QuerySigningInfosResponse = exports.QuerySigningInfosRequest = exports.QuerySigningInfoResponse = exports.QuerySigningInfoRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst pagination_1 = require(\"../../base/query/v1beta1/pagination\");\nconst slashing_1 = require(\"./slashing\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.slashing.v1beta1\";\nfunction createBaseQueryParamsRequest() {\n return {};\n}\nexports.QueryParamsRequest = {\n typeUrl: \"/cosmos.slashing.v1beta1.QueryParamsRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryParamsRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryParamsRequest();\n return message;\n },\n};\nfunction createBaseQueryParamsResponse() {\n return {\n params: slashing_1.Params.fromPartial({}),\n };\n}\nexports.QueryParamsResponse = {\n typeUrl: \"/cosmos.slashing.v1beta1.QueryParamsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.params !== undefined) {\n slashing_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = slashing_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryParamsResponse();\n if ((0, helpers_1.isSet)(object.params))\n obj.params = slashing_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? slashing_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryParamsResponse();\n if (object.params !== undefined && object.params !== null) {\n message.params = slashing_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nfunction createBaseQuerySigningInfoRequest() {\n return {\n consAddress: \"\",\n };\n}\nexports.QuerySigningInfoRequest = {\n typeUrl: \"/cosmos.slashing.v1beta1.QuerySigningInfoRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.consAddress !== \"\") {\n writer.uint32(10).string(message.consAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySigningInfoRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySigningInfoRequest();\n if ((0, helpers_1.isSet)(object.consAddress))\n obj.consAddress = String(object.consAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.consAddress !== undefined && (obj.consAddress = message.consAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySigningInfoRequest();\n message.consAddress = object.consAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseQuerySigningInfoResponse() {\n return {\n valSigningInfo: slashing_1.ValidatorSigningInfo.fromPartial({}),\n };\n}\nexports.QuerySigningInfoResponse = {\n typeUrl: \"/cosmos.slashing.v1beta1.QuerySigningInfoResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.valSigningInfo !== undefined) {\n slashing_1.ValidatorSigningInfo.encode(message.valSigningInfo, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySigningInfoResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.valSigningInfo = slashing_1.ValidatorSigningInfo.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySigningInfoResponse();\n if ((0, helpers_1.isSet)(object.valSigningInfo))\n obj.valSigningInfo = slashing_1.ValidatorSigningInfo.fromJSON(object.valSigningInfo);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.valSigningInfo !== undefined &&\n (obj.valSigningInfo = message.valSigningInfo\n ? slashing_1.ValidatorSigningInfo.toJSON(message.valSigningInfo)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySigningInfoResponse();\n if (object.valSigningInfo !== undefined && object.valSigningInfo !== null) {\n message.valSigningInfo = slashing_1.ValidatorSigningInfo.fromPartial(object.valSigningInfo);\n }\n return message;\n },\n};\nfunction createBaseQuerySigningInfosRequest() {\n return {\n pagination: undefined,\n };\n}\nexports.QuerySigningInfosRequest = {\n typeUrl: \"/cosmos.slashing.v1beta1.QuerySigningInfosRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySigningInfosRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySigningInfosRequest();\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySigningInfosRequest();\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQuerySigningInfosResponse() {\n return {\n info: [],\n pagination: undefined,\n };\n}\nexports.QuerySigningInfosResponse = {\n typeUrl: \"/cosmos.slashing.v1beta1.QuerySigningInfosResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.info) {\n slashing_1.ValidatorSigningInfo.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySigningInfosResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.info.push(slashing_1.ValidatorSigningInfo.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySigningInfosResponse();\n if (Array.isArray(object?.info))\n obj.info = object.info.map((e) => slashing_1.ValidatorSigningInfo.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.info) {\n obj.info = message.info.map((e) => (e ? slashing_1.ValidatorSigningInfo.toJSON(e) : undefined));\n }\n else {\n obj.info = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySigningInfosResponse();\n message.info = object.info?.map((e) => slashing_1.ValidatorSigningInfo.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Params = this.Params.bind(this);\n this.SigningInfo = this.SigningInfo.bind(this);\n this.SigningInfos = this.SigningInfos.bind(this);\n }\n Params(request = {}) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.slashing.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n SigningInfo(request) {\n const data = exports.QuerySigningInfoRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.slashing.v1beta1.Query\", \"SigningInfo\", data);\n return promise.then((data) => exports.QuerySigningInfoResponse.decode(new binary_1.BinaryReader(data)));\n }\n SigningInfos(request = {\n pagination: pagination_1.PageRequest.fromPartial({}),\n }) {\n const data = exports.QuerySigningInfosRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.slashing.v1beta1.Query\", \"SigningInfos\", data);\n return promise.then((data) => exports.QuerySigningInfosResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.ValidatorSigningInfo = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst duration_1 = require(\"../../../google/protobuf/duration\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.slashing.v1beta1\";\nfunction createBaseValidatorSigningInfo() {\n return {\n address: \"\",\n startHeight: BigInt(0),\n indexOffset: BigInt(0),\n jailedUntil: timestamp_1.Timestamp.fromPartial({}),\n tombstoned: false,\n missedBlocksCounter: BigInt(0),\n };\n}\nexports.ValidatorSigningInfo = {\n typeUrl: \"/cosmos.slashing.v1beta1.ValidatorSigningInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.startHeight !== BigInt(0)) {\n writer.uint32(16).int64(message.startHeight);\n }\n if (message.indexOffset !== BigInt(0)) {\n writer.uint32(24).int64(message.indexOffset);\n }\n if (message.jailedUntil !== undefined) {\n timestamp_1.Timestamp.encode(message.jailedUntil, writer.uint32(34).fork()).ldelim();\n }\n if (message.tombstoned === true) {\n writer.uint32(40).bool(message.tombstoned);\n }\n if (message.missedBlocksCounter !== BigInt(0)) {\n writer.uint32(48).int64(message.missedBlocksCounter);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorSigningInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.startHeight = reader.int64();\n break;\n case 3:\n message.indexOffset = reader.int64();\n break;\n case 4:\n message.jailedUntil = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 5:\n message.tombstoned = reader.bool();\n break;\n case 6:\n message.missedBlocksCounter = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidatorSigningInfo();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.startHeight))\n obj.startHeight = BigInt(object.startHeight.toString());\n if ((0, helpers_1.isSet)(object.indexOffset))\n obj.indexOffset = BigInt(object.indexOffset.toString());\n if ((0, helpers_1.isSet)(object.jailedUntil))\n obj.jailedUntil = (0, helpers_1.fromJsonTimestamp)(object.jailedUntil);\n if ((0, helpers_1.isSet)(object.tombstoned))\n obj.tombstoned = Boolean(object.tombstoned);\n if ((0, helpers_1.isSet)(object.missedBlocksCounter))\n obj.missedBlocksCounter = BigInt(object.missedBlocksCounter.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.startHeight !== undefined && (obj.startHeight = (message.startHeight || BigInt(0)).toString());\n message.indexOffset !== undefined && (obj.indexOffset = (message.indexOffset || BigInt(0)).toString());\n message.jailedUntil !== undefined && (obj.jailedUntil = (0, helpers_1.fromTimestamp)(message.jailedUntil).toISOString());\n message.tombstoned !== undefined && (obj.tombstoned = message.tombstoned);\n message.missedBlocksCounter !== undefined &&\n (obj.missedBlocksCounter = (message.missedBlocksCounter || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidatorSigningInfo();\n message.address = object.address ?? \"\";\n if (object.startHeight !== undefined && object.startHeight !== null) {\n message.startHeight = BigInt(object.startHeight.toString());\n }\n if (object.indexOffset !== undefined && object.indexOffset !== null) {\n message.indexOffset = BigInt(object.indexOffset.toString());\n }\n if (object.jailedUntil !== undefined && object.jailedUntil !== null) {\n message.jailedUntil = timestamp_1.Timestamp.fromPartial(object.jailedUntil);\n }\n message.tombstoned = object.tombstoned ?? false;\n if (object.missedBlocksCounter !== undefined && object.missedBlocksCounter !== null) {\n message.missedBlocksCounter = BigInt(object.missedBlocksCounter.toString());\n }\n return message;\n },\n};\nfunction createBaseParams() {\n return {\n signedBlocksWindow: BigInt(0),\n minSignedPerWindow: new Uint8Array(),\n downtimeJailDuration: duration_1.Duration.fromPartial({}),\n slashFractionDoubleSign: new Uint8Array(),\n slashFractionDowntime: new Uint8Array(),\n };\n}\nexports.Params = {\n typeUrl: \"/cosmos.slashing.v1beta1.Params\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.signedBlocksWindow !== BigInt(0)) {\n writer.uint32(8).int64(message.signedBlocksWindow);\n }\n if (message.minSignedPerWindow.length !== 0) {\n writer.uint32(18).bytes(message.minSignedPerWindow);\n }\n if (message.downtimeJailDuration !== undefined) {\n duration_1.Duration.encode(message.downtimeJailDuration, writer.uint32(26).fork()).ldelim();\n }\n if (message.slashFractionDoubleSign.length !== 0) {\n writer.uint32(34).bytes(message.slashFractionDoubleSign);\n }\n if (message.slashFractionDowntime.length !== 0) {\n writer.uint32(42).bytes(message.slashFractionDowntime);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signedBlocksWindow = reader.int64();\n break;\n case 2:\n message.minSignedPerWindow = reader.bytes();\n break;\n case 3:\n message.downtimeJailDuration = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 4:\n message.slashFractionDoubleSign = reader.bytes();\n break;\n case 5:\n message.slashFractionDowntime = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseParams();\n if ((0, helpers_1.isSet)(object.signedBlocksWindow))\n obj.signedBlocksWindow = BigInt(object.signedBlocksWindow.toString());\n if ((0, helpers_1.isSet)(object.minSignedPerWindow))\n obj.minSignedPerWindow = (0, helpers_1.bytesFromBase64)(object.minSignedPerWindow);\n if ((0, helpers_1.isSet)(object.downtimeJailDuration))\n obj.downtimeJailDuration = duration_1.Duration.fromJSON(object.downtimeJailDuration);\n if ((0, helpers_1.isSet)(object.slashFractionDoubleSign))\n obj.slashFractionDoubleSign = (0, helpers_1.bytesFromBase64)(object.slashFractionDoubleSign);\n if ((0, helpers_1.isSet)(object.slashFractionDowntime))\n obj.slashFractionDowntime = (0, helpers_1.bytesFromBase64)(object.slashFractionDowntime);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.signedBlocksWindow !== undefined &&\n (obj.signedBlocksWindow = (message.signedBlocksWindow || BigInt(0)).toString());\n message.minSignedPerWindow !== undefined &&\n (obj.minSignedPerWindow = (0, helpers_1.base64FromBytes)(message.minSignedPerWindow !== undefined ? message.minSignedPerWindow : new Uint8Array()));\n message.downtimeJailDuration !== undefined &&\n (obj.downtimeJailDuration = message.downtimeJailDuration\n ? duration_1.Duration.toJSON(message.downtimeJailDuration)\n : undefined);\n message.slashFractionDoubleSign !== undefined &&\n (obj.slashFractionDoubleSign = (0, helpers_1.base64FromBytes)(message.slashFractionDoubleSign !== undefined ? message.slashFractionDoubleSign : new Uint8Array()));\n message.slashFractionDowntime !== undefined &&\n (obj.slashFractionDowntime = (0, helpers_1.base64FromBytes)(message.slashFractionDowntime !== undefined ? message.slashFractionDowntime : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseParams();\n if (object.signedBlocksWindow !== undefined && object.signedBlocksWindow !== null) {\n message.signedBlocksWindow = BigInt(object.signedBlocksWindow.toString());\n }\n message.minSignedPerWindow = object.minSignedPerWindow ?? new Uint8Array();\n if (object.downtimeJailDuration !== undefined && object.downtimeJailDuration !== null) {\n message.downtimeJailDuration = duration_1.Duration.fromPartial(object.downtimeJailDuration);\n }\n message.slashFractionDoubleSign = object.slashFractionDoubleSign ?? new Uint8Array();\n message.slashFractionDowntime = object.slashFractionDowntime ?? new Uint8Array();\n return message;\n },\n};\n//# sourceMappingURL=slashing.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryPoolResponse = exports.QueryPoolRequest = exports.QueryHistoricalInfoResponse = exports.QueryHistoricalInfoRequest = exports.QueryDelegatorValidatorResponse = exports.QueryDelegatorValidatorRequest = exports.QueryDelegatorValidatorsResponse = exports.QueryDelegatorValidatorsRequest = exports.QueryRedelegationsResponse = exports.QueryRedelegationsRequest = exports.QueryDelegatorUnbondingDelegationsResponse = exports.QueryDelegatorUnbondingDelegationsRequest = exports.QueryDelegatorDelegationsResponse = exports.QueryDelegatorDelegationsRequest = exports.QueryUnbondingDelegationResponse = exports.QueryUnbondingDelegationRequest = exports.QueryDelegationResponse = exports.QueryDelegationRequest = exports.QueryValidatorUnbondingDelegationsResponse = exports.QueryValidatorUnbondingDelegationsRequest = exports.QueryValidatorDelegationsResponse = exports.QueryValidatorDelegationsRequest = exports.QueryValidatorResponse = exports.QueryValidatorRequest = exports.QueryValidatorsResponse = exports.QueryValidatorsRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst pagination_1 = require(\"../../base/query/v1beta1/pagination\");\nconst staking_1 = require(\"./staking\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.staking.v1beta1\";\nfunction createBaseQueryValidatorsRequest() {\n return {\n status: \"\",\n pagination: undefined,\n };\n}\nexports.QueryValidatorsRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryValidatorsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.status !== \"\") {\n writer.uint32(10).string(message.status);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.status = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorsRequest();\n if ((0, helpers_1.isSet)(object.status))\n obj.status = String(object.status);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.status !== undefined && (obj.status = message.status);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorsRequest();\n message.status = object.status ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryValidatorsResponse() {\n return {\n validators: [],\n pagination: undefined,\n };\n}\nexports.QueryValidatorsResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryValidatorsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.validators) {\n staking_1.Validator.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validators.push(staking_1.Validator.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorsResponse();\n if (Array.isArray(object?.validators))\n obj.validators = object.validators.map((e) => staking_1.Validator.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? staking_1.Validator.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorsResponse();\n message.validators = object.validators?.map((e) => staking_1.Validator.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryValidatorRequest() {\n return {\n validatorAddr: \"\",\n };\n}\nexports.QueryValidatorRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryValidatorRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validatorAddr !== \"\") {\n writer.uint32(10).string(message.validatorAddr);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddr = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorRequest();\n if ((0, helpers_1.isSet)(object.validatorAddr))\n obj.validatorAddr = String(object.validatorAddr);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorRequest();\n message.validatorAddr = object.validatorAddr ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryValidatorResponse() {\n return {\n validator: staking_1.Validator.fromPartial({}),\n };\n}\nexports.QueryValidatorResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryValidatorResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validator !== undefined) {\n staking_1.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validator = staking_1.Validator.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorResponse();\n if ((0, helpers_1.isSet)(object.validator))\n obj.validator = staking_1.Validator.fromJSON(object.validator);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validator !== undefined &&\n (obj.validator = message.validator ? staking_1.Validator.toJSON(message.validator) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorResponse();\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = staking_1.Validator.fromPartial(object.validator);\n }\n return message;\n },\n};\nfunction createBaseQueryValidatorDelegationsRequest() {\n return {\n validatorAddr: \"\",\n pagination: undefined,\n };\n}\nexports.QueryValidatorDelegationsRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryValidatorDelegationsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validatorAddr !== \"\") {\n writer.uint32(10).string(message.validatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorDelegationsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddr = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorDelegationsRequest();\n if ((0, helpers_1.isSet)(object.validatorAddr))\n obj.validatorAddr = String(object.validatorAddr);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorDelegationsRequest();\n message.validatorAddr = object.validatorAddr ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryValidatorDelegationsResponse() {\n return {\n delegationResponses: [],\n pagination: undefined,\n };\n}\nexports.QueryValidatorDelegationsResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryValidatorDelegationsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.delegationResponses) {\n staking_1.DelegationResponse.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorDelegationsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegationResponses.push(staking_1.DelegationResponse.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorDelegationsResponse();\n if (Array.isArray(object?.delegationResponses))\n obj.delegationResponses = object.delegationResponses.map((e) => staking_1.DelegationResponse.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.delegationResponses) {\n obj.delegationResponses = message.delegationResponses.map((e) => e ? staking_1.DelegationResponse.toJSON(e) : undefined);\n }\n else {\n obj.delegationResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorDelegationsResponse();\n message.delegationResponses =\n object.delegationResponses?.map((e) => staking_1.DelegationResponse.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryValidatorUnbondingDelegationsRequest() {\n return {\n validatorAddr: \"\",\n pagination: undefined,\n };\n}\nexports.QueryValidatorUnbondingDelegationsRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validatorAddr !== \"\") {\n writer.uint32(10).string(message.validatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorUnbondingDelegationsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddr = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorUnbondingDelegationsRequest();\n if ((0, helpers_1.isSet)(object.validatorAddr))\n obj.validatorAddr = String(object.validatorAddr);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorUnbondingDelegationsRequest();\n message.validatorAddr = object.validatorAddr ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryValidatorUnbondingDelegationsResponse() {\n return {\n unbondingResponses: [],\n pagination: undefined,\n };\n}\nexports.QueryValidatorUnbondingDelegationsResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.unbondingResponses) {\n staking_1.UnbondingDelegation.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorUnbondingDelegationsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.unbondingResponses.push(staking_1.UnbondingDelegation.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorUnbondingDelegationsResponse();\n if (Array.isArray(object?.unbondingResponses))\n obj.unbondingResponses = object.unbondingResponses.map((e) => staking_1.UnbondingDelegation.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.unbondingResponses) {\n obj.unbondingResponses = message.unbondingResponses.map((e) => e ? staking_1.UnbondingDelegation.toJSON(e) : undefined);\n }\n else {\n obj.unbondingResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorUnbondingDelegationsResponse();\n message.unbondingResponses =\n object.unbondingResponses?.map((e) => staking_1.UnbondingDelegation.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDelegationRequest() {\n return {\n delegatorAddr: \"\",\n validatorAddr: \"\",\n };\n}\nexports.QueryDelegationRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryDelegationRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.validatorAddr !== \"\") {\n writer.uint32(18).string(message.validatorAddr);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegationRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.validatorAddr = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegationRequest();\n if ((0, helpers_1.isSet)(object.delegatorAddr))\n obj.delegatorAddr = String(object.delegatorAddr);\n if ((0, helpers_1.isSet)(object.validatorAddr))\n obj.validatorAddr = String(object.validatorAddr);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegationRequest();\n message.delegatorAddr = object.delegatorAddr ?? \"\";\n message.validatorAddr = object.validatorAddr ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryDelegationResponse() {\n return {\n delegationResponse: undefined,\n };\n}\nexports.QueryDelegationResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryDelegationResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegationResponse !== undefined) {\n staking_1.DelegationResponse.encode(message.delegationResponse, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegationResponse = staking_1.DelegationResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegationResponse();\n if ((0, helpers_1.isSet)(object.delegationResponse))\n obj.delegationResponse = staking_1.DelegationResponse.fromJSON(object.delegationResponse);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegationResponse !== undefined &&\n (obj.delegationResponse = message.delegationResponse\n ? staking_1.DelegationResponse.toJSON(message.delegationResponse)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegationResponse();\n if (object.delegationResponse !== undefined && object.delegationResponse !== null) {\n message.delegationResponse = staking_1.DelegationResponse.fromPartial(object.delegationResponse);\n }\n return message;\n },\n};\nfunction createBaseQueryUnbondingDelegationRequest() {\n return {\n delegatorAddr: \"\",\n validatorAddr: \"\",\n };\n}\nexports.QueryUnbondingDelegationRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryUnbondingDelegationRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.validatorAddr !== \"\") {\n writer.uint32(18).string(message.validatorAddr);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryUnbondingDelegationRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.validatorAddr = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryUnbondingDelegationRequest();\n if ((0, helpers_1.isSet)(object.delegatorAddr))\n obj.delegatorAddr = String(object.delegatorAddr);\n if ((0, helpers_1.isSet)(object.validatorAddr))\n obj.validatorAddr = String(object.validatorAddr);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryUnbondingDelegationRequest();\n message.delegatorAddr = object.delegatorAddr ?? \"\";\n message.validatorAddr = object.validatorAddr ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryUnbondingDelegationResponse() {\n return {\n unbond: staking_1.UnbondingDelegation.fromPartial({}),\n };\n}\nexports.QueryUnbondingDelegationResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryUnbondingDelegationResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.unbond !== undefined) {\n staking_1.UnbondingDelegation.encode(message.unbond, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryUnbondingDelegationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.unbond = staking_1.UnbondingDelegation.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryUnbondingDelegationResponse();\n if ((0, helpers_1.isSet)(object.unbond))\n obj.unbond = staking_1.UnbondingDelegation.fromJSON(object.unbond);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.unbond !== undefined &&\n (obj.unbond = message.unbond ? staking_1.UnbondingDelegation.toJSON(message.unbond) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryUnbondingDelegationResponse();\n if (object.unbond !== undefined && object.unbond !== null) {\n message.unbond = staking_1.UnbondingDelegation.fromPartial(object.unbond);\n }\n return message;\n },\n};\nfunction createBaseQueryDelegatorDelegationsRequest() {\n return {\n delegatorAddr: \"\",\n pagination: undefined,\n };\n}\nexports.QueryDelegatorDelegationsRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryDelegatorDelegationsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorDelegationsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorDelegationsRequest();\n if ((0, helpers_1.isSet)(object.delegatorAddr))\n obj.delegatorAddr = String(object.delegatorAddr);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorDelegationsRequest();\n message.delegatorAddr = object.delegatorAddr ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDelegatorDelegationsResponse() {\n return {\n delegationResponses: [],\n pagination: undefined,\n };\n}\nexports.QueryDelegatorDelegationsResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryDelegatorDelegationsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.delegationResponses) {\n staking_1.DelegationResponse.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorDelegationsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegationResponses.push(staking_1.DelegationResponse.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorDelegationsResponse();\n if (Array.isArray(object?.delegationResponses))\n obj.delegationResponses = object.delegationResponses.map((e) => staking_1.DelegationResponse.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.delegationResponses) {\n obj.delegationResponses = message.delegationResponses.map((e) => e ? staking_1.DelegationResponse.toJSON(e) : undefined);\n }\n else {\n obj.delegationResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorDelegationsResponse();\n message.delegationResponses =\n object.delegationResponses?.map((e) => staking_1.DelegationResponse.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDelegatorUnbondingDelegationsRequest() {\n return {\n delegatorAddr: \"\",\n pagination: undefined,\n };\n}\nexports.QueryDelegatorUnbondingDelegationsRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorUnbondingDelegationsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorUnbondingDelegationsRequest();\n if ((0, helpers_1.isSet)(object.delegatorAddr))\n obj.delegatorAddr = String(object.delegatorAddr);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorUnbondingDelegationsRequest();\n message.delegatorAddr = object.delegatorAddr ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDelegatorUnbondingDelegationsResponse() {\n return {\n unbondingResponses: [],\n pagination: undefined,\n };\n}\nexports.QueryDelegatorUnbondingDelegationsResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.unbondingResponses) {\n staking_1.UnbondingDelegation.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorUnbondingDelegationsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.unbondingResponses.push(staking_1.UnbondingDelegation.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorUnbondingDelegationsResponse();\n if (Array.isArray(object?.unbondingResponses))\n obj.unbondingResponses = object.unbondingResponses.map((e) => staking_1.UnbondingDelegation.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.unbondingResponses) {\n obj.unbondingResponses = message.unbondingResponses.map((e) => e ? staking_1.UnbondingDelegation.toJSON(e) : undefined);\n }\n else {\n obj.unbondingResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorUnbondingDelegationsResponse();\n message.unbondingResponses =\n object.unbondingResponses?.map((e) => staking_1.UnbondingDelegation.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryRedelegationsRequest() {\n return {\n delegatorAddr: \"\",\n srcValidatorAddr: \"\",\n dstValidatorAddr: \"\",\n pagination: undefined,\n };\n}\nexports.QueryRedelegationsRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryRedelegationsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.srcValidatorAddr !== \"\") {\n writer.uint32(18).string(message.srcValidatorAddr);\n }\n if (message.dstValidatorAddr !== \"\") {\n writer.uint32(26).string(message.dstValidatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryRedelegationsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.srcValidatorAddr = reader.string();\n break;\n case 3:\n message.dstValidatorAddr = reader.string();\n break;\n case 4:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryRedelegationsRequest();\n if ((0, helpers_1.isSet)(object.delegatorAddr))\n obj.delegatorAddr = String(object.delegatorAddr);\n if ((0, helpers_1.isSet)(object.srcValidatorAddr))\n obj.srcValidatorAddr = String(object.srcValidatorAddr);\n if ((0, helpers_1.isSet)(object.dstValidatorAddr))\n obj.dstValidatorAddr = String(object.dstValidatorAddr);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.srcValidatorAddr !== undefined && (obj.srcValidatorAddr = message.srcValidatorAddr);\n message.dstValidatorAddr !== undefined && (obj.dstValidatorAddr = message.dstValidatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryRedelegationsRequest();\n message.delegatorAddr = object.delegatorAddr ?? \"\";\n message.srcValidatorAddr = object.srcValidatorAddr ?? \"\";\n message.dstValidatorAddr = object.dstValidatorAddr ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryRedelegationsResponse() {\n return {\n redelegationResponses: [],\n pagination: undefined,\n };\n}\nexports.QueryRedelegationsResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryRedelegationsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.redelegationResponses) {\n staking_1.RedelegationResponse.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryRedelegationsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.redelegationResponses.push(staking_1.RedelegationResponse.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryRedelegationsResponse();\n if (Array.isArray(object?.redelegationResponses))\n obj.redelegationResponses = object.redelegationResponses.map((e) => staking_1.RedelegationResponse.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.redelegationResponses) {\n obj.redelegationResponses = message.redelegationResponses.map((e) => e ? staking_1.RedelegationResponse.toJSON(e) : undefined);\n }\n else {\n obj.redelegationResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryRedelegationsResponse();\n message.redelegationResponses =\n object.redelegationResponses?.map((e) => staking_1.RedelegationResponse.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDelegatorValidatorsRequest() {\n return {\n delegatorAddr: \"\",\n pagination: undefined,\n };\n}\nexports.QueryDelegatorValidatorsRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryDelegatorValidatorsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorValidatorsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorValidatorsRequest();\n if ((0, helpers_1.isSet)(object.delegatorAddr))\n obj.delegatorAddr = String(object.delegatorAddr);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorValidatorsRequest();\n message.delegatorAddr = object.delegatorAddr ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDelegatorValidatorsResponse() {\n return {\n validators: [],\n pagination: undefined,\n };\n}\nexports.QueryDelegatorValidatorsResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryDelegatorValidatorsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.validators) {\n staking_1.Validator.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorValidatorsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validators.push(staking_1.Validator.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorValidatorsResponse();\n if (Array.isArray(object?.validators))\n obj.validators = object.validators.map((e) => staking_1.Validator.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? staking_1.Validator.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorValidatorsResponse();\n message.validators = object.validators?.map((e) => staking_1.Validator.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDelegatorValidatorRequest() {\n return {\n delegatorAddr: \"\",\n validatorAddr: \"\",\n };\n}\nexports.QueryDelegatorValidatorRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryDelegatorValidatorRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.validatorAddr !== \"\") {\n writer.uint32(18).string(message.validatorAddr);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorValidatorRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.validatorAddr = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorValidatorRequest();\n if ((0, helpers_1.isSet)(object.delegatorAddr))\n obj.delegatorAddr = String(object.delegatorAddr);\n if ((0, helpers_1.isSet)(object.validatorAddr))\n obj.validatorAddr = String(object.validatorAddr);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorValidatorRequest();\n message.delegatorAddr = object.delegatorAddr ?? \"\";\n message.validatorAddr = object.validatorAddr ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryDelegatorValidatorResponse() {\n return {\n validator: staking_1.Validator.fromPartial({}),\n };\n}\nexports.QueryDelegatorValidatorResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryDelegatorValidatorResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validator !== undefined) {\n staking_1.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorValidatorResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validator = staking_1.Validator.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorValidatorResponse();\n if ((0, helpers_1.isSet)(object.validator))\n obj.validator = staking_1.Validator.fromJSON(object.validator);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validator !== undefined &&\n (obj.validator = message.validator ? staking_1.Validator.toJSON(message.validator) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorValidatorResponse();\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = staking_1.Validator.fromPartial(object.validator);\n }\n return message;\n },\n};\nfunction createBaseQueryHistoricalInfoRequest() {\n return {\n height: BigInt(0),\n };\n}\nexports.QueryHistoricalInfoRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryHistoricalInfoRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.height !== BigInt(0)) {\n writer.uint32(8).int64(message.height);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryHistoricalInfoRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryHistoricalInfoRequest();\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryHistoricalInfoRequest();\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n return message;\n },\n};\nfunction createBaseQueryHistoricalInfoResponse() {\n return {\n hist: undefined,\n };\n}\nexports.QueryHistoricalInfoResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryHistoricalInfoResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.hist !== undefined) {\n staking_1.HistoricalInfo.encode(message.hist, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryHistoricalInfoResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hist = staking_1.HistoricalInfo.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryHistoricalInfoResponse();\n if ((0, helpers_1.isSet)(object.hist))\n obj.hist = staking_1.HistoricalInfo.fromJSON(object.hist);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.hist !== undefined && (obj.hist = message.hist ? staking_1.HistoricalInfo.toJSON(message.hist) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryHistoricalInfoResponse();\n if (object.hist !== undefined && object.hist !== null) {\n message.hist = staking_1.HistoricalInfo.fromPartial(object.hist);\n }\n return message;\n },\n};\nfunction createBaseQueryPoolRequest() {\n return {};\n}\nexports.QueryPoolRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryPoolRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPoolRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryPoolRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryPoolRequest();\n return message;\n },\n};\nfunction createBaseQueryPoolResponse() {\n return {\n pool: staking_1.Pool.fromPartial({}),\n };\n}\nexports.QueryPoolResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryPoolResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.pool !== undefined) {\n staking_1.Pool.encode(message.pool, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPoolResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pool = staking_1.Pool.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryPoolResponse();\n if ((0, helpers_1.isSet)(object.pool))\n obj.pool = staking_1.Pool.fromJSON(object.pool);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.pool !== undefined && (obj.pool = message.pool ? staking_1.Pool.toJSON(message.pool) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryPoolResponse();\n if (object.pool !== undefined && object.pool !== null) {\n message.pool = staking_1.Pool.fromPartial(object.pool);\n }\n return message;\n },\n};\nfunction createBaseQueryParamsRequest() {\n return {};\n}\nexports.QueryParamsRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryParamsRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryParamsRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryParamsRequest();\n return message;\n },\n};\nfunction createBaseQueryParamsResponse() {\n return {\n params: staking_1.Params.fromPartial({}),\n };\n}\nexports.QueryParamsResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryParamsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.params !== undefined) {\n staking_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = staking_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryParamsResponse();\n if ((0, helpers_1.isSet)(object.params))\n obj.params = staking_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? staking_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryParamsResponse();\n if (object.params !== undefined && object.params !== null) {\n message.params = staking_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Validators = this.Validators.bind(this);\n this.Validator = this.Validator.bind(this);\n this.ValidatorDelegations = this.ValidatorDelegations.bind(this);\n this.ValidatorUnbondingDelegations = this.ValidatorUnbondingDelegations.bind(this);\n this.Delegation = this.Delegation.bind(this);\n this.UnbondingDelegation = this.UnbondingDelegation.bind(this);\n this.DelegatorDelegations = this.DelegatorDelegations.bind(this);\n this.DelegatorUnbondingDelegations = this.DelegatorUnbondingDelegations.bind(this);\n this.Redelegations = this.Redelegations.bind(this);\n this.DelegatorValidators = this.DelegatorValidators.bind(this);\n this.DelegatorValidator = this.DelegatorValidator.bind(this);\n this.HistoricalInfo = this.HistoricalInfo.bind(this);\n this.Pool = this.Pool.bind(this);\n this.Params = this.Params.bind(this);\n }\n Validators(request) {\n const data = exports.QueryValidatorsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Validators\", data);\n return promise.then((data) => exports.QueryValidatorsResponse.decode(new binary_1.BinaryReader(data)));\n }\n Validator(request) {\n const data = exports.QueryValidatorRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Validator\", data);\n return promise.then((data) => exports.QueryValidatorResponse.decode(new binary_1.BinaryReader(data)));\n }\n ValidatorDelegations(request) {\n const data = exports.QueryValidatorDelegationsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"ValidatorDelegations\", data);\n return promise.then((data) => exports.QueryValidatorDelegationsResponse.decode(new binary_1.BinaryReader(data)));\n }\n ValidatorUnbondingDelegations(request) {\n const data = exports.QueryValidatorUnbondingDelegationsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"ValidatorUnbondingDelegations\", data);\n return promise.then((data) => exports.QueryValidatorUnbondingDelegationsResponse.decode(new binary_1.BinaryReader(data)));\n }\n Delegation(request) {\n const data = exports.QueryDelegationRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Delegation\", data);\n return promise.then((data) => exports.QueryDelegationResponse.decode(new binary_1.BinaryReader(data)));\n }\n UnbondingDelegation(request) {\n const data = exports.QueryUnbondingDelegationRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"UnbondingDelegation\", data);\n return promise.then((data) => exports.QueryUnbondingDelegationResponse.decode(new binary_1.BinaryReader(data)));\n }\n DelegatorDelegations(request) {\n const data = exports.QueryDelegatorDelegationsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"DelegatorDelegations\", data);\n return promise.then((data) => exports.QueryDelegatorDelegationsResponse.decode(new binary_1.BinaryReader(data)));\n }\n DelegatorUnbondingDelegations(request) {\n const data = exports.QueryDelegatorUnbondingDelegationsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"DelegatorUnbondingDelegations\", data);\n return promise.then((data) => exports.QueryDelegatorUnbondingDelegationsResponse.decode(new binary_1.BinaryReader(data)));\n }\n Redelegations(request) {\n const data = exports.QueryRedelegationsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Redelegations\", data);\n return promise.then((data) => exports.QueryRedelegationsResponse.decode(new binary_1.BinaryReader(data)));\n }\n DelegatorValidators(request) {\n const data = exports.QueryDelegatorValidatorsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"DelegatorValidators\", data);\n return promise.then((data) => exports.QueryDelegatorValidatorsResponse.decode(new binary_1.BinaryReader(data)));\n }\n DelegatorValidator(request) {\n const data = exports.QueryDelegatorValidatorRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"DelegatorValidator\", data);\n return promise.then((data) => exports.QueryDelegatorValidatorResponse.decode(new binary_1.BinaryReader(data)));\n }\n HistoricalInfo(request) {\n const data = exports.QueryHistoricalInfoRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"HistoricalInfo\", data);\n return promise.then((data) => exports.QueryHistoricalInfoResponse.decode(new binary_1.BinaryReader(data)));\n }\n Pool(request = {}) {\n const data = exports.QueryPoolRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Pool\", data);\n return promise.then((data) => exports.QueryPoolResponse.decode(new binary_1.BinaryReader(data)));\n }\n Params(request = {}) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValidatorUpdates = exports.Pool = exports.RedelegationResponse = exports.RedelegationEntryResponse = exports.DelegationResponse = exports.Params = exports.Redelegation = exports.RedelegationEntry = exports.UnbondingDelegationEntry = exports.UnbondingDelegation = exports.Delegation = exports.DVVTriplets = exports.DVVTriplet = exports.DVPairs = exports.DVPair = exports.ValAddresses = exports.Validator = exports.Description = exports.Commission = exports.CommissionRates = exports.HistoricalInfo = exports.infractionToJSON = exports.infractionFromJSON = exports.Infraction = exports.bondStatusToJSON = exports.bondStatusFromJSON = exports.BondStatus = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst types_1 = require(\"../../../tendermint/types/types\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst duration_1 = require(\"../../../google/protobuf/duration\");\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst types_2 = require(\"../../../tendermint/abci/types\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.staking.v1beta1\";\n/** BondStatus is the status of a validator. */\nvar BondStatus;\n(function (BondStatus) {\n /** BOND_STATUS_UNSPECIFIED - UNSPECIFIED defines an invalid validator status. */\n BondStatus[BondStatus[\"BOND_STATUS_UNSPECIFIED\"] = 0] = \"BOND_STATUS_UNSPECIFIED\";\n /** BOND_STATUS_UNBONDED - UNBONDED defines a validator that is not bonded. */\n BondStatus[BondStatus[\"BOND_STATUS_UNBONDED\"] = 1] = \"BOND_STATUS_UNBONDED\";\n /** BOND_STATUS_UNBONDING - UNBONDING defines a validator that is unbonding. */\n BondStatus[BondStatus[\"BOND_STATUS_UNBONDING\"] = 2] = \"BOND_STATUS_UNBONDING\";\n /** BOND_STATUS_BONDED - BONDED defines a validator that is bonded. */\n BondStatus[BondStatus[\"BOND_STATUS_BONDED\"] = 3] = \"BOND_STATUS_BONDED\";\n BondStatus[BondStatus[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(BondStatus || (exports.BondStatus = BondStatus = {}));\nfunction bondStatusFromJSON(object) {\n switch (object) {\n case 0:\n case \"BOND_STATUS_UNSPECIFIED\":\n return BondStatus.BOND_STATUS_UNSPECIFIED;\n case 1:\n case \"BOND_STATUS_UNBONDED\":\n return BondStatus.BOND_STATUS_UNBONDED;\n case 2:\n case \"BOND_STATUS_UNBONDING\":\n return BondStatus.BOND_STATUS_UNBONDING;\n case 3:\n case \"BOND_STATUS_BONDED\":\n return BondStatus.BOND_STATUS_BONDED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return BondStatus.UNRECOGNIZED;\n }\n}\nexports.bondStatusFromJSON = bondStatusFromJSON;\nfunction bondStatusToJSON(object) {\n switch (object) {\n case BondStatus.BOND_STATUS_UNSPECIFIED:\n return \"BOND_STATUS_UNSPECIFIED\";\n case BondStatus.BOND_STATUS_UNBONDED:\n return \"BOND_STATUS_UNBONDED\";\n case BondStatus.BOND_STATUS_UNBONDING:\n return \"BOND_STATUS_UNBONDING\";\n case BondStatus.BOND_STATUS_BONDED:\n return \"BOND_STATUS_BONDED\";\n case BondStatus.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.bondStatusToJSON = bondStatusToJSON;\n/** Infraction indicates the infraction a validator commited. */\nvar Infraction;\n(function (Infraction) {\n /** INFRACTION_UNSPECIFIED - UNSPECIFIED defines an empty infraction. */\n Infraction[Infraction[\"INFRACTION_UNSPECIFIED\"] = 0] = \"INFRACTION_UNSPECIFIED\";\n /** INFRACTION_DOUBLE_SIGN - DOUBLE_SIGN defines a validator that double-signs a block. */\n Infraction[Infraction[\"INFRACTION_DOUBLE_SIGN\"] = 1] = \"INFRACTION_DOUBLE_SIGN\";\n /** INFRACTION_DOWNTIME - DOWNTIME defines a validator that missed signing too many blocks. */\n Infraction[Infraction[\"INFRACTION_DOWNTIME\"] = 2] = \"INFRACTION_DOWNTIME\";\n Infraction[Infraction[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(Infraction || (exports.Infraction = Infraction = {}));\nfunction infractionFromJSON(object) {\n switch (object) {\n case 0:\n case \"INFRACTION_UNSPECIFIED\":\n return Infraction.INFRACTION_UNSPECIFIED;\n case 1:\n case \"INFRACTION_DOUBLE_SIGN\":\n return Infraction.INFRACTION_DOUBLE_SIGN;\n case 2:\n case \"INFRACTION_DOWNTIME\":\n return Infraction.INFRACTION_DOWNTIME;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return Infraction.UNRECOGNIZED;\n }\n}\nexports.infractionFromJSON = infractionFromJSON;\nfunction infractionToJSON(object) {\n switch (object) {\n case Infraction.INFRACTION_UNSPECIFIED:\n return \"INFRACTION_UNSPECIFIED\";\n case Infraction.INFRACTION_DOUBLE_SIGN:\n return \"INFRACTION_DOUBLE_SIGN\";\n case Infraction.INFRACTION_DOWNTIME:\n return \"INFRACTION_DOWNTIME\";\n case Infraction.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.infractionToJSON = infractionToJSON;\nfunction createBaseHistoricalInfo() {\n return {\n header: types_1.Header.fromPartial({}),\n valset: [],\n };\n}\nexports.HistoricalInfo = {\n typeUrl: \"/cosmos.staking.v1beta1.HistoricalInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.header !== undefined) {\n types_1.Header.encode(message.header, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.valset) {\n exports.Validator.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHistoricalInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.header = types_1.Header.decode(reader, reader.uint32());\n break;\n case 2:\n message.valset.push(exports.Validator.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseHistoricalInfo();\n if ((0, helpers_1.isSet)(object.header))\n obj.header = types_1.Header.fromJSON(object.header);\n if (Array.isArray(object?.valset))\n obj.valset = object.valset.map((e) => exports.Validator.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.header !== undefined && (obj.header = message.header ? types_1.Header.toJSON(message.header) : undefined);\n if (message.valset) {\n obj.valset = message.valset.map((e) => (e ? exports.Validator.toJSON(e) : undefined));\n }\n else {\n obj.valset = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseHistoricalInfo();\n if (object.header !== undefined && object.header !== null) {\n message.header = types_1.Header.fromPartial(object.header);\n }\n message.valset = object.valset?.map((e) => exports.Validator.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseCommissionRates() {\n return {\n rate: \"\",\n maxRate: \"\",\n maxChangeRate: \"\",\n };\n}\nexports.CommissionRates = {\n typeUrl: \"/cosmos.staking.v1beta1.CommissionRates\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.rate !== \"\") {\n writer.uint32(10).string(message.rate);\n }\n if (message.maxRate !== \"\") {\n writer.uint32(18).string(message.maxRate);\n }\n if (message.maxChangeRate !== \"\") {\n writer.uint32(26).string(message.maxChangeRate);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCommissionRates();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rate = reader.string();\n break;\n case 2:\n message.maxRate = reader.string();\n break;\n case 3:\n message.maxChangeRate = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCommissionRates();\n if ((0, helpers_1.isSet)(object.rate))\n obj.rate = String(object.rate);\n if ((0, helpers_1.isSet)(object.maxRate))\n obj.maxRate = String(object.maxRate);\n if ((0, helpers_1.isSet)(object.maxChangeRate))\n obj.maxChangeRate = String(object.maxChangeRate);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.rate !== undefined && (obj.rate = message.rate);\n message.maxRate !== undefined && (obj.maxRate = message.maxRate);\n message.maxChangeRate !== undefined && (obj.maxChangeRate = message.maxChangeRate);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCommissionRates();\n message.rate = object.rate ?? \"\";\n message.maxRate = object.maxRate ?? \"\";\n message.maxChangeRate = object.maxChangeRate ?? \"\";\n return message;\n },\n};\nfunction createBaseCommission() {\n return {\n commissionRates: exports.CommissionRates.fromPartial({}),\n updateTime: timestamp_1.Timestamp.fromPartial({}),\n };\n}\nexports.Commission = {\n typeUrl: \"/cosmos.staking.v1beta1.Commission\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.commissionRates !== undefined) {\n exports.CommissionRates.encode(message.commissionRates, writer.uint32(10).fork()).ldelim();\n }\n if (message.updateTime !== undefined) {\n timestamp_1.Timestamp.encode(message.updateTime, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCommission();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commissionRates = exports.CommissionRates.decode(reader, reader.uint32());\n break;\n case 2:\n message.updateTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCommission();\n if ((0, helpers_1.isSet)(object.commissionRates))\n obj.commissionRates = exports.CommissionRates.fromJSON(object.commissionRates);\n if ((0, helpers_1.isSet)(object.updateTime))\n obj.updateTime = (0, helpers_1.fromJsonTimestamp)(object.updateTime);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.commissionRates !== undefined &&\n (obj.commissionRates = message.commissionRates\n ? exports.CommissionRates.toJSON(message.commissionRates)\n : undefined);\n message.updateTime !== undefined && (obj.updateTime = (0, helpers_1.fromTimestamp)(message.updateTime).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCommission();\n if (object.commissionRates !== undefined && object.commissionRates !== null) {\n message.commissionRates = exports.CommissionRates.fromPartial(object.commissionRates);\n }\n if (object.updateTime !== undefined && object.updateTime !== null) {\n message.updateTime = timestamp_1.Timestamp.fromPartial(object.updateTime);\n }\n return message;\n },\n};\nfunction createBaseDescription() {\n return {\n moniker: \"\",\n identity: \"\",\n website: \"\",\n securityContact: \"\",\n details: \"\",\n };\n}\nexports.Description = {\n typeUrl: \"/cosmos.staking.v1beta1.Description\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.moniker !== \"\") {\n writer.uint32(10).string(message.moniker);\n }\n if (message.identity !== \"\") {\n writer.uint32(18).string(message.identity);\n }\n if (message.website !== \"\") {\n writer.uint32(26).string(message.website);\n }\n if (message.securityContact !== \"\") {\n writer.uint32(34).string(message.securityContact);\n }\n if (message.details !== \"\") {\n writer.uint32(42).string(message.details);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDescription();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.moniker = reader.string();\n break;\n case 2:\n message.identity = reader.string();\n break;\n case 3:\n message.website = reader.string();\n break;\n case 4:\n message.securityContact = reader.string();\n break;\n case 5:\n message.details = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDescription();\n if ((0, helpers_1.isSet)(object.moniker))\n obj.moniker = String(object.moniker);\n if ((0, helpers_1.isSet)(object.identity))\n obj.identity = String(object.identity);\n if ((0, helpers_1.isSet)(object.website))\n obj.website = String(object.website);\n if ((0, helpers_1.isSet)(object.securityContact))\n obj.securityContact = String(object.securityContact);\n if ((0, helpers_1.isSet)(object.details))\n obj.details = String(object.details);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.moniker !== undefined && (obj.moniker = message.moniker);\n message.identity !== undefined && (obj.identity = message.identity);\n message.website !== undefined && (obj.website = message.website);\n message.securityContact !== undefined && (obj.securityContact = message.securityContact);\n message.details !== undefined && (obj.details = message.details);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDescription();\n message.moniker = object.moniker ?? \"\";\n message.identity = object.identity ?? \"\";\n message.website = object.website ?? \"\";\n message.securityContact = object.securityContact ?? \"\";\n message.details = object.details ?? \"\";\n return message;\n },\n};\nfunction createBaseValidator() {\n return {\n operatorAddress: \"\",\n consensusPubkey: undefined,\n jailed: false,\n status: 0,\n tokens: \"\",\n delegatorShares: \"\",\n description: exports.Description.fromPartial({}),\n unbondingHeight: BigInt(0),\n unbondingTime: timestamp_1.Timestamp.fromPartial({}),\n commission: exports.Commission.fromPartial({}),\n minSelfDelegation: \"\",\n unbondingOnHoldRefCount: BigInt(0),\n unbondingIds: [],\n };\n}\nexports.Validator = {\n typeUrl: \"/cosmos.staking.v1beta1.Validator\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.operatorAddress !== \"\") {\n writer.uint32(10).string(message.operatorAddress);\n }\n if (message.consensusPubkey !== undefined) {\n any_1.Any.encode(message.consensusPubkey, writer.uint32(18).fork()).ldelim();\n }\n if (message.jailed === true) {\n writer.uint32(24).bool(message.jailed);\n }\n if (message.status !== 0) {\n writer.uint32(32).int32(message.status);\n }\n if (message.tokens !== \"\") {\n writer.uint32(42).string(message.tokens);\n }\n if (message.delegatorShares !== \"\") {\n writer.uint32(50).string(message.delegatorShares);\n }\n if (message.description !== undefined) {\n exports.Description.encode(message.description, writer.uint32(58).fork()).ldelim();\n }\n if (message.unbondingHeight !== BigInt(0)) {\n writer.uint32(64).int64(message.unbondingHeight);\n }\n if (message.unbondingTime !== undefined) {\n timestamp_1.Timestamp.encode(message.unbondingTime, writer.uint32(74).fork()).ldelim();\n }\n if (message.commission !== undefined) {\n exports.Commission.encode(message.commission, writer.uint32(82).fork()).ldelim();\n }\n if (message.minSelfDelegation !== \"\") {\n writer.uint32(90).string(message.minSelfDelegation);\n }\n if (message.unbondingOnHoldRefCount !== BigInt(0)) {\n writer.uint32(96).int64(message.unbondingOnHoldRefCount);\n }\n writer.uint32(106).fork();\n for (const v of message.unbondingIds) {\n writer.uint64(v);\n }\n writer.ldelim();\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidator();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.operatorAddress = reader.string();\n break;\n case 2:\n message.consensusPubkey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.jailed = reader.bool();\n break;\n case 4:\n message.status = reader.int32();\n break;\n case 5:\n message.tokens = reader.string();\n break;\n case 6:\n message.delegatorShares = reader.string();\n break;\n case 7:\n message.description = exports.Description.decode(reader, reader.uint32());\n break;\n case 8:\n message.unbondingHeight = reader.int64();\n break;\n case 9:\n message.unbondingTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 10:\n message.commission = exports.Commission.decode(reader, reader.uint32());\n break;\n case 11:\n message.minSelfDelegation = reader.string();\n break;\n case 12:\n message.unbondingOnHoldRefCount = reader.int64();\n break;\n case 13:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.unbondingIds.push(reader.uint64());\n }\n }\n else {\n message.unbondingIds.push(reader.uint64());\n }\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidator();\n if ((0, helpers_1.isSet)(object.operatorAddress))\n obj.operatorAddress = String(object.operatorAddress);\n if ((0, helpers_1.isSet)(object.consensusPubkey))\n obj.consensusPubkey = any_1.Any.fromJSON(object.consensusPubkey);\n if ((0, helpers_1.isSet)(object.jailed))\n obj.jailed = Boolean(object.jailed);\n if ((0, helpers_1.isSet)(object.status))\n obj.status = bondStatusFromJSON(object.status);\n if ((0, helpers_1.isSet)(object.tokens))\n obj.tokens = String(object.tokens);\n if ((0, helpers_1.isSet)(object.delegatorShares))\n obj.delegatorShares = String(object.delegatorShares);\n if ((0, helpers_1.isSet)(object.description))\n obj.description = exports.Description.fromJSON(object.description);\n if ((0, helpers_1.isSet)(object.unbondingHeight))\n obj.unbondingHeight = BigInt(object.unbondingHeight.toString());\n if ((0, helpers_1.isSet)(object.unbondingTime))\n obj.unbondingTime = (0, helpers_1.fromJsonTimestamp)(object.unbondingTime);\n if ((0, helpers_1.isSet)(object.commission))\n obj.commission = exports.Commission.fromJSON(object.commission);\n if ((0, helpers_1.isSet)(object.minSelfDelegation))\n obj.minSelfDelegation = String(object.minSelfDelegation);\n if ((0, helpers_1.isSet)(object.unbondingOnHoldRefCount))\n obj.unbondingOnHoldRefCount = BigInt(object.unbondingOnHoldRefCount.toString());\n if (Array.isArray(object?.unbondingIds))\n obj.unbondingIds = object.unbondingIds.map((e) => BigInt(e.toString()));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.operatorAddress !== undefined && (obj.operatorAddress = message.operatorAddress);\n message.consensusPubkey !== undefined &&\n (obj.consensusPubkey = message.consensusPubkey ? any_1.Any.toJSON(message.consensusPubkey) : undefined);\n message.jailed !== undefined && (obj.jailed = message.jailed);\n message.status !== undefined && (obj.status = bondStatusToJSON(message.status));\n message.tokens !== undefined && (obj.tokens = message.tokens);\n message.delegatorShares !== undefined && (obj.delegatorShares = message.delegatorShares);\n message.description !== undefined &&\n (obj.description = message.description ? exports.Description.toJSON(message.description) : undefined);\n message.unbondingHeight !== undefined &&\n (obj.unbondingHeight = (message.unbondingHeight || BigInt(0)).toString());\n message.unbondingTime !== undefined &&\n (obj.unbondingTime = (0, helpers_1.fromTimestamp)(message.unbondingTime).toISOString());\n message.commission !== undefined &&\n (obj.commission = message.commission ? exports.Commission.toJSON(message.commission) : undefined);\n message.minSelfDelegation !== undefined && (obj.minSelfDelegation = message.minSelfDelegation);\n message.unbondingOnHoldRefCount !== undefined &&\n (obj.unbondingOnHoldRefCount = (message.unbondingOnHoldRefCount || BigInt(0)).toString());\n if (message.unbondingIds) {\n obj.unbondingIds = message.unbondingIds.map((e) => (e || BigInt(0)).toString());\n }\n else {\n obj.unbondingIds = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidator();\n message.operatorAddress = object.operatorAddress ?? \"\";\n if (object.consensusPubkey !== undefined && object.consensusPubkey !== null) {\n message.consensusPubkey = any_1.Any.fromPartial(object.consensusPubkey);\n }\n message.jailed = object.jailed ?? false;\n message.status = object.status ?? 0;\n message.tokens = object.tokens ?? \"\";\n message.delegatorShares = object.delegatorShares ?? \"\";\n if (object.description !== undefined && object.description !== null) {\n message.description = exports.Description.fromPartial(object.description);\n }\n if (object.unbondingHeight !== undefined && object.unbondingHeight !== null) {\n message.unbondingHeight = BigInt(object.unbondingHeight.toString());\n }\n if (object.unbondingTime !== undefined && object.unbondingTime !== null) {\n message.unbondingTime = timestamp_1.Timestamp.fromPartial(object.unbondingTime);\n }\n if (object.commission !== undefined && object.commission !== null) {\n message.commission = exports.Commission.fromPartial(object.commission);\n }\n message.minSelfDelegation = object.minSelfDelegation ?? \"\";\n if (object.unbondingOnHoldRefCount !== undefined && object.unbondingOnHoldRefCount !== null) {\n message.unbondingOnHoldRefCount = BigInt(object.unbondingOnHoldRefCount.toString());\n }\n message.unbondingIds = object.unbondingIds?.map((e) => BigInt(e.toString())) || [];\n return message;\n },\n};\nfunction createBaseValAddresses() {\n return {\n addresses: [],\n };\n}\nexports.ValAddresses = {\n typeUrl: \"/cosmos.staking.v1beta1.ValAddresses\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.addresses) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValAddresses();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.addresses.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValAddresses();\n if (Array.isArray(object?.addresses))\n obj.addresses = object.addresses.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.addresses) {\n obj.addresses = message.addresses.map((e) => e);\n }\n else {\n obj.addresses = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValAddresses();\n message.addresses = object.addresses?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseDVPair() {\n return {\n delegatorAddress: \"\",\n validatorAddress: \"\",\n };\n}\nexports.DVPair = {\n typeUrl: \"/cosmos.staking.v1beta1.DVPair\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDVPair();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDVPair();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDVPair();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseDVPairs() {\n return {\n pairs: [],\n };\n}\nexports.DVPairs = {\n typeUrl: \"/cosmos.staking.v1beta1.DVPairs\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.pairs) {\n exports.DVPair.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDVPairs();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pairs.push(exports.DVPair.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDVPairs();\n if (Array.isArray(object?.pairs))\n obj.pairs = object.pairs.map((e) => exports.DVPair.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.pairs) {\n obj.pairs = message.pairs.map((e) => (e ? exports.DVPair.toJSON(e) : undefined));\n }\n else {\n obj.pairs = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDVPairs();\n message.pairs = object.pairs?.map((e) => exports.DVPair.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseDVVTriplet() {\n return {\n delegatorAddress: \"\",\n validatorSrcAddress: \"\",\n validatorDstAddress: \"\",\n };\n}\nexports.DVVTriplet = {\n typeUrl: \"/cosmos.staking.v1beta1.DVVTriplet\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorSrcAddress !== \"\") {\n writer.uint32(18).string(message.validatorSrcAddress);\n }\n if (message.validatorDstAddress !== \"\") {\n writer.uint32(26).string(message.validatorDstAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDVVTriplet();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorSrcAddress = reader.string();\n break;\n case 3:\n message.validatorDstAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDVVTriplet();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorSrcAddress))\n obj.validatorSrcAddress = String(object.validatorSrcAddress);\n if ((0, helpers_1.isSet)(object.validatorDstAddress))\n obj.validatorDstAddress = String(object.validatorDstAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorSrcAddress !== undefined && (obj.validatorSrcAddress = message.validatorSrcAddress);\n message.validatorDstAddress !== undefined && (obj.validatorDstAddress = message.validatorDstAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDVVTriplet();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorSrcAddress = object.validatorSrcAddress ?? \"\";\n message.validatorDstAddress = object.validatorDstAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseDVVTriplets() {\n return {\n triplets: [],\n };\n}\nexports.DVVTriplets = {\n typeUrl: \"/cosmos.staking.v1beta1.DVVTriplets\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.triplets) {\n exports.DVVTriplet.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDVVTriplets();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.triplets.push(exports.DVVTriplet.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDVVTriplets();\n if (Array.isArray(object?.triplets))\n obj.triplets = object.triplets.map((e) => exports.DVVTriplet.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.triplets) {\n obj.triplets = message.triplets.map((e) => (e ? exports.DVVTriplet.toJSON(e) : undefined));\n }\n else {\n obj.triplets = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDVVTriplets();\n message.triplets = object.triplets?.map((e) => exports.DVVTriplet.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseDelegation() {\n return {\n delegatorAddress: \"\",\n validatorAddress: \"\",\n shares: \"\",\n };\n}\nexports.Delegation = {\n typeUrl: \"/cosmos.staking.v1beta1.Delegation\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n if (message.shares !== \"\") {\n writer.uint32(26).string(message.shares);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDelegation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.shares = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDelegation();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n if ((0, helpers_1.isSet)(object.shares))\n obj.shares = String(object.shares);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.shares !== undefined && (obj.shares = message.shares);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDelegation();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n message.shares = object.shares ?? \"\";\n return message;\n },\n};\nfunction createBaseUnbondingDelegation() {\n return {\n delegatorAddress: \"\",\n validatorAddress: \"\",\n entries: [],\n };\n}\nexports.UnbondingDelegation = {\n typeUrl: \"/cosmos.staking.v1beta1.UnbondingDelegation\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n for (const v of message.entries) {\n exports.UnbondingDelegationEntry.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseUnbondingDelegation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.entries.push(exports.UnbondingDelegationEntry.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseUnbondingDelegation();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n if (Array.isArray(object?.entries))\n obj.entries = object.entries.map((e) => exports.UnbondingDelegationEntry.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.UnbondingDelegationEntry.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseUnbondingDelegation();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n message.entries = object.entries?.map((e) => exports.UnbondingDelegationEntry.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseUnbondingDelegationEntry() {\n return {\n creationHeight: BigInt(0),\n completionTime: timestamp_1.Timestamp.fromPartial({}),\n initialBalance: \"\",\n balance: \"\",\n unbondingId: BigInt(0),\n unbondingOnHoldRefCount: BigInt(0),\n };\n}\nexports.UnbondingDelegationEntry = {\n typeUrl: \"/cosmos.staking.v1beta1.UnbondingDelegationEntry\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.creationHeight !== BigInt(0)) {\n writer.uint32(8).int64(message.creationHeight);\n }\n if (message.completionTime !== undefined) {\n timestamp_1.Timestamp.encode(message.completionTime, writer.uint32(18).fork()).ldelim();\n }\n if (message.initialBalance !== \"\") {\n writer.uint32(26).string(message.initialBalance);\n }\n if (message.balance !== \"\") {\n writer.uint32(34).string(message.balance);\n }\n if (message.unbondingId !== BigInt(0)) {\n writer.uint32(40).uint64(message.unbondingId);\n }\n if (message.unbondingOnHoldRefCount !== BigInt(0)) {\n writer.uint32(48).int64(message.unbondingOnHoldRefCount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseUnbondingDelegationEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.creationHeight = reader.int64();\n break;\n case 2:\n message.completionTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 3:\n message.initialBalance = reader.string();\n break;\n case 4:\n message.balance = reader.string();\n break;\n case 5:\n message.unbondingId = reader.uint64();\n break;\n case 6:\n message.unbondingOnHoldRefCount = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseUnbondingDelegationEntry();\n if ((0, helpers_1.isSet)(object.creationHeight))\n obj.creationHeight = BigInt(object.creationHeight.toString());\n if ((0, helpers_1.isSet)(object.completionTime))\n obj.completionTime = (0, helpers_1.fromJsonTimestamp)(object.completionTime);\n if ((0, helpers_1.isSet)(object.initialBalance))\n obj.initialBalance = String(object.initialBalance);\n if ((0, helpers_1.isSet)(object.balance))\n obj.balance = String(object.balance);\n if ((0, helpers_1.isSet)(object.unbondingId))\n obj.unbondingId = BigInt(object.unbondingId.toString());\n if ((0, helpers_1.isSet)(object.unbondingOnHoldRefCount))\n obj.unbondingOnHoldRefCount = BigInt(object.unbondingOnHoldRefCount.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.creationHeight !== undefined &&\n (obj.creationHeight = (message.creationHeight || BigInt(0)).toString());\n message.completionTime !== undefined &&\n (obj.completionTime = (0, helpers_1.fromTimestamp)(message.completionTime).toISOString());\n message.initialBalance !== undefined && (obj.initialBalance = message.initialBalance);\n message.balance !== undefined && (obj.balance = message.balance);\n message.unbondingId !== undefined && (obj.unbondingId = (message.unbondingId || BigInt(0)).toString());\n message.unbondingOnHoldRefCount !== undefined &&\n (obj.unbondingOnHoldRefCount = (message.unbondingOnHoldRefCount || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseUnbondingDelegationEntry();\n if (object.creationHeight !== undefined && object.creationHeight !== null) {\n message.creationHeight = BigInt(object.creationHeight.toString());\n }\n if (object.completionTime !== undefined && object.completionTime !== null) {\n message.completionTime = timestamp_1.Timestamp.fromPartial(object.completionTime);\n }\n message.initialBalance = object.initialBalance ?? \"\";\n message.balance = object.balance ?? \"\";\n if (object.unbondingId !== undefined && object.unbondingId !== null) {\n message.unbondingId = BigInt(object.unbondingId.toString());\n }\n if (object.unbondingOnHoldRefCount !== undefined && object.unbondingOnHoldRefCount !== null) {\n message.unbondingOnHoldRefCount = BigInt(object.unbondingOnHoldRefCount.toString());\n }\n return message;\n },\n};\nfunction createBaseRedelegationEntry() {\n return {\n creationHeight: BigInt(0),\n completionTime: timestamp_1.Timestamp.fromPartial({}),\n initialBalance: \"\",\n sharesDst: \"\",\n unbondingId: BigInt(0),\n unbondingOnHoldRefCount: BigInt(0),\n };\n}\nexports.RedelegationEntry = {\n typeUrl: \"/cosmos.staking.v1beta1.RedelegationEntry\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.creationHeight !== BigInt(0)) {\n writer.uint32(8).int64(message.creationHeight);\n }\n if (message.completionTime !== undefined) {\n timestamp_1.Timestamp.encode(message.completionTime, writer.uint32(18).fork()).ldelim();\n }\n if (message.initialBalance !== \"\") {\n writer.uint32(26).string(message.initialBalance);\n }\n if (message.sharesDst !== \"\") {\n writer.uint32(34).string(message.sharesDst);\n }\n if (message.unbondingId !== BigInt(0)) {\n writer.uint32(40).uint64(message.unbondingId);\n }\n if (message.unbondingOnHoldRefCount !== BigInt(0)) {\n writer.uint32(48).int64(message.unbondingOnHoldRefCount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRedelegationEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.creationHeight = reader.int64();\n break;\n case 2:\n message.completionTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 3:\n message.initialBalance = reader.string();\n break;\n case 4:\n message.sharesDst = reader.string();\n break;\n case 5:\n message.unbondingId = reader.uint64();\n break;\n case 6:\n message.unbondingOnHoldRefCount = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRedelegationEntry();\n if ((0, helpers_1.isSet)(object.creationHeight))\n obj.creationHeight = BigInt(object.creationHeight.toString());\n if ((0, helpers_1.isSet)(object.completionTime))\n obj.completionTime = (0, helpers_1.fromJsonTimestamp)(object.completionTime);\n if ((0, helpers_1.isSet)(object.initialBalance))\n obj.initialBalance = String(object.initialBalance);\n if ((0, helpers_1.isSet)(object.sharesDst))\n obj.sharesDst = String(object.sharesDst);\n if ((0, helpers_1.isSet)(object.unbondingId))\n obj.unbondingId = BigInt(object.unbondingId.toString());\n if ((0, helpers_1.isSet)(object.unbondingOnHoldRefCount))\n obj.unbondingOnHoldRefCount = BigInt(object.unbondingOnHoldRefCount.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.creationHeight !== undefined &&\n (obj.creationHeight = (message.creationHeight || BigInt(0)).toString());\n message.completionTime !== undefined &&\n (obj.completionTime = (0, helpers_1.fromTimestamp)(message.completionTime).toISOString());\n message.initialBalance !== undefined && (obj.initialBalance = message.initialBalance);\n message.sharesDst !== undefined && (obj.sharesDst = message.sharesDst);\n message.unbondingId !== undefined && (obj.unbondingId = (message.unbondingId || BigInt(0)).toString());\n message.unbondingOnHoldRefCount !== undefined &&\n (obj.unbondingOnHoldRefCount = (message.unbondingOnHoldRefCount || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRedelegationEntry();\n if (object.creationHeight !== undefined && object.creationHeight !== null) {\n message.creationHeight = BigInt(object.creationHeight.toString());\n }\n if (object.completionTime !== undefined && object.completionTime !== null) {\n message.completionTime = timestamp_1.Timestamp.fromPartial(object.completionTime);\n }\n message.initialBalance = object.initialBalance ?? \"\";\n message.sharesDst = object.sharesDst ?? \"\";\n if (object.unbondingId !== undefined && object.unbondingId !== null) {\n message.unbondingId = BigInt(object.unbondingId.toString());\n }\n if (object.unbondingOnHoldRefCount !== undefined && object.unbondingOnHoldRefCount !== null) {\n message.unbondingOnHoldRefCount = BigInt(object.unbondingOnHoldRefCount.toString());\n }\n return message;\n },\n};\nfunction createBaseRedelegation() {\n return {\n delegatorAddress: \"\",\n validatorSrcAddress: \"\",\n validatorDstAddress: \"\",\n entries: [],\n };\n}\nexports.Redelegation = {\n typeUrl: \"/cosmos.staking.v1beta1.Redelegation\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorSrcAddress !== \"\") {\n writer.uint32(18).string(message.validatorSrcAddress);\n }\n if (message.validatorDstAddress !== \"\") {\n writer.uint32(26).string(message.validatorDstAddress);\n }\n for (const v of message.entries) {\n exports.RedelegationEntry.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRedelegation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorSrcAddress = reader.string();\n break;\n case 3:\n message.validatorDstAddress = reader.string();\n break;\n case 4:\n message.entries.push(exports.RedelegationEntry.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRedelegation();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorSrcAddress))\n obj.validatorSrcAddress = String(object.validatorSrcAddress);\n if ((0, helpers_1.isSet)(object.validatorDstAddress))\n obj.validatorDstAddress = String(object.validatorDstAddress);\n if (Array.isArray(object?.entries))\n obj.entries = object.entries.map((e) => exports.RedelegationEntry.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorSrcAddress !== undefined && (obj.validatorSrcAddress = message.validatorSrcAddress);\n message.validatorDstAddress !== undefined && (obj.validatorDstAddress = message.validatorDstAddress);\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.RedelegationEntry.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRedelegation();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorSrcAddress = object.validatorSrcAddress ?? \"\";\n message.validatorDstAddress = object.validatorDstAddress ?? \"\";\n message.entries = object.entries?.map((e) => exports.RedelegationEntry.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseParams() {\n return {\n unbondingTime: duration_1.Duration.fromPartial({}),\n maxValidators: 0,\n maxEntries: 0,\n historicalEntries: 0,\n bondDenom: \"\",\n minCommissionRate: \"\",\n };\n}\nexports.Params = {\n typeUrl: \"/cosmos.staking.v1beta1.Params\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.unbondingTime !== undefined) {\n duration_1.Duration.encode(message.unbondingTime, writer.uint32(10).fork()).ldelim();\n }\n if (message.maxValidators !== 0) {\n writer.uint32(16).uint32(message.maxValidators);\n }\n if (message.maxEntries !== 0) {\n writer.uint32(24).uint32(message.maxEntries);\n }\n if (message.historicalEntries !== 0) {\n writer.uint32(32).uint32(message.historicalEntries);\n }\n if (message.bondDenom !== \"\") {\n writer.uint32(42).string(message.bondDenom);\n }\n if (message.minCommissionRate !== \"\") {\n writer.uint32(50).string(message.minCommissionRate);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.unbondingTime = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 2:\n message.maxValidators = reader.uint32();\n break;\n case 3:\n message.maxEntries = reader.uint32();\n break;\n case 4:\n message.historicalEntries = reader.uint32();\n break;\n case 5:\n message.bondDenom = reader.string();\n break;\n case 6:\n message.minCommissionRate = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseParams();\n if ((0, helpers_1.isSet)(object.unbondingTime))\n obj.unbondingTime = duration_1.Duration.fromJSON(object.unbondingTime);\n if ((0, helpers_1.isSet)(object.maxValidators))\n obj.maxValidators = Number(object.maxValidators);\n if ((0, helpers_1.isSet)(object.maxEntries))\n obj.maxEntries = Number(object.maxEntries);\n if ((0, helpers_1.isSet)(object.historicalEntries))\n obj.historicalEntries = Number(object.historicalEntries);\n if ((0, helpers_1.isSet)(object.bondDenom))\n obj.bondDenom = String(object.bondDenom);\n if ((0, helpers_1.isSet)(object.minCommissionRate))\n obj.minCommissionRate = String(object.minCommissionRate);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.unbondingTime !== undefined &&\n (obj.unbondingTime = message.unbondingTime ? duration_1.Duration.toJSON(message.unbondingTime) : undefined);\n message.maxValidators !== undefined && (obj.maxValidators = Math.round(message.maxValidators));\n message.maxEntries !== undefined && (obj.maxEntries = Math.round(message.maxEntries));\n message.historicalEntries !== undefined &&\n (obj.historicalEntries = Math.round(message.historicalEntries));\n message.bondDenom !== undefined && (obj.bondDenom = message.bondDenom);\n message.minCommissionRate !== undefined && (obj.minCommissionRate = message.minCommissionRate);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseParams();\n if (object.unbondingTime !== undefined && object.unbondingTime !== null) {\n message.unbondingTime = duration_1.Duration.fromPartial(object.unbondingTime);\n }\n message.maxValidators = object.maxValidators ?? 0;\n message.maxEntries = object.maxEntries ?? 0;\n message.historicalEntries = object.historicalEntries ?? 0;\n message.bondDenom = object.bondDenom ?? \"\";\n message.minCommissionRate = object.minCommissionRate ?? \"\";\n return message;\n },\n};\nfunction createBaseDelegationResponse() {\n return {\n delegation: exports.Delegation.fromPartial({}),\n balance: coin_1.Coin.fromPartial({}),\n };\n}\nexports.DelegationResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.DelegationResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegation !== undefined) {\n exports.Delegation.encode(message.delegation, writer.uint32(10).fork()).ldelim();\n }\n if (message.balance !== undefined) {\n coin_1.Coin.encode(message.balance, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDelegationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegation = exports.Delegation.decode(reader, reader.uint32());\n break;\n case 2:\n message.balance = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDelegationResponse();\n if ((0, helpers_1.isSet)(object.delegation))\n obj.delegation = exports.Delegation.fromJSON(object.delegation);\n if ((0, helpers_1.isSet)(object.balance))\n obj.balance = coin_1.Coin.fromJSON(object.balance);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegation !== undefined &&\n (obj.delegation = message.delegation ? exports.Delegation.toJSON(message.delegation) : undefined);\n message.balance !== undefined &&\n (obj.balance = message.balance ? coin_1.Coin.toJSON(message.balance) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDelegationResponse();\n if (object.delegation !== undefined && object.delegation !== null) {\n message.delegation = exports.Delegation.fromPartial(object.delegation);\n }\n if (object.balance !== undefined && object.balance !== null) {\n message.balance = coin_1.Coin.fromPartial(object.balance);\n }\n return message;\n },\n};\nfunction createBaseRedelegationEntryResponse() {\n return {\n redelegationEntry: exports.RedelegationEntry.fromPartial({}),\n balance: \"\",\n };\n}\nexports.RedelegationEntryResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.RedelegationEntryResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.redelegationEntry !== undefined) {\n exports.RedelegationEntry.encode(message.redelegationEntry, writer.uint32(10).fork()).ldelim();\n }\n if (message.balance !== \"\") {\n writer.uint32(34).string(message.balance);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRedelegationEntryResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.redelegationEntry = exports.RedelegationEntry.decode(reader, reader.uint32());\n break;\n case 4:\n message.balance = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRedelegationEntryResponse();\n if ((0, helpers_1.isSet)(object.redelegationEntry))\n obj.redelegationEntry = exports.RedelegationEntry.fromJSON(object.redelegationEntry);\n if ((0, helpers_1.isSet)(object.balance))\n obj.balance = String(object.balance);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.redelegationEntry !== undefined &&\n (obj.redelegationEntry = message.redelegationEntry\n ? exports.RedelegationEntry.toJSON(message.redelegationEntry)\n : undefined);\n message.balance !== undefined && (obj.balance = message.balance);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRedelegationEntryResponse();\n if (object.redelegationEntry !== undefined && object.redelegationEntry !== null) {\n message.redelegationEntry = exports.RedelegationEntry.fromPartial(object.redelegationEntry);\n }\n message.balance = object.balance ?? \"\";\n return message;\n },\n};\nfunction createBaseRedelegationResponse() {\n return {\n redelegation: exports.Redelegation.fromPartial({}),\n entries: [],\n };\n}\nexports.RedelegationResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.RedelegationResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.redelegation !== undefined) {\n exports.Redelegation.encode(message.redelegation, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.entries) {\n exports.RedelegationEntryResponse.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRedelegationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.redelegation = exports.Redelegation.decode(reader, reader.uint32());\n break;\n case 2:\n message.entries.push(exports.RedelegationEntryResponse.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRedelegationResponse();\n if ((0, helpers_1.isSet)(object.redelegation))\n obj.redelegation = exports.Redelegation.fromJSON(object.redelegation);\n if (Array.isArray(object?.entries))\n obj.entries = object.entries.map((e) => exports.RedelegationEntryResponse.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.redelegation !== undefined &&\n (obj.redelegation = message.redelegation ? exports.Redelegation.toJSON(message.redelegation) : undefined);\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.RedelegationEntryResponse.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRedelegationResponse();\n if (object.redelegation !== undefined && object.redelegation !== null) {\n message.redelegation = exports.Redelegation.fromPartial(object.redelegation);\n }\n message.entries = object.entries?.map((e) => exports.RedelegationEntryResponse.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBasePool() {\n return {\n notBondedTokens: \"\",\n bondedTokens: \"\",\n };\n}\nexports.Pool = {\n typeUrl: \"/cosmos.staking.v1beta1.Pool\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.notBondedTokens !== \"\") {\n writer.uint32(10).string(message.notBondedTokens);\n }\n if (message.bondedTokens !== \"\") {\n writer.uint32(18).string(message.bondedTokens);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePool();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.notBondedTokens = reader.string();\n break;\n case 2:\n message.bondedTokens = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePool();\n if ((0, helpers_1.isSet)(object.notBondedTokens))\n obj.notBondedTokens = String(object.notBondedTokens);\n if ((0, helpers_1.isSet)(object.bondedTokens))\n obj.bondedTokens = String(object.bondedTokens);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.notBondedTokens !== undefined && (obj.notBondedTokens = message.notBondedTokens);\n message.bondedTokens !== undefined && (obj.bondedTokens = message.bondedTokens);\n return obj;\n },\n fromPartial(object) {\n const message = createBasePool();\n message.notBondedTokens = object.notBondedTokens ?? \"\";\n message.bondedTokens = object.bondedTokens ?? \"\";\n return message;\n },\n};\nfunction createBaseValidatorUpdates() {\n return {\n updates: [],\n };\n}\nexports.ValidatorUpdates = {\n typeUrl: \"/cosmos.staking.v1beta1.ValidatorUpdates\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.updates) {\n types_2.ValidatorUpdate.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorUpdates();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.updates.push(types_2.ValidatorUpdate.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidatorUpdates();\n if (Array.isArray(object?.updates))\n obj.updates = object.updates.map((e) => types_2.ValidatorUpdate.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.updates) {\n obj.updates = message.updates.map((e) => (e ? types_2.ValidatorUpdate.toJSON(e) : undefined));\n }\n else {\n obj.updates = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidatorUpdates();\n message.updates = object.updates?.map((e) => types_2.ValidatorUpdate.fromPartial(e)) || [];\n return message;\n },\n};\n//# sourceMappingURL=staking.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgUpdateParamsResponse = exports.MsgUpdateParams = exports.MsgCancelUnbondingDelegationResponse = exports.MsgCancelUnbondingDelegation = exports.MsgUndelegateResponse = exports.MsgUndelegate = exports.MsgBeginRedelegateResponse = exports.MsgBeginRedelegate = exports.MsgDelegateResponse = exports.MsgDelegate = exports.MsgEditValidatorResponse = exports.MsgEditValidator = exports.MsgCreateValidatorResponse = exports.MsgCreateValidator = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst staking_1 = require(\"./staking\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.staking.v1beta1\";\nfunction createBaseMsgCreateValidator() {\n return {\n description: staking_1.Description.fromPartial({}),\n commission: staking_1.CommissionRates.fromPartial({}),\n minSelfDelegation: \"\",\n delegatorAddress: \"\",\n validatorAddress: \"\",\n pubkey: undefined,\n value: coin_1.Coin.fromPartial({}),\n };\n}\nexports.MsgCreateValidator = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgCreateValidator\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.description !== undefined) {\n staking_1.Description.encode(message.description, writer.uint32(10).fork()).ldelim();\n }\n if (message.commission !== undefined) {\n staking_1.CommissionRates.encode(message.commission, writer.uint32(18).fork()).ldelim();\n }\n if (message.minSelfDelegation !== \"\") {\n writer.uint32(26).string(message.minSelfDelegation);\n }\n if (message.delegatorAddress !== \"\") {\n writer.uint32(34).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(42).string(message.validatorAddress);\n }\n if (message.pubkey !== undefined) {\n any_1.Any.encode(message.pubkey, writer.uint32(50).fork()).ldelim();\n }\n if (message.value !== undefined) {\n coin_1.Coin.encode(message.value, writer.uint32(58).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateValidator();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.description = staking_1.Description.decode(reader, reader.uint32());\n break;\n case 2:\n message.commission = staking_1.CommissionRates.decode(reader, reader.uint32());\n break;\n case 3:\n message.minSelfDelegation = reader.string();\n break;\n case 4:\n message.delegatorAddress = reader.string();\n break;\n case 5:\n message.validatorAddress = reader.string();\n break;\n case 6:\n message.pubkey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 7:\n message.value = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCreateValidator();\n if ((0, helpers_1.isSet)(object.description))\n obj.description = staking_1.Description.fromJSON(object.description);\n if ((0, helpers_1.isSet)(object.commission))\n obj.commission = staking_1.CommissionRates.fromJSON(object.commission);\n if ((0, helpers_1.isSet)(object.minSelfDelegation))\n obj.minSelfDelegation = String(object.minSelfDelegation);\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n if ((0, helpers_1.isSet)(object.pubkey))\n obj.pubkey = any_1.Any.fromJSON(object.pubkey);\n if ((0, helpers_1.isSet)(object.value))\n obj.value = coin_1.Coin.fromJSON(object.value);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.description !== undefined &&\n (obj.description = message.description ? staking_1.Description.toJSON(message.description) : undefined);\n message.commission !== undefined &&\n (obj.commission = message.commission ? staking_1.CommissionRates.toJSON(message.commission) : undefined);\n message.minSelfDelegation !== undefined && (obj.minSelfDelegation = message.minSelfDelegation);\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.pubkey !== undefined && (obj.pubkey = message.pubkey ? any_1.Any.toJSON(message.pubkey) : undefined);\n message.value !== undefined && (obj.value = message.value ? coin_1.Coin.toJSON(message.value) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCreateValidator();\n if (object.description !== undefined && object.description !== null) {\n message.description = staking_1.Description.fromPartial(object.description);\n }\n if (object.commission !== undefined && object.commission !== null) {\n message.commission = staking_1.CommissionRates.fromPartial(object.commission);\n }\n message.minSelfDelegation = object.minSelfDelegation ?? \"\";\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n if (object.pubkey !== undefined && object.pubkey !== null) {\n message.pubkey = any_1.Any.fromPartial(object.pubkey);\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = coin_1.Coin.fromPartial(object.value);\n }\n return message;\n },\n};\nfunction createBaseMsgCreateValidatorResponse() {\n return {};\n}\nexports.MsgCreateValidatorResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgCreateValidatorResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateValidatorResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgCreateValidatorResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgCreateValidatorResponse();\n return message;\n },\n};\nfunction createBaseMsgEditValidator() {\n return {\n description: staking_1.Description.fromPartial({}),\n validatorAddress: \"\",\n commissionRate: \"\",\n minSelfDelegation: \"\",\n };\n}\nexports.MsgEditValidator = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgEditValidator\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.description !== undefined) {\n staking_1.Description.encode(message.description, writer.uint32(10).fork()).ldelim();\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n if (message.commissionRate !== \"\") {\n writer.uint32(26).string(message.commissionRate);\n }\n if (message.minSelfDelegation !== \"\") {\n writer.uint32(34).string(message.minSelfDelegation);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgEditValidator();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.description = staking_1.Description.decode(reader, reader.uint32());\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.commissionRate = reader.string();\n break;\n case 4:\n message.minSelfDelegation = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgEditValidator();\n if ((0, helpers_1.isSet)(object.description))\n obj.description = staking_1.Description.fromJSON(object.description);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n if ((0, helpers_1.isSet)(object.commissionRate))\n obj.commissionRate = String(object.commissionRate);\n if ((0, helpers_1.isSet)(object.minSelfDelegation))\n obj.minSelfDelegation = String(object.minSelfDelegation);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.description !== undefined &&\n (obj.description = message.description ? staking_1.Description.toJSON(message.description) : undefined);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.commissionRate !== undefined && (obj.commissionRate = message.commissionRate);\n message.minSelfDelegation !== undefined && (obj.minSelfDelegation = message.minSelfDelegation);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgEditValidator();\n if (object.description !== undefined && object.description !== null) {\n message.description = staking_1.Description.fromPartial(object.description);\n }\n message.validatorAddress = object.validatorAddress ?? \"\";\n message.commissionRate = object.commissionRate ?? \"\";\n message.minSelfDelegation = object.minSelfDelegation ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgEditValidatorResponse() {\n return {};\n}\nexports.MsgEditValidatorResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgEditValidatorResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgEditValidatorResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgEditValidatorResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgEditValidatorResponse();\n return message;\n },\n};\nfunction createBaseMsgDelegate() {\n return {\n delegatorAddress: \"\",\n validatorAddress: \"\",\n amount: coin_1.Coin.fromPartial({}),\n };\n}\nexports.MsgDelegate = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgDelegate\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n if (message.amount !== undefined) {\n coin_1.Coin.encode(message.amount, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgDelegate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.amount = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgDelegate();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n if ((0, helpers_1.isSet)(object.amount))\n obj.amount = coin_1.Coin.fromJSON(object.amount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgDelegate();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = coin_1.Coin.fromPartial(object.amount);\n }\n return message;\n },\n};\nfunction createBaseMsgDelegateResponse() {\n return {};\n}\nexports.MsgDelegateResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgDelegateResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgDelegateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgDelegateResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgDelegateResponse();\n return message;\n },\n};\nfunction createBaseMsgBeginRedelegate() {\n return {\n delegatorAddress: \"\",\n validatorSrcAddress: \"\",\n validatorDstAddress: \"\",\n amount: coin_1.Coin.fromPartial({}),\n };\n}\nexports.MsgBeginRedelegate = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgBeginRedelegate\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorSrcAddress !== \"\") {\n writer.uint32(18).string(message.validatorSrcAddress);\n }\n if (message.validatorDstAddress !== \"\") {\n writer.uint32(26).string(message.validatorDstAddress);\n }\n if (message.amount !== undefined) {\n coin_1.Coin.encode(message.amount, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgBeginRedelegate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorSrcAddress = reader.string();\n break;\n case 3:\n message.validatorDstAddress = reader.string();\n break;\n case 4:\n message.amount = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgBeginRedelegate();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorSrcAddress))\n obj.validatorSrcAddress = String(object.validatorSrcAddress);\n if ((0, helpers_1.isSet)(object.validatorDstAddress))\n obj.validatorDstAddress = String(object.validatorDstAddress);\n if ((0, helpers_1.isSet)(object.amount))\n obj.amount = coin_1.Coin.fromJSON(object.amount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorSrcAddress !== undefined && (obj.validatorSrcAddress = message.validatorSrcAddress);\n message.validatorDstAddress !== undefined && (obj.validatorDstAddress = message.validatorDstAddress);\n message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgBeginRedelegate();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorSrcAddress = object.validatorSrcAddress ?? \"\";\n message.validatorDstAddress = object.validatorDstAddress ?? \"\";\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = coin_1.Coin.fromPartial(object.amount);\n }\n return message;\n },\n};\nfunction createBaseMsgBeginRedelegateResponse() {\n return {\n completionTime: timestamp_1.Timestamp.fromPartial({}),\n };\n}\nexports.MsgBeginRedelegateResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgBeginRedelegateResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.completionTime !== undefined) {\n timestamp_1.Timestamp.encode(message.completionTime, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgBeginRedelegateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.completionTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgBeginRedelegateResponse();\n if ((0, helpers_1.isSet)(object.completionTime))\n obj.completionTime = (0, helpers_1.fromJsonTimestamp)(object.completionTime);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.completionTime !== undefined &&\n (obj.completionTime = (0, helpers_1.fromTimestamp)(message.completionTime).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgBeginRedelegateResponse();\n if (object.completionTime !== undefined && object.completionTime !== null) {\n message.completionTime = timestamp_1.Timestamp.fromPartial(object.completionTime);\n }\n return message;\n },\n};\nfunction createBaseMsgUndelegate() {\n return {\n delegatorAddress: \"\",\n validatorAddress: \"\",\n amount: coin_1.Coin.fromPartial({}),\n };\n}\nexports.MsgUndelegate = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgUndelegate\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n if (message.amount !== undefined) {\n coin_1.Coin.encode(message.amount, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUndelegate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.amount = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUndelegate();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n if ((0, helpers_1.isSet)(object.amount))\n obj.amount = coin_1.Coin.fromJSON(object.amount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUndelegate();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = coin_1.Coin.fromPartial(object.amount);\n }\n return message;\n },\n};\nfunction createBaseMsgUndelegateResponse() {\n return {\n completionTime: timestamp_1.Timestamp.fromPartial({}),\n };\n}\nexports.MsgUndelegateResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgUndelegateResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.completionTime !== undefined) {\n timestamp_1.Timestamp.encode(message.completionTime, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUndelegateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.completionTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUndelegateResponse();\n if ((0, helpers_1.isSet)(object.completionTime))\n obj.completionTime = (0, helpers_1.fromJsonTimestamp)(object.completionTime);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.completionTime !== undefined &&\n (obj.completionTime = (0, helpers_1.fromTimestamp)(message.completionTime).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUndelegateResponse();\n if (object.completionTime !== undefined && object.completionTime !== null) {\n message.completionTime = timestamp_1.Timestamp.fromPartial(object.completionTime);\n }\n return message;\n },\n};\nfunction createBaseMsgCancelUnbondingDelegation() {\n return {\n delegatorAddress: \"\",\n validatorAddress: \"\",\n amount: coin_1.Coin.fromPartial({}),\n creationHeight: BigInt(0),\n };\n}\nexports.MsgCancelUnbondingDelegation = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgCancelUnbondingDelegation\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n if (message.amount !== undefined) {\n coin_1.Coin.encode(message.amount, writer.uint32(26).fork()).ldelim();\n }\n if (message.creationHeight !== BigInt(0)) {\n writer.uint32(32).int64(message.creationHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCancelUnbondingDelegation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.amount = coin_1.Coin.decode(reader, reader.uint32());\n break;\n case 4:\n message.creationHeight = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCancelUnbondingDelegation();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n if ((0, helpers_1.isSet)(object.amount))\n obj.amount = coin_1.Coin.fromJSON(object.amount);\n if ((0, helpers_1.isSet)(object.creationHeight))\n obj.creationHeight = BigInt(object.creationHeight.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined);\n message.creationHeight !== undefined &&\n (obj.creationHeight = (message.creationHeight || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCancelUnbondingDelegation();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = coin_1.Coin.fromPartial(object.amount);\n }\n if (object.creationHeight !== undefined && object.creationHeight !== null) {\n message.creationHeight = BigInt(object.creationHeight.toString());\n }\n return message;\n },\n};\nfunction createBaseMsgCancelUnbondingDelegationResponse() {\n return {};\n}\nexports.MsgCancelUnbondingDelegationResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgCancelUnbondingDelegationResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCancelUnbondingDelegationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgCancelUnbondingDelegationResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgCancelUnbondingDelegationResponse();\n return message;\n },\n};\nfunction createBaseMsgUpdateParams() {\n return {\n authority: \"\",\n params: staking_1.Params.fromPartial({}),\n };\n}\nexports.MsgUpdateParams = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgUpdateParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.authority !== \"\") {\n writer.uint32(10).string(message.authority);\n }\n if (message.params !== undefined) {\n staking_1.Params.encode(message.params, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.authority = reader.string();\n break;\n case 2:\n message.params = staking_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpdateParams();\n if ((0, helpers_1.isSet)(object.authority))\n obj.authority = String(object.authority);\n if ((0, helpers_1.isSet)(object.params))\n obj.params = staking_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.authority !== undefined && (obj.authority = message.authority);\n message.params !== undefined && (obj.params = message.params ? staking_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpdateParams();\n message.authority = object.authority ?? \"\";\n if (object.params !== undefined && object.params !== null) {\n message.params = staking_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nfunction createBaseMsgUpdateParamsResponse() {\n return {};\n}\nexports.MsgUpdateParamsResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgUpdateParamsResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpdateParamsResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpdateParamsResponse();\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.CreateValidator = this.CreateValidator.bind(this);\n this.EditValidator = this.EditValidator.bind(this);\n this.Delegate = this.Delegate.bind(this);\n this.BeginRedelegate = this.BeginRedelegate.bind(this);\n this.Undelegate = this.Undelegate.bind(this);\n this.CancelUnbondingDelegation = this.CancelUnbondingDelegation.bind(this);\n this.UpdateParams = this.UpdateParams.bind(this);\n }\n CreateValidator(request) {\n const data = exports.MsgCreateValidator.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"CreateValidator\", data);\n return promise.then((data) => exports.MsgCreateValidatorResponse.decode(new binary_1.BinaryReader(data)));\n }\n EditValidator(request) {\n const data = exports.MsgEditValidator.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"EditValidator\", data);\n return promise.then((data) => exports.MsgEditValidatorResponse.decode(new binary_1.BinaryReader(data)));\n }\n Delegate(request) {\n const data = exports.MsgDelegate.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"Delegate\", data);\n return promise.then((data) => exports.MsgDelegateResponse.decode(new binary_1.BinaryReader(data)));\n }\n BeginRedelegate(request) {\n const data = exports.MsgBeginRedelegate.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"BeginRedelegate\", data);\n return promise.then((data) => exports.MsgBeginRedelegateResponse.decode(new binary_1.BinaryReader(data)));\n }\n Undelegate(request) {\n const data = exports.MsgUndelegate.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"Undelegate\", data);\n return promise.then((data) => exports.MsgUndelegateResponse.decode(new binary_1.BinaryReader(data)));\n }\n CancelUnbondingDelegation(request) {\n const data = exports.MsgCancelUnbondingDelegation.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"CancelUnbondingDelegation\", data);\n return promise.then((data) => exports.MsgCancelUnbondingDelegationResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpdateParams(request) {\n const data = exports.MsgUpdateParams.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"UpdateParams\", data);\n return promise.then((data) => exports.MsgUpdateParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SignatureDescriptor_Data_Multi = exports.SignatureDescriptor_Data_Single = exports.SignatureDescriptor_Data = exports.SignatureDescriptor = exports.SignatureDescriptors = exports.signModeToJSON = exports.signModeFromJSON = exports.SignMode = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst multisig_1 = require(\"../../../crypto/multisig/v1beta1/multisig\");\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"cosmos.tx.signing.v1beta1\";\n/**\n * SignMode represents a signing mode with its own security guarantees.\n *\n * This enum should be considered a registry of all known sign modes\n * in the Cosmos ecosystem. Apps are not expected to support all known\n * sign modes. Apps that would like to support custom sign modes are\n * encouraged to open a small PR against this file to add a new case\n * to this SignMode enum describing their sign mode so that different\n * apps have a consistent version of this enum.\n */\nvar SignMode;\n(function (SignMode) {\n /**\n * SIGN_MODE_UNSPECIFIED - SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be\n * rejected.\n */\n SignMode[SignMode[\"SIGN_MODE_UNSPECIFIED\"] = 0] = \"SIGN_MODE_UNSPECIFIED\";\n /**\n * SIGN_MODE_DIRECT - SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is\n * verified with raw bytes from Tx.\n */\n SignMode[SignMode[\"SIGN_MODE_DIRECT\"] = 1] = \"SIGN_MODE_DIRECT\";\n /**\n * SIGN_MODE_TEXTUAL - SIGN_MODE_TEXTUAL is a future signing mode that will verify some\n * human-readable textual representation on top of the binary representation\n * from SIGN_MODE_DIRECT. It is currently not supported.\n */\n SignMode[SignMode[\"SIGN_MODE_TEXTUAL\"] = 2] = \"SIGN_MODE_TEXTUAL\";\n /**\n * SIGN_MODE_DIRECT_AUX - SIGN_MODE_DIRECT_AUX specifies a signing mode which uses\n * SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, this sign mode does not\n * require signers signing over other signers' `signer_info`. It also allows\n * for adding Tips in transactions.\n *\n * Since: cosmos-sdk 0.46\n */\n SignMode[SignMode[\"SIGN_MODE_DIRECT_AUX\"] = 3] = \"SIGN_MODE_DIRECT_AUX\";\n /**\n * SIGN_MODE_LEGACY_AMINO_JSON - SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses\n * Amino JSON and will be removed in the future.\n */\n SignMode[SignMode[\"SIGN_MODE_LEGACY_AMINO_JSON\"] = 127] = \"SIGN_MODE_LEGACY_AMINO_JSON\";\n /**\n * SIGN_MODE_EIP_191 - SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos\n * SDK. Ref: https://eips.ethereum.org/EIPS/eip-191\n *\n * Currently, SIGN_MODE_EIP_191 is registered as a SignMode enum variant,\n * but is not implemented on the SDK by default. To enable EIP-191, you need\n * to pass a custom `TxConfig` that has an implementation of\n * `SignModeHandler` for EIP-191. The SDK may decide to fully support\n * EIP-191 in the future.\n *\n * Since: cosmos-sdk 0.45.2\n */\n SignMode[SignMode[\"SIGN_MODE_EIP_191\"] = 191] = \"SIGN_MODE_EIP_191\";\n SignMode[SignMode[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(SignMode || (exports.SignMode = SignMode = {}));\nfunction signModeFromJSON(object) {\n switch (object) {\n case 0:\n case \"SIGN_MODE_UNSPECIFIED\":\n return SignMode.SIGN_MODE_UNSPECIFIED;\n case 1:\n case \"SIGN_MODE_DIRECT\":\n return SignMode.SIGN_MODE_DIRECT;\n case 2:\n case \"SIGN_MODE_TEXTUAL\":\n return SignMode.SIGN_MODE_TEXTUAL;\n case 3:\n case \"SIGN_MODE_DIRECT_AUX\":\n return SignMode.SIGN_MODE_DIRECT_AUX;\n case 127:\n case \"SIGN_MODE_LEGACY_AMINO_JSON\":\n return SignMode.SIGN_MODE_LEGACY_AMINO_JSON;\n case 191:\n case \"SIGN_MODE_EIP_191\":\n return SignMode.SIGN_MODE_EIP_191;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return SignMode.UNRECOGNIZED;\n }\n}\nexports.signModeFromJSON = signModeFromJSON;\nfunction signModeToJSON(object) {\n switch (object) {\n case SignMode.SIGN_MODE_UNSPECIFIED:\n return \"SIGN_MODE_UNSPECIFIED\";\n case SignMode.SIGN_MODE_DIRECT:\n return \"SIGN_MODE_DIRECT\";\n case SignMode.SIGN_MODE_TEXTUAL:\n return \"SIGN_MODE_TEXTUAL\";\n case SignMode.SIGN_MODE_DIRECT_AUX:\n return \"SIGN_MODE_DIRECT_AUX\";\n case SignMode.SIGN_MODE_LEGACY_AMINO_JSON:\n return \"SIGN_MODE_LEGACY_AMINO_JSON\";\n case SignMode.SIGN_MODE_EIP_191:\n return \"SIGN_MODE_EIP_191\";\n case SignMode.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.signModeToJSON = signModeToJSON;\nfunction createBaseSignatureDescriptors() {\n return {\n signatures: [],\n };\n}\nexports.SignatureDescriptors = {\n typeUrl: \"/cosmos.tx.signing.v1beta1.SignatureDescriptors\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.signatures) {\n exports.SignatureDescriptor.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignatureDescriptors();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signatures.push(exports.SignatureDescriptor.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignatureDescriptors();\n if (Array.isArray(object?.signatures))\n obj.signatures = object.signatures.map((e) => exports.SignatureDescriptor.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (e ? exports.SignatureDescriptor.toJSON(e) : undefined));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignatureDescriptors();\n message.signatures = object.signatures?.map((e) => exports.SignatureDescriptor.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseSignatureDescriptor() {\n return {\n publicKey: undefined,\n data: undefined,\n sequence: BigInt(0),\n };\n}\nexports.SignatureDescriptor = {\n typeUrl: \"/cosmos.tx.signing.v1beta1.SignatureDescriptor\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.publicKey !== undefined) {\n any_1.Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim();\n }\n if (message.data !== undefined) {\n exports.SignatureDescriptor_Data.encode(message.data, writer.uint32(18).fork()).ldelim();\n }\n if (message.sequence !== BigInt(0)) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignatureDescriptor();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.publicKey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.data = exports.SignatureDescriptor_Data.decode(reader, reader.uint32());\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignatureDescriptor();\n if ((0, helpers_1.isSet)(object.publicKey))\n obj.publicKey = any_1.Any.fromJSON(object.publicKey);\n if ((0, helpers_1.isSet)(object.data))\n obj.data = exports.SignatureDescriptor_Data.fromJSON(object.data);\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.publicKey !== undefined &&\n (obj.publicKey = message.publicKey ? any_1.Any.toJSON(message.publicKey) : undefined);\n message.data !== undefined &&\n (obj.data = message.data ? exports.SignatureDescriptor_Data.toJSON(message.data) : undefined);\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignatureDescriptor();\n if (object.publicKey !== undefined && object.publicKey !== null) {\n message.publicKey = any_1.Any.fromPartial(object.publicKey);\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = exports.SignatureDescriptor_Data.fromPartial(object.data);\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n return message;\n },\n};\nfunction createBaseSignatureDescriptor_Data() {\n return {\n single: undefined,\n multi: undefined,\n };\n}\nexports.SignatureDescriptor_Data = {\n typeUrl: \"/cosmos.tx.signing.v1beta1.Data\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.single !== undefined) {\n exports.SignatureDescriptor_Data_Single.encode(message.single, writer.uint32(10).fork()).ldelim();\n }\n if (message.multi !== undefined) {\n exports.SignatureDescriptor_Data_Multi.encode(message.multi, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignatureDescriptor_Data();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.single = exports.SignatureDescriptor_Data_Single.decode(reader, reader.uint32());\n break;\n case 2:\n message.multi = exports.SignatureDescriptor_Data_Multi.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignatureDescriptor_Data();\n if ((0, helpers_1.isSet)(object.single))\n obj.single = exports.SignatureDescriptor_Data_Single.fromJSON(object.single);\n if ((0, helpers_1.isSet)(object.multi))\n obj.multi = exports.SignatureDescriptor_Data_Multi.fromJSON(object.multi);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.single !== undefined &&\n (obj.single = message.single ? exports.SignatureDescriptor_Data_Single.toJSON(message.single) : undefined);\n message.multi !== undefined &&\n (obj.multi = message.multi ? exports.SignatureDescriptor_Data_Multi.toJSON(message.multi) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignatureDescriptor_Data();\n if (object.single !== undefined && object.single !== null) {\n message.single = exports.SignatureDescriptor_Data_Single.fromPartial(object.single);\n }\n if (object.multi !== undefined && object.multi !== null) {\n message.multi = exports.SignatureDescriptor_Data_Multi.fromPartial(object.multi);\n }\n return message;\n },\n};\nfunction createBaseSignatureDescriptor_Data_Single() {\n return {\n mode: 0,\n signature: new Uint8Array(),\n };\n}\nexports.SignatureDescriptor_Data_Single = {\n typeUrl: \"/cosmos.tx.signing.v1beta1.Single\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.mode !== 0) {\n writer.uint32(8).int32(message.mode);\n }\n if (message.signature.length !== 0) {\n writer.uint32(18).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignatureDescriptor_Data_Single();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.mode = reader.int32();\n break;\n case 2:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignatureDescriptor_Data_Single();\n if ((0, helpers_1.isSet)(object.mode))\n obj.mode = signModeFromJSON(object.mode);\n if ((0, helpers_1.isSet)(object.signature))\n obj.signature = (0, helpers_1.bytesFromBase64)(object.signature);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.mode !== undefined && (obj.mode = signModeToJSON(message.mode));\n message.signature !== undefined &&\n (obj.signature = (0, helpers_1.base64FromBytes)(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignatureDescriptor_Data_Single();\n message.mode = object.mode ?? 0;\n message.signature = object.signature ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseSignatureDescriptor_Data_Multi() {\n return {\n bitarray: undefined,\n signatures: [],\n };\n}\nexports.SignatureDescriptor_Data_Multi = {\n typeUrl: \"/cosmos.tx.signing.v1beta1.Multi\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.bitarray !== undefined) {\n multisig_1.CompactBitArray.encode(message.bitarray, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.signatures) {\n exports.SignatureDescriptor_Data.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignatureDescriptor_Data_Multi();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bitarray = multisig_1.CompactBitArray.decode(reader, reader.uint32());\n break;\n case 2:\n message.signatures.push(exports.SignatureDescriptor_Data.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignatureDescriptor_Data_Multi();\n if ((0, helpers_1.isSet)(object.bitarray))\n obj.bitarray = multisig_1.CompactBitArray.fromJSON(object.bitarray);\n if (Array.isArray(object?.signatures))\n obj.signatures = object.signatures.map((e) => exports.SignatureDescriptor_Data.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.bitarray !== undefined &&\n (obj.bitarray = message.bitarray ? multisig_1.CompactBitArray.toJSON(message.bitarray) : undefined);\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (e ? exports.SignatureDescriptor_Data.toJSON(e) : undefined));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignatureDescriptor_Data_Multi();\n if (object.bitarray !== undefined && object.bitarray !== null) {\n message.bitarray = multisig_1.CompactBitArray.fromPartial(object.bitarray);\n }\n message.signatures = object.signatures?.map((e) => exports.SignatureDescriptor_Data.fromPartial(e)) || [];\n return message;\n },\n};\n//# sourceMappingURL=signing.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ServiceClientImpl = exports.TxDecodeAminoResponse = exports.TxDecodeAminoRequest = exports.TxEncodeAminoResponse = exports.TxEncodeAminoRequest = exports.TxEncodeResponse = exports.TxEncodeRequest = exports.TxDecodeResponse = exports.TxDecodeRequest = exports.GetBlockWithTxsResponse = exports.GetBlockWithTxsRequest = exports.GetTxResponse = exports.GetTxRequest = exports.SimulateResponse = exports.SimulateRequest = exports.BroadcastTxResponse = exports.BroadcastTxRequest = exports.GetTxsEventResponse = exports.GetTxsEventRequest = exports.broadcastModeToJSON = exports.broadcastModeFromJSON = exports.BroadcastMode = exports.orderByToJSON = exports.orderByFromJSON = exports.OrderBy = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst tx_1 = require(\"./tx\");\nconst pagination_1 = require(\"../../base/query/v1beta1/pagination\");\nconst abci_1 = require(\"../../base/abci/v1beta1/abci\");\nconst types_1 = require(\"../../../tendermint/types/types\");\nconst block_1 = require(\"../../../tendermint/types/block\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.tx.v1beta1\";\n/** OrderBy defines the sorting order */\nvar OrderBy;\n(function (OrderBy) {\n /** ORDER_BY_UNSPECIFIED - ORDER_BY_UNSPECIFIED specifies an unknown sorting order. OrderBy defaults to ASC in this case. */\n OrderBy[OrderBy[\"ORDER_BY_UNSPECIFIED\"] = 0] = \"ORDER_BY_UNSPECIFIED\";\n /** ORDER_BY_ASC - ORDER_BY_ASC defines ascending order */\n OrderBy[OrderBy[\"ORDER_BY_ASC\"] = 1] = \"ORDER_BY_ASC\";\n /** ORDER_BY_DESC - ORDER_BY_DESC defines descending order */\n OrderBy[OrderBy[\"ORDER_BY_DESC\"] = 2] = \"ORDER_BY_DESC\";\n OrderBy[OrderBy[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(OrderBy || (exports.OrderBy = OrderBy = {}));\nfunction orderByFromJSON(object) {\n switch (object) {\n case 0:\n case \"ORDER_BY_UNSPECIFIED\":\n return OrderBy.ORDER_BY_UNSPECIFIED;\n case 1:\n case \"ORDER_BY_ASC\":\n return OrderBy.ORDER_BY_ASC;\n case 2:\n case \"ORDER_BY_DESC\":\n return OrderBy.ORDER_BY_DESC;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return OrderBy.UNRECOGNIZED;\n }\n}\nexports.orderByFromJSON = orderByFromJSON;\nfunction orderByToJSON(object) {\n switch (object) {\n case OrderBy.ORDER_BY_UNSPECIFIED:\n return \"ORDER_BY_UNSPECIFIED\";\n case OrderBy.ORDER_BY_ASC:\n return \"ORDER_BY_ASC\";\n case OrderBy.ORDER_BY_DESC:\n return \"ORDER_BY_DESC\";\n case OrderBy.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.orderByToJSON = orderByToJSON;\n/** BroadcastMode specifies the broadcast mode for the TxService.Broadcast RPC method. */\nvar BroadcastMode;\n(function (BroadcastMode) {\n /** BROADCAST_MODE_UNSPECIFIED - zero-value for mode ordering */\n BroadcastMode[BroadcastMode[\"BROADCAST_MODE_UNSPECIFIED\"] = 0] = \"BROADCAST_MODE_UNSPECIFIED\";\n /**\n * BROADCAST_MODE_BLOCK - DEPRECATED: use BROADCAST_MODE_SYNC instead,\n * BROADCAST_MODE_BLOCK is not supported by the SDK from v0.47.x onwards.\n */\n BroadcastMode[BroadcastMode[\"BROADCAST_MODE_BLOCK\"] = 1] = \"BROADCAST_MODE_BLOCK\";\n /**\n * BROADCAST_MODE_SYNC - BROADCAST_MODE_SYNC defines a tx broadcasting mode where the client waits for\n * a CheckTx execution response only.\n */\n BroadcastMode[BroadcastMode[\"BROADCAST_MODE_SYNC\"] = 2] = \"BROADCAST_MODE_SYNC\";\n /**\n * BROADCAST_MODE_ASYNC - BROADCAST_MODE_ASYNC defines a tx broadcasting mode where the client returns\n * immediately.\n */\n BroadcastMode[BroadcastMode[\"BROADCAST_MODE_ASYNC\"] = 3] = \"BROADCAST_MODE_ASYNC\";\n BroadcastMode[BroadcastMode[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(BroadcastMode || (exports.BroadcastMode = BroadcastMode = {}));\nfunction broadcastModeFromJSON(object) {\n switch (object) {\n case 0:\n case \"BROADCAST_MODE_UNSPECIFIED\":\n return BroadcastMode.BROADCAST_MODE_UNSPECIFIED;\n case 1:\n case \"BROADCAST_MODE_BLOCK\":\n return BroadcastMode.BROADCAST_MODE_BLOCK;\n case 2:\n case \"BROADCAST_MODE_SYNC\":\n return BroadcastMode.BROADCAST_MODE_SYNC;\n case 3:\n case \"BROADCAST_MODE_ASYNC\":\n return BroadcastMode.BROADCAST_MODE_ASYNC;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return BroadcastMode.UNRECOGNIZED;\n }\n}\nexports.broadcastModeFromJSON = broadcastModeFromJSON;\nfunction broadcastModeToJSON(object) {\n switch (object) {\n case BroadcastMode.BROADCAST_MODE_UNSPECIFIED:\n return \"BROADCAST_MODE_UNSPECIFIED\";\n case BroadcastMode.BROADCAST_MODE_BLOCK:\n return \"BROADCAST_MODE_BLOCK\";\n case BroadcastMode.BROADCAST_MODE_SYNC:\n return \"BROADCAST_MODE_SYNC\";\n case BroadcastMode.BROADCAST_MODE_ASYNC:\n return \"BROADCAST_MODE_ASYNC\";\n case BroadcastMode.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.broadcastModeToJSON = broadcastModeToJSON;\nfunction createBaseGetTxsEventRequest() {\n return {\n events: [],\n pagination: undefined,\n orderBy: 0,\n page: BigInt(0),\n limit: BigInt(0),\n };\n}\nexports.GetTxsEventRequest = {\n typeUrl: \"/cosmos.tx.v1beta1.GetTxsEventRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.events) {\n writer.uint32(10).string(v);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.orderBy !== 0) {\n writer.uint32(24).int32(message.orderBy);\n }\n if (message.page !== BigInt(0)) {\n writer.uint32(32).uint64(message.page);\n }\n if (message.limit !== BigInt(0)) {\n writer.uint32(40).uint64(message.limit);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGetTxsEventRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.events.push(reader.string());\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n case 3:\n message.orderBy = reader.int32();\n break;\n case 4:\n message.page = reader.uint64();\n break;\n case 5:\n message.limit = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGetTxsEventRequest();\n if (Array.isArray(object?.events))\n obj.events = object.events.map((e) => String(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n if ((0, helpers_1.isSet)(object.orderBy))\n obj.orderBy = orderByFromJSON(object.orderBy);\n if ((0, helpers_1.isSet)(object.page))\n obj.page = BigInt(object.page.toString());\n if ((0, helpers_1.isSet)(object.limit))\n obj.limit = BigInt(object.limit.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.events) {\n obj.events = message.events.map((e) => e);\n }\n else {\n obj.events = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n message.orderBy !== undefined && (obj.orderBy = orderByToJSON(message.orderBy));\n message.page !== undefined && (obj.page = (message.page || BigInt(0)).toString());\n message.limit !== undefined && (obj.limit = (message.limit || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGetTxsEventRequest();\n message.events = object.events?.map((e) => e) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n message.orderBy = object.orderBy ?? 0;\n if (object.page !== undefined && object.page !== null) {\n message.page = BigInt(object.page.toString());\n }\n if (object.limit !== undefined && object.limit !== null) {\n message.limit = BigInt(object.limit.toString());\n }\n return message;\n },\n};\nfunction createBaseGetTxsEventResponse() {\n return {\n txs: [],\n txResponses: [],\n pagination: undefined,\n total: BigInt(0),\n };\n}\nexports.GetTxsEventResponse = {\n typeUrl: \"/cosmos.tx.v1beta1.GetTxsEventResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.txs) {\n tx_1.Tx.encode(v, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.txResponses) {\n abci_1.TxResponse.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(26).fork()).ldelim();\n }\n if (message.total !== BigInt(0)) {\n writer.uint32(32).uint64(message.total);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGetTxsEventResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txs.push(tx_1.Tx.decode(reader, reader.uint32()));\n break;\n case 2:\n message.txResponses.push(abci_1.TxResponse.decode(reader, reader.uint32()));\n break;\n case 3:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n case 4:\n message.total = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGetTxsEventResponse();\n if (Array.isArray(object?.txs))\n obj.txs = object.txs.map((e) => tx_1.Tx.fromJSON(e));\n if (Array.isArray(object?.txResponses))\n obj.txResponses = object.txResponses.map((e) => abci_1.TxResponse.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n if ((0, helpers_1.isSet)(object.total))\n obj.total = BigInt(object.total.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.txs) {\n obj.txs = message.txs.map((e) => (e ? tx_1.Tx.toJSON(e) : undefined));\n }\n else {\n obj.txs = [];\n }\n if (message.txResponses) {\n obj.txResponses = message.txResponses.map((e) => (e ? abci_1.TxResponse.toJSON(e) : undefined));\n }\n else {\n obj.txResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n message.total !== undefined && (obj.total = (message.total || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGetTxsEventResponse();\n message.txs = object.txs?.map((e) => tx_1.Tx.fromPartial(e)) || [];\n message.txResponses = object.txResponses?.map((e) => abci_1.TxResponse.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n if (object.total !== undefined && object.total !== null) {\n message.total = BigInt(object.total.toString());\n }\n return message;\n },\n};\nfunction createBaseBroadcastTxRequest() {\n return {\n txBytes: new Uint8Array(),\n mode: 0,\n };\n}\nexports.BroadcastTxRequest = {\n typeUrl: \"/cosmos.tx.v1beta1.BroadcastTxRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.txBytes.length !== 0) {\n writer.uint32(10).bytes(message.txBytes);\n }\n if (message.mode !== 0) {\n writer.uint32(16).int32(message.mode);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBroadcastTxRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txBytes = reader.bytes();\n break;\n case 2:\n message.mode = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBroadcastTxRequest();\n if ((0, helpers_1.isSet)(object.txBytes))\n obj.txBytes = (0, helpers_1.bytesFromBase64)(object.txBytes);\n if ((0, helpers_1.isSet)(object.mode))\n obj.mode = broadcastModeFromJSON(object.mode);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.txBytes !== undefined &&\n (obj.txBytes = (0, helpers_1.base64FromBytes)(message.txBytes !== undefined ? message.txBytes : new Uint8Array()));\n message.mode !== undefined && (obj.mode = broadcastModeToJSON(message.mode));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBroadcastTxRequest();\n message.txBytes = object.txBytes ?? new Uint8Array();\n message.mode = object.mode ?? 0;\n return message;\n },\n};\nfunction createBaseBroadcastTxResponse() {\n return {\n txResponse: undefined,\n };\n}\nexports.BroadcastTxResponse = {\n typeUrl: \"/cosmos.tx.v1beta1.BroadcastTxResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.txResponse !== undefined) {\n abci_1.TxResponse.encode(message.txResponse, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBroadcastTxResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txResponse = abci_1.TxResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBroadcastTxResponse();\n if ((0, helpers_1.isSet)(object.txResponse))\n obj.txResponse = abci_1.TxResponse.fromJSON(object.txResponse);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.txResponse !== undefined &&\n (obj.txResponse = message.txResponse ? abci_1.TxResponse.toJSON(message.txResponse) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBroadcastTxResponse();\n if (object.txResponse !== undefined && object.txResponse !== null) {\n message.txResponse = abci_1.TxResponse.fromPartial(object.txResponse);\n }\n return message;\n },\n};\nfunction createBaseSimulateRequest() {\n return {\n tx: undefined,\n txBytes: new Uint8Array(),\n };\n}\nexports.SimulateRequest = {\n typeUrl: \"/cosmos.tx.v1beta1.SimulateRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.tx !== undefined) {\n tx_1.Tx.encode(message.tx, writer.uint32(10).fork()).ldelim();\n }\n if (message.txBytes.length !== 0) {\n writer.uint32(18).bytes(message.txBytes);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSimulateRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = tx_1.Tx.decode(reader, reader.uint32());\n break;\n case 2:\n message.txBytes = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSimulateRequest();\n if ((0, helpers_1.isSet)(object.tx))\n obj.tx = tx_1.Tx.fromJSON(object.tx);\n if ((0, helpers_1.isSet)(object.txBytes))\n obj.txBytes = (0, helpers_1.bytesFromBase64)(object.txBytes);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined && (obj.tx = message.tx ? tx_1.Tx.toJSON(message.tx) : undefined);\n message.txBytes !== undefined &&\n (obj.txBytes = (0, helpers_1.base64FromBytes)(message.txBytes !== undefined ? message.txBytes : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSimulateRequest();\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = tx_1.Tx.fromPartial(object.tx);\n }\n message.txBytes = object.txBytes ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseSimulateResponse() {\n return {\n gasInfo: undefined,\n result: undefined,\n };\n}\nexports.SimulateResponse = {\n typeUrl: \"/cosmos.tx.v1beta1.SimulateResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.gasInfo !== undefined) {\n abci_1.GasInfo.encode(message.gasInfo, writer.uint32(10).fork()).ldelim();\n }\n if (message.result !== undefined) {\n abci_1.Result.encode(message.result, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSimulateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.gasInfo = abci_1.GasInfo.decode(reader, reader.uint32());\n break;\n case 2:\n message.result = abci_1.Result.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSimulateResponse();\n if ((0, helpers_1.isSet)(object.gasInfo))\n obj.gasInfo = abci_1.GasInfo.fromJSON(object.gasInfo);\n if ((0, helpers_1.isSet)(object.result))\n obj.result = abci_1.Result.fromJSON(object.result);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.gasInfo !== undefined &&\n (obj.gasInfo = message.gasInfo ? abci_1.GasInfo.toJSON(message.gasInfo) : undefined);\n message.result !== undefined && (obj.result = message.result ? abci_1.Result.toJSON(message.result) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSimulateResponse();\n if (object.gasInfo !== undefined && object.gasInfo !== null) {\n message.gasInfo = abci_1.GasInfo.fromPartial(object.gasInfo);\n }\n if (object.result !== undefined && object.result !== null) {\n message.result = abci_1.Result.fromPartial(object.result);\n }\n return message;\n },\n};\nfunction createBaseGetTxRequest() {\n return {\n hash: \"\",\n };\n}\nexports.GetTxRequest = {\n typeUrl: \"/cosmos.tx.v1beta1.GetTxRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.hash !== \"\") {\n writer.uint32(10).string(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGetTxRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGetTxRequest();\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = String(object.hash);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined && (obj.hash = message.hash);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGetTxRequest();\n message.hash = object.hash ?? \"\";\n return message;\n },\n};\nfunction createBaseGetTxResponse() {\n return {\n tx: undefined,\n txResponse: undefined,\n };\n}\nexports.GetTxResponse = {\n typeUrl: \"/cosmos.tx.v1beta1.GetTxResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.tx !== undefined) {\n tx_1.Tx.encode(message.tx, writer.uint32(10).fork()).ldelim();\n }\n if (message.txResponse !== undefined) {\n abci_1.TxResponse.encode(message.txResponse, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGetTxResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = tx_1.Tx.decode(reader, reader.uint32());\n break;\n case 2:\n message.txResponse = abci_1.TxResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGetTxResponse();\n if ((0, helpers_1.isSet)(object.tx))\n obj.tx = tx_1.Tx.fromJSON(object.tx);\n if ((0, helpers_1.isSet)(object.txResponse))\n obj.txResponse = abci_1.TxResponse.fromJSON(object.txResponse);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined && (obj.tx = message.tx ? tx_1.Tx.toJSON(message.tx) : undefined);\n message.txResponse !== undefined &&\n (obj.txResponse = message.txResponse ? abci_1.TxResponse.toJSON(message.txResponse) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGetTxResponse();\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = tx_1.Tx.fromPartial(object.tx);\n }\n if (object.txResponse !== undefined && object.txResponse !== null) {\n message.txResponse = abci_1.TxResponse.fromPartial(object.txResponse);\n }\n return message;\n },\n};\nfunction createBaseGetBlockWithTxsRequest() {\n return {\n height: BigInt(0),\n pagination: undefined,\n };\n}\nexports.GetBlockWithTxsRequest = {\n typeUrl: \"/cosmos.tx.v1beta1.GetBlockWithTxsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.height !== BigInt(0)) {\n writer.uint32(8).int64(message.height);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGetBlockWithTxsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGetBlockWithTxsRequest();\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGetBlockWithTxsRequest();\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseGetBlockWithTxsResponse() {\n return {\n txs: [],\n blockId: undefined,\n block: undefined,\n pagination: undefined,\n };\n}\nexports.GetBlockWithTxsResponse = {\n typeUrl: \"/cosmos.tx.v1beta1.GetBlockWithTxsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.txs) {\n tx_1.Tx.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.blockId !== undefined) {\n types_1.BlockID.encode(message.blockId, writer.uint32(18).fork()).ldelim();\n }\n if (message.block !== undefined) {\n block_1.Block.encode(message.block, writer.uint32(26).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGetBlockWithTxsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txs.push(tx_1.Tx.decode(reader, reader.uint32()));\n break;\n case 2:\n message.blockId = types_1.BlockID.decode(reader, reader.uint32());\n break;\n case 3:\n message.block = block_1.Block.decode(reader, reader.uint32());\n break;\n case 4:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGetBlockWithTxsResponse();\n if (Array.isArray(object?.txs))\n obj.txs = object.txs.map((e) => tx_1.Tx.fromJSON(e));\n if ((0, helpers_1.isSet)(object.blockId))\n obj.blockId = types_1.BlockID.fromJSON(object.blockId);\n if ((0, helpers_1.isSet)(object.block))\n obj.block = block_1.Block.fromJSON(object.block);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.txs) {\n obj.txs = message.txs.map((e) => (e ? tx_1.Tx.toJSON(e) : undefined));\n }\n else {\n obj.txs = [];\n }\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? types_1.BlockID.toJSON(message.blockId) : undefined);\n message.block !== undefined && (obj.block = message.block ? block_1.Block.toJSON(message.block) : undefined);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGetBlockWithTxsResponse();\n message.txs = object.txs?.map((e) => tx_1.Tx.fromPartial(e)) || [];\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = types_1.BlockID.fromPartial(object.blockId);\n }\n if (object.block !== undefined && object.block !== null) {\n message.block = block_1.Block.fromPartial(object.block);\n }\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseTxDecodeRequest() {\n return {\n txBytes: new Uint8Array(),\n };\n}\nexports.TxDecodeRequest = {\n typeUrl: \"/cosmos.tx.v1beta1.TxDecodeRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.txBytes.length !== 0) {\n writer.uint32(10).bytes(message.txBytes);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxDecodeRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txBytes = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxDecodeRequest();\n if ((0, helpers_1.isSet)(object.txBytes))\n obj.txBytes = (0, helpers_1.bytesFromBase64)(object.txBytes);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.txBytes !== undefined &&\n (obj.txBytes = (0, helpers_1.base64FromBytes)(message.txBytes !== undefined ? message.txBytes : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxDecodeRequest();\n message.txBytes = object.txBytes ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseTxDecodeResponse() {\n return {\n tx: undefined,\n };\n}\nexports.TxDecodeResponse = {\n typeUrl: \"/cosmos.tx.v1beta1.TxDecodeResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.tx !== undefined) {\n tx_1.Tx.encode(message.tx, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxDecodeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = tx_1.Tx.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxDecodeResponse();\n if ((0, helpers_1.isSet)(object.tx))\n obj.tx = tx_1.Tx.fromJSON(object.tx);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined && (obj.tx = message.tx ? tx_1.Tx.toJSON(message.tx) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxDecodeResponse();\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = tx_1.Tx.fromPartial(object.tx);\n }\n return message;\n },\n};\nfunction createBaseTxEncodeRequest() {\n return {\n tx: undefined,\n };\n}\nexports.TxEncodeRequest = {\n typeUrl: \"/cosmos.tx.v1beta1.TxEncodeRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.tx !== undefined) {\n tx_1.Tx.encode(message.tx, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxEncodeRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = tx_1.Tx.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxEncodeRequest();\n if ((0, helpers_1.isSet)(object.tx))\n obj.tx = tx_1.Tx.fromJSON(object.tx);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined && (obj.tx = message.tx ? tx_1.Tx.toJSON(message.tx) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxEncodeRequest();\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = tx_1.Tx.fromPartial(object.tx);\n }\n return message;\n },\n};\nfunction createBaseTxEncodeResponse() {\n return {\n txBytes: new Uint8Array(),\n };\n}\nexports.TxEncodeResponse = {\n typeUrl: \"/cosmos.tx.v1beta1.TxEncodeResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.txBytes.length !== 0) {\n writer.uint32(10).bytes(message.txBytes);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxEncodeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txBytes = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxEncodeResponse();\n if ((0, helpers_1.isSet)(object.txBytes))\n obj.txBytes = (0, helpers_1.bytesFromBase64)(object.txBytes);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.txBytes !== undefined &&\n (obj.txBytes = (0, helpers_1.base64FromBytes)(message.txBytes !== undefined ? message.txBytes : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxEncodeResponse();\n message.txBytes = object.txBytes ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseTxEncodeAminoRequest() {\n return {\n aminoJson: \"\",\n };\n}\nexports.TxEncodeAminoRequest = {\n typeUrl: \"/cosmos.tx.v1beta1.TxEncodeAminoRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.aminoJson !== \"\") {\n writer.uint32(10).string(message.aminoJson);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxEncodeAminoRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.aminoJson = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxEncodeAminoRequest();\n if ((0, helpers_1.isSet)(object.aminoJson))\n obj.aminoJson = String(object.aminoJson);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.aminoJson !== undefined && (obj.aminoJson = message.aminoJson);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxEncodeAminoRequest();\n message.aminoJson = object.aminoJson ?? \"\";\n return message;\n },\n};\nfunction createBaseTxEncodeAminoResponse() {\n return {\n aminoBinary: new Uint8Array(),\n };\n}\nexports.TxEncodeAminoResponse = {\n typeUrl: \"/cosmos.tx.v1beta1.TxEncodeAminoResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.aminoBinary.length !== 0) {\n writer.uint32(10).bytes(message.aminoBinary);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxEncodeAminoResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.aminoBinary = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxEncodeAminoResponse();\n if ((0, helpers_1.isSet)(object.aminoBinary))\n obj.aminoBinary = (0, helpers_1.bytesFromBase64)(object.aminoBinary);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.aminoBinary !== undefined &&\n (obj.aminoBinary = (0, helpers_1.base64FromBytes)(message.aminoBinary !== undefined ? message.aminoBinary : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxEncodeAminoResponse();\n message.aminoBinary = object.aminoBinary ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseTxDecodeAminoRequest() {\n return {\n aminoBinary: new Uint8Array(),\n };\n}\nexports.TxDecodeAminoRequest = {\n typeUrl: \"/cosmos.tx.v1beta1.TxDecodeAminoRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.aminoBinary.length !== 0) {\n writer.uint32(10).bytes(message.aminoBinary);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxDecodeAminoRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.aminoBinary = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxDecodeAminoRequest();\n if ((0, helpers_1.isSet)(object.aminoBinary))\n obj.aminoBinary = (0, helpers_1.bytesFromBase64)(object.aminoBinary);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.aminoBinary !== undefined &&\n (obj.aminoBinary = (0, helpers_1.base64FromBytes)(message.aminoBinary !== undefined ? message.aminoBinary : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxDecodeAminoRequest();\n message.aminoBinary = object.aminoBinary ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseTxDecodeAminoResponse() {\n return {\n aminoJson: \"\",\n };\n}\nexports.TxDecodeAminoResponse = {\n typeUrl: \"/cosmos.tx.v1beta1.TxDecodeAminoResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.aminoJson !== \"\") {\n writer.uint32(10).string(message.aminoJson);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxDecodeAminoResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.aminoJson = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxDecodeAminoResponse();\n if ((0, helpers_1.isSet)(object.aminoJson))\n obj.aminoJson = String(object.aminoJson);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.aminoJson !== undefined && (obj.aminoJson = message.aminoJson);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxDecodeAminoResponse();\n message.aminoJson = object.aminoJson ?? \"\";\n return message;\n },\n};\nclass ServiceClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Simulate = this.Simulate.bind(this);\n this.GetTx = this.GetTx.bind(this);\n this.BroadcastTx = this.BroadcastTx.bind(this);\n this.GetTxsEvent = this.GetTxsEvent.bind(this);\n this.GetBlockWithTxs = this.GetBlockWithTxs.bind(this);\n this.TxDecode = this.TxDecode.bind(this);\n this.TxEncode = this.TxEncode.bind(this);\n this.TxEncodeAmino = this.TxEncodeAmino.bind(this);\n this.TxDecodeAmino = this.TxDecodeAmino.bind(this);\n }\n Simulate(request) {\n const data = exports.SimulateRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"Simulate\", data);\n return promise.then((data) => exports.SimulateResponse.decode(new binary_1.BinaryReader(data)));\n }\n GetTx(request) {\n const data = exports.GetTxRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"GetTx\", data);\n return promise.then((data) => exports.GetTxResponse.decode(new binary_1.BinaryReader(data)));\n }\n BroadcastTx(request) {\n const data = exports.BroadcastTxRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"BroadcastTx\", data);\n return promise.then((data) => exports.BroadcastTxResponse.decode(new binary_1.BinaryReader(data)));\n }\n GetTxsEvent(request) {\n const data = exports.GetTxsEventRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"GetTxsEvent\", data);\n return promise.then((data) => exports.GetTxsEventResponse.decode(new binary_1.BinaryReader(data)));\n }\n GetBlockWithTxs(request) {\n const data = exports.GetBlockWithTxsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"GetBlockWithTxs\", data);\n return promise.then((data) => exports.GetBlockWithTxsResponse.decode(new binary_1.BinaryReader(data)));\n }\n TxDecode(request) {\n const data = exports.TxDecodeRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"TxDecode\", data);\n return promise.then((data) => exports.TxDecodeResponse.decode(new binary_1.BinaryReader(data)));\n }\n TxEncode(request) {\n const data = exports.TxEncodeRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"TxEncode\", data);\n return promise.then((data) => exports.TxEncodeResponse.decode(new binary_1.BinaryReader(data)));\n }\n TxEncodeAmino(request) {\n const data = exports.TxEncodeAminoRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"TxEncodeAmino\", data);\n return promise.then((data) => exports.TxEncodeAminoResponse.decode(new binary_1.BinaryReader(data)));\n }\n TxDecodeAmino(request) {\n const data = exports.TxDecodeAminoRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"TxDecodeAmino\", data);\n return promise.then((data) => exports.TxDecodeAminoResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.ServiceClientImpl = ServiceClientImpl;\n//# sourceMappingURL=service.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AuxSignerData = exports.Tip = exports.Fee = exports.ModeInfo_Multi = exports.ModeInfo_Single = exports.ModeInfo = exports.SignerInfo = exports.AuthInfo = exports.TxBody = exports.SignDocDirectAux = exports.SignDoc = exports.TxRaw = exports.Tx = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst signing_1 = require(\"../signing/v1beta1/signing\");\nconst multisig_1 = require(\"../../crypto/multisig/v1beta1/multisig\");\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.tx.v1beta1\";\nfunction createBaseTx() {\n return {\n body: undefined,\n authInfo: undefined,\n signatures: [],\n };\n}\nexports.Tx = {\n typeUrl: \"/cosmos.tx.v1beta1.Tx\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.body !== undefined) {\n exports.TxBody.encode(message.body, writer.uint32(10).fork()).ldelim();\n }\n if (message.authInfo !== undefined) {\n exports.AuthInfo.encode(message.authInfo, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.signatures) {\n writer.uint32(26).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTx();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.body = exports.TxBody.decode(reader, reader.uint32());\n break;\n case 2:\n message.authInfo = exports.AuthInfo.decode(reader, reader.uint32());\n break;\n case 3:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTx();\n if ((0, helpers_1.isSet)(object.body))\n obj.body = exports.TxBody.fromJSON(object.body);\n if ((0, helpers_1.isSet)(object.authInfo))\n obj.authInfo = exports.AuthInfo.fromJSON(object.authInfo);\n if (Array.isArray(object?.signatures))\n obj.signatures = object.signatures.map((e) => (0, helpers_1.bytesFromBase64)(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.body !== undefined && (obj.body = message.body ? exports.TxBody.toJSON(message.body) : undefined);\n message.authInfo !== undefined &&\n (obj.authInfo = message.authInfo ? exports.AuthInfo.toJSON(message.authInfo) : undefined);\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTx();\n if (object.body !== undefined && object.body !== null) {\n message.body = exports.TxBody.fromPartial(object.body);\n }\n if (object.authInfo !== undefined && object.authInfo !== null) {\n message.authInfo = exports.AuthInfo.fromPartial(object.authInfo);\n }\n message.signatures = object.signatures?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseTxRaw() {\n return {\n bodyBytes: new Uint8Array(),\n authInfoBytes: new Uint8Array(),\n signatures: [],\n };\n}\nexports.TxRaw = {\n typeUrl: \"/cosmos.tx.v1beta1.TxRaw\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.bodyBytes.length !== 0) {\n writer.uint32(10).bytes(message.bodyBytes);\n }\n if (message.authInfoBytes.length !== 0) {\n writer.uint32(18).bytes(message.authInfoBytes);\n }\n for (const v of message.signatures) {\n writer.uint32(26).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxRaw();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bodyBytes = reader.bytes();\n break;\n case 2:\n message.authInfoBytes = reader.bytes();\n break;\n case 3:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxRaw();\n if ((0, helpers_1.isSet)(object.bodyBytes))\n obj.bodyBytes = (0, helpers_1.bytesFromBase64)(object.bodyBytes);\n if ((0, helpers_1.isSet)(object.authInfoBytes))\n obj.authInfoBytes = (0, helpers_1.bytesFromBase64)(object.authInfoBytes);\n if (Array.isArray(object?.signatures))\n obj.signatures = object.signatures.map((e) => (0, helpers_1.bytesFromBase64)(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.bodyBytes !== undefined &&\n (obj.bodyBytes = (0, helpers_1.base64FromBytes)(message.bodyBytes !== undefined ? message.bodyBytes : new Uint8Array()));\n message.authInfoBytes !== undefined &&\n (obj.authInfoBytes = (0, helpers_1.base64FromBytes)(message.authInfoBytes !== undefined ? message.authInfoBytes : new Uint8Array()));\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxRaw();\n message.bodyBytes = object.bodyBytes ?? new Uint8Array();\n message.authInfoBytes = object.authInfoBytes ?? new Uint8Array();\n message.signatures = object.signatures?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseSignDoc() {\n return {\n bodyBytes: new Uint8Array(),\n authInfoBytes: new Uint8Array(),\n chainId: \"\",\n accountNumber: BigInt(0),\n };\n}\nexports.SignDoc = {\n typeUrl: \"/cosmos.tx.v1beta1.SignDoc\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.bodyBytes.length !== 0) {\n writer.uint32(10).bytes(message.bodyBytes);\n }\n if (message.authInfoBytes.length !== 0) {\n writer.uint32(18).bytes(message.authInfoBytes);\n }\n if (message.chainId !== \"\") {\n writer.uint32(26).string(message.chainId);\n }\n if (message.accountNumber !== BigInt(0)) {\n writer.uint32(32).uint64(message.accountNumber);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignDoc();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bodyBytes = reader.bytes();\n break;\n case 2:\n message.authInfoBytes = reader.bytes();\n break;\n case 3:\n message.chainId = reader.string();\n break;\n case 4:\n message.accountNumber = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignDoc();\n if ((0, helpers_1.isSet)(object.bodyBytes))\n obj.bodyBytes = (0, helpers_1.bytesFromBase64)(object.bodyBytes);\n if ((0, helpers_1.isSet)(object.authInfoBytes))\n obj.authInfoBytes = (0, helpers_1.bytesFromBase64)(object.authInfoBytes);\n if ((0, helpers_1.isSet)(object.chainId))\n obj.chainId = String(object.chainId);\n if ((0, helpers_1.isSet)(object.accountNumber))\n obj.accountNumber = BigInt(object.accountNumber.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.bodyBytes !== undefined &&\n (obj.bodyBytes = (0, helpers_1.base64FromBytes)(message.bodyBytes !== undefined ? message.bodyBytes : new Uint8Array()));\n message.authInfoBytes !== undefined &&\n (obj.authInfoBytes = (0, helpers_1.base64FromBytes)(message.authInfoBytes !== undefined ? message.authInfoBytes : new Uint8Array()));\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.accountNumber !== undefined &&\n (obj.accountNumber = (message.accountNumber || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignDoc();\n message.bodyBytes = object.bodyBytes ?? new Uint8Array();\n message.authInfoBytes = object.authInfoBytes ?? new Uint8Array();\n message.chainId = object.chainId ?? \"\";\n if (object.accountNumber !== undefined && object.accountNumber !== null) {\n message.accountNumber = BigInt(object.accountNumber.toString());\n }\n return message;\n },\n};\nfunction createBaseSignDocDirectAux() {\n return {\n bodyBytes: new Uint8Array(),\n publicKey: undefined,\n chainId: \"\",\n accountNumber: BigInt(0),\n sequence: BigInt(0),\n tip: undefined,\n };\n}\nexports.SignDocDirectAux = {\n typeUrl: \"/cosmos.tx.v1beta1.SignDocDirectAux\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.bodyBytes.length !== 0) {\n writer.uint32(10).bytes(message.bodyBytes);\n }\n if (message.publicKey !== undefined) {\n any_1.Any.encode(message.publicKey, writer.uint32(18).fork()).ldelim();\n }\n if (message.chainId !== \"\") {\n writer.uint32(26).string(message.chainId);\n }\n if (message.accountNumber !== BigInt(0)) {\n writer.uint32(32).uint64(message.accountNumber);\n }\n if (message.sequence !== BigInt(0)) {\n writer.uint32(40).uint64(message.sequence);\n }\n if (message.tip !== undefined) {\n exports.Tip.encode(message.tip, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignDocDirectAux();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bodyBytes = reader.bytes();\n break;\n case 2:\n message.publicKey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.chainId = reader.string();\n break;\n case 4:\n message.accountNumber = reader.uint64();\n break;\n case 5:\n message.sequence = reader.uint64();\n break;\n case 6:\n message.tip = exports.Tip.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignDocDirectAux();\n if ((0, helpers_1.isSet)(object.bodyBytes))\n obj.bodyBytes = (0, helpers_1.bytesFromBase64)(object.bodyBytes);\n if ((0, helpers_1.isSet)(object.publicKey))\n obj.publicKey = any_1.Any.fromJSON(object.publicKey);\n if ((0, helpers_1.isSet)(object.chainId))\n obj.chainId = String(object.chainId);\n if ((0, helpers_1.isSet)(object.accountNumber))\n obj.accountNumber = BigInt(object.accountNumber.toString());\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n if ((0, helpers_1.isSet)(object.tip))\n obj.tip = exports.Tip.fromJSON(object.tip);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.bodyBytes !== undefined &&\n (obj.bodyBytes = (0, helpers_1.base64FromBytes)(message.bodyBytes !== undefined ? message.bodyBytes : new Uint8Array()));\n message.publicKey !== undefined &&\n (obj.publicKey = message.publicKey ? any_1.Any.toJSON(message.publicKey) : undefined);\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.accountNumber !== undefined &&\n (obj.accountNumber = (message.accountNumber || BigInt(0)).toString());\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n message.tip !== undefined && (obj.tip = message.tip ? exports.Tip.toJSON(message.tip) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignDocDirectAux();\n message.bodyBytes = object.bodyBytes ?? new Uint8Array();\n if (object.publicKey !== undefined && object.publicKey !== null) {\n message.publicKey = any_1.Any.fromPartial(object.publicKey);\n }\n message.chainId = object.chainId ?? \"\";\n if (object.accountNumber !== undefined && object.accountNumber !== null) {\n message.accountNumber = BigInt(object.accountNumber.toString());\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n if (object.tip !== undefined && object.tip !== null) {\n message.tip = exports.Tip.fromPartial(object.tip);\n }\n return message;\n },\n};\nfunction createBaseTxBody() {\n return {\n messages: [],\n memo: \"\",\n timeoutHeight: BigInt(0),\n extensionOptions: [],\n nonCriticalExtensionOptions: [],\n };\n}\nexports.TxBody = {\n typeUrl: \"/cosmos.tx.v1beta1.TxBody\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.messages) {\n any_1.Any.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.memo !== \"\") {\n writer.uint32(18).string(message.memo);\n }\n if (message.timeoutHeight !== BigInt(0)) {\n writer.uint32(24).uint64(message.timeoutHeight);\n }\n for (const v of message.extensionOptions) {\n any_1.Any.encode(v, writer.uint32(8186).fork()).ldelim();\n }\n for (const v of message.nonCriticalExtensionOptions) {\n any_1.Any.encode(v, writer.uint32(16378).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxBody();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.messages.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 2:\n message.memo = reader.string();\n break;\n case 3:\n message.timeoutHeight = reader.uint64();\n break;\n case 1023:\n message.extensionOptions.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 2047:\n message.nonCriticalExtensionOptions.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxBody();\n if (Array.isArray(object?.messages))\n obj.messages = object.messages.map((e) => any_1.Any.fromJSON(e));\n if ((0, helpers_1.isSet)(object.memo))\n obj.memo = String(object.memo);\n if ((0, helpers_1.isSet)(object.timeoutHeight))\n obj.timeoutHeight = BigInt(object.timeoutHeight.toString());\n if (Array.isArray(object?.extensionOptions))\n obj.extensionOptions = object.extensionOptions.map((e) => any_1.Any.fromJSON(e));\n if (Array.isArray(object?.nonCriticalExtensionOptions))\n obj.nonCriticalExtensionOptions = object.nonCriticalExtensionOptions.map((e) => any_1.Any.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.messages) {\n obj.messages = message.messages.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.messages = [];\n }\n message.memo !== undefined && (obj.memo = message.memo);\n message.timeoutHeight !== undefined &&\n (obj.timeoutHeight = (message.timeoutHeight || BigInt(0)).toString());\n if (message.extensionOptions) {\n obj.extensionOptions = message.extensionOptions.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.extensionOptions = [];\n }\n if (message.nonCriticalExtensionOptions) {\n obj.nonCriticalExtensionOptions = message.nonCriticalExtensionOptions.map((e) => e ? any_1.Any.toJSON(e) : undefined);\n }\n else {\n obj.nonCriticalExtensionOptions = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxBody();\n message.messages = object.messages?.map((e) => any_1.Any.fromPartial(e)) || [];\n message.memo = object.memo ?? \"\";\n if (object.timeoutHeight !== undefined && object.timeoutHeight !== null) {\n message.timeoutHeight = BigInt(object.timeoutHeight.toString());\n }\n message.extensionOptions = object.extensionOptions?.map((e) => any_1.Any.fromPartial(e)) || [];\n message.nonCriticalExtensionOptions =\n object.nonCriticalExtensionOptions?.map((e) => any_1.Any.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseAuthInfo() {\n return {\n signerInfos: [],\n fee: undefined,\n tip: undefined,\n };\n}\nexports.AuthInfo = {\n typeUrl: \"/cosmos.tx.v1beta1.AuthInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.signerInfos) {\n exports.SignerInfo.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.fee !== undefined) {\n exports.Fee.encode(message.fee, writer.uint32(18).fork()).ldelim();\n }\n if (message.tip !== undefined) {\n exports.Tip.encode(message.tip, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAuthInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signerInfos.push(exports.SignerInfo.decode(reader, reader.uint32()));\n break;\n case 2:\n message.fee = exports.Fee.decode(reader, reader.uint32());\n break;\n case 3:\n message.tip = exports.Tip.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseAuthInfo();\n if (Array.isArray(object?.signerInfos))\n obj.signerInfos = object.signerInfos.map((e) => exports.SignerInfo.fromJSON(e));\n if ((0, helpers_1.isSet)(object.fee))\n obj.fee = exports.Fee.fromJSON(object.fee);\n if ((0, helpers_1.isSet)(object.tip))\n obj.tip = exports.Tip.fromJSON(object.tip);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.signerInfos) {\n obj.signerInfos = message.signerInfos.map((e) => (e ? exports.SignerInfo.toJSON(e) : undefined));\n }\n else {\n obj.signerInfos = [];\n }\n message.fee !== undefined && (obj.fee = message.fee ? exports.Fee.toJSON(message.fee) : undefined);\n message.tip !== undefined && (obj.tip = message.tip ? exports.Tip.toJSON(message.tip) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseAuthInfo();\n message.signerInfos = object.signerInfos?.map((e) => exports.SignerInfo.fromPartial(e)) || [];\n if (object.fee !== undefined && object.fee !== null) {\n message.fee = exports.Fee.fromPartial(object.fee);\n }\n if (object.tip !== undefined && object.tip !== null) {\n message.tip = exports.Tip.fromPartial(object.tip);\n }\n return message;\n },\n};\nfunction createBaseSignerInfo() {\n return {\n publicKey: undefined,\n modeInfo: undefined,\n sequence: BigInt(0),\n };\n}\nexports.SignerInfo = {\n typeUrl: \"/cosmos.tx.v1beta1.SignerInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.publicKey !== undefined) {\n any_1.Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim();\n }\n if (message.modeInfo !== undefined) {\n exports.ModeInfo.encode(message.modeInfo, writer.uint32(18).fork()).ldelim();\n }\n if (message.sequence !== BigInt(0)) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignerInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.publicKey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.modeInfo = exports.ModeInfo.decode(reader, reader.uint32());\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignerInfo();\n if ((0, helpers_1.isSet)(object.publicKey))\n obj.publicKey = any_1.Any.fromJSON(object.publicKey);\n if ((0, helpers_1.isSet)(object.modeInfo))\n obj.modeInfo = exports.ModeInfo.fromJSON(object.modeInfo);\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.publicKey !== undefined &&\n (obj.publicKey = message.publicKey ? any_1.Any.toJSON(message.publicKey) : undefined);\n message.modeInfo !== undefined &&\n (obj.modeInfo = message.modeInfo ? exports.ModeInfo.toJSON(message.modeInfo) : undefined);\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignerInfo();\n if (object.publicKey !== undefined && object.publicKey !== null) {\n message.publicKey = any_1.Any.fromPartial(object.publicKey);\n }\n if (object.modeInfo !== undefined && object.modeInfo !== null) {\n message.modeInfo = exports.ModeInfo.fromPartial(object.modeInfo);\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n return message;\n },\n};\nfunction createBaseModeInfo() {\n return {\n single: undefined,\n multi: undefined,\n };\n}\nexports.ModeInfo = {\n typeUrl: \"/cosmos.tx.v1beta1.ModeInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.single !== undefined) {\n exports.ModeInfo_Single.encode(message.single, writer.uint32(10).fork()).ldelim();\n }\n if (message.multi !== undefined) {\n exports.ModeInfo_Multi.encode(message.multi, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseModeInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.single = exports.ModeInfo_Single.decode(reader, reader.uint32());\n break;\n case 2:\n message.multi = exports.ModeInfo_Multi.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseModeInfo();\n if ((0, helpers_1.isSet)(object.single))\n obj.single = exports.ModeInfo_Single.fromJSON(object.single);\n if ((0, helpers_1.isSet)(object.multi))\n obj.multi = exports.ModeInfo_Multi.fromJSON(object.multi);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.single !== undefined &&\n (obj.single = message.single ? exports.ModeInfo_Single.toJSON(message.single) : undefined);\n message.multi !== undefined &&\n (obj.multi = message.multi ? exports.ModeInfo_Multi.toJSON(message.multi) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseModeInfo();\n if (object.single !== undefined && object.single !== null) {\n message.single = exports.ModeInfo_Single.fromPartial(object.single);\n }\n if (object.multi !== undefined && object.multi !== null) {\n message.multi = exports.ModeInfo_Multi.fromPartial(object.multi);\n }\n return message;\n },\n};\nfunction createBaseModeInfo_Single() {\n return {\n mode: 0,\n };\n}\nexports.ModeInfo_Single = {\n typeUrl: \"/cosmos.tx.v1beta1.Single\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.mode !== 0) {\n writer.uint32(8).int32(message.mode);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseModeInfo_Single();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.mode = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseModeInfo_Single();\n if ((0, helpers_1.isSet)(object.mode))\n obj.mode = (0, signing_1.signModeFromJSON)(object.mode);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.mode !== undefined && (obj.mode = (0, signing_1.signModeToJSON)(message.mode));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseModeInfo_Single();\n message.mode = object.mode ?? 0;\n return message;\n },\n};\nfunction createBaseModeInfo_Multi() {\n return {\n bitarray: undefined,\n modeInfos: [],\n };\n}\nexports.ModeInfo_Multi = {\n typeUrl: \"/cosmos.tx.v1beta1.Multi\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.bitarray !== undefined) {\n multisig_1.CompactBitArray.encode(message.bitarray, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.modeInfos) {\n exports.ModeInfo.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseModeInfo_Multi();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bitarray = multisig_1.CompactBitArray.decode(reader, reader.uint32());\n break;\n case 2:\n message.modeInfos.push(exports.ModeInfo.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseModeInfo_Multi();\n if ((0, helpers_1.isSet)(object.bitarray))\n obj.bitarray = multisig_1.CompactBitArray.fromJSON(object.bitarray);\n if (Array.isArray(object?.modeInfos))\n obj.modeInfos = object.modeInfos.map((e) => exports.ModeInfo.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.bitarray !== undefined &&\n (obj.bitarray = message.bitarray ? multisig_1.CompactBitArray.toJSON(message.bitarray) : undefined);\n if (message.modeInfos) {\n obj.modeInfos = message.modeInfos.map((e) => (e ? exports.ModeInfo.toJSON(e) : undefined));\n }\n else {\n obj.modeInfos = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseModeInfo_Multi();\n if (object.bitarray !== undefined && object.bitarray !== null) {\n message.bitarray = multisig_1.CompactBitArray.fromPartial(object.bitarray);\n }\n message.modeInfos = object.modeInfos?.map((e) => exports.ModeInfo.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseFee() {\n return {\n amount: [],\n gasLimit: BigInt(0),\n payer: \"\",\n granter: \"\",\n };\n}\nexports.Fee = {\n typeUrl: \"/cosmos.tx.v1beta1.Fee\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.gasLimit !== BigInt(0)) {\n writer.uint32(16).uint64(message.gasLimit);\n }\n if (message.payer !== \"\") {\n writer.uint32(26).string(message.payer);\n }\n if (message.granter !== \"\") {\n writer.uint32(34).string(message.granter);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFee();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.gasLimit = reader.uint64();\n break;\n case 3:\n message.payer = reader.string();\n break;\n case 4:\n message.granter = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseFee();\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.gasLimit))\n obj.gasLimit = BigInt(object.gasLimit.toString());\n if ((0, helpers_1.isSet)(object.payer))\n obj.payer = String(object.payer);\n if ((0, helpers_1.isSet)(object.granter))\n obj.granter = String(object.granter);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n message.gasLimit !== undefined && (obj.gasLimit = (message.gasLimit || BigInt(0)).toString());\n message.payer !== undefined && (obj.payer = message.payer);\n message.granter !== undefined && (obj.granter = message.granter);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseFee();\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.gasLimit !== undefined && object.gasLimit !== null) {\n message.gasLimit = BigInt(object.gasLimit.toString());\n }\n message.payer = object.payer ?? \"\";\n message.granter = object.granter ?? \"\";\n return message;\n },\n};\nfunction createBaseTip() {\n return {\n amount: [],\n tipper: \"\",\n };\n}\nexports.Tip = {\n typeUrl: \"/cosmos.tx.v1beta1.Tip\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.tipper !== \"\") {\n writer.uint32(18).string(message.tipper);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTip();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.tipper = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTip();\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.tipper))\n obj.tipper = String(object.tipper);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n message.tipper !== undefined && (obj.tipper = message.tipper);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTip();\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n message.tipper = object.tipper ?? \"\";\n return message;\n },\n};\nfunction createBaseAuxSignerData() {\n return {\n address: \"\",\n signDoc: undefined,\n mode: 0,\n sig: new Uint8Array(),\n };\n}\nexports.AuxSignerData = {\n typeUrl: \"/cosmos.tx.v1beta1.AuxSignerData\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.signDoc !== undefined) {\n exports.SignDocDirectAux.encode(message.signDoc, writer.uint32(18).fork()).ldelim();\n }\n if (message.mode !== 0) {\n writer.uint32(24).int32(message.mode);\n }\n if (message.sig.length !== 0) {\n writer.uint32(34).bytes(message.sig);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAuxSignerData();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.signDoc = exports.SignDocDirectAux.decode(reader, reader.uint32());\n break;\n case 3:\n message.mode = reader.int32();\n break;\n case 4:\n message.sig = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseAuxSignerData();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.signDoc))\n obj.signDoc = exports.SignDocDirectAux.fromJSON(object.signDoc);\n if ((0, helpers_1.isSet)(object.mode))\n obj.mode = (0, signing_1.signModeFromJSON)(object.mode);\n if ((0, helpers_1.isSet)(object.sig))\n obj.sig = (0, helpers_1.bytesFromBase64)(object.sig);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.signDoc !== undefined &&\n (obj.signDoc = message.signDoc ? exports.SignDocDirectAux.toJSON(message.signDoc) : undefined);\n message.mode !== undefined && (obj.mode = (0, signing_1.signModeToJSON)(message.mode));\n message.sig !== undefined &&\n (obj.sig = (0, helpers_1.base64FromBytes)(message.sig !== undefined ? message.sig : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseAuxSignerData();\n message.address = object.address ?? \"\";\n if (object.signDoc !== undefined && object.signDoc !== null) {\n message.signDoc = exports.SignDocDirectAux.fromPartial(object.signDoc);\n }\n message.mode = object.mode ?? 0;\n message.sig = object.sig ?? new Uint8Array();\n return message;\n },\n};\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ModuleVersion = exports.CancelSoftwareUpgradeProposal = exports.SoftwareUpgradeProposal = exports.Plan = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.upgrade.v1beta1\";\nfunction createBasePlan() {\n return {\n name: \"\",\n time: timestamp_1.Timestamp.fromPartial({}),\n height: BigInt(0),\n info: \"\",\n upgradedClientState: undefined,\n };\n}\nexports.Plan = {\n typeUrl: \"/cosmos.upgrade.v1beta1.Plan\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.name !== \"\") {\n writer.uint32(10).string(message.name);\n }\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(message.time, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== BigInt(0)) {\n writer.uint32(24).int64(message.height);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (message.upgradedClientState !== undefined) {\n any_1.Any.encode(message.upgradedClientState, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePlan();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.time = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = reader.int64();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.upgradedClientState = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePlan();\n if ((0, helpers_1.isSet)(object.name))\n obj.name = String(object.name);\n if ((0, helpers_1.isSet)(object.time))\n obj.time = (0, helpers_1.fromJsonTimestamp)(object.time);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.info))\n obj.info = String(object.info);\n if ((0, helpers_1.isSet)(object.upgradedClientState))\n obj.upgradedClientState = any_1.Any.fromJSON(object.upgradedClientState);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.name !== undefined && (obj.name = message.name);\n message.time !== undefined && (obj.time = (0, helpers_1.fromTimestamp)(message.time).toISOString());\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.info !== undefined && (obj.info = message.info);\n message.upgradedClientState !== undefined &&\n (obj.upgradedClientState = message.upgradedClientState\n ? any_1.Any.toJSON(message.upgradedClientState)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBasePlan();\n message.name = object.name ?? \"\";\n if (object.time !== undefined && object.time !== null) {\n message.time = timestamp_1.Timestamp.fromPartial(object.time);\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n message.info = object.info ?? \"\";\n if (object.upgradedClientState !== undefined && object.upgradedClientState !== null) {\n message.upgradedClientState = any_1.Any.fromPartial(object.upgradedClientState);\n }\n return message;\n },\n};\nfunction createBaseSoftwareUpgradeProposal() {\n return {\n title: \"\",\n description: \"\",\n plan: exports.Plan.fromPartial({}),\n };\n}\nexports.SoftwareUpgradeProposal = {\n typeUrl: \"/cosmos.upgrade.v1beta1.SoftwareUpgradeProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.plan !== undefined) {\n exports.Plan.encode(message.plan, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSoftwareUpgradeProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.plan = exports.Plan.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSoftwareUpgradeProposal();\n if ((0, helpers_1.isSet)(object.title))\n obj.title = String(object.title);\n if ((0, helpers_1.isSet)(object.description))\n obj.description = String(object.description);\n if ((0, helpers_1.isSet)(object.plan))\n obj.plan = exports.Plan.fromJSON(object.plan);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.plan !== undefined && (obj.plan = message.plan ? exports.Plan.toJSON(message.plan) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSoftwareUpgradeProposal();\n message.title = object.title ?? \"\";\n message.description = object.description ?? \"\";\n if (object.plan !== undefined && object.plan !== null) {\n message.plan = exports.Plan.fromPartial(object.plan);\n }\n return message;\n },\n};\nfunction createBaseCancelSoftwareUpgradeProposal() {\n return {\n title: \"\",\n description: \"\",\n };\n}\nexports.CancelSoftwareUpgradeProposal = {\n typeUrl: \"/cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCancelSoftwareUpgradeProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCancelSoftwareUpgradeProposal();\n if ((0, helpers_1.isSet)(object.title))\n obj.title = String(object.title);\n if ((0, helpers_1.isSet)(object.description))\n obj.description = String(object.description);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCancelSoftwareUpgradeProposal();\n message.title = object.title ?? \"\";\n message.description = object.description ?? \"\";\n return message;\n },\n};\nfunction createBaseModuleVersion() {\n return {\n name: \"\",\n version: BigInt(0),\n };\n}\nexports.ModuleVersion = {\n typeUrl: \"/cosmos.upgrade.v1beta1.ModuleVersion\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.name !== \"\") {\n writer.uint32(10).string(message.name);\n }\n if (message.version !== BigInt(0)) {\n writer.uint32(16).uint64(message.version);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseModuleVersion();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.version = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseModuleVersion();\n if ((0, helpers_1.isSet)(object.name))\n obj.name = String(object.name);\n if ((0, helpers_1.isSet)(object.version))\n obj.version = BigInt(object.version.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.name !== undefined && (obj.name = message.name);\n message.version !== undefined && (obj.version = (message.version || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseModuleVersion();\n message.name = object.name ?? \"\";\n if (object.version !== undefined && object.version !== null) {\n message.version = BigInt(object.version.toString());\n }\n return message;\n },\n};\n//# sourceMappingURL=upgrade.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgCreatePeriodicVestingAccountResponse = exports.MsgCreatePeriodicVestingAccount = exports.MsgCreatePermanentLockedAccountResponse = exports.MsgCreatePermanentLockedAccount = exports.MsgCreateVestingAccountResponse = exports.MsgCreateVestingAccount = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst vesting_1 = require(\"./vesting\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.vesting.v1beta1\";\nfunction createBaseMsgCreateVestingAccount() {\n return {\n fromAddress: \"\",\n toAddress: \"\",\n amount: [],\n endTime: BigInt(0),\n delayed: false,\n };\n}\nexports.MsgCreateVestingAccount = {\n typeUrl: \"/cosmos.vesting.v1beta1.MsgCreateVestingAccount\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.fromAddress !== \"\") {\n writer.uint32(10).string(message.fromAddress);\n }\n if (message.toAddress !== \"\") {\n writer.uint32(18).string(message.toAddress);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n if (message.endTime !== BigInt(0)) {\n writer.uint32(32).int64(message.endTime);\n }\n if (message.delayed === true) {\n writer.uint32(40).bool(message.delayed);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateVestingAccount();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.fromAddress = reader.string();\n break;\n case 2:\n message.toAddress = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 4:\n message.endTime = reader.int64();\n break;\n case 5:\n message.delayed = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCreateVestingAccount();\n if ((0, helpers_1.isSet)(object.fromAddress))\n obj.fromAddress = String(object.fromAddress);\n if ((0, helpers_1.isSet)(object.toAddress))\n obj.toAddress = String(object.toAddress);\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.endTime))\n obj.endTime = BigInt(object.endTime.toString());\n if ((0, helpers_1.isSet)(object.delayed))\n obj.delayed = Boolean(object.delayed);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress);\n message.toAddress !== undefined && (obj.toAddress = message.toAddress);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n message.endTime !== undefined && (obj.endTime = (message.endTime || BigInt(0)).toString());\n message.delayed !== undefined && (obj.delayed = message.delayed);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCreateVestingAccount();\n message.fromAddress = object.fromAddress ?? \"\";\n message.toAddress = object.toAddress ?? \"\";\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.endTime !== undefined && object.endTime !== null) {\n message.endTime = BigInt(object.endTime.toString());\n }\n message.delayed = object.delayed ?? false;\n return message;\n },\n};\nfunction createBaseMsgCreateVestingAccountResponse() {\n return {};\n}\nexports.MsgCreateVestingAccountResponse = {\n typeUrl: \"/cosmos.vesting.v1beta1.MsgCreateVestingAccountResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateVestingAccountResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgCreateVestingAccountResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgCreateVestingAccountResponse();\n return message;\n },\n};\nfunction createBaseMsgCreatePermanentLockedAccount() {\n return {\n fromAddress: \"\",\n toAddress: \"\",\n amount: [],\n };\n}\nexports.MsgCreatePermanentLockedAccount = {\n typeUrl: \"/cosmos.vesting.v1beta1.MsgCreatePermanentLockedAccount\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.fromAddress !== \"\") {\n writer.uint32(10).string(message.fromAddress);\n }\n if (message.toAddress !== \"\") {\n writer.uint32(18).string(message.toAddress);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreatePermanentLockedAccount();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.fromAddress = reader.string();\n break;\n case 2:\n message.toAddress = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCreatePermanentLockedAccount();\n if ((0, helpers_1.isSet)(object.fromAddress))\n obj.fromAddress = String(object.fromAddress);\n if ((0, helpers_1.isSet)(object.toAddress))\n obj.toAddress = String(object.toAddress);\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress);\n message.toAddress !== undefined && (obj.toAddress = message.toAddress);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCreatePermanentLockedAccount();\n message.fromAddress = object.fromAddress ?? \"\";\n message.toAddress = object.toAddress ?? \"\";\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgCreatePermanentLockedAccountResponse() {\n return {};\n}\nexports.MsgCreatePermanentLockedAccountResponse = {\n typeUrl: \"/cosmos.vesting.v1beta1.MsgCreatePermanentLockedAccountResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreatePermanentLockedAccountResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgCreatePermanentLockedAccountResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgCreatePermanentLockedAccountResponse();\n return message;\n },\n};\nfunction createBaseMsgCreatePeriodicVestingAccount() {\n return {\n fromAddress: \"\",\n toAddress: \"\",\n startTime: BigInt(0),\n vestingPeriods: [],\n };\n}\nexports.MsgCreatePeriodicVestingAccount = {\n typeUrl: \"/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccount\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.fromAddress !== \"\") {\n writer.uint32(10).string(message.fromAddress);\n }\n if (message.toAddress !== \"\") {\n writer.uint32(18).string(message.toAddress);\n }\n if (message.startTime !== BigInt(0)) {\n writer.uint32(24).int64(message.startTime);\n }\n for (const v of message.vestingPeriods) {\n vesting_1.Period.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreatePeriodicVestingAccount();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.fromAddress = reader.string();\n break;\n case 2:\n message.toAddress = reader.string();\n break;\n case 3:\n message.startTime = reader.int64();\n break;\n case 4:\n message.vestingPeriods.push(vesting_1.Period.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCreatePeriodicVestingAccount();\n if ((0, helpers_1.isSet)(object.fromAddress))\n obj.fromAddress = String(object.fromAddress);\n if ((0, helpers_1.isSet)(object.toAddress))\n obj.toAddress = String(object.toAddress);\n if ((0, helpers_1.isSet)(object.startTime))\n obj.startTime = BigInt(object.startTime.toString());\n if (Array.isArray(object?.vestingPeriods))\n obj.vestingPeriods = object.vestingPeriods.map((e) => vesting_1.Period.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress);\n message.toAddress !== undefined && (obj.toAddress = message.toAddress);\n message.startTime !== undefined && (obj.startTime = (message.startTime || BigInt(0)).toString());\n if (message.vestingPeriods) {\n obj.vestingPeriods = message.vestingPeriods.map((e) => (e ? vesting_1.Period.toJSON(e) : undefined));\n }\n else {\n obj.vestingPeriods = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCreatePeriodicVestingAccount();\n message.fromAddress = object.fromAddress ?? \"\";\n message.toAddress = object.toAddress ?? \"\";\n if (object.startTime !== undefined && object.startTime !== null) {\n message.startTime = BigInt(object.startTime.toString());\n }\n message.vestingPeriods = object.vestingPeriods?.map((e) => vesting_1.Period.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgCreatePeriodicVestingAccountResponse() {\n return {};\n}\nexports.MsgCreatePeriodicVestingAccountResponse = {\n typeUrl: \"/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccountResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreatePeriodicVestingAccountResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgCreatePeriodicVestingAccountResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgCreatePeriodicVestingAccountResponse();\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.CreateVestingAccount = this.CreateVestingAccount.bind(this);\n this.CreatePermanentLockedAccount = this.CreatePermanentLockedAccount.bind(this);\n this.CreatePeriodicVestingAccount = this.CreatePeriodicVestingAccount.bind(this);\n }\n CreateVestingAccount(request) {\n const data = exports.MsgCreateVestingAccount.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.vesting.v1beta1.Msg\", \"CreateVestingAccount\", data);\n return promise.then((data) => exports.MsgCreateVestingAccountResponse.decode(new binary_1.BinaryReader(data)));\n }\n CreatePermanentLockedAccount(request) {\n const data = exports.MsgCreatePermanentLockedAccount.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.vesting.v1beta1.Msg\", \"CreatePermanentLockedAccount\", data);\n return promise.then((data) => exports.MsgCreatePermanentLockedAccountResponse.decode(new binary_1.BinaryReader(data)));\n }\n CreatePeriodicVestingAccount(request) {\n const data = exports.MsgCreatePeriodicVestingAccount.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.vesting.v1beta1.Msg\", \"CreatePeriodicVestingAccount\", data);\n return promise.then((data) => exports.MsgCreatePeriodicVestingAccountResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PermanentLockedAccount = exports.PeriodicVestingAccount = exports.Period = exports.DelayedVestingAccount = exports.ContinuousVestingAccount = exports.BaseVestingAccount = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst auth_1 = require(\"../../auth/v1beta1/auth\");\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.vesting.v1beta1\";\nfunction createBaseBaseVestingAccount() {\n return {\n baseAccount: undefined,\n originalVesting: [],\n delegatedFree: [],\n delegatedVesting: [],\n endTime: BigInt(0),\n };\n}\nexports.BaseVestingAccount = {\n typeUrl: \"/cosmos.vesting.v1beta1.BaseVestingAccount\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.baseAccount !== undefined) {\n auth_1.BaseAccount.encode(message.baseAccount, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.originalVesting) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.delegatedFree) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.delegatedVesting) {\n coin_1.Coin.encode(v, writer.uint32(34).fork()).ldelim();\n }\n if (message.endTime !== BigInt(0)) {\n writer.uint32(40).int64(message.endTime);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBaseVestingAccount();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseAccount = auth_1.BaseAccount.decode(reader, reader.uint32());\n break;\n case 2:\n message.originalVesting.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 3:\n message.delegatedFree.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 4:\n message.delegatedVesting.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 5:\n message.endTime = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBaseVestingAccount();\n if ((0, helpers_1.isSet)(object.baseAccount))\n obj.baseAccount = auth_1.BaseAccount.fromJSON(object.baseAccount);\n if (Array.isArray(object?.originalVesting))\n obj.originalVesting = object.originalVesting.map((e) => coin_1.Coin.fromJSON(e));\n if (Array.isArray(object?.delegatedFree))\n obj.delegatedFree = object.delegatedFree.map((e) => coin_1.Coin.fromJSON(e));\n if (Array.isArray(object?.delegatedVesting))\n obj.delegatedVesting = object.delegatedVesting.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.endTime))\n obj.endTime = BigInt(object.endTime.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.baseAccount !== undefined &&\n (obj.baseAccount = message.baseAccount ? auth_1.BaseAccount.toJSON(message.baseAccount) : undefined);\n if (message.originalVesting) {\n obj.originalVesting = message.originalVesting.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.originalVesting = [];\n }\n if (message.delegatedFree) {\n obj.delegatedFree = message.delegatedFree.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.delegatedFree = [];\n }\n if (message.delegatedVesting) {\n obj.delegatedVesting = message.delegatedVesting.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.delegatedVesting = [];\n }\n message.endTime !== undefined && (obj.endTime = (message.endTime || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBaseVestingAccount();\n if (object.baseAccount !== undefined && object.baseAccount !== null) {\n message.baseAccount = auth_1.BaseAccount.fromPartial(object.baseAccount);\n }\n message.originalVesting = object.originalVesting?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n message.delegatedFree = object.delegatedFree?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n message.delegatedVesting = object.delegatedVesting?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.endTime !== undefined && object.endTime !== null) {\n message.endTime = BigInt(object.endTime.toString());\n }\n return message;\n },\n};\nfunction createBaseContinuousVestingAccount() {\n return {\n baseVestingAccount: undefined,\n startTime: BigInt(0),\n };\n}\nexports.ContinuousVestingAccount = {\n typeUrl: \"/cosmos.vesting.v1beta1.ContinuousVestingAccount\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.baseVestingAccount !== undefined) {\n exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();\n }\n if (message.startTime !== BigInt(0)) {\n writer.uint32(16).int64(message.startTime);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseContinuousVestingAccount();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseVestingAccount = exports.BaseVestingAccount.decode(reader, reader.uint32());\n break;\n case 2:\n message.startTime = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseContinuousVestingAccount();\n if ((0, helpers_1.isSet)(object.baseVestingAccount))\n obj.baseVestingAccount = exports.BaseVestingAccount.fromJSON(object.baseVestingAccount);\n if ((0, helpers_1.isSet)(object.startTime))\n obj.startTime = BigInt(object.startTime.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.baseVestingAccount !== undefined &&\n (obj.baseVestingAccount = message.baseVestingAccount\n ? exports.BaseVestingAccount.toJSON(message.baseVestingAccount)\n : undefined);\n message.startTime !== undefined && (obj.startTime = (message.startTime || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseContinuousVestingAccount();\n if (object.baseVestingAccount !== undefined && object.baseVestingAccount !== null) {\n message.baseVestingAccount = exports.BaseVestingAccount.fromPartial(object.baseVestingAccount);\n }\n if (object.startTime !== undefined && object.startTime !== null) {\n message.startTime = BigInt(object.startTime.toString());\n }\n return message;\n },\n};\nfunction createBaseDelayedVestingAccount() {\n return {\n baseVestingAccount: undefined,\n };\n}\nexports.DelayedVestingAccount = {\n typeUrl: \"/cosmos.vesting.v1beta1.DelayedVestingAccount\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.baseVestingAccount !== undefined) {\n exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDelayedVestingAccount();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseVestingAccount = exports.BaseVestingAccount.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDelayedVestingAccount();\n if ((0, helpers_1.isSet)(object.baseVestingAccount))\n obj.baseVestingAccount = exports.BaseVestingAccount.fromJSON(object.baseVestingAccount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.baseVestingAccount !== undefined &&\n (obj.baseVestingAccount = message.baseVestingAccount\n ? exports.BaseVestingAccount.toJSON(message.baseVestingAccount)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDelayedVestingAccount();\n if (object.baseVestingAccount !== undefined && object.baseVestingAccount !== null) {\n message.baseVestingAccount = exports.BaseVestingAccount.fromPartial(object.baseVestingAccount);\n }\n return message;\n },\n};\nfunction createBasePeriod() {\n return {\n length: BigInt(0),\n amount: [],\n };\n}\nexports.Period = {\n typeUrl: \"/cosmos.vesting.v1beta1.Period\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.length !== BigInt(0)) {\n writer.uint32(8).int64(message.length);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePeriod();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.length = reader.int64();\n break;\n case 2:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePeriod();\n if ((0, helpers_1.isSet)(object.length))\n obj.length = BigInt(object.length.toString());\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.length !== undefined && (obj.length = (message.length || BigInt(0)).toString());\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBasePeriod();\n if (object.length !== undefined && object.length !== null) {\n message.length = BigInt(object.length.toString());\n }\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBasePeriodicVestingAccount() {\n return {\n baseVestingAccount: undefined,\n startTime: BigInt(0),\n vestingPeriods: [],\n };\n}\nexports.PeriodicVestingAccount = {\n typeUrl: \"/cosmos.vesting.v1beta1.PeriodicVestingAccount\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.baseVestingAccount !== undefined) {\n exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();\n }\n if (message.startTime !== BigInt(0)) {\n writer.uint32(16).int64(message.startTime);\n }\n for (const v of message.vestingPeriods) {\n exports.Period.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePeriodicVestingAccount();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseVestingAccount = exports.BaseVestingAccount.decode(reader, reader.uint32());\n break;\n case 2:\n message.startTime = reader.int64();\n break;\n case 3:\n message.vestingPeriods.push(exports.Period.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePeriodicVestingAccount();\n if ((0, helpers_1.isSet)(object.baseVestingAccount))\n obj.baseVestingAccount = exports.BaseVestingAccount.fromJSON(object.baseVestingAccount);\n if ((0, helpers_1.isSet)(object.startTime))\n obj.startTime = BigInt(object.startTime.toString());\n if (Array.isArray(object?.vestingPeriods))\n obj.vestingPeriods = object.vestingPeriods.map((e) => exports.Period.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.baseVestingAccount !== undefined &&\n (obj.baseVestingAccount = message.baseVestingAccount\n ? exports.BaseVestingAccount.toJSON(message.baseVestingAccount)\n : undefined);\n message.startTime !== undefined && (obj.startTime = (message.startTime || BigInt(0)).toString());\n if (message.vestingPeriods) {\n obj.vestingPeriods = message.vestingPeriods.map((e) => (e ? exports.Period.toJSON(e) : undefined));\n }\n else {\n obj.vestingPeriods = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBasePeriodicVestingAccount();\n if (object.baseVestingAccount !== undefined && object.baseVestingAccount !== null) {\n message.baseVestingAccount = exports.BaseVestingAccount.fromPartial(object.baseVestingAccount);\n }\n if (object.startTime !== undefined && object.startTime !== null) {\n message.startTime = BigInt(object.startTime.toString());\n }\n message.vestingPeriods = object.vestingPeriods?.map((e) => exports.Period.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBasePermanentLockedAccount() {\n return {\n baseVestingAccount: undefined,\n };\n}\nexports.PermanentLockedAccount = {\n typeUrl: \"/cosmos.vesting.v1beta1.PermanentLockedAccount\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.baseVestingAccount !== undefined) {\n exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePermanentLockedAccount();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseVestingAccount = exports.BaseVestingAccount.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePermanentLockedAccount();\n if ((0, helpers_1.isSet)(object.baseVestingAccount))\n obj.baseVestingAccount = exports.BaseVestingAccount.fromJSON(object.baseVestingAccount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.baseVestingAccount !== undefined &&\n (obj.baseVestingAccount = message.baseVestingAccount\n ? exports.BaseVestingAccount.toJSON(message.baseVestingAccount)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBasePermanentLockedAccount();\n if (object.baseVestingAccount !== undefined && object.baseVestingAccount !== null) {\n message.baseVestingAccount = exports.BaseVestingAccount.fromPartial(object.baseVestingAccount);\n }\n return message;\n },\n};\n//# sourceMappingURL=vesting.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Any = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"google.protobuf\";\nfunction createBaseAny() {\n return {\n typeUrl: \"\",\n value: new Uint8Array(),\n };\n}\nexports.Any = {\n typeUrl: \"/google.protobuf.Any\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.typeUrl !== \"\") {\n writer.uint32(10).string(message.typeUrl);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAny();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.typeUrl = reader.string();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseAny();\n if ((0, helpers_1.isSet)(object.typeUrl))\n obj.typeUrl = String(object.typeUrl);\n if ((0, helpers_1.isSet)(object.value))\n obj.value = (0, helpers_1.bytesFromBase64)(object.value);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.typeUrl !== undefined && (obj.typeUrl = message.typeUrl);\n message.value !== undefined &&\n (obj.value = (0, helpers_1.base64FromBytes)(message.value !== undefined ? message.value : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseAny();\n message.typeUrl = object.typeUrl ?? \"\";\n message.value = object.value ?? new Uint8Array();\n return message;\n },\n};\n//# sourceMappingURL=any.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Duration = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"google.protobuf\";\nfunction createBaseDuration() {\n return {\n seconds: BigInt(0),\n nanos: 0,\n };\n}\nexports.Duration = {\n typeUrl: \"/google.protobuf.Duration\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.seconds !== BigInt(0)) {\n writer.uint32(8).int64(message.seconds);\n }\n if (message.nanos !== 0) {\n writer.uint32(16).int32(message.nanos);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDuration();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.seconds = reader.int64();\n break;\n case 2:\n message.nanos = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDuration();\n if ((0, helpers_1.isSet)(object.seconds))\n obj.seconds = BigInt(object.seconds.toString());\n if ((0, helpers_1.isSet)(object.nanos))\n obj.nanos = Number(object.nanos);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.seconds !== undefined && (obj.seconds = (message.seconds || BigInt(0)).toString());\n message.nanos !== undefined && (obj.nanos = Math.round(message.nanos));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDuration();\n if (object.seconds !== undefined && object.seconds !== null) {\n message.seconds = BigInt(object.seconds.toString());\n }\n message.nanos = object.nanos ?? 0;\n return message;\n },\n};\n//# sourceMappingURL=duration.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Timestamp = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"google.protobuf\";\nfunction createBaseTimestamp() {\n return {\n seconds: BigInt(0),\n nanos: 0,\n };\n}\nexports.Timestamp = {\n typeUrl: \"/google.protobuf.Timestamp\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.seconds !== BigInt(0)) {\n writer.uint32(8).int64(message.seconds);\n }\n if (message.nanos !== 0) {\n writer.uint32(16).int32(message.nanos);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTimestamp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.seconds = reader.int64();\n break;\n case 2:\n message.nanos = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTimestamp();\n if ((0, helpers_1.isSet)(object.seconds))\n obj.seconds = BigInt(object.seconds.toString());\n if ((0, helpers_1.isSet)(object.nanos))\n obj.nanos = Number(object.nanos);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.seconds !== undefined && (obj.seconds = (message.seconds || BigInt(0)).toString());\n message.nanos !== undefined && (obj.nanos = Math.round(message.nanos));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTimestamp();\n if (object.seconds !== undefined && object.seconds !== null) {\n message.seconds = BigInt(object.seconds.toString());\n }\n message.nanos = object.nanos ?? 0;\n return message;\n },\n};\n//# sourceMappingURL=timestamp.js.map","\"use strict\";\n/* eslint-disable */\n/**\n * This file and any referenced files were automatically generated by @cosmology/telescope@1.0.7\n * DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain\n * and run the transpile command or yarn proto command to regenerate this bundle.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromJsonTimestamp = exports.fromTimestamp = exports.toTimestamp = exports.setPaginationParams = exports.isObject = exports.isSet = exports.fromDuration = exports.toDuration = exports.omitDefault = exports.base64FromBytes = exports.bytesFromBase64 = void 0;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nexports.bytesFromBase64 = bytesFromBase64;\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n arr.forEach((byte) => {\n bin.push(String.fromCharCode(byte));\n });\n return btoa(bin.join(\"\"));\n}\nexports.base64FromBytes = base64FromBytes;\nfunction omitDefault(input) {\n if (typeof input === \"string\") {\n return input === \"\" ? undefined : input;\n }\n if (typeof input === \"number\") {\n return input === 0 ? undefined : input;\n }\n if (typeof input === \"bigint\") {\n return input === BigInt(0) ? undefined : input;\n }\n throw new Error(`Got unsupported type ${typeof input}`);\n}\nexports.omitDefault = omitDefault;\nfunction toDuration(duration) {\n return {\n seconds: BigInt(Math.floor(parseInt(duration) / 1000000000)),\n nanos: parseInt(duration) % 1000000000,\n };\n}\nexports.toDuration = toDuration;\nfunction fromDuration(duration) {\n return (parseInt(duration.seconds.toString()) * 1000000000 + duration.nanos).toString();\n}\nexports.fromDuration = fromDuration;\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\nexports.isSet = isSet;\nfunction isObject(value) {\n return typeof value === \"object\" && value !== null;\n}\nexports.isObject = isObject;\nconst setPaginationParams = (options, pagination) => {\n if (!pagination) {\n return options;\n }\n if (typeof pagination?.countTotal !== \"undefined\") {\n options.params[\"pagination.count_total\"] = pagination.countTotal;\n }\n if (typeof pagination?.key !== \"undefined\") {\n // String to Uint8Array\n // let uint8arr = new Uint8Array(Buffer.from(data,'base64'));\n // Uint8Array to String\n options.params[\"pagination.key\"] = Buffer.from(pagination.key).toString(\"base64\");\n }\n if (typeof pagination?.limit !== \"undefined\") {\n options.params[\"pagination.limit\"] = pagination.limit.toString();\n }\n if (typeof pagination?.offset !== \"undefined\") {\n options.params[\"pagination.offset\"] = pagination.offset.toString();\n }\n if (typeof pagination?.reverse !== \"undefined\") {\n options.params[\"pagination.reverse\"] = pagination.reverse;\n }\n return options;\n};\nexports.setPaginationParams = setPaginationParams;\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return {\n seconds,\n nanos,\n };\n}\nexports.toTimestamp = toTimestamp;\nfunction fromTimestamp(t) {\n let millis = Number(t.seconds) * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nexports.fromTimestamp = fromTimestamp;\nconst timestampFromJSON = (object) => {\n return {\n seconds: isSet(object.seconds) ? BigInt(object.seconds.toString()) : BigInt(0),\n nanos: isSet(object.nanos) ? Number(object.nanos) : 0,\n };\n};\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return toTimestamp(o);\n }\n else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n }\n else {\n return timestampFromJSON(o);\n }\n}\nexports.fromJsonTimestamp = fromJsonTimestamp;\nfunction numberToLong(number) {\n return BigInt(Math.trunc(number));\n}\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryEscrowAddressResponse = exports.QueryEscrowAddressRequest = exports.QueryDenomHashResponse = exports.QueryDenomHashRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryDenomTracesResponse = exports.QueryDenomTracesRequest = exports.QueryDenomTraceResponse = exports.QueryDenomTraceRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst pagination_1 = require(\"../../../../cosmos/base/query/v1beta1/pagination\");\nconst transfer_1 = require(\"./transfer\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.applications.transfer.v1\";\nfunction createBaseQueryDenomTraceRequest() {\n return {\n hash: \"\",\n };\n}\nexports.QueryDenomTraceRequest = {\n typeUrl: \"/ibc.applications.transfer.v1.QueryDenomTraceRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.hash !== \"\") {\n writer.uint32(10).string(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomTraceRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomTraceRequest();\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = String(object.hash);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined && (obj.hash = message.hash);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomTraceRequest();\n message.hash = object.hash ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryDenomTraceResponse() {\n return {\n denomTrace: undefined,\n };\n}\nexports.QueryDenomTraceResponse = {\n typeUrl: \"/ibc.applications.transfer.v1.QueryDenomTraceResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.denomTrace !== undefined) {\n transfer_1.DenomTrace.encode(message.denomTrace, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomTraceResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denomTrace = transfer_1.DenomTrace.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomTraceResponse();\n if ((0, helpers_1.isSet)(object.denomTrace))\n obj.denomTrace = transfer_1.DenomTrace.fromJSON(object.denomTrace);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.denomTrace !== undefined &&\n (obj.denomTrace = message.denomTrace ? transfer_1.DenomTrace.toJSON(message.denomTrace) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomTraceResponse();\n if (object.denomTrace !== undefined && object.denomTrace !== null) {\n message.denomTrace = transfer_1.DenomTrace.fromPartial(object.denomTrace);\n }\n return message;\n },\n};\nfunction createBaseQueryDenomTracesRequest() {\n return {\n pagination: undefined,\n };\n}\nexports.QueryDenomTracesRequest = {\n typeUrl: \"/ibc.applications.transfer.v1.QueryDenomTracesRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomTracesRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomTracesRequest();\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomTracesRequest();\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDenomTracesResponse() {\n return {\n denomTraces: [],\n pagination: undefined,\n };\n}\nexports.QueryDenomTracesResponse = {\n typeUrl: \"/ibc.applications.transfer.v1.QueryDenomTracesResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.denomTraces) {\n transfer_1.DenomTrace.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomTracesResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denomTraces.push(transfer_1.DenomTrace.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomTracesResponse();\n if (Array.isArray(object?.denomTraces))\n obj.denomTraces = object.denomTraces.map((e) => transfer_1.DenomTrace.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.denomTraces) {\n obj.denomTraces = message.denomTraces.map((e) => (e ? transfer_1.DenomTrace.toJSON(e) : undefined));\n }\n else {\n obj.denomTraces = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomTracesResponse();\n message.denomTraces = object.denomTraces?.map((e) => transfer_1.DenomTrace.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryParamsRequest() {\n return {};\n}\nexports.QueryParamsRequest = {\n typeUrl: \"/ibc.applications.transfer.v1.QueryParamsRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryParamsRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryParamsRequest();\n return message;\n },\n};\nfunction createBaseQueryParamsResponse() {\n return {\n params: undefined,\n };\n}\nexports.QueryParamsResponse = {\n typeUrl: \"/ibc.applications.transfer.v1.QueryParamsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.params !== undefined) {\n transfer_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = transfer_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryParamsResponse();\n if ((0, helpers_1.isSet)(object.params))\n obj.params = transfer_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? transfer_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryParamsResponse();\n if (object.params !== undefined && object.params !== null) {\n message.params = transfer_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nfunction createBaseQueryDenomHashRequest() {\n return {\n trace: \"\",\n };\n}\nexports.QueryDenomHashRequest = {\n typeUrl: \"/ibc.applications.transfer.v1.QueryDenomHashRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.trace !== \"\") {\n writer.uint32(10).string(message.trace);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomHashRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.trace = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomHashRequest();\n if ((0, helpers_1.isSet)(object.trace))\n obj.trace = String(object.trace);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.trace !== undefined && (obj.trace = message.trace);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomHashRequest();\n message.trace = object.trace ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryDenomHashResponse() {\n return {\n hash: \"\",\n };\n}\nexports.QueryDenomHashResponse = {\n typeUrl: \"/ibc.applications.transfer.v1.QueryDenomHashResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.hash !== \"\") {\n writer.uint32(10).string(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomHashResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomHashResponse();\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = String(object.hash);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined && (obj.hash = message.hash);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomHashResponse();\n message.hash = object.hash ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryEscrowAddressRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n };\n}\nexports.QueryEscrowAddressRequest = {\n typeUrl: \"/ibc.applications.transfer.v1.QueryEscrowAddressRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryEscrowAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryEscrowAddressRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryEscrowAddressRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryEscrowAddressResponse() {\n return {\n escrowAddress: \"\",\n };\n}\nexports.QueryEscrowAddressResponse = {\n typeUrl: \"/ibc.applications.transfer.v1.QueryEscrowAddressResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.escrowAddress !== \"\") {\n writer.uint32(10).string(message.escrowAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryEscrowAddressResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.escrowAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryEscrowAddressResponse();\n if ((0, helpers_1.isSet)(object.escrowAddress))\n obj.escrowAddress = String(object.escrowAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.escrowAddress !== undefined && (obj.escrowAddress = message.escrowAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryEscrowAddressResponse();\n message.escrowAddress = object.escrowAddress ?? \"\";\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.DenomTrace = this.DenomTrace.bind(this);\n this.DenomTraces = this.DenomTraces.bind(this);\n this.Params = this.Params.bind(this);\n this.DenomHash = this.DenomHash.bind(this);\n this.EscrowAddress = this.EscrowAddress.bind(this);\n }\n DenomTrace(request) {\n const data = exports.QueryDenomTraceRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.applications.transfer.v1.Query\", \"DenomTrace\", data);\n return promise.then((data) => exports.QueryDenomTraceResponse.decode(new binary_1.BinaryReader(data)));\n }\n DenomTraces(request = {\n pagination: pagination_1.PageRequest.fromPartial({}),\n }) {\n const data = exports.QueryDenomTracesRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.applications.transfer.v1.Query\", \"DenomTraces\", data);\n return promise.then((data) => exports.QueryDenomTracesResponse.decode(new binary_1.BinaryReader(data)));\n }\n Params(request = {}) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.applications.transfer.v1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n DenomHash(request) {\n const data = exports.QueryDenomHashRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.applications.transfer.v1.Query\", \"DenomHash\", data);\n return promise.then((data) => exports.QueryDenomHashResponse.decode(new binary_1.BinaryReader(data)));\n }\n EscrowAddress(request) {\n const data = exports.QueryEscrowAddressRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.applications.transfer.v1.Query\", \"EscrowAddress\", data);\n return promise.then((data) => exports.QueryEscrowAddressResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.DenomTrace = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.applications.transfer.v1\";\nfunction createBaseDenomTrace() {\n return {\n path: \"\",\n baseDenom: \"\",\n };\n}\nexports.DenomTrace = {\n typeUrl: \"/ibc.applications.transfer.v1.DenomTrace\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.path !== \"\") {\n writer.uint32(10).string(message.path);\n }\n if (message.baseDenom !== \"\") {\n writer.uint32(18).string(message.baseDenom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDenomTrace();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.path = reader.string();\n break;\n case 2:\n message.baseDenom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDenomTrace();\n if ((0, helpers_1.isSet)(object.path))\n obj.path = String(object.path);\n if ((0, helpers_1.isSet)(object.baseDenom))\n obj.baseDenom = String(object.baseDenom);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.path !== undefined && (obj.path = message.path);\n message.baseDenom !== undefined && (obj.baseDenom = message.baseDenom);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDenomTrace();\n message.path = object.path ?? \"\";\n message.baseDenom = object.baseDenom ?? \"\";\n return message;\n },\n};\nfunction createBaseParams() {\n return {\n sendEnabled: false,\n receiveEnabled: false,\n };\n}\nexports.Params = {\n typeUrl: \"/ibc.applications.transfer.v1.Params\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.sendEnabled === true) {\n writer.uint32(8).bool(message.sendEnabled);\n }\n if (message.receiveEnabled === true) {\n writer.uint32(16).bool(message.receiveEnabled);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sendEnabled = reader.bool();\n break;\n case 2:\n message.receiveEnabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseParams();\n if ((0, helpers_1.isSet)(object.sendEnabled))\n obj.sendEnabled = Boolean(object.sendEnabled);\n if ((0, helpers_1.isSet)(object.receiveEnabled))\n obj.receiveEnabled = Boolean(object.receiveEnabled);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.sendEnabled !== undefined && (obj.sendEnabled = message.sendEnabled);\n message.receiveEnabled !== undefined && (obj.receiveEnabled = message.receiveEnabled);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseParams();\n message.sendEnabled = object.sendEnabled ?? false;\n message.receiveEnabled = object.receiveEnabled ?? false;\n return message;\n },\n};\n//# sourceMappingURL=transfer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgTransferResponse = exports.MsgTransfer = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst coin_1 = require(\"../../../../cosmos/base/v1beta1/coin\");\nconst client_1 = require(\"../../../core/client/v1/client\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.applications.transfer.v1\";\nfunction createBaseMsgTransfer() {\n return {\n sourcePort: \"\",\n sourceChannel: \"\",\n token: coin_1.Coin.fromPartial({}),\n sender: \"\",\n receiver: \"\",\n timeoutHeight: client_1.Height.fromPartial({}),\n timeoutTimestamp: BigInt(0),\n memo: \"\",\n };\n}\nexports.MsgTransfer = {\n typeUrl: \"/ibc.applications.transfer.v1.MsgTransfer\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.sourcePort !== \"\") {\n writer.uint32(10).string(message.sourcePort);\n }\n if (message.sourceChannel !== \"\") {\n writer.uint32(18).string(message.sourceChannel);\n }\n if (message.token !== undefined) {\n coin_1.Coin.encode(message.token, writer.uint32(26).fork()).ldelim();\n }\n if (message.sender !== \"\") {\n writer.uint32(34).string(message.sender);\n }\n if (message.receiver !== \"\") {\n writer.uint32(42).string(message.receiver);\n }\n if (message.timeoutHeight !== undefined) {\n client_1.Height.encode(message.timeoutHeight, writer.uint32(50).fork()).ldelim();\n }\n if (message.timeoutTimestamp !== BigInt(0)) {\n writer.uint32(56).uint64(message.timeoutTimestamp);\n }\n if (message.memo !== \"\") {\n writer.uint32(66).string(message.memo);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgTransfer();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sourcePort = reader.string();\n break;\n case 2:\n message.sourceChannel = reader.string();\n break;\n case 3:\n message.token = coin_1.Coin.decode(reader, reader.uint32());\n break;\n case 4:\n message.sender = reader.string();\n break;\n case 5:\n message.receiver = reader.string();\n break;\n case 6:\n message.timeoutHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 7:\n message.timeoutTimestamp = reader.uint64();\n break;\n case 8:\n message.memo = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgTransfer();\n if ((0, helpers_1.isSet)(object.sourcePort))\n obj.sourcePort = String(object.sourcePort);\n if ((0, helpers_1.isSet)(object.sourceChannel))\n obj.sourceChannel = String(object.sourceChannel);\n if ((0, helpers_1.isSet)(object.token))\n obj.token = coin_1.Coin.fromJSON(object.token);\n if ((0, helpers_1.isSet)(object.sender))\n obj.sender = String(object.sender);\n if ((0, helpers_1.isSet)(object.receiver))\n obj.receiver = String(object.receiver);\n if ((0, helpers_1.isSet)(object.timeoutHeight))\n obj.timeoutHeight = client_1.Height.fromJSON(object.timeoutHeight);\n if ((0, helpers_1.isSet)(object.timeoutTimestamp))\n obj.timeoutTimestamp = BigInt(object.timeoutTimestamp.toString());\n if ((0, helpers_1.isSet)(object.memo))\n obj.memo = String(object.memo);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.sourcePort !== undefined && (obj.sourcePort = message.sourcePort);\n message.sourceChannel !== undefined && (obj.sourceChannel = message.sourceChannel);\n message.token !== undefined && (obj.token = message.token ? coin_1.Coin.toJSON(message.token) : undefined);\n message.sender !== undefined && (obj.sender = message.sender);\n message.receiver !== undefined && (obj.receiver = message.receiver);\n message.timeoutHeight !== undefined &&\n (obj.timeoutHeight = message.timeoutHeight ? client_1.Height.toJSON(message.timeoutHeight) : undefined);\n message.timeoutTimestamp !== undefined &&\n (obj.timeoutTimestamp = (message.timeoutTimestamp || BigInt(0)).toString());\n message.memo !== undefined && (obj.memo = message.memo);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgTransfer();\n message.sourcePort = object.sourcePort ?? \"\";\n message.sourceChannel = object.sourceChannel ?? \"\";\n if (object.token !== undefined && object.token !== null) {\n message.token = coin_1.Coin.fromPartial(object.token);\n }\n message.sender = object.sender ?? \"\";\n message.receiver = object.receiver ?? \"\";\n if (object.timeoutHeight !== undefined && object.timeoutHeight !== null) {\n message.timeoutHeight = client_1.Height.fromPartial(object.timeoutHeight);\n }\n if (object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null) {\n message.timeoutTimestamp = BigInt(object.timeoutTimestamp.toString());\n }\n message.memo = object.memo ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgTransferResponse() {\n return {\n sequence: BigInt(0),\n };\n}\nexports.MsgTransferResponse = {\n typeUrl: \"/ibc.applications.transfer.v1.MsgTransferResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.sequence !== BigInt(0)) {\n writer.uint32(8).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgTransferResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgTransferResponse();\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgTransferResponse();\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Transfer = this.Transfer.bind(this);\n }\n Transfer(request) {\n const data = exports.MsgTransfer.encode(request).finish();\n const promise = this.rpc.request(\"ibc.applications.transfer.v1.Msg\", \"Transfer\", data);\n return promise.then((data) => exports.MsgTransferResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Acknowledgement = exports.PacketId = exports.PacketState = exports.Packet = exports.Counterparty = exports.IdentifiedChannel = exports.Channel = exports.orderToJSON = exports.orderFromJSON = exports.Order = exports.stateToJSON = exports.stateFromJSON = exports.State = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst client_1 = require(\"../../client/v1/client\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.core.channel.v1\";\n/**\n * State defines if a channel is in one of the following states:\n * CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED.\n */\nvar State;\n(function (State) {\n /** STATE_UNINITIALIZED_UNSPECIFIED - Default State */\n State[State[\"STATE_UNINITIALIZED_UNSPECIFIED\"] = 0] = \"STATE_UNINITIALIZED_UNSPECIFIED\";\n /** STATE_INIT - A channel has just started the opening handshake. */\n State[State[\"STATE_INIT\"] = 1] = \"STATE_INIT\";\n /** STATE_TRYOPEN - A channel has acknowledged the handshake step on the counterparty chain. */\n State[State[\"STATE_TRYOPEN\"] = 2] = \"STATE_TRYOPEN\";\n /**\n * STATE_OPEN - A channel has completed the handshake. Open channels are\n * ready to send and receive packets.\n */\n State[State[\"STATE_OPEN\"] = 3] = \"STATE_OPEN\";\n /**\n * STATE_CLOSED - A channel has been closed and can no longer be used to send or receive\n * packets.\n */\n State[State[\"STATE_CLOSED\"] = 4] = \"STATE_CLOSED\";\n State[State[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(State || (exports.State = State = {}));\nfunction stateFromJSON(object) {\n switch (object) {\n case 0:\n case \"STATE_UNINITIALIZED_UNSPECIFIED\":\n return State.STATE_UNINITIALIZED_UNSPECIFIED;\n case 1:\n case \"STATE_INIT\":\n return State.STATE_INIT;\n case 2:\n case \"STATE_TRYOPEN\":\n return State.STATE_TRYOPEN;\n case 3:\n case \"STATE_OPEN\":\n return State.STATE_OPEN;\n case 4:\n case \"STATE_CLOSED\":\n return State.STATE_CLOSED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return State.UNRECOGNIZED;\n }\n}\nexports.stateFromJSON = stateFromJSON;\nfunction stateToJSON(object) {\n switch (object) {\n case State.STATE_UNINITIALIZED_UNSPECIFIED:\n return \"STATE_UNINITIALIZED_UNSPECIFIED\";\n case State.STATE_INIT:\n return \"STATE_INIT\";\n case State.STATE_TRYOPEN:\n return \"STATE_TRYOPEN\";\n case State.STATE_OPEN:\n return \"STATE_OPEN\";\n case State.STATE_CLOSED:\n return \"STATE_CLOSED\";\n case State.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.stateToJSON = stateToJSON;\n/** Order defines if a channel is ORDERED or UNORDERED */\nvar Order;\n(function (Order) {\n /** ORDER_NONE_UNSPECIFIED - zero-value for channel ordering */\n Order[Order[\"ORDER_NONE_UNSPECIFIED\"] = 0] = \"ORDER_NONE_UNSPECIFIED\";\n /**\n * ORDER_UNORDERED - packets can be delivered in any order, which may differ from the order in\n * which they were sent.\n */\n Order[Order[\"ORDER_UNORDERED\"] = 1] = \"ORDER_UNORDERED\";\n /** ORDER_ORDERED - packets are delivered exactly in the order which they were sent */\n Order[Order[\"ORDER_ORDERED\"] = 2] = \"ORDER_ORDERED\";\n Order[Order[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(Order || (exports.Order = Order = {}));\nfunction orderFromJSON(object) {\n switch (object) {\n case 0:\n case \"ORDER_NONE_UNSPECIFIED\":\n return Order.ORDER_NONE_UNSPECIFIED;\n case 1:\n case \"ORDER_UNORDERED\":\n return Order.ORDER_UNORDERED;\n case 2:\n case \"ORDER_ORDERED\":\n return Order.ORDER_ORDERED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return Order.UNRECOGNIZED;\n }\n}\nexports.orderFromJSON = orderFromJSON;\nfunction orderToJSON(object) {\n switch (object) {\n case Order.ORDER_NONE_UNSPECIFIED:\n return \"ORDER_NONE_UNSPECIFIED\";\n case Order.ORDER_UNORDERED:\n return \"ORDER_UNORDERED\";\n case Order.ORDER_ORDERED:\n return \"ORDER_ORDERED\";\n case Order.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.orderToJSON = orderToJSON;\nfunction createBaseChannel() {\n return {\n state: 0,\n ordering: 0,\n counterparty: exports.Counterparty.fromPartial({}),\n connectionHops: [],\n version: \"\",\n };\n}\nexports.Channel = {\n typeUrl: \"/ibc.core.channel.v1.Channel\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.state !== 0) {\n writer.uint32(8).int32(message.state);\n }\n if (message.ordering !== 0) {\n writer.uint32(16).int32(message.ordering);\n }\n if (message.counterparty !== undefined) {\n exports.Counterparty.encode(message.counterparty, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.connectionHops) {\n writer.uint32(34).string(v);\n }\n if (message.version !== \"\") {\n writer.uint32(42).string(message.version);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseChannel();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.state = reader.int32();\n break;\n case 2:\n message.ordering = reader.int32();\n break;\n case 3:\n message.counterparty = exports.Counterparty.decode(reader, reader.uint32());\n break;\n case 4:\n message.connectionHops.push(reader.string());\n break;\n case 5:\n message.version = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseChannel();\n if ((0, helpers_1.isSet)(object.state))\n obj.state = stateFromJSON(object.state);\n if ((0, helpers_1.isSet)(object.ordering))\n obj.ordering = orderFromJSON(object.ordering);\n if ((0, helpers_1.isSet)(object.counterparty))\n obj.counterparty = exports.Counterparty.fromJSON(object.counterparty);\n if (Array.isArray(object?.connectionHops))\n obj.connectionHops = object.connectionHops.map((e) => String(e));\n if ((0, helpers_1.isSet)(object.version))\n obj.version = String(object.version);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.ordering !== undefined && (obj.ordering = orderToJSON(message.ordering));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? exports.Counterparty.toJSON(message.counterparty) : undefined);\n if (message.connectionHops) {\n obj.connectionHops = message.connectionHops.map((e) => e);\n }\n else {\n obj.connectionHops = [];\n }\n message.version !== undefined && (obj.version = message.version);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseChannel();\n message.state = object.state ?? 0;\n message.ordering = object.ordering ?? 0;\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = exports.Counterparty.fromPartial(object.counterparty);\n }\n message.connectionHops = object.connectionHops?.map((e) => e) || [];\n message.version = object.version ?? \"\";\n return message;\n },\n};\nfunction createBaseIdentifiedChannel() {\n return {\n state: 0,\n ordering: 0,\n counterparty: exports.Counterparty.fromPartial({}),\n connectionHops: [],\n version: \"\",\n portId: \"\",\n channelId: \"\",\n };\n}\nexports.IdentifiedChannel = {\n typeUrl: \"/ibc.core.channel.v1.IdentifiedChannel\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.state !== 0) {\n writer.uint32(8).int32(message.state);\n }\n if (message.ordering !== 0) {\n writer.uint32(16).int32(message.ordering);\n }\n if (message.counterparty !== undefined) {\n exports.Counterparty.encode(message.counterparty, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.connectionHops) {\n writer.uint32(34).string(v);\n }\n if (message.version !== \"\") {\n writer.uint32(42).string(message.version);\n }\n if (message.portId !== \"\") {\n writer.uint32(50).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(58).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseIdentifiedChannel();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.state = reader.int32();\n break;\n case 2:\n message.ordering = reader.int32();\n break;\n case 3:\n message.counterparty = exports.Counterparty.decode(reader, reader.uint32());\n break;\n case 4:\n message.connectionHops.push(reader.string());\n break;\n case 5:\n message.version = reader.string();\n break;\n case 6:\n message.portId = reader.string();\n break;\n case 7:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseIdentifiedChannel();\n if ((0, helpers_1.isSet)(object.state))\n obj.state = stateFromJSON(object.state);\n if ((0, helpers_1.isSet)(object.ordering))\n obj.ordering = orderFromJSON(object.ordering);\n if ((0, helpers_1.isSet)(object.counterparty))\n obj.counterparty = exports.Counterparty.fromJSON(object.counterparty);\n if (Array.isArray(object?.connectionHops))\n obj.connectionHops = object.connectionHops.map((e) => String(e));\n if ((0, helpers_1.isSet)(object.version))\n obj.version = String(object.version);\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.ordering !== undefined && (obj.ordering = orderToJSON(message.ordering));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? exports.Counterparty.toJSON(message.counterparty) : undefined);\n if (message.connectionHops) {\n obj.connectionHops = message.connectionHops.map((e) => e);\n }\n else {\n obj.connectionHops = [];\n }\n message.version !== undefined && (obj.version = message.version);\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseIdentifiedChannel();\n message.state = object.state ?? 0;\n message.ordering = object.ordering ?? 0;\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = exports.Counterparty.fromPartial(object.counterparty);\n }\n message.connectionHops = object.connectionHops?.map((e) => e) || [];\n message.version = object.version ?? \"\";\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n return message;\n },\n};\nfunction createBaseCounterparty() {\n return {\n portId: \"\",\n channelId: \"\",\n };\n}\nexports.Counterparty = {\n typeUrl: \"/ibc.core.channel.v1.Counterparty\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCounterparty();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCounterparty();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCounterparty();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n return message;\n },\n};\nfunction createBasePacket() {\n return {\n sequence: BigInt(0),\n sourcePort: \"\",\n sourceChannel: \"\",\n destinationPort: \"\",\n destinationChannel: \"\",\n data: new Uint8Array(),\n timeoutHeight: client_1.Height.fromPartial({}),\n timeoutTimestamp: BigInt(0),\n };\n}\nexports.Packet = {\n typeUrl: \"/ibc.core.channel.v1.Packet\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.sequence !== BigInt(0)) {\n writer.uint32(8).uint64(message.sequence);\n }\n if (message.sourcePort !== \"\") {\n writer.uint32(18).string(message.sourcePort);\n }\n if (message.sourceChannel !== \"\") {\n writer.uint32(26).string(message.sourceChannel);\n }\n if (message.destinationPort !== \"\") {\n writer.uint32(34).string(message.destinationPort);\n }\n if (message.destinationChannel !== \"\") {\n writer.uint32(42).string(message.destinationChannel);\n }\n if (message.data.length !== 0) {\n writer.uint32(50).bytes(message.data);\n }\n if (message.timeoutHeight !== undefined) {\n client_1.Height.encode(message.timeoutHeight, writer.uint32(58).fork()).ldelim();\n }\n if (message.timeoutTimestamp !== BigInt(0)) {\n writer.uint32(64).uint64(message.timeoutTimestamp);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePacket();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sequence = reader.uint64();\n break;\n case 2:\n message.sourcePort = reader.string();\n break;\n case 3:\n message.sourceChannel = reader.string();\n break;\n case 4:\n message.destinationPort = reader.string();\n break;\n case 5:\n message.destinationChannel = reader.string();\n break;\n case 6:\n message.data = reader.bytes();\n break;\n case 7:\n message.timeoutHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 8:\n message.timeoutTimestamp = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePacket();\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n if ((0, helpers_1.isSet)(object.sourcePort))\n obj.sourcePort = String(object.sourcePort);\n if ((0, helpers_1.isSet)(object.sourceChannel))\n obj.sourceChannel = String(object.sourceChannel);\n if ((0, helpers_1.isSet)(object.destinationPort))\n obj.destinationPort = String(object.destinationPort);\n if ((0, helpers_1.isSet)(object.destinationChannel))\n obj.destinationChannel = String(object.destinationChannel);\n if ((0, helpers_1.isSet)(object.data))\n obj.data = (0, helpers_1.bytesFromBase64)(object.data);\n if ((0, helpers_1.isSet)(object.timeoutHeight))\n obj.timeoutHeight = client_1.Height.fromJSON(object.timeoutHeight);\n if ((0, helpers_1.isSet)(object.timeoutTimestamp))\n obj.timeoutTimestamp = BigInt(object.timeoutTimestamp.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n message.sourcePort !== undefined && (obj.sourcePort = message.sourcePort);\n message.sourceChannel !== undefined && (obj.sourceChannel = message.sourceChannel);\n message.destinationPort !== undefined && (obj.destinationPort = message.destinationPort);\n message.destinationChannel !== undefined && (obj.destinationChannel = message.destinationChannel);\n message.data !== undefined &&\n (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array()));\n message.timeoutHeight !== undefined &&\n (obj.timeoutHeight = message.timeoutHeight ? client_1.Height.toJSON(message.timeoutHeight) : undefined);\n message.timeoutTimestamp !== undefined &&\n (obj.timeoutTimestamp = (message.timeoutTimestamp || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBasePacket();\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n message.sourcePort = object.sourcePort ?? \"\";\n message.sourceChannel = object.sourceChannel ?? \"\";\n message.destinationPort = object.destinationPort ?? \"\";\n message.destinationChannel = object.destinationChannel ?? \"\";\n message.data = object.data ?? new Uint8Array();\n if (object.timeoutHeight !== undefined && object.timeoutHeight !== null) {\n message.timeoutHeight = client_1.Height.fromPartial(object.timeoutHeight);\n }\n if (object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null) {\n message.timeoutTimestamp = BigInt(object.timeoutTimestamp.toString());\n }\n return message;\n },\n};\nfunction createBasePacketState() {\n return {\n portId: \"\",\n channelId: \"\",\n sequence: BigInt(0),\n data: new Uint8Array(),\n };\n}\nexports.PacketState = {\n typeUrl: \"/ibc.core.channel.v1.PacketState\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.sequence !== BigInt(0)) {\n writer.uint32(24).uint64(message.sequence);\n }\n if (message.data.length !== 0) {\n writer.uint32(34).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePacketState();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n case 4:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePacketState();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n if ((0, helpers_1.isSet)(object.data))\n obj.data = (0, helpers_1.bytesFromBase64)(object.data);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n message.data !== undefined &&\n (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBasePacketState();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n message.data = object.data ?? new Uint8Array();\n return message;\n },\n};\nfunction createBasePacketId() {\n return {\n portId: \"\",\n channelId: \"\",\n sequence: BigInt(0),\n };\n}\nexports.PacketId = {\n typeUrl: \"/ibc.core.channel.v1.PacketId\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.sequence !== BigInt(0)) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePacketId();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePacketId();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBasePacketId();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n return message;\n },\n};\nfunction createBaseAcknowledgement() {\n return {\n result: undefined,\n error: undefined,\n };\n}\nexports.Acknowledgement = {\n typeUrl: \"/ibc.core.channel.v1.Acknowledgement\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.result !== undefined) {\n writer.uint32(170).bytes(message.result);\n }\n if (message.error !== undefined) {\n writer.uint32(178).string(message.error);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAcknowledgement();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 21:\n message.result = reader.bytes();\n break;\n case 22:\n message.error = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseAcknowledgement();\n if ((0, helpers_1.isSet)(object.result))\n obj.result = (0, helpers_1.bytesFromBase64)(object.result);\n if ((0, helpers_1.isSet)(object.error))\n obj.error = String(object.error);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined &&\n (obj.result = message.result !== undefined ? (0, helpers_1.base64FromBytes)(message.result) : undefined);\n message.error !== undefined && (obj.error = message.error);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseAcknowledgement();\n message.result = object.result ?? undefined;\n message.error = object.error ?? undefined;\n return message;\n },\n};\n//# sourceMappingURL=channel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryNextSequenceReceiveResponse = exports.QueryNextSequenceReceiveRequest = exports.QueryUnreceivedAcksResponse = exports.QueryUnreceivedAcksRequest = exports.QueryUnreceivedPacketsResponse = exports.QueryUnreceivedPacketsRequest = exports.QueryPacketAcknowledgementsResponse = exports.QueryPacketAcknowledgementsRequest = exports.QueryPacketAcknowledgementResponse = exports.QueryPacketAcknowledgementRequest = exports.QueryPacketReceiptResponse = exports.QueryPacketReceiptRequest = exports.QueryPacketCommitmentsResponse = exports.QueryPacketCommitmentsRequest = exports.QueryPacketCommitmentResponse = exports.QueryPacketCommitmentRequest = exports.QueryChannelConsensusStateResponse = exports.QueryChannelConsensusStateRequest = exports.QueryChannelClientStateResponse = exports.QueryChannelClientStateRequest = exports.QueryConnectionChannelsResponse = exports.QueryConnectionChannelsRequest = exports.QueryChannelsResponse = exports.QueryChannelsRequest = exports.QueryChannelResponse = exports.QueryChannelRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst pagination_1 = require(\"../../../../cosmos/base/query/v1beta1/pagination\");\nconst channel_1 = require(\"./channel\");\nconst client_1 = require(\"../../client/v1/client\");\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.core.channel.v1\";\nfunction createBaseQueryChannelRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n };\n}\nexports.QueryChannelRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryChannelRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryChannelRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryChannelRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryChannelRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryChannelResponse() {\n return {\n channel: undefined,\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryChannelResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryChannelResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.channel !== undefined) {\n channel_1.Channel.encode(message.channel, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryChannelResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.channel = channel_1.Channel.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryChannelResponse();\n if ((0, helpers_1.isSet)(object.channel))\n obj.channel = channel_1.Channel.fromJSON(object.channel);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.channel !== undefined &&\n (obj.channel = message.channel ? channel_1.Channel.toJSON(message.channel) : undefined);\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryChannelResponse();\n if (object.channel !== undefined && object.channel !== null) {\n message.channel = channel_1.Channel.fromPartial(object.channel);\n }\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryChannelsRequest() {\n return {\n pagination: undefined,\n };\n}\nexports.QueryChannelsRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryChannelsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryChannelsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryChannelsRequest();\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryChannelsRequest();\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryChannelsResponse() {\n return {\n channels: [],\n pagination: undefined,\n height: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryChannelsResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryChannelsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.channels) {\n channel_1.IdentifiedChannel.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryChannelsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.channels.push(channel_1.IdentifiedChannel.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryChannelsResponse();\n if (Array.isArray(object?.channels))\n obj.channels = object.channels.map((e) => channel_1.IdentifiedChannel.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = client_1.Height.fromJSON(object.height);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.channels) {\n obj.channels = message.channels.map((e) => (e ? channel_1.IdentifiedChannel.toJSON(e) : undefined));\n }\n else {\n obj.channels = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryChannelsResponse();\n message.channels = object.channels?.map((e) => channel_1.IdentifiedChannel.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = client_1.Height.fromPartial(object.height);\n }\n return message;\n },\n};\nfunction createBaseQueryConnectionChannelsRequest() {\n return {\n connection: \"\",\n pagination: undefined,\n };\n}\nexports.QueryConnectionChannelsRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryConnectionChannelsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.connection !== \"\") {\n writer.uint32(10).string(message.connection);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionChannelsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connection = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConnectionChannelsRequest();\n if ((0, helpers_1.isSet)(object.connection))\n obj.connection = String(object.connection);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.connection !== undefined && (obj.connection = message.connection);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConnectionChannelsRequest();\n message.connection = object.connection ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryConnectionChannelsResponse() {\n return {\n channels: [],\n pagination: undefined,\n height: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryConnectionChannelsResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryConnectionChannelsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.channels) {\n channel_1.IdentifiedChannel.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionChannelsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.channels.push(channel_1.IdentifiedChannel.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConnectionChannelsResponse();\n if (Array.isArray(object?.channels))\n obj.channels = object.channels.map((e) => channel_1.IdentifiedChannel.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = client_1.Height.fromJSON(object.height);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.channels) {\n obj.channels = message.channels.map((e) => (e ? channel_1.IdentifiedChannel.toJSON(e) : undefined));\n }\n else {\n obj.channels = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConnectionChannelsResponse();\n message.channels = object.channels?.map((e) => channel_1.IdentifiedChannel.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = client_1.Height.fromPartial(object.height);\n }\n return message;\n },\n};\nfunction createBaseQueryChannelClientStateRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n };\n}\nexports.QueryChannelClientStateRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryChannelClientStateRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryChannelClientStateRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryChannelClientStateRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryChannelClientStateRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryChannelClientStateResponse() {\n return {\n identifiedClientState: undefined,\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryChannelClientStateResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryChannelClientStateResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.identifiedClientState !== undefined) {\n client_1.IdentifiedClientState.encode(message.identifiedClientState, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryChannelClientStateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.identifiedClientState = client_1.IdentifiedClientState.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryChannelClientStateResponse();\n if ((0, helpers_1.isSet)(object.identifiedClientState))\n obj.identifiedClientState = client_1.IdentifiedClientState.fromJSON(object.identifiedClientState);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.identifiedClientState !== undefined &&\n (obj.identifiedClientState = message.identifiedClientState\n ? client_1.IdentifiedClientState.toJSON(message.identifiedClientState)\n : undefined);\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryChannelClientStateResponse();\n if (object.identifiedClientState !== undefined && object.identifiedClientState !== null) {\n message.identifiedClientState = client_1.IdentifiedClientState.fromPartial(object.identifiedClientState);\n }\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryChannelConsensusStateRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n revisionNumber: BigInt(0),\n revisionHeight: BigInt(0),\n };\n}\nexports.QueryChannelConsensusStateRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryChannelConsensusStateRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.revisionNumber !== BigInt(0)) {\n writer.uint32(24).uint64(message.revisionNumber);\n }\n if (message.revisionHeight !== BigInt(0)) {\n writer.uint32(32).uint64(message.revisionHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryChannelConsensusStateRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.revisionNumber = reader.uint64();\n break;\n case 4:\n message.revisionHeight = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryChannelConsensusStateRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.revisionNumber))\n obj.revisionNumber = BigInt(object.revisionNumber.toString());\n if ((0, helpers_1.isSet)(object.revisionHeight))\n obj.revisionHeight = BigInt(object.revisionHeight.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.revisionNumber !== undefined &&\n (obj.revisionNumber = (message.revisionNumber || BigInt(0)).toString());\n message.revisionHeight !== undefined &&\n (obj.revisionHeight = (message.revisionHeight || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryChannelConsensusStateRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n if (object.revisionNumber !== undefined && object.revisionNumber !== null) {\n message.revisionNumber = BigInt(object.revisionNumber.toString());\n }\n if (object.revisionHeight !== undefined && object.revisionHeight !== null) {\n message.revisionHeight = BigInt(object.revisionHeight.toString());\n }\n return message;\n },\n};\nfunction createBaseQueryChannelConsensusStateResponse() {\n return {\n consensusState: undefined,\n clientId: \"\",\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryChannelConsensusStateResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryChannelConsensusStateResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(10).fork()).ldelim();\n }\n if (message.clientId !== \"\") {\n writer.uint32(18).string(message.clientId);\n }\n if (message.proof.length !== 0) {\n writer.uint32(26).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryChannelConsensusStateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.clientId = reader.string();\n break;\n case 3:\n message.proof = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryChannelConsensusStateResponse();\n if ((0, helpers_1.isSet)(object.consensusState))\n obj.consensusState = any_1.Any.fromJSON(object.consensusState);\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryChannelConsensusStateResponse();\n if (object.consensusState !== undefined && object.consensusState !== null) {\n message.consensusState = any_1.Any.fromPartial(object.consensusState);\n }\n message.clientId = object.clientId ?? \"\";\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryPacketCommitmentRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n sequence: BigInt(0),\n };\n}\nexports.QueryPacketCommitmentRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryPacketCommitmentRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.sequence !== BigInt(0)) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPacketCommitmentRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryPacketCommitmentRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryPacketCommitmentRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n return message;\n },\n};\nfunction createBaseQueryPacketCommitmentResponse() {\n return {\n commitment: new Uint8Array(),\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryPacketCommitmentResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryPacketCommitmentResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.commitment.length !== 0) {\n writer.uint32(10).bytes(message.commitment);\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPacketCommitmentResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commitment = reader.bytes();\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryPacketCommitmentResponse();\n if ((0, helpers_1.isSet)(object.commitment))\n obj.commitment = (0, helpers_1.bytesFromBase64)(object.commitment);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.commitment !== undefined &&\n (obj.commitment = (0, helpers_1.base64FromBytes)(message.commitment !== undefined ? message.commitment : new Uint8Array()));\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryPacketCommitmentResponse();\n message.commitment = object.commitment ?? new Uint8Array();\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryPacketCommitmentsRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n pagination: undefined,\n };\n}\nexports.QueryPacketCommitmentsRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryPacketCommitmentsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPacketCommitmentsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryPacketCommitmentsRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryPacketCommitmentsRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryPacketCommitmentsResponse() {\n return {\n commitments: [],\n pagination: undefined,\n height: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryPacketCommitmentsResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryPacketCommitmentsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.commitments) {\n channel_1.PacketState.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPacketCommitmentsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commitments.push(channel_1.PacketState.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryPacketCommitmentsResponse();\n if (Array.isArray(object?.commitments))\n obj.commitments = object.commitments.map((e) => channel_1.PacketState.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = client_1.Height.fromJSON(object.height);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.commitments) {\n obj.commitments = message.commitments.map((e) => (e ? channel_1.PacketState.toJSON(e) : undefined));\n }\n else {\n obj.commitments = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryPacketCommitmentsResponse();\n message.commitments = object.commitments?.map((e) => channel_1.PacketState.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = client_1.Height.fromPartial(object.height);\n }\n return message;\n },\n};\nfunction createBaseQueryPacketReceiptRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n sequence: BigInt(0),\n };\n}\nexports.QueryPacketReceiptRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryPacketReceiptRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.sequence !== BigInt(0)) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPacketReceiptRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryPacketReceiptRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryPacketReceiptRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n return message;\n },\n};\nfunction createBaseQueryPacketReceiptResponse() {\n return {\n received: false,\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryPacketReceiptResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryPacketReceiptResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.received === true) {\n writer.uint32(16).bool(message.received);\n }\n if (message.proof.length !== 0) {\n writer.uint32(26).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPacketReceiptResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 2:\n message.received = reader.bool();\n break;\n case 3:\n message.proof = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryPacketReceiptResponse();\n if ((0, helpers_1.isSet)(object.received))\n obj.received = Boolean(object.received);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.received !== undefined && (obj.received = message.received);\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryPacketReceiptResponse();\n message.received = object.received ?? false;\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryPacketAcknowledgementRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n sequence: BigInt(0),\n };\n}\nexports.QueryPacketAcknowledgementRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryPacketAcknowledgementRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.sequence !== BigInt(0)) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPacketAcknowledgementRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryPacketAcknowledgementRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryPacketAcknowledgementRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n return message;\n },\n};\nfunction createBaseQueryPacketAcknowledgementResponse() {\n return {\n acknowledgement: new Uint8Array(),\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryPacketAcknowledgementResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryPacketAcknowledgementResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.acknowledgement.length !== 0) {\n writer.uint32(10).bytes(message.acknowledgement);\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPacketAcknowledgementResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.acknowledgement = reader.bytes();\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryPacketAcknowledgementResponse();\n if ((0, helpers_1.isSet)(object.acknowledgement))\n obj.acknowledgement = (0, helpers_1.bytesFromBase64)(object.acknowledgement);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.acknowledgement !== undefined &&\n (obj.acknowledgement = (0, helpers_1.base64FromBytes)(message.acknowledgement !== undefined ? message.acknowledgement : new Uint8Array()));\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryPacketAcknowledgementResponse();\n message.acknowledgement = object.acknowledgement ?? new Uint8Array();\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryPacketAcknowledgementsRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n pagination: undefined,\n packetCommitmentSequences: [],\n };\n}\nexports.QueryPacketAcknowledgementsRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryPacketAcknowledgementsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(26).fork()).ldelim();\n }\n writer.uint32(34).fork();\n for (const v of message.packetCommitmentSequences) {\n writer.uint64(v);\n }\n writer.ldelim();\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPacketAcknowledgementsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n case 4:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.packetCommitmentSequences.push(reader.uint64());\n }\n }\n else {\n message.packetCommitmentSequences.push(reader.uint64());\n }\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryPacketAcknowledgementsRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n if (Array.isArray(object?.packetCommitmentSequences))\n obj.packetCommitmentSequences = object.packetCommitmentSequences.map((e) => BigInt(e.toString()));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n if (message.packetCommitmentSequences) {\n obj.packetCommitmentSequences = message.packetCommitmentSequences.map((e) => (e || BigInt(0)).toString());\n }\n else {\n obj.packetCommitmentSequences = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryPacketAcknowledgementsRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n message.packetCommitmentSequences =\n object.packetCommitmentSequences?.map((e) => BigInt(e.toString())) || [];\n return message;\n },\n};\nfunction createBaseQueryPacketAcknowledgementsResponse() {\n return {\n acknowledgements: [],\n pagination: undefined,\n height: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryPacketAcknowledgementsResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryPacketAcknowledgementsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.acknowledgements) {\n channel_1.PacketState.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPacketAcknowledgementsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.acknowledgements.push(channel_1.PacketState.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryPacketAcknowledgementsResponse();\n if (Array.isArray(object?.acknowledgements))\n obj.acknowledgements = object.acknowledgements.map((e) => channel_1.PacketState.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = client_1.Height.fromJSON(object.height);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.acknowledgements) {\n obj.acknowledgements = message.acknowledgements.map((e) => (e ? channel_1.PacketState.toJSON(e) : undefined));\n }\n else {\n obj.acknowledgements = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryPacketAcknowledgementsResponse();\n message.acknowledgements = object.acknowledgements?.map((e) => channel_1.PacketState.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = client_1.Height.fromPartial(object.height);\n }\n return message;\n },\n};\nfunction createBaseQueryUnreceivedPacketsRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n packetCommitmentSequences: [],\n };\n}\nexports.QueryUnreceivedPacketsRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryUnreceivedPacketsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n writer.uint32(26).fork();\n for (const v of message.packetCommitmentSequences) {\n writer.uint64(v);\n }\n writer.ldelim();\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryUnreceivedPacketsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.packetCommitmentSequences.push(reader.uint64());\n }\n }\n else {\n message.packetCommitmentSequences.push(reader.uint64());\n }\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryUnreceivedPacketsRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if (Array.isArray(object?.packetCommitmentSequences))\n obj.packetCommitmentSequences = object.packetCommitmentSequences.map((e) => BigInt(e.toString()));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n if (message.packetCommitmentSequences) {\n obj.packetCommitmentSequences = message.packetCommitmentSequences.map((e) => (e || BigInt(0)).toString());\n }\n else {\n obj.packetCommitmentSequences = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryUnreceivedPacketsRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n message.packetCommitmentSequences =\n object.packetCommitmentSequences?.map((e) => BigInt(e.toString())) || [];\n return message;\n },\n};\nfunction createBaseQueryUnreceivedPacketsResponse() {\n return {\n sequences: [],\n height: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryUnreceivedPacketsResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryUnreceivedPacketsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n writer.uint32(10).fork();\n for (const v of message.sequences) {\n writer.uint64(v);\n }\n writer.ldelim();\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryUnreceivedPacketsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.sequences.push(reader.uint64());\n }\n }\n else {\n message.sequences.push(reader.uint64());\n }\n break;\n case 2:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryUnreceivedPacketsResponse();\n if (Array.isArray(object?.sequences))\n obj.sequences = object.sequences.map((e) => BigInt(e.toString()));\n if ((0, helpers_1.isSet)(object.height))\n obj.height = client_1.Height.fromJSON(object.height);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.sequences) {\n obj.sequences = message.sequences.map((e) => (e || BigInt(0)).toString());\n }\n else {\n obj.sequences = [];\n }\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryUnreceivedPacketsResponse();\n message.sequences = object.sequences?.map((e) => BigInt(e.toString())) || [];\n if (object.height !== undefined && object.height !== null) {\n message.height = client_1.Height.fromPartial(object.height);\n }\n return message;\n },\n};\nfunction createBaseQueryUnreceivedAcksRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n packetAckSequences: [],\n };\n}\nexports.QueryUnreceivedAcksRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryUnreceivedAcksRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n writer.uint32(26).fork();\n for (const v of message.packetAckSequences) {\n writer.uint64(v);\n }\n writer.ldelim();\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryUnreceivedAcksRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.packetAckSequences.push(reader.uint64());\n }\n }\n else {\n message.packetAckSequences.push(reader.uint64());\n }\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryUnreceivedAcksRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if (Array.isArray(object?.packetAckSequences))\n obj.packetAckSequences = object.packetAckSequences.map((e) => BigInt(e.toString()));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n if (message.packetAckSequences) {\n obj.packetAckSequences = message.packetAckSequences.map((e) => (e || BigInt(0)).toString());\n }\n else {\n obj.packetAckSequences = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryUnreceivedAcksRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n message.packetAckSequences = object.packetAckSequences?.map((e) => BigInt(e.toString())) || [];\n return message;\n },\n};\nfunction createBaseQueryUnreceivedAcksResponse() {\n return {\n sequences: [],\n height: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryUnreceivedAcksResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryUnreceivedAcksResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n writer.uint32(10).fork();\n for (const v of message.sequences) {\n writer.uint64(v);\n }\n writer.ldelim();\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryUnreceivedAcksResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.sequences.push(reader.uint64());\n }\n }\n else {\n message.sequences.push(reader.uint64());\n }\n break;\n case 2:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryUnreceivedAcksResponse();\n if (Array.isArray(object?.sequences))\n obj.sequences = object.sequences.map((e) => BigInt(e.toString()));\n if ((0, helpers_1.isSet)(object.height))\n obj.height = client_1.Height.fromJSON(object.height);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.sequences) {\n obj.sequences = message.sequences.map((e) => (e || BigInt(0)).toString());\n }\n else {\n obj.sequences = [];\n }\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryUnreceivedAcksResponse();\n message.sequences = object.sequences?.map((e) => BigInt(e.toString())) || [];\n if (object.height !== undefined && object.height !== null) {\n message.height = client_1.Height.fromPartial(object.height);\n }\n return message;\n },\n};\nfunction createBaseQueryNextSequenceReceiveRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n };\n}\nexports.QueryNextSequenceReceiveRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryNextSequenceReceiveRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryNextSequenceReceiveRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryNextSequenceReceiveRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryNextSequenceReceiveRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryNextSequenceReceiveResponse() {\n return {\n nextSequenceReceive: BigInt(0),\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryNextSequenceReceiveResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryNextSequenceReceiveResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.nextSequenceReceive !== BigInt(0)) {\n writer.uint32(8).uint64(message.nextSequenceReceive);\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryNextSequenceReceiveResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.nextSequenceReceive = reader.uint64();\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryNextSequenceReceiveResponse();\n if ((0, helpers_1.isSet)(object.nextSequenceReceive))\n obj.nextSequenceReceive = BigInt(object.nextSequenceReceive.toString());\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.nextSequenceReceive !== undefined &&\n (obj.nextSequenceReceive = (message.nextSequenceReceive || BigInt(0)).toString());\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryNextSequenceReceiveResponse();\n if (object.nextSequenceReceive !== undefined && object.nextSequenceReceive !== null) {\n message.nextSequenceReceive = BigInt(object.nextSequenceReceive.toString());\n }\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Channel = this.Channel.bind(this);\n this.Channels = this.Channels.bind(this);\n this.ConnectionChannels = this.ConnectionChannels.bind(this);\n this.ChannelClientState = this.ChannelClientState.bind(this);\n this.ChannelConsensusState = this.ChannelConsensusState.bind(this);\n this.PacketCommitment = this.PacketCommitment.bind(this);\n this.PacketCommitments = this.PacketCommitments.bind(this);\n this.PacketReceipt = this.PacketReceipt.bind(this);\n this.PacketAcknowledgement = this.PacketAcknowledgement.bind(this);\n this.PacketAcknowledgements = this.PacketAcknowledgements.bind(this);\n this.UnreceivedPackets = this.UnreceivedPackets.bind(this);\n this.UnreceivedAcks = this.UnreceivedAcks.bind(this);\n this.NextSequenceReceive = this.NextSequenceReceive.bind(this);\n }\n Channel(request) {\n const data = exports.QueryChannelRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"Channel\", data);\n return promise.then((data) => exports.QueryChannelResponse.decode(new binary_1.BinaryReader(data)));\n }\n Channels(request = {\n pagination: pagination_1.PageRequest.fromPartial({}),\n }) {\n const data = exports.QueryChannelsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"Channels\", data);\n return promise.then((data) => exports.QueryChannelsResponse.decode(new binary_1.BinaryReader(data)));\n }\n ConnectionChannels(request) {\n const data = exports.QueryConnectionChannelsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"ConnectionChannels\", data);\n return promise.then((data) => exports.QueryConnectionChannelsResponse.decode(new binary_1.BinaryReader(data)));\n }\n ChannelClientState(request) {\n const data = exports.QueryChannelClientStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"ChannelClientState\", data);\n return promise.then((data) => exports.QueryChannelClientStateResponse.decode(new binary_1.BinaryReader(data)));\n }\n ChannelConsensusState(request) {\n const data = exports.QueryChannelConsensusStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"ChannelConsensusState\", data);\n return promise.then((data) => exports.QueryChannelConsensusStateResponse.decode(new binary_1.BinaryReader(data)));\n }\n PacketCommitment(request) {\n const data = exports.QueryPacketCommitmentRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"PacketCommitment\", data);\n return promise.then((data) => exports.QueryPacketCommitmentResponse.decode(new binary_1.BinaryReader(data)));\n }\n PacketCommitments(request) {\n const data = exports.QueryPacketCommitmentsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"PacketCommitments\", data);\n return promise.then((data) => exports.QueryPacketCommitmentsResponse.decode(new binary_1.BinaryReader(data)));\n }\n PacketReceipt(request) {\n const data = exports.QueryPacketReceiptRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"PacketReceipt\", data);\n return promise.then((data) => exports.QueryPacketReceiptResponse.decode(new binary_1.BinaryReader(data)));\n }\n PacketAcknowledgement(request) {\n const data = exports.QueryPacketAcknowledgementRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"PacketAcknowledgement\", data);\n return promise.then((data) => exports.QueryPacketAcknowledgementResponse.decode(new binary_1.BinaryReader(data)));\n }\n PacketAcknowledgements(request) {\n const data = exports.QueryPacketAcknowledgementsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"PacketAcknowledgements\", data);\n return promise.then((data) => exports.QueryPacketAcknowledgementsResponse.decode(new binary_1.BinaryReader(data)));\n }\n UnreceivedPackets(request) {\n const data = exports.QueryUnreceivedPacketsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"UnreceivedPackets\", data);\n return promise.then((data) => exports.QueryUnreceivedPacketsResponse.decode(new binary_1.BinaryReader(data)));\n }\n UnreceivedAcks(request) {\n const data = exports.QueryUnreceivedAcksRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"UnreceivedAcks\", data);\n return promise.then((data) => exports.QueryUnreceivedAcksResponse.decode(new binary_1.BinaryReader(data)));\n }\n NextSequenceReceive(request) {\n const data = exports.QueryNextSequenceReceiveRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"NextSequenceReceive\", data);\n return promise.then((data) => exports.QueryNextSequenceReceiveResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgAcknowledgementResponse = exports.MsgAcknowledgement = exports.MsgTimeoutOnCloseResponse = exports.MsgTimeoutOnClose = exports.MsgTimeoutResponse = exports.MsgTimeout = exports.MsgRecvPacketResponse = exports.MsgRecvPacket = exports.MsgChannelCloseConfirmResponse = exports.MsgChannelCloseConfirm = exports.MsgChannelCloseInitResponse = exports.MsgChannelCloseInit = exports.MsgChannelOpenConfirmResponse = exports.MsgChannelOpenConfirm = exports.MsgChannelOpenAckResponse = exports.MsgChannelOpenAck = exports.MsgChannelOpenTryResponse = exports.MsgChannelOpenTry = exports.MsgChannelOpenInitResponse = exports.MsgChannelOpenInit = exports.responseResultTypeToJSON = exports.responseResultTypeFromJSON = exports.ResponseResultType = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst channel_1 = require(\"./channel\");\nconst client_1 = require(\"../../client/v1/client\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.core.channel.v1\";\n/** ResponseResultType defines the possible outcomes of the execution of a message */\nvar ResponseResultType;\n(function (ResponseResultType) {\n /** RESPONSE_RESULT_TYPE_UNSPECIFIED - Default zero value enumeration */\n ResponseResultType[ResponseResultType[\"RESPONSE_RESULT_TYPE_UNSPECIFIED\"] = 0] = \"RESPONSE_RESULT_TYPE_UNSPECIFIED\";\n /** RESPONSE_RESULT_TYPE_NOOP - The message did not call the IBC application callbacks (because, for example, the packet had already been relayed) */\n ResponseResultType[ResponseResultType[\"RESPONSE_RESULT_TYPE_NOOP\"] = 1] = \"RESPONSE_RESULT_TYPE_NOOP\";\n /** RESPONSE_RESULT_TYPE_SUCCESS - The message was executed successfully */\n ResponseResultType[ResponseResultType[\"RESPONSE_RESULT_TYPE_SUCCESS\"] = 2] = \"RESPONSE_RESULT_TYPE_SUCCESS\";\n ResponseResultType[ResponseResultType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ResponseResultType || (exports.ResponseResultType = ResponseResultType = {}));\nfunction responseResultTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"RESPONSE_RESULT_TYPE_UNSPECIFIED\":\n return ResponseResultType.RESPONSE_RESULT_TYPE_UNSPECIFIED;\n case 1:\n case \"RESPONSE_RESULT_TYPE_NOOP\":\n return ResponseResultType.RESPONSE_RESULT_TYPE_NOOP;\n case 2:\n case \"RESPONSE_RESULT_TYPE_SUCCESS\":\n return ResponseResultType.RESPONSE_RESULT_TYPE_SUCCESS;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ResponseResultType.UNRECOGNIZED;\n }\n}\nexports.responseResultTypeFromJSON = responseResultTypeFromJSON;\nfunction responseResultTypeToJSON(object) {\n switch (object) {\n case ResponseResultType.RESPONSE_RESULT_TYPE_UNSPECIFIED:\n return \"RESPONSE_RESULT_TYPE_UNSPECIFIED\";\n case ResponseResultType.RESPONSE_RESULT_TYPE_NOOP:\n return \"RESPONSE_RESULT_TYPE_NOOP\";\n case ResponseResultType.RESPONSE_RESULT_TYPE_SUCCESS:\n return \"RESPONSE_RESULT_TYPE_SUCCESS\";\n case ResponseResultType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.responseResultTypeToJSON = responseResultTypeToJSON;\nfunction createBaseMsgChannelOpenInit() {\n return {\n portId: \"\",\n channel: channel_1.Channel.fromPartial({}),\n signer: \"\",\n };\n}\nexports.MsgChannelOpenInit = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelOpenInit\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channel !== undefined) {\n channel_1.Channel.encode(message.channel, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenInit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channel = channel_1.Channel.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgChannelOpenInit();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channel))\n obj.channel = channel_1.Channel.fromJSON(object.channel);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channel !== undefined &&\n (obj.channel = message.channel ? channel_1.Channel.toJSON(message.channel) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgChannelOpenInit();\n message.portId = object.portId ?? \"\";\n if (object.channel !== undefined && object.channel !== null) {\n message.channel = channel_1.Channel.fromPartial(object.channel);\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgChannelOpenInitResponse() {\n return {\n channelId: \"\",\n version: \"\",\n };\n}\nexports.MsgChannelOpenInitResponse = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelOpenInitResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.channelId !== \"\") {\n writer.uint32(10).string(message.channelId);\n }\n if (message.version !== \"\") {\n writer.uint32(18).string(message.version);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenInitResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.channelId = reader.string();\n break;\n case 2:\n message.version = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgChannelOpenInitResponse();\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.version))\n obj.version = String(object.version);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.version !== undefined && (obj.version = message.version);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgChannelOpenInitResponse();\n message.channelId = object.channelId ?? \"\";\n message.version = object.version ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgChannelOpenTry() {\n return {\n portId: \"\",\n previousChannelId: \"\",\n channel: channel_1.Channel.fromPartial({}),\n counterpartyVersion: \"\",\n proofInit: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n signer: \"\",\n };\n}\nexports.MsgChannelOpenTry = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelOpenTry\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.previousChannelId !== \"\") {\n writer.uint32(18).string(message.previousChannelId);\n }\n if (message.channel !== undefined) {\n channel_1.Channel.encode(message.channel, writer.uint32(26).fork()).ldelim();\n }\n if (message.counterpartyVersion !== \"\") {\n writer.uint32(34).string(message.counterpartyVersion);\n }\n if (message.proofInit.length !== 0) {\n writer.uint32(42).bytes(message.proofInit);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(50).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(58).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenTry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.previousChannelId = reader.string();\n break;\n case 3:\n message.channel = channel_1.Channel.decode(reader, reader.uint32());\n break;\n case 4:\n message.counterpartyVersion = reader.string();\n break;\n case 5:\n message.proofInit = reader.bytes();\n break;\n case 6:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 7:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgChannelOpenTry();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.previousChannelId))\n obj.previousChannelId = String(object.previousChannelId);\n if ((0, helpers_1.isSet)(object.channel))\n obj.channel = channel_1.Channel.fromJSON(object.channel);\n if ((0, helpers_1.isSet)(object.counterpartyVersion))\n obj.counterpartyVersion = String(object.counterpartyVersion);\n if ((0, helpers_1.isSet)(object.proofInit))\n obj.proofInit = (0, helpers_1.bytesFromBase64)(object.proofInit);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.previousChannelId !== undefined && (obj.previousChannelId = message.previousChannelId);\n message.channel !== undefined &&\n (obj.channel = message.channel ? channel_1.Channel.toJSON(message.channel) : undefined);\n message.counterpartyVersion !== undefined && (obj.counterpartyVersion = message.counterpartyVersion);\n message.proofInit !== undefined &&\n (obj.proofInit = (0, helpers_1.base64FromBytes)(message.proofInit !== undefined ? message.proofInit : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgChannelOpenTry();\n message.portId = object.portId ?? \"\";\n message.previousChannelId = object.previousChannelId ?? \"\";\n if (object.channel !== undefined && object.channel !== null) {\n message.channel = channel_1.Channel.fromPartial(object.channel);\n }\n message.counterpartyVersion = object.counterpartyVersion ?? \"\";\n message.proofInit = object.proofInit ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgChannelOpenTryResponse() {\n return {\n version: \"\",\n };\n}\nexports.MsgChannelOpenTryResponse = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelOpenTryResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.version !== \"\") {\n writer.uint32(10).string(message.version);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenTryResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.version = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgChannelOpenTryResponse();\n if ((0, helpers_1.isSet)(object.version))\n obj.version = String(object.version);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.version !== undefined && (obj.version = message.version);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgChannelOpenTryResponse();\n message.version = object.version ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgChannelOpenAck() {\n return {\n portId: \"\",\n channelId: \"\",\n counterpartyChannelId: \"\",\n counterpartyVersion: \"\",\n proofTry: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n signer: \"\",\n };\n}\nexports.MsgChannelOpenAck = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelOpenAck\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.counterpartyChannelId !== \"\") {\n writer.uint32(26).string(message.counterpartyChannelId);\n }\n if (message.counterpartyVersion !== \"\") {\n writer.uint32(34).string(message.counterpartyVersion);\n }\n if (message.proofTry.length !== 0) {\n writer.uint32(42).bytes(message.proofTry);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(50).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(58).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenAck();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.counterpartyChannelId = reader.string();\n break;\n case 4:\n message.counterpartyVersion = reader.string();\n break;\n case 5:\n message.proofTry = reader.bytes();\n break;\n case 6:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 7:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgChannelOpenAck();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.counterpartyChannelId))\n obj.counterpartyChannelId = String(object.counterpartyChannelId);\n if ((0, helpers_1.isSet)(object.counterpartyVersion))\n obj.counterpartyVersion = String(object.counterpartyVersion);\n if ((0, helpers_1.isSet)(object.proofTry))\n obj.proofTry = (0, helpers_1.bytesFromBase64)(object.proofTry);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.counterpartyChannelId !== undefined &&\n (obj.counterpartyChannelId = message.counterpartyChannelId);\n message.counterpartyVersion !== undefined && (obj.counterpartyVersion = message.counterpartyVersion);\n message.proofTry !== undefined &&\n (obj.proofTry = (0, helpers_1.base64FromBytes)(message.proofTry !== undefined ? message.proofTry : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgChannelOpenAck();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n message.counterpartyChannelId = object.counterpartyChannelId ?? \"\";\n message.counterpartyVersion = object.counterpartyVersion ?? \"\";\n message.proofTry = object.proofTry ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgChannelOpenAckResponse() {\n return {};\n}\nexports.MsgChannelOpenAckResponse = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelOpenAckResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenAckResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgChannelOpenAckResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgChannelOpenAckResponse();\n return message;\n },\n};\nfunction createBaseMsgChannelOpenConfirm() {\n return {\n portId: \"\",\n channelId: \"\",\n proofAck: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n signer: \"\",\n };\n}\nexports.MsgChannelOpenConfirm = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelOpenConfirm\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.proofAck.length !== 0) {\n writer.uint32(26).bytes(message.proofAck);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenConfirm();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.proofAck = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgChannelOpenConfirm();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.proofAck))\n obj.proofAck = (0, helpers_1.bytesFromBase64)(object.proofAck);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.proofAck !== undefined &&\n (obj.proofAck = (0, helpers_1.base64FromBytes)(message.proofAck !== undefined ? message.proofAck : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgChannelOpenConfirm();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n message.proofAck = object.proofAck ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgChannelOpenConfirmResponse() {\n return {};\n}\nexports.MsgChannelOpenConfirmResponse = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelOpenConfirmResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenConfirmResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgChannelOpenConfirmResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgChannelOpenConfirmResponse();\n return message;\n },\n};\nfunction createBaseMsgChannelCloseInit() {\n return {\n portId: \"\",\n channelId: \"\",\n signer: \"\",\n };\n}\nexports.MsgChannelCloseInit = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelCloseInit\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelCloseInit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgChannelCloseInit();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgChannelCloseInit();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgChannelCloseInitResponse() {\n return {};\n}\nexports.MsgChannelCloseInitResponse = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelCloseInitResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelCloseInitResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgChannelCloseInitResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgChannelCloseInitResponse();\n return message;\n },\n};\nfunction createBaseMsgChannelCloseConfirm() {\n return {\n portId: \"\",\n channelId: \"\",\n proofInit: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n signer: \"\",\n };\n}\nexports.MsgChannelCloseConfirm = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelCloseConfirm\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.proofInit.length !== 0) {\n writer.uint32(26).bytes(message.proofInit);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelCloseConfirm();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.proofInit = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgChannelCloseConfirm();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.proofInit))\n obj.proofInit = (0, helpers_1.bytesFromBase64)(object.proofInit);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.proofInit !== undefined &&\n (obj.proofInit = (0, helpers_1.base64FromBytes)(message.proofInit !== undefined ? message.proofInit : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgChannelCloseConfirm();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n message.proofInit = object.proofInit ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgChannelCloseConfirmResponse() {\n return {};\n}\nexports.MsgChannelCloseConfirmResponse = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelCloseConfirmResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelCloseConfirmResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgChannelCloseConfirmResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgChannelCloseConfirmResponse();\n return message;\n },\n};\nfunction createBaseMsgRecvPacket() {\n return {\n packet: channel_1.Packet.fromPartial({}),\n proofCommitment: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n signer: \"\",\n };\n}\nexports.MsgRecvPacket = {\n typeUrl: \"/ibc.core.channel.v1.MsgRecvPacket\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.packet !== undefined) {\n channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.proofCommitment.length !== 0) {\n writer.uint32(18).bytes(message.proofCommitment);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(34).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgRecvPacket();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = channel_1.Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.proofCommitment = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 4:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgRecvPacket();\n if ((0, helpers_1.isSet)(object.packet))\n obj.packet = channel_1.Packet.fromJSON(object.packet);\n if ((0, helpers_1.isSet)(object.proofCommitment))\n obj.proofCommitment = (0, helpers_1.bytesFromBase64)(object.proofCommitment);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.packet !== undefined && (obj.packet = message.packet ? channel_1.Packet.toJSON(message.packet) : undefined);\n message.proofCommitment !== undefined &&\n (obj.proofCommitment = (0, helpers_1.base64FromBytes)(message.proofCommitment !== undefined ? message.proofCommitment : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgRecvPacket();\n if (object.packet !== undefined && object.packet !== null) {\n message.packet = channel_1.Packet.fromPartial(object.packet);\n }\n message.proofCommitment = object.proofCommitment ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgRecvPacketResponse() {\n return {\n result: 0,\n };\n}\nexports.MsgRecvPacketResponse = {\n typeUrl: \"/ibc.core.channel.v1.MsgRecvPacketResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgRecvPacketResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgRecvPacketResponse();\n if ((0, helpers_1.isSet)(object.result))\n obj.result = responseResultTypeFromJSON(object.result);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseResultTypeToJSON(message.result));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgRecvPacketResponse();\n message.result = object.result ?? 0;\n return message;\n },\n};\nfunction createBaseMsgTimeout() {\n return {\n packet: channel_1.Packet.fromPartial({}),\n proofUnreceived: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n nextSequenceRecv: BigInt(0),\n signer: \"\",\n };\n}\nexports.MsgTimeout = {\n typeUrl: \"/ibc.core.channel.v1.MsgTimeout\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.packet !== undefined) {\n channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.proofUnreceived.length !== 0) {\n writer.uint32(18).bytes(message.proofUnreceived);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n if (message.nextSequenceRecv !== BigInt(0)) {\n writer.uint32(32).uint64(message.nextSequenceRecv);\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgTimeout();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = channel_1.Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.proofUnreceived = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 4:\n message.nextSequenceRecv = reader.uint64();\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgTimeout();\n if ((0, helpers_1.isSet)(object.packet))\n obj.packet = channel_1.Packet.fromJSON(object.packet);\n if ((0, helpers_1.isSet)(object.proofUnreceived))\n obj.proofUnreceived = (0, helpers_1.bytesFromBase64)(object.proofUnreceived);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n if ((0, helpers_1.isSet)(object.nextSequenceRecv))\n obj.nextSequenceRecv = BigInt(object.nextSequenceRecv.toString());\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.packet !== undefined && (obj.packet = message.packet ? channel_1.Packet.toJSON(message.packet) : undefined);\n message.proofUnreceived !== undefined &&\n (obj.proofUnreceived = (0, helpers_1.base64FromBytes)(message.proofUnreceived !== undefined ? message.proofUnreceived : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.nextSequenceRecv !== undefined &&\n (obj.nextSequenceRecv = (message.nextSequenceRecv || BigInt(0)).toString());\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgTimeout();\n if (object.packet !== undefined && object.packet !== null) {\n message.packet = channel_1.Packet.fromPartial(object.packet);\n }\n message.proofUnreceived = object.proofUnreceived ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n if (object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null) {\n message.nextSequenceRecv = BigInt(object.nextSequenceRecv.toString());\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgTimeoutResponse() {\n return {\n result: 0,\n };\n}\nexports.MsgTimeoutResponse = {\n typeUrl: \"/ibc.core.channel.v1.MsgTimeoutResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgTimeoutResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgTimeoutResponse();\n if ((0, helpers_1.isSet)(object.result))\n obj.result = responseResultTypeFromJSON(object.result);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseResultTypeToJSON(message.result));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgTimeoutResponse();\n message.result = object.result ?? 0;\n return message;\n },\n};\nfunction createBaseMsgTimeoutOnClose() {\n return {\n packet: channel_1.Packet.fromPartial({}),\n proofUnreceived: new Uint8Array(),\n proofClose: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n nextSequenceRecv: BigInt(0),\n signer: \"\",\n };\n}\nexports.MsgTimeoutOnClose = {\n typeUrl: \"/ibc.core.channel.v1.MsgTimeoutOnClose\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.packet !== undefined) {\n channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.proofUnreceived.length !== 0) {\n writer.uint32(18).bytes(message.proofUnreceived);\n }\n if (message.proofClose.length !== 0) {\n writer.uint32(26).bytes(message.proofClose);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n if (message.nextSequenceRecv !== BigInt(0)) {\n writer.uint32(40).uint64(message.nextSequenceRecv);\n }\n if (message.signer !== \"\") {\n writer.uint32(50).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgTimeoutOnClose();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = channel_1.Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.proofUnreceived = reader.bytes();\n break;\n case 3:\n message.proofClose = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.nextSequenceRecv = reader.uint64();\n break;\n case 6:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgTimeoutOnClose();\n if ((0, helpers_1.isSet)(object.packet))\n obj.packet = channel_1.Packet.fromJSON(object.packet);\n if ((0, helpers_1.isSet)(object.proofUnreceived))\n obj.proofUnreceived = (0, helpers_1.bytesFromBase64)(object.proofUnreceived);\n if ((0, helpers_1.isSet)(object.proofClose))\n obj.proofClose = (0, helpers_1.bytesFromBase64)(object.proofClose);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n if ((0, helpers_1.isSet)(object.nextSequenceRecv))\n obj.nextSequenceRecv = BigInt(object.nextSequenceRecv.toString());\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.packet !== undefined && (obj.packet = message.packet ? channel_1.Packet.toJSON(message.packet) : undefined);\n message.proofUnreceived !== undefined &&\n (obj.proofUnreceived = (0, helpers_1.base64FromBytes)(message.proofUnreceived !== undefined ? message.proofUnreceived : new Uint8Array()));\n message.proofClose !== undefined &&\n (obj.proofClose = (0, helpers_1.base64FromBytes)(message.proofClose !== undefined ? message.proofClose : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.nextSequenceRecv !== undefined &&\n (obj.nextSequenceRecv = (message.nextSequenceRecv || BigInt(0)).toString());\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgTimeoutOnClose();\n if (object.packet !== undefined && object.packet !== null) {\n message.packet = channel_1.Packet.fromPartial(object.packet);\n }\n message.proofUnreceived = object.proofUnreceived ?? new Uint8Array();\n message.proofClose = object.proofClose ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n if (object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null) {\n message.nextSequenceRecv = BigInt(object.nextSequenceRecv.toString());\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgTimeoutOnCloseResponse() {\n return {\n result: 0,\n };\n}\nexports.MsgTimeoutOnCloseResponse = {\n typeUrl: \"/ibc.core.channel.v1.MsgTimeoutOnCloseResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgTimeoutOnCloseResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgTimeoutOnCloseResponse();\n if ((0, helpers_1.isSet)(object.result))\n obj.result = responseResultTypeFromJSON(object.result);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseResultTypeToJSON(message.result));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgTimeoutOnCloseResponse();\n message.result = object.result ?? 0;\n return message;\n },\n};\nfunction createBaseMsgAcknowledgement() {\n return {\n packet: channel_1.Packet.fromPartial({}),\n acknowledgement: new Uint8Array(),\n proofAcked: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n signer: \"\",\n };\n}\nexports.MsgAcknowledgement = {\n typeUrl: \"/ibc.core.channel.v1.MsgAcknowledgement\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.packet !== undefined) {\n channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.acknowledgement.length !== 0) {\n writer.uint32(18).bytes(message.acknowledgement);\n }\n if (message.proofAcked.length !== 0) {\n writer.uint32(26).bytes(message.proofAcked);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAcknowledgement();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = channel_1.Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.acknowledgement = reader.bytes();\n break;\n case 3:\n message.proofAcked = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgAcknowledgement();\n if ((0, helpers_1.isSet)(object.packet))\n obj.packet = channel_1.Packet.fromJSON(object.packet);\n if ((0, helpers_1.isSet)(object.acknowledgement))\n obj.acknowledgement = (0, helpers_1.bytesFromBase64)(object.acknowledgement);\n if ((0, helpers_1.isSet)(object.proofAcked))\n obj.proofAcked = (0, helpers_1.bytesFromBase64)(object.proofAcked);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.packet !== undefined && (obj.packet = message.packet ? channel_1.Packet.toJSON(message.packet) : undefined);\n message.acknowledgement !== undefined &&\n (obj.acknowledgement = (0, helpers_1.base64FromBytes)(message.acknowledgement !== undefined ? message.acknowledgement : new Uint8Array()));\n message.proofAcked !== undefined &&\n (obj.proofAcked = (0, helpers_1.base64FromBytes)(message.proofAcked !== undefined ? message.proofAcked : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgAcknowledgement();\n if (object.packet !== undefined && object.packet !== null) {\n message.packet = channel_1.Packet.fromPartial(object.packet);\n }\n message.acknowledgement = object.acknowledgement ?? new Uint8Array();\n message.proofAcked = object.proofAcked ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgAcknowledgementResponse() {\n return {\n result: 0,\n };\n}\nexports.MsgAcknowledgementResponse = {\n typeUrl: \"/ibc.core.channel.v1.MsgAcknowledgementResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAcknowledgementResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgAcknowledgementResponse();\n if ((0, helpers_1.isSet)(object.result))\n obj.result = responseResultTypeFromJSON(object.result);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseResultTypeToJSON(message.result));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgAcknowledgementResponse();\n message.result = object.result ?? 0;\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.ChannelOpenInit = this.ChannelOpenInit.bind(this);\n this.ChannelOpenTry = this.ChannelOpenTry.bind(this);\n this.ChannelOpenAck = this.ChannelOpenAck.bind(this);\n this.ChannelOpenConfirm = this.ChannelOpenConfirm.bind(this);\n this.ChannelCloseInit = this.ChannelCloseInit.bind(this);\n this.ChannelCloseConfirm = this.ChannelCloseConfirm.bind(this);\n this.RecvPacket = this.RecvPacket.bind(this);\n this.Timeout = this.Timeout.bind(this);\n this.TimeoutOnClose = this.TimeoutOnClose.bind(this);\n this.Acknowledgement = this.Acknowledgement.bind(this);\n }\n ChannelOpenInit(request) {\n const data = exports.MsgChannelOpenInit.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelOpenInit\", data);\n return promise.then((data) => exports.MsgChannelOpenInitResponse.decode(new binary_1.BinaryReader(data)));\n }\n ChannelOpenTry(request) {\n const data = exports.MsgChannelOpenTry.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelOpenTry\", data);\n return promise.then((data) => exports.MsgChannelOpenTryResponse.decode(new binary_1.BinaryReader(data)));\n }\n ChannelOpenAck(request) {\n const data = exports.MsgChannelOpenAck.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelOpenAck\", data);\n return promise.then((data) => exports.MsgChannelOpenAckResponse.decode(new binary_1.BinaryReader(data)));\n }\n ChannelOpenConfirm(request) {\n const data = exports.MsgChannelOpenConfirm.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelOpenConfirm\", data);\n return promise.then((data) => exports.MsgChannelOpenConfirmResponse.decode(new binary_1.BinaryReader(data)));\n }\n ChannelCloseInit(request) {\n const data = exports.MsgChannelCloseInit.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelCloseInit\", data);\n return promise.then((data) => exports.MsgChannelCloseInitResponse.decode(new binary_1.BinaryReader(data)));\n }\n ChannelCloseConfirm(request) {\n const data = exports.MsgChannelCloseConfirm.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelCloseConfirm\", data);\n return promise.then((data) => exports.MsgChannelCloseConfirmResponse.decode(new binary_1.BinaryReader(data)));\n }\n RecvPacket(request) {\n const data = exports.MsgRecvPacket.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"RecvPacket\", data);\n return promise.then((data) => exports.MsgRecvPacketResponse.decode(new binary_1.BinaryReader(data)));\n }\n Timeout(request) {\n const data = exports.MsgTimeout.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"Timeout\", data);\n return promise.then((data) => exports.MsgTimeoutResponse.decode(new binary_1.BinaryReader(data)));\n }\n TimeoutOnClose(request) {\n const data = exports.MsgTimeoutOnClose.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"TimeoutOnClose\", data);\n return promise.then((data) => exports.MsgTimeoutOnCloseResponse.decode(new binary_1.BinaryReader(data)));\n }\n Acknowledgement(request) {\n const data = exports.MsgAcknowledgement.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"Acknowledgement\", data);\n return promise.then((data) => exports.MsgAcknowledgementResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.Height = exports.UpgradeProposal = exports.ClientUpdateProposal = exports.ClientConsensusStates = exports.ConsensusStateWithHeight = exports.IdentifiedClientState = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst upgrade_1 = require(\"../../../../cosmos/upgrade/v1beta1/upgrade\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.core.client.v1\";\nfunction createBaseIdentifiedClientState() {\n return {\n clientId: \"\",\n clientState: undefined,\n };\n}\nexports.IdentifiedClientState = {\n typeUrl: \"/ibc.core.client.v1.IdentifiedClientState\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseIdentifiedClientState();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseIdentifiedClientState();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.clientState))\n obj.clientState = any_1.Any.fromJSON(object.clientState);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseIdentifiedClientState();\n message.clientId = object.clientId ?? \"\";\n if (object.clientState !== undefined && object.clientState !== null) {\n message.clientState = any_1.Any.fromPartial(object.clientState);\n }\n return message;\n },\n};\nfunction createBaseConsensusStateWithHeight() {\n return {\n height: exports.Height.fromPartial({}),\n consensusState: undefined,\n };\n}\nexports.ConsensusStateWithHeight = {\n typeUrl: \"/ibc.core.client.v1.ConsensusStateWithHeight\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.height !== undefined) {\n exports.Height.encode(message.height, writer.uint32(10).fork()).ldelim();\n }\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseConsensusStateWithHeight();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = exports.Height.decode(reader, reader.uint32());\n break;\n case 2:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseConsensusStateWithHeight();\n if ((0, helpers_1.isSet)(object.height))\n obj.height = exports.Height.fromJSON(object.height);\n if ((0, helpers_1.isSet)(object.consensusState))\n obj.consensusState = any_1.Any.fromJSON(object.consensusState);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = message.height ? exports.Height.toJSON(message.height) : undefined);\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseConsensusStateWithHeight();\n if (object.height !== undefined && object.height !== null) {\n message.height = exports.Height.fromPartial(object.height);\n }\n if (object.consensusState !== undefined && object.consensusState !== null) {\n message.consensusState = any_1.Any.fromPartial(object.consensusState);\n }\n return message;\n },\n};\nfunction createBaseClientConsensusStates() {\n return {\n clientId: \"\",\n consensusStates: [],\n };\n}\nexports.ClientConsensusStates = {\n typeUrl: \"/ibc.core.client.v1.ClientConsensusStates\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n for (const v of message.consensusStates) {\n exports.ConsensusStateWithHeight.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseClientConsensusStates();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.consensusStates.push(exports.ConsensusStateWithHeight.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseClientConsensusStates();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if (Array.isArray(object?.consensusStates))\n obj.consensusStates = object.consensusStates.map((e) => exports.ConsensusStateWithHeight.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n if (message.consensusStates) {\n obj.consensusStates = message.consensusStates.map((e) => e ? exports.ConsensusStateWithHeight.toJSON(e) : undefined);\n }\n else {\n obj.consensusStates = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseClientConsensusStates();\n message.clientId = object.clientId ?? \"\";\n message.consensusStates =\n object.consensusStates?.map((e) => exports.ConsensusStateWithHeight.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseClientUpdateProposal() {\n return {\n title: \"\",\n description: \"\",\n subjectClientId: \"\",\n substituteClientId: \"\",\n };\n}\nexports.ClientUpdateProposal = {\n typeUrl: \"/ibc.core.client.v1.ClientUpdateProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.subjectClientId !== \"\") {\n writer.uint32(26).string(message.subjectClientId);\n }\n if (message.substituteClientId !== \"\") {\n writer.uint32(34).string(message.substituteClientId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseClientUpdateProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.subjectClientId = reader.string();\n break;\n case 4:\n message.substituteClientId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseClientUpdateProposal();\n if ((0, helpers_1.isSet)(object.title))\n obj.title = String(object.title);\n if ((0, helpers_1.isSet)(object.description))\n obj.description = String(object.description);\n if ((0, helpers_1.isSet)(object.subjectClientId))\n obj.subjectClientId = String(object.subjectClientId);\n if ((0, helpers_1.isSet)(object.substituteClientId))\n obj.substituteClientId = String(object.substituteClientId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.subjectClientId !== undefined && (obj.subjectClientId = message.subjectClientId);\n message.substituteClientId !== undefined && (obj.substituteClientId = message.substituteClientId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseClientUpdateProposal();\n message.title = object.title ?? \"\";\n message.description = object.description ?? \"\";\n message.subjectClientId = object.subjectClientId ?? \"\";\n message.substituteClientId = object.substituteClientId ?? \"\";\n return message;\n },\n};\nfunction createBaseUpgradeProposal() {\n return {\n title: \"\",\n description: \"\",\n plan: upgrade_1.Plan.fromPartial({}),\n upgradedClientState: undefined,\n };\n}\nexports.UpgradeProposal = {\n typeUrl: \"/ibc.core.client.v1.UpgradeProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.plan !== undefined) {\n upgrade_1.Plan.encode(message.plan, writer.uint32(26).fork()).ldelim();\n }\n if (message.upgradedClientState !== undefined) {\n any_1.Any.encode(message.upgradedClientState, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseUpgradeProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.plan = upgrade_1.Plan.decode(reader, reader.uint32());\n break;\n case 4:\n message.upgradedClientState = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseUpgradeProposal();\n if ((0, helpers_1.isSet)(object.title))\n obj.title = String(object.title);\n if ((0, helpers_1.isSet)(object.description))\n obj.description = String(object.description);\n if ((0, helpers_1.isSet)(object.plan))\n obj.plan = upgrade_1.Plan.fromJSON(object.plan);\n if ((0, helpers_1.isSet)(object.upgradedClientState))\n obj.upgradedClientState = any_1.Any.fromJSON(object.upgradedClientState);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.plan !== undefined && (obj.plan = message.plan ? upgrade_1.Plan.toJSON(message.plan) : undefined);\n message.upgradedClientState !== undefined &&\n (obj.upgradedClientState = message.upgradedClientState\n ? any_1.Any.toJSON(message.upgradedClientState)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseUpgradeProposal();\n message.title = object.title ?? \"\";\n message.description = object.description ?? \"\";\n if (object.plan !== undefined && object.plan !== null) {\n message.plan = upgrade_1.Plan.fromPartial(object.plan);\n }\n if (object.upgradedClientState !== undefined && object.upgradedClientState !== null) {\n message.upgradedClientState = any_1.Any.fromPartial(object.upgradedClientState);\n }\n return message;\n },\n};\nfunction createBaseHeight() {\n return {\n revisionNumber: BigInt(0),\n revisionHeight: BigInt(0),\n };\n}\nexports.Height = {\n typeUrl: \"/ibc.core.client.v1.Height\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.revisionNumber !== BigInt(0)) {\n writer.uint32(8).uint64(message.revisionNumber);\n }\n if (message.revisionHeight !== BigInt(0)) {\n writer.uint32(16).uint64(message.revisionHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHeight();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.revisionNumber = reader.uint64();\n break;\n case 2:\n message.revisionHeight = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseHeight();\n if ((0, helpers_1.isSet)(object.revisionNumber))\n obj.revisionNumber = BigInt(object.revisionNumber.toString());\n if ((0, helpers_1.isSet)(object.revisionHeight))\n obj.revisionHeight = BigInt(object.revisionHeight.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.revisionNumber !== undefined &&\n (obj.revisionNumber = (message.revisionNumber || BigInt(0)).toString());\n message.revisionHeight !== undefined &&\n (obj.revisionHeight = (message.revisionHeight || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseHeight();\n if (object.revisionNumber !== undefined && object.revisionNumber !== null) {\n message.revisionNumber = BigInt(object.revisionNumber.toString());\n }\n if (object.revisionHeight !== undefined && object.revisionHeight !== null) {\n message.revisionHeight = BigInt(object.revisionHeight.toString());\n }\n return message;\n },\n};\nfunction createBaseParams() {\n return {\n allowedClients: [],\n };\n}\nexports.Params = {\n typeUrl: \"/ibc.core.client.v1.Params\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.allowedClients) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.allowedClients.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseParams();\n if (Array.isArray(object?.allowedClients))\n obj.allowedClients = object.allowedClients.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.allowedClients) {\n obj.allowedClients = message.allowedClients.map((e) => e);\n }\n else {\n obj.allowedClients = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseParams();\n message.allowedClients = object.allowedClients?.map((e) => e) || [];\n return message;\n },\n};\n//# sourceMappingURL=client.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryUpgradedConsensusStateResponse = exports.QueryUpgradedConsensusStateRequest = exports.QueryUpgradedClientStateResponse = exports.QueryUpgradedClientStateRequest = exports.QueryClientParamsResponse = exports.QueryClientParamsRequest = exports.QueryClientStatusResponse = exports.QueryClientStatusRequest = exports.QueryConsensusStateHeightsResponse = exports.QueryConsensusStateHeightsRequest = exports.QueryConsensusStatesResponse = exports.QueryConsensusStatesRequest = exports.QueryConsensusStateResponse = exports.QueryConsensusStateRequest = exports.QueryClientStatesResponse = exports.QueryClientStatesRequest = exports.QueryClientStateResponse = exports.QueryClientStateRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst pagination_1 = require(\"../../../../cosmos/base/query/v1beta1/pagination\");\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst client_1 = require(\"./client\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.core.client.v1\";\nfunction createBaseQueryClientStateRequest() {\n return {\n clientId: \"\",\n };\n}\nexports.QueryClientStateRequest = {\n typeUrl: \"/ibc.core.client.v1.QueryClientStateRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryClientStateRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryClientStateRequest();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryClientStateRequest();\n message.clientId = object.clientId ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryClientStateResponse() {\n return {\n clientState: undefined,\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryClientStateResponse = {\n typeUrl: \"/ibc.core.client.v1.QueryClientStateResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryClientStateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryClientStateResponse();\n if ((0, helpers_1.isSet)(object.clientState))\n obj.clientState = any_1.Any.fromJSON(object.clientState);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryClientStateResponse();\n if (object.clientState !== undefined && object.clientState !== null) {\n message.clientState = any_1.Any.fromPartial(object.clientState);\n }\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryClientStatesRequest() {\n return {\n pagination: undefined,\n };\n}\nexports.QueryClientStatesRequest = {\n typeUrl: \"/ibc.core.client.v1.QueryClientStatesRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryClientStatesRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryClientStatesRequest();\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryClientStatesRequest();\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryClientStatesResponse() {\n return {\n clientStates: [],\n pagination: undefined,\n };\n}\nexports.QueryClientStatesResponse = {\n typeUrl: \"/ibc.core.client.v1.QueryClientStatesResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.clientStates) {\n client_1.IdentifiedClientState.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryClientStatesResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientStates.push(client_1.IdentifiedClientState.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryClientStatesResponse();\n if (Array.isArray(object?.clientStates))\n obj.clientStates = object.clientStates.map((e) => client_1.IdentifiedClientState.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.clientStates) {\n obj.clientStates = message.clientStates.map((e) => (e ? client_1.IdentifiedClientState.toJSON(e) : undefined));\n }\n else {\n obj.clientStates = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryClientStatesResponse();\n message.clientStates = object.clientStates?.map((e) => client_1.IdentifiedClientState.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryConsensusStateRequest() {\n return {\n clientId: \"\",\n revisionNumber: BigInt(0),\n revisionHeight: BigInt(0),\n latestHeight: false,\n };\n}\nexports.QueryConsensusStateRequest = {\n typeUrl: \"/ibc.core.client.v1.QueryConsensusStateRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.revisionNumber !== BigInt(0)) {\n writer.uint32(16).uint64(message.revisionNumber);\n }\n if (message.revisionHeight !== BigInt(0)) {\n writer.uint32(24).uint64(message.revisionHeight);\n }\n if (message.latestHeight === true) {\n writer.uint32(32).bool(message.latestHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConsensusStateRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.revisionNumber = reader.uint64();\n break;\n case 3:\n message.revisionHeight = reader.uint64();\n break;\n case 4:\n message.latestHeight = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConsensusStateRequest();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.revisionNumber))\n obj.revisionNumber = BigInt(object.revisionNumber.toString());\n if ((0, helpers_1.isSet)(object.revisionHeight))\n obj.revisionHeight = BigInt(object.revisionHeight.toString());\n if ((0, helpers_1.isSet)(object.latestHeight))\n obj.latestHeight = Boolean(object.latestHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.revisionNumber !== undefined &&\n (obj.revisionNumber = (message.revisionNumber || BigInt(0)).toString());\n message.revisionHeight !== undefined &&\n (obj.revisionHeight = (message.revisionHeight || BigInt(0)).toString());\n message.latestHeight !== undefined && (obj.latestHeight = message.latestHeight);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConsensusStateRequest();\n message.clientId = object.clientId ?? \"\";\n if (object.revisionNumber !== undefined && object.revisionNumber !== null) {\n message.revisionNumber = BigInt(object.revisionNumber.toString());\n }\n if (object.revisionHeight !== undefined && object.revisionHeight !== null) {\n message.revisionHeight = BigInt(object.revisionHeight.toString());\n }\n message.latestHeight = object.latestHeight ?? false;\n return message;\n },\n};\nfunction createBaseQueryConsensusStateResponse() {\n return {\n consensusState: undefined,\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryConsensusStateResponse = {\n typeUrl: \"/ibc.core.client.v1.QueryConsensusStateResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConsensusStateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConsensusStateResponse();\n if ((0, helpers_1.isSet)(object.consensusState))\n obj.consensusState = any_1.Any.fromJSON(object.consensusState);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConsensusStateResponse();\n if (object.consensusState !== undefined && object.consensusState !== null) {\n message.consensusState = any_1.Any.fromPartial(object.consensusState);\n }\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryConsensusStatesRequest() {\n return {\n clientId: \"\",\n pagination: undefined,\n };\n}\nexports.QueryConsensusStatesRequest = {\n typeUrl: \"/ibc.core.client.v1.QueryConsensusStatesRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConsensusStatesRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConsensusStatesRequest();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConsensusStatesRequest();\n message.clientId = object.clientId ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryConsensusStatesResponse() {\n return {\n consensusStates: [],\n pagination: undefined,\n };\n}\nexports.QueryConsensusStatesResponse = {\n typeUrl: \"/ibc.core.client.v1.QueryConsensusStatesResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.consensusStates) {\n client_1.ConsensusStateWithHeight.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConsensusStatesResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusStates.push(client_1.ConsensusStateWithHeight.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConsensusStatesResponse();\n if (Array.isArray(object?.consensusStates))\n obj.consensusStates = object.consensusStates.map((e) => client_1.ConsensusStateWithHeight.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.consensusStates) {\n obj.consensusStates = message.consensusStates.map((e) => e ? client_1.ConsensusStateWithHeight.toJSON(e) : undefined);\n }\n else {\n obj.consensusStates = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConsensusStatesResponse();\n message.consensusStates =\n object.consensusStates?.map((e) => client_1.ConsensusStateWithHeight.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryConsensusStateHeightsRequest() {\n return {\n clientId: \"\",\n pagination: undefined,\n };\n}\nexports.QueryConsensusStateHeightsRequest = {\n typeUrl: \"/ibc.core.client.v1.QueryConsensusStateHeightsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConsensusStateHeightsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConsensusStateHeightsRequest();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConsensusStateHeightsRequest();\n message.clientId = object.clientId ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryConsensusStateHeightsResponse() {\n return {\n consensusStateHeights: [],\n pagination: undefined,\n };\n}\nexports.QueryConsensusStateHeightsResponse = {\n typeUrl: \"/ibc.core.client.v1.QueryConsensusStateHeightsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.consensusStateHeights) {\n client_1.Height.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConsensusStateHeightsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusStateHeights.push(client_1.Height.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConsensusStateHeightsResponse();\n if (Array.isArray(object?.consensusStateHeights))\n obj.consensusStateHeights = object.consensusStateHeights.map((e) => client_1.Height.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.consensusStateHeights) {\n obj.consensusStateHeights = message.consensusStateHeights.map((e) => e ? client_1.Height.toJSON(e) : undefined);\n }\n else {\n obj.consensusStateHeights = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConsensusStateHeightsResponse();\n message.consensusStateHeights = object.consensusStateHeights?.map((e) => client_1.Height.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryClientStatusRequest() {\n return {\n clientId: \"\",\n };\n}\nexports.QueryClientStatusRequest = {\n typeUrl: \"/ibc.core.client.v1.QueryClientStatusRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryClientStatusRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryClientStatusRequest();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryClientStatusRequest();\n message.clientId = object.clientId ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryClientStatusResponse() {\n return {\n status: \"\",\n };\n}\nexports.QueryClientStatusResponse = {\n typeUrl: \"/ibc.core.client.v1.QueryClientStatusResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.status !== \"\") {\n writer.uint32(10).string(message.status);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryClientStatusResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.status = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryClientStatusResponse();\n if ((0, helpers_1.isSet)(object.status))\n obj.status = String(object.status);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.status !== undefined && (obj.status = message.status);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryClientStatusResponse();\n message.status = object.status ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryClientParamsRequest() {\n return {};\n}\nexports.QueryClientParamsRequest = {\n typeUrl: \"/ibc.core.client.v1.QueryClientParamsRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryClientParamsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryClientParamsRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryClientParamsRequest();\n return message;\n },\n};\nfunction createBaseQueryClientParamsResponse() {\n return {\n params: undefined,\n };\n}\nexports.QueryClientParamsResponse = {\n typeUrl: \"/ibc.core.client.v1.QueryClientParamsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.params !== undefined) {\n client_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryClientParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = client_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryClientParamsResponse();\n if ((0, helpers_1.isSet)(object.params))\n obj.params = client_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? client_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryClientParamsResponse();\n if (object.params !== undefined && object.params !== null) {\n message.params = client_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nfunction createBaseQueryUpgradedClientStateRequest() {\n return {};\n}\nexports.QueryUpgradedClientStateRequest = {\n typeUrl: \"/ibc.core.client.v1.QueryUpgradedClientStateRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryUpgradedClientStateRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryUpgradedClientStateRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryUpgradedClientStateRequest();\n return message;\n },\n};\nfunction createBaseQueryUpgradedClientStateResponse() {\n return {\n upgradedClientState: undefined,\n };\n}\nexports.QueryUpgradedClientStateResponse = {\n typeUrl: \"/ibc.core.client.v1.QueryUpgradedClientStateResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.upgradedClientState !== undefined) {\n any_1.Any.encode(message.upgradedClientState, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryUpgradedClientStateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.upgradedClientState = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryUpgradedClientStateResponse();\n if ((0, helpers_1.isSet)(object.upgradedClientState))\n obj.upgradedClientState = any_1.Any.fromJSON(object.upgradedClientState);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.upgradedClientState !== undefined &&\n (obj.upgradedClientState = message.upgradedClientState\n ? any_1.Any.toJSON(message.upgradedClientState)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryUpgradedClientStateResponse();\n if (object.upgradedClientState !== undefined && object.upgradedClientState !== null) {\n message.upgradedClientState = any_1.Any.fromPartial(object.upgradedClientState);\n }\n return message;\n },\n};\nfunction createBaseQueryUpgradedConsensusStateRequest() {\n return {};\n}\nexports.QueryUpgradedConsensusStateRequest = {\n typeUrl: \"/ibc.core.client.v1.QueryUpgradedConsensusStateRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryUpgradedConsensusStateRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryUpgradedConsensusStateRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryUpgradedConsensusStateRequest();\n return message;\n },\n};\nfunction createBaseQueryUpgradedConsensusStateResponse() {\n return {\n upgradedConsensusState: undefined,\n };\n}\nexports.QueryUpgradedConsensusStateResponse = {\n typeUrl: \"/ibc.core.client.v1.QueryUpgradedConsensusStateResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.upgradedConsensusState !== undefined) {\n any_1.Any.encode(message.upgradedConsensusState, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryUpgradedConsensusStateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.upgradedConsensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryUpgradedConsensusStateResponse();\n if ((0, helpers_1.isSet)(object.upgradedConsensusState))\n obj.upgradedConsensusState = any_1.Any.fromJSON(object.upgradedConsensusState);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.upgradedConsensusState !== undefined &&\n (obj.upgradedConsensusState = message.upgradedConsensusState\n ? any_1.Any.toJSON(message.upgradedConsensusState)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryUpgradedConsensusStateResponse();\n if (object.upgradedConsensusState !== undefined && object.upgradedConsensusState !== null) {\n message.upgradedConsensusState = any_1.Any.fromPartial(object.upgradedConsensusState);\n }\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.ClientState = this.ClientState.bind(this);\n this.ClientStates = this.ClientStates.bind(this);\n this.ConsensusState = this.ConsensusState.bind(this);\n this.ConsensusStates = this.ConsensusStates.bind(this);\n this.ConsensusStateHeights = this.ConsensusStateHeights.bind(this);\n this.ClientStatus = this.ClientStatus.bind(this);\n this.ClientParams = this.ClientParams.bind(this);\n this.UpgradedClientState = this.UpgradedClientState.bind(this);\n this.UpgradedConsensusState = this.UpgradedConsensusState.bind(this);\n }\n ClientState(request) {\n const data = exports.QueryClientStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ClientState\", data);\n return promise.then((data) => exports.QueryClientStateResponse.decode(new binary_1.BinaryReader(data)));\n }\n ClientStates(request = {\n pagination: pagination_1.PageRequest.fromPartial({}),\n }) {\n const data = exports.QueryClientStatesRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ClientStates\", data);\n return promise.then((data) => exports.QueryClientStatesResponse.decode(new binary_1.BinaryReader(data)));\n }\n ConsensusState(request) {\n const data = exports.QueryConsensusStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ConsensusState\", data);\n return promise.then((data) => exports.QueryConsensusStateResponse.decode(new binary_1.BinaryReader(data)));\n }\n ConsensusStates(request) {\n const data = exports.QueryConsensusStatesRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ConsensusStates\", data);\n return promise.then((data) => exports.QueryConsensusStatesResponse.decode(new binary_1.BinaryReader(data)));\n }\n ConsensusStateHeights(request) {\n const data = exports.QueryConsensusStateHeightsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ConsensusStateHeights\", data);\n return promise.then((data) => exports.QueryConsensusStateHeightsResponse.decode(new binary_1.BinaryReader(data)));\n }\n ClientStatus(request) {\n const data = exports.QueryClientStatusRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ClientStatus\", data);\n return promise.then((data) => exports.QueryClientStatusResponse.decode(new binary_1.BinaryReader(data)));\n }\n ClientParams(request = {}) {\n const data = exports.QueryClientParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ClientParams\", data);\n return promise.then((data) => exports.QueryClientParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpgradedClientState(request = {}) {\n const data = exports.QueryUpgradedClientStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"UpgradedClientState\", data);\n return promise.then((data) => exports.QueryUpgradedClientStateResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpgradedConsensusState(request = {}) {\n const data = exports.QueryUpgradedConsensusStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"UpgradedConsensusState\", data);\n return promise.then((data) => exports.QueryUpgradedConsensusStateResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgSubmitMisbehaviourResponse = exports.MsgSubmitMisbehaviour = exports.MsgUpgradeClientResponse = exports.MsgUpgradeClient = exports.MsgUpdateClientResponse = exports.MsgUpdateClient = exports.MsgCreateClientResponse = exports.MsgCreateClient = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.core.client.v1\";\nfunction createBaseMsgCreateClient() {\n return {\n clientState: undefined,\n consensusState: undefined,\n signer: \"\",\n };\n}\nexports.MsgCreateClient = {\n typeUrl: \"/ibc.core.client.v1.MsgCreateClient\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(10).fork()).ldelim();\n }\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateClient();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCreateClient();\n if ((0, helpers_1.isSet)(object.clientState))\n obj.clientState = any_1.Any.fromJSON(object.clientState);\n if ((0, helpers_1.isSet)(object.consensusState))\n obj.consensusState = any_1.Any.fromJSON(object.consensusState);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCreateClient();\n if (object.clientState !== undefined && object.clientState !== null) {\n message.clientState = any_1.Any.fromPartial(object.clientState);\n }\n if (object.consensusState !== undefined && object.consensusState !== null) {\n message.consensusState = any_1.Any.fromPartial(object.consensusState);\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgCreateClientResponse() {\n return {};\n}\nexports.MsgCreateClientResponse = {\n typeUrl: \"/ibc.core.client.v1.MsgCreateClientResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateClientResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgCreateClientResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgCreateClientResponse();\n return message;\n },\n};\nfunction createBaseMsgUpdateClient() {\n return {\n clientId: \"\",\n clientMessage: undefined,\n signer: \"\",\n };\n}\nexports.MsgUpdateClient = {\n typeUrl: \"/ibc.core.client.v1.MsgUpdateClient\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.clientMessage !== undefined) {\n any_1.Any.encode(message.clientMessage, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateClient();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.clientMessage = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpdateClient();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.clientMessage))\n obj.clientMessage = any_1.Any.fromJSON(object.clientMessage);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.clientMessage !== undefined &&\n (obj.clientMessage = message.clientMessage ? any_1.Any.toJSON(message.clientMessage) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpdateClient();\n message.clientId = object.clientId ?? \"\";\n if (object.clientMessage !== undefined && object.clientMessage !== null) {\n message.clientMessage = any_1.Any.fromPartial(object.clientMessage);\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgUpdateClientResponse() {\n return {};\n}\nexports.MsgUpdateClientResponse = {\n typeUrl: \"/ibc.core.client.v1.MsgUpdateClientResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateClientResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpdateClientResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpdateClientResponse();\n return message;\n },\n};\nfunction createBaseMsgUpgradeClient() {\n return {\n clientId: \"\",\n clientState: undefined,\n consensusState: undefined,\n proofUpgradeClient: new Uint8Array(),\n proofUpgradeConsensusState: new Uint8Array(),\n signer: \"\",\n };\n}\nexports.MsgUpgradeClient = {\n typeUrl: \"/ibc.core.client.v1.MsgUpgradeClient\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(18).fork()).ldelim();\n }\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(26).fork()).ldelim();\n }\n if (message.proofUpgradeClient.length !== 0) {\n writer.uint32(34).bytes(message.proofUpgradeClient);\n }\n if (message.proofUpgradeConsensusState.length !== 0) {\n writer.uint32(42).bytes(message.proofUpgradeConsensusState);\n }\n if (message.signer !== \"\") {\n writer.uint32(50).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpgradeClient();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 4:\n message.proofUpgradeClient = reader.bytes();\n break;\n case 5:\n message.proofUpgradeConsensusState = reader.bytes();\n break;\n case 6:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpgradeClient();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.clientState))\n obj.clientState = any_1.Any.fromJSON(object.clientState);\n if ((0, helpers_1.isSet)(object.consensusState))\n obj.consensusState = any_1.Any.fromJSON(object.consensusState);\n if ((0, helpers_1.isSet)(object.proofUpgradeClient))\n obj.proofUpgradeClient = (0, helpers_1.bytesFromBase64)(object.proofUpgradeClient);\n if ((0, helpers_1.isSet)(object.proofUpgradeConsensusState))\n obj.proofUpgradeConsensusState = (0, helpers_1.bytesFromBase64)(object.proofUpgradeConsensusState);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n message.proofUpgradeClient !== undefined &&\n (obj.proofUpgradeClient = (0, helpers_1.base64FromBytes)(message.proofUpgradeClient !== undefined ? message.proofUpgradeClient : new Uint8Array()));\n message.proofUpgradeConsensusState !== undefined &&\n (obj.proofUpgradeConsensusState = (0, helpers_1.base64FromBytes)(message.proofUpgradeConsensusState !== undefined\n ? message.proofUpgradeConsensusState\n : new Uint8Array()));\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpgradeClient();\n message.clientId = object.clientId ?? \"\";\n if (object.clientState !== undefined && object.clientState !== null) {\n message.clientState = any_1.Any.fromPartial(object.clientState);\n }\n if (object.consensusState !== undefined && object.consensusState !== null) {\n message.consensusState = any_1.Any.fromPartial(object.consensusState);\n }\n message.proofUpgradeClient = object.proofUpgradeClient ?? new Uint8Array();\n message.proofUpgradeConsensusState = object.proofUpgradeConsensusState ?? new Uint8Array();\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgUpgradeClientResponse() {\n return {};\n}\nexports.MsgUpgradeClientResponse = {\n typeUrl: \"/ibc.core.client.v1.MsgUpgradeClientResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpgradeClientResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpgradeClientResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpgradeClientResponse();\n return message;\n },\n};\nfunction createBaseMsgSubmitMisbehaviour() {\n return {\n clientId: \"\",\n misbehaviour: undefined,\n signer: \"\",\n };\n}\nexports.MsgSubmitMisbehaviour = {\n typeUrl: \"/ibc.core.client.v1.MsgSubmitMisbehaviour\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.misbehaviour !== undefined) {\n any_1.Any.encode(message.misbehaviour, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubmitMisbehaviour();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.misbehaviour = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgSubmitMisbehaviour();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.misbehaviour))\n obj.misbehaviour = any_1.Any.fromJSON(object.misbehaviour);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.misbehaviour !== undefined &&\n (obj.misbehaviour = message.misbehaviour ? any_1.Any.toJSON(message.misbehaviour) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgSubmitMisbehaviour();\n message.clientId = object.clientId ?? \"\";\n if (object.misbehaviour !== undefined && object.misbehaviour !== null) {\n message.misbehaviour = any_1.Any.fromPartial(object.misbehaviour);\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgSubmitMisbehaviourResponse() {\n return {};\n}\nexports.MsgSubmitMisbehaviourResponse = {\n typeUrl: \"/ibc.core.client.v1.MsgSubmitMisbehaviourResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubmitMisbehaviourResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgSubmitMisbehaviourResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgSubmitMisbehaviourResponse();\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.CreateClient = this.CreateClient.bind(this);\n this.UpdateClient = this.UpdateClient.bind(this);\n this.UpgradeClient = this.UpgradeClient.bind(this);\n this.SubmitMisbehaviour = this.SubmitMisbehaviour.bind(this);\n }\n CreateClient(request) {\n const data = exports.MsgCreateClient.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Msg\", \"CreateClient\", data);\n return promise.then((data) => exports.MsgCreateClientResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpdateClient(request) {\n const data = exports.MsgUpdateClient.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Msg\", \"UpdateClient\", data);\n return promise.then((data) => exports.MsgUpdateClientResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpgradeClient(request) {\n const data = exports.MsgUpgradeClient.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Msg\", \"UpgradeClient\", data);\n return promise.then((data) => exports.MsgUpgradeClientResponse.decode(new binary_1.BinaryReader(data)));\n }\n SubmitMisbehaviour(request) {\n const data = exports.MsgSubmitMisbehaviour.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Msg\", \"SubmitMisbehaviour\", data);\n return promise.then((data) => exports.MsgSubmitMisbehaviourResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MerkleProof = exports.MerklePath = exports.MerklePrefix = exports.MerkleRoot = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst proofs_1 = require(\"../../../../cosmos/ics23/v1/proofs\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.core.commitment.v1\";\nfunction createBaseMerkleRoot() {\n return {\n hash: new Uint8Array(),\n };\n}\nexports.MerkleRoot = {\n typeUrl: \"/ibc.core.commitment.v1.MerkleRoot\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.hash.length !== 0) {\n writer.uint32(10).bytes(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMerkleRoot();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMerkleRoot();\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = (0, helpers_1.bytesFromBase64)(object.hash);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined &&\n (obj.hash = (0, helpers_1.base64FromBytes)(message.hash !== undefined ? message.hash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMerkleRoot();\n message.hash = object.hash ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseMerklePrefix() {\n return {\n keyPrefix: new Uint8Array(),\n };\n}\nexports.MerklePrefix = {\n typeUrl: \"/ibc.core.commitment.v1.MerklePrefix\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.keyPrefix.length !== 0) {\n writer.uint32(10).bytes(message.keyPrefix);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMerklePrefix();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.keyPrefix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMerklePrefix();\n if ((0, helpers_1.isSet)(object.keyPrefix))\n obj.keyPrefix = (0, helpers_1.bytesFromBase64)(object.keyPrefix);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.keyPrefix !== undefined &&\n (obj.keyPrefix = (0, helpers_1.base64FromBytes)(message.keyPrefix !== undefined ? message.keyPrefix : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMerklePrefix();\n message.keyPrefix = object.keyPrefix ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseMerklePath() {\n return {\n keyPath: [],\n };\n}\nexports.MerklePath = {\n typeUrl: \"/ibc.core.commitment.v1.MerklePath\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.keyPath) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMerklePath();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.keyPath.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMerklePath();\n if (Array.isArray(object?.keyPath))\n obj.keyPath = object.keyPath.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.keyPath) {\n obj.keyPath = message.keyPath.map((e) => e);\n }\n else {\n obj.keyPath = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMerklePath();\n message.keyPath = object.keyPath?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseMerkleProof() {\n return {\n proofs: [],\n };\n}\nexports.MerkleProof = {\n typeUrl: \"/ibc.core.commitment.v1.MerkleProof\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.proofs) {\n proofs_1.CommitmentProof.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMerkleProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proofs.push(proofs_1.CommitmentProof.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMerkleProof();\n if (Array.isArray(object?.proofs))\n obj.proofs = object.proofs.map((e) => proofs_1.CommitmentProof.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.proofs) {\n obj.proofs = message.proofs.map((e) => (e ? proofs_1.CommitmentProof.toJSON(e) : undefined));\n }\n else {\n obj.proofs = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMerkleProof();\n message.proofs = object.proofs?.map((e) => proofs_1.CommitmentProof.fromPartial(e)) || [];\n return message;\n },\n};\n//# sourceMappingURL=commitment.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.Version = exports.ConnectionPaths = exports.ClientPaths = exports.Counterparty = exports.IdentifiedConnection = exports.ConnectionEnd = exports.stateToJSON = exports.stateFromJSON = exports.State = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst commitment_1 = require(\"../../commitment/v1/commitment\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.core.connection.v1\";\n/**\n * State defines if a connection is in one of the following states:\n * INIT, TRYOPEN, OPEN or UNINITIALIZED.\n */\nvar State;\n(function (State) {\n /** STATE_UNINITIALIZED_UNSPECIFIED - Default State */\n State[State[\"STATE_UNINITIALIZED_UNSPECIFIED\"] = 0] = \"STATE_UNINITIALIZED_UNSPECIFIED\";\n /** STATE_INIT - A connection end has just started the opening handshake. */\n State[State[\"STATE_INIT\"] = 1] = \"STATE_INIT\";\n /**\n * STATE_TRYOPEN - A connection end has acknowledged the handshake step on the counterparty\n * chain.\n */\n State[State[\"STATE_TRYOPEN\"] = 2] = \"STATE_TRYOPEN\";\n /** STATE_OPEN - A connection end has completed the handshake. */\n State[State[\"STATE_OPEN\"] = 3] = \"STATE_OPEN\";\n State[State[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(State || (exports.State = State = {}));\nfunction stateFromJSON(object) {\n switch (object) {\n case 0:\n case \"STATE_UNINITIALIZED_UNSPECIFIED\":\n return State.STATE_UNINITIALIZED_UNSPECIFIED;\n case 1:\n case \"STATE_INIT\":\n return State.STATE_INIT;\n case 2:\n case \"STATE_TRYOPEN\":\n return State.STATE_TRYOPEN;\n case 3:\n case \"STATE_OPEN\":\n return State.STATE_OPEN;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return State.UNRECOGNIZED;\n }\n}\nexports.stateFromJSON = stateFromJSON;\nfunction stateToJSON(object) {\n switch (object) {\n case State.STATE_UNINITIALIZED_UNSPECIFIED:\n return \"STATE_UNINITIALIZED_UNSPECIFIED\";\n case State.STATE_INIT:\n return \"STATE_INIT\";\n case State.STATE_TRYOPEN:\n return \"STATE_TRYOPEN\";\n case State.STATE_OPEN:\n return \"STATE_OPEN\";\n case State.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.stateToJSON = stateToJSON;\nfunction createBaseConnectionEnd() {\n return {\n clientId: \"\",\n versions: [],\n state: 0,\n counterparty: exports.Counterparty.fromPartial({}),\n delayPeriod: BigInt(0),\n };\n}\nexports.ConnectionEnd = {\n typeUrl: \"/ibc.core.connection.v1.ConnectionEnd\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n for (const v of message.versions) {\n exports.Version.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.state !== 0) {\n writer.uint32(24).int32(message.state);\n }\n if (message.counterparty !== undefined) {\n exports.Counterparty.encode(message.counterparty, writer.uint32(34).fork()).ldelim();\n }\n if (message.delayPeriod !== BigInt(0)) {\n writer.uint32(40).uint64(message.delayPeriod);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseConnectionEnd();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.versions.push(exports.Version.decode(reader, reader.uint32()));\n break;\n case 3:\n message.state = reader.int32();\n break;\n case 4:\n message.counterparty = exports.Counterparty.decode(reader, reader.uint32());\n break;\n case 5:\n message.delayPeriod = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseConnectionEnd();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if (Array.isArray(object?.versions))\n obj.versions = object.versions.map((e) => exports.Version.fromJSON(e));\n if ((0, helpers_1.isSet)(object.state))\n obj.state = stateFromJSON(object.state);\n if ((0, helpers_1.isSet)(object.counterparty))\n obj.counterparty = exports.Counterparty.fromJSON(object.counterparty);\n if ((0, helpers_1.isSet)(object.delayPeriod))\n obj.delayPeriod = BigInt(object.delayPeriod.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n if (message.versions) {\n obj.versions = message.versions.map((e) => (e ? exports.Version.toJSON(e) : undefined));\n }\n else {\n obj.versions = [];\n }\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? exports.Counterparty.toJSON(message.counterparty) : undefined);\n message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseConnectionEnd();\n message.clientId = object.clientId ?? \"\";\n message.versions = object.versions?.map((e) => exports.Version.fromPartial(e)) || [];\n message.state = object.state ?? 0;\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = exports.Counterparty.fromPartial(object.counterparty);\n }\n if (object.delayPeriod !== undefined && object.delayPeriod !== null) {\n message.delayPeriod = BigInt(object.delayPeriod.toString());\n }\n return message;\n },\n};\nfunction createBaseIdentifiedConnection() {\n return {\n id: \"\",\n clientId: \"\",\n versions: [],\n state: 0,\n counterparty: exports.Counterparty.fromPartial({}),\n delayPeriod: BigInt(0),\n };\n}\nexports.IdentifiedConnection = {\n typeUrl: \"/ibc.core.connection.v1.IdentifiedConnection\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.clientId !== \"\") {\n writer.uint32(18).string(message.clientId);\n }\n for (const v of message.versions) {\n exports.Version.encode(v, writer.uint32(26).fork()).ldelim();\n }\n if (message.state !== 0) {\n writer.uint32(32).int32(message.state);\n }\n if (message.counterparty !== undefined) {\n exports.Counterparty.encode(message.counterparty, writer.uint32(42).fork()).ldelim();\n }\n if (message.delayPeriod !== BigInt(0)) {\n writer.uint32(48).uint64(message.delayPeriod);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseIdentifiedConnection();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.string();\n break;\n case 2:\n message.clientId = reader.string();\n break;\n case 3:\n message.versions.push(exports.Version.decode(reader, reader.uint32()));\n break;\n case 4:\n message.state = reader.int32();\n break;\n case 5:\n message.counterparty = exports.Counterparty.decode(reader, reader.uint32());\n break;\n case 6:\n message.delayPeriod = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseIdentifiedConnection();\n if ((0, helpers_1.isSet)(object.id))\n obj.id = String(object.id);\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if (Array.isArray(object?.versions))\n obj.versions = object.versions.map((e) => exports.Version.fromJSON(e));\n if ((0, helpers_1.isSet)(object.state))\n obj.state = stateFromJSON(object.state);\n if ((0, helpers_1.isSet)(object.counterparty))\n obj.counterparty = exports.Counterparty.fromJSON(object.counterparty);\n if ((0, helpers_1.isSet)(object.delayPeriod))\n obj.delayPeriod = BigInt(object.delayPeriod.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.id !== undefined && (obj.id = message.id);\n message.clientId !== undefined && (obj.clientId = message.clientId);\n if (message.versions) {\n obj.versions = message.versions.map((e) => (e ? exports.Version.toJSON(e) : undefined));\n }\n else {\n obj.versions = [];\n }\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? exports.Counterparty.toJSON(message.counterparty) : undefined);\n message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseIdentifiedConnection();\n message.id = object.id ?? \"\";\n message.clientId = object.clientId ?? \"\";\n message.versions = object.versions?.map((e) => exports.Version.fromPartial(e)) || [];\n message.state = object.state ?? 0;\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = exports.Counterparty.fromPartial(object.counterparty);\n }\n if (object.delayPeriod !== undefined && object.delayPeriod !== null) {\n message.delayPeriod = BigInt(object.delayPeriod.toString());\n }\n return message;\n },\n};\nfunction createBaseCounterparty() {\n return {\n clientId: \"\",\n connectionId: \"\",\n prefix: commitment_1.MerklePrefix.fromPartial({}),\n };\n}\nexports.Counterparty = {\n typeUrl: \"/ibc.core.connection.v1.Counterparty\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.connectionId !== \"\") {\n writer.uint32(18).string(message.connectionId);\n }\n if (message.prefix !== undefined) {\n commitment_1.MerklePrefix.encode(message.prefix, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCounterparty();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.connectionId = reader.string();\n break;\n case 3:\n message.prefix = commitment_1.MerklePrefix.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCounterparty();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.connectionId))\n obj.connectionId = String(object.connectionId);\n if ((0, helpers_1.isSet)(object.prefix))\n obj.prefix = commitment_1.MerklePrefix.fromJSON(object.prefix);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n message.prefix !== undefined &&\n (obj.prefix = message.prefix ? commitment_1.MerklePrefix.toJSON(message.prefix) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCounterparty();\n message.clientId = object.clientId ?? \"\";\n message.connectionId = object.connectionId ?? \"\";\n if (object.prefix !== undefined && object.prefix !== null) {\n message.prefix = commitment_1.MerklePrefix.fromPartial(object.prefix);\n }\n return message;\n },\n};\nfunction createBaseClientPaths() {\n return {\n paths: [],\n };\n}\nexports.ClientPaths = {\n typeUrl: \"/ibc.core.connection.v1.ClientPaths\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.paths) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseClientPaths();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.paths.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseClientPaths();\n if (Array.isArray(object?.paths))\n obj.paths = object.paths.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.paths) {\n obj.paths = message.paths.map((e) => e);\n }\n else {\n obj.paths = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseClientPaths();\n message.paths = object.paths?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseConnectionPaths() {\n return {\n clientId: \"\",\n paths: [],\n };\n}\nexports.ConnectionPaths = {\n typeUrl: \"/ibc.core.connection.v1.ConnectionPaths\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n for (const v of message.paths) {\n writer.uint32(18).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseConnectionPaths();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.paths.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseConnectionPaths();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if (Array.isArray(object?.paths))\n obj.paths = object.paths.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n if (message.paths) {\n obj.paths = message.paths.map((e) => e);\n }\n else {\n obj.paths = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseConnectionPaths();\n message.clientId = object.clientId ?? \"\";\n message.paths = object.paths?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseVersion() {\n return {\n identifier: \"\",\n features: [],\n };\n}\nexports.Version = {\n typeUrl: \"/ibc.core.connection.v1.Version\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.identifier !== \"\") {\n writer.uint32(10).string(message.identifier);\n }\n for (const v of message.features) {\n writer.uint32(18).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVersion();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.identifier = reader.string();\n break;\n case 2:\n message.features.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseVersion();\n if ((0, helpers_1.isSet)(object.identifier))\n obj.identifier = String(object.identifier);\n if (Array.isArray(object?.features))\n obj.features = object.features.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.identifier !== undefined && (obj.identifier = message.identifier);\n if (message.features) {\n obj.features = message.features.map((e) => e);\n }\n else {\n obj.features = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseVersion();\n message.identifier = object.identifier ?? \"\";\n message.features = object.features?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseParams() {\n return {\n maxExpectedTimePerBlock: BigInt(0),\n };\n}\nexports.Params = {\n typeUrl: \"/ibc.core.connection.v1.Params\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.maxExpectedTimePerBlock !== BigInt(0)) {\n writer.uint32(8).uint64(message.maxExpectedTimePerBlock);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxExpectedTimePerBlock = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseParams();\n if ((0, helpers_1.isSet)(object.maxExpectedTimePerBlock))\n obj.maxExpectedTimePerBlock = BigInt(object.maxExpectedTimePerBlock.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.maxExpectedTimePerBlock !== undefined &&\n (obj.maxExpectedTimePerBlock = (message.maxExpectedTimePerBlock || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseParams();\n if (object.maxExpectedTimePerBlock !== undefined && object.maxExpectedTimePerBlock !== null) {\n message.maxExpectedTimePerBlock = BigInt(object.maxExpectedTimePerBlock.toString());\n }\n return message;\n },\n};\n//# sourceMappingURL=connection.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryConnectionParamsResponse = exports.QueryConnectionParamsRequest = exports.QueryConnectionConsensusStateResponse = exports.QueryConnectionConsensusStateRequest = exports.QueryConnectionClientStateResponse = exports.QueryConnectionClientStateRequest = exports.QueryClientConnectionsResponse = exports.QueryClientConnectionsRequest = exports.QueryConnectionsResponse = exports.QueryConnectionsRequest = exports.QueryConnectionResponse = exports.QueryConnectionRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst pagination_1 = require(\"../../../../cosmos/base/query/v1beta1/pagination\");\nconst connection_1 = require(\"./connection\");\nconst client_1 = require(\"../../client/v1/client\");\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.core.connection.v1\";\nfunction createBaseQueryConnectionRequest() {\n return {\n connectionId: \"\",\n };\n}\nexports.QueryConnectionRequest = {\n typeUrl: \"/ibc.core.connection.v1.QueryConnectionRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.connectionId !== \"\") {\n writer.uint32(10).string(message.connectionId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConnectionRequest();\n if ((0, helpers_1.isSet)(object.connectionId))\n obj.connectionId = String(object.connectionId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConnectionRequest();\n message.connectionId = object.connectionId ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryConnectionResponse() {\n return {\n connection: undefined,\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryConnectionResponse = {\n typeUrl: \"/ibc.core.connection.v1.QueryConnectionResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.connection !== undefined) {\n connection_1.ConnectionEnd.encode(message.connection, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connection = connection_1.ConnectionEnd.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConnectionResponse();\n if ((0, helpers_1.isSet)(object.connection))\n obj.connection = connection_1.ConnectionEnd.fromJSON(object.connection);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.connection !== undefined &&\n (obj.connection = message.connection ? connection_1.ConnectionEnd.toJSON(message.connection) : undefined);\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConnectionResponse();\n if (object.connection !== undefined && object.connection !== null) {\n message.connection = connection_1.ConnectionEnd.fromPartial(object.connection);\n }\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryConnectionsRequest() {\n return {\n pagination: undefined,\n };\n}\nexports.QueryConnectionsRequest = {\n typeUrl: \"/ibc.core.connection.v1.QueryConnectionsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConnectionsRequest();\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConnectionsRequest();\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryConnectionsResponse() {\n return {\n connections: [],\n pagination: undefined,\n height: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryConnectionsResponse = {\n typeUrl: \"/ibc.core.connection.v1.QueryConnectionsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.connections) {\n connection_1.IdentifiedConnection.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connections.push(connection_1.IdentifiedConnection.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConnectionsResponse();\n if (Array.isArray(object?.connections))\n obj.connections = object.connections.map((e) => connection_1.IdentifiedConnection.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = client_1.Height.fromJSON(object.height);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.connections) {\n obj.connections = message.connections.map((e) => (e ? connection_1.IdentifiedConnection.toJSON(e) : undefined));\n }\n else {\n obj.connections = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConnectionsResponse();\n message.connections = object.connections?.map((e) => connection_1.IdentifiedConnection.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = client_1.Height.fromPartial(object.height);\n }\n return message;\n },\n};\nfunction createBaseQueryClientConnectionsRequest() {\n return {\n clientId: \"\",\n };\n}\nexports.QueryClientConnectionsRequest = {\n typeUrl: \"/ibc.core.connection.v1.QueryClientConnectionsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryClientConnectionsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryClientConnectionsRequest();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryClientConnectionsRequest();\n message.clientId = object.clientId ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryClientConnectionsResponse() {\n return {\n connectionPaths: [],\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryClientConnectionsResponse = {\n typeUrl: \"/ibc.core.connection.v1.QueryClientConnectionsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.connectionPaths) {\n writer.uint32(10).string(v);\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryClientConnectionsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionPaths.push(reader.string());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryClientConnectionsResponse();\n if (Array.isArray(object?.connectionPaths))\n obj.connectionPaths = object.connectionPaths.map((e) => String(e));\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.connectionPaths) {\n obj.connectionPaths = message.connectionPaths.map((e) => e);\n }\n else {\n obj.connectionPaths = [];\n }\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryClientConnectionsResponse();\n message.connectionPaths = object.connectionPaths?.map((e) => e) || [];\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryConnectionClientStateRequest() {\n return {\n connectionId: \"\",\n };\n}\nexports.QueryConnectionClientStateRequest = {\n typeUrl: \"/ibc.core.connection.v1.QueryConnectionClientStateRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.connectionId !== \"\") {\n writer.uint32(10).string(message.connectionId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionClientStateRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConnectionClientStateRequest();\n if ((0, helpers_1.isSet)(object.connectionId))\n obj.connectionId = String(object.connectionId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConnectionClientStateRequest();\n message.connectionId = object.connectionId ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryConnectionClientStateResponse() {\n return {\n identifiedClientState: undefined,\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryConnectionClientStateResponse = {\n typeUrl: \"/ibc.core.connection.v1.QueryConnectionClientStateResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.identifiedClientState !== undefined) {\n client_1.IdentifiedClientState.encode(message.identifiedClientState, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionClientStateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.identifiedClientState = client_1.IdentifiedClientState.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConnectionClientStateResponse();\n if ((0, helpers_1.isSet)(object.identifiedClientState))\n obj.identifiedClientState = client_1.IdentifiedClientState.fromJSON(object.identifiedClientState);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.identifiedClientState !== undefined &&\n (obj.identifiedClientState = message.identifiedClientState\n ? client_1.IdentifiedClientState.toJSON(message.identifiedClientState)\n : undefined);\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConnectionClientStateResponse();\n if (object.identifiedClientState !== undefined && object.identifiedClientState !== null) {\n message.identifiedClientState = client_1.IdentifiedClientState.fromPartial(object.identifiedClientState);\n }\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryConnectionConsensusStateRequest() {\n return {\n connectionId: \"\",\n revisionNumber: BigInt(0),\n revisionHeight: BigInt(0),\n };\n}\nexports.QueryConnectionConsensusStateRequest = {\n typeUrl: \"/ibc.core.connection.v1.QueryConnectionConsensusStateRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.connectionId !== \"\") {\n writer.uint32(10).string(message.connectionId);\n }\n if (message.revisionNumber !== BigInt(0)) {\n writer.uint32(16).uint64(message.revisionNumber);\n }\n if (message.revisionHeight !== BigInt(0)) {\n writer.uint32(24).uint64(message.revisionHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionConsensusStateRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionId = reader.string();\n break;\n case 2:\n message.revisionNumber = reader.uint64();\n break;\n case 3:\n message.revisionHeight = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConnectionConsensusStateRequest();\n if ((0, helpers_1.isSet)(object.connectionId))\n obj.connectionId = String(object.connectionId);\n if ((0, helpers_1.isSet)(object.revisionNumber))\n obj.revisionNumber = BigInt(object.revisionNumber.toString());\n if ((0, helpers_1.isSet)(object.revisionHeight))\n obj.revisionHeight = BigInt(object.revisionHeight.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n message.revisionNumber !== undefined &&\n (obj.revisionNumber = (message.revisionNumber || BigInt(0)).toString());\n message.revisionHeight !== undefined &&\n (obj.revisionHeight = (message.revisionHeight || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConnectionConsensusStateRequest();\n message.connectionId = object.connectionId ?? \"\";\n if (object.revisionNumber !== undefined && object.revisionNumber !== null) {\n message.revisionNumber = BigInt(object.revisionNumber.toString());\n }\n if (object.revisionHeight !== undefined && object.revisionHeight !== null) {\n message.revisionHeight = BigInt(object.revisionHeight.toString());\n }\n return message;\n },\n};\nfunction createBaseQueryConnectionConsensusStateResponse() {\n return {\n consensusState: undefined,\n clientId: \"\",\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryConnectionConsensusStateResponse = {\n typeUrl: \"/ibc.core.connection.v1.QueryConnectionConsensusStateResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(10).fork()).ldelim();\n }\n if (message.clientId !== \"\") {\n writer.uint32(18).string(message.clientId);\n }\n if (message.proof.length !== 0) {\n writer.uint32(26).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionConsensusStateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.clientId = reader.string();\n break;\n case 3:\n message.proof = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConnectionConsensusStateResponse();\n if ((0, helpers_1.isSet)(object.consensusState))\n obj.consensusState = any_1.Any.fromJSON(object.consensusState);\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConnectionConsensusStateResponse();\n if (object.consensusState !== undefined && object.consensusState !== null) {\n message.consensusState = any_1.Any.fromPartial(object.consensusState);\n }\n message.clientId = object.clientId ?? \"\";\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryConnectionParamsRequest() {\n return {};\n}\nexports.QueryConnectionParamsRequest = {\n typeUrl: \"/ibc.core.connection.v1.QueryConnectionParamsRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionParamsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryConnectionParamsRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryConnectionParamsRequest();\n return message;\n },\n};\nfunction createBaseQueryConnectionParamsResponse() {\n return {\n params: undefined,\n };\n}\nexports.QueryConnectionParamsResponse = {\n typeUrl: \"/ibc.core.connection.v1.QueryConnectionParamsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.params !== undefined) {\n client_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = client_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConnectionParamsResponse();\n if ((0, helpers_1.isSet)(object.params))\n obj.params = client_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? client_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConnectionParamsResponse();\n if (object.params !== undefined && object.params !== null) {\n message.params = client_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Connection = this.Connection.bind(this);\n this.Connections = this.Connections.bind(this);\n this.ClientConnections = this.ClientConnections.bind(this);\n this.ConnectionClientState = this.ConnectionClientState.bind(this);\n this.ConnectionConsensusState = this.ConnectionConsensusState.bind(this);\n this.ConnectionParams = this.ConnectionParams.bind(this);\n }\n Connection(request) {\n const data = exports.QueryConnectionRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Query\", \"Connection\", data);\n return promise.then((data) => exports.QueryConnectionResponse.decode(new binary_1.BinaryReader(data)));\n }\n Connections(request = {\n pagination: pagination_1.PageRequest.fromPartial({}),\n }) {\n const data = exports.QueryConnectionsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Query\", \"Connections\", data);\n return promise.then((data) => exports.QueryConnectionsResponse.decode(new binary_1.BinaryReader(data)));\n }\n ClientConnections(request) {\n const data = exports.QueryClientConnectionsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Query\", \"ClientConnections\", data);\n return promise.then((data) => exports.QueryClientConnectionsResponse.decode(new binary_1.BinaryReader(data)));\n }\n ConnectionClientState(request) {\n const data = exports.QueryConnectionClientStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Query\", \"ConnectionClientState\", data);\n return promise.then((data) => exports.QueryConnectionClientStateResponse.decode(new binary_1.BinaryReader(data)));\n }\n ConnectionConsensusState(request) {\n const data = exports.QueryConnectionConsensusStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Query\", \"ConnectionConsensusState\", data);\n return promise.then((data) => exports.QueryConnectionConsensusStateResponse.decode(new binary_1.BinaryReader(data)));\n }\n ConnectionParams(request = {}) {\n const data = exports.QueryConnectionParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Query\", \"ConnectionParams\", data);\n return promise.then((data) => exports.QueryConnectionParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgConnectionOpenConfirmResponse = exports.MsgConnectionOpenConfirm = exports.MsgConnectionOpenAckResponse = exports.MsgConnectionOpenAck = exports.MsgConnectionOpenTryResponse = exports.MsgConnectionOpenTry = exports.MsgConnectionOpenInitResponse = exports.MsgConnectionOpenInit = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst connection_1 = require(\"./connection\");\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst client_1 = require(\"../../client/v1/client\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.core.connection.v1\";\nfunction createBaseMsgConnectionOpenInit() {\n return {\n clientId: \"\",\n counterparty: connection_1.Counterparty.fromPartial({}),\n version: undefined,\n delayPeriod: BigInt(0),\n signer: \"\",\n };\n}\nexports.MsgConnectionOpenInit = {\n typeUrl: \"/ibc.core.connection.v1.MsgConnectionOpenInit\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.counterparty !== undefined) {\n connection_1.Counterparty.encode(message.counterparty, writer.uint32(18).fork()).ldelim();\n }\n if (message.version !== undefined) {\n connection_1.Version.encode(message.version, writer.uint32(26).fork()).ldelim();\n }\n if (message.delayPeriod !== BigInt(0)) {\n writer.uint32(32).uint64(message.delayPeriod);\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenInit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.counterparty = connection_1.Counterparty.decode(reader, reader.uint32());\n break;\n case 3:\n message.version = connection_1.Version.decode(reader, reader.uint32());\n break;\n case 4:\n message.delayPeriod = reader.uint64();\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgConnectionOpenInit();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.counterparty))\n obj.counterparty = connection_1.Counterparty.fromJSON(object.counterparty);\n if ((0, helpers_1.isSet)(object.version))\n obj.version = connection_1.Version.fromJSON(object.version);\n if ((0, helpers_1.isSet)(object.delayPeriod))\n obj.delayPeriod = BigInt(object.delayPeriod.toString());\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? connection_1.Counterparty.toJSON(message.counterparty) : undefined);\n message.version !== undefined &&\n (obj.version = message.version ? connection_1.Version.toJSON(message.version) : undefined);\n message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || BigInt(0)).toString());\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgConnectionOpenInit();\n message.clientId = object.clientId ?? \"\";\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = connection_1.Counterparty.fromPartial(object.counterparty);\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = connection_1.Version.fromPartial(object.version);\n }\n if (object.delayPeriod !== undefined && object.delayPeriod !== null) {\n message.delayPeriod = BigInt(object.delayPeriod.toString());\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgConnectionOpenInitResponse() {\n return {};\n}\nexports.MsgConnectionOpenInitResponse = {\n typeUrl: \"/ibc.core.connection.v1.MsgConnectionOpenInitResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenInitResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgConnectionOpenInitResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgConnectionOpenInitResponse();\n return message;\n },\n};\nfunction createBaseMsgConnectionOpenTry() {\n return {\n clientId: \"\",\n previousConnectionId: \"\",\n clientState: undefined,\n counterparty: connection_1.Counterparty.fromPartial({}),\n delayPeriod: BigInt(0),\n counterpartyVersions: [],\n proofHeight: client_1.Height.fromPartial({}),\n proofInit: new Uint8Array(),\n proofClient: new Uint8Array(),\n proofConsensus: new Uint8Array(),\n consensusHeight: client_1.Height.fromPartial({}),\n signer: \"\",\n hostConsensusStateProof: new Uint8Array(),\n };\n}\nexports.MsgConnectionOpenTry = {\n typeUrl: \"/ibc.core.connection.v1.MsgConnectionOpenTry\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.previousConnectionId !== \"\") {\n writer.uint32(18).string(message.previousConnectionId);\n }\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(26).fork()).ldelim();\n }\n if (message.counterparty !== undefined) {\n connection_1.Counterparty.encode(message.counterparty, writer.uint32(34).fork()).ldelim();\n }\n if (message.delayPeriod !== BigInt(0)) {\n writer.uint32(40).uint64(message.delayPeriod);\n }\n for (const v of message.counterpartyVersions) {\n connection_1.Version.encode(v, writer.uint32(50).fork()).ldelim();\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(58).fork()).ldelim();\n }\n if (message.proofInit.length !== 0) {\n writer.uint32(66).bytes(message.proofInit);\n }\n if (message.proofClient.length !== 0) {\n writer.uint32(74).bytes(message.proofClient);\n }\n if (message.proofConsensus.length !== 0) {\n writer.uint32(82).bytes(message.proofConsensus);\n }\n if (message.consensusHeight !== undefined) {\n client_1.Height.encode(message.consensusHeight, writer.uint32(90).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(98).string(message.signer);\n }\n if (message.hostConsensusStateProof.length !== 0) {\n writer.uint32(106).bytes(message.hostConsensusStateProof);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenTry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.previousConnectionId = reader.string();\n break;\n case 3:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 4:\n message.counterparty = connection_1.Counterparty.decode(reader, reader.uint32());\n break;\n case 5:\n message.delayPeriod = reader.uint64();\n break;\n case 6:\n message.counterpartyVersions.push(connection_1.Version.decode(reader, reader.uint32()));\n break;\n case 7:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 8:\n message.proofInit = reader.bytes();\n break;\n case 9:\n message.proofClient = reader.bytes();\n break;\n case 10:\n message.proofConsensus = reader.bytes();\n break;\n case 11:\n message.consensusHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 12:\n message.signer = reader.string();\n break;\n case 13:\n message.hostConsensusStateProof = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgConnectionOpenTry();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.previousConnectionId))\n obj.previousConnectionId = String(object.previousConnectionId);\n if ((0, helpers_1.isSet)(object.clientState))\n obj.clientState = any_1.Any.fromJSON(object.clientState);\n if ((0, helpers_1.isSet)(object.counterparty))\n obj.counterparty = connection_1.Counterparty.fromJSON(object.counterparty);\n if ((0, helpers_1.isSet)(object.delayPeriod))\n obj.delayPeriod = BigInt(object.delayPeriod.toString());\n if (Array.isArray(object?.counterpartyVersions))\n obj.counterpartyVersions = object.counterpartyVersions.map((e) => connection_1.Version.fromJSON(e));\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n if ((0, helpers_1.isSet)(object.proofInit))\n obj.proofInit = (0, helpers_1.bytesFromBase64)(object.proofInit);\n if ((0, helpers_1.isSet)(object.proofClient))\n obj.proofClient = (0, helpers_1.bytesFromBase64)(object.proofClient);\n if ((0, helpers_1.isSet)(object.proofConsensus))\n obj.proofConsensus = (0, helpers_1.bytesFromBase64)(object.proofConsensus);\n if ((0, helpers_1.isSet)(object.consensusHeight))\n obj.consensusHeight = client_1.Height.fromJSON(object.consensusHeight);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n if ((0, helpers_1.isSet)(object.hostConsensusStateProof))\n obj.hostConsensusStateProof = (0, helpers_1.bytesFromBase64)(object.hostConsensusStateProof);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.previousConnectionId !== undefined && (obj.previousConnectionId = message.previousConnectionId);\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? connection_1.Counterparty.toJSON(message.counterparty) : undefined);\n message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || BigInt(0)).toString());\n if (message.counterpartyVersions) {\n obj.counterpartyVersions = message.counterpartyVersions.map((e) => (e ? connection_1.Version.toJSON(e) : undefined));\n }\n else {\n obj.counterpartyVersions = [];\n }\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.proofInit !== undefined &&\n (obj.proofInit = (0, helpers_1.base64FromBytes)(message.proofInit !== undefined ? message.proofInit : new Uint8Array()));\n message.proofClient !== undefined &&\n (obj.proofClient = (0, helpers_1.base64FromBytes)(message.proofClient !== undefined ? message.proofClient : new Uint8Array()));\n message.proofConsensus !== undefined &&\n (obj.proofConsensus = (0, helpers_1.base64FromBytes)(message.proofConsensus !== undefined ? message.proofConsensus : new Uint8Array()));\n message.consensusHeight !== undefined &&\n (obj.consensusHeight = message.consensusHeight ? client_1.Height.toJSON(message.consensusHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n message.hostConsensusStateProof !== undefined &&\n (obj.hostConsensusStateProof = (0, helpers_1.base64FromBytes)(message.hostConsensusStateProof !== undefined ? message.hostConsensusStateProof : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgConnectionOpenTry();\n message.clientId = object.clientId ?? \"\";\n message.previousConnectionId = object.previousConnectionId ?? \"\";\n if (object.clientState !== undefined && object.clientState !== null) {\n message.clientState = any_1.Any.fromPartial(object.clientState);\n }\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = connection_1.Counterparty.fromPartial(object.counterparty);\n }\n if (object.delayPeriod !== undefined && object.delayPeriod !== null) {\n message.delayPeriod = BigInt(object.delayPeriod.toString());\n }\n message.counterpartyVersions = object.counterpartyVersions?.map((e) => connection_1.Version.fromPartial(e)) || [];\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n message.proofInit = object.proofInit ?? new Uint8Array();\n message.proofClient = object.proofClient ?? new Uint8Array();\n message.proofConsensus = object.proofConsensus ?? new Uint8Array();\n if (object.consensusHeight !== undefined && object.consensusHeight !== null) {\n message.consensusHeight = client_1.Height.fromPartial(object.consensusHeight);\n }\n message.signer = object.signer ?? \"\";\n message.hostConsensusStateProof = object.hostConsensusStateProof ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseMsgConnectionOpenTryResponse() {\n return {};\n}\nexports.MsgConnectionOpenTryResponse = {\n typeUrl: \"/ibc.core.connection.v1.MsgConnectionOpenTryResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenTryResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgConnectionOpenTryResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgConnectionOpenTryResponse();\n return message;\n },\n};\nfunction createBaseMsgConnectionOpenAck() {\n return {\n connectionId: \"\",\n counterpartyConnectionId: \"\",\n version: undefined,\n clientState: undefined,\n proofHeight: client_1.Height.fromPartial({}),\n proofTry: new Uint8Array(),\n proofClient: new Uint8Array(),\n proofConsensus: new Uint8Array(),\n consensusHeight: client_1.Height.fromPartial({}),\n signer: \"\",\n hostConsensusStateProof: new Uint8Array(),\n };\n}\nexports.MsgConnectionOpenAck = {\n typeUrl: \"/ibc.core.connection.v1.MsgConnectionOpenAck\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.connectionId !== \"\") {\n writer.uint32(10).string(message.connectionId);\n }\n if (message.counterpartyConnectionId !== \"\") {\n writer.uint32(18).string(message.counterpartyConnectionId);\n }\n if (message.version !== undefined) {\n connection_1.Version.encode(message.version, writer.uint32(26).fork()).ldelim();\n }\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(34).fork()).ldelim();\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(42).fork()).ldelim();\n }\n if (message.proofTry.length !== 0) {\n writer.uint32(50).bytes(message.proofTry);\n }\n if (message.proofClient.length !== 0) {\n writer.uint32(58).bytes(message.proofClient);\n }\n if (message.proofConsensus.length !== 0) {\n writer.uint32(66).bytes(message.proofConsensus);\n }\n if (message.consensusHeight !== undefined) {\n client_1.Height.encode(message.consensusHeight, writer.uint32(74).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(82).string(message.signer);\n }\n if (message.hostConsensusStateProof.length !== 0) {\n writer.uint32(90).bytes(message.hostConsensusStateProof);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenAck();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionId = reader.string();\n break;\n case 2:\n message.counterpartyConnectionId = reader.string();\n break;\n case 3:\n message.version = connection_1.Version.decode(reader, reader.uint32());\n break;\n case 4:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 5:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 6:\n message.proofTry = reader.bytes();\n break;\n case 7:\n message.proofClient = reader.bytes();\n break;\n case 8:\n message.proofConsensus = reader.bytes();\n break;\n case 9:\n message.consensusHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 10:\n message.signer = reader.string();\n break;\n case 11:\n message.hostConsensusStateProof = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgConnectionOpenAck();\n if ((0, helpers_1.isSet)(object.connectionId))\n obj.connectionId = String(object.connectionId);\n if ((0, helpers_1.isSet)(object.counterpartyConnectionId))\n obj.counterpartyConnectionId = String(object.counterpartyConnectionId);\n if ((0, helpers_1.isSet)(object.version))\n obj.version = connection_1.Version.fromJSON(object.version);\n if ((0, helpers_1.isSet)(object.clientState))\n obj.clientState = any_1.Any.fromJSON(object.clientState);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n if ((0, helpers_1.isSet)(object.proofTry))\n obj.proofTry = (0, helpers_1.bytesFromBase64)(object.proofTry);\n if ((0, helpers_1.isSet)(object.proofClient))\n obj.proofClient = (0, helpers_1.bytesFromBase64)(object.proofClient);\n if ((0, helpers_1.isSet)(object.proofConsensus))\n obj.proofConsensus = (0, helpers_1.bytesFromBase64)(object.proofConsensus);\n if ((0, helpers_1.isSet)(object.consensusHeight))\n obj.consensusHeight = client_1.Height.fromJSON(object.consensusHeight);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n if ((0, helpers_1.isSet)(object.hostConsensusStateProof))\n obj.hostConsensusStateProof = (0, helpers_1.bytesFromBase64)(object.hostConsensusStateProof);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n message.counterpartyConnectionId !== undefined &&\n (obj.counterpartyConnectionId = message.counterpartyConnectionId);\n message.version !== undefined &&\n (obj.version = message.version ? connection_1.Version.toJSON(message.version) : undefined);\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.proofTry !== undefined &&\n (obj.proofTry = (0, helpers_1.base64FromBytes)(message.proofTry !== undefined ? message.proofTry : new Uint8Array()));\n message.proofClient !== undefined &&\n (obj.proofClient = (0, helpers_1.base64FromBytes)(message.proofClient !== undefined ? message.proofClient : new Uint8Array()));\n message.proofConsensus !== undefined &&\n (obj.proofConsensus = (0, helpers_1.base64FromBytes)(message.proofConsensus !== undefined ? message.proofConsensus : new Uint8Array()));\n message.consensusHeight !== undefined &&\n (obj.consensusHeight = message.consensusHeight ? client_1.Height.toJSON(message.consensusHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n message.hostConsensusStateProof !== undefined &&\n (obj.hostConsensusStateProof = (0, helpers_1.base64FromBytes)(message.hostConsensusStateProof !== undefined ? message.hostConsensusStateProof : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgConnectionOpenAck();\n message.connectionId = object.connectionId ?? \"\";\n message.counterpartyConnectionId = object.counterpartyConnectionId ?? \"\";\n if (object.version !== undefined && object.version !== null) {\n message.version = connection_1.Version.fromPartial(object.version);\n }\n if (object.clientState !== undefined && object.clientState !== null) {\n message.clientState = any_1.Any.fromPartial(object.clientState);\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n message.proofTry = object.proofTry ?? new Uint8Array();\n message.proofClient = object.proofClient ?? new Uint8Array();\n message.proofConsensus = object.proofConsensus ?? new Uint8Array();\n if (object.consensusHeight !== undefined && object.consensusHeight !== null) {\n message.consensusHeight = client_1.Height.fromPartial(object.consensusHeight);\n }\n message.signer = object.signer ?? \"\";\n message.hostConsensusStateProof = object.hostConsensusStateProof ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseMsgConnectionOpenAckResponse() {\n return {};\n}\nexports.MsgConnectionOpenAckResponse = {\n typeUrl: \"/ibc.core.connection.v1.MsgConnectionOpenAckResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenAckResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgConnectionOpenAckResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgConnectionOpenAckResponse();\n return message;\n },\n};\nfunction createBaseMsgConnectionOpenConfirm() {\n return {\n connectionId: \"\",\n proofAck: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n signer: \"\",\n };\n}\nexports.MsgConnectionOpenConfirm = {\n typeUrl: \"/ibc.core.connection.v1.MsgConnectionOpenConfirm\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.connectionId !== \"\") {\n writer.uint32(10).string(message.connectionId);\n }\n if (message.proofAck.length !== 0) {\n writer.uint32(18).bytes(message.proofAck);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(34).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenConfirm();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionId = reader.string();\n break;\n case 2:\n message.proofAck = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 4:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgConnectionOpenConfirm();\n if ((0, helpers_1.isSet)(object.connectionId))\n obj.connectionId = String(object.connectionId);\n if ((0, helpers_1.isSet)(object.proofAck))\n obj.proofAck = (0, helpers_1.bytesFromBase64)(object.proofAck);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n message.proofAck !== undefined &&\n (obj.proofAck = (0, helpers_1.base64FromBytes)(message.proofAck !== undefined ? message.proofAck : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgConnectionOpenConfirm();\n message.connectionId = object.connectionId ?? \"\";\n message.proofAck = object.proofAck ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgConnectionOpenConfirmResponse() {\n return {};\n}\nexports.MsgConnectionOpenConfirmResponse = {\n typeUrl: \"/ibc.core.connection.v1.MsgConnectionOpenConfirmResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenConfirmResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgConnectionOpenConfirmResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgConnectionOpenConfirmResponse();\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.ConnectionOpenInit = this.ConnectionOpenInit.bind(this);\n this.ConnectionOpenTry = this.ConnectionOpenTry.bind(this);\n this.ConnectionOpenAck = this.ConnectionOpenAck.bind(this);\n this.ConnectionOpenConfirm = this.ConnectionOpenConfirm.bind(this);\n }\n ConnectionOpenInit(request) {\n const data = exports.MsgConnectionOpenInit.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Msg\", \"ConnectionOpenInit\", data);\n return promise.then((data) => exports.MsgConnectionOpenInitResponse.decode(new binary_1.BinaryReader(data)));\n }\n ConnectionOpenTry(request) {\n const data = exports.MsgConnectionOpenTry.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Msg\", \"ConnectionOpenTry\", data);\n return promise.then((data) => exports.MsgConnectionOpenTryResponse.decode(new binary_1.BinaryReader(data)));\n }\n ConnectionOpenAck(request) {\n const data = exports.MsgConnectionOpenAck.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Msg\", \"ConnectionOpenAck\", data);\n return promise.then((data) => exports.MsgConnectionOpenAckResponse.decode(new binary_1.BinaryReader(data)));\n }\n ConnectionOpenConfirm(request) {\n const data = exports.MsgConnectionOpenConfirm.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Msg\", \"ConnectionOpenConfirm\", data);\n return promise.then((data) => exports.MsgConnectionOpenConfirmResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Fraction = exports.Header = exports.Misbehaviour = exports.ConsensusState = exports.ClientState = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst duration_1 = require(\"../../../../google/protobuf/duration\");\nconst client_1 = require(\"../../../core/client/v1/client\");\nconst proofs_1 = require(\"../../../../cosmos/ics23/v1/proofs\");\nconst timestamp_1 = require(\"../../../../google/protobuf/timestamp\");\nconst commitment_1 = require(\"../../../core/commitment/v1/commitment\");\nconst types_1 = require(\"../../../../tendermint/types/types\");\nconst validator_1 = require(\"../../../../tendermint/types/validator\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.lightclients.tendermint.v1\";\nfunction createBaseClientState() {\n return {\n chainId: \"\",\n trustLevel: exports.Fraction.fromPartial({}),\n trustingPeriod: duration_1.Duration.fromPartial({}),\n unbondingPeriod: duration_1.Duration.fromPartial({}),\n maxClockDrift: duration_1.Duration.fromPartial({}),\n frozenHeight: client_1.Height.fromPartial({}),\n latestHeight: client_1.Height.fromPartial({}),\n proofSpecs: [],\n upgradePath: [],\n allowUpdateAfterExpiry: false,\n allowUpdateAfterMisbehaviour: false,\n };\n}\nexports.ClientState = {\n typeUrl: \"/ibc.lightclients.tendermint.v1.ClientState\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.chainId !== \"\") {\n writer.uint32(10).string(message.chainId);\n }\n if (message.trustLevel !== undefined) {\n exports.Fraction.encode(message.trustLevel, writer.uint32(18).fork()).ldelim();\n }\n if (message.trustingPeriod !== undefined) {\n duration_1.Duration.encode(message.trustingPeriod, writer.uint32(26).fork()).ldelim();\n }\n if (message.unbondingPeriod !== undefined) {\n duration_1.Duration.encode(message.unbondingPeriod, writer.uint32(34).fork()).ldelim();\n }\n if (message.maxClockDrift !== undefined) {\n duration_1.Duration.encode(message.maxClockDrift, writer.uint32(42).fork()).ldelim();\n }\n if (message.frozenHeight !== undefined) {\n client_1.Height.encode(message.frozenHeight, writer.uint32(50).fork()).ldelim();\n }\n if (message.latestHeight !== undefined) {\n client_1.Height.encode(message.latestHeight, writer.uint32(58).fork()).ldelim();\n }\n for (const v of message.proofSpecs) {\n proofs_1.ProofSpec.encode(v, writer.uint32(66).fork()).ldelim();\n }\n for (const v of message.upgradePath) {\n writer.uint32(74).string(v);\n }\n if (message.allowUpdateAfterExpiry === true) {\n writer.uint32(80).bool(message.allowUpdateAfterExpiry);\n }\n if (message.allowUpdateAfterMisbehaviour === true) {\n writer.uint32(88).bool(message.allowUpdateAfterMisbehaviour);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseClientState();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.chainId = reader.string();\n break;\n case 2:\n message.trustLevel = exports.Fraction.decode(reader, reader.uint32());\n break;\n case 3:\n message.trustingPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 4:\n message.unbondingPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 5:\n message.maxClockDrift = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 6:\n message.frozenHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 7:\n message.latestHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 8:\n message.proofSpecs.push(proofs_1.ProofSpec.decode(reader, reader.uint32()));\n break;\n case 9:\n message.upgradePath.push(reader.string());\n break;\n case 10:\n message.allowUpdateAfterExpiry = reader.bool();\n break;\n case 11:\n message.allowUpdateAfterMisbehaviour = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseClientState();\n if ((0, helpers_1.isSet)(object.chainId))\n obj.chainId = String(object.chainId);\n if ((0, helpers_1.isSet)(object.trustLevel))\n obj.trustLevel = exports.Fraction.fromJSON(object.trustLevel);\n if ((0, helpers_1.isSet)(object.trustingPeriod))\n obj.trustingPeriod = duration_1.Duration.fromJSON(object.trustingPeriod);\n if ((0, helpers_1.isSet)(object.unbondingPeriod))\n obj.unbondingPeriod = duration_1.Duration.fromJSON(object.unbondingPeriod);\n if ((0, helpers_1.isSet)(object.maxClockDrift))\n obj.maxClockDrift = duration_1.Duration.fromJSON(object.maxClockDrift);\n if ((0, helpers_1.isSet)(object.frozenHeight))\n obj.frozenHeight = client_1.Height.fromJSON(object.frozenHeight);\n if ((0, helpers_1.isSet)(object.latestHeight))\n obj.latestHeight = client_1.Height.fromJSON(object.latestHeight);\n if (Array.isArray(object?.proofSpecs))\n obj.proofSpecs = object.proofSpecs.map((e) => proofs_1.ProofSpec.fromJSON(e));\n if (Array.isArray(object?.upgradePath))\n obj.upgradePath = object.upgradePath.map((e) => String(e));\n if ((0, helpers_1.isSet)(object.allowUpdateAfterExpiry))\n obj.allowUpdateAfterExpiry = Boolean(object.allowUpdateAfterExpiry);\n if ((0, helpers_1.isSet)(object.allowUpdateAfterMisbehaviour))\n obj.allowUpdateAfterMisbehaviour = Boolean(object.allowUpdateAfterMisbehaviour);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.trustLevel !== undefined &&\n (obj.trustLevel = message.trustLevel ? exports.Fraction.toJSON(message.trustLevel) : undefined);\n message.trustingPeriod !== undefined &&\n (obj.trustingPeriod = message.trustingPeriod ? duration_1.Duration.toJSON(message.trustingPeriod) : undefined);\n message.unbondingPeriod !== undefined &&\n (obj.unbondingPeriod = message.unbondingPeriod ? duration_1.Duration.toJSON(message.unbondingPeriod) : undefined);\n message.maxClockDrift !== undefined &&\n (obj.maxClockDrift = message.maxClockDrift ? duration_1.Duration.toJSON(message.maxClockDrift) : undefined);\n message.frozenHeight !== undefined &&\n (obj.frozenHeight = message.frozenHeight ? client_1.Height.toJSON(message.frozenHeight) : undefined);\n message.latestHeight !== undefined &&\n (obj.latestHeight = message.latestHeight ? client_1.Height.toJSON(message.latestHeight) : undefined);\n if (message.proofSpecs) {\n obj.proofSpecs = message.proofSpecs.map((e) => (e ? proofs_1.ProofSpec.toJSON(e) : undefined));\n }\n else {\n obj.proofSpecs = [];\n }\n if (message.upgradePath) {\n obj.upgradePath = message.upgradePath.map((e) => e);\n }\n else {\n obj.upgradePath = [];\n }\n message.allowUpdateAfterExpiry !== undefined &&\n (obj.allowUpdateAfterExpiry = message.allowUpdateAfterExpiry);\n message.allowUpdateAfterMisbehaviour !== undefined &&\n (obj.allowUpdateAfterMisbehaviour = message.allowUpdateAfterMisbehaviour);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseClientState();\n message.chainId = object.chainId ?? \"\";\n if (object.trustLevel !== undefined && object.trustLevel !== null) {\n message.trustLevel = exports.Fraction.fromPartial(object.trustLevel);\n }\n if (object.trustingPeriod !== undefined && object.trustingPeriod !== null) {\n message.trustingPeriod = duration_1.Duration.fromPartial(object.trustingPeriod);\n }\n if (object.unbondingPeriod !== undefined && object.unbondingPeriod !== null) {\n message.unbondingPeriod = duration_1.Duration.fromPartial(object.unbondingPeriod);\n }\n if (object.maxClockDrift !== undefined && object.maxClockDrift !== null) {\n message.maxClockDrift = duration_1.Duration.fromPartial(object.maxClockDrift);\n }\n if (object.frozenHeight !== undefined && object.frozenHeight !== null) {\n message.frozenHeight = client_1.Height.fromPartial(object.frozenHeight);\n }\n if (object.latestHeight !== undefined && object.latestHeight !== null) {\n message.latestHeight = client_1.Height.fromPartial(object.latestHeight);\n }\n message.proofSpecs = object.proofSpecs?.map((e) => proofs_1.ProofSpec.fromPartial(e)) || [];\n message.upgradePath = object.upgradePath?.map((e) => e) || [];\n message.allowUpdateAfterExpiry = object.allowUpdateAfterExpiry ?? false;\n message.allowUpdateAfterMisbehaviour = object.allowUpdateAfterMisbehaviour ?? false;\n return message;\n },\n};\nfunction createBaseConsensusState() {\n return {\n timestamp: timestamp_1.Timestamp.fromPartial({}),\n root: commitment_1.MerkleRoot.fromPartial({}),\n nextValidatorsHash: new Uint8Array(),\n };\n}\nexports.ConsensusState = {\n typeUrl: \"/ibc.lightclients.tendermint.v1.ConsensusState\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(message.timestamp, writer.uint32(10).fork()).ldelim();\n }\n if (message.root !== undefined) {\n commitment_1.MerkleRoot.encode(message.root, writer.uint32(18).fork()).ldelim();\n }\n if (message.nextValidatorsHash.length !== 0) {\n writer.uint32(26).bytes(message.nextValidatorsHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseConsensusState();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.timestamp = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 2:\n message.root = commitment_1.MerkleRoot.decode(reader, reader.uint32());\n break;\n case 3:\n message.nextValidatorsHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseConsensusState();\n if ((0, helpers_1.isSet)(object.timestamp))\n obj.timestamp = (0, helpers_1.fromJsonTimestamp)(object.timestamp);\n if ((0, helpers_1.isSet)(object.root))\n obj.root = commitment_1.MerkleRoot.fromJSON(object.root);\n if ((0, helpers_1.isSet)(object.nextValidatorsHash))\n obj.nextValidatorsHash = (0, helpers_1.bytesFromBase64)(object.nextValidatorsHash);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.timestamp !== undefined && (obj.timestamp = (0, helpers_1.fromTimestamp)(message.timestamp).toISOString());\n message.root !== undefined && (obj.root = message.root ? commitment_1.MerkleRoot.toJSON(message.root) : undefined);\n message.nextValidatorsHash !== undefined &&\n (obj.nextValidatorsHash = (0, helpers_1.base64FromBytes)(message.nextValidatorsHash !== undefined ? message.nextValidatorsHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseConsensusState();\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = timestamp_1.Timestamp.fromPartial(object.timestamp);\n }\n if (object.root !== undefined && object.root !== null) {\n message.root = commitment_1.MerkleRoot.fromPartial(object.root);\n }\n message.nextValidatorsHash = object.nextValidatorsHash ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseMisbehaviour() {\n return {\n clientId: \"\",\n header1: undefined,\n header2: undefined,\n };\n}\nexports.Misbehaviour = {\n typeUrl: \"/ibc.lightclients.tendermint.v1.Misbehaviour\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.header1 !== undefined) {\n exports.Header.encode(message.header1, writer.uint32(18).fork()).ldelim();\n }\n if (message.header2 !== undefined) {\n exports.Header.encode(message.header2, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMisbehaviour();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.header1 = exports.Header.decode(reader, reader.uint32());\n break;\n case 3:\n message.header2 = exports.Header.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMisbehaviour();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.header1))\n obj.header1 = exports.Header.fromJSON(object.header1);\n if ((0, helpers_1.isSet)(object.header2))\n obj.header2 = exports.Header.fromJSON(object.header2);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.header1 !== undefined &&\n (obj.header1 = message.header1 ? exports.Header.toJSON(message.header1) : undefined);\n message.header2 !== undefined &&\n (obj.header2 = message.header2 ? exports.Header.toJSON(message.header2) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMisbehaviour();\n message.clientId = object.clientId ?? \"\";\n if (object.header1 !== undefined && object.header1 !== null) {\n message.header1 = exports.Header.fromPartial(object.header1);\n }\n if (object.header2 !== undefined && object.header2 !== null) {\n message.header2 = exports.Header.fromPartial(object.header2);\n }\n return message;\n },\n};\nfunction createBaseHeader() {\n return {\n signedHeader: undefined,\n validatorSet: undefined,\n trustedHeight: client_1.Height.fromPartial({}),\n trustedValidators: undefined,\n };\n}\nexports.Header = {\n typeUrl: \"/ibc.lightclients.tendermint.v1.Header\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.signedHeader !== undefined) {\n types_1.SignedHeader.encode(message.signedHeader, writer.uint32(10).fork()).ldelim();\n }\n if (message.validatorSet !== undefined) {\n validator_1.ValidatorSet.encode(message.validatorSet, writer.uint32(18).fork()).ldelim();\n }\n if (message.trustedHeight !== undefined) {\n client_1.Height.encode(message.trustedHeight, writer.uint32(26).fork()).ldelim();\n }\n if (message.trustedValidators !== undefined) {\n validator_1.ValidatorSet.encode(message.trustedValidators, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHeader();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signedHeader = types_1.SignedHeader.decode(reader, reader.uint32());\n break;\n case 2:\n message.validatorSet = validator_1.ValidatorSet.decode(reader, reader.uint32());\n break;\n case 3:\n message.trustedHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 4:\n message.trustedValidators = validator_1.ValidatorSet.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseHeader();\n if ((0, helpers_1.isSet)(object.signedHeader))\n obj.signedHeader = types_1.SignedHeader.fromJSON(object.signedHeader);\n if ((0, helpers_1.isSet)(object.validatorSet))\n obj.validatorSet = validator_1.ValidatorSet.fromJSON(object.validatorSet);\n if ((0, helpers_1.isSet)(object.trustedHeight))\n obj.trustedHeight = client_1.Height.fromJSON(object.trustedHeight);\n if ((0, helpers_1.isSet)(object.trustedValidators))\n obj.trustedValidators = validator_1.ValidatorSet.fromJSON(object.trustedValidators);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.signedHeader !== undefined &&\n (obj.signedHeader = message.signedHeader ? types_1.SignedHeader.toJSON(message.signedHeader) : undefined);\n message.validatorSet !== undefined &&\n (obj.validatorSet = message.validatorSet ? validator_1.ValidatorSet.toJSON(message.validatorSet) : undefined);\n message.trustedHeight !== undefined &&\n (obj.trustedHeight = message.trustedHeight ? client_1.Height.toJSON(message.trustedHeight) : undefined);\n message.trustedValidators !== undefined &&\n (obj.trustedValidators = message.trustedValidators\n ? validator_1.ValidatorSet.toJSON(message.trustedValidators)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseHeader();\n if (object.signedHeader !== undefined && object.signedHeader !== null) {\n message.signedHeader = types_1.SignedHeader.fromPartial(object.signedHeader);\n }\n if (object.validatorSet !== undefined && object.validatorSet !== null) {\n message.validatorSet = validator_1.ValidatorSet.fromPartial(object.validatorSet);\n }\n if (object.trustedHeight !== undefined && object.trustedHeight !== null) {\n message.trustedHeight = client_1.Height.fromPartial(object.trustedHeight);\n }\n if (object.trustedValidators !== undefined && object.trustedValidators !== null) {\n message.trustedValidators = validator_1.ValidatorSet.fromPartial(object.trustedValidators);\n }\n return message;\n },\n};\nfunction createBaseFraction() {\n return {\n numerator: BigInt(0),\n denominator: BigInt(0),\n };\n}\nexports.Fraction = {\n typeUrl: \"/ibc.lightclients.tendermint.v1.Fraction\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.numerator !== BigInt(0)) {\n writer.uint32(8).uint64(message.numerator);\n }\n if (message.denominator !== BigInt(0)) {\n writer.uint32(16).uint64(message.denominator);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFraction();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.numerator = reader.uint64();\n break;\n case 2:\n message.denominator = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseFraction();\n if ((0, helpers_1.isSet)(object.numerator))\n obj.numerator = BigInt(object.numerator.toString());\n if ((0, helpers_1.isSet)(object.denominator))\n obj.denominator = BigInt(object.denominator.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.numerator !== undefined && (obj.numerator = (message.numerator || BigInt(0)).toString());\n message.denominator !== undefined && (obj.denominator = (message.denominator || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseFraction();\n if (object.numerator !== undefined && object.numerator !== null) {\n message.numerator = BigInt(object.numerator.toString());\n }\n if (object.denominator !== undefined && object.denominator !== null) {\n message.denominator = BigInt(object.denominator.toString());\n }\n return message;\n },\n};\n//# sourceMappingURL=tendermint.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResponsePrepareProposal = exports.ResponseApplySnapshotChunk = exports.ResponseLoadSnapshotChunk = exports.ResponseOfferSnapshot = exports.ResponseListSnapshots = exports.ResponseCommit = exports.ResponseEndBlock = exports.ResponseDeliverTx = exports.ResponseCheckTx = exports.ResponseBeginBlock = exports.ResponseQuery = exports.ResponseInitChain = exports.ResponseInfo = exports.ResponseFlush = exports.ResponseEcho = exports.ResponseException = exports.Response = exports.RequestProcessProposal = exports.RequestPrepareProposal = exports.RequestApplySnapshotChunk = exports.RequestLoadSnapshotChunk = exports.RequestOfferSnapshot = exports.RequestListSnapshots = exports.RequestCommit = exports.RequestEndBlock = exports.RequestDeliverTx = exports.RequestCheckTx = exports.RequestBeginBlock = exports.RequestQuery = exports.RequestInitChain = exports.RequestInfo = exports.RequestFlush = exports.RequestEcho = exports.Request = exports.misbehaviorTypeToJSON = exports.misbehaviorTypeFromJSON = exports.MisbehaviorType = exports.responseProcessProposal_ProposalStatusToJSON = exports.responseProcessProposal_ProposalStatusFromJSON = exports.ResponseProcessProposal_ProposalStatus = exports.responseApplySnapshotChunk_ResultToJSON = exports.responseApplySnapshotChunk_ResultFromJSON = exports.ResponseApplySnapshotChunk_Result = exports.responseOfferSnapshot_ResultToJSON = exports.responseOfferSnapshot_ResultFromJSON = exports.ResponseOfferSnapshot_Result = exports.checkTxTypeToJSON = exports.checkTxTypeFromJSON = exports.CheckTxType = exports.protobufPackage = void 0;\nexports.ABCIApplicationClientImpl = exports.Snapshot = exports.Misbehavior = exports.ExtendedVoteInfo = exports.VoteInfo = exports.ValidatorUpdate = exports.Validator = exports.TxResult = exports.EventAttribute = exports.Event = exports.ExtendedCommitInfo = exports.CommitInfo = exports.ResponseProcessProposal = void 0;\n/* eslint-disable */\nconst timestamp_1 = require(\"../../google/protobuf/timestamp\");\nconst params_1 = require(\"../types/params\");\nconst types_1 = require(\"../types/types\");\nconst proof_1 = require(\"../crypto/proof\");\nconst keys_1 = require(\"../crypto/keys\");\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"tendermint.abci\";\nvar CheckTxType;\n(function (CheckTxType) {\n CheckTxType[CheckTxType[\"NEW\"] = 0] = \"NEW\";\n CheckTxType[CheckTxType[\"RECHECK\"] = 1] = \"RECHECK\";\n CheckTxType[CheckTxType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(CheckTxType || (exports.CheckTxType = CheckTxType = {}));\nfunction checkTxTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"NEW\":\n return CheckTxType.NEW;\n case 1:\n case \"RECHECK\":\n return CheckTxType.RECHECK;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return CheckTxType.UNRECOGNIZED;\n }\n}\nexports.checkTxTypeFromJSON = checkTxTypeFromJSON;\nfunction checkTxTypeToJSON(object) {\n switch (object) {\n case CheckTxType.NEW:\n return \"NEW\";\n case CheckTxType.RECHECK:\n return \"RECHECK\";\n case CheckTxType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.checkTxTypeToJSON = checkTxTypeToJSON;\nvar ResponseOfferSnapshot_Result;\n(function (ResponseOfferSnapshot_Result) {\n /** UNKNOWN - Unknown result, abort all snapshot restoration */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n /** ACCEPT - Snapshot accepted, apply chunks */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"ACCEPT\"] = 1] = \"ACCEPT\";\n /** ABORT - Abort all snapshot restoration */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"ABORT\"] = 2] = \"ABORT\";\n /** REJECT - Reject this specific snapshot, try others */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"REJECT\"] = 3] = \"REJECT\";\n /** REJECT_FORMAT - Reject all snapshots of this format, try others */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"REJECT_FORMAT\"] = 4] = \"REJECT_FORMAT\";\n /** REJECT_SENDER - Reject all snapshots from the sender(s), try others */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"REJECT_SENDER\"] = 5] = \"REJECT_SENDER\";\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ResponseOfferSnapshot_Result || (exports.ResponseOfferSnapshot_Result = ResponseOfferSnapshot_Result = {}));\nfunction responseOfferSnapshot_ResultFromJSON(object) {\n switch (object) {\n case 0:\n case \"UNKNOWN\":\n return ResponseOfferSnapshot_Result.UNKNOWN;\n case 1:\n case \"ACCEPT\":\n return ResponseOfferSnapshot_Result.ACCEPT;\n case 2:\n case \"ABORT\":\n return ResponseOfferSnapshot_Result.ABORT;\n case 3:\n case \"REJECT\":\n return ResponseOfferSnapshot_Result.REJECT;\n case 4:\n case \"REJECT_FORMAT\":\n return ResponseOfferSnapshot_Result.REJECT_FORMAT;\n case 5:\n case \"REJECT_SENDER\":\n return ResponseOfferSnapshot_Result.REJECT_SENDER;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ResponseOfferSnapshot_Result.UNRECOGNIZED;\n }\n}\nexports.responseOfferSnapshot_ResultFromJSON = responseOfferSnapshot_ResultFromJSON;\nfunction responseOfferSnapshot_ResultToJSON(object) {\n switch (object) {\n case ResponseOfferSnapshot_Result.UNKNOWN:\n return \"UNKNOWN\";\n case ResponseOfferSnapshot_Result.ACCEPT:\n return \"ACCEPT\";\n case ResponseOfferSnapshot_Result.ABORT:\n return \"ABORT\";\n case ResponseOfferSnapshot_Result.REJECT:\n return \"REJECT\";\n case ResponseOfferSnapshot_Result.REJECT_FORMAT:\n return \"REJECT_FORMAT\";\n case ResponseOfferSnapshot_Result.REJECT_SENDER:\n return \"REJECT_SENDER\";\n case ResponseOfferSnapshot_Result.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.responseOfferSnapshot_ResultToJSON = responseOfferSnapshot_ResultToJSON;\nvar ResponseApplySnapshotChunk_Result;\n(function (ResponseApplySnapshotChunk_Result) {\n /** UNKNOWN - Unknown result, abort all snapshot restoration */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n /** ACCEPT - Chunk successfully accepted */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"ACCEPT\"] = 1] = \"ACCEPT\";\n /** ABORT - Abort all snapshot restoration */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"ABORT\"] = 2] = \"ABORT\";\n /** RETRY - Retry chunk (combine with refetch and reject) */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"RETRY\"] = 3] = \"RETRY\";\n /** RETRY_SNAPSHOT - Retry snapshot (combine with refetch and reject) */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"RETRY_SNAPSHOT\"] = 4] = \"RETRY_SNAPSHOT\";\n /** REJECT_SNAPSHOT - Reject this snapshot, try others */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"REJECT_SNAPSHOT\"] = 5] = \"REJECT_SNAPSHOT\";\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ResponseApplySnapshotChunk_Result || (exports.ResponseApplySnapshotChunk_Result = ResponseApplySnapshotChunk_Result = {}));\nfunction responseApplySnapshotChunk_ResultFromJSON(object) {\n switch (object) {\n case 0:\n case \"UNKNOWN\":\n return ResponseApplySnapshotChunk_Result.UNKNOWN;\n case 1:\n case \"ACCEPT\":\n return ResponseApplySnapshotChunk_Result.ACCEPT;\n case 2:\n case \"ABORT\":\n return ResponseApplySnapshotChunk_Result.ABORT;\n case 3:\n case \"RETRY\":\n return ResponseApplySnapshotChunk_Result.RETRY;\n case 4:\n case \"RETRY_SNAPSHOT\":\n return ResponseApplySnapshotChunk_Result.RETRY_SNAPSHOT;\n case 5:\n case \"REJECT_SNAPSHOT\":\n return ResponseApplySnapshotChunk_Result.REJECT_SNAPSHOT;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ResponseApplySnapshotChunk_Result.UNRECOGNIZED;\n }\n}\nexports.responseApplySnapshotChunk_ResultFromJSON = responseApplySnapshotChunk_ResultFromJSON;\nfunction responseApplySnapshotChunk_ResultToJSON(object) {\n switch (object) {\n case ResponseApplySnapshotChunk_Result.UNKNOWN:\n return \"UNKNOWN\";\n case ResponseApplySnapshotChunk_Result.ACCEPT:\n return \"ACCEPT\";\n case ResponseApplySnapshotChunk_Result.ABORT:\n return \"ABORT\";\n case ResponseApplySnapshotChunk_Result.RETRY:\n return \"RETRY\";\n case ResponseApplySnapshotChunk_Result.RETRY_SNAPSHOT:\n return \"RETRY_SNAPSHOT\";\n case ResponseApplySnapshotChunk_Result.REJECT_SNAPSHOT:\n return \"REJECT_SNAPSHOT\";\n case ResponseApplySnapshotChunk_Result.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.responseApplySnapshotChunk_ResultToJSON = responseApplySnapshotChunk_ResultToJSON;\nvar ResponseProcessProposal_ProposalStatus;\n(function (ResponseProcessProposal_ProposalStatus) {\n ResponseProcessProposal_ProposalStatus[ResponseProcessProposal_ProposalStatus[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n ResponseProcessProposal_ProposalStatus[ResponseProcessProposal_ProposalStatus[\"ACCEPT\"] = 1] = \"ACCEPT\";\n ResponseProcessProposal_ProposalStatus[ResponseProcessProposal_ProposalStatus[\"REJECT\"] = 2] = \"REJECT\";\n ResponseProcessProposal_ProposalStatus[ResponseProcessProposal_ProposalStatus[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ResponseProcessProposal_ProposalStatus || (exports.ResponseProcessProposal_ProposalStatus = ResponseProcessProposal_ProposalStatus = {}));\nfunction responseProcessProposal_ProposalStatusFromJSON(object) {\n switch (object) {\n case 0:\n case \"UNKNOWN\":\n return ResponseProcessProposal_ProposalStatus.UNKNOWN;\n case 1:\n case \"ACCEPT\":\n return ResponseProcessProposal_ProposalStatus.ACCEPT;\n case 2:\n case \"REJECT\":\n return ResponseProcessProposal_ProposalStatus.REJECT;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ResponseProcessProposal_ProposalStatus.UNRECOGNIZED;\n }\n}\nexports.responseProcessProposal_ProposalStatusFromJSON = responseProcessProposal_ProposalStatusFromJSON;\nfunction responseProcessProposal_ProposalStatusToJSON(object) {\n switch (object) {\n case ResponseProcessProposal_ProposalStatus.UNKNOWN:\n return \"UNKNOWN\";\n case ResponseProcessProposal_ProposalStatus.ACCEPT:\n return \"ACCEPT\";\n case ResponseProcessProposal_ProposalStatus.REJECT:\n return \"REJECT\";\n case ResponseProcessProposal_ProposalStatus.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.responseProcessProposal_ProposalStatusToJSON = responseProcessProposal_ProposalStatusToJSON;\nvar MisbehaviorType;\n(function (MisbehaviorType) {\n MisbehaviorType[MisbehaviorType[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n MisbehaviorType[MisbehaviorType[\"DUPLICATE_VOTE\"] = 1] = \"DUPLICATE_VOTE\";\n MisbehaviorType[MisbehaviorType[\"LIGHT_CLIENT_ATTACK\"] = 2] = \"LIGHT_CLIENT_ATTACK\";\n MisbehaviorType[MisbehaviorType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(MisbehaviorType || (exports.MisbehaviorType = MisbehaviorType = {}));\nfunction misbehaviorTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"UNKNOWN\":\n return MisbehaviorType.UNKNOWN;\n case 1:\n case \"DUPLICATE_VOTE\":\n return MisbehaviorType.DUPLICATE_VOTE;\n case 2:\n case \"LIGHT_CLIENT_ATTACK\":\n return MisbehaviorType.LIGHT_CLIENT_ATTACK;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return MisbehaviorType.UNRECOGNIZED;\n }\n}\nexports.misbehaviorTypeFromJSON = misbehaviorTypeFromJSON;\nfunction misbehaviorTypeToJSON(object) {\n switch (object) {\n case MisbehaviorType.UNKNOWN:\n return \"UNKNOWN\";\n case MisbehaviorType.DUPLICATE_VOTE:\n return \"DUPLICATE_VOTE\";\n case MisbehaviorType.LIGHT_CLIENT_ATTACK:\n return \"LIGHT_CLIENT_ATTACK\";\n case MisbehaviorType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.misbehaviorTypeToJSON = misbehaviorTypeToJSON;\nfunction createBaseRequest() {\n return {\n echo: undefined,\n flush: undefined,\n info: undefined,\n initChain: undefined,\n query: undefined,\n beginBlock: undefined,\n checkTx: undefined,\n deliverTx: undefined,\n endBlock: undefined,\n commit: undefined,\n listSnapshots: undefined,\n offerSnapshot: undefined,\n loadSnapshotChunk: undefined,\n applySnapshotChunk: undefined,\n prepareProposal: undefined,\n processProposal: undefined,\n };\n}\nexports.Request = {\n typeUrl: \"/tendermint.abci.Request\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.echo !== undefined) {\n exports.RequestEcho.encode(message.echo, writer.uint32(10).fork()).ldelim();\n }\n if (message.flush !== undefined) {\n exports.RequestFlush.encode(message.flush, writer.uint32(18).fork()).ldelim();\n }\n if (message.info !== undefined) {\n exports.RequestInfo.encode(message.info, writer.uint32(26).fork()).ldelim();\n }\n if (message.initChain !== undefined) {\n exports.RequestInitChain.encode(message.initChain, writer.uint32(42).fork()).ldelim();\n }\n if (message.query !== undefined) {\n exports.RequestQuery.encode(message.query, writer.uint32(50).fork()).ldelim();\n }\n if (message.beginBlock !== undefined) {\n exports.RequestBeginBlock.encode(message.beginBlock, writer.uint32(58).fork()).ldelim();\n }\n if (message.checkTx !== undefined) {\n exports.RequestCheckTx.encode(message.checkTx, writer.uint32(66).fork()).ldelim();\n }\n if (message.deliverTx !== undefined) {\n exports.RequestDeliverTx.encode(message.deliverTx, writer.uint32(74).fork()).ldelim();\n }\n if (message.endBlock !== undefined) {\n exports.RequestEndBlock.encode(message.endBlock, writer.uint32(82).fork()).ldelim();\n }\n if (message.commit !== undefined) {\n exports.RequestCommit.encode(message.commit, writer.uint32(90).fork()).ldelim();\n }\n if (message.listSnapshots !== undefined) {\n exports.RequestListSnapshots.encode(message.listSnapshots, writer.uint32(98).fork()).ldelim();\n }\n if (message.offerSnapshot !== undefined) {\n exports.RequestOfferSnapshot.encode(message.offerSnapshot, writer.uint32(106).fork()).ldelim();\n }\n if (message.loadSnapshotChunk !== undefined) {\n exports.RequestLoadSnapshotChunk.encode(message.loadSnapshotChunk, writer.uint32(114).fork()).ldelim();\n }\n if (message.applySnapshotChunk !== undefined) {\n exports.RequestApplySnapshotChunk.encode(message.applySnapshotChunk, writer.uint32(122).fork()).ldelim();\n }\n if (message.prepareProposal !== undefined) {\n exports.RequestPrepareProposal.encode(message.prepareProposal, writer.uint32(130).fork()).ldelim();\n }\n if (message.processProposal !== undefined) {\n exports.RequestProcessProposal.encode(message.processProposal, writer.uint32(138).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.echo = exports.RequestEcho.decode(reader, reader.uint32());\n break;\n case 2:\n message.flush = exports.RequestFlush.decode(reader, reader.uint32());\n break;\n case 3:\n message.info = exports.RequestInfo.decode(reader, reader.uint32());\n break;\n case 5:\n message.initChain = exports.RequestInitChain.decode(reader, reader.uint32());\n break;\n case 6:\n message.query = exports.RequestQuery.decode(reader, reader.uint32());\n break;\n case 7:\n message.beginBlock = exports.RequestBeginBlock.decode(reader, reader.uint32());\n break;\n case 8:\n message.checkTx = exports.RequestCheckTx.decode(reader, reader.uint32());\n break;\n case 9:\n message.deliverTx = exports.RequestDeliverTx.decode(reader, reader.uint32());\n break;\n case 10:\n message.endBlock = exports.RequestEndBlock.decode(reader, reader.uint32());\n break;\n case 11:\n message.commit = exports.RequestCommit.decode(reader, reader.uint32());\n break;\n case 12:\n message.listSnapshots = exports.RequestListSnapshots.decode(reader, reader.uint32());\n break;\n case 13:\n message.offerSnapshot = exports.RequestOfferSnapshot.decode(reader, reader.uint32());\n break;\n case 14:\n message.loadSnapshotChunk = exports.RequestLoadSnapshotChunk.decode(reader, reader.uint32());\n break;\n case 15:\n message.applySnapshotChunk = exports.RequestApplySnapshotChunk.decode(reader, reader.uint32());\n break;\n case 16:\n message.prepareProposal = exports.RequestPrepareProposal.decode(reader, reader.uint32());\n break;\n case 17:\n message.processProposal = exports.RequestProcessProposal.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequest();\n if ((0, helpers_1.isSet)(object.echo))\n obj.echo = exports.RequestEcho.fromJSON(object.echo);\n if ((0, helpers_1.isSet)(object.flush))\n obj.flush = exports.RequestFlush.fromJSON(object.flush);\n if ((0, helpers_1.isSet)(object.info))\n obj.info = exports.RequestInfo.fromJSON(object.info);\n if ((0, helpers_1.isSet)(object.initChain))\n obj.initChain = exports.RequestInitChain.fromJSON(object.initChain);\n if ((0, helpers_1.isSet)(object.query))\n obj.query = exports.RequestQuery.fromJSON(object.query);\n if ((0, helpers_1.isSet)(object.beginBlock))\n obj.beginBlock = exports.RequestBeginBlock.fromJSON(object.beginBlock);\n if ((0, helpers_1.isSet)(object.checkTx))\n obj.checkTx = exports.RequestCheckTx.fromJSON(object.checkTx);\n if ((0, helpers_1.isSet)(object.deliverTx))\n obj.deliverTx = exports.RequestDeliverTx.fromJSON(object.deliverTx);\n if ((0, helpers_1.isSet)(object.endBlock))\n obj.endBlock = exports.RequestEndBlock.fromJSON(object.endBlock);\n if ((0, helpers_1.isSet)(object.commit))\n obj.commit = exports.RequestCommit.fromJSON(object.commit);\n if ((0, helpers_1.isSet)(object.listSnapshots))\n obj.listSnapshots = exports.RequestListSnapshots.fromJSON(object.listSnapshots);\n if ((0, helpers_1.isSet)(object.offerSnapshot))\n obj.offerSnapshot = exports.RequestOfferSnapshot.fromJSON(object.offerSnapshot);\n if ((0, helpers_1.isSet)(object.loadSnapshotChunk))\n obj.loadSnapshotChunk = exports.RequestLoadSnapshotChunk.fromJSON(object.loadSnapshotChunk);\n if ((0, helpers_1.isSet)(object.applySnapshotChunk))\n obj.applySnapshotChunk = exports.RequestApplySnapshotChunk.fromJSON(object.applySnapshotChunk);\n if ((0, helpers_1.isSet)(object.prepareProposal))\n obj.prepareProposal = exports.RequestPrepareProposal.fromJSON(object.prepareProposal);\n if ((0, helpers_1.isSet)(object.processProposal))\n obj.processProposal = exports.RequestProcessProposal.fromJSON(object.processProposal);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.echo !== undefined && (obj.echo = message.echo ? exports.RequestEcho.toJSON(message.echo) : undefined);\n message.flush !== undefined &&\n (obj.flush = message.flush ? exports.RequestFlush.toJSON(message.flush) : undefined);\n message.info !== undefined && (obj.info = message.info ? exports.RequestInfo.toJSON(message.info) : undefined);\n message.initChain !== undefined &&\n (obj.initChain = message.initChain ? exports.RequestInitChain.toJSON(message.initChain) : undefined);\n message.query !== undefined &&\n (obj.query = message.query ? exports.RequestQuery.toJSON(message.query) : undefined);\n message.beginBlock !== undefined &&\n (obj.beginBlock = message.beginBlock ? exports.RequestBeginBlock.toJSON(message.beginBlock) : undefined);\n message.checkTx !== undefined &&\n (obj.checkTx = message.checkTx ? exports.RequestCheckTx.toJSON(message.checkTx) : undefined);\n message.deliverTx !== undefined &&\n (obj.deliverTx = message.deliverTx ? exports.RequestDeliverTx.toJSON(message.deliverTx) : undefined);\n message.endBlock !== undefined &&\n (obj.endBlock = message.endBlock ? exports.RequestEndBlock.toJSON(message.endBlock) : undefined);\n message.commit !== undefined &&\n (obj.commit = message.commit ? exports.RequestCommit.toJSON(message.commit) : undefined);\n message.listSnapshots !== undefined &&\n (obj.listSnapshots = message.listSnapshots\n ? exports.RequestListSnapshots.toJSON(message.listSnapshots)\n : undefined);\n message.offerSnapshot !== undefined &&\n (obj.offerSnapshot = message.offerSnapshot\n ? exports.RequestOfferSnapshot.toJSON(message.offerSnapshot)\n : undefined);\n message.loadSnapshotChunk !== undefined &&\n (obj.loadSnapshotChunk = message.loadSnapshotChunk\n ? exports.RequestLoadSnapshotChunk.toJSON(message.loadSnapshotChunk)\n : undefined);\n message.applySnapshotChunk !== undefined &&\n (obj.applySnapshotChunk = message.applySnapshotChunk\n ? exports.RequestApplySnapshotChunk.toJSON(message.applySnapshotChunk)\n : undefined);\n message.prepareProposal !== undefined &&\n (obj.prepareProposal = message.prepareProposal\n ? exports.RequestPrepareProposal.toJSON(message.prepareProposal)\n : undefined);\n message.processProposal !== undefined &&\n (obj.processProposal = message.processProposal\n ? exports.RequestProcessProposal.toJSON(message.processProposal)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequest();\n if (object.echo !== undefined && object.echo !== null) {\n message.echo = exports.RequestEcho.fromPartial(object.echo);\n }\n if (object.flush !== undefined && object.flush !== null) {\n message.flush = exports.RequestFlush.fromPartial(object.flush);\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = exports.RequestInfo.fromPartial(object.info);\n }\n if (object.initChain !== undefined && object.initChain !== null) {\n message.initChain = exports.RequestInitChain.fromPartial(object.initChain);\n }\n if (object.query !== undefined && object.query !== null) {\n message.query = exports.RequestQuery.fromPartial(object.query);\n }\n if (object.beginBlock !== undefined && object.beginBlock !== null) {\n message.beginBlock = exports.RequestBeginBlock.fromPartial(object.beginBlock);\n }\n if (object.checkTx !== undefined && object.checkTx !== null) {\n message.checkTx = exports.RequestCheckTx.fromPartial(object.checkTx);\n }\n if (object.deliverTx !== undefined && object.deliverTx !== null) {\n message.deliverTx = exports.RequestDeliverTx.fromPartial(object.deliverTx);\n }\n if (object.endBlock !== undefined && object.endBlock !== null) {\n message.endBlock = exports.RequestEndBlock.fromPartial(object.endBlock);\n }\n if (object.commit !== undefined && object.commit !== null) {\n message.commit = exports.RequestCommit.fromPartial(object.commit);\n }\n if (object.listSnapshots !== undefined && object.listSnapshots !== null) {\n message.listSnapshots = exports.RequestListSnapshots.fromPartial(object.listSnapshots);\n }\n if (object.offerSnapshot !== undefined && object.offerSnapshot !== null) {\n message.offerSnapshot = exports.RequestOfferSnapshot.fromPartial(object.offerSnapshot);\n }\n if (object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null) {\n message.loadSnapshotChunk = exports.RequestLoadSnapshotChunk.fromPartial(object.loadSnapshotChunk);\n }\n if (object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null) {\n message.applySnapshotChunk = exports.RequestApplySnapshotChunk.fromPartial(object.applySnapshotChunk);\n }\n if (object.prepareProposal !== undefined && object.prepareProposal !== null) {\n message.prepareProposal = exports.RequestPrepareProposal.fromPartial(object.prepareProposal);\n }\n if (object.processProposal !== undefined && object.processProposal !== null) {\n message.processProposal = exports.RequestProcessProposal.fromPartial(object.processProposal);\n }\n return message;\n },\n};\nfunction createBaseRequestEcho() {\n return {\n message: \"\",\n };\n}\nexports.RequestEcho = {\n typeUrl: \"/tendermint.abci.RequestEcho\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.message !== \"\") {\n writer.uint32(10).string(message.message);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestEcho();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.message = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestEcho();\n if ((0, helpers_1.isSet)(object.message))\n obj.message = String(object.message);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.message !== undefined && (obj.message = message.message);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestEcho();\n message.message = object.message ?? \"\";\n return message;\n },\n};\nfunction createBaseRequestFlush() {\n return {};\n}\nexports.RequestFlush = {\n typeUrl: \"/tendermint.abci.RequestFlush\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestFlush();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseRequestFlush();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseRequestFlush();\n return message;\n },\n};\nfunction createBaseRequestInfo() {\n return {\n version: \"\",\n blockVersion: BigInt(0),\n p2pVersion: BigInt(0),\n abciVersion: \"\",\n };\n}\nexports.RequestInfo = {\n typeUrl: \"/tendermint.abci.RequestInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.version !== \"\") {\n writer.uint32(10).string(message.version);\n }\n if (message.blockVersion !== BigInt(0)) {\n writer.uint32(16).uint64(message.blockVersion);\n }\n if (message.p2pVersion !== BigInt(0)) {\n writer.uint32(24).uint64(message.p2pVersion);\n }\n if (message.abciVersion !== \"\") {\n writer.uint32(34).string(message.abciVersion);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.version = reader.string();\n break;\n case 2:\n message.blockVersion = reader.uint64();\n break;\n case 3:\n message.p2pVersion = reader.uint64();\n break;\n case 4:\n message.abciVersion = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestInfo();\n if ((0, helpers_1.isSet)(object.version))\n obj.version = String(object.version);\n if ((0, helpers_1.isSet)(object.blockVersion))\n obj.blockVersion = BigInt(object.blockVersion.toString());\n if ((0, helpers_1.isSet)(object.p2pVersion))\n obj.p2pVersion = BigInt(object.p2pVersion.toString());\n if ((0, helpers_1.isSet)(object.abciVersion))\n obj.abciVersion = String(object.abciVersion);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.version !== undefined && (obj.version = message.version);\n message.blockVersion !== undefined && (obj.blockVersion = (message.blockVersion || BigInt(0)).toString());\n message.p2pVersion !== undefined && (obj.p2pVersion = (message.p2pVersion || BigInt(0)).toString());\n message.abciVersion !== undefined && (obj.abciVersion = message.abciVersion);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestInfo();\n message.version = object.version ?? \"\";\n if (object.blockVersion !== undefined && object.blockVersion !== null) {\n message.blockVersion = BigInt(object.blockVersion.toString());\n }\n if (object.p2pVersion !== undefined && object.p2pVersion !== null) {\n message.p2pVersion = BigInt(object.p2pVersion.toString());\n }\n message.abciVersion = object.abciVersion ?? \"\";\n return message;\n },\n};\nfunction createBaseRequestInitChain() {\n return {\n time: timestamp_1.Timestamp.fromPartial({}),\n chainId: \"\",\n consensusParams: undefined,\n validators: [],\n appStateBytes: new Uint8Array(),\n initialHeight: BigInt(0),\n };\n}\nexports.RequestInitChain = {\n typeUrl: \"/tendermint.abci.RequestInitChain\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(message.time, writer.uint32(10).fork()).ldelim();\n }\n if (message.chainId !== \"\") {\n writer.uint32(18).string(message.chainId);\n }\n if (message.consensusParams !== undefined) {\n params_1.ConsensusParams.encode(message.consensusParams, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.validators) {\n exports.ValidatorUpdate.encode(v, writer.uint32(34).fork()).ldelim();\n }\n if (message.appStateBytes.length !== 0) {\n writer.uint32(42).bytes(message.appStateBytes);\n }\n if (message.initialHeight !== BigInt(0)) {\n writer.uint32(48).int64(message.initialHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestInitChain();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.time = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 2:\n message.chainId = reader.string();\n break;\n case 3:\n message.consensusParams = params_1.ConsensusParams.decode(reader, reader.uint32());\n break;\n case 4:\n message.validators.push(exports.ValidatorUpdate.decode(reader, reader.uint32()));\n break;\n case 5:\n message.appStateBytes = reader.bytes();\n break;\n case 6:\n message.initialHeight = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestInitChain();\n if ((0, helpers_1.isSet)(object.time))\n obj.time = (0, helpers_1.fromJsonTimestamp)(object.time);\n if ((0, helpers_1.isSet)(object.chainId))\n obj.chainId = String(object.chainId);\n if ((0, helpers_1.isSet)(object.consensusParams))\n obj.consensusParams = params_1.ConsensusParams.fromJSON(object.consensusParams);\n if (Array.isArray(object?.validators))\n obj.validators = object.validators.map((e) => exports.ValidatorUpdate.fromJSON(e));\n if ((0, helpers_1.isSet)(object.appStateBytes))\n obj.appStateBytes = (0, helpers_1.bytesFromBase64)(object.appStateBytes);\n if ((0, helpers_1.isSet)(object.initialHeight))\n obj.initialHeight = BigInt(object.initialHeight.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.time !== undefined && (obj.time = (0, helpers_1.fromTimestamp)(message.time).toISOString());\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.consensusParams !== undefined &&\n (obj.consensusParams = message.consensusParams\n ? params_1.ConsensusParams.toJSON(message.consensusParams)\n : undefined);\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? exports.ValidatorUpdate.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.appStateBytes !== undefined &&\n (obj.appStateBytes = (0, helpers_1.base64FromBytes)(message.appStateBytes !== undefined ? message.appStateBytes : new Uint8Array()));\n message.initialHeight !== undefined &&\n (obj.initialHeight = (message.initialHeight || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestInitChain();\n if (object.time !== undefined && object.time !== null) {\n message.time = timestamp_1.Timestamp.fromPartial(object.time);\n }\n message.chainId = object.chainId ?? \"\";\n if (object.consensusParams !== undefined && object.consensusParams !== null) {\n message.consensusParams = params_1.ConsensusParams.fromPartial(object.consensusParams);\n }\n message.validators = object.validators?.map((e) => exports.ValidatorUpdate.fromPartial(e)) || [];\n message.appStateBytes = object.appStateBytes ?? new Uint8Array();\n if (object.initialHeight !== undefined && object.initialHeight !== null) {\n message.initialHeight = BigInt(object.initialHeight.toString());\n }\n return message;\n },\n};\nfunction createBaseRequestQuery() {\n return {\n data: new Uint8Array(),\n path: \"\",\n height: BigInt(0),\n prove: false,\n };\n}\nexports.RequestQuery = {\n typeUrl: \"/tendermint.abci.RequestQuery\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n if (message.path !== \"\") {\n writer.uint32(18).string(message.path);\n }\n if (message.height !== BigInt(0)) {\n writer.uint32(24).int64(message.height);\n }\n if (message.prove === true) {\n writer.uint32(32).bool(message.prove);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestQuery();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n case 2:\n message.path = reader.string();\n break;\n case 3:\n message.height = reader.int64();\n break;\n case 4:\n message.prove = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestQuery();\n if ((0, helpers_1.isSet)(object.data))\n obj.data = (0, helpers_1.bytesFromBase64)(object.data);\n if ((0, helpers_1.isSet)(object.path))\n obj.path = String(object.path);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.prove))\n obj.prove = Boolean(object.prove);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array()));\n message.path !== undefined && (obj.path = message.path);\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.prove !== undefined && (obj.prove = message.prove);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestQuery();\n message.data = object.data ?? new Uint8Array();\n message.path = object.path ?? \"\";\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n message.prove = object.prove ?? false;\n return message;\n },\n};\nfunction createBaseRequestBeginBlock() {\n return {\n hash: new Uint8Array(),\n header: types_1.Header.fromPartial({}),\n lastCommitInfo: exports.CommitInfo.fromPartial({}),\n byzantineValidators: [],\n };\n}\nexports.RequestBeginBlock = {\n typeUrl: \"/tendermint.abci.RequestBeginBlock\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.hash.length !== 0) {\n writer.uint32(10).bytes(message.hash);\n }\n if (message.header !== undefined) {\n types_1.Header.encode(message.header, writer.uint32(18).fork()).ldelim();\n }\n if (message.lastCommitInfo !== undefined) {\n exports.CommitInfo.encode(message.lastCommitInfo, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.byzantineValidators) {\n exports.Misbehavior.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestBeginBlock();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.bytes();\n break;\n case 2:\n message.header = types_1.Header.decode(reader, reader.uint32());\n break;\n case 3:\n message.lastCommitInfo = exports.CommitInfo.decode(reader, reader.uint32());\n break;\n case 4:\n message.byzantineValidators.push(exports.Misbehavior.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestBeginBlock();\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = (0, helpers_1.bytesFromBase64)(object.hash);\n if ((0, helpers_1.isSet)(object.header))\n obj.header = types_1.Header.fromJSON(object.header);\n if ((0, helpers_1.isSet)(object.lastCommitInfo))\n obj.lastCommitInfo = exports.CommitInfo.fromJSON(object.lastCommitInfo);\n if (Array.isArray(object?.byzantineValidators))\n obj.byzantineValidators = object.byzantineValidators.map((e) => exports.Misbehavior.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined &&\n (obj.hash = (0, helpers_1.base64FromBytes)(message.hash !== undefined ? message.hash : new Uint8Array()));\n message.header !== undefined && (obj.header = message.header ? types_1.Header.toJSON(message.header) : undefined);\n message.lastCommitInfo !== undefined &&\n (obj.lastCommitInfo = message.lastCommitInfo ? exports.CommitInfo.toJSON(message.lastCommitInfo) : undefined);\n if (message.byzantineValidators) {\n obj.byzantineValidators = message.byzantineValidators.map((e) => e ? exports.Misbehavior.toJSON(e) : undefined);\n }\n else {\n obj.byzantineValidators = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestBeginBlock();\n message.hash = object.hash ?? new Uint8Array();\n if (object.header !== undefined && object.header !== null) {\n message.header = types_1.Header.fromPartial(object.header);\n }\n if (object.lastCommitInfo !== undefined && object.lastCommitInfo !== null) {\n message.lastCommitInfo = exports.CommitInfo.fromPartial(object.lastCommitInfo);\n }\n message.byzantineValidators = object.byzantineValidators?.map((e) => exports.Misbehavior.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseRequestCheckTx() {\n return {\n tx: new Uint8Array(),\n type: 0,\n };\n}\nexports.RequestCheckTx = {\n typeUrl: \"/tendermint.abci.RequestCheckTx\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.tx.length !== 0) {\n writer.uint32(10).bytes(message.tx);\n }\n if (message.type !== 0) {\n writer.uint32(16).int32(message.type);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestCheckTx();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = reader.bytes();\n break;\n case 2:\n message.type = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestCheckTx();\n if ((0, helpers_1.isSet)(object.tx))\n obj.tx = (0, helpers_1.bytesFromBase64)(object.tx);\n if ((0, helpers_1.isSet)(object.type))\n obj.type = checkTxTypeFromJSON(object.type);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined &&\n (obj.tx = (0, helpers_1.base64FromBytes)(message.tx !== undefined ? message.tx : new Uint8Array()));\n message.type !== undefined && (obj.type = checkTxTypeToJSON(message.type));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestCheckTx();\n message.tx = object.tx ?? new Uint8Array();\n message.type = object.type ?? 0;\n return message;\n },\n};\nfunction createBaseRequestDeliverTx() {\n return {\n tx: new Uint8Array(),\n };\n}\nexports.RequestDeliverTx = {\n typeUrl: \"/tendermint.abci.RequestDeliverTx\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.tx.length !== 0) {\n writer.uint32(10).bytes(message.tx);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestDeliverTx();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestDeliverTx();\n if ((0, helpers_1.isSet)(object.tx))\n obj.tx = (0, helpers_1.bytesFromBase64)(object.tx);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined &&\n (obj.tx = (0, helpers_1.base64FromBytes)(message.tx !== undefined ? message.tx : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestDeliverTx();\n message.tx = object.tx ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseRequestEndBlock() {\n return {\n height: BigInt(0),\n };\n}\nexports.RequestEndBlock = {\n typeUrl: \"/tendermint.abci.RequestEndBlock\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.height !== BigInt(0)) {\n writer.uint32(8).int64(message.height);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestEndBlock();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestEndBlock();\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestEndBlock();\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n return message;\n },\n};\nfunction createBaseRequestCommit() {\n return {};\n}\nexports.RequestCommit = {\n typeUrl: \"/tendermint.abci.RequestCommit\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestCommit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseRequestCommit();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseRequestCommit();\n return message;\n },\n};\nfunction createBaseRequestListSnapshots() {\n return {};\n}\nexports.RequestListSnapshots = {\n typeUrl: \"/tendermint.abci.RequestListSnapshots\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestListSnapshots();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseRequestListSnapshots();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseRequestListSnapshots();\n return message;\n },\n};\nfunction createBaseRequestOfferSnapshot() {\n return {\n snapshot: undefined,\n appHash: new Uint8Array(),\n };\n}\nexports.RequestOfferSnapshot = {\n typeUrl: \"/tendermint.abci.RequestOfferSnapshot\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.snapshot !== undefined) {\n exports.Snapshot.encode(message.snapshot, writer.uint32(10).fork()).ldelim();\n }\n if (message.appHash.length !== 0) {\n writer.uint32(18).bytes(message.appHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestOfferSnapshot();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.snapshot = exports.Snapshot.decode(reader, reader.uint32());\n break;\n case 2:\n message.appHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestOfferSnapshot();\n if ((0, helpers_1.isSet)(object.snapshot))\n obj.snapshot = exports.Snapshot.fromJSON(object.snapshot);\n if ((0, helpers_1.isSet)(object.appHash))\n obj.appHash = (0, helpers_1.bytesFromBase64)(object.appHash);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.snapshot !== undefined &&\n (obj.snapshot = message.snapshot ? exports.Snapshot.toJSON(message.snapshot) : undefined);\n message.appHash !== undefined &&\n (obj.appHash = (0, helpers_1.base64FromBytes)(message.appHash !== undefined ? message.appHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestOfferSnapshot();\n if (object.snapshot !== undefined && object.snapshot !== null) {\n message.snapshot = exports.Snapshot.fromPartial(object.snapshot);\n }\n message.appHash = object.appHash ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseRequestLoadSnapshotChunk() {\n return {\n height: BigInt(0),\n format: 0,\n chunk: 0,\n };\n}\nexports.RequestLoadSnapshotChunk = {\n typeUrl: \"/tendermint.abci.RequestLoadSnapshotChunk\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.height !== BigInt(0)) {\n writer.uint32(8).uint64(message.height);\n }\n if (message.format !== 0) {\n writer.uint32(16).uint32(message.format);\n }\n if (message.chunk !== 0) {\n writer.uint32(24).uint32(message.chunk);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestLoadSnapshotChunk();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.uint64();\n break;\n case 2:\n message.format = reader.uint32();\n break;\n case 3:\n message.chunk = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestLoadSnapshotChunk();\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.format))\n obj.format = Number(object.format);\n if ((0, helpers_1.isSet)(object.chunk))\n obj.chunk = Number(object.chunk);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.format !== undefined && (obj.format = Math.round(message.format));\n message.chunk !== undefined && (obj.chunk = Math.round(message.chunk));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestLoadSnapshotChunk();\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n message.format = object.format ?? 0;\n message.chunk = object.chunk ?? 0;\n return message;\n },\n};\nfunction createBaseRequestApplySnapshotChunk() {\n return {\n index: 0,\n chunk: new Uint8Array(),\n sender: \"\",\n };\n}\nexports.RequestApplySnapshotChunk = {\n typeUrl: \"/tendermint.abci.RequestApplySnapshotChunk\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.index !== 0) {\n writer.uint32(8).uint32(message.index);\n }\n if (message.chunk.length !== 0) {\n writer.uint32(18).bytes(message.chunk);\n }\n if (message.sender !== \"\") {\n writer.uint32(26).string(message.sender);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestApplySnapshotChunk();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.index = reader.uint32();\n break;\n case 2:\n message.chunk = reader.bytes();\n break;\n case 3:\n message.sender = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestApplySnapshotChunk();\n if ((0, helpers_1.isSet)(object.index))\n obj.index = Number(object.index);\n if ((0, helpers_1.isSet)(object.chunk))\n obj.chunk = (0, helpers_1.bytesFromBase64)(object.chunk);\n if ((0, helpers_1.isSet)(object.sender))\n obj.sender = String(object.sender);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.index !== undefined && (obj.index = Math.round(message.index));\n message.chunk !== undefined &&\n (obj.chunk = (0, helpers_1.base64FromBytes)(message.chunk !== undefined ? message.chunk : new Uint8Array()));\n message.sender !== undefined && (obj.sender = message.sender);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestApplySnapshotChunk();\n message.index = object.index ?? 0;\n message.chunk = object.chunk ?? new Uint8Array();\n message.sender = object.sender ?? \"\";\n return message;\n },\n};\nfunction createBaseRequestPrepareProposal() {\n return {\n maxTxBytes: BigInt(0),\n txs: [],\n localLastCommit: exports.ExtendedCommitInfo.fromPartial({}),\n misbehavior: [],\n height: BigInt(0),\n time: timestamp_1.Timestamp.fromPartial({}),\n nextValidatorsHash: new Uint8Array(),\n proposerAddress: new Uint8Array(),\n };\n}\nexports.RequestPrepareProposal = {\n typeUrl: \"/tendermint.abci.RequestPrepareProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.maxTxBytes !== BigInt(0)) {\n writer.uint32(8).int64(message.maxTxBytes);\n }\n for (const v of message.txs) {\n writer.uint32(18).bytes(v);\n }\n if (message.localLastCommit !== undefined) {\n exports.ExtendedCommitInfo.encode(message.localLastCommit, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.misbehavior) {\n exports.Misbehavior.encode(v, writer.uint32(34).fork()).ldelim();\n }\n if (message.height !== BigInt(0)) {\n writer.uint32(40).int64(message.height);\n }\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(message.time, writer.uint32(50).fork()).ldelim();\n }\n if (message.nextValidatorsHash.length !== 0) {\n writer.uint32(58).bytes(message.nextValidatorsHash);\n }\n if (message.proposerAddress.length !== 0) {\n writer.uint32(66).bytes(message.proposerAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestPrepareProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxTxBytes = reader.int64();\n break;\n case 2:\n message.txs.push(reader.bytes());\n break;\n case 3:\n message.localLastCommit = exports.ExtendedCommitInfo.decode(reader, reader.uint32());\n break;\n case 4:\n message.misbehavior.push(exports.Misbehavior.decode(reader, reader.uint32()));\n break;\n case 5:\n message.height = reader.int64();\n break;\n case 6:\n message.time = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 7:\n message.nextValidatorsHash = reader.bytes();\n break;\n case 8:\n message.proposerAddress = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestPrepareProposal();\n if ((0, helpers_1.isSet)(object.maxTxBytes))\n obj.maxTxBytes = BigInt(object.maxTxBytes.toString());\n if (Array.isArray(object?.txs))\n obj.txs = object.txs.map((e) => (0, helpers_1.bytesFromBase64)(e));\n if ((0, helpers_1.isSet)(object.localLastCommit))\n obj.localLastCommit = exports.ExtendedCommitInfo.fromJSON(object.localLastCommit);\n if (Array.isArray(object?.misbehavior))\n obj.misbehavior = object.misbehavior.map((e) => exports.Misbehavior.fromJSON(e));\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.time))\n obj.time = (0, helpers_1.fromJsonTimestamp)(object.time);\n if ((0, helpers_1.isSet)(object.nextValidatorsHash))\n obj.nextValidatorsHash = (0, helpers_1.bytesFromBase64)(object.nextValidatorsHash);\n if ((0, helpers_1.isSet)(object.proposerAddress))\n obj.proposerAddress = (0, helpers_1.bytesFromBase64)(object.proposerAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.maxTxBytes !== undefined && (obj.maxTxBytes = (message.maxTxBytes || BigInt(0)).toString());\n if (message.txs) {\n obj.txs = message.txs.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.txs = [];\n }\n message.localLastCommit !== undefined &&\n (obj.localLastCommit = message.localLastCommit\n ? exports.ExtendedCommitInfo.toJSON(message.localLastCommit)\n : undefined);\n if (message.misbehavior) {\n obj.misbehavior = message.misbehavior.map((e) => (e ? exports.Misbehavior.toJSON(e) : undefined));\n }\n else {\n obj.misbehavior = [];\n }\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.time !== undefined && (obj.time = (0, helpers_1.fromTimestamp)(message.time).toISOString());\n message.nextValidatorsHash !== undefined &&\n (obj.nextValidatorsHash = (0, helpers_1.base64FromBytes)(message.nextValidatorsHash !== undefined ? message.nextValidatorsHash : new Uint8Array()));\n message.proposerAddress !== undefined &&\n (obj.proposerAddress = (0, helpers_1.base64FromBytes)(message.proposerAddress !== undefined ? message.proposerAddress : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestPrepareProposal();\n if (object.maxTxBytes !== undefined && object.maxTxBytes !== null) {\n message.maxTxBytes = BigInt(object.maxTxBytes.toString());\n }\n message.txs = object.txs?.map((e) => e) || [];\n if (object.localLastCommit !== undefined && object.localLastCommit !== null) {\n message.localLastCommit = exports.ExtendedCommitInfo.fromPartial(object.localLastCommit);\n }\n message.misbehavior = object.misbehavior?.map((e) => exports.Misbehavior.fromPartial(e)) || [];\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = timestamp_1.Timestamp.fromPartial(object.time);\n }\n message.nextValidatorsHash = object.nextValidatorsHash ?? new Uint8Array();\n message.proposerAddress = object.proposerAddress ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseRequestProcessProposal() {\n return {\n txs: [],\n proposedLastCommit: exports.CommitInfo.fromPartial({}),\n misbehavior: [],\n hash: new Uint8Array(),\n height: BigInt(0),\n time: timestamp_1.Timestamp.fromPartial({}),\n nextValidatorsHash: new Uint8Array(),\n proposerAddress: new Uint8Array(),\n };\n}\nexports.RequestProcessProposal = {\n typeUrl: \"/tendermint.abci.RequestProcessProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.txs) {\n writer.uint32(10).bytes(v);\n }\n if (message.proposedLastCommit !== undefined) {\n exports.CommitInfo.encode(message.proposedLastCommit, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.misbehavior) {\n exports.Misbehavior.encode(v, writer.uint32(26).fork()).ldelim();\n }\n if (message.hash.length !== 0) {\n writer.uint32(34).bytes(message.hash);\n }\n if (message.height !== BigInt(0)) {\n writer.uint32(40).int64(message.height);\n }\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(message.time, writer.uint32(50).fork()).ldelim();\n }\n if (message.nextValidatorsHash.length !== 0) {\n writer.uint32(58).bytes(message.nextValidatorsHash);\n }\n if (message.proposerAddress.length !== 0) {\n writer.uint32(66).bytes(message.proposerAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestProcessProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txs.push(reader.bytes());\n break;\n case 2:\n message.proposedLastCommit = exports.CommitInfo.decode(reader, reader.uint32());\n break;\n case 3:\n message.misbehavior.push(exports.Misbehavior.decode(reader, reader.uint32()));\n break;\n case 4:\n message.hash = reader.bytes();\n break;\n case 5:\n message.height = reader.int64();\n break;\n case 6:\n message.time = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 7:\n message.nextValidatorsHash = reader.bytes();\n break;\n case 8:\n message.proposerAddress = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestProcessProposal();\n if (Array.isArray(object?.txs))\n obj.txs = object.txs.map((e) => (0, helpers_1.bytesFromBase64)(e));\n if ((0, helpers_1.isSet)(object.proposedLastCommit))\n obj.proposedLastCommit = exports.CommitInfo.fromJSON(object.proposedLastCommit);\n if (Array.isArray(object?.misbehavior))\n obj.misbehavior = object.misbehavior.map((e) => exports.Misbehavior.fromJSON(e));\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = (0, helpers_1.bytesFromBase64)(object.hash);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.time))\n obj.time = (0, helpers_1.fromJsonTimestamp)(object.time);\n if ((0, helpers_1.isSet)(object.nextValidatorsHash))\n obj.nextValidatorsHash = (0, helpers_1.bytesFromBase64)(object.nextValidatorsHash);\n if ((0, helpers_1.isSet)(object.proposerAddress))\n obj.proposerAddress = (0, helpers_1.bytesFromBase64)(object.proposerAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.txs) {\n obj.txs = message.txs.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.txs = [];\n }\n message.proposedLastCommit !== undefined &&\n (obj.proposedLastCommit = message.proposedLastCommit\n ? exports.CommitInfo.toJSON(message.proposedLastCommit)\n : undefined);\n if (message.misbehavior) {\n obj.misbehavior = message.misbehavior.map((e) => (e ? exports.Misbehavior.toJSON(e) : undefined));\n }\n else {\n obj.misbehavior = [];\n }\n message.hash !== undefined &&\n (obj.hash = (0, helpers_1.base64FromBytes)(message.hash !== undefined ? message.hash : new Uint8Array()));\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.time !== undefined && (obj.time = (0, helpers_1.fromTimestamp)(message.time).toISOString());\n message.nextValidatorsHash !== undefined &&\n (obj.nextValidatorsHash = (0, helpers_1.base64FromBytes)(message.nextValidatorsHash !== undefined ? message.nextValidatorsHash : new Uint8Array()));\n message.proposerAddress !== undefined &&\n (obj.proposerAddress = (0, helpers_1.base64FromBytes)(message.proposerAddress !== undefined ? message.proposerAddress : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestProcessProposal();\n message.txs = object.txs?.map((e) => e) || [];\n if (object.proposedLastCommit !== undefined && object.proposedLastCommit !== null) {\n message.proposedLastCommit = exports.CommitInfo.fromPartial(object.proposedLastCommit);\n }\n message.misbehavior = object.misbehavior?.map((e) => exports.Misbehavior.fromPartial(e)) || [];\n message.hash = object.hash ?? new Uint8Array();\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = timestamp_1.Timestamp.fromPartial(object.time);\n }\n message.nextValidatorsHash = object.nextValidatorsHash ?? new Uint8Array();\n message.proposerAddress = object.proposerAddress ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseResponse() {\n return {\n exception: undefined,\n echo: undefined,\n flush: undefined,\n info: undefined,\n initChain: undefined,\n query: undefined,\n beginBlock: undefined,\n checkTx: undefined,\n deliverTx: undefined,\n endBlock: undefined,\n commit: undefined,\n listSnapshots: undefined,\n offerSnapshot: undefined,\n loadSnapshotChunk: undefined,\n applySnapshotChunk: undefined,\n prepareProposal: undefined,\n processProposal: undefined,\n };\n}\nexports.Response = {\n typeUrl: \"/tendermint.abci.Response\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.exception !== undefined) {\n exports.ResponseException.encode(message.exception, writer.uint32(10).fork()).ldelim();\n }\n if (message.echo !== undefined) {\n exports.ResponseEcho.encode(message.echo, writer.uint32(18).fork()).ldelim();\n }\n if (message.flush !== undefined) {\n exports.ResponseFlush.encode(message.flush, writer.uint32(26).fork()).ldelim();\n }\n if (message.info !== undefined) {\n exports.ResponseInfo.encode(message.info, writer.uint32(34).fork()).ldelim();\n }\n if (message.initChain !== undefined) {\n exports.ResponseInitChain.encode(message.initChain, writer.uint32(50).fork()).ldelim();\n }\n if (message.query !== undefined) {\n exports.ResponseQuery.encode(message.query, writer.uint32(58).fork()).ldelim();\n }\n if (message.beginBlock !== undefined) {\n exports.ResponseBeginBlock.encode(message.beginBlock, writer.uint32(66).fork()).ldelim();\n }\n if (message.checkTx !== undefined) {\n exports.ResponseCheckTx.encode(message.checkTx, writer.uint32(74).fork()).ldelim();\n }\n if (message.deliverTx !== undefined) {\n exports.ResponseDeliverTx.encode(message.deliverTx, writer.uint32(82).fork()).ldelim();\n }\n if (message.endBlock !== undefined) {\n exports.ResponseEndBlock.encode(message.endBlock, writer.uint32(90).fork()).ldelim();\n }\n if (message.commit !== undefined) {\n exports.ResponseCommit.encode(message.commit, writer.uint32(98).fork()).ldelim();\n }\n if (message.listSnapshots !== undefined) {\n exports.ResponseListSnapshots.encode(message.listSnapshots, writer.uint32(106).fork()).ldelim();\n }\n if (message.offerSnapshot !== undefined) {\n exports.ResponseOfferSnapshot.encode(message.offerSnapshot, writer.uint32(114).fork()).ldelim();\n }\n if (message.loadSnapshotChunk !== undefined) {\n exports.ResponseLoadSnapshotChunk.encode(message.loadSnapshotChunk, writer.uint32(122).fork()).ldelim();\n }\n if (message.applySnapshotChunk !== undefined) {\n exports.ResponseApplySnapshotChunk.encode(message.applySnapshotChunk, writer.uint32(130).fork()).ldelim();\n }\n if (message.prepareProposal !== undefined) {\n exports.ResponsePrepareProposal.encode(message.prepareProposal, writer.uint32(138).fork()).ldelim();\n }\n if (message.processProposal !== undefined) {\n exports.ResponseProcessProposal.encode(message.processProposal, writer.uint32(146).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exception = exports.ResponseException.decode(reader, reader.uint32());\n break;\n case 2:\n message.echo = exports.ResponseEcho.decode(reader, reader.uint32());\n break;\n case 3:\n message.flush = exports.ResponseFlush.decode(reader, reader.uint32());\n break;\n case 4:\n message.info = exports.ResponseInfo.decode(reader, reader.uint32());\n break;\n case 6:\n message.initChain = exports.ResponseInitChain.decode(reader, reader.uint32());\n break;\n case 7:\n message.query = exports.ResponseQuery.decode(reader, reader.uint32());\n break;\n case 8:\n message.beginBlock = exports.ResponseBeginBlock.decode(reader, reader.uint32());\n break;\n case 9:\n message.checkTx = exports.ResponseCheckTx.decode(reader, reader.uint32());\n break;\n case 10:\n message.deliverTx = exports.ResponseDeliverTx.decode(reader, reader.uint32());\n break;\n case 11:\n message.endBlock = exports.ResponseEndBlock.decode(reader, reader.uint32());\n break;\n case 12:\n message.commit = exports.ResponseCommit.decode(reader, reader.uint32());\n break;\n case 13:\n message.listSnapshots = exports.ResponseListSnapshots.decode(reader, reader.uint32());\n break;\n case 14:\n message.offerSnapshot = exports.ResponseOfferSnapshot.decode(reader, reader.uint32());\n break;\n case 15:\n message.loadSnapshotChunk = exports.ResponseLoadSnapshotChunk.decode(reader, reader.uint32());\n break;\n case 16:\n message.applySnapshotChunk = exports.ResponseApplySnapshotChunk.decode(reader, reader.uint32());\n break;\n case 17:\n message.prepareProposal = exports.ResponsePrepareProposal.decode(reader, reader.uint32());\n break;\n case 18:\n message.processProposal = exports.ResponseProcessProposal.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponse();\n if ((0, helpers_1.isSet)(object.exception))\n obj.exception = exports.ResponseException.fromJSON(object.exception);\n if ((0, helpers_1.isSet)(object.echo))\n obj.echo = exports.ResponseEcho.fromJSON(object.echo);\n if ((0, helpers_1.isSet)(object.flush))\n obj.flush = exports.ResponseFlush.fromJSON(object.flush);\n if ((0, helpers_1.isSet)(object.info))\n obj.info = exports.ResponseInfo.fromJSON(object.info);\n if ((0, helpers_1.isSet)(object.initChain))\n obj.initChain = exports.ResponseInitChain.fromJSON(object.initChain);\n if ((0, helpers_1.isSet)(object.query))\n obj.query = exports.ResponseQuery.fromJSON(object.query);\n if ((0, helpers_1.isSet)(object.beginBlock))\n obj.beginBlock = exports.ResponseBeginBlock.fromJSON(object.beginBlock);\n if ((0, helpers_1.isSet)(object.checkTx))\n obj.checkTx = exports.ResponseCheckTx.fromJSON(object.checkTx);\n if ((0, helpers_1.isSet)(object.deliverTx))\n obj.deliverTx = exports.ResponseDeliverTx.fromJSON(object.deliverTx);\n if ((0, helpers_1.isSet)(object.endBlock))\n obj.endBlock = exports.ResponseEndBlock.fromJSON(object.endBlock);\n if ((0, helpers_1.isSet)(object.commit))\n obj.commit = exports.ResponseCommit.fromJSON(object.commit);\n if ((0, helpers_1.isSet)(object.listSnapshots))\n obj.listSnapshots = exports.ResponseListSnapshots.fromJSON(object.listSnapshots);\n if ((0, helpers_1.isSet)(object.offerSnapshot))\n obj.offerSnapshot = exports.ResponseOfferSnapshot.fromJSON(object.offerSnapshot);\n if ((0, helpers_1.isSet)(object.loadSnapshotChunk))\n obj.loadSnapshotChunk = exports.ResponseLoadSnapshotChunk.fromJSON(object.loadSnapshotChunk);\n if ((0, helpers_1.isSet)(object.applySnapshotChunk))\n obj.applySnapshotChunk = exports.ResponseApplySnapshotChunk.fromJSON(object.applySnapshotChunk);\n if ((0, helpers_1.isSet)(object.prepareProposal))\n obj.prepareProposal = exports.ResponsePrepareProposal.fromJSON(object.prepareProposal);\n if ((0, helpers_1.isSet)(object.processProposal))\n obj.processProposal = exports.ResponseProcessProposal.fromJSON(object.processProposal);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.exception !== undefined &&\n (obj.exception = message.exception ? exports.ResponseException.toJSON(message.exception) : undefined);\n message.echo !== undefined && (obj.echo = message.echo ? exports.ResponseEcho.toJSON(message.echo) : undefined);\n message.flush !== undefined &&\n (obj.flush = message.flush ? exports.ResponseFlush.toJSON(message.flush) : undefined);\n message.info !== undefined && (obj.info = message.info ? exports.ResponseInfo.toJSON(message.info) : undefined);\n message.initChain !== undefined &&\n (obj.initChain = message.initChain ? exports.ResponseInitChain.toJSON(message.initChain) : undefined);\n message.query !== undefined &&\n (obj.query = message.query ? exports.ResponseQuery.toJSON(message.query) : undefined);\n message.beginBlock !== undefined &&\n (obj.beginBlock = message.beginBlock ? exports.ResponseBeginBlock.toJSON(message.beginBlock) : undefined);\n message.checkTx !== undefined &&\n (obj.checkTx = message.checkTx ? exports.ResponseCheckTx.toJSON(message.checkTx) : undefined);\n message.deliverTx !== undefined &&\n (obj.deliverTx = message.deliverTx ? exports.ResponseDeliverTx.toJSON(message.deliverTx) : undefined);\n message.endBlock !== undefined &&\n (obj.endBlock = message.endBlock ? exports.ResponseEndBlock.toJSON(message.endBlock) : undefined);\n message.commit !== undefined &&\n (obj.commit = message.commit ? exports.ResponseCommit.toJSON(message.commit) : undefined);\n message.listSnapshots !== undefined &&\n (obj.listSnapshots = message.listSnapshots\n ? exports.ResponseListSnapshots.toJSON(message.listSnapshots)\n : undefined);\n message.offerSnapshot !== undefined &&\n (obj.offerSnapshot = message.offerSnapshot\n ? exports.ResponseOfferSnapshot.toJSON(message.offerSnapshot)\n : undefined);\n message.loadSnapshotChunk !== undefined &&\n (obj.loadSnapshotChunk = message.loadSnapshotChunk\n ? exports.ResponseLoadSnapshotChunk.toJSON(message.loadSnapshotChunk)\n : undefined);\n message.applySnapshotChunk !== undefined &&\n (obj.applySnapshotChunk = message.applySnapshotChunk\n ? exports.ResponseApplySnapshotChunk.toJSON(message.applySnapshotChunk)\n : undefined);\n message.prepareProposal !== undefined &&\n (obj.prepareProposal = message.prepareProposal\n ? exports.ResponsePrepareProposal.toJSON(message.prepareProposal)\n : undefined);\n message.processProposal !== undefined &&\n (obj.processProposal = message.processProposal\n ? exports.ResponseProcessProposal.toJSON(message.processProposal)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponse();\n if (object.exception !== undefined && object.exception !== null) {\n message.exception = exports.ResponseException.fromPartial(object.exception);\n }\n if (object.echo !== undefined && object.echo !== null) {\n message.echo = exports.ResponseEcho.fromPartial(object.echo);\n }\n if (object.flush !== undefined && object.flush !== null) {\n message.flush = exports.ResponseFlush.fromPartial(object.flush);\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = exports.ResponseInfo.fromPartial(object.info);\n }\n if (object.initChain !== undefined && object.initChain !== null) {\n message.initChain = exports.ResponseInitChain.fromPartial(object.initChain);\n }\n if (object.query !== undefined && object.query !== null) {\n message.query = exports.ResponseQuery.fromPartial(object.query);\n }\n if (object.beginBlock !== undefined && object.beginBlock !== null) {\n message.beginBlock = exports.ResponseBeginBlock.fromPartial(object.beginBlock);\n }\n if (object.checkTx !== undefined && object.checkTx !== null) {\n message.checkTx = exports.ResponseCheckTx.fromPartial(object.checkTx);\n }\n if (object.deliverTx !== undefined && object.deliverTx !== null) {\n message.deliverTx = exports.ResponseDeliverTx.fromPartial(object.deliverTx);\n }\n if (object.endBlock !== undefined && object.endBlock !== null) {\n message.endBlock = exports.ResponseEndBlock.fromPartial(object.endBlock);\n }\n if (object.commit !== undefined && object.commit !== null) {\n message.commit = exports.ResponseCommit.fromPartial(object.commit);\n }\n if (object.listSnapshots !== undefined && object.listSnapshots !== null) {\n message.listSnapshots = exports.ResponseListSnapshots.fromPartial(object.listSnapshots);\n }\n if (object.offerSnapshot !== undefined && object.offerSnapshot !== null) {\n message.offerSnapshot = exports.ResponseOfferSnapshot.fromPartial(object.offerSnapshot);\n }\n if (object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null) {\n message.loadSnapshotChunk = exports.ResponseLoadSnapshotChunk.fromPartial(object.loadSnapshotChunk);\n }\n if (object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null) {\n message.applySnapshotChunk = exports.ResponseApplySnapshotChunk.fromPartial(object.applySnapshotChunk);\n }\n if (object.prepareProposal !== undefined && object.prepareProposal !== null) {\n message.prepareProposal = exports.ResponsePrepareProposal.fromPartial(object.prepareProposal);\n }\n if (object.processProposal !== undefined && object.processProposal !== null) {\n message.processProposal = exports.ResponseProcessProposal.fromPartial(object.processProposal);\n }\n return message;\n },\n};\nfunction createBaseResponseException() {\n return {\n error: \"\",\n };\n}\nexports.ResponseException = {\n typeUrl: \"/tendermint.abci.ResponseException\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.error !== \"\") {\n writer.uint32(10).string(message.error);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseException();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.error = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseException();\n if ((0, helpers_1.isSet)(object.error))\n obj.error = String(object.error);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.error !== undefined && (obj.error = message.error);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseException();\n message.error = object.error ?? \"\";\n return message;\n },\n};\nfunction createBaseResponseEcho() {\n return {\n message: \"\",\n };\n}\nexports.ResponseEcho = {\n typeUrl: \"/tendermint.abci.ResponseEcho\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.message !== \"\") {\n writer.uint32(10).string(message.message);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseEcho();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.message = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseEcho();\n if ((0, helpers_1.isSet)(object.message))\n obj.message = String(object.message);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.message !== undefined && (obj.message = message.message);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseEcho();\n message.message = object.message ?? \"\";\n return message;\n },\n};\nfunction createBaseResponseFlush() {\n return {};\n}\nexports.ResponseFlush = {\n typeUrl: \"/tendermint.abci.ResponseFlush\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseFlush();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseResponseFlush();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseResponseFlush();\n return message;\n },\n};\nfunction createBaseResponseInfo() {\n return {\n data: \"\",\n version: \"\",\n appVersion: BigInt(0),\n lastBlockHeight: BigInt(0),\n lastBlockAppHash: new Uint8Array(),\n };\n}\nexports.ResponseInfo = {\n typeUrl: \"/tendermint.abci.ResponseInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.data !== \"\") {\n writer.uint32(10).string(message.data);\n }\n if (message.version !== \"\") {\n writer.uint32(18).string(message.version);\n }\n if (message.appVersion !== BigInt(0)) {\n writer.uint32(24).uint64(message.appVersion);\n }\n if (message.lastBlockHeight !== BigInt(0)) {\n writer.uint32(32).int64(message.lastBlockHeight);\n }\n if (message.lastBlockAppHash.length !== 0) {\n writer.uint32(42).bytes(message.lastBlockAppHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.string();\n break;\n case 2:\n message.version = reader.string();\n break;\n case 3:\n message.appVersion = reader.uint64();\n break;\n case 4:\n message.lastBlockHeight = reader.int64();\n break;\n case 5:\n message.lastBlockAppHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseInfo();\n if ((0, helpers_1.isSet)(object.data))\n obj.data = String(object.data);\n if ((0, helpers_1.isSet)(object.version))\n obj.version = String(object.version);\n if ((0, helpers_1.isSet)(object.appVersion))\n obj.appVersion = BigInt(object.appVersion.toString());\n if ((0, helpers_1.isSet)(object.lastBlockHeight))\n obj.lastBlockHeight = BigInt(object.lastBlockHeight.toString());\n if ((0, helpers_1.isSet)(object.lastBlockAppHash))\n obj.lastBlockAppHash = (0, helpers_1.bytesFromBase64)(object.lastBlockAppHash);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined && (obj.data = message.data);\n message.version !== undefined && (obj.version = message.version);\n message.appVersion !== undefined && (obj.appVersion = (message.appVersion || BigInt(0)).toString());\n message.lastBlockHeight !== undefined &&\n (obj.lastBlockHeight = (message.lastBlockHeight || BigInt(0)).toString());\n message.lastBlockAppHash !== undefined &&\n (obj.lastBlockAppHash = (0, helpers_1.base64FromBytes)(message.lastBlockAppHash !== undefined ? message.lastBlockAppHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseInfo();\n message.data = object.data ?? \"\";\n message.version = object.version ?? \"\";\n if (object.appVersion !== undefined && object.appVersion !== null) {\n message.appVersion = BigInt(object.appVersion.toString());\n }\n if (object.lastBlockHeight !== undefined && object.lastBlockHeight !== null) {\n message.lastBlockHeight = BigInt(object.lastBlockHeight.toString());\n }\n message.lastBlockAppHash = object.lastBlockAppHash ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseResponseInitChain() {\n return {\n consensusParams: undefined,\n validators: [],\n appHash: new Uint8Array(),\n };\n}\nexports.ResponseInitChain = {\n typeUrl: \"/tendermint.abci.ResponseInitChain\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.consensusParams !== undefined) {\n params_1.ConsensusParams.encode(message.consensusParams, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.validators) {\n exports.ValidatorUpdate.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.appHash.length !== 0) {\n writer.uint32(26).bytes(message.appHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseInitChain();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusParams = params_1.ConsensusParams.decode(reader, reader.uint32());\n break;\n case 2:\n message.validators.push(exports.ValidatorUpdate.decode(reader, reader.uint32()));\n break;\n case 3:\n message.appHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseInitChain();\n if ((0, helpers_1.isSet)(object.consensusParams))\n obj.consensusParams = params_1.ConsensusParams.fromJSON(object.consensusParams);\n if (Array.isArray(object?.validators))\n obj.validators = object.validators.map((e) => exports.ValidatorUpdate.fromJSON(e));\n if ((0, helpers_1.isSet)(object.appHash))\n obj.appHash = (0, helpers_1.bytesFromBase64)(object.appHash);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.consensusParams !== undefined &&\n (obj.consensusParams = message.consensusParams\n ? params_1.ConsensusParams.toJSON(message.consensusParams)\n : undefined);\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? exports.ValidatorUpdate.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.appHash !== undefined &&\n (obj.appHash = (0, helpers_1.base64FromBytes)(message.appHash !== undefined ? message.appHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseInitChain();\n if (object.consensusParams !== undefined && object.consensusParams !== null) {\n message.consensusParams = params_1.ConsensusParams.fromPartial(object.consensusParams);\n }\n message.validators = object.validators?.map((e) => exports.ValidatorUpdate.fromPartial(e)) || [];\n message.appHash = object.appHash ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseResponseQuery() {\n return {\n code: 0,\n log: \"\",\n info: \"\",\n index: BigInt(0),\n key: new Uint8Array(),\n value: new Uint8Array(),\n proofOps: undefined,\n height: BigInt(0),\n codespace: \"\",\n };\n}\nexports.ResponseQuery = {\n typeUrl: \"/tendermint.abci.ResponseQuery\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (message.index !== BigInt(0)) {\n writer.uint32(40).int64(message.index);\n }\n if (message.key.length !== 0) {\n writer.uint32(50).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(58).bytes(message.value);\n }\n if (message.proofOps !== undefined) {\n proof_1.ProofOps.encode(message.proofOps, writer.uint32(66).fork()).ldelim();\n }\n if (message.height !== BigInt(0)) {\n writer.uint32(72).int64(message.height);\n }\n if (message.codespace !== \"\") {\n writer.uint32(82).string(message.codespace);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseQuery();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.index = reader.int64();\n break;\n case 6:\n message.key = reader.bytes();\n break;\n case 7:\n message.value = reader.bytes();\n break;\n case 8:\n message.proofOps = proof_1.ProofOps.decode(reader, reader.uint32());\n break;\n case 9:\n message.height = reader.int64();\n break;\n case 10:\n message.codespace = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseQuery();\n if ((0, helpers_1.isSet)(object.code))\n obj.code = Number(object.code);\n if ((0, helpers_1.isSet)(object.log))\n obj.log = String(object.log);\n if ((0, helpers_1.isSet)(object.info))\n obj.info = String(object.info);\n if ((0, helpers_1.isSet)(object.index))\n obj.index = BigInt(object.index.toString());\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n if ((0, helpers_1.isSet)(object.value))\n obj.value = (0, helpers_1.bytesFromBase64)(object.value);\n if ((0, helpers_1.isSet)(object.proofOps))\n obj.proofOps = proof_1.ProofOps.fromJSON(object.proofOps);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.codespace))\n obj.codespace = String(object.codespace);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.code !== undefined && (obj.code = Math.round(message.code));\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n message.index !== undefined && (obj.index = (message.index || BigInt(0)).toString());\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n message.value !== undefined &&\n (obj.value = (0, helpers_1.base64FromBytes)(message.value !== undefined ? message.value : new Uint8Array()));\n message.proofOps !== undefined &&\n (obj.proofOps = message.proofOps ? proof_1.ProofOps.toJSON(message.proofOps) : undefined);\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.codespace !== undefined && (obj.codespace = message.codespace);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseQuery();\n message.code = object.code ?? 0;\n message.log = object.log ?? \"\";\n message.info = object.info ?? \"\";\n if (object.index !== undefined && object.index !== null) {\n message.index = BigInt(object.index.toString());\n }\n message.key = object.key ?? new Uint8Array();\n message.value = object.value ?? new Uint8Array();\n if (object.proofOps !== undefined && object.proofOps !== null) {\n message.proofOps = proof_1.ProofOps.fromPartial(object.proofOps);\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n message.codespace = object.codespace ?? \"\";\n return message;\n },\n};\nfunction createBaseResponseBeginBlock() {\n return {\n events: [],\n };\n}\nexports.ResponseBeginBlock = {\n typeUrl: \"/tendermint.abci.ResponseBeginBlock\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseBeginBlock();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseBeginBlock();\n if (Array.isArray(object?.events))\n obj.events = object.events.map((e) => exports.Event.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseBeginBlock();\n message.events = object.events?.map((e) => exports.Event.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseResponseCheckTx() {\n return {\n code: 0,\n data: new Uint8Array(),\n log: \"\",\n info: \"\",\n gasWanted: BigInt(0),\n gasUsed: BigInt(0),\n events: [],\n codespace: \"\",\n sender: \"\",\n priority: BigInt(0),\n mempoolError: \"\",\n };\n}\nexports.ResponseCheckTx = {\n typeUrl: \"/tendermint.abci.ResponseCheckTx\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (message.gasWanted !== BigInt(0)) {\n writer.uint32(40).int64(message.gasWanted);\n }\n if (message.gasUsed !== BigInt(0)) {\n writer.uint32(48).int64(message.gasUsed);\n }\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.codespace !== \"\") {\n writer.uint32(66).string(message.codespace);\n }\n if (message.sender !== \"\") {\n writer.uint32(74).string(message.sender);\n }\n if (message.priority !== BigInt(0)) {\n writer.uint32(80).int64(message.priority);\n }\n if (message.mempoolError !== \"\") {\n writer.uint32(90).string(message.mempoolError);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseCheckTx();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.gasWanted = reader.int64();\n break;\n case 6:\n message.gasUsed = reader.int64();\n break;\n case 7:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n case 8:\n message.codespace = reader.string();\n break;\n case 9:\n message.sender = reader.string();\n break;\n case 10:\n message.priority = reader.int64();\n break;\n case 11:\n message.mempoolError = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseCheckTx();\n if ((0, helpers_1.isSet)(object.code))\n obj.code = Number(object.code);\n if ((0, helpers_1.isSet)(object.data))\n obj.data = (0, helpers_1.bytesFromBase64)(object.data);\n if ((0, helpers_1.isSet)(object.log))\n obj.log = String(object.log);\n if ((0, helpers_1.isSet)(object.info))\n obj.info = String(object.info);\n if ((0, helpers_1.isSet)(object.gas_wanted))\n obj.gasWanted = BigInt(object.gas_wanted.toString());\n if ((0, helpers_1.isSet)(object.gas_used))\n obj.gasUsed = BigInt(object.gas_used.toString());\n if (Array.isArray(object?.events))\n obj.events = object.events.map((e) => exports.Event.fromJSON(e));\n if ((0, helpers_1.isSet)(object.codespace))\n obj.codespace = String(object.codespace);\n if ((0, helpers_1.isSet)(object.sender))\n obj.sender = String(object.sender);\n if ((0, helpers_1.isSet)(object.priority))\n obj.priority = BigInt(object.priority.toString());\n if ((0, helpers_1.isSet)(object.mempoolError))\n obj.mempoolError = String(object.mempoolError);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.code !== undefined && (obj.code = Math.round(message.code));\n message.data !== undefined &&\n (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array()));\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n message.gasWanted !== undefined && (obj.gas_wanted = (message.gasWanted || BigInt(0)).toString());\n message.gasUsed !== undefined && (obj.gas_used = (message.gasUsed || BigInt(0)).toString());\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n message.codespace !== undefined && (obj.codespace = message.codespace);\n message.sender !== undefined && (obj.sender = message.sender);\n message.priority !== undefined && (obj.priority = (message.priority || BigInt(0)).toString());\n message.mempoolError !== undefined && (obj.mempoolError = message.mempoolError);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseCheckTx();\n message.code = object.code ?? 0;\n message.data = object.data ?? new Uint8Array();\n message.log = object.log ?? \"\";\n message.info = object.info ?? \"\";\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = BigInt(object.gasWanted.toString());\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = BigInt(object.gasUsed.toString());\n }\n message.events = object.events?.map((e) => exports.Event.fromPartial(e)) || [];\n message.codespace = object.codespace ?? \"\";\n message.sender = object.sender ?? \"\";\n if (object.priority !== undefined && object.priority !== null) {\n message.priority = BigInt(object.priority.toString());\n }\n message.mempoolError = object.mempoolError ?? \"\";\n return message;\n },\n};\nfunction createBaseResponseDeliverTx() {\n return {\n code: 0,\n data: new Uint8Array(),\n log: \"\",\n info: \"\",\n gasWanted: BigInt(0),\n gasUsed: BigInt(0),\n events: [],\n codespace: \"\",\n };\n}\nexports.ResponseDeliverTx = {\n typeUrl: \"/tendermint.abci.ResponseDeliverTx\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (message.gasWanted !== BigInt(0)) {\n writer.uint32(40).int64(message.gasWanted);\n }\n if (message.gasUsed !== BigInt(0)) {\n writer.uint32(48).int64(message.gasUsed);\n }\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.codespace !== \"\") {\n writer.uint32(66).string(message.codespace);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseDeliverTx();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.gasWanted = reader.int64();\n break;\n case 6:\n message.gasUsed = reader.int64();\n break;\n case 7:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n case 8:\n message.codespace = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseDeliverTx();\n if ((0, helpers_1.isSet)(object.code))\n obj.code = Number(object.code);\n if ((0, helpers_1.isSet)(object.data))\n obj.data = (0, helpers_1.bytesFromBase64)(object.data);\n if ((0, helpers_1.isSet)(object.log))\n obj.log = String(object.log);\n if ((0, helpers_1.isSet)(object.info))\n obj.info = String(object.info);\n if ((0, helpers_1.isSet)(object.gas_wanted))\n obj.gasWanted = BigInt(object.gas_wanted.toString());\n if ((0, helpers_1.isSet)(object.gas_used))\n obj.gasUsed = BigInt(object.gas_used.toString());\n if (Array.isArray(object?.events))\n obj.events = object.events.map((e) => exports.Event.fromJSON(e));\n if ((0, helpers_1.isSet)(object.codespace))\n obj.codespace = String(object.codespace);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.code !== undefined && (obj.code = Math.round(message.code));\n message.data !== undefined &&\n (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array()));\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n message.gasWanted !== undefined && (obj.gas_wanted = (message.gasWanted || BigInt(0)).toString());\n message.gasUsed !== undefined && (obj.gas_used = (message.gasUsed || BigInt(0)).toString());\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n message.codespace !== undefined && (obj.codespace = message.codespace);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseDeliverTx();\n message.code = object.code ?? 0;\n message.data = object.data ?? new Uint8Array();\n message.log = object.log ?? \"\";\n message.info = object.info ?? \"\";\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = BigInt(object.gasWanted.toString());\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = BigInt(object.gasUsed.toString());\n }\n message.events = object.events?.map((e) => exports.Event.fromPartial(e)) || [];\n message.codespace = object.codespace ?? \"\";\n return message;\n },\n};\nfunction createBaseResponseEndBlock() {\n return {\n validatorUpdates: [],\n consensusParamUpdates: undefined,\n events: [],\n };\n}\nexports.ResponseEndBlock = {\n typeUrl: \"/tendermint.abci.ResponseEndBlock\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.validatorUpdates) {\n exports.ValidatorUpdate.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.consensusParamUpdates !== undefined) {\n params_1.ConsensusParams.encode(message.consensusParamUpdates, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseEndBlock();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorUpdates.push(exports.ValidatorUpdate.decode(reader, reader.uint32()));\n break;\n case 2:\n message.consensusParamUpdates = params_1.ConsensusParams.decode(reader, reader.uint32());\n break;\n case 3:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseEndBlock();\n if (Array.isArray(object?.validatorUpdates))\n obj.validatorUpdates = object.validatorUpdates.map((e) => exports.ValidatorUpdate.fromJSON(e));\n if ((0, helpers_1.isSet)(object.consensusParamUpdates))\n obj.consensusParamUpdates = params_1.ConsensusParams.fromJSON(object.consensusParamUpdates);\n if (Array.isArray(object?.events))\n obj.events = object.events.map((e) => exports.Event.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.validatorUpdates) {\n obj.validatorUpdates = message.validatorUpdates.map((e) => (e ? exports.ValidatorUpdate.toJSON(e) : undefined));\n }\n else {\n obj.validatorUpdates = [];\n }\n message.consensusParamUpdates !== undefined &&\n (obj.consensusParamUpdates = message.consensusParamUpdates\n ? params_1.ConsensusParams.toJSON(message.consensusParamUpdates)\n : undefined);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseEndBlock();\n message.validatorUpdates = object.validatorUpdates?.map((e) => exports.ValidatorUpdate.fromPartial(e)) || [];\n if (object.consensusParamUpdates !== undefined && object.consensusParamUpdates !== null) {\n message.consensusParamUpdates = params_1.ConsensusParams.fromPartial(object.consensusParamUpdates);\n }\n message.events = object.events?.map((e) => exports.Event.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseResponseCommit() {\n return {\n data: new Uint8Array(),\n retainHeight: BigInt(0),\n };\n}\nexports.ResponseCommit = {\n typeUrl: \"/tendermint.abci.ResponseCommit\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.retainHeight !== BigInt(0)) {\n writer.uint32(24).int64(message.retainHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseCommit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.retainHeight = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseCommit();\n if ((0, helpers_1.isSet)(object.data))\n obj.data = (0, helpers_1.bytesFromBase64)(object.data);\n if ((0, helpers_1.isSet)(object.retainHeight))\n obj.retainHeight = BigInt(object.retainHeight.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array()));\n message.retainHeight !== undefined && (obj.retainHeight = (message.retainHeight || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseCommit();\n message.data = object.data ?? new Uint8Array();\n if (object.retainHeight !== undefined && object.retainHeight !== null) {\n message.retainHeight = BigInt(object.retainHeight.toString());\n }\n return message;\n },\n};\nfunction createBaseResponseListSnapshots() {\n return {\n snapshots: [],\n };\n}\nexports.ResponseListSnapshots = {\n typeUrl: \"/tendermint.abci.ResponseListSnapshots\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.snapshots) {\n exports.Snapshot.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseListSnapshots();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.snapshots.push(exports.Snapshot.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseListSnapshots();\n if (Array.isArray(object?.snapshots))\n obj.snapshots = object.snapshots.map((e) => exports.Snapshot.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.snapshots) {\n obj.snapshots = message.snapshots.map((e) => (e ? exports.Snapshot.toJSON(e) : undefined));\n }\n else {\n obj.snapshots = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseListSnapshots();\n message.snapshots = object.snapshots?.map((e) => exports.Snapshot.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseResponseOfferSnapshot() {\n return {\n result: 0,\n };\n}\nexports.ResponseOfferSnapshot = {\n typeUrl: \"/tendermint.abci.ResponseOfferSnapshot\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseOfferSnapshot();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseOfferSnapshot();\n if ((0, helpers_1.isSet)(object.result))\n obj.result = responseOfferSnapshot_ResultFromJSON(object.result);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseOfferSnapshot_ResultToJSON(message.result));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseOfferSnapshot();\n message.result = object.result ?? 0;\n return message;\n },\n};\nfunction createBaseResponseLoadSnapshotChunk() {\n return {\n chunk: new Uint8Array(),\n };\n}\nexports.ResponseLoadSnapshotChunk = {\n typeUrl: \"/tendermint.abci.ResponseLoadSnapshotChunk\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.chunk.length !== 0) {\n writer.uint32(10).bytes(message.chunk);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseLoadSnapshotChunk();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.chunk = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseLoadSnapshotChunk();\n if ((0, helpers_1.isSet)(object.chunk))\n obj.chunk = (0, helpers_1.bytesFromBase64)(object.chunk);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.chunk !== undefined &&\n (obj.chunk = (0, helpers_1.base64FromBytes)(message.chunk !== undefined ? message.chunk : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseLoadSnapshotChunk();\n message.chunk = object.chunk ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseResponseApplySnapshotChunk() {\n return {\n result: 0,\n refetchChunks: [],\n rejectSenders: [],\n };\n}\nexports.ResponseApplySnapshotChunk = {\n typeUrl: \"/tendermint.abci.ResponseApplySnapshotChunk\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n writer.uint32(18).fork();\n for (const v of message.refetchChunks) {\n writer.uint32(v);\n }\n writer.ldelim();\n for (const v of message.rejectSenders) {\n writer.uint32(26).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseApplySnapshotChunk();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n case 2:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.refetchChunks.push(reader.uint32());\n }\n }\n else {\n message.refetchChunks.push(reader.uint32());\n }\n break;\n case 3:\n message.rejectSenders.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseApplySnapshotChunk();\n if ((0, helpers_1.isSet)(object.result))\n obj.result = responseApplySnapshotChunk_ResultFromJSON(object.result);\n if (Array.isArray(object?.refetchChunks))\n obj.refetchChunks = object.refetchChunks.map((e) => Number(e));\n if (Array.isArray(object?.rejectSenders))\n obj.rejectSenders = object.rejectSenders.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseApplySnapshotChunk_ResultToJSON(message.result));\n if (message.refetchChunks) {\n obj.refetchChunks = message.refetchChunks.map((e) => Math.round(e));\n }\n else {\n obj.refetchChunks = [];\n }\n if (message.rejectSenders) {\n obj.rejectSenders = message.rejectSenders.map((e) => e);\n }\n else {\n obj.rejectSenders = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseApplySnapshotChunk();\n message.result = object.result ?? 0;\n message.refetchChunks = object.refetchChunks?.map((e) => e) || [];\n message.rejectSenders = object.rejectSenders?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseResponsePrepareProposal() {\n return {\n txs: [],\n };\n}\nexports.ResponsePrepareProposal = {\n typeUrl: \"/tendermint.abci.ResponsePrepareProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.txs) {\n writer.uint32(10).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponsePrepareProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txs.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponsePrepareProposal();\n if (Array.isArray(object?.txs))\n obj.txs = object.txs.map((e) => (0, helpers_1.bytesFromBase64)(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.txs) {\n obj.txs = message.txs.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.txs = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponsePrepareProposal();\n message.txs = object.txs?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseResponseProcessProposal() {\n return {\n status: 0,\n };\n}\nexports.ResponseProcessProposal = {\n typeUrl: \"/tendermint.abci.ResponseProcessProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.status !== 0) {\n writer.uint32(8).int32(message.status);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseProcessProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.status = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseProcessProposal();\n if ((0, helpers_1.isSet)(object.status))\n obj.status = responseProcessProposal_ProposalStatusFromJSON(object.status);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.status !== undefined &&\n (obj.status = responseProcessProposal_ProposalStatusToJSON(message.status));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseProcessProposal();\n message.status = object.status ?? 0;\n return message;\n },\n};\nfunction createBaseCommitInfo() {\n return {\n round: 0,\n votes: [],\n };\n}\nexports.CommitInfo = {\n typeUrl: \"/tendermint.abci.CommitInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.round !== 0) {\n writer.uint32(8).int32(message.round);\n }\n for (const v of message.votes) {\n exports.VoteInfo.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCommitInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.round = reader.int32();\n break;\n case 2:\n message.votes.push(exports.VoteInfo.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCommitInfo();\n if ((0, helpers_1.isSet)(object.round))\n obj.round = Number(object.round);\n if (Array.isArray(object?.votes))\n obj.votes = object.votes.map((e) => exports.VoteInfo.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.round !== undefined && (obj.round = Math.round(message.round));\n if (message.votes) {\n obj.votes = message.votes.map((e) => (e ? exports.VoteInfo.toJSON(e) : undefined));\n }\n else {\n obj.votes = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCommitInfo();\n message.round = object.round ?? 0;\n message.votes = object.votes?.map((e) => exports.VoteInfo.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseExtendedCommitInfo() {\n return {\n round: 0,\n votes: [],\n };\n}\nexports.ExtendedCommitInfo = {\n typeUrl: \"/tendermint.abci.ExtendedCommitInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.round !== 0) {\n writer.uint32(8).int32(message.round);\n }\n for (const v of message.votes) {\n exports.ExtendedVoteInfo.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseExtendedCommitInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.round = reader.int32();\n break;\n case 2:\n message.votes.push(exports.ExtendedVoteInfo.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseExtendedCommitInfo();\n if ((0, helpers_1.isSet)(object.round))\n obj.round = Number(object.round);\n if (Array.isArray(object?.votes))\n obj.votes = object.votes.map((e) => exports.ExtendedVoteInfo.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.round !== undefined && (obj.round = Math.round(message.round));\n if (message.votes) {\n obj.votes = message.votes.map((e) => (e ? exports.ExtendedVoteInfo.toJSON(e) : undefined));\n }\n else {\n obj.votes = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseExtendedCommitInfo();\n message.round = object.round ?? 0;\n message.votes = object.votes?.map((e) => exports.ExtendedVoteInfo.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseEvent() {\n return {\n type: \"\",\n attributes: [],\n };\n}\nexports.Event = {\n typeUrl: \"/tendermint.abci.Event\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.type !== \"\") {\n writer.uint32(10).string(message.type);\n }\n for (const v of message.attributes) {\n exports.EventAttribute.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEvent();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.string();\n break;\n case 2:\n message.attributes.push(exports.EventAttribute.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseEvent();\n if ((0, helpers_1.isSet)(object.type))\n obj.type = String(object.type);\n if (Array.isArray(object?.attributes))\n obj.attributes = object.attributes.map((e) => exports.EventAttribute.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = message.type);\n if (message.attributes) {\n obj.attributes = message.attributes.map((e) => (e ? exports.EventAttribute.toJSON(e) : undefined));\n }\n else {\n obj.attributes = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseEvent();\n message.type = object.type ?? \"\";\n message.attributes = object.attributes?.map((e) => exports.EventAttribute.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseEventAttribute() {\n return {\n key: \"\",\n value: \"\",\n index: false,\n };\n}\nexports.EventAttribute = {\n typeUrl: \"/tendermint.abci.EventAttribute\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n if (message.index === true) {\n writer.uint32(24).bool(message.index);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAttribute();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n case 2:\n message.value = reader.string();\n break;\n case 3:\n message.index = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseEventAttribute();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = String(object.key);\n if ((0, helpers_1.isSet)(object.value))\n obj.value = String(object.value);\n if ((0, helpers_1.isSet)(object.index))\n obj.index = Boolean(object.index);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined && (obj.key = message.key);\n message.value !== undefined && (obj.value = message.value);\n message.index !== undefined && (obj.index = message.index);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseEventAttribute();\n message.key = object.key ?? \"\";\n message.value = object.value ?? \"\";\n message.index = object.index ?? false;\n return message;\n },\n};\nfunction createBaseTxResult() {\n return {\n height: BigInt(0),\n index: 0,\n tx: new Uint8Array(),\n result: exports.ResponseDeliverTx.fromPartial({}),\n };\n}\nexports.TxResult = {\n typeUrl: \"/tendermint.abci.TxResult\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.height !== BigInt(0)) {\n writer.uint32(8).int64(message.height);\n }\n if (message.index !== 0) {\n writer.uint32(16).uint32(message.index);\n }\n if (message.tx.length !== 0) {\n writer.uint32(26).bytes(message.tx);\n }\n if (message.result !== undefined) {\n exports.ResponseDeliverTx.encode(message.result, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxResult();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n case 2:\n message.index = reader.uint32();\n break;\n case 3:\n message.tx = reader.bytes();\n break;\n case 4:\n message.result = exports.ResponseDeliverTx.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxResult();\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.index))\n obj.index = Number(object.index);\n if ((0, helpers_1.isSet)(object.tx))\n obj.tx = (0, helpers_1.bytesFromBase64)(object.tx);\n if ((0, helpers_1.isSet)(object.result))\n obj.result = exports.ResponseDeliverTx.fromJSON(object.result);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.index !== undefined && (obj.index = Math.round(message.index));\n message.tx !== undefined &&\n (obj.tx = (0, helpers_1.base64FromBytes)(message.tx !== undefined ? message.tx : new Uint8Array()));\n message.result !== undefined &&\n (obj.result = message.result ? exports.ResponseDeliverTx.toJSON(message.result) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxResult();\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n message.index = object.index ?? 0;\n message.tx = object.tx ?? new Uint8Array();\n if (object.result !== undefined && object.result !== null) {\n message.result = exports.ResponseDeliverTx.fromPartial(object.result);\n }\n return message;\n },\n};\nfunction createBaseValidator() {\n return {\n address: new Uint8Array(),\n power: BigInt(0),\n };\n}\nexports.Validator = {\n typeUrl: \"/tendermint.abci.Validator\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address.length !== 0) {\n writer.uint32(10).bytes(message.address);\n }\n if (message.power !== BigInt(0)) {\n writer.uint32(24).int64(message.power);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidator();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.bytes();\n break;\n case 3:\n message.power = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidator();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = (0, helpers_1.bytesFromBase64)(object.address);\n if ((0, helpers_1.isSet)(object.power))\n obj.power = BigInt(object.power.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined &&\n (obj.address = (0, helpers_1.base64FromBytes)(message.address !== undefined ? message.address : new Uint8Array()));\n message.power !== undefined && (obj.power = (message.power || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidator();\n message.address = object.address ?? new Uint8Array();\n if (object.power !== undefined && object.power !== null) {\n message.power = BigInt(object.power.toString());\n }\n return message;\n },\n};\nfunction createBaseValidatorUpdate() {\n return {\n pubKey: keys_1.PublicKey.fromPartial({}),\n power: BigInt(0),\n };\n}\nexports.ValidatorUpdate = {\n typeUrl: \"/tendermint.abci.ValidatorUpdate\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.pubKey !== undefined) {\n keys_1.PublicKey.encode(message.pubKey, writer.uint32(10).fork()).ldelim();\n }\n if (message.power !== BigInt(0)) {\n writer.uint32(16).int64(message.power);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorUpdate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pubKey = keys_1.PublicKey.decode(reader, reader.uint32());\n break;\n case 2:\n message.power = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidatorUpdate();\n if ((0, helpers_1.isSet)(object.pubKey))\n obj.pubKey = keys_1.PublicKey.fromJSON(object.pubKey);\n if ((0, helpers_1.isSet)(object.power))\n obj.power = BigInt(object.power.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.pubKey !== undefined &&\n (obj.pubKey = message.pubKey ? keys_1.PublicKey.toJSON(message.pubKey) : undefined);\n message.power !== undefined && (obj.power = (message.power || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidatorUpdate();\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = keys_1.PublicKey.fromPartial(object.pubKey);\n }\n if (object.power !== undefined && object.power !== null) {\n message.power = BigInt(object.power.toString());\n }\n return message;\n },\n};\nfunction createBaseVoteInfo() {\n return {\n validator: exports.Validator.fromPartial({}),\n signedLastBlock: false,\n };\n}\nexports.VoteInfo = {\n typeUrl: \"/tendermint.abci.VoteInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validator !== undefined) {\n exports.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim();\n }\n if (message.signedLastBlock === true) {\n writer.uint32(16).bool(message.signedLastBlock);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVoteInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validator = exports.Validator.decode(reader, reader.uint32());\n break;\n case 2:\n message.signedLastBlock = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseVoteInfo();\n if ((0, helpers_1.isSet)(object.validator))\n obj.validator = exports.Validator.fromJSON(object.validator);\n if ((0, helpers_1.isSet)(object.signedLastBlock))\n obj.signedLastBlock = Boolean(object.signedLastBlock);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validator !== undefined &&\n (obj.validator = message.validator ? exports.Validator.toJSON(message.validator) : undefined);\n message.signedLastBlock !== undefined && (obj.signedLastBlock = message.signedLastBlock);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseVoteInfo();\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = exports.Validator.fromPartial(object.validator);\n }\n message.signedLastBlock = object.signedLastBlock ?? false;\n return message;\n },\n};\nfunction createBaseExtendedVoteInfo() {\n return {\n validator: exports.Validator.fromPartial({}),\n signedLastBlock: false,\n voteExtension: new Uint8Array(),\n };\n}\nexports.ExtendedVoteInfo = {\n typeUrl: \"/tendermint.abci.ExtendedVoteInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validator !== undefined) {\n exports.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim();\n }\n if (message.signedLastBlock === true) {\n writer.uint32(16).bool(message.signedLastBlock);\n }\n if (message.voteExtension.length !== 0) {\n writer.uint32(26).bytes(message.voteExtension);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseExtendedVoteInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validator = exports.Validator.decode(reader, reader.uint32());\n break;\n case 2:\n message.signedLastBlock = reader.bool();\n break;\n case 3:\n message.voteExtension = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseExtendedVoteInfo();\n if ((0, helpers_1.isSet)(object.validator))\n obj.validator = exports.Validator.fromJSON(object.validator);\n if ((0, helpers_1.isSet)(object.signedLastBlock))\n obj.signedLastBlock = Boolean(object.signedLastBlock);\n if ((0, helpers_1.isSet)(object.voteExtension))\n obj.voteExtension = (0, helpers_1.bytesFromBase64)(object.voteExtension);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validator !== undefined &&\n (obj.validator = message.validator ? exports.Validator.toJSON(message.validator) : undefined);\n message.signedLastBlock !== undefined && (obj.signedLastBlock = message.signedLastBlock);\n message.voteExtension !== undefined &&\n (obj.voteExtension = (0, helpers_1.base64FromBytes)(message.voteExtension !== undefined ? message.voteExtension : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseExtendedVoteInfo();\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = exports.Validator.fromPartial(object.validator);\n }\n message.signedLastBlock = object.signedLastBlock ?? false;\n message.voteExtension = object.voteExtension ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseMisbehavior() {\n return {\n type: 0,\n validator: exports.Validator.fromPartial({}),\n height: BigInt(0),\n time: timestamp_1.Timestamp.fromPartial({}),\n totalVotingPower: BigInt(0),\n };\n}\nexports.Misbehavior = {\n typeUrl: \"/tendermint.abci.Misbehavior\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.type !== 0) {\n writer.uint32(8).int32(message.type);\n }\n if (message.validator !== undefined) {\n exports.Validator.encode(message.validator, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== BigInt(0)) {\n writer.uint32(24).int64(message.height);\n }\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(message.time, writer.uint32(34).fork()).ldelim();\n }\n if (message.totalVotingPower !== BigInt(0)) {\n writer.uint32(40).int64(message.totalVotingPower);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMisbehavior();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.int32();\n break;\n case 2:\n message.validator = exports.Validator.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = reader.int64();\n break;\n case 4:\n message.time = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 5:\n message.totalVotingPower = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMisbehavior();\n if ((0, helpers_1.isSet)(object.type))\n obj.type = misbehaviorTypeFromJSON(object.type);\n if ((0, helpers_1.isSet)(object.validator))\n obj.validator = exports.Validator.fromJSON(object.validator);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.time))\n obj.time = (0, helpers_1.fromJsonTimestamp)(object.time);\n if ((0, helpers_1.isSet)(object.totalVotingPower))\n obj.totalVotingPower = BigInt(object.totalVotingPower.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = misbehaviorTypeToJSON(message.type));\n message.validator !== undefined &&\n (obj.validator = message.validator ? exports.Validator.toJSON(message.validator) : undefined);\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.time !== undefined && (obj.time = (0, helpers_1.fromTimestamp)(message.time).toISOString());\n message.totalVotingPower !== undefined &&\n (obj.totalVotingPower = (message.totalVotingPower || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMisbehavior();\n message.type = object.type ?? 0;\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = exports.Validator.fromPartial(object.validator);\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = timestamp_1.Timestamp.fromPartial(object.time);\n }\n if (object.totalVotingPower !== undefined && object.totalVotingPower !== null) {\n message.totalVotingPower = BigInt(object.totalVotingPower.toString());\n }\n return message;\n },\n};\nfunction createBaseSnapshot() {\n return {\n height: BigInt(0),\n format: 0,\n chunks: 0,\n hash: new Uint8Array(),\n metadata: new Uint8Array(),\n };\n}\nexports.Snapshot = {\n typeUrl: \"/tendermint.abci.Snapshot\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.height !== BigInt(0)) {\n writer.uint32(8).uint64(message.height);\n }\n if (message.format !== 0) {\n writer.uint32(16).uint32(message.format);\n }\n if (message.chunks !== 0) {\n writer.uint32(24).uint32(message.chunks);\n }\n if (message.hash.length !== 0) {\n writer.uint32(34).bytes(message.hash);\n }\n if (message.metadata.length !== 0) {\n writer.uint32(42).bytes(message.metadata);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSnapshot();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.uint64();\n break;\n case 2:\n message.format = reader.uint32();\n break;\n case 3:\n message.chunks = reader.uint32();\n break;\n case 4:\n message.hash = reader.bytes();\n break;\n case 5:\n message.metadata = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSnapshot();\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.format))\n obj.format = Number(object.format);\n if ((0, helpers_1.isSet)(object.chunks))\n obj.chunks = Number(object.chunks);\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = (0, helpers_1.bytesFromBase64)(object.hash);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = (0, helpers_1.bytesFromBase64)(object.metadata);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.format !== undefined && (obj.format = Math.round(message.format));\n message.chunks !== undefined && (obj.chunks = Math.round(message.chunks));\n message.hash !== undefined &&\n (obj.hash = (0, helpers_1.base64FromBytes)(message.hash !== undefined ? message.hash : new Uint8Array()));\n message.metadata !== undefined &&\n (obj.metadata = (0, helpers_1.base64FromBytes)(message.metadata !== undefined ? message.metadata : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSnapshot();\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n message.format = object.format ?? 0;\n message.chunks = object.chunks ?? 0;\n message.hash = object.hash ?? new Uint8Array();\n message.metadata = object.metadata ?? new Uint8Array();\n return message;\n },\n};\nclass ABCIApplicationClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Echo = this.Echo.bind(this);\n this.Flush = this.Flush.bind(this);\n this.Info = this.Info.bind(this);\n this.DeliverTx = this.DeliverTx.bind(this);\n this.CheckTx = this.CheckTx.bind(this);\n this.Query = this.Query.bind(this);\n this.Commit = this.Commit.bind(this);\n this.InitChain = this.InitChain.bind(this);\n this.BeginBlock = this.BeginBlock.bind(this);\n this.EndBlock = this.EndBlock.bind(this);\n this.ListSnapshots = this.ListSnapshots.bind(this);\n this.OfferSnapshot = this.OfferSnapshot.bind(this);\n this.LoadSnapshotChunk = this.LoadSnapshotChunk.bind(this);\n this.ApplySnapshotChunk = this.ApplySnapshotChunk.bind(this);\n this.PrepareProposal = this.PrepareProposal.bind(this);\n this.ProcessProposal = this.ProcessProposal.bind(this);\n }\n Echo(request) {\n const data = exports.RequestEcho.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Echo\", data);\n return promise.then((data) => exports.ResponseEcho.decode(new binary_1.BinaryReader(data)));\n }\n Flush(request = {}) {\n const data = exports.RequestFlush.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Flush\", data);\n return promise.then((data) => exports.ResponseFlush.decode(new binary_1.BinaryReader(data)));\n }\n Info(request) {\n const data = exports.RequestInfo.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Info\", data);\n return promise.then((data) => exports.ResponseInfo.decode(new binary_1.BinaryReader(data)));\n }\n DeliverTx(request) {\n const data = exports.RequestDeliverTx.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"DeliverTx\", data);\n return promise.then((data) => exports.ResponseDeliverTx.decode(new binary_1.BinaryReader(data)));\n }\n CheckTx(request) {\n const data = exports.RequestCheckTx.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"CheckTx\", data);\n return promise.then((data) => exports.ResponseCheckTx.decode(new binary_1.BinaryReader(data)));\n }\n Query(request) {\n const data = exports.RequestQuery.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Query\", data);\n return promise.then((data) => exports.ResponseQuery.decode(new binary_1.BinaryReader(data)));\n }\n Commit(request = {}) {\n const data = exports.RequestCommit.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Commit\", data);\n return promise.then((data) => exports.ResponseCommit.decode(new binary_1.BinaryReader(data)));\n }\n InitChain(request) {\n const data = exports.RequestInitChain.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"InitChain\", data);\n return promise.then((data) => exports.ResponseInitChain.decode(new binary_1.BinaryReader(data)));\n }\n BeginBlock(request) {\n const data = exports.RequestBeginBlock.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"BeginBlock\", data);\n return promise.then((data) => exports.ResponseBeginBlock.decode(new binary_1.BinaryReader(data)));\n }\n EndBlock(request) {\n const data = exports.RequestEndBlock.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"EndBlock\", data);\n return promise.then((data) => exports.ResponseEndBlock.decode(new binary_1.BinaryReader(data)));\n }\n ListSnapshots(request = {}) {\n const data = exports.RequestListSnapshots.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"ListSnapshots\", data);\n return promise.then((data) => exports.ResponseListSnapshots.decode(new binary_1.BinaryReader(data)));\n }\n OfferSnapshot(request) {\n const data = exports.RequestOfferSnapshot.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"OfferSnapshot\", data);\n return promise.then((data) => exports.ResponseOfferSnapshot.decode(new binary_1.BinaryReader(data)));\n }\n LoadSnapshotChunk(request) {\n const data = exports.RequestLoadSnapshotChunk.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"LoadSnapshotChunk\", data);\n return promise.then((data) => exports.ResponseLoadSnapshotChunk.decode(new binary_1.BinaryReader(data)));\n }\n ApplySnapshotChunk(request) {\n const data = exports.RequestApplySnapshotChunk.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"ApplySnapshotChunk\", data);\n return promise.then((data) => exports.ResponseApplySnapshotChunk.decode(new binary_1.BinaryReader(data)));\n }\n PrepareProposal(request) {\n const data = exports.RequestPrepareProposal.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"PrepareProposal\", data);\n return promise.then((data) => exports.ResponsePrepareProposal.decode(new binary_1.BinaryReader(data)));\n }\n ProcessProposal(request) {\n const data = exports.RequestProcessProposal.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"ProcessProposal\", data);\n return promise.then((data) => exports.ResponseProcessProposal.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.ABCIApplicationClientImpl = ABCIApplicationClientImpl;\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"tendermint.crypto\";\nfunction createBasePublicKey() {\n return {\n ed25519: undefined,\n secp256k1: undefined,\n };\n}\nexports.PublicKey = {\n typeUrl: \"/tendermint.crypto.PublicKey\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.ed25519 !== undefined) {\n writer.uint32(10).bytes(message.ed25519);\n }\n if (message.secp256k1 !== undefined) {\n writer.uint32(18).bytes(message.secp256k1);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePublicKey();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.ed25519 = reader.bytes();\n break;\n case 2:\n message.secp256k1 = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePublicKey();\n if ((0, helpers_1.isSet)(object.ed25519))\n obj.ed25519 = (0, helpers_1.bytesFromBase64)(object.ed25519);\n if ((0, helpers_1.isSet)(object.secp256k1))\n obj.secp256k1 = (0, helpers_1.bytesFromBase64)(object.secp256k1);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.ed25519 !== undefined &&\n (obj.ed25519 = message.ed25519 !== undefined ? (0, helpers_1.base64FromBytes)(message.ed25519) : undefined);\n message.secp256k1 !== undefined &&\n (obj.secp256k1 = message.secp256k1 !== undefined ? (0, helpers_1.base64FromBytes)(message.secp256k1) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBasePublicKey();\n message.ed25519 = object.ed25519 ?? undefined;\n message.secp256k1 = object.secp256k1 ?? undefined;\n return message;\n },\n};\n//# sourceMappingURL=keys.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProofOps = exports.ProofOp = exports.DominoOp = exports.ValueOp = exports.Proof = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"tendermint.crypto\";\nfunction createBaseProof() {\n return {\n total: BigInt(0),\n index: BigInt(0),\n leafHash: new Uint8Array(),\n aunts: [],\n };\n}\nexports.Proof = {\n typeUrl: \"/tendermint.crypto.Proof\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.total !== BigInt(0)) {\n writer.uint32(8).int64(message.total);\n }\n if (message.index !== BigInt(0)) {\n writer.uint32(16).int64(message.index);\n }\n if (message.leafHash.length !== 0) {\n writer.uint32(26).bytes(message.leafHash);\n }\n for (const v of message.aunts) {\n writer.uint32(34).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total = reader.int64();\n break;\n case 2:\n message.index = reader.int64();\n break;\n case 3:\n message.leafHash = reader.bytes();\n break;\n case 4:\n message.aunts.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseProof();\n if ((0, helpers_1.isSet)(object.total))\n obj.total = BigInt(object.total.toString());\n if ((0, helpers_1.isSet)(object.index))\n obj.index = BigInt(object.index.toString());\n if ((0, helpers_1.isSet)(object.leafHash))\n obj.leafHash = (0, helpers_1.bytesFromBase64)(object.leafHash);\n if (Array.isArray(object?.aunts))\n obj.aunts = object.aunts.map((e) => (0, helpers_1.bytesFromBase64)(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.total !== undefined && (obj.total = (message.total || BigInt(0)).toString());\n message.index !== undefined && (obj.index = (message.index || BigInt(0)).toString());\n message.leafHash !== undefined &&\n (obj.leafHash = (0, helpers_1.base64FromBytes)(message.leafHash !== undefined ? message.leafHash : new Uint8Array()));\n if (message.aunts) {\n obj.aunts = message.aunts.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.aunts = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseProof();\n if (object.total !== undefined && object.total !== null) {\n message.total = BigInt(object.total.toString());\n }\n if (object.index !== undefined && object.index !== null) {\n message.index = BigInt(object.index.toString());\n }\n message.leafHash = object.leafHash ?? new Uint8Array();\n message.aunts = object.aunts?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseValueOp() {\n return {\n key: new Uint8Array(),\n proof: undefined,\n };\n}\nexports.ValueOp = {\n typeUrl: \"/tendermint.crypto.ValueOp\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.proof !== undefined) {\n exports.Proof.encode(message.proof, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValueOp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.proof = exports.Proof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValueOp();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = exports.Proof.fromJSON(object.proof);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n message.proof !== undefined && (obj.proof = message.proof ? exports.Proof.toJSON(message.proof) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValueOp();\n message.key = object.key ?? new Uint8Array();\n if (object.proof !== undefined && object.proof !== null) {\n message.proof = exports.Proof.fromPartial(object.proof);\n }\n return message;\n },\n};\nfunction createBaseDominoOp() {\n return {\n key: \"\",\n input: \"\",\n output: \"\",\n };\n}\nexports.DominoOp = {\n typeUrl: \"/tendermint.crypto.DominoOp\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.input !== \"\") {\n writer.uint32(18).string(message.input);\n }\n if (message.output !== \"\") {\n writer.uint32(26).string(message.output);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDominoOp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n case 2:\n message.input = reader.string();\n break;\n case 3:\n message.output = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDominoOp();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = String(object.key);\n if ((0, helpers_1.isSet)(object.input))\n obj.input = String(object.input);\n if ((0, helpers_1.isSet)(object.output))\n obj.output = String(object.output);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined && (obj.key = message.key);\n message.input !== undefined && (obj.input = message.input);\n message.output !== undefined && (obj.output = message.output);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDominoOp();\n message.key = object.key ?? \"\";\n message.input = object.input ?? \"\";\n message.output = object.output ?? \"\";\n return message;\n },\n};\nfunction createBaseProofOp() {\n return {\n type: \"\",\n key: new Uint8Array(),\n data: new Uint8Array(),\n };\n}\nexports.ProofOp = {\n typeUrl: \"/tendermint.crypto.ProofOp\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.type !== \"\") {\n writer.uint32(10).string(message.type);\n }\n if (message.key.length !== 0) {\n writer.uint32(18).bytes(message.key);\n }\n if (message.data.length !== 0) {\n writer.uint32(26).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProofOp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.string();\n break;\n case 2:\n message.key = reader.bytes();\n break;\n case 3:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseProofOp();\n if ((0, helpers_1.isSet)(object.type))\n obj.type = String(object.type);\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n if ((0, helpers_1.isSet)(object.data))\n obj.data = (0, helpers_1.bytesFromBase64)(object.data);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = message.type);\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n message.data !== undefined &&\n (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseProofOp();\n message.type = object.type ?? \"\";\n message.key = object.key ?? new Uint8Array();\n message.data = object.data ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseProofOps() {\n return {\n ops: [],\n };\n}\nexports.ProofOps = {\n typeUrl: \"/tendermint.crypto.ProofOps\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.ops) {\n exports.ProofOp.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProofOps();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.ops.push(exports.ProofOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseProofOps();\n if (Array.isArray(object?.ops))\n obj.ops = object.ops.map((e) => exports.ProofOp.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.ops) {\n obj.ops = message.ops.map((e) => (e ? exports.ProofOp.toJSON(e) : undefined));\n }\n else {\n obj.ops = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseProofOps();\n message.ops = object.ops?.map((e) => exports.ProofOp.fromPartial(e)) || [];\n return message;\n },\n};\n//# sourceMappingURL=proof.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Block = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst types_1 = require(\"./types\");\nconst evidence_1 = require(\"./evidence\");\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"tendermint.types\";\nfunction createBaseBlock() {\n return {\n header: types_1.Header.fromPartial({}),\n data: types_1.Data.fromPartial({}),\n evidence: evidence_1.EvidenceList.fromPartial({}),\n lastCommit: undefined,\n };\n}\nexports.Block = {\n typeUrl: \"/tendermint.types.Block\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.header !== undefined) {\n types_1.Header.encode(message.header, writer.uint32(10).fork()).ldelim();\n }\n if (message.data !== undefined) {\n types_1.Data.encode(message.data, writer.uint32(18).fork()).ldelim();\n }\n if (message.evidence !== undefined) {\n evidence_1.EvidenceList.encode(message.evidence, writer.uint32(26).fork()).ldelim();\n }\n if (message.lastCommit !== undefined) {\n types_1.Commit.encode(message.lastCommit, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBlock();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.header = types_1.Header.decode(reader, reader.uint32());\n break;\n case 2:\n message.data = types_1.Data.decode(reader, reader.uint32());\n break;\n case 3:\n message.evidence = evidence_1.EvidenceList.decode(reader, reader.uint32());\n break;\n case 4:\n message.lastCommit = types_1.Commit.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBlock();\n if ((0, helpers_1.isSet)(object.header))\n obj.header = types_1.Header.fromJSON(object.header);\n if ((0, helpers_1.isSet)(object.data))\n obj.data = types_1.Data.fromJSON(object.data);\n if ((0, helpers_1.isSet)(object.evidence))\n obj.evidence = evidence_1.EvidenceList.fromJSON(object.evidence);\n if ((0, helpers_1.isSet)(object.lastCommit))\n obj.lastCommit = types_1.Commit.fromJSON(object.lastCommit);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.header !== undefined && (obj.header = message.header ? types_1.Header.toJSON(message.header) : undefined);\n message.data !== undefined && (obj.data = message.data ? types_1.Data.toJSON(message.data) : undefined);\n message.evidence !== undefined &&\n (obj.evidence = message.evidence ? evidence_1.EvidenceList.toJSON(message.evidence) : undefined);\n message.lastCommit !== undefined &&\n (obj.lastCommit = message.lastCommit ? types_1.Commit.toJSON(message.lastCommit) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBlock();\n if (object.header !== undefined && object.header !== null) {\n message.header = types_1.Header.fromPartial(object.header);\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = types_1.Data.fromPartial(object.data);\n }\n if (object.evidence !== undefined && object.evidence !== null) {\n message.evidence = evidence_1.EvidenceList.fromPartial(object.evidence);\n }\n if (object.lastCommit !== undefined && object.lastCommit !== null) {\n message.lastCommit = types_1.Commit.fromPartial(object.lastCommit);\n }\n return message;\n },\n};\n//# sourceMappingURL=block.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EvidenceList = exports.LightClientAttackEvidence = exports.DuplicateVoteEvidence = exports.Evidence = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst types_1 = require(\"./types\");\nconst timestamp_1 = require(\"../../google/protobuf/timestamp\");\nconst validator_1 = require(\"./validator\");\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"tendermint.types\";\nfunction createBaseEvidence() {\n return {\n duplicateVoteEvidence: undefined,\n lightClientAttackEvidence: undefined,\n };\n}\nexports.Evidence = {\n typeUrl: \"/tendermint.types.Evidence\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.duplicateVoteEvidence !== undefined) {\n exports.DuplicateVoteEvidence.encode(message.duplicateVoteEvidence, writer.uint32(10).fork()).ldelim();\n }\n if (message.lightClientAttackEvidence !== undefined) {\n exports.LightClientAttackEvidence.encode(message.lightClientAttackEvidence, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEvidence();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.duplicateVoteEvidence = exports.DuplicateVoteEvidence.decode(reader, reader.uint32());\n break;\n case 2:\n message.lightClientAttackEvidence = exports.LightClientAttackEvidence.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseEvidence();\n if ((0, helpers_1.isSet)(object.duplicateVoteEvidence))\n obj.duplicateVoteEvidence = exports.DuplicateVoteEvidence.fromJSON(object.duplicateVoteEvidence);\n if ((0, helpers_1.isSet)(object.lightClientAttackEvidence))\n obj.lightClientAttackEvidence = exports.LightClientAttackEvidence.fromJSON(object.lightClientAttackEvidence);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.duplicateVoteEvidence !== undefined &&\n (obj.duplicateVoteEvidence = message.duplicateVoteEvidence\n ? exports.DuplicateVoteEvidence.toJSON(message.duplicateVoteEvidence)\n : undefined);\n message.lightClientAttackEvidence !== undefined &&\n (obj.lightClientAttackEvidence = message.lightClientAttackEvidence\n ? exports.LightClientAttackEvidence.toJSON(message.lightClientAttackEvidence)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseEvidence();\n if (object.duplicateVoteEvidence !== undefined && object.duplicateVoteEvidence !== null) {\n message.duplicateVoteEvidence = exports.DuplicateVoteEvidence.fromPartial(object.duplicateVoteEvidence);\n }\n if (object.lightClientAttackEvidence !== undefined && object.lightClientAttackEvidence !== null) {\n message.lightClientAttackEvidence = exports.LightClientAttackEvidence.fromPartial(object.lightClientAttackEvidence);\n }\n return message;\n },\n};\nfunction createBaseDuplicateVoteEvidence() {\n return {\n voteA: undefined,\n voteB: undefined,\n totalVotingPower: BigInt(0),\n validatorPower: BigInt(0),\n timestamp: timestamp_1.Timestamp.fromPartial({}),\n };\n}\nexports.DuplicateVoteEvidence = {\n typeUrl: \"/tendermint.types.DuplicateVoteEvidence\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.voteA !== undefined) {\n types_1.Vote.encode(message.voteA, writer.uint32(10).fork()).ldelim();\n }\n if (message.voteB !== undefined) {\n types_1.Vote.encode(message.voteB, writer.uint32(18).fork()).ldelim();\n }\n if (message.totalVotingPower !== BigInt(0)) {\n writer.uint32(24).int64(message.totalVotingPower);\n }\n if (message.validatorPower !== BigInt(0)) {\n writer.uint32(32).int64(message.validatorPower);\n }\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(message.timestamp, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDuplicateVoteEvidence();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.voteA = types_1.Vote.decode(reader, reader.uint32());\n break;\n case 2:\n message.voteB = types_1.Vote.decode(reader, reader.uint32());\n break;\n case 3:\n message.totalVotingPower = reader.int64();\n break;\n case 4:\n message.validatorPower = reader.int64();\n break;\n case 5:\n message.timestamp = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDuplicateVoteEvidence();\n if ((0, helpers_1.isSet)(object.voteA))\n obj.voteA = types_1.Vote.fromJSON(object.voteA);\n if ((0, helpers_1.isSet)(object.voteB))\n obj.voteB = types_1.Vote.fromJSON(object.voteB);\n if ((0, helpers_1.isSet)(object.totalVotingPower))\n obj.totalVotingPower = BigInt(object.totalVotingPower.toString());\n if ((0, helpers_1.isSet)(object.validatorPower))\n obj.validatorPower = BigInt(object.validatorPower.toString());\n if ((0, helpers_1.isSet)(object.timestamp))\n obj.timestamp = (0, helpers_1.fromJsonTimestamp)(object.timestamp);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.voteA !== undefined && (obj.voteA = message.voteA ? types_1.Vote.toJSON(message.voteA) : undefined);\n message.voteB !== undefined && (obj.voteB = message.voteB ? types_1.Vote.toJSON(message.voteB) : undefined);\n message.totalVotingPower !== undefined &&\n (obj.totalVotingPower = (message.totalVotingPower || BigInt(0)).toString());\n message.validatorPower !== undefined &&\n (obj.validatorPower = (message.validatorPower || BigInt(0)).toString());\n message.timestamp !== undefined && (obj.timestamp = (0, helpers_1.fromTimestamp)(message.timestamp).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDuplicateVoteEvidence();\n if (object.voteA !== undefined && object.voteA !== null) {\n message.voteA = types_1.Vote.fromPartial(object.voteA);\n }\n if (object.voteB !== undefined && object.voteB !== null) {\n message.voteB = types_1.Vote.fromPartial(object.voteB);\n }\n if (object.totalVotingPower !== undefined && object.totalVotingPower !== null) {\n message.totalVotingPower = BigInt(object.totalVotingPower.toString());\n }\n if (object.validatorPower !== undefined && object.validatorPower !== null) {\n message.validatorPower = BigInt(object.validatorPower.toString());\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = timestamp_1.Timestamp.fromPartial(object.timestamp);\n }\n return message;\n },\n};\nfunction createBaseLightClientAttackEvidence() {\n return {\n conflictingBlock: undefined,\n commonHeight: BigInt(0),\n byzantineValidators: [],\n totalVotingPower: BigInt(0),\n timestamp: timestamp_1.Timestamp.fromPartial({}),\n };\n}\nexports.LightClientAttackEvidence = {\n typeUrl: \"/tendermint.types.LightClientAttackEvidence\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.conflictingBlock !== undefined) {\n types_1.LightBlock.encode(message.conflictingBlock, writer.uint32(10).fork()).ldelim();\n }\n if (message.commonHeight !== BigInt(0)) {\n writer.uint32(16).int64(message.commonHeight);\n }\n for (const v of message.byzantineValidators) {\n validator_1.Validator.encode(v, writer.uint32(26).fork()).ldelim();\n }\n if (message.totalVotingPower !== BigInt(0)) {\n writer.uint32(32).int64(message.totalVotingPower);\n }\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(message.timestamp, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseLightClientAttackEvidence();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.conflictingBlock = types_1.LightBlock.decode(reader, reader.uint32());\n break;\n case 2:\n message.commonHeight = reader.int64();\n break;\n case 3:\n message.byzantineValidators.push(validator_1.Validator.decode(reader, reader.uint32()));\n break;\n case 4:\n message.totalVotingPower = reader.int64();\n break;\n case 5:\n message.timestamp = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseLightClientAttackEvidence();\n if ((0, helpers_1.isSet)(object.conflictingBlock))\n obj.conflictingBlock = types_1.LightBlock.fromJSON(object.conflictingBlock);\n if ((0, helpers_1.isSet)(object.commonHeight))\n obj.commonHeight = BigInt(object.commonHeight.toString());\n if (Array.isArray(object?.byzantineValidators))\n obj.byzantineValidators = object.byzantineValidators.map((e) => validator_1.Validator.fromJSON(e));\n if ((0, helpers_1.isSet)(object.totalVotingPower))\n obj.totalVotingPower = BigInt(object.totalVotingPower.toString());\n if ((0, helpers_1.isSet)(object.timestamp))\n obj.timestamp = (0, helpers_1.fromJsonTimestamp)(object.timestamp);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.conflictingBlock !== undefined &&\n (obj.conflictingBlock = message.conflictingBlock\n ? types_1.LightBlock.toJSON(message.conflictingBlock)\n : undefined);\n message.commonHeight !== undefined && (obj.commonHeight = (message.commonHeight || BigInt(0)).toString());\n if (message.byzantineValidators) {\n obj.byzantineValidators = message.byzantineValidators.map((e) => (e ? validator_1.Validator.toJSON(e) : undefined));\n }\n else {\n obj.byzantineValidators = [];\n }\n message.totalVotingPower !== undefined &&\n (obj.totalVotingPower = (message.totalVotingPower || BigInt(0)).toString());\n message.timestamp !== undefined && (obj.timestamp = (0, helpers_1.fromTimestamp)(message.timestamp).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseLightClientAttackEvidence();\n if (object.conflictingBlock !== undefined && object.conflictingBlock !== null) {\n message.conflictingBlock = types_1.LightBlock.fromPartial(object.conflictingBlock);\n }\n if (object.commonHeight !== undefined && object.commonHeight !== null) {\n message.commonHeight = BigInt(object.commonHeight.toString());\n }\n message.byzantineValidators = object.byzantineValidators?.map((e) => validator_1.Validator.fromPartial(e)) || [];\n if (object.totalVotingPower !== undefined && object.totalVotingPower !== null) {\n message.totalVotingPower = BigInt(object.totalVotingPower.toString());\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = timestamp_1.Timestamp.fromPartial(object.timestamp);\n }\n return message;\n },\n};\nfunction createBaseEvidenceList() {\n return {\n evidence: [],\n };\n}\nexports.EvidenceList = {\n typeUrl: \"/tendermint.types.EvidenceList\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.evidence) {\n exports.Evidence.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEvidenceList();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.evidence.push(exports.Evidence.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseEvidenceList();\n if (Array.isArray(object?.evidence))\n obj.evidence = object.evidence.map((e) => exports.Evidence.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.evidence) {\n obj.evidence = message.evidence.map((e) => (e ? exports.Evidence.toJSON(e) : undefined));\n }\n else {\n obj.evidence = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseEvidenceList();\n message.evidence = object.evidence?.map((e) => exports.Evidence.fromPartial(e)) || [];\n return message;\n },\n};\n//# sourceMappingURL=evidence.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HashedParams = exports.VersionParams = exports.ValidatorParams = exports.EvidenceParams = exports.BlockParams = exports.ConsensusParams = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst duration_1 = require(\"../../google/protobuf/duration\");\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"tendermint.types\";\nfunction createBaseConsensusParams() {\n return {\n block: undefined,\n evidence: undefined,\n validator: undefined,\n version: undefined,\n };\n}\nexports.ConsensusParams = {\n typeUrl: \"/tendermint.types.ConsensusParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.block !== undefined) {\n exports.BlockParams.encode(message.block, writer.uint32(10).fork()).ldelim();\n }\n if (message.evidence !== undefined) {\n exports.EvidenceParams.encode(message.evidence, writer.uint32(18).fork()).ldelim();\n }\n if (message.validator !== undefined) {\n exports.ValidatorParams.encode(message.validator, writer.uint32(26).fork()).ldelim();\n }\n if (message.version !== undefined) {\n exports.VersionParams.encode(message.version, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseConsensusParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.block = exports.BlockParams.decode(reader, reader.uint32());\n break;\n case 2:\n message.evidence = exports.EvidenceParams.decode(reader, reader.uint32());\n break;\n case 3:\n message.validator = exports.ValidatorParams.decode(reader, reader.uint32());\n break;\n case 4:\n message.version = exports.VersionParams.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseConsensusParams();\n if ((0, helpers_1.isSet)(object.block))\n obj.block = exports.BlockParams.fromJSON(object.block);\n if ((0, helpers_1.isSet)(object.evidence))\n obj.evidence = exports.EvidenceParams.fromJSON(object.evidence);\n if ((0, helpers_1.isSet)(object.validator))\n obj.validator = exports.ValidatorParams.fromJSON(object.validator);\n if ((0, helpers_1.isSet)(object.version))\n obj.version = exports.VersionParams.fromJSON(object.version);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.block !== undefined &&\n (obj.block = message.block ? exports.BlockParams.toJSON(message.block) : undefined);\n message.evidence !== undefined &&\n (obj.evidence = message.evidence ? exports.EvidenceParams.toJSON(message.evidence) : undefined);\n message.validator !== undefined &&\n (obj.validator = message.validator ? exports.ValidatorParams.toJSON(message.validator) : undefined);\n message.version !== undefined &&\n (obj.version = message.version ? exports.VersionParams.toJSON(message.version) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseConsensusParams();\n if (object.block !== undefined && object.block !== null) {\n message.block = exports.BlockParams.fromPartial(object.block);\n }\n if (object.evidence !== undefined && object.evidence !== null) {\n message.evidence = exports.EvidenceParams.fromPartial(object.evidence);\n }\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = exports.ValidatorParams.fromPartial(object.validator);\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = exports.VersionParams.fromPartial(object.version);\n }\n return message;\n },\n};\nfunction createBaseBlockParams() {\n return {\n maxBytes: BigInt(0),\n maxGas: BigInt(0),\n };\n}\nexports.BlockParams = {\n typeUrl: \"/tendermint.types.BlockParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.maxBytes !== BigInt(0)) {\n writer.uint32(8).int64(message.maxBytes);\n }\n if (message.maxGas !== BigInt(0)) {\n writer.uint32(16).int64(message.maxGas);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBlockParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxBytes = reader.int64();\n break;\n case 2:\n message.maxGas = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBlockParams();\n if ((0, helpers_1.isSet)(object.maxBytes))\n obj.maxBytes = BigInt(object.maxBytes.toString());\n if ((0, helpers_1.isSet)(object.maxGas))\n obj.maxGas = BigInt(object.maxGas.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || BigInt(0)).toString());\n message.maxGas !== undefined && (obj.maxGas = (message.maxGas || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBlockParams();\n if (object.maxBytes !== undefined && object.maxBytes !== null) {\n message.maxBytes = BigInt(object.maxBytes.toString());\n }\n if (object.maxGas !== undefined && object.maxGas !== null) {\n message.maxGas = BigInt(object.maxGas.toString());\n }\n return message;\n },\n};\nfunction createBaseEvidenceParams() {\n return {\n maxAgeNumBlocks: BigInt(0),\n maxAgeDuration: duration_1.Duration.fromPartial({}),\n maxBytes: BigInt(0),\n };\n}\nexports.EvidenceParams = {\n typeUrl: \"/tendermint.types.EvidenceParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.maxAgeNumBlocks !== BigInt(0)) {\n writer.uint32(8).int64(message.maxAgeNumBlocks);\n }\n if (message.maxAgeDuration !== undefined) {\n duration_1.Duration.encode(message.maxAgeDuration, writer.uint32(18).fork()).ldelim();\n }\n if (message.maxBytes !== BigInt(0)) {\n writer.uint32(24).int64(message.maxBytes);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEvidenceParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxAgeNumBlocks = reader.int64();\n break;\n case 2:\n message.maxAgeDuration = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 3:\n message.maxBytes = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseEvidenceParams();\n if ((0, helpers_1.isSet)(object.maxAgeNumBlocks))\n obj.maxAgeNumBlocks = BigInt(object.maxAgeNumBlocks.toString());\n if ((0, helpers_1.isSet)(object.maxAgeDuration))\n obj.maxAgeDuration = duration_1.Duration.fromJSON(object.maxAgeDuration);\n if ((0, helpers_1.isSet)(object.maxBytes))\n obj.maxBytes = BigInt(object.maxBytes.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.maxAgeNumBlocks !== undefined &&\n (obj.maxAgeNumBlocks = (message.maxAgeNumBlocks || BigInt(0)).toString());\n message.maxAgeDuration !== undefined &&\n (obj.maxAgeDuration = message.maxAgeDuration ? duration_1.Duration.toJSON(message.maxAgeDuration) : undefined);\n message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseEvidenceParams();\n if (object.maxAgeNumBlocks !== undefined && object.maxAgeNumBlocks !== null) {\n message.maxAgeNumBlocks = BigInt(object.maxAgeNumBlocks.toString());\n }\n if (object.maxAgeDuration !== undefined && object.maxAgeDuration !== null) {\n message.maxAgeDuration = duration_1.Duration.fromPartial(object.maxAgeDuration);\n }\n if (object.maxBytes !== undefined && object.maxBytes !== null) {\n message.maxBytes = BigInt(object.maxBytes.toString());\n }\n return message;\n },\n};\nfunction createBaseValidatorParams() {\n return {\n pubKeyTypes: [],\n };\n}\nexports.ValidatorParams = {\n typeUrl: \"/tendermint.types.ValidatorParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.pubKeyTypes) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pubKeyTypes.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidatorParams();\n if (Array.isArray(object?.pubKeyTypes))\n obj.pubKeyTypes = object.pubKeyTypes.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.pubKeyTypes) {\n obj.pubKeyTypes = message.pubKeyTypes.map((e) => e);\n }\n else {\n obj.pubKeyTypes = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidatorParams();\n message.pubKeyTypes = object.pubKeyTypes?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseVersionParams() {\n return {\n app: BigInt(0),\n };\n}\nexports.VersionParams = {\n typeUrl: \"/tendermint.types.VersionParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.app !== BigInt(0)) {\n writer.uint32(8).uint64(message.app);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVersionParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.app = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseVersionParams();\n if ((0, helpers_1.isSet)(object.app))\n obj.app = BigInt(object.app.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.app !== undefined && (obj.app = (message.app || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseVersionParams();\n if (object.app !== undefined && object.app !== null) {\n message.app = BigInt(object.app.toString());\n }\n return message;\n },\n};\nfunction createBaseHashedParams() {\n return {\n blockMaxBytes: BigInt(0),\n blockMaxGas: BigInt(0),\n };\n}\nexports.HashedParams = {\n typeUrl: \"/tendermint.types.HashedParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.blockMaxBytes !== BigInt(0)) {\n writer.uint32(8).int64(message.blockMaxBytes);\n }\n if (message.blockMaxGas !== BigInt(0)) {\n writer.uint32(16).int64(message.blockMaxGas);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHashedParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.blockMaxBytes = reader.int64();\n break;\n case 2:\n message.blockMaxGas = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseHashedParams();\n if ((0, helpers_1.isSet)(object.blockMaxBytes))\n obj.blockMaxBytes = BigInt(object.blockMaxBytes.toString());\n if ((0, helpers_1.isSet)(object.blockMaxGas))\n obj.blockMaxGas = BigInt(object.blockMaxGas.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.blockMaxBytes !== undefined &&\n (obj.blockMaxBytes = (message.blockMaxBytes || BigInt(0)).toString());\n message.blockMaxGas !== undefined && (obj.blockMaxGas = (message.blockMaxGas || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseHashedParams();\n if (object.blockMaxBytes !== undefined && object.blockMaxBytes !== null) {\n message.blockMaxBytes = BigInt(object.blockMaxBytes.toString());\n }\n if (object.blockMaxGas !== undefined && object.blockMaxGas !== null) {\n message.blockMaxGas = BigInt(object.blockMaxGas.toString());\n }\n return message;\n },\n};\n//# sourceMappingURL=params.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TxProof = exports.BlockMeta = exports.LightBlock = exports.SignedHeader = exports.Proposal = exports.CommitSig = exports.Commit = exports.Vote = exports.Data = exports.Header = exports.BlockID = exports.Part = exports.PartSetHeader = exports.signedMsgTypeToJSON = exports.signedMsgTypeFromJSON = exports.SignedMsgType = exports.blockIDFlagToJSON = exports.blockIDFlagFromJSON = exports.BlockIDFlag = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst proof_1 = require(\"../crypto/proof\");\nconst types_1 = require(\"../version/types\");\nconst timestamp_1 = require(\"../../google/protobuf/timestamp\");\nconst validator_1 = require(\"./validator\");\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"tendermint.types\";\n/** BlockIdFlag indicates which BlcokID the signature is for */\nvar BlockIDFlag;\n(function (BlockIDFlag) {\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_UNKNOWN\"] = 0] = \"BLOCK_ID_FLAG_UNKNOWN\";\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_ABSENT\"] = 1] = \"BLOCK_ID_FLAG_ABSENT\";\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_COMMIT\"] = 2] = \"BLOCK_ID_FLAG_COMMIT\";\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_NIL\"] = 3] = \"BLOCK_ID_FLAG_NIL\";\n BlockIDFlag[BlockIDFlag[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(BlockIDFlag || (exports.BlockIDFlag = BlockIDFlag = {}));\nfunction blockIDFlagFromJSON(object) {\n switch (object) {\n case 0:\n case \"BLOCK_ID_FLAG_UNKNOWN\":\n return BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN;\n case 1:\n case \"BLOCK_ID_FLAG_ABSENT\":\n return BlockIDFlag.BLOCK_ID_FLAG_ABSENT;\n case 2:\n case \"BLOCK_ID_FLAG_COMMIT\":\n return BlockIDFlag.BLOCK_ID_FLAG_COMMIT;\n case 3:\n case \"BLOCK_ID_FLAG_NIL\":\n return BlockIDFlag.BLOCK_ID_FLAG_NIL;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return BlockIDFlag.UNRECOGNIZED;\n }\n}\nexports.blockIDFlagFromJSON = blockIDFlagFromJSON;\nfunction blockIDFlagToJSON(object) {\n switch (object) {\n case BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN:\n return \"BLOCK_ID_FLAG_UNKNOWN\";\n case BlockIDFlag.BLOCK_ID_FLAG_ABSENT:\n return \"BLOCK_ID_FLAG_ABSENT\";\n case BlockIDFlag.BLOCK_ID_FLAG_COMMIT:\n return \"BLOCK_ID_FLAG_COMMIT\";\n case BlockIDFlag.BLOCK_ID_FLAG_NIL:\n return \"BLOCK_ID_FLAG_NIL\";\n case BlockIDFlag.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.blockIDFlagToJSON = blockIDFlagToJSON;\n/** SignedMsgType is a type of signed message in the consensus. */\nvar SignedMsgType;\n(function (SignedMsgType) {\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_UNKNOWN\"] = 0] = \"SIGNED_MSG_TYPE_UNKNOWN\";\n /** SIGNED_MSG_TYPE_PREVOTE - Votes */\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_PREVOTE\"] = 1] = \"SIGNED_MSG_TYPE_PREVOTE\";\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_PRECOMMIT\"] = 2] = \"SIGNED_MSG_TYPE_PRECOMMIT\";\n /** SIGNED_MSG_TYPE_PROPOSAL - Proposals */\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_PROPOSAL\"] = 32] = \"SIGNED_MSG_TYPE_PROPOSAL\";\n SignedMsgType[SignedMsgType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(SignedMsgType || (exports.SignedMsgType = SignedMsgType = {}));\nfunction signedMsgTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"SIGNED_MSG_TYPE_UNKNOWN\":\n return SignedMsgType.SIGNED_MSG_TYPE_UNKNOWN;\n case 1:\n case \"SIGNED_MSG_TYPE_PREVOTE\":\n return SignedMsgType.SIGNED_MSG_TYPE_PREVOTE;\n case 2:\n case \"SIGNED_MSG_TYPE_PRECOMMIT\":\n return SignedMsgType.SIGNED_MSG_TYPE_PRECOMMIT;\n case 32:\n case \"SIGNED_MSG_TYPE_PROPOSAL\":\n return SignedMsgType.SIGNED_MSG_TYPE_PROPOSAL;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return SignedMsgType.UNRECOGNIZED;\n }\n}\nexports.signedMsgTypeFromJSON = signedMsgTypeFromJSON;\nfunction signedMsgTypeToJSON(object) {\n switch (object) {\n case SignedMsgType.SIGNED_MSG_TYPE_UNKNOWN:\n return \"SIGNED_MSG_TYPE_UNKNOWN\";\n case SignedMsgType.SIGNED_MSG_TYPE_PREVOTE:\n return \"SIGNED_MSG_TYPE_PREVOTE\";\n case SignedMsgType.SIGNED_MSG_TYPE_PRECOMMIT:\n return \"SIGNED_MSG_TYPE_PRECOMMIT\";\n case SignedMsgType.SIGNED_MSG_TYPE_PROPOSAL:\n return \"SIGNED_MSG_TYPE_PROPOSAL\";\n case SignedMsgType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.signedMsgTypeToJSON = signedMsgTypeToJSON;\nfunction createBasePartSetHeader() {\n return {\n total: 0,\n hash: new Uint8Array(),\n };\n}\nexports.PartSetHeader = {\n typeUrl: \"/tendermint.types.PartSetHeader\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.total !== 0) {\n writer.uint32(8).uint32(message.total);\n }\n if (message.hash.length !== 0) {\n writer.uint32(18).bytes(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePartSetHeader();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total = reader.uint32();\n break;\n case 2:\n message.hash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePartSetHeader();\n if ((0, helpers_1.isSet)(object.total))\n obj.total = Number(object.total);\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = (0, helpers_1.bytesFromBase64)(object.hash);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.total !== undefined && (obj.total = Math.round(message.total));\n message.hash !== undefined &&\n (obj.hash = (0, helpers_1.base64FromBytes)(message.hash !== undefined ? message.hash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBasePartSetHeader();\n message.total = object.total ?? 0;\n message.hash = object.hash ?? new Uint8Array();\n return message;\n },\n};\nfunction createBasePart() {\n return {\n index: 0,\n bytes: new Uint8Array(),\n proof: proof_1.Proof.fromPartial({}),\n };\n}\nexports.Part = {\n typeUrl: \"/tendermint.types.Part\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.index !== 0) {\n writer.uint32(8).uint32(message.index);\n }\n if (message.bytes.length !== 0) {\n writer.uint32(18).bytes(message.bytes);\n }\n if (message.proof !== undefined) {\n proof_1.Proof.encode(message.proof, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePart();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.index = reader.uint32();\n break;\n case 2:\n message.bytes = reader.bytes();\n break;\n case 3:\n message.proof = proof_1.Proof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePart();\n if ((0, helpers_1.isSet)(object.index))\n obj.index = Number(object.index);\n if ((0, helpers_1.isSet)(object.bytes))\n obj.bytes = (0, helpers_1.bytesFromBase64)(object.bytes);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = proof_1.Proof.fromJSON(object.proof);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.index !== undefined && (obj.index = Math.round(message.index));\n message.bytes !== undefined &&\n (obj.bytes = (0, helpers_1.base64FromBytes)(message.bytes !== undefined ? message.bytes : new Uint8Array()));\n message.proof !== undefined && (obj.proof = message.proof ? proof_1.Proof.toJSON(message.proof) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBasePart();\n message.index = object.index ?? 0;\n message.bytes = object.bytes ?? new Uint8Array();\n if (object.proof !== undefined && object.proof !== null) {\n message.proof = proof_1.Proof.fromPartial(object.proof);\n }\n return message;\n },\n};\nfunction createBaseBlockID() {\n return {\n hash: new Uint8Array(),\n partSetHeader: exports.PartSetHeader.fromPartial({}),\n };\n}\nexports.BlockID = {\n typeUrl: \"/tendermint.types.BlockID\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.hash.length !== 0) {\n writer.uint32(10).bytes(message.hash);\n }\n if (message.partSetHeader !== undefined) {\n exports.PartSetHeader.encode(message.partSetHeader, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBlockID();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.bytes();\n break;\n case 2:\n message.partSetHeader = exports.PartSetHeader.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBlockID();\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = (0, helpers_1.bytesFromBase64)(object.hash);\n if ((0, helpers_1.isSet)(object.partSetHeader))\n obj.partSetHeader = exports.PartSetHeader.fromJSON(object.partSetHeader);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined &&\n (obj.hash = (0, helpers_1.base64FromBytes)(message.hash !== undefined ? message.hash : new Uint8Array()));\n message.partSetHeader !== undefined &&\n (obj.partSetHeader = message.partSetHeader ? exports.PartSetHeader.toJSON(message.partSetHeader) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBlockID();\n message.hash = object.hash ?? new Uint8Array();\n if (object.partSetHeader !== undefined && object.partSetHeader !== null) {\n message.partSetHeader = exports.PartSetHeader.fromPartial(object.partSetHeader);\n }\n return message;\n },\n};\nfunction createBaseHeader() {\n return {\n version: types_1.Consensus.fromPartial({}),\n chainId: \"\",\n height: BigInt(0),\n time: timestamp_1.Timestamp.fromPartial({}),\n lastBlockId: exports.BlockID.fromPartial({}),\n lastCommitHash: new Uint8Array(),\n dataHash: new Uint8Array(),\n validatorsHash: new Uint8Array(),\n nextValidatorsHash: new Uint8Array(),\n consensusHash: new Uint8Array(),\n appHash: new Uint8Array(),\n lastResultsHash: new Uint8Array(),\n evidenceHash: new Uint8Array(),\n proposerAddress: new Uint8Array(),\n };\n}\nexports.Header = {\n typeUrl: \"/tendermint.types.Header\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.version !== undefined) {\n types_1.Consensus.encode(message.version, writer.uint32(10).fork()).ldelim();\n }\n if (message.chainId !== \"\") {\n writer.uint32(18).string(message.chainId);\n }\n if (message.height !== BigInt(0)) {\n writer.uint32(24).int64(message.height);\n }\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(message.time, writer.uint32(34).fork()).ldelim();\n }\n if (message.lastBlockId !== undefined) {\n exports.BlockID.encode(message.lastBlockId, writer.uint32(42).fork()).ldelim();\n }\n if (message.lastCommitHash.length !== 0) {\n writer.uint32(50).bytes(message.lastCommitHash);\n }\n if (message.dataHash.length !== 0) {\n writer.uint32(58).bytes(message.dataHash);\n }\n if (message.validatorsHash.length !== 0) {\n writer.uint32(66).bytes(message.validatorsHash);\n }\n if (message.nextValidatorsHash.length !== 0) {\n writer.uint32(74).bytes(message.nextValidatorsHash);\n }\n if (message.consensusHash.length !== 0) {\n writer.uint32(82).bytes(message.consensusHash);\n }\n if (message.appHash.length !== 0) {\n writer.uint32(90).bytes(message.appHash);\n }\n if (message.lastResultsHash.length !== 0) {\n writer.uint32(98).bytes(message.lastResultsHash);\n }\n if (message.evidenceHash.length !== 0) {\n writer.uint32(106).bytes(message.evidenceHash);\n }\n if (message.proposerAddress.length !== 0) {\n writer.uint32(114).bytes(message.proposerAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHeader();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.version = types_1.Consensus.decode(reader, reader.uint32());\n break;\n case 2:\n message.chainId = reader.string();\n break;\n case 3:\n message.height = reader.int64();\n break;\n case 4:\n message.time = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 5:\n message.lastBlockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 6:\n message.lastCommitHash = reader.bytes();\n break;\n case 7:\n message.dataHash = reader.bytes();\n break;\n case 8:\n message.validatorsHash = reader.bytes();\n break;\n case 9:\n message.nextValidatorsHash = reader.bytes();\n break;\n case 10:\n message.consensusHash = reader.bytes();\n break;\n case 11:\n message.appHash = reader.bytes();\n break;\n case 12:\n message.lastResultsHash = reader.bytes();\n break;\n case 13:\n message.evidenceHash = reader.bytes();\n break;\n case 14:\n message.proposerAddress = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseHeader();\n if ((0, helpers_1.isSet)(object.version))\n obj.version = types_1.Consensus.fromJSON(object.version);\n if ((0, helpers_1.isSet)(object.chainId))\n obj.chainId = String(object.chainId);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.time))\n obj.time = (0, helpers_1.fromJsonTimestamp)(object.time);\n if ((0, helpers_1.isSet)(object.lastBlockId))\n obj.lastBlockId = exports.BlockID.fromJSON(object.lastBlockId);\n if ((0, helpers_1.isSet)(object.lastCommitHash))\n obj.lastCommitHash = (0, helpers_1.bytesFromBase64)(object.lastCommitHash);\n if ((0, helpers_1.isSet)(object.dataHash))\n obj.dataHash = (0, helpers_1.bytesFromBase64)(object.dataHash);\n if ((0, helpers_1.isSet)(object.validatorsHash))\n obj.validatorsHash = (0, helpers_1.bytesFromBase64)(object.validatorsHash);\n if ((0, helpers_1.isSet)(object.nextValidatorsHash))\n obj.nextValidatorsHash = (0, helpers_1.bytesFromBase64)(object.nextValidatorsHash);\n if ((0, helpers_1.isSet)(object.consensusHash))\n obj.consensusHash = (0, helpers_1.bytesFromBase64)(object.consensusHash);\n if ((0, helpers_1.isSet)(object.appHash))\n obj.appHash = (0, helpers_1.bytesFromBase64)(object.appHash);\n if ((0, helpers_1.isSet)(object.lastResultsHash))\n obj.lastResultsHash = (0, helpers_1.bytesFromBase64)(object.lastResultsHash);\n if ((0, helpers_1.isSet)(object.evidenceHash))\n obj.evidenceHash = (0, helpers_1.bytesFromBase64)(object.evidenceHash);\n if ((0, helpers_1.isSet)(object.proposerAddress))\n obj.proposerAddress = (0, helpers_1.bytesFromBase64)(object.proposerAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.version !== undefined &&\n (obj.version = message.version ? types_1.Consensus.toJSON(message.version) : undefined);\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.time !== undefined && (obj.time = (0, helpers_1.fromTimestamp)(message.time).toISOString());\n message.lastBlockId !== undefined &&\n (obj.lastBlockId = message.lastBlockId ? exports.BlockID.toJSON(message.lastBlockId) : undefined);\n message.lastCommitHash !== undefined &&\n (obj.lastCommitHash = (0, helpers_1.base64FromBytes)(message.lastCommitHash !== undefined ? message.lastCommitHash : new Uint8Array()));\n message.dataHash !== undefined &&\n (obj.dataHash = (0, helpers_1.base64FromBytes)(message.dataHash !== undefined ? message.dataHash : new Uint8Array()));\n message.validatorsHash !== undefined &&\n (obj.validatorsHash = (0, helpers_1.base64FromBytes)(message.validatorsHash !== undefined ? message.validatorsHash : new Uint8Array()));\n message.nextValidatorsHash !== undefined &&\n (obj.nextValidatorsHash = (0, helpers_1.base64FromBytes)(message.nextValidatorsHash !== undefined ? message.nextValidatorsHash : new Uint8Array()));\n message.consensusHash !== undefined &&\n (obj.consensusHash = (0, helpers_1.base64FromBytes)(message.consensusHash !== undefined ? message.consensusHash : new Uint8Array()));\n message.appHash !== undefined &&\n (obj.appHash = (0, helpers_1.base64FromBytes)(message.appHash !== undefined ? message.appHash : new Uint8Array()));\n message.lastResultsHash !== undefined &&\n (obj.lastResultsHash = (0, helpers_1.base64FromBytes)(message.lastResultsHash !== undefined ? message.lastResultsHash : new Uint8Array()));\n message.evidenceHash !== undefined &&\n (obj.evidenceHash = (0, helpers_1.base64FromBytes)(message.evidenceHash !== undefined ? message.evidenceHash : new Uint8Array()));\n message.proposerAddress !== undefined &&\n (obj.proposerAddress = (0, helpers_1.base64FromBytes)(message.proposerAddress !== undefined ? message.proposerAddress : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseHeader();\n if (object.version !== undefined && object.version !== null) {\n message.version = types_1.Consensus.fromPartial(object.version);\n }\n message.chainId = object.chainId ?? \"\";\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = timestamp_1.Timestamp.fromPartial(object.time);\n }\n if (object.lastBlockId !== undefined && object.lastBlockId !== null) {\n message.lastBlockId = exports.BlockID.fromPartial(object.lastBlockId);\n }\n message.lastCommitHash = object.lastCommitHash ?? new Uint8Array();\n message.dataHash = object.dataHash ?? new Uint8Array();\n message.validatorsHash = object.validatorsHash ?? new Uint8Array();\n message.nextValidatorsHash = object.nextValidatorsHash ?? new Uint8Array();\n message.consensusHash = object.consensusHash ?? new Uint8Array();\n message.appHash = object.appHash ?? new Uint8Array();\n message.lastResultsHash = object.lastResultsHash ?? new Uint8Array();\n message.evidenceHash = object.evidenceHash ?? new Uint8Array();\n message.proposerAddress = object.proposerAddress ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseData() {\n return {\n txs: [],\n };\n}\nexports.Data = {\n typeUrl: \"/tendermint.types.Data\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.txs) {\n writer.uint32(10).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseData();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txs.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseData();\n if (Array.isArray(object?.txs))\n obj.txs = object.txs.map((e) => (0, helpers_1.bytesFromBase64)(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.txs) {\n obj.txs = message.txs.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.txs = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseData();\n message.txs = object.txs?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseVote() {\n return {\n type: 0,\n height: BigInt(0),\n round: 0,\n blockId: exports.BlockID.fromPartial({}),\n timestamp: timestamp_1.Timestamp.fromPartial({}),\n validatorAddress: new Uint8Array(),\n validatorIndex: 0,\n signature: new Uint8Array(),\n };\n}\nexports.Vote = {\n typeUrl: \"/tendermint.types.Vote\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.type !== 0) {\n writer.uint32(8).int32(message.type);\n }\n if (message.height !== BigInt(0)) {\n writer.uint32(16).int64(message.height);\n }\n if (message.round !== 0) {\n writer.uint32(24).int32(message.round);\n }\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(34).fork()).ldelim();\n }\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(message.timestamp, writer.uint32(42).fork()).ldelim();\n }\n if (message.validatorAddress.length !== 0) {\n writer.uint32(50).bytes(message.validatorAddress);\n }\n if (message.validatorIndex !== 0) {\n writer.uint32(56).int32(message.validatorIndex);\n }\n if (message.signature.length !== 0) {\n writer.uint32(66).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVote();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.int32();\n break;\n case 2:\n message.height = reader.int64();\n break;\n case 3:\n message.round = reader.int32();\n break;\n case 4:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 5:\n message.timestamp = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 6:\n message.validatorAddress = reader.bytes();\n break;\n case 7:\n message.validatorIndex = reader.int32();\n break;\n case 8:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseVote();\n if ((0, helpers_1.isSet)(object.type))\n obj.type = signedMsgTypeFromJSON(object.type);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.round))\n obj.round = Number(object.round);\n if ((0, helpers_1.isSet)(object.blockId))\n obj.blockId = exports.BlockID.fromJSON(object.blockId);\n if ((0, helpers_1.isSet)(object.timestamp))\n obj.timestamp = (0, helpers_1.fromJsonTimestamp)(object.timestamp);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = (0, helpers_1.bytesFromBase64)(object.validatorAddress);\n if ((0, helpers_1.isSet)(object.validatorIndex))\n obj.validatorIndex = Number(object.validatorIndex);\n if ((0, helpers_1.isSet)(object.signature))\n obj.signature = (0, helpers_1.bytesFromBase64)(object.signature);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = signedMsgTypeToJSON(message.type));\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.round !== undefined && (obj.round = Math.round(message.round));\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n message.timestamp !== undefined && (obj.timestamp = (0, helpers_1.fromTimestamp)(message.timestamp).toISOString());\n message.validatorAddress !== undefined &&\n (obj.validatorAddress = (0, helpers_1.base64FromBytes)(message.validatorAddress !== undefined ? message.validatorAddress : new Uint8Array()));\n message.validatorIndex !== undefined && (obj.validatorIndex = Math.round(message.validatorIndex));\n message.signature !== undefined &&\n (obj.signature = (0, helpers_1.base64FromBytes)(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseVote();\n message.type = object.type ?? 0;\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n message.round = object.round ?? 0;\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromPartial(object.blockId);\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = timestamp_1.Timestamp.fromPartial(object.timestamp);\n }\n message.validatorAddress = object.validatorAddress ?? new Uint8Array();\n message.validatorIndex = object.validatorIndex ?? 0;\n message.signature = object.signature ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseCommit() {\n return {\n height: BigInt(0),\n round: 0,\n blockId: exports.BlockID.fromPartial({}),\n signatures: [],\n };\n}\nexports.Commit = {\n typeUrl: \"/tendermint.types.Commit\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.height !== BigInt(0)) {\n writer.uint32(8).int64(message.height);\n }\n if (message.round !== 0) {\n writer.uint32(16).int32(message.round);\n }\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.signatures) {\n exports.CommitSig.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCommit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n case 2:\n message.round = reader.int32();\n break;\n case 3:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 4:\n message.signatures.push(exports.CommitSig.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCommit();\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.round))\n obj.round = Number(object.round);\n if ((0, helpers_1.isSet)(object.blockId))\n obj.blockId = exports.BlockID.fromJSON(object.blockId);\n if (Array.isArray(object?.signatures))\n obj.signatures = object.signatures.map((e) => exports.CommitSig.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.round !== undefined && (obj.round = Math.round(message.round));\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (e ? exports.CommitSig.toJSON(e) : undefined));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCommit();\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n message.round = object.round ?? 0;\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromPartial(object.blockId);\n }\n message.signatures = object.signatures?.map((e) => exports.CommitSig.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseCommitSig() {\n return {\n blockIdFlag: 0,\n validatorAddress: new Uint8Array(),\n timestamp: timestamp_1.Timestamp.fromPartial({}),\n signature: new Uint8Array(),\n };\n}\nexports.CommitSig = {\n typeUrl: \"/tendermint.types.CommitSig\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.blockIdFlag !== 0) {\n writer.uint32(8).int32(message.blockIdFlag);\n }\n if (message.validatorAddress.length !== 0) {\n writer.uint32(18).bytes(message.validatorAddress);\n }\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(message.timestamp, writer.uint32(26).fork()).ldelim();\n }\n if (message.signature.length !== 0) {\n writer.uint32(34).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCommitSig();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.blockIdFlag = reader.int32();\n break;\n case 2:\n message.validatorAddress = reader.bytes();\n break;\n case 3:\n message.timestamp = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 4:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCommitSig();\n if ((0, helpers_1.isSet)(object.blockIdFlag))\n obj.blockIdFlag = blockIDFlagFromJSON(object.blockIdFlag);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = (0, helpers_1.bytesFromBase64)(object.validatorAddress);\n if ((0, helpers_1.isSet)(object.timestamp))\n obj.timestamp = (0, helpers_1.fromJsonTimestamp)(object.timestamp);\n if ((0, helpers_1.isSet)(object.signature))\n obj.signature = (0, helpers_1.bytesFromBase64)(object.signature);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.blockIdFlag !== undefined && (obj.blockIdFlag = blockIDFlagToJSON(message.blockIdFlag));\n message.validatorAddress !== undefined &&\n (obj.validatorAddress = (0, helpers_1.base64FromBytes)(message.validatorAddress !== undefined ? message.validatorAddress : new Uint8Array()));\n message.timestamp !== undefined && (obj.timestamp = (0, helpers_1.fromTimestamp)(message.timestamp).toISOString());\n message.signature !== undefined &&\n (obj.signature = (0, helpers_1.base64FromBytes)(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCommitSig();\n message.blockIdFlag = object.blockIdFlag ?? 0;\n message.validatorAddress = object.validatorAddress ?? new Uint8Array();\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = timestamp_1.Timestamp.fromPartial(object.timestamp);\n }\n message.signature = object.signature ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseProposal() {\n return {\n type: 0,\n height: BigInt(0),\n round: 0,\n polRound: 0,\n blockId: exports.BlockID.fromPartial({}),\n timestamp: timestamp_1.Timestamp.fromPartial({}),\n signature: new Uint8Array(),\n };\n}\nexports.Proposal = {\n typeUrl: \"/tendermint.types.Proposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.type !== 0) {\n writer.uint32(8).int32(message.type);\n }\n if (message.height !== BigInt(0)) {\n writer.uint32(16).int64(message.height);\n }\n if (message.round !== 0) {\n writer.uint32(24).int32(message.round);\n }\n if (message.polRound !== 0) {\n writer.uint32(32).int32(message.polRound);\n }\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(42).fork()).ldelim();\n }\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(message.timestamp, writer.uint32(50).fork()).ldelim();\n }\n if (message.signature.length !== 0) {\n writer.uint32(58).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.int32();\n break;\n case 2:\n message.height = reader.int64();\n break;\n case 3:\n message.round = reader.int32();\n break;\n case 4:\n message.polRound = reader.int32();\n break;\n case 5:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 6:\n message.timestamp = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 7:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseProposal();\n if ((0, helpers_1.isSet)(object.type))\n obj.type = signedMsgTypeFromJSON(object.type);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.round))\n obj.round = Number(object.round);\n if ((0, helpers_1.isSet)(object.polRound))\n obj.polRound = Number(object.polRound);\n if ((0, helpers_1.isSet)(object.blockId))\n obj.blockId = exports.BlockID.fromJSON(object.blockId);\n if ((0, helpers_1.isSet)(object.timestamp))\n obj.timestamp = (0, helpers_1.fromJsonTimestamp)(object.timestamp);\n if ((0, helpers_1.isSet)(object.signature))\n obj.signature = (0, helpers_1.bytesFromBase64)(object.signature);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = signedMsgTypeToJSON(message.type));\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.round !== undefined && (obj.round = Math.round(message.round));\n message.polRound !== undefined && (obj.polRound = Math.round(message.polRound));\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n message.timestamp !== undefined && (obj.timestamp = (0, helpers_1.fromTimestamp)(message.timestamp).toISOString());\n message.signature !== undefined &&\n (obj.signature = (0, helpers_1.base64FromBytes)(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseProposal();\n message.type = object.type ?? 0;\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n message.round = object.round ?? 0;\n message.polRound = object.polRound ?? 0;\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromPartial(object.blockId);\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = timestamp_1.Timestamp.fromPartial(object.timestamp);\n }\n message.signature = object.signature ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseSignedHeader() {\n return {\n header: undefined,\n commit: undefined,\n };\n}\nexports.SignedHeader = {\n typeUrl: \"/tendermint.types.SignedHeader\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.header !== undefined) {\n exports.Header.encode(message.header, writer.uint32(10).fork()).ldelim();\n }\n if (message.commit !== undefined) {\n exports.Commit.encode(message.commit, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignedHeader();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.header = exports.Header.decode(reader, reader.uint32());\n break;\n case 2:\n message.commit = exports.Commit.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignedHeader();\n if ((0, helpers_1.isSet)(object.header))\n obj.header = exports.Header.fromJSON(object.header);\n if ((0, helpers_1.isSet)(object.commit))\n obj.commit = exports.Commit.fromJSON(object.commit);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.header !== undefined && (obj.header = message.header ? exports.Header.toJSON(message.header) : undefined);\n message.commit !== undefined && (obj.commit = message.commit ? exports.Commit.toJSON(message.commit) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignedHeader();\n if (object.header !== undefined && object.header !== null) {\n message.header = exports.Header.fromPartial(object.header);\n }\n if (object.commit !== undefined && object.commit !== null) {\n message.commit = exports.Commit.fromPartial(object.commit);\n }\n return message;\n },\n};\nfunction createBaseLightBlock() {\n return {\n signedHeader: undefined,\n validatorSet: undefined,\n };\n}\nexports.LightBlock = {\n typeUrl: \"/tendermint.types.LightBlock\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.signedHeader !== undefined) {\n exports.SignedHeader.encode(message.signedHeader, writer.uint32(10).fork()).ldelim();\n }\n if (message.validatorSet !== undefined) {\n validator_1.ValidatorSet.encode(message.validatorSet, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseLightBlock();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signedHeader = exports.SignedHeader.decode(reader, reader.uint32());\n break;\n case 2:\n message.validatorSet = validator_1.ValidatorSet.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseLightBlock();\n if ((0, helpers_1.isSet)(object.signedHeader))\n obj.signedHeader = exports.SignedHeader.fromJSON(object.signedHeader);\n if ((0, helpers_1.isSet)(object.validatorSet))\n obj.validatorSet = validator_1.ValidatorSet.fromJSON(object.validatorSet);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.signedHeader !== undefined &&\n (obj.signedHeader = message.signedHeader ? exports.SignedHeader.toJSON(message.signedHeader) : undefined);\n message.validatorSet !== undefined &&\n (obj.validatorSet = message.validatorSet ? validator_1.ValidatorSet.toJSON(message.validatorSet) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseLightBlock();\n if (object.signedHeader !== undefined && object.signedHeader !== null) {\n message.signedHeader = exports.SignedHeader.fromPartial(object.signedHeader);\n }\n if (object.validatorSet !== undefined && object.validatorSet !== null) {\n message.validatorSet = validator_1.ValidatorSet.fromPartial(object.validatorSet);\n }\n return message;\n },\n};\nfunction createBaseBlockMeta() {\n return {\n blockId: exports.BlockID.fromPartial({}),\n blockSize: BigInt(0),\n header: exports.Header.fromPartial({}),\n numTxs: BigInt(0),\n };\n}\nexports.BlockMeta = {\n typeUrl: \"/tendermint.types.BlockMeta\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(10).fork()).ldelim();\n }\n if (message.blockSize !== BigInt(0)) {\n writer.uint32(16).int64(message.blockSize);\n }\n if (message.header !== undefined) {\n exports.Header.encode(message.header, writer.uint32(26).fork()).ldelim();\n }\n if (message.numTxs !== BigInt(0)) {\n writer.uint32(32).int64(message.numTxs);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBlockMeta();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 2:\n message.blockSize = reader.int64();\n break;\n case 3:\n message.header = exports.Header.decode(reader, reader.uint32());\n break;\n case 4:\n message.numTxs = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBlockMeta();\n if ((0, helpers_1.isSet)(object.blockId))\n obj.blockId = exports.BlockID.fromJSON(object.blockId);\n if ((0, helpers_1.isSet)(object.blockSize))\n obj.blockSize = BigInt(object.blockSize.toString());\n if ((0, helpers_1.isSet)(object.header))\n obj.header = exports.Header.fromJSON(object.header);\n if ((0, helpers_1.isSet)(object.numTxs))\n obj.numTxs = BigInt(object.numTxs.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n message.blockSize !== undefined && (obj.blockSize = (message.blockSize || BigInt(0)).toString());\n message.header !== undefined && (obj.header = message.header ? exports.Header.toJSON(message.header) : undefined);\n message.numTxs !== undefined && (obj.numTxs = (message.numTxs || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBlockMeta();\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromPartial(object.blockId);\n }\n if (object.blockSize !== undefined && object.blockSize !== null) {\n message.blockSize = BigInt(object.blockSize.toString());\n }\n if (object.header !== undefined && object.header !== null) {\n message.header = exports.Header.fromPartial(object.header);\n }\n if (object.numTxs !== undefined && object.numTxs !== null) {\n message.numTxs = BigInt(object.numTxs.toString());\n }\n return message;\n },\n};\nfunction createBaseTxProof() {\n return {\n rootHash: new Uint8Array(),\n data: new Uint8Array(),\n proof: undefined,\n };\n}\nexports.TxProof = {\n typeUrl: \"/tendermint.types.TxProof\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.rootHash.length !== 0) {\n writer.uint32(10).bytes(message.rootHash);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.proof !== undefined) {\n proof_1.Proof.encode(message.proof, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rootHash = reader.bytes();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.proof = proof_1.Proof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxProof();\n if ((0, helpers_1.isSet)(object.rootHash))\n obj.rootHash = (0, helpers_1.bytesFromBase64)(object.rootHash);\n if ((0, helpers_1.isSet)(object.data))\n obj.data = (0, helpers_1.bytesFromBase64)(object.data);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = proof_1.Proof.fromJSON(object.proof);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.rootHash !== undefined &&\n (obj.rootHash = (0, helpers_1.base64FromBytes)(message.rootHash !== undefined ? message.rootHash : new Uint8Array()));\n message.data !== undefined &&\n (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array()));\n message.proof !== undefined && (obj.proof = message.proof ? proof_1.Proof.toJSON(message.proof) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxProof();\n message.rootHash = object.rootHash ?? new Uint8Array();\n message.data = object.data ?? new Uint8Array();\n if (object.proof !== undefined && object.proof !== null) {\n message.proof = proof_1.Proof.fromPartial(object.proof);\n }\n return message;\n },\n};\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SimpleValidator = exports.Validator = exports.ValidatorSet = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst keys_1 = require(\"../crypto/keys\");\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"tendermint.types\";\nfunction createBaseValidatorSet() {\n return {\n validators: [],\n proposer: undefined,\n totalVotingPower: BigInt(0),\n };\n}\nexports.ValidatorSet = {\n typeUrl: \"/tendermint.types.ValidatorSet\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.validators) {\n exports.Validator.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.proposer !== undefined) {\n exports.Validator.encode(message.proposer, writer.uint32(18).fork()).ldelim();\n }\n if (message.totalVotingPower !== BigInt(0)) {\n writer.uint32(24).int64(message.totalVotingPower);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorSet();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validators.push(exports.Validator.decode(reader, reader.uint32()));\n break;\n case 2:\n message.proposer = exports.Validator.decode(reader, reader.uint32());\n break;\n case 3:\n message.totalVotingPower = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidatorSet();\n if (Array.isArray(object?.validators))\n obj.validators = object.validators.map((e) => exports.Validator.fromJSON(e));\n if ((0, helpers_1.isSet)(object.proposer))\n obj.proposer = exports.Validator.fromJSON(object.proposer);\n if ((0, helpers_1.isSet)(object.totalVotingPower))\n obj.totalVotingPower = BigInt(object.totalVotingPower.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? exports.Validator.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.proposer !== undefined &&\n (obj.proposer = message.proposer ? exports.Validator.toJSON(message.proposer) : undefined);\n message.totalVotingPower !== undefined &&\n (obj.totalVotingPower = (message.totalVotingPower || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidatorSet();\n message.validators = object.validators?.map((e) => exports.Validator.fromPartial(e)) || [];\n if (object.proposer !== undefined && object.proposer !== null) {\n message.proposer = exports.Validator.fromPartial(object.proposer);\n }\n if (object.totalVotingPower !== undefined && object.totalVotingPower !== null) {\n message.totalVotingPower = BigInt(object.totalVotingPower.toString());\n }\n return message;\n },\n};\nfunction createBaseValidator() {\n return {\n address: new Uint8Array(),\n pubKey: keys_1.PublicKey.fromPartial({}),\n votingPower: BigInt(0),\n proposerPriority: BigInt(0),\n };\n}\nexports.Validator = {\n typeUrl: \"/tendermint.types.Validator\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address.length !== 0) {\n writer.uint32(10).bytes(message.address);\n }\n if (message.pubKey !== undefined) {\n keys_1.PublicKey.encode(message.pubKey, writer.uint32(18).fork()).ldelim();\n }\n if (message.votingPower !== BigInt(0)) {\n writer.uint32(24).int64(message.votingPower);\n }\n if (message.proposerPriority !== BigInt(0)) {\n writer.uint32(32).int64(message.proposerPriority);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidator();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.bytes();\n break;\n case 2:\n message.pubKey = keys_1.PublicKey.decode(reader, reader.uint32());\n break;\n case 3:\n message.votingPower = reader.int64();\n break;\n case 4:\n message.proposerPriority = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidator();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = (0, helpers_1.bytesFromBase64)(object.address);\n if ((0, helpers_1.isSet)(object.pubKey))\n obj.pubKey = keys_1.PublicKey.fromJSON(object.pubKey);\n if ((0, helpers_1.isSet)(object.votingPower))\n obj.votingPower = BigInt(object.votingPower.toString());\n if ((0, helpers_1.isSet)(object.proposerPriority))\n obj.proposerPriority = BigInt(object.proposerPriority.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined &&\n (obj.address = (0, helpers_1.base64FromBytes)(message.address !== undefined ? message.address : new Uint8Array()));\n message.pubKey !== undefined &&\n (obj.pubKey = message.pubKey ? keys_1.PublicKey.toJSON(message.pubKey) : undefined);\n message.votingPower !== undefined && (obj.votingPower = (message.votingPower || BigInt(0)).toString());\n message.proposerPriority !== undefined &&\n (obj.proposerPriority = (message.proposerPriority || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidator();\n message.address = object.address ?? new Uint8Array();\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = keys_1.PublicKey.fromPartial(object.pubKey);\n }\n if (object.votingPower !== undefined && object.votingPower !== null) {\n message.votingPower = BigInt(object.votingPower.toString());\n }\n if (object.proposerPriority !== undefined && object.proposerPriority !== null) {\n message.proposerPriority = BigInt(object.proposerPriority.toString());\n }\n return message;\n },\n};\nfunction createBaseSimpleValidator() {\n return {\n pubKey: undefined,\n votingPower: BigInt(0),\n };\n}\nexports.SimpleValidator = {\n typeUrl: \"/tendermint.types.SimpleValidator\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.pubKey !== undefined) {\n keys_1.PublicKey.encode(message.pubKey, writer.uint32(10).fork()).ldelim();\n }\n if (message.votingPower !== BigInt(0)) {\n writer.uint32(16).int64(message.votingPower);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSimpleValidator();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pubKey = keys_1.PublicKey.decode(reader, reader.uint32());\n break;\n case 2:\n message.votingPower = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSimpleValidator();\n if ((0, helpers_1.isSet)(object.pubKey))\n obj.pubKey = keys_1.PublicKey.fromJSON(object.pubKey);\n if ((0, helpers_1.isSet)(object.votingPower))\n obj.votingPower = BigInt(object.votingPower.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.pubKey !== undefined &&\n (obj.pubKey = message.pubKey ? keys_1.PublicKey.toJSON(message.pubKey) : undefined);\n message.votingPower !== undefined && (obj.votingPower = (message.votingPower || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSimpleValidator();\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = keys_1.PublicKey.fromPartial(object.pubKey);\n }\n if (object.votingPower !== undefined && object.votingPower !== null) {\n message.votingPower = BigInt(object.votingPower.toString());\n }\n return message;\n },\n};\n//# sourceMappingURL=validator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Consensus = exports.App = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"tendermint.version\";\nfunction createBaseApp() {\n return {\n protocol: BigInt(0),\n software: \"\",\n };\n}\nexports.App = {\n typeUrl: \"/tendermint.version.App\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.protocol !== BigInt(0)) {\n writer.uint32(8).uint64(message.protocol);\n }\n if (message.software !== \"\") {\n writer.uint32(18).string(message.software);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseApp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.protocol = reader.uint64();\n break;\n case 2:\n message.software = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseApp();\n if ((0, helpers_1.isSet)(object.protocol))\n obj.protocol = BigInt(object.protocol.toString());\n if ((0, helpers_1.isSet)(object.software))\n obj.software = String(object.software);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.protocol !== undefined && (obj.protocol = (message.protocol || BigInt(0)).toString());\n message.software !== undefined && (obj.software = message.software);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseApp();\n if (object.protocol !== undefined && object.protocol !== null) {\n message.protocol = BigInt(object.protocol.toString());\n }\n message.software = object.software ?? \"\";\n return message;\n },\n};\nfunction createBaseConsensus() {\n return {\n block: BigInt(0),\n app: BigInt(0),\n };\n}\nexports.Consensus = {\n typeUrl: \"/tendermint.version.Consensus\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.block !== BigInt(0)) {\n writer.uint32(8).uint64(message.block);\n }\n if (message.app !== BigInt(0)) {\n writer.uint32(16).uint64(message.app);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseConsensus();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.block = reader.uint64();\n break;\n case 2:\n message.app = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseConsensus();\n if ((0, helpers_1.isSet)(object.block))\n obj.block = BigInt(object.block.toString());\n if ((0, helpers_1.isSet)(object.app))\n obj.app = BigInt(object.app.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.block !== undefined && (obj.block = (message.block || BigInt(0)).toString());\n message.app !== undefined && (obj.app = (message.app || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseConsensus();\n if (object.block !== undefined && object.block !== null) {\n message.block = BigInt(object.block.toString());\n }\n if (object.app !== undefined && object.app !== null) {\n message.app = BigInt(object.app.toString());\n }\n return message;\n },\n};\n//# sourceMappingURL=types.js.map","/* eslint-disable */\n/**\n * This file and any referenced files were automatically generated by @cosmology/telescope@1.0.7\n * DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain\n * and run the transpile command or yarn proto command to regenerate this bundle.\n */\n// Copyright (c) 2016, Daniel Wirtz All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// * Neither the name of its author, nor the names of its contributors\n// may be used to endorse or promote products derived from this software\n// without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.utf8Write = exports.utf8Read = exports.utf8Length = void 0;\n/**\n * Calculates the UTF8 byte length of a string.\n * @param {string} string String\n * @returns {number} Byte length\n */\nfunction utf8Length(str) {\n let len = 0, c = 0;\n for (let i = 0; i < str.length; ++i) {\n c = str.charCodeAt(i);\n if (c < 128)\n len += 1;\n else if (c < 2048)\n len += 2;\n else if ((c & 0xfc00) === 0xd800 && (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n ++i;\n len += 4;\n }\n else\n len += 3;\n }\n return len;\n}\nexports.utf8Length = utf8Length;\n/**\n * Reads UTF8 bytes as a string.\n * @param {Uint8Array} buffer Source buffer\n * @param {number} start Source start\n * @param {number} end Source end\n * @returns {string} String read\n */\nfunction utf8Read(buffer, start, end) {\n const len = end - start;\n if (len < 1)\n return \"\";\n const chunk = [];\n let parts = [], i = 0, // char offset\n t; // temporary\n while (start < end) {\n t = buffer[start++];\n if (t < 128)\n chunk[i++] = t;\n else if (t > 191 && t < 224)\n chunk[i++] = ((t & 31) << 6) | (buffer[start++] & 63);\n else if (t > 239 && t < 365) {\n t =\n (((t & 7) << 18) |\n ((buffer[start++] & 63) << 12) |\n ((buffer[start++] & 63) << 6) |\n (buffer[start++] & 63)) -\n 0x10000;\n chunk[i++] = 0xd800 + (t >> 10);\n chunk[i++] = 0xdc00 + (t & 1023);\n }\n else\n chunk[i++] = ((t & 15) << 12) | ((buffer[start++] & 63) << 6) | (buffer[start++] & 63);\n if (i > 8191) {\n (parts || (parts = [])).push(String.fromCharCode(...chunk));\n i = 0;\n }\n }\n if (parts) {\n if (i)\n parts.push(String.fromCharCode(...chunk.slice(0, i)));\n return parts.join(\"\");\n }\n return String.fromCharCode(...chunk.slice(0, i));\n}\nexports.utf8Read = utf8Read;\n/**\n * Writes a string as UTF8 bytes.\n * @param {string} string Source string\n * @param {Uint8Array} buffer Destination buffer\n * @param {number} offset Destination offset\n * @returns {number} Bytes written\n */\nfunction utf8Write(str, buffer, offset) {\n const start = offset;\n let c1, // character 1\n c2; // character 2\n for (let i = 0; i < str.length; ++i) {\n c1 = str.charCodeAt(i);\n if (c1 < 128) {\n buffer[offset++] = c1;\n }\n else if (c1 < 2048) {\n buffer[offset++] = (c1 >> 6) | 192;\n buffer[offset++] = (c1 & 63) | 128;\n }\n else if ((c1 & 0xfc00) === 0xd800 && ((c2 = str.charCodeAt(i + 1)) & 0xfc00) === 0xdc00) {\n c1 = 0x10000 + ((c1 & 0x03ff) << 10) + (c2 & 0x03ff);\n ++i;\n buffer[offset++] = (c1 >> 18) | 240;\n buffer[offset++] = ((c1 >> 12) & 63) | 128;\n buffer[offset++] = ((c1 >> 6) & 63) | 128;\n buffer[offset++] = (c1 & 63) | 128;\n }\n else {\n buffer[offset++] = (c1 >> 12) | 224;\n buffer[offset++] = ((c1 >> 6) & 63) | 128;\n buffer[offset++] = (c1 & 63) | 128;\n }\n }\n return offset - start;\n}\nexports.utf8Write = utf8Write;\n//# sourceMappingURL=utf8.js.map","\"use strict\";\n/* eslint-disable */\n/**\n * This file and any referenced files were automatically generated by @cosmology/telescope@1.0.7\n * DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain\n * and run the transpile command or yarn proto command to regenerate this bundle.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.writeByte = exports.writeFixed32 = exports.int64Length = exports.writeVarint64 = exports.writeVarint32 = exports.readInt32 = exports.readUInt32 = exports.zzDecode = exports.zzEncode = exports.varint32read = exports.varint32write = exports.uInt64ToString = exports.int64ToString = exports.int64FromString = exports.varint64write = exports.varint64read = void 0;\n// Copyright 2008 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n// Code generated by the Protocol Buffer compiler is owned by the owner\n// of the input file used when generating it. This code is not\n// standalone and requires a support library to be linked with it. This\n// support library is itself covered by the above license.\n/* eslint-disable prefer-const,@typescript-eslint/restrict-plus-operands */\n/**\n * Read a 64 bit varint as two JS numbers.\n *\n * Returns tuple:\n * [0]: low bits\n * [1]: high bits\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L175\n */\nfunction varint64read() {\n let lowBits = 0;\n let highBits = 0;\n for (let shift = 0; shift < 28; shift += 7) {\n let b = this.buf[this.pos++];\n lowBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n let middleByte = this.buf[this.pos++];\n // last four bits of the first 32 bit number\n lowBits |= (middleByte & 0x0f) << 28;\n // 3 upper bits are part of the next 32 bit number\n highBits = (middleByte & 0x70) >> 4;\n if ((middleByte & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n for (let shift = 3; shift <= 31; shift += 7) {\n let b = this.buf[this.pos++];\n highBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n throw new Error(\"invalid varint\");\n}\nexports.varint64read = varint64read;\n/**\n * Write a 64 bit varint, given as two JS numbers, to the given bytes array.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/writer.js#L344\n */\nfunction varint64write(lo, hi, bytes) {\n for (let i = 0; i < 28; i = i + 7) {\n const shift = lo >>> i;\n const hasNext = !(shift >>> 7 == 0 && hi == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n const splitBits = ((lo >>> 28) & 0x0f) | ((hi & 0x07) << 4);\n const hasMoreBits = !(hi >> 3 == 0);\n bytes.push((hasMoreBits ? splitBits | 0x80 : splitBits) & 0xff);\n if (!hasMoreBits) {\n return;\n }\n for (let i = 3; i < 31; i = i + 7) {\n const shift = hi >>> i;\n const hasNext = !(shift >>> 7 == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n bytes.push((hi >>> 31) & 0x01);\n}\nexports.varint64write = varint64write;\n// constants for binary math\nconst TWO_PWR_32_DBL = 0x100000000;\n/**\n * Parse decimal string of 64 bit integer value as two JS numbers.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nfunction int64FromString(dec) {\n // Check for minus sign.\n const minus = dec[0] === \"-\";\n if (minus) {\n dec = dec.slice(1);\n }\n // Work 6 decimal digits at a time, acting like we're converting base 1e6\n // digits to binary. This is safe to do with floating point math because\n // Number.isSafeInteger(ALL_32_BITS * 1e6) == true.\n const base = 1e6;\n let lowBits = 0;\n let highBits = 0;\n function add1e6digit(begin, end) {\n // Note: Number('') is 0.\n const digit1e6 = Number(dec.slice(begin, end));\n highBits *= base;\n lowBits = lowBits * base + digit1e6;\n // Carry bits from lowBits to\n if (lowBits >= TWO_PWR_32_DBL) {\n highBits = highBits + ((lowBits / TWO_PWR_32_DBL) | 0);\n lowBits = lowBits % TWO_PWR_32_DBL;\n }\n }\n add1e6digit(-24, -18);\n add1e6digit(-18, -12);\n add1e6digit(-12, -6);\n add1e6digit(-6);\n return minus ? negate(lowBits, highBits) : newBits(lowBits, highBits);\n}\nexports.int64FromString = int64FromString;\n/**\n * Losslessly converts a 64-bit signed integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nfunction int64ToString(lo, hi) {\n let bits = newBits(lo, hi);\n // If we're treating the input as a signed value and the high bit is set, do\n // a manual two's complement conversion before the decimal conversion.\n const negative = bits.hi & 0x80000000;\n if (negative) {\n bits = negate(bits.lo, bits.hi);\n }\n const result = uInt64ToString(bits.lo, bits.hi);\n return negative ? \"-\" + result : result;\n}\nexports.int64ToString = int64ToString;\n/**\n * Losslessly converts a 64-bit unsigned integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nfunction uInt64ToString(lo, hi) {\n ({ lo, hi } = toUnsigned(lo, hi));\n // Skip the expensive conversion if the number is small enough to use the\n // built-in conversions.\n // Number.MAX_SAFE_INTEGER = 0x001FFFFF FFFFFFFF, thus any number with\n // highBits <= 0x1FFFFF can be safely expressed with a double and retain\n // integer precision.\n // Proven by: Number.isSafeInteger(0x1FFFFF * 2**32 + 0xFFFFFFFF) == true.\n if (hi <= 0x1fffff) {\n return String(TWO_PWR_32_DBL * hi + lo);\n }\n // What this code is doing is essentially converting the input number from\n // base-2 to base-1e7, which allows us to represent the 64-bit range with\n // only 3 (very large) digits. Those digits are then trivial to convert to\n // a base-10 string.\n // The magic numbers used here are -\n // 2^24 = 16777216 = (1,6777216) in base-1e7.\n // 2^48 = 281474976710656 = (2,8147497,6710656) in base-1e7.\n // Split 32:32 representation into 16:24:24 representation so our\n // intermediate digits don't overflow.\n const low = lo & 0xffffff;\n const mid = ((lo >>> 24) | (hi << 8)) & 0xffffff;\n const high = (hi >> 16) & 0xffff;\n // Assemble our three base-1e7 digits, ignoring carries. The maximum\n // value in a digit at this step is representable as a 48-bit integer, which\n // can be stored in a 64-bit floating point number.\n let digitA = low + mid * 6777216 + high * 6710656;\n let digitB = mid + high * 8147497;\n let digitC = high * 2;\n // Apply carries from A to B and from B to C.\n const base = 10000000;\n if (digitA >= base) {\n digitB += Math.floor(digitA / base);\n digitA %= base;\n }\n if (digitB >= base) {\n digitC += Math.floor(digitB / base);\n digitB %= base;\n }\n // If digitC is 0, then we should have returned in the trivial code path\n // at the top for non-safe integers. Given this, we can assume both digitB\n // and digitA need leading zeros.\n return digitC.toString() + decimalFrom1e7WithLeadingZeros(digitB) + decimalFrom1e7WithLeadingZeros(digitA);\n}\nexports.uInt64ToString = uInt64ToString;\nfunction toUnsigned(lo, hi) {\n return { lo: lo >>> 0, hi: hi >>> 0 };\n}\nfunction newBits(lo, hi) {\n return { lo: lo | 0, hi: hi | 0 };\n}\n/**\n * Returns two's compliment negation of input.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Signed_32-bit_integers\n */\nfunction negate(lowBits, highBits) {\n highBits = ~highBits;\n if (lowBits) {\n lowBits = ~lowBits + 1;\n }\n else {\n // If lowBits is 0, then bitwise-not is 0xFFFFFFFF,\n // adding 1 to that, results in 0x100000000, which leaves\n // the low bits 0x0 and simply adds one to the high bits.\n highBits += 1;\n }\n return newBits(lowBits, highBits);\n}\n/**\n * Returns decimal representation of digit1e7 with leading zeros.\n */\nconst decimalFrom1e7WithLeadingZeros = (digit1e7) => {\n const partial = String(digit1e7);\n return \"0000000\".slice(partial.length) + partial;\n};\n/**\n * Write a 32 bit varint, signed or unsigned. Same as `varint64write(0, value, bytes)`\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/1b18833f4f2a2f681f4e4a25cdf3b0a43115ec26/js/binary/encoder.js#L144\n */\nfunction varint32write(value, bytes) {\n if (value >= 0) {\n // write value as varint 32\n while (value > 0x7f) {\n bytes.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n bytes.push(value);\n }\n else {\n for (let i = 0; i < 9; i++) {\n bytes.push((value & 127) | 128);\n value = value >> 7;\n }\n bytes.push(1);\n }\n}\nexports.varint32write = varint32write;\n/**\n * Read an unsigned 32 bit varint.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L220\n */\nfunction varint32read() {\n let b = this.buf[this.pos++];\n let result = b & 0x7f;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 7;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 14;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 21;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n // Extract only last 4 bits\n b = this.buf[this.pos++];\n result |= (b & 0x0f) << 28;\n for (let readBytes = 5; (b & 0x80) !== 0 && readBytes < 10; readBytes++)\n b = this.buf[this.pos++];\n if ((b & 0x80) != 0)\n throw new Error(\"invalid varint\");\n this.assertBounds();\n // Result can have 32 bits, convert it to unsigned\n return result >>> 0;\n}\nexports.varint32read = varint32read;\n/**\n * encode zig zag\n */\nfunction zzEncode(lo, hi) {\n let mask = hi >> 31;\n hi = (((hi << 1) | (lo >>> 31)) ^ mask) >>> 0;\n lo = ((lo << 1) ^ mask) >>> 0;\n return [lo, hi];\n}\nexports.zzEncode = zzEncode;\n/**\n * decode zig zag\n */\nfunction zzDecode(lo, hi) {\n let mask = -(lo & 1);\n lo = (((lo >>> 1) | (hi << 31)) ^ mask) >>> 0;\n hi = ((hi >>> 1) ^ mask) >>> 0;\n return [lo, hi];\n}\nexports.zzDecode = zzDecode;\n/**\n * unsigned int32 without moving pos.\n */\nfunction readUInt32(buf, pos) {\n return (buf[pos] | (buf[pos + 1] << 8) | (buf[pos + 2] << 16)) + buf[pos + 3] * 0x1000000;\n}\nexports.readUInt32 = readUInt32;\n/**\n * signed int32 without moving pos.\n */\nfunction readInt32(buf, pos) {\n return (buf[pos] | (buf[pos + 1] << 8) | (buf[pos + 2] << 16)) + (buf[pos + 3] << 24);\n}\nexports.readInt32 = readInt32;\n/**\n * writing varint32 to pos\n */\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = (val & 127) | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\nexports.writeVarint32 = writeVarint32;\n/**\n * writing varint64 to pos\n */\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = (val.lo & 127) | 128;\n val.lo = ((val.lo >>> 7) | (val.hi << 25)) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = (val.lo & 127) | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\nexports.writeVarint64 = writeVarint64;\nfunction int64Length(lo, hi) {\n let part0 = lo, part1 = ((lo >>> 28) | (hi << 4)) >>> 0, part2 = hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128\n ? 1\n : 2\n : part0 < 2097152\n ? 3\n : 4\n : part1 < 16384\n ? part1 < 128\n ? 5\n : 6\n : part1 < 2097152\n ? 7\n : 8\n : part2 < 128\n ? 9\n : 10;\n}\nexports.int64Length = int64Length;\nfunction writeFixed32(val, buf, pos) {\n buf[pos] = val & 255;\n buf[pos + 1] = (val >>> 8) & 255;\n buf[pos + 2] = (val >>> 16) & 255;\n buf[pos + 3] = val >>> 24;\n}\nexports.writeFixed32 = writeFixed32;\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\nexports.writeByte = writeByte;\n//# sourceMappingURL=varint.js.map","var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","// Save global object in a variable\nvar __global__ =\n(typeof globalThis !== 'undefined' && globalThis) ||\n(typeof self !== 'undefined' && self) ||\n(typeof global !== 'undefined' && global);\n// Create an object that extends from __global__ without the fetch function\nvar __globalThis__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = __global__.DOMException\n}\nF.prototype = __global__; // Needed for feature detection on whatwg-fetch's code\nreturn new F();\n})();\n// Wraps whatwg-fetch with a function scope to hijack the global object\n// \"globalThis\" that's going to be patched\n(function(globalThis) {\n\nvar irrelevant = (function (exports) {\n\n /* eslint-disable no-prototype-builtins */\n var g =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n // eslint-disable-next-line no-undef\n (typeof global !== 'undefined' && global) ||\n {};\n\n var support = {\n searchParams: 'URLSearchParams' in g,\n iterable: 'Symbol' in g && 'iterator' in Symbol,\n blob:\n 'FileReader' in g &&\n 'Blob' in g &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in g,\n arrayBuffer: 'ArrayBuffer' in g\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n if (header.length != 2) {\n throw new TypeError('Headers constructor: expected name/value pair to be length 2, found' + header.length)\n }\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body._noBody) return\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n var match = /charset=([A-Za-z0-9_-]+)/.exec(blob.type);\n var encoding = match ? match[1] : 'utf-8';\n reader.readAsText(blob, encoding);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n // eslint-disable-next-line no-self-assign\n this.bodyUsed = this.bodyUsed;\n this._bodyInit = body;\n if (!body) {\n this._noBody = true;\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this);\n if (isConsumed) {\n return isConsumed\n } else if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else if (support.blob) {\n return this.blob().then(readBlobAsArrayBuffer)\n } else {\n throw new Error('could not read as ArrayBuffer')\n }\n };\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['CONNECT', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'TRACE'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal || (function () {\n if ('AbortController' in g) {\n var ctrl = new AbortController();\n return ctrl.signal;\n }\n }());\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/;\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime());\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/;\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime();\n }\n }\n }\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n try {\n headers.append(key, value);\n } catch (error) {\n console.warn('Response ' + error.message);\n }\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n if (this.status < 200 || this.status > 599) {\n throw new RangeError(\"Failed to construct 'Response': The status provided (0) is outside the range [200, 599].\")\n }\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText;\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 200, statusText: ''});\n response.ok = false;\n response.status = 0;\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = g.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n // This check if specifically for when a user fetches a file locally from the file system\n // Only if the status is out of a normal range\n if (request.url.indexOf('file://') === 0 && (xhr.status < 200 || xhr.status > 599)) {\n options.status = 200;\n } else {\n options.status = xhr.status;\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n setTimeout(function() {\n resolve(new Response(body, options));\n }, 0);\n };\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request timed out'));\n }, 0);\n };\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n }, 0);\n };\n\n function fixUrl(url) {\n try {\n return url === '' && g.location.href ? g.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob';\n } else if (\n support.arrayBuffer\n ) {\n xhr.responseType = 'arraybuffer';\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers || (g.Headers && init.headers instanceof g.Headers))) {\n var names = [];\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n names.push(normalizeName(name));\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]));\n });\n request.headers.forEach(function(value, name) {\n if (names.indexOf(name) === -1) {\n xhr.setRequestHeader(name, value);\n }\n });\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!g.fetch) {\n g.fetch = fetch;\n g.Headers = Headers;\n g.Request = Request;\n g.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n return exports;\n\n})({});\n})(__globalThis__);\n// This is a ponyfill, so...\n__globalThis__.fetch.ponyfill = true;\ndelete __globalThis__.fetch.polyfill;\n// Choose between native implementation (__global__) or custom implementation (__globalThis__)\nvar ctx = __global__.fetch ? __global__ : __globalThis__;\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","'use strict';\n\n// eslint-disable-next-line no-multi-assign\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes');\n\n// eslint-disable-next-line no-multi-assign\nexports.createHash = exports.Hash = require('create-hash');\n\n// eslint-disable-next-line no-multi-assign\nexports.createHmac = exports.Hmac = require('create-hmac');\n\nvar algos = require('browserify-sign/algos');\nvar algoKeys = Object.keys(algos);\nvar hashes = [\n\t'sha1',\n\t'sha224',\n\t'sha256',\n\t'sha384',\n\t'sha512',\n\t'md5',\n\t'rmd160'\n].concat(algoKeys);\n\nexports.getHashes = function () {\n\treturn hashes;\n};\n\nvar p = require('pbkdf2');\nexports.pbkdf2 = p.pbkdf2;\nexports.pbkdf2Sync = p.pbkdf2Sync;\n\nvar aes = require('browserify-cipher');\n\nexports.Cipher = aes.Cipher;\nexports.createCipher = aes.createCipher;\nexports.Cipheriv = aes.Cipheriv;\nexports.createCipheriv = aes.createCipheriv;\nexports.Decipher = aes.Decipher;\nexports.createDecipher = aes.createDecipher;\nexports.Decipheriv = aes.Decipheriv;\nexports.createDecipheriv = aes.createDecipheriv;\nexports.getCiphers = aes.getCiphers;\nexports.listCiphers = aes.listCiphers;\n\nvar dh = require('diffie-hellman');\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup;\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup;\nexports.getDiffieHellman = dh.getDiffieHellman;\nexports.createDiffieHellman = dh.createDiffieHellman;\nexports.DiffieHellman = dh.DiffieHellman;\n\nvar sign = require('browserify-sign');\n\nexports.createSign = sign.createSign;\nexports.Sign = sign.Sign;\nexports.createVerify = sign.createVerify;\nexports.Verify = sign.Verify;\n\nexports.createECDH = require('create-ecdh');\n\nvar publicEncrypt = require('public-encrypt');\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt;\nexports.privateEncrypt = publicEncrypt.privateEncrypt;\nexports.publicDecrypt = publicEncrypt.publicDecrypt;\nexports.privateDecrypt = publicEncrypt.privateDecrypt;\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// [\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error('sorry, ' + name + ' is not implemented yet\\nwe accept pull requests\\nhttps://github.com/browserify/crypto-browserify');\n// };\n// });\n\nvar rf = require('randomfill');\n\nexports.randomFill = rf.randomFill;\nexports.randomFillSync = rf.randomFillSync;\n\nexports.createCredentials = function () {\n\tthrow new Error('sorry, createCredentials is not implemented yet\\nwe accept pull requests\\nhttps://github.com/browserify/crypto-browserify');\n};\n\nexports.constants = {\n\tDH_CHECK_P_NOT_SAFE_PRIME: 2,\n\tDH_CHECK_P_NOT_PRIME: 1,\n\tDH_UNABLE_TO_CHECK_GENERATOR: 4,\n\tDH_NOT_SUITABLE_GENERATOR: 8,\n\tNPN_ENABLED: 1,\n\tALPN_ENABLED: 1,\n\tRSA_PKCS1_PADDING: 1,\n\tRSA_SSLV23_PADDING: 2,\n\tRSA_NO_PADDING: 3,\n\tRSA_PKCS1_OAEP_PADDING: 4,\n\tRSA_X931_PADDING: 5,\n\tRSA_PKCS1_PSS_PADDING: 6,\n\tPOINT_CONVERSION_COMPRESSED: 2,\n\tPOINT_CONVERSION_UNCOMPRESSED: 4,\n\tPOINT_CONVERSION_HYBRID: 6\n};\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar defineDataProperty = require('define-data-property');\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar supportsDescriptors = require('has-property-descriptors')();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object) {\n\t\tif (predicate === true) {\n\t\t\tif (object[name] === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (!isFunction(predicate) || !predicate()) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif (supportsDescriptors) {\n\t\tdefineDataProperty(object, name, value, true);\n\t} else {\n\t\tdefineDataProperty(object, name, value);\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n this.padding = options.padding !== false\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n if (this.padding === false) {\n return false;\n }\n\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n if (this.padding === false) {\n return buffer;\n }\n\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly, bitLength) {\n var byteLength;\n if (BN.isBN(msg) || typeof msg === 'number') {\n msg = new BN(msg, 16);\n byteLength = msg.byteLength();\n } else if (typeof msg === 'object') {\n // BN assumes an array-like input and asserts length\n byteLength = msg.length;\n msg = new BN(msg, 16);\n } else {\n // BN converts the value to string\n var str = msg.toString();\n // HEX encoding\n byteLength = (str.length + 1) >>> 1;\n msg = new BN(str, 16);\n }\n // Allow overriding\n if (typeof bitLength !== 'number') {\n bitLength = byteLength * 8;\n }\n var delta = bitLength - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n if (typeof msg !== 'string' && typeof msg !== 'number' && !BN.isBN(msg)) {\n assert(typeof msg === 'object' && msg && typeof msg.length === 'number',\n 'Expected message to be an array-like, a hex string, or a BN instance');\n assert((msg.length >>> 0) === msg.length); // non-negative 32-bit integer\n for (var i = 0; i < msg.length; i++) assert((msg[i] & 255) === msg[i]);\n }\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(msg, false, options.msgBitLength);\n\n // Would fail further checks, but let's make the error message clear\n assert(!msg.isNeg(), 'Can not sign a negative message');\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Recheck nonce to be bijective to msg\n assert((new BN(nonce)).eq(msg), 'Can not sign message');\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc, options) {\n if (!options)\n options = {};\n\n msg = this._truncateToN(msg, false, options.msgBitLength);\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature, options) {\n return this.ec.verify(msg, signature, this, undefined, options);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n if(buf[p.place] === 0x00) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n if (sig.S().gte(sig.eddsa.curve.n) || sig.S().isNeg()) {\n return false;\n }\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n assert(sig.length === eddsa.encodingLength * 2, 'Signature has invalid size');\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n var i;\n for (i = 0; i < naf.length; i += 1) {\n naf[i] = 0;\n }\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/** @type {(arr: A, iterator: (this: This | void, value: A[number], index: number, arr: A) => void, receiver: This | undefined) => void} */\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\n/** @type {(string: S, iterator: (this: This | void, value: S[number], index: number, string: S) => void, receiver: This | undefined) => void} */\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\n/** @type {(obj: O, iterator: (this: This | void, value: O[keyof O], index: keyof O, obj: O) => void, receiver: This | undefined) => void} */\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\n/** @type {(x: unknown) => x is readonly unknown[]} */\nfunction isArray(x) {\n return toStr.call(x) === '[object Array]';\n}\n\n/** @type {import('.')._internal} */\nmodule.exports = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (isArray(list)) {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\nvar round = require('math-intrinsics/round');\nvar sign = require('math-intrinsics/sign');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = require('get-proto');\nvar $ObjectGPO = require('get-proto/Object.getPrototypeOf');\nvar $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Object.getPrototypeOf%': $ObjectGPO,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow,\n\t'%Math.round%': round,\n\t'%Math.sign%': sign,\n\t'%Reflect.getPrototypeOf%': $ReflectGPO\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar $Object = require('es-object-atoms');\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n","'use strict';\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n","'use strict';\n\nvar reflectGetProto = require('./Reflect.getPrototypeOf');\nvar originalGetProto = require('./Object.getPrototypeOf');\n\nvar getDunderProto = require('dunder-proto/get');\n\n/** @type {import('.')} */\nmodule.exports = reflectGetProto\n\t? function getProto(O) {\n\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\treturn reflectGetProto(O);\n\t}\n\t: originalGetProto\n\t\t? function getProto(O) {\n\t\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\t\tthrow new TypeError('getProto: not an object');\n\t\t\t}\n\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\treturn originalGetProto(O);\n\t\t}\n\t\t: getDunderProto\n\t\t\t? function getProto(O) {\n\t\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\t\treturn getDunderProto(O);\n\t\t\t}\n\t\t\t: null;\n","/* eslint no-negated-condition: 0, no-new-func: 0 */\n\n'use strict';\n\nif (typeof self !== 'undefined') {\n\tmodule.exports = self;\n} else if (typeof window !== 'undefined') {\n\tmodule.exports = window;\n} else {\n\tmodule.exports = Function('return this')();\n}\n","'use strict';\n\nvar defineProperties = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = getPolyfill();\n\nvar getGlobal = function () { return polyfill; };\n\ndefineProperties(getGlobal, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = getGlobal;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\tif (typeof global !== 'object' || !global || global.Math !== Math || global.Array !== Array) {\n\t\treturn implementation;\n\t}\n\treturn global;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar gOPD = require('gopd');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimGlobal() {\n\tvar polyfill = getPolyfill();\n\tif (define.supportsDescriptors) {\n\t\tvar descriptor = gOPD(polyfill, 'globalThis');\n\t\tif (\n\t\t\t!descriptor\n\t\t\t|| (\n\t\t\t\tdescriptor.configurable\n\t\t\t\t&& (descriptor.enumerable || !descriptor.writable || globalThis !== polyfill)\n\t\t\t)\n\t\t) {\n\t\t\tObject.defineProperty(polyfill, 'globalThis', {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: polyfill,\n\t\t\t\twritable: true\n\t\t\t});\n\t\t}\n\t} else if (typeof globalThis !== 'object' || globalThis !== polyfill) {\n\t\tpolyfill.globalThis = polyfill;\n\t}\n\treturn polyfill;\n};\n","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n","'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar inherits = require('inherits')\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nvar useUint8Array = typeof Uint8Array !== 'undefined'\nvar useArrayBuffer = typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n ArrayBuffer.isView &&\n (Buffer.prototype instanceof Uint8Array || Buffer.TYPED_ARRAY_SUPPORT)\n\nfunction toBuffer (data, encoding) {\n // No need to do anything for exact instance\n // This is only valid when safe-buffer.Buffer === buffer.Buffer, i.e. when Buffer.from/Buffer.alloc existed\n if (data instanceof Buffer) return data\n\n // Convert strings to Buffer\n if (typeof data === 'string') return Buffer.from(data, encoding)\n\n /*\n * Wrap any TypedArray instances and DataViews\n * Makes sense only on engines with full TypedArray support -- let Buffer detect that\n */\n if (useArrayBuffer && ArrayBuffer.isView(data)) {\n if (data.byteLength === 0) return Buffer.alloc(0) // Bug in Node.js <6.3.1, which treats this as out-of-bounds\n var res = Buffer.from(data.buffer, data.byteOffset, data.byteLength)\n // Recheck result size, as offset/length doesn't work on Node.js <5.10\n // We just go to Uint8Array case if this fails\n if (res.byteLength === data.byteLength) return res\n }\n\n /*\n * Uint8Array in engines where Buffer.from might not work with ArrayBuffer, just copy over\n * Doesn't make sense with other TypedArray instances\n */\n if (useUint8Array && data instanceof Uint8Array) return Buffer.from(data)\n\n /*\n * Old Buffer polyfill on an engine that doesn't have TypedArray support\n * Also, this is from a different Buffer polyfill implementation then we have, as instanceof check failed\n * Convert to our current Buffer implementation\n */\n if (\n Buffer.isBuffer(data) &&\n data.constructor &&\n typeof data.constructor.isBuffer === 'function' &&\n data.constructor.isBuffer(data)\n ) {\n return Buffer.from(data)\n }\n\n throw new TypeError('The \"data\" argument must be of type string or an instance of Buffer, TypedArray, or DataView.')\n}\n\nHashBase.prototype.update = function (data, encoding) {\n if (this._finalized) throw new Error('Digest already called')\n\n data = toBuffer(data, encoding) // asserts correct input type\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bound');\n\nvar $toString = callBound('Object.prototype.toString');\n\n/** @type {import('.')} */\nvar isStandardArguments = function isArguments(value) {\n\tif (\n\t\thasToStringTag\n\t\t&& value\n\t\t&& typeof value === 'object'\n\t\t&& Symbol.toStringTag in value\n\t) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\n/** @type {import('.')} */\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null\n\t\t&& typeof value === 'object'\n\t\t&& 'length' in value\n\t\t&& typeof value.length === 'number'\n\t\t&& value.length >= 0\n\t\t&& $toString(value) !== '[object Array]'\n\t\t&& 'callee' in value\n\t\t&& $toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\n// @ts-expect-error TODO make this not error\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\n/** @type {import('.')} */\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar callBound = require('call-bound');\nvar safeRegexTest = require('safe-regex-test');\nvar isFnRegex = safeRegexTest(/^\\s*(?:function)?\\*/);\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = require('get-proto');\n\nvar toStr = callBound('Object.prototype.toString');\nvar fnToStr = callBound('Function.prototype.toString');\n\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\n/** @type {undefined | false | null | GeneratorFunctionConstructor} */\nvar GeneratorFunction;\n\n/** @type {import('.')} */\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex(fnToStr(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t? /** @type {GeneratorFunctionConstructor} */ (getProto(generatorFunc))\n\t\t\t: false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function isNaN(value) {\n\treturn value !== value;\n};\n","'use strict';\n\nvar callBind = require('call-bind');\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Number);\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\tif (Number.isNaN && Number.isNaN(NaN) && !Number.isNaN('a')) {\n\t\treturn Number.isNaN;\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function shimNumberIsNaN() {\n\tvar polyfill = getPolyfill();\n\tdefine(Number, { isNaN: polyfill }, {\n\t\tisNaN: function testIsNaN() {\n\t\t\treturn Number.isNaN !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar callBound = require('call-bound');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar hasOwn = require('hasown');\nvar gOPD = require('gopd');\n\n/** @type {import('.')} */\nvar fn;\n\nif (hasToStringTag) {\n\t/** @type {(receiver: ThisParameterType, ...args: Parameters) => ReturnType} */\n\tvar $exec = callBound('RegExp.prototype.exec');\n\t/** @type {object} */\n\tvar isRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\t/** @type {{ toString(): never, valueOf(): never, [Symbol.toPrimitive]?(): never }} */\n\tvar badStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n\n\t/** @type {import('.')} */\n\t// @ts-expect-error TS can't figure out that the $exec call always throws\n\t// eslint-disable-next-line consistent-return\n\tfn = function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {NonNullable} */ (gOPD)(/** @type {{ lastIndex?: unknown }} */ (value), 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && hasOwn(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t$exec(value, /** @type {string} */ (/** @type {unknown} */ (badStringifier)));\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t};\n} else {\n\t/** @type {(receiver: ThisParameterType, ...args: Parameters) => ReturnType} */\n\tvar $toString = callBound('Object.prototype.toString');\n\t/** @const @type {'[object RegExp]'} */\n\tvar regexClass = '[object RegExp]';\n\n\t/** @type {import('.')} */\n\tfn = function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n}\n\nmodule.exports = fn;\n","'use strict';\n\nvar whichTypedArray = require('which-typed-array');\n\n/** @type {import('.')} */\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","// https://github.com/maxogden/websocket-stream/blob/48dc3ddf943e5ada668c31ccd94e9186f02fafbd/ws-fallback.js\n\nvar ws = null\n\nif (typeof WebSocket !== 'undefined') {\n ws = WebSocket\n} else if (typeof MozWebSocket !== 'undefined') {\n ws = MozWebSocket\n} else if (typeof global !== 'undefined') {\n ws = global.WebSocket || global.MozWebSocket\n} else if (typeof window !== 'undefined') {\n ws = window.WebSocket || window.MozWebSocket\n} else if (typeof self !== 'undefined') {\n ws = self.WebSocket || self.MozWebSocket\n}\n\nmodule.exports = ws\n","/**\n * [js-sha256]{@link https://github.com/emn178/js-sha256}\n *\n * @version 0.11.1\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2025\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var ERROR = 'input is invalid type';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA256_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node && process.type != 'renderer';\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (outputType, is224) {\n return function (message) {\n return new Sha256(is224, true).update(message)[outputType]();\n };\n };\n\n var createMethod = function (is224) {\n var method = createOutputMethod('hex', is224);\n if (NODE_JS) {\n method = nodeWrap(method, is224);\n }\n method.create = function () {\n return new Sha256(is224);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type, is224);\n }\n return method;\n };\n\n var nodeWrap = function (method, is224) {\n var crypto = require('crypto')\n var Buffer = require('buffer').Buffer;\n var algorithm = is224 ? 'sha224' : 'sha256';\n var bufferFrom;\n if (Buffer.from && !root.JS_SHA256_NO_BUFFER_FROM) {\n bufferFrom = Buffer.from;\n } else {\n bufferFrom = function (message) {\n return new Buffer(message);\n };\n }\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash(algorithm).update(message, 'utf8').digest('hex');\n } else {\n if (message === null || message === undefined) {\n throw new Error(ERROR);\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n }\n if (Array.isArray(message) || ArrayBuffer.isView(message) ||\n message.constructor === Buffer) {\n return crypto.createHash(algorithm).update(bufferFrom(message)).digest('hex');\n } else {\n return method(message);\n }\n };\n return nodeMethod;\n };\n\n var createHmacOutputMethod = function (outputType, is224) {\n return function (key, message) {\n return new HmacSha256(key, is224, true).update(message)[outputType]();\n };\n };\n\n var createHmacMethod = function (is224) {\n var method = createHmacOutputMethod('hex', is224);\n method.create = function (key) {\n return new HmacSha256(key, is224);\n };\n method.update = function (key, message) {\n return method.create(key).update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createHmacOutputMethod(type, is224);\n }\n return method;\n };\n\n function Sha256(is224, sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n\n if (is224) {\n this.h0 = 0xc1059ed8;\n this.h1 = 0x367cd507;\n this.h2 = 0x3070dd17;\n this.h3 = 0xf70e5939;\n this.h4 = 0xffc00b31;\n this.h5 = 0x68581511;\n this.h6 = 0x64f98fa7;\n this.h7 = 0xbefa4fa4;\n } else { // 256\n this.h0 = 0x6a09e667;\n this.h1 = 0xbb67ae85;\n this.h2 = 0x3c6ef372;\n this.h3 = 0xa54ff53a;\n this.h4 = 0x510e527f;\n this.h5 = 0x9b05688c;\n this.h6 = 0x1f83d9ab;\n this.h7 = 0x5be0cd19;\n }\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n this.is224 = is224;\n }\n\n Sha256.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = this.block;\n this.block = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n\n if (notString) {\n for (i = this.start; index < length && i < 64; ++index) {\n blocks[i >>> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >>> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >>> 2] |= (0xc0 | (code >>> 6)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >>> 2] |= (0xe0 | (code >>> 12)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | ((code >>> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >>> 2] |= (0xf0 | (code >>> 18)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | ((code >>> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | ((code >>> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.block = blocks[16];\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Sha256.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[16] = this.block;\n blocks[i >>> 2] |= EXTRA[i & 3];\n this.block = blocks[16];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.hBytes << 3 | this.bytes >>> 29;\n blocks[15] = this.bytes << 3;\n this.hash();\n };\n\n Sha256.prototype.hash = function () {\n var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6,\n h = this.h7, blocks = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc;\n\n for (j = 16; j < 64; ++j) {\n // rightrotate\n t1 = blocks[j - 15];\n s0 = ((t1 >>> 7) | (t1 << 25)) ^ ((t1 >>> 18) | (t1 << 14)) ^ (t1 >>> 3);\n t1 = blocks[j - 2];\n s1 = ((t1 >>> 17) | (t1 << 15)) ^ ((t1 >>> 19) | (t1 << 13)) ^ (t1 >>> 10);\n blocks[j] = blocks[j - 16] + s0 + blocks[j - 7] + s1 << 0;\n }\n\n bc = b & c;\n for (j = 0; j < 64; j += 4) {\n if (this.first) {\n if (this.is224) {\n ab = 300032;\n t1 = blocks[0] - 1413257819;\n h = t1 - 150054599 << 0;\n d = t1 + 24177077 << 0;\n } else {\n ab = 704751109;\n t1 = blocks[0] - 210244248;\n h = t1 - 1521486534 << 0;\n d = t1 + 143694565 << 0;\n }\n this.first = false;\n } else {\n s0 = ((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10));\n s1 = ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7));\n ab = a & b;\n maj = ab ^ (a & c) ^ bc;\n ch = (e & f) ^ (~e & g);\n t1 = h + s1 + ch + K[j] + blocks[j];\n t2 = s0 + maj;\n h = d + t1 << 0;\n d = t1 + t2 << 0;\n }\n s0 = ((d >>> 2) | (d << 30)) ^ ((d >>> 13) | (d << 19)) ^ ((d >>> 22) | (d << 10));\n s1 = ((h >>> 6) | (h << 26)) ^ ((h >>> 11) | (h << 21)) ^ ((h >>> 25) | (h << 7));\n da = d & a;\n maj = da ^ (d & b) ^ ab;\n ch = (h & e) ^ (~h & f);\n t1 = g + s1 + ch + K[j + 1] + blocks[j + 1];\n t2 = s0 + maj;\n g = c + t1 << 0;\n c = t1 + t2 << 0;\n s0 = ((c >>> 2) | (c << 30)) ^ ((c >>> 13) | (c << 19)) ^ ((c >>> 22) | (c << 10));\n s1 = ((g >>> 6) | (g << 26)) ^ ((g >>> 11) | (g << 21)) ^ ((g >>> 25) | (g << 7));\n cd = c & d;\n maj = cd ^ (c & a) ^ da;\n ch = (g & h) ^ (~g & e);\n t1 = f + s1 + ch + K[j + 2] + blocks[j + 2];\n t2 = s0 + maj;\n f = b + t1 << 0;\n b = t1 + t2 << 0;\n s0 = ((b >>> 2) | (b << 30)) ^ ((b >>> 13) | (b << 19)) ^ ((b >>> 22) | (b << 10));\n s1 = ((f >>> 6) | (f << 26)) ^ ((f >>> 11) | (f << 21)) ^ ((f >>> 25) | (f << 7));\n bc = b & c;\n maj = bc ^ (b & d) ^ cd;\n ch = (f & g) ^ (~f & h);\n t1 = e + s1 + ch + K[j + 3] + blocks[j + 3];\n t2 = s0 + maj;\n e = a + t1 << 0;\n a = t1 + t2 << 0;\n this.chromeBugWorkAround = true;\n }\n\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n this.h4 = this.h4 + e << 0;\n this.h5 = this.h5 + f << 0;\n this.h6 = this.h6 + g << 0;\n this.h7 = this.h7 + h << 0;\n };\n\n Sha256.prototype.hex = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var hex = HEX_CHARS[(h0 >>> 28) & 0x0F] + HEX_CHARS[(h0 >>> 24) & 0x0F] +\n HEX_CHARS[(h0 >>> 20) & 0x0F] + HEX_CHARS[(h0 >>> 16) & 0x0F] +\n HEX_CHARS[(h0 >>> 12) & 0x0F] + HEX_CHARS[(h0 >>> 8) & 0x0F] +\n HEX_CHARS[(h0 >>> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n HEX_CHARS[(h1 >>> 28) & 0x0F] + HEX_CHARS[(h1 >>> 24) & 0x0F] +\n HEX_CHARS[(h1 >>> 20) & 0x0F] + HEX_CHARS[(h1 >>> 16) & 0x0F] +\n HEX_CHARS[(h1 >>> 12) & 0x0F] + HEX_CHARS[(h1 >>> 8) & 0x0F] +\n HEX_CHARS[(h1 >>> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n HEX_CHARS[(h2 >>> 28) & 0x0F] + HEX_CHARS[(h2 >>> 24) & 0x0F] +\n HEX_CHARS[(h2 >>> 20) & 0x0F] + HEX_CHARS[(h2 >>> 16) & 0x0F] +\n HEX_CHARS[(h2 >>> 12) & 0x0F] + HEX_CHARS[(h2 >>> 8) & 0x0F] +\n HEX_CHARS[(h2 >>> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n HEX_CHARS[(h3 >>> 28) & 0x0F] + HEX_CHARS[(h3 >>> 24) & 0x0F] +\n HEX_CHARS[(h3 >>> 20) & 0x0F] + HEX_CHARS[(h3 >>> 16) & 0x0F] +\n HEX_CHARS[(h3 >>> 12) & 0x0F] + HEX_CHARS[(h3 >>> 8) & 0x0F] +\n HEX_CHARS[(h3 >>> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n HEX_CHARS[(h4 >>> 28) & 0x0F] + HEX_CHARS[(h4 >>> 24) & 0x0F] +\n HEX_CHARS[(h4 >>> 20) & 0x0F] + HEX_CHARS[(h4 >>> 16) & 0x0F] +\n HEX_CHARS[(h4 >>> 12) & 0x0F] + HEX_CHARS[(h4 >>> 8) & 0x0F] +\n HEX_CHARS[(h4 >>> 4) & 0x0F] + HEX_CHARS[h4 & 0x0F] +\n HEX_CHARS[(h5 >>> 28) & 0x0F] + HEX_CHARS[(h5 >>> 24) & 0x0F] +\n HEX_CHARS[(h5 >>> 20) & 0x0F] + HEX_CHARS[(h5 >>> 16) & 0x0F] +\n HEX_CHARS[(h5 >>> 12) & 0x0F] + HEX_CHARS[(h5 >>> 8) & 0x0F] +\n HEX_CHARS[(h5 >>> 4) & 0x0F] + HEX_CHARS[h5 & 0x0F] +\n HEX_CHARS[(h6 >>> 28) & 0x0F] + HEX_CHARS[(h6 >>> 24) & 0x0F] +\n HEX_CHARS[(h6 >>> 20) & 0x0F] + HEX_CHARS[(h6 >>> 16) & 0x0F] +\n HEX_CHARS[(h6 >>> 12) & 0x0F] + HEX_CHARS[(h6 >>> 8) & 0x0F] +\n HEX_CHARS[(h6 >>> 4) & 0x0F] + HEX_CHARS[h6 & 0x0F];\n if (!this.is224) {\n hex += HEX_CHARS[(h7 >>> 28) & 0x0F] + HEX_CHARS[(h7 >>> 24) & 0x0F] +\n HEX_CHARS[(h7 >>> 20) & 0x0F] + HEX_CHARS[(h7 >>> 16) & 0x0F] +\n HEX_CHARS[(h7 >>> 12) & 0x0F] + HEX_CHARS[(h7 >>> 8) & 0x0F] +\n HEX_CHARS[(h7 >>> 4) & 0x0F] + HEX_CHARS[h7 & 0x0F];\n }\n return hex;\n };\n\n Sha256.prototype.toString = Sha256.prototype.hex;\n\n Sha256.prototype.digest = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var arr = [\n (h0 >>> 24) & 0xFF, (h0 >>> 16) & 0xFF, (h0 >>> 8) & 0xFF, h0 & 0xFF,\n (h1 >>> 24) & 0xFF, (h1 >>> 16) & 0xFF, (h1 >>> 8) & 0xFF, h1 & 0xFF,\n (h2 >>> 24) & 0xFF, (h2 >>> 16) & 0xFF, (h2 >>> 8) & 0xFF, h2 & 0xFF,\n (h3 >>> 24) & 0xFF, (h3 >>> 16) & 0xFF, (h3 >>> 8) & 0xFF, h3 & 0xFF,\n (h4 >>> 24) & 0xFF, (h4 >>> 16) & 0xFF, (h4 >>> 8) & 0xFF, h4 & 0xFF,\n (h5 >>> 24) & 0xFF, (h5 >>> 16) & 0xFF, (h5 >>> 8) & 0xFF, h5 & 0xFF,\n (h6 >>> 24) & 0xFF, (h6 >>> 16) & 0xFF, (h6 >>> 8) & 0xFF, h6 & 0xFF\n ];\n if (!this.is224) {\n arr.push((h7 >>> 24) & 0xFF, (h7 >>> 16) & 0xFF, (h7 >>> 8) & 0xFF, h7 & 0xFF);\n }\n return arr;\n };\n\n Sha256.prototype.array = Sha256.prototype.digest;\n\n Sha256.prototype.arrayBuffer = function () {\n this.finalize();\n\n var buffer = new ArrayBuffer(this.is224 ? 28 : 32);\n var dataView = new DataView(buffer);\n dataView.setUint32(0, this.h0);\n dataView.setUint32(4, this.h1);\n dataView.setUint32(8, this.h2);\n dataView.setUint32(12, this.h3);\n dataView.setUint32(16, this.h4);\n dataView.setUint32(20, this.h5);\n dataView.setUint32(24, this.h6);\n if (!this.is224) {\n dataView.setUint32(28, this.h7);\n }\n return buffer;\n };\n\n function HmacSha256(key, is224, sharedMemory) {\n var i, type = typeof key;\n if (type === 'string') {\n var bytes = [], length = key.length, index = 0, code;\n for (i = 0; i < length; ++i) {\n code = key.charCodeAt(i);\n if (code < 0x80) {\n bytes[index++] = code;\n } else if (code < 0x800) {\n bytes[index++] = (0xc0 | (code >>> 6));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes[index++] = (0xe0 | (code >>> 12));\n bytes[index++] = (0x80 | ((code >>> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n bytes[index++] = (0xf0 | (code >>> 18));\n bytes[index++] = (0x80 | ((code >>> 12) & 0x3f));\n bytes[index++] = (0x80 | ((code >>> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n }\n }\n key = bytes;\n } else {\n if (type === 'object') {\n if (key === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\n key = new Uint8Array(key);\n } else if (!Array.isArray(key)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n }\n\n if (key.length > 64) {\n key = (new Sha256(is224, true)).update(key).array();\n }\n\n var oKeyPad = [], iKeyPad = [];\n for (i = 0; i < 64; ++i) {\n var b = key[i] || 0;\n oKeyPad[i] = 0x5c ^ b;\n iKeyPad[i] = 0x36 ^ b;\n }\n\n Sha256.call(this, is224, sharedMemory);\n\n this.update(iKeyPad);\n this.oKeyPad = oKeyPad;\n this.inner = true;\n this.sharedMemory = sharedMemory;\n }\n HmacSha256.prototype = new Sha256();\n\n HmacSha256.prototype.finalize = function () {\n Sha256.prototype.finalize.call(this);\n if (this.inner) {\n this.inner = false;\n var innerHash = this.array();\n Sha256.call(this, this.is224, this.sharedMemory);\n this.update(this.oKeyPad);\n this.update(innerHash);\n Sha256.prototype.finalize.call(this);\n }\n };\n\n var exports = createMethod();\n exports.sha256 = exports;\n exports.sha224 = createMethod(true);\n exports.sha256.hmac = createHmacMethod();\n exports.sha224.hmac = createHmacMethod(true);\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha256 = exports.sha256;\n root.sha224 = exports.sha224;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n","!function(A){function I(A){\"use strict\";var I;void 0===(I=A)&&(I={});var g=I;\"object\"!=typeof g.sodium&&(\"object\"==typeof global?g=global:\"object\"==typeof window&&(g=window));var C=I;return I.ready=new Promise((function(A,I){(B=C).onAbort=I,B.print=function(A){},B.printErr=function(A){},B.onRuntimeInitialized=function(){try{B._crypto_secretbox_keybytes(),A()}catch(A){I(A)}},B.useBackupModule=function(){return new Promise((function(A,I){(B={}).onAbort=I,B.onRuntimeInitialized=function(){Object.keys(C).forEach((function(A){\"getRandomValue\"!==A&&delete C[A]})),Object.keys(B).forEach((function(A){C[A]=B[A]})),A()};var g,B=void 0!==B?B:{},Q=\"object\"==typeof window,i=\"function\"==typeof importScripts,o=\"object\"==typeof process&&\"object\"==typeof process.versions&&\"string\"==typeof process.versions.node,E=Object.assign({},B),a=\"\";if(o){var _=require(\"fs\"),c=require(\"path\");a=__dirname+\"/\",g=A=>(A=Y(A)?new URL(A):c.normalize(A),_.readFileSync(A)),!B.thisProgram&&process.argv.length>1&&process.argv[1].replace(/\\\\/g,\"/\"),process.argv.slice(2),\"undefined\"!=typeof module&&(module.exports=B)}else(Q||i)&&(i?a=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(a=document.currentScript.src),a=a.startsWith(\"blob:\")?\"\":a.substr(0,a.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1),i&&(g=A=>{var I=new XMLHttpRequest;return I.open(\"GET\",A,!1),I.responseType=\"arraybuffer\",I.send(null),new Uint8Array(I.response)}));B.print;var t,r=B.printErr||void 0;Object.assign(B,E),E=null,B.arguments&&B.arguments,B.thisProgram&&B.thisProgram,B.quit&&B.quit,B.wasmBinary&&(t=B.wasmBinary);var e,y={Memory:function(A){this.buffer=new ArrayBuffer(65536*A.initial)},Module:function(A){},Instance:function(A,I){this.exports=function(A){for(var I,g=new Uint8Array(123),C=25;C>=0;--C)g[48+C]=52+C,g[65+C]=C,g[97+C]=26+C;function B(A,I,C){for(var B,Q,i=0,o=I,E=C.length,a=I+(3*E>>2)-(\"=\"==C[E-2])-(\"=\"==C[E-1]);i>4,o>2),o>>0>P>>>0?a+1|0:a)|0,a=(QA=(_=P)>>>0>(P=P+QA|0)>>>0?a+1|0:a)+yA|0,iA=eA=P+rA|0,eA=a=eA>>>0

>>0?a+1|0:a,P=UI(P^(o[A+80|0]|o[A+81|0]<<8|o[A+82|0]<<16|o[A+83|0]<<24)^-79577749,QA^(o[A+84|0]|o[A+85|0]<<8|o[A+86|0]<<16|o[A+87|0]<<24)^528734635,32),kA=a=f,a=a+1013904242|0,QA=P,V=a=(P=P-23791573|0)>>>0<4271175723?a+1|0:a,_A=UI(P^aA,a^_A,40),a=(a=eA)+(eA=f)|0,aA=UI(QA^(h=aA=_A+iA|0),kA^(D=h>>>0<_A>>>0?a+1|0:a),48),a=V+(R=f)|0,k=a=(aA=P+(p=aA)|0)>>>0

>>0?a+1|0:a,aA=a=UI(_A^(n=aA),eA^a,1),V=P=f,eA=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,kA=a=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,tA=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,P=(_A=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24)+(QA=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24)|0,a=(GA=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24)+(KA=o[A+44|0]|o[A+45|0]<<8|o[A+46|0]<<16|o[A+47|0]<<24)|0,a=(o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24)+(P>>>0>>0?a+1|0:a)|0,a=kA+(iA=(_=P)>>>0>(P=P+tA|0)>>>0?a+1|0:a)|0,a=(tA=P+eA|0)>>>0

>>0?a+1|0:a,_=UI(P^(o[A+72|0]|o[A+73|0]<<8|o[A+74|0]<<16|o[A+75|0]<<24)^725511199,iA^(o[A+76|0]|o[A+77|0]<<8|o[A+78|0]<<16|o[A+79|0]<<24)^-1694144372,32),e=UI(QA^(c=_-2067093701|0),KA^(x=(J=P=f)-((_>>>0<2067093701)+1150833018|0)|0),40),a=(L=f)+a|0,a=(Y=(F=P=e+tA|0)>>>0>>0?a+1|0:a)+V|0,a=(F>>>0>(P=F+aA|0)>>>0?a+1|0:a)+X|0,a=(QA=(t=P)>>>0>(P=P+oA|0)>>>0?a+1|0:a)+z|0,l=z=P+g|0,s=a=z>>>0

>>0?a+1|0:a,w=aA,wA=V,V=P,iA=QA,aA=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,P=a=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,KA=a=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i=QA=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,X=a,a=(FA=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)+(r=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24)|0,a=i+((z=o[A+32|0]|o[A+33|0]<<8|o[A+34|0]<<16|o[A+35|0]<<24)>>>0>(t=z+(QA=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24)|0)>>>0?a+1|0:a)|0,a=(tA=(X=t+X|0)>>>0>>0?a+1|0:a)+P|0,fA=t=X+aA|0,t=a=t>>>0>>0?a+1|0:a,y=z,z=UI(X^(o[A+64|0]|o[A+65|0]<<8|o[A+66|0]<<16|o[A+67|0]<<24)^-1377402159,tA^(o[A+68|0]|o[A+69|0]<<8|o[A+70|0]<<16|o[A+71|0]<<24)^1359893119,32),tA=a=f,a=a+1779033703|0,X=z,U=a=(z=z-205731576|0)>>>0<4089235720?a+1|0:a,r=UI(y^(S=z),a^r,40),a=(m=f)+t|0,y=UI(X^(t=z=r+fA|0),tA^(G=r>>>0>t>>>0?a+1|0:a),48),a=UI(y^V,(T=f)^iA,32),W=z=f,u=a,B=a=o[I+60|0]|o[I+61|0]<<8|o[I+62|0]<<16|o[I+63|0]<<24,tA=fA=o[I+56|0]|o[I+57|0]<<8|o[I+58|0]<<16|o[I+59|0]<<24,K=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,z=(iA=o[I+48|0]|o[I+49|0]<<8|o[I+50|0]<<16|o[I+51|0]<<24)+(X=o[A+56|0]|o[A+57|0]<<8|o[A+58|0]<<16|o[A+59|0]<<24)|0,a=(SA=o[I+52|0]|o[I+53|0]<<8|o[I+54|0]<<16|o[I+55|0]<<24)+(d=o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24)|0,a=(o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24)+(z>>>0>>0?a+1|0:a)|0,a=B+(V=(M=z)>>>0>(z=K+z|0)>>>0?a+1|0:a)|0,a=(K=z+tA|0)>>>0>>0?a+1|0:a,V=UI(z^(o[A+88|0]|o[A+89|0]<<8|o[A+90|0]<<16|o[A+91|0]<<24)^327033209,V^(o[A+92|0]|o[A+93|0]<<8|o[A+94|0]<<16|o[A+95|0]<<24)^1541459225,32),X=UI(X^(tA=V+1595750129|0),(M=d)^(d=(b=z=f)-((V>>>0<2699217167)+1521486533|0)|0),40),a=(IA=f)+a|0,z=UI((K=z=X+K|0)^V,b^(M=K>>>0>>0?a+1|0:a),48),a=d+($=f)|0,H=a=(z=tA+(d=z)|0)>>>0>>0?a+1|0:a,a=W+a|0,O=w^(V=u+(b=z)|0),w=a=V>>>0>>0?a+1|0:a,tA=UI(O,a^wA,40),a=(wA=f)+s|0,z=UI(l=u^(s=z=tA+l|0),W^(u=s>>>0>>0?a+1|0:a),48),a=w+(CA=f)|0,W=a=(w=V+(l=z)|0)>>>0>>0?a+1|0:a,z=(v=UI(w^tA,wA^a,1))+(V=o[I+72|0]|o[I+73|0]<<8|o[I+74|0]<<16|o[I+75|0]<<24)|0,a=(hA=f)+(wA=o[I+76|0]|o[I+77|0]<<8|o[I+78|0]<<16|o[I+79|0]<<24)|0,nA=z,q=z>>>0>>0?a+1|0:a,Z=sA,z=o[I+96|0]|o[I+97|0]<<8|o[I+98|0]<<16|o[I+99|0]<<24,tA=a=o[I+100|0]|o[I+101|0]<<8|o[I+102|0]<<16|o[I+103|0]<<24,X=(a=h)+(h=UI(b^X,H^IA,1))|0,a=(b=f)+D|0,a=(h>>>0>X>>>0?a+1|0:a)+tA|0,a=(D=(D=X)>>>0>(X=z+X|0)>>>0?a+1|0:a)+Z|0,O=H=X+gA|0,H=a=H>>>0>>0?a+1|0:a,F=UI(_^F,Y^J,48),Y=a=UI(F^X,(J=f)^D,32),a=U+T|0,a=(IA=X=f)+(S=(X=y+S|0)>>>0>>0?a+1|0:a)|0,U=a=(D=X)>>>0>(y=D+Y|0)>>>0?a+1|0:a,h=UI(y^h,b^a,40),a=(T=f)+H|0,a=(b=h>>>0>(H=X=h+O|0)>>>0?a+1|0:a)+q|0,a=(_=H>>>0>(X=H+nA|0)>>>0?a+1|0:a)+pA|0,nA=q=X+EA|0,q=a=q>>>0>>0?a+1|0:a,O=X,Z=_,X=o[I+116|0]|o[I+117|0]<<8|o[I+118|0]<<16|o[I+119|0]<<24,I=o[I+112|0]|o[I+113|0]<<8|o[I+114|0]<<16|o[I+115|0]<<24,r=UI(r^D,S^m,1),a=(m=f)+M|0,a=((_=r+K|0)>>>0>>0?a+1|0:a)+X|0,a=(D=(S=_)>>>0>(_=I+_|0)>>>0?a+1|0:a)+pA|0,MA=S=_+EA|0,S=a=S>>>0<_>>>0?a+1|0:a,a=UI(_^p,D^R,32),AA=_=f,p=a,D=_,a=J+x|0,F=_=c+F|0,K=a=_>>>0>>0?a+1|0:a,a=a+D|0,M=_=_+p|0,R=a=F>>>0>_>>>0?a+1|0:a,D=UI(_^r,m^a,40),a=(m=f)+S|0,p=UI((_=D+MA|0)^p,AA^(c=_>>>0>>0?a+1|0:a),48),a=UI(p^O,(MA=f)^Z,32),AA=r=f,S=a,O=r,e=UI(e^F,K^L,1),a=G+(F=f)|0,a=((r=t)>>>0>(t=t+e|0)>>>0?a+1|0:a)+BA|0,a=(t=(r=t+j|0)>>>0>>0?a+1|0:a)+wA|0,Z=G=r+V|0,G=a=G>>>0>>0?a+1|0:a,K=e,r=UI(r^d,t^$,32),a=(d=f)+k|0,n=UI(K^(t=e=r+n|0),(k=r>>>0>t>>>0?a+1|0:a)^F,40),a=($=f)+G|0,F=e=n+Z|0,e=UI(r^e,d^(G=e>>>0>>0?a+1|0:a),48),a=k+(E=f)|0,k=e,d=a=(e=t+e|0)>>>0>>0?a+1|0:a,a=a+O|0,a=(K=e)>>>0>(e=e+S|0)>>>0?a+1|0:a,O=e,e^=v,v=a,r=UI(e,hA^a,40),a=(hA=f)+q|0,q=e=r+nA|0,a=Q+(Z=r>>>0>e>>>0?a+1|0:a)|0,nA=e=e+g|0,J=a=e>>>0>>0?a+1|0:a,e=_,x=gA,L=sA,_=UI(Y^H,b^IA,48),a=U+(IA=f)|0,Y=_,U=a=(t=y+_|0)>>>0>>0?a+1|0:a,_=UI(t^h,T^a,1),a=(y=f)+L|0,a=((h=_+x|0)>>>0<_>>>0?a+1|0:a)+c|0,a=SA+(e=(c=e+h|0)>>>0>>0?a+1|0:a)|0,H=h=c+iA|0,h=a=h>>>0>>0?a+1|0:a,c=UI(c^k,e^E,32),a=W+(b=f)|0,k=c,w=a=(c=w+c|0)>>>0>>0?a+1|0:a,e=UI(_^c,a^y,40),a=(a=h)+(h=f)|0,y=_=e+H|0,_=UI(_^k,b^(H=_>>>0>>0?a+1|0:a),48),a=w+(T=f)|0,b=_,W=a=(w=c+_|0)>>>0>>0?a+1|0:a,_=UI(e^w,h^a,1),a=(h=f)+J|0,a=B+(e=(c=_+nA|0)>>>0<_>>>0?a+1|0:a)|0,nA=k=c+fA|0,k=a=k>>>0>>0?a+1|0:a,J=_,x=h,a=R+MA|0,a=(_=p+M|0)>>>0

>>0?a+1|0:a,p=_,M=a,a=UI(_^D,m^a,1),D=h=f,_=a,a=G+X|0,a=((F=I+F|0)>>>0>>0?a+1|0:a)+h|0,a=DA+(F=(h=_+F|0)>>>0>>0?a+1|0:a)|0,R=G=h+oA|0,G=a=G>>>0>>0?a+1|0:a,h=UI(h^l,F^CA,32),a=U+(l=f)|0,F=h,U=a=(U=t)>>>0>(t=t+h|0)>>>0?a+1|0:a,h=UI(_^t,a^D,40),a=(m=f)+G|0,D=_=h+R|0,_=UI(G=_^F,l^(F=_>>>0>>0?a+1|0:a),48),a=U+(CA=f)|0,U=_,G=_=t+_|0,l=a=_>>>0>>0?a+1|0:a,R=c,L=e,_=UI(n^K,d^$,1),a=(t=f)+N|0,a=u+((c=_+cA|0)>>>0<_>>>0?a+1|0:a)|0,a=BA+(e=(c=c+s|0)>>>0>>0?a+1|0:a)|0,u=s=c+j|0,s=a=s>>>0>>0?a+1|0:a,n=_,_=(c=UI(c^Y,e^IA,32))+p|0,a=(p=f)+M|0,e=_,t=UI(_^n,(Y=_>>>0>>0?a+1|0:a)^t,40),a=(IA=f)+s|0,s=_=t+u|0,K=UI(_^c,p^(u=_>>>0>>0?a+1|0:a),48),c=UI(K^R,(a=L)^(L=f),32),a=(R=f)+l|0,p=_=c+G|0,n=UI(_^J,(M=_>>>0>>0?a+1|0:a)^x,40),a=(J=f)+k|0,k=_=n+nA|0,_=UI(_^c,R^(d=_>>>0>>0?a+1|0:a),48),a=M+($=f)|0,M=_,R=a=(c=p)>>>0>(p=p+_|0)>>>0?a+1|0:a,_=UI(p^n,J^a,1),a=pA+(nA=f)|0,J=_,MA=_=EA+_|0,n=a=_>>>0>>0?a+1|0:a,c=rA,_=UI(h^G,m^l,1),a=H+(h=f)|0,a=((G=y)>>>0>(y=_+y|0)>>>0?a+1|0:a)+yA|0,a=(G=(c=c+y|0)>>>0>>0?a+1|0:a)+kA|0,x=y=c+eA|0,H=a=y>>>0>>0?a+1|0:a,l=_,y=UI(S^q,Z^AA,48),a=UI(y^c,(m=f)^G,32),AA=_=f,S=a,c=_,a=Y+L|0,a=(_=e+K|0)>>>0>>0?a+1|0:a,e=_,Y=a,a=a+c|0,G=_=_+S|0,K=a=e>>>0>_>>>0?a+1|0:a,c=UI(_^l,a^h,40),a=(a=H)+(H=f)|0,l=_=c+x|0,q=a=_>>>0>>0?a+1|0:a,a=a+n|0,Z=a=(h=_+MA|0)>>>0<_>>>0?a+1|0:a,n=a,_=UI(t^e,Y^IA,1),a=P+(t=f)|0,a=F+((e=_+aA|0)>>>0>>0?a+1|0:a)|0,a=tA+(D=(e=e+D|0)>>>0>>0?a+1|0:a)|0,x=F=e+z|0,F=a=F>>>0>>0?a+1|0:a,Y=_,a=UI(e^b,D^T,32),L=_=f,e=a,D=_,a=m+v|0,b=_=y+O|0,v=a=_>>>0>>0?a+1|0:a,a=a+D|0,a=(y=_+e|0)>>>0<_>>>0?a+1|0:a,_=y^Y,Y=a,D=UI(_,a^t,40),a=(T=f)+F|0,t=_=D+x|0,O=UI(_^e,L^(F=_>>>0>>0?a+1|0:a),48),a=UI(O^h,(IA=f)^n,32),MA=_=f,x=a,n=_,_=UI(r^b,v^hA,1),a=u+(r=f)|0,a=FA+((e=_+s|0)>>>0>>0?a+1|0:a)|0,a=(s=(e=e+QA|0)>>>0>>0?a+1|0:a)+GA|0,b=u=e+_A|0,u=a=u>>>0>>0?a+1|0:a,e=UI(e^U,s^CA,32),a=W+(v=f)|0,U=e,s=r,r=a=(e=w+e|0)>>>0>>0?a+1|0:a,s=UI(_^e,s^a,40),a=(CA=f)+u|0,w=_=s+b|0,_=UI(b=_^U,v^(U=_>>>0>>0?a+1|0:a),48),a=r+(m=f)|0,r=_,u=_=e+_|0,b=a=_>>>0>>0?a+1|0:a,a=a+n|0,W=a=(n=_+x|0)>>>0<_>>>0?a+1|0:a,e=UI(n^J,nA^a,40),a=Z+(v=f)|0,a=((_=e+h|0)>>>0>>0?a+1|0:a)+sA|0,h=_,Z=_=_+gA|0,J=a=h>>>0>_>>>0?a+1|0:a,L=BA,h=UI(S^l,q^AA,48),a=(hA=f)+K|0,S=_=h+G|0,a=UI(_^c,(G=_>>>0>>0?a+1|0:a)^H,1),H=c=f,_=a,a=F+Q|0,a=((t=t+g|0)>>>0>>0?a+1|0:a)+c|0,a=(t=(c=_+t|0)>>>0>>0?a+1|0:a)+L|0,K=F=c+j|0,F=a=F>>>0>>0?a+1|0:a,c=UI(c^r,t^m,32),a=R+(l=f)|0,p=a=(r=c+p|0)>>>0

>>0?a+1|0:a,t=UI(_^r,a^H,40),a=(q=f)+F|0,F=_=t+K|0,c=UI(_^c,l^(H=_>>>0>>0?a+1|0:a),48),a=p+(K=f)|0,l=a=(p=c+r|0)>>>0>>0?a+1|0:a,_=UI(t^p,q^a,1),a=(q=f)+J|0,a=wA+((r=_+Z|0)>>>0<_>>>0?a+1|0:a)|0,a=(t=(r=r+V|0)>>>0>>0?a+1|0:a)+N|0,nA=N=r+cA|0,N=a=N>>>0>>0?a+1|0:a,R=_,L=r,m=t,r=rA,_=UI(s^u,b^CA,1),a=d+(s=f)|0,a=((t=k)>>>0>(k=_+k|0)>>>0?a+1|0:a)+yA|0,a=GA+(t=(r=r+k|0)>>>0>>0?a+1|0:a)|0,d=k=r+_A|0,u=a=k>>>0<_A>>>0?a+1|0:a,k=_,t=a=UI(r^h,t^hA,32),a=Y+IA|0,a=(b=_=f)+(y=(_=y+O|0)>>>0>>0?a+1|0:a)|0,Y=a=(h=_+t|0)>>>0<_>>>0?a+1|0:a,k=UI(h^k,a^s,40),a=(IA=f)+u|0,u=UI(d=(r=k+d|0)^t,b^(t=r>>>0>>0?a+1|0:a),48),a=UI(u^L,(CA=f)^m,32),hA=s=f,d=a,b=s,_=UI(_^D,y^T,1),a=tA+(s=f)|0,a=U+((y=_+z|0)>>>0>>0?a+1|0:a)|0,a=FA+(w=(y=y+w|0)>>>0>>0?a+1|0:a)|0,L=D=y+QA|0,D=a=D>>>0>>0?a+1|0:a,U=_,O=s,y=UI(y^M,w^$,32),a=(M=f)+G|0,s=_=y+S|0,w=UI(_^U,(S=_>>>0>>0?a+1|0:a)^O,40),a=(T=f)+D|0,U=_=w+L|0,_=UI(_^y,M^(G=_>>>0>>0?a+1|0:a),48),a=S+(L=f)|0,D=_,S=_=s+_|0,M=a=_>>>0>>0?a+1|0:a,a=a+b|0,b=_=_+d|0,y=q,q=a=S>>>0>_>>>0?a+1|0:a,y=UI(_^R,y^a,40),a=(a=N)+(N=f)|0,O=_=y+nA|0,R=a=_>>>0>>0?a+1|0:a,s=t,_=UI(x^Z,J^MA,48),a=W+($=f)|0,W=_,t=(_=n+_|0)^e,e=a=_>>>0>>0?a+1|0:a,t=UI(t,a^v,1),a=(v=f)+s|0,a=B+((r=t+r|0)>>>0>>0?a+1|0:a)|0,a=(s=(r=r+fA|0)>>>0>>0?a+1|0:a)+P|0,Z=n=r+aA|0,n=a=n>>>0>>0?a+1|0:a,r=UI(r^D,s^L,32),a=l+(J=f)|0,l=r,p=a=(s=p+r|0)>>>0

>>0?a+1|0:a,t=UI(t^s,v^a,40),a=(a=n)+(n=f)|0,D=r=t+Z|0,r=UI(x=r^l,J^(l=r>>>0>>0?a+1|0:a),48),a=p+(nA=f)|0,v=r,Z=a=(p=s+r|0)>>>0>>0?a+1|0:a,r=UI(t^p,n^a,1),a=(n=f)+R|0,a=Q+((t=r+O|0)>>>0>>0?a+1|0:a)|0,a=X+(s=(t=t+g|0)>>>0>>0?a+1|0:a)|0,MA=J=I+t|0,J=a=J>>>0>>0?a+1|0:a,x=r,L=n,n=t,m=s,r=UI(w^S,M^T,1),a=(s=f)+H|0,a=DA+((t=r+F|0)>>>0>>0?a+1|0:a)|0,a=(w=(t=t+oA|0)>>>0>>0?a+1|0:a)+X|0,H=F=I+t|0,F=a=F>>>0>>0?a+1|0:a,S=r,t=a=UI(t^W,w^$,32),w=r=f,a=Y+CA|0,Y=a=(r=h+u|0)>>>0>>0?a+1|0:a,a=a+w|0,a=(h=r)>>>0>(r=r+t|0)>>>0?a+1|0:a,u=r,r^=S,S=a,s=UI(r,a^s,40),a=(T=f)+F|0,w=UI(F=(r=s+H|0)^t,w^(t=r>>>0>>0?a+1|0:a),48),a=UI(w^n,(a=m)^(m=f),32),$=n=f,F=a,H=e,e=c,a=UI(h^k,Y^IA,1),M=c=f,h=a,a=G+kA|0,a=((k=U+eA|0)>>>0>>0?a+1|0:a)+c|0,k=a=(c=h+k|0)>>>0>>0?a+1|0:a,e=UI(c^e,a^K,32),a=(a=H)+(H=f)|0,h=UI((_=e+_|0)^h,M^(Y=_>>>0>>0?a+1|0:a),40),a=k+(IA=f)|0,U=h,a=SA+((G=c)>>>0>(c=c+h|0)>>>0?a+1|0:a)|0,G=a=(h=c+iA|0)>>>0>>0?a+1|0:a,c=UI(e^h,H^a,48),a=Y+(CA=f)|0,K=_,e=c,Y=_=_+c|0,H=a=K>>>0>_>>>0?a+1|0:a,a=a+n|0,K=a=(n=_+F|0)>>>0<_>>>0?a+1|0:a,_=(k=UI(n^x,a^L,40))+MA|0,a=(MA=f)+J|0,M=_,W=_>>>0>>0?a+1|0:a,_=UI(d^O,R^hA,48),a=(d=f)+q|0,b=c=_+b|0,x=N,N=a=c>>>0<_>>>0?a+1|0:a,a=UI(c^y,x^a,1),O=c=f,y=a,a=t+B|0,a=((r=r+fA|0)>>>0>>0?a+1|0:a)+c|0,a=wA+(r=(c=r+y|0)>>>0>>0?a+1|0:a)|0,R=t=c+V|0,t=a=t>>>0>>0?a+1|0:a,c=UI(c^e,r^CA,32),a=Z+(J=f)|0,q=c,c=(e=p+c|0)^y,y=a=e>>>0

>>0?a+1|0:a,r=UI(c,O^a,40),a=(a=t)+(t=f)|0,O=c=r+R|0,c=UI(p=c^q,J^(q=c>>>0>>0?a+1|0:a),48),a=y+(CA=f)|0,Z=c,e=a=(c=e+c|0)>>>0>>0?a+1|0:a,r=UI(c^r,t^a,1),a=(p=f)+W|0,a=pA+((t=r+M|0)>>>0>>0?a+1|0:a)|0,a=(y=(t=t+EA|0)>>>0>>0?a+1|0:a)+BA|0,AA=R=t+j|0,R=a=R>>>0>>0?a+1|0:a,J=r,x=t,L=y,r=UI(U^Y,H^IA,1),a=(H=f)+sA|0,a=l+(r>>>0>(t=r+gA|0)>>>0?a+1|0:a)|0,y=a=(t=t+D|0)>>>0>>0?a+1|0:a,a=UI(_^t,a^d,32),d=_=f,D=a,a=S+m|0,a=(_=w+u|0)>>>0>>0?a+1|0:a,w=_,Y=a,a=d+a|0,S=_=_+D|0,U=a=w>>>0>_>>>0?a+1|0:a,_=UI(_^r,H^a,40),a=y+(m=f)|0,u=_,a=tA+((_=t+_|0)>>>0>>0?a+1|0:a)|0,a=(_=_+z|0)>>>0>>0?a+1|0:a,H=_,_^=D,D=a,y=UI(_,d^a,48),a=UI(y^x,(a=L)^(L=f),32),IA=_=f,d=a,l=_,_=UI(s^w,Y^T,1),a=kA+(t=f)|0,a=G+((r=_+eA|0)>>>0>>0?a+1|0:a)|0,a=(s=(r=r+h|0)>>>0>>0?a+1|0:a)+P|0,G=w=r+aA|0,w=a=w>>>0>>0?a+1|0:a,h=_,Y=t,_=(r=UI(r^v,s^nA,32))+b|0,a=(b=f)+N|0,t=_,s=UI(s=_^h,(h=_>>>0>>0?a+1|0:a)^Y,40),a=(T=f)+w|0,w=_=s+G|0,r=UI(_^r,b^(N=_>>>0>>0?a+1|0:a),48),a=h+(Y=f)|0,G=_=r+t|0,b=a=_>>>0>>0?a+1|0:a,a=a+l|0,l=a=(h=_+d|0)>>>0<_>>>0?a+1|0:a,t=UI(h^J,a^p,40),a=(v=f)+R|0,R=_=t+AA|0,J=a=_>>>0>>0?a+1|0:a,_=c,p=e,e=r,c=UI(F^M,W^$,48),a=K+(AA=f)|0,F=c,n=a=(r=n+c|0)>>>0>>0?a+1|0:a,a=UI(r^k,MA^a,1),K=c=f,k=a,a=D+NA|0,a=((D=H+cA|0)>>>0>>0?a+1|0:a)+c|0,D=a=(c=D+k|0)>>>0>>0?a+1|0:a,e=UI(c^e,a^Y,32),a=(H=f)+p|0,k=UI((_=e+_|0)^k,K^(p=_>>>0>>0?a+1|0:a),40),a=D+(M=f)|0,a=FA+((D=c)>>>0>(c=c+k|0)>>>0?a+1|0:a)|0,Y=a=(D=c+QA|0)>>>0>>0?a+1|0:a,c=UI(e^D,H^a,48),a=p+($=f)|0,H=c,K=a=(p=_+c|0)>>>0<_>>>0?a+1|0:a,_=UI(p^k,M^a,1),a=(k=f)+J|0,a=DA+((c=_+R|0)>>>0<_>>>0?a+1|0:a)|0,a=pA+(e=(c=c+oA|0)>>>0>>0?a+1|0:a)|0,hA=M=c+EA|0,M=a=M>>>0>>0?a+1|0:a,W=_,x=c,_=UI(s^G,b^T,1),a=(s=f)+q|0,a=GA+((c=_+O|0)>>>0<_>>>0?a+1|0:a)|0,a=SA+(G=(c=c+_A|0)>>>0<_A>>>0?a+1|0:a)|0,O=b=c+iA|0,b=a=b>>>0>>0?a+1|0:a,q=_,a=UI(c^F,G^AA,32),AA=_=f,c=a,a=U+L|0,S=_=y+S|0,F=a=_>>>0>>0?a+1|0:a,a=AA+a|0,U=a=(y=_+c|0)>>>0<_>>>0?a+1|0:a,s=UI(y^q,a^s,40),a=(L=f)+b|0,G=_=s+O|0,q=UI(_^c,AA^(b=_>>>0>>0?a+1|0:a),48),a=UI(q^x,(AA=f)^e,32),T=_=f,O=a,e=_,c=rA,_=UI(S^u,F^m,1),a=N+(F=f)|0,a=((S=w)>>>0>(w=_+w|0)>>>0?a+1|0:a)+yA|0,a=DA+(w=(c=c+w|0)>>>0>>0?a+1|0:a)|0,S=N=c+oA|0,N=a=N>>>0>>0?a+1|0:a,c=UI(c^Z,w^CA,32),a=n+(u=f)|0,n=c,a=(c=r+c|0)>>>0>>0?a+1|0:a,r=F,F=a,r=UI(_^c,r^a,40),a=(m=f)+N|0,w=_=r+S|0,_=UI(_^n,u^(N=_>>>0>>0?a+1|0:a),48),a=F+(x=f)|0,F=_,S=_=c+_|0,u=a=_>>>0>>0?a+1|0:a,a=a+e|0,a=(n=_+O|0)>>>0<_>>>0?a+1|0:a,_=n^W,W=a,k=UI(_,a^k,40),a=(CA=f)+M|0,M=_=k+hA|0,Z=_>>>0>>0?a+1|0:a,_=UI(d^R,J^IA,48),a=l+(IA=f)|0,d=_,a=(_=h+_|0)>>>0>>0?a+1|0:a,h=_,l=a,a=UI(_^t,a^v,1),v=_=f,e=a,a=b+wA|0,a=((c=G+V|0)>>>0>>0?a+1|0:a)+_|0,a=FA+(c=(_=c+e|0)>>>0>>0?a+1|0:a)|0,G=t=_+QA|0,t=a=t>>>0>>0?a+1|0:a,_=UI(_^F,c^x,32),a=K+(b=f)|0,F=_,p=a=(c=p+_|0)>>>0

>>0?a+1|0:a,e=UI(c^e,v^a,40),a=(v=f)+t|0,G=_=e+G|0,_=UI(t=_^F,b^(F=_>>>0>>0?a+1|0:a),48),a=p+(hA=f)|0,p=_,K=a=(t=c+_|0)>>>0>>0?a+1|0:a,_=UI(t^e,v^a,1),a=(b=f)+Z|0,a=kA+((c=_+M|0)>>>0<_>>>0?a+1|0:a)|0,a=(e=(c=c+eA|0)>>>0>>0?a+1|0:a)+sA|0,nA=v=c+gA|0,v=a=v>>>0>>0?a+1|0:a,R=_,J=c,x=e,_=UI(r^S,m^u,1),a=GA+(e=f)|0,a=Y+((c=_+_A|0)>>>0<_A>>>0?a+1|0:a)|0,a=NA+(r=(c=c+D|0)>>>0>>0?a+1|0:a)|0,u=D=c+cA|0,D=a=D>>>0>>0?a+1|0:a,Y=_,S=e,a=UI(c^d,r^IA,32),d=_=f,r=a,c=_,a=U+AA|0,a=(_=y+q|0)>>>0>>0?a+1|0:a,y=_,U=a,a=a+c|0,a=(e=_+r|0)>>>0<_>>>0?a+1|0:a,_=e^Y,Y=a,_=UI(_,a^S,40),a=(a=D)+(D=f)|0,S=c=_+u|0,u=a=c>>>0<_>>>0?a+1|0:a,d=UI(c^r,d^a,48),a=UI(d^J,(a=x)^(x=f),32),m=c=f,q=a,c=UI(y^s,U^L,1),a=(y=f)+yA|0,a=N+((r=c+rA|0)>>>0>>0?a+1|0:a)|0,a=B+(s=(r=r+w|0)>>>0>>0?a+1|0:a)|0,L=w=r+fA|0,w=a=w>>>0>>0?a+1|0:a,N=c,U=y,r=UI(r^H,s^$,32),a=(H=f)+l|0,y=c=r+h|0,c=(s=UI(c^N,(h=c>>>0>>0?a+1|0:a)^U,40))+L|0,a=(L=f)+w|0,N=c,c=UI(c^r,H^(U=c>>>0>>0?a+1|0:a),48),a=h+(AA=f)|0,H=c,l=c=y+c|0,J=a=c>>>0>>0?a+1|0:a,a=m+a|0,a=(r=c+q|0)>>>0>>0?a+1|0:a,c=b,b=a,y=UI(r^R,c^a,40),a=(IA=f)+v|0,w=c=y+nA|0,a=UI(c^q,m^(v=c>>>0>>0?a+1|0:a),48),m=c=f,q=a,c=_,a=Y+x|0,Y=_=e+d|0,d=a=_>>>0>>0?a+1|0:a,a=UI(_^c,a^D,1),e=c=f,_=a,a=U+Q|0,a=((h=N+g|0)>>>0>>0?a+1|0:a)+c|0,a=tA+(h=(c=_+h|0)>>>0>>0?a+1|0:a)|0,x=D=c+z|0,D=a=D>>>0>>0?a+1|0:a,N=_,U=e,_=UI(M^O,Z^T,48),a=W+(T=f)|0,M=_,a=(_=n+_|0)>>>0>>0?a+1|0:a,n=_,c=UI(c^p,h^hA,32),W=a,a=a+(O=f)|0,e=_=c+_|0,h=UI(_^N,(p=_>>>0>>0?a+1|0:a)^U,40),a=(Z=f)+D|0,D=_=h+x|0,_=UI(_^c,O^(N=_>>>0>>0?a+1|0:a),48),a=p+($=f)|0,U=_,O=a=(p=e+_|0)>>>0>>0?a+1|0:a,_=UI(h^p,Z^a,1),a=FA+(x=f)|0,Z=_,hA=_=QA+_|0,e=a=_>>>0>>0?a+1|0:a,_=UI(k^n,W^CA,1),a=(h=f)+u|0,a=SA+((c=_+S|0)>>>0<_>>>0?a+1|0:a)|0,a=BA+(n=(c=c+iA|0)>>>0>>0?a+1|0:a)|0,W=k=c+j|0,k=a=k>>>0>>0?a+1|0:a,S=h,c=UI(c^H,n^AA,32),a=K+(AA=f)|0,u=c,a=(h=t+c|0)>>>0>>0?a+1|0:a,t=S,S=a,n=UI(_^h,t^a,40),a=(CA=f)+k|0,H=_=n+W|0,a=(K=_>>>0>>0?a+1|0:a)+e|0,k=a=(e=_+hA|0)>>>0<_>>>0?a+1|0:a,W=a=UI(e^q,a^m,32),R=_=f,_=UI(s^l,J^L,1),a=(t=f)+F|0,a=X+((c=_+G|0)>>>0<_>>>0?a+1|0:a)|0,a=(s=(c=I+c|0)>>>0>>0?a+1|0:a)+P|0,J=F=c+aA|0,F=a=F>>>0>>0?a+1|0:a,G=_,l=t,c=UI(c^M,s^T,32),a=(M=f)+d|0,t=_=c+Y|0,_=(s=UI(_^G,(Y=_>>>0>>0?a+1|0:a)^l,40))+J|0,a=(J=f)+F|0,F=_,_=UI(_^c,M^(G=_>>>0>>0?a+1|0:a),48),a=Y+(T=f)|0,Y=_,M=a=(_=t+_|0)>>>0>>0?a+1|0:a,a=a+R|0,d=a=(t=_)>>>0>(_=_+W|0)>>>0?a+1|0:a,c=UI(_^Z,x^a,40),a=k+(x=f)|0,l=c,a=Q+((c=e+c|0)>>>0>>0?a+1|0:a)|0,Z=c=c+g|0,e=c^W,W=a=c>>>0>>0?a+1|0:a,c=UI(e,R^a,48),a=d+(R=f)|0,d=a=(k=_+c|0)>>>0<_>>>0?a+1|0:a,_=a=UI(k^l,x^a,1),l=e=f,e=UI(t^s,M^J,1),a=N+(s=f)|0,a=SA+((t=e+D|0)>>>0>>0?a+1|0:a)|0,a=DA+(D=(t=t+iA|0)>>>0>>0?a+1|0:a)|0,x=N=t+oA|0,N=a=N>>>0>>0?a+1|0:a,M=e,J=s,a=b+m|0,a=(e=r+q|0)>>>0>>0?a+1|0:a,b=e,u=UI(H^u,K^AA,48),s=UI(t^u,D^(AA=f),32),H=a,a=a+(hA=f)|0,D=e=s+e|0,e=UI(e^M,(K=e>>>0>>0?a+1|0:a)^J,40),a=(M=f)+N|0,J=a=(r=e+x|0)>>>0>>0?a+1|0:a,a=a+l|0,a=B+((q=r)>>>0>(r=_+r|0)>>>0?a+1|0:a)|0,a=(t=(r=r+fA|0)>>>0>>0?a+1|0:a)+yA|0,nA=N=r+rA|0,x=a=N>>>0>>0?a+1|0:a,L=_,m=r,a=UI(y^b,H^IA,1),y=r=f,_=a,a=G+GA|0,a=((N=F+_A|0)>>>0<_A>>>0?a+1|0:a)+r|0,a=tA+(N=(r=_+N|0)>>>0>>0?a+1|0:a)|0,H=F=r+z|0,F=a=F>>>0>>0?a+1|0:a,G=_,a=UI(r^U,N^$,32),b=_=f,r=a,N=_,a=S+AA|0,S=_=h+u|0,U=a=_>>>0>>0?a+1|0:a,a=a+N|0,a=(h=_+r|0)>>>0<_>>>0?a+1|0:a,_=h^G;G=a,N=UI(_,a^y,40),a=(AA=f)+F|0,u=UI(F=(_=N+H|0)^r,b^(r=_>>>0>>0?a+1|0:a),48),a=UI(a=u^m,(m=f)^t,32),IA=t=f,H=a,F=t,t=UI(n^S,U^CA,1),a=BA+(n=f)|0,a=v+((y=t+j|0)>>>0>>0?a+1|0:a)|0,a=kA+(w=(y=y+w|0)>>>0>>0?a+1|0:a)|0,U=S=y+eA|0,S=a=S>>>0>>0?a+1|0:a,y=UI(y^Y,w^T,32),a=O+(b=f)|0,Y=y,p=a=(y=p+y|0)>>>0

>>0?a+1|0:a,w=UI(t^y,a^n,40),a=(T=f)+S|0,n=t=w+U|0,t=UI(S=t^Y,b^(Y=t>>>0>>0?a+1|0:a),48),a=p+($=f)|0,S=t,U=t=y+t|0,b=a=t>>>0>>0?a+1|0:a,a=a+F|0,a=(y=t+H|0)>>>0>>0?a+1|0:a,t=l,l=a,p=UI(y^L,t^a,40),a=(v=f)+x|0,F=t=p+nA|0,t=UI(x=t^H,IA^(H=t>>>0

>>0?a+1|0:a),48),a=l+(IA=f)|0,l=t,y=a=(t=y+t|0)>>>0>>0?a+1|0:a,v=a=UI(t^p,v^a,1),CA=a,O=p=f,p=r,r=e,e=UI(s^q,J^hA,48),a=K+(hA=f)|0,K=e,a=(e=D+e|0)>>>0>>0?a+1|0:a,D=_,_=r^e,r=a,_=UI(_,a^M,1),a=(M=f)+p|0,a=NA+(_>>>0>(s=D+_|0)>>>0?a+1|0:a)|0,a=sA+(D=(s=s+cA|0)>>>0>>0?a+1|0:a)|0,q=p=s+gA|0,p=a=p>>>0>>0?a+1|0:a,s=UI(s^S,D^$,32),a=d+(J=f)|0,S=a=(D=s+k|0)>>>0>>0?a+1|0:a,k=UI(_^D,M^a,40),a=($=f)+p|0,M=_=k+q|0,s=UI(_^s,J^(d=_>>>0>>0?a+1|0:a),48),a=S+(q=f)|0,J=_=s+D|0,S=_,x=a=_>>>0>>0?a+1|0:a,D=e,p=r,a=G+m|0,a=(_=h+u|0)>>>0>>0?a+1|0:a,h=_,_^=N,N=a,a=UI(_,AA^a,1),L=_=f,G=a,r=a,a=Y+P|0,a=((e=n+aA|0)>>>0>>0?a+1|0:a)+_|0,n=a=(_=e)>>>0>(e=r+e|0)>>>0?a+1|0:a,r=UI(c^e,a^R,32),a=(a=p)+(p=f)|0,u=_=r+D|0,c=UI(c=_^G,L^(G=_>>>0>>0?a+1|0:a),40),a=n+(R=f)|0,a=wA+((_=c+e|0)>>>0>>0?a+1|0:a)|0,L=a=(D=_+V|0)>>>0>>0?a+1|0:a,p=UI(r^D,p^a,48),nA=a=f,_=UI(w^U,b^T,1),a=(r=f)+W|0,a=pA+((e=_+Z|0)>>>0<_>>>0?a+1|0:a)|0,a=X+(w=(e=e+EA|0)>>>0>>0?a+1|0:a)|0,W=n=I+e|0,U=a=n>>>0>>0?a+1|0:a,b=_,n=UI(e^K,w^hA,32),a=(T=f)+N|0,N=_=n+h|0,e=UI(_^b,(K=_>>>0>>0?a+1|0:a)^r,40),a=(a=U)+(U=f)|0,b=_=e+W|0,W=a=_>>>0>>0?a+1|0:a,r=a,a=X+O|0,a=((w=I+v|0)>>>0>>0?a+1|0:a)+r|0,Y=a=(r=_+w|0)>>>0>>0?a+1|0:a,_=UI(r^p,nA^a,32),a=(v=f)+x|0,h=UI((w=_+S|0)^CA,(a=w>>>0<_>>>0?a+1|0:a)^O,40),O=a,a=sA+(S=f)|0,a=Y+((Z=h+gA|0)>>>0>>0?a+1|0:a)|0,a=(Y=r+Z|0)>>>0>>0?a+1|0:a,r=v,v=a,r=UI(_^Y,r^a,48),a=(a=O)+(O=f)|0,_=h^(w=r+w|0),h=a=w>>>0>>0?a+1|0:a,Z=a=UI(_,a^S,1),CA=a,m=_=f,S=t,AA=y,t=e,e=UI(n^b,W^T,48),a=K+(b=f)|0,n=_=e+N|0,N=a=_>>>0>>0?a+1|0:a,t=UI(_^t,a^U,1),a=(W=f)+NA|0,a=L+((_=t+cA|0)>>>0>>0?a+1|0:a)|0,D=a=(y=_+D|0)>>>0>>0?a+1|0:a,_=UI(y^s,a^q,32),a=(U=f)+AA|0,S=s=_+S|0,K=a=s>>>0<_>>>0?a+1|0:a,t=UI(t^s,a^W,40),a=DA+(hA=f)|0,W=t,a=D+((t=oA+t|0)>>>0>>0?a+1|0:a)|0,y=a=(t=t+y|0)>>>0>>0?a+1|0:a,s=UI(_^t,a^U,48),a=(a=K)+(K=f)|0,q=_=s+S|0,U=_,L=a=_>>>0>>0?a+1|0:a,a=G+nA|0,S=(_=p+u|0)^c,c=a=_>>>0

>>0?a+1|0:a,a=UI(S,a^R,1),R=D=f,S=a,a=d+tA|0,a=((p=M+z|0)>>>0>>0?a+1|0:a)+D|0,G=a=(G=p)>>>0>(p=p+S|0)>>>0?a+1|0:a,u=D=UI(p^l,IA^a,32),M=a=f,a=a+N|0,d=D=D+n|0,l=a=u>>>0>D>>>0?a+1|0:a,D=UI(D^S,R^a,40),a=yA+(R=f)|0,a=G+((n=D+rA|0)>>>0>>0?a+1|0:a)|0,n=a=(S=p)>>>0>(p=p+n|0)>>>0?a+1|0:a,S=UI(p^u,a^M,48),IA=a=f,N=a,k=UI(k^J,x^$,1),G=a=f,u=e,a=a+P|0,a=H+((e=k+aA|0)>>>0>>0?a+1|0:a)|0,a=(e=e+F|0)>>>0>>0?a+1|0:a,F=e^u,u=a,F=UI(F,a^b,32),a=($=f)+c|0,H=_=F+_|0,c=UI(_^k,(c=G)^(G=_>>>0>>0?a+1|0:a),40),a=pA+(M=f)|0,a=u+((_=c+EA|0)>>>0>>0?a+1|0:a)|0,u=_=_+e|0,b=a=_>>>0>>0?a+1|0:a,e=a,a=m+SA|0,a=((k=Z+iA|0)>>>0>>0?a+1|0:a)+e|0,Z=a=(e=_+k|0)>>>0>>0?a+1|0:a,_=UI(e^S,a^N,32),a=(J=f)+L|0,N=UI((k=_+U|0)^CA,(a=k>>>0<_>>>0?a+1|0:a)^m,40),x=U=f,m=a,a=U+kA|0,a=Z+((U=N+eA|0)>>>0>>0?a+1|0:a)|0,Z=a=(U=e+U|0)>>>0>>0?a+1|0:a,e=UI(_^U,a^J,48),a=(J=f)+m|0,_=(k=e+k|0)^N,N=a=k>>>0>>0?a+1|0:a,x=a=UI(_,a^x,1),m=_=f,AA=w,T=s,s=c,c=UI(F^u,b^$,48),a=(F=f)+G|0,G=_=c+H|0,u=a=_>>>0>>0?a+1|0:a,s=UI(_^s,a^M,1),a=(M=f)+FA|0,a=((_=s+QA|0)>>>0>>0?a+1|0:a)+n|0,p=a=(w=_+p|0)>>>0<_>>>0?a+1|0:a,_=UI(w^T,a^K,32),a=(n=f)+h|0,H=h=_+AA|0,K=a=h>>>0<_>>>0?a+1|0:a,s=UI(s^h,a^M,40),a=B+(T=f)|0,M=s,a=p+((s=fA+s|0)>>>0>>0?a+1|0:a)|0,b=a=(h=s+w|0)>>>0>>0?a+1|0:a,s=UI(_^h,a^n,48),a=(a=K)+(K=f)|0,H=_=s+H|0,AA=a=_>>>0>>0?a+1|0:a,p=r,w=t,a=l+IA|0,r=a=(_=S+d|0)>>>0>>0?a+1|0:a,t=UI(_^D,a^R,1),a=(D=f)+BA|0,a=((n=t+j|0)>>>0>>0?a+1|0:a)+y|0,y=UI(p^(w=w+n|0),(a=w>>>0>>0?a+1|0:a)^O,32),n=a,S=t,a=(p=f)+u|0,a=(t=y+G|0)>>>0>>0?a+1|0:a,G=t,t^=S,S=a,t=UI(t,a^D,40),a=Q+(u=f)|0,a=((D=t+g|0)>>>0>>0?a+1|0:a)+n|0,d=a=(n=D)>>>0>(D=D+w|0)>>>0?a+1|0:a,p=UI(y^D,a^p,48),IA=a=f,w=a,y=UI(q^W,L^hA,1),l=a=f,W=r,a=a+wA|0,a=v+((r=y+V|0)>>>0>>0?a+1|0:a)|0,n=F,F=a=(r=r+Y|0)>>>0>>0?a+1|0:a,n=UI(c^r,n^a,32),a=($=f)+W|0,Y=_=n+_|0,c=UI(_^y,(c=l)^(l=_>>>0>>0?a+1|0:a),40),a=GA+(W=f)|0,a=F+((_=c+_A|0)>>>0<_A>>>0?a+1|0:a)|0,v=_=_+r|0,q=a=_>>>0>>0?a+1|0:a,r=a,a=m+tA|0,a=((y=z+x|0)>>>0>>0?a+1|0:a)+r|0,F=a=(r=_+y|0)>>>0>>0?a+1|0:a,_=UI(r^p,a^w,32),a=(O=f)+AA|0,w=UI((y=_+H|0)^x,(a=y>>>0<_>>>0?a+1|0:a)^m,40),x=a,a=P+(R=f)|0,a=F+((L=w+aA|0)>>>0>>0?a+1|0:a)|0,a=(F=r+L|0)>>>0>>0?a+1|0:a,r=O,O=a,r=UI(_^F,r^a,48),a=(a=x)+(x=f)|0,_=(y=r+y|0)^w,w=a=y>>>0>>0?a+1|0:a,R=a=UI(_,a^R,1),L=_=f,m=s,s=c,c=UI(n^v,q^$,48),a=(a=l)+(l=f)|0,Y=_=c+Y|0,n=W,W=a=_>>>0>>0?a+1|0:a,s=UI(_^s,n^a,1),a=(v=f)+kA|0,a=d+((_=s+eA|0)>>>0>>0?a+1|0:a)|0,n=D,D=_+D|0,_=K,K=a=n>>>0>D>>>0?a+1|0:a,_=UI(D^m,_^a,32),a=(a=N)+(N=f)|0,d=a=(n=_+k|0)>>>0<_>>>0?a+1|0:a,k=n,s=UI(s^n,a^v,40),a=wA+($=f)|0,v=s,a=K+((s=V+s|0)>>>0>>0?a+1|0:a)|0,K=a=(n=s+D|0)>>>0>>0?a+1|0:a,s=UI(_^n,a^N,48),a=(a=d)+(d=f)|0,q=_=s+k|0,m=a=_>>>0>>0?a+1|0:a,k=e,a=S+IA|0,e=a=(_=p+G|0)>>>0

>>0?a+1|0:a,t=UI(_^t,a^u,1),a=sA+(p=f)|0,a=b+((D=t+gA|0)>>>0>>0?a+1|0:a)|0,S=(D=h+D|0)^k,k=a=D>>>0>>0?a+1|0:a,h=UI(S,a^J,32),N=a=f,S=t,a=a+W|0,a=(t=h+Y|0)>>>0>>0?a+1|0:a,G=t,t^=S,S=a,t=UI(t,a^p,40),a=Q+(u=f)|0,a=k+((p=t+g|0)>>>0>>0?a+1|0:a)|0,b=a=(p=D+p|0)>>>0>>0?a+1|0:a,k=UI(h^p,a^N,48),IA=a=f,D=a,h=UI(M^H,T^AA,1),Y=a=f,H=e,a=a+B|0,a=Z+((e=h+fA|0)>>>0>>0?a+1|0:a)|0,U=a=(e=e+U|0)>>>0>>0?a+1|0:a,N=UI(c^e,a^l,32),a=(CA=f)+H|0,H=_=N+_|0,c=UI(_^h,(M=_>>>0>>0?a+1|0:a)^Y,40),a=X+(l=f)|0,a=U+((_=I+c|0)>>>0>>0?a+1|0:a)|0,U=_=_+e|0,W=a=_>>>0>>0?a+1|0:a,e=a,a=L+pA|0,a=((h=R+EA|0)>>>0>>0?a+1|0:a)+e|0,Y=a=(e=_+h|0)>>>0>>0?a+1|0:a,_=UI(e^k,a^D,32),a=(Z=f)+m|0,D=UI((h=_+q|0)^R,(a=h>>>0<_>>>0?a+1|0:a)^L,40),J=a,a=NA+(R=f)|0,a=Y+((L=D+cA|0)>>>0>>0?a+1|0:a)|0,a=(Y=e+L|0)>>>0>>0?a+1|0:a,e=Z,Z=a,e=UI(_^Y,e^a,48),a=(a=J)+(J=f)|0,_=(h=e+h|0)^D,D=a=h>>>0>>0?a+1|0:a,R=a=UI(_,a^R,1),hA=a,L=_=f,AA=y,T=s,y=c,c=UI(N^U,W^CA,48),a=(N=f)+M|0,U=_=c+H|0,H=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^l,1),a=(l=f)+yA|0,a=b+((_=y+rA|0)>>>0>>0?a+1|0:a)|0,p=a=(s=_+p|0)>>>0

>>0?a+1|0:a,_=UI(s^T,a^d,32),a=(M=f)+w|0,d=a=(w=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^w,a^l,40),a=FA+(CA=f)|0,b=y,a=p+((y=QA+y|0)>>>0>>0?a+1|0:a)|0,p=y+s|0,y=M,M=a=p>>>0>>0?a+1|0:a,y=UI(_^p,y^a,48),a=(a=d)+(d=f)|0,l=_=y+w|0,W=a=_>>>0>>0?a+1|0:a,s=r,a=S+IA|0,r=a=(_=k+G|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^u,1),a=(k=f)+GA|0,a=K+((w=t+_A|0)>>>0>>0?a+1|0:a)|0,s=UI(s^(w=w+n|0),(a=w>>>0>>0?a+1|0:a)^x,32),S=n=f,n=a,G=t,a=S+H|0,a=(t=s+U|0)>>>0>>0?a+1|0:a,U=t,t^=G,G=a,t=UI(t,a^k,40),a=DA+(u=f)|0,a=((k=t+oA|0)>>>0>>0?a+1|0:a)+n|0,K=S,S=a=(n=w+k|0)>>>0>>0?a+1|0:a,k=UI(s^n,K^a,48),IA=a=f,w=a,s=UI(q^v,m^$,1),H=a=f,K=r,a=a+BA|0,a=O+((r=s+j|0)>>>0>>0?a+1|0:a)|0,F=a=(r=r+F|0)>>>0>>0?a+1|0:a,N=UI(c^r,a^N,32),a=($=f)+K|0,K=_=N+_|0,c=UI(_^s,(c=H)^(H=_>>>0>>0?a+1|0:a),40),a=SA+(v=f)|0,a=F+((_=c+iA|0)>>>0>>0?a+1|0:a)|0,q=_=_+r|0,O=a=_>>>0>>0?a+1|0:a,r=a,a=L+Q|0,a=((s=R+g|0)>>>0>>0?a+1|0:a)+r|0,F=a=(r=_+s|0)>>>0>>0?a+1|0:a,_=UI(r^k,a^w,32),a=(R=f)+W|0,w=UI((s=_+l|0)^hA,(a=s>>>0<_>>>0?a+1|0:a)^L,40),L=a,a=kA+(x=f)|0,a=F+((m=w+eA|0)>>>0>>0?a+1|0:a)|0,a=(F=r+m|0)>>>0>>0?a+1|0:a,r=R,R=a,r=UI(_^F,r^a,48),a=(a=L)+(L=f)|0,_=(s=r+s|0)^w,w=a=s>>>0>>0?a+1|0:a,x=a=UI(_,a^x,1),m=_=f,AA=h,T=y,y=c,c=UI(N^q,O^$,48),a=(N=f)+H|0,H=_=c+K|0,K=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^v,1),a=(v=f)+FA|0,a=S+((_=y+QA|0)>>>0>>0?a+1|0:a)|0,n=a=(h=_+n|0)>>>0>>0?a+1|0:a,_=UI(h^T,a^d,32),a=(S=f)+D|0,d=a=(D=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^D,a^v,40),a=BA+($=f)|0,v=y,a=n+((y=j+y|0)>>>0>>0?a+1|0:a)|0,n=y+h|0,y=S,S=a=n>>>0>>0?a+1|0:a,y=UI(_^n,y^a,48),a=(a=d)+(d=f)|0,q=_=y+D|0,O=a=_>>>0>>0?a+1|0:a,h=e,a=G+IA|0,e=a=(_=k+U|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^u,1),a=SA+(k=f)|0,a=M+((D=t+iA|0)>>>0>>0?a+1|0:a)|0,p=a=(D=D+p|0)>>>0

>>0?a+1|0:a,h=UI(h^D,a^J,32),U=a=f,G=t,a=a+K|0,a=(t=h+H|0)>>>0>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=pA+(H=f)|0,a=p+((k=t+EA|0)>>>0>>0?a+1|0:a)|0,a=(p=D+k|0)>>>0>>0?a+1|0:a,D=U,U=a,k=UI(h^p,D^a,48),IA=a=f,D=a,h=UI(b^l,W^CA,1),K=a=f,M=e,a=a+X|0,a=Z+((e=I+h|0)>>>0>>0?a+1|0:a)|0,Y=a=(e=e+Y|0)>>>0>>0?a+1|0:a,N=UI(c^e,a^N,32),a=(CA=f)+M|0,M=_=N+_|0,c=UI(_^h,(c=K)^(K=_>>>0>>0?a+1|0:a),40),a=wA+(b=f)|0,a=Y+((_=c+V|0)>>>0>>0?a+1|0:a)|0,l=_=_+e|0,W=a=_>>>0>>0?a+1|0:a,e=a,a=m+sA|0,a=((h=x+gA|0)>>>0>>0?a+1|0:a)+e|0,Y=a=(e=_+h|0)>>>0>>0?a+1|0:a,_=UI(e^k,a^D,32),a=(Z=f)+O|0,D=UI((h=_+q|0)^x,(a=h>>>0<_>>>0?a+1|0:a)^m,40),x=a,a=B+(J=f)|0,a=Y+((m=D+fA|0)>>>0>>0?a+1|0:a)|0,a=(Y=e+m|0)>>>0>>0?a+1|0:a,e=Z,Z=a,e=UI(_^Y,e^a,48),a=(a=x)+(x=f)|0,_=(h=e+h|0)^D,D=a=h>>>0>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=s,T=y,y=c,c=UI(N^l,W^CA,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^b,1),a=(b=f)+tA|0,a=U+((_=y+z|0)>>>0>>0?a+1|0:a)|0,p=a=(s=_+p|0)>>>0

>>0?a+1|0:a,_=UI(s^T,a^d,32),a=(U=f)+w|0,d=a=(w=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^w,a^b,40),a=GA+(CA=f)|0,b=y,a=p+((y=_A+y|0)>>>0<_A>>>0?a+1|0:a)|0,p=y+s|0,y=U,U=a=p>>>0>>0?a+1|0:a,y=UI(_^p,y^a,48),a=(a=d)+(d=f)|0,l=_=y+w|0,W=a=_>>>0>>0?a+1|0:a,s=r,a=G+IA|0,r=a=(_=k+u|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^H,1),a=(k=f)+DA|0,a=S+((w=t+oA|0)>>>0>>0?a+1|0:a)|0,n=a=(w=w+n|0)>>>0>>0?a+1|0:a,s=UI(s^w,a^L,32),S=a=f,G=t,a=a+M|0,a=(t=s+K|0)>>>0>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=yA+(H=f)|0,a=n+((k=t+rA|0)>>>0>>0?a+1|0:a)|0,K=S,S=a=(n=w+k|0)>>>0>>0?a+1|0:a,k=UI(s^n,K^a,48),IA=a=f,w=a,s=UI(q^v,O^$,1),K=a=f,M=r,a=a+P|0,a=R+((r=s+aA|0)>>>0>>0?a+1|0:a)|0,F=a=(r=r+F|0)>>>0>>0?a+1|0:a,N=UI(c^r,a^N,32),a=($=f)+M|0,M=_=N+_|0,c=UI(_^s,(c=K)^(K=_>>>0>>0?a+1|0:a),40),a=NA+(v=f)|0,a=F+((_=c+cA|0)>>>0>>0?a+1|0:a)|0,q=_=_+r|0,O=a=_>>>0>>0?a+1|0:a,r=a,a=m+B|0,a=((s=J+fA|0)>>>0>>0?a+1|0:a)+r|0,F=a=(r=_+s|0)>>>0>>0?a+1|0:a,_=UI(r^k,a^w,32),a=(R=f)+W|0,w=UI((s=_+l|0)^J,(a=s>>>0<_>>>0?a+1|0:a)^m,40),L=a,a=SA+(J=f)|0,a=F+((m=w+iA|0)>>>0>>0?a+1|0:a)|0,a=(F=r+m|0)>>>0>>0?a+1|0:a,r=R,R=a,r=UI(_^F,r^a,48),a=(a=L)+(L=f)|0,_=(s=r+s|0)^w,w=a=s>>>0>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=h,T=y,y=c,c=UI(N^q,O^$,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^v,1),a=(v=f)+P|0,a=S+((_=y+aA|0)>>>0>>0?a+1|0:a)|0,n=a=(h=_+n|0)>>>0>>0?a+1|0:a,_=UI(h^T,a^d,32),a=(S=f)+D|0,d=a=(D=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^D,a^v,40),a=yA+($=f)|0,v=y,a=n+((y=rA+y|0)>>>0>>0?a+1|0:a)|0,n=y+h|0,y=S,S=a=n>>>0>>0?a+1|0:a,y=UI(_^n,y^a,48),a=(a=d)+(d=f)|0,q=_=y+D|0,O=a=_>>>0>>0?a+1|0:a,h=e,a=G+IA|0,e=a=(_=k+u|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^H,1),a=DA+(k=f)|0,a=U+((D=t+oA|0)>>>0>>0?a+1|0:a)|0,p=a=(D=D+p|0)>>>0

>>0?a+1|0:a,h=UI(h^D,a^x,32),U=a=f,G=t,a=a+M|0,a=(t=h+K|0)>>>0>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=GA+(H=f)|0,a=p+((k=t+_A|0)>>>0<_A>>>0?a+1|0:a)|0,a=(p=D+k|0)>>>0>>0?a+1|0:a,D=U,U=a,k=UI(h^p,D^a,48),IA=a=f,D=a,h=UI(b^l,W^CA,1),K=a=f,M=e,a=a+BA|0,a=Z+((e=h+j|0)>>>0>>0?a+1|0:a)|0,Y=a=(e=e+Y|0)>>>0>>0?a+1|0:a,N=UI(c^e,a^N,32),a=(CA=f)+M|0,M=_=N+_|0,c=UI(_^h,(c=K)^(K=_>>>0>>0?a+1|0:a),40),a=NA+(b=f)|0,a=Y+((_=c+cA|0)>>>0>>0?a+1|0:a)|0,l=_=_+e|0,W=a=_>>>0>>0?a+1|0:a,e=a,a=m+wA|0,a=((h=J+V|0)>>>0>>0?a+1|0:a)+e|0,Y=a=(e=_+h|0)>>>0>>0?a+1|0:a,_=UI(e^k,a^D,32),a=(Z=f)+O|0,D=UI((h=_+q|0)^J,(a=h>>>0<_>>>0?a+1|0:a)^m,40),x=a,a=X+(J=f)|0,a=Y+((m=I+D|0)>>>0>>0?a+1|0:a)|0,a=(Y=e+m|0)>>>0>>0?a+1|0:a,e=Z,Z=a,e=UI(_^Y,e^a,48),a=(a=x)+(x=f)|0,_=(h=e+h|0)^D,D=a=h>>>0>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=s,T=y,y=c,c=UI(N^l,W^CA,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^b,1),a=(b=f)+pA|0,a=U+((_=y+EA|0)>>>0>>0?a+1|0:a)|0,p=a=(s=_+p|0)>>>0

>>0?a+1|0:a,_=UI(s^T,a^d,32),a=(U=f)+w|0,d=a=(w=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^w,a^b,40),a=Q+(CA=f)|0,b=y,a=p+((y=g+y|0)>>>0>>0?a+1|0:a)|0,p=y+s|0,y=U,U=a=p>>>0>>0?a+1|0:a,y=UI(_^p,y^a,48),a=(a=d)+(d=f)|0,l=_=y+w|0,W=a=_>>>0>>0?a+1|0:a,s=r,a=G+IA|0,r=a=(_=k+u|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^H,1),a=(k=f)+sA|0,a=S+((w=t+gA|0)>>>0>>0?a+1|0:a)|0,n=a=(w=w+n|0)>>>0>>0?a+1|0:a,s=UI(s^w,a^L,32),S=a=f,G=t,a=a+M|0,a=(t=s+K|0)>>>0>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=FA+(H=f)|0,a=n+((k=t+QA|0)>>>0>>0?a+1|0:a)|0,K=S,S=a=(n=w+k|0)>>>0>>0?a+1|0:a,k=UI(s^n,K^a,48),IA=a=f,w=a,s=UI(q^v,O^$,1),K=a=f,M=r,a=a+kA|0,a=R+((r=s+eA|0)>>>0>>0?a+1|0:a)|0,F=a=(r=r+F|0)>>>0>>0?a+1|0:a,N=UI(c^r,a^N,32),a=($=f)+M|0,M=_=N+_|0,c=UI(_^s,(c=K)^(K=_>>>0>>0?a+1|0:a),40),a=tA+(v=f)|0,a=F+((_=c+z|0)>>>0>>0?a+1|0:a)|0,q=_=_+r|0,O=a=_>>>0>>0?a+1|0:a,r=a,a=m+NA|0,a=((s=J+cA|0)>>>0>>0?a+1|0:a)+r|0,F=a=(r=_+s|0)>>>0>>0?a+1|0:a,_=UI(r^k,a^w,32),a=(R=f)+W|0,w=UI((s=_+l|0)^J,(a=s>>>0<_>>>0?a+1|0:a)^m,40),L=a,a=yA+(J=f)|0,a=F+((m=w+rA|0)>>>0>>0?a+1|0:a)|0,a=(F=r+m|0)>>>0>>0?a+1|0:a,r=R,R=a,r=UI(_^F,r^a,48),a=(a=L)+(L=f)|0,_=(s=r+s|0)^w,w=a=s>>>0>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=h,T=y,y=c,c=UI(N^q,O^$,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^v,1),a=(v=f)+SA|0,a=S+((_=y+iA|0)>>>0>>0?a+1|0:a)|0,n=a=(h=_+n|0)>>>0>>0?a+1|0:a,_=UI(h^T,a^d,32),a=(S=f)+D|0,d=a=(D=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^D,a^v,40),a=B+($=f)|0,v=y,a=n+((y=fA+y|0)>>>0>>0?a+1|0:a)|0,n=y+h|0,y=S,S=a=n>>>0>>0?a+1|0:a,y=UI(_^n,y^a,48),a=(a=d)+(d=f)|0,q=_=y+D|0,O=a=_>>>0>>0?a+1|0:a,h=e,a=G+IA|0,e=a=(_=k+u|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^H,1),a=FA+(k=f)|0,a=U+((D=t+QA|0)>>>0>>0?a+1|0:a)|0,p=a=(D=D+p|0)>>>0

>>0?a+1|0:a,h=UI(h^D,a^x,32),U=a=f,G=t,a=a+M|0,a=(t=h+K|0)>>>0>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=P+(H=f)|0,a=p+((k=t+aA|0)>>>0>>0?a+1|0:a)|0,a=(p=D+k|0)>>>0>>0?a+1|0:a,D=U,U=a,k=UI(h^p,D^a,48),IA=a=f,D=a,h=UI(b^l,W^CA,1),K=a=f,M=e,a=a+GA|0,a=Z+((e=h+_A|0)>>>0<_A>>>0?a+1|0:a)|0,Y=a=(e=e+Y|0)>>>0>>0?a+1|0:a,N=UI(c^e,a^N,32),a=(CA=f)+M|0,M=_=N+_|0,c=UI(_^h,(c=K)^(K=_>>>0>>0?a+1|0:a),40),a=kA+(b=f)|0,a=Y+((_=c+eA|0)>>>0>>0?a+1|0:a)|0,l=_=_+e|0,W=a=_>>>0>>0?a+1|0:a,e=a,a=m+DA|0,a=((h=J+oA|0)>>>0>>0?a+1|0:a)+e|0,Y=a=(e=_+h|0)>>>0>>0?a+1|0:a,_=UI(e^k,a^D,32),a=(Z=f)+O|0,D=UI((h=_+q|0)^J,(a=h>>>0<_>>>0?a+1|0:a)^m,40),x=a,a=Q+(J=f)|0,a=Y+((m=D+g|0)>>>0>>0?a+1|0:a)|0,a=(Y=e+m|0)>>>0>>0?a+1|0:a,e=Z,Z=a,e=UI(_^Y,e^a,48),a=(a=x)+(x=f)|0,_=(h=e+h|0)^D,D=a=h>>>0>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=s,T=y,y=c,c=UI(N^l,W^CA,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^b,1),a=(l=f)+BA|0,a=U+((_=y+j|0)>>>0>>0?a+1|0:a)|0,p=a=(s=_+p|0)>>>0

>>0?a+1|0:a,_=UI(s^T,a^d,32),a=(U=f)+w|0,d=w=_+AA|0,b=a=w>>>0<_>>>0?a+1|0:a,y=UI(y^w,a^l,40),a=wA+(AA=f)|0,l=y,a=p+((y=V+y|0)>>>0>>0?a+1|0:a)|0,w=y+s|0,y=U,U=a=w>>>0>>0?a+1|0:a,y=UI(_^w,y^a,48),a=(a=b)+(b=f)|0,d=_=y+d|0,W=a=_>>>0>>0?a+1|0:a,s=r,a=G+IA|0,r=a=(_=k+u|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^H,1),a=(k=f)+X|0,a=S+((p=I+t|0)>>>0>>0?a+1|0:a)|0,n=a=(p=p+n|0)>>>0>>0?a+1|0:a,S=s=UI(s^p,a^L,32),G=a=f,u=t,a=a+M|0,a=(t=s+K|0)>>>0>>0?a+1|0:a,H=t,t^=u,u=a,t=UI(t,a^k,40),a=pA+(K=f)|0,a=n+((s=t+EA|0)>>>0>>0?a+1|0:a)|0,M=(s=s+p|0)^S,S=a=s>>>0

>>0?a+1|0:a,p=UI(M,a^G,48),L=a=f,k=a,G=n=UI(q^v,O^$,1),M=a=f,v=r,a=a+tA|0,a=R+((r=n+z|0)>>>0>>0?a+1|0:a)|0,a=(r=r+F|0)>>>0>>0?a+1|0:a,F=N,N=a,n=UI(c^r,F^a,32),a=(T=f)+v|0,F=_=n+_|0,c=UI(c=_^G,(G=_>>>0>>0?a+1|0:a)^M,40),a=sA+(M=f)|0,a=N+((_=c+gA|0)>>>0>>0?a+1|0:a)|0,N=_=_+r|0,v=a=_>>>0>>0?a+1|0:a,r=a,a=m+wA|0,a=((R=V)>>>0>(V=J+V|0)>>>0?a+1|0:a)+r|0,wA=a=(_=_+V|0)>>>0>>0?a+1|0:a,V=UI(_^p,a^k,32),a=(q=f)+W|0,k=UI((r=d+V|0)^J,(a=r>>>0>>0?a+1|0:a)^m,40),R=a,a=pA+(O=f)|0,a=wA+((J=EA)>>>0>(EA=k+EA|0)>>>0?a+1|0:a)|0,a=(EA=_+EA|0)>>>0<_>>>0?a+1|0:a,_=V^EA,V=a,pA=UI(_,a^q,48);a=(wA=f)+R|0,r=a=(_=r+pA|0)>>>0>>0?a+1|0:a,a=UI(_^k,a^O,1),k=f,q=a,O=h,h=gA,R=sA,sA=UI(n^N,v^T,48),a=(n=f)+G|0,G=h,F=a=(gA=F+sA|0)>>>0>>0?a+1|0:a,h=UI(c^(N=gA),a^M,1),a=(M=f)+R|0,a=S+(h>>>0>(gA=G+h|0)>>>0?a+1|0:a)|0,c=a=(gA=s+gA|0)>>>0>>0?a+1|0:a,y=UI(y^gA,a^b,32),a=(a=D)+(D=f)|0,S=s=y+O|0,G=a=s>>>0>>0?a+1|0:a,s=UI(s^h,a^M,40),a=(M=f)+SA|0,a=(s>>>0>(iA=s+iA|0)>>>0?a+1|0:a)+c|0,c=a=(c=iA)>>>0>(iA=gA+iA|0)>>>0?a+1|0:a,y=UI(y^iA,a^D,48),a=(h=f)+G|0,D=gA=y+S|0,SA=a=gA>>>0>>0?a+1|0:a,S=I,G=X,a=u+L|0,gA=a=(I=p+H|0)>>>0

>>0?a+1|0:a,X=UI(I^t,a^K,1),a=(p=f)+G|0,a=U+((t=S+X|0)>>>0>>0?a+1|0:a)|0,e=UI((t=t+w|0)^e,(a=t>>>0>>0?a+1|0:a)^x,32),S=a,U=oA,oA=X,a=(w=f)+F|0,F=p,p=a=(X=e+N|0)>>>0>>0?a+1|0:a,oA=UI(X^oA,F^a,40),a=(N=f)+DA|0,a=((DA=U+oA|0)>>>0>>0?a+1|0:a)+S|0,S=DA,t=e^(DA=t+DA|0),e=a=S>>>0>DA>>>0?a+1|0:a,a=UI(t,a^w,48),u=t=f,w=a,F=j,S=BA,j=UI(d^l,W^AA,1),G=a=f,a=a+NA|0,a=Z+((j=(U=j)+cA|0)>>>0>>0?a+1|0:a)|0,cA=a=(j=Y+j|0)>>>0>>0?a+1|0:a,BA=UI(j^sA,a^n,32),a=(Y=f)+gA|0,gA=I=BA+I|0,sA=UI(I^U,(n=I>>>0>>0?a+1|0:a)^G,40),a=(a=S)+(S=f)|0,a=cA+((I=sA+F|0)>>>0>>0?a+1|0:a)|0,cA=I=I+j|0,NA=a=I>>>0>>0?a+1|0:a,j=a,a=k+FA|0,a=((U=QA)>>>0>(QA=q+QA|0)>>>0?a+1|0:a)+j|0,FA=a=(j=I+QA|0)>>>0>>0?a+1|0:a,QA=UI(w^j,a^t,32),a=(U=f)+SA|0,t=I=QA+D|0,I=UI(I^q,(F=k)^(k=I>>>0>>0?a+1|0:a),40),a=GA+(G=f)|0,GA=I,a=FA+((I=_A+I|0)>>>0<_A>>>0?a+1|0:a)|0,a=(I=I+j|0)>>>0>>0?a+1|0:a,FA=I,H=(o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24)^I,F=a,K=a^(o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24),j=UI(BA^cA,Y^NA,48),a=(cA=f)+n|0,n=I=j+gA|0,NA=a=I>>>0>>0?a+1|0:a,BA=rA,a=p+u|0,rA=a=(I=w+X|0)>>>0>>0?a+1|0:a,oA=UI(I^oA,a^N,1),a=(w=f)+yA|0,a=((BA=oA+BA|0)>>>0>>0?a+1|0:a)+c|0,BA=a=(yA=BA+iA|0)>>>0>>0?a+1|0:a,gA=UI(yA^pA,a^wA,32),a=(X=f)+NA|0,iA=a=(_A=gA+n|0)>>>0>>0?a+1|0:a,pA=gA,gA=UI(oA^_A,a^w,40),a=(c=f)+kA|0,a=(gA>>>0>(oA=gA+eA|0)>>>0?a+1|0:a)+BA|0,p=X,X=a=(yA=oA+yA|0)>>>0>>0?a+1|0:a,oA=UI(pA^(eA=yA),p^a,48),a=(w=f)+iA|0,a=(BA=oA+_A|0)>>>0>>0?a+1|0:a,_A=BA,BA^=H,C[A+8|0]=BA,C[A+9|0]=BA>>>8,C[A+10|0]=BA>>>16,C[A+11|0]=BA>>>24,iA=a,a^=K,C[A+12|0]=a,C[A+13|0]=a>>>8,C[A+14|0]=a>>>16,C[A+15|0]=a>>>24,yA=I,BA=rA,I=j,j=UI(s^D,M^SA,1),a=(kA=f)+Q|0,a=(j>>>0>(rA=j+g|0)>>>0?a+1|0:a)+V|0,EA=a=(D=rA)>>>0>(rA=EA+rA|0)>>>0?a+1|0:a,I=UI(I^rA,a^cA,32),a=(a=BA)+(BA=f)|0,cA=a=(yA=I+yA|0)>>>0>>0?a+1|0:a,pA=I,yA=UI(j^(V=yA),a^kA,40),a=(s=f)+B|0,a=EA+((I=yA+fA|0)>>>0>>0?a+1|0:a)|0,a=(I=I+rA|0)>>>0>>0?a+1|0:a,EA=I,I^=pA,pA=a,rA=UI(I,a^BA,48),a=(D=f)+cA|0,V=I=rA+V|0,cA=I>>>0>>0?a+1|0:a,sA=I=UI(n^sA,S^NA,1),kA=a=f,a=a+P|0,a=e+((I=I+aA|0)>>>0>>0?a+1|0:a)|0,P=a=(j=I+DA|0)>>>0>>0?a+1|0:a,I=(BA=UI(y^j,a^h,32))+_|0,a=(_=f)+r|0,DA=I,I=(aA=UI(e=I^sA,(sA=I>>>0>>0?a+1|0:a)^kA,40))+z|0,a=(z=f)+tA|0,a=P+(I>>>0>>0?a+1|0:a)|0,a=(P=I+j|0)>>>0>>0?a+1|0:a,j=P^KA^V,C[0|(I=A)]=j,C[I+1|0]=j>>>8,C[I+2|0]=j>>>16,C[I+3|0]=j>>>24,j=a^i^cA,C[I+4|0]=j,C[I+5|0]=j>>>8,C[I+6|0]=j>>>16,C[I+7|0]=j>>>24,j=(BA=UI(P^BA,a^_,48))+DA|0,a=(DA=f)+sA|0,a=(sA=j>>>0>>0?a+1|0:a)^(o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24)^pA,P=(o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24)^EA^j,C[I+16|0]=P,C[I+17|0]=P>>>8,C[I+18|0]=P>>>16,C[I+19|0]=P>>>24,C[I+20|0]=a,C[I+21|0]=a>>>8,C[I+22|0]=a>>>16,C[I+23|0]=a>>>24,I=UI(QA^FA,F^U,48),P=f,EA=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,a=(o[A+32|0]|o[A+33|0]<<8|o[A+34|0]<<16|o[A+35|0]<<24)^UI(gA^_A,c^iA,1)^I,C[A+32|0]=a,C[A+33|0]=a>>>8,C[A+34|0]=a>>>16,C[A+35|0]=a>>>24,a=f^EA^P,C[A+36|0]=a,C[A+37|0]=a>>>8,C[A+38|0]=a>>>16,C[A+39|0]=a>>>24,a=k+P|0,a=(EA=I+t|0)>>>0>>0?a+1|0:a,gA=(o[(I=A)+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24)^X^a,P=(o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24)^eA^EA,C[I+24|0]=P,C[I+25|0]=P>>>8,C[I+26|0]=P>>>16,C[I+27|0]=P>>>24,C[I+28|0]=gA,C[I+29|0]=gA>>>8,C[I+30|0]=gA>>>16,C[I+31|0]=gA>>>24,gA=o[I+44|0]|o[I+45|0]<<8|o[I+46|0]<<16|o[I+47|0]<<24,I=rA^(o[I+40|0]|o[I+41|0]<<8|o[I+42|0]<<16|o[I+43|0]<<24)^UI(j^aA,z^sA,1),C[A+40|0]=I,C[A+41|0]=I>>>8,C[A+42|0]=I>>>16,C[A+43|0]=I>>>24,I=D^f^gA,C[A+44|0]=I,C[A+45|0]=I>>>8,C[A+46|0]=I>>>16,C[A+47|0]=I>>>24,j=o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24,I=BA^(o[A+56|0]|o[A+57|0]<<8|o[A+58|0]<<16|o[A+59|0]<<24)^UI(V^yA,s^cA,1),C[A+56|0]=I,C[A+57|0]=I>>>8,C[A+58|0]=I>>>16,C[A+59|0]=I>>>24,I=DA^f^j,C[A+60|0]=I,C[A+61|0]=I>>>8,C[A+62|0]=I>>>16,C[A+63|0]=I>>>24,j=o[A+52|0]|o[A+53|0]<<8|o[A+54|0]<<16|o[A+55|0]<<24,I=oA^(o[A+48|0]|o[A+49|0]<<8|o[A+50|0]<<16|o[A+51|0]<<24)^UI(EA^GA,a^G,1),C[A+48|0]=I,C[A+49|0]=I>>>8,C[A+50|0]=I>>>16,C[A+51|0]=I>>>24,I=w^f^j,C[A+52|0]=I,C[A+53|0]=I>>>8,C[A+54|0]=I>>>16,C[A+55|0]=I>>>24}function w(A,I,g,B,Q,E,a){var _,c,t,r,e,y,h,D,p,w,n,k,F,N,G,M,K,U,b,H,Y,J,d,m,l,u,x,v,R,L,P,q,z,X,O,W,V,Z,T,$,AA,IA,gA,CA,BA,QA,iA,oA,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,fA=0,pA=0,wA=0,kA=0,FA=0,NA=0,GA=0,MA=0,KA=0,UA=0,bA=0,HA=0,YA=0,JA=0,dA=0,mA=0,lA=0,uA=0,xA=0,vA=0,RA=0,LA=0,PA=0,qA=0,zA=0,jA=0,XA=0,OA=0,WA=0,VA=0,ZA=0,TA=0,$A=0,AI=0,II=0;return s=t=s-560|0,SI(_A=t+352|0),a&&SA(_A,35600,34,0),FI(t+288|0,E,32,0),SA(rA=t+352|0,t+320|0,32,0),SA(rA,g,B,Q),j(rA,yA=t+224|0),hA=o[(aA=E)+32|0]|o[aA+33|0]<<8|o[aA+34|0]<<16|o[aA+35|0]<<24,DA=o[aA+36|0]|o[aA+37|0]<<8|o[aA+38|0]<<16|o[aA+39|0]<<24,cA=o[aA+40|0]|o[aA+41|0]<<8|o[aA+42|0]<<16|o[aA+43|0]<<24,EA=o[aA+44|0]|o[aA+45|0]<<8|o[aA+46|0]<<16|o[aA+47|0]<<24,_A=o[aA+48|0]|o[aA+49|0]<<8|o[aA+50|0]<<16|o[aA+51|0]<<24,E=o[aA+52|0]|o[aA+53|0]<<8|o[aA+54|0]<<16|o[aA+55|0]<<24,tA=o[aA+60|0]|o[aA+61|0]<<8|o[aA+62|0]<<16|o[aA+63|0]<<24,aA=o[aA+56|0]|o[aA+57|0]<<8|o[aA+58|0]<<16|o[aA+59|0]<<24,C[A+56|0]=aA,C[A+57|0]=aA>>>8,C[A+58|0]=aA>>>16,C[A+59|0]=aA>>>24,C[A+60|0]=tA,C[A+61|0]=tA>>>8,C[A+62|0]=tA>>>16,C[A+63|0]=tA>>>24,C[A+48|0]=_A,C[A+49|0]=_A>>>8,C[A+50|0]=_A>>>16,C[A+51|0]=_A>>>24,C[A+52|0]=E,C[A+53|0]=E>>>8,C[A+54|0]=E>>>16,C[A+55|0]=E>>>24,C[A+40|0]=cA,C[A+41|0]=cA>>>8,C[A+42|0]=cA>>>16,C[A+43|0]=cA>>>24,C[A+44|0]=EA,C[A+45|0]=EA>>>8,C[A+46|0]=EA>>>16,C[A+47|0]=EA>>>24,C[0|(E=A+32|0)]=hA,C[E+1|0]=hA>>>8,C[E+2|0]=hA>>>16,C[E+3|0]=hA>>>24,C[E+4|0]=DA,C[E+5|0]=DA>>>8,C[E+6|0]=DA>>>16,C[E+7|0]=DA>>>24,S(yA),nA(t,yA),tg(A,t),SI(rA),a&&SA(rA,35600,34,0),SA(a=t+352|0,A,64,0),SA(a,g,B,Q),j(a,eA=t+160|0),S(eA),C[t+288|0]=248&o[t+288|0],C[t+319|0]=63&o[t+319|0]|64,g=o[23+(A=c=t+288|0)|0],cA=Ig(r=o[A+21|0]|o[A+22|0]<<8|g<<16&2031616,0,e=(o[eA+28|0]|o[eA+29|0]<<8|o[eA+30|0]<<16|o[eA+31|0]<<24)>>>7|0,0),_A=f,g=(A=o[eA+27|0])>>>24|0,Q=A<<8|(EA=o[eA+23|0]|o[eA+24|0]<<8|o[eA+25|0]<<16|o[eA+26|0]<<24)>>>24,A=Ig(y=2097151&((3&(DA=(A=(B=o[eA+28|0])>>>16|0)|g))<<30|(g=(B<<=16)|Q)>>>2),0,h=(a=o[c+23|0]|o[c+24|0]<<8|o[c+25|0]<<16|o[c+26|0]<<24)>>>5&2097151,0),g=f+_A|0,B=A>>>0>(Q=A+cA|0)>>>0?g+1|0:g,A=Ig(D=(g=o[eA+23|0])<<16&2031616|o[eA+21|0]|o[eA+22|0]<<8,0,p=(o[c+28|0]|o[c+29|0]<<8|o[c+30|0]<<16|o[c+31|0]<<24)>>>7|0,0),B=f+B|0,_A=g=A+Q|0,Q=A>>>0>g>>>0?B+1|0:B,B=(A=o[c+27|0])>>>24|0,a=A<<8|a>>>24,A=Ig(w=2097151&((3&(B|=g=(A=o[c+28|0])>>>16|0))<<30|(g=(A<<=16)|a)>>>2),0,n=EA>>>5&2097151,0),g=f+Q|0,aA=B=A+_A|0,Q=A>>>0>B>>>0?g+1|0:g,EA=Ig(h,0,n,0),_A=f,g=(A=o[c+19|0])>>>24|0,a=A<<8|(GA=o[c+15|0]|o[c+16|0]<<8|o[c+17|0]<<16|o[c+18|0]<<24)>>>24,B=g,g=Ig(k=(7&(B|=g=(A=o[c+20|0])>>>16|0))<<29|(g=(A<<=16)|a)>>>3,DA=B>>>3|0,e,0),A=f+_A|0,A=g>>>0>(B=g+EA|0)>>>0?A+1|0:A,a=(g=Ig(r,0,y,0))+B|0,B=f+A|0,g=g>>>0>(EA=a)>>>0?B+1|0:B,B=(A=o[eA+19|0])>>>24|0,_A=A<<8|(kA=o[eA+15|0]|o[eA+16|0]<<8|o[eA+17|0]<<16|o[eA+18|0]<<24)>>>24,A=Ig(F=(7&(cA=(A=(a=o[eA+20|0])>>>16|0)|B))<<29|(B=(a<<=16)|_A)>>>3,N=cA>>>3|0,p,0),g=f+g|0,g=A>>>0>(B=A+EA|0)>>>0?g+1|0:g,A=Ig(D,0,w,0),g=f+g|0,hA=g=A>>>0>(yA=A+B|0)>>>0?g+1|0:g,fA=A=g-((yA>>>0<4293918720)-1|0)|0,B=(g=A>>>21|0)+Q|0,EA=B=(A=(2097151&A)<<11|(cA=yA- -1048576|0)>>>21)>>>0>(aA=A+aA|0)>>>0?B+1|0:B,wA=A=B-((aA>>>0<4293918720)-1|0)|0,tA=(2097151&A)<<11|(_A=aA- -1048576|0)>>>21,a=A>>>21|0,A=Ig(p,0,n,0),g=f,B=A,A=Ig(e,0,h,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,pA=(A=B)+(B=Ig(y,0,w,0))|0,A=f+g|0,A=B>>>0>pA>>>0?A+1|0:A,rA=pA-(g=-2097152&(B=pA- -1048576|0))|0,g=(A-((131071&(Q=A-((pA>>>0<4293918720)-1|0)|0))+(g>>>0>pA>>>0)|0)|0)+a|0,R=g=(A=tA+rA|0)>>>0>>0?g+1|0:g,L=A,rA=Ig(A,g,470296,0),tA=f,g=Ig(e,0,w,0),A=f,a=g,g=Ig(y,0,p,0),A=f+A|0,g=g>>>0>(a=a+g|0)>>>0?A+1|0:A,A=Q>>>21|0,Q=(2097151&Q)<<11|B>>>21,B=A+g|0,bA=Q=(B=Q>>>0>(a=Q+a|0)>>>0?B+1|0:B)-((a>>>0<4293918720)-1|0)|0,A=a-(g=-2097152&(UA=a- -1048576|0))|0,P=a=B-((131071&Q)+(g>>>0>a>>>0)|0)|0,q=g=aA-(B=-2097152&_A)|0,z=Q=EA-((B>>>0>aA>>>0)+wA|0)|0,X=A,B=Ig(A,a,666643,0),A=f+tA|0,A=B>>>0>(a=B+rA|0)>>>0?A+1|0:A,B=Ig(g,Q,654183,0),g=f+A|0,sA=Q=B+a|0,_A=B>>>0>Q>>>0?g+1|0:g,pA=yA-(A=-2097152&cA)|0,fA=hA-((A>>>0>yA>>>0)+fA|0)|0,g=Ig(y,0,k,DA),B=f,Q=(A=g)+(g=Ig(G=GA>>>6&2097151,0,e,0))|0,A=f+B|0,A=g>>>0>Q>>>0?A+1|0:A,g=Ig(h,0,D,0),B=f+A|0,B=g>>>0>(Q=g+Q|0)>>>0?B+1|0:B,A=Ig(r,0,n,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(p,0,M=kA>>>6&2097151,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,B=Ig(w,0,F,N),g=f+A|0,yA=Q=B+Q|0,a=B>>>0>Q>>>0?g+1|0:g,g=(A=o[c+14|0])>>>24|0,Q=A<<8|(hA=o[c+10|0]|o[c+11|0]<<8|o[c+12|0]<<16|o[c+13|0]<<24)>>>24,g=Ig(K=2097151&((1&(g|=A=(B=o[c+15|0])>>>16|0))<<31|(A=(B<<=16)|Q)>>>1),0,e,0),A=f,B=g,g=Ig(y,0,G,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=Ig(n,0,k,DA))+B|0,B=f+A|0,B=g>>>0>Q>>>0?B+1|0:B,A=Ig(h,0,F,N),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,A=Ig(r,0,D,0),g=f+g|0,cA=B=A+Q|0,Q=A>>>0>B>>>0?g+1|0:g,g=(A=o[eA+14|0])>>>24|0,EA=A<<8|(aA=o[eA+10|0]|o[eA+11|0]<<8|o[eA+12|0]<<16|o[eA+13|0]<<24)>>>24,B=g,g=(A=o[eA+15|0])>>>16|0,g=Ig(U=2097151&((1&(g|=B))<<31|(A=A<<16|EA)>>>1),0,p,0),A=f+Q|0,A=g>>>0>(B=g+cA|0)>>>0?A+1|0:A,g=Ig(w,0,M,0),A=f+A|0,EA=A=g>>>0>(cA=g+B|0)>>>0?A+1|0:A,HA=g=A-((cA>>>0<4293918720)-1|0)|0,B=(A=g>>>21|0)+a|0,tA=B=(g=(2097151&g)<<11|(rA=cA- -1048576|0)>>>21)>>>0>(wA=g+yA|0)>>>0?B+1|0:B,MA=g=B-((wA>>>0<4293918720)-1|0)|0,A=(A=g>>>21|0)+fA|0,O=A=(g=(B=(2097151&g)<<11|(yA=wA- -1048576|0)>>>21)+pA|0)>>>0>>0?A+1|0:A,W=g,A=Ig(g,A,-997805,-1),g=f+_A|0,sA=B=A+sA|0,_A=A>>>0>B>>>0?g+1|0:g,pA=(dA=o[23+(_=t+224|0)|0]|o[_+24|0]<<8|o[_+25|0]<<16|o[_+26|0]<<24)>>>5&2097151,B=Ig(b=(A=o[c+2|0])<<16&2031616|o[0|c]|o[c+1|0]<<8,0,n,0),g=f,Q=(A=Ig(D,0,H=(a=o[c+2|0]|o[c+3|0]<<8|o[c+4|0]<<16|o[c+5|0]<<24)>>>5&2097151,0))+B|0,B=f+g|0,B=A>>>0>Q>>>0?B+1|0:B,A=Ig(Y=(o[c+7|0]|o[c+8|0]<<8|o[c+9|0]<<16|o[c+10|0]<<24)>>>7&2097151,0,M,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(U,0,J=hA>>>4&2097151,0),A=f+g|0,hA=Q=B+Q|0,Q=B>>>0>Q>>>0?A+1|0:A,a=(g=o[c+6|0])<<8|a>>>24,B=A=g>>>24|0,g=(A=o[c+7|0])>>>16|0,g=Ig(d=2097151&((3&(g|=B))<<30|(A=A<<16|a)>>>2),0,F,N),A=f+Q|0,A=g>>>0>(B=g+hA|0)>>>0?A+1|0:A,Q=(g=Ig(G,0,m=(o[eA+7|0]|o[eA+8|0]<<8|o[eA+9|0]<<16|o[eA+10|0]<<24)>>>7&2097151,0))+B|0,B=f+A|0,B=g>>>0>Q>>>0?B+1|0:B,g=Ig(K,0,KA=aA>>>4&2097151,0),A=f+B|0,a=g>>>0>(Q=g+Q|0)>>>0?A+1|0:A,A=(g=o[eA+6|0])>>>24|0,hA=g<<8|(aA=o[eA+2|0]|o[eA+3|0]<<8|o[eA+4|0]<<16|o[eA+5|0]<<24)>>>24,g=A,A=Ig(k,DA,l=2097151&((3&(g|=B=(A=o[eA+7|0])>>>16|0))<<30|(A=A<<16|hA)>>>2),0),g=f+a|0,g=A>>>0>(B=A+Q|0)>>>0?g+1|0:g,Q=B,B=Ig(u=(A=o[eA+2|0])<<16&2031616|o[0|eA]|o[eA+1|0]<<8,0,h,0),A=f+g|0,A=B>>>0>(Q=Q+B|0)>>>0?A+1|0:A,g=Ig(r,0,x=aA>>>5&2097151,0),A=f+A|0,A=g>>>0>(B=g+Q|0)>>>0?A+1|0:A,g=B,hA=B=B+pA|0,a=g=g>>>0>B>>>0?A+1|0:A,Q=o[_+21|0]|o[_+22|0]<<8,A=Ig(D,0,b,0),g=f,aA=(B=A)+(A=Ig(F,N,H,0))|0,B=f+g|0,B=A>>>0>aA>>>0?B+1|0:B,A=Ig(U,0,Y,0),g=f+B|0,g=A>>>0>(aA=A+aA|0)>>>0?g+1|0:g,A=Ig(J,0,KA,0),g=f+g|0,g=A>>>0>(B=A+aA|0)>>>0?g+1|0:g,aA=(A=B)+(B=Ig(M,0,d,0))|0,A=f+g|0,A=B>>>0>aA>>>0?A+1|0:A,g=Ig(G,0,l,0),A=f+A|0,A=g>>>0>(B=g+aA|0)>>>0?A+1|0:A,aA=(g=Ig(K,0,m,0))+B|0,B=f+A|0,B=g>>>0>aA>>>0?B+1|0:B,A=Ig(k,DA,x,0),g=f+B|0,g=A>>>0>(aA=A+aA|0)>>>0?g+1|0:g,A=Ig(r,0,u,0),g=f+g|0,A=A>>>0>(B=A+aA|0)>>>0?g+1|0:g,g=(g=B)>>>0>(B=B+Q|0)>>>0?A+1|0:A,Q=B,B=(A=o[_+23|0])<<16&2031616,A=g,B=A=B>>>0>(Q=Q+B|0)>>>0?A+1|0:A,eA=A=A-((Q>>>0<4293918720)-1|0)|0,g=(g=A>>>21|0)+a|0,A=(g=(a=hA=(A=(2097151&A)<<11|(aA=Q- -1048576|0)>>>21)+hA|0)>>>0>>0?g+1|0:g)+_A|0,A=(_A=a+sA|0)>>>0>>0?A+1|0:A,kA=a- -1048576|0,FA=a=g-((a>>>0<4293918720)-1|0)|0,NA=_A-(g=-2097152&kA)|0,YA=A-((g>>>0>_A>>>0)+a|0)|0,hA=Q,_A=B,A=Ig(q,z,470296,0),g=f,B=A,A=Ig(L,R,666643,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(W,O,654183,0))|0,A=f+g|0,GA=Q,a=B>>>0>Q>>>0?A+1|0:A,g=Ig(F,N,b,0),A=f,B=g,g=Ig(M,0,H,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(Y,0,KA,0))|0,g=f+A|0,g=B>>>0>Q>>>0?g+1|0:g,A=Ig(J,0,m,0),B=f+g|0,B=A>>>0>(Q=A+Q|0)>>>0?B+1|0:B,A=Ig(U,0,d,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(G,0,x,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,g=Ig(K,0,l,0),A=f+A|0,A=g>>>0>(B=g+Q|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(k,DA,u,0))|0,g=f+A|0,pA=Q,B=B>>>0>Q>>>0?g+1|0:g,g=(A=o[_+19|0])>>>24|0,fA=A<<8|(sA=o[_+15|0]|o[_+16|0]<<8|o[_+17|0]<<16|o[_+18|0]<<24)>>>24,B=((JA=(A=(Q=o[_+20|0])>>>16|0)|g)>>>3|0)+B|0,pA=Q=(g=(7&JA)<<29|(g=(Q<<=16)|fA)>>>3)+pA|0,Q=g>>>0>Q>>>0?B+1|0:B,fA=sA>>>6&2097151,A=Ig(M,0,b,0),g=f,B=A,A=Ig(U,0,H,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,sA=(A=B)+(B=Ig(Y,0,m,0))|0,A=f+g|0,A=B>>>0>sA>>>0?A+1|0:A,B=Ig(J,0,l,0),g=f+A|0,g=B>>>0>(sA=B+sA|0)>>>0?g+1|0:g,B=Ig(d,0,KA,0),A=f+g|0,A=B>>>0>(sA=B+sA|0)>>>0?A+1|0:A,g=Ig(G,0,u,0),B=f+A|0,B=g>>>0>(sA=g+sA|0)>>>0?B+1|0:B,A=Ig(K,0,x,0),g=f+B|0,A=A>>>0>(sA=A+sA|0)>>>0?g+1|0:g,qA=A=(lA=sA+fA|0)>>>0>>0?A+1|0:A,ZA=A=A-((lA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(LA=lA- -1048576|0)>>>21,A=(A>>>21|0)+Q|0,jA=A=B>>>0>(zA=B+pA|0)>>>0?A+1|0:A,TA=A=A-((zA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(xA=zA- -1048576|0)>>>21,A=(A>>>21|0)+a|0,g=(B>>>0>(Q=B+GA|0)>>>0?A+1|0:A)+_A|0,_A=(B=Q+hA|0)-(A=-2097152&aA)|0,eA=A=(g=B>>>0>>0?g+1|0:g)-((A>>>0>B>>>0)+eA|0)|0,$A=A=A-((_A>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(vA=_A- -1048576|0)>>>21,A=(A>>21)+YA|0,Q=A=B>>>0>(a=B+NA|0)>>>0?A+1|0:A,VA=A=A-((a>>>0<4293918720)-1|0)|0,RA=(2097151&A)<<11|(GA=a- -1048576|0)>>>21,hA=A>>21,JA=wA-(A=-2097152&yA)|0,MA=tA-((A>>>0>wA>>>0)+MA|0)|0,A=Ig(e,0,p,0),PA=g=f,NA=A,sA=A- -1048576|0,uA=g=g-((A>>>0<4293918720)-1|0)|0,V=A=g>>>21|0,A=Ig(v=(2097151&g)<<11|sA>>>21,A,-683901,-1),g=f+EA|0,g=A>>>0>(B=A+cA|0)>>>0?g+1|0:g,yA=B-(A=-2097152&rA)|0,aA=g-((A>>>0>B>>>0)+HA|0)|0,g=Ig(n,0,G,0),A=f,B=g,g=Ig(e,0,J,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,g=Ig(y,0,K,0),A=f+A|0,A=g>>>0>(B=g+B|0)>>>0?A+1|0:A,EA=(g=B)+(B=Ig(D,0,k,DA))|0,g=f+A|0,g=B>>>0>EA>>>0?g+1|0:g,A=Ig(h,0,M,0),B=f+g|0,B=A>>>0>(EA=A+EA|0)>>>0?B+1|0:B,A=Ig(r,0,F,N),g=f+B|0,g=A>>>0>(EA=A+EA|0)>>>0?g+1|0:g,B=Ig(p,0,KA,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,g=Ig(w,0,U,0),A=f+A|0,cA=B=g+EA|0,EA=g>>>0>B>>>0?A+1|0:A,A=Ig(y,0,J,0),g=f,B=A,A=Ig(e,0,Y,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,tA=(A=Ig(D,0,G,0))+B|0,B=f+g|0,B=A>>>0>tA>>>0?B+1|0:B,A=Ig(n,0,K,0),g=f+B|0,g=A>>>0>(tA=A+tA|0)>>>0?g+1|0:g,B=Ig(k,DA,F,N),A=f+g|0,A=B>>>0>(tA=B+tA|0)>>>0?A+1|0:A,g=Ig(h,0,U,0),A=f+A|0,A=g>>>0>(B=g+tA|0)>>>0?A+1|0:A,tA=(g=B)+(B=Ig(r,0,M,0))|0,g=f+A|0,g=B>>>0>tA>>>0?g+1|0:g,A=Ig(p,0,m,0),B=f+g|0,B=A>>>0>(tA=A+tA|0)>>>0?B+1|0:B,A=Ig(w,0,KA,0),g=f+B|0,fA=g=A>>>0>(pA=A+tA|0)>>>0?g+1|0:g,OA=A=g-((pA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(wA=pA- -1048576|0)>>>21,A=(A>>>21|0)+EA|0,rA=A=g>>>0>(HA=g+cA|0)>>>0?A+1|0:A,mA=A=A-((HA>>>0<4293918720)-1|0)|0,g=(B=A>>>21|0)+aA|0,yA=g=(A=(2097151&A)<<11|(tA=HA- -1048576|0)>>>21)>>>0>(YA=A+yA|0)>>>0?g+1|0:g,XA=A=g-((YA>>>0<4293918720)-1|0)|0,EA=(2097151&A)<<11|(aA=YA- -1048576|0)>>>21,A=(A>>21)+MA|0,Z=A=(g=EA+JA|0)>>>0>>0?A+1|0:A,T=g,A=Ig(g,A,-683901,-1),g=f+hA|0,RA=B=A+RA|0,hA=A>>>0>B>>>0?g+1|0:g,A=Ig(y,0,b,0),g=f,B=A,A=Ig(n,0,H,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,EA=(A=B)+(B=Ig(F,N,Y,0))|0,A=f+g|0,A=B>>>0>EA>>>0?A+1|0:A,g=Ig(M,0,J,0),B=f+A|0,B=g>>>0>(EA=g+EA|0)>>>0?B+1|0:B,g=Ig(D,0,d,0),A=f+B|0,A=g>>>0>(EA=g+EA|0)>>>0?A+1|0:A,B=Ig(G,0,KA,0),g=f+A|0,g=B>>>0>(EA=B+EA|0)>>>0?g+1|0:g,A=Ig(K,0,U,0),g=f+g|0,g=A>>>0>(B=A+EA|0)>>>0?g+1|0:g,EA=(A=B)+(B=Ig(k,DA,m,0))|0,A=f+g|0,A=B>>>0>EA>>>0?A+1|0:A,g=Ig(h,0,x,0),B=f+A|0,B=g>>>0>(EA=g+EA|0)>>>0?B+1|0:B,g=Ig(r,0,l,0),A=f+B|0,A=g>>>0>(EA=g+EA|0)>>>0?A+1|0:A,B=Ig(w,0,u,0),g=f+A|0,MA=EA=B+EA|0,B=B>>>0>EA>>>0?g+1|0:g,g=(A=o[_+27|0])>>>24|0,cA=A<<8|dA>>>24,EA=2097151&((3&(g|=A=(EA=o[_+28|0])>>>16|0))<<30|(A=(EA<<=16)|cA)>>>2),g=B,cA=A=EA+MA|0,EA=A>>>0>>0?g+1|0:g,JA=Ig(X,P,470296,0),MA=f,A=(B=(2097151&bA)<<11|UA>>>21)+(NA-(g=-2097152&sA)|0)|0,g=PA-((524287&uA)+(g>>>0>NA>>>0)|0)+(bA>>>21)|0,$=g=A>>>0>>0?g+1|0:g,AA=A,g=Ig(A,g,666643,0),A=f+MA|0,A=g>>>0>(B=g+JA|0)>>>0?A+1|0:A,sA=(g=Ig(L,R,654183,0))+B|0,B=f+A|0,B=g>>>0>sA>>>0?B+1|0:B,g=Ig(q,z,-997805,-1),A=f+B|0,A=g>>>0>(sA=g+sA|0)>>>0?A+1|0:A,B=Ig(W,O,136657,0),g=f+A|0,kA=(A=(2097151&FA)<<11|kA>>>21)+(sA=B+sA|0)|0,g=(FA>>>21|0)+(B>>>0>sA>>>0?g+1|0:g)|0,uA=sA=EA-((cA>>>0<4293918720)-1|0)|0,A=(A>>>0>kA>>>0?g+1|0:g)+EA|0,g=(EA=cA+kA|0)-(B=-2097152&(PA=cA- -1048576|0))|0,B=(A=(A=EA>>>0>>0?A+1|0:A)-((B>>>0>EA>>>0)+sA|0)|0)+hA|0,JA=EA=A-((g>>>0<4293918720)-1|0)|0,NA=(B=(cA=g+RA|0)>>>0>>0?B+1|0:B)-(((g=-2097152&(MA=g- -1048576|0))>>>0>cA>>>0)+EA|0)|0,dA=A=cA-g|0,EA=a,a=Q,WA=YA-(A=-2097152&aA)|0,sA=yA-((A>>>0>YA>>>0)+XA|0)|0,A=Ig(AA,$,-683901,-1),g=f,Q=(B=A)+(A=Ig(v,V,136657,0))|0,B=f+g|0,g=rA+(A>>>0>Q>>>0?B+1|0:B)|0,tA=(B=Q+HA|0)-(A=-2097152&tA)|0,yA=(g=B>>>0>>0?g+1|0:g)-((A>>>0>B>>>0)+mA|0)|0,g=Ig(v,V,-997805,-1),A=f+fA|0,A=g>>>0>(B=g+pA|0)>>>0?A+1|0:A,Q=(g=Ig(AA,$,136657,0))+B|0,B=f+A|0,B=g>>>0>Q>>>0?B+1|0:B,A=Ig(X,P,-683901,-1),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,aA=Q-(A=-2097152&wA)|0,hA=g-((A>>>0>Q>>>0)+OA|0)|0,g=Ig(n,0,J,0),A=f,B=g,g=Ig(y,0,Y,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=Ig(e,0,d,0))+B|0,B=f+A|0,B=g>>>0>Q>>>0?B+1|0:B,A=Ig(F,N,G,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(D,0,K,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,B=Ig(k,DA,M,0),g=f+A|0,g=B>>>0>(Q=B+Q|0)>>>0?g+1|0:g,B=Ig(h,0,KA,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,g=Ig(r,0,U,0),B=f+A|0,B=g>>>0>(Q=g+Q|0)>>>0?B+1|0:B,A=Ig(p,0,l,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(w,0,m,0),A=f+g|0,cA=Q=B+Q|0,Q=B>>>0>Q>>>0?A+1|0:A,A=Ig(n,0,Y,0),g=f,B=A,A=Ig(e,0,H,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,rA=(A=B)+(B=Ig(D,0,J,0))|0,A=f+g|0,A=B>>>0>rA>>>0?A+1|0:A,g=Ig(y,0,d,0),B=f+A|0,B=g>>>0>(rA=g+rA|0)>>>0?B+1|0:B,A=Ig(G,0,M,0),g=f+B|0,g=A>>>0>(rA=A+rA|0)>>>0?g+1|0:g,B=Ig(F,N,K,0),A=f+g|0,A=B>>>0>(rA=B+rA|0)>>>0?A+1|0:A,B=Ig(k,DA,U,0),g=f+A|0,g=B>>>0>(rA=B+rA|0)>>>0?g+1|0:g,B=Ig(h,0,m,0),A=f+g|0,A=B>>>0>(rA=B+rA|0)>>>0?A+1|0:A,g=Ig(r,0,KA,0),B=f+A|0,B=g>>>0>(rA=g+rA|0)>>>0?B+1|0:B,rA=(A=Ig(p,0,x,0))+rA|0,g=f+B|0,B=Ig(w,0,l,0),A=f+(A>>>0>rA>>>0?g+1|0:g)|0,YA=A=B>>>0>(XA=B+rA|0)>>>0?A+1|0:A,gA=A=A-((XA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(bA=XA- -1048576|0)>>>21,A=(A>>>21|0)+Q|0,UA=A=B>>>0>(RA=B+cA|0)>>>0?A+1|0:A,CA=A=A-((RA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(FA=RA- -1048576|0)>>>21,A=(A>>>21|0)+hA|0,kA=A=B>>>0>(HA=B+aA|0)>>>0?A+1|0:A,BA=A=A-((HA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(fA=HA- -1048576|0)>>>21,A=(A>>21)+yA|0,Q=A=B>>>0>(aA=B+tA|0)>>>0?A+1|0:A,yA=A=A-((aA>>>0<4293918720)-1|0)|0,hA=(2097151&A)<<11|(B=aA- -1048576|0)>>>21,A=(A>>21)+sA|0,OA=A=(cA=hA+WA|0)>>>0>>0?A+1|0:A,mA=cA,A=Ig(cA,A,-683901,-1),g=f,cA=A,A=Ig(T,Z,136657,0),g=f+g|0,A=(A>>>0>(cA=cA+A|0)>>>0?g+1|0:g)+a|0,AI=(a=EA+cA|0)-(g=-2097152&GA)|0,II=(A=a>>>0>>0?A+1|0:A)-((g>>>0>a>>>0)+VA|0)|0,hA=_A,cA=eA,_A=Ig(mA,OA,136657,0),a=f,WA=A=aA-(g=-2097152&B)|0,IA=Q=Q-((g>>>0>aA>>>0)+yA|0)|0,B=Ig(T,Z,-997805,-1),g=f+a|0,g=B>>>0>(_A=B+_A|0)>>>0?g+1|0:g,B=Ig(A,Q,-683901,-1),A=f+g|0,VA=Q=B+_A|0,EA=B>>>0>Q>>>0?A+1|0:A,A=Ig(W,O,470296,0),g=f,Q=(B=A)+(A=Ig(q,z,666643,0))|0,B=f+g|0,g=jA+(A>>>0>Q>>>0?B+1|0:B)|0,GA=A=Q+zA|0,a=g=A>>>0>>0?g+1|0:g,g=Ig(W,O,666643,0),A=f+qA|0,A=g>>>0>(B=g+lA|0)>>>0?A+1|0:A,tA=B-(g=-2097152&LA)|0,pA=A-((g>>>0>B>>>0)+ZA|0)|0,g=Ig(U,0,b,0),A=f,B=g,g=Ig(H,0,KA,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(Y,0,l,0))|0,g=f+A|0,g=B>>>0>Q>>>0?g+1|0:g,B=Ig(J,0,x,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,g=Ig(d,0,m,0),B=f+A|0,B=g>>>0>(Q=g+Q|0)>>>0?B+1|0:B,A=Ig(K,0,u,0),g=f+B|0,aA=Q=A+Q|0,Q=A>>>0>Q>>>0?g+1|0:g,g=(A=o[_+14|0])>>>24|0,_A=A<<8|(yA=o[_+10|0]|o[_+11|0]<<8|o[_+12|0]<<16|o[_+13|0]<<24)>>>24,g=2097151&((1&(g|=B=(A=o[_+15|0])>>>16|0))<<31|(A=_A|A<<16)>>>1),A=Q,aA=B=g+aA|0,Q=g>>>0>B>>>0?A+1|0:A,_A=yA>>>4&2097151,A=Ig(b,0,KA,0),g=f,B=A,A=Ig(H,0,m,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,A=Ig(Y,0,x,0),g=f+g|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,yA=(A=B)+(B=Ig(J,0,u,0))|0,A=f+g|0,A=B>>>0>yA>>>0?A+1|0:A,g=Ig(d,0,l,0),B=f+A|0,A=g>>>0>(yA=g+yA|0)>>>0?B+1|0:B,eA=A=(LA=_A+yA|0)>>>0>>0?A+1|0:A,QA=A=A-((LA>>>0<4293918720)-1|0)|0,g=(B=A>>>21|0)+Q|0,wA=g=(A=(2097151&A)<<11|(sA=LA- -1048576|0)>>>21)>>>0>(jA=A+aA|0)>>>0?g+1|0:g,iA=A=g-((jA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(rA=jA- -1048576|0)>>>21,A=(A>>>21|0)+pA|0,yA=A=g>>>0>(tA=g+tA|0)>>>0?A+1|0:A,oA=A=A-((tA>>>0<4293918720)-1|0)|0,g=(B=A>>21)+a|0,ZA=g=(g=(A=(2097151&A)<<11|(aA=tA- -1048576|0)>>>21)>>>0>(Q=A+GA|0)>>>0?g+1|0:g)-(((B=-2097152&xA)>>>0>Q>>>0)+TA|0)|0,xA=A=Q-B|0,_A=A- -1048576|0,TA=A=g-((A>>>0<4293918720)-1|0)|0,B=(g=A>>21)+EA|0,g=((A=(2097151&A)<<11|_A>>>21)>>>0>(Q=A+VA|0)>>>0?B+1|0:B)+cA|0,lA=g=(g=(A=Q)>>>0>(Q=Q+hA|0)>>>0?g+1|0:g)-(((B=-2097152&vA)>>>0>Q>>>0)+$A|0)|0,cA=A=Q-B|0,a=A- -1048576|0,qA=A=g-((A>>>0<4293918720)-1|0)|0,B=(g=A>>21)+II|0,vA=A=(B=(A=(2097151&A)<<11|a>>>21)>>>0>(EA=A+AI|0)>>>0?B+1|0:B)-((EA>>>0<4293918720)-1|0)|0,GA=dA- -1048576|0,pA=NA-((dA>>>0<4293918720)-1|0)|0,hA=(2097151&A)<<11|(Q=EA- -1048576|0)>>>21,A=(A>>21)+NA|0,$A=(dA=hA+dA|0)-(g=-2097152&GA)|0,AI=(hA>>>0>dA>>>0?A+1|0:A)-((g>>>0>dA>>>0)+pA|0)|0,II=EA-(A=-2097152&Q)|0,VA=B-((A>>>0>EA>>>0)+vA|0)|0,zA=cA-(A=-2097152&a)|0,dA=lA-((A>>>0>cA>>>0)+qA|0)|0,A=Ig(mA,OA,-997805,-1),g=f,B=A,A=Ig(T,Z,654183,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(WA,IA,136657,0))|0,A=f+g|0,g=ZA+(B>>>0>Q>>>0?A+1|0:A)|0,lA=(B=Q+xA|0)-(A=-2097152&_A)|0,qA=(g=B>>>0>>0?g+1|0:g)-((A>>>0>B>>>0)+TA|0)|0,xA=HA-(A=-2097152&fA)|0,NA=kA-((A>>>0>HA>>>0)+BA|0)|0,g=Ig(AA,$,-997805,-1),A=f,B=g,g=Ig(v,V,654183,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(X,P,136657,0))|0,g=f+A|0,g=B>>>0>Q>>>0?g+1|0:g,A=Ig(L,R,-683901,-1),B=f+g|0,g=UA+(A>>>0>(Q=A+Q|0)>>>0?B+1|0:B)|0,fA=(B=Q+RA|0)-(A=-2097152&FA)|0,kA=(g=B>>>0>>0?g+1|0:g)-((A>>>0>B>>>0)+CA|0)|0,g=Ig(AA,$,654183,0),A=f,B=g,g=Ig(v,V,470296,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=Ig(X,P,-997805,-1))+B|0,B=f+A|0,g=YA+(g>>>0>Q>>>0?B+1|0:B)|0,g=(A=Q+XA|0)>>>0>>0?g+1|0:g,B=A,A=Ig(L,R,136657,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(q,z,-683901,-1))|0,A=f+g|0,_A=Q-(g=-2097152&bA)|0,a=(B>>>0>Q>>>0?A+1|0:A)-((g>>>0>Q>>>0)+gA|0)|0,Q=(o[_+28|0]|o[_+29|0]<<8|o[_+30|0]<<16|o[_+31|0]<<24)>>>7|0,A=Ig(e,0,b,0),g=f,EA=(B=A)+(A=Ig(y,0,H,0))|0,B=f+g|0,B=A>>>0>EA>>>0?B+1|0:B,A=Ig(D,0,Y,0),g=f+B|0,g=A>>>0>(EA=A+EA|0)>>>0?g+1|0:g,B=Ig(F,N,J,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,B=Ig(n,0,d,0),g=f+A|0,g=B>>>0>(EA=B+EA|0)>>>0?g+1|0:g,B=Ig(G,0,U,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,g=Ig(M,0,K,0),B=f+A|0,B=g>>>0>(EA=g+EA|0)>>>0?B+1|0:B,A=Ig(k,DA,KA,0),g=f+B|0,g=A>>>0>(EA=A+EA|0)>>>0?g+1|0:g,B=Ig(h,0,l,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,B=Ig(r,0,m,0),g=f+A|0,g=B>>>0>(EA=B+EA|0)>>>0?g+1|0:g,B=Ig(p,0,u,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,g=Ig(w,0,x,0),B=f+A|0,g=B=g>>>0>(EA=g+EA|0)>>>0?B+1|0:B,UA=(B=(2097151&uA)<<11|PA>>>21)+(A=Q+EA|0)|0,A=(uA>>>21|0)+(g=A>>>0>>0?g+1|0:g)|0,hA=A=B>>>0>UA>>>0?A+1|0:A,vA=g=A-((UA>>>0<4293918720)-1|0)|0,B=(A=g>>>21|0)+a|0,cA=B=(g=(2097151&g)<<11|(DA=UA- -1048576|0)>>>21)>>>0>(FA=g+_A|0)>>>0?B+1|0:B,PA=g=B-((FA>>>0<4293918720)-1|0)|0,A=(A=g>>21)+kA|0,_A=A=(g=(2097151&g)<<11|(EA=FA- -1048576|0)>>>21)>>>0>(fA=g+fA|0)>>>0?A+1|0:A,bA=g=A-((fA>>>0<4293918720)-1|0)|0,B=(A=g>>21)+NA|0,uA=B=(g=(Q=(2097151&g)<<11|(a=fA- -1048576|0)>>>21)+xA|0)>>>0>>0?B+1|0:B,NA=g,A=Ig(g,B,-683901,-1),g=f+qA|0,kA=B=A+lA|0,Q=A>>>0>B>>>0?g+1|0:g,g=Ig(T,Z,470296,0),A=f+yA|0,A=g>>>0>(tA=g+tA|0)>>>0?A+1|0:A,g=Ig(mA,OA,654183,0),A=f+(A-(((B=-2097152&aA)>>>0>tA>>>0)+oA|0)|0)|0,A=g>>>0>(aA=g+(tA-B|0)|0)>>>0?A+1|0:A,B=Ig(WA,IA,-997805,-1),g=f+A|0,g=B>>>0>(aA=B+aA|0)>>>0?g+1|0:g,YA=B=fA-(A=-2097152&a)|0,KA=_A=_A-((A>>>0>fA>>>0)+bA|0)|0,aA=(a=Ig(NA,uA,136657,0))+aA|0,A=f+g|0,B=Ig(B,_A,-683901,-1),g=f+(a>>>0>aA>>>0?A+1|0:A)|0,_A=g=B>>>0>(yA=B+aA|0)>>>0?g+1|0:g,bA=A=g-((yA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(a=yA- -1048576|0)>>>21,A=(A>>21)+Q|0,fA=g=(A=g>>>0>(aA=g+kA|0)>>>0?A+1|0:A)-((aA>>>0<4293918720)-1|0)|0,tA=(2097151&g)<<11|(Q=aA- -1048576|0)>>>21,g=(g>>21)+dA|0,zA=kA=tA+zA|0,kA=tA>>>0>kA>>>0?g+1|0:g,dA=aA-(g=-2097152&Q)|0,XA=A-((g>>>0>aA>>>0)+fA|0)|0,lA=yA-(A=-2097152&a)|0,qA=_A-((A>>>0>yA>>>0)+bA|0)|0,A=Ig(T,Z,666643,0),B=wA+f|0,B=(a=A+jA|0)>>>0>>0?B+1|0:B,Q=(A=Ig(mA,OA,470296,0))+(a-(g=-2097152&rA)|0)|0,g=f+(B-((g>>>0>a>>>0)+iA|0)|0)|0,g=A>>>0>Q>>>0?g+1|0:g,B=Ig(WA,IA,654183,0),A=f+g|0,aA=Q=B+Q|0,Q=B>>>0>Q>>>0?A+1|0:A,a=FA-(A=-2097152&EA)|0,_A=cA-((A>>>0>FA>>>0)+PA|0)|0,A=Ig(AA,$,470296,0),g=f,B=A,A=Ig(v,V,666643,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,A=Ig(X,P,654183,0),g=f+g|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,EA=(A=B)+(B=Ig(L,R,-997805,-1))|0,A=f+g|0,A=B>>>0>EA>>>0?A+1|0:A,g=Ig(q,z,136657,0),A=f+A|0,A=g>>>0>(B=g+EA|0)>>>0?A+1|0:A,EA=(g=Ig(W,O,-683901,-1))+B|0,B=f+A|0,g=hA+(g>>>0>EA>>>0?B+1|0:B)|0,FA=(B=(2097151&JA)<<11|MA>>>21)+((EA=EA+UA|0)-(A=-2097152&DA)|0)|0,A=((g=EA>>>0>>0?g+1|0:g)-((A>>>0>EA>>>0)+vA|0)|0)+(JA>>21)|0,fA=A=B>>>0>FA>>>0?A+1|0:A,xA=A=A-((FA>>>0<4293918720)-1|0)|0,g=a,a=(2097151&A)<<11|(rA=FA- -1048576|0)>>>21,A=(A>>21)+_A|0,bA=A=(B=g+a|0)>>>0>>0?A+1|0:A,UA=B,A=Ig(B,A,-683901,-1),g=f+Q|0,g=A>>>0>(B=A+aA|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(NA,uA,-997805,-1))|0,A=f+g|0,A=B>>>0>Q>>>0?A+1|0:A,g=Ig(YA,KA,136657,0),B=f+A|0,MA=Q=g+Q|0,cA=g>>>0>Q>>>0?B+1|0:B,aA=LA-(A=-2097152&sA)|0,hA=eA-((A>>>0>LA>>>0)+QA|0)|0,g=Ig(b,0,m,0),A=f,B=g,g=Ig(H,0,l,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,g=Ig(Y,0,u,0),A=f+A|0,A=g>>>0>(B=g+B|0)>>>0?A+1|0:A,Q=(g=Ig(d,0,x,0))+B|0,B=f+A|0,g=g>>>0>Q>>>0?B+1|0:B,DA=B=(A=(o[_+7|0]|o[_+8|0]<<8|o[_+9|0]<<16|o[_+10|0]<<24)>>>7&2097151)+Q|0,EA=A>>>0>B>>>0?g+1|0:g,A=Ig(b,0,l,0),g=f,B=A,A=Ig(H,0,x,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(d,0,u,0))|0,A=f+g|0,_A=Q,Q=B>>>0>Q>>>0?A+1|0:A,A=(g=o[_+6|0])>>>24|0,a=g<<8|(vA=o[_+2|0]|o[_+3|0]<<8|o[_+4|0]<<16|o[_+5|0]<<24)>>>24,B=A,g=(A=o[_+7|0])>>>16|0,g|=B,B=Q,a=B=(A=2097151&((3&g)<<30|(A=A<<16|a)>>>2))>>>0>(_A=A+_A|0)>>>0?B+1|0:B,RA=A=B-((_A>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(wA=_A- -1048576|0)>>>21,A=(A>>>21|0)+EA|0,tA=A=B>>>0>(eA=B+DA|0)>>>0?A+1|0:A,PA=A=A-((eA>>>0<4293918720)-1|0)|0,B=(g=A>>>21|0)+hA|0,B=(A=(2097151&A)<<11|(yA=eA- -1048576|0)>>>21)>>>0>(Q=A+aA|0)>>>0?B+1|0:B,g=Ig(mA,OA,666643,0),A=f+B|0,A=g>>>0>(Q=g+Q|0)>>>0?A+1|0:A,g=Ig(WA,IA,470296,0),A=f+A|0,A=g>>>0>(B=g+Q|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(UA,bA,136657,0))|0,g=f+A|0,g=B>>>0>Q>>>0?g+1|0:g,A=Ig(NA,uA,654183,0),g=f+g|0,g=A>>>0>(B=A+Q|0)>>>0?g+1|0:g,aA=(A=Ig(YA,KA,-997805,-1))+B|0,B=f+g|0,hA=B=A>>>0>aA>>>0?B+1|0:B,JA=A=B-((aA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(DA=aA- -1048576|0)>>>21,A=(A>>21)+cA|0,MA=B=(A=B>>>0>(Q=B+MA|0)>>>0?A+1|0:A)-((Q>>>0<4293918720)-1|0)|0,EA=(2097151&B)<<11|(cA=Q- -1048576|0)>>>21,B=(B>>21)+qA|0,HA=sA=EA+lA|0,sA=EA>>>0>sA>>>0?B+1|0:B,EA=Q,g=A,Q=(FA-(A=-2097152&rA)|0)+(rA=(2097151&pA)<<11|GA>>>21)|0,A=(fA-((A>>>0>FA>>>0)+xA|0)|0)+(pA>>21)|0,pA=A=Q>>>0>>0?A+1|0:A,lA=A=A-((Q>>>0<4293918720)-1|0)|0,FA=B=A>>21,A=Ig(mA=(2097151&A)<<11|(fA=Q- -1048576|0)>>>21,B,-683901,-1),g=f+g|0,g=A>>>0>(B=A+EA|0)>>>0?g+1|0:g,qA=B-(A=-2097152&cA)|0,LA=g-((A>>>0>B>>>0)+MA|0)|0,g=Ig(mA,FA,136657,0),A=f+hA|0,A=g>>>0>(B=g+aA|0)>>>0?A+1|0:A,jA=B-(g=-2097152&DA)|0,JA=A-((g>>>0>B>>>0)+JA|0)|0,g=Ig(WA,IA,666643,0),A=f+(tA-(((B=-2097152&yA)>>>0>eA>>>0)+PA|0)|0)|0,A=g>>>0>(EA=g+(eA-B|0)|0)>>>0?A+1|0:A,B=Ig(UA,bA,-997805,-1),g=f+A|0,g=B>>>0>(EA=B+EA|0)>>>0?g+1|0:g,A=Ig(NA,uA,470296,0),B=f+g|0,B=A>>>0>(EA=A+EA|0)>>>0?B+1|0:B,g=Ig(YA,KA,654183,0),A=f+B|0,MA=EA=g+EA|0,hA=g>>>0>EA>>>0?A+1|0:A,B=vA>>>5&2097151,A=Ig(b,0,x,0),g=f,cA=A,A=Ig(H,0,u,0),g=f+g|0,A=A>>>0>(EA=cA+A|0)>>>0?g+1|0:g,cA=g=B+EA|0,B=A=g>>>0>>0?A+1|0:A,eA=(g=Ig(b,0,u,0))+(A=(A=o[_+2|0])<<16&2031616|o[0|_]|o[_+1|0]<<8)|0,g=f,rA=g=A>>>0>eA>>>0?g+1|0:g,xA=g=g-((eA>>>0<4293918720)-1|0)|0,A=(A=g>>>21|0)+B|0,yA=A=(g=(2097151&g)<<11|(tA=eA- -1048576|0)>>>21)>>>0>(GA=g+cA|0)>>>0?A+1|0:A,vA=g=A-((GA>>>0<4293918720)-1|0)|0,B=(2097151&g)<<11|(aA=GA- -1048576|0)>>>21,g=(g>>>21|0)+a|0,g=B>>>0>(EA=B+_A|0)>>>0?g+1|0:g,B=Ig(UA,bA,654183,0),A=f+(g-(((a=-2097152&wA)>>>0>EA>>>0)+RA|0)|0)|0,A=B>>>0>(_A=B+(EA-a|0)|0)>>>0?A+1|0:A,g=Ig(NA,uA,666643,0),A=f+A|0,A=g>>>0>(B=g+_A|0)>>>0?A+1|0:A,DA=(g=B)+(B=Ig(YA,KA,470296,0))|0,g=f+A|0,cA=g=B>>>0>DA>>>0?g+1|0:g,PA=g=g-((DA>>>0<4293918720)-1|0)|0,B=(A=g>>21)+hA|0,wA=g=(B=(g=(2097151&g)<<11|(EA=DA- -1048576|0)>>>21)>>>0>(_A=g+MA|0)>>>0?B+1|0:B)-((_A>>>0<4293918720)-1|0)|0,hA=(2097151&g)<<11|(a=_A- -1048576|0)>>>21,g=(g>>21)+JA|0,uA=NA=hA+jA|0,hA=hA>>>0>NA>>>0?g+1|0:g,A=Ig(mA,FA,-997805,-1),g=f+B|0,g=A>>>0>(_A=A+_A|0)>>>0?g+1|0:g,JA=_A-(A=-2097152&a)|0,MA=g-((A>>>0>_A>>>0)+wA|0)|0,g=Ig(mA,FA,654183,0),A=f+cA|0,A=g>>>0>(B=g+DA|0)>>>0?A+1|0:A,NA=B-(g=-2097152&EA)|0,wA=A-((g>>>0>B>>>0)+PA|0)|0,A=Ig(UA,bA,470296,0),B=f+(yA-(((g=-2097152&aA)>>>0>GA>>>0)+vA|0)|0)|0,B=A>>>0>(a=A+(GA-g|0)|0)>>>0?B+1|0:B,g=Ig(YA,KA,666643,0),A=f+B|0,_A=a=g+a|0,B=g>>>0>a>>>0?A+1|0:A,g=Ig(UA,bA,666643,0),A=f+(rA-((4095&xA)+((a=-2097152&tA)>>>0>eA>>>0)|0)|0)|0,DA=A=g>>>0>(aA=g+(eA-a|0)|0)>>>0?A+1|0:A,rA=A=A-((aA>>>0<4293918720)-1|0)|0,a=(2097151&A)<<11|(cA=aA- -1048576|0)>>>21,A=(A>>21)+B|0,B=A=a>>>0>(EA=a+_A|0)>>>0?A+1|0:A,tA=A=A-((EA>>>0<4293918720)-1|0)|0,a=(2097151&A)<<11|(_A=EA- -1048576|0)>>>21,A=(A>>21)+wA|0,a=a>>>0>(yA=a+NA|0)>>>0?A+1|0:A,A=Ig(mA,FA,470296,0),B=f+B|0,B=A>>>0>(g=A+EA|0)>>>0?B+1|0:B,EA=g-(A=-2097152&_A)|0,_A=B-((A>>>0>g>>>0)+tA|0)|0,g=Ig(mA,FA,666643,0),A=f+(DA-(((B=-2097152&cA)>>>0>aA>>>0)+rA|0)|0)|0,g=(B=(A=g>>>0>(wA=g+(aA-B|0)|0)>>>0?A+1|0:A)>>21)+_A|0,A=(A=(g=(A=(2097151&A)<<11|wA>>>21)>>>0>(rA=A+EA|0)>>>0?g+1|0:g)>>21)+a|0,g=(g=(A=(g=(2097151&g)<<11|rA>>>21)>>>0>(tA=g+yA|0)>>>0?A+1|0:A)>>21)+MA|0,B=(A=(g=(A=(2097151&A)<<11|tA>>>21)>>>0>(a=A+JA|0)>>>0?g+1|0:g)>>21)+hA|0,A=(g=(B=(g=(2097151&g)<<11|a>>>21)>>>0>(yA=g+uA|0)>>>0?B+1|0:B)>>21)+LA|0,g=(B=(A=(B=(2097151&B)<<11|yA>>>21)>>>0>(aA=B+qA|0)>>>0?A+1|0:A)>>21)+sA|0,A=(A=(g=(A=(2097151&A)<<11|aA>>>21)>>>0>(hA=A+HA|0)>>>0?g+1|0:g)>>21)+XA|0,g=(g=(A=(g=(2097151&g)<<11|hA>>>21)>>>0>(DA=g+dA|0)>>>0?A+1|0:A)>>21)+kA|0,B=(A=(g=(A=(2097151&A)<<11|DA>>>21)>>>0>(cA=A+zA|0)>>>0?g+1|0:g)>>21)+VA|0,A=(g=(B=(g=(2097151&g)<<11|cA>>>21)>>>0>(EA=g+II|0)>>>0?B+1|0:B)>>21)+AI|0,fA=(sA=Q-(g=-2097152&fA)|0)+((2097151&(A=(B=(2097151&B)<<11|EA>>>21)>>>0>(_A=B+$A|0)>>>0?A+1|0:A))<<11|_A>>>21)|0,A=(pA-((g>>>0>Q>>>0)+lA|0)|0)+(A>>21)|0,pA=g=(A=sA>>>0>fA>>>0?A+1|0:A)>>21,wA=(A=Ig(kA=(2097151&A)<<11|fA>>>21,g,666643,0))+(g=2097151&wA)|0,A=f,Q=A=g>>>0>wA>>>0?A+1|0:A,C[0|E]=wA,C[E+1|0]=(255&A)<<24|wA>>>8,A=2097151&rA,g=Ig(kA,pA,470296,0)+A|0,B=f,A=(Q>>21)+(A>>>0>g>>>0?B+1|0:B)|0,A=(rA=(sA=(2097151&Q)<<11|wA>>>21)+g|0)>>>0>>0?A+1|0:A,C[E+4|0]=(2047&A)<<21|rA>>>11,g=A,B=rA,C[E+3|0]=(7&A)<<29|B>>>3,C[E+2|0]=31&((65535&Q)<<16|wA>>>16)|B<<5,Q=2097151&tA,tA=Ig(kA,pA,654183,0)+Q|0,A=f,rA=(2097151&g)<<11|B>>>21,g=(g>>21)+(Q=Q>>>0>tA>>>0?A+1|0:A)|0,A=g=(tA=rA+tA|0)>>>0>>0?g+1|0:g,C[E+6|0]=(63&A)<<26|tA>>>6,Q=tA,tA=0,C[E+5|0]=tA<<13|(1572864&B)>>>19|Q<<2,B=2097151&a,a=Ig(kA,pA,-997805,-1)+B|0,g=f,g=B>>>0>a>>>0?g+1|0:g,tA=(2097151&(B=A))<<11|Q>>>21,B=(A>>=21)+g|0,B=(a=tA+a|0)>>>0>>0?B+1|0:B,C[E+9|0]=(511&B)<<23|a>>>9,C[E+8|0]=(1&B)<<31|a>>>1,g=0,C[E+7|0]=g<<18|(2080768&Q)>>>14|a<<7,g=2097151&yA,Q=Ig(kA,pA,136657,0)+g|0,A=f,A=g>>>0>Q>>>0?A+1|0:A,yA=(2097151&(g=B))<<11|a>>>21,g=A+(B=g>>21)|0,g=(Q=yA+Q|0)>>>0>>0?g+1|0:g,C[E+12|0]=(4095&g)<<20|Q>>>12,B=Q,C[E+11|0]=(15&g)<<28|B>>>4,Q=0,C[E+10|0]=Q<<15|(1966080&a)>>>17|B<<4,Q=2097151&aA,a=Ig(kA,pA,-683901,-1)+Q|0,A=f,A=Q>>>0>a>>>0?A+1|0:A,Q=g,g=A+(g>>=21)|0,g=(Q=(aA=a)+(a=(2097151&Q)<<11|B>>>21)|0)>>>0>>0?g+1|0:g,C[E+14|0]=(127&g)<<25|Q>>>7,a=0,C[E+13|0]=a<<12|(1048576&B)>>>20|Q<<1,A=g>>21,B=(g=(2097151&g)<<11|Q>>>21)>>>0>(a=g+(2097151&hA)|0)>>>0?A+1|0:A,C[E+17|0]=(1023&B)<<22|a>>>10,C[E+16|0]=(3&B)<<30|a>>>2,g=0,C[E+15|0]=g<<17|(2064384&Q)>>>15|a<<6,A=B>>21,A=(g=(2097151&B)<<11|a>>>21)>>>0>(B=g+(2097151&DA)|0)>>>0?A+1|0:A,C[E+20|0]=(8191&A)<<19|B>>>13,C[E+19|0]=(31&A)<<27|B>>>5,Q=(g=2097151&cA)+(cA=(2097151&A)<<11|B>>>21)|0,g=A>>21,g=Q>>>0>>0?g+1|0:g,cA=Q,C[E+21|0]=Q,DA=0,C[E+18|0]=DA<<14|(1835008&a)>>>18|B<<3,C[E+22|0]=(255&g)<<24|Q>>>8,B=g>>21,B=(Q=(a=(2097151&g)<<11|Q>>>21)+(2097151&EA)|0)>>>0>>0?B+1|0:B,C[E+25|0]=(2047&B)<<21|Q>>>11,C[E+24|0]=(7&B)<<29|Q>>>3,C[E+23|0]=31&((65535&g)<<16|cA>>>16)|Q<<5,A=B>>21,A=(g=(2097151&B)<<11|Q>>>21)>>>0>(B=g+(2097151&_A)|0)>>>0?A+1|0:A,C[E+27|0]=(63&A)<<26|B>>>6,a=0,C[E+26|0]=a<<13|(1572864&Q)>>>19|B<<2,g=A,A>>=21,g=(Q=(_A=(2097151&g)<<11|B>>>21)+(a=2097151&fA)|0)>>>0>>0?A+1|0:A,C[E+31|0]=(131071&g)<<15|Q>>>17,A=Q,C[E+30|0]=(511&g)<<23|A>>>9,Q=0,C[E+28|0]=Q<<18|(2080768&B)>>>14|A<<7,C[E+29|0]=_A+fA>>>1,XC(c,64),XC(_,64),I&&(i[I>>2]=64,i[I+4>>2]=0),s=t+560|0,0}function n(A,I,g){var B,Q,i,E,a,_,c,t,r,e,y,s,h,D,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l,u,x,v,R,L,P,q,z,j,X,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,fA=0,pA=0,wA=0,nA=0,kA=0,FA=0,SA=0,NA=0,GA=0,MA=0,KA=0,UA=0,bA=0,HA=0,YA=0,JA=0,dA=0,mA=0,lA=0,uA=0,xA=0,vA=0,RA=0,LA=0,PA=0,qA=0;Z=Ig(B=(W=o[g+2|0])<<16&2031616|o[0|g]|o[g+1|0]<<8,0,Q=(QA=o[I+23|0]|o[I+24|0]<<8|o[I+25|0]<<16|o[I+26|0]<<24)>>>5&2097151,0),V=f,O=Ig(i=(W=o[I+23|0])<<16&2031616|o[I+21|0]|o[I+22|0]<<8,0,E=(T=o[g+2|0]|o[g+3|0]<<8|o[g+4|0]<<16|o[g+5|0]<<24)>>>5&2097151,0),W=f+V|0,W=O>>>0>(Z=O+Z|0)>>>0?W+1|0:W,V=Ig(a=(o[g+7|0]|o[g+8|0]<<8|o[g+9|0]<<16|o[g+10|0]<<24)>>>7&2097151,0,_=(aA=o[I+15|0]|o[I+16|0]<<8|o[I+17|0]<<16|o[I+18|0]<<24)>>>6&2097151,0),O=f+W|0,IA=Z=V+Z|0,V=V>>>0>Z>>>0?O+1|0:O,O=(W=o[I+14|0])>>>24|0,$=W<<8|(gA=o[I+10|0]|o[I+11|0]<<8|o[I+12|0]<<16|o[I+13|0]<<24)>>>24,O=Ig(c=2097151&((1&(CA=(W=O)|(O=(Z=o[I+15|0])>>>16|0)))<<31|(W=(Z<<=16)|$)>>>1),0,t=(AA=o[g+10|0]|o[g+11|0]<<8|o[g+12|0]<<16|o[g+13|0]<<24)>>>4&2097151,0),V=f+V|0,CA=W=O+IA|0,Z=W>>>0>>0?V+1|0:V,V=(O=o[g+6|0])>>>24|0,IA=O<<8|T>>>24,T=r=2097151&((3&(V|=O=(W=o[g+7|0])>>>16|0))<<30|(W=IA|W<<16)>>>2),IA=0,$=(W=o[I+19|0])<<8|aA>>>24,V=O=W>>>24|0,W=(O=o[I+20|0])>>>16|0,G=V=(W|=V)>>>3|0,O=Ig(T,IA,e=(7&W)<<29|(O=O<<16|$)>>>3,V),W=f+Z|0,W=O>>>0>($=O+CA|0)>>>0?W+1|0:W,V=Ig(y=(T=o[g+15|0]|o[g+16|0]<<8|o[g+17|0]<<16|o[g+18|0]<<24)>>>6&2097151,0,s=(o[I+7|0]|o[I+8|0]<<8|o[I+9|0]<<16|o[I+10|0]<<24)>>>7&2097151,0),O=f+W|0,IA=Z=V+$|0,Z=V>>>0>Z>>>0?O+1|0:O,$=(W=o[g+14|0])<<8|AA>>>24,W=O=W>>>24|0,V=(O=o[g+15|0])>>>16|0,O=Ig(h=2097151&((1&(V|=W))<<31|(W=(O<<=16)|$)>>>1),0,D=gA>>>4&2097151,0),W=f+Z|0,AA=V=O+IA|0,IA=O>>>0>V>>>0?W+1|0:W,W=(O=o[g+19|0])>>>24|0,Z=O<<8|T>>>24,V=(O=o[g+20|0])>>>16|0,p=(7&(V|=W))<<29|(O=Z|O<<16)>>>3,eA=W=V>>>3|0,Z=W,W=(O=o[I+6|0])>>>24|0,T=O<<8|(CA=o[I+2|0]|o[I+3|0]<<8|o[I+4|0]<<16|o[I+5|0]<<24)>>>24,V=W,W=(O=o[I+7|0])>>>16|0,W=Ig(p,Z,w=2097151&((3&(W|=V))<<30|(O=O<<16|T)>>>2),0),O=f+IA|0,V=W>>>0>(Z=W+AA|0)>>>0?O+1|0:O,W=Ig(n=(W=o[g+23|0])<<16&2031616|o[g+21|0]|o[g+22|0]<<8,0,k=CA>>>5&2097151,0),O=f+V|0,V=W>>>0>(Z=W+Z|0)>>>0?O+1|0:O,O=Ig(F=(W=o[I+2|0])<<16&2031616|o[0|I]|o[I+1|0]<<8,0,hA=(CA=o[g+23|0]|o[g+24|0]<<8|o[g+25|0]<<16|o[g+26|0]<<24)>>>5&2097151,0),W=f+V|0,T=Z=O+Z|0,IA=O>>>0>Z>>>0?W+1|0:W,O=Ig(i,0,B,0),W=f,Z=(V=O)+(O=Ig(e,G,E,0))|0,V=f+W|0,V=O>>>0>Z>>>0?V+1|0:V,O=Ig(a,0,c,0),W=f+V|0,W=O>>>0>(Z=O+Z|0)>>>0?W+1|0:W,V=Ig(t,0,D,0),O=f+W|0,O=V>>>0>(Z=V+Z|0)>>>0?O+1|0:O,W=Ig(_,0,r,0),O=f+O|0,O=W>>>0>(V=W+Z|0)>>>0?O+1|0:O,Z=(W=V)+(V=Ig(y,0,w,0))|0,W=f+O|0,W=V>>>0>Z>>>0?W+1|0:W,O=Ig(h,0,s,0),V=f+W|0,V=O>>>0>(Z=O+Z|0)>>>0?V+1|0:V,Z=(O=Ig(p,eA,k,0))+Z|0,W=f+V|0,V=Ig(n,0,F,0),O=f+(O>>>0>Z>>>0?W+1|0:W)|0,Z=O=V>>>0>($=V+Z|0)>>>0?O+1|0:O,yA=O=O-(($>>>0<4293918720)-1|0)|0,W=(W=O>>>21|0)+IA|0,oA=V=(W=(O=(2097151&O)<<11|(cA=$- -1048576|0)>>>21)>>>0>(T=O+T|0)>>>0?W+1|0:W)-((T>>>0<4293918720)-1|0)|0,iA=T-(O=-2097152&(EA=T- -1048576|0))|0,BA=W-((O>>>0>T>>>0)+V|0)|0,IA=(W=o[g+27|0])<<8|CA>>>24,V=O=W>>>24|0,T=Ig(S=2097151&((3&(V|=W=(O=o[g+28|0])>>>16|0))<<30|(W=(O<<=16)|IA)>>>2),0,DA=(o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24)>>>7|0,0),IA=f,W=(O=o[I+27|0])>>>24|0,I=Ig(N=2097151&((3&(W|=V=(I=o[I+28|0])>>>16|0))<<30|(O=O<<8|QA>>>24|I<<16)>>>2),0,fA=(o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24)>>>7|0,0),O=f+IA|0,O=I>>>0>(g=I+T|0)>>>0?O+1|0:O,V=g,I=Ig(Q,0,fA,0),g=f,IA=(W=I)+(I=Ig(hA,0,DA,0))|0,W=f+g|0,W=I>>>0>IA>>>0?W+1|0:W,I=Ig(S,0,N,0),W=f+W|0,IA=W=I>>>0>(CA=I+IA|0)>>>0?W+1|0:W,AA=I=W-((CA>>>0<4293918720)-1|0)|0,W=I>>>21|0,T=(I=(2097151&I)<<11|(g=CA- -1048576|0)>>>21)+V|0,V=W+O|0,aA=W=(V=I>>>0>T>>>0?V+1|0:V)-((T>>>0<4293918720)-1|0)|0,I=T-(O=-2097152&(gA=T- -1048576|0))|0,K=O=V-((131071&W)+(O>>>0>T>>>0)|0)|0,U=I,I=Ig(I,O,666643,0),O=f+BA|0,nA=W=I+iA|0,T=I>>>0>W>>>0?O+1|0:O,iA=CA-(I=-2097152&g)|0,tA=IA-((131071&AA)+(I>>>0>CA>>>0)|0)|0,I=Ig(n,0,DA,0),g=f,W=(O=I)+(I=Ig(hA,0,N,0))|0,O=f+g|0,O=I>>>0>W>>>0?O+1|0:O,g=(I=Ig(i,0,fA,0))+W|0,W=f+O|0,W=I>>>0>g>>>0?W+1|0:W,I=Ig(Q,0,S,0),O=f+W|0,AA=g=I+g|0,I=I>>>0>g>>>0?O+1|0:O,g=Ig(Q,0,hA,0),O=f,V=(W=g)+(g=Ig(p,eA,DA,0))|0,W=f+O|0,W=g>>>0>V>>>0?W+1|0:W,O=(g=Ig(n,0,N,0))+V|0,V=f+W|0,V=g>>>0>O>>>0?V+1|0:V,W=(g=Ig(e,G,fA,0))+O|0,O=f+V|0,O=g>>>0>W>>>0?O+1|0:O,BA=(g=Ig(i,0,S,0))+W|0,W=f+O|0,CA=W=g>>>0>BA>>>0?W+1|0:W,_A=g=W-((BA>>>0<4293918720)-1|0)|0,W=I+(O=g>>>21|0)|0,g=W=(g=(2097151&g)<<11|(IA=BA- -1048576|0)>>>21)>>>0>(AA=g+AA|0)>>>0?W+1|0:W,QA=W=W-((AA>>>0<4293918720)-1|0)|0,O=iA,iA=(2097151&W)<<11|(I=AA- -1048576|0)>>>21,W=(W>>>21|0)+tA|0,b=W=(V=O+iA|0)>>>0>>0?W+1|0:W,H=I=AA-(O=-2097152&I)|0,Y=AA=g-((O>>>0>AA>>>0)+QA|0)|0,J=V,g=Ig(V,W,470296,0),O=f+T|0,O=g>>>0>(W=g+nA|0)>>>0?O+1|0:O,I=Ig(I,AA,654183,0),V=f+O|0,tA=g=I+W|0,T=I>>>0>g>>>0?V+1|0:V,QA=BA-(I=-2097152&IA)|0,BA=CA-((I>>>0>BA>>>0)+_A|0)|0,I=Ig(p,eA,N,0),g=f,W=(O=I)+(I=Ig(y,0,DA,0))|0,O=f+g|0,O=I>>>0>W>>>0?O+1|0:O,g=(I=Ig(i,0,hA,0))+W|0,W=f+O|0,W=I>>>0>g>>>0?W+1|0:W,I=Ig(Q,0,n,0),V=f+W|0,V=I>>>0>(g=I+g|0)>>>0?V+1|0:V,I=Ig(_,0,fA,0),O=f+V|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(e,G,S,0),W=f+O|0,CA=g=I+g|0,IA=I>>>0>g>>>0?W+1|0:W,I=Ig(h,0,DA,0),g=f,W=(O=I)+(I=Ig(y,0,N,0))|0,O=f+g|0,O=I>>>0>W>>>0?O+1|0:O,g=(I=Ig(Q,0,p,eA))+W|0,W=f+O|0,W=I>>>0>g>>>0?W+1|0:W,I=Ig(e,G,hA,0),V=f+W|0,V=I>>>0>(g=I+g|0)>>>0?V+1|0:V,I=Ig(i,0,n,0),O=f+V|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(c,0,fA,0),W=f+O|0,W=I>>>0>(g=I+g|0)>>>0?W+1|0:W,I=Ig(_,0,S,0),O=f+W|0,I=O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,sA=O=O-((g>>>0<4293918720)-1|0)|0,V=(W=O>>>21|0)+IA|0,iA=V=(O=(2097151&O)<<11|(_A=g- -1048576|0)>>>21)>>>0>(pA=O+CA|0)>>>0?V+1|0:V,NA=O=V-((pA>>>0<4293918720)-1|0)|0,IA=(2097151&O)<<11|(AA=pA- -1048576|0)>>>21,O=(O>>>21|0)+BA|0,d=O=(V=IA+QA|0)>>>0>>0?O+1|0:O,m=V,O=Ig(V,O,-997805,-1),W=f+T|0,BA=V=O+tA|0,T=O>>>0>V>>>0?W+1|0:W,IA=$,$=Z,O=Ig(B,0,e,G),W=f,Z=(V=O)+(O=Ig(_,0,E,0))|0,V=f+W|0,V=O>>>0>Z>>>0?V+1|0:V,W=Ig(a,0,D,0),O=f+V|0,O=W>>>0>(Z=W+Z|0)>>>0?O+1|0:O,V=Ig(t,0,s,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,V=Ig(c,0,r,0),O=f+W|0,O=V>>>0>(Z=V+Z|0)>>>0?O+1|0:O,V=Ig(y,0,k,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,O=Ig(h,0,w,0),V=f+W|0,V=O>>>0>(Z=O+Z|0)>>>0?V+1|0:V,W=Ig(p,eA,F,0),O=f+V|0,CA=Z=W+Z|0,Z=W>>>0>Z>>>0?O+1|0:O,O=Ig(B,0,_,0),W=f,V=O,O=Ig(E,0,c,0),W=f+W|0,W=O>>>0>(V=V+O|0)>>>0?W+1|0:W,QA=(O=V)+(V=Ig(a,0,s,0))|0,O=f+W|0,O=V>>>0>QA>>>0?O+1|0:O,V=Ig(t,0,w,0),W=f+O|0,W=V>>>0>(QA=V+QA|0)>>>0?W+1|0:W,O=Ig(r,0,D,0),V=f+W|0,V=O>>>0>(QA=O+QA|0)>>>0?V+1|0:V,QA=(W=Ig(y,0,F,0))+QA|0,O=f+V|0,V=Ig(h,0,k,0),W=f+(W>>>0>QA>>>0?O+1|0:O)|0,KA=W=V>>>0>(MA=V+QA|0)>>>0?W+1|0:W,xA=W=W-((MA>>>0<4293918720)-1|0)|0,V=(2097151&W)<<11|(GA=MA- -1048576|0)>>>21,W=(W>>>21|0)+Z|0,rA=W=V>>>0>(UA=V+CA|0)>>>0?W+1|0:W,vA=W=W-((UA>>>0<4293918720)-1|0)|0,V=(2097151&W)<<11|(nA=UA- -1048576|0)>>>21,W=(W>>>21|0)+$|0,W=V>>>0>(IA=V+IA|0)>>>0?W+1|0:W,O=Ig(J,b,666643,0),W=f+(W-(((V=-2097152&cA)>>>0>IA>>>0)+yA|0)|0)|0,W=O>>>0>(Z=O+(IA-V|0)|0)>>>0?W+1|0:W,V=Ig(H,Y,470296,0),O=f+W|0,O=V>>>0>(Z=V+Z|0)>>>0?O+1|0:O,V=Ig(m,d,654183,0),W=f+O|0,tA=W=V>>>0>(kA=V+Z|0)>>>0?W+1|0:W,mA=W=W-((kA>>>0<4293918720)-1|0)|0,O=(O=W>>21)+T|0,BA=O=(W=(2097151&W)<<11|(QA=kA- -1048576|0)>>>21)>>>0>(yA=W+BA|0)>>>0?O+1|0:O,bA=W=O-((yA>>>0<4293918720)-1|0)|0,JA=(2097151&W)<<11|(cA=yA- -1048576|0)>>>21,CA=W>>21,O=Ig(B,0,N,0),W=f,V=O,O=Ig(Q,0,E,0),W=f+W|0,W=O>>>0>(V=V+O|0)>>>0?W+1|0:W,Z=(O=Ig(a,0,e,G))+V|0,V=f+W|0,V=O>>>0>Z>>>0?V+1|0:V,W=Ig(_,0,t,0),O=f+V|0,O=W>>>0>(Z=W+Z|0)>>>0?O+1|0:O,V=Ig(i,0,r,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,V=Ig(y,0,D,0),O=f+W|0,O=V>>>0>(Z=V+Z|0)>>>0?O+1|0:O,V=Ig(h,0,c,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,O=Ig(s,0,p,eA),V=f+W|0,V=O>>>0>(Z=O+Z|0)>>>0?V+1|0:V,W=Ig(k,0,hA,0),O=f+V|0,O=W>>>0>(Z=W+Z|0)>>>0?O+1|0:O,V=Ig(w,0,n,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,V=(O=Z)+(Z=Ig(S,0,F,0))|0,O=f+W|0,T=V,IA=V>>>0>>0?O+1|0:O,FA=Ig(DA,0,fA,0),$=V=(SA=f)-((FA>>>0<4293918720)-1|0)|0,W=FA-(O=-2097152&(Z=FA- -1048576|0))|0,O=(aA>>>21|0)+(O=SA-((524287&V)+(O>>>0>FA>>>0)|0)|0)|0,l=O=(V=(gA=(2097151&aA)<<11|gA>>>21)+W|0)>>>0>>0?O+1|0:O,u=V,W=(2097151&oA)<<11|EA>>>21,gA=Ig(V,O,666643,0)+W|0,O=f+(oA>>>21|0)|0,O=W>>>0>gA>>>0?O+1|0:O,V=Ig(U,K,470296,0),W=f+O|0,W=(V>>>0>(gA=V+gA|0)>>>0?W+1|0:W)+IA|0,W=(O=T+gA|0)>>>0>>0?W+1|0:W,gA=(V=Ig(J,b,654183,0))+O|0,O=f+W|0,dA=T- -1048576|0,FA=IA=IA-((T>>>0<4293918720)-1|0)|0,W=Ig(H,Y,-997805,-1),V=f+(V>>>0>gA>>>0?O+1|0:O)|0,V=W>>>0>(T=W+gA|0)>>>0?V+1|0:V,EA=(O=Ig(m,d,136657,0))+(T-(W=-2097152&dA)|0)|0,W=f+(V-((W>>>0>T>>>0)+IA|0)|0)|0,V=(aA=O>>>0>EA>>>0?W+1|0:W)+CA|0,HA=O=EA+JA|0,gA=V=O>>>0>>0?V+1|0:V,SA=pA-(O=-2097152&AA)|0,pA=iA-((O>>>0>pA>>>0)+NA|0)|0,x=V=$>>>21|0,W=(O=g)+(g=Ig(M=(2097151&$)<<11|Z>>>21,V,-683901,-1))|0,O=f+I|0,iA=W-(I=-2097152&_A)|0,oA=(g>>>0>W>>>0?O+1|0:O)-((I>>>0>W>>>0)+sA|0)|0,I=Ig(Q,0,y,0),g=f,O=I,I=Ig(t,0,DA,0),W=f+g|0,W=I>>>0>(O=O+I|0)>>>0?W+1|0:W,I=Ig(h,0,N,0),V=f+W|0,V=I>>>0>(g=I+O|0)>>>0?V+1|0:V,I=Ig(i,0,p,eA),O=f+V|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(_,0,hA,0),O=f+O|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(e,G,n,0),W=f+O|0,W=I>>>0>(g=I+g|0)>>>0?W+1|0:W,I=Ig(D,0,fA,0),W=f+W|0,W=I>>>0>(g=I+g|0)>>>0?W+1|0:W,I=Ig(c,0,S,0),V=f+W|0,Z=g=I+g|0,I=I>>>0>g>>>0?V+1|0:V,g=Ig(t,0,N,0),O=f,W=g,g=Ig(a,0,DA,0),O=f+O|0,O=g>>>0>(W=W+g|0)>>>0?O+1|0:O,g=Ig(i,0,y,0),O=f+O|0,O=g>>>0>(W=g+W|0)>>>0?O+1|0:O,V=(g=Ig(Q,0,h,0))+W|0,W=f+O|0,W=g>>>0>V>>>0?W+1|0:W,g=Ig(e,G,p,eA),W=f+W|0,W=g>>>0>(O=g+V|0)>>>0?W+1|0:W,g=Ig(c,0,hA,0),V=f+W|0,V=g>>>0>(O=g+O|0)>>>0?V+1|0:V,W=(g=Ig(_,0,n,0))+O|0,O=f+V|0,O=g>>>0>W>>>0?O+1|0:O,g=Ig(s,0,fA,0),O=f+O|0,O=g>>>0>(W=g+W|0)>>>0?O+1|0:O,AA=(g=Ig(D,0,S,0))+W|0,W=f+O|0,CA=W=g>>>0>AA>>>0?W+1|0:W,YA=g=W-((AA>>>0<4293918720)-1|0)|0,V=I+(O=g>>>21|0)|0,IA=V=(g=(2097151&g)<<11|(T=AA- -1048576|0)>>>21)>>>0>(_A=g+Z|0)>>>0?V+1|0:V,sA=I=V-((_A>>>0<4293918720)-1|0)|0,W=(O=I>>>21|0)+oA|0,Z=W=(I=(2097151&I)<<11|($=_A- -1048576|0)>>>21)>>>0>(iA=I+iA|0)>>>0?W+1|0:W,oA=g=W-((iA>>>0<4293918720)-1|0)|0,V=(O=g>>21)+pA|0,v=V=(g=(W=(2097151&g)<<11|(I=iA- -1048576|0)>>>21)+SA|0)>>>0>>0?V+1|0:V,NA=EA- -1048576|0,JA=W=aA-((EA>>>0<4293918720)-1|0)|0,lA=g,g=Ig(g,V,-683901,-1),O=f+gA|0,SA=O=(W=(O=g>>>0>(V=g+HA|0)>>>0?O+1|0:O)-(((g=-2097152&NA)>>>0>V>>>0)+W|0)|0)-(((gA=V-g|0)>>>0<4293918720)-1|0)|0,P=gA-(g=-2097152&(pA=gA- -1048576|0))|0,RA=W-((g>>>0>gA>>>0)+O|0)|0,g=Ig(lA,v,136657,0),W=f+(BA-(((O=-2097152&cA)>>>0>yA>>>0)+bA|0)|0)|0,uA=V=g+(yA-O|0)|0,g=g>>>0>V>>>0?W+1|0:W,wA=iA-(I&=-2097152)|0,cA=Z-((I>>>0>iA>>>0)+oA|0)|0,I=Ig(u,l,-683901,-1),O=f,W=I,I=Ig(M,x,136657,0),O=f+O|0,W=IA+(I>>>0>(V=W+I|0)>>>0?O+1|0:O)|0,aA=(O=V+_A|0)-(I=-2097152&$)|0,gA=(W=O>>>0<_A>>>0?W+1|0:W)-((I>>>0>O>>>0)+sA|0)|0,I=Ig(M,x,-997805,-1),O=f+CA|0,O=I>>>0>(W=I+AA|0)>>>0?O+1|0:O,I=Ig(u,l,136657,0),O=f+O|0,O=I>>>0>(W=I+W|0)>>>0?O+1|0:O,V=(I=Ig(U,K,-683901,-1))+W|0,W=f+O|0,W=I>>>0>V>>>0?W+1|0:W,IA=V-(I=-2097152&T)|0,$=W-((I>>>0>V>>>0)+YA|0)|0,I=Ig(Q,0,t,0),O=f,V=(W=I)+(I=Ig(a,0,N,0))|0,W=f+O|0,W=I>>>0>V>>>0?W+1|0:W,I=Ig(r,0,DA,0),O=f+W|0,O=I>>>0>(V=I+V|0)>>>0?O+1|0:O,I=Ig(y,0,e,G),W=f+O|0,W=I>>>0>(V=I+V|0)>>>0?W+1|0:W,I=Ig(i,0,h,0),O=f+W|0,O=I>>>0>(V=I+V|0)>>>0?O+1|0:O,W=(I=Ig(_,0,p,eA))+V|0,V=f+O|0,V=I>>>0>W>>>0?V+1|0:V,O=(I=Ig(D,0,hA,0))+W|0,W=f+V|0,W=I>>>0>O>>>0?W+1|0:W,V=(I=Ig(c,0,n,0))+O|0,O=f+W|0,O=I>>>0>V>>>0?O+1|0:O,I=Ig(w,0,fA,0),W=f+O|0,W=I>>>0>(V=I+V|0)>>>0?W+1|0:W,I=Ig(s,0,S,0),O=f+W|0,Z=V=I+V|0,I=I>>>0>V>>>0?O+1|0:O,O=Ig(Q,0,a,0),W=f,T=(V=O)+(O=Ig(E,0,DA,0))|0,V=f+W|0,V=O>>>0>T>>>0?V+1|0:V,O=Ig(i,0,t,0),W=f+V|0,W=O>>>0>(T=O+T|0)>>>0?W+1|0:W,V=Ig(r,0,N,0),O=f+W|0,O=V>>>0>(T=V+T|0)>>>0?O+1|0:O,V=Ig(_,0,y,0),W=f+O|0,W=V>>>0>(T=V+T|0)>>>0?W+1|0:W,V=Ig(e,G,h,0),O=f+W|0,O=V>>>0>(T=V+T|0)>>>0?O+1|0:O,W=Ig(c,0,p,eA),V=f+O|0,V=W>>>0>(T=W+T|0)>>>0?V+1|0:V,O=Ig(s,0,hA,0),W=f+V|0,W=O>>>0>(T=O+T|0)>>>0?W+1|0:W,V=Ig(D,0,n,0),O=f+W|0,O=V>>>0>(T=V+T|0)>>>0?O+1|0:O,V=Ig(k,0,fA,0),W=f+O|0,W=V>>>0>(T=V+T|0)>>>0?W+1|0:W,V=Ig(w,0,S,0),O=f+W|0,yA=O=V>>>0>(bA=V+T|0)>>>0?O+1|0:O,q=O=O-((bA>>>0<4293918720)-1|0)|0,W=I+(W=O>>>21|0)|0,EA=W=(O=(2097151&O)<<11|(oA=bA- -1048576|0)>>>21)>>>0>(HA=O+Z|0)>>>0?W+1|0:W,z=I=W-((HA>>>0<4293918720)-1|0)|0,O=(W=I>>>21|0)+$|0,iA=O=(I=(2097151&I)<<11|(_A=HA- -1048576|0)>>>21)>>>0>(YA=I+IA|0)>>>0?O+1|0:O,j=I=O-((YA>>>0<4293918720)-1|0)|0,W=(W=I>>21)+gA|0,CA=W=(I=(2097151&I)<<11|(BA=YA- -1048576|0)>>>21)>>>0>(sA=I+aA|0)>>>0?W+1|0:W,LA=I=W-((sA>>>0<4293918720)-1|0)|0,O=(W=I>>21)+cA|0,R=O=(I=(V=(2097151&I)<<11|(Z=sA- -1048576|0)>>>21)+wA|0)>>>0>>0?O+1|0:O,wA=I,I=Ig(I,O,-683901,-1),V=f+g|0,PA=O=I+uA|0,T=I>>>0>O>>>0?V+1|0:V,qA=kA-(I=-2097152&QA)|0,mA=tA-((I>>>0>kA>>>0)+mA|0)|0,I=Ig(H,Y,666643,0),O=f+(rA-(((g=-2097152&nA)>>>0>UA>>>0)+vA|0)|0)|0,O=I>>>0>(W=I+(UA-g|0)|0)>>>0?O+1|0:O,g=(I=Ig(m,d,470296,0))+W|0,W=f+O|0,nA=g,g=I>>>0>g>>>0?W+1|0:W,AA=MA-(I=-2097152&GA)|0,IA=KA-((I>>>0>MA>>>0)+xA|0)|0,I=Ig(B,0,c,0),O=f,W=I,I=Ig(E,0,D,0),V=f+O|0,V=I>>>0>(W=W+I|0)>>>0?V+1|0:V,I=Ig(a,0,w,0),O=f+V|0,O=I>>>0>(W=I+W|0)>>>0?O+1|0:O,V=(I=Ig(t,0,k,0))+W|0,W=f+O|0,W=I>>>0>V>>>0?W+1|0:W,I=Ig(r,0,s,0),O=f+W|0,O=I>>>0>(V=I+V|0)>>>0?O+1|0:O,I=Ig(h,0,F,0),W=f+O|0,$=V=I+V|0,I=I>>>0>V>>>0?W+1|0:W,O=Ig(B,0,D,0),W=f,gA=(V=O)+(O=Ig(E,0,s,0))|0,V=f+W|0,V=O>>>0>gA>>>0?V+1|0:V,W=Ig(a,0,k,0),O=f+V|0,O=W>>>0>(gA=W+gA|0)>>>0?O+1|0:O,V=Ig(t,0,F,0),W=f+O|0,W=V>>>0>(gA=V+gA|0)>>>0?W+1|0:W,V=Ig(r,0,w,0),O=f+W|0,tA=O=V>>>0>(kA=V+gA|0)>>>0?O+1|0:O,X=O=O-((kA>>>0<4293918720)-1|0)|0,V=I+(W=O>>>21|0)|0,cA=V=(O=(2097151&O)<<11|(QA=kA- -1048576|0)>>>21)>>>0>(KA=O+$|0)>>>0?V+1|0:V,xA=I=V-((KA>>>0<4293918720)-1|0)|0,O=(W=I>>>21|0)+IA|0,O=(I=(2097151&I)<<11|(aA=KA- -1048576|0)>>>21)>>>0>(V=I+AA|0)>>>0?O+1|0:O,I=Ig(m,d,666643,0),W=f+O|0,gA=W=I>>>0>(GA=I+V|0)>>>0?W+1|0:W,vA=I=W-((GA>>>0<4293918720)-1|0)|0,O=g+(O=I>>21)|0,IA=O=(I=(2097151&I)<<11|(AA=GA- -1048576|0)>>>21)>>>0>(rA=I+nA|0)>>>0?O+1|0:O,uA=I=O-((rA>>>0<4293918720)-1|0)|0,W=(O=I>>21)+mA|0,W=(I=(2097151&I)<<11|($=rA- -1048576|0)>>>21)>>>0>(g=I+qA|0)>>>0?W+1|0:W,I=Ig(lA,v,-997805,-1),V=f+W|0,V=I>>>0>(O=I+g|0)>>>0?V+1|0:V,UA=I=sA-(g=-2097152&Z)|0,L=W=CA-((g>>>0>sA>>>0)+LA|0)|0,Z=(g=Ig(wA,R,136657,0))+O|0,O=f+V|0,I=Ig(I,W,-683901,-1),O=f+(g>>>0>Z>>>0?O+1|0:O)|0,Z=O=I>>>0>(CA=I+Z|0)>>>0?O+1|0:O,MA=I=O-((CA>>>0<4293918720)-1|0)|0,O=(W=I>>21)+T|0,g=O=(T=nA=(I=(2097151&I)<<11|(V=CA- -1048576|0)>>>21)+PA|0)>>>0>>0?O+1|0:O,sA=O=O-((T>>>0<4293918720)-1|0)|0,nA=(2097151&O)<<11|(I=T- -1048576|0)>>>21,O=(O>>21)+RA|0,RA=mA=nA+P|0,nA=nA>>>0>mA>>>0?O+1|0:O,LA=T-(I&=-2097152)|0,PA=g-((I>>>0>T>>>0)+sA|0)|0,qA=CA-(I=-2097152&V)|0,mA=Z-((I>>>0>CA>>>0)+MA|0)|0,I=Ig(lA,v,654183,0),W=f+(IA-(((g=-2097152&$)>>>0>rA>>>0)+uA|0)|0)|0,W=I>>>0>(O=I+(rA-g|0)|0)>>>0?W+1|0:W,g=(I=Ig(wA,R,-997805,-1))+O|0,O=f+W|0,O=I>>>0>g>>>0?O+1|0:O,I=Ig(UA,L,136657,0),O=f+O|0,uA=g=I+g|0,I=I>>>0>g>>>0?O+1|0:O,MA=YA-(g=-2097152&BA)|0,rA=iA-((g>>>0>YA>>>0)+j|0)|0,g=Ig(u,l,-997805,-1),O=f,V=(W=g)+(g=Ig(M,x,654183,0))|0,W=f+O|0,W=g>>>0>V>>>0?W+1|0:W,g=Ig(U,K,136657,0),O=f+W|0,O=g>>>0>(V=g+V|0)>>>0?O+1|0:O,g=Ig(J,b,-683901,-1),O=f+O|0,W=EA+(g>>>0>(V=g+V|0)>>>0?O+1|0:O)|0,BA=(O=V+HA|0)-(g=-2097152&_A)|0,_A=(W=O>>>0>>0?W+1|0:W)-((g>>>0>O>>>0)+z|0)|0,g=Ig(u,l,654183,0),O=f,V=(W=g)+(g=Ig(M,x,470296,0))|0,W=f+O|0,W=g>>>0>V>>>0?W+1|0:W,g=Ig(U,K,-997805,-1),O=f+W|0,W=yA+(g>>>0>(V=g+V|0)>>>0?O+1|0:O)|0,W=(g=V+bA|0)>>>0>>0?W+1|0:W,V=(O=g)+(g=Ig(J,b,136657,0))|0,O=f+W|0,O=g>>>0>V>>>0?O+1|0:O,W=(g=Ig(H,Y,-683901,-1))+V|0,V=f+O|0,V=g>>>0>W>>>0?V+1|0:V,$=W-(g=-2097152&oA)|0,Z=V-((g>>>0>W>>>0)+q|0)|0,g=Ig(B,0,DA,0),O=f,W=g,g=Ig(E,0,N,0),O=f+O|0,O=g>>>0>(W=W+g|0)>>>0?O+1|0:O,g=Ig(i,0,a,0),O=f+O|0,O=g>>>0>(W=g+W|0)>>>0?O+1|0:O,g=Ig(e,G,t,0),V=f+O|0,V=g>>>0>(W=g+W|0)>>>0?V+1|0:V,O=(g=Ig(Q,0,r,0))+W|0,W=f+V|0,W=g>>>0>O>>>0?W+1|0:W,g=Ig(y,0,c,0),W=f+W|0,W=g>>>0>(O=g+O|0)>>>0?W+1|0:W,V=(g=Ig(_,0,h,0))+O|0,O=f+W|0,O=g>>>0>V>>>0?O+1|0:O,g=Ig(D,0,p,eA),O=f+O|0,O=g>>>0>(W=g+V|0)>>>0?O+1|0:O,g=Ig(w,0,hA,0),V=f+O|0,V=g>>>0>(W=g+W|0)>>>0?V+1|0:V,O=(g=Ig(s,0,n,0))+W|0,W=f+V|0,W=g>>>0>O>>>0?W+1|0:W,g=Ig(F,0,fA,0),W=f+W|0,W=g>>>0>(O=g+O|0)>>>0?W+1|0:W,V=(g=Ig(S,0,k,0))+O|0,O=f+W|0,O=(FA>>>21|0)+(O=g>>>0>V>>>0?O+1|0:O)|0,CA=O=(g=(2097151&FA)<<11|dA>>>21)>>>0>(EA=g+V|0)>>>0?O+1|0:O,bA=g=O-((EA>>>0<4293918720)-1|0)|0,W=(W=g>>>21|0)+Z|0,IA=W=(g=(2097151&g)<<11|(T=EA- -1048576|0)>>>21)>>>0>(iA=g+$|0)>>>0?W+1|0:W,sA=g=W-((iA>>>0<4293918720)-1|0)|0,O=(W=g>>21)+_A|0,Z=O=(g=(2097151&g)<<11|($=iA- -1048576|0)>>>21)>>>0>(BA=g+BA|0)>>>0?O+1|0:O,oA=O=O-((BA>>>0<4293918720)-1|0)|0,W=(W=O>>21)+rA|0,rA=W=(O=(V=(2097151&O)<<11|(g=BA- -1048576|0)>>>21)+MA|0)>>>0>>0?W+1|0:W,dA=O,W=Ig(O,W,-683901,-1),O=f+I|0,_A=V=W+uA|0,I=W>>>0>V>>>0?O+1|0:O,O=Ig(lA,v,470296,0),V=f+(gA-(((W=-2097152&AA)>>>0>GA>>>0)+vA|0)|0)|0,V=O>>>0>(AA=O+(GA-W|0)|0)>>>0?V+1|0:V,O=Ig(wA,R,654183,0),W=f+V|0,W=O>>>0>(AA=O+AA|0)>>>0?W+1|0:W,V=Ig(UA,L,-997805,-1),O=f+W|0,O=V>>>0>(AA=V+AA|0)>>>0?O+1|0:O,FA=g=BA-(W=-2097152&g)|0,eA=Z=Z-((W>>>0>BA>>>0)+oA|0)|0,AA=(V=Ig(dA,rA,136657,0))+AA|0,W=f+O|0,g=Ig(g,Z,-683901,-1),V=f+(V>>>0>AA>>>0?W+1|0:W)|0,Z=V=g>>>0>(gA=g+AA|0)>>>0?V+1|0:V,yA=W=V-((gA>>>0<4293918720)-1|0)|0,V=(2097151&W)<<11|(g=gA- -1048576|0)>>>21,W=(W>>21)+I|0,oA=V=(W=V>>>0>(AA=V+_A|0)>>>0?W+1|0:W)-((AA>>>0<4293918720)-1|0)|0,BA=(2097151&V)<<11|(I=AA- -1048576|0)>>>21,V=(V>>21)+mA|0,hA=_A=BA+qA|0,_A=BA>>>0>_A>>>0?V+1|0:V,DA=AA-(I&=-2097152)|0,fA=W-((I>>>0>AA>>>0)+oA|0)|0,HA=gA-(I=-2097152&g)|0,YA=Z-((I>>>0>gA>>>0)+yA|0)|0,I=Ig(lA,v,666643,0),W=f+(cA-(((g=-2097152&aA)>>>0>KA>>>0)+xA|0)|0)|0,W=I>>>0>(O=I+(KA-g|0)|0)>>>0?W+1|0:W,I=Ig(wA,R,470296,0),V=f+W|0,V=I>>>0>(g=I+O|0)>>>0?V+1|0:V,I=Ig(UA,L,654183,0),W=f+V|0,AA=g=I+g|0,I=I>>>0>g>>>0?W+1|0:W,$=iA-(g=-2097152&$)|0,Z=IA-((g>>>0>iA>>>0)+sA|0)|0,g=Ig(u,l,470296,0),O=f,W=g,g=Ig(M,x,666643,0),O=f+O|0,O=g>>>0>(W=W+g|0)>>>0?O+1|0:O,g=Ig(U,K,654183,0),V=f+O|0,V=g>>>0>(W=g+W|0)>>>0?V+1|0:V,O=(g=Ig(J,b,-997805,-1))+W|0,W=f+V|0,W=g>>>0>O>>>0?W+1|0:W,g=Ig(H,Y,136657,0),W=f+W|0,O=CA+(g>>>0>(V=g+O|0)>>>0?W+1|0:W)|0,O=(g=V+EA|0)>>>0>>0?O+1|0:O,W=g,g=Ig(m,d,-683901,-1),O=f+O|0,O=g>>>0>(V=W+g|0)>>>0?O+1|0:O,oA=(g=(2097151&JA)<<11|NA>>>21)+(V-(W=-2097152&T)|0)|0,W=(O-((W>>>0>V>>>0)+bA|0)|0)+(JA>>21)|0,iA=W=g>>>0>oA>>>0?W+1|0:W,sA=g=W-((oA>>>0<4293918720)-1|0)|0,W=(O=g>>21)+Z|0,JA=W=(g=(V=(2097151&g)<<11|(BA=oA- -1048576|0)>>>21)+$|0)>>>0>>0?W+1|0:W,yA=g,g=Ig(g,W,-683901,-1),V=f+I|0,V=g>>>0>(O=g+AA|0)>>>0?V+1|0:V,I=Ig(dA,rA,-997805,-1),W=f+V|0,W=I>>>0>(g=I+O|0)>>>0?W+1|0:W,I=Ig(FA,eA,136657,0),O=f+W|0,NA=g=I+g|0,$=I>>>0>g>>>0?O+1|0:O,T=kA-(I=-2097152&QA)|0,IA=tA-((I>>>0>kA>>>0)+X|0)|0,I=Ig(B,0,s,0),g=f,O=I,I=Ig(E,0,w,0),W=f+g|0,W=I>>>0>(O=O+I|0)>>>0?W+1|0:W,I=Ig(a,0,F,0),W=f+W|0,W=I>>>0>(g=I+O|0)>>>0?W+1|0:W,I=Ig(r,0,k,0),O=f+W|0,I=I>>>0>(W=g=I+g|0)>>>0?O+1|0:O,g=Ig(B,0,w,0),O=f,Z=(V=g)+(g=Ig(E,0,k,0))|0,V=f+O|0,V=g>>>0>Z>>>0?V+1|0:V,g=Ig(r,0,F,0),O=f+V|0,g=O=g>>>0>(Z=g+Z|0)>>>0?O+1|0:O,lA=O=O-((Z>>>0<4293918720)-1|0)|0,V=O>>>21|0,EA=(O=(2097151&O)<<11|(cA=Z- -1048576|0)>>>21)+W|0,W=I+V|0,aA=W=O>>>0>EA>>>0?W+1|0:W,KA=I=W-((EA>>>0<4293918720)-1|0)|0,O=(V=I>>>21|0)+IA|0,O=(I=(2097151&I)<<11|(gA=EA- -1048576|0)>>>21)>>>0>(W=I+T|0)>>>0?O+1|0:O,V=(I=Ig(wA,R,666643,0))+W|0,W=f+O|0,W=I>>>0>V>>>0?W+1|0:W,I=Ig(UA,L,470296,0),W=f+W|0,W=I>>>0>(O=I+V|0)>>>0?W+1|0:W,V=(I=Ig(yA,JA,136657,0))+O|0,O=f+W|0,O=I>>>0>V>>>0?O+1|0:O,W=(I=Ig(dA,rA,654183,0))+V|0,V=f+O|0,V=I>>>0>W>>>0?V+1|0:V,I=Ig(FA,eA,-997805,-1),O=f+V|0,CA=O=I>>>0>(AA=I+W|0)>>>0?O+1|0:O,GA=I=O-((AA>>>0<4293918720)-1|0)|0,W=(V=I>>21)+$|0,NA=O=(W=(I=(O=(2097151&I)<<11|(T=AA- -1048576|0)>>>21)+NA|0)>>>0>>0?W+1|0:W)-((I>>>0<4293918720)-1|0)|0,$=(2097151&O)<<11|(IA=I- -1048576|0)>>>21,O=(O>>21)+YA|0,MA=QA=$+HA|0,tA=$>>>0>QA>>>0?O+1|0:O,$=I,V=W,W=(iA-(((O=-2097152&BA)>>>0>oA>>>0)+sA|0)|0)+(SA>>21)|0,QA=W=(I=(oA-O|0)+(BA=(2097151&SA)<<11|pA>>>21)|0)>>>0>>0?W+1|0:W,bA=W=W-((I>>>0<4293918720)-1|0)|0,oA=O=W>>21,W=Ig(wA=(2097151&W)<<11|(iA=I- -1048576|0)>>>21,O,-683901,-1),O=f+V|0,O=W>>>0>($=W+$|0)>>>0?O+1|0:O,HA=$-(W=-2097152&IA)|0,YA=O-((W>>>0>$>>>0)+NA|0)|0,O=Ig(wA,oA,136657,0),W=f+CA|0,W=O>>>0>(V=O+AA|0)>>>0?W+1|0:W,sA=V-(O=-2097152&T)|0,NA=W-((O>>>0>V>>>0)+GA|0)|0,V=(O=Ig(UA,L,666643,0))+(EA-(W=-2097152&gA)|0)|0,W=f+(aA-((W>>>0>EA>>>0)+KA|0)|0)|0,W=O>>>0>V>>>0?W+1|0:W,$=(O=Ig(yA,JA,-997805,-1))+V|0,V=f+W|0,V=O>>>0>$>>>0?V+1|0:V,W=Ig(dA,rA,470296,0),O=f+V|0,O=W>>>0>($=W+$|0)>>>0?O+1|0:O,V=Ig(FA,eA,654183,0),W=f+O|0,SA=$=V+$|0,CA=V>>>0>$>>>0?W+1|0:W,$=Z,Z=g,g=Ig(E,0,F,0),O=f,W=g,g=Ig(B,0,k,0),O=f+O|0,O=g>>>0>(V=W+g|0)>>>0?O+1|0:O,g=Ig(B,0,F,0),kA=W=f,EA=g,aA=g- -1048576|0,KA=g=W-((g>>>0<4293918720)-1|0)|0,W=g>>>21|0,BA=(g=(2097151&g)<<11|aA>>>21)+V|0,V=W+O|0,gA=V=g>>>0>BA>>>0?V+1|0:V,GA=g=V-((BA>>>0<4293918720)-1|0)|0,O=(W=g>>>21|0)+Z|0,O=(g=(2097151&g)<<11|(AA=BA- -1048576|0)>>>21)>>>0>(V=g+$|0)>>>0?O+1|0:O,Z=(g=Ig(yA,JA,654183,0))+(V-(W=-2097152&cA)|0)|0,V=f+(O-((8191&lA)+(W>>>0>V>>>0)|0)|0)|0,V=g>>>0>Z>>>0?V+1|0:V,g=Ig(dA,rA,666643,0),W=f+V|0,W=g>>>0>(O=g+Z|0)>>>0?W+1|0:W,T=(g=Ig(FA,eA,470296,0))+O|0,O=f+W|0,IA=O=g>>>0>T>>>0?O+1|0:O,pA=g=O-((T>>>0<4293918720)-1|0)|0,W=(W=g>>21)+CA|0,V=W=(g=(2097151&g)<<11|($=T- -1048576|0)>>>21)>>>0>(Z=g+SA|0)>>>0?W+1|0:W,cA=O=W-((Z>>>0<4293918720)-1|0)|0,CA=(2097151&O)<<11|(g=Z- -1048576|0)>>>21,O=(O>>21)+NA|0,CA=CA>>>0>(rA=SA=CA+sA|0)>>>0?O+1|0:O,W=Ig(wA,oA,-997805,-1),O=f+V|0,dA=(Z=W+Z|0)-(g&=-2097152)|0,NA=(W>>>0>Z>>>0?O+1|0:O)-((g>>>0>Z>>>0)+cA|0)|0,g=Ig(wA,oA,654183,0),V=f+IA|0,V=g>>>0>(O=g+T|0)>>>0?V+1|0:V,SA=O-(g=-2097152&$)|0,pA=V-((g>>>0>O>>>0)+pA|0)|0,g=Ig(yA,JA,470296,0),W=f+(gA-((8191&GA)+((O=-2097152&AA)>>>0>BA>>>0)|0)|0)|0,W=g>>>0>(V=g+(BA-O|0)|0)>>>0?W+1|0:W,g=Ig(FA,eA,666643,0),W=f+W|0,W=g>>>0>(O=g+V|0)>>>0?W+1|0:W,Z=O,g=Ig(yA,JA,666643,0),V=f+(kA-((2047&KA)+((O=-2097152&aA)>>>0>EA>>>0)|0)|0)|0,T=V=g>>>0>(AA=g+(EA-O|0)|0)>>>0?V+1|0:V,cA=g=V-((AA>>>0<4293918720)-1|0)|0,W=W+(O=g>>21)|0,aA=g=(W=(g=(2097151&g)<<11|(IA=AA- -1048576|0)>>>21)>>>0>($=g+Z|0)>>>0?W+1|0:W)-(($>>>0<4293918720)-1|0)|0,V=(O=g>>21)+pA|0,g=(g=(2097151&g)<<11|(Z=$- -1048576|0)>>>21)>>>0>(gA=g+SA|0)>>>0?V+1|0:V,O=Ig(wA,oA,470296,0),W=f+W|0,W=O>>>0>(V=O+$|0)>>>0?W+1|0:W,Z=V-(O=-2097152&Z)|0,$=W-((O>>>0>V>>>0)+aA|0)|0,O=Ig(wA,oA,666643,0),V=f+(T-(((W=-2097152&IA)>>>0>AA>>>0)+cA|0)|0)|0,O=(W=(V=O>>>0>(BA=O+(AA-W|0)|0)>>>0?V+1|0:V)>>21)+$|0,W=g+(V=(O=(V=(2097151&V)<<11|BA>>>21)>>>0>(Z=V+Z|0)>>>0?O+1|0:O)>>21)|0,O=(O=(W=(g=$=(O=(2097151&O)<<11|Z>>>21)+gA|0)>>>0>>0?W+1|0:W)>>21)+NA|0,W=(W=(O=(W=(2097151&W)<<11|g>>>21)>>>0>(cA=W+dA|0)>>>0?O+1|0:O)>>21)+CA|0,V=(O=(W=(O=(2097151&O)<<11|cA>>>21)>>>0>(aA=O+rA|0)>>>0?W+1|0:W)>>21)+YA|0,O=(W=(V=(W=(2097151&W)<<11|aA>>>21)>>>0>(gA=W+HA|0)>>>0?V+1|0:V)>>21)+tA|0,W=(V=(O=(V=(2097151&V)<<11|gA>>>21)>>>0>(AA=V+MA|0)>>>0?O+1|0:O)>>21)+fA|0,O=(O=(W=(O=(2097151&O)<<11|AA>>>21)>>>0>(CA=O+DA|0)>>>0?W+1|0:W)>>21)+_A|0,W=(W=(O=(W=(2097151&W)<<11|CA>>>21)>>>0>(T=W+hA|0)>>>0?O+1|0:O)>>21)+PA|0,V=(O=(W=(O=(2097151&O)<<11|T>>>21)>>>0>(IA=O+LA|0)>>>0?W+1|0:W)>>21)+nA|0,W=(QA-((I>>>0<(O=-2097152&iA)>>>0)+bA|0)|0)+((V=(W=(2097151&W)<<11|IA>>>21)>>>0>($=W+RA|0)>>>0?V+1|0:V)>>21)|0,QA=O=(W=(iA=(tA=I-O|0)+((2097151&V)<<11|$>>>21)|0)>>>0>>0?W+1|0:W)>>21,I=(I=Ig(tA=(2097151&W)<<11|iA>>>21,O,666643,0))+(O=2097151&BA)|0,V=f,C[0|A]=I,V=I>>>0>>0?V+1|0:V,C[A+1|0]=(255&V)<<24|I>>>8,O=2097151&Z,Z=Ig(tA,QA,470296,0)+O|0,W=f,W=(V>>21)+(W=O>>>0>Z>>>0?W+1|0:W)|0,W=(Z=(BA=(2097151&V)<<11|I>>>21)+Z|0)>>>0>>0?W+1|0:W,C[A+4|0]=(2047&W)<<21|Z>>>11;C[A+3|0]=(7&W)<<29|Z>>>3,C[A+2|0]=31&((65535&V)<<16|I>>>16)|Z<<5,I=2097151&g,g=Ig(tA,QA,654183,0)+I|0,V=f,V=I>>>0>g>>>0?V+1|0:V,I=W,O=(W>>=21)+V|0,I=O=(I=(2097151&I)<<11|Z>>>21)>>>0>(g=I+g|0)>>>0?O+1|0:O,C[A+6|0]=(63&O)<<26|g>>>6,W=0,C[A+5|0]=W<<13|(1572864&Z)>>>19|g<<2,W=2097151&cA,V=Ig(tA,QA,-997805,-1)+W|0,O=f,O=W>>>0>V>>>0?O+1|0:O,W=(W=I>>21)+O|0,W=(I=(Z=V)+(V=(2097151&I)<<11|g>>>21)|0)>>>0>>0?W+1|0:W,C[A+9|0]=(511&W)<<23|I>>>9,C[A+8|0]=(1&W)<<31|I>>>1,O=0,C[A+7|0]=O<<18|(2080768&g)>>>14|I<<7,g=2097151&aA,O=Ig(tA,QA,136657,0)+g|0,V=f,V=g>>>0>O>>>0?V+1|0:V,g=(Z=(2097151&(g=W))<<11|I>>>21)+O|0,O=(W>>=21)+V|0,O=g>>>0>>0?O+1|0:O,C[A+12|0]=(4095&O)<<20|g>>>12,C[A+11|0]=(15&O)<<28|g>>>4,W=0,C[A+10|0]=W<<15|(1966080&I)>>>17|g<<4,I=2097151&gA,V=Ig(tA,QA,-683901,-1)+I|0,W=f,W=I>>>0>V>>>0?W+1|0:W,I=O,O=W+(O>>=21)|0,O=(I=(Z=V)+(V=(2097151&I)<<11|g>>>21)|0)>>>0>>0?O+1|0:O,C[A+14|0]=(127&O)<<25|I>>>7,W=0,C[A+13|0]=W<<12|(1048576&g)>>>20|I<<1,W=O>>21,W=(g=(O=(2097151&O)<<11|I>>>21)+(2097151&AA)|0)>>>0>>0?W+1|0:W,C[A+17|0]=(1023&W)<<22|g>>>10,C[A+16|0]=(3&W)<<30|g>>>2,O=0,C[A+15|0]=O<<17|(2064384&I)>>>15|g<<6,I=W,W>>=21,V=(I=(O=(2097151&I)<<11|g>>>21)+(2097151&CA)|0)>>>0>>0?W+1|0:W,C[A+20|0]=(8191&V)<<19|I>>>13,C[A+19|0]=(31&V)<<27|I>>>5,O=V>>21,O=(W=(Z=(2097151&V)<<11|I>>>21)+(2097151&T)|0)>>>0>>0?O+1|0:O,Z=W,C[A+21|0]=W,W=0,C[A+18|0]=W<<14|(1835008&g)>>>18|I<<3,C[A+22|0]=(255&O)<<24|Z>>>8,W=O>>21,W=(I=(g=(2097151&O)<<11|Z>>>21)+(2097151&IA)|0)>>>0>>0?W+1|0:W,C[A+25|0]=(2047&W)<<21|I>>>11,C[A+24|0]=(7&W)<<29|I>>>3,C[A+23|0]=31&((65535&O)<<16|Z>>>16)|I<<5,O=(2097151&W)<<11|I>>>21,W>>=21,W=(g=O+(2097151&$)|0)>>>0>>0?W+1|0:W,C[A+27|0]=(63&W)<<26|g>>>6,O=0,C[A+26|0]=O<<13|(1572864&I)>>>19|g<<2,I=W,O=W>>=21,O=(I=(Z=(2097151&I)<<11|g>>>21)+(V=2097151&iA)|0)>>>0>>0?O+1|0:O,C[A+31|0]=(131071&O)<<15|I>>>17,C[A+30|0]=(511&O)<<23|I>>>9,W=0,C[A+28|0]=W<<18|(2080768&g)>>>14|I<<7,C[A+29|0]=Z+iA>>>1}function k(A,I,g,C){for(var B=0,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0;E=(B=_<<3)+g|0,Q=o[0|(B=I+B|0)]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,G=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,c=Q<<24|(65280&Q)<<8,t=(a=16711680&Q)<<24,a=a>>>8|0,B=(e=-16777216&Q)>>>24|0,i[E>>2]=t|e<<8|-16777216&((255&G)<<24|Q>>>8)|16711680&((16777215&G)<<8|Q>>>24)|G>>>8&65280|G>>>24,Q=B|a|c,B=0,i[E+4>>2]=Q|B,16!=(0|(_=_+1|0)););for(I=i[A+4>>2],i[C>>2]=i[A>>2],i[C+4>>2]=I,I=i[A+60>>2],i[C+56>>2]=i[A+56>>2],i[C+60>>2]=I,I=i[A+52>>2],i[C+48>>2]=i[A+48>>2],i[C+52>>2]=I,I=i[A+44>>2],i[C+40>>2]=i[A+40>>2],i[C+44>>2]=I,I=i[A+36>>2],i[C+32>>2]=i[A+32>>2],i[C+36>>2]=I,I=i[A+28>>2],i[C+24>>2]=i[A+24>>2],i[C+28>>2]=I,I=i[A+20>>2],i[C+16>>2]=i[A+16>>2],i[C+20>>2]=I,I=i[A+12>>2],i[C+8>>2]=i[A+8>>2],i[C+12>>2]=I;E=i[C+56>>2],a=i[C+60>>2],B=i[(I=G=(M=P<<3)+g|0)>>2],I=i[I+4>>2],k=Q=i[C+36>>2],Q=UI(p=i[C+32>>2],Q,50),_=f,Q=UI(p,k,46)^Q,_^=f,Q=UI(p,k,23)^Q,I=(f^_)+I|0,I=(B=Q+B|0)>>>0>>0?I+1|0:I,B=(_=i[(Q=M+34416|0)>>2])+B|0,I=i[Q+4>>2]+I|0,I=B>>>0<_>>>0?I+1|0:I,Q=(_=((t=i[C+48>>2])^(y=i[C+40>>2]))&p^t)+B|0,B=(((w=i[C+52>>2])^(F=i[C+44>>2]))&k^w)+I|0,I=(Q>>>0<_>>>0?B+1|0:B)+a|0,I=(E=Q+E|0)>>>0>>0?I+1|0:I,_=(Q=i[C+24>>2])+E|0,B=i[C+28>>2]+I|0,s=B=Q>>>0>_>>>0?B+1|0:B,i[C+24>>2]=_,i[C+28>>2]=B,n=B=i[C+4>>2],B=UI(Q=i[C>>2],B,36),a=f,B=UI(Q,n,30)^B,a^=f,e=E+(UI(Q,n,25)^B)|0,B=I+(f^a)|0,B=E>>>0>e>>>0?B+1|0:B,c=(I=e)+(e=Q&((a=i[C+16>>2])|(E=i[C+8>>2]))|E&a)|0,I=(I=B)+(n&((B=i[C+20>>2])|(h=i[C+12>>2]))|B&h)|0,e=I=c>>>0>>0?I+1|0:I,i[C+56>>2]=c,i[C+60>>2]=I,r=a,D=B,N=i[(I=l=(S=8|M)+g|0)>>2],U=i[I+4>>2],B=((k^F)&s^F)+w|0,B=(I=(a=(y^p)&_^y)+t|0)>>>0>>0?B+1|0:B,a=UI(_,s,50),t=f,a=UI(_,s,46)^a,t^=f,a=(w=UI(_,s,23)^a)+I|0,I=(f^t)+B|0,I=(a>>>0>>0?I+1|0:I)+U|0,I=(B=a+N|0)>>>0>>0?I+1|0:I,a=(a=B)+(t=i[(B=S+34416|0)>>2])|0,B=i[B+4>>2]+I|0,B=(I=a>>>0>>0?B+1|0:B)+D|0,w=B=(t=a+r|0)>>>0>>0?B+1|0:B,i[C+16>>2]=t,i[C+20>>2]=B,I=I+((h|n)&e|h&n)|0,I=(B=a+((Q|E)&c|Q&E)|0)>>>0>>0?I+1|0:I,a=UI(c,e,36),r=f,a=UI(c,e,30)^a,r^=f,D=B,B=UI(c,e,25)^a,I=(f^r)+I|0,r=I=B>>>0>(a=D+B|0)>>>0?I+1|0:I,i[C+48>>2]=a,i[C+52>>2]=I,D=E,S=h,I=(h=i[(B=Y=(E=16|M)+g|0)>>2])+y|0,B=i[B+4>>2]+F|0,B=I>>>0>>0?B+1|0:B,E=(y=I)+(h=i[(I=E+34416|0)>>2])|0,I=i[I+4>>2]+B|0,I=((s^k)&w^k)+(I=E>>>0>>0?I+1|0:I)|0,I=(B=(B=E)+(E=(_^p)&t^p)|0)>>>0>>0?I+1|0:I,E=UI(t,w,50),h=f,E=UI(t,w,46)^E,h^=f,E=(y=UI(t,w,23)^E)+B|0,B=(f^h)+I|0,B=(y=E>>>0>>0?B+1|0:B)+S|0,S=B=(h=E)>>>0>(E=E+D|0)>>>0?B+1|0:B,i[C+8>>2]=E,i[C+12>>2]=B,I=UI(a,r,36),B=f,I=UI(a,r,30)^I,B^=f,F=UI(a,r,25)^I,I=((e|n)&r|e&n)+(f^B)|0,B=y+((D=F+((Q|c)&a|Q&c)|0)>>>0>>0?I+1|0:I)|0,h=B=(y=h+D|0)>>>0>>0?B+1|0:B,i[C+40>>2]=y,i[C+44>>2]=B,D=Q,B=(B=p)+(p=i[(I=u=(Q=24|M)+g|0)>>2])|0,I=i[I+4>>2]+k|0,I=B>>>0

>>0?I+1|0:I,Q=(F=B)+(p=i[(B=Q+34416|0)>>2])|0,B=i[B+4>>2]+I|0,B=(s^(s^w)&S)+(B=Q>>>0

>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=_^(_^t)&E)|0)>>>0>>0?B+1|0:B,Q=UI(E,S,50),p=f,Q=UI(E,S,46)^Q,p^=f,Q=(k=UI(E,S,23)^Q)+I|0,I=(f^p)+B|0,B=(I=Q>>>0>>0?I+1|0:I)+n|0,k=B=(n=Q+D|0)>>>0>>0?B+1|0:B,i[C>>2]=n,i[C+4>>2]=B,B=UI(y,h,36),p=f,B=UI(y,h,30)^B,D=f^p,F=UI(y,h,25)^B,B=((e|r)&h|e&r)+(f^D)|0,I=I+((p=F+((a|c)&y|a&c)|0)>>>0>>0?B+1|0:B)|0,p=I=(D=Q+p|0)>>>0>>0?I+1|0:I,i[C+32>>2]=D,i[C+36>>2]=I,Q=i[(B=m=(I=32|M)+g|0)>>2],B=s+i[B+4>>2]|0,B=(Q=Q+_|0)>>>0<_>>>0?B+1|0:B,Q=(_=i[(I=I+34416|0)>>2])+Q|0,I=i[I+4>>2]+B|0,I=(w^(w^S)&k)+(I=Q>>>0<_>>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=t^(E^t)&n)|0)>>>0>>0?I+1|0:I,Q=UI(n,k,50),_=f,Q=UI(n,k,46)^Q,_^=f,Q=(s=UI(n,k,23)^Q)+B|0,B=(f^_)+I|0,F=B=Q>>>0>>0?B+1|0:B,I=B,B=UI(D,p,36),_=f,B=UI(D,p,30)^B,s=f^_,N=UI(D,p,25)^B,B=((r|h)&p|r&h)+(f^s)|0,I=((_=N+((a|y)&D|a&y)|0)>>>0>>0?B+1|0:B)+I|0,_=I=(s=Q+_|0)>>>0<_>>>0?I+1|0:I,i[C+24>>2]=s,i[C+28>>2]=I,B=e+F|0,F=B=(e=Q+c|0)>>>0>>0?B+1|0:B,i[C+56>>2]=e,i[C+60>>2]=B,Q=i[(I=J=(B=40|M)+g|0)>>2],I=w+i[I+4>>2]|0,I=(Q=Q+t|0)>>>0>>0?I+1|0:I,Q=(c=i[(B=B+34416|0)>>2])+Q|0,B=i[B+4>>2]+I|0,B=(S^(k^S)&F)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=E^(E^n)&e)|0)>>>0>>0?B+1|0:B,Q=UI(e,F,50),c=f,Q=UI(e,F,46)^Q,c^=f,Q=(t=UI(e,F,23)^Q)+I|0,I=(f^c)+B|0,I=Q>>>0>>0?I+1|0:I,B=UI(s,_,36),c=f,B=UI(s,_,30)^B,t=f^c,w=UI(s,_,25)^B,B=((h|p)&_|h&p)+(f^t)|0,B=((c=w+((y|D)&s|y&D)|0)>>>0>>0?B+1|0:B)+I|0,c=B=(t=Q+c|0)>>>0>>0?B+1|0:B,i[C+16>>2]=t,i[C+20>>2]=B,I=I+r|0,N=I=(r=Q+a|0)>>>0>>0?I+1|0:I,i[C+48>>2]=r,i[C+52>>2]=I,Q=i[(B=H=(I=48|M)+g|0)>>2],B=S+i[B+4>>2]|0,B=(Q=Q+E|0)>>>0>>0?B+1|0:B,Q=(E=i[(I=I+34416|0)>>2])+Q|0,I=i[I+4>>2]+B|0,I=(k^(k^F)&N)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=n^(e^n)&r)|0)>>>0>>0?I+1|0:I,Q=UI(r,N,50),E=f,Q=UI(r,N,46)^Q,E^=f,Q=(a=UI(r,N,23)^Q)+B|0,B=(f^E)+I|0,a=B=Q>>>0>>0?B+1|0:B,I=B,B=UI(t,c,36),E=f,B=UI(t,c,30)^B,w=f^E,S=UI(t,c,25)^B,B=((_|p)&c|_&p)+(f^w)|0,I=((E=S+((s|D)&t|s&D)|0)>>>0>>0?B+1|0:B)+I|0,w=I=(B=E)>>>0>(E=Q+E|0)>>>0?I+1|0:I,i[C+8>>2]=E,i[C+12>>2]=I,B=a+h|0,S=B=(U=Q+y|0)>>>0>>0?B+1|0:B,i[C+40>>2]=U,i[C+44>>2]=B,Q=i[(I=d=(B=56|M)+g|0)>>2],I=k+i[I+4>>2]|0,I=(Q=Q+n|0)>>>0>>0?I+1|0:I,Q=(a=i[(B=B+34416|0)>>2])+Q|0,B=i[B+4>>2]+I|0,B=(F^(F^N)&S)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=e^(e^r)&U)|0)>>>0>>0?B+1|0:B,Q=UI(U,S,50),a=f,Q=UI(U,S,46)^Q,a^=f,Q=(h=UI(U,S,23)^Q)+I|0,I=(f^a)+B|0,I=Q>>>0>>0?I+1|0:I,B=UI(E,w,36),a=f,B=UI(E,w,30)^B,h=f^a,y=UI(E,w,25)^B,B=((_|c)&w|_&c)+(f^h)|0,B=((a=y+((t|s)&E|t&s)|0)>>>0>>0?B+1|0:B)+I|0,h=B=(h=a)>>>0>(a=Q+a|0)>>>0?B+1|0:B,i[C>>2]=a,i[C+4>>2]=B,I=I+p|0,k=I=(y=Q+D|0)>>>0>>0?I+1|0:I,i[C+32>>2]=y,i[C+36>>2]=I,Q=i[(B=x=(I=64|M)+g|0)>>2],B=F+i[B+4>>2]|0,B=(Q=Q+e|0)>>>0>>0?B+1|0:B,Q=(e=i[(I=I+34416|0)>>2])+Q|0,I=i[I+4>>2]+B|0,I=(N^(S^N)&k)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=r^(r^U)&y)|0)>>>0>>0?I+1|0:I,Q=UI(y,k,50),e=f,Q=UI(y,k,46)^Q,e^=f,Q=(n=UI(y,k,23)^Q)+B|0,B=(f^e)+I|0,p=B=Q>>>0>>0?B+1|0:B,I=B,B=UI(a,h,36),e=f,B=UI(a,h,30)^B,n=f^e,D=UI(a,h,25)^B,B=((c|w)&h|c&w)+(f^n)|0,I=((e=D+((E|t)&a|E&t)|0)>>>0>>0?B+1|0:B)+I|0,e=I=(n=Q+e|0)>>>0>>0?I+1|0:I,i[C+56>>2]=n,i[C+60>>2]=I,B=_+p|0,F=B=(_=Q+s|0)>>>0>>0?B+1|0:B,i[C+24>>2]=_,i[C+28>>2]=B,Q=i[(I=b=(B=72|M)+g|0)>>2],I=N+i[I+4>>2]|0,I=(Q=Q+r|0)>>>0>>0?I+1|0:I,Q=(r=i[(B=B+34416|0)>>2])+Q|0,B=i[B+4>>2]+I|0,B=(S^(k^S)&F)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=U^(y^U)&_)|0)>>>0>>0?B+1|0:B,Q=UI(_,F,50),r=f,Q=UI(_,F,46)^Q,r^=f,Q=(p=UI(_,F,23)^Q)+I|0,I=(f^r)+B|0,I=Q>>>0

>>0?I+1|0:I,B=UI(n,e,36),r=f,B=UI(n,e,30)^B,p=f^r,D=UI(n,e,25)^B,B=((h|w)&e|h&w)+(f^p)|0,B=((r=D+((E|a)&n|E&a)|0)>>>0>>0?B+1|0:B)+I|0,r=B=(p=Q+r|0)>>>0>>0?B+1|0:B,i[C+48>>2]=p,i[C+52>>2]=B,I=I+c|0,N=I=(c=Q+t|0)>>>0>>0?I+1|0:I,i[C+16>>2]=c,i[C+20>>2]=I,I=(I=U)+(t=i[(B=U=(Q=80|M)+g|0)>>2])|0,B=i[B+4>>2]+S|0,B=I>>>0>>0?B+1|0:B,Q=(s=I)+(t=i[(I=Q+34416|0)>>2])|0,I=i[I+4>>2]+B|0,I=(k^(k^F)&N)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=y^(_^y)&c)|0)>>>0>>0?I+1|0:I,Q=UI(c,N,50),t=f,Q=UI(c,N,46)^Q,t^=f,Q=(D=UI(c,N,23)^Q)+B|0,B=(f^t)+I|0,s=B=Q>>>0>>0?B+1|0:B,I=B,B=UI(p,r,36),t=f,B=UI(p,r,30)^B,D=f^t,S=UI(p,r,25)^B,B=((e|h)&r|e&h)+(f^D)|0,I=((t=S+((a|n)&p|a&n)|0)>>>0>>0?B+1|0:B)+I|0,t=I=(D=Q+t|0)>>>0>>0?I+1|0:I,i[C+40>>2]=D,i[C+44>>2]=I,B=s+w|0,w=B=(s=Q+E|0)>>>0>>0?B+1|0:B,i[C+8>>2]=s,i[C+12>>2]=B,B=34416+(I=88|M)|0,E=i[(I=K=I+g|0)>>2],Q=i[B>>2]+E|0,I=i[B+4>>2]+i[I+4>>2]|0,B=k+(Q>>>0>>0?I+1|0:I)|0,B=(F^(F^N)&w)+(B=(I=Q+y|0)>>>0>>0?B+1|0:B)|0,B=(I=(Q=_^(_^c)&s)+I|0)>>>0>>0?B+1|0:B,Q=UI(s,w,50),E=f,Q=UI(s,w,46)^Q,E^=f,Q=(y=UI(s,w,23)^Q)+I|0,I=(f^E)+B|0,I=Q>>>0>>0?I+1|0:I,B=UI(D,t,36),E=f,B=UI(D,t,30)^B,y=f^E,S=UI(D,t,25)^B,B=((e|r)&t|e&r)+(f^y)|0,B=((E=S+((p|n)&D|p&n)|0)>>>0>>0?B+1|0:B)+I|0,y=B=(y=E)>>>0>(E=Q+E|0)>>>0?B+1|0:B,i[C+32>>2]=E,i[C+36>>2]=B,I=I+h|0,h=I=(B=a)>>>0>(a=Q+a|0)>>>0?I+1|0:I,i[C>>2]=a,i[C+4>>2]=I,B=34416+(I=96|M)|0,S=i[(I=v=I+g|0)>>2],Q=i[B>>2]+S|0,B=i[B+4>>2]+i[I+4>>2]|0,I=F+(Q>>>0>>0?B+1|0:B)|0,I=(B=Q+_|0)>>>0<_>>>0?I+1|0:I,Q=(_=c^(c^s)&a)+B|0,B=(N^(w^N)&h)+I|0,B=Q>>>0<_>>>0?B+1|0:B,I=UI(a,h,50),_=f,I=UI(a,h,46)^I,_^=f,F=Q,Q=UI(a,h,23)^I,B=(f^_)+B|0,k=B=(I=F+Q|0)>>>0>>0?B+1|0:B,Q=I,I=UI(E,y,36),_=f,I=UI(E,y,30)^I,S=f^_,F=UI(E,y,25)^I,I=((t|r)&y|t&r)+(f^S)|0,B=((_=F+((p|D)&E|p&D)|0)>>>0>>0?I+1|0:I)+B|0,_=B=(S=Q+_|0)>>>0<_>>>0?B+1|0:B,i[C+24>>2]=S,i[C+28>>2]=B,B=e+k|0,e=B=(n=Q+n|0)>>>0>>0?B+1|0:B,i[C+56>>2]=n,i[C+60>>2]=B,B=34416+(I=104|M)|0,k=i[(I=L=I+g|0)>>2],Q=i[B>>2]+k|0,I=i[B+4>>2]+i[I+4>>2]|0,B=N+(Q>>>0>>0?I+1|0:I)|0,B=(I=Q+c|0)>>>0>>0?B+1|0:B,Q=(c=s^(a^s)&n)+I|0,I=(w^(h^w)&e)+B|0,I=Q>>>0>>0?I+1|0:I,B=UI(n,e,50),c=f,B=UI(n,e,46)^B,c^=f,k=UI(n,e,23)^B,B=(f^c)+I|0,F=B=(Q=k+Q|0)>>>0>>0?B+1|0:B,I=B,B=UI(S,_,36),c=f,B=UI(S,_,30)^B,k=f^c,N=UI(S,_,25)^B,B=((t|y)&_|t&y)+(f^k)|0,I=((c=N+((E|D)&S|E&D)|0)>>>0>>0?B+1|0:B)+I|0,c=I=(k=Q+c|0)>>>0>>0?I+1|0:I,i[C+16>>2]=k,i[C+20>>2]=I,I=r+F|0,r=I=(p=Q+p|0)>>>0>>0?I+1|0:I,i[C+48>>2]=p,i[C+52>>2]=I,B=34416+(I=112|M)|0,F=i[(Q=N=I+g|0)>>2],I=i[B>>2]+F|0,B=i[B+4>>2]+i[Q+4>>2]|0,B=w+(I>>>0>>0?B+1|0:B)|0,B=(h^(e^h)&r)+(B=(I=I+s|0)>>>0>>0?B+1|0:B)|0,B=(I=(Q=a^(a^n)&p)+I|0)>>>0>>0?B+1|0:B,Q=UI(p,r,50),s=f,Q=UI(p,r,46)^Q,s^=f,Q=(w=UI(p,r,23)^Q)+I|0,I=(f^s)+B|0,F=I=Q>>>0>>0?I+1|0:I,B=I,I=UI(k,c,36),s=f,I=UI(k,c,30)^I,w=f^s,R=UI(k,c,25)^I,I=((_|y)&c|_&y)+(f^w)|0,B=((s=R+((E|S)&k|E&S)|0)>>>0>>0?I+1|0:I)+B|0,s=B=(w=Q+s|0)>>>0>>0?B+1|0:B,i[C+8>>2]=w,i[C+12>>2]=B,B=t+F|0,Q=B=(t=Q+D|0)>>>0>>0?B+1|0:B,i[C+40>>2]=t,i[C+44>>2]=B,B=34416+(I=120|M)|0,M=i[(I=D=I+g|0)>>2],F=i[B>>2]+M|0,B=i[B+4>>2]+i[I+4>>2]|0,I=h+(F>>>0>>0?B+1|0:B)|0,I=(e^(e^r)&Q)+(I=(B=a+F|0)>>>0>>0?I+1|0:I)|0,I=(B=(a=n^(p^n)&t)+B|0)>>>0>>0?I+1|0:I,a=UI(t,Q,50),e=f,a=UI(t,Q,46)^a,e^=f,Q=(a=UI(t,Q,23)^a)+B|0,B=(f^e)+I|0,B=Q>>>0>>0?B+1|0:B,a=Q,e=B,I=B,B=UI(w,s,36),t=f,B=UI(w,s,30)^B,r=f^t,h=UI(w,s,25)^B,B=((_|c)&s|_&c)+(f^r)|0,I=((t=h+((k|S)&w|k&S)|0)>>>0>>0?B+1|0:B)+I|0,I=(Q=Q+t|0)>>>0>>0?I+1|0:I,i[C>>2]=Q,i[C+4>>2]=I,B=e+y|0,B=(r=E)>>>0>(E=E+a|0)>>>0?B+1|0:B,i[C+32>>2]=E,i[C+36>>2]=B,64!=(0|P);)c=((P=P+16|0)<<3)+g|0,a=i[G>>2],_=i[G+4>>2],R=i[b>>2],e=I=i[b+4>>2],B=I,Q=I=i[N+4>>2],I=UI(S=i[N>>2],I,45),E=f,r=((63&Q)<<26|S>>>6)^(I=UI(S,Q,3)^I),I=(Q>>>6^(t=f^E))+B|0,B=((E=r+R|0)>>>0>>0?I+1|0:I)+_|0,B=(I=E+a|0)>>>0>>0?B+1|0:B,a=E=i[l+4>>2],E=UI(_=i[l>>2],E,63),t=f,E=((127&a)<<25|_>>>7)^UI(_,a,56)^E,B=(f^t^a>>>7)+B|0,E=B=E>>>0>(k=E+I|0)>>>0?B+1|0:B,i[c>>2]=k,i[c+4>>2]=B,_=(N=i[U>>2])+_|0,I=(c=i[U+4>>2])+a|0,B=_>>>0>>0?I+1|0:I,a=I=i[D+4>>2],I=UI(F=i[D>>2],I,45),t=f,r=_,_=((63&a)<<26|F>>>6)^UI(F,a,3)^I,B=(f^t^a>>>6)+B|0,_=_>>>0>(r=r+_|0)>>>0?B+1|0:B,B=UI(t=i[Y>>2],I=i[Y+4>>2],63),h=f,s=r,r=((127&I)<<25|t>>>7)^UI(t,I,56)^B,B=(f^h^I>>>7)+_|0,_=B=r>>>0>(w=s+r|0)>>>0?B+1|0:B,i[G+136>>2]=w,i[G+140>>2]=B,B=(U=i[K>>2])+t|0,I=(t=i[K+4>>2])+I|0,r=UI(k,E,45),h=f,r=(y=((63&E)<<26|k>>>6)^UI(k,E,3)^r)+B|0,B=(f^h^E>>>6)+(B>>>0>>0?I+1|0:I)|0,B=r>>>0>>0?B+1|0:B,h=I=i[u+4>>2],I=UI(y=i[u>>2],I,63),n=f,s=r,r=((127&h)<<25|y>>>7)^UI(y,h,56)^I,B=(f^n^h>>>7)+B|0,r=B=r>>>0>(M=s+r|0)>>>0?B+1|0:B,i[G+144>>2]=M,i[G+148>>2]=B,y=(l=i[v>>2])+y|0,I=(I=h)+(h=i[v+4>>2])|0,B=y>>>0>>0?I+1|0:I,I=UI(w,_,45),n=f,p=((63&_)<<26|w>>>6)^UI(w,_,3)^I,B=(f^n^_>>>6)+B|0,B=(y=p+y|0)>>>0

>>0?B+1|0:B,n=I=i[m+4>>2],I=UI(p=i[m>>2],I,63),D=f,s=y,y=((127&n)<<25|p>>>7)^UI(p,n,56)^I,B=(f^D^n>>>7)+B|0,y=B=y>>>0>(Y=s+y|0)>>>0?B+1|0:B,i[G+152>>2]=Y,i[G+156>>2]=B,I=(u=i[L>>2])+p|0,B=(B=n)+(n=i[L+4>>2])|0,p=UI(M,r,45),D=f,p=((63&r)<<26|M>>>6)^UI(M,r,3)^p,B=(f^D^r>>>6)+(I>>>0>>0?B+1|0:B)|0,p=(s=p+I|0)>>>0

>>0?B+1|0:B,B=UI(D=i[J>>2],I=i[J+4>>2],63),m=f,K=s,s=((127&I)<<25|D>>>7)^(B=UI(D,I,56)^B),B=(I>>>7^(J=f^m))+p|0,p=B=s>>>0>(m=K+s|0)>>>0?B+1|0:B,i[G+160>>2]=m,i[G+164>>2]=B,I=I+Q|0,I=(B=D+S|0)>>>0>>0?I+1|0:I,D=UI(Y,y,45),s=f,D=(J=((63&y)<<26|Y>>>6)^UI(Y,y,3)^D)+B|0,B=(f^s^y>>>6)+I|0,B=D>>>0>>0?B+1|0:B,s=i[H>>2],H=I=i[H+4>>2],I=UI(s,I,63),J=f,I=UI(s,H,56)^I,K=D,B=(H>>>7^(b=f^J))+B|0,D=B=(D=((127&H)<<25|s>>>7)^I)>>>0>(J=K+D|0)>>>0?B+1|0:B,i[G+168>>2]=J,i[G+172>>2]=B,I=a+H|0,I=(B=s+F|0)>>>0>>0?I+1|0:I,K=s=i[d+4>>2],s=UI(b=i[d>>2],s,63),H=f,s=(d=((127&K)<<25|b>>>7)^UI(b,K,56)^s)+B|0,B=(f^H^K>>>7)+I|0,I=s>>>0>>0?B+1|0:B,B=UI(m,p,45),H=f,B=UI(m,p,3)^B,d=f^H,H=s,I=(p>>>6^d)+I|0,s=I=(s=((63&p)<<26|m>>>6)^B)>>>0>(H=H+s|0)>>>0?I+1|0:I,i[G+176>>2]=H,i[G+180>>2]=I,v=i[x>>2],x=I=i[x+4>>2],d=I,I=UI(R,e,63),B=f,L=((127&e)<<25|R>>>7)^UI(R,e,56)^I,I=(f^B^e>>>7)+_|0,B=((w=L+w|0)>>>0>>0?I+1|0:I)+d|0,B=(I=w+v|0)>>>0>>0?B+1|0:B,_=UI(H,s,45),w=f,d=(_=((63&s)<<26|H>>>6)^UI(H,s,3)^_)+I|0,I=(f^w^s>>>6)+B|0,_=I=_>>>0>d>>>0?I+1|0:I,i[G+192>>2]=d,i[G+196>>2]=I,B=E+K|0,B=(I=k+b|0)>>>0>>0?B+1|0:B,w=UI(v,x,63),b=f,K=((127&x)<<25|v>>>7)^UI(v,x,56)^w,B=(f^b^x>>>7)+B|0,I=(w=K+I|0)>>>0>>0?B+1|0:B,B=UI(J,D,45),b=f,B=UI(J,D,3)^B,x=w,I=(D>>>6^(K=f^b))+I|0,w=I=(w=((63&D)<<26|J>>>6)^B)>>>0>(b=x+w|0)>>>0?I+1|0:I,i[G+184>>2]=b,i[G+188>>2]=I,I=UI(U,t,63),B=f,I=((127&t)<<25|U>>>7)^UI(U,t,56)^I,B=(f^B^t>>>7)+c|0,I=y+(I>>>0>(K=I+N|0)>>>0?B+1|0:B)|0,I=(B=Y+K|0)>>>0>>0?I+1|0:I,y=UI(d,_,45),Y=f,y=UI(d,_,3)^y,K=f^Y,Y=(y^=(63&_)<<26|d>>>6)+B|0,B=(_>>>6^K)+I|0,y=B=y>>>0>Y>>>0?B+1|0:B,i[G+208>>2]=Y,i[G+212>>2]=B,I=UI(N,c,63),B=f,K=UI(N,c,56)^I,B=((I=c>>>7|0)^f^B)+e|0,I=r+((c=(N=K^((127&c)<<25|N>>>7))+R|0)>>>0>>0?B+1|0:B)|0,I=(B=c+M|0)>>>0>>0?I+1|0:I,e=UI(b,w,45),c=f,r=(e=((63&w)<<26|b>>>6)^UI(b,w,3)^e)+B|0,B=(f^c^w>>>6)+I|0,e=B=e>>>0>r>>>0?B+1|0:B,i[G+200>>2]=r,i[G+204>>2]=B,I=UI(u,n,63),B=f,N=((127&n)<<25|u>>>7)^UI(u,n,56)^I,I=(f^B^n>>>7)+h|0,B=D+((c=N+l|0)>>>0>>0?I+1|0:I)|0,B=(I=c+J|0)>>>0>>0?B+1|0:B,c=UI(Y,y,45),D=f,N=I,I=y>>>6|0,c=((63&y)<<26|Y>>>6)^UI(Y,y,3)^c,B=(I^f^D)+B|0,c=B=c>>>0>(y=N+c|0)>>>0?B+1|0:B,i[G+224>>2]=y,i[G+228>>2]=B,I=UI(l,h,63),B=f,I=UI(l,h,56)^I,D=f^B,N=((127&h)<<25|l>>>7)^I,I=((B=h>>>7|0)^D)+t|0,B=p+((h=N+U|0)>>>0>>0?I+1|0:I)|0,B=(I=h+m|0)>>>0>>0?B+1|0:B,t=UI(r,e,45),h=f,D=I,I=e>>>6|0,e=((63&e)<<26|r>>>6)^UI(r,e,3)^t,I=(I^f^h)+B|0,e=I=(t=D+e|0)>>>0>>0?I+1|0:I,i[G+216>>2]=t,i[G+220>>2]=I,I=UI(F,a,63),B=f,h=((127&a)<<25|F>>>7)^UI(F,a,56)^I,B=(f^B^a>>>7)+Q|0,B=w+((I=h+S|0)>>>0>>0?B+1|0:B)|0,I=(r=I+b|0)>>>0>>0?B+1|0:B,B=UI(y,c,45),h=f,D=r,r=UI(y,c,3)^B,B=c>>>6|0,c=D+(r^=(63&c)<<26|y>>>6)|0,I=(B^f^h)+I|0,i[G+240>>2]=c,i[G+244>>2]=c>>>0>>0?I+1|0:I,I=UI(S,Q,63),B=f,I=UI(S,Q,56)^I,c=f^B,B=((B=Q>>>7|0)^c)+n|0,I=s+((I^=(127&Q)<<25|S>>>7)>>>0>(Q=I+u|0)>>>0?B+1|0:B)|0,I=(B=Q+H|0)>>>0>>0?I+1|0:I,Q=UI(t,e,45),c=f,r=B,B=e>>>6|0,Q=((63&e)<<26|t>>>6)^UI(t,e,3)^Q,B=(B^f^c)+I|0,Q=B=Q>>>0>(e=r+Q|0)>>>0?B+1|0:B,i[G+232>>2]=e,i[G+236>>2]=B,I=UI(k,E,63),B=f,r=UI(k,E,56)^I,B=((I=E>>>7|0)^f^B)+a|0,I=_+((E=(c=r^((127&E)<<25|k>>>7))+F|0)>>>0>>0?B+1|0:B)|0,I=(B=E+d|0)>>>0>>0?I+1|0:I,E=UI(e,Q,45),a=f,r=B,B=Q>>>6|0,Q=r+(E=((63&Q)<<26|e>>>6)^UI(e,Q,3)^E)|0,B=(B^f^a)+I|0,i[G+248>>2]=Q,i[G+252>>2]=Q>>>0>>0?B+1|0:B;I=I+i[A+4>>2]|0,I=(g=Q+i[A>>2]|0)>>>0>>0?I+1|0:I,i[A>>2]=g,i[A+4>>2]=I,B=i[A+12>>2]+i[C+12>>2]|0,I=(g=i[C+8>>2])+i[A+8>>2]|0,i[A+8>>2]=I,i[A+12>>2]=I>>>0>>0?B+1|0:B,B=i[A+20>>2]+i[C+20>>2]|0,I=(g=i[C+16>>2])+i[A+16>>2]|0,i[A+16>>2]=I,i[A+20>>2]=I>>>0>>0?B+1|0:B,I=i[A+28>>2]+i[C+28>>2]|0,g=(B=i[C+24>>2])+i[A+24>>2]|0,i[A+24>>2]=g,i[A+28>>2]=g>>>0>>0?I+1|0:I,B=i[A+36>>2]+i[C+36>>2]|0,I=(g=i[C+32>>2])+i[A+32>>2]|0,i[A+32>>2]=I,i[A+36>>2]=I>>>0>>0?B+1|0:B,I=i[A+44>>2]+i[C+44>>2]|0,g=(B=i[C+40>>2])+i[A+40>>2]|0,i[A+40>>2]=g,i[A+44>>2]=g>>>0>>0?I+1|0:I,B=i[A+52>>2]+i[C+52>>2]|0,I=(g=i[C+48>>2])+i[A+48>>2]|0,i[A+48>>2]=I,i[A+52>>2]=I>>>0>>0?B+1|0:B,B=i[A+60>>2]+i[C+60>>2]|0,I=(g=i[C+56>>2])+i[A+56>>2]|0,i[A+56>>2]=I,i[A+60>>2]=I>>>0>>0?B+1|0:B}function F(A,I){var g,C=0,B=0,Q=0,E=0,c=0,t=0,r=0,e=0,y=0,p=0,w=0,n=0,k=0,F=0,S=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0;if(s=g=s-4096|0,A){A:{I:{if(2==(0|(E=i[A+36>>2]))){if(oA=i[A+4>>2],(IA=i[I>>2])|(V=o[I+8|0])>>>0>=2)break I;IA=0}else V=o[I+8|0],oA=i[A+4>>2],IA=i[I>>2];if(bg(g+3072|0,0,1024),bg(g+2104|0,0,968),i[g+2048>>2]=IA,i[g+2052>>2]=0,u=i[I+4>>2],i[g+2064>>2]=V,i[g+2068>>2]=0,i[g+2056>>2]=u,i[g+2060>>2]=0,i[g+2072>>2]=i[A+16>>2],i[g+2076>>2]=0,u=i[A+8>>2],i[g+2088>>2]=E,i[g+2092>>2]=0,i[g+2080>>2]=u,i[g+2084>>2]=0,!i[A+20>>2])break A;for(u=0;(S=127&r)||(u=(z=z+1|0)?u:u+1|0,i[g+2096>>2]=z,i[g+2100>>2]=u,E=bg(g,0,1024),bg(E+1024|0,0,1024),N(C=E+3072|0,E+2048|0,E),N(C,E,E+1024|0)),S=i[4+(E=(g+1024|0)+(S<<3)|0)>>2],i[(C=(r<<3)+oA|0)>>2]=i[E>>2],i[C+4>>2]=S,(S=i[A+20>>2])>>>0>(r=r+1|0)>>>0;);break A}S=i[A+20>>2],cA=1}if(!((u=(aA=!(V|IA))<<1)>>>0>=S>>>0))for(E=i[A+24>>2],iA=i[I+4>>2],r=(z=(a(E,iA)+u|0)+a(S,V)|0)+((z>>>0)%(E>>>0)|0?-1:E-1|0)|0,tA=V+1|0;;){C=i[A+28>>2],EA=1==((z>>>0)%((E=i[A+24>>2])>>>0)|0)?z-1|0:r,r=cA?i[i[A>>2]+4>>2]+(EA<<10)|0:(u<<3)+oA|0,B=i[r>>2],r=i[r+4>>2],i[I+12>>2]=u,C=aA?iA:(r>>>0)%(C>>>0)|0;A:if(IA)r=E+((0|C)==(0|iA)?~S+u|0:(u?0:-1)-S|0)|0,Q=0,3!=(0|V)&&(Q=a(S,tA));else{if(!V){r=u-1|0,Q=0;break A}if(r=a(S,V),(0|C)==(0|iA)){r=(r+u|0)-1|0,Q=0;break A}r=r-!u|0,Q=0}S=Q,c=(p=i[i[A>>2]+4>>2])+(a(C,E)<<10)|0,y=(C=r-1|0)>>>0>(Q=C+S|0)>>>0,Ig(B,0,B,0),Ig(r,0,f,0),S=Q-(r=f)|0,C=0,e=0;A:{I:{g:{C:{B:{Q:{i:{o:{E:{a:{if(r=y-(Q>>>0>>0)|0){if(!E)break a;break E}h=S-a((S>>>0)/(E>>>0)|0,E)|0,D=0,f=0;break A}if(!S)break o;break i}if(!((B=E-1|0)&E))break Q;t=0-(B=(_(E)+33|0)-_(r)|0)|0;break C}h=0,D=r,f=0;break A}if((C=32-_(r)|0)>>>0<31)break B;break g}if(h=B&S,D=0,1==(0|E))break I;E=31&(S=FC(E)),(63&S)>>>0>=32?B=r>>>E|0:(C=r>>>E|0,B=0),f=C;break A}B=C+1|0,t=63-C|0}if(Q=31&(C=63&B),C>>>0>=32?(C=0,y=r>>>Q|0):(C=r>>>Q|0,y=((1<>>Q),Q=31&(t&=63),t>>>0>=32?(r=S<>>32-Q|r<>>31,y=(C=y<<1|r>>>31)-(b=E&(Q=F-(d+(C>>>0>t>>>0)|0)>>31))|0,C=d-(C>>>0>>0)|0,r=r<<1|S>>>31,S=e|S<<1,e=1&Q,B=B-1|0;);h=y,D=C,f=r<<1|S>>>31;break A}h=S,D=r,r=0}f=r}if(f=D,r=(h<<10)+c|0,E=p+(EA<<10)|0,_A=p+(z<<10)|0,IA)N(E,r,_A);else{for(Ng(g+3072|0,r,1024),r=0;Q=i[(B=(S=r<<3)+(C=g+3072|0)|0)>>2],p=i[(y=E+S|0)>>2],y=i[B+4>>2]^i[y+4>>2],i[B>>2]=Q^p,i[B+4>>2]=y,y=i[(B=(Q=8|S)+C|0)>>2],p=i[(Q=E+Q|0)>>2],Q=i[B+4>>2]^i[Q+4>>2],i[B>>2]=y^p,i[B+4>>2]=Q,y=i[(B=(Q=16|S)+C|0)>>2],p=i[(Q=E+Q|0)>>2],Q=i[B+4>>2]^i[Q+4>>2],i[B>>2]=y^p,i[B+4>>2]=Q,Q=i[(S=(B=24|S)+C|0)>>2],y=i[(B=B+E|0)>>2],B=i[S+4>>2]^i[B+4>>2],i[S>>2]=Q^y,i[S+4>>2]=B,128!=(0|(r=r+4|0)););for(Ng(g+2048|0,C,1024),S=0,r=0;Q=(y=i[56+(E=(g+3072|0)+(r<<7)|0)>>2])+(B=i[E+24>>2])|0,p=(F=i[E+60>>2])+(C=i[E+28>>2])|0,e=Ig(B<<1&-2,1&(C<<1|B>>>31),y,0),B=f+(B>>>0>Q>>>0?p+1|0:p)|0,p=(C=e+Q|0)>>>0>>0?B+1|0:B,c=(e=UI(C^i[E+120>>2],p^i[E+124>>2],32))+(B=i[E+88>>2])|0,t=(k=f)+(Q=i[E+92>>2])|0,d=Ig(e,0,B<<1&-2,1&(Q<<1|B>>>31)),B=f+(B>>>0>c>>>0?t+1|0:t)|0,b=UI(y^(Q=d+c|0),F^(v=Q>>>0>>0?B+1|0:B),40),w=1+(B=p+(BA=f)|0)|0,t=B,y=(B=C+b|0)>>>0>>0?w:t,d=(C=Ig(b,0,C<<1&-2,1&(p<<1|C>>>31)))+B|0,B=f+y|0,k=UI(d^e,k^(X=C>>>0>d>>>0?B+1|0:B),48),Y=w=f,y=(n=i[E+44>>2])+(C=i[E+12>>2])|0,e=(p=i[E+40>>2])+(B=i[E+8>>2])|0,c=Ig(B<<1&-2,1&(C<<1|B>>>31),p,0),B=f+(B>>>0>e>>>0?y+1|0:y)|0,c=(C=e+c|0)>>>0>>0?B+1|0:B,e=(t=UI(C^i[E+104>>2],c^i[E+108>>2],32))+(y=i[E+72>>2])|0,F=(M=f)+(B=i[E+76>>2])|0,G=Ig(t,0,y<<1&-2,1&(B<<1|y>>>31)),y=f+(e>>>0>>0?F+1|0:F)|0,e=UI(H=p^(B=G+e|0),n^(p=B>>>0>>0?y+1|0:y),40),G=1+(y=c+(F=f)|0)|0,n=y,n=(y=C+e|0)>>>0>>0?G:n,C=Ig(e,0,C<<1&-2,1&(c<<1|C>>>31)),c=f+n|0,n=UI((y=C+y|0)^t,M^(O=C>>>0>y>>>0?c+1|0:c),48),G=1+(C=p+(QA=f)|0)|0,t=C,c=(C=B+n|0)>>>0>>0?G:t,p=C+(B=Ig(n,0,B<<1&-2,1&(p<<1|B>>>31)))|0,C=f+c|0,M=UI(e^p,F^(Z=B>>>0>p>>>0?C+1|0:C),1),gA=H=f,e=(J=i[E+36>>2])+(C=i[E+4>>2])|0,t=(c=i[E+32>>2])+(B=i[E>>2])|0,F=Ig(B<<1&-2,1&(C<<1|B>>>31),c,0),B=f+(B>>>0>t>>>0?e+1|0:e)|0,t=(C=t+F|0)>>>0>>0?B+1|0:B,F=(q=UI(C^i[E+96>>2],t^i[E+100>>2],32))+(B=i[(e=j=E- -64|0)>>2])|0,G=($=f)+(e=i[e+4>>2])|0,R=Ig(q,0,B<<1&-2,1&(e<<1|B>>>31)),B=f+(B>>>0>F>>>0?G+1|0:G)|0,G=UI(c^(e=R+F|0),J^(R=e>>>0>>0?B+1|0:B),40),F=1+(B=t+(AA=f)|0)|0,c=B,c=(B=C+G|0)>>>0>>0?F:c,C=B+(t=Ig(G,0,C<<1&-2,1&(t<<1|C>>>31)))|0,B=f+c|0,c=1+(B=(W=C>>>0>>0?B+1|0:B)+H|0)|0,t=B,t=(B=C+M|0)>>>0>>0?c:t,c=B+(F=Ig(M,0,C<<1&-2,1&(W<<1|C>>>31)))|0,B=f+t|0,w=UI(c^k,(l=c>>>0>>0?B+1|0:B)^w,32),L=f,F=(K=i[E+52>>2])+(B=i[E+20>>2])|0,J=(H=i[E+48>>2])+(t=i[E+16>>2])|0,m=Ig(t<<1&-2,1&(B<<1|t>>>31),H,0),t=f+(t>>>0>J>>>0?F+1|0:F)|0,J=(B=J+m|0)>>>0>>0?t+1|0:t,P=(m=UI(B^i[E+112>>2],J^i[E+116>>2],32))+(F=i[E+80>>2])|0,x=(CA=f)+(t=i[E+84>>2])|0,U=Ig(m,0,F<<1&-2,1&(t<<1|F>>>31)),F=f+(F>>>0>P>>>0?x+1|0:x)|0,H=UI(H^(t=U+P|0),K^(P=t>>>0>>0?F+1|0:F),40),U=1+(F=J+(K=f)|0)|0,x=F,x=(F=B+H|0)>>>0>>0?U:x,B=Ig(H,0,B<<1&-2,1&(J<<1|B>>>31)),J=f+x|0,J=UI(U=(F=B+F|0)^m,CA^(m=B>>>0>F>>>0?J+1|0:J),48),U=1+(B=P+(CA=f)|0)|0,x=B,x=(B=t+J|0)>>>0>>0?U:x,t=Ig(J,0,t<<1&-2,1&(P<<1|t>>>31)),P=f+x|0,U=1+(t=(P=(B=t+B|0)>>>0>>0?P+1|0:P)+L|0)|0,x=t,x=(t=B+w|0)>>>0>>0?U:x,T=M^(t=(U=Ig(w,0,B<<1&-2,1&(P<<1|B>>>31)))+t|0),M=f+x|0,M=UI(T,gA^(x=t>>>0>>0?M+1|0:M),40),rA=1+(U=l+(gA=f)|0)|0,T=U,T=(U=c+M|0)>>>0>>0?rA:T,c=(l=Ig(M,0,c<<1&-2,1&(l<<1|c>>>31)))+U|0,i[E>>2]=c,U=f+T|0,l=c>>>0>>0?U+1|0:U,i[E+4>>2]=l,c=UI(c^w,l^L,48),i[E+120>>2]=c,w=f,i[E+124>>2]=w,T=1+(w=w+x|0)|0,U=w,l=(w=c+t|0)>>>0>>0?T:U,c=(t=Ig(c,0,t<<1&-2,1&(x<<1|t>>>31)))+w|0,i[E+80>>2]=c,w=f+l|0,t=c>>>0>>0?w+1|0:w,i[E+84>>2]=t,eA=E,yA=UI(c^M,t^gA,1),i[eA+40>>2]=yA,i[E+44>>2]=f,c=UI(B^H,K^P,1),w=1+(B=O+(H=f)|0)|0,t=B,t=(B=c+y|0)>>>0>>0?w:t,B=B+(M=Ig(c,0,y<<1&-2,1&(O<<1|y>>>31)))|0,y=f+t|0,t=UI(C^q,W^$,48),y=UI(t^B,(M=B>>>0>>0?y+1|0:y)^(O=f),32),q=w=f,K=1+(C=v+Y|0)|0,Y=C,W=(C=Q+k|0)>>>0>>0?K:Y,Q=Ig(k,0,Q<<1&-2,1&(v<<1|Q>>>31)),k=f+W|0,Y=1+(Q=(k=(C=Q+C|0)>>>0>>0?k+1|0:k)+w|0)|0,w=Q,w=(Q=C+y|0)>>>0>>0?Y:w,Y=c^(Q=(v=Ig(y,0,C<<1&-2,1&(k<<1|C>>>31)))+Q|0),c=f+w|0,c=UI(Y,H^(w=Q>>>0>>0?c+1|0:c),40),K=1+(v=M+(H=f)|0)|0,Y=v,W=(v=B+c|0)>>>0>>0?K:Y,Y=y^(B=(M=Ig(c,0,B<<1&-2,1&(M<<1|B>>>31)))+v|0),y=f+W|0,y=UI(Y,q^(M=B>>>0>>0?y+1|0:y),48),i[E+96>>2]=y,v=f,i[E+100>>2]=v,i[E+8>>2]=B,i[E+12>>2]=M,K=1+(B=w+v|0)|0,Y=B,M=(B=Q+y|0)>>>0>>0?K:Y,Q=Ig(y,0,Q<<1&-2,1&(w<<1|Q>>>31)),y=f+M|0,eA=E,yA=UI((B=Q+B|0)^c,H^(Q=B>>>0>>0?y+1|0:y),1),i[eA+48>>2]=yA,i[E+52>>2]=f,i[E+88>>2]=B,i[E+92>>2]=Q,y=UI(C^b,k^BA,1),Q=1+(C=m+(b=f)|0)|0,B=C,Q=(C=y+F|0)>>>0>>0?Q:B,B=C+(c=Ig(y,0,F<<1&-2,1&(m<<1|F>>>31)))|0,C=f+Q|0,c=UI(B^n,QA^(F=B>>>0>>0?C+1|0:C),32),k=Q=f,w=1+(C=R+O|0)|0,Q=C,n=(C=e+t|0)>>>0>>0?w:Q,e=Ig(t,0,e<<1&-2,1&(R<<1|e>>>31)),Q=f+n|0,w=1+(Q=k+(e=(C=e+C|0)>>>0>>0?Q+1|0:Q)|0)|0,t=Q,t=(Q=C+c|0)>>>0>>0?w:t,w=y^(Q=Q+(n=Ig(c,0,C<<1&-2,1&(e<<1|C>>>31)))|0),y=f+t|0,y=UI(w,b^(t=Q>>>0>>0?y+1|0:y),40),Y=1+(n=F+(b=f)|0)|0,w=n,M=(n=B+y|0)>>>0>>0?Y:w,B=(F=Ig(y,0,B<<1&-2,1&(F<<1|B>>>31)))+n|0,i[E+16>>2]=B,n=f+M|0,F=B>>>0>>0?n+1|0:n,i[E+20>>2]=F,B=UI(B^c,F^k,48),i[E+104>>2]=B,c=f,i[E+108>>2]=c,w=1+(c=c+t|0)|0,k=c,F=(c=B+Q|0)>>>0>>0?w:k,Q=(B=Ig(B,0,Q<<1&-2,1&(t<<1|Q>>>31)))+c|0,c=f+F|0,F=B=B>>>0>Q>>>0?c+1|0:c,i[j>>2]=Q,i[j+4>>2]=B,B=(e=UI(C^G,e^AA,1))+d|0,c=(k=f)+X|0,C=(t=Ig(d<<1&-2,1&(X<<1|d>>>31),e,0))+B|0,B=f+(B>>>0>>0?c+1|0:c)|0,c=UI(C^J,CA^(t=C>>>0>>0?B+1|0:B),32),n=1+(B=Z+(d=f)|0)|0,w=B,n=(B=c+p|0)>>>0

>>0?n:w,w=e^(B=(p=Ig(c,0,p<<1&-2,1&(Z<<1|p>>>31)))+B|0),e=f+n|0,p=UI(w,k^(e=B>>>0

>>0?e+1|0:e),40),G=1+(n=t+(k=f)|0)|0,w=n,M=(n=C+p|0)>>>0>>0?G:w,w=c^(t=(C=Ig(p,0,C<<1&-2,1&(t<<1|C>>>31)))+n|0),c=f+M|0,C=UI(w,d^(c=C>>>0>t>>>0?c+1|0:c),48),G=1+(n=e+(d=f)|0)|0,w=n,M=(n=C+B|0)>>>0>>0?G:w,B=(e=Ig(C,0,B<<1&-2,1&(e<<1|B>>>31)))+n|0,i[E+72>>2]=B,n=f+M|0,e=B>>>0>>0?n+1|0:n,i[E+76>>2]=e,i[E+112>>2]=C,i[E+116>>2]=d,i[E+24>>2]=t,i[E+28>>2]=c,eA=E,yA=UI(Q^y,F^b,1),i[eA+56>>2]=yA,i[E+60>>2]=f,eA=E,yA=UI(B^p,e^k,1),i[eA+32>>2]=yA,i[E+36>>2]=f,8!=(0|(r=r+1|0)););for(;B=(Q=i[392+(E=(g+3072|0)+(S<<4)|0)>>2])+(C=i[E+136>>2])|0,y=(t=i[E+396>>2])+(r=i[E+140>>2])|0,p=Ig(C<<1&-2,1&(r<<1|C>>>31),Q,0),C=f+(C>>>0>B>>>0?y+1|0:y)|0,y=(r=p+B|0)>>>0

>>0?C+1|0:C,e=(p=UI(r^i[E+904>>2],y^i[E+908>>2],32))+(C=i[E+648>>2])|0,c=(b=f)+(B=i[E+652>>2])|0,F=Ig(p,0,C<<1&-2,1&(B<<1|C>>>31)),C=f+(C>>>0>e>>>0?c+1|0:c)|0,d=UI(Q^(B=F+e|0),t^(J=B>>>0>>0?C+1|0:C),40),t=1+(C=y+(P=f)|0)|0,Q=C,Q=(C=r+d|0)>>>0>>0?t:Q,F=(r=Ig(d,0,r<<1&-2,1&(y<<1|r>>>31)))+C|0,C=f+Q|0,b=UI(F^p,b^(v=r>>>0>F>>>0?C+1|0:C),48),x=G=f,Q=(k=i[E+268>>2])+(r=i[E+12>>2])|0,p=(y=i[E+264>>2])+(C=i[E+8>>2])|0,e=Ig(C<<1&-2,1&(r<<1|C>>>31),y,0),C=f+(C>>>0>p>>>0?Q+1|0:Q)|0,e=(r=p+e|0)>>>0>>0?C+1|0:C,p=(c=UI(r^i[E+776>>2],e^i[E+780>>2],32))+(Q=i[E+520>>2])|0,t=(n=f)+(C=i[E+524>>2])|0,M=Ig(c,0,Q<<1&-2,1&(C<<1|Q>>>31)),Q=f+(Q>>>0>p>>>0?t+1|0:t)|0,p=UI(w=y^(C=M+p|0),k^(y=C>>>0>>0?Q+1|0:Q),40),w=1+(Q=e+(t=f)|0)|0,k=Q,k=(Q=r+p|0)>>>0>>0?w:k,r=Ig(p,0,r<<1&-2,1&(e<<1|r>>>31)),e=f+k|0,k=UI((Q=r+Q|0)^c,n^(X=Q>>>0>>0?e+1|0:e),48),n=1+(r=y+(BA=f)|0)|0,w=r,e=(r=C+k|0)>>>0>>0?n:w,y=r+(C=Ig(k,0,C<<1&-2,1&(y<<1|C>>>31)))|0,r=f+e|0,n=UI(p^y,t^(O=C>>>0>y>>>0?r+1|0:r),1),Y=w=f,p=(H=i[E+260>>2])+(r=i[E+4>>2])|0,c=(e=i[E+256>>2])+(C=i[E>>2])|0,t=Ig(C<<1&-2,1&(r<<1|C>>>31),e,0),C=f+(C>>>0>c>>>0?p+1|0:p)|0,c=(r=c+t|0)>>>0>>0?C+1|0:C,t=(Z=UI(r^i[E+768>>2],c^i[E+772>>2],32))+(C=i[E+512>>2])|0,M=(QA=f)+(p=i[E+516>>2])|0,q=Ig(Z,0,C<<1&-2,1&(p<<1|C>>>31)),C=f+(C>>>0>t>>>0?M+1|0:M)|0,M=UI(e^(p=q+t|0),H^(q=p>>>0>>0?C+1|0:C),40),e=1+(C=c+(gA=f)|0)|0,t=C,e=(C=r+M|0)>>>0>>0?e:t,r=C+(c=Ig(M,0,r<<1&-2,1&(c<<1|r>>>31)))|0,C=f+e|0,w=1+(C=(j=r>>>0>>0?C+1|0:C)+w|0)|0,t=C,c=(C=r+n|0)>>>0>>0?w:t,e=C+(t=Ig(n,0,r<<1&-2,1&(j<<1|r>>>31)))|0,C=f+c|0,G=UI(e^b,(R=e>>>0>>0?C+1|0:C)^G,32),W=f,t=($=i[E+388>>2])+(C=i[E+132>>2])|0,H=(w=i[E+384>>2])+(c=i[E+128>>2])|0,l=Ig(c<<1&-2,1&(C<<1|c>>>31),w,0),c=f+(c>>>0>H>>>0?t+1|0:t)|0,H=(C=H+l|0)>>>0>>0?c+1|0:c,L=(l=UI(C^i[E+896>>2],H^i[E+900>>2],32))+(t=i[E+640>>2])|0,m=(AA=f)+(c=i[E+644>>2])|0,K=Ig(l,0,t<<1&-2,1&(c<<1|t>>>31)),t=f+(t>>>0>L>>>0?m+1|0:m)|0,w=UI(w^(c=K+L|0),$^(L=c>>>0>>0?t+1|0:t),40),U=1+(t=H+($=f)|0)|0,K=t,m=(t=C+w|0)>>>0>>0?U:K,C=Ig(w,0,C<<1&-2,1&(H<<1|C>>>31)),H=f+m|0,H=UI(K=(t=C+t|0)^l,AA^(l=C>>>0>t>>>0?H+1|0:H),48),U=1+(C=L+(AA=f)|0)|0,K=C,m=(C=c+H|0)>>>0>>0?U:K,c=Ig(H,0,c<<1&-2,1&(L<<1|c>>>31)),L=f+m|0,U=1+(c=(L=(C=c+C|0)>>>0>>0?L+1|0:L)+W|0)|0,K=c,m=(c=C+G|0)>>>0>>0?U:K,U=n^(c=(K=Ig(G,0,C<<1&-2,1&(L<<1|C>>>31)))+c|0),n=f+m|0,n=UI(U,Y^(m=c>>>0>>0?n+1|0:n),40),T=1+(K=R+(Y=f)|0)|0,U=K,CA=(K=e+n|0)>>>0>>0?T:U,e=(R=Ig(n,0,e<<1&-2,1&(R<<1|e>>>31)))+K|0,i[E>>2]=e,K=f+CA|0,R=e>>>0>>0?K+1|0:K,i[E+4>>2]=R,e=UI(e^G,R^W,48),i[E+904>>2]=e,G=f,i[E+908>>2]=G,U=1+(G=G+m|0)|0,K=G,R=(G=c+e|0)>>>0>>0?U:K,e=(c=Ig(e,0,c<<1&-2,1&(m<<1|c>>>31)))+G|0,i[E+640>>2]=e,G=f+R|0,c=c>>>0>e>>>0?G+1|0:G,i[E+644>>2]=c,eA=E,yA=UI(e^n,c^Y,1),i[eA+264>>2]=yA,i[E+268>>2]=f,e=UI(C^w,L^$,1),G=1+(C=X+(w=f)|0)|0,n=C,c=(C=Q+e|0)>>>0>>0?G:n,C=C+(n=Ig(e,0,Q<<1&-2,1&(X<<1|Q>>>31)))|0,Q=f+c|0,c=UI(r^Z,j^QA,48),Q=UI(c^C,(n=C>>>0>>0?Q+1|0:Q)^(X=f),32),Z=G=f,K=1+(r=J+x|0)|0,Y=r,j=(r=B+b|0)>>>0>>0?K:Y,B=Ig(b,0,B<<1&-2,1&(J<<1|B>>>31)),b=f+j|0,Y=1+(B=(b=B>>>0>(r=B+r|0)>>>0?b+1|0:b)+G|0)|0,G=B,G=(B=Q+r|0)>>>0>>0?Y:G,Y=e^(B=(J=Ig(Q,0,r<<1&-2,1&(b<<1|r>>>31)))+B|0),e=f+G|0,e=UI(Y,w^(G=B>>>0>>0?e+1|0:e),40),K=1+(J=n+(w=f)|0)|0,Y=J,j=(J=C+e|0)>>>0>>0?K:Y,Y=Q^(C=(n=Ig(e,0,C<<1&-2,1&(n<<1|C>>>31)))+J|0),Q=f+j|0,Q=UI(Y,Z^(n=C>>>0>>0?Q+1|0:Q),48),i[E+768>>2]=Q,J=f,i[E+772>>2]=J,i[E+8>>2]=C,i[E+12>>2]=n,Y=1+(C=G+J|0)|0,n=C,n=(C=B+Q|0)>>>0>>0?Y:n,B=Ig(Q,0,B<<1&-2,1&(G<<1|B>>>31)),Q=f+n|0,eA=E,yA=UI((C=B+C|0)^e,w^(B=C>>>0>>0?Q+1|0:Q),1),i[eA+384>>2]=yA,i[E+388>>2]=f,i[E+648>>2]=C,i[E+652>>2]=B,Q=UI(r^d,b^P,1),B=1+(r=l+(d=f)|0)|0,C=r,B=(r=Q+t|0)>>>0>>0?B:C,C=r+(e=Ig(Q,0,t<<1&-2,1&(l<<1|t>>>31)))|0,r=f+B|0,e=UI(C^k,BA^(t=C>>>0>>0?r+1|0:r),32),b=B=f,k=1+(r=q+X|0)|0,B=r,k=(r=c+p|0)>>>0

>>0?k:B,p=Ig(c,0,p<<1&-2,1&(q<<1|p>>>31)),B=f+k|0,w=1+(B=b+(p=(r=p+r|0)>>>0

>>0?B+1|0:B)|0)|0,k=B,c=(B=r+e|0)>>>0>>0?w:k,w=Q^(B=B+(k=Ig(e,0,r<<1&-2,1&(p<<1|r>>>31)))|0),Q=f+c|0,Q=UI(w,d^(c=B>>>0>>0?Q+1|0:Q),40),n=1+(k=t+(d=f)|0)|0,w=k,n=(k=C+Q|0)>>>0>>0?n:w,C=(t=Ig(Q,0,C<<1&-2,1&(t<<1|C>>>31)))+k|0,i[E+128>>2]=C,k=f+n|0,t=C>>>0>>0?k+1|0:k,i[E+132>>2]=t,C=UI(C^e,t^b,48),i[E+776>>2]=C,e=f,i[E+780>>2]=e,k=1+(e=c+e|0)|0,t=e,t=(e=C+B|0)>>>0>>0?k:t,B=(C=Ig(C,0,B<<1&-2,1&(c<<1|B>>>31)))+e|0,e=f+t|0,t=C=C>>>0>B>>>0?e+1|0:e,i[E+512>>2]=B,i[E+516>>2]=C,C=(p=UI(r^M,p^gA,1))+F|0,e=(b=f)+v|0,r=(c=Ig(F<<1&-2,1&(v<<1|F>>>31),p,0))+C|0,C=f+(C>>>0

>>0?e+1|0:e)|0,e=UI(r^H,AA^(c=r>>>0>>0?C+1|0:C),32),w=1+(C=O+(F=f)|0)|0,k=C,k=(C=e+y|0)>>>0>>0?w:k,w=p^(C=(y=Ig(e,0,y<<1&-2,1&(O<<1|y>>>31)))+C|0),p=f+k|0,y=UI(w,b^(p=C>>>0>>0?p+1|0:p),40),n=1+(k=c+(b=f)|0)|0,w=k,n=(k=r+y|0)>>>0>>0?n:w,k=e^(c=(r=Ig(y,0,r<<1&-2,1&(c<<1|r>>>31)))+k|0),e=f+n|0,r=UI(k,F^(e=r>>>0>c>>>0?e+1|0:e),48),n=1+(k=p+(F=f)|0)|0,w=k,n=(k=C+r|0)>>>0>>0?n:w,C=(p=Ig(r,0,C<<1&-2,1&(p<<1|C>>>31)))+k|0,i[E+520>>2]=C,k=f+n|0,p=C>>>0

>>0?k+1|0:k,i[E+524>>2]=p,i[E+896>>2]=r,i[E+900>>2]=F,i[E+136>>2]=c,i[E+140>>2]=e,eA=E,yA=UI(B^Q,t^d,1),i[eA+392>>2]=yA,i[E+396>>2]=f,eA=E,yA=UI(C^y,p^b,1),i[eA+256>>2]=yA,i[E+260>>2]=f,8!=(0|(S=S+1|0)););for(E=Ng(_A,g+2048|0,1024),r=0;Q=i[(C=(S=r<<3)+E|0)>>2],p=i[(y=(B=g+3072|0)+S|0)>>2],y=i[C+4>>2]^i[y+4>>2],i[C>>2]=Q^p,i[C+4>>2]=y,y=i[(C=(Q=8|S)+E|0)>>2],p=i[(Q=B+Q|0)>>2],Q=i[C+4>>2]^i[Q+4>>2],i[C>>2]=y^p,i[C+4>>2]=Q,y=i[(C=(Q=16|S)+E|0)>>2],p=i[(Q=B+Q|0)>>2],Q=i[C+4>>2]^i[Q+4>>2],i[C>>2]=y^p,i[C+4>>2]=Q,Q=i[(S=(C=24|S)+E|0)>>2],B=i[(C=C+B|0)>>2],C=i[S+4>>2]^i[C+4>>2],i[S>>2]=B^Q,i[S+4>>2]=C,128!=(0|(r=r+4|0)););}if(r=EA+1|0,z=z+1|0,!((S=i[A+20>>2])>>>0>(u=u+1|0)>>>0))break}}s=g+4096|0}function S(A){var I,g,B,Q,i,E,a,_,c,t,r,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0;h=(U=o[A+44|0]|o[A+45|0]<<8|o[A+46|0]<<16|o[A+47|0]<<24)>>>5&2097151,s=Ig(I=(o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24)>>>3|0,0,-683901,-1),y=(e=o[A+44|0])<<16&2031616|o[A+42|0]|o[A+43|0]<<8,e=f,n=e=y>>>0>(F=s+y|0)>>>0?e+1|0:e,M=e=e-((F>>>0<4293918720)-1|0)|0,s=e>>21,e=(y=h)+(h=(2097151&e)<<11|(p=F- -1048576|0)>>>21)|0,y=s,m=y=e>>>0>>0?y+1|0:y,z=e,G=Ig(e,y,-683901,-1),k=f,w=Ig(g=(o[A+49|0]|o[A+50|0]<<8|o[A+51|0]<<16|o[A+52|0]<<24)>>>7&2097151,0,-997805,-1),s=(e=o[A+27|0])>>>24|0,h=e<<8|(K=o[A+23|0]|o[A+24|0]<<8|o[A+25|0]<<16|o[A+26|0]<<24)>>>24,y=(e=o[A+28|0])>>>16|0,y=2097151&((3&(y|=s))<<30|(e=h|e<<16)>>>2),e=f,e=y>>>0>(s=y+w|0)>>>0?e+1|0:e,y=Ig(P=(S=o[A+52|0]|o[A+53|0]<<8|o[A+54|0]<<16|o[A+55|0]<<24)>>>4&2097151,0,654183,0),e=f+e|0,w=s=y+s|0,s=y>>>0>s>>>0?e+1|0:e,D=(y=o[A+48|0])<<8|U>>>24,y=e=y>>>24|0,e=Ig(B=2097151&((3&(U=(e=(h=o[A+49|0])>>>16|0)|y))<<30|(y=(h<<=16)|D)>>>2),0,136657,0),s=f+s|0,s=e>>>0>(y=e+w|0)>>>0?s+1|0:s,h=(e=Ig(Q=(o[A+57|0]|o[A+58|0]<<8|o[A+59|0]<<16|o[A+60|0]<<24)>>>6&2097151,0,666643,0))+y|0,y=f+s|0,w=h,s=e>>>0>h>>>0?y+1|0:y,y=(e=o[A+56|0])>>>24|0,D=e<<8|S>>>24,y=Ig(i=2097151&((1&(S=(e=(h=o[A+57|0])>>>16|0)|y))<<31|(y=(h<<=16)|D)>>>1),0,470296,0),e=f+s|0,y=(e=(s=h=y+w|0)>>>0>>0?e+1|0:e)+k|0,y=s>>>0>(h=s+G|0)>>>0?y+1|0:y,b=s- -1048576|0,l=s=e-((s>>>0<4293918720)-1|0)|0,k=h-(e=-2097152&b)|0,G=y-((e>>>0>h>>>0)+s|0)|0,y=Ig(g,0,654183,0),e=f,e=y>>>0>(s=y+(K>>>5&2097151)|0)>>>0?e+1|0:e,h=(y=s)+(s=Ig(P,0,470296,0))|0,y=f+e|0,y=s>>>0>h>>>0?y+1|0:y,e=Ig(B,j,-997805,-1),y=f+y|0,y=e>>>0>(s=e+h|0)>>>0?y+1|0:y,h=(e=s)+(s=Ig(i,X,666643,0))|0,e=f+y|0,D=h,h=s>>>0>h>>>0?e+1|0:e,w=(s=Ig(g,0,470296,0))+(e=(e=o[A+23|0])<<16&2031616|o[A+21|0]|o[A+22|0]<<8)|0,s=f,s=e>>>0>w>>>0?s+1|0:s,w=(y=Ig(P,0,666643,0))+w|0,e=f+s|0,s=Ig(B,j,654183,0),y=f+(y>>>0>w>>>0?e+1|0:e)|0,S=y=s>>>0>(K=s+w|0)>>>0?y+1|0:y,L=y=y-((K>>>0<4293918720)-1|0)|0,e=(e=y>>>21|0)+h|0,s=e=(y=(2097151&y)<<11|(w=K- -1048576|0)>>>21)>>>0>(D=y+D|0)>>>0?e+1|0:e,N=y=e-((D>>>0<4293918720)-1|0)|0,e=k,k=(2097151&y)<<11|(h=D- -1048576|0)>>>21,y=(y>>21)+G|0,U=k=(y=k>>>0>(H=e+k|0)>>>0?y+1|0:y)-((H>>>0<4293918720)-1|0)|0,q=H-(e=-2097152&(G=H- -1048576|0))|0,O=y-((e>>>0>H>>>0)+k|0)|0,e=Ig(z,m,136657,0),s=f+s|0,s=e>>>0>(y=e+D|0)>>>0?s+1|0:s,d=y-(e=-2097152&h)|0,Y=s-((e>>>0>y>>>0)+N|0)|0,H=F-(e=-2097152&p)|0,M=n-((e>>>0>F>>>0)+M|0)|0,n=Ig(I,0,136657,0),y=(e=o[A+40|0])>>>24|0,h=e<<8|(p=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24)>>>24,s=(e=o[A+41|0])>>>16|0,y=(s|=y)>>>3|0,s=(7&s)<<29|(e=h|e<<16)>>>3,e=y+f|0,e=s>>>0>(h=s+n|0)>>>0?e+1|0:e,y=Ig(Q,0,-683901,-1),e=f+e|0,e=y>>>0>(s=y+h|0)>>>0?e+1|0:e,D=s,y=Ig(I,0,-997805,-1),s=f,s=y>>>0>(h=y+(p>>>6&2097151)|0)>>>0?s+1|0:s,p=(y=h)+(h=Ig(Q,0,136657,0))|0,y=f+s|0,s=Ig(i,X,-683901,-1),y=f+(h>>>0>p>>>0?y+1|0:y)|0,k=y=s>>>0>(u=s+p|0)>>>0?y+1|0:y,W=s=y-((u>>>0<4293918720)-1|0)|0,e=e+(y=s>>21)|0,p=e=(s=(2097151&s)<<11|(F=u- -1048576|0)>>>21)>>>0>(N=s+D|0)>>>0?e+1|0:e,x=e=e-((N>>>0<4293918720)-1|0)|0,y=(y=e>>21)+M|0,R=y=(e=(s=(2097151&e)<<11|(D=N- -1048576|0)>>>21)+H|0)>>>0>>0?y+1|0:y,v=e,y=Ig(e,y,-683901,-1),e=f+Y|0,J=s=y+d|0,h=y>>>0>s>>>0?e+1|0:e,H=K-(e=-2097152&w)|0,M=S-((4095&L)+(e>>>0>K>>>0)|0)|0,K=Ig(g,0,666643,0),e=(y=o[A+19|0])>>>24|0,w=y<<8|(S=o[A+15|0]|o[A+16|0]<<8|o[A+17|0]<<16|o[A+18|0]<<24)>>>24,s=e,y=(7&(s|=y=(e=o[A+20|0])>>>16|0))<<29|(y=(e<<=16)|w)>>>3,s=f+(s>>>3|0)|0,s=y>>>0>(w=y+K|0)>>>0?s+1|0:s,e=Ig(B,j,470296,0),y=f+s|0,e=e>>>0>(w=e+w|0)>>>0?y+1|0:y,s=Ig(B,j,666643,0),y=f,K=y=s>>>0>(d=s+(S>>>6&2097151)|0)>>>0?y+1|0:y,V=s=y-((d>>>0<4293918720)-1|0)|0,e=e+(y=s>>>21|0)|0,S=e=(s=(2097151&s)<<11|(n=d- -1048576|0)>>>21)>>>0>(Y=s+w|0)>>>0?e+1|0:e,Z=e=e-((Y>>>0<4293918720)-1|0)|0,y=(y=e>>>21|0)+M|0,y=(e=(2097151&e)<<11|(w=Y- -1048576|0)>>>21)>>>0>(s=e+H|0)>>>0?y+1|0:y,M=(e=s)+(s=Ig(z,m,-997805,-1))|0,e=f+y|0,e=s>>>0>M>>>0?e+1|0:e,L=y=N-(s=-2097152&D)|0,E=D=p-((s>>>0>N>>>0)+x|0)|0,s=Ig(v,R,136657,0),e=f+e|0,e=s>>>0>(p=s+M|0)>>>0?e+1|0:e,s=Ig(y,D,-683901,-1),y=f+e|0,p=y=s>>>0>(M=s+p|0)>>>0?y+1|0:y,x=e=y-((M>>>0<4293918720)-1|0)|0,y=(2097151&e)<<11|(D=M- -1048576|0)>>>21,e=(e>>21)+h|0,J=y=(e=y>>>0>(N=y+J|0)>>>0?e+1|0:e)-((N>>>0<4293918720)-1|0)|0,H=(2097151&y)<<11|(h=N- -1048576|0)>>>21,y=(y>>21)+O|0,_=q=H+q|0,H=H>>>0>q>>>0?y+1|0:y,c=N-(y=-2097152&h)|0,t=e-((y>>>0>N>>>0)+J|0)|0,q=M-(e=-2097152&D)|0,O=p-((e>>>0>M>>>0)+x|0)|0,s=(e=Ig(z,m,654183,0))+(Y-(y=-2097152&w)|0)|0,y=f+(S-((2147483647&Z)+(y>>>0>Y>>>0)|0)|0)|0,y=e>>>0>s>>>0?y+1|0:y,e=Ig(v,R,-997805,-1),y=f+y|0,y=e>>>0>(s=e+s|0)>>>0?y+1|0:y,h=(e=s)+(s=Ig(L,E,136657,0))|0,e=f+y|0,J=h,p=s>>>0>h>>>0?e+1|0:e,Y=u-(e=-2097152&F)|0,N=k-((e>>>0>u>>>0)+W|0)|0,S=Ig(P,0,-683901,-1),e=(y=o[A+35|0])>>>24|0,h=y<<8|(w=o[A+31|0]|o[A+32|0]<<8|o[A+33|0]<<16|o[A+34|0]<<24)>>>24,s=e,y=(e=o[A+36|0])>>>16|0,y|=s,s=f,s=(e=2097151&((1&y)<<31|(e=e<<16|h)>>>1))>>>0>(y=e+S|0)>>>0?s+1|0:s,h=(e=Ig(I,0,654183,0))+y|0,y=f+s|0,y=e>>>0>h>>>0?y+1|0:y,s=Ig(Q,0,-997805,-1),e=f+y|0,e=s>>>0>(h=s+h|0)>>>0?e+1|0:e,y=Ig(i,X,136657,0),e=f+e|0,D=s=y+h|0,h=y>>>0>s>>>0?e+1|0:e,e=Ig(g,0,-683901,-1),y=f,y=e>>>0>(s=e+(w>>>4&2097151)|0)>>>0?y+1|0:y,w=(e=Ig(P,0,136657,0))+s|0,s=f+y|0,s=e>>>0>w>>>0?s+1|0:s,e=Ig(I,0,470296,0),y=f+s|0,y=e>>>0>(w=e+w|0)>>>0?y+1|0:y,w=(s=Ig(Q,0,654183,0))+w|0,e=f+y|0,y=Ig(i,X,-997805,-1),e=f+(s>>>0>w>>>0?e+1|0:e)|0,S=e=y>>>0>(k=y+w|0)>>>0?e+1|0:e,r=y=e-((k>>>0<4293918720)-1|0)|0,s=(e=y>>21)+h|0,M=y=(s=(y=(2097151&y)<<11|(w=k- -1048576|0)>>>21)>>>0>(F=y+D|0)>>>0?s+1|0:s)-((F>>>0<4293918720)-1|0)|0,e=(e=y>>21)+N|0,x=e=(y=(h=(2097151&y)<<11|(D=F- -1048576|0)>>>21)+Y|0)>>>0>>0?e+1|0:e,h=J,J=y,e=Ig(y,e,-683901,-1),y=f+p|0,N=h=h+e|0,h=e>>>0>h>>>0?y+1|0:y,p=(e=Ig(z,m,470296,0))+(d-(y=-2097152&n)|0)|0,y=f+(K-((2047&V)+(y>>>0>d>>>0)|0)|0)|0,y=e>>>0>p>>>0?y+1|0:y,n=(e=p)+(p=Ig(v,R,654183,0))|0,e=f+y|0,e=p>>>0>n>>>0?e+1|0:e,p=Ig(L,E,-997805,-1),y=f+e|0,y=p>>>0>(n=p+n|0)>>>0?y+1|0:y,u=D=F-(e=-2097152&D)|0,a=p=s-((e>>>0>F>>>0)+M|0)|0,s=Ig(J,x,136657,0),e=f+y|0,e=s>>>0>(n=s+n|0)>>>0?e+1|0:e,s=Ig(D,p,-683901,-1),y=f+e|0,p=y=s>>>0>(K=s+n|0)>>>0?y+1|0:y,Y=e=y-((K>>>0<4293918720)-1|0)|0,y=(2097151&e)<<11|(D=K- -1048576|0)>>>21,e=(e>>21)+h|0,N=y=(e=y>>>0>(n=y+N|0)>>>0?e+1|0:e)-((n>>>0<4293918720)-1|0)|0,F=(2097151&y)<<11|(h=n- -1048576|0)>>>21,y=(y>>21)+O|0,W=M=F+q|0,M=F>>>0>M>>>0?y+1|0:y,V=n-(y=-2097152&h)|0,Z=e-((y>>>0>n>>>0)+N|0)|0,q=K-(e=-2097152&D)|0,O=p-((e>>>0>K>>>0)+Y|0)|0,p=Ig(z,m,666643,0),e=(y=o[A+14|0])>>>24|0,h=y<<8|(N=o[A+10|0]|o[A+11|0]<<8|o[A+12|0]<<16|o[A+13|0]<<24)>>>24,s=e,y=(e=o[A+15|0])>>>16|0,y|=s,s=f,s=(e=2097151&((1&y)<<31|(e=e<<16|h)>>>1))>>>0>(y=e+p|0)>>>0?s+1|0:s,h=(e=y)+(y=Ig(v,R,470296,0))|0,e=f+s|0,e=y>>>0>h>>>0?e+1|0:e,y=Ig(L,E,654183,0),e=f+e|0,e=y>>>0>(s=y+h|0)>>>0?e+1|0:e,h=(y=s)+(s=Ig(J,x,-997805,-1))|0,y=f+e|0,y=s>>>0>h>>>0?y+1|0:y,e=Ig(u,a,136657,0),y=f+y|0,K=s=e+h|0,h=e>>>0>s>>>0?y+1|0:y,w=k-(e=-2097152&w)|0,p=S-((e>>>0>k>>>0)+r|0)|0,s=Ig(g,0,136657,0),e=f,e=(y=(o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24)>>>7&2097151)>>>0>(s=y+s|0)>>>0?e+1|0:e,D=(y=s)+(s=Ig(P,0,-997805,-1))|0,y=f+e|0,y=s>>>0>D>>>0?y+1|0:y,e=Ig(B,j,-683901,-1),y=f+y|0,y=e>>>0>(s=e+D|0)>>>0?y+1|0:y,D=(e=Ig(I,0,666643,0))+s|0,s=f+y|0,s=e>>>0>D>>>0?s+1|0:s,y=Ig(Q,0,470296,0),e=f+s|0,e=y>>>0>(D=y+D|0)>>>0?e+1|0:e,y=Ig(i,X,654183,0),e=f+e|0,y=(l>>21)+(y>>>0>(s=y+D|0)>>>0?e+1|0:e)|0,F=y=(D=(2097151&l)<<11|b>>>21)>>>0>(b=D+s|0)>>>0?y+1|0:y,l=e=y-((b>>>0<4293918720)-1|0)|0,D=(2097151&e)<<11|(n=b- -1048576|0)>>>21,e=(e>>21)+p|0,d=e=(y=D+w|0)>>>0>>0?e+1|0:e,Y=y,y=Ig(y,e,-683901,-1),e=f+h|0,D=s=y+K|0,h=y>>>0>s>>>0?e+1|0:e,e=Ig(v,R,666643,0),y=f,y=e>>>0>(s=e+(N>>>4&2097151)|0)>>>0?y+1|0:y,e=Ig(L,E,470296,0),y=f+y|0,y=e>>>0>(s=e+s|0)>>>0?y+1|0:y,p=(e=Ig(J,x,654183,0))+s|0,s=f+y|0,s=e>>>0>p>>>0?s+1|0:s,y=Ig(u,a,-997805,-1),e=f+s|0,e=y>>>0>(p=y+p|0)>>>0?e+1|0:e,y=Ig(Y,d,136657,0),e=f+e|0,S=e=y>>>0>(k=y+p|0)>>>0?e+1|0:e,R=y=e-((k>>>0<4293918720)-1|0)|0,e=D,D=(2097151&y)<<11|(w=k- -1048576|0)>>>21,y=(y>>21)+h|0,v=h=(y=(s=e+D|0)>>>0>>0?y+1|0:y)-((s>>>0<4293918720)-1|0)|0,e=(e=h>>21)+O|0,z=D=(h=(2097151&h)<<11|(p=s- -1048576|0)>>>21)+q|0,K=h>>>0>D>>>0?e+1|0:e,D=s,s=y,h=(b-(y=-2097152&n)|0)+(n=(2097151&U)<<11|G>>>21)|0,y=(F-((y>>>0>b>>>0)+l|0)|0)+(U>>21)|0,N=y=h>>>0>>0?y+1|0:y,P=y=y-((h>>>0<4293918720)-1|0)|0,G=e=y>>21,e=Ig(m=(2097151&y)<<11|(l=h- -1048576|0)>>>21,e,-683901,-1),s=f+s|0,s=e>>>0>(y=e+D|0)>>>0?s+1|0:s,j=y-(e=-2097152&p)|0,X=s-((e>>>0>y>>>0)+v|0)|0,e=Ig(m,G,136657,0),y=S+f|0,v=(s=e+k|0)-(e=-2097152&w)|0,b=(y=s>>>0>>0?y+1|0:y)-((e>>>0>s>>>0)+R|0)|0,y=Ig(L,E,666643,0),s=f,s=(e=(o[A+7|0]|o[A+8|0]<<8|o[A+9|0]<<16|o[A+10|0]<<24)>>>7&2097151)>>>0>(y=e+y|0)>>>0?s+1|0:s,D=(e=Ig(J,x,470296,0))+y|0,y=f+s|0,y=e>>>0>D>>>0?y+1|0:y,e=Ig(u,a,654183,0),y=f+y|0,y=e>>>0>(s=e+D|0)>>>0?y+1|0:y,D=(e=s)+(s=Ig(Y,d,-997805,-1))|0,e=f+y|0,n=D,D=s>>>0>D>>>0?e+1|0:e,S=Ig(J,x,666643,0),e=(y=o[A+6|0])>>>24|0,p=y<<8|(R=o[A+2|0]|o[A+3|0]<<8|o[A+4|0]<<16|o[A+5|0]<<24)>>>24,s=e,y=(e=o[A+7|0])>>>16|0,y=2097151&((3&(y|=s))<<30|(e=e<<16|p)>>>2),e=f,e=y>>>0>(s=y+S|0)>>>0?e+1|0:e,p=(y=Ig(u,a,470296,0))+s|0,s=f+e|0,s=y>>>0>p>>>0?s+1|0:s,y=Ig(Y,d,654183,0),e=f+s|0,S=e=y>>>0>(F=y+p|0)>>>0?e+1|0:e,U=e=e-((F>>>0<4293918720)-1|0)|0,y=(s=e>>21)+D|0,k=e=(y=(e=(2097151&e)<<11|(w=F- -1048576|0)>>>21)>>>0>(p=e+n|0)>>>0?y+1|0:y)-((p>>>0<4293918720)-1|0)|0,n=(2097151&e)<<11|(D=p- -1048576|0)>>>21,e=(e>>21)+b|0,v=J=n+v|0,n=n>>>0>J>>>0?e+1|0:e,e=Ig(m,G,-997805,-1),y=f+y|0,y=e>>>0>(s=e+p|0)>>>0?y+1|0:y,L=s-(e=-2097152&D)|0,x=y-((e>>>0>s>>>0)+k|0)|0,y=Ig(m,G,654183,0),e=S+f|0,J=(s=y+F|0)-(y=-2097152&w)|0,b=(e=s>>>0>>0?e+1|0:e)-((y>>>0>s>>>0)+U|0)|0,e=Ig(u,a,666643,0),y=f,y=e>>>0>(s=e+(R>>>5&2097151)|0)>>>0?y+1|0:y,e=Ig(Y,d,470296,0),y=f+y|0,p=s=e+s|0,s=e>>>0>s>>>0?y+1|0:y,D=Ig(Y,d,666643,0),y=(e=o[A+2|0])<<16&2031616|o[0|A]|o[A+1|0]<<8,e=f,S=e=y>>>0>(k=D+y|0)>>>0?e+1|0:e,d=e=e-((k>>>0<4293918720)-1|0)|0,D=(2097151&e)<<11|(w=k- -1048576|0)>>>21,e=(e>>21)+s|0,s=e=D>>>0>(F=D+p|0)>>>0?e+1|0:e,U=e=e-((F>>>0<4293918720)-1|0)|0,D=(2097151&e)<<11|(p=F- -1048576|0)>>>21,e=(e>>21)+b|0,D=D>>>0>(Y=D+J|0)>>>0?e+1|0:e,e=Ig(m,G,470296,0),s=s+f|0,s=(y=e+F|0)>>>0>>0?s+1|0:s,F=y-(e=-2097152&p)|0,p=s-((e>>>0>y>>>0)+U|0)|0,y=Ig(m,G,666643,0),e=f+(S-(((s=-2097152&w)>>>0>k>>>0)+d|0)|0)|0,y=(s=(e=y>>>0>(b=y+(k-s|0)|0)>>>0?e+1|0:e)>>21)+p|0,e=(e=(y=(e=(2097151&e)<<11|b>>>21)>>>0>(U=e+F|0)>>>0?y+1|0:y)>>21)+D|0,y=(y=(e=(y=(2097151&y)<<11|U>>>21)>>>0>(G=y+Y|0)>>>0?e+1|0:e)>>21)+x|0,s=(e=(y=(e=(2097151&e)<<11|G>>>21)>>>0>(D=e+L|0)>>>0?y+1|0:y)>>21)+n|0,e=(y=(s=(y=(2097151&y)<<11|D>>>21)>>>0>(k=y+v|0)>>>0?s+1|0:s)>>21)+X|0,y=(s=(e=(s=(2097151&s)<<11|k>>>21)>>>0>(F=s+j|0)>>>0?e+1|0:e)>>21)+K|0,K=p=(e=(2097151&e)<<11|F>>>21)+z|0,e=(e=(y=e>>>0>p>>>0?y+1|0:y)>>21)+Z|0,y=(y=(e=(y=(2097151&y)<<11|p>>>21)>>>0>(n=y+V|0)>>>0?e+1|0:e)>>21)+M|0,s=(e=(y=(e=(2097151&e)<<11|n>>>21)>>>0>(S=e+W|0)>>>0?y+1|0:y)>>21)+t|0,e=(y=(s=(y=(2097151&y)<<11|S>>>21)>>>0>(w=y+c|0)>>>0?s+1|0:s)>>21)+H|0,l=(M=h-(y=-2097152&l)|0)+((2097151&(e=(s=(2097151&s)<<11|w>>>21)>>>0>(p=s+_|0)>>>0?e+1|0:e))<<11|p>>>21)|0,e=(N-((y>>>0>h>>>0)+P|0)|0)+(e>>21)|0,N=y=(e=M>>>0>l>>>0?e+1|0:e)>>21,b=(e=Ig(H=(2097151&e)<<11|l>>>21,y,666643,0))+(y=2097151&b)|0,e=f,h=e=y>>>0>b>>>0?e+1|0:e,C[0|A]=b,C[A+1|0]=(255&e)<<24|b>>>8,e=2097151&U,y=Ig(H,N,470296,0)+e|0,s=f,e=(h>>21)+(e>>>0>y>>>0?s+1|0:s)|0,e=(M=(2097151&h)<<11|b>>>21)>>>0>(U=M+y|0)>>>0?e+1|0:e,C[A+4|0]=(2047&e)<<21|U>>>11,y=e,s=U,C[A+3|0]=(7&e)<<29|s>>>3,C[A+2|0]=31&((65535&h)<<16|b>>>16)|s<<5,h=2097151&G,G=Ig(H,N,654183,0)+h|0,e=f,U=(2097151&y)<<11|s>>>21,y=(y>>21)+(h=h>>>0>G>>>0?e+1|0:e)|0,e=y=(G=U+G|0)>>>0>>0?y+1|0:y,C[A+6|0]=(63&e)<<26|G>>>6,h=G,G=0,C[A+5|0]=G<<13|(1572864&s)>>>19|h<<2,s=2097151&D,D=Ig(H,N,-997805,-1)+s|0,y=f,y=s>>>0>D>>>0?y+1|0:y,G=(2097151&(s=e))<<11|h>>>21,s=(e>>=21)+y|0,s=(D=G+D|0)>>>0>>0?s+1|0:s,C[A+9|0]=(511&s)<<23|D>>>9,C[A+8|0]=(1&s)<<31|D>>>1,y=0,C[A+7|0]=y<<18|(2080768&h)>>>14|D<<7,y=2097151&k,h=Ig(H,N,136657,0)+y|0,e=f,e=y>>>0>h>>>0?e+1|0:e,k=(2097151&(y=s))<<11|D>>>21,y=e+(s=y>>21)|0,y=(h=k+h|0)>>>0>>0?y+1|0:y,C[A+12|0]=(4095&y)<<20|h>>>12,s=h,C[A+11|0]=(15&y)<<28|s>>>4,h=0,C[A+10|0]=h<<15|(1966080&D)>>>17|s<<4,h=2097151&F,D=Ig(H,N,-683901,-1)+h|0,e=f,e=h>>>0>D>>>0?e+1|0:e,h=y,y=e+(y>>=21)|0,y=(h=(J=D)+(D=(2097151&h)<<11|s>>>21)|0)>>>0>>0?y+1|0:y,C[A+14|0]=(127&y)<<25|h>>>7,D=0,C[A+13|0]=D<<12|(1048576&s)>>>20|h<<1,e=y>>21,s=(y=(2097151&y)<<11|h>>>21)>>>0>(D=y+(2097151&K)|0)>>>0?e+1|0:e,C[A+17|0]=(1023&s)<<22|D>>>10,C[A+16|0]=(3&s)<<30|D>>>2,y=0,C[A+15|0]=y<<17|(2064384&h)>>>15|D<<6,e=s>>21,e=(y=(2097151&s)<<11|D>>>21)>>>0>(s=y+(2097151&n)|0)>>>0?e+1|0:e,C[A+20|0]=(8191&e)<<19|s>>>13,C[A+19|0]=(31&e)<<27|s>>>5,h=(y=2097151&S)+(S=(2097151&e)<<11|s>>>21)|0,y=e>>21,y=h>>>0>>0?y+1|0:y,S=h,C[A+21|0]=h,n=0,C[A+18|0]=n<<14|(1835008&D)>>>18|s<<3,C[A+22|0]=(255&y)<<24|h>>>8,s=y>>21,s=(h=(D=(2097151&y)<<11|h>>>21)+(2097151&w)|0)>>>0>>0?s+1|0:s,C[A+25|0]=(2047&s)<<21|h>>>11,C[A+24|0]=(7&s)<<29|h>>>3,C[A+23|0]=31&((65535&y)<<16|S>>>16)|h<<5,e=s>>21,e=(y=(2097151&s)<<11|h>>>21)>>>0>(s=y+(2097151&p)|0)>>>0?e+1|0:e,C[A+27|0]=(63&e)<<26|s>>>6,D=0,C[A+26|0]=D<<13|(1572864&h)>>>19|s<<2,y=e,e>>=21,y=(h=(p=(2097151&y)<<11|s>>>21)+(D=2097151&l)|0)>>>0>>0?e+1|0:e,C[A+31|0]=(131071&y)<<15|h>>>17,e=h,C[A+30|0]=(511&y)<<23|e>>>9,h=0,C[A+28|0]=h<<18|(2080768&s)>>>14|e<<7,C[A+29|0]=p+l>>>1}function N(A,I,g){var C,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0;for(s=E=s-2048|0,Ng(E+1024|0,I,1024),I=0;Q=i[(_=(o=E+1024|0)+(B=I<<3)|0)>>2],a=i[(c=A+B|0)>>2],c=i[_+4>>2]^i[c+4>>2],i[_>>2]=Q^a,i[_+4>>2]=c,c=i[(_=(Q=8|B)+o|0)>>2],a=i[(Q=A+Q|0)>>2],Q=i[_+4>>2]^i[Q+4>>2],i[_>>2]=a^c,i[_+4>>2]=Q,c=i[(_=(Q=16|B)+o|0)>>2],a=i[(Q=A+Q|0)>>2],Q=i[_+4>>2]^i[Q+4>>2],i[_>>2]=a^c,i[_+4>>2]=Q,Q=i[(B=(_=24|B)+o|0)>>2],c=i[(_=A+_|0)>>2],_=i[B+4>>2]^i[_+4>>2],i[B>>2]=Q^c,i[B+4>>2]=_,128!=(0|(I=I+4|0)););for(C=Ng(E,o,1024),A=0,I=0;E=i[(B=(o=I<<3)+C|0)>>2],Q=i[(_=g+o|0)>>2],_=i[B+4>>2]^i[_+4>>2],i[B>>2]=Q^E,i[B+4>>2]=_,_=i[(B=(E=8|o)+C|0)>>2],Q=i[(E=g+E|0)>>2],E=i[B+4>>2]^i[E+4>>2],i[B>>2]=Q^_,i[B+4>>2]=E,_=i[(B=(E=16|o)+C|0)>>2],Q=i[(E=g+E|0)>>2],E=i[B+4>>2]^i[E+4>>2],i[B>>2]=Q^_,i[B+4>>2]=E,E=i[(o=(B=24|o)+C|0)>>2],_=i[(B=g+B|0)>>2],B=i[o+4>>2]^i[B+4>>2],i[o>>2]=E^_,i[o+4>>2]=B,128!=(0|(I=I+4|0)););for(;c=(Q=i[56+(o=(C+1024|0)+(A<<7)|0)>>2])+(B=i[o+24>>2])|0,I=(t=i[o+60>>2])+(E=i[o+28>>2])|0,_=B>>>0>c>>>0?I+1|0:I,E=Ig(B<<1&-2,1&(E<<1|B>>>31),Q,0),I=f+_|0,_=(B=E+c|0)>>>0>>0?I+1|0:I,e=(c=UI(i[o+120>>2]^B,_^i[o+124>>2],32))+(E=i[o+88>>2])|0,I=(y=f)+(a=i[o+92>>2])|0,r=E>>>0>e>>>0?I+1|0:I,a=Ig(E<<1&-2,1&(a<<1|E>>>31),c,0),I=f+r|0,x=UI(Q^(E=a+e|0),t^(h=E>>>0>>0?I+1|0:I),40),I=_+(z=f)|0,Q=(a=B+x|0)>>>0>>0?I+1|0:I,B=Ig(x,0,B<<1&-2,1&(_<<1|B>>>31)),I=f+Q|0,H=UI(c^(F=B+a|0),y^(b=B>>>0>F>>>0?I+1|0:I),48),j=I=f,p=H,e=I,a=(c=i[o+40>>2])+(B=i[o+8>>2])|0,I=(Y=i[o+44>>2])+(_=i[o+12>>2])|0,Q=B>>>0>a>>>0?I+1|0:I,_=Ig(B<<1&-2,1&(_<<1|B>>>31),c,0),I=f+Q|0,Q=(B=_+a|0)>>>0<_>>>0?I+1|0:I,y=(a=UI(i[o+104>>2]^B,Q^i[o+108>>2],32))+(_=i[o+72>>2])|0,I=(w=f)+(r=i[o+76>>2])|0,t=_>>>0>y>>>0?I+1|0:I,r=Ig(_<<1&-2,1&(r<<1|_>>>31),a,0),I=f+t|0,r=UI(t=(_=r+y|0)^c,Y^(c=_>>>0>>0?I+1|0:I),40),I=Q+(n=f)|0,t=(y=B+r|0)>>>0>>0?I+1|0:I,Q=Ig(r,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+t|0,v=UI((B=Q+y|0)^a,w^(y=B>>>0>>0?I+1|0:I),48),I=c+(R=f)|0,Q=(a=_+v|0)>>>0<_>>>0?I+1|0:I,c=Ig(v,0,_<<1&-2,1&(c<<1|_>>>31)),I=f+Q|0,M=UI((_=c+a|0)^r,n^(Y=_>>>0>>0?I+1|0:I),1),L=I=f,k=M,t=I,w=(r=i[o+32>>2])+(Q=i[o>>2])|0,I=(J=i[o+36>>2])+(c=i[o+4>>2])|0,a=Q>>>0>w>>>0?I+1|0:I,c=Ig(Q<<1&-2,1&(c<<1|Q>>>31),r,0),I=f+a|0,a=(Q=c+w|0)>>>0>>0?I+1|0:I,D=(d=UI(i[o+96>>2]^Q,a^i[o+100>>2],32))+(c=i[(I=S=o- -64|0)>>2])|0,I=(q=f)+(w=i[I+4>>2])|0,n=c>>>0>D>>>0?I+1|0:I,w=Ig(c<<1&-2,1&(w<<1|c>>>31),d,0),I=f+n|0,J=UI((c=w+D|0)^r,J^(w=c>>>0>>0?I+1|0:I),40),I=a+(X=f)|0,r=(n=Q+J|0)>>>0>>0?I+1|0:I,a=Ig(J,0,Q<<1&-2,1&(a<<1|Q>>>31)),I=f+r|0,I=(n=(Q=a+n|0)>>>0>>0?I+1|0:I)+t|0,r=(a=Q+k|0)>>>0>>0?I+1|0:I,t=Ig(k,0,Q<<1&-2,1&(n<<1|Q>>>31)),I=f+r|0,m=UI((a=t+a|0)^p,(D=a>>>0>>0?I+1|0:I)^e,32),P=I=f,N=I,k=(p=i[o+48>>2])+(r=i[o+16>>2])|0,I=(l=i[o+52>>2])+(e=i[o+20>>2])|0,t=r>>>0>k>>>0?I+1|0:I,e=Ig(r<<1&-2,1&(e<<1|r>>>31),p,0),I=f+t|0,t=(r=e+k|0)>>>0>>0?I+1|0:I,G=(k=UI(i[o+112>>2]^r,t^i[o+116>>2],32))+(e=i[o+80>>2])|0,I=(u=f)+(K=i[o+84>>2])|0,U=e>>>0>G>>>0?I+1|0:I,K=Ig(e<<1&-2,1&(K<<1|e>>>31),k,0),I=f+U|0,K=UI(G=(e=K+G|0)^p,l^(p=e>>>0>>0?I+1|0:I),40),I=t+(l=f)|0,U=(G=r+K|0)>>>0>>0?I+1|0:I,t=Ig(K,0,r<<1&-2,1&(t<<1|r>>>31)),I=f+U|0,U=UI(G=(r=t+G|0)^k,u^(k=t>>>0>r>>>0?I+1|0:I),48),I=p+(u=f)|0,t=(G=e+U|0)>>>0>>0?I+1|0:I,p=Ig(U,0,e<<1&-2,1&(p<<1|e>>>31)),I=f+t|0,I=(p=(e=p+G|0)>>>0

>>0?I+1|0:I)+N|0,N=(t=e+m|0)>>>0>>0?I+1|0:I,G=Ig(m,0,e<<1&-2,1&(p<<1|e>>>31)),I=f+N|0,N=UI(N=(t=G+t|0)^M,L^(M=t>>>0>>0?I+1|0:I),40),I=D+(L=f)|0,G=(O=a+N|0)>>>0>>0?I+1|0:I,a=(D=Ig(N,0,a<<1&-2,1&(D<<1|a>>>31)))+O|0,I=f+G|0,i[o>>2]=a,I=a>>>0>>0?I+1|0:I,i[o+4>>2]=I,a=UI(a^m,I^P,48),i[o+120>>2]=a,I=f,i[o+124>>2]=I,I=I+M|0,D=(m=a+t|0)>>>0>>0?I+1|0:I,a=(t=Ig(a,0,t<<1&-2,1&(M<<1|t>>>31)))+m|0,I=f+D|0,i[o+80>>2]=a,I=a>>>0>>0?I+1|0:I,i[o+84>>2]=I,W=o,V=UI(a^N,I^L,1),i[W+40>>2]=V,i[o+44>>2]=f,I=h+j|0,a=(t=E+H|0)>>>0>>0?I+1|0:I,E=Ig(H,0,E<<1&-2,1&(h<<1|E>>>31)),I=f+a|0,a=I=E>>>0>(t=E+t|0)>>>0?I+1|0:I,E=I,e=UI(e^K,p^l,1),I=y+(p=f)|0,h=(D=B+e|0)>>>0>>0?I+1|0:I,B=(y=Ig(e,0,B<<1&-2,1&(y<<1|B>>>31)))+D|0,I=f+h|0,n=UI(Q^d,n^q,48),y=UI(n^B,(Q=B>>>0>>0?I+1|0:I)^(M=f),32),I=(H=f)+E|0,h=y>>>0>(D=y+t|0)>>>0?I+1|0:I,E=(I=D)+(D=Ig(t<<1&-2,1&(E<<1|t>>>31),y,0))|0,I=f+h|0,h=UI(N=E^e,p^(e=E>>>0>>0?I+1|0:I),40),I=Q+(D=f)|0,p=(d=B+h|0)>>>0>>0?I+1|0:I,B=Ig(h,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+p|0,B=UI((Q=B+d|0)^y,H^(I=B>>>0>Q>>>0?I+1|0:I),48),i[o+96>>2]=B,y=f,i[o+100>>2]=y,i[o+8>>2]=Q,i[o+12>>2]=I,I=e+y|0,Q=(y=B+E|0)>>>0>>0?I+1|0:I,E=Ig(B,0,E<<1&-2,1&(e<<1|E>>>31)),I=f+Q|0,W=o,V=UI((B=E+y|0)^h,(I=B>>>0>>0?I+1|0:I)^D,1),i[W+48>>2]=V,i[o+52>>2]=f,i[o+88>>2]=B,i[o+92>>2]=I,e=UI(t^x,a^z,1),I=k+(h=f)|0,E=(B=r+e|0)>>>0>>0?I+1|0:I,Q=Ig(e,0,r<<1&-2,1&(k<<1|r>>>31)),I=f+E|0,t=UI((B=Q+B|0)^v,R^(a=B>>>0>>0?I+1|0:I),32),y=I=f,Q=I,I=w+M|0,r=(E=c+n|0)>>>0>>0?I+1|0:I,c=Ig(n,0,c<<1&-2,1&(w<<1|c>>>31)),I=f+r|0,I=(c=(E=c+E|0)>>>0>>0?I+1|0:I)+Q|0,r=(Q=E+t|0)>>>0>>0?I+1|0:I,w=Ig(t,0,E<<1&-2,1&(c<<1|E>>>31)),I=f+r|0,e=UI((Q=w+Q|0)^e,h^(r=Q>>>0>>0?I+1|0:I),40),I=a+(w=f)|0,h=(n=B+e|0)>>>0>>0?I+1|0:I,B=(a=Ig(e,0,B<<1&-2,1&(a<<1|B>>>31)))+n|0,I=f+h|0,i[o+16>>2]=B,I=B>>>0>>0?I+1|0:I,i[o+20>>2]=I,B=UI(B^t,I^y,48),i[o+104>>2]=B,I=f,i[o+108>>2]=I,a=S,I=I+r|0,t=(h=B+Q|0)>>>0>>0?I+1|0:I,Q=Ig(B,0,Q<<1&-2,1&(r<<1|Q>>>31)),I=f+t|0,r=B=Q+h|0,t=I=B>>>0>>0?I+1|0:I,i[a>>2]=B,i[a+4>>2]=I,c=UI(E^J,c^X,1),I=(y=f)+b|0,E=(B=c+F|0)>>>0>>0?I+1|0:I,Q=Ig(F<<1&-2,1&(b<<1|F>>>31),c,0),I=f+E|0,a=UI((B=Q+B|0)^U,u^(Q=B>>>0>>0?I+1|0:I),32),I=Y+(F=f)|0,h=(E=a+_|0)>>>0<_>>>0?I+1|0:I,_=Ig(a,0,_<<1&-2,1&(Y<<1|_>>>31)),I=f+h|0,c=UI((E=_+E|0)^c,y^(_=E>>>0<_>>>0?I+1|0:I),40),I=Q+(b=f)|0,h=(y=B+c|0)>>>0>>0?I+1|0:I,Q=Ig(c,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+h|0,I=(B=Q+y|0)>>>0>>0?I+1|0:I,Q=B,B^=a,a=I,B=UI(B,F^I,48),I=_+(F=f)|0,h=(y=B+E|0)>>>0>>0?I+1|0:I,E=(_=Ig(B,0,E<<1&-2,1&(_<<1|E>>>31)))+y|0,I=f+h|0,i[o+72>>2]=E,I=E>>>0<_>>>0?I+1|0:I,i[o+76>>2]=I,i[o+112>>2]=B,i[o+116>>2]=F,i[o+24>>2]=Q,i[o+28>>2]=a,W=o,V=UI(r^e,t^w,1),i[W+56>>2]=V,i[o+60>>2]=f,W=o,V=UI(E^c,I^b,1),i[W+32>>2]=V,i[o+36>>2]=f,8!=(0|(A=A+1|0)););for(A=0;c=(Q=i[392+(o=(C+1024|0)+(A<<4)|0)>>2])+(B=i[o+136>>2])|0,I=(t=i[o+396>>2])+(E=i[o+140>>2])|0,_=B>>>0>c>>>0?I+1|0:I,E=Ig(B<<1&-2,1&(E<<1|B>>>31),Q,0),I=f+_|0,_=(B=E+c|0)>>>0>>0?I+1|0:I,e=(c=UI(i[o+904>>2]^B,_^i[o+908>>2],32))+(E=i[o+648>>2])|0,I=(y=f)+(a=i[o+652>>2])|0,r=E>>>0>e>>>0?I+1|0:I,a=Ig(E<<1&-2,1&(a<<1|E>>>31),c,0),I=f+r|0,x=UI(Q^(E=a+e|0),t^(h=E>>>0>>0?I+1|0:I),40),I=_+(G=f)|0,Q=(a=B+x|0)>>>0>>0?I+1|0:I,B=Ig(x,0,B<<1&-2,1&(_<<1|B>>>31)),I=f+Q|0,H=UI(c^(F=B+a|0),y^(b=B>>>0>F>>>0?I+1|0:I),48),z=I=f,p=H,e=I,a=(c=i[o+264>>2])+(B=i[o+8>>2])|0,I=(Y=i[o+268>>2])+(_=i[o+12>>2])|0,Q=B>>>0>a>>>0?I+1|0:I,_=Ig(B<<1&-2,1&(_<<1|B>>>31),c,0),I=f+Q|0,Q=(B=_+a|0)>>>0<_>>>0?I+1|0:I,y=(a=UI(i[o+776>>2]^B,Q^i[o+780>>2],32))+(_=i[o+520>>2])|0,I=(w=f)+(r=i[o+524>>2])|0,t=_>>>0>y>>>0?I+1|0:I,r=Ig(_<<1&-2,1&(r<<1|_>>>31),a,0),I=f+t|0,r=UI(t=(_=r+y|0)^c,Y^(c=_>>>0>>0?I+1|0:I),40),I=Q+(n=f)|0,t=(y=B+r|0)>>>0>>0?I+1|0:I,Q=Ig(r,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+t|0,v=UI((B=Q+y|0)^a,w^(y=B>>>0>>0?I+1|0:I),48),I=c+(j=f)|0,Q=(a=_+v|0)>>>0<_>>>0?I+1|0:I,c=Ig(v,0,_<<1&-2,1&(c<<1|_>>>31)),I=f+Q|0,M=UI((_=c+a|0)^r,n^(Y=_>>>0>>0?I+1|0:I),1),R=I=f,k=M,t=I,w=(r=i[o+256>>2])+(Q=i[o>>2])|0,I=(J=i[o+260>>2])+(c=i[o+4>>2])|0,a=Q>>>0>w>>>0?I+1|0:I,c=Ig(Q<<1&-2,1&(c<<1|Q>>>31),r,0),I=f+a|0,a=(Q=c+w|0)>>>0>>0?I+1|0:I,D=(d=UI(i[o+768>>2]^Q,a^i[o+772>>2],32))+(c=i[o+512>>2])|0,I=(L=f)+(w=i[o+516>>2])|0,n=c>>>0>D>>>0?I+1|0:I,w=Ig(c<<1&-2,1&(w<<1|c>>>31),d,0),I=f+n|0,J=UI((c=w+D|0)^r,J^(w=c>>>0>>0?I+1|0:I),40),I=a+(q=f)|0,r=(n=Q+J|0)>>>0>>0?I+1|0:I,a=Ig(J,0,Q<<1&-2,1&(a<<1|Q>>>31)),I=f+r|0,I=(n=(Q=a+n|0)>>>0>>0?I+1|0:I)+t|0,r=(a=Q+k|0)>>>0>>0?I+1|0:I,t=Ig(k,0,Q<<1&-2,1&(n<<1|Q>>>31)),I=f+r|0,m=UI((a=t+a|0)^p,(D=a>>>0>>0?I+1|0:I)^e,32),X=I=f,N=I,k=(p=i[o+384>>2])+(r=i[o+128>>2])|0,I=(P=i[o+388>>2])+(e=i[o+132>>2])|0,t=r>>>0>k>>>0?I+1|0:I,e=Ig(r<<1&-2,1&(e<<1|r>>>31),p,0),I=f+t|0,t=(r=e+k|0)>>>0>>0?I+1|0:I,S=(k=UI(i[o+896>>2]^r,t^i[o+900>>2],32))+(e=i[o+640>>2])|0,I=(l=f)+(K=i[o+644>>2])|0,U=e>>>0>S>>>0?I+1|0:I,K=Ig(e<<1&-2,1&(K<<1|e>>>31),k,0),I=f+U|0,K=UI(S=(e=K+S|0)^p,P^(p=e>>>0>>0?I+1|0:I),40),I=t+(P=f)|0,U=(S=r+K|0)>>>0>>0?I+1|0:I,t=Ig(K,0,r<<1&-2,1&(t<<1|r>>>31)),I=f+U|0,U=UI(S=(r=t+S|0)^k,l^(k=t>>>0>r>>>0?I+1|0:I),48),I=p+(l=f)|0,t=(S=e+U|0)>>>0>>0?I+1|0:I,p=Ig(U,0,e<<1&-2,1&(p<<1|e>>>31)),I=f+t|0,I=(p=(e=p+S|0)>>>0

>>0?I+1|0:I)+N|0,N=(t=e+m|0)>>>0>>0?I+1|0:I,S=Ig(m,0,e<<1&-2,1&(p<<1|e>>>31)),I=f+N|0,N=UI(N=(t=S+t|0)^M,R^(M=t>>>0>>0?I+1|0:I),40),I=D+(R=f)|0,S=(u=a+N|0)>>>0>>0?I+1|0:I,a=(D=Ig(N,0,a<<1&-2,1&(D<<1|a>>>31)))+u|0,I=f+S|0,i[o>>2]=a,I=a>>>0>>0?I+1|0:I,i[o+4>>2]=I,a=UI(a^m,I^X,48),i[o+904>>2]=a,I=f,i[o+908>>2]=I,I=I+M|0,D=(m=a+t|0)>>>0>>0?I+1|0:I,a=(t=Ig(a,0,t<<1&-2,1&(M<<1|t>>>31)))+m|0,I=f+D|0,i[o+640>>2]=a,I=a>>>0>>0?I+1|0:I,i[o+644>>2]=I,W=o,V=UI(a^N,I^R,1),i[W+264>>2]=V,i[o+268>>2]=f,I=h+z|0,a=(t=E+H|0)>>>0>>0?I+1|0:I,E=Ig(H,0,E<<1&-2,1&(h<<1|E>>>31)),I=f+a|0,a=I=E>>>0>(t=E+t|0)>>>0?I+1|0:I,E=I,e=UI(e^K,p^P,1),I=y+(p=f)|0,h=(D=B+e|0)>>>0>>0?I+1|0:I,B=(y=Ig(e,0,B<<1&-2,1&(y<<1|B>>>31)))+D|0,I=f+h|0,n=UI(Q^d,n^L,48),y=UI(n^B,(Q=B>>>0>>0?I+1|0:I)^(M=f),32),I=(H=f)+E|0,h=y>>>0>(D=y+t|0)>>>0?I+1|0:I,E=(I=D)+(D=Ig(t<<1&-2,1&(E<<1|t>>>31),y,0))|0,I=f+h|0,h=UI(S=E^e,p^(e=E>>>0>>0?I+1|0:I),40),I=Q+(D=f)|0,p=(d=B+h|0)>>>0>>0?I+1|0:I,B=Ig(h,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+p|0,B=UI((Q=B+d|0)^y,H^(I=B>>>0>Q>>>0?I+1|0:I),48),i[o+768>>2]=B,y=f,i[o+772>>2]=y,i[o+8>>2]=Q,i[o+12>>2]=I,I=e+y|0,Q=(y=B+E|0)>>>0>>0?I+1|0:I,E=Ig(B,0,E<<1&-2,1&(e<<1|E>>>31)),I=f+Q|0,W=o,V=UI((B=E+y|0)^h,(I=B>>>0>>0?I+1|0:I)^D,1),i[W+384>>2]=V,i[o+388>>2]=f,i[o+648>>2]=B,i[o+652>>2]=I,e=UI(t^x,a^G,1),I=k+(h=f)|0,E=(B=r+e|0)>>>0>>0?I+1|0:I,Q=Ig(e,0,r<<1&-2,1&(k<<1|r>>>31)),I=f+E|0,t=UI((B=Q+B|0)^v,j^(a=B>>>0>>0?I+1|0:I),32),y=I=f,Q=I,I=w+M|0,r=(E=c+n|0)>>>0>>0?I+1|0:I,c=Ig(n,0,c<<1&-2,1&(w<<1|c>>>31)),I=f+r|0,I=(c=(E=c+E|0)>>>0>>0?I+1|0:I)+Q|0,r=(Q=E+t|0)>>>0>>0?I+1|0:I,w=Ig(t,0,E<<1&-2,1&(c<<1|E>>>31)),I=f+r|0,e=UI((Q=w+Q|0)^e,h^(r=Q>>>0>>0?I+1|0:I),40),I=a+(w=f)|0,h=(n=B+e|0)>>>0>>0?I+1|0:I,B=(a=Ig(e,0,B<<1&-2,1&(a<<1|B>>>31)))+n|0,I=f+h|0,i[o+128>>2]=B,I=B>>>0>>0?I+1|0:I,i[o+132>>2]=I,B=UI(B^t,I^y,48),i[o+776>>2]=B,I=f,i[o+780>>2]=I,I=I+r|0,a=(t=B+Q|0)>>>0>>0?I+1|0:I,Q=Ig(B,0,Q<<1&-2,1&(r<<1|Q>>>31)),I=f+a|0,r=B=Q+t|0,t=I=B>>>0>>0?I+1|0:I,i[o+512>>2]=B,i[o+516>>2]=I,c=UI(E^J,c^q,1),I=(y=f)+b|0,E=(B=c+F|0)>>>0>>0?I+1|0:I,Q=Ig(F<<1&-2,1&(b<<1|F>>>31),c,0),I=f+E|0,a=UI((B=Q+B|0)^U,l^(Q=B>>>0>>0?I+1|0:I),32),I=Y+(F=f)|0,h=(E=a+_|0)>>>0<_>>>0?I+1|0:I,_=Ig(a,0,_<<1&-2,1&(Y<<1|_>>>31)),I=f+h|0,c=UI((E=_+E|0)^c,y^(_=E>>>0<_>>>0?I+1|0:I),40),I=Q+(b=f)|0,h=(y=B+c|0)>>>0>>0?I+1|0:I,Q=Ig(c,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+h|0,I=(B=Q+y|0)>>>0>>0?I+1|0:I,Q=B,B^=a,a=I,B=UI(B,F^I,48),I=_+(F=f)|0,h=(y=B+E|0)>>>0>>0?I+1|0:I,E=(_=Ig(B,0,E<<1&-2,1&(_<<1|E>>>31)))+y|0,I=f+h|0,i[o+520>>2]=E,I=E>>>0<_>>>0?I+1|0:I,i[o+524>>2]=I,i[o+896>>2]=B,i[o+900>>2]=F,i[o+136>>2]=Q,i[o+140>>2]=a,W=o,V=UI(r^e,t^w,1),i[W+392>>2]=V,i[o+396>>2]=f,W=o,V=UI(E^c,I^b,1),i[W+256>>2]=V,i[o+260>>2]=f,8!=(0|(A=A+1|0)););for(I=Ng(g,C,1024),A=0;B=i[(o=(g=A<<3)+I|0)>>2],Q=i[(_=(E=a=C+1024|0)+g|0)>>2],_=i[o+4>>2]^i[_+4>>2],i[o>>2]=B^Q,i[o+4>>2]=_,_=i[(o=(B=8|g)+I|0)>>2],E=i[(B=B+E|0)>>2],B=i[o+4>>2]^i[B+4>>2],i[o>>2]=E^_,i[o+4>>2]=B,E=i[(o=(B=16|g)+I|0)>>2],_=i[(B=B+a|0)>>2],B=i[o+4>>2]^i[B+4>>2],i[o>>2]=E^_,i[o+4>>2]=B,B=i[(g=(o=24|g)+I|0)>>2],E=i[(o=o+a|0)>>2],o=i[g+4>>2]^i[o+4>>2],i[g>>2]=B^E,i[g+4>>2]=o,128!=(0|(A=A+4|0)););s=C+2048|0}function G(A,I,g){var C,B,Q,E,a,_,c,t,r,e,y,h,D,f,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0;for(s=C=s-800|0,k=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,S=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,G=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,M=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,w=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,K=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,U=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,Q=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,E=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,a=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,_=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,c=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,t=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,r=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,n=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=g- -64|0,e=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[I>>2]=33620224^e,i[g+56>>2]=1496785429,i[g+60>>2]=1652156816,i[(A=g+48|0)>>2]=33620224,i[A+4>>2]=218629379,i[g+40>>2]=1110511904,i[g+44>>2]=-584534669,i[(B=g+32|0)>>2]=1427652059,i[B+4>>2]=-248528275,y=n^e,i[g>>2]=y,i[g+92>>2]=-584534669^r,i[g+88>>2]=1110511904^t,i[g+84>>2]=-248528275^c,i[(n=g+80|0)>>2]=1427652059^_,i[g+76>>2]=1652156816^a,i[g+72>>2]=1496785429^E,i[g+68>>2]=218629379^Q,U^=r,i[g+28>>2]=U,K^=t,i[g+24>>2]=K,h=w^c,i[g+20>>2]=h,M^=_,i[(w=g+16|0)>>2]=M,G^=a,i[g+12>>2]=G,D=S^E,i[g+8>>2]=D,f=k^Q,i[g+4>>2]=f,S=0;k=i[n+12>>2],i[C+792>>2]=i[n+8>>2],i[C+796>>2]=k,k=i[n+4>>2],i[C+784>>2]=i[n>>2],i[C+788>>2]=k,k=i[I+12>>2],i[C+760>>2]=i[I+8>>2],i[C+764>>2]=k,k=i[I+4>>2],i[C+752>>2]=i[I>>2],i[C+756>>2]=k,k=i[n+12>>2],i[C+744>>2]=i[n+8>>2],i[C+748>>2]=k,k=i[n+4>>2],i[C+736>>2]=i[n>>2],i[C+740>>2]=k,AI(k=C+768|0,C+752|0,C+736|0),p=i[C+780>>2],i[n+8>>2]=i[C+776>>2],i[n+12>>2]=p,p=i[C+772>>2],i[n>>2]=i[C+768>>2],i[n+4>>2]=p,p=i[A+12>>2],i[C+728>>2]=i[A+8>>2],i[C+732>>2]=p,p=i[A+4>>2],i[C+720>>2]=i[A>>2],i[C+724>>2]=p,p=i[I+12>>2],i[C+712>>2]=i[I+8>>2],i[C+716>>2]=p,p=i[I+4>>2],i[C+704>>2]=i[I>>2],i[C+708>>2]=p,AI(k,C+720|0,C+704|0),p=i[C+780>>2],i[I+8>>2]=i[C+776>>2],i[I+12>>2]=p,p=i[C+772>>2],i[I>>2]=i[C+768>>2],i[I+4>>2]=p,p=i[B+12>>2],i[C+696>>2]=i[B+8>>2],i[C+700>>2]=p,p=i[B+4>>2],i[C+688>>2]=i[B>>2],i[C+692>>2]=p,p=i[A+12>>2],i[C+680>>2]=i[A+8>>2],i[C+684>>2]=p,p=i[A+4>>2],i[C+672>>2]=i[A>>2],i[C+676>>2]=p,AI(k,C+688|0,C+672|0),p=i[C+780>>2],i[A+8>>2]=i[C+776>>2],i[A+12>>2]=p,p=i[C+772>>2],i[A>>2]=i[C+768>>2],i[A+4>>2]=p,p=i[w+12>>2],i[C+664>>2]=i[w+8>>2],i[C+668>>2]=p,p=i[w+4>>2],i[C+656>>2]=i[w>>2],i[C+660>>2]=p,p=i[B+12>>2],i[C+648>>2]=i[B+8>>2],i[C+652>>2]=p,p=i[B+4>>2],i[C+640>>2]=i[B>>2],i[C+644>>2]=p,AI(k,C+656|0,C+640|0),p=i[C+780>>2],i[B+8>>2]=i[C+776>>2],i[B+12>>2]=p,p=i[C+772>>2],i[B>>2]=i[C+768>>2],i[B+4>>2]=p,p=i[g+12>>2],i[C+632>>2]=i[g+8>>2],i[C+636>>2]=p,p=i[g+4>>2],i[C+624>>2]=i[g>>2],i[C+628>>2]=p,p=i[w+12>>2],i[C+616>>2]=i[w+8>>2],i[C+620>>2]=p,p=i[w+4>>2],i[C+608>>2]=i[w>>2],i[C+612>>2]=p,AI(k,C+624|0,C+608|0),p=i[C+780>>2],i[w+8>>2]=i[C+776>>2],i[w+12>>2]=p,p=i[C+772>>2],i[w>>2]=i[C+768>>2],i[w+4>>2]=p,p=i[C+796>>2],i[C+600>>2]=i[C+792>>2],i[C+604>>2]=p,p=i[C+788>>2],i[C+592>>2]=i[C+784>>2],i[C+596>>2]=p,p=i[g+12>>2],i[C+584>>2]=i[g+8>>2],i[C+588>>2]=p,p=i[g+4>>2],i[C+576>>2]=i[g>>2],i[C+580>>2]=p,AI(k,C+592|0,C+576|0),p=i[C+768>>2],F=i[C+772>>2],N=i[C+776>>2],i[g+12>>2]=i[C+780>>2]^a,i[g+8>>2]=N^E,i[g+4>>2]=F^Q,i[g>>2]=p^e,p=i[n+12>>2],i[C+792>>2]=i[n+8>>2],i[C+796>>2]=p,p=i[n+4>>2],i[C+784>>2]=i[n>>2],i[C+788>>2]=p,p=i[I+12>>2],i[C+568>>2]=i[I+8>>2],i[C+572>>2]=p,p=i[I+4>>2],i[C+560>>2]=i[I>>2],i[C+564>>2]=p,p=i[n+12>>2],i[C+552>>2]=i[n+8>>2],i[C+556>>2]=p,p=i[n+4>>2],i[C+544>>2]=i[n>>2],i[C+548>>2]=p,AI(k,C+560|0,C+544|0),p=i[C+780>>2],i[n+8>>2]=i[C+776>>2],i[n+12>>2]=p,p=i[C+772>>2],i[n>>2]=i[C+768>>2],i[n+4>>2]=p,p=i[A+12>>2],i[C+536>>2]=i[A+8>>2],i[C+540>>2]=p,p=i[A+4>>2],i[C+528>>2]=i[A>>2],i[C+532>>2]=p,p=i[I+12>>2],i[C+520>>2]=i[I+8>>2],i[C+524>>2]=p,p=i[I+4>>2],i[C+512>>2]=i[I>>2],i[C+516>>2]=p,AI(k,C+528|0,C+512|0),p=i[C+780>>2],i[I+8>>2]=i[C+776>>2],i[I+12>>2]=p,p=i[C+772>>2],i[I>>2]=i[C+768>>2],i[I+4>>2]=p,p=i[B+12>>2],i[C+504>>2]=i[B+8>>2],i[C+508>>2]=p,p=i[B+4>>2],i[C+496>>2]=i[B>>2],i[C+500>>2]=p,p=i[A+12>>2],i[C+488>>2]=i[A+8>>2],i[C+492>>2]=p,p=i[A+4>>2],i[C+480>>2]=i[A>>2],i[C+484>>2]=p,AI(k,C+496|0,C+480|0),p=i[C+780>>2],i[A+8>>2]=i[C+776>>2],i[A+12>>2]=p,p=i[C+772>>2],i[A>>2]=i[C+768>>2],i[A+4>>2]=p,p=i[w+12>>2],i[C+472>>2]=i[w+8>>2],i[C+476>>2]=p,p=i[w+4>>2],i[C+464>>2]=i[w>>2],i[C+468>>2]=p,p=i[B+12>>2],i[C+456>>2]=i[B+8>>2],i[C+460>>2]=p,p=i[B+4>>2],i[C+448>>2]=i[B>>2],i[C+452>>2]=p,AI(k,C+464|0,C+448|0),p=i[C+780>>2],i[B+8>>2]=i[C+776>>2],i[B+12>>2]=p,p=i[C+772>>2],i[B>>2]=i[C+768>>2],i[B+4>>2]=p,p=i[g+12>>2],i[C+440>>2]=i[g+8>>2],i[C+444>>2]=p,p=i[g+4>>2],i[C+432>>2]=i[g>>2],i[C+436>>2]=p,p=i[w+12>>2],i[C+424>>2]=i[w+8>>2],i[C+428>>2]=p,p=i[w+4>>2],i[C+416>>2]=i[w>>2],i[C+420>>2]=p,AI(k,C+432|0,C+416|0),p=i[C+780>>2],i[w+8>>2]=i[C+776>>2],i[w+12>>2]=p,p=i[C+772>>2],i[w>>2]=i[C+768>>2],i[w+4>>2]=p,p=i[C+796>>2],i[C+408>>2]=i[C+792>>2],i[C+412>>2]=p,p=i[C+788>>2],i[C+400>>2]=i[C+784>>2],i[C+404>>2]=p,p=i[g+12>>2],i[C+392>>2]=i[g+8>>2],i[C+396>>2]=p,p=i[g+4>>2],i[C+384>>2]=i[g>>2],i[C+388>>2]=p,AI(k,C+400|0,C+384|0),p=i[C+768>>2],F=i[C+772>>2],N=i[C+776>>2],i[g+12>>2]=i[C+780>>2]^r,i[g+8>>2]=N^t,i[g+4>>2]=F^c,i[g>>2]=p^_,p=i[n+12>>2],i[C+792>>2]=i[n+8>>2],i[C+796>>2]=p,p=i[n+4>>2],i[C+784>>2]=i[n>>2],i[C+788>>2]=p,p=i[I+12>>2],i[C+376>>2]=i[I+8>>2],i[C+380>>2]=p,p=i[I+4>>2],i[C+368>>2]=i[I>>2],i[C+372>>2]=p,p=i[n+12>>2],i[C+360>>2]=i[n+8>>2],i[C+364>>2]=p,p=i[n+4>>2],i[C+352>>2]=i[n>>2],i[C+356>>2]=p,AI(k,C+368|0,C+352|0),p=i[C+780>>2],i[n+8>>2]=i[C+776>>2],i[n+12>>2]=p,p=i[C+772>>2],i[n>>2]=i[C+768>>2],i[n+4>>2]=p,p=i[A+12>>2],i[C+344>>2]=i[A+8>>2],i[C+348>>2]=p,p=i[A+4>>2],i[C+336>>2]=i[A>>2],i[C+340>>2]=p,p=i[I+12>>2],i[C+328>>2]=i[I+8>>2],i[C+332>>2]=p,p=i[I+4>>2],i[C+320>>2]=i[I>>2],i[C+324>>2]=p,AI(k,C+336|0,C+320|0),p=i[C+780>>2],i[I+8>>2]=i[C+776>>2],i[I+12>>2]=p,p=i[C+772>>2],i[I>>2]=i[C+768>>2],i[I+4>>2]=p,p=i[B+12>>2],i[C+312>>2]=i[B+8>>2],i[C+316>>2]=p,p=i[B+4>>2],i[C+304>>2]=i[B>>2],i[C+308>>2]=p,p=i[A+12>>2],i[C+296>>2]=i[A+8>>2],i[C+300>>2]=p,p=i[A+4>>2],i[C+288>>2]=i[A>>2],i[C+292>>2]=p,AI(k,C+304|0,C+288|0),p=i[C+780>>2],i[A+8>>2]=i[C+776>>2],i[A+12>>2]=p,p=i[C+772>>2],i[A>>2]=i[C+768>>2],i[A+4>>2]=p,p=i[w+12>>2],i[C+280>>2]=i[w+8>>2],i[C+284>>2]=p,p=i[w+4>>2],i[C+272>>2]=i[w>>2],i[C+276>>2]=p,p=i[B+12>>2],i[C+264>>2]=i[B+8>>2],i[C+268>>2]=p,p=i[B+4>>2],i[C+256>>2]=i[B>>2],i[C+260>>2]=p,AI(k,C+272|0,C+256|0),p=i[C+780>>2],i[B+8>>2]=i[C+776>>2],i[B+12>>2]=p,p=i[C+772>>2],i[B>>2]=i[C+768>>2],i[B+4>>2]=p,p=i[g+12>>2],i[C+248>>2]=i[g+8>>2],i[C+252>>2]=p,p=i[g+4>>2],i[C+240>>2]=i[g>>2],i[C+244>>2]=p,p=i[w+12>>2],i[C+232>>2]=i[w+8>>2],i[C+236>>2]=p,p=i[w+4>>2],i[C+224>>2]=i[w>>2],i[C+228>>2]=p,AI(k,C+240|0,C+224|0),p=i[C+780>>2],i[w+8>>2]=i[C+776>>2],i[w+12>>2]=p,p=i[C+772>>2],i[w>>2]=i[C+768>>2],i[w+4>>2]=p,p=i[C+796>>2],i[C+216>>2]=i[C+792>>2],i[C+220>>2]=p,p=i[C+788>>2],i[C+208>>2]=i[C+784>>2],i[C+212>>2]=p,p=i[g+12>>2],i[C+200>>2]=i[g+8>>2],i[C+204>>2]=p,p=i[g+4>>2],i[C+192>>2]=i[g>>2],i[C+196>>2]=p,AI(k,C+208|0,C+192|0),p=i[C+768>>2],F=i[C+772>>2],N=i[C+776>>2],i[g+12>>2]=G^i[C+780>>2],i[g+8>>2]=N^D,i[g+4>>2]=F^f,i[g>>2]=p^y,p=i[n+12>>2],i[C+792>>2]=i[n+8>>2],i[C+796>>2]=p,p=i[n+4>>2],i[C+784>>2]=i[n>>2],i[C+788>>2]=p,p=i[I+12>>2],i[C+184>>2]=i[I+8>>2],i[C+188>>2]=p,p=i[I+4>>2],i[C+176>>2]=i[I>>2],i[C+180>>2]=p,p=i[n+12>>2],i[C+168>>2]=i[n+8>>2],i[C+172>>2]=p,p=i[n+4>>2],i[C+160>>2]=i[n>>2],i[C+164>>2]=p,AI(k,C+176|0,C+160|0),p=i[C+780>>2],i[n+8>>2]=i[C+776>>2],i[n+12>>2]=p,p=i[C+772>>2],i[n>>2]=i[C+768>>2],i[n+4>>2]=p,p=i[A+12>>2],i[C+152>>2]=i[A+8>>2],i[C+156>>2]=p,p=i[A+4>>2],i[C+144>>2]=i[A>>2],i[C+148>>2]=p,p=i[I+12>>2],i[C+136>>2]=i[I+8>>2],i[C+140>>2]=p,p=i[I+4>>2],i[C+128>>2]=i[I>>2],i[C+132>>2]=p,AI(k,C+144|0,C+128|0),p=i[C+780>>2],i[I+8>>2]=i[C+776>>2],i[I+12>>2]=p,p=i[C+772>>2],i[I>>2]=i[C+768>>2],i[I+4>>2]=p,p=i[B+12>>2],i[C+120>>2]=i[B+8>>2],i[C+124>>2]=p,p=i[B+4>>2],i[C+112>>2]=i[B>>2],i[C+116>>2]=p,p=i[A+12>>2],i[C+104>>2]=i[A+8>>2],i[C+108>>2]=p,p=i[A+4>>2],i[C+96>>2]=i[A>>2],i[C+100>>2]=p,AI(k,C+112|0,C+96|0),p=i[C+780>>2],i[A+8>>2]=i[C+776>>2],i[A+12>>2]=p,p=i[C+772>>2],i[A>>2]=i[C+768>>2],i[A+4>>2]=p,p=i[w+12>>2],i[C+88>>2]=i[w+8>>2],i[C+92>>2]=p,p=i[w+4>>2],i[C+80>>2]=i[w>>2],i[C+84>>2]=p,p=i[B+12>>2],i[C+72>>2]=i[B+8>>2],i[C+76>>2]=p,p=i[B+4>>2],i[C+64>>2]=i[B>>2],i[C+68>>2]=p,AI(k,C+80|0,C- -64|0),p=i[C+780>>2],i[B+8>>2]=i[C+776>>2],i[B+12>>2]=p,p=i[C+772>>2],i[B>>2]=i[C+768>>2],i[B+4>>2]=p,p=i[g+12>>2],i[C+56>>2]=i[g+8>>2],i[C+60>>2]=p,p=i[g+4>>2],i[C+48>>2]=i[g>>2],i[C+52>>2]=p,p=i[w+12>>2],i[C+40>>2]=i[w+8>>2],i[C+44>>2]=p,p=i[w+4>>2],i[C+32>>2]=i[w>>2],i[C+36>>2]=p,AI(k,C+48|0,C+32|0),p=i[C+780>>2],i[w+8>>2]=i[C+776>>2],i[w+12>>2]=p,p=i[C+772>>2],i[w>>2]=i[C+768>>2],i[w+4>>2]=p,p=i[C+796>>2],i[C+24>>2]=i[C+792>>2],i[C+28>>2]=p,p=i[C+788>>2],i[C+16>>2]=i[C+784>>2],i[C+20>>2]=p,p=i[g+12>>2],i[C+8>>2]=i[g+8>>2],i[C+12>>2]=p,p=i[g+4>>2],i[C>>2]=i[g>>2],i[C+4>>2]=p,AI(k,C+16|0,C),k=i[C+768>>2],p=i[C+772>>2],F=i[C+776>>2],i[g+12>>2]=U^i[C+780>>2],i[g+8>>2]=F^K,i[g+4>>2]=p^h,i[g>>2]=k^M,4!=(0|(S=S+1|0)););s=C+800|0}function M(A,I){var g,B,E,a,_,c,t,r,e,y,h,D,p,w,n,k,F,S,N,G,M,K,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0;for(s=g=s-48|0,Y=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,H=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,C[A+24|0]=H,C[A+25|0]=H>>>8,C[A+26|0]=H>>>16,C[A+27|0]=H>>>24,C[A+28|0]=Y,C[A+29|0]=Y>>>8,C[A+30|0]=Y>>>16,C[A+31|0]=Y>>>24,Y=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,H=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,C[0|A]=H,C[A+1|0]=H>>>8,C[A+2|0]=H>>>16,C[A+3|0]=H>>>24,C[A+4|0]=Y,C[A+5|0]=Y>>>8,C[A+6|0]=Y>>>16,C[A+7|0]=Y>>>24,Y=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,H=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,C[A+16|0]=H,C[A+17|0]=H>>>8,C[A+18|0]=H>>>16,C[A+19|0]=H>>>24,C[A+20|0]=Y,C[A+21|0]=Y>>>8,C[A+22|0]=Y>>>16,C[A+23|0]=Y>>>24,H=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,I=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,C[A+12|0]=H,C[A+13|0]=H>>>8,C[A+14|0]=H>>>16,C[A+15|0]=H>>>24,I=o[A+31|0],C[A+31|0]=127&I,fA(g,A),y=128&I,s=I=s-960|0,v(H=I+304|0,g),i[I+304>>2]=i[I+304>>2]+1,LA(H,H),Y=Ig(H=i[I+340>>2],H>>31,486662,0),H=f,l=(P=Y+16777216|0)>>>0<16777216?H+1|0:H,x=Y-(-33554432&P)|0,U=Ig(H=i[I+336>>2],H>>31,486662,0),Y=f,J=Ig(H=i[I+332>>2],H>>31,486662,0),H=f,u=U,U=(U=(H=(m=J+16777216|0)>>>0<16777216?H+1|0:H)>>25)+Y|0,H=(H=(33554431&H)<<7|m>>>25)>>>0>(d=u+H|0)>>>0?U+1|0:U,B=((67108863&(H=(Y=d+33554432|0)>>>0<33554432?H+1|0:H))<<6|Y>>>26)+x|0,i[I+292>>2]=0-B,W=d-(-67108864&Y)|0,i[I+288>>2]=0-W,x=J-(-33554432&m)|0,Y=Ig(H=i[I+328>>2],H>>31,486662,0),H=f,m=Ig(U=i[I+324>>2],U>>31,486662,0),U=f,u=Y,H=H+(Y=(U=(d=m+16777216|0)>>>0<16777216?U+1|0:U)>>25)|0,H=(U=u+(J=(33554431&U)<<7|d>>>25)|0)>>>0>>0?H+1|0:H,E=((67108863&(H=(Y=U+33554432|0)>>>0<33554432?H+1|0:H))<<6|Y>>>26)+x|0,i[I+284>>2]=0-E,a=U-(-67108864&Y)|0,i[I+280>>2]=0-a,x=m-(-33554432&d)|0,U=Ig(H=i[I+320>>2],H>>31,486662,0),H=f,m=Ig(Y=i[I+316>>2],Y>>31,486662,0),Y=f,u=U,H=(U=(Y=(d=m+16777216|0)>>>0<16777216?Y+1|0:Y)>>25)+H|0,U=H=(Y=u+(J=(33554431&Y)<<7|d>>>25)|0)>>>0>>0?H+1|0:H,_=((67108863&(U=(J=Y+33554432|0)>>>0<33554432?U+1|0:U))<<6|J>>>26)+x|0,i[I+276>>2]=0-_,c=Y-(-67108864&J)|0,i[I+272>>2]=0-c,u=m-(-33554432&d)|0,H=Ig(H=i[I+312>>2],H>>31,486662,0),x=f,J=Ig(Y=i[I+308>>2],Y>>31,486662,0),U=f,Y=(33554431&(U=(m=J+16777216|0)>>>0<16777216?U+1|0:U))<<7|m>>>25,U=(U>>25)+x|0,Y=Y>>>0>(d=Y+H|0)>>>0?U+1|0:U,t=((67108863&(Y=(H=d+33554432|0)>>>0<33554432?Y+1|0:Y))<<6|H>>>26)+u|0,i[I+268>>2]=0-t,r=d-(-67108864&H)|0,i[I+264>>2]=0-r,d=J-(-33554432&m)|0,Y=Ig((33554431&l)<<7|P>>>25,l>>25,19,0),H=f,J=Y,Y=Ig(U=i[I+304>>2],U>>31,486662,0),H=f+H|0,Y=(U=J+Y|0)>>>0>>0?H+1|0:H,e=((67108863&(Y=(H=U+33554432|0)>>>0<33554432?Y+1|0:Y))<<6|H>>>26)+d|0,i[I+260>>2]=0-e,L=U-(-67108864&H)|0,i[I+256>>2]=0-L,R(Y=I+208|0,H=I+256|0),b(I+160|0,H,Y),h=i[I+196>>2],D=i[I+160>>2],q=i[I+208>>2],p=i[I+164>>2],w=i[I+168>>2],z=i[I+212>>2],j=i[I+216>>2],n=i[I+172>>2],k=i[I+176>>2],X=i[I+220>>2],O=i[I+224>>2],F=i[I+180>>2],S=i[I+184>>2],u=i[I+228>>2],x=i[I+232>>2],N=i[I+188>>2],G=i[I+192>>2],Y=Ig(H=i[I+244>>2],H>>31,486662,0),H=f,l=(P=Y+16777216|0)>>>0<16777216?H+1|0:H,M=Y-(-33554432&P)|0,H=Ig(H=i[I+240>>2],H>>31,486662,0),K=f,J=Ig(Y=i[I+236>>2],Y>>31,486662,0),U=f,Y=H,H=(33554431&(U=(m=J+16777216|0)>>>0<16777216?U+1|0:U))<<7|m>>>25,U=(U>>25)+K|0,H=H>>>0>(d=Y+H|0)>>>0?U+1|0:U,U=((67108863&(H=(Y=d+33554432|0)>>>0<33554432?H+1|0:H))<<6|Y>>>26)+M|0,i[I+244>>2]=U,i[I+388>>2]=U+(h-B|0),H=d-(-67108864&Y)|0,i[I+240>>2]=H,i[I+384>>2]=H+(G-W|0),W=J-(-33554432&m)|0,H=Ig(x,x>>31,486662,0),J=f,m=Ig(u,u>>31,486662,0),Y=f,u=H,H=(H=(Y=(d=m+16777216|0)>>>0<16777216?Y+1|0:Y)>>25)+J|0,U=H=(U=(33554431&Y)<<7|d>>>25)>>>0>(Y=u+U|0)>>>0?H+1|0:H,J=((67108863&(U=(J=Y+33554432|0)>>>0<33554432?U+1|0:U))<<6|(H=J)>>>26)+W|0,i[I+236>>2]=J,i[I+380>>2]=J+(N-E|0),H=Y-(-67108864&H)|0,i[I+232>>2]=H,i[I+376>>2]=H+(S-a|0),x=m-(-33554432&d)|0,U=Ig(O,O>>31,486662,0),Y=f,J=Ig(X,X>>31,486662,0),H=f,u=U,U=(U=(H=(m=J+16777216|0)>>>0<16777216?H+1|0:H)>>25)+Y|0,Y=(H=(33554431&H)<<7|m>>>25)>>>0>(d=u+H|0)>>>0?U+1|0:U,U=((67108863&(Y=(H=d+33554432|0)>>>0<33554432?Y+1|0:Y))<<6|H>>>26)+x|0,i[I+228>>2]=U,i[I+372>>2]=U+(F-_|0),H=d-(-67108864&H)|0,i[I+224>>2]=H,i[I+368>>2]=H+(k-c|0),x=J-(-33554432&m)|0,H=Ig(j,j>>31,486662,0),Y=f,m=Ig(z,z>>31,486662,0),U=f,u=H,Y=(H=(U=(d=m+16777216|0)>>>0<16777216?U+1|0:U)>>25)+Y|0,H=Y=(U=u+(J=(33554431&U)<<7|d>>>25)|0)>>>0>>0?Y+1|0:Y,J=((67108863&(H=(J=U+33554432|0)>>>0<33554432?H+1|0:H))<<6|(Y=J)>>>26)+x|0,i[I+220>>2]=J,i[I+364>>2]=J+(n-t|0),H=U-(-67108864&Y)|0,i[I+216>>2]=H,i[I+360>>2]=H+(w-r|0),d=m-(-33554432&d)|0,Y=Ig((33554431&l)<<7|P>>>25,l>>25,19,0),H=f,U=Y,Y=Ig(q,q>>31,486662,0),H=f+H|0,H=(U=U+Y|0)>>>0>>0?H+1|0:H,l=((67108863&(H=(Y=U+33554432|0)>>>0<33554432?H+1|0:H))<<6|Y>>>26)+d|0,i[I+212>>2]=l,i[I+356>>2]=l+(p-e|0),H=U-(-67108864&Y)|0,i[I+208>>2]=H,i[I+352>>2]=H+(D-L|0),b(H=I+624|0,Y=I+352|0,Y),b(I,Y,H),R(Y=I+784|0,I),R(Y,Y),b(H=I+912|0,I,Y),R(Y=I+576|0,H),R(Y,Y),R(Y,Y),R(Y,Y),b(U=I+528|0,H,Y),R(U,U),R(U,U),b(U,U,I),H=i[I+564>>2],i[I+512>>2]=i[I+560>>2],i[I+516>>2]=H,H=i[I+556>>2],i[I+504>>2]=i[I+552>>2],i[I+508>>2]=H,H=i[I+548>>2],i[I+496>>2]=i[I+544>>2],i[I+500>>2]=H,H=i[I+540>>2],i[I+488>>2]=i[I+536>>2],i[I+492>>2]=H,H=i[I+532>>2],i[I+480>>2]=i[I+528>>2],i[I+484>>2]=H,R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),b(U,U,H=I+480|0),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),b(U,U,H),H=i[I+564>>2],i[I+464>>2]=i[I+560>>2],i[I+468>>2]=H,H=i[I+556>>2],i[I+456>>2]=i[I+552>>2],i[I+460>>2]=H,H=i[I+548>>2],i[I+448>>2]=i[I+544>>2],i[I+452>>2]=H,H=i[I+540>>2],i[I+440>>2]=i[I+536>>2],i[I+444>>2]=H,H=i[I+532>>2],i[I+432>>2]=i[I+528>>2],i[I+436>>2]=H,R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),b(U,U,Y=I+432|0),H=i[I+564>>2],i[I+464>>2]=i[I+560>>2],i[I+468>>2]=H,H=i[I+556>>2],i[I+456>>2]=i[I+552>>2],i[I+460>>2]=H,H=i[I+548>>2],i[I+448>>2]=i[I+544>>2],i[I+452>>2]=H,H=i[I+540>>2],i[I+440>>2]=i[I+536>>2],i[I+444>>2]=H,H=i[I+532>>2],i[I+432>>2]=i[I+528>>2],i[I+436>>2]=H,R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),b(U,U,Y),H=i[I+564>>2],i[I+464>>2]=i[I+560>>2],i[I+468>>2]=H,H=i[I+556>>2],i[I+456>>2]=i[I+552>>2],i[I+460>>2]=H,H=i[I+548>>2],i[I+448>>2]=i[I+544>>2],i[I+452>>2]=H,H=i[I+540>>2],i[I+440>>2]=i[I+536>>2],i[I+444>>2]=H,H=i[I+532>>2],i[I+432>>2]=i[I+528>>2],i[I+436>>2]=H;R(H=I+528|0,H),120!=(0|(V=V+1|0)););b(H,H,I+432|0),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),b(H,H,I+480|0),R(H,H),R(H,H),R(H,H),b(H,H,I),R(H,H),QI(I+400|0,H),q=i[I+256>>2],z=i[I+260>>2],j=i[I+264>>2],X=i[I+268>>2],O=i[I+272>>2],d=i[I+276>>2],l=i[I+280>>2],U=i[I+284>>2],Y=i[I+288>>2],u=(L=0-(1&C[I+401|0])|0)&(0-(H=i[I+292>>2])^H)^H,i[I+660>>2]=u,x=Y^L&(Y^0-Y),i[I+656>>2]=x,P=U^L&(U^0-U),i[I+652>>2]=P,J=l^L&(l^0-l),i[I+648>>2]=J,m=d^L&(d^0-d),i[I+644>>2]=m,d=O^L&(O^0-O),i[I+640>>2]=d,l=X^L&(X^0-X),i[I+636>>2]=l,U=j^L&(j^0-j),i[I+632>>2]=U,Y=z^L&(z^0-z),i[I+628>>2]=Y,H=(q^L&(q^0-q))-(486662&L)|0,i[I+624>>2]=H+1,i[I+820>>2]=u,i[I+816>>2]=x,i[I+812>>2]=P,i[I+808>>2]=J,i[I+804>>2]=m,i[I+800>>2]=d,i[I+796>>2]=l,i[I+792>>2]=U,i[I+788>>2]=Y,i[I+784>>2]=H-1,LA(I,I+624|0),b(H=I+912|0,I+784|0,I),QI(A,H),C[A+31|0]=o[A+31|0]|y,MA(I,A)&&(DB(),Q()),H=i[I+36>>2],i[I+816>>2]=i[I+32>>2],i[I+820>>2]=H,H=i[I+28>>2],i[I+808>>2]=i[I+24>>2],i[I+812>>2]=H,H=i[I+20>>2],i[I+800>>2]=i[I+16>>2],i[I+804>>2]=H,H=i[I+12>>2],i[I+792>>2]=i[I+8>>2],i[I+796>>2]=H,H=i[I+52>>2],i[I+832>>2]=i[I+48>>2],i[I+836>>2]=H,H=i[I+60>>2],i[I+840>>2]=i[I+56>>2],i[I+844>>2]=H,H=i[4+(Y=I- -64|0)>>2],i[I+848>>2]=i[Y>>2],i[I+852>>2]=H,H=i[I+76>>2],i[I+856>>2]=i[I+72>>2],i[I+860>>2]=H,H=i[I+4>>2],i[I+784>>2]=i[I>>2],i[I+788>>2]=H,H=i[I+44>>2],i[I+824>>2]=i[I+40>>2],i[I+828>>2]=H,H=i[I+116>>2],i[I+896>>2]=i[I+112>>2],i[I+900>>2]=H,H=i[I+108>>2],i[I+888>>2]=i[I+104>>2],i[I+892>>2]=H,H=i[I+100>>2],i[I+880>>2]=i[I+96>>2],i[I+884>>2]=H,H=i[I+92>>2],i[I+872>>2]=i[I+88>>2],i[I+876>>2]=H,H=i[I+84>>2],i[I+864>>2]=i[I+80>>2],i[I+868>>2]=H,KA(J=I+624|0,m=I+784|0),b(m,J,d=I+744|0),b(Y=I+824|0,U=I+664|0,l=I+704|0),b(H=I+864|0,l,d),KA(J,m),b(m,J,d),b(Y,U,l),b(H,l,d),KA(J,m),b(I,J,d),b(Y=I+40|0,U,l),b(H=I+80|0,l,d),b(I+120|0,J,U),LA(J,H),b(m,I,J),b(H=I+912|0,Y,J),QI(A,H),QI(I+576|0,m),C[A+31|0]=o[A+31|0]^o[I+576|0]<<7,s=I+960|0,s=g+48|0}function K(A){var I,g=0,C=0,B=0,Q=0,a=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0;s=I=s-16|0;A:{I:{g:{C:{B:{Q:{i:{o:{E:{a:{if((A|=0)>>>0<=244){if(3&(g=(Q=i[9405])>>>(A=(t=A>>>0<11?16:A+11&504)>>>3|0)|0)){A=37660+(g=(C=A+(1&~g)|0)<<3)|0,g=i[g+37668>>2],(0|A)!=(0|(B=i[g+8>>2]))?(i[B+12>>2]=A,i[A+8>>2]=B):(h=37620,D=Lg(-2,C)&Q,i[h>>2]=D),A=g+8|0,C<<=3,i[g+4>>2]=3|C,i[4+(g=g+C|0)>>2]=1|i[g+4>>2];break A}if((r=i[9407])>>>0>=t>>>0)break a;if(g){g=37660+(C=(A=FC((0-(C=2<>2],(0|g)!=(0|(B=i[C+8>>2]))?(i[B+12>>2]=g,i[g+8>>2]=B):(Q=Lg(-2,A)&Q,i[9405]=Q),i[C+4>>2]=3|t,a=(A<<=3)-t|0,i[4+(c=C+t|0)>>2]=1|a,i[A+C>>2]=a,r&&(A=37660+(-8&r)|0,B=i[9410],(g=1<<(r>>>3))&Q?g=i[A+8>>2]:(i[9405]=g|Q,g=A),i[A+8>>2]=B,i[g+12>>2]=B,i[B+12>>2]=A,i[B+8>>2]=g),A=C+8|0,i[9410]=c,i[9407]=a;break A}if(!(y=i[9406]))break a;for(C=i[37924+(FC(y)<<2)>>2],a=(-8&i[C+4>>2])-t|0,g=C;(A=i[g+16>>2])||(A=i[g+20>>2]);)a=(g=(B=(-8&i[A+4>>2])-t|0)>>>0>>0)?B:a,C=g?A:C,g=A;if(e=i[C+24>>2],(0|C)!=(0|(A=i[C+12>>2]))){g=i[C+8>>2],i[g+12>>2]=A,i[A+8>>2]=g;break I}if(g=i[C+20>>2])B=C+20|0;else{if(!(g=i[C+16>>2]))break E;B=C+16|0}for(;c=B,B=(A=g)+20|0,(g=i[A+20>>2])||(B=A+16|0,g=i[A+16>>2]););i[c>>2]=0;break I}if(t=-1,!(A>>>0>4294967231)&&(t=-8&(g=A+11|0),c=i[9406])){r=31,a=0-t|0,A>>>0<=16777204&&(r=62+((t>>>38-(A=_(g>>>8|0))&1)-(A<<1)|0)|0);_:{c:{if(g=i[37924+(r<<2)>>2])for(A=0,C=t<<(31!=(0|r)?25-(r>>>1|0):0);;){if(!((Q=(-8&i[g+4>>2])-t|0)>>>0>=a>>>0||(B=g,a=Q))){a=0,A=g;break c}if(Q=i[g+20>>2],g=i[16+((C>>>29&4)+g|0)>>2],A=Q?(0|Q)==(0|g)?A:Q:A,C<<=1,!g)break}else A=0;if(!(A|B)){if(B=0,!(A=(0-(A=2<>2]}if(!A)break _}for(;a=(g=(C=(-8&i[A+4>>2])-t|0)>>>0>>0)?C:a,B=g?A:B,A=(g=i[A+16>>2])||i[A+20>>2];);}if(!(!B|i[9407]-t>>>0<=a>>>0)){if(r=i[B+24>>2],(0|B)!=(0|(A=i[B+12>>2]))){g=i[B+8>>2],i[g+12>>2]=A,i[A+8>>2]=g;break g}if(g=i[B+20>>2])C=B+20|0;else{if(!(g=i[B+16>>2]))break o;C=B+16|0}for(;Q=C,C=(A=g)+20|0,(g=i[A+20>>2])||(C=A+16|0,g=i[A+16>>2]););i[Q>>2]=0;break g}}}if((B=i[9407])>>>0>=t>>>0){A=i[9410],(g=B-t|0)>>>0>=16?(i[4+(C=A+t|0)>>2]=1|g,i[A+B>>2]=g,i[A+4>>2]=3|t):(i[A+4>>2]=3|B,i[4+(g=A+B|0)>>2]=1|i[g+4>>2],C=0,g=0),i[9407]=g,i[9410]=C,A=A+8|0;break A}if((C=i[9408])>>>0>t>>>0){g=C-t|0,i[9408]=g,C=(A=i[9411])+t|0,i[9411]=C,i[C+4>>2]=1|g,i[A+4>>2]=3|t,A=A+8|0;break A}if(A=0,a=t+47|0,i[9523]?g=i[9525]:(i[9526]=-1,i[9527]=-1,i[9524]=4096,i[9525]=4096,i[9523]=I+12&-16^1431655768,i[9528]=0,i[9516]=0,g=4096),(g=(Q=a+g|0)&(c=0-g|0))>>>0<=t>>>0)break A;if((r=i[9515])&&(B=(e=i[9513])+g|0)>>>0<=e>>>0|B>>>0>r>>>0)break A;a:{if(!(4&o[38064])){_:{c:{t:{r:{if(B=i[9411])for(A=38068;;){if((r=i[A>>2])>>>0<=B>>>0&B>>>0>2]>>>0)break r;if(!(A=i[A+8>>2]))break}if(-1==(0|(C=cg(0))))break _;if(Q=g,(B=(A=i[9524])-1|0)&C&&(Q=(g-C|0)+(C+B&0-A)|0),Q>>>0<=t>>>0)break _;if((B=i[9515])&&(A=(c=i[9513])+Q|0)>>>0<=c>>>0|A>>>0>B>>>0)break _;if((0|C)!=(0|(A=cg(Q))))break t;break a}if((0|(C=cg(Q=c&Q-C)))==(i[A>>2]+i[A+4>>2]|0))break c;A=C}if(-1==(0|A))break _;if(t+48>>>0<=Q>>>0){C=A;break a}if(-1==(0|cg(C=(C=i[9525])+(a-Q|0)&0-C)))break _;Q=C+Q|0,C=A;break a}if(-1!=(0|C))break a}i[9516]=4|i[9516]}if(-1==(0|(C=cg(g)))|-1==(0|(A=cg(0)))|A>>>0<=C>>>0)break B;if((Q=A-C|0)>>>0<=t+40>>>0)break B}A=i[9513]+Q|0,i[9513]=A,A>>>0>E[9514]&&(i[9514]=A);a:{if(a=i[9411]){for(A=38068;;){if(((g=i[A>>2])+(B=i[A+4>>2])|0)==(0|C))break a;if(!(A=i[A+8>>2]))break}break i}for((A=i[9409])>>>0<=C>>>0&&A||(i[9409]=C),A=0,i[9518]=Q,i[9517]=C,i[9413]=-1,i[9414]=i[9523],i[9520]=0;B=37660+(g=A<<3)|0,i[g+37668>>2]=B,i[g+37672>>2]=B,32!=(0|(A=A+1|0)););B=(A=Q-40|0)-(g=-8-C&7)|0,i[9408]=B,g=g+C|0,i[9411]=g,i[g+4>>2]=1|B,i[4+(A+C|0)>>2]=40,i[9412]=i[9527];break Q}if(8&i[A+12>>2]|C>>>0<=a>>>0|g>>>0>a>>>0)break i;i[A+4>>2]=B+Q,g=(A=-8-a&7)+a|0,i[9411]=g,A=(C=i[9408]+Q|0)-A|0,i[9408]=A,i[g+4>>2]=1|A,i[4+(C+a|0)>>2]=40,i[9412]=i[9527];break Q}A=0;break I}A=0;break g}E[9409]>C>>>0&&(i[9409]=C),B=C+Q|0,A=38068;i:{for(;;){if((0|(g=i[A>>2]))!=(0|B)){if(A=i[A+8>>2])continue;break i}break}if(!(8&o[A+12|0]))break C}for(A=38068;!((g=i[A>>2])>>>0<=a>>>0&&(B=g+i[A+4>>2]|0)>>>0>a>>>0);)A=i[A+8>>2];for(c=(A=Q-40|0)-(g=-8-C&7)|0,i[9408]=c,g=g+C|0,i[9411]=g,i[g+4>>2]=1|c,i[4+(A+C|0)>>2]=40,i[9412]=i[9527],i[(g=(A=(B+(39-B&7)|0)-47|0)>>>0>>0?a:A)+4>>2]=27,A=i[9520],i[g+16>>2]=i[9519],i[g+20>>2]=A,A=i[9518],i[g+8>>2]=i[9517],i[g+12>>2]=A,i[9519]=g+8,i[9518]=Q,i[9517]=C,i[9520]=0,A=g+24|0;i[A+4>>2]=7,C=A+8|0,A=A+4|0,C>>>0>>0;);if((0|g)!=(0|a)){i[g+4>>2]=-2&i[g+4>>2],C=g-a|0,i[a+4>>2]=1|C,i[g>>2]=C;i:if(C>>>0<=255)A=37660+(-8&C)|0,(g=i[9405])&(C=1<<(C>>>3))?g=i[A+8>>2]:(i[9405]=g|C,g=A),i[A+8>>2]=a,i[g+12>>2]=a,B=8,C=12;else{A=31,C>>>0<=16777215&&(A=62+((C>>>38-(A=_(C>>>8|0))&1)-(A<<1)|0)|0),i[a+28>>2]=A,i[a+16>>2]=0,i[a+20>>2]=0,g=37924+(A<<2)|0;o:{if((B=i[9406])&(Q=1<>>1|0):0),B=i[g>>2];;){if((0|C)==(-8&i[(g=B)+4>>2]))break o;if(B=A>>>29|0,A<<=1,!(B=i[16+(Q=(4&B)+g|0)>>2]))break}i[Q+16>>2]=a}else i[9406]=B|Q,i[g>>2]=a;i[a+24>>2]=g,A=g=a,B=12,C=8;break i}A=i[g+8>>2],i[A+12>>2]=a,i[g+8>>2]=a,i[a+8>>2]=A,A=0,B=12,C=24}i[B+a>>2]=g,i[C+a>>2]=A}}if(!((A=i[9408])>>>0<=t>>>0)){g=A-t|0,i[9408]=g,C=(A=i[9411])+t|0,i[9411]=C,i[C+4>>2]=1|g,i[A+4>>2]=3|t,A=A+8|0;break A}}i[9404]=48,A=0;break A}i[A>>2]=C,i[A+4>>2]=i[A+4>>2]+Q,i[4+(r=(-8-C&7)+C|0)>>2]=3|t,c=(Q=g+(-8-g&7)|0)-(a=t+r|0)|0;C:if(i[9411]!=(0|Q))if(i[9410]!=(0|Q)){if(1==(3&(A=i[Q+4>>2]))){e=-8&A,C=i[Q+12>>2];B:if(A>>>0<=255){if((0|(g=i[Q+8>>2]))==(0|C)){h=37620,D=i[9405]&Lg(-2,A>>>3|0),i[h>>2]=D;break B}i[g+12>>2]=C,i[C+8>>2]=g}else{t=i[Q+24>>2];Q:if((0|C)==(0|Q)){i:{if(A=i[Q+20>>2])g=Q+20|0;else{if(!(A=i[Q+16>>2]))break i;g=Q+16|0}for(;B=g,C=A,g=A+20|0,(A=i[A+20>>2])||(g=C+16|0,A=i[C+16>>2]););i[B>>2]=0;break Q}C=0}else A=i[Q+8>>2],i[A+12>>2]=C,i[C+8>>2]=A;if(t){A=i[Q+28>>2];Q:{if(i[(g=37924+(A<<2)|0)>>2]==(0|Q)){if(i[g>>2]=C,C)break Q;h=37624,D=i[9406]&Lg(-2,A),i[h>>2]=D;break B}if(i[t+(i[t+16>>2]==(0|Q)?16:20)>>2]=C,!C)break B}i[C+24>>2]=t,(A=i[Q+16>>2])&&(i[C+16>>2]=A,i[A+24>>2]=C),(A=i[Q+20>>2])&&(i[C+20>>2]=A,i[A+24>>2]=C)}}c=c+e|0,A=i[4+(Q=Q+e|0)>>2]}if(i[Q+4>>2]=-2&A,i[a+4>>2]=1|c,i[a+c>>2]=c,c>>>0<=255)A=37660+(-8&c)|0,(g=i[9405])&(C=1<<(c>>>3))?g=i[A+8>>2]:(i[9405]=g|C,g=A),i[A+8>>2]=a,i[g+12>>2]=a,i[a+12>>2]=A,i[a+8>>2]=g;else{C=31,c>>>0<=16777215&&(C=62+((c>>>38-(A=_(c>>>8|0))&1)-(A<<1)|0)|0),i[a+28>>2]=C,i[a+16>>2]=0,i[a+20>>2]=0,A=37924+(C<<2)|0;B:{if((g=i[9406])&(B=1<>>1|0):0),g=i[A>>2];;){if((-8&i[(A=g)+4>>2])==(0|c))break B;if(g=C>>>29|0,C<<=1,!(g=i[16+(B=(4&g)+A|0)>>2]))break}i[B+16>>2]=a}else i[9406]=g|B,i[A>>2]=a;i[a+24>>2]=A,i[a+12>>2]=a,i[a+8>>2]=a;break C}g=i[A+8>>2],i[g+12>>2]=a,i[A+8>>2]=a,i[a+24>>2]=0,i[a+12>>2]=A,i[a+8>>2]=g}}else i[9410]=a,A=i[9407]+c|0,i[9407]=A,i[a+4>>2]=1|A,i[A+a>>2]=A;else i[9411]=a,A=i[9408]+c|0,i[9408]=A,i[a+4>>2]=1|A;A=r+8|0;break A}g:if(r){g=i[B+28>>2];C:{if(i[(C=37924+(g<<2)|0)>>2]==(0|B)){if(i[C>>2]=A,A)break C;c=Lg(-2,g)&c,i[9406]=c;break g}if(i[r+(i[r+16>>2]==(0|B)?16:20)>>2]=A,!A)break g}i[A+24>>2]=r,(g=i[B+16>>2])&&(i[A+16>>2]=g,i[g+24>>2]=A),(g=i[B+20>>2])&&(i[A+20>>2]=g,i[g+24>>2]=A)}g:if(a>>>0<=15)A=a+t|0,i[B+4>>2]=3|A,i[4+(A=A+B|0)>>2]=1|i[A+4>>2];else if(i[B+4>>2]=3|t,i[4+(Q=B+t|0)>>2]=1|a,i[a+Q>>2]=a,a>>>0<=255)A=37660+(-8&a)|0,(g=i[9405])&(C=1<<(a>>>3))?g=i[A+8>>2]:(i[9405]=g|C,g=A),i[A+8>>2]=Q,i[g+12>>2]=Q,i[Q+12>>2]=A,i[Q+8>>2]=g;else{A=31,a>>>0<=16777215&&(A=62+((a>>>38-(A=_(a>>>8|0))&1)-(A<<1)|0)|0),i[Q+28>>2]=A,i[Q+16>>2]=0,i[Q+20>>2]=0,g=37924+(A<<2)|0;C:{if((C=1<>>1|0):0),g=i[g>>2];;){if(C=g,(-8&i[g+4>>2])==(0|a))break C;if(c=A>>>29|0,A<<=1,!(g=i[16+(c=g+(4&c)|0)>>2]))break}i[c+16>>2]=Q,i[Q+24>>2]=C}else i[9406]=C|c,i[g>>2]=Q,i[Q+24>>2]=g;i[Q+12>>2]=Q,i[Q+8>>2]=Q;break g}A=i[C+8>>2],i[A+12>>2]=Q,i[C+8>>2]=Q,i[Q+24>>2]=0,i[Q+12>>2]=C,i[Q+8>>2]=A}A=B+8|0;break A}I:if(e){g=i[C+28>>2];g:{if(i[(B=37924+(g<<2)|0)>>2]==(0|C)){if(i[B>>2]=A,A)break g;h=37624,D=Lg(-2,g)&y,i[h>>2]=D;break I}if(i[e+(i[e+16>>2]==(0|C)?16:20)>>2]=A,!A)break I}i[A+24>>2]=e,(g=i[C+16>>2])&&(i[A+16>>2]=g,i[g+24>>2]=A),(g=i[C+20>>2])&&(i[A+20>>2]=g,i[g+24>>2]=A)}a>>>0<=15?(A=a+t|0,i[C+4>>2]=3|A,i[4+(A=A+C|0)>>2]=1|i[A+4>>2]):(i[C+4>>2]=3|t,i[4+(c=C+t|0)>>2]=1|a,i[a+c>>2]=a,r&&(A=37660+(-8&r)|0,B=i[9410],(g=1<<(r>>>3))&Q?g=i[A+8>>2]:(i[9405]=g|Q,g=A),i[A+8>>2]=B,i[g+12>>2]=B,i[B+12>>2]=A,i[B+8>>2]=g),i[9410]=c,i[9407]=a),A=C+8|0}return s=I+16|0,0|A}function U(A,I,g,B,Q,E){var _,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,X=0,O=0,W=0,V=0,Z=0,T=0;if(s=_=s-592|0,r=-1,ZI(t=A+32|0)&&!KI(A)&&NI(Q)&&!KI(Q)&&!qA(y=_+128|0,Q)){for(SI(r=_+384|0),E&&SA(r,35600,34,0),SA(r,A,32,0),SA(r,Q,32,0),SA(r,I,g,B),j(I=r,r=_+320|0),S(r),B=_+8|0,g=t,Q=0,I=0,s=c=s-2272|0;E=c+2016|0,t=o[r+(Q>>>3|0)|0],C[E+Q|0]=t>>>(6&Q)&1,C[(e=E)+(E=1|Q)|0]=t>>>(7&E)&1,256!=(0|(Q=Q+2|0)););for(;;){I=(E=I)+1|0;A:if(!(E>>>0>254)&&o[0|(D=(Q=c+2016|0)+E|0)]){I:if(Q=C[0|(h=I+Q|0)])if((0|(Q=(r=Q<<1)+(t=C[0|D])|0))<=15)C[0|D]=Q,C[0|h]=0;else{if((0|(Q=t-r|0))<-15)break A;for(C[0|D]=Q,Q=I;;){if(!o[0|(t=(c+2016|0)+Q|0)]){C[0|t]=1;break I}if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,!t)break}}if(!(E>>>0>253)){I:if(t=C[0|(e=(Q=E+2|0)+(c+2016|0)|0)])if((0|(t=(h=t<<2)+(r=C[0|D])|0))>=16){if((0|(t=r-h|0))<-15)break A;for(C[0|D]=t;;){if(o[0|(t=(c+2016|0)+Q|0)]){if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,t)continue;break I}break}C[0|t]=1}else C[0|D]=t,C[0|e]=0;if(253!=(0|E)){I:if(t=C[0|(e=(Q=E+3|0)+(c+2016|0)|0)])if((0|(t=(h=t<<3)+(r=C[0|D])|0))>=16){if((0|(t=r-h|0))<-15)break A;for(C[0|D]=t;;){if(o[0|(t=(c+2016|0)+Q|0)]){if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,t)continue;break I}break}C[0|t]=1}else C[0|D]=t,C[0|e]=0;if(!(E>>>0>251)){I:if(t=C[0|(e=(Q=E+4|0)+(c+2016|0)|0)])if((0|(t=(h=t<<4)+(r=C[0|D])|0))>=16){if((0|(t=r-h|0))<-15)break A;for(C[0|D]=t;;){if(o[0|(t=(c+2016|0)+Q|0)]){if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,t)continue;break I}break}C[0|t]=1}else C[0|D]=t,C[0|e]=0;if(251!=(0|E)){I:if(t=C[0|(e=(Q=E+5|0)+(c+2016|0)|0)])if((0|(t=(h=t<<5)+(r=C[0|D])|0))>=16){if((0|(t=r-h|0))<-15)break A;for(C[0|D]=t;;){if(o[0|(t=(c+2016|0)+Q|0)]){if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,t)continue;break I}break}C[0|t]=1}else C[0|D]=t,C[0|e]=0;if(!(E>>>0>249)&&(E=C[0|(h=(Q=E+6|0)+(c+2016|0)|0)]))if((0|(E=(r=E<<6)+(t=C[0|D])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|D]=E;;){if(o[0|(E=(c+2016|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break A}break}C[0|E]=1}else C[0|D]=E,C[0|h]=0}}}}}if(256==(0|I))break}for(Q=0;I=c+1760|0,E=o[g+(Q>>>3|0)|0],C[I+Q|0]=E>>>(6&Q)&1,C[(t=I)+(I=1|Q)|0]=E>>>(7&I)&1,256!=(0|(Q=Q+2|0)););for(I=0;;){g=I,I=I+1|0;A:if(!(g>>>0>254)&&o[0|(e=(Q=c+1760|0)+g|0)]){I:if(Q=C[0|(r=I+Q|0)])if((0|(Q=(t=Q<<1)+(E=C[0|e])|0))<=15)C[0|e]=Q,C[0|r]=0;else{if((0|(Q=E-t|0))<-15)break A;for(C[0|e]=Q,Q=I;;){if(!o[0|(E=(c+1760|0)+Q|0)]){C[0|E]=1;break I}if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,!E)break}}if(!(g>>>0>253)){I:if(E=C[0|(h=(Q=g+2|0)+(c+1760|0)|0)])if((0|(E=(r=E<<2)+(t=C[0|e])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|e]=E;;){if(o[0|(E=(c+1760|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break I}break}C[0|E]=1}else C[0|e]=E,C[0|h]=0;if(253!=(0|g)){I:if(E=C[0|(h=(Q=g+3|0)+(c+1760|0)|0)])if((0|(E=(r=E<<3)+(t=C[0|e])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|e]=E;;){if(o[0|(E=(c+1760|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break I}break}C[0|E]=1}else C[0|e]=E,C[0|h]=0;if(!(g>>>0>251)){I:if(E=C[0|(h=(Q=g+4|0)+(c+1760|0)|0)])if((0|(E=(r=E<<4)+(t=C[0|e])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|e]=E;;){if(o[0|(E=(c+1760|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break I}break}C[0|E]=1}else C[0|e]=E,C[0|h]=0;if(251!=(0|g)){I:if(E=C[0|(h=(Q=g+5|0)+(c+1760|0)|0)])if((0|(E=(r=E<<5)+(t=C[0|e])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|e]=E;;){if(o[0|(E=(c+1760|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break I}break}C[0|E]=1}else C[0|e]=E,C[0|h]=0;if(!(g>>>0>249)&&(g=C[0|(r=(Q=g+6|0)+(c+1760|0)|0)]))if((0|(g=(t=g<<6)+(E=C[0|e])|0))>=16){if((0|(g=E-t|0))<-15)break A;for(C[0|e]=g;;){if(o[0|(g=(c+1760|0)+Q|0)]){if(C[0|g]=0,g=Q>>>0<255,Q=Q+1|0,g)continue;break A}break}C[0|g]=1}else C[0|e]=g,C[0|r]=0}}}}}if(256==(0|I))break}for($A(Q=c+480|0,y),I=i[y+36>>2],i[c+192>>2]=i[y+32>>2],i[c+196>>2]=I,I=i[y+28>>2],i[c+184>>2]=i[y+24>>2],i[c+188>>2]=I,I=i[y+20>>2],i[c+176>>2]=i[y+16>>2],i[c+180>>2]=I,I=i[y+12>>2],i[c+168>>2]=i[y+8>>2],i[c+172>>2]=I,I=i[y+4>>2],i[c+160>>2]=i[y>>2],i[c+164>>2]=I,I=i[y+52>>2],i[c+208>>2]=i[y+48>>2],i[c+212>>2]=I,I=i[y+60>>2],i[c+216>>2]=i[y+56>>2],i[c+220>>2]=I,I=i[4+(g=y- -64|0)>>2],i[c+224>>2]=i[g>>2],i[c+228>>2]=I,I=i[y+76>>2],i[c+232>>2]=i[y+72>>2],i[c+236>>2]=I,I=i[y+44>>2],i[c+200>>2]=i[y+40>>2],i[c+204>>2]=I,I=i[y+92>>2],i[c+248>>2]=i[y+88>>2],i[c+252>>2]=I,I=i[y+100>>2],i[c+256>>2]=i[y+96>>2],i[c+260>>2]=I,I=i[y+108>>2],i[c+264>>2]=i[y+104>>2],i[c+268>>2]=I,I=i[y+116>>2],i[c+272>>2]=i[y+112>>2],i[c+276>>2]=I,I=i[y+84>>2],i[c+240>>2]=i[y+80>>2],i[c+244>>2]=I,KA(E=c+320|0,g=c+160|0),b(c,E,f=c+440|0),b(c+40|0,p=c+360|0,w=c+400|0),b(c+80|0,w,f),b(c+120|0,E,p),sA(E,c,Q),b(g,E,f),b(k=c+200|0,p,w),b(F=c+240|0,w,f),b(n=c+280|0,E,p),$A(I=c+640|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+800|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+960|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+1120|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+1280|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+1440|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(c+1600|0,g),i[B+32>>2]=0,i[B+36>>2]=0,i[B+24>>2]=0,i[B+28>>2]=0,i[B+16>>2]=0,i[B+20>>2]=0,i[B+8>>2]=0,i[B+12>>2]=0,i[B>>2]=0,i[B+4>>2]=0,i[B+44>>2]=0,i[B+48>>2]=0,i[B+40>>2]=1,i[B+52>>2]=0,i[B+56>>2]=0,i[B+60>>2]=0,i[B+64>>2]=0,i[B+68>>2]=0,i[B+72>>2]=0,i[B+84>>2]=0,i[B+88>>2]=0,i[B+76>>2]=0,i[B+80>>2]=1,i[B+92>>2]=0,i[B+96>>2]=0,i[B+100>>2]=0,i[B+104>>2]=0,i[B+108>>2]=0,i[B+112>>2]=0,i[B+116>>2]=0,X=B+80|0,O=B+40|0,I=255;;){A:{I:{if(!o[(g=c+2016|0)+I|0]&&!o[(Q=c+1760|0)+I|0]){if(!(o[(E=g)+(g=I-1|0)|0]|o[g+Q|0]))break I;I=g}if((0|I)<0)break A;for(;KA(Q=c+320|0,B),g=I,(0|(E=C[I+(c+2016|0)|0]))>0?(b(I=c+160|0,Q,f),b(k,p,w),b(F,w,f),b(n,Q,p),sA(Q,I,(c+480|0)+a((254&E)>>>1|0,160)|0)):(0|E)>=0||(b(I=c+160|0,Q=c+320|0,f),b(k,p,w),b(F,w,f),b(n,Q,p),hA(Q,I,(c+480|0)+a((0-E&254)>>>1|0,160)|0)),(0|(u=C[g+(c+1760|0)|0]))>0?(b(I=c+160|0,Q=c+320|0,f),b(k,p,w),b(F,w,f),b(n,Q,p),DA(Q,I,a((254&u)>>>1|0,120)+1728|0)):(0|u)>=0||(b(c+160|0,x=c+320|0,f),b(k,p,w),b(F,w,f),b(n,x,p),N=i[c+160>>2],G=i[c+200>>2],M=i[c+164>>2],K=i[c+204>>2],U=i[c+168>>2],H=i[c+208>>2],Y=i[c+172>>2],J=i[c+212>>2],d=i[c+176>>2],m=i[c+216>>2],l=i[c+180>>2],D=i[c+220>>2],e=i[c+184>>2],h=i[c+224>>2],r=i[c+188>>2],y=i[c+228>>2],t=i[c+192>>2],E=i[c+232>>2],Q=i[c+236>>2],I=i[c+196>>2],i[c+396>>2]=Q-I,i[c+392>>2]=E-t,i[c+388>>2]=y-r,i[c+384>>2]=h-e,i[c+380>>2]=D-l,i[c+376>>2]=m-d,i[c+372>>2]=J-Y,i[c+368>>2]=H-U,i[c+364>>2]=K-M,i[c+360>>2]=G-N,i[c+356>>2]=I+Q,i[c+352>>2]=E+t,i[c+348>>2]=r+y,i[c+344>>2]=e+h,i[c+340>>2]=D+l,i[c+336>>2]=d+m,i[c+332>>2]=Y+J,i[c+328>>2]=U+H,i[c+324>>2]=M+K,i[c+320>>2]=N+G,b(w,x,40+(I=a((0-u&254)>>>1|0,120)+1728|0)|0),b(p,p,I),b(f,I+80|0,n),W=i[c+276>>2],V=i[c+272>>2],u=i[c+268>>2],x=i[c+264>>2],e=i[c+260>>2],h=i[c+256>>2],r=i[c+252>>2],y=i[c+248>>2],t=i[c+244>>2],E=i[c+240>>2],v=i[c+360>>2],R=i[c+400>>2],L=i[c+364>>2],P=i[c+404>>2],q=i[c+368>>2],z=i[c+408>>2],N=i[c+372>>2],G=i[c+412>>2],M=i[c+376>>2],K=i[c+416>>2],U=i[c+380>>2],H=i[c+420>>2],Y=i[c+384>>2],J=i[c+424>>2],d=i[c+388>>2],m=i[c+428>>2],l=i[c+392>>2],D=i[c+432>>2],Q=i[c+396>>2],I=i[c+436>>2],i[c+396>>2]=Q+I,i[c+392>>2]=D+l,i[c+388>>2]=d+m,i[c+384>>2]=Y+J,i[c+380>>2]=U+H,i[c+376>>2]=M+K,i[c+372>>2]=N+G,i[c+368>>2]=q+z,i[c+364>>2]=L+P,i[c+360>>2]=v+R,i[c+356>>2]=I-Q,i[c+352>>2]=D-l,i[c+348>>2]=m-d,i[c+344>>2]=J-Y,i[c+340>>2]=H-U,i[c+336>>2]=K-M,i[c+332>>2]=G-N,i[c+328>>2]=z-q,i[c+324>>2]=P-L,i[c+320>>2]=R-v,N=E<<1,G=i[c+440>>2],i[c+400>>2]=N-G,M=t<<1,K=i[c+444>>2],i[c+404>>2]=M-K,U=y<<1,H=i[c+448>>2],i[c+408>>2]=U-H,Y=r<<1,J=i[c+452>>2],i[c+412>>2]=Y-J,d=h<<1,m=i[c+456>>2],i[c+416>>2]=d-m,l=e<<1,D=i[c+460>>2],i[c+420>>2]=l-D,e=x<<1,h=i[c+464>>2],i[c+424>>2]=e-h,r=u<<1,y=i[c+468>>2],i[c+428>>2]=r-y,t=V<<1,E=i[c+472>>2],i[c+432>>2]=t-E,Q=W<<1,I=i[c+476>>2],i[c+436>>2]=Q-I,i[c+440>>2]=N+G,i[c+444>>2]=M+K,i[c+448>>2]=U+H,i[c+452>>2]=Y+J,i[c+456>>2]=d+m,i[c+460>>2]=D+l,i[c+464>>2]=e+h,i[c+468>>2]=r+y,i[c+472>>2]=E+t,i[c+476>>2]=I+Q),b(B,c+320|0,f),b(O,p,w),b(X,w,f),I=g-1|0,(0|g)>0;);break A}if(I=I-2|0,g)continue}break}s=c+2272|0,tg(I=_+288|0,B),Z=-1,T=NC(I,A),r=((0|A)==(0|I)?Z:T)|MI(A,I,32)}return s=_+592|0,r}function b(A,I,g){var C,B,Q,o,E,_,c,t,r,e,y,s,h,D,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l,u,x,v,R,L,P,q,z,j,X,O,W,V,Z,T,$,AA,IA,gA,CA,BA,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,fA=0,pA=0,wA=0,nA=0,kA=0,FA=0,SA=0,NA=0,GA=0,MA=0,KA=0;QA=Ig(C=i[g+4>>2],e=C>>31,wA=(w=i[I+20>>2])<<1,m=wA>>31),oA=f,iA=(hA=Ig(fA=i[g>>2],Q=fA>>31,B=i[I+24>>2],o=B>>31))+QA|0,QA=f+oA|0,QA=iA>>>0>>0?QA+1|0:QA,rA=Ig(E=i[g+8>>2],h=E>>31,hA=i[I+16>>2],_=hA>>31),oA=f+QA|0,oA=(iA=rA+iA|0)>>>0>>0?oA+1|0:oA,QA=(rA=Ig(y=i[g+12>>2],n=y>>31,K=(k=i[I+12>>2])<<1,l=K>>31))+iA|0,iA=f+oA|0,iA=QA>>>0>>0?iA+1|0:iA,oA=(DA=Ig(D=i[g+16>>2],U=D>>31,rA=i[I+8>>2],c=rA>>31))+QA|0,QA=f+iA|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(F=i[g+20>>2],u=F>>31,b=(S=i[I+4>>2])<<1,x=b>>31),QA=f+QA|0,QA=(iA=iA+oA|0)>>>0>>0?QA+1|0:QA,Z=cA=i[g+24>>2],oA=(eA=Ig(cA,W=cA>>31,DA=i[I>>2],t=DA>>31))+iA|0,iA=f+QA|0,iA=oA>>>0>>0?iA+1|0:iA,v=i[g+28>>2],QA=(eA=Ig(sA=a(v,19),N=sA>>31,H=(G=i[I+36>>2])<<1,R=H>>31))+oA|0,oA=f+iA|0,oA=QA>>>0>>0?oA+1|0:oA,SA=i[g+32>>2],iA=(tA=Ig(EA=a(SA,19),p=EA>>31,eA=i[I+32>>2],r=eA>>31))+QA|0,QA=f+oA|0,QA=iA>>>0>>0?QA+1|0:QA,T=i[g+36>>2],g=Ig(tA=a(T,19),s=tA>>31,Y=(M=i[I+28>>2])<<1,L=Y>>31),QA=f+QA|0,aA=I=g+iA|0,g=I>>>0>>0?QA+1|0:QA,I=Ig(hA,_,C,e),QA=f,iA=Ig(fA,Q,w,P=w>>31),oA=f+QA|0,oA=(I=iA+I|0)>>>0>>0?oA+1|0:oA,QA=Ig(E,h,k,q=k>>31),iA=f+oA|0,iA=(I=QA+I|0)>>>0>>0?iA+1|0:iA,oA=Ig(rA,c,y,n),QA=f+iA|0,QA=(I=oA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(D,U,S,z=S>>31),QA=f+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(DA,t,F,u),QA=f+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(cA=a(cA,19),J=cA>>31,G,j=G>>31),oA=f+QA|0,oA=(I=iA+I|0)>>>0>>0?oA+1|0:oA,QA=Ig(eA,r,sA,N),iA=f+oA|0,iA=(I=QA+I|0)>>>0>>0?iA+1|0:iA,oA=Ig(EA,p,M,X=M>>31),QA=f+iA|0,QA=(I=oA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(tA,s,B,o),QA=f+QA|0,GA=I=iA+I|0,nA=I>>>0>>0?QA+1|0:QA,I=Ig(C,e,K,l),QA=f,iA=Ig(fA,Q,hA,_),QA=f+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(rA,c,E,h),oA=f+QA|0,oA=(I=iA+I|0)>>>0>>0?oA+1|0:oA,QA=Ig(y,n,b,x),iA=f+oA|0,iA=(I=QA+I|0)>>>0>>0?iA+1|0:iA,oA=Ig(DA,t,D,U),QA=f+iA|0,QA=(I=oA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(d=a(F,19),O=d>>31,H,R),QA=f+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(eA,r,cA,J),QA=f+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(sA,N,Y,L),oA=f+QA|0,oA=(I=iA+I|0)>>>0>>0?oA+1|0:oA,QA=Ig(EA,p,B,o),iA=f+oA|0,iA=(I=QA+I|0)>>>0>>0?iA+1|0:iA,oA=Ig(tA,s,wA,m),QA=f+iA|0,$=I=oA+I|0,AA=QA=I>>>0>>0?QA+1|0:QA,IA=I=I+33554432|0,gA=QA=I>>>0<33554432?QA+1|0:QA,oA=(67108863&QA)<<6|I>>>26,QA=(QA>>26)+nA|0,GA=I=oA+GA|0,QA=I>>>0>>0?QA+1|0:QA,CA=I=I+16777216|0,QA=g+(iA=(oA=I>>>0<16777216?QA+1|0:QA)>>25)|0,QA=(I=(oA=(33554431&oA)<<7|I>>>25)+aA|0)>>>0>>0?QA+1|0:QA,kA=g=(iA=I)+33554432|0,I=QA=g>>>0<33554432?QA+1|0:QA,i[A+24>>2]=iA-(-67108864&g),g=Ig(C,e,b,x),QA=f,iA=Ig(fA,Q,rA,c),oA=f+QA|0,oA=(g=iA+g|0)>>>0>>0?oA+1|0:oA,iA=(QA=g)+(g=Ig(DA,t,E,h))|0,QA=f+oA|0,QA=g>>>0>iA>>>0?QA+1|0:QA,oA=Ig(g=a(y,19),FA=g>>31,H,R),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,oA=(aA=Ig(eA,r,nA=a(D,19),V=nA>>31))+iA|0,iA=f+QA|0,iA=oA>>>0>>0?iA+1|0:iA,aA=Ig(Y,L,d,O),QA=f+iA|0,QA=(oA=aA+oA|0)>>>0>>0?QA+1|0:QA,iA=(aA=Ig(B,o,cA,J))+oA|0,oA=f+QA|0,oA=iA>>>0>>0?oA+1|0:oA,aA=Ig(sA,N,wA,m),QA=f+oA|0,QA=(iA=aA+iA|0)>>>0>>0?QA+1|0:QA,oA=Ig(EA,p,hA,_),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,oA=(aA=Ig(tA,s,K,l))+iA|0,iA=f+QA|0,yA=oA,MA=oA>>>0>>0?iA+1|0:iA,QA=Ig(DA,t,C,e),iA=f,oA=(aA=Ig(fA,Q,S,z))+QA|0,QA=f+iA|0,QA=oA>>>0>>0?QA+1|0:QA,aA=iA=a(E,19),iA=(_A=Ig(iA,NA=iA>>31,G,j))+oA|0,oA=f+QA|0,oA=iA>>>0<_A>>>0?oA+1|0:oA,_A=Ig(eA,r,g,FA),QA=f+oA|0,QA=(iA=_A+iA|0)>>>0<_A>>>0?QA+1|0:QA,oA=Ig(nA,V,M,X),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,oA=(_A=Ig(B,o,d,O))+iA|0,iA=f+QA|0,iA=oA>>>0<_A>>>0?iA+1|0:iA,_A=Ig(cA,J,w,P),QA=f+iA|0,QA=(oA=_A+oA|0)>>>0<_A>>>0?QA+1|0:QA,iA=(_A=Ig(hA,_,sA,N))+oA|0,oA=f+QA|0,oA=iA>>>0<_A>>>0?oA+1|0:oA,_A=Ig(EA,p,k,q),QA=f+oA|0,QA=(iA=_A+iA|0)>>>0<_A>>>0?QA+1|0:QA,oA=Ig(tA,s,rA,c),QA=f+QA|0,KA=iA=oA+iA|0,_A=iA>>>0>>0?QA+1|0:QA,QA=Ig(QA=a(C,19),QA>>31,H,R),iA=f,oA=Ig(fA,Q,DA,t),iA=f+iA|0,iA=(QA=oA+QA|0)>>>0>>0?iA+1|0:iA,oA=(aA=Ig(eA,r,aA,NA))+QA|0,QA=f+iA|0,g=(iA=Ig(g,FA,Y,L))+oA|0,oA=f+(oA>>>0>>0?QA+1|0:QA)|0,oA=g>>>0>>0?oA+1|0:oA,iA=Ig(B,o,nA,V),QA=f+oA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,iA=Ig(wA,m,d,O),QA=f+QA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,oA=Ig(hA,_,cA,J),iA=f+QA|0,iA=(g=oA+g|0)>>>0>>0?iA+1|0:iA,oA=Ig(sA,N,K,l),QA=f+iA|0,QA=(g=oA+g|0)>>>0>>0?QA+1|0:QA,iA=Ig(EA,p,rA,c),oA=f+QA|0,oA=(g=iA+g|0)>>>0>>0?oA+1|0:oA,iA=Ig(tA,s,b,x),QA=f+oA|0,aA=g=iA+g|0,FA=QA=g>>>0>>0?QA+1|0:QA,NA=g=g+33554432|0,BA=QA=g>>>0<33554432?QA+1|0:QA,iA=(oA=QA>>26)+_A|0,_A=g=(QA=(67108863&QA)<<6|g>>>26)+KA|0,QA=g>>>0>>0?iA+1|0:iA,KA=g=g+16777216|0,iA=(33554431&(QA=g>>>0<16777216?QA+1|0:QA))<<7|g>>>25,QA=(QA>>25)+MA|0,QA=(g=iA+yA|0)>>>0>>0?QA+1|0:QA,MA=iA=(oA=g)+33554432|0,g=QA=iA>>>0<33554432?QA+1|0:QA,i[A+8>>2]=oA-(-67108864&iA),QA=Ig(B,o,C,e),oA=f,iA=(yA=Ig(fA,Q,M,X))+QA|0,QA=f+oA|0,QA=iA>>>0>>0?QA+1|0:QA,oA=Ig(E,h,w,P),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,oA=Ig(hA,_,y,n),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,yA=Ig(D,U,k,q),oA=f+QA|0,oA=(iA=yA+iA|0)>>>0>>0?oA+1|0:oA,QA=(yA=Ig(rA,c,F,u))+iA|0,iA=f+oA|0,iA=QA>>>0>>0?iA+1|0:iA,oA=(yA=Ig(S,z,Z,W))+QA|0,QA=f+iA|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(DA,t,v,yA=v>>31),QA=f+QA|0,QA=(iA=iA+oA|0)>>>0>>0?QA+1|0:QA,oA=Ig(EA,p,G,j),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,pA=Ig(tA,s,eA,r),oA=f+QA|0,QA=I>>26,I=(kA=(67108863&I)<<6|kA>>>26)+(iA=pA+iA|0)|0,iA=QA+(iA>>>0>>0?oA+1|0:oA)|0,QA=(oA=I)>>>0>>0?iA+1|0:iA,kA=iA=oA+16777216|0,I=QA=iA>>>0<16777216?QA+1|0:QA,i[A+28>>2]=oA-(-33554432&iA),QA=Ig(rA,c,C,e),iA=f,pA=Ig(fA,Q,k,q),oA=f+iA|0,oA=(QA=pA+QA|0)>>>0>>0?oA+1|0:oA,pA=Ig(E,h,S,z),iA=f+oA|0,iA=(QA=pA+QA|0)>>>0>>0?iA+1|0:iA,oA=(pA=Ig(DA,t,y,n))+QA|0,QA=f+iA|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(nA,V,G,j),QA=f+QA|0,QA=(iA=iA+oA|0)>>>0>>0?QA+1|0:QA,oA=Ig(eA,r,d,O),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,iA=(cA=Ig(cA,J,M,X))+iA|0,oA=f+QA|0,QA=(sA=Ig(B,o,sA,N))+iA|0,iA=f+(iA>>>0>>0?oA+1|0:oA)|0,oA=(EA=Ig(EA,p,w,P))+QA|0,QA=f+(QA>>>0>>0?iA+1|0:iA)|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(tA,s,hA,_),QA=f+QA|0,EA=iA=iA+oA|0,QA=(QA=iA>>>0>>0?QA+1|0:QA)+(iA=g>>26)|0,EA=g=EA+(oA=(67108863&g)<<6|MA>>>26)|0,QA=g>>>0>>0?QA+1|0:QA,sA=iA=g+16777216|0,g=oA=iA>>>0<16777216?QA+1|0:QA,i[A+12>>2]=EA-(-33554432&iA),QA=Ig(C,e,Y,L),oA=f,iA=(EA=Ig(fA,Q,eA,r))+QA|0,QA=f+oA|0,QA=iA>>>0>>0?QA+1|0:QA,oA=Ig(B,o,E,h),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,EA=Ig(y,n,wA,m),oA=f+QA|0,oA=(iA=EA+iA|0)>>>0>>0?oA+1|0:oA,QA=(EA=Ig(hA,_,D,U))+iA|0,iA=f+oA|0,iA=QA>>>0>>0?iA+1|0:iA,oA=(EA=Ig(K,l,F,u))+QA|0,QA=f+iA|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(rA,c,Z,W),QA=f+QA|0,QA=(iA=iA+oA|0)>>>0>>0?QA+1|0:QA,oA=Ig(v,yA,b,x),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,iA=(wA=Ig(DA,t,EA=SA,cA=EA>>31))+iA|0,oA=f+QA|0,QA=(tA=Ig(tA,s,H,R))+iA|0,iA=f+(iA>>>0>>0?oA+1|0:oA)|0,iA=QA>>>0>>0?iA+1|0:iA,SA=QA,QA=(QA=I>>25)+iA|0,QA=(I=SA+(oA=(33554431&I)<<7|kA>>>25)|0)>>>0>>0?QA+1|0:QA,tA=iA=(oA=I)+33554432|0,I=QA=iA>>>0<33554432?QA+1|0:QA,i[A+32>>2]=oA-(-67108864&iA),iA=g>>25,g=(sA=(33554431&g)<<7|sA>>>25)+($-(QA=-67108864&IA)|0)|0,QA=iA+(AA-((QA>>>0>$>>>0)+gA|0)|0)|0,QA=g>>>0>>0?QA+1|0:QA,QA=((67108863&(QA=(g=(iA=g)+33554432|0)>>>0<33554432?QA+1|0:QA))<<6|g>>>26)+(oA=GA-(-33554432&CA)|0)|0,i[A+20>>2]=QA,i[A+16>>2]=iA-(-67108864&g),g=Ig(eA,r,C,e),QA=f,iA=Ig(fA,Q,G,j),QA=f+QA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,oA=Ig(E,h,M,X),iA=f+QA|0,iA=(g=oA+g|0)>>>0>>0?iA+1|0:iA,QA=Ig(B,o,y,n),oA=f+iA|0,oA=(g=QA+g|0)>>>0>>0?oA+1|0:oA,iA=Ig(D,U,w,P),QA=f+oA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,iA=Ig(hA,_,F,u),QA=f+QA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,iA=Ig(k,q,Z,W),QA=f+QA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,oA=Ig(rA,c,v,yA),iA=f+QA|0,iA=(g=oA+g|0)>>>0>>0?iA+1|0:iA,QA=Ig(EA,cA,S,z),oA=f+iA|0,oA=(g=QA+g|0)>>>0>>0?oA+1|0:oA,iA=Ig(DA,t,T,T>>31),QA=f+oA|0,QA=(QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA)+(iA=I>>26)|0,QA=(I=(oA=g)+(g=(67108863&I)<<6|tA>>>26)|0)>>>0>>0?QA+1|0:QA,QA=(I=(g=I)+16777216|0)>>>0<16777216?QA+1|0:QA,i[A+36>>2]=g-(-33554432&I),oA=_A-(-33554432&KA)|0,iA=aA-(g=-67108864&NA)|0,fA=FA-((g>>>0>aA>>>0)+BA|0)|0,I=(g=Ig((33554431&(g=QA))<<7|I>>>25,QA>>=25,19,0))+iA|0,iA=f+fA|0,QA=I>>>0>>0?iA+1|0:iA,QA=((67108863&(QA=(I=(g=I)+33554432|0)>>>0<33554432?QA+1|0:QA))<<6|I>>>26)+oA|0,i[A+4>>2]=QA,i[A>>2]=g-(-67108864&I)}function H(A,I){var g,C,B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w=0,n=0,k=0;s=g=s-544|0,C=o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24,B=o[A+56|0]|o[A+57|0]<<8|o[A+58|0]<<16|o[A+59|0]<<24,Q=o[A+52|0]|o[A+53|0]<<8|o[A+54|0]<<16|o[A+55|0]<<24,E=o[A+48|0]|o[A+49|0]<<8|o[A+50|0]<<16|o[A+51|0]<<24,a=o[A+32|0]|o[A+33|0]<<8|o[A+34|0]<<16|o[A+35|0]<<24,_=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,c=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,t=o[A+44|0]|o[A+45|0]<<8|o[A+46|0]<<16|o[A+47|0]<<24,w=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,r=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,e=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,y=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,h=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,D=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,f=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,p=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,A=i[I+124>>2],i[g+536>>2]=i[I+120>>2],i[g+540>>2]=A,A=i[I+116>>2],i[g+528>>2]=i[I+112>>2],i[g+532>>2]=A,A=i[I+108>>2],i[g+504>>2]=i[I+104>>2],i[g+508>>2]=A,A=i[I+100>>2],i[g+496>>2]=i[I+96>>2],i[g+500>>2]=A,A=i[I+124>>2],i[g+488>>2]=i[I+120>>2],i[g+492>>2]=A,A=i[I+116>>2],i[g+480>>2]=i[I+112>>2],i[g+484>>2]=A,AI(k=g+512|0,g+496|0,g+480|0),A=i[g+524>>2],i[I+120>>2]=i[g+520>>2],i[I+124>>2]=A,A=i[g+516>>2],i[I+112>>2]=i[g+512>>2],i[I+116>>2]=A,A=i[I+92>>2],i[g+472>>2]=i[I+88>>2],i[g+476>>2]=A,A=i[I+84>>2],i[g+464>>2]=i[I+80>>2],i[g+468>>2]=A,A=i[I+108>>2],i[g+456>>2]=i[I+104>>2],i[g+460>>2]=A,A=i[I+100>>2],i[g+448>>2]=i[I+96>>2],i[g+452>>2]=A,AI(k,g+464|0,g+448|0),A=i[g+524>>2],i[I+104>>2]=i[g+520>>2],i[I+108>>2]=A,A=i[g+516>>2],i[I+96>>2]=i[g+512>>2],i[I+100>>2]=A,A=i[I+76>>2],i[g+440>>2]=i[I+72>>2],i[g+444>>2]=A,n=i[4+(A=I- -64|0)>>2],i[g+432>>2]=i[A>>2],i[g+436>>2]=n,n=i[I+92>>2],i[g+424>>2]=i[I+88>>2],i[g+428>>2]=n,n=i[I+84>>2],i[g+416>>2]=i[I+80>>2],i[g+420>>2]=n,AI(k,g+432|0,g+416|0),n=i[g+524>>2],i[I+88>>2]=i[g+520>>2],i[I+92>>2]=n,n=i[g+516>>2],i[I+80>>2]=i[g+512>>2],i[I+84>>2]=n,n=i[I+60>>2],i[g+408>>2]=i[I+56>>2],i[g+412>>2]=n,n=i[I+52>>2],i[g+400>>2]=i[I+48>>2],i[g+404>>2]=n,n=i[I+76>>2],i[g+392>>2]=i[I+72>>2],i[g+396>>2]=n,n=i[A+4>>2],i[g+384>>2]=i[A>>2],i[g+388>>2]=n,AI(k,g+400|0,g+384|0),n=i[g+524>>2],i[I+72>>2]=i[g+520>>2],i[I+76>>2]=n,n=i[g+516>>2],i[A>>2]=i[g+512>>2],i[A+4>>2]=n,n=i[I+44>>2],i[g+376>>2]=i[I+40>>2],i[g+380>>2]=n,n=i[I+36>>2],i[g+368>>2]=i[I+32>>2],i[g+372>>2]=n,n=i[I+60>>2],i[g+360>>2]=i[I+56>>2],i[g+364>>2]=n,n=i[I+52>>2],i[g+352>>2]=i[I+48>>2],i[g+356>>2]=n,AI(k,g+368|0,g+352|0),n=i[g+524>>2],i[I+56>>2]=i[g+520>>2],i[I+60>>2]=n,n=i[g+516>>2],i[I+48>>2]=i[g+512>>2],i[I+52>>2]=n,n=i[I+28>>2],i[g+344>>2]=i[I+24>>2],i[g+348>>2]=n,n=i[I+20>>2],i[g+336>>2]=i[I+16>>2],i[g+340>>2]=n,n=i[I+44>>2],i[g+328>>2]=i[I+40>>2],i[g+332>>2]=n,n=i[I+36>>2],i[g+320>>2]=i[I+32>>2],i[g+324>>2]=n,AI(k,g+336|0,g+320|0),n=i[g+524>>2],i[I+40>>2]=i[g+520>>2],i[I+44>>2]=n,n=i[g+516>>2],i[I+32>>2]=i[g+512>>2],i[I+36>>2]=n,n=i[I+12>>2],i[g+312>>2]=i[I+8>>2],i[g+316>>2]=n,n=i[I+4>>2],i[g+304>>2]=i[I>>2],i[g+308>>2]=n,n=i[I+28>>2],i[g+296>>2]=i[I+24>>2],i[g+300>>2]=n,n=i[I+20>>2],i[g+288>>2]=i[I+16>>2],i[g+292>>2]=n,AI(k,g+304|0,g+288|0),n=i[g+524>>2],i[I+24>>2]=i[g+520>>2],i[I+28>>2]=n,n=i[g+516>>2],i[I+16>>2]=i[g+512>>2],i[I+20>>2]=n,n=i[g+540>>2],i[g+280>>2]=i[g+536>>2],i[g+284>>2]=n,n=i[g+532>>2],i[g+272>>2]=i[g+528>>2],i[g+276>>2]=n,n=i[I+12>>2],i[g+264>>2]=i[I+8>>2],i[g+268>>2]=n,n=i[I+4>>2],i[g+256>>2]=i[I>>2],i[g+260>>2]=n,AI(k,g+272|0,g+256|0),n=i[g+524>>2],i[I+8>>2]=i[g+520>>2],i[I+12>>2]=n,n=i[g+516>>2],i[I>>2]=i[g+512>>2],i[I+4>>2]=n,i[I+12>>2]=(o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)^f,i[I+8>>2]=(o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24)^D,i[I+4>>2]=(o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)^h,i[I>>2]=(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24)^p,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^y,i[I+68>>2]=(o[I+68|0]|o[I+69|0]<<8|o[I+70|0]<<16|o[I+71|0]<<24)^e,i[I+72>>2]=(o[I+72|0]|o[I+73|0]<<8|o[I+74|0]<<16|o[I+75|0]<<24)^r,i[I+76>>2]=(o[I+76|0]|o[I+77|0]<<8|o[I+78|0]<<16|o[I+79|0]<<24)^w,w=i[I+124>>2],i[g+536>>2]=i[I+120>>2],i[g+540>>2]=w,w=i[I+116>>2],i[g+528>>2]=i[I+112>>2],i[g+532>>2]=w,w=i[I+108>>2],i[g+248>>2]=i[I+104>>2],i[g+252>>2]=w,w=i[I+100>>2],i[g+240>>2]=i[I+96>>2],i[g+244>>2]=w,w=i[I+124>>2],i[g+232>>2]=i[I+120>>2],i[g+236>>2]=w,w=i[I+116>>2],i[g+224>>2]=i[I+112>>2],i[g+228>>2]=w,AI(k,g+240|0,g+224|0),w=i[g+524>>2],i[I+120>>2]=i[g+520>>2],i[I+124>>2]=w,w=i[g+516>>2],i[I+112>>2]=i[g+512>>2],i[I+116>>2]=w,w=i[I+92>>2],i[g+216>>2]=i[I+88>>2],i[g+220>>2]=w,w=i[I+84>>2],i[g+208>>2]=i[I+80>>2],i[g+212>>2]=w,w=i[I+108>>2],i[g+200>>2]=i[I+104>>2],i[g+204>>2]=w,w=i[I+100>>2],i[g+192>>2]=i[I+96>>2],i[g+196>>2]=w,AI(k,g+208|0,g+192|0),w=i[g+524>>2],i[I+104>>2]=i[g+520>>2],i[I+108>>2]=w,w=i[g+516>>2],i[I+96>>2]=i[g+512>>2],i[I+100>>2]=w,w=i[I+76>>2],i[g+184>>2]=i[I+72>>2],i[g+188>>2]=w,w=i[A+4>>2],i[g+176>>2]=i[A>>2],i[g+180>>2]=w,w=i[I+92>>2],i[g+168>>2]=i[I+88>>2],i[g+172>>2]=w,w=i[I+84>>2],i[g+160>>2]=i[I+80>>2],i[g+164>>2]=w,AI(k,g+176|0,g+160|0),w=i[g+524>>2],i[I+88>>2]=i[g+520>>2],i[I+92>>2]=w,w=i[g+516>>2],i[I+80>>2]=i[g+512>>2],i[I+84>>2]=w,w=i[I+60>>2],i[g+152>>2]=i[I+56>>2],i[g+156>>2]=w,w=i[I+52>>2],i[g+144>>2]=i[I+48>>2],i[g+148>>2]=w,w=i[I+76>>2],i[g+136>>2]=i[I+72>>2],i[g+140>>2]=w,w=i[A+4>>2],i[g+128>>2]=i[A>>2],i[g+132>>2]=w,AI(k,g+144|0,g+128|0),w=i[g+524>>2],i[I+72>>2]=i[g+520>>2],i[I+76>>2]=w,w=i[g+516>>2],i[A>>2]=i[g+512>>2],i[A+4>>2]=w,w=i[I+44>>2],i[g+120>>2]=i[I+40>>2],i[g+124>>2]=w,w=i[I+36>>2],i[g+112>>2]=i[I+32>>2],i[g+116>>2]=w,w=i[I+60>>2],i[g+104>>2]=i[I+56>>2],i[g+108>>2]=w,w=i[I+52>>2],i[g+96>>2]=i[I+48>>2],i[g+100>>2]=w,AI(k,g+112|0,g+96|0),w=i[g+524>>2],i[I+56>>2]=i[g+520>>2],i[I+60>>2]=w,w=i[g+516>>2],i[I+48>>2]=i[g+512>>2],i[I+52>>2]=w,w=i[I+28>>2],i[g+88>>2]=i[I+24>>2],i[g+92>>2]=w,w=i[I+20>>2],i[g+80>>2]=i[I+16>>2],i[g+84>>2]=w,w=i[I+44>>2],i[g+72>>2]=i[I+40>>2],i[g+76>>2]=w,w=i[I+36>>2],i[g+64>>2]=i[I+32>>2],i[g+68>>2]=w,AI(k,g+80|0,g- -64|0),w=i[g+524>>2],i[I+40>>2]=i[g+520>>2],i[I+44>>2]=w,w=i[g+516>>2],i[I+32>>2]=i[g+512>>2],i[I+36>>2]=w,w=i[I+12>>2],i[g+56>>2]=i[I+8>>2],i[g+60>>2]=w,w=i[I+4>>2],i[g+48>>2]=i[I>>2],i[g+52>>2]=w,w=i[I+28>>2],i[g+40>>2]=i[I+24>>2],i[g+44>>2]=w,w=i[I+20>>2],i[g+32>>2]=i[I+16>>2],i[g+36>>2]=w,AI(k,g+48|0,g+32|0),w=i[g+524>>2],i[I+24>>2]=i[g+520>>2],i[I+28>>2]=w,w=i[g+516>>2],i[I+16>>2]=i[g+512>>2],i[I+20>>2]=w,w=i[g+540>>2],i[g+24>>2]=i[g+536>>2],i[g+28>>2]=w,w=i[g+532>>2],i[g+16>>2]=i[g+528>>2],i[g+20>>2]=w,w=i[I+12>>2],i[g+8>>2]=i[I+8>>2],i[g+12>>2]=w,w=i[I+4>>2],i[g>>2]=i[I>>2],i[g+4>>2]=w,AI(k,g+16|0,g),k=i[g+524>>2],i[I+8>>2]=i[g+520>>2],i[I+12>>2]=k,k=i[g+516>>2],i[I>>2]=i[g+512>>2],i[I+4>>2]=k,i[I+12>>2]=(o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)^t,i[I+8>>2]=(o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24)^c,i[I+4>>2]=(o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)^_,i[I>>2]=(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24)^a,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^E,i[I+68>>2]=(o[I+68|0]|o[I+69|0]<<8|o[I+70|0]<<16|o[I+71|0]<<24)^Q,i[I+72>>2]=(o[I+72|0]|o[I+73|0]<<8|o[I+74|0]<<16|o[I+75|0]<<24)^B,i[I+76>>2]=(o[I+76|0]|o[I+77|0]<<8|o[I+78|0]<<16|o[I+79|0]<<24)^C,s=g+544|0}function Y(A,I,g,B,Q){var E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0;for(s=E=s-288|0,D=(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24)^B>>>29,f=(o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24)^B<<3,p=(o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24)^g>>>29,B=(o[0|(c=Q+32|0)]|o[c+1|0]<<8|o[c+2|0]<<16|o[c+3|0]<<24)^g<<3,y=Q+16|0,r=Q+48|0,_=Q- -64|0,e=Q+80|0,a=Q+96|0,t=Q+112|0;g=i[t+12>>2],i[E+280>>2]=i[t+8>>2],i[E+284>>2]=g,g=i[t+4>>2],i[E+272>>2]=i[t>>2],i[E+276>>2]=g,g=i[a+12>>2],i[E+248>>2]=i[a+8>>2],i[E+252>>2]=g,g=i[a+4>>2],i[E+240>>2]=i[a>>2],i[E+244>>2]=g,g=i[t+12>>2],i[E+232>>2]=i[t+8>>2],i[E+236>>2]=g,g=i[t+4>>2],i[E+224>>2]=i[t>>2],i[E+228>>2]=g,AI(h=E+256|0,E+240|0,E+224|0),g=i[E+268>>2],i[t+8>>2]=i[E+264>>2],i[t+12>>2]=g,g=i[E+260>>2],i[t>>2]=i[E+256>>2],i[t+4>>2]=g,g=i[e+12>>2],i[E+216>>2]=i[e+8>>2],i[E+220>>2]=g,g=i[e+4>>2],i[E+208>>2]=i[e>>2],i[E+212>>2]=g,g=i[a+12>>2],i[E+200>>2]=i[a+8>>2],i[E+204>>2]=g,g=i[a+4>>2],i[E+192>>2]=i[a>>2],i[E+196>>2]=g,AI(h,E+208|0,E+192|0),g=i[E+268>>2],i[a+8>>2]=i[E+264>>2],i[a+12>>2]=g,g=i[E+260>>2],i[a>>2]=i[E+256>>2],i[a+4>>2]=g,g=i[_+12>>2],i[E+184>>2]=i[_+8>>2],i[E+188>>2]=g,g=i[_+4>>2],i[E+176>>2]=i[_>>2],i[E+180>>2]=g,g=i[e+12>>2],i[E+168>>2]=i[e+8>>2],i[E+172>>2]=g,g=i[e+4>>2],i[E+160>>2]=i[e>>2],i[E+164>>2]=g,AI(h,E+176|0,E+160|0),g=i[E+268>>2],i[e+8>>2]=i[E+264>>2],i[e+12>>2]=g,g=i[E+260>>2],i[e>>2]=i[E+256>>2],i[e+4>>2]=g,g=i[r+12>>2],i[E+152>>2]=i[r+8>>2],i[E+156>>2]=g,g=i[r+4>>2],i[E+144>>2]=i[r>>2],i[E+148>>2]=g,g=i[_+12>>2],i[E+136>>2]=i[_+8>>2],i[E+140>>2]=g,g=i[_+4>>2],i[E+128>>2]=i[_>>2],i[E+132>>2]=g,AI(h,E+144|0,E+128|0),g=i[E+268>>2],i[_+8>>2]=i[E+264>>2],i[_+12>>2]=g,g=i[E+260>>2],i[_>>2]=i[E+256>>2],i[_+4>>2]=g,g=i[c+12>>2],i[E+120>>2]=i[c+8>>2],i[E+124>>2]=g,g=i[c+4>>2],i[E+112>>2]=i[c>>2],i[E+116>>2]=g,g=i[r+12>>2],i[E+104>>2]=i[r+8>>2],i[E+108>>2]=g,g=i[r+4>>2],i[E+96>>2]=i[r>>2],i[E+100>>2]=g,AI(h,E+112|0,E+96|0),g=i[E+268>>2],i[r+8>>2]=i[E+264>>2],i[r+12>>2]=g,g=i[E+260>>2],i[r>>2]=i[E+256>>2],i[r+4>>2]=g,g=i[y+12>>2],i[E+88>>2]=i[y+8>>2],i[E+92>>2]=g,g=i[y+4>>2],i[E+80>>2]=i[y>>2],i[E+84>>2]=g,g=i[c+12>>2],i[E+72>>2]=i[c+8>>2],i[E+76>>2]=g,g=i[c+4>>2],i[E+64>>2]=i[c>>2],i[E+68>>2]=g,AI(h,E+80|0,E- -64|0),g=i[E+268>>2],i[c+8>>2]=i[E+264>>2],i[c+12>>2]=g,g=i[E+260>>2],i[c>>2]=i[E+256>>2],i[c+4>>2]=g,g=i[Q+12>>2],i[E+56>>2]=i[Q+8>>2],i[E+60>>2]=g,g=i[Q+4>>2],i[E+48>>2]=i[Q>>2],i[E+52>>2]=g,g=i[y+12>>2],i[E+40>>2]=i[y+8>>2],i[E+44>>2]=g,g=i[y+4>>2],i[E+32>>2]=i[y>>2],i[E+36>>2]=g,AI(h,E+48|0,E+32|0),g=i[E+268>>2],i[y+8>>2]=i[E+264>>2],i[y+12>>2]=g,g=i[E+260>>2],i[y>>2]=i[E+256>>2],i[y+4>>2]=g,g=i[E+284>>2],i[E+24>>2]=i[E+280>>2],i[E+28>>2]=g,g=i[E+276>>2],i[E+16>>2]=i[E+272>>2],i[E+20>>2]=g,g=i[Q+12>>2],i[E+8>>2]=i[Q+8>>2],i[E+12>>2]=g,g=i[Q+4>>2],i[E>>2]=i[Q>>2],i[E+4>>2]=g,AI(h,E+16|0,E),g=i[E+268>>2],i[Q+8>>2]=i[E+264>>2],i[Q+12>>2]=g,g=i[E+260>>2],i[Q>>2]=i[E+256>>2],i[Q+4>>2]=g,n=D^(o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24),i[Q+12>>2]=n,k=f^(o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24),i[Q+8>>2]=k,F=p^(o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24),i[Q+4>>2]=F,S=B^(o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),i[Q>>2]=S,N=B^(o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24),i[_>>2]=N,G=p^(o[Q+68|0]|o[Q+69|0]<<8|o[Q+70|0]<<16|o[Q+71|0]<<24),i[Q+68>>2]=G,M=f^(o[Q+72|0]|o[Q+73|0]<<8|o[Q+74|0]<<16|o[Q+75|0]<<24),i[Q+72>>2]=M,K=D^(o[Q+76|0]|o[Q+77|0]<<8|o[Q+78|0]<<16|o[Q+79|0]<<24),i[Q+76>>2]=K,7!=(0|(w=w+1|0)););A:{I:{g:{if(g=I-16|0){if(16==(0|g))break g;break I}_=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,c=o[Q+48|0]|o[Q+49|0]<<8|o[Q+50|0]<<16|o[Q+51|0]<<24,y=o[Q+32|0]|o[Q+33|0]<<8|o[Q+34|0]<<16|o[Q+35|0]<<24,r=o[Q+96|0]|o[Q+97|0]<<8|o[Q+98|0]<<16|o[Q+99|0]<<24,e=o[Q+80|0]|o[Q+81|0]<<8|o[Q+82|0]<<16|o[Q+83|0]<<24,a=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,t=o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24,h=o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24,D=o[Q+100|0]|o[Q+101|0]<<8|o[Q+102|0]<<16|o[Q+103|0]<<24,f=o[Q+84|0]|o[Q+85|0]<<8|o[Q+86|0]<<16|o[Q+87|0]<<24,p=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,w=o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24,B=o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24,g=o[Q+104|0]|o[Q+105|0]<<8|o[Q+106|0]<<16|o[Q+107|0]<<24,I=o[Q+88|0]|o[Q+89|0]<<8|o[Q+90|0]<<16|o[Q+91|0]<<24,Q=n^(o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24)^(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24)^(o[Q+92|0]|o[Q+93|0]<<8|o[Q+94|0]<<16|o[Q+95|0]<<24)^(o[Q+108|0]|o[Q+109|0]<<8|o[Q+110|0]<<16|o[Q+111|0]<<24)^K,C[A+12|0]=Q,C[A+13|0]=Q>>>8,C[A+14|0]=Q>>>16,C[A+15|0]=Q>>>24,I=p^w^B^I^g^M^k,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=a^t^h^D^f^G^F,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=_^c^y^r^e^N^S,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24;break A}t=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,h=o[Q+48|0]|o[Q+49|0]<<8|o[Q+50|0]<<16|o[Q+51|0]<<24,D=o[Q+32|0]|o[Q+33|0]<<8|o[Q+34|0]<<16|o[Q+35|0]<<24,f=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,p=o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24,w=o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24,B=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,g=o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24,I=o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24,a=n^(o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24)^(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24),C[A+12|0]=a,C[A+13|0]=a>>>8,C[A+14|0]=a>>>16,C[A+15|0]=a>>>24,I=B^I^g^k,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=f^p^w^F,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=t^h^D^S,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,r=o[Q+80|0]|o[Q+81|0]<<8|o[Q+82|0]<<16|o[Q+83|0]<<24,e=o[0|(I=Q- -64|0)]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,a=o[Q+112|0]|o[Q+113|0]<<8|o[Q+114|0]<<16|o[Q+115|0]<<24,t=o[Q+96|0]|o[Q+97|0]<<8|o[Q+98|0]<<16|o[Q+99|0]<<24,h=o[Q+84|0]|o[Q+85|0]<<8|o[Q+86|0]<<16|o[Q+87|0]<<24,D=o[Q+68|0]|o[Q+69|0]<<8|o[Q+70|0]<<16|o[Q+71|0]<<24,f=o[Q+116|0]|o[Q+117|0]<<8|o[Q+118|0]<<16|o[Q+119|0]<<24,p=o[Q+100|0]|o[Q+101|0]<<8|o[Q+102|0]<<16|o[Q+103|0]<<24,w=o[Q+88|0]|o[Q+89|0]<<8|o[Q+90|0]<<16|o[Q+91|0]<<24,B=o[Q+72|0]|o[Q+73|0]<<8|o[Q+74|0]<<16|o[Q+75|0]<<24,g=o[Q+120|0]|o[Q+121|0]<<8|o[Q+122|0]<<16|o[Q+123|0]<<24,I=o[Q+104|0]|o[Q+105|0]<<8|o[Q+106|0]<<16|o[Q+107|0]<<24,Q=(o[Q+92|0]|o[Q+93|0]<<8|o[Q+94|0]<<16|o[Q+95|0]<<24)^(o[Q+76|0]|o[Q+77|0]<<8|o[Q+78|0]<<16|o[Q+79|0]<<24)^(o[Q+124|0]|o[Q+125|0]<<8|o[Q+126|0]<<16|o[Q+127|0]<<24)^(o[Q+108|0]|o[Q+109|0]<<8|o[Q+110|0]<<16|o[Q+111|0]<<24),C[A+28|0]=Q,C[A+29|0]=Q>>>8,C[A+30|0]=Q>>>16,C[A+31|0]=Q>>>24,I=w^B^I^g,C[A+24|0]=I,C[A+25|0]=I>>>8,C[A+26|0]=I>>>16,C[A+27|0]=I>>>24,I=h^D^f^p,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=r^e^a^t,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24;break A}bg(A,0,I)}s=E+288|0}function J(A,I,g,C){var B=0,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0;for(B=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,i[g>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[g+4>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,i[g+8>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[g+12>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[g+16>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[g+20>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[g+24>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[g+28>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+32|0]|o[I+33|0]<<8|o[I+34|0]<<16|o[I+35|0]<<24,i[g+32>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+36|0]|o[I+37|0]<<8|o[I+38|0]<<16|o[I+39|0]<<24,i[g+36>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+40|0]|o[I+41|0]<<8|o[I+42|0]<<16|o[I+43|0]<<24,i[g+40>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+44|0]|o[I+45|0]<<8|o[I+46|0]<<16|o[I+47|0]<<24,i[g+44>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+48|0]|o[I+49|0]<<8|o[I+50|0]<<16|o[I+51|0]<<24,i[g+48>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+52|0]|o[I+53|0]<<8|o[I+54|0]<<16|o[I+55|0]<<24,i[g+52>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+56|0]|o[I+57|0]<<8|o[I+58|0]<<16|o[I+59|0]<<24,i[g+56>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,I=o[I+60|0]|o[I+61|0]<<8|o[I+62|0]<<16|o[I+63|0]<<24,i[g+60>>2]=I<<24|(65280&I)<<8|I>>>8&65280|I>>>24,I=i[A+28>>2],i[C+24>>2]=i[A+24>>2],i[C+28>>2]=I,I=i[A+20>>2],i[C+16>>2]=i[A+16>>2],i[C+20>>2]=I,I=i[A+12>>2],i[C+8>>2]=i[A+8>>2],i[C+12>>2]=I,I=i[A+4>>2],i[C>>2]=i[A>>2],i[C+4>>2]=I;_=i[C+28>>2],B=(I=n<<2)+g|0,E=i[C+16>>2],c=i[B>>2]+(Lg(E,26)^Lg(E,21)^Lg(E,7))|0,r=(_=((Q=i[I+35264>>2]+c|0)+(E&((c=i[C+24>>2])^(e=i[C+20>>2]))^c)|0)+_|0)+i[C+12>>2]|0,i[C+12>>2]=r,_=(s=_+(Lg(t=i[C>>2],30)^Lg(t,19)^Lg(t,10))|0)+(t&((Q=i[C+8>>2])|(a=i[C+4>>2]))|Q&a)|0,i[C+28>>2]=_,Q=(s=Q)+(c=(i[(D=(Q=4|I)+g|0)>>2]+((c+(e^r&(E^e))|0)+(Lg(r,26)^Lg(r,21)^Lg(r,7))|0)|0)+i[Q+35264>>2]|0)|0,i[C+8>>2]=Q,c=(c+(_&(a|t)|a&t)|0)+(Lg(_,30)^Lg(_,19)^Lg(_,10))|0,i[C+24>>2]=c,e=(s=a)+(a=(((e+i[(w=(a=8|I)+g|0)>>2]|0)+i[a+35264>>2]|0)+(E^Q&(E^r))|0)+(Lg(Q,26)^Lg(Q,21)^Lg(Q,7))|0)|0,i[C+4>>2]=e,a=a+((c&(_|t)|_&t)+(Lg(c,30)^Lg(c,19)^Lg(c,10))|0)|0,i[C+20>>2]=a,E=(s=t)+(t=(((E+i[(k=(t=12|I)+g|0)>>2]|0)+i[t+35264>>2]|0)+(r^e&(Q^r))|0)+(Lg(e,26)^Lg(e,21)^Lg(e,7))|0)|0,i[C>>2]=E,t=t+((a&(_|c)|_&c)+(Lg(a,30)^Lg(a,19)^Lg(a,10))|0)|0,i[C+16>>2]=t,r=(y=((((s=r)+i[(F=(r=16|I)+g|0)>>2]|0)+i[r+35264>>2]|0)+(Q^E&(Q^e))|0)+(Lg(E,26)^Lg(E,21)^Lg(E,7))|0)+((t&(a|c)|a&c)+(Lg(t,30)^Lg(t,19)^Lg(t,10))|0)|0,i[C+12>>2]=r,y=_+y|0,i[C+28>>2]=y,_=(Q=(((Q+i[(S=(_=20|I)+g|0)>>2]|0)+i[_+35264>>2]|0)+(e^y&(E^e))|0)+(Lg(y,26)^Lg(y,21)^Lg(y,7))|0)+((r&(a|t)|a&t)+(Lg(r,30)^Lg(r,19)^Lg(r,10))|0)|0,i[C+8>>2]=_,Q=Q+c|0,i[C+24>>2]=Q,c=(e=(((e+i[(N=(c=24|I)+g|0)>>2]|0)+i[c+35264>>2]|0)+(E^Q&(E^y))|0)+(Lg(Q,26)^Lg(Q,21)^Lg(Q,7))|0)+((_&(t|r)|t&r)+(Lg(_,30)^Lg(_,19)^Lg(_,10))|0)|0,i[C+4>>2]=c,e=a+e|0,i[C+20>>2]=e,a=(E=(((E+i[(G=(a=28|I)+g|0)>>2]|0)+i[a+35264>>2]|0)+(y^e&(Q^y))|0)+(Lg(e,26)^Lg(e,21)^Lg(e,7))|0)+((c&(_|r)|_&r)+(Lg(c,30)^Lg(c,19)^Lg(c,10))|0)|0,i[C>>2]=a,E=E+t|0,i[C+16>>2]=E,t=(y=(((y+i[(M=(t=32|I)+g|0)>>2]|0)+i[t+35264>>2]|0)+(Q^E&(Q^e))|0)+(Lg(E,26)^Lg(E,21)^Lg(E,7))|0)+((a&(_|c)|_&c)+(Lg(a,30)^Lg(a,19)^Lg(a,10))|0)|0,i[C+28>>2]=t,y=r+y|0,i[C+12>>2]=y,r=(Q=(((Q+i[(K=(r=36|I)+g|0)>>2]|0)+i[r+35264>>2]|0)+(e^y&(E^e))|0)+(Lg(y,26)^Lg(y,21)^Lg(y,7))|0)+((t&(a|c)|a&c)+(Lg(t,30)^Lg(t,19)^Lg(t,10))|0)|0,i[C+24>>2]=r,Q=Q+_|0,i[C+8>>2]=Q,_=(e=(((e+i[(U=(_=40|I)+g|0)>>2]|0)+i[_+35264>>2]|0)+(E^Q&(E^y))|0)+(Lg(Q,26)^Lg(Q,21)^Lg(Q,7))|0)+((r&(a|t)|a&t)+(Lg(r,30)^Lg(r,19)^Lg(r,10))|0)|0,i[C+20>>2]=_,e=c+e|0,i[C+4>>2]=e,s=(c=44|I)+g|0,c=(E=((E+(i[c+35264>>2]+i[s>>2]|0)|0)+(y^e&(Q^y))|0)+(Lg(e,26)^Lg(e,21)^Lg(e,7))|0)+((_&(t|r)|t&r)+(Lg(_,30)^Lg(_,19)^Lg(_,10))|0)|0,i[C+16>>2]=c,a=a+E|0,i[C>>2]=a,p=(E=48|I)+g|0,E=(y=((y+(i[E+35264>>2]+i[p>>2]|0)|0)+(Q^a&(Q^e))|0)+(Lg(a,26)^Lg(a,21)^Lg(a,7))|0)+((c&(_|r)|_&r)+(Lg(c,30)^Lg(c,19)^Lg(c,10))|0)|0,i[C+12>>2]=E,t=t+y|0,i[C+28>>2]=t,f=(y=52|I)+g|0,Q=(y=(((i[y+35264>>2]+i[f>>2]|0)+Q|0)+(e^t&(a^e))|0)+(Lg(t,26)^Lg(t,21)^Lg(t,7))|0)+((E&(_|c)|_&c)+(Lg(E,30)^Lg(E,19)^Lg(E,10))|0)|0,i[C+8>>2]=Q,r=r+y|0,i[C+24>>2]=r,y=(h=56|I)+g|0,e=(h=(((i[h+35264>>2]+i[y>>2]|0)+e|0)+(a^r&(a^t))|0)+(Lg(r,26)^Lg(r,21)^Lg(r,7))|0)+((Q&(c|E)|c&E)+(Lg(Q,30)^Lg(Q,19)^Lg(Q,10))|0)|0,i[C+4>>2]=e,_=_+h|0,i[C+20>>2]=_,h=(I|=60)+g|0,_=(I=((a+(i[I+35264>>2]+i[h>>2]|0)|0)+(t^_&(t^r))|0)+(Lg(_,26)^Lg(_,21)^Lg(_,7))|0)+((e&(Q|E)|Q&E)+(Lg(e,30)^Lg(e,19)^Lg(e,10))|0)|0,i[C>>2]=_,i[C+16>>2]=I+c,48!=(0|n);)a=i[K>>2],n=n+16|0,I=i[y>>2],_=(Q=i[B>>2]+(a+(Lg(I,15)^Lg(I,13)^I>>>10)|0)|0)+(Lg(c=i[D>>2],25)^Lg(c,14)^c>>>3)|0,i[(n<<2)+g>>2]=_,r=(E=(Q=(t=i[U>>2])+c|0)+(Lg(c=i[h>>2],15)^Lg(c,13)^c>>>10)|0)+(Lg(Q=i[w>>2],25)^Lg(Q,14)^Q>>>3)|0,i[B+68>>2]=r,e=(s=((E=Q)+(Q=i[s>>2])|0)+(Lg(_,15)^Lg(_,13)^_>>>10)|0)+(Lg(E=i[k>>2],25)^Lg(E,14)^E>>>3)|0,i[B+72>>2]=e,y=(h=((s=E)+(E=i[p>>2])|0)+(Lg(r,15)^Lg(r,13)^r>>>10)|0)+(Lg(s=i[F>>2],25)^Lg(s,14)^s>>>3)|0,i[B+76>>2]=y,p=(h=((h=s)+(s=i[f>>2])|0)+(Lg(e,15)^Lg(e,13)^e>>>10)|0)+(Lg(f=i[S>>2],25)^Lg(f,14)^f>>>3)|0,i[B+80>>2]=p,f=(D=(I+f|0)+(Lg(y,15)^Lg(y,13)^y>>>10)|0)+(Lg(h=i[N>>2],25)^Lg(h,14)^h>>>3)|0,i[B+84>>2]=f,h=((c+h|0)+(Lg(w=i[G>>2],25)^Lg(w,14)^w>>>3)|0)+(Lg(p,15)^Lg(p,13)^p>>>10)|0,i[B+88>>2]=h,r=((D=i[M>>2])+(r+(Lg(a,25)^Lg(a,14)^a>>>3)|0)|0)+(Lg(h,15)^Lg(h,13)^h>>>10)|0,i[B+96>>2]=r,D=((_+w|0)+(Lg(D,25)^Lg(D,14)^D>>>3)|0)+(Lg(f,15)^Lg(f,13)^f>>>10)|0,i[B+92>>2]=D,y=(y+(t+(Lg(Q,25)^Lg(Q,14)^Q>>>3)|0)|0)+(Lg(r,15)^Lg(r,13)^r>>>10)|0,i[B+104>>2]=y,a=(e+(a+(Lg(t,25)^Lg(t,14)^t>>>3)|0)|0)+(Lg(D,15)^Lg(D,13)^D>>>10)|0,i[B+100>>2]=a,t=(f+(E+(Lg(s,25)^Lg(s,14)^s>>>3)|0)|0)+(Lg(y,15)^Lg(y,13)^y>>>10)|0,i[B+112>>2]=t,a=(p+(Q+(Lg(E,25)^Lg(E,14)^E>>>3)|0)|0)+(Lg(a,15)^Lg(a,13)^a>>>10)|0,i[B+108>>2]=a,b=B,H=(D+(I+(Lg(c,25)^Lg(c,14)^c>>>3)|0)|0)+(Lg(t,15)^Lg(t,13)^t>>>10)|0,i[b+120>>2]=H,I=(h+(s+(Lg(I,25)^Lg(I,14)^I>>>3)|0)|0)+(Lg(a,15)^Lg(a,13)^a>>>10)|0,i[B+116>>2]=I,b=B,H=(r+(c+(Lg(_,25)^Lg(_,14)^_>>>3)|0)|0)+(Lg(I,15)^Lg(I,13)^I>>>10)|0,i[b+124>>2]=H;i[A>>2]=_+i[A>>2],i[A+4>>2]=i[A+4>>2]+i[C+4>>2],i[A+8>>2]=i[A+8>>2]+i[C+8>>2],i[A+12>>2]=i[A+12>>2]+i[C+12>>2],i[A+16>>2]=i[A+16>>2]+i[C+16>>2],i[A+20>>2]=i[A+20>>2]+i[C+20>>2],i[A+24>>2]=i[A+24>>2]+i[C+24>>2],i[A+28>>2]=i[A+28>>2]+i[C+28>>2]}function d(A,I,g){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S,N,G,M,K,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0;s=B=s-288|0,t=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,r=o[g+48|0]|o[g+49|0]<<8|o[g+50|0]<<16|o[g+51|0]<<24,e=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,y=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,h=o[g+52|0]|o[g+53|0]<<8|o[g+54|0]<<16|o[g+55|0]<<24,D=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,f=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,p=o[g+56|0]|o[g+57|0]<<8|o[g+58|0]<<16|o[g+59|0]<<24,J=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,w=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,n=o[g+60|0]|o[g+61|0]<<8|o[g+62|0]<<16|o[g+63|0]<<24,b=o[g+32|0]|o[g+33|0]<<8|o[g+34|0]<<16|o[g+35|0]<<24,d=o[g+80|0]|o[g+81|0]<<8|o[g+82|0]<<16|o[g+83|0]<<24,k=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,F=o[g+112|0]|o[g+113|0]<<8|o[g+114|0]<<16|o[g+115|0]<<24,U=o[g+96|0]|o[g+97|0]<<8|o[g+98|0]<<16|o[g+99|0]<<24,H=o[g+36|0]|o[g+37|0]<<8|o[g+38|0]<<16|o[g+39|0]<<24,m=o[g+84|0]|o[g+85|0]<<8|o[g+86|0]<<16|o[g+87|0]<<24,S=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,N=o[g+116|0]|o[g+117|0]<<8|o[g+118|0]<<16|o[g+119|0]<<24,E=o[g+100|0]|o[g+101|0]<<8|o[g+102|0]<<16|o[g+103|0]<<24,Y=o[g+40|0]|o[g+41|0]<<8|o[g+42|0]<<16|o[g+43|0]<<24,l=o[g+88|0]|o[g+89|0]<<8|o[g+90|0]<<16|o[g+91|0]<<24,G=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,M=o[g+120|0]|o[g+121|0]<<8|o[g+122|0]<<16|o[g+123|0]<<24,a=o[g+104|0]|o[g+105|0]<<8|o[g+106|0]<<16|o[g+107|0]<<24,K=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,Q=(_=o[g+44|0]|o[g+45|0]<<8|o[g+46|0]<<16|o[g+47|0]<<24)^(c=o[g+108|0]|o[g+109|0]<<8|o[g+110|0]<<16|o[g+111|0]<<24)&(o[g+124|0]|o[g+125|0]<<8|o[g+126|0]<<16|o[g+127|0]<<24)^(o[g+92|0]|o[g+93|0]<<8|o[g+94|0]<<16|o[g+95|0]<<24)^(o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24),C[A+28|0]=Q,C[A+29|0]=Q>>>8,C[A+30|0]=Q>>>16,C[A+31|0]=Q>>>24,l=Y^a&M^l^G,C[A+24|0]=l,C[A+25|0]=l>>>8,C[A+26|0]=l>>>16,C[A+27|0]=l>>>24,m=H^E&N^m^S,C[A+20|0]=m,C[A+21|0]=m>>>8,C[A+22|0]=m>>>16,C[A+23|0]=m>>>24,d=b^U&F^d^k,C[A+16|0]=d,C[A+17|0]=d>>>8,C[A+18|0]=d>>>16,C[A+19|0]=d>>>24,J=n&_^J^w^c,C[A+12|0]=J,C[A+13|0]=J>>>8,C[A+14|0]=J>>>16,C[A+15|0]=J>>>24,Y=Y&p^D^f^a,C[A+8|0]=Y,C[A+9|0]=Y>>>8,C[A+10|0]=Y>>>16,C[A+11|0]=Y>>>24,H=H&h^e^y^E,C[A+4|0]=H,C[A+5|0]=H>>>8,C[A+6|0]=H>>>16,C[A+7|0]=H>>>24,b=U^b&r^t^K,C[0|A]=b,C[A+1|0]=b>>>8,C[A+2|0]=b>>>16,C[A+3|0]=b>>>24,A=i[g+124>>2],i[B+280>>2]=i[g+120>>2],i[B+284>>2]=A,A=i[g+116>>2],i[B+272>>2]=i[g+112>>2],i[B+276>>2]=A,A=i[g+108>>2],i[B+248>>2]=i[g+104>>2],i[B+252>>2]=A,A=i[g+100>>2],i[B+240>>2]=i[g+96>>2],i[B+244>>2]=A,A=i[g+124>>2],i[B+232>>2]=i[g+120>>2],i[B+236>>2]=A,A=i[g+116>>2],i[B+224>>2]=i[g+112>>2],i[B+228>>2]=A,AI(I=B+256|0,B+240|0,B+224|0),A=i[B+268>>2],i[g+120>>2]=i[B+264>>2],i[g+124>>2]=A,A=i[B+260>>2],i[g+112>>2]=i[B+256>>2],i[g+116>>2]=A,A=i[g+92>>2],i[B+216>>2]=i[g+88>>2],i[B+220>>2]=A,A=i[g+84>>2],i[B+208>>2]=i[g+80>>2],i[B+212>>2]=A,A=i[g+108>>2],i[B+200>>2]=i[g+104>>2],i[B+204>>2]=A,A=i[g+100>>2],i[B+192>>2]=i[g+96>>2],i[B+196>>2]=A,AI(I,B+208|0,B+192|0),A=i[B+268>>2],i[g+104>>2]=i[B+264>>2],i[g+108>>2]=A,A=i[B+260>>2],i[g+96>>2]=i[B+256>>2],i[g+100>>2]=A,A=i[g+76>>2],i[B+184>>2]=i[g+72>>2],i[B+188>>2]=A,U=i[4+(A=g- -64|0)>>2],i[B+176>>2]=i[A>>2],i[B+180>>2]=U,U=i[g+92>>2],i[B+168>>2]=i[g+88>>2],i[B+172>>2]=U,U=i[g+84>>2],i[B+160>>2]=i[g+80>>2],i[B+164>>2]=U,AI(I,B+176|0,B+160|0),U=i[B+268>>2],i[g+88>>2]=i[B+264>>2],i[g+92>>2]=U,U=i[B+260>>2],i[g+80>>2]=i[B+256>>2],i[g+84>>2]=U,U=i[g+60>>2],i[B+152>>2]=i[g+56>>2],i[B+156>>2]=U,U=i[g+52>>2],i[B+144>>2]=i[g+48>>2],i[B+148>>2]=U,U=i[g+76>>2],i[B+136>>2]=i[g+72>>2],i[B+140>>2]=U,U=i[A+4>>2],i[B+128>>2]=i[A>>2],i[B+132>>2]=U,AI(I,B+144|0,B+128|0),U=i[B+268>>2],i[g+72>>2]=i[B+264>>2],i[g+76>>2]=U,U=i[B+260>>2],i[A>>2]=i[B+256>>2],i[A+4>>2]=U,U=i[g+44>>2],i[B+120>>2]=i[g+40>>2],i[B+124>>2]=U,U=i[g+36>>2],i[B+112>>2]=i[g+32>>2],i[B+116>>2]=U,U=i[g+60>>2],i[B+104>>2]=i[g+56>>2],i[B+108>>2]=U,U=i[g+52>>2],i[B+96>>2]=i[g+48>>2],i[B+100>>2]=U,AI(I,B+112|0,B+96|0),U=i[B+268>>2],i[g+56>>2]=i[B+264>>2],i[g+60>>2]=U,U=i[B+260>>2],i[g+48>>2]=i[B+256>>2],i[g+52>>2]=U,U=i[g+28>>2],i[B+88>>2]=i[g+24>>2],i[B+92>>2]=U,U=i[g+20>>2],i[B+80>>2]=i[g+16>>2],i[B+84>>2]=U,U=i[g+44>>2],i[B+72>>2]=i[g+40>>2],i[B+76>>2]=U,U=i[g+36>>2],i[B+64>>2]=i[g+32>>2],i[B+68>>2]=U,AI(I,B+80|0,B- -64|0),U=i[B+268>>2],i[g+40>>2]=i[B+264>>2],i[g+44>>2]=U,U=i[B+260>>2],i[g+32>>2]=i[B+256>>2],i[g+36>>2]=U,U=i[g+12>>2],i[B+56>>2]=i[g+8>>2],i[B+60>>2]=U,U=i[g+4>>2],i[B+48>>2]=i[g>>2],i[B+52>>2]=U,U=i[g+28>>2],i[B+40>>2]=i[g+24>>2],i[B+44>>2]=U,U=i[g+20>>2],i[B+32>>2]=i[g+16>>2],i[B+36>>2]=U,AI(I,B+48|0,B+32|0),U=i[B+268>>2],i[g+24>>2]=i[B+264>>2],i[g+28>>2]=U,U=i[B+260>>2],i[g+16>>2]=i[B+256>>2],i[g+20>>2]=U,U=i[B+284>>2],i[B+24>>2]=i[B+280>>2],i[B+28>>2]=U,U=i[B+276>>2],i[B+16>>2]=i[B+272>>2],i[B+20>>2]=U,U=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=U,U=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=U,AI(I,B+16|0,B),I=i[B+268>>2],i[g+8>>2]=i[B+264>>2],i[g+12>>2]=I,I=i[B+260>>2],i[g>>2]=i[B+256>>2],i[g+4>>2]=I,i[g+12>>2]=J^(o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24),i[g+8>>2]=Y^(o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24),i[g+4>>2]=H^(o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24),i[g>>2]=b^(o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24),i[A>>2]=d^(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24),i[g+68>>2]=m^(o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24),i[g+72>>2]=l^(o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24),i[g+76>>2]=Q^(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24),s=B+288|0}function m(A,I,g){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l=0;s=B=s-288|0,k=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,F=o[g+48|0]|o[g+49|0]<<8|o[g+50|0]<<16|o[g+51|0]<<24,Q=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,S=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,N=o[g+52|0]|o[g+53|0]<<8|o[g+54|0]<<16|o[g+55|0]<<24,E=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,G=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,M=o[g+56|0]|o[g+57|0]<<8|o[g+58|0]<<16|o[g+59|0]<<24,a=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,K=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,U=o[g+60|0]|o[g+61|0]<<8|o[g+62|0]<<16|o[g+63|0]<<24,l=o[g+32|0]|o[g+33|0]<<8|o[g+34|0]<<16|o[g+35|0]<<24,_=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,b=o[g+80|0]|o[g+81|0]<<8|o[g+82|0]<<16|o[g+83|0]<<24,H=o[g+112|0]|o[g+113|0]<<8|o[g+114|0]<<16|o[g+115|0]<<24,c=o[g+96|0]|o[g+97|0]<<8|o[g+98|0]<<16|o[g+99|0]<<24,t=o[g+36|0]|o[g+37|0]<<8|o[g+38|0]<<16|o[g+39|0]<<24,r=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,Y=o[g+84|0]|o[g+85|0]<<8|o[g+86|0]<<16|o[g+87|0]<<24,J=o[g+116|0]|o[g+117|0]<<8|o[g+118|0]<<16|o[g+119|0]<<24,e=o[g+100|0]|o[g+101|0]<<8|o[g+102|0]<<16|o[g+103|0]<<24,y=o[g+40|0]|o[g+41|0]<<8|o[g+42|0]<<16|o[g+43|0]<<24,h=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,d=o[g+88|0]|o[g+89|0]<<8|o[g+90|0]<<16|o[g+91|0]<<24,m=o[g+120|0]|o[g+121|0]<<8|o[g+122|0]<<16|o[g+123|0]<<24,D=o[g+104|0]|o[g+105|0]<<8|o[g+106|0]<<16|o[g+107|0]<<24,f=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=(p=o[g+44|0]|o[g+45|0]<<8|o[g+46|0]<<16|o[g+47|0]<<24)^(w=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24)^(n=o[g+108|0]|o[g+109|0]<<8|o[g+110|0]<<16|o[g+111|0]<<24)&(o[g+124|0]|o[g+125|0]<<8|o[g+126|0]<<16|o[g+127|0]<<24)^(o[g+92|0]|o[g+93|0]<<8|o[g+94|0]<<16|o[g+95|0]<<24),C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=D&m^d^h^y,C[A+24|0]=I,C[A+25|0]=I>>>8,C[A+26|0]=I>>>16,C[A+27|0]=I>>>24,I=e&J^Y^r^t,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=l^c&H^b^_,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24,I=U&p^K^a^n,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=y&M^G^E^D,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=t&N^S^Q^e,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=l&F^k^f^c,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,A=i[g+124>>2],i[B+280>>2]=i[g+120>>2],i[B+284>>2]=A,A=i[g+116>>2],i[B+272>>2]=i[g+112>>2],i[B+276>>2]=A,A=i[g+108>>2],i[B+248>>2]=i[g+104>>2],i[B+252>>2]=A,A=i[g+100>>2],i[B+240>>2]=i[g+96>>2],i[B+244>>2]=A,A=i[g+124>>2],i[B+232>>2]=i[g+120>>2],i[B+236>>2]=A,A=i[g+116>>2],i[B+224>>2]=i[g+112>>2],i[B+228>>2]=A,AI(I=B+256|0,B+240|0,B+224|0),A=i[B+268>>2],i[g+120>>2]=i[B+264>>2],i[g+124>>2]=A,A=i[B+260>>2],i[g+112>>2]=i[B+256>>2],i[g+116>>2]=A,A=i[g+92>>2],i[B+216>>2]=i[g+88>>2],i[B+220>>2]=A,A=i[g+84>>2],i[B+208>>2]=i[g+80>>2],i[B+212>>2]=A,A=i[g+108>>2],i[B+200>>2]=i[g+104>>2],i[B+204>>2]=A,A=i[g+100>>2],i[B+192>>2]=i[g+96>>2],i[B+196>>2]=A,AI(I,B+208|0,B+192|0),A=i[B+268>>2],i[g+104>>2]=i[B+264>>2],i[g+108>>2]=A,A=i[B+260>>2],i[g+96>>2]=i[B+256>>2],i[g+100>>2]=A,A=i[g+76>>2],i[B+184>>2]=i[g+72>>2],i[B+188>>2]=A,l=i[4+(A=g- -64|0)>>2],i[B+176>>2]=i[A>>2],i[B+180>>2]=l,l=i[g+92>>2],i[B+168>>2]=i[g+88>>2],i[B+172>>2]=l,l=i[g+84>>2],i[B+160>>2]=i[g+80>>2],i[B+164>>2]=l,AI(I,B+176|0,B+160|0),l=i[B+268>>2],i[g+88>>2]=i[B+264>>2],i[g+92>>2]=l,l=i[B+260>>2],i[g+80>>2]=i[B+256>>2],i[g+84>>2]=l,l=i[g+60>>2],i[B+152>>2]=i[g+56>>2],i[B+156>>2]=l,l=i[g+52>>2],i[B+144>>2]=i[g+48>>2],i[B+148>>2]=l,l=i[g+76>>2],i[B+136>>2]=i[g+72>>2],i[B+140>>2]=l,l=i[A+4>>2],i[B+128>>2]=i[A>>2],i[B+132>>2]=l,AI(I,B+144|0,B+128|0),l=i[B+268>>2],i[g+72>>2]=i[B+264>>2],i[g+76>>2]=l,l=i[B+260>>2],i[A>>2]=i[B+256>>2],i[A+4>>2]=l,l=i[g+44>>2],i[B+120>>2]=i[g+40>>2],i[B+124>>2]=l,l=i[g+36>>2],i[B+112>>2]=i[g+32>>2],i[B+116>>2]=l,l=i[g+60>>2],i[B+104>>2]=i[g+56>>2],i[B+108>>2]=l,l=i[g+52>>2],i[B+96>>2]=i[g+48>>2],i[B+100>>2]=l,AI(I,B+112|0,B+96|0),l=i[B+268>>2],i[g+56>>2]=i[B+264>>2],i[g+60>>2]=l,l=i[B+260>>2],i[g+48>>2]=i[B+256>>2],i[g+52>>2]=l,l=i[g+28>>2],i[B+88>>2]=i[g+24>>2],i[B+92>>2]=l,l=i[g+20>>2],i[B+80>>2]=i[g+16>>2],i[B+84>>2]=l,l=i[g+44>>2],i[B+72>>2]=i[g+40>>2],i[B+76>>2]=l,l=i[g+36>>2],i[B+64>>2]=i[g+32>>2],i[B+68>>2]=l,AI(I,B+80|0,B- -64|0),l=i[B+268>>2],i[g+40>>2]=i[B+264>>2],i[g+44>>2]=l,l=i[B+260>>2],i[g+32>>2]=i[B+256>>2],i[g+36>>2]=l,l=i[g+12>>2],i[B+56>>2]=i[g+8>>2],i[B+60>>2]=l,l=i[g+4>>2],i[B+48>>2]=i[g>>2],i[B+52>>2]=l,l=i[g+28>>2],i[B+40>>2]=i[g+24>>2],i[B+44>>2]=l,l=i[g+20>>2],i[B+32>>2]=i[g+16>>2],i[B+36>>2]=l,AI(I,B+48|0,B+32|0),l=i[B+268>>2],i[g+24>>2]=i[B+264>>2],i[g+28>>2]=l,l=i[B+260>>2],i[g+16>>2]=i[B+256>>2],i[g+20>>2]=l,l=i[B+284>>2],i[B+24>>2]=i[B+280>>2],i[B+28>>2]=l,l=i[B+276>>2],i[B+16>>2]=i[B+272>>2],i[B+20>>2]=l,l=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=l,l=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=l,AI(I,B+16|0,B),I=i[B+268>>2],i[g+8>>2]=i[B+264>>2],i[g+12>>2]=I,I=i[B+260>>2],i[g>>2]=i[B+256>>2],i[g+4>>2]=I,i[g+12>>2]=(o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24)^a,i[g+8>>2]=(o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24)^E,i[g+4>>2]=(o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24)^Q,i[g>>2]=(o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24)^f,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^_,i[g+68>>2]=(o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24)^r,i[g+72>>2]=(o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24)^h,i[g+76>>2]=w^(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24),s=B+288|0}function l(A,I,g,B,Q){var E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0;for(s=E=s-224|0,f=(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^B>>>29,p=(o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24)^B<<3,e=(o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24)^g>>>29,h=(o[0|(a=Q+48|0)]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24)^g<<3,_=Q+16|0,c=Q+32|0,t=Q- -64|0,r=Q+80|0;g=i[r+12>>2],i[E+216>>2]=i[r+8>>2],i[E+220>>2]=g,g=i[r+4>>2],i[E+208>>2]=i[r>>2],i[E+212>>2]=g,g=i[t+12>>2],i[E+184>>2]=i[t+8>>2],i[E+188>>2]=g,g=i[t+4>>2],i[E+176>>2]=i[t>>2],i[E+180>>2]=g,g=i[r+12>>2],i[E+168>>2]=i[r+8>>2],i[E+172>>2]=g,g=i[r+4>>2],i[E+160>>2]=i[r>>2],i[E+164>>2]=g,AI(B=E+192|0,E+176|0,E+160|0),g=i[E+204>>2],i[r+8>>2]=i[E+200>>2],i[r+12>>2]=g,g=i[E+196>>2],i[r>>2]=i[E+192>>2],i[r+4>>2]=g,g=i[a+12>>2],i[E+152>>2]=i[a+8>>2],i[E+156>>2]=g,g=i[a+4>>2],i[E+144>>2]=i[a>>2],i[E+148>>2]=g,g=i[t+12>>2],i[E+136>>2]=i[t+8>>2],i[E+140>>2]=g,g=i[t+4>>2],i[E+128>>2]=i[t>>2],i[E+132>>2]=g,AI(B,E+144|0,E+128|0),g=i[E+204>>2],i[t+8>>2]=i[E+200>>2],i[t+12>>2]=g,g=i[E+196>>2],i[t>>2]=i[E+192>>2],i[t+4>>2]=g,g=i[c+12>>2],i[E+120>>2]=i[c+8>>2],i[E+124>>2]=g,g=i[c+4>>2],i[E+112>>2]=i[c>>2],i[E+116>>2]=g,g=i[a+12>>2],i[E+104>>2]=i[a+8>>2],i[E+108>>2]=g,g=i[a+4>>2],i[E+96>>2]=i[a>>2],i[E+100>>2]=g,AI(B,E+112|0,E+96|0),g=i[E+204>>2],i[a+8>>2]=i[E+200>>2],i[a+12>>2]=g,g=i[E+196>>2],i[a>>2]=i[E+192>>2],i[a+4>>2]=g,g=i[_+12>>2],i[E+88>>2]=i[_+8>>2],i[E+92>>2]=g,g=i[_+4>>2],i[E+80>>2]=i[_>>2],i[E+84>>2]=g,g=i[c+12>>2],i[E+72>>2]=i[c+8>>2],i[E+76>>2]=g,g=i[c+4>>2],i[E+64>>2]=i[c>>2],i[E+68>>2]=g,AI(B,E+80|0,E- -64|0),g=i[E+204>>2],i[c+8>>2]=i[E+200>>2],i[c+12>>2]=g,g=i[E+196>>2],i[c>>2]=i[E+192>>2],i[c+4>>2]=g,g=i[Q+12>>2],i[E+56>>2]=i[Q+8>>2],i[E+60>>2]=g,g=i[Q+4>>2],i[E+48>>2]=i[Q>>2],i[E+52>>2]=g,g=i[_+12>>2],i[E+40>>2]=i[_+8>>2],i[E+44>>2]=g,g=i[_+4>>2],i[E+32>>2]=i[_>>2],i[E+36>>2]=g,AI(B,E+48|0,E+32|0),g=i[E+204>>2],i[_+8>>2]=i[E+200>>2],i[_+12>>2]=g,g=i[E+196>>2],i[_>>2]=i[E+192>>2],i[_+4>>2]=g,g=i[E+220>>2],i[E+24>>2]=i[E+216>>2],i[E+28>>2]=g,g=i[E+212>>2],i[E+16>>2]=i[E+208>>2],i[E+20>>2]=g,g=i[Q+12>>2],i[E+8>>2]=i[Q+8>>2],i[E+12>>2]=g,g=i[Q+4>>2],i[E>>2]=i[Q>>2],i[E+4>>2]=g,AI(B,E+16|0,E),D=i[E+192>>2],B=i[E+196>>2],g=i[E+200>>2],w=f^i[E+204>>2],i[Q+12>>2]=w,n=g^p,i[Q+8>>2]=n,k=B^e,i[Q+4>>2]=k,F=h^D,i[Q>>2]=F,7!=(0|(y=y+1|0)););A:{I:{g:{if(g=I-16|0){if(16==(0|g))break g;break I}S=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,a=o[Q+48|0]|o[Q+49|0]<<8|o[Q+50|0]<<16|o[Q+51|0]<<24,_=o[Q+32|0]|o[Q+33|0]<<8|o[Q+34|0]<<16|o[Q+35|0]<<24,c=o[Q+80|0]|o[Q+81|0]<<8|o[Q+82|0]<<16|o[Q+83|0]<<24,t=o[0|(I=Q- -64|0)]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,r=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,f=o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24,p=o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24,e=o[Q+84|0]|o[Q+85|0]<<8|o[Q+86|0]<<16|o[Q+87|0]<<24,h=o[Q+68|0]|o[Q+69|0]<<8|o[Q+70|0]<<16|o[Q+71|0]<<24,D=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,y=o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24,B=o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24,g=o[Q+88|0]|o[Q+89|0]<<8|o[Q+90|0]<<16|o[Q+91|0]<<24,I=o[Q+72|0]|o[Q+73|0]<<8|o[Q+74|0]<<16|o[Q+75|0]<<24,Q=w^(o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24)^(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24)^(o[Q+92|0]|o[Q+93|0]<<8|o[Q+94|0]<<16|o[Q+95|0]<<24)^(o[Q+76|0]|o[Q+77|0]<<8|o[Q+78|0]<<16|o[Q+79|0]<<24),C[A+12|0]=Q,C[A+13|0]=Q>>>8,C[A+14|0]=Q>>>16,C[A+15|0]=Q>>>24,I=n^D^I^g^B^y,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=k^r^f^p^e^h,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=F^S^a^_^c^t,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24;break A}h=o[Q+32|0]|o[Q+33|0]<<8|o[Q+34|0]<<16|o[Q+35|0]<<24,D=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,y=o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24,B=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,g=o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24,I=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,e=w^(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24)^(o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24),C[A+12|0]=e,C[A+13|0]=e>>>8,C[A+14|0]=e>>>16,C[A+15|0]=e>>>24,I=n^I^g,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=k^B^y,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=F^h^D,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,f=o[Q+48|0]|o[Q+49|0]<<8|o[Q+50|0]<<16|o[Q+51|0]<<24,p=o[Q+80|0]|o[Q+81|0]<<8|o[Q+82|0]<<16|o[Q+83|0]<<24,e=o[0|(I=Q- -64|0)]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,h=o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24,D=o[Q+84|0]|o[Q+85|0]<<8|o[Q+86|0]<<16|o[Q+87|0]<<24,y=o[Q+68|0]|o[Q+69|0]<<8|o[Q+70|0]<<16|o[Q+71|0]<<24,B=o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24,g=o[Q+88|0]|o[Q+89|0]<<8|o[Q+90|0]<<16|o[Q+91|0]<<24,I=o[Q+72|0]|o[Q+73|0]<<8|o[Q+74|0]<<16|o[Q+75|0]<<24,Q=(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^(o[Q+92|0]|o[Q+93|0]<<8|o[Q+94|0]<<16|o[Q+95|0]<<24)^(o[Q+76|0]|o[Q+77|0]<<8|o[Q+78|0]<<16|o[Q+79|0]<<24),C[A+28|0]=Q,C[A+29|0]=Q>>>8,C[A+30|0]=Q>>>16,C[A+31|0]=Q>>>24,I=B^I^g,C[A+24|0]=I,C[A+25|0]=I>>>8,C[A+26|0]=I>>>16,C[A+27|0]=I>>>24,I=h^D^y,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=f^e^p,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24;break A}bg(A,0,I)}s=E+224|0}function u(A,I,g){var B,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0;for(s=B=s-4032|0,$A(B+160|0,g),_=i[g+36>>2],i[(a=B+3840|0)>>2]=i[g+32>>2],i[a+4>>2]=_,c=i[g+28>>2],i[(_=B+3832|0)>>2]=i[g+24>>2],i[_+4>>2]=c,r=i[g+20>>2],i[(c=B+3824|0)>>2]=i[g+16>>2],i[c+4>>2]=r,e=i[g+12>>2],i[(r=B+3816|0)>>2]=i[g+8>>2],i[r+4>>2]=e,e=i[g+4>>2],i[B+3808>>2]=i[g>>2],i[B+3812>>2]=e,D=i[g+52>>2],i[(e=B+3856|0)>>2]=i[g+48>>2],i[e+4>>2]=D,w=i[g+60>>2],i[(D=B+3864|0)>>2]=i[g+56>>2],i[D+4>>2]=w,y=i[4+(f=g- -64|0)>>2],i[(w=B+3872|0)>>2]=i[f>>2],i[w+4>>2]=y,y=i[g+76>>2],i[(f=B+3880|0)>>2]=i[g+72>>2],i[f+4>>2]=y,y=i[g+44>>2],i[B+3848>>2]=i[g+40>>2],i[B+3852>>2]=y,n=i[g+92>>2],i[(y=B+3896|0)>>2]=i[g+88>>2],i[y+4>>2]=n,k=i[g+100>>2],i[(n=B+3904|0)>>2]=i[g+96>>2],i[n+4>>2]=k,F=i[g+108>>2],i[(k=B+3912|0)>>2]=i[g+104>>2],i[k+4>>2]=F,S=i[g+116>>2],i[(F=B+3920|0)>>2]=i[g+112>>2],i[F+4>>2]=S,S=i[g+84>>2],i[B+3888>>2]=i[g+80>>2],i[B+3892>>2]=S,KA(Q=B+3528|0,S=B+3808|0),b(E=B+2408|0,Q,t=B+3648|0),b(B+2448|0,h=B+3568|0,p=B+3608|0),b(B+2488|0,p,t),b(B+2528|0,Q,h),$A(t=B+320|0,E),sA(Q=B+3368|0,g,t),b(E=B+2248|0,Q,t=B+3488|0),b(B+2288|0,h=B+3408|0,p=B+3448|0),b(B+2328|0,p,t),b(B+2368|0,Q,h),$A(B+480|0,E),E=i[4+(Q=B+2440|0)>>2],i[a>>2]=i[Q>>2],i[a+4>>2]=E,E=i[4+(Q=B+2432|0)>>2],i[_>>2]=i[Q>>2],i[_+4>>2]=E,E=i[4+(Q=B+2424|0)>>2],i[c>>2]=i[Q>>2],i[c+4>>2]=E,E=i[4+(Q=B+2416|0)>>2],i[r>>2]=i[Q>>2],i[r+4>>2]=E,E=i[4+(Q=B+2456|0)>>2],i[e>>2]=i[Q>>2],i[e+4>>2]=E,E=i[4+(Q=B+2464|0)>>2],i[D>>2]=i[Q>>2],i[D+4>>2]=E,E=i[4+(Q=B+2472|0)>>2],i[w>>2]=i[Q>>2],i[w+4>>2]=E,E=i[4+(Q=B+2480|0)>>2],i[f>>2]=i[Q>>2],i[f+4>>2]=E,Q=i[B+2412>>2],i[B+3808>>2]=i[B+2408>>2],i[B+3812>>2]=Q,Q=i[B+2452>>2],i[B+3848>>2]=i[B+2448>>2],i[B+3852>>2]=Q,E=i[4+(Q=B+2520|0)>>2],i[F>>2]=i[Q>>2],i[F+4>>2]=E,E=i[4+(Q=B+2512|0)>>2],i[k>>2]=i[Q>>2],i[k+4>>2]=E,E=i[4+(Q=B+2504|0)>>2],i[n>>2]=i[Q>>2],i[n+4>>2]=E,E=i[4+(Q=B+2496|0)>>2],i[y>>2]=i[Q>>2],i[y+4>>2]=E,Q=i[B+2492>>2],i[B+3888>>2]=i[B+2488>>2],i[B+3892>>2]=Q,KA(Q=B+3208|0,S),b(E=B+2088|0,Q,t=B+3328|0),b(B+2128|0,h=B+3248|0,p=B+3288|0),b(B+2168|0,p,t),b(B+2208|0,Q,h),$A(t=B+640|0,E),sA(Q=B+3048|0,g,t),b(E=B+1928|0,Q,t=B+3168|0),b(B+1968|0,h=B+3088|0,p=B+3128|0),b(B+2008|0,p,t),b(B+2048|0,Q,h),$A(B+800|0,E),E=i[4+(Q=B+2280|0)>>2],i[a>>2]=i[Q>>2],i[a+4>>2]=E,E=i[4+(Q=B+2272|0)>>2],i[_>>2]=i[Q>>2],i[_+4>>2]=E,E=i[4+(Q=B+2264|0)>>2],i[c>>2]=i[Q>>2],i[c+4>>2]=E,E=i[4+(Q=B+2256|0)>>2],i[r>>2]=i[Q>>2],i[r+4>>2]=E,E=i[4+(Q=B+2296|0)>>2],i[e>>2]=i[Q>>2],i[e+4>>2]=E,E=i[4+(Q=B+2304|0)>>2],i[D>>2]=i[Q>>2],i[D+4>>2]=E,E=i[4+(Q=B+2312|0)>>2],i[w>>2]=i[Q>>2],i[w+4>>2]=E,E=i[4+(Q=B+2320|0)>>2],i[f>>2]=i[Q>>2],i[f+4>>2]=E,Q=i[B+2252>>2],i[B+3808>>2]=i[B+2248>>2],i[B+3812>>2]=Q,Q=i[B+2292>>2],i[B+3848>>2]=i[B+2288>>2],i[B+3852>>2]=Q,E=i[4+(Q=B+2360|0)>>2],i[F>>2]=i[Q>>2],i[F+4>>2]=E,E=i[4+(Q=B+2352|0)>>2],i[k>>2]=i[Q>>2],i[k+4>>2]=E,E=i[4+(Q=B+2344|0)>>2],i[n>>2]=i[Q>>2],i[n+4>>2]=E,E=i[4+(Q=B+2336|0)>>2],i[y>>2]=i[Q>>2],i[y+4>>2]=E,Q=i[B+2332>>2],i[B+3888>>2]=i[B+2328>>2],i[B+3892>>2]=Q,KA(Q=B+2888|0,S),b(E=B+1768|0,Q,t=B+3008|0),b(B+1808|0,h=B+2928|0,p=B+2968|0),b(B+1848|0,p,t),b(B+1888|0,Q,h),$A(t=B+960|0,E),sA(Q=B+2728|0,g,t),b(g=B+1608|0,Q,E=B+2848|0),b(B+1648|0,t=B+2768|0,h=B+2808|0),b(B+1688|0,h,E),b(B+1728|0,Q,t),$A(B+1120|0,g),Q=i[4+(g=B+2120|0)>>2],i[a>>2]=i[g>>2],i[a+4>>2]=Q,a=i[4+(g=B+2112|0)>>2],i[_>>2]=i[g>>2],i[_+4>>2]=a,a=i[4+(g=B+2104|0)>>2],i[c>>2]=i[g>>2],i[c+4>>2]=a,a=i[4+(g=B+2096|0)>>2],i[r>>2]=i[g>>2],i[r+4>>2]=a,a=i[4+(g=B+2136|0)>>2],i[e>>2]=i[g>>2],i[e+4>>2]=a,a=i[4+(g=B+2144|0)>>2],i[D>>2]=i[g>>2],i[D+4>>2]=a,a=i[4+(g=B+2152|0)>>2],i[w>>2]=i[g>>2],i[w+4>>2]=a,a=i[4+(g=B+2160|0)>>2],i[f>>2]=i[g>>2],i[f+4>>2]=a,g=i[B+2092>>2],i[B+3808>>2]=i[B+2088>>2],i[B+3812>>2]=g,g=i[B+2132>>2],i[B+3848>>2]=i[B+2128>>2],i[B+3852>>2]=g,a=i[4+(g=B+2200|0)>>2],i[F>>2]=i[g>>2],i[F+4>>2]=a,a=i[4+(g=B+2192|0)>>2],i[k>>2]=i[g>>2],i[k+4>>2]=a,a=i[4+(g=B+2184|0)>>2],i[n>>2]=i[g>>2],i[n+4>>2]=a,a=i[4+(g=B+2176|0)>>2],i[y>>2]=i[g>>2],i[y+4>>2]=a,g=i[B+2172>>2],i[B+3888>>2]=i[B+2168>>2],i[B+3892>>2]=g,KA(g=B+2568|0,S),b(a=B+1448|0,g,_=B+2688|0),b(B+1488|0,c=B+2608|0,r=B+2648|0),b(B+1528|0,r,_),b(B+1568|0,g,c),$A(B+1280|0,a),a=0,g=0;c=(_=B+3968|0)+(g<<1)|0,r=o[I+g|0],C[c+1|0]=r>>>4,C[0|c]=15&r,_=_+((c=1|g)<<1)|0,c=o[I+c|0],C[_+1|0]=c>>>4,C[0|_]=15&c,32!=(0|(g=g+2|0)););for(I=0;g=8+(_=(g=I)+o[0|(I=(B+3968|0)+a|0)]|0)|0,C[0|I]=_-(240&g),g=8+(_=o[I+1|0]+(g<<24>>24>>4)|0)|0,C[I+1|0]=_-(240&g),g=8+(_=o[I+2|0]+(g<<24>>24>>4)|0)|0,C[I+2|0]=_-(240&g),I=g<<24>>24>>4,63!=(0|(a=a+3|0)););for(C[B+4031|0]=o[B+4031|0]+I,i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0,i[A>>2]=0,i[A+4>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+40>>2]=1,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A+80>>2]=1,bg(A+84|0,0,76),w=A+120|0,f=A+80|0,y=A+40|0,r=B+3768|0,g=B+3888|0,_=B+3848|0,e=B+3728|0,a=B+3928|0,D=63;HA(B,n=B+160|0,C[(B+3968|0)+D|0]),sA(I=B+3808|0,A,B),b(c=B+3688|0,I,a),b(e,_,g),b(r,g,a),KA(I,c),b(c,I,a),b(e,_,g),b(r,g,a),KA(I,c),b(c,I,a),b(e,_,g),b(r,g,a),KA(I,c),b(c,I,a),b(e,_,g),b(r,g,a),KA(I,c),b(A,I,a),b(y,_,g),b(f,g,a),b(w,I,_),D=D-1|0;);HA(B,n,C[B+3968|0]),sA(I,A,B),b(A,I,a),b(y,_,g),b(f,g,a),b(w,I,_),s=B+4032|0}function x(A,I,g,C){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S,N,G,M,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0;s=B=s-320|0,i[B+280>>2]=0,i[B+284>>2]=0,i[B+272>>2]=0,i[B+276>>2]=0,i[B+264>>2]=0,i[B+268>>2]=0,i[B+256>>2]=0,i[B+260>>2]=0,Ng(U=B+256|0,I,g),m=o[C+16|0]|o[C+17|0]<<8|o[C+18|0]<<16|o[C+19|0]<<24,K=o[C+48|0]|o[C+49|0]<<8|o[C+50|0]<<16|o[C+51|0]<<24,a=o[C+20|0]|o[C+21|0]<<8|o[C+22|0]<<16|o[C+23|0]<<24,_=o[C+52|0]|o[C+53|0]<<8|o[C+54|0]<<16|o[C+55|0]<<24,c=o[C+24|0]|o[C+25|0]<<8|o[C+26|0]<<16|o[C+27|0]<<24,t=o[C+56|0]|o[C+57|0]<<8|o[C+58|0]<<16|o[C+59|0]<<24,r=o[C+28|0]|o[C+29|0]<<8|o[C+30|0]<<16|o[C+31|0]<<24,e=o[C+60|0]|o[C+61|0]<<8|o[C+62|0]<<16|o[C+63|0]<<24,I=o[C+36|0]|o[C+37|0]<<8|o[C+38|0]<<16|o[C+39|0]<<24,y=o[C+84|0]|o[C+85|0]<<8|o[C+86|0]<<16|o[C+87|0]<<24,h=o[C+116|0]|o[C+117|0]<<8|o[C+118|0]<<16|o[C+119|0]<<24,b=o[C+100|0]|o[C+101|0]<<8|o[C+102|0]<<16|o[C+103|0]<<24,H=o[C+44|0]|o[C+45|0]<<8|o[C+46|0]<<16|o[C+47|0]<<24,D=o[C+92|0]|o[C+93|0]<<8|o[C+94|0]<<16|o[C+95|0]<<24,f=o[C+124|0]|o[C+125|0]<<8|o[C+126|0]<<16|o[C+127|0]<<24,Y=o[C+108|0]|o[C+109|0]<<8|o[C+110|0]<<16|o[C+111|0]<<24,J=o[C+32|0]|o[C+33|0]<<8|o[C+34|0]<<16|o[C+35|0]<<24,p=o[C+80|0]|o[C+81|0]<<8|o[C+82|0]<<16|o[C+83|0]<<24,w=o[C+112|0]|o[C+113|0]<<8|o[C+114|0]<<16|o[C+115|0]<<24,d=o[C+96|0]|o[C+97|0]<<8|o[C+98|0]<<16|o[C+99|0]<<24,n=i[B+272>>2],k=i[B+256>>2],F=i[B+260>>2],S=i[B+264>>2],N=i[B+268>>2],G=i[B+276>>2],M=i[B+284>>2],Q=o[C+40|0]|o[C+41|0]<<8|o[C+42|0]<<16|o[C+43|0]<<24,E=o[C+104|0]|o[C+105|0]<<8|o[C+106|0]<<16|o[C+107|0]<<24,i[B+280>>2]=Q^E&(o[C+120|0]|o[C+121|0]<<8|o[C+122|0]<<16|o[C+123|0]<<24)^i[B+280>>2]^(o[C+88|0]|o[C+89|0]<<8|o[C+90|0]<<16|o[C+91|0]<<24),i[B+272>>2]=J^d&w^p^n,i[B+284>>2]=H^Y&f^D^M,i[B+276>>2]=I^b&h^y^G,i[B+268>>2]=Y^H&e^r^N,i[B+264>>2]=t&Q^c^S^E,i[B+260>>2]=b^I&_^a^F,i[B+256>>2]=d^K&J^m^k,bg(g+U|0,0,32-g|0),Ng(A,U,g),g=i[B+280>>2],U=i[B+272>>2],b=i[B+284>>2],H=i[B+276>>2],Y=i[B+256>>2],J=i[B+260>>2],d=i[B+264>>2],m=i[B+268>>2],A=i[C+124>>2],i[B+312>>2]=i[C+120>>2],i[B+316>>2]=A,A=i[C+116>>2],i[B+304>>2]=i[C+112>>2],i[B+308>>2]=A,A=i[C+108>>2],i[B+248>>2]=i[C+104>>2],i[B+252>>2]=A,A=i[C+100>>2],i[B+240>>2]=i[C+96>>2],i[B+244>>2]=A,A=i[C+124>>2],i[B+232>>2]=i[C+120>>2],i[B+236>>2]=A,A=i[C+116>>2],i[B+224>>2]=i[C+112>>2],i[B+228>>2]=A,AI(I=B+288|0,B+240|0,B+224|0),A=i[B+300>>2],i[C+120>>2]=i[B+296>>2],i[C+124>>2]=A,A=i[B+292>>2],i[C+112>>2]=i[B+288>>2],i[C+116>>2]=A,A=i[C+92>>2],i[B+216>>2]=i[C+88>>2],i[B+220>>2]=A,A=i[C+84>>2],i[B+208>>2]=i[C+80>>2],i[B+212>>2]=A,A=i[C+108>>2],i[B+200>>2]=i[C+104>>2],i[B+204>>2]=A,A=i[C+100>>2],i[B+192>>2]=i[C+96>>2],i[B+196>>2]=A,AI(I,B+208|0,B+192|0),A=i[B+300>>2],i[C+104>>2]=i[B+296>>2],i[C+108>>2]=A,A=i[B+292>>2],i[C+96>>2]=i[B+288>>2],i[C+100>>2]=A,A=i[C+76>>2],i[B+184>>2]=i[C+72>>2],i[B+188>>2]=A,K=i[4+(A=C- -64|0)>>2],i[B+176>>2]=i[A>>2],i[B+180>>2]=K,K=i[C+92>>2],i[B+168>>2]=i[C+88>>2],i[B+172>>2]=K,K=i[C+84>>2],i[B+160>>2]=i[C+80>>2],i[B+164>>2]=K,AI(I,B+176|0,B+160|0),K=i[B+300>>2],i[C+88>>2]=i[B+296>>2],i[C+92>>2]=K,K=i[B+292>>2],i[C+80>>2]=i[B+288>>2],i[C+84>>2]=K,K=i[C+60>>2],i[B+152>>2]=i[C+56>>2],i[B+156>>2]=K,K=i[C+52>>2],i[B+144>>2]=i[C+48>>2],i[B+148>>2]=K,K=i[C+76>>2],i[B+136>>2]=i[C+72>>2],i[B+140>>2]=K,K=i[A+4>>2],i[B+128>>2]=i[A>>2],i[B+132>>2]=K,AI(I,B+144|0,B+128|0),K=i[B+300>>2],i[C+72>>2]=i[B+296>>2],i[C+76>>2]=K,K=i[B+292>>2],i[A>>2]=i[B+288>>2],i[A+4>>2]=K,K=i[C+44>>2],i[B+120>>2]=i[C+40>>2],i[B+124>>2]=K,K=i[C+36>>2],i[B+112>>2]=i[C+32>>2],i[B+116>>2]=K,K=i[C+60>>2],i[B+104>>2]=i[C+56>>2],i[B+108>>2]=K,K=i[C+52>>2],i[B+96>>2]=i[C+48>>2],i[B+100>>2]=K,AI(I,B+112|0,B+96|0),K=i[B+300>>2],i[C+56>>2]=i[B+296>>2],i[C+60>>2]=K,K=i[B+292>>2],i[C+48>>2]=i[B+288>>2],i[C+52>>2]=K,K=i[C+28>>2],i[B+88>>2]=i[C+24>>2],i[B+92>>2]=K,K=i[C+20>>2],i[B+80>>2]=i[C+16>>2],i[B+84>>2]=K,K=i[C+44>>2],i[B+72>>2]=i[C+40>>2],i[B+76>>2]=K,K=i[C+36>>2],i[B+64>>2]=i[C+32>>2],i[B+68>>2]=K,AI(I,B+80|0,B- -64|0),K=i[B+300>>2],i[C+40>>2]=i[B+296>>2],i[C+44>>2]=K,K=i[B+292>>2],i[C+32>>2]=i[B+288>>2],i[C+36>>2]=K,K=i[C+12>>2],i[B+56>>2]=i[C+8>>2],i[B+60>>2]=K,K=i[C+4>>2],i[B+48>>2]=i[C>>2],i[B+52>>2]=K,K=i[C+28>>2],i[B+40>>2]=i[C+24>>2],i[B+44>>2]=K,K=i[C+20>>2],i[B+32>>2]=i[C+16>>2],i[B+36>>2]=K,AI(I,B+48|0,B+32|0),K=i[B+300>>2],i[C+24>>2]=i[B+296>>2],i[C+28>>2]=K,K=i[B+292>>2],i[C+16>>2]=i[B+288>>2],i[C+20>>2]=K,K=i[B+316>>2],i[B+24>>2]=i[B+312>>2],i[B+28>>2]=K,K=i[B+308>>2],i[B+16>>2]=i[B+304>>2],i[B+20>>2]=K,K=i[C+12>>2],i[B+8>>2]=i[C+8>>2],i[B+12>>2]=K,K=i[C+4>>2],i[B>>2]=i[C>>2],i[B+4>>2]=K,AI(I,B+16|0,B),I=i[B+300>>2],i[C+8>>2]=i[B+296>>2],i[C+12>>2]=I,I=i[B+292>>2],i[C>>2]=i[B+288>>2],i[C+4>>2]=I,i[C+12>>2]=m^(o[C+12|0]|o[C+13|0]<<8|o[C+14|0]<<16|o[C+15|0]<<24),i[C+8>>2]=d^(o[C+8|0]|o[C+9|0]<<8|o[C+10|0]<<16|o[C+11|0]<<24),i[C+4>>2]=J^(o[C+4|0]|o[C+5|0]<<8|o[C+6|0]<<16|o[C+7|0]<<24),i[C>>2]=Y^(o[0|C]|o[C+1|0]<<8|o[C+2|0]<<16|o[C+3|0]<<24),i[A>>2]=U^(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24),i[C+68>>2]=H^(o[C+68|0]|o[C+69|0]<<8|o[C+70|0]<<16|o[C+71|0]<<24),i[C+72>>2]=g^(o[C+72|0]|o[C+73|0]<<8|o[C+74|0]<<16|o[C+75|0]<<24),i[C+76>>2]=b^(o[C+76|0]|o[C+77|0]<<8|o[C+78|0]<<16|o[C+79|0]<<24),s=B+320|0}function v(A,I){var g,C,B,Q,o,E,_,c,t,r,e,y,s,h,D,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l,u,x,v,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0;R=Ig(C=(D=i[I+12>>2])<<1,E=C>>31,$=(q=i[I+4>>2])<<1,B=$>>31),P=f,F=V=i[I+8>>2],L=(Z=Ig(V,p=V>>31,V,p))+R|0,R=f+P|0,R=L>>>0>>0?R+1|0:R,P=Ig(j=i[I+16>>2],_=j>>31,Z=(z=i[I>>2])<<1,Q=Z>>31),R=f+R|0,R=(L=P+L|0)>>>0

>>0?R+1|0:R,e=i[I+28>>2],P=Ig(BA=a(e,38),w=BA>>31,e,S=e>>31),R=f+R|0,R=(L=P+L|0)>>>0

>>0?R+1|0:R,P=L,y=i[I+32>>2],X=Ig(O=a(y,19),c=O>>31,L=(g=i[I+24>>2])<<1,L>>31),L=f+R|0,L=(P=P+X|0)>>>0>>0?L+1|0:L,H=i[I+36>>2],R=Ig(X=a(H,38),o=X>>31,AA=(t=i[I+20>>2])<<1,s=AA>>31),I=f+L|0,J=R=(R>>>0>(P=R+P|0)>>>0?I+1:I)<<1|P>>>31,d=L=33554432+(N=P<<1)|0,m=R=L>>>0<33554432?R+1|0:R,I=R>>26,T=(67108863&R)<<6|L>>>26,R=Ig($,B,j,_),P=f,L=(IA=Ig(V<<=1,h=V>>31,D,G=D>>31))+R|0,R=f+P|0,R=L>>>0>>0?R+1|0:R,P=(IA=Ig(t,n=t>>31,Z,Q))+L|0,L=f+R|0,L=P>>>0>>0?L+1|0:L,iA=Ig(O,c,IA=e<<1,M=IA>>31),R=f+L|0,R=(P=iA+P|0)>>>0>>0?R+1|0:R,L=Ig(X,o,g,r=g>>31),R=f+R|0,I=I+(L=(L>>>0>(P=L+P|0)>>>0?R+1:R)<<1|P>>>31)|0,iA=P=(R=P<<1)+T|0,R=I=R>>>0>P>>>0?I+1|0:I,l=P=P+16777216|0,T=(33554431&(R=P>>>0<16777216?R+1|0:R))<<7|P>>>25,P=R>>25,I=Ig(C,E,D,G),R=f,L=Ig(j,_,V,h),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=Ig($,B,AA,s),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(gA=Ig(Z,Q,g,r))+I|0,I=f+R|0,I=L>>>0>>0?I+1|0:I,gA=Ig(O,c,y,k=y>>31),R=f+I|0,R=(L=gA+L|0)>>>0>>0?R+1|0:R,I=(gA=Ig(X,o,IA,M))+L|0,L=f+R|0,I=((R=I)>>>0>>0?L+1:L)<<1|R>>>31,L=T,T=R<<1,R=I+P|0,R=(L=L+T|0)>>>0>>0?R+1|0:R,gA=I=L+33554432|0,P=R=I>>>0<33554432?R+1|0:R,i[A+24>>2]=L-(-67108864&I),L=Ig(I=a(t,38),I>>31,t,n),T=f,I=(R=Ig(I=z,R=I>>31,I,R))+L|0,L=f+T|0,L=I>>>0>>0?L+1|0:L,CA=Ig(z=a(g,19),K=z>>31,T=j<<1,U=T>>31),R=f+L|0,R=(I=CA+I|0)>>>0>>0?R+1|0:R,L=Ig(C,E,BA,w),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(CA=Ig(O,c,V,h))+I|0,I=f+R|0,I=L>>>0>>0?I+1|0:I,CA=Ig($,B,X,o),R=f+I|0,CA=R=((L=CA+L|0)>>>0>>0?R+1:R)<<1|L>>>31,u=I=33554432+(b=L<<1)|0,x=L=I>>>0<33554432?R+1|0:R,QA=(67108863&L)<<6|I>>>26,oA=L>>26,I=Ig(z,K,AA,s),R=f,L=Ig(Z,Q,q,Y=q>>31),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(W=Ig(j,_,BA,w))+I|0,I=f+R|0,I=L>>>0>>0?I+1|0:I,W=Ig(O,c,C,E),R=f+I|0,R=(L=W+L|0)>>>0>>0?R+1|0:R,W=(I=Ig(X,o,F,p))+L|0,L=f+R|0,R=(I=(I>>>0>W>>>0?L+1:L)<<1|W>>>31)+oA|0,R=(L=(W<<=1)+QA|0)>>>0>>0?R+1|0:R,oA=L,W=L=L+16777216|0,v=(33554431&(R=L>>>0<16777216?R+1|0:R))<<7|L>>>25,QA=R>>25,I=Ig(Z,Q,F,p),R=f,L=Ig($,B,q,Y),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,q=Ig(z,K,g,r),L=f+R|0,L=(I=q+I|0)>>>0>>0?L+1|0:L,q=Ig(AA,s,BA,w),R=f+L|0,R=(I=q+I|0)>>>0>>0?R+1|0:R,L=Ig(O,c,T,U),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(q=Ig(X,o,C,E))+I|0,I=f+R|0,R=(R=(L>>>0>>0?I+1:I)<<1|L>>>31)+QA|0,z=I=(L<<=1)+v|0,R=I>>>0>>0?R+1|0:R,QA=I=I+33554432|0,q=L=I>>>0<33554432?R+1|0:R,i[A+8>>2]=z-(-67108864&I),I=Ig(V,h,t,n),L=f,R=(z=Ig(j,_,C,E))+I|0,I=f+L|0,I=R>>>0>>0?I+1|0:I,L=(z=Ig($,B,g,r))+R|0,R=f+I|0,R=L>>>0>>0?R+1|0:R,I=(z=Ig(Z,Q,e,S))+L|0,L=f+R|0,L=I>>>0>>0?L+1|0:L,z=Ig(X,o,y,k),R=f+L|0,R=(R=((I=z+I|0)>>>0>>0?R+1:R)<<1|I>>>31)+(L=P>>26)|0,I=(L=P=(z=I<<1)+(I=(67108863&P)<<6|gA>>>26)|0)>>>0>>0?R+1|0:R,z=R=L+16777216|0,P=I=R>>>0<16777216?I+1|0:I,i[A+28>>2]=L-(-33554432&R),I=Ig(Z,Q,D,G),R=f,L=Ig($,B,F,p),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=Ig(g,r,BA,w),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(O=Ig(O,c,AA,s))+I|0,I=f+R|0,I=L>>>0>>0?I+1|0:I,R=(O=Ig(X,o,j,_))+L|0,L=f+I|0,I=R,R=(R>>>0>>0?L+1:L)<<1|R>>>31,L=I<<1,R=(I=q>>26)+R|0,R=(L=L+(q=(67108863&q)<<6|QA>>>26)|0)>>>0>>0?R+1|0:R,O=I=L+16777216|0,q=R=I>>>0<16777216?R+1|0:R,i[A+12>>2]=L-(-33554432&I),I=Ig(g,r,V,h),R=f,L=Ig(j,_,j,_),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=Ig(C,E,AA,s),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=Ig($,B,IA,M),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(j=Ig(Z,Q,y,k))+I|0,I=f+R|0,I=L>>>0>>0?I+1|0:I,R=(j=Ig(R=X,o,X=H,AA=X>>31))+L|0,L=f+I|0,I=R,R=(R>>>0>>0?L+1:L)<<1|R>>>31,L=I<<1,R=(I=P>>25)+R|0,R=(L=L+(P=(33554431&P)<<7|z>>>25)|0)>>>0

>>0?R+1|0:R,j=I=L+33554432|0,P=R=I>>>0<33554432?R+1|0:R,i[A+32>>2]=L-(-67108864&I),R=q>>25,L=(q=(33554431&q)<<7|O>>>25)+(N-(I=-67108864&d)|0)|0,I=R+(J-((I>>>0>N>>>0)+m|0)|0)|0,I=L>>>0>>0?I+1|0:I,q=L,R=I,I=((67108863&(R=(L=L+33554432|0)>>>0<33554432?R+1|0:R))<<6|L>>>26)+(BA=iA-(-33554432&l)|0)|0,i[A+20>>2]=I,i[A+16>>2]=q-(-67108864&L),I=Ig(C,E,g,r),L=f,R=(q=Ig(t,n,T,U))+I|0,I=f+L|0,I=R>>>0>>0?I+1|0:I,L=(q=Ig(V,h,e,S))+R|0,R=f+I|0,R=L>>>0>>0?R+1|0:R,I=(q=Ig($,B,y,k))+L|0,L=f+R|0,L=I>>>0>>0?L+1|0:L,q=Ig(Z,Q,X,AA),R=f+L|0,R=((I=q+I|0)>>>0>>0?R+1:R)<<1|I>>>31,q=I<<1,R=R+(L=P>>26)|0,I=(I=(67108863&P)<<6|j>>>26)>>>0>(P=q+I|0)>>>0?R+1|0:R,I=(R=P+16777216|0)>>>0<16777216?I+1|0:I,i[A+36>>2]=P-(-33554432&R),q=oA-(-33554432&W)|0,P=b-(L=-67108864&u)|0,$=CA-((L>>>0>b>>>0)+x|0)|0,I=Ig((33554431&I)<<7|R>>>25,I>>25,19,0),L=f+$|0,P=R=I+P|0,I=I>>>0>R>>>0?L+1|0:L,I=((67108863&(I=(R=R+33554432|0)>>>0<33554432?I+1|0:I))<<6|R>>>26)+q|0,i[A+4>>2]=I,i[A>>2]=P-(-67108864&R)}function R(A,I){var g,C,B,Q,o,E,_,c,t,r,e,y,s,h,D,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0;l=Ig(C=(p=i[I+12>>2])<<1,E=C>>31,p,S=p>>31),x=f,u=(z=Ig(R=i[I+16>>2],_=R>>31,c=(v=i[I+8>>2])<<1,y=c>>31))+l|0,l=f+x|0,l=u>>>0>>0?l+1|0:l,x=(j=Ig(W=(t=i[I+20>>2])<<1,s=W>>31,z=(L=i[I+4>>2])<<1,B=z>>31))+u|0,u=f+l|0,u=x>>>0>>0?u+1|0:u,P=Ig(g=i[I+24>>2],r=g>>31,j=(T=i[I>>2])<<1,Q=j>>31),l=f+u|0,l=(x=P+x|0)>>>0

>>0?l+1|0:l,u=x,h=i[I+32>>2],x=Ig(X=a(h,19),e=X>>31,h,n=h>>31),l=f+l|0,l=(u=u+x|0)>>>0>>0?l+1|0:l,U=i[I+36>>2],x=Ig(P=a(U,38),o=P>>31,k=(D=i[I+28>>2])<<1,N=k>>31),I=f+l|0,Z=u=x+u|0,x=u>>>0>>0?I+1|0:I,I=Ig(z,B,R,_),l=f,u=Ig(c,y,p,S),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,q=Ig(t,F=t>>31,j,Q),u=f+l|0,u=(I=q+I|0)>>>0>>0?u+1|0:u,q=Ig(X,e,k,N),l=f+u|0,l=(I=q+I|0)>>>0>>0?l+1|0:l,u=Ig(P,o,g,r),l=f+l|0,CA=I=u+I|0,O=I>>>0>>0?l+1|0:l,l=Ig(z,B,C,E),u=f,G=I=v,v=Ig(I,V=I>>31,I,V),I=f+u|0,I=(l=v+l|0)>>>0>>0?I+1|0:I,u=(v=Ig(j,Q,R,_))+l|0,l=f+I|0,l=u>>>0>>0?l+1|0:l,I=(v=Ig(q=a(D,38),w=q>>31,D,M=D>>31))+u|0,u=f+l|0,u=I>>>0>>0?u+1|0:u,I=(l=I)+(v=Ig(X,e,I=g<<1,I>>31))|0,l=f+u|0,l=I>>>0>>0?l+1|0:l,u=I,I=Ig(P,o,W,s),l=f+l|0,b=u=u+I|0,H=l=I>>>0>u>>>0?l+1|0:l,I=l,Y=u=u+33554432|0,J=I=u>>>0<33554432?I+1|0:I,l=(l=I>>26)+O|0,CA=I=(u=(67108863&I)<<6|u>>>26)+CA|0,l=I>>>0>>0?l+1|0:l,d=I=I+16777216|0,l=(l=(u=I>>>0<16777216?l+1|0:l)>>25)+x|0,I=(I=(33554431&u)<<7|I>>>25)>>>0>(u=I+Z|0)>>>0?l+1|0:l,Z=l=u+33554432|0,v=I=l>>>0<33554432?I+1|0:I,i[A+24>>2]=u-(-67108864&l),I=Ig(j,Q,G,V),l=f,x=Ig(z,B,L,$=L>>31),u=f+l|0,u=(I=x+I|0)>>>0>>0?u+1|0:u,O=Ig(x=a(g,19),gA=x>>31,g,r),l=f+u|0,l=(I=O+I|0)>>>0>>0?l+1|0:l,u=(O=Ig(W,s,q,w))+I|0,I=f+l|0,I=u>>>0>>0?I+1|0:I,AA=Ig(X,e,O=R<<1,K=O>>31),l=f+I|0,l=(u=AA+u|0)>>>0>>0?l+1|0:l,I=u,u=Ig(P,o,C,E),l=f+l|0,IA=I=I+u|0,AA=I>>>0>>0?l+1|0:l,I=Ig(W,s,x,gA),l=f,L=Ig(j,Q,L,$),u=f+l|0,u=(I=L+I|0)>>>0>>0?u+1|0:u,L=Ig(R,_,q,w),l=f+u|0,l=(I=L+I|0)>>>0>>0?l+1|0:l,u=(L=Ig(X,e,C,E))+I|0,I=f+l|0,I=u>>>0>>0?I+1|0:I,L=Ig(P,o,G,V),l=f+I|0,BA=u=L+u|0,$=u>>>0>>0?l+1|0:l,u=Ig(I=a(t,38),I>>31,t,F),L=f,I=T,T=u,u=Ig(I,l=I>>31,I,l),l=f+L|0,l=(I=T+u|0)>>>0>>0?l+1|0:l,x=Ig(x,gA,O,K),u=f+l|0,u=(I=x+I|0)>>>0>>0?u+1|0:u,x=Ig(C,E,q,w),l=f+u|0,l=(I=x+I|0)>>>0>>0?l+1|0:l,u=(x=Ig(X,e,c,y))+I|0,I=f+l|0,I=u>>>0>>0?I+1|0:I,x=Ig(z,B,P,o),l=f+I|0,L=u=x+u|0,T=l=u>>>0>>0?l+1|0:l,gA=u=u+33554432|0,m=l=u>>>0<33554432?l+1|0:l,I=l>>26,l=(67108863&l)<<6|u>>>26,u=I+$|0,$=x=l+BA|0,l=l>>>0>x>>>0?u+1|0:u,BA=u=x+16777216|0,x=(33554431&(l=u>>>0<16777216?l+1|0:l))<<7|u>>>25,l=(l>>25)+AA|0,l=(u=x+IA|0)>>>0>>0?l+1|0:l,AA=I=u+33554432|0,x=l=I>>>0<33554432?l+1|0:l,i[A+8>>2]=u-(-67108864&I),I=Ig(c,y,t,F),l=f,u=Ig(R,_,C,E),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,u=Ig(z,B,g,r),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,u=Ig(j,Q,D,M),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,IA=(u=Ig(P,o,h,n))+I|0,I=f+l|0,u=(l=v>>26)+(u=u>>>0>IA>>>0?I+1|0:I)|0,Z=I=(v=(67108863&v)<<6|Z>>>26)+IA|0,l=I>>>0>>0?u+1|0:u,IA=I=I+16777216|0,v=l=I>>>0<16777216?l+1|0:l,i[A+28>>2]=Z-(-33554432&I),I=Ig(j,Q,p,S),u=f,l=(V=Ig(z,B,G,V))+I|0,I=f+u|0,I=l>>>0>>0?I+1|0:I,l=(q=Ig(g,r,q,w))+l|0,u=f+I|0,I=(X=Ig(X,e,W,s))+l|0,l=f+(l>>>0>>0?u+1|0:u)|0,l=I>>>0>>0?l+1|0:l,u=Ig(P,o,R,_),l=f+l|0,l=(l=(I=u+I|0)>>>0>>0?l+1|0:l)+(u=x>>26)|0,I=(u=x=(Z=I)+(I=(67108863&x)<<6|AA>>>26)|0)>>>0>>0?l+1|0:l,X=l=u+16777216|0,x=I=l>>>0<16777216?I+1|0:I,i[A+12>>2]=u-(-33554432&l),I=Ig(g,r,c,y),l=f,u=Ig(R,_,R,_),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,u=Ig(C,E,W,s),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,u=(R=Ig(z,B,k,N))+I|0,I=f+l|0,I=u>>>0>>0?I+1|0:I,l=(R=Ig(j,Q,h,n))+u|0,u=f+I|0,u=l>>>0>>0?u+1|0:u,I=(R=Ig(I=P,o,P=U,W=P>>31))+l|0,l=f+u|0,l=I>>>0>>0?l+1|0:l,u=I,l=(I=v>>25)+l|0,l=(u=u+(v=(33554431&v)<<7|IA>>>25)|0)>>>0>>0?l+1|0:l,R=I=u+33554432|0,v=l=I>>>0<33554432?l+1|0:l,i[A+32>>2]=u-(-67108864&I),l=x>>25,u=(x=(33554431&x)<<7|X>>>25)+(b-(I=-67108864&Y)|0)|0,I=l+(H-((I>>>0>b>>>0)+J|0)|0)|0,I=u>>>0>>0?I+1|0:I,x=u,I=((67108863&(l=(u=u+33554432|0)>>>0<33554432?I+1|0:I))<<6|u>>>26)+(q=CA-(-33554432&d)|0)|0,i[A+20>>2]=I,i[A+16>>2]=x-(-67108864&u),I=Ig(C,E,g,r),u=f,l=(x=Ig(t,F,O,K))+I|0,I=f+u|0,I=l>>>0>>0?I+1|0:I,u=(x=Ig(c,y,D,M))+l|0,l=f+I|0,l=u>>>0>>0?l+1|0:l,I=(x=Ig(z,B,h,n))+u|0,u=f+l|0,u=I>>>0>>0?u+1|0:u,x=(l=I)+(I=Ig(j,Q,P,W))|0,l=f+u|0,l=(I=I>>>0>x>>>0?l+1|0:l)+(l=v>>26)|0,I=(u=(v=(67108863&v)<<6|R>>>26)+x|0)>>>0>>0?l+1|0:l,I=(l=u+16777216|0)>>>0<16777216?I+1|0:I,i[A+36>>2]=u-(-33554432&l),v=$-(-33554432&BA)|0,x=L-(u=-67108864&gA)|0,z=T-((u>>>0>L>>>0)+m|0)|0,I=Ig((33554431&I)<<7|l>>>25,I>>25,19,0),l=f+z|0,I=I>>>0>(u=I+x|0)>>>0?l+1|0:l,I=((67108863&(I=(l=u+33554432|0)>>>0<33554432?I+1|0:I))<<6|l>>>26)+v|0,i[A+4>>2]=I,i[A>>2]=u-(-67108864&l)}function L(A,I){var g,C,B,Q,E,a,_,c,t,r,e=0,y=0,h=0;s=g=s-416|0,C=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,B=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,Q=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,E=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,h=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,a=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,_=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,c=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,A=i[I+92>>2],i[g+408>>2]=i[I+88>>2],i[g+412>>2]=A,A=i[I+84>>2],i[g+400>>2]=i[I+80>>2],i[g+404>>2]=A,A=i[I+76>>2],i[g+376>>2]=i[I+72>>2],i[g+380>>2]=A,e=i[4+(A=y=I- -64|0)>>2],i[g+368>>2]=i[A>>2],i[g+372>>2]=e,A=i[I+92>>2],i[g+360>>2]=i[I+88>>2],i[g+364>>2]=A,A=i[I+84>>2],i[g+352>>2]=i[I+80>>2],i[g+356>>2]=A,AI(A=g+384|0,g+368|0,g+352|0),e=i[g+396>>2],i[I+88>>2]=i[g+392>>2],i[I+92>>2]=e,e=i[g+388>>2],i[I+80>>2]=i[g+384>>2],i[I+84>>2]=e,e=i[I+60>>2],i[g+344>>2]=i[I+56>>2],i[g+348>>2]=e,e=i[I+52>>2],i[g+336>>2]=i[I+48>>2],i[g+340>>2]=e,e=i[I+76>>2],i[g+328>>2]=i[I+72>>2],i[g+332>>2]=e,e=i[y+4>>2],i[g+320>>2]=i[y>>2],i[g+324>>2]=e,AI(A,g+336|0,g+320|0),e=i[g+396>>2],i[I+72>>2]=i[g+392>>2],i[I+76>>2]=e,e=i[g+388>>2],i[y>>2]=i[g+384>>2],i[y+4>>2]=e,e=i[I+44>>2],i[g+312>>2]=i[I+40>>2],i[g+316>>2]=e,e=i[I+36>>2],i[g+304>>2]=i[I+32>>2],i[g+308>>2]=e,e=i[I+60>>2],i[g+296>>2]=i[I+56>>2],i[g+300>>2]=e,e=i[I+52>>2],i[g+288>>2]=i[I+48>>2],i[g+292>>2]=e,AI(A,g+304|0,g+288|0),e=i[g+396>>2],i[I+56>>2]=i[g+392>>2],i[I+60>>2]=e,e=i[g+388>>2],i[I+48>>2]=i[g+384>>2],i[I+52>>2]=e,e=i[I+28>>2],i[g+280>>2]=i[I+24>>2],i[g+284>>2]=e,e=i[I+20>>2],i[g+272>>2]=i[I+16>>2],i[g+276>>2]=e,e=i[I+44>>2],i[g+264>>2]=i[I+40>>2],i[g+268>>2]=e,e=i[I+36>>2],i[g+256>>2]=i[I+32>>2],i[g+260>>2]=e,AI(A,g+272|0,g+256|0),e=i[g+396>>2],i[I+40>>2]=i[g+392>>2],i[I+44>>2]=e,e=i[g+388>>2],i[I+32>>2]=i[g+384>>2],i[I+36>>2]=e,e=i[I+12>>2],i[g+248>>2]=i[I+8>>2],i[g+252>>2]=e,e=i[I+4>>2],i[g+240>>2]=i[I>>2],i[g+244>>2]=e,e=i[I+28>>2],i[g+232>>2]=i[I+24>>2],i[g+236>>2]=e,e=i[I+20>>2],i[g+224>>2]=i[I+16>>2],i[g+228>>2]=e,AI(A,g+240|0,g+224|0),e=i[g+396>>2],i[I+24>>2]=i[g+392>>2],i[I+28>>2]=e,e=i[g+388>>2],i[I+16>>2]=i[g+384>>2],i[I+20>>2]=e,e=i[g+412>>2],i[g+216>>2]=i[g+408>>2],i[g+220>>2]=e,e=i[g+404>>2],i[g+208>>2]=i[g+400>>2],i[g+212>>2]=e,e=i[I+12>>2],i[g+200>>2]=i[I+8>>2],i[g+204>>2]=e,e=i[I+4>>2],i[g+192>>2]=i[I>>2],i[g+196>>2]=e,AI(A,g+208|0,g+192|0),e=i[g+384>>2],t=i[g+388>>2],r=i[g+392>>2],i[I+12>>2]=i[g+396>>2]^_,i[I+8>>2]=a^r,i[I+4>>2]=h^t,i[I>>2]=e^c,h=i[I+92>>2],i[g+408>>2]=i[I+88>>2],i[g+412>>2]=h,h=i[I+84>>2],i[g+400>>2]=i[I+80>>2],i[g+404>>2]=h,h=i[I+76>>2],i[g+184>>2]=i[I+72>>2],i[g+188>>2]=h,h=i[y+4>>2],i[g+176>>2]=i[y>>2],i[g+180>>2]=h,h=i[I+92>>2],i[g+168>>2]=i[I+88>>2],i[g+172>>2]=h,h=i[I+84>>2],i[g+160>>2]=i[I+80>>2],i[g+164>>2]=h,AI(A,g+176|0,g+160|0),h=i[g+396>>2],i[I+88>>2]=i[g+392>>2],i[I+92>>2]=h,h=i[g+388>>2],i[I+80>>2]=i[g+384>>2],i[I+84>>2]=h,h=i[I+60>>2],i[g+152>>2]=i[I+56>>2],i[g+156>>2]=h,h=i[I+52>>2],i[g+144>>2]=i[I+48>>2],i[g+148>>2]=h,h=i[I+76>>2],i[g+136>>2]=i[I+72>>2],i[g+140>>2]=h,h=i[y+4>>2],i[g+128>>2]=i[y>>2],i[g+132>>2]=h,AI(A,g+144|0,g+128|0),h=i[g+396>>2],i[I+72>>2]=i[g+392>>2],i[I+76>>2]=h,h=i[g+388>>2],i[y>>2]=i[g+384>>2],i[y+4>>2]=h,y=i[I+44>>2],i[g+120>>2]=i[I+40>>2],i[g+124>>2]=y,y=i[I+36>>2],i[g+112>>2]=i[I+32>>2],i[g+116>>2]=y,y=i[I+60>>2],i[g+104>>2]=i[I+56>>2],i[g+108>>2]=y,y=i[I+52>>2],i[g+96>>2]=i[I+48>>2],i[g+100>>2]=y,AI(A,g+112|0,g+96|0),y=i[g+396>>2],i[I+56>>2]=i[g+392>>2],i[I+60>>2]=y,y=i[g+388>>2],i[I+48>>2]=i[g+384>>2],i[I+52>>2]=y,y=i[I+28>>2],i[g+88>>2]=i[I+24>>2],i[g+92>>2]=y,y=i[I+20>>2],i[g+80>>2]=i[I+16>>2],i[g+84>>2]=y,y=i[I+44>>2],i[g+72>>2]=i[I+40>>2],i[g+76>>2]=y,y=i[I+36>>2],i[g+64>>2]=i[I+32>>2],i[g+68>>2]=y,AI(A,g+80|0,g- -64|0),y=i[g+396>>2],i[I+40>>2]=i[g+392>>2],i[I+44>>2]=y,y=i[g+388>>2],i[I+32>>2]=i[g+384>>2],i[I+36>>2]=y,y=i[I+12>>2],i[g+56>>2]=i[I+8>>2],i[g+60>>2]=y,y=i[I+4>>2],i[g+48>>2]=i[I>>2],i[g+52>>2]=y,y=i[I+28>>2],i[g+40>>2]=i[I+24>>2],i[g+44>>2]=y,y=i[I+20>>2],i[g+32>>2]=i[I+16>>2],i[g+36>>2]=y,AI(A,g+48|0,g+32|0),y=i[g+396>>2],i[I+24>>2]=i[g+392>>2],i[I+28>>2]=y,y=i[g+388>>2],i[I+16>>2]=i[g+384>>2],i[I+20>>2]=y,y=i[g+412>>2],i[g+24>>2]=i[g+408>>2],i[g+28>>2]=y,y=i[g+404>>2],i[g+16>>2]=i[g+400>>2],i[g+20>>2]=y,y=i[I+12>>2],i[g+8>>2]=i[I+8>>2],i[g+12>>2]=y,y=i[I+4>>2],i[g>>2]=i[I>>2],i[g+4>>2]=y,AI(A,g+16|0,g),A=i[g+384>>2],y=i[g+388>>2],h=i[g+392>>2],i[I+12>>2]=i[g+396>>2]^E,i[I+8>>2]=h^Q,i[I+4>>2]=y^B,i[I>>2]=A^C,s=g+416|0}function P(A,I,g){var C,B,Q,E,a,_,c,t,r,e,y,h,D,f,p=0,w=0,n=0;for(s=C=s-288|0,y=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,h=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,D=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,c=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,t=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,r=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,f=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=g+112|0,A=33620224^(e=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24),i[I>>2]=A,i[(a=g+96|0)>>2]=1427652059^e,i[(_=g+80|0)>>2]=A,w=e^f,i[(A=g- -64|0)>>2]=w,i[g+56>>2]=1110511904,i[g+60>>2]=-584534669,i[(B=g+48|0)>>2]=1427652059,i[B+4>>2]=-248528275,i[g+40>>2]=1496785429,i[g+44>>2]=1652156816,i[(Q=g+32|0)>>2]=33620224,i[Q+4>>2]=218629379,i[g+24>>2]=1110511904,i[g+28>>2]=-584534669,i[(E=g+16|0)>>2]=1427652059,i[E+4>>2]=-248528275,i[g>>2]=w,w=1652156816^r,i[g+124>>2]=w,n=1496785429^t,i[g+120>>2]=n,p=218629379^c,i[g+116>>2]=p,i[g+108>>2]=-584534669^r,i[g+104>>2]=1110511904^t,i[g+100>>2]=-248528275^c,i[g+92>>2]=w,i[g+88>>2]=n,i[g+84>>2]=p,w=r^D,i[g+76>>2]=w,n=t^h,i[g+72>>2]=n,p=c^y,i[g+68>>2]=p,i[g+12>>2]=w,i[g+8>>2]=n,i[g+4>>2]=p,n=0;w=i[I+12>>2],i[C+280>>2]=i[I+8>>2],i[C+284>>2]=w,w=i[I+4>>2],i[C+272>>2]=i[I>>2],i[C+276>>2]=w,w=i[a+12>>2],i[C+248>>2]=i[a+8>>2],i[C+252>>2]=w,w=i[a+4>>2],i[C+240>>2]=i[a>>2],i[C+244>>2]=w,w=i[I+12>>2],i[C+232>>2]=i[I+8>>2],i[C+236>>2]=w,w=i[I+4>>2],i[C+224>>2]=i[I>>2],i[C+228>>2]=w,AI(w=C+256|0,C+240|0,C+224|0),p=i[C+268>>2],i[I+8>>2]=i[C+264>>2],i[I+12>>2]=p,p=i[C+260>>2],i[I>>2]=i[C+256>>2],i[I+4>>2]=p,p=i[_+12>>2],i[C+216>>2]=i[_+8>>2],i[C+220>>2]=p,p=i[_+4>>2],i[C+208>>2]=i[_>>2],i[C+212>>2]=p,p=i[a+12>>2],i[C+200>>2]=i[a+8>>2],i[C+204>>2]=p,p=i[a+4>>2],i[C+192>>2]=i[a>>2],i[C+196>>2]=p,AI(w,C+208|0,C+192|0),p=i[C+268>>2],i[a+8>>2]=i[C+264>>2],i[a+12>>2]=p,p=i[C+260>>2],i[a>>2]=i[C+256>>2],i[a+4>>2]=p,p=i[A+12>>2],i[C+184>>2]=i[A+8>>2],i[C+188>>2]=p,p=i[A+4>>2],i[C+176>>2]=i[A>>2],i[C+180>>2]=p,p=i[_+12>>2],i[C+168>>2]=i[_+8>>2],i[C+172>>2]=p,p=i[_+4>>2],i[C+160>>2]=i[_>>2],i[C+164>>2]=p,AI(w,C+176|0,C+160|0),p=i[C+268>>2],i[_+8>>2]=i[C+264>>2],i[_+12>>2]=p,p=i[C+260>>2],i[_>>2]=i[C+256>>2],i[_+4>>2]=p,p=i[B+12>>2],i[C+152>>2]=i[B+8>>2],i[C+156>>2]=p,p=i[B+4>>2],i[C+144>>2]=i[B>>2],i[C+148>>2]=p,p=i[A+12>>2],i[C+136>>2]=i[A+8>>2],i[C+140>>2]=p,p=i[A+4>>2],i[C+128>>2]=i[A>>2],i[C+132>>2]=p,AI(w,C+144|0,C+128|0),p=i[C+268>>2],i[A+8>>2]=i[C+264>>2],i[A+12>>2]=p,p=i[C+260>>2],i[A>>2]=i[C+256>>2],i[A+4>>2]=p,p=i[Q+12>>2],i[C+120>>2]=i[Q+8>>2],i[C+124>>2]=p,p=i[Q+4>>2],i[C+112>>2]=i[Q>>2],i[C+116>>2]=p,p=i[B+12>>2],i[C+104>>2]=i[B+8>>2],i[C+108>>2]=p,p=i[B+4>>2],i[C+96>>2]=i[B>>2],i[C+100>>2]=p,AI(w,C+112|0,C+96|0),p=i[C+268>>2],i[B+8>>2]=i[C+264>>2],i[B+12>>2]=p,p=i[C+260>>2],i[B>>2]=i[C+256>>2],i[B+4>>2]=p,p=i[E+12>>2],i[C+88>>2]=i[E+8>>2],i[C+92>>2]=p,p=i[E+4>>2],i[C+80>>2]=i[E>>2],i[C+84>>2]=p,p=i[Q+12>>2],i[C+72>>2]=i[Q+8>>2],i[C+76>>2]=p,p=i[Q+4>>2],i[C+64>>2]=i[Q>>2],i[C+68>>2]=p,AI(w,C+80|0,C- -64|0),p=i[C+268>>2],i[Q+8>>2]=i[C+264>>2],i[Q+12>>2]=p,p=i[C+260>>2],i[Q>>2]=i[C+256>>2],i[Q+4>>2]=p,p=i[g+12>>2],i[C+56>>2]=i[g+8>>2],i[C+60>>2]=p,p=i[g+4>>2],i[C+48>>2]=i[g>>2],i[C+52>>2]=p,p=i[E+12>>2],i[C+40>>2]=i[E+8>>2],i[C+44>>2]=p,p=i[E+4>>2],i[C+32>>2]=i[E>>2],i[C+36>>2]=p,AI(w,C+48|0,C+32|0),p=i[C+268>>2],i[E+8>>2]=i[C+264>>2],i[E+12>>2]=p,p=i[C+260>>2],i[E>>2]=i[C+256>>2],i[E+4>>2]=p,p=i[C+284>>2],i[C+24>>2]=i[C+280>>2],i[C+28>>2]=p,p=i[C+276>>2],i[C+16>>2]=i[C+272>>2],i[C+20>>2]=p,p=i[g+12>>2],i[C+8>>2]=i[g+8>>2],i[C+12>>2]=p,p=i[g+4>>2],i[C>>2]=i[g>>2],i[C+4>>2]=p,AI(w,C+16|0,C),w=i[C+268>>2],i[g+8>>2]=i[C+264>>2],i[g+12>>2]=w,w=i[C+260>>2],i[g>>2]=i[C+256>>2],i[g+4>>2]=w,i[g+12>>2]=(o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24)^D,i[g+8>>2]=(o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24)^h,i[g+4>>2]=(o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24)^y,i[g>>2]=(o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24)^f,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^e,i[g+68>>2]=(o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24)^c,i[g+72>>2]=(o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24)^t,i[g+76>>2]=(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24)^r,10!=(0|(n=n+1|0)););s=C+288|0}function q(A,I){var g,B=0,Q=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0;if(s=g=s-48|0,!((B=nI(A))||(B=-26,I-3>>>0<4294967294))){_=i[A+44>>2],B=i[A+48>>2],i[g+4>>2]=0,Q=i[A+40>>2],i[g+32>>2]=B,i[g+16>>2]=-1,i[g+12>>2]=Q,B=((e=(Q=B<<3)>>>0<_>>>0?_:Q)>>>0)/((_=B<<2)>>>0)|0,i[g+24>>2]=B,i[g+28>>2]=B<<2,i[g+20>>2]=a(B,_),B=i[A+52>>2],i[g+40>>2]=I,i[g+36>>2]=B,h=I=s,s=B=I-1152&-64,I=-25;A:{if(!(!(_=g+4|0)|!A)&&(Q=K(i[_+20>>2]<<3),i[_+4>>2]=Q,I=-22,Q)){I:{if((I=i[_+16>>2])&&1024==(((Q=I<<10)>>>0)/(I>>>0)|0)&&(I=K(12),i[_>>2]=I,I)){if(i[I>>2]=0,i[I+4>>2]=0,I=tI(B+128|0,Q),i[9404]=I,I)i[B+128>>2]=0;else if(I=i[B+128>>2])break I;BA(i[_>>2]),i[_>>2]=0}WI(_,i[A+56>>2]),s=h,I=-22;break A}if(i[i[_>>2]>>2]=I,i[i[_>>2]+4>>2]=I,i[i[_>>2]+8>>2]=Q,D=i[_+36>>2],eA(I=B+128|0,0,0,64),i[B+124>>2]=i[A+48>>2],WA(I,Q=B+124|0,4,0),i[B+124>>2]=i[A+4>>2],WA(I,Q,4,0),i[B+124>>2]=i[A+44>>2],WA(I,Q,4,0),i[B+124>>2]=i[A+40>>2],WA(I,Q,4,0),i[B+124>>2]=19,WA(I,Q,4,0),i[B+124>>2]=D,WA(I,Q,4,0),i[B+124>>2]=i[A+12>>2],WA(I,Q,4,0),(Q=i[A+8>>2])&&(WA(I,Q,i[A+12>>2],0),1&C[A+56|0]&&(XC(i[A+8>>2],i[A+12>>2]),i[A+12>>2]=0)),i[B+124>>2]=i[A+20>>2],WA(I=B+128|0,B+124|0,4,0),(Q=i[A+16>>2])&&WA(I,Q,i[A+20>>2],0),i[B+124>>2]=i[A+28>>2],WA(I=B+128|0,B+124|0,4,0),(Q=i[A+24>>2])&&(WA(I,Q,i[A+28>>2],0),2&o[A+56|0]&&(XC(i[A+24>>2],i[A+28>>2]),i[A+28>>2]=0)),i[B+124>>2]=i[A+36>>2],WA(I=B+128|0,B+124|0,4,0),(Q=i[A+32>>2])&&WA(I,Q,i[A+36>>2],0),Hg(B+128|0,B+48|0,64),XC(B+112|0,8),i[_+28>>2])for(Q=0;;){for(i[B+112>>2]=0,i[B+116>>2]=Q,aA(B+128|0,1024,B+48|0,72),D=i[i[_>>2]+4>>2]+(a(i[_+24>>2],Q)<<10)|0,I=0;c=(r=I<<3)+D|0,t=i[4+(y=(e=B+128|0)+r|0)>>2],i[c>>2]=i[y>>2],i[c+4>>2]=t,y=(c=8|r)+D|0,t=i[4+(c=c+e|0)>>2],i[y>>2]=i[c>>2],i[y+4>>2]=t,y=(c=16|r)+D|0,t=i[4+(c=c+e|0)>>2],i[y>>2]=i[c>>2],i[y+4>>2]=t,c=(r|=24)+D|0,y=i[4+(r=r+e|0)>>2],i[c>>2]=i[r>>2],i[c+4>>2]=y,128!=(0|(I=I+4|0)););for(i[B+112>>2]=1,aA(e,1024,B+48|0,72),D=1024+(i[i[_>>2]+4>>2]+(a(i[_+24>>2],Q)<<10)|0)|0,I=0;c=(r=I<<3)+D|0,t=i[4+(y=(e=B+128|0)+r|0)>>2],i[c>>2]=i[y>>2],i[c+4>>2]=t,y=(c=8|r)+D|0,t=i[4+(c=c+e|0)>>2],i[y>>2]=i[c>>2],i[y+4>>2]=t,y=(c=16|r)+D|0,t=i[4+(c=c+e|0)>>2],i[y>>2]=i[c>>2],i[y+4>>2]=t,c=(r|=24)+D|0,e=i[4+(r=r+e|0)>>2],i[c>>2]=i[r>>2],i[c+4>>2]=e,128!=(0|(I=I+4|0)););if(!((Q=Q+1|0)>>>0>2]))break}XC(B+128|0,1024),XC(B+48|0,72),I=0}s=h}if(B=I,!I){if(i[g+12>>2])for(;;){if(s=I=s-80|0,!(!(_=g+4|0)|!i[_+28>>2])){for(C[I+72|0]=0,i[I+64>>2]=p,B=0;i[I+76>>2]=0,Q=i[I+76>>2],i[I+56>>2]=i[I+72>>2],i[I+60>>2]=Q,i[I+68>>2]=B,Q=i[I+68>>2],i[I+48>>2]=i[I+64>>2],i[I+52>>2]=Q,F(_,I+48|0),(B=B+1|0)>>>0<(Q=i[_+28>>2])>>>0;);if(C[I+72|0]=1,Q){for(B=0;i[I+76>>2]=0,Q=i[I+76>>2],i[I+40>>2]=i[I+72>>2],i[I+44>>2]=Q,i[I+68>>2]=B,Q=i[I+68>>2],i[I+32>>2]=i[I+64>>2],i[I+36>>2]=Q,F(_,I+32|0),(B=B+1|0)>>>0<(Q=i[_+28>>2])>>>0;);if(C[I+72|0]=2,Q){for(B=0;i[I+76>>2]=0,Q=i[I+76>>2],i[I+24>>2]=i[I+72>>2],i[I+28>>2]=Q,i[I+68>>2]=B,Q=i[I+68>>2],i[I+16>>2]=i[I+64>>2],i[I+20>>2]=Q,F(_,I+16|0),(B=B+1|0)>>>0<(Q=i[_+28>>2])>>>0;);if(C[I+72|0]=3,Q)for(B=0;i[I+76>>2]=0,Q=i[I+76>>2],i[I+8>>2]=i[I+72>>2],i[I+12>>2]=Q,i[I+68>>2]=B,Q=i[I+68>>2],i[I>>2]=i[I+64>>2],i[I+4>>2]=Q,F(_,I),(B=B+1|0)>>>0>2];);}}}if(s=I+80|0,!((p=p+1|0)>>>0>2]))break}if(s=I=s-2048|0,!(!A|!(B=g+4|0))){if(p=i[B+24>>2],Ng(I+1024|0,c=(i[i[B>>2]+4>>2]+(p<<10)|0)-1024|0,1024),(y=i[B+28>>2])>>>0>=2)for(D=1;;){for(_=c+(a(D,p)<<10)|0,r=0;t=i[(h=(Q=r<<3)+(e=I+1024|0)|0)>>2],w=i[(f=Q+_|0)>>2],f=i[h+4>>2]^i[f+4>>2],i[h>>2]=t^w,i[h+4>>2]=f,f=i[(h=(t=8|Q)+e|0)>>2],w=i[(t=_+t|0)>>2],t=i[h+4>>2]^i[t+4>>2],i[h>>2]=f^w,i[h+4>>2]=t,f=i[(h=(t=16|Q)+e|0)>>2],w=i[(t=_+t|0)>>2],t=i[h+4>>2]^i[t+4>>2],i[h>>2]=f^w,i[h+4>>2]=t,h=i[(Q=(h=e)+(e=24|Q)|0)>>2],t=i[(e=_+e|0)>>2],e=i[Q+4>>2]^i[e+4>>2],i[Q>>2]=t^h,i[Q+4>>2]=e,128!=(0|(r=r+4|0)););if((0|y)==(0|(D=D+1|0)))break}_=Ng(I,I+1024|0,1024),aA(i[A>>2],i[A+4>>2],_,1024),XC(_+1024|0,1024),XC(_,1024),WI(B,i[A+56>>2])}s=I+2048|0,B=0}}return s=g+48|0,B}function z(A,I,g,B,Q){var E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0;for(E=s+-64|0,a=i[A+60>>2],_=i[A+56>>2],P=i[A+52>>2],L=i[A+48>>2],c=i[A+44>>2],t=i[A+40>>2],r=i[A+36>>2],e=i[A+32>>2],y=i[A+28>>2],h=i[A+24>>2],D=i[A+20>>2],f=i[A+16>>2],p=i[A+12>>2],w=i[A+8>>2],n=i[A+4>>2],k=i[A>>2];;){if(!Q&B>>>0>63|Q)F=g;else{if(i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,i[E+24>>2]=0,i[E+28>>2]=0,i[E+16>>2]=0,i[E+20>>2]=0,i[E+8>>2]=0,i[E+12>>2]=0,i[E>>2]=0,i[E+4>>2]=0,N=0,B|Q)for(;C[N+E|0]=o[I+N|0],!Q&(N=N+1|0)>>>0>>0|Q;);I=F=E,O=g}for(q=20,S=k,Y=n,J=w,l=p,N=f,g=D,M=h,K=y,U=e,x=r,d=t,G=a,v=_,u=P,m=L,b=c;H=N,S=Lg((N=S+N|0)^m,16),H=m=Lg(H^(U=S+U|0),12),m=Lg((R=N+m|0)^S,8),N=Lg(H^(U=m+U|0),7),G=Lg((S=K+l|0)^G,16),K=Lg((b=G+b|0)^K,12),l=Lg((J=M+J|0)^v,16),M=Lg((d=l+d|0)^M,12),v=(z=S+K|0)+N|0,j=Lg((J=M+J|0)^l,8),S=Lg(v^j,16),l=Lg((Y=g+Y|0)^u,16),g=Lg((x=l+x|0)^g,12),H=N,u=Lg((Y=g+Y|0)^l,8),H=Lg(H^(N=(X=u+x|0)+S|0),12),v=Lg(S^(l=H+v|0),8),N=Lg((x=v+N|0)^H,7),H=U,U=J,S=Lg(G^z,8),J=Lg((G=S+b|0)^K,7),u=Lg((U=U+J|0)^u,16),b=Lg((K=H+u|0)^J,12),u=Lg(u^(J=b+U|0),8),K=Lg((U=K+u|0)^b,7),b=G,G=Y,Y=Lg((d=d+j|0)^M,7),M=b+(m=Lg((G=G+Y|0)^m,16))|0,b=G,G=Lg(M^Y,12),m=Lg(m^(Y=b+G|0),8),M=Lg((b=M+m|0)^G,7),H=d,G=S,S=Lg(g^X,7),G=Lg(G^(d=S+R|0),16),R=Lg((g=H+G|0)^S,12),G=Lg(G^(S=R+d|0),8),g=Lg((d=g+G|0)^R,7),q=q-2|0;);if(q=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,R=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,z=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,j=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,X=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,H=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,W=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,V=o[I+32|0]|o[I+33|0]<<8|o[I+34|0]<<16|o[I+35|0]<<24,Z=o[I+36|0]|o[I+37|0]<<8|o[I+38|0]<<16|o[I+39|0]<<24,T=o[I+40|0]|o[I+41|0]<<8|o[I+42|0]<<16|o[I+43|0]<<24,$=o[I+44|0]|o[I+45|0]<<8|o[I+46|0]<<16|o[I+47|0]<<24,AA=o[I+48|0]|o[I+49|0]<<8|o[I+50|0]<<16|o[I+51|0]<<24,IA=o[I+52|0]|o[I+53|0]<<8|o[I+54|0]<<16|o[I+55|0]<<24,gA=o[I+56|0]|o[I+57|0]<<8|o[I+58|0]<<16|o[I+59|0]<<24,CA=o[I+60|0]|o[I+61|0]<<8|o[I+62|0]<<16|o[I+63|0]<<24,S=S+k^(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24),C[0|F]=S,C[F+1|0]=S>>>8,C[F+2|0]=S>>>16,C[F+3|0]=S>>>24,S=G+a^CA,C[F+60|0]=S,C[F+61|0]=S>>>8,C[F+62|0]=S>>>16,C[F+63|0]=S>>>24,S=v+_^gA,C[F+56|0]=S,C[F+57|0]=S>>>8,C[F+58|0]=S>>>16,C[F+59|0]=S>>>24,S=u+P^IA,C[F+52|0]=S,C[F+53|0]=S>>>8,C[F+54|0]=S>>>16,C[F+55|0]=S>>>24,S=m+L^AA,C[F+48|0]=S,C[F+49|0]=S>>>8,C[F+50|0]=S>>>16,C[F+51|0]=S>>>24,S=b+c^$,C[F+44|0]=S,C[F+45|0]=S>>>8,C[F+46|0]=S>>>16,C[F+47|0]=S>>>24,S=d+t^T,C[F+40|0]=S,C[F+41|0]=S>>>8,C[F+42|0]=S>>>16,C[F+43|0]=S>>>24,S=x+r^Z,C[F+36|0]=S,C[F+37|0]=S>>>8,C[F+38|0]=S>>>16,C[F+39|0]=S>>>24,S=U+e^V,C[F+32|0]=S,C[F+33|0]=S>>>8,C[F+34|0]=S>>>16,C[F+35|0]=S>>>24,K=K+y^W,C[F+28|0]=K,C[F+29|0]=K>>>8,C[F+30|0]=K>>>16,C[F+31|0]=K>>>24,M=H^M+h,C[F+24|0]=M,C[F+25|0]=M>>>8,C[F+26|0]=M>>>16,C[F+27|0]=M>>>24,g=X^g+D,C[F+20|0]=g,C[F+21|0]=g>>>8,C[F+22|0]=g>>>16,C[F+23|0]=g>>>24,g=j^N+f,C[F+16|0]=g,C[F+17|0]=g>>>8,C[F+18|0]=g>>>16,C[F+19|0]=g>>>24,g=z^l+p,C[F+12|0]=g,C[F+13|0]=g>>>8,C[F+14|0]=g>>>16,C[F+15|0]=g>>>24,g=R^J+w,C[F+8|0]=g,C[F+9|0]=g>>>8,C[F+10|0]=g>>>16,C[F+11|0]=g>>>24,g=q^Y+n,C[F+4|0]=g,C[F+5|0]=g>>>8,C[F+6|0]=g>>>16,C[F+7|0]=g>>>24,P=!(L=L+1|0)+P|0,!Q&B>>>0<=64){if(!(!(B|Q)|!Q&B>>>0>63|!!(0|Q)))for(N=0;C[N+O|0]=o[F+N|0],B>>>0>(N=N+1|0)>>>0;);i[A+52>>2]=P,i[A+48>>2]=L;break}I=I- -64|0,g=F- -64|0,Q=Q-1|0,Q=(B=B+-64|0)>>>0<4294967232?Q+1|0:Q}}function j(A,I){I|=0;var g,B=0,Q=0,o=0,E=0,a=0,_=0,c=0;return s=g=s-704|0,B=80+((Q=i[72+(A|=0)>>2]>>>3&127)+A|0)|0,Q>>>0>=112?(Ng(B,35056,128-Q|0),k(A,Q=A+80|0,g,g+640|0),bg(Q,0,112)):Ng(B,35056,112-Q|0),_=(o=i[A+64>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+68>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[A+192|0]=B,C[A+193|0]=B>>>8,C[A+194|0]=B>>>16,C[A+195|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[A+196|0]=Q,C[A+197|0]=Q>>>8,C[A+198|0]=Q>>>16,C[A+199|0]=Q>>>24,_=(o=i[A+72>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+76>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[A+200|0]=B,C[A+201|0]=B>>>8,C[A+202|0]=B>>>16,C[A+203|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[A+204|0]=Q,C[A+205|0]=Q>>>8,C[A+206|0]=Q>>>16,C[A+207|0]=Q>>>24,k(A,A+80|0,g,g+640|0),_=(o=i[A>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+4>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[0|I]=B,C[I+1|0]=B>>>8,C[I+2|0]=B>>>16,C[I+3|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+4|0]=Q,C[I+5|0]=Q>>>8,C[I+6|0]=Q>>>16,C[I+7|0]=Q>>>24,_=(o=i[A+8>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+12>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+8|0]=B,C[I+9|0]=B>>>8,C[I+10|0]=B>>>16,C[I+11|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+12|0]=Q,C[I+13|0]=Q>>>8,C[I+14|0]=Q>>>16,C[I+15|0]=Q>>>24,_=(o=i[A+16>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+20>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+16|0]=B,C[I+17|0]=B>>>8,C[I+18|0]=B>>>16,C[I+19|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+20|0]=Q,C[I+21|0]=Q>>>8,C[I+22|0]=Q>>>16,C[I+23|0]=Q>>>24,_=(o=i[A+24>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+28>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+24|0]=B,C[I+25|0]=B>>>8,C[I+26|0]=B>>>16,C[I+27|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+28|0]=Q,C[I+29|0]=Q>>>8,C[I+30|0]=Q>>>16,C[I+31|0]=Q>>>24,_=(o=i[A+32>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+36>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+32|0]=B,C[I+33|0]=B>>>8,C[I+34|0]=B>>>16,C[I+35|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+36|0]=Q,C[I+37|0]=Q>>>8,C[I+38|0]=Q>>>16,C[I+39|0]=Q>>>24,_=(o=i[A+40>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+44>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+40|0]=B,C[I+41|0]=B>>>8,C[I+42|0]=B>>>16,C[I+43|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+44|0]=Q,C[I+45|0]=Q>>>8,C[I+46|0]=Q>>>16,C[I+47|0]=Q>>>24,_=(o=i[A+48>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+52>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+48|0]=B,C[I+49|0]=B>>>8,C[I+50|0]=B>>>16,C[I+51|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+52|0]=Q,C[I+53|0]=Q>>>8,C[I+54|0]=Q>>>16,C[I+55|0]=Q>>>24,_=(o=i[A+56>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,B=I,c=E<<24,E=(a=-16777216&o)>>>24|0,I=c|a<<8|-16777216&((255&(I=i[A+60>>2]))<<24|o>>>8)|16711680&((16777215&I)<<8|o>>>24)|I>>>8&65280|I>>>24,C[B+56|0]=I,C[B+57|0]=I>>>8,C[B+58|0]=I>>>16,C[B+59|0]=I>>>24,I=Q|E|_,I|=Q=0,C[B+60|0]=I,C[B+61|0]=I>>>8,C[B+62|0]=I>>>16,C[B+63|0]=I>>>24,XC(g,704),XC(A,208),s=g+704|0,0}function X(A,I,g){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S,N,G=0;s=B=s-224|0,c=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,t=o[0|(G=g- -64|0)]|o[G+1|0]<<8|o[G+2|0]<<16|o[G+3|0]<<24,r=o[g+80|0]|o[g+81|0]<<8|o[g+82|0]<<16|o[g+83|0]<<24,e=o[g+32|0]|o[g+33|0]<<8|o[g+34|0]<<16|o[g+35|0]<<24,y=o[g+48|0]|o[g+49|0]<<8|o[g+50|0]<<16|o[g+51|0]<<24,Q=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,h=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,D=o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24,f=o[g+84|0]|o[g+85|0]<<8|o[g+86|0]<<16|o[g+87|0]<<24,p=o[g+36|0]|o[g+37|0]<<8|o[g+38|0]<<16|o[g+39|0]<<24,w=o[g+52|0]|o[g+53|0]<<8|o[g+54|0]<<16|o[g+55|0]<<24,E=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,n=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,k=o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24,F=o[g+88|0]|o[g+89|0]<<8|o[g+90|0]<<16|o[g+91|0]<<24,S=o[g+40|0]|o[g+41|0]<<8|o[g+42|0]<<16|o[g+43|0]<<24,N=o[g+56|0]|o[g+57|0]<<8|o[g+58|0]<<16|o[g+59|0]<<24,a=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=(_=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)^(o[g+44|0]|o[g+45|0]<<8|o[g+46|0]<<16|o[g+47|0]<<24)&(o[g+60|0]|o[g+61|0]<<8|o[g+62|0]<<16|o[g+63|0]<<24)^(o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24)^(o[g+92|0]|o[g+93|0]<<8|o[g+94|0]<<16|o[g+95|0]<<24)^(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24),C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=S&N^k^F^n^E,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=p&w^D^f^h^Q,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=e&y^c^t^r^a,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,A=i[g+92>>2],i[B+216>>2]=i[g+88>>2],i[B+220>>2]=A,A=i[g+84>>2],i[B+208>>2]=i[g+80>>2],i[B+212>>2]=A,A=i[g+76>>2],i[B+184>>2]=i[g+72>>2],i[B+188>>2]=A,A=i[G+4>>2],i[B+176>>2]=i[G>>2],i[B+180>>2]=A,A=i[g+92>>2],i[B+168>>2]=i[g+88>>2],i[B+172>>2]=A,A=i[g+84>>2],i[B+160>>2]=i[g+80>>2],i[B+164>>2]=A,AI(A=B+192|0,B+176|0,B+160|0),I=i[B+204>>2],i[g+88>>2]=i[B+200>>2],i[g+92>>2]=I,I=i[B+196>>2],i[g+80>>2]=i[B+192>>2],i[g+84>>2]=I,I=i[g+60>>2],i[B+152>>2]=i[g+56>>2],i[B+156>>2]=I,I=i[g+52>>2],i[B+144>>2]=i[g+48>>2],i[B+148>>2]=I,I=i[g+76>>2],i[B+136>>2]=i[g+72>>2],i[B+140>>2]=I,I=i[G+4>>2],i[B+128>>2]=i[G>>2],i[B+132>>2]=I,AI(A,B+144|0,B+128|0),I=i[B+204>>2],i[g+72>>2]=i[B+200>>2],i[g+76>>2]=I,I=i[B+196>>2],i[G>>2]=i[B+192>>2],i[G+4>>2]=I,I=i[g+44>>2],i[B+120>>2]=i[g+40>>2],i[B+124>>2]=I,I=i[g+36>>2],i[B+112>>2]=i[g+32>>2],i[B+116>>2]=I,I=i[g+60>>2],i[B+104>>2]=i[g+56>>2],i[B+108>>2]=I,I=i[g+52>>2],i[B+96>>2]=i[g+48>>2],i[B+100>>2]=I,AI(A,B+112|0,B+96|0),I=i[B+204>>2],i[g+56>>2]=i[B+200>>2],i[g+60>>2]=I,I=i[B+196>>2],i[g+48>>2]=i[B+192>>2],i[g+52>>2]=I,I=i[g+28>>2],i[B+88>>2]=i[g+24>>2],i[B+92>>2]=I,I=i[g+20>>2],i[B+80>>2]=i[g+16>>2],i[B+84>>2]=I,I=i[g+44>>2],i[B+72>>2]=i[g+40>>2],i[B+76>>2]=I,I=i[g+36>>2],i[B+64>>2]=i[g+32>>2],i[B+68>>2]=I,AI(A,B+80|0,B- -64|0),I=i[B+204>>2],i[g+40>>2]=i[B+200>>2],i[g+44>>2]=I,I=i[B+196>>2],i[g+32>>2]=i[B+192>>2],i[g+36>>2]=I,I=i[g+12>>2],i[B+56>>2]=i[g+8>>2],i[B+60>>2]=I,I=i[g+4>>2],i[B+48>>2]=i[g>>2],i[B+52>>2]=I,I=i[g+28>>2],i[B+40>>2]=i[g+24>>2],i[B+44>>2]=I,I=i[g+20>>2],i[B+32>>2]=i[g+16>>2],i[B+36>>2]=I,AI(A,B+48|0,B+32|0),I=i[B+204>>2],i[g+24>>2]=i[B+200>>2],i[g+28>>2]=I,I=i[B+196>>2],i[g+16>>2]=i[B+192>>2],i[g+20>>2]=I,I=i[B+220>>2],i[B+24>>2]=i[B+216>>2],i[B+28>>2]=I,I=i[B+212>>2],i[B+16>>2]=i[B+208>>2],i[B+20>>2]=I,I=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=I,I=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=I,AI(A,B+16|0,B),A=i[B+192>>2],I=i[B+196>>2],G=i[B+200>>2],i[g+12>>2]=_^i[B+204>>2],i[g+8>>2]=G^E,i[g+4>>2]=I^Q,i[g>>2]=A^a,s=B+224|0}function O(A,I,g){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n=0,k=0,F=0,S=0,N=0;s=B=s-224|0,F=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,k=o[0|(n=g- -64|0)]|o[n+1|0]<<8|o[n+2|0]<<16|o[n+3|0]<<24,Q=o[g+80|0]|o[g+81|0]<<8|o[g+82|0]<<16|o[g+83|0]<<24,E=o[g+32|0]|o[g+33|0]<<8|o[g+34|0]<<16|o[g+35|0]<<24,a=o[g+48|0]|o[g+49|0]<<8|o[g+50|0]<<16|o[g+51|0]<<24,S=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,_=o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24,c=o[g+84|0]|o[g+85|0]<<8|o[g+86|0]<<16|o[g+87|0]<<24,t=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,r=o[g+36|0]|o[g+37|0]<<8|o[g+38|0]<<16|o[g+39|0]<<24,e=o[g+52|0]|o[g+53|0]<<8|o[g+54|0]<<16|o[g+55|0]<<24,N=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,y=o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24,h=o[g+88|0]|o[g+89|0]<<8|o[g+90|0]<<16|o[g+91|0]<<24,D=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,f=o[g+40|0]|o[g+41|0]<<8|o[g+42|0]<<16|o[g+43|0]<<24,p=o[g+56|0]|o[g+57|0]<<8|o[g+58|0]<<16|o[g+59|0]<<24,w=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=(o[g+44|0]|o[g+45|0]<<8|o[g+46|0]<<16|o[g+47|0]<<24)&(o[g+60|0]|o[g+61|0]<<8|o[g+62|0]<<16|o[g+63|0]<<24)^(o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24)^(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24)^(o[g+92|0]|o[g+93|0]<<8|o[g+94|0]<<16|o[g+95|0]<<24)^(o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24),C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,N=f&p^N^h^D^y,C[A+8|0]=N,C[A+9|0]=N>>>8,C[A+10|0]=N>>>16,C[A+11|0]=N>>>24,S=r&e^S^c^t^_,C[A+4|0]=S,C[A+5|0]=S>>>8,C[A+6|0]=S>>>16,C[A+7|0]=S>>>24,F=E&a^F^k^Q^w,C[0|A]=F,C[A+1|0]=F>>>8,C[A+2|0]=F>>>16,C[A+3|0]=F>>>24,A=i[g+92>>2],i[B+216>>2]=i[g+88>>2],i[B+220>>2]=A,A=i[g+84>>2],i[B+208>>2]=i[g+80>>2],i[B+212>>2]=A,A=i[g+76>>2],i[B+184>>2]=i[g+72>>2],i[B+188>>2]=A,A=i[n+4>>2],i[B+176>>2]=i[n>>2],i[B+180>>2]=A,A=i[g+92>>2],i[B+168>>2]=i[g+88>>2],i[B+172>>2]=A,A=i[g+84>>2],i[B+160>>2]=i[g+80>>2],i[B+164>>2]=A,AI(A=B+192|0,B+176|0,B+160|0),k=i[B+204>>2],i[g+88>>2]=i[B+200>>2],i[g+92>>2]=k,k=i[B+196>>2],i[g+80>>2]=i[B+192>>2],i[g+84>>2]=k,k=i[g+60>>2],i[B+152>>2]=i[g+56>>2],i[B+156>>2]=k,k=i[g+52>>2],i[B+144>>2]=i[g+48>>2],i[B+148>>2]=k,k=i[g+76>>2],i[B+136>>2]=i[g+72>>2],i[B+140>>2]=k,k=i[n+4>>2],i[B+128>>2]=i[n>>2],i[B+132>>2]=k,AI(A,B+144|0,B+128|0),k=i[B+204>>2],i[g+72>>2]=i[B+200>>2],i[g+76>>2]=k,k=i[B+196>>2],i[n>>2]=i[B+192>>2],i[n+4>>2]=k,n=i[g+44>>2],i[B+120>>2]=i[g+40>>2],i[B+124>>2]=n,n=i[g+36>>2],i[B+112>>2]=i[g+32>>2],i[B+116>>2]=n,n=i[g+60>>2],i[B+104>>2]=i[g+56>>2],i[B+108>>2]=n,n=i[g+52>>2],i[B+96>>2]=i[g+48>>2],i[B+100>>2]=n,AI(A,B+112|0,B+96|0),n=i[B+204>>2],i[g+56>>2]=i[B+200>>2],i[g+60>>2]=n,n=i[B+196>>2],i[g+48>>2]=i[B+192>>2],i[g+52>>2]=n,n=i[g+28>>2],i[B+88>>2]=i[g+24>>2],i[B+92>>2]=n,n=i[g+20>>2],i[B+80>>2]=i[g+16>>2],i[B+84>>2]=n,n=i[g+44>>2],i[B+72>>2]=i[g+40>>2],i[B+76>>2]=n,n=i[g+36>>2],i[B+64>>2]=i[g+32>>2],i[B+68>>2]=n,AI(A,B+80|0,B- -64|0),n=i[B+204>>2],i[g+40>>2]=i[B+200>>2],i[g+44>>2]=n,n=i[B+196>>2],i[g+32>>2]=i[B+192>>2],i[g+36>>2]=n,n=i[g+12>>2],i[B+56>>2]=i[g+8>>2],i[B+60>>2]=n,n=i[g+4>>2],i[B+48>>2]=i[g>>2],i[B+52>>2]=n,n=i[g+28>>2],i[B+40>>2]=i[g+24>>2],i[B+44>>2]=n,n=i[g+20>>2],i[B+32>>2]=i[g+16>>2],i[B+36>>2]=n,AI(A,B+48|0,B+32|0),n=i[B+204>>2],i[g+24>>2]=i[B+200>>2],i[g+28>>2]=n,n=i[B+196>>2],i[g+16>>2]=i[B+192>>2],i[g+20>>2]=n,n=i[B+220>>2],i[B+24>>2]=i[B+216>>2],i[B+28>>2]=n,n=i[B+212>>2],i[B+16>>2]=i[B+208>>2],i[B+20>>2]=n,n=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=n,n=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=n,AI(A,B+16|0,B),A=i[B+192>>2],n=i[B+196>>2],k=i[B+200>>2],i[g+12>>2]=I^i[B+204>>2],i[g+8>>2]=k^N,i[g+4>>2]=n^S,i[g>>2]=A^F,s=B+224|0}function W(A,I){var g,B,Q,E,a,_,c,t,r,e,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0;s=g=s-800|0,y=i[I+44>>2],D=i[I+84>>2],f=i[I+48>>2],p=i[I+88>>2],w=i[I+52>>2],h=i[I+92>>2],S=i[I+56>>2],n=i[I+96>>2],K=i[I+60>>2],N=i[I+100>>2],H=i[(U=I- -64|0)>>2],Y=i[I+104>>2],J=i[I+68>>2],d=i[I+108>>2],m=i[I+72>>2],l=i[I+112>>2],u=i[I+40>>2],x=i[I+80>>2],k=i[I+76>>2],F=i[I+116>>2],i[g+324>>2]=k+F,i[g+320>>2]=m+l,i[g+316>>2]=J+d,i[g+312>>2]=H+Y,i[g+308>>2]=N+K,i[g+304>>2]=n+S,i[g+300>>2]=h+w,i[g+296>>2]=f+p,i[g+292>>2]=y+D,i[g+288>>2]=u+x,i[g+36>>2]=F-k,i[g+32>>2]=l-m,i[g+28>>2]=d-J,i[g+24>>2]=Y-H,i[g+20>>2]=N-K,i[g+16>>2]=n-S,i[g+12>>2]=h-w,i[g+8>>2]=p-f,i[g+4>>2]=D-y,i[g>>2]=x-u,b(y=g+288|0,y,g),b(f=g+240|0,I,w=I+40|0),R(D=g+192|0,f),b(D,y,D),i[g+452>>2]=0,i[g+456>>2]=0,i[g+460>>2]=0,i[g+464>>2]=0,i[g+468>>2]=0,i[g+436>>2]=0,i[g+440>>2]=0,i[g+444>>2]=0,i[g+448>>2]=0,i[g+432>>2]=1,GA(p=g+576|0,g+432|0,D),b(D=g+720|0,p,y),b(K=g+672|0,p,f),b(n=g+48|0,D,K),b(n,n,y=I+120|0),b(g+528|0,I,1632),b(g+480|0,w,1632),b(g+624|0,D,2944),b(D=g+336|0,y,n),QI(S=g+384|0,D),h=o[g+384|0],D=i[I+36>>2],y=i[I+32>>2],i[g+176>>2]=y,i[g+180>>2]=D,f=i[I+28>>2],D=i[I+24>>2],i[g+168>>2]=D,i[g+172>>2]=f,p=i[I+20>>2],f=i[I+16>>2],i[g+160>>2]=f,i[g+164>>2]=p,w=i[I+12>>2],p=i[I+8>>2],i[g+152>>2]=p,i[g+156>>2]=w,N=i[I+4>>2],w=i[I>>2],i[g+144>>2]=w,i[g+148>>2]=N,N=i[I+44>>2],H=i[I+48>>2],Y=i[I+52>>2],J=i[I+56>>2],d=i[I+60>>2],m=i[U>>2],l=i[I+68>>2],u=i[I+72>>2],x=i[I+76>>2],U=i[I+40>>2],P=i[g+484>>2],k=i[g+148>>2],q=i[g+492>>2],F=i[g+156>>2],z=i[g+500>>2],G=i[g+164>>2],j=i[g+508>>2],M=i[g+172>>2],X=i[g+516>>2],v=i[g+180>>2],O=i[g+480>>2],W=i[g+488>>2],V=i[g+496>>2],Z=i[g+504>>2],h=0-(1&h)|0,i[g+176>>2]=y^h&(y^i[g+512>>2]),i[g+168>>2]=D^h&(D^Z),i[g+160>>2]=f^h&(f^V),i[g+152>>2]=p^h&(p^W),i[g+144>>2]=w^h&(w^O),i[g+180>>2]=v^h&(v^X),i[g+172>>2]=M^h&(M^j),i[g+164>>2]=G^h&(G^z),i[g+156>>2]=F^h&(F^q),i[g+148>>2]=k^h&(k^P),v=i[g+528>>2],P=i[g+532>>2],q=i[g+536>>2],z=i[g+540>>2],j=i[g+544>>2],X=i[g+548>>2],O=i[g+552>>2],W=i[g+556>>2],V=i[g+560>>2],Z=i[g+564>>2],y=i[g+672>>2],B=i[g+624>>2],D=i[g+676>>2],Q=i[g+628>>2],f=i[g+680>>2],E=i[g+632>>2],p=i[g+684>>2],a=i[g+636>>2],w=i[g+688>>2],_=i[g+640>>2],k=i[g+692>>2],c=i[g+644>>2],F=i[g+696>>2],t=i[g+648>>2],G=i[g+700>>2],r=i[g+652>>2],M=i[g+704>>2],e=i[g+656>>2],L=i[g+708>>2],i[g+708>>2]=L^h&(i[g+660>>2]^L),i[g+704>>2]=M^h&(M^e),i[g+700>>2]=G^h&(G^r),i[g+696>>2]=F^h&(F^t),i[g+692>>2]=k^h&(k^c),i[g+688>>2]=w^h&(w^_),i[g+684>>2]=p^h&(p^a),i[g+680>>2]=f^h&(f^E),i[g+676>>2]=D^h&(D^Q),i[g+672>>2]=y^h&(y^B),b(y=g+96|0,g+144|0,n),QI(S,y),D=i[I+84>>2],f=i[I+88>>2],p=i[I+92>>2],w=i[I+96>>2],n=i[I+100>>2],k=i[I+104>>2],F=i[I+108>>2],G=i[I+112>>2],M=i[I+80>>2],L=i[I+116>>2],I=0-(1&C[g+384|0])|0,y=x^h&(x^Z),i[g+420>>2]=L-(I&(0-y^y)^y),y=u^h&(u^V),i[g+416>>2]=G-(I&(0-y^y)^y),y=l^h&(l^W),i[g+412>>2]=F-(I&(0-y^y)^y),y=m^h&(m^O),i[g+408>>2]=k-(I&(0-y^y)^y),y=d^h&(d^X),i[g+404>>2]=n-(I&(0-y^y)^y),y=J^h&(J^j),i[g+400>>2]=w-(I&(0-y^y)^y),y=Y^h&(Y^z),i[g+396>>2]=p-(I&(0-y^y)^y),y=H^h&(H^q),i[g+392>>2]=f-(I&(0-y^y)^y),y=N^h&(N^P),i[g+388>>2]=D-(I&(0-y^y)^y),y=I,I=U^h&(U^v),i[g+384>>2]=M-(y&(0-I^I)^I),b(S,K,S),QI(g+768|0,S),I=0-(1&C[g+768|0])|0,y=i[g+384>>2],i[g+384>>2]=I&(0-y^y)^y,y=i[g+388>>2],i[g+388>>2]=I&(0-y^y)^y,y=i[g+392>>2],i[g+392>>2]=I&(0-y^y)^y,y=i[g+396>>2],i[g+396>>2]=I&(0-y^y)^y,y=i[g+400>>2],i[g+400>>2]=I&(0-y^y)^y,y=i[g+404>>2],i[g+404>>2]=I&(0-y^y)^y,y=i[g+408>>2],i[g+408>>2]=I&(0-y^y)^y,y=i[g+412>>2],i[g+412>>2]=I&(0-y^y)^y,y=i[g+416>>2],i[g+416>>2]=I&(0-y^y)^y,y=I,I=i[g+420>>2],i[g+420>>2]=y&(0-I^I)^I,QI(A,S),s=g+800|0}function V(A,I){var g,C,B,Q,E,a,_,c,t,r=0,e=0;s=g=s-288|0,C=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,B=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,Q=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,E=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,a=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,_=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,c=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,t=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,A=i[I+124>>2],i[g+280>>2]=i[I+120>>2],i[g+284>>2]=A,A=i[I+116>>2],i[g+272>>2]=i[I+112>>2],i[g+276>>2]=A,A=i[I+108>>2],i[g+248>>2]=i[I+104>>2],i[g+252>>2]=A,A=i[I+100>>2],i[g+240>>2]=i[I+96>>2],i[g+244>>2]=A,A=i[I+124>>2],i[g+232>>2]=i[I+120>>2],i[g+236>>2]=A,A=i[I+116>>2],i[g+224>>2]=i[I+112>>2],i[g+228>>2]=A,AI(e=g+256|0,g+240|0,g+224|0),A=i[g+268>>2],i[I+120>>2]=i[g+264>>2],i[I+124>>2]=A,A=i[g+260>>2],i[I+112>>2]=i[g+256>>2],i[I+116>>2]=A,A=i[I+92>>2],i[g+216>>2]=i[I+88>>2],i[g+220>>2]=A,A=i[I+84>>2],i[g+208>>2]=i[I+80>>2],i[g+212>>2]=A,A=i[I+108>>2],i[g+200>>2]=i[I+104>>2],i[g+204>>2]=A,A=i[I+100>>2],i[g+192>>2]=i[I+96>>2],i[g+196>>2]=A,AI(e,g+208|0,g+192|0),A=i[g+268>>2],i[I+104>>2]=i[g+264>>2],i[I+108>>2]=A,A=i[g+260>>2],i[I+96>>2]=i[g+256>>2],i[I+100>>2]=A,A=i[I+76>>2],i[g+184>>2]=i[I+72>>2],i[g+188>>2]=A,r=i[4+(A=I- -64|0)>>2],i[g+176>>2]=i[A>>2],i[g+180>>2]=r,r=i[I+92>>2],i[g+168>>2]=i[I+88>>2],i[g+172>>2]=r,r=i[I+84>>2],i[g+160>>2]=i[I+80>>2],i[g+164>>2]=r,AI(e,g+176|0,g+160|0),r=i[g+268>>2],i[I+88>>2]=i[g+264>>2],i[I+92>>2]=r,r=i[g+260>>2],i[I+80>>2]=i[g+256>>2],i[I+84>>2]=r,r=i[I+60>>2],i[g+152>>2]=i[I+56>>2],i[g+156>>2]=r,r=i[I+52>>2],i[g+144>>2]=i[I+48>>2],i[g+148>>2]=r,r=i[I+76>>2],i[g+136>>2]=i[I+72>>2],i[g+140>>2]=r,r=i[A+4>>2],i[g+128>>2]=i[A>>2],i[g+132>>2]=r,AI(e,g+144|0,g+128|0),r=i[g+268>>2],i[I+72>>2]=i[g+264>>2],i[I+76>>2]=r,r=i[g+260>>2],i[A>>2]=i[g+256>>2],i[A+4>>2]=r,r=i[I+44>>2],i[g+120>>2]=i[I+40>>2],i[g+124>>2]=r,r=i[I+36>>2],i[g+112>>2]=i[I+32>>2],i[g+116>>2]=r,r=i[I+60>>2],i[g+104>>2]=i[I+56>>2],i[g+108>>2]=r,r=i[I+52>>2],i[g+96>>2]=i[I+48>>2],i[g+100>>2]=r,AI(e,g+112|0,g+96|0),r=i[g+268>>2],i[I+56>>2]=i[g+264>>2],i[I+60>>2]=r,r=i[g+260>>2],i[I+48>>2]=i[g+256>>2],i[I+52>>2]=r,r=i[I+28>>2],i[g+88>>2]=i[I+24>>2],i[g+92>>2]=r,r=i[I+20>>2],i[g+80>>2]=i[I+16>>2],i[g+84>>2]=r,r=i[I+44>>2],i[g+72>>2]=i[I+40>>2],i[g+76>>2]=r,r=i[I+36>>2],i[g+64>>2]=i[I+32>>2],i[g+68>>2]=r,AI(e,g+80|0,g- -64|0),r=i[g+268>>2],i[I+40>>2]=i[g+264>>2],i[I+44>>2]=r,r=i[g+260>>2],i[I+32>>2]=i[g+256>>2],i[I+36>>2]=r,r=i[I+12>>2],i[g+56>>2]=i[I+8>>2],i[g+60>>2]=r,r=i[I+4>>2],i[g+48>>2]=i[I>>2],i[g+52>>2]=r,r=i[I+28>>2],i[g+40>>2]=i[I+24>>2],i[g+44>>2]=r,r=i[I+20>>2],i[g+32>>2]=i[I+16>>2],i[g+36>>2]=r,AI(e,g+48|0,g+32|0),r=i[g+268>>2],i[I+24>>2]=i[g+264>>2],i[I+28>>2]=r,r=i[g+260>>2],i[I+16>>2]=i[g+256>>2],i[I+20>>2]=r,r=i[g+284>>2],i[g+24>>2]=i[g+280>>2],i[g+28>>2]=r,r=i[g+276>>2],i[g+16>>2]=i[g+272>>2],i[g+20>>2]=r,r=i[I+12>>2],i[g+8>>2]=i[I+8>>2],i[g+12>>2]=r,r=i[I+4>>2],i[g>>2]=i[I>>2],i[g+4>>2]=r,AI(e,g+16|0,g),e=i[g+268>>2],i[I+8>>2]=i[g+264>>2],i[I+12>>2]=e,e=i[g+260>>2],i[I>>2]=i[g+256>>2],i[I+4>>2]=e,i[I+12>>2]=(o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)^c,i[I+8>>2]=(o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24)^_,i[I+4>>2]=(o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)^a,i[I>>2]=(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24)^t,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^E,i[I+68>>2]=(o[I+68|0]|o[I+69|0]<<8|o[I+70|0]<<16|o[I+71|0]<<24)^Q,i[I+72>>2]=(o[I+72|0]|o[I+73|0]<<8|o[I+74|0]<<16|o[I+75|0]<<24)^B,i[I+76>>2]=(o[I+76|0]|o[I+77|0]<<8|o[I+78|0]<<16|o[I+79|0]<<24)^C,s=g+288|0}function Z(A,I,g,C){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k=0,F=0,S=0,N=0;s=B=s-240|0,i[B+200>>2]=0,i[B+204>>2]=0,i[B+192>>2]=0,i[B+196>>2]=0,Ng(F=B+192|0,I,g),S=o[C+16|0]|o[C+17|0]<<8|o[C+18|0]<<16|o[C+19|0]<<24,N=o[0|(I=C- -64|0)]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,k=o[C+80|0]|o[C+81|0]<<8|o[C+82|0]<<16|o[C+83|0]<<24,Q=o[C+32|0]|o[C+33|0]<<8|o[C+34|0]<<16|o[C+35|0]<<24,E=o[C+48|0]|o[C+49|0]<<8|o[C+50|0]<<16|o[C+51|0]<<24,a=o[C+20|0]|o[C+21|0]<<8|o[C+22|0]<<16|o[C+23|0]<<24,_=o[C+68|0]|o[C+69|0]<<8|o[C+70|0]<<16|o[C+71|0]<<24,c=o[C+84|0]|o[C+85|0]<<8|o[C+86|0]<<16|o[C+87|0]<<24,t=o[C+36|0]|o[C+37|0]<<8|o[C+38|0]<<16|o[C+39|0]<<24,r=o[C+52|0]|o[C+53|0]<<8|o[C+54|0]<<16|o[C+55|0]<<24,e=o[C+24|0]|o[C+25|0]<<8|o[C+26|0]<<16|o[C+27|0]<<24,y=o[C+72|0]|o[C+73|0]<<8|o[C+74|0]<<16|o[C+75|0]<<24,h=o[C+88|0]|o[C+89|0]<<8|o[C+90|0]<<16|o[C+91|0]<<24,D=o[C+40|0]|o[C+41|0]<<8|o[C+42|0]<<16|o[C+43|0]<<24,f=o[C+56|0]|o[C+57|0]<<8|o[C+58|0]<<16|o[C+59|0]<<24,p=i[B+192>>2],w=i[B+196>>2],n=i[B+200>>2],i[B+204>>2]=(o[C+44|0]|o[C+45|0]<<8|o[C+46|0]<<16|o[C+47|0]<<24)&(o[C+60|0]|o[C+61|0]<<8|o[C+62|0]<<16|o[C+63|0]<<24)^(o[C+28|0]|o[C+29|0]<<8|o[C+30|0]<<16|o[C+31|0]<<24)^(o[C+76|0]|o[C+77|0]<<8|o[C+78|0]<<16|o[C+79|0]<<24)^i[B+204>>2]^(o[C+92|0]|o[C+93|0]<<8|o[C+94|0]<<16|o[C+95|0]<<24),i[B+200>>2]=D&f^h^n^y^e,i[B+196>>2]=t&r^c^w^_^a,i[B+192>>2]=Q&E^S^N^k^p,bg(g+F|0,0,16-g|0),Ng(A,F,g),g=i[B+192>>2],F=i[B+196>>2],S=i[B+200>>2],N=i[B+204>>2],A=i[C+92>>2],i[B+232>>2]=i[C+88>>2],i[B+236>>2]=A,A=i[C+84>>2],i[B+224>>2]=i[C+80>>2],i[B+228>>2]=A,A=i[C+76>>2],i[B+184>>2]=i[C+72>>2],i[B+188>>2]=A,A=i[I+4>>2],i[B+176>>2]=i[I>>2],i[B+180>>2]=A,A=i[C+92>>2],i[B+168>>2]=i[C+88>>2],i[B+172>>2]=A,A=i[C+84>>2],i[B+160>>2]=i[C+80>>2],i[B+164>>2]=A,AI(A=B+208|0,B+176|0,B+160|0),k=i[B+220>>2],i[C+88>>2]=i[B+216>>2],i[C+92>>2]=k,k=i[B+212>>2],i[C+80>>2]=i[B+208>>2],i[C+84>>2]=k,k=i[C+60>>2],i[B+152>>2]=i[C+56>>2],i[B+156>>2]=k,k=i[C+52>>2],i[B+144>>2]=i[C+48>>2],i[B+148>>2]=k,k=i[C+76>>2],i[B+136>>2]=i[C+72>>2],i[B+140>>2]=k,k=i[I+4>>2],i[B+128>>2]=i[I>>2],i[B+132>>2]=k,AI(A,B+144|0,B+128|0),k=i[B+220>>2],i[C+72>>2]=i[B+216>>2],i[C+76>>2]=k,k=i[B+212>>2],i[I>>2]=i[B+208>>2],i[I+4>>2]=k,I=i[C+44>>2],i[B+120>>2]=i[C+40>>2],i[B+124>>2]=I,I=i[C+36>>2],i[B+112>>2]=i[C+32>>2],i[B+116>>2]=I,I=i[C+60>>2],i[B+104>>2]=i[C+56>>2],i[B+108>>2]=I,I=i[C+52>>2],i[B+96>>2]=i[C+48>>2],i[B+100>>2]=I,AI(A,B+112|0,B+96|0),I=i[B+220>>2],i[C+56>>2]=i[B+216>>2],i[C+60>>2]=I,I=i[B+212>>2],i[C+48>>2]=i[B+208>>2],i[C+52>>2]=I,I=i[C+28>>2],i[B+88>>2]=i[C+24>>2],i[B+92>>2]=I,I=i[C+20>>2],i[B+80>>2]=i[C+16>>2],i[B+84>>2]=I,I=i[C+44>>2],i[B+72>>2]=i[C+40>>2],i[B+76>>2]=I,I=i[C+36>>2],i[B+64>>2]=i[C+32>>2],i[B+68>>2]=I,AI(A,B+80|0,B- -64|0),I=i[B+220>>2],i[C+40>>2]=i[B+216>>2],i[C+44>>2]=I,I=i[B+212>>2],i[C+32>>2]=i[B+208>>2],i[C+36>>2]=I,I=i[C+12>>2],i[B+56>>2]=i[C+8>>2],i[B+60>>2]=I,I=i[C+4>>2],i[B+48>>2]=i[C>>2],i[B+52>>2]=I,I=i[C+28>>2],i[B+40>>2]=i[C+24>>2],i[B+44>>2]=I,I=i[C+20>>2],i[B+32>>2]=i[C+16>>2],i[B+36>>2]=I,AI(A,B+48|0,B+32|0),I=i[B+220>>2],i[C+24>>2]=i[B+216>>2],i[C+28>>2]=I,I=i[B+212>>2],i[C+16>>2]=i[B+208>>2],i[C+20>>2]=I,I=i[B+236>>2],i[B+24>>2]=i[B+232>>2],i[B+28>>2]=I,I=i[B+228>>2],i[B+16>>2]=i[B+224>>2],i[B+20>>2]=I,I=i[C+12>>2],i[B+8>>2]=i[C+8>>2],i[B+12>>2]=I,I=i[C+4>>2],i[B>>2]=i[C>>2],i[B+4>>2]=I,AI(A,B+16|0,B),A=i[B+208>>2],I=i[B+212>>2],k=i[B+216>>2],i[C+12>>2]=N^i[B+220>>2],i[C+8>>2]=k^S,i[C+4>>2]=I^F,i[C>>2]=A^g,s=B+240|0}function T(A,I,g,B,Q){A|=0,I|=0,g|=0,B|=0;var i=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0;if(a=1886610805^(B=o[0|(Q|=0)]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),E=1936682341^(i=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24),c=1852142177^B,_=1819895653^i,i=1852075885^(B=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24),Q=1685025377^(r=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24),t=2037671283^B,r^=1952801890,(0|(h=(I+g|0)-(y=7&g)|0))!=(0|I))for(;t=c=c+(B=t^(w=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24))|0,_=_+(r^=n=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)|0,_=B>>>0>c>>>0?_+1|0:_,E=Q+E|0,E=(s=a)>>>0>(a=i+a|0)>>>0?E+1|0:E,Q=c+(i=UI(i,Q,13)^a)|0,c=_+(e=f^E)|0,e=UI(i,e,17)^Q,D=UI(e,c=(s=Q>>>0>>0?c+1|0:c)^f,13),p=f,B=UI(B,r,16),i=_^f,_=B^t,a=UI(a,E,32),t=c,c=f+i|0,t=1+(a=t+(E=(B=_+a|0)>>>0>>0?c+1|0:c)|0)|0,c=a,c=(a=B+e|0)>>>0>>0?t:c,D=UI(t=a^D,r=c^p,17),p=f,i=UI(_,i,21),E^=f,k=B^i,Q=UI(Q,s,32),i=f+E|0,Q=r+(s=(B=k+Q|0)>>>0>>0?i+1|0:i)|0,i=(_=B+t|0)^D,Q=(e=_>>>0>>0?Q+1|0:Q)^p,E=UI(k,E,16),r=t=s^f,E=UI(B^=E,t,21),s=f,t=(B=(a=UI(a,c,32))+B|0)^E,c=f+r|0,r=(E=B>>>0>>0?c+1|0:c)^s,c=UI(_,e,32),_=f,a=B^w,E^=n,(0|h)!=(0|(I=I+8|0)););switch(g<<=24,B=0,y-1|0){case 6:g|=o[I+6|0]<<16;case 5:g|=o[I+5|0]<<8;case 4:g|=o[I+4|0];case 3:e=(B=o[I+3|0])>>>8|0,B<<=24,g|=e;case 2:B|=(e=o[I+2|0])<<16,g|=y=e>>>16|0;case 1:B|=(e=o[I+1|0])<<8,g|=y=e>>>24|0;case 0:B=o[0|I]|B}return r=UI(I=B^t,t=g^r,16),_=_+t|0,c=(I=I+c|0)>>>0>>0?_+1|0:_,r=UI(_=I^r,t=c^f,21),e=f,s=1+(E=Q+E|0)|0,y=E,y=a=a>>>0>(E=i+a|0)>>>0?s:y,h=UI(E,a,32),t=f+t|0,e=UI(_=r^(a=_+h|0),r=e^(t=a>>>0>>0?t+1|0:t),16),h=f,Q=UI(i,Q,13)^E,i=(i=c)+(c=f^y)|0,y=UI(I=I+Q|0,E=I>>>0>>0?i+1|0:i,32),r=f+r|0,y=UI(_=e^(i=_+y|0),e=(r=i>>>0>>0?r+1|0:r)^h,21),h=f,I=a+(Q=c=UI(Q,c,17)^I)|0,a=(E^=f)+t|0,t=Q=I>>>0>>0?a+1|0:a,s=y,a=_+(y=UI(I,Q,32))|0,_=f+e|0,y=UI(Q=s^a,e=(_=a>>>0>>0?_+1|0:_)^h,16),h=f,s=i,E=UI(c,E,13)^I,c=(t^=f)+r|0,r=i=(I=s+(i=E)|0)>>>0>>0?c+1|0:c,i=UI(I,i,32),c=e+f|0,e=(s=Q)>>>0>(Q=Q+(255^i)|0)>>>0?c+1|0:c,y=UI(c=Q^y,i=h^e,21),h=f,E=UI(E,t,17)^I,g=(t=r^f)+(g^_)|0,_=g=(I=E+(B^=a)|0)>>>0>>0?g+1|0:g,g=UI(I,g,32),B=i+f|0,c=UI(a=(g=g+c|0)^y,B=(i=g>>>0>>0?B+1|0:B)^h,16),r=f,E=UI(E,t,13)^I,t=e+(_^=f)|0,t=Q=(I=Q+E|0)>>>0>>0?t+1|0:t,Q=UI(I,Q,32),y=r,s=1+(B=B+f|0)|0,r=B,r=(B=Q+a|0)>>>0>>0?s:r,c=UI(a=B^c,Q=y^r,21),e=f,E=UI(E,_,17),s=1+(i=i+(_=t^f)|0)|0,t=i,E=I=(y=g)>>>0>(g=g+(i=I^E)|0)>>>0?s:t,I=UI(g,I,32),Q=Q+f|0,t=(I=I+a|0)>>>0>>0?Q+1|0:Q,c=UI(a=I^c,Q=t^e,16),e=f,i=UI(i,_,13),_=r+(E^=f)|0,_=g=(r=B)>>>0>(B=B+(i^=g)|0)>>>0?_+1|0:_,g=UI(B,g,32),Q=Q+f|0,r=(g=g+a|0)>>>0>>0?Q+1|0:Q,c=UI(a=g^c,Q=r^e,21),e=f,i=UI(i,E,17),y=1+(_=t+(E=_^f)|0)|0,t=_,I=UI(B=I+(_=B^i)|0,i=B>>>0>>0?y:t,32),Q=Q+f|0,t=(I=I+a|0)>>>0>>0?Q+1|0:Q,c=UI(a=I^c,Q=t^e,16),e=f,E=UI(_,E,13),_=r+(i^=f)|0,_=g=(B=g+(E^=B)|0)>>>0>>0?_+1|0:_,g=UI(B,g,32),Q=Q+f|0,a=UI((g=g+a|0)^c,(Q=g>>>0>>0?Q+1|0:Q)^e,21),c=f,B=UI(E,i,17)^B,E=UI(B,i=_^f,13),i=i+t|0,I=f^(I>>>0>(B=I+B|0)>>>0?i+1:i),a=UI(B^=E,I,17)^a,i=f^c,_=1+(I=I+Q|0)|0,Q=I,I=UI(I=g+B|0,g=g>>>0>I>>>0?_:Q,32)^a^I,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,I=g^f^i,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,0}function $(A,I){var g,C,B,Q,E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,L=0;s=g=s-624|0,R(a=g+480|0,I),b(a,1632,a),c=i[g+516>>2],i[g+276>>2]=c,t=i[g+512>>2],i[g+272>>2]=t,r=i[g+508>>2],i[g+268>>2]=r,e=i[g+504>>2],i[g+264>>2]=e,y=i[g+500>>2],i[g+260>>2]=y,h=i[g+496>>2],i[g+256>>2]=h,D=i[g+492>>2],i[g+252>>2]=D,f=i[g+488>>2],i[g+248>>2]=f,p=i[g+484>>2],i[g+244>>2]=p,n=i[g+480>>2],i[g+240>>2]=n+1,b(_=g+240|0,_,33968),i[g+468>>2]=c-12055116,i[g+464>>2]=t-18696448,i[g+460>>2]=r-3247719,i[g+456>>2]=e-6275908,i[g+452>>2]=y-8787816,i[g+448>>2]=h+114729,i[g+444>>2]=D+6949391,i[g+440>>2]=f-15372611,i[g+436>>2]=p+13857413,i[g+432>>2]=n-10913610,b(w=g+192|0,a,1584),i[g+228>>2]=0-i[g+228>>2],i[g+224>>2]=0-i[g+224>>2],i[g+220>>2]=0-i[g+220>>2],i[g+216>>2]=0-i[g+216>>2],i[g+212>>2]=0-i[g+212>>2],i[g+208>>2]=0-i[g+208>>2],i[g+204>>2]=0-i[g+204>>2],i[g+200>>2]=0-i[g+200>>2],i[g+196>>2]=0-i[g+196>>2],i[g+192>>2]=~i[g+192>>2],b(w,w,g+432|0),a=GA(C=g+384|0,_,w),b(_=g+336|0,C,I),QI(B=g+576|0,_),E=o[g+576|0],Y=i[g+420>>2],_=i[g+372>>2],J=i[g+416>>2],k=i[g+368>>2],d=i[g+412>>2],F=i[g+364>>2],m=i[g+408>>2],S=i[g+360>>2],l=i[g+404>>2],N=i[g+356>>2],u=i[g+400>>2],G=i[g+352>>2],x=i[g+396>>2],M=i[g+348>>2],v=i[g+392>>2],K=i[g+344>>2],L=i[g+388>>2],U=i[g+340>>2],Q=i[g+384>>2],H=i[g+336>>2],I=a-1|0,i[g+612>>2]=I&c,i[g+608>>2]=I&t,i[g+604>>2]=I&r,i[g+600>>2]=I&e,i[g+596>>2]=I&y,i[g+592>>2]=I&h,i[g+588>>2]=I&D,i[g+584>>2]=I&f,i[g+580>>2]=I&p,i[g+576>>2]=n|0-a,H=I&(0-(H^(a=0-(1&E)|0)&(H^0-H))^Q)^Q,i[g+384>>2]=H,U=L^I&(L^0-(U^a&(U^0-U))),i[g+388>>2]=U,K=v^I&(v^0-(K^a&(K^0-K))),i[g+392>>2]=K,M=x^I&(x^0-(M^a&(M^0-M))),i[g+396>>2]=M,G=u^I&(u^0-(G^a&(G^0-G))),i[g+400>>2]=G,N=l^I&(l^0-(N^a&(N^0-N))),i[g+404>>2]=N,S=m^I&(m^0-(S^a&(S^0-S))),i[g+408>>2]=S,F=d^I&(d^0-(F^a&(F^0-F))),i[g+412>>2]=F,k=J^I&(J^0-(k^a&(k^0-k))),i[g+416>>2]=k,a=Y^I&(Y^0-(_^a&(_^0-_))),i[g+420>>2]=a,i[g+564>>2]=c,i[g+560>>2]=t,i[g+556>>2]=r,i[g+552>>2]=e,i[g+548>>2]=y,i[g+544>>2]=h,i[g+540>>2]=D,i[g+536>>2]=f,i[g+532>>2]=p,i[g+528>>2]=n-1,b(I=g+528|0,I,B),b(I,I,34016),c=i[g+192>>2],t=i[g+528>>2],r=i[g+196>>2],e=i[g+532>>2],y=i[g+200>>2],h=i[g+536>>2],D=i[g+204>>2],f=i[g+540>>2],p=i[g+208>>2],n=i[g+544>>2],_=i[g+212>>2],Y=i[g+548>>2],J=i[g+216>>2],d=i[g+552>>2],m=i[g+220>>2],l=i[g+556>>2],u=i[g+224>>2],x=i[g+560>>2],v=i[g+228>>2],L=i[g+564>>2],i[g+180>>2]=a<<1,i[g+176>>2]=k<<1,i[g+172>>2]=F<<1,i[g+168>>2]=S<<1,i[g+164>>2]=N<<1,i[g+160>>2]=G<<1,i[g+156>>2]=M<<1,i[g+152>>2]=K<<1,i[g+148>>2]=U<<1,i[g+144>>2]=H<<1,i[g+564>>2]=L-v,i[g+560>>2]=x-u,i[g+556>>2]=l-m,i[g+552>>2]=d-J,i[g+548>>2]=Y-_,i[g+544>>2]=n-p,i[g+540>>2]=f-D,i[g+536>>2]=h-y,i[g+532>>2]=e-r,i[g+528>>2]=t-c,b(a=g+144|0,a,w),b(w=g+96|0,I,34064),R(g+288|0,C),I=i[g+324>>2],i[g+84>>2]=0-I,c=i[g+320>>2],i[g+80>>2]=0-c,t=i[g+316>>2],i[g+76>>2]=0-t,r=i[g+312>>2],i[g+72>>2]=0-r,e=i[g+308>>2],i[g+68>>2]=0-e,y=i[g+304>>2],i[g+64>>2]=0-y,h=i[g+300>>2],i[g+60>>2]=0-h,D=i[g+296>>2],i[g+56>>2]=0-D,f=i[g+292>>2],i[g+52>>2]=0-f,p=i[g+288>>2],i[g+48>>2]=1-p,i[g+36>>2]=I,i[g+32>>2]=c,i[g+28>>2]=t,i[g+24>>2]=r,i[g+20>>2]=e,i[g+16>>2]=y,i[g+12>>2]=h,i[g+8>>2]=D,i[g+4>>2]=f,i[g>>2]=p+1,b(A,a,g),b(A+40|0,I=g+48|0,w),b(A+80|0,w,g),b(A+120|0,a,I),s=g+624|0}function AA(A,I,g){var B,E=0,a=0,_=0,c=0,t=0;s=B=s+-64|0;A:{if((g-65&255)>>>0>191){if(a=-1,!(o[A+80|0]|o[A+81|0]<<8|o[A+82|0]<<16|o[A+83|0]<<24|o[A+84|0]|o[A+85|0]<<8|o[A+86|0]<<16|o[A+87|0]<<24)){if((_=o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)>>>0>=129){if(c=E=o[A+68|0]|o[A+69|0]<<8|o[A+70|0]<<16|o[A+71|0]<<24,E=(_=128+(a=o[A+64|0]|o[A+65|0]<<8|o[A+66|0]<<16|o[A+67|0]<<24)|0)>>>0<128?E+1|0:E,C[A+64|0]=_,C[A+65|0]=_>>>8,C[A+66|0]=_>>>16,C[A+67|0]=_>>>24,C[A+68|0]=E,C[A+69|0]=E>>>8,C[A+70|0]=E>>>16,C[A+71|0]=E>>>24,E=o[A+76|0]|o[A+77|0]<<8|o[A+78|0]<<16|o[A+79|0]<<24,E=(t=a=-1==(0|c)&a>>>0>4294967167)>>>0>(a=a+(o[A+72|0]|o[A+73|0]<<8|o[A+74|0]<<16|o[A+75|0]<<24)|0)>>>0?E+1|0:E,C[A+72|0]=a,C[A+73|0]=a>>>8,C[A+74|0]=a>>>16,C[A+75|0]=a>>>24,C[A+76|0]=E,C[A+77|0]=E>>>8,C[A+78|0]=E>>>16,C[A+79|0]=E>>>24,p(A,E=A+96|0),a=(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)-128|0,C[A+352|0]=a,C[A+353|0]=a>>>8,C[A+354|0]=a>>>16,C[A+355|0]=a>>>24,a>>>0>=129)break A;Ng(E,A+224|0,a),_=o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24}a=t=o[A+68|0]|o[A+69|0]<<8|o[A+70|0]<<16|o[A+71|0]<<24,a=(c=_+(E=o[A+64|0]|o[A+65|0]<<8|o[A+66|0]<<16|o[A+67|0]<<24)|0)>>>0<_>>>0?a+1|0:a,C[A+64|0]=c,C[A+65|0]=c>>>8,C[A+66|0]=c>>>16,C[A+67|0]=c>>>24,C[A+68|0]=a,C[A+69|0]=a>>>8,C[A+70|0]=a>>>16,C[A+71|0]=a>>>24,a=(0|a)==(0|t)&E>>>0>c>>>0|a>>>0>>0,E=o[A+76|0]|o[A+77|0]<<8|o[A+78|0]<<16|o[A+79|0]<<24,E=(t=a)>>>0>(a=a+(o[A+72|0]|o[A+73|0]<<8|o[A+74|0]<<16|o[A+75|0]<<24)|0)>>>0?E+1|0:E,C[A+72|0]=a,C[A+73|0]=a>>>8,C[A+74|0]=a>>>16,C[A+75|0]=a>>>24,C[A+76|0]=E,C[A+77|0]=E>>>8,C[A+78|0]=E>>>16,C[A+79|0]=E>>>24,o[A+356|0]&&(C[A+88|0]=255,C[A+89|0]=255,C[A+90|0]=255,C[A+91|0]=255,C[A+92|0]=255,C[A+93|0]=255,C[A+94|0]=255,C[A+95|0]=255),C[A+80|0]=255,C[A+81|0]=255,C[A+82|0]=255,C[A+83|0]=255,C[A+84|0]=255,C[A+85|0]=255,C[A+86|0]=255,C[A+87|0]=255,bg((a=A+96|0)+_|0,0,256-_|0),p(A,a),E=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,i[B>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[B+4>>2]=E,E=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,i[B+8>>2]=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,i[B+12>>2]=E,E=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,i[B+16>>2]=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,i[B+20>>2]=E,E=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,i[B+24>>2]=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,i[B+28>>2]=E,E=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,i[B+32>>2]=o[A+32|0]|o[A+33|0]<<8|o[A+34|0]<<16|o[A+35|0]<<24,i[B+36>>2]=E,E=o[A+44|0]|o[A+45|0]<<8|o[A+46|0]<<16|o[A+47|0]<<24,i[B+40>>2]=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,i[B+44>>2]=E,E=o[A+52|0]|o[A+53|0]<<8|o[A+54|0]<<16|o[A+55|0]<<24,i[B+48>>2]=o[A+48|0]|o[A+49|0]<<8|o[A+50|0]<<16|o[A+51|0]<<24,i[B+52>>2]=E,E=o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24,i[B+56>>2]=o[A+56|0]|o[A+57|0]<<8|o[A+58|0]<<16|o[A+59|0]<<24,i[B+60>>2]=E,Ng(I,B,g),XC(A,64),XC(a,256),a=0}return s=B- -64|0,a}rC(),Q()}r(1386,1234,306,1142),Q()}function IA(A,I,g){A|=0,I|=0,g|=0;var B,Q,E,a=0,_=0;s=B=s-192|0,i[B+144>>2]=0,i[B+148>>2]=0,i[B+152>>2]=0,i[B+156>>2]=0,i[B+104>>2]=0,i[B+108>>2]=0,i[B+112>>2]=0,i[B+116>>2]=0,i[B+120>>2]=0,i[B+124>>2]=0,a=i[8799],i[B+168>>2]=i[8798],i[B+172>>2]=a,a=i[8801],i[B+176>>2]=i[8800],i[B+180>>2]=a,a=i[8803],i[B+184>>2]=i[8802],i[B+188>>2]=a,i[B+128>>2]=0,i[B+132>>2]=0,i[B+136>>2]=0,i[B+140>>2]=0,i[B+96>>2]=0,i[B+100>>2]=0,a=i[8797],i[B+160>>2]=i[8796],i[B+164>>2]=a,a=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,i[B+80>>2]=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,i[B+84>>2]=a,a=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,i[B+88>>2]=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,i[B+92>>2]=a,a=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,i[B+64>>2]=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24,i[B+68>>2]=a,a=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,i[B+72>>2]=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,i[B+76>>2]=a,Eg(g=B+128|0,a=B- -64|0),S(g),_=i[B+156>>2],i[B+24>>2]=i[B+152>>2],i[B+28>>2]=_,_=i[B+148>>2],i[B+16>>2]=i[B+144>>2],i[B+20>>2]=_,_=i[B+140>>2],i[B+8>>2]=i[B+136>>2],i[B+12>>2]=_,_=i[B+132>>2],i[B>>2]=i[B+128>>2],i[B+4>>2]=_,i[B+120>>2]=0,i[B+124>>2]=0,i[B+112>>2]=0,i[B+116>>2]=0,i[B+104>>2]=0,i[B+108>>2]=0,i[B+96>>2]=0,i[B+100>>2]=0,_=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[B+80>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[B+84>>2]=_,_=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[B+88>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[B+92>>2]=_,_=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,Q=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,E=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[B+56>>2]=0,i[B+60>>2]=0,i[B+48>>2]=0,i[B+52>>2]=0,i[B+40>>2]=0,i[B+44>>2]=0,i[B+64>>2]=E,i[B+68>>2]=I,i[B+72>>2]=_,i[B+76>>2]=Q,i[B+32>>2]=0,i[B+36>>2]=0,og(a,B),I=i[B+124>>2],i[B+184>>2]=i[B+120>>2],i[B+188>>2]=I,I=i[B+116>>2],i[B+176>>2]=i[B+112>>2],i[B+180>>2]=I,I=i[B+108>>2],i[B+168>>2]=i[B+104>>2],i[B+172>>2]=I,I=i[B+100>>2],i[B+160>>2]=i[B+96>>2],i[B+164>>2]=I,I=i[B+92>>2],i[B+152>>2]=i[B+88>>2],i[B+156>>2]=I,I=i[B+84>>2],i[B+144>>2]=i[B+80>>2],i[B+148>>2]=I,I=i[B+76>>2],i[B+136>>2]=i[B+72>>2],i[B+140>>2]=I,I=i[B+68>>2],i[B+128>>2]=i[B+64>>2],i[B+132>>2]=I,S(g),I=i[B+156>>2],a=i[B+152>>2],C[A+24|0]=a,C[A+25|0]=a>>>8,C[A+26|0]=a>>>16,C[A+27|0]=a>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[B+148>>2],a=i[B+144>>2],C[A+16|0]=a,C[A+17|0]=a>>>8,C[A+18|0]=a>>>16,C[A+19|0]=a>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[B+140>>2],a=i[B+136>>2],C[A+8|0]=a,C[A+9|0]=a>>>8,C[A+10|0]=a>>>16,C[A+11|0]=a>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[B+132>>2],a=i[B+128>>2],C[0|A]=a,C[A+1|0]=a>>>8,C[A+2|0]=a>>>16,C[A+3|0]=a>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,XC(g,64),s=B+192|0}function gA(A){var I,g,B,Q,o,E,_,c,t,r,e=0,y=0,h=0,D=0,f=0;for(s=I=s-2048|0,$A(D=I+640|0,A),e=i[A+36>>2],i[I+352>>2]=i[A+32>>2],i[I+356>>2]=e,e=i[A+28>>2],i[I+344>>2]=i[A+24>>2],i[I+348>>2]=e,e=i[A+20>>2],i[I+336>>2]=i[A+16>>2],i[I+340>>2]=e,e=i[A+12>>2],i[I+328>>2]=i[A+8>>2],i[I+332>>2]=e,e=i[A+4>>2],i[I+320>>2]=i[A>>2],i[I+324>>2]=e,e=i[A+52>>2],i[I+368>>2]=i[A+48>>2],i[I+372>>2]=e,e=i[A+60>>2],i[I+376>>2]=i[A+56>>2],i[I+380>>2]=e,e=i[4+(h=A- -64|0)>>2],i[I+384>>2]=i[h>>2],i[I+388>>2]=e,e=i[A+76>>2],i[I+392>>2]=i[A+72>>2],i[I+396>>2]=e,e=i[A+44>>2],i[I+360>>2]=i[A+40>>2],i[I+364>>2]=e,e=i[A+92>>2],i[I+408>>2]=i[A+88>>2],i[I+412>>2]=e,e=i[A+100>>2],i[I+416>>2]=i[A+96>>2],i[I+420>>2]=e,e=i[A+108>>2],i[I+424>>2]=i[A+104>>2],i[I+428>>2]=e,e=i[A+116>>2],i[I+432>>2]=i[A+112>>2],i[I+436>>2]=e,e=i[A+84>>2],i[I+400>>2]=i[A+80>>2],i[I+404>>2]=e,KA(y=I+480|0,h=I+320|0),b(e=I+160|0,y,g=I+600|0),b(I+200|0,B=I+520|0,Q=I+560|0),b(I+240|0,Q,g),b(I+280|0,y,B),sA(y,e,D),b(h,y,g),b(_=I+360|0,B,Q),b(c=I+400|0,Q,g),b(t=I+440|0,y,B),$A(A=I+800|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+960|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+1120|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+1280|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+1440|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+1600|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(I+1760|0,h),i[I+32>>2]=0,i[I+36>>2]=0,i[I+24>>2]=0,i[I+28>>2]=0,i[I+16>>2]=0,i[I+20>>2]=0,i[I+8>>2]=0,i[I+12>>2]=0,i[I+52>>2]=0,i[I+56>>2]=0,i[I+60>>2]=0,i[I+64>>2]=0,i[I+68>>2]=0,i[I+72>>2]=0,i[I+76>>2]=0,i[I+80>>2]=1,i[I>>2]=0,i[I+4>>2]=0,i[I+44>>2]=0,i[I+48>>2]=0,i[I+40>>2]=1,bg(I+84|0,0,76),r=I+120|0,o=I+2008|0,E=I+1968|0,D=I+80|0,h=I+40|0,A=252;e=i[I+36>>2],i[(y=I+1960|0)>>2]=i[I+32>>2],i[y+4>>2]=e,e=i[I+28>>2],i[(y=I+1952|0)>>2]=i[I+24>>2],i[y+4>>2]=e,e=i[I+20>>2],i[(y=I+1944|0)>>2]=i[I+16>>2],i[y+4>>2]=e,e=i[I+12>>2],i[(y=I+1936|0)>>2]=i[I+8>>2],i[y+4>>2]=e,e=i[I+4>>2],i[I+1928>>2]=i[I>>2],i[I+1932>>2]=e,e=i[h+36>>2],i[E+32>>2]=i[h+32>>2],i[E+36>>2]=e,e=i[h+28>>2],i[E+24>>2]=i[h+24>>2],i[E+28>>2]=e,e=i[h+20>>2],i[E+16>>2]=i[h+16>>2],i[E+20>>2]=e,e=i[h+12>>2],i[E+8>>2]=i[h+8>>2],i[E+12>>2]=e,e=i[h+4>>2],i[E>>2]=i[h>>2],i[E+4>>2]=e,e=i[D+36>>2],i[o+32>>2]=i[D+32>>2],i[o+36>>2]=e,e=i[D+28>>2],i[o+24>>2]=i[D+24>>2],i[o+28>>2]=e,e=i[D+20>>2],i[o+16>>2]=i[D+16>>2],i[o+20>>2]=e,e=i[D+12>>2],i[o+8>>2]=i[D+8>>2],i[o+12>>2]=e,e=i[D+4>>2],i[o>>2]=i[D>>2],i[o+4>>2]=e,e=A,f=C[A+33712|0],KA(y=I+480|0,I+1928|0),(0|f)>0?(b(A=I+320|0,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),sA(y,A,(I+640|0)+a((254&f)>>>1|0,160)|0)):(0|f)>=0||(b(A=I+320|0,y=I+480|0,g),b(_,B,Q),b(c,Q,g),b(t,y,B),hA(y,A,(I+640|0)+a((0-f&254)>>>1|0,160)|0)),b(I,A=I+480|0,g),b(h,B,Q),b(D,Q,g),b(r,A,B),A=e-1|0,e;);return QI(A=I+640|0,I),A=GI(A,32),s=I+2048|0,A}function CA(A,I,g,B,Q){var i,E,a,_,c,t,r,e,y,s,h,D,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0;if(B?(d=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24,l=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,m=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,u=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24):(d=1797285236,m=1634760805,l=2036477234,u=857760878),B=i=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,N=E=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,U=a=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,w=d,S=_=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,G=l,b=c=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,M=t=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,n=r=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,I=e=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,K=u,f=y=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,p=s=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,k=h=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,g=D=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24,F=m,(0|Q)>0)for(;H=Lg(g+K|0,7)^b,x=Lg(H+K|0,9)^N,Y=Lg(B+F|0,7)^f,v=Lg(Y+F|0,9)^M,R=Lg(Y+v|0,13)^B,J=Lg(w+S|0,7)^p,n=Lg(J+w|0,9)^n,p=Lg(n+J|0,13)^S,w=Lg(n+p|0,18)^w,f=Lg(I+G|0,7)^U,B=R^Lg(w+f|0,7),N=Lg(B+w|0,9)^x,U=Lg(B+N|0,13)^f,w=Lg(N+U|0,18)^w,k=Lg(f+G|0,9)^k,f=Lg(k+f|0,13)^I,I=Lg(f+k|0,18)^G,S=Lg(I+H|0,7)^p,M=Lg(S+I|0,9)^v,b=Lg(S+M|0,13)^H,G=Lg(M+b|0,18)^I,g=Lg(H+x|0,13)^g,p=Lg(g+x|0,18)^K,I=Lg(p+Y|0,7)^f,n=Lg(I+p|0,9)^n,f=Lg(I+n|0,13)^Y,K=Lg(n+f|0,18)^p,F=Lg(v+R|0,18)^F,g=Lg(F+J|0,7)^g,k=Lg(g+F|0,9)^k,p=Lg(g+k|0,13)^J,F=Lg(k+p|0,18)^F,(0|(L=L+2|0))<(0|Q););Q=w+d|0,C[A+60|0]=Q,C[A+61|0]=Q>>>8,C[A+62|0]=Q>>>16,C[A+63|0]=Q>>>24,Q=U+a|0,C[A+56|0]=Q,C[A+57|0]=Q>>>8,C[A+58|0]=Q>>>16,C[A+59|0]=Q>>>24,Q=N+E|0,C[A+52|0]=Q,C[A+53|0]=Q>>>8,C[A+54|0]=Q>>>16,C[A+55|0]=Q>>>24,B=B+i|0,C[A+48|0]=B,C[A+49|0]=B>>>8,C[A+50|0]=B>>>16,C[A+51|0]=B>>>24,B=S+_|0,C[A+44|0]=B,C[A+45|0]=B>>>8,C[A+46|0]=B>>>16,C[A+47|0]=B>>>24,B=G+l|0,C[A+40|0]=B,C[A+41|0]=B>>>8,C[A+42|0]=B>>>16,C[A+43|0]=B>>>24,B=b+c|0,C[A+36|0]=B,C[A+37|0]=B>>>8,C[A+38|0]=B>>>16,C[A+39|0]=B>>>24,B=M+t|0,C[A+32|0]=B,C[A+33|0]=B>>>8,C[A+34|0]=B>>>16,C[A+35|0]=B>>>24,B=n+r|0,C[A+28|0]=B,C[A+29|0]=B>>>8,C[A+30|0]=B>>>16,C[A+31|0]=B>>>24,I=I+e|0,C[A+24|0]=I,C[A+25|0]=I>>>8,C[A+26|0]=I>>>16,C[A+27|0]=I>>>24,I=K+u|0,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=f+y|0,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24,I=p+s|0,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=k+h|0,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=g+D|0,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=F+m|0,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24}function BA(A){var I=0,g=0,C=0,B=0,Q=0,o=0,a=0,c=0,t=0;A:if(A|=0){Q=(C=A-8|0)+(A=-8&(I=i[A-4>>2]))|0;I:if(!(1&I)){if(!(2&I))break A;if((C=C-(I=i[C>>2])|0)>>>0>2],I>>>0<=255){if((0|(B=i[C+8>>2]))!=(0|g))break B;c=37620,t=i[9405]&Lg(-2,I>>>3|0),i[c>>2]=t;break I}if(a=i[C+24>>2],(0|g)!=(0|C)){I=i[C+8>>2],i[I+12>>2]=g,i[g+8>>2]=I;break g}if(B=i[C+20>>2])I=C+20|0;else{if(!(B=i[C+16>>2]))break C;I=C+16|0}for(;o=I,I=(g=B)+20|0,(B=i[g+20>>2])||(I=g+16|0,B=i[g+16>>2]););i[o>>2]=0;break g}if(3&~(I=i[Q+4>>2]))break I;return i[9407]=A,i[Q+4>>2]=-2&I,i[C+4>>2]=1|A,void(i[Q>>2]=A)}i[B+12>>2]=g,i[g+8>>2]=B;break I}g=0}if(a){I=i[C+28>>2];g:{if(i[(B=37924+(I<<2)|0)>>2]==(0|C)){if(i[B>>2]=g,g)break g;c=37624,t=i[9406]&Lg(-2,I),i[c>>2]=t;break I}if(i[a+(i[a+16>>2]==(0|C)?16:20)>>2]=g,!g)break I}i[g+24>>2]=a,(I=i[C+16>>2])&&(i[g+16>>2]=I,i[I+24>>2]=g),(I=i[C+20>>2])&&(i[g+20>>2]=I,i[I+24>>2]=g)}}if(!(C>>>0>=Q>>>0)&&1&(I=i[Q+4>>2])){I:{g:{C:{B:{if(!(2&I)){if((0|Q)==i[9411]){if(i[9411]=C,A=i[9408]+A|0,i[9408]=A,i[C+4>>2]=1|A,i[9410]!=(0|C))break A;return i[9407]=0,void(i[9410]=0)}if((0|Q)==i[9410])return i[9410]=C,A=i[9407]+A|0,i[9407]=A,i[C+4>>2]=1|A,void(i[A+C>>2]=A);if(A=(-8&I)+A|0,g=i[Q+12>>2],I>>>0<=255){if((0|(B=i[Q+8>>2]))==(0|g)){c=37620,t=i[9405]&Lg(-2,I>>>3|0),i[c>>2]=t;break g}i[B+12>>2]=g,i[g+8>>2]=B;break g}if(a=i[Q+24>>2],(0|g)!=(0|Q)){I=i[Q+8>>2],i[I+12>>2]=g,i[g+8>>2]=I;break C}if(B=i[Q+20>>2])I=Q+20|0;else{if(!(B=i[Q+16>>2]))break B;I=Q+16|0}for(;o=I,I=(g=B)+20|0,(B=i[g+20>>2])||(I=g+16|0,B=i[g+16>>2]););i[o>>2]=0;break C}i[Q+4>>2]=-2&I,i[C+4>>2]=1|A,i[A+C>>2]=A;break I}g=0}if(a){I=i[Q+28>>2];C:{if((0|Q)==i[(B=37924+(I<<2)|0)>>2]){if(i[B>>2]=g,g)break C;c=37624,t=i[9406]&Lg(-2,I),i[c>>2]=t;break g}if(i[a+((0|Q)==i[a+16>>2]?16:20)>>2]=g,!g)break g}i[g+24>>2]=a,(I=i[Q+16>>2])&&(i[g+16>>2]=I,i[I+24>>2]=g),(I=i[Q+20>>2])&&(i[g+20>>2]=I,i[I+24>>2]=g)}}if(i[C+4>>2]=1|A,i[A+C>>2]=A,i[9410]==(0|C))return void(i[9407]=A)}if(A>>>0<=255)return I=37660+(-8&A)|0,(B=i[9405])&(A=1<<(A>>>3))?A=i[I+8>>2]:(i[9405]=A|B,A=I),i[I+8>>2]=C,i[A+12>>2]=C,i[C+12>>2]=I,void(i[C+8>>2]=A);g=31,A>>>0<=16777215&&(g=62+((A>>>38-(I=_(A>>>8|0))&1)-(I<<1)|0)|0),i[C+28>>2]=g,i[C+16>>2]=0,i[C+20>>2]=0,o=37924+(g<<2)|0;I:{g:{if((I=i[9406])&(B=1<>>1|0):0),I=i[o>>2];;){if(B=I,(-8&i[I+4>>2])==(0|A))break g;if(I=g>>>29|0,g<<=1,!(I=i[(o=16+((4&I)+B|0)|0)>>2]))break}g=24,I=B}else i[9406]=I|B,g=24,I=o;B=C,Q=C,A=8;break I}I=i[B+8>>2],i[I+12>>2]=C,g=8,o=B+8|0,Q=0,A=24}i[o>>2]=C,i[g+C>>2]=I,i[C+12>>2]=B,i[A+C>>2]=Q,A=i[9413]-1|0,i[9413]=A||-1}}}function QA(A,I,g,C,B,E,a,_,c){var t=0,r=0,e=0,y=0,h=0,D=0,f=0,w=0;if(I-65>>>0<4294967232|a>>>0>64)A=-1;else{w=t=s,s=t=t-512&-64;A:{I:if(!(!(!(C|B)|g)|!A|((D=255&I)-65&255)>>>0<=191|!(!(I=255&a)||E)|I>>>0>=65)){if(I){if(!E)break I;_?(r=725511199^(o[_+8|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24),e=-1694144372^(o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24),a=-1377402159^(o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24),_=1359893119^(o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24)):(r=725511199,e=-1694144372,a=-1377402159,_=1359893119),c?(y=327033209^(o[c+8|0]|o[c+9|0]<<8|o[c+10|0]<<16|o[c+11|0]<<24),h=1541459225^(o[c+12|0]|o[c+13|0]<<8|o[c+14|0]<<16|o[c+15|0]<<24),f=-79577749^(o[0|c]|o[c+1|0]<<8|o[c+2|0]<<16|o[c+3|0]<<24),c=528734635^(o[c+4|0]|o[c+5|0]<<8|o[c+6|0]<<16|o[c+7|0]<<24)):(y=327033209,h=1541459225,f=-79577749,c=528734635),bg(t- -64|0,0,293),i[t+56>>2]=y,i[t+60>>2]=h,i[t+48>>2]=f,i[t+52>>2]=c,i[t+40>>2]=r,i[t+44>>2]=e,i[t+32>>2]=a,i[t+36>>2]=_,i[t+24>>2]=1595750129,i[t+28>>2]=-1521486534,i[t+16>>2]=-23791573,i[t+20>>2]=1013904242,i[t+8>>2]=-2067093701,i[t+12>>2]=-1150833019,i[t>>2]=-222443256^(I<<8|D),i[t+4>>2]=I>>>24^1779033703,bg((a=t+384|0)+I|0,0,128-I|0),Ng(a,E,I),Ng(t+96|0,a,128),i[t+352>>2]=128,XC(a,128),I=128}else _?(r=725511199^(o[_+8|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24),e=-1694144372^(o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24),E=1359893119^(o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24),I=-1377402159^(o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24)):(r=725511199,e=-1694144372,E=1359893119,I=-1377402159),c?(y=327033209^(o[c+8|0]|o[c+9|0]<<8|o[c+10|0]<<16|o[c+11|0]<<24),h=1541459225^(o[c+12|0]|o[c+13|0]<<8|o[c+14|0]<<16|o[c+15|0]<<24),_=528734635^(o[c+4|0]|o[c+5|0]<<8|o[c+6|0]<<16|o[c+7|0]<<24),a=-79577749^(o[0|c]|o[c+1|0]<<8|o[c+2|0]<<16|o[c+3|0]<<24)):(y=327033209,h=1541459225,_=528734635,a=-79577749),bg(t- -64|0,0,293),i[t+56>>2]=y,i[t+60>>2]=h,i[t+48>>2]=a,i[t+52>>2]=_,i[t+40>>2]=r,i[t+44>>2]=e,i[t+32>>2]=I,i[t+36>>2]=E,i[t+24>>2]=1595750129,i[t+28>>2]=-1521486534,i[t+16>>2]=-23791573,i[t+20>>2]=1013904242,i[t+8>>2]=-2067093701,i[t+12>>2]=-1150833019,i[t>>2]=-222443256^D,i[t+4>>2]=1779033703,I=0;g:if(C|B)for(c=t+224|0,_=t+96|0;;){if(a=I+_|0,!B&C>>>0<=(E=256-I|0)>>>0){Ng(a,g,C),i[t+352>>2]=C+i[t+352>>2];break g}if(Ng(a,g,E),i[t+352>>2]=E+i[t+352>>2],r=I=i[t+68>>2],I=(e=(a=i[t+64>>2])+128|0)>>>0<128?I+1|0:I,i[t+64>>2]=e,i[t+68>>2]=I,I=i[t+76>>2],I=(r=a=-1==(0|r)&a>>>0>4294967167)>>>0>(a=a+i[t+72>>2]|0)>>>0?I+1|0:I,i[t+72>>2]=a,i[t+76>>2]=I,p(t,_),Ng(_,c,128),I=i[t+352>>2]-128|0,i[t+352>>2]=I,g=g+E|0,!((B=B-(C>>>0>>0)|0)|(C=C-E|0)))break}AA(t,A,D),s=w;break A}rC(),Q()}A=0}return A}function iA(A,I,g,B,Q,E,_){var c,t,r=0,e=0,y=0;if(s=c=s+-64|0,t=K(32)){i[c+36>>2]=0,i[c+40>>2]=0,i[c+28>>2]=0,i[c+32>>2]=0,i[c+24>>2]=16,i[c+20>>2]=Q,i[c+16>>2]=B,i[c+12>>2]=g,i[c+8>>2]=32,i[c+4>>2]=t,i[c+60>>2]=0,i[c+56>>2]=1,i[c+52>>2]=1,i[c+48>>2]=I,i[c+44>>2]=A;A:if(A=q(c+4|0,_))XC(t,32);else{if(E){r=c+4|0,s=Q=s-32|0,A=-31;I:{g:{C:switch(_-1|0){case 1:A=o[1434]|o[1435]<<8|o[1436]<<16|o[1437]<<24,I=o[1430]|o[1431]<<8|o[1432]<<16|o[1433]<<24,C[0|E]=I,C[E+1|0]=I>>>8,C[E+2|0]=I>>>16,C[E+3|0]=I>>>24,C[E+4|0]=A,C[E+5|0]=A>>>8,C[E+6|0]=A>>>16,C[E+7|0]=A>>>24,A=o[1439]|o[1440]<<8|o[1441]<<16|o[1442]<<24,I=o[1435]|o[1436]<<8|o[1437]<<16|o[1438]<<24,C[E+5|0]=I,C[E+6|0]=I>>>8,C[E+7|0]=I>>>16,C[E+8|0]=I>>>24,C[E+9|0]=A,C[E+10|0]=A>>>8,C[E+11|0]=A>>>16,C[E+12|0]=A>>>24,g=-12,I=12;break g;case 0:break C;default:break I}A=o[1422]|o[1423]<<8|o[1424]<<16|o[1425]<<24,I=o[1418]|o[1419]<<8|o[1420]<<16|o[1421]<<24,C[0|E]=I,C[E+1|0]=I>>>8,C[E+2|0]=I>>>16,C[E+3|0]=I>>>24,C[E+4|0]=A,C[E+5|0]=A>>>8,C[E+6|0]=A>>>16,C[E+7|0]=A>>>24,A=o[1426]|o[1427]<<8|o[1428]<<16|o[1429]<<24,C[E+8|0]=A,C[E+9|0]=A>>>8,C[E+10|0]=A>>>16,C[E+11|0]=A>>>24,g=-11,I=11}if(!(A=nI(r)))if(C[Q+13|0]=0,C[Q+11|0]=49,C[Q+12|0]=57,(g=g+128|0)>>>0<=(A=RI(Q+11|0))>>>0)A=-31;else if(I=Ng(I+E|0,Q+11|0,A+1|0),(e=g-A|0)>>>0<4)A=-31;else{for(C[0|(_=A+I|0)]=36,C[_+1|0]=109,C[_+2|0]=61,C[_+3|0]=0,A=i[r+44>>2],I=10;g=I,B=(A>>>0)/10|0,C[0|(y=(I=I-1|0)+(Q+22|0)|0)]=A-a(B,10)|48,!(A>>>0<10)&&(A=B,I););if(Ng(A=Q+11|0,y,I=11-g|0),C[A+I|0]=0,(I=e-3|0)>>>0<=(A=RI(A))>>>0)A=-31;else if(g=Ng(_+3|0,Q+11|0,A+1|0),(e=I-A|0)>>>0<4)A=-31;else{for(C[0|(_=A+g|0)]=44,C[_+1|0]=116,C[_+2|0]=61,C[_+3|0]=0,A=i[r+40>>2],I=10;g=I,B=(A>>>0)/10|0,C[0|(y=(I=I-1|0)+(Q+22|0)|0)]=A-a(B,10)|48,!(A>>>0<10)&&(A=B,I););if(Ng(A=Q+11|0,y,I=11-g|0),C[A+I|0]=0,(I=e-3|0)>>>0<=(A=RI(A))>>>0)A=-31;else if(g=Ng(_+3|0,Q+11|0,A+1|0),(e=I-A|0)>>>0<4)A=-31;else{for(C[0|(_=A+g|0)]=44,C[_+1|0]=112,C[_+2|0]=61,C[_+3|0]=0,A=i[r+48>>2],I=10;g=I,B=(A>>>0)/10|0,C[0|(y=(I=I-1|0)+(Q+22|0)|0)]=A-a(B,10)|48,!(A>>>0<10)&&(A=B,I););Ng(A=Q+11|0,y,I=11-g|0),C[A+I|0]=0,(I=e-3|0)>>>0<=(A=RI(A))>>>0?A=-31:(g=Ng(_+3|0,Q+11|0,A+1|0),(B=I-A|0)>>>0<2?A=-31:(C[0|(A=A+g|0)]=36,C[A+1|0]=0,XA(I=A+1|0,g=B-1|0,i[r+16>>2],i[r+20>>2],3)?(A=-31,(B=(B=g)-(g=RI(I))|0)>>>0<2||(C[0|(A=I+g|0)]=36,C[A+1|0]=0,A=XA(A+1|0,B-1|0,i[r>>2],i[r+4>>2],3)?0:-31)):A=-31))}}}}if(s=Q+32|0,A){XC(t,32),XC(E,128),A=-31;break A}}XC(t,32),A=0}BA(t)}else A=-22;return s=c- -64|0,A}function oA(A,I){var g,C=0,B=0,Q=0,o=0,E=0,a=0,c=0;g=A+I|0;A:{I:if(!(1&(C=i[A+4>>2]))){if(!(2&C))break A;I=(C=i[A>>2])+I|0;g:{C:{B:{if((0|(A=A-C|0))!=i[9410]){if(B=i[A+12>>2],C>>>0<=255){if((0|(Q=i[A+8>>2]))!=(0|B))break B;a=37620,c=i[9405]&Lg(-2,C>>>3|0),i[a>>2]=c;break I}if(o=i[A+24>>2],(0|A)!=(0|B)){C=i[A+8>>2],i[C+12>>2]=B,i[B+8>>2]=C;break g}if(Q=i[A+20>>2])C=A+20|0;else{if(!(Q=i[A+16>>2]))break C;C=A+16|0}for(;E=C,C=(B=Q)+20|0,(Q=i[B+20>>2])||(C=B+16|0,Q=i[B+16>>2]););i[E>>2]=0;break g}if(3&~(C=i[g+4>>2]))break I;return i[9407]=I,i[g+4>>2]=-2&C,i[A+4>>2]=1|I,void(i[g>>2]=I)}i[Q+12>>2]=B,i[B+8>>2]=Q;break I}B=0}if(o){C=i[A+28>>2];g:{if(i[(Q=37924+(C<<2)|0)>>2]==(0|A)){if(i[Q>>2]=B,B)break g;a=37624,c=i[9406]&Lg(-2,C),i[a>>2]=c;break I}if(i[o+(i[o+16>>2]==(0|A)?16:20)>>2]=B,!B)break I}i[B+24>>2]=o,(C=i[A+16>>2])&&(i[B+16>>2]=C,i[C+24>>2]=B),(C=i[A+20>>2])&&(i[B+20>>2]=C,i[C+24>>2]=B)}}I:{g:{C:{B:{if(!(2&(C=i[g+4>>2]))){if(i[9411]==(0|g)){if(i[9411]=A,I=i[9408]+I|0,i[9408]=I,i[A+4>>2]=1|I,i[9410]!=(0|A))break A;return i[9407]=0,void(i[9410]=0)}if(i[9410]==(0|g))return i[9410]=A,I=i[9407]+I|0,i[9407]=I,i[A+4>>2]=1|I,void(i[A+I>>2]=I);if(I=(-8&C)+I|0,B=i[g+12>>2],C>>>0<=255){if((0|(Q=i[g+8>>2]))==(0|B)){a=37620,c=i[9405]&Lg(-2,C>>>3|0),i[a>>2]=c;break g}i[Q+12>>2]=B,i[B+8>>2]=Q;break g}if(o=i[g+24>>2],(0|B)!=(0|g)){C=i[g+8>>2],i[C+12>>2]=B,i[B+8>>2]=C;break C}if(Q=i[g+20>>2])C=g+20|0;else{if(!(Q=i[g+16>>2]))break B;C=g+16|0}for(;E=C,C=(B=Q)+20|0,(Q=i[B+20>>2])||(C=B+16|0,Q=i[B+16>>2]););i[E>>2]=0;break C}i[g+4>>2]=-2&C,i[A+4>>2]=1|I,i[A+I>>2]=I;break I}B=0}if(o){C=i[g+28>>2];C:{if(i[(Q=37924+(C<<2)|0)>>2]==(0|g)){if(i[Q>>2]=B,B)break C;a=37624,c=i[9406]&Lg(-2,C),i[a>>2]=c;break g}if(i[o+(i[o+16>>2]==(0|g)?16:20)>>2]=B,!B)break g}i[B+24>>2]=o,(C=i[g+16>>2])&&(i[B+16>>2]=C,i[C+24>>2]=B),(C=i[g+20>>2])&&(i[B+20>>2]=C,i[C+24>>2]=B)}}if(i[A+4>>2]=1|I,i[A+I>>2]=I,i[9410]==(0|A))return void(i[9407]=I)}if(I>>>0<=255)return C=37660+(-8&I)|0,(B=i[9405])&(I=1<<(I>>>3))?I=i[C+8>>2]:(i[9405]=I|B,I=C),i[C+8>>2]=A,i[I+12>>2]=A,i[A+12>>2]=C,void(i[A+8>>2]=I);B=31,I>>>0<=16777215&&(B=62+((I>>>38-(C=_(I>>>8|0))&1)-(C<<1)|0)|0),i[A+28>>2]=B,i[A+16>>2]=0,i[A+20>>2]=0,C=37924+(B<<2)|0;I:{if((Q=i[9406])&(E=1<>>1|0):0),C=i[C>>2];;){if(Q=C,(-8&i[C+4>>2])==(0|I))break I;if(C=B>>>29|0,B<<=1,!(C=i[16+(E=Q+(4&C)|0)>>2]))break}i[E+16>>2]=A,i[A+24>>2]=Q}else i[9406]=Q|E,i[C>>2]=A,i[A+24>>2]=C;return i[A+12>>2]=A,void(i[A+8>>2]=A)}I=i[Q+8>>2],i[I+12>>2]=A,i[Q+8>>2]=A,i[A+24>>2]=0,i[A+12>>2]=Q,i[A+8>>2]=I}}function EA(A,I){var g,B=0,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0;return s=g=s-512|0,B=-1,E=o[I+31|0],Q=o[0|I],1&(((255&(127&~E|~(o[I+1|0]&o[I+2|0]&o[I+3|0]&o[I+4|0]&o[I+5|0]&o[I+6|0]&o[I+7|0]&o[I+8|0]&o[I+9|0]&o[I+10|0]&o[I+11|0]&o[I+12|0]&o[I+13|0]&o[I+14|0]&o[I+15|0]&o[I+16|0]&o[I+17|0]&o[I+18|0]&o[I+19|0]&o[I+20|0]&o[I+21|0]&o[I+22|0]&o[I+23|0]&o[I+24|0]&o[I+25|0]&o[I+26|0]&o[I+27|0]&o[I+28|0]&o[I+29|0]&o[I+30|0])))-1&236-Q)>>>8|Q|E>>>7)||(fA(E=g+336|0,I),R(g+288|0,E),I=i[g+324>>2],i[g+276>>2]=0-I,B=i[g+320>>2],i[g+272>>2]=0-B,Q=i[g+316>>2],i[g+268>>2]=0-Q,a=i[g+312>>2],i[g+264>>2]=0-a,_=i[g+308>>2],i[g+260>>2]=0-_,c=i[g+304>>2],i[g+256>>2]=0-c,t=i[g+300>>2],i[g+252>>2]=0-t,r=i[g+296>>2],i[g+248>>2]=0-r,e=i[g+292>>2],i[g+244>>2]=0-e,y=i[g+288>>2],i[g+240>>2]=1-y,R(h=g+144|0,p=g+240|0),i[g+228>>2]=I,i[g+224>>2]=B,i[g+220>>2]=Q,i[g+216>>2]=a,i[g+212>>2]=_,i[g+208>>2]=c,i[g+204>>2]=t,i[g+200>>2]=r,i[g+196>>2]=e,i[g+192>>2]=y+1,R(B=g+96|0,a=g+192|0),b(I=g+48|0,1584,h),Q=i[g+96>>2],_=i[g+48>>2],c=i[g+100>>2],t=i[g+52>>2],r=i[g+104>>2],e=i[g+56>>2],y=i[g+108>>2],h=i[g+60>>2],D=i[g+112>>2],f=i[g+64>>2],w=i[g+116>>2],n=i[g+68>>2],k=i[g+120>>2],F=i[g+72>>2],S=i[g+124>>2],N=i[g+76>>2],G=i[g+128>>2],M=i[g+80>>2],i[g+84>>2]=0-(i[g+84>>2]+i[g+132>>2]|0),i[g+80>>2]=0-(G+M|0),i[g+76>>2]=0-(S+N|0),i[g+72>>2]=0-(k+F|0),i[g+68>>2]=0-(w+n|0),i[g+64>>2]=0-(D+f|0),i[g+60>>2]=0-(y+h|0),i[g+56>>2]=0-(r+e|0),i[g+52>>2]=0-(c+t|0),i[g+48>>2]=0-(Q+_|0),b(g,I,B),i[g+404>>2]=0,i[g+408>>2]=0,i[g+412>>2]=0,i[g+416>>2]=0,i[g+420>>2]=0,i[g+388>>2]=0,i[g+392>>2]=0,i[g+384>>2]=1,i[g+396>>2]=0,i[g+400>>2]=0,f=GA(Q=g+432|0,g+384|0,g),b(A,Q,a),b(B=A+40|0,Q,A),b(B,B,I),b(A,A,E),E=i[A+36>>2]<<1,i[A+36>>2]=E,Q=i[A+32>>2]<<1,i[A+32>>2]=Q,a=i[A+28>>2]<<1,i[A+28>>2]=a,_=i[A+24>>2]<<1,i[A+24>>2]=_,c=i[A+20>>2]<<1,i[A+20>>2]=c,t=i[A+16>>2]<<1,i[A+16>>2]=t,r=i[A+12>>2]<<1,i[A+12>>2]=r,e=i[A+8>>2]<<1,i[A+8>>2]=e,y=i[A+4>>2]<<1,i[A+4>>2]=y,h=i[A>>2]<<1,i[A>>2]=h,QI(D=g+480|0,A),I=0-(1&C[g+480|0])|0,i[A+36>>2]=E^I&(E^0-E),i[A+32>>2]=Q^I&(Q^0-Q),i[A+28>>2]=a^I&(a^0-a),i[A+24>>2]=_^I&(_^0-_),i[A+20>>2]=c^I&(c^0-c),i[A+16>>2]=t^I&(t^0-t),i[A+12>>2]=r^I&(r^0-r),i[A+8>>2]=e^I&(e^0-e),i[A+4>>2]=y^I&(y^0-y),i[A>>2]=h^I&(h^0-h),b(B,p,B),i[A+84>>2]=0,i[A+88>>2]=0,i[A+80>>2]=1,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,i[A+116>>2]=0,b(I=A+120|0,A,B),QI(D,I),A=o[g+480|0],QI(D,B),B=0-(GI(D,32)|1-f|1&A)|0),s=g+512|0,B}function aA(A,I,g,B){var Q,o=0,E=0;Q=o=s,s=o=o-576&-64,i[o+188>>2]=I;A:if(I>>>0<=64){if((0|eA(E=o+192|0,0,0,I))<0)break A;if((0|WA(E,o+188|0,4,0))<0)break A;if((0|WA(E,g,B,0))<0)break A;Hg(E,A,I)}else if(!((0|eA(E=o+192|0,0,0,64))<0||(0|WA(E,o+188|0,4,0))<0||(0|WA(E,g,B,0))<0||(0|Hg(E,o+112|0,64))<0)){if(g=i[o+116>>2],B=i[o+112>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,g=i[o+124>>2],B=i[o+120>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=g,C[A+13|0]=g>>>8,C[A+14|0]=g>>>16,C[A+15|0]=g>>>24,g=i[o+140>>2],B=i[o+136>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=g,C[A+29|0]=g>>>8,C[A+30|0]=g>>>16,C[A+31|0]=g>>>24,g=i[o+132>>2],B=i[o+128>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=g,C[A+21|0]=g>>>8,C[A+22|0]=g>>>16,C[A+23|0]=g>>>24,A=A+32|0,(I=I-32|0)>>>0>=65)for(;;){if(g=i[o+172>>2],i[o+104>>2]=i[o+168>>2],i[o+108>>2]=g,g=i[o+164>>2],i[o+96>>2]=i[o+160>>2],i[o+100>>2]=g,g=i[o+156>>2],i[o+88>>2]=i[o+152>>2],i[o+92>>2]=g,g=i[o+148>>2],i[o+80>>2]=i[o+144>>2],i[o+84>>2]=g,g=i[o+140>>2],i[o+72>>2]=i[o+136>>2],i[o+76>>2]=g,B=i[o+132>>2],i[(g=o- -64|0)>>2]=i[o+128>>2],i[g+4>>2]=B,g=i[o+124>>2],i[o+56>>2]=i[o+120>>2],i[o+60>>2]=g,g=i[o+116>>2],i[o+48>>2]=i[o+112>>2],i[o+52>>2]=g,(0|lA(o+112|0,64,o+48|0,64,0,0,0))<0)break A;if(g=i[o+116>>2],B=i[o+112>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,g=i[o+124>>2],B=i[o+120>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=g,C[A+13|0]=g>>>8,C[A+14|0]=g>>>16,C[A+15|0]=g>>>24,g=i[o+140>>2],B=i[o+136>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=g,C[A+29|0]=g>>>8,C[A+30|0]=g>>>16,C[A+31|0]=g>>>24,g=i[o+132>>2],B=i[o+128>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=g,C[A+21|0]=g>>>8,C[A+22|0]=g>>>16,C[A+23|0]=g>>>24,A=A+32|0,!((I=I-32|0)>>>0>64))break}g=i[o+172>>2],i[o+104>>2]=i[o+168>>2],i[o+108>>2]=g,g=i[o+164>>2],i[o+96>>2]=i[o+160>>2],i[o+100>>2]=g,g=i[o+156>>2],i[o+88>>2]=i[o+152>>2],i[o+92>>2]=g,g=i[o+148>>2],i[o+80>>2]=i[o+144>>2],i[o+84>>2]=g,g=i[o+140>>2],i[o+72>>2]=i[o+136>>2],i[o+76>>2]=g,B=i[o+132>>2],i[(g=o- -64|0)>>2]=i[o+128>>2],i[g+4>>2]=B,g=i[o+124>>2],i[o+56>>2]=i[o+120>>2],i[o+60>>2]=g,g=i[o+116>>2],i[o+48>>2]=i[o+112>>2],i[o+52>>2]=g,(0|lA(g=o+112|0,I,o+48|0,64,0,0,0))<0||Ng(A,g,I)}XC(o+192|0,384),s=Q}function _A(A,I,g,B,Q,_,c,t,r,e,y){var h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0;if(h=Ig(r,0,t,0),!(n=f)&h>>>0>=1073741824|n)return i[9404]=22,-1;if(1==(0|c)|c>>>0>1)return i[9404]=22,-1;if(h=c,!(!(_&(n=_-1|0)|c&(h=-1!=(0|n)?h+1|0:h))&(!c&_>>>0>=2|!!(0|c))))return i[9404]=28,-1;if(!r||!t)return i[9404]=28,-1;if(!(33554431/(r>>>0)>>>0>>0|t>>>0>16777215)&&!c&33554431/(t>>>0)>>>0>=_>>>0&&!((M=a(G=t<<7,r))>>>0>(h=(k=a(_,G))+M|0)>>>0||(D=h)>>>0>(h=((F=t<<8)+h|0)- -64|0)>>>0)){A:{if(h>>>0>E[A+8>>2]){if(w=-1,Rg(A))break A;if(s=n=s-16|0,D=tI(n+12|0,h),i[9404]=D,D=D?0:i[n+12>>2],i[A+4>>2]=D,i[A>>2]=D,i[A+8>>2]=D?h:0,s=n+16|0,!D)break A}for(DI(I,g,B,Q,U=i[A+4>>2],M),Y=((k=(D=(K=M+U|0)+k|0)+(t<<7)|0)+G|0)-64|0,Q=_-1|0,N=t<<5,b=D+F|0,J=(D+G|0)-64|0;;){for(F=a(G,H)+U|0,w=0;B=(A=w<<2)+F|0,i[A+D>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,h=(B=4|A)+D|0,B=B+F|0,i[h>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,h=(B=8|A)+D|0,B=B+F|0,i[h>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,B=(A|=12)+D|0,A=A+F|0,i[B>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,n=0,h=0,(0|N)!=(0|(w=w+4|0)););for(B=0,A=0;Ng(K+(a(B,N)<<2)|0,D,G),tA(D,k,b,t),Ng(K+(a(N,1|B)<<2)|0,k,G),tA(k,D,b,t),(0|c)==(0|(A=(B=B+2|0)>>>0<2?A+1|0:A))&B>>>0<_>>>0|A>>>0>>0;);for(;;){for(A=K+(a(N,Q&i[J>>2])<<2)|0,w=0;i[(p=(B=w<<2)+D|0)>>2]=i[p>>2]^i[A+B>>2],i[(S=(p=4|B)+D|0)>>2]=i[S>>2]^i[A+p>>2],i[(S=(p=8|B)+D|0)>>2]=i[S>>2]^i[A+p>>2],i[(p=(B|=12)+D|0)>>2]=i[p>>2]^i[A+B>>2],(0|N)!=(0|(w=w+4|0)););for(tA(D,k,b,t),A=K+(a(N,Q&i[Y>>2])<<2)|0,w=0;i[(p=(B=w<<2)+k|0)>>2]=i[p>>2]^i[A+B>>2],i[(S=(p=4|B)+k|0)>>2]=i[S>>2]^i[A+p>>2],i[(S=(p=8|B)+k|0)>>2]=i[S>>2]^i[A+p>>2],i[(p=(B|=12)+k|0)>>2]=i[p>>2]^i[A+B>>2],(0|N)!=(0|(w=w+4|0)););if(tA(k,D,b,t),w=0,!((0|c)==(0|(h=(n=n+2|0)>>>0<2?h+1|0:h))&_>>>0>n>>>0|c>>>0>h>>>0))break}for(;B=(A=w<<2)+F|0,h=i[A+D>>2],C[0|B]=h,C[B+1|0]=h>>>8,C[B+2|0]=h>>>16,C[B+3|0]=h>>>24,B=(h=4|A)+F|0,h=i[h+D>>2],C[0|B]=h,C[B+1|0]=h>>>8,C[B+2|0]=h>>>16,C[B+3|0]=h>>>24,B=(h=8|A)+F|0,h=i[h+D>>2],C[0|B]=h,C[B+1|0]=h>>>8,C[B+2|0]=h>>>16,C[B+3|0]=h>>>24,A=(B=12|A)+F|0,B=i[B+D>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,(0|N)!=(0|(w=w+4|0)););if((0|(H=H+1|0))==(0|r))break}DI(I,g,U,M,e,y),w=0}return w}return i[9404]=48,-1}function cA(A,I,g){A|=0,I|=0,g|=0;var B,Q,E,a=0;s=B=s-192|0,i[B+96>>2]=0,i[B+100>>2]=0,i[B+104>>2]=0,i[B+108>>2]=0,i[B+112>>2]=0,i[B+116>>2]=0,i[B+120>>2]=0,i[B+124>>2]=0,a=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[B+80>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[B+84>>2]=a,a=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[B+88>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[B+92>>2]=a,Q=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,E=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,a=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[B+40>>2]=0,i[B+44>>2]=0,i[B+48>>2]=0,i[B+52>>2]=0,i[B+56>>2]=0,i[B+60>>2]=0,i[B+64>>2]=a,i[B+68>>2]=I,i[B+72>>2]=Q,i[B+76>>2]=E,i[B+32>>2]=0,i[B+36>>2]=0,I=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,i[B+16>>2]=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,i[B+20>>2]=I,I=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,i[B+24>>2]=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,i[B+28>>2]=I,I=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,i[B>>2]=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24,i[B+4>>2]=I,I=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,i[B+8>>2]=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,i[B+12>>2]=I,og(B- -64|0,B),g=i[B+124>>2],i[B+184>>2]=i[B+120>>2],i[B+188>>2]=g,I=i[B+116>>2],i[B+176>>2]=i[B+112>>2],i[B+180>>2]=I,I=i[B+108>>2],i[B+168>>2]=i[B+104>>2],i[B+172>>2]=I,I=i[B+100>>2],i[B+160>>2]=i[B+96>>2],i[B+164>>2]=I,I=i[B+92>>2],i[B+152>>2]=i[B+88>>2],i[B+156>>2]=I,I=i[B+84>>2],i[B+144>>2]=i[B+80>>2],i[B+148>>2]=I,I=i[B+76>>2],i[B+136>>2]=i[B+72>>2],i[B+140>>2]=I,I=i[B+68>>2],i[B+128>>2]=i[B+64>>2],i[B+132>>2]=I,S(I=B+128|0),a=i[B+156>>2],g=i[B+152>>2],C[A+24|0]=g,C[A+25|0]=g>>>8,C[A+26|0]=g>>>16,C[A+27|0]=g>>>24,C[A+28|0]=a,C[A+29|0]=a>>>8,C[A+30|0]=a>>>16,C[A+31|0]=a>>>24,a=i[B+148>>2],g=i[B+144>>2],C[A+16|0]=g,C[A+17|0]=g>>>8,C[A+18|0]=g>>>16,C[A+19|0]=g>>>24,C[A+20|0]=a,C[A+21|0]=a>>>8,C[A+22|0]=a>>>16,C[A+23|0]=a>>>24,a=i[B+140>>2],g=i[B+136>>2],C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=a,C[A+13|0]=a>>>8,C[A+14|0]=a>>>16,C[A+15|0]=a>>>24,a=i[B+132>>2],g=i[B+128>>2],C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=a,C[A+5|0]=a>>>8,C[A+6|0]=a>>>16,C[A+7|0]=a>>>24,XC(I,64),s=B+192|0}function tA(A,I,g,C){var B=0,Q=0,o=0,E=0,a=0;if(Q=i[4+(B=((C<<7)+A|0)-64|0)>>2],i[g>>2]=i[B>>2],i[g+4>>2]=Q,Q=i[B+60>>2],i[g+56>>2]=i[B+56>>2],i[g+60>>2]=Q,Q=i[B+52>>2],i[g+48>>2]=i[B+48>>2],i[g+52>>2]=Q,Q=i[B+44>>2],i[g+40>>2]=i[B+40>>2],i[g+44>>2]=Q,Q=i[B+36>>2],i[g+32>>2]=i[B+32>>2],i[g+36>>2]=Q,Q=i[B+28>>2],i[g+24>>2]=i[B+24>>2],i[g+28>>2]=Q,Q=i[B+20>>2],i[g+16>>2]=i[B+16>>2],i[g+20>>2]=Q,Q=i[B+12>>2],i[g+8>>2]=i[B+8>>2],i[g+12>>2]=Q,C)for(Q=C<<1,a=C<<6;C=(E<<6)+A|0,i[g>>2]=i[g>>2]^i[C>>2],i[g+4>>2]=i[g+4>>2]^i[C+4>>2],i[g+8>>2]=i[g+8>>2]^i[C+8>>2],i[g+12>>2]=i[g+12>>2]^i[C+12>>2],i[g+16>>2]=i[g+16>>2]^i[C+16>>2],i[g+20>>2]=i[g+20>>2]^i[C+20>>2],i[g+24>>2]=i[g+24>>2]^i[C+24>>2],i[g+28>>2]=i[g+28>>2]^i[C+28>>2],i[g+32>>2]=i[g+32>>2]^i[C+32>>2],i[g+36>>2]=i[g+36>>2]^i[C+36>>2],i[g+40>>2]=i[g+40>>2]^i[C+40>>2],i[g+44>>2]=i[g+44>>2]^i[C+44>>2],i[g+48>>2]=i[g+48>>2]^i[C+48>>2],i[g+52>>2]=i[g+52>>2]^i[C+52>>2],i[g+56>>2]=i[g+56>>2]^i[C+56>>2],i[g+60>>2]=i[g+60>>2]^i[C+60>>2],VA(g),o=i[g+60>>2],i[56+(B=(E<<5)+I|0)>>2]=i[g+56>>2],i[B+60>>2]=o,o=i[g+52>>2],i[B+48>>2]=i[g+48>>2],i[B+52>>2]=o,o=i[g+44>>2],i[B+40>>2]=i[g+40>>2],i[B+44>>2]=o,o=i[g+36>>2],i[B+32>>2]=i[g+32>>2],i[B+36>>2]=o,o=i[g+28>>2],i[B+24>>2]=i[g+24>>2],i[B+28>>2]=o,o=i[g+20>>2],i[B+16>>2]=i[g+16>>2],i[B+20>>2]=o,o=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=o,o=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=o,i[g>>2]=i[g>>2]^i[C- -64>>2],i[g+4>>2]=i[g+4>>2]^i[C+68>>2],i[g+8>>2]=i[g+8>>2]^i[C+72>>2],i[g+12>>2]=i[g+12>>2]^i[C+76>>2],i[g+16>>2]=i[g+16>>2]^i[C+80>>2],i[g+20>>2]=i[g+20>>2]^i[C+84>>2],i[g+24>>2]=i[g+24>>2]^i[C+88>>2],i[g+28>>2]=i[g+28>>2]^i[C+92>>2],i[g+32>>2]=i[g+32>>2]^i[C+96>>2],i[g+36>>2]=i[g+36>>2]^i[C+100>>2],i[g+40>>2]=i[g+40>>2]^i[C+104>>2],i[g+44>>2]=i[g+44>>2]^i[C+108>>2],i[g+48>>2]=i[g+48>>2]^i[C+112>>2],i[g+52>>2]=i[g+52>>2]^i[C+116>>2],i[g+56>>2]=i[g+56>>2]^i[C+120>>2],i[g+60>>2]=i[g+60>>2]^i[C+124>>2],VA(g),C=B+a|0,B=i[g+60>>2],i[C+56>>2]=i[g+56>>2],i[C+60>>2]=B,B=i[g+52>>2],i[C+48>>2]=i[g+48>>2],i[C+52>>2]=B,B=i[g+44>>2],i[C+40>>2]=i[g+40>>2],i[C+44>>2]=B,B=i[g+36>>2],i[C+32>>2]=i[g+32>>2],i[C+36>>2]=B,B=i[g+28>>2],i[C+24>>2]=i[g+24>>2],i[C+28>>2]=B,B=i[g+20>>2],i[C+16>>2]=i[g+16>>2],i[C+20>>2]=B,B=i[g+12>>2],i[C+8>>2]=i[g+8>>2],i[C+12>>2]=B,B=i[g+4>>2],i[C>>2]=i[g>>2],i[C+4>>2]=B,Q>>>0>(E=E+2|0)>>>0;);}function rA(A,I,g,C){var B=0,Q=0,E=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0;if(h=i[A+36>>2],y=i[A+32>>2],s=i[A+28>>2],r=i[A+24>>2],e=i[A+20>>2],!C&g>>>0>=16|C)for(M=!o[A+80|0]<<24,p=i[A+4>>2],K=a(p,5),n=i[A+8>>2],N=a(n,5),F=i[A+12>>2],S=a(F,5),G=i[A+16>>2],k=a(G,5),w=i[A>>2];B=Ig(E=((o[I+3|0]|o[I+4|0]<<8|o[I+5|0]<<16|o[I+6|0]<<24)>>>2&67108863)+r|0,0,F,0),c=f,e=(_=Ig(r=(67108863&(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24))+e|0,0,G,0))+B|0,B=f+c|0,B=_>>>0>e>>>0?B+1|0:B,c=Ig(s=((o[I+6|0]|o[I+7|0]<<8|o[I+8|0]<<16|o[I+9|0]<<24)>>>4&67108863)+s|0,0,n,0),B=f+B|0,B=c>>>0>(e=c+e|0)>>>0?B+1|0:B,c=Ig(y=((o[I+9|0]|o[I+10|0]<<8|o[I+11|0]<<16|o[I+12|0]<<24)>>>6|0)+y|0,0,p,0),B=f+B|0,B=c>>>0>(e=c+e|0)>>>0?B+1|0:B,c=Ig(h=h+M+((o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)>>>8)|0,0,w,0),B=f+B|0,U=e=c+e|0,e=c>>>0>e>>>0?B+1|0:B,B=Ig(E,0,n,0),c=f,_=Ig(r,0,F,0),Q=f+c|0,Q=(B=_+B|0)>>>0<_>>>0?Q+1|0:Q,c=(_=Ig(s,0,p,0))+B|0,B=f+Q|0,B=_>>>0>c>>>0?B+1|0:B,_=Ig(y,0,w,0),B=f+B|0,B=_>>>0>(c=_+c|0)>>>0?B+1|0:B,_=Ig(h,0,k,0),B=f+B|0,b=c=_+c|0,c=_>>>0>c>>>0?B+1|0:B,B=Ig(E,0,p,0),t=f,_=(Q=Ig(r,0,n,0))+B|0,B=f+t|0,B=Q>>>0>_>>>0?B+1|0:B,t=Ig(s,0,w,0),Q=f+B|0,Q=(_=t+_|0)>>>0>>0?Q+1|0:Q,t=Ig(y,0,k,0),B=f+Q|0,B=(_=t+_|0)>>>0>>0?B+1|0:B,t=Ig(h,0,S,0),B=f+B|0,H=_=t+_|0,_=_>>>0>>0?B+1|0:B,B=Ig(E,0,w,0),Q=f,t=(D=Ig(r,0,p,0))+B|0,B=f+Q|0,B=t>>>0>>0?B+1|0:B,Q=Ig(s,0,k,0),B=f+B|0,B=Q>>>0>(t=Q+t|0)>>>0?B+1|0:B,D=Ig(y,0,S,0),Q=f+B|0,Q=(t=D+t|0)>>>0>>0?Q+1|0:Q,D=Ig(h,0,N,0),B=f+Q|0,B=(t=D+t|0)>>>0>>0?B+1|0:B,D=t,t=B,B=Ig(E,0,k,0),Q=f,E=(r=Ig(r,0,w,0))+B|0,B=f+Q|0,B=E>>>0>>0?B+1|0:B,r=Ig(s,0,S,0),B=f+B|0,B=(E=r+E|0)>>>0>>0?B+1|0:B,r=Ig(y,0,N,0),B=f+B|0,B=(E=r+E|0)>>>0>>0?B+1|0:B,r=Ig(h,0,K,0),Q=f+B|0,Q=(E=r+E|0)>>>0>>0?Q+1|0:Q,r=E,B=t,B=(E=(s=(67108863&Q)<<6|E>>>26)+D|0)>>>0>>0?B+1|0:B,s=E,y=(67108863&B)<<6|E>>>26,B=_,B=(E=y+H|0)>>>0>>0?B+1|0:B,y=E,Q=c,h=B=(E=(67108863&B)<<6|E>>>26)+b|0,c=(67108863&(Q=B>>>0>>0?Q+1|0:Q))<<6|B>>>26,B=e,r=(67108863&s)+((B=a((67108863&((E=c+U|0)>>>0>>0?B+1:B))<<6|E>>>26,5)+(67108863&r)|0)>>>26|0)|0,s=67108863&y,y=67108863&h,h=67108863&E,e=67108863&B,I=I+16|0,!(C=C-(g>>>0<16)|0)&(g=g-16|0)>>>0>15|C;);i[A+20>>2]=e,i[A+36>>2]=h,i[A+32>>2]=y,i[A+28>>2]=s,i[A+24>>2]=r}function eA(A,I,g,B){A|=0,I|=0;var i=0;return i=-1,(B|=0)-65>>>0<4294967232|(g|=0)>>>0>64||(g&&I?(s=i=s-128|0,!I|((B&=255)-65&255)>>>0<=191|((g&=255)-65&255)>>>0<=191?(rC(),Q()):(bg(A- -64|0,0,293),C[A+56|0]=121,C[A+57|0]=33,C[A+58|0]=126,C[A+59|0]=19,C[A+60|0]=25,C[A+61|0]=205,C[A+62|0]=224,C[A+63|0]=91,C[A+48|0]=107,C[A+49|0]=189,C[A+50|0]=65,C[A+51|0]=251,C[A+52|0]=171,C[A+53|0]=217,C[A+54|0]=131,C[A+55|0]=31,C[A+40|0]=31,C[A+41|0]=108,C[A+42|0]=62,C[A+43|0]=43,C[A+44|0]=140,C[A+45|0]=104,C[A+46|0]=5,C[A+47|0]=155,C[A+32|0]=209,C[A+33|0]=130,C[A+34|0]=230,C[A+35|0]=173,C[A+36|0]=127,C[A+37|0]=82,C[A+38|0]=14,C[A+39|0]=81,C[A+24|0]=241,C[A+25|0]=54,C[A+26|0]=29,C[A+27|0]=95,C[A+28|0]=58,C[A+29|0]=245,C[A+30|0]=79,C[A+31|0]=165,C[A+16|0]=43,C[A+17|0]=248,C[A+18|0]=148,C[A+19|0]=254,C[A+20|0]=114,C[A+21|0]=243,C[A+22|0]=110,C[A+23|0]=60,C[A+8|0]=59,C[A+9|0]=167,C[A+10|0]=202,C[A+11|0]=132,C[A+12|0]=133,C[A+13|0]=174,C[A+14|0]=103,C[A+15|0]=187,B=-222443256^(g<<8|B),C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,B=g>>>24^1779033703,C[A+4|0]=B,C[A+5|0]=B>>>8,C[A+6|0]=B>>>16,C[A+7|0]=B>>>24,g=Ng(bg(i,0,128),I,g),Ng(A+96|0,g,128),I=128+(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)|0,C[A+352|0]=I,C[A+353|0]=I>>>8,C[A+354|0]=I>>>16,C[A+355|0]=I>>>24,XC(g,128),s=g+128|0)):(((I=255&B)-65&255)>>>0<=191&&(rC(),Q()),bg(A- -64|0,0,293),C[A+56|0]=121,C[A+57|0]=33,C[A+58|0]=126,C[A+59|0]=19,C[A+60|0]=25,C[A+61|0]=205,C[A+62|0]=224,C[A+63|0]=91,C[A+48|0]=107,C[A+49|0]=189,C[A+50|0]=65,C[A+51|0]=251,C[A+52|0]=171,C[A+53|0]=217,C[A+54|0]=131,C[A+55|0]=31,C[A+40|0]=31,C[A+41|0]=108,C[A+42|0]=62,C[A+43|0]=43,C[A+44|0]=140,C[A+45|0]=104,C[A+46|0]=5,C[A+47|0]=155,C[A+32|0]=209,C[A+33|0]=130,C[A+34|0]=230,C[A+35|0]=173,C[A+36|0]=127,C[A+37|0]=82,C[A+38|0]=14,C[A+39|0]=81,C[A+24|0]=241,C[A+25|0]=54,C[A+26|0]=29,C[A+27|0]=95,C[A+28|0]=58,C[A+29|0]=245,C[A+30|0]=79,C[A+31|0]=165,C[A+16|0]=43,C[A+17|0]=248,C[A+18|0]=148,C[A+19|0]=254,C[A+20|0]=114,C[A+21|0]=243,C[A+22|0]=110,C[A+23|0]=60,C[A+8|0]=59,C[A+9|0]=167,C[A+10|0]=202,C[A+11|0]=132,C[A+12|0]=133,C[A+13|0]=174,C[A+14|0]=103,C[A+15|0]=187,I^=-222443256,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,C[A+4|0]=103,C[A+5|0]=230,C[A+6|0]=9,C[A+7|0]=106),i=0),0|i}function yA(A,I,g,B){A|=0,I|=0,g|=0;var Q=0,i=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0;for((B|=0)?(i=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,E=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,Q=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,t=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24):(i=2036477234,E=857760878,Q=1634760805,t=1797285236),a=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,e=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,_=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,y=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,c=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,w=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,s=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,B=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,h=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,D=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,I=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,g=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24;r=g,g=Lg((f=I)^(I=g+Q|0),16),r=s=Lg(r^(Q=g+s|0),12),p=Lg((f=I+s|0)^g,8),I=Lg(r^(s=p+Q|0),7),a=Lg((g=B+t|0)^a,16),B=Lg((y=a+y|0)^B,12),r=h,i=Lg((t=i+h|0)^e,16),Q=Lg(r^(h=i+c|0),12),c=Lg((c=i)^(i=Q+t|0),8),g=Lg(c^(t=(n=g+B|0)+I|0),16),e=Lg((E=E+D|0)^_,16),D=Lg((_=e+w|0)^D,12),r=I,I=Lg((E=D+E|0)^e,8),r=Lg(r^(_=(k=I+_|0)+g|0),12),e=Lg(g^(t=r+t|0),8),g=Lg((w=e+_|0)^r,7),a=Lg(a^n,8),B=Lg((y=a+y|0)^B,7),_=Lg((i=B+i|0)^I,16),B=Lg((I=_+s|0)^B,12),_=Lg(_^(i=B+i|0),8),B=Lg((s=I+_|0)^B,7),I=Lg((c=c+h|0)^Q,7),h=Lg((E=I+E|0)^p,16),p=Lg(I^(Q=h+y|0),12),I=Lg(h^(E=p+E|0),8),h=Lg((y=Q+I|0)^p,7),r=c,c=a,Q=Lg(D^k,7),c=Lg(c^(a=Q+f|0),16),f=Lg(Q^(D=r+c|0),12),a=Lg(c^(Q=f+a|0),8),D=Lg((c=D+a|0)^f,7),10!=(0|(F=F+1|0)););return C[0|A]=Q,C[A+1|0]=Q>>>8,C[A+2|0]=Q>>>16,C[A+3|0]=Q>>>24,C[A+28|0]=a,C[A+29|0]=a>>>8,C[A+30|0]=a>>>16,C[A+31|0]=a>>>24,C[A+24|0]=e,C[A+25|0]=e>>>8,C[A+26|0]=e>>>16,C[A+27|0]=e>>>24,C[A+20|0]=_,C[A+21|0]=_>>>8,C[A+22|0]=_>>>16,C[A+23|0]=_>>>24,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24,C[A+12|0]=t,C[A+13|0]=t>>>8,C[A+14|0]=t>>>16,C[A+15|0]=t>>>24,C[A+8|0]=i,C[A+9|0]=i>>>8,C[A+10|0]=i>>>16,C[A+11|0]=i>>>24,C[A+4|0]=E,C[A+5|0]=E>>>8,C[A+6|0]=E>>>16,C[A+7|0]=E>>>24,0}function sA(A,I,g){var C,B,Q,o,E,a,_,c,t,r,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0;y=i[I+4>>2],e=i[I+44>>2],h=i[I+8>>2],D=i[I+48>>2],f=i[I+12>>2],p=i[I+52>>2],w=i[I+16>>2],n=i[I+56>>2],k=i[I+20>>2],F=i[I+60>>2],S=i[I+24>>2],N=i[(s=I- -64|0)>>2],G=i[I+28>>2],M=i[I+68>>2],K=i[I+32>>2],U=i[I+72>>2],H=i[I+36>>2],Y=i[I+76>>2],i[A>>2]=i[I>>2]+i[I+40>>2],i[A+36>>2]=H+Y,i[A+32>>2]=K+U,i[A+28>>2]=G+M,i[A+24>>2]=S+N,i[A+20>>2]=k+F,i[A+16>>2]=w+n,i[A+12>>2]=f+p,i[A+8>>2]=h+D,i[A+4>>2]=e+y,e=i[I+4>>2],h=i[I+44>>2],D=i[I+8>>2],f=i[I+48>>2],p=i[I+12>>2],w=i[I+52>>2],n=i[I+16>>2],k=i[I+56>>2],F=i[I+20>>2],S=i[I+60>>2],N=i[I+24>>2],s=i[s>>2],y=i[I+28>>2],G=i[I+68>>2],M=i[I+32>>2],K=i[I+72>>2],U=i[I>>2],H=i[I+40>>2],i[A+76>>2]=i[I+76>>2]-i[I+36>>2],i[A+72>>2]=K-M,i[A+68>>2]=G-y,i[(y=A- -64|0)>>2]=s-N,i[A+60>>2]=S-F,i[A+56>>2]=k-n,i[A+52>>2]=w-p,i[A+48>>2]=f-D,i[A+44>>2]=h-e,i[A+40>>2]=H-U,b(A+80|0,A,g),b(e=A+40|0,e,g+40|0),b(A+120|0,g+120|0,I+120|0),b(A,I+80|0,g+80|0),H=i[A+4>>2],Y=i[A+8>>2],Q=i[A+12>>2],o=i[A+16>>2],E=i[A+20>>2],a=i[A+24>>2],_=i[A+28>>2],c=i[A+32>>2],t=i[A+36>>2],I=i[A+44>>2],g=i[A+84>>2],e=i[A+48>>2],h=i[A+88>>2],D=i[A+52>>2],f=i[A+92>>2],p=i[A+56>>2],w=i[A+96>>2],n=i[A+60>>2],k=i[A+100>>2],F=i[y>>2],S=i[A+104>>2],s=i[A+68>>2],N=i[A+108>>2],G=i[A+72>>2],M=i[A+112>>2],r=i[A>>2],K=i[A+40>>2],U=i[A+80>>2],C=i[A+76>>2],B=i[A+116>>2],i[A+76>>2]=C+B,i[A+72>>2]=G+M,i[A+68>>2]=s+N,i[y>>2]=F+S,i[A+60>>2]=n+k,i[A+56>>2]=p+w,i[A+52>>2]=D+f,i[A+48>>2]=e+h,i[A+44>>2]=I+g,i[A+40>>2]=K+U,i[A+36>>2]=B-C,i[A+32>>2]=M-G,i[A+28>>2]=N-s,i[A+24>>2]=S-F,i[A+20>>2]=k-n,i[A+16>>2]=w-p,i[A+12>>2]=f-D,i[A+8>>2]=h-e,i[A+4>>2]=g-I,i[A>>2]=U-K,I=t<<1,g=i[A+156>>2],i[A+156>>2]=I-g,y=c<<1,e=i[A+152>>2],i[A+152>>2]=y-e,h=_<<1,D=i[A+148>>2],i[A+148>>2]=h-D,f=a<<1,p=i[A+144>>2],i[A+144>>2]=f-p,w=E<<1,n=i[A+140>>2],i[A+140>>2]=w-n,k=o<<1,F=i[A+136>>2],i[A+136>>2]=k-F,S=Q<<1,s=i[A+132>>2],i[A+132>>2]=S-s,N=Y<<1,G=i[A+128>>2],i[A+128>>2]=N-G,M=H<<1,K=i[A+124>>2],i[A+124>>2]=M-K,U=r<<1,H=i[A+120>>2],i[A+120>>2]=U-H,i[A+112>>2]=e+y,i[A+108>>2]=h+D,i[A+104>>2]=f+p,i[A+100>>2]=w+n,i[A+96>>2]=k+F,i[A+92>>2]=S+s,i[A+88>>2]=N+G,i[A+84>>2]=M+K,i[A+80>>2]=U+H,i[A+116>>2]=I+g}function hA(A,I,g){var C,B,Q,o,E,a,_,c,t,r,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0;y=i[I+4>>2],e=i[I+44>>2],h=i[I+8>>2],D=i[I+48>>2],f=i[I+12>>2],p=i[I+52>>2],w=i[I+16>>2],n=i[I+56>>2],k=i[I+20>>2],F=i[I+60>>2],S=i[I+24>>2],N=i[(s=I- -64|0)>>2],G=i[I+28>>2],M=i[I+68>>2],K=i[I+32>>2],U=i[I+72>>2],H=i[I+36>>2],Y=i[I+76>>2],i[A>>2]=i[I>>2]+i[I+40>>2],i[A+36>>2]=H+Y,i[A+32>>2]=K+U,i[A+28>>2]=G+M,i[A+24>>2]=S+N,i[A+20>>2]=k+F,i[A+16>>2]=w+n,i[A+12>>2]=f+p,i[A+8>>2]=h+D,i[A+4>>2]=e+y,e=i[I+4>>2],h=i[I+44>>2],D=i[I+8>>2],f=i[I+48>>2],p=i[I+12>>2],w=i[I+52>>2],n=i[I+16>>2],k=i[I+56>>2],F=i[I+20>>2],S=i[I+60>>2],N=i[I+24>>2],s=i[s>>2],y=i[I+28>>2],G=i[I+68>>2],M=i[I+32>>2],K=i[I+72>>2],U=i[I>>2],H=i[I+40>>2],i[A+76>>2]=i[I+76>>2]-i[I+36>>2],i[A+72>>2]=K-M,i[A+68>>2]=G-y,i[(y=A- -64|0)>>2]=s-N,i[A+60>>2]=S-F,i[A+56>>2]=k-n,i[A+52>>2]=w-p,i[A+48>>2]=f-D,i[A+44>>2]=h-e,i[A+40>>2]=H-U,b(A+80|0,A,g+40|0),b(e=A+40|0,e,g),b(A+120|0,g+120|0,I+120|0),b(A,I+80|0,g+80|0),H=i[A+4>>2],Y=i[A+8>>2],Q=i[A+12>>2],o=i[A+16>>2],E=i[A+20>>2],a=i[A+24>>2],_=i[A+28>>2],c=i[A+32>>2],t=i[A+36>>2],I=i[A+44>>2],g=i[A+84>>2],e=i[A+48>>2],h=i[A+88>>2],D=i[A+52>>2],f=i[A+92>>2],p=i[A+56>>2],w=i[A+96>>2],n=i[A+60>>2],k=i[A+100>>2],F=i[y>>2],S=i[A+104>>2],s=i[A+68>>2],N=i[A+108>>2],G=i[A+72>>2],M=i[A+112>>2],r=i[A>>2],K=i[A+40>>2],U=i[A+80>>2],C=i[A+76>>2],B=i[A+116>>2],i[A+76>>2]=C+B,i[A+72>>2]=G+M,i[A+68>>2]=s+N,i[y>>2]=F+S,i[A+60>>2]=n+k,i[A+56>>2]=p+w,i[A+52>>2]=D+f,i[A+48>>2]=e+h,i[A+44>>2]=I+g,i[A+40>>2]=K+U,i[A+36>>2]=B-C,i[A+32>>2]=M-G,i[A+28>>2]=N-s,i[A+24>>2]=S-F,i[A+20>>2]=k-n,i[A+16>>2]=w-p,i[A+12>>2]=f-D,i[A+8>>2]=h-e,i[A+4>>2]=g-I,i[A>>2]=U-K,I=i[A+156>>2],g=t<<1,i[A+156>>2]=I+g,y=i[A+152>>2],e=c<<1,i[A+152>>2]=y+e,h=i[A+148>>2],D=_<<1,i[A+148>>2]=h+D,f=i[A+144>>2],p=a<<1,i[A+144>>2]=f+p,w=i[A+140>>2],n=E<<1,i[A+140>>2]=w+n,k=i[A+136>>2],F=o<<1,i[A+136>>2]=k+F,S=i[A+132>>2],s=Q<<1,i[A+132>>2]=S+s,N=i[A+128>>2],G=Y<<1,i[A+128>>2]=N+G,M=i[A+124>>2],K=H<<1,i[A+124>>2]=M+K,U=i[A+120>>2],H=r<<1,i[A+120>>2]=U+H,i[A+112>>2]=e-y,i[A+108>>2]=D-h,i[A+104>>2]=p-f,i[A+100>>2]=n-w,i[A+96>>2]=F-k,i[A+92>>2]=s-S,i[A+88>>2]=G-N,i[A+84>>2]=K-M,i[A+80>>2]=H-U,i[A+116>>2]=g-I}function DA(A,I,g){var C,B,Q,o,E,a,_,c,t,r,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0;y=i[I+4>>2],e=i[I+44>>2],h=i[I+8>>2],D=i[I+48>>2],f=i[I+12>>2],p=i[I+52>>2],w=i[I+16>>2],n=i[I+56>>2],k=i[I+20>>2],F=i[I+60>>2],S=i[I+24>>2],N=i[(s=I- -64|0)>>2],G=i[I+28>>2],M=i[I+68>>2],K=i[I+32>>2],U=i[I+72>>2],H=i[I+36>>2],Y=i[I+76>>2],i[A>>2]=i[I>>2]+i[I+40>>2],i[A+36>>2]=H+Y,i[A+32>>2]=K+U,i[A+28>>2]=G+M,i[A+24>>2]=S+N,i[A+20>>2]=k+F,i[A+16>>2]=w+n,i[A+12>>2]=f+p,i[A+8>>2]=h+D,i[A+4>>2]=e+y,e=i[I+4>>2],h=i[I+44>>2],D=i[I+8>>2],f=i[I+48>>2],p=i[I+12>>2],w=i[I+52>>2],n=i[I+16>>2],k=i[I+56>>2],F=i[I+20>>2],S=i[I+60>>2],N=i[I+24>>2],s=i[s>>2],y=i[I+28>>2],G=i[I+68>>2],M=i[I+32>>2],K=i[I+72>>2],U=i[I>>2],H=i[I+40>>2],i[A+76>>2]=i[I+76>>2]-i[I+36>>2],i[A+72>>2]=K-M,i[A+68>>2]=G-y,i[(y=A- -64|0)>>2]=s-N,i[A+60>>2]=S-F,i[A+56>>2]=k-n,i[A+52>>2]=w-p,i[A+48>>2]=f-D,i[A+44>>2]=h-e,i[A+40>>2]=H-U,b(A+80|0,A,g),b(e=A+40|0,e,g+40|0),b(A+120|0,g+80|0,I+120|0),H=i[I+84>>2],Y=i[I+88>>2],Q=i[I+92>>2],o=i[I+96>>2],E=i[I+100>>2],a=i[I+104>>2],_=i[I+108>>2],c=i[I+112>>2],t=i[I+116>>2],g=i[A+44>>2],e=i[A+84>>2],h=i[A+48>>2],D=i[A+88>>2],f=i[A+52>>2],p=i[A+92>>2],w=i[A+56>>2],n=i[A+96>>2],k=i[A+60>>2],F=i[A+100>>2],S=i[y>>2],s=i[A+104>>2],N=i[A+68>>2],G=i[A+108>>2],M=i[A+72>>2],K=i[A+112>>2],r=i[I+80>>2],I=i[A+40>>2],U=i[A+80>>2],C=i[A+76>>2],B=i[A+116>>2],i[A+76>>2]=C+B,i[A+72>>2]=M+K,i[A+68>>2]=N+G,i[y>>2]=S+s,i[A+60>>2]=k+F,i[A+56>>2]=w+n,i[A+52>>2]=f+p,i[A+48>>2]=h+D,i[A+44>>2]=g+e,i[A+40>>2]=I+U,i[A+36>>2]=B-C,i[A+32>>2]=K-M,i[A+28>>2]=G-N,i[A+24>>2]=s-S,i[A+20>>2]=F-k,i[A+16>>2]=n-w,i[A+12>>2]=p-f,i[A+8>>2]=D-h,i[A+4>>2]=e-g,i[A>>2]=U-I,I=t<<1,g=i[A+156>>2],i[A+156>>2]=I-g,y=c<<1,e=i[A+152>>2],i[A+152>>2]=y-e,h=_<<1,D=i[A+148>>2],i[A+148>>2]=h-D,f=a<<1,p=i[A+144>>2],i[A+144>>2]=f-p,w=E<<1,n=i[A+140>>2],i[A+140>>2]=w-n,k=o<<1,F=i[A+136>>2],i[A+136>>2]=k-F,S=Q<<1,s=i[A+132>>2],i[A+132>>2]=S-s,N=Y<<1,G=i[A+128>>2],i[A+128>>2]=N-G,M=H<<1,K=i[A+124>>2],i[A+124>>2]=M-K,U=r<<1,H=i[A+120>>2],i[A+120>>2]=U-H,i[A+112>>2]=e+y,i[A+108>>2]=h+D,i[A+104>>2]=f+p,i[A+100>>2]=w+n,i[A+96>>2]=k+F,i[A+92>>2]=S+s,i[A+88>>2]=N+G,i[A+84>>2]=M+K,i[A+80>>2]=U+H,i[A+116>>2]=I+g}function fA(A,I){var g,C,B,Q,E,a,_,c,t,r,e,y,s,h,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0;s=o[I+31|0],g=o[I+30|0],C=o[I+29|0],B=o[I+6|0],Q=o[I+5|0],E=o[I+4|0],a=o[I+9|0],_=o[I+8|0],c=o[I+7|0],t=o[I+12|0],K=o[I+11|0],U=o[I+10|0],r=o[I+15|0],b=o[I+14|0],e=o[I+13|0],S=o[I+28|0],M=o[I+27|0],N=o[I+26|0],F=o[I+25|0],n=o[I+24|0],w=o[I+23|0],h=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,k=(p=o[I+21|0])<<15,p=D=p>>>17|0,G=k,G|=(k=o[I+20|0])<<7,k=(D=k>>>25|0)|p,p=(D=o[I+22|0])>>>9|0,D=D<<23|G,p|=k,y=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,I=0,k=D,D=(33554431&(I=(G=y+16777216|0)>>>0<16777216?1:I))<<7|G>>>25,I=(I>>>25|0)+p|0,D=(p=k=k+D|0)>>>0>>0?I+1|0:I,I=(k=p+33554432|0)>>>0<33554432?D+1|0:D,i[A+24>>2]=p-(-67108864&k),D=(p=w>>>27|0)|n>>>19|F>>>11,p=w=(n=F<<21|(w=n<<13|w<<5))+(p=(67108863&(p=I))<<6|k>>>26)|0,I=D,D=(w=n+16777216|0)>>>0<16777216?I+1|0:I,i[A+28>>2]=p-(1040187392&w),p=(D=(I=D)>>>25|0)+(p=M>>>20|N>>>28|S>>>12)|0,I=p=(D=w=(I=(33554431&I)<<7|w>>>25)+(M<<12|N<<4|S<<20)|0)>>>0>>0?p+1|0:p,w=(S=D+33554432|0)>>>0<33554432?I+1|0:I,i[A+32>>2]=D-(-67108864&S),p=t>>>13|(D=K>>>21|U>>>29),I=(p=(M=16777216+(K=K<<11|U<<3|t<<19)|0)>>>0<16777216?p+1|0:p)>>>25|0,p=(D=n=b<<10|e<<2|r<<18)+(n=(33554431&p)<<7|M>>>25)|0,D=I+(F=b>>>22|e>>>30|r>>>14)|0,I=D=p>>>0>>0?D+1|0:D,n=((67108863&(I=(n=p+33554432|0)>>>0<33554432?I+1|0:I))<<6|(D=n)>>>26)+(N=y-(-33554432&G)|0)|0,i[A+20>>2]=n,i[A+16>>2]=p-(-67108864&D),D=Q>>>18|E>>>26|B>>>10,p=(D=(N=16777216+(U=Q<<14|E<<6|B<<22)|0)>>>0<16777216?D+1|0:D)>>>25|0,D=(I=n=_<<13|c<<5|a<<21)+(n=(33554431&D)<<7|N>>>25)|0,I=p+(F=_>>>19|c>>>27|a>>>11)|0,I=D>>>0>>0?I+1|0:I,p=(F=D+33554432|0)>>>0<33554432?I+1|0:I,i[A+8>>2]=D-(-67108864&F),S=(w=(67108863&w)<<6|S>>>26)+(b=s<<18&33292288|g<<10|C<<2)|0,I=D=g>>>22|C>>>30,D=(w=b+16777216|0)>>>0<16777216?I+1|0:I,i[A+36>>2]=S-(33554432&w),p=K+((67108863&p)<<6|F>>>26)|0,i[A+12>>2]=p-(234881024&M),n=U-(2113929216&N)|0,p=Ig((33554431&(I=D))<<7|w>>>25,D=I>>>25|0,19,0),I=f,p=(D=p+h|0)>>>0

>>0?I+1|0:I,w=((67108863&(p=(I=D+33554432|0)>>>0<33554432?p+1|0:p))<<6|I>>>26)+n|0,i[A+4>>2]=w,i[A>>2]=D-(-67108864&I)}function pA(A,I,g,B,E,a,_,c){A|=0,I|=0,g|=0,B|=0,E|=0,a|=0,_|=0;var t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0;if(1==(-7&(c|=0))){A:{I:{g:{C:{B:{Q:{i:{if(B){o:{E:{if(c>>>0<=3){for(;;){y=r;a:{_:{c:{t:{for(;;){if(t=(t=(e=C[g+y|0])-65|0)&(~(90-e)&~t)>>>8&255|e+4&(~(e+65488)&~(57-e))>>>8&255|e+185&(~(e+65439)&~(122-e))>>>8&255|~(1+(16336^e))>>>8&63|~(1+(16340^e))>>>8&62,255!=(0|(t|=(t-1&1+(65470^e))>>>8&255)))break t;if(t=0,!E)break o;if(!kI(E,e))break;if((y=y+1|0)>>>0>=B>>>0)break c}r=y;break o}if(D=t+(D<<6)|0,s>>>0>1)break _;s=s+6|0;break a}r=(A=r+1|0)>>>0>>0?B:A;break o}if(s=s-2|0,I>>>0<=h>>>0)break E;C[A+h|0]=D>>>s,h=h+1|0}if(t=0,!((r=y+1|0)>>>0>>0))break}break o}for(;;){a:{if(t=(t=(e=C[g+y|0])-65|0)&(~(90-e)&~t)>>>8&255|e+4&(~(e+65488)&~(57-e))>>>8&255|e+185&(~(e+65439)&~(122-e))>>>8&255|~(1+(16288^e))>>>8&63|~(1+(16338^e))>>>8&62,255==(0|(t|=(t-1&1+(65470^e))>>>8&255))){if(t=0,!E)break o;if(kI(E,e)){if((y=y+1|0)>>>0>=B>>>0)break a;continue}r=y;break o}if(D=t+(D<<6)|0,s>>>0<2)s=s+6|0;else{if(s=s-2|0,I>>>0<=h>>>0)break E;C[A+h|0]=D>>>s,h=h+1|0}if(t=0,(r=y+1|0)>>>0>=B>>>0)break o;y=r;continue}break}r=(A=r+1|0)>>>0>>0?B:A;break o}r=y,i[9404]=68,t=1}if(s>>>0>4)break i;A=r}else A=0;if(I=-1,t){r=A;break A}if(~(-1<>>0<2){c=A;break B}if(r=A>>>0>B>>>0?A:B,y=s>>>1|0,!E)break Q;for(c=A;;){if((0|c)==(0|r)){t=68;break C}if(61!=(0|(A=C[g+c|0]))){if(!kI(E,A)){t=28,r=c;break C}}else y=y-1|0;if(c=c+1|0,!y)break}break B}I=-1;break A}if(t=68,A>>>0>=B>>>0)break C;if(61!=o[A+g|0]){r=A,t=28;break C}if(c=A+y|0,1!=(0|y)){if((0|(s=A+1|0))==(0|r))break C;if(61!=o[g+s|0]){r=s,t=28;break C}if(2!=(0|y)){if((0|(A=A+2|0))==(0|r))break C;if(t=28,r=A,61!=o[A+g|0])break C}}}if(I=0,E)break g;break I}i[9404]=t;break A}if(!(B>>>0<=c>>>0)){for(;;){if(!kI(E,C[g+c|0]))break I;if((0|(c=c+1|0))==(0|B))break}c=B}}r=c,f=h}return _?i[_>>2]=g+r:(0|B)!=(0|r)&&(i[9404]=28,I=-1),a&&(i[a>>2]=f),0|I}rC(),Q()}function wA(A,I,g,B){A|=0,I|=0,g|=0;var Q=0,i=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0;for((B|=0)?(Q=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24,_=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,c=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,B=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24):(Q=1797285236,_=2036477234,c=857760878,B=1634760805),i=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,a=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,E=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,f=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,D=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,p=20,s=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,h=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,r=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,e=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,y=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,I=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,g=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24;t=Lg(g+c|0,7)^i,w=Lg(t+c|0,9)^D,r=Lg(B+s|0,7)^r,n=Lg(r+B|0,9)^a,k=Lg(n+r|0,13)^s,e=Lg(Q+h|0,7)^e,E=Lg(e+Q|0,9)^E,a=Lg(E+e|0,13)^h,Q=Lg(E+a|0,18)^Q,i=Lg(I+_|0,7)^f,s=k^Lg(Q+i|0,7),D=w^Lg(s+Q|0,9),f=Lg(s+D|0,13)^i,Q=Lg(D+f|0,18)^Q,y=Lg(i+_|0,9)^y,F=Lg(y+i|0,13)^I,I=Lg(F+y|0,18)^_,h=Lg(I+t|0,7)^a,a=Lg(h+I|0,9)^n,i=Lg(a+h|0,13)^t,_=Lg(i+a|0,18)^I,t=Lg(t+w|0,13)^g,g=Lg(t+w|0,18)^c,I=Lg(g+r|0,7)^F,E=Lg(I+g|0,9)^E,r=Lg(I+E|0,13)^r,c=Lg(E+r|0,18)^g,B=Lg(n+k|0,18)^B,g=Lg(B+e|0,7)^t,y=Lg(g+B|0,9)^y,e=Lg(g+y|0,13)^e,B=Lg(y+e|0,18)^B,t=p>>>0>2,p=p-2|0,t;);return C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+28|0]=i,C[A+29|0]=i>>>8,C[A+30|0]=i>>>16,C[A+31|0]=i>>>24,C[A+24|0]=a,C[A+25|0]=a>>>8,C[A+26|0]=a>>>16,C[A+27|0]=a>>>24,C[A+20|0]=E,C[A+21|0]=E>>>8,C[A+22|0]=E>>>16,C[A+23|0]=E>>>24,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24,C[A+12|0]=Q,C[A+13|0]=Q>>>8,C[A+14|0]=Q>>>16,C[A+15|0]=Q>>>24,C[A+8|0]=_,C[A+9|0]=_>>>8,C[A+10|0]=_>>>16,C[A+11|0]=_>>>24,C[A+4|0]=c,C[A+5|0]=c>>>8,C[A+6|0]=c>>>16,C[A+7|0]=c>>>24,0}function nA(A,I){var g,B,Q,E,a=0,_=0,c=0,t=0,r=0,e=0;for(s=g=s-480|0;c=(_=g+288|0)+(a<<1)|0,t=o[I+a|0],C[c+1|0]=t>>>4,C[0|c]=15&t,_=_+((c=1|a)<<1)|0,c=o[I+c|0],C[_+1|0]=c>>>4,C[0|_]=15&c,32!=(0|(a=a+2|0)););for(I=0;a=8+(_=(a=I)+o[0|(I=(g+288|0)+r|0)]|0)|0,C[0|I]=_-(240&a),a=8+(_=o[I+1|0]+(a<<24>>24>>4)|0)|0,C[I+1|0]=_-(240&a),a=8+(_=o[I+2|0]+(a<<24>>24>>4)|0)|0,C[I+2|0]=_-(240&a),I=a<<24>>24>>4,63!=(0|(r=r+3|0)););for(C[g+351|0]=o[g+351|0]+I,i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0,i[A>>2]=0,i[A+4>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+40>>2]=1,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A+80>>2]=1,bg(A+84|0,0,76),Q=A+120|0,r=A+80|0,I=A+40|0,_=g+208|0,B=g+168|0,c=g+248|0,a=1;zA(e=g+8|0,a>>>1|0,C[(g+288|0)+a|0]),DA(t=g+128|0,A,e),b(A,t,c),b(I,B,_),b(r,_,c),b(Q,t,B),e=a>>>0<62,a=a+2|0,e;);for(a=i[A+36>>2],i[g+392>>2]=i[A+32>>2],i[g+396>>2]=a,a=i[A+28>>2],i[g+384>>2]=i[A+24>>2],i[g+388>>2]=a,a=i[A+20>>2],i[g+376>>2]=i[A+16>>2],i[g+380>>2]=a,a=i[A+12>>2],i[g+368>>2]=i[A+8>>2],i[g+372>>2]=a,a=i[A+4>>2],i[g+360>>2]=i[A>>2],i[g+364>>2]=a,a=i[I+12>>2],i[g+408>>2]=i[I+8>>2],i[g+412>>2]=a,a=i[I+20>>2],i[g+416>>2]=i[I+16>>2],i[g+420>>2]=a,a=i[I+28>>2],i[g+424>>2]=i[I+24>>2],i[g+428>>2]=a,a=i[I+36>>2],i[g+432>>2]=i[I+32>>2],i[g+436>>2]=a,a=i[I+4>>2],i[g+400>>2]=i[I>>2],i[g+404>>2]=a,a=i[r+12>>2],i[g+448>>2]=i[r+8>>2],i[g+452>>2]=a,a=i[r+20>>2],i[g+456>>2]=i[r+16>>2],i[g+460>>2]=a,a=i[r+28>>2],i[g+464>>2]=i[r+24>>2],i[g+468>>2]=a,a=i[r+36>>2],i[g+472>>2]=i[r+32>>2],i[g+476>>2]=a,a=i[r+4>>2],i[g+440>>2]=i[r>>2],i[g+444>>2]=a,KA(t,a=g+360|0),b(a,t,c),b(e=g+400|0,B,_),b(E=g+440|0,_,c),KA(t,a),b(a,t,c),b(e,B,_),b(E,_,c),KA(t,a),b(a,t,c),b(e,B,_),b(E,_,c),KA(t,a),b(A,t,c),b(I,B,_),b(r,_,c),b(Q,t,B),a=0;zA(e=g+8|0,a>>>1|0,C[(g+288|0)+a|0]),DA(t=g+128|0,A,e),b(A,t,c),b(I,B,_),b(r,_,c),b(Q,t,B),t=a>>>0<62,a=a+2|0,t;);s=g+480|0}function kA(A,I){A|=0;var g,C,B,Q,i,o=0,E=0,a=0,_=0,c=0,t=0;for(s=g=s-736|0,n(c=g+704|0,I|=0,I),n(E=g+224|0,I,c),n(_=g+672|0,I,E),n(a=g+640|0,_,_),n(C=g+416|0,c,a),n(c=g+320|0,I,C),n(o=g+608|0,a,a),n(a=g+288|0,c,c),n(t=g+576|0,C,a),n(i=g+448|0,o,a),n(B=g+544|0,t,t),n(t=g+384|0,o,B),n(Q=g+352|0,E,t),n(E=g+192|0,o,Q),n(o=g+160|0,_,E),n(g+96|0,_,o),n(E=g+512|0,B,Q),n(o=g+480|0,_,E),n(E=g+256|0,i,o),n(g+128|0,a,E),n(a=g- -64|0,t,o),n(o=g+32|0,_,a),n(g,C,o),n(A,c,g),_=0;n(A,A,A),126!=(0|(_=_+1|0)););return n(A,A,g+352|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+704|0),n(A,A,g),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+160|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+256|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g- -64|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+96|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+320|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+512|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+192|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+480|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+128|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+32|0),s=g+736|0,0-GI(I,32)|0}function FA(A,I,g){A|=0;var B,Q,i,E,a=0,_=0,c=0,t=0,r=0;return s=i=s-160|0,FI(I|=0,g|=0,32,0),C[0|I]=248&o[0|I],C[I+31|0]=63&o[I+31|0]|64,nA(i,I),tg(A,i),_=o[(Q=g)+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,a=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,c=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,t=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,r=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,g=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,E=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,B=I,I=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,C[B+24|0]=I,C[B+25|0]=I>>>8,C[B+26|0]=I>>>16,C[B+27|0]=I>>>24,C[B+28|0]=E,C[B+29|0]=E>>>8,C[B+30|0]=E>>>16,C[B+31|0]=E>>>24,C[B+16|0]=c,C[B+17|0]=c>>>8,C[B+18|0]=c>>>16,C[B+19|0]=c>>>24,C[B+20|0]=t,C[B+21|0]=t>>>8,C[B+22|0]=t>>>16,C[B+23|0]=t>>>24,C[B+8|0]=_,C[B+9|0]=_>>>8,C[B+10|0]=_>>>16,C[B+11|0]=_>>>24,C[B+12|0]=a,C[B+13|0]=a>>>8,C[B+14|0]=a>>>16,C[B+15|0]=a>>>24,C[0|B]=r,C[B+1|0]=r>>>8,C[B+2|0]=r>>>16,C[B+3|0]=r>>>24,C[B+4|0]=g,C[B+5|0]=g>>>8,C[B+6|0]=g>>>16,C[B+7|0]=g>>>24,c=o[(a=A)+8|0]|o[a+9|0]<<8|o[a+10|0]<<16|o[a+11|0]<<24,t=o[a+12|0]|o[a+13|0]<<8|o[a+14|0]<<16|o[a+15|0]<<24,r=o[a+16|0]|o[a+17|0]<<8|o[a+18|0]<<16|o[a+19|0]<<24,g=o[a+20|0]|o[a+21|0]<<8|o[a+22|0]<<16|o[a+23|0]<<24,I=o[0|a]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24,A=o[a+4|0]|o[a+5|0]<<8|o[a+6|0]<<16|o[a+7|0]<<24,_=o[a+28|0]|o[a+29|0]<<8|o[a+30|0]<<16|o[a+31|0]<<24,a=o[a+24|0]|o[a+25|0]<<8|o[a+26|0]<<16|o[a+27|0]<<24,C[B+56|0]=a,C[B+57|0]=a>>>8,C[B+58|0]=a>>>16,C[B+59|0]=a>>>24,C[B+60|0]=_,C[B+61|0]=_>>>8,C[B+62|0]=_>>>16,C[B+63|0]=_>>>24,C[B+48|0]=r,C[B+49|0]=r>>>8,C[B+50|0]=r>>>16,C[B+51|0]=r>>>24,C[B+52|0]=g,C[B+53|0]=g>>>8,C[B+54|0]=g>>>16,C[B+55|0]=g>>>24,C[B+40|0]=c,C[B+41|0]=c>>>8,C[B+42|0]=c>>>16,C[B+43|0]=c>>>24,C[B+44|0]=t,C[B+45|0]=t>>>8,C[B+46|0]=t>>>16,C[B+47|0]=t>>>24,C[B+32|0]=I,C[B+33|0]=I>>>8,C[B+34|0]=I>>>16,C[B+35|0]=I>>>24,C[B+36|0]=A,C[B+37|0]=A>>>8,C[B+38|0]=A>>>16,C[B+39|0]=A>>>24,s=i+160|0,0}function SA(A,I,g,B){var Q,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0;if(s=Q=s-704|0,g|B)if(E=(B<<3|g>>>29)+(a=c=i[A+76>>2])|0,_=(r=i[A+72>>2])+(t=g<<3)|0,i[A+72>>2]=_,E=_>>>0>>0?E+1|0:E,i[A+76>>2]=E,c=i[A+68>>2],E=(E=_=(0|E)==(0|a)&_>>>0>>0|E>>>0>>0)>>>0>(_=_+i[A+64>>2]|0)>>>0?c+1|0:c,_=(t=B>>>29|0)+_|0,i[A+64>>2]=_,i[A+68>>2]=_>>>0>>0?E+1|0:E,_=A+80|0,(0|B)==(0|(c=f=0-((E=0)+((t=127&((7&a)<<29|r>>>3))>>>0>128)|0)|0))&g>>>0>=(r=128-t|0)>>>0|B>>>0>c>>>0){if(a=0,c=0,!E&(127^t)>>>0>=3|E)for(p=252&r;C[(E=a+t|0)+_|0]=o[I+a|0],C[_+(t+(E=1|a)|0)|0]=o[I+E|0],C[_+(t+(E=2|a)|0)|0]=o[I+E|0],C[_+(t+(E=3|a)|0)|0]=o[I+E|0],E=c,c=(a=a+4|0)>>>0<4?E+1|0:E,E=h,h=E=(e=e+4|0)>>>0<4?E+1|0:E,(0|e)!=(0|p)|(0|D)!=(0|E););if(h=E=0,E|(e=3&r))for(;C[(E=a+t|0)+_|0]=o[I+a|0],E=c,c=(a=a+1|0)?E:E+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|e)!=(0|y)|(0|h)!=(0|E););if(k(A,_,Q,a=Q+640|0),I=I+r|0,!(B=B-((g>>>0>>0)+f|0)|0)&(g=g-r|0)>>>0>127|B)for(;k(A,I,Q,a),I=I+128|0,!(B=B-(g>>>0<128)|0)&(g=g-128|0)>>>0>127|B;);if(g|B){if(A=3&g,y=0,D=0,a=0,c=0,!B&g>>>0>=4|B)for(e=124&g,r=0,g=0,B=0;C[a+_|0]=o[I+a|0],C[(E=1|a)+_|0]=o[I+E|0],C[(E=2|a)+_|0]=o[I+E|0],C[(E=3|a)+_|0]=o[I+E|0],E=c,c=(a=a+4|0)>>>0<4?E+1|0:E,E=B,B=E=(g=g+4|0)>>>0<4?E+1|0:E,(0|g)!=(0|e)|(0|r)!=(0|E););if(A|h)for(;C[a+_|0]=o[I+a|0],c=(a=a+1|0)?c:c+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|A)!=(0|y)|(0|h)!=(0|E););}XC(Q,704)}else{if(a=0,c=0,!B&g>>>0>=4|B)for(A=-4&g;C[(E=a+t|0)+_|0]=o[I+a|0],C[_+(r=t+(E=1|a)|0)|0]=o[I+E|0],C[_+(r=t+(E=2|a)|0)|0]=o[I+E|0],C[_+(r=t+(E=3|a)|0)|0]=o[I+E|0],E=c,c=(a=a+4|0)>>>0<4?E+1|0:E,E=h,h=E=(e=e+4|0)>>>0<4?E+1|0:E,(0|A)!=(0|e)|(0|B)!=(0|E););if((g&=3)|(A=0))for(;C[(B=a+t|0)+_|0]=o[I+a|0],c=(a=a+1|0)?c:c+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|g)!=(0|y)|(0|A)!=(0|E););}return s=Q+704|0,0}function NA(A,I,g){var C,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0;s=i[I+4>>2],B=i[A+4>>2],h=i[I+8>>2],Q=i[A+8>>2],D=i[I+12>>2],o=i[A+12>>2],f=i[I+16>>2],E=i[A+16>>2],p=i[I+20>>2],a=i[A+20>>2],y=i[I+24>>2],_=i[A+24>>2],w=i[I+28>>2],c=i[A+28>>2],n=i[I+32>>2],t=i[A+32>>2],k=i[I+36>>2],r=i[A+36>>2],g=0-g|0,e=i[A>>2],i[A>>2]=g&(e^i[I>>2])^e,i[A+36>>2]=r^g&(r^k),i[A+32>>2]=t^g&(t^n),i[A+28>>2]=c^g&(c^w),i[A+24>>2]=_^g&(_^y),i[A+20>>2]=a^g&(a^p),i[A+16>>2]=E^g&(E^f),i[A+12>>2]=o^g&(o^D),i[A+8>>2]=Q^g&(Q^h),i[A+4>>2]=B^g&(B^s),B=i[A+44>>2],s=i[I+44>>2],Q=i[A+48>>2],h=i[I+48>>2],o=i[A+52>>2],D=i[I+52>>2],E=i[A+56>>2],f=i[I+56>>2],a=i[A+60>>2],p=i[I+60>>2],_=i[(y=A- -64|0)>>2],w=i[I- -64>>2],c=i[A+68>>2],n=i[I+68>>2],t=i[A+72>>2],k=i[I+72>>2],r=i[A+40>>2],e=i[I+40>>2],C=i[A+76>>2],i[A+76>>2]=C^g&(i[I+76>>2]^C),i[A+72>>2]=t^g&(t^k),i[A+68>>2]=c^g&(c^n),i[y>>2]=_^g&(_^w),i[A+60>>2]=a^g&(a^p),i[A+56>>2]=E^g&(E^f),i[A+52>>2]=o^g&(o^D),i[A+48>>2]=Q^g&(Q^h),i[A+44>>2]=B^g&(B^s),i[A+40>>2]=r^g&(r^e),B=i[A+84>>2],s=i[I+84>>2],Q=i[A+88>>2],h=i[I+88>>2],o=i[A+92>>2],D=i[I+92>>2],E=i[A+96>>2],f=i[I+96>>2],a=i[A+100>>2],p=i[I+100>>2],_=i[A+104>>2],y=i[I+104>>2],c=i[A+108>>2],w=i[I+108>>2],t=i[A+112>>2],n=i[I+112>>2],r=i[A+80>>2],k=i[I+80>>2],e=i[A+116>>2],i[A+116>>2]=g&(e^i[I+116>>2])^e,i[A+112>>2]=t^g&(t^n),i[A+108>>2]=c^g&(c^w),i[A+104>>2]=_^g&(_^y),i[A+100>>2]=a^g&(a^p),i[A+96>>2]=E^g&(E^f),i[A+92>>2]=o^g&(o^D),i[A+88>>2]=Q^g&(Q^h),i[A+84>>2]=B^g&(B^s),i[A+80>>2]=r^g&(r^k),B=i[A+124>>2],s=i[I+124>>2],Q=i[A+128>>2],h=i[I+128>>2],o=i[A+132>>2],D=i[I+132>>2],E=i[A+136>>2],f=i[I+136>>2],a=i[A+140>>2],p=i[I+140>>2],_=i[A+144>>2],y=i[I+144>>2],c=i[A+148>>2],w=i[I+148>>2],t=i[A+152>>2],n=i[I+152>>2],r=i[A+120>>2],k=i[I+120>>2],e=i[I+156>>2],I=i[A+156>>2],i[A+156>>2]=g&(e^I)^I,i[A+152>>2]=t^g&(t^n),i[A+148>>2]=c^g&(c^w),i[A+144>>2]=_^g&(_^y),i[A+140>>2]=a^g&(a^p),i[A+136>>2]=E^g&(E^f),i[A+132>>2]=o^g&(o^D),i[A+128>>2]=Q^g&(Q^h),i[A+124>>2]=B^g&(B^s),i[A+120>>2]=r^g&(r^k)}function GA(A,I,g){var B,Q,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0;return s=B=s-320|0,R(o=B+240|0,g),b(o,o,g),R(A,o),b(A,A,g),b(A,A,I),PA(A,A),b(A,A,o),b(A,A,I),R(o=B+192|0,A),b(o,o,g),E=i[I+4>>2],h=i[I+8>>2],f=i[I+12>>2],p=i[I+16>>2],w=i[I+20>>2],n=i[I+24>>2],k=i[I+28>>2],F=i[I+32>>2],S=i[I>>2],g=i[B+192>>2],o=i[B+196>>2],a=i[B+200>>2],_=i[B+204>>2],c=i[B+208>>2],t=i[B+212>>2],r=i[B+216>>2],e=i[B+220>>2],y=i[B+224>>2],D=i[B+228>>2],N=i[I+36>>2],i[B+180>>2]=D-N,i[B+176>>2]=y-F,i[B+172>>2]=e-k,i[B+168>>2]=r-n,i[B+164>>2]=t-w,i[B+160>>2]=c-p,i[B+156>>2]=_-f,i[B+152>>2]=a-h,i[B+148>>2]=o-E,i[B+144>>2]=g-S,i[B+132>>2]=D+N,i[B+128>>2]=y+F,i[B+124>>2]=e+k,i[B+120>>2]=r+n,i[B+116>>2]=t+w,i[B+112>>2]=c+p,i[B+108>>2]=_+f,i[B+104>>2]=a+h,i[B+100>>2]=o+E,i[B+96>>2]=g+S,b(E=B+48|0,I,1632),i[B+84>>2]=D+i[B+84>>2],i[B+80>>2]=y+i[B+80>>2],i[B+76>>2]=e+i[B+76>>2],i[B+72>>2]=r+i[B+72>>2],i[B+68>>2]=t+i[B+68>>2],i[B+64>>2]=c+i[B+64>>2],i[B+60>>2]=_+i[B+60>>2],i[B+56>>2]=a+i[B+56>>2],i[B+52>>2]=o+i[B+52>>2],i[B+48>>2]=g+i[B+48>>2],QI(B,B+144|0),f=GI(B,32),QI(B,B+96|0),h=GI(B,32),QI(B,E),I=GI(B,32),b(B,A,1632),y=i[A+4>>2],e=i[A+8>>2],r=i[A+12>>2],t=i[A+16>>2],c=i[A+20>>2],_=i[A+24>>2],a=i[A+28>>2],o=i[A+32>>2],E=i[A>>2],p=i[B>>2],w=i[B+4>>2],n=i[B+8>>2],k=i[B+12>>2],F=i[B+16>>2],S=i[B+20>>2],D=i[B+24>>2],N=i[B+28>>2],Q=i[B+32>>2],g=(I=0-(I|h)|0)&((g=i[A+36>>2])^i[B+36>>2])^g,i[A+36>>2]=g,o^=I&(o^Q),i[A+32>>2]=o,a^=I&(a^N),i[A+28>>2]=a,_^=I&(_^D),i[A+24>>2]=_,c^=I&(c^S),i[A+20>>2]=c,t^=I&(t^F),i[A+16>>2]=t,r^=I&(r^k),i[A+12>>2]=r,e^=I&(e^n),i[A+8>>2]=e,y^=I&(y^w),i[A+4>>2]=y,E^=I&(E^p),i[A>>2]=E,QI(B+288|0,A),I=0-(1&C[B+288|0])|0,i[A+36>>2]=g^I&(g^0-g),i[A+32>>2]=o^I&(o^0-o),i[A+28>>2]=a^I&(a^0-a),i[A+24>>2]=_^I&(_^0-_),i[A+20>>2]=c^I&(c^0-c),i[A+16>>2]=t^I&(t^0-t),i[A+12>>2]=r^I&(r^0-r),i[A+8>>2]=e^I&(e^0-e),i[A+4>>2]=y^I&(y^0-y),i[A>>2]=E^I&(E^0-E),s=B+320|0,h|f}function MA(A,I){var g,B,Q,E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0;return s=g=s-320|0,fA(B=A+40|0,I),i[A+84>>2]=0,i[A+88>>2]=0,i[A+80>>2]=1,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,i[A+116>>2]=0,R(a=g+240|0,B),b(_=g+192|0,a,1584),i[g+192>>2]=i[g+192>>2]+1,c=i[g+240>>2]-1|0,i[g+240>>2]=c,t=i[g+244>>2],r=i[g+248>>2],e=i[g+252>>2],y=i[g+256>>2],h=i[g+260>>2],D=i[g+264>>2],f=i[g+268>>2],p=i[g+272>>2],w=i[g+276>>2],b(A,a,_),PA(A,A),b(A,a,A),R(a=g+144|0,A),b(a,a,_),a=i[g+180>>2],i[g+132>>2]=a-w,_=i[g+176>>2],i[g+128>>2]=_-p,n=i[g+172>>2],i[g+124>>2]=n-f,k=i[g+168>>2],i[g+120>>2]=k-D,F=i[g+164>>2],i[g+116>>2]=F-h,S=i[g+160>>2],i[g+112>>2]=S-y,N=i[g+156>>2],i[g+108>>2]=N-e,G=i[g+152>>2],i[g+104>>2]=G-r,M=i[g+148>>2],i[g+100>>2]=M-t,K=i[g+144>>2],i[g+96>>2]=K-c,i[g+84>>2]=a+w,i[g+80>>2]=_+p,i[g+76>>2]=f+n,i[g+72>>2]=D+k,i[g+68>>2]=h+F,i[g+64>>2]=y+S,i[g+60>>2]=e+N,i[g+56>>2]=r+G,i[g+52>>2]=t+M,i[g+48>>2]=c+K,QI(g,g+96|0),p=GI(g,32),QI(g,g+48|0),n=GI(g,32),b(g,A,1632),f=i[A+4>>2],D=i[A+8>>2],h=i[A+12>>2],y=i[A+16>>2],e=i[A+20>>2],r=i[A+24>>2],t=i[A+28>>2],c=i[A+32>>2],w=i[A>>2],k=i[g>>2],F=i[g+4>>2],S=i[g+8>>2],N=i[g+12>>2],G=i[g+16>>2],M=i[g+20>>2],K=i[g+24>>2],Q=i[g+28>>2],E=i[g+32>>2],_=(a=p-1|0)&((_=i[A+36>>2])^i[g+36>>2])^_,i[A+36>>2]=_,c^=a&(c^E),i[A+32>>2]=c,t^=a&(t^Q),i[A+28>>2]=t,r^=a&(r^K),i[A+24>>2]=r,e^=a&(e^M),i[A+20>>2]=e,y^=a&(y^G),i[A+16>>2]=y,h^=a&(h^N),i[A+12>>2]=h,D^=a&(D^S),i[A+8>>2]=D,f^=a&(f^F),i[A+4>>2]=f,a=w^a&(w^k),i[A>>2]=a,QI(g+288|0,A),I=0-(1&C[g+288|0]^o[I+31|0]>>>7^o[38144]>>>2)|0,i[A+36>>2]=_^I&(_^0-_),i[A+32>>2]=c^I&(c^0-c),i[A+28>>2]=t^I&(t^0-t),i[A+24>>2]=r^I&(r^0-r),i[A+20>>2]=e^I&(e^0-e),i[A+16>>2]=y^I&(y^0-y),i[A+12>>2]=h^I&(h^0-h),i[A+8>>2]=D^I&(D^0-D),i[A+4>>2]=f^I&(f^0-f),i[A>>2]=a^I&(a^0-a),b(A+120|0,A,B),s=g+320|0,(p|n)-1|0}function KA(A,I){var g,C,B,Q,o,E,a,_,c,t,r,e,y,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0;s=g=s-48|0,R(A,I),R(A+80|0,I+40|0),v(A+120|0,I+80|0),h=i[I+44>>2],D=i[I+4>>2],n=i[I+48>>2],f=i[I+8>>2],k=i[I+52>>2],p=i[I+12>>2],F=i[I+56>>2],w=i[I+16>>2],K=i[I+60>>2],S=i[I+20>>2],U=i[I- -64>>2],N=i[I+24>>2],b=i[I+68>>2],G=i[I+28>>2],H=i[I+72>>2],Y=i[I+32>>2],J=i[I+40>>2],M=i[I>>2],i[A+76>>2]=i[I+76>>2]+i[I+36>>2],i[A+72>>2]=H+Y,i[A+68>>2]=b+G,i[(C=A- -64|0)>>2]=U+N,i[A+60>>2]=K+S,i[A+56>>2]=F+w,i[A+52>>2]=k+p,i[A+48>>2]=n+f,i[A+44>>2]=h+D,i[A+40>>2]=J+M,R(g,A+40|0),I=i[A+4>>2],h=i[A+84>>2],D=i[A+8>>2],n=i[A+88>>2],f=i[A+12>>2],k=i[A+92>>2],p=i[A+16>>2],F=i[A+96>>2],w=i[A+20>>2],K=i[A+100>>2],S=i[A+24>>2],U=i[A+104>>2],N=i[A+28>>2],b=i[A+108>>2],G=i[A+32>>2],H=i[A+112>>2],Y=i[A>>2],J=i[A+80>>2],Q=(M=i[A+116>>2])-(B=i[A+36>>2])|0,i[A+116>>2]=Q,o=H-G|0,i[A+112>>2]=o,E=b-N|0,i[A+108>>2]=E,a=U-S|0,i[A+104>>2]=a,_=K-w|0,i[A+100>>2]=_,c=F-p|0,i[A+96>>2]=c,t=k-f|0,i[A+92>>2]=t,r=n-D|0,i[A+88>>2]=r,e=h-I|0,i[A+84>>2]=e,y=J-Y|0,i[A+80>>2]=y,M=M+B|0,i[A+76>>2]=M,G=G+H|0,i[A+72>>2]=G,N=N+b|0,i[A+68>>2]=N,S=S+U|0,i[C>>2]=S,w=w+K|0,i[A+60>>2]=w,p=p+F|0,i[A+56>>2]=p,f=f+k|0,i[A+52>>2]=f,D=D+n|0,i[A+48>>2]=D,I=I+h|0,i[A+44>>2]=I,h=Y+J|0,i[A+40>>2]=h,n=i[g>>2],k=i[g+4>>2],F=i[g+8>>2],K=i[g+12>>2],U=i[g+16>>2],b=i[g+20>>2],H=i[g+24>>2],Y=i[g+28>>2],J=i[g+32>>2],i[A+36>>2]=i[g+36>>2]-M,i[A+32>>2]=J-G,i[A+28>>2]=Y-N,i[A+24>>2]=H-S,i[A+20>>2]=b-w,i[A+16>>2]=U-p,i[A+12>>2]=K-f,i[A+8>>2]=F-D,i[A+4>>2]=k-I,i[A>>2]=n-h,I=i[A+124>>2],h=i[A+128>>2],D=i[A+132>>2],n=i[A+136>>2],f=i[A+140>>2],k=i[A+144>>2],p=i[A+148>>2],F=i[A+152>>2],w=i[A+120>>2],i[A+156>>2]=i[A+156>>2]-Q,i[A+152>>2]=F-o,i[A+148>>2]=p-E,i[A+144>>2]=k-a,i[A+140>>2]=f-_,i[A+136>>2]=n-c,i[A+132>>2]=D-t,i[A+128>>2]=h-r,i[A+124>>2]=I-e,i[A+120>>2]=w-y,s=g+48|0}function UA(A,I,g,B){var Q,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0;if(s=Q=s-288|0,g|B)if(E=(B<<3|g>>>29)+(a=c=i[A+36>>2])|0,_=(t=i[A+32>>2])+(r=g<<3)|0,i[A+32>>2]=_,i[A+36>>2]=_>>>0>>0?E+1|0:E,c=A+40|0,(0|B)==(0|(_=f=0-((E=0)+((r=63&((7&a)<<29|t>>>3))>>>0>64)|0)|0))&g>>>0>=(t=64-r|0)>>>0|B>>>0>_>>>0){if(a=0,_=0,!E&(63^r)>>>0>=3|E)for(p=124&t;C[(E=a+r|0)+c|0]=o[I+a|0],C[c+(r+(E=1|a)|0)|0]=o[I+E|0],C[c+(r+(E=2|a)|0)|0]=o[I+E|0],C[c+(r+(E=3|a)|0)|0]=o[I+E|0],E=_,_=(a=a+4|0)>>>0<4?E+1|0:E,E=h,h=E=(e=e+4|0)>>>0<4?E+1|0:E,(0|e)!=(0|p)|(0|D)!=(0|E););if(h=E=0,E|(e=3&t))for(;C[(E=a+r|0)+c|0]=o[I+a|0],E=_,_=(a=a+1|0)?E:E+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|e)!=(0|y)|(0|h)!=(0|E););if(J(A,c,Q,a=Q+256|0),I=I+t|0,!(B=B-((g>>>0>>0)+f|0)|0)&(g=g-t|0)>>>0>63|B)for(;J(A,I,Q,a),I=I- -64|0,E=B-1|0,!(B=(g=g+-64|0)>>>0<4294967232?E+1|0:E)&g>>>0>63|B;);if(g|B){if(A=3&g,y=0,D=0,a=0,_=0,!B&g>>>0>=4|B)for(e=60&g,t=0,g=0,B=0;C[a+c|0]=o[I+a|0],C[(E=1|a)+c|0]=o[I+E|0],C[(E=2|a)+c|0]=o[I+E|0],C[(E=3|a)+c|0]=o[I+E|0],E=_,_=(a=a+4|0)>>>0<4?E+1|0:E,E=B,B=E=(g=g+4|0)>>>0<4?E+1|0:E,(0|g)!=(0|e)|(0|t)!=(0|E););if(A|h)for(;C[a+c|0]=o[I+a|0],_=(a=a+1|0)?_:_+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|A)!=(0|y)|(0|h)!=(0|E););}XC(Q,288)}else{if(a=0,_=0,!B&g>>>0>=4|B)for(A=-4&g;C[(E=a+r|0)+c|0]=o[I+a|0],C[c+(t=r+(E=1|a)|0)|0]=o[I+E|0],C[c+(t=r+(E=2|a)|0)|0]=o[I+E|0],C[c+(t=r+(E=3|a)|0)|0]=o[I+E|0],E=_,_=(a=a+4|0)>>>0<4?E+1|0:E,E=h,h=E=(e=e+4|0)>>>0<4?E+1|0:E,(0|A)!=(0|e)|(0|B)!=(0|E););if((g&=3)|(A=0))for(;C[(B=a+r|0)+c|0]=o[I+a|0],_=(a=a+1|0)?_:_+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|g)!=(0|y)|(0|A)!=(0|E););}return s=Q+288|0,0}function bA(A,I,g,C,B,Q){var o=0;i[Q>>2]=8;A:{I:{o=A,o=(A=!I&A>>>0<=32768)?32768:o;g:{C:{if(!(A=A?0:I)&g>>>5>>>0<=o>>>0|A){if(g>>>0>=4096)break C;I=1;break g}if(i[B>>2]=1,A=1,(I=(o>>>0)/(i[Q>>2]<<2>>>0)|0)>>>0<4)break A;if(A=2,I>>>0<8)break A;if(I>>>0<16)return void(i[C>>2]=3);if(I>>>0<32)return void(i[C>>2]=4);if(I>>>0<64)return void(i[C>>2]=5);if(I>>>0<128)return void(i[C>>2]=6);if(I>>>0<256)return void(i[C>>2]=7);if(I>>>0<512)return void(i[C>>2]=8);if(I>>>0<1024)return void(i[C>>2]=9);if(I>>>0<2048)return void(i[C>>2]=10);if(I>>>0<4096)return void(i[C>>2]=11);if(I>>>0<8192)return void(i[C>>2]=12);if(I>>>0<16384)return void(i[C>>2]=13);if(I>>>0<32768)return void(i[C>>2]=14);if(I>>>0<65536)return void(i[C>>2]=15);if(I>>>0<131072)return void(i[C>>2]=16);if(I>>>0<262144)return void(i[C>>2]=17);if(I>>>0<524288)return void(i[C>>2]=18);if(I>>>0<1048576)return void(i[C>>2]=19);if(I>>>0<2097152)return void(i[C>>2]=20);if(I>>>0<4194304)return void(i[C>>2]=21);if(I>>>0<8388608)return void(i[C>>2]=22);if(I>>>0<16777216)return void(i[C>>2]=23);if(I>>>0>=33554432)break I;return void(i[C>>2]=24)}I=2,g>>>0<8192||(I=3,g>>>0<16384||(I=4,g>>>0<32768||(I=5,g>>>0<65536||(I=6,g>>>0<131072||(I=7,g>>>0<262144||(I=8,g>>>0<524288||(I=9,g>>>0<1048576||(I=10,g>>>0<2097152||(I=11,g>>>0<4194304||(I=12,g>>>0<8388608||(I=13,g>>>0<16777216||(I=14,g>>>0<33554432||(I=15,g>>>0<67108864||(I=16,g>>>0<134217728||(I=17,g>>>0<268435456||(I=18,g>>>0<536870912||(I=19,g>>>0<1073741824||(I=(0|g)>=0?20:21))))))))))))))))))}return g=I,i[C>>2]=g,A=(I=A)>>>2|0,I=(3&I)<<30|o>>>2,C=31&g,(63&g)>>>0>=32?(g=0,A=A>>>C|0):(g=A>>>C|0,A=((1<>>C),void(i[B>>2]=((!g&A>>>0>=1073741823|g?1073741823:A)>>>0)/E[Q>>2])}A=I>>>0<67108864?25:26}i[C>>2]=A}function HA(A,I,g){var C,B,Q,o,E,a,_,c,t=0;s=C=s-160|0,i[A>>2]=1,i[A+4>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+36>>2]=0,i[A+40>>2]=1,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A+80>>2]=1,bg(A+84|0,0,76),NA(A,I,(255&(1^(t=g-((g>>31&g)<<1)|0)))-1>>>31|0),NA(A,I+160|0,(255&(2^t))-1>>>31|0),NA(A,I+320|0,(255&(3^t))-1>>>31|0),NA(A,I+480|0,(255&(4^t))-1>>>31|0),NA(A,I+640|0,(255&(5^t))-1>>>31|0),NA(A,I+800|0,(255&(6^t))-1>>>31|0),NA(A,I+960|0,(255&(7^t))-1>>>31|0),NA(A,I+1120|0,(255&(8^t))-1>>>31|0),I=i[A+76>>2],i[C+32>>2]=i[A+72>>2],i[C+36>>2]=I,t=i[4+(I=A- -64|0)>>2],i[C+24>>2]=i[I>>2],i[C+28>>2]=t,I=i[A+60>>2],i[C+16>>2]=i[A+56>>2],i[C+20>>2]=I,I=i[A+52>>2],i[C+8>>2]=i[A+48>>2],i[C+12>>2]=I,I=i[A+44>>2],i[C>>2]=i[A+40>>2],i[C+4>>2]=I,I=i[A+36>>2],i[C+72>>2]=i[A+32>>2],i[C+76>>2]=I,t=i[A+28>>2],i[(I=C- -64|0)>>2]=i[A+24>>2],i[I+4>>2]=t,I=i[A+20>>2],i[C+56>>2]=i[A+16>>2],i[C+60>>2]=I,I=i[A+12>>2],i[C+48>>2]=i[A+8>>2],i[C+52>>2]=I,I=i[A+4>>2],i[C+40>>2]=i[A>>2],i[C+44>>2]=I,I=i[A+92>>2],i[C+88>>2]=i[A+88>>2],i[C+92>>2]=I,I=i[A+100>>2],i[C+96>>2]=i[A+96>>2],i[C+100>>2]=I,I=i[A+108>>2],i[C+104>>2]=i[A+104>>2],i[C+108>>2]=I,I=i[A+116>>2],i[C+112>>2]=i[A+112>>2],i[C+116>>2]=I,I=i[A+84>>2],i[C+80>>2]=i[A+80>>2],i[C+84>>2]=I,I=i[A+124>>2],t=i[A+128>>2],B=i[A+132>>2],Q=i[A+136>>2],o=i[A+140>>2],E=i[A+144>>2],a=i[A+148>>2],_=i[A+152>>2],c=i[A+120>>2],i[C+156>>2]=0-i[A+156>>2],i[C+152>>2]=0-_,i[C+148>>2]=0-a,i[C+144>>2]=0-E,i[C+140>>2]=0-o,i[C+136>>2]=0-Q,i[C+132>>2]=0-B,i[C+128>>2]=0-t,i[C+124>>2]=0-I,i[C+120>>2]=0-c,NA(A,C,(128&g)>>>7|0),s=C+160|0}function YA(A,I){A|=0,I|=0;var g,B,Q,E,a,_=0,c=0,t=0;return s=c=s-192|0,ag(c,32),FI(I,c,32,0),C[0|I]=248&o[0|I],C[I+31|0]=63&o[I+31|0]|64,nA(t=c+32|0,I),tg(A,t),g=c,t=i[c+28>>2],c=i[c+24>>2],C[I+24|0]=c,C[I+25|0]=c>>>8,C[I+26|0]=c>>>16,C[I+27|0]=c>>>24,C[I+28|0]=t,C[I+29|0]=t>>>8,C[I+30|0]=t>>>16,C[I+31|0]=t>>>24,t=i[g+20>>2],c=i[g+16>>2],C[I+16|0]=c,C[I+17|0]=c>>>8,C[I+18|0]=c>>>16,C[I+19|0]=c>>>24,C[I+20|0]=t,C[I+21|0]=t>>>8,C[I+22|0]=t>>>16,C[I+23|0]=t>>>24,t=i[g+12>>2],c=i[g+8>>2],C[I+8|0]=c,C[I+9|0]=c>>>8,C[I+10|0]=c>>>16,C[I+11|0]=c>>>24,C[I+12|0]=t,C[I+13|0]=t>>>8,C[I+14|0]=t>>>16,C[I+15|0]=t>>>24,t=i[g+4>>2],c=i[g>>2],C[0|I]=c,C[I+1|0]=c>>>8,C[I+2|0]=c>>>16,C[I+3|0]=c>>>24,C[I+4|0]=t,C[I+5|0]=t>>>8,C[I+6|0]=t>>>16,C[I+7|0]=t>>>24,B=o[(_=A)+8|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24,Q=o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24,E=o[_+16|0]|o[_+17|0]<<8|o[_+18|0]<<16|o[_+19|0]<<24,t=o[_+20|0]|o[_+21|0]<<8|o[_+22|0]<<16|o[_+23|0]<<24,c=o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24,A=o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24,a=o[_+28|0]|o[_+29|0]<<8|o[_+30|0]<<16|o[_+31|0]<<24,_=o[_+24|0]|o[_+25|0]<<8|o[_+26|0]<<16|o[_+27|0]<<24,C[I+56|0]=_,C[I+57|0]=_>>>8,C[I+58|0]=_>>>16,C[I+59|0]=_>>>24,C[I+60|0]=a,C[I+61|0]=a>>>8,C[I+62|0]=a>>>16,C[I+63|0]=a>>>24,C[I+48|0]=E,C[I+49|0]=E>>>8,C[I+50|0]=E>>>16,C[I+51|0]=E>>>24,C[I+52|0]=t,C[I+53|0]=t>>>8,C[I+54|0]=t>>>16,C[I+55|0]=t>>>24,C[I+40|0]=B,C[I+41|0]=B>>>8,C[I+42|0]=B>>>16,C[I+43|0]=B>>>24,C[I+44|0]=Q,C[I+45|0]=Q>>>8,C[I+46|0]=Q>>>16,C[I+47|0]=Q>>>24,C[I+32|0]=c,C[I+33|0]=c>>>8,C[I+34|0]=c>>>16,C[I+35|0]=c>>>24,C[I+36|0]=A,C[I+37|0]=A>>>8,C[I+38|0]=A>>>16,C[I+39|0]=A>>>24,XC(g,32),s=g+192|0,0}function JA(A,I){I|=0;var g,B,Q=0,o=0,E=0,a=0;return s=g=s-288|0,o=40+((Q=i[32+(A|=0)>>2]>>>3&63)+A|0)|0,Q>>>0>=56?(Ng(o,35520,64-Q|0),J(A,A+40|0,g,g+256|0),i[A+88>>2]=0,i[A+92>>2]=0,i[A+80>>2]=0,i[A+84>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[(Q=A- -64|0)>>2]=0,i[Q+4>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+40>>2]=0,i[A+44>>2]=0):Ng(o,35520,56-Q|0),E=(Q=16711680&(o=i[A+32>>2]))>>>8|0,a=Q<<24,B=(Q=-16777216&o)>>>24|0,Q=(a|=Q<<8)|-16777216&((255&(Q=i[A+36>>2]))<<24|o>>>8)|16711680&((16777215&Q)<<8|o>>>24)|Q>>>8&65280|Q>>>24,C[A+96|0]=Q,C[A+97|0]=Q>>>8,C[A+98|0]=Q>>>16,C[A+99|0]=Q>>>24,Q=E|B|o<<24|(65280&o)<<8,Q|=E=0,C[A+100|0]=Q,C[A+101|0]=Q>>>8,C[A+102|0]=Q>>>16,C[A+103|0]=Q>>>24,J(A,A+40|0,g,g+256|0),Q=(Q=i[A>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[0|I]=Q,C[I+1|0]=Q>>>8,C[I+2|0]=Q>>>16,C[I+3|0]=Q>>>24,Q=(Q=i[A+4>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+4|0]=Q,C[I+5|0]=Q>>>8,C[I+6|0]=Q>>>16,C[I+7|0]=Q>>>24,Q=(Q=i[A+8>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+8|0]=Q,C[I+9|0]=Q>>>8,C[I+10|0]=Q>>>16,C[I+11|0]=Q>>>24,Q=(Q=i[A+12>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+12|0]=Q,C[I+13|0]=Q>>>8,C[I+14|0]=Q>>>16,C[I+15|0]=Q>>>24,Q=(Q=i[A+16>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+16|0]=Q,C[I+17|0]=Q>>>8,C[I+18|0]=Q>>>16,C[I+19|0]=Q>>>24,Q=(Q=i[A+20>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+20|0]=Q,C[I+21|0]=Q>>>8,C[I+22|0]=Q>>>16,C[I+23|0]=Q>>>24,Q=(Q=i[A+24>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+24|0]=Q,C[I+25|0]=Q>>>8,C[I+26|0]=Q>>>16,C[I+27|0]=Q>>>24,Q=(Q=i[A+28>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+28|0]=Q,C[I+29|0]=Q>>>8,C[I+30|0]=Q>>>16,C[I+31|0]=Q>>>24,XC(g,288),XC(A,104),s=g+288|0,0}function dA(A,I){A|=0;var g,B=0;s=g=s+-64|0,B=o[60+(I|=0)|0]|o[I+61|0]<<8|o[I+62|0]<<16|o[I+63|0]<<24,i[g+56>>2]=o[I+56|0]|o[I+57|0]<<8|o[I+58|0]<<16|o[I+59|0]<<24,i[g+60>>2]=B,B=o[I+52|0]|o[I+53|0]<<8|o[I+54|0]<<16|o[I+55|0]<<24,i[g+48>>2]=o[I+48|0]|o[I+49|0]<<8|o[I+50|0]<<16|o[I+51|0]<<24,i[g+52>>2]=B,B=o[I+44|0]|o[I+45|0]<<8|o[I+46|0]<<16|o[I+47|0]<<24,i[g+40>>2]=o[I+40|0]|o[I+41|0]<<8|o[I+42|0]<<16|o[I+43|0]<<24,i[g+44>>2]=B,B=o[I+36|0]|o[I+37|0]<<8|o[I+38|0]<<16|o[I+39|0]<<24,i[g+32>>2]=o[I+32|0]|o[I+33|0]<<8|o[I+34|0]<<16|o[I+35|0]<<24,i[g+36>>2]=B,B=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[g+24>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[g+28>>2]=B,B=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[g+16>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[g+20>>2]=B,B=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[g>>2]=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,i[g+4>>2]=B,B=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[g+8>>2]=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,i[g+12>>2]=B,S(g),I=i[g+28>>2],B=i[g+24>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[g+20>>2],B=i[g+16>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[g+12>>2],B=i[g+8>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[g+4>>2],B=i[g>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,XC(g,64),s=g- -64|0}function mA(A,I,g){A|=0,I|=0;var B,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0;if(s=B=s-96|0,(g|=0)>>>0>=65&&($I(A),UA(A,I,g,0),JA(A,B),g=32,I=B),$I(A),i[B+88>>2]=909522486,i[B+92>>2]=909522486,i[B+80>>2]=909522486,i[B+84>>2]=909522486,i[B+72>>2]=909522486,i[B+76>>2]=909522486,i[(a=r=B- -64|0)>>2]=909522486,i[a+4>>2]=909522486,i[B+56>>2]=909522486,i[B+60>>2]=909522486,i[B+48>>2]=909522486,i[B+52>>2]=909522486,i[B+40>>2]=909522486,i[B+44>>2]=909522486,i[B+32>>2]=909522486,i[B+36>>2]=909522486,g){if(g>>>0>=4)for(_=124&g;C[0|(E=(a=B+32|0)+Q|0)]=o[0|E]^o[I+Q|0],C[0|(e=(E=1|Q)+a|0)]=o[0|e]^o[I+E|0],C[0|(e=(E=2|Q)+a|0)]=o[0|e]^o[I+E|0],C[0|(E=(E=a)+(a=3|Q)|0)]=o[0|E]^o[I+a|0],Q=Q+4|0,(0|_)!=(0|(c=c+4|0)););if(c=3&g)for(;C[0|(a=(B+32|0)+Q|0)]=o[0|a]^o[I+Q|0],Q=Q+1|0,(0|c)!=(0|(t=t+1|0)););}if(UA(A,B+32|0,64,0),$I(a=A+104|0),i[B+88>>2]=1549556828,i[B+92>>2]=1549556828,i[B+80>>2]=1549556828,i[B+84>>2]=1549556828,i[B+72>>2]=1549556828,i[B+76>>2]=1549556828,i[r>>2]=1549556828,i[r+4>>2]=1549556828,i[B+56>>2]=1549556828,i[B+60>>2]=1549556828,i[B+48>>2]=1549556828,i[B+52>>2]=1549556828,i[B+40>>2]=1549556828,i[B+44>>2]=1549556828,i[B+32>>2]=1549556828,i[B+36>>2]=1549556828,g){if(t=0,Q=0,g>>>0>=4)for(r=124&g,c=0;C[0|(_=(A=B+32|0)+Q|0)]=o[0|_]^o[I+Q|0],C[0|(E=(_=1|Q)+A|0)]=o[0|E]^o[I+_|0],C[0|(E=(_=2|Q)+A|0)]=o[0|E]^o[I+_|0],C[0|(_=(E=A)+(A=3|Q)|0)]=o[0|_]^o[A+I|0],Q=Q+4|0,(0|r)!=(0|(c=c+4|0)););if(A=3&g)for(;C[0|(g=(B+32|0)+Q|0)]=o[0|g]^o[I+Q|0],Q=Q+1|0,(0|A)!=(0|(t=t+1|0)););}return UA(a,A=B+32|0,64,0),XC(A,64),XC(B,32),s=B+96|0,0}function lA(A,I,g,C,B,o,E){var a=0,_=0,c=0,t=0,r=0,e=0,y=0;if(I-65>>>0<4294967232|E>>>0>64)A=-1;else{e=a=s,s=a=a-512&-64;A:{I:if(!(!(!(C|B)|g)|!A|((_=255&I)-65&255)>>>0<=191|!(!(I=255&E)||o)|I>>>0>=65)){if(I){if(!o)break I;bg(a- -64|0,0,293),i[a+56>>2]=327033209,i[a+60>>2]=1541459225,i[a+48>>2]=-79577749,i[a+52>>2]=528734635,i[a+40>>2]=725511199,i[a+44>>2]=-1694144372,i[a+32>>2]=-1377402159,i[a+36>>2]=1359893119,i[a+24>>2]=1595750129,i[a+28>>2]=-1521486534,i[a+16>>2]=-23791573,i[a+20>>2]=1013904242,i[a+8>>2]=-2067093701,i[a+12>>2]=-1150833019,i[a>>2]=-222443256^(I<<8|_),i[a+4>>2]=I>>>24^1779033703,bg((E=a+384|0)+I|0,0,128-I|0),Ng(E,o,I),Ng(a+96|0,E,128),i[a+352>>2]=128,XC(E,128),I=128}else bg(a- -64|0,0,293),i[a+56>>2]=327033209,i[a+60>>2]=1541459225,i[a+48>>2]=-79577749,i[a+52>>2]=528734635,i[a+40>>2]=725511199,i[a+44>>2]=-1694144372,i[a+32>>2]=-1377402159,i[a+36>>2]=1359893119,i[a+24>>2]=1595750129,i[a+28>>2]=-1521486534,i[a+16>>2]=-23791573,i[a+20>>2]=1013904242,i[a+8>>2]=-2067093701,i[a+12>>2]=-1150833019,i[a>>2]=-222443256^_,i[a+4>>2]=1779033703,I=0;g:if(C|B)for(y=a+224|0,c=a+96|0;;){if(E=I+c|0,!B&C>>>0<=(o=256-I|0)>>>0){Ng(E,g,C),i[a+352>>2]=C+i[a+352>>2];break g}if(Ng(E,g,o),i[a+352>>2]=o+i[a+352>>2],t=I=i[a+68>>2],I=(r=(E=i[a+64>>2])+128|0)>>>0<128?I+1|0:I,i[a+64>>2]=r,i[a+68>>2]=I,I=i[a+76>>2],I=(t=E=-1==(0|t)&E>>>0>4294967167)>>>0>(E=E+i[a+72>>2]|0)>>>0?I+1|0:I,i[a+72>>2]=E,i[a+76>>2]=I,p(a,c),Ng(c,y,128),I=i[a+352>>2]-128|0,i[a+352>>2]=I,g=g+o|0,!((B=B-(C>>>0>>0)|0)|(C=C-o|0)))break}AA(a,A,_),s=e;break A}rC(),Q()}A=0}return A}function uA(A,I){A|=0,I|=0;var g,B=0;s=g=s-128|0,i[g+80>>2]=0,i[g+84>>2]=0,i[g+88>>2]=0,i[g+92>>2]=0,i[g+40>>2]=0,i[g+44>>2]=0,i[g+48>>2]=0,i[g+52>>2]=0,i[g+56>>2]=0,i[g+60>>2]=0,B=i[8799],i[g+104>>2]=i[8798],i[g+108>>2]=B,B=i[8801],i[g+112>>2]=i[8800],i[g+116>>2]=B,B=i[8803],i[g+120>>2]=i[8802],i[g+124>>2]=B,i[g+64>>2]=0,i[g+68>>2]=0,i[g+72>>2]=0,i[g+76>>2]=0,C[g+64|0]=1,i[g+32>>2]=0,i[g+36>>2]=0,B=i[8797],i[g+96>>2]=i[8796],i[g+100>>2]=B,B=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[g+24>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[g+28>>2]=B,B=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[g+16>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[g+20>>2]=B,B=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[g+8>>2]=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,i[g+12>>2]=B,B=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[g>>2]=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,i[g+4>>2]=B,Eg(I=g- -64|0,g),S(I),I=i[g+92>>2],B=i[g+88>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[g+84>>2],B=i[g+80>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[g+76>>2],B=i[g+72>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[g+68>>2],B=i[g+64>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,s=g+128|0}function xA(A,I){A|=0,I|=0;var g,B=0;s=g=s-128|0,i[g+80>>2]=0,i[g+84>>2]=0,i[g+88>>2]=0,i[g+92>>2]=0,i[g+40>>2]=0,i[g+44>>2]=0,i[g+48>>2]=0,i[g+52>>2]=0,i[g+56>>2]=0,i[g+60>>2]=0,B=i[8799],i[g+104>>2]=i[8798],i[g+108>>2]=B,B=i[8801],i[g+112>>2]=i[8800],i[g+116>>2]=B,B=i[8803],i[g+120>>2]=i[8802],i[g+124>>2]=B,i[g+64>>2]=0,i[g+68>>2]=0,i[g+72>>2]=0,i[g+76>>2]=0,i[g+32>>2]=0,i[g+36>>2]=0,B=i[8797],i[g+96>>2]=i[8796],i[g+100>>2]=B,B=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[g+16>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[g+20>>2]=B,B=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[g+24>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[g+28>>2]=B,B=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[g>>2]=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,i[g+4>>2]=B,B=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[g+8>>2]=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,i[g+12>>2]=B,Eg(I=g- -64|0,g),S(I),I=i[g+92>>2],B=i[g+88>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[g+84>>2],B=i[g+80>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[g+76>>2],B=i[g+72>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[g+68>>2],B=i[g+64>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,s=g+128|0}function vA(A,I,g,B){var Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0;A:{if((E=i[A+56>>2])|(Q=i[A+60>>2])){if(e=_=16-E|0,t=(_=(0|(a=0-((E>>>0>16)+Q|0)|0))==(0|B)&g>>>0>_>>>0|B>>>0>a>>>0)?e:g,e=_=_?a:B,_|t){if(_=A- -64|0,a=0,E=0,!e&t>>>0>=4|e)for(r=-4&t;Q=a+i[A+56>>2]|0,C[Q+_|0]=o[I+a|0],Q=(y=1|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+y|0],Q=(y=2|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+y|0],Q=(y=3|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+y|0],Q=E,E=(a=a+4|0)>>>0<4?Q+1|0:Q,Q=h,h=Q=(c=c+4|0)>>>0<4?Q+1|0:Q,(0|c)!=(0|r)|(0|e)!=(0|Q););if(h=Q=0,Q|(c=3&t))for(;Q=a+i[A+56>>2]|0,C[Q+_|0]=o[I+a|0],E=(a=a+1|0)?E:E+1|0,Q=D,D=Q=(s=s+1|0)?Q:Q+1|0,(0|c)!=(0|s)|(0|h)!=(0|Q););E=i[A+56>>2],Q=i[A+60>>2]}if(Q=Q+e|0,Q=(E=E+t|0)>>>0>>0?Q+1|0:Q,i[A+56>>2]=E,i[A+60>>2]=Q,!Q&E>>>0<16)break A;rA(A,A- -64|0,16,0),i[A+56>>2]=0,i[A+60>>2]=0,g=(E=g)-t|0,B=B-((E>>>0>>0)+e|0)|0,I=I+t|0}if(!B&g>>>0>=16|B&&(rA(A,I,E=-16&g,B),g&=15,B=0,I=I+E|0),g|B){if(_=A- -64|0,s=0,D=0,a=0,E=0,!B&g>>>0>=4|B)for(t=12&g,e=0,c=0;Q=a+i[A+56>>2]|0,C[Q+_|0]=o[I+a|0],Q=(r=1|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+r|0],Q=(r=2|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+r|0],Q=(r=3|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+r|0],E=(a=a+4|0)>>>0<4?E+1|0:E,Q=h,h=Q=(c=c+4|0)>>>0<4?Q+1|0:Q,(0|t)!=(0|c)|(0|e)!=(0|Q););if(h=Q=0,Q|(c=3&g))for(;Q=a+i[A+56>>2]|0,C[Q+_|0]=o[I+a|0],E=(a=a+1|0)?E:E+1|0,Q=D,D=Q=(s=s+1|0)?Q:Q+1|0,(0|c)!=(0|s)|(0|h)!=(0|Q););E=B+i[A+60>>2]|0,E=(I=g+i[A+56>>2]|0)>>>0>>0?E+1|0:E,i[A+56>>2]=I,i[A+60>>2]=E}}}function RA(A,I,g){var C,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0;s=i[I+4>>2],B=i[A+4>>2],h=i[I+8>>2],Q=i[A+8>>2],D=i[I+12>>2],o=i[A+12>>2],f=i[I+16>>2],E=i[A+16>>2],p=i[I+20>>2],a=i[A+20>>2],e=i[I+24>>2],_=i[A+24>>2],w=i[I+28>>2],c=i[A+28>>2],n=i[I+32>>2],t=i[A+32>>2],k=i[I+36>>2],r=i[A+36>>2],g=0-g|0,y=i[A>>2],i[A>>2]=g&(y^i[I>>2])^y,i[A+36>>2]=r^g&(r^k),i[A+32>>2]=t^g&(t^n),i[A+28>>2]=c^g&(c^w),i[A+24>>2]=_^g&(_^e),i[A+20>>2]=a^g&(a^p),i[A+16>>2]=E^g&(E^f),i[A+12>>2]=o^g&(o^D),i[A+8>>2]=Q^g&(Q^h),i[A+4>>2]=B^g&(B^s),B=i[A+44>>2],s=i[I+44>>2],Q=i[A+48>>2],h=i[I+48>>2],o=i[A+52>>2],D=i[I+52>>2],E=i[A+56>>2],f=i[I+56>>2],a=i[A+60>>2],p=i[I+60>>2],_=i[(e=A- -64|0)>>2],w=i[I- -64>>2],c=i[A+68>>2],n=i[I+68>>2],t=i[A+72>>2],k=i[I+72>>2],r=i[A+40>>2],y=i[I+40>>2],C=i[A+76>>2],i[A+76>>2]=C^g&(i[I+76>>2]^C),i[A+72>>2]=t^g&(t^k),i[A+68>>2]=c^g&(c^n),i[e>>2]=_^g&(_^w),i[A+60>>2]=a^g&(a^p),i[A+56>>2]=E^g&(E^f),i[A+52>>2]=o^g&(o^D),i[A+48>>2]=Q^g&(Q^h),i[A+44>>2]=B^g&(B^s),i[A+40>>2]=r^g&(r^y),B=i[A+84>>2],s=i[I+84>>2],Q=i[A+88>>2],h=i[I+88>>2],o=i[A+92>>2],D=i[I+92>>2],E=i[A+96>>2],f=i[I+96>>2],a=i[A+100>>2],p=i[I+100>>2],_=i[A+104>>2],e=i[I+104>>2],c=i[A+108>>2],w=i[I+108>>2],t=i[A+112>>2],n=i[I+112>>2],r=i[A+80>>2],k=i[I+80>>2],y=i[I+116>>2],I=i[A+116>>2],i[A+116>>2]=g&(y^I)^I,i[A+112>>2]=t^g&(t^n),i[A+108>>2]=c^g&(c^w),i[A+104>>2]=_^g&(_^e),i[A+100>>2]=a^g&(a^p),i[A+96>>2]=E^g&(E^f),i[A+92>>2]=o^g&(o^D),i[A+88>>2]=Q^g&(Q^h),i[A+84>>2]=B^g&(B^s),i[A+80>>2]=r^g&(r^k)}function LA(A,I){var g,C,B=0;for(s=g=s-192|0,R(C=g+144|0,I),R(B=g+96|0,C),R(B,B),b(B,I,B),b(C,C,B),R(I=g+48|0,C),b(B,B,I),R(I,B),R(I,I),R(I,I),R(I,I),R(I,I),b(B,I,B),R(I,B),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),b(I,I,B),R(g,I),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),b(I,g,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),b(B,I,B),R(I,B),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),b(I,I,B),R(g,I),I=1;R(g,g),100!=(0|(I=I+1|0)););b(I=g+48|0,g,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),b(B=g+96|0,I,B),R(B,B),R(B,B),R(B,B),R(B,B),R(B,B),b(A,B,g+144|0),s=g+192|0}function PA(A,I){var g,C=0,B=0;for(s=g=s-144|0,R(B=g+96|0,I),R(C=g+48|0,B),R(C,C),b(C,I,C),b(B,B,C),R(B,B),b(B,C,B),R(C,B),R(C,C),R(C,C),R(C,C),R(C,C),b(B,C,B),R(C,B),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),b(C,C,B),R(g,C),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),b(C,g,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),b(B,C,B),R(C,B),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),b(C,C,B),R(g,C),C=1;R(g,g),100!=(0|(C=C+1|0)););b(C=g+48|0,g,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),b(B=g+96|0,C,B),R(B,B),R(B,B),b(A,B,I),s=g+144|0}function qA(A,I){var g,B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S=0,N=0,G=0,M=0;s=g=s-320|0,fA(B=A+40|0,I),i[A+84>>2]=0,i[A+88>>2]=0,i[A+80>>2]=1,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,i[A+116>>2]=0,R(G=g+240|0,B),b(N=g+192|0,G,1584),M=-1,Q=i[g+240>>2]-1|0,i[g+240>>2]=Q,i[g+192>>2]=i[g+192>>2]+1,E=i[g+244>>2],a=i[g+248>>2],_=i[g+252>>2],c=i[g+256>>2],t=i[g+260>>2],r=i[g+264>>2],e=i[g+268>>2],y=i[g+272>>2],h=i[g+276>>2],R(S=g+144|0,N),b(S,S,N),R(A,S),b(A,A,N),b(A,A,G),PA(A,A),b(A,A,S),b(A,A,G),R(S=g+96|0,A),b(S,S,N),N=i[g+132>>2],i[g+84>>2]=N-h,S=i[g+128>>2],i[g+80>>2]=S-y,G=i[g+124>>2],i[g+76>>2]=G-e,D=i[g+120>>2],i[g+72>>2]=D-r,f=i[g+116>>2],i[g+68>>2]=f-t,p=i[g+112>>2],i[g+64>>2]=p-c,w=i[g+108>>2],i[g+60>>2]=w-_,n=i[g+104>>2],i[g+56>>2]=n-a,k=i[g+100>>2],i[g+52>>2]=k-E,F=i[g+96>>2],i[g+48>>2]=F-Q,QI(g,g+48|0);A:{if(!GI(g,32)){if(i[g+36>>2]=N+h,i[g+32>>2]=S+y,i[g+28>>2]=G+e,i[g+24>>2]=r+D,i[g+20>>2]=t+f,i[g+16>>2]=c+p,i[g+12>>2]=_+w,i[g+8>>2]=a+n,i[g+4>>2]=E+k,i[g>>2]=Q+F,QI(N=g+288|0,g),!GI(N,32))break A;b(A,A,1632)}QI(g+288|0,A),(1&C[g+288|0])==(o[I+31|0]>>>7|0)&&(i[A>>2]=0-i[A>>2],i[A+36>>2]=0-i[A+36>>2],i[A+32>>2]=0-i[A+32>>2],i[A+28>>2]=0-i[A+28>>2],i[A+24>>2]=0-i[A+24>>2],i[A+20>>2]=0-i[A+20>>2],i[A+16>>2]=0-i[A+16>>2],i[A+12>>2]=0-i[A+12>>2],i[A+8>>2]=0-i[A+8>>2],i[A+4>>2]=0-i[A+4>>2]),b(A+120|0,A,B),M=0}return s=g+320|0,M}function zA(A,I,g){var C,B,Q,o,E,_,c,t,r=0;s=C=s-128|0,i[A>>2]=1,i[A+4>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+36>>2]=0,i[A+40>>2]=1,bg(A+44|0,0,76),RA(A,I=a(I,960)+2992|0,(255&(1^(r=g-((g>>31&g)<<1)|0)))-1>>>31|0),RA(A,I+120|0,(255&(2^r))-1>>>31|0),RA(A,I+240|0,(255&(3^r))-1>>>31|0),RA(A,I+360|0,(255&(4^r))-1>>>31|0),RA(A,I+480|0,(255&(5^r))-1>>>31|0),RA(A,I+600|0,(255&(6^r))-1>>>31|0),RA(A,I+720|0,(255&(7^r))-1>>>31|0),RA(A,I+840|0,(255&(8^r))-1>>>31|0),I=i[A+76>>2],i[C+40>>2]=i[A+72>>2],i[C+44>>2]=I,r=i[4+(I=A- -64|0)>>2],i[C+32>>2]=i[I>>2],i[C+36>>2]=r,I=i[A+60>>2],i[C+24>>2]=i[A+56>>2],i[C+28>>2]=I,I=i[A+52>>2],i[C+16>>2]=i[A+48>>2],i[C+20>>2]=I,I=i[A+44>>2],i[C+8>>2]=i[A+40>>2],i[C+12>>2]=I,I=i[A+12>>2],i[C+56>>2]=i[A+8>>2],i[C+60>>2]=I,r=i[A+20>>2],i[(I=C- -64|0)>>2]=i[A+16>>2],i[I+4>>2]=r,I=i[A+28>>2],i[C+72>>2]=i[A+24>>2],i[C+76>>2]=I,I=i[A+36>>2],i[C+80>>2]=i[A+32>>2],i[C+84>>2]=I,I=i[A+4>>2],i[C+48>>2]=i[A>>2],i[C+52>>2]=I,I=i[A+84>>2],r=i[A+88>>2],B=i[A+92>>2],Q=i[A+96>>2],o=i[A+100>>2],E=i[A+104>>2],_=i[A+108>>2],c=i[A+112>>2],t=i[A+80>>2],i[C+124>>2]=0-i[A+116>>2],i[C+120>>2]=0-c,i[C+116>>2]=0-_,i[C+112>>2]=0-E,i[C+108>>2]=0-o,i[C+104>>2]=0-Q,i[C+100>>2]=0-B,i[C+96>>2]=0-r,i[C+92>>2]=0-I,i[C+88>>2]=0-t,RA(A,C+8|0,(128&g)>>>7|0),s=C+128|0}function jA(A){var I,g,C,B,Q,o,E,a,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0;return s=I=s-320|0,R(c=I+240|0,A),R(t=I+192|0,A+40|0),R(_=I+144|0,A+80|0),A=i[I+240>>2],r=i[I+192>>2],e=i[I+244>>2],y=i[I+196>>2],h=i[I+248>>2],D=i[I+200>>2],f=i[I+252>>2],p=i[I+204>>2],w=i[I+256>>2],n=i[I+208>>2],k=i[I+260>>2],F=i[I+212>>2],S=i[I+264>>2],N=i[I+216>>2],G=i[I+268>>2],M=i[I+220>>2],K=i[I+272>>2],U=i[I+224>>2],i[I+84>>2]=i[I+228>>2]-i[I+276>>2],i[I+80>>2]=U-K,i[I+76>>2]=M-G,i[I+72>>2]=N-S,i[I+68>>2]=F-k,i[I+64>>2]=n-w,i[I+60>>2]=p-f,i[I+56>>2]=D-h,i[I+52>>2]=y-e,i[I+48>>2]=r-A,b(A=I+48|0,A,_),b(I,c,t),b(I,I,1584),R(I+96|0,_),_=i[I+48>>2],c=i[I+96>>2],t=i[I>>2],r=i[I+52>>2],e=i[I+100>>2],y=i[I+4>>2],h=i[I+56>>2],D=i[I+104>>2],f=i[I+8>>2],p=i[I+60>>2],w=i[I+108>>2],n=i[I+12>>2],k=i[I+64>>2],F=i[I+112>>2],S=i[I+16>>2],N=i[I+68>>2],G=i[I+116>>2],M=i[I+20>>2],K=i[I+72>>2],U=i[I+120>>2],g=i[I+24>>2],C=i[I+76>>2],B=i[I+124>>2],Q=i[I+28>>2],o=i[I+80>>2],E=i[I+128>>2],a=i[I+32>>2],i[I+84>>2]=i[I+84>>2]-(i[I+132>>2]+i[I+36>>2]|0),i[I+80>>2]=o-(E+a|0),i[I+76>>2]=C-(B+Q|0),i[I+72>>2]=K-(U+g|0),i[I+68>>2]=N-(G+M|0),i[I+64>>2]=k-(F+S|0),i[I+60>>2]=p-(w+n|0),i[I+56>>2]=h-(D+f|0),i[I+52>>2]=r-(e+y|0),i[I+48>>2]=_-(c+t|0),QI(_=I+288|0,A),A=GI(_,32),s=I+320|0,A}function XA(A,I,g,B,i){A|=0,I|=0,g|=0,B|=0;var E=0,_=0,c=0,t=0,e=0,y=0,s=0;A:{I:{g:{C:{B:{Q:{i:{if(1==(-7&(i|=0))&&(c=(E=(B>>>0)/3|0)<<2,(E=a(E,-3)+B|0)&&(c=2&i?2+((E>>>1|0)+c|0)|0:c+4|0),!(I>>>0<=c>>>0))){if(!(i>>>0>=4)){if(!B){i=0;break C}E=0,i=0;break i}if(!B){i=0;break C}for(E=0,i=0;;){for(e=o[g+t|0]|e<<8,E|=8;y=65510+(_=e>>>(E=E-6|0)&63)>>>8|0,s=_+65484>>>8|0,C[A+i|0]=~(1+(16321^_))>>>8&45|_+252&_+65474>>>8&~s|~(_+32705)>>>8&95|y&_+65|s&_+71&~y,i=i+1|0,E>>>0>5;);if((0|(t=t+1|0))==(0|B))break}if(!E)break B;t=45,_=32705,B=95;break Q}rC(),Q()}for(;;){for(e=o[g+t|0]|e<<8,E|=8;y=65510+(_=e>>>(E=E-6|0)&63)>>>8|0,s=_+65484>>>8|0,C[A+i|0]=~(1+(16321^_))>>>8&43|_+252&_+65474>>>8&~s|~(_+16321)>>>8&47|y&_+65|s&_+71&~y,i=i+1|0,E>>>0>5;);if((0|(t=t+1|0))==(0|B))break}if(!E)break B;t=43,_=16321,B=47}_=~((g=e<<6-E&63)+_)>>>8&B|(E=g+65510>>>8|0)&g+65,B=g+65484>>>8|0,C[A+i|0]=~(1+(16321^g))>>>8&t|_|g+252&g+65474>>>8&~B|B&g+71&~E,i=i+1|0}if(i>>>0>c>>>0)break g}if(i>>>0>>0)break I;c=i;break A}r(1104,1218,231,1503),Q()}bg(A+i|0,61,c-i|0)}return bg(A+c|0,0,(I>>>0>(g=c+1|0)>>>0?I:g)-c|0),0|A}function OA(A,I,g){var C,B,Q,E=0,_=0,c=0,t=0,r=0;s=C=s-16|0,B=i[A+20>>2],i[A+20>>2]=0,Q=i[A+4>>2],i[A+4>>2]=0,c=-26;A:{I:{g:{C:switch(g-1|0){case 1:if(gg(I,1182,9))break I;I=I+9|0;break g;case 0:break C;default:break A}if(gg(I,1173,8))break I;I=I+8|0}if(36!=o[0|I]|118!=o[I+1|0]||(E=61==o[I+2|0]),E&&!(((t=o[0|(g=I+3|0)])-58&255)>>>0<246)){for(r=E?g:I,I=0,E=t;;){if(_=g,I>>>0>429496729)break I;if((g=(255&E)-48|0)>>>0>~(I=a(I,10))>>>0)break I;if(I=I+g|0,!(((E=o[0|(g=_+1|0)])-58&255)>>>0>245))break}if(!(48==(0|t)&(0|_)!=(0|r)|(0|g)==(0|r))){if(19!=(0|I))break A;if(!(36!=(255&E)|109!=o[_+2|0]|61!=o[_+3|0])&&(g=lI(_+4|0,I=C+12|0))&&(i[A+44>>2]=i[C+12>>2],!(44!=o[0|g]|116!=o[g+1|0]|61!=o[g+2|0])&&(g=lI(g+3|0,I))&&(i[A+40>>2]=i[C+12>>2],!(44!=o[0|g]|112!=o[g+1|0]|61!=o[g+2|0])&&(g=lI(g+3|0,I))&&(E=i[C+12>>2],i[A+48>>2]=E,i[A+52>>2]=E,36==o[0|g]&&(i[C+12>>2]=B,!pA(_=i[A+16>>2],B,E=g=g+1|0,t=RI(g),0,I,g=C+8|0,3)&&(i[A+20>>2]=i[C+12>>2],E=i[C+8>>2],36==o[0|E]&&(i[C+12>>2]=Q,E=E+1|0,!pA(i[A>>2],Q,E,RI(E),0,I,g,3)))))))){if(i[A+4>>2]=i[C+12>>2],I=i[C+8>>2],c=nI(A))break A;c=o[0|I]?-32:0;break A}}}}c=-32}return s=C+16|0,c}function WA(A,I,g,B){var Q=0,i=0,E=0,a=0,_=0,c=0,t=0;if(g|B)A:for(t=A+224|0,_=A+96|0,i=o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24;;){if(Q=i+_|0,!B&g>>>0<=(E=256-i|0)>>>0){Ng(Q,I,g),I=g+(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)|0,C[A+352|0]=I,C[A+353|0]=I>>>8,C[A+354|0]=I>>>16,C[A+355|0]=I>>>24;break A}if(Ng(Q,I,E),Q=(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)+E|0,C[A+352|0]=Q,C[A+353|0]=Q>>>8,C[A+354|0]=Q>>>16,C[A+355|0]=Q>>>24,c=i=o[A+68|0]|o[A+69|0]<<8|o[A+70|0]<<16|o[A+71|0]<<24,i=(a=128+(Q=o[A+64|0]|o[A+65|0]<<8|o[A+66|0]<<16|o[A+67|0]<<24)|0)>>>0<128?i+1|0:i,C[A+64|0]=a,C[A+65|0]=a>>>8,C[A+66|0]=a>>>16,C[A+67|0]=a>>>24,C[A+68|0]=i,C[A+69|0]=i>>>8,C[A+70|0]=i>>>16,C[A+71|0]=i>>>24,i=o[A+76|0]|o[A+77|0]<<8|o[A+78|0]<<16|o[A+79|0]<<24,i=(c=Q=-1==(0|c)&Q>>>0>4294967167)>>>0>(Q=Q+(o[A+72|0]|o[A+73|0]<<8|o[A+74|0]<<16|o[A+75|0]<<24)|0)>>>0?i+1|0:i,C[A+72|0]=Q,C[A+73|0]=Q>>>8,C[A+74|0]=Q>>>16,C[A+75|0]=Q>>>24,C[A+76|0]=i,C[A+77|0]=i>>>8,C[A+78|0]=i>>>16,C[A+79|0]=i>>>24,p(A,_),Ng(_,t,128),Q=i=(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)-128|0,C[A+352|0]=Q,C[A+353|0]=Q>>>8,C[A+354|0]=Q>>>16,C[A+355|0]=Q>>>24,I=I+E|0,!((B=B-(g>>>0>>0)|0)|(g=g-E|0)))break}return 0}function VA(A){var I=0,g=0,C=0,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0;for(g=i[A+60>>2],h=i[A+56>>2],s=i[A+52>>2],e=i[A+48>>2],I=i[A+44>>2],C=i[A+40>>2],D=i[A+36>>2],r=i[A+32>>2],B=i[A+28>>2],Q=i[A+24>>2],o=i[A+20>>2],E=i[A+16>>2],a=i[A+12>>2],_=i[A+8>>2],c=i[A+4>>2],t=i[A>>2];y=Lg(o+c|0,7)^D,f=Lg(y+o|0,9)^s,E=Lg(t+e|0,7)^E,p=Lg(E+t|0,9)^r,w=Lg(p+E|0,13)^e,a=Lg(I+g|0,7)^a,B=Lg(a+g|0,9)^B,r=Lg(B+a|0,13)^I,g=Lg(B+r|0,18)^g,I=Lg(C+Q|0,7)^h,e=w^Lg(g+I|0,7),s=f^Lg(e+g|0,9),h=Lg(e+s|0,13)^I,g=Lg(s+h|0,18)^g,_=Lg(I+C|0,9)^_,Q=Lg(_+I|0,13)^Q,C=Lg(Q+_|0,18)^C,I=Lg(C+y|0,7)^r,r=Lg(I+C|0,9)^p,D=Lg(I+r|0,13)^y,C=Lg(r+D|0,18)^C,c=Lg(y+f|0,13)^c,o=Lg(c+f|0,18)^o,Q=Lg(o+E|0,7)^Q,B=Lg(Q+o|0,9)^B,E=Lg(B+Q|0,13)^E,o=Lg(E+B|0,18)^o,t=Lg(p+w|0,18)^t,c=Lg(t+a|0,7)^c,_=Lg(c+t|0,9)^_,a=Lg(_+c|0,13)^a,t=Lg(a+_|0,18)^t,y=n>>>0<6,n=n+2|0,y;);i[A>>2]=i[A>>2]+t,i[A+4>>2]=i[A+4>>2]+c,i[A+8>>2]=i[A+8>>2]+_,i[A+12>>2]=i[A+12>>2]+a,i[A+16>>2]=i[A+16>>2]+E,i[A+20>>2]=i[A+20>>2]+o,i[A+24>>2]=i[A+24>>2]+Q,i[A+28>>2]=i[A+28>>2]+B,i[A+32>>2]=i[A+32>>2]+r,i[A+36>>2]=i[A+36>>2]+D,i[A+40>>2]=i[A+40>>2]+C,i[A+44>>2]=i[A+44>>2]+I,i[A+48>>2]=i[A+48>>2]+e,i[A+52>>2]=i[A+52>>2]+s,i[A+56>>2]=i[A+56>>2]+h,i[A+60>>2]=i[A+60>>2]+g}function ZA(A,I,g,B){var Q,i=0;return s=Q=s-320|0,i=-1,NI(g)&&(KI(g)||MA(Q,g)||gA(Q)&&(C[0|A]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],g=o[I+31|0],B&&(C[0|A]=248&o[0|A],g|=64),C[A+31|0]=127&g,u(g=Q+160|0,A,Q),tg(A,g),(127&o[A+31|0]|o[A+30|0]|o[A+29|0]|o[A+28|0]|o[A+27|0]|o[A+26|0]|o[A+25|0]|o[A+24|0]|o[A+23|0]|o[A+22|0]|o[A+21|0]|o[A+20|0]|o[A+19|0]|o[A+18|0]|o[A+17|0]|o[A+16|0]|o[A+15|0]|o[A+14|0]|o[A+13|0]|o[A+12|0]|o[A+11|0]|o[A+10|0]|o[A+9|0]|o[A+8|0]|o[A+7|0]|o[A+6|0]|o[A+5|0]|o[A+4|0]|o[A+3|0]|o[A+2|0]|o[A+1|0]|1^o[0|A])-1&256||(i=GI(I,32)?-1:0))),s=Q+320|0,i}function TA(A,I,g,B,Q){var E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0;if(s=E=s-48|0,Q&&ag(Q,102),!(36!=o[0|B]|55!=o[B+1|0]|36!=o[B+2|0])&&(r=uI(o[B+3|0]))&&(a=PI(E+12|0,B+4|0))&&(t=PI(E+8|0,a))){for(_=RI(t)+1|0;a=0,_&&36!=o[0|(a=t+(_=_-1|0)|0)];);if(c=a-t|0,a||(c=RI(t)),!((c=45+(_=(a=c)+(t-B|0)|0)|0)>>>0>102|a>>>0>c>>>0||(c=A,y=I,h=g,A=31&(r=r-1024|0),(63&r)>>>0>=32?(I=1<>>32-A,_A(c,y,h,t,a,g,I,i[E+12>>2],i[E+8>>2],E+16|0,32)))){for(a=Ng(Q,B,_),C[0|(A=a+_|0)]=36,e=(c=a+102|0)-(Q=A+1|0)|0,g=0;;){A:if((I=g)>>>0>31)B=Q;else if(A=Q,g=(_=I+1|0)+(y=(g=31-I|0)>>>0>=2?2:g)|0,B=0,t=0,Q=o[(r=E+16|0)+I|0],y&&(Q=o[_+r|0]<<8|Q,(0|(I=I+2|0))!=(0|g)&&(t=1,Q=o[I+r|0]<<16|Q)),e&&(C[0|A]=o[1024+(63&Q)|0],1!=(0|e))){if(C[A+1|0]=o[1024+(Q>>>6&63)|0],y=A+e|0,I=A+2|0,(0|g)!=(0|_)){if(2==(0|e))break A;if(C[A+2|0]=o[1024+(Q>>>12&63)|0],I=A+3|0,t){if(3==(0|e))break A;C[A+3|0]=o[1024+(Q>>>18|0)|0],I=A+4|0}}if(e=y-(Q=I)|0,Q)continue}break}XC(E+16|0,32),e=0,!B|B>>>0>=c>>>0||(C[0|B]=0,e=a)}}return s=E+48|0,e}function $A(A,I){var g,C=0,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0;C=i[I+4>>2],Q=i[I+44>>2],o=i[I+8>>2],E=i[I+48>>2],a=i[I+12>>2],_=i[I+52>>2],c=i[I+16>>2],t=i[I+56>>2],r=i[I+20>>2],e=i[I+60>>2],y=i[I+24>>2],s=i[(B=I- -64|0)>>2],h=i[I+28>>2],D=i[I+68>>2],f=i[I+32>>2],p=i[I+72>>2],w=i[I+36>>2],g=i[I+76>>2],i[A>>2]=i[I>>2]+i[I+40>>2],i[A+36>>2]=w+g,i[A+32>>2]=f+p,i[A+28>>2]=h+D,i[A+24>>2]=y+s,i[A+20>>2]=r+e,i[A+16>>2]=c+t,i[A+12>>2]=a+_,i[A+8>>2]=o+E,i[A+4>>2]=C+Q,C=i[I+4>>2],Q=i[I+44>>2],o=i[I+8>>2],E=i[I+48>>2],a=i[I+12>>2],_=i[I+52>>2],c=i[I+16>>2],t=i[I+56>>2],r=i[I+20>>2],e=i[I+60>>2],y=i[I+24>>2],B=i[B>>2],s=i[I+28>>2],h=i[I+68>>2],D=i[I+32>>2],f=i[I+72>>2],p=i[I>>2],w=i[I+40>>2],i[A+76>>2]=i[I+76>>2]-i[I+36>>2],i[A+72>>2]=f-D,i[A+68>>2]=h-s,i[A- -64>>2]=B-y,i[A+60>>2]=e-r,i[A+56>>2]=t-c,i[A+52>>2]=_-a,i[A+48>>2]=E-o,i[A+44>>2]=Q-C,i[A+40>>2]=w-p,C=i[I+84>>2],i[A+80>>2]=i[I+80>>2],i[A+84>>2]=C,C=i[I+92>>2],i[A+88>>2]=i[I+88>>2],i[A+92>>2]=C,C=i[I+100>>2],i[A+96>>2]=i[I+96>>2],i[A+100>>2]=C,C=i[I+108>>2],i[A+104>>2]=i[I+104>>2],i[A+108>>2]=C,C=i[I+116>>2],i[A+112>>2]=i[I+112>>2],i[A+116>>2]=C,b(A+120|0,I+120|0,1680)}function AI(A,I,g){var C,B,Q,o,E,a,_,c,t,r,e,y,h=0,D=0,f=0,p=0,w=0;h=i[I+12>>2],D=i[I+8>>2],f=i[I+4>>2],C=s+-64&-64,I=i[I>>2],i[C>>2]=i[35744+((255&I)<<2)>>2],i[C+4>>2]=i[35744+(f>>>6&1020)>>2],i[C+8>>2]=i[35744+(D>>>14&1020)>>2],i[C+12>>2]=i[35744+(h>>>22&1020)>>2],i[C+16>>2]=i[35744+((255&f)<<2)>>2],i[C+20>>2]=i[35744+(D>>>6&1020)>>2],i[C+24>>2]=i[35744+(h>>>14&1020)>>2],i[C+28>>2]=i[35744+(I>>>22&1020)>>2],i[C+32>>2]=i[35744+((255&D)<<2)>>2],i[C+36>>2]=i[35744+(h>>>6&1020)>>2],i[C+40>>2]=i[35744+(I>>>14&1020)>>2],i[C+44>>2]=i[35744+(f>>>22&1020)>>2],i[C+48>>2]=i[35744+((255&h)<<2)>>2],i[C+52>>2]=i[35744+(I>>>6&1020)>>2],i[C+56>>2]=i[35744+(f>>>14&1020)>>2],i[C+60>>2]=i[35744+(D>>>22&1020)>>2],I=i[C+12>>2],h=i[C>>2],D=i[C+4>>2],f=i[C+8>>2],B=i[C+28>>2],Q=i[C+16>>2],o=i[C+20>>2],E=i[C+24>>2],a=i[C+44>>2],_=i[C+32>>2],c=i[C+36>>2],t=i[C+40>>2],r=i[g>>2],e=i[g+4>>2],y=i[g+8>>2],p=A,w=i[g+12>>2]^i[C+48>>2]^Lg(i[C+52>>2],8)^Lg(i[C+56>>2],16)^Lg(i[C+60>>2],24),i[p+12>>2]=w,p=A,w=Lg(c,8)^_^Lg(t,16)^Lg(a,24)^y,i[p+8>>2]=w,p=A,w=Lg(o,8)^Q^Lg(E,16)^Lg(B,24)^e,i[p+4>>2]=w,p=A,w=Lg(D,8)^h^Lg(f,16)^Lg(I,24)^r,i[p>>2]=w}function II(A,I,g){var B,Q=0;return s=B=s-160|0,C[0|A]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],Q=o[I+31|0],g&&(C[0|A]=248&o[0|A],Q|=64),C[A+31|0]=127&Q,nA(B,A),tg(A,B),g=-1,(127&o[A+31|0]|o[A+30|0]|o[A+29|0]|o[A+28|0]|o[A+27|0]|o[A+26|0]|o[A+25|0]|o[A+24|0]|o[A+23|0]|o[A+22|0]|o[A+21|0]|o[A+20|0]|o[A+19|0]|o[A+18|0]|o[A+17|0]|o[A+16|0]|o[A+15|0]|o[A+14|0]|o[A+13|0]|o[A+12|0]|o[A+11|0]|o[A+10|0]|o[A+9|0]|o[A+8|0]|o[A+7|0]|o[A+6|0]|o[A+5|0]|o[A+4|0]|o[A+3|0]|o[A+2|0]|o[A+1|0]|1^o[0|A])-1&256||(g=GI(I,32)?-1:0),s=B+160|0,g}function gI(A,I){var g,B,Q,o,E,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0;(_=i[A+56>>2])|(c=i[A+60>>2])&&(C[(r=A- -64|0)+_|0]=1,!((f=_+1|0)?c:c+1|0)&f>>>0<=15&&bg(65+(A+_|0)|0,0,15-_|0),C[A+80|0]=1,rA(A,r,16,0)),f=i[A+52>>2],h=i[A+48>>2],r=i[A+44>>2],_=i[A+24>>2],e=i[A+28>>2]+(_>>>26|0)|0,t=i[A+32>>2]+(e>>>26|0)|0,g=i[A+36>>2]+(t>>>26|0)|0,c=(s=(_=(_=(67108863&_)+((y=i[A+20>>2]+a(g>>>26|0,5)|0)>>>26|0)|0)&(e=(t=(E=(67108863&g)+((o=(B=67108863&t)+((Q=(D=67108863&e)+((y=_+((c=5+(s=67108863&y)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)-67108864|0)>>31)|y&(t=67108863&(y=(t>>>31|0)-1|0)))<<26|c&t|e&s)+i[A+40>>2]|0,C[0|I]=c,C[I+1|0]=c>>>8,C[I+2|0]=c>>>16,C[I+3|0]=c>>>24,s=c>>>0>>0,c=0,c=(_=(D=e&D|t&Q)<<20|_>>>6)>>>0>(_=_+r|0)>>>0?1:c,c=(r=_)>>>0>(_=_+s|0)>>>0?c+1|0:c,C[I+4|0]=_,C[I+5|0]=_>>>8,C[I+6|0]=_>>>16,C[I+7|0]=_>>>24,_=0,r=(r=(t=e&B|t&o)<<14|D>>>12)>>>0>(h=r+h|0)>>>0?1:_,_=h,h=c,_=_+c|0,c=r,c=_>>>0>>0?c+1|0:c,C[I+8|0]=_,C[I+9|0]=_>>>8,C[I+10|0]=_>>>16,C[I+11|0]=_>>>24,c=(_=(_=(y&E|e&g)<<8|t>>>18)+f|0)+c|0,C[I+12|0]=c,C[I+13|0]=c>>>8,C[I+14|0]=c>>>16,C[I+15|0]=c>>>24,XC(A,88)}function CI(A,I,g){A|=0,I|=0,g|=0;var B,Q=0;return s=B=s-16|0,C[B+15|0]=0,Q=-1,0|pB[i[8930]](A,I,g)||(C[B+15|0]=o[0|A]|o[B+15|0],C[B+15|0]=o[A+1|0]|o[B+15|0],C[B+15|0]=o[A+2|0]|o[B+15|0],C[B+15|0]=o[A+3|0]|o[B+15|0],C[B+15|0]=o[A+4|0]|o[B+15|0],C[B+15|0]=o[A+5|0]|o[B+15|0],C[B+15|0]=o[A+6|0]|o[B+15|0],C[B+15|0]=o[A+7|0]|o[B+15|0],C[B+15|0]=o[A+8|0]|o[B+15|0],C[B+15|0]=o[A+9|0]|o[B+15|0],C[B+15|0]=o[A+10|0]|o[B+15|0],C[B+15|0]=o[A+11|0]|o[B+15|0],C[B+15|0]=o[A+12|0]|o[B+15|0],C[B+15|0]=o[A+13|0]|o[B+15|0],C[B+15|0]=o[A+14|0]|o[B+15|0],C[B+15|0]=o[A+15|0]|o[B+15|0],C[B+15|0]=o[A+16|0]|o[B+15|0],C[B+15|0]=o[A+17|0]|o[B+15|0],C[B+15|0]=o[A+18|0]|o[B+15|0],C[B+15|0]=o[A+19|0]|o[B+15|0],C[B+15|0]=o[A+20|0]|o[B+15|0],C[B+15|0]=o[A+21|0]|o[B+15|0],C[B+15|0]=o[A+22|0]|o[B+15|0],C[B+15|0]=o[A+23|0]|o[B+15|0],C[B+15|0]=o[A+24|0]|o[B+15|0],C[B+15|0]=o[A+25|0]|o[B+15|0],C[B+15|0]=o[A+26|0]|o[B+15|0],C[B+15|0]=o[A+27|0]|o[B+15|0],C[B+15|0]=o[A+28|0]|o[B+15|0],C[B+15|0]=o[A+29|0]|o[B+15|0],C[B+15|0]=o[A+30|0]|o[B+15|0],C[B+15|0]=o[A+31|0]|o[B+15|0],Q=(o[B+15|0]<<23)-8388608>>31),s=B+16|0,0|Q}function BI(A,I,g,C,B){var Q=0,o=0,E=0,a=0,_=0,c=0,t=0;A:{if(1==(0|C)|C>>>0>1)i[9404]=22;else{s=C=s-128|0,i[C- -64>>2]=0,i[C+56>>2]=0,i[C+60>>2]=0,i[C+48>>2]=0,i[C+52>>2]=0,i[C+40>>2]=0,i[C+44>>2]=0,i[C+32>>2]=0,i[C+36>>2]=0,i[C+24>>2]=0,i[C+28>>2]=0,i[C+16>>2]=0,i[C+20>>2]=0,Q=RI(A),i[C+28>>2]=Q,i[C+44>>2]=Q,i[C+12>>2]=Q,o=K(Q),i[C+40>>2]=o,E=K(Q),i[C+24>>2]=E,a=K(Q),i[C+8>>2]=a;I:if(!a|!o|!E||!(Q=K(Q)))BA(o),BA(E),BA(a),A=-22;else{if(A=OA(C+8|0,A,B)){BA(i[C+40>>2]),BA(i[C+24>>2]),BA(i[C+8>>2]),BA(Q);break I}a=i[C+28>>2],_=i[C+24>>2],A=i[C+60>>2],c=i[C+52>>2],t=i[C+48>>2],ag(Q,o=i[C+12>>2]),(E=K(o))?(i[C+100>>2]=0,i[C+104>>2]=0,i[C+92>>2]=0,i[C+96>>2]=0,i[C+88>>2]=a,i[C+84>>2]=_,i[C+80>>2]=g,i[C+76>>2]=I,i[C+72>>2]=o,i[C+68>>2]=E,i[C+124>>2]=0,i[C+120>>2]=A,i[C+116>>2]=A,i[C+112>>2]=c,i[C+108>>2]=t,(A=q(C+68|0,B))||Ng(Q,E,o),XC(E,o),BA(E)):A=-22,BA(i[C+40>>2]),BA(i[C+24>>2]),A||(A=MI(Q,i[C+8>>2],i[C+12>>2])?-35:0),BA(Q),BA(i[C+8>>2])}if(s=C+128|0,I=A,!A)break A;-35==(0|A)&&(i[9404]=28)}I=-1}return I}function QI(A,I){var g,B,Q,o,E,_,c,t=0,r=0;B=i[I+32>>2],Q=i[I+28>>2],o=i[I+24>>2],E=i[I+20>>2],_=i[I+16>>2],c=i[I+12>>2],t=i[I+4>>2],r=i[I>>2],g=i[I+36>>2],I=i[I+8>>2],r=a((B+(Q+(o+(E+(_+(c+((t+(r+(a(g,19)+16777216>>>25|0)>>26)>>25)+I>>26)>>25)>>26)>>25)>>26)>>25)>>26)+g>>25,19)+r|0,C[0|A]=r,C[A+2|0]=r>>>16,C[A+1|0]=r>>>8,t=t+(r>>26)|0,C[A+5|0]=t>>>14,C[A+4|0]=t>>>6,C[A+3|0]=r>>>24&3|t<<2,I=I+(t>>25)|0,C[A+8|0]=I>>>13,C[A+7|0]=I>>>5,C[A+6|0]=I<<3|(29360128&t)>>>22,r=(I>>26)+c|0,C[A+11|0]=r>>>11,C[A+10|0]=r>>>3,C[A+9|0]=r<<5|(65011712&I)>>>21,t=(r>>25)+_|0,C[A+15|0]=t>>>18,C[A+14|0]=t>>>10,C[A+13|0]=t>>>2,I=(t>>26)+E|0,C[A+16|0]=I,C[A+12|0]=t<<6|(33030144&r)>>>19,C[A+18|0]=I>>>16,C[A+17|0]=I>>>8,t=(I>>25)+o|0,C[A+21|0]=t>>>15,C[A+20|0]=t>>>7,C[A+19|0]=I>>>24&1|t<<1,I=(t>>26)+Q|0,C[A+24|0]=I>>>13,C[A+23|0]=I>>>5,C[A+22|0]=I<<3|(58720256&t)>>>23,t=(I>>25)+B|0,C[A+27|0]=t>>>12,C[A+26|0]=t>>>4,C[A+25|0]=t<<4|(31457280&I)>>>21,I=g+(t>>26)|0,C[A+30|0]=I>>>10,C[A+29|0]=I>>>2,C[A+31|0]=(33292288&I)>>>18,C[A+28|0]=I<<6|(66060288&t)>>>20}function iI(A,I,g){A|=0,I|=0;var B,Q=0,i=0,E=0,a=0,_=0,c=0,t=0;if(s=B=s-192|0,(g|=0)>>>0>=129&&(SI(A),SA(A,I,g,0),j(A,B),g=64,I=B),SI(A),bg(B- -64|0,54,128),g){if(g>>>0>=4)for(t=252&g;C[0|(Q=(E=B- -64|0)+i|0)]=o[0|Q]^o[I+i|0],C[0|(a=(Q=1|i)+E|0)]=o[0|a]^o[I+Q|0],C[0|(a=(Q=2|i)+E|0)]=o[0|a]^o[I+Q|0],C[0|(Q=(Q=E)+(E=3|i)|0)]=o[0|Q]^o[I+E|0],i=i+4|0,(0|t)!=(0|(_=_+4|0)););if(_=3&g)for(;C[0|(E=(B- -64|0)+i|0)]=o[0|E]^o[I+i|0],i=i+1|0,(0|_)!=(0|(c=c+1|0)););}if(SA(A,i=B- -64|0,128,0),SI(E=A+208|0),bg(i,92,128),g){if(c=0,i=0,g>>>0>=4)for(t=252&g,_=0;C[0|(Q=(A=B- -64|0)+i|0)]=o[0|Q]^o[I+i|0],C[0|(a=(Q=1|i)+A|0)]=o[0|a]^o[I+Q|0],C[0|(a=(Q=2|i)+A|0)]=o[0|a]^o[I+Q|0],C[0|(Q=(Q=A)+(A=3|i)|0)]=o[0|Q]^o[A+I|0],i=i+4|0,(0|t)!=(0|(_=_+4|0)););if(A=3&g)for(;C[0|(g=(B- -64|0)+i|0)]=o[0|g]^o[I+i|0],i=i+1|0,(0|A)!=(0|(c=c+1|0)););}return SA(E,A=B- -64|0,128,0),XC(A,128),XC(B,64),s=B+192|0,0}function oI(A,I){var g;return A|=0,I|=0,i[12+(g=s-16|0)>>2]=A,i[g+8>>2]=I,i[g+4>>2]=0,i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]]^o[i[g+8>>2]],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+1|0]^o[i[g+8>>2]+1|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+2|0]^o[i[g+8>>2]+2|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+3|0]^o[i[g+8>>2]+3|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+4|0]^o[i[g+8>>2]+4|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+5|0]^o[i[g+8>>2]+5|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+6|0]^o[i[g+8>>2]+6|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+7|0]^o[i[g+8>>2]+7|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+8|0]^o[i[g+8>>2]+8|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+9|0]^o[i[g+8>>2]+9|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+10|0]^o[i[g+8>>2]+10|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+11|0]^o[i[g+8>>2]+11|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+12|0]^o[i[g+8>>2]+12|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+13|0]^o[i[g+8>>2]+13|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+14|0]^o[i[g+8>>2]+14|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+15|0]^o[i[g+8>>2]+15|0],(i[g+4>>2]-1>>>8&1)-1|0}function EI(A,I,g,C,B,Q,o){var E,a,_,c=0,t=0,r=0,e=0;s=E=s-352|0,yA(E,Q,o,0);A:{if(!(((c=!!(0|B))|!B&C>>>0>A-g>>>0)&A>>>0>g>>>0)&(!B&g-A>>>0>=C>>>0|A>>>0>=g>>>0)){if(i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,t=(o=(c=!!(0|B))|!B&C>>>0>=32)?32:C,r=o?0:B,o=c|!B&C>>>0>32,!(C|B)){e=1;break A}}else g=yg(A,g,C),i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,t=(o=c|!B&C>>>0>=32)?32:C,r=o?0:B,o=c|!B&C>>>0>32;Ng(E- -64|0,g,t),e=0}return c=r,ug(a=E+32|0,a,_=t+32|0,c=_>>>0<32?c+1|0:c,c=Q+16|0,E),wC(E+96|0,a),e||Ng(A,E- -64|0,t),XC(E+32|0,64),o&&mg(A+t|0,g+t|0,C-t|0,B-((C>>>0>>0)+r|0)|0,c,1,0,E),XC(E,32),SC(g=E+96|0,A,C,B),nC(g,I),XC(g,256),s=E+352|0,0}function aI(A,I,g,C,B,Q,o){var E,a,_,c=0,t=0,r=0,e=0;s=E=s-352|0,wA(E,Q,o,0);A:{if(!(((c=!!(0|B))|!B&C>>>0>A-g>>>0)&A>>>0>g>>>0)&(!B&g-A>>>0>=C>>>0|A>>>0>=g>>>0)){if(i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,t=(o=(c=!!(0|B))|!B&C>>>0>=32)?32:C,r=o?0:B,o=c|!B&C>>>0>32,!(C|B)){e=1;break A}}else g=yg(A,g,C),i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,t=(o=c|!B&C>>>0>=32)?32:C,r=o?0:B,o=c|!B&C>>>0>32;Ng(E- -64|0,g,t),e=0}return c=r,aC(a=E+32|0,a,_=t+32|0,c=_>>>0<32?c+1|0:c,c=Q+16|0,E),wC(E+96|0,a),e||Ng(A,E- -64|0,t),XC(E+32|0,64),o&&oC(A+t|0,g+t|0,C-t|0,B-((C>>>0>>0)+r|0)|0,c,1,0,E),XC(E,32),SC(g=E+96|0,A,C,B),nC(g,I),XC(g,256),s=E+352|0,0}function _I(A,I,g,B,Q){var o;return A|=0,I|=0,g|=0,B|=0,s=o=s-480|0,iI(o,Q|=0,32),dC(o,I,g,B),wg(o,o+416|0),I=i[o+444>>2],g=i[o+440>>2],C[A+24|0]=g,C[A+25|0]=g>>>8,C[A+26|0]=g>>>16,C[A+27|0]=g>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[o+436>>2],g=i[o+432>>2],C[A+16|0]=g,C[A+17|0]=g>>>8,C[A+18|0]=g>>>16,C[A+19|0]=g>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[o+428>>2],g=i[o+424>>2],C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[o+420>>2],g=i[o+416>>2],C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,s=o+480|0,0}function cI(A,I,g){A|=0,I|=0;var B,Q=0;return s=B=s+-64|0,FI(B,g|=0,32,0),g=i[B+28>>2],Q=i[B+24>>2],C[I+24|0]=Q,C[I+25|0]=Q>>>8,C[I+26|0]=Q>>>16,C[I+27|0]=Q>>>24,C[I+28|0]=g,C[I+29|0]=g>>>8,C[I+30|0]=g>>>16,C[I+31|0]=g>>>24,g=i[B+20>>2],Q=i[B+16>>2],C[I+16|0]=Q,C[I+17|0]=Q>>>8,C[I+18|0]=Q>>>16,C[I+19|0]=Q>>>24,C[I+20|0]=g,C[I+21|0]=g>>>8,C[I+22|0]=g>>>16,C[I+23|0]=g>>>24,g=i[B+12>>2],Q=i[B+8>>2],C[I+8|0]=Q,C[I+9|0]=Q>>>8,C[I+10|0]=Q>>>16,C[I+11|0]=Q>>>24,C[I+12|0]=g,C[I+13|0]=g>>>8,C[I+14|0]=g>>>16,C[I+15|0]=g>>>24,g=i[B+4>>2],Q=i[B>>2],C[0|I]=Q,C[I+1|0]=Q>>>8,C[I+2|0]=Q>>>16,C[I+3|0]=Q>>>24,C[I+4|0]=g,C[I+5|0]=g>>>8,C[I+6|0]=g>>>16,C[I+7|0]=g>>>24,XC(B,64),A=pC(A,I),s=B- -64|0,0|A}function tI(A,I){var g=0,C=0,B=0,Q=0,o=0,E=0;return I>>>0>4294967168?48:(I>>>0>=4294967168?(i[9404]=48,g=0):(g=0,(I=K(76+(Q=I>>>0<11?16:I+11&-8)|0))&&(g=I-8|0,63&I?(B=(-8&(E=i[(o=I-4|0)>>2]))-(C=(I=((I=(I+63&-64)-8|0)-g>>>0<=15?64:0)+I|0)-g|0)|0,3&E?(i[I+4>>2]=B|1&i[I+4>>2]|2,i[4+(B=I+B|0)>>2]=1|i[B+4>>2],i[o>>2]=C|1&i[o>>2]|2,i[4+(B=g+C|0)>>2]=1|i[B+4>>2],oA(g,C)):(g=i[g>>2],i[I+4>>2]=B,i[I>>2]=g+C)):I=g,3&(g=i[I+4>>2])&&((C=-8&g)>>>0<=Q+16>>>0||(i[I+4>>2]=Q|1&g|2,g=I+Q|0,Q=C-Q|0,i[g+4>>2]=3|Q,i[4+(C=I+C|0)>>2]=1|i[C+4>>2],oA(g,Q))),g=I+8|0)),g?(i[A>>2]=g,0):48)}function rI(A,I,g,C,B,Q,o,E,a,_,c){var t;if(t=bg(A,0,I),1==(0|g)|g>>>0>1)return i[9404]=22,-1;if(!(!g&I>>>0<=15)){if(!(!(Q|a)&_>>>0<2147483649))return i[9404]=22,-1;if(!(!((!a&E>>>0>=3|!!(0|a))&_>>>0>8191)|(0|C)==(0|t)))return 1==(0|c)?(Q=_>>>10|0,s=A=s+-64|0,t&&ag(t,I),(g=K(I))?(i[A+36>>2]=0,i[A+40>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+24>>2]=16,i[A+20>>2]=o,i[A+16>>2]=B,i[A+12>>2]=C,i[A+8>>2]=I,i[A+4>>2]=g,i[A+60>>2]=0,i[A+56>>2]=1,i[A+52>>2]=1,i[A+48>>2]=Q,i[A+44>>2]=E,(C=q(A+4|0,1))|!t||Ng(t,g,I),XC(g,I),BA(g)):C=-22,s=A- -64|0,C?-1:0):(i[9404]=28,-1)}return i[9404]=28,-1}function eI(A,I,g,C,B,Q,i){var o,E,a=0,_=0,c=0;s=o=s-96|0,wA(o,Q,i,0),DC(i=o+32|0,32,0,E=Q+16|0,o),Q=-1;A:{I:if(!fC(g,I,C,B,i)){if(Q=0,!A)break A;g:{if(!(((g=!!(0|B))|!B&C>>>0>I-A>>>0)&A>>>0>>0)&(!B&C>>>0<=A-I>>>0|A>>>0<=I>>>0)){if(!(C|B))break g;g=(Q=!B&C>>>0>=32|!!(0|B))?32:C,a=Q?0:B}else I=yg(A,I,C),g=(Q=g|!B&C>>>0>=32)?32:C,a=Q?0:B;if(Q=a,c=Ng(o- -64|0,I,g),aC(i=o+32|0,i,_=g+32|0,Q=_>>>0<32?Q+1|0:Q,E,o),A=Ng(A,c,g),XC(i,64),Q=0,!B&C>>>0<33)break I;oC(A+g|0,I+g|0,C-g|0,B-(a+(g>>>0>C>>>0)|0)|0,E,1,0,o);break I}aC(A=o+32|0,A,32,0,E,o),XC(A,64)}XC(o,32)}return s=o+96|0,Q}function yI(A,I,g,C,B,Q,o,E,a,_,c){var t;if(t=bg(A,0,I),1==(0|g)|g>>>0>1)return i[9404]=22,-1;if(!(!g&I>>>0<=15)){if(!(!(Q|a)&_>>>0<2147483649))return i[9404]=22,-1;if(!(!(!!(E|a)&_>>>0>8191)|(0|C)==(0|t)))return 2==(0|c)?(Q=_>>>10|0,s=A=s+-64|0,t&&ag(t,I),(g=K(I))?(i[A+36>>2]=0,i[A+40>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+24>>2]=16,i[A+20>>2]=o,i[A+16>>2]=B,i[A+12>>2]=C,i[A+8>>2]=I,i[A+4>>2]=g,i[A+60>>2]=0,i[A+56>>2]=1,i[A+52>>2]=1,i[A+48>>2]=Q,i[A+44>>2]=E,(C=q(A+4|0,2))|!t||Ng(t,g,I),XC(g,I),BA(g)):C=-22,s=A- -64|0,C?-1:0):(i[9404]=28,-1)}return i[9404]=28,-1}function sI(A,I,g,C,B,Q,i){var o,E,a=0,_=0;s=o=s-96|0,yA(o,Q,i,0),Xg(i=o+32|0,32,0,E=Q+16|0,o),Q=-1;A:{I:if(!fC(g,I,C,B,i)){if(Q=0,!A)break A;g:{if(!(((g=!!(0|B))|!B&C>>>0>I-A>>>0)&A>>>0>>0)&(!B&C>>>0<=A-I>>>0|A>>>0<=I>>>0)){if(!(C|B))break g;g=(Q=!B&C>>>0>=32|!!(0|B))?32:C,i=Q?0:B}else I=yg(A,I,C),g=(Q=g|!B&C>>>0>=32)?32:C,i=Q?0:B;if(a=g,_=Ng(o- -64|0,I,g),ug(g=o+32|0,g,Q=a+32|0,Q>>>0<32?i+1|0:i,E,o),g=Ng(A,_,a),Q=0,!B&C>>>0<33)break I;mg(g+a|0,I+a|0,C-a|0,B-(i+(C>>>0>>0)|0)|0,E,1,0,o);break I}ug(A=o+32|0,A,32,0,E,o)}XC(o,32)}return s=o+96|0,Q}function hI(A,I,g,C,B,Q,E,a,_,c){var t,r;return s=t=s-400|0,i[t+4>>2]=0,yA(r=t+16|0,_,c,0),c=o[_+20|0]|o[_+21|0]<<8|o[_+22|0]<<16|o[_+23|0]<<24,i[t+8>>2]=o[_+16|0]|o[_+17|0]<<8|o[_+18|0]<<16|o[_+19|0]<<24,i[t+12>>2]=c,jg(c=t+80|0,64,0,t+4|0,r),wC(_=t+144|0,c),XC(c,64),SC(_,Q,E,a),SC(_,35680,0-E&15,0),SC(_,I,g,C),SC(_,35680,0-g&15,0),i[t+72>>2]=E,i[t+76>>2]=a,SC(_,Q=t+72|0,8,0),i[t+72>>2]=g,i[t+76>>2]=C,SC(_,Q,8,0),nC(_,Q=t+48|0),XC(_,256),_=oI(Q,B),XC(Q,16),A&&(_?(bg(A,0,g),_=-1):(Og(A,I,g,C,t+4|0,t+16|0),_=0)),XC(t+16|0,32),s=t+400|0,_}function DI(A,I,g,B,Q,o){var E,a;if(s=E=s-496|0,mA(a=E+288|0,A,I),mC(a,g,B,0),o)for(A=0,I=0;g=(I=I+1|0)<<24|(65280&I)<<8|I>>>8&65280|I>>>24,C[E+76|0]=g,C[E+77|0]=g>>>8,C[E+78|0]=g>>>16,C[E+79|0]=g>>>24,Ng(g=E+80|0,E+288|0,208),mC(g,E+76|0,4,0),Sg(g,E+32|0),g=i[E+60>>2],i[E+24>>2]=i[E+56>>2],i[E+28>>2]=g,g=i[E+52>>2],i[E+16>>2]=i[E+48>>2],i[E+20>>2]=g,g=i[E+44>>2],i[E+8>>2]=i[E+40>>2],i[E+12>>2]=g,g=i[E+36>>2],i[E>>2]=i[E+32>>2],i[E+4>>2]=g,Ng(g=A+Q|0,E,(A=o-A|0)>>>0>=32?32:A),o>>>0>(A=I<<5)>>>0;);XC(E+288|0,208),s=E+496|0}function fI(A,I,g,B,Q,i){var o,E,a=0;return s=o=s-32|0,a=-1,(E=g>>>0<32)&!B||(Ug(o,32,0,Q,i),fC(I+16|0,I+32|0,g-32|0,B-E|0,o)||(Gg(A,I,g,B,Q,i),C[A+24|0]=0,C[A+25|0]=0,C[A+26|0]=0,C[A+27|0]=0,C[A+28|0]=0,C[A+29|0]=0,C[A+30|0]=0,C[A+31|0]=0,C[A+16|0]=0,C[A+17|0]=0,C[A+18|0]=0,C[A+19|0]=0,C[A+20|0]=0,C[A+21|0]=0,C[A+22|0]=0,C[A+23|0]=0,C[A+8|0]=0,C[A+9|0]=0,C[A+10|0]=0,C[A+11|0]=0,C[A+12|0]=0,C[A+13|0]=0,C[A+14|0]=0,C[A+15|0]=0,C[0|A]=0,C[A+1|0]=0,C[A+2|0]=0,C[A+3|0]=0,C[A+4|0]=0,C[A+5|0]=0,C[A+6|0]=0,C[A+7|0]=0,a=0)),s=o+32|0,a}function pI(A,I,g,C,B,Q,E,a,_,c,t){var r,e,y;return s=r=s-384|0,i[r+4>>2]=0,yA(e=r+16|0,c,t,0),t=o[c+20|0]|o[c+21|0]<<8|o[c+22|0]<<16|o[c+23|0]<<24,i[r+8>>2]=o[c+16|0]|o[c+17|0]<<8|o[c+18|0]<<16|o[c+19|0]<<24,i[r+12>>2]=t,jg(t=r- -64|0,64,0,y=r+4|0,e),wC(c=r+128|0,t),XC(t,64),SC(c,E,a,_),SC(c,35680,0-a&15,0),Og(A,C,B,Q,y,e),SC(c,A,B,Q),SC(c,35680,0-B&15,0),i[r+56>>2]=a,i[r+60>>2]=_,SC(c,A=r+56|0,8,0),i[r+56>>2]=B,i[r+60>>2]=Q,SC(c,A,8,0),nC(c,I),XC(c,256),g&&(i[g>>2]=16,i[g+4>>2]=0),XC(r+16|0,32),s=r+384|0,0}function wI(A,I,g,C,B){var Q,E,a=0;return s=Q=s+-64|0,!g&(E=RI(A))>>>0<128?(i[Q+60>>2]=0,i[Q+52>>2]=0,i[Q+56>>2]=0,i[Q+44>>2]=0,i[Q+48>>2]=0,g=0,E&&(g=E,(1|E)>>>0<65536||(g=E)),!(a=K(g))|!(3&o[a-4|0])||bg(a,0,g),a?(i[Q+36>>2]=0,i[Q+40>>2]=0,i[Q+12>>2]=a,i[Q+20>>2]=a,i[Q+24>>2]=E,i[Q+4>>2]=a,i[Q+16>>2]=E,i[Q+28>>2]=0,i[Q+32>>2]=0,i[Q+8>>2]=E,OA(Q+4|0,A,B)?(i[9404]=28,A=-1):A=i[Q+44>>2]!=(0|I)|i[Q+48>>2]!=(C>>>10|0),BA(a)):A=-1):(i[9404]=28,A=-1),s=Q- -64|0,A}function nI(A){var I,g=0,C=0;if(!A)return-25;if(!i[A>>2])return-1;if(E[A+4>>2]<16)return-2;if(!(i[A+8>>2]|!i[A+12>>2]))return-18;if(g=i[A+20>>2],!i[A+16>>2])return g?-19:-6;if(g>>>0<8)return-6;if(!(i[A+24>>2]|!i[A+28>>2]))return-20;if(!(i[A+32>>2]|!i[A+36>>2]))return-21;if(!(g=i[A+48>>2]))return-16;if(g>>>0>16777215)return-17;if(C=-14,!((I=i[A+44>>2])>>>0<8)){if(I>>>0>2097152)return-15;if(!(g<<3>>>0>I>>>0)){if(!i[A+40>>2])return-12;if(!(A=i[A+52>>2]))return-28;C=A>>>0>16777215?-29:0}}return C}function kI(A,I){var g,C=0,B=0;g=I;A:{I:{g:{if(I&=255){if(3&A)for(;;){if(!(C=o[0|A])|(0|I)==(0|C))break A;if(!(3&(A=A+1|0)))break}if(-2139062144!=(-2139062144&((C=i[A>>2])|16843008-C)))break g;for(B=a(I,16843009);;){if(-2139062144!=(-2139062144&(16843008-(I=C^B)|I)))break g;if(C=i[A+4>>2],A=I=A+4|0,-2139062144!=(-2139062144&(16843008-C|C)))break}break I}A=RI(A)+A|0;break A}I=A}for(;;){if(!(C=o[0|(A=I)]))break A;if(I=A+1|0,(0|C)==(255&g))break}}return o[0|A]==(255&g)?A:0}function FI(A,I,g,C){var B,Q=0;return s=B=s-208|0,i[B+72>>2]=0,i[B+76>>2]=0,Q=i[8591],i[B+8>>2]=i[8590],i[B+12>>2]=Q,Q=i[8593],i[B+16>>2]=i[8592],i[B+20>>2]=Q,Q=i[8595],i[B+24>>2]=i[8594],i[B+28>>2]=Q,Q=i[8597],i[B+32>>2]=i[8596],i[B+36>>2]=Q,Q=i[8599],i[B+40>>2]=i[8598],i[B+44>>2]=Q,Q=i[8601],i[B+48>>2]=i[8600],i[B+52>>2]=Q,Q=i[8603],i[B+56>>2]=i[8602],i[B+60>>2]=Q,i[B+64>>2]=0,i[B+68>>2]=0,Q=i[8589],i[B>>2]=i[8588],i[B+4>>2]=Q,SA(B,I,g,C),j(B,A),s=B+208|0,0}function SI(A){var I=0;return i[64+(A|=0)>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,I=i[8589],i[A>>2]=i[8588],i[A+4>>2]=I,I=i[8591],i[A+8>>2]=i[8590],i[A+12>>2]=I,I=i[8593],i[A+16>>2]=i[8592],i[A+20>>2]=I,I=i[8595],i[A+24>>2]=i[8594],i[A+28>>2]=I,I=i[8597],i[A+32>>2]=i[8596],i[A+36>>2]=I,I=i[8599],i[A+40>>2]=i[8598],i[A+44>>2]=I,I=i[8601],i[A+48>>2]=i[8600],i[A+52>>2]=I,I=i[8603],i[A+56>>2]=i[8602],i[A+60>>2]=I,0}function NI(A){return~((127&~o[A+31|0]|o[A+1|0]&o[A+2|0]&o[A+3|0]&o[A+4|0]&o[A+5|0]&o[A+6|0]&o[A+7|0]&o[A+8|0]&o[A+9|0]&o[A+10|0]&o[A+11|0]&o[A+12|0]&o[A+13|0]&o[A+14|0]&o[A+15|0]&o[A+16|0]&o[A+17|0]&o[A+18|0]&o[A+19|0]&o[A+20|0]&o[A+21|0]&o[A+22|0]&o[A+23|0]&o[A+24|0]&o[A+25|0]&o[A+26|0]&o[A+27|0]&o[A+28|0]&o[A+30|0]&o[A+29|0]^255)-1&236-o[0|A])>>>8&1}function GI(A,I){var g,B=0,Q=0,i=0,E=0;if(C[15+(g=s-16|0)|0]=0,I){if(I>>>0>=4)for(E=-4&I;B=A+Q|0,C[g+15|0]=o[0|B]|o[g+15|0],C[g+15|0]=o[B+1|0]|o[g+15|0],C[g+15|0]=o[B+2|0]|o[g+15|0],C[g+15|0]=o[B+3|0]|o[g+15|0],Q=Q+4|0,(0|E)!=(0|(i=i+4|0)););if(B=3&I)for(I=0;C[g+15|0]=o[A+Q|0]|o[g+15|0],Q=Q+1|0,(0|B)!=(0|(I=I+1|0)););}return o[g+15|0]-1>>>8&1}function MI(A,I,g){var B,Q=0,E=0;if(i[12+(B=s-16|0)>>2]=A,i[B+8>>2]=I,A=0,C[B+7|0]=0,g){if(I=1&g,1!=(0|g))for(E=-2&g,g=0;C[B+7|0]=o[B+7|0]|o[i[B+12>>2]+A|0]^o[i[B+8>>2]+A|0],Q=1|A,C[B+7|0]=o[B+7|0]|o[Q+i[B+12>>2]|0]^o[i[B+8>>2]+Q|0],A=A+2|0,(0|E)!=(0|(g=g+2|0)););I&&(C[B+7|0]=o[B+7|0]|o[i[B+12>>2]+A|0]^o[i[B+8>>2]+A|0])}return(o[B+7|0]-1>>>8&1)-1|0}function KI(A){for(var I=0,g=0,C=0,B=0,Q=0,i=0,E=0,a=0,_=0,c=0;B=(g=o[A+C|0])^o[0|(I=C+2688|0)]|B,Q=g^o[I+192|0]|Q,i=g^o[I+160|0]|i,E=g^o[I+128|0]|E,a=g^o[I+96|0]|a,_=g^o[I- -64|0]|_,c=g^o[I+32|0]|c,31!=(0|(C=C+1|0)););return((255&((I=127^(A=127&o[A+31|0]))|Q))-1|(255&(I|i))-1|(255&(I|E))-1|(255&(122^A|a))-1|(255&(5^A|_))-1|(255&(A|c))-1|(255&(A|B))-1)>>>8&1}function UI(A,I,g){var C=0,B=0,Q=0,i=0;return B=31&(Q=i=63&g),Q=Q>>>0>=32?-1>>>B|0:(C=-1>>>B|0)|(1<>>0>=32?(C=Q<>>32-B|C<>>0>=32?(C=-1<>>32-C,A&=g,I&=C,C=31&B,B>>>0>=32?(g=0,A=I>>>C|0):(g=I>>>C|0,A=((1<>>C),f=g|Q,A|i}function bI(A,I,g,C,B,Q){A|=0,I|=0,g|=0;var o=0,E=0;A:I:{g:{if(!(!(B|=0)&(C|=0)>>>0<64||(E=1+(B=B-1|0)|0,o=B,!(C=(B=C+-64|0)>>>0<4294967232?E:o)&B>>>0>4294967231|C))){if(!U(o=g,g=g- -64|0,B,C,Q|=0,0))break g;A&&bg(A,0,B)}if(C=-1,!I)break I;i[I>>2]=0,i[I+4>>2]=0,C=-1;break A}I&&(i[I>>2]=B,i[I+4>>2]=C),C=0,A&&yg(A,g,B)}return 0|C}function HI(A,I,g,C,B,Q,o,E,a,_){var c,t,r;return s=c=s-352|0,jg(r=c+32|0,64,0,a,_),wC(t=c+96|0,r),XC(r,64),SC(t,Q,o,E),SC(t,35648,0-o&15,0),SC(t,I,g,C),SC(t,35648,0-g&15,0),i[c+24>>2]=o,i[c+28>>2]=E,SC(t,Q=c+24|0,8,0),i[c+24>>2]=g,i[c+28>>2]=C,SC(t,Q,8,0),nC(t,c),XC(t,256),Q=oI(c,B),XC(c,16),A&&(Q?(bg(A,0,g),Q=-1):(Cg(A,I,g,C,a,1,_),Q=0)),s=c+352|0,Q}function YI(A,I,g,C,B,Q){var E,a;return A|=0,I|=0,g|=0,C|=0,Q|=0,s=E=s-32|0,a=o[0|(B|=0)]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,B=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[E+24>>2]=0,i[E+28>>2]=0,i[E+16>>2]=a,i[E+20>>2]=B,i[E+8>>2]=0,i[E+12>>2]=0,i[E>>2]=g,i[E+4>>2]=C,I-65>>>0<=4294967246?(i[9404]=28,A=-1):A=QA(A,I,0,0,0,Q,32,E,E+16|0),s=E+32|0,0|A}function JI(A,I,g,C,B){var Q,o;return A|=0,I|=0,g|=0,C|=0,s=Q=s-512|0,iI(o=Q+32|0,B|=0,32),dC(o,I,g,C),wg(o,Q+448|0),I=i[Q+476>>2],i[Q+24>>2]=i[Q+472>>2],i[Q+28>>2]=I,I=i[Q+468>>2],i[Q+16>>2]=i[Q+464>>2],i[Q+20>>2]=I,I=i[Q+460>>2],i[Q+8>>2]=i[Q+456>>2],i[Q+12>>2]=I,I=i[Q+452>>2],i[Q>>2]=i[Q+448>>2],i[Q+4>>2]=I,I=NC(A,Q),g=MI(Q,A,32),s=Q+512|0,((0|A)==(0|Q)?-1:I)|g}function dI(A,I,g,C,B,Q,o,E,a,_){var c,t,r;return s=c=s-352|0,Xg(r=c+32|0,64,0,a,_),wC(t=c+96|0,r),XC(r,64),SC(t,Q,o,E),i[c+24>>2]=o,i[c+28>>2]=E,SC(t,Q=c+24|0,8,0),SC(t,I,g,C),i[c+24>>2]=g,i[c+28>>2]=C,SC(t,Q,8,0),nC(t,c),XC(t,256),Q=oI(c,B),XC(c,16),A&&(Q?(bg(A,0,g),Q=-1):(mg(A,I,g,C,a,1,0,_),Q=0)),s=c+352|0,Q}function mI(A,I,g,C,B,Q,o,E,a,_,c){var t,r,e;return s=t=s-336|0,jg(e=t+16|0,64,0,_,c),wC(r=t+80|0,e),XC(e,64),SC(r,o,E,a),SC(r,35648,0-E&15,0),Cg(A,C,B,Q,_,1,c),SC(r,A,B,Q),SC(r,35648,0-B&15,0),i[t+8>>2]=E,i[t+12>>2]=a,SC(r,A=t+8|0,8,0),i[t+8>>2]=B,i[t+12>>2]=Q,SC(r,A,8,0),nC(r,I),XC(r,256),g&&(i[g>>2]=16,i[g+4>>2]=0),s=t+336|0,0}function lI(A,I){var g,C=0,B=0,Q=0,E=0,_=0;A:if(!(((g=o[0|A])-58&255)>>>0<246)){for(C=g,B=A;;){if(E=B,Q>>>0>429496729)break A;if((C=(255&C)-48|0)>>>0>~(Q=a(Q,10))>>>0)break A;if(Q=Q+C|0,!(((C=o[0|(B=B+1|0)])-58&255)>>>0>245))break}48==(0|g)&(0|A)!=(0|E)|(0|A)==(0|B)||(i[I>>2]=Q,_=B)}return _}function uI(A){var I=0,g=0,C=0,B=0;I=65,g=1024;A:{I:{if((0|(C=255&A))!=o[1024])for(C=a(C,16843009);;){if(-2139062144!=(-2139062144&((B=C^i[g>>2])|16843008-B)))break I;if(g=g+4|0,!((I=I-4|0)>>>0>3))break}if(!I)break A}for(A&=255;;){if((0|A)==o[0|g])return g;if(g=g+1|0,!(I=I-1|0))break}}return 0}function xI(A,I,g,C,B,Q,o,E,a,_,c){var t,r,e;return s=t=s-336|0,Xg(e=t+16|0,64,0,_,c),wC(r=t+80|0,e),XC(e,64),SC(r,o,E,a),i[t+8>>2]=E,i[t+12>>2]=a,SC(r,o=t+8|0,8,0),mg(A,C,B,Q,_,1,0,c),SC(r,A,B,Q),i[t+8>>2]=B,i[t+12>>2]=Q,SC(r,o,8,0),nC(r,I),XC(r,256),g&&(i[g>>2]=16,i[g+4>>2]=0),s=t+336|0,0}function vI(A,I,g,B,Q,i){return!B&g>>>0>=32|B?(Gg(A,I,g,B,Q,i),hC(A+16|0,A+32|0,g-32|0,B-(g>>>0<32)|0,A),C[A+8|0]=0,C[A+9|0]=0,C[A+10|0]=0,C[A+11|0]=0,C[A+12|0]=0,C[A+13|0]=0,C[A+14|0]=0,C[A+15|0]=0,C[0|A]=0,C[A+1|0]=0,C[A+2|0]=0,C[A+3|0]=0,C[A+4|0]=0,C[A+5|0]=0,C[A+6|0]=0,C[A+7|0]=0,A=0):A=-1,A}function RI(A){var I=0,g=0,C=0;A:{I:if(3&(I=A)){if(!o[0|I])return 0;for(;;){if(!(3&(I=I+1|0)))break I;if(!o[0|I])break}break A}for(;g=I,I=I+4|0,-2139062144==(-2139062144&((C=i[g>>2])|16843008-C)););for(;g=(I=g)+1|0,o[0|I];);}return I-A|0}function LI(A,I,g,C,B,Q){I|=0,B|=0,Q|=0;var o,E=0;return s=o=s-16|0,w(A|=0,o+8|0,yg(A- -64|0,g|=0,C|=0),C,B,Q,0),i[o+12>>2]|64!=i[o+8>>2]?(I&&(i[I>>2]=0,i[I+4>>2]=0),bg(A,0,C- -64|0),E=-1):I&&(i[I>>2]=C- -64,i[I+4>>2]=B-((C>>>0<4294967232)-1|0)),s=o+16|0,0|E}function PI(A,I){var g,C=0,B=0,Q=0,E=0;return(g=uI(o[0|I]))&&(C=uI(o[I+1|0]))&&(B=uI(o[I+2|0]))&&(Q=uI(o[I+3|0]))&&(E=uI(o[I+4|0]))?(i[A>>2]=g-1024|C-1024<<6|B-1024<<12|Q-1024<<18|E-1024<<24,I+5|0):(i[A>>2]=0,0)}function qI(A,I,g){var C;for(i[12+(C=s-16|0)>>2]=A,i[C+8>>2]=I,A=0,i[C+4>>2]=0;i[C+4>>2]=i[C+4>>2]|o[i[C+12>>2]+A|0]^o[i[C+8>>2]+A|0],I=1|A,i[C+4>>2]=i[C+4>>2]|o[I+i[C+12>>2]|0]^o[I+i[C+8>>2]|0],(0|g)!=(0|(A=A+2|0)););return(i[C+4>>2]-1>>>8&1)-1|0}function zI(A,I,g,C,B,Q,o,E,a,_,c){var t=0,r=0,e=0;return r=-1,(t=C>>>0<32)&!B||!(t=B-t|0)&(e=C-32|0)>>>0>4294967263|t|!E&o>>>0>4294967263|E||(r=0|pB[i[c>>2]](A,g,e,(g+C|0)-32|0,32,Q,o,a,_)),I&&(i[I>>2]=r?0:C-32|0,i[I+4>>2]=r?0:B-(C>>>0<32)|0),r}function jI(A,I){var g,C=0,B=0,Q=0;s=g=s-896|0,fA(C=g+848|0,I),fA(B=g+800|0,I+32|0),$(Q=g+320|0,C),$(I=g+160|0,B),$A(C=g+640|0,I),sA(I=g+480|0,Q,C),b(g,I,C=g+600|0),b(g+40|0,B=g+520|0,Q=g+560|0),b(g+80|0,Q,C),b(g+120|0,I,B),W(A,g),s=g+896|0}function XI(A){var I=0,g=0,B=0,Q=0,i=0;for(I=1;g=(B=I)+o[0|(I=A+Q|0)]|0,C[0|I]=g,g=o[I+1|0]+(g>>>8|0)|0,C[I+1|0]=g,g=o[I+2|0]+(g>>>8|0)|0,C[I+2|0]=g,B=I,I=o[I+3|0]+(g>>>8|0)|0,C[B+3|0]=I,I=I>>>8|0,Q=Q+4|0,4!=(0|(i=i+4|0)););}function OI(A,I,g,C,B,Q,o){var E;return s=E=s-16|0,A=bg(A,0,128),!(C|Q)&o>>>0<2147483649?(!Q&B>>>0>=3|!!(0|Q))&o>>>0>8191?(ag(E,16),A=iA(B,o>>>10|0,I,g,E,A,1)?-1:0):(i[9404]=28,A=-1):(i[9404]=22,A=-1),s=E+16|0,A}function WI(A,I){var g=0;4&I&&((I=i[A>>2])&&XC(i[I+4>>2],i[A+16>>2]<<10),(I=i[A+4>>2])&&XC(I,i[A+20>>2]<<3)),BA(i[A+4>>2]),i[A+4>>2]=0,(I=i[A>>2])&&(g=i[I>>2])&&BA(g),BA(I),i[A>>2]=0}function VI(A,I,g,C,B,o,E,a,_,c,t){return!B&C>>>0>4294967263|!!(0|B)|!a&E>>>0>=4294967264|!!(0|a)?(rC(),Q()):(A=0|pB[i[t>>2]](A,A+C|0,32,g,C,o,E,_,c),I&&(C=(g=C+32|0)>>>0<32?B+1|0:B,i[I>>2]=A?0:g,i[I+4>>2]=A?0:C)),A}function ZI(A){var I=0,g=0,C=0,B=0,Q=0,i=0,E=0,a=0;for(I=32,g=1;a|=(B=o[(C=I-2|0)+A|0])-(Q=o[C+2912|0])>>8&(I=((i=o[2912+(I=I-1|0)|0])^(E=o[A+I|0]))-1>>8&g)|E-i>>8&g,g=I&(B^Q)-1>>8,I=C;);return!!(255&a)}function TI(A,I,g,C,B,Q,o){var E;return s=E=s-16|0,A=bg(A,0,128),!(C|Q)&o>>>0<2147483649?!!(B|Q)&o>>>0>8191?(ag(E,16),A=iA(B,o>>>10|0,I,g,E,A,2)?-1:0):(i[9404]=28,A=-1):(i[9404]=22,A=-1),s=E+16|0,A}function $I(A){var I=0;return i[32+(A|=0)>>2]=0,i[A+36>>2]=0,I=i[8809],i[A>>2]=i[8808],i[A+4>>2]=I,I=i[8811],i[A+8>>2]=i[8810],i[A+12>>2]=I,I=i[8813],i[A+16>>2]=i[8812],i[A+20>>2]=I,I=i[8815],i[A+24>>2]=i[8814],i[A+28>>2]=I,0}function Ag(A,I,g,C,B,Q,i){var o,E,a=0,_=0;return s=o=s+-64|0,a=-1,(E=g>>>0<16)&!C||CI(_=o+32|0,i,Q)||yA(o,35584,_,0)||(a=sI(A,I+16|0,I,g-16|0,C-E|0,B,o),XC(o,32)),s=o- -64|0,a}function Ig(A,I,g,C){var B,Q,i,o,E=0,_=0;return o=a(E=g>>>16|0,_=A>>>16|0),E=(65535&(_=((i=a(B=65535&g,Q=65535&A))>>>16|0)+a(_,B)|0))+a(E,Q)|0,f=(a(I,g)+o|0)+a(A,C)+(_>>>16)+(E>>>16)|0,65535&i|E<<16}function gg(A,I,g){var C=0,B=0;if(!g)return 0;if(C=o[0|A])A:{for(;;){if((0|(B=o[0|I]))!=(0|C)|!B)break A;if(!(g=g-1|0))break A;if(I=I+1|0,C=o[A+1|0],A=A+1|0,!C)break}C=0}else C=0;return C-o[0|I]|0}function Cg(A,I,g,C,B,o,E){var a=0,_=0;if(a=C,!(1==(((a=(_=g+63|0)>>>0<63?a+1|0:a)>>>6|0)+!!(0|(a=(63&a)<<26|_>>>6))|0)&o>>>0>(_=0-a|0)>>>0|1==(0|C)|C>>>0>1))return 0|pB[i[9199]](A,I,g,C,B,o,E);rC(),Q()}function Bg(A,I,g,C,B,Q,i){var o;return A|=0,I|=0,g|=0,C|=0,B|=0,s=o=s+-64|0,CI(o+32|0,i|=0,Q|=0)?Q=-1:(Q=-1,wA(o,35664,o+32|0,0)||(Q=vI(A,I,g,C,B,o),XC(o,32))),s=o- -64|0,0|Q}function Qg(A,I,g,C,B,Q,i){var o;return A|=0,I|=0,g|=0,C|=0,B|=0,s=o=s+-64|0,CI(o+32|0,i|=0,Q|=0)?Q=-1:(Q=-1,wA(o,35664,o+32|0,0)||(Q=fI(A,I,g,C,B,o),XC(o,32))),s=o- -64|0,0|Q}function ig(A,I,g,C,B,i,o){var E;if(s=E=s+-64|0,!C&g>>>0<4294967280)return CI(E+32|0,o,i)?o=-1:(o=-1,yA(E,35584,E+32|0,0)||(o=EI(A+16|0,A,I,g,C,B,E),XC(E,32))),s=E- -64|0,o;rC(),Q()}function og(A,I){for(var g=0,B=0,Q=0,i=0,E=0;B=A+Q|0,g=o[I+Q|0]+(o[0|B]+g|0)|0,C[0|B]=g,i=(B=1|Q)+A|0,g=o[I+B|0]+(o[0|i]+(g>>>8|0)|0)|0,C[0|i]=g,g=g>>>8|0,Q=Q+2|0,32!=(0|(E=E+2|0)););}function Eg(A,I){for(var g=0,B=0,Q=0,i=0,E=0;g=(o[0|(B=A+Q|0)]-o[I+Q|0]|0)+g|0,C[0|B]=g,g=(o[0|(i=(B=1|Q)+A|0)]-o[I+B|0]|0)+(g>>8)|0,C[0|i]=g,g>>=8,Q=Q+2|0,64!=(0|(E=E+2|0)););}function ag(A,I){A|=0;var g,B=0,Q=0,i=0;if(s=g=s-16|0,I|=0)for(;C[g+15|0]=0,Q=A+B|0,i=0|t(36800,g+15|0,0),C[0|Q]=i,(0|(B=B+1|0))!=(0|I););s=g+16|0}function _g(A,I,g,C,B,Q,i){var o,E,a=0;return s=o=s-32|0,a=-1,(E=g>>>0<16)&!C||cC(o,Q,i)||(a=eI(A,I+16|0,I,g-16|0,C-E|0,B,o),XC(o,32)),s=o+32|0,a}function cg(A){var I,g;A:{if(!((A=(I=i[8924])+(g=A+7&-8)|0)>>>0<=I>>>0&&g)){if(A>>>0<=wB()<<16>>>0)break A;if(0|y(0|A))break A}return i[9404]=48,-1}return i[8924]=A,I}function tg(A,I){var g,B,Q;s=g=s-176|0,LA(B=g+96|0,I+80|0),b(Q=g+48|0,I,B),b(g,I+40|0,B),QI(A,g),QI(g+144|0,Q),C[A+31|0]=o[A+31|0]^o[g+144|0]<<7,s=g+176|0}function rg(A,I,g,C,B,Q,i,o,E,a){var _,c,t=0,r=0,e=0;return s=_=s-16|0,t=-1,_C(c=_+4|0)||(r=-1,e=_A(c,A,I,g,C,B,Q,i,o,E,a),t=Rg(c)?r:e),s=_+16|0,t}function eg(A,I,g,C,B,o,E,a,_,c,t,r){return g&&(i[g>>2]=32,i[g+4>>2]=0),!_&a>>>0<4294967264&!o&B>>>0<=4294967263||(rC(),Q()),0|pB[i[r>>2]](A,I,32,C,B,E,a,c,t)}function yg(A,I,g){var B=0;if(A>>>0>>0)return Ng(A,I,g);if(g)for(B=A+g|0,I=I+g|0;I=I-1|0,C[0|(B=B-1|0)]=o[0|I],g=g-1|0;);return A}function sg(A,I,g,C,B,i,o){var E,a=0;if(s=E=s-32|0,!C&g>>>0<4294967280)return a=-1,cC(E,i,o)||(a=aI(A+16|0,A,I,g,C,B,E),XC(E,32)),s=E+32|0,a;rC(),Q()}function hg(A,I,g,C,B,Q){return I|=0,0|(!(C|=0)&(g|=0)>>>0>=16|C?eI(A|=0,I+16|0,I,g-16|0,C-(g>>>0<16)|0,B|=0,Q|=0):-1)}function Dg(A,I,g,C,B,Q){return I|=0,0|(!(C|=0)&(g|=0)>>>0>=16|C?sI(A|=0,I+16|0,I,g-16|0,C-(g>>>0<16)|0,B|=0,Q|=0):-1)}function fg(A,I,g,C,B,Q,o,E,a,_,c){return!C&g>>>0>4294967263|C|!E&o>>>0>4294967263|E?-1:0|pB[i[c>>2]](A,I,g,B,32,Q,o,a,_)}function pg(A,I,g){A|=0;var C,B=0;return s=C=s-32|0,B=-1,CI(C,g|=0,I|=0)||(B=wA(A,35664,C,0)),s=C+32|0,0|B}function wg(A,I){var g;return I|=0,s=g=s+-64|0,j(A|=0,g),SA(A=A+208|0,g,64,0),j(A,I),XC(g,64),s=g- -64|0,0}function ng(A,I,g,C){var B;return I|=0,g|=0,C|=0,s=B=s+-64|0,j(A|=0,B),A=w(I,g,B,64,0,C,1),s=B- -64|0,0|A}function kg(A,I){var g,C,B;b(A,I,g=I+120|0),b(A+40|0,C=I+40|0,B=I+80|0),b(A+80|0,B,g),b(A+120|0,I,C)}function Fg(A,I,g,C,B,Q,i){return 0|TI(A|=0,I|=0,(A=0)|(g|=0),C|=0,A|(B|=0),Q|=0,i|=0)}function Sg(A,I){var g;return I|=0,s=g=s-32|0,JA(A|=0,g),UA(A=A+104|0,g,32,0),JA(A,I),XC(g,32),s=g+32|0,0}function Ng(A,I,g){var B=0;if(g)for(B=A;C[0|B]=o[0|I],B=B+1|0,I=I+1|0,g=g-1|0;);return A}function Gg(A,I,g,C,B,Q){var i;return s=i=s-32|0,wA(i,B,Q,0),A=oC(A,I,g,C,B+16|0,0,0,i),XC(i,32),s=i+32|0,A}function Mg(A){for(A|=0;ag(A,32),C[A+31|0]=31&o[A+31|0],!ZI(A)||GI(A,32););}function Kg(A,I,g){var C;return I|=0,g|=0,s=C=s+-64|0,j(A|=0,C),A=U(I,C,64,0,g,1),s=C- -64|0,0|A}function Ug(A,I,g,C,B){var Q;return s=Q=s-32|0,wA(Q,C,B,0),A=DC(A,I,g,C+16|0,Q),XC(Q,32),s=Q+32|0,A}function bg(A,I,g){var B=0;if(g)for(B=A;C[0|B]=I,B=B+1|0,g=g-1|0;);return A}function Hg(A,I,g){return A|=0,I|=0,(g|=0)>>>0>=256&&(r(1366,1279,107,1123),Q()),0|AA(A,I,255&g)}function Yg(A,I,g,C,B,Q,i){return 0|aI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function Jg(A,I,g,C,B,Q,i){return 0|eI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function dg(A,I,g,C,B,Q,i){return 0|EI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function mg(A,I,g,C,B,o,E,a){return 1==(0|C)|C>>>0>1&&(rC(),Q()),0|pB[i[9198]](A,I,g,C,B,o,E,a)}function lg(A,I,g,C,B,Q,i){return 0|sI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function ug(A,I,g,C,B,o){return 1==(0|C)|C>>>0>1&&(rC(),Q()),0|pB[i[9198]](A,I,g,C,B,0,0,o)}function xg(A,I,g,C,B,o){return 1==(0|C)|C>>>0>1&&(rC(),Q()),0|pB[i[9199]](A,I,g,C,B,0,o)}function vg(A,I,g,C,B,Q){return w(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,0),0}function Rg(A){var I;return(I=i[A>>2])&&BA(I),i[A+8>>2]=0,i[A>>2]=0,i[A+4>>2]=0,0}function Lg(A,I){var g=0;return(-1>>>(g=31&I)&A)<>>A}function Pg(A,I,g,C,B,Q){return 0|vI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)}function qg(A,I,g,C,B,Q){return 0|fI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)}function zg(A,I,g,C,B,Q){return 0|Gg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)}function jg(A,I,g,C,B){return 1==(0|g)|g>>>0>1&&(rC(),Q()),0|pB[i[9197]](A,I,g,C,B)}function Xg(A,I,g,C,B){return 1==(0|g)|g>>>0>1&&(rC(),Q()),0|pB[i[9196]](A,I,g,C,B)}function Og(A,I,g,C,B,o){1==(0|C)|C>>>0>1&&(rC(),Q()),pB[i[9199]](A,I,g,C,B,1,o)}function Wg(A,I,g,C,B){return 0|U(A|=0,I|=0,g|=0,C|=0,B|=0,0)}function Vg(A,I,g,C,B){return 0|hC(A|=0,I|=0,g|=0,C|=0,B|=0)}function Zg(A,I,g,C,B){return 0|fC(A|=0,I|=0,g|=0,C|=0,B|=0)}function Tg(A,I,g,C,B){return 0|Ug(A|=0,I|=0,g|=0,C|=0,B|=0)}function $g(){var A;s=A=s-16|0,C[A+15|0]=0,t(36836,A+15|0,0),s=A+16|0}function AC(A,I,g,C){return CA(A|=0,I|=0,g|=0,C|=0,20),0}function IC(A,I,g,C){return CA(A|=0,I|=0,g|=0,C|=0,12),0}function gC(A,I,g,C){return CA(A|=0,I|=0,g|=0,C|=0,8),0}function CC(A,I,g,C){return 0|FI(A|=0,I|=0,g|=0,C|=0)}function BC(A,I,g,C){return 0|SC(A|=0,I|=0,g|=0,C|=0)}function QC(A,I,g,C){return 0|SA(A|=0,I|=0,g|=0,C|=0)}function iC(A,I,g,C){return 0|eA(A|=0,I|=0,g|=0,C|=0)}function oC(A,I,g,C,B,Q,o,E){return 0|pB[i[8933]](A,I,g,C,B,Q,o,E)}function EC(A,I,g,C){return 0|dC(A|=0,I|=0,g|=0,C|=0)}function aC(A,I,g,C,B,Q){return 0|pB[i[8933]](A,I,g,C,B,0,0,Q)}function _C(A){return i[A+8>>2]=0,i[A>>2]=0,i[A+4>>2]=0,0}function cC(A,I,g){return 0|pg(A|=0,I|=0,g|=0)}function tC(A,I,g){return 0|CI(A|=0,I|=0,g|=0)}function rC(){var A;(A=i[9538])&&pB[0|A](),DB(),Q()}function eC(A,I,g){return 0|Hg(A|=0,I|=0,g|=0)}function yC(A,I,g){return 0|iI(A|=0,I|=0,g|=0)}function sC(A,I){return A|=0,ag(I|=0,32),0|pC(A,I)}function hC(A,I,g,C,B){return 0|pB[i[8925]](A,I,g,C,B)}function DC(A,I,g,C,B){return 0|pB[i[8932]](A,I,g,C,B)}function fC(A,I,g,C,B){return 0|pB[i[8926]](A,I,g,C,B)}function pC(A,I){return A|=0,I|=0,0|pB[i[8931]](A,I)}function wC(A,I){return A|=0,I|=0,0|pB[i[8927]](A,I)}function nC(A,I){return A|=0,I|=0,0|pB[i[8929]](A,I)}function kC(A,I,g,C,B,Q,i){return lA(A,I,g,C,B,Q,i)}function FC(A){return A?31-_(A-1^A)|0:32}function SC(A,I,g,C){return 0|pB[i[8928]](A,I,g,C)}function NC(A,I){return 0|qI(A|=0,I|=0,32)}function GC(A,I){return 0|qI(A|=0,I|=0,64)}function MC(A,I,g){n(A|=0,I|=0,g|=0)}function KC(A,I){return 0|pC(A|=0,I|=0)}function UC(A,I){return 0|sC(A|=0,I|=0)}function bC(A,I,g,C){return BI(A,I,g,C,1)}function HC(A,I,g,C){return wI(A,I,g,C,1)}function YC(A,I,g,C){return wI(A,I,g,C,2)}function JC(A,I,g,C){return BI(A,I,g,C,2)}function dC(A,I,g,C){return SA(A,I,g,C),0}function mC(A,I,g,C){return UA(A,I,g,C),0}function lC(A,I,g,C){return WA(A,I,g,C)}function uC(A){return SI(A|=0),0}function xC(){return-2147483648}function vC(){return 1073741824}function RC(){return 268435456}function LC(){return 33554432}function PC(A){ag(A|=0,32)}function qC(){return 67108864}function zC(A){ag(A|=0,16)}function jC(){return 16777216}function XC(A,I){bg(A,0,I)}function OC(){return 1564}function WC(){return 1338}function VC(){return 8192}function ZC(){return 384}function TC(){return 256}function $C(){return 416}function AB(){return 128}function IB(){return 208}function gB(){return 64}function CB(){return 16}function BB(){return 32}function QB(){return-65}function iB(){return-33}function oB(){return 48}function EB(){return-17}function aB(){return 12}function _B(){return 24}function cB(){return-1}function tB(){return 2}function rB(){return 3}function eB(){return 8}function yB(){return 1}function sB(){return 4}function hB(){return 0}function DB(){e(),Q()}B(I=o,1024,\"Li8wMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5egBqcwByYW5kb21ieXRlcwBiNjRfcG9zIDw9IGI2NF9sZW4AY3J5cHRvX2dlbmVyaWNoYXNoX2JsYWtlMmJfZmluYWwAYXJnb24yaWQsYXJnb24yaQAkYXJnb24yaQAkYXJnb24yaWQAcmFuZG9tYnl0ZXMvcmFuZG9tYnl0ZXMuYwBzb2RpdW0vY29kZWNzLmMAY3J5cHRvX2dlbmVyaWNoYXNoL2JsYWtlMmIvcmVmL2JsYWtlMmItcmVmLmMAY3J5cHRvX2dlbmVyaWNoYXNoL2JsYWtlMmIvcmVmL2dlbmVyaWNoYXNoX2JsYWtlMmIuYwB4MjU1MTlibGFrZTJiAGJ1Zl9sZW4gPD0gU0laRV9NQVgAb3V0bGVuIDw9IFVJTlQ4X01BWABTLT5idWZsZW4gPD0gQkxBS0UyQl9CTE9DS0JZVEVTACRhcmdvbjJpJHY9ACRhcmdvbjJpZCR2PQBjdXJ2ZTI1NTE5AGVkMjU1MTkAaG1hY3NoYTUxMjI1NgBjdXJ2ZTI1NTE5eHNhbHNhMjBwb2x5MTMwNQBzb2RpdW1fYmluMmJhc2U2NABzaXBoYXNoMjQAc2hhNTEyAHhzYWxzYTIwADEuMC4yMAAkYXJnb24yaSQAJGFyZ29uMmlkJAAkNyQAAAAAAAC2eFn/hXLTAL1uFf8PCmoAKcABAJjoef+8PKD/mXHO/wC34v60DUj/AAAAAAAAAACwoA7+08mG/54YjwB/aTUAYAy9AKfX+/+fTID+amXh/x78BACSDK4=\"),B(I,1680,\"WfGy/grlpv973Sr+HhTUAFKAAwAw0fMAd3lA/zLjnP8AbsUBZxuQ\"),B(I,1728,\"hTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/L2Oo/qrimf9ms9gA4o16/3pCmf629YYA4+QZAdY56//YrTj/tefSAHeAnf+BX4j/bn4zAAKpt/8HgmL+RbBe/3QE4wHZ8pH/yq0fAWkBJ/8ur0UA5C86/9fgRf7POEX/EP6L/xfP1P/KFH7/X9Vg/wmwIQDIBc//8SqA/iMhwP/45cQBgRF4APtnl/8HNHD/jDhC/yji9f/ZRiX+rNYJ/0hDhgGSwNb/LCZwAES4S//OWvsAleuNALWqOgB09O8AXJ0CAGatYgDpiWABfzHLAAWblAAXlAn/03oMACKGGv/bzIgAhggp/+BTK/5VGfcAbX8A/qmIMADud9v/563VAM4S/v4Iugf/fgkHAW8qSABvNOz+YD+NAJO/f/7NTsD/DmrtAbvbTACv87v+aVmtAFUZWQGi85QAAnbR/iGeCQCLoy7/XUYoAGwqjv5v/I7/m9+QADPlp/9J/Jv/XnQM/5ig2v+c7iX/s+rP/8UAs/+apI0A4cRoAAojGf7R1PL/Yf3e/rhl5QDeEn8BpIiH/x7PjP6SYfMAgcAa/slUIf9vCk7/k1Gy/wQEGACh7tf/Bo0hADXXDv8ptdD/54udALPL3f//uXEAveKs/3FC1v/KPi3/ZkAI/06uEP6FdUT/\"),B(I,2720,\"AQ==\"),B(I,2752,\"JuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQ=\"),B(I,2943,\"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\"),B(I,33964,\"AQAAAHbBXwBlcAL/UPyh/vJqxv+FBrIA5N9wAN/uVf4z8xoAPiuL/stBCg==\"),B(I,34016,\"M03tAJGqVv82JjP/8YBl/yl5Sv/sTpsAqZdp/pwpSADCZq//zqJl/wAAAAAAAAAAGy57ARKo/f/Tr5f+w9tgADh2vv7+0fX/mWR+/uiBFf81uPL/x6Td\"),B(I,34144,\"AQ==\"),B(I,34176,\"4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f0xpYnNvZGl1bURSRwAAAAAIybzzZ+YJajunyoSFrme7K/iU/nLzbjzxNh1fOvVPpdGC5q1/Ug5RH2w+K4xoBZtrvUH7q9mDH3khfhMZzeBbIq4o15gvikLNZe8jkUQ3cS87TezP+8C1vNuJgaXbtek4tUjzW8JWORnQBbbxEfFZm08Zr6SCP5IYgW3a1V4cq0ICA6OYqgfYvm9wRQFbgxKMsuROvoUxJOK0/9XDfQxVb4l78nRdvnKxlhY7/rHegDUSxyWnBtyblCZpz3Txm8HSSvGewWmb5OMlTziGR77vtdWMi8adwQ9lnKx3zKEMJHUCK1lvLOktg+SmbqqEdErU+0G93KmwXLVTEYPaiPl2q99m7lJRPpgQMrQtbcYxqD8h+5jIJwOw5A7vvsd/Wb/Cj6g98wvgxiWnCpNHkafVb4ID4FFjygZwbg4KZykpFPwv0kaFCrcnJskmXDghGy7tKsRa/G0sTd+zlZ0TDThT3mOvi1RzCmWosnc8uwpqduau7UcuycKBOzWCFIUscpJkA/FMoei/ogEwQrxLZhqokZf40HCLS8IwvlQGo1FsxxhS79YZ6JLREKllVSQGmdYqIHFXhTUO9LjRuzJwoGoQyNDSuBbBpBlTq0FRCGw3Hpnrjt9Md0gnqEib4bW8sDRjWsnFswwcOcuKQeNKqthOc+Njd0/KnFujuLLW828uaPyy713ugo90YC8XQ29jpXhyq/ChFHjIhOw5ZBoIAseMKB5jI/r/vpDpvYLe62xQpBV5xrL3o/m+K1Ny4/J4ccacYSbqzj4nygfCwCHHuIbRHuvgzdZ92up40W7uf0999bpvF3KqZ/AGppjIosV9YwquDfm+BJg/ERtHHBM1C3EbhH0EI/V32yiTJMdAe6vKMry+yRUKvp48TA0QnMRnHUO2Qj7LvtTFTCp+ZfycKX9Z7PrWOqtvy18XWEdKjBlEbIA=\"),B(I,35184,\"7dP1XBpjEljWnPei3vneFA==\"),B(I,35215,\"EA==\"),B(I,35232,\"Z+YJaoWuZ7ty8248OvVPpX9SDlGMaAWbq9mDHxnN4FuYL4pCkUQ3cc/7wLWl27XpW8JWOfER8Vmkgj+S1V4cq5iqB9gBW4MSvoUxJMN9DFV0Xb5y/rHegKcG3Jt08ZvBwWmb5IZHvu/GncEPzKEMJG8s6S2qhHRK3KmwXNqI+XZSUT6YbcYxqMgnA7DHf1m/8wvgxkeRp9VRY8oGZykpFIUKtyc4IRsu/G0sTRMNOFNUcwpluwpqdi7JwoGFLHKSoei/oktmGqhwi0vCo1FsxxnoktEkBpnWhTUO9HCgahAWwaQZCGw3Hkx3SCe1vLA0swwcOUqq2E5Pypxb828uaO6Cj3RvY6V4FHjIhAgCx4z6/76Q62xQpPej+b7yeHHGgA==\"),B(I,35600,\"U2lnRWQyNTUxOSBubyBFZDI1NTE5IGNvbGxpc2lvbnMB\"),B(I,35696,\"EJUBAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQ==\"),B(I,35744,\"xmNjpfh8fITud3eZ9nt7jf/y8g3Wa2u93m9vsZHFxVRgMDBQAgEBA85nZ6lWKyt95/7+GbXX12JNq6vm7HZ2mo/KykUfgoKdicnJQPp9fYfv+voVsllZ645HR8n78PALQa2t7LPU1GdfoqL9Ra+v6iOcnL9TpKT35HJylpvAwFt1t7fC4f39HD2Tk65MJiZqbDY2Wn4/P0H19/cCg8zMT2g0NFxRpaX00eXlNPnx8QjicXGTq9jYc2IxMVMqFRU/CAQEDJXHx1JGIyNlncPDXjAYGCg3lpahCgUFDy+amrUOBwcJJBISNhuAgJvf4uI9zevrJk4nJ2l/srLN6nV1nxIJCRsdg4OeWCwsdDQaGi42Gxst3G5usrRaWu5boKD7pFJS9nY7O0231tZhfbOzzlIpKXvd4+M+Xi8vcROEhJemU1P1udHRaAAAAADB7e0sQCAgYOP8/B95sbHItltb7dRqar6Ny8tGZ76+2XI5OUuUSkremExM1LBYWOiFz89Ku9DQa8Xv7ypPqqrl7fv7FoZDQ8WaTU3XZjMzVRGFhZSKRUXP6fn5EAQCAgb+f3+BoFBQ8Hg8PEQln5+6S6io46JRUfNdo6P+gEBAwAWPj4o/kpKtIZ2dvHA4OEjx9fUEY7y833e2tsGv2tp1QiEhYyAQEDDl//8a/fPzDr/S0m2Bzc1MGAwMFCYTEzXD7Owvvl9f4TWXl6KIRETMLhcXOZPExFdVp6fy/H5+gno9PUfIZGSsul1d5zIZGSvmc3OVwGBgoBmBgZieT0/Ro9zcf0QiImZUKip+O5CQqwuIiIOMRkbKx+7uKWu4uNMoFBQ8p97eebxeXuIWCwsdrdvbdtvg4DtkMjJWdDo6ThQKCh6SSUnbDAYGCkgkJGy4XFzkn8LCXb3T025DrKzvxGJipjmRkagxlZWk0+TkN/J5eYvV5+cyi8jIQ243N1nabW23AY2NjLHV1WScTk7SSamp4NhsbLSsVlb68/T0B8/q6iXKZWWv9Hp6jkeurukQCAgYb7q61fB4eIhKJSVvXC4ucjgcHCRXpqbxc7S0x5fGxlHL6Ogjod3dfOh0dJw+Hx8hlktL3WG9vdwNi4uGD4qKheBwcJB8Pj5CcbW1xMxmZqqQSEjYBgMDBff29gEcDg4SwmFho2o1NV+uV1f5abm50BeGhpGZwcFYOh0dJyeenrnZ4eE46/j4EyuYmLMiEREz0mlpu6nZ2XAHjo6JM5SUpy2bm7Y8Hh4iFYeHksnp6SCHzs5JqlVV/1AoKHil3996A4yMj1mhofgJiYmAGg0NF2W/v9rX5uYxhEJCxtBoaLiCQUHDKZmZsFotLXceDw8Re7Cwy6hUVPxtu7vWLBYWOgoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAAR\");var fB,pB=(fB=[null,function(A,I,g,B,Q){var E,a,_;return A|=0,I|=0,g|=0,B|=0,Q|=0,s=E=(a=s)-128&-64,i[E>>2]=67108863&(o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),i[E+4>>2]=(o[Q+3|0]|o[Q+4|0]<<8|o[Q+5|0]<<16|o[Q+6|0]<<24)>>>2&67108611,i[E+8>>2]=(o[Q+6|0]|o[Q+7|0]<<8|o[Q+8|0]<<16|o[Q+9|0]<<24)>>>4&67092735,i[E+12>>2]=(o[Q+9|0]|o[Q+10|0]<<8|o[Q+11|0]<<16|o[Q+12|0]<<24)>>>6&66076671,_=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+20>>2]=0,i[E+24>>2]=0,i[E+28>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,i[E+16>>2]=_>>>8&1048575,i[E+40>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+44>>2]=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+48>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,Q=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,C[E+80|0]=0,i[E+56>>2]=0,i[E+60>>2]=0,i[E+52>>2]=Q,vA(E,I,g,B),gI(E,A),s=a,0},function(A,I,g,B,Q){var E,a,_;return A|=0,I|=0,g|=0,B|=0,Q|=0,s=E=(a=s)-192&-64,i[E+64>>2]=67108863&(o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),i[E+68>>2]=(o[Q+3|0]|o[Q+4|0]<<8|o[Q+5|0]<<16|o[Q+6|0]<<24)>>>2&67108611,i[E+72>>2]=(o[Q+6|0]|o[Q+7|0]<<8|o[Q+8|0]<<16|o[Q+9|0]<<24)>>>4&67092735,i[E+76>>2]=(o[Q+9|0]|o[Q+10|0]<<8|o[Q+11|0]<<16|o[Q+12|0]<<24)>>>6&66076671,_=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+84>>2]=0,i[E+88>>2]=0,i[E+92>>2]=0,i[E+96>>2]=0,i[E+100>>2]=0,i[E+80>>2]=_>>>8&1048575,i[E+104>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+108>>2]=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+112>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,Q=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,C[E+144|0]=0,i[E+120>>2]=0,i[E+124>>2]=0,i[E+116>>2]=Q,vA(Q=E- -64|0,I,g,B),gI(Q,I=E+48|0),A=oI(A,I),s=a,0|A},function(A,I){var g;return I|=0,i[(A|=0)>>2]=67108863&(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24),i[A+4>>2]=(o[I+3|0]|o[I+4|0]<<8|o[I+5|0]<<16|o[I+6|0]<<24)>>>2&67108611,i[A+8>>2]=(o[I+6|0]|o[I+7|0]<<8|o[I+8|0]<<16|o[I+9|0]<<24)>>>4&67092735,i[A+12>>2]=(o[I+9|0]|o[I+10|0]<<8|o[I+11|0]<<16|o[I+12|0]<<24)>>>6&66076671,g=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[A+20>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+36>>2]=0,i[A+16>>2]=g>>>8&1048575,i[A+40>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[A+44>>2]=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[A+48>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,I=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,C[A+80|0]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+52>>2]=I,0},function(A,I,g,C){return vA(A|=0,I|=0,g|=0,C|=0),0},function(A,I){return gI(A|=0,I|=0),0},function(A,I,g){A|=0,I|=0,g|=0;var B,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,pA=0,wA=0,nA=0,kA=0;for(s=B=s-368|0;D=(a=o[g+Q|0])^o[0|(c=Q+34112|0)]|D,h=a^o[c+192|0]|h,y=a^o[c+160|0]|y,e=a^o[c+128|0]|e,_=a^o[c+96|0]|_,t=a^o[c- -64|0]|t,E=a^o[c+32|0]|E,31!=(0|(Q=Q+1|0)););if(Q=-1,!(256&((255&((a=127^(c=127&o[g+31|0]))|h))-1|(255&(a|y))-1|(255&(a|e))-1|(255&(87^c|_))-1|(255&(t|c))-1|(255&(E|c))-1|(255&(c|D))-1))){for(Q=I,I=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[B+360>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,i[B+364>>2]=I,I=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[B+352>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[B+356>>2]=I,E=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,I=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[B+336>>2]=I,i[B+340>>2]=E,E=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[B+344>>2]=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,i[B+348>>2]=E,C[B+336|0]=248&I,C[B+367|0]=63&o[B+367|0]|64,fA(B+288|0,g),i[B+260>>2]=0,i[B+264>>2]=0,i[B+268>>2]=0,i[B+272>>2]=0,i[B+276>>2]=0,i[B+208>>2]=0,i[B+212>>2]=0,i[B+216>>2]=0,i[B+220>>2]=0,i[B+224>>2]=0,i[B+228>>2]=0,I=i[B+308>>2],i[B+160>>2]=i[B+304>>2],i[B+164>>2]=I,I=i[B+316>>2],i[B+168>>2]=i[B+312>>2],i[B+172>>2]=I,I=i[B+324>>2],i[B+176>>2]=i[B+320>>2],i[B+180>>2]=I,i[B+244>>2]=0,i[B+248>>2]=0,i[B+240>>2]=1,i[B+252>>2]=0,i[B+256>>2]=0,i[B+192>>2]=0,i[B+196>>2]=0,i[B+200>>2]=0,i[B+204>>2]=0,I=i[B+292>>2],i[B+144>>2]=i[B+288>>2],i[B+148>>2]=I,I=i[B+300>>2],i[B+152>>2]=i[B+296>>2],i[B+156>>2]=I,i[B+116>>2]=0,i[B+120>>2]=0,i[B+124>>2]=0,i[B+128>>2]=0,i[B+132>>2]=0,i[B+100>>2]=0,i[B+104>>2]=0,i[B+96>>2]=1,i[B+108>>2]=0,i[B+112>>2]=0,g=254;Z=i[B+276>>2],a=i[B+180>>2],T=i[B+96>>2],$=i[B+192>>2],AA=i[B+144>>2],IA=i[B+240>>2],gA=i[B+100>>2],CA=i[B+196>>2],BA=i[B+148>>2],QA=i[B+244>>2],U=i[B+104>>2],iA=i[B+200>>2],H=i[B+152>>2],oA=i[B+248>>2],d=i[B+108>>2],EA=i[B+204>>2],m=i[B+156>>2],aA=i[B+252>>2],Y=i[B+112>>2],_A=i[B+208>>2],M=i[B+160>>2],cA=i[B+256>>2],D=i[B+116>>2],tA=i[B+212>>2],r=i[B+164>>2],rA=i[B+260>>2],h=i[B+120>>2],eA=i[B+216>>2],y=i[B+168>>2],yA=i[B+264>>2],e=i[B+124>>2],sA=i[B+220>>2],_=i[B+172>>2],hA=i[B+268>>2],t=i[B+128>>2],DA=i[B+224>>2],E=i[B+176>>2],G=i[B+272>>2],pA=g,K=(F=(I=0-((I=V)^(V=o[(wA=B+336|0)+(g>>>3|0)|0]>>>(7&g)&1))|0)&((Q=i[B+132>>2])^(j=i[B+228>>2])))^Q,i[B+132>>2]=K,X=a^(S=I&(a^Z)),i[B+84>>2]=X-K,J=t^(w=I&(t^DA)),i[B+128>>2]=J,O=(N=I&(E^G))^E,i[B+80>>2]=O-J,u=e^(n=I&(e^sA)),i[B+124>>2]=u,nA=_^(k=I&(_^hA)),i[B+76>>2]=nA-u,x=h^(p=I&(h^eA)),i[B+120>>2]=x,kA=y^(c=I&(y^yA)),i[B+72>>2]=kA-x,v=D^(a=I&(D^tA)),i[B+116>>2]=v,L=r^(D=I&(r^rA)),i[B+68>>2]=L-v,P=Y^(h=I&(Y^_A)),i[B+112>>2]=P,l=M^(y=I&(M^cA)),i[B+64>>2]=l-P,q=d^(e=I&(d^EA)),i[B+108>>2]=q,W=m^(_=I&(m^aA)),i[B+60>>2]=W-q,z=U^(t=I&(U^iA)),i[B+104>>2]=z,d=H^(E=I&(H^oA)),i[B+56>>2]=d-z,U=gA^(Q=I&(gA^CA)),i[B+100>>2]=U,m=BA^(g=I&(BA^QA)),i[B+52>>2]=m-U,H=T^(Y=I&(T^$)),i[B+96>>2]=H,M=(I&=AA^IA)^AA,i[B+48>>2]=M-H,r=S^Z,F^=j,i[B+36>>2]=r-F,S=N^G,w^=DA,i[B+32>>2]=S-w,N=k^hA,n^=sA,i[B+28>>2]=N-n,k=c^yA,p^=eA,i[B+24>>2]=k-p,c=D^rA,a^=tA,i[B+20>>2]=c-a,D=y^cA,h^=_A,i[B+16>>2]=D-h,y=_^aA,e^=EA,i[B+12>>2]=y-e,_=E^oA,t^=iA,i[B+8>>2]=_-t,E=g^QA,Q^=CA,i[B+4>>2]=E-Q,g=I^IA,I=Y^$,i[B>>2]=g-I,i[B+276>>2]=r+F,i[B+272>>2]=S+w,i[B+268>>2]=n+N,i[B+264>>2]=p+k,i[B+260>>2]=a+c,i[B+256>>2]=h+D,i[B+248>>2]=_+t,i[B+244>>2]=Q+E,i[B+240>>2]=I+g,i[B+252>>2]=e+y,i[B+228>>2]=K+X,i[B+224>>2]=J+O,i[B+220>>2]=u+nA,i[B+216>>2]=x+kA,i[B+212>>2]=v+L,i[B+208>>2]=l+P,i[B+204>>2]=q+W,i[B+200>>2]=d+z,i[B+196>>2]=U+m,i[B+192>>2]=M+H,b(X=B+96|0,J=B+48|0,K=B+240|0),b(G=B+192|0,G,B),R(J,B),R(B,K),r=i[B+192>>2],F=i[B+96>>2],S=i[B+196>>2],w=i[B+100>>2],N=i[B+200>>2],n=i[B+104>>2],k=i[B+204>>2],p=i[B+108>>2],c=i[B+208>>2],a=i[B+112>>2],D=i[B+212>>2],h=i[B+116>>2],y=i[B+216>>2],e=i[B+120>>2],_=i[B+220>>2],t=i[B+124>>2],E=i[B+224>>2],Q=i[B+128>>2],g=i[B+228>>2],I=i[B+132>>2],i[B+180>>2]=g+I,i[B+176>>2]=Q+E,i[B+172>>2]=_+t,i[B+168>>2]=e+y,i[B+164>>2]=h+D,i[B+160>>2]=a+c,i[B+156>>2]=p+k,i[B+152>>2]=n+N,i[B+148>>2]=S+w,i[B+144>>2]=r+F,i[B+228>>2]=I-g,i[B+224>>2]=Q-E,i[B+220>>2]=t-_,i[B+216>>2]=e-y,i[B+212>>2]=h-D,i[B+208>>2]=a-c,i[B+204>>2]=p-k,i[B+200>>2]=n-N,i[B+196>>2]=w-S,i[B+192>>2]=F-r,b(K,B,J),u=i[B+52>>2],p=i[B+4>>2],x=i[B+56>>2],c=i[B+8>>2],v=i[B+64>>2],y=i[B+16>>2],P=i[B+60>>2],e=i[B+12>>2],q=i[B+72>>2],_=i[B+24>>2],z=i[B+68>>2],t=i[B+20>>2],U=i[B+80>>2],E=i[B+32>>2],H=i[B+76>>2],Q=i[B+28>>2],j=i[B+84>>2],I=i[B+36>>2],O=i[B+48>>2],g=i[B>>2]-O|0,i[B>>2]=g,I=I-j|0,i[B+36>>2]=I,Y=Q-H|0,i[B+28>>2]=Y,M=E-U|0,i[B+32>>2]=M,a=t-z|0,i[B+20>>2]=a,D=_-q|0,i[B+24>>2]=D,h=e-P|0,i[B+12>>2]=h,y=y-v|0,i[B+16>>2]=y,e=c-x|0,i[B+8>>2]=e,E=p-u|0,i[B+4>>2]=E,R(G,G),I=Ig(I,I>>31,121666,0),Q=f,W=I,I=Ig((33554431&(Q=(r=I+16777216|0)>>>0<16777216?Q+1|0:Q))<<7|r>>>25,Q>>25,19,0),t=f,Q=I,I=Ig(g,g>>31,121666,0),l=f+t|0,I=I>>>0>(Q=Q+I|0)>>>0?l+1|0:l,g=(_=Q+33554432|0)>>>0<33554432?I+1|0:I,F=Q-(-67108864&_)|0,i[B+96>>2]=F,t=Ig(E,E>>31,121666,0),Q=f,Q=(E=t+16777216|0)>>>0<16777216?Q+1|0:Q,S=(t-(-33554432&E)|0)+((67108863&g)<<6|_>>>26)|0,i[B+100>>2]=S,l=(I=Q)>>25,Q=(33554431&I)<<7|E>>>25,g=Ig(e,e>>31,121666,0)+Q|0,I=l+f|0,I=g>>>0>>0?I+1|0:I,t=(w=g+33554432|0)>>>0<33554432?I+1|0:I,N=g-(-67108864&w)|0,i[B+104>>2]=N,Q=Ig(y,y>>31,121666,0),E=f,g=Ig(h,h>>31,121666,0),I=f,L=Q,d=g,Q=(33554431&(I=(n=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|n>>>25,I=(I>>25)+E|0,I=(g=L+Q|0)>>>0>>0?I+1|0:I,E=(k=g+33554432|0)>>>0<33554432?I+1|0:I,p=g-(-67108864&k)|0,i[B+112>>2]=p,Q=Ig(D,D>>31,121666,0),_=f,g=Ig(a,a>>31,121666,0),I=f,L=Q,m=g,Q=(33554431&(I=(c=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|c>>>25,I=(I>>25)+_|0,I=(g=L+Q|0)>>>0>>0?I+1|0:I,Q=(a=g+33554432|0)>>>0<33554432?I+1|0:I,D=g-(-67108864&a)|0,i[B+120>>2]=D,_=Ig(M,M>>31,121666,0),e=f,g=Ig(Y,Y>>31,121666,0),I=f,M=g,g=(33554431&(I=(h=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|h>>>25,I=(I>>25)+e|0,I=g>>>0>(_=g+_|0)>>>0?I+1|0:I,g=(y=_+33554432|0)>>>0<33554432?I+1|0:I,e=_-(-67108864&y)|0,i[B+128>>2]=e,_=(t=d+((67108863&t)<<6|w>>>26)|0)-(-33554432&n)|0,i[B+108>>2]=_,t=(E=m+((67108863&E)<<6|k>>>26)|0)-(-33554432&c)|0,i[B+116>>2]=t,E=(I=M+((67108863&Q)<<6|a>>>26)|0)-(-33554432&h)|0,i[B+124>>2]=E,g=(g=W+((67108863&g)<<6|y>>>26)|0)-(-33554432&r)|0,i[B+132>>2]=g,R(I=B+144|0,I),i[B+84>>2]=g+j,i[B+80>>2]=e+U,i[B+76>>2]=E+H,i[B+72>>2]=D+q,i[B+68>>2]=t+z,i[B+64>>2]=p+v,i[B+60>>2]=_+P,i[B+56>>2]=N+x,i[B+52>>2]=S+u,i[B+48>>2]=F+O,g=pA-1|0,b(X,B+288|0,G),b(G,B,J),pA;);D=i[B+144>>2],F=i[B+240>>2],h=i[B+148>>2],S=i[B+244>>2],y=i[B+152>>2],w=i[B+248>>2],e=i[B+156>>2],N=i[B+252>>2],_=i[B+160>>2],n=i[B+256>>2],t=i[B+164>>2],k=i[B+260>>2],E=i[B+168>>2],p=i[B+264>>2],Q=i[B+172>>2],c=i[B+268>>2],g=i[B+176>>2],a=i[B+272>>2],r=0-V|0,I=i[B+276>>2],i[B+276>>2]=r&(I^i[B+180>>2])^I,i[B+272>>2]=a^r&(g^a),i[B+268>>2]=c^r&(Q^c),i[B+264>>2]=p^r&(E^p),i[B+260>>2]=k^r&(t^k),i[B+256>>2]=n^r&(_^n),i[B+252>>2]=N^r&(e^N),i[B+248>>2]=w^r&(y^w),i[B+244>>2]=S^r&(h^S),i[B+240>>2]=F^r&(D^F),F=i[B+192>>2],D=i[B+96>>2],S=i[B+196>>2],h=i[B+100>>2],w=i[B+200>>2],y=i[B+104>>2],N=i[B+204>>2],e=i[B+108>>2],n=i[B+208>>2],_=i[B+112>>2],k=i[B+212>>2],t=i[B+116>>2],p=i[B+216>>2],E=i[B+120>>2],c=i[B+220>>2],Q=i[B+124>>2],a=i[B+224>>2],g=i[B+128>>2],I=i[B+228>>2],i[B+228>>2]=r&(I^i[B+132>>2])^I,i[B+224>>2]=a^r&(g^a),i[B+220>>2]=c^r&(Q^c),i[B+216>>2]=p^r&(E^p),i[B+212>>2]=k^r&(t^k),i[B+208>>2]=n^r&(_^n),i[B+204>>2]=N^r&(e^N),i[B+200>>2]=w^r&(y^w),i[B+196>>2]=S^r&(h^S),i[B+192>>2]=F^r&(D^F),LA(G,G),b(K,K,G),QI(A,K),XC(wA,32),Q=0}return s=B+368|0,0|Q},function(A,I){var g,B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S;return I|=0,s=g=s-304|0,C[0|(A|=0)]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],I=o[I+31|0],C[0|A]=248&o[0|A],C[A+31|0]=63&I|64,nA(g+48|0,A),I=i[g+128>>2],B=i[g+88>>2],Q=i[g+132>>2],E=i[g+92>>2],a=i[g+136>>2],_=i[g+96>>2],c=i[g+140>>2],t=i[g+100>>2],r=i[g+144>>2],e=i[g+104>>2],y=i[g+148>>2],h=i[g+108>>2],D=i[g+152>>2],f=i[g+112>>2],p=i[g+156>>2],w=i[g+116>>2],n=i[g+160>>2],k=i[g+120>>2],F=i[g+124>>2],S=i[g+164>>2],i[g+292>>2]=F+S,i[g+288>>2]=n+k,i[g+284>>2]=p+w,i[g+280>>2]=D+f,i[g+276>>2]=y+h,i[g+272>>2]=r+e,i[g+268>>2]=c+t,i[g+264>>2]=a+_,i[g+260>>2]=Q+E,i[g+256>>2]=I+B,i[g+244>>2]=S-F,i[g+240>>2]=n-k,i[g+236>>2]=p-w,i[g+232>>2]=D-f,i[g+228>>2]=y-h,i[g+224>>2]=r-e,i[g+220>>2]=c-t,i[g+216>>2]=a-_,i[g+212>>2]=Q-E,i[g+208>>2]=I-B,LA(I=g+208|0,I),b(g,g+256|0,I),QI(A,g),s=g+304|0,0},function(A,I,g,B,Q){A|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-112|0,(I|=0)|(g|=0)){a=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,i[E+24>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,i[E+28>>2]=a,a=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+16>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+20>>2]=a,a=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[E>>2]=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[E+4>>2]=a,a=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+8>>2]=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,i[E+12>>2]=a,Q=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,B=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[E+104>>2]=0,i[E+108>>2]=0,i[E+96>>2]=Q,i[E+100>>2]=B;A:{if(!g&I>>>0>=64|g){for(;AC(A,E+96|0,E,0),B=o[E+104|0]+1|0,C[E+104|0]=B,B=o[E+105|0]+(B>>>8|0)|0,C[E+105|0]=B,B=o[E+106|0]+(B>>>8|0)|0,C[E+106|0]=B,B=o[E+107|0]+(B>>>8|0)|0,C[E+107|0]=B,B=o[E+108|0]+(B>>>8|0)|0,C[E+108|0]=B,B=o[E+109|0]+(B>>>8|0)|0,C[E+109|0]=B,B=o[E+110|0]+(B>>>8|0)|0,C[E+110|0]=B,C[E+111|0]=o[E+111|0]+(B>>>8|0),A=A- -64|0,g=g-1|0,!(g=(I=I+-64|0)>>>0<4294967232?g+1|0:g)&I>>>0>63|g;);if(!(I|g))break A}if(B=0,AC(E+32|0,E+96|0,E,0),a=3&I,Q=0,!g&I>>>0>=4|g)for(g=60&I,I=0;_=c=E+32|0,C[A+Q|0]=o[_+Q|0],C[(t=1|Q)+A|0]=o[_+t|0],C[(_=2|Q)+A|0]=o[_+c|0],C[(_=3|Q)+A|0]=o[_+(E+32|0)|0],Q=Q+4|0,(0|g)!=(0|(I=I+4|0)););if(a)for(;C[A+Q|0]=o[(E+32|0)+Q|0],Q=Q+1|0,(0|a)!=(0|(B=B+1|0)););}XC(E+32|0,64),XC(E,32)}return s=E+112|0,0},function(A,I,g,B,Q,E,a,_){A|=0,I|=0,Q|=0,E|=0,a|=0,_|=0;var c,t=0;if(s=c=s-112|0,(g|=0)|(B|=0)){t=o[_+28|0]|o[_+29|0]<<8|o[_+30|0]<<16|o[_+31|0]<<24,i[c+24>>2]=o[_+24|0]|o[_+25|0]<<8|o[_+26|0]<<16|o[_+27|0]<<24,i[c+28>>2]=t,t=o[_+20|0]|o[_+21|0]<<8|o[_+22|0]<<16|o[_+23|0]<<24,i[c+16>>2]=o[_+16|0]|o[_+17|0]<<8|o[_+18|0]<<16|o[_+19|0]<<24,i[c+20>>2]=t,t=o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24,i[c>>2]=o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24,i[c+4>>2]=t,t=o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24,i[c+8>>2]=o[_+8|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24,i[c+12>>2]=t,_=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[c+96>>2]=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[c+100>>2]=_,C[c+104|0]=E,C[c+111|0]=a>>>24,C[c+110|0]=a>>>16,C[c+109|0]=a>>>8,C[c+108|0]=a,C[c+107|0]=(16777215&a)<<8|E>>>24,C[c+106|0]=(65535&a)<<16|E>>>16,C[c+105|0]=(255&a)<<24|E>>>8;A:{if(!B&g>>>0>=64|B){for(;;){for(_=0,AC(c+32|0,c+96|0,c,0);E=c+32|0,C[A+_|0]=o[E+_|0]^o[I+_|0],C[(Q=1|_)+A|0]=o[Q+E|0]^o[I+Q|0],64!=(0|(_=_+2|0)););if(Q=o[c+104|0]+1|0,C[c+104|0]=Q,Q=o[c+105|0]+(Q>>>8|0)|0,C[c+105|0]=Q,Q=o[c+106|0]+(Q>>>8|0)|0,C[c+106|0]=Q,Q=o[c+107|0]+(Q>>>8|0)|0,C[c+107|0]=Q,Q=o[c+108|0]+(Q>>>8|0)|0,C[c+108|0]=Q,Q=o[c+109|0]+(Q>>>8|0)|0,C[c+109|0]=Q,Q=o[c+110|0]+(Q>>>8|0)|0,C[c+110|0]=Q,C[c+111|0]=o[c+111|0]+(Q>>>8|0),I=I- -64|0,A=A- -64|0,B=B-1|0,!(!(B=(g=g+-64|0)>>>0<4294967232?B+1|0:B)&g>>>0>63|B))break}if(!(g|B))break A}if(_=0,AC(c+32|0,c+96|0,c,0),E=1&g,1!=(0|g)|B)for(B=62&g,Q=0;a=c+32|0,C[A+_|0]=o[a+_|0]^o[I+_|0],C[(g=1|_)+A|0]=o[g+a|0]^o[I+g|0],_=_+2|0,(0|B)!=(0|(Q=Q+2|0)););E&&(C[A+_|0]=o[(c+32|0)+_|0]^o[I+_|0])}XC(c+32|0,64),XC(c,32)}return s=c+112|0,0},function(A,I,g,C,B,Q,i,o,E){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0;var a,_,c=0;if(_=c=s,s=a=c-192&-32,P(E|=0,o|=0,a- -64|0),E=0,i>>>0<=63)o=0;else for(c=64;H(Q+E|0,a- -64|0),E=o=c,(c=o- -64|0)>>>0<=i>>>0;);if((c=32|o)>>>0>i>>>0)E=o;else for(;V(Q+o|0,a- -64|0),E=c,(c=(o=c)+32|0)>>>0<=i>>>0;);if((o=31&i)&&(bg((c=a+32|0)|o,0,32-o|0),Ng(c,Q+E|0,o),V(c,a- -64|0)),E=32,o=0,B>>>0<32)Q=0;else for(;m(A+o|0,C+o|0,a- -64|0),Q=E,(E=(o=E)+32|0)>>>0<=B>>>0;);return(o=31&B)&&(bg((E=a+32|0)|o,0,32-o|0),Ng(E,C+Q|0,o),m(a,E,a- -64|0),Ng(A+Q|0,a,o)),Y(I,g,i,B,a- -64|0),s=_,0},function(A,I,g,C,B,Q,i,o,E){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0;var a,_,c=0;if(_=c=s,s=a=c-224&-32,P(E|=0,o|=0,a+96|0),E=0,i>>>0<=63)o=0;else for(c=64;H(Q+E|0,a+96|0),E=o=c,(c=o- -64|0)>>>0<=i>>>0;);if((c=32|o)>>>0>i>>>0)E=o;else for(;V(Q+o|0,a+96|0),E=c,(c=(o=c)+32|0)>>>0<=i>>>0;);(o=31&i)&&(bg((c=a- -64|0)|o,0,32-o|0),Ng(c,Q+E|0,o),V(c,a+96|0));A:{I:{g:{C:{B:{if(A){if(E=32,g>>>0<32)break B;for(Q=0;d(A+Q|0,I+Q|0,a+96|0),Q=o=E,(E=o+32|0)>>>0<=g>>>0;);}else{if(Q=32,g>>>0<32)break g;for(E=0;d(a+32|0,I+E|0,a+96|0),E=o=Q,(Q=o+32|0)>>>0<=g>>>0;);}if(!(Q=31&g))break A;if(A)break C;break I}if(o=0,Q=g,!g)break A}x(A+o|0,I+o|0,Q,a+96|0);break A}if(o=0,Q=g,!g)break A}x(a+32|0,I+o|0,Q,a+96|0)}Y(a,B,i,g,a+96|0),o=-1;A:{I:{if(I=B-16|0){if(16==(0|I))break I;break A}o=oI(a,C);break A}o=NC(a,C)}return!A|!o||bg(A,0,g),s=_,0|o},function(A,I,g,C,B,Q,E,a,_){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,E|=0;var c,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0;if(s=c=s-528|0,G(_|=0,a|=0,c+400|0),_=0,E>>>0<=31)a=0;else for(r=32;L(Q+_|0,c+400|0),_=a=r,(r=a+32|0)>>>0<=E>>>0;);if((_=16|a)>>>0<=E>>>0)for(r=c+416|0,y=c+432|0,h=c+448|0,e=c+464|0,D=c+480|0;f=o[0|(a=Q+a|0)]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24,p=o[a+4|0]|o[a+5|0]<<8|o[a+6|0]<<16|o[a+7|0]<<24,w=o[a+8|0]|o[a+9|0]<<8|o[a+10|0]<<16|o[a+11|0]<<24,n=o[a+12|0]|o[a+13|0]<<8|o[a+14|0]<<16|o[a+15|0]<<24,a=i[D+12>>2],i[c+520>>2]=i[D+8>>2],i[c+524>>2]=a,a=i[D+4>>2],i[c+512>>2]=i[D>>2],i[c+516>>2]=a,a=i[e+12>>2],i[c+376>>2]=i[e+8>>2],i[c+380>>2]=a,a=i[e+4>>2],i[c+368>>2]=i[e>>2],i[c+372>>2]=a,a=i[D+12>>2],i[c+360>>2]=i[D+8>>2],i[c+364>>2]=a,a=i[D+4>>2],i[c+352>>2]=i[D>>2],i[c+356>>2]=a,AI(a=c+496|0,c+368|0,c+352|0),t=i[c+508>>2],i[D+8>>2]=i[c+504>>2],i[D+12>>2]=t,t=i[c+500>>2],i[D>>2]=i[c+496>>2],i[D+4>>2]=t,t=i[h+12>>2],i[c+344>>2]=i[h+8>>2],i[c+348>>2]=t,t=i[h+4>>2],i[c+336>>2]=i[h>>2],i[c+340>>2]=t,t=i[e+12>>2],i[c+328>>2]=i[e+8>>2],i[c+332>>2]=t,t=i[e+4>>2],i[c+320>>2]=i[e>>2],i[c+324>>2]=t,AI(a,c+336|0,c+320|0),t=i[c+508>>2],i[e+8>>2]=i[c+504>>2],i[e+12>>2]=t,t=i[c+500>>2],i[e>>2]=i[c+496>>2],i[e+4>>2]=t,t=i[y+12>>2],i[c+312>>2]=i[y+8>>2],i[c+316>>2]=t,t=i[y+4>>2],i[c+304>>2]=i[y>>2],i[c+308>>2]=t,t=i[h+12>>2],i[c+296>>2]=i[h+8>>2],i[c+300>>2]=t,t=i[h+4>>2],i[c+288>>2]=i[h>>2],i[c+292>>2]=t,AI(a,c+304|0,c+288|0),t=i[c+508>>2],i[h+8>>2]=i[c+504>>2],i[h+12>>2]=t,t=i[c+500>>2],i[h>>2]=i[c+496>>2],i[h+4>>2]=t,t=i[r+12>>2],i[c+280>>2]=i[r+8>>2],i[c+284>>2]=t,t=i[r+4>>2],i[c+272>>2]=i[r>>2],i[c+276>>2]=t,t=i[y+12>>2],i[c+264>>2]=i[y+8>>2],i[c+268>>2]=t,t=i[y+4>>2],i[c+256>>2]=i[y>>2],i[c+260>>2]=t,AI(a,c+272|0,c+256|0),t=i[c+508>>2],i[y+8>>2]=i[c+504>>2],i[y+12>>2]=t,t=i[c+500>>2],i[y>>2]=i[c+496>>2],i[y+4>>2]=t,t=i[c+412>>2],i[c+248>>2]=i[c+408>>2],i[c+252>>2]=t,t=i[c+404>>2],i[c+240>>2]=i[c+400>>2],i[c+244>>2]=t,t=i[r+12>>2],i[c+232>>2]=i[r+8>>2],i[c+236>>2]=t,t=i[r+4>>2],i[c+224>>2]=i[r>>2],i[c+228>>2]=t,AI(a,c+240|0,c+224|0),t=i[c+508>>2],i[r+8>>2]=i[c+504>>2],i[r+12>>2]=t,t=i[c+500>>2],i[r>>2]=i[c+496>>2],i[r+4>>2]=t,t=i[c+524>>2],i[c+216>>2]=i[c+520>>2],i[c+220>>2]=t,t=i[c+412>>2],i[c+200>>2]=i[c+408>>2],i[c+204>>2]=t,t=i[c+516>>2],i[c+208>>2]=i[c+512>>2],i[c+212>>2]=t,t=i[c+404>>2],i[c+192>>2]=i[c+400>>2],i[c+196>>2]=t,AI(a,c+208|0,c+192|0),i[c+412>>2]=n^i[c+508>>2],i[c+408>>2]=i[c+504>>2]^w,i[c+404>>2]=i[c+500>>2]^p,i[c+400>>2]=i[c+496>>2]^f,(_=(a=_)+16|0)>>>0<=E>>>0;);if((_=15&E)&&(bg((r=c+384|0)|_,0,16-_|0),Ng(r,Q+a|0,_),_=i[c+384>>2],r=i[c+388>>2],y=i[c+392>>2],h=i[c+396>>2],a=i[c+492>>2],Q=i[c+488>>2],i[c+520>>2]=Q,i[c+524>>2]=a,e=i[c+476>>2],i[c+184>>2]=i[c+472>>2],i[c+188>>2]=e,i[c+168>>2]=Q,i[c+172>>2]=a,a=i[c+484>>2],Q=i[c+480>>2],i[c+512>>2]=Q,i[c+516>>2]=a,e=i[c+468>>2],i[c+176>>2]=i[c+464>>2],i[c+180>>2]=e,i[c+160>>2]=Q,i[c+164>>2]=a,AI(Q=c+496|0,c+176|0,c+160|0),a=i[c+508>>2],i[c+488>>2]=i[c+504>>2],i[c+492>>2]=a,a=i[c+460>>2],i[c+152>>2]=i[c+456>>2],i[c+156>>2]=a,a=i[c+476>>2],i[c+136>>2]=i[c+472>>2],i[c+140>>2]=a,a=i[c+500>>2],i[c+480>>2]=i[c+496>>2],i[c+484>>2]=a,a=i[c+452>>2],i[c+144>>2]=i[c+448>>2],i[c+148>>2]=a,a=i[c+468>>2],i[c+128>>2]=i[c+464>>2],i[c+132>>2]=a,AI(Q,c+144|0,c+128|0),a=i[c+508>>2],i[c+472>>2]=i[c+504>>2],i[c+476>>2]=a,a=i[c+444>>2],i[c+120>>2]=i[c+440>>2],i[c+124>>2]=a,a=i[c+460>>2],i[c+104>>2]=i[c+456>>2],i[c+108>>2]=a,a=i[c+500>>2],i[c+464>>2]=i[c+496>>2],i[c+468>>2]=a,a=i[c+436>>2],i[c+112>>2]=i[c+432>>2],i[c+116>>2]=a,a=i[c+452>>2],i[c+96>>2]=i[c+448>>2],i[c+100>>2]=a,AI(Q,c+112|0,c+96|0),a=i[c+508>>2],i[c+456>>2]=i[c+504>>2],i[c+460>>2]=a,a=i[c+428>>2],i[c+88>>2]=i[c+424>>2],i[c+92>>2]=a,a=i[c+444>>2],i[c+72>>2]=i[c+440>>2],i[c+76>>2]=a,a=i[c+500>>2],i[c+448>>2]=i[c+496>>2],i[c+452>>2]=a,a=i[c+420>>2],i[c+80>>2]=i[c+416>>2],i[c+84>>2]=a,a=i[c+436>>2],i[c+64>>2]=i[c+432>>2],i[c+68>>2]=a,AI(Q,c+80|0,c- -64|0),a=i[c+508>>2],i[c+440>>2]=i[c+504>>2],i[c+444>>2]=a,a=i[c+412>>2],i[c+56>>2]=i[c+408>>2],i[c+60>>2]=a,a=i[c+428>>2],i[c+40>>2]=i[c+424>>2],i[c+44>>2]=a,a=i[c+500>>2],i[c+432>>2]=i[c+496>>2],i[c+436>>2]=a,a=i[c+404>>2],i[c+48>>2]=i[c+400>>2],i[c+52>>2]=a,a=i[c+420>>2],i[c+32>>2]=i[c+416>>2],i[c+36>>2]=a,AI(Q,c+48|0,c+32|0),a=i[c+508>>2],i[c+424>>2]=i[c+504>>2],i[c+428>>2]=a,a=i[c+524>>2],i[c+24>>2]=i[c+520>>2],i[c+28>>2]=a,a=i[c+412>>2],i[c+8>>2]=i[c+408>>2],i[c+12>>2]=a,a=i[c+500>>2],i[c+416>>2]=i[c+496>>2],i[c+420>>2]=a,a=i[c+516>>2],i[c+16>>2]=i[c+512>>2],i[c+20>>2]=a,a=i[c+404>>2],i[c>>2]=i[c+400>>2],i[c+4>>2]=a,AI(Q,c+16|0,c),i[c+412>>2]=h^i[c+508>>2],i[c+408>>2]=y^i[c+504>>2],i[c+404>>2]=r^i[c+500>>2],i[c+400>>2]=_^i[c+496>>2]),r=16,a=0,B>>>0<16)_=0;else for(;X(A+a|0,C+a|0,c+400|0),_=r,(r=(a=r)+16|0)>>>0<=B>>>0;);return(Q=15&B)&&(bg((a=c+384|0)|Q,0,16-Q|0),Ng(a,C+_|0,Q),X(C=c+512|0,a,c+400|0),Ng(A+_|0,C,Q)),l(I,g,E,B,c+400|0),s=c+528|0,0},function(A,I,g,C,B,Q,E,a,_){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,E|=0;var c,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0;if(s=c=s-544|0,G(_|=0,a|=0,c+432|0),_=0,E>>>0<=31)a=0;else for(r=32;L(Q+_|0,c+432|0),_=a=r,(r=a+32|0)>>>0<=E>>>0;);if((_=16|a)>>>0<=E>>>0)for(r=c+448|0,y=c+464|0,h=c+480|0,e=c+496|0,D=c+512|0;f=o[0|(a=Q+a|0)]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24,p=o[a+4|0]|o[a+5|0]<<8|o[a+6|0]<<16|o[a+7|0]<<24,w=o[a+8|0]|o[a+9|0]<<8|o[a+10|0]<<16|o[a+11|0]<<24,n=o[a+12|0]|o[a+13|0]<<8|o[a+14|0]<<16|o[a+15|0]<<24,a=i[D+12>>2],i[c+392>>2]=i[D+8>>2],i[c+396>>2]=a,a=i[D+4>>2],i[c+384>>2]=i[D>>2],i[c+388>>2]=a,a=i[e+12>>2],i[c+376>>2]=i[e+8>>2],i[c+380>>2]=a,a=i[e+4>>2],i[c+368>>2]=i[e>>2],i[c+372>>2]=a,a=i[D+12>>2],i[c+360>>2]=i[D+8>>2],i[c+364>>2]=a,a=i[D+4>>2],i[c+352>>2]=i[D>>2],i[c+356>>2]=a,AI(a=c+528|0,c+368|0,c+352|0),t=i[c+540>>2],i[D+8>>2]=i[c+536>>2],i[D+12>>2]=t,t=i[c+532>>2],i[D>>2]=i[c+528>>2],i[D+4>>2]=t,t=i[h+12>>2],i[c+344>>2]=i[h+8>>2],i[c+348>>2]=t,t=i[h+4>>2],i[c+336>>2]=i[h>>2],i[c+340>>2]=t,t=i[e+12>>2],i[c+328>>2]=i[e+8>>2],i[c+332>>2]=t,t=i[e+4>>2],i[c+320>>2]=i[e>>2],i[c+324>>2]=t,AI(a,c+336|0,c+320|0),t=i[c+540>>2],i[e+8>>2]=i[c+536>>2],i[e+12>>2]=t,t=i[c+532>>2],i[e>>2]=i[c+528>>2],i[e+4>>2]=t,t=i[y+12>>2],i[c+312>>2]=i[y+8>>2],i[c+316>>2]=t,t=i[y+4>>2],i[c+304>>2]=i[y>>2],i[c+308>>2]=t,t=i[h+12>>2],i[c+296>>2]=i[h+8>>2],i[c+300>>2]=t,t=i[h+4>>2],i[c+288>>2]=i[h>>2],i[c+292>>2]=t,AI(a,c+304|0,c+288|0),t=i[c+540>>2],i[h+8>>2]=i[c+536>>2],i[h+12>>2]=t,t=i[c+532>>2],i[h>>2]=i[c+528>>2],i[h+4>>2]=t,t=i[r+12>>2],i[c+280>>2]=i[r+8>>2],i[c+284>>2]=t,t=i[r+4>>2],i[c+272>>2]=i[r>>2],i[c+276>>2]=t,t=i[y+12>>2],i[c+264>>2]=i[y+8>>2],i[c+268>>2]=t,t=i[y+4>>2],i[c+256>>2]=i[y>>2],i[c+260>>2]=t,AI(a,c+272|0,c+256|0),t=i[c+540>>2],i[y+8>>2]=i[c+536>>2],i[y+12>>2]=t,t=i[c+532>>2],i[y>>2]=i[c+528>>2],i[y+4>>2]=t,t=i[c+444>>2],i[c+248>>2]=i[c+440>>2],i[c+252>>2]=t,t=i[c+436>>2],i[c+240>>2]=i[c+432>>2],i[c+244>>2]=t,t=i[r+12>>2],i[c+232>>2]=i[r+8>>2],i[c+236>>2]=t,t=i[r+4>>2],i[c+224>>2]=i[r>>2],i[c+228>>2]=t,AI(a,c+240|0,c+224|0),t=i[c+540>>2],i[r+8>>2]=i[c+536>>2],i[r+12>>2]=t,t=i[c+532>>2],i[r>>2]=i[c+528>>2],i[r+4>>2]=t,t=i[c+396>>2],i[c+216>>2]=i[c+392>>2],i[c+220>>2]=t,t=i[c+444>>2],i[c+200>>2]=i[c+440>>2],i[c+204>>2]=t,t=i[c+388>>2],i[c+208>>2]=i[c+384>>2],i[c+212>>2]=t,t=i[c+436>>2],i[c+192>>2]=i[c+432>>2],i[c+196>>2]=t,AI(a,c+208|0,c+192|0),i[c+444>>2]=n^i[c+540>>2],i[c+440>>2]=i[c+536>>2]^w,i[c+436>>2]=i[c+532>>2]^p,i[c+432>>2]=i[c+528>>2]^f,(_=(a=_)+16|0)>>>0<=E>>>0;);(_=15&E)&&(bg((r=c+416|0)|_,0,16-_|0),Ng(r,Q+a|0,_),_=i[c+416>>2],r=i[c+420>>2],y=i[c+424>>2],h=i[c+428>>2],a=i[c+524>>2],Q=i[c+520>>2],i[c+392>>2]=Q,i[c+396>>2]=a,e=i[c+508>>2],i[c+184>>2]=i[c+504>>2],i[c+188>>2]=e,i[c+168>>2]=Q,i[c+172>>2]=a,a=i[c+516>>2],Q=i[c+512>>2],i[c+384>>2]=Q,i[c+388>>2]=a,e=i[c+500>>2],i[c+176>>2]=i[c+496>>2],i[c+180>>2]=e,i[c+160>>2]=Q,i[c+164>>2]=a,AI(Q=c+528|0,c+176|0,c+160|0),a=i[c+540>>2],i[c+520>>2]=i[c+536>>2],i[c+524>>2]=a,a=i[c+492>>2],i[c+152>>2]=i[c+488>>2],i[c+156>>2]=a,a=i[c+508>>2],i[c+136>>2]=i[c+504>>2],i[c+140>>2]=a,a=i[c+532>>2],i[c+512>>2]=i[c+528>>2],i[c+516>>2]=a,a=i[c+484>>2],i[c+144>>2]=i[c+480>>2],i[c+148>>2]=a,a=i[c+500>>2],i[c+128>>2]=i[c+496>>2],i[c+132>>2]=a,AI(Q,c+144|0,c+128|0),a=i[c+540>>2],i[c+504>>2]=i[c+536>>2],i[c+508>>2]=a,a=i[c+476>>2],i[c+120>>2]=i[c+472>>2],i[c+124>>2]=a,a=i[c+492>>2],i[c+104>>2]=i[c+488>>2],i[c+108>>2]=a,a=i[c+532>>2],i[c+496>>2]=i[c+528>>2],i[c+500>>2]=a,a=i[c+468>>2],i[c+112>>2]=i[c+464>>2],i[c+116>>2]=a,a=i[c+484>>2],i[c+96>>2]=i[c+480>>2],i[c+100>>2]=a,AI(Q,c+112|0,c+96|0),a=i[c+540>>2],i[c+488>>2]=i[c+536>>2],i[c+492>>2]=a,a=i[c+460>>2],i[c+88>>2]=i[c+456>>2],i[c+92>>2]=a,a=i[c+476>>2],i[c+72>>2]=i[c+472>>2],i[c+76>>2]=a,a=i[c+532>>2],i[c+480>>2]=i[c+528>>2],i[c+484>>2]=a,a=i[c+452>>2],i[c+80>>2]=i[c+448>>2],i[c+84>>2]=a,a=i[c+468>>2],i[c+64>>2]=i[c+464>>2],i[c+68>>2]=a,AI(Q,c+80|0,c- -64|0),a=i[c+540>>2],i[c+472>>2]=i[c+536>>2],i[c+476>>2]=a,a=i[c+444>>2],i[c+56>>2]=i[c+440>>2],i[c+60>>2]=a,a=i[c+460>>2],i[c+40>>2]=i[c+456>>2],i[c+44>>2]=a,a=i[c+532>>2],i[c+464>>2]=i[c+528>>2],i[c+468>>2]=a,a=i[c+436>>2],i[c+48>>2]=i[c+432>>2],i[c+52>>2]=a,a=i[c+452>>2],i[c+32>>2]=i[c+448>>2],i[c+36>>2]=a,AI(Q,c+48|0,c+32|0),a=i[c+540>>2],i[c+456>>2]=i[c+536>>2],i[c+460>>2]=a,a=i[c+396>>2],i[c+24>>2]=i[c+392>>2],i[c+28>>2]=a,a=i[c+444>>2],i[c+8>>2]=i[c+440>>2],i[c+12>>2]=a,a=i[c+532>>2],i[c+448>>2]=i[c+528>>2],i[c+452>>2]=a,a=i[c+388>>2],i[c+16>>2]=i[c+384>>2],i[c+20>>2]=a,a=i[c+436>>2],i[c>>2]=i[c+432>>2],i[c+4>>2]=a,AI(Q,c+16|0,c),i[c+444>>2]=h^i[c+540>>2],i[c+440>>2]=y^i[c+536>>2],i[c+436>>2]=r^i[c+532>>2],i[c+432>>2]=_^i[c+528>>2]);A:{I:{g:{C:{B:{if(A){if(r=16,g>>>0<16)break B;for(_=0;O(A+_|0,I+_|0,c+432|0),_=a=r,(r=a+16|0)>>>0<=g>>>0;);}else{if(_=16,g>>>0<16)break g;for(r=0;O(c+528|0,I+r|0,c+432|0),r=a=_,(_=a+16|0)>>>0<=g>>>0;);}if(!(_=15&g))break A;if(A)break C;break I}if(a=0,!(_=g))break A}Z(A+a|0,I+a|0,_,c+432|0);break A}if(a=0,!(_=g))break A}Z(c+528|0,I+a|0,_,c+432|0)}l(c+384|0,B,E,g,c+432|0),a=-1;A:{I:{if(I=B-16|0){if(16==(0|I))break I;break A}a=oI(c+384|0,C);break A}a=NC(c+384|0,C)}return!A|!a||bg(A,0,g),s=c+544|0,0|a},function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,s=Q=s+-64|0,(I|=0)|(g|=0)&&(i[Q+8>>2]=2036477234,i[Q+12>>2]=1797285236,i[Q>>2]=1634760805,i[Q+4>>2]=857760878,i[Q+16>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,i[Q+20>>2]=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[Q+24>>2]=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,i[Q+28>>2]=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24,i[Q+32>>2]=o[B+16|0]|o[B+17|0]<<8|o[B+18|0]<<16|o[B+19|0]<<24,i[Q+36>>2]=o[B+20|0]|o[B+21|0]<<8|o[B+22|0]<<16|o[B+23|0]<<24,i[Q+40>>2]=o[B+24|0]|o[B+25|0]<<8|o[B+26|0]<<16|o[B+27|0]<<24,B=o[B+28|0]|o[B+29|0]<<8|o[B+30|0]<<16|o[B+31|0]<<24,i[Q+48>>2]=0,i[Q+52>>2]=0,i[Q+44>>2]=B,i[Q+56>>2]=o[0|C]|o[C+1|0]<<8|o[C+2|0]<<16|o[C+3|0]<<24,i[Q+60>>2]=o[C+4|0]|o[C+5|0]<<8|o[C+6|0]<<16|o[C+7|0]<<24,z(Q,A=bg(A,0,I),A,I,g),XC(Q,64)),s=Q- -64|0,0},function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,s=Q=s+-64|0,(I|=0)|(g|=0)&&(i[Q+8>>2]=2036477234,i[Q+12>>2]=1797285236,i[Q>>2]=1634760805,i[Q+4>>2]=857760878,i[Q+16>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,i[Q+20>>2]=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[Q+24>>2]=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,i[Q+28>>2]=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24,i[Q+32>>2]=o[B+16|0]|o[B+17|0]<<8|o[B+18|0]<<16|o[B+19|0]<<24,i[Q+36>>2]=o[B+20|0]|o[B+21|0]<<8|o[B+22|0]<<16|o[B+23|0]<<24,i[Q+40>>2]=o[B+24|0]|o[B+25|0]<<8|o[B+26|0]<<16|o[B+27|0]<<24,B=o[B+28|0]|o[B+29|0]<<8|o[B+30|0]<<16|o[B+31|0]<<24,i[Q+48>>2]=0,i[Q+44>>2]=B,i[Q+52>>2]=o[0|C]|o[C+1|0]<<8|o[C+2|0]<<16|o[C+3|0]<<24,i[Q+56>>2]=o[C+4|0]|o[C+5|0]<<8|o[C+6|0]<<16|o[C+7|0]<<24,i[Q+60>>2]=o[C+8|0]|o[C+9|0]<<8|o[C+10|0]<<16|o[C+11|0]<<24,z(Q,A=bg(A,0,I),A,I,g),XC(Q,64)),s=Q- -64|0,0},function(A,I,g,C,B,Q,E,a){var _;return A|=0,I|=0,B|=0,Q|=0,E|=0,a|=0,s=_=s+-64|0,(g|=0)|(C|=0)&&(i[_+8>>2]=2036477234,i[_+12>>2]=1797285236,i[_>>2]=1634760805,i[_+4>>2]=857760878,i[_+16>>2]=o[0|a]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24,i[_+20>>2]=o[a+4|0]|o[a+5|0]<<8|o[a+6|0]<<16|o[a+7|0]<<24,i[_+24>>2]=o[a+8|0]|o[a+9|0]<<8|o[a+10|0]<<16|o[a+11|0]<<24,i[_+28>>2]=o[a+12|0]|o[a+13|0]<<8|o[a+14|0]<<16|o[a+15|0]<<24,i[_+32>>2]=o[a+16|0]|o[a+17|0]<<8|o[a+18|0]<<16|o[a+19|0]<<24,i[_+36>>2]=o[a+20|0]|o[a+21|0]<<8|o[a+22|0]<<16|o[a+23|0]<<24,i[_+40>>2]=o[a+24|0]|o[a+25|0]<<8|o[a+26|0]<<16|o[a+27|0]<<24,i[_+44>>2]=o[a+28|0]|o[a+29|0]<<8|o[a+30|0]<<16|o[a+31|0]<<24,i[_+48>>2]=Q,i[_+52>>2]=E,i[_+56>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,i[_+60>>2]=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,z(_,I,A,g,C),XC(_,64)),s=_- -64|0,0},function(A,I,g,C,B,Q,E){var a;return A|=0,I|=0,B|=0,Q|=0,E|=0,s=a=s+-64|0,(g|=0)|(C|=0)&&(i[a+8>>2]=2036477234,i[a+12>>2]=1797285236,i[a>>2]=1634760805,i[a+4>>2]=857760878,i[a+16>>2]=o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24,i[a+20>>2]=o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24,i[a+24>>2]=o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24,i[a+28>>2]=o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24,i[a+32>>2]=o[E+16|0]|o[E+17|0]<<8|o[E+18|0]<<16|o[E+19|0]<<24,i[a+36>>2]=o[E+20|0]|o[E+21|0]<<8|o[E+22|0]<<16|o[E+23|0]<<24,i[a+40>>2]=o[E+24|0]|o[E+25|0]<<8|o[E+26|0]<<16|o[E+27|0]<<24,E=o[E+28|0]|o[E+29|0]<<8|o[E+30|0]<<16|o[E+31|0]<<24,i[a+48>>2]=Q,i[a+44>>2]=E,i[a+52>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,i[a+56>>2]=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[a+60>>2]=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,z(a,I,A,g,C),XC(a,64)),s=a- -64|0,0}],fB.grow=function(A){var I=this.length;return this.length=this.length+A,I},fB.set=function(A,I){this[A]=I},fB.get=function(A){return this[A]},fB);function wB(){return g.byteLength/65536|0}return{e:Object.create(Object.prototype,{grow:{value:function(A){A|=0;var B=0|wB(),Q=B+A|0;if(B>>0<4294967280?(xI(A,A+C|0,0,g|=0,C,B,o|=0,E,a|=0,c|=0,t|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,i[I>>2]=A,i[I+4>>2]=B)):(rC(),Q()),0},D:function(A,I,g,C,B,Q,i,o,E,a,_,c){return 0|mI(A|=0,I|=0,g|=0,C|=0,(A=0)|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,_|=0,c|=0)},E:function(A,I,g,C,B,o,E,a,_,c,t){return A|=0,I|=0,C|=0,E|=0,_|=0,E|=_=0,!(B|=0)&(C|=_)>>>0<4294967280?(mI(A,A+C|0,0,g|=0,C,B,o|=0,E,a|=0,c|=0,t|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,i[I>>2]=A,i[I+4>>2]=B)):(rC(),Q()),0},F:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|dI(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},G:function(A,I,g,C,B,Q,o,E,a,_,c){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=dI(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,o|=0,E,a|=0,_|=0,c|=0)),I&&(i[I>>2]=g?0:B-16|0,i[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},H:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|HI(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},I:function(A,I,g,C,B,Q,o,E,a,_,c){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=HI(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,o|=0,E,a|=0,_|=0,c|=0)),I&&(i[I>>2]=g?0:B-16|0,i[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},J:BB,K:aB,L:hB,M:CB,N:EB,O:PC,P:BB,Q:eB,R:hB,S:CB,T:EB,U:PC,V:function(A,I,g,C,B,Q,i,o,E,a,_,c){return 0|pI(A|=0,I|=0,g|=0,C|=0,(A=0)|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,_|=0,c|=0)},W:function(A,I,g,C,B,o,E,a,_,c,t){return A|=0,I|=0,C|=0,E|=0,_|=0,E|=_=0,!(B|=0)&(C|=_)>>>0<4294967280?(pI(A,A+C|0,0,g|=0,C,B,o|=0,E,a|=0,c|=0,t|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,i[I>>2]=A,i[I+4>>2]=B)):(rC(),Q()),0},X:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|hI(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},Y:function(A,I,g,C,B,Q,o,E,a,_,c){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=hI(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,o|=0,E,a|=0,_|=0,c|=0)),I&&(i[I>>2]=g?0:B-16|0,i[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},Z:BB,_:_B,$:hB,aa:CB,ba:EB,ca:PC,da:BB,ea:BB,fa:function(){return 1462},ga:_I,ha:JI,ia:PC,ja:BB,ka:BB,la:IB,ma:PC,na:mA,oa:function(A,I,g,C){return 0|mC(A|=0,I|=0,g|=0,C|=0)},pa:Sg,qa:function(A,I,g,C,B){var Q;return A|=0,I|=0,g|=0,C|=0,s=Q=s-240|0,mA(Q,B|=0,32),UA(Q,I,g,C),JA(Q,I=Q+208|0),UA(g=Q+104|0,I,32,0),JA(g,A),XC(I,32),s=Q+240|0,0},ra:function(A,I,g,C,B){var Q,i;return A|=0,I|=0,g|=0,C|=0,s=Q=s-272|0,mA(i=Q+32|0,B|=0,32),UA(i,I,g,C),JA(i,I=Q+240|0),UA(g=Q+136|0,I,32,0),JA(g,Q),XC(I,32),I=NC(A,Q),g=MI(Q,A,32),s=Q+272|0,((0|A)==(0|Q)?-1:I)|g},sa:gB,ta:BB,ua:$C,va:PC,wa:iI,xa:EC,ya:wg,za:function(A,I,g,C,B){var Q;return A|=0,I|=0,g|=0,C|=0,s=Q=s-480|0,iI(Q,B|=0,32),SA(Q,I,g,C),j(Q,I=Q+416|0),SA(g=Q+208|0,I,64,0),j(g,A),XC(I,64),s=Q+480|0,0},Aa:function(A,I,g,C,B){var Q,i;return A|=0,I|=0,g|=0,C|=0,s=Q=s-544|0,iI(i=Q- -64|0,B|=0,32),SA(i,I,g,C),j(i,I=Q+480|0),SA(g=Q+272|0,I,64,0),j(g,Q),XC(I,64),I=GC(A,Q),g=MI(Q,A,64),s=Q+544|0,((0|A)==(0|Q)?-1:I)|g},Ba:BB,Ca:BB,Da:$C,Ea:PC,Fa:yC,Ga:EC,Ha:function(A,I){I|=0;var g,B=0;return s=g=s+-64|0,wg(A|=0,g),B=i[g+28>>2],A=i[g+24>>2],C[I+24|0]=A,C[I+25|0]=A>>>8,C[I+26|0]=A>>>16,C[I+27|0]=A>>>24,C[I+28|0]=B,C[I+29|0]=B>>>8,C[I+30|0]=B>>>16,C[I+31|0]=B>>>24,B=i[g+20>>2],A=i[g+16>>2],C[I+16|0]=A,C[I+17|0]=A>>>8,C[I+18|0]=A>>>16,C[I+19|0]=A>>>24,C[I+20|0]=B,C[I+21|0]=B>>>8,C[I+22|0]=B>>>16,C[I+23|0]=B>>>24,B=i[g+12>>2],A=i[g+8>>2],C[I+8|0]=A,C[I+9|0]=A>>>8,C[I+10|0]=A>>>16,C[I+11|0]=A>>>24,C[I+12|0]=B,C[I+13|0]=B>>>8,C[I+14|0]=B>>>16,C[I+15|0]=B>>>24,B=i[g+4>>2],A=i[g>>2],C[0|I]=A,C[I+1|0]=A>>>8,C[I+2|0]=A>>>16,C[I+3|0]=A>>>24,C[I+4|0]=B,C[I+5|0]=B>>>8,C[I+6|0]=B>>>16,C[I+7|0]=B>>>24,s=g- -64|0,0},Ia:_I,Ja:JI,Ka:BB,La:BB,Ma:BB,Na:BB,Oa:_B,Pa:BB,Qa:CB,Ra:CB,Sa:EB,Ta:function(){return 1476},Ua:function(A,I,g){return 0|cI(A|=0,I|=0,g|=0)},Va:UC,Wa:cC,Xa:Pg,Ya:qg,Za:Bg,_a:Qg,$a:Yg,ab:function(A,I,g,C,B,Q,i,o){A|=0,I|=0,g|=0,Q|=0;var E,a=0;return a=C|=0,C=B|=0,E=0|a,s=a=s-32|0,B=-1,cC(a,i|=0,o|=0)||(B=aI(A,I,g,E,C,Q,a),XC(a,32)),s=a+32|0,0|B},bb:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(rC(),Q()),0|aI(A+16|0,A,I,g,C,B,i)},cb:function(A,I,g,C,B,Q,i){return 0|sg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},db:Jg,eb:function(A,I,g,C,B,Q,i,o){A|=0,I|=0,g|=0,Q|=0;var E,a=0;return a=C|=0,C=B|=0,E=0|a,s=a=s-32|0,B=-1,cC(a,i|=0,o|=0)||(B=eI(A,I,g,E,C,Q,a),XC(a,32)),s=a+32|0,0|B},fb:hg,gb:function(A,I,g,C,B,Q,i){return 0|_g(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},hb:function(A,I,g,B,Q){A|=0,I|=0,Q|=0;var o,E,a,_,c=0,t=0;return c=g|=0,g=B|=0,_=0|c,c=B=s,s=o=B-512&-64,B=-1,UC(E=o- -64|0,a=o+32|0)||(iC(B=o+128|0,0,0,24),lC(B,E,32,0),lC(B,Q,32,0),eC(B,t=o+96|0,24),B=sg(A+32|0,I,_,g,t,Q,a),I=i[o+92>>2],g=i[o+88>>2],C[A+24|0]=g,C[A+25|0]=g>>>8,C[A+26|0]=g>>>16,C[A+27|0]=g>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[o+84>>2],g=i[o+80>>2],C[A+16|0]=g,C[A+17|0]=g>>>8,C[A+18|0]=g>>>16,C[A+19|0]=g>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[o+76>>2],g=i[o+72>>2],C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[o+68>>2],g=i[o+64>>2],C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,XC(a,32),XC(E,32),XC(t,24)),s=c,0|B},ib:function(A,I,g,C,B,Q){A|=0,I|=0,B|=0,Q|=0;var i,o,E=0;return o=E=s,s=i=E-448&-64,E=-1,!(C|=0)&(g|=0)>>>0>=48|C&&(iC(E=i- -64|0,0,0,24),lC(E,I,32,0),lC(E,B,32,0),eC(E,B=i+32|0,24),E=_g(A,I+32|0,g-32|0,C-(g>>>0<32)|0,B,I,Q)),s=o,0|E},jb:oB,kb:cI,lb:sC,mb:pg,nb:Pg,ob:qg,pb:Bg,qb:Qg,rb:BB,sb:BB,tb:BB,ub:BB,vb:_B,wb:BB,xb:CB,yb:CB,zb:EB,Ab:yA,Bb:BB,Cb:CB,Db:BB,Eb:CB,Fb:wA,Gb:BB,Hb:CB,Ib:BB,Jb:CB,Kb:AC,Lb:gB,Mb:CB,Nb:BB,Ob:CB,Pb:IC,Qb:gB,Rb:CB,Sb:BB,Tb:CB,Ub:gC,Vb:gB,Wb:CB,Xb:BB,Yb:CB,Zb:CB,_b:gB,$b:BB,ac:CB,bc:gB,cc:BB,dc:WC,ec:ZC,fc:function(A,I,g,C,B,Q,i){return 0|kC(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},gc:iC,hc:function(A,I,g,C){return 0|lC(A|=0,I|=0,g|=0,C|=0)},ic:eC,jc:PC,kc:CB,lc:gB,mc:BB,nc:CB,oc:gB,pc:BB,qc:CB,rc:CB,sc:ZC,tc:PC,uc:kC,vc:function(A,I,g,C,B,Q,i,o,E){return 0|QA(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0)},wc:eA,xc:function(A,I,g,B,i,E){A|=0,I|=0,i|=0,E|=0;var a=0,_=0,c=0,t=0,r=0,e=0,y=0;if(a=-1,!((B|=0)-65>>>0<4294967232|(g|=0)>>>0>64)){A:{if(!g||!I){if(((t=255&B)-65&255)>>>0>191){i?(_=725511199^(o[i+8|0]|o[i+9|0]<<8|o[i+10|0]<<16|o[i+11|0]<<24),g=-1694144372^(o[i+12|0]|o[i+13|0]<<8|o[i+14|0]<<16|o[i+15|0]<<24),I=-1377402159^(o[0|i]|o[i+1|0]<<8|o[i+2|0]<<16|o[i+3|0]<<24),i=1359893119^(o[i+4|0]|o[i+5|0]<<8|o[i+6|0]<<16|o[i+7|0]<<24)):(_=725511199,g=-1694144372,I=-1377402159,i=1359893119),E?(c=327033209^(o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24),B=1541459225^(o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24),a=-79577749^(o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24),E=528734635^(o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24)):(c=327033209,B=1541459225,a=-79577749,E=528734635),bg(A- -64|0,0,293),C[A+56|0]=c,C[A+57|0]=c>>>8,C[A+58|0]=c>>>16,C[A+59|0]=c>>>24,C[A+60|0]=B,C[A+61|0]=B>>>8,C[A+62|0]=B>>>16,C[A+63|0]=B>>>24,C[A+48|0]=a,C[A+49|0]=a>>>8,C[A+50|0]=a>>>16,C[A+51|0]=a>>>24,C[A+52|0]=E,C[A+53|0]=E>>>8,C[A+54|0]=E>>>16,C[A+55|0]=E>>>24,C[A+40|0]=_,C[A+41|0]=_>>>8,C[A+42|0]=_>>>16,C[A+43|0]=_>>>24,C[A+44|0]=g,C[A+45|0]=g>>>8,C[A+46|0]=g>>>16,C[A+47|0]=g>>>24,C[A+32|0]=I,C[A+33|0]=I>>>8,C[A+34|0]=I>>>16,C[A+35|0]=I>>>24,C[A+36|0]=i,C[A+37|0]=i>>>8,C[A+38|0]=i>>>16,C[A+39|0]=i>>>24,C[A+24|0]=241,C[A+25|0]=54,C[A+26|0]=29,C[A+27|0]=95,C[A+28|0]=58,C[A+29|0]=245,C[A+30|0]=79,C[A+31|0]=165,C[A+16|0]=43,C[A+17|0]=248,C[A+18|0]=148,C[A+19|0]=254,C[A+20|0]=114,C[A+21|0]=243,C[A+22|0]=110,C[A+23|0]=60,C[A+8|0]=59,C[A+9|0]=167,C[A+10|0]=202,C[A+11|0]=132,C[A+12|0]=133,C[A+13|0]=174,C[A+14|0]=103,C[A+15|0]=187,I=-222443256^t,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,C[A+4|0]=103,C[A+5|0]=230,C[A+6|0]=9,C[A+7|0]=106;break A}rC(),Q()}s=e=s-128|0,!I|((y=255&B)-65&255)>>>0<=191|((t=255&g)-65&255)>>>0<=191?(rC(),Q()):(i?(_=725511199^(o[i+8|0]|o[i+9|0]<<8|o[i+10|0]<<16|o[i+11|0]<<24),g=-1694144372^(o[i+12|0]|o[i+13|0]<<8|o[i+14|0]<<16|o[i+15|0]<<24),a=-1377402159^(o[0|i]|o[i+1|0]<<8|o[i+2|0]<<16|o[i+3|0]<<24),i=1359893119^(o[i+4|0]|o[i+5|0]<<8|o[i+6|0]<<16|o[i+7|0]<<24)):(_=725511199,g=-1694144372,a=-1377402159,i=1359893119),E?(c=327033209^(o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24),B=1541459225^(o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24),r=-79577749^(o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24),E=528734635^(o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24)):(c=327033209,B=1541459225,r=-79577749,E=528734635),bg(A- -64|0,0,293),C[A+56|0]=c,C[A+57|0]=c>>>8,C[A+58|0]=c>>>16,C[A+59|0]=c>>>24,C[A+60|0]=B,C[A+61|0]=B>>>8,C[A+62|0]=B>>>16,C[A+63|0]=B>>>24,C[A+48|0]=r,C[A+49|0]=r>>>8,C[A+50|0]=r>>>16,C[A+51|0]=r>>>24,C[A+52|0]=E,C[A+53|0]=E>>>8,C[A+54|0]=E>>>16,C[A+55|0]=E>>>24,C[A+40|0]=_,C[A+41|0]=_>>>8,C[A+42|0]=_>>>16,C[A+43|0]=_>>>24,C[A+44|0]=g,C[A+45|0]=g>>>8,C[A+46|0]=g>>>16,C[A+47|0]=g>>>24,C[A+32|0]=a,C[A+33|0]=a>>>8,C[A+34|0]=a>>>16,C[A+35|0]=a>>>24,C[A+36|0]=i,C[A+37|0]=i>>>8,C[A+38|0]=i>>>16,C[A+39|0]=i>>>24,C[A+24|0]=241,C[A+25|0]=54,C[A+26|0]=29,C[A+27|0]=95,C[A+28|0]=58,C[A+29|0]=245,C[A+30|0]=79,C[A+31|0]=165,C[A+16|0]=43,C[A+17|0]=248,C[A+18|0]=148,C[A+19|0]=254,C[A+20|0]=114,C[A+21|0]=243,C[A+22|0]=110,C[A+23|0]=60,C[A+8|0]=59,C[A+9|0]=167,C[A+10|0]=202,C[A+11|0]=132,C[A+12|0]=133,C[A+13|0]=174,C[A+14|0]=103,C[A+15|0]=187,g=-222443256^(t<<8|y),C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,g=t>>>24^1779033703,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,g=Ng(bg(e,0,128),I,t),Ng(A+96|0,g,128),I=128+(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)|0,C[A+352|0]=I,C[A+353|0]=I>>>8,C[A+354|0]=I>>>16,C[A+355|0]=I>>>24,XC(g,128),s=g+128|0)}a=0}return 0|a},yc:lC,zc:Hg,Ac:gB,Bc:CC,Cc:function(){return 1531},Dc:BB,Ec:function(){return 104},Fc:$I,Gc:function(A,I,g,C){return 0|UA(A|=0,I|=0,g|=0,C|=0)},Hc:JA,Ic:function(A,I,g,C){A|=0,I|=0,g|=0,C|=0;var B,Q=0;return s=B=s-112|0,Q=i[8811],i[B+16>>2]=i[8810],i[B+20>>2]=Q,Q=i[8813],i[B+24>>2]=i[8812],i[B+28>>2]=Q,Q=i[8815],i[B+32>>2]=i[8814],i[B+36>>2]=Q,i[B+40>>2]=0,i[B+44>>2]=0,Q=i[8809],i[B+8>>2]=i[8808],i[B+12>>2]=Q,UA(Q=B+8|0,I,g,C),JA(Q,A),s=B+112|0,0},Jc:gB,Kc:IB,Lc:SI,Mc:QC,Nc:j,Oc:CC,Pc:CB,Qc:gB,Rc:eB,Sc:BB,Tc:YI,Uc:WC,Vc:CB,Wc:gB,Xc:eB,Yc:BB,Zc:YI,_c:PC,$c:function(A,I,g){return 0|mA(A|=0,I|=0,g|=0)},ad:function(A,I,g){return 0|mC(A|=0,I|=0,g|=0,0)},bd:function(A,I){return Sg(A|=0,I|=0),XC(A,4),0},cd:function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,s=Q=s-208|0,mA(Q,I|=0,g|=0),mC(Q,C,B,0),Sg(Q,A),XC(Q,4),s=Q+208|0,0},dd:PC,ed:function(A,I,g,B,Q){A|=0,I|=0,g|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-256|0,C[E+15|0]=1,I>>>0<=8160){if(I>>>0>=32)for(t=A-32|0,a=32;c=a,mA(a=E+48|0,Q,32),_&&mC(a,_+t|0,32,0),mC(a=E+48|0,g,B,0),mC(a,E+15|0,1,0),Sg(a,A+_|0),C[E+15|0]=o[E+15|0]+1,(a=(_=c)+32|0)>>>0<=I>>>0;);(_=31&I)&&(mA(I=E+48|0,Q,32),c&&mC(I,(A+c|0)-32|0,32,0),mC(I=E+48|0,g,B,0),mC(I,E+15|0,1,0),Sg(g=I,I=E+16|0),Ng(A+c|0,I,_),XC(I,32)),XC(E+48|0,208),A=0}else i[9404]=28,A=-1;return s=E+256|0,0|A},fd:BB,gd:hB,hd:function(){return 8160},id:IB,jd:yC,kd:function(A,I,g){return 0|dC(A|=0,I|=0,g|=0,0)},ld:function(A,I){return wg(A|=0,I|=0),XC(A,4),0},md:function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,s=Q=s-416|0,iI(Q,I|=0,g|=0),dC(Q,C,B,0),wg(Q,A),XC(Q,4),s=Q+416|0,0},nd:function(A){ag(A|=0,64)},od:function(A,I,g,B,Q){A|=0,I|=0,g|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-496|0,C[E+15|0]=1,I>>>0<=16320){if(I>>>0>=64)for(t=A+-64|0,a=64;c=a,iI(a=E+80|0,Q,64),_&&dC(a,_+t|0,64,0),dC(a=E+80|0,g,B,0),dC(a,E+15|0,1,0),wg(a,A+_|0),C[E+15|0]=o[E+15|0]+1,(a=(_=c)- -64|0)>>>0<=I>>>0;);(_=63&I)&&(iI(I=E+80|0,Q,64),c&&dC(I,(A+c|0)-64|0,64,0),dC(I=E+80|0,g,B,0),dC(I,E+15|0,1,0),wg(g=I,I=E+16|0),Ng(A+c|0,I,_),XC(I,64)),XC(E+80|0,416),A=0}else i[9404]=28,A=-1;return s=E+496|0,0|A},pd:gB,qd:hB,rd:function(){return 16320},sd:$C,td:function(A,I,g){return A|=0,kC(I|=0,32,g|=0,32,0,0,0),0|KC(A,I)},ud:function(A,I){return A|=0,ag(I|=0,32),0|KC(A,I)},vd:function(A,I,g,B,i){I|=0,g|=0,B|=0,i|=0;var E,a,_=0,c=0,t=0;if(a=_=s,s=_=_-512&-64,E=(A|=0)||I){if(t=-1,!tC(c=_+96|0,B,i)){for(B=I||A,A=0,iC(I=_+128|0,0,0,64),lC(I,c,32,0),XC(c,32),lC(I,g,32,0),lC(I,i,32,0),eC(I,_+32|0,64),XC(I,384);g=(I=_+32|0)+A|0,C[A+E|0]=o[0|g],C[A+B|0]=o[g+32|0],C[(g=1|A)+E|0]=o[I+g|0],C[g+B|0]=o[I+(33|A)|0],32!=(0|(A=A+2|0)););XC(I,64),t=0}return s=a,0|t}rC(),Q()},wd:function(A,I,g,B,i){I|=0,g|=0,B|=0,i|=0;var E,a,_=0,c=0,t=0;if(a=_=s,s=_=_-512&-64,E=(A|=0)||I){if(t=-1,!tC(c=_+96|0,B,i)){for(B=I||A,A=0,iC(I=_+128|0,0,0,64),lC(I,c,32,0),XC(c,32),lC(I,i,32,0),lC(I,g,32,0),eC(I,_+32|0,64),XC(I,384);g=(I=_+32|0)+A|0,C[A+B|0]=o[0|g],C[A+E|0]=o[g+32|0],C[(g=1|A)+B|0]=o[I+g|0],C[g+E|0]=o[I+(33|A)|0],32!=(0|(A=A+2|0)););XC(I,64),t=0}return s=a,0|t}rC(),Q()},xd:BB,yd:BB,zd:BB,Ad:BB,Bd:function(){return 1332},Cd:TC,Dd:CB,Ed:BB,Fd:Vg,Gd:Zg,Hd:function(A,I){return 0|wC(A|=0,I|=0)},Id:BC,Jd:function(A,I){return 0|nC(A|=0,I|=0)},Kd:function(){return 1494},Ld:PC,Md:Vg,Nd:Zg,Od:wC,Pd:BC,Qd:nC,Rd:CB,Sd:BB,Td:TC,Ud:PC,Vd:yB,Wd:CB,Xd:cB,Yd:hB,Zd:cB,_d:CB,$d:AB,ae:function(){return 1554},be:rB,ce:cB,de:VC,ee:xC,fe:sB,ge:LC,he:function(){return 6},ie:function(){return 134217728},je:eB,ke:function(){return 536870912},le:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|rI(A|=0,(A=0)|(I|=0),g|=0,C|=0,A|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},me:function(A,I,g,C,B,Q,i){return 0|OI(A|=0,I|=0,(A=0)|(g|=0),C|=0,A|(B|=0),Q|=0,i|=0)},ne:function(A,I,g,C){return 0|bC(A|=0,I|=0,g|=0,C|=0)},oe:function(A,I,g,C){return 0|HC(A|=0,I|=0,g|=0,C|=0)},pe:function(A,I,g,C){return 0|YC(A|=0,I|=0,g|=0,C|=0)},qe:tB,re:CB,se:cB,te:hB,ue:cB,ve:CB,we:AB,xe:OC,ye:yB,ze:cB,Ae:VC,Be:xC,Ce:tB,De:qC,Ee:rB,Fe:RC,Ge:sB,He:vC,Ie:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|yI(A|=0,(A=0)|(I|=0),g|=0,C|=0,A|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},Je:Fg,Ke:function(A,I,g,C){return 0|JC(A|=0,I|=0,g|=0,C|=0)},Le:yB,Me:tB,Ne:tB,Oe:CB,Pe:cB,Qe:hB,Re:cB,Se:CB,Te:AB,Ue:OC,Ve:yB,We:cB,Xe:VC,Ye:xC,Ze:tB,_e:qC,$e:rB,af:RC,bf:sB,cf:vC,df:function(A,I,g,C,B,Q,o,E,a,_,c){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,o|=0,E|=0,a|=0,_|=0,I|=0,B|=0,E|=0;A:{switch((c|=0)-1|0){case 0:A=rI(A,I,g,C,B,Q,o,E,a,_,1);break A;case 1:A=yI(A,I,g,C,B,Q,o,E,a,_,2);break A}i[9404]=28,A=-1}return 0|A},ef:Fg,ff:function(A,I,g,C,B,i,o,E){A|=0,I|=0,g|=0,C|=0,B|=0,i|=0,o|=0,g|=0,B|=0;A:{switch((E|=0)-1|0){case 1:A=TI(A,I,g,C,B,i,o);break A;default:rC(),Q();case 0:}A=OI(A,I,g,C,B,i,o)}return 0|A},gf:function(A,I,g,C){return I|=0,g|=0,C|=0,gg(A|=0,1564,10)?gg(A,1554,9)?(i[9404]=28,A=-1):A=bC(A,I,g,C):A=JC(A,I,g,C),0|A},hf:function(A,I,g,C){return I|=0,g|=0,C|=0,gg(A|=0,1564,10)?gg(A,1554,9)?(i[9404]=28,A=-1):A=HC(A,I,g,C):A=YC(A,I,g,C),0|A},jf:function(){return 1156},kf:function(){return 1443},lf:KC,mf:tC,nf:BB,of:BB,pf:CI,qf:pC,rf:BB,sf:BB,tf:BB,uf:_B,vf:BB,wf:CB,xf:CB,yf:EB,zf:function(){return 1486},Af:Pg,Bf:qg,Cf:PC,Df:Yg,Ef:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(rC(),Q()),aI(A+16|0,A,I,g,C,B,i),0},Ff:Jg,Gf:hg,Hf:Pg,If:qg,Jf:BB,Kf:_B,Lf:BB,Mf:CB,Nf:CB,Of:EB,Pf:PC,Qf:PC,Rf:function(A,I,g){return A|=0,g|=0,ag(I|=0,24),yA(A,I,g,0),C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,g=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,I=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,C[A+44|0]=0,C[A+45|0]=0,C[A+46|0]=0,C[A+47|0]=0,C[A+48|0]=0,C[A+49|0]=0,C[A+50|0]=0,C[A+51|0]=0,C[A+36|0]=g,C[A+37|0]=g>>>8,C[A+38|0]=g>>>16,C[A+39|0]=g>>>24,C[A+40|0]=I,C[A+41|0]=I>>>8,C[A+42|0]=I>>>16,C[A+43|0]=I>>>24,0},Sf:function(A,I,g){return yA(A|=0,I|=0,g|=0,0),C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,g=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,I=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,C[A+44|0]=0,C[A+45|0]=0,C[A+46|0]=0,C[A+47|0]=0,C[A+48|0]=0,C[A+49|0]=0,C[A+50|0]=0,C[A+51|0]=0,C[A+36|0]=g,C[A+37|0]=g>>>8,C[A+38|0]=g>>>16,C[A+39|0]=g>>>24,C[A+40|0]=I,C[A+41|0]=I>>>8,C[A+42|0]=I>>>16,C[A+43|0]=I>>>24,0},Tf:function(A){var I,g=0,B=0;s=I=s-48|0,g=o[28+(A|=0)|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,i[I+24>>2]=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,i[I+28>>2]=g,g=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,i[I+16>>2]=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,i[I+20>>2]=g,g=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,i[I>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[I+4>>2]=g,g=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,i[I+8>>2]=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,i[I+12>>2]=g,g=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,i[I+32>>2]=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,i[I+36>>2]=g,xg(I,I,40,0,A+32|0,A),g=i[I+28>>2],B=i[I+24>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=g,C[A+29|0]=g>>>8,C[A+30|0]=g>>>16,C[A+31|0]=g>>>24,g=i[I+20>>2],B=i[I+16>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=g,C[A+21|0]=g>>>8,C[A+22|0]=g>>>16,C[A+23|0]=g>>>24,g=i[I+12>>2],B=i[I+8>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=g,C[A+13|0]=g>>>8,C[A+14|0]=g>>>16,C[A+15|0]=g>>>24,g=i[I+4>>2],B=i[I>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,B=i[I+36>>2],g=i[I+32>>2],C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,C[A+36|0]=g,C[A+37|0]=g>>>8,C[A+38|0]=g>>>16,C[A+39|0]=g>>>24,C[A+40|0]=B,C[A+41|0]=B>>>8,C[A+42|0]=B>>>16,C[A+43|0]=B>>>24,s=I+48|0},Uf:function(A,I,g,B,E,a,_,c,t,r){A|=0,I|=0,B|=0,a|=0,_|=0,t|=0,r|=0;var e,y=0,h=0,D=0;return y=E|=0,y|=E=0,e=E|(c|=0),s=E=s-384|0,(g|=0)&&(i[g>>2]=0,i[g+4>>2]=0),!a&y>>>0<4294967279?(jg(h=E+16|0,64,0,D=A+32|0,A),wC(c=E+80|0,h),XC(h,64),SC(c,_,e,t),SC(c,35216,0-e&15,0),i[E+72>>2]=0,i[E+76>>2]=0,i[(_=E- -64|0)>>2]=0,i[_+4>>2]=0,i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,i[E+16>>2]=0,i[E+20>>2]=0,i[E+24>>2]=0,i[E+28>>2]=0,C[E+16|0]=r,Cg(h,h,64,0,D,1,A),SC(c,h,64,0),C[0|I]=o[E+16|0],Cg(I=I+1|0,B,y,a,D,2,A),SC(c,I,y,a),SC(c,35216,15&y,0),i[E+8>>2]=e,i[E+12>>2]=t,SC(c,B=E+8|0,8,0),i[E+8>>2]=y- -64,i[E+12>>2]=a-((y>>>0<4294967232)-1|0),SC(c,B,8,0),nC(c,I=I+y|0),XC(c,256),C[A+36|0]=o[A+36|0]^o[0|I],C[A+37|0]=o[A+37|0]^o[I+1|0],C[A+38|0]=o[A+38|0]^o[I+2|0],C[A+39|0]=o[A+39|0]^o[I+3|0],C[A+40|0]=o[A+40|0]^o[I+4|0],C[A+41|0]=o[A+41|0]^o[I+5|0],C[A+42|0]=o[A+42|0]^o[I+6|0],C[A+43|0]=o[A+43|0]^o[I+7|0],XI(D),(2&r||GI(D,4))&&(I=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,i[E+360>>2]=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,i[E+364>>2]=I,I=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,i[E+352>>2]=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,i[E+356>>2]=I,I=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,i[E+336>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[E+340>>2]=I,I=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,i[E+344>>2]=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,i[E+348>>2]=I,I=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,i[E+368>>2]=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,i[E+372>>2]=I,xg(I=E+336|0,I,40,0,D,A),I=i[E+364>>2],B=i[E+360>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[E+356>>2],B=i[E+352>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[E+348>>2],B=i[E+344>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[E+340>>2],B=i[E+336>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=i[E+368>>2],B=i[E+372>>2],C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,C[A+36|0]=I,C[A+37|0]=I>>>8,C[A+38|0]=I>>>16,C[A+39|0]=I>>>24,C[A+40|0]=B,C[A+41|0]=B>>>8,C[A+42|0]=B>>>16,C[A+43|0]=B>>>24),g&&(a=(A=y+17|0)>>>0<17?a+1|0:a,i[g>>2]=A,i[g+4>>2]=a),s=E+384|0):(rC(),Q()),0},Vf:function(A,I,g,B,E,a,_,c,t,r){A|=0,I|=0,B|=0,E|=0,c|=0,r|=0;var e,y=0,h=0,D=0,f=0,p=0,w=0;y=a|=0,a=_|=0,h=0|y,e=t|=0,s=_=s-400|0,(g|=0)&&(i[g>>2]=0,i[g+4>>2]=0),B&&(C[0|B]=255),w=-1;A:{I:{if(!((t=h>>>0<17)&!a)){if(p=y=a-t|0,!y&(t=h-17|0)>>>0>=4294967279|y)break I;jg(D=_+32|0,64,0,f=A+32|0,A),wC(y=_+96|0,D),XC(D,64),SC(y,c,e,r),SC(y,35216,0-e&15,0),i[_+88>>2]=0,i[_+92>>2]=0,i[_+80>>2]=0,i[_+84>>2]=0,i[_+72>>2]=0,i[_+76>>2]=0,i[(c=_- -64|0)>>2]=0,i[c+4>>2]=0,i[_+56>>2]=0,i[_+60>>2]=0,i[_+48>>2]=0,i[_+52>>2]=0,i[_+40>>2]=0,i[_+44>>2]=0,i[_+32>>2]=0,i[_+36>>2]=0,C[_+32|0]=o[0|E],Cg(D,D,64,0,f,1,A),c=o[_+32|0],C[_+32|0]=o[0|E],SC(y,D,64,0),SC(y,E=E+1|0,t,p),SC(y,35216,h-1&15,0),i[_+24>>2]=e,i[_+28>>2]=r,SC(y,r=_+24|0,8,0),a=(h=h+47|0)>>>0<47?a+1|0:a,i[_+24>>2]=h,i[_+28>>2]=a,SC(y,r,8,0),nC(y,_),XC(y,256),MI(_,E+t|0,16)?XC(_,16):(Cg(I,E,t,p,f,2,A),C[A+36|0]=o[A+36|0]^o[0|_],C[A+37|0]=o[A+37|0]^o[_+1|0],C[A+38|0]=o[A+38|0]^o[_+2|0],C[A+39|0]=o[A+39|0]^o[_+3|0],C[A+40|0]=o[A+40|0]^o[_+4|0],C[A+41|0]=o[A+41|0]^o[_+5|0],C[A+42|0]=o[A+42|0]^o[_+6|0],C[A+43|0]=o[A+43|0]^o[_+7|0],XI(f),(2&c||GI(f,4))&&(I=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,i[_+376>>2]=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,i[_+380>>2]=I,I=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,i[_+368>>2]=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,i[_+372>>2]=I,I=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,i[_+352>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[_+356>>2]=I,I=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,i[_+360>>2]=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,i[_+364>>2]=I,I=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,i[_+384>>2]=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,i[_+388>>2]=I,xg(I=_+352|0,I,40,0,f,A),I=i[_+380>>2],E=i[_+376>>2],C[A+24|0]=E,C[A+25|0]=E>>>8,C[A+26|0]=E>>>16,C[A+27|0]=E>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[_+372>>2],E=i[_+368>>2],C[A+16|0]=E,C[A+17|0]=E>>>8,C[A+18|0]=E>>>16,C[A+19|0]=E>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[_+364>>2],E=i[_+360>>2],C[A+8|0]=E,C[A+9|0]=E>>>8,C[A+10|0]=E>>>16,C[A+11|0]=E>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[_+356>>2],E=i[_+352>>2],C[0|A]=E,C[A+1|0]=E>>>8,C[A+2|0]=E>>>16,C[A+3|0]=E>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=i[_+384>>2],E=i[_+388>>2],C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,C[A+36|0]=I,C[A+37|0]=I>>>8,C[A+38|0]=I>>>16,C[A+39|0]=I>>>24,C[A+40|0]=E,C[A+41|0]=E>>>8,C[A+42|0]=E>>>16,C[A+43|0]=E>>>24),g&&(i[g>>2]=t,i[g+4>>2]=p),w=0,B&&(C[0|B]=c))}s=_+400|0;break A}rC(),Q()}return 0|w},Wf:function(){return 52},Xf:function(){return 17},Yf:_B,Zf:BB,_f:function(){return-18},$f:hB,ag:yB,bg:tB,cg:rB,dg:eB,eg:CB,fg:function(){return 1521},gg:T,hg:zC,ig:eB,jg:CB,kg:T,lg:IB,mg:gB,ng:BB,og:BB,pg:gB,qg:QB,rg:function(){return 1454},sg:function(A,I,g){return 0|FA(A|=0,I|=0,g|=0)},tg:function(A,I){return 0|YA(A|=0,I|=0)},ug:LI,vg:bI,wg:vg,xg:Wg,yg:function(A){return 0|uC(A|=0)},zg:QC,Ag:function(A,I,g,C){return 0|ng(A|=0,I|=0,g|=0,C|=0)},Bg:function(A,I,g){return 0|Kg(A|=0,I|=0,g|=0)},Cg:IB,Dg:gB,Eg:BB,Fg:BB,Gg:gB,Hg:QB,Ig:function(A,I){A|=0;var g,B,Q,i,E,a,_=0;return g=o[8+(_=I|=0)|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24,B=o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24,Q=o[_+16|0]|o[_+17|0]<<8|o[_+18|0]<<16|o[_+19|0]<<24,i=o[_+20|0]|o[_+21|0]<<8|o[_+22|0]<<16|o[_+23|0]<<24,E=o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24,I=o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24,a=o[_+28|0]|o[_+29|0]<<8|o[_+30|0]<<16|o[_+31|0]<<24,_=o[_+24|0]|o[_+25|0]<<8|o[_+26|0]<<16|o[_+27|0]<<24,C[A+24|0]=_,C[A+25|0]=_>>>8,C[A+26|0]=_>>>16,C[A+27|0]=_>>>24,C[A+28|0]=a,C[A+29|0]=a>>>8,C[A+30|0]=a>>>16,C[A+31|0]=a>>>24,C[A+16|0]=Q,C[A+17|0]=Q>>>8,C[A+18|0]=Q>>>16,C[A+19|0]=Q>>>24,C[A+20|0]=i,C[A+21|0]=i>>>8,C[A+22|0]=i>>>16,C[A+23|0]=i>>>24,C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=B,C[A+13|0]=B>>>8,C[A+14|0]=B>>>16,C[A+15|0]=B>>>24,C[0|A]=E,C[A+1|0]=E>>>8,C[A+2|0]=E>>>16,C[A+3|0]=E>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,0},Jg:function(A,I){A|=0;var g,B,Q,i,E,a,_=0;return g=o[32+(_=I|=0)|0]|o[_+33|0]<<8|o[_+34|0]<<16|o[_+35|0]<<24,B=o[_+36|0]|o[_+37|0]<<8|o[_+38|0]<<16|o[_+39|0]<<24,Q=o[_+40|0]|o[_+41|0]<<8|o[_+42|0]<<16|o[_+43|0]<<24,i=o[_+44|0]|o[_+45|0]<<8|o[_+46|0]<<16|o[_+47|0]<<24,E=o[_+48|0]|o[_+49|0]<<8|o[_+50|0]<<16|o[_+51|0]<<24,I=o[_+52|0]|o[_+53|0]<<8|o[_+54|0]<<16|o[_+55|0]<<24,a=o[_+60|0]|o[_+61|0]<<8|o[_+62|0]<<16|o[_+63|0]<<24,_=o[_+56|0]|o[_+57|0]<<8|o[_+58|0]<<16|o[_+59|0]<<24,C[A+24|0]=_,C[A+25|0]=_>>>8,C[A+26|0]=_>>>16,C[A+27|0]=_>>>24,C[A+28|0]=a,C[A+29|0]=a>>>8,C[A+30|0]=a>>>16,C[A+31|0]=a>>>24,C[A+16|0]=E,C[A+17|0]=E>>>8,C[A+18|0]=E>>>16,C[A+19|0]=E>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,C[A+8|0]=Q,C[A+9|0]=Q>>>8,C[A+10|0]=Q>>>16,C[A+11|0]=Q>>>24,C[A+12|0]=i,C[A+13|0]=i>>>8,C[A+14|0]=i>>>16,C[A+15|0]=i>>>24,C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=B,C[A+5|0]=B>>>8,C[A+6|0]=B>>>16,C[A+7|0]=B>>>24,0},Kg:uC,Lg:QC,Mg:ng,Ng:Kg,Og:FA,Pg:YA,Qg:function(A,I){A|=0;var g,C=0,B=0,Q=0,o=0,E=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,fA=0,pA=0,wA=0,nA=0,kA=0,FA=0,SA=0,NA=0,GA=0,MA=0,KA=0,UA=0,bA=0,HA=0,YA=0;return s=g=s-256|0,SA=-1,KI(I|=0)||qA(C=g+96|0,I)||gA(C)&&(SA=0,u=i[g+172>>2],i[g+36>>2]=0-u,n=i[g+168>>2],i[g+32>>2]=0-n,x=i[g+164>>2],i[g+28>>2]=0-x,k=i[g+160>>2],i[g+24>>2]=0-k,v=i[g+156>>2],i[g+20>>2]=0-v,F=i[g+152>>2],i[g+16>>2]=0-F,R=i[g+148>>2],i[g+12>>2]=0-R,S=i[g+144>>2],i[g+8>>2]=0-S,L=i[g+140>>2],i[g+4>>2]=0-L,Q=i[g+136>>2],i[g>>2]=1-Q,LA(g,g),I=Ig(N=i[g+4>>2],d=N>>31,G=v<<1,IA=G>>31),C=f,B=Ig(p=i[g>>2],M=p>>31,k,K=k>>31),C=f+C|0,C=(I=B+I|0)>>>0>>0?C+1|0:C,B=(o=Ig(U=i[g+8>>2],P=U>>31,F,b=F>>31))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(m=i[g+12>>2],j=m>>31,W=R<<1,CA=W>>31),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(q=i[g+16>>2],V=q>>31,S,H=S>>31),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,fA=o=i[g+20>>2],h=Ig(o,BA=o>>31,Z=L<<1,QA=Z>>31),B=f+I|0,B=(C=h+C|0)>>>0>>0?B+1|0:B,pA=r=i[g+24>>2],I=(Q=Ig(r,sA=r>>31,h=Q+1|0,Y=h>>31))+C|0,C=f+B|0,C=I>>>0>>0?C+1|0:C,iA=i[g+28>>2],B=(Q=Ig(w=a(iA,19),X=w>>31,T=u<<1,oA=T>>31))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,NA=i[g+32>>2],B=Ig(_=a(NA,19),z=_>>31,n,J=n>>31),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,GA=i[g+36>>2],B=Ig(y=a(GA,19),l=y>>31,$=x<<1,EA=$>>31),I=f+I|0,c=C=B+C|0,Q=C>>>0>>0?I+1|0:I,I=Ig(F,b,N,d),C=f,E=Ig(p,M,v,aA=v>>31),B=f+C|0,B=(I=E+I|0)>>>0>>0?B+1|0:B,E=Ig(U,P,R,_A=R>>31),C=f+B|0,C=(I=E+I|0)>>>0>>0?C+1|0:C,B=(E=Ig(S,H,m,j))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(q,V,L,cA=L>>31),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(h,Y,o,BA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,E=Ig(r=a(r,19),AA=r>>31,u,tA=u>>31),B=f+I|0,B=(C=E+C|0)>>>0>>0?B+1|0:B,I=(E=Ig(n,J,w,X))+C|0,C=f+B|0,C=I>>>0>>0?C+1|0:C,B=(E=Ig(_,z,x,rA=x>>31))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(y,l,k,K),I=f+I|0,wA=C=C+B|0,O=C>>>0>>0?I+1|0:I,I=Ig(N,d,W,CA),B=f,C=(E=Ig(p,M,F,b))+I|0,I=f+B|0,I=C>>>0>>0?I+1|0:I,E=Ig(S,H,U,P),B=f+I|0,B=(C=E+C|0)>>>0>>0?B+1|0:B,I=(E=Ig(m,j,Z,QA))+C|0,C=f+B|0,C=I>>>0>>0?C+1|0:C,B=(E=Ig(h,Y,q,V))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(E=a(o,19),eA=E>>31,T,oA),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(n,J,r,AA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,o=Ig(w,X,$,EA),B=f+I|0,B=(C=o+C|0)>>>0>>0?B+1|0:B,I=(o=Ig(_,z,k,K))+C|0,C=f+B|0,C=I>>>0>>0?C+1|0:C,B=(o=Ig(y,l,G,IA))+I|0,I=f+C|0,MA=B,KA=I=B>>>0>>0?I+1|0:I,UA=B=B+33554432|0,bA=I=B>>>0<33554432?I+1|0:I,B=(67108863&I)<<6|B>>>26,I=(I>>26)+O|0,wA=o=B+wA|0,I=B>>>0>o>>>0?I+1|0:I,HA=o=o+16777216|0,I=(C=(B=o>>>0<16777216?I+1|0:I)>>25)+Q|0,I=(B=(o=(33554431&B)<<7|o>>>25)+c|0)>>>0>>0?I+1|0:I,D=C=B+33554432|0,o=I=C>>>0<33554432?I+1|0:I,i[g+72>>2]=B-(-67108864&C),I=Ig(N,d,Z,QA),C=f,Q=Ig(p,M,S,H),B=f+C|0,B=(I=Q+I|0)>>>0>>0?B+1|0:B,C=(Q=Ig(h,Y,U,P))+I|0,I=f+B|0,I=C>>>0>>0?I+1|0:I,B=Ig(Q=a(m,19),yA=Q>>31,T,oA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(c=Ig(O=a(q,19),hA=O>>31,n,J))+C|0,C=f+I|0,C=B>>>0>>0?C+1|0:C,c=Ig($,EA,E,eA),I=f+C|0,I=(B=c+B|0)>>>0>>0?I+1|0:I,C=(c=Ig(k,K,r,AA))+B|0,B=f+I|0,B=C>>>0>>0?B+1|0:B,c=Ig(w,X,G,IA),I=f+B|0,I=(C=c+C|0)>>>0>>0?I+1|0:I,B=Ig(_,z,F,b),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(c=Ig(y,l,W,CA))+C|0,C=f+I|0,e=B,nA=B>>>0>>0?C+1|0:C,I=Ig(h,Y,N,d),C=f,B=(c=Ig(p,M,L,cA))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,c=C=a(U,19),C=(t=Ig(C,DA=C>>31,u,tA))+B|0,B=f+I|0,B=C>>>0>>0?B+1|0:B,t=Ig(n,J,Q,yA),I=f+B|0,I=(C=t+C|0)>>>0>>0?I+1|0:I,B=Ig(O,hA,x,rA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(t=Ig(k,K,E,eA))+C|0,C=f+I|0,C=B>>>0>>0?C+1|0:C,t=Ig(r,AA,v,aA),I=f+C|0,I=(B=t+B|0)>>>0>>0?I+1|0:I,C=(t=Ig(F,b,w,X))+B|0,B=f+I|0,B=C>>>0>>0?B+1|0:B,t=Ig(_,z,R,_A),I=f+B|0,I=(C=t+C|0)>>>0>>0?I+1|0:I,B=Ig(y,l,S,H),I=f+I|0,kA=C=B+C|0,t=C>>>0>>0?I+1|0:I,I=Ig(I=a(N,19),I>>31,T,oA),C=f,B=Ig(p,M,h,Y),C=f+C|0,C=(I=B+I|0)>>>0>>0?C+1|0:C,B=(c=Ig(n,J,c,DA))+I|0,I=f+C|0,C=(Q=Ig(Q,yA,$,EA))+B|0,B=f+(B>>>0>>0?I+1|0:I)|0,B=C>>>0>>0?B+1|0:B,Q=Ig(k,K,O,hA),I=f+B|0,I=(C=Q+C|0)>>>0>>0?I+1|0:I,B=Ig(G,IA,E,eA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(Q=Ig(F,b,r,AA))+C|0,C=f+I|0,C=B>>>0>>0?C+1|0:C,Q=Ig(w,X,W,CA),I=f+C|0,I=(B=Q+B|0)>>>0>>0?I+1|0:I,C=(Q=Ig(_,z,S,H))+B|0,B=f+I|0,B=C>>>0>>0?B+1|0:B,Q=Ig(y,l,Z,QA),I=f+B|0,c=C=Q+C|0,yA=I=C>>>0>>0?I+1|0:I,DA=C=C+33554432|0,YA=I=C>>>0<33554432?I+1|0:I,B=I>>26,I=(67108863&I)<<6|C>>>26,C=B+t|0,t=Q=I+kA|0,I=C=I>>>0>Q>>>0?C+1|0:C,kA=Q=Q+16777216|0,Q=(33554431&(I=Q>>>0<16777216?I+1|0:I))<<7|Q>>>25,I=(I>>25)+nA|0,I=(C=Q+e|0)>>>0>>0?I+1|0:I,B=C,nA=C=C+33554432|0,Q=I=C>>>0<33554432?I+1|0:I,i[g+56>>2]=B-(-67108864&C),I=Ig(k,K,N,d),B=f,C=(e=Ig(p,M,x,rA))+I|0,I=f+B|0,I=C>>>0>>0?I+1|0:I,B=Ig(U,P,v,aA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=Ig(F,b,m,j),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,e=Ig(q,V,R,_A),B=f+I|0,B=(C=e+C|0)>>>0>>0?B+1|0:B,I=(e=Ig(S,H,fA,BA))+C|0,C=f+B|0,C=I>>>0>>0?C+1|0:C,B=(e=Ig(L,cA,pA,sA))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(iA,FA=iA>>31,h,Y),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(_,z,u,tA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,e=(B=C)+(C=Ig(y,l,n,J))|0,B=f+I|0,C=(I=o>>26)+(C=C>>>0>e>>>0?B+1|0:B)|0,D=B=(o=(67108863&o)<<6|D>>>26)+e|0,I=C=B>>>0>>0?C+1|0:C,e=B=B+16777216|0,o=I=B>>>0<16777216?I+1|0:I,i[g+76>>2]=D-(-33554432&B),I=Ig(S,H,N,d),C=f,D=Ig(p,M,R,_A),B=f+C|0,B=(I=D+I|0)>>>0>>0?B+1|0:B,D=Ig(U,P,L,cA),C=f+B|0,C=(I=D+I|0)>>>0>>0?C+1|0:C,B=(D=Ig(h,Y,m,j))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(O,hA,u,tA),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(n,J,E,eA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,C=(r=Ig(r,AA,x,rA))+C|0,B=f+I|0,I=(w=Ig(k,K,w,X))+C|0,C=f+(C>>>0>>0?B+1|0:B)|0,B=(_=Ig(_,z,v,aA))+I|0,I=f+(I>>>0>>0?C+1|0:C)|0,I=B>>>0<_>>>0?I+1|0:I,C=B,B=Ig(y,l,F,b),I=f+I|0,D=C=C+B|0,I=(I=C>>>0>>0?I+1|0:I)+(C=Q>>26)|0,_=Q=D+(B=(67108863&Q)<<6|nA>>>26)|0,I=B>>>0>Q>>>0?I+1|0:I,w=C=Q+16777216|0,Q=B=C>>>0<16777216?I+1|0:I,i[g+60>>2]=_-(-33554432&C),I=Ig(N,d,$,EA),B=f,C=(_=Ig(p,M,n,J))+I|0,I=f+B|0,I=C>>>0<_>>>0?I+1|0:I,B=Ig(k,K,U,P),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,_=Ig(m,j,G,IA),B=f+I|0,B=(C=_+C|0)>>>0<_>>>0?B+1|0:B,I=(_=Ig(F,b,q,V))+C|0,C=f+B|0,C=I>>>0<_>>>0?C+1|0:C,B=(_=Ig(W,CA,fA,BA))+I|0,I=f+C|0,I=B>>>0<_>>>0?I+1|0:I,C=B,B=Ig(S,H,pA,sA),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=C,C=Ig(iA,FA,Z,QA),I=f+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,_=C=NA,C=(G=Ig(C,r=C>>31,h,Y))+B|0,B=f+I|0,I=(y=Ig(y,l,T,oA))+C|0,C=f+(C>>>0>>0?B+1|0:B)|0,B=I>>>0>>0?C+1|0:C,C=I,I=(I=o>>25)+B|0,I=(C=C+(o=(33554431&o)<<7|e>>>25)|0)>>>0>>0?I+1|0:I,B=C,y=C=C+33554432|0,o=I=C>>>0<33554432?I+1|0:I,i[g+80>>2]=B-(-67108864&C),C=Q>>25,B=(Q=(33554431&Q)<<7|w>>>25)+(MA-(I=-67108864&UA)|0)|0,I=C+(KA-((I>>>0>MA>>>0)+bA|0)|0)|0,I=B>>>0>>0?I+1|0:I,I=((67108863&(I=(C=B+33554432|0)>>>0<33554432?I+1|0:I))<<6|C>>>26)+(G=wA-(-33554432&HA)|0)|0,i[g+68>>2]=I,i[g+64>>2]=B-(-67108864&C),I=Ig(n,J,N,d),B=f,C=(Q=Ig(p,M,u,tA))+I|0,I=f+B|0,I=C>>>0>>0?I+1|0:I,B=(Q=Ig(U,P,x,rA))+C|0,C=f+I|0,C=B>>>0>>0?C+1|0:C,I=(Q=Ig(k,K,m,j))+B|0,B=f+C|0,B=I>>>0>>0?B+1|0:B,C=(Q=Ig(q,V,v,aA))+I|0,I=f+B|0,I=C>>>0>>0?I+1|0:I,B=Ig(F,b,fA,BA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=Ig(R,_A,pA,sA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(Q=Ig(S,H,iA,FA))+C|0,C=f+I|0,C=B>>>0>>0?C+1|0:C,Q=(I=Ig(_,r,L,cA))+B|0,B=f+C|0,B=I>>>0>Q>>>0?B+1|0:B,C=Q,Q=Ig(I=GA,I>>31,h,Y),I=f+B|0,B=C=C+Q|0,I=(I=C>>>0>>0?I+1|0:I)+(C=o>>26)|0,I=(B=B+(o=(67108863&o)<<6|y>>>26)|0)>>>0>>0?I+1|0:I,I=(C=B+16777216|0)>>>0<16777216?I+1|0:I,i[g+84>>2]=B-(-33554432&C),o=t-(-33554432&kA)|0,Q=c-(B=-67108864&DA)|0,p=yA-((B>>>0>c>>>0)+YA|0)|0,I=Ig((33554431&(B=I))<<7|C>>>25,I>>=25,19,0),C=f+p|0,I=I>>>0>(B=I+Q|0)>>>0?C+1|0:C,I=((67108863&(I=(C=B+33554432|0)>>>0<33554432?I+1|0:I))<<6|C>>>26)+o|0,i[g+52>>2]=I,i[g+48>>2]=B-(-67108864&C),QI(A,g+48|0)),s=g+256|0,0|SA},Rg:function(A,I){A|=0;var g,B=0;return s=g=s+-64|0,FI(g,I|=0,32,0),C[0|g]=248&o[0|g],C[g+31|0]=63&o[g+31|0]|64,I=i[g+20>>2],B=i[g+16>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[g+12>>2],B=i[g+8>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[g+4>>2],B=i[g>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=i[g+28>>2],B=i[g+24>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,XC(g,64),s=g- -64|0,0},Sg:Wg,Tg:bI,Ug:vg,Vg:LI,Wg:BB,Xg:eB,Yg:cB,Zg:BB,_g:aB,$g:cB,ah:function(A,I,g,C,B){return 0|Xg(A|=0,I|=0,g|=0,C|=0,B|=0)},bh:function(A,I,g,C,B,Q,i,o){return 0|mg(A|=0,I|=0,(A=0)|(g|=0),C|=0,B|=0,A|(Q|=0),i|=0,o|=0)},ch:function(A,I,g,C,B,Q){return 0|ug(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)},dh:function(A,I,g,C,B){return 0|jg(A|=0,I|=0,g|=0,C|=0,B|=0)},eh:function(A,I,g,C,B,Q,i){return 0|Cg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},fh:function(A,I,g,C,B,Q){return 0|xg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)},gh:PC,hh:PC,ih:BB,jh:_B,kh:cB,lh:function(){return 1538},mh:Tg,nh:zg,oh:PC,ph:BB,qh:eB,rh:cB,sh:function(A,I,g,C,B){return 0|DC(A|=0,I|=0,g|=0,C|=0,B|=0)},th:function(A,I,g,C,B,Q,i,o){return 0|oC(A|=0,I|=0,(A=0)|(g|=0),C|=0,B|=0,A|(Q|=0),i|=0,o|=0)},uh:function(A,I,g,C,B,Q){return 0|aC(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)},vh:PC,wh:Tg,xh:function(A,I,g,C,B,Q,i,o){var E;return A|=0,I|=0,g|=0,C|=0,Q|=0,i|=0,s=E=s-32|0,wA(E,B|=0,o|=0,0),A=oC(o=A,I,(A=0)|g,C,B+16|0,A|Q,i,E),XC(E,32),s=E+32|0,0|A},yh:zg,zh:BB,Ah:_B,Bh:cB,Ch:PC,Dh:CB,Eh:BB,Fh:gB,Gh:oI,Hh:NC,Ih:GC,Jh:function(){return 1089},Kh:function(){var A,I;return s=A=s-16|0,C[A+15|0]=0,I=0|t(36800,A+15|0,0),s=A+16|0,0|I},Lh:$g,Mh:function(A){var I,g=0,B=0;if(s=I=s-16|0,(A|=0)>>>0>=2){for(g=(0-A>>>0)%(A>>>0)|0;C[I+15|0]=0,g>>>0>(B=0|t(36800,I+15|0,0))>>>0;);g=(B>>>0)%(A>>>0)|0}return s=I+16|0,0|g},Nh:ag,Oh:function(A,I,g){jg(A|=0,I|=0,0,34336,g|=0)},Ph:BB,Qh:function(){var A=0,I=0;return(A=i[9539])&&(A=i[A+20>>2])&&(I=0|pB[0|A]()),0|I},Rh:function(A,I,g){A|=0,I|=0;var B,i=0,o=0,E=0;if(s=B=s-16|0,g|=0)r(1346,1192,198,1092),Q();else{if(I|g)for(;C[B+15|0]=0,o=A+i|0,E=0|t(36800,B+15|0,0),C[0|o]=E,(0|I)!=(0|(i=i+1|0)););s=B+16|0}},Sh:function(A,I,g,B){A|=0,g|=0;var i=0,E=0,a=0;if(!((B|=0)>>>0>2147483646|B<<1>>>0>=(I|=0)>>>0)){if(I=0,B){for(;i=(I<<1)+A|0,E=15&(a=o[I+g|0]),C[i+1|0]=22272+((E<<8)+(E+65526&55552)|0)>>>8,E=i,i=a>>>4|0,C[0|E]=87+((i+65526>>>8&217)+i|0),(0|B)!=(0|(I=I+1|0)););I=B<<1}else I=0;return C[I+A|0]=0,0|A}rC(),Q()},Th:function(A,I,g,B,Q,E,a){A|=0,I|=0,g|=0,Q|=0,E|=0,a|=0;var _=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0;A:{I:{g:{C:{B:{Q:{i:{o:{E:{if(B|=0){if(Q)break E;for(c=1,Q=0;;){if(!(255&((s=(65526+(t=(223&(e=o[g+_|0]))-55&255)^t+65520)>>>8|0)|(h=65526+(e^=48)>>>8|0))))break i;if(I>>>0<=y>>>0)break o;if(t=t&s|e&h,255&r?(C[A+y|0]=Q|t,y=y+1|0):Q=t<<4,r=~r,(0|(_=_+1|0))==(0|B))break}_=B;break i}if(A=0,!a)break A;break g}for(;;){E:{a:{_:{c:{t:{if(!(255&((e=(65526+(c=(223&(t=o[g+_|0]))-55&255)^c+65520)>>>8|0)|(h=65526+(s=48^t)>>>8|0)))){if(255&r)break Q;if(c=0,!kI(Q,t))break C;if((_=r=_+1|0)>>>0>>0)break t;break C}if(I>>>0<=y>>>0)break o;if(c=c&e|s&h,!(255&r))break c;C[A+y|0]=c|D,y=y+1|0;break E}for(;;){if(!(255&((s=(65526+(e=(223&(t=o[g+_|0]))-55&255)^e+65520)>>>8|0)|(D=65526+(h=48^t)>>>8|0)))){if(!kI(Q,t))break C;if((_=_+1|0)>>>0>>0)continue;break _}break}if(I>>>0<=y>>>0)break a;c=e&s|h&D}D=c<<4,r=0;break E}_=B>>>0>r>>>0?B:r;break C}r=0;break o}if(r=~r,c=1,!((_=_+1|0)>>>0>>0))break}break i}i[9404]=68,c=0}if(!(255&r))break B}i[9404]=28,c=-1,_=_-1|0,y=0;break C}y=c?y:0,c=c-1|0}if(!a){if((0|B)!=(0|_))break I;A=c;break A}}i[a>>2]=g+_,A=c;break A}i[9404]=28,A=-1}return E&&(i[E>>2]=y),0|A},Uh:function(A,I){A|=0;var g=0;return 1!=(-7&(I|=0))&&(rC(),Q()),1+((3&(g=(g=A)+a(A=(A>>>0)/3|0,-3)|0)?2&I?g+1|0:4:0)+(A<<2)|0)|0},Vh:XA,Wh:pA,Xh:function(){var A=0;return i[9537]?A=1:($g(),ag(38128,16),i[9537]=1,A=0),0|A},Yh:function(A,I,g,B,E){A|=0,I|=0,g|=0,E|=0;var a,_=0,c=0,t=0;s=a=s-16|0;A:{if(B|=0){if((_=B-1|0)&B?(c=~g,_=_-((g>>>0)%(B>>>0)|0)|0):_&=c=~g,_>>>0>=c>>>0)break A;if((g=g+_|0)>>>0>=E>>>0)I=-1;else for(A&&(i[A>>2]=g+1),A=I+g|0,I=0,C[a+15|0]=0,g=0;c=E=A-g|0,t=o[0|E]&o[a+15|0],E=(g^_)-1>>>24|0,C[0|c]=t|128&E,C[a+15|0]=E|o[a+15|0],(0|B)!=(0|(g=g+1|0)););}else I=-1;return s=a+16|0,0|I}rC(),Q()},Zh:function(A,I,g,C){A|=0,I|=0,g|=0,C|=0;var B,Q=0,E=0,a=0,_=0,c=0;if(i[12+(B=s-16|0)>>2]=0,C-1>>>0>>0){for(c=(Q=g-1|0)+I|0,g=0,I=0;_=((128^(E=o[c-g|0]))-1&i[B+12>>2]-1&a-1)>>>8&1,i[B+12>>2]=i[B+12>>2]|0-_&g,I|=_,a|=E,(0|C)!=(0|(g=g+1|0)););i[A>>2]=Q-i[B+12>>2],A=(255&I)-1|0}else A=-1;return 0|A},_h:function(){return 1547},$h:function(){return 26},ai:tB,bi:hB,ci:cI,di:sC,ei:function(A,I,g){A|=0;var C,B=0;return s=C=s-32|0,B=-1,CI(C,g|=0,I|=0)||(B=yA(A,35584,C,0)),s=C+32|0,0|B},fi:dg,gi:function(A,I,g,C,B,Q,i,o){var E,a;return A|=0,I|=0,g|=0,Q|=0,a=C|=0,C=B|=0,s=E=s+-64|0,CI(E+32|0,o|=0,i|=0)?B=-1:(B=-1,yA(E,35584,E+32|0,0)||(B=EI(A,I,g,a,C,Q,E),XC(E,32))),s=E- -64|0,0|B},hi:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(rC(),Q()),0|EI(A+16|0,A,I,g,C,B,i)},ii:function(A,I,g,C,B,Q,i){return 0|ig(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},ji:lg,ki:function(A,I,g,C,B,Q,i,o){var E,a;return A|=0,I|=0,g|=0,Q|=0,a=C|=0,C=B|=0,s=E=s+-64|0,CI(E+32|0,o|=0,i|=0)?B=-1:(B=-1,yA(E,35584,E+32|0,0)||(B=sI(A,I,g,a,C,Q,E),XC(E,32))),s=E- -64|0,0|B},li:Dg,mi:function(A,I,g,C,B,Q,i){return 0|Ag(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},ni:BB,oi:BB,pi:BB,qi:BB,ri:_B,si:CB,ti:EB,ui:function(A,I,g,B,Q){A|=0,I|=0,Q|=0;var o,E,a,_,c=0,t=0;return c=g|=0,g=B|=0,_=0|c,c=B=s,s=o=B-512&-64,B=-1,sC(E=o- -64|0,a=o+32|0)||(iC(B=o+128|0,0,0,24),lC(B,E,32,0),lC(B,Q,32,0),eC(B,t=o+96|0,24),B=ig(A+32|0,I,_,g,t,Q,a),I=i[o+92>>2],g=i[o+88>>2],C[A+24|0]=g,C[A+25|0]=g>>>8,C[A+26|0]=g>>>16,C[A+27|0]=g>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[o+84>>2],g=i[o+80>>2],C[A+16|0]=g,C[A+17|0]=g>>>8,C[A+18|0]=g>>>16,C[A+19|0]=g>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[o+76>>2],g=i[o+72>>2],C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[o+68>>2],g=i[o+64>>2],C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,XC(a,32),XC(E,32),XC(t,24)),s=c,0|B},vi:function(A,I,g,C,B,Q){A|=0,I|=0,B|=0,Q|=0;var i,o,E=0;return o=E=s,s=i=E-448&-64,E=-1,!(C|=0)&(g|=0)>>>0>=48|C&&(iC(E=i- -64|0,0,0,24),lC(E,I,32,0),lC(E,B,32,0),eC(E,B=i+32|0,24),E=Ag(A,I+32|0,g-32|0,C-(g>>>0<32)|0,B,I,Q)),s=o,0|E},wi:oB,xi:function(A){var I,g=0;return s=I=s-160|0,NI(A|=0)&&(KI(A)||MA(I,A)||jA(I)&&(g=!!(0|gA(I)))),s=I+160|0,0|g},yi:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return s=C=s-800|0,Q=-1,MA(B=C+640|0,I|=0)||jA(B)&&(MA(I=C+480|0,g)||jA(I)&&($A(C,I),sA(I=C+160|0,B,C),kg(g=C+320|0,I),tg(A,g),Q=0)),s=C+800|0,0|Q},zi:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return s=C=s-800|0,Q=-1,MA(B=C+640|0,I|=0)||jA(B)&&(MA(I=C+480|0,g)||jA(I)&&($A(C,I),hA(I=C+160|0,B,C),kg(g=C+320|0,I),tg(A,g),Q=0)),s=C+800|0,0|Q},Ai:function(A,I){return M(A|=0,I|=0),0},Bi:function(A){var I;A|=0,s=I=s-32|0,ag(I,32),M(A,I),s=I+32|0},Ci:Mg,Di:kA,Ei:xA,Fi:uA,Gi:cA,Hi:dA,Ii:IA,Ji:MC,Ki:BB,Li:gB,Mi:BB,Ni:gB,Oi:BB,Pi:function(A){var I;return s=I=s-160|0,A=EA(I,A|=0),s=I+160|0,0|!A},Qi:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return s=C=s-800|0,Q=-1,EA(B=C+640|0,I|=0)||EA(I=C+480|0,g)||($A(C,I),sA(I=C+160|0,B,C),kg(g=C+320|0,I),W(A,g),Q=0),s=C+800|0,0|Q},Ri:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return s=C=s-800|0,Q=-1,EA(B=C+640|0,I|=0)||EA(I=C+480|0,g)||($A(C,I),hA(I=C+160|0,B,C),kg(g=C+320|0,I),W(A,g),Q=0),s=C+800|0,0|Q},Si:function(A,I){return jI(A|=0,I|=0),0},Ti:function(A){var I;A|=0,s=I=s+-64|0,ag(I,64),jI(A,I),s=I- -64|0},Ui:function(A){Mg(A|=0)},Vi:function(A,I){return 0|kA(A|=0,I|=0)},Wi:function(A,I){xA(A|=0,I|=0)},Xi:function(A,I){uA(A|=0,I|=0)},Yi:function(A,I,g){cA(A|=0,I|=0,g|=0)},Zi:function(A,I,g){IA(A|=0,I|=0,g|=0)},_i:MC,$i:function(A,I){dA(A|=0,I|=0)},aj:BB,bj:gB,cj:gB,dj:BB,ej:function(A,I,g,C,B,Q,i,o,E,a){return 0|rg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0,a|=0)},fj:CB,gj:cB,hj:hB,ij:cB,jj:BB,kj:function(){return 102},lj:function(){return 1575},mj:function(){return 32768},nj:cB,oj:jC,pj:cB,qj:function(){return 524288},rj:jC,sj:LC,tj:vC,uj:function(A,I,g,C,B,Q,o,E,a,_){var c,t,r;I|=0,g|=0,C|=0,B|=0,Q|=0,o|=0,a|=0,_|=0,t=0|(E|=0),s=E=s-16|0,r=I|=0,c=bg(A|=0,0,I),A=0|B;A:if(1==(0|(B=g|Q))|B>>>0>1)i[9404]=22,A=-1;else if(!g&I>>>0>=16|g){if(bA(t,a,_,E+12|0,E+8|0,E+4|0),(0|C)==(0|c)){i[9404]=28,A=-1;break A}B=A,A=31&(I=i[E+12>>2]),(63&I)>>>0>=32?(I=1<>>32-A,A=rg(C,B,o,32,g,I,i[E+4>>2],i[E+8>>2],c,r)}else i[9404]=28,A=-1;return s=E+16|0,0|A},vj:function(A,I,g,B,Q,E,a){I|=0,g|=0,B|=0,E|=0,a|=0;var _,c,t,r=0,e=0,y=0,h=0,D=0,p=0,w=0;r=Q|=0,r|=Q=0,s=_=s-128|0,c=bg(A|=0,0,102),D=22,t=g|Q;A:{I:{if(!B){bA(r,E,a,_+16|0,_+12|0,_+8|0),ag(e=_+96|0,32),D=28,g=_+32|0,E=i[_+16>>2],a=Ig(A=i[_+12>>2],0,B=i[_+8>>2],0);g:if(!(!(r=f)&a>>>0>1073741823|r|E>>>0>63)&&(C[0|g]=36,C[g+1|0]=55,C[g+2|0]=36,C[g+4|0]=o[1024+(63&B)|0],C[g+3|0]=o[E+1024|0],C[g+8|0]=o[1024+(B>>>24&63)|0],C[g+7|0]=o[1024+(B>>>18&63)|0],C[g+6|0]=o[1024+(B>>>12&63)|0],C[g+5|0]=o[1024+(B>>>6&63)|0],(B=g+9|0)&&(0|B)!=(0|(y=g+58|0))&&(C[0|B]=o[1024+(63&A)|0],1!=(0|(B=y-B|0))&&(C[g+10|0]=o[1024+(A>>>6&63)|0],2!=(0|B)&&(C[g+11|0]=o[1024+(A>>>12&63)|0],3!=(0|B)&&(C[g+12|0]=o[1024+(A>>>18&63)|0],4!=(0|B)&&(C[g+13|0]=o[1024+(A>>>24&63)|0],E=g+14|0))))))){for(r=y-E|0,A=0;;){if(B=E,!(A>>>0>=32)){if(E=o[A+e|0],(p=(a=A+1|0)>>>0>=32)?h=0:(E=o[a+e|0]<<8|E,(a=A+2|0)>>>0>=32?h=0:(E=o[a+e|0]<<16|E,h=1,a=A+3|0)),A=a,!r)break g;if(C[0|B]=o[1024+(63&E)|0],1==(0|r))break g;if(C[B+1|0]=o[1024+(E>>>6&63)|0],w=B+r|0,a=B+2|0,!p){if(2==(0|r))break g;if(C[B+2|0]=o[1024+(E>>>12&63)|0],a=B+3|0,h){if(3==(0|r))break g;C[B+3|0]=o[1024+(E>>>18|0)|0],a=B+4|0}}if(r=w-(E=a)|0,E)continue;break g}break}B>>>0>=y>>>0||(C[0|B]=0,Q=g)}if(Q){if(_C(A=_+20|0))break I;if(I=TA(A,I,t,g,c),Rg(A),I){A=0;break A}}}i[9404]=D}A=-1}return s=_+128|0,0|A},wj:function(A,I,g,C){I|=0,C|=0;var B,Q,i=0;B=A|=0,Q=g|=0,g=0,s=C=s-128|0;A:{I:{for(;;){if(!o[g+B|0]){A=g;break I}if(!o[B+(A=g+1|0)|0])break I;if(!o[B+(A=g+2|0)|0])break I;if(102==(0|(g=g+3|0)))break}g=-1;break A}g=-1,101==(0|A)&&(_C(i=C+4|0)||(bg(A=C+16|0,0,102),I=TA(i,I,Q,B,A),Rg(i),I&&(g=MI(A,B,102),XC(A,102))))}return s=C+128|0,0|g},xj:function(A,I,g,C){var B,Q;Q=A|=0,s=B=s-32|0,bA(I|=0,g|=0,C|=0,B+28|0,B+20|0,B+12|0),A=0;A:{I:{g:{for(;;){if(o[A+Q|0]){if(o[Q+(I=A+1|0)|0]&&o[Q+(I=A+2|0)|0]){if(102!=(0|(A=A+3|0)))continue;break g}}else I=A;break}if(101==(0|I)){if(g=B+8|0,C=B+16|0,A=0,36!=o[0|Q]|55!=o[Q+1|0]|36!=o[Q+2|0]||(I=uI(o[Q+3|0]),i[B+24>>2]=I?I-1024|0:0,I&&(I=PI(g,Q+4|0))&&(A=PI(C,I))),A)break I;i[9404]=28,A=-1;break A}}i[9404]=28,A=-1;break A}A=1,i[B+28>>2]!=i[B+24>>2]|i[B+12>>2]!=i[B+8>>2]||(A=i[B+20>>2]!=i[B+16>>2])}return s=B+32|0,0|A},yj:function(A,I,g){return 0|ZA(A|=0,I|=0,g|=0,1)},zj:function(A,I,g){return 0|ZA(A|=0,I|=0,g|=0,0)},Aj:function(A,I){return 0|II(A|=0,I|=0,1)},Bj:function(A,I){return 0|II(A|=0,I|=0,0)},Cj:BB,Dj:BB,Ej:function(A,I,g){A|=0,I|=0;var B,Q=0;return s=B=s-320|0,Q=-1,EA(B,g|=0)||(C[0|A]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],C[A+31|0]=127&o[I+31|0],u(I=B+160|0,A,B),W(A,I),Q=GI(A,32)?-1:0),s=B+320|0,0|Q},Fj:function(A,I){var g;return I|=0,s=g=s-160|0,C[0|(A|=0)]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],C[A+31|0]=127&o[I+31|0],nA(g,A),W(A,g),A=GI(A,32),s=g+160|0,0|(A?-1:0)},Gj:BB,Hj:BB,Ij:dg,Jj:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(rC(),Q()),EI(A+16|0,A,I,g,C,B,i),0},Kj:lg,Lj:Dg,Mj:BB,Nj:_B,Oj:CB,Pj:EB,Qj:CB,Rj:CB,Sj:function(A,I,g,B,Q){A|=0,I|=0,g|=0,B|=0;var i,E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0;if(p=1886610805^(a=o[0|(Q|=0)]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),D=1936682341^(_=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24),a^=1852142177,c=1819895653^_,w=1852075907^(_=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24),n=1685025377^(Q=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24),t=2037671283^_,_=1952801890^Q,s=g,(0|(E=(g+I|0)-(i=7&g)|0))!=(0|I))for(;g=(e=_^(k=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24))+c|0,t=B=a+(Q=t^(y=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24))|0,r=g=B>>>0>>0?g+1|0:g,a=B,B=g,g=D+n|0,g=(_=p+w|0)>>>0

>>0?g+1|0:g,h=(c=UI(w,n,13)^_)+a|0,B=(a=f^g)+B|0,a=UI(c,a,17)^h,p=UI(a,B=(c=c>>>0>h>>>0?B+1|0:B)^f,13),D=f,e=UI(Q,e,16),Q=r^f,e^=t,r=UI(_,g,32),g=f+Q|0,g=(t=B)+(B=(_=e+r|0)>>>0>>0?g+1|0:g)|0,r=g=(t=a+_|0)>>>0<_>>>0?g+1|0:g,p=UI(a=t^p,g^=D,17),D=f,e=UI(e,Q,21),Q=B^f,e^=_,_=UI(h,c,32),B=f+Q|0,g=(_=(c=e+_|0)>>>0<_>>>0?B+1|0:B)+g|0,w=(a=a+c|0)^p,B=g=a>>>0>>0?g+1|0:g,n=g^D,g=UI(e,Q,16),e=_^=f,h=UI(g^=c,_,21),c=f,r=(_=UI(t,r,32))+g|0,g=f+e|0,t=r^h,_=(g=_>>>0>r>>>0?g+1|0:g)^c,a=UI(a,B,32),c=f,p=y^r,D=g^k,(0|E)!=(0|(I=I+8|0)););switch(y=0,Q=s<<24,i-1|0){case 6:Q|=o[I+6|0]<<16;case 5:Q|=o[I+5|0]<<8;case 4:Q|=o[I+4|0];case 3:y|=(g=o[I+3|0])<<24,Q|=B=g>>>8|0;case 2:y|=(B=o[I+2|0])<<16,Q|=g=B>>>16|0;case 1:y|=(g=o[I+1|0])<<8,Q|=B=g>>>24|0;case 0:y=o[0|I]|y}return h=Q,I=Q^_,B=UI(Q=t^y,I,16),I=I+c|0,r=I=(t=Q+a|0)>>>0>>0?I+1|0:I,s=UI(Q=B^t,I^=g=f,21),_=f,g=D+n|0,B=g=(a=p+w|0)>>>0

>>0?g+1|0:g,c=Q,Q=UI(a,g,32),g=f+I|0,I=_,_=g=Q>>>0>(c=c+Q|0)>>>0?g+1|0:g,p=UI(Q=c^s,I^=g,16),D=f,g=(a=e=UI(w,n,13)^a)+t|0,B=(t=f^B)+r|0,r=Q,Q=UI(g,B=g>>>0>>0?B+1|0:B,32),I=f+I|0,k=Q=(a=Q>>>0>(s=r+Q|0)>>>0?I+1|0:I)^D,r=p^=s,D=UI(e,t,17)^g,g=(e=f^B)+_|0,I=g=(B=c=(I=D)+c|0)>>>0>>0?g+1|0:g,_=UI(B,g,32),g=f+Q|0,c=(t=_+r|0)^y,h^=r=_>>>0>t>>>0?g+1|0:g,Q=UI(D,e,13)^B,B=UI(Q,I^=f,17),I=I+a|0,Q=B^(_=Q+s|0),B=I=_>>>0>>0?I+1|0:I,g=(I^=g=f)+h|0,g=Q>>>0>(c=Q+c|0)>>>0?g+1|0:g,Q=UI(Q,I,13)^c,a=g,s=UI(Q,I=g^f,17),y=f,h=UI(p,k,21),e=r^f,r=t^h,_=238^UI(_,B,32),g=f+e|0,g=(h=I)+(I=(B=r+_|0)>>>0<_>>>0?g+1|0:g)|0,_=g=(t=B+Q|0)>>>0>>0?g+1|0:g,y=UI(Q=t^s,g^=y,13),h=f,r=UI(r,e,16),e=I^f,s=B^r,B=UI(c,a,32),I=f+e|0,B=(c=g)+(g=B>>>0>(a=s+B|0)>>>0?I+1|0:I)|0,c=B=(r=Q+a|0)>>>0>>0?B+1|0:B,y=UI(Q=y^r,I=B^h,17),h=f,B=UI(s,e,21),e=g^f,s=B^a,B=UI(t,_,32),g=f+e|0,g=(B=B>>>0>(a=s+B|0)>>>0?g+1|0:g)+I|0,_=g=(t=Q+a|0)>>>0>>0?g+1|0:g,y=UI(Q=t^y,I=g^h,13),h=f,g=UI(s,e,16),e=B^f,s=g^a,g=UI(r,c,32),B=f+e|0,g=(B=g>>>0>(a=s+g|0)>>>0?B+1|0:B)+I|0,c=g=(r=Q+a|0)>>>0>>0?g+1|0:g,y=UI(Q=y^r,I=g^h,17),h=f,g=UI(s,e,21),e=B^f,s=g^a,a=UI(t,_,32),g=f+e|0,I=(g=(B=s+a|0)>>>0>>0?g+1|0:g)+I|0,a=I=(_=B+Q|0)>>>0>>0?I+1|0:I,y=UI(Q=_^y,I^=h,13),h=f,t=UI(s,e,16),s=g^f,t^=B,c=UI(r,c,32),g=f+s|0,g=(r=I)+(I=(B=t+c|0)>>>0>>0?g+1|0:g)|0,c=g=(r=B+Q|0)>>>0>>0?g+1|0:g,y=UI(Q=y^r,g^=h,17),h=f,t=UI(t,s,21),s=I^f,t^=B,B=UI(_,a,32),I=f+s|0,B=(_=g)+(g=B>>>0>(a=t+B|0)>>>0?I+1|0:I)|0,_=Q=(B=(I=Q+a|0)>>>0>>0?B+1|0:B)^h,y^=I,t=UI(t,s,16),e=g^f,a=(t^=a)+(c=UI(r,c,32))|0,g=f+e|0,I=UI(I,B,32),s=f,B=g=a>>>0>>0?g+1|0:g,c=A,t=(r=UI(t,e,21)^a)^I^a^y,C[0|c]=t,C[c+1|0]=t>>>8,C[c+2|0]=t>>>16,C[c+3|0]=t>>>24,g=(e=s^g^Q)^(Q=g^f),C[c+4|0]=g,C[c+5|0]=g>>>8,C[c+6|0]=g>>>16,C[c+7|0]=g>>>24,g=Q+s|0,g=(c=I)>>>0>(I=I+r|0)>>>0?g+1|0:g,h=I,Q=UI(r,Q,16)^I,r=g,s=I=g^f,B=(g=_)+B|0,_=a=(c=y^=221)+a|0,a=UI(a,B=a>>>0>>0?B+1|0:B,32),I=f+I|0,I=a>>>0>(t=a+Q|0)>>>0?I+1|0:I,a=UI(Q,s,21)^t,c=I,D=UI(a,Q=I^f,16),e=f,I=UI(y,g,13),g=r+(s=B^f)|0,I=g=(B=h+(y=I^_)|0)>>>0>>0?g+1|0:g,_=a,a=UI(B,g,32),g=f+Q|0,e=g=(_=a>>>0>(r=_+a|0)>>>0?g+1|0:g)^e,h=UI(D^=r,g,21),a=f,g=UI(y,s,17),I=c+(s=I^f)|0,B=I=(Q=t+(y=g^B)|0)>>>0>>0?I+1|0:I,I=UI(Q,I,32),g=e+f|0,e=g=(c=a)^(a=(I=I+D|0)>>>0>>0?g+1|0:g),c=I,h=UI(D=h^I,g,16),t=f,I=UI(y,s,13),g=_+(s=B^f)|0,I=UI(Q=r+(y=I^Q)|0,g=Q>>>0>>0?g+1|0:g,32),B=e+f|0,e=B=(_=(I=I+D|0)>>>0>>0?B+1|0:B)^t,r=I,h=UI(D=h^I,B,21),t=f,I=UI(y,s,17),g=a+(s=g^f)|0,B=g=(Q=c+(y=I^Q)|0)>>>0>>0?g+1|0:g,I=UI(Q,g,32),g=e+f|0,e=g=(a=(I=I+D|0)>>>0>>0?g+1|0:g)^t,c=I,h=UI(D=h^I,g,16),t=f,I=UI(y,s,13),B=_+(s=B^f)|0,g=UI(Q=r+(y=I^Q)|0,B=Q>>>0>>0?B+1|0:B,32),I=e+f|0,_=g=g+D|0,h=UI(h^g,(I=g>>>0>>0?I+1|0:I)^t,21),t=f,r=UI(y,s,17),g=B^f,r=UI(B=Q^r,g,13),g=g+a|0,g=(B=B+c|0)>>>0>>0?g+1|0:g,Q=UI(a=B^r,g^=Q=f,17)^h,B=f^t,g=I+g|0,I=UI(I=a+_|0,g=I>>>0<_>>>0?g+1|0:g,32)^Q^I,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=g^f^B,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,0},Tj:function(A,I,g,B,Q){A|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-112|0,a=I|=0,I|(_=g|=0)){I=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,i[E+24>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,i[E+28>>2]=I,I=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+16>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+20>>2]=I,I=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[E>>2]=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[E+4>>2]=I,I=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+8>>2]=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,i[E+12>>2]=I,I=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,g=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[E+104>>2]=0,i[E+108>>2]=0,i[E+96>>2]=I,i[E+100>>2]=g;A:{if(!_&a>>>0>=64|_){for(;IC(A,E+96|0,E,0),I=o[E+104|0]+1|0,C[E+104|0]=I,I=o[E+105|0]+(I>>>8|0)|0,C[E+105|0]=I,I=o[E+106|0]+(I>>>8|0)|0,C[E+106|0]=I,I=o[E+107|0]+(I>>>8|0)|0,C[E+107|0]=I,I=o[E+108|0]+(I>>>8|0)|0,C[E+108|0]=I,I=o[E+109|0]+(I>>>8|0)|0,C[E+109|0]=I,I=o[E+110|0]+(I>>>8|0)|0,C[E+110|0]=I,C[E+111|0]=o[E+111|0]+(I>>>8|0),A=A- -64|0,_=_-1|0,!(_=(a=a+-64|0)>>>0<4294967232?_+1|0:_)&a>>>0>63|_;);if(!(a|_))break A}if(g=0,IC(E+32|0,E+96|0,E,0),B=3&a,I=0,!_&a>>>0>=4|_)for(_=60&a,Q=0;a=t=E+32|0,C[A+I|0]=o[a+I|0],C[(c=1|I)+A|0]=o[a+c|0],C[(c=2|I)+A|0]=o[a+c|0],C[(a=3|I)+A|0]=o[a+t|0],I=I+4|0,(0|_)!=(0|(Q=Q+4|0)););if(B)for(;C[A+I|0]=o[(E+32|0)+I|0],I=I+1|0,(0|B)!=(0|(g=g+1|0)););}XC(E+32|0,64),XC(E,32)}return s=E+112|0,0},Uj:function(A,I,g,B,Q,E){A|=0,I|=0,Q|=0,E|=0;var a,_=0,c=0;if(s=a=s-112|0,_=g|=0,(B|=0)|g){g=o[E+28|0]|o[E+29|0]<<8|o[E+30|0]<<16|o[E+31|0]<<24,i[a+24>>2]=o[E+24|0]|o[E+25|0]<<8|o[E+26|0]<<16|o[E+27|0]<<24,i[a+28>>2]=g,g=o[E+20|0]|o[E+21|0]<<8|o[E+22|0]<<16|o[E+23|0]<<24,i[a+16>>2]=o[E+16|0]|o[E+17|0]<<8|o[E+18|0]<<16|o[E+19|0]<<24,i[a+20>>2]=g,g=o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24,i[a>>2]=o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24,i[a+4>>2]=g,g=o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24,i[a+8>>2]=o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24,i[a+12>>2]=g,g=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,Q=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[a+104>>2]=0,i[a+108>>2]=0,i[a+96>>2]=g,i[a+100>>2]=Q;A:{if(!B&_>>>0>=64|B){for(;;){for(g=0,IC(a+32|0,a+96|0,a,0);E=a+32|0,C[A+g|0]=o[E+g|0]^o[I+g|0],C[(Q=1|g)+A|0]=o[Q+E|0]^o[I+Q|0],64!=(0|(g=g+2|0)););if(g=o[a+104|0]+1|0,C[a+104|0]=g,g=o[a+105|0]+(g>>>8|0)|0,C[a+105|0]=g,g=o[a+106|0]+(g>>>8|0)|0,C[a+106|0]=g,g=o[a+107|0]+(g>>>8|0)|0,C[a+107|0]=g,g=o[a+108|0]+(g>>>8|0)|0,C[a+108|0]=g,g=o[a+109|0]+(g>>>8|0)|0,C[a+109|0]=g,g=o[a+110|0]+(g>>>8|0)|0,C[a+110|0]=g,C[a+111|0]=o[a+111|0]+(g>>>8|0),I=I- -64|0,A=A- -64|0,B=B-1|0,!(!(B=(_=_+-64|0)>>>0<4294967232?B+1|0:B)&_>>>0>63|B))break}if(!(B|_))break A}if(g=0,IC(a+32|0,a+96|0,a,0),E=1&_,1!=(0|_)|B)for(_&=62,B=0;c=a+32|0,C[A+g|0]=o[c+g|0]^o[I+g|0],C[(Q=1|g)+A|0]=o[Q+c|0]^o[I+Q|0],g=g+2|0,(0|_)!=(0|(B=B+2|0)););E&&(C[A+g|0]=o[(a+32|0)+g|0]^o[I+g|0])}XC(a+32|0,64),XC(a,32)}return s=a+112|0,0},Vj:BB,Wj:eB,Xj:cB,Yj:PC,Zj:function(A,I,g,B,Q){A|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-112|0,a=I|=0,I|(_=g|=0)){I=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,i[E+24>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,i[E+28>>2]=I,I=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+16>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+20>>2]=I,I=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[E>>2]=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[E+4>>2]=I,I=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+8>>2]=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,i[E+12>>2]=I,I=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,g=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[E+104>>2]=0,i[E+108>>2]=0,i[E+96>>2]=I,i[E+100>>2]=g;A:{if(!_&a>>>0>=64|_){for(;gC(A,E+96|0,E,0),I=o[E+104|0]+1|0,C[E+104|0]=I,I=o[E+105|0]+(I>>>8|0)|0,C[E+105|0]=I,I=o[E+106|0]+(I>>>8|0)|0,C[E+106|0]=I,I=o[E+107|0]+(I>>>8|0)|0,C[E+107|0]=I,I=o[E+108|0]+(I>>>8|0)|0,C[E+108|0]=I,I=o[E+109|0]+(I>>>8|0)|0,C[E+109|0]=I,I=o[E+110|0]+(I>>>8|0)|0,C[E+110|0]=I,C[E+111|0]=o[E+111|0]+(I>>>8|0),A=A- -64|0,_=_-1|0,!(_=(a=a+-64|0)>>>0<4294967232?_+1|0:_)&a>>>0>63|_;);if(!(a|_))break A}if(g=0,gC(E+32|0,E+96|0,E,0),B=3&a,I=0,!_&a>>>0>=4|_)for(_=60&a,Q=0;a=t=E+32|0,C[A+I|0]=o[a+I|0],C[(c=1|I)+A|0]=o[a+c|0],C[(c=2|I)+A|0]=o[a+c|0],C[(a=3|I)+A|0]=o[a+t|0],I=I+4|0,(0|_)!=(0|(Q=Q+4|0)););if(B)for(;C[A+I|0]=o[(E+32|0)+I|0],I=I+1|0,(0|B)!=(0|(g=g+1|0)););}XC(E+32|0,64),XC(E,32)}return s=E+112|0,0},_j:function(A,I,g,B,Q,E){A|=0,I|=0,Q|=0,E|=0;var a,_=0,c=0;if(s=a=s-112|0,_=g|=0,(B|=0)|g){g=o[E+28|0]|o[E+29|0]<<8|o[E+30|0]<<16|o[E+31|0]<<24,i[a+24>>2]=o[E+24|0]|o[E+25|0]<<8|o[E+26|0]<<16|o[E+27|0]<<24,i[a+28>>2]=g,g=o[E+20|0]|o[E+21|0]<<8|o[E+22|0]<<16|o[E+23|0]<<24,i[a+16>>2]=o[E+16|0]|o[E+17|0]<<8|o[E+18|0]<<16|o[E+19|0]<<24,i[a+20>>2]=g,g=o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24,i[a>>2]=o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24,i[a+4>>2]=g,g=o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24,i[a+8>>2]=o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24,i[a+12>>2]=g,g=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,Q=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[a+104>>2]=0,i[a+108>>2]=0,i[a+96>>2]=g,i[a+100>>2]=Q;A:{if(!B&_>>>0>=64|B){for(;;){for(g=0,gC(a+32|0,a+96|0,a,0);E=a+32|0,C[A+g|0]=o[E+g|0]^o[I+g|0],C[(Q=1|g)+A|0]=o[Q+E|0]^o[I+Q|0],64!=(0|(g=g+2|0)););if(g=o[a+104|0]+1|0,C[a+104|0]=g,g=o[a+105|0]+(g>>>8|0)|0,C[a+105|0]=g,g=o[a+106|0]+(g>>>8|0)|0,C[a+106|0]=g,g=o[a+107|0]+(g>>>8|0)|0,C[a+107|0]=g,g=o[a+108|0]+(g>>>8|0)|0,C[a+108|0]=g,g=o[a+109|0]+(g>>>8|0)|0,C[a+109|0]=g,g=o[a+110|0]+(g>>>8|0)|0,C[a+110|0]=g,C[a+111|0]=o[a+111|0]+(g>>>8|0),I=I- -64|0,A=A- -64|0,B=B-1|0,!(!(B=(_=_+-64|0)>>>0<4294967232?B+1|0:B)&_>>>0>63|B))break}if(!(B|_))break A}if(g=0,gC(a+32|0,a+96|0,a,0),E=1&_,1!=(0|_)|B)for(_&=62,B=0;c=a+32|0,C[A+g|0]=o[c+g|0]^o[I+g|0],C[(Q=1|g)+A|0]=o[Q+c|0]^o[I+Q|0],g=g+2|0,(0|_)!=(0|(B=B+2|0)););E&&(C[A+g|0]=o[(a+32|0)+g|0]^o[I+g|0])}XC(a+32|0,64),XC(a,32)}return s=a+112|0,0},$j:BB,ak:eB,bk:cB,ck:PC,dk:BB,ek:_B,fk:cB,gk:function(A,I,g,C,B){var Q;return A|=0,I|=0,g|=0,s=Q=s-32|0,yA(Q,C|=0,B|=0,0),A=Xg(A,I,g,C+16|0,Q),s=Q+32|0,0|A},hk:function(A,I,g,C,B,Q,i,o){var E;return A|=0,I|=0,g|=0,C|=0,Q|=0,i|=0,s=E=s-32|0,yA(E,B|=0,o|=0,0),A=mg(o=A,I,(A=0)|g,C,B+16|0,A|Q,i,E),s=E+32|0,0|A},ik:function(A,I,g,C,B,Q){var i;return A|=0,I|=0,g|=0,C|=0,s=i=s-32|0,yA(i,B|=0,Q|=0,0),A=mg(A,I,g,C,B+16|0,0,0,i),s=i+32|0,0|A},jk:PC,kk:K,lk:BA,mk:pB}}(A)}(I)},instantiate:function(A,I){return{then:function(g){var C=new y.Module(A);g({instance:new y.Instance(C,I)})}}},RuntimeError:Error};t=[];var s,h,D,f,p,w,n,k=!1;function F(){var A=e.buffer;B.HEAP8=s=new Int8Array(A),B.HEAP16=D=new Int16Array(A),B.HEAPU8=h=new Uint8Array(A),B.HEAPU16=new Uint16Array(A),B.HEAP32=f=new Int32Array(A),B.HEAPU32=p=new Uint32Array(A),B.HEAPF32=w=new Float32Array(A),B.HEAPF64=n=new Float64Array(A)}var S=[],N=[],G=[],M=0,K=null,U=null;function b(A){throw B.onAbort?.(A),r(A=\"Aborted(\"+A+\")\"),k=!0,A+=\". Build with -sASSERTIONS for more info.\",new y.RuntimeError(A)}var H,Y=A=>A.startsWith(\"file://\");var J={36800:()=>B.getRandomValue(),36836:()=>{if(void 0===B.getRandomValue)try{var A=\"object\"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto;I=void 0===I?C:I;var g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),B.getRandomValue=g}catch(A){try{var C=require(\"crypto\"),Q=function(){var A=C.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};Q(),B.getRandomValue=Q}catch(A){throw\"No secure random number generator found\"}}}},d=A=>{for(;A.length>0;)A.shift()(B)};B.noExitRuntime;var m,l=\"undefined\"!=typeof TextDecoder?new TextDecoder:void 0,u=(A,I)=>A?((A,I,g)=>{for(var C=I+g,B=I;A[B]&&!(B>=C);)++B;if(B-I>16&&A.buffer&&l)return l.decode(A.subarray(I,B));for(var Q=\"\";I>10,56320|1023&a)}}else Q+=String.fromCharCode((31&i)<<6|o)}else Q+=String.fromCharCode(i)}return Q})(h,A,I):\"\",x=[],v=A=>{var I=(A-e.buffer.byteLength+65535)/65536;try{return e.grow(I),F(),1}catch(A){}},R={b:(A,I,g,C)=>{b(`Assertion failed: ${u(A)}, at: `+[I?u(I):\"unknown filename\",g,C?u(C):\"unknown function\"])},c:()=>{b(\"\")},a:(A,I,g)=>((A,I,g)=>{var C=((A,I)=>{var g;for(x.length=0;g=h[A++];){var C=105!=g;I+=(C&=112!=g)&&I%8?4:0,x.push(112==g?p[I>>2]:105==g?f[I>>2]:n[I>>3]),I+=C?8:4}return x})(I,g);return J[A](...C)})(A,I,g),d:A=>{var I=h.length,g=2147483648;if((A>>>=0)>g)return!1;for(var C,B=1;B<=4;B*=2){var Q=I*(1+.2/B);Q=Math.min(Q,A+100663296);var i=Math.min(g,(C=Math.max(A,Q))+(65536-C%65536)%65536);if(v(i))return!0}return!1}},L=function(){var A={a:R};function I(A,I){var g;return L=A.exports,e=L.e,F(),g=L.f,N.unshift(g),function(A){if(M--,B.monitorRunDependencies?.(M),0==M&&(null!==K&&(clearInterval(K),K=null),U)){var I=U;U=null,I()}}(),L}if(M++,B.monitorRunDependencies?.(M),B.instantiateWasm)try{return B.instantiateWasm(A,I)}catch(A){return r(`Module.instantiateWasm callback failed with error: ${A}`),!1}return H||(H=\"<<< WASM_BINARY_FILE >>>\"),function(A,I,C){(function(A){return Promise.resolve().then((()=>function(A){if(A==H&&t)return new Uint8Array(t);if(g)return g(A);throw\"both async and sync fetching of the wasm failed\"}(A)))})(A).then((A=>y.instantiate(A,I))).then(C,(A=>{r(`failed to asynchronously prepare wasm: ${A}`),b(A)}))}(H,A,(function(A){I(A.instance)})),{}}();function P(){function A(){m||(m=!0,B.calledRun=!0,k||(d(N),B.onRuntimeInitialized?.(),function(){if(B.postRun)for(\"function\"==typeof B.postRun&&(B.postRun=[B.postRun]);B.postRun.length;)A=B.postRun.shift(),G.unshift(A);var A;d(G)}()))}M>0||(function(){if(B.preRun)for(\"function\"==typeof B.preRun&&(B.preRun=[B.preRun]);B.preRun.length;)A=B.preRun.shift(),S.unshift(A);var A;d(S)}(),M>0||(B.setStatus?(B.setStatus(\"Running...\"),setTimeout((function(){setTimeout((function(){B.setStatus(\"\")}),1),A()}),1)):A()))}if(B._crypto_aead_aegis128l_keybytes=()=>(B._crypto_aead_aegis128l_keybytes=L.g)(),B._crypto_aead_aegis128l_nsecbytes=()=>(B._crypto_aead_aegis128l_nsecbytes=L.h)(),B._crypto_aead_aegis128l_npubbytes=()=>(B._crypto_aead_aegis128l_npubbytes=L.i)(),B._crypto_aead_aegis128l_abytes=()=>(B._crypto_aead_aegis128l_abytes=L.j)(),B._crypto_aead_aegis128l_messagebytes_max=()=>(B._crypto_aead_aegis128l_messagebytes_max=L.k)(),B._crypto_aead_aegis128l_keygen=A=>(B._crypto_aead_aegis128l_keygen=L.l)(A),B._crypto_aead_aegis128l_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_encrypt=L.m)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis128l_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_aegis128l_encrypt_detached=L.n)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_aegis128l_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_decrypt=L.o)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis128l_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_decrypt_detached=L.p)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_keybytes=()=>(B._crypto_aead_aegis256_keybytes=L.q)(),B._crypto_aead_aegis256_nsecbytes=()=>(B._crypto_aead_aegis256_nsecbytes=L.r)(),B._crypto_aead_aegis256_npubbytes=()=>(B._crypto_aead_aegis256_npubbytes=L.s)(),B._crypto_aead_aegis256_abytes=()=>(B._crypto_aead_aegis256_abytes=L.t)(),B._crypto_aead_aegis256_messagebytes_max=()=>(B._crypto_aead_aegis256_messagebytes_max=L.u)(),B._crypto_aead_aegis256_keygen=A=>(B._crypto_aead_aegis256_keygen=L.v)(A),B._crypto_aead_aegis256_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_encrypt=L.w)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_aegis256_encrypt_detached=L.x)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_aegis256_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_decrypt=L.y)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_decrypt_detached=L.z)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aes256gcm_is_available=()=>(B._crypto_aead_aes256gcm_is_available=L.A)(),B._crypto_aead_chacha20poly1305_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_chacha20poly1305_encrypt_detached=L.B)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_chacha20poly1305_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_encrypt=L.C)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_chacha20poly1305_ietf_encrypt_detached=L.D)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_chacha20poly1305_ietf_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_encrypt=L.E)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_decrypt_detached=L.F)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_decrypt=L.G)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_decrypt_detached=L.H)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_decrypt=L.I)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_keybytes=()=>(B._crypto_aead_chacha20poly1305_ietf_keybytes=L.J)(),B._crypto_aead_chacha20poly1305_ietf_npubbytes=()=>(B._crypto_aead_chacha20poly1305_ietf_npubbytes=L.K)(),B._crypto_aead_chacha20poly1305_ietf_nsecbytes=()=>(B._crypto_aead_chacha20poly1305_ietf_nsecbytes=L.L)(),B._crypto_aead_chacha20poly1305_ietf_abytes=()=>(B._crypto_aead_chacha20poly1305_ietf_abytes=L.M)(),B._crypto_aead_chacha20poly1305_ietf_messagebytes_max=()=>(B._crypto_aead_chacha20poly1305_ietf_messagebytes_max=L.N)(),B._crypto_aead_chacha20poly1305_ietf_keygen=A=>(B._crypto_aead_chacha20poly1305_ietf_keygen=L.O)(A),B._crypto_aead_chacha20poly1305_keybytes=()=>(B._crypto_aead_chacha20poly1305_keybytes=L.P)(),B._crypto_aead_chacha20poly1305_npubbytes=()=>(B._crypto_aead_chacha20poly1305_npubbytes=L.Q)(),B._crypto_aead_chacha20poly1305_nsecbytes=()=>(B._crypto_aead_chacha20poly1305_nsecbytes=L.R)(),B._crypto_aead_chacha20poly1305_abytes=()=>(B._crypto_aead_chacha20poly1305_abytes=L.S)(),B._crypto_aead_chacha20poly1305_messagebytes_max=()=>(B._crypto_aead_chacha20poly1305_messagebytes_max=L.T)(),B._crypto_aead_chacha20poly1305_keygen=A=>(B._crypto_aead_chacha20poly1305_keygen=L.U)(A),B._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=L.V)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_xchacha20poly1305_ietf_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_encrypt=L.W)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=L.X)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_decrypt=L.Y)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_keybytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_keybytes=L.Z)(),B._crypto_aead_xchacha20poly1305_ietf_npubbytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_npubbytes=L._)(),B._crypto_aead_xchacha20poly1305_ietf_nsecbytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_nsecbytes=L.$)(),B._crypto_aead_xchacha20poly1305_ietf_abytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_abytes=L.aa)(),B._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=()=>(B._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=L.ba)(),B._crypto_aead_xchacha20poly1305_ietf_keygen=A=>(B._crypto_aead_xchacha20poly1305_ietf_keygen=L.ca)(A),B._crypto_auth_bytes=()=>(B._crypto_auth_bytes=L.da)(),B._crypto_auth_keybytes=()=>(B._crypto_auth_keybytes=L.ea)(),B._crypto_auth_primitive=()=>(B._crypto_auth_primitive=L.fa)(),B._crypto_auth=(A,I,g,C,Q)=>(B._crypto_auth=L.ga)(A,I,g,C,Q),B._crypto_auth_verify=(A,I,g,C,Q)=>(B._crypto_auth_verify=L.ha)(A,I,g,C,Q),B._crypto_auth_keygen=A=>(B._crypto_auth_keygen=L.ia)(A),B._crypto_auth_hmacsha256_bytes=()=>(B._crypto_auth_hmacsha256_bytes=L.ja)(),B._crypto_auth_hmacsha256_keybytes=()=>(B._crypto_auth_hmacsha256_keybytes=L.ka)(),B._crypto_auth_hmacsha256_statebytes=()=>(B._crypto_auth_hmacsha256_statebytes=L.la)(),B._crypto_auth_hmacsha256_keygen=A=>(B._crypto_auth_hmacsha256_keygen=L.ma)(A),B._crypto_auth_hmacsha256_init=(A,I,g)=>(B._crypto_auth_hmacsha256_init=L.na)(A,I,g),B._crypto_auth_hmacsha256_update=(A,I,g,C)=>(B._crypto_auth_hmacsha256_update=L.oa)(A,I,g,C),B._crypto_auth_hmacsha256_final=(A,I)=>(B._crypto_auth_hmacsha256_final=L.pa)(A,I),B._crypto_auth_hmacsha256=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha256=L.qa)(A,I,g,C,Q),B._crypto_auth_hmacsha256_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha256_verify=L.ra)(A,I,g,C,Q),B._crypto_auth_hmacsha512_bytes=()=>(B._crypto_auth_hmacsha512_bytes=L.sa)(),B._crypto_auth_hmacsha512_keybytes=()=>(B._crypto_auth_hmacsha512_keybytes=L.ta)(),B._crypto_auth_hmacsha512_statebytes=()=>(B._crypto_auth_hmacsha512_statebytes=L.ua)(),B._crypto_auth_hmacsha512_keygen=A=>(B._crypto_auth_hmacsha512_keygen=L.va)(A),B._crypto_auth_hmacsha512_init=(A,I,g)=>(B._crypto_auth_hmacsha512_init=L.wa)(A,I,g),B._crypto_auth_hmacsha512_update=(A,I,g,C)=>(B._crypto_auth_hmacsha512_update=L.xa)(A,I,g,C),B._crypto_auth_hmacsha512_final=(A,I)=>(B._crypto_auth_hmacsha512_final=L.ya)(A,I),B._crypto_auth_hmacsha512=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512=L.za)(A,I,g,C,Q),B._crypto_auth_hmacsha512_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512_verify=L.Aa)(A,I,g,C,Q),B._crypto_auth_hmacsha512256_bytes=()=>(B._crypto_auth_hmacsha512256_bytes=L.Ba)(),B._crypto_auth_hmacsha512256_keybytes=()=>(B._crypto_auth_hmacsha512256_keybytes=L.Ca)(),B._crypto_auth_hmacsha512256_statebytes=()=>(B._crypto_auth_hmacsha512256_statebytes=L.Da)(),B._crypto_auth_hmacsha512256_keygen=A=>(B._crypto_auth_hmacsha512256_keygen=L.Ea)(A),B._crypto_auth_hmacsha512256_init=(A,I,g)=>(B._crypto_auth_hmacsha512256_init=L.Fa)(A,I,g),B._crypto_auth_hmacsha512256_update=(A,I,g,C)=>(B._crypto_auth_hmacsha512256_update=L.Ga)(A,I,g,C),B._crypto_auth_hmacsha512256_final=(A,I)=>(B._crypto_auth_hmacsha512256_final=L.Ha)(A,I),B._crypto_auth_hmacsha512256=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512256=L.Ia)(A,I,g,C,Q),B._crypto_auth_hmacsha512256_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512256_verify=L.Ja)(A,I,g,C,Q),B._crypto_box_seedbytes=()=>(B._crypto_box_seedbytes=L.Ka)(),B._crypto_box_publickeybytes=()=>(B._crypto_box_publickeybytes=L.La)(),B._crypto_box_secretkeybytes=()=>(B._crypto_box_secretkeybytes=L.Ma)(),B._crypto_box_beforenmbytes=()=>(B._crypto_box_beforenmbytes=L.Na)(),B._crypto_box_noncebytes=()=>(B._crypto_box_noncebytes=L.Oa)(),B._crypto_box_zerobytes=()=>(B._crypto_box_zerobytes=L.Pa)(),B._crypto_box_boxzerobytes=()=>(B._crypto_box_boxzerobytes=L.Qa)(),B._crypto_box_macbytes=()=>(B._crypto_box_macbytes=L.Ra)(),B._crypto_box_messagebytes_max=()=>(B._crypto_box_messagebytes_max=L.Sa)(),B._crypto_box_primitive=()=>(B._crypto_box_primitive=L.Ta)(),B._crypto_box_seed_keypair=(A,I,g)=>(B._crypto_box_seed_keypair=L.Ua)(A,I,g),B._crypto_box_keypair=(A,I)=>(B._crypto_box_keypair=L.Va)(A,I),B._crypto_box_beforenm=(A,I,g)=>(B._crypto_box_beforenm=L.Wa)(A,I,g),B._crypto_box_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_afternm=L.Xa)(A,I,g,C,Q,i),B._crypto_box_open_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_open_afternm=L.Ya)(A,I,g,C,Q,i),B._crypto_box=(A,I,g,C,Q,i,o)=>(B._crypto_box=L.Za)(A,I,g,C,Q,i,o),B._crypto_box_open=(A,I,g,C,Q,i,o)=>(B._crypto_box_open=L._a)(A,I,g,C,Q,i,o),B._crypto_box_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_detached_afternm=L.$a)(A,I,g,C,Q,i,o),B._crypto_box_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_detached=L.ab)(A,I,g,C,Q,i,o,E),B._crypto_box_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_easy_afternm=L.bb)(A,I,g,C,Q,i),B._crypto_box_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_easy=L.cb)(A,I,g,C,Q,i,o),B._crypto_box_open_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_open_detached_afternm=L.db)(A,I,g,C,Q,i,o),B._crypto_box_open_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_open_detached=L.eb)(A,I,g,C,Q,i,o,E),B._crypto_box_open_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_open_easy_afternm=L.fb)(A,I,g,C,Q,i),B._crypto_box_open_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_open_easy=L.gb)(A,I,g,C,Q,i,o),B._crypto_box_seal=(A,I,g,C,Q)=>(B._crypto_box_seal=L.hb)(A,I,g,C,Q),B._crypto_box_seal_open=(A,I,g,C,Q,i)=>(B._crypto_box_seal_open=L.ib)(A,I,g,C,Q,i),B._crypto_box_sealbytes=()=>(B._crypto_box_sealbytes=L.jb)(),B._crypto_box_curve25519xsalsa20poly1305_seed_keypair=(A,I,g)=>(B._crypto_box_curve25519xsalsa20poly1305_seed_keypair=L.kb)(A,I,g),B._crypto_box_curve25519xsalsa20poly1305_keypair=(A,I)=>(B._crypto_box_curve25519xsalsa20poly1305_keypair=L.lb)(A,I),B._crypto_box_curve25519xsalsa20poly1305_beforenm=(A,I,g)=>(B._crypto_box_curve25519xsalsa20poly1305_beforenm=L.mb)(A,I,g),B._crypto_box_curve25519xsalsa20poly1305_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xsalsa20poly1305_afternm=L.nb)(A,I,g,C,Q,i),B._crypto_box_curve25519xsalsa20poly1305_open_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xsalsa20poly1305_open_afternm=L.ob)(A,I,g,C,Q,i),B._crypto_box_curve25519xsalsa20poly1305=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xsalsa20poly1305=L.pb)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xsalsa20poly1305_open=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xsalsa20poly1305_open=L.qb)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xsalsa20poly1305_seedbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_seedbytes=L.rb)(),B._crypto_box_curve25519xsalsa20poly1305_publickeybytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_publickeybytes=L.sb)(),B._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=L.tb)(),B._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=L.ub)(),B._crypto_box_curve25519xsalsa20poly1305_noncebytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_noncebytes=L.vb)(),B._crypto_box_curve25519xsalsa20poly1305_zerobytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_zerobytes=L.wb)(),B._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=L.xb)(),B._crypto_box_curve25519xsalsa20poly1305_macbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_macbytes=L.yb)(),B._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=()=>(B._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=L.zb)(),B._crypto_core_hchacha20=(A,I,g,C)=>(B._crypto_core_hchacha20=L.Ab)(A,I,g,C),B._crypto_core_hchacha20_outputbytes=()=>(B._crypto_core_hchacha20_outputbytes=L.Bb)(),B._crypto_core_hchacha20_inputbytes=()=>(B._crypto_core_hchacha20_inputbytes=L.Cb)(),B._crypto_core_hchacha20_keybytes=()=>(B._crypto_core_hchacha20_keybytes=L.Db)(),B._crypto_core_hchacha20_constbytes=()=>(B._crypto_core_hchacha20_constbytes=L.Eb)(),B._crypto_core_hsalsa20=(A,I,g,C)=>(B._crypto_core_hsalsa20=L.Fb)(A,I,g,C),B._crypto_core_hsalsa20_outputbytes=()=>(B._crypto_core_hsalsa20_outputbytes=L.Gb)(),B._crypto_core_hsalsa20_inputbytes=()=>(B._crypto_core_hsalsa20_inputbytes=L.Hb)(),B._crypto_core_hsalsa20_keybytes=()=>(B._crypto_core_hsalsa20_keybytes=L.Ib)(),B._crypto_core_hsalsa20_constbytes=()=>(B._crypto_core_hsalsa20_constbytes=L.Jb)(),B._crypto_core_salsa20=(A,I,g,C)=>(B._crypto_core_salsa20=L.Kb)(A,I,g,C),B._crypto_core_salsa20_outputbytes=()=>(B._crypto_core_salsa20_outputbytes=L.Lb)(),B._crypto_core_salsa20_inputbytes=()=>(B._crypto_core_salsa20_inputbytes=L.Mb)(),B._crypto_core_salsa20_keybytes=()=>(B._crypto_core_salsa20_keybytes=L.Nb)(),B._crypto_core_salsa20_constbytes=()=>(B._crypto_core_salsa20_constbytes=L.Ob)(),B._crypto_core_salsa2012=(A,I,g,C)=>(B._crypto_core_salsa2012=L.Pb)(A,I,g,C),B._crypto_core_salsa2012_outputbytes=()=>(B._crypto_core_salsa2012_outputbytes=L.Qb)(),B._crypto_core_salsa2012_inputbytes=()=>(B._crypto_core_salsa2012_inputbytes=L.Rb)(),B._crypto_core_salsa2012_keybytes=()=>(B._crypto_core_salsa2012_keybytes=L.Sb)(),B._crypto_core_salsa2012_constbytes=()=>(B._crypto_core_salsa2012_constbytes=L.Tb)(),B._crypto_core_salsa208=(A,I,g,C)=>(B._crypto_core_salsa208=L.Ub)(A,I,g,C),B._crypto_core_salsa208_outputbytes=()=>(B._crypto_core_salsa208_outputbytes=L.Vb)(),B._crypto_core_salsa208_inputbytes=()=>(B._crypto_core_salsa208_inputbytes=L.Wb)(),B._crypto_core_salsa208_keybytes=()=>(B._crypto_core_salsa208_keybytes=L.Xb)(),B._crypto_core_salsa208_constbytes=()=>(B._crypto_core_salsa208_constbytes=L.Yb)(),B._crypto_generichash_bytes_min=()=>(B._crypto_generichash_bytes_min=L.Zb)(),B._crypto_generichash_bytes_max=()=>(B._crypto_generichash_bytes_max=L._b)(),B._crypto_generichash_bytes=()=>(B._crypto_generichash_bytes=L.$b)(),B._crypto_generichash_keybytes_min=()=>(B._crypto_generichash_keybytes_min=L.ac)(),B._crypto_generichash_keybytes_max=()=>(B._crypto_generichash_keybytes_max=L.bc)(),B._crypto_generichash_keybytes=()=>(B._crypto_generichash_keybytes=L.cc)(),B._crypto_generichash_primitive=()=>(B._crypto_generichash_primitive=L.dc)(),B._crypto_generichash_statebytes=()=>(B._crypto_generichash_statebytes=L.ec)(),B._crypto_generichash=(A,I,g,C,Q,i,o)=>(B._crypto_generichash=L.fc)(A,I,g,C,Q,i,o),B._crypto_generichash_init=(A,I,g,C)=>(B._crypto_generichash_init=L.gc)(A,I,g,C),B._crypto_generichash_update=(A,I,g,C)=>(B._crypto_generichash_update=L.hc)(A,I,g,C),B._crypto_generichash_final=(A,I,g)=>(B._crypto_generichash_final=L.ic)(A,I,g),B._crypto_generichash_keygen=A=>(B._crypto_generichash_keygen=L.jc)(A),B._crypto_generichash_blake2b_bytes_min=()=>(B._crypto_generichash_blake2b_bytes_min=L.kc)(),B._crypto_generichash_blake2b_bytes_max=()=>(B._crypto_generichash_blake2b_bytes_max=L.lc)(),B._crypto_generichash_blake2b_bytes=()=>(B._crypto_generichash_blake2b_bytes=L.mc)(),B._crypto_generichash_blake2b_keybytes_min=()=>(B._crypto_generichash_blake2b_keybytes_min=L.nc)(),B._crypto_generichash_blake2b_keybytes_max=()=>(B._crypto_generichash_blake2b_keybytes_max=L.oc)(),B._crypto_generichash_blake2b_keybytes=()=>(B._crypto_generichash_blake2b_keybytes=L.pc)(),B._crypto_generichash_blake2b_saltbytes=()=>(B._crypto_generichash_blake2b_saltbytes=L.qc)(),B._crypto_generichash_blake2b_personalbytes=()=>(B._crypto_generichash_blake2b_personalbytes=L.rc)(),B._crypto_generichash_blake2b_statebytes=()=>(B._crypto_generichash_blake2b_statebytes=L.sc)(),B._crypto_generichash_blake2b_keygen=A=>(B._crypto_generichash_blake2b_keygen=L.tc)(A),B._crypto_generichash_blake2b=(A,I,g,C,Q,i,o)=>(B._crypto_generichash_blake2b=L.uc)(A,I,g,C,Q,i,o),B._crypto_generichash_blake2b_salt_personal=(A,I,g,C,Q,i,o,E,a)=>(B._crypto_generichash_blake2b_salt_personal=L.vc)(A,I,g,C,Q,i,o,E,a),B._crypto_generichash_blake2b_init=(A,I,g,C)=>(B._crypto_generichash_blake2b_init=L.wc)(A,I,g,C),B._crypto_generichash_blake2b_init_salt_personal=(A,I,g,C,Q,i)=>(B._crypto_generichash_blake2b_init_salt_personal=L.xc)(A,I,g,C,Q,i),B._crypto_generichash_blake2b_update=(A,I,g,C)=>(B._crypto_generichash_blake2b_update=L.yc)(A,I,g,C),B._crypto_generichash_blake2b_final=(A,I,g)=>(B._crypto_generichash_blake2b_final=L.zc)(A,I,g),B._crypto_hash_bytes=()=>(B._crypto_hash_bytes=L.Ac)(),B._crypto_hash=(A,I,g,C)=>(B._crypto_hash=L.Bc)(A,I,g,C),B._crypto_hash_primitive=()=>(B._crypto_hash_primitive=L.Cc)(),B._crypto_hash_sha256_bytes=()=>(B._crypto_hash_sha256_bytes=L.Dc)(),B._crypto_hash_sha256_statebytes=()=>(B._crypto_hash_sha256_statebytes=L.Ec)(),B._crypto_hash_sha256_init=A=>(B._crypto_hash_sha256_init=L.Fc)(A),B._crypto_hash_sha256_update=(A,I,g,C)=>(B._crypto_hash_sha256_update=L.Gc)(A,I,g,C),B._crypto_hash_sha256_final=(A,I)=>(B._crypto_hash_sha256_final=L.Hc)(A,I),B._crypto_hash_sha256=(A,I,g,C)=>(B._crypto_hash_sha256=L.Ic)(A,I,g,C),B._crypto_hash_sha512_bytes=()=>(B._crypto_hash_sha512_bytes=L.Jc)(),B._crypto_hash_sha512_statebytes=()=>(B._crypto_hash_sha512_statebytes=L.Kc)(),B._crypto_hash_sha512_init=A=>(B._crypto_hash_sha512_init=L.Lc)(A),B._crypto_hash_sha512_update=(A,I,g,C)=>(B._crypto_hash_sha512_update=L.Mc)(A,I,g,C),B._crypto_hash_sha512_final=(A,I)=>(B._crypto_hash_sha512_final=L.Nc)(A,I),B._crypto_hash_sha512=(A,I,g,C)=>(B._crypto_hash_sha512=L.Oc)(A,I,g,C),B._crypto_kdf_blake2b_bytes_min=()=>(B._crypto_kdf_blake2b_bytes_min=L.Pc)(),B._crypto_kdf_blake2b_bytes_max=()=>(B._crypto_kdf_blake2b_bytes_max=L.Qc)(),B._crypto_kdf_blake2b_contextbytes=()=>(B._crypto_kdf_blake2b_contextbytes=L.Rc)(),B._crypto_kdf_blake2b_keybytes=()=>(B._crypto_kdf_blake2b_keybytes=L.Sc)(),B._crypto_kdf_blake2b_derive_from_key=(A,I,g,C,Q,i)=>(B._crypto_kdf_blake2b_derive_from_key=L.Tc)(A,I,g,C,Q,i),B._crypto_kdf_primitive=()=>(B._crypto_kdf_primitive=L.Uc)(),B._crypto_kdf_bytes_min=()=>(B._crypto_kdf_bytes_min=L.Vc)(),B._crypto_kdf_bytes_max=()=>(B._crypto_kdf_bytes_max=L.Wc)(),B._crypto_kdf_contextbytes=()=>(B._crypto_kdf_contextbytes=L.Xc)(),B._crypto_kdf_keybytes=()=>(B._crypto_kdf_keybytes=L.Yc)(),B._crypto_kdf_derive_from_key=(A,I,g,C,Q,i)=>(B._crypto_kdf_derive_from_key=L.Zc)(A,I,g,C,Q,i),B._crypto_kdf_keygen=A=>(B._crypto_kdf_keygen=L._c)(A),B._crypto_kdf_hkdf_sha256_extract_init=(A,I,g)=>(B._crypto_kdf_hkdf_sha256_extract_init=L.$c)(A,I,g),B._crypto_kdf_hkdf_sha256_extract_update=(A,I,g)=>(B._crypto_kdf_hkdf_sha256_extract_update=L.ad)(A,I,g),B._crypto_kdf_hkdf_sha256_extract_final=(A,I)=>(B._crypto_kdf_hkdf_sha256_extract_final=L.bd)(A,I),B._crypto_kdf_hkdf_sha256_extract=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha256_extract=L.cd)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha256_keygen=A=>(B._crypto_kdf_hkdf_sha256_keygen=L.dd)(A),B._crypto_kdf_hkdf_sha256_expand=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha256_expand=L.ed)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha256_keybytes=()=>(B._crypto_kdf_hkdf_sha256_keybytes=L.fd)(),B._crypto_kdf_hkdf_sha256_bytes_min=()=>(B._crypto_kdf_hkdf_sha256_bytes_min=L.gd)(),B._crypto_kdf_hkdf_sha256_bytes_max=()=>(B._crypto_kdf_hkdf_sha256_bytes_max=L.hd)(),B._crypto_kdf_hkdf_sha256_statebytes=()=>(B._crypto_kdf_hkdf_sha256_statebytes=L.id)(),B._crypto_kdf_hkdf_sha512_extract_init=(A,I,g)=>(B._crypto_kdf_hkdf_sha512_extract_init=L.jd)(A,I,g),B._crypto_kdf_hkdf_sha512_extract_update=(A,I,g)=>(B._crypto_kdf_hkdf_sha512_extract_update=L.kd)(A,I,g),B._crypto_kdf_hkdf_sha512_extract_final=(A,I)=>(B._crypto_kdf_hkdf_sha512_extract_final=L.ld)(A,I),B._crypto_kdf_hkdf_sha512_extract=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha512_extract=L.md)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha512_keygen=A=>(B._crypto_kdf_hkdf_sha512_keygen=L.nd)(A),B._crypto_kdf_hkdf_sha512_expand=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha512_expand=L.od)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha512_keybytes=()=>(B._crypto_kdf_hkdf_sha512_keybytes=L.pd)(),B._crypto_kdf_hkdf_sha512_bytes_min=()=>(B._crypto_kdf_hkdf_sha512_bytes_min=L.qd)(),B._crypto_kdf_hkdf_sha512_bytes_max=()=>(B._crypto_kdf_hkdf_sha512_bytes_max=L.rd)(),B._crypto_kdf_hkdf_sha512_statebytes=()=>(B._crypto_kdf_hkdf_sha512_statebytes=L.sd)(),B._crypto_kx_seed_keypair=(A,I,g)=>(B._crypto_kx_seed_keypair=L.td)(A,I,g),B._crypto_kx_keypair=(A,I)=>(B._crypto_kx_keypair=L.ud)(A,I),B._crypto_kx_client_session_keys=(A,I,g,C,Q)=>(B._crypto_kx_client_session_keys=L.vd)(A,I,g,C,Q),B._crypto_kx_server_session_keys=(A,I,g,C,Q)=>(B._crypto_kx_server_session_keys=L.wd)(A,I,g,C,Q),B._crypto_kx_publickeybytes=()=>(B._crypto_kx_publickeybytes=L.xd)(),B._crypto_kx_secretkeybytes=()=>(B._crypto_kx_secretkeybytes=L.yd)(),B._crypto_kx_seedbytes=()=>(B._crypto_kx_seedbytes=L.zd)(),B._crypto_kx_sessionkeybytes=()=>(B._crypto_kx_sessionkeybytes=L.Ad)(),B._crypto_kx_primitive=()=>(B._crypto_kx_primitive=L.Bd)(),B._crypto_onetimeauth_statebytes=()=>(B._crypto_onetimeauth_statebytes=L.Cd)(),B._crypto_onetimeauth_bytes=()=>(B._crypto_onetimeauth_bytes=L.Dd)(),B._crypto_onetimeauth_keybytes=()=>(B._crypto_onetimeauth_keybytes=L.Ed)(),B._crypto_onetimeauth=(A,I,g,C,Q)=>(B._crypto_onetimeauth=L.Fd)(A,I,g,C,Q),B._crypto_onetimeauth_verify=(A,I,g,C,Q)=>(B._crypto_onetimeauth_verify=L.Gd)(A,I,g,C,Q),B._crypto_onetimeauth_init=(A,I)=>(B._crypto_onetimeauth_init=L.Hd)(A,I),B._crypto_onetimeauth_update=(A,I,g,C)=>(B._crypto_onetimeauth_update=L.Id)(A,I,g,C),B._crypto_onetimeauth_final=(A,I)=>(B._crypto_onetimeauth_final=L.Jd)(A,I),B._crypto_onetimeauth_primitive=()=>(B._crypto_onetimeauth_primitive=L.Kd)(),B._crypto_onetimeauth_keygen=A=>(B._crypto_onetimeauth_keygen=L.Ld)(A),B._crypto_onetimeauth_poly1305=(A,I,g,C,Q)=>(B._crypto_onetimeauth_poly1305=L.Md)(A,I,g,C,Q),B._crypto_onetimeauth_poly1305_verify=(A,I,g,C,Q)=>(B._crypto_onetimeauth_poly1305_verify=L.Nd)(A,I,g,C,Q),B._crypto_onetimeauth_poly1305_init=(A,I)=>(B._crypto_onetimeauth_poly1305_init=L.Od)(A,I),B._crypto_onetimeauth_poly1305_update=(A,I,g,C)=>(B._crypto_onetimeauth_poly1305_update=L.Pd)(A,I,g,C),B._crypto_onetimeauth_poly1305_final=(A,I)=>(B._crypto_onetimeauth_poly1305_final=L.Qd)(A,I),B._crypto_onetimeauth_poly1305_bytes=()=>(B._crypto_onetimeauth_poly1305_bytes=L.Rd)(),B._crypto_onetimeauth_poly1305_keybytes=()=>(B._crypto_onetimeauth_poly1305_keybytes=L.Sd)(),B._crypto_onetimeauth_poly1305_statebytes=()=>(B._crypto_onetimeauth_poly1305_statebytes=L.Td)(),B._crypto_onetimeauth_poly1305_keygen=A=>(B._crypto_onetimeauth_poly1305_keygen=L.Ud)(A),B._crypto_pwhash_argon2i_alg_argon2i13=()=>(B._crypto_pwhash_argon2i_alg_argon2i13=L.Vd)(),B._crypto_pwhash_argon2i_bytes_min=()=>(B._crypto_pwhash_argon2i_bytes_min=L.Wd)(),B._crypto_pwhash_argon2i_bytes_max=()=>(B._crypto_pwhash_argon2i_bytes_max=L.Xd)(),B._crypto_pwhash_argon2i_passwd_min=()=>(B._crypto_pwhash_argon2i_passwd_min=L.Yd)(),B._crypto_pwhash_argon2i_passwd_max=()=>(B._crypto_pwhash_argon2i_passwd_max=L.Zd)(),B._crypto_pwhash_argon2i_saltbytes=()=>(B._crypto_pwhash_argon2i_saltbytes=L._d)(),B._crypto_pwhash_argon2i_strbytes=()=>(B._crypto_pwhash_argon2i_strbytes=L.$d)(),B._crypto_pwhash_argon2i_strprefix=()=>(B._crypto_pwhash_argon2i_strprefix=L.ae)(),B._crypto_pwhash_argon2i_opslimit_min=()=>(B._crypto_pwhash_argon2i_opslimit_min=L.be)(),B._crypto_pwhash_argon2i_opslimit_max=()=>(B._crypto_pwhash_argon2i_opslimit_max=L.ce)(),B._crypto_pwhash_argon2i_memlimit_min=()=>(B._crypto_pwhash_argon2i_memlimit_min=L.de)(),B._crypto_pwhash_argon2i_memlimit_max=()=>(B._crypto_pwhash_argon2i_memlimit_max=L.ee)(),B._crypto_pwhash_argon2i_opslimit_interactive=()=>(B._crypto_pwhash_argon2i_opslimit_interactive=L.fe)(),B._crypto_pwhash_argon2i_memlimit_interactive=()=>(B._crypto_pwhash_argon2i_memlimit_interactive=L.ge)(),B._crypto_pwhash_argon2i_opslimit_moderate=()=>(B._crypto_pwhash_argon2i_opslimit_moderate=L.he)(),B._crypto_pwhash_argon2i_memlimit_moderate=()=>(B._crypto_pwhash_argon2i_memlimit_moderate=L.ie)(),B._crypto_pwhash_argon2i_opslimit_sensitive=()=>(B._crypto_pwhash_argon2i_opslimit_sensitive=L.je)(),B._crypto_pwhash_argon2i_memlimit_sensitive=()=>(B._crypto_pwhash_argon2i_memlimit_sensitive=L.ke)(),B._crypto_pwhash_argon2i=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash_argon2i=L.le)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_argon2i_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_argon2i_str=L.me)(A,I,g,C,Q,i,o),B._crypto_pwhash_argon2i_str_verify=(A,I,g,C)=>(B._crypto_pwhash_argon2i_str_verify=L.ne)(A,I,g,C),B._crypto_pwhash_argon2i_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_argon2i_str_needs_rehash=L.oe)(A,I,g,C),B._crypto_pwhash_argon2id_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_argon2id_str_needs_rehash=L.pe)(A,I,g,C),B._crypto_pwhash_argon2id_alg_argon2id13=()=>(B._crypto_pwhash_argon2id_alg_argon2id13=L.qe)(),B._crypto_pwhash_argon2id_bytes_min=()=>(B._crypto_pwhash_argon2id_bytes_min=L.re)(),B._crypto_pwhash_argon2id_bytes_max=()=>(B._crypto_pwhash_argon2id_bytes_max=L.se)(),B._crypto_pwhash_argon2id_passwd_min=()=>(B._crypto_pwhash_argon2id_passwd_min=L.te)(),B._crypto_pwhash_argon2id_passwd_max=()=>(B._crypto_pwhash_argon2id_passwd_max=L.ue)(),B._crypto_pwhash_argon2id_saltbytes=()=>(B._crypto_pwhash_argon2id_saltbytes=L.ve)(),B._crypto_pwhash_argon2id_strbytes=()=>(B._crypto_pwhash_argon2id_strbytes=L.we)(),B._crypto_pwhash_argon2id_strprefix=()=>(B._crypto_pwhash_argon2id_strprefix=L.xe)(),B._crypto_pwhash_argon2id_opslimit_min=()=>(B._crypto_pwhash_argon2id_opslimit_min=L.ye)(),B._crypto_pwhash_argon2id_opslimit_max=()=>(B._crypto_pwhash_argon2id_opslimit_max=L.ze)(),B._crypto_pwhash_argon2id_memlimit_min=()=>(B._crypto_pwhash_argon2id_memlimit_min=L.Ae)(),B._crypto_pwhash_argon2id_memlimit_max=()=>(B._crypto_pwhash_argon2id_memlimit_max=L.Be)(),B._crypto_pwhash_argon2id_opslimit_interactive=()=>(B._crypto_pwhash_argon2id_opslimit_interactive=L.Ce)(),B._crypto_pwhash_argon2id_memlimit_interactive=()=>(B._crypto_pwhash_argon2id_memlimit_interactive=L.De)(),B._crypto_pwhash_argon2id_opslimit_moderate=()=>(B._crypto_pwhash_argon2id_opslimit_moderate=L.Ee)(),B._crypto_pwhash_argon2id_memlimit_moderate=()=>(B._crypto_pwhash_argon2id_memlimit_moderate=L.Fe)(),B._crypto_pwhash_argon2id_opslimit_sensitive=()=>(B._crypto_pwhash_argon2id_opslimit_sensitive=L.Ge)(),B._crypto_pwhash_argon2id_memlimit_sensitive=()=>(B._crypto_pwhash_argon2id_memlimit_sensitive=L.He)(),B._crypto_pwhash_argon2id=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash_argon2id=L.Ie)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_argon2id_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_argon2id_str=L.Je)(A,I,g,C,Q,i,o),B._crypto_pwhash_argon2id_str_verify=(A,I,g,C)=>(B._crypto_pwhash_argon2id_str_verify=L.Ke)(A,I,g,C),B._crypto_pwhash_alg_argon2i13=()=>(B._crypto_pwhash_alg_argon2i13=L.Le)(),B._crypto_pwhash_alg_argon2id13=()=>(B._crypto_pwhash_alg_argon2id13=L.Me)(),B._crypto_pwhash_alg_default=()=>(B._crypto_pwhash_alg_default=L.Ne)(),B._crypto_pwhash_bytes_min=()=>(B._crypto_pwhash_bytes_min=L.Oe)(),B._crypto_pwhash_bytes_max=()=>(B._crypto_pwhash_bytes_max=L.Pe)(),B._crypto_pwhash_passwd_min=()=>(B._crypto_pwhash_passwd_min=L.Qe)(),B._crypto_pwhash_passwd_max=()=>(B._crypto_pwhash_passwd_max=L.Re)(),B._crypto_pwhash_saltbytes=()=>(B._crypto_pwhash_saltbytes=L.Se)(),B._crypto_pwhash_strbytes=()=>(B._crypto_pwhash_strbytes=L.Te)(),B._crypto_pwhash_strprefix=()=>(B._crypto_pwhash_strprefix=L.Ue)(),B._crypto_pwhash_opslimit_min=()=>(B._crypto_pwhash_opslimit_min=L.Ve)(),B._crypto_pwhash_opslimit_max=()=>(B._crypto_pwhash_opslimit_max=L.We)(),B._crypto_pwhash_memlimit_min=()=>(B._crypto_pwhash_memlimit_min=L.Xe)(),B._crypto_pwhash_memlimit_max=()=>(B._crypto_pwhash_memlimit_max=L.Ye)(),B._crypto_pwhash_opslimit_interactive=()=>(B._crypto_pwhash_opslimit_interactive=L.Ze)(),B._crypto_pwhash_memlimit_interactive=()=>(B._crypto_pwhash_memlimit_interactive=L._e)(),B._crypto_pwhash_opslimit_moderate=()=>(B._crypto_pwhash_opslimit_moderate=L.$e)(),B._crypto_pwhash_memlimit_moderate=()=>(B._crypto_pwhash_memlimit_moderate=L.af)(),B._crypto_pwhash_opslimit_sensitive=()=>(B._crypto_pwhash_opslimit_sensitive=L.bf)(),B._crypto_pwhash_memlimit_sensitive=()=>(B._crypto_pwhash_memlimit_sensitive=L.cf)(),B._crypto_pwhash=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash=L.df)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_str=L.ef)(A,I,g,C,Q,i,o),B._crypto_pwhash_str_alg=(A,I,g,C,Q,i,o,E)=>(B._crypto_pwhash_str_alg=L.ff)(A,I,g,C,Q,i,o,E),B._crypto_pwhash_str_verify=(A,I,g,C)=>(B._crypto_pwhash_str_verify=L.gf)(A,I,g,C),B._crypto_pwhash_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_str_needs_rehash=L.hf)(A,I,g,C),B._crypto_pwhash_primitive=()=>(B._crypto_pwhash_primitive=L.jf)(),B._crypto_scalarmult_primitive=()=>(B._crypto_scalarmult_primitive=L.kf)(),B._crypto_scalarmult_base=(A,I)=>(B._crypto_scalarmult_base=L.lf)(A,I),B._crypto_scalarmult=(A,I,g)=>(B._crypto_scalarmult=L.mf)(A,I,g),B._crypto_scalarmult_bytes=()=>(B._crypto_scalarmult_bytes=L.nf)(),B._crypto_scalarmult_scalarbytes=()=>(B._crypto_scalarmult_scalarbytes=L.of)(),B._crypto_scalarmult_curve25519=(A,I,g)=>(B._crypto_scalarmult_curve25519=L.pf)(A,I,g),B._crypto_scalarmult_curve25519_base=(A,I)=>(B._crypto_scalarmult_curve25519_base=L.qf)(A,I),B._crypto_scalarmult_curve25519_bytes=()=>(B._crypto_scalarmult_curve25519_bytes=L.rf)(),B._crypto_scalarmult_curve25519_scalarbytes=()=>(B._crypto_scalarmult_curve25519_scalarbytes=L.sf)(),B._crypto_secretbox_keybytes=()=>(B._crypto_secretbox_keybytes=L.tf)(),B._crypto_secretbox_noncebytes=()=>(B._crypto_secretbox_noncebytes=L.uf)(),B._crypto_secretbox_zerobytes=()=>(B._crypto_secretbox_zerobytes=L.vf)(),B._crypto_secretbox_boxzerobytes=()=>(B._crypto_secretbox_boxzerobytes=L.wf)(),B._crypto_secretbox_macbytes=()=>(B._crypto_secretbox_macbytes=L.xf)(),B._crypto_secretbox_messagebytes_max=()=>(B._crypto_secretbox_messagebytes_max=L.yf)(),B._crypto_secretbox_primitive=()=>(B._crypto_secretbox_primitive=L.zf)(),B._crypto_secretbox=(A,I,g,C,Q,i)=>(B._crypto_secretbox=L.Af)(A,I,g,C,Q,i),B._crypto_secretbox_open=(A,I,g,C,Q,i)=>(B._crypto_secretbox_open=L.Bf)(A,I,g,C,Q,i),B._crypto_secretbox_keygen=A=>(B._crypto_secretbox_keygen=L.Cf)(A),B._crypto_secretbox_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_detached=L.Df)(A,I,g,C,Q,i,o),B._crypto_secretbox_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_easy=L.Ef)(A,I,g,C,Q,i),B._crypto_secretbox_open_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_open_detached=L.Ff)(A,I,g,C,Q,i,o),B._crypto_secretbox_open_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_open_easy=L.Gf)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xsalsa20poly1305=L.Hf)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305_open=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xsalsa20poly1305_open=L.If)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305_keybytes=()=>(B._crypto_secretbox_xsalsa20poly1305_keybytes=L.Jf)(),B._crypto_secretbox_xsalsa20poly1305_noncebytes=()=>(B._crypto_secretbox_xsalsa20poly1305_noncebytes=L.Kf)(),B._crypto_secretbox_xsalsa20poly1305_zerobytes=()=>(B._crypto_secretbox_xsalsa20poly1305_zerobytes=L.Lf)(),B._crypto_secretbox_xsalsa20poly1305_boxzerobytes=()=>(B._crypto_secretbox_xsalsa20poly1305_boxzerobytes=L.Mf)(),B._crypto_secretbox_xsalsa20poly1305_macbytes=()=>(B._crypto_secretbox_xsalsa20poly1305_macbytes=L.Nf)(),B._crypto_secretbox_xsalsa20poly1305_messagebytes_max=()=>(B._crypto_secretbox_xsalsa20poly1305_messagebytes_max=L.Of)(),B._crypto_secretbox_xsalsa20poly1305_keygen=A=>(B._crypto_secretbox_xsalsa20poly1305_keygen=L.Pf)(A),B._crypto_secretstream_xchacha20poly1305_keygen=A=>(B._crypto_secretstream_xchacha20poly1305_keygen=L.Qf)(A),B._crypto_secretstream_xchacha20poly1305_init_push=(A,I,g)=>(B._crypto_secretstream_xchacha20poly1305_init_push=L.Rf)(A,I,g),B._crypto_secretstream_xchacha20poly1305_init_pull=(A,I,g)=>(B._crypto_secretstream_xchacha20poly1305_init_pull=L.Sf)(A,I,g),B._crypto_secretstream_xchacha20poly1305_rekey=A=>(B._crypto_secretstream_xchacha20poly1305_rekey=L.Tf)(A),B._crypto_secretstream_xchacha20poly1305_push=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_secretstream_xchacha20poly1305_push=L.Uf)(A,I,g,C,Q,i,o,E,a,_),B._crypto_secretstream_xchacha20poly1305_pull=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_secretstream_xchacha20poly1305_pull=L.Vf)(A,I,g,C,Q,i,o,E,a,_),B._crypto_secretstream_xchacha20poly1305_statebytes=()=>(B._crypto_secretstream_xchacha20poly1305_statebytes=L.Wf)(),B._crypto_secretstream_xchacha20poly1305_abytes=()=>(B._crypto_secretstream_xchacha20poly1305_abytes=L.Xf)(),B._crypto_secretstream_xchacha20poly1305_headerbytes=()=>(B._crypto_secretstream_xchacha20poly1305_headerbytes=L.Yf)(),B._crypto_secretstream_xchacha20poly1305_keybytes=()=>(B._crypto_secretstream_xchacha20poly1305_keybytes=L.Zf)(),B._crypto_secretstream_xchacha20poly1305_messagebytes_max=()=>(B._crypto_secretstream_xchacha20poly1305_messagebytes_max=L._f)(),B._crypto_secretstream_xchacha20poly1305_tag_message=()=>(B._crypto_secretstream_xchacha20poly1305_tag_message=L.$f)(),B._crypto_secretstream_xchacha20poly1305_tag_push=()=>(B._crypto_secretstream_xchacha20poly1305_tag_push=L.ag)(),B._crypto_secretstream_xchacha20poly1305_tag_rekey=()=>(B._crypto_secretstream_xchacha20poly1305_tag_rekey=L.bg)(),B._crypto_secretstream_xchacha20poly1305_tag_final=()=>(B._crypto_secretstream_xchacha20poly1305_tag_final=L.cg)(),B._crypto_shorthash_bytes=()=>(B._crypto_shorthash_bytes=L.dg)(),B._crypto_shorthash_keybytes=()=>(B._crypto_shorthash_keybytes=L.eg)(),B._crypto_shorthash_primitive=()=>(B._crypto_shorthash_primitive=L.fg)(),B._crypto_shorthash=(A,I,g,C,Q)=>(B._crypto_shorthash=L.gg)(A,I,g,C,Q),B._crypto_shorthash_keygen=A=>(B._crypto_shorthash_keygen=L.hg)(A),B._crypto_shorthash_siphash24_bytes=()=>(B._crypto_shorthash_siphash24_bytes=L.ig)(),B._crypto_shorthash_siphash24_keybytes=()=>(B._crypto_shorthash_siphash24_keybytes=L.jg)(),B._crypto_shorthash_siphash24=(A,I,g,C,Q)=>(B._crypto_shorthash_siphash24=L.kg)(A,I,g,C,Q),B._crypto_sign_statebytes=()=>(B._crypto_sign_statebytes=L.lg)(),B._crypto_sign_bytes=()=>(B._crypto_sign_bytes=L.mg)(),B._crypto_sign_seedbytes=()=>(B._crypto_sign_seedbytes=L.ng)(),B._crypto_sign_publickeybytes=()=>(B._crypto_sign_publickeybytes=L.og)(),B._crypto_sign_secretkeybytes=()=>(B._crypto_sign_secretkeybytes=L.pg)(),B._crypto_sign_messagebytes_max=()=>(B._crypto_sign_messagebytes_max=L.qg)(),B._crypto_sign_primitive=()=>(B._crypto_sign_primitive=L.rg)(),B._crypto_sign_seed_keypair=(A,I,g)=>(B._crypto_sign_seed_keypair=L.sg)(A,I,g),B._crypto_sign_keypair=(A,I)=>(B._crypto_sign_keypair=L.tg)(A,I),B._crypto_sign=(A,I,g,C,Q,i)=>(B._crypto_sign=L.ug)(A,I,g,C,Q,i),B._crypto_sign_open=(A,I,g,C,Q,i)=>(B._crypto_sign_open=L.vg)(A,I,g,C,Q,i),B._crypto_sign_detached=(A,I,g,C,Q,i)=>(B._crypto_sign_detached=L.wg)(A,I,g,C,Q,i),B._crypto_sign_verify_detached=(A,I,g,C,Q)=>(B._crypto_sign_verify_detached=L.xg)(A,I,g,C,Q),B._crypto_sign_init=A=>(B._crypto_sign_init=L.yg)(A),B._crypto_sign_update=(A,I,g,C)=>(B._crypto_sign_update=L.zg)(A,I,g,C),B._crypto_sign_final_create=(A,I,g,C)=>(B._crypto_sign_final_create=L.Ag)(A,I,g,C),B._crypto_sign_final_verify=(A,I,g)=>(B._crypto_sign_final_verify=L.Bg)(A,I,g),B._crypto_sign_ed25519ph_statebytes=()=>(B._crypto_sign_ed25519ph_statebytes=L.Cg)(),B._crypto_sign_ed25519_bytes=()=>(B._crypto_sign_ed25519_bytes=L.Dg)(),B._crypto_sign_ed25519_seedbytes=()=>(B._crypto_sign_ed25519_seedbytes=L.Eg)(),B._crypto_sign_ed25519_publickeybytes=()=>(B._crypto_sign_ed25519_publickeybytes=L.Fg)(),B._crypto_sign_ed25519_secretkeybytes=()=>(B._crypto_sign_ed25519_secretkeybytes=L.Gg)(),B._crypto_sign_ed25519_messagebytes_max=()=>(B._crypto_sign_ed25519_messagebytes_max=L.Hg)(),B._crypto_sign_ed25519_sk_to_seed=(A,I)=>(B._crypto_sign_ed25519_sk_to_seed=L.Ig)(A,I),B._crypto_sign_ed25519_sk_to_pk=(A,I)=>(B._crypto_sign_ed25519_sk_to_pk=L.Jg)(A,I),B._crypto_sign_ed25519ph_init=A=>(B._crypto_sign_ed25519ph_init=L.Kg)(A),B._crypto_sign_ed25519ph_update=(A,I,g,C)=>(B._crypto_sign_ed25519ph_update=L.Lg)(A,I,g,C),B._crypto_sign_ed25519ph_final_create=(A,I,g,C)=>(B._crypto_sign_ed25519ph_final_create=L.Mg)(A,I,g,C),B._crypto_sign_ed25519ph_final_verify=(A,I,g)=>(B._crypto_sign_ed25519ph_final_verify=L.Ng)(A,I,g),B._crypto_sign_ed25519_seed_keypair=(A,I,g)=>(B._crypto_sign_ed25519_seed_keypair=L.Og)(A,I,g),B._crypto_sign_ed25519_keypair=(A,I)=>(B._crypto_sign_ed25519_keypair=L.Pg)(A,I),B._crypto_sign_ed25519_pk_to_curve25519=(A,I)=>(B._crypto_sign_ed25519_pk_to_curve25519=L.Qg)(A,I),B._crypto_sign_ed25519_sk_to_curve25519=(A,I)=>(B._crypto_sign_ed25519_sk_to_curve25519=L.Rg)(A,I),B._crypto_sign_ed25519_verify_detached=(A,I,g,C,Q)=>(B._crypto_sign_ed25519_verify_detached=L.Sg)(A,I,g,C,Q),B._crypto_sign_ed25519_open=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519_open=L.Tg)(A,I,g,C,Q,i),B._crypto_sign_ed25519_detached=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519_detached=L.Ug)(A,I,g,C,Q,i),B._crypto_sign_ed25519=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519=L.Vg)(A,I,g,C,Q,i),B._crypto_stream_chacha20_keybytes=()=>(B._crypto_stream_chacha20_keybytes=L.Wg)(),B._crypto_stream_chacha20_noncebytes=()=>(B._crypto_stream_chacha20_noncebytes=L.Xg)(),B._crypto_stream_chacha20_messagebytes_max=()=>(B._crypto_stream_chacha20_messagebytes_max=L.Yg)(),B._crypto_stream_chacha20_ietf_keybytes=()=>(B._crypto_stream_chacha20_ietf_keybytes=L.Zg)(),B._crypto_stream_chacha20_ietf_noncebytes=()=>(B._crypto_stream_chacha20_ietf_noncebytes=L._g)(),B._crypto_stream_chacha20_ietf_messagebytes_max=()=>(B._crypto_stream_chacha20_ietf_messagebytes_max=L.$g)(),B._crypto_stream_chacha20=(A,I,g,C,Q)=>(B._crypto_stream_chacha20=L.ah)(A,I,g,C,Q),B._crypto_stream_chacha20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_chacha20_xor_ic=L.bh)(A,I,g,C,Q,i,o,E),B._crypto_stream_chacha20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_chacha20_xor=L.ch)(A,I,g,C,Q,i),B._crypto_stream_chacha20_ietf=(A,I,g,C,Q)=>(B._crypto_stream_chacha20_ietf=L.dh)(A,I,g,C,Q),B._crypto_stream_chacha20_ietf_xor_ic=(A,I,g,C,Q,i,o)=>(B._crypto_stream_chacha20_ietf_xor_ic=L.eh)(A,I,g,C,Q,i,o),B._crypto_stream_chacha20_ietf_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_chacha20_ietf_xor=L.fh)(A,I,g,C,Q,i),B._crypto_stream_chacha20_ietf_keygen=A=>(B._crypto_stream_chacha20_ietf_keygen=L.gh)(A),B._crypto_stream_chacha20_keygen=A=>(B._crypto_stream_chacha20_keygen=L.hh)(A),B._crypto_stream_keybytes=()=>(B._crypto_stream_keybytes=L.ih)(),B._crypto_stream_noncebytes=()=>(B._crypto_stream_noncebytes=L.jh)(),B._crypto_stream_messagebytes_max=()=>(B._crypto_stream_messagebytes_max=L.kh)(),B._crypto_stream_primitive=()=>(B._crypto_stream_primitive=L.lh)(),B._crypto_stream=(A,I,g,C,Q)=>(B._crypto_stream=L.mh)(A,I,g,C,Q),B._crypto_stream_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xor=L.nh)(A,I,g,C,Q,i),B._crypto_stream_keygen=A=>(B._crypto_stream_keygen=L.oh)(A),B._crypto_stream_salsa20_keybytes=()=>(B._crypto_stream_salsa20_keybytes=L.ph)(),B._crypto_stream_salsa20_noncebytes=()=>(B._crypto_stream_salsa20_noncebytes=L.qh)(),B._crypto_stream_salsa20_messagebytes_max=()=>(B._crypto_stream_salsa20_messagebytes_max=L.rh)(),B._crypto_stream_salsa20=(A,I,g,C,Q)=>(B._crypto_stream_salsa20=L.sh)(A,I,g,C,Q),B._crypto_stream_salsa20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_salsa20_xor_ic=L.th)(A,I,g,C,Q,i,o,E),B._crypto_stream_salsa20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa20_xor=L.uh)(A,I,g,C,Q,i),B._crypto_stream_salsa20_keygen=A=>(B._crypto_stream_salsa20_keygen=L.vh)(A),B._crypto_stream_xsalsa20=(A,I,g,C,Q)=>(B._crypto_stream_xsalsa20=L.wh)(A,I,g,C,Q),B._crypto_stream_xsalsa20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_xsalsa20_xor_ic=L.xh)(A,I,g,C,Q,i,o,E),B._crypto_stream_xsalsa20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xsalsa20_xor=L.yh)(A,I,g,C,Q,i),B._crypto_stream_xsalsa20_keybytes=()=>(B._crypto_stream_xsalsa20_keybytes=L.zh)(),B._crypto_stream_xsalsa20_noncebytes=()=>(B._crypto_stream_xsalsa20_noncebytes=L.Ah)(),B._crypto_stream_xsalsa20_messagebytes_max=()=>(B._crypto_stream_xsalsa20_messagebytes_max=L.Bh)(),B._crypto_stream_xsalsa20_keygen=A=>(B._crypto_stream_xsalsa20_keygen=L.Ch)(A),B._crypto_verify_16_bytes=()=>(B._crypto_verify_16_bytes=L.Dh)(),B._crypto_verify_32_bytes=()=>(B._crypto_verify_32_bytes=L.Eh)(),B._crypto_verify_64_bytes=()=>(B._crypto_verify_64_bytes=L.Fh)(),B._crypto_verify_16=(A,I)=>(B._crypto_verify_16=L.Gh)(A,I),B._crypto_verify_32=(A,I)=>(B._crypto_verify_32=L.Hh)(A,I),B._crypto_verify_64=(A,I)=>(B._crypto_verify_64=L.Ih)(A,I),B._randombytes_implementation_name=()=>(B._randombytes_implementation_name=L.Jh)(),B._randombytes_random=()=>(B._randombytes_random=L.Kh)(),B._randombytes_stir=()=>(B._randombytes_stir=L.Lh)(),B._randombytes_uniform=A=>(B._randombytes_uniform=L.Mh)(A),B._randombytes_buf=(A,I)=>(B._randombytes_buf=L.Nh)(A,I),B._randombytes_buf_deterministic=(A,I,g)=>(B._randombytes_buf_deterministic=L.Oh)(A,I,g),B._randombytes_seedbytes=()=>(B._randombytes_seedbytes=L.Ph)(),B._randombytes_close=()=>(B._randombytes_close=L.Qh)(),B._randombytes=(A,I,g)=>(B._randombytes=L.Rh)(A,I,g),B._sodium_bin2hex=(A,I,g,C)=>(B._sodium_bin2hex=L.Sh)(A,I,g,C),B._sodium_hex2bin=(A,I,g,C,Q,i,o)=>(B._sodium_hex2bin=L.Th)(A,I,g,C,Q,i,o),B._sodium_base64_encoded_len=(A,I)=>(B._sodium_base64_encoded_len=L.Uh)(A,I),B._sodium_bin2base64=(A,I,g,C,Q)=>(B._sodium_bin2base64=L.Vh)(A,I,g,C,Q),B._sodium_base642bin=(A,I,g,C,Q,i,o,E)=>(B._sodium_base642bin=L.Wh)(A,I,g,C,Q,i,o,E),B._sodium_init=()=>(B._sodium_init=L.Xh)(),B._sodium_pad=(A,I,g,C,Q)=>(B._sodium_pad=L.Yh)(A,I,g,C,Q),B._sodium_unpad=(A,I,g,C)=>(B._sodium_unpad=L.Zh)(A,I,g,C),B._sodium_version_string=()=>(B._sodium_version_string=L._h)(),B._sodium_library_version_major=()=>(B._sodium_library_version_major=L.$h)(),B._sodium_library_version_minor=()=>(B._sodium_library_version_minor=L.ai)(),B._sodium_library_minimal=()=>(B._sodium_library_minimal=L.bi)(),B._crypto_box_curve25519xchacha20poly1305_seed_keypair=(A,I,g)=>(B._crypto_box_curve25519xchacha20poly1305_seed_keypair=L.ci)(A,I,g),B._crypto_box_curve25519xchacha20poly1305_keypair=(A,I)=>(B._crypto_box_curve25519xchacha20poly1305_keypair=L.di)(A,I),B._crypto_box_curve25519xchacha20poly1305_beforenm=(A,I,g)=>(B._crypto_box_curve25519xchacha20poly1305_beforenm=L.ei)(A,I,g),B._crypto_box_curve25519xchacha20poly1305_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_detached_afternm=L.fi)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_curve25519xchacha20poly1305_detached=L.gi)(A,I,g,C,Q,i,o,E),B._crypto_box_curve25519xchacha20poly1305_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_easy_afternm=L.hi)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_easy=L.ii)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=L.ji)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_open_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_curve25519xchacha20poly1305_open_detached=L.ki)(A,I,g,C,Q,i,o,E),B._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=L.li)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_open_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_open_easy=L.mi)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_seedbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_seedbytes=L.ni)(),B._crypto_box_curve25519xchacha20poly1305_publickeybytes=()=>(B._crypto_box_curve25519xchacha20poly1305_publickeybytes=L.oi)(),B._crypto_box_curve25519xchacha20poly1305_secretkeybytes=()=>(B._crypto_box_curve25519xchacha20poly1305_secretkeybytes=L.pi)(),B._crypto_box_curve25519xchacha20poly1305_beforenmbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_beforenmbytes=L.qi)(),B._crypto_box_curve25519xchacha20poly1305_noncebytes=()=>(B._crypto_box_curve25519xchacha20poly1305_noncebytes=L.ri)(),B._crypto_box_curve25519xchacha20poly1305_macbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_macbytes=L.si)(),B._crypto_box_curve25519xchacha20poly1305_messagebytes_max=()=>(B._crypto_box_curve25519xchacha20poly1305_messagebytes_max=L.ti)(),B._crypto_box_curve25519xchacha20poly1305_seal=(A,I,g,C,Q)=>(B._crypto_box_curve25519xchacha20poly1305_seal=L.ui)(A,I,g,C,Q),B._crypto_box_curve25519xchacha20poly1305_seal_open=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_seal_open=L.vi)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_sealbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_sealbytes=L.wi)(),B._crypto_core_ed25519_is_valid_point=A=>(B._crypto_core_ed25519_is_valid_point=L.xi)(A),B._crypto_core_ed25519_add=(A,I,g)=>(B._crypto_core_ed25519_add=L.yi)(A,I,g),B._crypto_core_ed25519_sub=(A,I,g)=>(B._crypto_core_ed25519_sub=L.zi)(A,I,g),B._crypto_core_ed25519_from_uniform=(A,I)=>(B._crypto_core_ed25519_from_uniform=L.Ai)(A,I),B._crypto_core_ed25519_random=A=>(B._crypto_core_ed25519_random=L.Bi)(A),B._crypto_core_ed25519_scalar_random=A=>(B._crypto_core_ed25519_scalar_random=L.Ci)(A),B._crypto_core_ed25519_scalar_invert=(A,I)=>(B._crypto_core_ed25519_scalar_invert=L.Di)(A,I),B._crypto_core_ed25519_scalar_negate=(A,I)=>(B._crypto_core_ed25519_scalar_negate=L.Ei)(A,I),B._crypto_core_ed25519_scalar_complement=(A,I)=>(B._crypto_core_ed25519_scalar_complement=L.Fi)(A,I),B._crypto_core_ed25519_scalar_add=(A,I,g)=>(B._crypto_core_ed25519_scalar_add=L.Gi)(A,I,g),B._crypto_core_ed25519_scalar_reduce=(A,I)=>(B._crypto_core_ed25519_scalar_reduce=L.Hi)(A,I),B._crypto_core_ed25519_scalar_sub=(A,I,g)=>(B._crypto_core_ed25519_scalar_sub=L.Ii)(A,I,g),B._crypto_core_ed25519_scalar_mul=(A,I,g)=>(B._crypto_core_ed25519_scalar_mul=L.Ji)(A,I,g),B._crypto_core_ed25519_bytes=()=>(B._crypto_core_ed25519_bytes=L.Ki)(),B._crypto_core_ed25519_nonreducedscalarbytes=()=>(B._crypto_core_ed25519_nonreducedscalarbytes=L.Li)(),B._crypto_core_ed25519_uniformbytes=()=>(B._crypto_core_ed25519_uniformbytes=L.Mi)(),B._crypto_core_ed25519_hashbytes=()=>(B._crypto_core_ed25519_hashbytes=L.Ni)(),B._crypto_core_ed25519_scalarbytes=()=>(B._crypto_core_ed25519_scalarbytes=L.Oi)(),B._crypto_core_ristretto255_is_valid_point=A=>(B._crypto_core_ristretto255_is_valid_point=L.Pi)(A),B._crypto_core_ristretto255_add=(A,I,g)=>(B._crypto_core_ristretto255_add=L.Qi)(A,I,g),B._crypto_core_ristretto255_sub=(A,I,g)=>(B._crypto_core_ristretto255_sub=L.Ri)(A,I,g),B._crypto_core_ristretto255_from_hash=(A,I)=>(B._crypto_core_ristretto255_from_hash=L.Si)(A,I),B._crypto_core_ristretto255_random=A=>(B._crypto_core_ristretto255_random=L.Ti)(A),B._crypto_core_ristretto255_scalar_random=A=>(B._crypto_core_ristretto255_scalar_random=L.Ui)(A),B._crypto_core_ristretto255_scalar_invert=(A,I)=>(B._crypto_core_ristretto255_scalar_invert=L.Vi)(A,I),B._crypto_core_ristretto255_scalar_negate=(A,I)=>(B._crypto_core_ristretto255_scalar_negate=L.Wi)(A,I),B._crypto_core_ristretto255_scalar_complement=(A,I)=>(B._crypto_core_ristretto255_scalar_complement=L.Xi)(A,I),B._crypto_core_ristretto255_scalar_add=(A,I,g)=>(B._crypto_core_ristretto255_scalar_add=L.Yi)(A,I,g),B._crypto_core_ristretto255_scalar_sub=(A,I,g)=>(B._crypto_core_ristretto255_scalar_sub=L.Zi)(A,I,g),B._crypto_core_ristretto255_scalar_mul=(A,I,g)=>(B._crypto_core_ristretto255_scalar_mul=L._i)(A,I,g),B._crypto_core_ristretto255_scalar_reduce=(A,I)=>(B._crypto_core_ristretto255_scalar_reduce=L.$i)(A,I),B._crypto_core_ristretto255_bytes=()=>(B._crypto_core_ristretto255_bytes=L.aj)(),B._crypto_core_ristretto255_nonreducedscalarbytes=()=>(B._crypto_core_ristretto255_nonreducedscalarbytes=L.bj)(),B._crypto_core_ristretto255_hashbytes=()=>(B._crypto_core_ristretto255_hashbytes=L.cj)(),B._crypto_core_ristretto255_scalarbytes=()=>(B._crypto_core_ristretto255_scalarbytes=L.dj)(),B._crypto_pwhash_scryptsalsa208sha256_ll=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_pwhash_scryptsalsa208sha256_ll=L.ej)(A,I,g,C,Q,i,o,E,a,_),B._crypto_pwhash_scryptsalsa208sha256_bytes_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_bytes_min=L.fj)(),B._crypto_pwhash_scryptsalsa208sha256_bytes_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_bytes_max=L.gj)(),B._crypto_pwhash_scryptsalsa208sha256_passwd_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_passwd_min=L.hj)(),B._crypto_pwhash_scryptsalsa208sha256_passwd_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_passwd_max=L.ij)(),B._crypto_pwhash_scryptsalsa208sha256_saltbytes=()=>(B._crypto_pwhash_scryptsalsa208sha256_saltbytes=L.jj)(),B._crypto_pwhash_scryptsalsa208sha256_strbytes=()=>(B._crypto_pwhash_scryptsalsa208sha256_strbytes=L.kj)(),B._crypto_pwhash_scryptsalsa208sha256_strprefix=()=>(B._crypto_pwhash_scryptsalsa208sha256_strprefix=L.lj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_min=L.mj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_max=L.nj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_min=L.oj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_max=L.pj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=L.qj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=L.rj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=L.sj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=L.tj)(),B._crypto_pwhash_scryptsalsa208sha256=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_pwhash_scryptsalsa208sha256=L.uj)(A,I,g,C,Q,i,o,E,a,_),B._crypto_pwhash_scryptsalsa208sha256_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_scryptsalsa208sha256_str=L.vj)(A,I,g,C,Q,i,o),B._crypto_pwhash_scryptsalsa208sha256_str_verify=(A,I,g,C)=>(B._crypto_pwhash_scryptsalsa208sha256_str_verify=L.wj)(A,I,g,C),B._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=L.xj)(A,I,g,C),B._crypto_scalarmult_ed25519=(A,I,g)=>(B._crypto_scalarmult_ed25519=L.yj)(A,I,g),B._crypto_scalarmult_ed25519_noclamp=(A,I,g)=>(B._crypto_scalarmult_ed25519_noclamp=L.zj)(A,I,g),B._crypto_scalarmult_ed25519_base=(A,I)=>(B._crypto_scalarmult_ed25519_base=L.Aj)(A,I),B._crypto_scalarmult_ed25519_base_noclamp=(A,I)=>(B._crypto_scalarmult_ed25519_base_noclamp=L.Bj)(A,I),B._crypto_scalarmult_ed25519_bytes=()=>(B._crypto_scalarmult_ed25519_bytes=L.Cj)(),B._crypto_scalarmult_ed25519_scalarbytes=()=>(B._crypto_scalarmult_ed25519_scalarbytes=L.Dj)(),B._crypto_scalarmult_ristretto255=(A,I,g)=>(B._crypto_scalarmult_ristretto255=L.Ej)(A,I,g),B._crypto_scalarmult_ristretto255_base=(A,I)=>(B._crypto_scalarmult_ristretto255_base=L.Fj)(A,I),B._crypto_scalarmult_ristretto255_bytes=()=>(B._crypto_scalarmult_ristretto255_bytes=L.Gj)(),B._crypto_scalarmult_ristretto255_scalarbytes=()=>(B._crypto_scalarmult_ristretto255_scalarbytes=L.Hj)(),B._crypto_secretbox_xchacha20poly1305_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_xchacha20poly1305_detached=L.Ij)(A,I,g,C,Q,i,o),B._crypto_secretbox_xchacha20poly1305_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xchacha20poly1305_easy=L.Jj)(A,I,g,C,Q,i),B._crypto_secretbox_xchacha20poly1305_open_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_xchacha20poly1305_open_detached=L.Kj)(A,I,g,C,Q,i,o),B._crypto_secretbox_xchacha20poly1305_open_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xchacha20poly1305_open_easy=L.Lj)(A,I,g,C,Q,i),B._crypto_secretbox_xchacha20poly1305_keybytes=()=>(B._crypto_secretbox_xchacha20poly1305_keybytes=L.Mj)(),B._crypto_secretbox_xchacha20poly1305_noncebytes=()=>(B._crypto_secretbox_xchacha20poly1305_noncebytes=L.Nj)(),B._crypto_secretbox_xchacha20poly1305_macbytes=()=>(B._crypto_secretbox_xchacha20poly1305_macbytes=L.Oj)(),B._crypto_secretbox_xchacha20poly1305_messagebytes_max=()=>(B._crypto_secretbox_xchacha20poly1305_messagebytes_max=L.Pj)(),B._crypto_shorthash_siphashx24_bytes=()=>(B._crypto_shorthash_siphashx24_bytes=L.Qj)(),B._crypto_shorthash_siphashx24_keybytes=()=>(B._crypto_shorthash_siphashx24_keybytes=L.Rj)(),B._crypto_shorthash_siphashx24=(A,I,g,C,Q)=>(B._crypto_shorthash_siphashx24=L.Sj)(A,I,g,C,Q),B._crypto_stream_salsa2012=(A,I,g,C,Q)=>(B._crypto_stream_salsa2012=L.Tj)(A,I,g,C,Q),B._crypto_stream_salsa2012_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa2012_xor=L.Uj)(A,I,g,C,Q,i),B._crypto_stream_salsa2012_keybytes=()=>(B._crypto_stream_salsa2012_keybytes=L.Vj)(),B._crypto_stream_salsa2012_noncebytes=()=>(B._crypto_stream_salsa2012_noncebytes=L.Wj)(),B._crypto_stream_salsa2012_messagebytes_max=()=>(B._crypto_stream_salsa2012_messagebytes_max=L.Xj)(),B._crypto_stream_salsa2012_keygen=A=>(B._crypto_stream_salsa2012_keygen=L.Yj)(A),B._crypto_stream_salsa208=(A,I,g,C,Q)=>(B._crypto_stream_salsa208=L.Zj)(A,I,g,C,Q),B._crypto_stream_salsa208_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa208_xor=L._j)(A,I,g,C,Q,i),B._crypto_stream_salsa208_keybytes=()=>(B._crypto_stream_salsa208_keybytes=L.$j)(),B._crypto_stream_salsa208_noncebytes=()=>(B._crypto_stream_salsa208_noncebytes=L.ak)(),B._crypto_stream_salsa208_messagebytes_max=()=>(B._crypto_stream_salsa208_messagebytes_max=L.bk)(),B._crypto_stream_salsa208_keygen=A=>(B._crypto_stream_salsa208_keygen=L.ck)(A),B._crypto_stream_xchacha20_keybytes=()=>(B._crypto_stream_xchacha20_keybytes=L.dk)(),B._crypto_stream_xchacha20_noncebytes=()=>(B._crypto_stream_xchacha20_noncebytes=L.ek)(),B._crypto_stream_xchacha20_messagebytes_max=()=>(B._crypto_stream_xchacha20_messagebytes_max=L.fk)(),B._crypto_stream_xchacha20=(A,I,g,C,Q)=>(B._crypto_stream_xchacha20=L.gk)(A,I,g,C,Q),B._crypto_stream_xchacha20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_xchacha20_xor_ic=L.hk)(A,I,g,C,Q,i,o,E),B._crypto_stream_xchacha20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xchacha20_xor=L.ik)(A,I,g,C,Q,i),B._crypto_stream_xchacha20_keygen=A=>(B._crypto_stream_xchacha20_keygen=L.jk)(A),B._malloc=A=>(B._malloc=L.kk)(A),B._free=A=>(B._free=L.lk)(A),B.setValue=function(A,I,g=\"i8\"){switch(g.endsWith(\"*\")&&(g=\"*\"),g){case\"i1\":case\"i8\":s[A]=I;break;case\"i16\":D[A>>1]=I;break;case\"i32\":f[A>>2]=I;break;case\"i64\":b(\"to do setValue(i64) use WASM_BIGINT\");case\"float\":w[A>>2]=I;break;case\"double\":n[A>>3]=I;break;case\"*\":p[A>>2]=I;break;default:b(`invalid type for setValue: ${g}`)}},B.getValue=function(A,I=\"i8\"){switch(I.endsWith(\"*\")&&(I=\"*\"),I){case\"i1\":case\"i8\":return s[A];case\"i16\":return D[A>>1];case\"i32\":return f[A>>2];case\"i64\":b(\"to do getValue(i64) use WASM_BIGINT\");case\"float\":return w[A>>2];case\"double\":return n[A>>3];case\"*\":return p[A>>2];default:b(`invalid type for getValue: ${I}`)}},B.UTF8ToString=u,U=function A(){m||P(),m||(U=A)},B.preInit)for(\"function\"==typeof B.preInit&&(B.preInit=[B.preInit]);B.preInit.length>0;)B.preInit.pop()();P()}))};var g,B=void 0!==B?B:{},Q=\"object\"==typeof window,i=\"function\"==typeof importScripts,o=\"object\"==typeof process&&\"object\"==typeof process.versions&&\"string\"==typeof process.versions.node,E=Object.assign({},B),a=\"\";if(o){var _=require(\"fs\"),c=require(\"path\");a=__dirname+\"/\",g=A=>(A=Y(A)?new URL(A):c.normalize(A),_.readFileSync(A)),!B.thisProgram&&process.argv.length>1&&process.argv[1].replace(/\\\\/g,\"/\"),process.argv.slice(2),\"undefined\"!=typeof module&&(module.exports=B)}else(Q||i)&&(i?a=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(a=document.currentScript.src),a=a.startsWith(\"blob:\")?\"\":a.substr(0,a.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1),i&&(g=A=>{var I=new XMLHttpRequest;return I.open(\"GET\",A,!1),I.responseType=\"arraybuffer\",I.send(null),new Uint8Array(I.response)}));B.print;var t,r,e=B.printErr||void 0;Object.assign(B,E),E=null,B.arguments&&B.arguments,B.thisProgram&&B.thisProgram,B.quit&&B.quit,B.wasmBinary&&(t=B.wasmBinary);var y,s,h,D,f,p,w,n=!1;function k(){var A=r.buffer;B.HEAP8=y=new Int8Array(A),B.HEAP16=h=new Int16Array(A),B.HEAPU8=s=new Uint8Array(A),B.HEAPU16=new Uint16Array(A),B.HEAP32=D=new Int32Array(A),B.HEAPU32=f=new Uint32Array(A),B.HEAPF32=p=new Float32Array(A),B.HEAPF64=w=new Float64Array(A)}var F=[],S=[],N=[],G=0,M=null,K=null;function U(A){throw B.onAbort?.(A),e(A=\"Aborted(\"+A+\")\"),n=!0,A+=\". Build with -sASSERTIONS for more info.\",new WebAssembly.RuntimeError(A)}var b,H=\"data:application/octet-stream;base64,\",Y=A=>A.startsWith(\"file://\");function J(A){return Promise.resolve().then((()=>function(A){if(A==b&&t)return new Uint8Array(t);var I=function(A){if((A=>A.startsWith(H))(A))return function(A){if(void 0!==o&&o){var I=Buffer.from(A,\"base64\");return new Uint8Array(I.buffer,I.byteOffset,I.length)}for(var g=atob(A),C=new Uint8Array(g.length),B=0;BB.getRandomValue(),36836:()=>{if(void 0===B.getRandomValue)try{var A=\"object\"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto;I=void 0===I?C:I;var g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),B.getRandomValue=g}catch(A){try{var C=require(\"crypto\"),Q=function(){var A=C.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};Q(),B.getRandomValue=Q}catch(A){throw\"No secure random number generator found\"}}}},m=A=>{for(;A.length>0;)A.shift()(B)};B.noExitRuntime;var l,u=\"undefined\"!=typeof TextDecoder?new TextDecoder:void 0,x=(A,I)=>A?((A,I,g)=>{for(var C=I+g,B=I;A[B]&&!(B>=C);)++B;if(B-I>16&&A.buffer&&u)return u.decode(A.subarray(I,B));for(var Q=\"\";I>10,56320|1023&a)}}else Q+=String.fromCharCode((31&i)<<6|o)}else Q+=String.fromCharCode(i)}return Q})(s,A,I):\"\",v=[],R=A=>{var I=(A-r.buffer.byteLength+65535)/65536;try{return r.grow(I),k(),1}catch(A){}},L={b:(A,I,g,C)=>{U(`Assertion failed: ${x(A)}, at: `+[I?x(I):\"unknown filename\",g,C?x(C):\"unknown function\"])},c:()=>{U(\"\")},d:(A,I,g)=>s.copyWithin(A,I,I+g),a:(A,I,g)=>((A,I,g)=>{var C=((A,I)=>{var g;for(v.length=0;g=s[A++];){var C=105!=g;I+=(C&=112!=g)&&I%8?4:0,v.push(112==g?f[I>>2]:105==g?D[I>>2]:w[I>>3]),I+=C?8:4}return v})(I,g);return d[A](...C)})(A,I,g),e:A=>{var I=s.length,g=2147483648;if((A>>>=0)>g)return!1;for(var C,B=1;B<=4;B*=2){var Q=I*(1+.2/B);Q=Math.min(Q,A+100663296);var i=Math.min(g,(C=Math.max(A,Q))+(65536-C%65536)%65536);if(R(i))return!0}return!1}},P=function(){var A,I={a:L};function g(A,I){return P=A.exports,r=P.f,k(),function(A){if(G--,B.monitorRunDependencies?.(G),0==G&&(null!==M&&(clearInterval(M),M=null),K)){var I=K;K=null,I()}}(),P}if(G++,B.monitorRunDependencies?.(G),B.instantiateWasm)try{return B.instantiateWasm(I,g)}catch(A){return e(`Module.instantiateWasm callback failed with error: ${A}`),!1}return b||(b=\"data:application/octet-stream;base64,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AkJmAFcCQ2YAEgJEZgCrAQJFZgCjAgJGZgCqAQJHZgCpAQJIZgBYAklmAFcCSmYACgJLZgAlAkxmAAoCTWYADQJOZgANAk9mACwCUGYAEgJRZgASAlJmAJ4DAlNmAJ0DAlRmAJwDAlVmAKICAlZmAKECAldmAJsDAlhmAJoDAllmACUCWmYACgJfZgCZAwIkZgAcAmFnAFECYmcAOQJjZwBkAmRnACcCZWcADQJmZwDoAgJnZwChAQJoZwDzAQJpZwAnAmpnAA0Ca2cAoQECbGcAUAJtZwAWAm5nAAoCb2cACgJwZwAWAnFnAMoBAnJnAIADAnNnAP8CAnRnAP4CAnVnAKABAnZnAJ8BAndnAJ4BAnhnAJ0BAnlnAP0CAnpnAHECQWcA/AICQmcA+wICQ2cAUAJEZwAWAkVnAAoCRmcACgJHZwAWAkhnAMoBAklnAIIDAkpnAIEDAktnAMkBAkxnAHECTWcAyAECTmcAxwECT2cAzAECUGcAywECUWcAhwMCUmcAhgMCU2cAnQECVGcAnwECVWcAngECVmcAoAECV2cACgJYZwAnAllnABQCWmcACgJfZwDrAQIkZwAUAmFoAJ8CAmJoAJ4CAmNoAJ0CAmRoAJwCAmVoAJsCAmZoAJoCAmdoABICaGgAEgJpaAAKAmpoACUCa2gAFAJsaACIAwJtaACcAQJuaACbAQJvaAASAnBoAAoCcWgAJwJyaAAUAnNoAJgCAnRoAJcCAnVoAJYCAnZoABICd2gAnAECeGgAlQICeWgAmwECemgACgJBaAAlAkJoABQCQ2gAEgJEaAANAkVoAAoCRmgAFgJHaAA3AkhoAD8CSWgAsQECSmgAvAMCS2gAuwMCTGgA6AECTWgAugMCTmgAGQJPaAC5AwJQaAAKAlFoALgDAlJoAJQCAlNoAJIDAlRoAJEDAlVoAJADAlZoAIIBAldoAIEBAlhoAMEDAlloALQDAlpoAKsDAl9oANgCAiRoANcCAmFpADkCYmkAHAJjaQB6AmRpAEECZWkAiQMCZmkAmgECZ2kAkwICaGkAkgICaWkAkAICamkAmQECa2kAjwICbGkAmAECbWkAjgICbmkACgJvaQAKAnBpAAoCcWkACgJyaQAlAnNpAA0CdGkALAJ1aQCNAgJ2aQCMAgJ3aQDBAQJ4aQCwAwJ5aQCvAwJ6aQCuAwJBaQCt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iEL///8AgyIIIAEoAA8iO0EGdkH///8Aca0iBn58IAEoAAoiPEEYdq0gATEADkIIhoQgATEAD0IQhoRCAYhC////AIMiDCACKAAKIj1BBHZB////AHGtIg1+fCA5QRh2rSACMQAGQgiGhCACMQAHQhCGhEICiEL///8AgyIOIDtBGHatIAExABNCCIaEIAExABRCEIaEQgOIIgl+fCACKAAPIjlBBnZB////AHGtIgcgATUAB0IHiEL///8AgyIPfnwgPUEYdq0gAjEADkIIhoQgAjEAD0IQhoRCAYhC////AIMiCiA8QQR2Qf///wBxrSIQfnwgOUEYdq0gAjEAE0IIhoQgAjEAFEIQhoRCA4giESABKAACIjlBGHatIAExAAZCCIaEIAExAAdCEIaEQgKIQv///wCDIhJ+fCACMwAVIAIxABdCEIZCgID8AIOEIhUgOUEFdkH///8Aca0iFn58IAEzAAAgATEAAkIQhkKAgPwAg4QiFyACKAAXIjlBBXZB////AHGtIhh+fCAEIAV+IAkgC358IAggDH58IA0gEH58IAYgDn58IAcgEn58IAogD358IBEgFn58IBUgF358Ih1CgIBAfSIeQhWIfCITIBNCgIBAfSIgQoCAgH+DfSA5QRh2rSACMQAbQgiGhCACMQAcQhCGhEICiEL///8AgyITIAEoABxBB3atIhl+IDpBGHatIAExABtCCIaEIAExABxCEIaEQgKIQv///wCDIhogAigAHEEHdq0iG358IAMgG34gGCAZfnwgEyAafnwiIUKAgEB9Ih9CFYh8IiIgIkKAgEB9IhxCgICA/////wCDfSIiQpPYKH58ICEgH0KAgID/////AIN9IBUgGX4gGCAafnwgBCAbfnwgAyATfnwgAyAYfiARIBl+fCAVIBp+fCAJIBt+fCAEIBN+fCIjQoCAQH0iFEIViHwiH0KAgEB9IiRCFYh8IiFCmNocfnwgHyAkQoCAgH+DfSIfQuf2J358ICMgFEKAgIB/g30gESAafiAHIBl+fCAEIBh+fCADIBV+fCAGIBt+fCAJIBN+fCAKIBl+IAcgGn58IAMgEX58IAkgGH58IAQgFX58IAwgG358IAYgE358IhRCgIBAfSIkQhWIfCIlQoCAQH0iJkIViHwiI0LTjEN+fCAdIAUgCX4gBiALfnwgCCAQfnwgDSAPfnwgDCAOfnwgByAWfnwgCiASfnwgESAXfnwgBSAGfiALIAx+fCAIIA9+fCANIBJ+fCAOIBB+fCAHIBd+fCAKIBZ+fCIpQoCAQH0iKkIViHwiK0KAgEB9IixCFYh8IB5CgICAf4N9ICFCk9gofnwgH0KY2hx+fCAjQuf2J358Ii1CgIBAfSIuQhWHfCIvQoCAQH0iMEIVhyAFIBp+IAMgC358IAggCX58IAYgDX58IAQgDn58IAcgEH58IAogDH58IA8gEX58IBYgGH58IBIgFX58IBMgF358Ih4gGSAbfiIdIB1CgIBAfSInQoCAgP////8Dg30gHEIViHwiHUKT2Ch+ICBCFYh8ICJCmNocfnx8ICFC5/YnfnwgH0LTjEN+fCAeQoCAQH0iMUKAgIB/g30gI0LRqwh+fCIcfCAlICZCgICAf4N9IBQgJ0IViCIeQoOhVn58ICRCgICAf4N9IAMgB34gDSAZfnwgCiAafnwgBCARfnwgBiAYfnwgCSAVfnwgECAbfnwgDCATfnwgDSAafiAIIBl+fCAEIAd+fCADIAp+fCAJIBF+fCAMIBh+fCAGIBV+fCAPIBt+fCAQIBN+fCIUQoCAQH0iJEIViHwiJUKAgEB9IiZCFYh8IidCgIBAfSIoQhWHfCIgQoOhVn58IBxCgIBAfSIyQoCAgH+DfSIcIBxCgIBAfSIzQoCAgH+DfSAvIDBCgICAf4N9ICBC0asIfnwgJyAoQoCAgH+DfSAdQoOhVn4gHkLRqwh+fCAlfCAmQoCAgH+DfSAUIB5C04xDfnwgHULRqwh+fCAiQoOhVn58ICRCgICAf4N9IAMgDX4gCCAafnwgDiAZfnwgByAJfnwgBCAKfnwgBiARfnwgECAYfnwgDCAVfnwgEiAbfnwgDyATfnwgAyAIfiALIBl+fCAEIA1+fCAOIBp+fCAGIAd+fCAJIAp+fCAMIBF+fCAPIBh+fCAQIBV+fCAWIBt+fCASIBN+fCIkQoCAQH0iJUIViHwiJkKAgEB9Ii9CFYh8IjBCgIBAfSInQhWHfCIUQoCAQH0iKEIVh3wiHEKDoVZ+fCAtIC5CgICAf4N9ICsgLEKAgIB/g30gH0KT2Ch+fCAjQpjaHH58ICkgKkKAgIB/g30gBSAMfiALIBB+fCAIIBJ+fCANIBZ+fCAOIA9+fCAKIBd+fCAFIBB+IAsgD358IAggFn58IA0gF358IA4gEn58IilCgIBAfSIqQhWIfCIrQoCAQH0iLEIViHwgI0KT2Ch+fCItQoCAQH0iLkIVh3wiNEKAgEB9IjVCFYd8ICBC04xDfnwgHELRqwh+fCAUIChCgICAf4N9IhRCg6FWfnwiKEKAgEB9IjZCFYd8IjdCgIBAfSI4QhWHfCA3IDhCgICAf4N9ICggNkKAgIB/g30gNCA1QoCAgH+DfSAgQuf2J358IBxC04xDfnwgFELRqwh+fCAwICdCgICAf4N9IB1C04xDfiAeQuf2J358ICJC0asIfnwgIUKDoVZ+fCAmfCAvQoCAgH+DfSAdQuf2J34gHkKY2hx+fCAiQtOMQ358ICR8ICFC0asIfnwgH0KDoVZ+fCAlQoCAgH+DfSAFIBl+IAsgGn58IAQgCH58IAkgDX58IAMgDn58IAcgDH58IAYgCn58IBAgEX58IBIgGH58IA8gFX58IBcgG358IBMgFn58IDFCFYh8IgZCgIBAfSIMQhWIfCINQoCAQH0iCUIVh3wiBEKAgEB9IgdCFYd8IgNCg6FWfnwgLSAuQoCAgH+DfSAgQpjaHH58IBxC5/YnfnwgFELTjEN+fCADQtGrCH58IAQgB0KAgIB/g30iBEKDoVZ+fCIHQoCAQH0iCkIVh3wiEEKAgEB9IhFCFYd8IBAgEUKAgIB/g30gByAKQoCAgH+DfSArICxCgICAf4N9ICBCk9gofnwgHEKY2hx+fCAUQuf2J358IA0gCUKAgIB/g30gHUKY2hx+IB5Ck9gofnwgIkLn9id+fCAhQtOMQ358IB9C0asIfnwgBnwgI0KDoVZ+fCAMQoCAgH+DfSAyQhWHfCIMQoCAQH0iDUIVh3wiBkKDoVZ+fCADQtOMQ358IARC0asIfnwgKSAqQoCAgH+DfSAFIA9+IAsgEn58IAggF358IA4gFn58IAUgEn4gCyAWfnwgDiAXfnwiDkKAgEB9IglCFYh8IgdCgIBAfSIPQhWIfCAcQpPYKH58IBRCmNocfnwgBkLRqwh+fCADQuf2J358IARC04xDfnwiCkKAgEB9IhBCFYd8IhFCgIBAfSISQhWHfCARIAwgDUKAgIB/g30gM0IVh3wiDEKAgEB9Ig1CFYciCEKDoVZ+fCASQoCAgH+DfSAKIAhC0asIfnwgEEKAgIB/g30gByAPQoCAgH+DfSAUQpPYKH58IAZC04xDfnwgA0KY2hx+fCAEQuf2J358IA4gCyAXfiAFIBZ+fCAFIBd+IgVCgIBAfSILQhWIfCIHQoCAQH0iD0IViHwgCUKAgID///8Hg30gBkLn9id+fCADQpPYKH58IARCmNocfnwiA0KAgEB9Ig5CFYd8IglCgIBAfSIKQhWHfCAJIAhC04xDfnwgCkKAgIB/g30gAyAIQuf2J358IA5CgICAf4N9IAcgD0KAgID///8Hg30gBkKY2hx+fCAEQpPYKH58IAUgC0KAgID///8Bg30gBkKT2Ch+fCIFQoCAQH0iA0IVh3wiBEKAgEB9IgtCFYd8IAQgCEKY2hx+fCALQoCAgH+DfSAFIANCgICAf4N9IAhCk9gofnwiA0IVh3wiCEIVh3wiBkIVh3wiDkIVh3wiCUIVh3wiB0IVh3wiD0IVh3wiCkIVh3wiEEIVh3wiEUIVh3wiEkIVhyAMIA1CgICAf4N9fCILQhWHIgVCk9gofiADQv///wCDfCIEPAAAIAAgBEIIiDwAASAAIAVCmNocfiAIQv///wCDfCAEQhWHfCIDQguIPAAEIAAgA0IDiDwAAyAAIARCEIhCH4MgA0IFhoQ8AAIgACAFQuf2J34gBkL///8Ag3wgA0IVh3wiBEIGiDwABiAAIARCAoYgA0KAgOAAg0ITiIQ8AAUgACAFQtOMQ34gDkL///8Ag3wgBEIVh3wiA0IJiDwACSAAIANCAYg8AAggACADQgeGIARCgID/AINCDoiEPAAHIAAgBULRqwh+IAlC////AIN8IANCFYd8IgRCDIg8AAwgACAEQgSIPAALIAAgBEIEhiADQoCA+ACDQhGIhDwACiAAIAVCg6FWfiAHQv///wCDfCAEQhWHfCIDQgeIPAAOIAAgA0IBhiAEQoCAwACDQhSIhDwADSAAIA9C////AIMgA0IVh3wiBUIKiDwAESAAIAVCAog8ABAgACAFQgaGIANCgID+AINCD4iEPAAPIAAgCkL///8AgyAFQhWHfCIDQg2IPAAUIAAgA0IFiDwAEyAAIBBC////AIMgA0IVh3wiBDwAFSAAIANCA4YgBUKAgPAAg0ISiIQ8ABIgACAEQgiIPAAWIAAgEUL///8AgyAEQhWHfCIFQguIPAAZIAAgBUIDiDwAGCAAIARCEIhCH4MgBUIFhoQ8ABcgACASQv///wCDIAVCFYd8IgNCBog8ABsgACADQgKGIAVCgIDgAINCE4iEPAAaIAAgA0IVhyIEIAtC////AIN8IgVCEYg8AB8gACAFQgmIPAAeIAAgBUIHhiADQoCA/wCDQg6IhDwAHCAAIASnIAunakEBdq08AB0L7gQBD38gASgCDCEEIAEoAgghBSABKAIEIQYjAEFAakFAcSIDIAEoAgAiAUH/AXFBAnRBoJcCaigCADYCACADIAZBBnZB/AdxQaCXAmooAgA2AgQgAyAFQQ52QfwHcUGglwJqKAIANgIIIAMgBEEWdkH8B3FBoJcCaigCADYCDCADIAZB/wFxQQJ0QaCXAmooAgA2AhAgAyAFQQZ2QfwHcUGglwJqKAIANgIUIAMgBEEOdkH8B3FBoJcCaigCADYCGCADIAFBFnZB/AdxQaCXAmooAgA2AhwgAyAFQf8BcUECdEGglwJqKAIANgIgIAMgBEEGdkH8B3FBoJcCaigCADYCJCADIAFBDnZB/AdxQaCXAmooAgA2AiggAyAGQRZ2QfwHcUGglwJqKAIANgIsIAMgBEH/AXFBAnRBoJcCaigCADYCMCADIAFBBnZB/AdxQaCXAmooAgA2AjQgAyAGQQ52QfwHcUGglwJqKAIANgI4IAMgBUEWdkH8B3FBoJcCaigCADYCPCADKAIMIQEgAygCACEEIAMoAgQhBSADKAIIIQYgAygCHCEHIAMoAhAhCCADKAIUIQkgAygCGCEKIAMoAiwhCyADKAIgIQwgAygCJCENIAMoAighDiACKAIAIQ8gAigCBCEQIAIoAgghESAAIAIoAgwgAygCMCADKAI0QQh3cyADKAI4QRB3cyADKAI8QRh3c3M2AgwgACARIAwgDUEId3MgDkEQd3MgC0EYd3NzNgIIIAAgECAIIAlBCHdzIApBEHdzIAdBGHdzczYCBCAAIA8gBCAFQQh3cyAGQRB3cyABQRh3c3M2AgALCwAgAEEAIAEQDBoLBABBIAuCBAEDfyACQYAETwRAIAAgASACEAMgAA8LIAAgAmohAwJAIAAgAXNBA3FFBEACQCAAQQNxRQRAIAAhAgwBCyACRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAkEDcUUNASACIANJDQALCyADQXxxIQQCQCADQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAvyAgICfwF+AkAgAkUNACAAIAE6AAAgACACaiIDQQFrIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0EDayABOgAAIANBAmsgAToAACACQQdJDQAgACABOgADIANBBGsgAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkEEayABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBCGsgATYCACACQQxrIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQRBrIAE2AgAgAkEUayABNgIAIAJBGGsgATYCACACQRxrIAE2AgAgBCADQQRxQRhyIgRrIgJBIEkNACABrUKBgICAEH4hBSADIARqIQEDQCABIAU3AxggASAFNwMQIAEgBTcDCCABIAU3AwAgAUEgaiEBIAJBIGsiAkEfSw0ACwsgAAsEAEEQCxkBAX9BiKoCKAIAIgAEQCAAERYACxCLAQAL1AECBX8CfgJ/IAJCAFIEQCAAQeABaiEHIABB4ABqIQMgACgA4AIhBANAIAMgBGohBkGAAiAEayIFrSIIIAJaBEAgBiABIAKnIgEQCxogACAAKADgAiABajYA4AJBAAwDCyAGIAEgBRALGiAAIAAoAOACIAVqNgDgAiAAIAApAEAiCUKAAXw3AEAgACAAKQBIIAlC/35WrXw3AEggACADEFIgAyAHQYABEAsaIAAgACgA4AJBgAFrIgQ2AOACIAEgBWohASACIAh9IgJCAFINAAsLQQALC58EARN/IAEoAgQhAiABKAIsIQMgASgCCCEEIAEoAjAhBSABKAIMIQYgASgCNCEHIAEoAhAhCCABKAI4IQkgASgCFCEKIAEoAjwhCyABKAIYIQwgAUFAayINKAIAIQ4gASgCHCEPIAEoAkQhECABKAIgIREgASgCSCESIAEoAiQhEyABKAJMIRQgACABKAIAIAEoAihqNgIAIAAgEyAUajYCJCAAIBEgEmo2AiAgACAPIBBqNgIcIAAgDCAOajYCGCAAIAogC2o2AhQgACAIIAlqNgIQIAAgBiAHajYCDCAAIAQgBWo2AgggACACIANqNgIEIAEoAgQhAiABKAIsIQMgASgCCCEEIAEoAjAhBSABKAIMIQYgASgCNCEHIAEoAhAhCCABKAI4IQkgASgCFCEKIAEoAjwhCyABKAIYIQwgDSgCACENIAEoAhwhDiABKAJEIQ8gASgCICEQIAEoAkghESABKAIAIRIgASgCKCETIAAgASgCTCABKAIkazYCTCAAIBEgEGs2AkggACAPIA5rNgJEIABBQGsgDSAMazYCACAAIAsgCms2AjwgACAJIAhrNgI4IAAgByAGazYCNCAAIAUgBGs2AjAgACADIAJrNgIsIAAgEyASazYCKCAAIAEpAlA3AlAgACABKQJYNwJYIAAgASkCYDcCYCAAIAEpAmg3AmggACABKQJwNwJwIABB+ABqIAFB+ABqQZANEAYL6AQBCX8gACABKAIgIgUgASgCHCIGIAEoAhgiByABKAIUIgggASgCECIJIAEoAgwiCiABKAIIIgQgASgCBCIDIAEoAgAiAiABKAIkIgFBE2xBgICACGpBGXZqQRp1akEZdWpBGnVqQRl1akEadWpBGXVqQRp1akEZdWpBGnUgAWpBGXVBE2wgAmoiAjoAACAAIAJBEHY6AAIgACACQQh2OgABIAAgAyACQRp1aiIDQQ52OgAFIAAgA0EGdjoABCAAIAJBGHZBA3EgA0ECdHI6AAMgACAEIANBGXVqIgJBDXY6AAggACACQQV2OgAHIAAgAkEDdCADQYCAgA5xQRZ2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ABcgAy0AD3I6AA8gAyAALQAYIAMtAA9yOgAPIAMgAC0AGSADLQAPcjoADyADIAAtABogAy0AD3I6AA8gAyAALQAbIAMtAA9yOgAPIAMgAC0AHCADLQAPcjoADyADIAAtAB0gAy0AD3I6AA8gAyAALQAeIAMtAA9yOgAPIAMgAC0AHyADLQAPcjoADyADLQAPQRd0QYCAgARrQR91IQQLIANBEGokACAEC30BA38CQAJAIAAiAUEDcUUNACABLQAARQRAQQAPCwNAIAFBAWoiAUEDcUUNASABLQAADQALDAELA0AgASICQQRqIQFBgIKECCACKAIAIgNrIANyQYCBgoR4cUGAgYKEeEYNAAsDQCACIgFBAWohAiABLQAADQALCyABIABrCycAIAJBgAJPBEBB1gpB/wlB6wBB4wgQAQALIAAgASACQf8BcRCDAQv7AwECf0F/IQQCQCACQcAASw0AIANBwQBrQUBJDQACQCABQQAgAhtFBEAgA0H/AXEiAUHBAGtB/wFxQb8BTQRAEA4ACyAAQUBrQQBBpQIQDBogAEL5wvibkaOz8NsANwA4IABC6/qG2r+19sEfNwAwIABCn9j52cKR2oKbfzcAKCAAQtGFmu/6z5SH0QA3ACAgAELx7fT4paf9p6V/NwAYIABCq/DT9K/uvLc8NwAQIABCu86qptjQ67O7fzcACCAAIAGtQoiS95X/zPmE6gCFNwAADAELAn8gAkH/AXEhAiMAQYABayIFJAACQCADQf8BcSIDQcEAa0H/AXFBvwFNDQAgAUUNACACQcEAa0H/AXFBvwFNDQAgAEFAa0EAQaUCEAwaIABC+cL4m5Gjs/DbADcAOCAAQuv6htq/tfbBHzcAMCAAQp/Y+dnCkdqCm383ACggAELRhZrv+s+Uh9EANwAgIABC8e30+KWn/aelfzcAGCAAQqvw0/Sv7ry3PDcAECAAQrvOqqbY0Ouzu383AAggACADrSACrUIIhoRCiJL3lf/M+YTqAIU3AAAgAEHgAGogBUEAQYABEAwgASACEAsiAUGAARALGiAAIAAoAOACQYABajYA4AIgAUGAARAJIAFBgAFqJABBAAwBCxAOAAsNAQtBACEECyAECw0AIAAgASACECQaQQAL6AUCB34DfyMAQaACayILJAACQCACUA0AIAAgACkDICIDIAJCA4Z8NwMgIABBKGohCkLAACADQgOIQj+DIgR9IgggAlgEQEIAIQMgBEI/hUIDWgRAIAhC/ACDIQcDQCAKIAMgBHynaiABIAOnai0AADoAACAKIANCAYQiCSAEfKdqIAEgCadqLQAAOgAAIAogA0IChCIJIAR8p2ogASAJp2otAAA6AAAgCiADQgOEIgkgBHynaiABIAmnai0AADoAACADQgR8IQMgBUIEfCIFIAdSDQALCyAIQgODIgVCAFIEQANAIAogAyAEfKdqIAEgA6dqLQAAOgAAIANCAXwhAyAGQgF8IgYgBVINAAsLIAAgCiALIAtBgAJqIgwQYiABIAinaiEBIAIgCH0iAkI/VgRAA0AgACABIAsgDBBiIAFBQGshASACQkB8IgJCP1YNAAsLAkAgAlANACACQgODIQRCACEGQgAhAyACQgRaBEAgAkI8gyEFQgAhAgNAIAogA6ciAGogACABai0AADoAACAKIABBAXIiDGogASAMai0AADoAACAKIABBAnIiDGogASAMai0AADoAACAKIABBA3IiAGogACABai0AADoAACADQgR8IQMgAkIEfCICIAVSDQALCyAEUA0AA0AgCiADpyIAaiAAIAFqLQAAOgAAIANCAXwhAyAGQgF8IgYgBFINAAsLIAtBoAIQCQwBC0IAIQMgAkIEWgRAIAJCfIMhCANAIAogAyAEfKdqIAEgA6dqLQAAOgAAIAogA0IBhCIHIAR8p2ogASAHp2otAAA6AAAgCiADQgKEIgcgBHynaiABIAenai0AADoAACAKIANCA4QiByAEfKdqIAEgB6dqLQAAOgAAIANCBHwhAyAFQgR8IgUgCFINAAsLIAJCA4MiAlANAANAIAogAyAEfKdqIAEgA6dqLQAAOgAAIANCAXwhAyAGQgF8IgYgAlINAAsLIAtBoAJqJABBAAsEAEEYCw0AIAAgASACEBcaQQALBABBCAv3EgIVfgN/IAAgACgALCIWQQV2Qf///wBxrSAAKAA8QQN2rSICQoOhVn4gADMAKiAAMQAsQhCGQoCA/ACDhHwiC0KAgEB9IghCFYd8IgFCg6FWfiAANQAxQgeIQv///wCDIgNC04xDfiAAKAAXIhdBGHatIAAxABtCCIaEIAAxABxCEIaEQgKIQv///wCDfCAAKAA0IhhBBHZB////AHGtIgRC5/YnfnwgFkEY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QbABaiQAC7sGAQl/IwBB4ABrIgMkACACQcEATwRAIAAQYxogACABIAKtECQaIAAgAxAtGkEgIQIgAyEBCyAAEGMaIANCtuzYsePGjZs2NwNYIANCtuzYsePGjZs2NwNQIANCtuzYsePGjZs2NwNIIANBQGsiCkK27Nix48aNmzY3AwAgA0K27Nix48aNmzY3AzggA0K27Nix48aNmzY3AzAgA0K27Nix48aNmzY3AyggA0K27Nix48aNmzY3AyACQCACRQ0AIAJBBE8EQCACQfwAcSEGA0AgA0EgaiILIARqIgUgBS0AACABIARqLQAAczoAACALIARBAXIiBWoiCCAILQAAIAEgBWotAABzOgAAIAsgBEECciIFaiIIIAgtAAAgASAFai0AAHM6AAAgCyAEQQNyIgVqIgggCC0AACABIAVqLQAAczoAACAEQQRqIQQgB0EEaiIHIAZHDQALCyACQQNxIgdFDQADQCADQSBqIARqIgYgBi0AACABIARqLQAAczoAACAEQQFqIQQgCUEBaiIJIAdHDQALCyAAIANBIGpCwAAQJBogAEHoAGoiABBjGiADQty48eLFi5eu3AA3A1ggA0LcuPHixYuXrtwANwNQIANC3Ljx4sWLl67cADcDSCAKQty48eLFi5eu3AA3AwAgA0LcuPHixYuXrtwANwM4IANC3Ljx4sWLl67cADcDMCADQty48eLFi5eu3AA3AyggA0LcuPHixYuXrtwANwMgAkAgAkUNAEEAIQlBACEEIAJBBE8EQCACQfwAcSEKQQAhBwNAIANBIGoiCCAEaiIGIAYtAAAgASAEai0AAHM6AAAgCCAEQQFyIgZqIgUgBS0AACABIAZqLQAAczoAACAIIARBAnIiBmoiBSAFLQAAIAEgBmotAABzOgAAIAggBEEDciIGaiIFIAUtAAAgASAGai0AAHM6AAAgBEEEaiEEIAdBBGoiByAKRw0ACwsgAkEDcSICRQ0AA0AgA0EgaiAEaiIHIActAAAgASAEai0AAHM6AAAgBEEBaiEEIAlBAWoiCSACRw0ACwsgACADQSBqIgBCwAAQJBogAEHAABAJIANBIBAJIANB4ABqJABBAAs7AQF/IwBBQGoiAiQAIAAgAhAdGiAAQdABaiIAIAJCwAAQFxogACABEB0aIAJBwAAQCSACQUBrJABBAAtyACAAQgA3A0AgAEIANwNIIABBsIwCKQMANwMAIABBuIwCKQMANwMIIABBwIwCKQMANwMQIABByIwCKQMANwMYIABB0IwCKQMANwMgIABB2IwCKQMANwMoIABB4IwCKQMANwMwIABB6IwCKQMANwM4QQALIwAgAUKAgICAEFoEQBAOAAsgACABIAIgA0G0nwIoAgARDwAL5QgBGH8jAEHAAmsiAiQAIABBKGoiFyABEDYgAEIANwJUIABBATYCUCAAQgA3AlwgAEIANwJkIABCADcCbCAAQQA2AnQgAkHwAWoiBCAXEAUgAkHAAWoiDiAEQbAMEAYgAiACKALAAUEBajYCwAEgAiACKALwAUEBayIDNgLwASACKAL0ASENIAIoAvgBIQUgAigC/AEhBiACKAKAAiEHIAIoAoQCIQggAigCiAIhCSACKAKMAiEKIAIoApACIQsgAigClAIhDCAAIAQgDhAGIAAgABBuIAAgBCAAEAYgAkGQAWoiBCAAEAUgBCAEIA4QBiACIAIoArQBIgQgDGs2AoQBIAIgAigCsAEiDiALazYCgAEgAiACKAKsASIPIAprNgJ8IAIgAigCqAEiECAJazYCeCACIAIoAqQBIhEgCGs2AnQgAiACKAKgASISIAdrNgJwIAIgAigCnAEiEyAGazYCbCACIAIoApgBIhQgBWs2AmggAiACKAKUASIVIA1rNgJkIAIgAigCkAEiFiADazYCYCACIAQgDGo2AlQgAiALIA5qNgJQIAIgCiAPajYCTCACIAkgEGo2AkggAiAIIBFqNgJEIAIgByASajYCQCACIAYgE2o2AjwgAiAFIBRqNgI4IAIgDSAVajYCNCACIAMgFmo2AjAgAiACQeAAahARIAJBIBAaIQQgAiACQTBqEBEgAkEgEBohDyACIABB4AwQBiAAKAIEIQwgACgCCCELIAAoAgwhCiAAKAIQIQkgACgCFCEIIAAoAhghByAAKAIcIQYgACgCICEFIAAoAgAhDiACKAIAIRAgAigCBCERIAIoAgghEiACKAIMIRMgAigCECEUIAIoAhQhFSACKAIYIRYgAigCHCEYIAIoAiAhGSAAIARBAWsiAyAAKAIkIg0gAigCJHNxIA1zIg02AiQgACAFIAUgGXMgA3FzIgU2AiAgACAGIAYgGHMgA3FzIgY2AhwgACAHIAcgFnMgA3FzIgc2AhggACAIIAggFXMgA3FzIgg2AhQgACAJIAkgFHMgA3FzIgk2AhAgACAKIAogE3MgA3FzIgo2AgwgACALIAsgEnMgA3FzIgs2AgggACAMIAwgEXMgA3FzIgw2AgQgACAOIA4gEHMgA3FzIgM2AgAgAkGgAmogABARIABBACACLQCgAkEBcSABLQAfQQd2c0GAqgItAABBAnZzayIBIA1BACANa3NxIA1zNgIkIAAgBUEAIAVrcyABcSAFczYCICAAIAZBACAGa3MgAXEgBnM2AhwgACAHQQAgB2tzIAFxIAdzNgIYIAAgCEEAIAhrcyABcSAIczYCFCAAIAlBACAJa3MgAXEgCXM2AhAgACAKQQAgCmtzIAFxIApzNgIMIAAgC0EAIAtrcyABcSALczYCCCAAIAxBACAMa3MgAXEgDHM2AgQgACADQQAgA2tzIAFxIANzNgIAIABB+ABqIAAgFxAGIAJBwAJqJAAgBCAPckEBawvKCAEDfyMAQcABayICJAAgAkGQAWoiBCABEAUgAkHgAGoiAyAEEAUgAyADEAUgAyABIAMQBiAEIAQgAxAGIAJBMGoiASAEEAUgAyADIAEQBiABIAMQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSADIAEgAxAGIAEgAxAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgASADEAYgAiABEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgASACIAEQBiABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSADIAEgAxAGIAEgAxAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgASADEAYgAiABEAVBASEBA0AgAiACEAUgAUEBaiIBQeQARw0ACyACQTBqIgEgAiABEAYgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgAkHgAGoiAyABIAMQBiADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSAAIAMgAkGQAWoQBiACQcABaiQAC/QEARl+IAExAB8hAiABMQAeIQYgATEAHSEOIAExAAYhByABMQAFIQggATEABCEDIAExAAkhDyABMQAIIRAgATEAByERIAExAAwhCSABMQALIQogATEACiELIAExAA8hDCABMQAOIRIgATEADSETIAExABwhBCABMQAbIRQgATEAGiEVIAExABkhBSABMQAYIRYgATEAFyEXIAE1AAAhGCAAIAExABVCD4YgATEAFEIHhoQgATEAFkIXhoQgATUAECIZQoCAgAh8IhpCGYh8Ig0gDUKAgIAQfCINQoCAgOAPg30+AhggACAWQg2GIBdCBYaEIAVCFYaEIgUgDUIaiHwgBUKAgIAIfCIFQoCAgPADg30+AhwgACAUQgyGIBVCBIaEIARCFIaEIAVCGYh8IgQgBEKAgIAQfCIEQoCAgOAPg30+AiAg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ASACIAk2AsgBIAIgCjYCxAEgAiALQQFqNgLAASACQeAAaiISIAJBwAFqIhMQBSACQTBqIhBBsAwgDBAGIAIoAmAhASACKAIwIQMgAigCZCEEIAIoAjQhBSACKAJoIQYgAigCOCEHIAIoAmwhCCACKAI8IQkgAigCcCEKIAIoAkAhCyACKAJ0IQwgAigCRCEOIAIoAnghDyACKAJIIRQgAigCfCEVIAIoAkwhFiACKAKAASEXIAIoAlAhGCACQQAgAigCVCACKAKEAWprNgJUIAJBACAXIBhqazYCUCACQQAgFSAWams2AkwgAkEAIA8gFGprNgJIIAJBACAMIA5qazYCRCACQQAgCiALams2AkAgAkEAIAggCWprNgI8IAJBACAGIAdqazYCOCACQQAgBCAFams2AjQgAkEAIAEgA2prNgIwIAIgECASEAYgAkIANwKUAyACQgA3ApwDIAJBADYCpAMgAkIANwKEAyACQQE2AoADIAJCADcCjAMgAkGwA2oiASACQYADaiACEGohDyAAIAEgExAGIABBKGoiAyABIAAQBiADIAMgEBAGIAAgACANEAYgACAAKAIkQQF0IgQ2AiQgACAAKAIgQQF0IgU2AiAgACAAKAIcQQF0IgY2AhwgACAAKAIYQQF0Igc2AhggACAAKAIUQQF0Igg2AhQgACAAKAIQQQF0Igk2AhAgACAAKAIMQQF0Igo2AgwgACAAKAIIQQF0Igs2AgggACAAKAIEQQF0Igw2AgQgACAAKAIAQQF0Ig42AgAgAkHgA2oiDSAAEBEgAEEAIAItAOADQQFxayIBIARBACAEa3NxIARzNgIkIAAgBUEAIAVrcyABcSAFczYCICAAIAZBACAGa3MgAXEgBnM2AhwgACAHQQAgB2tzIAFxIAdzNgIYIAAgCEEAIAhrcyABcSAIczYCFCAAIAlBACAJa3MgAXEgCXM2AhAgACAKQQAgCmtzIAFxIApzNgIMIAAgC0EAIAtrcyABcSALczYCCCAAIAxBACAMa3MgAXEgDHM2AgQgACAOQQAgDmtzIAFxIA5zNgIAIAMgESADEAYgAEIANwJUIABBATYCUCAAQgA3AlwgAEIANwJkIABCADcCbCAAQQA2AnQgAEH4AGoiASAAIAMQBiANIAEQESACLQDgAyEAIA0gAxARQQAgDUEgEBpBASAPayAA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RQ0BIAJBAWsiAkUNASABQQFqIQEgAC0AASEDIABBAWohACADDQALQQAhAwsgAwVBAAsgAS0AAGsLUgECf0HwlgIoAgAiASAAQQdqQXhxIgJqIQACQCACQQAgACABTRtFBEAgAD8AQRB0TQ0BIAAQBA0BC0HwpQJBMDYCAEF/DwtB8JYCIAA2AgAgAQs5AQF/IwBBIGsiAiQAIAAgAhAtGiAAQegAaiIAIAJCIBAkGiAAIAEQLRogAkEgEAkgAkEgaiQAQQALlgEBAX8jAEHQAWsiAyQAIANCADcDSCADQbiMAikDADcDCCADQcCMAikDADcDECADQciMAikDADcDGCADQdCMAikDADcDICADQdiMAikDADcDKCADQeCMAikDADcDMCADQeiMAikDADcDOCADQgA3A0AgA0GwjAIpAwA3AwAgAyABIAIQFxogAyAAEB0aIANB0AFqJABBAAsQACAAIAEgAiADQQgQaUEACxAAIAAgASACIANBDBBpQQALEAAgACABIAIgA0EUEGlBAAuhEQIsfwV+IwBBoAZrIgIkACABKAIsIQMgASgCVCEFIAEoAjAhDCABKAJYIQ0gASgCNCEOIAEoAlwhDyABKAI4IRAgASgCYCERIAEoAjwhEiABKAJkIRMgAUFAayIUKAIAIRYgASgCaCEEIAEoAkQhBiABKAJsIQcgASgCSCEIIAEoAnAhCSABKAIoIQogASgCUCELIAIgASgCTCIVIAEoAnQiF2o2AsQCIAIgCCAJajYCwAIgAiAGIAdqNgK8AiACIAQgFmo2ArgCIAIgEiATajYCtAIgAiAQIBFqNgKwAiACIA4gD2o2AqwCIAIgDCANajYCqAIgAiADIAVqNgKkAiACIAogC2o2AqACIAIgFyAVazYCJCACIAkgCGs2AiAgAiAHIAZrNgIcIAIgBCAWazYCGCACIBMgEms2AhQgAiARIBBrNgIQIAIgDyAOazYCDCACIA0gDGs2AgggAiAFIANrNgIEIAIgCyAKazYCACACQaACaiIFIAUgAhAGIAJB8AFqIgYgASABQShqIgMQBiACQcABaiIEIAYQBSAEIAUgBBAGIAJCADcCxAMgAkIANwLMAyACQQA2AtQDIAJCADcCtAMgAkIANwK8AyACQQE2ArADIAJBwARqIgcgAkGwA2ogBBBqGiACQdAFaiIEIAcgBRAGIAJBoAVqIh8gByAGEAYgAkEwaiIdIAQgHxAGIB0gHSABQfgAaiIFEAYgAkGQBGogAUHgDBAGIAJB4ANqIANB4AwQBiACQfAEaiAEQYAXEAYgAkHQAmoiAyAFIB0QBiACQYADaiIYIAMQESACLQCAAyEDIAIgASkCICIuNwOwASACIAEpAhgiLzcDqAEgAiABKQIQIjA3A6ABIAIgASkCCCIxNwOYASACIAEpAgAiMjcDkAEgASgCLCEFIAEoAjAhDCABKAI0IQ0gASgCOCEOIAEoAjwhDyAUKAIAIRAgASgCRCERIAEoAkghEiABKAJMIRMgASgCKCEWIAIoAuQDIQogAigClAEhBCACKALsAyELIAIoApwBIQYgAigC9AMhFCACKAKkASEHIAIoAvwDIRUgAigCrAEhCCACKAKEBCEXIAIoArQBIQkgAigC4AMhHiACKALoAyEZIAIoAvADIRogAigC+AMhGyACQQAgA0EBcWsiAyAupyIcIAIoAoAEc3EgHHM2ArABIAIgGyAvpyIccyADcSAcczYCqAEgAiAaIDCnIhtzIANxIBtzNgKgASACIBkgMaciGnMgA3EgGnM2ApgBIAIgHiAypyIZcyADcSAZczYCkAEgAiAJIAkgF3MgA3FzNgK0ASACIAggCCAVcyADcXM2AqwBIAIgByAHIBRzIANxczYCpAEgAiAGIAYgC3MgA3FzNgKcASACIAQgBCAKcyADcXM2ApQBIAIoApAEIRcgAigClAQhHiACKAKYBCEZIAIoApwEIRogAigCoAQhGyACKAKkBCEcIAIoAqgEISAgAigCrAQhISACKAKwBCEiIAIoArQEISMgAigCoAUhBCACKALwBCEkIAIoAqQFIQYgAigC9AQhJSACKAKoBSEHIAIoAvgEISYgAigCrAUhCCACKAL8BCEnIAIoArAFIQkgAigCgAUhKCACKAK0BSEKIAIoAoQFISkgAigCuAUhCyACKAKIBSEqIAIoArwFIRQgAigCjAUhKyACKALABSEVIAIoApAFISwgAiACKALEBSItIAIoApQFcyADcSAtczYCxAUgAiAVIBUgLHMgA3FzNgLABSACIBQgFCArcyADcXM2ArwFIAIgCyALICpzIANxczYCuAUgAiAKIAogKXMgA3FzNgK0BSACIAkgCSAocyADcXM2ArAFIAIgCCAIICdzIANxczYCrAUgAiAHIAcgJnMgA3FzNgKoBSACIAYgBiAlcyADcXM2AqQFIAIgBCAEICRzIANxczYCoAUgAkHgAGoiBCACQZABaiAdEAYgGCAEEBEgASgCVCEEIAEoAlghBiABKAJcIQcgASgCYCEIIAEoAmQhCSABKAJoIQogASgCbCELIAEoAnAhFCABKAJQIRUgAiABKAJ0QQAgAi0AgANBAXFrIgEgEyATICNzIANxcyITQQAgE2tzcSATc2s2AqQDIAIgFCASIBIgInMgA3FzIhJBACASa3MgAXEgEnNrNgKgAyACIAsgESARICFzIANxcyIRQQAgEWtzIAFxIBFzazYCnAMgAiAKIBAgECAgcyADcXMiEEEAIBBrcyABcSAQc2s2ApgDIAIgCSAPIA8gHHMgA3FzIg9BACAPa3MgAXEgD3NrNgKUAyACIAggDiAOIBtzIANxcyIOQQAgDmtzIAFxIA5zazYCkAMgAiAHIA0gDSAacyADcXMiDUEAIA1rcyABcSANc2s2AowDIAIgBiAMIAwgGXMgA3FzIgxBACAMa3MgAXEgDHNrNgKIAyACIAQgBSAFIB5zIANxcyIFQQAgBWtzIAFxIAVzazYChAMgAiAVIAEgFiAWIBdzIANxcyIBQQAgAWtzcSABc2s2AoADIBggHyAYEAYgAkGABmogGBARIAJBACACLQCABkEBcWsiASACKAKAAyIDQQAgA2tzcSADczYCgAMgAiACKAKEAyIDQQAgA2tzIAFxIANzNgKEAyACIAIoAogDIgNBACADa3MgAXEgA3M2AogDIAIgAigCjAMiA0EAIANrcyABcSADczYCjAMgAiACKAKQAyIDQQAgA2tzIAFxIANzNgKQAyACIAIoApQDIgNBACADa3MgAXEgA3M2ApQDIAIgAigCmAMiA0EAIANrcyABcSADczYCmAMgAiACKAKcAyIDQQAgA2tzIAFxIANzNgKcAyACIAIoAqADIgNBACADa3MgAXEgA3M2AqADIAIgASACKAKkAyIBQQAgAWtzcSABczYCpAMgACAYEBEgAkGgBmokAAv4AQEKfwNAIAQgACADai0AACIBIANBgBVqIgItAABzciEEIAogASACLQDAAXNyIQogCSABIAItAKABc3IhCSAIIAEgAi0AgAFzciEIIAcgASACLQBgc3IhByAGIAEgAkFAay0AAHNyIQYgBSABIAItACBzciEFIANBAWoiA0EfRw0ACyAKIAAtAB9B/wBxIgBB/wBzIgFyQf8BcUEBayABIAlyQf8BcUEBayABIAhyQf8BcUEBayAHIABB+gBzckH/AXFBAWsgBiAAQQVzckH/AXFBAWsgACAFckH/AXFBAWsgACAEckH/AXFBAWtycnJycnJBCHZBAXELwQUBHH8jAEHAAmsiASQAIAFB8AFqIgMgABAFIAFBwAFqIgQgAEEoahAFIAFBkAFqIgIgAEHQAGoQBSABKALwASEAIAEoAsABIQUgASgC9AEhBiABKALEASEHIAEoAvgBIQggASgCyAEhCSABKAL8ASEKIAEoAswBIQsgASgCgAIhDCABKALQASENIAEoAoQCIQ4gASgC1AEhDyABKAKIAiEQIAEoAtgBIREgASgCjAIhEiABKALcASETIAEoApACIRQgASgC4AEhFSABIAEoAuQBIAEoApQCazYCVCABIBUgFGs2AlAgASATIBJrNgJMIAEgESAQazYCSCABIA8gDms2AkQgASANIAxrNgJAIAEgCyAKazYCPCABIAkgCGs2AjggASAHIAZrNgI0IAEgBSAAazYCMCABQTBqIhYgFiACEAYgASADIAQQBiABIAFBsAwQBiABQeAAaiACEAUgASgCMCEAIAEoAmAhBSABKAIAIQYgASgCNCEHIAEoAmQhCCABKAIEIQkgASgCOCEKIAEoAmghCyABKAIIIQwgASgCPCENIAEoAmwhDiABKAIMIQ8gASgCQCEQIAEoAnAhESABKAIQIRIgASgCRCETIAEoAnQhFCABKAIUIRUgASgCSCECIAEoAnghAyABKAIYIQQgASgCTCEXIAEoAnwhGCABKAIcIRkgASgCUCEaIAEoAoABIRsgASgCICEcIAEgASgCVCABKAKEASABKAIkams2AlQgASAaIBsgHGprNgJQIAEgFyAYIBlqazYCTCABIAIgAyAEams2AkggASATIBQgFWprNgJEIAEgECARIBJqazYCQCABIA0gDiAPams2AjwgASAKIAsgDGprNgI4IAEgByAIIAlqazYCNCABIAAgBSAGams2AjAgAUGgAmoiACAWEBEgAEEgEBogAUHAAmokAAuFAwIDfwF+IwBB4AJrIgYkACAGIAQgBUEAECsaAn8C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IAEpAhA3A1AgAiABKQIoNwNIIAIgASkCIDcDQCADIAJB0ABqIAJBQGsQCCABIAIpAogCNwIoIAEgAikCgAI3AiAgAiABKQIINwM4IAIgASkCADcDMCACIAEpAhg3AyggAiABKQIQNwMgIAMgAkEwaiACQSBqEAggASACKQKIAjcCGCABIAIpAoACNwIQIAIgAikDmAI3AxggAiACKQOQAjcDECACIAEpAgg3AwggAiABKQIANwMAIAMgAkEQaiACEAggASACKQKIAjcCCCABIAIpAoACNwIAIAEgCiABKAAMczYCDCABIAkgASgACHM2AgggASAIIAEoAARzNgIEIAEgCyABKAAAczYCACAAIAcgACgAAHM2AgAgASAGIAEoAERzNgJEIAEgBSABKABIczYCSCABIAQgASgATHM2AkwgAkGgAmokAAvwCQEdfyABKAIEIQQgASgCLCEDIAEoAgghBSABKAIwIQYgASgCDCEHIAEoAjQhCCABKAIQIQkgASgCOCEKIAEoAhQhCyABKAI8IQwgASgCGCENIAFBQGsiDigCACEPIAEoAhwhECABKAJEIREgASgCICESIAEoAkghEyABKAIkIRQgASgCTCEVIAAgASgCACABKAIoajYCACAAIBQgFWo2AiQgACASIBNqNgIgIAAgECARajYCHCAAIA0gD2o2AhggACALIAxqNgIUIAAgCSAKajYCECAAIAcgCGo2AgwgACAFIAZqNgIIIAAgAyAEajYCBCABKAIEIQMgASgCLCEFIAEoAgghBiABKAIwIQcgASgCDCEIIAEoAjQhCSABKAIQIQogASgCOCELIAEoAhQhDCABKAI8IQ0gASgCGCEPIA4oAgAhDiABKAIcIQQgASgCRCEQIAEoAiAhESABKAJIIRIgASgCACETIAEoAighFCAAIAEoAkwgASgCJGs2AkwgACASIBFrNgJIIAAgECAEazYCRCAAQUBrIgQgDiAPazYCACAAIA0gDGs2AjwgACALIAprNgI4IAAgCSAIazYCNCAAIAcgBms2AjAgACAFIANrNgIsIAAgFCATazYCKCAAQdAAaiAAIAJBKGoQBiAAQShqIgMgAyACEAYgAEH4AGogAkH4AGogAUH4AGoQBiAAIAFB0ABqIAJB0ABqEAYgACgCBCEUIAAoAgghFSAAKAIMIRYgACgCECEXIAAoAhQhGCAAKAIYIRkgACgCHCEaIAAoAiAhGyAAKAIkIRwgACgCLCEBIAAoAlQhAiAAKAIwIQMgACgCWCEFIAAoAjQhBiAAKAJcIQcgACgCOCEIIAAoAmAhCSAAKAI8IQogACgCZCELIAQoAgAhDCAAKAJoIQ0gACgCRCEOIAAoAmwhDyAAKAJIIRAgACgCcCERIAAoAgAhHSAAKAIoIRIgACgCUCETIAAgACgCTCIeIAAoAnQiH2o2AkwgACAQIBFqNgJIIAAgDiAPajYCRCAEIAwgDWo2AgAgACAKIAtqNgI8IAAgCCAJajYCOCAAIAYgB2o2AjQgACADIAVqNgIwIAAgASACajYCLCAAIBIgE2o2AiggACAfIB5rNgIkIAAgESAQazYCICAAIA8gDms2AhwgACANIAxrNgIYIAAgCyAKazYCFCAAIAkgCGs2AhAgACAHIAZrNgIMIAAgBSADazYCCCAAIAIgAWs2AgQgACATIBJrNgIAIAAgACgCnAEiASAcQQF0IgJqNgKcASAAIAAoApgBIgQgG0EBdCIDajYCmAEgACAAKAKUASIFIBpBAXQiBmo2ApQBIAAgACgCkAEiByAZQQF0IghqNgKQASAAIAAoAowBIgkgGEEBdCIKajYCjAEgACAAKAKIASILIBdBAXQiDGo2AogBIAAgACgChAEiDSAWQQF0Ig5qNgKEASAAIAAoAoABIg8gFUEBdCIQajYCgAEgACAAKAJ8IhEgFEEBdCISajYCfCAAIAAoAngiEyAdQQF0IhRqNgJ4IAAgAyAEazYCcCAAIAYgBWs2AmwgACAIIAdrNgJoIAAgCiAJazYCZCAAIAwgC2s2AmAgACAOIA1rNgJcIAAgECAPazYCWCAAIBIgEWs2AlQgACAUIBNrNgJQIAAgAiABazYCdAtAAQN/IAAgASABQfgAaiICEAYgAEEoaiABQShqIgMgAUHQAGoiBBAGIABB0ABqIAQgAhAGIABB+ABqIAEgAxAGCxcAIAAgASACrSADrUIghoQgBCAFEL8BCxcAIAAgASACrSADrUIghoQgBCAFEMABC4UBAQV/AkAgAS0AABA4IgJFDQAgAS0AARA4IgNFDQAgAS0AAhA4IgRFDQAgAS0AAxA4IgVFDQAgAS0ABBA4IgZFDQAgACACQYAIayADQYAIa0EGdHIgBEGACGtBDHRyIAVBgAhrQRJ0ciAGQYAIa0EYdHI2AgAgAUEFag8LIABBADYCAEEAC8MGAQR/IAIgACADQQd0akFAaiIEKQIANwIAIAIgBCkCODcCOCACIAQpAjA3AjAgAiAEKQIoNwIoIAIgBCkCIDcCICACIAQpAhg3AhggAiAEKQIQNwIQIAIgBCkCCDcCCCADBEAgA0EBdCEGIANBBnQhBwNAIAIgAigCACAAIAVBBnRqIgMoAgBzNgIAIAIgAigCBCADKAIEczYCBCACIAIoAgggAygCCHM2AgggAiACKAIMIAMoAgxzNgIMIAIgAigCECADKAIQczYCECACIAIoAhQgAygCFHM2AhQgAiACKAIYIAMoAhhzNgIYIAIgAigCHCADKAIcczYCHCACIAIoAiAgAygCIHM2AiAgAiACKAIkIAMoAiRzNgIkIAIgAigCKCADKAIoczYCKCACIAIoAiwgAygCLHM2AiwgAiACKAIwIAMoAjBzNgIwIAIgAigCNCADKAI0czYCNCACIAIoAjggAygCOHM2AjggAiACKAI8IAMoAjxzNgI8IAIQuwEgASAFQQV0aiIEIAIpAjg3AjggBCACKQIwNwIwIAQgAikCKDcCKCAEIAIpAiA3AiAgBCACKQIYNwIYIAQgAikCEDcCECAEIAIpAgg3AgggBCACKQIANwIAIAIgAigCACADQUBrKAIAczYCACACIAIoAgQgAygCRHM2AgQgAiACKAIIIAMoAkhzNgIIIAIgAigCDCADKAJMczYCDCACIAIoAhAgAygCUHM2AhAgAiACKAIUIAMoAlRzNgIUIAIgAigCGCADKAJYczYCGCACIAIoAhwgAygCXHM2AhwgAiACKAIgIAMoAmBzNgIgIAIgAigCJCADKAJkczYCJCACIAIoAiggAygCaHM2AiggAiACKAIsIAMoAmxzNgIsIAIgAigCMCADKAJwczYCMCACIAIoAjQgAygCdHM2AjQgAiACKAI4IAMoAnhzNgI4IAIgAigCPCADKAJ8czYCPCACELsBIAQgB2oiAyACKQI4NwI4IAMgAikCMDcCMCADIAIpAig3AiggAyACKQIgNwIgIAMgAikCGDcCGCADIAIpAhA3AhAgAyACKQIINwIIIAMgAikCADcCACAFQQJqIgUgBkkNAAsLCyIBAX8gACgCACIBBEAgARAVCyAAQQA2AgggAEIANwIAQQALkR4CEX8UfiMAQYAgayIFJAACQCAARQ0AAkACQAJ/IAAoAiQiAkECRwRAIAEtAAghCSAAKAIEIQ4gASgCAAwBCyAAKAIEIQ4gAS0ACCEJIAEoAgAiDA0BIAlBAk8NAUEACyEMIAVBgBhqQQBBgAgQDBogBUG4EGpBAEHIBxAMGiAFIAytNwOAECABNQIEIRcgBSAJrUL/AYM3A5AQIAUgFzcDiBAgBSAANQIQNwOYECAANQIIIRcgBSACrTcDqBAgBSAXNwOgECAAKAIURQ0BQgAhFwNAIARB/wBxIgNFBEAgBSAXQgF8Ihc3A7AQIAVBAEGACBAMIgJBgAhqQQBBgAgQDBogAkGAGGoiBiACQYAQaiACEHUgBiACIAJBgAhqEHULIA4gBEEDdGogBUGACGogA0EDdGopAwA3AwAgBEEBaiIEIAAoAhQiA0kNAAsMAQsgACgCFCEDQQEhEAsgCSAMckUiEUEBdCIIIANPDQBBfyAAKAIYIgJBAWsgCCACIAEoAgQiDWxqIAMgCWxqIgogAnAbIApqIQQgCUEBaiESIA2tISYDQCAKQQFrIAQgCiAAKAIYIgJwQQFGGyENIAAoAhwhByAQBH8gACgCACgCBCANQQp0agUgDiAIQQN0agspAwAhEyABIAg2AgwgJiATQiCIpyAHcK0gERshGAJ+IAxFBEAgCUUEQCAIQQFrIQRCAAwCCyADIAlsIQQgGCAmUQRAIAQgCGpBAWshBEIADAILIAQgCEVrIQRCAAwBCyAYICZRBH8gCCADQX9zagVBAEF/IAgbIANrCyACaiEEQgAgCUEDRg0AGiADIBJsrQshFyAAKAIAKAIEIgMgAiAYp2xBCnRqIBcgBEEBa618IAStIBNC/////w+DIhcgF35CIIh+QiCIfSACrYKnQQp0aiEEIAMgDUEKdGohAiADIApBCnRqIQcCQCAMBEAgAiAEIAcQdQwBCyAFQYAYaiAEQYAIEAsaQQAhBANAIARBA3QiAyAFQYAYaiILaiIGIAYpAwAgAiADaikDAIU3AwAgCyADQQhyIgZqIg8gDykDACACIAZqKQMAhTcDACALIANBEHIiBmoiDyAPKQMAIAIgBmopAwCFNwMAIAsgA0EYciIDaiIGIAYpAwAgAiADaikDAIU3AwAgBEEEaiIEQYABRw0ACyAFQYAQaiALQYAIEAsaQQAhA0EAIQQDQCAFQYAYaiAEQQd0aiICIAIpAzgiFyACKQMYIhh8IBhCAYZC/v///x+DIBdC/////w+DfnwiGCACKQN4hUIgiSITIAIpA1giFnwgE0L/////D4MgFkIBhkL+////H4N+fCIWIBeFQiiJIhcgGHwgF0L/////D4MgGEIBhkL+////H4N+fCIYIBOFQjCJIhMgAikDKCIUIAIpAwgiFXwgFUIBhkL+////H4MgFEL/////D4N+fCIVIAIpA2iFQiCJIhsgAikDSCIcfCAbQv////8PgyAcQgGGQv7///8fg358IhwgFIVCKIkiFCAVfCAUQv////8PgyAVQgGGQv7///8fg358IhUgG4VCMIkiGyAcfCAbQv////8PgyAcQgGGQv7///8fg358IhwgFIVCAYkiFCACKQMgIh8gAikDACIafCAaQgGGQv7///8fgyAfQv////8Pg358IhogAikDYIVCIIkiICACQUBrIgYpAwAiI3wgIEL/////D4MgI0IBhkL+////H4N+fCIjIB+FQiiJIh8gGnwgH0L/////D4MgGkIBhkL+////H4N+fCIafCAUQv////8PgyAaQgGGQv7///8fg358IhmFQiCJIiQgAikDMCIhIAIpAxAiHXwgHUIBhkL+////H4MgIUL/////D4N+fCIdIAIpA3CFQiCJIiIgAikDUCIefCAiQv////8PgyAeQgGGQv7///8fg358Ih4gIYVCKIkiISAdfCAhQv////8PgyAdQgGGQv7///8fg358Ih0gIoVCMIkiIiAefCAiQv////8PgyAeQgGGQv7///8fg358Ih58ICRC/////w+DIB5CAYZC/v///x+DfnwiJSAUhUIoiSIUIBl8IBRC/////w+DIBlCAYZC/v///x+DfnwiGTcDACACIBkgJIVCMIkiGTcDeCACIBkgJXwgGUL/////D4MgJUIBhkL+////H4N+fCIZNwNQIAIgFCAZhUIBiTcDKCACIB4gIYVCAYkiFCAVfCAUQv////8PgyAVQgGGQv7///8fg358IhUgGiAghUIwiSIahUIgiSIgIBMgFnwgE0L/////D4MgFkIBhkL+////H4N+fCITfCAgQv////8PgyATQgGGQv7///8fg358IhYgFIVCKIkiFCAVfCAUQv////8PgyAVQgGGQv7///8fg358IhkgIIVCMIkiFTcDYCACIBk3AwggAiAVIBZ8IBVC/////w+DIBZCAYZC/v///x+DfnwiFiAUhUIBiTcDMCACIBY3A1ggAiATIBeFQgGJIhcgHXwgF0L/////D4MgHUIBhkL+////H4N+fCITIBuFQiCJIhYgGiAjfCAaQv////8PgyAjQgGGQv7///8fg358IhR8IBZC/////w+DIBRCAYZC/v///x+DfnwiFSAXhUIoiSIXIBN8IBdC/////w+DIBNCAYZC/v///x+DfnwiEzcDECACIBMgFoVCMIkiEzcDaCAGIBMgFXwgE0L/////D4MgFUIBhkL+////H4N+fCIVNwMAIAIgGCAUIB+FQgGJIhN8IBhCAYZC/v///x+DIBNC/////w+DfnwiGCAihUIgiSIWIBx8IBZC/////w+DIBxCAYZC/v///x+DfnwiFCAThUIoiSITIBh8IBNC/////w+DIBhCAYZC/v///x+DfnwiGyAWhUIwiSIYIBR8IBhC/////w+DIBRCAYZC/v///x+DfnwiFjcDSCACIBg3A3AgAiAbNwMYIAIgFSAXhUIBiTcDOCACIBMgFoVCAYk3AyAgBEEBaiIEQQhHDQALA0AgBUGAGGogA0EEdGoiAiACKQOIAyIXIAIpA4gBIhh8IBhCAYZC/v///x+DIBdC/////w+DfnwiGCACKQOIB4VCIIkiEyACKQOIBSIWfCATQv////8PgyAWQgGGQv7///8fg358IhYgF4VCKIkiFyAYfCAXQv////8PgyAYQgGGQv7///8fg358IhggE4VCMIkiEyACKQOIAiIUIAIpAwgiFXwgFUIBhkL+////H4MgFEL/////D4N+fCIVIAIpA4gGhUIgiSIbIAIpA4gEIhx8IBtC/////w+DIBxCAYZC/v///x+DfnwiHCAUhUIoiSIUIBV8IBRC/////w+DIBVCAYZC/v///x+DfnwiFSAbhUIwiSIbIBx8IBtC/////w+DIBxCAYZC/v///x+DfnwiHCAUhUIBiSIUIAIpA4ACIh8gAikDACIafCAaQgGGQv7///8fgyAfQv////8Pg358IhogAikDgAaFQiCJIiAgAikDgAQiI3wgIEL/////D4MgI0IBhkL+////H4N+fCIjIB+FQiiJIh8gGnwgH0L/////D4MgGkIBhkL+////H4N+fCIafCAUQv////8PgyAaQgGGQv7///8fg358IhmFQiCJIiQgAikDgAMiISACKQOAASIdfCAdQgGGQv7///8fgyAhQv////8Pg358Ih0gAikDgAeFQiCJIiIgAikDgAUiHnwgIkL/////D4MgHkIBhkL+////H4N+fCIeICGFQiiJIiEgHXwgIUL/////D4MgHUIBhkL+////H4N+fCIdICKFQjCJIiIgHnwgIkL/////D4MgHkIBhkL+////H4N+fCIefCAkQv////8PgyAeQgGGQv7///8fg358IiUgFIVCKIkiFCAZfCAUQv////8PgyAZQgGGQv7///8fg358Ihk3AwAgAiAZICSFQjCJIhk3A4gHIAIgGSAlfCAZQv////8PgyAlQgGGQv7///8fg358Ihk3A4AFIAIgFCAZhUIBiTcDiAIgAiAeICGFQgGJIhQgFXwgFEL/////D4MgFUIBhkL+////H4N+fCIVIBogIIVCMIkiGoVCIIkiICATIBZ8IBNC/////w+DIBZCAYZC/v///x+DfnwiE3wgIEL/////D4MgE0IBhkL+////H4N+fCIWIBSFQiiJIhQgFXwgFEL/////D4MgFUIBhkL+////H4N+fCIZICCFQjCJIhU3A4AGIAIgGTcDCCACIBUgFnwgFUL/////D4MgFkIBhkL+////H4N+fCIWIBSFQgGJNwOAAyACIBY3A4gFIAIgEyAXhUIBiSIXIB18IBdC/////w+DIB1CAYZC/v///x+DfnwiEyAbhUIgiSIWIBogI3wgGkL/////D4MgI0IBhkL+////H4N+fCIUfCAWQv////8PgyAUQgGGQv7///8fg358IhUgF4VCKIkiFyATfCAXQv////8PgyATQgGGQv7///8fg358IhM3A4ABIAIgEyAWhUIwiSITNwOIBiACIBMgFXwgE0L/////D4MgFUIBhkL+////H4N+fCIVNwOABCACIBggFCAfhUIBiSITfCAYQgGGQv7///8fgyATQv////8Pg358IhggIoVCIIkiFiAcfCAWQv////8PgyAcQgGGQv7///8fg358IhQgE4VCKIkiEyAYfCATQv////8PgyAYQgGGQv7///8fg358IhsgFoVCMIkiGCAUfCAYQv////8PgyAUQgGGQv7///8f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IAAgARAGIAAgABBuIAAgACAEEAYgACAAIAEQBiADQcABaiIEIAAQBSAEIAQgAhAGIAEoAgQhBSABKAIIIQ0gASgCDCEOIAEoAhAhDyABKAIUIRAgASgCGCERIAEoAhwhEiABKAIgIRMgASgCACEUIAMoAsABIQIgAygCxAEhBCADKALIASEGIAMoAswBIQcgAygC0AEhCCADKALUASEJIAMoAtgBIQogAygC3AEhCyADKALgASEMIAMgAygC5AEiFSABKAIkIhZrNgK0ASADIAwgE2s2ArABIAMgCyASazYCrAEgAyAKIBFrNgKoASADIAkgEGs2AqQBIAMgCCAPazYCoAEgAyAHIA5rNgKcASADIAYgDWs2ApgBIAMgBCAFazYClAEgAyACIBRrNgKQASADIBUgFmo2AoQBIAMgDCATajYCgAEgAyALIBJqNgJ8IAMgCiARajYCeCADIAkgEGo2AnQgAyAIIA9qNgJwIAMgByAOajYCbCADIAYgDWo2AmggAyAEIAVqNgJkIAMgAiAUajYCYCADQTBqIgUgAUHgDBAGIAMgFSADKAJUajYCVCADIAwgAygCUGo2AlAgAyALIAMoAkxqNgJMIAMgCiADKAJIajYCSCADIAkgAygCRGo2AkQgAyAIIAMoAkBqNgJAIAMgByADKAI8ajYCPCADIAYgAygCOGo2AjggAyAEIAMoAjRqNgI0IAMgAiADKAIwajYCMCADIANBkAFqEBEgA0EgEBohDiADIANB4ABqEBEgA0EgEBohDSADIAUQESADQSAQGiEBIAMgAEHgDBAGIAAoAgQhDCAAKAIIIQsgACgCDCEKIAAoAhAhCSAAKAIUIQggACgCGCEHIAAoAhwhBiAAKAIgIQQgACgCACEFIAMoAgAhDyADKAIEIRAgAygCCCERIAMoAgwhEiADKAIQIRMgAygCFCEUIAMoAhghFSADKAIcIRYgAygCICEXIABBACABIA1yayIBIAAoAiQiAiADKAIkc3EgAnMiAjYCJCAAIAQgBCAXcyABcXMiBDYCICAAIAYgBiAWcyABcXMiBjYCHCAAIAcgByAVcyABcXMiBzYCGCAAIAggCCAUcyABcXMiCDYCFCAAIAkgCSATcyABcXMiCTYCECAAIAogCiAScyABcXMiCjYCDCAAIAsgCyARcyABcXMiCzYCCCAAIAwg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DigCACEPIAEoAhwhECABKAJEIREgASgCICESIAEoAkghEyABKAIkIRQgASgCTCEVIAAgASgCACABKAIoajYCACAAIBQgFWo2AiQgACASIBNqNgIgIAAgECARajYCHCAAIA0gD2o2AhggACALIAxqNgIUIAAgCSAKajYCECAAIAcgCGo2AgwgACAFIAZqNgIIIAAgAyAEajYCBCABKAIEIQMgASgCLCEFIAEoAgghBiABKAIwIQcgASgCDCEIIAEoAjQhCSABKAIQIQogASgCOCELIAEoAhQhDCABKAI8IQ0gASgCGCEPIA4oAgAhDiABKAIcIQQgASgCRCEQIAEoAiAhESABKAJIIRIgASgCACETIAEoAighFCAAIAEoAkwgASgCJGs2AkwgACASIBFrNgJIIAAgECAEazYCRCAAQUBrIgQgDiAPazYCACAAIA0gDGs2AjwgACALIAprNgI4IAAgCSAIazYCNCAAIAcgBms2AjAgACAFIANrNgIsIAAgFCATazYCKCAAQdAAaiAAIAIQBiAAQShqIgMgAyACQShqEAYgAEH4AGogAkHQAGogAUH4AGoQBiABKAJUIRQgASgCWCEVIAEoAlwhFiABKAJgIRcgASgCZCEYIAEoAmghGSABKAJsIRogASgCcCEbIAEoAnQhHCAAKAIsIQIgACgCVCEDIAAoAjAhBSAAKAJYIQYgACgCNCEHIAAoAlwhCCAAKAI4IQkgACgCYCEKIAAoAjwhCyAAKAJkIQwgBCgCACENIAAoAmghDiAAKAJEIQ8gACgCbCEQIAAoAkghESAAKAJwIRIgASgCUCEdIAAoAighASAAKAJQIRMgACAAKAJMIh4gACgCdCIfajYCTCAAIBEgEmo2AkggACAPIBBqNgJEIAQgDSAOajYCACAAIAsgDGo2AjwgACAJIApqNgI4IAAgByAIajYCNCAAIAUgBmo2AjAgACACIANqNgIsIAAgASATajYCKCAAIB8gHms2AiQgACASIBFrNgIgIAAgECAPazYCHCAAIA4gDWs2AhggACAMIAtrNgIUIAAgCiAJazYCECAAIAggB2s2AgwgACAGIAVrNgIIIAAgAyACazYCBCAAIBMgAWs2AgAgACAcQQF0IgEgACgCnAEiAms2ApwBIAAgG0EBdCIEIAAoApgBIgNrNgKYASAAIBpBAXQiBSAAKAKUASIGazYClAEgACAZQQF0IgcgACgCkAEiCGs2ApABIAAgGEEBdCIJIAAoAowBIgprNgKMASAAIBdBAXQiCyAAKAKIASIMazYCiAEgACAWQQF0Ig0gACgChAEiDms2AoQBIAAgFUEBdCIPIAAoAoABIhBrNgKAASAAIBRBAXQiESAAKAJ8IhJrNgJ8IAAgHUEBdCITIAAoAngiFGs2AnggACADIARqNgJwIAAgBSAGajYCbCAAIAcgCGo2AmggACAJIApqNgJkIAAgCyAMajYCYCAAIA0gDmo2AlwgACAPIBBqNgJYIAAgESASajYCVCAAIBMgFGo2AlAgACABIAJqNgJ0C64IAQN/IwBBkAFrIgMkACADQeAAaiIEIAEQBSADQTBqIgIgBBAFIAIgAhAFIAIgASACEAYgBCAEIAIQBiAEIAQQBSAEIAIgBBAGIAIgBBAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAQgAiAEEAYgAiAEEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACIAQQBiADIAIQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSACIAMgAhAGIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAQgAiAEEAYgAiAEEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACIAQQBiADIAIQBUEBIQIDQCADIAMQBSACQQFqIgJB5ABHDQALIANBMGoiAiADIAIQBiACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSADQeAAaiIEIAIgBBAGIAQgBBAFIAQgBBAFIAAgBCABEAYgA0GQAWokAAumBAIOfgp/IAAoAiQhEiAAKAIgIRMgACgCHCEUIAAoAhghFSAAKAIUIREgAkIQWgRAIAAtAFBFQRh0IRYgACgCECIXrSEPIAAoAgwiGK0hDSAAKAIIIhmtIQsgACgCBCIarSEJIBpBBWytIRAgGUEFbK0hDiAYQQVsrSEMIBdBBWytIQogADUCACEIA0AgASgAA0ECdkH///8fcSAVaq0iAyANfiABKAAAQf///x9xIBFqrSIEIA9+fCABKAAGQQR2Qf///x9xIBRqrSIFIAt+fCABKAAJQQZ2IBNqrSIGIAl+fCASIBZqIAEoAAxBCHZqrSIHIAh+fCADIAt+IAQgDX58IAUgCX58IAYgCH58IAcgCn58IAMgCX4gBCALfnwgBSAIfnwgBiAKfnwgByAMfnwgAyAIfiAEIAl+fCAFIAp+fCAGIAx+fCAHIA5+fCADIAp+IAQgCH58IAUgDH58IAYgDn58IAcgEH58IgNCGohC/////w+DfCIEQhqIQv////8Pg3wiBUIaiEL/////D4N8IgZCGohC/////w+DfCIHQhqIp0EFbCADp0H///8fcWoiEUEadiAEp0H///8fcWohFSAFp0H///8fcSEUIAan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aIVCIIkiCyABKQNIIgx8IAxCAYZC/v///x+DIAtC/////w+DfnwiDCADhUIoiSIDIAZ8IANC/////w+DIAZCAYZC/v///x+DfnwiBiALhUIwiSILIAx8IAtC/////w+DIAxCAYZC/v///x+DfnwiDCADhUIBiSIDIAEpAyAiDyABKQMAIgp8IApCAYZC/v///x+DIA9C/////w+DfnwiCiABKQNghUIgiSIQIAFBQGsiFikDACITfCATQgGGQv7///8fgyAQQv////8Pg358IhMgD4VCKIkiDyAKfCAPQv////8PgyAKQgGGQv7///8fg358Igp8IANC/////w+DIApCAYZC/v///x+DfnwiCYVCIIkiFCABKQMwIhEgASkDECINfCANQgGGQv7///8fgyARQv////8Pg358Ig0gASkDcIVCIIkiEiABKQNQIg58IA5CAYZC/v///x+DIBJC/////w+DfnwiDiARhUIoiSIRIA18IBFC/////w+DIA1CAYZC/v///x+DfnwiDSAShUIwiSISIA58IBJC/////w+DIA5CAYZC/v///x+DfnwiDnwgFEL/////D4MgDkIBhkL+////H4N+fCIVIAOFQiiJIgMgCXwgA0L/////D4MgCUIBhkL+////H4N+fCIJNwMAIAEgCSAUhUIwiSIJNwN4IAEgCSAVfCAJQv////8PgyAVQgGGQv7///8fg358Igk3A1AgASADIAmFQgGJNwMoIAEgBCAFfCAEQv////8PgyAFQgGGQv7///8fg358IgQgDiARhUIBiSIFIAZ8IAVC/////w+DIAZCAYZC/v///x+DfnwiAyAKIBCFQjCJIgaFQiCJIgp8IARCAYZC/v///x+DIApC/////w+DfnwiECAFhUIoiSIFIAN8IAVC/////w+DIANCAYZC/v///x+DfnwiCSAKhUIwiSIDNwNgIAEgCTcDCCABIAUgAyAQfCADQv////8PgyAQQgGGQv7///8fg358IgWFQgGJNwMwIAEgBTcDWCABIAQgCIVCAYkiCCANfCAIQv////8PgyANQgGGQv7///8fg358IgQgC4VCIIkiBSAGIBN8IAZC/////w+DIBNCAYZC/v///x+DfnwiA3wgBUL/////D4MgA0IBhkL+////H4N+fCIGIAiFQiiJIgggBHwgCEL/////D4MgBEIBhkL+////H4N+fCIENwMQIAEgBCAFhUIwiSIENwNoIBYgBCAGfCAEQv////8PgyAGQgGGQv7///8fg358IgY3AwAgASAHIAMgD4VCAYkiBHwgB0IBhkL+////H4MgBEL/////D4N+fCIHIBKFQiCJIgUgDHwgBUL/////D4MgDEIBhkL+////H4N+fCIDIASFQiiJIgQgB3wgBEL/////D4MgB0IBhkL+////H4N+fCILIAWFQjCJIgcgA3wgB0L/////D4MgA0IBhkL+////H4N+fCIFNwNIIAEgBzcDcCABIAs3AxggASAGIAiFQgGJNwM4IAEgBCAFhUIBiTcDICAAQQFqIgBBCEcNAAtBACEAA0AgGEGACGogAEEEdGoiASABKQOIAyIIIAEpA4gBIgd8IAdCAYZC/v///x+DIAhC/////w+DfnwiByABKQOIB4VCIIkiBCABKQOIBSIFfCAFQgGGQv7///8fgyAEQv////8Pg358IgUgCIVCKIkiCCAHfCAIQv////8PgyAHQgGGQv7///8fg358IgcgBIVCMIkiBCABKQOIAiIDIAEpAwgiBnwgBkIBhkL+////H4MgA0L/////D4N+fCIGIAEpA4gGhUIgiSILIAEpA4gEIgx8IAxCAYZC/v///x+DIAtC/////w+DfnwiDCADhUIoiSIDIAZ8IANC/////w+DIAZCAYZC/v///x+DfnwiBiALhUIwiSILIAx8IAtC/////w+DIAxCAYZC/v///x+DfnwiDCADhUIBiSIDIAEpA4ACIg8gASkDACIKfCAKQgGGQv7///8fgyAPQv////8Pg358IgogASkDgAaFQiCJIhAgASkDgAQiE3wgE0IBhkL+////H4MgEEL/////D4N+fCITIA+FQiiJIg8gCnwgD0L/////D4MgCkIBhkL+////H4N+fCIKfCADQv////8PgyAKQgGGQv7///8fg358IgmFQiCJIhQgASkDgAMiESABKQOAASINfCANQgGGQv7///8fgyARQv////8Pg358Ig0gASkDgAeFQiCJIhIgASkDgAUiDnwgDkIBhkL+////H4MgEkL/////D4N+fCIOIBGFQiiJIhEgDXwgEUL/////D4MgDUIBhkL+////H4N+fCINIBKFQjCJIhIgDnwgEkL/////D4MgDkIBhkL+////H4N+fCIOfCAUQv////8PgyAOQgGGQv7///8fg358IhUgA4VCKIkiAyAJfCADQv////8PgyAJQgGGQv7///8fg358Igk3AwAgASAJIBSFQjCJIgk3A4gHIAEgCSAVfCAJQv////8PgyAVQgGGQv7///8fg358Igk3A4AFIAEgAyAJhUIBiTcDiAIgASAEIAV8IARC/////w+DIAVCAYZC/v///x+DfnwiBCAOIBGFQgGJIgUgBnwgBUL/////D4MgBkIBhkL+////H4N+fCIDIAogEIVCMIkiBoVCIIkiCnwgBEIBhkL+////H4MgCkL/////D4N+fCIQIAWFQiiJIgUgA3wgBUL/////D4MgA0IBhkL+////H4N+fCIJIAqFQjCJIgM3A4AGIAEgCTcDCCABIAUgAyAQfCADQv////8PgyAQQgGGQv7///8fg358IgWFQgGJNwOAAyABIAU3A4gFIAEgBCAIhUIBiSIIIA18IAhC/////w+DIA1CAYZC/v///x+DfnwiBCALhUIgiSIFIAYgE3wgBkL/////D4MgE0IBhkL+////H4N+fCIDfCAFQv////8PgyADQgGGQv7///8fg358IgYgCIVCKIkiCCAEfCAIQv////8PgyAEQgGGQv7///8fg358IgQ3A4ABIAEgBCAFhUIwiSIENwOIBiABIAQgBnwgBEL/////D4MgBkIBhkL+////H4N+fCIGNwOABCABIAcgAyAPhUIBiSIEfCAHQgGGQv7///8fgyAEQv////8Pg358IgcgEoVCIIkiBSAMfCAFQv////8PgyAMQgGGQv7///8fg358IgMgBIVCKIkiBCAHfCAEQv////8PgyAHQgGGQv7///8fg358IgsgBYVCMIkiByADfCAHQv////8PgyADQgGGQv7///8fg358IgU3A4gEIAEgBzcDgAcgASALNwOIASABIAYgCIVCAYk3A4gDIAEgBCAFhUIBiTcDgAIgAEEBaiIAQQhHDQALIAIgGEGACBALIQFBACEAA0AgASAAQQN0IgJqIhYgFikDACAYQYAIaiIZIAJqKQMAhTcDACABIAJBCHIiFmoiFyAXKQMAIBYgGWopAwCFNwMAIAEgAkEQciIWaiIXIBcpAwAgGEGACGogFmopAwCFNwMAIAEgAkEYciICaiIWIBYpAwAgGEGACGogAmop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AnA3A+ADIAJBgARqIgMgAkHwA2ogAkHgA2oQCCABIAIpAogENwJ4IAEgAikCgAQ3AnAgAiABKQJYNwPYAyACIAEpAlA3A9ADIAIgASkCaDcDyAMgAiABKQJgNwPAAyADIAJB0ANqIAJBwANqEAggASACKQKIBDcCaCABIAIpAoAENwJgIAIgASkCSDcDuAMgAiABQUBrIgApAgA3A7ADIAIgASkCWDcDqAMgAiABKQJQNwOgAyADIAJBsANqIAJBoANqEAggASACKQKIBDcCWCABIAIpAoAENwJQIAIgASkCODcDmAMgAiABKQIwNwOQAyACIAEpAkg3A4gDIAIgACkCADcDgAMgAyACQZADaiACQYADahAIIAEgAikCiAQ3AkggACACKQKABDcCACACIAEpAig3A/gCIAIgASkCIDcD8AIgAiABKQI4NwPoAiACIAEpAjA3A+ACIAMgAkHwAmogAkHgAmoQCCABIAIpAogENwI4IAEgAikCgAQ3AjAgAiABKQIYNwPYAiACIAEpAhA3A9ACIAIgASkCKDcDyAIgAiABKQIgNwPAAiADIAJB0AJqIAJBwAJqEAggASACKQKIBDcCKCABIAIpAoAENwIgIAIgASkCCDcDuAIgAiABKQIANwOwAiACIAEpAhg3A6gCIAIgASkCEDcDoAIgAyACQbACaiACQaACahAIIAEgAikCiAQ3AhggASACKQKABDcCECACIAIpA5gENwOYAiACIAIpA5AENwOQAiACIAEpAgg3A4gCIAIgASkCADcDgAIgAyACQZACaiACQYACahAIIAEgAikCiAQ3AgggASACKQKABDcCACABIBIgASgADHM2AgwgASARIAEoAAhzNgIIIAEgECABKAAEczYCBCABIBMgASgAAHM2AgAgACAPIAAoAABzNgIAIAEgDiABKABEczYCRCABIA0gASgASHM2AkggASAMIAEoAExzNgJMIAIgASkCeDcDmAQgAiABKQJwNwOQBCACIAEpAmg3A/gBIAIgASkCYDcD8AEgAiABKQJ4NwPoASACIAEpAnA3A+ABIAMgAkHwAWogAkHgAWoQCCABIAIpAogENwJ4IAEgAikCgAQ3AnAgAiABKQJYNwPYASACIAEpAlA3A9ABIAIgASkCaDcDyAEgAiABKQJgNwPAASADIAJB0AFqIAJBwAFqEAggASACKQKIBDcCaCABIAIpAoAENwJgIAIgASkCSDcDuAEgAiAAKQIANwOwASACIAEpAlg3A6gBIAIgASkCUDcDoAEgAyACQbABaiACQaABahAIIAEgAikCiAQ3AlggASACKQKABDcCUCACIAEpAjg3A5gBIAIgASkCMDcDkAEgAiABKQJINwOIASACIAApAgA3A4ABIAMgAkGQAWogAkGAAWoQCCABIAIpAogENwJIIAAgAikCgAQ3AgAgAiABKQIoNwN4IAIgASkCIDcDcCACIAEpAjg3A2ggAiABKQIwNwNgIAMgAkHwAGogAkHgAGoQCCABIAIpAogENwI4IAEgAikCgAQ3AjAgAiABKQIYNwNYIAIgASkCEDcDUCACIAEpAig3A0ggAiABKQIgNwNAIAMgAkHQAGogAkFAaxAIIAEgAikCiAQ3AiggASACKQKABDcCICACIAEpAgg3AzggAiABKQIANwMwIAIgASkCGDcDKCACIAEpAhA3AyAgAyACQTBqIAJBIGoQCCABIAIpAogENwIYIAEgAikCgAQ3AhAgAiACKQOYBDcDGCACIAIpA5AENwMQIAIgASkCCDcDCCACIAEpAgA3AwAgAyACQRBqIAIQCCABIAIpAogENwIIIAEgAikCgAQ3AgAgASALIAEoAAxzNgIMIAEgCiABKAAIczYCCCABIAkgASgABHM2AgQgASAIIAEoAABzNgIAIAAgByAAKAAAczYCACABIAYgASgARHM2AkQgASAFIAEoAEhzNgJIIAEgBCABKABMczYCTCACQaAEaiQAC70JARF/IwBBoAJrIgMkACABKAAEIRAgASgACCERIAEoAAwhEiAAKAAEIQsgACgACCEMIAAoAAwhDSABKAAAIRMgAkHwAGoiASAAKAAAIg5BgIKEEHMiADYCACACQeAAaiIGIA5B2/vgqAVzNgIAIAJB0ABqIgcgADYCACACQUBrIgAgDiATcyIFNgIAIAJCoKLEkbSurZRdNwI4IAJBMGoiCELb++Co1c3wl3E3AgAgAkKVxNzJhbL6vOIANwIoIAJBIGoiCUKAgoSQsKCBhA03AgAgAkKgosSRtK6tlF03AhggAkEQaiIKQtv74KjVzfCXcTcCACACIAU2AgAgAiANQZDT55MGcyIFNgJ8IAIgDEGVxNzJBXMiBDYCeCACIAtBg4qg6ABzIg82AnQgAiANQfPqoul9czYCbCACIAxBoKLEkQRzNgJoIAIgC0HthL+Jf3M2AmQgAiAFNgJcIAIgBDYCWCACIA82AlQgAiANIBJzIgU2AkwgAiAMIBFzIgQ2AkggAiALIBBzIg82AkQgAiAFNgIMIAIgBDYCCCACIA82AgRBACEFA0AgAyABKQIINwOYAiADIAEpAgA3A5ACIAMgBikCCDcD+AEgAyAGKQIANwPwASADIAEpAgg3A+gBIAMgASkCADcD4AEgA0GAAmoiBCADQfABaiADQeABahAIIAEgAykCiAI3AgggASADKQKAAjcCACADIAcpAgg3A9gBIAMgBykCADcD0AEgAyAGKQIINwPIASADIAYpAgA3A8ABIAQgA0HQAWogA0HAAWoQCCAGIAMpAogCNwIIIAYgAykCgAI3AgAgAyAAKQIINwO4ASADIAApAgA3A7ABIAMgBykCCDcDqAEgAyAHKQIANwOgASAEIANBsAFqIANBoAFqEAggByADKQKIAjcCCCAHIAMpAoACNwIAIAMgCCkCCDcDmAEgAyAIKQIANwOQASADIAApAgg3A4gBIAMgACkCADcDgAEgBCADQZABaiADQYABahAIIAAgAykCiAI3AgggACADKQKAAjcCACADIAkpAgg3A3ggAyAJKQIANwNwIAMgCCkCCDcDaCADIAgpAgA3A2AgBCADQfAAaiADQeAAahAIIAggAykCiAI3AgggCCADKQKAAjcCACADIAopAgg3A1ggAyAKKQIANwNQIAMgCSkCCDcDSCADIAkpAgA3A0AgBCADQdAAaiADQUBrEAggCSADKQKIAjcCCCAJIAMpAoACNwIAIAMgAikCCDcDOCADIAIpAgA3AzAgAyAKKQIINwMoIAMgCikCADcDICAEIANBMGogA0EgahAIIAogAykCiAI3AgggCiADKQKAAjcCACADIAMpA5gCNwMYIAMgAykDkAI3AxAgAyACKQIINwMIIAMgAikCADcDACAEIANBEGogAxAIIAIgAykCiAI3AgggAiADKQKAAjcCACACIAIoAAwgEnM2AgwgAiACKAAIIBFzNgIIIAIgAigABCAQczYCBCACIAIoAAAgE3M2AgAgACAAKAAAIA5zNgIAIAIgAigARCALczYCRCACIAIoAEggDHM2AkggAiACKABMIA1zNgJMIAVBAWoiBUEKRw0ACyADQaACaiQACxAAIAAgAUGMlwIoAgARAAAL0g8BJH8jAEHwBGsiAiQAIAJB4ANqIgMgARAFIANB4AwgAxAGIAIgAigChAQiBzYClAIgAiACKAKABCIINgKQAiACIAIoAvwDIgk2AowCIAIgAigC+AMiCjYCiAIgAiACKAL0AyILNgKEAiACIAIoAvADIgw2AoACIAIgAigC7AMiDTYC/AEgAiACKALoAyIONgL4ASACIAIoAuQDIgU2AvQBIAIgAigC4AMiBkEBajYC8AEgAkHwAWoiBCAEQbCJAhAGIAIgB0HM5N8FazYC1AMgAiAIQYCS9QhrNgLQAyACIAlB55zGAWs2AswDIAIgCkHEhv8CazYCyAMgAiALQeiumARrNgLEAyACIAxBqYAHajYCwAMgAiANQY+UqANqNgK8AyACIA5Bw6KqB2s2ArgDIAIgBUGF5c0GajYCtAMgAiAGQcqOmgVrNgKwAyACQcABaiIZIANBsAwQBiACQQAgAigC5AFrNgLkASACQQAgAigC4AFrNgLgASACQQAgAigC3AFrNgLcASACQQAgAigC2AFrNgLYASACQQAgAigC1AFrNgLUASACQQAgAigC0AFrNgLQASACQQAgAigCzAFrNgLMASACQQAgAigCyAFrNgLIASACQQAgAigCxAFrNgLEASACIAIoAsABQX9zNgLAASAZIBkgAkGwA2oQBiACQYADaiIiIAQgGRBqIQMgAkHQAmoiBCAiIAEQBiACQcAEaiIkIAQQESACLQDABCElIAIoAqQDIRogAigC9AIhBCACKAKgAyEbIAIoAvACIRAgAigCnAMhHCACKALsAiERIAIoApgDIR0gAigC6AIhEiACKAKUAyEeIAIoAuQCIRMgAigCkAMhHyACKALgAiEUIAIoAowDISAgAigC3AIhFSACKAKIAyEhIAIoAtgCIRYgAigChAMhDyACKALUAiEXIAIoAoADISMgAigC0AIhGCACIAcgA0EBayIBcTYC5AQgAiABIAhxNgLgBCACIAEgCXE2AtwEIAIgASAKcTYC2AQgAiABIAtxNgLUBCACIAEgDHE2AtAEIAIgASANcTYCzAQgAiABIA5xNgLIBCACIAEgBXE2AsQEIAIgBkEAIANrcjYCwAQgAiAjICNBACAYQQAgJUEBcWsiAyAYQQAgGGtzcXNrcyABcXMiGDYCgAMgAiAPIA9BACAXIBdBACAXa3MgA3Fza3MgAXFzIhc2AoQDIAIgISAhQQAgFiAWQQAgFmtzIANxc2tzIAFxcyIWNgKIAyACICAgIEEAIBUgFUEAIBVrcyADcXNrcyABcXMiFTYCjAMgAiAfIB9BACAUIBRBACAUa3MgA3Fza3MgAXFzIhQ2ApADIAIgHiAeQQAgEyATQQAgE2tzIANxc2tzIAFxcyITNgKUAyACIB0gHUEAIBIgEkEAIBJrcyADcXNrcyABcXMiEjYCmAMgAiAcIBxBACARIBFBACARa3MgA3Fza3MgAXFzIhE2ApwDIAIgGyAbQQAgECAQQQAgEGtzIANxc2tzIAFxcyIQNgKgAyACIBogGkEAIAQgBEEAIARrcyADcXNrcyABcXMiATYCpAMgAiAHNgK0BCACIAg2ArAEIAIgCTYCrAQgAiAKNgKoBCACIAs2AqQEIAIgDDYCoAQgAiANNgKcBCACIA42ApgEIAIgBTYClAQgAiAGQQFrNgKQBCACQZAEaiIPIA8gJBAGIA8gD0HgiQIQBiACKALAASEDIAIoApAEIQcgAigCxAEhCCACKAKUBCEJIAIoAsgBIQogAigCmAQhCyACKALMASEMIAIoApwEIQ0gAigC0AEhDiACKAKgBCEFIAIoAtQBIQYgAigCpAQhBCACKALYASEaIAIoAqgEIRsgAigC3AEhHCACKAKsBCEdIAIoAuABIR4gAigCsAQhHyACKALkASEgIAIoArQEISEgAiABQQF0NgK0ASACIBBBAXQ2ArABIAIgEUEBdDYCrAEgAiASQQF0NgKoASACIBNBAXQ2AqQBIAIgFEEBdDYCoAEgAiAVQQF0NgKcASACIBZBAXQ2ApgBIAIgF0EBdDYClAEgAiAYQQF0NgKQASACICEgIGs2ArQEIAIgHyAeazYCsAQgAiAdIBxrNgKsBCACIBsgGms2AqgEIAIgBCAGazYCpAQgAiAFIA5rNgKgBCACIA0gDGs2ApwEIAIgCyAKazYCmAQgAiAJIAhrNgKUBCACIAcgA2s2ApAEIAJBkAFqIgUgBSAZEAYgAkHgAGoiBiAPQZCKAhAGIAJBoAJqICIQBSACQQAgAigCxAIiAWs2AlQgAkEAIAIoAsACIgNrNgJQIAJBACACKAK8AiIHazYCTCACQQAgAigCuAIiCGs2AkggAkEAIAIoArQCIglrNgJEIAJBACACKAKwAiIKazYCQCACQQAgAigCrAIiC2s2AjwgAkEAIAIoAqgCIgxrNgI4IAJBACACKAKkAiINazYCNCACQQEgAigCoAIiDms2AjAgAiABNgIkIAIgAzYCICACIAc2AhwgAiAINgIYIAIgCTYCFCACIAo2AhAgAiALNgIMIAIgDDYCCCACIA02AgQgAiAOQQFqNgIAIAAgBSACEAYgAEEoaiACQTBqIgEgBhAGIABB0ABqIAYgAhAGIABB+ABqIAUgARAGIAJB8ARqJAALqAEBBH8jAEGAB2siAiQAIAJB0AZqIgMgARA2IAJBoAZqIgQgAUEgahA2IAJBwAJqIgEgAxCJASACQaABaiIDIAQQiQEgAkGABWoiBCADEBAgAkHgA2oiAyABIAQQEyACIAMgAkHYBGoiARAGIAJBKGogAkGIBGoiBCACQbAEaiIFEAYgAkHQAGogBSABEAYgAkH4AGogAyAEEAYgACACEEsgAkGAB2okAAsFABACAAv7GgIYfwx+IwBBMGsiDSQAIAAgASkAGDcAGCAAIAEpAAA3AAAgACABKQAQNwAQIAAgASkACDcACCAAIAAtAB8iAUH/AHE6AB8gDSAAEDYgAUGAAXEhECMAQcAHayICJAAgAkGwAmoiASANEJIBIAIgAigCsAJBAWo2ArACIAEgARA1IAJBACACNALUAkKG2h1+Ih4gHkKAgIAIfCIeQoCAgPAPg30gAjQC0AJChtodfiACNALMAkKG2h1+IhpCgICACHwiHUIZh3wiG0KAgIAQfCIcQhqIfKciAWs2AqQCIAJBACAbIBxCgICA4A+DfaciA2s2AqACIAJBACAaIB1CgICA8A+DfSACNALIAkKG2h1+IAI0AsQCQobaHX4iGkKAgIAIfCIdQhmHfCIbQoCAgBB8IhxCGoh8pyIFazYCnAIgAkEAIBsgHEKAgIDgD4N9pyIGazYCmAIgAkEAIBogHUKAgIDwD4N9IAI0AsACQobaHX4gAjQCvAJChtodfiIaQoCAgAh8Ih1CGYd8IhtCgICAEHwiHEIaiHynIgdrNgKUAiACQQAgGyAcQoCAgOAPg32nIghrNgKQAiACQQAgGiAdQoCAgPAPg30gAjQCuAJChtodfiACNAK0AkKG2h1+IhpCgICACHwiHUIZh3wiG0KAgIAQfCIcQhqIfKciCWs2AowCIAJBACAbIBxCgICA4A+DfaciCms2AogCIAJBACAaIB1CgICA8A+DfSAeQhmHQhN+IAI0ArACQobaHX58Ih5CgICAEHwiGkIaiHynIgtrNgKEAiACQQAgHiAaQoCAgOAPg32nIgxrNgKAAiACQdABaiIOIAJBgAJqIg8QBSACQaABaiAPIA4QBiACKALEASEOIAIoAqABIQ8gAjQC0AEhHiACKAKkASERIAIoAqgBIRIgAjQC1AEhGiACNALYASEdIAIoAqwBIRMgAigCsAEhFCACNALcASEbIAI0AuABIRwgAigCtAEhFSACKAK4ASEWIAI0AuQBIR8gAjQC6AEhICACKAK8ASEXIAIoAsABIRggAiACNAL0AUKG2h1+IiEgIUKAgIAIfCIhQoCAgPAPg30gAjQC8AFChtodfiACNALsAUKG2h1+IiJCgICACHwiI0IZh3wiJEKAgIAQfCIlQhqIfKciGTYC9AEgAiAOIAFrIBlqNgKEAyACICQgJUKAgIDgD4N9pyIBNgLwASACIBggA2sgAWo2AoADIAIgIiAjQoCAgPAPg30gIEKG2h1+IB9ChtodfiIfQoCAgAh8IiBCGYd8IiJCgICAEHwiI0IaiHynIgE2AuwBIAIgFyAFayABajYC/AIgAiAiICNCgICA4A+DfaciATYC6AEgAiAWIAZrIAFqNgL4AiACIB8gIEKAgIDwD4N9IBxChtodfiAbQobaHX4iG0KAgIAIfCIcQhmHfCIfQoCAgBB8IiBCGoh8pyIBNgLkASACIBUgB2sgAWo2AvQCIAIgHyAgQoCAgOAPg32nIgE2AuABIAIgFCAIayABajYC8AIgAiAbIBxCgICA8A+DfSAdQobaHX4gGkKG2h1+IhpCgICACHwiHUIZh3wiG0KAgIAQfCIcQhqIfKciATYC3AEgAiATIAlrIAFqNgLsAiACIBsgHEKAgIDgD4N9pyIBNgLYASACIBIgCmsgAWo2AugCIAIgGiAdQoCAgPAPg30gIUIZh0ITfiAeQobaHX58Ih5CgICAEHwiGkIaiHynIgE2AtQBIAIgESALayABajYC5AIgAiAeIBpCgICA4A+DfaciATYC0AEgAiAPIAxrIAFqNgLgAiACQfAEaiIDIAJB4AJqIgEgARAGIAIgASADEAYgAkGQBmoiASACEAUgASABEAUgAkGQB2oiBSACIAEQBiACQcAEaiIDIAUQBSADIAMQBSADIAMQBSADIAMQBSACQZAEaiIBIAUgAxAGIAEgARAFIAEgARAFIAEgASACEAYgAiACKQOwBDcDgAQgAiACKQOoBDcD+AMgAiACKQOgBDcD8AMgAiACKQOYBDcD6AMgAiACKQOQBDcD4AMgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABIAJB4ANqIgMQBiABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEgAxAGIAIgAikDsAQ3A9ADIAIgAikDqAQ3A8gDIAIgAikDoAQ3A8ADIAIgAikDmAQ3A7gDIAIgAikDkAQ3A7ADIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgASACQbADaiIDEAYgAiACKQOwBDcD0AMgAiACKQOoBDcDyAMgAiACKQOgBDcDwAMgAiACKQOYBDcDuAMgAiACKQOQBDcDsAMgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABIAMQBiACIAIpA7AENwPQAyACIAIpA6gENwPIAyACIAIpA6AENwPAAyACIAIpA5gENwO4AyACIAIpA5AENwOwAwNAIAJBkARqIgEgARAFIARBAWoiBEH4AEcNAAsgASABIAJBsANqEAYgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABIAJB4ANqEAYgASABEAUgASABEAUgASABEAUgASABIAIQBiABIAEQBSACQZADaiABEBEgAigCgAIhAyACKAKEAiEEIAIoAogCIQUgAigCjAIhBiACKAKQAiEHIAIoApQCIQggAigCmAIhCSACKAKcAiEKIAIoAqACIQsgAkEAIAItAJEDQQFxayIBIAIoAqQCIgxBACAMa3NxIAxzIgw2ApQFIAIgCyALQQAgC2tzIAFxcyILNgKQBSACIAogCkEAIAprcyABcXMiCjYCjAUgAiAJIAlBACAJa3MgAXFzIgk2AogFIAIgCCAIQQAgCGtzIAFxcyIINgKEBSACIAcgB0EAIAdrcyABcXMiBzYCgAUgAiAGIAZBACAGa3MgAXFzIgY2AvwEIAIgBSAFQQAgBWtzIAFxcyIFNgL4BCACIAQgBEEAIARrcyABcXMiBDYC9AQgAiADIANBACADa3MgAXFzIAFBhtodcWsiAUEBajYC8AQgAiAMNgK0BiACIAs2ArAGIAIgCjYCrAYgAiAJNgKoBiACIAg2AqQGIAIgBzYCoAYgAiAGNgKcBiACIAU2ApgGIAIgBDYClAYgAiABQQFrNgKQBiACIAJB8ARqEDUgAkGQB2oiASACQZAGaiACEAYgACABEBEgACAALQAfIBByOgAfIAIgABA0BEAQiwEACyACIAIpAiA3A7AGIAIgAikCGDcDqAYgAiACKQIQNwOgBiACIAIpAgg3A5gGIAIgAikCMDcDwAYgAiACKQI4NwPIBiACIAJBQGspAgA3A9AGIAIgAikCSDcD2AYgAiACKQIANwOQBiACIAIpAig3A7gGIAIgAikCcDcDgAcgAiACKQJoNwP4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QQFrQR92ECogACABQcAHaiAEQQdzQf8BcUEBa0EfdhAqIAAgAUHgCGogBEEIc0H/AXFBAWtBH3YQKiADIAApAkg3AyAgAyAAQUBrKQIANwMYIAMgACkCODcDECADIAApAjA3AwggAyAAKQIoNwMAIAMgACkCIDcDSCADQUBrIAApAhg3AwAgAyAAKQIQNwM4IAMgACkCCDcDMCADIAApAgA3AyggAyAAKQJYNwNYIAMgACkCYDcDYCADIAApAmg3A2ggAyAAKQJwNwNwIAMgACkCUDcDUCAAKAJ8IQEgACgCgAEhBCAAKAKEASEFIAAoAogBIQYgACgCjAEhByAAKAKQASEIIAAoApQBIQkgACgCmAEhCiAAKAJ4IQsgA0EAIAAoApwBazYCnAEgA0EAIAprNgKYASADQQAgCWs2ApQBIANBACAIazYCkAEgA0EAIAdrNgKMASADQQAgBms2AogBIANBACAFazYChAEgA0EAIARrNgKAASADQQAgAWs2AnwgA0EAIAtrNgJ4IAAgAyACQYABcUEHdhAqIANBoAFqJAALjhEBE38jAEHAH2siAyQAIANBoAFqIAIQECADQYAeaiIGIAIpAiA3AwAgA0H4HWoiByACKQIYNwMAIANB8B1qIgkgAikCEDcDACADQegdaiIMIAIpAgg3AwAgAyACKQIANwPgHSADQZAeaiINIAIpAjA3AwAgA0GYHmoiDiACKQI4NwMAIANBoB5qIg8gAkFAaykCADcDACADQageaiIQIAIpAkg3AwAgAyACKQIoNwOIHiADQbgeaiIRIAIpAlg3AwAgA0HAHmoiEiACKQJgNwMAIANByB5qIhMgAikCaDcDACADQdAeaiIUIAIpAnA3AwAgAyACKQJQNwOwHiADQcgbaiIIIANB4B1qIhUQGCADQegSaiILIAggA0HAHGoiBBAGIANBkBNqIANB8BtqIgUgA0GYHGoiChAGIANBuBNqIAogBBAGIANB4BNqIAggBRAGIANBwAJqIgQgCxAQIANBqBpqIgggAiAEEBMgA0HIEWoiCyAIIANBoBtqIgQQBiADQfARaiADQdAaaiIFIANB+BpqIgoQBiADQZgSaiAKIAQQBiADQcASaiAIIAUQBiADQeADaiALEBAgBiADQYgTaikCADcDACAHIANBgBNqKQIANwMAIAkgA0H4EmopAgA3AwAgDCADQfASaikCADcDACANIANBmBNqKQIANwMAIA4gA0GgE2opAgA3AwAgDyADQagTaikCADcDACAQIANBsBNqKQIANwMAIAMgAykC6BI3A+AdIAMgAykCkBM3A4geIBQgA0HYE2opAgA3AwAgEyADQdATaikCADcDACASIANByBNqKQIANwMAIBEgA0HAE2opAgA3AwAgAyADKQK4EzcDsB4gA0GIGWoiCCAVEBggA0GoEGoiCyAIIANBgBpqIgQQBiADQdAQaiADQbAZaiIFIANB2BlqIgoQBiADQfgQaiAKIAQQBiADQaARaiAIIAUQBiADQYAFaiIEIAsQECADQegXaiIIIAIgBBATIANBiA9qIgsgCCADQeAYaiIEEAYgA0GwD2ogA0GQGGoiBSADQbgYaiIKEAYgA0HYD2ogCiAEEAYgA0GAEGogCCAFEAYgA0GgBmogCxAQIAYgA0HoEWopAgA3AwAgByADQeARaikCADcDACAJIANB2BFqKQIANwMAIAwgA0HQEWopAgA3AwAgDSADQfgRaikCADcDACAOIANBgBJqKQIANwMAIA8gA0GIEmopAgA3AwAgECADQZASaikCADcDACADIAMpAsgRNwPgHSADIAMpAvARNwOIHiAUIANBuBJqKQIANwMAIBMgA0GwEmopAgA3AwAgEiADQagSaikCADcDACARIANBoBJqKQIANwMAIAMgAykCmBI3A7AeIANByBZqIgggFRAYIANB6A1qIgsgCCADQcAXaiIEEAYgA0GQDmogA0HwFmoiBSADQZgXaiIKEAYgA0G4DmogCiAEEAYgA0HgDmogCCAFEAYgA0HAB2oiBCALEBAgA0GoFWoiCiACIAQQEyADQcgMaiIIIAogA0GgFmoiAhAGIANB8AxqIANB0BVqIgQgA0H4FWoiBRAGIANBmA1qIAUgAhAGIANBwA1qIAogBBAGIANB4AhqIAgQECAGIANByBBqKQIANwMAIAcgA0HAEGopAgA3AwAgCSADQbgQaikCADcDACAMIANBsBBqKQIANwMAIA0gA0HYEGopAgA3AwAgDiADQeAQaikCADcDACAPIANB6BBqKQIANwMAIBAgA0HwEGopAgA3AwAgAyADKQKoEDcD4B0gAyADKQLQEDcDiB4gFCADQZgRaikCADcDACATIANBkBFqKQIA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azYCACAAQQAgACgCJGs2AiQgAEEAIAAoAiBrNgIgIABBACAAKAIcazYCHCAAQQAgACgCGGs2AhggAEEAIAAoAhRrNgIUIABBACAAKAIQazYCECAAQQAgACgCDGs2AgwgAEEAIAAoAghrNgIIIABBACAAKAIEazYCBAsgAEH4AGogACAGEAZBACEHCyACQcACaiQAIAcLBQBBgAILEAAgACABQYSXAigCABEAAAsQACAAIAFB/JYCKAIAEQAACy0BAX4gAq0gA61CIIaEIgZCEFoEfyAAIAFBEGogASAGQhB9IAQgBRBeBUF/CwsYACAAIAEgAiADrSAErUIghoQgBSAGEF4LGAAgACABIAIgA60gBK1CIIaEIAUgBhBPCxYAIAAgASACrSADrUIghoQgBCAFEHkLFQAgACABrSACrUIghoQgAyAEEM0BCxYAIAAgASACrSADrUIghoQgBEEAEHYLFwAgACABIAIgA60gBK1CIIaEIAUQhQMLFwAgACABIAIgA60gBK1CIIaEIAUQgwMLFwAgACABIAIgA60gBK1CIIaEIAUQhAMLFQAgACABIAKtIAOtQiCGhCAEEOkCCx8AIAAgASACrSADrUIghoQgBK0gBa1CIIaEIAYQ0QELGgAgACABIAKtIAOtQiCGhEGAlwIoAgARAgALHAAgACABIAKtIAOtQiCGhCAEQfiWAigCABERAAscACAAIAEgAq0gA61CIIaEIARB9JYCKAIAEREACxcAIAAgASACrSADrUIghoQgBCAFEOoCCxIAIAAgASACrSADrUIghoQQRwsYACAAIAEgAiADrSAErUIghoQgBSAGEGELLQEBfiACrSADrUIghoQiBkIQWgR/IAAgAUEQaiABIAZCEH0gBCAFEF0FQX8LCxgAIAAgASACIAOtIAStQiCGhCAFIAYQXQsYACAAIAEgAiADrSAErUIghoQgBSAGEE4LGQAgACABIAKtIAOtQiCGhCAEIAUgBhD3AgsZACAAIAEgAq0gA61CIIaEIAQgBSAGEPgCCxIAIAAgASACrSADrUIghoQQJgsVACAAIAEgAq0gA61CIIaEIAQQ4gILFQAgACABIAKtIAOtQiCGhCAEEOMCC4wBAQF/IwBBEGsiAiAANgIMIAIgATYCCEEAIQAgAkEANgIEA0AgAiACKAIEIAIoAgwgAGotAAAgAigCCCAAai0AAHNyNgIEIAIgAigCBCAAQQFyIgEgAigCDGotAAAgAigCCCABai0AAHNyNgIEIABBAmoiAEHAAEcNAAsgAigCBEEBa0EIdkEBcUEBawvaAgECfyMAQZADayIIJAAgCEEANgIEIAhBEGoiCSAGIAdBABAbGiAIIAYpABA3AgggCEHQAGoiB0LAACAIQQRqIAkQMxogCEGQAWoiBiAHQfyWAigCABEAABogB0HAABAJIAYgBCAFQYCXAigCABECABogBkHglgJCACAFfUIPg0GAlwIoAgARAgAaIAYgASACQYCXAigCABECABogBkHglgJCACACfUIPg0GAlwIoAgARAgAaIAggBTcDSCAGIAhByABqIgRCCEGAlwIoAgARAgAaIAggAjcDSCAGIARCCEGAlwIoAgARAgAaIAYgCEEwaiIEQYSXAigCABEAABogBkGAAhAJIAQgAxA3IQYgBEEQEAkCQCAARQ0AIAYEQCAAQQAgAqcQDBpBfyEGDAELIAAgASACIAhBBGogCEEQahDqAUEAIQYLIAhBEGpBIBAJIAhBkANqJAAgBgusAgEDfyMAQYADayIJJAAgCUEANgIEIAlBEGoiCiAHIAhBABAbGiAJIAcpABA3AgggCUFAayIIQsAAIAlBBGoiCyAKEDMaIAlBgAFqIgcgCEH8lgIoAgARAAAaIAhBwAAQCSAHIAUgBkGAlwIoAgARAgAaIAdB4JYCQgAgBn1CD4NBgJcCKAIAEQIAGiAAIAMgBCALIAoQ6gEgByAAIARBgJcCKAIAEQIAGiAHQeCWAkIAIAR9Qg+DQYCXAigCABECABogCSAGNwM4IAcgCUE4aiIAQghBgJcCKAIAEQIAGiAJIAQ3AzggByAAQghBgJcCKAIAEQIAGiAHIAFBhJcCKAIAEQAAGiAHQYACEAkgAgRAIAJCEDcDAAsgCUEQakEgEAkgCUGAA2okAEEAC0oBAn8jAEEgayIGJABBfyEHAkAgAkIQVA0AIAYgBCAFEEANACAAIAFBEGogASACQhB9IAMgBhBdIQcgBkEgEAkLIAZBIGokACAHC08BAn8jAEEgayIGJAAgAkLw////D1QEQEF/IQcgBiAEIAUQQEUEQCAAQRBqIAAgASACIAMgBhBOIQcgBkEgEAkLIAZBIGokACAHDwsQDgAL6AQBAn8jAEGgAWsiBCQAIAAgAS0AADoAACAAIAEtAAE6AAEgACABLQACOgACIAAgAS0AAzoAAyAAIAEtAAQ6AAQgACABLQAFOgAFIAAgAS0ABjoABiAAIAEtAAc6AAcgACABLQAIOgAIIAAgAS0ACToACSAAIAEtAAo6AAogACABLQALOgALIAAgAS0ADDoADCAAIAEtAA06AA0gACABLQAOOgAOIAAgAS0ADzoADyAAIAEtABA6ABAgACABLQAROgARIAAgAS0AEjoAEiAAIAEtABM6ABMgACABLQAUOgAUIAAgAS0AFToAFSAAIAEtABY6ABYgACABLQAXOgAXIAAgAS0AGDoAGCAAIAEtABk6ABkgACABLQAaOgAaIAAgAS0AGzoAGyAAIAEtABw6ABwgACABLQAdOgAdIAAgAS0AHjoAHiABLQAfIQMgACACBH8gACAALQAAQfgBcToAACADQcAAcgUgAwtB/wBxOgAfIAQgABA+IAAgBBAvQX8hAyAALQAfQf8AcSAALQAeIAAtAB0gAC0AHCAALQAbIAAtABogAC0AGSAALQAYIAAtABcgAC0AFiAALQAVIAAtABQgAC0AEyAALQASIAAtABEgAC0AECAALQAPIAAtAA4gAC0ADSAALQAMIAAtAAsgAC0ACiAALQAJIAAtAAggAC0AByAALQAGIAAtAAUgAC0ABCAALQADIAAtAAIgAC0AASAALQAAQQFzcnJycnJycnJycnJycnJycnJycnJycnJycnJycnJyckEBa0GAAnFFBEBBf0EAIAFBIBAaGyEDCyAEQaABaiQAIAMLjgUBAn8jAEHAAmsiBCQAQX8hBQJAIAIQa0UNACACEEwNACAEIAIQNA0AIAQQbEUNACAAIAEtAAA6AAAgACABLQABOgABIAAgAS0AAjoAAiAAIAEtAAM6AAMgACABLQAEOgAEIAAgAS0ABToABSAAIAEtAAY6AAYgACABLQAHOgAHIAAgAS0ACDoACCAAIAEtAAk6AAkgACABLQAKOgAKIAAgAS0ACzoACyAAIAEtAAw6AAwgACABLQANOgANIAAgAS0ADjoADiAAIAEtAA86AA8gACABLQAQOgAQIAAgAS0AEToAESAAIAEtABI6ABIgACABLQATOgATIAAgAS0AFDoAFCAAIAEtABU6ABUgACABLQAWOgAWIAAgAS0AFzoAFyAA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DCAHKQAAQuv6htq/tfbBH4ULIQ4gAUFAa0EAQaUCEAwaIAEgDDcDOCABIA43AzAgASALNwMoIAEgDTcDICABQvHt9Pilp/2npX83AxggAUKr8NP0r+68tzw3AxAgAUK7zqqm2NDrs7t/NwMIIAEgCK1CiJL3lf/M+YTqAIU3AwBBAAshBAJAIANQDQAgAUHgAWohCSABQeAAaiEFA0AgBCAFaiEHQYACIARrIgatIgsgA1oEQCAHIAIgA6ciAhALGiABIAEoAuACIAJqNgLgAgwCCyAHIAIgBhALGiABIAEoAuACIAZqNgLgAiABIAEpA0AiDEKAAXw3A0AgASABKQNIIAxC/35WrXw3A0ggASAFEFIgBSAJQYABEAsaIAEgASgC4AJBgAFrIgQ2AuACIAIgBmohAiADIAt9IgNCAFINAAsLIAEgACAIEIMBGiAKJABBAAwBCxAOAAshCAsgCAsFAEGAAwsKACAAIAEgAhAHC/ADAgJ/An4jAEHAAWsiAyQAIANCADcDkAEgA0IANwOYASADQgA3A2ggA0IANwNwIANCADcDeCADQfiSAikDADcDqAEgA0GAkwIpAwA3A7ABIANBiJMCKQMANwO4ASADQgA3A4ABIANCADcDiAEgA0IANwNgIANB8JICKQMANwOgASADIAIpABA3A1AgAyACKQAYNwNYIAMgAikAADcDQCADIAIpAAg3A0ggA0GAAWoiAiADQUBrIgQQhQEgAhAoIAMgAykDmAE3AxggAyADKQOQATcDECADIAMpA4gBNwMIIAMgAykDgAE3AwAgA0IANwN4IANCADcDcCADQgA3A2ggA0IANwNgIAMgASkAEDcDUCADIAEpABg3A1ggASkACCEFIAEpAAAhBiADQgA3AzggA0IANwMwIANCADcDKCADIAY3A0AgAyAFNwNIIANCADcDICAEIAMQ6QEgAyADKQN4NwO4ASADIAMpA3A3A7ABIAMgAykDaDcDqAEgAyADKQNgNwOgASADIAMpA1g3A5gBIAMgAykDUDcDkAEgAyADKQNINwOIASADIAMpA0A3A4ABIAIQKCAAIAMpA5gBNwAYIAAgAykDkAE3ABAgACADKQOIATcACCAAIAMpA4ABNwAAIAJBwAAQCSADQcABaiQAC5cBAQF/IwBBQGoiAiQAIAIgASkAODcDOCACIAEpADA3AzAgAiABKQAoNwMoIAIgASkAIDcDICACIAEpABg3AxggAiABKQAQNwMQIAIgASkAADcDACACIAEpAAg3AwggAhAoIAAgAikDGDcAGCAAIAIpAxA3ABAgACACKQMINwAIIAAgAikDADcAACACQcAAEAkgAkFAayQAC8cCAgF/An4jAEHAAWsiAyQAIANCADcDYCADQgA3A2ggA0IANwNwIANCADcDeCADIAEpABA3A1AgAyABKQAYNwNYIAEpAAghBCABKQAAIQUgA0IANwMoIANCADcDMCADQgA3AzggAyAFNwNAIAMgBDcDSCADQgA3AyAgAyACKQAQNwMQIAMgAikAGDcDGCADIAIpAAA3AwAgAyACKQAINwMIIANBQGsgAxDpASADIAMpA3g3A7gBIAMgAykDcDcDsAEgAyADKQNoNwOoASADIAMpA2A3A6ABIAMgAykDWDcDmAEgAyADKQNQNwOQASADIAMpA0g3A4gBIAMgAykDQDcDgAEgA0GAAWoiARAoIAAgAykDmAE3ABggACADKQOQATcAECAAIAMpA4gBNwAIIAAgAykDgAE3AAAgAUHAABAJIANBwAFqJAAL5QEBAX8jAEGAAWsiAiQAIAJCADcDUCACQgA3A1ggAkIANwMoIAJCADcDMCACQgA3AzggAkH4kgIpAwA3A2ggAkGAkwIpAwA3A3AgAkGIkwIpAwA3A3ggAkIANwNAIAJCADcDSCACQQE6AEAgAkIANwMgIAJB8JICKQMANwNgIAIgASkAGDcDGCACIAEpABA3AxAgAiABKQAINwMIIAIgASkAADcDACACQUBrIgEgAhCFASABECggACACKQNYNwAYIAAgAikDUDcAECAAIAIpA0g3AAggACACKQNANwAAIAJBgAFqJAAL3gEBAX8jAEGAAWsiAiQAIAJCADcDUCACQgA3A1ggAkIANwMoIAJCADcDMCACQgA3AzggAkH4kgIpAwA3A2ggAkGAkwIpAwA3A3AgAkGIkwIpAwA3A3ggAkIANwNAIAJCADcDSCACQgA3AyAgAkHwkgIpAwA3A2AgAiABKQAQNwMQIAIgASkAGDcDGCACIAEpAAA3AwAgAiABKQAINwMIIAJBQGsiASACEIUBIAEQKCAAIAIpA1g3ABggACACKQNQNwAQIAAgAikDSDcACCAAIAIpA0A3AAAgAkGAAWokAAvPCwELfyMAQeAFayICJAAgAkHABWoiByABIAEQByACQeABaiIGIAEgBxAHIAJBoAVqIgQgASAGEAcgAkGABWoiBSAEIAQQByACQaADaiIJIAcgBRAHIAJBwAJqIgcgASAJEAcgAkHgBGoiAyAFIAUQByACQaACaiIFIAcgBxAHIAJBwARqIgggCSAFEAcgAkHAA2oiDCADIAUQByACQaAEaiIKIAggCBAHIAJBgANqIgggAyAKEAcgAkHgAmoiCyAGIAgQByACQcABaiIGIAMgCxAHIAJBoAFqIgMgBCAGEAcgAkHgAGogBCADEAcgAkGABGoiBiAKIAsQByACQeADaiIDIAQgBhAHIAJBgAJqIgYgDCADEAcgAkGAAWogBSAGEAcgAkFAayIFIAggAxAHIAJBIGoiAyAEIAUQByACIAkgAxAHIAAgByACEAdBACEEA0AgACAAIAAQByAEQQFqIgRB/gBHDQALIAAgACACQeACahAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACACQcAFahAHIAAgACACEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkGgAWoQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAhAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkGAAmoQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAJBQGsQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkHgAGoQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkHAAmoQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAJBgARqEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkHAAWoQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkHgA2oQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACACEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACACQYABahAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkEgahAHIAJB4AVqJABBACABQSAQGmsLKAADQCAAQSAQGSAAIAAtAB9BH3E6AB8gABCNAUUNACAAQSAQGg0ACwsKACAAIAEgAhAuCykBAX8jAEEQayIAJAAgAEEAOgAPQeSfAiAAQQ9qQQAQABogAEEQaiQAC2MBBX8DQCAAIANqIgIgASADai0AACAEIAItAABqaiICOgAAIAAgA0EBciIEaiIGIAEgBGotAAAgBi0AACACQQh2amoiAjoAACACQQh2IQQgA0ECaiEDIAVBAmoiBUEgRw0ACwsoACACQoCAgIAQWgRAEA4ACyAAIAEgAiADQQEgBEG8nwIoAgAREAAaCwQAQQwLdAEFfwJAQQEhAgNAIAAgA2oiASACIAEtAABqIgI6AAAgASABLQABIAJBCHZqIgI6AAEgASABLQACIAJBCHZqIgI6AAIgASABLQADIAJBCHZqIgE6AAMgAUEIdiECIANBBGohAyAEQQRqIgRBBEcNAAsMAAsLggcBFH8jAEHwAWsiBCQAIARCADcDyAEgBEIANwPAASAEQcABaiIJIAEgAhALGiADKAAQIQYgA0FAayIBKAAAIQcgAygAUCEFIAMoACAhCCADKAAwIQogAygAFCELIAMoAEQhDCADKABUIQ0gAygAJCEOIAMoADQhDyADKAAYIRAgAygASCERIAMoAFghEiADKAAoIRMgAygAOCEUIAQoAsABIRUgBCgCxAEhFiAEKALIASEXIAQgAygALCADKAA8cSADKAAcIAMoAEwgAygAXCAEKALMAXNzc3M2AswBIAQgEyAUcSAQIBEgEiAXc3NzczYCyAEgBCAOIA9xIAsgDCANIBZzc3NzNgLEASAEIAggCnEgBiAHIAUgFXNzc3M2AsABIAIgCWpBAEEQIAJrEAwaIAAgCSACEAsaIAQoAsABIQAgBCgCxAEhAiAEKALIASEGIAQoAswBIQcgBCADKQJYNwPoASAEIAMpAlA3A+ABIAQgAykCSDcDuAEgBCABKQIANwOwASAEIAMpAlg3A6gBIAQgAykCUDcDoAEgBEHQAWoiBSAEQbABaiAEQaABahAIIAMgBCkC2AE3AlggAyAEKQLQATcCUCAEIAMpAjg3A5gBIAQgAykCMDcDkAEgBCADKQJINwOIASAEIAEpAgA3A4ABIAUgBEGQAWogBEGAAWoQCCADIAQpAtgBNwJIIAEgBCkC0AE3AgAgBCADKQIoNwN4IAQgAykCIDcDcCAEIAMpAjg3A2ggBCADKQIwNwNgIAUgBEHwAGogBEHgAGoQCCADIAQpAtgBNwI4IAMgBCkC0AE3AjAgBCADKQIYNwNYIAQgAykCEDcDUCAEIAMpAig3A0ggBCADKQIgNwNAIAUgBEHQAGogBEFAaxAIIAMgBCkC2AE3AiggAyAEKQLQATcCICAEIAMpAgg3AzggBCADKQIANwMwIAQgAykCGDcDKCAEIAMpAhA3AyAgBSAEQTBqIARBIGoQCCADIAQpAtgBNwIYIAMgBCkC0AE3AhAgBCAEKQPoATcDGCAEIAQpA+ABNwMQIAQgAykCCDcDCCAEIAMpAgA3AwAgBSAEQRBqIAQQCCAEKALQASEBIAQoAtQBIQUgBCgC2AEhCCADIAcgBCgC3AFzNgIMIAMgBiAIczYCCCADIAIgBXM2AgQgAyAAIAFzNgIAIARB8AFqJAALqwYBFH8jAEHgAWsiAyQAIAIoABAhBCACQUBrIgUoAAAhBiACKABQIQkgAigAICEKIAIoADAhCyACKAAUIQcgAigARCEMIAIoAFQhDSABKAAEIQ4gAigAJCEPIAIoADQhECACKAAYIQggAigASCERIAIoAFghEiABKAAIIRMgAigAKCEUIAIoADghFSABKAAAIRYgACACKAAsIAIoADxxIAIoABwgAigATCACKABcIAEoAAxzc3NzIgE2AAwgACAUIBVxIAggESASIBNzc3NzIgg2AAggACAPIBBxIAcgDCANIA5zc3NzIgc2AAQgACAKIAtxIAQgBiAJIBZzc3NzIgA2AAAgAyACKQJYNwPYASADIAIpAlA3A9ABIAMgAikCSDcDuAEgAyAFKQIANwOwASADIAIpAlg3A6gBIAMgAikCUDcDoAEgA0HAAWoiBCADQbABaiADQaABahAIIAIgAykCyAE3AlggAiADKQLAATcCUCADIAIpAjg3A5gBIAMgAikCMDcDkAEgAyACKQJINwOIASADIAUpAgA3A4ABIAQgA0GQAWogA0GAAWoQCCACIAMpAsgBNwJIIAUgAykCwAE3AgAgAyACKQIoNwN4IAMgAikCIDcDcCADIAIpAjg3A2ggAyACKQIwNwNgIAQgA0HwAGogA0HgAGoQCCACIAMpAsgBNwI4IAIgAykCwAE3AjAgAyACKQIYNwNYIAMgAikCEDcDUCADIAIpAig3A0ggAyACKQIgNwNAIAQgA0HQAGogA0FAaxAIIAIgAykCyAE3AiggAiADKQLAATcCICADIAIpAgg3AzggAyACKQIANwMwIAMgAikCGDcDKCADIAIpAhA3AyAgBCADQTBqIANBIGoQCCACIAMpAsgBNwIYIAIgAykCwAE3AhAgAyADKQPYATcDGCADIAMpA9ABNwMQIAMgAikCCDcDCCADIAIpAgA3AwAgBCADQRBqIAMQCCADKALAASEFIAMoAsQBIQQgAygCyAEhBiACIAMoAswBIAFzNgIMIAIgBiAIczYCCCACIAQgB3M2AgQgAiAAIAVzNgIAIANB4AFqJAALiwkBEX8jAEHgAWsiBSQAIAQoADwgA0EddnMhDiAEKAA4IANBA3RzIQ8gBCgANCACQR12cyEQIARBMGoiAygAACACQQN0cyERIARBEGohAiAEQSBqIQYgBEFAayEHIARB0ABqIQgDQCAFIAgpAgg3A9gBIAUgCCkCADcD0AEgBSAHKQIINwO4ASAFIAcpAgA3A7ABIAUgCCkCCDcDqAEgBSAIKQIANwOgASAFQcABaiIJIAVBsAFqIAVBoAFqEAggCCAFKQLIATcCCCAIIAUpAsABNwIAIAUgAykCCDcDmAEgBSADKQIANwOQASAFIAcpAgg3A4gBIAUgBykCADcDgAEgCSAFQZABaiAFQYABahAIIAcgBSkCyAE3AgggByAFKQLAATcCACAFIAYpAgg3A3ggBSAGKQIANwNwIAUgAykCCDcDaCAFIAMpAgA3A2AgCSAFQfAAaiAFQeAAahAIIAMgBSkCyAE3AgggAyAFKQLAATcCACAFIAIpAgg3A1ggBSACKQIANwNQIAUgBikCCDcDSCAFIAYpAgA3A0AgCSAFQdAAaiAFQUBrEAggBiAFKQLIATcCCCAGIAUpAsABNwIAIAUgBCkCCDcDOCAFIAQpAgA3AzAgBSACKQIINwMoIAUgAikCADcDICAJIAVBMGogBUEgahAIIAIgBSkCyAE3AgggAiAFKQLAATcCACAFIAUpA9gBNwMYIAUgBSkD0AE3AxAgBSAEKQIINwMIIAUgBCkCADcDACAJIAVBEGogBRAIIAUoAsABIQsgBSgCxAEhDCAFKALIASEJIAQgDiAFKALMAXMiDTYCDCAEIAkgD3MiCTYCCCAEIAwgEHMiDDYCBCAEIAsgEXMiCzYCACAKQQFqIgpBB0cNAAsCQAJAAkACQCABQRBrDhEAAgICAgICAgICAgICAgICAQILIAQoABAhASAEKAAwIQIgBCgAICEDIAQoAFAhBiAEQUBrKAAAIQcgBCgAFCEIIAQoADQhCiAEKAAkIQ4gBCgAVCEPIAQoAEQhECAEKAAYIREgBCgAOCESIAQoACghEyAEKABYIRQgBCgASCEVIAAgBCgAHCAEKAA8IAQoACwgBCgAXCAEKABMc3NzcyANczYADCAAIBEgEiATIBQgFXNzc3MgCXM2AAggACAIIAogDiAPIBBzc3NzIAxzNgAEIAAgASACIAMgBiAHc3NzcyALczYAAAwCCyAEKAAgIQEgBCgAECECIAQoACQhAyAEKAAUIQYgBCgAKCEHIAQoABghCCAAIAQoACwgBCgAHHMgDXM2AAwgACAHIAhzIAlzNgAIIAAgAyAGcyAMczYABCAAIAEgAnMgC3M2AAAgBCgAMCEBIAQoAFAhAiAEQUBrKAAAIQMgBCgANCEGIAQoAFQhByAEKABEIQggBCgAOCEKIAQoAFghDSAEKABIIQkgACAEKAA8IAQoAFwgBCgATHNzNgAcIAAgCiAJIA1zczYAGCAAIAYgByAIc3M2ABQgACABIAIgA3NzNgAQDAELIABBACABEAwaCyAFQeABaiQAC6UGARR/IwBB4AFrIgMkACACKAAQIQUgAkFAayIEKAAAIQkgAigAUCEKIAIoACAhCyACKAAwIQwgASgABCEGIAIoABQhDSACKABEIQ4gAigAVCEPIAIoACQhECACKAA0IREgASgACCEHIAIoABghEiACKABIIRMgAigAWCEUIAIoACghFSACKAA4IRYgASgAACEIIAAgASgADCIBIAIoACwgAigAPHEgAigAHCACKABcIAIoAExzc3NzNgAMIAAgByAVIBZxIBIgEyAUc3NzczYACCAAIAYgECARcSANIA4gD3Nzc3M2AAQgACAIIAsgDHEgBSAJIApzc3NzNgAAIAMgAikCWDcD2AEgAyACKQJQNwPQASADIAIpAkg3A7gBIAMgBCkCADcDsAEgAyACKQJYNwOoASADIAIpAlA3A6ABIANBwAFqIgAgA0GwAWogA0GgAWoQCCACIAMpAsgBNwJYIAIgAykCwAE3AlAgAyACKQI4NwOYASADIAIpAjA3A5ABIAMgAikCSDcDiAEgAyAEKQIANwOAASAAIANBkAFqIANBgAFqEAggAiADKQLIATcCSCAEIAMpAsABNwIAIAMgAikCKDcDeCADIAIpAiA3A3AgAyACKQI4NwNoIAMgAikCMDcDYCAAIANB8ABqIANB4ABqEAggAiADKQLIATcCOCACIAMpAsABNwIwIAMgAikCGDcDWCADIAIpAhA3A1AgAyACKQIoNwNIIAMgAikCIDcDQCAAIANB0ABqIANBQGsQCCACIAMpAsgBNwIoIAIgAykCwAE3AiAgAyACKQIINwM4IAMgAikCADcDMCADIAIpAhg3AyggAyACKQIQNwMgIAAgA0EwaiADQSBqEAggAiADKQLIATcCGCACIAMpAsABNwIQIAMgAykD2AE3AxggAyADKQPQATcDECADIAIpAgg3AwggAyACKQIANwMAIAAgA0EQaiADEAggAygCwAEhACADKALEASEEIAMoAsgBIQUgAiABIAMoAswBczYCDCACIAUgB3M2AgggAiAEIAZzNgIEIAIgACAIczYCACADQeABaiQAC6UJAQ1/IwBBoANrIgIkACAAKAAQIQYgACgAFCEHIAAoABghCCAAKAAcIQkgACgABCEEIAAoAAghBSAAKAAMIQogACgAACELIAIgASkCWDcDmAMgAiABKQJQNwOQAyACIAEpAkg3A/gCIAIgAUFAayIAKQIANwPwAiACIAEpAlg3A+gCIAIgASkCUDcD4AIgAkGAA2oiAyACQfACaiACQeACahAIIAEgAikCiAM3AlggASACKQKAAzcCUCACIAEpAjg3A9gCIAIgASkCMDcD0AIgAiABKQJINwPIAiACIAApAgA3A8ACIAMgAkHQAmogAkHAAmoQCCABIAIpAogDNwJIIAAgAikCgAM3AgAgAiABKQIoNwO4AiACIAEpAiA3A7ACIAIgASkCODcDqAIgAiABKQIwNwOgAiADIAJBsAJqIAJBoAJqEAggASACKQKIAzcCOCABIAIpAoADNwIwIAIgASkCGDcDmAIgAiABKQIQNwOQAiACIAEpAig3A4gCIAIgASkCIDcDgAIgAyACQZACaiACQYACahAIIAEgAikCiAM3AiggASACKQKAAzcCICACIAEpAgg3A/gBIAIgASkCADcD8AEgAiABKQIYNwPoASACIAEpAhA3A+ABIAMgAkHwAWogAkHgAWoQCCABIAIpAogDNwIYIAEgAikCgAM3AhAgAiACKQOYAzcD2AEgAiACKQOQAzcD0AEgAiABKQIINwPIASACIAEpAgA3A8ABIAMgAkHQAWogAkHAAWoQCCACKAKAAyEMIAIoAoQDIQ0gAigCiAMhDiABIAogAigCjANzNgIMIAEgBSAOczYCCCABIAQgDXM2AgQgASALIAxzNgIAIAIgASkCWDcDmAMgAiABKQJQNwOQAyACIAEpAkg3A7gBIAIgACkCADcDsAEgAiABKQJYNwOoASACIAEpAlA3A6ABIAMgAkGwAWogAkGgAWoQCCABIAIpAogDNwJYIAEgAikCgAM3AlAgAiABKQI4NwOYASACIAEpAjA3A5ABIAIgASkCSDcDiAEgAiAAKQIANwOAASADIAJBkAFqIAJBgAFqEAggASACKQKIAzcCSCAAIAIpAoADNwIAIAIgASkCKDcDeCACIAEpAiA3A3AgAiABKQI4NwNoIAIgASkCMDcDYCADIAJB8ABqIAJB4ABqEAggASACKQKIAzcCOCABIAIpAoADNwIwIAIgASkCGDcDWCACIAEpAhA3A1AgAiABKQIoNwNIIAIgASkCIDcDQCADIAJB0ABqIAJBQGsQCCABIAIpAogDNwIoIAEgAikCgAM3AiAgAiABKQIINwM4IAIgASkCADcDMCACIAEpAhg3AyggAiABKQIQNwMgIAMgAkEwaiACQSBqEAggASACKQKIAzcCGCABIAIpAoADNwIQIAIgAikDmAM3AxggAiACKQOQAzcDECACIAEpAgg3AwggAiABKQIANwMAIAMgAkEQaiACEAggAigCgAMhACACKAKEAyEEIAIoAogDIQUgASAJIAIoAowDczYCDCABIAUgCHM2AgggASAEIAdzNgIEIAEgACAGczYCACACQaADaiQAC/MUARl/IwBBoAZrIgMkACABKAAEIQsgASgACCEMIAEoAAwhDSABKAAQIQ4gASgAFCEEIAEoABghDyABKAAcIRAgACgABCERIAAoAAghEiAAKAAMIRMgACgAECEUIAAoABQhFSAAKAAYIRYgACgAHCEXIAEoAAAhBSACQUBrIgEgACgAACIYQYCChBBzNgIAIAJClcTcyYWy+rziADcCOCACQTBqIgBCgIKEkLCggYQNNwIAIAJCoKLEkbSurZRdNwIoIAJBIGoiBkLb++Co1c3wl3E3AgAgAiAFIBhzIhk2AgAgAiAXQfPqoul9czYCXCACIBZBoKLEkQRzNgJYIAIgFUHthL+Jf3M2AlQgAkHQAGoiBSAUQdv74KgFczYCACACIBNBkNPnkwZzNgJMIAIgEkGVxNzJBXM2AkggAiARQYOKoOgAczYCRCACIBAgF3MiEDYCHCACIA8gFnMiDzYCGCACIAQgFXMiGjYCFCACQRBqIgQgDiAUcyIONgIAIAIgDSATcyINNgIMIAIgDCAScyIMNgIIIAIgCyARcyIbNgIEQQAhCwNAIAMgBSkCCDcDmAYgAyAFKQIANwOQBiADIAEpAgg3A/gFIAMgASkCADcD8AUgAyAFKQIINwPoBSADIAUpAgA3A+AFIANBgAZqIgcgA0HwBWogA0HgBWoQCCAFIAMpAogGNwIIIAUgAykCgAY3AgAgAyAAKQIINwPYBSADIAApAgA3A9AFIAMgASkCCDcDyAUgAyABKQIANwPABSAHIANB0AVqIANBwAVqEAggASADKQKIBjcCCCABIAMpAoAGNwIAIAMgBikCCDcDuAUgAyAGKQIANwOwBSADIAApAgg3A6gFIAMgACkCADcDoAUgByADQbAFaiADQaAFahAIIAAgAykCiAY3AgggACADKQKABjcCACADIAQpAgg3A5gFIAMgBCkCADcDkAUgAyAGKQIINwOIBSADIAYpAgA3A4AFIAcgA0GQBWogA0GABWoQCCAGIAMpAogGNwIIIAYgAykCgAY3AgAgAyACKQIINwP4BCADIAIpAgA3A/AEIAMgBCkCCDcD6AQgAyAEKQIANwPgBCAHIANB8ARqIANB4ARqEAggBCADKQKIBjcCCCAEIAMpAoAGNwIAIAMgAykDmAY3A9gEIAMgAykDkAY3A9AEIAMgAikCCDcDyAQgAyACKQIANwPABCAHIANB0ARqIANBwARqEAggAygCgAYhCCADKAKEBiEJIAMoAogGIQogAiADKAKMBiATczYCDCACIAogEnM2AgggAiAJIBFzNgIEIAIgCCAYczYCACADIAUpAgg3A5gGIAMgBSkCADcDkAYgAyABKQIINwO4BCADIAEpAgA3A7AEIAMgBSkCCDcDqAQgAyAFKQIANwOgBCAHIANBsARqIANBoARqEAggBSADKQKIBjcCCCAFIAMpAoAGNwIAIAMgACkCCDcDmAQgAyAAKQIANwOQBCADIAEpAgg3A4gEIAMgASkCADcDgAQgByADQZAEaiADQYAEahAIIAEgAykCiAY3AgggASADKQKABjcCACADIAYpAgg3A/gDIAMgBikCADcD8AMgAyAAKQIINwPoAyADIAApAgA3A+ADIAcgA0HwA2ogA0HgA2oQCCAAIAMpAogGNwIIIAAgAykCgAY3AgAgAyAEKQIINwPYAyADIAQpAgA3A9ADIAMgBikCCDcDyAMgAyAGKQIANwPAAyAHIANB0ANqIANBwANqEAggBiADKQKIBjcCCCAGIAMpAoAGNwIAIAMgAikCCDcDuAMgAyACKQIANwOwAyADIAQpAgg3A6gDIAMgBCkCADcDoAMgByADQbADaiADQaADahAIIAQgAykCiAY3AgggBCADKQKABjcCACADIAMpA5gGNwOYAyADIAMpA5AGNwOQAyADIAIpAgg3A4gDIAMgAikCADcDgAMgByADQZADaiADQYADahAIIAMoAoAGIQggAygChAYhCSADKAKIBiEKIAIgAygCjAYgF3M2AgwgAiAKIBZzNgIIIAIgCSAVczYCBCACIAggFHM2AgAgAyAFKQIINwOYBiADIAUpAgA3A5AGIAMgASkCCDcD+AIgAyABKQIANwPwAiADIAUpAgg3A+gCIAMgBSkCADcD4AIgByADQfACaiADQeACahAIIAUgAykCiAY3AgggBSADKQKABjcCACADIAApAgg3A9gCIAMgACkCADcD0AIgAyABKQIINwPIAiADIAEpAgA3A8ACIAcgA0HQAmogA0HAAmoQCCABIAMpAogGNwIIIAEgAykCgAY3AgAgAyAGKQIINwO4AiADIAYpAgA3A7ACIAMgACkCCDcDqAIgAyAAKQIANwOgAiAHIANBsAJqIANBoAJqEAggACADKQKIBjcCCCAAIAMpAoAGNwIAIAMgBCkCCDcDmAIgAyAEKQIANwOQAiADIAYpAgg3A4gCIAMgBikCADcDgAIgByADQZACaiADQYACahAIIAYgAykCiAY3AgggBiADKQKABjcCACADIAIpAgg3A/gBIAMgAikCADcD8AEgAyAEKQIINwPoASADIAQpAgA3A+ABIAcgA0HwAWogA0HgAWoQCCAEIAMpAogGNwIIIAQgAykCgAY3AgAgAyADKQOYBjcD2AEgAyADKQOQBjcD0AEgAyACKQIINwPIASADIAIpAgA3A8ABIAcgA0HQAWogA0HAAWoQCCADKAKABiEIIAMoAoQGIQkgAygCiAYhCiACIAMoAowGIA1zNgIMIAIgCiAMczYCCCACIAkgG3M2AgQgAiAIIBlzNgIAIAMgBSkCCDcDmAYgAyAFKQIANwOQBiADIAEpAgg3A7gBIAMgASkCADcDsAEgAyAFKQIINwOoASADIAUpAgA3A6ABIAcgA0GwAWogA0GgAWoQCCAFIAMpAogGNwIIIAUgAykCgAY3AgAgAyAAKQIINwOYASADIAApAgA3A5ABIAMgASkCCDcDiAEgAyABKQIANwOAASAHIANBkAFqIANBgAFqEAggASADKQKIBjcCCCABIAMpAoAGNwIAIAMgBikCCDcDeCADIAYpAgA3A3AgAyAAKQIINwNoIAMgACkCADcDYCAHIANB8ABqIANB4ABqEAggACADKQKIBjcCCCAAIAMpAoAGNwIAIAMgBCkCCDcDWCADIAQpAgA3A1AgAyAGKQIINwNIIAMgBikCADcDQCAHIANB0ABqIANBQGsQCCAGIAMpAogGNwIIIAYgAykCgAY3AgAgAyACKQIINwM4IAMgAikCADcDMCADIAQpAgg3AyggAyAEKQIANwMgIAcgA0EwaiADQSBqEAggBCADKQKIBjcCCCAEIAMpAoAGNwIAIAMgAykDmAY3AxggAyADKQOQBjcDECADIAIpAgg3AwggAyACKQIANwMAIAcgA0EQaiADEAggAygCgAYhCCADKAKEBiEJIAMoAogGIQogAiADKAKMBiAQczYCDCACIAogD3M2AgggAiAJIBpzNgIEIAIgCCAOczYCACALQQFqIgtBBEcNAAsgA0GgBmokAAsIACAAQRAQGQsEAEFfC5gKAR5/IwBBwAJrIgQkACAEQgA3A5gCIARCADcDkAIgBEIANwOIAiAEQgA3A4ACIARBgAJqIgUgASACEAsaIAMoABAhCyADKAAwIQwgAygAFCENIAMoADQhDiADKAAYIQ8gAygAOCEQIAMoABwhESADKAA8IRIgAygAJCEBIAMoAFQhEyADKAB0IRQgAygAZCEGIAMoACwhByADKABcIRUgAygAfCEWIAMoAGwhCCADKAAgIQkgAygAUCEXIAMoAHAhGCADKABgIQogBCgCkAIhGSAEKAKAAiEaIAQoAoQCIRsgBCgCiAIhHCAEKAKMAiEdIAQoApQCIR4gBCgCnAIhHyAEIAMoACgiICADKABoIiEgAygAeHEgAygAWCAEKAKYAnNzczYCmAIgBCAJIAogGHEgFyAZc3NzNgKQAiAEIAcgCCAWcSAVIB9zc3M2ApwCIAQgASAGIBRxIBMgHnNzczYClAIgBCAIIAcgEnEgESAdc3NzNgKMAiAEICEgECAgcSAPIBxzc3M2AogCIAQgBiABIA5xIA0gG3NzczYChAIgBCAKIAkgDHEgCyAac3NzNgKAAiACIAVqQQBBICACaxAMGiAAIAUgAhALGiAEKAKYAiEBIAQoApACIQIgBCgCnAIhBiAEKAKUAiEHIAQoAoACIQggBCgChAIhCSAEKAKIAiEKIAQoAowCIQsgBCADKQJ4NwO4AiAEIAMpAnA3A7ACIAQgAykCaDcD+AEgBCADKQJgNwPwASAEIAMpAng3A+gBIAQgAykCcDcD4AEgBEGgAmoiBSAEQfABaiAEQeABahAIIAMgBCkCqAI3AnggAyAEKQKgAjcCcCAEIAMpAlg3A9gBIAQgAykCUDcD0AEgBCADKQJoNwPIASAEIAMpAmA3A8ABIAUgBEHQAWogBEHAAWoQCCADIAQpAqgCNwJoIAMgBCkCoAI3AmAgBCADKQJINwO4ASAEIANBQGsiACkCADcDsAEgBCADKQJYNwOoASAEIAMpAlA3A6ABIAUgBEGwAWogBEGgAWoQCCADIAQpAqgCNwJYIAMgBCkCoAI3AlAgBCADKQI4NwOYASAEIAMpAjA3A5ABIAQgAykCSDcDiAEgBCAAKQIANwOAASAFIARBkAFqIARBgAFqEAggAyAEKQKoAjcCSCAAIAQpAqACNwIAIAQgAykCKDcDeCAEIAMpAiA3A3AgBCADKQI4NwNoIAQgAykCMDcDYCAFIARB8ABqIARB4ABqEAggAyAEKQKoAjcCOCADIAQpAqACNwIwIAQgAykCGDcDWCAEIAMpAhA3A1AgBCADKQIoNwNIIAQgAykCIDcDQCAFIARB0ABqIARBQGsQCCADIAQpAqgCNwIoIAMgBCkCoAI3AiAgBCADKQIINwM4IAQgAykCADcDMCAEIAMpAhg3AyggBCADKQIQNwMgIAUgBEEwaiAEQSBqEAggAyAEKQKoAjcCGCADIAQpAqACNwIQIAQgBCkDuAI3AxggBCAEKQOwAjcDECAEIAMpAgg3AwggBCADKQIANwMAIAUgBEEQaiAEEAggAyAEKQKoAjcCCCADIAQpAqACNwIAIAMgCyADKAAMczYCDCADIAogAygACHM2AgggAyAJIAMoAARzNgIEIAMgCCADKAAAczYCACAAIAIgACgAAHM2AgAgAyAHIAMoAERzNgJEIAMgASADKABIczYCSCADIAYgAygATHM2AkwgBEHAAmokAAuRCQEefyMAQaACayIDJAAgAigAECEOIAIoADAhDyACKAAUIRAgASgABCERIAIoADQhEiACKAAYIRMgASgACCEUIAIoADghFSACKAAcIQggASgADCEWIAIoADwhFyACKAAgIQUgAigAUCEJIAEoABAhGCACKABwIRkgAigAYCEEIAIoACQhBiACKABUIQogASgAFCEaIAIoAHQhGyACKABkIQwgAigAKCEHIAIoAFghCyABKAAYIRwgAigAeCEdIAIoAGghDSABKAAAIR4gACACKAAsIh8gAigAbCIgIAIoAHxxIAIoAFwgASgAHHNzcyIBNgAcIAAgByANIB1xIAsgHHNzcyILNgAYIAAgBiAMIBtxIAogGnNzcyIKNgAUIAAgBSAEIBlxIAkgGHNzcyIJNgAQIAAgICAXIB9xIAggFnNzcyIINgAMIAAgDSAHIBVxIBMgFHNzcyIHNgAIIAAgDCAGIBJxIBAgEXNzcyIGNgAEIAAgBCAFIA9xIA4gHnNzcyIFNgAAIAMgAikCeDcDmAIgAyACKQJwNwOQAiADIAIpAmg3A/gBIAMgAikCYDcD8AEgAyACKQJ4NwPoASADIAIpAnA3A+ABIANBgAJqIgQgA0HwAWogA0HgAWoQCCACIAMpAogCNwJ4IAIgAykCgAI3AnAgAyACKQJYNwPYASADIAIpAlA3A9ABIAMgAikCaDcDyAEgAyACKQJgNwPAASAEIANB0AFqIANBwAFqEAggAiADKQKIAjcCaCACIAMpAoACNwJgIAMgAikCSDcDuAEgAyACQUBrIgApAgA3A7ABIAMgAikCWDcDqAEgAyACKQJQNwOgASAEIANBsAFqIANBoAFqEAggAiADKQKIAjcCWCACIAMpAoACNwJQIAMgAikCODcDmAEgAyACKQIwNwOQASADIAIpAkg3A4gBIAMgACkCADcDgAEgBCADQZABaiADQYABahAIIAIgAykCiAI3AkggACADKQKAAjcCACADIAIpAig3A3ggAyACKQIgNwNwIAMgAikCODcDaCADIAIpAjA3A2AgBCADQfAAaiADQeAAahAIIAIgAykCiAI3AjggAiADKQKAAjcCMCADIAIpAhg3A1ggAyACKQIQNwNQIAMgAikCKDcDSCADIAIpAiA3A0AgBCADQdAAaiADQUBrEAggAiADKQKIAjcCKCACIAMpAoACNwIgIAMgAikCCDcDOCADIAIpAgA3AzAgAyACKQIYNwMoIAMgAikCEDcDICAEIANBMGogA0EgahAIIAIgAykCiAI3AhggAiADKQKAAjcCECADIAMpA5gCNwMYIAMgAykDkAI3AxAgAyACKQIINwMIIAMgAikCADcDACAEIANBEGogAxAIIAIgAykCiAI3AgggAiADKQKAAjcCACACIAIoAAwgCHM2AgwgAiACKAAIIAdzNgIIIAIgAigABCAGczYCBCACIAIoAAAgBXM2AgAgACAAKAAAIAlzNgIAIAIgAigARCAKczYCRCACIAIoAEggC3M2AkggAiACKABMIAFzNgJMIANBoAJqJAAL0gsBFX8jAEGgAmsiBSQAIAQoACwgA0EddnMhDCAEKAAoIANBA3RzIQ0gBCgAJCACQR12cyEOIARBIGoiAygAACACQQN0cyEPIARBEGohBiAEQTBqIQcgBEFAayECIARB0ABqIQggBEHgAGohCSAEQfAAaiEKA0AgBSAKKQIINwOYAiAFIAopAgA3A5ACIAUgCSkCCDcD+AEgBSAJKQIANwPwASAFIAopAgg3A+gBIAUgCikCADcD4AEgBUGAAmoiCyAFQfABaiAFQeABahAIIAogBSkCiAI3AgggCiAFKQKAAjcCACAFIAgpAgg3A9gBIAUgCCkCADcD0AEgBSAJKQIINwPIASAFIAkpAgA3A8ABIAsgBUHQAWogBUHAAWoQCCAJIAUpAogCNwIIIAkgBSkCgAI3AgAgBSACKQIINwO4ASAFIAIpAgA3A7ABIAUgCCkCCDcDqAEgBSAIKQIANwOgASALIAVBsAFqIAVBoAFqEAggCCAFKQKIAjcCCCAIIAUpAoACNwIAIAUgBykCCDcDmAEgBSAHKQIANwOQASAFIAIpAgg3A4gBIAUgAikCADcDgAEgCyAFQZABaiAFQYABahAIIAIgBSkCiAI3AgggAiAFKQKAAjcCACAFIAMpAgg3A3ggBSADKQIANwNwIAUgBykCCDcDaCAFIAcpAgA3A2AgCyAFQfAAaiAFQeAAahAIIAcgBSkCiAI3AgggByAFKQKAAjcCACAFIAYpAgg3A1ggBSAGKQIANwNQIAUgAykCCDcDSCAFIAMpAgA3A0AgCyAFQdAAaiAFQUBrEAggAyAFKQKIAjcCCCADIAUpAoACNwIAIAUgBCkCCDcDOCAFIAQpAgA3AzAgBSAGKQIINwMoIAUgBikCADcDICALIAVBMGogBUEgahAIIAYgBSkCiAI3AgggBiAFKQKAAjcCACAFIAUpA5gCNwMYIAUgBSkDkAI3AxAgBSAEKQIINwMIIAUgBCkCADcDACALIAVBEGogBRAIIAQgBSkCiAI3AgggBCAFKQKAAjcCACAEIAQoAAwgDHMiCzYCDCAEIAQoAAggDXMiETYCCCAEIAQoAAQgDnMiEjYCBCAEIAQoAAAgD3MiEzYCACACIAIoAAAgD3MiFDYCACAEIAQoAEQgDnMiFTYCRCAEIAQoAEggDXMiFjYCSCAEIAQoAEwgDHMiFzYCTCAQQQFqIhBBB0cNAAsCQAJAAkACQCABQRBrDhEAAgICAgICAgICAgICAgICAQILIAQoABAhASAEKAAwIQIgBCgAICEDIAQoAGAhBiAEKABQIQcgBCgAFCEIIAQoADQhCSAEKAAkIQogBCgAZCEMIAQoAFQhDSAEKAAYIQ4gBCgAOCEPIAQoACghECAEKABoIRggBCgAWCEZIAAgBCgAHCAEKAA8IAQoACwgBCgAXCAEKABsc3NzcyAXcyALczYADCAAIA4gDyAQIBggGXNzc3MgFnMgEXM2AAggACAIIAkgCiAMIA1zc3NzIBVzIBJzNgAEIAAgASACIAMgBiAHc3NzcyAUcyATczYAAAwCCyAEKAAQIQEgBCgAMCECIAQoACAhAyAEKAAUIQYgBCgANCEHIAQoACQhCCAEKAAYIQkgBCgAOCEKIAQoACghDCAAIAQoABwgBCgAPCAEKAAsc3MgC3M2AAwgACAJIAogDHNzIBFzNgAIIAAgBiAHIAhzcyASczYABCAAIAEgAiADc3MgE3M2AAAgBCgAUCEBIARBQGsoAAAhAiAEKABwIQMgBCgAYCEGIAQoAFQhByAEKABEIQggBCgAdCEJIAQoAGQhCiAEKABYIQwgBCgASCENIAQoAHghDiAEKABoIQ8gACAEKABcIAQoAEwgBCgAfCAEKABsc3NzNgAcIAAgDCANIA4gD3NzczYAGCAAIAcgCCAJIApzc3M2ABQgACABIAIgAyAGc3NzNgAQDAELIABBACABEAwaCyAFQaACaiQAC4MJAR5/IwBBoAJrIgMkACACKAAQIREgAigAMCESIAEoAAQhBSACKAAUIRMgAigANCEUIAEoAAghBiACKAAYIRUgAigAOCEWIAEoAAwhByACKAAcIRcgAigAPCEYIAIoACAhBCABKAAQIQggAigAUCEZIAIoAHAhGiACKABgIQkgAigAJCEKIAEoABQhCyACKABUIRsgAigAdCEcIAIoAGQhDCACKAAoIQ0gASgAGCEOIAIoAFghHSACKAB4IR4gAigAaCEPIAEoAAAhECAAIAIoACwiHyABKAAcIgEgAigAXCACKABsIiAgAigAfHFzc3M2ABwgACANIA4gHSAPIB5xc3NzNgAYIAAgCiALIBsgDCAccXNzczYAFCAAIAQgCCAZIAkgGnFzc3M2ABAgACAgIAcgFyAYIB9xc3NzNgAMIAAgDyAGIBUgDSAWcXNzczYACCAAIAwgBSATIAogFHFzc3M2AAQgACAJIBAgESAEIBJxc3NzNgAAIAMgAikCeDcDmAIgAyACKQJwNwOQAiADIAIpAmg3A/gBIAMgAikCYDcD8AEgAyACKQJ4NwPoASADIAIpAnA3A+ABIANBgAJqIgQgA0HwAWogA0HgAWoQCCACIAMpAogCNwJ4IAIgAykCgAI3AnAgAyACKQJYNwPYASADIAIpAlA3A9ABIAMgAikCaDcDyAEgAyACKQJgNwPAASAEIANB0AFqIANBwAFqEAggAiADKQKIAjcCaCACIAMpAoACNwJgIAMgAikCSDcDuAEgAyACQUBrIgApAgA3A7ABIAMgAikCWDcDqAEgAyACKQJQNwOgASAEIANBsAFqIANBoAFqEAggAiADKQKIAjcCWCACIAMpAoACNwJQIAMgAikCODcDmAEgAyACKQIwNwOQASADIAIpAkg3A4gBIAMgACkCADcDgAEgBCADQZABaiADQYABahAIIAIgAykCiAI3AkggACADKQKAAjcCACADIAIpAig3A3ggAyACKQIgNwNwIAMgAikCODcDaCADIAIpAjA3A2AgBCADQfAAaiADQeAAahAIIAIgAykCiAI3AjggAiADKQKAAjcCMCADIAIpAhg3A1ggAyACKQIQNwNQIAMgAikCKDcDSCADIAIpAiA3A0AgBCADQdAAaiADQUBrEAggAiADKQKIAjcCKCACIAMpAoACNwIgIAMgAikCCDcDOCADIAIpAgA3AzAgAyACKQIYNwMoIAMgAikCEDcDICAEIANBMGogA0EgahAIIAIgAykCiAI3AhggAiADKQKAAjcCECADIAMpA5gCNwMYIAMgAykDkAI3AxAgAyACKQIINwMIIAMgAikCADcDACAEIANBEGogAxAIIAIgAykCiAI3AgggAiADKQKAAjcCACACIAcgAigADHM2AgwgAiAGIAIoAAhzNgIIIAIgBSACKAAEczYCBCACIBAgAigAAHM2AgAgACAIIAAoAABzNgIAIAIgCyACKABEczYCRCACIA4gAigASHM2AkggAiABIAIoAExzNgJMIANBoAJqJAAL2QIBA38jACIKIApBwAFrQWBxIgkkACAIIAcgCUFAaxCHAUEAIQgCQCAGQT9NBEBBACEHDAELQcAAIQoDQCAFIAhqIAlBQGsQhgEgCiIHIQggB0FAayIKIAZNDQALCwJAIAYgB0EgciIKSQRAIAchCAwBCwNAIAUgB2ogCUFAaxBUIAoiCCIHQSBqIgogBk0NAAsLIAZBH3EiBwRAIAlBIGoiCiAHckEAQSAgB2sQDBogCiAFIAhqIAcQCxogCiAJQUBrEFQLQSAhCEEAIQcCQCAEQSBJBEBBACEFDAELA0AgACAHaiADIAdqIAlBQGsQ+AEgCCIFIgdBIGoiCCAETQ0ACwsgBEEfcSIHBEAgCUEgaiIIIAdyQQBBICAHaxAMGiAIIAMgBWogBxALGiAJIAggCUFAaxD4ASAAIAVqIAkgBxALGgsgASACIAYgBCAJQUBrEPcBJABBAAvsBAEFfyMAQfAAayIGJAAgAkIAUgRAIAYgBSkAGDcDGCAGIAUpABA3AxAgBiAFKQAANwMAIAYgBSkACDcDCCAGIAMpAAA3A2AgBiAEPABoIAYgBEI4iDwAbyAGIARCMIg8AG4gBiAEQiiIPABtIAYgBEIgiDwAbCAGIARCGIg8AGsgBiAEQhCIPABqIAYgBEIIiDwAaQJAIAJCwABaBEADQEEAIQUgBkEgaiAGQeAAaiAGQQAQShoDQCAAIAVqIAZBIGoiByAFai0AACABIAVqLQAAczoAACAAIAVBAXIiA2ogAyAHai0AACABIANqLQAAczoAACAFQQJqIgVBwABHDQALIAYgBi0AaEEBaiIDOgBoIAYgBi0AaSADQQh2aiIDOgBpIAYgBi0AaiADQQh2aiIDOgBqIAYgBi0AayADQQh2aiIDOgBrIAYgBi0AbCADQQh2aiIDOgBsIAYgBi0AbSADQQh2aiIDOgBtIAYgBi0AbiADQQh2aiIDOgBuIAYgBi0AbyADQQh2ajoAbyABQUBrIQEgAEFAayEAIAJCQHwiAkI/Vg0ACyACUA0BC0EAIQUgBkEgaiAGQeAAaiAGQQAQShogAqciA0EBcSACQgFSBEAgA0E+cSEJQQAhAwNAIAAgBWogBkEgaiIKIAVqLQAAIAEgBWotAABzOgAAIAAgBUEBciIHaiAHIApqLQAAIAEgB2otAABzOgAAIAVBAmohBSADQQJqIgMgCUcNAAsLRQ0AIAAgBWogBkEgaiAFai0AACABIAVqLQAAczoAAAsgBkEgakHAABAJIAZBIBAJCyAGQfAAaiQAQQALhQQCBn8BfiMAQfAAayIEJAAgAUIAUgRAIAQgAykAGDcDGCAEIAMpABA3AxAgBCADKQAANwMAIAQgAykACDcDCCACKQAAIQogBEIANwNoIAQgCjcDYAJAIAFCwABaBEADQCAAIARB4ABqIARBABBKGiAEIAQtAGhBAWoiAjoAaCAEIAQtAGkgAkEIdmoiAjoAaSAEIAQtAGogAkEIdmoiAjoAaiAEIAQtAGsgAkEIdmoiAjoAayAEIAQtAGwgAkEIdmoiAjoAbCAEIAQtAG0gAkEIdmoiAjoAbSAEIAQtAG4gAkEIdmoiAjoAbiAEIAQtAG8gAkEIdmo6AG8gAEFAayEAIAFCQHwiAUI/Vg0ACyABUA0BC0EAIQIgBEEgaiAEQeAAaiAEQQAQShogAaciBkEDcSEHQQAhAyABQgRaBEAgBkE8cSEIQQAhBgNAIAAgA2ogBEEgaiIJIANqLQAAOgAAIAAgA0EBciIFaiAFIAlqLQAAOgAAIAAgA0ECciIFaiAEQSBqIAVqLQAAOgAAIAAgA0EDciIFaiAEQSBqIAVqLQAAOgAAIANBBGohAyAGQQRqIgYgCEcNAAsLIAdFDQADQCAAIANqIARBIGogA2otAAA6AAAgA0EBaiEDIAJBAWoiAiAHRw0ACwsgBEEgakHAABAJIARBIBAJCyAEQfAAaiQAQQALhgYBFH8jAEGwAmsiAiQAIAAgAS0AADoAACAAIAEtAAE6AAEgACABLQACOgACIAAgAS0AAzoAAyAAIAEtAAQ6AAQgACABLQAFOgAFIAAgAS0ABjoABiAAIAEtAAc6AAcgACABLQAIOgAIIAAgAS0ACToACSAAIAEtAAo6AAogACABLQALOgALIAAgAS0ADDoADCAAIAEtAA06AA0gACABLQAOOgAOIAAgAS0ADzoADyAAIAEtABA6ABAgACABLQAROgARIAAgAS0AEjoAEiAAIAEtABM6ABMgACABLQAUOgAUIAAgAS0AFToAFSAAIAEtABY6ABYgACABLQAXOgAXIAAgAS0AGDoAGCAAIAEtABk6ABkgACABLQAaOgAaIAAgAS0AGzoAGyAAIAEtABw6ABwgACABLQAdOgAdIAAgAS0AHjoAHiABLQAfIQEgACAALQAAQfgBcToAACAAIAFBP3FBwAByOgAfIAJBMGogABA+IAIoAoABIQEgAigCWCEDIAIoAoQBIQQgAigCXCEFIAIoAogBIQYgAigCYCEHIAIoAowBIQggAigCZCEJIAIoApABIQogAigCaCELIAIoApQBIQwgAigCbCENIAIoApgBIQ4gAigCcCEPIAIoApwBIRAgAigCdCERIAIoAqABIRIgAigCeCETIAIgAigCfCIUIAIoAqQBIhVqNgKkAiACIBIgE2o2AqACIAIgECARajYCnAIgAiAOIA9qNgKYAiACIAwgDWo2ApQCIAIgCiALajYCkAIgAiAIIAlqNgKMAiACIAYgB2o2AogCIAIgBCAFajYChAIgAiABIANqNgKAAiACIBUgFGs2AvQBIAIgEiATazYC8AEgAiAQIBFrNgLsASACIA4gD2s2AugBIAIgDCANazYC5AEgAiAKIAtrNgLgASACIAggCWs2AtwBIAIgBiAHazYC2AEgAiAEIAVrNgLUASACIAEgA2s2AtABIAJB0AFqIgEgARA1IAIgAkGAAmogARAGIAAgAhARIAJBsAJqJABBAAvrHAI+fwx+IwBB8AJrIgMkAANAIAIgBmotAAAiBCAGQcCKAmoiCS0AAHMgB3IhByAEIAktAMABcyAFciEFIAQgCS0AoAFzIAxyIQwgBCAJLQCAAXMgCHIhCCAEIAktAGBzIA1yIQ0gBCAJQUBrLQAAcyALciELIAQgCS0AIHMgCnIhCiAGQQFqIgZBH0cNAAtBfyEJIAItAB9B/wBxIgQgCnJB/wFxQQFrIAQgB3JB/wFxQQFrciAEIAtyQf8BcUEBa3IgBEHXAHMgDXJB/wFxQQFrciAEQf8AcyIEIAhyQf8BcUEBa3IgBCAMckH/AXFBAWtyIAQgBXJB/wFxQQFrckGAAnFFBEAgAyABKQAYNwPoAiADIAEpABA3A+ACIAMgASkAACJDNwPQAiADIAEpAAg3A9gCIAMgQ6dB+AFxOgDQAiADIAMtAO8CQT9xQcAAcjoA7wIgA0GgAmogAhA2IANCADcChAIgA0IANwKMAiADQQA2ApQCIANCADcD0AEgA0IANwPYASADQgA3A+ABIAMgAykDsAI3A6ABIAMgAykDuAI3A6gBIAMgAykDwAI3A7ABIANCADcC9AEgA0EBNgLwASADQgA3AvwBIANCADcDwAEgA0IANwPIASADIAMpA6ACNwOQASADIAMpA6gCNwOYASADQgA3AnQgA0IANwJ8IANBADYChAEgA0IANwJkIANBATYCYCADQgA3AmxB/gEhAkEAIQQDQCADKAKUAiEJIAMoArQBIQYgAygCYCEHIAMoAsABIQogAygCkAEhCyADKALwASENIAMoAmQhCCADKALEASEMIAMoApQBIQUgAygC9AEhECADKAJoIQ4gAygCyAEhESADKAKYASESIAMoAvgBIRMgAygCbCEPIAMoAswBIRQgAygCnAEhFSADKAL8ASEXIAMoAnAhGCADKALQASEcIAMoAqABIR0gAygCgAIhHiADKAJ0IRkgAygC1AEhHyADKAKkASEgIAMoAoQCISEgAygCeCEaIAMoAtgBISIgAygCqAEhIyADKAKIAiEkIAMoAnwhGyADKALcASElIAMoAqwBISYgAygCjAIhJyADKAKAASEWIAMoAuABISggAygCsAEhKSADKAKQAiEsIANBACAEIANB0AJqIi0gAiIBQQN2ai0AACACQQdxdkEBcSIEc2siAiADKAKEASIqIAMoAuQBIitzcSIuICpzIio2AoQBIAMgBiAGIAlzIAJxIi9zIjAgKms2AlQgAyAWIBYgKHMgAnEiMXMiBjYCgAEgAyApICkgLHMgAnEiFnMiKSAGazYCUCADIBsgGyAlcyACcSIycyIbNgJ8IAMgJiAmICdzIAJxIjNzIiYgG2s2AkwgAyAaIBogInMgAnEiNHMiGjYCeCADICMgIyAkcyACcSI1cyIjIBprNgJIIAMgGSAZIB9zIAJxIjZzIhk2AnQgAyAgICAgIXMgAnEiN3MiICAZazYCRCADIBggGCAccyACcSI4cyIYNgJwIAMgHSAdIB5zIAJxIjlzIh0gGGs2AkAgAyAPIA8gFHMgAnEiOnMiDzYCbCADIBUgFSAXcyACcSI7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BiAWIAMgGhAGIAENAAsgAygCkAEhECADKALwASECIAMoApQBIQ4gAygC9AEhBiADKAKYASERIAMoAvgBIQcgAygCnAEhEiADKAL8ASEKIAMoAqABIRMgAygCgAIhCyADKAKkASEPIAMoAoQCIQ0gAygCqAEhFCADKAKIAiEIIAMoAqwBIRUgAygCjAIhDCADKAKwASEXIAMoApACIQUgA0EAIARrIgEgAygClAIiBCADKAK0AXNxIARzNgKUAiADIAUgBSAXcyABcXM2ApACIAMgDCAMIBVzIAFxczYCjAIgAyAIIAggFHMgAXFzNgKIAiADIA0gDSAPcyABcXM2AoQCIAMgCyALIBNzIAFxczYCgAIgAyAKIAogEnMgAXFzNgL8ASADIAcgByARcyABcXM2AvgBIAMgBiAGIA5zIAFxczYC9AEgAyACIAIgEHMgAXFzNgLwASADKALAASECIAMoAmAhBSADKALEASEEIAMoAmQhECADKALIASEGIAMoAmghDiADKALMASEHIAMoAmwhESADKALQASEKIAMoAnAhEiADKALUASELIAMoAnQhEyADKALYASENIAMoAnghDyADKALcASEIIAMoAnwhFCADKALgASEMIAMoAoABIRUgAyADKALkASIXIAMoAoQBcyABcSAXczYC5AEgAyAMIAwgFXMgAXFzNgLgASADIAggCCAUcyABcXM2AtwBIAMgDSANIA9zIAFxczYC2AEgAyALIAsgE3MgAXFzNgLUASADIAogCiAScyABcXM2AtABIAMgByAHIBFzIAFxczYCzAEgAyAGIAYgDnMgAXFzNgLIASADIAQgBCAQcyABcXM2AsQBIAMgAiACIAVzIAFxczYCwAEgFiAWEDUgGSAZIBYQBiAAIBkQESAtQSAQCUEAIQkLIANB8AJqJAAgCQs4AQF/IwBBIGsiBiQAIAYgBCAFQQAQGxogACABIAKtIAOtQiCGhCAEQRBqQgAgBhA7IAZBIGokAAtAAQF/IwBBIGsiCCQAIAggBCAHQQAQGxogACABIAKtIAOtQiCGhCAEQRBqIAWtIAatQiCGhCAIEDsgCEEgaiQACzQBAX8jAEEgayIFJAAgBSADIARBABAbGiAAIAGtIAKtQiCGhCADQRBqIAUQUyAFQSBqJAALtgQCA38CfiMAQfAAayIGJAAgAq0gA61C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IwtbAQJ+IAetIAitQiCGhCEMQX8hAiAErSAFrUIghoQiC0IQWgRAIAAgAyALQhB9IAMgC6dqQRBrIAYgDCAJIAoQsgEhAgsgAQRAIAFCACALQhB9IAIbNwMACyACCyUAIAAgAiADrSAErUIghoQgBSAGIAetIAitQiCGhCAJIAoQsgELWQECfgJ/IAatIAetQiCGhCEMIAOtIAStQiCGhCILQvD///8PVARAIAAgACALp2pBACACIAsgBSAMIAkgChCzARogAQRAIAEgC0IQfDcDAAtBAAwBCxAOAAsLJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALELMBC1sBAn4gB60gCK1CIIaEIQxBfyECIAStIAWtQiCGhCILQhBaBEAgACADIAtCEH0gAyALp2pBEGsgBiAMIAkgChDDASECCyABBEAgAUIAIAtCEH0gAhs3AwALIAILJQAgACACIAOtIAStQiCGhCAFIAYgB60gCK1CIIaEIAkgChDDAQtbAQJ+IAetIAitQiCGhCEMQX8hAiAErSAFrUIghoQiC0IQWgRAIAAgAyALQhB9IAMgC6dqQRBrIAYgDCAJIAoQxAEhAgsgAQRAIAFCACALQhB9IAIbNwMACyACCyUAIAAgAiADrSAErUIghoQgBSAGIAetIAitQiCGhCAJIAoQxAELWQECfgJ/IAatIAetQiCGhCEMIAOtIAStQiCGhCILQvD///8PVARAIAAgACALp2pBACACIAsgBSAMIAkgChDFARogAQRAIAEgC0IQfDcDAAtBAAwBCxAOAAsLJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALEMUBC1kBAn4CfyAGrSAHrUIghoQhDCADrSAErUIghoQiC0Lw////D1QEQCAAIAAgC6dqQQAgAiALIAUgDCAJIAoQxgEaIAEEQCABIAtCEHw3AwALQQAMAQsQDgALCycAIAAgASACIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAogCxDGAQtZAQJ+IAetIAitQiCGhCELQX8hAQJAIAOtIAStQiCGhCIMQt////8PVg0AIAtC3////w9WDQAgACACIAynIAVBICAGIAunIAkgCkGsnwIoAgARDQAhAQsgAQuAAQEDfiAHrSAIrUIghoQhDEF/IQICQCAErSAFrUIghoQiC0IgVA0AIAtCIH0iDULf////D1YNACAMQt////8PVg0AIAAgAyANpyADIAunakEga0EgIAYgDKcgCSAKQayfAigCABENACECCyABBEAgAUIAIAtCIH0gAhs3AwALIAILYAECfiAErSAFrUIghoQhDCAHrSAIrUIghoQhDSACBEAgAkIgNwMACyANQuD///8PVCAMQt////8PWHFFBEAQDgALIAAgAUEgIAMgDKcgBiANpyAKIAtBqJ8CKAIAEQ0AC3YBAn4CfyAGrSAHrUIghoQhCwJAIAOtIAStQiCGhCIMQt////8PVg0AIAtC4P///w9aDQAgACAAIAynIgNqQSAgAiADIAUgC6cgCSAKQaifAigCABENACEAIAEEQCABQgAgDEIgfCAAGzcDAAsgAAwBCxAOAAsLWQECfiAHrSAIrUIghoQhC0F/IQECQCADrSAErUIghoQiDELf////D1YNACALQt////8PVg0AIAAgAiAMpyAFQSAgBiALpyAJIApBpJ8CKAIAEQ0AIQELIAELgAEBA34gB60gCK1CIIaEIQxBfyECAkAgBK0gBa1CIIaEIgtCIFQNACALQiB9Ig1C3////w9WDQAgDELf////D1YNACAAIAMgDacgAyALp2pBIGtBICAGIAynIAkgCkGknwIoAgARDQAhAgsgAQRAIAFCACALQiB9IAIbNwMACyACC2ABAn4gBK0gBa1CIIaEIQwgB60gCK1CIIaEIQ0gAgRAIAJCIDcDAAsgDULg////D1QgDELf////D1hxRQRAEA4ACyAAIAFBICADIAynIAYgDacgCiALQaCfAigCABENAAt2AQJ+An8gBq0gB61CIIaEIQsCQCADrSAErUIghoQiDELf////D1YNACALQuD///8PWg0AIAAgACAMpyIDakEgIAIgAyAFIAunIAkgCkGgnwIoAgARDQAhACABBEAgAUIAIAxCIHwgABs3AwALIAAMAQsQDgALCwUAQegACwQAQRoLBQBBiwwLBQBBtAoL/QEBBX8jACIFIQkgBUGABGtBQHEiBSQAIAAgASAAGyIHBEBBfyEGIAVB4ABqIgggAyAEEB9FBEAgASAAIAEbIQNBACEAIAVBgAFqIgFBAEEAQcAAECIaIAEgCEIgEA8aIAhBIBAJIAEgBEIgEA8aIAEgAkIgEA8aIAEg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ACABIAIgAxAiCwsAIAAgASACEMcBCw0AIAAgASACIAMQyAELBwAgABDJAQsJACAAIAEQywELCwAgACABIAIQzAELBQBBrgsLOgEDfiABKQAgIQIgASkAKCEDIAEpADAhBCAAIAEpADg3ABggACAENwAQIAAgAzcACCAAIAI3AABBAAs6AQN+IAEpAAghAiABKQAQIQMgASkAACEEIAAgASkAGDcAGCAAIAM3ABAgACACNwAIIAAgBDcAAEEAC3wBAX8CQAJAAkAgA0LAAFQNACADQkB8IgNCv////w9WDQAgAiACQUBrIgUgAyAEQQAQdkUNASAARQ0AIABBACADpxAMGgtBfyECIAFFDQEgAUIANwMAQX8PCyABBEAgASADNwMAC0EAIQIgAEUNACAAIAUgA6cQQhoLIAILcAECfyMAQRBrIgUkACAAIAVBCGogAEFAayACIAOnIgIQQiADIARBABB4GgJAIAUpAwhCwABSBEAgAQRAIAFCADcDAAsgAEEAIAJBQGsQDBpBfyEGDAELIAFFDQAgASADQkB9NwMACyAFQRBqJAAgBgsTACAAIAEgAiADIARBABB4GkEAC20BAX8jAEFAaiICJAAgAiABQiAQRxogAiACLQAAQfgBcToAACACIAItAB9BP3FBwAByOgAfIAAgAikDEDcAECAAIAIpAwg3AAggACACKQMANwAAIAAgAikDGDcAGCACQcAAEAkgAkFAayQAQQAL5woCD38nfiMAQYACayICJABBfyEIAkAgARBMDQAgAkHgAGoiAyABEJQBDQAgAxBsRQ0AQQAhCCACQQAgAigCrAEiAWs2AiQgAkEAIAIoAqgBIgNrNgIgIAJBACACKAKkASIJazYCHCACQQAgAigCoAEiBGs2AhggAkEAIAIoApwBIgprNgIUIAJBACACKAKYASIFazYCECACQQAgAigClAEiC2s2AgwgAkEAIAIoApABIgZrNgIIIAJBACACKAKMASIMazYCBCACQQEgAigCiAEiB2s2AgAgAiACEDUgAiACKAIEIg2sIhkgCkEBdKwiIn4gAjQCACIRIASsIhR+fCACKAIIIgSsIhsgBawiFX58IAIoAgwiBawiHiALQQF0rCIjfnwgAigCECIOrCIfIAasIhZ+fCACKAIUIgasIiQgDEEBdKwiJX58IAIoAhgiD6wiLiAH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IAIQPQ0AIAMgARAQIANBoAFqIgEgBSADEFUgA0HAAmoiAiABEFYgACACEEtBACEECyADQaAGaiQAIAQLZQEDfyMAQaAGayIDJABBfyEEAkAgA0GABWoiBSABED0NACADQeADaiIBIAIQPQ0AIAMgARAQIANBoAFqIgEgBSADEBMgA0HAAmoiAiABEFYgACACEEtBACEECyADQaAGaiQAIAQLHQEBfyMAQaABayIBJAAgASAAED0gAUGgAWokAEULpQEBBn8jAEEQayIFQQA2AgxBfyEEIAIgA0EBa0sEfyABIAJBAWsiB2ohCEEAIQJBACEBQQAhBANAIAUgBSgCDCIGQQAgCCACay0AACIJQYABc0EBayAGQQFrIARBAWtxcUEIdkEBcSIGayACcXI2AgwgASAGciEBIAQgCXIhBCACQQFqIgIgA0cNAAsgACAHIAUoAgxrNgIAIAFB/wFxQQFrBUF/CwshAQF/IwBBIGsiASQAIAFBIBAZIAAgARCMASABQSBqJAALCwAgACABEIwBQQALcwEDfyMAQaAGayIDJABBfyEEAkAgA0GABWoiBSABEDQNACAFEE1FDQAgA0HgA2oiASACEDQNACABEE1FDQAgAyABEBAgA0GgAWoiASAFIAMQVSADQcACaiICIAEQViAAIAIQL0EAIQQLIANBoAZqJAAgBAtzAQN/IwBBoAZrIgMkAEF/IQQCQCADQYAFaiIFIAEQNA0AIAUQTUUNACADQeADaiIBIAIQNA0AIAEQTUUNACADIAEQECADQaABaiIBIAUgAxATIANBwAJqIgIgARBWIAAgAhAvQQAhBAsgA0GgBmokACAEC0ABAn8jAEGgAWsiASQAAkAgABBrRQ0AIAAQTA0AIAEgABA0DQAgARBNRQ0AIAEQbEEARyECCyABQaABaiQAIAILBgBBwP8AC7UCAgV/AX4jAEHwA2siBSQAIAVBAToADwJ/IAFBwP8ATQRAIAFBwABPBEAgAEFAaiEJIAOtIQpBwAAhBgNAIAYhByAFQdAAaiIGIARBwAAQLhogCARAIAYgCCAJakLAABAmGgsgBUHQAGoiBiACIAoQJhogBiAFQQ9qQgEQJhogBiAAIAhqEDEaIAUgBS0AD0EBajoADyAHIQggB0FAayIGIAFNDQALCyABQT9xIggEQCAFQdAAaiIBIARBwAAQ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ZABcjnj+aHy+ALWxPv/6KVUAmIIqAWD89gCXlz/+74U+ACA4nAAtp73/joWzAYNW0wC7s5b++qoO/9KjTgAlNJcAY00aAO6c1f/VwNEBSS5UABRBKQE2zk8AyYOS/qpvGP+xITL+qybL/073dADR3ZkAhYCyATosGQDJJzsBvRP8ADHl0gF1u3UAtbO4AQBy2wAwXpMA9Sk4AH0NzP70rXcALN0g/lTqFAD5oMYB7H7q/y9jqP6q4pn/ZrPYAOKNev96Qpn+tvWGAOPkGQHWOev/2K04/7Xn0gB3gJ3/gV+I/25+MwACqbf/B4Ji/kWwXv90BOMB2fKR/8qtHwFpASf/Lq9FAOQvOv/X4EX+zzhF/xD+i/8Xz9T/yhR+/1/VYP8JsCEAyAXP//EqgP4jIcD/+OXEAYEReAD7Z5f/BzRw/4w4Qv8o4vX/2UYl/qzWCf9IQ4YBksDW/ywmcABEuEv/zlr7AJXrjQC1qjoAdPTvAFydAgBmrWIA6YlgAX8xywAFm5QAF5QJ/9N6DAAihhr/28yIAIYIKf/gUyv+VRn3AG1/AP6piDAA7nfb/+et1QDOEv7+CLoH/34JBwFvKkgAbzTs/mA/jQCTv3/+zU7A/w5q7QG720wAr/O7/mlZrQBVGVkBovOUAAJ20f4hngkAi6Mu/11GKABsKo7+b/yO/5vfkAAz5af/Sfyb/150DP+YoNr/nO4l/7Pqz//FALP/mqSNAOHEaAAKIxn+0dTy/2H93v64ZeUA3hJ/AaSIh/8ez4z+kmHzAIHAGv7JVCH/bwpO/5NRsv8EBBgAoe7X/waNIQA11w7/KbXQ/+eLnQCzy93//7lxAL3irP9xQtb/yj4t/2ZACP9OrhD+hXVE/wBBoBULAQEAQcAVC7ABJuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQAQf8WC6zxARD9QF0AoGo/ADnTV/4M0roAWLx0/kHYAQD/yD0B2EKU/wD7XAAksuH/AAAA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AZGInAD8dan+keLuAO8XawBttbz/5nAx/kmq7f/nt+P/UNwUAMJrfwF/zWUALjTFAdKrJP9YA1r/OJeNAGC7//8qTsgA/kZGAfR9qADMRIoBfNdGAGZCyP4RNOQAddyP/sv4ewA4Eq7/upek/zPo0AGg5Cv/+R0ZAUS+PwANAAAAAP8AAAAA9QAAAAAAAPsAAAAAAAD9AAAAAPMAAAAABwAAAAAAAwAAAADzAAAAAAUAAAAAAAAAAAsAAAAAAAsAAAAA8wAAAAAAAP0AAAAAAP8AAAAAAwAAAAD1AAAAAAAAAA8AAAAAAP8AAAAA/wAAAAAHAAAAAAUAQayJAgsrAQAAAHbBXwBlcAL/UPyh/vJqxv+FBrIA5N9wAN/uVf4z8xoAPiuL/stBCgBB4IkCC1czTe0AkapW/zYmM//xgGX/KXlK/+xOmwCpl2n+nClIAMJmr//OomX/AAAAAAAAAAAbLnsBEqj9/9Ovl/7D22AAOHa+/v7R9f+ZZH7+6IEV/zW48v/HpN0AQeCKAgsBAQBBgIsCC/EG4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f0xpYnNvZGl1bURSRwAAAAAIybzzZ+YJajunyoSFrme7K/iU/nLzbjzxNh1fOvVPpdGC5q1/Ug5RH2w+K4xoBZtrvUH7q9mDH3khfhMZzeBbIq4o15gvikLNZe8jkUQ3cS87TezP+8C1vNuJgaXbtek4tUjzW8JWORnQBbbxEfFZm08Zr6SCP5IYgW3a1V4cq0ICA6OYqgfYvm9wRQFbgxKMsuROvoUxJOK0/9XDfQxVb4l78nRdvnKxlhY7/rHegDUSxyWnBtyblCZpz3Txm8HSSvGewWmb5OMlTziGR77vtdWMi8adwQ9lnKx3zKEMJHUCK1lvLOktg+SmbqqEdErU+0G93KmwXLVTEYPaiPl2q99m7lJRPpgQMrQtbcYxqD8h+5jIJwOw5A7vvsd/Wb/Cj6g98wvgxiWnCpNHkafVb4ID4FFjygZwbg4K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\"),A=I,J(b).then((I=>WebAssembly.instantiate(I,A))).then((function(A){g(A.instance)}),(A=>{e(`failed to asynchronously prepare wasm: ${A}`),U(A)})),{}}();function q(){function A(){l||(l=!0,B.calledRun=!0,n||(m(S),B.onRuntimeInitialized?.(),function(){if(B.postRun)for(\"function\"==typeof B.postRun&&(B.postRun=[B.postRun]);B.postRun.length;)A=B.postRun.shift(),N.unshift(A);var A;m(N)}()))}G>0||(function(){if(B.preRun)for(\"function\"==typeof B.preRun&&(B.preRun=[B.preRun]);B.preRun.length;)A=B.preRun.shift(),F.unshift(A);var A;m(F)}(),G>0||(B.setStatus?(B.setStatus(\"Running...\"),setTimeout((function(){setTimeout((function(){B.setStatus(\"\")}),1),A()}),1)):A()))}if(B._crypto_aead_aegis128l_keybytes=()=>(B._crypto_aead_aegis128l_keybytes=P.g)(),B._crypto_aead_aegis128l_nsecbytes=()=>(B._crypto_aead_aegis128l_nsecbytes=P.h)(),B._crypto_aead_aegis128l_npubbytes=()=>(B._crypto_aead_aegis128l_npubbytes=P.i)(),B._crypto_aead_aegis128l_abytes=()=>(B._crypto_aead_aegis128l_abytes=P.j)(),B._crypto_aead_aegis128l_messagebytes_max=()=>(B._crypto_aead_aegis128l_messagebytes_max=P.k)(),B._crypto_aead_aegis128l_keygen=A=>(B._crypto_aead_aegis128l_keygen=P.l)(A),B._crypto_aead_aegis128l_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_encrypt=P.m)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis128l_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_aegis128l_encrypt_detached=P.n)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_aegis128l_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_decrypt=P.o)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis128l_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_decrypt_detached=P.p)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_keybytes=()=>(B._crypto_aead_aegis256_keybytes=P.q)(),B._crypto_aead_aegis256_nsecbytes=()=>(B._crypto_aead_aegis256_nsecbytes=P.r)(),B._crypto_aead_aegis256_npubbytes=()=>(B._crypto_aead_aegis256_npubbytes=P.s)(),B._crypto_aead_aegis256_abytes=()=>(B._crypto_aead_aegis256_abytes=P.t)(),B._crypto_aead_aegis256_messagebytes_max=()=>(B._crypto_aead_aegis256_messagebytes_max=P.u)(),B._crypto_aead_aegis256_keygen=A=>(B._crypto_aead_aegis256_keygen=P.v)(A),B._crypto_aead_aegis256_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_encrypt=P.w)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_aegis256_encrypt_detached=P.x)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_aegis256_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_decrypt=P.y)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_decrypt_detached=P.z)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aes256gcm_is_available=()=>(B._crypto_aead_aes256gcm_is_available=P.A)(),B._crypto_aead_chacha20poly1305_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_chacha20poly1305_encrypt_detached=P.B)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_chacha20poly1305_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_encrypt=P.C)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_chacha20poly1305_ietf_encrypt_detached=P.D)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_chacha20poly1305_ietf_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_encrypt=P.E)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_decrypt_detached=P.F)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_decrypt=P.G)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_decrypt_detached=P.H)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_decrypt=P.I)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_keybytes=()=>(B._crypto_aead_chacha20poly1305_ietf_keybytes=P.J)(),B._crypto_aead_chacha20poly1305_ietf_npubbytes=()=>(B._crypto_aead_chacha20poly1305_ietf_npubbytes=P.K)(),B._crypto_aead_chacha20poly1305_ietf_nsecbytes=()=>(B._crypto_aead_chacha20poly1305_ietf_nsecbytes=P.L)(),B._crypto_aead_chacha20poly1305_ietf_abytes=()=>(B._crypto_aead_chacha20poly1305_ietf_abytes=P.M)(),B._crypto_aead_chacha20poly1305_ietf_messagebytes_max=()=>(B._crypto_aead_chacha20poly1305_ietf_messagebytes_max=P.N)(),B._crypto_aead_chacha20poly1305_ietf_keygen=A=>(B._crypto_aead_chacha20poly1305_ietf_keygen=P.O)(A),B._crypto_aead_chacha20poly1305_keybytes=()=>(B._crypto_aead_chacha20poly1305_keybytes=P.P)(),B._crypto_aead_chacha20poly1305_npubbytes=()=>(B._crypto_aead_chacha20poly1305_npubbytes=P.Q)(),B._crypto_aead_chacha20poly1305_nsecbytes=()=>(B._crypto_aead_chacha20poly1305_nsecbytes=P.R)(),B._crypto_aead_chacha20poly1305_abytes=()=>(B._crypto_aead_chacha20poly1305_abytes=P.S)(),B._crypto_aead_chacha20poly1305_messagebytes_max=()=>(B._crypto_aead_chacha20poly1305_messagebytes_max=P.T)(),B._crypto_aead_chacha20poly1305_keygen=A=>(B._crypto_aead_chacha20poly1305_keygen=P.U)(A),B._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=P.V)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_xchacha20poly1305_ietf_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_encrypt=P.W)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=P.X)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_decrypt=P.Y)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_keybytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_keybytes=P.Z)(),B._crypto_aead_xchacha20poly1305_ietf_npubbytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_npubbytes=P._)(),B._crypto_aead_xchacha20poly1305_ietf_nsecbytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_nsecbytes=P.$)(),B._crypto_aead_xchacha20poly1305_ietf_abytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_abytes=P.aa)(),B._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=()=>(B._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=P.ba)(),B._crypto_aead_xchacha20poly1305_ietf_keygen=A=>(B._crypto_aead_xchacha20poly1305_ietf_keygen=P.ca)(A),B._crypto_auth_bytes=()=>(B._crypto_auth_bytes=P.da)(),B._crypto_auth_keybytes=()=>(B._crypto_auth_keybytes=P.ea)(),B._crypto_auth_primitive=()=>(B._crypto_auth_primitive=P.fa)(),B._crypto_auth=(A,I,g,C,Q)=>(B._crypto_auth=P.ga)(A,I,g,C,Q),B._crypto_auth_verify=(A,I,g,C,Q)=>(B._crypto_auth_verify=P.ha)(A,I,g,C,Q),B._crypto_auth_keygen=A=>(B._crypto_auth_keygen=P.ia)(A),B._crypto_auth_hmacsha256_bytes=()=>(B._crypto_auth_hmacsha256_bytes=P.ja)(),B._crypto_auth_hmacsha256_keybytes=()=>(B._crypto_auth_hmacsha256_keybytes=P.ka)(),B._crypto_auth_hmacsha256_statebytes=()=>(B._crypto_auth_hmacsha256_statebytes=P.la)(),B._crypto_auth_hmacsha256_keygen=A=>(B._crypto_auth_hmacsha256_keygen=P.ma)(A),B._crypto_auth_hmacsha256_init=(A,I,g)=>(B._crypto_auth_hmacsha256_init=P.na)(A,I,g),B._crypto_auth_hmacsha256_update=(A,I,g,C)=>(B._crypto_auth_hmacsha256_update=P.oa)(A,I,g,C),B._crypto_auth_hmacsha256_final=(A,I)=>(B._crypto_auth_hmacsha256_final=P.pa)(A,I),B._crypto_auth_hmacsha256=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha256=P.qa)(A,I,g,C,Q),B._crypto_auth_hmacsha256_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha256_verify=P.ra)(A,I,g,C,Q),B._crypto_auth_hmacsha512_bytes=()=>(B._crypto_auth_hmacsha512_bytes=P.sa)(),B._crypto_auth_hmacsha512_keybytes=()=>(B._crypto_auth_hmacsha512_keybytes=P.ta)(),B._crypto_auth_hmacsha512_statebytes=()=>(B._crypto_auth_hmacsha512_statebytes=P.ua)(),B._crypto_auth_hmacsha512_keygen=A=>(B._crypto_auth_hmacsha512_keygen=P.va)(A),B._crypto_auth_hmacsha512_init=(A,I,g)=>(B._crypto_auth_hmacsha512_init=P.wa)(A,I,g),B._crypto_auth_hmacsha512_update=(A,I,g,C)=>(B._crypto_auth_hmacsha512_update=P.xa)(A,I,g,C),B._crypto_auth_hmacsha512_final=(A,I)=>(B._crypto_auth_hmacsha512_final=P.ya)(A,I),B._crypto_auth_hmacsha512=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512=P.za)(A,I,g,C,Q),B._crypto_auth_hmacsha512_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512_verify=P.Aa)(A,I,g,C,Q),B._crypto_auth_hmacsha512256_bytes=()=>(B._crypto_auth_hmacsha512256_bytes=P.Ba)(),B._crypto_auth_hmacsha512256_keybytes=()=>(B._crypto_auth_hmacsha512256_keybytes=P.Ca)(),B._crypto_auth_hmacsha512256_statebytes=()=>(B._crypto_auth_hmacsha512256_statebytes=P.Da)(),B._crypto_auth_hmacsha512256_keygen=A=>(B._crypto_auth_hmacsha512256_keygen=P.Ea)(A),B._crypto_auth_hmacsha512256_init=(A,I,g)=>(B._crypto_auth_hmacsha512256_init=P.Fa)(A,I,g),B._crypto_auth_hmacsha512256_update=(A,I,g,C)=>(B._crypto_auth_hmacsha512256_update=P.Ga)(A,I,g,C),B._crypto_auth_hmacsha512256_final=(A,I)=>(B._crypto_auth_hmacsha512256_final=P.Ha)(A,I),B._crypto_auth_hmacsha512256=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512256=P.Ia)(A,I,g,C,Q),B._crypto_auth_hmacsha512256_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512256_verify=P.Ja)(A,I,g,C,Q),B._crypto_box_seedbytes=()=>(B._crypto_box_seedbytes=P.Ka)(),B._crypto_box_publickeybytes=()=>(B._crypto_box_publickeybytes=P.La)(),B._crypto_box_secretkeybytes=()=>(B._crypto_box_secretkeybytes=P.Ma)(),B._crypto_box_beforenmbytes=()=>(B._crypto_box_beforenmbytes=P.Na)(),B._crypto_box_noncebytes=()=>(B._crypto_box_noncebytes=P.Oa)(),B._crypto_box_zerobytes=()=>(B._crypto_box_zerobytes=P.Pa)(),B._crypto_box_boxzerobytes=()=>(B._crypto_box_boxzerobytes=P.Qa)(),B._crypto_box_macbytes=()=>(B._crypto_box_macbytes=P.Ra)(),B._crypto_box_messagebytes_max=()=>(B._crypto_box_messagebytes_max=P.Sa)(),B._crypto_box_primitive=()=>(B._crypto_box_primitive=P.Ta)(),B._crypto_box_seed_keypair=(A,I,g)=>(B._crypto_box_seed_keypair=P.Ua)(A,I,g),B._crypto_box_keypair=(A,I)=>(B._crypto_box_keypair=P.Va)(A,I),B._crypto_box_beforenm=(A,I,g)=>(B._crypto_box_beforenm=P.Wa)(A,I,g),B._crypto_box_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_afternm=P.Xa)(A,I,g,C,Q,i),B._crypto_box_open_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_open_afternm=P.Ya)(A,I,g,C,Q,i),B._crypto_box=(A,I,g,C,Q,i,o)=>(B._crypto_box=P.Za)(A,I,g,C,Q,i,o),B._crypto_box_open=(A,I,g,C,Q,i,o)=>(B._crypto_box_open=P._a)(A,I,g,C,Q,i,o),B._crypto_box_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_detached_afternm=P.$a)(A,I,g,C,Q,i,o),B._crypto_box_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_detached=P.ab)(A,I,g,C,Q,i,o,E),B._crypto_box_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_easy_afternm=P.bb)(A,I,g,C,Q,i),B._crypto_box_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_easy=P.cb)(A,I,g,C,Q,i,o),B._crypto_box_open_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_open_detached_afternm=P.db)(A,I,g,C,Q,i,o),B._crypto_box_open_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_open_detached=P.eb)(A,I,g,C,Q,i,o,E),B._crypto_box_open_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_open_easy_afternm=P.fb)(A,I,g,C,Q,i),B._crypto_box_open_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_open_easy=P.gb)(A,I,g,C,Q,i,o),B._crypto_box_seal=(A,I,g,C,Q)=>(B._crypto_box_seal=P.hb)(A,I,g,C,Q),B._crypto_box_seal_open=(A,I,g,C,Q,i)=>(B._crypto_box_seal_open=P.ib)(A,I,g,C,Q,i),B._crypto_box_sealbytes=()=>(B._crypto_box_sealbytes=P.jb)(),B._crypto_box_curve25519xsalsa20poly1305_seed_keypair=(A,I,g)=>(B._crypto_box_curve25519xsalsa20poly1305_seed_keypair=P.kb)(A,I,g),B._crypto_box_curve25519xsalsa20poly1305_keypair=(A,I)=>(B._crypto_box_curve25519xsalsa20poly1305_keypair=P.lb)(A,I),B._crypto_box_curve25519xsalsa20poly1305_beforenm=(A,I,g)=>(B._crypto_box_curve25519xsalsa20poly1305_beforenm=P.mb)(A,I,g),B._crypto_box_curve25519xsalsa20poly1305_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xsalsa20poly1305_afternm=P.nb)(A,I,g,C,Q,i),B._crypto_box_curve25519xsalsa20poly1305_open_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xsalsa20poly1305_open_afternm=P.ob)(A,I,g,C,Q,i),B._crypto_box_curve25519xsalsa20poly1305=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xsalsa20poly1305=P.pb)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xsalsa20poly1305_open=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xsalsa20poly1305_open=P.qb)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xsalsa20poly1305_seedbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_seedbytes=P.rb)(),B._crypto_box_curve25519xsalsa20poly1305_publickeybytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_publickeybytes=P.sb)(),B._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=P.tb)(),B._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=P.ub)(),B._crypto_box_curve25519xsalsa20poly1305_noncebytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_noncebytes=P.vb)(),B._crypto_box_curve25519xsalsa20poly1305_zerobytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_zerobytes=P.wb)(),B._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=P.xb)(),B._crypto_box_curve25519xsalsa20poly1305_macbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_macbytes=P.yb)(),B._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=()=>(B._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=P.zb)(),B._crypto_core_hchacha20=(A,I,g,C)=>(B._crypto_core_hchacha20=P.Ab)(A,I,g,C),B._crypto_core_hchacha20_outputbytes=()=>(B._crypto_core_hchacha20_outputbytes=P.Bb)(),B._crypto_core_hchacha20_inputbytes=()=>(B._crypto_core_hchacha20_inputbytes=P.Cb)(),B._crypto_core_hchacha20_keybytes=()=>(B._crypto_core_hchacha20_keybytes=P.Db)(),B._crypto_core_hchacha20_constbytes=()=>(B._crypto_core_hchacha20_constbytes=P.Eb)(),B._crypto_core_hsalsa20=(A,I,g,C)=>(B._crypto_core_hsalsa20=P.Fb)(A,I,g,C),B._crypto_core_hsalsa20_outputbytes=()=>(B._crypto_core_hsalsa20_outputbytes=P.Gb)(),B._crypto_core_hsalsa20_inputbytes=()=>(B._crypto_core_hsalsa20_inputbytes=P.Hb)(),B._crypto_core_hsalsa20_keybytes=()=>(B._crypto_core_hsalsa20_keybytes=P.Ib)(),B._crypto_core_hsalsa20_constbytes=()=>(B._crypto_core_hsalsa20_constbytes=P.Jb)(),B._crypto_core_salsa20=(A,I,g,C)=>(B._crypto_core_salsa20=P.Kb)(A,I,g,C),B._crypto_core_salsa20_outputbytes=()=>(B._crypto_core_salsa20_outputbytes=P.Lb)(),B._crypto_core_salsa20_inputbytes=()=>(B._crypto_core_salsa20_inputbytes=P.Mb)(),B._crypto_core_salsa20_keybytes=()=>(B._crypto_core_salsa20_keybytes=P.Nb)(),B._crypto_core_salsa20_constbytes=()=>(B._crypto_core_salsa20_constbytes=P.Ob)(),B._crypto_core_salsa2012=(A,I,g,C)=>(B._crypto_core_salsa2012=P.Pb)(A,I,g,C),B._crypto_core_salsa2012_outputbytes=()=>(B._crypto_core_salsa2012_outputbytes=P.Qb)(),B._crypto_core_salsa2012_inputbytes=()=>(B._crypto_core_salsa2012_inputbytes=P.Rb)(),B._crypto_core_salsa2012_keybytes=()=>(B._crypto_core_salsa2012_keybytes=P.Sb)(),B._crypto_core_salsa2012_constbytes=()=>(B._crypto_core_salsa2012_constbytes=P.Tb)(),B._crypto_core_salsa208=(A,I,g,C)=>(B._crypto_core_salsa208=P.Ub)(A,I,g,C),B._crypto_core_salsa208_outputbytes=()=>(B._crypto_core_salsa208_outputbytes=P.Vb)(),B._crypto_core_salsa208_inputbytes=()=>(B._crypto_core_salsa208_inputbytes=P.Wb)(),B._crypto_core_salsa208_keybytes=()=>(B._crypto_core_salsa208_keybytes=P.Xb)(),B._crypto_core_salsa208_constbytes=()=>(B._crypto_core_salsa208_constbytes=P.Yb)(),B._crypto_generichash_bytes_min=()=>(B._crypto_generichash_bytes_min=P.Zb)(),B._crypto_generichash_bytes_max=()=>(B._crypto_generichash_bytes_max=P._b)(),B._crypto_generichash_bytes=()=>(B._crypto_generichash_bytes=P.$b)(),B._crypto_generichash_keybytes_min=()=>(B._crypto_generichash_keybytes_min=P.ac)(),B._crypto_generichash_keybytes_max=()=>(B._crypto_generichash_keybytes_max=P.bc)(),B._crypto_generichash_keybytes=()=>(B._crypto_generichash_keybytes=P.cc)(),B._crypto_generichash_primitive=()=>(B._crypto_generichash_primitive=P.dc)(),B._crypto_generichash_statebytes=()=>(B._crypto_generichash_statebytes=P.ec)(),B._crypto_generichash=(A,I,g,C,Q,i,o)=>(B._crypto_generichash=P.fc)(A,I,g,C,Q,i,o),B._crypto_generichash_init=(A,I,g,C)=>(B._crypto_generichash_init=P.gc)(A,I,g,C),B._crypto_generichash_update=(A,I,g,C)=>(B._crypto_generichash_update=P.hc)(A,I,g,C),B._crypto_generichash_final=(A,I,g)=>(B._crypto_generichash_final=P.ic)(A,I,g),B._crypto_generichash_keygen=A=>(B._crypto_generichash_keygen=P.jc)(A),B._crypto_generichash_blake2b_bytes_min=()=>(B._crypto_generichash_blake2b_bytes_min=P.kc)(),B._crypto_generichash_blake2b_bytes_max=()=>(B._crypto_generichash_blake2b_bytes_max=P.lc)(),B._crypto_generichash_blake2b_bytes=()=>(B._crypto_generichash_blake2b_bytes=P.mc)(),B._crypto_generichash_blake2b_keybytes_min=()=>(B._crypto_generichash_blake2b_keybytes_min=P.nc)(),B._crypto_generichash_blake2b_keybytes_max=()=>(B._crypto_generichash_blake2b_keybytes_max=P.oc)(),B._crypto_generichash_blake2b_keybytes=()=>(B._crypto_generichash_blake2b_keybytes=P.pc)(),B._crypto_generichash_blake2b_saltbytes=()=>(B._crypto_generichash_blake2b_saltbytes=P.qc)(),B._crypto_generichash_blake2b_personalbytes=()=>(B._crypto_generichash_blake2b_personalbytes=P.rc)(),B._crypto_generichash_blake2b_statebytes=()=>(B._crypto_generichash_blake2b_statebytes=P.sc)(),B._crypto_generichash_blake2b_keygen=A=>(B._crypto_generichash_blake2b_keygen=P.tc)(A),B._crypto_generichash_blake2b=(A,I,g,C,Q,i,o)=>(B._crypto_generichash_blake2b=P.uc)(A,I,g,C,Q,i,o),B._crypto_generichash_blake2b_salt_personal=(A,I,g,C,Q,i,o,E,a)=>(B._crypto_generichash_blake2b_salt_personal=P.vc)(A,I,g,C,Q,i,o,E,a),B._crypto_generichash_blake2b_init=(A,I,g,C)=>(B._crypto_generichash_blake2b_init=P.wc)(A,I,g,C),B._crypto_generichash_blake2b_init_salt_personal=(A,I,g,C,Q,i)=>(B._crypto_generichash_blake2b_init_salt_personal=P.xc)(A,I,g,C,Q,i),B._crypto_generichash_blake2b_update=(A,I,g,C)=>(B._crypto_generichash_blake2b_update=P.yc)(A,I,g,C),B._crypto_generichash_blake2b_final=(A,I,g)=>(B._crypto_generichash_blake2b_final=P.zc)(A,I,g),B._crypto_hash_bytes=()=>(B._crypto_hash_bytes=P.Ac)(),B._crypto_hash=(A,I,g,C)=>(B._crypto_hash=P.Bc)(A,I,g,C),B._crypto_hash_primitive=()=>(B._crypto_hash_primitive=P.Cc)(),B._crypto_hash_sha256_bytes=()=>(B._crypto_hash_sha256_bytes=P.Dc)(),B._crypto_hash_sha256_statebytes=()=>(B._crypto_hash_sha256_statebytes=P.Ec)(),B._crypto_hash_sha256_init=A=>(B._crypto_hash_sha256_init=P.Fc)(A),B._crypto_hash_sha256_update=(A,I,g,C)=>(B._crypto_hash_sha256_update=P.Gc)(A,I,g,C),B._crypto_hash_sha256_final=(A,I)=>(B._crypto_hash_sha256_final=P.Hc)(A,I),B._crypto_hash_sha256=(A,I,g,C)=>(B._crypto_hash_sha256=P.Ic)(A,I,g,C),B._crypto_hash_sha512_bytes=()=>(B._crypto_hash_sha512_bytes=P.Jc)(),B._crypto_hash_sha512_statebytes=()=>(B._crypto_hash_sha512_statebytes=P.Kc)(),B._crypto_hash_sha512_init=A=>(B._crypto_hash_sha512_init=P.Lc)(A),B._crypto_hash_sha512_update=(A,I,g,C)=>(B._crypto_hash_sha512_update=P.Mc)(A,I,g,C),B._crypto_hash_sha512_final=(A,I)=>(B._crypto_hash_sha512_final=P.Nc)(A,I),B._crypto_hash_sha512=(A,I,g,C)=>(B._crypto_hash_sha512=P.Oc)(A,I,g,C),B._crypto_kdf_blake2b_bytes_min=()=>(B._crypto_kdf_blake2b_bytes_min=P.Pc)(),B._crypto_kdf_blake2b_bytes_max=()=>(B._crypto_kdf_blake2b_bytes_max=P.Qc)(),B._crypto_kdf_blake2b_contextbytes=()=>(B._crypto_kdf_blake2b_contextbytes=P.Rc)(),B._crypto_kdf_blake2b_keybytes=()=>(B._crypto_kdf_blake2b_keybytes=P.Sc)(),B._crypto_kdf_blake2b_derive_from_key=(A,I,g,C,Q,i)=>(B._crypto_kdf_blake2b_derive_from_key=P.Tc)(A,I,g,C,Q,i),B._crypto_kdf_primitive=()=>(B._crypto_kdf_primitive=P.Uc)(),B._crypto_kdf_bytes_min=()=>(B._crypto_kdf_bytes_min=P.Vc)(),B._crypto_kdf_bytes_max=()=>(B._crypto_kdf_bytes_max=P.Wc)(),B._crypto_kdf_contextbytes=()=>(B._crypto_kdf_contextbytes=P.Xc)(),B._crypto_kdf_keybytes=()=>(B._crypto_kdf_keybytes=P.Yc)(),B._crypto_kdf_derive_from_key=(A,I,g,C,Q,i)=>(B._crypto_kdf_derive_from_key=P.Zc)(A,I,g,C,Q,i),B._crypto_kdf_keygen=A=>(B._crypto_kdf_keygen=P._c)(A),B._crypto_kdf_hkdf_sha256_extract_init=(A,I,g)=>(B._crypto_kdf_hkdf_sha256_extract_init=P.$c)(A,I,g),B._crypto_kdf_hkdf_sha256_extract_update=(A,I,g)=>(B._crypto_kdf_hkdf_sha256_extract_update=P.ad)(A,I,g),B._crypto_kdf_hkdf_sha256_extract_final=(A,I)=>(B._crypto_kdf_hkdf_sha256_extract_final=P.bd)(A,I),B._crypto_kdf_hkdf_sha256_extract=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha256_extract=P.cd)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha256_keygen=A=>(B._crypto_kdf_hkdf_sha256_keygen=P.dd)(A),B._crypto_kdf_hkdf_sha256_expand=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha256_expand=P.ed)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha256_keybytes=()=>(B._crypto_kdf_hkdf_sha256_keybytes=P.fd)(),B._crypto_kdf_hkdf_sha256_bytes_min=()=>(B._crypto_kdf_hkdf_sha256_bytes_min=P.gd)(),B._crypto_kdf_hkdf_sha256_bytes_max=()=>(B._crypto_kdf_hkdf_sha256_bytes_max=P.hd)(),B._crypto_kdf_hkdf_sha256_statebytes=()=>(B._crypto_kdf_hkdf_sha256_statebytes=P.id)(),B._crypto_kdf_hkdf_sha512_extract_init=(A,I,g)=>(B._crypto_kdf_hkdf_sha512_extract_init=P.jd)(A,I,g),B._crypto_kdf_hkdf_sha512_extract_update=(A,I,g)=>(B._crypto_kdf_hkdf_sha512_extract_update=P.kd)(A,I,g),B._crypto_kdf_hkdf_sha512_extract_final=(A,I)=>(B._crypto_kdf_hkdf_sha512_extract_final=P.ld)(A,I),B._crypto_kdf_hkdf_sha512_extract=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha512_extract=P.md)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha512_keygen=A=>(B._crypto_kdf_hkdf_sha512_keygen=P.nd)(A),B._crypto_kdf_hkdf_sha512_expand=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha512_expand=P.od)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha512_keybytes=()=>(B._crypto_kdf_hkdf_sha512_keybytes=P.pd)(),B._crypto_kdf_hkdf_sha512_bytes_min=()=>(B._crypto_kdf_hkdf_sha512_bytes_min=P.qd)(),B._crypto_kdf_hkdf_sha512_bytes_max=()=>(B._crypto_kdf_hkdf_sha512_bytes_max=P.rd)(),B._crypto_kdf_hkdf_sha512_statebytes=()=>(B._crypto_kdf_hkdf_sha512_statebytes=P.sd)(),B._crypto_kx_seed_keypair=(A,I,g)=>(B._crypto_kx_seed_keypair=P.td)(A,I,g),B._crypto_kx_keypair=(A,I)=>(B._crypto_kx_keypair=P.ud)(A,I),B._crypto_kx_client_session_keys=(A,I,g,C,Q)=>(B._crypto_kx_client_session_keys=P.vd)(A,I,g,C,Q),B._crypto_kx_server_session_keys=(A,I,g,C,Q)=>(B._crypto_kx_server_session_keys=P.wd)(A,I,g,C,Q),B._crypto_kx_publickeybytes=()=>(B._crypto_kx_publickeybytes=P.xd)(),B._crypto_kx_secretkeybytes=()=>(B._crypto_kx_secretkeybytes=P.yd)(),B._crypto_kx_seedbytes=()=>(B._crypto_kx_seedbytes=P.zd)(),B._crypto_kx_sessionkeybytes=()=>(B._crypto_kx_sessionkeybytes=P.Ad)(),B._crypto_kx_primitive=()=>(B._crypto_kx_primitive=P.Bd)(),B._crypto_onetimeauth_statebytes=()=>(B._crypto_onetimeauth_statebytes=P.Cd)(),B._crypto_onetimeauth_bytes=()=>(B._crypto_onetimeauth_bytes=P.Dd)(),B._crypto_onetimeauth_keybytes=()=>(B._crypto_onetimeauth_keybytes=P.Ed)(),B._crypto_onetimeauth=(A,I,g,C,Q)=>(B._crypto_onetimeauth=P.Fd)(A,I,g,C,Q),B._crypto_onetimeauth_verify=(A,I,g,C,Q)=>(B._crypto_onetimeauth_verify=P.Gd)(A,I,g,C,Q),B._crypto_onetimeauth_init=(A,I)=>(B._crypto_onetimeauth_init=P.Hd)(A,I),B._crypto_onetimeauth_update=(A,I,g,C)=>(B._crypto_onetimeauth_update=P.Id)(A,I,g,C),B._crypto_onetimeauth_final=(A,I)=>(B._crypto_onetimeauth_final=P.Jd)(A,I),B._crypto_onetimeauth_primitive=()=>(B._crypto_onetimeauth_primitive=P.Kd)(),B._crypto_onetimeauth_keygen=A=>(B._crypto_onetimeauth_keygen=P.Ld)(A),B._crypto_onetimeauth_poly1305=(A,I,g,C,Q)=>(B._crypto_onetimeauth_poly1305=P.Md)(A,I,g,C,Q),B._crypto_onetimeauth_poly1305_verify=(A,I,g,C,Q)=>(B._crypto_onetimeauth_poly1305_verify=P.Nd)(A,I,g,C,Q),B._crypto_onetimeauth_poly1305_init=(A,I)=>(B._crypto_onetimeauth_poly1305_init=P.Od)(A,I),B._crypto_onetimeauth_poly1305_update=(A,I,g,C)=>(B._crypto_onetimeauth_poly1305_update=P.Pd)(A,I,g,C),B._crypto_onetimeauth_poly1305_final=(A,I)=>(B._crypto_onetimeauth_poly1305_final=P.Qd)(A,I),B._crypto_onetimeauth_poly1305_bytes=()=>(B._crypto_onetimeauth_poly1305_bytes=P.Rd)(),B._crypto_onetimeauth_poly1305_keybytes=()=>(B._crypto_onetimeauth_poly1305_keybytes=P.Sd)(),B._crypto_onetimeauth_poly1305_statebytes=()=>(B._crypto_onetimeauth_poly1305_statebytes=P.Td)(),B._crypto_onetimeauth_poly1305_keygen=A=>(B._crypto_onetimeauth_poly1305_keygen=P.Ud)(A),B._crypto_pwhash_argon2i_alg_argon2i13=()=>(B._crypto_pwhash_argon2i_alg_argon2i13=P.Vd)(),B._crypto_pwhash_argon2i_bytes_min=()=>(B._crypto_pwhash_argon2i_bytes_min=P.Wd)(),B._crypto_pwhash_argon2i_bytes_max=()=>(B._crypto_pwhash_argon2i_bytes_max=P.Xd)(),B._crypto_pwhash_argon2i_passwd_min=()=>(B._crypto_pwhash_argon2i_passwd_min=P.Yd)(),B._crypto_pwhash_argon2i_passwd_max=()=>(B._crypto_pwhash_argon2i_passwd_max=P.Zd)(),B._crypto_pwhash_argon2i_saltbytes=()=>(B._crypto_pwhash_argon2i_saltbytes=P._d)(),B._crypto_pwhash_argon2i_strbytes=()=>(B._crypto_pwhash_argon2i_strbytes=P.$d)(),B._crypto_pwhash_argon2i_strprefix=()=>(B._crypto_pwhash_argon2i_strprefix=P.ae)(),B._crypto_pwhash_argon2i_opslimit_min=()=>(B._crypto_pwhash_argon2i_opslimit_min=P.be)(),B._crypto_pwhash_argon2i_opslimit_max=()=>(B._crypto_pwhash_argon2i_opslimit_max=P.ce)(),B._crypto_pwhash_argon2i_memlimit_min=()=>(B._crypto_pwhash_argon2i_memlimit_min=P.de)(),B._crypto_pwhash_argon2i_memlimit_max=()=>(B._crypto_pwhash_argon2i_memlimit_max=P.ee)(),B._crypto_pwhash_argon2i_opslimit_interactive=()=>(B._crypto_pwhash_argon2i_opslimit_interactive=P.fe)(),B._crypto_pwhash_argon2i_memlimit_interactive=()=>(B._crypto_pwhash_argon2i_memlimit_interactive=P.ge)(),B._crypto_pwhash_argon2i_opslimit_moderate=()=>(B._crypto_pwhash_argon2i_opslimit_moderate=P.he)(),B._crypto_pwhash_argon2i_memlimit_moderate=()=>(B._crypto_pwhash_argon2i_memlimit_moderate=P.ie)(),B._crypto_pwhash_argon2i_opslimit_sensitive=()=>(B._crypto_pwhash_argon2i_opslimit_sensitive=P.je)(),B._crypto_pwhash_argon2i_memlimit_sensitive=()=>(B._crypto_pwhash_argon2i_memlimit_sensitive=P.ke)(),B._crypto_pwhash_argon2i=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash_argon2i=P.le)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_argon2i_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_argon2i_str=P.me)(A,I,g,C,Q,i,o),B._crypto_pwhash_argon2i_str_verify=(A,I,g,C)=>(B._crypto_pwhash_argon2i_str_verify=P.ne)(A,I,g,C),B._crypto_pwhash_argon2i_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_argon2i_str_needs_rehash=P.oe)(A,I,g,C),B._crypto_pwhash_argon2id_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_argon2id_str_needs_rehash=P.pe)(A,I,g,C),B._crypto_pwhash_argon2id_alg_argon2id13=()=>(B._crypto_pwhash_argon2id_alg_argon2id13=P.qe)(),B._crypto_pwhash_argon2id_bytes_min=()=>(B._crypto_pwhash_argon2id_bytes_min=P.re)(),B._crypto_pwhash_argon2id_bytes_max=()=>(B._crypto_pwhash_argon2id_bytes_max=P.se)(),B._crypto_pwhash_argon2id_passwd_min=()=>(B._crypto_pwhash_argon2id_passwd_min=P.te)(),B._crypto_pwhash_argon2id_passwd_max=()=>(B._crypto_pwhash_argon2id_passwd_max=P.ue)(),B._crypto_pwhash_argon2id_saltbytes=()=>(B._crypto_pwhash_argon2id_saltbytes=P.ve)(),B._crypto_pwhash_argon2id_strbytes=()=>(B._crypto_pwhash_argon2id_strbytes=P.we)(),B._crypto_pwhash_argon2id_strprefix=()=>(B._crypto_pwhash_argon2id_strprefix=P.xe)(),B._crypto_pwhash_argon2id_opslimit_min=()=>(B._crypto_pwhash_argon2id_opslimit_min=P.ye)(),B._crypto_pwhash_argon2id_opslimit_max=()=>(B._crypto_pwhash_argon2id_opslimit_max=P.ze)(),B._crypto_pwhash_argon2id_memlimit_min=()=>(B._crypto_pwhash_argon2id_memlimit_min=P.Ae)(),B._crypto_pwhash_argon2id_memlimit_max=()=>(B._crypto_pwhash_argon2id_memlimit_max=P.Be)(),B._crypto_pwhash_argon2id_opslimit_interactive=()=>(B._crypto_pwhash_argon2id_opslimit_interactive=P.Ce)(),B._crypto_pwhash_argon2id_memlimit_interactive=()=>(B._crypto_pwhash_argon2id_memlimit_interactive=P.De)(),B._crypto_pwhash_argon2id_opslimit_moderate=()=>(B._crypto_pwhash_argon2id_opslimit_moderate=P.Ee)(),B._crypto_pwhash_argon2id_memlimit_moderate=()=>(B._crypto_pwhash_argon2id_memlimit_moderate=P.Fe)(),B._crypto_pwhash_argon2id_opslimit_sensitive=()=>(B._crypto_pwhash_argon2id_opslimit_sensitive=P.Ge)(),B._crypto_pwhash_argon2id_memlimit_sensitive=()=>(B._crypto_pwhash_argon2id_memlimit_sensitive=P.He)(),B._crypto_pwhash_argon2id=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash_argon2id=P.Ie)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_argon2id_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_argon2id_str=P.Je)(A,I,g,C,Q,i,o),B._crypto_pwhash_argon2id_str_verify=(A,I,g,C)=>(B._crypto_pwhash_argon2id_str_verify=P.Ke)(A,I,g,C),B._crypto_pwhash_alg_argon2i13=()=>(B._crypto_pwhash_alg_argon2i13=P.Le)(),B._crypto_pwhash_alg_argon2id13=()=>(B._crypto_pwhash_alg_argon2id13=P.Me)(),B._crypto_pwhash_alg_default=()=>(B._crypto_pwhash_alg_default=P.Ne)(),B._crypto_pwhash_bytes_min=()=>(B._crypto_pwhash_bytes_min=P.Oe)(),B._crypto_pwhash_bytes_max=()=>(B._crypto_pwhash_bytes_max=P.Pe)(),B._crypto_pwhash_passwd_min=()=>(B._crypto_pwhash_passwd_min=P.Qe)(),B._crypto_pwhash_passwd_max=()=>(B._crypto_pwhash_passwd_max=P.Re)(),B._crypto_pwhash_saltbytes=()=>(B._crypto_pwhash_saltbytes=P.Se)(),B._crypto_pwhash_strbytes=()=>(B._crypto_pwhash_strbytes=P.Te)(),B._crypto_pwhash_strprefix=()=>(B._crypto_pwhash_strprefix=P.Ue)(),B._crypto_pwhash_opslimit_min=()=>(B._crypto_pwhash_opslimit_min=P.Ve)(),B._crypto_pwhash_opslimit_max=()=>(B._crypto_pwhash_opslimit_max=P.We)(),B._crypto_pwhash_memlimit_min=()=>(B._crypto_pwhash_memlimit_min=P.Xe)(),B._crypto_pwhash_memlimit_max=()=>(B._crypto_pwhash_memlimit_max=P.Ye)(),B._crypto_pwhash_opslimit_interactive=()=>(B._crypto_pwhash_opslimit_interactive=P.Ze)(),B._crypto_pwhash_memlimit_interactive=()=>(B._crypto_pwhash_memlimit_interactive=P._e)(),B._crypto_pwhash_opslimit_moderate=()=>(B._crypto_pwhash_opslimit_moderate=P.$e)(),B._crypto_pwhash_memlimit_moderate=()=>(B._crypto_pwhash_memlimit_moderate=P.af)(),B._crypto_pwhash_opslimit_sensitive=()=>(B._crypto_pwhash_opslimit_sensitive=P.bf)(),B._crypto_pwhash_memlimit_sensitive=()=>(B._crypto_pwhash_memlimit_sensitive=P.cf)(),B._crypto_pwhash=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash=P.df)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_str=P.ef)(A,I,g,C,Q,i,o),B._crypto_pwhash_str_alg=(A,I,g,C,Q,i,o,E)=>(B._crypto_pwhash_str_alg=P.ff)(A,I,g,C,Q,i,o,E),B._crypto_pwhash_str_verify=(A,I,g,C)=>(B._crypto_pwhash_str_verify=P.gf)(A,I,g,C),B._crypto_pwhash_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_str_needs_rehash=P.hf)(A,I,g,C),B._crypto_pwhash_primitive=()=>(B._crypto_pwhash_primitive=P.jf)(),B._crypto_scalarmult_primitive=()=>(B._crypto_scalarmult_primitive=P.kf)(),B._crypto_scalarmult_base=(A,I)=>(B._crypto_scalarmult_base=P.lf)(A,I),B._crypto_scalarmult=(A,I,g)=>(B._crypto_scalarmult=P.mf)(A,I,g),B._crypto_scalarmult_bytes=()=>(B._crypto_scalarmult_bytes=P.nf)(),B._crypto_scalarmult_scalarbytes=()=>(B._crypto_scalarmult_scalarbytes=P.of)(),B._crypto_scalarmult_curve25519=(A,I,g)=>(B._crypto_scalarmult_curve25519=P.pf)(A,I,g),B._crypto_scalarmult_curve25519_base=(A,I)=>(B._crypto_scalarmult_curve25519_base=P.qf)(A,I),B._crypto_scalarmult_curve25519_bytes=()=>(B._crypto_scalarmult_curve25519_bytes=P.rf)(),B._crypto_scalarmult_curve25519_scalarbytes=()=>(B._crypto_scalarmult_curve25519_scalarbytes=P.sf)(),B._crypto_secretbox_keybytes=()=>(B._crypto_secretbox_keybytes=P.tf)(),B._crypto_secretbox_noncebytes=()=>(B._crypto_secretbox_noncebytes=P.uf)(),B._crypto_secretbox_zerobytes=()=>(B._crypto_secretbox_zerobytes=P.vf)(),B._crypto_secretbox_boxzerobytes=()=>(B._crypto_secretbox_boxzerobytes=P.wf)(),B._crypto_secretbox_macbytes=()=>(B._crypto_secretbox_macbytes=P.xf)(),B._crypto_secretbox_messagebytes_max=()=>(B._crypto_secretbox_messagebytes_max=P.yf)(),B._crypto_secretbox_primitive=()=>(B._crypto_secretbox_primitive=P.zf)(),B._crypto_secretbox=(A,I,g,C,Q,i)=>(B._crypto_secretbox=P.Af)(A,I,g,C,Q,i),B._crypto_secretbox_open=(A,I,g,C,Q,i)=>(B._crypto_secretbox_open=P.Bf)(A,I,g,C,Q,i),B._crypto_secretbox_keygen=A=>(B._crypto_secretbox_keygen=P.Cf)(A),B._crypto_secretbox_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_detached=P.Df)(A,I,g,C,Q,i,o),B._crypto_secretbox_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_easy=P.Ef)(A,I,g,C,Q,i),B._crypto_secretbox_open_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_open_detached=P.Ff)(A,I,g,C,Q,i,o),B._crypto_secretbox_open_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_open_easy=P.Gf)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xsalsa20poly1305=P.Hf)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305_open=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xsalsa20poly1305_open=P.If)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305_keybytes=()=>(B._crypto_secretbox_xsalsa20poly1305_keybytes=P.Jf)(),B._crypto_secretbox_xsalsa20poly1305_noncebytes=()=>(B._crypto_secretbox_xsalsa20poly1305_noncebytes=P.Kf)(),B._crypto_secretbox_xsalsa20poly1305_zerobytes=()=>(B._crypto_secretbox_xsalsa20poly1305_zerobytes=P.Lf)(),B._crypto_secretbox_xsalsa20poly1305_boxzerobytes=()=>(B._crypto_secretbox_xsalsa20poly1305_boxzerobytes=P.Mf)(),B._crypto_secretbox_xsalsa20poly1305_macbytes=()=>(B._crypto_secretbox_xsalsa20poly1305_macbytes=P.Nf)(),B._crypto_secretbox_xsalsa20poly1305_messagebytes_max=()=>(B._crypto_secretbox_xsalsa20poly1305_messagebytes_max=P.Of)(),B._crypto_secretbox_xsalsa20poly1305_keygen=A=>(B._crypto_secretbox_xsalsa20poly1305_keygen=P.Pf)(A),B._crypto_secretstream_xchacha20poly1305_keygen=A=>(B._crypto_secretstream_xchacha20poly1305_keygen=P.Qf)(A),B._crypto_secretstream_xchacha20poly1305_init_push=(A,I,g)=>(B._crypto_secretstream_xchacha20poly1305_init_push=P.Rf)(A,I,g),B._crypto_secretstream_xchacha20poly1305_init_pull=(A,I,g)=>(B._crypto_secretstream_xchacha20poly1305_init_pull=P.Sf)(A,I,g),B._crypto_secretstream_xchacha20poly1305_rekey=A=>(B._crypto_secretstream_xchacha20poly1305_rekey=P.Tf)(A),B._crypto_secretstream_xchacha20poly1305_push=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_secretstream_xchacha20poly1305_push=P.Uf)(A,I,g,C,Q,i,o,E,a,_),B._crypto_secretstream_xchacha20poly1305_pull=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_secretstream_xchacha20poly1305_pull=P.Vf)(A,I,g,C,Q,i,o,E,a,_),B._crypto_secretstream_xchacha20poly1305_statebytes=()=>(B._crypto_secretstream_xchacha20poly1305_statebytes=P.Wf)(),B._crypto_secretstream_xchacha20poly1305_abytes=()=>(B._crypto_secretstream_xchacha20poly1305_abytes=P.Xf)(),B._crypto_secretstream_xchacha20poly1305_headerbytes=()=>(B._crypto_secretstream_xchacha20poly1305_headerbytes=P.Yf)(),B._crypto_secretstream_xchacha20poly1305_keybytes=()=>(B._crypto_secretstream_xchacha20poly1305_keybytes=P.Zf)(),B._crypto_secretstream_xchacha20poly1305_messagebytes_max=()=>(B._crypto_secretstream_xchacha20poly1305_messagebytes_max=P._f)(),B._crypto_secretstream_xchacha20poly1305_tag_message=()=>(B._crypto_secretstream_xchacha20poly1305_tag_message=P.$f)(),B._crypto_secretstream_xchacha20poly1305_tag_push=()=>(B._crypto_secretstream_xchacha20poly1305_tag_push=P.ag)(),B._crypto_secretstream_xchacha20poly1305_tag_rekey=()=>(B._crypto_secretstream_xchacha20poly1305_tag_rekey=P.bg)(),B._crypto_secretstream_xchacha20poly1305_tag_final=()=>(B._crypto_secretstream_xchacha20poly1305_tag_final=P.cg)(),B._crypto_shorthash_bytes=()=>(B._crypto_shorthash_bytes=P.dg)(),B._crypto_shorthash_keybytes=()=>(B._crypto_shorthash_keybytes=P.eg)(),B._crypto_shorthash_primitive=()=>(B._crypto_shorthash_primitive=P.fg)(),B._crypto_shorthash=(A,I,g,C,Q)=>(B._crypto_shorthash=P.gg)(A,I,g,C,Q),B._crypto_shorthash_keygen=A=>(B._crypto_shorthash_keygen=P.hg)(A),B._crypto_shorthash_siphash24_bytes=()=>(B._crypto_shorthash_siphash24_bytes=P.ig)(),B._crypto_shorthash_siphash24_keybytes=()=>(B._crypto_shorthash_siphash24_keybytes=P.jg)(),B._crypto_shorthash_siphash24=(A,I,g,C,Q)=>(B._crypto_shorthash_siphash24=P.kg)(A,I,g,C,Q),B._crypto_sign_statebytes=()=>(B._crypto_sign_statebytes=P.lg)(),B._crypto_sign_bytes=()=>(B._crypto_sign_bytes=P.mg)(),B._crypto_sign_seedbytes=()=>(B._crypto_sign_seedbytes=P.ng)(),B._crypto_sign_publickeybytes=()=>(B._crypto_sign_publickeybytes=P.og)(),B._crypto_sign_secretkeybytes=()=>(B._crypto_sign_secretkeybytes=P.pg)(),B._crypto_sign_messagebytes_max=()=>(B._crypto_sign_messagebytes_max=P.qg)(),B._crypto_sign_primitive=()=>(B._crypto_sign_primitive=P.rg)(),B._crypto_sign_seed_keypair=(A,I,g)=>(B._crypto_sign_seed_keypair=P.sg)(A,I,g),B._crypto_sign_keypair=(A,I)=>(B._crypto_sign_keypair=P.tg)(A,I),B._crypto_sign=(A,I,g,C,Q,i)=>(B._crypto_sign=P.ug)(A,I,g,C,Q,i),B._crypto_sign_open=(A,I,g,C,Q,i)=>(B._crypto_sign_open=P.vg)(A,I,g,C,Q,i),B._crypto_sign_detached=(A,I,g,C,Q,i)=>(B._crypto_sign_detached=P.wg)(A,I,g,C,Q,i),B._crypto_sign_verify_detached=(A,I,g,C,Q)=>(B._crypto_sign_verify_detached=P.xg)(A,I,g,C,Q),B._crypto_sign_init=A=>(B._crypto_sign_init=P.yg)(A),B._crypto_sign_update=(A,I,g,C)=>(B._crypto_sign_update=P.zg)(A,I,g,C),B._crypto_sign_final_create=(A,I,g,C)=>(B._crypto_sign_final_create=P.Ag)(A,I,g,C),B._crypto_sign_final_verify=(A,I,g)=>(B._crypto_sign_final_verify=P.Bg)(A,I,g),B._crypto_sign_ed25519ph_statebytes=()=>(B._crypto_sign_ed25519ph_statebytes=P.Cg)(),B._crypto_sign_ed25519_bytes=()=>(B._crypto_sign_ed25519_bytes=P.Dg)(),B._crypto_sign_ed25519_seedbytes=()=>(B._crypto_sign_ed25519_seedbytes=P.Eg)(),B._crypto_sign_ed25519_publickeybytes=()=>(B._crypto_sign_ed25519_publickeybytes=P.Fg)(),B._crypto_sign_ed25519_secretkeybytes=()=>(B._crypto_sign_ed25519_secretkeybytes=P.Gg)(),B._crypto_sign_ed25519_messagebytes_max=()=>(B._crypto_sign_ed25519_messagebytes_max=P.Hg)(),B._crypto_sign_ed25519_sk_to_seed=(A,I)=>(B._crypto_sign_ed25519_sk_to_seed=P.Ig)(A,I),B._crypto_sign_ed25519_sk_to_pk=(A,I)=>(B._crypto_sign_ed25519_sk_to_pk=P.Jg)(A,I),B._crypto_sign_ed25519ph_init=A=>(B._crypto_sign_ed25519ph_init=P.Kg)(A),B._crypto_sign_ed25519ph_update=(A,I,g,C)=>(B._crypto_sign_ed25519ph_update=P.Lg)(A,I,g,C),B._crypto_sign_ed25519ph_final_create=(A,I,g,C)=>(B._crypto_sign_ed25519ph_final_create=P.Mg)(A,I,g,C),B._crypto_sign_ed25519ph_final_verify=(A,I,g)=>(B._crypto_sign_ed25519ph_final_verify=P.Ng)(A,I,g),B._crypto_sign_ed25519_seed_keypair=(A,I,g)=>(B._crypto_sign_ed25519_seed_keypair=P.Og)(A,I,g),B._crypto_sign_ed25519_keypair=(A,I)=>(B._crypto_sign_ed25519_keypair=P.Pg)(A,I),B._crypto_sign_ed25519_pk_to_curve25519=(A,I)=>(B._crypto_sign_ed25519_pk_to_curve25519=P.Qg)(A,I),B._crypto_sign_ed25519_sk_to_curve25519=(A,I)=>(B._crypto_sign_ed25519_sk_to_curve25519=P.Rg)(A,I),B._crypto_sign_ed25519_verify_detached=(A,I,g,C,Q)=>(B._crypto_sign_ed25519_verify_detached=P.Sg)(A,I,g,C,Q),B._crypto_sign_ed25519_open=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519_open=P.Tg)(A,I,g,C,Q,i),B._crypto_sign_ed25519_detached=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519_detached=P.Ug)(A,I,g,C,Q,i),B._crypto_sign_ed25519=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519=P.Vg)(A,I,g,C,Q,i),B._crypto_stream_chacha20_keybytes=()=>(B._crypto_stream_chacha20_keybytes=P.Wg)(),B._crypto_stream_chacha20_noncebytes=()=>(B._crypto_stream_chacha20_noncebytes=P.Xg)(),B._crypto_stream_chacha20_messagebytes_max=()=>(B._crypto_stream_chacha20_messagebytes_max=P.Yg)(),B._crypto_stream_chacha20_ietf_keybytes=()=>(B._crypto_stream_chacha20_ietf_keybytes=P.Zg)(),B._crypto_stream_chacha20_ietf_noncebytes=()=>(B._crypto_stream_chacha20_ietf_noncebytes=P._g)(),B._crypto_stream_chacha20_ietf_messagebytes_max=()=>(B._crypto_stream_chacha20_ietf_messagebytes_max=P.$g)(),B._crypto_stream_chacha20=(A,I,g,C,Q)=>(B._crypto_stream_chacha20=P.ah)(A,I,g,C,Q),B._crypto_stream_chacha20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_chacha20_xor_ic=P.bh)(A,I,g,C,Q,i,o,E),B._crypto_stream_chacha20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_chacha20_xor=P.ch)(A,I,g,C,Q,i),B._crypto_stream_chacha20_ietf=(A,I,g,C,Q)=>(B._crypto_stream_chacha20_ietf=P.dh)(A,I,g,C,Q),B._crypto_stream_chacha20_ietf_xor_ic=(A,I,g,C,Q,i,o)=>(B._crypto_stream_chacha20_ietf_xor_ic=P.eh)(A,I,g,C,Q,i,o),B._crypto_stream_chacha20_ietf_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_chacha20_ietf_xor=P.fh)(A,I,g,C,Q,i),B._crypto_stream_chacha20_ietf_keygen=A=>(B._crypto_stream_chacha20_ietf_keygen=P.gh)(A),B._crypto_stream_chacha20_keygen=A=>(B._crypto_stream_chacha20_keygen=P.hh)(A),B._crypto_stream_keybytes=()=>(B._crypto_stream_keybytes=P.ih)(),B._crypto_stream_noncebytes=()=>(B._crypto_stream_noncebytes=P.jh)(),B._crypto_stream_messagebytes_max=()=>(B._crypto_stream_messagebytes_max=P.kh)(),B._crypto_stream_primitive=()=>(B._crypto_stream_primitive=P.lh)(),B._crypto_stream=(A,I,g,C,Q)=>(B._crypto_stream=P.mh)(A,I,g,C,Q),B._crypto_stream_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xor=P.nh)(A,I,g,C,Q,i),B._crypto_stream_keygen=A=>(B._crypto_stream_keygen=P.oh)(A),B._crypto_stream_salsa20_keybytes=()=>(B._crypto_stream_salsa20_keybytes=P.ph)(),B._crypto_stream_salsa20_noncebytes=()=>(B._crypto_stream_salsa20_noncebytes=P.qh)(),B._crypto_stream_salsa20_messagebytes_max=()=>(B._crypto_stream_salsa20_messagebytes_max=P.rh)(),B._crypto_stream_salsa20=(A,I,g,C,Q)=>(B._crypto_stream_salsa20=P.sh)(A,I,g,C,Q),B._crypto_stream_salsa20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_salsa20_xor_ic=P.th)(A,I,g,C,Q,i,o,E),B._crypto_stream_salsa20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa20_xor=P.uh)(A,I,g,C,Q,i),B._crypto_stream_salsa20_keygen=A=>(B._crypto_stream_salsa20_keygen=P.vh)(A),B._crypto_stream_xsalsa20=(A,I,g,C,Q)=>(B._crypto_stream_xsalsa20=P.wh)(A,I,g,C,Q),B._crypto_stream_xsalsa20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_xsalsa20_xor_ic=P.xh)(A,I,g,C,Q,i,o,E),B._crypto_stream_xsalsa20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xsalsa20_xor=P.yh)(A,I,g,C,Q,i),B._crypto_stream_xsalsa20_keybytes=()=>(B._crypto_stream_xsalsa20_keybytes=P.zh)(),B._crypto_stream_xsalsa20_noncebytes=()=>(B._crypto_stream_xsalsa20_noncebytes=P.Ah)(),B._crypto_stream_xsalsa20_messagebytes_max=()=>(B._crypto_stream_xsalsa20_messagebytes_max=P.Bh)(),B._crypto_stream_xsalsa20_keygen=A=>(B._crypto_stream_xsalsa20_keygen=P.Ch)(A),B._crypto_verify_16_bytes=()=>(B._crypto_verify_16_bytes=P.Dh)(),B._crypto_verify_32_bytes=()=>(B._crypto_verify_32_bytes=P.Eh)(),B._crypto_verify_64_bytes=()=>(B._crypto_verify_64_bytes=P.Fh)(),B._crypto_verify_16=(A,I)=>(B._crypto_verify_16=P.Gh)(A,I),B._crypto_verify_32=(A,I)=>(B._crypto_verify_32=P.Hh)(A,I),B._crypto_verify_64=(A,I)=>(B._crypto_verify_64=P.Ih)(A,I),B._randombytes_implementation_name=()=>(B._randombytes_implementation_name=P.Jh)(),B._randombytes_random=()=>(B._randombytes_random=P.Kh)(),B._randombytes_stir=()=>(B._randombytes_stir=P.Lh)(),B._randombytes_uniform=A=>(B._randombytes_uniform=P.Mh)(A),B._randombytes_buf=(A,I)=>(B._randombytes_buf=P.Nh)(A,I),B._randombytes_buf_deterministic=(A,I,g)=>(B._randombytes_buf_deterministic=P.Oh)(A,I,g),B._randombytes_seedbytes=()=>(B._randombytes_seedbytes=P.Ph)(),B._randombytes_close=()=>(B._randombytes_close=P.Qh)(),B._randombytes=(A,I,g)=>(B._randombytes=P.Rh)(A,I,g),B._sodium_bin2hex=(A,I,g,C)=>(B._sodium_bin2hex=P.Sh)(A,I,g,C),B._sodium_hex2bin=(A,I,g,C,Q,i,o)=>(B._sodium_hex2bin=P.Th)(A,I,g,C,Q,i,o),B._sodium_base64_encoded_len=(A,I)=>(B._sodium_base64_encoded_len=P.Uh)(A,I),B._sodium_bin2base64=(A,I,g,C,Q)=>(B._sodium_bin2base64=P.Vh)(A,I,g,C,Q),B._sodium_base642bin=(A,I,g,C,Q,i,o,E)=>(B._sodium_base642bin=P.Wh)(A,I,g,C,Q,i,o,E),B._sodium_init=()=>(B._sodium_init=P.Xh)(),B._sodium_pad=(A,I,g,C,Q)=>(B._sodium_pad=P.Yh)(A,I,g,C,Q),B._sodium_unpad=(A,I,g,C)=>(B._sodium_unpad=P.Zh)(A,I,g,C),B._sodium_version_string=()=>(B._sodium_version_string=P._h)(),B._sodium_library_version_major=()=>(B._sodium_library_version_major=P.$h)(),B._sodium_library_version_minor=()=>(B._sodium_library_version_minor=P.ai)(),B._sodium_library_minimal=()=>(B._sodium_library_minimal=P.bi)(),B._crypto_box_curve25519xchacha20poly1305_seed_keypair=(A,I,g)=>(B._crypto_box_curve25519xchacha20poly1305_seed_keypair=P.ci)(A,I,g),B._crypto_box_curve25519xchacha20poly1305_keypair=(A,I)=>(B._crypto_box_curve25519xchacha20poly1305_keypair=P.di)(A,I),B._crypto_box_curve25519xchacha20poly1305_beforenm=(A,I,g)=>(B._crypto_box_curve25519xchacha20poly1305_beforenm=P.ei)(A,I,g),B._crypto_box_curve25519xchacha20poly1305_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_detached_afternm=P.fi)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_curve25519xchacha20poly1305_detached=P.gi)(A,I,g,C,Q,i,o,E),B._crypto_box_curve25519xchacha20poly1305_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_easy_afternm=P.hi)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_easy=P.ii)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=P.ji)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_open_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_curve25519xchacha20poly1305_open_detached=P.ki)(A,I,g,C,Q,i,o,E),B._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=P.li)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_open_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_open_easy=P.mi)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_seedbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_seedbytes=P.ni)(),B._crypto_box_curve25519xchacha20poly1305_publickeybytes=()=>(B._crypto_box_curve25519xchacha20poly1305_publickeybytes=P.oi)(),B._crypto_box_curve25519xchacha20poly1305_secretkeybytes=()=>(B._crypto_box_curve25519xchacha20poly1305_secretkeybytes=P.pi)(),B._crypto_box_curve25519xchacha20poly1305_beforenmbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_beforenmbytes=P.qi)(),B._crypto_box_curve25519xchacha20poly1305_noncebytes=()=>(B._crypto_box_curve25519xchacha20poly1305_noncebytes=P.ri)(),B._crypto_box_curve25519xchacha20poly1305_macbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_macbytes=P.si)(),B._crypto_box_curve25519xchacha20poly1305_messagebytes_max=()=>(B._crypto_box_curve25519xchacha20poly1305_messagebytes_max=P.ti)(),B._crypto_box_curve25519xchacha20poly1305_seal=(A,I,g,C,Q)=>(B._crypto_box_curve25519xchacha20poly1305_seal=P.ui)(A,I,g,C,Q),B._crypto_box_curve25519xchacha20poly1305_seal_open=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_seal_open=P.vi)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_sealbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_sealbytes=P.wi)(),B._crypto_core_ed25519_is_valid_point=A=>(B._crypto_core_ed25519_is_valid_point=P.xi)(A),B._crypto_core_ed25519_add=(A,I,g)=>(B._crypto_core_ed25519_add=P.yi)(A,I,g),B._crypto_core_ed25519_sub=(A,I,g)=>(B._crypto_core_ed25519_sub=P.zi)(A,I,g),B._crypto_core_ed25519_from_uniform=(A,I)=>(B._crypto_core_ed25519_from_uniform=P.Ai)(A,I),B._crypto_core_ed25519_random=A=>(B._crypto_core_ed25519_random=P.Bi)(A),B._crypto_core_ed25519_scalar_random=A=>(B._crypto_core_ed25519_scalar_random=P.Ci)(A),B._crypto_core_ed25519_scalar_invert=(A,I)=>(B._crypto_core_ed25519_scalar_invert=P.Di)(A,I),B._crypto_core_ed25519_scalar_negate=(A,I)=>(B._crypto_core_ed25519_scalar_negate=P.Ei)(A,I),B._crypto_core_ed25519_scalar_complement=(A,I)=>(B._crypto_core_ed25519_scalar_complement=P.Fi)(A,I),B._crypto_core_ed25519_scalar_add=(A,I,g)=>(B._crypto_core_ed25519_scalar_add=P.Gi)(A,I,g),B._crypto_core_ed25519_scalar_reduce=(A,I)=>(B._crypto_core_ed25519_scalar_reduce=P.Hi)(A,I),B._crypto_core_ed25519_scalar_sub=(A,I,g)=>(B._crypto_core_ed25519_scalar_sub=P.Ii)(A,I,g),B._crypto_core_ed25519_scalar_mul=(A,I,g)=>(B._crypto_core_ed25519_scalar_mul=P.Ji)(A,I,g),B._crypto_core_ed25519_bytes=()=>(B._crypto_core_ed25519_bytes=P.Ki)(),B._crypto_core_ed25519_nonreducedscalarbytes=()=>(B._crypto_core_ed25519_nonreducedscalarbytes=P.Li)(),B._crypto_core_ed25519_uniformbytes=()=>(B._crypto_core_ed25519_uniformbytes=P.Mi)(),B._crypto_core_ed25519_hashbytes=()=>(B._crypto_core_ed25519_hashbytes=P.Ni)(),B._crypto_core_ed25519_scalarbytes=()=>(B._crypto_core_ed25519_scalarbytes=P.Oi)(),B._crypto_core_ristretto255_is_valid_point=A=>(B._crypto_core_ristretto255_is_valid_point=P.Pi)(A),B._crypto_core_ristretto255_add=(A,I,g)=>(B._crypto_core_ristretto255_add=P.Qi)(A,I,g),B._crypto_core_ristretto255_sub=(A,I,g)=>(B._crypto_core_ristretto255_sub=P.Ri)(A,I,g),B._crypto_core_ristretto255_from_hash=(A,I)=>(B._crypto_core_ristretto255_from_hash=P.Si)(A,I),B._crypto_core_ristretto255_random=A=>(B._crypto_core_ristretto255_random=P.Ti)(A),B._crypto_core_ristretto255_scalar_random=A=>(B._crypto_core_ristretto255_scalar_random=P.Ui)(A),B._crypto_core_ristretto255_scalar_invert=(A,I)=>(B._crypto_core_ristretto255_scalar_invert=P.Vi)(A,I),B._crypto_core_ristretto255_scalar_negate=(A,I)=>(B._crypto_core_ristretto255_scalar_negate=P.Wi)(A,I),B._crypto_core_ristretto255_scalar_complement=(A,I)=>(B._crypto_core_ristretto255_scalar_complement=P.Xi)(A,I),B._crypto_core_ristretto255_scalar_add=(A,I,g)=>(B._crypto_core_ristretto255_scalar_add=P.Yi)(A,I,g),B._crypto_core_ristretto255_scalar_sub=(A,I,g)=>(B._crypto_core_ristretto255_scalar_sub=P.Zi)(A,I,g),B._crypto_core_ristretto255_scalar_mul=(A,I,g)=>(B._crypto_core_ristretto255_scalar_mul=P._i)(A,I,g),B._crypto_core_ristretto255_scalar_reduce=(A,I)=>(B._crypto_core_ristretto255_scalar_reduce=P.$i)(A,I),B._crypto_core_ristretto255_bytes=()=>(B._crypto_core_ristretto255_bytes=P.aj)(),B._crypto_core_ristretto255_nonreducedscalarbytes=()=>(B._crypto_core_ristretto255_nonreducedscalarbytes=P.bj)(),B._crypto_core_ristretto255_hashbytes=()=>(B._crypto_core_ristretto255_hashbytes=P.cj)(),B._crypto_core_ristretto255_scalarbytes=()=>(B._crypto_core_ristretto255_scalarbytes=P.dj)(),B._crypto_pwhash_scryptsalsa208sha256_ll=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_pwhash_scryptsalsa208sha256_ll=P.ej)(A,I,g,C,Q,i,o,E,a,_),B._crypto_pwhash_scryptsalsa208sha256_bytes_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_bytes_min=P.fj)(),B._crypto_pwhash_scryptsalsa208sha256_bytes_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_bytes_max=P.gj)(),B._crypto_pwhash_scryptsalsa208sha256_passwd_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_passwd_min=P.hj)(),B._crypto_pwhash_scryptsalsa208sha256_passwd_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_passwd_max=P.ij)(),B._crypto_pwhash_scryptsalsa208sha256_saltbytes=()=>(B._crypto_pwhash_scryptsalsa208sha256_saltbytes=P.jj)(),B._crypto_pwhash_scryptsalsa208sha256_strbytes=()=>(B._crypto_pwhash_scryptsalsa208sha256_strbytes=P.kj)(),B._crypto_pwhash_scryptsalsa208sha256_strprefix=()=>(B._crypto_pwhash_scryptsalsa208sha256_strprefix=P.lj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_min=P.mj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_max=P.nj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_min=P.oj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_max=P.pj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=P.qj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=P.rj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=P.sj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=P.tj)(),B._crypto_pwhash_scryptsalsa208sha256=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_pwhash_scryptsalsa208sha256=P.uj)(A,I,g,C,Q,i,o,E,a,_),B._crypto_pwhash_scryptsalsa208sha256_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_scryptsalsa208sha256_str=P.vj)(A,I,g,C,Q,i,o),B._crypto_pwhash_scryptsalsa208sha256_str_verify=(A,I,g,C)=>(B._crypto_pwhash_scryptsalsa208sha256_str_verify=P.wj)(A,I,g,C),B._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=P.xj)(A,I,g,C),B._crypto_scalarmult_ed25519=(A,I,g)=>(B._crypto_scalarmult_ed25519=P.yj)(A,I,g),B._crypto_scalarmult_ed25519_noclamp=(A,I,g)=>(B._crypto_scalarmult_ed25519_noclamp=P.zj)(A,I,g),B._crypto_scalarmult_ed25519_base=(A,I)=>(B._crypto_scalarmult_ed25519_base=P.Aj)(A,I),B._crypto_scalarmult_ed25519_base_noclamp=(A,I)=>(B._crypto_scalarmult_ed25519_base_noclamp=P.Bj)(A,I),B._crypto_scalarmult_ed25519_bytes=()=>(B._crypto_scalarmult_ed25519_bytes=P.Cj)(),B._crypto_scalarmult_ed25519_scalarbytes=()=>(B._crypto_scalarmult_ed25519_scalarbytes=P.Dj)(),B._crypto_scalarmult_ristretto255=(A,I,g)=>(B._crypto_scalarmult_ristretto255=P.Ej)(A,I,g),B._crypto_scalarmult_ristretto255_base=(A,I)=>(B._crypto_scalarmult_ristretto255_base=P.Fj)(A,I),B._crypto_scalarmult_ristretto255_bytes=()=>(B._crypto_scalarmult_ristretto255_bytes=P.Gj)(),B._crypto_scalarmult_ristretto255_scalarbytes=()=>(B._crypto_scalarmult_ristretto255_scalarbytes=P.Hj)(),B._crypto_secretbox_xchacha20poly1305_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_xchacha20poly1305_detached=P.Ij)(A,I,g,C,Q,i,o),B._crypto_secretbox_xchacha20poly1305_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xchacha20poly1305_easy=P.Jj)(A,I,g,C,Q,i),B._crypto_secretbox_xchacha20poly1305_open_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_xchacha20poly1305_open_detached=P.Kj)(A,I,g,C,Q,i,o),B._crypto_secretbox_xchacha20poly1305_open_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xchacha20poly1305_open_easy=P.Lj)(A,I,g,C,Q,i),B._crypto_secretbox_xchacha20poly1305_keybytes=()=>(B._crypto_secretbox_xchacha20poly1305_keybytes=P.Mj)(),B._crypto_secretbox_xchacha20poly1305_noncebytes=()=>(B._crypto_secretbox_xchacha20poly1305_noncebytes=P.Nj)(),B._crypto_secretbox_xchacha20poly1305_macbytes=()=>(B._crypto_secretbox_xchacha20poly1305_macbytes=P.Oj)(),B._crypto_secretbox_xchacha20poly1305_messagebytes_max=()=>(B._crypto_secretbox_xchacha20poly1305_messagebytes_max=P.Pj)(),B._crypto_shorthash_siphashx24_bytes=()=>(B._crypto_shorthash_siphashx24_bytes=P.Qj)(),B._crypto_shorthash_siphashx24_keybytes=()=>(B._crypto_shorthash_siphashx24_keybytes=P.Rj)(),B._crypto_shorthash_siphashx24=(A,I,g,C,Q)=>(B._crypto_shorthash_siphashx24=P.Sj)(A,I,g,C,Q),B._crypto_stream_salsa2012=(A,I,g,C,Q)=>(B._crypto_stream_salsa2012=P.Tj)(A,I,g,C,Q),B._crypto_stream_salsa2012_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa2012_xor=P.Uj)(A,I,g,C,Q,i),B._crypto_stream_salsa2012_keybytes=()=>(B._crypto_stream_salsa2012_keybytes=P.Vj)(),B._crypto_stream_salsa2012_noncebytes=()=>(B._crypto_stream_salsa2012_noncebytes=P.Wj)(),B._crypto_stream_salsa2012_messagebytes_max=()=>(B._crypto_stream_salsa2012_messagebytes_max=P.Xj)(),B._crypto_stream_salsa2012_keygen=A=>(B._crypto_stream_salsa2012_keygen=P.Yj)(A),B._crypto_stream_salsa208=(A,I,g,C,Q)=>(B._crypto_stream_salsa208=P.Zj)(A,I,g,C,Q),B._crypto_stream_salsa208_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa208_xor=P._j)(A,I,g,C,Q,i),B._crypto_stream_salsa208_keybytes=()=>(B._crypto_stream_salsa208_keybytes=P.$j)(),B._crypto_stream_salsa208_noncebytes=()=>(B._crypto_stream_salsa208_noncebytes=P.ak)(),B._crypto_stream_salsa208_messagebytes_max=()=>(B._crypto_stream_salsa208_messagebytes_max=P.bk)(),B._crypto_stream_salsa208_keygen=A=>(B._crypto_stream_salsa208_keygen=P.ck)(A),B._crypto_stream_xchacha20_keybytes=()=>(B._crypto_stream_xchacha20_keybytes=P.dk)(),B._crypto_stream_xchacha20_noncebytes=()=>(B._crypto_stream_xchacha20_noncebytes=P.ek)(),B._crypto_stream_xchacha20_messagebytes_max=()=>(B._crypto_stream_xchacha20_messagebytes_max=P.fk)(),B._crypto_stream_xchacha20=(A,I,g,C,Q)=>(B._crypto_stream_xchacha20=P.gk)(A,I,g,C,Q),B._crypto_stream_xchacha20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_xchacha20_xor_ic=P.hk)(A,I,g,C,Q,i,o,E),B._crypto_stream_xchacha20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xchacha20_xor=P.ik)(A,I,g,C,Q,i),B._crypto_stream_xchacha20_keygen=A=>(B._crypto_stream_xchacha20_keygen=P.jk)(A),B._malloc=A=>(B._malloc=P.kk)(A),B._free=A=>(B._free=P.lk)(A),B.setValue=function(A,I,g=\"i8\"){switch(g.endsWith(\"*\")&&(g=\"*\"),g){case\"i1\":case\"i8\":y[A]=I;break;case\"i16\":h[A>>1]=I;break;case\"i32\":D[A>>2]=I;break;case\"i64\":U(\"to do setValue(i64) use WASM_BIGINT\");case\"float\":p[A>>2]=I;break;case\"double\":w[A>>3]=I;break;case\"*\":f[A>>2]=I;break;default:U(`invalid type for setValue: ${g}`)}},B.getValue=function(A,I=\"i8\"){switch(I.endsWith(\"*\")&&(I=\"*\"),I){case\"i1\":case\"i8\":return y[A];case\"i16\":return h[A>>1];case\"i32\":return D[A>>2];case\"i64\":U(\"to do getValue(i64) use WASM_BIGINT\");case\"float\":return p[A>>2];case\"double\":return w[A>>3];case\"*\":return f[A>>2];default:U(`invalid type for getValue: ${I}`)}},B.UTF8ToString=x,K=function A(){l||q(),l||(K=A)},B.preInit)for(\"function\"==typeof B.preInit&&(B.preInit=[B.preInit]);B.preInit.length>0;)B.preInit.pop()();q()})).catch((function(){return C.useBackupModule()})),I}\"function\"==typeof define&&define.amd?define([\"exports\"],I):\"object\"==typeof exports&&\"string\"!=typeof exports.nodeName?I(exports):A.libsodium=I(A.libsodium_mod||(A.commonJsStrict={}))}(this);\n","!function(e){function a(e,a){\"use strict\";var r,t=\"uint8array\",_=a.ready.then((function(){function t(){if(0!==r._sodium_init())throw new Error(\"libsodium was not correctly initialized.\");for(var a=[\"crypto_aead_aegis128l_decrypt\",\"crypto_aead_aegis128l_decrypt_detached\",\"crypto_aead_aegis128l_encrypt\",\"crypto_aead_aegis128l_encrypt_detached\",\"crypto_aead_aegis128l_keygen\",\"crypto_aead_aegis256_decrypt\",\"crypto_aead_aegis256_decrypt_detached\",\"crypto_aead_aegis256_encrypt\",\"crypto_aead_aegis256_encrypt_detached\",\"crypto_aead_aegis256_keygen\",\"crypto_aead_chacha20poly1305_decrypt\",\"crypto_aead_chacha20poly1305_decrypt_detached\",\"crypto_aead_chacha20poly1305_encrypt\",\"crypto_aead_chacha20poly1305_encrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_decrypt\",\"crypto_aead_chacha20poly1305_ietf_decrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_encrypt\",\"crypto_aead_chacha20poly1305_ietf_encrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_keygen\",\"crypto_aead_chacha20poly1305_keygen\",\"crypto_aead_xchacha20poly1305_ietf_decrypt\",\"crypto_aead_xchacha20poly1305_ietf_decrypt_detached\",\"crypto_aead_xchacha20poly1305_ietf_encrypt\",\"crypto_aead_xchacha20poly1305_ietf_encrypt_detached\",\"crypto_aead_xchacha20poly1305_ietf_keygen\",\"crypto_auth\",\"crypto_auth_hmacsha256\",\"crypto_auth_hmacsha256_final\",\"crypto_auth_hmacsha256_init\",\"crypto_auth_hmacsha256_keygen\",\"crypto_auth_hmacsha256_update\",\"crypto_auth_hmacsha256_verify\",\"crypto_auth_hmacsha512\",\"crypto_auth_hmacsha512256\",\"crypto_auth_hmacsha512256_final\",\"crypto_auth_hmacsha512256_init\",\"crypto_auth_hmacsha512256_keygen\",\"crypto_auth_hmacsha512256_update\",\"crypto_auth_hmacsha512256_verify\",\"crypto_auth_hmacsha512_final\",\"crypto_auth_hmacsha512_init\",\"crypto_auth_hmacsha512_keygen\",\"crypto_auth_hmacsha512_update\",\"crypto_auth_hmacsha512_verify\",\"crypto_auth_keygen\",\"crypto_auth_verify\",\"crypto_box_beforenm\",\"crypto_box_curve25519xchacha20poly1305_beforenm\",\"crypto_box_curve25519xchacha20poly1305_detached\",\"crypto_box_curve25519xchacha20poly1305_detached_afternm\",\"crypto_box_curve25519xchacha20poly1305_easy\",\"crypto_box_curve25519xchacha20poly1305_easy_afternm\",\"crypto_box_curve25519xchacha20poly1305_keypair\",\"crypto_box_curve25519xchacha20poly1305_open_detached\",\"crypto_box_curve25519xchacha20poly1305_open_detached_afternm\",\"crypto_box_curve25519xchacha20poly1305_open_easy\",\"crypto_box_curve25519xchacha20poly1305_open_easy_afternm\",\"crypto_box_curve25519xchacha20poly1305_seal\",\"crypto_box_curve25519xchacha20poly1305_seal_open\",\"crypto_box_curve25519xchacha20poly1305_seed_keypair\",\"crypto_box_detached\",\"crypto_box_easy\",\"crypto_box_easy_afternm\",\"crypto_box_keypair\",\"crypto_box_open_detached\",\"crypto_box_open_easy\",\"crypto_box_open_easy_afternm\",\"crypto_box_seal\",\"crypto_box_seal_open\",\"crypto_box_seed_keypair\",\"crypto_core_ed25519_add\",\"crypto_core_ed25519_from_hash\",\"crypto_core_ed25519_from_uniform\",\"crypto_core_ed25519_is_valid_point\",\"crypto_core_ed25519_random\",\"crypto_core_ed25519_scalar_add\",\"crypto_core_ed25519_scalar_complement\",\"crypto_core_ed25519_scalar_invert\",\"crypto_core_ed25519_scalar_mul\",\"crypto_core_ed25519_scalar_negate\",\"crypto_core_ed25519_scalar_random\",\"crypto_core_ed25519_scalar_reduce\",\"crypto_core_ed25519_scalar_sub\",\"crypto_core_ed25519_sub\",\"crypto_core_hchacha20\",\"crypto_core_hsalsa20\",\"crypto_core_ristretto255_add\",\"crypto_core_ristretto255_from_hash\",\"crypto_core_ristretto255_is_valid_point\",\"crypto_core_ristretto255_random\",\"crypto_core_ristretto255_scalar_add\",\"crypto_core_ristretto255_scalar_complement\",\"crypto_core_ristretto255_scalar_invert\",\"crypto_core_ristretto255_scalar_mul\",\"crypto_core_ristretto255_scalar_negate\",\"crypto_core_ristretto255_scalar_random\",\"crypto_core_ristretto255_scalar_reduce\",\"crypto_core_ristretto255_scalar_sub\",\"crypto_core_ristretto255_sub\",\"crypto_generichash\",\"crypto_generichash_blake2b_salt_personal\",\"crypto_generichash_final\",\"crypto_generichash_init\",\"crypto_generichash_keygen\",\"crypto_generichash_update\",\"crypto_hash\",\"crypto_hash_sha256\",\"crypto_hash_sha256_final\",\"crypto_hash_sha256_init\",\"crypto_hash_sha256_update\",\"crypto_hash_sha512\",\"crypto_hash_sha512_final\",\"crypto_hash_sha512_init\",\"crypto_hash_sha512_update\",\"crypto_kdf_derive_from_key\",\"crypto_kdf_keygen\",\"crypto_kx_client_session_keys\",\"crypto_kx_keypair\",\"crypto_kx_seed_keypair\",\"crypto_kx_server_session_keys\",\"crypto_onetimeauth\",\"crypto_onetimeauth_final\",\"crypto_onetimeauth_init\",\"crypto_onetimeauth_keygen\",\"crypto_onetimeauth_update\",\"crypto_onetimeauth_verify\",\"crypto_pwhash\",\"crypto_pwhash_scryptsalsa208sha256\",\"crypto_pwhash_scryptsalsa208sha256_ll\",\"crypto_pwhash_scryptsalsa208sha256_str\",\"crypto_pwhash_scryptsalsa208sha256_str_verify\",\"crypto_pwhash_str\",\"crypto_pwhash_str_needs_rehash\",\"crypto_pwhash_str_verify\",\"crypto_scalarmult\",\"crypto_scalarmult_base\",\"crypto_scalarmult_ed25519\",\"crypto_scalarmult_ed25519_base\",\"crypto_scalarmult_ed25519_base_noclamp\",\"crypto_scalarmult_ed25519_noclamp\",\"crypto_scalarmult_ristretto255\",\"crypto_scalarmult_ristretto255_base\",\"crypto_secretbox_detached\",\"crypto_secretbox_easy\",\"crypto_secretbox_keygen\",\"crypto_secretbox_open_detached\",\"crypto_secretbox_open_easy\",\"crypto_secretstream_xchacha20poly1305_init_pull\",\"crypto_secretstream_xchacha20poly1305_init_push\",\"crypto_secretstream_xchacha20poly1305_keygen\",\"crypto_secretstream_xchacha20poly1305_pull\",\"crypto_secretstream_xchacha20poly1305_push\",\"crypto_secretstream_xchacha20poly1305_rekey\",\"crypto_shorthash\",\"crypto_shorthash_keygen\",\"crypto_shorthash_siphashx24\",\"crypto_sign\",\"crypto_sign_detached\",\"crypto_sign_ed25519_pk_to_curve25519\",\"crypto_sign_ed25519_sk_to_curve25519\",\"crypto_sign_ed25519_sk_to_pk\",\"crypto_sign_ed25519_sk_to_seed\",\"crypto_sign_final_create\",\"crypto_sign_final_verify\",\"crypto_sign_init\",\"crypto_sign_keypair\",\"crypto_sign_open\",\"crypto_sign_seed_keypair\",\"crypto_sign_update\",\"crypto_sign_verify_detached\",\"crypto_stream_chacha20\",\"crypto_stream_chacha20_ietf_xor\",\"crypto_stream_chacha20_ietf_xor_ic\",\"crypto_stream_chacha20_keygen\",\"crypto_stream_chacha20_xor\",\"crypto_stream_chacha20_xor_ic\",\"crypto_stream_keygen\",\"crypto_stream_xchacha20_keygen\",\"crypto_stream_xchacha20_xor\",\"crypto_stream_xchacha20_xor_ic\",\"randombytes_buf\",\"randombytes_buf_deterministic\",\"randombytes_close\",\"randombytes_random\",\"randombytes_set_implementation\",\"randombytes_stir\",\"randombytes_uniform\",\"sodium_version_string\"],t=[x,k,S,T,w,Y,B,A,M,I,K,N,L,O,U,C,P,R,X,G,D,F,V,H,W,q,j,z,J,Q,Z,$,ee,ae,re,te,_e,ne,se,ce,oe,he,pe,ye,ie,le,ue,de,ve,ge,be,fe,me,Ee,xe,ke,Se,Te,we,Ye,Be,Ae,Me,Ie,Ke,Ne,Le,Oe,Ue,Ce,Pe,Re,Xe,Ge,De,Fe,Ve,He,We,qe,je,ze,Je,Qe,Ze,$e,ea,aa,ra,ta,_a,na,sa,ca,oa,ha,pa,ya,ia,la,ua,da,va,ga,ba,fa,ma,Ea,xa,ka,Sa,Ta,wa,Ya,Ba,Aa,Ma,Ia,Ka,Na,La,Oa,Ua,Ca,Pa,Ra,Xa,Ga,Da,Fa,Va,Ha,Wa,qa,ja,za,Ja,Qa,Za,$a,er,ar,rr,tr,_r,nr,sr,cr,or,hr,pr,yr,ir,lr,ur,dr,vr,gr,br,fr,mr,Er,xr,kr,Sr,Tr,wr,Yr,Br,Ar,Mr,Ir,Kr,Nr,Lr,Or,Ur,Cr,Pr,Rr,Xr,Gr,Dr,Fr,Vr,Hr,Wr,qr],_=0;_=240?(p=4,o=!0):y>=224?(p=3,o=!0):y>=192?(p=2,o=!0):y<128&&(p=1,o=!0)}while(!o);for(var i=p-(c.length-h),l=0;l>8&-39)<<8|87+(a=e[n]>>>4)+(a-10>>8&-39),_+=String.fromCharCode(255&t)+String.fromCharCode(t>>>8);return _}var o={ORIGINAL:1,ORIGINAL_NO_PADDING:3,URLSAFE:5,URLSAFE_NO_PADDING:7};function h(e){if(null==e)return o.URLSAFE_NO_PADDING;if(e!==o.ORIGINAL&&e!==o.ORIGINAL_NO_PADDING&&e!==o.URLSAFE&&e!=o.URLSAFE_NO_PADDING)throw new Error(\"unsupported base64 variant\");return e}function p(e,a){a=h(a),e=E(_,e,\"input\");var t,_=[],n=0|Math.floor(e.length/3),c=e.length-3*n,o=4*n+(0!==c?2&a?2+(c>>>1):4:0),p=new u(o+1),y=d(e);return _.push(y),_.push(p.address),0===r._sodium_bin2base64(p.address,p.length,y,e.length,a)&&b(_,\"conversion failed\"),p.length=o,t=s(p.to_Uint8Array()),g(_),t}function y(e,a){var r=a||t;if(!i(r))throw new Error(r+\" output format is not available\");if(e instanceof u){if(\"uint8array\"===r)return e.to_Uint8Array();if(\"text\"===r)return s(e.to_Uint8Array());if(\"hex\"===r)return c(e.to_Uint8Array());if(\"base64\"===r)return p(e.to_Uint8Array(),o.URLSAFE_NO_PADDING);throw new Error('What is output format \"'+r+'\"?')}if(\"object\"==typeof e){for(var _=Object.keys(e),n={},h=0;h<_.length;h++)n[_[h]]=y(e[_[h]],r);return n}if(\"string\"==typeof e)return e;throw new TypeError(\"Cannot format output\")}function i(e){for(var a=[\"uint8array\",\"text\",\"hex\",\"base64\"],r=0;r=BigInt(0)){const e=a>>BigInt(32);e>BigInt(4294967295)&&f(c,\"subkey_id cannot be more than 64 bits\"),h=Number(e),o=Number(a&BigInt(4294967295))}else\"number\"==typeof a&&(0|a)===a&&a>=0?o=a:f(c,\"subkey_id must be an unsigned integer or bigint\");\"string\"!=typeof t&&f(c,\"ctx must be a string\"),t=n(t+\"\\0\"),null!=i&&t.length-1!==i&&f(c,\"invalid ctx length\");var p=d(t),i=t.length-1;c.push(p),_=E(c,_,\"key\");var v,b=0|r._crypto_kdf_keybytes();_.length!==b&&f(c,\"invalid key length\"),v=d(_),c.push(v);var x=new u(0|e),k=x.address;c.push(k),r._crypto_kdf_derive_from_key(k,e,o,h,p,v);var S=y(x,s);return g(c),S}function Aa(e){var a=[];l(e);var t=new u(0|r._crypto_kdf_keybytes()),_=t.address;a.push(_),r._crypto_kdf_keygen(_);var n=y(t,e);return g(a),n}function Ma(e,a,t,_){var n=[];l(_),e=E(n,e,\"clientPublicKey\");var s,c=0|r._crypto_kx_publickeybytes();e.length!==c&&f(n,\"invalid clientPublicKey length\"),s=d(e),n.push(s),a=E(n,a,\"clientSecretKey\");var o,h=0|r._crypto_kx_secretkeybytes();a.length!==h&&f(n,\"invalid clientSecretKey length\"),o=d(a),n.push(o),t=E(n,t,\"serverPublicKey\");var p,i=0|r._crypto_kx_publickeybytes();t.length!==i&&f(n,\"invalid serverPublicKey length\"),p=d(t),n.push(p);var v=new u(0|r._crypto_kx_sessionkeybytes()),m=v.address;n.push(m);var x=new u(0|r._crypto_kx_sessionkeybytes()),k=x.address;if(n.push(k),!(0|r._crypto_kx_client_session_keys(m,k,s,o,p))){var S=y({sharedRx:v,sharedTx:x},_);return g(n),S}b(n,\"invalid usage\")}function Ia(e){var a=[];l(e);var t=new u(0|r._crypto_kx_publickeybytes()),_=t.address;a.push(_);var n=new u(0|r._crypto_kx_secretkeybytes()),s=n.address;if(a.push(s),!(0|r._crypto_kx_keypair(_,s))){var c={publicKey:y(t,e),privateKey:y(n,e),keyType:\"x25519\"};return g(a),c}b(a,\"internal error\")}function Ka(e,a){var t=[];l(a),e=E(t,e,\"seed\");var _,n=0|r._crypto_kx_seedbytes();e.length!==n&&f(t,\"invalid seed length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_kx_publickeybytes()),c=s.address;t.push(c);var o=new u(0|r._crypto_kx_secretkeybytes()),h=o.address;if(t.push(h),!(0|r._crypto_kx_seed_keypair(c,h,_))){var p={publicKey:y(s,a),privateKey:y(o,a),keyType:\"x25519\"};return g(t),p}b(t,\"internal error\")}function Na(e,a,t,_){var n=[];l(_),e=E(n,e,\"serverPublicKey\");var s,c=0|r._crypto_kx_publickeybytes();e.length!==c&&f(n,\"invalid serverPublicKey length\"),s=d(e),n.push(s),a=E(n,a,\"serverSecretKey\");var o,h=0|r._crypto_kx_secretkeybytes();a.length!==h&&f(n,\"invalid serverSecretKey length\"),o=d(a),n.push(o),t=E(n,t,\"clientPublicKey\");var p,i=0|r._crypto_kx_publickeybytes();t.length!==i&&f(n,\"invalid clientPublicKey length\"),p=d(t),n.push(p);var v=new u(0|r._crypto_kx_sessionkeybytes()),m=v.address;n.push(m);var x=new u(0|r._crypto_kx_sessionkeybytes()),k=x.address;if(n.push(k),!(0|r._crypto_kx_server_session_keys(m,k,s,o,p))){var S=y({sharedRx:v,sharedTx:x},_);return g(n),S}b(n,\"invalid usage\")}function La(e,a,t){var _=[];l(t);var n=d(e=E(_,e,\"message\")),s=e.length;_.push(n),a=E(_,a,\"key\");var c,o=0|r._crypto_onetimeauth_keybytes();a.length!==o&&f(_,\"invalid key length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_onetimeauth_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_onetimeauth(p,n,s,0,c))){var i=y(h,t);return g(_),i}b(_,\"invalid usage\")}function Oa(e,a){var t=[];l(a),m(t,e,\"state_address\");var _=new u(0|r._crypto_onetimeauth_bytes()),n=_.address;if(t.push(n),!(0|r._crypto_onetimeauth_final(e,n))){var s=(r._free(e),y(_,a));return g(t),s}b(t,\"invalid usage\")}function Ua(e,a){var t=[];l(a);var _=null;null!=e&&(_=d(e=E(t,e,\"key\")),e.length,t.push(_));var n=new u(144).address;if(!(0|r._crypto_onetimeauth_init(n,_))){var s=n;return g(t),s}b(t,\"invalid usage\")}function Ca(e){var a=[];l(e);var t=new u(0|r._crypto_onetimeauth_keybytes()),_=t.address;a.push(_),r._crypto_onetimeauth_keygen(_);var n=y(t,e);return g(a),n}function Pa(e,a,t){var _=[];l(t),m(_,e,\"state_address\");var n=d(a=E(_,a,\"message_chunk\")),s=a.length;_.push(n),0|r._crypto_onetimeauth_update(e,n,s)&&b(_,\"invalid usage\"),g(_)}function Ra(e,a,t){var _=[];e=E(_,e,\"hash\");var n,s=0|r._crypto_onetimeauth_bytes();e.length!==s&&f(_,\"invalid hash length\"),n=d(e),_.push(n);var c=d(a=E(_,a,\"message\")),o=a.length;_.push(c),t=E(_,t,\"key\");var h,p=0|r._crypto_onetimeauth_keybytes();t.length!==p&&f(_,\"invalid key length\"),h=d(t),_.push(h);var y=!(0|r._crypto_onetimeauth_verify(n,c,o,0,h));return g(_),y}function Xa(e,a,t,_,n,s,c){var o=[];l(c),m(o,e,\"keyLength\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&f(o,\"keyLength must be an unsigned integer\");var h=d(a=E(o,a,\"password\")),p=a.length;o.push(h),t=E(o,t,\"salt\");var i,v=0|r._crypto_pwhash_saltbytes();t.length!==v&&f(o,\"invalid salt length\"),i=d(t),o.push(i),m(o,_,\"opsLimit\"),(\"number\"!=typeof _||(0|_)!==_||_<0)&&f(o,\"opsLimit must be an unsigned integer\"),m(o,n,\"memLimit\"),(\"number\"!=typeof n||(0|n)!==n||n<0)&&f(o,\"memLimit must be an unsigned integer\"),m(o,s,\"algorithm\"),(\"number\"!=typeof s||(0|s)!==s||s<0)&&f(o,\"algorithm must be an unsigned integer\");var x=new u(0|e),k=x.address;if(o.push(k),!(0|r._crypto_pwhash(k,e,0,h,p,0,i,_,0,n,s))){var S=y(x,c);return g(o),S}b(o,\"invalid usage\")}function Ga(e,a,t,_,n,s){var c=[];l(s),m(c,e,\"keyLength\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&f(c,\"keyLength must be an unsigned integer\");var o=d(a=E(c,a,\"password\")),h=a.length;c.push(o),t=E(c,t,\"salt\");var p,i=0|r._crypto_pwhash_scryptsalsa208sha256_saltbytes();t.length!==i&&f(c,\"invalid salt length\"),p=d(t),c.push(p),m(c,_,\"opsLimit\"),(\"number\"!=typeof _||(0|_)!==_||_<0)&&f(c,\"opsLimit must be an unsigned integer\"),m(c,n,\"memLimit\"),(\"number\"!=typeof n||(0|n)!==n||n<0)&&f(c,\"memLimit must be an unsigned integer\");var v=new u(0|e),x=v.address;if(c.push(x),!(0|r._crypto_pwhash_scryptsalsa208sha256(x,e,0,o,h,0,p,_,0,n))){var k=y(v,s);return g(c),k}b(c,\"invalid usage\")}function Da(e,a,t,_,n,s,c){var o=[];l(c);var h=d(e=E(o,e,\"password\")),p=e.length;o.push(h);var i=d(a=E(o,a,\"salt\")),v=a.length;o.push(i),m(o,t,\"opsLimit\"),(\"number\"!=typeof t||(0|t)!==t||t<0)&&f(o,\"opsLimit must be an unsigned integer\"),m(o,_,\"r\"),(\"number\"!=typeof _||(0|_)!==_||_<0)&&f(o,\"r must be an unsigned integer\"),m(o,n,\"p\"),(\"number\"!=typeof n||(0|n)!==n||n<0)&&f(o,\"p must be an unsigned integer\"),m(o,s,\"keyLength\"),(\"number\"!=typeof s||(0|s)!==s||s<0)&&f(o,\"keyLength must be an unsigned integer\");var x=new u(0|s),k=x.address;if(o.push(k),!(0|r._crypto_pwhash_scryptsalsa208sha256_ll(h,p,i,v,t,0,_,n,k,s))){var S=y(x,c);return g(o),S}b(o,\"invalid usage\")}function Fa(e,a,t,_){var n=[];l(_);var s=d(e=E(n,e,\"password\")),c=e.length;n.push(s),m(n,a,\"opsLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&f(n,\"opsLimit must be an unsigned integer\"),m(n,t,\"memLimit\"),(\"number\"!=typeof t||(0|t)!==t||t<0)&&f(n,\"memLimit must be an unsigned integer\");var o=new u(0|r._crypto_pwhash_scryptsalsa208sha256_strbytes()).address;if(n.push(o),!(0|r._crypto_pwhash_scryptsalsa208sha256_str(o,s,c,0,a,0,t))){var h=r.UTF8ToString(o);return g(n),h}b(n,\"invalid usage\")}function Va(e,a,t){var _=[];l(t),\"string\"!=typeof e&&f(_,\"hashed_password must be a string\"),e=n(e+\"\\0\"),null!=c&&e.length-1!==c&&f(_,\"invalid hashed_password length\");var s=d(e),c=e.length-1;_.push(s);var o=d(a=E(_,a,\"password\")),h=a.length;_.push(o);var p=!(0|r._crypto_pwhash_scryptsalsa208sha256_str_verify(s,o,h,0));return g(_),p}function Ha(e,a,t,_){var n=[];l(_);var s=d(e=E(n,e,\"password\")),c=e.length;n.push(s),m(n,a,\"opsLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&f(n,\"opsLimit must be an unsigned integer\"),m(n,t,\"memLimit\"),(\"number\"!=typeof t||(0|t)!==t||t<0)&&f(n,\"memLimit must be an unsigned integer\");var o=new u(0|r._crypto_pwhash_strbytes()).address;if(n.push(o),!(0|r._crypto_pwhash_str(o,s,c,0,a,0,t))){var h=r.UTF8ToString(o);return g(n),h}b(n,\"invalid usage\")}function Wa(e,a,t,_){var s=[];l(_),\"string\"!=typeof e&&f(s,\"hashed_password must be a string\"),e=n(e+\"\\0\"),null!=o&&e.length-1!==o&&f(s,\"invalid hashed_password length\");var c=d(e),o=e.length-1;s.push(c),m(s,a,\"opsLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&f(s,\"opsLimit must be an unsigned integer\"),m(s,t,\"memLimit\"),(\"number\"!=typeof t||(0|t)!==t||t<0)&&f(s,\"memLimit must be an unsigned integer\");var h=!!(0|r._crypto_pwhash_str_needs_rehash(c,a,0,t));return g(s),h}function qa(e,a,t){var _=[];l(t),\"string\"!=typeof e&&f(_,\"hashed_password must be a string\"),e=n(e+\"\\0\"),null!=c&&e.length-1!==c&&f(_,\"invalid hashed_password length\");var s=d(e),c=e.length-1;_.push(s);var o=d(a=E(_,a,\"password\")),h=a.length;_.push(o);var p=!(0|r._crypto_pwhash_str_verify(s,o,h,0));return g(_),p}function ja(e,a,t){var _=[];l(t),e=E(_,e,\"privateKey\");var n,s=0|r._crypto_scalarmult_scalarbytes();e.length!==s&&f(_,\"invalid privateKey length\"),n=d(e),_.push(n),a=E(_,a,\"publicKey\");var c,o=0|r._crypto_scalarmult_bytes();a.length!==o&&f(_,\"invalid publicKey length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_scalarmult_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_scalarmult(p,n,c))){var i=y(h,t);return g(_),i}b(_,\"weak public key\")}function za(e,a){var t=[];l(a),e=E(t,e,\"privateKey\");var _,n=0|r._crypto_scalarmult_scalarbytes();e.length!==n&&f(t,\"invalid privateKey length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_scalarmult_bytes()),c=s.address;if(t.push(c),!(0|r._crypto_scalarmult_base(c,_))){var o=y(s,a);return g(t),o}b(t,\"unknown error\")}function Ja(e,a,t){var _=[];l(t),e=E(_,e,\"n\");var n,s=0|r._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&f(_,\"invalid n length\"),n=d(e),_.push(n),a=E(_,a,\"p\");var c,o=0|r._crypto_scalarmult_ed25519_bytes();a.length!==o&&f(_,\"invalid p length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_scalarmult_ed25519_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_scalarmult_ed25519(p,n,c))){var i=y(h,t);return g(_),i}b(_,\"invalid point or scalar is 0\")}function Qa(e,a){var t=[];l(a),e=E(t,e,\"scalar\");var _,n=0|r._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&f(t,\"invalid scalar length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_scalarmult_ed25519_bytes()),c=s.address;if(t.push(c),!(0|r._crypto_scalarmult_ed25519_base(c,_))){var o=y(s,a);return g(t),o}b(t,\"scalar is 0\")}function Za(e,a){var t=[];l(a),e=E(t,e,\"scalar\");var _,n=0|r._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&f(t,\"invalid scalar length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_scalarmult_ed25519_bytes()),c=s.address;if(t.push(c),!(0|r._crypto_scalarmult_ed25519_base_noclamp(c,_))){var o=y(s,a);return g(t),o}b(t,\"scalar is 0\")}function $a(e,a,t){var _=[];l(t),e=E(_,e,\"n\");var n,s=0|r._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&f(_,\"invalid n length\"),n=d(e),_.push(n),a=E(_,a,\"p\");var c,o=0|r._crypto_scalarmult_ed25519_bytes();a.length!==o&&f(_,\"invalid p length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_scalarmult_ed25519_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_scalarmult_ed25519_noclamp(p,n,c))){var i=y(h,t);return g(_),i}b(_,\"invalid point or scalar is 0\")}function er(e,a,t){var _=[];l(t),e=E(_,e,\"scalar\");var n,s=0|r._crypto_scalarmult_ristretto255_scalarbytes();e.length!==s&&f(_,\"invalid scalar length\"),n=d(e),_.push(n),a=E(_,a,\"element\");var c,o=0|r._crypto_scalarmult_ristretto255_bytes();a.length!==o&&f(_,\"invalid element length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_scalarmult_ristretto255_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_scalarmult_ristretto255(p,n,c))){var i=y(h,t);return g(_),i}b(_,\"result is identity element\")}function ar(e,a){var t=[];l(a),e=E(t,e,\"scalar\");var _,n=0|r._crypto_core_ristretto255_scalarbytes();e.length!==n&&f(t,\"invalid scalar length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_core_ristretto255_bytes()),c=s.address;if(t.push(c),!(0|r._crypto_scalarmult_ristretto255_base(c,_))){var o=y(s,a);return g(t),o}b(t,\"scalar is 0\")}function rr(e,a,t,_){var n=[];l(_);var s=d(e=E(n,e,\"message\")),c=e.length;n.push(s),a=E(n,a,\"nonce\");var o,h=0|r._crypto_secretbox_noncebytes();a.length!==h&&f(n,\"invalid nonce length\"),o=d(a),n.push(o),t=E(n,t,\"key\");var p,i=0|r._crypto_secretbox_keybytes();t.length!==i&&f(n,\"invalid key length\"),p=d(t),n.push(p);var v=new u(0|c),m=v.address;n.push(m);var x=new u(0|r._crypto_secretbox_macbytes()),k=x.address;if(n.push(k),!(0|r._crypto_secretbox_detached(m,k,s,c,0,o,p))){var S=y({mac:x,cipher:v},_);return g(n),S}b(n,\"invalid usage\")}function tr(e,a,t,_){var n=[];l(_);var s=d(e=E(n,e,\"message\")),c=e.length;n.push(s),a=E(n,a,\"nonce\");var o,h=0|r._crypto_secretbox_noncebytes();a.length!==h&&f(n,\"invalid nonce length\"),o=d(a),n.push(o),t=E(n,t,\"key\");var p,i=0|r._crypto_secretbox_keybytes();t.length!==i&&f(n,\"invalid key length\"),p=d(t),n.push(p);var v=new u(c+r._crypto_secretbox_macbytes()|0),m=v.address;if(n.push(m),!(0|r._crypto_secretbox_easy(m,s,c,0,o,p))){var x=y(v,_);return g(n),x}b(n,\"invalid usage\")}function _r(e){var a=[];l(e);var t=new u(0|r._crypto_secretbox_keybytes()),_=t.address;a.push(_),r._crypto_secretbox_keygen(_);var n=y(t,e);return g(a),n}function nr(e,a,t,_,n){var s=[];l(n);var c=d(e=E(s,e,\"ciphertext\")),o=e.length;s.push(c),a=E(s,a,\"mac\");var h,p=0|r._crypto_secretbox_macbytes();a.length!==p&&f(s,\"invalid mac length\"),h=d(a),s.push(h),t=E(s,t,\"nonce\");var i,v=0|r._crypto_secretbox_noncebytes();t.length!==v&&f(s,\"invalid nonce length\"),i=d(t),s.push(i),_=E(s,_,\"key\");var m,x=0|r._crypto_secretbox_keybytes();_.length!==x&&f(s,\"invalid key length\"),m=d(_),s.push(m);var k=new u(0|o),S=k.address;if(s.push(S),!(0|r._crypto_secretbox_open_detached(S,c,h,o,0,i,m))){var T=y(k,n);return g(s),T}b(s,\"wrong secret key for the given ciphertext\")}function sr(e,a,t,_){var n=[];l(_),e=E(n,e,\"ciphertext\");var s,c=r._crypto_secretbox_macbytes(),o=e.length;o>>0;return g([]),a}function Vr(e,a){var t=[];l(a);for(var _=r._malloc(24),n=0;n<6;n++)r.setValue(_+4*n,r.Runtime.addFunction(e[[\"implementation_name\",\"random\",\"stir\",\"uniform\",\"buf\",\"close\"][n]]),\"i32\");0|r._randombytes_set_implementation(_)&&b(t,\"unsupported implementation\"),g(t)}function Hr(e){l(e),r._randombytes_stir()}function Wr(e,a){var t=[];l(a),m(t,e,\"upper_bound\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&f(t,\"upper_bound must be an unsigned integer\");var _=r._randombytes_uniform(e)>>>0;return g(t),_}function qr(){var e=r._sodium_version_string(),a=r.UTF8ToString(e);return g([]),a}return u.prototype.to_Uint8Array=function(){var e=new Uint8Array(this.length);return e.set(r.HEAPU8.subarray(this.address,this.address+this.length)),e},e.add=function(e,a){if(!(e instanceof Uint8Array&&a instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can added\");var r=e.length,t=0,_=0;if(a.length!=e.length)throw new TypeError(\"Arguments must have the same length\");for(_=0;_>=8,t+=e[_]+a[_],e[_]=255&t},e.base64_variants=o,e.compare=function(e,a){if(!(e instanceof Uint8Array&&a instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be compared\");if(e.length!==a.length)throw new TypeError(\"Only instances of identical length can be compared\");for(var r=0,t=1,_=e.length;_-- >0;)r|=a[_]-e[_]>>8&t,t&=(a[_]^e[_])-1>>8;return r+r+t-1},e.from_base64=function(e,a){a=h(a);var t,_=[],n=new u(3*(e=E(_,e,\"input\")).length/4),s=d(e),c=v(4),o=v(4);return _.push(s),_.push(n.address),_.push(n.result_bin_len_p),_.push(n.b64_end_p),0!==r._sodium_base642bin(n.address,n.length,s,e.length,0,c,o,a)&&b(_,\"invalid input\"),r.getValue(o,\"i32\")-s!==e.length&&b(_,\"incomplete input\"),n.length=r.getValue(c,\"i32\"),t=n.to_Uint8Array(),g(_),t},e.from_hex=function(e){var a,t=[],_=new u((e=E(t,e,\"input\")).length/2),n=d(e),s=v(4);return t.push(n),t.push(_.address),t.push(_.hex_end_p),0!==r._sodium_hex2bin(_.address,_.length,n,e.length,0,0,s)&&b(t,\"invalid input\"),r.getValue(s,\"i32\")-n!==e.length&&b(t,\"incomplete input\"),a=_.to_Uint8Array(),g(t),a},e.from_string=n,e.increment=function(e){if(!(e instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be incremented\");for(var a=256,r=0,t=e.length;r>=8,a+=e[r],e[r]=255&a},e.is_zero=function(e){if(!(e instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be checked\");for(var a=0,r=0,t=e.length;r 0\");var t,_=[],n=v(4),s=1,c=0,o=0|e.length,h=new u(o+a);_.push(n),_.push(h.address);for(var p=h.address,y=h.address+o+a;p>>48|o>>>32|o>>>16|o))-1>>16);return 0!==r._sodium_pad(n,h.address,e.length,a,h.length)&&b(_,\"internal error\"),h.length=r.getValue(n,\"i32\"),t=h.to_Uint8Array(),g(_),t},e.unpad=function(e,a){if(!(e instanceof Uint8Array))throw new TypeError(\"buffer must be a Uint8Array\");if((a|=0)<=0)throw new Error(\"block size must be > 0\");var t=[],_=d(e),n=v(4);return t.push(_),t.push(n),0!==r._sodium_unpad(n,_,e.length,a)&&b(t,\"unsupported/invalid padding\"),e=(e=new Uint8Array(e)).subarray(0,r.getValue(n,\"i32\")),g(t),e},e.ready=_,e.symbols=function(){return Object.keys(e).sort()},e.to_base64=p,e.to_hex=c,e.to_string=s,e}var r=\"object\"==typeof e.sodium&&\"function\"==typeof e.sodium.onload?e.sodium.onload:null;\"function\"==typeof define&&define.amd?define([\"exports\",\"libsodium-sumo\"],a):\"object\"==typeof exports&&\"string\"!=typeof exports.nodeName?a(exports,require(\"libsodium-sumo\")):e.sodium=a(e.commonJsStrict={},e.libsodium),r&&e.sodium.ready.then((function(){r(e.sodium)}))}(this);\n","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","'use strict';\n\n/** @type {import('./isNaN')} */\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\n","'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n","'use strict';\n\nvar $isNaN = require('./isNaN');\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n\tif ($isNaN(number) || number === 0) {\n\t\treturn number;\n\t}\n\treturn number < 0 ? -1 : +1;\n};\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar objectKeys = require('object-keys');\nvar hasSymbols = require('has-symbols/shams')();\nvar callBound = require('call-bound');\nvar $Object = require('es-object-atoms');\nvar $push = callBound('Array.prototype.push');\nvar $propIsEnumerable = callBound('Object.prototype.propertyIsEnumerable');\nvar originalGetSymbols = hasSymbols ? $Object.getOwnPropertySymbols : null;\n\n// eslint-disable-next-line no-unused-vars\nmodule.exports = function assign(target, source1) {\n\tif (target == null) { throw new TypeError('target must be an object'); }\n\tvar to = $Object(target); // step 1\n\tif (arguments.length === 1) {\n\t\treturn to; // step 2\n\t}\n\tfor (var s = 1; s < arguments.length; ++s) {\n\t\tvar from = $Object(arguments[s]); // step 3.a.i\n\n\t\t// step 3.a.ii:\n\t\tvar keys = objectKeys(from);\n\t\tvar getSymbols = hasSymbols && ($Object.getOwnPropertySymbols || originalGetSymbols);\n\t\tif (getSymbols) {\n\t\t\tvar syms = getSymbols(from);\n\t\t\tfor (var j = 0; j < syms.length; ++j) {\n\t\t\t\tvar key = syms[j];\n\t\t\t\tif ($propIsEnumerable(from, key)) {\n\t\t\t\t\t$push(keys, key);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// step 3.a.iii:\n\t\tfor (var i = 0; i < keys.length; ++i) {\n\t\t\tvar nextKey = keys[i];\n\t\t\tif ($propIsEnumerable(from, nextKey)) { // step 3.a.iii.2\n\t\t\t\tvar propValue = from[nextKey]; // step 3.a.iii.2.a\n\t\t\t\tto[nextKey] = propValue; // step 3.a.iii.2.b\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to; // step 4\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar lacksProperEnumerationOrder = function () {\n\tif (!Object.assign) {\n\t\treturn false;\n\t}\n\t/*\n\t * v8, specifically in node 4.x, has a bug with incorrect property enumeration order\n\t * note: this does not detect the bug unless there's 20 characters\n\t */\n\tvar str = 'abcdefghijklmnopqrst';\n\tvar letters = str.split('');\n\tvar map = {};\n\tfor (var i = 0; i < letters.length; ++i) {\n\t\tmap[letters[i]] = letters[i];\n\t}\n\tvar obj = Object.assign({}, map);\n\tvar actual = '';\n\tfor (var k in obj) {\n\t\tactual += k;\n\t}\n\treturn str !== actual;\n};\n\nvar assignHasPendingExceptions = function () {\n\tif (!Object.assign || !Object.preventExtensions) {\n\t\treturn false;\n\t}\n\t/*\n\t * Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t * which is 72% slower than our shim, and Firefox 40's native implementation.\n\t */\n\tvar thrower = Object.preventExtensions({ 1: 2 });\n\ttry {\n\t\tObject.assign(thrower, 'xy');\n\t} catch (e) {\n\t\treturn thrower[1] === 'y';\n\t}\n\treturn false;\n};\n\nmodule.exports = function getPolyfill() {\n\tif (!Object.assign) {\n\t\treturn implementation;\n\t}\n\tif (lacksProperEnumerationOrder()) {\n\t\treturn implementation;\n\t}\n\tif (assignHasPendingExceptions()) {\n\t\treturn implementation;\n\t}\n\treturn Object.assign;\n};\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n\n'use strict';\n\nvar asn1 = require('asn1.js');\n\nexports.certificate = require('./certificate');\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('modulus')['int'](),\n\t\tthis.key('publicExponent')['int'](),\n\t\tthis.key('privateExponent')['int'](),\n\t\tthis.key('prime1')['int'](),\n\t\tthis.key('prime2')['int'](),\n\t\tthis.key('exponent1')['int'](),\n\t\tthis.key('exponent2')['int'](),\n\t\tthis.key('coefficient')['int']()\n\t);\n});\nexports.RSAPrivateKey = RSAPrivateKey;\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('modulus')['int'](),\n\t\tthis.key('publicExponent')['int']()\n\t);\n});\nexports.RSAPublicKey = RSAPublicKey;\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').objid(),\n\t\tthis.key('none').null_().optional(),\n\t\tthis.key('curve').objid().optional(),\n\t\tthis.key('params').seq().obj(\n\t\t\tthis.key('p')['int'](),\n\t\t\tthis.key('q')['int'](),\n\t\t\tthis.key('g')['int']()\n\t\t).optional()\n\t);\n});\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPublicKey').bitstr()\n\t);\n});\nexports.PublicKey = PublicKey;\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPrivateKey').octstr()\n\t);\n});\nexports.PrivateKey = PrivateKeyInfo;\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').seq().obj(\n\t\t\tthis.key('id').objid(),\n\t\t\tthis.key('decrypt').seq().obj(\n\t\t\t\tthis.key('kde').seq().obj(\n\t\t\t\t\tthis.key('id').objid(),\n\t\t\t\t\tthis.key('kdeparams').seq().obj(\n\t\t\t\t\t\tthis.key('salt').octstr(),\n\t\t\t\t\t\tthis.key('iters')['int']()\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\tthis.key('cipher').seq().obj(\n\t\t\t\t\tthis.key('algo').objid(),\n\t\t\t\t\tthis.key('iv').octstr()\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t\tthis.key('subjectPrivateKey').octstr()\n\t);\n});\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo;\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('p')['int'](),\n\t\tthis.key('q')['int'](),\n\t\tthis.key('g')['int'](),\n\t\tthis.key('pub_key')['int'](),\n\t\tthis.key('priv_key')['int']()\n\t);\n});\nexports.DSAPrivateKey = DSAPrivateKey;\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n\tthis['int']();\n});\n\nvar ECParameters = asn1.define('ECParameters', function () {\n\tthis.choice({\n\t\tnamedCurve: this.objid()\n\t});\n});\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('privateKey').octstr(),\n\t\tthis.key('parameters').optional().explicit(0).use(ECParameters),\n\t\tthis.key('publicKey').optional().explicit(1).bitstr()\n\t);\n});\nexports.ECPrivateKey = ECPrivateKey;\n\nexports.signature = asn1.define('signature', function () {\n\tthis.seq().obj(\n\t\tthis.key('r')['int'](),\n\t\tthis.key('s')['int']()\n\t);\n});\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict';\n\nvar asn = require('asn1.js');\n\nvar Time = asn.define('Time', function () {\n\tthis.choice({\n\t\tutcTime: this.utctime(),\n\t\tgeneralTime: this.gentime()\n\t});\n});\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n\tthis.seq().obj(\n\t\tthis.key('type').objid(),\n\t\tthis.key('value').any()\n\t);\n});\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').objid(),\n\t\tthis.key('parameters').optional(),\n\t\tthis.key('curve').objid().optional()\n\t);\n});\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPublicKey').bitstr()\n\t);\n});\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n\tthis.setof(AttributeTypeValue);\n});\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n\tthis.seqof(RelativeDistinguishedName);\n});\n\nvar Name = asn.define('Name', function () {\n\tthis.choice({\n\t\trdnSequence: this.use(RDNSequence)\n\t});\n});\n\nvar Validity = asn.define('Validity', function () {\n\tthis.seq().obj(\n\t\tthis.key('notBefore').use(Time),\n\t\tthis.key('notAfter').use(Time)\n\t);\n});\n\nvar Extension = asn.define('Extension', function () {\n\tthis.seq().obj(\n\t\tthis.key('extnID').objid(),\n\t\tthis.key('critical').bool().def(false),\n\t\tthis.key('extnValue').octstr()\n\t);\n});\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n\tthis.seq().obj(\n\t\tthis.key('version').explicit(0)['int']().optional(),\n\t\tthis.key('serialNumber')['int'](),\n\t\tthis.key('signature').use(AlgorithmIdentifier),\n\t\tthis.key('issuer').use(Name),\n\t\tthis.key('validity').use(Validity),\n\t\tthis.key('subject').use(Name),\n\t\tthis.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n\t\tthis.key('issuerUniqueID').implicit(1).bitstr().optional(),\n\t\tthis.key('subjectUniqueID').implicit(2).bitstr().optional(),\n\t\tthis.key('extensions').explicit(3).seqof(Extension).optional()\n\t);\n});\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n\tthis.seq().obj(\n\t\tthis.key('tbsCertificate').use(TBSCertificate),\n\t\tthis.key('signatureAlgorithm').use(AlgorithmIdentifier),\n\t\tthis.key('signatureValue').bitstr()\n\t);\n});\n\nmodule.exports = X509Certificate;\n","'use strict';\n\n// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m;\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m;\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m;\nvar evp = require('evp_bytestokey');\nvar ciphers = require('browserify-aes');\nvar Buffer = require('safe-buffer').Buffer;\nmodule.exports = function (okey, password) {\n\tvar key = okey.toString();\n\tvar match = key.match(findProc);\n\tvar decrypted;\n\tif (!match) {\n\t\tvar match2 = key.match(fullRegex);\n\t\tdecrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64');\n\t} else {\n\t\tvar suite = 'aes' + match[1];\n\t\tvar iv = Buffer.from(match[2], 'hex');\n\t\tvar cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64');\n\t\tvar cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key;\n\t\tvar out = [];\n\t\tvar cipher = ciphers.createDecipheriv(suite, cipherKey, iv);\n\t\tout.push(cipher.update(cipherText));\n\t\tout.push(cipher['final']());\n\t\tdecrypted = Buffer.concat(out);\n\t}\n\tvar tag = key.match(startRegex)[1];\n\treturn {\n\t\ttag: tag,\n\t\tdata: decrypted\n\t};\n};\n","'use strict';\n\nvar asn1 = require('./asn1');\nvar aesid = require('./aesid.json');\nvar fixProc = require('./fixProc');\nvar ciphers = require('browserify-aes');\nvar compat = require('pbkdf2');\nvar Buffer = require('safe-buffer').Buffer;\n\nfunction decrypt(data, password) {\n\tvar salt = data.algorithm.decrypt.kde.kdeparams.salt;\n\tvar iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10);\n\tvar algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')];\n\tvar iv = data.algorithm.decrypt.cipher.iv;\n\tvar cipherText = data.subjectPrivateKey;\n\tvar keylen = parseInt(algo.split('-')[1], 10) / 8;\n\tvar key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1');\n\tvar cipher = ciphers.createDecipheriv(algo, key, iv);\n\tvar out = [];\n\tout.push(cipher.update(cipherText));\n\tout.push(cipher['final']());\n\treturn Buffer.concat(out);\n}\n\nfunction parseKeys(buffer) {\n\tvar password;\n\tif (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n\t\tpassword = buffer.passphrase;\n\t\tbuffer = buffer.key;\n\t}\n\tif (typeof buffer === 'string') {\n\t\tbuffer = Buffer.from(buffer);\n\t}\n\n\tvar stripped = fixProc(buffer, password);\n\n\tvar type = stripped.tag;\n\tvar data = stripped.data;\n\tvar subtype, ndata;\n\tswitch (type) {\n\t\tcase 'CERTIFICATE':\n\t\t\tndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo;\n\t\t\t// falls through\n\t\tcase 'PUBLIC KEY':\n\t\t\tif (!ndata) {\n\t\t\t\tndata = asn1.PublicKey.decode(data, 'der');\n\t\t\t}\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\tndata.subjectPrivateKey = ndata.subjectPublicKey;\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'ec',\n\t\t\t\t\t\tdata: ndata\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tdata: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'ENCRYPTED PRIVATE KEY':\n\t\t\tdata = asn1.EncryptedPrivateKey.decode(data, 'der');\n\t\t\tdata = decrypt(data, password);\n\t\t\t// falls through\n\t\tcase 'PRIVATE KEY':\n\t\t\tndata = asn1.PrivateKey.decode(data, 'der');\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcurve: ndata.algorithm.curve,\n\t\t\t\t\t\tprivateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tparams: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'RSA PUBLIC KEY':\n\t\t\treturn asn1.RSAPublicKey.decode(data, 'der');\n\t\tcase 'RSA PRIVATE KEY':\n\t\t\treturn asn1.RSAPrivateKey.decode(data, 'der');\n\t\tcase 'DSA PRIVATE KEY':\n\t\t\treturn {\n\t\t\t\ttype: 'dsa',\n\t\t\t\tparams: asn1.DSAPrivateKey.decode(data, 'der')\n\t\t\t};\n\t\tcase 'EC PRIVATE KEY':\n\t\t\tdata = asn1.ECPrivateKey.decode(data, 'der');\n\t\t\treturn {\n\t\t\t\tcurve: data.parameters.value,\n\t\t\t\tprivateKey: data.privateKey\n\t\t\t};\n\t\tdefault: throw new Error('unknown key type ' + type);\n\t}\n}\nparseKeys.signature = asn1.signature;\n\nmodule.exports = parseKeys;\n","'use strict';\n\nexports.pbkdf2 = require('./lib/async');\nexports.pbkdf2Sync = require('./lib/sync');\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar checkParameters = require('./precondition');\nvar defaultEncoding = require('./default-encoding');\nvar sync = require('./sync');\nvar toBuffer = require('./to-buffer');\n\nvar ZERO_BUF;\nvar subtle = global.crypto && global.crypto.subtle;\nvar toBrowser = {\n\tsha: 'SHA-1',\n\t'sha-1': 'SHA-1',\n\tsha1: 'SHA-1',\n\tsha256: 'SHA-256',\n\t'sha-256': 'SHA-256',\n\tsha384: 'SHA-384',\n\t'sha-384': 'SHA-384',\n\t'sha-512': 'SHA-512',\n\tsha512: 'SHA-512'\n};\nvar checks = [];\nvar nextTick;\nfunction getNextTick() {\n\tif (nextTick) {\n\t\treturn nextTick;\n\t}\n\tif (global.process && global.process.nextTick) {\n\t\tnextTick = global.process.nextTick;\n\t} else if (global.queueMicrotask) {\n\t\tnextTick = global.queueMicrotask;\n\t} else if (global.setImmediate) {\n\t\tnextTick = global.setImmediate;\n\t} else {\n\t\tnextTick = global.setTimeout;\n\t}\n\treturn nextTick;\n}\nfunction browserPbkdf2(password, salt, iterations, length, algo) {\n\treturn subtle.importKey('raw', password, { name: 'PBKDF2' }, false, ['deriveBits']).then(function (key) {\n\t\treturn subtle.deriveBits({\n\t\t\tname: 'PBKDF2',\n\t\t\tsalt: salt,\n\t\t\titerations: iterations,\n\t\t\thash: {\n\t\t\t\tname: algo\n\t\t\t}\n\t\t}, key, length << 3);\n\t}).then(function (res) {\n\t\treturn Buffer.from(res);\n\t});\n}\nfunction checkNative(algo) {\n\tif (global.process && !global.process.browser) {\n\t\treturn Promise.resolve(false);\n\t}\n\tif (!subtle || !subtle.importKey || !subtle.deriveBits) {\n\t\treturn Promise.resolve(false);\n\t}\n\tif (checks[algo] !== undefined) {\n\t\treturn checks[algo];\n\t}\n\tZERO_BUF = ZERO_BUF || Buffer.alloc(8);\n\tvar prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n\t\t.then(\n\t\t\tfunction () { return true; },\n\t\t\tfunction () { return false; }\n\t\t);\n\tchecks[algo] = prom;\n\treturn prom;\n}\n\nfunction resolvePromise(promise, callback) {\n\tpromise.then(function (out) {\n\t\tgetNextTick()(function () {\n\t\t\tcallback(null, out);\n\t\t});\n\t}, function (e) {\n\t\tgetNextTick()(function () {\n\t\t\tcallback(e);\n\t\t});\n\t});\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n\tif (typeof digest === 'function') {\n\t\tcallback = digest;\n\t\tdigest = undefined;\n\t}\n\n\tcheckParameters(iterations, keylen);\n\tpassword = toBuffer(password, defaultEncoding, 'Password');\n\tsalt = toBuffer(salt, defaultEncoding, 'Salt');\n\tif (typeof callback !== 'function') {\n\t\tthrow new Error('No callback provided to pbkdf2');\n\t}\n\n\tdigest = digest || 'sha1';\n\tvar algo = toBrowser[digest.toLowerCase()];\n\n\tif (!algo || typeof global.Promise !== 'function') {\n\t\tgetNextTick()(function () {\n\t\t\tvar out;\n\t\t\ttry {\n\t\t\t\tout = sync(password, salt, iterations, keylen, digest);\n\t\t\t} catch (e) {\n\t\t\t\tcallback(e);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcallback(null, out);\n\t\t});\n\t\treturn;\n\t}\n\n\tresolvePromise(checkNative(algo).then(function (resp) {\n\t\tif (resp) {\n\t\t\treturn browserPbkdf2(password, salt, iterations, keylen, algo);\n\t\t}\n\n\t\treturn sync(password, salt, iterations, keylen, digest);\n\t}), callback);\n};\n","'use strict';\n\nvar defaultEncoding;\n/* istanbul ignore next */\nif (global.process && global.process.browser) {\n\tdefaultEncoding = 'utf-8';\n} else if (global.process && global.process.version) {\n\tvar pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10);\n\n\tdefaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary';\n} else {\n\tdefaultEncoding = 'utf-8';\n}\nmodule.exports = defaultEncoding;\n","'use strict';\n\nvar $isFinite = isFinite;\nvar MAX_ALLOC = Math.pow(2, 30) - 1; // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n\tif (typeof iterations !== 'number') {\n\t\tthrow new TypeError('Iterations not a number');\n\t}\n\n\tif (iterations < 0 || !$isFinite(iterations)) {\n\t\tthrow new TypeError('Bad iterations');\n\t}\n\n\tif (typeof keylen !== 'number') {\n\t\tthrow new TypeError('Key length not a number');\n\t}\n\n\tif (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n\t\tthrow new TypeError('Bad key length');\n\t}\n};\n","'use strict';\n\nvar md5 = require('create-hash/md5');\nvar RIPEMD160 = require('ripemd160');\nvar sha = require('sha.js');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar checkParameters = require('./precondition');\nvar defaultEncoding = require('./default-encoding');\nvar toBuffer = require('./to-buffer');\n\nvar ZEROS = Buffer.alloc(128);\nvar sizes = {\n\t__proto__: null,\n\tmd5: 16,\n\tsha1: 20,\n\tsha224: 28,\n\tsha256: 32,\n\tsha384: 48,\n\tsha512: 64,\n\t'sha512-256': 32,\n\tripemd160: 20,\n\trmd160: 20\n};\n\nvar mapping = {\n\t__proto__: null,\n\t'sha-1': 'sha1',\n\t'sha-224': 'sha224',\n\t'sha-256': 'sha256',\n\t'sha-384': 'sha384',\n\t'sha-512': 'sha512',\n\t'ripemd-160': 'ripemd160'\n};\n\nfunction rmd160Func(data) {\n\treturn new RIPEMD160().update(data).digest();\n}\n\nfunction getDigest(alg) {\n\tfunction shaFunc(data) {\n\t\treturn sha(alg).update(data).digest();\n\t}\n\n\tif (alg === 'rmd160' || alg === 'ripemd160') {\n\t\treturn rmd160Func;\n\t}\n\tif (alg === 'md5') {\n\t\treturn md5;\n\t}\n\treturn shaFunc;\n}\n\nfunction Hmac(alg, key, saltLen) {\n\tvar hash = getDigest(alg);\n\tvar blocksize = alg === 'sha512' || alg === 'sha384' ? 128 : 64;\n\n\tif (key.length > blocksize) {\n\t\tkey = hash(key);\n\t} else if (key.length < blocksize) {\n\t\tkey = Buffer.concat([key, ZEROS], blocksize);\n\t}\n\n\tvar ipad = Buffer.allocUnsafe(blocksize + sizes[alg]);\n\tvar opad = Buffer.allocUnsafe(blocksize + sizes[alg]);\n\tfor (var i = 0; i < blocksize; i++) {\n\t\tipad[i] = key[i] ^ 0x36;\n\t\topad[i] = key[i] ^ 0x5C;\n\t}\n\n\tvar ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4);\n\tipad.copy(ipad1, 0, 0, blocksize);\n\tthis.ipad1 = ipad1;\n\tthis.ipad2 = ipad;\n\tthis.opad = opad;\n\tthis.alg = alg;\n\tthis.blocksize = blocksize;\n\tthis.hash = hash;\n\tthis.size = sizes[alg];\n}\n\nHmac.prototype.run = function (data, ipad) {\n\tdata.copy(ipad, this.blocksize);\n\tvar h = this.hash(ipad);\n\th.copy(this.opad, this.blocksize);\n\treturn this.hash(this.opad);\n};\n\nfunction pbkdf2(password, salt, iterations, keylen, digest) {\n\tcheckParameters(iterations, keylen);\n\tpassword = toBuffer(password, defaultEncoding, 'Password');\n\tsalt = toBuffer(salt, defaultEncoding, 'Salt');\n\n\tvar lowerDigest = (digest || 'sha1').toLowerCase();\n\tvar mappedDigest = mapping[lowerDigest] || lowerDigest;\n\tvar size = sizes[mappedDigest];\n\tif (typeof size !== 'number' || !size) {\n\t\tthrow new TypeError('Digest algorithm not supported: ' + digest);\n\t}\n\n\tvar hmac = new Hmac(mappedDigest, password, salt.length);\n\n\tvar DK = Buffer.allocUnsafe(keylen);\n\tvar block1 = Buffer.allocUnsafe(salt.length + 4);\n\tsalt.copy(block1, 0, 0, salt.length);\n\n\tvar destPos = 0;\n\tvar hLen = size;\n\tvar l = Math.ceil(keylen / hLen);\n\n\tfor (var i = 1; i <= l; i++) {\n\t\tblock1.writeUInt32BE(i, salt.length);\n\n\t\tvar T = hmac.run(block1, hmac.ipad1);\n\t\tvar U = T;\n\n\t\tfor (var j = 1; j < iterations; j++) {\n\t\t\tU = hmac.run(U, hmac.ipad2);\n\t\t\tfor (var k = 0; k < hLen; k++) {\n\t\t\t\tT[k] ^= U[k];\n\t\t\t}\n\t\t}\n\n\t\tT.copy(DK, destPos);\n\t\tdestPos += hLen;\n\t}\n\n\treturn DK;\n}\n\nmodule.exports = pbkdf2;\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar toBuffer = require('to-buffer');\n\nvar useUint8Array = typeof Uint8Array !== 'undefined';\nvar useArrayBuffer = useUint8Array && typeof ArrayBuffer !== 'undefined';\nvar isView = useArrayBuffer && ArrayBuffer.isView;\n\nmodule.exports = function (thing, encoding, name) {\n\tif (\n\t\ttypeof thing === 'string'\n\t\t|| Buffer.isBuffer(thing)\n\t\t|| (useUint8Array && thing instanceof Uint8Array)\n\t\t|| (isView && isView(thing))\n\t) {\n\t\treturn toBuffer(thing, encoding);\n\t}\n\tthrow new TypeError(name + ' must be a string, a Buffer, a Uint8Array, or a DataView');\n};\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = [\n\t'Float16Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int8Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'BigInt64Array',\n\t'BigUint64Array'\n];\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('events').EventEmitter;\n","'use strict';\n\nvar Buffer = require('buffer').Buffer;\nvar inherits = require('inherits');\nvar HashBase = require('hash-base');\n\nvar ARRAY16 = new Array(16);\n\nvar zl = [\n\t0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n\t7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n\t3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n\t1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n\t4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar zr = [\n\t5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n\t6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n\t15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n\t8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n\t12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar sl = [\n\t11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n\t7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n\t11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n\t11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n\t9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sr = [\n\t8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n\t9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n\t9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n\t15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n\t8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e];\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000];\n\nfunction rotl(x, n) {\n\treturn (x << n) | (x >>> (32 - n));\n}\n\nfunction fn1(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0;\n}\n\nfunction fn2(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + ((b & c) | (~b & d)) + m + k) | 0, s) + e) | 0;\n}\n\nfunction fn3(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + ((b | ~c) ^ d) + m + k) | 0, s) + e) | 0;\n}\n\nfunction fn4(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + ((b & d) | (c & ~d)) + m + k) | 0, s) + e) | 0;\n}\n\nfunction fn5(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + (b ^ (c | ~d)) + m + k) | 0, s) + e) | 0;\n}\n\nfunction RIPEMD160() {\n\tHashBase.call(this, 64);\n\n\t// state\n\tthis._a = 0x67452301;\n\tthis._b = 0xefcdab89;\n\tthis._c = 0x98badcfe;\n\tthis._d = 0x10325476;\n\tthis._e = 0xc3d2e1f0;\n}\n\ninherits(RIPEMD160, HashBase);\n\nRIPEMD160.prototype._update = function () {\n\tvar words = ARRAY16;\n\tfor (var j = 0; j < 16; ++j) {\n\t\twords[j] = this._block.readInt32LE(j * 4);\n\t}\n\n\tvar al = this._a | 0;\n\tvar bl = this._b | 0;\n\tvar cl = this._c | 0;\n\tvar dl = this._d | 0;\n\tvar el = this._e | 0;\n\n\tvar ar = this._a | 0;\n\tvar br = this._b | 0;\n\tvar cr = this._c | 0;\n\tvar dr = this._d | 0;\n\tvar er = this._e | 0;\n\n\t// computation\n\tfor (var i = 0; i < 80; i += 1) {\n\t\tvar tl;\n\t\tvar tr;\n\t\tif (i < 16) {\n\t\t\ttl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i]);\n\t\t\ttr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i]);\n\t\t} else if (i < 32) {\n\t\t\ttl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i]);\n\t\t\ttr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i]);\n\t\t} else if (i < 48) {\n\t\t\ttl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i]);\n\t\t\ttr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i]);\n\t\t} else if (i < 64) {\n\t\t\ttl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i]);\n\t\t\ttr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i]);\n\t\t} else { // if (i<80) {\n\t\t\ttl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i]);\n\t\t\ttr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i]);\n\t\t}\n\n\t\tal = el;\n\t\tel = dl;\n\t\tdl = rotl(cl, 10);\n\t\tcl = bl;\n\t\tbl = tl;\n\n\t\tar = er;\n\t\ter = dr;\n\t\tdr = rotl(cr, 10);\n\t\tcr = br;\n\t\tbr = tr;\n\t}\n\n\t// update state\n\tvar t = (this._b + cl + dr) | 0;\n\tthis._b = (this._c + dl + er) | 0;\n\tthis._c = (this._d + el + ar) | 0;\n\tthis._d = (this._e + al + br) | 0;\n\tthis._e = (this._a + bl + cr) | 0;\n\tthis._a = t;\n};\n\nRIPEMD160.prototype._digest = function () {\n\t// create padding and handle blocks\n\tthis._block[this._blockOffset] = 0x80;\n\tthis._blockOffset += 1;\n\tif (this._blockOffset > 56) {\n\t\tthis._block.fill(0, this._blockOffset, 64);\n\t\tthis._update();\n\t\tthis._blockOffset = 0;\n\t}\n\n\tthis._block.fill(0, this._blockOffset, 56);\n\tthis._block.writeUInt32LE(this._length[0], 56);\n\tthis._block.writeUInt32LE(this._length[1], 60);\n\tthis._update();\n\n\t// produce result\n\tvar buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20); // eslint-disable-line no-buffer-constructor\n\tbuffer.writeInt32LE(this._a, 0);\n\tbuffer.writeInt32LE(this._b, 4);\n\tbuffer.writeInt32LE(this._c, 8);\n\tbuffer.writeInt32LE(this._d, 12);\n\tbuffer.writeInt32LE(this._e, 16);\n\treturn buffer;\n};\n\nmodule.exports = RIPEMD160;\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar toBuffer = require('./to-buffer');\nvar Transform = require('readable-stream').Transform;\nvar inherits = require('inherits');\n\nfunction HashBase(blockSize) {\n\tTransform.call(this);\n\n\tthis._block = Buffer.allocUnsafe(blockSize);\n\tthis._blockSize = blockSize;\n\tthis._blockOffset = 0;\n\tthis._length = [0, 0, 0, 0];\n\n\tthis._finalized = false;\n}\n\ninherits(HashBase, Transform);\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n\tvar error = null;\n\ttry {\n\t\tthis.update(chunk, encoding);\n\t} catch (err) {\n\t\terror = err;\n\t}\n\n\tcallback(error);\n};\n\nHashBase.prototype._flush = function (callback) {\n\tvar error = null;\n\ttry {\n\t\tthis.push(this.digest());\n\t} catch (err) {\n\t\terror = err;\n\t}\n\n\tcallback(error);\n};\n\nHashBase.prototype.update = function (data, encoding) {\n\tif (this._finalized) {\n\t\tthrow new Error('Digest already called');\n\t}\n\n\tvar dataBuffer = toBuffer(data, encoding); // asserts correct input type\n\n\t// consume data\n\tvar block = this._block;\n\tvar offset = 0;\n\twhile (this._blockOffset + dataBuffer.length - offset >= this._blockSize) {\n\t\tfor (var i = this._blockOffset; i < this._blockSize;) {\n\t\t\tblock[i] = dataBuffer[offset];\n\t\t\ti += 1;\n\t\t\toffset += 1;\n\t\t}\n\t\tthis._update();\n\t\tthis._blockOffset = 0;\n\t}\n\twhile (offset < dataBuffer.length) {\n\t\tblock[this._blockOffset] = dataBuffer[offset];\n\t\tthis._blockOffset += 1;\n\t\toffset += 1;\n\t}\n\n\t// update length\n\tfor (var j = 0, carry = dataBuffer.length * 8; carry > 0; ++j) {\n\t\tthis._length[j] += carry;\n\t\tcarry = (this._length[j] / 0x0100000000) | 0;\n\t\tif (carry > 0) {\n\t\t\tthis._length[j] -= 0x0100000000 * carry;\n\t\t}\n\t}\n\n\treturn this;\n};\n\nHashBase.prototype._update = function () {\n\tthrow new Error('_update is not implemented');\n};\n\nHashBase.prototype.digest = function (encoding) {\n\tif (this._finalized) {\n\t\tthrow new Error('Digest already called');\n\t}\n\tthis._finalized = true;\n\n\tvar digest = this._digest();\n\tif (encoding !== undefined) {\n\t\tdigest = digest.toString(encoding);\n\t}\n\n\t// reset state\n\tthis._block.fill(0);\n\tthis._blockOffset = 0;\n\tfor (var i = 0; i < 4; ++i) {\n\t\tthis._length[i] = 0;\n\t}\n\n\treturn digest;\n};\n\nHashBase.prototype._digest = function () {\n\tthrow new Error('_digest is not implemented');\n};\n\nmodule.exports = HashBase;\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar toBuffer = require('to-buffer');\n\nvar useUint8Array = typeof Uint8Array !== 'undefined';\nvar useArrayBuffer = useUint8Array && typeof ArrayBuffer !== 'undefined';\nvar isView = useArrayBuffer && ArrayBuffer.isView;\n\nmodule.exports = function (thing, encoding) {\n\tif (\n\t\ttypeof thing === 'string'\n || Buffer.isBuffer(thing)\n || (useUint8Array && thing instanceof Uint8Array)\n || (isView && isView(thing))\n\t) {\n\t\treturn toBuffer(thing, encoding);\n\t}\n\tthrow new TypeError('The \"data\" argument must be a string, a Buffer, a Uint8Array, or a DataView');\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, { hasUnpiped: false });\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n pna.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n pna.nextTick(emitErrorNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, _this, err);\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","module.exports = require('events').EventEmitter;\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict';\n\nvar callBound = require('call-bound');\nvar isRegex = require('is-regex');\n\nvar $exec = callBound('RegExp.prototype.exec');\nvar $TypeError = require('es-errors/type');\n\n/** @type {import('.')} */\nmodule.exports = function regexTester(regex) {\n\tif (!isRegex(regex)) {\n\t\tthrow new $TypeError('`regex` must be a RegExp');\n\t}\n\treturn function test(s) {\n\t\treturn $exec(regex, s) !== null;\n\t};\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar toBuffer = require('to-buffer');\n\n// prototype class for hash functions\nfunction Hash(blockSize, finalSize) {\n\tthis._block = Buffer.alloc(blockSize);\n\tthis._finalSize = finalSize;\n\tthis._blockSize = blockSize;\n\tthis._len = 0;\n}\n\nHash.prototype.update = function (data, enc) {\n\t/* eslint no-param-reassign: 0 */\n\tdata = toBuffer(data, enc || 'utf8');\n\n\tvar block = this._block;\n\tvar blockSize = this._blockSize;\n\tvar length = data.length;\n\tvar accum = this._len;\n\n\tfor (var offset = 0; offset < length;) {\n\t\tvar assigned = accum % blockSize;\n\t\tvar remainder = Math.min(length - offset, blockSize - assigned);\n\n\t\tfor (var i = 0; i < remainder; i++) {\n\t\t\tblock[assigned + i] = data[offset + i];\n\t\t}\n\n\t\taccum += remainder;\n\t\toffset += remainder;\n\n\t\tif ((accum % blockSize) === 0) {\n\t\t\tthis._update(block);\n\t\t}\n\t}\n\n\tthis._len += length;\n\treturn this;\n};\n\nHash.prototype.digest = function (enc) {\n\tvar rem = this._len % this._blockSize;\n\n\tthis._block[rem] = 0x80;\n\n\t/*\n\t * zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n\t * non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n\t */\n\tthis._block.fill(0, rem + 1);\n\n\tif (rem >= this._finalSize) {\n\t\tthis._update(this._block);\n\t\tthis._block.fill(0);\n\t}\n\n\tvar bits = this._len * 8;\n\n\t// uint32\n\tif (bits <= 0xffffffff) {\n\t\tthis._block.writeUInt32BE(bits, this._blockSize - 4);\n\n\t\t// uint64\n\t} else {\n\t\tvar lowBits = (bits & 0xffffffff) >>> 0;\n\t\tvar highBits = (bits - lowBits) / 0x100000000;\n\n\t\tthis._block.writeUInt32BE(highBits, this._blockSize - 8);\n\t\tthis._block.writeUInt32BE(lowBits, this._blockSize - 4);\n\t}\n\n\tthis._update(this._block);\n\tvar hash = this._hash();\n\n\treturn enc ? hash.toString(enc) : hash;\n};\n\nHash.prototype._update = function () {\n\tthrow new Error('_update must be implemented by subclass');\n};\n\nmodule.exports = Hash;\n","'use strict';\n\nmodule.exports = function SHA(algorithm) {\n\tvar alg = algorithm.toLowerCase();\n\n\tvar Algorithm = module.exports[alg];\n\tif (!Algorithm) {\n\t\tthrow new Error(alg + ' is not supported (we accept pull requests)');\n\t}\n\n\treturn new Algorithm();\n};\n\nmodule.exports.sha = require('./sha');\nmodule.exports.sha1 = require('./sha1');\nmodule.exports.sha224 = require('./sha224');\nmodule.exports.sha256 = require('./sha256');\nmodule.exports.sha384 = require('./sha384');\nmodule.exports.sha512 = require('./sha512');\n","'use strict';\n\n/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar K = [\n\t0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n];\n\nvar W = new Array(80);\n\nfunction Sha() {\n\tthis.init();\n\tthis._w = W;\n\n\tHash.call(this, 64, 56);\n}\n\ninherits(Sha, Hash);\n\nSha.prototype.init = function () {\n\tthis._a = 0x67452301;\n\tthis._b = 0xefcdab89;\n\tthis._c = 0x98badcfe;\n\tthis._d = 0x10325476;\n\tthis._e = 0xc3d2e1f0;\n\n\treturn this;\n};\n\nfunction rotl5(num) {\n\treturn (num << 5) | (num >>> 27);\n}\n\nfunction rotl30(num) {\n\treturn (num << 30) | (num >>> 2);\n}\n\nfunction ft(s, b, c, d) {\n\tif (s === 0) {\n\t\treturn (b & c) | (~b & d);\n\t}\n\tif (s === 2) {\n\t\treturn (b & c) | (b & d) | (c & d);\n\t}\n\treturn b ^ c ^ d;\n}\n\nSha.prototype._update = function (M) {\n\tvar w = this._w;\n\n\tvar a = this._a | 0;\n\tvar b = this._b | 0;\n\tvar c = this._c | 0;\n\tvar d = this._d | 0;\n\tvar e = this._e | 0;\n\n\tfor (var i = 0; i < 16; ++i) {\n\t\tw[i] = M.readInt32BE(i * 4);\n\t}\n\tfor (; i < 80; ++i) {\n\t\tw[i] = w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16];\n\t}\n\n\tfor (var j = 0; j < 80; ++j) {\n\t\tvar s = ~~(j / 20);\n\t\tvar t = (rotl5(a) + ft(s, b, c, d) + e + w[j] + K[s]) | 0;\n\n\t\te = d;\n\t\td = c;\n\t\tc = rotl30(b);\n\t\tb = a;\n\t\ta = t;\n\t}\n\n\tthis._a = (a + this._a) | 0;\n\tthis._b = (b + this._b) | 0;\n\tthis._c = (c + this._c) | 0;\n\tthis._d = (d + this._d) | 0;\n\tthis._e = (e + this._e) | 0;\n};\n\nSha.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(20);\n\n\tH.writeInt32BE(this._a | 0, 0);\n\tH.writeInt32BE(this._b | 0, 4);\n\tH.writeInt32BE(this._c | 0, 8);\n\tH.writeInt32BE(this._d | 0, 12);\n\tH.writeInt32BE(this._e | 0, 16);\n\n\treturn H;\n};\n\nmodule.exports = Sha;\n","'use strict';\n\n/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar K = [\n\t0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n];\n\nvar W = new Array(80);\n\nfunction Sha1() {\n\tthis.init();\n\tthis._w = W;\n\n\tHash.call(this, 64, 56);\n}\n\ninherits(Sha1, Hash);\n\nSha1.prototype.init = function () {\n\tthis._a = 0x67452301;\n\tthis._b = 0xefcdab89;\n\tthis._c = 0x98badcfe;\n\tthis._d = 0x10325476;\n\tthis._e = 0xc3d2e1f0;\n\n\treturn this;\n};\n\nfunction rotl1(num) {\n\treturn (num << 1) | (num >>> 31);\n}\n\nfunction rotl5(num) {\n\treturn (num << 5) | (num >>> 27);\n}\n\nfunction rotl30(num) {\n\treturn (num << 30) | (num >>> 2);\n}\n\nfunction ft(s, b, c, d) {\n\tif (s === 0) {\n\t\treturn (b & c) | (~b & d);\n\t}\n\tif (s === 2) {\n\t\treturn (b & c) | (b & d) | (c & d);\n\t}\n\treturn b ^ c ^ d;\n}\n\nSha1.prototype._update = function (M) {\n\tvar w = this._w;\n\n\tvar a = this._a | 0;\n\tvar b = this._b | 0;\n\tvar c = this._c | 0;\n\tvar d = this._d | 0;\n\tvar e = this._e | 0;\n\n\tfor (var i = 0; i < 16; ++i) {\n\t\tw[i] = M.readInt32BE(i * 4);\n\t}\n\tfor (; i < 80; ++i) {\n\t\tw[i] = rotl1(w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16]);\n\t}\n\n\tfor (var j = 0; j < 80; ++j) {\n\t\tvar s = ~~(j / 20);\n\t\tvar t = (rotl5(a) + ft(s, b, c, d) + e + w[j] + K[s]) | 0;\n\n\t\te = d;\n\t\td = c;\n\t\tc = rotl30(b);\n\t\tb = a;\n\t\ta = t;\n\t}\n\n\tthis._a = (a + this._a) | 0;\n\tthis._b = (b + this._b) | 0;\n\tthis._c = (c + this._c) | 0;\n\tthis._d = (d + this._d) | 0;\n\tthis._e = (e + this._e) | 0;\n};\n\nSha1.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(20);\n\n\tH.writeInt32BE(this._a | 0, 0);\n\tH.writeInt32BE(this._b | 0, 4);\n\tH.writeInt32BE(this._c | 0, 8);\n\tH.writeInt32BE(this._d | 0, 12);\n\tH.writeInt32BE(this._e | 0, 16);\n\n\treturn H;\n};\n\nmodule.exports = Sha1;\n","'use strict';\n\n/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits');\nvar Sha256 = require('./sha256');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar W = new Array(64);\n\nfunction Sha224() {\n\tthis.init();\n\n\tthis._w = W; // new Array(64)\n\n\tHash.call(this, 64, 56);\n}\n\ninherits(Sha224, Sha256);\n\nSha224.prototype.init = function () {\n\tthis._a = 0xc1059ed8;\n\tthis._b = 0x367cd507;\n\tthis._c = 0x3070dd17;\n\tthis._d = 0xf70e5939;\n\tthis._e = 0xffc00b31;\n\tthis._f = 0x68581511;\n\tthis._g = 0x64f98fa7;\n\tthis._h = 0xbefa4fa4;\n\n\treturn this;\n};\n\nSha224.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(28);\n\n\tH.writeInt32BE(this._a, 0);\n\tH.writeInt32BE(this._b, 4);\n\tH.writeInt32BE(this._c, 8);\n\tH.writeInt32BE(this._d, 12);\n\tH.writeInt32BE(this._e, 16);\n\tH.writeInt32BE(this._f, 20);\n\tH.writeInt32BE(this._g, 24);\n\n\treturn H;\n};\n\nmodule.exports = Sha224;\n","'use strict';\n\n/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar K = [\n\t0x428A2F98,\n\t0x71374491,\n\t0xB5C0FBCF,\n\t0xE9B5DBA5,\n\t0x3956C25B,\n\t0x59F111F1,\n\t0x923F82A4,\n\t0xAB1C5ED5,\n\t0xD807AA98,\n\t0x12835B01,\n\t0x243185BE,\n\t0x550C7DC3,\n\t0x72BE5D74,\n\t0x80DEB1FE,\n\t0x9BDC06A7,\n\t0xC19BF174,\n\t0xE49B69C1,\n\t0xEFBE4786,\n\t0x0FC19DC6,\n\t0x240CA1CC,\n\t0x2DE92C6F,\n\t0x4A7484AA,\n\t0x5CB0A9DC,\n\t0x76F988DA,\n\t0x983E5152,\n\t0xA831C66D,\n\t0xB00327C8,\n\t0xBF597FC7,\n\t0xC6E00BF3,\n\t0xD5A79147,\n\t0x06CA6351,\n\t0x14292967,\n\t0x27B70A85,\n\t0x2E1B2138,\n\t0x4D2C6DFC,\n\t0x53380D13,\n\t0x650A7354,\n\t0x766A0ABB,\n\t0x81C2C92E,\n\t0x92722C85,\n\t0xA2BFE8A1,\n\t0xA81A664B,\n\t0xC24B8B70,\n\t0xC76C51A3,\n\t0xD192E819,\n\t0xD6990624,\n\t0xF40E3585,\n\t0x106AA070,\n\t0x19A4C116,\n\t0x1E376C08,\n\t0x2748774C,\n\t0x34B0BCB5,\n\t0x391C0CB3,\n\t0x4ED8AA4A,\n\t0x5B9CCA4F,\n\t0x682E6FF3,\n\t0x748F82EE,\n\t0x78A5636F,\n\t0x84C87814,\n\t0x8CC70208,\n\t0x90BEFFFA,\n\t0xA4506CEB,\n\t0xBEF9A3F7,\n\t0xC67178F2\n];\n\nvar W = new Array(64);\n\nfunction Sha256() {\n\tthis.init();\n\n\tthis._w = W; // new Array(64)\n\n\tHash.call(this, 64, 56);\n}\n\ninherits(Sha256, Hash);\n\nSha256.prototype.init = function () {\n\tthis._a = 0x6a09e667;\n\tthis._b = 0xbb67ae85;\n\tthis._c = 0x3c6ef372;\n\tthis._d = 0xa54ff53a;\n\tthis._e = 0x510e527f;\n\tthis._f = 0x9b05688c;\n\tthis._g = 0x1f83d9ab;\n\tthis._h = 0x5be0cd19;\n\n\treturn this;\n};\n\nfunction ch(x, y, z) {\n\treturn z ^ (x & (y ^ z));\n}\n\nfunction maj(x, y, z) {\n\treturn (x & y) | (z & (x | y));\n}\n\nfunction sigma0(x) {\n\treturn ((x >>> 2) | (x << 30)) ^ ((x >>> 13) | (x << 19)) ^ ((x >>> 22) | (x << 10));\n}\n\nfunction sigma1(x) {\n\treturn ((x >>> 6) | (x << 26)) ^ ((x >>> 11) | (x << 21)) ^ ((x >>> 25) | (x << 7));\n}\n\nfunction gamma0(x) {\n\treturn ((x >>> 7) | (x << 25)) ^ ((x >>> 18) | (x << 14)) ^ (x >>> 3);\n}\n\nfunction gamma1(x) {\n\treturn ((x >>> 17) | (x << 15)) ^ ((x >>> 19) | (x << 13)) ^ (x >>> 10);\n}\n\nSha256.prototype._update = function (M) {\n\tvar w = this._w;\n\n\tvar a = this._a | 0;\n\tvar b = this._b | 0;\n\tvar c = this._c | 0;\n\tvar d = this._d | 0;\n\tvar e = this._e | 0;\n\tvar f = this._f | 0;\n\tvar g = this._g | 0;\n\tvar h = this._h | 0;\n\n\tfor (var i = 0; i < 16; ++i) {\n\t\tw[i] = M.readInt32BE(i * 4);\n\t}\n\tfor (; i < 64; ++i) {\n\t\tw[i] = (gamma1(w[i - 2]) + w[i - 7] + gamma0(w[i - 15]) + w[i - 16]) | 0;\n\t}\n\n\tfor (var j = 0; j < 64; ++j) {\n\t\tvar T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + w[j]) | 0;\n\t\tvar T2 = (sigma0(a) + maj(a, b, c)) | 0;\n\n\t\th = g;\n\t\tg = f;\n\t\tf = e;\n\t\te = (d + T1) | 0;\n\t\td = c;\n\t\tc = b;\n\t\tb = a;\n\t\ta = (T1 + T2) | 0;\n\t}\n\n\tthis._a = (a + this._a) | 0;\n\tthis._b = (b + this._b) | 0;\n\tthis._c = (c + this._c) | 0;\n\tthis._d = (d + this._d) | 0;\n\tthis._e = (e + this._e) | 0;\n\tthis._f = (f + this._f) | 0;\n\tthis._g = (g + this._g) | 0;\n\tthis._h = (h + this._h) | 0;\n};\n\nSha256.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(32);\n\n\tH.writeInt32BE(this._a, 0);\n\tH.writeInt32BE(this._b, 4);\n\tH.writeInt32BE(this._c, 8);\n\tH.writeInt32BE(this._d, 12);\n\tH.writeInt32BE(this._e, 16);\n\tH.writeInt32BE(this._f, 20);\n\tH.writeInt32BE(this._g, 24);\n\tH.writeInt32BE(this._h, 28);\n\n\treturn H;\n};\n\nmodule.exports = Sha256;\n","'use strict';\n\nvar inherits = require('inherits');\nvar SHA512 = require('./sha512');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar W = new Array(160);\n\nfunction Sha384() {\n\tthis.init();\n\tthis._w = W;\n\n\tHash.call(this, 128, 112);\n}\n\ninherits(Sha384, SHA512);\n\nSha384.prototype.init = function () {\n\tthis._ah = 0xcbbb9d5d;\n\tthis._bh = 0x629a292a;\n\tthis._ch = 0x9159015a;\n\tthis._dh = 0x152fecd8;\n\tthis._eh = 0x67332667;\n\tthis._fh = 0x8eb44a87;\n\tthis._gh = 0xdb0c2e0d;\n\tthis._hh = 0x47b5481d;\n\n\tthis._al = 0xc1059ed8;\n\tthis._bl = 0x367cd507;\n\tthis._cl = 0x3070dd17;\n\tthis._dl = 0xf70e5939;\n\tthis._el = 0xffc00b31;\n\tthis._fl = 0x68581511;\n\tthis._gl = 0x64f98fa7;\n\tthis._hl = 0xbefa4fa4;\n\n\treturn this;\n};\n\nSha384.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(48);\n\n\tfunction writeInt64BE(h, l, offset) {\n\t\tH.writeInt32BE(h, offset);\n\t\tH.writeInt32BE(l, offset + 4);\n\t}\n\n\twriteInt64BE(this._ah, this._al, 0);\n\twriteInt64BE(this._bh, this._bl, 8);\n\twriteInt64BE(this._ch, this._cl, 16);\n\twriteInt64BE(this._dh, this._dl, 24);\n\twriteInt64BE(this._eh, this._el, 32);\n\twriteInt64BE(this._fh, this._fl, 40);\n\n\treturn H;\n};\n\nmodule.exports = Sha384;\n","'use strict';\n\nvar inherits = require('inherits');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar K = [\n\t0x428a2f98,\n\t0xd728ae22,\n\t0x71374491,\n\t0x23ef65cd,\n\t0xb5c0fbcf,\n\t0xec4d3b2f,\n\t0xe9b5dba5,\n\t0x8189dbbc,\n\t0x3956c25b,\n\t0xf348b538,\n\t0x59f111f1,\n\t0xb605d019,\n\t0x923f82a4,\n\t0xaf194f9b,\n\t0xab1c5ed5,\n\t0xda6d8118,\n\t0xd807aa98,\n\t0xa3030242,\n\t0x12835b01,\n\t0x45706fbe,\n\t0x243185be,\n\t0x4ee4b28c,\n\t0x550c7dc3,\n\t0xd5ffb4e2,\n\t0x72be5d74,\n\t0xf27b896f,\n\t0x80deb1fe,\n\t0x3b1696b1,\n\t0x9bdc06a7,\n\t0x25c71235,\n\t0xc19bf174,\n\t0xcf692694,\n\t0xe49b69c1,\n\t0x9ef14ad2,\n\t0xefbe4786,\n\t0x384f25e3,\n\t0x0fc19dc6,\n\t0x8b8cd5b5,\n\t0x240ca1cc,\n\t0x77ac9c65,\n\t0x2de92c6f,\n\t0x592b0275,\n\t0x4a7484aa,\n\t0x6ea6e483,\n\t0x5cb0a9dc,\n\t0xbd41fbd4,\n\t0x76f988da,\n\t0x831153b5,\n\t0x983e5152,\n\t0xee66dfab,\n\t0xa831c66d,\n\t0x2db43210,\n\t0xb00327c8,\n\t0x98fb213f,\n\t0xbf597fc7,\n\t0xbeef0ee4,\n\t0xc6e00bf3,\n\t0x3da88fc2,\n\t0xd5a79147,\n\t0x930aa725,\n\t0x06ca6351,\n\t0xe003826f,\n\t0x14292967,\n\t0x0a0e6e70,\n\t0x27b70a85,\n\t0x46d22ffc,\n\t0x2e1b2138,\n\t0x5c26c926,\n\t0x4d2c6dfc,\n\t0x5ac42aed,\n\t0x53380d13,\n\t0x9d95b3df,\n\t0x650a7354,\n\t0x8baf63de,\n\t0x766a0abb,\n\t0x3c77b2a8,\n\t0x81c2c92e,\n\t0x47edaee6,\n\t0x92722c85,\n\t0x1482353b,\n\t0xa2bfe8a1,\n\t0x4cf10364,\n\t0xa81a664b,\n\t0xbc423001,\n\t0xc24b8b70,\n\t0xd0f89791,\n\t0xc76c51a3,\n\t0x0654be30,\n\t0xd192e819,\n\t0xd6ef5218,\n\t0xd6990624,\n\t0x5565a910,\n\t0xf40e3585,\n\t0x5771202a,\n\t0x106aa070,\n\t0x32bbd1b8,\n\t0x19a4c116,\n\t0xb8d2d0c8,\n\t0x1e376c08,\n\t0x5141ab53,\n\t0x2748774c,\n\t0xdf8eeb99,\n\t0x34b0bcb5,\n\t0xe19b48a8,\n\t0x391c0cb3,\n\t0xc5c95a63,\n\t0x4ed8aa4a,\n\t0xe3418acb,\n\t0x5b9cca4f,\n\t0x7763e373,\n\t0x682e6ff3,\n\t0xd6b2b8a3,\n\t0x748f82ee,\n\t0x5defb2fc,\n\t0x78a5636f,\n\t0x43172f60,\n\t0x84c87814,\n\t0xa1f0ab72,\n\t0x8cc70208,\n\t0x1a6439ec,\n\t0x90befffa,\n\t0x23631e28,\n\t0xa4506ceb,\n\t0xde82bde9,\n\t0xbef9a3f7,\n\t0xb2c67915,\n\t0xc67178f2,\n\t0xe372532b,\n\t0xca273ece,\n\t0xea26619c,\n\t0xd186b8c7,\n\t0x21c0c207,\n\t0xeada7dd6,\n\t0xcde0eb1e,\n\t0xf57d4f7f,\n\t0xee6ed178,\n\t0x06f067aa,\n\t0x72176fba,\n\t0x0a637dc5,\n\t0xa2c898a6,\n\t0x113f9804,\n\t0xbef90dae,\n\t0x1b710b35,\n\t0x131c471b,\n\t0x28db77f5,\n\t0x23047d84,\n\t0x32caab7b,\n\t0x40c72493,\n\t0x3c9ebe0a,\n\t0x15c9bebc,\n\t0x431d67c4,\n\t0x9c100d4c,\n\t0x4cc5d4be,\n\t0xcb3e42b6,\n\t0x597f299c,\n\t0xfc657e2a,\n\t0x5fcb6fab,\n\t0x3ad6faec,\n\t0x6c44198c,\n\t0x4a475817\n];\n\nvar W = new Array(160);\n\nfunction Sha512() {\n\tthis.init();\n\tthis._w = W;\n\n\tHash.call(this, 128, 112);\n}\n\ninherits(Sha512, Hash);\n\nSha512.prototype.init = function () {\n\tthis._ah = 0x6a09e667;\n\tthis._bh = 0xbb67ae85;\n\tthis._ch = 0x3c6ef372;\n\tthis._dh = 0xa54ff53a;\n\tthis._eh = 0x510e527f;\n\tthis._fh = 0x9b05688c;\n\tthis._gh = 0x1f83d9ab;\n\tthis._hh = 0x5be0cd19;\n\n\tthis._al = 0xf3bcc908;\n\tthis._bl = 0x84caa73b;\n\tthis._cl = 0xfe94f82b;\n\tthis._dl = 0x5f1d36f1;\n\tthis._el = 0xade682d1;\n\tthis._fl = 0x2b3e6c1f;\n\tthis._gl = 0xfb41bd6b;\n\tthis._hl = 0x137e2179;\n\n\treturn this;\n};\n\nfunction Ch(x, y, z) {\n\treturn z ^ (x & (y ^ z));\n}\n\nfunction maj(x, y, z) {\n\treturn (x & y) | (z & (x | y));\n}\n\nfunction sigma0(x, xl) {\n\treturn ((x >>> 28) | (xl << 4)) ^ ((xl >>> 2) | (x << 30)) ^ ((xl >>> 7) | (x << 25));\n}\n\nfunction sigma1(x, xl) {\n\treturn ((x >>> 14) | (xl << 18)) ^ ((x >>> 18) | (xl << 14)) ^ ((xl >>> 9) | (x << 23));\n}\n\nfunction Gamma0(x, xl) {\n\treturn ((x >>> 1) | (xl << 31)) ^ ((x >>> 8) | (xl << 24)) ^ (x >>> 7);\n}\n\nfunction Gamma0l(x, xl) {\n\treturn ((x >>> 1) | (xl << 31)) ^ ((x >>> 8) | (xl << 24)) ^ ((x >>> 7) | (xl << 25));\n}\n\nfunction Gamma1(x, xl) {\n\treturn ((x >>> 19) | (xl << 13)) ^ ((xl >>> 29) | (x << 3)) ^ (x >>> 6);\n}\n\nfunction Gamma1l(x, xl) {\n\treturn ((x >>> 19) | (xl << 13)) ^ ((xl >>> 29) | (x << 3)) ^ ((x >>> 6) | (xl << 26));\n}\n\nfunction getCarry(a, b) {\n\treturn (a >>> 0) < (b >>> 0) ? 1 : 0;\n}\n\nSha512.prototype._update = function (M) {\n\tvar w = this._w;\n\n\tvar ah = this._ah | 0;\n\tvar bh = this._bh | 0;\n\tvar ch = this._ch | 0;\n\tvar dh = this._dh | 0;\n\tvar eh = this._eh | 0;\n\tvar fh = this._fh | 0;\n\tvar gh = this._gh | 0;\n\tvar hh = this._hh | 0;\n\n\tvar al = this._al | 0;\n\tvar bl = this._bl | 0;\n\tvar cl = this._cl | 0;\n\tvar dl = this._dl | 0;\n\tvar el = this._el | 0;\n\tvar fl = this._fl | 0;\n\tvar gl = this._gl | 0;\n\tvar hl = this._hl | 0;\n\n\tfor (var i = 0; i < 32; i += 2) {\n\t\tw[i] = M.readInt32BE(i * 4);\n\t\tw[i + 1] = M.readInt32BE((i * 4) + 4);\n\t}\n\tfor (; i < 160; i += 2) {\n\t\tvar xh = w[i - (15 * 2)];\n\t\tvar xl = w[i - (15 * 2) + 1];\n\t\tvar gamma0 = Gamma0(xh, xl);\n\t\tvar gamma0l = Gamma0l(xl, xh);\n\n\t\txh = w[i - (2 * 2)];\n\t\txl = w[i - (2 * 2) + 1];\n\t\tvar gamma1 = Gamma1(xh, xl);\n\t\tvar gamma1l = Gamma1l(xl, xh);\n\n\t\t// w[i] = gamma0 + w[i - 7] + gamma1 + w[i - 16]\n\t\tvar Wi7h = w[i - (7 * 2)];\n\t\tvar Wi7l = w[i - (7 * 2) + 1];\n\n\t\tvar Wi16h = w[i - (16 * 2)];\n\t\tvar Wi16l = w[i - (16 * 2) + 1];\n\n\t\tvar Wil = (gamma0l + Wi7l) | 0;\n\t\tvar Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0;\n\t\tWil = (Wil + gamma1l) | 0;\n\t\tWih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0;\n\t\tWil = (Wil + Wi16l) | 0;\n\t\tWih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0;\n\n\t\tw[i] = Wih;\n\t\tw[i + 1] = Wil;\n\t}\n\n\tfor (var j = 0; j < 160; j += 2) {\n\t\tWih = w[j];\n\t\tWil = w[j + 1];\n\n\t\tvar majh = maj(ah, bh, ch);\n\t\tvar majl = maj(al, bl, cl);\n\n\t\tvar sigma0h = sigma0(ah, al);\n\t\tvar sigma0l = sigma0(al, ah);\n\t\tvar sigma1h = sigma1(eh, el);\n\t\tvar sigma1l = sigma1(el, eh);\n\n\t\t// t1 = h + sigma1 + ch + K[j] + w[j]\n\t\tvar Kih = K[j];\n\t\tvar Kil = K[j + 1];\n\n\t\tvar chh = Ch(eh, fh, gh);\n\t\tvar chl = Ch(el, fl, gl);\n\n\t\tvar t1l = (hl + sigma1l) | 0;\n\t\tvar t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0;\n\t\tt1l = (t1l + chl) | 0;\n\t\tt1h = (t1h + chh + getCarry(t1l, chl)) | 0;\n\t\tt1l = (t1l + Kil) | 0;\n\t\tt1h = (t1h + Kih + getCarry(t1l, Kil)) | 0;\n\t\tt1l = (t1l + Wil) | 0;\n\t\tt1h = (t1h + Wih + getCarry(t1l, Wil)) | 0;\n\n\t\t// t2 = sigma0 + maj\n\t\tvar t2l = (sigma0l + majl) | 0;\n\t\tvar t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0;\n\n\t\thh = gh;\n\t\thl = gl;\n\t\tgh = fh;\n\t\tgl = fl;\n\t\tfh = eh;\n\t\tfl = el;\n\t\tel = (dl + t1l) | 0;\n\t\teh = (dh + t1h + getCarry(el, dl)) | 0;\n\t\tdh = ch;\n\t\tdl = cl;\n\t\tch = bh;\n\t\tcl = bl;\n\t\tbh = ah;\n\t\tbl = al;\n\t\tal = (t1l + t2l) | 0;\n\t\tah = (t1h + t2h + getCarry(al, t1l)) | 0;\n\t}\n\n\tthis._al = (this._al + al) | 0;\n\tthis._bl = (this._bl + bl) | 0;\n\tthis._cl = (this._cl + cl) | 0;\n\tthis._dl = (this._dl + dl) | 0;\n\tthis._el = (this._el + el) | 0;\n\tthis._fl = (this._fl + fl) | 0;\n\tthis._gl = (this._gl + gl) | 0;\n\tthis._hl = (this._hl + hl) | 0;\n\n\tthis._ah = (this._ah + ah + getCarry(this._al, al)) | 0;\n\tthis._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0;\n\tthis._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0;\n\tthis._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0;\n\tthis._eh = (this._eh + eh + getCarry(this._el, el)) | 0;\n\tthis._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0;\n\tthis._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0;\n\tthis._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0;\n};\n\nSha512.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(64);\n\n\tfunction writeInt64BE(h, l, offset) {\n\t\tH.writeInt32BE(h, offset);\n\t\tH.writeInt32BE(l, offset + 4);\n\t}\n\n\twriteInt64BE(this._ah, this._al, 0);\n\twriteInt64BE(this._bh, this._bl, 8);\n\twriteInt64BE(this._ch, this._cl, 16);\n\twriteInt64BE(this._dh, this._dl, 24);\n\twriteInt64BE(this._eh, this._el, 32);\n\twriteInt64BE(this._fh, this._fl, 40);\n\twriteInt64BE(this._gh, this._gl, 48);\n\twriteInt64BE(this._hh, this._hl, 56);\n\n\treturn H;\n};\n\nmodule.exports = Sha512;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/lib/_stream_readable.js');\nStream.Writable = require('readable-stream/lib/_stream_writable.js');\nStream.Duplex = require('readable-stream/lib/_stream_duplex.js');\nStream.Transform = require('readable-stream/lib/_stream_transform.js');\nStream.PassThrough = require('readable-stream/lib/_stream_passthrough.js');\nStream.finished = require('readable-stream/lib/internal/streams/end-of-stream.js')\nStream.pipeline = require('readable-stream/lib/internal/streams/pipeline.js')\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports['default'] = symbolObservablePonyfill;\nfunction symbolObservablePonyfill(root) {\n\tvar result;\n\tvar _Symbol = root.Symbol;\n\n\tif (typeof _Symbol === 'function') {\n\t\tif (_Symbol.observable) {\n\t\t\tresult = _Symbol.observable;\n\t\t} else {\n\n\t\t\t// This just needs to be something that won't trample other user's Symbol.for use\n\t\t\t// It also will guide people to the source of their issues, if this is problematic.\n\t\t\t// META: It's a resource locator!\n\t\t\tresult = _Symbol['for']('https://github.com/benlesh/symbol-observable');\n\t\t\ttry {\n\t\t\t\t_Symbol.observable = result;\n\t\t\t} catch (err) {\n\t\t\t\t// Do nothing. In some environments, users have frozen `Symbol` for security reasons,\n\t\t\t\t// if it is frozen assigning to it will throw. In this case, we don't care, because\n\t\t\t\t// they will need to use the returned value from the ponyfill.\n\t\t\t}\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};","module.exports = require('./lib/ponyfill');\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar isArray = require('isarray');\nvar typedArrayBuffer = require('typed-array-buffer');\n\nvar isView = ArrayBuffer.isView || function isView(obj) {\n\ttry {\n\t\ttypedArrayBuffer(obj);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar useUint8Array = typeof Uint8Array !== 'undefined';\nvar useArrayBuffer = typeof ArrayBuffer !== 'undefined'\n\t&& typeof Uint8Array !== 'undefined';\nvar useFromArrayBuffer = useArrayBuffer && (Buffer.prototype instanceof Uint8Array || Buffer.TYPED_ARRAY_SUPPORT);\n\nmodule.exports = function toBuffer(data, encoding) {\n\tif (Buffer.isBuffer(data)) {\n\t\tif (data.constructor && !('isBuffer' in data)) {\n\t\t\t// probably a SlowBuffer\n\t\t\treturn Buffer.from(data);\n\t\t}\n\t\treturn data;\n\t}\n\n\tif (typeof data === 'string') {\n\t\treturn Buffer.from(data, encoding);\n\t}\n\n\t/*\n\t * Wrap any TypedArray instances and DataViews\n\t * Makes sense only on engines with full TypedArray support -- let Buffer detect that\n\t */\n\tif (useArrayBuffer && isView(data)) {\n\t\t// Bug in Node.js <6.3.1, which treats this as out-of-bounds\n\t\tif (data.byteLength === 0) {\n\t\t\treturn Buffer.alloc(0);\n\t\t}\n\n\t\t// When Buffer is based on Uint8Array, we can just construct it from ArrayBuffer\n\t\tif (useFromArrayBuffer) {\n\t\t\tvar res = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n\t\t\t/*\n\t\t\t * Recheck result size, as offset/length doesn't work on Node.js <5.10\n\t\t\t * We just go to Uint8Array case if this fails\n\t\t\t */\n\t\t\tif (res.byteLength === data.byteLength) {\n\t\t\t\treturn res;\n\t\t\t}\n\t\t}\n\n\t\t// Convert to Uint8Array bytes and then to Buffer\n\t\tvar uint8 = data instanceof Uint8Array ? data : new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n\t\tvar result = Buffer.from(uint8);\n\n\t\t/*\n\t\t * Let's recheck that conversion succeeded\n\t\t * We have .length but not .byteLength when useFromArrayBuffer is false\n\t\t */\n\t\tif (result.length === data.byteLength) {\n\t\t\treturn result;\n\t\t}\n\t}\n\n\t/*\n\t * Uint8Array in engines where Buffer.from might not work with ArrayBuffer, just copy over\n\t * Doesn't make sense with other TypedArray instances\n\t */\n\tif (useUint8Array && data instanceof Uint8Array) {\n\t\treturn Buffer.from(data);\n\t}\n\n\tvar isArr = isArray(data);\n\tif (isArr) {\n\t\tfor (var i = 0; i < data.length; i += 1) {\n\t\t\tvar x = data[i];\n\t\t\tif (\n\t\t\t\ttypeof x !== 'number'\n\t\t\t\t|| x < 0\n\t\t\t\t|| x > 255\n\t\t\t\t|| ~~x !== x // NaN and integer check\n\t\t\t) {\n\t\t\t\tthrow new RangeError('Array items must be numbers in the range 0-255.');\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Old Buffer polyfill on an engine that doesn't have TypedArray support\n\t * Also, this is from a different Buffer polyfill implementation then we have, as instanceof check failed\n\t * Convert to our current Buffer implementation\n\t */\n\tif (\n\t\tisArr || (\n\t\t\tBuffer.isBuffer(data)\n\t\t\t&& data.constructor\n\t\t\t&& typeof data.constructor.isBuffer === 'function'\n\t\t\t&& data.constructor.isBuffer(data)\n\t\t)\n\t) {\n\t\treturn Buffer.from(data);\n\t}\n\n\tthrow new TypeError('The \"data\" argument must be a string, an Array, a Buffer, a Uint8Array, or a DataView.');\n};\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","import { GeneratedType } from \"@cosmjs/proto-signing\";\nimport { MsgFleetMoveResponse } from \"./types/structs/structs/tx\";\nimport { MsgPermissionSetOnObject } from \"./types/structs/structs/tx\";\nimport { EventGuild } from \"./types/structs/structs/events\";\nimport { EventOreTheft } from \"./types/structs/structs/events\";\nimport { MsgStructMove } from \"./types/structs/structs/tx\";\nimport { MsgStructOreMinerComplete } from \"./types/structs/structs/tx\";\nimport { QueryAllAddressByPlayerRequest } from \"./types/structs/structs/query\";\nimport { EventOreMigrateDetail } from \"./types/structs/structs/events\";\nimport { MsgGuildBankRedeemResponse } from \"./types/structs/structs/tx\";\nimport { MsgStructBuildComplete } from \"./types/structs/structs/tx\";\nimport { MsgStructDefenseSet } from \"./types/structs/structs/tx\";\nimport { MsgProviderUpdateAccessPolicy } from \"./types/structs/structs/tx\";\nimport { QueryAllFleetRequest } from \"./types/structs/structs/query\";\nimport { MsgAllocationCreate } from \"./types/structs/structs/tx\";\nimport { MsgPermissionResponse } from \"./types/structs/structs/tx\";\nimport { QueryParamsRequest } from \"./types/structs/structs/query\";\nimport { QueryAllFleetResponse } from \"./types/structs/structs/query\";\nimport { PlayerInventory } from \"./types/structs/structs/player\";\nimport { EventProviderGrantGuildDetail } from \"./types/structs/structs/events\";\nimport { EventGuildBankMintDetail } from \"./types/structs/structs/events\";\nimport { MsgSubstationCreateResponse } from \"./types/structs/structs/tx\";\nimport { MsgSubstationPlayerMigrateResponse } from \"./types/structs/structs/tx\";\nimport { MsgProviderUpdateCapacityMinimum } from \"./types/structs/structs/tx\";\nimport { QueryGetGuildMembershipApplicationResponse } from \"./types/structs/structs/query\";\nimport { QueryGetPlayerResponse } from \"./types/structs/structs/query\";\nimport { QueryGetSubstationResponse } from \"./types/structs/structs/query\";\nimport { StructDefender } from \"./types/structs/structs/struct\";\nimport { MsgReactorDefuseResponse } from \"./types/structs/structs/tx\";\nimport { MsgStructAttack } from \"./types/structs/structs/tx\";\nimport { EventTime } from \"./types/structs/structs/events\";\nimport { MsgSubstationDelete } from \"./types/structs/structs/tx\";\nimport { Guild } from \"./types/structs/structs/guild\";\nimport { QueryGetProviderRequest } from \"./types/structs/structs/query\";\nimport { MsgAllocationUpdate } from \"./types/structs/structs/tx\";\nimport { MsgSubstationPlayerDisconnectResponse } from \"./types/structs/structs/tx\";\nimport { EventAlphaRefineDetail } from \"./types/structs/structs/events\";\nimport { MsgAllocationDeleteResponse } from \"./types/structs/structs/tx\";\nimport { MsgGuildMembershipInviteRevoke } from \"./types/structs/structs/tx\";\nimport { MsgProviderUpdateDurationMinimum } from \"./types/structs/structs/tx\";\nimport { InternalAddressAssociation } from \"./types/structs/structs/address\";\nimport { Params } from \"./types/structs/structs/params\";\nimport { PermissionRecord } from \"./types/structs/structs/permission\";\nimport { EventReactor } from \"./types/structs/structs/events\";\nimport { EventStructAttribute } from \"./types/structs/structs/events\";\nimport { MsgAddressRevoke } from \"./types/structs/structs/tx\";\nimport { MsgSubstationPlayerConnectResponse } from \"./types/structs/structs/tx\";\nimport { QueryGetFleetRequest } from \"./types/structs/structs/query\";\nimport { QueryGetInfusionResponse } from \"./types/structs/structs/query\";\nimport { QueryGetStructTypeRequest } from \"./types/structs/structs/query\";\nimport { EventAttackDefenderCounterDetail } from \"./types/structs/structs/events\";\nimport { MsgStructGeneratorInfuse } from \"./types/structs/structs/tx\";\nimport { QueryAllPlayerHaltedResponse } from \"./types/structs/structs/query\";\nimport { EventProviderRevokeGuildDetail } from \"./types/structs/structs/events\";\nimport { PlanetAttributeRecord } from \"./types/structs/structs/planet\";\nimport { MsgPlanetExploreResponse } from \"./types/structs/structs/tx\";\nimport { QueryGetStructTypeResponse } from \"./types/structs/structs/query\";\nimport { EventInfusion } from \"./types/structs/structs/events\";\nimport { PlanetAttributes } from \"./types/structs/structs/planet\";\nimport { MsgStructOreRefineryStatusResponse } from \"./types/structs/structs/tx\";\nimport { QueryAllAgreementByProviderRequest } from \"./types/structs/structs/query\";\nimport { QueryAllGuildResponse } from \"./types/structs/structs/query\";\nimport { QueryGetGuildMembershipApplicationRequest } from \"./types/structs/structs/query\";\nimport { QueryGetProviderByCollateralAddressRequest } from \"./types/structs/structs/query\";\nimport { EventGuildBankAddressDetail } from \"./types/structs/structs/events\";\nimport { MsgGuildUpdateJoinInfusionMinimumBypassByRequest } from \"./types/structs/structs/tx\";\nimport { MsgPermissionRevokeOnAddress } from \"./types/structs/structs/tx\";\nimport { QueryParamsResponse } from \"./types/structs/structs/query\";\nimport { QueryAllPlanetRequest } from \"./types/structs/structs/query\";\nimport { QueryAllPlayerResponse } from \"./types/structs/structs/query\";\nimport { MsgAddressRevokeResponse } from \"./types/structs/structs/tx\";\nimport { MsgStructActivate } from \"./types/structs/structs/tx\";\nimport { MsgStructGeneratorStatusResponse } from \"./types/structs/structs/tx\";\nimport { MsgAgreementCapacityIncrease } from \"./types/structs/structs/tx\";\nimport { QueryGetGuildByBankCollateralAddressRequest } from \"./types/structs/structs/query\";\nimport { QueryValidateSignatureRequest } from \"./types/structs/structs/query\";\nimport { MsgPlanetRaidComplete } from \"./types/structs/structs/tx\";\nimport { QueryAllAgreementRequest } from \"./types/structs/structs/query\";\nimport { QueryAllStructResponse } from \"./types/structs/structs/query\";\nimport { QueryAllSubstationResponse } from \"./types/structs/structs/query\";\nimport { EventPlayerResumed } from \"./types/structs/structs/events\";\nimport { QueryAllGuildBankCollateralAddressRequest } from \"./types/structs/structs/query\";\nimport { EventStructDefender } from \"./types/structs/structs/events\";\nimport { EventAttackDetail } from \"./types/structs/structs/events\";\nimport { MsgAddressRegister } from \"./types/structs/structs/tx\";\nimport { MsgGuildMembershipRequestApprove } from \"./types/structs/structs/tx\";\nimport { MsgStructOreMinerStatusResponse } from \"./types/structs/structs/tx\";\nimport { QueryAllAllocationRequest } from \"./types/structs/structs/query\";\nimport { QueryAllAllocationBySourceRequest } from \"./types/structs/structs/query\";\nimport { GridAttributes } from \"./types/structs/structs/grid\";\nimport { StructsPacketData } from \"./types/structs/structs/packet\";\nimport { EventSubstation } from \"./types/structs/structs/events\";\nimport { MsgFleetMove } from \"./types/structs/structs/tx\";\nimport { MsgGuildBankRedeem } from \"./types/structs/structs/tx\";\nimport { QueryGetFleetByIndexRequest } from \"./types/structs/structs/query\";\nimport { QueryGetGridResponse } from \"./types/structs/structs/query\";\nimport { QueryGetInfusionRequest } from \"./types/structs/structs/query\";\nimport { QueryAllInfusionResponse } from \"./types/structs/structs/query\";\nimport { EventProviderAddressDetail } from \"./types/structs/structs/events\";\nimport { MsgGuildUpdateEndpoint } from \"./types/structs/structs/tx\";\nimport { MsgGuildUpdateEntryRank } from \"./types/structs/structs/tx\";\nimport { MsgPermissionGuildRankSet } from \"./types/structs/structs/tx\";\nimport { MsgPermissionGuildRankRevoke } from \"./types/structs/structs/tx\";\nimport { MsgPlayerUpdateGuildRank } from \"./types/structs/structs/tx\";\nimport { MsgPlayerUpdateGuildRankResponse } from \"./types/structs/structs/tx\";\nimport { MsgAgreementDurationIncrease } from \"./types/structs/structs/tx\";\nimport { QueryAllAllocationResponse } from \"./types/structs/structs/query\";\nimport { QueryAllReactorResponse } from \"./types/structs/structs/query\";\nimport { EventStructType } from \"./types/structs/structs/events\";\nimport { EventGrid } from \"./types/structs/structs/events\";\nimport { EventGuildBankRedeem } from \"./types/structs/structs/events\";\nimport { EventOreMineDetail } from \"./types/structs/structs/events\";\nimport { QueryAllAllocationByDestinationRequest } from \"./types/structs/structs/query\";\nimport { Player } from \"./types/structs/structs/player\";\nimport { MsgPlayerResumeResponse } from \"./types/structs/structs/tx\";\nimport { MsgStructStatusResponse } from \"./types/structs/structs/tx\";\nimport { MsgStructStorageRecall } from \"./types/structs/structs/tx\";\nimport { MsgAgreementResponse } from \"./types/structs/structs/tx\";\nimport { MsgProviderCreate } from \"./types/structs/structs/tx\";\nimport { MsgPlayerSendResponse } from \"./types/structs/structs/tx\";\nimport { QueryAllAddressRequest } from \"./types/structs/structs/query\";\nimport { QueryGetReactorResponse } from \"./types/structs/structs/query\";\nimport { EventProviderGrantGuild } from \"./types/structs/structs/events\";\nimport { EventGuildBankConfiscateAndBurn } from \"./types/structs/structs/events\";\nimport { QueryBlockHeightResponse } from \"./types/structs/structs/query\";\nimport { QueryAllPlanetByPlayerRequest } from \"./types/structs/structs/query\";\nimport { MsgGuildMembershipRequestRevoke } from \"./types/structs/structs/tx\";\nimport { QueryAllStructAttributeRequest } from \"./types/structs/structs/query\";\nimport { Reactor } from \"./types/structs/structs/reactor\";\nimport { EventAttack } from \"./types/structs/structs/events\";\nimport { MsgSubstationAllocationDisconnectResponse } from \"./types/structs/structs/tx\";\nimport { MsgAgreementCapacityDecrease } from \"./types/structs/structs/tx\";\nimport { QueryAllGuildBankCollateralAddressResponse } from \"./types/structs/structs/query\";\nimport { QueryAllSubstationRequest } from \"./types/structs/structs/query\";\nimport { QueryValidateSignatureResponse } from \"./types/structs/structs/query\";\nimport { EventFleet } from \"./types/structs/structs/events\";\nimport { Provider } from \"./types/structs/structs/provider\";\nimport { QueryBlockHeight } from \"./types/structs/structs/query\";\nimport { QueryGetReactorRequest } from \"./types/structs/structs/query\";\nimport { GridRecord } from \"./types/structs/structs/grid\";\nimport { MsgGuildUpdateJoinInfusionMinimumBypassByInvite } from \"./types/structs/structs/tx\";\nimport { MsgReactorInfuseResponse } from \"./types/structs/structs/tx\";\nimport { MsgStructBuildCancel } from \"./types/structs/structs/tx\";\nimport { Substation } from \"./types/structs/structs/substation\";\nimport { MsgGuildUpdateOwnerId } from \"./types/structs/structs/tx\";\nimport { MsgGuildMembershipInviteDeny } from \"./types/structs/structs/tx\";\nimport { MsgSubstationDeleteResponse } from \"./types/structs/structs/tx\";\nimport { Fleet } from \"./types/structs/structs/fleet\";\nimport { QueryAllPlanetAttributeRequest } from \"./types/structs/structs/query\";\nimport { QueryAllReactorRequest } from \"./types/structs/structs/query\";\nimport { EventProvider } from \"./types/structs/structs/events\";\nimport { EventGuildBankRedeemDetail } from \"./types/structs/structs/events\";\nimport { MsgPlayerResume } from \"./types/structs/structs/tx\";\nimport { MsgProviderWithdrawBalance } from \"./types/structs/structs/tx\";\nimport { MsgProviderUpdateDurationMaximum } from \"./types/structs/structs/tx\";\nimport { QueryAllInfusionRequest } from \"./types/structs/structs/query\";\nimport { QueryGetProviderResponse } from \"./types/structs/structs/query\";\nimport { QueryAllProviderCollateralAddressResponse } from \"./types/structs/structs/query\";\nimport { NoData } from \"./types/structs/structs/packet\";\nimport { MsgReactorBeginMigration } from \"./types/structs/structs/tx\";\nimport { MsgReactorBeginMigrationResponse } from \"./types/structs/structs/tx\";\nimport { MsgSubstationPlayerDisconnect } from \"./types/structs/structs/tx\";\nimport { GuildMembershipApplication } from \"./types/structs/structs/guild\";\nimport { QueryGetAllocationRequest } from \"./types/structs/structs/query\";\nimport { EventAgreement } from \"./types/structs/structs/events\";\nimport { MsgAllocationDelete } from \"./types/structs/structs/tx\";\nimport { MsgAgreementOpen } from \"./types/structs/structs/tx\";\nimport { MsgPlayerSend } from \"./types/structs/structs/tx\";\nimport { QueryGetGuildRequest } from \"./types/structs/structs/query\";\nimport { Planet } from \"./types/structs/structs/planet\";\nimport { MsgAllocationTransferResponse } from \"./types/structs/structs/tx\";\nimport { MsgStructDefenseClear } from \"./types/structs/structs/tx\";\nimport { QueryAllAgreementResponse } from \"./types/structs/structs/query\";\nimport { QueryAllPermissionByObjectRequest } from \"./types/structs/structs/query\";\nimport { QueryAllStructAttributeResponse } from \"./types/structs/structs/query\";\nimport { EventAlphaDefuseDetail } from \"./types/structs/structs/events\";\nimport { MsgGuildMembershipJoinProxy } from \"./types/structs/structs/tx\";\nimport { MsgStructBuildInitiate } from \"./types/structs/structs/tx\";\nimport { GenesisState } from \"./types/structs/structs/genesis\";\nimport { QueryGetFleetResponse } from \"./types/structs/structs/query\";\nimport { QueryAllGuildRequest } from \"./types/structs/structs/query\";\nimport { QueryGetPlanetAttributeResponse } from \"./types/structs/structs/query\";\nimport { MsgGuildBankMintResponse } from \"./types/structs/structs/tx\";\nimport { MsgGuildBankConfiscateAndBurn } from \"./types/structs/structs/tx\";\nimport { MsgSubstationPlayerConnect } from \"./types/structs/structs/tx\";\nimport { QueryAllGuildMembershipApplicationResponse } from \"./types/structs/structs/query\";\nimport { QueryAllProviderRequest } from \"./types/structs/structs/query\";\nimport { QueryGetProviderByEarningsAddressRequest } from \"./types/structs/structs/query\";\nimport { EventPlayer } from \"./types/structs/structs/events\";\nimport { EventProviderRevokeGuild } from \"./types/structs/structs/events\";\nimport { MsgAddressRegisterResponse } from \"./types/structs/structs/tx\";\nimport { MsgPermissionGrantOnObject } from \"./types/structs/structs/tx\";\nimport { QueryGetPlayerRequest } from \"./types/structs/structs/query\";\nimport { QueryAllStructTypeResponse } from \"./types/structs/structs/query\";\nimport { MsgPlanetRaidCompleteResponse } from \"./types/structs/structs/tx\";\nimport { MsgReactorDefuse } from \"./types/structs/structs/tx\";\nimport { MsgStructStealthActivate } from \"./types/structs/structs/tx\";\nimport { QueryGetGuildBankCollateralAddressRequest } from \"./types/structs/structs/query\";\nimport { QueryAllGuildMembershipApplicationRequest } from \"./types/structs/structs/query\";\nimport { QueryAllPermissionRequest } from \"./types/structs/structs/query\";\nimport { QueryAllProviderEarningsAddressResponse } from \"./types/structs/structs/query\";\nimport { Struct } from \"./types/structs/structs/struct\";\nimport { EventProviderAddress } from \"./types/structs/structs/events\";\nimport { MsgSubstationAllocationDisconnect } from \"./types/structs/structs/tx\";\nimport { QueryGetAddressRequest } from \"./types/structs/structs/query\";\nimport { EventPlayerHalted } from \"./types/structs/structs/events\";\nimport { MsgUpdateParams } from \"./types/structs/structs/tx\";\nimport { MsgGuildBankMint } from \"./types/structs/structs/tx\";\nimport { MsgGuildUpdateJoinInfusionMinimum } from \"./types/structs/structs/tx\";\nimport { QueryAllPermissionResponse } from \"./types/structs/structs/query\";\nimport { EventAllocation } from \"./types/structs/structs/events\";\nimport { EventTimeDetail } from \"./types/structs/structs/events\";\nimport { MsgPlayerUpdatePrimaryAddress } from \"./types/structs/structs/tx\";\nimport { QueryGetAgreementRequest } from \"./types/structs/structs/query\";\nimport { MsgPermissionGrantOnAddress } from \"./types/structs/structs/tx\";\nimport { MsgPermissionSetOnAddress } from \"./types/structs/structs/tx\";\nimport { EventAddressActivity } from \"./types/structs/structs/events\";\nimport { EventRaid } from \"./types/structs/structs/events\";\nimport { MsgAllocationUpdateResponse } from \"./types/structs/structs/tx\";\nimport { MsgStructAttackResponse } from \"./types/structs/structs/tx\";\nimport { MsgSubstationCreate } from \"./types/structs/structs/tx\";\nimport { QueryAllPlanetAttributeResponse } from \"./types/structs/structs/query\";\nimport { QueryAllProviderEarningsAddressRequest } from \"./types/structs/structs/query\";\nimport { QueryAllPlayerRequest } from \"./types/structs/structs/query\";\nimport { QueryGetStructAttributeRequest } from \"./types/structs/structs/query\";\nimport { EventGuildBankAddress } from \"./types/structs/structs/events\";\nimport { MsgAllocationCreateResponse } from \"./types/structs/structs/tx\";\nimport { Allocation } from \"./types/structs/structs/allocation\";\nimport { QueryAllPermissionByPlayerRequest } from \"./types/structs/structs/query\";\nimport { QueryAllProviderCollateralAddressRequest } from \"./types/structs/structs/query\";\nimport { QueryGetProviderEarningsAddressRequest } from \"./types/structs/structs/query\";\nimport { MsgAllocationTransfer } from \"./types/structs/structs/tx\";\nimport { MsgGuildBankConfiscateAndBurnResponse } from \"./types/structs/structs/tx\";\nimport { MsgGuildMembershipKick } from \"./types/structs/structs/tx\";\nimport { QueryAllGridResponse } from \"./types/structs/structs/query\";\nimport { FleetAttributeRecord } from \"./types/structs/structs/fleet\";\nimport { MsgSubstationPlayerMigrate } from \"./types/structs/structs/tx\";\nimport { MsgProviderUpdateCapacityMaximum } from \"./types/structs/structs/tx\";\nimport { EventDelete } from \"./types/structs/structs/events\";\nimport { EventGuildBankMint } from \"./types/structs/structs/events\";\nimport { QueryGetGridRequest } from \"./types/structs/structs/query\";\nimport { QueryGetGuildResponse } from \"./types/structs/structs/query\";\nimport { QueryGetProviderCollateralAddressRequest } from \"./types/structs/structs/query\";\nimport { QueryGetStructRequest } from \"./types/structs/structs/query\";\nimport { QueryGetStructAttributeResponse } from \"./types/structs/structs/query\";\nimport { QueryAllStructTypeRequest } from \"./types/structs/structs/query\";\nimport { EventAlphaRefine } from \"./types/structs/structs/events\";\nimport { QueryAllInfusionByDestinationRequest } from \"./types/structs/structs/query\";\nimport { QueryGetPermissionRequest } from \"./types/structs/structs/query\";\nimport { QueryGetStructResponse } from \"./types/structs/structs/query\";\nimport { QueryGetSubstationRequest } from \"./types/structs/structs/query\";\nimport { EventRaidDetail } from \"./types/structs/structs/events\";\nimport { MsgGuildMembershipInvite } from \"./types/structs/structs/tx\";\nimport { MsgGuildMembershipInviteApprove } from \"./types/structs/structs/tx\";\nimport { QueryGetAllocationResponse } from \"./types/structs/structs/query\";\nimport { QueryAllGridRequest } from \"./types/structs/structs/query\";\nimport { QueryAllStructRequest } from \"./types/structs/structs/query\";\nimport { StructAttributeRecord } from \"./types/structs/structs/struct\";\nimport { EventPlanetAttribute } from \"./types/structs/structs/events\";\nimport { EventOreMine } from \"./types/structs/structs/events\";\nimport { EventAttackShotDetail } from \"./types/structs/structs/events\";\nimport { MsgStructStealthDeactivate } from \"./types/structs/structs/tx\";\nimport { StructAttributes } from \"./types/structs/structs/struct\";\nimport { EventStruct } from \"./types/structs/structs/events\";\nimport { MsgGuildUpdateResponse } from \"./types/structs/structs/tx\";\nimport { MsgProviderGuildRevoke } from \"./types/structs/structs/tx\";\nimport { MsgProviderDelete } from \"./types/structs/structs/tx\";\nimport { Agreement } from \"./types/structs/structs/agreement\";\nimport { EventGuildBankConfiscateAndBurnDetail } from \"./types/structs/structs/events\";\nimport { EventGuildMembershipApplication } from \"./types/structs/structs/events\";\nimport { MsgGuildMembershipJoin } from \"./types/structs/structs/tx\";\nimport { MsgPlanetExplore } from \"./types/structs/structs/tx\";\nimport { MsgStructStorageStash } from \"./types/structs/structs/tx\";\nimport { MsgSubstationAllocationConnectResponse } from \"./types/structs/structs/tx\";\nimport { MsgPermissionRevokeOnObject } from \"./types/structs/structs/tx\";\nimport { MsgReactorCancelDefusion } from \"./types/structs/structs/tx\";\nimport { MsgSubstationAllocationConnect } from \"./types/structs/structs/tx\";\nimport { QueryGetPlanetRequest } from \"./types/structs/structs/query\";\nimport { StructType } from \"./types/structs/structs/struct\";\nimport { MsgGuildMembershipResponse } from \"./types/structs/structs/tx\";\nimport { MsgReactorInfuse } from \"./types/structs/structs/tx\";\nimport { MsgStructBuildCompleteAndStash } from \"./types/structs/structs/tx\";\nimport { AddressAssociation } from \"./types/structs/structs/address\";\nimport { EventAddressAssociation } from \"./types/structs/structs/events\";\nimport { MsgReactorCancelDefusionResponse } from \"./types/structs/structs/tx\";\nimport { AddressRecord } from \"./types/structs/structs/address\";\nimport { StructDefenders } from \"./types/structs/structs/struct\";\nimport { EventPlanet } from \"./types/structs/structs/events\";\nimport { MsgGuildUpdateEntrySubstationId } from \"./types/structs/structs/tx\";\nimport { AddressActivity } from \"./types/structs/structs/address\";\nimport { EventAlphaInfuse } from \"./types/structs/structs/events\";\nimport { MsgUpdateParamsResponse } from \"./types/structs/structs/tx\";\nimport { MsgStructOreRefineryComplete } from \"./types/structs/structs/tx\";\nimport { QueryAllPlayerHaltedRequest } from \"./types/structs/structs/query\";\nimport { EventAlphaDefuse } from \"./types/structs/structs/events\";\nimport { QueryAllAddressResponse } from \"./types/structs/structs/query\";\nimport { QueryGetPermissionResponse } from \"./types/structs/structs/query\";\nimport { QueryGetPlanetAttributeRequest } from \"./types/structs/structs/query\";\nimport { EventPermission } from \"./types/structs/structs/events\";\nimport { EventOreTheftDetail } from \"./types/structs/structs/events\";\nimport { QueryGetPlanetResponse } from \"./types/structs/structs/query\";\nimport { Infusion } from \"./types/structs/structs/infusion\";\nimport { MsgGuildCreate } from \"./types/structs/structs/tx\";\nimport { MsgGuildMembershipRequest } from \"./types/structs/structs/tx\";\nimport { MsgPlayerUpdatePrimaryAddressResponse } from \"./types/structs/structs/tx\";\nimport { MsgAgreementClose } from \"./types/structs/structs/tx\";\nimport { QueryGetAgreementResponse } from \"./types/structs/structs/query\";\nimport { EventOreMigrate } from \"./types/structs/structs/events\";\nimport { MsgGuildCreateResponse } from \"./types/structs/structs/tx\";\nimport { MsgProviderGuildGrant } from \"./types/structs/structs/tx\";\nimport { QueryAddressResponse } from \"./types/structs/structs/query\";\nimport { MsgGuildMembershipRequestDeny } from \"./types/structs/structs/tx\";\nimport { MsgStructDeactivate } from \"./types/structs/structs/tx\";\nimport { MsgProviderResponse } from \"./types/structs/structs/tx\";\nimport { QueryAllPlanetResponse } from \"./types/structs/structs/query\";\nimport { QueryAllProviderResponse } from \"./types/structs/structs/query\";\nimport { EventAlphaInfuseDetail } from \"./types/structs/structs/events\";\nimport { MsgGuildUpdateName } from \"./types/structs/structs/tx\";\nimport { MsgGuildUpdatePfp } from \"./types/structs/structs/tx\";\nimport { MsgPlayerUpdateName } from \"./types/structs/structs/tx\";\nimport { MsgPlayerUpdatePfp } from \"./types/structs/structs/tx\";\nimport { MsgPlayerUpdateResponse } from \"./types/structs/structs/tx\";\nimport { MsgPlanetUpdateName } from \"./types/structs/structs/tx\";\nimport { MsgPlanetUpdateResponse } from \"./types/structs/structs/tx\";\nimport { MsgSubstationUpdateName } from \"./types/structs/structs/tx\";\nimport { MsgSubstationUpdatePfp } from \"./types/structs/structs/tx\";\nimport { MsgSubstationUpdateResponse } from \"./types/structs/structs/tx\";\n\nconst msgTypes: Array<[string, GeneratedType]> = [\n [\"/structs.structs.MsgFleetMoveResponse\", MsgFleetMoveResponse],\n [\"/structs.structs.MsgPermissionSetOnObject\", MsgPermissionSetOnObject],\n [\"/structs.structs.EventGuild\", EventGuild],\n [\"/structs.structs.EventOreTheft\", EventOreTheft],\n [\"/structs.structs.MsgStructMove\", MsgStructMove],\n [\"/structs.structs.MsgStructOreMinerComplete\", MsgStructOreMinerComplete],\n [\"/structs.structs.QueryAllAddressByPlayerRequest\", QueryAllAddressByPlayerRequest],\n [\"/structs.structs.EventOreMigrateDetail\", EventOreMigrateDetail],\n [\"/structs.structs.MsgGuildBankRedeemResponse\", MsgGuildBankRedeemResponse],\n [\"/structs.structs.MsgStructBuildComplete\", MsgStructBuildComplete],\n [\"/structs.structs.MsgStructDefenseSet\", MsgStructDefenseSet],\n [\"/structs.structs.MsgProviderUpdateAccessPolicy\", MsgProviderUpdateAccessPolicy],\n [\"/structs.structs.QueryAllFleetRequest\", QueryAllFleetRequest],\n [\"/structs.structs.MsgAllocationCreate\", MsgAllocationCreate],\n [\"/structs.structs.MsgPermissionResponse\", MsgPermissionResponse],\n [\"/structs.structs.QueryParamsRequest\", QueryParamsRequest],\n [\"/structs.structs.QueryAllFleetResponse\", QueryAllFleetResponse],\n [\"/structs.structs.PlayerInventory\", PlayerInventory],\n [\"/structs.structs.EventProviderGrantGuildDetail\", EventProviderGrantGuildDetail],\n [\"/structs.structs.EventGuildBankMintDetail\", EventGuildBankMintDetail],\n [\"/structs.structs.MsgSubstationCreateResponse\", MsgSubstationCreateResponse],\n [\"/structs.structs.MsgSubstationPlayerMigrateResponse\", MsgSubstationPlayerMigrateResponse],\n [\"/structs.structs.MsgProviderUpdateCapacityMinimum\", MsgProviderUpdateCapacityMinimum],\n [\"/structs.structs.QueryGetGuildMembershipApplicationResponse\", QueryGetGuildMembershipApplicationResponse],\n [\"/structs.structs.QueryGetPlayerResponse\", QueryGetPlayerResponse],\n [\"/structs.structs.QueryGetSubstationResponse\", QueryGetSubstationResponse],\n [\"/structs.structs.StructDefender\", StructDefender],\n [\"/structs.structs.MsgReactorDefuseResponse\", MsgReactorDefuseResponse],\n [\"/structs.structs.MsgStructAttack\", MsgStructAttack],\n [\"/structs.structs.EventTime\", EventTime],\n [\"/structs.structs.MsgSubstationDelete\", MsgSubstationDelete],\n [\"/structs.structs.Guild\", Guild],\n [\"/structs.structs.QueryGetProviderRequest\", QueryGetProviderRequest],\n [\"/structs.structs.MsgAllocationUpdate\", MsgAllocationUpdate],\n [\"/structs.structs.MsgSubstationPlayerDisconnectResponse\", MsgSubstationPlayerDisconnectResponse],\n [\"/structs.structs.EventAlphaRefineDetail\", EventAlphaRefineDetail],\n [\"/structs.structs.MsgAllocationDeleteResponse\", MsgAllocationDeleteResponse],\n [\"/structs.structs.MsgGuildMembershipInviteRevoke\", MsgGuildMembershipInviteRevoke],\n [\"/structs.structs.MsgProviderUpdateDurationMinimum\", MsgProviderUpdateDurationMinimum],\n [\"/structs.structs.InternalAddressAssociation\", InternalAddressAssociation],\n [\"/structs.structs.Params\", Params],\n [\"/structs.structs.PermissionRecord\", PermissionRecord],\n [\"/structs.structs.EventReactor\", EventReactor],\n [\"/structs.structs.EventStructAttribute\", EventStructAttribute],\n [\"/structs.structs.MsgAddressRevoke\", MsgAddressRevoke],\n [\"/structs.structs.MsgSubstationPlayerConnectResponse\", MsgSubstationPlayerConnectResponse],\n [\"/structs.structs.QueryGetFleetRequest\", QueryGetFleetRequest],\n [\"/structs.structs.QueryGetInfusionResponse\", QueryGetInfusionResponse],\n [\"/structs.structs.QueryGetStructTypeRequest\", QueryGetStructTypeRequest],\n [\"/structs.structs.EventAttackDefenderCounterDetail\", EventAttackDefenderCounterDetail],\n [\"/structs.structs.MsgStructGeneratorInfuse\", MsgStructGeneratorInfuse],\n [\"/structs.structs.QueryAllPlayerHaltedResponse\", QueryAllPlayerHaltedResponse],\n [\"/structs.structs.EventProviderRevokeGuildDetail\", EventProviderRevokeGuildDetail],\n [\"/structs.structs.PlanetAttributeRecord\", PlanetAttributeRecord],\n [\"/structs.structs.MsgPlanetExploreResponse\", MsgPlanetExploreResponse],\n [\"/structs.structs.QueryGetStructTypeResponse\", QueryGetStructTypeResponse],\n [\"/structs.structs.EventInfusion\", EventInfusion],\n [\"/structs.structs.PlanetAttributes\", PlanetAttributes],\n [\"/structs.structs.MsgStructOreRefineryStatusResponse\", MsgStructOreRefineryStatusResponse],\n [\"/structs.structs.QueryAllAgreementByProviderRequest\", QueryAllAgreementByProviderRequest],\n [\"/structs.structs.QueryAllGuildResponse\", QueryAllGuildResponse],\n [\"/structs.structs.QueryGetGuildMembershipApplicationRequest\", QueryGetGuildMembershipApplicationRequest],\n [\"/structs.structs.QueryGetProviderByCollateralAddressRequest\", QueryGetProviderByCollateralAddressRequest],\n [\"/structs.structs.EventGuildBankAddressDetail\", EventGuildBankAddressDetail],\n [\"/structs.structs.MsgGuildUpdateJoinInfusionMinimumBypassByRequest\", MsgGuildUpdateJoinInfusionMinimumBypassByRequest],\n [\"/structs.structs.MsgPermissionRevokeOnAddress\", MsgPermissionRevokeOnAddress],\n [\"/structs.structs.QueryParamsResponse\", QueryParamsResponse],\n [\"/structs.structs.QueryAllPlanetRequest\", QueryAllPlanetRequest],\n [\"/structs.structs.QueryAllPlayerResponse\", QueryAllPlayerResponse],\n [\"/structs.structs.MsgAddressRevokeResponse\", MsgAddressRevokeResponse],\n [\"/structs.structs.MsgStructActivate\", MsgStructActivate],\n [\"/structs.structs.MsgStructGeneratorStatusResponse\", MsgStructGeneratorStatusResponse],\n [\"/structs.structs.MsgAgreementCapacityIncrease\", MsgAgreementCapacityIncrease],\n [\"/structs.structs.QueryGetGuildByBankCollateralAddressRequest\", QueryGetGuildByBankCollateralAddressRequest],\n [\"/structs.structs.QueryValidateSignatureRequest\", QueryValidateSignatureRequest],\n [\"/structs.structs.MsgPlanetRaidComplete\", MsgPlanetRaidComplete],\n [\"/structs.structs.QueryAllAgreementRequest\", QueryAllAgreementRequest],\n [\"/structs.structs.QueryAllStructResponse\", QueryAllStructResponse],\n [\"/structs.structs.QueryAllSubstationResponse\", QueryAllSubstationResponse],\n [\"/structs.structs.EventPlayerResumed\", EventPlayerResumed],\n [\"/structs.structs.QueryAllGuildBankCollateralAddressRequest\", QueryAllGuildBankCollateralAddressRequest],\n [\"/structs.structs.EventStructDefender\", EventStructDefender],\n [\"/structs.structs.EventAttackDetail\", EventAttackDetail],\n [\"/structs.structs.MsgAddressRegister\", MsgAddressRegister],\n [\"/structs.structs.MsgGuildMembershipRequestApprove\", MsgGuildMembershipRequestApprove],\n [\"/structs.structs.MsgStructOreMinerStatusResponse\", MsgStructOreMinerStatusResponse],\n [\"/structs.structs.QueryAllAllocationRequest\", QueryAllAllocationRequest],\n [\"/structs.structs.QueryAllAllocationBySourceRequest\", QueryAllAllocationBySourceRequest],\n [\"/structs.structs.GridAttributes\", GridAttributes],\n [\"/structs.structs.StructsPacketData\", StructsPacketData],\n [\"/structs.structs.EventSubstation\", EventSubstation],\n [\"/structs.structs.MsgFleetMove\", MsgFleetMove],\n [\"/structs.structs.MsgGuildBankRedeem\", MsgGuildBankRedeem],\n [\"/structs.structs.QueryGetFleetByIndexRequest\", QueryGetFleetByIndexRequest],\n [\"/structs.structs.QueryGetGridResponse\", QueryGetGridResponse],\n [\"/structs.structs.QueryGetInfusionRequest\", QueryGetInfusionRequest],\n [\"/structs.structs.QueryAllInfusionResponse\", QueryAllInfusionResponse],\n [\"/structs.structs.EventProviderAddressDetail\", EventProviderAddressDetail],\n [\"/structs.structs.MsgGuildUpdateEndpoint\", MsgGuildUpdateEndpoint],\n [\"/structs.structs.MsgAgreementDurationIncrease\", MsgAgreementDurationIncrease],\n [\"/structs.structs.QueryAllAllocationResponse\", QueryAllAllocationResponse],\n [\"/structs.structs.QueryAllReactorResponse\", QueryAllReactorResponse],\n [\"/structs.structs.EventStructType\", EventStructType],\n [\"/structs.structs.EventGrid\", EventGrid],\n [\"/structs.structs.EventGuildBankRedeem\", EventGuildBankRedeem],\n [\"/structs.structs.EventOreMineDetail\", EventOreMineDetail],\n [\"/structs.structs.QueryAllAllocationByDestinationRequest\", QueryAllAllocationByDestinationRequest],\n [\"/structs.structs.Player\", Player],\n [\"/structs.structs.MsgPlayerResumeResponse\", MsgPlayerResumeResponse],\n [\"/structs.structs.MsgStructStatusResponse\", MsgStructStatusResponse],\n [\"/structs.structs.MsgStructStorageRecall\", MsgStructStorageRecall],\n [\"/structs.structs.MsgAgreementResponse\", MsgAgreementResponse],\n [\"/structs.structs.MsgProviderCreate\", MsgProviderCreate],\n [\"/structs.structs.MsgPlayerSendResponse\", MsgPlayerSendResponse],\n [\"/structs.structs.QueryAllAddressRequest\", QueryAllAddressRequest],\n [\"/structs.structs.QueryGetReactorResponse\", QueryGetReactorResponse],\n [\"/structs.structs.EventProviderGrantGuild\", EventProviderGrantGuild],\n [\"/structs.structs.EventGuildBankConfiscateAndBurn\", EventGuildBankConfiscateAndBurn],\n [\"/structs.structs.QueryBlockHeightResponse\", QueryBlockHeightResponse],\n [\"/structs.structs.QueryAllPlanetByPlayerRequest\", QueryAllPlanetByPlayerRequest],\n [\"/structs.structs.MsgGuildMembershipRequestRevoke\", MsgGuildMembershipRequestRevoke],\n [\"/structs.structs.QueryAllStructAttributeRequest\", QueryAllStructAttributeRequest],\n [\"/structs.structs.Reactor\", Reactor],\n [\"/structs.structs.EventAttack\", EventAttack],\n [\"/structs.structs.MsgSubstationAllocationDisconnectResponse\", MsgSubstationAllocationDisconnectResponse],\n [\"/structs.structs.MsgAgreementCapacityDecrease\", MsgAgreementCapacityDecrease],\n [\"/structs.structs.QueryAllGuildBankCollateralAddressResponse\", QueryAllGuildBankCollateralAddressResponse],\n [\"/structs.structs.QueryAllSubstationRequest\", QueryAllSubstationRequest],\n [\"/structs.structs.QueryValidateSignatureResponse\", QueryValidateSignatureResponse],\n [\"/structs.structs.EventFleet\", EventFleet],\n [\"/structs.structs.Provider\", Provider],\n [\"/structs.structs.QueryBlockHeight\", QueryBlockHeight],\n [\"/structs.structs.QueryGetReactorRequest\", QueryGetReactorRequest],\n [\"/structs.structs.GridRecord\", GridRecord],\n [\"/structs.structs.MsgGuildUpdateJoinInfusionMinimumBypassByInvite\", MsgGuildUpdateJoinInfusionMinimumBypassByInvite],\n [\"/structs.structs.MsgReactorInfuseResponse\", MsgReactorInfuseResponse],\n [\"/structs.structs.MsgStructBuildCancel\", MsgStructBuildCancel],\n [\"/structs.structs.Substation\", Substation],\n [\"/structs.structs.MsgGuildUpdateOwnerId\", MsgGuildUpdateOwnerId],\n [\"/structs.structs.MsgGuildMembershipInviteDeny\", MsgGuildMembershipInviteDeny],\n [\"/structs.structs.MsgSubstationDeleteResponse\", MsgSubstationDeleteResponse],\n [\"/structs.structs.Fleet\", Fleet],\n [\"/structs.structs.QueryAllPlanetAttributeRequest\", QueryAllPlanetAttributeRequest],\n [\"/structs.structs.QueryAllReactorRequest\", QueryAllReactorRequest],\n [\"/structs.structs.EventProvider\", EventProvider],\n [\"/structs.structs.EventGuildBankRedeemDetail\", EventGuildBankRedeemDetail],\n [\"/structs.structs.MsgPlayerResume\", MsgPlayerResume],\n [\"/structs.structs.MsgProviderWithdrawBalance\", MsgProviderWithdrawBalance],\n [\"/structs.structs.MsgProviderUpdateDurationMaximum\", MsgProviderUpdateDurationMaximum],\n [\"/structs.structs.QueryAllInfusionRequest\", QueryAllInfusionRequest],\n [\"/structs.structs.QueryGetProviderResponse\", QueryGetProviderResponse],\n [\"/structs.structs.QueryAllProviderCollateralAddressResponse\", QueryAllProviderCollateralAddressResponse],\n [\"/structs.structs.NoData\", NoData],\n [\"/structs.structs.MsgReactorBeginMigration\", MsgReactorBeginMigration],\n [\"/structs.structs.MsgReactorBeginMigrationResponse\", MsgReactorBeginMigrationResponse],\n [\"/structs.structs.MsgSubstationPlayerDisconnect\", MsgSubstationPlayerDisconnect],\n [\"/structs.structs.GuildMembershipApplication\", GuildMembershipApplication],\n [\"/structs.structs.QueryGetAllocationRequest\", QueryGetAllocationRequest],\n [\"/structs.structs.EventAgreement\", EventAgreement],\n [\"/structs.structs.MsgAllocationDelete\", MsgAllocationDelete],\n [\"/structs.structs.MsgAgreementOpen\", MsgAgreementOpen],\n [\"/structs.structs.MsgPlayerSend\", MsgPlayerSend],\n [\"/structs.structs.QueryGetGuildRequest\", QueryGetGuildRequest],\n [\"/structs.structs.Planet\", Planet],\n [\"/structs.structs.MsgAllocationTransferResponse\", MsgAllocationTransferResponse],\n [\"/structs.structs.MsgStructDefenseClear\", MsgStructDefenseClear],\n [\"/structs.structs.QueryAllAgreementResponse\", QueryAllAgreementResponse],\n [\"/structs.structs.QueryAllPermissionByObjectRequest\", QueryAllPermissionByObjectRequest],\n [\"/structs.structs.QueryAllStructAttributeResponse\", QueryAllStructAttributeResponse],\n [\"/structs.structs.EventAlphaDefuseDetail\", EventAlphaDefuseDetail],\n [\"/structs.structs.MsgGuildMembershipJoinProxy\", MsgGuildMembershipJoinProxy],\n [\"/structs.structs.MsgStructBuildInitiate\", MsgStructBuildInitiate],\n [\"/structs.structs.GenesisState\", GenesisState],\n [\"/structs.structs.QueryGetFleetResponse\", QueryGetFleetResponse],\n [\"/structs.structs.QueryAllGuildRequest\", QueryAllGuildRequest],\n [\"/structs.structs.QueryGetPlanetAttributeResponse\", QueryGetPlanetAttributeResponse],\n [\"/structs.structs.MsgGuildBankMintResponse\", MsgGuildBankMintResponse],\n [\"/structs.structs.MsgGuildBankConfiscateAndBurn\", MsgGuildBankConfiscateAndBurn],\n [\"/structs.structs.MsgSubstationPlayerConnect\", MsgSubstationPlayerConnect],\n [\"/structs.structs.QueryAllGuildMembershipApplicationResponse\", QueryAllGuildMembershipApplicationResponse],\n [\"/structs.structs.QueryAllProviderRequest\", QueryAllProviderRequest],\n [\"/structs.structs.QueryGetProviderByEarningsAddressRequest\", QueryGetProviderByEarningsAddressRequest],\n [\"/structs.structs.EventPlayer\", EventPlayer],\n [\"/structs.structs.EventProviderRevokeGuild\", EventProviderRevokeGuild],\n [\"/structs.structs.MsgAddressRegisterResponse\", MsgAddressRegisterResponse],\n [\"/structs.structs.MsgPermissionGrantOnObject\", MsgPermissionGrantOnObject],\n [\"/structs.structs.QueryGetPlayerRequest\", QueryGetPlayerRequest],\n [\"/structs.structs.QueryAllStructTypeResponse\", QueryAllStructTypeResponse],\n [\"/structs.structs.MsgPlanetRaidCompleteResponse\", MsgPlanetRaidCompleteResponse],\n [\"/structs.structs.MsgReactorDefuse\", MsgReactorDefuse],\n [\"/structs.structs.MsgStructStealthActivate\", MsgStructStealthActivate],\n [\"/structs.structs.QueryGetGuildBankCollateralAddressRequest\", QueryGetGuildBankCollateralAddressRequest],\n [\"/structs.structs.QueryAllGuildMembershipApplicationRequest\", QueryAllGuildMembershipApplicationRequest],\n [\"/structs.structs.QueryAllPermissionRequest\", QueryAllPermissionRequest],\n [\"/structs.structs.QueryAllProviderEarningsAddressResponse\", QueryAllProviderEarningsAddressResponse],\n [\"/structs.structs.Struct\", Struct],\n [\"/structs.structs.EventProviderAddress\", EventProviderAddress],\n [\"/structs.structs.MsgSubstationAllocationDisconnect\", MsgSubstationAllocationDisconnect],\n [\"/structs.structs.QueryGetAddressRequest\", QueryGetAddressRequest],\n [\"/structs.structs.EventPlayerHalted\", EventPlayerHalted],\n [\"/structs.structs.MsgUpdateParams\", MsgUpdateParams],\n [\"/structs.structs.MsgGuildBankMint\", MsgGuildBankMint],\n [\"/structs.structs.MsgGuildUpdateJoinInfusionMinimum\", MsgGuildUpdateJoinInfusionMinimum],\n [\"/structs.structs.QueryAllPermissionResponse\", QueryAllPermissionResponse],\n [\"/structs.structs.EventAllocation\", EventAllocation],\n [\"/structs.structs.EventTimeDetail\", EventTimeDetail],\n [\"/structs.structs.MsgPlayerUpdatePrimaryAddress\", MsgPlayerUpdatePrimaryAddress],\n [\"/structs.structs.QueryGetAgreementRequest\", QueryGetAgreementRequest],\n [\"/structs.structs.MsgPermissionGrantOnAddress\", MsgPermissionGrantOnAddress],\n [\"/structs.structs.MsgPermissionSetOnAddress\", MsgPermissionSetOnAddress],\n [\"/structs.structs.EventAddressActivity\", EventAddressActivity],\n [\"/structs.structs.EventRaid\", EventRaid],\n [\"/structs.structs.MsgAllocationUpdateResponse\", MsgAllocationUpdateResponse],\n [\"/structs.structs.MsgStructAttackResponse\", MsgStructAttackResponse],\n [\"/structs.structs.MsgSubstationCreate\", MsgSubstationCreate],\n [\"/structs.structs.QueryAllPlanetAttributeResponse\", QueryAllPlanetAttributeResponse],\n [\"/structs.structs.QueryAllProviderEarningsAddressRequest\", QueryAllProviderEarningsAddressRequest],\n [\"/structs.structs.QueryAllPlayerRequest\", QueryAllPlayerRequest],\n [\"/structs.structs.QueryGetStructAttributeRequest\", QueryGetStructAttributeRequest],\n [\"/structs.structs.EventGuildBankAddress\", EventGuildBankAddress],\n [\"/structs.structs.MsgAllocationCreateResponse\", MsgAllocationCreateResponse],\n [\"/structs.structs.Allocation\", Allocation],\n [\"/structs.structs.QueryAllPermissionByPlayerRequest\", QueryAllPermissionByPlayerRequest],\n [\"/structs.structs.QueryAllProviderCollateralAddressRequest\", QueryAllProviderCollateralAddressRequest],\n [\"/structs.structs.QueryGetProviderEarningsAddressRequest\", QueryGetProviderEarningsAddressRequest],\n [\"/structs.structs.MsgAllocationTransfer\", MsgAllocationTransfer],\n [\"/structs.structs.MsgGuildBankConfiscateAndBurnResponse\", MsgGuildBankConfiscateAndBurnResponse],\n [\"/structs.structs.MsgGuildMembershipKick\", MsgGuildMembershipKick],\n [\"/structs.structs.QueryAllGridResponse\", QueryAllGridResponse],\n [\"/structs.structs.FleetAttributeRecord\", FleetAttributeRecord],\n [\"/structs.structs.MsgSubstationPlayerMigrate\", MsgSubstationPlayerMigrate],\n [\"/structs.structs.MsgProviderUpdateCapacityMaximum\", MsgProviderUpdateCapacityMaximum],\n [\"/structs.structs.EventDelete\", EventDelete],\n [\"/structs.structs.EventGuildBankMint\", EventGuildBankMint],\n [\"/structs.structs.QueryGetGridRequest\", QueryGetGridRequest],\n [\"/structs.structs.QueryGetGuildResponse\", QueryGetGuildResponse],\n [\"/structs.structs.QueryGetProviderCollateralAddressRequest\", QueryGetProviderCollateralAddressRequest],\n [\"/structs.structs.QueryGetStructRequest\", QueryGetStructRequest],\n [\"/structs.structs.QueryGetStructAttributeResponse\", QueryGetStructAttributeResponse],\n [\"/structs.structs.QueryAllStructTypeRequest\", QueryAllStructTypeRequest],\n [\"/structs.structs.EventAlphaRefine\", EventAlphaRefine],\n [\"/structs.structs.QueryAllInfusionByDestinationRequest\", QueryAllInfusionByDestinationRequest],\n [\"/structs.structs.QueryGetPermissionRequest\", QueryGetPermissionRequest],\n [\"/structs.structs.QueryGetStructResponse\", QueryGetStructResponse],\n [\"/structs.structs.QueryGetSubstationRequest\", QueryGetSubstationRequest],\n [\"/structs.structs.EventRaidDetail\", EventRaidDetail],\n [\"/structs.structs.MsgGuildMembershipInvite\", MsgGuildMembershipInvite],\n [\"/structs.structs.MsgGuildMembershipInviteApprove\", MsgGuildMembershipInviteApprove],\n [\"/structs.structs.QueryGetAllocationResponse\", QueryGetAllocationResponse],\n [\"/structs.structs.QueryAllGridRequest\", QueryAllGridRequest],\n [\"/structs.structs.QueryAllStructRequest\", QueryAllStructRequest],\n [\"/structs.structs.StructAttributeRecord\", StructAttributeRecord],\n [\"/structs.structs.EventPlanetAttribute\", EventPlanetAttribute],\n [\"/structs.structs.EventOreMine\", EventOreMine],\n [\"/structs.structs.EventAttackShotDetail\", EventAttackShotDetail],\n [\"/structs.structs.MsgStructStealthDeactivate\", MsgStructStealthDeactivate],\n [\"/structs.structs.StructAttributes\", StructAttributes],\n [\"/structs.structs.EventStruct\", EventStruct],\n [\"/structs.structs.MsgGuildUpdateResponse\", MsgGuildUpdateResponse],\n [\"/structs.structs.MsgProviderGuildRevoke\", MsgProviderGuildRevoke],\n [\"/structs.structs.MsgProviderDelete\", MsgProviderDelete],\n [\"/structs.structs.Agreement\", Agreement],\n [\"/structs.structs.EventGuildBankConfiscateAndBurnDetail\", EventGuildBankConfiscateAndBurnDetail],\n [\"/structs.structs.EventGuildMembershipApplication\", EventGuildMembershipApplication],\n [\"/structs.structs.MsgGuildMembershipJoin\", MsgGuildMembershipJoin],\n [\"/structs.structs.MsgPlanetExplore\", MsgPlanetExplore],\n [\"/structs.structs.MsgStructStorageStash\", MsgStructStorageStash],\n [\"/structs.structs.MsgSubstationAllocationConnectResponse\", MsgSubstationAllocationConnectResponse],\n [\"/structs.structs.MsgPermissionRevokeOnObject\", MsgPermissionRevokeOnObject],\n [\"/structs.structs.MsgReactorCancelDefusion\", MsgReactorCancelDefusion],\n [\"/structs.structs.MsgSubstationAllocationConnect\", MsgSubstationAllocationConnect],\n [\"/structs.structs.QueryGetPlanetRequest\", QueryGetPlanetRequest],\n [\"/structs.structs.StructType\", StructType],\n [\"/structs.structs.MsgGuildMembershipResponse\", MsgGuildMembershipResponse],\n [\"/structs.structs.MsgReactorInfuse\", MsgReactorInfuse],\n [\"/structs.structs.MsgStructBuildCompleteAndStash\", MsgStructBuildCompleteAndStash],\n [\"/structs.structs.AddressAssociation\", AddressAssociation],\n [\"/structs.structs.EventAddressAssociation\", EventAddressAssociation],\n [\"/structs.structs.MsgReactorCancelDefusionResponse\", MsgReactorCancelDefusionResponse],\n [\"/structs.structs.AddressRecord\", AddressRecord],\n [\"/structs.structs.StructDefenders\", StructDefenders],\n [\"/structs.structs.EventPlanet\", EventPlanet],\n [\"/structs.structs.MsgGuildUpdateEntrySubstationId\", MsgGuildUpdateEntrySubstationId],\n [\"/structs.structs.AddressActivity\", AddressActivity],\n [\"/structs.structs.EventAlphaInfuse\", EventAlphaInfuse],\n [\"/structs.structs.MsgUpdateParamsResponse\", MsgUpdateParamsResponse],\n [\"/structs.structs.MsgStructOreRefineryComplete\", MsgStructOreRefineryComplete],\n [\"/structs.structs.QueryAllPlayerHaltedRequest\", QueryAllPlayerHaltedRequest],\n [\"/structs.structs.EventAlphaDefuse\", EventAlphaDefuse],\n [\"/structs.structs.QueryAllAddressResponse\", QueryAllAddressResponse],\n [\"/structs.structs.QueryGetPermissionResponse\", QueryGetPermissionResponse],\n [\"/structs.structs.QueryGetPlanetAttributeRequest\", QueryGetPlanetAttributeRequest],\n [\"/structs.structs.EventPermission\", EventPermission],\n [\"/structs.structs.EventOreTheftDetail\", EventOreTheftDetail],\n [\"/structs.structs.QueryGetPlanetResponse\", QueryGetPlanetResponse],\n [\"/structs.structs.Infusion\", Infusion],\n [\"/structs.structs.MsgGuildCreate\", MsgGuildCreate],\n [\"/structs.structs.MsgGuildMembershipRequest\", MsgGuildMembershipRequest],\n [\"/structs.structs.MsgPlayerUpdatePrimaryAddressResponse\", MsgPlayerUpdatePrimaryAddressResponse],\n [\"/structs.structs.MsgAgreementClose\", MsgAgreementClose],\n [\"/structs.structs.QueryGetAgreementResponse\", QueryGetAgreementResponse],\n [\"/structs.structs.EventOreMigrate\", EventOreMigrate],\n [\"/structs.structs.MsgGuildCreateResponse\", MsgGuildCreateResponse],\n [\"/structs.structs.MsgProviderGuildGrant\", MsgProviderGuildGrant],\n [\"/structs.structs.QueryAddressResponse\", QueryAddressResponse],\n [\"/structs.structs.MsgGuildMembershipRequestDeny\", MsgGuildMembershipRequestDeny],\n [\"/structs.structs.MsgStructDeactivate\", MsgStructDeactivate],\n [\"/structs.structs.MsgProviderResponse\", MsgProviderResponse],\n [\"/structs.structs.QueryAllPlanetResponse\", QueryAllPlanetResponse],\n [\"/structs.structs.QueryAllProviderResponse\", QueryAllProviderResponse],\n [\"/structs.structs.EventAlphaInfuseDetail\", EventAlphaInfuseDetail],\n [\"/structs.structs.MsgGuildUpdateEntryRank\", MsgGuildUpdateEntryRank],\n [\"/structs.structs.MsgPermissionGuildRankSet\", MsgPermissionGuildRankSet],\n [\"/structs.structs.MsgPermissionGuildRankRevoke\", MsgPermissionGuildRankRevoke],\n [\"/structs.structs.MsgPlayerUpdateGuildRank\", MsgPlayerUpdateGuildRank],\n [\"/structs.structs.MsgPlayerUpdateGuildRankResponse\", MsgPlayerUpdateGuildRankResponse],\n [\"/structs.structs.MsgGuildUpdateName\", MsgGuildUpdateName],\n [\"/structs.structs.MsgGuildUpdatePfp\", MsgGuildUpdatePfp],\n [\"/structs.structs.MsgPlayerUpdateName\", MsgPlayerUpdateName],\n [\"/structs.structs.MsgPlayerUpdatePfp\", MsgPlayerUpdatePfp],\n [\"/structs.structs.MsgPlayerUpdateResponse\", MsgPlayerUpdateResponse],\n [\"/structs.structs.MsgPlanetUpdateName\", MsgPlanetUpdateName],\n [\"/structs.structs.MsgPlanetUpdateResponse\", MsgPlanetUpdateResponse],\n [\"/structs.structs.MsgSubstationUpdateName\", MsgSubstationUpdateName],\n [\"/structs.structs.MsgSubstationUpdatePfp\", MsgSubstationUpdatePfp],\n [\"/structs.structs.MsgSubstationUpdateResponse\", MsgSubstationUpdateResponse],\n \n];\n\nexport { msgTypes }","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: cosmos/base/query/v1beta1/pagination.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"cosmos.base.query.v1beta1\";\n\n/**\n * PageRequest is to be embedded in gRPC request messages for efficient\n * pagination. Ex:\n *\n * message SomeRequest {\n * Foo some_parameter = 1;\n * PageRequest pagination = 2;\n * }\n */\nexport interface PageRequest {\n /**\n * key is a value returned in PageResponse.next_key to begin\n * querying the next page most efficiently. Only one of offset or key\n * should be set.\n */\n key: Uint8Array;\n /**\n * offset is a numeric offset that can be used when key is unavailable.\n * It is less efficient than using key. Only one of offset or key should\n * be set.\n */\n offset: number;\n /**\n * limit is the total number of results to be returned in the result page.\n * If left empty it will default to a value to be set by each app.\n */\n limit: number;\n /**\n * count_total is set to true to indicate that the result set should include\n * a count of the total number of items available for pagination in UIs.\n * count_total is only respected when offset is used. It is ignored when key\n * is set.\n */\n countTotal: boolean;\n /**\n * reverse is set to true if results are to be returned in the descending order.\n *\n * Since: cosmos-sdk 0.43\n */\n reverse: boolean;\n}\n\n/**\n * PageResponse is to be embedded in gRPC response messages where the\n * corresponding request message has used PageRequest.\n *\n * message SomeResponse {\n * repeated Bar results = 1;\n * PageResponse page = 2;\n * }\n */\nexport interface PageResponse {\n /**\n * next_key is the key to be passed to PageRequest.key to\n * query the next page most efficiently. It will be empty if\n * there are no more results.\n */\n nextKey: Uint8Array;\n /**\n * total is total number of results available if PageRequest.count_total\n * was set, its value is undefined otherwise\n */\n total: number;\n}\n\nfunction createBasePageRequest(): PageRequest {\n return { key: new Uint8Array(0), offset: 0, limit: 0, countTotal: false, reverse: false };\n}\n\nexport const PageRequest: MessageFns = {\n encode(message: PageRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.offset !== 0) {\n writer.uint32(16).uint64(message.offset);\n }\n if (message.limit !== 0) {\n writer.uint32(24).uint64(message.limit);\n }\n if (message.countTotal !== false) {\n writer.uint32(32).bool(message.countTotal);\n }\n if (message.reverse !== false) {\n writer.uint32(40).bool(message.reverse);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PageRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePageRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.bytes();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.offset = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.limit = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.countTotal = reader.bool();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.reverse = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PageRequest {\n return {\n key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(0),\n offset: isSet(object.offset) ? globalThis.Number(object.offset) : 0,\n limit: isSet(object.limit) ? globalThis.Number(object.limit) : 0,\n countTotal: isSet(object.countTotal) ? globalThis.Boolean(object.countTotal) : false,\n reverse: isSet(object.reverse) ? globalThis.Boolean(object.reverse) : false,\n };\n },\n\n toJSON(message: PageRequest): unknown {\n const obj: any = {};\n if (message.key.length !== 0) {\n obj.key = base64FromBytes(message.key);\n }\n if (message.offset !== 0) {\n obj.offset = Math.round(message.offset);\n }\n if (message.limit !== 0) {\n obj.limit = Math.round(message.limit);\n }\n if (message.countTotal !== false) {\n obj.countTotal = message.countTotal;\n }\n if (message.reverse !== false) {\n obj.reverse = message.reverse;\n }\n return obj;\n },\n\n create, I>>(base?: I): PageRequest {\n return PageRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): PageRequest {\n const message = createBasePageRequest();\n message.key = object.key ?? new Uint8Array(0);\n message.offset = object.offset ?? 0;\n message.limit = object.limit ?? 0;\n message.countTotal = object.countTotal ?? false;\n message.reverse = object.reverse ?? false;\n return message;\n },\n};\n\nfunction createBasePageResponse(): PageResponse {\n return { nextKey: new Uint8Array(0), total: 0 };\n}\n\nexport const PageResponse: MessageFns = {\n encode(message: PageResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.nextKey.length !== 0) {\n writer.uint32(10).bytes(message.nextKey);\n }\n if (message.total !== 0) {\n writer.uint32(16).uint64(message.total);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PageResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePageResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.nextKey = reader.bytes();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.total = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PageResponse {\n return {\n nextKey: isSet(object.nextKey) ? bytesFromBase64(object.nextKey) : new Uint8Array(0),\n total: isSet(object.total) ? globalThis.Number(object.total) : 0,\n };\n },\n\n toJSON(message: PageResponse): unknown {\n const obj: any = {};\n if (message.nextKey.length !== 0) {\n obj.nextKey = base64FromBytes(message.nextKey);\n }\n if (message.total !== 0) {\n obj.total = Math.round(message.total);\n }\n return obj;\n },\n\n create, I>>(base?: I): PageResponse {\n return PageResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): PageResponse {\n const message = createBasePageResponse();\n message.nextKey = object.nextKey ?? new Uint8Array(0);\n message.total = object.total ?? 0;\n return message;\n },\n};\n\nfunction bytesFromBase64(b64: string): Uint8Array {\n if ((globalThis as any).Buffer) {\n return Uint8Array.from(globalThis.Buffer.from(b64, \"base64\"));\n } else {\n const bin = globalThis.atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n }\n}\n\nfunction base64FromBytes(arr: Uint8Array): string {\n if ((globalThis as any).Buffer) {\n return globalThis.Buffer.from(arr).toString(\"base64\");\n } else {\n const bin: string[] = [];\n arr.forEach((byte) => {\n bin.push(globalThis.String.fromCharCode(byte));\n });\n return globalThis.btoa(bin.join(\"\"));\n }\n}\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: cosmos/base/v1beta1/coin.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"cosmos.base.v1beta1\";\n\n/**\n * Coin defines a token with a denomination and an amount.\n *\n * NOTE: The amount field is an Int which implements the custom method\n * signatures required by gogoproto.\n */\nexport interface Coin {\n denom: string;\n amount: string;\n}\n\n/**\n * DecCoin defines a token with a denomination and a decimal amount.\n *\n * NOTE: The amount field is an Dec which implements the custom method\n * signatures required by gogoproto.\n */\nexport interface DecCoin {\n denom: string;\n amount: string;\n}\n\nfunction createBaseCoin(): Coin {\n return { denom: \"\", amount: \"\" };\n}\n\nexport const Coin: MessageFns = {\n encode(message: Coin, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.amount !== \"\") {\n writer.uint32(18).string(message.amount);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Coin {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCoin();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.denom = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.amount = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Coin {\n return {\n denom: isSet(object.denom) ? globalThis.String(object.denom) : \"\",\n amount: isSet(object.amount) ? globalThis.String(object.amount) : \"\",\n };\n },\n\n toJSON(message: Coin): unknown {\n const obj: any = {};\n if (message.denom !== \"\") {\n obj.denom = message.denom;\n }\n if (message.amount !== \"\") {\n obj.amount = message.amount;\n }\n return obj;\n },\n\n create, I>>(base?: I): Coin {\n return Coin.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Coin {\n const message = createBaseCoin();\n message.denom = object.denom ?? \"\";\n message.amount = object.amount ?? \"\";\n return message;\n },\n};\n\nfunction createBaseDecCoin(): DecCoin {\n return { denom: \"\", amount: \"\" };\n}\n\nexport const DecCoin: MessageFns = {\n encode(message: DecCoin, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.amount !== \"\") {\n writer.uint32(18).string(message.amount);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DecCoin {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDecCoin();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.denom = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.amount = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): DecCoin {\n return {\n denom: isSet(object.denom) ? globalThis.String(object.denom) : \"\",\n amount: isSet(object.amount) ? globalThis.String(object.amount) : \"\",\n };\n },\n\n toJSON(message: DecCoin): unknown {\n const obj: any = {};\n if (message.denom !== \"\") {\n obj.denom = message.denom;\n }\n if (message.amount !== \"\") {\n obj.amount = message.amount;\n }\n return obj;\n },\n\n create, I>>(base?: I): DecCoin {\n return DecCoin.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): DecCoin {\n const message = createBaseDecCoin();\n message.denom = object.denom ?? \"\";\n message.amount = object.amount ?? \"\";\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: google/protobuf/timestamp.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"google.protobuf\";\n\n/**\n * A Timestamp represents a point in time independent of any time zone or local\n * calendar, encoded as a count of seconds and fractions of seconds at\n * nanosecond resolution. The count is relative to an epoch at UTC midnight on\n * January 1, 1970, in the proleptic Gregorian calendar which extends the\n * Gregorian calendar backwards to year one.\n *\n * All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n * second table is needed for interpretation, using a [24-hour linear\n * smear](https://developers.google.com/time/smear).\n *\n * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n * restricting to that range, we ensure that we can convert to and from [RFC\n * 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n *\n * # Examples\n *\n * Example 1: Compute Timestamp from POSIX `time()`.\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(time(NULL));\n * timestamp.set_nanos(0);\n *\n * Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n *\n * struct timeval tv;\n * gettimeofday(&tv, NULL);\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(tv.tv_sec);\n * timestamp.set_nanos(tv.tv_usec * 1000);\n *\n * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n *\n * FILETIME ft;\n * GetSystemTimeAsFileTime(&ft);\n * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n *\n * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n * Timestamp timestamp;\n * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n *\n * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n *\n * long millis = System.currentTimeMillis();\n *\n * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n * .setNanos((int) ((millis % 1000) * 1000000)).build();\n *\n * Example 5: Compute Timestamp from Java `Instant.now()`.\n *\n * Instant now = Instant.now();\n *\n * Timestamp timestamp =\n * Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n * .setNanos(now.getNano()).build();\n *\n * Example 6: Compute Timestamp from current time in Python.\n *\n * timestamp = Timestamp()\n * timestamp.GetCurrentTime()\n *\n * # JSON Mapping\n *\n * In JSON format, the Timestamp type is encoded as a string in the\n * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n * format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n * where {year} is always expressed using four digits while {month}, {day},\n * {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n * seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n * are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n * is required. A proto3 JSON serializer should always use UTC (as indicated by\n * \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n * able to accept both UTC and other timezones (as indicated by an offset).\n *\n * For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n * 01:30 UTC on January 15, 2017.\n *\n * In JavaScript, one can convert a Date object to this format using the\n * standard\n * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n * method. In Python, a standard `datetime.datetime` object can be converted\n * to this format using\n * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n * the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n * the Joda Time's [`ISODateTimeFormat.dateTime()`](\n * http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n * ) to obtain a formatter capable of generating timestamps in this format.\n */\nexport interface Timestamp {\n /**\n * Represents seconds of UTC time since Unix epoch\n * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n * 9999-12-31T23:59:59Z inclusive.\n */\n seconds: number;\n /**\n * Non-negative fractions of a second at nanosecond resolution. Negative\n * second values with fractions must still have non-negative nanos values\n * that count forward in time. Must be from 0 to 999,999,999\n * inclusive.\n */\n nanos: number;\n}\n\nfunction createBaseTimestamp(): Timestamp {\n return { seconds: 0, nanos: 0 };\n}\n\nexport const Timestamp: MessageFns = {\n encode(message: Timestamp, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.seconds !== 0) {\n writer.uint32(8).int64(message.seconds);\n }\n if (message.nanos !== 0) {\n writer.uint32(16).int32(message.nanos);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Timestamp {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTimestamp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.seconds = longToNumber(reader.int64());\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.nanos = reader.int32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Timestamp {\n return {\n seconds: isSet(object.seconds) ? globalThis.Number(object.seconds) : 0,\n nanos: isSet(object.nanos) ? globalThis.Number(object.nanos) : 0,\n };\n },\n\n toJSON(message: Timestamp): unknown {\n const obj: any = {};\n if (message.seconds !== 0) {\n obj.seconds = Math.round(message.seconds);\n }\n if (message.nanos !== 0) {\n obj.nanos = Math.round(message.nanos);\n }\n return obj;\n },\n\n create, I>>(base?: I): Timestamp {\n return Timestamp.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Timestamp {\n const message = createBaseTimestamp();\n message.seconds = object.seconds ?? 0;\n message.nanos = object.nanos ?? 0;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/address.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { Timestamp } from \"../../google/protobuf/timestamp\";\nimport { registrationStatus, registrationStatusFromJSON, registrationStatusToJSON } from \"./keys\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface AddressRecord {\n address: string;\n playerIndex: number;\n}\n\nexport interface AddressAssociation {\n address: string;\n playerIndex: number;\n registrationStatus: registrationStatus;\n}\n\nexport interface AddressActivity {\n address: string;\n blockHeight: number;\n blockTime: Date | undefined;\n}\n\nexport interface InternalAddressAssociation {\n address: string;\n objectId: string;\n}\n\nfunction createBaseAddressRecord(): AddressRecord {\n return { address: \"\", playerIndex: 0 };\n}\n\nexport const AddressRecord: MessageFns = {\n encode(message: AddressRecord, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.playerIndex !== 0) {\n writer.uint32(16).uint64(message.playerIndex);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): AddressRecord {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAddressRecord();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.playerIndex = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): AddressRecord {\n return {\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n playerIndex: isSet(object.playerIndex) ? globalThis.Number(object.playerIndex) : 0,\n };\n },\n\n toJSON(message: AddressRecord): unknown {\n const obj: any = {};\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.playerIndex !== 0) {\n obj.playerIndex = Math.round(message.playerIndex);\n }\n return obj;\n },\n\n create, I>>(base?: I): AddressRecord {\n return AddressRecord.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): AddressRecord {\n const message = createBaseAddressRecord();\n message.address = object.address ?? \"\";\n message.playerIndex = object.playerIndex ?? 0;\n return message;\n },\n};\n\nfunction createBaseAddressAssociation(): AddressAssociation {\n return { address: \"\", playerIndex: 0, registrationStatus: 0 };\n}\n\nexport const AddressAssociation: MessageFns = {\n encode(message: AddressAssociation, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.playerIndex !== 0) {\n writer.uint32(16).uint64(message.playerIndex);\n }\n if (message.registrationStatus !== 0) {\n writer.uint32(24).int32(message.registrationStatus);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): AddressAssociation {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAddressAssociation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.playerIndex = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.registrationStatus = reader.int32() as any;\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): AddressAssociation {\n return {\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n playerIndex: isSet(object.playerIndex) ? globalThis.Number(object.playerIndex) : 0,\n registrationStatus: isSet(object.registrationStatus) ? registrationStatusFromJSON(object.registrationStatus) : 0,\n };\n },\n\n toJSON(message: AddressAssociation): unknown {\n const obj: any = {};\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.playerIndex !== 0) {\n obj.playerIndex = Math.round(message.playerIndex);\n }\n if (message.registrationStatus !== 0) {\n obj.registrationStatus = registrationStatusToJSON(message.registrationStatus);\n }\n return obj;\n },\n\n create, I>>(base?: I): AddressAssociation {\n return AddressAssociation.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): AddressAssociation {\n const message = createBaseAddressAssociation();\n message.address = object.address ?? \"\";\n message.playerIndex = object.playerIndex ?? 0;\n message.registrationStatus = object.registrationStatus ?? 0;\n return message;\n },\n};\n\nfunction createBaseAddressActivity(): AddressActivity {\n return { address: \"\", blockHeight: 0, blockTime: undefined };\n}\n\nexport const AddressActivity: MessageFns = {\n encode(message: AddressActivity, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.blockHeight !== 0) {\n writer.uint32(16).int64(message.blockHeight);\n }\n if (message.blockTime !== undefined) {\n Timestamp.encode(toTimestamp(message.blockTime), writer.uint32(26).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): AddressActivity {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAddressActivity();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.blockHeight = longToNumber(reader.int64());\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.blockTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): AddressActivity {\n return {\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n blockHeight: isSet(object.blockHeight) ? globalThis.Number(object.blockHeight) : 0,\n blockTime: isSet(object.blockTime) ? fromJsonTimestamp(object.blockTime) : undefined,\n };\n },\n\n toJSON(message: AddressActivity): unknown {\n const obj: any = {};\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.blockHeight !== 0) {\n obj.blockHeight = Math.round(message.blockHeight);\n }\n if (message.blockTime !== undefined) {\n obj.blockTime = message.blockTime.toISOString();\n }\n return obj;\n },\n\n create, I>>(base?: I): AddressActivity {\n return AddressActivity.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): AddressActivity {\n const message = createBaseAddressActivity();\n message.address = object.address ?? \"\";\n message.blockHeight = object.blockHeight ?? 0;\n message.blockTime = object.blockTime ?? undefined;\n return message;\n },\n};\n\nfunction createBaseInternalAddressAssociation(): InternalAddressAssociation {\n return { address: \"\", objectId: \"\" };\n}\n\nexport const InternalAddressAssociation: MessageFns = {\n encode(message: InternalAddressAssociation, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.objectId !== \"\") {\n writer.uint32(18).string(message.objectId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): InternalAddressAssociation {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseInternalAddressAssociation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.objectId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): InternalAddressAssociation {\n return {\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n objectId: isSet(object.objectId) ? globalThis.String(object.objectId) : \"\",\n };\n },\n\n toJSON(message: InternalAddressAssociation): unknown {\n const obj: any = {};\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.objectId !== \"\") {\n obj.objectId = message.objectId;\n }\n return obj;\n },\n\n create, I>>(base?: I): InternalAddressAssociation {\n return InternalAddressAssociation.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): InternalAddressAssociation {\n const message = createBaseInternalAddressAssociation();\n message.address = object.address ?? \"\";\n message.objectId = object.objectId ?? \"\";\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction toTimestamp(date: Date): Timestamp {\n const seconds = Math.trunc(date.getTime() / 1_000);\n const nanos = (date.getTime() % 1_000) * 1_000_000;\n return { seconds, nanos };\n}\n\nfunction fromTimestamp(t: Timestamp): Date {\n let millis = (t.seconds || 0) * 1_000;\n millis += (t.nanos || 0) / 1_000_000;\n return new globalThis.Date(millis);\n}\n\nfunction fromJsonTimestamp(o: any): Date {\n if (o instanceof globalThis.Date) {\n return o;\n } else if (typeof o === \"string\") {\n return new globalThis.Date(o);\n } else {\n return fromTimestamp(Timestamp.fromJSON(o));\n }\n}\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/agreement.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface Agreement {\n id: string;\n providerId: string;\n allocationId: string;\n capacity: number;\n startBlock: number;\n endBlock: number;\n creator: string;\n owner: string;\n}\n\nfunction createBaseAgreement(): Agreement {\n return { id: \"\", providerId: \"\", allocationId: \"\", capacity: 0, startBlock: 0, endBlock: 0, creator: \"\", owner: \"\" };\n}\n\nexport const Agreement: MessageFns = {\n encode(message: Agreement, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n if (message.allocationId !== \"\") {\n writer.uint32(26).string(message.allocationId);\n }\n if (message.capacity !== 0) {\n writer.uint32(32).uint64(message.capacity);\n }\n if (message.startBlock !== 0) {\n writer.uint32(40).uint64(message.startBlock);\n }\n if (message.endBlock !== 0) {\n writer.uint32(48).uint64(message.endBlock);\n }\n if (message.creator !== \"\") {\n writer.uint32(58).string(message.creator);\n }\n if (message.owner !== \"\") {\n writer.uint32(66).string(message.owner);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Agreement {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAgreement();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.allocationId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.capacity = longToNumber(reader.uint64());\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.startBlock = longToNumber(reader.uint64());\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.endBlock = longToNumber(reader.uint64());\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 8: {\n if (tag !== 66) {\n break;\n }\n\n message.owner = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Agreement {\n return {\n id: isSet(object.id) ? globalThis.String(object.id) : \"\",\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n allocationId: isSet(object.allocationId) ? globalThis.String(object.allocationId) : \"\",\n capacity: isSet(object.capacity) ? globalThis.Number(object.capacity) : 0,\n startBlock: isSet(object.startBlock) ? globalThis.Number(object.startBlock) : 0,\n endBlock: isSet(object.endBlock) ? globalThis.Number(object.endBlock) : 0,\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n owner: isSet(object.owner) ? globalThis.String(object.owner) : \"\",\n };\n },\n\n toJSON(message: Agreement): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.allocationId !== \"\") {\n obj.allocationId = message.allocationId;\n }\n if (message.capacity !== 0) {\n obj.capacity = Math.round(message.capacity);\n }\n if (message.startBlock !== 0) {\n obj.startBlock = Math.round(message.startBlock);\n }\n if (message.endBlock !== 0) {\n obj.endBlock = Math.round(message.endBlock);\n }\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.owner !== \"\") {\n obj.owner = message.owner;\n }\n return obj;\n },\n\n create, I>>(base?: I): Agreement {\n return Agreement.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Agreement {\n const message = createBaseAgreement();\n message.id = object.id ?? \"\";\n message.providerId = object.providerId ?? \"\";\n message.allocationId = object.allocationId ?? \"\";\n message.capacity = object.capacity ?? 0;\n message.startBlock = object.startBlock ?? 0;\n message.endBlock = object.endBlock ?? 0;\n message.creator = object.creator ?? \"\";\n message.owner = object.owner ?? \"\";\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/allocation.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { allocationType, allocationTypeFromJSON, allocationTypeToJSON } from \"./keys\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface Allocation {\n id: string;\n type: allocationType;\n /** Core allocation details */\n sourceObjectId: string;\n index: number;\n destinationId: string;\n /** Who does this currently belong to */\n creator: string;\n controller: string;\n /** Locking will be needed for IBC */\n locked: boolean;\n}\n\nfunction createBaseAllocation(): Allocation {\n return {\n id: \"\",\n type: 0,\n sourceObjectId: \"\",\n index: 0,\n destinationId: \"\",\n creator: \"\",\n controller: \"\",\n locked: false,\n };\n}\n\nexport const Allocation: MessageFns = {\n encode(message: Allocation, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.type !== 0) {\n writer.uint32(16).int32(message.type);\n }\n if (message.sourceObjectId !== \"\") {\n writer.uint32(26).string(message.sourceObjectId);\n }\n if (message.index !== 0) {\n writer.uint32(32).uint64(message.index);\n }\n if (message.destinationId !== \"\") {\n writer.uint32(42).string(message.destinationId);\n }\n if (message.creator !== \"\") {\n writer.uint32(50).string(message.creator);\n }\n if (message.controller !== \"\") {\n writer.uint32(58).string(message.controller);\n }\n if (message.locked !== false) {\n writer.uint32(64).bool(message.locked);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Allocation {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAllocation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.type = reader.int32() as any;\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.sourceObjectId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.index = longToNumber(reader.uint64());\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.destinationId = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.controller = reader.string();\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.locked = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Allocation {\n return {\n id: isSet(object.id) ? globalThis.String(object.id) : \"\",\n type: isSet(object.type) ? allocationTypeFromJSON(object.type) : 0,\n sourceObjectId: isSet(object.sourceObjectId) ? globalThis.String(object.sourceObjectId) : \"\",\n index: isSet(object.index) ? globalThis.Number(object.index) : 0,\n destinationId: isSet(object.destinationId) ? globalThis.String(object.destinationId) : \"\",\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n controller: isSet(object.controller) ? globalThis.String(object.controller) : \"\",\n locked: isSet(object.locked) ? globalThis.Boolean(object.locked) : false,\n };\n },\n\n toJSON(message: Allocation): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n if (message.type !== 0) {\n obj.type = allocationTypeToJSON(message.type);\n }\n if (message.sourceObjectId !== \"\") {\n obj.sourceObjectId = message.sourceObjectId;\n }\n if (message.index !== 0) {\n obj.index = Math.round(message.index);\n }\n if (message.destinationId !== \"\") {\n obj.destinationId = message.destinationId;\n }\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.controller !== \"\") {\n obj.controller = message.controller;\n }\n if (message.locked !== false) {\n obj.locked = message.locked;\n }\n return obj;\n },\n\n create, I>>(base?: I): Allocation {\n return Allocation.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Allocation {\n const message = createBaseAllocation();\n message.id = object.id ?? \"\";\n message.type = object.type ?? 0;\n message.sourceObjectId = object.sourceObjectId ?? \"\";\n message.index = object.index ?? 0;\n message.destinationId = object.destinationId ?? \"\";\n message.creator = object.creator ?? \"\";\n message.controller = object.controller ?? \"\";\n message.locked = object.locked ?? false;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/events.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { Timestamp } from \"../../google/protobuf/timestamp\";\nimport { AddressActivity, AddressAssociation } from \"./address\";\nimport { Agreement } from \"./agreement\";\nimport { Allocation } from \"./allocation\";\nimport { Fleet } from \"./fleet\";\nimport { GridRecord } from \"./grid\";\nimport { Guild, GuildMembershipApplication } from \"./guild\";\nimport { Infusion } from \"./infusion\";\nimport {\n ambit,\n ambitFromJSON,\n ambitToJSON,\n objectType,\n objectTypeFromJSON,\n objectTypeToJSON,\n raidStatus,\n raidStatusFromJSON,\n raidStatusToJSON,\n techActiveWeaponry,\n techActiveWeaponryFromJSON,\n techActiveWeaponryToJSON,\n techPassiveWeaponry,\n techPassiveWeaponryFromJSON,\n techPassiveWeaponryToJSON,\n techPlanetaryDefenses,\n techPlanetaryDefensesFromJSON,\n techPlanetaryDefensesToJSON,\n techUnitDefenses,\n techUnitDefensesFromJSON,\n techUnitDefensesToJSON,\n techWeaponControl,\n techWeaponControlFromJSON,\n techWeaponControlToJSON,\n techWeaponSystem,\n techWeaponSystemFromJSON,\n techWeaponSystemToJSON,\n} from \"./keys\";\nimport { PermissionRecord } from \"./permission\";\nimport { Planet, PlanetAttributeRecord } from \"./planet\";\nimport { Player } from \"./player\";\nimport { Provider } from \"./provider\";\nimport { Reactor } from \"./reactor\";\nimport { Struct, StructAttributeRecord, StructDefender, StructType } from \"./struct\";\nimport { Substation } from \"./substation\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface EventAllocation {\n allocation: Allocation | undefined;\n}\n\nexport interface EventAgreement {\n agreement: Agreement | undefined;\n}\n\nexport interface EventFleet {\n fleet: Fleet | undefined;\n}\n\nexport interface EventGuild {\n guild: Guild | undefined;\n}\n\nexport interface EventInfusion {\n infusion: Infusion | undefined;\n}\n\nexport interface EventPlanet {\n planet: Planet | undefined;\n}\n\nexport interface EventPlanetAttribute {\n planetAttributeRecord: PlanetAttributeRecord | undefined;\n}\n\nexport interface EventPlayer {\n player: Player | undefined;\n}\n\nexport interface EventProvider {\n provider: Provider | undefined;\n}\n\nexport interface EventReactor {\n reactor: Reactor | undefined;\n}\n\nexport interface EventStruct {\n structure: Struct | undefined;\n}\n\nexport interface EventStructAttribute {\n structAttributeRecord: StructAttributeRecord | undefined;\n}\n\nexport interface EventStructDefender {\n structDefender: StructDefender | undefined;\n}\n\nexport interface EventStructType {\n structType: StructType | undefined;\n}\n\nexport interface EventSubstation {\n substation: Substation | undefined;\n}\n\nexport interface EventTime {\n eventTimeDetail: EventTimeDetail | undefined;\n}\n\nexport interface EventTimeDetail {\n blockHeight: number;\n blockTime: Date | undefined;\n}\n\nexport interface EventPermission {\n permissionRecord: PermissionRecord | undefined;\n}\n\nexport interface EventGrid {\n gridRecord: GridRecord | undefined;\n}\n\nexport interface EventProviderAddress {\n eventProviderAddressDetail: EventProviderAddressDetail | undefined;\n}\n\nexport interface EventProviderAddressDetail {\n providerId: string;\n collateralPool: string;\n earningPool: string;\n}\n\nexport interface EventProviderGrantGuild {\n eventProviderGrantGuildDetail: EventProviderGrantGuildDetail | undefined;\n}\n\nexport interface EventProviderGrantGuildDetail {\n providerId: string;\n guildId: string;\n}\n\nexport interface EventProviderRevokeGuild {\n eventProviderRevokeGuildDetail: EventProviderRevokeGuildDetail | undefined;\n}\n\nexport interface EventProviderRevokeGuildDetail {\n providerId: string;\n guildId: string;\n}\n\nexport interface EventPlayerHalted {\n playerId: string;\n}\n\nexport interface EventPlayerResumed {\n playerId: string;\n}\n\nexport interface EventDelete {\n objectId: string;\n}\n\nexport interface EventAddressAssociation {\n addressAssociation: AddressAssociation | undefined;\n}\n\nexport interface EventAddressActivity {\n addressActivity: AddressActivity | undefined;\n}\n\nexport interface EventGuildBankAddress {\n eventGuildBankAddressDetail: EventGuildBankAddressDetail | undefined;\n}\n\nexport interface EventGuildBankAddressDetail {\n guildId: string;\n bankCollateralPool: string;\n bankTokenPool: string;\n}\n\nexport interface EventGuildBankMint {\n eventGuildBankMintDetail: EventGuildBankMintDetail | undefined;\n}\n\nexport interface EventGuildBankMintDetail {\n guildId: string;\n amountAlpha: number;\n amountToken: number;\n playerId: string;\n}\n\nexport interface EventGuildBankRedeem {\n eventGuildBankRedeemDetail: EventGuildBankRedeemDetail | undefined;\n}\n\nexport interface EventGuildBankRedeemDetail {\n guildId: string;\n amountAlpha: number;\n amountToken: number;\n playerId: string;\n}\n\nexport interface EventGuildBankConfiscateAndBurn {\n eventGuildBankConfiscateAndBurnDetail: EventGuildBankConfiscateAndBurnDetail | undefined;\n}\n\nexport interface EventGuildBankConfiscateAndBurnDetail {\n guildId: string;\n amountAlpha: number;\n amountToken: number;\n address: string;\n}\n\nexport interface EventGuildMembershipApplication {\n guildMembershipApplication: GuildMembershipApplication | undefined;\n}\n\nexport interface EventOreMine {\n eventOreMineDetail: EventOreMineDetail | undefined;\n}\n\nexport interface EventOreMineDetail {\n playerId: string;\n primaryAddress: string;\n amount: number;\n}\n\nexport interface EventAlphaRefine {\n eventAlphaRefineDetail: EventAlphaRefineDetail | undefined;\n}\n\nexport interface EventAlphaRefineDetail {\n playerId: string;\n primaryAddress: string;\n amount: number;\n}\n\nexport interface EventAlphaInfuse {\n eventAlphaInfuseDetail: EventAlphaInfuseDetail | undefined;\n}\n\nexport interface EventAlphaInfuseDetail {\n playerId: string;\n primaryAddress: string;\n amount: number;\n}\n\nexport interface EventAlphaDefuse {\n eventAlphaDefuseDetail: EventAlphaDefuseDetail | undefined;\n}\n\nexport interface EventAlphaDefuseDetail {\n primaryAddress: string;\n amount: number;\n}\n\nexport interface EventOreTheft {\n eventOreTheftDetail: EventOreTheftDetail | undefined;\n}\n\nexport interface EventOreTheftDetail {\n victimPrimaryAddress: string;\n victimPlayerId: string;\n thiefPrimaryAddress: string;\n thiefPlayerId: string;\n amount: number;\n}\n\nexport interface EventOreMigrate {\n eventOreMigrateDetail: EventOreMigrateDetail | undefined;\n}\n\nexport interface EventOreMigrateDetail {\n playerId: string;\n primaryAddress: string;\n oldPrimaryAddress: string;\n amount: number;\n}\n\nexport interface EventAttack {\n eventAttackDetail: EventAttackDetail | undefined;\n}\n\nexport interface EventAttackDetail {\n attackerStructId: string;\n attackerStructType: number;\n attackerStructLocationType: objectType;\n attackerStructLocationId: string;\n attackerStructOperatingAmbit: ambit;\n attackerStructSlot: number;\n weaponSystem: techWeaponSystem;\n weaponControl: techWeaponControl;\n activeWeaponry: techActiveWeaponry;\n eventAttackShotDetail: EventAttackShotDetail[];\n recoilDamageToAttacker: boolean;\n recoilDamage: number;\n recoilDamageDestroyedAttacker: boolean;\n planetaryDefenseCannonDamageToAttacker: boolean;\n planetaryDefenseCannonDamage: number;\n planetaryDefenseCannonDamageDestroyedAttacker: boolean;\n attackerPlayerId: string;\n targetPlayerId: string;\n}\n\nexport interface EventAttackShotDetail {\n targetStructId: string;\n targetStructType: number;\n targetStructLocationType: objectType;\n targetStructLocationId: string;\n targetStructOperatingAmbit: ambit;\n targetStructSlot: number;\n evaded: boolean;\n evadedCause: techUnitDefenses;\n evadedByPlanetaryDefenses: boolean;\n evadedByPlanetaryDefensesCause: techPlanetaryDefenses;\n blocked: boolean;\n blockedByStructId: string;\n blockedByStructType: number;\n blockedByStructLocationType: objectType;\n blockedByStructLocationId: string;\n blockedByStructOperatingAmbit: ambit;\n blockedByStructSlot: number;\n blockerDestroyed: boolean;\n eventAttackDefenderCounterDetail: EventAttackDefenderCounterDetail[];\n damageDealt: number;\n damageReduction: number;\n damageReductionCause: techUnitDefenses;\n damage: number;\n targetCountered: boolean;\n targetCounteredDamage: number;\n targetCounterDestroyedAttacker: boolean;\n targetCounterCause: techPassiveWeaponry;\n targetDestroyed: boolean;\n postDestructionDamageToAttacker: boolean;\n postDestructionDamage: number;\n postDestructionDamageDestroyedAttacker: boolean;\n postDestructionDamageCause: techPassiveWeaponry;\n}\n\nexport interface EventAttackDefenderCounterDetail {\n counterByStructId: string;\n counterByStructType: number;\n counterByStructLocationType: objectType;\n counterByStructLocationId: string;\n counterByStructOperatingAmbit: ambit;\n counterByStructSlot: number;\n counterDamage: number;\n counterDestroyedAttacker: boolean;\n}\n\nexport interface EventRaid {\n eventRaidDetail: EventRaidDetail | undefined;\n}\n\nexport interface EventRaidDetail {\n fleetId: string;\n planetId: string;\n status: raidStatus;\n}\n\nfunction createBaseEventAllocation(): EventAllocation {\n return { allocation: undefined };\n}\n\nexport const EventAllocation: MessageFns = {\n encode(message: EventAllocation, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.allocation !== undefined) {\n Allocation.encode(message.allocation, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAllocation {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAllocation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.allocation = Allocation.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAllocation {\n return { allocation: isSet(object.allocation) ? Allocation.fromJSON(object.allocation) : undefined };\n },\n\n toJSON(message: EventAllocation): unknown {\n const obj: any = {};\n if (message.allocation !== undefined) {\n obj.allocation = Allocation.toJSON(message.allocation);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAllocation {\n return EventAllocation.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAllocation {\n const message = createBaseEventAllocation();\n message.allocation = (object.allocation !== undefined && object.allocation !== null)\n ? Allocation.fromPartial(object.allocation)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventAgreement(): EventAgreement {\n return { agreement: undefined };\n}\n\nexport const EventAgreement: MessageFns = {\n encode(message: EventAgreement, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.agreement !== undefined) {\n Agreement.encode(message.agreement, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAgreement {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAgreement();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.agreement = Agreement.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAgreement {\n return { agreement: isSet(object.agreement) ? Agreement.fromJSON(object.agreement) : undefined };\n },\n\n toJSON(message: EventAgreement): unknown {\n const obj: any = {};\n if (message.agreement !== undefined) {\n obj.agreement = Agreement.toJSON(message.agreement);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAgreement {\n return EventAgreement.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAgreement {\n const message = createBaseEventAgreement();\n message.agreement = (object.agreement !== undefined && object.agreement !== null)\n ? Agreement.fromPartial(object.agreement)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventFleet(): EventFleet {\n return { fleet: undefined };\n}\n\nexport const EventFleet: MessageFns = {\n encode(message: EventFleet, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.fleet !== undefined) {\n Fleet.encode(message.fleet, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventFleet {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventFleet();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.fleet = Fleet.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventFleet {\n return { fleet: isSet(object.fleet) ? Fleet.fromJSON(object.fleet) : undefined };\n },\n\n toJSON(message: EventFleet): unknown {\n const obj: any = {};\n if (message.fleet !== undefined) {\n obj.fleet = Fleet.toJSON(message.fleet);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventFleet {\n return EventFleet.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventFleet {\n const message = createBaseEventFleet();\n message.fleet = (object.fleet !== undefined && object.fleet !== null) ? Fleet.fromPartial(object.fleet) : undefined;\n return message;\n },\n};\n\nfunction createBaseEventGuild(): EventGuild {\n return { guild: undefined };\n}\n\nexport const EventGuild: MessageFns = {\n encode(message: EventGuild, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.guild !== undefined) {\n Guild.encode(message.guild, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventGuild {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventGuild();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.guild = Guild.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventGuild {\n return { guild: isSet(object.guild) ? Guild.fromJSON(object.guild) : undefined };\n },\n\n toJSON(message: EventGuild): unknown {\n const obj: any = {};\n if (message.guild !== undefined) {\n obj.guild = Guild.toJSON(message.guild);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventGuild {\n return EventGuild.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventGuild {\n const message = createBaseEventGuild();\n message.guild = (object.guild !== undefined && object.guild !== null) ? Guild.fromPartial(object.guild) : undefined;\n return message;\n },\n};\n\nfunction createBaseEventInfusion(): EventInfusion {\n return { infusion: undefined };\n}\n\nexport const EventInfusion: MessageFns = {\n encode(message: EventInfusion, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.infusion !== undefined) {\n Infusion.encode(message.infusion, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventInfusion {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventInfusion();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.infusion = Infusion.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventInfusion {\n return { infusion: isSet(object.infusion) ? Infusion.fromJSON(object.infusion) : undefined };\n },\n\n toJSON(message: EventInfusion): unknown {\n const obj: any = {};\n if (message.infusion !== undefined) {\n obj.infusion = Infusion.toJSON(message.infusion);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventInfusion {\n return EventInfusion.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventInfusion {\n const message = createBaseEventInfusion();\n message.infusion = (object.infusion !== undefined && object.infusion !== null)\n ? Infusion.fromPartial(object.infusion)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventPlanet(): EventPlanet {\n return { planet: undefined };\n}\n\nexport const EventPlanet: MessageFns = {\n encode(message: EventPlanet, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.planet !== undefined) {\n Planet.encode(message.planet, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventPlanet {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventPlanet();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.planet = Planet.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventPlanet {\n return { planet: isSet(object.planet) ? Planet.fromJSON(object.planet) : undefined };\n },\n\n toJSON(message: EventPlanet): unknown {\n const obj: any = {};\n if (message.planet !== undefined) {\n obj.planet = Planet.toJSON(message.planet);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventPlanet {\n return EventPlanet.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventPlanet {\n const message = createBaseEventPlanet();\n message.planet = (object.planet !== undefined && object.planet !== null)\n ? Planet.fromPartial(object.planet)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventPlanetAttribute(): EventPlanetAttribute {\n return { planetAttributeRecord: undefined };\n}\n\nexport const EventPlanetAttribute: MessageFns = {\n encode(message: EventPlanetAttribute, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.planetAttributeRecord !== undefined) {\n PlanetAttributeRecord.encode(message.planetAttributeRecord, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventPlanetAttribute {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventPlanetAttribute();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.planetAttributeRecord = PlanetAttributeRecord.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventPlanetAttribute {\n return {\n planetAttributeRecord: isSet(object.planetAttributeRecord)\n ? PlanetAttributeRecord.fromJSON(object.planetAttributeRecord)\n : undefined,\n };\n },\n\n toJSON(message: EventPlanetAttribute): unknown {\n const obj: any = {};\n if (message.planetAttributeRecord !== undefined) {\n obj.planetAttributeRecord = PlanetAttributeRecord.toJSON(message.planetAttributeRecord);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventPlanetAttribute {\n return EventPlanetAttribute.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventPlanetAttribute {\n const message = createBaseEventPlanetAttribute();\n message.planetAttributeRecord =\n (object.planetAttributeRecord !== undefined && object.planetAttributeRecord !== null)\n ? PlanetAttributeRecord.fromPartial(object.planetAttributeRecord)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventPlayer(): EventPlayer {\n return { player: undefined };\n}\n\nexport const EventPlayer: MessageFns = {\n encode(message: EventPlayer, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.player !== undefined) {\n Player.encode(message.player, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventPlayer {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventPlayer();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.player = Player.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventPlayer {\n return { player: isSet(object.player) ? Player.fromJSON(object.player) : undefined };\n },\n\n toJSON(message: EventPlayer): unknown {\n const obj: any = {};\n if (message.player !== undefined) {\n obj.player = Player.toJSON(message.player);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventPlayer {\n return EventPlayer.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventPlayer {\n const message = createBaseEventPlayer();\n message.player = (object.player !== undefined && object.player !== null)\n ? Player.fromPartial(object.player)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventProvider(): EventProvider {\n return { provider: undefined };\n}\n\nexport const EventProvider: MessageFns = {\n encode(message: EventProvider, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.provider !== undefined) {\n Provider.encode(message.provider, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventProvider {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventProvider();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.provider = Provider.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventProvider {\n return { provider: isSet(object.provider) ? Provider.fromJSON(object.provider) : undefined };\n },\n\n toJSON(message: EventProvider): unknown {\n const obj: any = {};\n if (message.provider !== undefined) {\n obj.provider = Provider.toJSON(message.provider);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventProvider {\n return EventProvider.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventProvider {\n const message = createBaseEventProvider();\n message.provider = (object.provider !== undefined && object.provider !== null)\n ? Provider.fromPartial(object.provider)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventReactor(): EventReactor {\n return { reactor: undefined };\n}\n\nexport const EventReactor: MessageFns = {\n encode(message: EventReactor, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.reactor !== undefined) {\n Reactor.encode(message.reactor, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventReactor {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventReactor();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.reactor = Reactor.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventReactor {\n return { reactor: isSet(object.reactor) ? Reactor.fromJSON(object.reactor) : undefined };\n },\n\n toJSON(message: EventReactor): unknown {\n const obj: any = {};\n if (message.reactor !== undefined) {\n obj.reactor = Reactor.toJSON(message.reactor);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventReactor {\n return EventReactor.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventReactor {\n const message = createBaseEventReactor();\n message.reactor = (object.reactor !== undefined && object.reactor !== null)\n ? Reactor.fromPartial(object.reactor)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventStruct(): EventStruct {\n return { structure: undefined };\n}\n\nexport const EventStruct: MessageFns = {\n encode(message: EventStruct, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.structure !== undefined) {\n Struct.encode(message.structure, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventStruct {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventStruct();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.structure = Struct.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventStruct {\n return { structure: isSet(object.structure) ? Struct.fromJSON(object.structure) : undefined };\n },\n\n toJSON(message: EventStruct): unknown {\n const obj: any = {};\n if (message.structure !== undefined) {\n obj.structure = Struct.toJSON(message.structure);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventStruct {\n return EventStruct.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventStruct {\n const message = createBaseEventStruct();\n message.structure = (object.structure !== undefined && object.structure !== null)\n ? Struct.fromPartial(object.structure)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventStructAttribute(): EventStructAttribute {\n return { structAttributeRecord: undefined };\n}\n\nexport const EventStructAttribute: MessageFns = {\n encode(message: EventStructAttribute, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.structAttributeRecord !== undefined) {\n StructAttributeRecord.encode(message.structAttributeRecord, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventStructAttribute {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventStructAttribute();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.structAttributeRecord = StructAttributeRecord.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventStructAttribute {\n return {\n structAttributeRecord: isSet(object.structAttributeRecord)\n ? StructAttributeRecord.fromJSON(object.structAttributeRecord)\n : undefined,\n };\n },\n\n toJSON(message: EventStructAttribute): unknown {\n const obj: any = {};\n if (message.structAttributeRecord !== undefined) {\n obj.structAttributeRecord = StructAttributeRecord.toJSON(message.structAttributeRecord);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventStructAttribute {\n return EventStructAttribute.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventStructAttribute {\n const message = createBaseEventStructAttribute();\n message.structAttributeRecord =\n (object.structAttributeRecord !== undefined && object.structAttributeRecord !== null)\n ? StructAttributeRecord.fromPartial(object.structAttributeRecord)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventStructDefender(): EventStructDefender {\n return { structDefender: undefined };\n}\n\nexport const EventStructDefender: MessageFns = {\n encode(message: EventStructDefender, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.structDefender !== undefined) {\n StructDefender.encode(message.structDefender, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventStructDefender {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventStructDefender();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.structDefender = StructDefender.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventStructDefender {\n return {\n structDefender: isSet(object.structDefender) ? StructDefender.fromJSON(object.structDefender) : undefined,\n };\n },\n\n toJSON(message: EventStructDefender): unknown {\n const obj: any = {};\n if (message.structDefender !== undefined) {\n obj.structDefender = StructDefender.toJSON(message.structDefender);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventStructDefender {\n return EventStructDefender.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventStructDefender {\n const message = createBaseEventStructDefender();\n message.structDefender = (object.structDefender !== undefined && object.structDefender !== null)\n ? StructDefender.fromPartial(object.structDefender)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventStructType(): EventStructType {\n return { structType: undefined };\n}\n\nexport const EventStructType: MessageFns = {\n encode(message: EventStructType, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.structType !== undefined) {\n StructType.encode(message.structType, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventStructType {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventStructType();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.structType = StructType.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventStructType {\n return { structType: isSet(object.structType) ? StructType.fromJSON(object.structType) : undefined };\n },\n\n toJSON(message: EventStructType): unknown {\n const obj: any = {};\n if (message.structType !== undefined) {\n obj.structType = StructType.toJSON(message.structType);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventStructType {\n return EventStructType.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventStructType {\n const message = createBaseEventStructType();\n message.structType = (object.structType !== undefined && object.structType !== null)\n ? StructType.fromPartial(object.structType)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventSubstation(): EventSubstation {\n return { substation: undefined };\n}\n\nexport const EventSubstation: MessageFns = {\n encode(message: EventSubstation, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.substation !== undefined) {\n Substation.encode(message.substation, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventSubstation {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventSubstation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.substation = Substation.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventSubstation {\n return { substation: isSet(object.substation) ? Substation.fromJSON(object.substation) : undefined };\n },\n\n toJSON(message: EventSubstation): unknown {\n const obj: any = {};\n if (message.substation !== undefined) {\n obj.substation = Substation.toJSON(message.substation);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventSubstation {\n return EventSubstation.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventSubstation {\n const message = createBaseEventSubstation();\n message.substation = (object.substation !== undefined && object.substation !== null)\n ? Substation.fromPartial(object.substation)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventTime(): EventTime {\n return { eventTimeDetail: undefined };\n}\n\nexport const EventTime: MessageFns = {\n encode(message: EventTime, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventTimeDetail !== undefined) {\n EventTimeDetail.encode(message.eventTimeDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventTime {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventTime();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventTimeDetail = EventTimeDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventTime {\n return {\n eventTimeDetail: isSet(object.eventTimeDetail) ? EventTimeDetail.fromJSON(object.eventTimeDetail) : undefined,\n };\n },\n\n toJSON(message: EventTime): unknown {\n const obj: any = {};\n if (message.eventTimeDetail !== undefined) {\n obj.eventTimeDetail = EventTimeDetail.toJSON(message.eventTimeDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventTime {\n return EventTime.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventTime {\n const message = createBaseEventTime();\n message.eventTimeDetail = (object.eventTimeDetail !== undefined && object.eventTimeDetail !== null)\n ? EventTimeDetail.fromPartial(object.eventTimeDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventTimeDetail(): EventTimeDetail {\n return { blockHeight: 0, blockTime: undefined };\n}\n\nexport const EventTimeDetail: MessageFns = {\n encode(message: EventTimeDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.blockHeight !== 0) {\n writer.uint32(8).int64(message.blockHeight);\n }\n if (message.blockTime !== undefined) {\n Timestamp.encode(toTimestamp(message.blockTime), writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventTimeDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventTimeDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.blockHeight = longToNumber(reader.int64());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.blockTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventTimeDetail {\n return {\n blockHeight: isSet(object.blockHeight) ? globalThis.Number(object.blockHeight) : 0,\n blockTime: isSet(object.blockTime) ? fromJsonTimestamp(object.blockTime) : undefined,\n };\n },\n\n toJSON(message: EventTimeDetail): unknown {\n const obj: any = {};\n if (message.blockHeight !== 0) {\n obj.blockHeight = Math.round(message.blockHeight);\n }\n if (message.blockTime !== undefined) {\n obj.blockTime = message.blockTime.toISOString();\n }\n return obj;\n },\n\n create, I>>(base?: I): EventTimeDetail {\n return EventTimeDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventTimeDetail {\n const message = createBaseEventTimeDetail();\n message.blockHeight = object.blockHeight ?? 0;\n message.blockTime = object.blockTime ?? undefined;\n return message;\n },\n};\n\nfunction createBaseEventPermission(): EventPermission {\n return { permissionRecord: undefined };\n}\n\nexport const EventPermission: MessageFns = {\n encode(message: EventPermission, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.permissionRecord !== undefined) {\n PermissionRecord.encode(message.permissionRecord, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventPermission {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventPermission();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.permissionRecord = PermissionRecord.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventPermission {\n return {\n permissionRecord: isSet(object.permissionRecord) ? PermissionRecord.fromJSON(object.permissionRecord) : undefined,\n };\n },\n\n toJSON(message: EventPermission): unknown {\n const obj: any = {};\n if (message.permissionRecord !== undefined) {\n obj.permissionRecord = PermissionRecord.toJSON(message.permissionRecord);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventPermission {\n return EventPermission.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventPermission {\n const message = createBaseEventPermission();\n message.permissionRecord = (object.permissionRecord !== undefined && object.permissionRecord !== null)\n ? PermissionRecord.fromPartial(object.permissionRecord)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventGrid(): EventGrid {\n return { gridRecord: undefined };\n}\n\nexport const EventGrid: MessageFns = {\n encode(message: EventGrid, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.gridRecord !== undefined) {\n GridRecord.encode(message.gridRecord, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventGrid {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventGrid();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.gridRecord = GridRecord.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventGrid {\n return { gridRecord: isSet(object.gridRecord) ? GridRecord.fromJSON(object.gridRecord) : undefined };\n },\n\n toJSON(message: EventGrid): unknown {\n const obj: any = {};\n if (message.gridRecord !== undefined) {\n obj.gridRecord = GridRecord.toJSON(message.gridRecord);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventGrid {\n return EventGrid.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventGrid {\n const message = createBaseEventGrid();\n message.gridRecord = (object.gridRecord !== undefined && object.gridRecord !== null)\n ? GridRecord.fromPartial(object.gridRecord)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventProviderAddress(): EventProviderAddress {\n return { eventProviderAddressDetail: undefined };\n}\n\nexport const EventProviderAddress: MessageFns = {\n encode(message: EventProviderAddress, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventProviderAddressDetail !== undefined) {\n EventProviderAddressDetail.encode(message.eventProviderAddressDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventProviderAddress {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventProviderAddress();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventProviderAddressDetail = EventProviderAddressDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventProviderAddress {\n return {\n eventProviderAddressDetail: isSet(object.eventProviderAddressDetail)\n ? EventProviderAddressDetail.fromJSON(object.eventProviderAddressDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventProviderAddress): unknown {\n const obj: any = {};\n if (message.eventProviderAddressDetail !== undefined) {\n obj.eventProviderAddressDetail = EventProviderAddressDetail.toJSON(message.eventProviderAddressDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventProviderAddress {\n return EventProviderAddress.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventProviderAddress {\n const message = createBaseEventProviderAddress();\n message.eventProviderAddressDetail =\n (object.eventProviderAddressDetail !== undefined && object.eventProviderAddressDetail !== null)\n ? EventProviderAddressDetail.fromPartial(object.eventProviderAddressDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventProviderAddressDetail(): EventProviderAddressDetail {\n return { providerId: \"\", collateralPool: \"\", earningPool: \"\" };\n}\n\nexport const EventProviderAddressDetail: MessageFns = {\n encode(message: EventProviderAddressDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.providerId !== \"\") {\n writer.uint32(10).string(message.providerId);\n }\n if (message.collateralPool !== \"\") {\n writer.uint32(18).string(message.collateralPool);\n }\n if (message.earningPool !== \"\") {\n writer.uint32(26).string(message.earningPool);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventProviderAddressDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventProviderAddressDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.collateralPool = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.earningPool = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventProviderAddressDetail {\n return {\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n collateralPool: isSet(object.collateralPool) ? globalThis.String(object.collateralPool) : \"\",\n earningPool: isSet(object.earningPool) ? globalThis.String(object.earningPool) : \"\",\n };\n },\n\n toJSON(message: EventProviderAddressDetail): unknown {\n const obj: any = {};\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.collateralPool !== \"\") {\n obj.collateralPool = message.collateralPool;\n }\n if (message.earningPool !== \"\") {\n obj.earningPool = message.earningPool;\n }\n return obj;\n },\n\n create, I>>(base?: I): EventProviderAddressDetail {\n return EventProviderAddressDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventProviderAddressDetail {\n const message = createBaseEventProviderAddressDetail();\n message.providerId = object.providerId ?? \"\";\n message.collateralPool = object.collateralPool ?? \"\";\n message.earningPool = object.earningPool ?? \"\";\n return message;\n },\n};\n\nfunction createBaseEventProviderGrantGuild(): EventProviderGrantGuild {\n return { eventProviderGrantGuildDetail: undefined };\n}\n\nexport const EventProviderGrantGuild: MessageFns = {\n encode(message: EventProviderGrantGuild, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventProviderGrantGuildDetail !== undefined) {\n EventProviderGrantGuildDetail.encode(message.eventProviderGrantGuildDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventProviderGrantGuild {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventProviderGrantGuild();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventProviderGrantGuildDetail = EventProviderGrantGuildDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventProviderGrantGuild {\n return {\n eventProviderGrantGuildDetail: isSet(object.eventProviderGrantGuildDetail)\n ? EventProviderGrantGuildDetail.fromJSON(object.eventProviderGrantGuildDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventProviderGrantGuild): unknown {\n const obj: any = {};\n if (message.eventProviderGrantGuildDetail !== undefined) {\n obj.eventProviderGrantGuildDetail = EventProviderGrantGuildDetail.toJSON(message.eventProviderGrantGuildDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventProviderGrantGuild {\n return EventProviderGrantGuild.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventProviderGrantGuild {\n const message = createBaseEventProviderGrantGuild();\n message.eventProviderGrantGuildDetail =\n (object.eventProviderGrantGuildDetail !== undefined && object.eventProviderGrantGuildDetail !== null)\n ? EventProviderGrantGuildDetail.fromPartial(object.eventProviderGrantGuildDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventProviderGrantGuildDetail(): EventProviderGrantGuildDetail {\n return { providerId: \"\", guildId: \"\" };\n}\n\nexport const EventProviderGrantGuildDetail: MessageFns = {\n encode(message: EventProviderGrantGuildDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.providerId !== \"\") {\n writer.uint32(10).string(message.providerId);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventProviderGrantGuildDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventProviderGrantGuildDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventProviderGrantGuildDetail {\n return {\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n };\n },\n\n toJSON(message: EventProviderGrantGuildDetail): unknown {\n const obj: any = {};\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n return obj;\n },\n\n create, I>>(base?: I): EventProviderGrantGuildDetail {\n return EventProviderGrantGuildDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): EventProviderGrantGuildDetail {\n const message = createBaseEventProviderGrantGuildDetail();\n message.providerId = object.providerId ?? \"\";\n message.guildId = object.guildId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseEventProviderRevokeGuild(): EventProviderRevokeGuild {\n return { eventProviderRevokeGuildDetail: undefined };\n}\n\nexport const EventProviderRevokeGuild: MessageFns = {\n encode(message: EventProviderRevokeGuild, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventProviderRevokeGuildDetail !== undefined) {\n EventProviderRevokeGuildDetail.encode(message.eventProviderRevokeGuildDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventProviderRevokeGuild {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventProviderRevokeGuild();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventProviderRevokeGuildDetail = EventProviderRevokeGuildDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventProviderRevokeGuild {\n return {\n eventProviderRevokeGuildDetail: isSet(object.eventProviderRevokeGuildDetail)\n ? EventProviderRevokeGuildDetail.fromJSON(object.eventProviderRevokeGuildDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventProviderRevokeGuild): unknown {\n const obj: any = {};\n if (message.eventProviderRevokeGuildDetail !== undefined) {\n obj.eventProviderRevokeGuildDetail = EventProviderRevokeGuildDetail.toJSON(\n message.eventProviderRevokeGuildDetail,\n );\n }\n return obj;\n },\n\n create, I>>(base?: I): EventProviderRevokeGuild {\n return EventProviderRevokeGuild.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventProviderRevokeGuild {\n const message = createBaseEventProviderRevokeGuild();\n message.eventProviderRevokeGuildDetail =\n (object.eventProviderRevokeGuildDetail !== undefined && object.eventProviderRevokeGuildDetail !== null)\n ? EventProviderRevokeGuildDetail.fromPartial(object.eventProviderRevokeGuildDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventProviderRevokeGuildDetail(): EventProviderRevokeGuildDetail {\n return { providerId: \"\", guildId: \"\" };\n}\n\nexport const EventProviderRevokeGuildDetail: MessageFns = {\n encode(message: EventProviderRevokeGuildDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.providerId !== \"\") {\n writer.uint32(10).string(message.providerId);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventProviderRevokeGuildDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventProviderRevokeGuildDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventProviderRevokeGuildDetail {\n return {\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n };\n },\n\n toJSON(message: EventProviderRevokeGuildDetail): unknown {\n const obj: any = {};\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n return obj;\n },\n\n create, I>>(base?: I): EventProviderRevokeGuildDetail {\n return EventProviderRevokeGuildDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): EventProviderRevokeGuildDetail {\n const message = createBaseEventProviderRevokeGuildDetail();\n message.providerId = object.providerId ?? \"\";\n message.guildId = object.guildId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseEventPlayerHalted(): EventPlayerHalted {\n return { playerId: \"\" };\n}\n\nexport const EventPlayerHalted: MessageFns = {\n encode(message: EventPlayerHalted, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.playerId !== \"\") {\n writer.uint32(10).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventPlayerHalted {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventPlayerHalted();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventPlayerHalted {\n return { playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\" };\n },\n\n toJSON(message: EventPlayerHalted): unknown {\n const obj: any = {};\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): EventPlayerHalted {\n return EventPlayerHalted.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventPlayerHalted {\n const message = createBaseEventPlayerHalted();\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseEventPlayerResumed(): EventPlayerResumed {\n return { playerId: \"\" };\n}\n\nexport const EventPlayerResumed: MessageFns = {\n encode(message: EventPlayerResumed, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.playerId !== \"\") {\n writer.uint32(10).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventPlayerResumed {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventPlayerResumed();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventPlayerResumed {\n return { playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\" };\n },\n\n toJSON(message: EventPlayerResumed): unknown {\n const obj: any = {};\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): EventPlayerResumed {\n return EventPlayerResumed.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventPlayerResumed {\n const message = createBaseEventPlayerResumed();\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseEventDelete(): EventDelete {\n return { objectId: \"\" };\n}\n\nexport const EventDelete: MessageFns = {\n encode(message: EventDelete, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.objectId !== \"\") {\n writer.uint32(10).string(message.objectId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventDelete {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventDelete();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.objectId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventDelete {\n return { objectId: isSet(object.objectId) ? globalThis.String(object.objectId) : \"\" };\n },\n\n toJSON(message: EventDelete): unknown {\n const obj: any = {};\n if (message.objectId !== \"\") {\n obj.objectId = message.objectId;\n }\n return obj;\n },\n\n create, I>>(base?: I): EventDelete {\n return EventDelete.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventDelete {\n const message = createBaseEventDelete();\n message.objectId = object.objectId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseEventAddressAssociation(): EventAddressAssociation {\n return { addressAssociation: undefined };\n}\n\nexport const EventAddressAssociation: MessageFns = {\n encode(message: EventAddressAssociation, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.addressAssociation !== undefined) {\n AddressAssociation.encode(message.addressAssociation, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAddressAssociation {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAddressAssociation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.addressAssociation = AddressAssociation.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAddressAssociation {\n return {\n addressAssociation: isSet(object.addressAssociation)\n ? AddressAssociation.fromJSON(object.addressAssociation)\n : undefined,\n };\n },\n\n toJSON(message: EventAddressAssociation): unknown {\n const obj: any = {};\n if (message.addressAssociation !== undefined) {\n obj.addressAssociation = AddressAssociation.toJSON(message.addressAssociation);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAddressAssociation {\n return EventAddressAssociation.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAddressAssociation {\n const message = createBaseEventAddressAssociation();\n message.addressAssociation = (object.addressAssociation !== undefined && object.addressAssociation !== null)\n ? AddressAssociation.fromPartial(object.addressAssociation)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventAddressActivity(): EventAddressActivity {\n return { addressActivity: undefined };\n}\n\nexport const EventAddressActivity: MessageFns = {\n encode(message: EventAddressActivity, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.addressActivity !== undefined) {\n AddressActivity.encode(message.addressActivity, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAddressActivity {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAddressActivity();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.addressActivity = AddressActivity.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAddressActivity {\n return {\n addressActivity: isSet(object.addressActivity) ? AddressActivity.fromJSON(object.addressActivity) : undefined,\n };\n },\n\n toJSON(message: EventAddressActivity): unknown {\n const obj: any = {};\n if (message.addressActivity !== undefined) {\n obj.addressActivity = AddressActivity.toJSON(message.addressActivity);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAddressActivity {\n return EventAddressActivity.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAddressActivity {\n const message = createBaseEventAddressActivity();\n message.addressActivity = (object.addressActivity !== undefined && object.addressActivity !== null)\n ? AddressActivity.fromPartial(object.addressActivity)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventGuildBankAddress(): EventGuildBankAddress {\n return { eventGuildBankAddressDetail: undefined };\n}\n\nexport const EventGuildBankAddress: MessageFns = {\n encode(message: EventGuildBankAddress, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventGuildBankAddressDetail !== undefined) {\n EventGuildBankAddressDetail.encode(message.eventGuildBankAddressDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventGuildBankAddress {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventGuildBankAddress();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventGuildBankAddressDetail = EventGuildBankAddressDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventGuildBankAddress {\n return {\n eventGuildBankAddressDetail: isSet(object.eventGuildBankAddressDetail)\n ? EventGuildBankAddressDetail.fromJSON(object.eventGuildBankAddressDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventGuildBankAddress): unknown {\n const obj: any = {};\n if (message.eventGuildBankAddressDetail !== undefined) {\n obj.eventGuildBankAddressDetail = EventGuildBankAddressDetail.toJSON(message.eventGuildBankAddressDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventGuildBankAddress {\n return EventGuildBankAddress.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventGuildBankAddress {\n const message = createBaseEventGuildBankAddress();\n message.eventGuildBankAddressDetail =\n (object.eventGuildBankAddressDetail !== undefined && object.eventGuildBankAddressDetail !== null)\n ? EventGuildBankAddressDetail.fromPartial(object.eventGuildBankAddressDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventGuildBankAddressDetail(): EventGuildBankAddressDetail {\n return { guildId: \"\", bankCollateralPool: \"\", bankTokenPool: \"\" };\n}\n\nexport const EventGuildBankAddressDetail: MessageFns = {\n encode(message: EventGuildBankAddressDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.guildId !== \"\") {\n writer.uint32(10).string(message.guildId);\n }\n if (message.bankCollateralPool !== \"\") {\n writer.uint32(18).string(message.bankCollateralPool);\n }\n if (message.bankTokenPool !== \"\") {\n writer.uint32(26).string(message.bankTokenPool);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventGuildBankAddressDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventGuildBankAddressDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.bankCollateralPool = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.bankTokenPool = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventGuildBankAddressDetail {\n return {\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n bankCollateralPool: isSet(object.bankCollateralPool) ? globalThis.String(object.bankCollateralPool) : \"\",\n bankTokenPool: isSet(object.bankTokenPool) ? globalThis.String(object.bankTokenPool) : \"\",\n };\n },\n\n toJSON(message: EventGuildBankAddressDetail): unknown {\n const obj: any = {};\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.bankCollateralPool !== \"\") {\n obj.bankCollateralPool = message.bankCollateralPool;\n }\n if (message.bankTokenPool !== \"\") {\n obj.bankTokenPool = message.bankTokenPool;\n }\n return obj;\n },\n\n create, I>>(base?: I): EventGuildBankAddressDetail {\n return EventGuildBankAddressDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventGuildBankAddressDetail {\n const message = createBaseEventGuildBankAddressDetail();\n message.guildId = object.guildId ?? \"\";\n message.bankCollateralPool = object.bankCollateralPool ?? \"\";\n message.bankTokenPool = object.bankTokenPool ?? \"\";\n return message;\n },\n};\n\nfunction createBaseEventGuildBankMint(): EventGuildBankMint {\n return { eventGuildBankMintDetail: undefined };\n}\n\nexport const EventGuildBankMint: MessageFns = {\n encode(message: EventGuildBankMint, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventGuildBankMintDetail !== undefined) {\n EventGuildBankMintDetail.encode(message.eventGuildBankMintDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventGuildBankMint {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventGuildBankMint();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventGuildBankMintDetail = EventGuildBankMintDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventGuildBankMint {\n return {\n eventGuildBankMintDetail: isSet(object.eventGuildBankMintDetail)\n ? EventGuildBankMintDetail.fromJSON(object.eventGuildBankMintDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventGuildBankMint): unknown {\n const obj: any = {};\n if (message.eventGuildBankMintDetail !== undefined) {\n obj.eventGuildBankMintDetail = EventGuildBankMintDetail.toJSON(message.eventGuildBankMintDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventGuildBankMint {\n return EventGuildBankMint.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventGuildBankMint {\n const message = createBaseEventGuildBankMint();\n message.eventGuildBankMintDetail =\n (object.eventGuildBankMintDetail !== undefined && object.eventGuildBankMintDetail !== null)\n ? EventGuildBankMintDetail.fromPartial(object.eventGuildBankMintDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventGuildBankMintDetail(): EventGuildBankMintDetail {\n return { guildId: \"\", amountAlpha: 0, amountToken: 0, playerId: \"\" };\n}\n\nexport const EventGuildBankMintDetail: MessageFns = {\n encode(message: EventGuildBankMintDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.guildId !== \"\") {\n writer.uint32(10).string(message.guildId);\n }\n if (message.amountAlpha !== 0) {\n writer.uint32(16).uint64(message.amountAlpha);\n }\n if (message.amountToken !== 0) {\n writer.uint32(24).uint64(message.amountToken);\n }\n if (message.playerId !== \"\") {\n writer.uint32(34).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventGuildBankMintDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventGuildBankMintDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.amountAlpha = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.amountToken = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventGuildBankMintDetail {\n return {\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n amountAlpha: isSet(object.amountAlpha) ? globalThis.Number(object.amountAlpha) : 0,\n amountToken: isSet(object.amountToken) ? globalThis.Number(object.amountToken) : 0,\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: EventGuildBankMintDetail): unknown {\n const obj: any = {};\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.amountAlpha !== 0) {\n obj.amountAlpha = Math.round(message.amountAlpha);\n }\n if (message.amountToken !== 0) {\n obj.amountToken = Math.round(message.amountToken);\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): EventGuildBankMintDetail {\n return EventGuildBankMintDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventGuildBankMintDetail {\n const message = createBaseEventGuildBankMintDetail();\n message.guildId = object.guildId ?? \"\";\n message.amountAlpha = object.amountAlpha ?? 0;\n message.amountToken = object.amountToken ?? 0;\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseEventGuildBankRedeem(): EventGuildBankRedeem {\n return { eventGuildBankRedeemDetail: undefined };\n}\n\nexport const EventGuildBankRedeem: MessageFns = {\n encode(message: EventGuildBankRedeem, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventGuildBankRedeemDetail !== undefined) {\n EventGuildBankRedeemDetail.encode(message.eventGuildBankRedeemDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventGuildBankRedeem {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventGuildBankRedeem();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventGuildBankRedeemDetail = EventGuildBankRedeemDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventGuildBankRedeem {\n return {\n eventGuildBankRedeemDetail: isSet(object.eventGuildBankRedeemDetail)\n ? EventGuildBankRedeemDetail.fromJSON(object.eventGuildBankRedeemDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventGuildBankRedeem): unknown {\n const obj: any = {};\n if (message.eventGuildBankRedeemDetail !== undefined) {\n obj.eventGuildBankRedeemDetail = EventGuildBankRedeemDetail.toJSON(message.eventGuildBankRedeemDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventGuildBankRedeem {\n return EventGuildBankRedeem.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventGuildBankRedeem {\n const message = createBaseEventGuildBankRedeem();\n message.eventGuildBankRedeemDetail =\n (object.eventGuildBankRedeemDetail !== undefined && object.eventGuildBankRedeemDetail !== null)\n ? EventGuildBankRedeemDetail.fromPartial(object.eventGuildBankRedeemDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventGuildBankRedeemDetail(): EventGuildBankRedeemDetail {\n return { guildId: \"\", amountAlpha: 0, amountToken: 0, playerId: \"\" };\n}\n\nexport const EventGuildBankRedeemDetail: MessageFns = {\n encode(message: EventGuildBankRedeemDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.guildId !== \"\") {\n writer.uint32(10).string(message.guildId);\n }\n if (message.amountAlpha !== 0) {\n writer.uint32(16).uint64(message.amountAlpha);\n }\n if (message.amountToken !== 0) {\n writer.uint32(24).uint64(message.amountToken);\n }\n if (message.playerId !== \"\") {\n writer.uint32(34).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventGuildBankRedeemDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventGuildBankRedeemDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.amountAlpha = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.amountToken = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventGuildBankRedeemDetail {\n return {\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n amountAlpha: isSet(object.amountAlpha) ? globalThis.Number(object.amountAlpha) : 0,\n amountToken: isSet(object.amountToken) ? globalThis.Number(object.amountToken) : 0,\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: EventGuildBankRedeemDetail): unknown {\n const obj: any = {};\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.amountAlpha !== 0) {\n obj.amountAlpha = Math.round(message.amountAlpha);\n }\n if (message.amountToken !== 0) {\n obj.amountToken = Math.round(message.amountToken);\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): EventGuildBankRedeemDetail {\n return EventGuildBankRedeemDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventGuildBankRedeemDetail {\n const message = createBaseEventGuildBankRedeemDetail();\n message.guildId = object.guildId ?? \"\";\n message.amountAlpha = object.amountAlpha ?? 0;\n message.amountToken = object.amountToken ?? 0;\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseEventGuildBankConfiscateAndBurn(): EventGuildBankConfiscateAndBurn {\n return { eventGuildBankConfiscateAndBurnDetail: undefined };\n}\n\nexport const EventGuildBankConfiscateAndBurn: MessageFns = {\n encode(message: EventGuildBankConfiscateAndBurn, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventGuildBankConfiscateAndBurnDetail !== undefined) {\n EventGuildBankConfiscateAndBurnDetail.encode(\n message.eventGuildBankConfiscateAndBurnDetail,\n writer.uint32(10).fork(),\n ).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventGuildBankConfiscateAndBurn {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventGuildBankConfiscateAndBurn();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventGuildBankConfiscateAndBurnDetail = EventGuildBankConfiscateAndBurnDetail.decode(\n reader,\n reader.uint32(),\n );\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventGuildBankConfiscateAndBurn {\n return {\n eventGuildBankConfiscateAndBurnDetail: isSet(object.eventGuildBankConfiscateAndBurnDetail)\n ? EventGuildBankConfiscateAndBurnDetail.fromJSON(object.eventGuildBankConfiscateAndBurnDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventGuildBankConfiscateAndBurn): unknown {\n const obj: any = {};\n if (message.eventGuildBankConfiscateAndBurnDetail !== undefined) {\n obj.eventGuildBankConfiscateAndBurnDetail = EventGuildBankConfiscateAndBurnDetail.toJSON(\n message.eventGuildBankConfiscateAndBurnDetail,\n );\n }\n return obj;\n },\n\n create, I>>(base?: I): EventGuildBankConfiscateAndBurn {\n return EventGuildBankConfiscateAndBurn.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): EventGuildBankConfiscateAndBurn {\n const message = createBaseEventGuildBankConfiscateAndBurn();\n message.eventGuildBankConfiscateAndBurnDetail =\n (object.eventGuildBankConfiscateAndBurnDetail !== undefined &&\n object.eventGuildBankConfiscateAndBurnDetail !== null)\n ? EventGuildBankConfiscateAndBurnDetail.fromPartial(object.eventGuildBankConfiscateAndBurnDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventGuildBankConfiscateAndBurnDetail(): EventGuildBankConfiscateAndBurnDetail {\n return { guildId: \"\", amountAlpha: 0, amountToken: 0, address: \"\" };\n}\n\nexport const EventGuildBankConfiscateAndBurnDetail: MessageFns = {\n encode(message: EventGuildBankConfiscateAndBurnDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.guildId !== \"\") {\n writer.uint32(10).string(message.guildId);\n }\n if (message.amountAlpha !== 0) {\n writer.uint32(16).uint64(message.amountAlpha);\n }\n if (message.amountToken !== 0) {\n writer.uint32(24).uint64(message.amountToken);\n }\n if (message.address !== \"\") {\n writer.uint32(34).string(message.address);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventGuildBankConfiscateAndBurnDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventGuildBankConfiscateAndBurnDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.amountAlpha = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.amountToken = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventGuildBankConfiscateAndBurnDetail {\n return {\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n amountAlpha: isSet(object.amountAlpha) ? globalThis.Number(object.amountAlpha) : 0,\n amountToken: isSet(object.amountToken) ? globalThis.Number(object.amountToken) : 0,\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n };\n },\n\n toJSON(message: EventGuildBankConfiscateAndBurnDetail): unknown {\n const obj: any = {};\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.amountAlpha !== 0) {\n obj.amountAlpha = Math.round(message.amountAlpha);\n }\n if (message.amountToken !== 0) {\n obj.amountToken = Math.round(message.amountToken);\n }\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): EventGuildBankConfiscateAndBurnDetail {\n return EventGuildBankConfiscateAndBurnDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): EventGuildBankConfiscateAndBurnDetail {\n const message = createBaseEventGuildBankConfiscateAndBurnDetail();\n message.guildId = object.guildId ?? \"\";\n message.amountAlpha = object.amountAlpha ?? 0;\n message.amountToken = object.amountToken ?? 0;\n message.address = object.address ?? \"\";\n return message;\n },\n};\n\nfunction createBaseEventGuildMembershipApplication(): EventGuildMembershipApplication {\n return { guildMembershipApplication: undefined };\n}\n\nexport const EventGuildMembershipApplication: MessageFns = {\n encode(message: EventGuildMembershipApplication, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.guildMembershipApplication !== undefined) {\n GuildMembershipApplication.encode(message.guildMembershipApplication, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventGuildMembershipApplication {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventGuildMembershipApplication();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.guildMembershipApplication = GuildMembershipApplication.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventGuildMembershipApplication {\n return {\n guildMembershipApplication: isSet(object.guildMembershipApplication)\n ? GuildMembershipApplication.fromJSON(object.guildMembershipApplication)\n : undefined,\n };\n },\n\n toJSON(message: EventGuildMembershipApplication): unknown {\n const obj: any = {};\n if (message.guildMembershipApplication !== undefined) {\n obj.guildMembershipApplication = GuildMembershipApplication.toJSON(message.guildMembershipApplication);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventGuildMembershipApplication {\n return EventGuildMembershipApplication.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): EventGuildMembershipApplication {\n const message = createBaseEventGuildMembershipApplication();\n message.guildMembershipApplication =\n (object.guildMembershipApplication !== undefined && object.guildMembershipApplication !== null)\n ? GuildMembershipApplication.fromPartial(object.guildMembershipApplication)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventOreMine(): EventOreMine {\n return { eventOreMineDetail: undefined };\n}\n\nexport const EventOreMine: MessageFns = {\n encode(message: EventOreMine, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventOreMineDetail !== undefined) {\n EventOreMineDetail.encode(message.eventOreMineDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventOreMine {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventOreMine();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventOreMineDetail = EventOreMineDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventOreMine {\n return {\n eventOreMineDetail: isSet(object.eventOreMineDetail)\n ? EventOreMineDetail.fromJSON(object.eventOreMineDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventOreMine): unknown {\n const obj: any = {};\n if (message.eventOreMineDetail !== undefined) {\n obj.eventOreMineDetail = EventOreMineDetail.toJSON(message.eventOreMineDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventOreMine {\n return EventOreMine.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventOreMine {\n const message = createBaseEventOreMine();\n message.eventOreMineDetail = (object.eventOreMineDetail !== undefined && object.eventOreMineDetail !== null)\n ? EventOreMineDetail.fromPartial(object.eventOreMineDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventOreMineDetail(): EventOreMineDetail {\n return { playerId: \"\", primaryAddress: \"\", amount: 0 };\n}\n\nexport const EventOreMineDetail: MessageFns = {\n encode(message: EventOreMineDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.playerId !== \"\") {\n writer.uint32(10).string(message.playerId);\n }\n if (message.primaryAddress !== \"\") {\n writer.uint32(18).string(message.primaryAddress);\n }\n if (message.amount !== 0) {\n writer.uint32(24).uint64(message.amount);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventOreMineDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventOreMineDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.primaryAddress = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.amount = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventOreMineDetail {\n return {\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n primaryAddress: isSet(object.primaryAddress) ? globalThis.String(object.primaryAddress) : \"\",\n amount: isSet(object.amount) ? globalThis.Number(object.amount) : 0,\n };\n },\n\n toJSON(message: EventOreMineDetail): unknown {\n const obj: any = {};\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.primaryAddress !== \"\") {\n obj.primaryAddress = message.primaryAddress;\n }\n if (message.amount !== 0) {\n obj.amount = Math.round(message.amount);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventOreMineDetail {\n return EventOreMineDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventOreMineDetail {\n const message = createBaseEventOreMineDetail();\n message.playerId = object.playerId ?? \"\";\n message.primaryAddress = object.primaryAddress ?? \"\";\n message.amount = object.amount ?? 0;\n return message;\n },\n};\n\nfunction createBaseEventAlphaRefine(): EventAlphaRefine {\n return { eventAlphaRefineDetail: undefined };\n}\n\nexport const EventAlphaRefine: MessageFns = {\n encode(message: EventAlphaRefine, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventAlphaRefineDetail !== undefined) {\n EventAlphaRefineDetail.encode(message.eventAlphaRefineDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAlphaRefine {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAlphaRefine();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventAlphaRefineDetail = EventAlphaRefineDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAlphaRefine {\n return {\n eventAlphaRefineDetail: isSet(object.eventAlphaRefineDetail)\n ? EventAlphaRefineDetail.fromJSON(object.eventAlphaRefineDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventAlphaRefine): unknown {\n const obj: any = {};\n if (message.eventAlphaRefineDetail !== undefined) {\n obj.eventAlphaRefineDetail = EventAlphaRefineDetail.toJSON(message.eventAlphaRefineDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAlphaRefine {\n return EventAlphaRefine.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAlphaRefine {\n const message = createBaseEventAlphaRefine();\n message.eventAlphaRefineDetail =\n (object.eventAlphaRefineDetail !== undefined && object.eventAlphaRefineDetail !== null)\n ? EventAlphaRefineDetail.fromPartial(object.eventAlphaRefineDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventAlphaRefineDetail(): EventAlphaRefineDetail {\n return { playerId: \"\", primaryAddress: \"\", amount: 0 };\n}\n\nexport const EventAlphaRefineDetail: MessageFns = {\n encode(message: EventAlphaRefineDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.playerId !== \"\") {\n writer.uint32(10).string(message.playerId);\n }\n if (message.primaryAddress !== \"\") {\n writer.uint32(18).string(message.primaryAddress);\n }\n if (message.amount !== 0) {\n writer.uint32(24).uint64(message.amount);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAlphaRefineDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAlphaRefineDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.primaryAddress = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.amount = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAlphaRefineDetail {\n return {\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n primaryAddress: isSet(object.primaryAddress) ? globalThis.String(object.primaryAddress) : \"\",\n amount: isSet(object.amount) ? globalThis.Number(object.amount) : 0,\n };\n },\n\n toJSON(message: EventAlphaRefineDetail): unknown {\n const obj: any = {};\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.primaryAddress !== \"\") {\n obj.primaryAddress = message.primaryAddress;\n }\n if (message.amount !== 0) {\n obj.amount = Math.round(message.amount);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAlphaRefineDetail {\n return EventAlphaRefineDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAlphaRefineDetail {\n const message = createBaseEventAlphaRefineDetail();\n message.playerId = object.playerId ?? \"\";\n message.primaryAddress = object.primaryAddress ?? \"\";\n message.amount = object.amount ?? 0;\n return message;\n },\n};\n\nfunction createBaseEventAlphaInfuse(): EventAlphaInfuse {\n return { eventAlphaInfuseDetail: undefined };\n}\n\nexport const EventAlphaInfuse: MessageFns = {\n encode(message: EventAlphaInfuse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventAlphaInfuseDetail !== undefined) {\n EventAlphaInfuseDetail.encode(message.eventAlphaInfuseDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAlphaInfuse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAlphaInfuse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventAlphaInfuseDetail = EventAlphaInfuseDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAlphaInfuse {\n return {\n eventAlphaInfuseDetail: isSet(object.eventAlphaInfuseDetail)\n ? EventAlphaInfuseDetail.fromJSON(object.eventAlphaInfuseDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventAlphaInfuse): unknown {\n const obj: any = {};\n if (message.eventAlphaInfuseDetail !== undefined) {\n obj.eventAlphaInfuseDetail = EventAlphaInfuseDetail.toJSON(message.eventAlphaInfuseDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAlphaInfuse {\n return EventAlphaInfuse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAlphaInfuse {\n const message = createBaseEventAlphaInfuse();\n message.eventAlphaInfuseDetail =\n (object.eventAlphaInfuseDetail !== undefined && object.eventAlphaInfuseDetail !== null)\n ? EventAlphaInfuseDetail.fromPartial(object.eventAlphaInfuseDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventAlphaInfuseDetail(): EventAlphaInfuseDetail {\n return { playerId: \"\", primaryAddress: \"\", amount: 0 };\n}\n\nexport const EventAlphaInfuseDetail: MessageFns = {\n encode(message: EventAlphaInfuseDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.playerId !== \"\") {\n writer.uint32(10).string(message.playerId);\n }\n if (message.primaryAddress !== \"\") {\n writer.uint32(18).string(message.primaryAddress);\n }\n if (message.amount !== 0) {\n writer.uint32(24).uint64(message.amount);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAlphaInfuseDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAlphaInfuseDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.primaryAddress = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.amount = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAlphaInfuseDetail {\n return {\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n primaryAddress: isSet(object.primaryAddress) ? globalThis.String(object.primaryAddress) : \"\",\n amount: isSet(object.amount) ? globalThis.Number(object.amount) : 0,\n };\n },\n\n toJSON(message: EventAlphaInfuseDetail): unknown {\n const obj: any = {};\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.primaryAddress !== \"\") {\n obj.primaryAddress = message.primaryAddress;\n }\n if (message.amount !== 0) {\n obj.amount = Math.round(message.amount);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAlphaInfuseDetail {\n return EventAlphaInfuseDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAlphaInfuseDetail {\n const message = createBaseEventAlphaInfuseDetail();\n message.playerId = object.playerId ?? \"\";\n message.primaryAddress = object.primaryAddress ?? \"\";\n message.amount = object.amount ?? 0;\n return message;\n },\n};\n\nfunction createBaseEventAlphaDefuse(): EventAlphaDefuse {\n return { eventAlphaDefuseDetail: undefined };\n}\n\nexport const EventAlphaDefuse: MessageFns = {\n encode(message: EventAlphaDefuse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventAlphaDefuseDetail !== undefined) {\n EventAlphaDefuseDetail.encode(message.eventAlphaDefuseDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAlphaDefuse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAlphaDefuse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventAlphaDefuseDetail = EventAlphaDefuseDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAlphaDefuse {\n return {\n eventAlphaDefuseDetail: isSet(object.eventAlphaDefuseDetail)\n ? EventAlphaDefuseDetail.fromJSON(object.eventAlphaDefuseDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventAlphaDefuse): unknown {\n const obj: any = {};\n if (message.eventAlphaDefuseDetail !== undefined) {\n obj.eventAlphaDefuseDetail = EventAlphaDefuseDetail.toJSON(message.eventAlphaDefuseDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAlphaDefuse {\n return EventAlphaDefuse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAlphaDefuse {\n const message = createBaseEventAlphaDefuse();\n message.eventAlphaDefuseDetail =\n (object.eventAlphaDefuseDetail !== undefined && object.eventAlphaDefuseDetail !== null)\n ? EventAlphaDefuseDetail.fromPartial(object.eventAlphaDefuseDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventAlphaDefuseDetail(): EventAlphaDefuseDetail {\n return { primaryAddress: \"\", amount: 0 };\n}\n\nexport const EventAlphaDefuseDetail: MessageFns = {\n encode(message: EventAlphaDefuseDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.primaryAddress !== \"\") {\n writer.uint32(10).string(message.primaryAddress);\n }\n if (message.amount !== 0) {\n writer.uint32(16).uint64(message.amount);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAlphaDefuseDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAlphaDefuseDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.primaryAddress = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.amount = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAlphaDefuseDetail {\n return {\n primaryAddress: isSet(object.primaryAddress) ? globalThis.String(object.primaryAddress) : \"\",\n amount: isSet(object.amount) ? globalThis.Number(object.amount) : 0,\n };\n },\n\n toJSON(message: EventAlphaDefuseDetail): unknown {\n const obj: any = {};\n if (message.primaryAddress !== \"\") {\n obj.primaryAddress = message.primaryAddress;\n }\n if (message.amount !== 0) {\n obj.amount = Math.round(message.amount);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAlphaDefuseDetail {\n return EventAlphaDefuseDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAlphaDefuseDetail {\n const message = createBaseEventAlphaDefuseDetail();\n message.primaryAddress = object.primaryAddress ?? \"\";\n message.amount = object.amount ?? 0;\n return message;\n },\n};\n\nfunction createBaseEventOreTheft(): EventOreTheft {\n return { eventOreTheftDetail: undefined };\n}\n\nexport const EventOreTheft: MessageFns = {\n encode(message: EventOreTheft, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventOreTheftDetail !== undefined) {\n EventOreTheftDetail.encode(message.eventOreTheftDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventOreTheft {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventOreTheft();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventOreTheftDetail = EventOreTheftDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventOreTheft {\n return {\n eventOreTheftDetail: isSet(object.eventOreTheftDetail)\n ? EventOreTheftDetail.fromJSON(object.eventOreTheftDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventOreTheft): unknown {\n const obj: any = {};\n if (message.eventOreTheftDetail !== undefined) {\n obj.eventOreTheftDetail = EventOreTheftDetail.toJSON(message.eventOreTheftDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventOreTheft {\n return EventOreTheft.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventOreTheft {\n const message = createBaseEventOreTheft();\n message.eventOreTheftDetail = (object.eventOreTheftDetail !== undefined && object.eventOreTheftDetail !== null)\n ? EventOreTheftDetail.fromPartial(object.eventOreTheftDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventOreTheftDetail(): EventOreTheftDetail {\n return { victimPrimaryAddress: \"\", victimPlayerId: \"\", thiefPrimaryAddress: \"\", thiefPlayerId: \"\", amount: 0 };\n}\n\nexport const EventOreTheftDetail: MessageFns = {\n encode(message: EventOreTheftDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.victimPrimaryAddress !== \"\") {\n writer.uint32(10).string(message.victimPrimaryAddress);\n }\n if (message.victimPlayerId !== \"\") {\n writer.uint32(18).string(message.victimPlayerId);\n }\n if (message.thiefPrimaryAddress !== \"\") {\n writer.uint32(26).string(message.thiefPrimaryAddress);\n }\n if (message.thiefPlayerId !== \"\") {\n writer.uint32(34).string(message.thiefPlayerId);\n }\n if (message.amount !== 0) {\n writer.uint32(40).uint64(message.amount);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventOreTheftDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventOreTheftDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.victimPrimaryAddress = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.victimPlayerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.thiefPrimaryAddress = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.thiefPlayerId = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.amount = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventOreTheftDetail {\n return {\n victimPrimaryAddress: isSet(object.victimPrimaryAddress) ? globalThis.String(object.victimPrimaryAddress) : \"\",\n victimPlayerId: isSet(object.victimPlayerId) ? globalThis.String(object.victimPlayerId) : \"\",\n thiefPrimaryAddress: isSet(object.thiefPrimaryAddress) ? globalThis.String(object.thiefPrimaryAddress) : \"\",\n thiefPlayerId: isSet(object.thiefPlayerId) ? globalThis.String(object.thiefPlayerId) : \"\",\n amount: isSet(object.amount) ? globalThis.Number(object.amount) : 0,\n };\n },\n\n toJSON(message: EventOreTheftDetail): unknown {\n const obj: any = {};\n if (message.victimPrimaryAddress !== \"\") {\n obj.victimPrimaryAddress = message.victimPrimaryAddress;\n }\n if (message.victimPlayerId !== \"\") {\n obj.victimPlayerId = message.victimPlayerId;\n }\n if (message.thiefPrimaryAddress !== \"\") {\n obj.thiefPrimaryAddress = message.thiefPrimaryAddress;\n }\n if (message.thiefPlayerId !== \"\") {\n obj.thiefPlayerId = message.thiefPlayerId;\n }\n if (message.amount !== 0) {\n obj.amount = Math.round(message.amount);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventOreTheftDetail {\n return EventOreTheftDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventOreTheftDetail {\n const message = createBaseEventOreTheftDetail();\n message.victimPrimaryAddress = object.victimPrimaryAddress ?? \"\";\n message.victimPlayerId = object.victimPlayerId ?? \"\";\n message.thiefPrimaryAddress = object.thiefPrimaryAddress ?? \"\";\n message.thiefPlayerId = object.thiefPlayerId ?? \"\";\n message.amount = object.amount ?? 0;\n return message;\n },\n};\n\nfunction createBaseEventOreMigrate(): EventOreMigrate {\n return { eventOreMigrateDetail: undefined };\n}\n\nexport const EventOreMigrate: MessageFns = {\n encode(message: EventOreMigrate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventOreMigrateDetail !== undefined) {\n EventOreMigrateDetail.encode(message.eventOreMigrateDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventOreMigrate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventOreMigrate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventOreMigrateDetail = EventOreMigrateDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventOreMigrate {\n return {\n eventOreMigrateDetail: isSet(object.eventOreMigrateDetail)\n ? EventOreMigrateDetail.fromJSON(object.eventOreMigrateDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventOreMigrate): unknown {\n const obj: any = {};\n if (message.eventOreMigrateDetail !== undefined) {\n obj.eventOreMigrateDetail = EventOreMigrateDetail.toJSON(message.eventOreMigrateDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventOreMigrate {\n return EventOreMigrate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventOreMigrate {\n const message = createBaseEventOreMigrate();\n message.eventOreMigrateDetail =\n (object.eventOreMigrateDetail !== undefined && object.eventOreMigrateDetail !== null)\n ? EventOreMigrateDetail.fromPartial(object.eventOreMigrateDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventOreMigrateDetail(): EventOreMigrateDetail {\n return { playerId: \"\", primaryAddress: \"\", oldPrimaryAddress: \"\", amount: 0 };\n}\n\nexport const EventOreMigrateDetail: MessageFns = {\n encode(message: EventOreMigrateDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.playerId !== \"\") {\n writer.uint32(10).string(message.playerId);\n }\n if (message.primaryAddress !== \"\") {\n writer.uint32(18).string(message.primaryAddress);\n }\n if (message.oldPrimaryAddress !== \"\") {\n writer.uint32(26).string(message.oldPrimaryAddress);\n }\n if (message.amount !== 0) {\n writer.uint32(32).uint64(message.amount);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventOreMigrateDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventOreMigrateDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.primaryAddress = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.oldPrimaryAddress = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.amount = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventOreMigrateDetail {\n return {\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n primaryAddress: isSet(object.primaryAddress) ? globalThis.String(object.primaryAddress) : \"\",\n oldPrimaryAddress: isSet(object.oldPrimaryAddress) ? globalThis.String(object.oldPrimaryAddress) : \"\",\n amount: isSet(object.amount) ? globalThis.Number(object.amount) : 0,\n };\n },\n\n toJSON(message: EventOreMigrateDetail): unknown {\n const obj: any = {};\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.primaryAddress !== \"\") {\n obj.primaryAddress = message.primaryAddress;\n }\n if (message.oldPrimaryAddress !== \"\") {\n obj.oldPrimaryAddress = message.oldPrimaryAddress;\n }\n if (message.amount !== 0) {\n obj.amount = Math.round(message.amount);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventOreMigrateDetail {\n return EventOreMigrateDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventOreMigrateDetail {\n const message = createBaseEventOreMigrateDetail();\n message.playerId = object.playerId ?? \"\";\n message.primaryAddress = object.primaryAddress ?? \"\";\n message.oldPrimaryAddress = object.oldPrimaryAddress ?? \"\";\n message.amount = object.amount ?? 0;\n return message;\n },\n};\n\nfunction createBaseEventAttack(): EventAttack {\n return { eventAttackDetail: undefined };\n}\n\nexport const EventAttack: MessageFns = {\n encode(message: EventAttack, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventAttackDetail !== undefined) {\n EventAttackDetail.encode(message.eventAttackDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAttack {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAttack();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventAttackDetail = EventAttackDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAttack {\n return {\n eventAttackDetail: isSet(object.eventAttackDetail)\n ? EventAttackDetail.fromJSON(object.eventAttackDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventAttack): unknown {\n const obj: any = {};\n if (message.eventAttackDetail !== undefined) {\n obj.eventAttackDetail = EventAttackDetail.toJSON(message.eventAttackDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAttack {\n return EventAttack.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAttack {\n const message = createBaseEventAttack();\n message.eventAttackDetail = (object.eventAttackDetail !== undefined && object.eventAttackDetail !== null)\n ? EventAttackDetail.fromPartial(object.eventAttackDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventAttackDetail(): EventAttackDetail {\n return {\n attackerStructId: \"\",\n attackerStructType: 0,\n attackerStructLocationType: 0,\n attackerStructLocationId: \"\",\n attackerStructOperatingAmbit: 0,\n attackerStructSlot: 0,\n weaponSystem: 0,\n weaponControl: 0,\n activeWeaponry: 0,\n eventAttackShotDetail: [],\n recoilDamageToAttacker: false,\n recoilDamage: 0,\n recoilDamageDestroyedAttacker: false,\n planetaryDefenseCannonDamageToAttacker: false,\n planetaryDefenseCannonDamage: 0,\n planetaryDefenseCannonDamageDestroyedAttacker: false,\n attackerPlayerId: \"\",\n targetPlayerId: \"\",\n };\n}\n\nexport const EventAttackDetail: MessageFns = {\n encode(message: EventAttackDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.attackerStructId !== \"\") {\n writer.uint32(10).string(message.attackerStructId);\n }\n if (message.attackerStructType !== 0) {\n writer.uint32(16).uint64(message.attackerStructType);\n }\n if (message.attackerStructLocationType !== 0) {\n writer.uint32(24).int32(message.attackerStructLocationType);\n }\n if (message.attackerStructLocationId !== \"\") {\n writer.uint32(34).string(message.attackerStructLocationId);\n }\n if (message.attackerStructOperatingAmbit !== 0) {\n writer.uint32(40).int32(message.attackerStructOperatingAmbit);\n }\n if (message.attackerStructSlot !== 0) {\n writer.uint32(48).uint64(message.attackerStructSlot);\n }\n if (message.weaponSystem !== 0) {\n writer.uint32(56).int32(message.weaponSystem);\n }\n if (message.weaponControl !== 0) {\n writer.uint32(64).int32(message.weaponControl);\n }\n if (message.activeWeaponry !== 0) {\n writer.uint32(72).int32(message.activeWeaponry);\n }\n for (const v of message.eventAttackShotDetail) {\n EventAttackShotDetail.encode(v!, writer.uint32(82).fork()).join();\n }\n if (message.recoilDamageToAttacker !== false) {\n writer.uint32(88).bool(message.recoilDamageToAttacker);\n }\n if (message.recoilDamage !== 0) {\n writer.uint32(96).uint64(message.recoilDamage);\n }\n if (message.recoilDamageDestroyedAttacker !== false) {\n writer.uint32(104).bool(message.recoilDamageDestroyedAttacker);\n }\n if (message.planetaryDefenseCannonDamageToAttacker !== false) {\n writer.uint32(112).bool(message.planetaryDefenseCannonDamageToAttacker);\n }\n if (message.planetaryDefenseCannonDamage !== 0) {\n writer.uint32(120).uint64(message.planetaryDefenseCannonDamage);\n }\n if (message.planetaryDefenseCannonDamageDestroyedAttacker !== false) {\n writer.uint32(128).bool(message.planetaryDefenseCannonDamageDestroyedAttacker);\n }\n if (message.attackerPlayerId !== \"\") {\n writer.uint32(138).string(message.attackerPlayerId);\n }\n if (message.targetPlayerId !== \"\") {\n writer.uint32(146).string(message.targetPlayerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAttackDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAttackDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.attackerStructId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.attackerStructType = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.attackerStructLocationType = reader.int32() as any;\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.attackerStructLocationId = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.attackerStructOperatingAmbit = reader.int32() as any;\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.attackerStructSlot = longToNumber(reader.uint64());\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.weaponSystem = reader.int32() as any;\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.weaponControl = reader.int32() as any;\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.activeWeaponry = reader.int32() as any;\n continue;\n }\n case 10: {\n if (tag !== 82) {\n break;\n }\n\n message.eventAttackShotDetail.push(EventAttackShotDetail.decode(reader, reader.uint32()));\n continue;\n }\n case 11: {\n if (tag !== 88) {\n break;\n }\n\n message.recoilDamageToAttacker = reader.bool();\n continue;\n }\n case 12: {\n if (tag !== 96) {\n break;\n }\n\n message.recoilDamage = longToNumber(reader.uint64());\n continue;\n }\n case 13: {\n if (tag !== 104) {\n break;\n }\n\n message.recoilDamageDestroyedAttacker = reader.bool();\n continue;\n }\n case 14: {\n if (tag !== 112) {\n break;\n }\n\n message.planetaryDefenseCannonDamageToAttacker = reader.bool();\n continue;\n }\n case 15: {\n if (tag !== 120) {\n break;\n }\n\n message.planetaryDefenseCannonDamage = longToNumber(reader.uint64());\n continue;\n }\n case 16: {\n if (tag !== 128) {\n break;\n }\n\n message.planetaryDefenseCannonDamageDestroyedAttacker = reader.bool();\n continue;\n }\n case 17: {\n if (tag !== 138) {\n break;\n }\n\n message.attackerPlayerId = reader.string();\n continue;\n }\n case 18: {\n if (tag !== 146) {\n break;\n }\n\n message.targetPlayerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAttackDetail {\n return {\n attackerStructId: isSet(object.attackerStructId) ? globalThis.String(object.attackerStructId) : \"\",\n attackerStructType: isSet(object.attackerStructType) ? globalThis.Number(object.attackerStructType) : 0,\n attackerStructLocationType: isSet(object.attackerStructLocationType)\n ? objectTypeFromJSON(object.attackerStructLocationType)\n : 0,\n attackerStructLocationId: isSet(object.attackerStructLocationId)\n ? globalThis.String(object.attackerStructLocationId)\n : \"\",\n attackerStructOperatingAmbit: isSet(object.attackerStructOperatingAmbit)\n ? ambitFromJSON(object.attackerStructOperatingAmbit)\n : 0,\n attackerStructSlot: isSet(object.attackerStructSlot) ? globalThis.Number(object.attackerStructSlot) : 0,\n weaponSystem: isSet(object.weaponSystem) ? techWeaponSystemFromJSON(object.weaponSystem) : 0,\n weaponControl: isSet(object.weaponControl) ? techWeaponControlFromJSON(object.weaponControl) : 0,\n activeWeaponry: isSet(object.activeWeaponry) ? techActiveWeaponryFromJSON(object.activeWeaponry) : 0,\n eventAttackShotDetail: globalThis.Array.isArray(object?.eventAttackShotDetail)\n ? object.eventAttackShotDetail.map((e: any) => EventAttackShotDetail.fromJSON(e))\n : [],\n recoilDamageToAttacker: isSet(object.recoilDamageToAttacker)\n ? globalThis.Boolean(object.recoilDamageToAttacker)\n : false,\n recoilDamage: isSet(object.recoilDamage) ? globalThis.Number(object.recoilDamage) : 0,\n recoilDamageDestroyedAttacker: isSet(object.recoilDamageDestroyedAttacker)\n ? globalThis.Boolean(object.recoilDamageDestroyedAttacker)\n : false,\n planetaryDefenseCannonDamageToAttacker: isSet(object.planetaryDefenseCannonDamageToAttacker)\n ? globalThis.Boolean(object.planetaryDefenseCannonDamageToAttacker)\n : false,\n planetaryDefenseCannonDamage: isSet(object.planetaryDefenseCannonDamage)\n ? globalThis.Number(object.planetaryDefenseCannonDamage)\n : 0,\n planetaryDefenseCannonDamageDestroyedAttacker: isSet(object.planetaryDefenseCannonDamageDestroyedAttacker)\n ? globalThis.Boolean(object.planetaryDefenseCannonDamageDestroyedAttacker)\n : false,\n attackerPlayerId: isSet(object.attackerPlayerId) ? globalThis.String(object.attackerPlayerId) : \"\",\n targetPlayerId: isSet(object.targetPlayerId) ? globalThis.String(object.targetPlayerId) : \"\",\n };\n },\n\n toJSON(message: EventAttackDetail): unknown {\n const obj: any = {};\n if (message.attackerStructId !== \"\") {\n obj.attackerStructId = message.attackerStructId;\n }\n if (message.attackerStructType !== 0) {\n obj.attackerStructType = Math.round(message.attackerStructType);\n }\n if (message.attackerStructLocationType !== 0) {\n obj.attackerStructLocationType = objectTypeToJSON(message.attackerStructLocationType);\n }\n if (message.attackerStructLocationId !== \"\") {\n obj.attackerStructLocationId = message.attackerStructLocationId;\n }\n if (message.attackerStructOperatingAmbit !== 0) {\n obj.attackerStructOperatingAmbit = ambitToJSON(message.attackerStructOperatingAmbit);\n }\n if (message.attackerStructSlot !== 0) {\n obj.attackerStructSlot = Math.round(message.attackerStructSlot);\n }\n if (message.weaponSystem !== 0) {\n obj.weaponSystem = techWeaponSystemToJSON(message.weaponSystem);\n }\n if (message.weaponControl !== 0) {\n obj.weaponControl = techWeaponControlToJSON(message.weaponControl);\n }\n if (message.activeWeaponry !== 0) {\n obj.activeWeaponry = techActiveWeaponryToJSON(message.activeWeaponry);\n }\n if (message.eventAttackShotDetail?.length) {\n obj.eventAttackShotDetail = message.eventAttackShotDetail.map((e) => EventAttackShotDetail.toJSON(e));\n }\n if (message.recoilDamageToAttacker !== false) {\n obj.recoilDamageToAttacker = message.recoilDamageToAttacker;\n }\n if (message.recoilDamage !== 0) {\n obj.recoilDamage = Math.round(message.recoilDamage);\n }\n if (message.recoilDamageDestroyedAttacker !== false) {\n obj.recoilDamageDestroyedAttacker = message.recoilDamageDestroyedAttacker;\n }\n if (message.planetaryDefenseCannonDamageToAttacker !== false) {\n obj.planetaryDefenseCannonDamageToAttacker = message.planetaryDefenseCannonDamageToAttacker;\n }\n if (message.planetaryDefenseCannonDamage !== 0) {\n obj.planetaryDefenseCannonDamage = Math.round(message.planetaryDefenseCannonDamage);\n }\n if (message.planetaryDefenseCannonDamageDestroyedAttacker !== false) {\n obj.planetaryDefenseCannonDamageDestroyedAttacker = message.planetaryDefenseCannonDamageDestroyedAttacker;\n }\n if (message.attackerPlayerId !== \"\") {\n obj.attackerPlayerId = message.attackerPlayerId;\n }\n if (message.targetPlayerId !== \"\") {\n obj.targetPlayerId = message.targetPlayerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAttackDetail {\n return EventAttackDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAttackDetail {\n const message = createBaseEventAttackDetail();\n message.attackerStructId = object.attackerStructId ?? \"\";\n message.attackerStructType = object.attackerStructType ?? 0;\n message.attackerStructLocationType = object.attackerStructLocationType ?? 0;\n message.attackerStructLocationId = object.attackerStructLocationId ?? \"\";\n message.attackerStructOperatingAmbit = object.attackerStructOperatingAmbit ?? 0;\n message.attackerStructSlot = object.attackerStructSlot ?? 0;\n message.weaponSystem = object.weaponSystem ?? 0;\n message.weaponControl = object.weaponControl ?? 0;\n message.activeWeaponry = object.activeWeaponry ?? 0;\n message.eventAttackShotDetail = object.eventAttackShotDetail?.map((e) => EventAttackShotDetail.fromPartial(e)) ||\n [];\n message.recoilDamageToAttacker = object.recoilDamageToAttacker ?? false;\n message.recoilDamage = object.recoilDamage ?? 0;\n message.recoilDamageDestroyedAttacker = object.recoilDamageDestroyedAttacker ?? false;\n message.planetaryDefenseCannonDamageToAttacker = object.planetaryDefenseCannonDamageToAttacker ?? false;\n message.planetaryDefenseCannonDamage = object.planetaryDefenseCannonDamage ?? 0;\n message.planetaryDefenseCannonDamageDestroyedAttacker = object.planetaryDefenseCannonDamageDestroyedAttacker ??\n false;\n message.attackerPlayerId = object.attackerPlayerId ?? \"\";\n message.targetPlayerId = object.targetPlayerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseEventAttackShotDetail(): EventAttackShotDetail {\n return {\n targetStructId: \"\",\n targetStructType: 0,\n targetStructLocationType: 0,\n targetStructLocationId: \"\",\n targetStructOperatingAmbit: 0,\n targetStructSlot: 0,\n evaded: false,\n evadedCause: 0,\n evadedByPlanetaryDefenses: false,\n evadedByPlanetaryDefensesCause: 0,\n blocked: false,\n blockedByStructId: \"\",\n blockedByStructType: 0,\n blockedByStructLocationType: 0,\n blockedByStructLocationId: \"\",\n blockedByStructOperatingAmbit: 0,\n blockedByStructSlot: 0,\n blockerDestroyed: false,\n eventAttackDefenderCounterDetail: [],\n damageDealt: 0,\n damageReduction: 0,\n damageReductionCause: 0,\n damage: 0,\n targetCountered: false,\n targetCounteredDamage: 0,\n targetCounterDestroyedAttacker: false,\n targetCounterCause: 0,\n targetDestroyed: false,\n postDestructionDamageToAttacker: false,\n postDestructionDamage: 0,\n postDestructionDamageDestroyedAttacker: false,\n postDestructionDamageCause: 0,\n };\n}\n\nexport const EventAttackShotDetail: MessageFns = {\n encode(message: EventAttackShotDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.targetStructId !== \"\") {\n writer.uint32(10).string(message.targetStructId);\n }\n if (message.targetStructType !== 0) {\n writer.uint32(16).uint64(message.targetStructType);\n }\n if (message.targetStructLocationType !== 0) {\n writer.uint32(24).int32(message.targetStructLocationType);\n }\n if (message.targetStructLocationId !== \"\") {\n writer.uint32(34).string(message.targetStructLocationId);\n }\n if (message.targetStructOperatingAmbit !== 0) {\n writer.uint32(40).int32(message.targetStructOperatingAmbit);\n }\n if (message.targetStructSlot !== 0) {\n writer.uint32(48).uint64(message.targetStructSlot);\n }\n if (message.evaded !== false) {\n writer.uint32(56).bool(message.evaded);\n }\n if (message.evadedCause !== 0) {\n writer.uint32(64).int32(message.evadedCause);\n }\n if (message.evadedByPlanetaryDefenses !== false) {\n writer.uint32(72).bool(message.evadedByPlanetaryDefenses);\n }\n if (message.evadedByPlanetaryDefensesCause !== 0) {\n writer.uint32(80).int32(message.evadedByPlanetaryDefensesCause);\n }\n if (message.blocked !== false) {\n writer.uint32(88).bool(message.blocked);\n }\n if (message.blockedByStructId !== \"\") {\n writer.uint32(98).string(message.blockedByStructId);\n }\n if (message.blockedByStructType !== 0) {\n writer.uint32(104).uint64(message.blockedByStructType);\n }\n if (message.blockedByStructLocationType !== 0) {\n writer.uint32(112).int32(message.blockedByStructLocationType);\n }\n if (message.blockedByStructLocationId !== \"\") {\n writer.uint32(122).string(message.blockedByStructLocationId);\n }\n if (message.blockedByStructOperatingAmbit !== 0) {\n writer.uint32(128).int32(message.blockedByStructOperatingAmbit);\n }\n if (message.blockedByStructSlot !== 0) {\n writer.uint32(136).uint64(message.blockedByStructSlot);\n }\n if (message.blockerDestroyed !== false) {\n writer.uint32(144).bool(message.blockerDestroyed);\n }\n for (const v of message.eventAttackDefenderCounterDetail) {\n EventAttackDefenderCounterDetail.encode(v!, writer.uint32(154).fork()).join();\n }\n if (message.damageDealt !== 0) {\n writer.uint32(160).uint64(message.damageDealt);\n }\n if (message.damageReduction !== 0) {\n writer.uint32(168).uint64(message.damageReduction);\n }\n if (message.damageReductionCause !== 0) {\n writer.uint32(176).int32(message.damageReductionCause);\n }\n if (message.damage !== 0) {\n writer.uint32(184).uint64(message.damage);\n }\n if (message.targetCountered !== false) {\n writer.uint32(192).bool(message.targetCountered);\n }\n if (message.targetCounteredDamage !== 0) {\n writer.uint32(200).uint64(message.targetCounteredDamage);\n }\n if (message.targetCounterDestroyedAttacker !== false) {\n writer.uint32(208).bool(message.targetCounterDestroyedAttacker);\n }\n if (message.targetCounterCause !== 0) {\n writer.uint32(216).int32(message.targetCounterCause);\n }\n if (message.targetDestroyed !== false) {\n writer.uint32(224).bool(message.targetDestroyed);\n }\n if (message.postDestructionDamageToAttacker !== false) {\n writer.uint32(232).bool(message.postDestructionDamageToAttacker);\n }\n if (message.postDestructionDamage !== 0) {\n writer.uint32(240).uint64(message.postDestructionDamage);\n }\n if (message.postDestructionDamageDestroyedAttacker !== false) {\n writer.uint32(248).bool(message.postDestructionDamageDestroyedAttacker);\n }\n if (message.postDestructionDamageCause !== 0) {\n writer.uint32(256).int32(message.postDestructionDamageCause);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAttackShotDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAttackShotDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.targetStructId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.targetStructType = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.targetStructLocationType = reader.int32() as any;\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.targetStructLocationId = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.targetStructOperatingAmbit = reader.int32() as any;\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.targetStructSlot = longToNumber(reader.uint64());\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.evaded = reader.bool();\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.evadedCause = reader.int32() as any;\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.evadedByPlanetaryDefenses = reader.bool();\n continue;\n }\n case 10: {\n if (tag !== 80) {\n break;\n }\n\n message.evadedByPlanetaryDefensesCause = reader.int32() as any;\n continue;\n }\n case 11: {\n if (tag !== 88) {\n break;\n }\n\n message.blocked = reader.bool();\n continue;\n }\n case 12: {\n if (tag !== 98) {\n break;\n }\n\n message.blockedByStructId = reader.string();\n continue;\n }\n case 13: {\n if (tag !== 104) {\n break;\n }\n\n message.blockedByStructType = longToNumber(reader.uint64());\n continue;\n }\n case 14: {\n if (tag !== 112) {\n break;\n }\n\n message.blockedByStructLocationType = reader.int32() as any;\n continue;\n }\n case 15: {\n if (tag !== 122) {\n break;\n }\n\n message.blockedByStructLocationId = reader.string();\n continue;\n }\n case 16: {\n if (tag !== 128) {\n break;\n }\n\n message.blockedByStructOperatingAmbit = reader.int32() as any;\n continue;\n }\n case 17: {\n if (tag !== 136) {\n break;\n }\n\n message.blockedByStructSlot = longToNumber(reader.uint64());\n continue;\n }\n case 18: {\n if (tag !== 144) {\n break;\n }\n\n message.blockerDestroyed = reader.bool();\n continue;\n }\n case 19: {\n if (tag !== 154) {\n break;\n }\n\n message.eventAttackDefenderCounterDetail.push(\n EventAttackDefenderCounterDetail.decode(reader, reader.uint32()),\n );\n continue;\n }\n case 20: {\n if (tag !== 160) {\n break;\n }\n\n message.damageDealt = longToNumber(reader.uint64());\n continue;\n }\n case 21: {\n if (tag !== 168) {\n break;\n }\n\n message.damageReduction = longToNumber(reader.uint64());\n continue;\n }\n case 22: {\n if (tag !== 176) {\n break;\n }\n\n message.damageReductionCause = reader.int32() as any;\n continue;\n }\n case 23: {\n if (tag !== 184) {\n break;\n }\n\n message.damage = longToNumber(reader.uint64());\n continue;\n }\n case 24: {\n if (tag !== 192) {\n break;\n }\n\n message.targetCountered = reader.bool();\n continue;\n }\n case 25: {\n if (tag !== 200) {\n break;\n }\n\n message.targetCounteredDamage = longToNumber(reader.uint64());\n continue;\n }\n case 26: {\n if (tag !== 208) {\n break;\n }\n\n message.targetCounterDestroyedAttacker = reader.bool();\n continue;\n }\n case 27: {\n if (tag !== 216) {\n break;\n }\n\n message.targetCounterCause = reader.int32() as any;\n continue;\n }\n case 28: {\n if (tag !== 224) {\n break;\n }\n\n message.targetDestroyed = reader.bool();\n continue;\n }\n case 29: {\n if (tag !== 232) {\n break;\n }\n\n message.postDestructionDamageToAttacker = reader.bool();\n continue;\n }\n case 30: {\n if (tag !== 240) {\n break;\n }\n\n message.postDestructionDamage = longToNumber(reader.uint64());\n continue;\n }\n case 31: {\n if (tag !== 248) {\n break;\n }\n\n message.postDestructionDamageDestroyedAttacker = reader.bool();\n continue;\n }\n case 32: {\n if (tag !== 256) {\n break;\n }\n\n message.postDestructionDamageCause = reader.int32() as any;\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAttackShotDetail {\n return {\n targetStructId: isSet(object.targetStructId) ? globalThis.String(object.targetStructId) : \"\",\n targetStructType: isSet(object.targetStructType) ? globalThis.Number(object.targetStructType) : 0,\n targetStructLocationType: isSet(object.targetStructLocationType)\n ? objectTypeFromJSON(object.targetStructLocationType)\n : 0,\n targetStructLocationId: isSet(object.targetStructLocationId)\n ? globalThis.String(object.targetStructLocationId)\n : \"\",\n targetStructOperatingAmbit: isSet(object.targetStructOperatingAmbit)\n ? ambitFromJSON(object.targetStructOperatingAmbit)\n : 0,\n targetStructSlot: isSet(object.targetStructSlot) ? globalThis.Number(object.targetStructSlot) : 0,\n evaded: isSet(object.evaded) ? globalThis.Boolean(object.evaded) : false,\n evadedCause: isSet(object.evadedCause) ? techUnitDefensesFromJSON(object.evadedCause) : 0,\n evadedByPlanetaryDefenses: isSet(object.evadedByPlanetaryDefenses)\n ? globalThis.Boolean(object.evadedByPlanetaryDefenses)\n : false,\n evadedByPlanetaryDefensesCause: isSet(object.evadedByPlanetaryDefensesCause)\n ? techPlanetaryDefensesFromJSON(object.evadedByPlanetaryDefensesCause)\n : 0,\n blocked: isSet(object.blocked) ? globalThis.Boolean(object.blocked) : false,\n blockedByStructId: isSet(object.blockedByStructId) ? globalThis.String(object.blockedByStructId) : \"\",\n blockedByStructType: isSet(object.blockedByStructType) ? globalThis.Number(object.blockedByStructType) : 0,\n blockedByStructLocationType: isSet(object.blockedByStructLocationType)\n ? objectTypeFromJSON(object.blockedByStructLocationType)\n : 0,\n blockedByStructLocationId: isSet(object.blockedByStructLocationId)\n ? globalThis.String(object.blockedByStructLocationId)\n : \"\",\n blockedByStructOperatingAmbit: isSet(object.blockedByStructOperatingAmbit)\n ? ambitFromJSON(object.blockedByStructOperatingAmbit)\n : 0,\n blockedByStructSlot: isSet(object.blockedByStructSlot) ? globalThis.Number(object.blockedByStructSlot) : 0,\n blockerDestroyed: isSet(object.blockerDestroyed) ? globalThis.Boolean(object.blockerDestroyed) : false,\n eventAttackDefenderCounterDetail: globalThis.Array.isArray(object?.eventAttackDefenderCounterDetail)\n ? object.eventAttackDefenderCounterDetail.map((e: any) => EventAttackDefenderCounterDetail.fromJSON(e))\n : [],\n damageDealt: isSet(object.damageDealt) ? globalThis.Number(object.damageDealt) : 0,\n damageReduction: isSet(object.damageReduction) ? globalThis.Number(object.damageReduction) : 0,\n damageReductionCause: isSet(object.damageReductionCause)\n ? techUnitDefensesFromJSON(object.damageReductionCause)\n : 0,\n damage: isSet(object.damage) ? globalThis.Number(object.damage) : 0,\n targetCountered: isSet(object.targetCountered) ? globalThis.Boolean(object.targetCountered) : false,\n targetCounteredDamage: isSet(object.targetCounteredDamage) ? globalThis.Number(object.targetCounteredDamage) : 0,\n targetCounterDestroyedAttacker: isSet(object.targetCounterDestroyedAttacker)\n ? globalThis.Boolean(object.targetCounterDestroyedAttacker)\n : false,\n targetCounterCause: isSet(object.targetCounterCause) ? techPassiveWeaponryFromJSON(object.targetCounterCause) : 0,\n targetDestroyed: isSet(object.targetDestroyed) ? globalThis.Boolean(object.targetDestroyed) : false,\n postDestructionDamageToAttacker: isSet(object.postDestructionDamageToAttacker)\n ? globalThis.Boolean(object.postDestructionDamageToAttacker)\n : false,\n postDestructionDamage: isSet(object.postDestructionDamage) ? globalThis.Number(object.postDestructionDamage) : 0,\n postDestructionDamageDestroyedAttacker: isSet(object.postDestructionDamageDestroyedAttacker)\n ? globalThis.Boolean(object.postDestructionDamageDestroyedAttacker)\n : false,\n postDestructionDamageCause: isSet(object.postDestructionDamageCause)\n ? techPassiveWeaponryFromJSON(object.postDestructionDamageCause)\n : 0,\n };\n },\n\n toJSON(message: EventAttackShotDetail): unknown {\n const obj: any = {};\n if (message.targetStructId !== \"\") {\n obj.targetStructId = message.targetStructId;\n }\n if (message.targetStructType !== 0) {\n obj.targetStructType = Math.round(message.targetStructType);\n }\n if (message.targetStructLocationType !== 0) {\n obj.targetStructLocationType = objectTypeToJSON(message.targetStructLocationType);\n }\n if (message.targetStructLocationId !== \"\") {\n obj.targetStructLocationId = message.targetStructLocationId;\n }\n if (message.targetStructOperatingAmbit !== 0) {\n obj.targetStructOperatingAmbit = ambitToJSON(message.targetStructOperatingAmbit);\n }\n if (message.targetStructSlot !== 0) {\n obj.targetStructSlot = Math.round(message.targetStructSlot);\n }\n if (message.evaded !== false) {\n obj.evaded = message.evaded;\n }\n if (message.evadedCause !== 0) {\n obj.evadedCause = techUnitDefensesToJSON(message.evadedCause);\n }\n if (message.evadedByPlanetaryDefenses !== false) {\n obj.evadedByPlanetaryDefenses = message.evadedByPlanetaryDefenses;\n }\n if (message.evadedByPlanetaryDefensesCause !== 0) {\n obj.evadedByPlanetaryDefensesCause = techPlanetaryDefensesToJSON(message.evadedByPlanetaryDefensesCause);\n }\n if (message.blocked !== false) {\n obj.blocked = message.blocked;\n }\n if (message.blockedByStructId !== \"\") {\n obj.blockedByStructId = message.blockedByStructId;\n }\n if (message.blockedByStructType !== 0) {\n obj.blockedByStructType = Math.round(message.blockedByStructType);\n }\n if (message.blockedByStructLocationType !== 0) {\n obj.blockedByStructLocationType = objectTypeToJSON(message.blockedByStructLocationType);\n }\n if (message.blockedByStructLocationId !== \"\") {\n obj.blockedByStructLocationId = message.blockedByStructLocationId;\n }\n if (message.blockedByStructOperatingAmbit !== 0) {\n obj.blockedByStructOperatingAmbit = ambitToJSON(message.blockedByStructOperatingAmbit);\n }\n if (message.blockedByStructSlot !== 0) {\n obj.blockedByStructSlot = Math.round(message.blockedByStructSlot);\n }\n if (message.blockerDestroyed !== false) {\n obj.blockerDestroyed = message.blockerDestroyed;\n }\n if (message.eventAttackDefenderCounterDetail?.length) {\n obj.eventAttackDefenderCounterDetail = message.eventAttackDefenderCounterDetail.map((e) =>\n EventAttackDefenderCounterDetail.toJSON(e)\n );\n }\n if (message.damageDealt !== 0) {\n obj.damageDealt = Math.round(message.damageDealt);\n }\n if (message.damageReduction !== 0) {\n obj.damageReduction = Math.round(message.damageReduction);\n }\n if (message.damageReductionCause !== 0) {\n obj.damageReductionCause = techUnitDefensesToJSON(message.damageReductionCause);\n }\n if (message.damage !== 0) {\n obj.damage = Math.round(message.damage);\n }\n if (message.targetCountered !== false) {\n obj.targetCountered = message.targetCountered;\n }\n if (message.targetCounteredDamage !== 0) {\n obj.targetCounteredDamage = Math.round(message.targetCounteredDamage);\n }\n if (message.targetCounterDestroyedAttacker !== false) {\n obj.targetCounterDestroyedAttacker = message.targetCounterDestroyedAttacker;\n }\n if (message.targetCounterCause !== 0) {\n obj.targetCounterCause = techPassiveWeaponryToJSON(message.targetCounterCause);\n }\n if (message.targetDestroyed !== false) {\n obj.targetDestroyed = message.targetDestroyed;\n }\n if (message.postDestructionDamageToAttacker !== false) {\n obj.postDestructionDamageToAttacker = message.postDestructionDamageToAttacker;\n }\n if (message.postDestructionDamage !== 0) {\n obj.postDestructionDamage = Math.round(message.postDestructionDamage);\n }\n if (message.postDestructionDamageDestroyedAttacker !== false) {\n obj.postDestructionDamageDestroyedAttacker = message.postDestructionDamageDestroyedAttacker;\n }\n if (message.postDestructionDamageCause !== 0) {\n obj.postDestructionDamageCause = techPassiveWeaponryToJSON(message.postDestructionDamageCause);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAttackShotDetail {\n return EventAttackShotDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAttackShotDetail {\n const message = createBaseEventAttackShotDetail();\n message.targetStructId = object.targetStructId ?? \"\";\n message.targetStructType = object.targetStructType ?? 0;\n message.targetStructLocationType = object.targetStructLocationType ?? 0;\n message.targetStructLocationId = object.targetStructLocationId ?? \"\";\n message.targetStructOperatingAmbit = object.targetStructOperatingAmbit ?? 0;\n message.targetStructSlot = object.targetStructSlot ?? 0;\n message.evaded = object.evaded ?? false;\n message.evadedCause = object.evadedCause ?? 0;\n message.evadedByPlanetaryDefenses = object.evadedByPlanetaryDefenses ?? false;\n message.evadedByPlanetaryDefensesCause = object.evadedByPlanetaryDefensesCause ?? 0;\n message.blocked = object.blocked ?? false;\n message.blockedByStructId = object.blockedByStructId ?? \"\";\n message.blockedByStructType = object.blockedByStructType ?? 0;\n message.blockedByStructLocationType = object.blockedByStructLocationType ?? 0;\n message.blockedByStructLocationId = object.blockedByStructLocationId ?? \"\";\n message.blockedByStructOperatingAmbit = object.blockedByStructOperatingAmbit ?? 0;\n message.blockedByStructSlot = object.blockedByStructSlot ?? 0;\n message.blockerDestroyed = object.blockerDestroyed ?? false;\n message.eventAttackDefenderCounterDetail =\n object.eventAttackDefenderCounterDetail?.map((e) => EventAttackDefenderCounterDetail.fromPartial(e)) || [];\n message.damageDealt = object.damageDealt ?? 0;\n message.damageReduction = object.damageReduction ?? 0;\n message.damageReductionCause = object.damageReductionCause ?? 0;\n message.damage = object.damage ?? 0;\n message.targetCountered = object.targetCountered ?? false;\n message.targetCounteredDamage = object.targetCounteredDamage ?? 0;\n message.targetCounterDestroyedAttacker = object.targetCounterDestroyedAttacker ?? false;\n message.targetCounterCause = object.targetCounterCause ?? 0;\n message.targetDestroyed = object.targetDestroyed ?? false;\n message.postDestructionDamageToAttacker = object.postDestructionDamageToAttacker ?? false;\n message.postDestructionDamage = object.postDestructionDamage ?? 0;\n message.postDestructionDamageDestroyedAttacker = object.postDestructionDamageDestroyedAttacker ?? false;\n message.postDestructionDamageCause = object.postDestructionDamageCause ?? 0;\n return message;\n },\n};\n\nfunction createBaseEventAttackDefenderCounterDetail(): EventAttackDefenderCounterDetail {\n return {\n counterByStructId: \"\",\n counterByStructType: 0,\n counterByStructLocationType: 0,\n counterByStructLocationId: \"\",\n counterByStructOperatingAmbit: 0,\n counterByStructSlot: 0,\n counterDamage: 0,\n counterDestroyedAttacker: false,\n };\n}\n\nexport const EventAttackDefenderCounterDetail: MessageFns = {\n encode(message: EventAttackDefenderCounterDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.counterByStructId !== \"\") {\n writer.uint32(10).string(message.counterByStructId);\n }\n if (message.counterByStructType !== 0) {\n writer.uint32(16).uint64(message.counterByStructType);\n }\n if (message.counterByStructLocationType !== 0) {\n writer.uint32(24).int32(message.counterByStructLocationType);\n }\n if (message.counterByStructLocationId !== \"\") {\n writer.uint32(34).string(message.counterByStructLocationId);\n }\n if (message.counterByStructOperatingAmbit !== 0) {\n writer.uint32(40).int32(message.counterByStructOperatingAmbit);\n }\n if (message.counterByStructSlot !== 0) {\n writer.uint32(48).uint64(message.counterByStructSlot);\n }\n if (message.counterDamage !== 0) {\n writer.uint32(56).uint64(message.counterDamage);\n }\n if (message.counterDestroyedAttacker !== false) {\n writer.uint32(64).bool(message.counterDestroyedAttacker);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAttackDefenderCounterDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAttackDefenderCounterDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.counterByStructId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.counterByStructType = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.counterByStructLocationType = reader.int32() as any;\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.counterByStructLocationId = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.counterByStructOperatingAmbit = reader.int32() as any;\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.counterByStructSlot = longToNumber(reader.uint64());\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.counterDamage = longToNumber(reader.uint64());\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.counterDestroyedAttacker = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAttackDefenderCounterDetail {\n return {\n counterByStructId: isSet(object.counterByStructId) ? globalThis.String(object.counterByStructId) : \"\",\n counterByStructType: isSet(object.counterByStructType) ? globalThis.Number(object.counterByStructType) : 0,\n counterByStructLocationType: isSet(object.counterByStructLocationType)\n ? objectTypeFromJSON(object.counterByStructLocationType)\n : 0,\n counterByStructLocationId: isSet(object.counterByStructLocationId)\n ? globalThis.String(object.counterByStructLocationId)\n : \"\",\n counterByStructOperatingAmbit: isSet(object.counterByStructOperatingAmbit)\n ? ambitFromJSON(object.counterByStructOperatingAmbit)\n : 0,\n counterByStructSlot: isSet(object.counterByStructSlot) ? globalThis.Number(object.counterByStructSlot) : 0,\n counterDamage: isSet(object.counterDamage) ? globalThis.Number(object.counterDamage) : 0,\n counterDestroyedAttacker: isSet(object.counterDestroyedAttacker)\n ? globalThis.Boolean(object.counterDestroyedAttacker)\n : false,\n };\n },\n\n toJSON(message: EventAttackDefenderCounterDetail): unknown {\n const obj: any = {};\n if (message.counterByStructId !== \"\") {\n obj.counterByStructId = message.counterByStructId;\n }\n if (message.counterByStructType !== 0) {\n obj.counterByStructType = Math.round(message.counterByStructType);\n }\n if (message.counterByStructLocationType !== 0) {\n obj.counterByStructLocationType = objectTypeToJSON(message.counterByStructLocationType);\n }\n if (message.counterByStructLocationId !== \"\") {\n obj.counterByStructLocationId = message.counterByStructLocationId;\n }\n if (message.counterByStructOperatingAmbit !== 0) {\n obj.counterByStructOperatingAmbit = ambitToJSON(message.counterByStructOperatingAmbit);\n }\n if (message.counterByStructSlot !== 0) {\n obj.counterByStructSlot = Math.round(message.counterByStructSlot);\n }\n if (message.counterDamage !== 0) {\n obj.counterDamage = Math.round(message.counterDamage);\n }\n if (message.counterDestroyedAttacker !== false) {\n obj.counterDestroyedAttacker = message.counterDestroyedAttacker;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): EventAttackDefenderCounterDetail {\n return EventAttackDefenderCounterDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): EventAttackDefenderCounterDetail {\n const message = createBaseEventAttackDefenderCounterDetail();\n message.counterByStructId = object.counterByStructId ?? \"\";\n message.counterByStructType = object.counterByStructType ?? 0;\n message.counterByStructLocationType = object.counterByStructLocationType ?? 0;\n message.counterByStructLocationId = object.counterByStructLocationId ?? \"\";\n message.counterByStructOperatingAmbit = object.counterByStructOperatingAmbit ?? 0;\n message.counterByStructSlot = object.counterByStructSlot ?? 0;\n message.counterDamage = object.counterDamage ?? 0;\n message.counterDestroyedAttacker = object.counterDestroyedAttacker ?? false;\n return message;\n },\n};\n\nfunction createBaseEventRaid(): EventRaid {\n return { eventRaidDetail: undefined };\n}\n\nexport const EventRaid: MessageFns = {\n encode(message: EventRaid, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventRaidDetail !== undefined) {\n EventRaidDetail.encode(message.eventRaidDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventRaid {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventRaid();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventRaidDetail = EventRaidDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventRaid {\n return {\n eventRaidDetail: isSet(object.eventRaidDetail) ? EventRaidDetail.fromJSON(object.eventRaidDetail) : undefined,\n };\n },\n\n toJSON(message: EventRaid): unknown {\n const obj: any = {};\n if (message.eventRaidDetail !== undefined) {\n obj.eventRaidDetail = EventRaidDetail.toJSON(message.eventRaidDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventRaid {\n return EventRaid.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventRaid {\n const message = createBaseEventRaid();\n message.eventRaidDetail = (object.eventRaidDetail !== undefined && object.eventRaidDetail !== null)\n ? EventRaidDetail.fromPartial(object.eventRaidDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventRaidDetail(): EventRaidDetail {\n return { fleetId: \"\", planetId: \"\", status: 0 };\n}\n\nexport const EventRaidDetail: MessageFns = {\n encode(message: EventRaidDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.fleetId !== \"\") {\n writer.uint32(10).string(message.fleetId);\n }\n if (message.planetId !== \"\") {\n writer.uint32(18).string(message.planetId);\n }\n if (message.status !== 0) {\n writer.uint32(24).int32(message.status);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventRaidDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventRaidDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.fleetId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.planetId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.status = reader.int32() as any;\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventRaidDetail {\n return {\n fleetId: isSet(object.fleetId) ? globalThis.String(object.fleetId) : \"\",\n planetId: isSet(object.planetId) ? globalThis.String(object.planetId) : \"\",\n status: isSet(object.status) ? raidStatusFromJSON(object.status) : 0,\n };\n },\n\n toJSON(message: EventRaidDetail): unknown {\n const obj: any = {};\n if (message.fleetId !== \"\") {\n obj.fleetId = message.fleetId;\n }\n if (message.planetId !== \"\") {\n obj.planetId = message.planetId;\n }\n if (message.status !== 0) {\n obj.status = raidStatusToJSON(message.status);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventRaidDetail {\n return EventRaidDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventRaidDetail {\n const message = createBaseEventRaidDetail();\n message.fleetId = object.fleetId ?? \"\";\n message.planetId = object.planetId ?? \"\";\n message.status = object.status ?? 0;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction toTimestamp(date: Date): Timestamp {\n const seconds = Math.trunc(date.getTime() / 1_000);\n const nanos = (date.getTime() % 1_000) * 1_000_000;\n return { seconds, nanos };\n}\n\nfunction fromTimestamp(t: Timestamp): Date {\n let millis = (t.seconds || 0) * 1_000;\n millis += (t.nanos || 0) / 1_000_000;\n return new globalThis.Date(millis);\n}\n\nfunction fromJsonTimestamp(o: any): Date {\n if (o instanceof globalThis.Date) {\n return o;\n } else if (typeof o === \"string\") {\n return new globalThis.Date(o);\n } else {\n return fromTimestamp(Timestamp.fromJSON(o));\n }\n}\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/fleet.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport {\n fleetStatus,\n fleetStatusFromJSON,\n fleetStatusToJSON,\n objectType,\n objectTypeFromJSON,\n objectTypeToJSON,\n} from \"./keys\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface Fleet {\n id: string;\n owner: string;\n locationType: objectType;\n locationId: string;\n status: fleetStatus;\n /** Towards Planet */\n locationListForward: string;\n /** Towards End of List */\n locationListBackward: string;\n space: string[];\n air: string[];\n land: string[];\n water: string[];\n spaceSlots: number;\n airSlots: number;\n landSlots: number;\n waterSlots: number;\n commandStruct: string;\n}\n\nexport interface FleetAttributeRecord {\n attributeId: string;\n value: number;\n}\n\nfunction createBaseFleet(): Fleet {\n return {\n id: \"\",\n owner: \"\",\n locationType: 0,\n locationId: \"\",\n status: 0,\n locationListForward: \"\",\n locationListBackward: \"\",\n space: [],\n air: [],\n land: [],\n water: [],\n spaceSlots: 0,\n airSlots: 0,\n landSlots: 0,\n waterSlots: 0,\n commandStruct: \"\",\n };\n}\n\nexport const Fleet: MessageFns = {\n encode(message: Fleet, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.owner !== \"\") {\n writer.uint32(18).string(message.owner);\n }\n if (message.locationType !== 0) {\n writer.uint32(24).int32(message.locationType);\n }\n if (message.locationId !== \"\") {\n writer.uint32(34).string(message.locationId);\n }\n if (message.status !== 0) {\n writer.uint32(40).int32(message.status);\n }\n if (message.locationListForward !== \"\") {\n writer.uint32(50).string(message.locationListForward);\n }\n if (message.locationListBackward !== \"\") {\n writer.uint32(58).string(message.locationListBackward);\n }\n for (const v of message.space) {\n writer.uint32(66).string(v!);\n }\n for (const v of message.air) {\n writer.uint32(74).string(v!);\n }\n for (const v of message.land) {\n writer.uint32(82).string(v!);\n }\n for (const v of message.water) {\n writer.uint32(90).string(v!);\n }\n if (message.spaceSlots !== 0) {\n writer.uint32(96).uint64(message.spaceSlots);\n }\n if (message.airSlots !== 0) {\n writer.uint32(104).uint64(message.airSlots);\n }\n if (message.landSlots !== 0) {\n writer.uint32(112).uint64(message.landSlots);\n }\n if (message.waterSlots !== 0) {\n writer.uint32(120).uint64(message.waterSlots);\n }\n if (message.commandStruct !== \"\") {\n writer.uint32(130).string(message.commandStruct);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Fleet {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFleet();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.owner = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.locationType = reader.int32() as any;\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.locationId = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.status = reader.int32() as any;\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.locationListForward = reader.string();\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.locationListBackward = reader.string();\n continue;\n }\n case 8: {\n if (tag !== 66) {\n break;\n }\n\n message.space.push(reader.string());\n continue;\n }\n case 9: {\n if (tag !== 74) {\n break;\n }\n\n message.air.push(reader.string());\n continue;\n }\n case 10: {\n if (tag !== 82) {\n break;\n }\n\n message.land.push(reader.string());\n continue;\n }\n case 11: {\n if (tag !== 90) {\n break;\n }\n\n message.water.push(reader.string());\n continue;\n }\n case 12: {\n if (tag !== 96) {\n break;\n }\n\n message.spaceSlots = longToNumber(reader.uint64());\n continue;\n }\n case 13: {\n if (tag !== 104) {\n break;\n }\n\n message.airSlots = longToNumber(reader.uint64());\n continue;\n }\n case 14: {\n if (tag !== 112) {\n break;\n }\n\n message.landSlots = longToNumber(reader.uint64());\n continue;\n }\n case 15: {\n if (tag !== 120) {\n break;\n }\n\n message.waterSlots = longToNumber(reader.uint64());\n continue;\n }\n case 16: {\n if (tag !== 130) {\n break;\n }\n\n message.commandStruct = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Fleet {\n return {\n id: isSet(object.id) ? globalThis.String(object.id) : \"\",\n owner: isSet(object.owner) ? globalThis.String(object.owner) : \"\",\n locationType: isSet(object.locationType) ? objectTypeFromJSON(object.locationType) : 0,\n locationId: isSet(object.locationId) ? globalThis.String(object.locationId) : \"\",\n status: isSet(object.status) ? fleetStatusFromJSON(object.status) : 0,\n locationListForward: isSet(object.locationListForward) ? globalThis.String(object.locationListForward) : \"\",\n locationListBackward: isSet(object.locationListBackward) ? globalThis.String(object.locationListBackward) : \"\",\n space: globalThis.Array.isArray(object?.space) ? object.space.map((e: any) => globalThis.String(e)) : [],\n air: globalThis.Array.isArray(object?.air) ? object.air.map((e: any) => globalThis.String(e)) : [],\n land: globalThis.Array.isArray(object?.land) ? object.land.map((e: any) => globalThis.String(e)) : [],\n water: globalThis.Array.isArray(object?.water) ? object.water.map((e: any) => globalThis.String(e)) : [],\n spaceSlots: isSet(object.spaceSlots) ? globalThis.Number(object.spaceSlots) : 0,\n airSlots: isSet(object.airSlots) ? globalThis.Number(object.airSlots) : 0,\n landSlots: isSet(object.landSlots) ? globalThis.Number(object.landSlots) : 0,\n waterSlots: isSet(object.waterSlots) ? globalThis.Number(object.waterSlots) : 0,\n commandStruct: isSet(object.commandStruct) ? globalThis.String(object.commandStruct) : \"\",\n };\n },\n\n toJSON(message: Fleet): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n if (message.owner !== \"\") {\n obj.owner = message.owner;\n }\n if (message.locationType !== 0) {\n obj.locationType = objectTypeToJSON(message.locationType);\n }\n if (message.locationId !== \"\") {\n obj.locationId = message.locationId;\n }\n if (message.status !== 0) {\n obj.status = fleetStatusToJSON(message.status);\n }\n if (message.locationListForward !== \"\") {\n obj.locationListForward = message.locationListForward;\n }\n if (message.locationListBackward !== \"\") {\n obj.locationListBackward = message.locationListBackward;\n }\n if (message.space?.length) {\n obj.space = message.space;\n }\n if (message.air?.length) {\n obj.air = message.air;\n }\n if (message.land?.length) {\n obj.land = message.land;\n }\n if (message.water?.length) {\n obj.water = message.water;\n }\n if (message.spaceSlots !== 0) {\n obj.spaceSlots = Math.round(message.spaceSlots);\n }\n if (message.airSlots !== 0) {\n obj.airSlots = Math.round(message.airSlots);\n }\n if (message.landSlots !== 0) {\n obj.landSlots = Math.round(message.landSlots);\n }\n if (message.waterSlots !== 0) {\n obj.waterSlots = Math.round(message.waterSlots);\n }\n if (message.commandStruct !== \"\") {\n obj.commandStruct = message.commandStruct;\n }\n return obj;\n },\n\n create, I>>(base?: I): Fleet {\n return Fleet.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Fleet {\n const message = createBaseFleet();\n message.id = object.id ?? \"\";\n message.owner = object.owner ?? \"\";\n message.locationType = object.locationType ?? 0;\n message.locationId = object.locationId ?? \"\";\n message.status = object.status ?? 0;\n message.locationListForward = object.locationListForward ?? \"\";\n message.locationListBackward = object.locationListBackward ?? \"\";\n message.space = object.space?.map((e) => e) || [];\n message.air = object.air?.map((e) => e) || [];\n message.land = object.land?.map((e) => e) || [];\n message.water = object.water?.map((e) => e) || [];\n message.spaceSlots = object.spaceSlots ?? 0;\n message.airSlots = object.airSlots ?? 0;\n message.landSlots = object.landSlots ?? 0;\n message.waterSlots = object.waterSlots ?? 0;\n message.commandStruct = object.commandStruct ?? \"\";\n return message;\n },\n};\n\nfunction createBaseFleetAttributeRecord(): FleetAttributeRecord {\n return { attributeId: \"\", value: 0 };\n}\n\nexport const FleetAttributeRecord: MessageFns = {\n encode(message: FleetAttributeRecord, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.attributeId !== \"\") {\n writer.uint32(10).string(message.attributeId);\n }\n if (message.value !== 0) {\n writer.uint32(16).uint64(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FleetAttributeRecord {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFleetAttributeRecord();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.attributeId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.value = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FleetAttributeRecord {\n return {\n attributeId: isSet(object.attributeId) ? globalThis.String(object.attributeId) : \"\",\n value: isSet(object.value) ? globalThis.Number(object.value) : 0,\n };\n },\n\n toJSON(message: FleetAttributeRecord): unknown {\n const obj: any = {};\n if (message.attributeId !== \"\") {\n obj.attributeId = message.attributeId;\n }\n if (message.value !== 0) {\n obj.value = Math.round(message.value);\n }\n return obj;\n },\n\n create, I>>(base?: I): FleetAttributeRecord {\n return FleetAttributeRecord.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): FleetAttributeRecord {\n const message = createBaseFleetAttributeRecord();\n message.attributeId = object.attributeId ?? \"\";\n message.value = object.value ?? 0;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/genesis.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { AddressRecord } from \"./address\";\nimport { Agreement } from \"./agreement\";\nimport { Allocation } from \"./allocation\";\nimport { GridRecord } from \"./grid\";\nimport { Guild } from \"./guild\";\nimport { Infusion } from \"./infusion\";\nimport { Params } from \"./params\";\nimport { PermissionRecord } from \"./permission\";\nimport { Planet } from \"./planet\";\nimport { Player } from \"./player\";\nimport { Provider } from \"./provider\";\nimport { Reactor } from \"./reactor\";\nimport { Struct } from \"./struct\";\nimport { Substation } from \"./substation\";\n\nexport const protobufPackage = \"structs.structs\";\n\n/** GenesisState defines the structs module's genesis state. */\nexport interface GenesisState {\n /** params defines all the parameters of the module. */\n params: Params | undefined;\n portId: string;\n allocationList: Allocation[];\n agreementList: Agreement[];\n infusionList: Infusion[];\n guildList: Guild[];\n guildCount: number;\n planetList: Planet[];\n planetCount: number;\n playerList: Player[];\n playerHalted: string[];\n playerCount: number;\n providerList: Provider[];\n providerCount: number;\n reactorList: Reactor[];\n reactorCount: number;\n structList: Struct[];\n structCount: number;\n substationList: Substation[];\n substationCount: number;\n permissionList: PermissionRecord[];\n gridList: GridRecord[];\n addressList: AddressRecord[];\n}\n\nfunction createBaseGenesisState(): GenesisState {\n return {\n params: undefined,\n portId: \"\",\n allocationList: [],\n agreementList: [],\n infusionList: [],\n guildList: [],\n guildCount: 0,\n planetList: [],\n planetCount: 0,\n playerList: [],\n playerHalted: [],\n playerCount: 0,\n providerList: [],\n providerCount: 0,\n reactorList: [],\n reactorCount: 0,\n structList: [],\n structCount: 0,\n substationList: [],\n substationCount: 0,\n permissionList: [],\n gridList: [],\n addressList: [],\n };\n}\n\nexport const GenesisState: MessageFns = {\n encode(message: GenesisState, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.params !== undefined) {\n Params.encode(message.params, writer.uint32(10).fork()).join();\n }\n if (message.portId !== \"\") {\n writer.uint32(18).string(message.portId);\n }\n for (const v of message.allocationList) {\n Allocation.encode(v!, writer.uint32(26).fork()).join();\n }\n for (const v of message.agreementList) {\n Agreement.encode(v!, writer.uint32(34).fork()).join();\n }\n for (const v of message.infusionList) {\n Infusion.encode(v!, writer.uint32(42).fork()).join();\n }\n for (const v of message.guildList) {\n Guild.encode(v!, writer.uint32(50).fork()).join();\n }\n if (message.guildCount !== 0) {\n writer.uint32(56).uint64(message.guildCount);\n }\n for (const v of message.planetList) {\n Planet.encode(v!, writer.uint32(66).fork()).join();\n }\n if (message.planetCount !== 0) {\n writer.uint32(72).uint64(message.planetCount);\n }\n for (const v of message.playerList) {\n Player.encode(v!, writer.uint32(82).fork()).join();\n }\n for (const v of message.playerHalted) {\n writer.uint32(90).string(v!);\n }\n if (message.playerCount !== 0) {\n writer.uint32(96).uint64(message.playerCount);\n }\n for (const v of message.providerList) {\n Provider.encode(v!, writer.uint32(106).fork()).join();\n }\n if (message.providerCount !== 0) {\n writer.uint32(112).uint64(message.providerCount);\n }\n for (const v of message.reactorList) {\n Reactor.encode(v!, writer.uint32(122).fork()).join();\n }\n if (message.reactorCount !== 0) {\n writer.uint32(128).uint64(message.reactorCount);\n }\n for (const v of message.structList) {\n Struct.encode(v!, writer.uint32(138).fork()).join();\n }\n if (message.structCount !== 0) {\n writer.uint32(144).uint64(message.structCount);\n }\n for (const v of message.substationList) {\n Substation.encode(v!, writer.uint32(154).fork()).join();\n }\n if (message.substationCount !== 0) {\n writer.uint32(160).uint64(message.substationCount);\n }\n for (const v of message.permissionList) {\n PermissionRecord.encode(v!, writer.uint32(170).fork()).join();\n }\n for (const v of message.gridList) {\n GridRecord.encode(v!, writer.uint32(178).fork()).join();\n }\n for (const v of message.addressList) {\n AddressRecord.encode(v!, writer.uint32(186).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGenesisState();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.params = Params.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.portId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.allocationList.push(Allocation.decode(reader, reader.uint32()));\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.agreementList.push(Agreement.decode(reader, reader.uint32()));\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.infusionList.push(Infusion.decode(reader, reader.uint32()));\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.guildList.push(Guild.decode(reader, reader.uint32()));\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.guildCount = longToNumber(reader.uint64());\n continue;\n }\n case 8: {\n if (tag !== 66) {\n break;\n }\n\n message.planetList.push(Planet.decode(reader, reader.uint32()));\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.planetCount = longToNumber(reader.uint64());\n continue;\n }\n case 10: {\n if (tag !== 82) {\n break;\n }\n\n message.playerList.push(Player.decode(reader, reader.uint32()));\n continue;\n }\n case 11: {\n if (tag !== 90) {\n break;\n }\n\n message.playerHalted.push(reader.string());\n continue;\n }\n case 12: {\n if (tag !== 96) {\n break;\n }\n\n message.playerCount = longToNumber(reader.uint64());\n continue;\n }\n case 13: {\n if (tag !== 106) {\n break;\n }\n\n message.providerList.push(Provider.decode(reader, reader.uint32()));\n continue;\n }\n case 14: {\n if (tag !== 112) {\n break;\n }\n\n message.providerCount = longToNumber(reader.uint64());\n continue;\n }\n case 15: {\n if (tag !== 122) {\n break;\n }\n\n message.reactorList.push(Reactor.decode(reader, reader.uint32()));\n continue;\n }\n case 16: {\n if (tag !== 128) {\n break;\n }\n\n message.reactorCount = longToNumber(reader.uint64());\n continue;\n }\n case 17: {\n if (tag !== 138) {\n break;\n }\n\n message.structList.push(Struct.decode(reader, reader.uint32()));\n continue;\n }\n case 18: {\n if (tag !== 144) {\n break;\n }\n\n message.structCount = longToNumber(reader.uint64());\n continue;\n }\n case 19: {\n if (tag !== 154) {\n break;\n }\n\n message.substationList.push(Substation.decode(reader, reader.uint32()));\n continue;\n }\n case 20: {\n if (tag !== 160) {\n break;\n }\n\n message.substationCount = longToNumber(reader.uint64());\n continue;\n }\n case 21: {\n if (tag !== 170) {\n break;\n }\n\n message.permissionList.push(PermissionRecord.decode(reader, reader.uint32()));\n continue;\n }\n case 22: {\n if (tag !== 178) {\n break;\n }\n\n message.gridList.push(GridRecord.decode(reader, reader.uint32()));\n continue;\n }\n case 23: {\n if (tag !== 186) {\n break;\n }\n\n message.addressList.push(AddressRecord.decode(reader, reader.uint32()));\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): GenesisState {\n return {\n params: isSet(object.params) ? Params.fromJSON(object.params) : undefined,\n portId: isSet(object.portId) ? globalThis.String(object.portId) : \"\",\n allocationList: globalThis.Array.isArray(object?.allocationList)\n ? object.allocationList.map((e: any) => Allocation.fromJSON(e))\n : [],\n agreementList: globalThis.Array.isArray(object?.agreementList)\n ? object.agreementList.map((e: any) => Agreement.fromJSON(e))\n : [],\n infusionList: globalThis.Array.isArray(object?.infusionList)\n ? object.infusionList.map((e: any) => Infusion.fromJSON(e))\n : [],\n guildList: globalThis.Array.isArray(object?.guildList) ? object.guildList.map((e: any) => Guild.fromJSON(e)) : [],\n guildCount: isSet(object.guildCount) ? globalThis.Number(object.guildCount) : 0,\n planetList: globalThis.Array.isArray(object?.planetList)\n ? object.planetList.map((e: any) => Planet.fromJSON(e))\n : [],\n planetCount: isSet(object.planetCount) ? globalThis.Number(object.planetCount) : 0,\n playerList: globalThis.Array.isArray(object?.playerList)\n ? object.playerList.map((e: any) => Player.fromJSON(e))\n : [],\n playerHalted: globalThis.Array.isArray(object?.playerHalted)\n ? object.playerHalted.map((e: any) => globalThis.String(e))\n : [],\n playerCount: isSet(object.playerCount) ? globalThis.Number(object.playerCount) : 0,\n providerList: globalThis.Array.isArray(object?.providerList)\n ? object.providerList.map((e: any) => Provider.fromJSON(e))\n : [],\n providerCount: isSet(object.providerCount) ? globalThis.Number(object.providerCount) : 0,\n reactorList: globalThis.Array.isArray(object?.reactorList)\n ? object.reactorList.map((e: any) => Reactor.fromJSON(e))\n : [],\n reactorCount: isSet(object.reactorCount) ? globalThis.Number(object.reactorCount) : 0,\n structList: globalThis.Array.isArray(object?.structList)\n ? object.structList.map((e: any) => Struct.fromJSON(e))\n : [],\n structCount: isSet(object.structCount) ? globalThis.Number(object.structCount) : 0,\n substationList: globalThis.Array.isArray(object?.substationList)\n ? object.substationList.map((e: any) => Substation.fromJSON(e))\n : [],\n substationCount: isSet(object.substationCount) ? globalThis.Number(object.substationCount) : 0,\n permissionList: globalThis.Array.isArray(object?.permissionList)\n ? object.permissionList.map((e: any) => PermissionRecord.fromJSON(e))\n : [],\n gridList: globalThis.Array.isArray(object?.gridList)\n ? object.gridList.map((e: any) => GridRecord.fromJSON(e))\n : [],\n addressList: globalThis.Array.isArray(object?.addressList)\n ? object.addressList.map((e: any) => AddressRecord.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: GenesisState): unknown {\n const obj: any = {};\n if (message.params !== undefined) {\n obj.params = Params.toJSON(message.params);\n }\n if (message.portId !== \"\") {\n obj.portId = message.portId;\n }\n if (message.allocationList?.length) {\n obj.allocationList = message.allocationList.map((e) => Allocation.toJSON(e));\n }\n if (message.agreementList?.length) {\n obj.agreementList = message.agreementList.map((e) => Agreement.toJSON(e));\n }\n if (message.infusionList?.length) {\n obj.infusionList = message.infusionList.map((e) => Infusion.toJSON(e));\n }\n if (message.guildList?.length) {\n obj.guildList = message.guildList.map((e) => Guild.toJSON(e));\n }\n if (message.guildCount !== 0) {\n obj.guildCount = Math.round(message.guildCount);\n }\n if (message.planetList?.length) {\n obj.planetList = message.planetList.map((e) => Planet.toJSON(e));\n }\n if (message.planetCount !== 0) {\n obj.planetCount = Math.round(message.planetCount);\n }\n if (message.playerList?.length) {\n obj.playerList = message.playerList.map((e) => Player.toJSON(e));\n }\n if (message.playerHalted?.length) {\n obj.playerHalted = message.playerHalted;\n }\n if (message.playerCount !== 0) {\n obj.playerCount = Math.round(message.playerCount);\n }\n if (message.providerList?.length) {\n obj.providerList = message.providerList.map((e) => Provider.toJSON(e));\n }\n if (message.providerCount !== 0) {\n obj.providerCount = Math.round(message.providerCount);\n }\n if (message.reactorList?.length) {\n obj.reactorList = message.reactorList.map((e) => Reactor.toJSON(e));\n }\n if (message.reactorCount !== 0) {\n obj.reactorCount = Math.round(message.reactorCount);\n }\n if (message.structList?.length) {\n obj.structList = message.structList.map((e) => Struct.toJSON(e));\n }\n if (message.structCount !== 0) {\n obj.structCount = Math.round(message.structCount);\n }\n if (message.substationList?.length) {\n obj.substationList = message.substationList.map((e) => Substation.toJSON(e));\n }\n if (message.substationCount !== 0) {\n obj.substationCount = Math.round(message.substationCount);\n }\n if (message.permissionList?.length) {\n obj.permissionList = message.permissionList.map((e) => PermissionRecord.toJSON(e));\n }\n if (message.gridList?.length) {\n obj.gridList = message.gridList.map((e) => GridRecord.toJSON(e));\n }\n if (message.addressList?.length) {\n obj.addressList = message.addressList.map((e) => AddressRecord.toJSON(e));\n }\n return obj;\n },\n\n create, I>>(base?: I): GenesisState {\n return GenesisState.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): GenesisState {\n const message = createBaseGenesisState();\n message.params = (object.params !== undefined && object.params !== null)\n ? Params.fromPartial(object.params)\n : undefined;\n message.portId = object.portId ?? \"\";\n message.allocationList = object.allocationList?.map((e) => Allocation.fromPartial(e)) || [];\n message.agreementList = object.agreementList?.map((e) => Agreement.fromPartial(e)) || [];\n message.infusionList = object.infusionList?.map((e) => Infusion.fromPartial(e)) || [];\n message.guildList = object.guildList?.map((e) => Guild.fromPartial(e)) || [];\n message.guildCount = object.guildCount ?? 0;\n message.planetList = object.planetList?.map((e) => Planet.fromPartial(e)) || [];\n message.planetCount = object.planetCount ?? 0;\n message.playerList = object.playerList?.map((e) => Player.fromPartial(e)) || [];\n message.playerHalted = object.playerHalted?.map((e) => e) || [];\n message.playerCount = object.playerCount ?? 0;\n message.providerList = object.providerList?.map((e) => Provider.fromPartial(e)) || [];\n message.providerCount = object.providerCount ?? 0;\n message.reactorList = object.reactorList?.map((e) => Reactor.fromPartial(e)) || [];\n message.reactorCount = object.reactorCount ?? 0;\n message.structList = object.structList?.map((e) => Struct.fromPartial(e)) || [];\n message.structCount = object.structCount ?? 0;\n message.substationList = object.substationList?.map((e) => Substation.fromPartial(e)) || [];\n message.substationCount = object.substationCount ?? 0;\n message.permissionList = object.permissionList?.map((e) => PermissionRecord.fromPartial(e)) || [];\n message.gridList = object.gridList?.map((e) => GridRecord.fromPartial(e)) || [];\n message.addressList = object.addressList?.map((e) => AddressRecord.fromPartial(e)) || [];\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/grid.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface GridRecord {\n attributeId: string;\n value: number;\n}\n\nexport interface GridAttributes {\n ore: number;\n fuel: number;\n capacity: number;\n load: number;\n structsLoad: number;\n power: number;\n connectionCapacity: number;\n connectionCount: number;\n allocationPointerStart: number;\n allocationPointerEnd: number;\n proxyNonce: number;\n lastAction: number;\n nonce: number;\n ready: number;\n checkpointBlock: number;\n}\n\nfunction createBaseGridRecord(): GridRecord {\n return { attributeId: \"\", value: 0 };\n}\n\nexport const GridRecord: MessageFns = {\n encode(message: GridRecord, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.attributeId !== \"\") {\n writer.uint32(10).string(message.attributeId);\n }\n if (message.value !== 0) {\n writer.uint32(16).uint64(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): GridRecord {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGridRecord();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.attributeId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.value = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): GridRecord {\n return {\n attributeId: isSet(object.attributeId) ? globalThis.String(object.attributeId) : \"\",\n value: isSet(object.value) ? globalThis.Number(object.value) : 0,\n };\n },\n\n toJSON(message: GridRecord): unknown {\n const obj: any = {};\n if (message.attributeId !== \"\") {\n obj.attributeId = message.attributeId;\n }\n if (message.value !== 0) {\n obj.value = Math.round(message.value);\n }\n return obj;\n },\n\n create, I>>(base?: I): GridRecord {\n return GridRecord.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): GridRecord {\n const message = createBaseGridRecord();\n message.attributeId = object.attributeId ?? \"\";\n message.value = object.value ?? 0;\n return message;\n },\n};\n\nfunction createBaseGridAttributes(): GridAttributes {\n return {\n ore: 0,\n fuel: 0,\n capacity: 0,\n load: 0,\n structsLoad: 0,\n power: 0,\n connectionCapacity: 0,\n connectionCount: 0,\n allocationPointerStart: 0,\n allocationPointerEnd: 0,\n proxyNonce: 0,\n lastAction: 0,\n nonce: 0,\n ready: 0,\n checkpointBlock: 0,\n };\n}\n\nexport const GridAttributes: MessageFns = {\n encode(message: GridAttributes, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.ore !== 0) {\n writer.uint32(8).uint64(message.ore);\n }\n if (message.fuel !== 0) {\n writer.uint32(16).uint64(message.fuel);\n }\n if (message.capacity !== 0) {\n writer.uint32(24).uint64(message.capacity);\n }\n if (message.load !== 0) {\n writer.uint32(32).uint64(message.load);\n }\n if (message.structsLoad !== 0) {\n writer.uint32(40).uint64(message.structsLoad);\n }\n if (message.power !== 0) {\n writer.uint32(48).uint64(message.power);\n }\n if (message.connectionCapacity !== 0) {\n writer.uint32(56).uint64(message.connectionCapacity);\n }\n if (message.connectionCount !== 0) {\n writer.uint32(64).uint64(message.connectionCount);\n }\n if (message.allocationPointerStart !== 0) {\n writer.uint32(72).uint64(message.allocationPointerStart);\n }\n if (message.allocationPointerEnd !== 0) {\n writer.uint32(80).uint64(message.allocationPointerEnd);\n }\n if (message.proxyNonce !== 0) {\n writer.uint32(88).uint64(message.proxyNonce);\n }\n if (message.lastAction !== 0) {\n writer.uint32(96).uint64(message.lastAction);\n }\n if (message.nonce !== 0) {\n writer.uint32(104).uint64(message.nonce);\n }\n if (message.ready !== 0) {\n writer.uint32(112).uint64(message.ready);\n }\n if (message.checkpointBlock !== 0) {\n writer.uint32(120).uint64(message.checkpointBlock);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): GridAttributes {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGridAttributes();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.ore = longToNumber(reader.uint64());\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.fuel = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.capacity = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.load = longToNumber(reader.uint64());\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.structsLoad = longToNumber(reader.uint64());\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.power = longToNumber(reader.uint64());\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.connectionCapacity = longToNumber(reader.uint64());\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.connectionCount = longToNumber(reader.uint64());\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.allocationPointerStart = longToNumber(reader.uint64());\n continue;\n }\n case 10: {\n if (tag !== 80) {\n break;\n }\n\n message.allocationPointerEnd = longToNumber(reader.uint64());\n continue;\n }\n case 11: {\n if (tag !== 88) {\n break;\n }\n\n message.proxyNonce = longToNumber(reader.uint64());\n continue;\n }\n case 12: {\n if (tag !== 96) {\n break;\n }\n\n message.lastAction = longToNumber(reader.uint64());\n continue;\n }\n case 13: {\n if (tag !== 104) {\n break;\n }\n\n message.nonce = longToNumber(reader.uint64());\n continue;\n }\n case 14: {\n if (tag !== 112) {\n break;\n }\n\n message.ready = longToNumber(reader.uint64());\n continue;\n }\n case 15: {\n if (tag !== 120) {\n break;\n }\n\n message.checkpointBlock = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): GridAttributes {\n return {\n ore: isSet(object.ore) ? globalThis.Number(object.ore) : 0,\n fuel: isSet(object.fuel) ? globalThis.Number(object.fuel) : 0,\n capacity: isSet(object.capacity) ? globalThis.Number(object.capacity) : 0,\n load: isSet(object.load) ? globalThis.Number(object.load) : 0,\n structsLoad: isSet(object.structsLoad) ? globalThis.Number(object.structsLoad) : 0,\n power: isSet(object.power) ? globalThis.Number(object.power) : 0,\n connectionCapacity: isSet(object.connectionCapacity) ? globalThis.Number(object.connectionCapacity) : 0,\n connectionCount: isSet(object.connectionCount) ? globalThis.Number(object.connectionCount) : 0,\n allocationPointerStart: isSet(object.allocationPointerStart)\n ? globalThis.Number(object.allocationPointerStart)\n : 0,\n allocationPointerEnd: isSet(object.allocationPointerEnd) ? globalThis.Number(object.allocationPointerEnd) : 0,\n proxyNonce: isSet(object.proxyNonce) ? globalThis.Number(object.proxyNonce) : 0,\n lastAction: isSet(object.lastAction) ? globalThis.Number(object.lastAction) : 0,\n nonce: isSet(object.nonce) ? globalThis.Number(object.nonce) : 0,\n ready: isSet(object.ready) ? globalThis.Number(object.ready) : 0,\n checkpointBlock: isSet(object.checkpointBlock) ? globalThis.Number(object.checkpointBlock) : 0,\n };\n },\n\n toJSON(message: GridAttributes): unknown {\n const obj: any = {};\n if (message.ore !== 0) {\n obj.ore = Math.round(message.ore);\n }\n if (message.fuel !== 0) {\n obj.fuel = Math.round(message.fuel);\n }\n if (message.capacity !== 0) {\n obj.capacity = Math.round(message.capacity);\n }\n if (message.load !== 0) {\n obj.load = Math.round(message.load);\n }\n if (message.structsLoad !== 0) {\n obj.structsLoad = Math.round(message.structsLoad);\n }\n if (message.power !== 0) {\n obj.power = Math.round(message.power);\n }\n if (message.connectionCapacity !== 0) {\n obj.connectionCapacity = Math.round(message.connectionCapacity);\n }\n if (message.connectionCount !== 0) {\n obj.connectionCount = Math.round(message.connectionCount);\n }\n if (message.allocationPointerStart !== 0) {\n obj.allocationPointerStart = Math.round(message.allocationPointerStart);\n }\n if (message.allocationPointerEnd !== 0) {\n obj.allocationPointerEnd = Math.round(message.allocationPointerEnd);\n }\n if (message.proxyNonce !== 0) {\n obj.proxyNonce = Math.round(message.proxyNonce);\n }\n if (message.lastAction !== 0) {\n obj.lastAction = Math.round(message.lastAction);\n }\n if (message.nonce !== 0) {\n obj.nonce = Math.round(message.nonce);\n }\n if (message.ready !== 0) {\n obj.ready = Math.round(message.ready);\n }\n if (message.checkpointBlock !== 0) {\n obj.checkpointBlock = Math.round(message.checkpointBlock);\n }\n return obj;\n },\n\n create, I>>(base?: I): GridAttributes {\n return GridAttributes.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): GridAttributes {\n const message = createBaseGridAttributes();\n message.ore = object.ore ?? 0;\n message.fuel = object.fuel ?? 0;\n message.capacity = object.capacity ?? 0;\n message.load = object.load ?? 0;\n message.structsLoad = object.structsLoad ?? 0;\n message.power = object.power ?? 0;\n message.connectionCapacity = object.connectionCapacity ?? 0;\n message.connectionCount = object.connectionCount ?? 0;\n message.allocationPointerStart = object.allocationPointerStart ?? 0;\n message.allocationPointerEnd = object.allocationPointerEnd ?? 0;\n message.proxyNonce = object.proxyNonce ?? 0;\n message.lastAction = object.lastAction ?? 0;\n message.nonce = object.nonce ?? 0;\n message.ready = object.ready ?? 0;\n message.checkpointBlock = object.checkpointBlock ?? 0;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/guild.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport {\n guildJoinBypassLevel,\n guildJoinBypassLevelFromJSON,\n guildJoinBypassLevelToJSON,\n guildJoinType,\n guildJoinTypeFromJSON,\n guildJoinTypeToJSON,\n registrationStatus,\n registrationStatusFromJSON,\n registrationStatusToJSON,\n} from \"./keys\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface Guild {\n id: string;\n index: number;\n endpoint: string;\n creator: string;\n owner: string;\n joinInfusionMinimum: number;\n joinInfusionMinimumBypassByRequest: guildJoinBypassLevel;\n joinInfusionMinimumBypassByInvite: guildJoinBypassLevel;\n primaryReactorId: string;\n entrySubstationId: string;\n}\n\nexport interface GuildMembershipApplication {\n guildId: string;\n playerId: string;\n /** Invite | Request */\n joinType: guildJoinType;\n registrationStatus: registrationStatus;\n proposer: string;\n substationId: string;\n}\n\nfunction createBaseGuild(): Guild {\n return {\n id: \"\",\n index: 0,\n endpoint: \"\",\n creator: \"\",\n owner: \"\",\n joinInfusionMinimum: 0,\n joinInfusionMinimumBypassByRequest: 0,\n joinInfusionMinimumBypassByInvite: 0,\n primaryReactorId: \"\",\n entrySubstationId: \"\",\n };\n}\n\nexport const Guild: MessageFns = {\n encode(message: Guild, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.index !== 0) {\n writer.uint32(16).uint64(message.index);\n }\n if (message.endpoint !== \"\") {\n writer.uint32(26).string(message.endpoint);\n }\n if (message.creator !== \"\") {\n writer.uint32(34).string(message.creator);\n }\n if (message.owner !== \"\") {\n writer.uint32(42).string(message.owner);\n }\n if (message.joinInfusionMinimum !== 0) {\n writer.uint32(48).uint64(message.joinInfusionMinimum);\n }\n if (message.joinInfusionMinimumBypassByRequest !== 0) {\n writer.uint32(56).int32(message.joinInfusionMinimumBypassByRequest);\n }\n if (message.joinInfusionMinimumBypassByInvite !== 0) {\n writer.uint32(64).int32(message.joinInfusionMinimumBypassByInvite);\n }\n if (message.primaryReactorId !== \"\") {\n writer.uint32(74).string(message.primaryReactorId);\n }\n if (message.entrySubstationId !== \"\") {\n writer.uint32(82).string(message.entrySubstationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Guild {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGuild();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.index = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.endpoint = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.owner = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.joinInfusionMinimum = longToNumber(reader.uint64());\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.joinInfusionMinimumBypassByRequest = reader.int32() as any;\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.joinInfusionMinimumBypassByInvite = reader.int32() as any;\n continue;\n }\n case 9: {\n if (tag !== 74) {\n break;\n }\n\n message.primaryReactorId = reader.string();\n continue;\n }\n case 10: {\n if (tag !== 82) {\n break;\n }\n\n message.entrySubstationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Guild {\n return {\n id: isSet(object.id) ? globalThis.String(object.id) : \"\",\n index: isSet(object.index) ? globalThis.Number(object.index) : 0,\n endpoint: isSet(object.endpoint) ? globalThis.String(object.endpoint) : \"\",\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n owner: isSet(object.owner) ? globalThis.String(object.owner) : \"\",\n joinInfusionMinimum: isSet(object.joinInfusionMinimum) ? globalThis.Number(object.joinInfusionMinimum) : 0,\n joinInfusionMinimumBypassByRequest: isSet(object.joinInfusionMinimumBypassByRequest)\n ? guildJoinBypassLevelFromJSON(object.joinInfusionMinimumBypassByRequest)\n : 0,\n joinInfusionMinimumBypassByInvite: isSet(object.joinInfusionMinimumBypassByInvite)\n ? guildJoinBypassLevelFromJSON(object.joinInfusionMinimumBypassByInvite)\n : 0,\n primaryReactorId: isSet(object.primaryReactorId) ? globalThis.String(object.primaryReactorId) : \"\",\n entrySubstationId: isSet(object.entrySubstationId) ? globalThis.String(object.entrySubstationId) : \"\",\n };\n },\n\n toJSON(message: Guild): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n if (message.index !== 0) {\n obj.index = Math.round(message.index);\n }\n if (message.endpoint !== \"\") {\n obj.endpoint = message.endpoint;\n }\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.owner !== \"\") {\n obj.owner = message.owner;\n }\n if (message.joinInfusionMinimum !== 0) {\n obj.joinInfusionMinimum = Math.round(message.joinInfusionMinimum);\n }\n if (message.joinInfusionMinimumBypassByRequest !== 0) {\n obj.joinInfusionMinimumBypassByRequest = guildJoinBypassLevelToJSON(message.joinInfusionMinimumBypassByRequest);\n }\n if (message.joinInfusionMinimumBypassByInvite !== 0) {\n obj.joinInfusionMinimumBypassByInvite = guildJoinBypassLevelToJSON(message.joinInfusionMinimumBypassByInvite);\n }\n if (message.primaryReactorId !== \"\") {\n obj.primaryReactorId = message.primaryReactorId;\n }\n if (message.entrySubstationId !== \"\") {\n obj.entrySubstationId = message.entrySubstationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): Guild {\n return Guild.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Guild {\n const message = createBaseGuild();\n message.id = object.id ?? \"\";\n message.index = object.index ?? 0;\n message.endpoint = object.endpoint ?? \"\";\n message.creator = object.creator ?? \"\";\n message.owner = object.owner ?? \"\";\n message.joinInfusionMinimum = object.joinInfusionMinimum ?? 0;\n message.joinInfusionMinimumBypassByRequest = object.joinInfusionMinimumBypassByRequest ?? 0;\n message.joinInfusionMinimumBypassByInvite = object.joinInfusionMinimumBypassByInvite ?? 0;\n message.primaryReactorId = object.primaryReactorId ?? \"\";\n message.entrySubstationId = object.entrySubstationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseGuildMembershipApplication(): GuildMembershipApplication {\n return { guildId: \"\", playerId: \"\", joinType: 0, registrationStatus: 0, proposer: \"\", substationId: \"\" };\n}\n\nexport const GuildMembershipApplication: MessageFns = {\n encode(message: GuildMembershipApplication, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.guildId !== \"\") {\n writer.uint32(10).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(18).string(message.playerId);\n }\n if (message.joinType !== 0) {\n writer.uint32(24).int32(message.joinType);\n }\n if (message.registrationStatus !== 0) {\n writer.uint32(32).int32(message.registrationStatus);\n }\n if (message.proposer !== \"\") {\n writer.uint32(42).string(message.proposer);\n }\n if (message.substationId !== \"\") {\n writer.uint32(50).string(message.substationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): GuildMembershipApplication {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGuildMembershipApplication();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.joinType = reader.int32() as any;\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.registrationStatus = reader.int32() as any;\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.proposer = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): GuildMembershipApplication {\n return {\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n joinType: isSet(object.joinType) ? guildJoinTypeFromJSON(object.joinType) : 0,\n registrationStatus: isSet(object.registrationStatus) ? registrationStatusFromJSON(object.registrationStatus) : 0,\n proposer: isSet(object.proposer) ? globalThis.String(object.proposer) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n };\n },\n\n toJSON(message: GuildMembershipApplication): unknown {\n const obj: any = {};\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.joinType !== 0) {\n obj.joinType = guildJoinTypeToJSON(message.joinType);\n }\n if (message.registrationStatus !== 0) {\n obj.registrationStatus = registrationStatusToJSON(message.registrationStatus);\n }\n if (message.proposer !== \"\") {\n obj.proposer = message.proposer;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): GuildMembershipApplication {\n return GuildMembershipApplication.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): GuildMembershipApplication {\n const message = createBaseGuildMembershipApplication();\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.joinType = object.joinType ?? 0;\n message.registrationStatus = object.registrationStatus ?? 0;\n message.proposer = object.proposer ?? \"\";\n message.substationId = object.substationId ?? \"\";\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/infusion.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { objectType, objectTypeFromJSON, objectTypeToJSON } from \"./keys\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface Infusion {\n destinationType: objectType;\n destinationId: string;\n fuel: number;\n power: number;\n commission: string;\n playerId: string;\n address: string;\n ratio: number;\n defusing: number;\n}\n\nfunction createBaseInfusion(): Infusion {\n return {\n destinationType: 0,\n destinationId: \"\",\n fuel: 0,\n power: 0,\n commission: \"\",\n playerId: \"\",\n address: \"\",\n ratio: 0,\n defusing: 0,\n };\n}\n\nexport const Infusion: MessageFns = {\n encode(message: Infusion, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.destinationType !== 0) {\n writer.uint32(8).int32(message.destinationType);\n }\n if (message.destinationId !== \"\") {\n writer.uint32(18).string(message.destinationId);\n }\n if (message.fuel !== 0) {\n writer.uint32(24).uint64(message.fuel);\n }\n if (message.power !== 0) {\n writer.uint32(32).uint64(message.power);\n }\n if (message.commission !== \"\") {\n writer.uint32(42).string(message.commission);\n }\n if (message.playerId !== \"\") {\n writer.uint32(50).string(message.playerId);\n }\n if (message.address !== \"\") {\n writer.uint32(58).string(message.address);\n }\n if (message.ratio !== 0) {\n writer.uint32(64).uint64(message.ratio);\n }\n if (message.defusing !== 0) {\n writer.uint32(72).uint64(message.defusing);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Infusion {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseInfusion();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.destinationType = reader.int32() as any;\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.destinationId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.fuel = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.power = longToNumber(reader.uint64());\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.commission = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.ratio = longToNumber(reader.uint64());\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.defusing = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Infusion {\n return {\n destinationType: isSet(object.destinationType) ? objectTypeFromJSON(object.destinationType) : 0,\n destinationId: isSet(object.destinationId) ? globalThis.String(object.destinationId) : \"\",\n fuel: isSet(object.fuel) ? globalThis.Number(object.fuel) : 0,\n power: isSet(object.power) ? globalThis.Number(object.power) : 0,\n commission: isSet(object.commission) ? globalThis.String(object.commission) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n ratio: isSet(object.ratio) ? globalThis.Number(object.ratio) : 0,\n defusing: isSet(object.defusing) ? globalThis.Number(object.defusing) : 0,\n };\n },\n\n toJSON(message: Infusion): unknown {\n const obj: any = {};\n if (message.destinationType !== 0) {\n obj.destinationType = objectTypeToJSON(message.destinationType);\n }\n if (message.destinationId !== \"\") {\n obj.destinationId = message.destinationId;\n }\n if (message.fuel !== 0) {\n obj.fuel = Math.round(message.fuel);\n }\n if (message.power !== 0) {\n obj.power = Math.round(message.power);\n }\n if (message.commission !== \"\") {\n obj.commission = message.commission;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.ratio !== 0) {\n obj.ratio = Math.round(message.ratio);\n }\n if (message.defusing !== 0) {\n obj.defusing = Math.round(message.defusing);\n }\n return obj;\n },\n\n create, I>>(base?: I): Infusion {\n return Infusion.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Infusion {\n const message = createBaseInfusion();\n message.destinationType = object.destinationType ?? 0;\n message.destinationId = object.destinationId ?? \"\";\n message.fuel = object.fuel ?? 0;\n message.power = object.power ?? 0;\n message.commission = object.commission ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.address = object.address ?? \"\";\n message.ratio = object.ratio ?? 0;\n message.defusing = object.defusing ?? 0;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/keys.proto\n\n/* eslint-disable */\n\nexport const protobufPackage = \"structs.structs\";\n\nexport enum objectType {\n guild = 0,\n player = 1,\n planet = 2,\n reactor = 3,\n substation = 4,\n struct = 5,\n allocation = 6,\n infusion = 7,\n address = 8,\n fleet = 9,\n provider = 10,\n agreement = 11,\n UNRECOGNIZED = -1,\n}\n\nexport function objectTypeFromJSON(object: any): objectType {\n switch (object) {\n case 0:\n case \"guild\":\n return objectType.guild;\n case 1:\n case \"player\":\n return objectType.player;\n case 2:\n case \"planet\":\n return objectType.planet;\n case 3:\n case \"reactor\":\n return objectType.reactor;\n case 4:\n case \"substation\":\n return objectType.substation;\n case 5:\n case \"struct\":\n return objectType.struct;\n case 6:\n case \"allocation\":\n return objectType.allocation;\n case 7:\n case \"infusion\":\n return objectType.infusion;\n case 8:\n case \"address\":\n return objectType.address;\n case 9:\n case \"fleet\":\n return objectType.fleet;\n case 10:\n case \"provider\":\n return objectType.provider;\n case 11:\n case \"agreement\":\n return objectType.agreement;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return objectType.UNRECOGNIZED;\n }\n}\n\nexport function objectTypeToJSON(object: objectType): string {\n switch (object) {\n case objectType.guild:\n return \"guild\";\n case objectType.player:\n return \"player\";\n case objectType.planet:\n return \"planet\";\n case objectType.reactor:\n return \"reactor\";\n case objectType.substation:\n return \"substation\";\n case objectType.struct:\n return \"struct\";\n case objectType.allocation:\n return \"allocation\";\n case objectType.infusion:\n return \"infusion\";\n case objectType.address:\n return \"address\";\n case objectType.fleet:\n return \"fleet\";\n case objectType.provider:\n return \"provider\";\n case objectType.agreement:\n return \"agreement\";\n case objectType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum gridAttributeType {\n ore = 0,\n fuel = 1,\n capacity = 2,\n load = 3,\n structsLoad = 4,\n power = 5,\n connectionCapacity = 6,\n connectionCount = 7,\n allocationPointerStart = 8,\n allocationPointerEnd = 9,\n proxyNonce = 10,\n lastAction = 11,\n nonce = 12,\n ready = 13,\n checkpointBlock = 14,\n UNRECOGNIZED = -1,\n}\n\nexport function gridAttributeTypeFromJSON(object: any): gridAttributeType {\n switch (object) {\n case 0:\n case \"ore\":\n return gridAttributeType.ore;\n case 1:\n case \"fuel\":\n return gridAttributeType.fuel;\n case 2:\n case \"capacity\":\n return gridAttributeType.capacity;\n case 3:\n case \"load\":\n return gridAttributeType.load;\n case 4:\n case \"structsLoad\":\n return gridAttributeType.structsLoad;\n case 5:\n case \"power\":\n return gridAttributeType.power;\n case 6:\n case \"connectionCapacity\":\n return gridAttributeType.connectionCapacity;\n case 7:\n case \"connectionCount\":\n return gridAttributeType.connectionCount;\n case 8:\n case \"allocationPointerStart\":\n return gridAttributeType.allocationPointerStart;\n case 9:\n case \"allocationPointerEnd\":\n return gridAttributeType.allocationPointerEnd;\n case 10:\n case \"proxyNonce\":\n return gridAttributeType.proxyNonce;\n case 11:\n case \"lastAction\":\n return gridAttributeType.lastAction;\n case 12:\n case \"nonce\":\n return gridAttributeType.nonce;\n case 13:\n case \"ready\":\n return gridAttributeType.ready;\n case 14:\n case \"checkpointBlock\":\n return gridAttributeType.checkpointBlock;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return gridAttributeType.UNRECOGNIZED;\n }\n}\n\nexport function gridAttributeTypeToJSON(object: gridAttributeType): string {\n switch (object) {\n case gridAttributeType.ore:\n return \"ore\";\n case gridAttributeType.fuel:\n return \"fuel\";\n case gridAttributeType.capacity:\n return \"capacity\";\n case gridAttributeType.load:\n return \"load\";\n case gridAttributeType.structsLoad:\n return \"structsLoad\";\n case gridAttributeType.power:\n return \"power\";\n case gridAttributeType.connectionCapacity:\n return \"connectionCapacity\";\n case gridAttributeType.connectionCount:\n return \"connectionCount\";\n case gridAttributeType.allocationPointerStart:\n return \"allocationPointerStart\";\n case gridAttributeType.allocationPointerEnd:\n return \"allocationPointerEnd\";\n case gridAttributeType.proxyNonce:\n return \"proxyNonce\";\n case gridAttributeType.lastAction:\n return \"lastAction\";\n case gridAttributeType.nonce:\n return \"nonce\";\n case gridAttributeType.ready:\n return \"ready\";\n case gridAttributeType.checkpointBlock:\n return \"checkpointBlock\";\n case gridAttributeType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum allocationType {\n static = 0,\n dynamic = 1,\n automated = 2,\n providerAgreement = 3,\n UNRECOGNIZED = -1,\n}\n\nexport function allocationTypeFromJSON(object: any): allocationType {\n switch (object) {\n case 0:\n case \"static\":\n return allocationType.static;\n case 1:\n case \"dynamic\":\n return allocationType.dynamic;\n case 2:\n case \"automated\":\n return allocationType.automated;\n case 3:\n case \"providerAgreement\":\n return allocationType.providerAgreement;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return allocationType.UNRECOGNIZED;\n }\n}\n\nexport function allocationTypeToJSON(object: allocationType): string {\n switch (object) {\n case allocationType.static:\n return \"static\";\n case allocationType.dynamic:\n return \"dynamic\";\n case allocationType.automated:\n return \"automated\";\n case allocationType.providerAgreement:\n return \"providerAgreement\";\n case allocationType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum guildJoinBypassLevel {\n /** closed - Feature off */\n closed = 0,\n /** permissioned - Only those with permissions can do it */\n permissioned = 1,\n /** member - All members of the guild can contribute */\n member = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function guildJoinBypassLevelFromJSON(object: any): guildJoinBypassLevel {\n switch (object) {\n case 0:\n case \"closed\":\n return guildJoinBypassLevel.closed;\n case 1:\n case \"permissioned\":\n return guildJoinBypassLevel.permissioned;\n case 2:\n case \"member\":\n return guildJoinBypassLevel.member;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return guildJoinBypassLevel.UNRECOGNIZED;\n }\n}\n\nexport function guildJoinBypassLevelToJSON(object: guildJoinBypassLevel): string {\n switch (object) {\n case guildJoinBypassLevel.closed:\n return \"closed\";\n case guildJoinBypassLevel.permissioned:\n return \"permissioned\";\n case guildJoinBypassLevel.member:\n return \"member\";\n case guildJoinBypassLevel.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum guildJoinType {\n invite = 0,\n request = 1,\n direct = 2,\n proxy = 3,\n UNRECOGNIZED = -1,\n}\n\nexport function guildJoinTypeFromJSON(object: any): guildJoinType {\n switch (object) {\n case 0:\n case \"invite\":\n return guildJoinType.invite;\n case 1:\n case \"request\":\n return guildJoinType.request;\n case 2:\n case \"direct\":\n return guildJoinType.direct;\n case 3:\n case \"proxy\":\n return guildJoinType.proxy;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return guildJoinType.UNRECOGNIZED;\n }\n}\n\nexport function guildJoinTypeToJSON(object: guildJoinType): string {\n switch (object) {\n case guildJoinType.invite:\n return \"invite\";\n case guildJoinType.request:\n return \"request\";\n case guildJoinType.direct:\n return \"direct\";\n case guildJoinType.proxy:\n return \"proxy\";\n case guildJoinType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum registrationStatus {\n proposed = 0,\n approved = 1,\n denied = 2,\n revoked = 3,\n UNRECOGNIZED = -1,\n}\n\nexport function registrationStatusFromJSON(object: any): registrationStatus {\n switch (object) {\n case 0:\n case \"proposed\":\n return registrationStatus.proposed;\n case 1:\n case \"approved\":\n return registrationStatus.approved;\n case 2:\n case \"denied\":\n return registrationStatus.denied;\n case 3:\n case \"revoked\":\n return registrationStatus.revoked;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return registrationStatus.UNRECOGNIZED;\n }\n}\n\nexport function registrationStatusToJSON(object: registrationStatus): string {\n switch (object) {\n case registrationStatus.proposed:\n return \"proposed\";\n case registrationStatus.approved:\n return \"approved\";\n case registrationStatus.denied:\n return \"denied\";\n case registrationStatus.revoked:\n return \"revoked\";\n case registrationStatus.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum ambit {\n none = 0,\n water = 1,\n land = 2,\n air = 3,\n space = 4,\n local = 5,\n UNRECOGNIZED = -1,\n}\n\nexport function ambitFromJSON(object: any): ambit {\n switch (object) {\n case 0:\n case \"none\":\n return ambit.none;\n case 1:\n case \"water\":\n return ambit.water;\n case 2:\n case \"land\":\n return ambit.land;\n case 3:\n case \"air\":\n return ambit.air;\n case 4:\n case \"space\":\n return ambit.space;\n case 5:\n case \"local\":\n return ambit.local;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ambit.UNRECOGNIZED;\n }\n}\n\nexport function ambitToJSON(object: ambit): string {\n switch (object) {\n case ambit.none:\n return \"none\";\n case ambit.water:\n return \"water\";\n case ambit.land:\n return \"land\";\n case ambit.air:\n return \"air\";\n case ambit.space:\n return \"space\";\n case ambit.local:\n return \"local\";\n case ambit.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum raidStatus {\n initiated = 0,\n ongoing = 2,\n attackerDefeated = 1,\n attackerRetreated = 5,\n raidSuccessful = 3,\n demilitarized = 4,\n UNRECOGNIZED = -1,\n}\n\nexport function raidStatusFromJSON(object: any): raidStatus {\n switch (object) {\n case 0:\n case \"initiated\":\n return raidStatus.initiated;\n case 2:\n case \"ongoing\":\n return raidStatus.ongoing;\n case 1:\n case \"attackerDefeated\":\n return raidStatus.attackerDefeated;\n case 5:\n case \"attackerRetreated\":\n return raidStatus.attackerRetreated;\n case 3:\n case \"raidSuccessful\":\n return raidStatus.raidSuccessful;\n case 4:\n case \"demilitarized\":\n return raidStatus.demilitarized;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return raidStatus.UNRECOGNIZED;\n }\n}\n\nexport function raidStatusToJSON(object: raidStatus): string {\n switch (object) {\n case raidStatus.initiated:\n return \"initiated\";\n case raidStatus.ongoing:\n return \"ongoing\";\n case raidStatus.attackerDefeated:\n return \"attackerDefeated\";\n case raidStatus.attackerRetreated:\n return \"attackerRetreated\";\n case raidStatus.raidSuccessful:\n return \"raidSuccessful\";\n case raidStatus.demilitarized:\n return \"demilitarized\";\n case raidStatus.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum planetStatus {\n active = 0,\n complete = 1,\n UNRECOGNIZED = -1,\n}\n\nexport function planetStatusFromJSON(object: any): planetStatus {\n switch (object) {\n case 0:\n case \"active\":\n return planetStatus.active;\n case 1:\n case \"complete\":\n return planetStatus.complete;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return planetStatus.UNRECOGNIZED;\n }\n}\n\nexport function planetStatusToJSON(object: planetStatus): string {\n switch (object) {\n case planetStatus.active:\n return \"active\";\n case planetStatus.complete:\n return \"complete\";\n case planetStatus.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum fleetStatus {\n onStation = 0,\n away = 1,\n UNRECOGNIZED = -1,\n}\n\nexport function fleetStatusFromJSON(object: any): fleetStatus {\n switch (object) {\n case 0:\n case \"onStation\":\n return fleetStatus.onStation;\n case 1:\n case \"away\":\n return fleetStatus.away;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return fleetStatus.UNRECOGNIZED;\n }\n}\n\nexport function fleetStatusToJSON(object: fleetStatus): string {\n switch (object) {\n case fleetStatus.onStation:\n return \"onStation\";\n case fleetStatus.away:\n return \"away\";\n case fleetStatus.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum structAttributeType {\n health = 0,\n status = 1,\n blockStartBuild = 2,\n blockStartOreMine = 3,\n blockStartOreRefine = 4,\n protectedStructIndex = 5,\n typeCount = 6,\n UNRECOGNIZED = -1,\n}\n\nexport function structAttributeTypeFromJSON(object: any): structAttributeType {\n switch (object) {\n case 0:\n case \"health\":\n return structAttributeType.health;\n case 1:\n case \"status\":\n return structAttributeType.status;\n case 2:\n case \"blockStartBuild\":\n return structAttributeType.blockStartBuild;\n case 3:\n case \"blockStartOreMine\":\n return structAttributeType.blockStartOreMine;\n case 4:\n case \"blockStartOreRefine\":\n return structAttributeType.blockStartOreRefine;\n case 5:\n case \"protectedStructIndex\":\n return structAttributeType.protectedStructIndex;\n case 6:\n case \"typeCount\":\n return structAttributeType.typeCount;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return structAttributeType.UNRECOGNIZED;\n }\n}\n\nexport function structAttributeTypeToJSON(object: structAttributeType): string {\n switch (object) {\n case structAttributeType.health:\n return \"health\";\n case structAttributeType.status:\n return \"status\";\n case structAttributeType.blockStartBuild:\n return \"blockStartBuild\";\n case structAttributeType.blockStartOreMine:\n return \"blockStartOreMine\";\n case structAttributeType.blockStartOreRefine:\n return \"blockStartOreRefine\";\n case structAttributeType.protectedStructIndex:\n return \"protectedStructIndex\";\n case structAttributeType.typeCount:\n return \"typeCount\";\n case structAttributeType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum planetAttributeType {\n planetaryShield = 0,\n repairNetworkQuantity = 1,\n defensiveCannonQuantity = 2,\n coordinatedGlobalShieldNetworkQuantity = 3,\n lowOrbitBallisticsInterceptorNetworkQuantity = 4,\n advancedLowOrbitBallisticsInterceptorNetworkQuantity = 5,\n lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator = 6,\n lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator = 7,\n orbitalJammingStationQuantity = 8,\n advancedOrbitalJammingStationQuantity = 9,\n blockStartRaid = 10,\n UNRECOGNIZED = -1,\n}\n\nexport function planetAttributeTypeFromJSON(object: any): planetAttributeType {\n switch (object) {\n case 0:\n case \"planetaryShield\":\n return planetAttributeType.planetaryShield;\n case 1:\n case \"repairNetworkQuantity\":\n return planetAttributeType.repairNetworkQuantity;\n case 2:\n case \"defensiveCannonQuantity\":\n return planetAttributeType.defensiveCannonQuantity;\n case 3:\n case \"coordinatedGlobalShieldNetworkQuantity\":\n return planetAttributeType.coordinatedGlobalShieldNetworkQuantity;\n case 4:\n case \"lowOrbitBallisticsInterceptorNetworkQuantity\":\n return planetAttributeType.lowOrbitBallisticsInterceptorNetworkQuantity;\n case 5:\n case \"advancedLowOrbitBallisticsInterceptorNetworkQuantity\":\n return planetAttributeType.advancedLowOrbitBallisticsInterceptorNetworkQuantity;\n case 6:\n case \"lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator\":\n return planetAttributeType.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator;\n case 7:\n case \"lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator\":\n return planetAttributeType.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator;\n case 8:\n case \"orbitalJammingStationQuantity\":\n return planetAttributeType.orbitalJammingStationQuantity;\n case 9:\n case \"advancedOrbitalJammingStationQuantity\":\n return planetAttributeType.advancedOrbitalJammingStationQuantity;\n case 10:\n case \"blockStartRaid\":\n return planetAttributeType.blockStartRaid;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return planetAttributeType.UNRECOGNIZED;\n }\n}\n\nexport function planetAttributeTypeToJSON(object: planetAttributeType): string {\n switch (object) {\n case planetAttributeType.planetaryShield:\n return \"planetaryShield\";\n case planetAttributeType.repairNetworkQuantity:\n return \"repairNetworkQuantity\";\n case planetAttributeType.defensiveCannonQuantity:\n return \"defensiveCannonQuantity\";\n case planetAttributeType.coordinatedGlobalShieldNetworkQuantity:\n return \"coordinatedGlobalShieldNetworkQuantity\";\n case planetAttributeType.lowOrbitBallisticsInterceptorNetworkQuantity:\n return \"lowOrbitBallisticsInterceptorNetworkQuantity\";\n case planetAttributeType.advancedLowOrbitBallisticsInterceptorNetworkQuantity:\n return \"advancedLowOrbitBallisticsInterceptorNetworkQuantity\";\n case planetAttributeType.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator:\n return \"lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator\";\n case planetAttributeType.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator:\n return \"lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator\";\n case planetAttributeType.orbitalJammingStationQuantity:\n return \"orbitalJammingStationQuantity\";\n case planetAttributeType.advancedOrbitalJammingStationQuantity:\n return \"advancedOrbitalJammingStationQuantity\";\n case planetAttributeType.blockStartRaid:\n return \"blockStartRaid\";\n case planetAttributeType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum techWeaponSystem {\n primaryWeapon = 0,\n secondaryWeapon = 1,\n UNRECOGNIZED = -1,\n}\n\nexport function techWeaponSystemFromJSON(object: any): techWeaponSystem {\n switch (object) {\n case 0:\n case \"primaryWeapon\":\n return techWeaponSystem.primaryWeapon;\n case 1:\n case \"secondaryWeapon\":\n return techWeaponSystem.secondaryWeapon;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return techWeaponSystem.UNRECOGNIZED;\n }\n}\n\nexport function techWeaponSystemToJSON(object: techWeaponSystem): string {\n switch (object) {\n case techWeaponSystem.primaryWeapon:\n return \"primaryWeapon\";\n case techWeaponSystem.secondaryWeapon:\n return \"secondaryWeapon\";\n case techWeaponSystem.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum techWeaponControl {\n noWeaponControl = 0,\n guided = 1,\n unguided = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function techWeaponControlFromJSON(object: any): techWeaponControl {\n switch (object) {\n case 0:\n case \"noWeaponControl\":\n return techWeaponControl.noWeaponControl;\n case 1:\n case \"guided\":\n return techWeaponControl.guided;\n case 2:\n case \"unguided\":\n return techWeaponControl.unguided;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return techWeaponControl.UNRECOGNIZED;\n }\n}\n\nexport function techWeaponControlToJSON(object: techWeaponControl): string {\n switch (object) {\n case techWeaponControl.noWeaponControl:\n return \"noWeaponControl\";\n case techWeaponControl.guided:\n return \"guided\";\n case techWeaponControl.unguided:\n return \"unguided\";\n case techWeaponControl.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum techActiveWeaponry {\n noActiveWeaponry = 0,\n guidedWeaponry = 1,\n unguidedWeaponry = 2,\n attackRun = 3,\n selfDestruct = 4,\n UNRECOGNIZED = -1,\n}\n\nexport function techActiveWeaponryFromJSON(object: any): techActiveWeaponry {\n switch (object) {\n case 0:\n case \"noActiveWeaponry\":\n return techActiveWeaponry.noActiveWeaponry;\n case 1:\n case \"guidedWeaponry\":\n return techActiveWeaponry.guidedWeaponry;\n case 2:\n case \"unguidedWeaponry\":\n return techActiveWeaponry.unguidedWeaponry;\n case 3:\n case \"attackRun\":\n return techActiveWeaponry.attackRun;\n case 4:\n case \"selfDestruct\":\n return techActiveWeaponry.selfDestruct;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return techActiveWeaponry.UNRECOGNIZED;\n }\n}\n\nexport function techActiveWeaponryToJSON(object: techActiveWeaponry): string {\n switch (object) {\n case techActiveWeaponry.noActiveWeaponry:\n return \"noActiveWeaponry\";\n case techActiveWeaponry.guidedWeaponry:\n return \"guidedWeaponry\";\n case techActiveWeaponry.unguidedWeaponry:\n return \"unguidedWeaponry\";\n case techActiveWeaponry.attackRun:\n return \"attackRun\";\n case techActiveWeaponry.selfDestruct:\n return \"selfDestruct\";\n case techActiveWeaponry.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum techPassiveWeaponry {\n noPassiveWeaponry = 0,\n counterAttack = 1,\n strongCounterAttack = 2,\n advancedCounterAttack = 3,\n lastResort = 4,\n UNRECOGNIZED = -1,\n}\n\nexport function techPassiveWeaponryFromJSON(object: any): techPassiveWeaponry {\n switch (object) {\n case 0:\n case \"noPassiveWeaponry\":\n return techPassiveWeaponry.noPassiveWeaponry;\n case 1:\n case \"counterAttack\":\n return techPassiveWeaponry.counterAttack;\n case 2:\n case \"strongCounterAttack\":\n return techPassiveWeaponry.strongCounterAttack;\n case 3:\n case \"advancedCounterAttack\":\n return techPassiveWeaponry.advancedCounterAttack;\n case 4:\n case \"lastResort\":\n return techPassiveWeaponry.lastResort;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return techPassiveWeaponry.UNRECOGNIZED;\n }\n}\n\nexport function techPassiveWeaponryToJSON(object: techPassiveWeaponry): string {\n switch (object) {\n case techPassiveWeaponry.noPassiveWeaponry:\n return \"noPassiveWeaponry\";\n case techPassiveWeaponry.counterAttack:\n return \"counterAttack\";\n case techPassiveWeaponry.strongCounterAttack:\n return \"strongCounterAttack\";\n case techPassiveWeaponry.advancedCounterAttack:\n return \"advancedCounterAttack\";\n case techPassiveWeaponry.lastResort:\n return \"lastResort\";\n case techPassiveWeaponry.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum techUnitDefenses {\n noUnitDefenses = 0,\n defensiveManeuver = 1,\n signalJamming = 2,\n armour = 3,\n indirectCombatModule = 4,\n stealthMode = 5,\n perimeterFencing = 6,\n reinforcedWalls = 7,\n UNRECOGNIZED = -1,\n}\n\nexport function techUnitDefensesFromJSON(object: any): techUnitDefenses {\n switch (object) {\n case 0:\n case \"noUnitDefenses\":\n return techUnitDefenses.noUnitDefenses;\n case 1:\n case \"defensiveManeuver\":\n return techUnitDefenses.defensiveManeuver;\n case 2:\n case \"signalJamming\":\n return techUnitDefenses.signalJamming;\n case 3:\n case \"armour\":\n return techUnitDefenses.armour;\n case 4:\n case \"indirectCombatModule\":\n return techUnitDefenses.indirectCombatModule;\n case 5:\n case \"stealthMode\":\n return techUnitDefenses.stealthMode;\n case 6:\n case \"perimeterFencing\":\n return techUnitDefenses.perimeterFencing;\n case 7:\n case \"reinforcedWalls\":\n return techUnitDefenses.reinforcedWalls;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return techUnitDefenses.UNRECOGNIZED;\n }\n}\n\nexport function techUnitDefensesToJSON(object: techUnitDefenses): string {\n switch (object) {\n case techUnitDefenses.noUnitDefenses:\n return \"noUnitDefenses\";\n case techUnitDefenses.defensiveManeuver:\n return \"defensiveManeuver\";\n case techUnitDefenses.signalJamming:\n return \"signalJamming\";\n case techUnitDefenses.armour:\n return \"armour\";\n case techUnitDefenses.indirectCombatModule:\n return \"indirectCombatModule\";\n case techUnitDefenses.stealthMode:\n return \"stealthMode\";\n case techUnitDefenses.perimeterFencing:\n return \"perimeterFencing\";\n case techUnitDefenses.reinforcedWalls:\n return \"reinforcedWalls\";\n case techUnitDefenses.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum techOreReserveDefenses {\n noOreReserveDefenses = 0,\n coordinatedReserveResponseTracker = 1,\n rapidResponsePackage = 2,\n activeScanning = 3,\n monitoringStation = 4,\n oreBunker = 5,\n UNRECOGNIZED = -1,\n}\n\nexport function techOreReserveDefensesFromJSON(object: any): techOreReserveDefenses {\n switch (object) {\n case 0:\n case \"noOreReserveDefenses\":\n return techOreReserveDefenses.noOreReserveDefenses;\n case 1:\n case \"coordinatedReserveResponseTracker\":\n return techOreReserveDefenses.coordinatedReserveResponseTracker;\n case 2:\n case \"rapidResponsePackage\":\n return techOreReserveDefenses.rapidResponsePackage;\n case 3:\n case \"activeScanning\":\n return techOreReserveDefenses.activeScanning;\n case 4:\n case \"monitoringStation\":\n return techOreReserveDefenses.monitoringStation;\n case 5:\n case \"oreBunker\":\n return techOreReserveDefenses.oreBunker;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return techOreReserveDefenses.UNRECOGNIZED;\n }\n}\n\nexport function techOreReserveDefensesToJSON(object: techOreReserveDefenses): string {\n switch (object) {\n case techOreReserveDefenses.noOreReserveDefenses:\n return \"noOreReserveDefenses\";\n case techOreReserveDefenses.coordinatedReserveResponseTracker:\n return \"coordinatedReserveResponseTracker\";\n case techOreReserveDefenses.rapidResponsePackage:\n return \"rapidResponsePackage\";\n case techOreReserveDefenses.activeScanning:\n return \"activeScanning\";\n case techOreReserveDefenses.monitoringStation:\n return \"monitoringStation\";\n case techOreReserveDefenses.oreBunker:\n return \"oreBunker\";\n case techOreReserveDefenses.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum techPlanetaryDefenses {\n noPlanetaryDefense = 0,\n defensiveCannon = 1,\n /**\n * lowOrbitBallisticInterceptorNetwork - advancedLowOrbitBallisticInterceptorNetwork = 3;\n * repairNetwork = 4;\n * coordinatedGlobalShieldNetwork = 5;\n * orbitalJammingStation = 6;\n * advancedOrbitalJammingStation = 7;\n */\n lowOrbitBallisticInterceptorNetwork = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function techPlanetaryDefensesFromJSON(object: any): techPlanetaryDefenses {\n switch (object) {\n case 0:\n case \"noPlanetaryDefense\":\n return techPlanetaryDefenses.noPlanetaryDefense;\n case 1:\n case \"defensiveCannon\":\n return techPlanetaryDefenses.defensiveCannon;\n case 2:\n case \"lowOrbitBallisticInterceptorNetwork\":\n return techPlanetaryDefenses.lowOrbitBallisticInterceptorNetwork;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return techPlanetaryDefenses.UNRECOGNIZED;\n }\n}\n\nexport function techPlanetaryDefensesToJSON(object: techPlanetaryDefenses): string {\n switch (object) {\n case techPlanetaryDefenses.noPlanetaryDefense:\n return \"noPlanetaryDefense\";\n case techPlanetaryDefenses.defensiveCannon:\n return \"defensiveCannon\";\n case techPlanetaryDefenses.lowOrbitBallisticInterceptorNetwork:\n return \"lowOrbitBallisticInterceptorNetwork\";\n case techPlanetaryDefenses.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum techStorageFacilities {\n noStorageFacilities = 0,\n dock = 1,\n hanger = 2,\n fleetBase = 3,\n UNRECOGNIZED = -1,\n}\n\nexport function techStorageFacilitiesFromJSON(object: any): techStorageFacilities {\n switch (object) {\n case 0:\n case \"noStorageFacilities\":\n return techStorageFacilities.noStorageFacilities;\n case 1:\n case \"dock\":\n return techStorageFacilities.dock;\n case 2:\n case \"hanger\":\n return techStorageFacilities.hanger;\n case 3:\n case \"fleetBase\":\n return techStorageFacilities.fleetBase;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return techStorageFacilities.UNRECOGNIZED;\n }\n}\n\nexport function techStorageFacilitiesToJSON(object: techStorageFacilities): string {\n switch (object) {\n case techStorageFacilities.noStorageFacilities:\n return \"noStorageFacilities\";\n case techStorageFacilities.dock:\n return \"dock\";\n case techStorageFacilities.hanger:\n return \"hanger\";\n case techStorageFacilities.fleetBase:\n return \"fleetBase\";\n case techStorageFacilities.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum techPlanetaryMining {\n noPlanetaryMining = 0,\n oreMiningRig = 1,\n UNRECOGNIZED = -1,\n}\n\nexport function techPlanetaryMiningFromJSON(object: any): techPlanetaryMining {\n switch (object) {\n case 0:\n case \"noPlanetaryMining\":\n return techPlanetaryMining.noPlanetaryMining;\n case 1:\n case \"oreMiningRig\":\n return techPlanetaryMining.oreMiningRig;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return techPlanetaryMining.UNRECOGNIZED;\n }\n}\n\nexport function techPlanetaryMiningToJSON(object: techPlanetaryMining): string {\n switch (object) {\n case techPlanetaryMining.noPlanetaryMining:\n return \"noPlanetaryMining\";\n case techPlanetaryMining.oreMiningRig:\n return \"oreMiningRig\";\n case techPlanetaryMining.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum techPlanetaryRefineries {\n noPlanetaryRefinery = 0,\n oreRefinery = 1,\n UNRECOGNIZED = -1,\n}\n\nexport function techPlanetaryRefineriesFromJSON(object: any): techPlanetaryRefineries {\n switch (object) {\n case 0:\n case \"noPlanetaryRefinery\":\n return techPlanetaryRefineries.noPlanetaryRefinery;\n case 1:\n case \"oreRefinery\":\n return techPlanetaryRefineries.oreRefinery;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return techPlanetaryRefineries.UNRECOGNIZED;\n }\n}\n\nexport function techPlanetaryRefineriesToJSON(object: techPlanetaryRefineries): string {\n switch (object) {\n case techPlanetaryRefineries.noPlanetaryRefinery:\n return \"noPlanetaryRefinery\";\n case techPlanetaryRefineries.oreRefinery:\n return \"oreRefinery\";\n case techPlanetaryRefineries.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum techPowerGeneration {\n noPowerGeneration = 0,\n smallGenerator = 1,\n mediumGenerator = 2,\n largeGenerator = 3,\n UNRECOGNIZED = -1,\n}\n\nexport function techPowerGenerationFromJSON(object: any): techPowerGeneration {\n switch (object) {\n case 0:\n case \"noPowerGeneration\":\n return techPowerGeneration.noPowerGeneration;\n case 1:\n case \"smallGenerator\":\n return techPowerGeneration.smallGenerator;\n case 2:\n case \"mediumGenerator\":\n return techPowerGeneration.mediumGenerator;\n case 3:\n case \"largeGenerator\":\n return techPowerGeneration.largeGenerator;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return techPowerGeneration.UNRECOGNIZED;\n }\n}\n\nexport function techPowerGenerationToJSON(object: techPowerGeneration): string {\n switch (object) {\n case techPowerGeneration.noPowerGeneration:\n return \"noPowerGeneration\";\n case techPowerGeneration.smallGenerator:\n return \"smallGenerator\";\n case techPowerGeneration.mediumGenerator:\n return \"mediumGenerator\";\n case techPowerGeneration.largeGenerator:\n return \"largeGenerator\";\n case techPowerGeneration.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum providerAccessPolicy {\n openMarket = 0,\n guildMarket = 1,\n closedMarket = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function providerAccessPolicyFromJSON(object: any): providerAccessPolicy {\n switch (object) {\n case 0:\n case \"openMarket\":\n return providerAccessPolicy.openMarket;\n case 1:\n case \"guildMarket\":\n return providerAccessPolicy.guildMarket;\n case 2:\n case \"closedMarket\":\n return providerAccessPolicy.closedMarket;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return providerAccessPolicy.UNRECOGNIZED;\n }\n}\n\nexport function providerAccessPolicyToJSON(object: providerAccessPolicy): string {\n switch (object) {\n case providerAccessPolicy.openMarket:\n return \"openMarket\";\n case providerAccessPolicy.guildMarket:\n return \"guildMarket\";\n case providerAccessPolicy.closedMarket:\n return \"closedMarket\";\n case providerAccessPolicy.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/packet.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface StructsPacketData {\n noData?: NoData | undefined;\n}\n\nexport interface NoData {\n}\n\nfunction createBaseStructsPacketData(): StructsPacketData {\n return { noData: undefined };\n}\n\nexport const StructsPacketData: MessageFns = {\n encode(message: StructsPacketData, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.noData !== undefined) {\n NoData.encode(message.noData, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): StructsPacketData {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStructsPacketData();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.noData = NoData.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): StructsPacketData {\n return { noData: isSet(object.noData) ? NoData.fromJSON(object.noData) : undefined };\n },\n\n toJSON(message: StructsPacketData): unknown {\n const obj: any = {};\n if (message.noData !== undefined) {\n obj.noData = NoData.toJSON(message.noData);\n }\n return obj;\n },\n\n create, I>>(base?: I): StructsPacketData {\n return StructsPacketData.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): StructsPacketData {\n const message = createBaseStructsPacketData();\n message.noData = (object.noData !== undefined && object.noData !== null)\n ? NoData.fromPartial(object.noData)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseNoData(): NoData {\n return {};\n}\n\nexport const NoData: MessageFns = {\n encode(_: NoData, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): NoData {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseNoData();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): NoData {\n return {};\n },\n\n toJSON(_: NoData): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): NoData {\n return NoData.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): NoData {\n const message = createBaseNoData();\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/params.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"structs.structs\";\n\n/** Params defines the parameters for the module. */\nexport interface Params {\n}\n\nfunction createBaseParams(): Params {\n return {};\n}\n\nexport const Params: MessageFns = {\n encode(_: Params, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Params {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): Params {\n return {};\n },\n\n toJSON(_: Params): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): Params {\n return Params.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): Params {\n const message = createBaseParams();\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/permission.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface PermissionRecord {\n permissionId: string;\n value: number;\n}\n\nfunction createBasePermissionRecord(): PermissionRecord {\n return { permissionId: \"\", value: 0 };\n}\n\nexport const PermissionRecord: MessageFns = {\n encode(message: PermissionRecord, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.permissionId !== \"\") {\n writer.uint32(10).string(message.permissionId);\n }\n if (message.value !== 0) {\n writer.uint32(16).uint64(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PermissionRecord {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePermissionRecord();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.permissionId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.value = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PermissionRecord {\n return {\n permissionId: isSet(object.permissionId) ? globalThis.String(object.permissionId) : \"\",\n value: isSet(object.value) ? globalThis.Number(object.value) : 0,\n };\n },\n\n toJSON(message: PermissionRecord): unknown {\n const obj: any = {};\n if (message.permissionId !== \"\") {\n obj.permissionId = message.permissionId;\n }\n if (message.value !== 0) {\n obj.value = Math.round(message.value);\n }\n return obj;\n },\n\n create, I>>(base?: I): PermissionRecord {\n return PermissionRecord.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): PermissionRecord {\n const message = createBasePermissionRecord();\n message.permissionId = object.permissionId ?? \"\";\n message.value = object.value ?? 0;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/planet.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { planetStatus, planetStatusFromJSON, planetStatusToJSON } from \"./keys\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface Planet {\n id: string;\n maxOre: number;\n creator: string;\n owner: string;\n space: string[];\n air: string[];\n land: string[];\n water: string[];\n spaceSlots: number;\n airSlots: number;\n landSlots: number;\n waterSlots: number;\n status: planetStatus;\n /** First in line to battle planet */\n locationListStart: string;\n /** End of the line */\n locationListLast: string;\n}\n\nexport interface PlanetAttributeRecord {\n attributeId: string;\n value: number;\n}\n\nexport interface PlanetAttributes {\n planetaryShield: number;\n repairNetworkQuantity: number;\n defensiveCannonQuantity: number;\n coordinatedGlobalShieldNetworkQuantity: number;\n lowOrbitBallisticsInterceptorNetworkQuantity: number;\n advancedLowOrbitBallisticsInterceptorNetworkQuantity: number;\n lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator: number;\n lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator: number;\n orbitalJammingStationQuantity: number;\n advancedOrbitalJammingStationQuantity: number;\n blockStartRaid: number;\n}\n\nfunction createBasePlanet(): Planet {\n return {\n id: \"\",\n maxOre: 0,\n creator: \"\",\n owner: \"\",\n space: [],\n air: [],\n land: [],\n water: [],\n spaceSlots: 0,\n airSlots: 0,\n landSlots: 0,\n waterSlots: 0,\n status: 0,\n locationListStart: \"\",\n locationListLast: \"\",\n };\n}\n\nexport const Planet: MessageFns = {\n encode(message: Planet, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.maxOre !== 0) {\n writer.uint32(16).uint64(message.maxOre);\n }\n if (message.creator !== \"\") {\n writer.uint32(26).string(message.creator);\n }\n if (message.owner !== \"\") {\n writer.uint32(34).string(message.owner);\n }\n for (const v of message.space) {\n writer.uint32(42).string(v!);\n }\n for (const v of message.air) {\n writer.uint32(50).string(v!);\n }\n for (const v of message.land) {\n writer.uint32(58).string(v!);\n }\n for (const v of message.water) {\n writer.uint32(66).string(v!);\n }\n if (message.spaceSlots !== 0) {\n writer.uint32(72).uint64(message.spaceSlots);\n }\n if (message.airSlots !== 0) {\n writer.uint32(80).uint64(message.airSlots);\n }\n if (message.landSlots !== 0) {\n writer.uint32(88).uint64(message.landSlots);\n }\n if (message.waterSlots !== 0) {\n writer.uint32(96).uint64(message.waterSlots);\n }\n if (message.status !== 0) {\n writer.uint32(104).int32(message.status);\n }\n if (message.locationListStart !== \"\") {\n writer.uint32(114).string(message.locationListStart);\n }\n if (message.locationListLast !== \"\") {\n writer.uint32(122).string(message.locationListLast);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Planet {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePlanet();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.maxOre = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.owner = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.space.push(reader.string());\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.air.push(reader.string());\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.land.push(reader.string());\n continue;\n }\n case 8: {\n if (tag !== 66) {\n break;\n }\n\n message.water.push(reader.string());\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.spaceSlots = longToNumber(reader.uint64());\n continue;\n }\n case 10: {\n if (tag !== 80) {\n break;\n }\n\n message.airSlots = longToNumber(reader.uint64());\n continue;\n }\n case 11: {\n if (tag !== 88) {\n break;\n }\n\n message.landSlots = longToNumber(reader.uint64());\n continue;\n }\n case 12: {\n if (tag !== 96) {\n break;\n }\n\n message.waterSlots = longToNumber(reader.uint64());\n continue;\n }\n case 13: {\n if (tag !== 104) {\n break;\n }\n\n message.status = reader.int32() as any;\n continue;\n }\n case 14: {\n if (tag !== 114) {\n break;\n }\n\n message.locationListStart = reader.string();\n continue;\n }\n case 15: {\n if (tag !== 122) {\n break;\n }\n\n message.locationListLast = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Planet {\n return {\n id: isSet(object.id) ? globalThis.String(object.id) : \"\",\n maxOre: isSet(object.maxOre) ? globalThis.Number(object.maxOre) : 0,\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n owner: isSet(object.owner) ? globalThis.String(object.owner) : \"\",\n space: globalThis.Array.isArray(object?.space) ? object.space.map((e: any) => globalThis.String(e)) : [],\n air: globalThis.Array.isArray(object?.air) ? object.air.map((e: any) => globalThis.String(e)) : [],\n land: globalThis.Array.isArray(object?.land) ? object.land.map((e: any) => globalThis.String(e)) : [],\n water: globalThis.Array.isArray(object?.water) ? object.water.map((e: any) => globalThis.String(e)) : [],\n spaceSlots: isSet(object.spaceSlots) ? globalThis.Number(object.spaceSlots) : 0,\n airSlots: isSet(object.airSlots) ? globalThis.Number(object.airSlots) : 0,\n landSlots: isSet(object.landSlots) ? globalThis.Number(object.landSlots) : 0,\n waterSlots: isSet(object.waterSlots) ? globalThis.Number(object.waterSlots) : 0,\n status: isSet(object.status) ? planetStatusFromJSON(object.status) : 0,\n locationListStart: isSet(object.locationListStart) ? globalThis.String(object.locationListStart) : \"\",\n locationListLast: isSet(object.locationListLast) ? globalThis.String(object.locationListLast) : \"\",\n };\n },\n\n toJSON(message: Planet): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n if (message.maxOre !== 0) {\n obj.maxOre = Math.round(message.maxOre);\n }\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.owner !== \"\") {\n obj.owner = message.owner;\n }\n if (message.space?.length) {\n obj.space = message.space;\n }\n if (message.air?.length) {\n obj.air = message.air;\n }\n if (message.land?.length) {\n obj.land = message.land;\n }\n if (message.water?.length) {\n obj.water = message.water;\n }\n if (message.spaceSlots !== 0) {\n obj.spaceSlots = Math.round(message.spaceSlots);\n }\n if (message.airSlots !== 0) {\n obj.airSlots = Math.round(message.airSlots);\n }\n if (message.landSlots !== 0) {\n obj.landSlots = Math.round(message.landSlots);\n }\n if (message.waterSlots !== 0) {\n obj.waterSlots = Math.round(message.waterSlots);\n }\n if (message.status !== 0) {\n obj.status = planetStatusToJSON(message.status);\n }\n if (message.locationListStart !== \"\") {\n obj.locationListStart = message.locationListStart;\n }\n if (message.locationListLast !== \"\") {\n obj.locationListLast = message.locationListLast;\n }\n return obj;\n },\n\n create, I>>(base?: I): Planet {\n return Planet.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Planet {\n const message = createBasePlanet();\n message.id = object.id ?? \"\";\n message.maxOre = object.maxOre ?? 0;\n message.creator = object.creator ?? \"\";\n message.owner = object.owner ?? \"\";\n message.space = object.space?.map((e) => e) || [];\n message.air = object.air?.map((e) => e) || [];\n message.land = object.land?.map((e) => e) || [];\n message.water = object.water?.map((e) => e) || [];\n message.spaceSlots = object.spaceSlots ?? 0;\n message.airSlots = object.airSlots ?? 0;\n message.landSlots = object.landSlots ?? 0;\n message.waterSlots = object.waterSlots ?? 0;\n message.status = object.status ?? 0;\n message.locationListStart = object.locationListStart ?? \"\";\n message.locationListLast = object.locationListLast ?? \"\";\n return message;\n },\n};\n\nfunction createBasePlanetAttributeRecord(): PlanetAttributeRecord {\n return { attributeId: \"\", value: 0 };\n}\n\nexport const PlanetAttributeRecord: MessageFns = {\n encode(message: PlanetAttributeRecord, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.attributeId !== \"\") {\n writer.uint32(10).string(message.attributeId);\n }\n if (message.value !== 0) {\n writer.uint32(16).uint64(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PlanetAttributeRecord {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePlanetAttributeRecord();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.attributeId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.value = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PlanetAttributeRecord {\n return {\n attributeId: isSet(object.attributeId) ? globalThis.String(object.attributeId) : \"\",\n value: isSet(object.value) ? globalThis.Number(object.value) : 0,\n };\n },\n\n toJSON(message: PlanetAttributeRecord): unknown {\n const obj: any = {};\n if (message.attributeId !== \"\") {\n obj.attributeId = message.attributeId;\n }\n if (message.value !== 0) {\n obj.value = Math.round(message.value);\n }\n return obj;\n },\n\n create, I>>(base?: I): PlanetAttributeRecord {\n return PlanetAttributeRecord.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): PlanetAttributeRecord {\n const message = createBasePlanetAttributeRecord();\n message.attributeId = object.attributeId ?? \"\";\n message.value = object.value ?? 0;\n return message;\n },\n};\n\nfunction createBasePlanetAttributes(): PlanetAttributes {\n return {\n planetaryShield: 0,\n repairNetworkQuantity: 0,\n defensiveCannonQuantity: 0,\n coordinatedGlobalShieldNetworkQuantity: 0,\n lowOrbitBallisticsInterceptorNetworkQuantity: 0,\n advancedLowOrbitBallisticsInterceptorNetworkQuantity: 0,\n lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator: 0,\n lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator: 0,\n orbitalJammingStationQuantity: 0,\n advancedOrbitalJammingStationQuantity: 0,\n blockStartRaid: 0,\n };\n}\n\nexport const PlanetAttributes: MessageFns = {\n encode(message: PlanetAttributes, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.planetaryShield !== 0) {\n writer.uint32(8).uint64(message.planetaryShield);\n }\n if (message.repairNetworkQuantity !== 0) {\n writer.uint32(16).uint64(message.repairNetworkQuantity);\n }\n if (message.defensiveCannonQuantity !== 0) {\n writer.uint32(24).uint64(message.defensiveCannonQuantity);\n }\n if (message.coordinatedGlobalShieldNetworkQuantity !== 0) {\n writer.uint32(32).uint64(message.coordinatedGlobalShieldNetworkQuantity);\n }\n if (message.lowOrbitBallisticsInterceptorNetworkQuantity !== 0) {\n writer.uint32(40).uint64(message.lowOrbitBallisticsInterceptorNetworkQuantity);\n }\n if (message.advancedLowOrbitBallisticsInterceptorNetworkQuantity !== 0) {\n writer.uint32(48).uint64(message.advancedLowOrbitBallisticsInterceptorNetworkQuantity);\n }\n if (message.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator !== 0) {\n writer.uint32(56).uint64(message.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator);\n }\n if (message.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator !== 0) {\n writer.uint32(64).uint64(message.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator);\n }\n if (message.orbitalJammingStationQuantity !== 0) {\n writer.uint32(72).uint64(message.orbitalJammingStationQuantity);\n }\n if (message.advancedOrbitalJammingStationQuantity !== 0) {\n writer.uint32(80).uint64(message.advancedOrbitalJammingStationQuantity);\n }\n if (message.blockStartRaid !== 0) {\n writer.uint32(88).uint64(message.blockStartRaid);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PlanetAttributes {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePlanetAttributes();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.planetaryShield = longToNumber(reader.uint64());\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.repairNetworkQuantity = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.defensiveCannonQuantity = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.coordinatedGlobalShieldNetworkQuantity = longToNumber(reader.uint64());\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.lowOrbitBallisticsInterceptorNetworkQuantity = longToNumber(reader.uint64());\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.advancedLowOrbitBallisticsInterceptorNetworkQuantity = longToNumber(reader.uint64());\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator = longToNumber(reader.uint64());\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator = longToNumber(reader.uint64());\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.orbitalJammingStationQuantity = longToNumber(reader.uint64());\n continue;\n }\n case 10: {\n if (tag !== 80) {\n break;\n }\n\n message.advancedOrbitalJammingStationQuantity = longToNumber(reader.uint64());\n continue;\n }\n case 11: {\n if (tag !== 88) {\n break;\n }\n\n message.blockStartRaid = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PlanetAttributes {\n return {\n planetaryShield: isSet(object.planetaryShield) ? globalThis.Number(object.planetaryShield) : 0,\n repairNetworkQuantity: isSet(object.repairNetworkQuantity) ? globalThis.Number(object.repairNetworkQuantity) : 0,\n defensiveCannonQuantity: isSet(object.defensiveCannonQuantity)\n ? globalThis.Number(object.defensiveCannonQuantity)\n : 0,\n coordinatedGlobalShieldNetworkQuantity: isSet(object.coordinatedGlobalShieldNetworkQuantity)\n ? globalThis.Number(object.coordinatedGlobalShieldNetworkQuantity)\n : 0,\n lowOrbitBallisticsInterceptorNetworkQuantity: isSet(object.lowOrbitBallisticsInterceptorNetworkQuantity)\n ? globalThis.Number(object.lowOrbitBallisticsInterceptorNetworkQuantity)\n : 0,\n advancedLowOrbitBallisticsInterceptorNetworkQuantity:\n isSet(object.advancedLowOrbitBallisticsInterceptorNetworkQuantity)\n ? globalThis.Number(object.advancedLowOrbitBallisticsInterceptorNetworkQuantity)\n : 0,\n lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator:\n isSet(object.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator)\n ? globalThis.Number(object.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator)\n : 0,\n lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator:\n isSet(object.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator)\n ? globalThis.Number(object.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator)\n : 0,\n orbitalJammingStationQuantity: isSet(object.orbitalJammingStationQuantity)\n ? globalThis.Number(object.orbitalJammingStationQuantity)\n : 0,\n advancedOrbitalJammingStationQuantity: isSet(object.advancedOrbitalJammingStationQuantity)\n ? globalThis.Number(object.advancedOrbitalJammingStationQuantity)\n : 0,\n blockStartRaid: isSet(object.blockStartRaid) ? globalThis.Number(object.blockStartRaid) : 0,\n };\n },\n\n toJSON(message: PlanetAttributes): unknown {\n const obj: any = {};\n if (message.planetaryShield !== 0) {\n obj.planetaryShield = Math.round(message.planetaryShield);\n }\n if (message.repairNetworkQuantity !== 0) {\n obj.repairNetworkQuantity = Math.round(message.repairNetworkQuantity);\n }\n if (message.defensiveCannonQuantity !== 0) {\n obj.defensiveCannonQuantity = Math.round(message.defensiveCannonQuantity);\n }\n if (message.coordinatedGlobalShieldNetworkQuantity !== 0) {\n obj.coordinatedGlobalShieldNetworkQuantity = Math.round(message.coordinatedGlobalShieldNetworkQuantity);\n }\n if (message.lowOrbitBallisticsInterceptorNetworkQuantity !== 0) {\n obj.lowOrbitBallisticsInterceptorNetworkQuantity = Math.round(\n message.lowOrbitBallisticsInterceptorNetworkQuantity,\n );\n }\n if (message.advancedLowOrbitBallisticsInterceptorNetworkQuantity !== 0) {\n obj.advancedLowOrbitBallisticsInterceptorNetworkQuantity = Math.round(\n message.advancedLowOrbitBallisticsInterceptorNetworkQuantity,\n );\n }\n if (message.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator !== 0) {\n obj.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator = Math.round(\n message.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator,\n );\n }\n if (message.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator !== 0) {\n obj.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator = Math.round(\n message.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator,\n );\n }\n if (message.orbitalJammingStationQuantity !== 0) {\n obj.orbitalJammingStationQuantity = Math.round(message.orbitalJammingStationQuantity);\n }\n if (message.advancedOrbitalJammingStationQuantity !== 0) {\n obj.advancedOrbitalJammingStationQuantity = Math.round(message.advancedOrbitalJammingStationQuantity);\n }\n if (message.blockStartRaid !== 0) {\n obj.blockStartRaid = Math.round(message.blockStartRaid);\n }\n return obj;\n },\n\n create, I>>(base?: I): PlanetAttributes {\n return PlanetAttributes.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): PlanetAttributes {\n const message = createBasePlanetAttributes();\n message.planetaryShield = object.planetaryShield ?? 0;\n message.repairNetworkQuantity = object.repairNetworkQuantity ?? 0;\n message.defensiveCannonQuantity = object.defensiveCannonQuantity ?? 0;\n message.coordinatedGlobalShieldNetworkQuantity = object.coordinatedGlobalShieldNetworkQuantity ?? 0;\n message.lowOrbitBallisticsInterceptorNetworkQuantity = object.lowOrbitBallisticsInterceptorNetworkQuantity ?? 0;\n message.advancedLowOrbitBallisticsInterceptorNetworkQuantity =\n object.advancedLowOrbitBallisticsInterceptorNetworkQuantity ?? 0;\n message.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator =\n object.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator ?? 0;\n message.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator =\n object.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator ?? 0;\n message.orbitalJammingStationQuantity = object.orbitalJammingStationQuantity ?? 0;\n message.advancedOrbitalJammingStationQuantity = object.advancedOrbitalJammingStationQuantity ?? 0;\n message.blockStartRaid = object.blockStartRaid ?? 0;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/player.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { Coin } from \"../../cosmos/base/v1beta1/coin\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface Player {\n id: string;\n index: number;\n guildId: string;\n substationId: string;\n creator: string;\n primaryAddress: string;\n planetId: string;\n fleetId: string;\n}\n\nexport interface PlayerInventory {\n rocks: Coin | undefined;\n}\n\nfunction createBasePlayer(): Player {\n return {\n id: \"\",\n index: 0,\n guildId: \"\",\n substationId: \"\",\n creator: \"\",\n primaryAddress: \"\",\n planetId: \"\",\n fleetId: \"\",\n };\n}\n\nexport const Player: MessageFns = {\n encode(message: Player, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.index !== 0) {\n writer.uint32(16).uint64(message.index);\n }\n if (message.guildId !== \"\") {\n writer.uint32(26).string(message.guildId);\n }\n if (message.substationId !== \"\") {\n writer.uint32(34).string(message.substationId);\n }\n if (message.creator !== \"\") {\n writer.uint32(42).string(message.creator);\n }\n if (message.primaryAddress !== \"\") {\n writer.uint32(50).string(message.primaryAddress);\n }\n if (message.planetId !== \"\") {\n writer.uint32(58).string(message.planetId);\n }\n if (message.fleetId !== \"\") {\n writer.uint32(66).string(message.fleetId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Player {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePlayer();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.index = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.primaryAddress = reader.string();\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.planetId = reader.string();\n continue;\n }\n case 8: {\n if (tag !== 66) {\n break;\n }\n\n message.fleetId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Player {\n return {\n id: isSet(object.id) ? globalThis.String(object.id) : \"\",\n index: isSet(object.index) ? globalThis.Number(object.index) : 0,\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n primaryAddress: isSet(object.primaryAddress) ? globalThis.String(object.primaryAddress) : \"\",\n planetId: isSet(object.planetId) ? globalThis.String(object.planetId) : \"\",\n fleetId: isSet(object.fleetId) ? globalThis.String(object.fleetId) : \"\",\n };\n },\n\n toJSON(message: Player): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n if (message.index !== 0) {\n obj.index = Math.round(message.index);\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.primaryAddress !== \"\") {\n obj.primaryAddress = message.primaryAddress;\n }\n if (message.planetId !== \"\") {\n obj.planetId = message.planetId;\n }\n if (message.fleetId !== \"\") {\n obj.fleetId = message.fleetId;\n }\n return obj;\n },\n\n create, I>>(base?: I): Player {\n return Player.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Player {\n const message = createBasePlayer();\n message.id = object.id ?? \"\";\n message.index = object.index ?? 0;\n message.guildId = object.guildId ?? \"\";\n message.substationId = object.substationId ?? \"\";\n message.creator = object.creator ?? \"\";\n message.primaryAddress = object.primaryAddress ?? \"\";\n message.planetId = object.planetId ?? \"\";\n message.fleetId = object.fleetId ?? \"\";\n return message;\n },\n};\n\nfunction createBasePlayerInventory(): PlayerInventory {\n return { rocks: undefined };\n}\n\nexport const PlayerInventory: MessageFns = {\n encode(message: PlayerInventory, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.rocks !== undefined) {\n Coin.encode(message.rocks, writer.uint32(106).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PlayerInventory {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePlayerInventory();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 13: {\n if (tag !== 106) {\n break;\n }\n\n message.rocks = Coin.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PlayerInventory {\n return { rocks: isSet(object.rocks) ? Coin.fromJSON(object.rocks) : undefined };\n },\n\n toJSON(message: PlayerInventory): unknown {\n const obj: any = {};\n if (message.rocks !== undefined) {\n obj.rocks = Coin.toJSON(message.rocks);\n }\n return obj;\n },\n\n create, I>>(base?: I): PlayerInventory {\n return PlayerInventory.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): PlayerInventory {\n const message = createBasePlayerInventory();\n message.rocks = (object.rocks !== undefined && object.rocks !== null) ? Coin.fromPartial(object.rocks) : undefined;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/provider.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { Coin } from \"../../cosmos/base/v1beta1/coin\";\nimport { providerAccessPolicy, providerAccessPolicyFromJSON, providerAccessPolicyToJSON } from \"./keys\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface Provider {\n id: string;\n index: number;\n substationId: string;\n rate: Coin | undefined;\n accessPolicy: providerAccessPolicy;\n capacityMinimum: number;\n capacityMaximum: number;\n durationMinimum: number;\n durationMaximum: number;\n providerCancellationPenalty: string;\n consumerCancellationPenalty: string;\n creator: string;\n owner: string;\n}\n\nfunction createBaseProvider(): Provider {\n return {\n id: \"\",\n index: 0,\n substationId: \"\",\n rate: undefined,\n accessPolicy: 0,\n capacityMinimum: 0,\n capacityMaximum: 0,\n durationMinimum: 0,\n durationMaximum: 0,\n providerCancellationPenalty: \"\",\n consumerCancellationPenalty: \"\",\n creator: \"\",\n owner: \"\",\n };\n}\n\nexport const Provider: MessageFns = {\n encode(message: Provider, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.index !== 0) {\n writer.uint32(16).uint64(message.index);\n }\n if (message.substationId !== \"\") {\n writer.uint32(26).string(message.substationId);\n }\n if (message.rate !== undefined) {\n Coin.encode(message.rate, writer.uint32(34).fork()).join();\n }\n if (message.accessPolicy !== 0) {\n writer.uint32(40).int32(message.accessPolicy);\n }\n if (message.capacityMinimum !== 0) {\n writer.uint32(48).uint64(message.capacityMinimum);\n }\n if (message.capacityMaximum !== 0) {\n writer.uint32(56).uint64(message.capacityMaximum);\n }\n if (message.durationMinimum !== 0) {\n writer.uint32(64).uint64(message.durationMinimum);\n }\n if (message.durationMaximum !== 0) {\n writer.uint32(72).uint64(message.durationMaximum);\n }\n if (message.providerCancellationPenalty !== \"\") {\n writer.uint32(82).string(message.providerCancellationPenalty);\n }\n if (message.consumerCancellationPenalty !== \"\") {\n writer.uint32(90).string(message.consumerCancellationPenalty);\n }\n if (message.creator !== \"\") {\n writer.uint32(98).string(message.creator);\n }\n if (message.owner !== \"\") {\n writer.uint32(106).string(message.owner);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Provider {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProvider();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.index = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.rate = Coin.decode(reader, reader.uint32());\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.accessPolicy = reader.int32() as any;\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.capacityMinimum = longToNumber(reader.uint64());\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.capacityMaximum = longToNumber(reader.uint64());\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.durationMinimum = longToNumber(reader.uint64());\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.durationMaximum = longToNumber(reader.uint64());\n continue;\n }\n case 10: {\n if (tag !== 82) {\n break;\n }\n\n message.providerCancellationPenalty = reader.string();\n continue;\n }\n case 11: {\n if (tag !== 90) {\n break;\n }\n\n message.consumerCancellationPenalty = reader.string();\n continue;\n }\n case 12: {\n if (tag !== 98) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 13: {\n if (tag !== 106) {\n break;\n }\n\n message.owner = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Provider {\n return {\n id: isSet(object.id) ? globalThis.String(object.id) : \"\",\n index: isSet(object.index) ? globalThis.Number(object.index) : 0,\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n rate: isSet(object.rate) ? Coin.fromJSON(object.rate) : undefined,\n accessPolicy: isSet(object.accessPolicy) ? providerAccessPolicyFromJSON(object.accessPolicy) : 0,\n capacityMinimum: isSet(object.capacityMinimum) ? globalThis.Number(object.capacityMinimum) : 0,\n capacityMaximum: isSet(object.capacityMaximum) ? globalThis.Number(object.capacityMaximum) : 0,\n durationMinimum: isSet(object.durationMinimum) ? globalThis.Number(object.durationMinimum) : 0,\n durationMaximum: isSet(object.durationMaximum) ? globalThis.Number(object.durationMaximum) : 0,\n providerCancellationPenalty: isSet(object.providerCancellationPenalty)\n ? globalThis.String(object.providerCancellationPenalty)\n : \"\",\n consumerCancellationPenalty: isSet(object.consumerCancellationPenalty)\n ? globalThis.String(object.consumerCancellationPenalty)\n : \"\",\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n owner: isSet(object.owner) ? globalThis.String(object.owner) : \"\",\n };\n },\n\n toJSON(message: Provider): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n if (message.index !== 0) {\n obj.index = Math.round(message.index);\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n if (message.rate !== undefined) {\n obj.rate = Coin.toJSON(message.rate);\n }\n if (message.accessPolicy !== 0) {\n obj.accessPolicy = providerAccessPolicyToJSON(message.accessPolicy);\n }\n if (message.capacityMinimum !== 0) {\n obj.capacityMinimum = Math.round(message.capacityMinimum);\n }\n if (message.capacityMaximum !== 0) {\n obj.capacityMaximum = Math.round(message.capacityMaximum);\n }\n if (message.durationMinimum !== 0) {\n obj.durationMinimum = Math.round(message.durationMinimum);\n }\n if (message.durationMaximum !== 0) {\n obj.durationMaximum = Math.round(message.durationMaximum);\n }\n if (message.providerCancellationPenalty !== \"\") {\n obj.providerCancellationPenalty = message.providerCancellationPenalty;\n }\n if (message.consumerCancellationPenalty !== \"\") {\n obj.consumerCancellationPenalty = message.consumerCancellationPenalty;\n }\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.owner !== \"\") {\n obj.owner = message.owner;\n }\n return obj;\n },\n\n create, I>>(base?: I): Provider {\n return Provider.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Provider {\n const message = createBaseProvider();\n message.id = object.id ?? \"\";\n message.index = object.index ?? 0;\n message.substationId = object.substationId ?? \"\";\n message.rate = (object.rate !== undefined && object.rate !== null) ? Coin.fromPartial(object.rate) : undefined;\n message.accessPolicy = object.accessPolicy ?? 0;\n message.capacityMinimum = object.capacityMinimum ?? 0;\n message.capacityMaximum = object.capacityMaximum ?? 0;\n message.durationMinimum = object.durationMinimum ?? 0;\n message.durationMaximum = object.durationMaximum ?? 0;\n message.providerCancellationPenalty = object.providerCancellationPenalty ?? \"\";\n message.consumerCancellationPenalty = object.consumerCancellationPenalty ?? \"\";\n message.creator = object.creator ?? \"\";\n message.owner = object.owner ?? \"\";\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/query.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { PageRequest, PageResponse } from \"../../cosmos/base/query/v1beta1/pagination\";\nimport { InternalAddressAssociation } from \"./address\";\nimport { Agreement } from \"./agreement\";\nimport { Allocation } from \"./allocation\";\nimport { Fleet } from \"./fleet\";\nimport { GridAttributes, GridRecord } from \"./grid\";\nimport { Guild, GuildMembershipApplication } from \"./guild\";\nimport { Infusion } from \"./infusion\";\nimport { Params } from \"./params\";\nimport { PermissionRecord } from \"./permission\";\nimport { Planet, PlanetAttributeRecord, PlanetAttributes } from \"./planet\";\nimport { Player, PlayerInventory } from \"./player\";\nimport { Provider } from \"./provider\";\nimport { Reactor } from \"./reactor\";\nimport { Struct, StructAttributeRecord, StructAttributes, StructType } from \"./struct\";\nimport { Substation } from \"./substation\";\n\nexport const protobufPackage = \"structs.structs\";\n\n/** QueryParamsRequest is request type for the Query/Params RPC method. */\nexport interface QueryParamsRequest {\n}\n\n/** QueryParamsResponse is response type for the Query/Params RPC method. */\nexport interface QueryParamsResponse {\n /** params holds all the parameters of this module. */\n params: Params | undefined;\n}\n\nexport interface QueryBlockHeight {\n}\n\nexport interface QueryBlockHeightResponse {\n blockHeight: number;\n}\n\nexport interface QueryGetAddressRequest {\n address: string;\n}\n\nexport interface QueryAllAddressByPlayerRequest {\n playerId: string;\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllAddressRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAddressResponse {\n address: string;\n playerId: string;\n permissions: number;\n}\n\nexport interface QueryAllAddressResponse {\n address: QueryAddressResponse[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetAgreementRequest {\n id: string;\n}\n\nexport interface QueryGetAgreementResponse {\n Agreement: Agreement | undefined;\n}\n\nexport interface QueryAllAgreementRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllAgreementByProviderRequest {\n pagination: PageRequest | undefined;\n providerId: string;\n}\n\nexport interface QueryAllAgreementResponse {\n Agreement: Agreement[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetAllocationRequest {\n id: string;\n}\n\nexport interface QueryGetAllocationResponse {\n Allocation: Allocation | undefined;\n gridAttributes: GridAttributes | undefined;\n}\n\nexport interface QueryAllAllocationRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllAllocationBySourceRequest {\n pagination: PageRequest | undefined;\n sourceId: string;\n}\n\nexport interface QueryAllAllocationByDestinationRequest {\n pagination: PageRequest | undefined;\n destinationId: string;\n}\n\nexport interface QueryAllAllocationResponse {\n Allocation: Allocation[];\n pagination: PageResponse | undefined;\n status: number[];\n}\n\nexport interface QueryGetFleetRequest {\n id: string;\n}\n\nexport interface QueryGetFleetResponse {\n Fleet: Fleet | undefined;\n}\n\nexport interface QueryGetFleetByIndexRequest {\n index: number;\n}\n\nexport interface QueryAllFleetRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllFleetResponse {\n Fleet: Fleet[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetGridRequest {\n attributeId: string;\n}\n\nexport interface QueryAllGridRequest {\n pagination: PageRequest | undefined;\n}\n\n/** Generic Responses for Permissions */\nexport interface QueryGetGridResponse {\n gridRecord: GridRecord | undefined;\n}\n\nexport interface QueryAllGridResponse {\n gridRecords: GridRecord[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetGuildRequest {\n id: string;\n}\n\nexport interface QueryGetGuildResponse {\n Guild: Guild | undefined;\n}\n\nexport interface QueryAllGuildRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllGuildResponse {\n Guild: Guild[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetGuildBankCollateralAddressRequest {\n guildId: string;\n}\n\nexport interface QueryAllGuildBankCollateralAddressRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllGuildBankCollateralAddressResponse {\n internalAddressAssociation: InternalAddressAssociation[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetGuildByBankCollateralAddressRequest {\n address: string;\n}\n\nexport interface QueryGetGuildMembershipApplicationRequest {\n guildId: string;\n playerId: string;\n}\n\nexport interface QueryGetGuildMembershipApplicationResponse {\n GuildMembershipApplication: GuildMembershipApplication | undefined;\n}\n\nexport interface QueryAllGuildMembershipApplicationRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllGuildMembershipApplicationResponse {\n GuildMembershipApplication: GuildMembershipApplication[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetInfusionRequest {\n destinationId: string;\n address: string;\n}\n\nexport interface QueryGetInfusionResponse {\n Infusion: Infusion | undefined;\n}\n\nexport interface QueryAllInfusionByDestinationRequest {\n destinationId: string;\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllInfusionRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllInfusionResponse {\n Infusion: Infusion[];\n pagination: PageResponse | undefined;\n status: number[];\n}\n\nexport interface QueryGetPermissionRequest {\n permissionId: string;\n}\n\nexport interface QueryAllPermissionByObjectRequest {\n objectId: string;\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllPermissionByPlayerRequest {\n playerId: string;\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllPermissionRequest {\n pagination: PageRequest | undefined;\n}\n\n/** Generic Responses for Permissions */\nexport interface QueryGetPermissionResponse {\n permissionRecord: PermissionRecord | undefined;\n}\n\nexport interface QueryAllPermissionResponse {\n permissionRecords: PermissionRecord[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetPlanetRequest {\n id: string;\n}\n\nexport interface QueryGetPlanetResponse {\n Planet: Planet | undefined;\n gridAttributes: GridAttributes | undefined;\n planetAttributes: PlanetAttributes | undefined;\n}\n\nexport interface QueryAllPlanetRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllPlanetByPlayerRequest {\n playerId: string;\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllPlanetResponse {\n Planet: Planet[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetPlanetAttributeRequest {\n planetId: string;\n attributeType: string;\n}\n\nexport interface QueryGetPlanetAttributeResponse {\n attribute: number;\n}\n\nexport interface QueryAllPlanetAttributeRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllPlanetAttributeResponse {\n planetAttributeRecords: PlanetAttributeRecord[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetPlayerRequest {\n id: string;\n}\n\nexport interface QueryGetPlayerResponse {\n Player: Player | undefined;\n gridAttributes: GridAttributes | undefined;\n playerInventory: PlayerInventory | undefined;\n halted: boolean;\n}\n\nexport interface QueryAllPlayerRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllPlayerResponse {\n Player: Player[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryAllPlayerHaltedRequest {\n}\n\nexport interface QueryAllPlayerHaltedResponse {\n PlayerId: string[];\n}\n\nexport interface QueryGetProviderRequest {\n id: string;\n}\n\nexport interface QueryGetProviderResponse {\n Provider: Provider | undefined;\n gridAttributes: GridAttributes | undefined;\n}\n\nexport interface QueryAllProviderRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllProviderResponse {\n Provider: Provider[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetProviderCollateralAddressRequest {\n providerId: string;\n}\n\nexport interface QueryAllProviderCollateralAddressRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllProviderCollateralAddressResponse {\n internalAddressAssociation: InternalAddressAssociation[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetProviderByCollateralAddressRequest {\n address: string;\n}\n\nexport interface QueryGetProviderEarningsAddressRequest {\n providerId: string;\n}\n\nexport interface QueryAllProviderEarningsAddressRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllProviderEarningsAddressResponse {\n internalAddressAssociation: InternalAddressAssociation[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetProviderByEarningsAddressRequest {\n address: string;\n}\n\nexport interface QueryGetReactorRequest {\n id: string;\n}\n\nexport interface QueryGetReactorResponse {\n Reactor: Reactor | undefined;\n gridAttributes: GridAttributes | undefined;\n}\n\nexport interface QueryAllReactorRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllReactorResponse {\n Reactor: Reactor[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetStructRequest {\n id: string;\n}\n\nexport interface QueryGetStructResponse {\n Struct: Struct | undefined;\n structAttributes: StructAttributes | undefined;\n gridAttributes: GridAttributes | undefined;\n structDefenders: string[];\n}\n\nexport interface QueryAllStructRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllStructResponse {\n Struct: Struct[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetStructAttributeRequest {\n structId: string;\n attributeType: string;\n}\n\nexport interface QueryGetStructAttributeResponse {\n attribute: number;\n}\n\nexport interface QueryAllStructAttributeRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllStructAttributeResponse {\n structAttributeRecords: StructAttributeRecord[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetStructTypeRequest {\n id: number;\n}\n\nexport interface QueryGetStructTypeResponse {\n StructType: StructType | undefined;\n}\n\nexport interface QueryAllStructTypeRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllStructTypeResponse {\n StructType: StructType[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetSubstationRequest {\n id: string;\n}\n\nexport interface QueryGetSubstationResponse {\n Substation: Substation | undefined;\n gridAttributes: GridAttributes | undefined;\n}\n\nexport interface QueryAllSubstationRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllSubstationResponse {\n Substation: Substation[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryValidateSignatureRequest {\n address: string;\n message: string;\n proofPubKey: string;\n proofSignature: string;\n}\n\nexport interface QueryValidateSignatureResponse {\n pubkeyFormatError: boolean;\n signatureFormatError: boolean;\n addressPubkeyMismatch: boolean;\n signatureInvalid: boolean;\n valid: boolean;\n}\n\nfunction createBaseQueryParamsRequest(): QueryParamsRequest {\n return {};\n}\n\nexport const QueryParamsRequest: MessageFns = {\n encode(_: QueryParamsRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): QueryParamsRequest {\n return {};\n },\n\n toJSON(_: QueryParamsRequest): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): QueryParamsRequest {\n return QueryParamsRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): QueryParamsRequest {\n const message = createBaseQueryParamsRequest();\n return message;\n },\n};\n\nfunction createBaseQueryParamsResponse(): QueryParamsResponse {\n return { params: undefined };\n}\n\nexport const QueryParamsResponse: MessageFns = {\n encode(message: QueryParamsResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.params !== undefined) {\n Params.encode(message.params, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.params = Params.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryParamsResponse {\n return { params: isSet(object.params) ? Params.fromJSON(object.params) : undefined };\n },\n\n toJSON(message: QueryParamsResponse): unknown {\n const obj: any = {};\n if (message.params !== undefined) {\n obj.params = Params.toJSON(message.params);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryParamsResponse {\n return QueryParamsResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryParamsResponse {\n const message = createBaseQueryParamsResponse();\n message.params = (object.params !== undefined && object.params !== null)\n ? Params.fromPartial(object.params)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryBlockHeight(): QueryBlockHeight {\n return {};\n}\n\nexport const QueryBlockHeight: MessageFns = {\n encode(_: QueryBlockHeight, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryBlockHeight {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryBlockHeight();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): QueryBlockHeight {\n return {};\n },\n\n toJSON(_: QueryBlockHeight): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): QueryBlockHeight {\n return QueryBlockHeight.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): QueryBlockHeight {\n const message = createBaseQueryBlockHeight();\n return message;\n },\n};\n\nfunction createBaseQueryBlockHeightResponse(): QueryBlockHeightResponse {\n return { blockHeight: 0 };\n}\n\nexport const QueryBlockHeightResponse: MessageFns = {\n encode(message: QueryBlockHeightResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.blockHeight !== 0) {\n writer.uint32(8).uint64(message.blockHeight);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryBlockHeightResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryBlockHeightResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.blockHeight = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryBlockHeightResponse {\n return { blockHeight: isSet(object.blockHeight) ? globalThis.Number(object.blockHeight) : 0 };\n },\n\n toJSON(message: QueryBlockHeightResponse): unknown {\n const obj: any = {};\n if (message.blockHeight !== 0) {\n obj.blockHeight = Math.round(message.blockHeight);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryBlockHeightResponse {\n return QueryBlockHeightResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryBlockHeightResponse {\n const message = createBaseQueryBlockHeightResponse();\n message.blockHeight = object.blockHeight ?? 0;\n return message;\n },\n};\n\nfunction createBaseQueryGetAddressRequest(): QueryGetAddressRequest {\n return { address: \"\" };\n}\n\nexport const QueryGetAddressRequest: MessageFns = {\n encode(message: QueryGetAddressRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetAddressRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetAddressRequest {\n return { address: isSet(object.address) ? globalThis.String(object.address) : \"\" };\n },\n\n toJSON(message: QueryGetAddressRequest): unknown {\n const obj: any = {};\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetAddressRequest {\n return QueryGetAddressRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetAddressRequest {\n const message = createBaseQueryGetAddressRequest();\n message.address = object.address ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryAllAddressByPlayerRequest(): QueryAllAddressByPlayerRequest {\n return { playerId: \"\", pagination: undefined };\n}\n\nexport const QueryAllAddressByPlayerRequest: MessageFns = {\n encode(message: QueryAllAddressByPlayerRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.playerId !== \"\") {\n writer.uint32(10).string(message.playerId);\n }\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllAddressByPlayerRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllAddressByPlayerRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllAddressByPlayerRequest {\n return {\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllAddressByPlayerRequest): unknown {\n const obj: any = {};\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllAddressByPlayerRequest {\n return QueryAllAddressByPlayerRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllAddressByPlayerRequest {\n const message = createBaseQueryAllAddressByPlayerRequest();\n message.playerId = object.playerId ?? \"\";\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllAddressRequest(): QueryAllAddressRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllAddressRequest: MessageFns = {\n encode(message: QueryAllAddressRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllAddressRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllAddressRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllAddressRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllAddressRequest {\n return QueryAllAddressRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllAddressRequest {\n const message = createBaseQueryAllAddressRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAddressResponse(): QueryAddressResponse {\n return { address: \"\", playerId: \"\", permissions: 0 };\n}\n\nexport const QueryAddressResponse: MessageFns = {\n encode(message: QueryAddressResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.playerId !== \"\") {\n writer.uint32(18).string(message.playerId);\n }\n if (message.permissions !== 0) {\n writer.uint32(24).uint64(message.permissions);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAddressResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAddressResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.permissions = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAddressResponse {\n return {\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n permissions: isSet(object.permissions) ? globalThis.Number(object.permissions) : 0,\n };\n },\n\n toJSON(message: QueryAddressResponse): unknown {\n const obj: any = {};\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.permissions !== 0) {\n obj.permissions = Math.round(message.permissions);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAddressResponse {\n return QueryAddressResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAddressResponse {\n const message = createBaseQueryAddressResponse();\n message.address = object.address ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.permissions = object.permissions ?? 0;\n return message;\n },\n};\n\nfunction createBaseQueryAllAddressResponse(): QueryAllAddressResponse {\n return { address: [], pagination: undefined };\n}\n\nexport const QueryAllAddressResponse: MessageFns = {\n encode(message: QueryAllAddressResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.address) {\n QueryAddressResponse.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllAddressResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllAddressResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.address.push(QueryAddressResponse.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllAddressResponse {\n return {\n address: globalThis.Array.isArray(object?.address)\n ? object.address.map((e: any) => QueryAddressResponse.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllAddressResponse): unknown {\n const obj: any = {};\n if (message.address?.length) {\n obj.address = message.address.map((e) => QueryAddressResponse.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllAddressResponse {\n return QueryAllAddressResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllAddressResponse {\n const message = createBaseQueryAllAddressResponse();\n message.address = object.address?.map((e) => QueryAddressResponse.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetAgreementRequest(): QueryGetAgreementRequest {\n return { id: \"\" };\n}\n\nexport const QueryGetAgreementRequest: MessageFns = {\n encode(message: QueryGetAgreementRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetAgreementRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetAgreementRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetAgreementRequest {\n return { id: isSet(object.id) ? globalThis.String(object.id) : \"\" };\n },\n\n toJSON(message: QueryGetAgreementRequest): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetAgreementRequest {\n return QueryGetAgreementRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetAgreementRequest {\n const message = createBaseQueryGetAgreementRequest();\n message.id = object.id ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetAgreementResponse(): QueryGetAgreementResponse {\n return { Agreement: undefined };\n}\n\nexport const QueryGetAgreementResponse: MessageFns = {\n encode(message: QueryGetAgreementResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.Agreement !== undefined) {\n Agreement.encode(message.Agreement, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetAgreementResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetAgreementResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Agreement = Agreement.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetAgreementResponse {\n return { Agreement: isSet(object.Agreement) ? Agreement.fromJSON(object.Agreement) : undefined };\n },\n\n toJSON(message: QueryGetAgreementResponse): unknown {\n const obj: any = {};\n if (message.Agreement !== undefined) {\n obj.Agreement = Agreement.toJSON(message.Agreement);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetAgreementResponse {\n return QueryGetAgreementResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetAgreementResponse {\n const message = createBaseQueryGetAgreementResponse();\n message.Agreement = (object.Agreement !== undefined && object.Agreement !== null)\n ? Agreement.fromPartial(object.Agreement)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllAgreementRequest(): QueryAllAgreementRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllAgreementRequest: MessageFns = {\n encode(message: QueryAllAgreementRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllAgreementRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllAgreementRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllAgreementRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllAgreementRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllAgreementRequest {\n return QueryAllAgreementRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllAgreementRequest {\n const message = createBaseQueryAllAgreementRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllAgreementByProviderRequest(): QueryAllAgreementByProviderRequest {\n return { pagination: undefined, providerId: \"\" };\n}\n\nexport const QueryAllAgreementByProviderRequest: MessageFns = {\n encode(message: QueryAllAgreementByProviderRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllAgreementByProviderRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllAgreementByProviderRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllAgreementByProviderRequest {\n return {\n pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined,\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n };\n },\n\n toJSON(message: QueryAllAgreementByProviderRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllAgreementByProviderRequest {\n return QueryAllAgreementByProviderRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllAgreementByProviderRequest {\n const message = createBaseQueryAllAgreementByProviderRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n message.providerId = object.providerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryAllAgreementResponse(): QueryAllAgreementResponse {\n return { Agreement: [], pagination: undefined };\n}\n\nexport const QueryAllAgreementResponse: MessageFns = {\n encode(message: QueryAllAgreementResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.Agreement) {\n Agreement.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllAgreementResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllAgreementResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Agreement.push(Agreement.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllAgreementResponse {\n return {\n Agreement: globalThis.Array.isArray(object?.Agreement)\n ? object.Agreement.map((e: any) => Agreement.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllAgreementResponse): unknown {\n const obj: any = {};\n if (message.Agreement?.length) {\n obj.Agreement = message.Agreement.map((e) => Agreement.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllAgreementResponse {\n return QueryAllAgreementResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllAgreementResponse {\n const message = createBaseQueryAllAgreementResponse();\n message.Agreement = object.Agreement?.map((e) => Agreement.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetAllocationRequest(): QueryGetAllocationRequest {\n return { id: \"\" };\n}\n\nexport const QueryGetAllocationRequest: MessageFns = {\n encode(message: QueryGetAllocationRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetAllocationRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetAllocationRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetAllocationRequest {\n return { id: isSet(object.id) ? globalThis.String(object.id) : \"\" };\n },\n\n toJSON(message: QueryGetAllocationRequest): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetAllocationRequest {\n return QueryGetAllocationRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetAllocationRequest {\n const message = createBaseQueryGetAllocationRequest();\n message.id = object.id ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetAllocationResponse(): QueryGetAllocationResponse {\n return { Allocation: undefined, gridAttributes: undefined };\n}\n\nexport const QueryGetAllocationResponse: MessageFns = {\n encode(message: QueryGetAllocationResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.Allocation !== undefined) {\n Allocation.encode(message.Allocation, writer.uint32(10).fork()).join();\n }\n if (message.gridAttributes !== undefined) {\n GridAttributes.encode(message.gridAttributes, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetAllocationResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetAllocationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Allocation = Allocation.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.gridAttributes = GridAttributes.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetAllocationResponse {\n return {\n Allocation: isSet(object.Allocation) ? Allocation.fromJSON(object.Allocation) : undefined,\n gridAttributes: isSet(object.gridAttributes) ? GridAttributes.fromJSON(object.gridAttributes) : undefined,\n };\n },\n\n toJSON(message: QueryGetAllocationResponse): unknown {\n const obj: any = {};\n if (message.Allocation !== undefined) {\n obj.Allocation = Allocation.toJSON(message.Allocation);\n }\n if (message.gridAttributes !== undefined) {\n obj.gridAttributes = GridAttributes.toJSON(message.gridAttributes);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetAllocationResponse {\n return QueryGetAllocationResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetAllocationResponse {\n const message = createBaseQueryGetAllocationResponse();\n message.Allocation = (object.Allocation !== undefined && object.Allocation !== null)\n ? Allocation.fromPartial(object.Allocation)\n : undefined;\n message.gridAttributes = (object.gridAttributes !== undefined && object.gridAttributes !== null)\n ? GridAttributes.fromPartial(object.gridAttributes)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllAllocationRequest(): QueryAllAllocationRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllAllocationRequest: MessageFns = {\n encode(message: QueryAllAllocationRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllAllocationRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllAllocationRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllAllocationRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllAllocationRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllAllocationRequest {\n return QueryAllAllocationRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllAllocationRequest {\n const message = createBaseQueryAllAllocationRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllAllocationBySourceRequest(): QueryAllAllocationBySourceRequest {\n return { pagination: undefined, sourceId: \"\" };\n}\n\nexport const QueryAllAllocationBySourceRequest: MessageFns = {\n encode(message: QueryAllAllocationBySourceRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n if (message.sourceId !== \"\") {\n writer.uint32(18).string(message.sourceId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllAllocationBySourceRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllAllocationBySourceRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.sourceId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllAllocationBySourceRequest {\n return {\n pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined,\n sourceId: isSet(object.sourceId) ? globalThis.String(object.sourceId) : \"\",\n };\n },\n\n toJSON(message: QueryAllAllocationBySourceRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n if (message.sourceId !== \"\") {\n obj.sourceId = message.sourceId;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllAllocationBySourceRequest {\n return QueryAllAllocationBySourceRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllAllocationBySourceRequest {\n const message = createBaseQueryAllAllocationBySourceRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n message.sourceId = object.sourceId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryAllAllocationByDestinationRequest(): QueryAllAllocationByDestinationRequest {\n return { pagination: undefined, destinationId: \"\" };\n}\n\nexport const QueryAllAllocationByDestinationRequest: MessageFns = {\n encode(message: QueryAllAllocationByDestinationRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n if (message.destinationId !== \"\") {\n writer.uint32(18).string(message.destinationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllAllocationByDestinationRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllAllocationByDestinationRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.destinationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllAllocationByDestinationRequest {\n return {\n pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined,\n destinationId: isSet(object.destinationId) ? globalThis.String(object.destinationId) : \"\",\n };\n },\n\n toJSON(message: QueryAllAllocationByDestinationRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n if (message.destinationId !== \"\") {\n obj.destinationId = message.destinationId;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllAllocationByDestinationRequest {\n return QueryAllAllocationByDestinationRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllAllocationByDestinationRequest {\n const message = createBaseQueryAllAllocationByDestinationRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n message.destinationId = object.destinationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryAllAllocationResponse(): QueryAllAllocationResponse {\n return { Allocation: [], pagination: undefined, status: [] };\n}\n\nexport const QueryAllAllocationResponse: MessageFns = {\n encode(message: QueryAllAllocationResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.Allocation) {\n Allocation.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n writer.uint32(26).fork();\n for (const v of message.status) {\n writer.uint64(v);\n }\n writer.join();\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllAllocationResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllAllocationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Allocation.push(Allocation.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n case 3: {\n if (tag === 24) {\n message.status.push(longToNumber(reader.uint64()));\n\n continue;\n }\n\n if (tag === 26) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.status.push(longToNumber(reader.uint64()));\n }\n\n continue;\n }\n\n break;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllAllocationResponse {\n return {\n Allocation: globalThis.Array.isArray(object?.Allocation)\n ? object.Allocation.map((e: any) => Allocation.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n status: globalThis.Array.isArray(object?.status) ? object.status.map((e: any) => globalThis.Number(e)) : [],\n };\n },\n\n toJSON(message: QueryAllAllocationResponse): unknown {\n const obj: any = {};\n if (message.Allocation?.length) {\n obj.Allocation = message.Allocation.map((e) => Allocation.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n if (message.status?.length) {\n obj.status = message.status.map((e) => Math.round(e));\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllAllocationResponse {\n return QueryAllAllocationResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllAllocationResponse {\n const message = createBaseQueryAllAllocationResponse();\n message.Allocation = object.Allocation?.map((e) => Allocation.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n message.status = object.status?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseQueryGetFleetRequest(): QueryGetFleetRequest {\n return { id: \"\" };\n}\n\nexport const QueryGetFleetRequest: MessageFns = {\n encode(message: QueryGetFleetRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetFleetRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetFleetRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetFleetRequest {\n return { id: isSet(object.id) ? globalThis.String(object.id) : \"\" };\n },\n\n toJSON(message: QueryGetFleetRequest): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetFleetRequest {\n return QueryGetFleetRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetFleetRequest {\n const message = createBaseQueryGetFleetRequest();\n message.id = object.id ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetFleetResponse(): QueryGetFleetResponse {\n return { Fleet: undefined };\n}\n\nexport const QueryGetFleetResponse: MessageFns = {\n encode(message: QueryGetFleetResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.Fleet !== undefined) {\n Fleet.encode(message.Fleet, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetFleetResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetFleetResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Fleet = Fleet.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetFleetResponse {\n return { Fleet: isSet(object.Fleet) ? Fleet.fromJSON(object.Fleet) : undefined };\n },\n\n toJSON(message: QueryGetFleetResponse): unknown {\n const obj: any = {};\n if (message.Fleet !== undefined) {\n obj.Fleet = Fleet.toJSON(message.Fleet);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetFleetResponse {\n return QueryGetFleetResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetFleetResponse {\n const message = createBaseQueryGetFleetResponse();\n message.Fleet = (object.Fleet !== undefined && object.Fleet !== null) ? Fleet.fromPartial(object.Fleet) : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetFleetByIndexRequest(): QueryGetFleetByIndexRequest {\n return { index: 0 };\n}\n\nexport const QueryGetFleetByIndexRequest: MessageFns = {\n encode(message: QueryGetFleetByIndexRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.index !== 0) {\n writer.uint32(8).uint64(message.index);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetFleetByIndexRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetFleetByIndexRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.index = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetFleetByIndexRequest {\n return { index: isSet(object.index) ? globalThis.Number(object.index) : 0 };\n },\n\n toJSON(message: QueryGetFleetByIndexRequest): unknown {\n const obj: any = {};\n if (message.index !== 0) {\n obj.index = Math.round(message.index);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetFleetByIndexRequest {\n return QueryGetFleetByIndexRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetFleetByIndexRequest {\n const message = createBaseQueryGetFleetByIndexRequest();\n message.index = object.index ?? 0;\n return message;\n },\n};\n\nfunction createBaseQueryAllFleetRequest(): QueryAllFleetRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllFleetRequest: MessageFns = {\n encode(message: QueryAllFleetRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllFleetRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllFleetRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllFleetRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllFleetRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllFleetRequest {\n return QueryAllFleetRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllFleetRequest {\n const message = createBaseQueryAllFleetRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllFleetResponse(): QueryAllFleetResponse {\n return { Fleet: [], pagination: undefined };\n}\n\nexport const QueryAllFleetResponse: MessageFns = {\n encode(message: QueryAllFleetResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.Fleet) {\n Fleet.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllFleetResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllFleetResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Fleet.push(Fleet.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllFleetResponse {\n return {\n Fleet: globalThis.Array.isArray(object?.Fleet) ? object.Fleet.map((e: any) => Fleet.fromJSON(e)) : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllFleetResponse): unknown {\n const obj: any = {};\n if (message.Fleet?.length) {\n obj.Fleet = message.Fleet.map((e) => Fleet.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllFleetResponse {\n return QueryAllFleetResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllFleetResponse {\n const message = createBaseQueryAllFleetResponse();\n message.Fleet = object.Fleet?.map((e) => Fleet.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetGridRequest(): QueryGetGridRequest {\n return { attributeId: \"\" };\n}\n\nexport const QueryGetGridRequest: MessageFns = {\n encode(message: QueryGetGridRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.attributeId !== \"\") {\n writer.uint32(10).string(message.attributeId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetGridRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetGridRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.attributeId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetGridRequest {\n return { attributeId: isSet(object.attributeId) ? globalThis.String(object.attributeId) : \"\" };\n },\n\n toJSON(message: QueryGetGridRequest): unknown {\n const obj: any = {};\n if (message.attributeId !== \"\") {\n obj.attributeId = message.attributeId;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetGridRequest {\n return QueryGetGridRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetGridRequest {\n const message = createBaseQueryGetGridRequest();\n message.attributeId = object.attributeId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryAllGridRequest(): QueryAllGridRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllGridRequest: MessageFns = {\n encode(message: QueryAllGridRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllGridRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllGridRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllGridRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllGridRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllGridRequest {\n return QueryAllGridRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllGridRequest {\n const message = createBaseQueryAllGridRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetGridResponse(): QueryGetGridResponse {\n return { gridRecord: undefined };\n}\n\nexport const QueryGetGridResponse: MessageFns = {\n encode(message: QueryGetGridResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.gridRecord !== undefined) {\n GridRecord.encode(message.gridRecord, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetGridResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetGridResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.gridRecord = GridRecord.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetGridResponse {\n return { gridRecord: isSet(object.gridRecord) ? GridRecord.fromJSON(object.gridRecord) : undefined };\n },\n\n toJSON(message: QueryGetGridResponse): unknown {\n const obj: any = {};\n if (message.gridRecord !== undefined) {\n obj.gridRecord = GridRecord.toJSON(message.gridRecord);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetGridResponse {\n return QueryGetGridResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetGridResponse {\n const message = createBaseQueryGetGridResponse();\n message.gridRecord = (object.gridRecord !== undefined && object.gridRecord !== null)\n ? GridRecord.fromPartial(object.gridRecord)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllGridResponse(): QueryAllGridResponse {\n return { gridRecords: [], pagination: undefined };\n}\n\nexport const QueryAllGridResponse: MessageFns = {\n encode(message: QueryAllGridResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.gridRecords) {\n GridRecord.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllGridResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllGridResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.gridRecords.push(GridRecord.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllGridResponse {\n return {\n gridRecords: globalThis.Array.isArray(object?.gridRecords)\n ? object.gridRecords.map((e: any) => GridRecord.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllGridResponse): unknown {\n const obj: any = {};\n if (message.gridRecords?.length) {\n obj.gridRecords = message.gridRecords.map((e) => GridRecord.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllGridResponse {\n return QueryAllGridResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllGridResponse {\n const message = createBaseQueryAllGridResponse();\n message.gridRecords = object.gridRecords?.map((e) => GridRecord.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetGuildRequest(): QueryGetGuildRequest {\n return { id: \"\" };\n}\n\nexport const QueryGetGuildRequest: MessageFns = {\n encode(message: QueryGetGuildRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetGuildRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetGuildRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetGuildRequest {\n return { id: isSet(object.id) ? globalThis.String(object.id) : \"\" };\n },\n\n toJSON(message: QueryGetGuildRequest): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetGuildRequest {\n return QueryGetGuildRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetGuildRequest {\n const message = createBaseQueryGetGuildRequest();\n message.id = object.id ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetGuildResponse(): QueryGetGuildResponse {\n return { Guild: undefined };\n}\n\nexport const QueryGetGuildResponse: MessageFns = {\n encode(message: QueryGetGuildResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.Guild !== undefined) {\n Guild.encode(message.Guild, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetGuildResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetGuildResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Guild = Guild.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetGuildResponse {\n return { Guild: isSet(object.Guild) ? Guild.fromJSON(object.Guild) : undefined };\n },\n\n toJSON(message: QueryGetGuildResponse): unknown {\n const obj: any = {};\n if (message.Guild !== undefined) {\n obj.Guild = Guild.toJSON(message.Guild);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetGuildResponse {\n return QueryGetGuildResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetGuildResponse {\n const message = createBaseQueryGetGuildResponse();\n message.Guild = (object.Guild !== undefined && object.Guild !== null) ? Guild.fromPartial(object.Guild) : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllGuildRequest(): QueryAllGuildRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllGuildRequest: MessageFns = {\n encode(message: QueryAllGuildRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllGuildRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllGuildRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllGuildRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllGuildRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllGuildRequest {\n return QueryAllGuildRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllGuildRequest {\n const message = createBaseQueryAllGuildRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllGuildResponse(): QueryAllGuildResponse {\n return { Guild: [], pagination: undefined };\n}\n\nexport const QueryAllGuildResponse: MessageFns = {\n encode(message: QueryAllGuildResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.Guild) {\n Guild.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllGuildResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllGuildResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Guild.push(Guild.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllGuildResponse {\n return {\n Guild: globalThis.Array.isArray(object?.Guild) ? object.Guild.map((e: any) => Guild.fromJSON(e)) : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllGuildResponse): unknown {\n const obj: any = {};\n if (message.Guild?.length) {\n obj.Guild = message.Guild.map((e) => Guild.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllGuildResponse {\n return QueryAllGuildResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllGuildResponse {\n const message = createBaseQueryAllGuildResponse();\n message.Guild = object.Guild?.map((e) => Guild.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetGuildBankCollateralAddressRequest(): QueryGetGuildBankCollateralAddressRequest {\n return { guildId: \"\" };\n}\n\nexport const QueryGetGuildBankCollateralAddressRequest: MessageFns = {\n encode(message: QueryGetGuildBankCollateralAddressRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.guildId !== \"\") {\n writer.uint32(10).string(message.guildId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetGuildBankCollateralAddressRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetGuildBankCollateralAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetGuildBankCollateralAddressRequest {\n return { guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\" };\n },\n\n toJSON(message: QueryGetGuildBankCollateralAddressRequest): unknown {\n const obj: any = {};\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryGetGuildBankCollateralAddressRequest {\n return QueryGetGuildBankCollateralAddressRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetGuildBankCollateralAddressRequest {\n const message = createBaseQueryGetGuildBankCollateralAddressRequest();\n message.guildId = object.guildId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryAllGuildBankCollateralAddressRequest(): QueryAllGuildBankCollateralAddressRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllGuildBankCollateralAddressRequest: MessageFns = {\n encode(message: QueryAllGuildBankCollateralAddressRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllGuildBankCollateralAddressRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllGuildBankCollateralAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllGuildBankCollateralAddressRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllGuildBankCollateralAddressRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllGuildBankCollateralAddressRequest {\n return QueryAllGuildBankCollateralAddressRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllGuildBankCollateralAddressRequest {\n const message = createBaseQueryAllGuildBankCollateralAddressRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllGuildBankCollateralAddressResponse(): QueryAllGuildBankCollateralAddressResponse {\n return { internalAddressAssociation: [], pagination: undefined };\n}\n\nexport const QueryAllGuildBankCollateralAddressResponse: MessageFns = {\n encode(message: QueryAllGuildBankCollateralAddressResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.internalAddressAssociation) {\n InternalAddressAssociation.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllGuildBankCollateralAddressResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllGuildBankCollateralAddressResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.internalAddressAssociation.push(InternalAddressAssociation.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllGuildBankCollateralAddressResponse {\n return {\n internalAddressAssociation: globalThis.Array.isArray(object?.internalAddressAssociation)\n ? object.internalAddressAssociation.map((e: any) => InternalAddressAssociation.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllGuildBankCollateralAddressResponse): unknown {\n const obj: any = {};\n if (message.internalAddressAssociation?.length) {\n obj.internalAddressAssociation = message.internalAddressAssociation.map((e) =>\n InternalAddressAssociation.toJSON(e)\n );\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllGuildBankCollateralAddressResponse {\n return QueryAllGuildBankCollateralAddressResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllGuildBankCollateralAddressResponse {\n const message = createBaseQueryAllGuildBankCollateralAddressResponse();\n message.internalAddressAssociation =\n object.internalAddressAssociation?.map((e) => InternalAddressAssociation.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetGuildByBankCollateralAddressRequest(): QueryGetGuildByBankCollateralAddressRequest {\n return { address: \"\" };\n}\n\nexport const QueryGetGuildByBankCollateralAddressRequest: MessageFns = {\n encode(\n message: QueryGetGuildByBankCollateralAddressRequest,\n writer: BinaryWriter = new BinaryWriter(),\n ): BinaryWriter {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetGuildByBankCollateralAddressRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetGuildByBankCollateralAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetGuildByBankCollateralAddressRequest {\n return { address: isSet(object.address) ? globalThis.String(object.address) : \"\" };\n },\n\n toJSON(message: QueryGetGuildByBankCollateralAddressRequest): unknown {\n const obj: any = {};\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryGetGuildByBankCollateralAddressRequest {\n return QueryGetGuildByBankCollateralAddressRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetGuildByBankCollateralAddressRequest {\n const message = createBaseQueryGetGuildByBankCollateralAddressRequest();\n message.address = object.address ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetGuildMembershipApplicationRequest(): QueryGetGuildMembershipApplicationRequest {\n return { guildId: \"\", playerId: \"\" };\n}\n\nexport const QueryGetGuildMembershipApplicationRequest: MessageFns = {\n encode(message: QueryGetGuildMembershipApplicationRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.guildId !== \"\") {\n writer.uint32(10).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(18).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetGuildMembershipApplicationRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetGuildMembershipApplicationRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetGuildMembershipApplicationRequest {\n return {\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: QueryGetGuildMembershipApplicationRequest): unknown {\n const obj: any = {};\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryGetGuildMembershipApplicationRequest {\n return QueryGetGuildMembershipApplicationRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetGuildMembershipApplicationRequest {\n const message = createBaseQueryGetGuildMembershipApplicationRequest();\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetGuildMembershipApplicationResponse(): QueryGetGuildMembershipApplicationResponse {\n return { GuildMembershipApplication: undefined };\n}\n\nexport const QueryGetGuildMembershipApplicationResponse: MessageFns = {\n encode(message: QueryGetGuildMembershipApplicationResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.GuildMembershipApplication !== undefined) {\n GuildMembershipApplication.encode(message.GuildMembershipApplication, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetGuildMembershipApplicationResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetGuildMembershipApplicationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.GuildMembershipApplication = GuildMembershipApplication.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetGuildMembershipApplicationResponse {\n return {\n GuildMembershipApplication: isSet(object.GuildMembershipApplication)\n ? GuildMembershipApplication.fromJSON(object.GuildMembershipApplication)\n : undefined,\n };\n },\n\n toJSON(message: QueryGetGuildMembershipApplicationResponse): unknown {\n const obj: any = {};\n if (message.GuildMembershipApplication !== undefined) {\n obj.GuildMembershipApplication = GuildMembershipApplication.toJSON(message.GuildMembershipApplication);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryGetGuildMembershipApplicationResponse {\n return QueryGetGuildMembershipApplicationResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetGuildMembershipApplicationResponse {\n const message = createBaseQueryGetGuildMembershipApplicationResponse();\n message.GuildMembershipApplication =\n (object.GuildMembershipApplication !== undefined && object.GuildMembershipApplication !== null)\n ? GuildMembershipApplication.fromPartial(object.GuildMembershipApplication)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllGuildMembershipApplicationRequest(): QueryAllGuildMembershipApplicationRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllGuildMembershipApplicationRequest: MessageFns = {\n encode(message: QueryAllGuildMembershipApplicationRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllGuildMembershipApplicationRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllGuildMembershipApplicationRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllGuildMembershipApplicationRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllGuildMembershipApplicationRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllGuildMembershipApplicationRequest {\n return QueryAllGuildMembershipApplicationRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllGuildMembershipApplicationRequest {\n const message = createBaseQueryAllGuildMembershipApplicationRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllGuildMembershipApplicationResponse(): QueryAllGuildMembershipApplicationResponse {\n return { GuildMembershipApplication: [], pagination: undefined };\n}\n\nexport const QueryAllGuildMembershipApplicationResponse: MessageFns = {\n encode(message: QueryAllGuildMembershipApplicationResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.GuildMembershipApplication) {\n GuildMembershipApplication.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllGuildMembershipApplicationResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllGuildMembershipApplicationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.GuildMembershipApplication.push(GuildMembershipApplication.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllGuildMembershipApplicationResponse {\n return {\n GuildMembershipApplication: globalThis.Array.isArray(object?.GuildMembershipApplication)\n ? object.GuildMembershipApplication.map((e: any) => GuildMembershipApplication.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllGuildMembershipApplicationResponse): unknown {\n const obj: any = {};\n if (message.GuildMembershipApplication?.length) {\n obj.GuildMembershipApplication = message.GuildMembershipApplication.map((e) =>\n GuildMembershipApplication.toJSON(e)\n );\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllGuildMembershipApplicationResponse {\n return QueryAllGuildMembershipApplicationResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllGuildMembershipApplicationResponse {\n const message = createBaseQueryAllGuildMembershipApplicationResponse();\n message.GuildMembershipApplication =\n object.GuildMembershipApplication?.map((e) => GuildMembershipApplication.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetInfusionRequest(): QueryGetInfusionRequest {\n return { destinationId: \"\", address: \"\" };\n}\n\nexport const QueryGetInfusionRequest: MessageFns = {\n encode(message: QueryGetInfusionRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.destinationId !== \"\") {\n writer.uint32(10).string(message.destinationId);\n }\n if (message.address !== \"\") {\n writer.uint32(18).string(message.address);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetInfusionRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetInfusionRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.destinationId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetInfusionRequest {\n return {\n destinationId: isSet(object.destinationId) ? globalThis.String(object.destinationId) : \"\",\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n };\n },\n\n toJSON(message: QueryGetInfusionRequest): unknown {\n const obj: any = {};\n if (message.destinationId !== \"\") {\n obj.destinationId = message.destinationId;\n }\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetInfusionRequest {\n return QueryGetInfusionRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetInfusionRequest {\n const message = createBaseQueryGetInfusionRequest();\n message.destinationId = object.destinationId ?? \"\";\n message.address = object.address ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetInfusionResponse(): QueryGetInfusionResponse {\n return { Infusion: undefined };\n}\n\nexport const QueryGetInfusionResponse: MessageFns = {\n encode(message: QueryGetInfusionResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.Infusion !== undefined) {\n Infusion.encode(message.Infusion, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetInfusionResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetInfusionResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Infusion = Infusion.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetInfusionResponse {\n return { Infusion: isSet(object.Infusion) ? Infusion.fromJSON(object.Infusion) : undefined };\n },\n\n toJSON(message: QueryGetInfusionResponse): unknown {\n const obj: any = {};\n if (message.Infusion !== undefined) {\n obj.Infusion = Infusion.toJSON(message.Infusion);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetInfusionResponse {\n return QueryGetInfusionResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetInfusionResponse {\n const message = createBaseQueryGetInfusionResponse();\n message.Infusion = (object.Infusion !== undefined && object.Infusion !== null)\n ? Infusion.fromPartial(object.Infusion)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllInfusionByDestinationRequest(): QueryAllInfusionByDestinationRequest {\n return { destinationId: \"\", pagination: undefined };\n}\n\nexport const QueryAllInfusionByDestinationRequest: MessageFns = {\n encode(message: QueryAllInfusionByDestinationRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.destinationId !== \"\") {\n writer.uint32(10).string(message.destinationId);\n }\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllInfusionByDestinationRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllInfusionByDestinationRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.destinationId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllInfusionByDestinationRequest {\n return {\n destinationId: isSet(object.destinationId) ? globalThis.String(object.destinationId) : \"\",\n pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllInfusionByDestinationRequest): unknown {\n const obj: any = {};\n if (message.destinationId !== \"\") {\n obj.destinationId = message.destinationId;\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllInfusionByDestinationRequest {\n return QueryAllInfusionByDestinationRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllInfusionByDestinationRequest {\n const message = createBaseQueryAllInfusionByDestinationRequest();\n message.destinationId = object.destinationId ?? \"\";\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllInfusionRequest(): QueryAllInfusionRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllInfusionRequest: MessageFns = {\n encode(message: QueryAllInfusionRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllInfusionRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllInfusionRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllInfusionRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllInfusionRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllInfusionRequest {\n return QueryAllInfusionRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllInfusionRequest {\n const message = createBaseQueryAllInfusionRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllInfusionResponse(): QueryAllInfusionResponse {\n return { Infusion: [], pagination: undefined, status: [] };\n}\n\nexport const QueryAllInfusionResponse: MessageFns = {\n encode(message: QueryAllInfusionResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.Infusion) {\n Infusion.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n writer.uint32(26).fork();\n for (const v of message.status) {\n writer.uint64(v);\n }\n writer.join();\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllInfusionResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllInfusionResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Infusion.push(Infusion.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n case 3: {\n if (tag === 24) {\n message.status.push(longToNumber(reader.uint64()));\n\n continue;\n }\n\n if (tag === 26) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.status.push(longToNumber(reader.uint64()));\n }\n\n continue;\n }\n\n break;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllInfusionResponse {\n return {\n Infusion: globalThis.Array.isArray(object?.Infusion) ? object.Infusion.map((e: any) => Infusion.fromJSON(e)) : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n status: globalThis.Array.isArray(object?.status) ? object.status.map((e: any) => globalThis.Number(e)) : [],\n };\n },\n\n toJSON(message: QueryAllInfusionResponse): unknown {\n const obj: any = {};\n if (message.Infusion?.length) {\n obj.Infusion = message.Infusion.map((e) => Infusion.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n if (message.status?.length) {\n obj.status = message.status.map((e) => Math.round(e));\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllInfusionResponse {\n return QueryAllInfusionResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllInfusionResponse {\n const message = createBaseQueryAllInfusionResponse();\n message.Infusion = object.Infusion?.map((e) => Infusion.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n message.status = object.status?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseQueryGetPermissionRequest(): QueryGetPermissionRequest {\n return { permissionId: \"\" };\n}\n\nexport const QueryGetPermissionRequest: MessageFns = {\n encode(message: QueryGetPermissionRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.permissionId !== \"\") {\n writer.uint32(10).string(message.permissionId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetPermissionRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetPermissionRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.permissionId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetPermissionRequest {\n return { permissionId: isSet(object.permissionId) ? globalThis.String(object.permissionId) : \"\" };\n },\n\n toJSON(message: QueryGetPermissionRequest): unknown {\n const obj: any = {};\n if (message.permissionId !== \"\") {\n obj.permissionId = message.permissionId;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetPermissionRequest {\n return QueryGetPermissionRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetPermissionRequest {\n const message = createBaseQueryGetPermissionRequest();\n message.permissionId = object.permissionId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryAllPermissionByObjectRequest(): QueryAllPermissionByObjectRequest {\n return { objectId: \"\", pagination: undefined };\n}\n\nexport const QueryAllPermissionByObjectRequest: MessageFns = {\n encode(message: QueryAllPermissionByObjectRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.objectId !== \"\") {\n writer.uint32(10).string(message.objectId);\n }\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPermissionByObjectRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPermissionByObjectRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.objectId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPermissionByObjectRequest {\n return {\n objectId: isSet(object.objectId) ? globalThis.String(object.objectId) : \"\",\n pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllPermissionByObjectRequest): unknown {\n const obj: any = {};\n if (message.objectId !== \"\") {\n obj.objectId = message.objectId;\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllPermissionByObjectRequest {\n return QueryAllPermissionByObjectRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllPermissionByObjectRequest {\n const message = createBaseQueryAllPermissionByObjectRequest();\n message.objectId = object.objectId ?? \"\";\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllPermissionByPlayerRequest(): QueryAllPermissionByPlayerRequest {\n return { playerId: \"\", pagination: undefined };\n}\n\nexport const QueryAllPermissionByPlayerRequest: MessageFns = {\n encode(message: QueryAllPermissionByPlayerRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.playerId !== \"\") {\n writer.uint32(10).string(message.playerId);\n }\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPermissionByPlayerRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPermissionByPlayerRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPermissionByPlayerRequest {\n return {\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllPermissionByPlayerRequest): unknown {\n const obj: any = {};\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllPermissionByPlayerRequest {\n return QueryAllPermissionByPlayerRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllPermissionByPlayerRequest {\n const message = createBaseQueryAllPermissionByPlayerRequest();\n message.playerId = object.playerId ?? \"\";\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllPermissionRequest(): QueryAllPermissionRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllPermissionRequest: MessageFns = {\n encode(message: QueryAllPermissionRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPermissionRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPermissionRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPermissionRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllPermissionRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllPermissionRequest {\n return QueryAllPermissionRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllPermissionRequest {\n const message = createBaseQueryAllPermissionRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetPermissionResponse(): QueryGetPermissionResponse {\n return { permissionRecord: undefined };\n}\n\nexport const QueryGetPermissionResponse: MessageFns = {\n encode(message: QueryGetPermissionResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.permissionRecord !== undefined) {\n PermissionRecord.encode(message.permissionRecord, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetPermissionResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetPermissionResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.permissionRecord = PermissionRecord.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetPermissionResponse {\n return {\n permissionRecord: isSet(object.permissionRecord) ? PermissionRecord.fromJSON(object.permissionRecord) : undefined,\n };\n },\n\n toJSON(message: QueryGetPermissionResponse): unknown {\n const obj: any = {};\n if (message.permissionRecord !== undefined) {\n obj.permissionRecord = PermissionRecord.toJSON(message.permissionRecord);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetPermissionResponse {\n return QueryGetPermissionResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetPermissionResponse {\n const message = createBaseQueryGetPermissionResponse();\n message.permissionRecord = (object.permissionRecord !== undefined && object.permissionRecord !== null)\n ? PermissionRecord.fromPartial(object.permissionRecord)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllPermissionResponse(): QueryAllPermissionResponse {\n return { permissionRecords: [], pagination: undefined };\n}\n\nexport const QueryAllPermissionResponse: MessageFns = {\n encode(message: QueryAllPermissionResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.permissionRecords) {\n PermissionRecord.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPermissionResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPermissionResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.permissionRecords.push(PermissionRecord.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPermissionResponse {\n return {\n permissionRecords: globalThis.Array.isArray(object?.permissionRecords)\n ? object.permissionRecords.map((e: any) => PermissionRecord.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllPermissionResponse): unknown {\n const obj: any = {};\n if (message.permissionRecords?.length) {\n obj.permissionRecords = message.permissionRecords.map((e) => PermissionRecord.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllPermissionResponse {\n return QueryAllPermissionResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllPermissionResponse {\n const message = createBaseQueryAllPermissionResponse();\n message.permissionRecords = object.permissionRecords?.map((e) => PermissionRecord.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetPlanetRequest(): QueryGetPlanetRequest {\n return { id: \"\" };\n}\n\nexport const QueryGetPlanetRequest: MessageFns = {\n encode(message: QueryGetPlanetRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetPlanetRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetPlanetRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetPlanetRequest {\n return { id: isSet(object.id) ? globalThis.String(object.id) : \"\" };\n },\n\n toJSON(message: QueryGetPlanetRequest): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetPlanetRequest {\n return QueryGetPlanetRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetPlanetRequest {\n const message = createBaseQueryGetPlanetRequest();\n message.id = object.id ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetPlanetResponse(): QueryGetPlanetResponse {\n return { Planet: undefined, gridAttributes: undefined, planetAttributes: undefined };\n}\n\nexport const QueryGetPlanetResponse: MessageFns = {\n encode(message: QueryGetPlanetResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.Planet !== undefined) {\n Planet.encode(message.Planet, writer.uint32(10).fork()).join();\n }\n if (message.gridAttributes !== undefined) {\n GridAttributes.encode(message.gridAttributes, writer.uint32(18).fork()).join();\n }\n if (message.planetAttributes !== undefined) {\n PlanetAttributes.encode(message.planetAttributes, writer.uint32(26).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetPlanetResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetPlanetResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Planet = Planet.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.gridAttributes = GridAttributes.decode(reader, reader.uint32());\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.planetAttributes = PlanetAttributes.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetPlanetResponse {\n return {\n Planet: isSet(object.Planet) ? Planet.fromJSON(object.Planet) : undefined,\n gridAttributes: isSet(object.gridAttributes) ? GridAttributes.fromJSON(object.gridAttributes) : undefined,\n planetAttributes: isSet(object.planetAttributes) ? PlanetAttributes.fromJSON(object.planetAttributes) : undefined,\n };\n },\n\n toJSON(message: QueryGetPlanetResponse): unknown {\n const obj: any = {};\n if (message.Planet !== undefined) {\n obj.Planet = Planet.toJSON(message.Planet);\n }\n if (message.gridAttributes !== undefined) {\n obj.gridAttributes = GridAttributes.toJSON(message.gridAttributes);\n }\n if (message.planetAttributes !== undefined) {\n obj.planetAttributes = PlanetAttributes.toJSON(message.planetAttributes);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetPlanetResponse {\n return QueryGetPlanetResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetPlanetResponse {\n const message = createBaseQueryGetPlanetResponse();\n message.Planet = (object.Planet !== undefined && object.Planet !== null)\n ? Planet.fromPartial(object.Planet)\n : undefined;\n message.gridAttributes = (object.gridAttributes !== undefined && object.gridAttributes !== null)\n ? GridAttributes.fromPartial(object.gridAttributes)\n : undefined;\n message.planetAttributes = (object.planetAttributes !== undefined && object.planetAttributes !== null)\n ? PlanetAttributes.fromPartial(object.planetAttributes)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllPlanetRequest(): QueryAllPlanetRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllPlanetRequest: MessageFns = {\n encode(message: QueryAllPlanetRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPlanetRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPlanetRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPlanetRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllPlanetRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllPlanetRequest {\n return QueryAllPlanetRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllPlanetRequest {\n const message = createBaseQueryAllPlanetRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllPlanetByPlayerRequest(): QueryAllPlanetByPlayerRequest {\n return { playerId: \"\", pagination: undefined };\n}\n\nexport const QueryAllPlanetByPlayerRequest: MessageFns = {\n encode(message: QueryAllPlanetByPlayerRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.playerId !== \"\") {\n writer.uint32(10).string(message.playerId);\n }\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPlanetByPlayerRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPlanetByPlayerRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPlanetByPlayerRequest {\n return {\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllPlanetByPlayerRequest): unknown {\n const obj: any = {};\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllPlanetByPlayerRequest {\n return QueryAllPlanetByPlayerRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllPlanetByPlayerRequest {\n const message = createBaseQueryAllPlanetByPlayerRequest();\n message.playerId = object.playerId ?? \"\";\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllPlanetResponse(): QueryAllPlanetResponse {\n return { Planet: [], pagination: undefined };\n}\n\nexport const QueryAllPlanetResponse: MessageFns = {\n encode(message: QueryAllPlanetResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.Planet) {\n Planet.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPlanetResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPlanetResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Planet.push(Planet.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPlanetResponse {\n return {\n Planet: globalThis.Array.isArray(object?.Planet) ? object.Planet.map((e: any) => Planet.fromJSON(e)) : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllPlanetResponse): unknown {\n const obj: any = {};\n if (message.Planet?.length) {\n obj.Planet = message.Planet.map((e) => Planet.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllPlanetResponse {\n return QueryAllPlanetResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllPlanetResponse {\n const message = createBaseQueryAllPlanetResponse();\n message.Planet = object.Planet?.map((e) => Planet.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetPlanetAttributeRequest(): QueryGetPlanetAttributeRequest {\n return { planetId: \"\", attributeType: \"\" };\n}\n\nexport const QueryGetPlanetAttributeRequest: MessageFns = {\n encode(message: QueryGetPlanetAttributeRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.planetId !== \"\") {\n writer.uint32(10).string(message.planetId);\n }\n if (message.attributeType !== \"\") {\n writer.uint32(18).string(message.attributeType);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetPlanetAttributeRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetPlanetAttributeRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.planetId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.attributeType = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetPlanetAttributeRequest {\n return {\n planetId: isSet(object.planetId) ? globalThis.String(object.planetId) : \"\",\n attributeType: isSet(object.attributeType) ? globalThis.String(object.attributeType) : \"\",\n };\n },\n\n toJSON(message: QueryGetPlanetAttributeRequest): unknown {\n const obj: any = {};\n if (message.planetId !== \"\") {\n obj.planetId = message.planetId;\n }\n if (message.attributeType !== \"\") {\n obj.attributeType = message.attributeType;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetPlanetAttributeRequest {\n return QueryGetPlanetAttributeRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetPlanetAttributeRequest {\n const message = createBaseQueryGetPlanetAttributeRequest();\n message.planetId = object.planetId ?? \"\";\n message.attributeType = object.attributeType ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetPlanetAttributeResponse(): QueryGetPlanetAttributeResponse {\n return { attribute: 0 };\n}\n\nexport const QueryGetPlanetAttributeResponse: MessageFns = {\n encode(message: QueryGetPlanetAttributeResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.attribute !== 0) {\n writer.uint32(8).uint64(message.attribute);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetPlanetAttributeResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetPlanetAttributeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.attribute = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetPlanetAttributeResponse {\n return { attribute: isSet(object.attribute) ? globalThis.Number(object.attribute) : 0 };\n },\n\n toJSON(message: QueryGetPlanetAttributeResponse): unknown {\n const obj: any = {};\n if (message.attribute !== 0) {\n obj.attribute = Math.round(message.attribute);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetPlanetAttributeResponse {\n return QueryGetPlanetAttributeResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetPlanetAttributeResponse {\n const message = createBaseQueryGetPlanetAttributeResponse();\n message.attribute = object.attribute ?? 0;\n return message;\n },\n};\n\nfunction createBaseQueryAllPlanetAttributeRequest(): QueryAllPlanetAttributeRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllPlanetAttributeRequest: MessageFns = {\n encode(message: QueryAllPlanetAttributeRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPlanetAttributeRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPlanetAttributeRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPlanetAttributeRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllPlanetAttributeRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllPlanetAttributeRequest {\n return QueryAllPlanetAttributeRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllPlanetAttributeRequest {\n const message = createBaseQueryAllPlanetAttributeRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllPlanetAttributeResponse(): QueryAllPlanetAttributeResponse {\n return { planetAttributeRecords: [], pagination: undefined };\n}\n\nexport const QueryAllPlanetAttributeResponse: MessageFns = {\n encode(message: QueryAllPlanetAttributeResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.planetAttributeRecords) {\n PlanetAttributeRecord.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPlanetAttributeResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPlanetAttributeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.planetAttributeRecords.push(PlanetAttributeRecord.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPlanetAttributeResponse {\n return {\n planetAttributeRecords: globalThis.Array.isArray(object?.planetAttributeRecords)\n ? object.planetAttributeRecords.map((e: any) => PlanetAttributeRecord.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllPlanetAttributeResponse): unknown {\n const obj: any = {};\n if (message.planetAttributeRecords?.length) {\n obj.planetAttributeRecords = message.planetAttributeRecords.map((e) => PlanetAttributeRecord.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllPlanetAttributeResponse {\n return QueryAllPlanetAttributeResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllPlanetAttributeResponse {\n const message = createBaseQueryAllPlanetAttributeResponse();\n message.planetAttributeRecords = object.planetAttributeRecords?.map((e) => PlanetAttributeRecord.fromPartial(e)) ||\n [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetPlayerRequest(): QueryGetPlayerRequest {\n return { id: \"\" };\n}\n\nexport const QueryGetPlayerRequest: MessageFns = {\n encode(message: QueryGetPlayerRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetPlayerRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetPlayerRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetPlayerRequest {\n return { id: isSet(object.id) ? globalThis.String(object.id) : \"\" };\n },\n\n toJSON(message: QueryGetPlayerRequest): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetPlayerRequest {\n return QueryGetPlayerRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetPlayerRequest {\n const message = createBaseQueryGetPlayerRequest();\n message.id = object.id ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetPlayerResponse(): QueryGetPlayerResponse {\n return { Player: undefined, gridAttributes: undefined, playerInventory: undefined, halted: false };\n}\n\nexport const QueryGetPlayerResponse: MessageFns = {\n encode(message: QueryGetPlayerResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.Player !== undefined) {\n Player.encode(message.Player, writer.uint32(10).fork()).join();\n }\n if (message.gridAttributes !== undefined) {\n GridAttributes.encode(message.gridAttributes, writer.uint32(18).fork()).join();\n }\n if (message.playerInventory !== undefined) {\n PlayerInventory.encode(message.playerInventory, writer.uint32(26).fork()).join();\n }\n if (message.halted !== false) {\n writer.uint32(32).bool(message.halted);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetPlayerResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetPlayerResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Player = Player.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.gridAttributes = GridAttributes.decode(reader, reader.uint32());\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerInventory = PlayerInventory.decode(reader, reader.uint32());\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.halted = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetPlayerResponse {\n return {\n Player: isSet(object.Player) ? Player.fromJSON(object.Player) : undefined,\n gridAttributes: isSet(object.gridAttributes) ? GridAttributes.fromJSON(object.gridAttributes) : undefined,\n playerInventory: isSet(object.playerInventory) ? PlayerInventory.fromJSON(object.playerInventory) : undefined,\n halted: isSet(object.halted) ? globalThis.Boolean(object.halted) : false,\n };\n },\n\n toJSON(message: QueryGetPlayerResponse): unknown {\n const obj: any = {};\n if (message.Player !== undefined) {\n obj.Player = Player.toJSON(message.Player);\n }\n if (message.gridAttributes !== undefined) {\n obj.gridAttributes = GridAttributes.toJSON(message.gridAttributes);\n }\n if (message.playerInventory !== undefined) {\n obj.playerInventory = PlayerInventory.toJSON(message.playerInventory);\n }\n if (message.halted !== false) {\n obj.halted = message.halted;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetPlayerResponse {\n return QueryGetPlayerResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetPlayerResponse {\n const message = createBaseQueryGetPlayerResponse();\n message.Player = (object.Player !== undefined && object.Player !== null)\n ? Player.fromPartial(object.Player)\n : undefined;\n message.gridAttributes = (object.gridAttributes !== undefined && object.gridAttributes !== null)\n ? GridAttributes.fromPartial(object.gridAttributes)\n : undefined;\n message.playerInventory = (object.playerInventory !== undefined && object.playerInventory !== null)\n ? PlayerInventory.fromPartial(object.playerInventory)\n : undefined;\n message.halted = object.halted ?? false;\n return message;\n },\n};\n\nfunction createBaseQueryAllPlayerRequest(): QueryAllPlayerRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllPlayerRequest: MessageFns = {\n encode(message: QueryAllPlayerRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPlayerRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPlayerRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPlayerRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllPlayerRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllPlayerRequest {\n return QueryAllPlayerRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllPlayerRequest {\n const message = createBaseQueryAllPlayerRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllPlayerResponse(): QueryAllPlayerResponse {\n return { Player: [], pagination: undefined };\n}\n\nexport const QueryAllPlayerResponse: MessageFns = {\n encode(message: QueryAllPlayerResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.Player) {\n Player.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPlayerResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPlayerResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Player.push(Player.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPlayerResponse {\n return {\n Player: globalThis.Array.isArray(object?.Player) ? object.Player.map((e: any) => Player.fromJSON(e)) : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllPlayerResponse): unknown {\n const obj: any = {};\n if (message.Player?.length) {\n obj.Player = message.Player.map((e) => Player.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllPlayerResponse {\n return QueryAllPlayerResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllPlayerResponse {\n const message = createBaseQueryAllPlayerResponse();\n message.Player = object.Player?.map((e) => Player.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllPlayerHaltedRequest(): QueryAllPlayerHaltedRequest {\n return {};\n}\n\nexport const QueryAllPlayerHaltedRequest: MessageFns = {\n encode(_: QueryAllPlayerHaltedRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPlayerHaltedRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPlayerHaltedRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): QueryAllPlayerHaltedRequest {\n return {};\n },\n\n toJSON(_: QueryAllPlayerHaltedRequest): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): QueryAllPlayerHaltedRequest {\n return QueryAllPlayerHaltedRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): QueryAllPlayerHaltedRequest {\n const message = createBaseQueryAllPlayerHaltedRequest();\n return message;\n },\n};\n\nfunction createBaseQueryAllPlayerHaltedResponse(): QueryAllPlayerHaltedResponse {\n return { PlayerId: [] };\n}\n\nexport const QueryAllPlayerHaltedResponse: MessageFns = {\n encode(message: QueryAllPlayerHaltedResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.PlayerId) {\n writer.uint32(10).string(v!);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPlayerHaltedResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPlayerHaltedResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.PlayerId.push(reader.string());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPlayerHaltedResponse {\n return {\n PlayerId: globalThis.Array.isArray(object?.PlayerId) ? object.PlayerId.map((e: any) => globalThis.String(e)) : [],\n };\n },\n\n toJSON(message: QueryAllPlayerHaltedResponse): unknown {\n const obj: any = {};\n if (message.PlayerId?.length) {\n obj.PlayerId = message.PlayerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllPlayerHaltedResponse {\n return QueryAllPlayerHaltedResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllPlayerHaltedResponse {\n const message = createBaseQueryAllPlayerHaltedResponse();\n message.PlayerId = object.PlayerId?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseQueryGetProviderRequest(): QueryGetProviderRequest {\n return { id: \"\" };\n}\n\nexport const QueryGetProviderRequest: MessageFns = {\n encode(message: QueryGetProviderRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetProviderRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetProviderRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetProviderRequest {\n return { id: isSet(object.id) ? globalThis.String(object.id) : \"\" };\n },\n\n toJSON(message: QueryGetProviderRequest): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetProviderRequest {\n return QueryGetProviderRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetProviderRequest {\n const message = createBaseQueryGetProviderRequest();\n message.id = object.id ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetProviderResponse(): QueryGetProviderResponse {\n return { Provider: undefined, gridAttributes: undefined };\n}\n\nexport const QueryGetProviderResponse: MessageFns = {\n encode(message: QueryGetProviderResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.Provider !== undefined) {\n Provider.encode(message.Provider, writer.uint32(10).fork()).join();\n }\n if (message.gridAttributes !== undefined) {\n GridAttributes.encode(message.gridAttributes, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetProviderResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetProviderResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Provider = Provider.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.gridAttributes = GridAttributes.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetProviderResponse {\n return {\n Provider: isSet(object.Provider) ? Provider.fromJSON(object.Provider) : undefined,\n gridAttributes: isSet(object.gridAttributes) ? GridAttributes.fromJSON(object.gridAttributes) : undefined,\n };\n },\n\n toJSON(message: QueryGetProviderResponse): unknown {\n const obj: any = {};\n if (message.Provider !== undefined) {\n obj.Provider = Provider.toJSON(message.Provider);\n }\n if (message.gridAttributes !== undefined) {\n obj.gridAttributes = GridAttributes.toJSON(message.gridAttributes);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetProviderResponse {\n return QueryGetProviderResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetProviderResponse {\n const message = createBaseQueryGetProviderResponse();\n message.Provider = (object.Provider !== undefined && object.Provider !== null)\n ? Provider.fromPartial(object.Provider)\n : undefined;\n message.gridAttributes = (object.gridAttributes !== undefined && object.gridAttributes !== null)\n ? GridAttributes.fromPartial(object.gridAttributes)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllProviderRequest(): QueryAllProviderRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllProviderRequest: MessageFns = {\n encode(message: QueryAllProviderRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllProviderRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllProviderRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllProviderRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllProviderRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllProviderRequest {\n return QueryAllProviderRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllProviderRequest {\n const message = createBaseQueryAllProviderRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllProviderResponse(): QueryAllProviderResponse {\n return { Provider: [], pagination: undefined };\n}\n\nexport const QueryAllProviderResponse: MessageFns = {\n encode(message: QueryAllProviderResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.Provider) {\n Provider.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllProviderResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllProviderResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Provider.push(Provider.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllProviderResponse {\n return {\n Provider: globalThis.Array.isArray(object?.Provider) ? object.Provider.map((e: any) => Provider.fromJSON(e)) : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllProviderResponse): unknown {\n const obj: any = {};\n if (message.Provider?.length) {\n obj.Provider = message.Provider.map((e) => Provider.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllProviderResponse {\n return QueryAllProviderResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllProviderResponse {\n const message = createBaseQueryAllProviderResponse();\n message.Provider = object.Provider?.map((e) => Provider.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetProviderCollateralAddressRequest(): QueryGetProviderCollateralAddressRequest {\n return { providerId: \"\" };\n}\n\nexport const QueryGetProviderCollateralAddressRequest: MessageFns = {\n encode(message: QueryGetProviderCollateralAddressRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.providerId !== \"\") {\n writer.uint32(10).string(message.providerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetProviderCollateralAddressRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetProviderCollateralAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetProviderCollateralAddressRequest {\n return { providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\" };\n },\n\n toJSON(message: QueryGetProviderCollateralAddressRequest): unknown {\n const obj: any = {};\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryGetProviderCollateralAddressRequest {\n return QueryGetProviderCollateralAddressRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetProviderCollateralAddressRequest {\n const message = createBaseQueryGetProviderCollateralAddressRequest();\n message.providerId = object.providerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryAllProviderCollateralAddressRequest(): QueryAllProviderCollateralAddressRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllProviderCollateralAddressRequest: MessageFns = {\n encode(message: QueryAllProviderCollateralAddressRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllProviderCollateralAddressRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllProviderCollateralAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllProviderCollateralAddressRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllProviderCollateralAddressRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllProviderCollateralAddressRequest {\n return QueryAllProviderCollateralAddressRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllProviderCollateralAddressRequest {\n const message = createBaseQueryAllProviderCollateralAddressRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllProviderCollateralAddressResponse(): QueryAllProviderCollateralAddressResponse {\n return { internalAddressAssociation: [], pagination: undefined };\n}\n\nexport const QueryAllProviderCollateralAddressResponse: MessageFns = {\n encode(message: QueryAllProviderCollateralAddressResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.internalAddressAssociation) {\n InternalAddressAssociation.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllProviderCollateralAddressResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllProviderCollateralAddressResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.internalAddressAssociation.push(InternalAddressAssociation.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllProviderCollateralAddressResponse {\n return {\n internalAddressAssociation: globalThis.Array.isArray(object?.internalAddressAssociation)\n ? object.internalAddressAssociation.map((e: any) => InternalAddressAssociation.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllProviderCollateralAddressResponse): unknown {\n const obj: any = {};\n if (message.internalAddressAssociation?.length) {\n obj.internalAddressAssociation = message.internalAddressAssociation.map((e) =>\n InternalAddressAssociation.toJSON(e)\n );\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllProviderCollateralAddressResponse {\n return QueryAllProviderCollateralAddressResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllProviderCollateralAddressResponse {\n const message = createBaseQueryAllProviderCollateralAddressResponse();\n message.internalAddressAssociation =\n object.internalAddressAssociation?.map((e) => InternalAddressAssociation.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetProviderByCollateralAddressRequest(): QueryGetProviderByCollateralAddressRequest {\n return { address: \"\" };\n}\n\nexport const QueryGetProviderByCollateralAddressRequest: MessageFns = {\n encode(message: QueryGetProviderByCollateralAddressRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetProviderByCollateralAddressRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetProviderByCollateralAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetProviderByCollateralAddressRequest {\n return { address: isSet(object.address) ? globalThis.String(object.address) : \"\" };\n },\n\n toJSON(message: QueryGetProviderByCollateralAddressRequest): unknown {\n const obj: any = {};\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryGetProviderByCollateralAddressRequest {\n return QueryGetProviderByCollateralAddressRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetProviderByCollateralAddressRequest {\n const message = createBaseQueryGetProviderByCollateralAddressRequest();\n message.address = object.address ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetProviderEarningsAddressRequest(): QueryGetProviderEarningsAddressRequest {\n return { providerId: \"\" };\n}\n\nexport const QueryGetProviderEarningsAddressRequest: MessageFns = {\n encode(message: QueryGetProviderEarningsAddressRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.providerId !== \"\") {\n writer.uint32(10).string(message.providerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetProviderEarningsAddressRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetProviderEarningsAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetProviderEarningsAddressRequest {\n return { providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\" };\n },\n\n toJSON(message: QueryGetProviderEarningsAddressRequest): unknown {\n const obj: any = {};\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryGetProviderEarningsAddressRequest {\n return QueryGetProviderEarningsAddressRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetProviderEarningsAddressRequest {\n const message = createBaseQueryGetProviderEarningsAddressRequest();\n message.providerId = object.providerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryAllProviderEarningsAddressRequest(): QueryAllProviderEarningsAddressRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllProviderEarningsAddressRequest: MessageFns = {\n encode(message: QueryAllProviderEarningsAddressRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllProviderEarningsAddressRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllProviderEarningsAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllProviderEarningsAddressRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllProviderEarningsAddressRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllProviderEarningsAddressRequest {\n return QueryAllProviderEarningsAddressRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllProviderEarningsAddressRequest {\n const message = createBaseQueryAllProviderEarningsAddressRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllProviderEarningsAddressResponse(): QueryAllProviderEarningsAddressResponse {\n return { internalAddressAssociation: [], pagination: undefined };\n}\n\nexport const QueryAllProviderEarningsAddressResponse: MessageFns = {\n encode(message: QueryAllProviderEarningsAddressResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.internalAddressAssociation) {\n InternalAddressAssociation.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllProviderEarningsAddressResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllProviderEarningsAddressResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.internalAddressAssociation.push(InternalAddressAssociation.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllProviderEarningsAddressResponse {\n return {\n internalAddressAssociation: globalThis.Array.isArray(object?.internalAddressAssociation)\n ? object.internalAddressAssociation.map((e: any) => InternalAddressAssociation.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllProviderEarningsAddressResponse): unknown {\n const obj: any = {};\n if (message.internalAddressAssociation?.length) {\n obj.internalAddressAssociation = message.internalAddressAssociation.map((e) =>\n InternalAddressAssociation.toJSON(e)\n );\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllProviderEarningsAddressResponse {\n return QueryAllProviderEarningsAddressResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllProviderEarningsAddressResponse {\n const message = createBaseQueryAllProviderEarningsAddressResponse();\n message.internalAddressAssociation =\n object.internalAddressAssociation?.map((e) => InternalAddressAssociation.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetProviderByEarningsAddressRequest(): QueryGetProviderByEarningsAddressRequest {\n return { address: \"\" };\n}\n\nexport const QueryGetProviderByEarningsAddressRequest: MessageFns = {\n encode(message: QueryGetProviderByEarningsAddressRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetProviderByEarningsAddressRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetProviderByEarningsAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetProviderByEarningsAddressRequest {\n return { address: isSet(object.address) ? globalThis.String(object.address) : \"\" };\n },\n\n toJSON(message: QueryGetProviderByEarningsAddressRequest): unknown {\n const obj: any = {};\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryGetProviderByEarningsAddressRequest {\n return QueryGetProviderByEarningsAddressRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetProviderByEarningsAddressRequest {\n const message = createBaseQueryGetProviderByEarningsAddressRequest();\n message.address = object.address ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetReactorRequest(): QueryGetReactorRequest {\n return { id: \"\" };\n}\n\nexport const QueryGetReactorRequest: MessageFns = {\n encode(message: QueryGetReactorRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetReactorRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetReactorRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetReactorRequest {\n return { id: isSet(object.id) ? globalThis.String(object.id) : \"\" };\n },\n\n toJSON(message: QueryGetReactorRequest): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetReactorRequest {\n return QueryGetReactorRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetReactorRequest {\n const message = createBaseQueryGetReactorRequest();\n message.id = object.id ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetReactorResponse(): QueryGetReactorResponse {\n return { Reactor: undefined, gridAttributes: undefined };\n}\n\nexport const QueryGetReactorResponse: MessageFns = {\n encode(message: QueryGetReactorResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.Reactor !== undefined) {\n Reactor.encode(message.Reactor, writer.uint32(10).fork()).join();\n }\n if (message.gridAttributes !== undefined) {\n GridAttributes.encode(message.gridAttributes, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetReactorResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetReactorResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Reactor = Reactor.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.gridAttributes = GridAttributes.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetReactorResponse {\n return {\n Reactor: isSet(object.Reactor) ? Reactor.fromJSON(object.Reactor) : undefined,\n gridAttributes: isSet(object.gridAttributes) ? GridAttributes.fromJSON(object.gridAttributes) : undefined,\n };\n },\n\n toJSON(message: QueryGetReactorResponse): unknown {\n const obj: any = {};\n if (message.Reactor !== undefined) {\n obj.Reactor = Reactor.toJSON(message.Reactor);\n }\n if (message.gridAttributes !== undefined) {\n obj.gridAttributes = GridAttributes.toJSON(message.gridAttributes);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetReactorResponse {\n return QueryGetReactorResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetReactorResponse {\n const message = createBaseQueryGetReactorResponse();\n message.Reactor = (object.Reactor !== undefined && object.Reactor !== null)\n ? Reactor.fromPartial(object.Reactor)\n : undefined;\n message.gridAttributes = (object.gridAttributes !== undefined && object.gridAttributes !== null)\n ? GridAttributes.fromPartial(object.gridAttributes)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllReactorRequest(): QueryAllReactorRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllReactorRequest: MessageFns = {\n encode(message: QueryAllReactorRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllReactorRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllReactorRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllReactorRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllReactorRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllReactorRequest {\n return QueryAllReactorRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllReactorRequest {\n const message = createBaseQueryAllReactorRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllReactorResponse(): QueryAllReactorResponse {\n return { Reactor: [], pagination: undefined };\n}\n\nexport const QueryAllReactorResponse: MessageFns = {\n encode(message: QueryAllReactorResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.Reactor) {\n Reactor.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllReactorResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllReactorResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Reactor.push(Reactor.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllReactorResponse {\n return {\n Reactor: globalThis.Array.isArray(object?.Reactor) ? object.Reactor.map((e: any) => Reactor.fromJSON(e)) : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllReactorResponse): unknown {\n const obj: any = {};\n if (message.Reactor?.length) {\n obj.Reactor = message.Reactor.map((e) => Reactor.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllReactorResponse {\n return QueryAllReactorResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllReactorResponse {\n const message = createBaseQueryAllReactorResponse();\n message.Reactor = object.Reactor?.map((e) => Reactor.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetStructRequest(): QueryGetStructRequest {\n return { id: \"\" };\n}\n\nexport const QueryGetStructRequest: MessageFns = {\n encode(message: QueryGetStructRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetStructRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetStructRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetStructRequest {\n return { id: isSet(object.id) ? globalThis.String(object.id) : \"\" };\n },\n\n toJSON(message: QueryGetStructRequest): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetStructRequest {\n return QueryGetStructRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetStructRequest {\n const message = createBaseQueryGetStructRequest();\n message.id = object.id ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetStructResponse(): QueryGetStructResponse {\n return { Struct: undefined, structAttributes: undefined, gridAttributes: undefined, structDefenders: [] };\n}\n\nexport const QueryGetStructResponse: MessageFns = {\n encode(message: QueryGetStructResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.Struct !== undefined) {\n Struct.encode(message.Struct, writer.uint32(10).fork()).join();\n }\n if (message.structAttributes !== undefined) {\n StructAttributes.encode(message.structAttributes, writer.uint32(18).fork()).join();\n }\n if (message.gridAttributes !== undefined) {\n GridAttributes.encode(message.gridAttributes, writer.uint32(26).fork()).join();\n }\n for (const v of message.structDefenders) {\n writer.uint32(34).string(v!);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetStructResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetStructResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Struct = Struct.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structAttributes = StructAttributes.decode(reader, reader.uint32());\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.gridAttributes = GridAttributes.decode(reader, reader.uint32());\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.structDefenders.push(reader.string());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetStructResponse {\n return {\n Struct: isSet(object.Struct) ? Struct.fromJSON(object.Struct) : undefined,\n structAttributes: isSet(object.structAttributes) ? StructAttributes.fromJSON(object.structAttributes) : undefined,\n gridAttributes: isSet(object.gridAttributes) ? GridAttributes.fromJSON(object.gridAttributes) : undefined,\n structDefenders: globalThis.Array.isArray(object?.structDefenders)\n ? object.structDefenders.map((e: any) => globalThis.String(e))\n : [],\n };\n },\n\n toJSON(message: QueryGetStructResponse): unknown {\n const obj: any = {};\n if (message.Struct !== undefined) {\n obj.Struct = Struct.toJSON(message.Struct);\n }\n if (message.structAttributes !== undefined) {\n obj.structAttributes = StructAttributes.toJSON(message.structAttributes);\n }\n if (message.gridAttributes !== undefined) {\n obj.gridAttributes = GridAttributes.toJSON(message.gridAttributes);\n }\n if (message.structDefenders?.length) {\n obj.structDefenders = message.structDefenders;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetStructResponse {\n return QueryGetStructResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetStructResponse {\n const message = createBaseQueryGetStructResponse();\n message.Struct = (object.Struct !== undefined && object.Struct !== null)\n ? Struct.fromPartial(object.Struct)\n : undefined;\n message.structAttributes = (object.structAttributes !== undefined && object.structAttributes !== null)\n ? StructAttributes.fromPartial(object.structAttributes)\n : undefined;\n message.gridAttributes = (object.gridAttributes !== undefined && object.gridAttributes !== null)\n ? GridAttributes.fromPartial(object.gridAttributes)\n : undefined;\n message.structDefenders = object.structDefenders?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseQueryAllStructRequest(): QueryAllStructRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllStructRequest: MessageFns = {\n encode(message: QueryAllStructRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllStructRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllStructRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllStructRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllStructRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllStructRequest {\n return QueryAllStructRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllStructRequest {\n const message = createBaseQueryAllStructRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllStructResponse(): QueryAllStructResponse {\n return { Struct: [], pagination: undefined };\n}\n\nexport const QueryAllStructResponse: MessageFns = {\n encode(message: QueryAllStructResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.Struct) {\n Struct.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllStructResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllStructResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Struct.push(Struct.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllStructResponse {\n return {\n Struct: globalThis.Array.isArray(object?.Struct) ? object.Struct.map((e: any) => Struct.fromJSON(e)) : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllStructResponse): unknown {\n const obj: any = {};\n if (message.Struct?.length) {\n obj.Struct = message.Struct.map((e) => Struct.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllStructResponse {\n return QueryAllStructResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllStructResponse {\n const message = createBaseQueryAllStructResponse();\n message.Struct = object.Struct?.map((e) => Struct.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetStructAttributeRequest(): QueryGetStructAttributeRequest {\n return { structId: \"\", attributeType: \"\" };\n}\n\nexport const QueryGetStructAttributeRequest: MessageFns = {\n encode(message: QueryGetStructAttributeRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.structId !== \"\") {\n writer.uint32(10).string(message.structId);\n }\n if (message.attributeType !== \"\") {\n writer.uint32(18).string(message.attributeType);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetStructAttributeRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetStructAttributeRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.attributeType = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetStructAttributeRequest {\n return {\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n attributeType: isSet(object.attributeType) ? globalThis.String(object.attributeType) : \"\",\n };\n },\n\n toJSON(message: QueryGetStructAttributeRequest): unknown {\n const obj: any = {};\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n if (message.attributeType !== \"\") {\n obj.attributeType = message.attributeType;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetStructAttributeRequest {\n return QueryGetStructAttributeRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetStructAttributeRequest {\n const message = createBaseQueryGetStructAttributeRequest();\n message.structId = object.structId ?? \"\";\n message.attributeType = object.attributeType ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetStructAttributeResponse(): QueryGetStructAttributeResponse {\n return { attribute: 0 };\n}\n\nexport const QueryGetStructAttributeResponse: MessageFns = {\n encode(message: QueryGetStructAttributeResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.attribute !== 0) {\n writer.uint32(8).uint64(message.attribute);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetStructAttributeResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetStructAttributeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.attribute = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetStructAttributeResponse {\n return { attribute: isSet(object.attribute) ? globalThis.Number(object.attribute) : 0 };\n },\n\n toJSON(message: QueryGetStructAttributeResponse): unknown {\n const obj: any = {};\n if (message.attribute !== 0) {\n obj.attribute = Math.round(message.attribute);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetStructAttributeResponse {\n return QueryGetStructAttributeResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetStructAttributeResponse {\n const message = createBaseQueryGetStructAttributeResponse();\n message.attribute = object.attribute ?? 0;\n return message;\n },\n};\n\nfunction createBaseQueryAllStructAttributeRequest(): QueryAllStructAttributeRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllStructAttributeRequest: MessageFns = {\n encode(message: QueryAllStructAttributeRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllStructAttributeRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllStructAttributeRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllStructAttributeRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllStructAttributeRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllStructAttributeRequest {\n return QueryAllStructAttributeRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllStructAttributeRequest {\n const message = createBaseQueryAllStructAttributeRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllStructAttributeResponse(): QueryAllStructAttributeResponse {\n return { structAttributeRecords: [], pagination: undefined };\n}\n\nexport const QueryAllStructAttributeResponse: MessageFns = {\n encode(message: QueryAllStructAttributeResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.structAttributeRecords) {\n StructAttributeRecord.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllStructAttributeResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllStructAttributeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.structAttributeRecords.push(StructAttributeRecord.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllStructAttributeResponse {\n return {\n structAttributeRecords: globalThis.Array.isArray(object?.structAttributeRecords)\n ? object.structAttributeRecords.map((e: any) => StructAttributeRecord.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllStructAttributeResponse): unknown {\n const obj: any = {};\n if (message.structAttributeRecords?.length) {\n obj.structAttributeRecords = message.structAttributeRecords.map((e) => StructAttributeRecord.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllStructAttributeResponse {\n return QueryAllStructAttributeResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllStructAttributeResponse {\n const message = createBaseQueryAllStructAttributeResponse();\n message.structAttributeRecords = object.structAttributeRecords?.map((e) => StructAttributeRecord.fromPartial(e)) ||\n [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetStructTypeRequest(): QueryGetStructTypeRequest {\n return { id: 0 };\n}\n\nexport const QueryGetStructTypeRequest: MessageFns = {\n encode(message: QueryGetStructTypeRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== 0) {\n writer.uint32(8).uint64(message.id);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetStructTypeRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetStructTypeRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.id = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetStructTypeRequest {\n return { id: isSet(object.id) ? globalThis.Number(object.id) : 0 };\n },\n\n toJSON(message: QueryGetStructTypeRequest): unknown {\n const obj: any = {};\n if (message.id !== 0) {\n obj.id = Math.round(message.id);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetStructTypeRequest {\n return QueryGetStructTypeRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetStructTypeRequest {\n const message = createBaseQueryGetStructTypeRequest();\n message.id = object.id ?? 0;\n return message;\n },\n};\n\nfunction createBaseQueryGetStructTypeResponse(): QueryGetStructTypeResponse {\n return { StructType: undefined };\n}\n\nexport const QueryGetStructTypeResponse: MessageFns = {\n encode(message: QueryGetStructTypeResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.StructType !== undefined) {\n StructType.encode(message.StructType, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetStructTypeResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetStructTypeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.StructType = StructType.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetStructTypeResponse {\n return { StructType: isSet(object.StructType) ? StructType.fromJSON(object.StructType) : undefined };\n },\n\n toJSON(message: QueryGetStructTypeResponse): unknown {\n const obj: any = {};\n if (message.StructType !== undefined) {\n obj.StructType = StructType.toJSON(message.StructType);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetStructTypeResponse {\n return QueryGetStructTypeResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetStructTypeResponse {\n const message = createBaseQueryGetStructTypeResponse();\n message.StructType = (object.StructType !== undefined && object.StructType !== null)\n ? StructType.fromPartial(object.StructType)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllStructTypeRequest(): QueryAllStructTypeRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllStructTypeRequest: MessageFns = {\n encode(message: QueryAllStructTypeRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllStructTypeRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllStructTypeRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllStructTypeRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllStructTypeRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllStructTypeRequest {\n return QueryAllStructTypeRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllStructTypeRequest {\n const message = createBaseQueryAllStructTypeRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllStructTypeResponse(): QueryAllStructTypeResponse {\n return { StructType: [], pagination: undefined };\n}\n\nexport const QueryAllStructTypeResponse: MessageFns = {\n encode(message: QueryAllStructTypeResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.StructType) {\n StructType.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllStructTypeResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllStructTypeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.StructType.push(StructType.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllStructTypeResponse {\n return {\n StructType: globalThis.Array.isArray(object?.StructType)\n ? object.StructType.map((e: any) => StructType.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllStructTypeResponse): unknown {\n const obj: any = {};\n if (message.StructType?.length) {\n obj.StructType = message.StructType.map((e) => StructType.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllStructTypeResponse {\n return QueryAllStructTypeResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllStructTypeResponse {\n const message = createBaseQueryAllStructTypeResponse();\n message.StructType = object.StructType?.map((e) => StructType.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetSubstationRequest(): QueryGetSubstationRequest {\n return { id: \"\" };\n}\n\nexport const QueryGetSubstationRequest: MessageFns = {\n encode(message: QueryGetSubstationRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetSubstationRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetSubstationRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetSubstationRequest {\n return { id: isSet(object.id) ? globalThis.String(object.id) : \"\" };\n },\n\n toJSON(message: QueryGetSubstationRequest): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetSubstationRequest {\n return QueryGetSubstationRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetSubstationRequest {\n const message = createBaseQueryGetSubstationRequest();\n message.id = object.id ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetSubstationResponse(): QueryGetSubstationResponse {\n return { Substation: undefined, gridAttributes: undefined };\n}\n\nexport const QueryGetSubstationResponse: MessageFns = {\n encode(message: QueryGetSubstationResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.Substation !== undefined) {\n Substation.encode(message.Substation, writer.uint32(10).fork()).join();\n }\n if (message.gridAttributes !== undefined) {\n GridAttributes.encode(message.gridAttributes, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetSubstationResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetSubstationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Substation = Substation.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.gridAttributes = GridAttributes.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetSubstationResponse {\n return {\n Substation: isSet(object.Substation) ? Substation.fromJSON(object.Substation) : undefined,\n gridAttributes: isSet(object.gridAttributes) ? GridAttributes.fromJSON(object.gridAttributes) : undefined,\n };\n },\n\n toJSON(message: QueryGetSubstationResponse): unknown {\n const obj: any = {};\n if (message.Substation !== undefined) {\n obj.Substation = Substation.toJSON(message.Substation);\n }\n if (message.gridAttributes !== undefined) {\n obj.gridAttributes = GridAttributes.toJSON(message.gridAttributes);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetSubstationResponse {\n return QueryGetSubstationResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetSubstationResponse {\n const message = createBaseQueryGetSubstationResponse();\n message.Substation = (object.Substation !== undefined && object.Substation !== null)\n ? Substation.fromPartial(object.Substation)\n : undefined;\n message.gridAttributes = (object.gridAttributes !== undefined && object.gridAttributes !== null)\n ? GridAttributes.fromPartial(object.gridAttributes)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllSubstationRequest(): QueryAllSubstationRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllSubstationRequest: MessageFns = {\n encode(message: QueryAllSubstationRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllSubstationRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllSubstationRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllSubstationRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllSubstationRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllSubstationRequest {\n return QueryAllSubstationRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllSubstationRequest {\n const message = createBaseQueryAllSubstationRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllSubstationResponse(): QueryAllSubstationResponse {\n return { Substation: [], pagination: undefined };\n}\n\nexport const QueryAllSubstationResponse: MessageFns = {\n encode(message: QueryAllSubstationResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.Substation) {\n Substation.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllSubstationResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllSubstationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Substation.push(Substation.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllSubstationResponse {\n return {\n Substation: globalThis.Array.isArray(object?.Substation)\n ? object.Substation.map((e: any) => Substation.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllSubstationResponse): unknown {\n const obj: any = {};\n if (message.Substation?.length) {\n obj.Substation = message.Substation.map((e) => Substation.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllSubstationResponse {\n return QueryAllSubstationResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllSubstationResponse {\n const message = createBaseQueryAllSubstationResponse();\n message.Substation = object.Substation?.map((e) => Substation.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryValidateSignatureRequest(): QueryValidateSignatureRequest {\n return { address: \"\", message: \"\", proofPubKey: \"\", proofSignature: \"\" };\n}\n\nexport const QueryValidateSignatureRequest: MessageFns = {\n encode(message: QueryValidateSignatureRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.message !== \"\") {\n writer.uint32(18).string(message.message);\n }\n if (message.proofPubKey !== \"\") {\n writer.uint32(26).string(message.proofPubKey);\n }\n if (message.proofSignature !== \"\") {\n writer.uint32(34).string(message.proofSignature);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryValidateSignatureRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidateSignatureRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.message = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.proofPubKey = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.proofSignature = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryValidateSignatureRequest {\n return {\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n message: isSet(object.message) ? globalThis.String(object.message) : \"\",\n proofPubKey: isSet(object.proofPubKey) ? globalThis.String(object.proofPubKey) : \"\",\n proofSignature: isSet(object.proofSignature) ? globalThis.String(object.proofSignature) : \"\",\n };\n },\n\n toJSON(message: QueryValidateSignatureRequest): unknown {\n const obj: any = {};\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.message !== \"\") {\n obj.message = message.message;\n }\n if (message.proofPubKey !== \"\") {\n obj.proofPubKey = message.proofPubKey;\n }\n if (message.proofSignature !== \"\") {\n obj.proofSignature = message.proofSignature;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryValidateSignatureRequest {\n return QueryValidateSignatureRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryValidateSignatureRequest {\n const message = createBaseQueryValidateSignatureRequest();\n message.address = object.address ?? \"\";\n message.message = object.message ?? \"\";\n message.proofPubKey = object.proofPubKey ?? \"\";\n message.proofSignature = object.proofSignature ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryValidateSignatureResponse(): QueryValidateSignatureResponse {\n return {\n pubkeyFormatError: false,\n signatureFormatError: false,\n addressPubkeyMismatch: false,\n signatureInvalid: false,\n valid: false,\n };\n}\n\nexport const QueryValidateSignatureResponse: MessageFns = {\n encode(message: QueryValidateSignatureResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pubkeyFormatError !== false) {\n writer.uint32(8).bool(message.pubkeyFormatError);\n }\n if (message.signatureFormatError !== false) {\n writer.uint32(16).bool(message.signatureFormatError);\n }\n if (message.addressPubkeyMismatch !== false) {\n writer.uint32(24).bool(message.addressPubkeyMismatch);\n }\n if (message.signatureInvalid !== false) {\n writer.uint32(32).bool(message.signatureInvalid);\n }\n if (message.valid !== false) {\n writer.uint32(40).bool(message.valid);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryValidateSignatureResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidateSignatureResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.pubkeyFormatError = reader.bool();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.signatureFormatError = reader.bool();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.addressPubkeyMismatch = reader.bool();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.signatureInvalid = reader.bool();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.valid = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryValidateSignatureResponse {\n return {\n pubkeyFormatError: isSet(object.pubkeyFormatError) ? globalThis.Boolean(object.pubkeyFormatError) : false,\n signatureFormatError: isSet(object.signatureFormatError)\n ? globalThis.Boolean(object.signatureFormatError)\n : false,\n addressPubkeyMismatch: isSet(object.addressPubkeyMismatch)\n ? globalThis.Boolean(object.addressPubkeyMismatch)\n : false,\n signatureInvalid: isSet(object.signatureInvalid) ? globalThis.Boolean(object.signatureInvalid) : false,\n valid: isSet(object.valid) ? globalThis.Boolean(object.valid) : false,\n };\n },\n\n toJSON(message: QueryValidateSignatureResponse): unknown {\n const obj: any = {};\n if (message.pubkeyFormatError !== false) {\n obj.pubkeyFormatError = message.pubkeyFormatError;\n }\n if (message.signatureFormatError !== false) {\n obj.signatureFormatError = message.signatureFormatError;\n }\n if (message.addressPubkeyMismatch !== false) {\n obj.addressPubkeyMismatch = message.addressPubkeyMismatch;\n }\n if (message.signatureInvalid !== false) {\n obj.signatureInvalid = message.signatureInvalid;\n }\n if (message.valid !== false) {\n obj.valid = message.valid;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryValidateSignatureResponse {\n return QueryValidateSignatureResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryValidateSignatureResponse {\n const message = createBaseQueryValidateSignatureResponse();\n message.pubkeyFormatError = object.pubkeyFormatError ?? false;\n message.signatureFormatError = object.signatureFormatError ?? false;\n message.addressPubkeyMismatch = object.addressPubkeyMismatch ?? false;\n message.signatureInvalid = object.signatureInvalid ?? false;\n message.valid = object.valid ?? false;\n return message;\n },\n};\n\n/** Query defines the gRPC querier service. */\nexport interface Query {\n GetBlockHeight(request: QueryBlockHeight): Promise;\n /** Parameters queries the parameters of the module. */\n Params(request: QueryParamsRequest): Promise;\n /** Queries for Addresses. */\n Address(request: QueryGetAddressRequest): Promise;\n AddressAll(request: QueryAllAddressRequest): Promise;\n AddressAllByPlayer(request: QueryAllAddressByPlayerRequest): Promise;\n /** Queries a list of Agreement items. */\n Agreement(request: QueryGetAgreementRequest): Promise;\n AgreementAll(request: QueryAllAgreementRequest): Promise;\n AgreementAllByProvider(request: QueryAllAgreementByProviderRequest): Promise;\n /** Queries a list of Allocation items. */\n Allocation(request: QueryGetAllocationRequest): Promise;\n AllocationAll(request: QueryAllAllocationRequest): Promise;\n AllocationAllBySource(request: QueryAllAllocationBySourceRequest): Promise;\n AllocationAllByDestination(request: QueryAllAllocationByDestinationRequest): Promise;\n /** Queries a list of Fleet items. */\n Fleet(request: QueryGetFleetRequest): Promise;\n FleetByIndex(request: QueryGetFleetByIndexRequest): Promise;\n FleetAll(request: QueryAllFleetRequest): Promise;\n /** Queries a specific Grid details */\n Grid(request: QueryGetGridRequest): Promise;\n /** Queries a list of all Grid details */\n GridAll(request: QueryAllGridRequest): Promise;\n /** Queries a list of Guild items. */\n Guild(request: QueryGetGuildRequest): Promise;\n GuildAll(request: QueryAllGuildRequest): Promise;\n GuildBankCollateralAddress(\n request: QueryGetGuildBankCollateralAddressRequest,\n ): Promise;\n GuildBankCollateralAddressAll(\n request: QueryAllGuildBankCollateralAddressRequest,\n ): Promise;\n GuildMembershipApplication(\n request: QueryGetGuildMembershipApplicationRequest,\n ): Promise;\n GuildMembershipApplicationAll(\n request: QueryAllGuildMembershipApplicationRequest,\n ): Promise;\n /** Queries a list of Infusions. */\n Infusion(request: QueryGetInfusionRequest): Promise;\n InfusionAll(request: QueryAllInfusionRequest): Promise;\n InfusionAllByDestination(request: QueryAllInfusionByDestinationRequest): Promise;\n /** Queries a specific Permission */\n Permission(request: QueryGetPermissionRequest): Promise;\n /** Queries a list of Permissions based on Object */\n PermissionByObject(request: QueryAllPermissionByObjectRequest): Promise;\n /** Queries a list of Permissions based on the Player with the permissions */\n PermissionByPlayer(request: QueryAllPermissionByPlayerRequest): Promise;\n /** Queries a list of all Permissions */\n PermissionAll(request: QueryAllPermissionRequest): Promise;\n /** Queries a list of Player items. */\n Player(request: QueryGetPlayerRequest): Promise;\n PlayerAll(request: QueryAllPlayerRequest): Promise;\n PlayerHaltedAll(request: QueryAllPlayerHaltedRequest): Promise;\n /** Queries a list of Planet items. */\n Planet(request: QueryGetPlanetRequest): Promise;\n PlanetAll(request: QueryAllPlanetRequest): Promise;\n PlanetAllByPlayer(request: QueryAllPlanetByPlayerRequest): Promise;\n PlanetAttribute(request: QueryGetPlanetAttributeRequest): Promise;\n /** Queries a list of all Planet Attributes */\n PlanetAttributeAll(request: QueryAllPlanetAttributeRequest): Promise;\n /** Queries a list of Allocation items. */\n Provider(request: QueryGetProviderRequest): Promise;\n ProviderAll(request: QueryAllProviderRequest): Promise;\n ProviderCollateralAddress(\n request: QueryGetProviderCollateralAddressRequest,\n ): Promise;\n ProviderCollateralAddressAll(\n request: QueryAllProviderCollateralAddressRequest,\n ): Promise;\n /**\n * TODO Requires a lookup table that I don't know if we care about\n * rpc ProviderByCollateralAddress (QueryGetProviderByCollateralAddressRequest) returns (QueryGetProviderResponse) {\n * option (google.api.http).get = \"/structs/provider_by_collateral_address/{address}\";\n * }\n */\n ProviderEarningsAddress(\n request: QueryGetProviderEarningsAddressRequest,\n ): Promise;\n ProviderEarningsAddressAll(\n request: QueryAllProviderEarningsAddressRequest,\n ): Promise;\n /** Queries a list of Reactor items. */\n Reactor(request: QueryGetReactorRequest): Promise;\n ReactorAll(request: QueryAllReactorRequest): Promise;\n /** Queries a list of Structs items. */\n Struct(request: QueryGetStructRequest): Promise;\n StructAll(request: QueryAllStructRequest): Promise;\n StructAttribute(request: QueryGetStructAttributeRequest): Promise;\n /** Queries a list of all Struct Attributes */\n StructAttributeAll(request: QueryAllStructAttributeRequest): Promise;\n /** Queries a list of Struct Types items. */\n StructType(request: QueryGetStructTypeRequest): Promise;\n StructTypeAll(request: QueryAllStructTypeRequest): Promise;\n /** Queries a list of Substation items. */\n Substation(request: QueryGetSubstationRequest): Promise;\n SubstationAll(request: QueryAllSubstationRequest): Promise;\n ValidateSignature(request: QueryValidateSignatureRequest): Promise;\n}\n\nexport const QueryServiceName = \"structs.structs.Query\";\nexport class QueryClientImpl implements Query {\n private readonly rpc: Rpc;\n private readonly service: string;\n constructor(rpc: Rpc, opts?: { service?: string }) {\n this.service = opts?.service || QueryServiceName;\n this.rpc = rpc;\n this.GetBlockHeight = this.GetBlockHeight.bind(this);\n this.Params = this.Params.bind(this);\n this.Address = this.Address.bind(this);\n this.AddressAll = this.AddressAll.bind(this);\n this.AddressAllByPlayer = this.AddressAllByPlayer.bind(this);\n this.Agreement = this.Agreement.bind(this);\n this.AgreementAll = this.AgreementAll.bind(this);\n this.AgreementAllByProvider = this.AgreementAllByProvider.bind(this);\n this.Allocation = this.Allocation.bind(this);\n this.AllocationAll = this.AllocationAll.bind(this);\n this.AllocationAllBySource = this.AllocationAllBySource.bind(this);\n this.AllocationAllByDestination = this.AllocationAllByDestination.bind(this);\n this.Fleet = this.Fleet.bind(this);\n this.FleetByIndex = this.FleetByIndex.bind(this);\n this.FleetAll = this.FleetAll.bind(this);\n this.Grid = this.Grid.bind(this);\n this.GridAll = this.GridAll.bind(this);\n this.Guild = this.Guild.bind(this);\n this.GuildAll = this.GuildAll.bind(this);\n this.GuildBankCollateralAddress = this.GuildBankCollateralAddress.bind(this);\n this.GuildBankCollateralAddressAll = this.GuildBankCollateralAddressAll.bind(this);\n this.GuildMembershipApplication = this.GuildMembershipApplication.bind(this);\n this.GuildMembershipApplicationAll = this.GuildMembershipApplicationAll.bind(this);\n this.Infusion = this.Infusion.bind(this);\n this.InfusionAll = this.InfusionAll.bind(this);\n this.InfusionAllByDestination = this.InfusionAllByDestination.bind(this);\n this.Permission = this.Permission.bind(this);\n this.PermissionByObject = this.PermissionByObject.bind(this);\n this.PermissionByPlayer = this.PermissionByPlayer.bind(this);\n this.PermissionAll = this.PermissionAll.bind(this);\n this.Player = this.Player.bind(this);\n this.PlayerAll = this.PlayerAll.bind(this);\n this.PlayerHaltedAll = this.PlayerHaltedAll.bind(this);\n this.Planet = this.Planet.bind(this);\n this.PlanetAll = this.PlanetAll.bind(this);\n this.PlanetAllByPlayer = this.PlanetAllByPlayer.bind(this);\n this.PlanetAttribute = this.PlanetAttribute.bind(this);\n this.PlanetAttributeAll = this.PlanetAttributeAll.bind(this);\n this.Provider = this.Provider.bind(this);\n this.ProviderAll = this.ProviderAll.bind(this);\n this.ProviderCollateralAddress = this.ProviderCollateralAddress.bind(this);\n this.ProviderCollateralAddressAll = this.ProviderCollateralAddressAll.bind(this);\n this.ProviderEarningsAddress = this.ProviderEarningsAddress.bind(this);\n this.ProviderEarningsAddressAll = this.ProviderEarningsAddressAll.bind(this);\n this.Reactor = this.Reactor.bind(this);\n this.ReactorAll = this.ReactorAll.bind(this);\n this.Struct = this.Struct.bind(this);\n this.StructAll = this.StructAll.bind(this);\n this.StructAttribute = this.StructAttribute.bind(this);\n this.StructAttributeAll = this.StructAttributeAll.bind(this);\n this.StructType = this.StructType.bind(this);\n this.StructTypeAll = this.StructTypeAll.bind(this);\n this.Substation = this.Substation.bind(this);\n this.SubstationAll = this.SubstationAll.bind(this);\n this.ValidateSignature = this.ValidateSignature.bind(this);\n }\n GetBlockHeight(request: QueryBlockHeight): Promise {\n const data = QueryBlockHeight.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GetBlockHeight\", data);\n return promise.then((data) => QueryBlockHeightResponse.decode(new BinaryReader(data)));\n }\n\n Params(request: QueryParamsRequest): Promise {\n const data = QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Params\", data);\n return promise.then((data) => QueryParamsResponse.decode(new BinaryReader(data)));\n }\n\n Address(request: QueryGetAddressRequest): Promise {\n const data = QueryGetAddressRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Address\", data);\n return promise.then((data) => QueryAddressResponse.decode(new BinaryReader(data)));\n }\n\n AddressAll(request: QueryAllAddressRequest): Promise {\n const data = QueryAllAddressRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AddressAll\", data);\n return promise.then((data) => QueryAllAddressResponse.decode(new BinaryReader(data)));\n }\n\n AddressAllByPlayer(request: QueryAllAddressByPlayerRequest): Promise {\n const data = QueryAllAddressByPlayerRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AddressAllByPlayer\", data);\n return promise.then((data) => QueryAllAddressResponse.decode(new BinaryReader(data)));\n }\n\n Agreement(request: QueryGetAgreementRequest): Promise {\n const data = QueryGetAgreementRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Agreement\", data);\n return promise.then((data) => QueryGetAgreementResponse.decode(new BinaryReader(data)));\n }\n\n AgreementAll(request: QueryAllAgreementRequest): Promise {\n const data = QueryAllAgreementRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AgreementAll\", data);\n return promise.then((data) => QueryAllAgreementResponse.decode(new BinaryReader(data)));\n }\n\n AgreementAllByProvider(request: QueryAllAgreementByProviderRequest): Promise {\n const data = QueryAllAgreementByProviderRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AgreementAllByProvider\", data);\n return promise.then((data) => QueryAllAgreementResponse.decode(new BinaryReader(data)));\n }\n\n Allocation(request: QueryGetAllocationRequest): Promise {\n const data = QueryGetAllocationRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Allocation\", data);\n return promise.then((data) => QueryGetAllocationResponse.decode(new BinaryReader(data)));\n }\n\n AllocationAll(request: QueryAllAllocationRequest): Promise {\n const data = QueryAllAllocationRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AllocationAll\", data);\n return promise.then((data) => QueryAllAllocationResponse.decode(new BinaryReader(data)));\n }\n\n AllocationAllBySource(request: QueryAllAllocationBySourceRequest): Promise {\n const data = QueryAllAllocationBySourceRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AllocationAllBySource\", data);\n return promise.then((data) => QueryAllAllocationResponse.decode(new BinaryReader(data)));\n }\n\n AllocationAllByDestination(request: QueryAllAllocationByDestinationRequest): Promise {\n const data = QueryAllAllocationByDestinationRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AllocationAllByDestination\", data);\n return promise.then((data) => QueryAllAllocationResponse.decode(new BinaryReader(data)));\n }\n\n Fleet(request: QueryGetFleetRequest): Promise {\n const data = QueryGetFleetRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Fleet\", data);\n return promise.then((data) => QueryGetFleetResponse.decode(new BinaryReader(data)));\n }\n\n FleetByIndex(request: QueryGetFleetByIndexRequest): Promise {\n const data = QueryGetFleetByIndexRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"FleetByIndex\", data);\n return promise.then((data) => QueryGetFleetResponse.decode(new BinaryReader(data)));\n }\n\n FleetAll(request: QueryAllFleetRequest): Promise {\n const data = QueryAllFleetRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"FleetAll\", data);\n return promise.then((data) => QueryAllFleetResponse.decode(new BinaryReader(data)));\n }\n\n Grid(request: QueryGetGridRequest): Promise {\n const data = QueryGetGridRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Grid\", data);\n return promise.then((data) => QueryGetGridResponse.decode(new BinaryReader(data)));\n }\n\n GridAll(request: QueryAllGridRequest): Promise {\n const data = QueryAllGridRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GridAll\", data);\n return promise.then((data) => QueryAllGridResponse.decode(new BinaryReader(data)));\n }\n\n Guild(request: QueryGetGuildRequest): Promise {\n const data = QueryGetGuildRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Guild\", data);\n return promise.then((data) => QueryGetGuildResponse.decode(new BinaryReader(data)));\n }\n\n GuildAll(request: QueryAllGuildRequest): Promise {\n const data = QueryAllGuildRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildAll\", data);\n return promise.then((data) => QueryAllGuildResponse.decode(new BinaryReader(data)));\n }\n\n GuildBankCollateralAddress(\n request: QueryGetGuildBankCollateralAddressRequest,\n ): Promise {\n const data = QueryGetGuildBankCollateralAddressRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildBankCollateralAddress\", data);\n return promise.then((data) => QueryAllGuildBankCollateralAddressResponse.decode(new BinaryReader(data)));\n }\n\n GuildBankCollateralAddressAll(\n request: QueryAllGuildBankCollateralAddressRequest,\n ): Promise {\n const data = QueryAllGuildBankCollateralAddressRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildBankCollateralAddressAll\", data);\n return promise.then((data) => QueryAllGuildBankCollateralAddressResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipApplication(\n request: QueryGetGuildMembershipApplicationRequest,\n ): Promise {\n const data = QueryGetGuildMembershipApplicationRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipApplication\", data);\n return promise.then((data) => QueryGetGuildMembershipApplicationResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipApplicationAll(\n request: QueryAllGuildMembershipApplicationRequest,\n ): Promise {\n const data = QueryAllGuildMembershipApplicationRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipApplicationAll\", data);\n return promise.then((data) => QueryAllGuildMembershipApplicationResponse.decode(new BinaryReader(data)));\n }\n\n Infusion(request: QueryGetInfusionRequest): Promise {\n const data = QueryGetInfusionRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Infusion\", data);\n return promise.then((data) => QueryGetInfusionResponse.decode(new BinaryReader(data)));\n }\n\n InfusionAll(request: QueryAllInfusionRequest): Promise {\n const data = QueryAllInfusionRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"InfusionAll\", data);\n return promise.then((data) => QueryAllInfusionResponse.decode(new BinaryReader(data)));\n }\n\n InfusionAllByDestination(request: QueryAllInfusionByDestinationRequest): Promise {\n const data = QueryAllInfusionByDestinationRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"InfusionAllByDestination\", data);\n return promise.then((data) => QueryAllInfusionResponse.decode(new BinaryReader(data)));\n }\n\n Permission(request: QueryGetPermissionRequest): Promise {\n const data = QueryGetPermissionRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Permission\", data);\n return promise.then((data) => QueryGetPermissionResponse.decode(new BinaryReader(data)));\n }\n\n PermissionByObject(request: QueryAllPermissionByObjectRequest): Promise {\n const data = QueryAllPermissionByObjectRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PermissionByObject\", data);\n return promise.then((data) => QueryAllPermissionResponse.decode(new BinaryReader(data)));\n }\n\n PermissionByPlayer(request: QueryAllPermissionByPlayerRequest): Promise {\n const data = QueryAllPermissionByPlayerRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PermissionByPlayer\", data);\n return promise.then((data) => QueryAllPermissionResponse.decode(new BinaryReader(data)));\n }\n\n PermissionAll(request: QueryAllPermissionRequest): Promise {\n const data = QueryAllPermissionRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PermissionAll\", data);\n return promise.then((data) => QueryAllPermissionResponse.decode(new BinaryReader(data)));\n }\n\n Player(request: QueryGetPlayerRequest): Promise {\n const data = QueryGetPlayerRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Player\", data);\n return promise.then((data) => QueryGetPlayerResponse.decode(new BinaryReader(data)));\n }\n\n PlayerAll(request: QueryAllPlayerRequest): Promise {\n const data = QueryAllPlayerRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PlayerAll\", data);\n return promise.then((data) => QueryAllPlayerResponse.decode(new BinaryReader(data)));\n }\n\n PlayerHaltedAll(request: QueryAllPlayerHaltedRequest): Promise {\n const data = QueryAllPlayerHaltedRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PlayerHaltedAll\", data);\n return promise.then((data) => QueryAllPlayerHaltedResponse.decode(new BinaryReader(data)));\n }\n\n Planet(request: QueryGetPlanetRequest): Promise {\n const data = QueryGetPlanetRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Planet\", data);\n return promise.then((data) => QueryGetPlanetResponse.decode(new BinaryReader(data)));\n }\n\n PlanetAll(request: QueryAllPlanetRequest): Promise {\n const data = QueryAllPlanetRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PlanetAll\", data);\n return promise.then((data) => QueryAllPlanetResponse.decode(new BinaryReader(data)));\n }\n\n PlanetAllByPlayer(request: QueryAllPlanetByPlayerRequest): Promise {\n const data = QueryAllPlanetByPlayerRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PlanetAllByPlayer\", data);\n return promise.then((data) => QueryAllPlanetResponse.decode(new BinaryReader(data)));\n }\n\n PlanetAttribute(request: QueryGetPlanetAttributeRequest): Promise {\n const data = QueryGetPlanetAttributeRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PlanetAttribute\", data);\n return promise.then((data) => QueryGetPlanetAttributeResponse.decode(new BinaryReader(data)));\n }\n\n PlanetAttributeAll(request: QueryAllPlanetAttributeRequest): Promise {\n const data = QueryAllPlanetAttributeRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PlanetAttributeAll\", data);\n return promise.then((data) => QueryAllPlanetAttributeResponse.decode(new BinaryReader(data)));\n }\n\n Provider(request: QueryGetProviderRequest): Promise {\n const data = QueryGetProviderRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Provider\", data);\n return promise.then((data) => QueryGetProviderResponse.decode(new BinaryReader(data)));\n }\n\n ProviderAll(request: QueryAllProviderRequest): Promise {\n const data = QueryAllProviderRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderAll\", data);\n return promise.then((data) => QueryAllProviderResponse.decode(new BinaryReader(data)));\n }\n\n ProviderCollateralAddress(\n request: QueryGetProviderCollateralAddressRequest,\n ): Promise {\n const data = QueryGetProviderCollateralAddressRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderCollateralAddress\", data);\n return promise.then((data) => QueryAllProviderCollateralAddressResponse.decode(new BinaryReader(data)));\n }\n\n ProviderCollateralAddressAll(\n request: QueryAllProviderCollateralAddressRequest,\n ): Promise {\n const data = QueryAllProviderCollateralAddressRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderCollateralAddressAll\", data);\n return promise.then((data) => QueryAllProviderCollateralAddressResponse.decode(new BinaryReader(data)));\n }\n\n ProviderEarningsAddress(\n request: QueryGetProviderEarningsAddressRequest,\n ): Promise {\n const data = QueryGetProviderEarningsAddressRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderEarningsAddress\", data);\n return promise.then((data) => QueryAllProviderEarningsAddressResponse.decode(new BinaryReader(data)));\n }\n\n ProviderEarningsAddressAll(\n request: QueryAllProviderEarningsAddressRequest,\n ): Promise {\n const data = QueryAllProviderEarningsAddressRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderEarningsAddressAll\", data);\n return promise.then((data) => QueryAllProviderEarningsAddressResponse.decode(new BinaryReader(data)));\n }\n\n Reactor(request: QueryGetReactorRequest): Promise {\n const data = QueryGetReactorRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Reactor\", data);\n return promise.then((data) => QueryGetReactorResponse.decode(new BinaryReader(data)));\n }\n\n ReactorAll(request: QueryAllReactorRequest): Promise {\n const data = QueryAllReactorRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ReactorAll\", data);\n return promise.then((data) => QueryAllReactorResponse.decode(new BinaryReader(data)));\n }\n\n Struct(request: QueryGetStructRequest): Promise {\n const data = QueryGetStructRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Struct\", data);\n return promise.then((data) => QueryGetStructResponse.decode(new BinaryReader(data)));\n }\n\n StructAll(request: QueryAllStructRequest): Promise {\n const data = QueryAllStructRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructAll\", data);\n return promise.then((data) => QueryAllStructResponse.decode(new BinaryReader(data)));\n }\n\n StructAttribute(request: QueryGetStructAttributeRequest): Promise {\n const data = QueryGetStructAttributeRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructAttribute\", data);\n return promise.then((data) => QueryGetStructAttributeResponse.decode(new BinaryReader(data)));\n }\n\n StructAttributeAll(request: QueryAllStructAttributeRequest): Promise {\n const data = QueryAllStructAttributeRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructAttributeAll\", data);\n return promise.then((data) => QueryAllStructAttributeResponse.decode(new BinaryReader(data)));\n }\n\n StructType(request: QueryGetStructTypeRequest): Promise {\n const data = QueryGetStructTypeRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructType\", data);\n return promise.then((data) => QueryGetStructTypeResponse.decode(new BinaryReader(data)));\n }\n\n StructTypeAll(request: QueryAllStructTypeRequest): Promise {\n const data = QueryAllStructTypeRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructTypeAll\", data);\n return promise.then((data) => QueryAllStructTypeResponse.decode(new BinaryReader(data)));\n }\n\n Substation(request: QueryGetSubstationRequest): Promise {\n const data = QueryGetSubstationRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Substation\", data);\n return promise.then((data) => QueryGetSubstationResponse.decode(new BinaryReader(data)));\n }\n\n SubstationAll(request: QueryAllSubstationRequest): Promise {\n const data = QueryAllSubstationRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"SubstationAll\", data);\n return promise.then((data) => QueryAllSubstationResponse.decode(new BinaryReader(data)));\n }\n\n ValidateSignature(request: QueryValidateSignatureRequest): Promise {\n const data = QueryValidateSignatureRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ValidateSignature\", data);\n return promise.then((data) => QueryValidateSignatureResponse.decode(new BinaryReader(data)));\n }\n}\n\ninterface Rpc {\n request(service: string, method: string, data: Uint8Array): Promise;\n}\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/reactor.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface Reactor {\n id: string;\n validator: string;\n guildId: string;\n defaultCommission: string;\n rawAddress: Uint8Array;\n}\n\nfunction createBaseReactor(): Reactor {\n return { id: \"\", validator: \"\", guildId: \"\", defaultCommission: \"\", rawAddress: new Uint8Array(0) };\n}\n\nexport const Reactor: MessageFns = {\n encode(message: Reactor, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.validator !== \"\") {\n writer.uint32(18).string(message.validator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(26).string(message.guildId);\n }\n if (message.defaultCommission !== \"\") {\n writer.uint32(34).string(message.defaultCommission);\n }\n if (message.rawAddress.length !== 0) {\n writer.uint32(42).bytes(message.rawAddress);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Reactor {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseReactor();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.validator = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.defaultCommission = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.rawAddress = reader.bytes();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Reactor {\n return {\n id: isSet(object.id) ? globalThis.String(object.id) : \"\",\n validator: isSet(object.validator) ? globalThis.String(object.validator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n defaultCommission: isSet(object.defaultCommission) ? globalThis.String(object.defaultCommission) : \"\",\n rawAddress: isSet(object.rawAddress) ? bytesFromBase64(object.rawAddress) : new Uint8Array(0),\n };\n },\n\n toJSON(message: Reactor): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n if (message.validator !== \"\") {\n obj.validator = message.validator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.defaultCommission !== \"\") {\n obj.defaultCommission = message.defaultCommission;\n }\n if (message.rawAddress.length !== 0) {\n obj.rawAddress = base64FromBytes(message.rawAddress);\n }\n return obj;\n },\n\n create, I>>(base?: I): Reactor {\n return Reactor.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Reactor {\n const message = createBaseReactor();\n message.id = object.id ?? \"\";\n message.validator = object.validator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.defaultCommission = object.defaultCommission ?? \"\";\n message.rawAddress = object.rawAddress ?? new Uint8Array(0);\n return message;\n },\n};\n\nfunction bytesFromBase64(b64: string): Uint8Array {\n if ((globalThis as any).Buffer) {\n return Uint8Array.from(globalThis.Buffer.from(b64, \"base64\"));\n } else {\n const bin = globalThis.atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n }\n}\n\nfunction base64FromBytes(arr: Uint8Array): string {\n if ((globalThis as any).Buffer) {\n return globalThis.Buffer.from(arr).toString(\"base64\");\n } else {\n const bin: string[] = [];\n arr.forEach((byte) => {\n bin.push(globalThis.String.fromCharCode(byte));\n });\n return globalThis.btoa(bin.join(\"\"));\n }\n}\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/struct.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport {\n ambit,\n ambitFromJSON,\n ambitToJSON,\n objectType,\n objectTypeFromJSON,\n objectTypeToJSON,\n techActiveWeaponry,\n techActiveWeaponryFromJSON,\n techActiveWeaponryToJSON,\n techOreReserveDefenses,\n techOreReserveDefensesFromJSON,\n techOreReserveDefensesToJSON,\n techPassiveWeaponry,\n techPassiveWeaponryFromJSON,\n techPassiveWeaponryToJSON,\n techPlanetaryDefenses,\n techPlanetaryDefensesFromJSON,\n techPlanetaryDefensesToJSON,\n techPlanetaryMining,\n techPlanetaryMiningFromJSON,\n techPlanetaryMiningToJSON,\n techPlanetaryRefineries,\n techPlanetaryRefineriesFromJSON,\n techPlanetaryRefineriesToJSON,\n techPowerGeneration,\n techPowerGenerationFromJSON,\n techPowerGenerationToJSON,\n techUnitDefenses,\n techUnitDefensesFromJSON,\n techUnitDefensesToJSON,\n techWeaponControl,\n techWeaponControlFromJSON,\n techWeaponControlToJSON,\n} from \"./keys\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface Struct {\n /** What it is */\n id: string;\n index: number;\n type: number;\n /** Who is it */\n creator: string;\n owner: string;\n /** Where it is */\n locationType: objectType;\n locationId: string;\n operatingAmbit: ambit;\n slot: number;\n}\n\nexport interface StructType {\n id: number;\n /** TODO Deprecating... Will match with Class for now. */\n type: string;\n /** New Struct Type Identity Details */\n class: string;\n classAbbreviation: string;\n defaultCosmeticModelNumber: string;\n defaultCosmeticName: string;\n /** Fundamental attributes */\n category: objectType;\n /** How many of this Struct Type a player can have */\n buildLimit: number;\n /** How much compute is needed to build */\n buildDifficulty: number;\n /** How much energy the Struct consumes during building */\n buildDraw: number;\n /** How much damage can it take */\n maxHealth: number;\n /** How much energy the Struct consumes when active */\n passiveDraw: number;\n /**\n * Details about location and movement\n * TODO move category to here and make it flag based too\n * Replicate what was done for ambits flags\n */\n possibleAmbit: number;\n /** Can the Struct change ambit? */\n movable: boolean;\n /** Does the Struct occupy a slot. Trying to find something to help set Command Ships apart */\n slotBound: boolean;\n /** Primary Weapon Configuration */\n primaryWeapon: techActiveWeaponry;\n primaryWeaponControl: techWeaponControl;\n primaryWeaponCharge: number;\n primaryWeaponAmbits: number;\n primaryWeaponTargets: number;\n primaryWeaponShots: number;\n primaryWeaponDamage: number;\n primaryWeaponBlockable: boolean;\n primaryWeaponCounterable: boolean;\n primaryWeaponRecoilDamage: number;\n primaryWeaponShotSuccessRateNumerator: number;\n primaryWeaponShotSuccessRateDenominator: number;\n /** Secondary Weapon Configuration */\n secondaryWeapon: techActiveWeaponry;\n secondaryWeaponControl: techWeaponControl;\n secondaryWeaponCharge: number;\n secondaryWeaponAmbits: number;\n secondaryWeaponTargets: number;\n secondaryWeaponShots: number;\n secondaryWeaponDamage: number;\n secondaryWeaponBlockable: boolean;\n secondaryWeaponCounterable: boolean;\n secondaryWeaponRecoilDamage: number;\n secondaryWeaponShotSuccessRateNumerator: number;\n secondaryWeaponShotSuccessRateDenominator: number;\n /** Tech Tree Features */\n passiveWeaponry: techPassiveWeaponry;\n unitDefenses: techUnitDefenses;\n oreReserveDefenses: techOreReserveDefenses;\n planetaryDefenses: techPlanetaryDefenses;\n planetaryMining: techPlanetaryMining;\n planetaryRefinery: techPlanetaryRefineries;\n powerGeneration: techPowerGeneration;\n /** Charge uses */\n activateCharge: number;\n buildCharge: number;\n defendChangeCharge: number;\n moveCharge: number;\n stealthActivateCharge: number;\n /** Tech Tree Attributes */\n attackReduction: number;\n /** For Indirect Combat Module */\n attackCounterable: boolean;\n /** For Stealth Mode */\n stealthSystems: boolean;\n /** Counter */\n counterAttack: number;\n /** Advanced Counter */\n counterAttackSameAmbit: number;\n postDestructionDamage: number;\n /** Power Generation */\n generatingRate: number;\n /** The shield that is added to the Planet */\n planetaryShieldContribution: number;\n oreMiningDifficulty: number;\n oreRefiningDifficulty: number;\n unguidedDefensiveSuccessRateNumerator: number;\n unguidedDefensiveSuccessRateDenominator: number;\n guidedDefensiveSuccessRateNumerator: number;\n guidedDefensiveSuccessRateDenominator: number;\n /**\n * I wish this was higher up in a different area of the definition\n * but I really don't feel like renumbering this entire thing again.\n */\n triggerRaidDefeatByDestruction: boolean;\n}\n\nexport interface StructDefender {\n protectedStructId: string;\n defendingStructId: string;\n}\n\nexport interface StructDefenders {\n structDefenders: StructDefender[];\n}\n\nexport interface StructAttributeRecord {\n attributeId: string;\n value: number;\n}\n\nexport interface StructAttributes {\n health: number;\n status: number;\n blockStartBuild: number;\n blockStartOreMine: number;\n blockStartOreRefine: number;\n protectedStructIndex: number;\n typeCount: number;\n isMaterialized: boolean;\n isBuilt: boolean;\n isOnline: boolean;\n isHidden: boolean;\n isDestroyed: boolean;\n isLocked: boolean;\n}\n\nfunction createBaseStruct(): Struct {\n return {\n id: \"\",\n index: 0,\n type: 0,\n creator: \"\",\n owner: \"\",\n locationType: 0,\n locationId: \"\",\n operatingAmbit: 0,\n slot: 0,\n };\n}\n\nexport const Struct: MessageFns = {\n encode(message: Struct, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.index !== 0) {\n writer.uint32(16).uint64(message.index);\n }\n if (message.type !== 0) {\n writer.uint32(24).uint64(message.type);\n }\n if (message.creator !== \"\") {\n writer.uint32(34).string(message.creator);\n }\n if (message.owner !== \"\") {\n writer.uint32(42).string(message.owner);\n }\n if (message.locationType !== 0) {\n writer.uint32(48).int32(message.locationType);\n }\n if (message.locationId !== \"\") {\n writer.uint32(58).string(message.locationId);\n }\n if (message.operatingAmbit !== 0) {\n writer.uint32(64).int32(message.operatingAmbit);\n }\n if (message.slot !== 0) {\n writer.uint32(72).uint64(message.slot);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Struct {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStruct();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.index = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.type = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.owner = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.locationType = reader.int32() as any;\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.locationId = reader.string();\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.operatingAmbit = reader.int32() as any;\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.slot = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Struct {\n return {\n id: isSet(object.id) ? globalThis.String(object.id) : \"\",\n index: isSet(object.index) ? globalThis.Number(object.index) : 0,\n type: isSet(object.type) ? globalThis.Number(object.type) : 0,\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n owner: isSet(object.owner) ? globalThis.String(object.owner) : \"\",\n locationType: isSet(object.locationType) ? objectTypeFromJSON(object.locationType) : 0,\n locationId: isSet(object.locationId) ? globalThis.String(object.locationId) : \"\",\n operatingAmbit: isSet(object.operatingAmbit) ? ambitFromJSON(object.operatingAmbit) : 0,\n slot: isSet(object.slot) ? globalThis.Number(object.slot) : 0,\n };\n },\n\n toJSON(message: Struct): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n if (message.index !== 0) {\n obj.index = Math.round(message.index);\n }\n if (message.type !== 0) {\n obj.type = Math.round(message.type);\n }\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.owner !== \"\") {\n obj.owner = message.owner;\n }\n if (message.locationType !== 0) {\n obj.locationType = objectTypeToJSON(message.locationType);\n }\n if (message.locationId !== \"\") {\n obj.locationId = message.locationId;\n }\n if (message.operatingAmbit !== 0) {\n obj.operatingAmbit = ambitToJSON(message.operatingAmbit);\n }\n if (message.slot !== 0) {\n obj.slot = Math.round(message.slot);\n }\n return obj;\n },\n\n create, I>>(base?: I): Struct {\n return Struct.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Struct {\n const message = createBaseStruct();\n message.id = object.id ?? \"\";\n message.index = object.index ?? 0;\n message.type = object.type ?? 0;\n message.creator = object.creator ?? \"\";\n message.owner = object.owner ?? \"\";\n message.locationType = object.locationType ?? 0;\n message.locationId = object.locationId ?? \"\";\n message.operatingAmbit = object.operatingAmbit ?? 0;\n message.slot = object.slot ?? 0;\n return message;\n },\n};\n\nfunction createBaseStructType(): StructType {\n return {\n id: 0,\n type: \"\",\n class: \"\",\n classAbbreviation: \"\",\n defaultCosmeticModelNumber: \"\",\n defaultCosmeticName: \"\",\n category: 0,\n buildLimit: 0,\n buildDifficulty: 0,\n buildDraw: 0,\n maxHealth: 0,\n passiveDraw: 0,\n possibleAmbit: 0,\n movable: false,\n slotBound: false,\n primaryWeapon: 0,\n primaryWeaponControl: 0,\n primaryWeaponCharge: 0,\n primaryWeaponAmbits: 0,\n primaryWeaponTargets: 0,\n primaryWeaponShots: 0,\n primaryWeaponDamage: 0,\n primaryWeaponBlockable: false,\n primaryWeaponCounterable: false,\n primaryWeaponRecoilDamage: 0,\n primaryWeaponShotSuccessRateNumerator: 0,\n primaryWeaponShotSuccessRateDenominator: 0,\n secondaryWeapon: 0,\n secondaryWeaponControl: 0,\n secondaryWeaponCharge: 0,\n secondaryWeaponAmbits: 0,\n secondaryWeaponTargets: 0,\n secondaryWeaponShots: 0,\n secondaryWeaponDamage: 0,\n secondaryWeaponBlockable: false,\n secondaryWeaponCounterable: false,\n secondaryWeaponRecoilDamage: 0,\n secondaryWeaponShotSuccessRateNumerator: 0,\n secondaryWeaponShotSuccessRateDenominator: 0,\n passiveWeaponry: 0,\n unitDefenses: 0,\n oreReserveDefenses: 0,\n planetaryDefenses: 0,\n planetaryMining: 0,\n planetaryRefinery: 0,\n powerGeneration: 0,\n activateCharge: 0,\n buildCharge: 0,\n defendChangeCharge: 0,\n moveCharge: 0,\n stealthActivateCharge: 0,\n attackReduction: 0,\n attackCounterable: false,\n stealthSystems: false,\n counterAttack: 0,\n counterAttackSameAmbit: 0,\n postDestructionDamage: 0,\n generatingRate: 0,\n planetaryShieldContribution: 0,\n oreMiningDifficulty: 0,\n oreRefiningDifficulty: 0,\n unguidedDefensiveSuccessRateNumerator: 0,\n unguidedDefensiveSuccessRateDenominator: 0,\n guidedDefensiveSuccessRateNumerator: 0,\n guidedDefensiveSuccessRateDenominator: 0,\n triggerRaidDefeatByDestruction: false,\n };\n}\n\nexport const StructType: MessageFns = {\n encode(message: StructType, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== 0) {\n writer.uint32(8).uint64(message.id);\n }\n if (message.type !== \"\") {\n writer.uint32(18).string(message.type);\n }\n if (message.class !== \"\") {\n writer.uint32(506).string(message.class);\n }\n if (message.classAbbreviation !== \"\") {\n writer.uint32(514).string(message.classAbbreviation);\n }\n if (message.defaultCosmeticModelNumber !== \"\") {\n writer.uint32(522).string(message.defaultCosmeticModelNumber);\n }\n if (message.defaultCosmeticName !== \"\") {\n writer.uint32(530).string(message.defaultCosmeticName);\n }\n if (message.category !== 0) {\n writer.uint32(24).int32(message.category);\n }\n if (message.buildLimit !== 0) {\n writer.uint32(32).uint64(message.buildLimit);\n }\n if (message.buildDifficulty !== 0) {\n writer.uint32(40).uint64(message.buildDifficulty);\n }\n if (message.buildDraw !== 0) {\n writer.uint32(48).uint64(message.buildDraw);\n }\n if (message.maxHealth !== 0) {\n writer.uint32(56).uint64(message.maxHealth);\n }\n if (message.passiveDraw !== 0) {\n writer.uint32(64).uint64(message.passiveDraw);\n }\n if (message.possibleAmbit !== 0) {\n writer.uint32(72).uint64(message.possibleAmbit);\n }\n if (message.movable !== false) {\n writer.uint32(80).bool(message.movable);\n }\n if (message.slotBound !== false) {\n writer.uint32(88).bool(message.slotBound);\n }\n if (message.primaryWeapon !== 0) {\n writer.uint32(96).int32(message.primaryWeapon);\n }\n if (message.primaryWeaponControl !== 0) {\n writer.uint32(104).int32(message.primaryWeaponControl);\n }\n if (message.primaryWeaponCharge !== 0) {\n writer.uint32(112).uint64(message.primaryWeaponCharge);\n }\n if (message.primaryWeaponAmbits !== 0) {\n writer.uint32(120).uint64(message.primaryWeaponAmbits);\n }\n if (message.primaryWeaponTargets !== 0) {\n writer.uint32(128).uint64(message.primaryWeaponTargets);\n }\n if (message.primaryWeaponShots !== 0) {\n writer.uint32(136).uint64(message.primaryWeaponShots);\n }\n if (message.primaryWeaponDamage !== 0) {\n writer.uint32(144).uint64(message.primaryWeaponDamage);\n }\n if (message.primaryWeaponBlockable !== false) {\n writer.uint32(152).bool(message.primaryWeaponBlockable);\n }\n if (message.primaryWeaponCounterable !== false) {\n writer.uint32(160).bool(message.primaryWeaponCounterable);\n }\n if (message.primaryWeaponRecoilDamage !== 0) {\n writer.uint32(168).uint64(message.primaryWeaponRecoilDamage);\n }\n if (message.primaryWeaponShotSuccessRateNumerator !== 0) {\n writer.uint32(176).uint64(message.primaryWeaponShotSuccessRateNumerator);\n }\n if (message.primaryWeaponShotSuccessRateDenominator !== 0) {\n writer.uint32(184).uint64(message.primaryWeaponShotSuccessRateDenominator);\n }\n if (message.secondaryWeapon !== 0) {\n writer.uint32(192).int32(message.secondaryWeapon);\n }\n if (message.secondaryWeaponControl !== 0) {\n writer.uint32(200).int32(message.secondaryWeaponControl);\n }\n if (message.secondaryWeaponCharge !== 0) {\n writer.uint32(208).uint64(message.secondaryWeaponCharge);\n }\n if (message.secondaryWeaponAmbits !== 0) {\n writer.uint32(216).uint64(message.secondaryWeaponAmbits);\n }\n if (message.secondaryWeaponTargets !== 0) {\n writer.uint32(224).uint64(message.secondaryWeaponTargets);\n }\n if (message.secondaryWeaponShots !== 0) {\n writer.uint32(232).uint64(message.secondaryWeaponShots);\n }\n if (message.secondaryWeaponDamage !== 0) {\n writer.uint32(240).uint64(message.secondaryWeaponDamage);\n }\n if (message.secondaryWeaponBlockable !== false) {\n writer.uint32(248).bool(message.secondaryWeaponBlockable);\n }\n if (message.secondaryWeaponCounterable !== false) {\n writer.uint32(256).bool(message.secondaryWeaponCounterable);\n }\n if (message.secondaryWeaponRecoilDamage !== 0) {\n writer.uint32(264).uint64(message.secondaryWeaponRecoilDamage);\n }\n if (message.secondaryWeaponShotSuccessRateNumerator !== 0) {\n writer.uint32(272).uint64(message.secondaryWeaponShotSuccessRateNumerator);\n }\n if (message.secondaryWeaponShotSuccessRateDenominator !== 0) {\n writer.uint32(280).uint64(message.secondaryWeaponShotSuccessRateDenominator);\n }\n if (message.passiveWeaponry !== 0) {\n writer.uint32(288).int32(message.passiveWeaponry);\n }\n if (message.unitDefenses !== 0) {\n writer.uint32(296).int32(message.unitDefenses);\n }\n if (message.oreReserveDefenses !== 0) {\n writer.uint32(304).int32(message.oreReserveDefenses);\n }\n if (message.planetaryDefenses !== 0) {\n writer.uint32(312).int32(message.planetaryDefenses);\n }\n if (message.planetaryMining !== 0) {\n writer.uint32(320).int32(message.planetaryMining);\n }\n if (message.planetaryRefinery !== 0) {\n writer.uint32(328).int32(message.planetaryRefinery);\n }\n if (message.powerGeneration !== 0) {\n writer.uint32(336).int32(message.powerGeneration);\n }\n if (message.activateCharge !== 0) {\n writer.uint32(344).uint64(message.activateCharge);\n }\n if (message.buildCharge !== 0) {\n writer.uint32(352).uint64(message.buildCharge);\n }\n if (message.defendChangeCharge !== 0) {\n writer.uint32(360).uint64(message.defendChangeCharge);\n }\n if (message.moveCharge !== 0) {\n writer.uint32(368).uint64(message.moveCharge);\n }\n if (message.stealthActivateCharge !== 0) {\n writer.uint32(376).uint64(message.stealthActivateCharge);\n }\n if (message.attackReduction !== 0) {\n writer.uint32(384).uint64(message.attackReduction);\n }\n if (message.attackCounterable !== false) {\n writer.uint32(392).bool(message.attackCounterable);\n }\n if (message.stealthSystems !== false) {\n writer.uint32(400).bool(message.stealthSystems);\n }\n if (message.counterAttack !== 0) {\n writer.uint32(408).uint64(message.counterAttack);\n }\n if (message.counterAttackSameAmbit !== 0) {\n writer.uint32(416).uint64(message.counterAttackSameAmbit);\n }\n if (message.postDestructionDamage !== 0) {\n writer.uint32(424).uint64(message.postDestructionDamage);\n }\n if (message.generatingRate !== 0) {\n writer.uint32(432).uint64(message.generatingRate);\n }\n if (message.planetaryShieldContribution !== 0) {\n writer.uint32(440).uint64(message.planetaryShieldContribution);\n }\n if (message.oreMiningDifficulty !== 0) {\n writer.uint32(448).uint64(message.oreMiningDifficulty);\n }\n if (message.oreRefiningDifficulty !== 0) {\n writer.uint32(456).uint64(message.oreRefiningDifficulty);\n }\n if (message.unguidedDefensiveSuccessRateNumerator !== 0) {\n writer.uint32(464).uint64(message.unguidedDefensiveSuccessRateNumerator);\n }\n if (message.unguidedDefensiveSuccessRateDenominator !== 0) {\n writer.uint32(472).uint64(message.unguidedDefensiveSuccessRateDenominator);\n }\n if (message.guidedDefensiveSuccessRateNumerator !== 0) {\n writer.uint32(480).uint64(message.guidedDefensiveSuccessRateNumerator);\n }\n if (message.guidedDefensiveSuccessRateDenominator !== 0) {\n writer.uint32(488).uint64(message.guidedDefensiveSuccessRateDenominator);\n }\n if (message.triggerRaidDefeatByDestruction !== false) {\n writer.uint32(496).bool(message.triggerRaidDefeatByDestruction);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): StructType {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStructType();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.id = longToNumber(reader.uint64());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.type = reader.string();\n continue;\n }\n case 63: {\n if (tag !== 506) {\n break;\n }\n\n message.class = reader.string();\n continue;\n }\n case 64: {\n if (tag !== 514) {\n break;\n }\n\n message.classAbbreviation = reader.string();\n continue;\n }\n case 65: {\n if (tag !== 522) {\n break;\n }\n\n message.defaultCosmeticModelNumber = reader.string();\n continue;\n }\n case 66: {\n if (tag !== 530) {\n break;\n }\n\n message.defaultCosmeticName = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.category = reader.int32() as any;\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.buildLimit = longToNumber(reader.uint64());\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.buildDifficulty = longToNumber(reader.uint64());\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.buildDraw = longToNumber(reader.uint64());\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.maxHealth = longToNumber(reader.uint64());\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.passiveDraw = longToNumber(reader.uint64());\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.possibleAmbit = longToNumber(reader.uint64());\n continue;\n }\n case 10: {\n if (tag !== 80) {\n break;\n }\n\n message.movable = reader.bool();\n continue;\n }\n case 11: {\n if (tag !== 88) {\n break;\n }\n\n message.slotBound = reader.bool();\n continue;\n }\n case 12: {\n if (tag !== 96) {\n break;\n }\n\n message.primaryWeapon = reader.int32() as any;\n continue;\n }\n case 13: {\n if (tag !== 104) {\n break;\n }\n\n message.primaryWeaponControl = reader.int32() as any;\n continue;\n }\n case 14: {\n if (tag !== 112) {\n break;\n }\n\n message.primaryWeaponCharge = longToNumber(reader.uint64());\n continue;\n }\n case 15: {\n if (tag !== 120) {\n break;\n }\n\n message.primaryWeaponAmbits = longToNumber(reader.uint64());\n continue;\n }\n case 16: {\n if (tag !== 128) {\n break;\n }\n\n message.primaryWeaponTargets = longToNumber(reader.uint64());\n continue;\n }\n case 17: {\n if (tag !== 136) {\n break;\n }\n\n message.primaryWeaponShots = longToNumber(reader.uint64());\n continue;\n }\n case 18: {\n if (tag !== 144) {\n break;\n }\n\n message.primaryWeaponDamage = longToNumber(reader.uint64());\n continue;\n }\n case 19: {\n if (tag !== 152) {\n break;\n }\n\n message.primaryWeaponBlockable = reader.bool();\n continue;\n }\n case 20: {\n if (tag !== 160) {\n break;\n }\n\n message.primaryWeaponCounterable = reader.bool();\n continue;\n }\n case 21: {\n if (tag !== 168) {\n break;\n }\n\n message.primaryWeaponRecoilDamage = longToNumber(reader.uint64());\n continue;\n }\n case 22: {\n if (tag !== 176) {\n break;\n }\n\n message.primaryWeaponShotSuccessRateNumerator = longToNumber(reader.uint64());\n continue;\n }\n case 23: {\n if (tag !== 184) {\n break;\n }\n\n message.primaryWeaponShotSuccessRateDenominator = longToNumber(reader.uint64());\n continue;\n }\n case 24: {\n if (tag !== 192) {\n break;\n }\n\n message.secondaryWeapon = reader.int32() as any;\n continue;\n }\n case 25: {\n if (tag !== 200) {\n break;\n }\n\n message.secondaryWeaponControl = reader.int32() as any;\n continue;\n }\n case 26: {\n if (tag !== 208) {\n break;\n }\n\n message.secondaryWeaponCharge = longToNumber(reader.uint64());\n continue;\n }\n case 27: {\n if (tag !== 216) {\n break;\n }\n\n message.secondaryWeaponAmbits = longToNumber(reader.uint64());\n continue;\n }\n case 28: {\n if (tag !== 224) {\n break;\n }\n\n message.secondaryWeaponTargets = longToNumber(reader.uint64());\n continue;\n }\n case 29: {\n if (tag !== 232) {\n break;\n }\n\n message.secondaryWeaponShots = longToNumber(reader.uint64());\n continue;\n }\n case 30: {\n if (tag !== 240) {\n break;\n }\n\n message.secondaryWeaponDamage = longToNumber(reader.uint64());\n continue;\n }\n case 31: {\n if (tag !== 248) {\n break;\n }\n\n message.secondaryWeaponBlockable = reader.bool();\n continue;\n }\n case 32: {\n if (tag !== 256) {\n break;\n }\n\n message.secondaryWeaponCounterable = reader.bool();\n continue;\n }\n case 33: {\n if (tag !== 264) {\n break;\n }\n\n message.secondaryWeaponRecoilDamage = longToNumber(reader.uint64());\n continue;\n }\n case 34: {\n if (tag !== 272) {\n break;\n }\n\n message.secondaryWeaponShotSuccessRateNumerator = longToNumber(reader.uint64());\n continue;\n }\n case 35: {\n if (tag !== 280) {\n break;\n }\n\n message.secondaryWeaponShotSuccessRateDenominator = longToNumber(reader.uint64());\n continue;\n }\n case 36: {\n if (tag !== 288) {\n break;\n }\n\n message.passiveWeaponry = reader.int32() as any;\n continue;\n }\n case 37: {\n if (tag !== 296) {\n break;\n }\n\n message.unitDefenses = reader.int32() as any;\n continue;\n }\n case 38: {\n if (tag !== 304) {\n break;\n }\n\n message.oreReserveDefenses = reader.int32() as any;\n continue;\n }\n case 39: {\n if (tag !== 312) {\n break;\n }\n\n message.planetaryDefenses = reader.int32() as any;\n continue;\n }\n case 40: {\n if (tag !== 320) {\n break;\n }\n\n message.planetaryMining = reader.int32() as any;\n continue;\n }\n case 41: {\n if (tag !== 328) {\n break;\n }\n\n message.planetaryRefinery = reader.int32() as any;\n continue;\n }\n case 42: {\n if (tag !== 336) {\n break;\n }\n\n message.powerGeneration = reader.int32() as any;\n continue;\n }\n case 43: {\n if (tag !== 344) {\n break;\n }\n\n message.activateCharge = longToNumber(reader.uint64());\n continue;\n }\n case 44: {\n if (tag !== 352) {\n break;\n }\n\n message.buildCharge = longToNumber(reader.uint64());\n continue;\n }\n case 45: {\n if (tag !== 360) {\n break;\n }\n\n message.defendChangeCharge = longToNumber(reader.uint64());\n continue;\n }\n case 46: {\n if (tag !== 368) {\n break;\n }\n\n message.moveCharge = longToNumber(reader.uint64());\n continue;\n }\n case 47: {\n if (tag !== 376) {\n break;\n }\n\n message.stealthActivateCharge = longToNumber(reader.uint64());\n continue;\n }\n case 48: {\n if (tag !== 384) {\n break;\n }\n\n message.attackReduction = longToNumber(reader.uint64());\n continue;\n }\n case 49: {\n if (tag !== 392) {\n break;\n }\n\n message.attackCounterable = reader.bool();\n continue;\n }\n case 50: {\n if (tag !== 400) {\n break;\n }\n\n message.stealthSystems = reader.bool();\n continue;\n }\n case 51: {\n if (tag !== 408) {\n break;\n }\n\n message.counterAttack = longToNumber(reader.uint64());\n continue;\n }\n case 52: {\n if (tag !== 416) {\n break;\n }\n\n message.counterAttackSameAmbit = longToNumber(reader.uint64());\n continue;\n }\n case 53: {\n if (tag !== 424) {\n break;\n }\n\n message.postDestructionDamage = longToNumber(reader.uint64());\n continue;\n }\n case 54: {\n if (tag !== 432) {\n break;\n }\n\n message.generatingRate = longToNumber(reader.uint64());\n continue;\n }\n case 55: {\n if (tag !== 440) {\n break;\n }\n\n message.planetaryShieldContribution = longToNumber(reader.uint64());\n continue;\n }\n case 56: {\n if (tag !== 448) {\n break;\n }\n\n message.oreMiningDifficulty = longToNumber(reader.uint64());\n continue;\n }\n case 57: {\n if (tag !== 456) {\n break;\n }\n\n message.oreRefiningDifficulty = longToNumber(reader.uint64());\n continue;\n }\n case 58: {\n if (tag !== 464) {\n break;\n }\n\n message.unguidedDefensiveSuccessRateNumerator = longToNumber(reader.uint64());\n continue;\n }\n case 59: {\n if (tag !== 472) {\n break;\n }\n\n message.unguidedDefensiveSuccessRateDenominator = longToNumber(reader.uint64());\n continue;\n }\n case 60: {\n if (tag !== 480) {\n break;\n }\n\n message.guidedDefensiveSuccessRateNumerator = longToNumber(reader.uint64());\n continue;\n }\n case 61: {\n if (tag !== 488) {\n break;\n }\n\n message.guidedDefensiveSuccessRateDenominator = longToNumber(reader.uint64());\n continue;\n }\n case 62: {\n if (tag !== 496) {\n break;\n }\n\n message.triggerRaidDefeatByDestruction = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): StructType {\n return {\n id: isSet(object.id) ? globalThis.Number(object.id) : 0,\n type: isSet(object.type) ? globalThis.String(object.type) : \"\",\n class: isSet(object.class) ? globalThis.String(object.class) : \"\",\n classAbbreviation: isSet(object.classAbbreviation) ? globalThis.String(object.classAbbreviation) : \"\",\n defaultCosmeticModelNumber: isSet(object.defaultCosmeticModelNumber)\n ? globalThis.String(object.defaultCosmeticModelNumber)\n : \"\",\n defaultCosmeticName: isSet(object.defaultCosmeticName) ? globalThis.String(object.defaultCosmeticName) : \"\",\n category: isSet(object.category) ? objectTypeFromJSON(object.category) : 0,\n buildLimit: isSet(object.buildLimit) ? globalThis.Number(object.buildLimit) : 0,\n buildDifficulty: isSet(object.buildDifficulty) ? globalThis.Number(object.buildDifficulty) : 0,\n buildDraw: isSet(object.buildDraw) ? globalThis.Number(object.buildDraw) : 0,\n maxHealth: isSet(object.maxHealth) ? globalThis.Number(object.maxHealth) : 0,\n passiveDraw: isSet(object.passiveDraw) ? globalThis.Number(object.passiveDraw) : 0,\n possibleAmbit: isSet(object.possibleAmbit) ? globalThis.Number(object.possibleAmbit) : 0,\n movable: isSet(object.movable) ? globalThis.Boolean(object.movable) : false,\n slotBound: isSet(object.slotBound) ? globalThis.Boolean(object.slotBound) : false,\n primaryWeapon: isSet(object.primaryWeapon) ? techActiveWeaponryFromJSON(object.primaryWeapon) : 0,\n primaryWeaponControl: isSet(object.primaryWeaponControl)\n ? techWeaponControlFromJSON(object.primaryWeaponControl)\n : 0,\n primaryWeaponCharge: isSet(object.primaryWeaponCharge) ? globalThis.Number(object.primaryWeaponCharge) : 0,\n primaryWeaponAmbits: isSet(object.primaryWeaponAmbits) ? globalThis.Number(object.primaryWeaponAmbits) : 0,\n primaryWeaponTargets: isSet(object.primaryWeaponTargets) ? globalThis.Number(object.primaryWeaponTargets) : 0,\n primaryWeaponShots: isSet(object.primaryWeaponShots) ? globalThis.Number(object.primaryWeaponShots) : 0,\n primaryWeaponDamage: isSet(object.primaryWeaponDamage) ? globalThis.Number(object.primaryWeaponDamage) : 0,\n primaryWeaponBlockable: isSet(object.primaryWeaponBlockable)\n ? globalThis.Boolean(object.primaryWeaponBlockable)\n : false,\n primaryWeaponCounterable: isSet(object.primaryWeaponCounterable)\n ? globalThis.Boolean(object.primaryWeaponCounterable)\n : false,\n primaryWeaponRecoilDamage: isSet(object.primaryWeaponRecoilDamage)\n ? globalThis.Number(object.primaryWeaponRecoilDamage)\n : 0,\n primaryWeaponShotSuccessRateNumerator: isSet(object.primaryWeaponShotSuccessRateNumerator)\n ? globalThis.Number(object.primaryWeaponShotSuccessRateNumerator)\n : 0,\n primaryWeaponShotSuccessRateDenominator: isSet(object.primaryWeaponShotSuccessRateDenominator)\n ? globalThis.Number(object.primaryWeaponShotSuccessRateDenominator)\n : 0,\n secondaryWeapon: isSet(object.secondaryWeapon) ? techActiveWeaponryFromJSON(object.secondaryWeapon) : 0,\n secondaryWeaponControl: isSet(object.secondaryWeaponControl)\n ? techWeaponControlFromJSON(object.secondaryWeaponControl)\n : 0,\n secondaryWeaponCharge: isSet(object.secondaryWeaponCharge) ? globalThis.Number(object.secondaryWeaponCharge) : 0,\n secondaryWeaponAmbits: isSet(object.secondaryWeaponAmbits) ? globalThis.Number(object.secondaryWeaponAmbits) : 0,\n secondaryWeaponTargets: isSet(object.secondaryWeaponTargets)\n ? globalThis.Number(object.secondaryWeaponTargets)\n : 0,\n secondaryWeaponShots: isSet(object.secondaryWeaponShots) ? globalThis.Number(object.secondaryWeaponShots) : 0,\n secondaryWeaponDamage: isSet(object.secondaryWeaponDamage) ? globalThis.Number(object.secondaryWeaponDamage) : 0,\n secondaryWeaponBlockable: isSet(object.secondaryWeaponBlockable)\n ? globalThis.Boolean(object.secondaryWeaponBlockable)\n : false,\n secondaryWeaponCounterable: isSet(object.secondaryWeaponCounterable)\n ? globalThis.Boolean(object.secondaryWeaponCounterable)\n : false,\n secondaryWeaponRecoilDamage: isSet(object.secondaryWeaponRecoilDamage)\n ? globalThis.Number(object.secondaryWeaponRecoilDamage)\n : 0,\n secondaryWeaponShotSuccessRateNumerator: isSet(object.secondaryWeaponShotSuccessRateNumerator)\n ? globalThis.Number(object.secondaryWeaponShotSuccessRateNumerator)\n : 0,\n secondaryWeaponShotSuccessRateDenominator: isSet(object.secondaryWeaponShotSuccessRateDenominator)\n ? globalThis.Number(object.secondaryWeaponShotSuccessRateDenominator)\n : 0,\n passiveWeaponry: isSet(object.passiveWeaponry) ? techPassiveWeaponryFromJSON(object.passiveWeaponry) : 0,\n unitDefenses: isSet(object.unitDefenses) ? techUnitDefensesFromJSON(object.unitDefenses) : 0,\n oreReserveDefenses: isSet(object.oreReserveDefenses)\n ? techOreReserveDefensesFromJSON(object.oreReserveDefenses)\n : 0,\n planetaryDefenses: isSet(object.planetaryDefenses) ? techPlanetaryDefensesFromJSON(object.planetaryDefenses) : 0,\n planetaryMining: isSet(object.planetaryMining) ? techPlanetaryMiningFromJSON(object.planetaryMining) : 0,\n planetaryRefinery: isSet(object.planetaryRefinery)\n ? techPlanetaryRefineriesFromJSON(object.planetaryRefinery)\n : 0,\n powerGeneration: isSet(object.powerGeneration) ? techPowerGenerationFromJSON(object.powerGeneration) : 0,\n activateCharge: isSet(object.activateCharge) ? globalThis.Number(object.activateCharge) : 0,\n buildCharge: isSet(object.buildCharge) ? globalThis.Number(object.buildCharge) : 0,\n defendChangeCharge: isSet(object.defendChangeCharge) ? globalThis.Number(object.defendChangeCharge) : 0,\n moveCharge: isSet(object.moveCharge) ? globalThis.Number(object.moveCharge) : 0,\n stealthActivateCharge: isSet(object.stealthActivateCharge) ? globalThis.Number(object.stealthActivateCharge) : 0,\n attackReduction: isSet(object.attackReduction) ? globalThis.Number(object.attackReduction) : 0,\n attackCounterable: isSet(object.attackCounterable) ? globalThis.Boolean(object.attackCounterable) : false,\n stealthSystems: isSet(object.stealthSystems) ? globalThis.Boolean(object.stealthSystems) : false,\n counterAttack: isSet(object.counterAttack) ? globalThis.Number(object.counterAttack) : 0,\n counterAttackSameAmbit: isSet(object.counterAttackSameAmbit)\n ? globalThis.Number(object.counterAttackSameAmbit)\n : 0,\n postDestructionDamage: isSet(object.postDestructionDamage) ? globalThis.Number(object.postDestructionDamage) : 0,\n generatingRate: isSet(object.generatingRate) ? globalThis.Number(object.generatingRate) : 0,\n planetaryShieldContribution: isSet(object.planetaryShieldContribution)\n ? globalThis.Number(object.planetaryShieldContribution)\n : 0,\n oreMiningDifficulty: isSet(object.oreMiningDifficulty) ? globalThis.Number(object.oreMiningDifficulty) : 0,\n oreRefiningDifficulty: isSet(object.oreRefiningDifficulty) ? globalThis.Number(object.oreRefiningDifficulty) : 0,\n unguidedDefensiveSuccessRateNumerator: isSet(object.unguidedDefensiveSuccessRateNumerator)\n ? globalThis.Number(object.unguidedDefensiveSuccessRateNumerator)\n : 0,\n unguidedDefensiveSuccessRateDenominator: isSet(object.unguidedDefensiveSuccessRateDenominator)\n ? globalThis.Number(object.unguidedDefensiveSuccessRateDenominator)\n : 0,\n guidedDefensiveSuccessRateNumerator: isSet(object.guidedDefensiveSuccessRateNumerator)\n ? globalThis.Number(object.guidedDefensiveSuccessRateNumerator)\n : 0,\n guidedDefensiveSuccessRateDenominator: isSet(object.guidedDefensiveSuccessRateDenominator)\n ? globalThis.Number(object.guidedDefensiveSuccessRateDenominator)\n : 0,\n triggerRaidDefeatByDestruction: isSet(object.triggerRaidDefeatByDestruction)\n ? globalThis.Boolean(object.triggerRaidDefeatByDestruction)\n : false,\n };\n },\n\n toJSON(message: StructType): unknown {\n const obj: any = {};\n if (message.id !== 0) {\n obj.id = Math.round(message.id);\n }\n if (message.type !== \"\") {\n obj.type = message.type;\n }\n if (message.class !== \"\") {\n obj.class = message.class;\n }\n if (message.classAbbreviation !== \"\") {\n obj.classAbbreviation = message.classAbbreviation;\n }\n if (message.defaultCosmeticModelNumber !== \"\") {\n obj.defaultCosmeticModelNumber = message.defaultCosmeticModelNumber;\n }\n if (message.defaultCosmeticName !== \"\") {\n obj.defaultCosmeticName = message.defaultCosmeticName;\n }\n if (message.category !== 0) {\n obj.category = objectTypeToJSON(message.category);\n }\n if (message.buildLimit !== 0) {\n obj.buildLimit = Math.round(message.buildLimit);\n }\n if (message.buildDifficulty !== 0) {\n obj.buildDifficulty = Math.round(message.buildDifficulty);\n }\n if (message.buildDraw !== 0) {\n obj.buildDraw = Math.round(message.buildDraw);\n }\n if (message.maxHealth !== 0) {\n obj.maxHealth = Math.round(message.maxHealth);\n }\n if (message.passiveDraw !== 0) {\n obj.passiveDraw = Math.round(message.passiveDraw);\n }\n if (message.possibleAmbit !== 0) {\n obj.possibleAmbit = Math.round(message.possibleAmbit);\n }\n if (message.movable !== false) {\n obj.movable = message.movable;\n }\n if (message.slotBound !== false) {\n obj.slotBound = message.slotBound;\n }\n if (message.primaryWeapon !== 0) {\n obj.primaryWeapon = techActiveWeaponryToJSON(message.primaryWeapon);\n }\n if (message.primaryWeaponControl !== 0) {\n obj.primaryWeaponControl = techWeaponControlToJSON(message.primaryWeaponControl);\n }\n if (message.primaryWeaponCharge !== 0) {\n obj.primaryWeaponCharge = Math.round(message.primaryWeaponCharge);\n }\n if (message.primaryWeaponAmbits !== 0) {\n obj.primaryWeaponAmbits = Math.round(message.primaryWeaponAmbits);\n }\n if (message.primaryWeaponTargets !== 0) {\n obj.primaryWeaponTargets = Math.round(message.primaryWeaponTargets);\n }\n if (message.primaryWeaponShots !== 0) {\n obj.primaryWeaponShots = Math.round(message.primaryWeaponShots);\n }\n if (message.primaryWeaponDamage !== 0) {\n obj.primaryWeaponDamage = Math.round(message.primaryWeaponDamage);\n }\n if (message.primaryWeaponBlockable !== false) {\n obj.primaryWeaponBlockable = message.primaryWeaponBlockable;\n }\n if (message.primaryWeaponCounterable !== false) {\n obj.primaryWeaponCounterable = message.primaryWeaponCounterable;\n }\n if (message.primaryWeaponRecoilDamage !== 0) {\n obj.primaryWeaponRecoilDamage = Math.round(message.primaryWeaponRecoilDamage);\n }\n if (message.primaryWeaponShotSuccessRateNumerator !== 0) {\n obj.primaryWeaponShotSuccessRateNumerator = Math.round(message.primaryWeaponShotSuccessRateNumerator);\n }\n if (message.primaryWeaponShotSuccessRateDenominator !== 0) {\n obj.primaryWeaponShotSuccessRateDenominator = Math.round(message.primaryWeaponShotSuccessRateDenominator);\n }\n if (message.secondaryWeapon !== 0) {\n obj.secondaryWeapon = techActiveWeaponryToJSON(message.secondaryWeapon);\n }\n if (message.secondaryWeaponControl !== 0) {\n obj.secondaryWeaponControl = techWeaponControlToJSON(message.secondaryWeaponControl);\n }\n if (message.secondaryWeaponCharge !== 0) {\n obj.secondaryWeaponCharge = Math.round(message.secondaryWeaponCharge);\n }\n if (message.secondaryWeaponAmbits !== 0) {\n obj.secondaryWeaponAmbits = Math.round(message.secondaryWeaponAmbits);\n }\n if (message.secondaryWeaponTargets !== 0) {\n obj.secondaryWeaponTargets = Math.round(message.secondaryWeaponTargets);\n }\n if (message.secondaryWeaponShots !== 0) {\n obj.secondaryWeaponShots = Math.round(message.secondaryWeaponShots);\n }\n if (message.secondaryWeaponDamage !== 0) {\n obj.secondaryWeaponDamage = Math.round(message.secondaryWeaponDamage);\n }\n if (message.secondaryWeaponBlockable !== false) {\n obj.secondaryWeaponBlockable = message.secondaryWeaponBlockable;\n }\n if (message.secondaryWeaponCounterable !== false) {\n obj.secondaryWeaponCounterable = message.secondaryWeaponCounterable;\n }\n if (message.secondaryWeaponRecoilDamage !== 0) {\n obj.secondaryWeaponRecoilDamage = Math.round(message.secondaryWeaponRecoilDamage);\n }\n if (message.secondaryWeaponShotSuccessRateNumerator !== 0) {\n obj.secondaryWeaponShotSuccessRateNumerator = Math.round(message.secondaryWeaponShotSuccessRateNumerator);\n }\n if (message.secondaryWeaponShotSuccessRateDenominator !== 0) {\n obj.secondaryWeaponShotSuccessRateDenominator = Math.round(message.secondaryWeaponShotSuccessRateDenominator);\n }\n if (message.passiveWeaponry !== 0) {\n obj.passiveWeaponry = techPassiveWeaponryToJSON(message.passiveWeaponry);\n }\n if (message.unitDefenses !== 0) {\n obj.unitDefenses = techUnitDefensesToJSON(message.unitDefenses);\n }\n if (message.oreReserveDefenses !== 0) {\n obj.oreReserveDefenses = techOreReserveDefensesToJSON(message.oreReserveDefenses);\n }\n if (message.planetaryDefenses !== 0) {\n obj.planetaryDefenses = techPlanetaryDefensesToJSON(message.planetaryDefenses);\n }\n if (message.planetaryMining !== 0) {\n obj.planetaryMining = techPlanetaryMiningToJSON(message.planetaryMining);\n }\n if (message.planetaryRefinery !== 0) {\n obj.planetaryRefinery = techPlanetaryRefineriesToJSON(message.planetaryRefinery);\n }\n if (message.powerGeneration !== 0) {\n obj.powerGeneration = techPowerGenerationToJSON(message.powerGeneration);\n }\n if (message.activateCharge !== 0) {\n obj.activateCharge = Math.round(message.activateCharge);\n }\n if (message.buildCharge !== 0) {\n obj.buildCharge = Math.round(message.buildCharge);\n }\n if (message.defendChangeCharge !== 0) {\n obj.defendChangeCharge = Math.round(message.defendChangeCharge);\n }\n if (message.moveCharge !== 0) {\n obj.moveCharge = Math.round(message.moveCharge);\n }\n if (message.stealthActivateCharge !== 0) {\n obj.stealthActivateCharge = Math.round(message.stealthActivateCharge);\n }\n if (message.attackReduction !== 0) {\n obj.attackReduction = Math.round(message.attackReduction);\n }\n if (message.attackCounterable !== false) {\n obj.attackCounterable = message.attackCounterable;\n }\n if (message.stealthSystems !== false) {\n obj.stealthSystems = message.stealthSystems;\n }\n if (message.counterAttack !== 0) {\n obj.counterAttack = Math.round(message.counterAttack);\n }\n if (message.counterAttackSameAmbit !== 0) {\n obj.counterAttackSameAmbit = Math.round(message.counterAttackSameAmbit);\n }\n if (message.postDestructionDamage !== 0) {\n obj.postDestructionDamage = Math.round(message.postDestructionDamage);\n }\n if (message.generatingRate !== 0) {\n obj.generatingRate = Math.round(message.generatingRate);\n }\n if (message.planetaryShieldContribution !== 0) {\n obj.planetaryShieldContribution = Math.round(message.planetaryShieldContribution);\n }\n if (message.oreMiningDifficulty !== 0) {\n obj.oreMiningDifficulty = Math.round(message.oreMiningDifficulty);\n }\n if (message.oreRefiningDifficulty !== 0) {\n obj.oreRefiningDifficulty = Math.round(message.oreRefiningDifficulty);\n }\n if (message.unguidedDefensiveSuccessRateNumerator !== 0) {\n obj.unguidedDefensiveSuccessRateNumerator = Math.round(message.unguidedDefensiveSuccessRateNumerator);\n }\n if (message.unguidedDefensiveSuccessRateDenominator !== 0) {\n obj.unguidedDefensiveSuccessRateDenominator = Math.round(message.unguidedDefensiveSuccessRateDenominator);\n }\n if (message.guidedDefensiveSuccessRateNumerator !== 0) {\n obj.guidedDefensiveSuccessRateNumerator = Math.round(message.guidedDefensiveSuccessRateNumerator);\n }\n if (message.guidedDefensiveSuccessRateDenominator !== 0) {\n obj.guidedDefensiveSuccessRateDenominator = Math.round(message.guidedDefensiveSuccessRateDenominator);\n }\n if (message.triggerRaidDefeatByDestruction !== false) {\n obj.triggerRaidDefeatByDestruction = message.triggerRaidDefeatByDestruction;\n }\n return obj;\n },\n\n create, I>>(base?: I): StructType {\n return StructType.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): StructType {\n const message = createBaseStructType();\n message.id = object.id ?? 0;\n message.type = object.type ?? \"\";\n message.class = object.class ?? \"\";\n message.classAbbreviation = object.classAbbreviation ?? \"\";\n message.defaultCosmeticModelNumber = object.defaultCosmeticModelNumber ?? \"\";\n message.defaultCosmeticName = object.defaultCosmeticName ?? \"\";\n message.category = object.category ?? 0;\n message.buildLimit = object.buildLimit ?? 0;\n message.buildDifficulty = object.buildDifficulty ?? 0;\n message.buildDraw = object.buildDraw ?? 0;\n message.maxHealth = object.maxHealth ?? 0;\n message.passiveDraw = object.passiveDraw ?? 0;\n message.possibleAmbit = object.possibleAmbit ?? 0;\n message.movable = object.movable ?? false;\n message.slotBound = object.slotBound ?? false;\n message.primaryWeapon = object.primaryWeapon ?? 0;\n message.primaryWeaponControl = object.primaryWeaponControl ?? 0;\n message.primaryWeaponCharge = object.primaryWeaponCharge ?? 0;\n message.primaryWeaponAmbits = object.primaryWeaponAmbits ?? 0;\n message.primaryWeaponTargets = object.primaryWeaponTargets ?? 0;\n message.primaryWeaponShots = object.primaryWeaponShots ?? 0;\n message.primaryWeaponDamage = object.primaryWeaponDamage ?? 0;\n message.primaryWeaponBlockable = object.primaryWeaponBlockable ?? false;\n message.primaryWeaponCounterable = object.primaryWeaponCounterable ?? false;\n message.primaryWeaponRecoilDamage = object.primaryWeaponRecoilDamage ?? 0;\n message.primaryWeaponShotSuccessRateNumerator = object.primaryWeaponShotSuccessRateNumerator ?? 0;\n message.primaryWeaponShotSuccessRateDenominator = object.primaryWeaponShotSuccessRateDenominator ?? 0;\n message.secondaryWeapon = object.secondaryWeapon ?? 0;\n message.secondaryWeaponControl = object.secondaryWeaponControl ?? 0;\n message.secondaryWeaponCharge = object.secondaryWeaponCharge ?? 0;\n message.secondaryWeaponAmbits = object.secondaryWeaponAmbits ?? 0;\n message.secondaryWeaponTargets = object.secondaryWeaponTargets ?? 0;\n message.secondaryWeaponShots = object.secondaryWeaponShots ?? 0;\n message.secondaryWeaponDamage = object.secondaryWeaponDamage ?? 0;\n message.secondaryWeaponBlockable = object.secondaryWeaponBlockable ?? false;\n message.secondaryWeaponCounterable = object.secondaryWeaponCounterable ?? false;\n message.secondaryWeaponRecoilDamage = object.secondaryWeaponRecoilDamage ?? 0;\n message.secondaryWeaponShotSuccessRateNumerator = object.secondaryWeaponShotSuccessRateNumerator ?? 0;\n message.secondaryWeaponShotSuccessRateDenominator = object.secondaryWeaponShotSuccessRateDenominator ?? 0;\n message.passiveWeaponry = object.passiveWeaponry ?? 0;\n message.unitDefenses = object.unitDefenses ?? 0;\n message.oreReserveDefenses = object.oreReserveDefenses ?? 0;\n message.planetaryDefenses = object.planetaryDefenses ?? 0;\n message.planetaryMining = object.planetaryMining ?? 0;\n message.planetaryRefinery = object.planetaryRefinery ?? 0;\n message.powerGeneration = object.powerGeneration ?? 0;\n message.activateCharge = object.activateCharge ?? 0;\n message.buildCharge = object.buildCharge ?? 0;\n message.defendChangeCharge = object.defendChangeCharge ?? 0;\n message.moveCharge = object.moveCharge ?? 0;\n message.stealthActivateCharge = object.stealthActivateCharge ?? 0;\n message.attackReduction = object.attackReduction ?? 0;\n message.attackCounterable = object.attackCounterable ?? false;\n message.stealthSystems = object.stealthSystems ?? false;\n message.counterAttack = object.counterAttack ?? 0;\n message.counterAttackSameAmbit = object.counterAttackSameAmbit ?? 0;\n message.postDestructionDamage = object.postDestructionDamage ?? 0;\n message.generatingRate = object.generatingRate ?? 0;\n message.planetaryShieldContribution = object.planetaryShieldContribution ?? 0;\n message.oreMiningDifficulty = object.oreMiningDifficulty ?? 0;\n message.oreRefiningDifficulty = object.oreRefiningDifficulty ?? 0;\n message.unguidedDefensiveSuccessRateNumerator = object.unguidedDefensiveSuccessRateNumerator ?? 0;\n message.unguidedDefensiveSuccessRateDenominator = object.unguidedDefensiveSuccessRateDenominator ?? 0;\n message.guidedDefensiveSuccessRateNumerator = object.guidedDefensiveSuccessRateNumerator ?? 0;\n message.guidedDefensiveSuccessRateDenominator = object.guidedDefensiveSuccessRateDenominator ?? 0;\n message.triggerRaidDefeatByDestruction = object.triggerRaidDefeatByDestruction ?? false;\n return message;\n },\n};\n\nfunction createBaseStructDefender(): StructDefender {\n return { protectedStructId: \"\", defendingStructId: \"\" };\n}\n\nexport const StructDefender: MessageFns = {\n encode(message: StructDefender, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.protectedStructId !== \"\") {\n writer.uint32(10).string(message.protectedStructId);\n }\n if (message.defendingStructId !== \"\") {\n writer.uint32(18).string(message.defendingStructId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): StructDefender {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStructDefender();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.protectedStructId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.defendingStructId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): StructDefender {\n return {\n protectedStructId: isSet(object.protectedStructId) ? globalThis.String(object.protectedStructId) : \"\",\n defendingStructId: isSet(object.defendingStructId) ? globalThis.String(object.defendingStructId) : \"\",\n };\n },\n\n toJSON(message: StructDefender): unknown {\n const obj: any = {};\n if (message.protectedStructId !== \"\") {\n obj.protectedStructId = message.protectedStructId;\n }\n if (message.defendingStructId !== \"\") {\n obj.defendingStructId = message.defendingStructId;\n }\n return obj;\n },\n\n create, I>>(base?: I): StructDefender {\n return StructDefender.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): StructDefender {\n const message = createBaseStructDefender();\n message.protectedStructId = object.protectedStructId ?? \"\";\n message.defendingStructId = object.defendingStructId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseStructDefenders(): StructDefenders {\n return { structDefenders: [] };\n}\n\nexport const StructDefenders: MessageFns = {\n encode(message: StructDefenders, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.structDefenders) {\n StructDefender.encode(v!, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): StructDefenders {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStructDefenders();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.structDefenders.push(StructDefender.decode(reader, reader.uint32()));\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): StructDefenders {\n return {\n structDefenders: globalThis.Array.isArray(object?.structDefenders)\n ? object.structDefenders.map((e: any) => StructDefender.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: StructDefenders): unknown {\n const obj: any = {};\n if (message.structDefenders?.length) {\n obj.structDefenders = message.structDefenders.map((e) => StructDefender.toJSON(e));\n }\n return obj;\n },\n\n create, I>>(base?: I): StructDefenders {\n return StructDefenders.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): StructDefenders {\n const message = createBaseStructDefenders();\n message.structDefenders = object.structDefenders?.map((e) => StructDefender.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseStructAttributeRecord(): StructAttributeRecord {\n return { attributeId: \"\", value: 0 };\n}\n\nexport const StructAttributeRecord: MessageFns = {\n encode(message: StructAttributeRecord, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.attributeId !== \"\") {\n writer.uint32(10).string(message.attributeId);\n }\n if (message.value !== 0) {\n writer.uint32(16).uint64(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): StructAttributeRecord {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStructAttributeRecord();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.attributeId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.value = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): StructAttributeRecord {\n return {\n attributeId: isSet(object.attributeId) ? globalThis.String(object.attributeId) : \"\",\n value: isSet(object.value) ? globalThis.Number(object.value) : 0,\n };\n },\n\n toJSON(message: StructAttributeRecord): unknown {\n const obj: any = {};\n if (message.attributeId !== \"\") {\n obj.attributeId = message.attributeId;\n }\n if (message.value !== 0) {\n obj.value = Math.round(message.value);\n }\n return obj;\n },\n\n create, I>>(base?: I): StructAttributeRecord {\n return StructAttributeRecord.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): StructAttributeRecord {\n const message = createBaseStructAttributeRecord();\n message.attributeId = object.attributeId ?? \"\";\n message.value = object.value ?? 0;\n return message;\n },\n};\n\nfunction createBaseStructAttributes(): StructAttributes {\n return {\n health: 0,\n status: 0,\n blockStartBuild: 0,\n blockStartOreMine: 0,\n blockStartOreRefine: 0,\n protectedStructIndex: 0,\n typeCount: 0,\n isMaterialized: false,\n isBuilt: false,\n isOnline: false,\n isHidden: false,\n isDestroyed: false,\n isLocked: false,\n };\n}\n\nexport const StructAttributes: MessageFns = {\n encode(message: StructAttributes, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.health !== 0) {\n writer.uint32(8).uint64(message.health);\n }\n if (message.status !== 0) {\n writer.uint32(16).uint64(message.status);\n }\n if (message.blockStartBuild !== 0) {\n writer.uint32(24).uint64(message.blockStartBuild);\n }\n if (message.blockStartOreMine !== 0) {\n writer.uint32(32).uint64(message.blockStartOreMine);\n }\n if (message.blockStartOreRefine !== 0) {\n writer.uint32(40).uint64(message.blockStartOreRefine);\n }\n if (message.protectedStructIndex !== 0) {\n writer.uint32(48).uint64(message.protectedStructIndex);\n }\n if (message.typeCount !== 0) {\n writer.uint32(56).uint64(message.typeCount);\n }\n if (message.isMaterialized !== false) {\n writer.uint32(64).bool(message.isMaterialized);\n }\n if (message.isBuilt !== false) {\n writer.uint32(72).bool(message.isBuilt);\n }\n if (message.isOnline !== false) {\n writer.uint32(80).bool(message.isOnline);\n }\n if (message.isHidden !== false) {\n writer.uint32(88).bool(message.isHidden);\n }\n if (message.isDestroyed !== false) {\n writer.uint32(96).bool(message.isDestroyed);\n }\n if (message.isLocked !== false) {\n writer.uint32(104).bool(message.isLocked);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): StructAttributes {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStructAttributes();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.health = longToNumber(reader.uint64());\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.status = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.blockStartBuild = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.blockStartOreMine = longToNumber(reader.uint64());\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.blockStartOreRefine = longToNumber(reader.uint64());\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.protectedStructIndex = longToNumber(reader.uint64());\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.typeCount = longToNumber(reader.uint64());\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.isMaterialized = reader.bool();\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.isBuilt = reader.bool();\n continue;\n }\n case 10: {\n if (tag !== 80) {\n break;\n }\n\n message.isOnline = reader.bool();\n continue;\n }\n case 11: {\n if (tag !== 88) {\n break;\n }\n\n message.isHidden = reader.bool();\n continue;\n }\n case 12: {\n if (tag !== 96) {\n break;\n }\n\n message.isDestroyed = reader.bool();\n continue;\n }\n case 13: {\n if (tag !== 104) {\n break;\n }\n\n message.isLocked = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): StructAttributes {\n return {\n health: isSet(object.health) ? globalThis.Number(object.health) : 0,\n status: isSet(object.status) ? globalThis.Number(object.status) : 0,\n blockStartBuild: isSet(object.blockStartBuild) ? globalThis.Number(object.blockStartBuild) : 0,\n blockStartOreMine: isSet(object.blockStartOreMine) ? globalThis.Number(object.blockStartOreMine) : 0,\n blockStartOreRefine: isSet(object.blockStartOreRefine) ? globalThis.Number(object.blockStartOreRefine) : 0,\n protectedStructIndex: isSet(object.protectedStructIndex) ? globalThis.Number(object.protectedStructIndex) : 0,\n typeCount: isSet(object.typeCount) ? globalThis.Number(object.typeCount) : 0,\n isMaterialized: isSet(object.isMaterialized) ? globalThis.Boolean(object.isMaterialized) : false,\n isBuilt: isSet(object.isBuilt) ? globalThis.Boolean(object.isBuilt) : false,\n isOnline: isSet(object.isOnline) ? globalThis.Boolean(object.isOnline) : false,\n isHidden: isSet(object.isHidden) ? globalThis.Boolean(object.isHidden) : false,\n isDestroyed: isSet(object.isDestroyed) ? globalThis.Boolean(object.isDestroyed) : false,\n isLocked: isSet(object.isLocked) ? globalThis.Boolean(object.isLocked) : false,\n };\n },\n\n toJSON(message: StructAttributes): unknown {\n const obj: any = {};\n if (message.health !== 0) {\n obj.health = Math.round(message.health);\n }\n if (message.status !== 0) {\n obj.status = Math.round(message.status);\n }\n if (message.blockStartBuild !== 0) {\n obj.blockStartBuild = Math.round(message.blockStartBuild);\n }\n if (message.blockStartOreMine !== 0) {\n obj.blockStartOreMine = Math.round(message.blockStartOreMine);\n }\n if (message.blockStartOreRefine !== 0) {\n obj.blockStartOreRefine = Math.round(message.blockStartOreRefine);\n }\n if (message.protectedStructIndex !== 0) {\n obj.protectedStructIndex = Math.round(message.protectedStructIndex);\n }\n if (message.typeCount !== 0) {\n obj.typeCount = Math.round(message.typeCount);\n }\n if (message.isMaterialized !== false) {\n obj.isMaterialized = message.isMaterialized;\n }\n if (message.isBuilt !== false) {\n obj.isBuilt = message.isBuilt;\n }\n if (message.isOnline !== false) {\n obj.isOnline = message.isOnline;\n }\n if (message.isHidden !== false) {\n obj.isHidden = message.isHidden;\n }\n if (message.isDestroyed !== false) {\n obj.isDestroyed = message.isDestroyed;\n }\n if (message.isLocked !== false) {\n obj.isLocked = message.isLocked;\n }\n return obj;\n },\n\n create, I>>(base?: I): StructAttributes {\n return StructAttributes.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): StructAttributes {\n const message = createBaseStructAttributes();\n message.health = object.health ?? 0;\n message.status = object.status ?? 0;\n message.blockStartBuild = object.blockStartBuild ?? 0;\n message.blockStartOreMine = object.blockStartOreMine ?? 0;\n message.blockStartOreRefine = object.blockStartOreRefine ?? 0;\n message.protectedStructIndex = object.protectedStructIndex ?? 0;\n message.typeCount = object.typeCount ?? 0;\n message.isMaterialized = object.isMaterialized ?? false;\n message.isBuilt = object.isBuilt ?? false;\n message.isOnline = object.isOnline ?? false;\n message.isHidden = object.isHidden ?? false;\n message.isDestroyed = object.isDestroyed ?? false;\n message.isLocked = object.isLocked ?? false;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/substation.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface Substation {\n id: string;\n owner: string;\n creator: string;\n}\n\nfunction createBaseSubstation(): Substation {\n return { id: \"\", owner: \"\", creator: \"\" };\n}\n\nexport const Substation: MessageFns = {\n encode(message: Substation, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.owner !== \"\") {\n writer.uint32(18).string(message.owner);\n }\n if (message.creator !== \"\") {\n writer.uint32(26).string(message.creator);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Substation {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSubstation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.owner = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Substation {\n return {\n id: isSet(object.id) ? globalThis.String(object.id) : \"\",\n owner: isSet(object.owner) ? globalThis.String(object.owner) : \"\",\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n };\n },\n\n toJSON(message: Substation): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n if (message.owner !== \"\") {\n obj.owner = message.owner;\n }\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n return obj;\n },\n\n create, I>>(base?: I): Substation {\n return Substation.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Substation {\n const message = createBaseSubstation();\n message.id = object.id ?? \"\";\n message.owner = object.owner ?? \"\";\n message.creator = object.creator ?? \"\";\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/tx.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { Coin } from \"../../cosmos/base/v1beta1/coin\";\nimport { Timestamp } from \"../../google/protobuf/timestamp\";\nimport { Fleet } from \"./fleet\";\nimport { GuildMembershipApplication } from \"./guild\";\nimport {\n allocationType,\n allocationTypeFromJSON,\n allocationTypeToJSON,\n ambit,\n ambitFromJSON,\n ambitToJSON,\n guildJoinBypassLevel,\n guildJoinBypassLevelFromJSON,\n guildJoinBypassLevelToJSON,\n objectType,\n objectTypeFromJSON,\n objectTypeToJSON,\n providerAccessPolicy,\n providerAccessPolicyFromJSON,\n providerAccessPolicyToJSON,\n} from \"./keys\";\nimport { Params } from \"./params\";\nimport { Planet } from \"./planet\";\nimport { Struct } from \"./struct\";\n\nexport const protobufPackage = \"structs.structs\";\n\n/** MsgUpdateParams is the Msg/UpdateParams request type. */\nexport interface MsgUpdateParams {\n /** authority is the address that controls the module (defaults to x/gov unless overwritten). */\n authority: string;\n /**\n * params defines the module parameters to update.\n *\n * NOTE: All parameters must be supplied.\n */\n params: Params | undefined;\n}\n\n/**\n * MsgUpdateParamsResponse defines the response structure for executing a\n * MsgUpdateParams message.\n */\nexport interface MsgUpdateParamsResponse {\n}\n\nexport interface MsgAddressRegister {\n creator: string;\n playerId: string;\n address: string;\n proofPubKey: string;\n proofSignature: string;\n permissions: number;\n}\n\nexport interface MsgAddressRegisterResponse {\n}\n\nexport interface MsgAddressRevoke {\n creator: string;\n address: string;\n}\n\nexport interface MsgAddressRevokeResponse {\n}\n\nexport interface MsgAllocationCreate {\n creator: string;\n controller: string;\n sourceObjectId: string;\n allocationType: allocationType;\n power: number;\n}\n\nexport interface MsgAllocationCreateResponse {\n allocationId: string;\n}\n\nexport interface MsgAllocationDelete {\n creator: string;\n allocationId: string;\n}\n\nexport interface MsgAllocationDeleteResponse {\n allocationId: string;\n}\n\nexport interface MsgAllocationUpdate {\n creator: string;\n allocationId: string;\n power: number;\n}\n\nexport interface MsgAllocationUpdateResponse {\n allocationId: string;\n}\n\nexport interface MsgAllocationTransfer {\n creator: string;\n allocationId: string;\n controller: string;\n}\n\nexport interface MsgAllocationTransferResponse {\n allocationId: string;\n}\n\nexport interface MsgFleetMove {\n creator: string;\n fleetId: string;\n destinationLocationId: string;\n}\n\nexport interface MsgFleetMoveResponse {\n fleet: Fleet | undefined;\n}\n\nexport interface MsgGuildBankMint {\n creator: string;\n amountAlpha: number;\n amountToken: number;\n}\n\nexport interface MsgGuildBankMintResponse {\n}\n\nexport interface MsgGuildBankRedeem {\n creator: string;\n amountToken: Coin | undefined;\n}\n\nexport interface MsgGuildBankRedeemResponse {\n}\n\nexport interface MsgGuildBankConfiscateAndBurn {\n creator: string;\n address: string;\n amountToken: number;\n}\n\nexport interface MsgGuildBankConfiscateAndBurnResponse {\n}\n\nexport interface MsgGuildCreate {\n creator: string;\n reactorId: string;\n endpoint: string;\n entrySubstationId: string;\n}\n\nexport interface MsgGuildCreateResponse {\n guildId: string;\n}\n\nexport interface MsgGuildUpdateOwnerId {\n creator: string;\n guildId: string;\n owner: string;\n}\n\nexport interface MsgGuildUpdateEntrySubstationId {\n creator: string;\n guildId: string;\n entrySubstationId: string;\n}\n\nexport interface MsgGuildUpdateEndpoint {\n creator: string;\n guildId: string;\n endpoint: string;\n}\n\nexport interface MsgGuildUpdateJoinInfusionMinimum {\n creator: string;\n guildId: string;\n joinInfusionMinimum: number;\n}\n\nexport interface MsgGuildUpdateJoinInfusionMinimumBypassByRequest {\n creator: string;\n guildId: string;\n guildJoinBypassLevel: guildJoinBypassLevel;\n}\n\nexport interface MsgGuildUpdateJoinInfusionMinimumBypassByInvite {\n creator: string;\n guildId: string;\n guildJoinBypassLevel: guildJoinBypassLevel;\n}\n\nexport interface MsgGuildUpdateEntryRank {\n creator: string;\n newEntryRank: number;\n}\n\nexport interface MsgGuildUpdateName {\n creator: string;\n guildId: string;\n name: string;\n}\n\nexport interface MsgGuildUpdatePfp {\n creator: string;\n guildId: string;\n pfp: string;\n}\n\nexport interface MsgGuildUpdateResponse {\n}\n\nexport interface MsgGuildMembershipInvite {\n creator: string;\n guildId: string;\n playerId: string;\n substationId: string;\n}\n\nexport interface MsgGuildMembershipInviteApprove {\n creator: string;\n guildId: string;\n playerId: string;\n substationId: string;\n}\n\nexport interface MsgGuildMembershipInviteDeny {\n creator: string;\n guildId: string;\n playerId: string;\n}\n\nexport interface MsgGuildMembershipInviteRevoke {\n creator: string;\n guildId: string;\n playerId: string;\n}\n\nexport interface MsgGuildMembershipJoin {\n creator: string;\n guildId: string;\n playerId: string;\n substationId: string;\n infusionId: string[];\n}\n\nexport interface MsgGuildMembershipJoinProxy {\n creator: string;\n address: string;\n substationId: string;\n proofPubKey: string;\n proofSignature: string;\n playerName: string;\n playerPfp: string;\n}\n\nexport interface MsgGuildMembershipKick {\n creator: string;\n guildId: string;\n playerId: string;\n}\n\nexport interface MsgGuildMembershipRequest {\n creator: string;\n guildId: string;\n playerId: string;\n substationId: string;\n}\n\nexport interface MsgGuildMembershipRequestApprove {\n creator: string;\n guildId: string;\n playerId: string;\n substationId: string;\n}\n\nexport interface MsgGuildMembershipRequestDeny {\n creator: string;\n guildId: string;\n playerId: string;\n}\n\nexport interface MsgGuildMembershipRequestRevoke {\n creator: string;\n guildId: string;\n playerId: string;\n}\n\nexport interface MsgGuildMembershipResponse {\n guildMembershipApplication: GuildMembershipApplication | undefined;\n}\n\nexport interface MsgPermissionGrantOnObject {\n creator: string;\n objectId: string;\n playerId: string;\n permissions: number;\n}\n\nexport interface MsgPermissionGrantOnAddress {\n creator: string;\n address: string;\n permissions: number;\n}\n\nexport interface MsgPermissionRevokeOnObject {\n creator: string;\n objectId: string;\n playerId: string;\n permissions: number;\n}\n\nexport interface MsgPermissionRevokeOnAddress {\n creator: string;\n address: string;\n permissions: number;\n}\n\nexport interface MsgPermissionSetOnObject {\n creator: string;\n objectId: string;\n playerId: string;\n permissions: number;\n}\n\nexport interface MsgPermissionSetOnAddress {\n creator: string;\n address: string;\n permissions: number;\n}\n\nexport interface MsgPermissionGuildRankSet {\n creator: string;\n objectId: string;\n guildId: string;\n permission: number;\n rank: number;\n}\n\nexport interface MsgPermissionGuildRankRevoke {\n creator: string;\n objectId: string;\n guildId: string;\n permission: number;\n}\n\nexport interface MsgPermissionResponse {\n}\n\nexport interface MsgPlanetExplore {\n creator: string;\n playerId: string;\n}\n\nexport interface MsgPlanetExploreResponse {\n planet: Planet | undefined;\n}\n\nexport interface MsgPlanetRaidComplete {\n creator: string;\n fleetId: string;\n proof: string;\n nonce: string;\n}\n\nexport interface MsgPlanetRaidCompleteResponse {\n fleet: Fleet | undefined;\n planet: Planet | undefined;\n oreStolen: number;\n}\n\nexport interface MsgPlanetUpdateName {\n creator: string;\n planetId: string;\n name: string;\n}\n\nexport interface MsgPlanetUpdateResponse {\n}\n\nexport interface MsgPlayerUpdatePrimaryAddress {\n creator: string;\n primaryAddress: string;\n}\n\nexport interface MsgPlayerUpdatePrimaryAddressResponse {\n}\n\nexport interface MsgPlayerUpdateGuildRank {\n creator: string;\n playerId: string;\n guildRank: number;\n}\n\nexport interface MsgPlayerUpdateGuildRankResponse {\n}\n\nexport interface MsgPlayerUpdateName {\n creator: string;\n playerId: string;\n name: string;\n}\n\nexport interface MsgPlayerUpdatePfp {\n creator: string;\n playerId: string;\n pfp: string;\n}\n\nexport interface MsgPlayerUpdateResponse {\n}\n\nexport interface MsgPlayerResume {\n creator: string;\n playerId: string;\n}\n\nexport interface MsgPlayerResumeResponse {\n}\n\n/**\n * MsgReactorInfuse defines a SDK message for performing a delegation of coins\n * from a delegator to a validator.\n */\nexport interface MsgReactorInfuse {\n creator: string;\n delegatorAddress: string;\n validatorAddress: string;\n amount: Coin | undefined;\n}\n\n/** MsgReactorInfuseResponse defines the Msg/Delegate response type. */\nexport interface MsgReactorInfuseResponse {\n}\n\n/**\n * MsgReactorBeginMigration defines a SDK message for performing a redelegation\n * of coins from a delegator and source validator to a destination validator.\n */\nexport interface MsgReactorBeginMigration {\n creator: string;\n delegatorAddress: string;\n validatorSrcAddress: string;\n validatorDstAddress: string;\n amount: Coin | undefined;\n}\n\n/** MsgBeginMigrationResponse defines the Msg/BeginRedelegate response type. */\nexport interface MsgReactorBeginMigrationResponse {\n completionTime: Date | undefined;\n}\n\n/**\n * MsgReactorDefuse defines a SDK message for performing an undelegation from a\n * delegate and a validator.\n */\nexport interface MsgReactorDefuse {\n creator: string;\n delegatorAddress: string;\n validatorAddress: string;\n amount: Coin | undefined;\n}\n\n/** MsgReactorDefuseResponse defines the Msg/Undelegate response type. */\nexport interface MsgReactorDefuseResponse {\n completionTime:\n | Date\n | undefined;\n /**\n * amount returns the amount of undelegated coins\n *\n * Since: cosmos-sdk 0.50\n */\n amount: Coin | undefined;\n}\n\n/**\n * MsgReactorCancelDefusion defines the SDK message for performing a cancel unbonding delegation for delegator\n *\n * Since: cosmos-sdk 0.46\n */\nexport interface MsgReactorCancelDefusion {\n creator: string;\n delegatorAddress: string;\n validatorAddress: string;\n /** amount is always less than or equal to unbonding delegation entry balance */\n amount:\n | Coin\n | undefined;\n /** creation_height is the height which the unbonding took place. */\n creationHeight: number;\n}\n\n/**\n * MsgReactorCancelDefusionResponse\n *\n * Since: cosmos-sdk 0.46\n */\nexport interface MsgReactorCancelDefusionResponse {\n}\n\nexport interface MsgStructStatusResponse {\n struct: Struct | undefined;\n}\n\nexport interface MsgStructActivate {\n creator: string;\n structId: string;\n}\n\nexport interface MsgStructDeactivate {\n creator: string;\n structId: string;\n}\n\nexport interface MsgStructBuildInitiate {\n creator: string;\n playerId: string;\n structTypeId: number;\n /** objectType locationType = 4; */\n operatingAmbit: ambit;\n slot: number;\n}\n\nexport interface MsgStructBuildComplete {\n creator: string;\n structId: string;\n proof: string;\n nonce: string;\n}\n\nexport interface MsgStructBuildCancel {\n creator: string;\n structId: string;\n}\n\nexport interface MsgStructBuildCompleteAndStash {\n creator: string;\n structId: string;\n proof: string;\n nonce: string;\n storageDestinationId: string;\n storageAmbit: ambit;\n storageSlot: number;\n}\n\nexport interface MsgStructDefenseSet {\n creator: string;\n defenderStructId: string;\n protectedStructId: string;\n}\n\nexport interface MsgStructDefenseClear {\n creator: string;\n defenderStructId: string;\n}\n\nexport interface MsgStructMove {\n creator: string;\n structId: string;\n locationType: objectType;\n ambit: ambit;\n slot: number;\n}\n\nexport interface MsgStructAttack {\n creator: string;\n operatingStructId: string;\n targetStructId: string[];\n weaponSystem: string;\n}\n\nexport interface MsgStructAttackResponse {\n}\n\nexport interface MsgStructStealthActivate {\n creator: string;\n structId: string;\n}\n\nexport interface MsgStructStealthDeactivate {\n creator: string;\n structId: string;\n}\n\nexport interface MsgStructGeneratorInfuse {\n creator: string;\n structId: string;\n infuseAmount: string;\n}\n\nexport interface MsgStructGeneratorStatusResponse {\n}\n\nexport interface MsgStructOreMinerComplete {\n creator: string;\n structId: string;\n proof: string;\n nonce: string;\n}\n\nexport interface MsgStructOreMinerStatusResponse {\n struct: Struct | undefined;\n}\n\nexport interface MsgStructOreRefineryComplete {\n creator: string;\n structId: string;\n proof: string;\n nonce: string;\n}\n\nexport interface MsgStructOreRefineryStatusResponse {\n struct: Struct | undefined;\n}\n\nexport interface MsgStructStorageStash {\n creator: string;\n structId: string;\n locationId: string;\n ambit: ambit;\n slot: number;\n}\n\nexport interface MsgStructStorageRecall {\n creator: string;\n structId: string;\n locationId: string;\n ambit: ambit;\n slot: number;\n activate: boolean;\n}\n\nexport interface MsgSubstationCreate {\n creator: string;\n owner: string;\n allocationId: string;\n}\n\nexport interface MsgSubstationCreateResponse {\n substationId: string;\n}\n\nexport interface MsgSubstationUpdateName {\n creator: string;\n substationId: string;\n name: string;\n}\n\nexport interface MsgSubstationUpdatePfp {\n creator: string;\n substationId: string;\n pfp: string;\n}\n\nexport interface MsgSubstationUpdateResponse {\n}\n\nexport interface MsgSubstationDelete {\n creator: string;\n substationId: string;\n migrationSubstationId: string;\n}\n\nexport interface MsgSubstationDeleteResponse {\n}\n\nexport interface MsgSubstationAllocationConnect {\n creator: string;\n allocationId: string;\n destinationId: string;\n}\n\nexport interface MsgSubstationAllocationConnectResponse {\n}\n\nexport interface MsgSubstationAllocationDisconnect {\n creator: string;\n allocationId: string;\n}\n\nexport interface MsgSubstationAllocationDisconnectResponse {\n}\n\nexport interface MsgSubstationPlayerConnect {\n creator: string;\n substationId: string;\n playerId: string;\n}\n\nexport interface MsgSubstationPlayerConnectResponse {\n}\n\nexport interface MsgSubstationPlayerDisconnect {\n creator: string;\n playerId: string;\n}\n\nexport interface MsgSubstationPlayerDisconnectResponse {\n}\n\nexport interface MsgSubstationPlayerMigrate {\n creator: string;\n substationId: string;\n playerId: string[];\n}\n\nexport interface MsgSubstationPlayerMigrateResponse {\n}\n\nexport interface MsgAgreementOpen {\n creator: string;\n providerId: string;\n duration: number;\n capacity: number;\n}\n\nexport interface MsgAgreementClose {\n creator: string;\n agreementId: string;\n}\n\nexport interface MsgAgreementCapacityIncrease {\n creator: string;\n agreementId: string;\n capacityIncrease: number;\n}\n\nexport interface MsgAgreementCapacityDecrease {\n creator: string;\n agreementId: string;\n capacityDecrease: number;\n}\n\nexport interface MsgAgreementDurationIncrease {\n creator: string;\n agreementId: string;\n durationIncrease: number;\n}\n\nexport interface MsgAgreementResponse {\n}\n\nexport interface MsgProviderCreate {\n creator: string;\n substationId: string;\n rate: Coin | undefined;\n accessPolicy: providerAccessPolicy;\n providerCancellationPenalty: string;\n consumerCancellationPenalty: string;\n capacityMinimum: number;\n capacityMaximum: number;\n durationMinimum: number;\n durationMaximum: number;\n}\n\nexport interface MsgProviderWithdrawBalance {\n creator: string;\n providerId: string;\n destinationAddress: string;\n}\n\nexport interface MsgProviderUpdateCapacityMinimum {\n creator: string;\n providerId: string;\n newMinimumCapacity: number;\n}\n\nexport interface MsgProviderUpdateCapacityMaximum {\n creator: string;\n providerId: string;\n newMaximumCapacity: number;\n}\n\nexport interface MsgProviderUpdateDurationMinimum {\n creator: string;\n providerId: string;\n newMinimumDuration: number;\n}\n\nexport interface MsgProviderUpdateDurationMaximum {\n creator: string;\n providerId: string;\n newMaximumDuration: number;\n}\n\nexport interface MsgProviderUpdateAccessPolicy {\n creator: string;\n providerId: string;\n accessPolicy: providerAccessPolicy;\n}\n\nexport interface MsgProviderGuildGrant {\n creator: string;\n providerId: string;\n guildId: string[];\n}\n\nexport interface MsgProviderGuildRevoke {\n creator: string;\n providerId: string;\n guildId: string[];\n}\n\nexport interface MsgProviderDelete {\n creator: string;\n providerId: string;\n}\n\nexport interface MsgProviderResponse {\n}\n\nexport interface MsgPlayerSend {\n creator: string;\n fromAddress: string;\n toAddress: string;\n amount: Coin[];\n}\n\n/** This message has no fields. */\nexport interface MsgPlayerSendResponse {\n}\n\nfunction createBaseMsgUpdateParams(): MsgUpdateParams {\n return { authority: \"\", params: undefined };\n}\n\nexport const MsgUpdateParams: MessageFns = {\n encode(message: MsgUpdateParams, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.authority !== \"\") {\n writer.uint32(10).string(message.authority);\n }\n if (message.params !== undefined) {\n Params.encode(message.params, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateParams {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.authority = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.params = Params.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgUpdateParams {\n return {\n authority: isSet(object.authority) ? globalThis.String(object.authority) : \"\",\n params: isSet(object.params) ? Params.fromJSON(object.params) : undefined,\n };\n },\n\n toJSON(message: MsgUpdateParams): unknown {\n const obj: any = {};\n if (message.authority !== \"\") {\n obj.authority = message.authority;\n }\n if (message.params !== undefined) {\n obj.params = Params.toJSON(message.params);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgUpdateParams {\n return MsgUpdateParams.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgUpdateParams {\n const message = createBaseMsgUpdateParams();\n message.authority = object.authority ?? \"\";\n message.params = (object.params !== undefined && object.params !== null)\n ? Params.fromPartial(object.params)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgUpdateParamsResponse(): MsgUpdateParamsResponse {\n return {};\n}\n\nexport const MsgUpdateParamsResponse: MessageFns = {\n encode(_: MsgUpdateParamsResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateParamsResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgUpdateParamsResponse {\n return {};\n },\n\n toJSON(_: MsgUpdateParamsResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgUpdateParamsResponse {\n return MsgUpdateParamsResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgUpdateParamsResponse {\n const message = createBaseMsgUpdateParamsResponse();\n return message;\n },\n};\n\nfunction createBaseMsgAddressRegister(): MsgAddressRegister {\n return { creator: \"\", playerId: \"\", address: \"\", proofPubKey: \"\", proofSignature: \"\", permissions: 0 };\n}\n\nexport const MsgAddressRegister: MessageFns = {\n encode(message: MsgAddressRegister, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.playerId !== \"\") {\n writer.uint32(18).string(message.playerId);\n }\n if (message.address !== \"\") {\n writer.uint32(26).string(message.address);\n }\n if (message.proofPubKey !== \"\") {\n writer.uint32(34).string(message.proofPubKey);\n }\n if (message.proofSignature !== \"\") {\n writer.uint32(42).string(message.proofSignature);\n }\n if (message.permissions !== 0) {\n writer.uint32(48).uint64(message.permissions);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAddressRegister {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAddressRegister();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.proofPubKey = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.proofSignature = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.permissions = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAddressRegister {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n proofPubKey: isSet(object.proofPubKey) ? globalThis.String(object.proofPubKey) : \"\",\n proofSignature: isSet(object.proofSignature) ? globalThis.String(object.proofSignature) : \"\",\n permissions: isSet(object.permissions) ? globalThis.Number(object.permissions) : 0,\n };\n },\n\n toJSON(message: MsgAddressRegister): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.proofPubKey !== \"\") {\n obj.proofPubKey = message.proofPubKey;\n }\n if (message.proofSignature !== \"\") {\n obj.proofSignature = message.proofSignature;\n }\n if (message.permissions !== 0) {\n obj.permissions = Math.round(message.permissions);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAddressRegister {\n return MsgAddressRegister.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAddressRegister {\n const message = createBaseMsgAddressRegister();\n message.creator = object.creator ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.address = object.address ?? \"\";\n message.proofPubKey = object.proofPubKey ?? \"\";\n message.proofSignature = object.proofSignature ?? \"\";\n message.permissions = object.permissions ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgAddressRegisterResponse(): MsgAddressRegisterResponse {\n return {};\n}\n\nexport const MsgAddressRegisterResponse: MessageFns = {\n encode(_: MsgAddressRegisterResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAddressRegisterResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAddressRegisterResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgAddressRegisterResponse {\n return {};\n },\n\n toJSON(_: MsgAddressRegisterResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgAddressRegisterResponse {\n return MsgAddressRegisterResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgAddressRegisterResponse {\n const message = createBaseMsgAddressRegisterResponse();\n return message;\n },\n};\n\nfunction createBaseMsgAddressRevoke(): MsgAddressRevoke {\n return { creator: \"\", address: \"\" };\n}\n\nexport const MsgAddressRevoke: MessageFns = {\n encode(message: MsgAddressRevoke, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.address !== \"\") {\n writer.uint32(18).string(message.address);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAddressRevoke {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAddressRevoke();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAddressRevoke {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n };\n },\n\n toJSON(message: MsgAddressRevoke): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAddressRevoke {\n return MsgAddressRevoke.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAddressRevoke {\n const message = createBaseMsgAddressRevoke();\n message.creator = object.creator ?? \"\";\n message.address = object.address ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgAddressRevokeResponse(): MsgAddressRevokeResponse {\n return {};\n}\n\nexport const MsgAddressRevokeResponse: MessageFns = {\n encode(_: MsgAddressRevokeResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAddressRevokeResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAddressRevokeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgAddressRevokeResponse {\n return {};\n },\n\n toJSON(_: MsgAddressRevokeResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgAddressRevokeResponse {\n return MsgAddressRevokeResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgAddressRevokeResponse {\n const message = createBaseMsgAddressRevokeResponse();\n return message;\n },\n};\n\nfunction createBaseMsgAllocationCreate(): MsgAllocationCreate {\n return { creator: \"\", controller: \"\", sourceObjectId: \"\", allocationType: 0, power: 0 };\n}\n\nexport const MsgAllocationCreate: MessageFns = {\n encode(message: MsgAllocationCreate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.controller !== \"\") {\n writer.uint32(18).string(message.controller);\n }\n if (message.sourceObjectId !== \"\") {\n writer.uint32(26).string(message.sourceObjectId);\n }\n if (message.allocationType !== 0) {\n writer.uint32(32).int32(message.allocationType);\n }\n if (message.power !== 0) {\n writer.uint32(40).uint64(message.power);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAllocationCreate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAllocationCreate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.controller = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.sourceObjectId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.allocationType = reader.int32() as any;\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.power = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAllocationCreate {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n controller: isSet(object.controller) ? globalThis.String(object.controller) : \"\",\n sourceObjectId: isSet(object.sourceObjectId) ? globalThis.String(object.sourceObjectId) : \"\",\n allocationType: isSet(object.allocationType) ? allocationTypeFromJSON(object.allocationType) : 0,\n power: isSet(object.power) ? globalThis.Number(object.power) : 0,\n };\n },\n\n toJSON(message: MsgAllocationCreate): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.controller !== \"\") {\n obj.controller = message.controller;\n }\n if (message.sourceObjectId !== \"\") {\n obj.sourceObjectId = message.sourceObjectId;\n }\n if (message.allocationType !== 0) {\n obj.allocationType = allocationTypeToJSON(message.allocationType);\n }\n if (message.power !== 0) {\n obj.power = Math.round(message.power);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAllocationCreate {\n return MsgAllocationCreate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAllocationCreate {\n const message = createBaseMsgAllocationCreate();\n message.creator = object.creator ?? \"\";\n message.controller = object.controller ?? \"\";\n message.sourceObjectId = object.sourceObjectId ?? \"\";\n message.allocationType = object.allocationType ?? 0;\n message.power = object.power ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgAllocationCreateResponse(): MsgAllocationCreateResponse {\n return { allocationId: \"\" };\n}\n\nexport const MsgAllocationCreateResponse: MessageFns = {\n encode(message: MsgAllocationCreateResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.allocationId !== \"\") {\n writer.uint32(10).string(message.allocationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAllocationCreateResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAllocationCreateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.allocationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAllocationCreateResponse {\n return { allocationId: isSet(object.allocationId) ? globalThis.String(object.allocationId) : \"\" };\n },\n\n toJSON(message: MsgAllocationCreateResponse): unknown {\n const obj: any = {};\n if (message.allocationId !== \"\") {\n obj.allocationId = message.allocationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAllocationCreateResponse {\n return MsgAllocationCreateResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAllocationCreateResponse {\n const message = createBaseMsgAllocationCreateResponse();\n message.allocationId = object.allocationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgAllocationDelete(): MsgAllocationDelete {\n return { creator: \"\", allocationId: \"\" };\n}\n\nexport const MsgAllocationDelete: MessageFns = {\n encode(message: MsgAllocationDelete, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.allocationId !== \"\") {\n writer.uint32(18).string(message.allocationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAllocationDelete {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAllocationDelete();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.allocationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAllocationDelete {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n allocationId: isSet(object.allocationId) ? globalThis.String(object.allocationId) : \"\",\n };\n },\n\n toJSON(message: MsgAllocationDelete): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.allocationId !== \"\") {\n obj.allocationId = message.allocationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAllocationDelete {\n return MsgAllocationDelete.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAllocationDelete {\n const message = createBaseMsgAllocationDelete();\n message.creator = object.creator ?? \"\";\n message.allocationId = object.allocationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgAllocationDeleteResponse(): MsgAllocationDeleteResponse {\n return { allocationId: \"\" };\n}\n\nexport const MsgAllocationDeleteResponse: MessageFns = {\n encode(message: MsgAllocationDeleteResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.allocationId !== \"\") {\n writer.uint32(10).string(message.allocationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAllocationDeleteResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAllocationDeleteResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.allocationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAllocationDeleteResponse {\n return { allocationId: isSet(object.allocationId) ? globalThis.String(object.allocationId) : \"\" };\n },\n\n toJSON(message: MsgAllocationDeleteResponse): unknown {\n const obj: any = {};\n if (message.allocationId !== \"\") {\n obj.allocationId = message.allocationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAllocationDeleteResponse {\n return MsgAllocationDeleteResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAllocationDeleteResponse {\n const message = createBaseMsgAllocationDeleteResponse();\n message.allocationId = object.allocationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgAllocationUpdate(): MsgAllocationUpdate {\n return { creator: \"\", allocationId: \"\", power: 0 };\n}\n\nexport const MsgAllocationUpdate: MessageFns = {\n encode(message: MsgAllocationUpdate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.allocationId !== \"\") {\n writer.uint32(18).string(message.allocationId);\n }\n if (message.power !== 0) {\n writer.uint32(24).uint64(message.power);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAllocationUpdate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAllocationUpdate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.allocationId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.power = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAllocationUpdate {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n allocationId: isSet(object.allocationId) ? globalThis.String(object.allocationId) : \"\",\n power: isSet(object.power) ? globalThis.Number(object.power) : 0,\n };\n },\n\n toJSON(message: MsgAllocationUpdate): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.allocationId !== \"\") {\n obj.allocationId = message.allocationId;\n }\n if (message.power !== 0) {\n obj.power = Math.round(message.power);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAllocationUpdate {\n return MsgAllocationUpdate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAllocationUpdate {\n const message = createBaseMsgAllocationUpdate();\n message.creator = object.creator ?? \"\";\n message.allocationId = object.allocationId ?? \"\";\n message.power = object.power ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgAllocationUpdateResponse(): MsgAllocationUpdateResponse {\n return { allocationId: \"\" };\n}\n\nexport const MsgAllocationUpdateResponse: MessageFns = {\n encode(message: MsgAllocationUpdateResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.allocationId !== \"\") {\n writer.uint32(10).string(message.allocationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAllocationUpdateResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAllocationUpdateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.allocationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAllocationUpdateResponse {\n return { allocationId: isSet(object.allocationId) ? globalThis.String(object.allocationId) : \"\" };\n },\n\n toJSON(message: MsgAllocationUpdateResponse): unknown {\n const obj: any = {};\n if (message.allocationId !== \"\") {\n obj.allocationId = message.allocationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAllocationUpdateResponse {\n return MsgAllocationUpdateResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAllocationUpdateResponse {\n const message = createBaseMsgAllocationUpdateResponse();\n message.allocationId = object.allocationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgAllocationTransfer(): MsgAllocationTransfer {\n return { creator: \"\", allocationId: \"\", controller: \"\" };\n}\n\nexport const MsgAllocationTransfer: MessageFns = {\n encode(message: MsgAllocationTransfer, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.allocationId !== \"\") {\n writer.uint32(18).string(message.allocationId);\n }\n if (message.controller !== \"\") {\n writer.uint32(26).string(message.controller);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAllocationTransfer {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAllocationTransfer();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.allocationId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.controller = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAllocationTransfer {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n allocationId: isSet(object.allocationId) ? globalThis.String(object.allocationId) : \"\",\n controller: isSet(object.controller) ? globalThis.String(object.controller) : \"\",\n };\n },\n\n toJSON(message: MsgAllocationTransfer): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.allocationId !== \"\") {\n obj.allocationId = message.allocationId;\n }\n if (message.controller !== \"\") {\n obj.controller = message.controller;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAllocationTransfer {\n return MsgAllocationTransfer.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAllocationTransfer {\n const message = createBaseMsgAllocationTransfer();\n message.creator = object.creator ?? \"\";\n message.allocationId = object.allocationId ?? \"\";\n message.controller = object.controller ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgAllocationTransferResponse(): MsgAllocationTransferResponse {\n return { allocationId: \"\" };\n}\n\nexport const MsgAllocationTransferResponse: MessageFns = {\n encode(message: MsgAllocationTransferResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.allocationId !== \"\") {\n writer.uint32(10).string(message.allocationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAllocationTransferResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAllocationTransferResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.allocationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAllocationTransferResponse {\n return { allocationId: isSet(object.allocationId) ? globalThis.String(object.allocationId) : \"\" };\n },\n\n toJSON(message: MsgAllocationTransferResponse): unknown {\n const obj: any = {};\n if (message.allocationId !== \"\") {\n obj.allocationId = message.allocationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAllocationTransferResponse {\n return MsgAllocationTransferResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgAllocationTransferResponse {\n const message = createBaseMsgAllocationTransferResponse();\n message.allocationId = object.allocationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgFleetMove(): MsgFleetMove {\n return { creator: \"\", fleetId: \"\", destinationLocationId: \"\" };\n}\n\nexport const MsgFleetMove: MessageFns = {\n encode(message: MsgFleetMove, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.fleetId !== \"\") {\n writer.uint32(18).string(message.fleetId);\n }\n if (message.destinationLocationId !== \"\") {\n writer.uint32(26).string(message.destinationLocationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgFleetMove {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgFleetMove();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.fleetId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.destinationLocationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgFleetMove {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n fleetId: isSet(object.fleetId) ? globalThis.String(object.fleetId) : \"\",\n destinationLocationId: isSet(object.destinationLocationId) ? globalThis.String(object.destinationLocationId) : \"\",\n };\n },\n\n toJSON(message: MsgFleetMove): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.fleetId !== \"\") {\n obj.fleetId = message.fleetId;\n }\n if (message.destinationLocationId !== \"\") {\n obj.destinationLocationId = message.destinationLocationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgFleetMove {\n return MsgFleetMove.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgFleetMove {\n const message = createBaseMsgFleetMove();\n message.creator = object.creator ?? \"\";\n message.fleetId = object.fleetId ?? \"\";\n message.destinationLocationId = object.destinationLocationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgFleetMoveResponse(): MsgFleetMoveResponse {\n return { fleet: undefined };\n}\n\nexport const MsgFleetMoveResponse: MessageFns = {\n encode(message: MsgFleetMoveResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.fleet !== undefined) {\n Fleet.encode(message.fleet, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgFleetMoveResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgFleetMoveResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.fleet = Fleet.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgFleetMoveResponse {\n return { fleet: isSet(object.fleet) ? Fleet.fromJSON(object.fleet) : undefined };\n },\n\n toJSON(message: MsgFleetMoveResponse): unknown {\n const obj: any = {};\n if (message.fleet !== undefined) {\n obj.fleet = Fleet.toJSON(message.fleet);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgFleetMoveResponse {\n return MsgFleetMoveResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgFleetMoveResponse {\n const message = createBaseMsgFleetMoveResponse();\n message.fleet = (object.fleet !== undefined && object.fleet !== null) ? Fleet.fromPartial(object.fleet) : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgGuildBankMint(): MsgGuildBankMint {\n return { creator: \"\", amountAlpha: 0, amountToken: 0 };\n}\n\nexport const MsgGuildBankMint: MessageFns = {\n encode(message: MsgGuildBankMint, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.amountAlpha !== 0) {\n writer.uint32(16).uint64(message.amountAlpha);\n }\n if (message.amountToken !== 0) {\n writer.uint32(24).uint64(message.amountToken);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildBankMint {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildBankMint();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.amountAlpha = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.amountToken = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildBankMint {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n amountAlpha: isSet(object.amountAlpha) ? globalThis.Number(object.amountAlpha) : 0,\n amountToken: isSet(object.amountToken) ? globalThis.Number(object.amountToken) : 0,\n };\n },\n\n toJSON(message: MsgGuildBankMint): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.amountAlpha !== 0) {\n obj.amountAlpha = Math.round(message.amountAlpha);\n }\n if (message.amountToken !== 0) {\n obj.amountToken = Math.round(message.amountToken);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildBankMint {\n return MsgGuildBankMint.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildBankMint {\n const message = createBaseMsgGuildBankMint();\n message.creator = object.creator ?? \"\";\n message.amountAlpha = object.amountAlpha ?? 0;\n message.amountToken = object.amountToken ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgGuildBankMintResponse(): MsgGuildBankMintResponse {\n return {};\n}\n\nexport const MsgGuildBankMintResponse: MessageFns = {\n encode(_: MsgGuildBankMintResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildBankMintResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildBankMintResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgGuildBankMintResponse {\n return {};\n },\n\n toJSON(_: MsgGuildBankMintResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildBankMintResponse {\n return MsgGuildBankMintResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgGuildBankMintResponse {\n const message = createBaseMsgGuildBankMintResponse();\n return message;\n },\n};\n\nfunction createBaseMsgGuildBankRedeem(): MsgGuildBankRedeem {\n return { creator: \"\", amountToken: undefined };\n}\n\nexport const MsgGuildBankRedeem: MessageFns = {\n encode(message: MsgGuildBankRedeem, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.amountToken !== undefined) {\n Coin.encode(message.amountToken, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildBankRedeem {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildBankRedeem();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.amountToken = Coin.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildBankRedeem {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n amountToken: isSet(object.amountToken) ? Coin.fromJSON(object.amountToken) : undefined,\n };\n },\n\n toJSON(message: MsgGuildBankRedeem): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.amountToken !== undefined) {\n obj.amountToken = Coin.toJSON(message.amountToken);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildBankRedeem {\n return MsgGuildBankRedeem.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildBankRedeem {\n const message = createBaseMsgGuildBankRedeem();\n message.creator = object.creator ?? \"\";\n message.amountToken = (object.amountToken !== undefined && object.amountToken !== null)\n ? Coin.fromPartial(object.amountToken)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgGuildBankRedeemResponse(): MsgGuildBankRedeemResponse {\n return {};\n}\n\nexport const MsgGuildBankRedeemResponse: MessageFns = {\n encode(_: MsgGuildBankRedeemResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildBankRedeemResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildBankRedeemResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgGuildBankRedeemResponse {\n return {};\n },\n\n toJSON(_: MsgGuildBankRedeemResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildBankRedeemResponse {\n return MsgGuildBankRedeemResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgGuildBankRedeemResponse {\n const message = createBaseMsgGuildBankRedeemResponse();\n return message;\n },\n};\n\nfunction createBaseMsgGuildBankConfiscateAndBurn(): MsgGuildBankConfiscateAndBurn {\n return { creator: \"\", address: \"\", amountToken: 0 };\n}\n\nexport const MsgGuildBankConfiscateAndBurn: MessageFns = {\n encode(message: MsgGuildBankConfiscateAndBurn, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.address !== \"\") {\n writer.uint32(18).string(message.address);\n }\n if (message.amountToken !== 0) {\n writer.uint32(24).uint64(message.amountToken);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildBankConfiscateAndBurn {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildBankConfiscateAndBurn();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.amountToken = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildBankConfiscateAndBurn {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n amountToken: isSet(object.amountToken) ? globalThis.Number(object.amountToken) : 0,\n };\n },\n\n toJSON(message: MsgGuildBankConfiscateAndBurn): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.amountToken !== 0) {\n obj.amountToken = Math.round(message.amountToken);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildBankConfiscateAndBurn {\n return MsgGuildBankConfiscateAndBurn.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgGuildBankConfiscateAndBurn {\n const message = createBaseMsgGuildBankConfiscateAndBurn();\n message.creator = object.creator ?? \"\";\n message.address = object.address ?? \"\";\n message.amountToken = object.amountToken ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgGuildBankConfiscateAndBurnResponse(): MsgGuildBankConfiscateAndBurnResponse {\n return {};\n}\n\nexport const MsgGuildBankConfiscateAndBurnResponse: MessageFns = {\n encode(_: MsgGuildBankConfiscateAndBurnResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildBankConfiscateAndBurnResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildBankConfiscateAndBurnResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgGuildBankConfiscateAndBurnResponse {\n return {};\n },\n\n toJSON(_: MsgGuildBankConfiscateAndBurnResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgGuildBankConfiscateAndBurnResponse {\n return MsgGuildBankConfiscateAndBurnResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n _: I,\n ): MsgGuildBankConfiscateAndBurnResponse {\n const message = createBaseMsgGuildBankConfiscateAndBurnResponse();\n return message;\n },\n};\n\nfunction createBaseMsgGuildCreate(): MsgGuildCreate {\n return { creator: \"\", reactorId: \"\", endpoint: \"\", entrySubstationId: \"\" };\n}\n\nexport const MsgGuildCreate: MessageFns = {\n encode(message: MsgGuildCreate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.reactorId !== \"\") {\n writer.uint32(18).string(message.reactorId);\n }\n if (message.endpoint !== \"\") {\n writer.uint32(26).string(message.endpoint);\n }\n if (message.entrySubstationId !== \"\") {\n writer.uint32(34).string(message.entrySubstationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildCreate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildCreate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.reactorId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.endpoint = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.entrySubstationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildCreate {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n reactorId: isSet(object.reactorId) ? globalThis.String(object.reactorId) : \"\",\n endpoint: isSet(object.endpoint) ? globalThis.String(object.endpoint) : \"\",\n entrySubstationId: isSet(object.entrySubstationId) ? globalThis.String(object.entrySubstationId) : \"\",\n };\n },\n\n toJSON(message: MsgGuildCreate): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.reactorId !== \"\") {\n obj.reactorId = message.reactorId;\n }\n if (message.endpoint !== \"\") {\n obj.endpoint = message.endpoint;\n }\n if (message.entrySubstationId !== \"\") {\n obj.entrySubstationId = message.entrySubstationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildCreate {\n return MsgGuildCreate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildCreate {\n const message = createBaseMsgGuildCreate();\n message.creator = object.creator ?? \"\";\n message.reactorId = object.reactorId ?? \"\";\n message.endpoint = object.endpoint ?? \"\";\n message.entrySubstationId = object.entrySubstationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildCreateResponse(): MsgGuildCreateResponse {\n return { guildId: \"\" };\n}\n\nexport const MsgGuildCreateResponse: MessageFns = {\n encode(message: MsgGuildCreateResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.guildId !== \"\") {\n writer.uint32(10).string(message.guildId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildCreateResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildCreateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildCreateResponse {\n return { guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\" };\n },\n\n toJSON(message: MsgGuildCreateResponse): unknown {\n const obj: any = {};\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildCreateResponse {\n return MsgGuildCreateResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildCreateResponse {\n const message = createBaseMsgGuildCreateResponse();\n message.guildId = object.guildId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildUpdateOwnerId(): MsgGuildUpdateOwnerId {\n return { creator: \"\", guildId: \"\", owner: \"\" };\n}\n\nexport const MsgGuildUpdateOwnerId: MessageFns = {\n encode(message: MsgGuildUpdateOwnerId, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.owner !== \"\") {\n writer.uint32(26).string(message.owner);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildUpdateOwnerId {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildUpdateOwnerId();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.owner = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildUpdateOwnerId {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n owner: isSet(object.owner) ? globalThis.String(object.owner) : \"\",\n };\n },\n\n toJSON(message: MsgGuildUpdateOwnerId): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.owner !== \"\") {\n obj.owner = message.owner;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildUpdateOwnerId {\n return MsgGuildUpdateOwnerId.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildUpdateOwnerId {\n const message = createBaseMsgGuildUpdateOwnerId();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.owner = object.owner ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildUpdateEntrySubstationId(): MsgGuildUpdateEntrySubstationId {\n return { creator: \"\", guildId: \"\", entrySubstationId: \"\" };\n}\n\nexport const MsgGuildUpdateEntrySubstationId: MessageFns = {\n encode(message: MsgGuildUpdateEntrySubstationId, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.entrySubstationId !== \"\") {\n writer.uint32(26).string(message.entrySubstationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildUpdateEntrySubstationId {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildUpdateEntrySubstationId();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.entrySubstationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildUpdateEntrySubstationId {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n entrySubstationId: isSet(object.entrySubstationId) ? globalThis.String(object.entrySubstationId) : \"\",\n };\n },\n\n toJSON(message: MsgGuildUpdateEntrySubstationId): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.entrySubstationId !== \"\") {\n obj.entrySubstationId = message.entrySubstationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildUpdateEntrySubstationId {\n return MsgGuildUpdateEntrySubstationId.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgGuildUpdateEntrySubstationId {\n const message = createBaseMsgGuildUpdateEntrySubstationId();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.entrySubstationId = object.entrySubstationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildUpdateEndpoint(): MsgGuildUpdateEndpoint {\n return { creator: \"\", guildId: \"\", endpoint: \"\" };\n}\n\nexport const MsgGuildUpdateEndpoint: MessageFns = {\n encode(message: MsgGuildUpdateEndpoint, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.endpoint !== \"\") {\n writer.uint32(26).string(message.endpoint);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildUpdateEndpoint {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildUpdateEndpoint();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.endpoint = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildUpdateEndpoint {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n endpoint: isSet(object.endpoint) ? globalThis.String(object.endpoint) : \"\",\n };\n },\n\n toJSON(message: MsgGuildUpdateEndpoint): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.endpoint !== \"\") {\n obj.endpoint = message.endpoint;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildUpdateEndpoint {\n return MsgGuildUpdateEndpoint.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildUpdateEndpoint {\n const message = createBaseMsgGuildUpdateEndpoint();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.endpoint = object.endpoint ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildUpdateJoinInfusionMinimum(): MsgGuildUpdateJoinInfusionMinimum {\n return { creator: \"\", guildId: \"\", joinInfusionMinimum: 0 };\n}\n\nexport const MsgGuildUpdateJoinInfusionMinimum: MessageFns = {\n encode(message: MsgGuildUpdateJoinInfusionMinimum, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.joinInfusionMinimum !== 0) {\n writer.uint32(24).uint64(message.joinInfusionMinimum);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildUpdateJoinInfusionMinimum {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildUpdateJoinInfusionMinimum();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.joinInfusionMinimum = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildUpdateJoinInfusionMinimum {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n joinInfusionMinimum: isSet(object.joinInfusionMinimum) ? globalThis.Number(object.joinInfusionMinimum) : 0,\n };\n },\n\n toJSON(message: MsgGuildUpdateJoinInfusionMinimum): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.joinInfusionMinimum !== 0) {\n obj.joinInfusionMinimum = Math.round(message.joinInfusionMinimum);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgGuildUpdateJoinInfusionMinimum {\n return MsgGuildUpdateJoinInfusionMinimum.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgGuildUpdateJoinInfusionMinimum {\n const message = createBaseMsgGuildUpdateJoinInfusionMinimum();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.joinInfusionMinimum = object.joinInfusionMinimum ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgGuildUpdateJoinInfusionMinimumBypassByRequest(): MsgGuildUpdateJoinInfusionMinimumBypassByRequest {\n return { creator: \"\", guildId: \"\", guildJoinBypassLevel: 0 };\n}\n\nexport const MsgGuildUpdateJoinInfusionMinimumBypassByRequest: MessageFns<\n MsgGuildUpdateJoinInfusionMinimumBypassByRequest\n> = {\n encode(\n message: MsgGuildUpdateJoinInfusionMinimumBypassByRequest,\n writer: BinaryWriter = new BinaryWriter(),\n ): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.guildJoinBypassLevel !== 0) {\n writer.uint32(24).int32(message.guildJoinBypassLevel);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildUpdateJoinInfusionMinimumBypassByRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildUpdateJoinInfusionMinimumBypassByRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.guildJoinBypassLevel = reader.int32() as any;\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildUpdateJoinInfusionMinimumBypassByRequest {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n guildJoinBypassLevel: isSet(object.guildJoinBypassLevel)\n ? guildJoinBypassLevelFromJSON(object.guildJoinBypassLevel)\n : 0,\n };\n },\n\n toJSON(message: MsgGuildUpdateJoinInfusionMinimumBypassByRequest): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.guildJoinBypassLevel !== 0) {\n obj.guildJoinBypassLevel = guildJoinBypassLevelToJSON(message.guildJoinBypassLevel);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgGuildUpdateJoinInfusionMinimumBypassByRequest {\n return MsgGuildUpdateJoinInfusionMinimumBypassByRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgGuildUpdateJoinInfusionMinimumBypassByRequest {\n const message = createBaseMsgGuildUpdateJoinInfusionMinimumBypassByRequest();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.guildJoinBypassLevel = object.guildJoinBypassLevel ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgGuildUpdateJoinInfusionMinimumBypassByInvite(): MsgGuildUpdateJoinInfusionMinimumBypassByInvite {\n return { creator: \"\", guildId: \"\", guildJoinBypassLevel: 0 };\n}\n\nexport const MsgGuildUpdateJoinInfusionMinimumBypassByInvite: MessageFns<\n MsgGuildUpdateJoinInfusionMinimumBypassByInvite\n> = {\n encode(\n message: MsgGuildUpdateJoinInfusionMinimumBypassByInvite,\n writer: BinaryWriter = new BinaryWriter(),\n ): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.guildJoinBypassLevel !== 0) {\n writer.uint32(24).int32(message.guildJoinBypassLevel);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildUpdateJoinInfusionMinimumBypassByInvite {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildUpdateJoinInfusionMinimumBypassByInvite();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.guildJoinBypassLevel = reader.int32() as any;\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildUpdateJoinInfusionMinimumBypassByInvite {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n guildJoinBypassLevel: isSet(object.guildJoinBypassLevel)\n ? guildJoinBypassLevelFromJSON(object.guildJoinBypassLevel)\n : 0,\n };\n },\n\n toJSON(message: MsgGuildUpdateJoinInfusionMinimumBypassByInvite): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.guildJoinBypassLevel !== 0) {\n obj.guildJoinBypassLevel = guildJoinBypassLevelToJSON(message.guildJoinBypassLevel);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgGuildUpdateJoinInfusionMinimumBypassByInvite {\n return MsgGuildUpdateJoinInfusionMinimumBypassByInvite.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgGuildUpdateJoinInfusionMinimumBypassByInvite {\n const message = createBaseMsgGuildUpdateJoinInfusionMinimumBypassByInvite();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.guildJoinBypassLevel = object.guildJoinBypassLevel ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgGuildUpdateEntryRank(): MsgGuildUpdateEntryRank {\n return { creator: \"\", newEntryRank: 0 };\n}\n\nexport const MsgGuildUpdateEntryRank: MessageFns = {\n encode(message: MsgGuildUpdateEntryRank, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.newEntryRank !== 0) {\n writer.uint32(16).uint64(message.newEntryRank);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildUpdateEntryRank {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildUpdateEntryRank();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.newEntryRank = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildUpdateEntryRank {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n newEntryRank: isSet(object.newEntryRank) ? globalThis.Number(object.newEntryRank) : 0,\n };\n },\n\n toJSON(message: MsgGuildUpdateEntryRank): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.newEntryRank !== 0) {\n obj.newEntryRank = Math.round(message.newEntryRank);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildUpdateEntryRank {\n return MsgGuildUpdateEntryRank.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildUpdateEntryRank {\n const message = createBaseMsgGuildUpdateEntryRank();\n message.creator = object.creator ?? \"\";\n message.newEntryRank = object.newEntryRank ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgGuildUpdateResponse(): MsgGuildUpdateResponse {\n return {};\n}\n\nexport const MsgGuildUpdateResponse: MessageFns = {\n encode(_: MsgGuildUpdateResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildUpdateResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildUpdateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgGuildUpdateResponse {\n return {};\n },\n\n toJSON(_: MsgGuildUpdateResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildUpdateResponse {\n return MsgGuildUpdateResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgGuildUpdateResponse {\n const message = createBaseMsgGuildUpdateResponse();\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipInvite(): MsgGuildMembershipInvite {\n return { creator: \"\", guildId: \"\", playerId: \"\", substationId: \"\" };\n}\n\nexport const MsgGuildMembershipInvite: MessageFns = {\n encode(message: MsgGuildMembershipInvite, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n if (message.substationId !== \"\") {\n writer.uint32(34).string(message.substationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipInvite {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipInvite();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipInvite {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n };\n },\n\n toJSON(message: MsgGuildMembershipInvite): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildMembershipInvite {\n return MsgGuildMembershipInvite.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildMembershipInvite {\n const message = createBaseMsgGuildMembershipInvite();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.substationId = object.substationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipInviteApprove(): MsgGuildMembershipInviteApprove {\n return { creator: \"\", guildId: \"\", playerId: \"\", substationId: \"\" };\n}\n\nexport const MsgGuildMembershipInviteApprove: MessageFns = {\n encode(message: MsgGuildMembershipInviteApprove, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n if (message.substationId !== \"\") {\n writer.uint32(34).string(message.substationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipInviteApprove {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipInviteApprove();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipInviteApprove {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n };\n },\n\n toJSON(message: MsgGuildMembershipInviteApprove): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildMembershipInviteApprove {\n return MsgGuildMembershipInviteApprove.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgGuildMembershipInviteApprove {\n const message = createBaseMsgGuildMembershipInviteApprove();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.substationId = object.substationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipInviteDeny(): MsgGuildMembershipInviteDeny {\n return { creator: \"\", guildId: \"\", playerId: \"\" };\n}\n\nexport const MsgGuildMembershipInviteDeny: MessageFns = {\n encode(message: MsgGuildMembershipInviteDeny, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipInviteDeny {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipInviteDeny();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipInviteDeny {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: MsgGuildMembershipInviteDeny): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildMembershipInviteDeny {\n return MsgGuildMembershipInviteDeny.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildMembershipInviteDeny {\n const message = createBaseMsgGuildMembershipInviteDeny();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipInviteRevoke(): MsgGuildMembershipInviteRevoke {\n return { creator: \"\", guildId: \"\", playerId: \"\" };\n}\n\nexport const MsgGuildMembershipInviteRevoke: MessageFns = {\n encode(message: MsgGuildMembershipInviteRevoke, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipInviteRevoke {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipInviteRevoke();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipInviteRevoke {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: MsgGuildMembershipInviteRevoke): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildMembershipInviteRevoke {\n return MsgGuildMembershipInviteRevoke.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgGuildMembershipInviteRevoke {\n const message = createBaseMsgGuildMembershipInviteRevoke();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipJoin(): MsgGuildMembershipJoin {\n return { creator: \"\", guildId: \"\", playerId: \"\", substationId: \"\", infusionId: [] };\n}\n\nexport const MsgGuildMembershipJoin: MessageFns = {\n encode(message: MsgGuildMembershipJoin, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n if (message.substationId !== \"\") {\n writer.uint32(34).string(message.substationId);\n }\n for (const v of message.infusionId) {\n writer.uint32(42).string(v!);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipJoin {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipJoin();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.infusionId.push(reader.string());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipJoin {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n infusionId: globalThis.Array.isArray(object?.infusionId)\n ? object.infusionId.map((e: any) => globalThis.String(e))\n : [],\n };\n },\n\n toJSON(message: MsgGuildMembershipJoin): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n if (message.infusionId?.length) {\n obj.infusionId = message.infusionId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildMembershipJoin {\n return MsgGuildMembershipJoin.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildMembershipJoin {\n const message = createBaseMsgGuildMembershipJoin();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.substationId = object.substationId ?? \"\";\n message.infusionId = object.infusionId?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipJoinProxy(): MsgGuildMembershipJoinProxy {\n return { creator: \"\", address: \"\", substationId: \"\", proofPubKey: \"\", proofSignature: \"\", playerName: \"\", playerPfp: \"\" };\n}\n\nexport const MsgGuildMembershipJoinProxy: MessageFns = {\n encode(message: MsgGuildMembershipJoinProxy, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.address !== \"\") {\n writer.uint32(18).string(message.address);\n }\n if (message.substationId !== \"\") {\n writer.uint32(26).string(message.substationId);\n }\n if (message.proofPubKey !== \"\") {\n writer.uint32(34).string(message.proofPubKey);\n }\n if (message.proofSignature !== \"\") {\n writer.uint32(42).string(message.proofSignature);\n }\n if (message.playerName !== \"\") {\n writer.uint32(50).string(message.playerName);\n }\n if (message.playerPfp !== \"\") {\n writer.uint32(58).string(message.playerPfp);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipJoinProxy {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipJoinProxy();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.proofPubKey = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.proofSignature = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.playerName = reader.string();\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.playerPfp = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipJoinProxy {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n proofPubKey: isSet(object.proofPubKey) ? globalThis.String(object.proofPubKey) : \"\",\n proofSignature: isSet(object.proofSignature) ? globalThis.String(object.proofSignature) : \"\",\n playerName: isSet(object.playerName) ? globalThis.String(object.playerName) : \"\",\n playerPfp: isSet(object.playerPfp) ? globalThis.String(object.playerPfp) : \"\",\n };\n },\n\n toJSON(message: MsgGuildMembershipJoinProxy): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n if (message.proofPubKey !== \"\") {\n obj.proofPubKey = message.proofPubKey;\n }\n if (message.proofSignature !== \"\") {\n obj.proofSignature = message.proofSignature;\n }\n if (message.playerName !== \"\") {\n obj.playerName = message.playerName;\n }\n if (message.playerPfp !== \"\") {\n obj.playerPfp = message.playerPfp;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildMembershipJoinProxy {\n return MsgGuildMembershipJoinProxy.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildMembershipJoinProxy {\n const message = createBaseMsgGuildMembershipJoinProxy();\n message.creator = object.creator ?? \"\";\n message.address = object.address ?? \"\";\n message.substationId = object.substationId ?? \"\";\n message.proofPubKey = object.proofPubKey ?? \"\";\n message.proofSignature = object.proofSignature ?? \"\";\n message.playerName = object.playerName ?? \"\";\n message.playerPfp = object.playerPfp ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipKick(): MsgGuildMembershipKick {\n return { creator: \"\", guildId: \"\", playerId: \"\" };\n}\n\nexport const MsgGuildMembershipKick: MessageFns = {\n encode(message: MsgGuildMembershipKick, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipKick {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipKick();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipKick {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: MsgGuildMembershipKick): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildMembershipKick {\n return MsgGuildMembershipKick.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildMembershipKick {\n const message = createBaseMsgGuildMembershipKick();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipRequest(): MsgGuildMembershipRequest {\n return { creator: \"\", guildId: \"\", playerId: \"\", substationId: \"\" };\n}\n\nexport const MsgGuildMembershipRequest: MessageFns = {\n encode(message: MsgGuildMembershipRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n if (message.substationId !== \"\") {\n writer.uint32(34).string(message.substationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipRequest {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n };\n },\n\n toJSON(message: MsgGuildMembershipRequest): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildMembershipRequest {\n return MsgGuildMembershipRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildMembershipRequest {\n const message = createBaseMsgGuildMembershipRequest();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.substationId = object.substationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipRequestApprove(): MsgGuildMembershipRequestApprove {\n return { creator: \"\", guildId: \"\", playerId: \"\", substationId: \"\" };\n}\n\nexport const MsgGuildMembershipRequestApprove: MessageFns = {\n encode(message: MsgGuildMembershipRequestApprove, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n if (message.substationId !== \"\") {\n writer.uint32(34).string(message.substationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipRequestApprove {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipRequestApprove();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipRequestApprove {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n };\n },\n\n toJSON(message: MsgGuildMembershipRequestApprove): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgGuildMembershipRequestApprove {\n return MsgGuildMembershipRequestApprove.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgGuildMembershipRequestApprove {\n const message = createBaseMsgGuildMembershipRequestApprove();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.substationId = object.substationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipRequestDeny(): MsgGuildMembershipRequestDeny {\n return { creator: \"\", guildId: \"\", playerId: \"\" };\n}\n\nexport const MsgGuildMembershipRequestDeny: MessageFns = {\n encode(message: MsgGuildMembershipRequestDeny, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipRequestDeny {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipRequestDeny();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipRequestDeny {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: MsgGuildMembershipRequestDeny): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildMembershipRequestDeny {\n return MsgGuildMembershipRequestDeny.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgGuildMembershipRequestDeny {\n const message = createBaseMsgGuildMembershipRequestDeny();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipRequestRevoke(): MsgGuildMembershipRequestRevoke {\n return { creator: \"\", guildId: \"\", playerId: \"\" };\n}\n\nexport const MsgGuildMembershipRequestRevoke: MessageFns = {\n encode(message: MsgGuildMembershipRequestRevoke, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipRequestRevoke {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipRequestRevoke();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipRequestRevoke {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: MsgGuildMembershipRequestRevoke): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildMembershipRequestRevoke {\n return MsgGuildMembershipRequestRevoke.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgGuildMembershipRequestRevoke {\n const message = createBaseMsgGuildMembershipRequestRevoke();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipResponse(): MsgGuildMembershipResponse {\n return { guildMembershipApplication: undefined };\n}\n\nexport const MsgGuildMembershipResponse: MessageFns = {\n encode(message: MsgGuildMembershipResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.guildMembershipApplication !== undefined) {\n GuildMembershipApplication.encode(message.guildMembershipApplication, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.guildMembershipApplication = GuildMembershipApplication.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipResponse {\n return {\n guildMembershipApplication: isSet(object.guildMembershipApplication)\n ? GuildMembershipApplication.fromJSON(object.guildMembershipApplication)\n : undefined,\n };\n },\n\n toJSON(message: MsgGuildMembershipResponse): unknown {\n const obj: any = {};\n if (message.guildMembershipApplication !== undefined) {\n obj.guildMembershipApplication = GuildMembershipApplication.toJSON(message.guildMembershipApplication);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildMembershipResponse {\n return MsgGuildMembershipResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildMembershipResponse {\n const message = createBaseMsgGuildMembershipResponse();\n message.guildMembershipApplication =\n (object.guildMembershipApplication !== undefined && object.guildMembershipApplication !== null)\n ? GuildMembershipApplication.fromPartial(object.guildMembershipApplication)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgPermissionGrantOnObject(): MsgPermissionGrantOnObject {\n return { creator: \"\", objectId: \"\", playerId: \"\", permissions: 0 };\n}\n\nexport const MsgPermissionGrantOnObject: MessageFns = {\n encode(message: MsgPermissionGrantOnObject, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.objectId !== \"\") {\n writer.uint32(18).string(message.objectId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n if (message.permissions !== 0) {\n writer.uint32(32).uint64(message.permissions);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPermissionGrantOnObject {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPermissionGrantOnObject();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.objectId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.permissions = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPermissionGrantOnObject {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n objectId: isSet(object.objectId) ? globalThis.String(object.objectId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n permissions: isSet(object.permissions) ? globalThis.Number(object.permissions) : 0,\n };\n },\n\n toJSON(message: MsgPermissionGrantOnObject): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.objectId !== \"\") {\n obj.objectId = message.objectId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.permissions !== 0) {\n obj.permissions = Math.round(message.permissions);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPermissionGrantOnObject {\n return MsgPermissionGrantOnObject.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPermissionGrantOnObject {\n const message = createBaseMsgPermissionGrantOnObject();\n message.creator = object.creator ?? \"\";\n message.objectId = object.objectId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.permissions = object.permissions ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgPermissionGrantOnAddress(): MsgPermissionGrantOnAddress {\n return { creator: \"\", address: \"\", permissions: 0 };\n}\n\nexport const MsgPermissionGrantOnAddress: MessageFns = {\n encode(message: MsgPermissionGrantOnAddress, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.address !== \"\") {\n writer.uint32(18).string(message.address);\n }\n if (message.permissions !== 0) {\n writer.uint32(24).uint64(message.permissions);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPermissionGrantOnAddress {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPermissionGrantOnAddress();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.permissions = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPermissionGrantOnAddress {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n permissions: isSet(object.permissions) ? globalThis.Number(object.permissions) : 0,\n };\n },\n\n toJSON(message: MsgPermissionGrantOnAddress): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.permissions !== 0) {\n obj.permissions = Math.round(message.permissions);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPermissionGrantOnAddress {\n return MsgPermissionGrantOnAddress.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPermissionGrantOnAddress {\n const message = createBaseMsgPermissionGrantOnAddress();\n message.creator = object.creator ?? \"\";\n message.address = object.address ?? \"\";\n message.permissions = object.permissions ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgPermissionRevokeOnObject(): MsgPermissionRevokeOnObject {\n return { creator: \"\", objectId: \"\", playerId: \"\", permissions: 0 };\n}\n\nexport const MsgPermissionRevokeOnObject: MessageFns = {\n encode(message: MsgPermissionRevokeOnObject, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.objectId !== \"\") {\n writer.uint32(18).string(message.objectId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n if (message.permissions !== 0) {\n writer.uint32(32).uint64(message.permissions);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPermissionRevokeOnObject {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPermissionRevokeOnObject();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.objectId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.permissions = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPermissionRevokeOnObject {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n objectId: isSet(object.objectId) ? globalThis.String(object.objectId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n permissions: isSet(object.permissions) ? globalThis.Number(object.permissions) : 0,\n };\n },\n\n toJSON(message: MsgPermissionRevokeOnObject): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.objectId !== \"\") {\n obj.objectId = message.objectId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.permissions !== 0) {\n obj.permissions = Math.round(message.permissions);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPermissionRevokeOnObject {\n return MsgPermissionRevokeOnObject.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPermissionRevokeOnObject {\n const message = createBaseMsgPermissionRevokeOnObject();\n message.creator = object.creator ?? \"\";\n message.objectId = object.objectId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.permissions = object.permissions ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgPermissionRevokeOnAddress(): MsgPermissionRevokeOnAddress {\n return { creator: \"\", address: \"\", permissions: 0 };\n}\n\nexport const MsgPermissionRevokeOnAddress: MessageFns = {\n encode(message: MsgPermissionRevokeOnAddress, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.address !== \"\") {\n writer.uint32(18).string(message.address);\n }\n if (message.permissions !== 0) {\n writer.uint32(24).uint64(message.permissions);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPermissionRevokeOnAddress {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPermissionRevokeOnAddress();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.permissions = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPermissionRevokeOnAddress {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n permissions: isSet(object.permissions) ? globalThis.Number(object.permissions) : 0,\n };\n },\n\n toJSON(message: MsgPermissionRevokeOnAddress): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.permissions !== 0) {\n obj.permissions = Math.round(message.permissions);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPermissionRevokeOnAddress {\n return MsgPermissionRevokeOnAddress.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPermissionRevokeOnAddress {\n const message = createBaseMsgPermissionRevokeOnAddress();\n message.creator = object.creator ?? \"\";\n message.address = object.address ?? \"\";\n message.permissions = object.permissions ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgPermissionSetOnObject(): MsgPermissionSetOnObject {\n return { creator: \"\", objectId: \"\", playerId: \"\", permissions: 0 };\n}\n\nexport const MsgPermissionSetOnObject: MessageFns = {\n encode(message: MsgPermissionSetOnObject, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.objectId !== \"\") {\n writer.uint32(18).string(message.objectId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n if (message.permissions !== 0) {\n writer.uint32(32).uint64(message.permissions);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPermissionSetOnObject {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPermissionSetOnObject();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.objectId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.permissions = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPermissionSetOnObject {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n objectId: isSet(object.objectId) ? globalThis.String(object.objectId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n permissions: isSet(object.permissions) ? globalThis.Number(object.permissions) : 0,\n };\n },\n\n toJSON(message: MsgPermissionSetOnObject): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.objectId !== \"\") {\n obj.objectId = message.objectId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.permissions !== 0) {\n obj.permissions = Math.round(message.permissions);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPermissionSetOnObject {\n return MsgPermissionSetOnObject.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPermissionSetOnObject {\n const message = createBaseMsgPermissionSetOnObject();\n message.creator = object.creator ?? \"\";\n message.objectId = object.objectId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.permissions = object.permissions ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgPermissionSetOnAddress(): MsgPermissionSetOnAddress {\n return { creator: \"\", address: \"\", permissions: 0 };\n}\n\nexport const MsgPermissionSetOnAddress: MessageFns = {\n encode(message: MsgPermissionSetOnAddress, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.address !== \"\") {\n writer.uint32(18).string(message.address);\n }\n if (message.permissions !== 0) {\n writer.uint32(24).uint64(message.permissions);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPermissionSetOnAddress {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPermissionSetOnAddress();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.permissions = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPermissionSetOnAddress {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n permissions: isSet(object.permissions) ? globalThis.Number(object.permissions) : 0,\n };\n },\n\n toJSON(message: MsgPermissionSetOnAddress): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.permissions !== 0) {\n obj.permissions = Math.round(message.permissions);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPermissionSetOnAddress {\n return MsgPermissionSetOnAddress.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPermissionSetOnAddress {\n const message = createBaseMsgPermissionSetOnAddress();\n message.creator = object.creator ?? \"\";\n message.address = object.address ?? \"\";\n message.permissions = object.permissions ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgPermissionGuildRankSet(): MsgPermissionGuildRankSet {\n return { creator: \"\", objectId: \"\", guildId: \"\", permission: 0, rank: 0 };\n}\n\nexport const MsgPermissionGuildRankSet: MessageFns = {\n encode(message: MsgPermissionGuildRankSet, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.objectId !== \"\") {\n writer.uint32(18).string(message.objectId);\n }\n if (message.guildId !== \"\") {\n writer.uint32(26).string(message.guildId);\n }\n if (message.permission !== 0) {\n writer.uint32(32).uint64(message.permission);\n }\n if (message.rank !== 0) {\n writer.uint32(40).uint64(message.rank);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPermissionGuildRankSet {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPermissionGuildRankSet();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.objectId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.permission = longToNumber(reader.uint64());\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.rank = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPermissionGuildRankSet {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n objectId: isSet(object.objectId) ? globalThis.String(object.objectId) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n permission: isSet(object.permission) ? globalThis.Number(object.permission) : 0,\n rank: isSet(object.rank) ? globalThis.Number(object.rank) : 0,\n };\n },\n\n toJSON(message: MsgPermissionGuildRankSet): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.objectId !== \"\") {\n obj.objectId = message.objectId;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.permission !== 0) {\n obj.permission = Math.round(message.permission);\n }\n if (message.rank !== 0) {\n obj.rank = Math.round(message.rank);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPermissionGuildRankSet {\n return MsgPermissionGuildRankSet.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPermissionGuildRankSet {\n const message = createBaseMsgPermissionGuildRankSet();\n message.creator = object.creator ?? \"\";\n message.objectId = object.objectId ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.permission = object.permission ?? 0;\n message.rank = object.rank ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgPermissionGuildRankRevoke(): MsgPermissionGuildRankRevoke {\n return { creator: \"\", objectId: \"\", guildId: \"\", permission: 0 };\n}\n\nexport const MsgPermissionGuildRankRevoke: MessageFns = {\n encode(message: MsgPermissionGuildRankRevoke, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.objectId !== \"\") {\n writer.uint32(18).string(message.objectId);\n }\n if (message.guildId !== \"\") {\n writer.uint32(26).string(message.guildId);\n }\n if (message.permission !== 0) {\n writer.uint32(32).uint64(message.permission);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPermissionGuildRankRevoke {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPermissionGuildRankRevoke();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.objectId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.permission = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPermissionGuildRankRevoke {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n objectId: isSet(object.objectId) ? globalThis.String(object.objectId) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n permission: isSet(object.permission) ? globalThis.Number(object.permission) : 0,\n };\n },\n\n toJSON(message: MsgPermissionGuildRankRevoke): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.objectId !== \"\") {\n obj.objectId = message.objectId;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.permission !== 0) {\n obj.permission = Math.round(message.permission);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPermissionGuildRankRevoke {\n return MsgPermissionGuildRankRevoke.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgPermissionGuildRankRevoke {\n const message = createBaseMsgPermissionGuildRankRevoke();\n message.creator = object.creator ?? \"\";\n message.objectId = object.objectId ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.permission = object.permission ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgPermissionResponse(): MsgPermissionResponse {\n return {};\n}\n\nexport const MsgPermissionResponse: MessageFns = {\n encode(_: MsgPermissionResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPermissionResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPermissionResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgPermissionResponse {\n return {};\n },\n\n toJSON(_: MsgPermissionResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgPermissionResponse {\n return MsgPermissionResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgPermissionResponse {\n const message = createBaseMsgPermissionResponse();\n return message;\n },\n};\n\nfunction createBaseMsgPlanetExplore(): MsgPlanetExplore {\n return { creator: \"\", playerId: \"\" };\n}\n\nexport const MsgPlanetExplore: MessageFns = {\n encode(message: MsgPlanetExplore, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.playerId !== \"\") {\n writer.uint32(18).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlanetExplore {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlanetExplore();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPlanetExplore {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: MsgPlanetExplore): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPlanetExplore {\n return MsgPlanetExplore.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPlanetExplore {\n const message = createBaseMsgPlanetExplore();\n message.creator = object.creator ?? \"\";\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgPlanetExploreResponse(): MsgPlanetExploreResponse {\n return { planet: undefined };\n}\n\nexport const MsgPlanetExploreResponse: MessageFns = {\n encode(message: MsgPlanetExploreResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.planet !== undefined) {\n Planet.encode(message.planet, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlanetExploreResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlanetExploreResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.planet = Planet.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPlanetExploreResponse {\n return { planet: isSet(object.planet) ? Planet.fromJSON(object.planet) : undefined };\n },\n\n toJSON(message: MsgPlanetExploreResponse): unknown {\n const obj: any = {};\n if (message.planet !== undefined) {\n obj.planet = Planet.toJSON(message.planet);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPlanetExploreResponse {\n return MsgPlanetExploreResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPlanetExploreResponse {\n const message = createBaseMsgPlanetExploreResponse();\n message.planet = (object.planet !== undefined && object.planet !== null)\n ? Planet.fromPartial(object.planet)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgPlanetRaidComplete(): MsgPlanetRaidComplete {\n return { creator: \"\", fleetId: \"\", proof: \"\", nonce: \"\" };\n}\n\nexport const MsgPlanetRaidComplete: MessageFns = {\n encode(message: MsgPlanetRaidComplete, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.fleetId !== \"\") {\n writer.uint32(18).string(message.fleetId);\n }\n if (message.proof !== \"\") {\n writer.uint32(26).string(message.proof);\n }\n if (message.nonce !== \"\") {\n writer.uint32(34).string(message.nonce);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlanetRaidComplete {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlanetRaidComplete();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.fleetId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.proof = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.nonce = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPlanetRaidComplete {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n fleetId: isSet(object.fleetId) ? globalThis.String(object.fleetId) : \"\",\n proof: isSet(object.proof) ? globalThis.String(object.proof) : \"\",\n nonce: isSet(object.nonce) ? globalThis.String(object.nonce) : \"\",\n };\n },\n\n toJSON(message: MsgPlanetRaidComplete): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.fleetId !== \"\") {\n obj.fleetId = message.fleetId;\n }\n if (message.proof !== \"\") {\n obj.proof = message.proof;\n }\n if (message.nonce !== \"\") {\n obj.nonce = message.nonce;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPlanetRaidComplete {\n return MsgPlanetRaidComplete.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPlanetRaidComplete {\n const message = createBaseMsgPlanetRaidComplete();\n message.creator = object.creator ?? \"\";\n message.fleetId = object.fleetId ?? \"\";\n message.proof = object.proof ?? \"\";\n message.nonce = object.nonce ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgPlanetRaidCompleteResponse(): MsgPlanetRaidCompleteResponse {\n return { fleet: undefined, planet: undefined, oreStolen: 0 };\n}\n\nexport const MsgPlanetRaidCompleteResponse: MessageFns = {\n encode(message: MsgPlanetRaidCompleteResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.fleet !== undefined) {\n Fleet.encode(message.fleet, writer.uint32(10).fork()).join();\n }\n if (message.planet !== undefined) {\n Planet.encode(message.planet, writer.uint32(18).fork()).join();\n }\n if (message.oreStolen !== 0) {\n writer.uint32(24).uint64(message.oreStolen);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlanetRaidCompleteResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlanetRaidCompleteResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.fleet = Fleet.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.planet = Planet.decode(reader, reader.uint32());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.oreStolen = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPlanetRaidCompleteResponse {\n return {\n fleet: isSet(object.fleet) ? Fleet.fromJSON(object.fleet) : undefined,\n planet: isSet(object.planet) ? Planet.fromJSON(object.planet) : undefined,\n oreStolen: isSet(object.oreStolen) ? globalThis.Number(object.oreStolen) : 0,\n };\n },\n\n toJSON(message: MsgPlanetRaidCompleteResponse): unknown {\n const obj: any = {};\n if (message.fleet !== undefined) {\n obj.fleet = Fleet.toJSON(message.fleet);\n }\n if (message.planet !== undefined) {\n obj.planet = Planet.toJSON(message.planet);\n }\n if (message.oreStolen !== 0) {\n obj.oreStolen = Math.round(message.oreStolen);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPlanetRaidCompleteResponse {\n return MsgPlanetRaidCompleteResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgPlanetRaidCompleteResponse {\n const message = createBaseMsgPlanetRaidCompleteResponse();\n message.fleet = (object.fleet !== undefined && object.fleet !== null) ? Fleet.fromPartial(object.fleet) : undefined;\n message.planet = (object.planet !== undefined && object.planet !== null)\n ? Planet.fromPartial(object.planet)\n : undefined;\n message.oreStolen = object.oreStolen ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgPlayerUpdatePrimaryAddress(): MsgPlayerUpdatePrimaryAddress {\n return { creator: \"\", primaryAddress: \"\" };\n}\n\nexport const MsgPlayerUpdatePrimaryAddress: MessageFns = {\n encode(message: MsgPlayerUpdatePrimaryAddress, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.primaryAddress !== \"\") {\n writer.uint32(18).string(message.primaryAddress);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlayerUpdatePrimaryAddress {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlayerUpdatePrimaryAddress();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.primaryAddress = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPlayerUpdatePrimaryAddress {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n primaryAddress: isSet(object.primaryAddress) ? globalThis.String(object.primaryAddress) : \"\",\n };\n },\n\n toJSON(message: MsgPlayerUpdatePrimaryAddress): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.primaryAddress !== \"\") {\n obj.primaryAddress = message.primaryAddress;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPlayerUpdatePrimaryAddress {\n return MsgPlayerUpdatePrimaryAddress.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgPlayerUpdatePrimaryAddress {\n const message = createBaseMsgPlayerUpdatePrimaryAddress();\n message.creator = object.creator ?? \"\";\n message.primaryAddress = object.primaryAddress ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgPlayerUpdatePrimaryAddressResponse(): MsgPlayerUpdatePrimaryAddressResponse {\n return {};\n}\n\nexport const MsgPlayerUpdatePrimaryAddressResponse: MessageFns = {\n encode(_: MsgPlayerUpdatePrimaryAddressResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlayerUpdatePrimaryAddressResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlayerUpdatePrimaryAddressResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgPlayerUpdatePrimaryAddressResponse {\n return {};\n },\n\n toJSON(_: MsgPlayerUpdatePrimaryAddressResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgPlayerUpdatePrimaryAddressResponse {\n return MsgPlayerUpdatePrimaryAddressResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n _: I,\n ): MsgPlayerUpdatePrimaryAddressResponse {\n const message = createBaseMsgPlayerUpdatePrimaryAddressResponse();\n return message;\n },\n};\n\nfunction createBaseMsgPlayerUpdateGuildRank(): MsgPlayerUpdateGuildRank {\n return { creator: \"\", playerId: \"\", guildRank: 0 };\n}\n\nexport const MsgPlayerUpdateGuildRank: MessageFns = {\n encode(message: MsgPlayerUpdateGuildRank, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.playerId !== \"\") {\n writer.uint32(18).string(message.playerId);\n }\n if (message.guildRank !== 0) {\n writer.uint32(24).uint64(message.guildRank);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlayerUpdateGuildRank {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlayerUpdateGuildRank();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.guildRank = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPlayerUpdateGuildRank {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n guildRank: isSet(object.guildRank) ? globalThis.Number(object.guildRank) : 0,\n };\n },\n\n toJSON(message: MsgPlayerUpdateGuildRank): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.guildRank !== 0) {\n obj.guildRank = Math.round(message.guildRank);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPlayerUpdateGuildRank {\n return MsgPlayerUpdateGuildRank.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPlayerUpdateGuildRank {\n const message = createBaseMsgPlayerUpdateGuildRank();\n message.creator = object.creator ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.guildRank = object.guildRank ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgPlayerUpdateGuildRankResponse(): MsgPlayerUpdateGuildRankResponse {\n return {};\n}\n\nexport const MsgPlayerUpdateGuildRankResponse: MessageFns = {\n encode(_: MsgPlayerUpdateGuildRankResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlayerUpdateGuildRankResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlayerUpdateGuildRankResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgPlayerUpdateGuildRankResponse {\n return {};\n },\n\n toJSON(_: MsgPlayerUpdateGuildRankResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgPlayerUpdateGuildRankResponse {\n return MsgPlayerUpdateGuildRankResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n _: I,\n ): MsgPlayerUpdateGuildRankResponse {\n const message = createBaseMsgPlayerUpdateGuildRankResponse();\n return message;\n },\n};\n\nfunction createBaseMsgPlayerResume(): MsgPlayerResume {\n return { creator: \"\", playerId: \"\" };\n}\n\nexport const MsgPlayerResume: MessageFns = {\n encode(message: MsgPlayerResume, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.playerId !== \"\") {\n writer.uint32(18).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlayerResume {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlayerResume();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPlayerResume {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: MsgPlayerResume): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPlayerResume {\n return MsgPlayerResume.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPlayerResume {\n const message = createBaseMsgPlayerResume();\n message.creator = object.creator ?? \"\";\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgPlayerResumeResponse(): MsgPlayerResumeResponse {\n return {};\n}\n\nexport const MsgPlayerResumeResponse: MessageFns = {\n encode(_: MsgPlayerResumeResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlayerResumeResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlayerResumeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgPlayerResumeResponse {\n return {};\n },\n\n toJSON(_: MsgPlayerResumeResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgPlayerResumeResponse {\n return MsgPlayerResumeResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgPlayerResumeResponse {\n const message = createBaseMsgPlayerResumeResponse();\n return message;\n },\n};\n\nfunction createBaseMsgReactorInfuse(): MsgReactorInfuse {\n return { creator: \"\", delegatorAddress: \"\", validatorAddress: \"\", amount: undefined };\n}\n\nexport const MsgReactorInfuse: MessageFns = {\n encode(message: MsgReactorInfuse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.delegatorAddress !== \"\") {\n writer.uint32(18).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(26).string(message.validatorAddress);\n }\n if (message.amount !== undefined) {\n Coin.encode(message.amount, writer.uint32(34).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgReactorInfuse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgReactorInfuse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.delegatorAddress = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.validatorAddress = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.amount = Coin.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgReactorInfuse {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n delegatorAddress: isSet(object.delegatorAddress) ? globalThis.String(object.delegatorAddress) : \"\",\n validatorAddress: isSet(object.validatorAddress) ? globalThis.String(object.validatorAddress) : \"\",\n amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined,\n };\n },\n\n toJSON(message: MsgReactorInfuse): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.delegatorAddress !== \"\") {\n obj.delegatorAddress = message.delegatorAddress;\n }\n if (message.validatorAddress !== \"\") {\n obj.validatorAddress = message.validatorAddress;\n }\n if (message.amount !== undefined) {\n obj.amount = Coin.toJSON(message.amount);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgReactorInfuse {\n return MsgReactorInfuse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgReactorInfuse {\n const message = createBaseMsgReactorInfuse();\n message.creator = object.creator ?? \"\";\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n message.amount = (object.amount !== undefined && object.amount !== null)\n ? Coin.fromPartial(object.amount)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgReactorInfuseResponse(): MsgReactorInfuseResponse {\n return {};\n}\n\nexport const MsgReactorInfuseResponse: MessageFns = {\n encode(_: MsgReactorInfuseResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgReactorInfuseResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgReactorInfuseResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgReactorInfuseResponse {\n return {};\n },\n\n toJSON(_: MsgReactorInfuseResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgReactorInfuseResponse {\n return MsgReactorInfuseResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgReactorInfuseResponse {\n const message = createBaseMsgReactorInfuseResponse();\n return message;\n },\n};\n\nfunction createBaseMsgReactorBeginMigration(): MsgReactorBeginMigration {\n return { creator: \"\", delegatorAddress: \"\", validatorSrcAddress: \"\", validatorDstAddress: \"\", amount: undefined };\n}\n\nexport const MsgReactorBeginMigration: MessageFns = {\n encode(message: MsgReactorBeginMigration, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.delegatorAddress !== \"\") {\n writer.uint32(18).string(message.delegatorAddress);\n }\n if (message.validatorSrcAddress !== \"\") {\n writer.uint32(26).string(message.validatorSrcAddress);\n }\n if (message.validatorDstAddress !== \"\") {\n writer.uint32(34).string(message.validatorDstAddress);\n }\n if (message.amount !== undefined) {\n Coin.encode(message.amount, writer.uint32(42).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgReactorBeginMigration {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgReactorBeginMigration();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.delegatorAddress = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.validatorSrcAddress = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.validatorDstAddress = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.amount = Coin.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgReactorBeginMigration {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n delegatorAddress: isSet(object.delegatorAddress) ? globalThis.String(object.delegatorAddress) : \"\",\n validatorSrcAddress: isSet(object.validatorSrcAddress) ? globalThis.String(object.validatorSrcAddress) : \"\",\n validatorDstAddress: isSet(object.validatorDstAddress) ? globalThis.String(object.validatorDstAddress) : \"\",\n amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined,\n };\n },\n\n toJSON(message: MsgReactorBeginMigration): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.delegatorAddress !== \"\") {\n obj.delegatorAddress = message.delegatorAddress;\n }\n if (message.validatorSrcAddress !== \"\") {\n obj.validatorSrcAddress = message.validatorSrcAddress;\n }\n if (message.validatorDstAddress !== \"\") {\n obj.validatorDstAddress = message.validatorDstAddress;\n }\n if (message.amount !== undefined) {\n obj.amount = Coin.toJSON(message.amount);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgReactorBeginMigration {\n return MsgReactorBeginMigration.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgReactorBeginMigration {\n const message = createBaseMsgReactorBeginMigration();\n message.creator = object.creator ?? \"\";\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorSrcAddress = object.validatorSrcAddress ?? \"\";\n message.validatorDstAddress = object.validatorDstAddress ?? \"\";\n message.amount = (object.amount !== undefined && object.amount !== null)\n ? Coin.fromPartial(object.amount)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgReactorBeginMigrationResponse(): MsgReactorBeginMigrationResponse {\n return { completionTime: undefined };\n}\n\nexport const MsgReactorBeginMigrationResponse: MessageFns = {\n encode(message: MsgReactorBeginMigrationResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.completionTime !== undefined) {\n Timestamp.encode(toTimestamp(message.completionTime), writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgReactorBeginMigrationResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgReactorBeginMigrationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.completionTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgReactorBeginMigrationResponse {\n return { completionTime: isSet(object.completionTime) ? fromJsonTimestamp(object.completionTime) : undefined };\n },\n\n toJSON(message: MsgReactorBeginMigrationResponse): unknown {\n const obj: any = {};\n if (message.completionTime !== undefined) {\n obj.completionTime = message.completionTime.toISOString();\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgReactorBeginMigrationResponse {\n return MsgReactorBeginMigrationResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgReactorBeginMigrationResponse {\n const message = createBaseMsgReactorBeginMigrationResponse();\n message.completionTime = object.completionTime ?? undefined;\n return message;\n },\n};\n\nfunction createBaseMsgReactorDefuse(): MsgReactorDefuse {\n return { creator: \"\", delegatorAddress: \"\", validatorAddress: \"\", amount: undefined };\n}\n\nexport const MsgReactorDefuse: MessageFns = {\n encode(message: MsgReactorDefuse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.delegatorAddress !== \"\") {\n writer.uint32(18).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(26).string(message.validatorAddress);\n }\n if (message.amount !== undefined) {\n Coin.encode(message.amount, writer.uint32(34).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgReactorDefuse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgReactorDefuse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.delegatorAddress = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.validatorAddress = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.amount = Coin.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgReactorDefuse {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n delegatorAddress: isSet(object.delegatorAddress) ? globalThis.String(object.delegatorAddress) : \"\",\n validatorAddress: isSet(object.validatorAddress) ? globalThis.String(object.validatorAddress) : \"\",\n amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined,\n };\n },\n\n toJSON(message: MsgReactorDefuse): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.delegatorAddress !== \"\") {\n obj.delegatorAddress = message.delegatorAddress;\n }\n if (message.validatorAddress !== \"\") {\n obj.validatorAddress = message.validatorAddress;\n }\n if (message.amount !== undefined) {\n obj.amount = Coin.toJSON(message.amount);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgReactorDefuse {\n return MsgReactorDefuse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgReactorDefuse {\n const message = createBaseMsgReactorDefuse();\n message.creator = object.creator ?? \"\";\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n message.amount = (object.amount !== undefined && object.amount !== null)\n ? Coin.fromPartial(object.amount)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgReactorDefuseResponse(): MsgReactorDefuseResponse {\n return { completionTime: undefined, amount: undefined };\n}\n\nexport const MsgReactorDefuseResponse: MessageFns = {\n encode(message: MsgReactorDefuseResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.completionTime !== undefined) {\n Timestamp.encode(toTimestamp(message.completionTime), writer.uint32(10).fork()).join();\n }\n if (message.amount !== undefined) {\n Coin.encode(message.amount, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgReactorDefuseResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgReactorDefuseResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.completionTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.amount = Coin.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgReactorDefuseResponse {\n return {\n completionTime: isSet(object.completionTime) ? fromJsonTimestamp(object.completionTime) : undefined,\n amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined,\n };\n },\n\n toJSON(message: MsgReactorDefuseResponse): unknown {\n const obj: any = {};\n if (message.completionTime !== undefined) {\n obj.completionTime = message.completionTime.toISOString();\n }\n if (message.amount !== undefined) {\n obj.amount = Coin.toJSON(message.amount);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgReactorDefuseResponse {\n return MsgReactorDefuseResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgReactorDefuseResponse {\n const message = createBaseMsgReactorDefuseResponse();\n message.completionTime = object.completionTime ?? undefined;\n message.amount = (object.amount !== undefined && object.amount !== null)\n ? Coin.fromPartial(object.amount)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgReactorCancelDefusion(): MsgReactorCancelDefusion {\n return { creator: \"\", delegatorAddress: \"\", validatorAddress: \"\", amount: undefined, creationHeight: 0 };\n}\n\nexport const MsgReactorCancelDefusion: MessageFns = {\n encode(message: MsgReactorCancelDefusion, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.delegatorAddress !== \"\") {\n writer.uint32(18).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(26).string(message.validatorAddress);\n }\n if (message.amount !== undefined) {\n Coin.encode(message.amount, writer.uint32(34).fork()).join();\n }\n if (message.creationHeight !== 0) {\n writer.uint32(40).int64(message.creationHeight);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgReactorCancelDefusion {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgReactorCancelDefusion();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.delegatorAddress = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.validatorAddress = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.amount = Coin.decode(reader, reader.uint32());\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.creationHeight = longToNumber(reader.int64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgReactorCancelDefusion {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n delegatorAddress: isSet(object.delegatorAddress) ? globalThis.String(object.delegatorAddress) : \"\",\n validatorAddress: isSet(object.validatorAddress) ? globalThis.String(object.validatorAddress) : \"\",\n amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined,\n creationHeight: isSet(object.creationHeight) ? globalThis.Number(object.creationHeight) : 0,\n };\n },\n\n toJSON(message: MsgReactorCancelDefusion): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.delegatorAddress !== \"\") {\n obj.delegatorAddress = message.delegatorAddress;\n }\n if (message.validatorAddress !== \"\") {\n obj.validatorAddress = message.validatorAddress;\n }\n if (message.amount !== undefined) {\n obj.amount = Coin.toJSON(message.amount);\n }\n if (message.creationHeight !== 0) {\n obj.creationHeight = Math.round(message.creationHeight);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgReactorCancelDefusion {\n return MsgReactorCancelDefusion.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgReactorCancelDefusion {\n const message = createBaseMsgReactorCancelDefusion();\n message.creator = object.creator ?? \"\";\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n message.amount = (object.amount !== undefined && object.amount !== null)\n ? Coin.fromPartial(object.amount)\n : undefined;\n message.creationHeight = object.creationHeight ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgReactorCancelDefusionResponse(): MsgReactorCancelDefusionResponse {\n return {};\n}\n\nexport const MsgReactorCancelDefusionResponse: MessageFns = {\n encode(_: MsgReactorCancelDefusionResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgReactorCancelDefusionResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgReactorCancelDefusionResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgReactorCancelDefusionResponse {\n return {};\n },\n\n toJSON(_: MsgReactorCancelDefusionResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgReactorCancelDefusionResponse {\n return MsgReactorCancelDefusionResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n _: I,\n ): MsgReactorCancelDefusionResponse {\n const message = createBaseMsgReactorCancelDefusionResponse();\n return message;\n },\n};\n\nfunction createBaseMsgStructStatusResponse(): MsgStructStatusResponse {\n return { struct: undefined };\n}\n\nexport const MsgStructStatusResponse: MessageFns = {\n encode(message: MsgStructStatusResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.struct !== undefined) {\n Struct.encode(message.struct, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructStatusResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructStatusResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.struct = Struct.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructStatusResponse {\n return { struct: isSet(object.struct) ? Struct.fromJSON(object.struct) : undefined };\n },\n\n toJSON(message: MsgStructStatusResponse): unknown {\n const obj: any = {};\n if (message.struct !== undefined) {\n obj.struct = Struct.toJSON(message.struct);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructStatusResponse {\n return MsgStructStatusResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructStatusResponse {\n const message = createBaseMsgStructStatusResponse();\n message.struct = (object.struct !== undefined && object.struct !== null)\n ? Struct.fromPartial(object.struct)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgStructActivate(): MsgStructActivate {\n return { creator: \"\", structId: \"\" };\n}\n\nexport const MsgStructActivate: MessageFns = {\n encode(message: MsgStructActivate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructActivate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructActivate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructActivate {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n };\n },\n\n toJSON(message: MsgStructActivate): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructActivate {\n return MsgStructActivate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructActivate {\n const message = createBaseMsgStructActivate();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructDeactivate(): MsgStructDeactivate {\n return { creator: \"\", structId: \"\" };\n}\n\nexport const MsgStructDeactivate: MessageFns = {\n encode(message: MsgStructDeactivate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructDeactivate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructDeactivate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructDeactivate {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n };\n },\n\n toJSON(message: MsgStructDeactivate): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructDeactivate {\n return MsgStructDeactivate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructDeactivate {\n const message = createBaseMsgStructDeactivate();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructBuildInitiate(): MsgStructBuildInitiate {\n return { creator: \"\", playerId: \"\", structTypeId: 0, operatingAmbit: 0, slot: 0 };\n}\n\nexport const MsgStructBuildInitiate: MessageFns = {\n encode(message: MsgStructBuildInitiate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.playerId !== \"\") {\n writer.uint32(18).string(message.playerId);\n }\n if (message.structTypeId !== 0) {\n writer.uint32(24).uint64(message.structTypeId);\n }\n if (message.operatingAmbit !== 0) {\n writer.uint32(32).int32(message.operatingAmbit);\n }\n if (message.slot !== 0) {\n writer.uint32(40).uint64(message.slot);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructBuildInitiate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructBuildInitiate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.structTypeId = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.operatingAmbit = reader.int32() as any;\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.slot = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructBuildInitiate {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n structTypeId: isSet(object.structTypeId) ? globalThis.Number(object.structTypeId) : 0,\n operatingAmbit: isSet(object.operatingAmbit) ? ambitFromJSON(object.operatingAmbit) : 0,\n slot: isSet(object.slot) ? globalThis.Number(object.slot) : 0,\n };\n },\n\n toJSON(message: MsgStructBuildInitiate): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.structTypeId !== 0) {\n obj.structTypeId = Math.round(message.structTypeId);\n }\n if (message.operatingAmbit !== 0) {\n obj.operatingAmbit = ambitToJSON(message.operatingAmbit);\n }\n if (message.slot !== 0) {\n obj.slot = Math.round(message.slot);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructBuildInitiate {\n return MsgStructBuildInitiate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructBuildInitiate {\n const message = createBaseMsgStructBuildInitiate();\n message.creator = object.creator ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.structTypeId = object.structTypeId ?? 0;\n message.operatingAmbit = object.operatingAmbit ?? 0;\n message.slot = object.slot ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgStructBuildComplete(): MsgStructBuildComplete {\n return { creator: \"\", structId: \"\", proof: \"\", nonce: \"\" };\n}\n\nexport const MsgStructBuildComplete: MessageFns = {\n encode(message: MsgStructBuildComplete, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n if (message.proof !== \"\") {\n writer.uint32(26).string(message.proof);\n }\n if (message.nonce !== \"\") {\n writer.uint32(34).string(message.nonce);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructBuildComplete {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructBuildComplete();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.proof = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.nonce = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructBuildComplete {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n proof: isSet(object.proof) ? globalThis.String(object.proof) : \"\",\n nonce: isSet(object.nonce) ? globalThis.String(object.nonce) : \"\",\n };\n },\n\n toJSON(message: MsgStructBuildComplete): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n if (message.proof !== \"\") {\n obj.proof = message.proof;\n }\n if (message.nonce !== \"\") {\n obj.nonce = message.nonce;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructBuildComplete {\n return MsgStructBuildComplete.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructBuildComplete {\n const message = createBaseMsgStructBuildComplete();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n message.proof = object.proof ?? \"\";\n message.nonce = object.nonce ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructBuildCancel(): MsgStructBuildCancel {\n return { creator: \"\", structId: \"\" };\n}\n\nexport const MsgStructBuildCancel: MessageFns = {\n encode(message: MsgStructBuildCancel, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructBuildCancel {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructBuildCancel();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructBuildCancel {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n };\n },\n\n toJSON(message: MsgStructBuildCancel): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructBuildCancel {\n return MsgStructBuildCancel.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructBuildCancel {\n const message = createBaseMsgStructBuildCancel();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructBuildCompleteAndStash(): MsgStructBuildCompleteAndStash {\n return { creator: \"\", structId: \"\", proof: \"\", nonce: \"\", storageDestinationId: \"\", storageAmbit: 0, storageSlot: 0 };\n}\n\nexport const MsgStructBuildCompleteAndStash: MessageFns = {\n encode(message: MsgStructBuildCompleteAndStash, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n if (message.proof !== \"\") {\n writer.uint32(26).string(message.proof);\n }\n if (message.nonce !== \"\") {\n writer.uint32(34).string(message.nonce);\n }\n if (message.storageDestinationId !== \"\") {\n writer.uint32(42).string(message.storageDestinationId);\n }\n if (message.storageAmbit !== 0) {\n writer.uint32(48).int32(message.storageAmbit);\n }\n if (message.storageSlot !== 0) {\n writer.uint32(56).uint64(message.storageSlot);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructBuildCompleteAndStash {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructBuildCompleteAndStash();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.proof = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.nonce = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.storageDestinationId = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.storageAmbit = reader.int32() as any;\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.storageSlot = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructBuildCompleteAndStash {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n proof: isSet(object.proof) ? globalThis.String(object.proof) : \"\",\n nonce: isSet(object.nonce) ? globalThis.String(object.nonce) : \"\",\n storageDestinationId: isSet(object.storageDestinationId) ? globalThis.String(object.storageDestinationId) : \"\",\n storageAmbit: isSet(object.storageAmbit) ? ambitFromJSON(object.storageAmbit) : 0,\n storageSlot: isSet(object.storageSlot) ? globalThis.Number(object.storageSlot) : 0,\n };\n },\n\n toJSON(message: MsgStructBuildCompleteAndStash): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n if (message.proof !== \"\") {\n obj.proof = message.proof;\n }\n if (message.nonce !== \"\") {\n obj.nonce = message.nonce;\n }\n if (message.storageDestinationId !== \"\") {\n obj.storageDestinationId = message.storageDestinationId;\n }\n if (message.storageAmbit !== 0) {\n obj.storageAmbit = ambitToJSON(message.storageAmbit);\n }\n if (message.storageSlot !== 0) {\n obj.storageSlot = Math.round(message.storageSlot);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructBuildCompleteAndStash {\n return MsgStructBuildCompleteAndStash.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgStructBuildCompleteAndStash {\n const message = createBaseMsgStructBuildCompleteAndStash();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n message.proof = object.proof ?? \"\";\n message.nonce = object.nonce ?? \"\";\n message.storageDestinationId = object.storageDestinationId ?? \"\";\n message.storageAmbit = object.storageAmbit ?? 0;\n message.storageSlot = object.storageSlot ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgStructDefenseSet(): MsgStructDefenseSet {\n return { creator: \"\", defenderStructId: \"\", protectedStructId: \"\" };\n}\n\nexport const MsgStructDefenseSet: MessageFns = {\n encode(message: MsgStructDefenseSet, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.defenderStructId !== \"\") {\n writer.uint32(18).string(message.defenderStructId);\n }\n if (message.protectedStructId !== \"\") {\n writer.uint32(26).string(message.protectedStructId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructDefenseSet {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructDefenseSet();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.defenderStructId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.protectedStructId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructDefenseSet {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n defenderStructId: isSet(object.defenderStructId) ? globalThis.String(object.defenderStructId) : \"\",\n protectedStructId: isSet(object.protectedStructId) ? globalThis.String(object.protectedStructId) : \"\",\n };\n },\n\n toJSON(message: MsgStructDefenseSet): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.defenderStructId !== \"\") {\n obj.defenderStructId = message.defenderStructId;\n }\n if (message.protectedStructId !== \"\") {\n obj.protectedStructId = message.protectedStructId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructDefenseSet {\n return MsgStructDefenseSet.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructDefenseSet {\n const message = createBaseMsgStructDefenseSet();\n message.creator = object.creator ?? \"\";\n message.defenderStructId = object.defenderStructId ?? \"\";\n message.protectedStructId = object.protectedStructId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructDefenseClear(): MsgStructDefenseClear {\n return { creator: \"\", defenderStructId: \"\" };\n}\n\nexport const MsgStructDefenseClear: MessageFns = {\n encode(message: MsgStructDefenseClear, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.defenderStructId !== \"\") {\n writer.uint32(18).string(message.defenderStructId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructDefenseClear {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructDefenseClear();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.defenderStructId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructDefenseClear {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n defenderStructId: isSet(object.defenderStructId) ? globalThis.String(object.defenderStructId) : \"\",\n };\n },\n\n toJSON(message: MsgStructDefenseClear): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.defenderStructId !== \"\") {\n obj.defenderStructId = message.defenderStructId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructDefenseClear {\n return MsgStructDefenseClear.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructDefenseClear {\n const message = createBaseMsgStructDefenseClear();\n message.creator = object.creator ?? \"\";\n message.defenderStructId = object.defenderStructId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructMove(): MsgStructMove {\n return { creator: \"\", structId: \"\", locationType: 0, ambit: 0, slot: 0 };\n}\n\nexport const MsgStructMove: MessageFns = {\n encode(message: MsgStructMove, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n if (message.locationType !== 0) {\n writer.uint32(32).int32(message.locationType);\n }\n if (message.ambit !== 0) {\n writer.uint32(40).int32(message.ambit);\n }\n if (message.slot !== 0) {\n writer.uint32(48).uint64(message.slot);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructMove {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructMove();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.locationType = reader.int32() as any;\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.ambit = reader.int32() as any;\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.slot = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructMove {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n locationType: isSet(object.locationType) ? objectTypeFromJSON(object.locationType) : 0,\n ambit: isSet(object.ambit) ? ambitFromJSON(object.ambit) : 0,\n slot: isSet(object.slot) ? globalThis.Number(object.slot) : 0,\n };\n },\n\n toJSON(message: MsgStructMove): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n if (message.locationType !== 0) {\n obj.locationType = objectTypeToJSON(message.locationType);\n }\n if (message.ambit !== 0) {\n obj.ambit = ambitToJSON(message.ambit);\n }\n if (message.slot !== 0) {\n obj.slot = Math.round(message.slot);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructMove {\n return MsgStructMove.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructMove {\n const message = createBaseMsgStructMove();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n message.locationType = object.locationType ?? 0;\n message.ambit = object.ambit ?? 0;\n message.slot = object.slot ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgStructAttack(): MsgStructAttack {\n return { creator: \"\", operatingStructId: \"\", targetStructId: [], weaponSystem: \"\" };\n}\n\nexport const MsgStructAttack: MessageFns = {\n encode(message: MsgStructAttack, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.operatingStructId !== \"\") {\n writer.uint32(18).string(message.operatingStructId);\n }\n for (const v of message.targetStructId) {\n writer.uint32(26).string(v!);\n }\n if (message.weaponSystem !== \"\") {\n writer.uint32(34).string(message.weaponSystem);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructAttack {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructAttack();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.operatingStructId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.targetStructId.push(reader.string());\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.weaponSystem = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructAttack {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n operatingStructId: isSet(object.operatingStructId) ? globalThis.String(object.operatingStructId) : \"\",\n targetStructId: globalThis.Array.isArray(object?.targetStructId)\n ? object.targetStructId.map((e: any) => globalThis.String(e))\n : [],\n weaponSystem: isSet(object.weaponSystem) ? globalThis.String(object.weaponSystem) : \"\",\n };\n },\n\n toJSON(message: MsgStructAttack): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.operatingStructId !== \"\") {\n obj.operatingStructId = message.operatingStructId;\n }\n if (message.targetStructId?.length) {\n obj.targetStructId = message.targetStructId;\n }\n if (message.weaponSystem !== \"\") {\n obj.weaponSystem = message.weaponSystem;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructAttack {\n return MsgStructAttack.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructAttack {\n const message = createBaseMsgStructAttack();\n message.creator = object.creator ?? \"\";\n message.operatingStructId = object.operatingStructId ?? \"\";\n message.targetStructId = object.targetStructId?.map((e) => e) || [];\n message.weaponSystem = object.weaponSystem ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructAttackResponse(): MsgStructAttackResponse {\n return {};\n}\n\nexport const MsgStructAttackResponse: MessageFns = {\n encode(_: MsgStructAttackResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructAttackResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructAttackResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgStructAttackResponse {\n return {};\n },\n\n toJSON(_: MsgStructAttackResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgStructAttackResponse {\n return MsgStructAttackResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgStructAttackResponse {\n const message = createBaseMsgStructAttackResponse();\n return message;\n },\n};\n\nfunction createBaseMsgStructStealthActivate(): MsgStructStealthActivate {\n return { creator: \"\", structId: \"\" };\n}\n\nexport const MsgStructStealthActivate: MessageFns = {\n encode(message: MsgStructStealthActivate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructStealthActivate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructStealthActivate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructStealthActivate {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n };\n },\n\n toJSON(message: MsgStructStealthActivate): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructStealthActivate {\n return MsgStructStealthActivate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructStealthActivate {\n const message = createBaseMsgStructStealthActivate();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructStealthDeactivate(): MsgStructStealthDeactivate {\n return { creator: \"\", structId: \"\" };\n}\n\nexport const MsgStructStealthDeactivate: MessageFns = {\n encode(message: MsgStructStealthDeactivate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructStealthDeactivate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructStealthDeactivate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructStealthDeactivate {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n };\n },\n\n toJSON(message: MsgStructStealthDeactivate): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructStealthDeactivate {\n return MsgStructStealthDeactivate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructStealthDeactivate {\n const message = createBaseMsgStructStealthDeactivate();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructGeneratorInfuse(): MsgStructGeneratorInfuse {\n return { creator: \"\", structId: \"\", infuseAmount: \"\" };\n}\n\nexport const MsgStructGeneratorInfuse: MessageFns = {\n encode(message: MsgStructGeneratorInfuse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n if (message.infuseAmount !== \"\") {\n writer.uint32(26).string(message.infuseAmount);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructGeneratorInfuse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructGeneratorInfuse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.infuseAmount = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructGeneratorInfuse {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n infuseAmount: isSet(object.infuseAmount) ? globalThis.String(object.infuseAmount) : \"\",\n };\n },\n\n toJSON(message: MsgStructGeneratorInfuse): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n if (message.infuseAmount !== \"\") {\n obj.infuseAmount = message.infuseAmount;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructGeneratorInfuse {\n return MsgStructGeneratorInfuse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructGeneratorInfuse {\n const message = createBaseMsgStructGeneratorInfuse();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n message.infuseAmount = object.infuseAmount ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructGeneratorStatusResponse(): MsgStructGeneratorStatusResponse {\n return {};\n}\n\nexport const MsgStructGeneratorStatusResponse: MessageFns = {\n encode(_: MsgStructGeneratorStatusResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructGeneratorStatusResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructGeneratorStatusResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgStructGeneratorStatusResponse {\n return {};\n },\n\n toJSON(_: MsgStructGeneratorStatusResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgStructGeneratorStatusResponse {\n return MsgStructGeneratorStatusResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n _: I,\n ): MsgStructGeneratorStatusResponse {\n const message = createBaseMsgStructGeneratorStatusResponse();\n return message;\n },\n};\n\nfunction createBaseMsgStructOreMinerComplete(): MsgStructOreMinerComplete {\n return { creator: \"\", structId: \"\", proof: \"\", nonce: \"\" };\n}\n\nexport const MsgStructOreMinerComplete: MessageFns = {\n encode(message: MsgStructOreMinerComplete, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n if (message.proof !== \"\") {\n writer.uint32(26).string(message.proof);\n }\n if (message.nonce !== \"\") {\n writer.uint32(34).string(message.nonce);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructOreMinerComplete {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructOreMinerComplete();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.proof = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.nonce = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructOreMinerComplete {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n proof: isSet(object.proof) ? globalThis.String(object.proof) : \"\",\n nonce: isSet(object.nonce) ? globalThis.String(object.nonce) : \"\",\n };\n },\n\n toJSON(message: MsgStructOreMinerComplete): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n if (message.proof !== \"\") {\n obj.proof = message.proof;\n }\n if (message.nonce !== \"\") {\n obj.nonce = message.nonce;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructOreMinerComplete {\n return MsgStructOreMinerComplete.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructOreMinerComplete {\n const message = createBaseMsgStructOreMinerComplete();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n message.proof = object.proof ?? \"\";\n message.nonce = object.nonce ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructOreMinerStatusResponse(): MsgStructOreMinerStatusResponse {\n return { struct: undefined };\n}\n\nexport const MsgStructOreMinerStatusResponse: MessageFns = {\n encode(message: MsgStructOreMinerStatusResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.struct !== undefined) {\n Struct.encode(message.struct, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructOreMinerStatusResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructOreMinerStatusResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.struct = Struct.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructOreMinerStatusResponse {\n return { struct: isSet(object.struct) ? Struct.fromJSON(object.struct) : undefined };\n },\n\n toJSON(message: MsgStructOreMinerStatusResponse): unknown {\n const obj: any = {};\n if (message.struct !== undefined) {\n obj.struct = Struct.toJSON(message.struct);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructOreMinerStatusResponse {\n return MsgStructOreMinerStatusResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgStructOreMinerStatusResponse {\n const message = createBaseMsgStructOreMinerStatusResponse();\n message.struct = (object.struct !== undefined && object.struct !== null)\n ? Struct.fromPartial(object.struct)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgStructOreRefineryComplete(): MsgStructOreRefineryComplete {\n return { creator: \"\", structId: \"\", proof: \"\", nonce: \"\" };\n}\n\nexport const MsgStructOreRefineryComplete: MessageFns = {\n encode(message: MsgStructOreRefineryComplete, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n if (message.proof !== \"\") {\n writer.uint32(26).string(message.proof);\n }\n if (message.nonce !== \"\") {\n writer.uint32(34).string(message.nonce);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructOreRefineryComplete {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructOreRefineryComplete();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.proof = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.nonce = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructOreRefineryComplete {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n proof: isSet(object.proof) ? globalThis.String(object.proof) : \"\",\n nonce: isSet(object.nonce) ? globalThis.String(object.nonce) : \"\",\n };\n },\n\n toJSON(message: MsgStructOreRefineryComplete): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n if (message.proof !== \"\") {\n obj.proof = message.proof;\n }\n if (message.nonce !== \"\") {\n obj.nonce = message.nonce;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructOreRefineryComplete {\n return MsgStructOreRefineryComplete.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructOreRefineryComplete {\n const message = createBaseMsgStructOreRefineryComplete();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n message.proof = object.proof ?? \"\";\n message.nonce = object.nonce ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructOreRefineryStatusResponse(): MsgStructOreRefineryStatusResponse {\n return { struct: undefined };\n}\n\nexport const MsgStructOreRefineryStatusResponse: MessageFns = {\n encode(message: MsgStructOreRefineryStatusResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.struct !== undefined) {\n Struct.encode(message.struct, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructOreRefineryStatusResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructOreRefineryStatusResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.struct = Struct.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructOreRefineryStatusResponse {\n return { struct: isSet(object.struct) ? Struct.fromJSON(object.struct) : undefined };\n },\n\n toJSON(message: MsgStructOreRefineryStatusResponse): unknown {\n const obj: any = {};\n if (message.struct !== undefined) {\n obj.struct = Struct.toJSON(message.struct);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgStructOreRefineryStatusResponse {\n return MsgStructOreRefineryStatusResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgStructOreRefineryStatusResponse {\n const message = createBaseMsgStructOreRefineryStatusResponse();\n message.struct = (object.struct !== undefined && object.struct !== null)\n ? Struct.fromPartial(object.struct)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgStructStorageStash(): MsgStructStorageStash {\n return { creator: \"\", structId: \"\", locationId: \"\", ambit: 0, slot: 0 };\n}\n\nexport const MsgStructStorageStash: MessageFns = {\n encode(message: MsgStructStorageStash, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n if (message.locationId !== \"\") {\n writer.uint32(26).string(message.locationId);\n }\n if (message.ambit !== 0) {\n writer.uint32(32).int32(message.ambit);\n }\n if (message.slot !== 0) {\n writer.uint32(40).uint64(message.slot);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructStorageStash {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructStorageStash();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.locationId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.ambit = reader.int32() as any;\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.slot = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructStorageStash {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n locationId: isSet(object.locationId) ? globalThis.String(object.locationId) : \"\",\n ambit: isSet(object.ambit) ? ambitFromJSON(object.ambit) : 0,\n slot: isSet(object.slot) ? globalThis.Number(object.slot) : 0,\n };\n },\n\n toJSON(message: MsgStructStorageStash): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n if (message.locationId !== \"\") {\n obj.locationId = message.locationId;\n }\n if (message.ambit !== 0) {\n obj.ambit = ambitToJSON(message.ambit);\n }\n if (message.slot !== 0) {\n obj.slot = Math.round(message.slot);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructStorageStash {\n return MsgStructStorageStash.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructStorageStash {\n const message = createBaseMsgStructStorageStash();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n message.locationId = object.locationId ?? \"\";\n message.ambit = object.ambit ?? 0;\n message.slot = object.slot ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgStructStorageRecall(): MsgStructStorageRecall {\n return { creator: \"\", structId: \"\", locationId: \"\", ambit: 0, slot: 0, activate: false };\n}\n\nexport const MsgStructStorageRecall: MessageFns = {\n encode(message: MsgStructStorageRecall, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n if (message.locationId !== \"\") {\n writer.uint32(26).string(message.locationId);\n }\n if (message.ambit !== 0) {\n writer.uint32(32).int32(message.ambit);\n }\n if (message.slot !== 0) {\n writer.uint32(40).uint64(message.slot);\n }\n if (message.activate !== false) {\n writer.uint32(48).bool(message.activate);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructStorageRecall {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructStorageRecall();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.locationId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.ambit = reader.int32() as any;\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.slot = longToNumber(reader.uint64());\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.activate = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructStorageRecall {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n locationId: isSet(object.locationId) ? globalThis.String(object.locationId) : \"\",\n ambit: isSet(object.ambit) ? ambitFromJSON(object.ambit) : 0,\n slot: isSet(object.slot) ? globalThis.Number(object.slot) : 0,\n activate: isSet(object.activate) ? globalThis.Boolean(object.activate) : false,\n };\n },\n\n toJSON(message: MsgStructStorageRecall): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n if (message.locationId !== \"\") {\n obj.locationId = message.locationId;\n }\n if (message.ambit !== 0) {\n obj.ambit = ambitToJSON(message.ambit);\n }\n if (message.slot !== 0) {\n obj.slot = Math.round(message.slot);\n }\n if (message.activate !== false) {\n obj.activate = message.activate;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructStorageRecall {\n return MsgStructStorageRecall.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructStorageRecall {\n const message = createBaseMsgStructStorageRecall();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n message.locationId = object.locationId ?? \"\";\n message.ambit = object.ambit ?? 0;\n message.slot = object.slot ?? 0;\n message.activate = object.activate ?? false;\n return message;\n },\n};\n\nfunction createBaseMsgSubstationCreate(): MsgSubstationCreate {\n return { creator: \"\", owner: \"\", allocationId: \"\" };\n}\n\nexport const MsgSubstationCreate: MessageFns = {\n encode(message: MsgSubstationCreate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.owner !== \"\") {\n writer.uint32(18).string(message.owner);\n }\n if (message.allocationId !== \"\") {\n writer.uint32(26).string(message.allocationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationCreate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationCreate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.owner = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.allocationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubstationCreate {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n owner: isSet(object.owner) ? globalThis.String(object.owner) : \"\",\n allocationId: isSet(object.allocationId) ? globalThis.String(object.allocationId) : \"\",\n };\n },\n\n toJSON(message: MsgSubstationCreate): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.owner !== \"\") {\n obj.owner = message.owner;\n }\n if (message.allocationId !== \"\") {\n obj.allocationId = message.allocationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgSubstationCreate {\n return MsgSubstationCreate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgSubstationCreate {\n const message = createBaseMsgSubstationCreate();\n message.creator = object.creator ?? \"\";\n message.owner = object.owner ?? \"\";\n message.allocationId = object.allocationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgSubstationCreateResponse(): MsgSubstationCreateResponse {\n return { substationId: \"\" };\n}\n\nexport const MsgSubstationCreateResponse: MessageFns = {\n encode(message: MsgSubstationCreateResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.substationId !== \"\") {\n writer.uint32(10).string(message.substationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationCreateResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationCreateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubstationCreateResponse {\n return { substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\" };\n },\n\n toJSON(message: MsgSubstationCreateResponse): unknown {\n const obj: any = {};\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgSubstationCreateResponse {\n return MsgSubstationCreateResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgSubstationCreateResponse {\n const message = createBaseMsgSubstationCreateResponse();\n message.substationId = object.substationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgSubstationDelete(): MsgSubstationDelete {\n return { creator: \"\", substationId: \"\", migrationSubstationId: \"\" };\n}\n\nexport const MsgSubstationDelete: MessageFns = {\n encode(message: MsgSubstationDelete, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.substationId !== \"\") {\n writer.uint32(18).string(message.substationId);\n }\n if (message.migrationSubstationId !== \"\") {\n writer.uint32(26).string(message.migrationSubstationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationDelete {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationDelete();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.migrationSubstationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubstationDelete {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n migrationSubstationId: isSet(object.migrationSubstationId) ? globalThis.String(object.migrationSubstationId) : \"\",\n };\n },\n\n toJSON(message: MsgSubstationDelete): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n if (message.migrationSubstationId !== \"\") {\n obj.migrationSubstationId = message.migrationSubstationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgSubstationDelete {\n return MsgSubstationDelete.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgSubstationDelete {\n const message = createBaseMsgSubstationDelete();\n message.creator = object.creator ?? \"\";\n message.substationId = object.substationId ?? \"\";\n message.migrationSubstationId = object.migrationSubstationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgSubstationDeleteResponse(): MsgSubstationDeleteResponse {\n return {};\n}\n\nexport const MsgSubstationDeleteResponse: MessageFns = {\n encode(_: MsgSubstationDeleteResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationDeleteResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationDeleteResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgSubstationDeleteResponse {\n return {};\n },\n\n toJSON(_: MsgSubstationDeleteResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgSubstationDeleteResponse {\n return MsgSubstationDeleteResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgSubstationDeleteResponse {\n const message = createBaseMsgSubstationDeleteResponse();\n return message;\n },\n};\n\nfunction createBaseMsgSubstationAllocationConnect(): MsgSubstationAllocationConnect {\n return { creator: \"\", allocationId: \"\", destinationId: \"\" };\n}\n\nexport const MsgSubstationAllocationConnect: MessageFns = {\n encode(message: MsgSubstationAllocationConnect, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.allocationId !== \"\") {\n writer.uint32(18).string(message.allocationId);\n }\n if (message.destinationId !== \"\") {\n writer.uint32(26).string(message.destinationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationAllocationConnect {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationAllocationConnect();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.allocationId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.destinationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubstationAllocationConnect {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n allocationId: isSet(object.allocationId) ? globalThis.String(object.allocationId) : \"\",\n destinationId: isSet(object.destinationId) ? globalThis.String(object.destinationId) : \"\",\n };\n },\n\n toJSON(message: MsgSubstationAllocationConnect): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.allocationId !== \"\") {\n obj.allocationId = message.allocationId;\n }\n if (message.destinationId !== \"\") {\n obj.destinationId = message.destinationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgSubstationAllocationConnect {\n return MsgSubstationAllocationConnect.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgSubstationAllocationConnect {\n const message = createBaseMsgSubstationAllocationConnect();\n message.creator = object.creator ?? \"\";\n message.allocationId = object.allocationId ?? \"\";\n message.destinationId = object.destinationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgSubstationAllocationConnectResponse(): MsgSubstationAllocationConnectResponse {\n return {};\n}\n\nexport const MsgSubstationAllocationConnectResponse: MessageFns = {\n encode(_: MsgSubstationAllocationConnectResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationAllocationConnectResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationAllocationConnectResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgSubstationAllocationConnectResponse {\n return {};\n },\n\n toJSON(_: MsgSubstationAllocationConnectResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgSubstationAllocationConnectResponse {\n return MsgSubstationAllocationConnectResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n _: I,\n ): MsgSubstationAllocationConnectResponse {\n const message = createBaseMsgSubstationAllocationConnectResponse();\n return message;\n },\n};\n\nfunction createBaseMsgSubstationAllocationDisconnect(): MsgSubstationAllocationDisconnect {\n return { creator: \"\", allocationId: \"\" };\n}\n\nexport const MsgSubstationAllocationDisconnect: MessageFns = {\n encode(message: MsgSubstationAllocationDisconnect, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.allocationId !== \"\") {\n writer.uint32(18).string(message.allocationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationAllocationDisconnect {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationAllocationDisconnect();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.allocationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubstationAllocationDisconnect {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n allocationId: isSet(object.allocationId) ? globalThis.String(object.allocationId) : \"\",\n };\n },\n\n toJSON(message: MsgSubstationAllocationDisconnect): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.allocationId !== \"\") {\n obj.allocationId = message.allocationId;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgSubstationAllocationDisconnect {\n return MsgSubstationAllocationDisconnect.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgSubstationAllocationDisconnect {\n const message = createBaseMsgSubstationAllocationDisconnect();\n message.creator = object.creator ?? \"\";\n message.allocationId = object.allocationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgSubstationAllocationDisconnectResponse(): MsgSubstationAllocationDisconnectResponse {\n return {};\n}\n\nexport const MsgSubstationAllocationDisconnectResponse: MessageFns = {\n encode(_: MsgSubstationAllocationDisconnectResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationAllocationDisconnectResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationAllocationDisconnectResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgSubstationAllocationDisconnectResponse {\n return {};\n },\n\n toJSON(_: MsgSubstationAllocationDisconnectResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgSubstationAllocationDisconnectResponse {\n return MsgSubstationAllocationDisconnectResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n _: I,\n ): MsgSubstationAllocationDisconnectResponse {\n const message = createBaseMsgSubstationAllocationDisconnectResponse();\n return message;\n },\n};\n\nfunction createBaseMsgSubstationPlayerConnect(): MsgSubstationPlayerConnect {\n return { creator: \"\", substationId: \"\", playerId: \"\" };\n}\n\nexport const MsgSubstationPlayerConnect: MessageFns = {\n encode(message: MsgSubstationPlayerConnect, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.substationId !== \"\") {\n writer.uint32(18).string(message.substationId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationPlayerConnect {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationPlayerConnect();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubstationPlayerConnect {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: MsgSubstationPlayerConnect): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgSubstationPlayerConnect {\n return MsgSubstationPlayerConnect.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgSubstationPlayerConnect {\n const message = createBaseMsgSubstationPlayerConnect();\n message.creator = object.creator ?? \"\";\n message.substationId = object.substationId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgSubstationPlayerConnectResponse(): MsgSubstationPlayerConnectResponse {\n return {};\n}\n\nexport const MsgSubstationPlayerConnectResponse: MessageFns = {\n encode(_: MsgSubstationPlayerConnectResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationPlayerConnectResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationPlayerConnectResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgSubstationPlayerConnectResponse {\n return {};\n },\n\n toJSON(_: MsgSubstationPlayerConnectResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgSubstationPlayerConnectResponse {\n return MsgSubstationPlayerConnectResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n _: I,\n ): MsgSubstationPlayerConnectResponse {\n const message = createBaseMsgSubstationPlayerConnectResponse();\n return message;\n },\n};\n\nfunction createBaseMsgSubstationPlayerDisconnect(): MsgSubstationPlayerDisconnect {\n return { creator: \"\", playerId: \"\" };\n}\n\nexport const MsgSubstationPlayerDisconnect: MessageFns = {\n encode(message: MsgSubstationPlayerDisconnect, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.playerId !== \"\") {\n writer.uint32(18).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationPlayerDisconnect {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationPlayerDisconnect();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubstationPlayerDisconnect {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: MsgSubstationPlayerDisconnect): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgSubstationPlayerDisconnect {\n return MsgSubstationPlayerDisconnect.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgSubstationPlayerDisconnect {\n const message = createBaseMsgSubstationPlayerDisconnect();\n message.creator = object.creator ?? \"\";\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgSubstationPlayerDisconnectResponse(): MsgSubstationPlayerDisconnectResponse {\n return {};\n}\n\nexport const MsgSubstationPlayerDisconnectResponse: MessageFns = {\n encode(_: MsgSubstationPlayerDisconnectResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationPlayerDisconnectResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationPlayerDisconnectResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgSubstationPlayerDisconnectResponse {\n return {};\n },\n\n toJSON(_: MsgSubstationPlayerDisconnectResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgSubstationPlayerDisconnectResponse {\n return MsgSubstationPlayerDisconnectResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n _: I,\n ): MsgSubstationPlayerDisconnectResponse {\n const message = createBaseMsgSubstationPlayerDisconnectResponse();\n return message;\n },\n};\n\nfunction createBaseMsgSubstationPlayerMigrate(): MsgSubstationPlayerMigrate {\n return { creator: \"\", substationId: \"\", playerId: [] };\n}\n\nexport const MsgSubstationPlayerMigrate: MessageFns = {\n encode(message: MsgSubstationPlayerMigrate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.substationId !== \"\") {\n writer.uint32(18).string(message.substationId);\n }\n for (const v of message.playerId) {\n writer.uint32(26).string(v!);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationPlayerMigrate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationPlayerMigrate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId.push(reader.string());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubstationPlayerMigrate {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n playerId: globalThis.Array.isArray(object?.playerId) ? object.playerId.map((e: any) => globalThis.String(e)) : [],\n };\n },\n\n toJSON(message: MsgSubstationPlayerMigrate): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n if (message.playerId?.length) {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgSubstationPlayerMigrate {\n return MsgSubstationPlayerMigrate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgSubstationPlayerMigrate {\n const message = createBaseMsgSubstationPlayerMigrate();\n message.creator = object.creator ?? \"\";\n message.substationId = object.substationId ?? \"\";\n message.playerId = object.playerId?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseMsgSubstationPlayerMigrateResponse(): MsgSubstationPlayerMigrateResponse {\n return {};\n}\n\nexport const MsgSubstationPlayerMigrateResponse: MessageFns = {\n encode(_: MsgSubstationPlayerMigrateResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationPlayerMigrateResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationPlayerMigrateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgSubstationPlayerMigrateResponse {\n return {};\n },\n\n toJSON(_: MsgSubstationPlayerMigrateResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgSubstationPlayerMigrateResponse {\n return MsgSubstationPlayerMigrateResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n _: I,\n ): MsgSubstationPlayerMigrateResponse {\n const message = createBaseMsgSubstationPlayerMigrateResponse();\n return message;\n },\n};\n\nfunction createBaseMsgAgreementOpen(): MsgAgreementOpen {\n return { creator: \"\", providerId: \"\", duration: 0, capacity: 0 };\n}\n\nexport const MsgAgreementOpen: MessageFns = {\n encode(message: MsgAgreementOpen, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n if (message.duration !== 0) {\n writer.uint32(24).uint64(message.duration);\n }\n if (message.capacity !== 0) {\n writer.uint32(32).uint64(message.capacity);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAgreementOpen {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAgreementOpen();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.duration = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.capacity = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAgreementOpen {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n duration: isSet(object.duration) ? globalThis.Number(object.duration) : 0,\n capacity: isSet(object.capacity) ? globalThis.Number(object.capacity) : 0,\n };\n },\n\n toJSON(message: MsgAgreementOpen): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.duration !== 0) {\n obj.duration = Math.round(message.duration);\n }\n if (message.capacity !== 0) {\n obj.capacity = Math.round(message.capacity);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAgreementOpen {\n return MsgAgreementOpen.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAgreementOpen {\n const message = createBaseMsgAgreementOpen();\n message.creator = object.creator ?? \"\";\n message.providerId = object.providerId ?? \"\";\n message.duration = object.duration ?? 0;\n message.capacity = object.capacity ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgAgreementClose(): MsgAgreementClose {\n return { creator: \"\", agreementId: \"\" };\n}\n\nexport const MsgAgreementClose: MessageFns = {\n encode(message: MsgAgreementClose, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.agreementId !== \"\") {\n writer.uint32(18).string(message.agreementId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAgreementClose {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAgreementClose();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.agreementId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAgreementClose {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n agreementId: isSet(object.agreementId) ? globalThis.String(object.agreementId) : \"\",\n };\n },\n\n toJSON(message: MsgAgreementClose): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.agreementId !== \"\") {\n obj.agreementId = message.agreementId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAgreementClose {\n return MsgAgreementClose.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAgreementClose {\n const message = createBaseMsgAgreementClose();\n message.creator = object.creator ?? \"\";\n message.agreementId = object.agreementId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgAgreementCapacityIncrease(): MsgAgreementCapacityIncrease {\n return { creator: \"\", agreementId: \"\", capacityIncrease: 0 };\n}\n\nexport const MsgAgreementCapacityIncrease: MessageFns = {\n encode(message: MsgAgreementCapacityIncrease, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.agreementId !== \"\") {\n writer.uint32(18).string(message.agreementId);\n }\n if (message.capacityIncrease !== 0) {\n writer.uint32(24).uint64(message.capacityIncrease);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAgreementCapacityIncrease {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAgreementCapacityIncrease();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.agreementId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.capacityIncrease = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAgreementCapacityIncrease {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n agreementId: isSet(object.agreementId) ? globalThis.String(object.agreementId) : \"\",\n capacityIncrease: isSet(object.capacityIncrease) ? globalThis.Number(object.capacityIncrease) : 0,\n };\n },\n\n toJSON(message: MsgAgreementCapacityIncrease): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.agreementId !== \"\") {\n obj.agreementId = message.agreementId;\n }\n if (message.capacityIncrease !== 0) {\n obj.capacityIncrease = Math.round(message.capacityIncrease);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAgreementCapacityIncrease {\n return MsgAgreementCapacityIncrease.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAgreementCapacityIncrease {\n const message = createBaseMsgAgreementCapacityIncrease();\n message.creator = object.creator ?? \"\";\n message.agreementId = object.agreementId ?? \"\";\n message.capacityIncrease = object.capacityIncrease ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgAgreementCapacityDecrease(): MsgAgreementCapacityDecrease {\n return { creator: \"\", agreementId: \"\", capacityDecrease: 0 };\n}\n\nexport const MsgAgreementCapacityDecrease: MessageFns = {\n encode(message: MsgAgreementCapacityDecrease, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.agreementId !== \"\") {\n writer.uint32(18).string(message.agreementId);\n }\n if (message.capacityDecrease !== 0) {\n writer.uint32(24).uint64(message.capacityDecrease);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAgreementCapacityDecrease {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAgreementCapacityDecrease();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.agreementId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.capacityDecrease = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAgreementCapacityDecrease {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n agreementId: isSet(object.agreementId) ? globalThis.String(object.agreementId) : \"\",\n capacityDecrease: isSet(object.capacityDecrease) ? globalThis.Number(object.capacityDecrease) : 0,\n };\n },\n\n toJSON(message: MsgAgreementCapacityDecrease): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.agreementId !== \"\") {\n obj.agreementId = message.agreementId;\n }\n if (message.capacityDecrease !== 0) {\n obj.capacityDecrease = Math.round(message.capacityDecrease);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAgreementCapacityDecrease {\n return MsgAgreementCapacityDecrease.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAgreementCapacityDecrease {\n const message = createBaseMsgAgreementCapacityDecrease();\n message.creator = object.creator ?? \"\";\n message.agreementId = object.agreementId ?? \"\";\n message.capacityDecrease = object.capacityDecrease ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgAgreementDurationIncrease(): MsgAgreementDurationIncrease {\n return { creator: \"\", agreementId: \"\", durationIncrease: 0 };\n}\n\nexport const MsgAgreementDurationIncrease: MessageFns = {\n encode(message: MsgAgreementDurationIncrease, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.agreementId !== \"\") {\n writer.uint32(18).string(message.agreementId);\n }\n if (message.durationIncrease !== 0) {\n writer.uint32(24).uint64(message.durationIncrease);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAgreementDurationIncrease {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAgreementDurationIncrease();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.agreementId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.durationIncrease = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAgreementDurationIncrease {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n agreementId: isSet(object.agreementId) ? globalThis.String(object.agreementId) : \"\",\n durationIncrease: isSet(object.durationIncrease) ? globalThis.Number(object.durationIncrease) : 0,\n };\n },\n\n toJSON(message: MsgAgreementDurationIncrease): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.agreementId !== \"\") {\n obj.agreementId = message.agreementId;\n }\n if (message.durationIncrease !== 0) {\n obj.durationIncrease = Math.round(message.durationIncrease);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAgreementDurationIncrease {\n return MsgAgreementDurationIncrease.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAgreementDurationIncrease {\n const message = createBaseMsgAgreementDurationIncrease();\n message.creator = object.creator ?? \"\";\n message.agreementId = object.agreementId ?? \"\";\n message.durationIncrease = object.durationIncrease ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgAgreementResponse(): MsgAgreementResponse {\n return {};\n}\n\nexport const MsgAgreementResponse: MessageFns = {\n encode(_: MsgAgreementResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAgreementResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAgreementResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgAgreementResponse {\n return {};\n },\n\n toJSON(_: MsgAgreementResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgAgreementResponse {\n return MsgAgreementResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgAgreementResponse {\n const message = createBaseMsgAgreementResponse();\n return message;\n },\n};\n\nfunction createBaseMsgProviderCreate(): MsgProviderCreate {\n return {\n creator: \"\",\n substationId: \"\",\n rate: undefined,\n accessPolicy: 0,\n providerCancellationPenalty: \"\",\n consumerCancellationPenalty: \"\",\n capacityMinimum: 0,\n capacityMaximum: 0,\n durationMinimum: 0,\n durationMaximum: 0,\n };\n}\n\nexport const MsgProviderCreate: MessageFns = {\n encode(message: MsgProviderCreate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.substationId !== \"\") {\n writer.uint32(18).string(message.substationId);\n }\n if (message.rate !== undefined) {\n Coin.encode(message.rate, writer.uint32(26).fork()).join();\n }\n if (message.accessPolicy !== 0) {\n writer.uint32(32).int32(message.accessPolicy);\n }\n if (message.providerCancellationPenalty !== \"\") {\n writer.uint32(42).string(message.providerCancellationPenalty);\n }\n if (message.consumerCancellationPenalty !== \"\") {\n writer.uint32(50).string(message.consumerCancellationPenalty);\n }\n if (message.capacityMinimum !== 0) {\n writer.uint32(56).uint64(message.capacityMinimum);\n }\n if (message.capacityMaximum !== 0) {\n writer.uint32(64).uint64(message.capacityMaximum);\n }\n if (message.durationMinimum !== 0) {\n writer.uint32(72).uint64(message.durationMinimum);\n }\n if (message.durationMaximum !== 0) {\n writer.uint32(80).uint64(message.durationMaximum);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgProviderCreate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgProviderCreate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.rate = Coin.decode(reader, reader.uint32());\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.accessPolicy = reader.int32() as any;\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.providerCancellationPenalty = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.consumerCancellationPenalty = reader.string();\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.capacityMinimum = longToNumber(reader.uint64());\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.capacityMaximum = longToNumber(reader.uint64());\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.durationMinimum = longToNumber(reader.uint64());\n continue;\n }\n case 10: {\n if (tag !== 80) {\n break;\n }\n\n message.durationMaximum = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgProviderCreate {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n rate: isSet(object.rate) ? Coin.fromJSON(object.rate) : undefined,\n accessPolicy: isSet(object.accessPolicy) ? providerAccessPolicyFromJSON(object.accessPolicy) : 0,\n providerCancellationPenalty: isSet(object.providerCancellationPenalty)\n ? globalThis.String(object.providerCancellationPenalty)\n : \"\",\n consumerCancellationPenalty: isSet(object.consumerCancellationPenalty)\n ? globalThis.String(object.consumerCancellationPenalty)\n : \"\",\n capacityMinimum: isSet(object.capacityMinimum) ? globalThis.Number(object.capacityMinimum) : 0,\n capacityMaximum: isSet(object.capacityMaximum) ? globalThis.Number(object.capacityMaximum) : 0,\n durationMinimum: isSet(object.durationMinimum) ? globalThis.Number(object.durationMinimum) : 0,\n durationMaximum: isSet(object.durationMaximum) ? globalThis.Number(object.durationMaximum) : 0,\n };\n },\n\n toJSON(message: MsgProviderCreate): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n if (message.rate !== undefined) {\n obj.rate = Coin.toJSON(message.rate);\n }\n if (message.accessPolicy !== 0) {\n obj.accessPolicy = providerAccessPolicyToJSON(message.accessPolicy);\n }\n if (message.providerCancellationPenalty !== \"\") {\n obj.providerCancellationPenalty = message.providerCancellationPenalty;\n }\n if (message.consumerCancellationPenalty !== \"\") {\n obj.consumerCancellationPenalty = message.consumerCancellationPenalty;\n }\n if (message.capacityMinimum !== 0) {\n obj.capacityMinimum = Math.round(message.capacityMinimum);\n }\n if (message.capacityMaximum !== 0) {\n obj.capacityMaximum = Math.round(message.capacityMaximum);\n }\n if (message.durationMinimum !== 0) {\n obj.durationMinimum = Math.round(message.durationMinimum);\n }\n if (message.durationMaximum !== 0) {\n obj.durationMaximum = Math.round(message.durationMaximum);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgProviderCreate {\n return MsgProviderCreate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgProviderCreate {\n const message = createBaseMsgProviderCreate();\n message.creator = object.creator ?? \"\";\n message.substationId = object.substationId ?? \"\";\n message.rate = (object.rate !== undefined && object.rate !== null) ? Coin.fromPartial(object.rate) : undefined;\n message.accessPolicy = object.accessPolicy ?? 0;\n message.providerCancellationPenalty = object.providerCancellationPenalty ?? \"\";\n message.consumerCancellationPenalty = object.consumerCancellationPenalty ?? \"\";\n message.capacityMinimum = object.capacityMinimum ?? 0;\n message.capacityMaximum = object.capacityMaximum ?? 0;\n message.durationMinimum = object.durationMinimum ?? 0;\n message.durationMaximum = object.durationMaximum ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgProviderWithdrawBalance(): MsgProviderWithdrawBalance {\n return { creator: \"\", providerId: \"\", destinationAddress: \"\" };\n}\n\nexport const MsgProviderWithdrawBalance: MessageFns = {\n encode(message: MsgProviderWithdrawBalance, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n if (message.destinationAddress !== \"\") {\n writer.uint32(26).string(message.destinationAddress);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgProviderWithdrawBalance {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgProviderWithdrawBalance();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.destinationAddress = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgProviderWithdrawBalance {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n destinationAddress: isSet(object.destinationAddress) ? globalThis.String(object.destinationAddress) : \"\",\n };\n },\n\n toJSON(message: MsgProviderWithdrawBalance): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.destinationAddress !== \"\") {\n obj.destinationAddress = message.destinationAddress;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgProviderWithdrawBalance {\n return MsgProviderWithdrawBalance.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgProviderWithdrawBalance {\n const message = createBaseMsgProviderWithdrawBalance();\n message.creator = object.creator ?? \"\";\n message.providerId = object.providerId ?? \"\";\n message.destinationAddress = object.destinationAddress ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgProviderUpdateCapacityMinimum(): MsgProviderUpdateCapacityMinimum {\n return { creator: \"\", providerId: \"\", newMinimumCapacity: 0 };\n}\n\nexport const MsgProviderUpdateCapacityMinimum: MessageFns = {\n encode(message: MsgProviderUpdateCapacityMinimum, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n if (message.newMinimumCapacity !== 0) {\n writer.uint32(24).uint64(message.newMinimumCapacity);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgProviderUpdateCapacityMinimum {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgProviderUpdateCapacityMinimum();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.newMinimumCapacity = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgProviderUpdateCapacityMinimum {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n newMinimumCapacity: isSet(object.newMinimumCapacity) ? globalThis.Number(object.newMinimumCapacity) : 0,\n };\n },\n\n toJSON(message: MsgProviderUpdateCapacityMinimum): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.newMinimumCapacity !== 0) {\n obj.newMinimumCapacity = Math.round(message.newMinimumCapacity);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgProviderUpdateCapacityMinimum {\n return MsgProviderUpdateCapacityMinimum.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgProviderUpdateCapacityMinimum {\n const message = createBaseMsgProviderUpdateCapacityMinimum();\n message.creator = object.creator ?? \"\";\n message.providerId = object.providerId ?? \"\";\n message.newMinimumCapacity = object.newMinimumCapacity ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgProviderUpdateCapacityMaximum(): MsgProviderUpdateCapacityMaximum {\n return { creator: \"\", providerId: \"\", newMaximumCapacity: 0 };\n}\n\nexport const MsgProviderUpdateCapacityMaximum: MessageFns = {\n encode(message: MsgProviderUpdateCapacityMaximum, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n if (message.newMaximumCapacity !== 0) {\n writer.uint32(24).uint64(message.newMaximumCapacity);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgProviderUpdateCapacityMaximum {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgProviderUpdateCapacityMaximum();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.newMaximumCapacity = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgProviderUpdateCapacityMaximum {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n newMaximumCapacity: isSet(object.newMaximumCapacity) ? globalThis.Number(object.newMaximumCapacity) : 0,\n };\n },\n\n toJSON(message: MsgProviderUpdateCapacityMaximum): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.newMaximumCapacity !== 0) {\n obj.newMaximumCapacity = Math.round(message.newMaximumCapacity);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgProviderUpdateCapacityMaximum {\n return MsgProviderUpdateCapacityMaximum.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgProviderUpdateCapacityMaximum {\n const message = createBaseMsgProviderUpdateCapacityMaximum();\n message.creator = object.creator ?? \"\";\n message.providerId = object.providerId ?? \"\";\n message.newMaximumCapacity = object.newMaximumCapacity ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgProviderUpdateDurationMinimum(): MsgProviderUpdateDurationMinimum {\n return { creator: \"\", providerId: \"\", newMinimumDuration: 0 };\n}\n\nexport const MsgProviderUpdateDurationMinimum: MessageFns = {\n encode(message: MsgProviderUpdateDurationMinimum, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n if (message.newMinimumDuration !== 0) {\n writer.uint32(24).uint64(message.newMinimumDuration);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgProviderUpdateDurationMinimum {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgProviderUpdateDurationMinimum();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.newMinimumDuration = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgProviderUpdateDurationMinimum {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n newMinimumDuration: isSet(object.newMinimumDuration) ? globalThis.Number(object.newMinimumDuration) : 0,\n };\n },\n\n toJSON(message: MsgProviderUpdateDurationMinimum): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.newMinimumDuration !== 0) {\n obj.newMinimumDuration = Math.round(message.newMinimumDuration);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgProviderUpdateDurationMinimum {\n return MsgProviderUpdateDurationMinimum.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgProviderUpdateDurationMinimum {\n const message = createBaseMsgProviderUpdateDurationMinimum();\n message.creator = object.creator ?? \"\";\n message.providerId = object.providerId ?? \"\";\n message.newMinimumDuration = object.newMinimumDuration ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgProviderUpdateDurationMaximum(): MsgProviderUpdateDurationMaximum {\n return { creator: \"\", providerId: \"\", newMaximumDuration: 0 };\n}\n\nexport const MsgProviderUpdateDurationMaximum: MessageFns = {\n encode(message: MsgProviderUpdateDurationMaximum, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n if (message.newMaximumDuration !== 0) {\n writer.uint32(24).uint64(message.newMaximumDuration);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgProviderUpdateDurationMaximum {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgProviderUpdateDurationMaximum();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.newMaximumDuration = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgProviderUpdateDurationMaximum {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n newMaximumDuration: isSet(object.newMaximumDuration) ? globalThis.Number(object.newMaximumDuration) : 0,\n };\n },\n\n toJSON(message: MsgProviderUpdateDurationMaximum): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.newMaximumDuration !== 0) {\n obj.newMaximumDuration = Math.round(message.newMaximumDuration);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgProviderUpdateDurationMaximum {\n return MsgProviderUpdateDurationMaximum.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgProviderUpdateDurationMaximum {\n const message = createBaseMsgProviderUpdateDurationMaximum();\n message.creator = object.creator ?? \"\";\n message.providerId = object.providerId ?? \"\";\n message.newMaximumDuration = object.newMaximumDuration ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgProviderUpdateAccessPolicy(): MsgProviderUpdateAccessPolicy {\n return { creator: \"\", providerId: \"\", accessPolicy: 0 };\n}\n\nexport const MsgProviderUpdateAccessPolicy: MessageFns = {\n encode(message: MsgProviderUpdateAccessPolicy, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n if (message.accessPolicy !== 0) {\n writer.uint32(24).int32(message.accessPolicy);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgProviderUpdateAccessPolicy {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgProviderUpdateAccessPolicy();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.accessPolicy = reader.int32() as any;\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgProviderUpdateAccessPolicy {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n accessPolicy: isSet(object.accessPolicy) ? providerAccessPolicyFromJSON(object.accessPolicy) : 0,\n };\n },\n\n toJSON(message: MsgProviderUpdateAccessPolicy): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.accessPolicy !== 0) {\n obj.accessPolicy = providerAccessPolicyToJSON(message.accessPolicy);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgProviderUpdateAccessPolicy {\n return MsgProviderUpdateAccessPolicy.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgProviderUpdateAccessPolicy {\n const message = createBaseMsgProviderUpdateAccessPolicy();\n message.creator = object.creator ?? \"\";\n message.providerId = object.providerId ?? \"\";\n message.accessPolicy = object.accessPolicy ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgProviderGuildGrant(): MsgProviderGuildGrant {\n return { creator: \"\", providerId: \"\", guildId: [] };\n}\n\nexport const MsgProviderGuildGrant: MessageFns = {\n encode(message: MsgProviderGuildGrant, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n for (const v of message.guildId) {\n writer.uint32(26).string(v!);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgProviderGuildGrant {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgProviderGuildGrant();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.guildId.push(reader.string());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgProviderGuildGrant {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n guildId: globalThis.Array.isArray(object?.guildId) ? object.guildId.map((e: any) => globalThis.String(e)) : [],\n };\n },\n\n toJSON(message: MsgProviderGuildGrant): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.guildId?.length) {\n obj.guildId = message.guildId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgProviderGuildGrant {\n return MsgProviderGuildGrant.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgProviderGuildGrant {\n const message = createBaseMsgProviderGuildGrant();\n message.creator = object.creator ?? \"\";\n message.providerId = object.providerId ?? \"\";\n message.guildId = object.guildId?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseMsgProviderGuildRevoke(): MsgProviderGuildRevoke {\n return { creator: \"\", providerId: \"\", guildId: [] };\n}\n\nexport const MsgProviderGuildRevoke: MessageFns = {\n encode(message: MsgProviderGuildRevoke, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n for (const v of message.guildId) {\n writer.uint32(26).string(v!);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgProviderGuildRevoke {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgProviderGuildRevoke();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.guildId.push(reader.string());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgProviderGuildRevoke {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n guildId: globalThis.Array.isArray(object?.guildId) ? object.guildId.map((e: any) => globalThis.String(e)) : [],\n };\n },\n\n toJSON(message: MsgProviderGuildRevoke): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.guildId?.length) {\n obj.guildId = message.guildId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgProviderGuildRevoke {\n return MsgProviderGuildRevoke.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgProviderGuildRevoke {\n const message = createBaseMsgProviderGuildRevoke();\n message.creator = object.creator ?? \"\";\n message.providerId = object.providerId ?? \"\";\n message.guildId = object.guildId?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseMsgProviderDelete(): MsgProviderDelete {\n return { creator: \"\", providerId: \"\" };\n}\n\nexport const MsgProviderDelete: MessageFns = {\n encode(message: MsgProviderDelete, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgProviderDelete {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgProviderDelete();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgProviderDelete {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n };\n },\n\n toJSON(message: MsgProviderDelete): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgProviderDelete {\n return MsgProviderDelete.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgProviderDelete {\n const message = createBaseMsgProviderDelete();\n message.creator = object.creator ?? \"\";\n message.providerId = object.providerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgProviderResponse(): MsgProviderResponse {\n return {};\n}\n\nexport const MsgProviderResponse: MessageFns = {\n encode(_: MsgProviderResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgProviderResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgProviderResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgProviderResponse {\n return {};\n },\n\n toJSON(_: MsgProviderResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgProviderResponse {\n return MsgProviderResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgProviderResponse {\n const message = createBaseMsgProviderResponse();\n return message;\n },\n};\n\nfunction createBaseMsgPlayerSend(): MsgPlayerSend {\n return { creator: \"\", fromAddress: \"\", toAddress: \"\", amount: [] };\n}\n\nexport const MsgPlayerSend: MessageFns = {\n encode(message: MsgPlayerSend, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.fromAddress !== \"\") {\n writer.uint32(18).string(message.fromAddress);\n }\n if (message.toAddress !== \"\") {\n writer.uint32(26).string(message.toAddress);\n }\n for (const v of message.amount) {\n Coin.encode(v!, writer.uint32(34).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlayerSend {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlayerSend();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.fromAddress = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.toAddress = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.amount.push(Coin.decode(reader, reader.uint32()));\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPlayerSend {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n fromAddress: isSet(object.fromAddress) ? globalThis.String(object.fromAddress) : \"\",\n toAddress: isSet(object.toAddress) ? globalThis.String(object.toAddress) : \"\",\n amount: globalThis.Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromJSON(e)) : [],\n };\n },\n\n toJSON(message: MsgPlayerSend): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.fromAddress !== \"\") {\n obj.fromAddress = message.fromAddress;\n }\n if (message.toAddress !== \"\") {\n obj.toAddress = message.toAddress;\n }\n if (message.amount?.length) {\n obj.amount = message.amount.map((e) => Coin.toJSON(e));\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPlayerSend {\n return MsgPlayerSend.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPlayerSend {\n const message = createBaseMsgPlayerSend();\n message.creator = object.creator ?? \"\";\n message.fromAddress = object.fromAddress ?? \"\";\n message.toAddress = object.toAddress ?? \"\";\n message.amount = object.amount?.map((e) => Coin.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseMsgPlayerSendResponse(): MsgPlayerSendResponse {\n return {};\n}\n\nexport const MsgPlayerSendResponse: MessageFns = {\n encode(_: MsgPlayerSendResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlayerSendResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlayerSendResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgPlayerSendResponse {\n return {};\n },\n\n toJSON(_: MsgPlayerSendResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgPlayerSendResponse {\n return MsgPlayerSendResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgPlayerSendResponse {\n const message = createBaseMsgPlayerSendResponse();\n return message;\n },\n};\n\nfunction createBaseMsgGuildUpdateName(): MsgGuildUpdateName {\n return { creator: \"\", guildId: \"\", name: \"\" };\n}\n\nexport const MsgGuildUpdateName: MessageFns = {\n encode(message: MsgGuildUpdateName, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.name !== \"\") {\n writer.uint32(26).string(message.name);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildUpdateName {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildUpdateName();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.name = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildUpdateName {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n name: isSet(object.name) ? globalThis.String(object.name) : \"\",\n };\n },\n\n toJSON(message: MsgGuildUpdateName): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.name !== \"\") {\n obj.name = message.name;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildUpdateName {\n return MsgGuildUpdateName.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildUpdateName {\n const message = createBaseMsgGuildUpdateName();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.name = object.name ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildUpdatePfp(): MsgGuildUpdatePfp {\n return { creator: \"\", guildId: \"\", pfp: \"\" };\n}\n\nexport const MsgGuildUpdatePfp: MessageFns = {\n encode(message: MsgGuildUpdatePfp, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.pfp !== \"\") {\n writer.uint32(26).string(message.pfp);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildUpdatePfp {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildUpdatePfp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.pfp = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildUpdatePfp {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n pfp: isSet(object.pfp) ? globalThis.String(object.pfp) : \"\",\n };\n },\n\n toJSON(message: MsgGuildUpdatePfp): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.pfp !== \"\") {\n obj.pfp = message.pfp;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildUpdatePfp {\n return MsgGuildUpdatePfp.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildUpdatePfp {\n const message = createBaseMsgGuildUpdatePfp();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.pfp = object.pfp ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgPlanetUpdateName(): MsgPlanetUpdateName {\n return { creator: \"\", planetId: \"\", name: \"\" };\n}\n\nexport const MsgPlanetUpdateName: MessageFns = {\n encode(message: MsgPlanetUpdateName, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.planetId !== \"\") {\n writer.uint32(18).string(message.planetId);\n }\n if (message.name !== \"\") {\n writer.uint32(26).string(message.name);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlanetUpdateName {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlanetUpdateName();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.planetId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.name = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPlanetUpdateName {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n planetId: isSet(object.planetId) ? globalThis.String(object.planetId) : \"\",\n name: isSet(object.name) ? globalThis.String(object.name) : \"\",\n };\n },\n\n toJSON(message: MsgPlanetUpdateName): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.planetId !== \"\") {\n obj.planetId = message.planetId;\n }\n if (message.name !== \"\") {\n obj.name = message.name;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPlanetUpdateName {\n return MsgPlanetUpdateName.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPlanetUpdateName {\n const message = createBaseMsgPlanetUpdateName();\n message.creator = object.creator ?? \"\";\n message.planetId = object.planetId ?? \"\";\n message.name = object.name ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgPlanetUpdateResponse(): MsgPlanetUpdateResponse {\n return {};\n}\n\nexport const MsgPlanetUpdateResponse: MessageFns = {\n encode(_: MsgPlanetUpdateResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlanetUpdateResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlanetUpdateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgPlanetUpdateResponse {\n return {};\n },\n\n toJSON(_: MsgPlanetUpdateResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgPlanetUpdateResponse {\n return MsgPlanetUpdateResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgPlanetUpdateResponse {\n const message = createBaseMsgPlanetUpdateResponse();\n return message;\n },\n};\n\nfunction createBaseMsgPlayerUpdateName(): MsgPlayerUpdateName {\n return { creator: \"\", playerId: \"\", name: \"\" };\n}\n\nexport const MsgPlayerUpdateName: MessageFns = {\n encode(message: MsgPlayerUpdateName, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.playerId !== \"\") {\n writer.uint32(18).string(message.playerId);\n }\n if (message.name !== \"\") {\n writer.uint32(26).string(message.name);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlayerUpdateName {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlayerUpdateName();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.name = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPlayerUpdateName {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n name: isSet(object.name) ? globalThis.String(object.name) : \"\",\n };\n },\n\n toJSON(message: MsgPlayerUpdateName): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.name !== \"\") {\n obj.name = message.name;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPlayerUpdateName {\n return MsgPlayerUpdateName.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPlayerUpdateName {\n const message = createBaseMsgPlayerUpdateName();\n message.creator = object.creator ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.name = object.name ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgPlayerUpdatePfp(): MsgPlayerUpdatePfp {\n return { creator: \"\", playerId: \"\", pfp: \"\" };\n}\n\nexport const MsgPlayerUpdatePfp: MessageFns = {\n encode(message: MsgPlayerUpdatePfp, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.playerId !== \"\") {\n writer.uint32(18).string(message.playerId);\n }\n if (message.pfp !== \"\") {\n writer.uint32(26).string(message.pfp);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlayerUpdatePfp {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlayerUpdatePfp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.pfp = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPlayerUpdatePfp {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n pfp: isSet(object.pfp) ? globalThis.String(object.pfp) : \"\",\n };\n },\n\n toJSON(message: MsgPlayerUpdatePfp): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.pfp !== \"\") {\n obj.pfp = message.pfp;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPlayerUpdatePfp {\n return MsgPlayerUpdatePfp.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPlayerUpdatePfp {\n const message = createBaseMsgPlayerUpdatePfp();\n message.creator = object.creator ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.pfp = object.pfp ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgPlayerUpdateResponse(): MsgPlayerUpdateResponse {\n return {};\n}\n\nexport const MsgPlayerUpdateResponse: MessageFns = {\n encode(_: MsgPlayerUpdateResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlayerUpdateResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlayerUpdateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgPlayerUpdateResponse {\n return {};\n },\n\n toJSON(_: MsgPlayerUpdateResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgPlayerUpdateResponse {\n return MsgPlayerUpdateResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgPlayerUpdateResponse {\n const message = createBaseMsgPlayerUpdateResponse();\n return message;\n },\n};\n\nfunction createBaseMsgSubstationUpdateName(): MsgSubstationUpdateName {\n return { creator: \"\", substationId: \"\", name: \"\" };\n}\n\nexport const MsgSubstationUpdateName: MessageFns = {\n encode(message: MsgSubstationUpdateName, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.substationId !== \"\") {\n writer.uint32(18).string(message.substationId);\n }\n if (message.name !== \"\") {\n writer.uint32(26).string(message.name);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationUpdateName {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationUpdateName();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.name = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubstationUpdateName {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n name: isSet(object.name) ? globalThis.String(object.name) : \"\",\n };\n },\n\n toJSON(message: MsgSubstationUpdateName): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n if (message.name !== \"\") {\n obj.name = message.name;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgSubstationUpdateName {\n return MsgSubstationUpdateName.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgSubstationUpdateName {\n const message = createBaseMsgSubstationUpdateName();\n message.creator = object.creator ?? \"\";\n message.substationId = object.substationId ?? \"\";\n message.name = object.name ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgSubstationUpdatePfp(): MsgSubstationUpdatePfp {\n return { creator: \"\", substationId: \"\", pfp: \"\" };\n}\n\nexport const MsgSubstationUpdatePfp: MessageFns = {\n encode(message: MsgSubstationUpdatePfp, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.substationId !== \"\") {\n writer.uint32(18).string(message.substationId);\n }\n if (message.pfp !== \"\") {\n writer.uint32(26).string(message.pfp);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationUpdatePfp {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationUpdatePfp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.pfp = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubstationUpdatePfp {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n pfp: isSet(object.pfp) ? globalThis.String(object.pfp) : \"\",\n };\n },\n\n toJSON(message: MsgSubstationUpdatePfp): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n if (message.pfp !== \"\") {\n obj.pfp = message.pfp;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgSubstationUpdatePfp {\n return MsgSubstationUpdatePfp.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgSubstationUpdatePfp {\n const message = createBaseMsgSubstationUpdatePfp();\n message.creator = object.creator ?? \"\";\n message.substationId = object.substationId ?? \"\";\n message.pfp = object.pfp ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgSubstationUpdateResponse(): MsgSubstationUpdateResponse {\n return {};\n}\n\nexport const MsgSubstationUpdateResponse: MessageFns = {\n encode(_: MsgSubstationUpdateResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationUpdateResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationUpdateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgSubstationUpdateResponse {\n return {};\n },\n\n toJSON(_: MsgSubstationUpdateResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgSubstationUpdateResponse {\n return MsgSubstationUpdateResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgSubstationUpdateResponse {\n const message = createBaseMsgSubstationUpdateResponse();\n return message;\n },\n};\n\n/** Msg defines the Msg service. */\nexport interface Msg {\n /**\n * UpdateParams defines a (governance) operation for updating the module\n * parameters. The authority defaults to the x/gov module account.\n */\n UpdateParams(request: MsgUpdateParams): Promise;\n AddressRegister(request: MsgAddressRegister): Promise;\n AddressRevoke(request: MsgAddressRevoke): Promise;\n AgreementOpen(request: MsgAgreementOpen): Promise;\n AgreementClose(request: MsgAgreementClose): Promise;\n AgreementCapacityIncrease(request: MsgAgreementCapacityIncrease): Promise;\n AgreementCapacityDecrease(request: MsgAgreementCapacityDecrease): Promise;\n AgreementDurationIncrease(request: MsgAgreementDurationIncrease): Promise;\n AllocationCreate(request: MsgAllocationCreate): Promise;\n AllocationDelete(request: MsgAllocationDelete): Promise;\n AllocationUpdate(request: MsgAllocationUpdate): Promise;\n AllocationTransfer(request: MsgAllocationTransfer): Promise;\n FleetMove(request: MsgFleetMove): Promise;\n GuildCreate(request: MsgGuildCreate): Promise;\n GuildBankMint(request: MsgGuildBankMint): Promise;\n GuildBankRedeem(request: MsgGuildBankRedeem): Promise;\n GuildBankConfiscateAndBurn(request: MsgGuildBankConfiscateAndBurn): Promise;\n GuildUpdateOwnerId(request: MsgGuildUpdateOwnerId): Promise;\n GuildUpdateEntrySubstationId(request: MsgGuildUpdateEntrySubstationId): Promise;\n GuildUpdateEndpoint(request: MsgGuildUpdateEndpoint): Promise;\n GuildUpdateJoinInfusionMinimum(request: MsgGuildUpdateJoinInfusionMinimum): Promise;\n GuildUpdateJoinInfusionMinimumBypassByInvite(\n request: MsgGuildUpdateJoinInfusionMinimumBypassByInvite,\n ): Promise;\n GuildUpdateJoinInfusionMinimumBypassByRequest(\n request: MsgGuildUpdateJoinInfusionMinimumBypassByRequest,\n ): Promise;\n GuildMembershipInvite(request: MsgGuildMembershipInvite): Promise;\n GuildMembershipInviteApprove(request: MsgGuildMembershipInviteApprove): Promise;\n GuildMembershipInviteDeny(request: MsgGuildMembershipInviteDeny): Promise;\n GuildMembershipInviteRevoke(request: MsgGuildMembershipInviteRevoke): Promise;\n GuildMembershipJoin(request: MsgGuildMembershipJoin): Promise;\n GuildMembershipJoinProxy(request: MsgGuildMembershipJoinProxy): Promise;\n GuildMembershipKick(request: MsgGuildMembershipKick): Promise;\n GuildMembershipRequest(request: MsgGuildMembershipRequest): Promise;\n GuildMembershipRequestApprove(request: MsgGuildMembershipRequestApprove): Promise;\n GuildMembershipRequestDeny(request: MsgGuildMembershipRequestDeny): Promise;\n GuildMembershipRequestRevoke(request: MsgGuildMembershipRequestRevoke): Promise;\n PermissionGrantOnAddress(request: MsgPermissionGrantOnAddress): Promise;\n PermissionGrantOnObject(request: MsgPermissionGrantOnObject): Promise;\n PermissionRevokeOnAddress(request: MsgPermissionRevokeOnAddress): Promise;\n PermissionRevokeOnObject(request: MsgPermissionRevokeOnObject): Promise;\n PermissionSetOnAddress(request: MsgPermissionSetOnAddress): Promise;\n PermissionSetOnObject(request: MsgPermissionSetOnObject): Promise;\n PlanetExplore(request: MsgPlanetExplore): Promise;\n PlanetRaidComplete(request: MsgPlanetRaidComplete): Promise;\n PlayerUpdatePrimaryAddress(request: MsgPlayerUpdatePrimaryAddress): Promise;\n PlayerResume(request: MsgPlayerResume): Promise;\n PlayerSend(request: MsgPlayerSend): Promise;\n ProviderCreate(request: MsgProviderCreate): Promise;\n ProviderWithdrawBalance(request: MsgProviderWithdrawBalance): Promise;\n ProviderUpdateCapacityMinimum(request: MsgProviderUpdateCapacityMinimum): Promise;\n ProviderUpdateCapacityMaximum(request: MsgProviderUpdateCapacityMaximum): Promise;\n ProviderUpdateDurationMinimum(request: MsgProviderUpdateDurationMinimum): Promise;\n ProviderUpdateDurationMaximum(request: MsgProviderUpdateDurationMaximum): Promise;\n ProviderUpdateAccessPolicy(request: MsgProviderUpdateAccessPolicy): Promise;\n ProviderGuildGrant(request: MsgProviderGuildGrant): Promise;\n ProviderGuildRevoke(request: MsgProviderGuildRevoke): Promise;\n ProviderDelete(request: MsgProviderDelete): Promise;\n ReactorInfuse(request: MsgReactorInfuse): Promise;\n ReactorDefuse(request: MsgReactorDefuse): Promise;\n ReactorBeginMigration(request: MsgReactorBeginMigration): Promise;\n ReactorCancelDefusion(request: MsgReactorCancelDefusion): Promise;\n StructActivate(request: MsgStructActivate): Promise;\n StructDeactivate(request: MsgStructDeactivate): Promise;\n StructBuildInitiate(request: MsgStructBuildInitiate): Promise;\n StructBuildComplete(request: MsgStructBuildComplete): Promise;\n StructBuildCancel(request: MsgStructBuildCancel): Promise;\n StructDefenseSet(request: MsgStructDefenseSet): Promise;\n StructDefenseClear(request: MsgStructDefenseClear): Promise;\n StructMove(request: MsgStructMove): Promise;\n StructAttack(request: MsgStructAttack): Promise;\n StructStealthActivate(request: MsgStructStealthActivate): Promise;\n StructStealthDeactivate(request: MsgStructStealthDeactivate): Promise;\n StructGeneratorInfuse(request: MsgStructGeneratorInfuse): Promise;\n StructOreMinerComplete(request: MsgStructOreMinerComplete): Promise;\n StructOreRefineryComplete(request: MsgStructOreRefineryComplete): Promise;\n SubstationCreate(request: MsgSubstationCreate): Promise;\n SubstationDelete(request: MsgSubstationDelete): Promise;\n SubstationAllocationConnect(request: MsgSubstationAllocationConnect): Promise;\n SubstationAllocationDisconnect(\n request: MsgSubstationAllocationDisconnect,\n ): Promise;\n SubstationPlayerConnect(request: MsgSubstationPlayerConnect): Promise;\n SubstationPlayerDisconnect(request: MsgSubstationPlayerDisconnect): Promise;\n SubstationPlayerMigrate(request: MsgSubstationPlayerMigrate): Promise;\n}\n\nexport const MsgServiceName = \"structs.structs.Msg\";\nexport class MsgClientImpl implements Msg {\n private readonly rpc: Rpc;\n private readonly service: string;\n constructor(rpc: Rpc, opts?: { service?: string }) {\n this.service = opts?.service || MsgServiceName;\n this.rpc = rpc;\n this.UpdateParams = this.UpdateParams.bind(this);\n this.AddressRegister = this.AddressRegister.bind(this);\n this.AddressRevoke = this.AddressRevoke.bind(this);\n this.AgreementOpen = this.AgreementOpen.bind(this);\n this.AgreementClose = this.AgreementClose.bind(this);\n this.AgreementCapacityIncrease = this.AgreementCapacityIncrease.bind(this);\n this.AgreementCapacityDecrease = this.AgreementCapacityDecrease.bind(this);\n this.AgreementDurationIncrease = this.AgreementDurationIncrease.bind(this);\n this.AllocationCreate = this.AllocationCreate.bind(this);\n this.AllocationDelete = this.AllocationDelete.bind(this);\n this.AllocationUpdate = this.AllocationUpdate.bind(this);\n this.AllocationTransfer = this.AllocationTransfer.bind(this);\n this.FleetMove = this.FleetMove.bind(this);\n this.GuildCreate = this.GuildCreate.bind(this);\n this.GuildBankMint = this.GuildBankMint.bind(this);\n this.GuildBankRedeem = this.GuildBankRedeem.bind(this);\n this.GuildBankConfiscateAndBurn = this.GuildBankConfiscateAndBurn.bind(this);\n this.GuildUpdateOwnerId = this.GuildUpdateOwnerId.bind(this);\n this.GuildUpdateEntrySubstationId = this.GuildUpdateEntrySubstationId.bind(this);\n this.GuildUpdateEndpoint = this.GuildUpdateEndpoint.bind(this);\n this.GuildUpdateJoinInfusionMinimum = this.GuildUpdateJoinInfusionMinimum.bind(this);\n this.GuildUpdateJoinInfusionMinimumBypassByInvite = this.GuildUpdateJoinInfusionMinimumBypassByInvite.bind(this);\n this.GuildUpdateJoinInfusionMinimumBypassByRequest = this.GuildUpdateJoinInfusionMinimumBypassByRequest.bind(this);\n this.GuildMembershipInvite = this.GuildMembershipInvite.bind(this);\n this.GuildMembershipInviteApprove = this.GuildMembershipInviteApprove.bind(this);\n this.GuildMembershipInviteDeny = this.GuildMembershipInviteDeny.bind(this);\n this.GuildMembershipInviteRevoke = this.GuildMembershipInviteRevoke.bind(this);\n this.GuildMembershipJoin = this.GuildMembershipJoin.bind(this);\n this.GuildMembershipJoinProxy = this.GuildMembershipJoinProxy.bind(this);\n this.GuildMembershipKick = this.GuildMembershipKick.bind(this);\n this.GuildMembershipRequest = this.GuildMembershipRequest.bind(this);\n this.GuildMembershipRequestApprove = this.GuildMembershipRequestApprove.bind(this);\n this.GuildMembershipRequestDeny = this.GuildMembershipRequestDeny.bind(this);\n this.GuildMembershipRequestRevoke = this.GuildMembershipRequestRevoke.bind(this);\n this.PermissionGrantOnAddress = this.PermissionGrantOnAddress.bind(this);\n this.PermissionGrantOnObject = this.PermissionGrantOnObject.bind(this);\n this.PermissionRevokeOnAddress = this.PermissionRevokeOnAddress.bind(this);\n this.PermissionRevokeOnObject = this.PermissionRevokeOnObject.bind(this);\n this.PermissionSetOnAddress = this.PermissionSetOnAddress.bind(this);\n this.PermissionSetOnObject = this.PermissionSetOnObject.bind(this);\n this.PlanetExplore = this.PlanetExplore.bind(this);\n this.PlanetRaidComplete = this.PlanetRaidComplete.bind(this);\n this.PlayerUpdatePrimaryAddress = this.PlayerUpdatePrimaryAddress.bind(this);\n this.PlayerResume = this.PlayerResume.bind(this);\n this.PlayerSend = this.PlayerSend.bind(this);\n this.ProviderCreate = this.ProviderCreate.bind(this);\n this.ProviderWithdrawBalance = this.ProviderWithdrawBalance.bind(this);\n this.ProviderUpdateCapacityMinimum = this.ProviderUpdateCapacityMinimum.bind(this);\n this.ProviderUpdateCapacityMaximum = this.ProviderUpdateCapacityMaximum.bind(this);\n this.ProviderUpdateDurationMinimum = this.ProviderUpdateDurationMinimum.bind(this);\n this.ProviderUpdateDurationMaximum = this.ProviderUpdateDurationMaximum.bind(this);\n this.ProviderUpdateAccessPolicy = this.ProviderUpdateAccessPolicy.bind(this);\n this.ProviderGuildGrant = this.ProviderGuildGrant.bind(this);\n this.ProviderGuildRevoke = this.ProviderGuildRevoke.bind(this);\n this.ProviderDelete = this.ProviderDelete.bind(this);\n this.ReactorInfuse = this.ReactorInfuse.bind(this);\n this.ReactorDefuse = this.ReactorDefuse.bind(this);\n this.ReactorBeginMigration = this.ReactorBeginMigration.bind(this);\n this.ReactorCancelDefusion = this.ReactorCancelDefusion.bind(this);\n this.StructActivate = this.StructActivate.bind(this);\n this.StructDeactivate = this.StructDeactivate.bind(this);\n this.StructBuildInitiate = this.StructBuildInitiate.bind(this);\n this.StructBuildComplete = this.StructBuildComplete.bind(this);\n this.StructBuildCancel = this.StructBuildCancel.bind(this);\n this.StructDefenseSet = this.StructDefenseSet.bind(this);\n this.StructDefenseClear = this.StructDefenseClear.bind(this);\n this.StructMove = this.StructMove.bind(this);\n this.StructAttack = this.StructAttack.bind(this);\n this.StructStealthActivate = this.StructStealthActivate.bind(this);\n this.StructStealthDeactivate = this.StructStealthDeactivate.bind(this);\n this.StructGeneratorInfuse = this.StructGeneratorInfuse.bind(this);\n this.StructOreMinerComplete = this.StructOreMinerComplete.bind(this);\n this.StructOreRefineryComplete = this.StructOreRefineryComplete.bind(this);\n this.SubstationCreate = this.SubstationCreate.bind(this);\n this.SubstationDelete = this.SubstationDelete.bind(this);\n this.SubstationAllocationConnect = this.SubstationAllocationConnect.bind(this);\n this.SubstationAllocationDisconnect = this.SubstationAllocationDisconnect.bind(this);\n this.SubstationPlayerConnect = this.SubstationPlayerConnect.bind(this);\n this.SubstationPlayerDisconnect = this.SubstationPlayerDisconnect.bind(this);\n this.SubstationPlayerMigrate = this.SubstationPlayerMigrate.bind(this);\n }\n UpdateParams(request: MsgUpdateParams): Promise {\n const data = MsgUpdateParams.encode(request).finish();\n const promise = this.rpc.request(this.service, \"UpdateParams\", data);\n return promise.then((data) => MsgUpdateParamsResponse.decode(new BinaryReader(data)));\n }\n\n AddressRegister(request: MsgAddressRegister): Promise {\n const data = MsgAddressRegister.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AddressRegister\", data);\n return promise.then((data) => MsgAddressRegisterResponse.decode(new BinaryReader(data)));\n }\n\n AddressRevoke(request: MsgAddressRevoke): Promise {\n const data = MsgAddressRevoke.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AddressRevoke\", data);\n return promise.then((data) => MsgAddressRevokeResponse.decode(new BinaryReader(data)));\n }\n\n AgreementOpen(request: MsgAgreementOpen): Promise {\n const data = MsgAgreementOpen.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AgreementOpen\", data);\n return promise.then((data) => MsgAgreementResponse.decode(new BinaryReader(data)));\n }\n\n AgreementClose(request: MsgAgreementClose): Promise {\n const data = MsgAgreementClose.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AgreementClose\", data);\n return promise.then((data) => MsgAgreementResponse.decode(new BinaryReader(data)));\n }\n\n AgreementCapacityIncrease(request: MsgAgreementCapacityIncrease): Promise {\n const data = MsgAgreementCapacityIncrease.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AgreementCapacityIncrease\", data);\n return promise.then((data) => MsgAgreementResponse.decode(new BinaryReader(data)));\n }\n\n AgreementCapacityDecrease(request: MsgAgreementCapacityDecrease): Promise {\n const data = MsgAgreementCapacityDecrease.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AgreementCapacityDecrease\", data);\n return promise.then((data) => MsgAgreementResponse.decode(new BinaryReader(data)));\n }\n\n AgreementDurationIncrease(request: MsgAgreementDurationIncrease): Promise {\n const data = MsgAgreementDurationIncrease.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AgreementDurationIncrease\", data);\n return promise.then((data) => MsgAgreementResponse.decode(new BinaryReader(data)));\n }\n\n AllocationCreate(request: MsgAllocationCreate): Promise {\n const data = MsgAllocationCreate.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AllocationCreate\", data);\n return promise.then((data) => MsgAllocationCreateResponse.decode(new BinaryReader(data)));\n }\n\n AllocationDelete(request: MsgAllocationDelete): Promise {\n const data = MsgAllocationDelete.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AllocationDelete\", data);\n return promise.then((data) => MsgAllocationDeleteResponse.decode(new BinaryReader(data)));\n }\n\n AllocationUpdate(request: MsgAllocationUpdate): Promise {\n const data = MsgAllocationUpdate.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AllocationUpdate\", data);\n return promise.then((data) => MsgAllocationUpdateResponse.decode(new BinaryReader(data)));\n }\n\n AllocationTransfer(request: MsgAllocationTransfer): Promise {\n const data = MsgAllocationTransfer.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AllocationTransfer\", data);\n return promise.then((data) => MsgAllocationTransferResponse.decode(new BinaryReader(data)));\n }\n\n FleetMove(request: MsgFleetMove): Promise {\n const data = MsgFleetMove.encode(request).finish();\n const promise = this.rpc.request(this.service, \"FleetMove\", data);\n return promise.then((data) => MsgFleetMoveResponse.decode(new BinaryReader(data)));\n }\n\n GuildCreate(request: MsgGuildCreate): Promise {\n const data = MsgGuildCreate.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildCreate\", data);\n return promise.then((data) => MsgGuildCreateResponse.decode(new BinaryReader(data)));\n }\n\n GuildBankMint(request: MsgGuildBankMint): Promise {\n const data = MsgGuildBankMint.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildBankMint\", data);\n return promise.then((data) => MsgGuildBankMintResponse.decode(new BinaryReader(data)));\n }\n\n GuildBankRedeem(request: MsgGuildBankRedeem): Promise {\n const data = MsgGuildBankRedeem.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildBankRedeem\", data);\n return promise.then((data) => MsgGuildBankRedeemResponse.decode(new BinaryReader(data)));\n }\n\n GuildBankConfiscateAndBurn(request: MsgGuildBankConfiscateAndBurn): Promise {\n const data = MsgGuildBankConfiscateAndBurn.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildBankConfiscateAndBurn\", data);\n return promise.then((data) => MsgGuildBankConfiscateAndBurnResponse.decode(new BinaryReader(data)));\n }\n\n GuildUpdateOwnerId(request: MsgGuildUpdateOwnerId): Promise {\n const data = MsgGuildUpdateOwnerId.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildUpdateOwnerId\", data);\n return promise.then((data) => MsgGuildUpdateResponse.decode(new BinaryReader(data)));\n }\n\n GuildUpdateEntrySubstationId(request: MsgGuildUpdateEntrySubstationId): Promise {\n const data = MsgGuildUpdateEntrySubstationId.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildUpdateEntrySubstationId\", data);\n return promise.then((data) => MsgGuildUpdateResponse.decode(new BinaryReader(data)));\n }\n\n GuildUpdateEndpoint(request: MsgGuildUpdateEndpoint): Promise {\n const data = MsgGuildUpdateEndpoint.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildUpdateEndpoint\", data);\n return promise.then((data) => MsgGuildUpdateResponse.decode(new BinaryReader(data)));\n }\n\n GuildUpdateJoinInfusionMinimum(request: MsgGuildUpdateJoinInfusionMinimum): Promise {\n const data = MsgGuildUpdateJoinInfusionMinimum.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildUpdateJoinInfusionMinimum\", data);\n return promise.then((data) => MsgGuildUpdateResponse.decode(new BinaryReader(data)));\n }\n\n GuildUpdateJoinInfusionMinimumBypassByInvite(\n request: MsgGuildUpdateJoinInfusionMinimumBypassByInvite,\n ): Promise {\n const data = MsgGuildUpdateJoinInfusionMinimumBypassByInvite.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildUpdateJoinInfusionMinimumBypassByInvite\", data);\n return promise.then((data) => MsgGuildUpdateResponse.decode(new BinaryReader(data)));\n }\n\n GuildUpdateJoinInfusionMinimumBypassByRequest(\n request: MsgGuildUpdateJoinInfusionMinimumBypassByRequest,\n ): Promise {\n const data = MsgGuildUpdateJoinInfusionMinimumBypassByRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildUpdateJoinInfusionMinimumBypassByRequest\", data);\n return promise.then((data) => MsgGuildUpdateResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipInvite(request: MsgGuildMembershipInvite): Promise {\n const data = MsgGuildMembershipInvite.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipInvite\", data);\n return promise.then((data) => MsgGuildMembershipResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipInviteApprove(request: MsgGuildMembershipInviteApprove): Promise {\n const data = MsgGuildMembershipInviteApprove.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipInviteApprove\", data);\n return promise.then((data) => MsgGuildMembershipResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipInviteDeny(request: MsgGuildMembershipInviteDeny): Promise {\n const data = MsgGuildMembershipInviteDeny.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipInviteDeny\", data);\n return promise.then((data) => MsgGuildMembershipResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipInviteRevoke(request: MsgGuildMembershipInviteRevoke): Promise {\n const data = MsgGuildMembershipInviteRevoke.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipInviteRevoke\", data);\n return promise.then((data) => MsgGuildMembershipResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipJoin(request: MsgGuildMembershipJoin): Promise {\n const data = MsgGuildMembershipJoin.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipJoin\", data);\n return promise.then((data) => MsgGuildMembershipResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipJoinProxy(request: MsgGuildMembershipJoinProxy): Promise {\n const data = MsgGuildMembershipJoinProxy.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipJoinProxy\", data);\n return promise.then((data) => MsgGuildMembershipResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipKick(request: MsgGuildMembershipKick): Promise {\n const data = MsgGuildMembershipKick.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipKick\", data);\n return promise.then((data) => MsgGuildMembershipResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipRequest(request: MsgGuildMembershipRequest): Promise {\n const data = MsgGuildMembershipRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipRequest\", data);\n return promise.then((data) => MsgGuildMembershipResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipRequestApprove(request: MsgGuildMembershipRequestApprove): Promise {\n const data = MsgGuildMembershipRequestApprove.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipRequestApprove\", data);\n return promise.then((data) => MsgGuildMembershipResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipRequestDeny(request: MsgGuildMembershipRequestDeny): Promise {\n const data = MsgGuildMembershipRequestDeny.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipRequestDeny\", data);\n return promise.then((data) => MsgGuildMembershipResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipRequestRevoke(request: MsgGuildMembershipRequestRevoke): Promise {\n const data = MsgGuildMembershipRequestRevoke.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipRequestRevoke\", data);\n return promise.then((data) => MsgGuildMembershipResponse.decode(new BinaryReader(data)));\n }\n\n PermissionGrantOnAddress(request: MsgPermissionGrantOnAddress): Promise {\n const data = MsgPermissionGrantOnAddress.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PermissionGrantOnAddress\", data);\n return promise.then((data) => MsgPermissionResponse.decode(new BinaryReader(data)));\n }\n\n PermissionGrantOnObject(request: MsgPermissionGrantOnObject): Promise {\n const data = MsgPermissionGrantOnObject.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PermissionGrantOnObject\", data);\n return promise.then((data) => MsgPermissionResponse.decode(new BinaryReader(data)));\n }\n\n PermissionRevokeOnAddress(request: MsgPermissionRevokeOnAddress): Promise {\n const data = MsgPermissionRevokeOnAddress.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PermissionRevokeOnAddress\", data);\n return promise.then((data) => MsgPermissionResponse.decode(new BinaryReader(data)));\n }\n\n PermissionRevokeOnObject(request: MsgPermissionRevokeOnObject): Promise {\n const data = MsgPermissionRevokeOnObject.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PermissionRevokeOnObject\", data);\n return promise.then((data) => MsgPermissionResponse.decode(new BinaryReader(data)));\n }\n\n PermissionSetOnAddress(request: MsgPermissionSetOnAddress): Promise {\n const data = MsgPermissionSetOnAddress.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PermissionSetOnAddress\", data);\n return promise.then((data) => MsgPermissionResponse.decode(new BinaryReader(data)));\n }\n\n PermissionSetOnObject(request: MsgPermissionSetOnObject): Promise {\n const data = MsgPermissionSetOnObject.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PermissionSetOnObject\", data);\n return promise.then((data) => MsgPermissionResponse.decode(new BinaryReader(data)));\n }\n\n PlanetExplore(request: MsgPlanetExplore): Promise {\n const data = MsgPlanetExplore.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PlanetExplore\", data);\n return promise.then((data) => MsgPlanetExploreResponse.decode(new BinaryReader(data)));\n }\n\n PlanetRaidComplete(request: MsgPlanetRaidComplete): Promise {\n const data = MsgPlanetRaidComplete.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PlanetRaidComplete\", data);\n return promise.then((data) => MsgPlanetRaidCompleteResponse.decode(new BinaryReader(data)));\n }\n\n PlayerUpdatePrimaryAddress(request: MsgPlayerUpdatePrimaryAddress): Promise {\n const data = MsgPlayerUpdatePrimaryAddress.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PlayerUpdatePrimaryAddress\", data);\n return promise.then((data) => MsgPlayerUpdatePrimaryAddressResponse.decode(new BinaryReader(data)));\n }\n\n PlayerResume(request: MsgPlayerResume): Promise {\n const data = MsgPlayerResume.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PlayerResume\", data);\n return promise.then((data) => MsgPlayerResumeResponse.decode(new BinaryReader(data)));\n }\n\n PlayerSend(request: MsgPlayerSend): Promise {\n const data = MsgPlayerSend.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PlayerSend\", data);\n return promise.then((data) => MsgPlayerSendResponse.decode(new BinaryReader(data)));\n }\n\n ProviderCreate(request: MsgProviderCreate): Promise {\n const data = MsgProviderCreate.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderCreate\", data);\n return promise.then((data) => MsgProviderResponse.decode(new BinaryReader(data)));\n }\n\n ProviderWithdrawBalance(request: MsgProviderWithdrawBalance): Promise {\n const data = MsgProviderWithdrawBalance.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderWithdrawBalance\", data);\n return promise.then((data) => MsgProviderResponse.decode(new BinaryReader(data)));\n }\n\n ProviderUpdateCapacityMinimum(request: MsgProviderUpdateCapacityMinimum): Promise {\n const data = MsgProviderUpdateCapacityMinimum.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderUpdateCapacityMinimum\", data);\n return promise.then((data) => MsgProviderResponse.decode(new BinaryReader(data)));\n }\n\n ProviderUpdateCapacityMaximum(request: MsgProviderUpdateCapacityMaximum): Promise {\n const data = MsgProviderUpdateCapacityMaximum.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderUpdateCapacityMaximum\", data);\n return promise.then((data) => MsgProviderResponse.decode(new BinaryReader(data)));\n }\n\n ProviderUpdateDurationMinimum(request: MsgProviderUpdateDurationMinimum): Promise {\n const data = MsgProviderUpdateDurationMinimum.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderUpdateDurationMinimum\", data);\n return promise.then((data) => MsgProviderResponse.decode(new BinaryReader(data)));\n }\n\n ProviderUpdateDurationMaximum(request: MsgProviderUpdateDurationMaximum): Promise {\n const data = MsgProviderUpdateDurationMaximum.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderUpdateDurationMaximum\", data);\n return promise.then((data) => MsgProviderResponse.decode(new BinaryReader(data)));\n }\n\n ProviderUpdateAccessPolicy(request: MsgProviderUpdateAccessPolicy): Promise {\n const data = MsgProviderUpdateAccessPolicy.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderUpdateAccessPolicy\", data);\n return promise.then((data) => MsgProviderResponse.decode(new BinaryReader(data)));\n }\n\n ProviderGuildGrant(request: MsgProviderGuildGrant): Promise {\n const data = MsgProviderGuildGrant.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderGuildGrant\", data);\n return promise.then((data) => MsgProviderResponse.decode(new BinaryReader(data)));\n }\n\n ProviderGuildRevoke(request: MsgProviderGuildRevoke): Promise {\n const data = MsgProviderGuildRevoke.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderGuildRevoke\", data);\n return promise.then((data) => MsgProviderResponse.decode(new BinaryReader(data)));\n }\n\n ProviderDelete(request: MsgProviderDelete): Promise {\n const data = MsgProviderDelete.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderDelete\", data);\n return promise.then((data) => MsgProviderResponse.decode(new BinaryReader(data)));\n }\n\n ReactorInfuse(request: MsgReactorInfuse): Promise {\n const data = MsgReactorInfuse.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ReactorInfuse\", data);\n return promise.then((data) => MsgReactorInfuseResponse.decode(new BinaryReader(data)));\n }\n\n ReactorDefuse(request: MsgReactorDefuse): Promise {\n const data = MsgReactorDefuse.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ReactorDefuse\", data);\n return promise.then((data) => MsgReactorDefuseResponse.decode(new BinaryReader(data)));\n }\n\n ReactorBeginMigration(request: MsgReactorBeginMigration): Promise {\n const data = MsgReactorBeginMigration.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ReactorBeginMigration\", data);\n return promise.then((data) => MsgReactorBeginMigrationResponse.decode(new BinaryReader(data)));\n }\n\n ReactorCancelDefusion(request: MsgReactorCancelDefusion): Promise {\n const data = MsgReactorCancelDefusion.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ReactorCancelDefusion\", data);\n return promise.then((data) => MsgReactorCancelDefusionResponse.decode(new BinaryReader(data)));\n }\n\n StructActivate(request: MsgStructActivate): Promise {\n const data = MsgStructActivate.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructActivate\", data);\n return promise.then((data) => MsgStructStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructDeactivate(request: MsgStructDeactivate): Promise {\n const data = MsgStructDeactivate.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructDeactivate\", data);\n return promise.then((data) => MsgStructStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructBuildInitiate(request: MsgStructBuildInitiate): Promise {\n const data = MsgStructBuildInitiate.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructBuildInitiate\", data);\n return promise.then((data) => MsgStructStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructBuildComplete(request: MsgStructBuildComplete): Promise {\n const data = MsgStructBuildComplete.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructBuildComplete\", data);\n return promise.then((data) => MsgStructStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructBuildCancel(request: MsgStructBuildCancel): Promise {\n const data = MsgStructBuildCancel.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructBuildCancel\", data);\n return promise.then((data) => MsgStructStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructDefenseSet(request: MsgStructDefenseSet): Promise {\n const data = MsgStructDefenseSet.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructDefenseSet\", data);\n return promise.then((data) => MsgStructStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructDefenseClear(request: MsgStructDefenseClear): Promise {\n const data = MsgStructDefenseClear.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructDefenseClear\", data);\n return promise.then((data) => MsgStructStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructMove(request: MsgStructMove): Promise {\n const data = MsgStructMove.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructMove\", data);\n return promise.then((data) => MsgStructStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructAttack(request: MsgStructAttack): Promise {\n const data = MsgStructAttack.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructAttack\", data);\n return promise.then((data) => MsgStructAttackResponse.decode(new BinaryReader(data)));\n }\n\n StructStealthActivate(request: MsgStructStealthActivate): Promise {\n const data = MsgStructStealthActivate.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructStealthActivate\", data);\n return promise.then((data) => MsgStructStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructStealthDeactivate(request: MsgStructStealthDeactivate): Promise {\n const data = MsgStructStealthDeactivate.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructStealthDeactivate\", data);\n return promise.then((data) => MsgStructStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructGeneratorInfuse(request: MsgStructGeneratorInfuse): Promise {\n const data = MsgStructGeneratorInfuse.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructGeneratorInfuse\", data);\n return promise.then((data) => MsgStructGeneratorStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructOreMinerComplete(request: MsgStructOreMinerComplete): Promise {\n const data = MsgStructOreMinerComplete.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructOreMinerComplete\", data);\n return promise.then((data) => MsgStructOreMinerStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructOreRefineryComplete(request: MsgStructOreRefineryComplete): Promise {\n const data = MsgStructOreRefineryComplete.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructOreRefineryComplete\", data);\n return promise.then((data) => MsgStructOreRefineryStatusResponse.decode(new BinaryReader(data)));\n }\n\n SubstationCreate(request: MsgSubstationCreate): Promise {\n const data = MsgSubstationCreate.encode(request).finish();\n const promise = this.rpc.request(this.service, \"SubstationCreate\", data);\n return promise.then((data) => MsgSubstationCreateResponse.decode(new BinaryReader(data)));\n }\n\n SubstationDelete(request: MsgSubstationDelete): Promise {\n const data = MsgSubstationDelete.encode(request).finish();\n const promise = this.rpc.request(this.service, \"SubstationDelete\", data);\n return promise.then((data) => MsgSubstationDeleteResponse.decode(new BinaryReader(data)));\n }\n\n SubstationAllocationConnect(\n request: MsgSubstationAllocationConnect,\n ): Promise {\n const data = MsgSubstationAllocationConnect.encode(request).finish();\n const promise = this.rpc.request(this.service, \"SubstationAllocationConnect\", data);\n return promise.then((data) => MsgSubstationAllocationConnectResponse.decode(new BinaryReader(data)));\n }\n\n SubstationAllocationDisconnect(\n request: MsgSubstationAllocationDisconnect,\n ): Promise {\n const data = MsgSubstationAllocationDisconnect.encode(request).finish();\n const promise = this.rpc.request(this.service, \"SubstationAllocationDisconnect\", data);\n return promise.then((data) => MsgSubstationAllocationDisconnectResponse.decode(new BinaryReader(data)));\n }\n\n SubstationPlayerConnect(request: MsgSubstationPlayerConnect): Promise {\n const data = MsgSubstationPlayerConnect.encode(request).finish();\n const promise = this.rpc.request(this.service, \"SubstationPlayerConnect\", data);\n return promise.then((data) => MsgSubstationPlayerConnectResponse.decode(new BinaryReader(data)));\n }\n\n SubstationPlayerDisconnect(request: MsgSubstationPlayerDisconnect): Promise {\n const data = MsgSubstationPlayerDisconnect.encode(request).finish();\n const promise = this.rpc.request(this.service, \"SubstationPlayerDisconnect\", data);\n return promise.then((data) => MsgSubstationPlayerDisconnectResponse.decode(new BinaryReader(data)));\n }\n\n SubstationPlayerMigrate(request: MsgSubstationPlayerMigrate): Promise {\n const data = MsgSubstationPlayerMigrate.encode(request).finish();\n const promise = this.rpc.request(this.service, \"SubstationPlayerMigrate\", data);\n return promise.then((data) => MsgSubstationPlayerMigrateResponse.decode(new BinaryReader(data)));\n }\n}\n\ninterface Rpc {\n request(service: string, method: string, data: Uint8Array): Promise;\n}\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction toTimestamp(date: Date): Timestamp {\n const seconds = Math.trunc(date.getTime() / 1_000);\n const nanos = (date.getTime() % 1_000) * 1_000_000;\n return { seconds, nanos };\n}\n\nfunction fromTimestamp(t: Timestamp): Date {\n let millis = (t.seconds || 0) * 1_000;\n millis += (t.nanos || 0) / 1_000_000;\n return new globalThis.Date(millis);\n}\n\nfunction fromJsonTimestamp(o: any): Date {\n if (o instanceof globalThis.Date) {\n return o;\n } else if (typeof o === \"string\") {\n return new globalThis.Date(o);\n } else {\n return fromTimestamp(Timestamp.fromJSON(o));\n }\n}\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n","'use strict';\n\nvar $TypeError = require('es-errors/type');\n\nvar callBound = require('call-bound');\n\n/** @type {undefined | ((thisArg: import('.').TypedArray) => Buffer)} */\nvar $typedArrayBuffer = callBound('TypedArray.prototype.buffer', true);\n\nvar isTypedArray = require('is-typed-array');\n\n/** @type {import('.')} */\n// node <= 0.10, < 0.11.4 has a nonconfigurable own property instead of a prototype getter\nmodule.exports = $typedArrayBuffer || function typedArrayBuffer(x) {\n\tif (!isTypedArray(x)) {\n\t\tthrow new $TypeError('Not a Typed Array');\n\t}\n\treturn x.buffer;\n};\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch(e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return (\n isTypedArray(value) ||\n isDataView(value)\n );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n typeof Map !== 'undefined' &&\n isMapToString(new Map())\n);\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working\n ? isMapToString(value)\n : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n typeof Set !== 'undefined' &&\n isSetToString(new Set())\n);\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working\n ? isSetToString(value)\n : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n typeof WeakMap !== 'undefined' &&\n isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working\n ? isWeakMapToString(value)\n : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n typeof WeakSet !== 'undefined' &&\n isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working\n ? isArrayBufferToString(value)\n : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n typeof DataView !== 'undefined' &&\n isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working\n ? isDataViewToString(value)\n : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === 'undefined') {\n return false;\n }\n\n if (typeof isSharedArrayBufferToString.working === 'undefined') {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n\n return isSharedArrayBufferToString.working\n ? isSharedArrayBufferToString(value)\n : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return (\n isNumberObject(value) ||\n isStringObject(value) ||\n isBooleanObject(value) ||\n isBigIntObject(value) ||\n isSymbolObject(value)\n );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (\n isArrayBuffer(value) ||\n isSharedArrayBuffer(value)\n );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + ' is not supported in userland');\n }\n });\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n .replace(/\\*/g, '.*')\n .replace(/,/g, '$|^')\n .toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').slice(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.slice(1, -1);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","var indexOf = function (xs, item) {\n if (xs.indexOf) return xs.indexOf(item);\n else for (var i = 0; i < xs.length; i++) {\n if (xs[i] === item) return i;\n }\n return -1;\n};\nvar Object_keys = function (obj) {\n if (Object.keys) return Object.keys(obj)\n else {\n var res = [];\n for (var key in obj) res.push(key)\n return res;\n }\n};\n\nvar forEach = function (xs, fn) {\n if (xs.forEach) return xs.forEach(fn)\n else for (var i = 0; i < xs.length; i++) {\n fn(xs[i], i, xs);\n }\n};\n\nvar defineProp = (function() {\n try {\n Object.defineProperty({}, '_', {});\n return function(obj, name, value) {\n Object.defineProperty(obj, name, {\n writable: true,\n enumerable: false,\n configurable: true,\n value: value\n })\n };\n } catch(e) {\n return function(obj, name, value) {\n obj[name] = value;\n };\n }\n}());\n\nvar globals = ['Array', 'Boolean', 'Date', 'Error', 'EvalError', 'Function',\n'Infinity', 'JSON', 'Math', 'NaN', 'Number', 'Object', 'RangeError',\n'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError',\n'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', 'escape',\n'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'undefined', 'unescape'];\n\nfunction Context() {}\nContext.prototype = {};\n\nvar Script = exports.Script = function NodeScript (code) {\n if (!(this instanceof Script)) return new Script(code);\n this.code = code;\n};\n\nScript.prototype.runInContext = function (context) {\n if (!(context instanceof Context)) {\n throw new TypeError(\"needs a 'context' argument.\");\n }\n \n var iframe = document.createElement('iframe');\n if (!iframe.style) iframe.style = {};\n iframe.style.display = 'none';\n \n document.body.appendChild(iframe);\n \n var win = iframe.contentWindow;\n var wEval = win.eval, wExecScript = win.execScript;\n\n if (!wEval && wExecScript) {\n // win.eval() magically appears when this is called in IE:\n wExecScript.call(win, 'null');\n wEval = win.eval;\n }\n \n forEach(Object_keys(context), function (key) {\n win[key] = context[key];\n });\n forEach(globals, function (key) {\n if (context[key]) {\n win[key] = context[key];\n }\n });\n \n var winKeys = Object_keys(win);\n\n var res = wEval.call(win, this.code);\n \n forEach(Object_keys(win), function (key) {\n // Avoid copying circular objects like `top` and `window` by only\n // updating existing context properties or new properties in the `win`\n // that was only introduced after the eval.\n if (key in context || indexOf(winKeys, key) === -1) {\n context[key] = win[key];\n }\n });\n\n forEach(globals, function (key) {\n if (!(key in context)) {\n defineProp(context, key, win[key]);\n }\n });\n \n document.body.removeChild(iframe);\n \n return res;\n};\n\nScript.prototype.runInThisContext = function () {\n return eval(this.code); // maybe...\n};\n\nScript.prototype.runInNewContext = function (context) {\n var ctx = Script.createContext(context);\n var res = this.runInContext(ctx);\n\n if (context) {\n forEach(Object_keys(ctx), function (key) {\n context[key] = ctx[key];\n });\n }\n\n return res;\n};\n\nforEach(Object_keys(Script.prototype), function (name) {\n exports[name] = Script[name] = function (code) {\n var s = Script(code);\n return s[name].apply(s, [].slice.call(arguments, 1));\n };\n});\n\nexports.isContext = function (context) {\n return context instanceof Context;\n};\n\nexports.createScript = function (code) {\n return exports.Script(code);\n};\n\nexports.createContext = Script.createContext = function (context) {\n var copy = new Context();\n if(typeof context === 'object') {\n forEach(Object_keys(context), function (key) {\n copy[key] = context[key];\n });\n }\n return copy;\n};\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBind = require('call-bind');\nvar callBound = require('call-bound');\nvar gOPD = require('gopd');\nvar getProto = require('get-proto');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\n\n/** @type {(array: readonly T[], value: unknown) => number} */\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\n/** @typedef {import('./types').Getter} Getter */\n/** @type {import('./types').Cache} */\nvar cache = { __proto__: null };\nif (hasToStringTag && gOPD && getProto) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr && getProto) {\n\t\t\tvar proto = getProto(arr);\n\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor && proto) {\n\t\t\t\tvar superProto = getProto(proto);\n\t\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(descriptor.get);\n\t\t}\n\t});\n} else {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tvar fn = arr.slice || arr.set;\n\t\tif (fn) {\n\t\t\tcache[\n\t\t\t\t/** @type {`$${import('.').TypedArrayName}`} */ ('$' + typedArray)\n\t\t\t] = /** @type {import('./types').BoundSlice | import('./types').BoundSet} */ (\n\t\t\t\t// @ts-expect-error TODO FIXME\n\t\t\t\tcallBind(fn)\n\t\t\t);\n\t\t}\n\t});\n}\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t/** @type {Record<`\\$${import('.').TypedArrayName}`, Getter>} */ (cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */\n\t\tfunction (getter, typedArray) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error a throw is fine here\n\t\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\t\tfound = /** @type {import('.').TypedArrayName} */ ($slice(typedArray, 1));\n\t\t\t\t\t}\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar trySlices = function tryAllSlices(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t/** @type {Record<`\\$${import('.').TypedArrayName}`, Getter>} */(cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */ function (getter, name) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error a throw is fine here\n\t\t\t\t\tgetter(value);\n\t\t\t\t\tfound = /** @type {import('.').TypedArrayName} */ ($slice(name, 1));\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {import('.')} */\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\t/** @type {string} */\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\tif ($indexOf(typedArrays, tag) > -1) {\n\t\t\treturn tag;\n\t\t}\n\t\tif (tag !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\t// node < 0.6 hits here on real Typed Arrays\n\t\treturn trySlices(value);\n\t}\n\tif (!gOPD) { return null; } // unknown engine\n\treturn tryTypedArrays(value);\n};\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NO_IL = exports.NO = exports.MemoryStream = exports.Stream = void 0;\nvar ponyfill_1 = require(\"symbol-observable/ponyfill\");\nvar globalthis_1 = require(\"globalthis\");\nvar $$observable = ponyfill_1.default(globalthis_1.getPolyfill());\nvar NO = {};\nexports.NO = NO;\nfunction noop() { }\nfunction cp(a) {\n var l = a.length;\n var b = Array(l);\n for (var i = 0; i < l; ++i)\n b[i] = a[i];\n return b;\n}\nfunction and(f1, f2) {\n return function andFn(t) {\n return f1(t) && f2(t);\n };\n}\nfunction _try(c, t, u) {\n try {\n return c.f(t);\n }\n catch (e) {\n u._e(e);\n return NO;\n }\n}\nvar NO_IL = {\n _n: noop,\n _e: noop,\n _c: noop,\n};\nexports.NO_IL = NO_IL;\n// mutates the input\nfunction internalizeProducer(producer) {\n producer._start = function _start(il) {\n il.next = il._n;\n il.error = il._e;\n il.complete = il._c;\n this.start(il);\n };\n producer._stop = producer.stop;\n}\nvar StreamSub = /** @class */ (function () {\n function StreamSub(_stream, _listener) {\n this._stream = _stream;\n this._listener = _listener;\n }\n StreamSub.prototype.unsubscribe = function () {\n this._stream._remove(this._listener);\n };\n return StreamSub;\n}());\nvar Observer = /** @class */ (function () {\n function Observer(_listener) {\n this._listener = _listener;\n }\n Observer.prototype.next = function (value) {\n this._listener._n(value);\n };\n Observer.prototype.error = function (err) {\n this._listener._e(err);\n };\n Observer.prototype.complete = function () {\n this._listener._c();\n };\n return Observer;\n}());\nvar FromObservable = /** @class */ (function () {\n function FromObservable(observable) {\n this.type = 'fromObservable';\n this.ins = observable;\n this.active = false;\n }\n FromObservable.prototype._start = function (out) {\n this.out = out;\n this.active = true;\n this._sub = this.ins.subscribe(new Observer(out));\n if (!this.active)\n this._sub.unsubscribe();\n };\n FromObservable.prototype._stop = function () {\n if (this._sub)\n this._sub.unsubscribe();\n this.active = false;\n };\n return FromObservable;\n}());\nvar Merge = /** @class */ (function () {\n function Merge(insArr) {\n this.type = 'merge';\n this.insArr = insArr;\n this.out = NO;\n this.ac = 0;\n }\n Merge.prototype._start = function (out) {\n this.out = out;\n var s = this.insArr;\n var L = s.length;\n this.ac = L;\n for (var i = 0; i < L; i++)\n s[i]._add(this);\n };\n Merge.prototype._stop = function () {\n var s = this.insArr;\n var L = s.length;\n for (var i = 0; i < L; i++)\n s[i]._remove(this);\n this.out = NO;\n };\n Merge.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n u._n(t);\n };\n Merge.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Merge.prototype._c = function () {\n if (--this.ac <= 0) {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n }\n };\n return Merge;\n}());\nvar CombineListener = /** @class */ (function () {\n function CombineListener(i, out, p) {\n this.i = i;\n this.out = out;\n this.p = p;\n p.ils.push(this);\n }\n CombineListener.prototype._n = function (t) {\n var p = this.p, out = this.out;\n if (out === NO)\n return;\n if (p.up(t, this.i)) {\n var b = cp(p.vals);\n out._n(b);\n }\n };\n CombineListener.prototype._e = function (err) {\n var out = this.out;\n if (out === NO)\n return;\n out._e(err);\n };\n CombineListener.prototype._c = function () {\n var p = this.p;\n if (p.out === NO)\n return;\n if (--p.Nc === 0)\n p.out._c();\n };\n return CombineListener;\n}());\nvar Combine = /** @class */ (function () {\n function Combine(insArr) {\n this.type = 'combine';\n this.insArr = insArr;\n this.out = NO;\n this.ils = [];\n this.Nc = this.Nn = 0;\n this.vals = [];\n }\n Combine.prototype.up = function (t, i) {\n var v = this.vals[i];\n var Nn = !this.Nn ? 0 : v === NO ? --this.Nn : this.Nn;\n this.vals[i] = t;\n return Nn === 0;\n };\n Combine.prototype._start = function (out) {\n this.out = out;\n var s = this.insArr;\n var n = this.Nc = this.Nn = s.length;\n var vals = this.vals = new Array(n);\n if (n === 0) {\n out._n([]);\n out._c();\n }\n else {\n for (var i = 0; i < n; i++) {\n vals[i] = NO;\n s[i]._add(new CombineListener(i, out, this));\n }\n }\n };\n Combine.prototype._stop = function () {\n var s = this.insArr;\n var n = s.length;\n var ils = this.ils;\n for (var i = 0; i < n; i++)\n s[i]._remove(ils[i]);\n this.out = NO;\n this.ils = [];\n this.vals = [];\n };\n return Combine;\n}());\nvar FromArray = /** @class */ (function () {\n function FromArray(a) {\n this.type = 'fromArray';\n this.a = a;\n }\n FromArray.prototype._start = function (out) {\n var a = this.a;\n for (var i = 0, n = a.length; i < n; i++)\n out._n(a[i]);\n out._c();\n };\n FromArray.prototype._stop = function () {\n };\n return FromArray;\n}());\nvar FromPromise = /** @class */ (function () {\n function FromPromise(p) {\n this.type = 'fromPromise';\n this.on = false;\n this.p = p;\n }\n FromPromise.prototype._start = function (out) {\n var prod = this;\n this.on = true;\n this.p.then(function (v) {\n if (prod.on) {\n out._n(v);\n out._c();\n }\n }, function (e) {\n out._e(e);\n }).then(noop, function (err) {\n setTimeout(function () { throw err; });\n });\n };\n FromPromise.prototype._stop = function () {\n this.on = false;\n };\n return FromPromise;\n}());\nvar Periodic = /** @class */ (function () {\n function Periodic(period) {\n this.type = 'periodic';\n this.period = period;\n this.intervalID = -1;\n this.i = 0;\n }\n Periodic.prototype._start = function (out) {\n var self = this;\n function intervalHandler() { out._n(self.i++); }\n this.intervalID = setInterval(intervalHandler, this.period);\n };\n Periodic.prototype._stop = function () {\n if (this.intervalID !== -1)\n clearInterval(this.intervalID);\n this.intervalID = -1;\n this.i = 0;\n };\n return Periodic;\n}());\nvar Debug = /** @class */ (function () {\n function Debug(ins, arg) {\n this.type = 'debug';\n this.ins = ins;\n this.out = NO;\n this.s = noop;\n this.l = '';\n if (typeof arg === 'string')\n this.l = arg;\n else if (typeof arg === 'function')\n this.s = arg;\n }\n Debug.prototype._start = function (out) {\n this.out = out;\n this.ins._add(this);\n };\n Debug.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n Debug.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n var s = this.s, l = this.l;\n if (s !== noop) {\n try {\n s(t);\n }\n catch (e) {\n u._e(e);\n }\n }\n else if (l)\n console.log(l + ':', t);\n else\n console.log(t);\n u._n(t);\n };\n Debug.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Debug.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return Debug;\n}());\nvar Drop = /** @class */ (function () {\n function Drop(max, ins) {\n this.type = 'drop';\n this.ins = ins;\n this.out = NO;\n this.max = max;\n this.dropped = 0;\n }\n Drop.prototype._start = function (out) {\n this.out = out;\n this.dropped = 0;\n this.ins._add(this);\n };\n Drop.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n Drop.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n if (this.dropped++ >= this.max)\n u._n(t);\n };\n Drop.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Drop.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return Drop;\n}());\nvar EndWhenListener = /** @class */ (function () {\n function EndWhenListener(out, op) {\n this.out = out;\n this.op = op;\n }\n EndWhenListener.prototype._n = function () {\n this.op.end();\n };\n EndWhenListener.prototype._e = function (err) {\n this.out._e(err);\n };\n EndWhenListener.prototype._c = function () {\n this.op.end();\n };\n return EndWhenListener;\n}());\nvar EndWhen = /** @class */ (function () {\n function EndWhen(o, ins) {\n this.type = 'endWhen';\n this.ins = ins;\n this.out = NO;\n this.o = o;\n this.oil = NO_IL;\n }\n EndWhen.prototype._start = function (out) {\n this.out = out;\n this.o._add(this.oil = new EndWhenListener(out, this));\n this.ins._add(this);\n };\n EndWhen.prototype._stop = function () {\n this.ins._remove(this);\n this.o._remove(this.oil);\n this.out = NO;\n this.oil = NO_IL;\n };\n EndWhen.prototype.end = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n EndWhen.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n u._n(t);\n };\n EndWhen.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n EndWhen.prototype._c = function () {\n this.end();\n };\n return EndWhen;\n}());\nvar Filter = /** @class */ (function () {\n function Filter(passes, ins) {\n this.type = 'filter';\n this.ins = ins;\n this.out = NO;\n this.f = passes;\n }\n Filter.prototype._start = function (out) {\n this.out = out;\n this.ins._add(this);\n };\n Filter.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n Filter.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n var r = _try(this, t, u);\n if (r === NO || !r)\n return;\n u._n(t);\n };\n Filter.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Filter.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return Filter;\n}());\nvar FlattenListener = /** @class */ (function () {\n function FlattenListener(out, op) {\n this.out = out;\n this.op = op;\n }\n FlattenListener.prototype._n = function (t) {\n this.out._n(t);\n };\n FlattenListener.prototype._e = function (err) {\n this.out._e(err);\n };\n FlattenListener.prototype._c = function () {\n this.op.inner = NO;\n this.op.less();\n };\n return FlattenListener;\n}());\nvar Flatten = /** @class */ (function () {\n function Flatten(ins) {\n this.type = 'flatten';\n this.ins = ins;\n this.out = NO;\n this.open = true;\n this.inner = NO;\n this.il = NO_IL;\n }\n Flatten.prototype._start = function (out) {\n this.out = out;\n this.open = true;\n this.inner = NO;\n this.il = NO_IL;\n this.ins._add(this);\n };\n Flatten.prototype._stop = function () {\n this.ins._remove(this);\n if (this.inner !== NO)\n this.inner._remove(this.il);\n this.out = NO;\n this.open = true;\n this.inner = NO;\n this.il = NO_IL;\n };\n Flatten.prototype.less = function () {\n var u = this.out;\n if (u === NO)\n return;\n if (!this.open && this.inner === NO)\n u._c();\n };\n Flatten.prototype._n = function (s) {\n var u = this.out;\n if (u === NO)\n return;\n var _a = this, inner = _a.inner, il = _a.il;\n if (inner !== NO && il !== NO_IL)\n inner._remove(il);\n (this.inner = s)._add(this.il = new FlattenListener(u, this));\n };\n Flatten.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Flatten.prototype._c = function () {\n this.open = false;\n this.less();\n };\n return Flatten;\n}());\nvar Fold = /** @class */ (function () {\n function Fold(f, seed, ins) {\n var _this = this;\n this.type = 'fold';\n this.ins = ins;\n this.out = NO;\n this.f = function (t) { return f(_this.acc, t); };\n this.acc = this.seed = seed;\n }\n Fold.prototype._start = function (out) {\n this.out = out;\n this.acc = this.seed;\n out._n(this.acc);\n this.ins._add(this);\n };\n Fold.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n this.acc = this.seed;\n };\n Fold.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n var r = _try(this, t, u);\n if (r === NO)\n return;\n u._n(this.acc = r);\n };\n Fold.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Fold.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return Fold;\n}());\nvar Last = /** @class */ (function () {\n function Last(ins) {\n this.type = 'last';\n this.ins = ins;\n this.out = NO;\n this.has = false;\n this.val = NO;\n }\n Last.prototype._start = function (out) {\n this.out = out;\n this.has = false;\n this.ins._add(this);\n };\n Last.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n this.val = NO;\n };\n Last.prototype._n = function (t) {\n this.has = true;\n this.val = t;\n };\n Last.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Last.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n if (this.has) {\n u._n(this.val);\n u._c();\n }\n else\n u._e(new Error('last() failed because input stream completed'));\n };\n return Last;\n}());\nvar MapOp = /** @class */ (function () {\n function MapOp(project, ins) {\n this.type = 'map';\n this.ins = ins;\n this.out = NO;\n this.f = project;\n }\n MapOp.prototype._start = function (out) {\n this.out = out;\n this.ins._add(this);\n };\n MapOp.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n MapOp.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n var r = _try(this, t, u);\n if (r === NO)\n return;\n u._n(r);\n };\n MapOp.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n MapOp.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return MapOp;\n}());\nvar Remember = /** @class */ (function () {\n function Remember(ins) {\n this.type = 'remember';\n this.ins = ins;\n this.out = NO;\n }\n Remember.prototype._start = function (out) {\n this.out = out;\n this.ins._add(out);\n };\n Remember.prototype._stop = function () {\n this.ins._remove(this.out);\n this.out = NO;\n };\n return Remember;\n}());\nvar ReplaceError = /** @class */ (function () {\n function ReplaceError(replacer, ins) {\n this.type = 'replaceError';\n this.ins = ins;\n this.out = NO;\n this.f = replacer;\n }\n ReplaceError.prototype._start = function (out) {\n this.out = out;\n this.ins._add(this);\n };\n ReplaceError.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n ReplaceError.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n u._n(t);\n };\n ReplaceError.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n try {\n this.ins._remove(this);\n (this.ins = this.f(err))._add(this);\n }\n catch (e) {\n u._e(e);\n }\n };\n ReplaceError.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return ReplaceError;\n}());\nvar StartWith = /** @class */ (function () {\n function StartWith(ins, val) {\n this.type = 'startWith';\n this.ins = ins;\n this.out = NO;\n this.val = val;\n }\n StartWith.prototype._start = function (out) {\n this.out = out;\n this.out._n(this.val);\n this.ins._add(out);\n };\n StartWith.prototype._stop = function () {\n this.ins._remove(this.out);\n this.out = NO;\n };\n return StartWith;\n}());\nvar Take = /** @class */ (function () {\n function Take(max, ins) {\n this.type = 'take';\n this.ins = ins;\n this.out = NO;\n this.max = max;\n this.taken = 0;\n }\n Take.prototype._start = function (out) {\n this.out = out;\n this.taken = 0;\n if (this.max <= 0)\n out._c();\n else\n this.ins._add(this);\n };\n Take.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n Take.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n var m = ++this.taken;\n if (m < this.max)\n u._n(t);\n else if (m === this.max) {\n u._n(t);\n u._c();\n }\n };\n Take.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Take.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return Take;\n}());\nvar Stream = /** @class */ (function () {\n function Stream(producer) {\n this._prod = producer || NO;\n this._ils = [];\n this._stopID = NO;\n this._dl = NO;\n this._d = false;\n this._target = null;\n this._err = NO;\n }\n Stream.prototype._n = function (t) {\n var a = this._ils;\n var L = a.length;\n if (this._d)\n this._dl._n(t);\n if (L == 1)\n a[0]._n(t);\n else if (L == 0)\n return;\n else {\n var b = cp(a);\n for (var i = 0; i < L; i++)\n b[i]._n(t);\n }\n };\n Stream.prototype._e = function (err) {\n if (this._err !== NO)\n return;\n this._err = err;\n var a = this._ils;\n var L = a.length;\n this._x();\n if (this._d)\n this._dl._e(err);\n if (L == 1)\n a[0]._e(err);\n else if (L == 0)\n return;\n else {\n var b = cp(a);\n for (var i = 0; i < L; i++)\n b[i]._e(err);\n }\n if (!this._d && L == 0)\n throw this._err;\n };\n Stream.prototype._c = function () {\n var a = this._ils;\n var L = a.length;\n this._x();\n if (this._d)\n this._dl._c();\n if (L == 1)\n a[0]._c();\n else if (L == 0)\n return;\n else {\n var b = cp(a);\n for (var i = 0; i < L; i++)\n b[i]._c();\n }\n };\n Stream.prototype._x = function () {\n if (this._ils.length === 0)\n return;\n if (this._prod !== NO)\n this._prod._stop();\n this._err = NO;\n this._ils = [];\n };\n Stream.prototype._stopNow = function () {\n // WARNING: code that calls this method should\n // first check if this._prod is valid (not `NO`)\n this._prod._stop();\n this._err = NO;\n this._stopID = NO;\n };\n Stream.prototype._add = function (il) {\n var ta = this._target;\n if (ta)\n return ta._add(il);\n var a = this._ils;\n a.push(il);\n if (a.length > 1)\n return;\n if (this._stopID !== NO) {\n clearTimeout(this._stopID);\n this._stopID = NO;\n }\n else {\n var p = this._prod;\n if (p !== NO)\n p._start(this);\n }\n };\n Stream.prototype._remove = function (il) {\n var _this = this;\n var ta = this._target;\n if (ta)\n return ta._remove(il);\n var a = this._ils;\n var i = a.indexOf(il);\n if (i > -1) {\n a.splice(i, 1);\n if (this._prod !== NO && a.length <= 0) {\n this._err = NO;\n this._stopID = setTimeout(function () { return _this._stopNow(); });\n }\n else if (a.length === 1) {\n this._pruneCycles();\n }\n }\n };\n // If all paths stemming from `this` stream eventually end at `this`\n // stream, then we remove the single listener of `this` stream, to\n // force it to end its execution and dispose resources. This method\n // assumes as a precondition that this._ils has just one listener.\n Stream.prototype._pruneCycles = function () {\n if (this._hasNoSinks(this, []))\n this._remove(this._ils[0]);\n };\n // Checks whether *there is no* path starting from `x` that leads to an end\n // listener (sink) in the stream graph, following edges A->B where B is a\n // listener of A. This means these paths constitute a cycle somehow. Is given\n // a trace of all visited nodes so far.\n Stream.prototype._hasNoSinks = function (x, trace) {\n if (trace.indexOf(x) !== -1)\n return true;\n else if (x.out === this)\n return true;\n else if (x.out && x.out !== NO)\n return this._hasNoSinks(x.out, trace.concat(x));\n else if (x._ils) {\n for (var i = 0, N = x._ils.length; i < N; i++)\n if (!this._hasNoSinks(x._ils[i], trace.concat(x)))\n return false;\n return true;\n }\n else\n return false;\n };\n Stream.prototype.ctor = function () {\n return this instanceof MemoryStream ? MemoryStream : Stream;\n };\n /**\n * Adds a Listener to the Stream.\n *\n * @param {Listener} listener\n */\n Stream.prototype.addListener = function (listener) {\n listener._n = listener.next || noop;\n listener._e = listener.error || noop;\n listener._c = listener.complete || noop;\n this._add(listener);\n };\n /**\n * Removes a Listener from the Stream, assuming the Listener was added to it.\n *\n * @param {Listener} listener\n */\n Stream.prototype.removeListener = function (listener) {\n this._remove(listener);\n };\n /**\n * Adds a Listener to the Stream returning a Subscription to remove that\n * listener.\n *\n * @param {Listener} listener\n * @returns {Subscription}\n */\n Stream.prototype.subscribe = function (listener) {\n this.addListener(listener);\n return new StreamSub(this, listener);\n };\n /**\n * Add interop between most.js and RxJS 5\n *\n * @returns {Stream}\n */\n Stream.prototype[$$observable] = function () {\n return this;\n };\n /**\n * Creates a new Stream given a Producer.\n *\n * @factory true\n * @param {Producer} producer An optional Producer that dictates how to\n * start, generate events, and stop the Stream.\n * @return {Stream}\n */\n Stream.create = function (producer) {\n if (producer) {\n if (typeof producer.start !== 'function'\n || typeof producer.stop !== 'function')\n throw new Error('producer requires both start and stop functions');\n internalizeProducer(producer); // mutates the input\n }\n return new Stream(producer);\n };\n /**\n * Creates a new MemoryStream given a Producer.\n *\n * @factory true\n * @param {Producer} producer An optional Producer that dictates how to\n * start, generate events, and stop the Stream.\n * @return {MemoryStream}\n */\n Stream.createWithMemory = function (producer) {\n if (producer)\n internalizeProducer(producer); // mutates the input\n return new MemoryStream(producer);\n };\n /**\n * Creates a Stream that does nothing when started. It never emits any event.\n *\n * Marble diagram:\n *\n * ```text\n * never\n * -----------------------\n * ```\n *\n * @factory true\n * @return {Stream}\n */\n Stream.never = function () {\n return new Stream({ _start: noop, _stop: noop });\n };\n /**\n * Creates a Stream that immediately emits the \"complete\" notification when\n * started, and that's it.\n *\n * Marble diagram:\n *\n * ```text\n * empty\n * -|\n * ```\n *\n * @factory true\n * @return {Stream}\n */\n Stream.empty = function () {\n return new Stream({\n _start: function (il) { il._c(); },\n _stop: noop,\n });\n };\n /**\n * Creates a Stream that immediately emits an \"error\" notification with the\n * value you passed as the `error` argument when the stream starts, and that's\n * it.\n *\n * Marble diagram:\n *\n * ```text\n * throw(X)\n * -X\n * ```\n *\n * @factory true\n * @param error The error event to emit on the created stream.\n * @return {Stream}\n */\n Stream.throw = function (error) {\n return new Stream({\n _start: function (il) { il._e(error); },\n _stop: noop,\n });\n };\n /**\n * Creates a stream from an Array, Promise, or an Observable.\n *\n * @factory true\n * @param {Array|PromiseLike|Observable} input The input to make a stream from.\n * @return {Stream}\n */\n Stream.from = function (input) {\n if (typeof input[$$observable] === 'function')\n return Stream.fromObservable(input);\n else if (typeof input.then === 'function')\n return Stream.fromPromise(input);\n else if (Array.isArray(input))\n return Stream.fromArray(input);\n throw new TypeError(\"Type of input to from() must be an Array, Promise, or Observable\");\n };\n /**\n * Creates a Stream that immediately emits the arguments that you give to\n * *of*, then completes.\n *\n * Marble diagram:\n *\n * ```text\n * of(1,2,3)\n * 123|\n * ```\n *\n * @factory true\n * @param a The first value you want to emit as an event on the stream.\n * @param b The second value you want to emit as an event on the stream. One\n * or more of these values may be given as arguments.\n * @return {Stream}\n */\n Stream.of = function () {\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i] = arguments[_i];\n }\n return Stream.fromArray(items);\n };\n /**\n * Converts an array to a stream. The returned stream will emit synchronously\n * all the items in the array, and then complete.\n *\n * Marble diagram:\n *\n * ```text\n * fromArray([1,2,3])\n * 123|\n * ```\n *\n * @factory true\n * @param {Array} array The array to be converted as a stream.\n * @return {Stream}\n */\n Stream.fromArray = function (array) {\n return new Stream(new FromArray(array));\n };\n /**\n * Converts a promise to a stream. The returned stream will emit the resolved\n * value of the promise, and then complete. However, if the promise is\n * rejected, the stream will emit the corresponding error.\n *\n * Marble diagram:\n *\n * ```text\n * fromPromise( ----42 )\n * -----------------42|\n * ```\n *\n * @factory true\n * @param {PromiseLike} promise The promise to be converted as a stream.\n * @return {Stream}\n */\n Stream.fromPromise = function (promise) {\n return new Stream(new FromPromise(promise));\n };\n /**\n * Converts an Observable into a Stream.\n *\n * @factory true\n * @param {any} observable The observable to be converted as a stream.\n * @return {Stream}\n */\n Stream.fromObservable = function (obs) {\n if (obs.endWhen !== undefined)\n return obs;\n var o = typeof obs[$$observable] === 'function' ? obs[$$observable]() : obs;\n return new Stream(new FromObservable(o));\n };\n /**\n * Creates a stream that periodically emits incremental numbers, every\n * `period` milliseconds.\n *\n * Marble diagram:\n *\n * ```text\n * periodic(1000)\n * ---0---1---2---3---4---...\n * ```\n *\n * @factory true\n * @param {number} period The interval in milliseconds to use as a rate of\n * emission.\n * @return {Stream}\n */\n Stream.periodic = function (period) {\n return new Stream(new Periodic(period));\n };\n Stream.prototype._map = function (project) {\n return new (this.ctor())(new MapOp(project, this));\n };\n /**\n * Transforms each event from the input Stream through a `project` function,\n * to get a Stream that emits those transformed events.\n *\n * Marble diagram:\n *\n * ```text\n * --1---3--5-----7------\n * map(i => i * 10)\n * --10--30-50----70-----\n * ```\n *\n * @param {Function} project A function of type `(t: T) => U` that takes event\n * `t` of type `T` from the input Stream and produces an event of type `U`, to\n * be emitted on the output Stream.\n * @return {Stream}\n */\n Stream.prototype.map = function (project) {\n return this._map(project);\n };\n /**\n * It's like `map`, but transforms each input event to always the same\n * constant value on the output Stream.\n *\n * Marble diagram:\n *\n * ```text\n * --1---3--5-----7-----\n * mapTo(10)\n * --10--10-10----10----\n * ```\n *\n * @param projectedValue A value to emit on the output Stream whenever the\n * input Stream emits any value.\n * @return {Stream}\n */\n Stream.prototype.mapTo = function (projectedValue) {\n var s = this.map(function () { return projectedValue; });\n var op = s._prod;\n op.type = 'mapTo';\n return s;\n };\n /**\n * Only allows events that pass the test given by the `passes` argument.\n *\n * Each event from the input stream is given to the `passes` function. If the\n * function returns `true`, the event is forwarded to the output stream,\n * otherwise it is ignored and not forwarded.\n *\n * Marble diagram:\n *\n * ```text\n * --1---2--3-----4-----5---6--7-8--\n * filter(i => i % 2 === 0)\n * ------2--------4---------6----8--\n * ```\n *\n * @param {Function} passes A function of type `(t: T) => boolean` that takes\n * an event from the input stream and checks if it passes, by returning a\n * boolean.\n * @return {Stream}\n */\n Stream.prototype.filter = function (passes) {\n var p = this._prod;\n if (p instanceof Filter)\n return new Stream(new Filter(and(p.f, passes), p.ins));\n return new Stream(new Filter(passes, this));\n };\n /**\n * Lets the first `amount` many events from the input stream pass to the\n * output stream, then makes the output stream complete.\n *\n * Marble diagram:\n *\n * ```text\n * --a---b--c----d---e--\n * take(3)\n * --a---b--c|\n * ```\n *\n * @param {number} amount How many events to allow from the input stream\n * before completing the output stream.\n * @return {Stream}\n */\n Stream.prototype.take = function (amount) {\n return new (this.ctor())(new Take(amount, this));\n };\n /**\n * Ignores the first `amount` many events from the input stream, and then\n * after that starts forwarding events from the input stream to the output\n * stream.\n *\n * Marble diagram:\n *\n * ```text\n * --a---b--c----d---e--\n * drop(3)\n * --------------d---e--\n * ```\n *\n * @param {number} amount How many events to ignore from the input stream\n * before forwarding all events from the input stream to the output stream.\n * @return {Stream}\n */\n Stream.prototype.drop = function (amount) {\n return new Stream(new Drop(amount, this));\n };\n /**\n * When the input stream completes, the output stream will emit the last event\n * emitted by the input stream, and then will also complete.\n *\n * Marble diagram:\n *\n * ```text\n * --a---b--c--d----|\n * last()\n * -----------------d|\n * ```\n *\n * @return {Stream}\n */\n Stream.prototype.last = function () {\n return new Stream(new Last(this));\n };\n /**\n * Prepends the given `initial` value to the sequence of events emitted by the\n * input stream. The returned stream is a MemoryStream, which means it is\n * already `remember()`'d.\n *\n * Marble diagram:\n *\n * ```text\n * ---1---2-----3---\n * startWith(0)\n * 0--1---2-----3---\n * ```\n *\n * @param initial The value or event to prepend.\n * @return {MemoryStream}\n */\n Stream.prototype.startWith = function (initial) {\n return new MemoryStream(new StartWith(this, initial));\n };\n /**\n * Uses another stream to determine when to complete the current stream.\n *\n * When the given `other` stream emits an event or completes, the output\n * stream will complete. Before that happens, the output stream will behaves\n * like the input stream.\n *\n * Marble diagram:\n *\n * ```text\n * ---1---2-----3--4----5----6---\n * endWhen( --------a--b--| )\n * ---1---2-----3--4--|\n * ```\n *\n * @param other Some other stream that is used to know when should the output\n * stream of this operator complete.\n * @return {Stream}\n */\n Stream.prototype.endWhen = function (other) {\n return new (this.ctor())(new EndWhen(other, this));\n };\n /**\n * \"Folds\" the stream onto itself.\n *\n * Combines events from the past throughout\n * the entire execution of the input stream, allowing you to accumulate them\n * together. It's essentially like `Array.prototype.reduce`. The returned\n * stream is a MemoryStream, which means it is already `remember()`'d.\n *\n * The output stream starts by emitting the `seed` which you give as argument.\n * Then, when an event happens on the input stream, it is combined with that\n * seed value through the `accumulate` function, and the output value is\n * emitted on the output stream. `fold` remembers that output value as `acc`\n * (\"accumulator\"), and then when a new input event `t` happens, `acc` will be\n * combined with that to produce the new `acc` and so forth.\n *\n * Marble diagram:\n *\n * ```text\n * ------1-----1--2----1----1------\n * fold((acc, x) => acc + x, 3)\n * 3-----4-----5--7----8----9------\n * ```\n *\n * @param {Function} accumulate A function of type `(acc: R, t: T) => R` that\n * takes the previous accumulated value `acc` and the incoming event from the\n * input stream and produces the new accumulated value.\n * @param seed The initial accumulated value, of type `R`.\n * @return {MemoryStream}\n */\n Stream.prototype.fold = function (accumulate, seed) {\n return new MemoryStream(new Fold(accumulate, seed, this));\n };\n /**\n * Replaces an error with another stream.\n *\n * When (and if) an error happens on the input stream, instead of forwarding\n * that error to the output stream, *replaceError* will call the `replace`\n * function which returns the stream that the output stream will replicate.\n * And, in case that new stream also emits an error, `replace` will be called\n * again to get another stream to start replicating.\n *\n * Marble diagram:\n *\n * ```text\n * --1---2-----3--4-----X\n * replaceError( () => --10--| )\n * --1---2-----3--4--------10--|\n * ```\n *\n * @param {Function} replace A function of type `(err) => Stream` that takes\n * the error that occurred on the input stream or on the previous replacement\n * stream and returns a new stream. The output stream will behave like the\n * stream that this function returns.\n * @return {Stream}\n */\n Stream.prototype.replaceError = function (replace) {\n return new (this.ctor())(new ReplaceError(replace, this));\n };\n /**\n * Flattens a \"stream of streams\", handling only one nested stream at a time\n * (no concurrency).\n *\n * If the input stream is a stream that emits streams, then this operator will\n * return an output stream which is a flat stream: emits regular events. The\n * flattening happens without concurrency. It works like this: when the input\n * stream emits a nested stream, *flatten* will start imitating that nested\n * one. However, as soon as the next nested stream is emitted on the input\n * stream, *flatten* will forget the previous nested one it was imitating, and\n * will start imitating the new nested one.\n *\n * Marble diagram:\n *\n * ```text\n * --+--------+---------------\n * \\ \\\n * \\ ----1----2---3--\n * --a--b----c----d--------\n * flatten\n * -----a--b------1----2---3--\n * ```\n *\n * @return {Stream}\n */\n Stream.prototype.flatten = function () {\n return new Stream(new Flatten(this));\n };\n /**\n * Passes the input stream to a custom operator, to produce an output stream.\n *\n * *compose* is a handy way of using an existing function in a chained style.\n * Instead of writing `outStream = f(inStream)` you can write\n * `outStream = inStream.compose(f)`.\n *\n * @param {function} operator A function that takes a stream as input and\n * returns a stream as well.\n * @return {Stream}\n */\n Stream.prototype.compose = function (operator) {\n return operator(this);\n };\n /**\n * Returns an output stream that behaves like the input stream, but also\n * remembers the most recent event that happens on the input stream, so that a\n * newly added listener will immediately receive that memorised event.\n *\n * @return {MemoryStream}\n */\n Stream.prototype.remember = function () {\n return new MemoryStream(new Remember(this));\n };\n /**\n * Returns an output stream that identically behaves like the input stream,\n * but also runs a `spy` function for each event, to help you debug your app.\n *\n * *debug* takes a `spy` function as argument, and runs that for each event\n * happening on the input stream. If you don't provide the `spy` argument,\n * then *debug* will just `console.log` each event. This helps you to\n * understand the flow of events through some operator chain.\n *\n * Please note that if the output stream has no listeners, then it will not\n * start, which means `spy` will never run because no actual event happens in\n * that case.\n *\n * Marble diagram:\n *\n * ```text\n * --1----2-----3-----4--\n * debug\n * --1----2-----3-----4--\n * ```\n *\n * @param {function} labelOrSpy A string to use as the label when printing\n * debug information on the console, or a 'spy' function that takes an event\n * as argument, and does not need to return anything.\n * @return {Stream}\n */\n Stream.prototype.debug = function (labelOrSpy) {\n return new (this.ctor())(new Debug(this, labelOrSpy));\n };\n /**\n * *imitate* changes this current Stream to emit the same events that the\n * `other` given Stream does. This method returns nothing.\n *\n * This method exists to allow one thing: **circular dependency of streams**.\n * For instance, let's imagine that for some reason you need to create a\n * circular dependency where stream `first$` depends on stream `second$`\n * which in turn depends on `first$`:\n *\n * \n * ```js\n * import delay from 'xstream/extra/delay'\n *\n * var first$ = second$.map(x => x * 10).take(3);\n * var second$ = first$.map(x => x + 1).startWith(1).compose(delay(100));\n * ```\n *\n * However, that is invalid JavaScript, because `second$` is undefined\n * on the first line. This is how *imitate* can help solve it:\n *\n * ```js\n * import delay from 'xstream/extra/delay'\n *\n * var secondProxy$ = xs.create();\n * var first$ = secondProxy$.map(x => x * 10).take(3);\n * var second$ = first$.map(x => x + 1).startWith(1).compose(delay(100));\n * secondProxy$.imitate(second$);\n * ```\n *\n * We create `secondProxy$` before the others, so it can be used in the\n * declaration of `first$`. Then, after both `first$` and `second$` are\n * defined, we hook `secondProxy$` with `second$` with `imitate()` to tell\n * that they are \"the same\". `imitate` will not trigger the start of any\n * stream, it just binds `secondProxy$` and `second$` together.\n *\n * The following is an example where `imitate()` is important in Cycle.js\n * applications. A parent component contains some child components. A child\n * has an action stream which is given to the parent to define its state:\n *\n * \n * ```js\n * const childActionProxy$ = xs.create();\n * const parent = Parent({...sources, childAction$: childActionProxy$});\n * const childAction$ = parent.state$.map(s => s.child.action$).flatten();\n * childActionProxy$.imitate(childAction$);\n * ```\n *\n * Note, though, that **`imitate()` does not support MemoryStreams**. If we\n * would attempt to imitate a MemoryStream in a circular dependency, we would\n * either get a race condition (where the symptom would be \"nothing happens\")\n * or an infinite cyclic emission of values. It's useful to think about\n * MemoryStreams as cells in a spreadsheet. It doesn't make any sense to\n * define a spreadsheet cell `A1` with a formula that depends on `B1` and\n * cell `B1` defined with a formula that depends on `A1`.\n *\n * If you find yourself wanting to use `imitate()` with a\n * MemoryStream, you should rework your code around `imitate()` to use a\n * Stream instead. Look for the stream in the circular dependency that\n * represents an event stream, and that would be a candidate for creating a\n * proxy Stream which then imitates the target Stream.\n *\n * @param {Stream} target The other stream to imitate on the current one. Must\n * not be a MemoryStream.\n */\n Stream.prototype.imitate = function (target) {\n if (target instanceof MemoryStream)\n throw new Error('A MemoryStream was given to imitate(), but it only ' +\n 'supports a Stream. Read more about this restriction here: ' +\n 'https://github.com/staltz/xstream#faq');\n this._target = target;\n for (var ils = this._ils, N = ils.length, i = 0; i < N; i++)\n target._add(ils[i]);\n this._ils = [];\n };\n /**\n * Forces the Stream to emit the given value to its listeners.\n *\n * As the name indicates, if you use this, you are most likely doing something\n * The Wrong Way. Please try to understand the reactive way before using this\n * method. Use it only when you know what you are doing.\n *\n * @param value The \"next\" value you want to broadcast to all listeners of\n * this Stream.\n */\n Stream.prototype.shamefullySendNext = function (value) {\n this._n(value);\n };\n /**\n * Forces the Stream to emit the given error to its listeners.\n *\n * As the name indicates, if you use this, you are most likely doing something\n * The Wrong Way. Please try to understand the reactive way before using this\n * method. Use it only when you know what you are doing.\n *\n * @param {any} error The error you want to broadcast to all the listeners of\n * this Stream.\n */\n Stream.prototype.shamefullySendError = function (error) {\n this._e(error);\n };\n /**\n * Forces the Stream to emit the \"completed\" event to its listeners.\n *\n * As the name indicates, if you use this, you are most likely doing something\n * The Wrong Way. Please try to understand the reactive way before using this\n * method. Use it only when you know what you are doing.\n */\n Stream.prototype.shamefullySendComplete = function () {\n this._c();\n };\n /**\n * Adds a \"debug\" listener to the stream. There can only be one debug\n * listener, that's why this is 'setDebugListener'. To remove the debug\n * listener, just call setDebugListener(null).\n *\n * A debug listener is like any other listener. The only difference is that a\n * debug listener is \"stealthy\": its presence/absence does not trigger the\n * start/stop of the stream (or the producer inside the stream). This is\n * useful so you can inspect what is going on without changing the behavior\n * of the program. If you have an idle stream and you add a normal listener to\n * it, the stream will start executing. But if you set a debug listener on an\n * idle stream, it won't start executing (not until the first normal listener\n * is added).\n *\n * As the name indicates, we don't recommend using this method to build app\n * logic. In fact, in most cases the debug operator works just fine. Only use\n * this one if you know what you're doing.\n *\n * @param {Listener} listener\n */\n Stream.prototype.setDebugListener = function (listener) {\n if (!listener) {\n this._d = false;\n this._dl = NO;\n }\n else {\n this._d = true;\n listener._n = listener.next || noop;\n listener._e = listener.error || noop;\n listener._c = listener.complete || noop;\n this._dl = listener;\n }\n };\n /**\n * Blends multiple streams together, emitting events from all of them\n * concurrently.\n *\n * *merge* takes multiple streams as arguments, and creates a stream that\n * behaves like each of the argument streams, in parallel.\n *\n * Marble diagram:\n *\n * ```text\n * --1----2-----3--------4---\n * ----a-----b----c---d------\n * merge\n * --1-a--2--b--3-c---d--4---\n * ```\n *\n * @factory true\n * @param {Stream} stream1 A stream to merge together with other streams.\n * @param {Stream} stream2 A stream to merge together with other streams. Two\n * or more streams may be given as arguments.\n * @return {Stream}\n */\n Stream.merge = function merge() {\n var streams = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n streams[_i] = arguments[_i];\n }\n return new Stream(new Merge(streams));\n };\n /**\n * Combines multiple input streams together to return a stream whose events\n * are arrays that collect the latest events from each input stream.\n *\n * *combine* internally remembers the most recent event from each of the input\n * streams. When any of the input streams emits an event, that event together\n * with all the other saved events are combined into an array. That array will\n * be emitted on the output stream. It's essentially a way of joining together\n * the events from multiple streams.\n *\n * Marble diagram:\n *\n * ```text\n * --1----2-----3--------4---\n * ----a-----b-----c--d------\n * combine\n * ----1a-2a-2b-3b-3c-3d-4d--\n * ```\n *\n * @factory true\n * @param {Stream} stream1 A stream to combine together with other streams.\n * @param {Stream} stream2 A stream to combine together with other streams.\n * Multiple streams, not just two, may be given as arguments.\n * @return {Stream}\n */\n Stream.combine = function combine() {\n var streams = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n streams[_i] = arguments[_i];\n }\n return new Stream(new Combine(streams));\n };\n return Stream;\n}());\nexports.Stream = Stream;\nvar MemoryStream = /** @class */ (function (_super) {\n __extends(MemoryStream, _super);\n function MemoryStream(producer) {\n var _this = _super.call(this, producer) || this;\n _this._has = false;\n return _this;\n }\n MemoryStream.prototype._n = function (x) {\n this._v = x;\n this._has = true;\n _super.prototype._n.call(this, x);\n };\n MemoryStream.prototype._add = function (il) {\n var ta = this._target;\n if (ta)\n return ta._add(il);\n var a = this._ils;\n a.push(il);\n if (a.length > 1) {\n if (this._has)\n il._n(this._v);\n return;\n }\n if (this._stopID !== NO) {\n if (this._has)\n il._n(this._v);\n clearTimeout(this._stopID);\n this._stopID = NO;\n }\n else if (this._has)\n il._n(this._v);\n else {\n var p = this._prod;\n if (p !== NO)\n p._start(this);\n }\n };\n MemoryStream.prototype._stopNow = function () {\n this._has = false;\n _super.prototype._stopNow.call(this);\n };\n MemoryStream.prototype._x = function () {\n this._has = false;\n _super.prototype._x.call(this);\n };\n MemoryStream.prototype.map = function (project) {\n return this._map(project);\n };\n MemoryStream.prototype.mapTo = function (projectedValue) {\n return _super.prototype.mapTo.call(this, projectedValue);\n };\n MemoryStream.prototype.take = function (amount) {\n return _super.prototype.take.call(this, amount);\n };\n MemoryStream.prototype.endWhen = function (other) {\n return _super.prototype.endWhen.call(this, other);\n };\n MemoryStream.prototype.replaceError = function (replace) {\n return _super.prototype.replaceError.call(this, replace);\n };\n MemoryStream.prototype.remember = function () {\n return this;\n };\n MemoryStream.prototype.debug = function (labelOrSpy) {\n return _super.prototype.debug.call(this, labelOrSpy);\n };\n return MemoryStream;\n}(Stream));\nexports.MemoryStream = MemoryStream;\nvar xs = Stream;\nexports.default = xs;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVEQUFrRTtBQUNsRSx5Q0FBMEQ7QUFFMUQsSUFBTSxZQUFZLEdBQUcsa0JBQXdCLENBQUMsd0JBQWEsRUFBRSxDQUFDLENBQUM7QUFFL0QsSUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBOC9ETCxnQkFBRTtBQTcvRFgsU0FBUyxJQUFJLEtBQUssQ0FBQztBQUVuQixTQUFTLEVBQUUsQ0FBSSxDQUFXO0lBQ3hCLElBQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDbkIsSUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRCxTQUFTLEdBQUcsQ0FBSSxFQUFxQixFQUFFLEVBQXFCO0lBQzFELE9BQU8sU0FBUyxLQUFLLENBQUMsQ0FBSTtRQUN4QixPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQU1ELFNBQVMsSUFBSSxDQUFPLENBQW1CLEVBQUUsQ0FBSSxFQUFFLENBQWM7SUFDM0QsSUFBSTtRQUNGLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNmO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1IsT0FBTyxFQUFFLENBQUM7S0FDWDtBQUNILENBQUM7QUFRRCxJQUFNLEtBQUss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TCxVQUFNLFVBQWlEO1FBQ3JELE9BQU8saUJBQU0sS0FBSyxZQUFDLFVBQWlCLENBQW9CLENBQUM7SUFDM0QsQ0FBQztJQUNILG1CQUFDO0FBQUQsQ0FBQyxBQXhFRCxDQUFxQyxNQUFNLEdBd0UxQztBQXhFWSxvQ0FBWTtBQTJFekIsSUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDO0FBRWxCLGtCQUFlLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwb255ZmlsbFN5bWJvbE9ic2VydmFibGUgZnJvbSAnc3ltYm9sLW9ic2VydmFibGUvcG9ueWZpbGwnO1xuaW1wb3J0IHsgZ2V0UG9seWZpbGwgYXMgZ2V0R2xvYmFsVGhpcyB9IGZyb20gJ2dsb2JhbHRoaXMnO1xuXG5jb25zdCAkJG9ic2VydmFibGUgPSBwb255ZmlsbFN5bWJvbE9ic2VydmFibGUoZ2V0R2xvYmFsVGhpcygpKTtcblxuY29uc3QgTk8gPSB7fTtcbmZ1bmN0aW9uIG5vb3AoKSB7IH1cblxuZnVuY3Rpb24gY3A8VD4oYTogQXJyYXk8VD4pOiBBcnJheTxUPiB7XG4gIGNvbnN0IGwgPSBhLmxlbmd0aDtcbiAgY29uc3QgYiA9IEFycmF5KGwpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGw7ICsraSkgYltpXSA9IGFbaV07XG4gIHJldHVybiBiO1xufVxuXG5mdW5jdGlvbiBhbmQ8VD4oZjE6ICh0OiBUKSA9PiBib29sZWFuLCBmMjogKHQ6IFQpID0+IGJvb2xlYW4pOiAodDogVCkgPT4gYm9vbGVhbiB7XG4gIHJldHVybiBmdW5jdGlvbiBhbmRGbih0OiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGYxKHQpICYmIGYyKHQpO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgRkNvbnRhaW5lcjxULCBSPiB7XG4gIGYodDogVCk6IFI7XG59XG5cbmZ1bmN0aW9uIF90cnk8VCwgUj4oYzogRkNvbnRhaW5lcjxULCBSPiwgdDogVCwgdTogU3RyZWFtPGFueT4pOiBSIHwge30ge1xuICB0cnkge1xuICAgIHJldHVybiBjLmYodCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB1Ll9lKGUpO1xuICAgIHJldHVybiBOTztcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludGVybmFsTGlzdGVuZXI8VD4ge1xuICBfbjogKHY6IFQpID0+IHZvaWQ7XG4gIF9lOiAoZXJyOiBhbnkpID0+IHZvaWQ7XG4gIF9jOiAoKSA9PiB2b2lkO1xufVxuXG5jb25zdCBOT19JTDogSW50ZXJuYWxMaXN0ZW5lcjxhbnk+ID0ge1xuICBfbjogbm9vcCxcbiAgX2U6IG5vb3AsXG4gIF9jOiBub29wLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBJbnRlcm5hbFByb2R1Y2VyPFQ+IHtcbiAgX3N0YXJ0KGxpc3RlbmVyOiBJbnRlcm5hbExpc3RlbmVyPFQ+KTogdm9pZDtcbiAgX3N0b3A6ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3V0U2VuZGVyPFQ+IHtcbiAgb3V0OiBTdHJlYW08VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlcmF0b3I8VCwgUj4gZXh0ZW5kcyBJbnRlcm5hbFByb2R1Y2VyPFI+LCBJbnRlcm5hbExpc3RlbmVyPFQ+LCBPdXRTZW5kZXI8Uj4ge1xuICB0eXBlOiBzdHJpbmc7XG4gIGluczogU3RyZWFtPFQ+O1xuICBfc3RhcnQob3V0OiBTdHJlYW08Uj4pOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFnZ3JlZ2F0b3I8VCwgVT4gZXh0ZW5kcyBJbnRlcm5hbFByb2R1Y2VyPFU+LCBPdXRTZW5kZXI8VT4ge1xuICB0eXBlOiBzdHJpbmc7XG4gIGluc0FycjogQXJyYXk8U3RyZWFtPFQ+PjtcbiAgX3N0YXJ0KG91dDogU3RyZWFtPFU+KTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWNlcjxUPiB7XG4gIHN0YXJ0OiAobGlzdGVuZXI6IExpc3RlbmVyPFQ+KSA9PiB2b2lkO1xuICBzdG9wOiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RlbmVyPFQ+IHtcbiAgbmV4dDogKHg6IFQpID0+IHZvaWQ7XG4gIGVycm9yOiAoZXJyOiBhbnkpID0+IHZvaWQ7XG4gIGNvbXBsZXRlOiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1YnNjcmlwdGlvbiB7XG4gIHVuc3Vic2NyaWJlKCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJsZTxUPiB7XG4gIHN1YnNjcmliZShsaXN0ZW5lcjogTGlzdGVuZXI8VD4pOiBTdWJzY3JpcHRpb247XG59XG5cbi8vIG11dGF0ZXMgdGhlIGlucHV0XG5mdW5jdGlvbiBpbnRlcm5hbGl6ZVByb2R1Y2VyPFQ+KHByb2R1Y2VyOiBQcm9kdWNlcjxUPiAmIFBhcnRpYWw8SW50ZXJuYWxQcm9kdWNlcjxUPj4pIHtcbiAgcHJvZHVjZXIuX3N0YXJ0ID0gZnVuY3Rpb24gX3N0YXJ0KGlsOiBJbnRlcm5hbExpc3RlbmVyPFQ+ICYgUGFydGlhbDxMaXN0ZW5lcjxUPj4pIHtcbiAgICBpbC5uZXh0ID0gaWwuX247XG4gICAgaWwuZXJyb3IgPSBpbC5fZTtcbiAgICBpbC5jb21wbGV0ZSA9IGlsLl9jO1xuICAgIHRoaXMuc3RhcnQoaWwgYXMgTGlzdGVuZXI8VD4pO1xuICB9O1xuICBwcm9kdWNlci5fc3RvcCA9IHByb2R1Y2VyLnN0b3A7XG59XG5cbmNsYXNzIFN0cmVhbVN1YjxUPiBpbXBsZW1lbnRzIFN1YnNjcmlwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3N0cmVhbTogU3RyZWFtPFQ+LCBwcml2YXRlIF9saXN0ZW5lcjogSW50ZXJuYWxMaXN0ZW5lcjxUPikgeyB9XG5cbiAgdW5zdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgdGhpcy5fc3RyZWFtLl9yZW1vdmUodGhpcy5fbGlzdGVuZXIpO1xuICB9XG59XG5cbmNsYXNzIE9ic2VydmVyPFQ+IGltcGxlbWVudHMgTGlzdGVuZXI8VD4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9saXN0ZW5lcjogSW50ZXJuYWxMaXN0ZW5lcjxUPikgeyB9XG5cbiAgbmV4dCh2YWx1ZTogVCkge1xuICAgIHRoaXMuX2xpc3RlbmVyLl9uKHZhbHVlKTtcbiAgfVxuXG4gIGVycm9yKGVycjogYW55KSB7XG4gICAgdGhpcy5fbGlzdGVuZXIuX2UoZXJyKTtcbiAgfVxuXG4gIGNvbXBsZXRlKCkge1xuICAgIHRoaXMuX2xpc3RlbmVyLl9jKCk7XG4gIH1cbn1cblxuY2xhc3MgRnJvbU9ic2VydmFibGU8VD4gaW1wbGVtZW50cyBJbnRlcm5hbFByb2R1Y2VyPFQ+IHtcbiAgcHVibGljIHR5cGUgPSAnZnJvbU9ic2VydmFibGUnO1xuICBwdWJsaWMgaW5zOiBPYnNlcnZhYmxlPFQ+O1xuICBwdWJsaWMgb3V0PzogU3RyZWFtPFQ+O1xuICBwcml2YXRlIGFjdGl2ZTogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfc3ViOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3Iob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxUPikge1xuICAgIHRoaXMuaW5zID0gb2JzZXJ2YWJsZTtcbiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xuICAgIHRoaXMuX3N1YiA9IHRoaXMuaW5zLnN1YnNjcmliZShuZXcgT2JzZXJ2ZXIob3V0KSk7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZSkgdGhpcy5fc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBfc3RvcCgpIHtcbiAgICBpZiAodGhpcy5fc3ViKSB0aGlzLl9zdWIudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVyZ2VTaWduYXR1cmUge1xuICAoKTogU3RyZWFtPGFueT47XG4gIDxUMT4oczE6IFN0cmVhbTxUMT4pOiBTdHJlYW08VDE+O1xuICA8VDEsIFQyPihcbiAgICBzMTogU3RyZWFtPFQxPixcbiAgICBzMjogU3RyZWFtPFQyPik6IFN0cmVhbTxUMSB8IFQyPjtcbiAgPFQxLCBUMiwgVDM+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+KTogU3RyZWFtPFQxIHwgVDIgfCBUMz47XG4gIDxUMSwgVDIsIFQzLCBUND4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4pOiBTdHJlYW08VDEgfCBUMiB8IFQzIHwgVDQ+O1xuICA8VDEsIFQyLCBUMywgVDQsIFQ1PihcbiAgICBzMTogU3RyZWFtPFQxPixcbiAgICBzMjogU3RyZWFtPFQyPixcbiAgICBzMzogU3RyZWFtPFQzPixcbiAgICBzNDogU3RyZWFtPFQ0PixcbiAgICBzNTogU3RyZWFtPFQ1Pik6IFN0cmVhbTxUMSB8IFQyIHwgVDMgfCBUNCB8IFQ1PjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+KTogU3RyZWFtPFQxIHwgVDIgfCBUMyB8IFQ0IHwgVDUgfCBUNj47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4sXG4gICAgczU6IFN0cmVhbTxUNT4sXG4gICAgczY6IFN0cmVhbTxUNj4sXG4gICAgczc6IFN0cmVhbTxUNz4pOiBTdHJlYW08VDEgfCBUMiB8IFQzIHwgVDQgfCBUNSB8IFQ2IHwgVDc+O1xuICA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4PihcbiAgICBzMTogU3RyZWFtPFQxPixcbiAgICBzMjogU3RyZWFtPFQyPixcbiAgICBzMzogU3RyZWFtPFQzPixcbiAgICBzNDogU3RyZWFtPFQ0PixcbiAgICBzNTogU3RyZWFtPFQ1PixcbiAgICBzNjogU3RyZWFtPFQ2PixcbiAgICBzNzogU3RyZWFtPFQ3PixcbiAgICBzODogU3RyZWFtPFQ4Pik6IFN0cmVhbTxUMSB8IFQyIHwgVDMgfCBUNCB8IFQ1IHwgVDYgfCBUNyB8IFQ4PjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+KTogU3RyZWFtPFQxIHwgVDIgfCBUMyB8IFQ0IHwgVDUgfCBUNiB8IFQ3IHwgVDggfCBUOT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+LFxuICAgIHMxMDogU3RyZWFtPFQxMD4pOiBTdHJlYW08VDEgfCBUMiB8IFQzIHwgVDQgfCBUNSB8IFQ2IHwgVDcgfCBUOCB8IFQ5IHwgVDEwPjtcbiAgPFQ+KC4uLnN0cmVhbTogQXJyYXk8U3RyZWFtPFQ+Pik6IFN0cmVhbTxUPjtcbn1cblxuY2xhc3MgTWVyZ2U8VD4gaW1wbGVtZW50cyBBZ2dyZWdhdG9yPFQsIFQ+LCBJbnRlcm5hbExpc3RlbmVyPFQ+IHtcbiAgcHVibGljIHR5cGUgPSAnbWVyZ2UnO1xuICBwdWJsaWMgaW5zQXJyOiBBcnJheTxTdHJlYW08VD4+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHByaXZhdGUgYWM6IG51bWJlcjsgLy8gYWMgaXMgYWN0aXZlQ291bnRcblxuICBjb25zdHJ1Y3RvcihpbnNBcnI6IEFycmF5PFN0cmVhbTxUPj4pIHtcbiAgICB0aGlzLmluc0FyciA9IGluc0FycjtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLmFjID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIGNvbnN0IHMgPSB0aGlzLmluc0FycjtcbiAgICBjb25zdCBMID0gcy5sZW5ndGg7XG4gICAgdGhpcy5hYyA9IEw7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIHNbaV0uX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIGNvbnN0IHMgPSB0aGlzLmluc0FycjtcbiAgICBjb25zdCBMID0gcy5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIHNbaV0uX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIGlmICgtLXRoaXMuYWMgPD0gMCkge1xuICAgICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgICB1Ll9jKCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluZVNpZ25hdHVyZSB7XG4gICgpOiBTdHJlYW08QXJyYXk8YW55Pj47XG4gIDxUMT4oczE6IFN0cmVhbTxUMT4pOiBTdHJlYW08W1QxXT47XG4gIDxUMSwgVDI+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+KTogU3RyZWFtPFtUMSwgVDJdPjtcbiAgPFQxLCBUMiwgVDM+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+KTogU3RyZWFtPFtUMSwgVDIsIFQzXT47XG4gIDxUMSwgVDIsIFQzLCBUND4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4pOiBTdHJlYW08W1QxLCBUMiwgVDMsIFQ0XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDU+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDVdPjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4sXG4gICAgczU6IFN0cmVhbTxUNT4sXG4gICAgczY6IFN0cmVhbTxUNj4sXG4gICAgczc6IFN0cmVhbTxUNz4pOiBTdHJlYW08W1QxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDg+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDhdPjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+LFxuICAgIHMxMDogU3RyZWFtPFQxMD4pOiBTdHJlYW08W1QxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMF0+O1xuICA8VD4oLi4uc3RyZWFtOiBBcnJheTxTdHJlYW08VD4+KTogU3RyZWFtPEFycmF5PFQ+PjtcbiAgKC4uLnN0cmVhbTogQXJyYXk8U3RyZWFtPGFueT4+KTogU3RyZWFtPEFycmF5PGFueT4+O1xufVxuXG5jbGFzcyBDb21iaW5lTGlzdGVuZXI8VD4gaW1wbGVtZW50cyBJbnRlcm5hbExpc3RlbmVyPFQ+LCBPdXRTZW5kZXI8QXJyYXk8VD4+IHtcbiAgcHJpdmF0ZSBpOiBudW1iZXI7XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxBcnJheTxUPj47XG4gIHByaXZhdGUgcDogQ29tYmluZTxUPjtcblxuICBjb25zdHJ1Y3RvcihpOiBudW1iZXIsIG91dDogU3RyZWFtPEFycmF5PFQ+PiwgcDogQ29tYmluZTxUPikge1xuICAgIHRoaXMuaSA9IGk7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5wID0gcDtcbiAgICBwLmlscy5wdXNoKHRoaXMpO1xuICB9XG5cbiAgX24odDogVCk6IHZvaWQge1xuICAgIGNvbnN0IHAgPSB0aGlzLnAsIG91dCA9IHRoaXMub3V0O1xuICAgIGlmIChvdXQgPT09IE5PKSByZXR1cm47XG4gICAgaWYgKHAudXAodCwgdGhpcy5pKSkge1xuICAgICAgY29uc3QgYiA9IGNwKHAudmFscyk7XG4gICAgICBvdXQuX24oYik7XG4gICAgfVxuICB9XG5cbiAgX2UoZXJyOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBvdXQgPSB0aGlzLm91dDtcbiAgICBpZiAob3V0ID09PSBOTykgcmV0dXJuO1xuICAgIG91dC5fZShlcnIpO1xuICB9XG5cbiAgX2MoKTogdm9pZCB7XG4gICAgY29uc3QgcCA9IHRoaXMucDtcbiAgICBpZiAocC5vdXQgPT09IE5PKSByZXR1cm47XG4gICAgaWYgKC0tcC5OYyA9PT0gMCkgcC5vdXQuX2MoKTtcbiAgfVxufVxuXG5jbGFzcyBDb21iaW5lPFI+IGltcGxlbWVudHMgQWdncmVnYXRvcjxhbnksIEFycmF5PFI+PiB7XG4gIHB1YmxpYyB0eXBlID0gJ2NvbWJpbmUnO1xuICBwdWJsaWMgaW5zQXJyOiBBcnJheTxTdHJlYW08YW55Pj47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxBcnJheTxSPj47XG4gIHB1YmxpYyBpbHM6IEFycmF5PENvbWJpbmVMaXN0ZW5lcjxhbnk+PjtcbiAgcHVibGljIE5jOiBudW1iZXI7IC8vICpOKnVtYmVyIG9mIHN0cmVhbXMgc3RpbGwgdG8gc2VuZCAqYypvbXBsZXRlXG4gIHB1YmxpYyBObjogbnVtYmVyOyAvLyAqTip1bWJlciBvZiBzdHJlYW1zIHN0aWxsIHRvIHNlbmQgKm4qZXh0XG4gIHB1YmxpYyB2YWxzOiBBcnJheTxSPjtcblxuICBjb25zdHJ1Y3RvcihpbnNBcnI6IEFycmF5PFN0cmVhbTxhbnk+Pikge1xuICAgIHRoaXMuaW5zQXJyID0gaW5zQXJyO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPEFycmF5PFI+PjtcbiAgICB0aGlzLmlscyA9IFtdO1xuICAgIHRoaXMuTmMgPSB0aGlzLk5uID0gMDtcbiAgICB0aGlzLnZhbHMgPSBbXTtcbiAgfVxuXG4gIHVwKHQ6IGFueSwgaTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdiA9IHRoaXMudmFsc1tpXTtcbiAgICBjb25zdCBObiA9ICF0aGlzLk5uID8gMCA6IHYgPT09IE5PID8gLS10aGlzLk5uIDogdGhpcy5ObjtcbiAgICB0aGlzLnZhbHNbaV0gPSB0O1xuICAgIHJldHVybiBObiA9PT0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxBcnJheTxSPj4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICBjb25zdCBzID0gdGhpcy5pbnNBcnI7XG4gICAgY29uc3QgbiA9IHRoaXMuTmMgPSB0aGlzLk5uID0gcy5sZW5ndGg7XG4gICAgY29uc3QgdmFscyA9IHRoaXMudmFscyA9IG5ldyBBcnJheShuKTtcbiAgICBpZiAobiA9PT0gMCkge1xuICAgICAgb3V0Ll9uKFtdKTtcbiAgICAgIG91dC5fYygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykge1xuICAgICAgICB2YWxzW2ldID0gTk87XG4gICAgICAgIHNbaV0uX2FkZChuZXcgQ29tYmluZUxpc3RlbmVyKGksIG91dCwgdGhpcykpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIGNvbnN0IHMgPSB0aGlzLmluc0FycjtcbiAgICBjb25zdCBuID0gcy5sZW5ndGg7XG4gICAgY29uc3QgaWxzID0gdGhpcy5pbHM7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHNbaV0uX3JlbW92ZShpbHNbaV0pO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPEFycmF5PFI+PjtcbiAgICB0aGlzLmlscyA9IFtdO1xuICAgIHRoaXMudmFscyA9IFtdO1xuICB9XG59XG5cbmNsYXNzIEZyb21BcnJheTxUPiBpbXBsZW1lbnRzIEludGVybmFsUHJvZHVjZXI8VD4ge1xuICBwdWJsaWMgdHlwZSA9ICdmcm9tQXJyYXknO1xuICBwdWJsaWMgYTogQXJyYXk8VD47XG5cbiAgY29uc3RydWN0b3IoYTogQXJyYXk8VD4pIHtcbiAgICB0aGlzLmEgPSBhO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogSW50ZXJuYWxMaXN0ZW5lcjxUPik6IHZvaWQge1xuICAgIGNvbnN0IGEgPSB0aGlzLmE7XG4gICAgZm9yIChsZXQgaSA9IDAsIG4gPSBhLmxlbmd0aDsgaSA8IG47IGkrKykgb3V0Ll9uKGFbaV0pO1xuICAgIG91dC5fYygpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gIH1cbn1cblxuY2xhc3MgRnJvbVByb21pc2U8VD4gaW1wbGVtZW50cyBJbnRlcm5hbFByb2R1Y2VyPFQ+IHtcbiAgcHVibGljIHR5cGUgPSAnZnJvbVByb21pc2UnO1xuICBwdWJsaWMgb246IGJvb2xlYW47XG4gIHB1YmxpYyBwOiBQcm9taXNlTGlrZTxUPjtcblxuICBjb25zdHJ1Y3RvcihwOiBQcm9taXNlTGlrZTxUPikge1xuICAgIHRoaXMub24gPSBmYWxzZTtcbiAgICB0aGlzLnAgPSBwO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogSW50ZXJuYWxMaXN0ZW5lcjxUPik6IHZvaWQge1xuICAgIGNvbnN0IHByb2QgPSB0aGlzO1xuICAgIHRoaXMub24gPSB0cnVlO1xuICAgIHRoaXMucC50aGVuKFxuICAgICAgKHY6IFQpID0+IHtcbiAgICAgICAgaWYgKHByb2Qub24pIHtcbiAgICAgICAgICBvdXQuX24odik7XG4gICAgICAgICAgb3V0Ll9jKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoZTogYW55KSA9PiB7XG4gICAgICAgIG91dC5fZShlKTtcbiAgICAgIH0sXG4gICAgKS50aGVuKG5vb3AsIChlcnI6IGFueSkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7IHRocm93IGVycjsgfSk7XG4gICAgfSk7XG4gIH1cblxuICBfc3RvcCgpOiB2b2lkIHtcbiAgICB0aGlzLm9uID0gZmFsc2U7XG4gIH1cbn1cblxuY2xhc3MgUGVyaW9kaWMgaW1wbGVtZW50cyBJbnRlcm5hbFByb2R1Y2VyPG51bWJlcj4ge1xuICBwdWJsaWMgdHlwZSA9ICdwZXJpb2RpYyc7XG4gIHB1YmxpYyBwZXJpb2Q6IG51bWJlcjtcbiAgcHJpdmF0ZSBpbnRlcnZhbElEOiBhbnk7XG4gIHByaXZhdGUgaTogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHBlcmlvZDogbnVtYmVyKSB7XG4gICAgdGhpcy5wZXJpb2QgPSBwZXJpb2Q7XG4gICAgdGhpcy5pbnRlcnZhbElEID0gLTE7XG4gICAgdGhpcy5pID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IEludGVybmFsTGlzdGVuZXI8bnVtYmVyPik6IHZvaWQge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIGZ1bmN0aW9uIGludGVydmFsSGFuZGxlcigpIHsgb3V0Ll9uKHNlbGYuaSsrKTsgfVxuICAgIHRoaXMuaW50ZXJ2YWxJRCA9IHNldEludGVydmFsKGludGVydmFsSGFuZGxlciwgdGhpcy5wZXJpb2QpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW50ZXJ2YWxJRCAhPT0gLTEpIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElEKTtcbiAgICB0aGlzLmludGVydmFsSUQgPSAtMTtcbiAgICB0aGlzLmkgPSAwO1xuICB9XG59XG5cbmNsYXNzIERlYnVnPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdkZWJ1Zyc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFQ+O1xuICBwcml2YXRlIHM6ICh0OiBUKSA9PiBhbnk7IC8vIHNweVxuICBwcml2YXRlIGw6IHN0cmluZzsgLy8gbGFiZWxcblxuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPik7XG4gIGNvbnN0cnVjdG9yKGluczogU3RyZWFtPFQ+LCBhcmc/OiBzdHJpbmcpO1xuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPiwgYXJnPzogKHQ6IFQpID0+IGFueSk7XG4gIGNvbnN0cnVjdG9yKGluczogU3RyZWFtPFQ+LCBhcmc/OiBzdHJpbmcgfCAoKHQ6IFQpID0+IGFueSkpO1xuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPiwgYXJnPzogc3RyaW5nIHwgKCh0OiBUKSA9PiBhbnkpIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5zID0gbm9vcDtcbiAgICB0aGlzLmwgPSAnJztcbiAgICBpZiAodHlwZW9mIGFyZyA9PT0gJ3N0cmluZycpIHRoaXMubCA9IGFyZzsgZWxzZSBpZiAodHlwZW9mIGFyZyA9PT0gJ2Z1bmN0aW9uJykgdGhpcy5zID0gYXJnO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHMgPSB0aGlzLnMsIGwgPSB0aGlzLmw7XG4gICAgaWYgKHMgIT09IG5vb3ApIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHModCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHUuX2UoZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChsKSBjb25zb2xlLmxvZyhsICsgJzonLCB0KTsgZWxzZSBjb25zb2xlLmxvZyh0KTtcbiAgICB1Ll9uKHQpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2MoKTtcbiAgfVxufVxuXG5jbGFzcyBEcm9wPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdkcm9wJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHB1YmxpYyBtYXg6IG51bWJlcjtcbiAgcHJpdmF0ZSBkcm9wcGVkOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IobWF4OiBudW1iZXIsIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5tYXggPSBtYXg7XG4gICAgdGhpcy5kcm9wcGVkID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuZHJvcHBlZCA9IDA7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGlmICh0aGlzLmRyb3BwZWQrKyA+PSB0aGlzLm1heCkgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9jKCk7XG4gIH1cbn1cblxuY2xhc3MgRW5kV2hlbkxpc3RlbmVyPFQ+IGltcGxlbWVudHMgSW50ZXJuYWxMaXN0ZW5lcjxhbnk+IHtcbiAgcHJpdmF0ZSBvdXQ6IFN0cmVhbTxUPjtcbiAgcHJpdmF0ZSBvcDogRW5kV2hlbjxUPjtcblxuICBjb25zdHJ1Y3RvcihvdXQ6IFN0cmVhbTxUPiwgb3A6IEVuZFdoZW48VD4pIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm9wID0gb3A7XG4gIH1cblxuICBfbigpIHtcbiAgICB0aGlzLm9wLmVuZCgpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICB0aGlzLm91dC5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgdGhpcy5vcC5lbmQoKTtcbiAgfVxufVxuXG5jbGFzcyBFbmRXaGVuPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdlbmRXaGVuJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHB1YmxpYyBvOiBTdHJlYW08YW55PjsgLy8gbyA9IG90aGVyXG4gIHByaXZhdGUgb2lsOiBJbnRlcm5hbExpc3RlbmVyPGFueT47IC8vIG9pbCA9IG90aGVyIEludGVybmFsTGlzdGVuZXJcblxuICBjb25zdHJ1Y3RvcihvOiBTdHJlYW08YW55PiwgaW5zOiBTdHJlYW08VD4pIHtcbiAgICB0aGlzLmlucyA9IGlucztcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLm8gPSBvO1xuICAgIHRoaXMub2lsID0gTk9fSUw7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm8uX2FkZCh0aGlzLm9pbCA9IG5ldyBFbmRXaGVuTGlzdGVuZXIob3V0LCB0aGlzKSk7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vLl9yZW1vdmUodGhpcy5vaWwpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMub2lsID0gTk9fSUw7XG4gIH1cblxuICBlbmQoKTogdm9pZCB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2MoKTtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIHRoaXMuZW5kKCk7XG4gIH1cbn1cblxuY2xhc3MgRmlsdGVyPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdmaWx0ZXInO1xuICBwdWJsaWMgaW5zOiBTdHJlYW08VD47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxUPjtcbiAgcHVibGljIGY6ICh0OiBUKSA9PiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHBhc3NlczogKHQ6IFQpID0+IGJvb2xlYW4sIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5mID0gcGFzc2VzO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHIgPSBfdHJ5KHRoaXMsIHQsIHUpO1xuICAgIGlmIChyID09PSBOTyB8fCAhcikgcmV0dXJuO1xuICAgIHUuX24odCk7XG4gIH1cblxuICBfZShlcnI6IGFueSkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9lKGVycik7XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmNsYXNzIEZsYXR0ZW5MaXN0ZW5lcjxUPiBpbXBsZW1lbnRzIEludGVybmFsTGlzdGVuZXI8VD4ge1xuICBwcml2YXRlIG91dDogU3RyZWFtPFQ+O1xuICBwcml2YXRlIG9wOiBGbGF0dGVuPFQ+O1xuXG4gIGNvbnN0cnVjdG9yKG91dDogU3RyZWFtPFQ+LCBvcDogRmxhdHRlbjxUPikge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMub3AgPSBvcDtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICB0aGlzLm91dC5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgdGhpcy5vdXQuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIHRoaXMub3AuaW5uZXIgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5vcC5sZXNzKCk7XG4gIH1cbn1cblxuY2xhc3MgRmxhdHRlbjxUPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFN0cmVhbTxUPiwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdmbGF0dGVuJztcbiAgcHVibGljIGluczogU3RyZWFtPFN0cmVhbTxUPj47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxUPjtcbiAgcHJpdmF0ZSBvcGVuOiBib29sZWFuO1xuICBwdWJsaWMgaW5uZXI6IFN0cmVhbTxUPjsgLy8gQ3VycmVudCBpbm5lciBTdHJlYW1cbiAgcHJpdmF0ZSBpbDogSW50ZXJuYWxMaXN0ZW5lcjxUPjsgLy8gQ3VycmVudCBpbm5lciBJbnRlcm5hbExpc3RlbmVyXG5cbiAgY29uc3RydWN0b3IoaW5zOiBTdHJlYW08U3RyZWFtPFQ+Pikge1xuICAgIHRoaXMuaW5zID0gaW5zO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgdGhpcy5pbm5lciA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLmlsID0gTk9fSUw7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICAgIHRoaXMuaW5uZXIgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5pbCA9IE5PX0lMO1xuICAgIHRoaXMuaW5zLl9hZGQodGhpcyk7XG4gIH1cblxuICBfc3RvcCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucy5fcmVtb3ZlKHRoaXMpO1xuICAgIGlmICh0aGlzLmlubmVyICE9PSBOTykgdGhpcy5pbm5lci5fcmVtb3ZlKHRoaXMuaWwpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgdGhpcy5pbm5lciA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLmlsID0gTk9fSUw7XG4gIH1cblxuICBsZXNzKCk6IHZvaWQge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICBpZiAoIXRoaXMub3BlbiAmJiB0aGlzLmlubmVyID09PSBOTykgdS5fYygpO1xuICB9XG5cbiAgX24oczogU3RyZWFtPFQ+KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHsgaW5uZXIsIGlsIH0gPSB0aGlzO1xuICAgIGlmIChpbm5lciAhPT0gTk8gJiYgaWwgIT09IE5PX0lMKSBpbm5lci5fcmVtb3ZlKGlsKTtcbiAgICAodGhpcy5pbm5lciA9IHMpLl9hZGQodGhpcy5pbCA9IG5ldyBGbGF0dGVuTGlzdGVuZXIodSwgdGhpcykpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgdGhpcy5sZXNzKCk7XG4gIH1cbn1cblxuY2xhc3MgRm9sZDxULCBSPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFQsIFI+IHtcbiAgcHVibGljIHR5cGUgPSAnZm9sZCc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFI+O1xuICBwdWJsaWMgZjogKHQ6IFQpID0+IFI7XG4gIHB1YmxpYyBzZWVkOiBSO1xuICBwcml2YXRlIGFjYzogUjsgLy8gaW5pdGlhbGl6ZWQgYXMgc2VlZFxuXG4gIGNvbnN0cnVjdG9yKGY6IChhY2M6IFIsIHQ6IFQpID0+IFIsIHNlZWQ6IFIsIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08Uj47XG4gICAgdGhpcy5mID0gKHQ6IFQpID0+IGYodGhpcy5hY2MsIHQpO1xuICAgIHRoaXMuYWNjID0gdGhpcy5zZWVkID0gc2VlZDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxSPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuYWNjID0gdGhpcy5zZWVkO1xuICAgIG91dC5fbih0aGlzLmFjYyk7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08Uj47XG4gICAgdGhpcy5hY2MgPSB0aGlzLnNlZWQ7XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHIgPSBfdHJ5KHRoaXMsIHQsIHUpO1xuICAgIGlmIChyID09PSBOTykgcmV0dXJuO1xuICAgIHUuX24odGhpcy5hY2MgPSByIGFzIFIpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2MoKTtcbiAgfVxufVxuXG5jbGFzcyBMYXN0PFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdsYXN0JztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHByaXZhdGUgaGFzOiBib29sZWFuO1xuICBwcml2YXRlIHZhbDogVDtcblxuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPikge1xuICAgIHRoaXMuaW5zID0gaW5zO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMuaGFzID0gZmFsc2U7XG4gICAgdGhpcy52YWwgPSBOTyBhcyBUO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5oYXMgPSBmYWxzZTtcbiAgICB0aGlzLmlucy5fYWRkKHRoaXMpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLnZhbCA9IE5PIGFzIFQ7XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgdGhpcy5oYXMgPSB0cnVlO1xuICAgIHRoaXMudmFsID0gdDtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICBpZiAodGhpcy5oYXMpIHtcbiAgICAgIHUuX24odGhpcy52YWwpO1xuICAgICAgdS5fYygpO1xuICAgIH0gZWxzZSB1Ll9lKG5ldyBFcnJvcignbGFzdCgpIGZhaWxlZCBiZWNhdXNlIGlucHV0IHN0cmVhbSBjb21wbGV0ZWQnKSk7XG4gIH1cbn1cblxuY2xhc3MgTWFwT3A8VCwgUj4gaW1wbGVtZW50cyBPcGVyYXRvcjxULCBSPiB7XG4gIHB1YmxpYyB0eXBlID0gJ21hcCc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFI+O1xuICBwdWJsaWMgZjogKHQ6IFQpID0+IFI7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogKHQ6IFQpID0+IFIsIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08Uj47XG4gICAgdGhpcy5mID0gcHJvamVjdDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxSPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuaW5zLl9hZGQodGhpcyk7XG4gIH1cblxuICBfc3RvcCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucy5fcmVtb3ZlKHRoaXMpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFI+O1xuICB9XG5cbiAgX24odDogVCkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICBjb25zdCByID0gX3RyeSh0aGlzLCB0LCB1KTtcbiAgICBpZiAociA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9uKHIgYXMgUik7XG4gIH1cblxuICBfZShlcnI6IGFueSkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9lKGVycik7XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmNsYXNzIFJlbWVtYmVyPFQ+IGltcGxlbWVudHMgSW50ZXJuYWxQcm9kdWNlcjxUPiB7XG4gIHB1YmxpYyB0eXBlID0gJ3JlbWVtYmVyJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG5cbiAgY29uc3RydWN0b3IoaW5zOiBTdHJlYW08VD4pIHtcbiAgICB0aGlzLmlucyA9IGlucztcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuaW5zLl9hZGQob3V0KTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcy5vdXQpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICB9XG59XG5cbmNsYXNzIFJlcGxhY2VFcnJvcjxUPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFQsIFQ+IHtcbiAgcHVibGljIHR5cGUgPSAncmVwbGFjZUVycm9yJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHB1YmxpYyBmOiAoZXJyOiBhbnkpID0+IFN0cmVhbTxUPjtcblxuICBjb25zdHJ1Y3RvcihyZXBsYWNlcjogKGVycjogYW55KSA9PiBTdHJlYW08VD4sIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5mID0gcmVwbGFjZXI7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLmlucy5fYWRkKHRoaXMpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmlucy5fcmVtb3ZlKHRoaXMpO1xuICAgICAgKHRoaXMuaW5zID0gdGhpcy5mKGVycikpLl9hZGQodGhpcyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdS5fZShlKTtcbiAgICB9XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmNsYXNzIFN0YXJ0V2l0aDxUPiBpbXBsZW1lbnRzIEludGVybmFsUHJvZHVjZXI8VD4ge1xuICBwdWJsaWMgdHlwZSA9ICdzdGFydFdpdGgnO1xuICBwdWJsaWMgaW5zOiBTdHJlYW08VD47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxUPjtcbiAgcHVibGljIHZhbDogVDtcblxuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPiwgdmFsOiBUKSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy52YWwgPSB2YWw7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm91dC5fbih0aGlzLnZhbCk7XG4gICAgdGhpcy5pbnMuX2FkZChvdXQpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzLm91dCk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cbn1cblxuY2xhc3MgVGFrZTxUPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFQsIFQ+IHtcbiAgcHVibGljIHR5cGUgPSAndGFrZSc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFQ+O1xuICBwdWJsaWMgbWF4OiBudW1iZXI7XG4gIHByaXZhdGUgdGFrZW46IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihtYXg6IG51bWJlciwgaW5zOiBTdHJlYW08VD4pIHtcbiAgICB0aGlzLmlucyA9IGlucztcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLm1heCA9IG1heDtcbiAgICB0aGlzLnRha2VuID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMudGFrZW4gPSAwO1xuICAgIGlmICh0aGlzLm1heCA8PSAwKSBvdXQuX2MoKTsgZWxzZSB0aGlzLmlucy5fYWRkKHRoaXMpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgY29uc3QgbSA9ICsrdGhpcy50YWtlbjtcbiAgICBpZiAobSA8IHRoaXMubWF4KSB1Ll9uKHQpOyBlbHNlIGlmIChtID09PSB0aGlzLm1heCkge1xuICAgICAgdS5fbih0KTtcbiAgICAgIHUuX2MoKTtcbiAgICB9XG4gIH1cblxuICBfZShlcnI6IGFueSkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9lKGVycik7XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdHJlYW08VD4gaW1wbGVtZW50cyBJbnRlcm5hbExpc3RlbmVyPFQ+IHtcbiAgcHVibGljIF9wcm9kOiBJbnRlcm5hbFByb2R1Y2VyPFQ+O1xuICBwcm90ZWN0ZWQgX2lsczogQXJyYXk8SW50ZXJuYWxMaXN0ZW5lcjxUPj47IC8vICdpbHMnID0gSW50ZXJuYWwgbGlzdGVuZXJzXG4gIHByb3RlY3RlZCBfc3RvcElEOiBhbnk7XG4gIHByb3RlY3RlZCBfZGw6IEludGVybmFsTGlzdGVuZXI8VD47IC8vIHRoZSBkZWJ1ZyBsaXN0ZW5lclxuICBwcm90ZWN0ZWQgX2Q6IGJvb2xlYW47IC8vIGZsYWcgaW5kaWNhdGluZyB0aGUgZXhpc3RlbmNlIG9mIHRoZSBkZWJ1ZyBsaXN0ZW5lclxuICBwcm90ZWN0ZWQgX3RhcmdldDogU3RyZWFtPFQ+IHwgbnVsbDsgLy8gaW1pdGF0aW9uIHRhcmdldCBpZiB0aGlzIFN0cmVhbSB3aWxsIGltaXRhdGVcbiAgcHJvdGVjdGVkIF9lcnI6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcm9kdWNlcj86IEludGVybmFsUHJvZHVjZXI8VD4pIHtcbiAgICB0aGlzLl9wcm9kID0gcHJvZHVjZXIgfHwgTk8gYXMgSW50ZXJuYWxQcm9kdWNlcjxUPjtcbiAgICB0aGlzLl9pbHMgPSBbXTtcbiAgICB0aGlzLl9zdG9wSUQgPSBOTztcbiAgICB0aGlzLl9kbCA9IE5PIGFzIEludGVybmFsTGlzdGVuZXI8VD47XG4gICAgdGhpcy5fZCA9IGZhbHNlO1xuICAgIHRoaXMuX3RhcmdldCA9IG51bGw7XG4gICAgdGhpcy5fZXJyID0gTk87XG4gIH1cblxuICBfbih0OiBUKTogdm9pZCB7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBMID0gYS5sZW5ndGg7XG4gICAgaWYgKHRoaXMuX2QpIHRoaXMuX2RsLl9uKHQpO1xuICAgIGlmIChMID09IDEpIGFbMF0uX24odCk7IGVsc2UgaWYgKEwgPT0gMCkgcmV0dXJuOyBlbHNlIHtcbiAgICAgIGNvbnN0IGIgPSBjcChhKTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTDsgaSsrKSBiW2ldLl9uKHQpO1xuICAgIH1cbiAgfVxuXG4gIF9lKGVycjogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2VyciAhPT0gTk8pIHJldHVybjtcbiAgICB0aGlzLl9lcnIgPSBlcnI7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBMID0gYS5sZW5ndGg7XG4gICAgdGhpcy5feCgpO1xuICAgIGlmICh0aGlzLl9kKSB0aGlzLl9kbC5fZShlcnIpO1xuICAgIGlmIChMID09IDEpIGFbMF0uX2UoZXJyKTsgZWxzZSBpZiAoTCA9PSAwKSByZXR1cm47IGVsc2Uge1xuICAgICAgY29uc3QgYiA9IGNwKGEpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIGJbaV0uX2UoZXJyKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9kICYmIEwgPT0gMCkgdGhyb3cgdGhpcy5fZXJyO1xuICB9XG5cbiAgX2MoKTogdm9pZCB7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBMID0gYS5sZW5ndGg7XG4gICAgdGhpcy5feCgpO1xuICAgIGlmICh0aGlzLl9kKSB0aGlzLl9kbC5fYygpO1xuICAgIGlmIChMID09IDEpIGFbMF0uX2MoKTsgZWxzZSBpZiAoTCA9PSAwKSByZXR1cm47IGVsc2Uge1xuICAgICAgY29uc3QgYiA9IGNwKGEpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIGJbaV0uX2MoKTtcbiAgICB9XG4gIH1cblxuICBfeCgpOiB2b2lkIHsgLy8gdGVhciBkb3duIGxvZ2ljLCBhZnRlciBlcnJvciBvciBjb21wbGV0ZVxuICAgIGlmICh0aGlzLl9pbHMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgaWYgKHRoaXMuX3Byb2QgIT09IE5PKSB0aGlzLl9wcm9kLl9zdG9wKCk7XG4gICAgdGhpcy5fZXJyID0gTk87XG4gICAgdGhpcy5faWxzID0gW107XG4gIH1cblxuICBfc3RvcE5vdygpIHtcbiAgICAvLyBXQVJOSU5HOiBjb2RlIHRoYXQgY2FsbHMgdGhpcyBtZXRob2Qgc2hvdWxkXG4gICAgLy8gZmlyc3QgY2hlY2sgaWYgdGhpcy5fcHJvZCBpcyB2YWxpZCAobm90IGBOT2ApXG4gICAgdGhpcy5fcHJvZC5fc3RvcCgpO1xuICAgIHRoaXMuX2VyciA9IE5PO1xuICAgIHRoaXMuX3N0b3BJRCA9IE5PO1xuICB9XG5cbiAgX2FkZChpbDogSW50ZXJuYWxMaXN0ZW5lcjxUPik6IHZvaWQge1xuICAgIGNvbnN0IHRhID0gdGhpcy5fdGFyZ2V0O1xuICAgIGlmICh0YSkgcmV0dXJuIHRhLl9hZGQoaWwpO1xuICAgIGNvbnN0IGEgPSB0aGlzLl9pbHM7XG4gICAgYS5wdXNoKGlsKTtcbiAgICBpZiAoYS5sZW5ndGggPiAxKSByZXR1cm47XG4gICAgaWYgKHRoaXMuX3N0b3BJRCAhPT0gTk8pIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9zdG9wSUQpO1xuICAgICAgdGhpcy5fc3RvcElEID0gTk87XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHAgPSB0aGlzLl9wcm9kO1xuICAgICAgaWYgKHAgIT09IE5PKSBwLl9zdGFydCh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBfcmVtb3ZlKGlsOiBJbnRlcm5hbExpc3RlbmVyPFQ+KTogdm9pZCB7XG4gICAgY29uc3QgdGEgPSB0aGlzLl90YXJnZXQ7XG4gICAgaWYgKHRhKSByZXR1cm4gdGEuX3JlbW92ZShpbCk7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBpID0gYS5pbmRleE9mKGlsKTtcbiAgICBpZiAoaSA+IC0xKSB7XG4gICAgICBhLnNwbGljZShpLCAxKTtcbiAgICAgIGlmICh0aGlzLl9wcm9kICE9PSBOTyAmJiBhLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgIHRoaXMuX2VyciA9IE5PO1xuICAgICAgICB0aGlzLl9zdG9wSUQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3N0b3BOb3coKSk7XG4gICAgICB9IGVsc2UgaWYgKGEubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHRoaXMuX3BydW5lQ3ljbGVzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgYWxsIHBhdGhzIHN0ZW1taW5nIGZyb20gYHRoaXNgIHN0cmVhbSBldmVudHVhbGx5IGVuZCBhdCBgdGhpc2BcbiAgLy8gc3RyZWFtLCB0aGVuIHdlIHJlbW92ZSB0aGUgc2luZ2xlIGxpc3RlbmVyIG9mIGB0aGlzYCBzdHJlYW0sIHRvXG4gIC8vIGZvcmNlIGl0IHRvIGVuZCBpdHMgZXhlY3V0aW9uIGFuZCBkaXNwb3NlIHJlc291cmNlcy4gVGhpcyBtZXRob2RcbiAgLy8gYXNzdW1lcyBhcyBhIHByZWNvbmRpdGlvbiB0aGF0IHRoaXMuX2lscyBoYXMganVzdCBvbmUgbGlzdGVuZXIuXG4gIF9wcnVuZUN5Y2xlcygpIHtcbiAgICBpZiAodGhpcy5faGFzTm9TaW5rcyh0aGlzLCBbXSkpIHRoaXMuX3JlbW92ZSh0aGlzLl9pbHNbMF0pO1xuICB9XG5cbiAgLy8gQ2hlY2tzIHdoZXRoZXIgKnRoZXJlIGlzIG5vKiBwYXRoIHN0YXJ0aW5nIGZyb20gYHhgIHRoYXQgbGVhZHMgdG8gYW4gZW5kXG4gIC8vIGxpc3RlbmVyIChzaW5rKSBpbiB0aGUgc3RyZWFtIGdyYXBoLCBmb2xsb3dpbmcgZWRnZXMgQS0+QiB3aGVyZSBCIGlzIGFcbiAgLy8gbGlzdGVuZXIgb2YgQS4gVGhpcyBtZWFucyB0aGVzZSBwYXRocyBjb25zdGl0dXRlIGEgY3ljbGUgc29tZWhvdy4gSXMgZ2l2ZW5cbiAgLy8gYSB0cmFjZSBvZiBhbGwgdmlzaXRlZCBub2RlcyBzbyBmYXIuXG4gIF9oYXNOb1NpbmtzKHg6IEludGVybmFsTGlzdGVuZXI8YW55PiwgdHJhY2U6IEFycmF5PGFueT4pOiBib29sZWFuIHtcbiAgICBpZiAodHJhY2UuaW5kZXhPZih4KSAhPT0gLTEpXG4gICAgICByZXR1cm4gdHJ1ZTsgZWxzZVxuICAgICAgaWYgKCh4IGFzIGFueSBhcyBPdXRTZW5kZXI8YW55Pikub3V0ID09PSB0aGlzKVxuICAgICAgICByZXR1cm4gdHJ1ZTsgZWxzZVxuICAgICAgICBpZiAoKHggYXMgYW55IGFzIE91dFNlbmRlcjxhbnk+KS5vdXQgJiYgKHggYXMgYW55IGFzIE91dFNlbmRlcjxhbnk+KS5vdXQgIT09IE5PKVxuICAgICAgICAgIHJldHVybiB0aGlzLl9oYXNOb1NpbmtzKCh4IGFzIGFueSBhcyBPdXRTZW5kZXI8YW55Pikub3V0LCB0cmFjZS5jb25jYXQoeCkpOyBlbHNlXG4gICAgICAgICAgaWYgKCh4IGFzIFN0cmVhbTxhbnk+KS5faWxzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMCwgTiA9ICh4IGFzIFN0cmVhbTxhbnk+KS5faWxzLmxlbmd0aDsgaSA8IE47IGkrKylcbiAgICAgICAgICAgICAgaWYgKCF0aGlzLl9oYXNOb1NpbmtzKCh4IGFzIFN0cmVhbTxhbnk+KS5faWxzW2ldLCB0cmFjZS5jb25jYXQoeCkpKVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH0gZWxzZSByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGN0b3IoKTogdHlwZW9mIFN0cmVhbSB7XG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBNZW1vcnlTdHJlYW0gPyBNZW1vcnlTdHJlYW0gOiBTdHJlYW07XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIExpc3RlbmVyIHRvIHRoZSBTdHJlYW0uXG4gICAqXG4gICAqIEBwYXJhbSB7TGlzdGVuZXJ9IGxpc3RlbmVyXG4gICAqL1xuICBhZGRMaXN0ZW5lcihsaXN0ZW5lcjogUGFydGlhbDxMaXN0ZW5lcjxUPj4pOiB2b2lkIHtcbiAgICAobGlzdGVuZXIgYXMgSW50ZXJuYWxMaXN0ZW5lcjxUPikuX24gPSBsaXN0ZW5lci5uZXh0IHx8IG5vb3A7XG4gICAgKGxpc3RlbmVyIGFzIEludGVybmFsTGlzdGVuZXI8VD4pLl9lID0gbGlzdGVuZXIuZXJyb3IgfHwgbm9vcDtcbiAgICAobGlzdGVuZXIgYXMgSW50ZXJuYWxMaXN0ZW5lcjxUPikuX2MgPSBsaXN0ZW5lci5jb21wbGV0ZSB8fCBub29wO1xuICAgIHRoaXMuX2FkZChsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgTGlzdGVuZXIgZnJvbSB0aGUgU3RyZWFtLCBhc3N1bWluZyB0aGUgTGlzdGVuZXIgd2FzIGFkZGVkIHRvIGl0LlxuICAgKlxuICAgKiBAcGFyYW0ge0xpc3RlbmVyPFQ+fSBsaXN0ZW5lclxuICAgKi9cbiAgcmVtb3ZlTGlzdGVuZXIobGlzdGVuZXI6IFBhcnRpYWw8TGlzdGVuZXI8VD4+KTogdm9pZCB7XG4gICAgdGhpcy5fcmVtb3ZlKGxpc3RlbmVyIGFzIEludGVybmFsTGlzdGVuZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBMaXN0ZW5lciB0byB0aGUgU3RyZWFtIHJldHVybmluZyBhIFN1YnNjcmlwdGlvbiB0byByZW1vdmUgdGhhdFxuICAgKiBsaXN0ZW5lci5cbiAgICpcbiAgICogQHBhcmFtIHtMaXN0ZW5lcn0gbGlzdGVuZXJcbiAgICogQHJldHVybnMge1N1YnNjcmlwdGlvbn1cbiAgICovXG4gIHN1YnNjcmliZShsaXN0ZW5lcjogUGFydGlhbDxMaXN0ZW5lcjxUPj4pOiBTdWJzY3JpcHRpb24ge1xuICAgIHRoaXMuYWRkTGlzdGVuZXIobGlzdGVuZXIpO1xuICAgIHJldHVybiBuZXcgU3RyZWFtU3ViPFQ+KHRoaXMsIGxpc3RlbmVyIGFzIEludGVybmFsTGlzdGVuZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBpbnRlcm9wIGJldHdlZW4gbW9zdC5qcyBhbmQgUnhKUyA1XG4gICAqXG4gICAqIEByZXR1cm5zIHtTdHJlYW19XG4gICAqL1xuICBbJCRvYnNlcnZhYmxlXSgpOiBTdHJlYW08VD4ge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgU3RyZWFtIGdpdmVuIGEgUHJvZHVjZXIuXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtQcm9kdWNlcn0gcHJvZHVjZXIgQW4gb3B0aW9uYWwgUHJvZHVjZXIgdGhhdCBkaWN0YXRlcyBob3cgdG9cbiAgICogc3RhcnQsIGdlbmVyYXRlIGV2ZW50cywgYW5kIHN0b3AgdGhlIFN0cmVhbS5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZTxUPihwcm9kdWNlcj86IFByb2R1Y2VyPFQ+KTogU3RyZWFtPFQ+IHtcbiAgICBpZiAocHJvZHVjZXIpIHtcbiAgICAgIGlmICh0eXBlb2YgcHJvZHVjZXIuc3RhcnQgIT09ICdmdW5jdGlvbidcbiAgICAgICAgfHwgdHlwZW9mIHByb2R1Y2VyLnN0b3AgIT09ICdmdW5jdGlvbicpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcigncHJvZHVjZXIgcmVxdWlyZXMgYm90aCBzdGFydCBhbmQgc3RvcCBmdW5jdGlvbnMnKTtcbiAgICAgIGludGVybmFsaXplUHJvZHVjZXIocHJvZHVjZXIpOyAvLyBtdXRhdGVzIHRoZSBpbnB1dFxuICAgIH1cbiAgICByZXR1cm4gbmV3IFN0cmVhbShwcm9kdWNlciBhcyBJbnRlcm5hbFByb2R1Y2VyPFQ+ICYgUHJvZHVjZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgTWVtb3J5U3RyZWFtIGdpdmVuIGEgUHJvZHVjZXIuXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtQcm9kdWNlcn0gcHJvZHVjZXIgQW4gb3B0aW9uYWwgUHJvZHVjZXIgdGhhdCBkaWN0YXRlcyBob3cgdG9cbiAgICogc3RhcnQsIGdlbmVyYXRlIGV2ZW50cywgYW5kIHN0b3AgdGhlIFN0cmVhbS5cbiAgICogQHJldHVybiB7TWVtb3J5U3RyZWFtfVxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZVdpdGhNZW1vcnk8VD4ocHJvZHVjZXI/OiBQcm9kdWNlcjxUPik6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgaWYgKHByb2R1Y2VyKSBpbnRlcm5hbGl6ZVByb2R1Y2VyKHByb2R1Y2VyKTsgLy8gbXV0YXRlcyB0aGUgaW5wdXRcbiAgICByZXR1cm4gbmV3IE1lbW9yeVN0cmVhbTxUPihwcm9kdWNlciBhcyBJbnRlcm5hbFByb2R1Y2VyPFQ+ICYgUHJvZHVjZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBTdHJlYW0gdGhhdCBkb2VzIG5vdGhpbmcgd2hlbiBzdGFydGVkLiBJdCBuZXZlciBlbWl0cyBhbnkgZXZlbnQuXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqICAgICAgICAgIG5ldmVyXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAZmFjdG9yeSB0cnVlXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBuZXZlcjxUID0gYW55PigpOiBTdHJlYW08VD4ge1xuICAgIHJldHVybiBuZXcgU3RyZWFtPFQ+KHsgX3N0YXJ0OiBub29wLCBfc3RvcDogbm9vcCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgU3RyZWFtIHRoYXQgaW1tZWRpYXRlbHkgZW1pdHMgdGhlIFwiY29tcGxldGVcIiBub3RpZmljYXRpb24gd2hlblxuICAgKiBzdGFydGVkLCBhbmQgdGhhdCdzIGl0LlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiBlbXB0eVxuICAgKiAtfFxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgZW1wdHk8VCA9IGFueT4oKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPih7XG4gICAgICBfc3RhcnQoaWw6IEludGVybmFsTGlzdGVuZXI8YW55PikgeyBpbC5fYygpOyB9LFxuICAgICAgX3N0b3A6IG5vb3AsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFN0cmVhbSB0aGF0IGltbWVkaWF0ZWx5IGVtaXRzIGFuIFwiZXJyb3JcIiBub3RpZmljYXRpb24gd2l0aCB0aGVcbiAgICogdmFsdWUgeW91IHBhc3NlZCBhcyB0aGUgYGVycm9yYCBhcmd1bWVudCB3aGVuIHRoZSBzdHJlYW0gc3RhcnRzLCBhbmQgdGhhdCdzXG4gICAqIGl0LlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiB0aHJvdyhYKVxuICAgKiAtWFxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0gZXJyb3IgVGhlIGVycm9yIGV2ZW50IHRvIGVtaXQgb24gdGhlIGNyZWF0ZWQgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgdGhyb3coZXJyb3I6IGFueSk6IFN0cmVhbTxhbnk+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxhbnk+KHtcbiAgICAgIF9zdGFydChpbDogSW50ZXJuYWxMaXN0ZW5lcjxhbnk+KSB7IGlsLl9lKGVycm9yKTsgfSxcbiAgICAgIF9zdG9wOiBub29wLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdHJlYW0gZnJvbSBhbiBBcnJheSwgUHJvbWlzZSwgb3IgYW4gT2JzZXJ2YWJsZS5cbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0ge0FycmF5fFByb21pc2VMaWtlfE9ic2VydmFibGV9IGlucHV0IFRoZSBpbnB1dCB0byBtYWtlIGEgc3RyZWFtIGZyb20uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBmcm9tPFQ+KGlucHV0OiBQcm9taXNlTGlrZTxUPiB8IFN0cmVhbTxUPiB8IEFycmF5PFQ+IHwgT2JzZXJ2YWJsZTxUPik6IFN0cmVhbTxUPiB7XG4gICAgaWYgKHR5cGVvZiBpbnB1dFskJG9ic2VydmFibGVdID09PSAnZnVuY3Rpb24nKVxuICAgICAgcmV0dXJuIFN0cmVhbS5mcm9tT2JzZXJ2YWJsZTxUPihpbnB1dCBhcyBPYnNlcnZhYmxlPFQ+KTsgZWxzZVxuICAgICAgaWYgKHR5cGVvZiAoaW5wdXQgYXMgUHJvbWlzZUxpa2U8VD4pLnRoZW4gPT09ICdmdW5jdGlvbicpXG4gICAgICAgIHJldHVybiBTdHJlYW0uZnJvbVByb21pc2U8VD4oaW5wdXQgYXMgUHJvbWlzZUxpa2U8VD4pOyBlbHNlXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGlucHV0KSlcbiAgICAgICAgICByZXR1cm4gU3RyZWFtLmZyb21BcnJheTxUPihpbnB1dCk7XG5cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBUeXBlIG9mIGlucHV0IHRvIGZyb20oKSBtdXN0IGJlIGFuIEFycmF5LCBQcm9taXNlLCBvciBPYnNlcnZhYmxlYCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFN0cmVhbSB0aGF0IGltbWVkaWF0ZWx5IGVtaXRzIHRoZSBhcmd1bWVudHMgdGhhdCB5b3UgZ2l2ZSB0b1xuICAgKiAqb2YqLCB0aGVuIGNvbXBsZXRlcy5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogb2YoMSwyLDMpXG4gICAqIDEyM3xcbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIGEgVGhlIGZpcnN0IHZhbHVlIHlvdSB3YW50IHRvIGVtaXQgYXMgYW4gZXZlbnQgb24gdGhlIHN0cmVhbS5cbiAgICogQHBhcmFtIGIgVGhlIHNlY29uZCB2YWx1ZSB5b3Ugd2FudCB0byBlbWl0IGFzIGFuIGV2ZW50IG9uIHRoZSBzdHJlYW0uIE9uZVxuICAgKiBvciBtb3JlIG9mIHRoZXNlIHZhbHVlcyBtYXkgYmUgZ2l2ZW4gYXMgYXJndW1lbnRzLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgb2Y8VD4oLi4uaXRlbXM6IEFycmF5PFQ+KTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gU3RyZWFtLmZyb21BcnJheTxUPihpdGVtcyk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYW4gYXJyYXkgdG8gYSBzdHJlYW0uIFRoZSByZXR1cm5lZCBzdHJlYW0gd2lsbCBlbWl0IHN5bmNocm9ub3VzbHlcbiAgICogYWxsIHRoZSBpdGVtcyBpbiB0aGUgYXJyYXksIGFuZCB0aGVuIGNvbXBsZXRlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiBmcm9tQXJyYXkoWzEsMiwzXSlcbiAgICogMTIzfFxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gYmUgY29udmVydGVkIGFzIGEgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgZnJvbUFycmF5PFQ+KGFycmF5OiBBcnJheTxUPik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08VD4obmV3IEZyb21BcnJheTxUPihhcnJheSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgcHJvbWlzZSB0byBhIHN0cmVhbS4gVGhlIHJldHVybmVkIHN0cmVhbSB3aWxsIGVtaXQgdGhlIHJlc29sdmVkXG4gICAqIHZhbHVlIG9mIHRoZSBwcm9taXNlLCBhbmQgdGhlbiBjb21wbGV0ZS4gSG93ZXZlciwgaWYgdGhlIHByb21pc2UgaXNcbiAgICogcmVqZWN0ZWQsIHRoZSBzdHJlYW0gd2lsbCBlbWl0IHRoZSBjb3JyZXNwb25kaW5nIGVycm9yLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiBmcm9tUHJvbWlzZSggLS0tLTQyIClcbiAgICogLS0tLS0tLS0tLS0tLS0tLS00MnxcbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtQcm9taXNlTGlrZX0gcHJvbWlzZSBUaGUgcHJvbWlzZSB0byBiZSBjb252ZXJ0ZWQgYXMgYSBzdHJlYW0uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBmcm9tUHJvbWlzZTxUPihwcm9taXNlOiBQcm9taXNlTGlrZTxUPik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08VD4obmV3IEZyb21Qcm9taXNlPFQ+KHByb21pc2UpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhbiBPYnNlcnZhYmxlIGludG8gYSBTdHJlYW0uXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHthbnl9IG9ic2VydmFibGUgVGhlIG9ic2VydmFibGUgdG8gYmUgY29udmVydGVkIGFzIGEgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgZnJvbU9ic2VydmFibGU8VD4ob2JzOiB7IHN1YnNjcmliZTogYW55IH0pOiBTdHJlYW08VD4ge1xuICAgIGlmICgob2JzIGFzIFN0cmVhbTxUPikuZW5kV2hlbiAhPT0gdW5kZWZpbmVkKSByZXR1cm4gb2JzIGFzIFN0cmVhbTxUPjtcbiAgICBjb25zdCBvID0gdHlwZW9mIG9ic1skJG9ic2VydmFibGVdID09PSAnZnVuY3Rpb24nID8gb2JzWyQkb2JzZXJ2YWJsZV0oKSA6IG9icztcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPihuZXcgRnJvbU9ic2VydmFibGUobykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdHJlYW0gdGhhdCBwZXJpb2RpY2FsbHkgZW1pdHMgaW5jcmVtZW50YWwgbnVtYmVycywgZXZlcnlcbiAgICogYHBlcmlvZGAgbWlsbGlzZWNvbmRzLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAgICAgcGVyaW9kaWMoMTAwMClcbiAgICogLS0tMC0tLTEtLS0yLS0tMy0tLTQtLS0uLi5cbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtudW1iZXJ9IHBlcmlvZCBUaGUgaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzIHRvIHVzZSBhcyBhIHJhdGUgb2ZcbiAgICogZW1pc3Npb24uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBwZXJpb2RpYyhwZXJpb2Q6IG51bWJlcik6IFN0cmVhbTxudW1iZXI+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxudW1iZXI+KG5ldyBQZXJpb2RpYyhwZXJpb2QpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCbGVuZHMgbXVsdGlwbGUgc3RyZWFtcyB0b2dldGhlciwgZW1pdHRpbmcgZXZlbnRzIGZyb20gYWxsIG9mIHRoZW1cbiAgICogY29uY3VycmVudGx5LlxuICAgKlxuICAgKiAqbWVyZ2UqIHRha2VzIG11bHRpcGxlIHN0cmVhbXMgYXMgYXJndW1lbnRzLCBhbmQgY3JlYXRlcyBhIHN0cmVhbSB0aGF0XG4gICAqIGJlaGF2ZXMgbGlrZSBlYWNoIG9mIHRoZSBhcmd1bWVudCBzdHJlYW1zLCBpbiBwYXJhbGxlbC5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tLTItLS0tLTMtLS0tLS0tLTQtLS1cbiAgICogLS0tLWEtLS0tLWItLS0tYy0tLWQtLS0tLS1cbiAgICogICAgICAgICAgICBtZXJnZVxuICAgKiAtLTEtYS0tMi0tYi0tMy1jLS0tZC0tNC0tLVxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0ge1N0cmVhbX0gc3RyZWFtMSBBIHN0cmVhbSB0byBtZXJnZSB0b2dldGhlciB3aXRoIG90aGVyIHN0cmVhbXMuXG4gICAqIEBwYXJhbSB7U3RyZWFtfSBzdHJlYW0yIEEgc3RyZWFtIHRvIG1lcmdlIHRvZ2V0aGVyIHdpdGggb3RoZXIgc3RyZWFtcy4gVHdvXG4gICAqIG9yIG1vcmUgc3RyZWFtcyBtYXkgYmUgZ2l2ZW4gYXMgYXJndW1lbnRzLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgbWVyZ2U6IE1lcmdlU2lnbmF0dXJlID0gZnVuY3Rpb24gbWVyZ2UoLi4uc3RyZWFtczogQXJyYXk8U3RyZWFtPGFueT4+KSB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08YW55PihuZXcgTWVyZ2Uoc3RyZWFtcykpO1xuICB9IGFzIE1lcmdlU2lnbmF0dXJlO1xuXG4gIC8qKlxuICAgKiBDb21iaW5lcyBtdWx0aXBsZSBpbnB1dCBzdHJlYW1zIHRvZ2V0aGVyIHRvIHJldHVybiBhIHN0cmVhbSB3aG9zZSBldmVudHNcbiAgICogYXJlIGFycmF5cyB0aGF0IGNvbGxlY3QgdGhlIGxhdGVzdCBldmVudHMgZnJvbSBlYWNoIGlucHV0IHN0cmVhbS5cbiAgICpcbiAgICogKmNvbWJpbmUqIGludGVybmFsbHkgcmVtZW1iZXJzIHRoZSBtb3N0IHJlY2VudCBldmVudCBmcm9tIGVhY2ggb2YgdGhlIGlucHV0XG4gICAqIHN0cmVhbXMuIFdoZW4gYW55IG9mIHRoZSBpbnB1dCBzdHJlYW1zIGVtaXRzIGFuIGV2ZW50LCB0aGF0IGV2ZW50IHRvZ2V0aGVyXG4gICAqIHdpdGggYWxsIHRoZSBvdGhlciBzYXZlZCBldmVudHMgYXJlIGNvbWJpbmVkIGludG8gYW4gYXJyYXkuIFRoYXQgYXJyYXkgd2lsbFxuICAgKiBiZSBlbWl0dGVkIG9uIHRoZSBvdXRwdXQgc3RyZWFtLiBJdCdzIGVzc2VudGlhbGx5IGEgd2F5IG9mIGpvaW5pbmcgdG9nZXRoZXJcbiAgICogdGhlIGV2ZW50cyBmcm9tIG11bHRpcGxlIHN0cmVhbXMuXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tMS0tLS0yLS0tLS0zLS0tLS0tLS00LS0tXG4gICAqIC0tLS1hLS0tLS1iLS0tLS1jLS1kLS0tLS0tXG4gICAqICAgICAgICAgIGNvbWJpbmVcbiAgICogLS0tLTFhLTJhLTJiLTNiLTNjLTNkLTRkLS1cbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtTdHJlYW19IHN0cmVhbTEgQSBzdHJlYW0gdG8gY29tYmluZSB0b2dldGhlciB3aXRoIG90aGVyIHN0cmVhbXMuXG4gICAqIEBwYXJhbSB7U3RyZWFtfSBzdHJlYW0yIEEgc3RyZWFtIHRvIGNvbWJpbmUgdG9nZXRoZXIgd2l0aCBvdGhlciBzdHJlYW1zLlxuICAgKiBNdWx0aXBsZSBzdHJlYW1zLCBub3QganVzdCB0d28sIG1heSBiZSBnaXZlbiBhcyBhcmd1bWVudHMuXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBjb21iaW5lOiBDb21iaW5lU2lnbmF0dXJlID0gZnVuY3Rpb24gY29tYmluZSguLi5zdHJlYW1zOiBBcnJheTxTdHJlYW08YW55Pj4pIHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxBcnJheTxhbnk+PihuZXcgQ29tYmluZTxhbnk+KHN0cmVhbXMpKTtcbiAgfSBhcyBDb21iaW5lU2lnbmF0dXJlO1xuXG4gIHByb3RlY3RlZCBfbWFwPFU+KHByb2plY3Q6ICh0OiBUKSA9PiBVKTogU3RyZWFtPFU+IHwgTWVtb3J5U3RyZWFtPFU+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VT4obmV3IE1hcE9wPFQsIFU+KHByb2plY3QsIHRoaXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm1zIGVhY2ggZXZlbnQgZnJvbSB0aGUgaW5wdXQgU3RyZWFtIHRocm91Z2ggYSBgcHJvamVjdGAgZnVuY3Rpb24sXG4gICAqIHRvIGdldCBhIFN0cmVhbSB0aGF0IGVtaXRzIHRob3NlIHRyYW5zZm9ybWVkIGV2ZW50cy5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tMy0tNS0tLS0tNy0tLS0tLVxuICAgKiAgICBtYXAoaSA9PiBpICogMTApXG4gICAqIC0tMTAtLTMwLTUwLS0tLTcwLS0tLS1cbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IHByb2plY3QgQSBmdW5jdGlvbiBvZiB0eXBlIGAodDogVCkgPT4gVWAgdGhhdCB0YWtlcyBldmVudFxuICAgKiBgdGAgb2YgdHlwZSBgVGAgZnJvbSB0aGUgaW5wdXQgU3RyZWFtIGFuZCBwcm9kdWNlcyBhbiBldmVudCBvZiB0eXBlIGBVYCwgdG9cbiAgICogYmUgZW1pdHRlZCBvbiB0aGUgb3V0cHV0IFN0cmVhbS5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgbWFwPFU+KHByb2plY3Q6ICh0OiBUKSA9PiBVKTogU3RyZWFtPFU+IHtcbiAgICByZXR1cm4gdGhpcy5fbWFwKHByb2plY3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0J3MgbGlrZSBgbWFwYCwgYnV0IHRyYW5zZm9ybXMgZWFjaCBpbnB1dCBldmVudCB0byBhbHdheXMgdGhlIHNhbWVcbiAgICogY29uc3RhbnQgdmFsdWUgb24gdGhlIG91dHB1dCBTdHJlYW0uXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tMS0tLTMtLTUtLS0tLTctLS0tLVxuICAgKiAgICAgICBtYXBUbygxMClcbiAgICogLS0xMC0tMTAtMTAtLS0tMTAtLS0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0gcHJvamVjdGVkVmFsdWUgQSB2YWx1ZSB0byBlbWl0IG9uIHRoZSBvdXRwdXQgU3RyZWFtIHdoZW5ldmVyIHRoZVxuICAgKiBpbnB1dCBTdHJlYW0gZW1pdHMgYW55IHZhbHVlLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBtYXBUbzxVPihwcm9qZWN0ZWRWYWx1ZTogVSk6IFN0cmVhbTxVPiB7XG4gICAgY29uc3QgcyA9IHRoaXMubWFwKCgpID0+IHByb2plY3RlZFZhbHVlKTtcbiAgICBjb25zdCBvcDogT3BlcmF0b3I8VCwgVT4gPSBzLl9wcm9kIGFzIE9wZXJhdG9yPFQsIFU+O1xuICAgIG9wLnR5cGUgPSAnbWFwVG8nO1xuICAgIHJldHVybiBzO1xuICB9XG5cbiAgZmlsdGVyPFMgZXh0ZW5kcyBUPihwYXNzZXM6ICh0OiBUKSA9PiB0IGlzIFMpOiBTdHJlYW08Uz47XG4gIGZpbHRlcihwYXNzZXM6ICh0OiBUKSA9PiBib29sZWFuKTogU3RyZWFtPFQ+O1xuICAvKipcbiAgICogT25seSBhbGxvd3MgZXZlbnRzIHRoYXQgcGFzcyB0aGUgdGVzdCBnaXZlbiBieSB0aGUgYHBhc3Nlc2AgYXJndW1lbnQuXG4gICAqXG4gICAqIEVhY2ggZXZlbnQgZnJvbSB0aGUgaW5wdXQgc3RyZWFtIGlzIGdpdmVuIHRvIHRoZSBgcGFzc2VzYCBmdW5jdGlvbi4gSWYgdGhlXG4gICAqIGZ1bmN0aW9uIHJldHVybnMgYHRydWVgLCB0aGUgZXZlbnQgaXMgZm9yd2FyZGVkIHRvIHRoZSBvdXRwdXQgc3RyZWFtLFxuICAgKiBvdGhlcndpc2UgaXQgaXMgaWdub3JlZCBhbmQgbm90IGZvcndhcmRlZC5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tMi0tMy0tLS0tNC0tLS0tNS0tLTYtLTctOC0tXG4gICAqICAgICBmaWx0ZXIoaSA9PiBpICUgMiA9PT0gMClcbiAgICogLS0tLS0tMi0tLS0tLS0tNC0tLS0tLS0tLTYtLS0tOC0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwYXNzZXMgQSBmdW5jdGlvbiBvZiB0eXBlIGAodDogVCkgPT4gYm9vbGVhbmAgdGhhdCB0YWtlc1xuICAgKiBhbiBldmVudCBmcm9tIHRoZSBpbnB1dCBzdHJlYW0gYW5kIGNoZWNrcyBpZiBpdCBwYXNzZXMsIGJ5IHJldHVybmluZyBhXG4gICAqIGJvb2xlYW4uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIGZpbHRlcihwYXNzZXM6ICh0OiBUKSA9PiBib29sZWFuKTogU3RyZWFtPFQ+IHtcbiAgICBjb25zdCBwID0gdGhpcy5fcHJvZDtcbiAgICBpZiAocCBpbnN0YW5jZW9mIEZpbHRlcilcbiAgICAgIHJldHVybiBuZXcgU3RyZWFtPFQ+KG5ldyBGaWx0ZXI8VD4oXG4gICAgICAgIGFuZCgocCBhcyBGaWx0ZXI8VD4pLmYsIHBhc3NlcyksXG4gICAgICAgIChwIGFzIEZpbHRlcjxUPikuaW5zXG4gICAgICApKTtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPihuZXcgRmlsdGVyPFQ+KHBhc3NlcywgdGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIExldHMgdGhlIGZpcnN0IGBhbW91bnRgIG1hbnkgZXZlbnRzIGZyb20gdGhlIGlucHV0IHN0cmVhbSBwYXNzIHRvIHRoZVxuICAgKiBvdXRwdXQgc3RyZWFtLCB0aGVuIG1ha2VzIHRoZSBvdXRwdXQgc3RyZWFtIGNvbXBsZXRlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLWEtLS1iLS1jLS0tLWQtLS1lLS1cbiAgICogICAgdGFrZSgzKVxuICAgKiAtLWEtLS1iLS1jfFxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGFtb3VudCBIb3cgbWFueSBldmVudHMgdG8gYWxsb3cgZnJvbSB0aGUgaW5wdXQgc3RyZWFtXG4gICAqIGJlZm9yZSBjb21wbGV0aW5nIHRoZSBvdXRwdXQgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICB0YWtlKGFtb3VudDogbnVtYmVyKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VD4obmV3IFRha2U8VD4oYW1vdW50LCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogSWdub3JlcyB0aGUgZmlyc3QgYGFtb3VudGAgbWFueSBldmVudHMgZnJvbSB0aGUgaW5wdXQgc3RyZWFtLCBhbmQgdGhlblxuICAgKiBhZnRlciB0aGF0IHN0YXJ0cyBmb3J3YXJkaW5nIGV2ZW50cyBmcm9tIHRoZSBpbnB1dCBzdHJlYW0gdG8gdGhlIG91dHB1dFxuICAgKiBzdHJlYW0uXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tYS0tLWItLWMtLS0tZC0tLWUtLVxuICAgKiAgICAgICBkcm9wKDMpXG4gICAqIC0tLS0tLS0tLS0tLS0tZC0tLWUtLVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGFtb3VudCBIb3cgbWFueSBldmVudHMgdG8gaWdub3JlIGZyb20gdGhlIGlucHV0IHN0cmVhbVxuICAgKiBiZWZvcmUgZm9yd2FyZGluZyBhbGwgZXZlbnRzIGZyb20gdGhlIGlucHV0IHN0cmVhbSB0byB0aGUgb3V0cHV0IHN0cmVhbS5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgZHJvcChhbW91bnQ6IG51bWJlcik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08VD4obmV3IERyb3A8VD4oYW1vdW50LCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiB0aGUgaW5wdXQgc3RyZWFtIGNvbXBsZXRlcywgdGhlIG91dHB1dCBzdHJlYW0gd2lsbCBlbWl0IHRoZSBsYXN0IGV2ZW50XG4gICAqIGVtaXR0ZWQgYnkgdGhlIGlucHV0IHN0cmVhbSwgYW5kIHRoZW4gd2lsbCBhbHNvIGNvbXBsZXRlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLWEtLS1iLS1jLS1kLS0tLXxcbiAgICogICAgICAgbGFzdCgpXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tZHxcbiAgICogYGBgXG4gICAqXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIGxhc3QoKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPihuZXcgTGFzdDxUPih0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogUHJlcGVuZHMgdGhlIGdpdmVuIGBpbml0aWFsYCB2YWx1ZSB0byB0aGUgc2VxdWVuY2Ugb2YgZXZlbnRzIGVtaXR0ZWQgYnkgdGhlXG4gICAqIGlucHV0IHN0cmVhbS4gVGhlIHJldHVybmVkIHN0cmVhbSBpcyBhIE1lbW9yeVN0cmVhbSwgd2hpY2ggbWVhbnMgaXQgaXNcbiAgICogYWxyZWFkeSBgcmVtZW1iZXIoKWAnZC5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0tMS0tLTItLS0tLTMtLS1cbiAgICogICBzdGFydFdpdGgoMClcbiAgICogMC0tMS0tLTItLS0tLTMtLS1cbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSBpbml0aWFsIFRoZSB2YWx1ZSBvciBldmVudCB0byBwcmVwZW5kLlxuICAgKiBAcmV0dXJuIHtNZW1vcnlTdHJlYW19XG4gICAqL1xuICBzdGFydFdpdGgoaW5pdGlhbDogVCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBNZW1vcnlTdHJlYW08VD4obmV3IFN0YXJ0V2l0aDxUPih0aGlzLCBpbml0aWFsKSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlcyBhbm90aGVyIHN0cmVhbSB0byBkZXRlcm1pbmUgd2hlbiB0byBjb21wbGV0ZSB0aGUgY3VycmVudCBzdHJlYW0uXG4gICAqXG4gICAqIFdoZW4gdGhlIGdpdmVuIGBvdGhlcmAgc3RyZWFtIGVtaXRzIGFuIGV2ZW50IG9yIGNvbXBsZXRlcywgdGhlIG91dHB1dFxuICAgKiBzdHJlYW0gd2lsbCBjb21wbGV0ZS4gQmVmb3JlIHRoYXQgaGFwcGVucywgdGhlIG91dHB1dCBzdHJlYW0gd2lsbCBiZWhhdmVzXG4gICAqIGxpa2UgdGhlIGlucHV0IHN0cmVhbS5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0tMS0tLTItLS0tLTMtLTQtLS0tNS0tLS02LS0tXG4gICAqICAgZW5kV2hlbiggLS0tLS0tLS1hLS1iLS18IClcbiAgICogLS0tMS0tLTItLS0tLTMtLTQtLXxcbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciBTb21lIG90aGVyIHN0cmVhbSB0aGF0IGlzIHVzZWQgdG8ga25vdyB3aGVuIHNob3VsZCB0aGUgb3V0cHV0XG4gICAqIHN0cmVhbSBvZiB0aGlzIG9wZXJhdG9yIGNvbXBsZXRlLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBlbmRXaGVuKG90aGVyOiBTdHJlYW08YW55Pik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyAodGhpcy5jdG9yKCkpPFQ+KG5ldyBFbmRXaGVuPFQ+KG90aGVyLCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogXCJGb2xkc1wiIHRoZSBzdHJlYW0gb250byBpdHNlbGYuXG4gICAqXG4gICAqIENvbWJpbmVzIGV2ZW50cyBmcm9tIHRoZSBwYXN0IHRocm91Z2hvdXRcbiAgICogdGhlIGVudGlyZSBleGVjdXRpb24gb2YgdGhlIGlucHV0IHN0cmVhbSwgYWxsb3dpbmcgeW91IHRvIGFjY3VtdWxhdGUgdGhlbVxuICAgKiB0b2dldGhlci4gSXQncyBlc3NlbnRpYWxseSBsaWtlIGBBcnJheS5wcm90b3R5cGUucmVkdWNlYC4gVGhlIHJldHVybmVkXG4gICAqIHN0cmVhbSBpcyBhIE1lbW9yeVN0cmVhbSwgd2hpY2ggbWVhbnMgaXQgaXMgYWxyZWFkeSBgcmVtZW1iZXIoKWAnZC5cbiAgICpcbiAgICogVGhlIG91dHB1dCBzdHJlYW0gc3RhcnRzIGJ5IGVtaXR0aW5nIHRoZSBgc2VlZGAgd2hpY2ggeW91IGdpdmUgYXMgYXJndW1lbnQuXG4gICAqIFRoZW4sIHdoZW4gYW4gZXZlbnQgaGFwcGVucyBvbiB0aGUgaW5wdXQgc3RyZWFtLCBpdCBpcyBjb21iaW5lZCB3aXRoIHRoYXRcbiAgICogc2VlZCB2YWx1ZSB0aHJvdWdoIHRoZSBgYWNjdW11bGF0ZWAgZnVuY3Rpb24sIGFuZCB0aGUgb3V0cHV0IHZhbHVlIGlzXG4gICAqIGVtaXR0ZWQgb24gdGhlIG91dHB1dCBzdHJlYW0uIGBmb2xkYCByZW1lbWJlcnMgdGhhdCBvdXRwdXQgdmFsdWUgYXMgYGFjY2BcbiAgICogKFwiYWNjdW11bGF0b3JcIiksIGFuZCB0aGVuIHdoZW4gYSBuZXcgaW5wdXQgZXZlbnQgYHRgIGhhcHBlbnMsIGBhY2NgIHdpbGwgYmVcbiAgICogY29tYmluZWQgd2l0aCB0aGF0IHRvIHByb2R1Y2UgdGhlIG5ldyBgYWNjYCBhbmQgc28gZm9ydGguXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tLS0tLTEtLS0tLTEtLTItLS0tMS0tLS0xLS0tLS0tXG4gICAqICAgZm9sZCgoYWNjLCB4KSA9PiBhY2MgKyB4LCAzKVxuICAgKiAzLS0tLS00LS0tLS01LS03LS0tLTgtLS0tOS0tLS0tLVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gYWNjdW11bGF0ZSBBIGZ1bmN0aW9uIG9mIHR5cGUgYChhY2M6IFIsIHQ6IFQpID0+IFJgIHRoYXRcbiAgICogdGFrZXMgdGhlIHByZXZpb3VzIGFjY3VtdWxhdGVkIHZhbHVlIGBhY2NgIGFuZCB0aGUgaW5jb21pbmcgZXZlbnQgZnJvbSB0aGVcbiAgICogaW5wdXQgc3RyZWFtIGFuZCBwcm9kdWNlcyB0aGUgbmV3IGFjY3VtdWxhdGVkIHZhbHVlLlxuICAgKiBAcGFyYW0gc2VlZCBUaGUgaW5pdGlhbCBhY2N1bXVsYXRlZCB2YWx1ZSwgb2YgdHlwZSBgUmAuXG4gICAqIEByZXR1cm4ge01lbW9yeVN0cmVhbX1cbiAgICovXG4gIGZvbGQ8Uj4oYWNjdW11bGF0ZTogKGFjYzogUiwgdDogVCkgPT4gUiwgc2VlZDogUik6IE1lbW9yeVN0cmVhbTxSPiB7XG4gICAgcmV0dXJuIG5ldyBNZW1vcnlTdHJlYW08Uj4obmV3IEZvbGQ8VCwgUj4oYWNjdW11bGF0ZSwgc2VlZCwgdGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFuIGVycm9yIHdpdGggYW5vdGhlciBzdHJlYW0uXG4gICAqXG4gICAqIFdoZW4gKGFuZCBpZikgYW4gZXJyb3IgaGFwcGVucyBvbiB0aGUgaW5wdXQgc3RyZWFtLCBpbnN0ZWFkIG9mIGZvcndhcmRpbmdcbiAgICogdGhhdCBlcnJvciB0byB0aGUgb3V0cHV0IHN0cmVhbSwgKnJlcGxhY2VFcnJvciogd2lsbCBjYWxsIHRoZSBgcmVwbGFjZWBcbiAgICogZnVuY3Rpb24gd2hpY2ggcmV0dXJucyB0aGUgc3RyZWFtIHRoYXQgdGhlIG91dHB1dCBzdHJlYW0gd2lsbCByZXBsaWNhdGUuXG4gICAqIEFuZCwgaW4gY2FzZSB0aGF0IG5ldyBzdHJlYW0gYWxzbyBlbWl0cyBhbiBlcnJvciwgYHJlcGxhY2VgIHdpbGwgYmUgY2FsbGVkXG4gICAqIGFnYWluIHRvIGdldCBhbm90aGVyIHN0cmVhbSB0byBzdGFydCByZXBsaWNhdGluZy5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tMi0tLS0tMy0tNC0tLS0tWFxuICAgKiAgIHJlcGxhY2VFcnJvciggKCkgPT4gLS0xMC0tfCApXG4gICAqIC0tMS0tLTItLS0tLTMtLTQtLS0tLS0tLTEwLS18XG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSByZXBsYWNlIEEgZnVuY3Rpb24gb2YgdHlwZSBgKGVycikgPT4gU3RyZWFtYCB0aGF0IHRha2VzXG4gICAqIHRoZSBlcnJvciB0aGF0IG9jY3VycmVkIG9uIHRoZSBpbnB1dCBzdHJlYW0gb3Igb24gdGhlIHByZXZpb3VzIHJlcGxhY2VtZW50XG4gICAqIHN0cmVhbSBhbmQgcmV0dXJucyBhIG5ldyBzdHJlYW0uIFRoZSBvdXRwdXQgc3RyZWFtIHdpbGwgYmVoYXZlIGxpa2UgdGhlXG4gICAqIHN0cmVhbSB0aGF0IHRoaXMgZnVuY3Rpb24gcmV0dXJucy5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgcmVwbGFjZUVycm9yKHJlcGxhY2U6IChlcnI6IGFueSkgPT4gU3RyZWFtPFQ+KTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VD4obmV3IFJlcGxhY2VFcnJvcjxUPihyZXBsYWNlLCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogRmxhdHRlbnMgYSBcInN0cmVhbSBvZiBzdHJlYW1zXCIsIGhhbmRsaW5nIG9ubHkgb25lIG5lc3RlZCBzdHJlYW0gYXQgYSB0aW1lXG4gICAqIChubyBjb25jdXJyZW5jeSkuXG4gICAqXG4gICAqIElmIHRoZSBpbnB1dCBzdHJlYW0gaXMgYSBzdHJlYW0gdGhhdCBlbWl0cyBzdHJlYW1zLCB0aGVuIHRoaXMgb3BlcmF0b3Igd2lsbFxuICAgKiByZXR1cm4gYW4gb3V0cHV0IHN0cmVhbSB3aGljaCBpcyBhIGZsYXQgc3RyZWFtOiBlbWl0cyByZWd1bGFyIGV2ZW50cy4gVGhlXG4gICAqIGZsYXR0ZW5pbmcgaGFwcGVucyB3aXRob3V0IGNvbmN1cnJlbmN5LiBJdCB3b3JrcyBsaWtlIHRoaXM6IHdoZW4gdGhlIGlucHV0XG4gICAqIHN0cmVhbSBlbWl0cyBhIG5lc3RlZCBzdHJlYW0sICpmbGF0dGVuKiB3aWxsIHN0YXJ0IGltaXRhdGluZyB0aGF0IG5lc3RlZFxuICAgKiBvbmUuIEhvd2V2ZXIsIGFzIHNvb24gYXMgdGhlIG5leHQgbmVzdGVkIHN0cmVhbSBpcyBlbWl0dGVkIG9uIHRoZSBpbnB1dFxuICAgKiBzdHJlYW0sICpmbGF0dGVuKiB3aWxsIGZvcmdldCB0aGUgcHJldmlvdXMgbmVzdGVkIG9uZSBpdCB3YXMgaW1pdGF0aW5nLCBhbmRcbiAgICogd2lsbCBzdGFydCBpbWl0YXRpbmcgdGhlIG5ldyBuZXN0ZWQgb25lLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS1cbiAgICogICBcXCAgICAgICAgXFxcbiAgICogICAgXFwgICAgICAgLS0tLTEtLS0tMi0tLTMtLVxuICAgKiAgICAtLWEtLWItLS0tYy0tLS1kLS0tLS0tLS1cbiAgICogICAgICAgICAgIGZsYXR0ZW5cbiAgICogLS0tLS1hLS1iLS0tLS0tMS0tLS0yLS0tMy0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBmbGF0dGVuPFI+KHRoaXM6IFN0cmVhbTxTdHJlYW08Uj4gfCBNZW1vcnlTdHJlYW08Uj4+KTogU3RyZWFtPFI+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxSPihuZXcgRmxhdHRlbih0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogUGFzc2VzIHRoZSBpbnB1dCBzdHJlYW0gdG8gYSBjdXN0b20gb3BlcmF0b3IsIHRvIHByb2R1Y2UgYW4gb3V0cHV0IHN0cmVhbS5cbiAgICpcbiAgICogKmNvbXBvc2UqIGlzIGEgaGFuZHkgd2F5IG9mIHVzaW5nIGFuIGV4aXN0aW5nIGZ1bmN0aW9uIGluIGEgY2hhaW5lZCBzdHlsZS5cbiAgICogSW5zdGVhZCBvZiB3cml0aW5nIGBvdXRTdHJlYW0gPSBmKGluU3RyZWFtKWAgeW91IGNhbiB3cml0ZVxuICAgKiBgb3V0U3RyZWFtID0gaW5TdHJlYW0uY29tcG9zZShmKWAuXG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IG9wZXJhdG9yIEEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIHN0cmVhbSBhcyBpbnB1dCBhbmRcbiAgICogcmV0dXJucyBhIHN0cmVhbSBhcyB3ZWxsLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBjb21wb3NlPFU+KG9wZXJhdG9yOiAoc3RyZWFtOiBTdHJlYW08VD4pID0+IFUpOiBVIHtcbiAgICByZXR1cm4gb3BlcmF0b3IodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvdXRwdXQgc3RyZWFtIHRoYXQgYmVoYXZlcyBsaWtlIHRoZSBpbnB1dCBzdHJlYW0sIGJ1dCBhbHNvXG4gICAqIHJlbWVtYmVycyB0aGUgbW9zdCByZWNlbnQgZXZlbnQgdGhhdCBoYXBwZW5zIG9uIHRoZSBpbnB1dCBzdHJlYW0sIHNvIHRoYXQgYVxuICAgKiBuZXdseSBhZGRlZCBsaXN0ZW5lciB3aWxsIGltbWVkaWF0ZWx5IHJlY2VpdmUgdGhhdCBtZW1vcmlzZWQgZXZlbnQuXG4gICAqXG4gICAqIEByZXR1cm4ge01lbW9yeVN0cmVhbX1cbiAgICovXG4gIHJlbWVtYmVyKCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBNZW1vcnlTdHJlYW08VD4obmV3IFJlbWVtYmVyPFQ+KHRoaXMpKTtcbiAgfVxuXG4gIGRlYnVnKCk6IFN0cmVhbTxUPjtcbiAgZGVidWcobGFiZWxPclNweTogc3RyaW5nKTogU3RyZWFtPFQ+O1xuICBkZWJ1ZyhsYWJlbE9yU3B5OiAodDogVCkgPT4gYW55KTogU3RyZWFtPFQ+O1xuICAvKipcbiAgICogUmV0dXJucyBhbiBvdXRwdXQgc3RyZWFtIHRoYXQgaWRlbnRpY2FsbHkgYmVoYXZlcyBsaWtlIHRoZSBpbnB1dCBzdHJlYW0sXG4gICAqIGJ1dCBhbHNvIHJ1bnMgYSBgc3B5YCBmdW5jdGlvbiBmb3IgZWFjaCBldmVudCwgdG8gaGVscCB5b3UgZGVidWcgeW91ciBhcHAuXG4gICAqXG4gICAqICpkZWJ1ZyogdGFrZXMgYSBgc3B5YCBmdW5jdGlvbiBhcyBhcmd1bWVudCwgYW5kIHJ1bnMgdGhhdCBmb3IgZWFjaCBldmVudFxuICAgKiBoYXBwZW5pbmcgb24gdGhlIGlucHV0IHN0cmVhbS4gSWYgeW91IGRvbid0IHByb3ZpZGUgdGhlIGBzcHlgIGFyZ3VtZW50LFxuICAgKiB0aGVuICpkZWJ1Zyogd2lsbCBqdXN0IGBjb25zb2xlLmxvZ2AgZWFjaCBldmVudC4gVGhpcyBoZWxwcyB5b3UgdG9cbiAgICogdW5kZXJzdGFuZCB0aGUgZmxvdyBvZiBldmVudHMgdGhyb3VnaCBzb21lIG9wZXJhdG9yIGNoYWluLlxuICAgKlxuICAgKiBQbGVhc2Ugbm90ZSB0aGF0IGlmIHRoZSBvdXRwdXQgc3RyZWFtIGhhcyBubyBsaXN0ZW5lcnMsIHRoZW4gaXQgd2lsbCBub3RcbiAgICogc3RhcnQsIHdoaWNoIG1lYW5zIGBzcHlgIHdpbGwgbmV2ZXIgcnVuIGJlY2F1c2Ugbm8gYWN0dWFsIGV2ZW50IGhhcHBlbnMgaW5cbiAgICogdGhhdCBjYXNlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLTEtLS0tMi0tLS0tMy0tLS0tNC0tXG4gICAqICAgICAgICAgZGVidWdcbiAgICogLS0xLS0tLTItLS0tLTMtLS0tLTQtLVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gbGFiZWxPclNweSBBIHN0cmluZyB0byB1c2UgYXMgdGhlIGxhYmVsIHdoZW4gcHJpbnRpbmdcbiAgICogZGVidWcgaW5mb3JtYXRpb24gb24gdGhlIGNvbnNvbGUsIG9yIGEgJ3NweScgZnVuY3Rpb24gdGhhdCB0YWtlcyBhbiBldmVudFxuICAgKiBhcyBhcmd1bWVudCwgYW5kIGRvZXMgbm90IG5lZWQgdG8gcmV0dXJuIGFueXRoaW5nLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBkZWJ1ZyhsYWJlbE9yU3B5Pzogc3RyaW5nIHwgKCh0OiBUKSA9PiBhbnkpKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VD4obmV3IERlYnVnPFQ+KHRoaXMsIGxhYmVsT3JTcHkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAqaW1pdGF0ZSogY2hhbmdlcyB0aGlzIGN1cnJlbnQgU3RyZWFtIHRvIGVtaXQgdGhlIHNhbWUgZXZlbnRzIHRoYXQgdGhlXG4gICAqIGBvdGhlcmAgZ2l2ZW4gU3RyZWFtIGRvZXMuIFRoaXMgbWV0aG9kIHJldHVybnMgbm90aGluZy5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgZXhpc3RzIHRvIGFsbG93IG9uZSB0aGluZzogKipjaXJjdWxhciBkZXBlbmRlbmN5IG9mIHN0cmVhbXMqKi5cbiAgICogRm9yIGluc3RhbmNlLCBsZXQncyBpbWFnaW5lIHRoYXQgZm9yIHNvbWUgcmVhc29uIHlvdSBuZWVkIHRvIGNyZWF0ZSBhXG4gICAqIGNpcmN1bGFyIGRlcGVuZGVuY3kgd2hlcmUgc3RyZWFtIGBmaXJzdCRgIGRlcGVuZHMgb24gc3RyZWFtIGBzZWNvbmQkYFxuICAgKiB3aGljaCBpbiB0dXJuIGRlcGVuZHMgb24gYGZpcnN0JGA6XG4gICAqXG4gICAqIDwhLS0gc2tpcC1leGFtcGxlIC0tPlxuICAgKiBgYGBqc1xuICAgKiBpbXBvcnQgZGVsYXkgZnJvbSAneHN0cmVhbS9leHRyYS9kZWxheSdcbiAgICpcbiAgICogdmFyIGZpcnN0JCA9IHNlY29uZCQubWFwKHggPT4geCAqIDEwKS50YWtlKDMpO1xuICAgKiB2YXIgc2Vjb25kJCA9IGZpcnN0JC5tYXAoeCA9PiB4ICsgMSkuc3RhcnRXaXRoKDEpLmNvbXBvc2UoZGVsYXkoMTAwKSk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBIb3dldmVyLCB0aGF0IGlzIGludmFsaWQgSmF2YVNjcmlwdCwgYmVjYXVzZSBgc2Vjb25kJGAgaXMgdW5kZWZpbmVkXG4gICAqIG9uIHRoZSBmaXJzdCBsaW5lLiBUaGlzIGlzIGhvdyAqaW1pdGF0ZSogY2FuIGhlbHAgc29sdmUgaXQ6XG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGltcG9ydCBkZWxheSBmcm9tICd4c3RyZWFtL2V4dHJhL2RlbGF5J1xuICAgKlxuICAgKiB2YXIgc2Vjb25kUHJveHkkID0geHMuY3JlYXRlKCk7XG4gICAqIHZhciBmaXJzdCQgPSBzZWNvbmRQcm94eSQubWFwKHggPT4geCAqIDEwKS50YWtlKDMpO1xuICAgKiB2YXIgc2Vjb25kJCA9IGZpcnN0JC5tYXAoeCA9PiB4ICsgMSkuc3RhcnRXaXRoKDEpLmNvbXBvc2UoZGVsYXkoMTAwKSk7XG4gICAqIHNlY29uZFByb3h5JC5pbWl0YXRlKHNlY29uZCQpO1xuICAgKiBgYGBcbiAgICpcbiAgICogV2UgY3JlYXRlIGBzZWNvbmRQcm94eSRgIGJlZm9yZSB0aGUgb3RoZXJzLCBzbyBpdCBjYW4gYmUgdXNlZCBpbiB0aGVcbiAgICogZGVjbGFyYXRpb24gb2YgYGZpcnN0JGAuIFRoZW4sIGFmdGVyIGJvdGggYGZpcnN0JGAgYW5kIGBzZWNvbmQkYCBhcmVcbiAgICogZGVmaW5lZCwgd2UgaG9vayBgc2Vjb25kUHJveHkkYCB3aXRoIGBzZWNvbmQkYCB3aXRoIGBpbWl0YXRlKClgIHRvIHRlbGxcbiAgICogdGhhdCB0aGV5IGFyZSBcInRoZSBzYW1lXCIuIGBpbWl0YXRlYCB3aWxsIG5vdCB0cmlnZ2VyIHRoZSBzdGFydCBvZiBhbnlcbiAgICogc3RyZWFtLCBpdCBqdXN0IGJpbmRzIGBzZWNvbmRQcm94eSRgIGFuZCBgc2Vjb25kJGAgdG9nZXRoZXIuXG4gICAqXG4gICAqIFRoZSBmb2xsb3dpbmcgaXMgYW4gZXhhbXBsZSB3aGVyZSBgaW1pdGF0ZSgpYCBpcyBpbXBvcnRhbnQgaW4gQ3ljbGUuanNcbiAgICogYXBwbGljYXRpb25zLiBBIHBhcmVudCBjb21wb25lbnQgY29udGFpbnMgc29tZSBjaGlsZCBjb21wb25lbnRzLiBBIGNoaWxkXG4gICAqIGhhcyBhbiBhY3Rpb24gc3RyZWFtIHdoaWNoIGlzIGdpdmVuIHRvIHRoZSBwYXJlbnQgdG8gZGVmaW5lIGl0cyBzdGF0ZTpcbiAgICpcbiAgICogPCEtLSBza2lwLWV4YW1wbGUgLS0+XG4gICAqIGBgYGpzXG4gICAqIGNvbnN0IGNoaWxkQWN0aW9uUHJveHkkID0geHMuY3JlYXRlKCk7XG4gICAqIGNvbnN0IHBhcmVudCA9IFBhcmVudCh7Li4uc291cmNlcywgY2hpbGRBY3Rpb24kOiBjaGlsZEFjdGlvblByb3h5JH0pO1xuICAgKiBjb25zdCBjaGlsZEFjdGlvbiQgPSBwYXJlbnQuc3RhdGUkLm1hcChzID0+IHMuY2hpbGQuYWN0aW9uJCkuZmxhdHRlbigpO1xuICAgKiBjaGlsZEFjdGlvblByb3h5JC5pbWl0YXRlKGNoaWxkQWN0aW9uJCk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBOb3RlLCB0aG91Z2gsIHRoYXQgKipgaW1pdGF0ZSgpYCBkb2VzIG5vdCBzdXBwb3J0IE1lbW9yeVN0cmVhbXMqKi4gSWYgd2VcbiAgICogd291bGQgYXR0ZW1wdCB0byBpbWl0YXRlIGEgTWVtb3J5U3RyZWFtIGluIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSwgd2Ugd291bGRcbiAgICogZWl0aGVyIGdldCBhIHJhY2UgY29uZGl0aW9uICh3aGVyZSB0aGUgc3ltcHRvbSB3b3VsZCBiZSBcIm5vdGhpbmcgaGFwcGVuc1wiKVxuICAgKiBvciBhbiBpbmZpbml0ZSBjeWNsaWMgZW1pc3Npb24gb2YgdmFsdWVzLiBJdCdzIHVzZWZ1bCB0byB0aGluayBhYm91dFxuICAgKiBNZW1vcnlTdHJlYW1zIGFzIGNlbGxzIGluIGEgc3ByZWFkc2hlZXQuIEl0IGRvZXNuJ3QgbWFrZSBhbnkgc2Vuc2UgdG9cbiAgICogZGVmaW5lIGEgc3ByZWFkc2hlZXQgY2VsbCBgQTFgIHdpdGggYSBmb3JtdWxhIHRoYXQgZGVwZW5kcyBvbiBgQjFgIGFuZFxuICAgKiBjZWxsIGBCMWAgZGVmaW5lZCB3aXRoIGEgZm9ybXVsYSB0aGF0IGRlcGVuZHMgb24gYEExYC5cbiAgICpcbiAgICogSWYgeW91IGZpbmQgeW91cnNlbGYgd2FudGluZyB0byB1c2UgYGltaXRhdGUoKWAgd2l0aCBhXG4gICAqIE1lbW9yeVN0cmVhbSwgeW91IHNob3VsZCByZXdvcmsgeW91ciBjb2RlIGFyb3VuZCBgaW1pdGF0ZSgpYCB0byB1c2UgYVxuICAgKiBTdHJlYW0gaW5zdGVhZC4gTG9vayBmb3IgdGhlIHN0cmVhbSBpbiB0aGUgY2lyY3VsYXIgZGVwZW5kZW5jeSB0aGF0XG4gICAqIHJlcHJlc2VudHMgYW4gZXZlbnQgc3RyZWFtLCBhbmQgdGhhdCB3b3VsZCBiZSBhIGNhbmRpZGF0ZSBmb3IgY3JlYXRpbmcgYVxuICAgKiBwcm94eSBTdHJlYW0gd2hpY2ggdGhlbiBpbWl0YXRlcyB0aGUgdGFyZ2V0IFN0cmVhbS5cbiAgICpcbiAgICogQHBhcmFtIHtTdHJlYW19IHRhcmdldCBUaGUgb3RoZXIgc3RyZWFtIHRvIGltaXRhdGUgb24gdGhlIGN1cnJlbnQgb25lLiBNdXN0XG4gICAqIG5vdCBiZSBhIE1lbW9yeVN0cmVhbS5cbiAgICovXG4gIGltaXRhdGUodGFyZ2V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgTWVtb3J5U3RyZWFtKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBIE1lbW9yeVN0cmVhbSB3YXMgZ2l2ZW4gdG8gaW1pdGF0ZSgpLCBidXQgaXQgb25seSAnICtcbiAgICAgICAgJ3N1cHBvcnRzIGEgU3RyZWFtLiBSZWFkIG1vcmUgYWJvdXQgdGhpcyByZXN0cmljdGlvbiBoZXJlOiAnICtcbiAgICAgICAgJ2h0dHBzOi8vZ2l0aHViLmNvbS9zdGFsdHoveHN0cmVhbSNmYXEnKTtcbiAgICB0aGlzLl90YXJnZXQgPSB0YXJnZXQ7XG4gICAgZm9yIChsZXQgaWxzID0gdGhpcy5faWxzLCBOID0gaWxzLmxlbmd0aCwgaSA9IDA7IGkgPCBOOyBpKyspIHRhcmdldC5fYWRkKGlsc1tpXSk7XG4gICAgdGhpcy5faWxzID0gW107XG4gIH1cblxuICAvKipcbiAgICogRm9yY2VzIHRoZSBTdHJlYW0gdG8gZW1pdCB0aGUgZ2l2ZW4gdmFsdWUgdG8gaXRzIGxpc3RlbmVycy5cbiAgICpcbiAgICogQXMgdGhlIG5hbWUgaW5kaWNhdGVzLCBpZiB5b3UgdXNlIHRoaXMsIHlvdSBhcmUgbW9zdCBsaWtlbHkgZG9pbmcgc29tZXRoaW5nXG4gICAqIFRoZSBXcm9uZyBXYXkuIFBsZWFzZSB0cnkgdG8gdW5kZXJzdGFuZCB0aGUgcmVhY3RpdmUgd2F5IGJlZm9yZSB1c2luZyB0aGlzXG4gICAqIG1ldGhvZC4gVXNlIGl0IG9ubHkgd2hlbiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgXCJuZXh0XCIgdmFsdWUgeW91IHdhbnQgdG8gYnJvYWRjYXN0IHRvIGFsbCBsaXN0ZW5lcnMgb2ZcbiAgICogdGhpcyBTdHJlYW0uXG4gICAqL1xuICBzaGFtZWZ1bGx5U2VuZE5leHQodmFsdWU6IFQpIHtcbiAgICB0aGlzLl9uKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JjZXMgdGhlIFN0cmVhbSB0byBlbWl0IHRoZSBnaXZlbiBlcnJvciB0byBpdHMgbGlzdGVuZXJzLlxuICAgKlxuICAgKiBBcyB0aGUgbmFtZSBpbmRpY2F0ZXMsIGlmIHlvdSB1c2UgdGhpcywgeW91IGFyZSBtb3N0IGxpa2VseSBkb2luZyBzb21ldGhpbmdcbiAgICogVGhlIFdyb25nIFdheS4gUGxlYXNlIHRyeSB0byB1bmRlcnN0YW5kIHRoZSByZWFjdGl2ZSB3YXkgYmVmb3JlIHVzaW5nIHRoaXNcbiAgICogbWV0aG9kLiBVc2UgaXQgb25seSB3aGVuIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy5cbiAgICpcbiAgICogQHBhcmFtIHthbnl9IGVycm9yIFRoZSBlcnJvciB5b3Ugd2FudCB0byBicm9hZGNhc3QgdG8gYWxsIHRoZSBsaXN0ZW5lcnMgb2ZcbiAgICogdGhpcyBTdHJlYW0uXG4gICAqL1xuICBzaGFtZWZ1bGx5U2VuZEVycm9yKGVycm9yOiBhbnkpIHtcbiAgICB0aGlzLl9lKGVycm9yKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JjZXMgdGhlIFN0cmVhbSB0byBlbWl0IHRoZSBcImNvbXBsZXRlZFwiIGV2ZW50IHRvIGl0cyBsaXN0ZW5lcnMuXG4gICAqXG4gICAqIEFzIHRoZSBuYW1lIGluZGljYXRlcywgaWYgeW91IHVzZSB0aGlzLCB5b3UgYXJlIG1vc3QgbGlrZWx5IGRvaW5nIHNvbWV0aGluZ1xuICAgKiBUaGUgV3JvbmcgV2F5LiBQbGVhc2UgdHJ5IHRvIHVuZGVyc3RhbmQgdGhlIHJlYWN0aXZlIHdheSBiZWZvcmUgdXNpbmcgdGhpc1xuICAgKiBtZXRob2QuIFVzZSBpdCBvbmx5IHdoZW4geW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLlxuICAgKi9cbiAgc2hhbWVmdWxseVNlbmRDb21wbGV0ZSgpIHtcbiAgICB0aGlzLl9jKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIFwiZGVidWdcIiBsaXN0ZW5lciB0byB0aGUgc3RyZWFtLiBUaGVyZSBjYW4gb25seSBiZSBvbmUgZGVidWdcbiAgICogbGlzdGVuZXIsIHRoYXQncyB3aHkgdGhpcyBpcyAnc2V0RGVidWdMaXN0ZW5lcicuIFRvIHJlbW92ZSB0aGUgZGVidWdcbiAgICogbGlzdGVuZXIsIGp1c3QgY2FsbCBzZXREZWJ1Z0xpc3RlbmVyKG51bGwpLlxuICAgKlxuICAgKiBBIGRlYnVnIGxpc3RlbmVyIGlzIGxpa2UgYW55IG90aGVyIGxpc3RlbmVyLiBUaGUgb25seSBkaWZmZXJlbmNlIGlzIHRoYXQgYVxuICAgKiBkZWJ1ZyBsaXN0ZW5lciBpcyBcInN0ZWFsdGh5XCI6IGl0cyBwcmVzZW5jZS9hYnNlbmNlIGRvZXMgbm90IHRyaWdnZXIgdGhlXG4gICAqIHN0YXJ0L3N0b3Agb2YgdGhlIHN0cmVhbSAob3IgdGhlIHByb2R1Y2VyIGluc2lkZSB0aGUgc3RyZWFtKS4gVGhpcyBpc1xuICAgKiB1c2VmdWwgc28geW91IGNhbiBpbnNwZWN0IHdoYXQgaXMgZ29pbmcgb24gd2l0aG91dCBjaGFuZ2luZyB0aGUgYmVoYXZpb3JcbiAgICogb2YgdGhlIHByb2dyYW0uIElmIHlvdSBoYXZlIGFuIGlkbGUgc3RyZWFtIGFuZCB5b3UgYWRkIGEgbm9ybWFsIGxpc3RlbmVyIHRvXG4gICAqIGl0LCB0aGUgc3RyZWFtIHdpbGwgc3RhcnQgZXhlY3V0aW5nLiBCdXQgaWYgeW91IHNldCBhIGRlYnVnIGxpc3RlbmVyIG9uIGFuXG4gICAqIGlkbGUgc3RyZWFtLCBpdCB3b24ndCBzdGFydCBleGVjdXRpbmcgKG5vdCB1bnRpbCB0aGUgZmlyc3Qgbm9ybWFsIGxpc3RlbmVyXG4gICAqIGlzIGFkZGVkKS5cbiAgICpcbiAgICogQXMgdGhlIG5hbWUgaW5kaWNhdGVzLCB3ZSBkb24ndCByZWNvbW1lbmQgdXNpbmcgdGhpcyBtZXRob2QgdG8gYnVpbGQgYXBwXG4gICAqIGxvZ2ljLiBJbiBmYWN0LCBpbiBtb3N0IGNhc2VzIHRoZSBkZWJ1ZyBvcGVyYXRvciB3b3JrcyBqdXN0IGZpbmUuIE9ubHkgdXNlXG4gICAqIHRoaXMgb25lIGlmIHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge0xpc3RlbmVyPFQ+fSBsaXN0ZW5lclxuICAgKi9cbiAgc2V0RGVidWdMaXN0ZW5lcihsaXN0ZW5lcjogUGFydGlhbDxMaXN0ZW5lcjxUPj4gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCFsaXN0ZW5lcikge1xuICAgICAgdGhpcy5fZCA9IGZhbHNlO1xuICAgICAgdGhpcy5fZGwgPSBOTyBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9kID0gdHJ1ZTtcbiAgICAgIChsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+KS5fbiA9IGxpc3RlbmVyLm5leHQgfHwgbm9vcDtcbiAgICAgIChsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+KS5fZSA9IGxpc3RlbmVyLmVycm9yIHx8IG5vb3A7XG4gICAgICAobGlzdGVuZXIgYXMgSW50ZXJuYWxMaXN0ZW5lcjxUPikuX2MgPSBsaXN0ZW5lci5jb21wbGV0ZSB8fCBub29wO1xuICAgICAgdGhpcy5fZGwgPSBsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+O1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTWVtb3J5U3RyZWFtPFQ+IGV4dGVuZHMgU3RyZWFtPFQ+IHtcbiAgcHJpdmF0ZSBfdj86IFQ7XG4gIHByaXZhdGUgX2hhcz86IGJvb2xlYW4gPSBmYWxzZTtcbiAgY29uc3RydWN0b3IocHJvZHVjZXI6IEludGVybmFsUHJvZHVjZXI8VD4pIHtcbiAgICBzdXBlcihwcm9kdWNlcik7XG4gIH1cblxuICBfbih4OiBUKSB7XG4gICAgdGhpcy5fdiA9IHg7XG4gICAgdGhpcy5faGFzID0gdHJ1ZTtcbiAgICBzdXBlci5fbih4KTtcbiAgfVxuXG4gIF9hZGQoaWw6IEludGVybmFsTGlzdGVuZXI8VD4pOiB2b2lkIHtcbiAgICBjb25zdCB0YSA9IHRoaXMuX3RhcmdldDtcbiAgICBpZiAodGEpIHJldHVybiB0YS5fYWRkKGlsKTtcbiAgICBjb25zdCBhID0gdGhpcy5faWxzO1xuICAgIGEucHVzaChpbCk7XG4gICAgaWYgKGEubGVuZ3RoID4gMSkge1xuICAgICAgaWYgKHRoaXMuX2hhcykgaWwuX24odGhpcy5fdiEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5fc3RvcElEICE9PSBOTykge1xuICAgICAgaWYgKHRoaXMuX2hhcykgaWwuX24odGhpcy5fdiEpO1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3N0b3BJRCk7XG4gICAgICB0aGlzLl9zdG9wSUQgPSBOTztcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2hhcykgaWwuX24odGhpcy5fdiEpOyBlbHNlIHtcbiAgICAgIGNvbnN0IHAgPSB0aGlzLl9wcm9kO1xuICAgICAgaWYgKHAgIT09IE5PKSBwLl9zdGFydCh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBfc3RvcE5vdygpIHtcbiAgICB0aGlzLl9oYXMgPSBmYWxzZTtcbiAgICBzdXBlci5fc3RvcE5vdygpO1xuICB9XG5cbiAgX3goKTogdm9pZCB7XG4gICAgdGhpcy5faGFzID0gZmFsc2U7XG4gICAgc3VwZXIuX3goKTtcbiAgfVxuXG4gIG1hcDxVPihwcm9qZWN0OiAodDogVCkgPT4gVSk6IE1lbW9yeVN0cmVhbTxVPiB7XG4gICAgcmV0dXJuIHRoaXMuX21hcChwcm9qZWN0KSBhcyBNZW1vcnlTdHJlYW08VT47XG4gIH1cblxuICBtYXBUbzxVPihwcm9qZWN0ZWRWYWx1ZTogVSk6IE1lbW9yeVN0cmVhbTxVPiB7XG4gICAgcmV0dXJuIHN1cGVyLm1hcFRvKHByb2plY3RlZFZhbHVlKSBhcyBNZW1vcnlTdHJlYW08VT47XG4gIH1cblxuICB0YWtlKGFtb3VudDogbnVtYmVyKTogTWVtb3J5U3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gc3VwZXIudGFrZShhbW91bnQpIGFzIE1lbW9yeVN0cmVhbTxUPjtcbiAgfVxuXG4gIGVuZFdoZW4ob3RoZXI6IFN0cmVhbTxhbnk+KTogTWVtb3J5U3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gc3VwZXIuZW5kV2hlbihvdGhlcikgYXMgTWVtb3J5U3RyZWFtPFQ+O1xuICB9XG5cbiAgcmVwbGFjZUVycm9yKHJlcGxhY2U6IChlcnI6IGFueSkgPT4gU3RyZWFtPFQ+KTogTWVtb3J5U3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gc3VwZXIucmVwbGFjZUVycm9yKHJlcGxhY2UpIGFzIE1lbW9yeVN0cmVhbTxUPjtcbiAgfVxuXG4gIHJlbWVtYmVyKCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkZWJ1ZygpOiBNZW1vcnlTdHJlYW08VD47XG4gIGRlYnVnKGxhYmVsT3JTcHk6IHN0cmluZyk6IE1lbW9yeVN0cmVhbTxUPjtcbiAgZGVidWcobGFiZWxPclNweTogKHQ6IFQpID0+IGFueSk6IE1lbW9yeVN0cmVhbTxUPjtcbiAgZGVidWcobGFiZWxPclNweT86IHN0cmluZyB8ICgodDogVCkgPT4gYW55KSB8IHVuZGVmaW5lZCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIHN1cGVyLmRlYnVnKGxhYmVsT3JTcHkgYXMgYW55KSBhcyBNZW1vcnlTdHJlYW08VD47XG4gIH1cbn1cblxuZXhwb3J0IHsgTk8sIE5PX0lMIH07XG5jb25zdCB4cyA9IFN0cmVhbTtcbnR5cGUgeHM8VD4gPSBTdHJlYW08VD47XG5leHBvcnQgZGVmYXVsdCB4cztcbiJdfQ==","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = create;\nconst is_message_js_1 = require(\"./is-message.js\");\nconst descriptors_js_1 = require(\"./descriptors.js\");\nconst scalar_js_1 = require(\"./reflect/scalar.js\");\nconst guard_js_1 = require(\"./reflect/guard.js\");\nconst unsafe_js_1 = require(\"./reflect/unsafe.js\");\nconst wrappers_js_1 = require(\"./wkt/wrappers.js\");\n// bootstrap-inject google.protobuf.Edition.EDITION_PROTO3: const $name: Edition.$localName = $number;\nconst EDITION_PROTO3 = 999;\n// bootstrap-inject google.protobuf.Edition.EDITION_PROTO2: const $name: Edition.$localName = $number;\nconst EDITION_PROTO2 = 998;\n// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.IMPLICIT: const $name: FeatureSet_FieldPresence.$localName = $number;\nconst IMPLICIT = 2;\n/**\n * Create a new message instance.\n *\n * The second argument is an optional initializer object, where all fields are\n * optional.\n */\nfunction create(schema, init) {\n if ((0, is_message_js_1.isMessage)(init, schema)) {\n return init;\n }\n const message = createZeroMessage(schema);\n if (init !== undefined) {\n initMessage(schema, message, init);\n }\n return message;\n}\n/**\n * Sets field values from a MessageInitShape on a zero message.\n */\nfunction initMessage(messageDesc, message, init) {\n for (const member of messageDesc.members) {\n let value = init[member.localName];\n if (value == null) {\n // intentionally ignore undefined and null\n continue;\n }\n let field;\n if (member.kind == \"oneof\") {\n const oneofField = (0, unsafe_js_1.unsafeOneofCase)(init, member);\n if (!oneofField) {\n continue;\n }\n field = oneofField;\n value = (0, unsafe_js_1.unsafeGet)(init, oneofField);\n }\n else {\n field = member;\n }\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- no need to convert enum\n switch (field.fieldKind) {\n case \"message\":\n value = toMessage(field, value);\n break;\n case \"scalar\":\n value = initScalar(field, value);\n break;\n case \"list\":\n value = initList(field, value);\n break;\n case \"map\":\n value = initMap(field, value);\n break;\n }\n (0, unsafe_js_1.unsafeSet)(message, field, value);\n }\n return message;\n}\nfunction initScalar(field, value) {\n if (field.scalar == descriptors_js_1.ScalarType.BYTES) {\n return toU8Arr(value);\n }\n return value;\n}\nfunction initMap(field, value) {\n if ((0, guard_js_1.isObject)(value)) {\n if (field.scalar == descriptors_js_1.ScalarType.BYTES) {\n return convertObjectValues(value, toU8Arr);\n }\n if (field.mapKind == \"message\") {\n return convertObjectValues(value, (val) => toMessage(field, val));\n }\n }\n return value;\n}\nfunction initList(field, value) {\n if (Array.isArray(value)) {\n if (field.scalar == descriptors_js_1.ScalarType.BYTES) {\n return value.map(toU8Arr);\n }\n if (field.listKind == \"message\") {\n return value.map((item) => toMessage(field, item));\n }\n }\n return value;\n}\nfunction toMessage(field, value) {\n if (field.fieldKind == \"message\" &&\n !field.oneof &&\n (0, wrappers_js_1.isWrapperDesc)(field.message)) {\n // Types from google/protobuf/wrappers.proto are unwrapped when used in\n // a singular field that is not part of a oneof group.\n return initScalar(field.message.fields[0], value);\n }\n if ((0, guard_js_1.isObject)(value)) {\n if (field.message.typeName == \"google.protobuf.Struct\" &&\n field.parent.typeName !== \"google.protobuf.Value\") {\n // google.protobuf.Struct is represented with JsonObject when used in a\n // field, except when used in google.protobuf.Value.\n return value;\n }\n if (!(0, is_message_js_1.isMessage)(value, field.message)) {\n return create(field.message, value);\n }\n }\n return value;\n}\n// converts any ArrayLike to Uint8Array if necessary.\nfunction toU8Arr(value) {\n return Array.isArray(value) ? new Uint8Array(value) : value;\n}\nfunction convertObjectValues(obj, fn) {\n const ret = {};\n for (const entry of Object.entries(obj)) {\n ret[entry[0]] = fn(entry[1]);\n }\n return ret;\n}\nconst tokenZeroMessageField = Symbol();\nconst messagePrototypes = new WeakMap();\n/**\n * Create a zero message.\n */\nfunction createZeroMessage(desc) {\n let msg;\n if (!needsPrototypeChain(desc)) {\n msg = {\n $typeName: desc.typeName,\n };\n for (const member of desc.members) {\n if (member.kind == \"oneof\" || member.presence == IMPLICIT) {\n msg[member.localName] = createZeroField(member);\n }\n }\n }\n else {\n // Support default values and track presence via the prototype chain\n const cached = messagePrototypes.get(desc);\n let prototype;\n let members;\n if (cached) {\n ({ prototype, members } = cached);\n }\n else {\n prototype = {};\n members = new Set();\n for (const member of desc.members) {\n if (member.kind == \"oneof\") {\n // we can only put immutable values on the prototype,\n // oneof ADTs are mutable\n continue;\n }\n if (member.fieldKind != \"scalar\" && member.fieldKind != \"enum\") {\n // only scalar and enum values are immutable, map, list, and message\n // are not\n continue;\n }\n if (member.presence == IMPLICIT) {\n // implicit presence tracks field presence by zero values - e.g. 0, false, \"\", are unset, 1, true, \"x\" are set.\n // message, map, list fields are mutable, and also have IMPLICIT presence.\n continue;\n }\n members.add(member);\n prototype[member.localName] = createZeroField(member);\n }\n messagePrototypes.set(desc, { prototype, members });\n }\n msg = Object.create(prototype);\n msg.$typeName = desc.typeName;\n for (const member of desc.members) {\n if (members.has(member)) {\n continue;\n }\n if (member.kind == \"field\") {\n if (member.fieldKind == \"message\") {\n continue;\n }\n if (member.fieldKind == \"scalar\" || member.fieldKind == \"enum\") {\n if (member.presence != IMPLICIT) {\n continue;\n }\n }\n }\n msg[member.localName] = createZeroField(member);\n }\n }\n return msg;\n}\n/**\n * Do we need the prototype chain to track field presence?\n */\nfunction needsPrototypeChain(desc) {\n switch (desc.file.edition) {\n case EDITION_PROTO3:\n // proto3 always uses implicit presence, we never need the prototype chain.\n return false;\n case EDITION_PROTO2:\n // proto2 never uses implicit presence, we always need the prototype chain.\n return true;\n default:\n // If a message uses scalar or enum fields with explicit presence, we need\n // the prototype chain to track presence. This rule does not apply to fields\n // in a oneof group - they use a different mechanism to track presence.\n return desc.fields.some((f) => f.presence != IMPLICIT && f.fieldKind != \"message\" && !f.oneof);\n }\n}\n/**\n * Returns a zero value for oneof groups, and for every field kind except\n * messages. Scalar and enum fields can have default values.\n */\nfunction createZeroField(field) {\n if (field.kind == \"oneof\") {\n return { case: undefined };\n }\n if (field.fieldKind == \"list\") {\n return [];\n }\n if (field.fieldKind == \"map\") {\n return {}; // Object.create(null) would be desirable here, but is unsupported by react https://react.dev/reference/react/use-server#serializable-parameters-and-return-values\n }\n if (field.fieldKind == \"message\") {\n return tokenZeroMessageField;\n }\n const defaultValue = field.getDefaultValue();\n if (defaultValue !== undefined) {\n return field.fieldKind == \"scalar\" && field.longAsString\n ? defaultValue.toString()\n : defaultValue;\n }\n return field.fieldKind == \"scalar\"\n ? (0, scalar_js_1.scalarZeroValue)(field.scalar, field.longAsString)\n : field.enum.values[0].number;\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScalarType = void 0;\n/**\n * Scalar value types. This is a subset of field types declared by protobuf\n * enum google.protobuf.FieldDescriptorProto.Type The types GROUP and MESSAGE\n * are omitted, but the numerical values are identical.\n */\nvar ScalarType;\n(function (ScalarType) {\n // 0 is reserved for errors.\n // Order is weird for historical reasons.\n ScalarType[ScalarType[\"DOUBLE\"] = 1] = \"DOUBLE\";\n ScalarType[ScalarType[\"FLOAT\"] = 2] = \"FLOAT\";\n // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if\n // negative values are likely.\n ScalarType[ScalarType[\"INT64\"] = 3] = \"INT64\";\n ScalarType[ScalarType[\"UINT64\"] = 4] = \"UINT64\";\n // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if\n // negative values are likely.\n ScalarType[ScalarType[\"INT32\"] = 5] = \"INT32\";\n ScalarType[ScalarType[\"FIXED64\"] = 6] = \"FIXED64\";\n ScalarType[ScalarType[\"FIXED32\"] = 7] = \"FIXED32\";\n ScalarType[ScalarType[\"BOOL\"] = 8] = \"BOOL\";\n ScalarType[ScalarType[\"STRING\"] = 9] = \"STRING\";\n // Tag-delimited aggregate.\n // Group type is deprecated and not supported in proto3. However, Proto3\n // implementations should still be able to parse the group wire format and\n // treat group fields as unknown fields.\n // TYPE_GROUP = 10,\n // TYPE_MESSAGE = 11, // Length-delimited aggregate.\n // New in version 2.\n ScalarType[ScalarType[\"BYTES\"] = 12] = \"BYTES\";\n ScalarType[ScalarType[\"UINT32\"] = 13] = \"UINT32\";\n // TYPE_ENUM = 14,\n ScalarType[ScalarType[\"SFIXED32\"] = 15] = \"SFIXED32\";\n ScalarType[ScalarType[\"SFIXED64\"] = 16] = \"SFIXED64\";\n ScalarType[ScalarType[\"SINT32\"] = 17] = \"SINT32\";\n ScalarType[ScalarType[\"SINT64\"] = 18] = \"SINT64\";\n})(ScalarType || (exports.ScalarType = ScalarType = {}));\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromBinary = fromBinary;\nexports.mergeFromBinary = mergeFromBinary;\nexports.readField = readField;\nconst descriptors_js_1 = require(\"./descriptors.js\");\nconst scalar_js_1 = require(\"./reflect/scalar.js\");\nconst reflect_js_1 = require(\"./reflect/reflect.js\");\nconst binary_encoding_js_1 = require(\"./wire/binary-encoding.js\");\n// Default options for parsing binary data.\nconst readDefaults = {\n readUnknownFields: true,\n};\nfunction makeReadOptions(options) {\n return options ? Object.assign(Object.assign({}, readDefaults), options) : readDefaults;\n}\n/**\n * Parse serialized binary data.\n */\nfunction fromBinary(schema, bytes, options) {\n const msg = (0, reflect_js_1.reflect)(schema, undefined, false);\n readMessage(msg, new binary_encoding_js_1.BinaryReader(bytes), makeReadOptions(options), false, bytes.byteLength);\n return msg.message;\n}\n/**\n * Parse from binary data, merging fields.\n *\n * Repeated fields are appended. Map entries are added, overwriting\n * existing keys.\n *\n * If a message field is already present, it will be merged with the\n * new data.\n */\nfunction mergeFromBinary(schema, target, bytes, options) {\n readMessage((0, reflect_js_1.reflect)(schema, target, false), new binary_encoding_js_1.BinaryReader(bytes), makeReadOptions(options), false, bytes.byteLength);\n return target;\n}\n/**\n * If `delimited` is false, read the length given in `lengthOrDelimitedFieldNo`.\n *\n * If `delimited` is true, read until an EndGroup tag. `lengthOrDelimitedFieldNo`\n * is the expected field number.\n *\n * @private\n */\nfunction readMessage(message, reader, options, delimited, lengthOrDelimitedFieldNo) {\n var _a;\n const end = delimited ? reader.len : reader.pos + lengthOrDelimitedFieldNo;\n let fieldNo, wireType;\n const unknownFields = (_a = message.getUnknown()) !== null && _a !== void 0 ? _a : [];\n while (reader.pos < end) {\n [fieldNo, wireType] = reader.tag();\n if (delimited && wireType == binary_encoding_js_1.WireType.EndGroup) {\n break;\n }\n const field = message.findNumber(fieldNo);\n if (!field) {\n const data = reader.skip(wireType, fieldNo);\n if (options.readUnknownFields) {\n unknownFields.push({ no: fieldNo, wireType, data });\n }\n continue;\n }\n readField(message, reader, field, wireType, options);\n }\n if (delimited) {\n if (wireType != binary_encoding_js_1.WireType.EndGroup || fieldNo !== lengthOrDelimitedFieldNo) {\n throw new Error(`invalid end group tag`);\n }\n }\n if (unknownFields.length > 0) {\n message.setUnknown(unknownFields);\n }\n}\n/**\n * @private\n */\nfunction readField(message, reader, field, wireType, options) {\n switch (field.fieldKind) {\n case \"scalar\":\n message.set(field, readScalar(reader, field.scalar));\n break;\n case \"enum\":\n message.set(field, readScalar(reader, descriptors_js_1.ScalarType.INT32));\n break;\n case \"message\":\n message.set(field, readMessageField(reader, options, field, message.get(field)));\n break;\n case \"list\":\n readListField(reader, wireType, message.get(field), options);\n break;\n case \"map\":\n readMapEntry(reader, message.get(field), options);\n break;\n }\n}\n// Read a map field, expecting key field = 1, value field = 2\nfunction readMapEntry(reader, map, options) {\n const field = map.field();\n let key, val;\n const end = reader.pos + reader.uint32();\n while (reader.pos < end) {\n const [fieldNo] = reader.tag();\n switch (fieldNo) {\n case 1:\n key = readScalar(reader, field.mapKey);\n break;\n case 2:\n switch (field.mapKind) {\n case \"scalar\":\n val = readScalar(reader, field.scalar);\n break;\n case \"enum\":\n val = reader.int32();\n break;\n case \"message\":\n val = readMessageField(reader, options, field);\n break;\n }\n break;\n }\n }\n if (key === undefined) {\n key = (0, scalar_js_1.scalarZeroValue)(field.mapKey, false);\n }\n if (val === undefined) {\n switch (field.mapKind) {\n case \"scalar\":\n val = (0, scalar_js_1.scalarZeroValue)(field.scalar, false);\n break;\n case \"enum\":\n val = field.enum.values[0].number;\n break;\n case \"message\":\n val = (0, reflect_js_1.reflect)(field.message, undefined, false);\n break;\n }\n }\n map.set(key, val);\n}\nfunction readListField(reader, wireType, list, options) {\n var _a;\n const field = list.field();\n if (field.listKind === \"message\") {\n list.add(readMessageField(reader, options, field));\n return;\n }\n const scalarType = (_a = field.scalar) !== null && _a !== void 0 ? _a : descriptors_js_1.ScalarType.INT32;\n const packed = wireType == binary_encoding_js_1.WireType.LengthDelimited &&\n scalarType != descriptors_js_1.ScalarType.STRING &&\n scalarType != descriptors_js_1.ScalarType.BYTES;\n if (!packed) {\n list.add(readScalar(reader, scalarType));\n return;\n }\n const e = reader.uint32() + reader.pos;\n while (reader.pos < e) {\n list.add(readScalar(reader, scalarType));\n }\n}\nfunction readMessageField(reader, options, field, mergeMessage) {\n const delimited = field.delimitedEncoding;\n const message = mergeMessage !== null && mergeMessage !== void 0 ? mergeMessage : (0, reflect_js_1.reflect)(field.message, undefined, false);\n readMessage(message, reader, options, delimited, delimited ? field.number : reader.uint32());\n return message;\n}\nfunction readScalar(reader, type) {\n switch (type) {\n case descriptors_js_1.ScalarType.STRING:\n return reader.string();\n case descriptors_js_1.ScalarType.BOOL:\n return reader.bool();\n case descriptors_js_1.ScalarType.DOUBLE:\n return reader.double();\n case descriptors_js_1.ScalarType.FLOAT:\n return reader.float();\n case descriptors_js_1.ScalarType.INT32:\n return reader.int32();\n case descriptors_js_1.ScalarType.INT64:\n return reader.int64();\n case descriptors_js_1.ScalarType.UINT64:\n return reader.uint64();\n case descriptors_js_1.ScalarType.FIXED64:\n return reader.fixed64();\n case descriptors_js_1.ScalarType.BYTES:\n return reader.bytes();\n case descriptors_js_1.ScalarType.FIXED32:\n return reader.fixed32();\n case descriptors_js_1.ScalarType.SFIXED32:\n return reader.sfixed32();\n case descriptors_js_1.ScalarType.SFIXED64:\n return reader.sfixed64();\n case descriptors_js_1.ScalarType.SINT64:\n return reader.sint64();\n case descriptors_js_1.ScalarType.UINT32:\n return reader.uint32();\n case descriptors_js_1.ScalarType.SINT32:\n return reader.sint32();\n }\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isMessage = isMessage;\n/**\n * Determine whether the given `arg` is a message.\n * If `desc` is set, determine whether `arg` is this specific message.\n */\nfunction isMessage(arg, schema) {\n const isMessage = arg !== null &&\n typeof arg == \"object\" &&\n \"$typeName\" in arg &&\n typeof arg.$typeName == \"string\";\n if (!isMessage) {\n return false;\n }\n if (schema === undefined) {\n return true;\n }\n return schema.typeName === arg.$typeName;\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.protoInt64 = void 0;\nconst varint_js_1 = require(\"./wire/varint.js\");\n/**\n * Int64Support for the current environment.\n */\nexports.protoInt64 = makeInt64Support();\nfunction makeInt64Support() {\n const dv = new DataView(new ArrayBuffer(8));\n // note that Safari 14 implements BigInt, but not the DataView methods\n const ok = typeof BigInt === \"function\" &&\n typeof dv.getBigInt64 === \"function\" &&\n typeof dv.getBigUint64 === \"function\" &&\n typeof dv.setBigInt64 === \"function\" &&\n typeof dv.setBigUint64 === \"function\" &&\n (typeof process != \"object\" ||\n typeof process.env != \"object\" ||\n process.env.BUF_BIGINT_DISABLE !== \"1\");\n if (ok) {\n const MIN = BigInt(\"-9223372036854775808\"), MAX = BigInt(\"9223372036854775807\"), UMIN = BigInt(\"0\"), UMAX = BigInt(\"18446744073709551615\");\n return {\n zero: BigInt(0),\n supported: true,\n parse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > MAX || bi < MIN) {\n throw new Error(`invalid int64: ${value}`);\n }\n return bi;\n },\n uParse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > UMAX || bi < UMIN) {\n throw new Error(`invalid uint64: ${value}`);\n }\n return bi;\n },\n enc(value) {\n dv.setBigInt64(0, this.parse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n uEnc(value) {\n dv.setBigInt64(0, this.uParse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n dec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigInt64(0, true);\n },\n uDec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigUint64(0, true);\n },\n };\n }\n return {\n zero: \"0\",\n supported: false,\n parse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return value;\n },\n uParse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return value;\n },\n enc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return (0, varint_js_1.int64FromString)(value);\n },\n uEnc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return (0, varint_js_1.int64FromString)(value);\n },\n dec(lo, hi) {\n return (0, varint_js_1.int64ToString)(lo, hi);\n },\n uDec(lo, hi) {\n return (0, varint_js_1.uInt64ToString)(lo, hi);\n },\n };\n}\nfunction assertInt64String(value) {\n if (!/^-?[0-9]+$/.test(value)) {\n throw new Error(\"invalid int64: \" + value);\n }\n}\nfunction assertUInt64String(value) {\n if (!/^[0-9]+$/.test(value)) {\n throw new Error(\"invalid uint64: \" + value);\n }\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FieldError = void 0;\nexports.isFieldError = isFieldError;\nconst errorNames = [\n \"FieldValueInvalidError\",\n \"FieldListRangeError\",\n \"ForeignFieldError\",\n];\nclass FieldError extends Error {\n constructor(fieldOrOneof, message, name = \"FieldValueInvalidError\") {\n super(message);\n this.name = name;\n this.field = () => fieldOrOneof;\n }\n}\nexports.FieldError = FieldError;\nfunction isFieldError(arg) {\n return (arg instanceof Error &&\n errorNames.includes(arg.name) &&\n \"field\" in arg &&\n typeof arg.field == \"function\");\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isObject = isObject;\nexports.isOneofADT = isOneofADT;\nexports.isReflectList = isReflectList;\nexports.isReflectMap = isReflectMap;\nexports.isReflectMessage = isReflectMessage;\nconst unsafe_js_1 = require(\"./unsafe.js\");\nfunction isObject(arg) {\n return arg !== null && typeof arg == \"object\" && !Array.isArray(arg);\n}\nfunction isOneofADT(arg) {\n return (arg !== null &&\n typeof arg == \"object\" &&\n \"case\" in arg &&\n ((typeof arg.case == \"string\" && \"value\" in arg && arg.value != null) ||\n (arg.case === undefined &&\n (!(\"value\" in arg) || arg.value === undefined))));\n}\nfunction isReflectList(arg, field) {\n var _a, _b, _c, _d;\n if (isObject(arg) &&\n unsafe_js_1.unsafeLocal in arg &&\n \"add\" in arg &&\n \"field\" in arg &&\n typeof arg.field == \"function\") {\n if (field !== undefined) {\n const a = field, b = arg.field();\n return (a.listKind == b.listKind &&\n a.scalar === b.scalar &&\n ((_a = a.message) === null || _a === void 0 ? void 0 : _a.typeName) === ((_b = b.message) === null || _b === void 0 ? void 0 : _b.typeName) &&\n ((_c = a.enum) === null || _c === void 0 ? void 0 : _c.typeName) === ((_d = b.enum) === null || _d === void 0 ? void 0 : _d.typeName));\n }\n return true;\n }\n return false;\n}\nfunction isReflectMap(arg, field) {\n var _a, _b, _c, _d;\n if (isObject(arg) &&\n unsafe_js_1.unsafeLocal in arg &&\n \"has\" in arg &&\n \"field\" in arg &&\n typeof arg.field == \"function\") {\n if (field !== undefined) {\n const a = field, b = arg.field();\n return (a.mapKey === b.mapKey &&\n a.mapKind == b.mapKind &&\n a.scalar === b.scalar &&\n ((_a = a.message) === null || _a === void 0 ? void 0 : _a.typeName) === ((_b = b.message) === null || _b === void 0 ? void 0 : _b.typeName) &&\n ((_c = a.enum) === null || _c === void 0 ? void 0 : _c.typeName) === ((_d = b.enum) === null || _d === void 0 ? void 0 : _d.typeName));\n }\n return true;\n }\n return false;\n}\nfunction isReflectMessage(arg, messageDesc) {\n return (isObject(arg) &&\n unsafe_js_1.unsafeLocal in arg &&\n \"desc\" in arg &&\n isObject(arg.desc) &&\n arg.desc.kind === \"message\" &&\n (messageDesc === undefined || arg.desc.typeName == messageDesc.typeName));\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkField = checkField;\nexports.checkListItem = checkListItem;\nexports.checkMapEntry = checkMapEntry;\nexports.formatVal = formatVal;\nconst descriptors_js_1 = require(\"../descriptors.js\");\nconst is_message_js_1 = require(\"../is-message.js\");\nconst error_js_1 = require(\"./error.js\");\nconst guard_js_1 = require(\"./guard.js\");\nconst binary_encoding_js_1 = require(\"../wire/binary-encoding.js\");\nconst text_encoding_js_1 = require(\"../wire/text-encoding.js\");\nconst proto_int64_js_1 = require(\"../proto-int64.js\");\n/**\n * Check whether the given field value is valid for the reflect API.\n */\nfunction checkField(field, value) {\n const check = field.fieldKind == \"list\"\n ? (0, guard_js_1.isReflectList)(value, field)\n : field.fieldKind == \"map\"\n ? (0, guard_js_1.isReflectMap)(value, field)\n : checkSingular(field, value);\n if (check === true) {\n return undefined;\n }\n let reason;\n switch (field.fieldKind) {\n case \"list\":\n reason = `expected ${formatReflectList(field)}, got ${formatVal(value)}`;\n break;\n case \"map\":\n reason = `expected ${formatReflectMap(field)}, got ${formatVal(value)}`;\n break;\n default: {\n reason = reasonSingular(field, value, check);\n }\n }\n return new error_js_1.FieldError(field, reason);\n}\n/**\n * Check whether the given list item is valid for the reflect API.\n */\nfunction checkListItem(field, index, value) {\n const check = checkSingular(field, value);\n if (check !== true) {\n return new error_js_1.FieldError(field, `list item #${index + 1}: ${reasonSingular(field, value, check)}`);\n }\n return undefined;\n}\n/**\n * Check whether the given map key and value are valid for the reflect API.\n */\nfunction checkMapEntry(field, key, value) {\n const checkKey = checkScalarValue(key, field.mapKey);\n if (checkKey !== true) {\n return new error_js_1.FieldError(field, `invalid map key: ${reasonSingular({ scalar: field.mapKey }, key, checkKey)}`);\n }\n const checkVal = checkSingular(field, value);\n if (checkVal !== true) {\n return new error_js_1.FieldError(field, `map entry ${formatVal(key)}: ${reasonSingular(field, value, checkVal)}`);\n }\n return undefined;\n}\nfunction checkSingular(field, value) {\n if (field.scalar !== undefined) {\n return checkScalarValue(value, field.scalar);\n }\n if (field.enum !== undefined) {\n if (field.enum.open) {\n return Number.isInteger(value);\n }\n return field.enum.values.some((v) => v.number === value);\n }\n return (0, guard_js_1.isReflectMessage)(value, field.message);\n}\nfunction checkScalarValue(value, scalar) {\n switch (scalar) {\n case descriptors_js_1.ScalarType.DOUBLE:\n return typeof value == \"number\";\n case descriptors_js_1.ScalarType.FLOAT:\n if (typeof value != \"number\") {\n return false;\n }\n if (Number.isNaN(value) || !Number.isFinite(value)) {\n return true;\n }\n if (value > binary_encoding_js_1.FLOAT32_MAX || value < binary_encoding_js_1.FLOAT32_MIN) {\n return `${value.toFixed()} out of range`;\n }\n return true;\n case descriptors_js_1.ScalarType.INT32:\n case descriptors_js_1.ScalarType.SFIXED32:\n case descriptors_js_1.ScalarType.SINT32:\n // signed\n if (typeof value !== \"number\" || !Number.isInteger(value)) {\n return false;\n }\n if (value > binary_encoding_js_1.INT32_MAX || value < binary_encoding_js_1.INT32_MIN) {\n return `${value.toFixed()} out of range`;\n }\n return true;\n case descriptors_js_1.ScalarType.FIXED32:\n case descriptors_js_1.ScalarType.UINT32:\n // unsigned\n if (typeof value !== \"number\" || !Number.isInteger(value)) {\n return false;\n }\n if (value > binary_encoding_js_1.UINT32_MAX || value < 0) {\n return `${value.toFixed()} out of range`;\n }\n return true;\n case descriptors_js_1.ScalarType.BOOL:\n return typeof value == \"boolean\";\n case descriptors_js_1.ScalarType.STRING:\n if (typeof value != \"string\") {\n return false;\n }\n return (0, text_encoding_js_1.getTextEncoding)().checkUtf8(value) || \"invalid UTF8\";\n case descriptors_js_1.ScalarType.BYTES:\n return value instanceof Uint8Array;\n case descriptors_js_1.ScalarType.INT64:\n case descriptors_js_1.ScalarType.SFIXED64:\n case descriptors_js_1.ScalarType.SINT64:\n // signed\n if (typeof value == \"bigint\" ||\n typeof value == \"number\" ||\n (typeof value == \"string\" && value.length > 0)) {\n try {\n proto_int64_js_1.protoInt64.parse(value);\n return true;\n }\n catch (e) {\n return `${value} out of range`;\n }\n }\n return false;\n case descriptors_js_1.ScalarType.FIXED64:\n case descriptors_js_1.ScalarType.UINT64:\n // unsigned\n if (typeof value == \"bigint\" ||\n typeof value == \"number\" ||\n (typeof value == \"string\" && value.length > 0)) {\n try {\n proto_int64_js_1.protoInt64.uParse(value);\n return true;\n }\n catch (e) {\n return `${value} out of range`;\n }\n }\n return false;\n }\n}\nfunction reasonSingular(field, val, details) {\n details =\n typeof details == \"string\" ? `: ${details}` : `, got ${formatVal(val)}`;\n if (field.scalar !== undefined) {\n return `expected ${scalarTypeDescription(field.scalar)}` + details;\n }\n else if (field.enum !== undefined) {\n return `expected ${field.enum.toString()}` + details;\n }\n return `expected ${formatReflectMessage(field.message)}` + details;\n}\nfunction formatVal(val) {\n switch (typeof val) {\n case \"object\":\n if (val === null) {\n return \"null\";\n }\n if (val instanceof Uint8Array) {\n return `Uint8Array(${val.length})`;\n }\n if (Array.isArray(val)) {\n return `Array(${val.length})`;\n }\n if ((0, guard_js_1.isReflectList)(val)) {\n return formatReflectList(val.field());\n }\n if ((0, guard_js_1.isReflectMap)(val)) {\n return formatReflectMap(val.field());\n }\n if ((0, guard_js_1.isReflectMessage)(val)) {\n return formatReflectMessage(val.desc);\n }\n if ((0, is_message_js_1.isMessage)(val)) {\n return `message ${val.$typeName}`;\n }\n return \"object\";\n case \"string\":\n return val.length > 30 ? \"string\" : `\"${val.split('\"').join('\\\\\"')}\"`;\n case \"boolean\":\n return String(val);\n case \"number\":\n return String(val);\n case \"bigint\":\n return String(val) + \"n\";\n default:\n // \"symbol\" | \"undefined\" | \"object\" | \"function\"\n return typeof val;\n }\n}\nfunction formatReflectMessage(desc) {\n return `ReflectMessage (${desc.typeName})`;\n}\nfunction formatReflectList(field) {\n switch (field.listKind) {\n case \"message\":\n return `ReflectList (${field.message.toString()})`;\n case \"enum\":\n return `ReflectList (${field.enum.toString()})`;\n case \"scalar\":\n return `ReflectList (${descriptors_js_1.ScalarType[field.scalar]})`;\n }\n}\nfunction formatReflectMap(field) {\n switch (field.mapKind) {\n case \"message\":\n return `ReflectMap (${descriptors_js_1.ScalarType[field.mapKey]}, ${field.message.toString()})`;\n case \"enum\":\n return `ReflectMap (${descriptors_js_1.ScalarType[field.mapKey]}, ${field.enum.toString()})`;\n case \"scalar\":\n return `ReflectMap (${descriptors_js_1.ScalarType[field.mapKey]}, ${descriptors_js_1.ScalarType[field.scalar]})`;\n }\n}\nfunction scalarTypeDescription(scalar) {\n switch (scalar) {\n case descriptors_js_1.ScalarType.STRING:\n return \"string\";\n case descriptors_js_1.ScalarType.BOOL:\n return \"boolean\";\n case descriptors_js_1.ScalarType.INT64:\n case descriptors_js_1.ScalarType.SINT64:\n case descriptors_js_1.ScalarType.SFIXED64:\n return \"bigint (int64)\";\n case descriptors_js_1.ScalarType.UINT64:\n case descriptors_js_1.ScalarType.FIXED64:\n return \"bigint (uint64)\";\n case descriptors_js_1.ScalarType.BYTES:\n return \"Uint8Array\";\n case descriptors_js_1.ScalarType.DOUBLE:\n return \"number (float64)\";\n case descriptors_js_1.ScalarType.FLOAT:\n return \"number (float32)\";\n case descriptors_js_1.ScalarType.FIXED32:\n case descriptors_js_1.ScalarType.UINT32:\n return \"number (uint32)\";\n case descriptors_js_1.ScalarType.INT32:\n case descriptors_js_1.ScalarType.SFIXED32:\n case descriptors_js_1.ScalarType.SINT32:\n return \"number (int32)\";\n }\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reflect = reflect;\nexports.reflectList = reflectList;\nexports.reflectMap = reflectMap;\nconst descriptors_js_1 = require(\"../descriptors.js\");\nconst reflect_check_js_1 = require(\"./reflect-check.js\");\nconst error_js_1 = require(\"./error.js\");\nconst unsafe_js_1 = require(\"./unsafe.js\");\nconst create_js_1 = require(\"../create.js\");\nconst wrappers_js_1 = require(\"../wkt/wrappers.js\");\nconst scalar_js_1 = require(\"./scalar.js\");\nconst proto_int64_js_1 = require(\"../proto-int64.js\");\nconst guard_js_1 = require(\"./guard.js\");\n/**\n * Create a ReflectMessage.\n */\nfunction reflect(messageDesc, message, \n/**\n * By default, field values are validated when setting them. For example,\n * a value for an uint32 field must be a ECMAScript Number >= 0.\n *\n * When field values are trusted, performance can be improved by disabling\n * checks.\n */\ncheck = true) {\n return new ReflectMessageImpl(messageDesc, message, check);\n}\nclass ReflectMessageImpl {\n get sortedFields() {\n var _a;\n return ((_a = this._sortedFields) !== null && _a !== void 0 ? _a : (this._sortedFields = this.desc.fields\n .concat()\n .sort((a, b) => a.number - b.number)));\n }\n constructor(messageDesc, message, check = true) {\n this.lists = new Map();\n this.maps = new Map();\n this.check = check;\n this.desc = messageDesc;\n this.message = this[unsafe_js_1.unsafeLocal] = message !== null && message !== void 0 ? message : (0, create_js_1.create)(messageDesc);\n this.fields = messageDesc.fields;\n this.oneofs = messageDesc.oneofs;\n this.members = messageDesc.members;\n }\n findNumber(number) {\n if (!this._fieldsByNumber) {\n this._fieldsByNumber = new Map(this.desc.fields.map((f) => [f.number, f]));\n }\n return this._fieldsByNumber.get(number);\n }\n oneofCase(oneof) {\n assertOwn(this.message, oneof);\n return (0, unsafe_js_1.unsafeOneofCase)(this.message, oneof);\n }\n isSet(field) {\n assertOwn(this.message, field);\n return (0, unsafe_js_1.unsafeIsSet)(this.message, field);\n }\n clear(field) {\n assertOwn(this.message, field);\n (0, unsafe_js_1.unsafeClear)(this.message, field);\n }\n get(field) {\n assertOwn(this.message, field);\n const value = (0, unsafe_js_1.unsafeGet)(this.message, field);\n switch (field.fieldKind) {\n case \"list\":\n // eslint-disable-next-line no-case-declarations\n let list = this.lists.get(field);\n if (!list || list[unsafe_js_1.unsafeLocal] !== value) {\n this.lists.set(field, (list = new ReflectListImpl(field, value, this.check)));\n }\n return list;\n case \"map\":\n // eslint-disable-next-line no-case-declarations\n let map = this.maps.get(field);\n if (!map || map[unsafe_js_1.unsafeLocal] !== value) {\n this.maps.set(field, (map = new ReflectMapImpl(field, value, this.check)));\n }\n return map;\n case \"message\":\n return messageToReflect(field, value, this.check);\n case \"scalar\":\n return (value === undefined\n ? (0, scalar_js_1.scalarZeroValue)(field.scalar, false)\n : longToReflect(field, value));\n case \"enum\":\n return (value !== null && value !== void 0 ? value : field.enum.values[0].number);\n }\n }\n set(field, value) {\n assertOwn(this.message, field);\n if (this.check) {\n const err = (0, reflect_check_js_1.checkField)(field, value);\n if (err) {\n throw err;\n }\n }\n let local;\n if (field.fieldKind == \"message\") {\n local = messageToLocal(field, value);\n }\n else if ((0, guard_js_1.isReflectMap)(value) || (0, guard_js_1.isReflectList)(value)) {\n local = value[unsafe_js_1.unsafeLocal];\n }\n else {\n local = longToLocal(field, value);\n }\n (0, unsafe_js_1.unsafeSet)(this.message, field, local);\n }\n getUnknown() {\n return this.message.$unknown;\n }\n setUnknown(value) {\n this.message.$unknown = value;\n }\n}\nfunction assertOwn(owner, member) {\n if (member.parent.typeName !== owner.$typeName) {\n throw new error_js_1.FieldError(member, `cannot use ${member.toString()} with message ${owner.$typeName}`, \"ForeignFieldError\");\n }\n}\n/**\n * Create a ReflectList.\n */\nfunction reflectList(field, unsafeInput, \n/**\n * By default, field values are validated when setting them. For example,\n * a value for an uint32 field must be a ECMAScript Number >= 0.\n *\n * When field values are trusted, performance can be improved by disabling\n * checks.\n */\ncheck = true) {\n return new ReflectListImpl(field, unsafeInput !== null && unsafeInput !== void 0 ? unsafeInput : [], check);\n}\nclass ReflectListImpl {\n field() {\n return this._field;\n }\n get size() {\n return this._arr.length;\n }\n constructor(field, unsafeInput, check) {\n this._field = field;\n this._arr = this[unsafe_js_1.unsafeLocal] = unsafeInput;\n this.check = check;\n }\n get(index) {\n const item = this._arr[index];\n return item === undefined\n ? undefined\n : listItemToReflect(this._field, item, this.check);\n }\n set(index, item) {\n if (index < 0 || index >= this._arr.length) {\n throw new error_js_1.FieldError(this._field, `list item #${index + 1}: out of range`);\n }\n if (this.check) {\n const err = (0, reflect_check_js_1.checkListItem)(this._field, index, item);\n if (err) {\n throw err;\n }\n }\n this._arr[index] = listItemToLocal(this._field, item);\n }\n add(item) {\n if (this.check) {\n const err = (0, reflect_check_js_1.checkListItem)(this._field, this._arr.length, item);\n if (err) {\n throw err;\n }\n }\n this._arr.push(listItemToLocal(this._field, item));\n return undefined;\n }\n clear() {\n this._arr.splice(0, this._arr.length);\n }\n [Symbol.iterator]() {\n return this.values();\n }\n keys() {\n return this._arr.keys();\n }\n *values() {\n for (const item of this._arr) {\n yield listItemToReflect(this._field, item, this.check);\n }\n }\n *entries() {\n for (let i = 0; i < this._arr.length; i++) {\n yield [i, listItemToReflect(this._field, this._arr[i], this.check)];\n }\n }\n}\n/**\n * Create a ReflectMap.\n */\nfunction reflectMap(field, unsafeInput, \n/**\n * By default, field values are validated when setting them. For example,\n * a value for an uint32 field must be a ECMAScript Number >= 0.\n *\n * When field values are trusted, performance can be improved by disabling\n * checks.\n */\ncheck = true) {\n return new ReflectMapImpl(field, unsafeInput, check);\n}\nclass ReflectMapImpl {\n constructor(field, unsafeInput, check = true) {\n this.obj = this[unsafe_js_1.unsafeLocal] = unsafeInput !== null && unsafeInput !== void 0 ? unsafeInput : {};\n this.check = check;\n this._field = field;\n }\n field() {\n return this._field;\n }\n set(key, value) {\n if (this.check) {\n const err = (0, reflect_check_js_1.checkMapEntry)(this._field, key, value);\n if (err) {\n throw err;\n }\n }\n this.obj[mapKeyToLocal(key)] = mapValueToLocal(this._field, value);\n return this;\n }\n delete(key) {\n const k = mapKeyToLocal(key);\n const has = Object.prototype.hasOwnProperty.call(this.obj, k);\n if (has) {\n delete this.obj[k];\n }\n return has;\n }\n clear() {\n for (const key of Object.keys(this.obj)) {\n delete this.obj[key];\n }\n }\n get(key) {\n let val = this.obj[mapKeyToLocal(key)];\n if (val !== undefined) {\n val = mapValueToReflect(this._field, val, this.check);\n }\n return val;\n }\n has(key) {\n return Object.prototype.hasOwnProperty.call(this.obj, mapKeyToLocal(key));\n }\n *keys() {\n for (const objKey of Object.keys(this.obj)) {\n yield mapKeyToReflect(objKey, this._field.mapKey);\n }\n }\n *entries() {\n for (const objEntry of Object.entries(this.obj)) {\n yield [\n mapKeyToReflect(objEntry[0], this._field.mapKey),\n mapValueToReflect(this._field, objEntry[1], this.check),\n ];\n }\n }\n [Symbol.iterator]() {\n return this.entries();\n }\n get size() {\n return Object.keys(this.obj).length;\n }\n *values() {\n for (const val of Object.values(this.obj)) {\n yield mapValueToReflect(this._field, val, this.check);\n }\n }\n forEach(callbackfn, thisArg) {\n for (const mapEntry of this.entries()) {\n callbackfn.call(thisArg, mapEntry[1], mapEntry[0], this);\n }\n }\n}\nfunction messageToLocal(field, value) {\n if (!(0, guard_js_1.isReflectMessage)(value)) {\n return value;\n }\n if ((0, wrappers_js_1.isWrapper)(value.message) &&\n !field.oneof &&\n field.fieldKind == \"message\") {\n // Types from google/protobuf/wrappers.proto are unwrapped when used in\n // a singular field that is not part of a oneof group.\n return value.message.value;\n }\n if (value.desc.typeName == \"google.protobuf.Struct\" &&\n field.parent.typeName != \"google.protobuf.Value\") {\n // google.protobuf.Struct is represented with JsonObject when used in a\n // field, except when used in google.protobuf.Value.\n return wktStructToLocal(value.message);\n }\n return value.message;\n}\nfunction messageToReflect(field, value, check) {\n if (value !== undefined) {\n if ((0, wrappers_js_1.isWrapperDesc)(field.message) &&\n !field.oneof &&\n field.fieldKind == \"message\") {\n // Types from google/protobuf/wrappers.proto are unwrapped when used in\n // a singular field that is not part of a oneof group.\n value = {\n $typeName: field.message.typeName,\n value: longToReflect(field.message.fields[0], value),\n };\n }\n else if (field.message.typeName == \"google.protobuf.Struct\" &&\n field.parent.typeName != \"google.protobuf.Value\" &&\n (0, guard_js_1.isObject)(value)) {\n // google.protobuf.Struct is represented with JsonObject when used in a\n // field, except when used in google.protobuf.Value.\n value = wktStructToReflect(value);\n }\n }\n return new ReflectMessageImpl(field.message, value, check);\n}\nfunction listItemToLocal(field, value) {\n if (field.listKind == \"message\") {\n return messageToLocal(field, value);\n }\n return longToLocal(field, value);\n}\nfunction listItemToReflect(field, value, check) {\n if (field.listKind == \"message\") {\n return messageToReflect(field, value, check);\n }\n return longToReflect(field, value);\n}\nfunction mapValueToLocal(field, value) {\n if (field.mapKind == \"message\") {\n return messageToLocal(field, value);\n }\n return longToLocal(field, value);\n}\nfunction mapValueToReflect(field, value, check) {\n if (field.mapKind == \"message\") {\n return messageToReflect(field, value, check);\n }\n return value;\n}\nfunction mapKeyToLocal(key) {\n return typeof key == \"string\" || typeof key == \"number\" ? key : String(key);\n}\n/**\n * Converts a map key (any scalar value except float, double, or bytes) from its\n * representation in a message (string or number, the only possible object key\n * types) to the closest possible type in ECMAScript.\n */\nfunction mapKeyToReflect(key, type) {\n switch (type) {\n case descriptors_js_1.ScalarType.STRING:\n return key;\n case descriptors_js_1.ScalarType.INT32:\n case descriptors_js_1.ScalarType.FIXED32:\n case descriptors_js_1.ScalarType.UINT32:\n case descriptors_js_1.ScalarType.SFIXED32:\n case descriptors_js_1.ScalarType.SINT32: {\n const n = Number.parseInt(key);\n if (Number.isFinite(n)) {\n return n;\n }\n break;\n }\n case descriptors_js_1.ScalarType.BOOL:\n switch (key) {\n case \"true\":\n return true;\n case \"false\":\n return false;\n }\n break;\n case descriptors_js_1.ScalarType.UINT64:\n case descriptors_js_1.ScalarType.FIXED64:\n try {\n return proto_int64_js_1.protoInt64.uParse(key);\n }\n catch (_a) {\n //\n }\n break;\n default:\n // INT64, SFIXED64, SINT64\n try {\n return proto_int64_js_1.protoInt64.parse(key);\n }\n catch (_b) {\n //\n }\n break;\n }\n return key;\n}\nfunction longToReflect(field, value) {\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (field.scalar) {\n case descriptors_js_1.ScalarType.INT64:\n case descriptors_js_1.ScalarType.SFIXED64:\n case descriptors_js_1.ScalarType.SINT64:\n if (\"longAsString\" in field &&\n field.longAsString &&\n typeof value == \"string\") {\n value = proto_int64_js_1.protoInt64.parse(value);\n }\n break;\n case descriptors_js_1.ScalarType.FIXED64:\n case descriptors_js_1.ScalarType.UINT64:\n if (\"longAsString\" in field &&\n field.longAsString &&\n typeof value == \"string\") {\n value = proto_int64_js_1.protoInt64.uParse(value);\n }\n break;\n }\n return value;\n}\nfunction longToLocal(field, value) {\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (field.scalar) {\n case descriptors_js_1.ScalarType.INT64:\n case descriptors_js_1.ScalarType.SFIXED64:\n case descriptors_js_1.ScalarType.SINT64:\n if (\"longAsString\" in field && field.longAsString) {\n value = String(value);\n }\n else if (typeof value == \"string\" || typeof value == \"number\") {\n value = proto_int64_js_1.protoInt64.parse(value);\n }\n break;\n case descriptors_js_1.ScalarType.FIXED64:\n case descriptors_js_1.ScalarType.UINT64:\n if (\"longAsString\" in field && field.longAsString) {\n value = String(value);\n }\n else if (typeof value == \"string\" || typeof value == \"number\") {\n value = proto_int64_js_1.protoInt64.uParse(value);\n }\n break;\n }\n return value;\n}\nfunction wktStructToReflect(json) {\n const struct = {\n $typeName: \"google.protobuf.Struct\",\n fields: {},\n };\n if ((0, guard_js_1.isObject)(json)) {\n for (const [k, v] of Object.entries(json)) {\n struct.fields[k] = wktValueToReflect(v);\n }\n }\n return struct;\n}\nfunction wktStructToLocal(val) {\n const json = {};\n for (const [k, v] of Object.entries(val.fields)) {\n json[k] = wktValueToLocal(v);\n }\n return json;\n}\nfunction wktValueToLocal(val) {\n switch (val.kind.case) {\n case \"structValue\":\n return wktStructToLocal(val.kind.value);\n case \"listValue\":\n return val.kind.value.values.map(wktValueToLocal);\n case \"nullValue\":\n case undefined:\n return null;\n default:\n return val.kind.value;\n }\n}\nfunction wktValueToReflect(json) {\n const value = {\n $typeName: \"google.protobuf.Value\",\n kind: { case: undefined },\n };\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- invalid input is unselected kind\n switch (typeof json) {\n case \"number\":\n value.kind = { case: \"numberValue\", value: json };\n break;\n case \"string\":\n value.kind = { case: \"stringValue\", value: json };\n break;\n case \"boolean\":\n value.kind = { case: \"boolValue\", value: json };\n break;\n case \"object\":\n if (json === null) {\n const nullValue = 0;\n value.kind = { case: \"nullValue\", value: nullValue };\n }\n else if (Array.isArray(json)) {\n const listValue = {\n $typeName: \"google.protobuf.ListValue\",\n values: [],\n };\n if (Array.isArray(json)) {\n for (const e of json) {\n listValue.values.push(wktValueToReflect(e));\n }\n }\n value.kind = {\n case: \"listValue\",\n value: listValue,\n };\n }\n else {\n value.kind = {\n case: \"structValue\",\n value: wktStructToReflect(json),\n };\n }\n break;\n }\n return value;\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.scalarEquals = scalarEquals;\nexports.scalarZeroValue = scalarZeroValue;\nexports.isScalarZeroValue = isScalarZeroValue;\nconst proto_int64_js_1 = require(\"../proto-int64.js\");\nconst descriptors_js_1 = require(\"../descriptors.js\");\n/**\n * Returns true if both scalar values are equal.\n */\nfunction scalarEquals(type, a, b) {\n if (a === b) {\n // This correctly matches equal values except BYTES and (possibly) 64-bit integers.\n return true;\n }\n // Special case BYTES - we need to compare each byte individually\n if (type == descriptors_js_1.ScalarType.BYTES) {\n if (!(a instanceof Uint8Array) || !(b instanceof Uint8Array)) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n }\n // Special case 64-bit integers - we support number, string and bigint representation.\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (type) {\n case descriptors_js_1.ScalarType.UINT64:\n case descriptors_js_1.ScalarType.FIXED64:\n case descriptors_js_1.ScalarType.INT64:\n case descriptors_js_1.ScalarType.SFIXED64:\n case descriptors_js_1.ScalarType.SINT64:\n // Loose comparison will match between 0n, 0 and \"0\".\n return a == b;\n }\n // Anything that hasn't been caught by strict comparison or special cased\n // BYTES and 64-bit integers is not equal.\n return false;\n}\n/**\n * Returns the zero value for the given scalar type.\n */\nfunction scalarZeroValue(type, longAsString) {\n switch (type) {\n case descriptors_js_1.ScalarType.STRING:\n return \"\";\n case descriptors_js_1.ScalarType.BOOL:\n return false;\n default:\n // Handles INT32, UINT32, SINT32, FIXED32, SFIXED32.\n // We do not use individual cases to save a few bytes code size.\n return 0;\n case descriptors_js_1.ScalarType.DOUBLE:\n case descriptors_js_1.ScalarType.FLOAT:\n return 0.0;\n case descriptors_js_1.ScalarType.INT64:\n case descriptors_js_1.ScalarType.UINT64:\n case descriptors_js_1.ScalarType.SFIXED64:\n case descriptors_js_1.ScalarType.FIXED64:\n case descriptors_js_1.ScalarType.SINT64:\n return (longAsString ? \"0\" : proto_int64_js_1.protoInt64.zero);\n case descriptors_js_1.ScalarType.BYTES:\n return new Uint8Array(0);\n }\n}\n/**\n * Returns true for a zero-value. For example, an integer has the zero-value `0`,\n * a boolean is `false`, a string is `\"\"`, and bytes is an empty Uint8Array.\n *\n * In proto3, zero-values are not written to the wire, unless the field is\n * optional or repeated.\n */\nfunction isScalarZeroValue(type, value) {\n switch (type) {\n case descriptors_js_1.ScalarType.BOOL:\n return value === false;\n case descriptors_js_1.ScalarType.STRING:\n return value === \"\";\n case descriptors_js_1.ScalarType.BYTES:\n return value instanceof Uint8Array && !value.byteLength;\n default:\n return value == 0; // Loose comparison matches 0n, 0 and \"0\"\n }\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unsafeLocal = void 0;\nexports.unsafeOneofCase = unsafeOneofCase;\nexports.unsafeIsSet = unsafeIsSet;\nexports.unsafeIsSetExplicit = unsafeIsSetExplicit;\nexports.unsafeGet = unsafeGet;\nexports.unsafeSet = unsafeSet;\nexports.unsafeClear = unsafeClear;\nconst scalar_js_1 = require(\"./scalar.js\");\n// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.IMPLICIT: const $name: FeatureSet_FieldPresence.$localName = $number;\nconst IMPLICIT = 2;\nexports.unsafeLocal = Symbol.for(\"reflect unsafe local\");\n/**\n * Return the selected field of a oneof group.\n *\n * @private\n */\nfunction unsafeOneofCase(target, // eslint-disable-line @typescript-eslint/no-explicit-any -- `any` is the best choice for dynamic access\noneof) {\n const c = target[oneof.localName].case;\n if (c === undefined) {\n return c;\n }\n return oneof.fields.find((f) => f.localName === c);\n}\n/**\n * Returns true if the field is set.\n *\n * @private\n */\nfunction unsafeIsSet(target, // eslint-disable-line @typescript-eslint/no-explicit-any -- `any` is the best choice for dynamic access\nfield) {\n const name = field.localName;\n if (field.oneof) {\n return target[field.oneof.localName].case === name; // eslint-disable-line @typescript-eslint/no-unsafe-member-access\n }\n if (field.presence != IMPLICIT) {\n // Fields with explicit presence have properties on the prototype chain\n // for default / zero values (except for proto3).\n return (target[name] !== undefined &&\n Object.prototype.hasOwnProperty.call(target, name));\n }\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (field.fieldKind) {\n case \"list\":\n return target[name].length > 0;\n case \"map\":\n return Object.keys(target[name]).length > 0; // eslint-disable-line @typescript-eslint/no-unsafe-argument\n case \"scalar\":\n return !(0, scalar_js_1.isScalarZeroValue)(field.scalar, target[name]);\n case \"enum\":\n return target[name] !== field.enum.values[0].number;\n }\n throw new Error(\"message field with implicit presence\");\n}\n/**\n * Returns true if the field is set, but only for singular fields with explicit\n * presence (proto2).\n *\n * @private\n */\nfunction unsafeIsSetExplicit(target, localName) {\n return (Object.prototype.hasOwnProperty.call(target, localName) &&\n target[localName] !== undefined);\n}\n/**\n * Return a field value, respecting oneof groups.\n *\n * @private\n */\nfunction unsafeGet(target, field) {\n if (field.oneof) {\n const oneof = target[field.oneof.localName];\n if (oneof.case === field.localName) {\n return oneof.value;\n }\n return undefined;\n }\n return target[field.localName];\n}\n/**\n * Set a field value, respecting oneof groups.\n *\n * @private\n */\nfunction unsafeSet(target, field, value) {\n if (field.oneof) {\n target[field.oneof.localName] = {\n case: field.localName,\n value: value,\n };\n }\n else {\n target[field.localName] = value;\n }\n}\n/**\n * Resets the field, so that unsafeIsSet() will return false.\n *\n * @private\n */\nfunction unsafeClear(target, // eslint-disable-line @typescript-eslint/no-explicit-any -- `any` is the best choice for dynamic access\nfield) {\n const name = field.localName;\n if (field.oneof) {\n const oneofLocalName = field.oneof.localName;\n if (target[oneofLocalName].case === name) {\n target[oneofLocalName] = { case: undefined };\n }\n }\n else if (field.presence != IMPLICIT) {\n // Fields with explicit presence have properties on the prototype chain\n // for default / zero values (except for proto3). By deleting their own\n // property, the field is reset.\n delete target[name];\n }\n else {\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (field.fieldKind) {\n case \"map\":\n target[name] = {};\n break;\n case \"list\":\n target[name] = [];\n break;\n case \"enum\":\n target[name] = field.enum.values[0].number;\n break;\n case \"scalar\":\n target[name] = (0, scalar_js_1.scalarZeroValue)(field.scalar, field.longAsString);\n break;\n }\n }\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBinary = toBinary;\nexports.writeField = writeField;\nconst reflect_js_1 = require(\"./reflect/reflect.js\");\nconst binary_encoding_js_1 = require(\"./wire/binary-encoding.js\");\nconst descriptors_js_1 = require(\"./descriptors.js\");\n// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.LEGACY_REQUIRED: const $name: FeatureSet_FieldPresence.$localName = $number;\nconst LEGACY_REQUIRED = 3;\n// Default options for serializing binary data.\nconst writeDefaults = {\n writeUnknownFields: true,\n};\nfunction makeWriteOptions(options) {\n return options ? Object.assign(Object.assign({}, writeDefaults), options) : writeDefaults;\n}\nfunction toBinary(schema, message, options) {\n return writeFields(new binary_encoding_js_1.BinaryWriter(), makeWriteOptions(options), (0, reflect_js_1.reflect)(schema, message)).finish();\n}\nfunction writeFields(writer, opts, msg) {\n var _a;\n for (const f of msg.sortedFields) {\n if (!msg.isSet(f)) {\n if (f.presence == LEGACY_REQUIRED) {\n throw new Error(`cannot encode field ${msg.desc.typeName}.${f.name} to binary: required field not set`);\n }\n continue;\n }\n writeField(writer, opts, msg, f);\n }\n if (opts.writeUnknownFields) {\n for (const { no, wireType, data } of (_a = msg.getUnknown()) !== null && _a !== void 0 ? _a : []) {\n writer.tag(no, wireType).raw(data);\n }\n }\n return writer;\n}\n/**\n * @private\n */\nfunction writeField(writer, opts, msg, field) {\n var _a;\n switch (field.fieldKind) {\n case \"scalar\":\n case \"enum\":\n writeScalar(writer, msg.desc.typeName, field.name, (_a = field.scalar) !== null && _a !== void 0 ? _a : descriptors_js_1.ScalarType.INT32, field.number, msg.get(field));\n break;\n case \"list\":\n writeListField(writer, opts, field, msg.get(field));\n break;\n case \"message\":\n writeMessageField(writer, opts, field, msg.get(field));\n break;\n case \"map\":\n for (const [key, val] of msg.get(field)) {\n writeMapEntry(writer, opts, field, key, val);\n }\n break;\n }\n}\nfunction writeScalar(writer, msgName, fieldName, scalarType, fieldNo, value) {\n writeScalarValue(writer.tag(fieldNo, writeTypeOfScalar(scalarType)), msgName, fieldName, scalarType, value);\n}\nfunction writeMessageField(writer, opts, field, message) {\n if (field.delimitedEncoding) {\n writeFields(writer.tag(field.number, binary_encoding_js_1.WireType.StartGroup), opts, message).tag(field.number, binary_encoding_js_1.WireType.EndGroup);\n }\n else {\n writeFields(writer.tag(field.number, binary_encoding_js_1.WireType.LengthDelimited).fork(), opts, message).join();\n }\n}\nfunction writeListField(writer, opts, field, list) {\n var _a;\n if (field.listKind == \"message\") {\n for (const item of list) {\n writeMessageField(writer, opts, field, item);\n }\n return;\n }\n const scalarType = (_a = field.scalar) !== null && _a !== void 0 ? _a : descriptors_js_1.ScalarType.INT32;\n if (field.packed) {\n if (!list.size) {\n return;\n }\n writer.tag(field.number, binary_encoding_js_1.WireType.LengthDelimited).fork();\n for (const item of list) {\n writeScalarValue(writer, field.parent.typeName, field.name, scalarType, item);\n }\n writer.join();\n return;\n }\n for (const item of list) {\n writeScalar(writer, field.parent.typeName, field.name, scalarType, field.number, item);\n }\n}\nfunction writeMapEntry(writer, opts, field, key, value) {\n var _a;\n writer.tag(field.number, binary_encoding_js_1.WireType.LengthDelimited).fork();\n // write key, expecting key field number = 1\n writeScalar(writer, field.parent.typeName, field.name, field.mapKey, 1, key);\n // write value, expecting value field number = 2\n switch (field.mapKind) {\n case \"scalar\":\n case \"enum\":\n writeScalar(writer, field.parent.typeName, field.name, (_a = field.scalar) !== null && _a !== void 0 ? _a : descriptors_js_1.ScalarType.INT32, 2, value);\n break;\n case \"message\":\n writeFields(writer.tag(2, binary_encoding_js_1.WireType.LengthDelimited).fork(), opts, value).join();\n break;\n }\n writer.join();\n}\nfunction writeScalarValue(writer, msgName, fieldName, type, value) {\n try {\n switch (type) {\n case descriptors_js_1.ScalarType.STRING:\n writer.string(value);\n break;\n case descriptors_js_1.ScalarType.BOOL:\n writer.bool(value);\n break;\n case descriptors_js_1.ScalarType.DOUBLE:\n writer.double(value);\n break;\n case descriptors_js_1.ScalarType.FLOAT:\n writer.float(value);\n break;\n case descriptors_js_1.ScalarType.INT32:\n writer.int32(value);\n break;\n case descriptors_js_1.ScalarType.INT64:\n writer.int64(value);\n break;\n case descriptors_js_1.ScalarType.UINT64:\n writer.uint64(value);\n break;\n case descriptors_js_1.ScalarType.FIXED64:\n writer.fixed64(value);\n break;\n case descriptors_js_1.ScalarType.BYTES:\n writer.bytes(value);\n break;\n case descriptors_js_1.ScalarType.FIXED32:\n writer.fixed32(value);\n break;\n case descriptors_js_1.ScalarType.SFIXED32:\n writer.sfixed32(value);\n break;\n case descriptors_js_1.ScalarType.SFIXED64:\n writer.sfixed64(value);\n break;\n case descriptors_js_1.ScalarType.SINT64:\n writer.sint64(value);\n break;\n case descriptors_js_1.ScalarType.UINT32:\n writer.uint32(value);\n break;\n case descriptors_js_1.ScalarType.SINT32:\n writer.sint32(value);\n break;\n }\n }\n catch (e) {\n if (e instanceof Error) {\n throw new Error(`cannot encode field ${msgName}.${fieldName} to binary: ${e.message}`);\n }\n throw e;\n }\n}\nfunction writeTypeOfScalar(type) {\n switch (type) {\n case descriptors_js_1.ScalarType.BYTES:\n case descriptors_js_1.ScalarType.STRING:\n return binary_encoding_js_1.WireType.LengthDelimited;\n case descriptors_js_1.ScalarType.DOUBLE:\n case descriptors_js_1.ScalarType.FIXED64:\n case descriptors_js_1.ScalarType.SFIXED64:\n return binary_encoding_js_1.WireType.Bit64;\n case descriptors_js_1.ScalarType.FIXED32:\n case descriptors_js_1.ScalarType.SFIXED32:\n case descriptors_js_1.ScalarType.FLOAT:\n return binary_encoding_js_1.WireType.Bit32;\n default:\n return binary_encoding_js_1.WireType.Varint;\n }\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.base64Decode = base64Decode;\nexports.base64Encode = base64Encode;\n/* eslint-disable @typescript-eslint/ban-ts-comment, @typescript-eslint/no-unnecessary-condition, prefer-const */\n/**\n * Decodes a base64 string to a byte array.\n *\n * - ignores white-space, including line breaks and tabs\n * - allows inner padding (can decode concatenated base64 strings)\n * - does not require padding\n * - understands base64url encoding:\n * \"-\" instead of \"+\",\n * \"_\" instead of \"/\",\n * no padding\n */\nfunction base64Decode(base64Str) {\n const table = getDecodeTable();\n // estimate byte size, not accounting for inner padding and whitespace\n let es = (base64Str.length * 3) / 4;\n if (base64Str[base64Str.length - 2] == \"=\")\n es -= 2;\n else if (base64Str[base64Str.length - 1] == \"=\")\n es -= 1;\n let bytes = new Uint8Array(es), bytePos = 0, // position in byte array\n groupPos = 0, // position in base64 group\n b, // current byte\n p = 0; // previous byte\n for (let i = 0; i < base64Str.length; i++) {\n b = table[base64Str.charCodeAt(i)];\n if (b === undefined) {\n switch (base64Str[i]) {\n // @ts-expect-error TS7029: Fallthrough case in switch\n case \"=\":\n groupPos = 0; // reset state when padding found\n // eslint-disable-next-line no-fallthrough\n case \"\\n\":\n case \"\\r\":\n case \"\\t\":\n case \" \":\n continue; // skip white-space, and padding\n default:\n throw Error(\"invalid base64 string\");\n }\n }\n switch (groupPos) {\n case 0:\n p = b;\n groupPos = 1;\n break;\n case 1:\n bytes[bytePos++] = (p << 2) | ((b & 48) >> 4);\n p = b;\n groupPos = 2;\n break;\n case 2:\n bytes[bytePos++] = ((p & 15) << 4) | ((b & 60) >> 2);\n p = b;\n groupPos = 3;\n break;\n case 3:\n bytes[bytePos++] = ((p & 3) << 6) | b;\n groupPos = 0;\n break;\n }\n }\n if (groupPos == 1)\n throw Error(\"invalid base64 string\");\n return bytes.subarray(0, bytePos);\n}\n/**\n * Encode a byte array to a base64 string.\n *\n * By default, this function uses the standard base64 encoding with padding.\n *\n * To encode without padding, use encoding = \"std_raw\".\n *\n * To encode with the URL encoding, use encoding = \"url\", which replaces the\n * characters +/ by their URL-safe counterparts -_, and omits padding.\n */\nfunction base64Encode(bytes, encoding = \"std\") {\n const table = getEncodeTable(encoding);\n const pad = encoding == \"std\";\n let base64 = \"\", groupPos = 0, // position in base64 group\n b, // current byte\n p = 0; // carry over from previous byte\n for (let i = 0; i < bytes.length; i++) {\n b = bytes[i];\n switch (groupPos) {\n case 0:\n base64 += table[b >> 2];\n p = (b & 3) << 4;\n groupPos = 1;\n break;\n case 1:\n base64 += table[p | (b >> 4)];\n p = (b & 15) << 2;\n groupPos = 2;\n break;\n case 2:\n base64 += table[p | (b >> 6)];\n base64 += table[b & 63];\n groupPos = 0;\n break;\n }\n }\n // add output padding\n if (groupPos) {\n base64 += table[p];\n if (pad) {\n base64 += \"=\";\n if (groupPos == 1)\n base64 += \"=\";\n }\n }\n return base64;\n}\n// lookup table from base64 character to byte\nlet encodeTableStd;\nlet encodeTableUrl;\n// lookup table from base64 character *code* to byte because lookup by number is fast\nlet decodeTable;\nfunction getEncodeTable(encoding) {\n if (!encodeTableStd) {\n encodeTableStd =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\".split(\"\");\n encodeTableUrl = encodeTableStd.slice(0, -2).concat(\"-\", \"_\");\n }\n return encoding == \"url\" ? encodeTableUrl : encodeTableStd;\n}\nfunction getDecodeTable() {\n if (!decodeTable) {\n decodeTable = [];\n const encodeTable = getEncodeTable(\"std\");\n for (let i = 0; i < encodeTable.length; i++)\n decodeTable[encodeTable[i].charCodeAt(0)] = i;\n // support base64url variants\n decodeTable[\"-\".charCodeAt(0)] = encodeTable.indexOf(\"+\");\n decodeTable[\"_\".charCodeAt(0)] = encodeTable.indexOf(\"/\");\n }\n return decodeTable;\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BinaryReader = exports.BinaryWriter = exports.INT32_MIN = exports.INT32_MAX = exports.UINT32_MAX = exports.FLOAT32_MIN = exports.FLOAT32_MAX = exports.WireType = void 0;\nconst varint_js_1 = require(\"./varint.js\");\nconst proto_int64_js_1 = require(\"../proto-int64.js\");\nconst text_encoding_js_1 = require(\"./text-encoding.js\");\n/* eslint-disable prefer-const,no-case-declarations,@typescript-eslint/restrict-plus-operands */\n/**\n * Protobuf binary format wire types.\n *\n * A wire type provides just enough information to find the length of the\n * following value.\n *\n * See https://developers.google.com/protocol-buffers/docs/encoding#structure\n */\nvar WireType;\n(function (WireType) {\n /**\n * Used for int32, int64, uint32, uint64, sint32, sint64, bool, enum\n */\n WireType[WireType[\"Varint\"] = 0] = \"Varint\";\n /**\n * Used for fixed64, sfixed64, double.\n * Always 8 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit64\"] = 1] = \"Bit64\";\n /**\n * Used for string, bytes, embedded messages, packed repeated fields\n *\n * Only repeated numeric types (types which use the varint, 32-bit,\n * or 64-bit wire types) can be packed. In proto3, such fields are\n * packed by default.\n */\n WireType[WireType[\"LengthDelimited\"] = 2] = \"LengthDelimited\";\n /**\n * Start of a tag-delimited aggregate, such as a proto2 group, or a message\n * in editions with message_encoding = DELIMITED.\n */\n WireType[WireType[\"StartGroup\"] = 3] = \"StartGroup\";\n /**\n * End of a tag-delimited aggregate.\n */\n WireType[WireType[\"EndGroup\"] = 4] = \"EndGroup\";\n /**\n * Used for fixed32, sfixed32, float.\n * Always 4 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit32\"] = 5] = \"Bit32\";\n})(WireType || (exports.WireType = WireType = {}));\n/**\n * Maximum value for a 32-bit floating point value (Protobuf FLOAT).\n */\nexports.FLOAT32_MAX = 3.4028234663852886e38;\n/**\n * Minimum value for a 32-bit floating point value (Protobuf FLOAT).\n */\nexports.FLOAT32_MIN = -3.4028234663852886e38;\n/**\n * Maximum value for an unsigned 32-bit integer (Protobuf UINT32, FIXED32).\n */\nexports.UINT32_MAX = 0xffffffff;\n/**\n * Maximum value for a signed 32-bit integer (Protobuf INT32, SFIXED32, SINT32).\n */\nexports.INT32_MAX = 0x7fffffff;\n/**\n * Minimum value for a signed 32-bit integer (Protobuf INT32, SFIXED32, SINT32).\n */\nexports.INT32_MIN = -0x80000000;\nclass BinaryWriter {\n constructor(encodeUtf8 = (0, text_encoding_js_1.getTextEncoding)().encodeUtf8) {\n this.encodeUtf8 = encodeUtf8;\n /**\n * Previous fork states.\n */\n this.stack = [];\n this.chunks = [];\n this.buf = [];\n }\n /**\n * Return all bytes written and reset this writer.\n */\n finish() {\n if (this.buf.length) {\n this.chunks.push(new Uint8Array(this.buf)); // flush the buffer\n this.buf = [];\n }\n let len = 0;\n for (let i = 0; i < this.chunks.length; i++)\n len += this.chunks[i].length;\n let bytes = new Uint8Array(len);\n let offset = 0;\n for (let i = 0; i < this.chunks.length; i++) {\n bytes.set(this.chunks[i], offset);\n offset += this.chunks[i].length;\n }\n this.chunks = [];\n return bytes;\n }\n /**\n * Start a new fork for length-delimited data like a message\n * or a packed repeated field.\n *\n * Must be joined later with `join()`.\n */\n fork() {\n this.stack.push({ chunks: this.chunks, buf: this.buf });\n this.chunks = [];\n this.buf = [];\n return this;\n }\n /**\n * Join the last fork. Write its length and bytes, then\n * return to the previous state.\n */\n join() {\n // get chunk of fork\n let chunk = this.finish();\n // restore previous state\n let prev = this.stack.pop();\n if (!prev)\n throw new Error(\"invalid state, fork stack empty\");\n this.chunks = prev.chunks;\n this.buf = prev.buf;\n // write length of chunk as varint\n this.uint32(chunk.byteLength);\n return this.raw(chunk);\n }\n /**\n * Writes a tag (field number and wire type).\n *\n * Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`.\n *\n * Generated code should compute the tag ahead of time and call `uint32()`.\n */\n tag(fieldNo, type) {\n return this.uint32(((fieldNo << 3) | type) >>> 0);\n }\n /**\n * Write a chunk of raw bytes.\n */\n raw(chunk) {\n if (this.buf.length) {\n this.chunks.push(new Uint8Array(this.buf));\n this.buf = [];\n }\n this.chunks.push(chunk);\n return this;\n }\n /**\n * Write a `uint32` value, an unsigned 32 bit varint.\n */\n uint32(value) {\n assertUInt32(value);\n // write value as varint 32, inlined for speed\n while (value > 0x7f) {\n this.buf.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n this.buf.push(value);\n return this;\n }\n /**\n * Write a `int32` value, a signed 32 bit varint.\n */\n int32(value) {\n assertInt32(value);\n (0, varint_js_1.varint32write)(value, this.buf);\n return this;\n }\n /**\n * Write a `bool` value, a variant.\n */\n bool(value) {\n this.buf.push(value ? 1 : 0);\n return this;\n }\n /**\n * Write a `bytes` value, length-delimited arbitrary data.\n */\n bytes(value) {\n this.uint32(value.byteLength); // write length of chunk as varint\n return this.raw(value);\n }\n /**\n * Write a `string` value, length-delimited data converted to UTF-8 text.\n */\n string(value) {\n let chunk = this.encodeUtf8(value);\n this.uint32(chunk.byteLength); // write length of chunk as varint\n return this.raw(chunk);\n }\n /**\n * Write a `float` value, 32-bit floating point number.\n */\n float(value) {\n assertFloat32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setFloat32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `double` value, a 64-bit floating point number.\n */\n double(value) {\n let chunk = new Uint8Array(8);\n new DataView(chunk.buffer).setFloat64(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed32` value, an unsigned, fixed-length 32-bit integer.\n */\n fixed32(value) {\n assertUInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setUint32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sfixed32` value, a signed, fixed-length 32-bit integer.\n */\n sfixed32(value) {\n assertInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setInt32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sint32` value, a signed, zigzag-encoded 32-bit varint.\n */\n sint32(value) {\n assertInt32(value);\n // zigzag encode\n value = ((value << 1) ^ (value >> 31)) >>> 0;\n (0, varint_js_1.varint32write)(value, this.buf);\n return this;\n }\n /**\n * Write a `fixed64` value, a signed, fixed-length 64-bit integer.\n */\n sfixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = proto_int64_js_1.protoInt64.enc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed64` value, an unsigned, fixed-length 64 bit integer.\n */\n fixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = proto_int64_js_1.protoInt64.uEnc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `int64` value, a signed 64-bit varint.\n */\n int64(value) {\n let tc = proto_int64_js_1.protoInt64.enc(value);\n (0, varint_js_1.varint64write)(tc.lo, tc.hi, this.buf);\n return this;\n }\n /**\n * Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64(value) {\n let tc = proto_int64_js_1.protoInt64.enc(value), \n // zigzag encode\n sign = tc.hi >> 31, lo = (tc.lo << 1) ^ sign, hi = ((tc.hi << 1) | (tc.lo >>> 31)) ^ sign;\n (0, varint_js_1.varint64write)(lo, hi, this.buf);\n return this;\n }\n /**\n * Write a `uint64` value, an unsigned 64-bit varint.\n */\n uint64(value) {\n let tc = proto_int64_js_1.protoInt64.uEnc(value);\n (0, varint_js_1.varint64write)(tc.lo, tc.hi, this.buf);\n return this;\n }\n}\nexports.BinaryWriter = BinaryWriter;\nclass BinaryReader {\n constructor(buf, decodeUtf8 = (0, text_encoding_js_1.getTextEncoding)().decodeUtf8) {\n this.decodeUtf8 = decodeUtf8;\n this.varint64 = varint_js_1.varint64read; // dirty cast for `this`\n /**\n * Read a `uint32` field, an unsigned 32 bit varint.\n */\n this.uint32 = varint_js_1.varint32read;\n this.buf = buf;\n this.len = buf.length;\n this.pos = 0;\n this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n /**\n * Reads a tag - field number and wire type.\n */\n tag() {\n let tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7;\n if (fieldNo <= 0 || wireType < 0 || wireType > 5)\n throw new Error(\"illegal tag: field no \" + fieldNo + \" wire type \" + wireType);\n return [fieldNo, wireType];\n }\n /**\n * Skip one element and return the skipped data.\n *\n * When skipping StartGroup, provide the tags field number to check for\n * matching field number in the EndGroup tag.\n */\n skip(wireType, fieldNo) {\n let start = this.pos;\n switch (wireType) {\n case WireType.Varint:\n while (this.buf[this.pos++] & 0x80) {\n // ignore\n }\n break;\n // eslint-disable-next-line\n // @ts-expect-error TS7029: Fallthrough case in switch\n case WireType.Bit64:\n this.pos += 4;\n // eslint-disable-next-line no-fallthrough\n case WireType.Bit32:\n this.pos += 4;\n break;\n case WireType.LengthDelimited:\n let len = this.uint32();\n this.pos += len;\n break;\n case WireType.StartGroup:\n for (;;) {\n const [fn, wt] = this.tag();\n if (wt === WireType.EndGroup) {\n if (fieldNo !== undefined && fn !== fieldNo) {\n throw new Error(\"invalid end group tag\");\n }\n break;\n }\n this.skip(wt, fn);\n }\n break;\n default:\n throw new Error(\"cant skip wire type \" + wireType);\n }\n this.assertBounds();\n return this.buf.subarray(start, this.pos);\n }\n /**\n * Throws error if position in byte array is out of range.\n */\n assertBounds() {\n if (this.pos > this.len)\n throw new RangeError(\"premature EOF\");\n }\n /**\n * Read a `int32` field, a signed 32 bit varint.\n */\n int32() {\n return this.uint32() | 0;\n }\n /**\n * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.\n */\n sint32() {\n let zze = this.uint32();\n // decode zigzag\n return (zze >>> 1) ^ -(zze & 1);\n }\n /**\n * Read a `int64` field, a signed 64-bit varint.\n */\n int64() {\n return proto_int64_js_1.protoInt64.dec(...this.varint64());\n }\n /**\n * Read a `uint64` field, an unsigned 64-bit varint.\n */\n uint64() {\n return proto_int64_js_1.protoInt64.uDec(...this.varint64());\n }\n /**\n * Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64() {\n let [lo, hi] = this.varint64();\n // decode zig zag\n let s = -(lo & 1);\n lo = ((lo >>> 1) | ((hi & 1) << 31)) ^ s;\n hi = (hi >>> 1) ^ s;\n return proto_int64_js_1.protoInt64.dec(lo, hi);\n }\n /**\n * Read a `bool` field, a variant.\n */\n bool() {\n let [lo, hi] = this.varint64();\n return lo !== 0 || hi !== 0;\n }\n /**\n * Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.\n */\n fixed32() {\n return this.view.getUint32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `sfixed32` field, a signed, fixed-length 32-bit integer.\n */\n sfixed32() {\n return this.view.getInt32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.\n */\n fixed64() {\n return proto_int64_js_1.protoInt64.uDec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `fixed64` field, a signed, fixed-length 64-bit integer.\n */\n sfixed64() {\n return proto_int64_js_1.protoInt64.dec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `float` field, 32-bit floating point number.\n */\n float() {\n return this.view.getFloat32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `double` field, a 64-bit floating point number.\n */\n double() {\n return this.view.getFloat64((this.pos += 8) - 8, true);\n }\n /**\n * Read a `bytes` field, length-delimited arbitrary data.\n */\n bytes() {\n let len = this.uint32(), start = this.pos;\n this.pos += len;\n this.assertBounds();\n return this.buf.subarray(start, start + len);\n }\n /**\n * Read a `string` field, length-delimited data converted to UTF-8 text.\n */\n string() {\n return this.decodeUtf8(this.bytes());\n }\n}\nexports.BinaryReader = BinaryReader;\n/**\n * Assert a valid signed protobuf 32-bit integer as a number or string.\n */\nfunction assertInt32(arg) {\n if (typeof arg == \"string\") {\n arg = Number(arg);\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid int32: \" + typeof arg);\n }\n if (!Number.isInteger(arg) ||\n arg > exports.INT32_MAX ||\n arg < exports.INT32_MIN)\n throw new Error(\"invalid int32: \" + arg);\n}\n/**\n * Assert a valid unsigned protobuf 32-bit integer as a number or string.\n */\nfunction assertUInt32(arg) {\n if (typeof arg == \"string\") {\n arg = Number(arg);\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid uint32: \" + typeof arg);\n }\n if (!Number.isInteger(arg) ||\n arg > exports.UINT32_MAX ||\n arg < 0)\n throw new Error(\"invalid uint32: \" + arg);\n}\n/**\n * Assert a valid protobuf float value as a number or string.\n */\nfunction assertFloat32(arg) {\n if (typeof arg == \"string\") {\n const o = arg;\n arg = Number(arg);\n if (isNaN(arg) && o !== \"NaN\") {\n throw new Error(\"invalid float32: \" + o);\n }\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid float32: \" + typeof arg);\n }\n if (Number.isFinite(arg) &&\n (arg > exports.FLOAT32_MAX || arg < exports.FLOAT32_MIN))\n throw new Error(\"invalid float32: \" + arg);\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./binary-encoding.js\"), exports);\n__exportStar(require(\"./base64-encoding.js\"), exports);\n__exportStar(require(\"./text-encoding.js\"), exports);\n__exportStar(require(\"./text-format.js\"), exports);\n__exportStar(require(\"./size-delimited.js\"), exports);\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sizeDelimitedEncode = sizeDelimitedEncode;\nexports.sizeDelimitedDecodeStream = sizeDelimitedDecodeStream;\nexports.sizeDelimitedPeek = sizeDelimitedPeek;\nconst to_binary_js_1 = require(\"../to-binary.js\");\nconst binary_encoding_js_1 = require(\"./binary-encoding.js\");\nconst from_binary_js_1 = require(\"../from-binary.js\");\n/**\n * Serialize a message, prefixing it with its size.\n *\n * A size-delimited message is a varint size in bytes, followed by exactly\n * that many bytes of a message serialized with the binary format.\n *\n * This size-delimited format is compatible with other implementations.\n * For details, see https://github.com/protocolbuffers/protobuf/issues/10229\n */\nfunction sizeDelimitedEncode(messageDesc, message, options) {\n const writer = new binary_encoding_js_1.BinaryWriter();\n writer.bytes((0, to_binary_js_1.toBinary)(messageDesc, message, options));\n return writer.finish();\n}\n/**\n * Parse a stream of size-delimited messages.\n *\n * A size-delimited message is a varint size in bytes, followed by exactly\n * that many bytes of a message serialized with the binary format.\n *\n * This size-delimited format is compatible with other implementations.\n * For details, see https://github.com/protocolbuffers/protobuf/issues/10229\n */\nfunction sizeDelimitedDecodeStream(messageDesc, iterable, options) {\n return __asyncGenerator(this, arguments, function* sizeDelimitedDecodeStream_1() {\n var _a, e_1, _b, _c;\n // append chunk to buffer, returning updated buffer\n function append(buffer, chunk) {\n const n = new Uint8Array(buffer.byteLength + chunk.byteLength);\n n.set(buffer);\n n.set(chunk, buffer.length);\n return n;\n }\n let buffer = new Uint8Array(0);\n try {\n for (var _d = true, iterable_1 = __asyncValues(iterable), iterable_1_1; iterable_1_1 = yield __await(iterable_1.next()), _a = iterable_1_1.done, !_a; _d = true) {\n _c = iterable_1_1.value;\n _d = false;\n const chunk = _c;\n buffer = append(buffer, chunk);\n for (;;) {\n const size = sizeDelimitedPeek(buffer);\n if (size.eof) {\n // size is incomplete, buffer more data\n break;\n }\n if (size.offset + size.size > buffer.byteLength) {\n // message is incomplete, buffer more data\n break;\n }\n yield yield __await((0, from_binary_js_1.fromBinary)(messageDesc, buffer.subarray(size.offset, size.offset + size.size), options));\n buffer = buffer.subarray(size.offset + size.size);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_1.return)) yield __await(_b.call(iterable_1));\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (buffer.byteLength > 0) {\n throw new Error(\"incomplete data\");\n }\n });\n}\n/**\n * Decodes the size from the given size-delimited message, which may be\n * incomplete.\n *\n * Returns an object with the following properties:\n * - size: The size of the delimited message in bytes\n * - offset: The offset in the given byte array where the message starts\n * - eof: true\n *\n * If the size-delimited data does not include all bytes of the varint size,\n * the following object is returned:\n * - size: null\n * - offset: null\n * - eof: false\n *\n * This function can be used to implement parsing of size-delimited messages\n * from a stream.\n */\nfunction sizeDelimitedPeek(data) {\n const sizeEof = { eof: true, size: null, offset: null };\n for (let i = 0; i < 10; i++) {\n if (i > data.byteLength) {\n return sizeEof;\n }\n if ((data[i] & 0x80) == 0) {\n const reader = new binary_encoding_js_1.BinaryReader(data);\n let size;\n try {\n size = reader.uint32();\n }\n catch (e) {\n if (e instanceof RangeError) {\n return sizeEof;\n }\n throw e;\n }\n return {\n eof: false,\n size,\n offset: reader.pos,\n };\n }\n }\n throw new Error(\"invalid varint\");\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.configureTextEncoding = configureTextEncoding;\nexports.getTextEncoding = getTextEncoding;\nconst symbol = Symbol.for(\"@bufbuild/protobuf/text-encoding\");\n/**\n * Protobuf-ES requires the Text Encoding API to convert UTF-8 from and to\n * binary. This WHATWG API is widely available, but it is not part of the\n * ECMAScript standard. On runtimes where it is not available, use this\n * function to provide your own implementation.\n *\n * Note that the Text Encoding API does not provide a way to validate UTF-8.\n * Our implementation falls back to use encodeURIComponent().\n */\nfunction configureTextEncoding(textEncoding) {\n globalThis[symbol] = textEncoding;\n}\nfunction getTextEncoding() {\n if (globalThis[symbol] == undefined) {\n const te = new globalThis.TextEncoder();\n const td = new globalThis.TextDecoder();\n globalThis[symbol] = {\n encodeUtf8(text) {\n return te.encode(text);\n },\n decodeUtf8(bytes) {\n return td.decode(bytes);\n },\n checkUtf8(text) {\n try {\n encodeURIComponent(text);\n return true;\n }\n catch (e) {\n return false;\n }\n },\n };\n }\n return globalThis[symbol];\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseTextFormatEnumValue = parseTextFormatEnumValue;\nexports.parseTextFormatScalarValue = parseTextFormatScalarValue;\nconst descriptors_js_1 = require(\"../descriptors.js\");\nconst proto_int64_js_1 = require(\"../proto-int64.js\");\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/**\n * Parse an enum value from the Protobuf text format.\n *\n * @private\n */\nfunction parseTextFormatEnumValue(descEnum, value) {\n const enumValue = descEnum.values.find((v) => v.name === value);\n if (!enumValue) {\n throw new Error(`cannot parse ${descEnum} default value: ${value}`);\n }\n return enumValue.number;\n}\n/**\n * Parse a scalar value from the Protobuf text format.\n *\n * @private\n */\nfunction parseTextFormatScalarValue(type, value) {\n switch (type) {\n case descriptors_js_1.ScalarType.STRING:\n return value;\n case descriptors_js_1.ScalarType.BYTES: {\n const u = unescapeBytesDefaultValue(value);\n if (u === false) {\n throw new Error(`cannot parse ${descriptors_js_1.ScalarType[type]} default value: ${value}`);\n }\n return u;\n }\n case descriptors_js_1.ScalarType.INT64:\n case descriptors_js_1.ScalarType.SFIXED64:\n case descriptors_js_1.ScalarType.SINT64:\n return proto_int64_js_1.protoInt64.parse(value);\n case descriptors_js_1.ScalarType.UINT64:\n case descriptors_js_1.ScalarType.FIXED64:\n return proto_int64_js_1.protoInt64.uParse(value);\n case descriptors_js_1.ScalarType.DOUBLE:\n case descriptors_js_1.ScalarType.FLOAT:\n switch (value) {\n case \"inf\":\n return Number.POSITIVE_INFINITY;\n case \"-inf\":\n return Number.NEGATIVE_INFINITY;\n case \"nan\":\n return Number.NaN;\n default:\n return parseFloat(value);\n }\n case descriptors_js_1.ScalarType.BOOL:\n return value === \"true\";\n case descriptors_js_1.ScalarType.INT32:\n case descriptors_js_1.ScalarType.UINT32:\n case descriptors_js_1.ScalarType.SINT32:\n case descriptors_js_1.ScalarType.FIXED32:\n case descriptors_js_1.ScalarType.SFIXED32:\n return parseInt(value, 10);\n }\n}\n/**\n * Parses a text-encoded default value (proto2) of a BYTES field.\n */\nfunction unescapeBytesDefaultValue(str) {\n const b = [];\n const input = {\n tail: str,\n c: \"\",\n next() {\n if (this.tail.length == 0) {\n return false;\n }\n this.c = this.tail[0];\n this.tail = this.tail.substring(1);\n return true;\n },\n take(n) {\n if (this.tail.length >= n) {\n const r = this.tail.substring(0, n);\n this.tail = this.tail.substring(n);\n return r;\n }\n return false;\n },\n };\n while (input.next()) {\n switch (input.c) {\n case \"\\\\\":\n if (input.next()) {\n switch (input.c) {\n case \"\\\\\":\n b.push(input.c.charCodeAt(0));\n break;\n case \"b\":\n b.push(0x08);\n break;\n case \"f\":\n b.push(0x0c);\n break;\n case \"n\":\n b.push(0x0a);\n break;\n case \"r\":\n b.push(0x0d);\n break;\n case \"t\":\n b.push(0x09);\n break;\n case \"v\":\n b.push(0x0b);\n break;\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\": {\n const s = input.c;\n const t = input.take(2);\n if (t === false) {\n return false;\n }\n const n = parseInt(s + t, 8);\n if (isNaN(n)) {\n return false;\n }\n b.push(n);\n break;\n }\n case \"x\": {\n const s = input.c;\n const t = input.take(2);\n if (t === false) {\n return false;\n }\n const n = parseInt(s + t, 16);\n if (isNaN(n)) {\n return false;\n }\n b.push(n);\n break;\n }\n case \"u\": {\n const s = input.c;\n const t = input.take(4);\n if (t === false) {\n return false;\n }\n const n = parseInt(s + t, 16);\n if (isNaN(n)) {\n return false;\n }\n const chunk = new Uint8Array(4);\n const view = new DataView(chunk.buffer);\n view.setInt32(0, n, true);\n b.push(chunk[0], chunk[1], chunk[2], chunk[3]);\n break;\n }\n case \"U\": {\n const s = input.c;\n const t = input.take(8);\n if (t === false) {\n return false;\n }\n const tc = proto_int64_js_1.protoInt64.uEnc(s + t);\n const chunk = new Uint8Array(8);\n const view = new DataView(chunk.buffer);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n b.push(chunk[0], chunk[1], chunk[2], chunk[3], chunk[4], chunk[5], chunk[6], chunk[7]);\n break;\n }\n }\n }\n break;\n default:\n b.push(input.c.charCodeAt(0));\n }\n }\n return new Uint8Array(b);\n}\n","\"use strict\";\n// Copyright 2008 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n// Code generated by the Protocol Buffer compiler is owned by the owner\n// of the input file used when generating it. This code is not\n// standalone and requires a support library to be linked with it. This\n// support library is itself covered by the above license.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.varint64read = varint64read;\nexports.varint64write = varint64write;\nexports.int64FromString = int64FromString;\nexports.int64ToString = int64ToString;\nexports.uInt64ToString = uInt64ToString;\nexports.varint32write = varint32write;\nexports.varint32read = varint32read;\n/* eslint-disable prefer-const,@typescript-eslint/restrict-plus-operands */\n/**\n * Read a 64 bit varint as two JS numbers.\n *\n * Returns tuple:\n * [0]: low bits\n * [1]: high bits\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L175\n */\nfunction varint64read() {\n let lowBits = 0;\n let highBits = 0;\n for (let shift = 0; shift < 28; shift += 7) {\n let b = this.buf[this.pos++];\n lowBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n let middleByte = this.buf[this.pos++];\n // last four bits of the first 32 bit number\n lowBits |= (middleByte & 0x0f) << 28;\n // 3 upper bits are part of the next 32 bit number\n highBits = (middleByte & 0x70) >> 4;\n if ((middleByte & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n for (let shift = 3; shift <= 31; shift += 7) {\n let b = this.buf[this.pos++];\n highBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n throw new Error(\"invalid varint\");\n}\n/**\n * Write a 64 bit varint, given as two JS numbers, to the given bytes array.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/writer.js#L344\n */\nfunction varint64write(lo, hi, bytes) {\n for (let i = 0; i < 28; i = i + 7) {\n const shift = lo >>> i;\n const hasNext = !(shift >>> 7 == 0 && hi == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n const splitBits = ((lo >>> 28) & 0x0f) | ((hi & 0x07) << 4);\n const hasMoreBits = !(hi >> 3 == 0);\n bytes.push((hasMoreBits ? splitBits | 0x80 : splitBits) & 0xff);\n if (!hasMoreBits) {\n return;\n }\n for (let i = 3; i < 31; i = i + 7) {\n const shift = hi >>> i;\n const hasNext = !(shift >>> 7 == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n bytes.push((hi >>> 31) & 0x01);\n}\n// constants for binary math\nconst TWO_PWR_32_DBL = 0x100000000;\n/**\n * Parse decimal string of 64 bit integer value as two JS numbers.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nfunction int64FromString(dec) {\n // Check for minus sign.\n const minus = dec[0] === \"-\";\n if (minus) {\n dec = dec.slice(1);\n }\n // Work 6 decimal digits at a time, acting like we're converting base 1e6\n // digits to binary. This is safe to do with floating point math because\n // Number.isSafeInteger(ALL_32_BITS * 1e6) == true.\n const base = 1e6;\n let lowBits = 0;\n let highBits = 0;\n function add1e6digit(begin, end) {\n // Note: Number('') is 0.\n const digit1e6 = Number(dec.slice(begin, end));\n highBits *= base;\n lowBits = lowBits * base + digit1e6;\n // Carry bits from lowBits to\n if (lowBits >= TWO_PWR_32_DBL) {\n highBits = highBits + ((lowBits / TWO_PWR_32_DBL) | 0);\n lowBits = lowBits % TWO_PWR_32_DBL;\n }\n }\n add1e6digit(-24, -18);\n add1e6digit(-18, -12);\n add1e6digit(-12, -6);\n add1e6digit(-6);\n return minus ? negate(lowBits, highBits) : newBits(lowBits, highBits);\n}\n/**\n * Losslessly converts a 64-bit signed integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nfunction int64ToString(lo, hi) {\n let bits = newBits(lo, hi);\n // If we're treating the input as a signed value and the high bit is set, do\n // a manual two's complement conversion before the decimal conversion.\n const negative = bits.hi & 0x80000000;\n if (negative) {\n bits = negate(bits.lo, bits.hi);\n }\n const result = uInt64ToString(bits.lo, bits.hi);\n return negative ? \"-\" + result : result;\n}\n/**\n * Losslessly converts a 64-bit unsigned integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nfunction uInt64ToString(lo, hi) {\n ({ lo, hi } = toUnsigned(lo, hi));\n // Skip the expensive conversion if the number is small enough to use the\n // built-in conversions.\n // Number.MAX_SAFE_INTEGER = 0x001FFFFF FFFFFFFF, thus any number with\n // highBits <= 0x1FFFFF can be safely expressed with a double and retain\n // integer precision.\n // Proven by: Number.isSafeInteger(0x1FFFFF * 2**32 + 0xFFFFFFFF) == true.\n if (hi <= 0x1fffff) {\n return String(TWO_PWR_32_DBL * hi + lo);\n }\n // What this code is doing is essentially converting the input number from\n // base-2 to base-1e7, which allows us to represent the 64-bit range with\n // only 3 (very large) digits. Those digits are then trivial to convert to\n // a base-10 string.\n // The magic numbers used here are -\n // 2^24 = 16777216 = (1,6777216) in base-1e7.\n // 2^48 = 281474976710656 = (2,8147497,6710656) in base-1e7.\n // Split 32:32 representation into 16:24:24 representation so our\n // intermediate digits don't overflow.\n const low = lo & 0xffffff;\n const mid = ((lo >>> 24) | (hi << 8)) & 0xffffff;\n const high = (hi >> 16) & 0xffff;\n // Assemble our three base-1e7 digits, ignoring carries. The maximum\n // value in a digit at this step is representable as a 48-bit integer, which\n // can be stored in a 64-bit floating point number.\n let digitA = low + mid * 6777216 + high * 6710656;\n let digitB = mid + high * 8147497;\n let digitC = high * 2;\n // Apply carries from A to B and from B to C.\n const base = 10000000;\n if (digitA >= base) {\n digitB += Math.floor(digitA / base);\n digitA %= base;\n }\n if (digitB >= base) {\n digitC += Math.floor(digitB / base);\n digitB %= base;\n }\n // If digitC is 0, then we should have returned in the trivial code path\n // at the top for non-safe integers. Given this, we can assume both digitB\n // and digitA need leading zeros.\n return (digitC.toString() +\n decimalFrom1e7WithLeadingZeros(digitB) +\n decimalFrom1e7WithLeadingZeros(digitA));\n}\nfunction toUnsigned(lo, hi) {\n return { lo: lo >>> 0, hi: hi >>> 0 };\n}\nfunction newBits(lo, hi) {\n return { lo: lo | 0, hi: hi | 0 };\n}\n/**\n * Returns two's compliment negation of input.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Signed_32-bit_integers\n */\nfunction negate(lowBits, highBits) {\n highBits = ~highBits;\n if (lowBits) {\n lowBits = ~lowBits + 1;\n }\n else {\n // If lowBits is 0, then bitwise-not is 0xFFFFFFFF,\n // adding 1 to that, results in 0x100000000, which leaves\n // the low bits 0x0 and simply adds one to the high bits.\n highBits += 1;\n }\n return newBits(lowBits, highBits);\n}\n/**\n * Returns decimal representation of digit1e7 with leading zeros.\n */\nconst decimalFrom1e7WithLeadingZeros = (digit1e7) => {\n const partial = String(digit1e7);\n return \"0000000\".slice(partial.length) + partial;\n};\n/**\n * Write a 32 bit varint, signed or unsigned. Same as `varint64write(0, value, bytes)`\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/1b18833f4f2a2f681f4e4a25cdf3b0a43115ec26/js/binary/encoder.js#L144\n */\nfunction varint32write(value, bytes) {\n if (value >= 0) {\n // write value as varint 32\n while (value > 0x7f) {\n bytes.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n bytes.push(value);\n }\n else {\n for (let i = 0; i < 9; i++) {\n bytes.push((value & 127) | 128);\n value = value >> 7;\n }\n bytes.push(1);\n }\n}\n/**\n * Read an unsigned 32 bit varint.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L220\n */\nfunction varint32read() {\n let b = this.buf[this.pos++];\n let result = b & 0x7f;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 7;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 14;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 21;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n // Extract only last 4 bits\n b = this.buf[this.pos++];\n result |= (b & 0x0f) << 28;\n for (let readBytes = 5; (b & 0x80) !== 0 && readBytes < 10; readBytes++)\n b = this.buf[this.pos++];\n if ((b & 0x80) != 0)\n throw new Error(\"invalid varint\");\n this.assertBounds();\n // Result can have 32 bits, convert it to unsigned\n return result >>> 0;\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isWrapper = isWrapper;\nexports.isWrapperDesc = isWrapperDesc;\nfunction isWrapper(arg) {\n return isWrapperTypeName(arg.$typeName);\n}\nfunction isWrapperDesc(messageDesc) {\n const f = messageDesc.fields[0];\n return (isWrapperTypeName(messageDesc.typeName) &&\n f !== undefined &&\n f.fieldKind == \"scalar\" &&\n f.name == \"value\" &&\n f.number == 1);\n}\nfunction isWrapperTypeName(name) {\n return (name.startsWith(\"google.protobuf.\") &&\n [\n \"DoubleValue\",\n \"FloatValue\",\n \"Int64Value\",\n \"UInt64Value\",\n \"Int32Value\",\n \"UInt32Value\",\n \"BoolValue\",\n \"StringValue\",\n \"BytesValue\",\n ].includes(name.substring(16)));\n}\n","'use strict';\n\nvar possibleNames = require('possible-typed-array-names');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\n/** @type {import('.')} */\nmodule.exports = function availableTypedArrays() {\n\tvar /** @type {ReturnType} */ out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\t// @ts-expect-error\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdO = {};","var webpackQueues = typeof Symbol === \"function\" ? Symbol(\"webpack queues\") : \"__webpack_queues__\";\nvar webpackExports = typeof Symbol === \"function\" ? Symbol(\"webpack exports\") : \"__webpack_exports__\";\nvar webpackError = typeof Symbol === \"function\" ? Symbol(\"webpack error\") : \"__webpack_error__\";\nvar resolveQueue = (queue) => {\n\tif(queue && queue.d < 1) {\n\t\tqueue.d = 1;\n\t\tqueue.forEach((fn) => (fn.r--));\n\t\tqueue.forEach((fn) => (fn.r-- ? fn.r++ : fn()));\n\t}\n}\nvar wrapDeps = (deps) => (deps.map((dep) => {\n\tif(dep !== null && typeof dep === \"object\") {\n\t\tif(dep[webpackQueues]) return dep;\n\t\tif(dep.then) {\n\t\t\tvar queue = [];\n\t\t\tqueue.d = 0;\n\t\t\tdep.then((r) => {\n\t\t\t\tobj[webpackExports] = r;\n\t\t\t\tresolveQueue(queue);\n\t\t\t}, (e) => {\n\t\t\t\tobj[webpackError] = e;\n\t\t\t\tresolveQueue(queue);\n\t\t\t});\n\t\t\tvar obj = {};\n\t\t\tobj[webpackQueues] = (fn) => (fn(queue));\n\t\t\treturn obj;\n\t\t}\n\t}\n\tvar ret = {};\n\tret[webpackQueues] = x => {};\n\tret[webpackExports] = dep;\n\treturn ret;\n}));\n__webpack_require__.a = (module, body, hasAwait) => {\n\tvar queue;\n\thasAwait && ((queue = []).d = -1);\n\tvar depQueues = new Set();\n\tvar exports = module.exports;\n\tvar currentDeps;\n\tvar outerResolve;\n\tvar reject;\n\tvar promise = new Promise((resolve, rej) => {\n\t\treject = rej;\n\t\touterResolve = resolve;\n\t});\n\tpromise[webpackExports] = exports;\n\tpromise[webpackQueues] = (fn) => (queue && fn(queue), depQueues.forEach(fn), promise[\"catch\"](x => {}));\n\tmodule.exports = promise;\n\tbody((deps) => {\n\t\tcurrentDeps = wrapDeps(deps);\n\t\tvar fn;\n\t\tvar getResult = () => (currentDeps.map((d) => {\n\t\t\tif(d[webpackError]) throw d[webpackError];\n\t\t\treturn d[webpackExports];\n\t\t}))\n\t\tvar promise = new Promise((resolve) => {\n\t\t\tfn = () => (resolve(getResult));\n\t\t\tfn.r = 0;\n\t\t\tvar fnQueue = (q) => (q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn))));\n\t\t\tcurrentDeps.map((dep) => (dep[webpackQueues](fnQueue)));\n\t\t});\n\t\treturn fn.r ? promise : getResult();\n\t}, (err) => ((err ? reject(promise[webpackError] = err) : outerResolve(exports)), resolveQueue(queue)));\n\tqueue && queue.d < 0 && (queue.d = 0);\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","","// startup\n// Load entry module and return exports\n// This entry module used 'module' so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./js/index.js\");\n",""],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","mappings":"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AsC,MAAM,UAAU;AAC/E;AACA,MAAM;AACN;AACA,uCAAuC,oBAAoB;AAC3D;AACA,sBAAsB,2BAA2B,MAAM,WAAW;AAClE;;AAEA;AACA;AACA;AACA,2CAA2C,UAAU;AACrD;AACA;AACA,iBAAiB,kCAAkC;AACnD;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,iFAAyB;;AAE/C;AACA;AACA;AACA,2CAA2C,UAAU;AACrD;AACA;AACA,iBAAiB,+BAA+B;AAChD;AACA;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,0DAAW;AACrB;AACA;AACA;AACA,0BAA0B,iFAAyB;;AAEnD;AACA;AACA;AACA,+CAA+C,UAAU;AACzD;AACA;AACA,qBAAqB,oCAAoC;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,iFAAyB;AAC/C;;AAEA;AACA;AACA;AACA,2CAA2C,UAAU;AACrD;AACA;AACA,iBAAiB,sCAAsC;AACvD,kBAAkB,6BAA6B;AAC/C;AACA;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,iFAAyB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,UAAU;AACrD;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA,gDAAgD;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,SAAS,0CAA0C,EAAE,iBAAiB;AACtE;AACA;AACA,MAAM,2EAAmB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,iFAAyB;AAC/C,+BAA+B,oFAA4B;AAC3D;AACA,WAAW,aAAa,GAAG,4BAA4B;AACvD,UAAU,cAAc;AACxB;AACA,qCAAqC,oBAAoB;AACzD;;AAEA;AACA;AACA;AACA,2CAA2C,UAAU;AACrD;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,wBAAwB,2BAA2B;;AAEnD;AACA,uBAAuB,0BAA0B,GAAG,sCAAsC;AAC1F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,yDAAyD,oBAAoB;AAC3F;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,iFAAyB;AAC/C;;AAEA;AACA;AACA;AACA,2CAA2C,UAAU;AACrD;AACA;AACA,iBAAiB,sCAAsC;AACvD,kBAAkB,6BAA6B;AAC/C;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,0DAAW;AACxC;AACA,2CAA2C,oBAAoB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yBAAyB;AAClC;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B,iBAAiB;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,UAAU;AACV;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAkB;AAC3B;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B,iBAAiB;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,UAAU;AACV;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qDAAqD,sBAAsB;AAC3E;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC9sBuH;AAC/B;AACI;;AAE5F;AACA;AACA;AACO;;AAEP;AACA,aAAa,WAAW;AACxB,aAAa,QAAQ;AACrB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;;AAEA;;AAEA;AACA,gBAAgB,0EAAqB;AACrC;;AAEA;AACA,cAAc,4EAAuB,GAAG,kEAAa;;AAErD;AACA,gBAAgB,0EAAqB;AACrC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB;AACA,cAAc,QAAQ;AACtB;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,iBAAiB;;AAEpC;;AAEA;AACA;AACA,eAAe,0EAAqB;AACpC;;AAEA;AACA;AACA,eAAe,4EAAuB,GAAG,kEAAa;AACtD;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA,qCAAqC,kEAAa;AAClD;AACA;;AAEA;AACA,WAAW,kEAAa;;AAExB;AACA;;AAEA,uBAAuB,kGAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,sGAAgC,6CAA6C,aAAa;AAC5G;;AAEA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;ACzH2C;AACqB;AA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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACvBO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC7FO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC7CO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;;;;;ACRO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACTO;AACP;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACpFO;AACP;AACA;AACA;;;;;;;;;;;;;;;ACHO;AACP;AACA;AACA;;;;;;;;;;;;;;;;ACHO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACNO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACbO;AACP;AACA;;;;;;;;;;;;;;;ACFO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC9BO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACXO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;ACJO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACJO;AACP;AACA;;;;;;;;;;;;;;;ACFO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACRO;AACP,kCAAkC,EAAE;AACpC;AACA,gCAAgC,EAAE,OAAO,GAAG;AAC5C,2BAA2B,EAAE,OAAO,KAAK;AACzC;;;;;;;;;;;;;;;ACLO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC1KO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AChBO;AACP;AACA;AACA;;;;;;;;;;;;;;;;ACHO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACRO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLmE;AACgB;AACI;AACA;AACY;AACM;AACA;AACF;AACE;AACpB;AACF;AACQ;AACA;AACI;AACM;AACE;AACJ;AACR;AACN;AAC/B;;AAE/C,gCAAgC,6EAAkB;;AAEzD;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,aAAa;AAC1B,aAAa,mBAAmB;AAChC,aAAa,cAAc;AAC3B,aAAa,cAAc;AAC3B,aAAa,sBAAsB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,6FAAqB;AAC/C;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,kCAAkC,iEAAY;AAC9C,0BAA0B,iGAAuB;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,iGAAuB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,6GAA6B;AACvD;AACA;;AAEA;AACA,aAAa,sBAAsB;AACnC;AACA;AACA,0BAA0B,mHAAgC;AAC1D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,sBAAsB;AACnC;AACA;AACA,0BAA0B,mHAAgC;AAC1D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,iHAA+B;AACzD;AACA;;AAEA;AACA,0BAA0B,mHAAgC;AAC1D;AACA;;AAEA;AACA,aAAa,eAAe;AAC5B;AACA;AACA,0BAA0B,+FAAsB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,8FAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,sGAAyB;AACnD;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA,0BAA0B,sGAAyB;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,0GAA2B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,gHAA8B;AACxD;AACA;;AAEA;AACA,0BAA0B,kHAA+B;AACzD;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,8GAA6B;AACvD;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,sGAAyB;AACnD;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,gGAAsB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrNmE;AACX;AACoC;AACA;AACR;AACA;AACA;AACJ;AACU;AACM;AACxC;AACgD;AAC7B;AACW;AACF;AAChC;AAC8B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI;AACD;AACY;AAC7B;AACmC;AAG/B;AACiB;AACY;AACN;AACI;AACN;AACa;AACV;AACjD;AACkB;;AAE1D,6BAA6B,6EAAkB;;AAEtD;AACA;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,eAAe;AAC5B,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,kEAAS;AACnC;AACA;;AAEA;AACA,0BAA0B,sGAA0B;AACpD;AACA;;AAEA;AACA,0BAA0B,sGAA0B;AACpD;AACA;;AAEA;AACA,0BAA0B,8FAAsB;AAChD;AACA;;AAEA;AACA,0BAA0B,8FAAsB;AAChD;AACA;;AAEA;AACA,0BAA0B,8FAAsB;AAChD;AACA;;AAEA;AACA,0BAA0B,0FAAoB;AAC9C;AACA;;AAEA;AACA,0BAA0B,oGAAyB;AACnD;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,0GAA4B;AACtD;AACA;;AAEA;AACA,0BAA0B,mHAAgC;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,0GAA4B;AACtD;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,iGAAuB;AACjD;AACA;;AAEA;AACA,0BAA0B,+FAAsB;AAChD;AACA;;AAEA;AACA,0BAA0B,sFAAkB;AAC5C;AACA;;AAEA;AACA,0BAA0B,6FAAqB;AAC/C;AACA;;AAEA;AACA,0BAA0B,6FAAqB;AAC/C;AACA;;AAEA;AACA,0BAA0B,6FAAqB;AAC/C;AACA;;AAEA;AACA,0BAA0B,6FAAqB;AAC/C;AACA;;AAEA;AACA,0BAA0B,6FAAqB;AAC/C;AACA;;AAEA;AACA,0BAA0B,6FAAqB;AAC/C;AACA;;AAEA;AACA,0BAA0B,6FAAqB;AAC/C;AACA;;AAEA;AACA,0BAA0B,6FAAqB;AAC/C;AACA;;AAEA;AACA,0BAA0B,iGAAuB;AACjD;AACA;;AAEA;AACA,0BAA0B,gGAAuB;AACjD;AACA;;AAEA;AACA,aAAa,4BAA4B;AACzC;AACA;AACA,0BAA0B,4GAA6B;AACvD;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,kHAAgC;AAC1D;AACA;;AAEA;AACA,aAAa,4BAA4B;AACzC;AACA;AACA,0BAA0B,oIAAyC;AACnE;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,4BAA4B;AACzC;AACA;AACA,0BAA0B,oGAAyB;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,gHAA+B;AACzD;AACA;;AAEA;AACA,0BAA0B,0GAA4B;AACtD;AACA;;AAEA;AACA,0BAA0B,8GAA8B;AACxD;AACA;;AAEA;AACA,0BAA0B,wGAA2B;AACrD;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;;AAEA;;AAEA,mCAAmC,4EAAkB;AACrD;AACA;;AAEA,IAAI,0DAAQ;;AAEZ;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,aAAa,eAAe;AAC5B;AACA;AACA,0BAA0B,2GAA4B;AACtD;AACA;;AAEA;AACA,aAAa,eAAe;AAC5B;AACA;AACA,0BAA0B,qHAAiC;AAC3D;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACjSmE;AACU;AACZ;AACc;AAC5B;AACoB;;;AAGhE,8BAA8B,6EAAkB;;AAEvD;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,cAAc;AAC3B,aAAa,cAAc;AAC3B,aAAa,aAAa;AAC1B,aAAa,eAAe;AAC5B,aAAa,YAAY;AACzB,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA,oBAAoB;;AAEpB;AACA;;AAEA,0BAA0B,uFAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,2EAAa;AACvC;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,yFAAoB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,iFAAgB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACvGmE;AACc;AAChB;;AAE1D,gCAAgC,6EAAkB;;AAEzD;AACA,aAAa,WAAW;AACxB;AACA;AACA;AACA;;AAEA;AACA,aAAa,oBAAoB;AACjC;AACA;AACA,0BAA0B,2FAAoB;AAC9C;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;ACrBmE;AACU;AACI;AACA;AACM;AAChB;AACQ;;AAExE,8BAA8B,6EAAkB;;AAEvD;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,cAAc;AAC3B,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,uFAAmB;AAC7C;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,2FAAqB;AAC/C;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,2FAAqB;AAC/C;AACA;;AAEA;AACA,0BAA0B,iGAAwB;AAClD;AACA;;AAEA;AACA,0BAA0B,iFAAgB;AAC1C;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,yFAAoB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACxE2C;AACb;;AAEvB,kCAAkC,yCAAK;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,qDAAM;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,qDAAM;AAClC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;AC7CoD;;AAE7C;;AAEP;AACA,eAAe,uBAAuB;AACtC;;AAEA,eAAe,uBAAuB;AACtC;;AAEA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,aAAa,GAAG;AAChB;AACA;AACA,qBAAqB,+DAAgB;;AAErC;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC5DO;;AAEP;AACA,aAAa,GAAG;AAChB;AACA;AACA;;AAEA,eAAe,uBAAuB;AACtC;;AAEA,eAAe,uBAAuB;AACtC;AACA;AACA;;;;;;;;;;;;;;;;;ACdoD;;AAE7C;;AAEP;AACA,oBAAoB,+DAAgB;AACpC;;AAEA;AACA,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACnCO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACRO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACVO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACNO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACLO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACLO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACPO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACRO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACRO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACLO;AACP,iDAAiD;AACjD;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACNO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACNO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACdA;AACA;AACA;AACO;;AAEP;AACA,aAAa,KAAK;AAClB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACbO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACRO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACLO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACNO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACTO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACdO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACLO;AACP,kCAAkC;AAClC;AACA;AACA;AACA;;;;;;;;;;;;;;;ACLO;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAoC;;AAEpC;;AAEP;AACA,aAAa,QAAQ;AACrB;AACA;AACA,UAAU,qDAAM;AAChB;AACA;AACA;;;;;;;;;;;;;;;;;ACX2C;;AAEpC;;AAEP;AACA,aAAa,QAAQ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ACd;AACA,QAAQ,wDAAU;AAClB;AACA;AACA,cAAc;AACd;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B;AACA;;AAEA;AACA,mDAAmD,kFAAsB;AACzE;;AAEA,oBAAoB,kBAAkB;AACtC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,YAAY;AAC5B,uCAAuC,YAAY;AACnD;AACA,WAAW,eAAe;AAC1B;AACA;;AAEA;;AAEA,oBAAoB,sCAAsC;AAC1D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU,wDAAU;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI,OAAO;AACX;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD,kFAAsB;;AAEzE;;AAEA;;AAEA,iCAAiC,8FAAoB;AACrD;AACA;AACA;;AAEA,gCAAgC,4FAAmB;AACnD;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,iFAAiF;AACjF,iCAAiC,kFAAsB;AACvD;AACA;AACA;;AAEA;AACA,sEAAsE,UAAU,EAAE,MAAM;AACxF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC7YwE;;AAEjE;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,kFAAsB;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6CAA6C;AAC7C;;AAEA,sBAAsB,kFAAsB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,6DAA6D;AAC7D;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,kFAAsB;AACtC;;AAEA;AACA,gBAAgB,kFAAsB;AACtC;;AAEA;;;;;;;;;;;;;;;ACxFO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACLyD;;AAElD;;AAEP;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK,GAAG,WAAW;AACnB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAC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B,aAAa,UAAU;AACvB,aAAa,eAAe;AAC5B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,uBAAuB,gEAAY;AACnC;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA,qCAAqC,mFAAqB;AAC1D;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA,2CAA2C,gEAAY;AACvD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8DAA8D,gEAAY;AAC1E,iCAAiC,wEAAiB,KAAK,yEAAgB;AACvE;AACA,UAAU,4DAAU;AACpB;AACA;AACA;AACA;;AAEA,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,2EAAmB;AAC1D,sCAAsC,2EAAmB;AACzD;AACA;;AAEA,MAAM;AACN,uCAAuC,2EAAmB;AAC1D,sCAAsC,2EAAmB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM;AACN,uCAAuC,2EAAmB;AAC1D,sCAAsC,2EAAmB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM;AACN,uCAAuC,2EAAmB;AAC1D,sCAAsC,2EAAmB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,uDAAuD,gEAAY;AACnE;AACA,iCAAiC,sEAAgB;AACjD;AACA,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,mEAAc;AAC1C;AACA,OAAO,qEAAS;AAChB;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iCAAiC,8EAAoB;AACrD;AACA;AACA,iCAAiC,oFAAuB;AACxD;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,4BAA4B,mEAAc;AAC1C;AACA,OAAO,qEAAS;AAChB;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,sEAAc;AAC1E;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,sEAAc;AAC1E;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,qDAAqD;;AAEzE;;AAEA;;AAEA,sBAAsB,mEAAmE;;AAEzF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,4EAAoB;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,oEAAY;AACxB;AACA,YAAY,4EAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6DAA6D,sEAAc;AAC3E,iEAAiE,sEAAc;AAC/E;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sCAAsC,eAAe;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;AC5nByE;AACV;AACb;AACU;AACE;AA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CA;AACA;AACA;AACA,aAAa,+FAAqB;AAClC;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,6FAAmB;AAChC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,gGAAsB;AACnC;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,mGAAyB;AACtC;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,sGAA4B;AACzC;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,6FAAmB;AAChC;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,6FAAmB;AAChC;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,6FAAmB;AAChC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,+FAAqB;AAClC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,0FAAgB;AAC7B;AACA;AACA;AACA,OAAO;AACP,KAAK;A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AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,gGAAsB;AACnC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,6FAAmB;AAChC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,wGAA8B;AAC3C;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,2GAAiC;AAC9C;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,oGAA0B;AACvC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,uGAA6B;AAC1C;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA,aAAa,oGAA0B;AACvC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,0FAAgB;AAC7B;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,2FAAiB;AAC9B;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,aAAa,sGAA4B;AACzC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,iDAAiD,gEAAY;AAC7D,iDAAiD,gEAAY;AAC7D,iDAAiD,gEAAY;AAC7D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY,SAAS,KAAK;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,eAAe;AAC5B,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA,sEAAsE,gEAAY;AAClF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA,mDAAmD,gEAAY;AAC/D;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,8CAA8C,gEAAY,iDAAiD,gEAAY;AACvH,kDAAkD,gEAAY,qDAAqD,gEAAY;;AAE/H;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA,sCAAsC,gEAAY;AAClD;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,gEAAY;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,gEAAY;AACjD,mCAAmC,gEAAY;AAC/C,mCAAmC,gEAAY;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA,aAAa,mEAAc;AAC3B;AACA;AACA;AACA,UAAU,mEAAc;AACxB,UAAU,mEAAc;AACxB;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,IAAI,OAAO,kCAAkC,UAAU;;AAEvD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,sEAAgB;;AAE7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,8EAAoB;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,oFAAuB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,mEAAY;AACpB,MAAM,mEAAY;AAClB;;AAEA;AACA,6BAA6B,gFAAqB;AAClD;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA,WAAW,gEAAY;AACvB,yCAAyC,gEAAY;AACrD,WAAW,gEAAY;AACvB,yCAAyC,gEAAY;AACrD,WAAW,gEAAY;AACvB,yCAAyC,gEAAY;AACrD;AACA,+CAA+C,WAAW;AAC1D;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,cAAc,iBAAiB,GAAG,qBAAqB;AACvD;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,gBAAgB;AAC7B,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,yEAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,+EAAoB;AACzD;;AAEA;AACA;AACA,kCAAkC,oFAAuB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC,oGAA+B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxb2C;AACN;AACW;AACE;AACiB;AACjB;AACc;AACsB;AAClC;AACE;AACA;;;AAGtD;AACA;AACA;AACO;AACP;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,UAAU;AACzB,eAAe,sBAAsB;AACrC,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,6EAAmB;;AAEzC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,qDAAM;AACtC;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,0CAA0C,8DAAW;AACrD;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,gCAAgC,qDAAM;AACtC,kCAAkC,6EAAmB;AACrD;AACA,SAAS;;AAET;AACA;AACA,gCAAgC,qDAAM;AACtC,kCAAkC,6EAAmB;AACrD;AACA,SAAS;;AAET;AACA;AACA,gCAAgC,qDAAM;AACtC;AACA,SAAS;;AAET;AACA;AACA,gCAAgC,qDAAM;AACtC;AACA,SAAS;;AAET;AACA;AACA,gCAAgC,qDAAM;AACtC;AACA,SAAS;;AAET;AACA;AACA,gCAAgC,qDAAM;AACtC;AACA,SAAS;;AAET;AACA;AACA,gCAAgC,qDAAM;AACtC;AACA,SAAS;;;AAGT;AACA;AACA,gCAAgC,qDAAM;AACtC;AACA,SAAS;;AAET;AACA;AACA,gCAAgC,qDAAM;AACtC;AACA,SAAS;;AAET;AACA,gCAAgC,qDAAM;AACtC,YAAY,OAAO;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,4DAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,4DAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,4DAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,4DAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,4CAA4C,0DAAI;;AAEhD;;AAEA;AACA,QAAQ,OAAO;AACf,QAAQ,OAAO;AACf,QAAQ,OAAO;AACf,QAAQ,OAAO;AACf,QAAQ,OAAO;AACf,QAAQ,OAAO;AACf;;AAEA;AACA,8DAA8D,0DAAI;AAClE;;AAEA;AACA;AACA,4CAA4C,0DAAI;AAChD;;AAEA;AACA,+BAA+B,6EAAmB;AAClD;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA,iCAAiC,gGAA6B;AAC9D;;AAEA;AACA,eAAe,WAAW;AAC1B,gBAAgB;AAChB;AACA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU;AACV,sCAAsC,4DAAW;AACjD;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,8CAA8C,8DAAW;AACzD;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oCAAoC,0EAAkB;;AAEtD;AACA;AACA;;;AAGA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,0DAAI;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,gBAAgB;AAChB;AACA;AACA,0DAA0D,4DAAU;AACpE;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gEAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;;AAEA,qFAAqF,iEAAY;AACjG;AACA;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;;;;;;;;;;ACplB8D;AACE;;AAEzD;;AAEP;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,yBAAyB,kDAAM;AAC/B,WAAW,iDAAK;AAChB;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,iBAAiB,0EAAuB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA,mBAAmB,sDAAM;AACzB,+BAA+B,qDAAS;AACxC;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;ACnDyD;AACzB;;AAEzB;;AAEP;;AAEA,eAAe,QAAQ;AACvB;;AAEA,eAAe,QAAQ;AACvB;;AAEA,eAAe,SAAS;AACxB;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA,MAAM,OAAO,uEAAuE,mBAAmB;AACvG,MAAM;AACN;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,IAAI,mEAAY;AAChB;;AAEA;AACA,aAAa,SAAS;AACtB;AACA;AACA;;AAEA;AACA;AACA,MAAM,mEAAY;AAClB;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;ACpFO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;A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AACA;AACA;AACA,WAAW,qBAAqB;AAChC,gBAAgB,QAAQ;AACxB;;AAEA;AACA,cAAc;AACd;AACA;AACA,+BAA+B,iEAAY;AAC3C;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;AC5U2C;AACc;;AAElD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO,qDAAM;AACb,OAAO,qDAAM;AACb,OAAO,qDAAM;AACb,OAAO,qDAAM;AACb;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,kBAAkB,qDAAM;AACxB;AACA;AACA,kBAAkB,qDAAM;AACxB;AACA;AACA,kBAAkB,qDAAM;AACxB;AACA;AACA,kBAAkB,qDAAM;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,sBAAsB;AACnC,cAAc;AACd;AACA;AACA,wBAAwB,oBAAoB;;AAE5C;AACA,wCAAwC,MAAM;AAC9C;;AAEA,+CAA+C,mEAAc;AAC7D;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;ACzEoD;;AAE7C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,8DAAW;AACnC,2BAA2B,8DAAW;AACtC;AACA;AACA;;;;;;;;;;;;;;;AClBO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,mDAAmD,SAAS;AAC5D;;AAEA;AACA,cAAc;AACd;AACA;AACA,4DAA4D,cAAc;AAC1E;AACA;;;;;;;;;;;;;;;ACjCO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;AClBO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACZO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACPO;AACP;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;AACA;;AAEA;;;;;;;;;;;;;;;;ACbO;AACP;AACA;AACA;AACA;;AAEA,cAAc,SAAS;AACvB;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;;;;;AC1BiE;;AAE1D;AACP;AACA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,UAAU;AACzB;;AAEA,eAAe,aAAa;AAC5B;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,0BAA0B,2EAAmB;AAC7C;;AAEA;AACA,cAAc;AACd;AACA;AACA,0BAA0B,2EAAmB;AAC7C;;AAEA;AACA,cAAc;AACd;AACA;AACA,0BAA0B,2EAAmB;AAC7C;;AAEA;AACA,cAAc;AACd;AACA;AACA,0BAA0B,2EAAmB;AAC7C;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,0BAA0B,2EAAmB;AAC7C;;AAEA;AACA,cAAc;AACd;AACA;AACA,0BAA0B,2EAAmB;AAC7C;;AAEA;AACA,cAAc;AACd;AACA;AACA,0BAA0B,2EAAmB;AAC7C;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACjHsC;;AAE/B;;AAEP;AACA;AACA;;AAEA,eAAe,aAAa;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,iCAAiC,6EAAqB;AACtD;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,mCAAmC,+EAAuB;AAC1D;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,mCAAmC,+EAAuB;AAC1D;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,gCAAgC,4EAAoB;AACpD;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,uCAAuC,mFAA2B;AAClE;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,qCAAqC,iFAAyB;AAC9D;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,mCAAmC,+EAAuB;AAC1D;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,qCAAqC,iFAAyB;AAC9D;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,mCAAmC,+EAAuB;AAC1D;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,gCAAgC,4EAAoB;AACpD;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,gCAAgC,4EAAoB;AACpD;AACA;;;;;;;;;;;;;;;;ACtNsC;;AAE/B;AACP;AACA;AACA,SAAS,2EAAmB;AAC5B,SAAS,2EAAmB;AAC5B,SAAS,4EAAoB;AAC7B,SAAS,4EAAoB;AAC7B,SAAS,wEAAgB;AACzB,SAAS,wEAAgB;AACzB,SAAS,wEAAgB;AACzB,SAAS,wEAAgB;AACzB,SAAS,wEAAgB;AACzB,SAAS,wEAAgB;AACzB,SAAS,wEAAgB;AACzB,SAAS,2EAAmB;AAC5B;AACA;;;;;;;;;;;;;;;;;;;;ACvByD;AACM;AACvB;;AAEjC;AACP;AACA;AACA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;;AAEA;AACA,aAAa,OAAO;AACpB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mEAAc;AACrC,qCAAqC,yEAAiB;AACtD;AACA;AACA,uBAAuB,mEAAc;AACrC,qCAAqC,yEAAiB;AACtD;AACA;AACA,uBAAuB,mEAAc;AACrC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACvEgD;AACI;AACW;AACzB;AACkC;AACF;;;AAG/D;;AAEP;AACA,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,OAAO;AACb;AACA;;AAEA;AACA,MAAM,OAAO;AACb;AACA;;AAEA;AACA;AACA;;AAEA,6BAA6B,0DAAI;;AAEjC;AACA,mCAAmC,yEAAgB;AACnD;AACA,+BAA+B,kFAAsB;AACrD;;AAEA;AACA;AACA,0BAA0B,8DAAW;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,WAAW;AACxB;AACA;AACA;AACA,WAAW,8DAAW;AACtB,WAAW,8DAAW;AACtB;AACA;AACA;;AAEA,WAAW,8DAAW;AACtB,WAAW,8DAAW;AACtB,WAAW,8DAAW;AACtB;AACA;AACA;;AAEA,WAAW,8DAAW;AACtB,QAAQ,OAAO;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,8DAAW;AAC9B;;AAEA;AACA;AACA,mBAAmB,8DAAW;AAC9B;;AAEA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,iCAAiC,8DAAW;AAC5C;;AAEA;AACA,cAAc;AACd;AACA;AACA,iCAAiC,8DAAW;AAC5C;;AAEA;AACA,cAAc;AACd;AACA;AACA,iCAAiC,8DAAW;AAC5C;;AAEA;AACA,cAAc;AACd;AACA;AACA,iCAAiC,8DAAW;AAC5C;;AAEA;AACA,cAAc;AACd;AACA;AACA,iCAAiC,8DAAW;AAC5C;;AAEA;AACA,cAAc;AACd;AACA;AACA,iCAAiC,8DAAW;AAC5C;;AAEA;AACA,cAAc;AACd;AACA;AACA,iCAAiC,8DAAW;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,gFAAqB;AAClD;AACA;;;;;;;;;;;;;;;;;;;;ACzMgD;AACI;AACnB;;;AAG1B;AACP;AACA,kBAAkB,8DAAW;AAC7B;AACA;AACA;AACA;AACA;;AAEA,wBAAwB;AACxB,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B,0DAAI;AAClC;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,2BAA2B,8DAAW;AACtC;;AAEA;AACA,cAAc;AACd;AACA;AACA,2BAA2B,8DAAW;AACtC;;AAEA;AACA,cAAc;AACd;AACA;AACA,2BAA2B,8DAAW;AACtC;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB,8DAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB,8DAAW;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,8BAA8B,0DAAI;AAClC,6BAA6B,0DAAI;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA,yBAAyB,0DAAI;AAC7B;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA,2FAA2F,0DAAI;AAC/F;;AAEA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC/QO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AChBO;;AAEP;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC/FO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;ACX+C;;AAExC;AACP;AACA,qBAAqB,yDAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACbqD;AACV;AACM;AACL;;AAErC;;AAEP;AACA,4BAA4B,gEAAe;AAC3C,uBAAuB,sDAAU;AACjC,0BAA0B,4DAAa;AACvC,yBAAyB,uDAAY;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;;;;;;;;;;;;;;;;;AC9B2C;AACN;;AAE9B,4BAA4B,sDAAU;;AAE7C;AACA;AACA;AACA,YAAY,aAAa;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA,oBAAoB,gDAAO;AAC3B;AACA;AACA;AACA;AACA;;AAEA,eAAe,6BAA6B;AAC5C;AACA;;AAEA;AACA,aAAa,6BAA6B;AAC1C;AACA;AACA;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA,iDAAiD,sCAAsC;AACvF,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;AACA,2DAA2D,gCAAgC;;AAE3F;AACA;;AAEA;AACA;;AAEA;;AAEA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAI,gBAAgB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,eAAe,eAAe;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK,eAAe,eAAe;AACnC;AACA;;;;;;;;;;;;;;;;;;ACpKgE;AACF;;AAEvD;;AAEP;AACA,wBAAwB,yEAAqB;AAC7C;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,cAAc,2EAAsB,gCAAgC,sBAAsB;AAC1F;AACA;;;;;;;;;;;;;;;;;;AChBwD;AACE;;AAEnD;;AAEP;AACA,+BAA+B,kEAAe;AAC9C,gCAAgC,oEAAgB;AAChD;;;AAGA;AACA,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,mBAAmB,wDAAwD;AAC3E;AACA,wDAAwD,cAAc;AACtE;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,yCAAyC;AACnD;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,wBAAwB;AACzE;AACA,YAAY;AACZ,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACtKmE;;AAE5D;;AAEP;AACA;AACA;AACA;AACA,cAAc,8EAAsB;AACpC;;AAEA;;;;;;;;;;;;;;;;;ACX2C;;AAEpC,8BAA8B,sDAAU;;AAE/C;AACA;AACA;AACA,aAAa,eAAe;AAC5B,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,wBAAwB,MAAM;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,OAAO;;AAEP;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;ACjEO;;AAEP;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACV2C;;AAEpC,2BAA2B,sDAAU;;AAE5C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD,eAAe;AACjE,+CAA+C,eAAe;AAC9D;;AAEA;AACA;AACA,oDAAoD,WAAW;AAC/D,iDAAiD,WAAW;AAC5D;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;;;;;;;;;;;;;;;;;AC9H2C;AACN;;AAE9B,yBAAyB,sDAAU;;AAE1C;AACA;AACA;AACA,YAAY,aAAa;AACzB;AACA;;AAEA;AACA;AACA,oBAAoB,gDAAO;AAC3B;;AAEA;AACA,aAAa,aAAa;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAI,gBAAgB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK,eAAe,eAAe;;AAEnC;AACA;AACA,KAAK,eAAe,eAAe;AACnC;AACA;;;;;;;;;;;;;;;;AClHO;AACP;AACA,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,gCAAgC,8CAA8C;AAC9E;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,gCAAgC,6CAA6C;AAC7E;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC,qBAAqB;;AAEtD;AACA;AACA,MAAM;AACN,iCAAiC,wEAAwE;;AAEzG,MAAM;AACN,iCAAiC,4EAA4E;AAC7G;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,gCAAgC,8BAA8B;AAC9D;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,gCAAgC,kBAAkB;AAClD;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;;AAEA,+BAA+B,QAAQ;AACvC;;AAEA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;;AAEA,8BAA8B,OAAO;AACrC;;AAEA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;;AAEA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,+BAA+B,8BAA8B;AAC7D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,8BAA8B;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,8BAA8B;AACtC,QAAQ,kCAAkC;AAC1C,QAAQ,oCAAoC;AAC5C,QAAQ;AACR;;AAEA;AACA;;AAEA;AACA;AACA,kCAAkC,8BAA8B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC9RO;;AAEP;AACA,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,UAAU;AACvB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AChDO;AACA;AACA;AACA;AACA;;AAEA;;AAEP;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc,QAAQ;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AChDO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,oBAAoB,uCAAuC;AAC3D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC5CO;AACP;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;;;;;;;;;;;;;;;ACZO;;AAEP;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AA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Q,oCAAoC,oCAAoC,gEAAY,0BAA0B;AAC5H,MAAM,yDAAQ;AACd;;AAEA;AACA,MAAM,yDAAQ;AACd,MAAM,yDAAQ,oCAAoC,oCAAoC,gEAAY,uBAAuB;AACzH,MAAM,yDAAQ;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,qDAAM;AAClC,MAAM,OAAO;AACb;AACA,KAAK;;AAEL;AACA,4BAA4B,qDAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,4BAA4B,qDAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;;AAEA;AACA,kDAAkD,sEAAiB;AACnE;AACA;AACA;AACA,gDAAgD,sEAAiB;AACjE,qCAAqC,gEAAY;AACjD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,oBAAoB;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC7U8C;AACC;AACkB;;AAE1D,wBAAwB,2EAAiB;;AAEhD;AACA;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;;AAEA;AACA;AACA,UAAU,wDAAU;AACpB;AACA;AACA;AACA;AACA,IAAI,yDAAQ;AACZ,IAAI,yDAAQ;;AAEZ,IAAI,yDAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;AACA;AACA;;;;;;;;;;;;;;;;;;ACtCkD;AACkB;;AAE7D,+CAA+C,2EAAiB;;AAEvE;AACA,aAAa,WAAW;AACxB,aAAa,aAAa;AAC1B,aAAa,sBAAsB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,yDAAQ;AAChB;AACA,KAAK;AACL,MAAM,yDAAQ;AACd,KAAK;AACL;;AAEA;;AAEA,IAAI,yDAAQ,oBAAoB,yDAAQ;;AAExC,IAAI,yDAAQ;;AAEZ,IAAI,yDAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;ACrDkD;AACkB;AACnB;AACsB;AACxB;AACS;;AAEjD,+CAA+C,2EAAiB;;AAEvE;AACA,aAAa,WAAW;AACxB,aAAa,mBAAmB;AAChC,aAAa,sBAAsB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+DAAW;AACvB;;AAEA,QAAQ,yDAAQ;AAChB;AACA;AACA;;AAEA;AACA,0BAA0B,wDAAS;AACnC,mDAAmD;;AAEnD,IAAI,yDAAQ,oBAAoB,yDAAQ;;AAExC,IAAI,yDAAQ;;AAEZ,IAAI,yDAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC,uBAAuB,wBAAwB;AAC/C,uBAAuB,+BAA+B;AACtD;AACA;AACA;AACA,yBAAyB,wBAAwB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6BAA6B;AACnD,oBAAoB,6BAA6B;AACjD;AACA;AACA,0BAA0B,6BAA6B;AACvD;AACA;AACA;AACA;AACA;AACA,sBAAsB,8BAA8B;AACpD,oBAAoB,8BAA8B;AAClD;AACA;AACA,0BAA0B,8BAA8B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC/HkD;AACkB;AACN;AACL;;AAElD,oCAAoC,2EAAiB;;AAE5D;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,mBAAmB;AAChC,aAAa,sBAAsB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA,WAAW,qEAAgB;AAC3B;AACA,QAAQ;AACR;AACA,oCAAoC,gEAAY;AAChD;AACA;AACA,kCAAkC,gEAAY;AAC9C,QAAQ,yDAAQ;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,IAAI,yDAAQ,oBAAoB,yDAAQ;;AAExC,IAAI,yDAAQ;AACZ;AACA;AACA;AACA,QAAQ,yDAAQ;AAChB,OAAO;;AAEP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;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AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yDAAQ;AACpB,YAAY;AACZ,YAAY,yDAAQ;AACpB,YAAY;AACZ,YAAY,yDAAQ;AACpB,YAAY;AACZ,YAAY,yDAAQ;AACpB;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA4B,wDAAS;;AAErC,uCAAuC;AACvC;;AAEA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;;AAEA;AACA,6EAA6E,+DAAW,iBAAiB,+DAAW;AACpH;;AAEA,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;AACd;AACA;AACA;AACA,UAAU,yDAAQ;AAClB,SAAS;;AAET,MAAM,yDAAQ;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,SAAS;AAC3E;AACA,2BAA2B,wBAAwB;AACnD,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD,sBAAsB,6BAA6B;AACnD,kBAAkB;AAClB,kBAAkB;AAClB;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8BAA8B;AACtD,sBAAsB,8BAA8B;AACpD,kBAAkB;AAClB,kBAAkB;AAClB;AACA;AACA,4BAA4B,8BAA8B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,yDAAQ;;AAEd;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;;;;AC3OkD;AACkB;AACrB;AACE;AACQ;AACA;;AAElD,sCAAsC,2EAAiB;;AAE9D;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,aAAa;AAC1B,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAQ;AAChC;AACA;;AAEA;AACA;AACA,MAAM,yDAAQ;AACd,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA,wCAAwC,QAAQ;AAChD,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yDAAQ;AAChB,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,eAAe;AAC5B,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,0BAA0B,wDAAS;;AAEnC,qCAAqC;;AAErC,kCAAkC,gEAAY;AAC9C,wCAAwC,SAAS;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN,6BAA6B,wBAAwB;AACrD,6BAA6B,+BAA+B;AAC5D,4CAA4C,aAAa;AACzD;;AAEA,oFAAoF,KAAK;;AAEzF;AACA;AACA,0BAA0B,sBAAsB;AAChD;AACA;AACA,4DAA4D,SAAS;AACrE;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iEAAiE,gEAAY;;AAE7E;AACA;AACA,OAAO;;AAEP,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;AACd;AACA;AACA;AACA,QAAQ,yDAAQ;AAChB,OAAO;;AAEP,MAAM,yDAAQ;AACd;AACA,wBAAwB,4BAA4B;AACpD,YAAY;AACZ;AACA;;AAEA,MAAM,yDAAQ;;AAEd;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;AC5IkD;AACkB;AACX;;AAElD,oCAAoC,2EAAiB;;AAE5D;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sEAAsE,gEAAY;AAClF;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;;AAEA;AACA,kEAAkE,gEAAY;;AAE9E,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;;AAEd,MAAM,yDAAQ;AACd;AACA;AACA;AACA;AACA,mDAAmD,0BAA0B,gEAAY,kBAAkB;AAC3G,kBAAkB,0BAA0B,gEAAY;AACxD;AACA;AACA,uBAAuB,0BAA0B,gEAAY;AAC7D,yBAAyB,kBAAkB;AAC3C;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,cAAc;AAC9D;AACA;AACA;AACA;;AAEA,MAAM,yDAAQ;;AAEd;;AAEA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;ACnHkD;AACkB;AACqB;;AAElF,4CAA4C,2EAAiB;;AAEpE;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,0BAA0B,gGAA8B;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP,KAAK;;AAEL;;AAEA,0BAA0B,gGAA8B;AACxD;AACA;;AAEA;AACA;AACA,OAAO;;AAEP,KAAK;AACL;;AAEA;AACA,IAAI,yDAAQ,oBAAoB,yDAAQ;;AAExC,IAAI,yDAAQ;AACZ;AACA;AACA;AACA,QAAQ,yDAAQ;AAChB,OAAO;;AAEP,IAAI,yDAAQ;AACZ;AACA,sBAAsB,4BAA4B;AAClD,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA,yBAAyB,2BAA2B;AACpD;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACvFkD;AACkB;AACY;AACrB;AACF;;AAElD,sCAAsC,2EAAiB;;AAE9D;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,gEAAY;AACjF,+BAA+B,kEAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0FAAwB;AAChE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gEAAgE,gEAAY;AAC5E;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,yDAAQ;AAChB,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,cAAc,UAAU,GAAG,cAAc;AACzC;;AAEA;AACA;AACA,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;AACd,QAAQ,yDAAQ;AAChB,OAAO;AACP,MAAM;AACN,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;AACd,QAAQ,yDAAQ;AAChB,OAAO;AACP;AACA;;AAEA;AACA;;AAEA,IAAI,yDAAQ;AACZ;AACA;AACA;AACA;;AAEA,IAAI,yDAAQ;AACZ;;AAEA;AACA;;AAEA;;AAEA,IAAI,yDAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,qBAAqB;AACxE,kBAAkB;AAClB,kBAAkB;AAClB;AACA;AACA,mBAAmB;AACnB,yBAAyB,kBAAkB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;AACA;;AAEA;AACA,wBAAwB,yDAAQ;AAChC;AACA;AACA,0BAA0B,yDAAQ;AAClC;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;AC7VkD;AACkB;AACT;;AAEpD,4CAA4C,2EAAiB;;AAEpE;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,iCAAiC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kEAAe;AAC9C;AACA;;AAEA;AACA;AACA,2CAA2C,UAAU;AACrD,QAAQ,yDAAQ;AAChB,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,0BAA0B;AACxE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,KAAK,EAAE,SAAS;AAC9B,+CAA+C,yBAAyB;AACxE;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,yBAAyB;;AAExD;AACA;AACA;AACA,YAAY;AACZ,YAAY;AACZ;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,kBAAkB,MAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;AACd,QAAQ,yDAAQ;AAChB,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP,MAAM,yDAAQ;AACd;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,YAAY;;AAEZ;AACA;;AAEA,MAAM,yDAAQ;;AAEd;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;;ACpLkD;AACkB;AACD;AACU;;AAEtE,8CAA8C,2EAAiB;;AAEtE;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA,WAAW,0EAAqB;AAChC;AACA,QAAQ;AACR,0CAA0C,oFAAwB;AAClE;AACA;;AAEA,QAAQ,yDAAQ;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA,oCAAoC,SAAS,IAAI,mCAAmC;AACpF;;AAEA,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;AACd;AACA;AACA;AACA,UAAU,yDAAQ;AAClB,SAAS;;AAET,MAAM,yDAAQ;AACd;AACA;AACA;AACA;AACA,mDAAmD,yBAAyB;AAC5E;AACA;AACA;AACA,0BAA0B,yBAAyB;AACnD,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA,mDAAmD,yBAAyB;AAC5E;AACA;AACA,wBAAwB,yBAAyB;AACjD,0BAA0B,yBAAyB;AACnD;AACA;AACA,oBAAoB;AACpB;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA,yBAAyB,yBAAyB;AAClD;AACA;AACA;AACA;;AAEA,MAAM,yDAAQ;;AAEd;;AAEA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;ACvHkD;AACkB;AACT;;AAEpD,wCAAwC,2EAAiB;;AAEhE;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,8BAA8B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kEAAe;AAC9C;AACA;;AAEA;AACA;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,8CAA8C,0BAA0B;AACxE;AACA;AACA;AACA;AACA,gBAAgB,KAAK,EAAE,SAAS;AAChC;AACA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iCAAiC;AAClD;AACA;AACA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yBAAyB;AAC3C;AACA;AACA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8BAA8B;AAC/C;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,yDAAQ,oBAAoB,yDAAQ;;AAExC,IAAI,yDAAQ;AACZ,MAAM,yDAAQ;AACd,KAAK;;AAEL,IAAI,yDAAQ;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,8DAA8D,UAAU;AACxE;AACA,cAAc;AACd,cAAc;AACd,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,kBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACrNkD;AACkB;AACT;AACC;AACO;AACV;;AAElD,wCAAwC,2EAAiB;;AAEhE;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kEAAe;AAC9C;AACA,8CAA8C,gEAAY;AAC1D;AACA;AACA;;AAEA;AACA;AACA,6CAA6C,eAAe;AAC5D,QAAQ,yDAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;;AAEA;AACA;AACA,iCAAiC,eAAe;;AAEhD;AACA;AACA;AACA;AACA,6CAA6C,UAAU;AACvD;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,+BAA+B,sEAAU;AACzC;AACA,UAAU,0EAAiB;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,yDAAQ,oBAAoB,yDAAQ;;AAE5C,QAAQ,yDAAQ;AAChB,UAAU,yDAAQ;AAClB,SAAS;;AAET;AACA;AACA,SAAS;;AAET,QAAQ,yDAAQ;AAChB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,cAAc;;AAEd;AACA;;AAEA,QAAQ,yDAAQ;;AAEhB;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;;;;AC5IkD;AACkB;AACT;AACJ;AACyB;;AAEzE,0CAA0C,2EAAiB;;AAElE;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kEAAe;AAC9C,6BAA6B,8DAAa;AAC1C,wCAAwC,0FAAwB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,OAAO;AACf,OAAO;AACP;;AAEA;AACA;AACA,QAAQ,yDAAQ;AAChB,OAAO;AACP;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA,uBAAuB,wBAAwB,yDAAyD,uCAAuC;AAC/I,MAAM;AACN,uBAAuB,wBAAwB,iEAAiE,wCAAwC;AACxJ;AACA,cAAc,8BAA8B;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;AACd,QAAQ,yDAAQ;AAChB;AACA;AACA,WAAW;AACX;AACA,OAAO;;AAEP,MAAM,yDAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA,uBAAuB,oDAAoD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC,uBAAuB,8BAA8B;AACrD;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;;AAEA,MAAM,yDAAQ;;AAEd;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;ACnJkD;AACkB;AACX;;AAElD,6CAA6C,2EAAiB;;AAErE;AACA,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,gEAAY;AAC/E;;AAEA;AACA,IAAI,yDAAQ;;AAEZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;;AAEA;AACA,IAAI,yDAAQ,oBAAoB,yDAAQ;;AAExC,IAAI,yDAAQ;AACZ,MAAM,yDAAQ;AACd,KAAK;;AAEL,IAAI,yDAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC,sBAAsB,mBAAmB;AACzC;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe;AACzC;AACA;AACA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;AACA;AACA;;;;;;;;;;;;;;;;;;ACzFkD;AACkB;;AAE7D,wCAAwC,2EAAiB;;AAEhE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;;AAEA;AACA,IAAI,yDAAQ,oBAAoB,yDAAQ;;AAExC,IAAI,yDAAQ;AACZ,MAAM,yDAAQ;AACd,KAAK;;AAEL,IAAI,yDAAQ;AACZ;AACA,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,6BAA6B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;AACA;AACA;;;;;;;;;;;;;;;;;;ACzDoE;AACI;;AAEjE,sCAAsC,2EAAiB;;AAE9D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,+EAAmB;AACjC;;AAEA;;;;;;;;;;;;;;;;;AChBwD;AACU;;AAE3D,oCAAoC,6EAAuB;;AAElE;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI,+DAAW,wBAAwB,QAAQ;AAC/C,IAAI,+DAAW;;AAEf,WAAW,QAAQ;AACnB,WAAW,eAAe;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,QAAQ,+DAAW;AACnB;AACA;AACA;;AAEA;AACA;AACA,QAAQ,+DAAW;AACnB;AACA,OAAO;AACP;AACA,KAAK;AACL;;AAEA;;;;;;;;;;;;;;;;;ACnDwD;AACU;;AAE3D,qCAAqC,6EAAuB;;AAEnE;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,+DAAW,wBAAwB,QAAQ;AACjD,MAAM,+DAAW;;AAEjB,aAAa,QAAQ;AACrB,aAAa,eAAe;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,UAAU,+DAAW;AACrB;AACA;AACA;;AAEA;AACA;AACA,UAAU,+DAAW;AACrB;AACA,SAAS;AACT;AACA,OAAO;AACP;;AAEA;;;;;;;;;;;;;;;;;;ACnDsF;AACxC;AACW;;AAElD,kCAAkC,6FAA0B;;AAEnE;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0CAA0C,gEAAY,4CAA4C,gEAAY;AAC9G;AACA;;AAEA;AACA,6BAA6B,gEAAY;AACzC;AACA;;AAEA;;AAEA;AACA,iCAAiC,qDAAM;AACvC;AACA;;AAEA,2EAA2E,qBAAqB;AAChG;AACA;;AAEA;AACA;AACA,2EAA2E,qBAAqB;AAChG;;AAEA,4BAA4B,qDAAM;AAClC;;AAEA;AACA;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACzDsF;AACxC;AACW;;AAElD,mCAAmC,6FAA0B;;AAEpE;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2CAA2C,gEAAY,4CAA4C,gEAAY;AAC/G,kDAAkD,gEAAY,4CAA4C,gEAAY;AACtH,+CAA+C,gEAAY,4CAA4C,gEAAY;AACnH,yDAAyD,gEAAY,4CAA4C,gEAAY;;AAE7H;AACA;AACA;AACA;;AAEA,cAAc,UAAU,GAAG,cAAc;AACzC;;AAEA;AACA,6BAA6B,gEAAY;AACzC;AACA;;AAEA;;AAEA;AACA,iCAAiC,qDAAM;AACvC;AACA;;AAEA,6EAA6E,sBAAsB;AACnG;AACA;;AAEA;AACA;AACA,6EAA6E,sBAAsB;AACnG;;AAEA,4BAA4B,qDAAM;AAClC;;AAEA;AACA;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AClEsF;;AAE/E,uCAAuC,6FAA0B;;AAExE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,UAAU;;AAEnD;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,UAAU;AACxB;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA,UAAU;AACV,oBAAoB,UAAU,UAAU,MAAM;AAC9C,UAAU;AACV;AACA;AACA;AACA;;;;;;;;;;;;;;;ACrCO;AACP;AACA;AACA;;AAEA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;;AAEA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,6BAA6B;AAC1C;AACA;AACA;AACA;;AAEA;AACA,aAAa,UAAU;AACvB;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACvE8C;AACuB;AACnB;;AAE3C;;AAEP;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA,mCAAmC;AACnC;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,WAAW;AACxB,aAAa,eAAe;AAC5B,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,kCAAkC,4EAAkB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA,eAAe;AACf;AACA;AACA;AACA,UAAU,wBAAwB,KAAK,aAAa;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sEAAsE;AACtE;AACA;AACA,OAAO;AACP;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,SAAS;AACtB,cAAc;AACd;AACA;AACA;;AAEA,4DAA4D;AAC5D;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,qDAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA,aAAa,SAAS;AACtB;AACA;AACA;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A2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oDAAoD,qFAA2B;AAC/E;AACA;AACA,QAAQ,oEAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM;;AAEN,oDAAoD,qFAA2B;AAC/E;AACA;AACA,QAAQ,oEAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wEAAwE,oEAAY;AACpF;AACA;;AAEA,iFAAiF,iEAAgB;;AAEjG,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,oBAAoB;AACnE;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iFAAiF,iEAAgB;;AAEjG,kDAAkD,qFAA2B;AAC7E;AACA;AACA,MAAM,oEAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,oBAAoB;AACrE;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACzgCsF;AACxC;AACsB;AACX;;AAElD,kCAAkC,6FAA0B;;AAEnE;AACA,aAAa,WAAW;AACxB,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+EAAwB;;AAEhE;AACA;AACA,sFAAsF,gEAAY;AAClG;;AAEA;;AAEA;AACA,gCAAgC,cAAc;AAC9C,gCAAgC,qDAAM;;AAEtC;AACA,yBAAyB,cAAc;AACvC,yBAAyB,qDAAM;;AAE/B;AACA,6BAA6B,cAAc;AAC3C,6BAA6B,qDAAM;;AAEnC;AACA,gCAAgC,cAAc;AAC9C,gCAAgC,qDAAM;;AAEtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B,cAAc;AACzC;AACA;;AAEA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC,qBAAqB,EAAE,yBAAyB;AACzF,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC,8BAA8B;AACvE,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,kBAAkB;AAChC;AACA,SAAS,qBAAqB;AAC9B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,oBAAoB;AAClC;AACA,SAAS,uBAAuB;AAChC;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,6CAA6C,cAAc;AAC3D;AACA;AACA,kBAAkB;AAClB;AACA,gBAAgB;AAChB;AACA;;AAEA,YAAY;AACZ;;;AAGA;AACA;AACA;AACA,cAAc;;AAEd,cAAc;;AAEd,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AChQsF;AAClB;AACjB;AACQ;;AAEpD,kCAAkC,6FAA0B;;AAEnE;AACA,aAAa,WAAW;AACxB,aAAa,YAAY;AACzB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,aAAa;AAC1B,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,SAAS;AAC5B;;AAEA,wBAAwB,UAAU,WAAW,cAAc;AAC3D;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA,gBAAgB,kEAAc,kCAAkC,QAAQ;AACxE;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU,2EAAmB;AAC7B,UAAU,2EAAmB;AAC7B;;AAEA;AACA;AACA,UAAU;AACV,UAAU;AACV,UAAU;AACV;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxGyF;AACxC;AACsD;AAC3C;AACC;AACf;AACQ;AAC+E;AAC3D;AACE;AACE;AACE;AACF;AACE;AACxB;AACM;;AAEvD,iCAAiC,6FAA0B;;AAElE;AACA,aAAa,WAAW;AACxB,aAAa,sBAAsB;AACnC,aAAa,eAAe;AAC5B,aAAa,aAAa;AAC1B,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+BAA+B,mEAAe;;AAE9C;AACA,mCAAmC,oBAAoB,gEAAY,6BAA6B;AAChG;;AAEA;AACA;AACA,4BAA4B,gBAAgB;AAC5C,oCAAoC,gBAAgB;AACpD,mCAAmC,gBAAgB;AACnD,0BAA0B,gBAAgB;AAC1C,4BAA4B,gBAAgB;AAC5C,6BAA6B,gBAAgB;AAC7C,iCAAiC,gBAAgB;AACjD,4BAA4B,gBAAgB;AAC5C,yCAAyC,gBAAgB;AACzD,kCAAkC,gBAAgB;AAClD,yCAAyC,gBAAgB;AACzD,4BAA4B,gBAAgB;;AAE5C;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,aAAa,yBAAyB;AACtC;AACA;AACA;AACA,0BAA0B,gEAAY;AACtC,sDAAsD,gEAAY;AAClE;AACA;AACA;AACA,+CAA+C,gEAAY;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,4BAA4B,qDAAM;AAClC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,KAAK;;AAEL;;AAEA;AACA,4BAA4B,qDAAM;AAClC;AACA;AACA;AACA,oCAAoC,6DAAU;AAC9C;AACA,QAAQ,mCAAmC,6DAAU,mCAAmC,6DAAU;AAClG;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,8BAA8B,qDAAM;AACpC,iCAAiC,gEAAY;AAC7C,yEAAyE,gEAAY;AACrF;AACA,OAAO;AACP;;AAEA;AACA;AACA,8BAA8B,qDAAM;AACpC,gEAAgE,gEAAY;AAC5E,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,0BAA0B;AAC9C;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,gEAAY;AACtD;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA,qBAAqB,mEAAc;AACnC,wBAAwB,mEAAc;AACtC,wBAAwB,mEAAc;AACtC;AACA;AACA,aAAa,wEAAmB;AAChC;;AAEA,WAAW,wEAAmB;AAC9B;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA,oEAAoE,YAAY;AAChF;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,+CAA+C,gEAAY;AAC3D;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;;AAEA;;AAEA,mBAAmB,wBAAwB;AAC3C;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,2BAA2B,gBAAgB;;AAE3C;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,oBAAoB,4BAA4B,OAAO;AAC1E;;AAEA;;AAEA,mBAAmB,wBAAwB;AAC3C;AACA,uBAAuB,mBAAmB;AAC1C,gBAAgB;AAChB;AACA;AACA;;AAEA,UAAU;;AAEV;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC,gBAAgB;;AAElD,yCAAyC,mEAAc;AACvD,sBAAsB,mEAAc;AACpC,sBAAsB,mEAAc;AACpC;AACA,2BAA2B,gBAAgB;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,sEAAiB;AACpE;AACA;AACA;AACA;AACA,wCAAwC,uEAAe;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA,mCAAmC,aAAa;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,oBAAoB,4BAA4B,OAAO;AAC1E;;AAEA;;AAEA,mBAAmB,wBAAwB;AAC3C;AACA,qBAAqB,mBAAmB,oDAAoD,aAAa;AACzG,sCAAsC,aAAa;AACnD;AACA;AACA;;AAEA,UAAU;;AAEV;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM,OAAO,wBAAwB,qBAAqB;AAC1D;;AAEA,2BAA2B,gBAAgB;;AAE3C;AACA,uEAAuE,gEAAY;;AAEnF;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,gBAAgB;;AAElD;AACA;AACA,mBAAmB,oBAAoB,4BAA4B,OAAO;AAC1E;;AAEA;;AAEA,mBAAmB,wBAAwB;AAC3C;AACA,cAAc;AACd;AACA,2BAA2B,mBAAmB;AAC9C,oBAAoB;AACpB;AACA;AACA;AACA,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU;;AAEV;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA,gCAAgC,2EAAmB;AACnD;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA,6BAA6B,2EAAmB;AAChD;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,oBAAoB,4BAA4B,OAAO;AAC1E;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC,mBAAmB,uBAAuB;AAC1C;AACA,0BAA0B,uBAAuB;AACjD,iCAAiC,UAAU,kBAAkB;AAC7D;AACA;;AAEA,mBAAmB,wBAAwB;AAC3C;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA,2DAA2D,aAAa,4BAA4B,iBAAiB;AACrH,gCAAgC,UAAU;AAC1C;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,yGAAyG,0BAA0B,gEAAY,iCAAiC;AAChL,qEAAqE,gCAAgC,2BAA2B,0BAA0B,gEAAY,iCAAiC;AACvM;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8FAA8F,aAAa;AAC3G,kEAAkE,gCAAgC,2BAA2B,aAAa;AAC1I;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,2FAA2F,0BAA0B,gEAAY,oBAAoB;AACrJ,8DAA8D,yBAAyB,2BAA2B,0BAA0B,gEAAY,oBAAoB;AAC5K;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6FAA6F,aAAa;AAC1G,kEAAkE,gCAAgC,2BAA2B,aAAa;AAC1I;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,iFAAyB;AACnD;AACA,UAAU,OAAO,yCAAyC,eAAe;AACzE;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,cAAc,gBAAgB;AAC9B;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,cAAc;AACd;AACA;AACA;AACA,oDAAoD,gEAAY;AAChE,qEAAqE,gEAAY;AACjF;;AAEA;AACA,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA,iCAAiC,SAAS;AAC1C,mBAAmB,oDAAoD;AACvE,iCAAiC,gBAAgB;AACjD;AACA,gCAAgC,iCAAiC;AACjE;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB;AACA;AACA;AACA,6CAA6C,4BAA4B;AACzE;AACA;AACA;AACA;AACA;;AAEA;;AAEA,gCAAgC,sEAAc;AAC9C;AACA;AACA;AACA;AACA,qCAAqC,qFAAuB;AAC5D,YAAY;AACZ;AACA,kCAAkC,sEAAc;AAChD,wDAAwD,4BAA4B;AACpF;AACA;AACA;AACA;AACA,uCAAuC,qFAAuB;AAC9D;;AAEA;AACA,0DAA0D,sEAAc;AACxE;AACA;AACA;AACA,qCAAqC,mFAAsB;AAC3D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA,iCAAiC,SAAS;AAC1C,mBAAmB,wDAAwD;AAC3E,iCAAiC,gBAAgB;AACjD;AACA,gCAAgC,mCAAmC;AACnE;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB;AACA;AACA;AACA,6CAA6C,4BAA4B;AACzE;AACA;AACA;AACA;AACA;;AAEA;;AAEA,gCAAgC,sEAAc;AAC9C;AACA;AACA;AACA;AACA,qCAAqC,qFAAuB;AAC5D,YAAY;AACZ;AACA,kCAAkC,sEAAc;AAChD,wDAAwD,4BAA4B;AACpF;AACA;AACA;AACA;AACA,uCAAuC,qFAAuB;AAC9D;;AAEA;AACA,0DAA0D,sEAAc;AACxE;AACA;AACA;AACA,qCAAqC,mFAAsB;AAC3D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA,iCAAiC,SAAS;AAC1C;AACA,iCAAiC,gBAAgB;AACjD;AACA,gCAAgC,mCAAmC;AACnE,iCAAiC,0BAA0B;AAC3D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB;AACA;AACA;AACA,6CAA6C,4BAA4B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,sEAAc;AACxE;;AAEA;AACA;AACA,sCAAsC,2EAAmB;AACzD;AACA;AACA;AACA;AACA,aAAa;AACb,YAAY;AACZ,0DAA0D,sEAAc;AACxE;;AAEA;AACA;AACA,mCAAmC,2EAAmB;AACtD;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA,iCAAiC,SAAS;AAC1C;AACA,iCAAiC,gBAAgB;AACjD;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB;AACA;AACA;AACA,6CAA6C,4BAA4B;AACzE;AACA;AACA;AACA;AACA;;AAEA;AACA;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AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,mCAAmC,wFAA4B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA,iBAAiB,WAAW;AAC5B,mBAAmB,eAAe;AAClC,mBAAmB,iBAAiB;AACpC,mBAAmB,eAAe;AAClC,mBAAmB,mBAAmB;AACtC,mBAAmB,sBAAsB;AACzC,mBAAmB,gBAAgB;AACnC,mBAAmB,qBAAqB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACtX8G;AACrB;;AAEzF;AACA;AACA;AACO,mCAAmC,6FAA0B;;AAEpE;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,KAAK;AACnB;AACA;AACA;AACA,gCAAgC,kEAAa;AAC7C;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA,yCAAyC,kEAAa;AACtD;;AAEA;AACA;AACA;AACA,cAAc,KAAK;AACnB;AACA;AACA;;AAEA,kCAAkC,4EAAuB;AACzD,uCAAuC,kEAAa;;AAEpD;AACA,iDAAiD,0EAAqB;;AAEtE;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gBAAgB,IAAI,QAAQ,iBAAiB,KAAK,SAAS,UAAU;AACvH;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC5EyF;;AAEzF;AACA;AACA;AACO,mCAAmC,6FAA0B;;AAEpE;AACA,aAAa,WAAW;AACxB,aAAa,QAAQ;AACrB,aAAa,KAAK;AAClB,aAAa,KAAK;AAClB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA,yDAAyD,YAAY,IAAI,SAAS,WAAW,IAAI,OAAO,SAAS;AACjH,qCAAqC,uBAAuB;AAC5D;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACxCyF;;AAEzF;AACA;AACA;AACO,oCAAoC,6FAA0B;;AAErE;AACA,aAAa,WAAW;AACxB,aAAa,6BAA6B;AAC1C,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA,oBAAoB,yBAAyB;;AAE7C;;AAEA,sBAAsB,2BAA2B;AACjD;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;AC1CyF;AACxC;AACuB;AACH;AACD;AACF;AACoB;;AAEtF;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,2CAA2C,6FAA0B;;AAE5E;AACA,aAAa,WAAW;AACxB,aAAa,eAAe;AAC5B,aAAa,mBAAmB;AAChC,aAAa,yBAAyB;AACtC,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB,aAAa,QAAQ,gCAAgC;AACrD;AACA,aAAa,QAAQ;AACrB;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,cAAc;;AAE/C;AACA;AACA;AACA;AACA,kCAAkC,+EAAwB;AAC1D;AACA;AACA;AACA;AACA,MAAM,4EAAuB;AAC7B;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,+BAA+B;AAC9C;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2EAA2E;AAC1F;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA,eAAe,OAAO,2DAA2D,GAAG;AACpF;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,uBAAuB,iBAAiB;AACxC;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,SAAS;AACxF;;AAEA;AACA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,eAAe,mCAAmC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wDAAwD;AACxD;AACA;AACA,aAAa,aAAa;AAC1B;AACA;AACA;;AAEA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,aAAa;AAC1B,aAAa,gBAAgB;AAC7B,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,+EAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI,6EAAuB;;AAE3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,mBAAmB;AACnB;AACA;AACA;AACA,aAAa,sBAAsB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,0FAA2B;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,wBAAwB;AACrC,aAAa,aAAa;AAC1B;AACA;AACA;AACA,mCAAmC,kCAAkC;AACrE;;AAEA;AACA,iCAAiC,qDAAM;AACvC,iCAAiC,qDAAM;;AAEvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qCAAqC;AACzD,aAAa,wBAAwB;AACrC;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACjnBoE;AACtB;AACQ;AACL;AACW;AACA;AACI;AACR;;;AAGjD,yCAAyC,+EAAwB;;AAExE;AACA,aAAa,WAAW;AACxB,aAAa,eAAe;AAC5B,aAAa,aAAa;AAC1B,aAAa,UAAU;AACvB,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,aAAa,YAAY;AACzB,aAAa,YAAY;AACzB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,aAAa;AAC5B;;AAEA,eAAe,OAAO,sCAAsC,GAAG;AAC/D;;AAEA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,eAAe;AAC5B;AACA;AACA;AACA,mCAAmC,eAAe;AAClD;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,qCAAqC;AACzD,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,aAAa;AAC1B;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,2BAA2B;AAC/C,6DAA6D,iCAAiC;AAC9F;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB,cAAc,aAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gEAAY;AAC/C,kCAAkC,gEAAY;AAC9C;AACA;AACA;AACA;AACA;AACA,aAAa,4DAAU;AACvB;AACA;AACA;AACA;AACA,0CAA0C,oEAAY;AACtD,aAAa,4DAAU;AACvB;AACA,0CAA0C,oEAAY;AACtD,aAAa,4DAAU;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA,cAAc,cAAc;AAC5B;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yDAAyD,SAAS;AAClE,8DAA8D,oCAAoC;AAClG;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD,cAAc,EAAE,gBAAgB;AACnF;;AAEA;AACA,QAAQ;AACR,QAAQ;AACR;AACA;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iFAAiF,eAAe;AAChG;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,UAAU,YAAY,GAAG,eAAe,mBAAmB,SAAS;AACpE;AACA;AACA;AACA;AACA,mFAAmF,SAAS;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,gCAAgC,qDAAM;AACtC;AACA;AACA,uCAAuC,gEAAY;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA,KAAK;;AAEL;AACA,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA,8CAA8C,YAAY,6CAA6C,eAAe;AACtH;AACA;AACA;AACA,KAAK;AACL,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA,8CAA8C,YAAY,6CAA6C,eAAe;AACtH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;;;;;;AC5biD;AACuB;AAC1B;AACA;AACsB;AACR;AACV;AACmB;;;AAG9D,sCAAsC,+EAAwB;;AAErE;AACA,aAAa,WAAW;AACxB,aAAa,eAAe;AAC5B,aAAa,UAAU;AACvB,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,aAAa,YAAY;AACzB,aAAa,YAAY;AACzB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,4EAAkB;AACpD,yBAAyB,sDAAS;;AAElC,eAAe,0CAA0C;AACzD;;AAEA,eAAe,OAAO,sCAAsC,GAAG;AAC/D;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,0BAA0B;AACvC,aAAa,qBAAqB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B,aAAa,QAAQ;AACrB,aAAa,gBAAgB;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM;;AAEN;AACA;AACA;AACA;AACA;;AAEA,6CAA6C,+EAAwB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gEAAY;AAC3D,oIAAoI,SAAS;AAC7I;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA,wDAAwD,gEAAY;AACpE;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,eAAe;AAC5B;AACA;AACA;AACA,mCAAmC,eAAe;AAClD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qCAAqC;AACzD,aAAa,gBAAgB;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA,KAAK;;AAEL,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA,KAAK;;AAEL,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA,KAAK;;AAEL,gCAAgC,qDAAM;AACtC;AACA;AACA;AACA,KAAK;;AAEL,gCAAgC,qDAAM;AACtC;AACA;AAC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CA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2EAAsB;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,mEAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2EAAsB;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,mEAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,uBAAuB,oEAAe;AACtC;AACA;;AAEA;AACA,MAAM,mEAAc;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;;AAEA,mBAAmB,iCAAiC;;AAEpD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,oCAAoC,6EAAwB;AAC5D;AACA;AACA;;AAEA,gDAAgD,WAAW;AAC3D;;AAEA;AACA;AACA;AACA;AACA,aAAa,oBAAoB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA,uDAAuD,SAAS,iBAAiB,MAAM,gBAAgB,KAAK,qBAAqB,SAAS;AAC1I;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+CAA+C,iEAAY;AAC3D;;AAEA;AACA;AACA,kDAAkD,mEAAc,SAAS,qBAAqB,SAAS;AACvG;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,oFAAuB;;AAEpD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,qFAAuB;;AAEpD;AACA,4CAA4C,sEAAc;AAC1D,QAAQ,4EAAoB;AAC5B,QAAQ,4EAAoB;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,aAAa;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,gFAAqB;AAClD;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8BAA8B,sEAAc;AAC5C;AACA;AACA;;AAEA;AACA,8BAA8B,sEAAc;AAC5C;AACA;AACA,mCAAmC,gFAAqB;AACxD;;AAEA;AACA;AACA,4BAA4B,sEAAc;AAC1C,+BAA+B,sEAAc;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA,4DAA4D,iEAAY;;AAExE;AACA;AACA;AACA,yDAAyD,sEAAc;AACvE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mCAAmC,qFAAuB;AAC1D;AACA;;AAEA;AACA,8BAA8B,sEAAc;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA,sDAAsD,iEAAY;;AAElE;AACA;AACA;AACA;;AAEA;AACA,mCAAmC,oFAAuB;AAC1D;AACA;;AAEA;AACA,QAAQ,uDAAY;AACpB,QAAQ,OAAO;AACf,OAAO;AACP,KAAK;;AAEL;AACA,4BAA4B,qDAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,4BAA4B,qDAAM;AAClC;AACA;AACA;AACA,KAAK;;AAEL;AACA,4BAA4B,qDAAM;AAClC;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA,oBAAoB,yBAAyB;;AAE7C;AACA;AACA,+CAA+C,4EAAuB,GAAG,gFAA2B;AACpG;;AAEA;;AAEA,sBAAsB,IAAI,4EAAuB,EAAE;;AAEnD;;AAEA,wBAAwB,iCAAiC;;AAEzD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,+EAA0B;AAC5D;AACA;AACA;AACA;AACA;AACA,kCAAkC,2EAAsB;AACxD;AACA;AACA;AACA;AACA;AACA,kCAAkC,2EAAsB;AACxD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;ACx2ByF;;AAEzF;AACA;AACA;AACO,qCAAqC,6FAA0B;;AAEtE;AACA,aAAa,WAAW;AACxB,aAAa,uCAAuC;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;;AAEA,mBAAmB,wBAAwB;AAC3C;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC/B0F;;AAE1F;AACA;AACA;AACO,kDAAkD,qGAAmC;;AAE5F;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,KAAK;AAClB;AACA,cAAc;AACd;AACA;AACA;AACA,yFAAyF,iBAAiB;AAC1G,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC3B0F;;AAE1F;AACA;AACA;AACO,iDAAiD,qGAAmC;;AAE3F;AACA,aAAa,KAAK;AAClB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,KAAK;AAClB;AACA,cAAc;AACd;AACA;AACA,iGAAiG,iBAAiB;;AAElH,mBAAmB,sBAAsB;AACzC;AACA,2DAA2D,uBAAuB;AAClF,QAAQ;AACR,2DAA2D,yBAAyB;AACpF,QAAQ;AACR,2DAA2D,wBAAwB;AACnF;AACA;;AAEA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AChDyF;AACpC;AACmB;AACT;AACT;AACwC;AAChB;AACrB;AACG;;AAErD,8BAA8B,6FAA0B;;AAE/D;AACA,aAAa,WAAW;AACxB,aAAa,sBAAsB;AACnC,aAAa,eAAe;AAC5B,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,4EAAkB;;AAEpD,eAAe,aAAa;AAC5B;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB,cAAc;AACd;AACA;AACA;AACA,cAAc,cAAc,EAAE,KAAK;AACnC;;AAEA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA,aAAa,mEAAc;AAC3B,MAAM;AACN;AACA,eAAe,mEAAc;AAC7B,QAAQ;AACR,eAAe,mEAAc;AAC7B;AACA;;AAEA,qDAAqD,oBAAoB;AACzE;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,6DAAa;AACnC;AACA;;AAEA,QAAQ,OAAO,gBAAgB,gBAAgB;;AAE/C;;AAEA;AACA,oCAAoC,gEAAY;AAChD;AACA;AACA;AACA;;AAEA,QAAQ,yDAAQ;;AAEhB;AACA;AACA;AACA;AACA;AACA,oCAAoC,gEAAY;AAChD;AACA;;AAEA;AACA,iCAAiC,kGAA8B;AAC/D;AACA;AACA;AACA;AACA,oCAAoC,gEAAY;AAChD;;AAEA;AACA,iCAAiC,kFAAsB;AACvD;AACA;AACA;AACA;AACA,oCAAoC,gEAAY;AAChD;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,8BAA8B;AACpD,oDAAoD,gBAAgB,EAAE,kBAAkB;AACxF,uCAAuC,gBAAgB;AACvD,uCAAuC,kBAAkB;AACzD;AACA,kBAAkB;AAClB;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA,IAAI,yDAAQ;AACZ,IAAI,yDAAQ;AACZ,IAAI,yDAAQ;AACZ;AACA;AACA;;;;;;;;;;;;;;;;;;;AC3K6F;AACQ;AACzB;;AAErE,8CAA8C,iGAA4B;AACjF;AACA;;AAEA,+BAA+B,mFAAsB;;AAErD;;AAEA;AACA,UAAU,yGAAgC;AAC1C;AACA;AACA;AACA;AACA,UAAU,yGAAgC;AAC1C;AACA,0DAA0D,wBAAwB;AAClF;AACA,UAAU,yGAAgC;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AChC6F;AACQ;AAC3B;;AAEnE,iDAAiD,iGAA4B;AACpF;AACA;;AAEA,+BAA+B,iFAAqB;;AAEpD;;AAEA;AACA,UAAU,yGAAgC;AAC1C;AACA,sKAAsK,mBAAmB;AACzL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACxB6F;AACQ;AAC3B;;AAEnE,iDAAiD,iGAA4B;AACpF;AACA;;AAEA,+BAA+B,iFAAqB;;AAEpD;AACA,UAAU,yGAAgC;AAC1C;AACA;AACA;AACA;AACA,UAAU,yGAAgC;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC1B6F;AACQ;AACzB;;AAErE,8CAA8C,iGAA4B;AACjF;AACA;;AAEA,+BAA+B,mFAAsB;;AAErD;AACA,UAAU,yGAAgC;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACtBkD;AACkB;AACX;AACU;AACrB;AACW;;AAElD,kCAAkC,2EAAiB;;AAE1D;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,cAAc;AAC3B,aAAa,cAAc;AAC3B,aAAa,eAAe;AAC5B,aAAa,YAAY;AACzB,aAAa,aAAa;AAC1B,aAAa,eAAe;AAC5B,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B,gEAAc;AAC5C;;AAEA,iCAAiC,0EAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA4B,qDAAM;AAClC,+BAA+B,gEAAY,gCAAgC,gEAAY;AACvF,QAAQ,yDAAQ;AAChB;AACA,KAAK;AACL;;AAEA;AACA;AACA,gCAAgC,gEAAY;AAC5C,oCAAoC,gEAAY;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,IAAI,yDAAQ,oBAAoB,yDAAQ;;AAExC,IAAI,yDAAQ;;AAEZ,IAAI,yDAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,yBAAyB;AAC9C;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACxIkD;AACkB;AACT;AACJ;AACqB;AACb;AACK;AACY;AACvB;;AAElD,+BAA+B,2EAAiB;;AAEvD;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,cAAc;AAC3B,aAAa,cAAc;AAC3B,aAAa,aAAa;AAC1B,aAAa,YAAY;AACzB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kEAAe;AAC9C,iCAAiC,2EAAiB;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C,gEAAY;AACxD;AACA;AACA,gBAAgB,8DAAW;AAC3B,OAAO;;AAEP;;AAEA,MAAM,yDAAQ;;AAEd,6CAA6C,mFAAkB;AAC/D,4DAA4D,gEAAY;AACxE,KAAK;AACL;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA,4CAA4C,WAAW;AACvD;AACA;AACA;AACA,gBAAgB,UAAU;;;AAG1B,oBAAoB,KAAK,EAAE,SAAS;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sEAAiB;AACjD;;AAEA,6CAA6C,0FAAwB,CAAC,yDAAQ;;AAE9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wBAAwB;AAClD,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,yBAAyB;AAC5E;AACA;AACA,wBAAwB,yBAAyB;AACjD,0BAA0B,yBAAyB;AACnD;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C,0BAA0B,mBAAmB;AAC7C;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,yBAAyB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yBAAyB;AACvD,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA,6BAA6B,yBAAyB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,yDAAQ;;AAEd;;AAEA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;ACnNkD;AACkB;;AAE7D,mCAAmC,2EAAiB;;AAE3D;AACA,aAAa,oBAAoB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI,yDAAQ;;AAEZ,IAAI,yDAAQ;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,IAAI,yDAAQ;AACZ;AACA,UAAU;AACV;AACA,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ;AACA;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;AACA;AACA;;;;;;;;;;;;;;;;;;;AChEkD;AACkB;AACX;;AAElD,kCAAkC,2EAAiB;;AAE1D;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;AACA,MAAM,yDAAQ,kCAAkC,qCAAqC;AACrF,KAAK;AACL;AACA,MAAM,yDAAQ,iCAAiC,qCAAqC;AACpF,KAAK;AACL;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;;AAEA;;AAEA,8FAA8F,gEAAY;AAC1G;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;;AAEd,MAAM,yDAAQ;AACd;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,cAAc;AAC9E;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,8BAA8B;AAC9F;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,aAAa;AAC7E;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,YAAY;AAC5E;AACA;AACA;AACA;AACA;;AAEA,MAAM,yDAAQ;;AAEd;;AAEA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;;ACjHkD;AACkB;AACY;AACrB;;AAEpD,oCAAoC,2EAAiB;;AAE5D;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0FAAwB;AAChE,+BAA+B,kEAAe;;AAE9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,kCAAkC;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;AACd,QAAQ,yDAAQ;AAChB,OAAO;;AAEP,MAAM,yDAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,mDAAmD,iDAAiD;AACpG;AACA;AACA,4BAA4B;AAC5B,yBAAyB,kBAAkB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAuD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,wDAAwD,GAAG,4DAA4D;AAChJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,+CAA+C;AACtE;AACA;AACA;AACA,uBAAuB,uDAAuD;AAC9E;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,yDAAQ;;AAEd;;AAEA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;;AC3SkD;AACkB;AACT;AACqB;;AAEzE,uCAAuC,2EAAiB;;AAE/D;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kEAAe;AAC9C;AACA,wCAAwC,0FAAwB;;AAEhE;AACA;AACA;;AAEA;AACA;AACA,qDAAqD,eAAe;AACpE,QAAQ,yDAAQ,kCAAkC,wBAAwB;AAC1E,OAAO;AACP,KAAK;AACL;;AAEA;AACA,aAAa,sBAAsB;AACnC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,0BAA0B,eAAe,0BAA0B;AACzF;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,sBAAsB;AACnC,cAAc;AACd;AACA;AACA;AACA;AACA,kBAAkB,8BAA8B;;AAEhD;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA,aAAa,sBAAsB;AACnC,cAAc;AACd;AACA;;AAEA;AACA;AACA,yCAAyC,8BAA8B;;AAEvE;AACA;AACA;AACA,YAAY;AACZ,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;AACd,QAAQ,yDAAQ;AAChB,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP,MAAM,yDAAQ;AACd;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;;AAEA,MAAM,yDAAQ;;AAEd;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;;;;;;AC/JkD;AACkB;AACY;AACrB;AACG;AAC8B;AACxB;AACX;;AAElD,mCAAmC,2EAAiB;;AAE3D;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,cAAc;AAC3B,aAAa,cAAc;AAC3B,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0FAAwB;AAChE,+BAA+B,kEAAe;AAC9C,2BAA2B,wEAAW;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAuD,gEAAY;AACnE;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA,+BAA+B,uBAAuB;AACtD;;AAEA;AACA;AACA,2CAA2C,mGAA0B;AACrE;AACA;;AAEA;AACA;AACA,2CAA2C,mGAA0B;AACrE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA,yDAAyD,gEAAY;AACrE;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA,0BAA0B,2EAAkB;AAC5C,0BAA0B,yDAAQ;AAClC;;AAEA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;;AAEA,MAAM,yDAAQ;AACd;AACA;;AAEA,IAAI,yDAAQ,oBAAoB,yDAAQ;;AAExC,IAAI,yDAAQ;AACZ,MAAM,yDAAQ;AACd,KAAK;;AAEL,IAAI,yDAAQ;AACZ;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B;AACjE;AACA;AACA;AACA,8CAA8C,iBAAiB;AAC/D,8CAA8C,sBAAsB;AACpE;AACA;AACA,UAAU;AACV;AACA;;AAEA,IAAI,yDAAQ;;AAEZ;AACA;AACA;;;;;;;;;;;;;;;;;;;ACpOkD;AACkB;AACT;;AAEpD,oCAAoC,2EAAiB;;AAE5D;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kEAAe;AAC9C;AACA;;AAEA;AACA;AACA,sDAAsD,UAAU;AAChE,QAAQ,yDAAQ,oCAAoC,oBAAoB;AACxE,OAAO;AACP,KAAK;AACL;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,0BAA0B;AACxE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,KAAK,EAAE,SAAS;AAC9B,+CAA+C,yBAAyB;AACxE;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,yBAAyB;;AAEnE;AACA;AACA;AACA,YAAY;AACZ,YAAY;AACZ;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,kBAAkB,MAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;AACd,QAAQ,yDAAQ;AAChB,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP,MAAM,yDAAQ;AACd;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;;AAEA,MAAM,yDAAQ;;AAEd;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;;;AClKkD;AACkB;AACY;AACrB;AACF;;AAElD,+BAA+B,2EAAiB;;AAEvD;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0FAAwB;AAChE,+BAA+B,kEAAe;;AAE9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,oEAAoE,gEAAY;AAChF;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM,yDAAQ;AACd,KAAK;AACL;;AAEA;AACA;;AAEA,MAAM,yDAAQ,oBAAoB,yDAAQ;;AAE1C,MAAM,yDAAQ;AACd,QAAQ,yDAAQ;AAChB,OAAO;;AAEP,MAAM,yDAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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K,EAAE,KAAK,EAAE;AACtC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACtJO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA,+CAA+C,iBAAiB;AAChE;AACA;AACA;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACnEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa,GAAG,uBAAuB;AACvC,yBAAyB;AACzB,yBAAyB;AACzB,mBAAmB,mBAAO,CAAC,oGAAkB;AAC7C,iBAAiB,mBAAO,CAAC,+DAAU;AACnC,cAAc,mBAAO,CAAC,yDAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,GAAG;AACrC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,IAAI;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,qBAAqB,OAAO,aAAa;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;;;;;;;;;;ACzoEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;;;;;;;;;;ACpCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D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CA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;;;;;;;;;;;ACjGa;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB;AACrB,iBAAiB;AACjB,0BAA0B;AAC1B,8BAA8B;AAC9B,yBAAyB;AACzB,oBAAoB;AACpB,gBAAgB,mBAAO,CAAC,8FAAe;AACvC,iBAAiB,mBAAO,CAAC,oEAAsB;AAC/C,iBAAiB,mBAAO,CAAC,oEAAsB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,mBAAO,CAAC,yDAAQ;AAC3F,0BAA0B,kBAAkB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,sEAAsE,8BAA8B;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzIa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mBAAO,CAAC,yDAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;;;;;;;;;;AC5Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,iBAAiB;AACjB,oBAAoB,mBAAO,CAAC,0EAAyB;AACrD,gBAAgB,mBAAO,CAAC,6DAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,mBAAmB,mBAAO,CAAC,oGAAkB;AAC7C,gBAAgB,mBAAO,CAAC,8FAAe;AACvC,oBAAoB,mBAAO,CAAC,0EAAyB;AACrD,6BAA6B,mBAAO,CAAC,uFAAsB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,aAAa;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;;;;;;;;;;ACtHa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kCAAkC,GAAG,0BAA0B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,YAAY;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,YAAY;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;;;;;;;;;;;ACxJa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc;AAC/B,cAAc;AACd,cAAc;AACd,iBAAiB,mBAAO,CAAC,oEAAsB;AAC/C,iBAAiB,mBAAO,CAAC,oEAAsB;AAC/C,gBAAgB,mBAAO,CAAC,6DAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;;;;;;;;;;AClDa;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,sBAAsB,GAAG,mBAAmB;AAC7D,6BAA6B;AAC7B,oBAAoB;AACpB,oBAAoB;AACpB,mBAAmB,mBAAO,CAAC,oGAAkB;AAC7C,eAAe,mBAAO,CAAC,4FAAc;AACrC,oBAAoB,mBAAO,CAAC,0EAAyB;AACrD;AACA,gCAAgC,mBAAO,CAAC,6CAAO;AAC/C,eAAe,mBAAO,CAAC,2DAAQ;AAC/B,cAAc,mBAAO,CAAC,yDAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kBAAkB,mBAAmB,mBAAmB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,YAAY;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,iBAAiB,+BAA+B;AAChD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5La;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACVa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;AC/Ba;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,kBAAkB;AAClB,8BAA8B,mBAAO,CAAC,oDAAW;AACjD;AACA;AACA;AACA;AACA,8CAA8C,IAAI;AAClD;AACA;AACA;AACA;AACA;;;;;;;;;;;AC/Ca;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,kBAAkB;AAClB,uBAAuB;AACvB,4BAA4B,mBAAO,CAAC,8CAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;;;;;;;;;;;AC5Da;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa;AACb,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA,6CAA6C,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,aAAa,GAAG,eAAe,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,eAAe,GAAG,iBAAiB;AAC7P,cAAc,mBAAO,CAAC,2FAAS;AAC/B,6CAA4C,EAAE,qCAAqC,6BAA6B,EAAC;AACjH,2CAA0C,EAAE,qCAAqC,2BAA2B,EAAC;AAC7G,eAAe,mBAAO,CAAC,6FAAU;AACjC,8CAA6C,EAAE,qCAAqC,+BAA+B,EAAC;AACpH,4CAA2C,EAAE,qCAAqC,6BAA6B,EAAC;AAChH,eAAe,mBAAO,CAAC,6FAAU;AACjC,8CAA6C,EAAE,qCAAqC,+BAA+B,EAAC;AACpH,mDAAkD,EAAE,qCAAqC,oCAAoC,EAAC;AAC9H,4CAA2C,EAAE,qCAAqC,6BAA6B,EAAC;AAChH,YAAY,mBAAO,CAAC,uFAAO;AAC3B,2CAA0C,EAAE,qCAAqC,yBAAyB,EAAC;AAC3G,yCAAwC,EAAE,qCAAqC,uBAAuB,EAAC;AACvG,gBAAgB,mBAAO,CAAC,+FAAW;AACnC,+CAA8C,EAAE,qCAAqC,iCAAiC,EAAC;AACvH,6CAA4C,EAAE,qCAAqC,+BAA+B,EAAC;AACnH,aAAa,mBAAO,CAAC,yFAAQ;AAC7B,4CAA2C,EAAE,qCAAqC,2BAA2B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,yBAAyB,EAAC;AAC1G;;;;;;;;;;;ACtBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB,iBAAiB;AACjB,6BAA6B,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,IAAI,aAAa,EAAE,IAAI,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,GAAG;AACrE;AACA;;;;;;;;;;;ACnDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;;;;;;;;;;;AClBa;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf;AACA,gCAAgC,mBAAO,CAAC,6CAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,uBAAuB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,MAAM,EAAE,yCAAyC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,oBAAoB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB,GAAG,sBAAsB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;;;;;;;;;;ACpNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,eAAe;AAClF,gBAAgB,mBAAO,CAAC,2FAAW;AACnC,2CAA0C,EAAE,qCAAqC,6BAA6B,EAAC;AAC/G,iBAAiB,mBAAO,CAAC,6FAAY;AACrC,yCAAwC,EAAE,qCAAqC,4BAA4B,EAAC;AAC5G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G;;;;;;;;;;;ACVa;AACb;AACA;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc;AAChE;AACA,gCAAgC,mBAAO,CAAC,6CAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa,WAAW,cAAc;AAC1F;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AC5Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB;AACtB,2BAA2B;AAC3B,iCAAiC;AACjC,mCAAmC;AACnC,4BAA4B;AAC5B,wBAAwB,mBAAO,CAAC,+EAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,aAAa;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,2BAA2B,IAAI;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,qBAAqB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,qBAAqB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChIa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB,8BAA8B;AAC9B,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC5Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB,aAAa,mBAAO,CAAC,8FAAmC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACfa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,+BAA+B;AAC/B,+BAA+B;AAC/B,gBAAgB,mBAAO,CAAC,qGAAe;AACvC,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,mBAAmB,mBAAO,CAAC,2GAAkB;AAC7C,gBAAgB,mBAAO,CAAC,qGAAe;AACvC,kBAAkB,mBAAO,CAAC,wEAAW;AACrC,iBAAiB,mBAAO,CAAC,sEAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uBAAuB;AAClE;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA,uCAAuC,eAAe;AACtD;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gBAAgB;AAC3D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,+BAA+B;AAC/B;;;;;;;;;;;AC/Pa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,6BAA6B;AAC7B,gBAAgB,mBAAO,CAAC,qGAAe;AACvC,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,mBAAmB,mBAAO,CAAC,2GAAkB;AAC7C,kBAAkB,mBAAO,CAAC,wEAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;;;;;;;;;;;ACxDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,GAAG,aAAa,GAAG,YAAY,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,yBAAyB,GAAG,6BAA6B,GAAG,gBAAgB,GAAG,4BAA4B,GAAG,8BAA8B,GAAG,2BAA2B,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,4BAA4B,GAAG,yBAAyB,GAAG,yBAAyB,GAAG,6BAA6B,GAAG,+BAA+B,GAAG,+BAA+B,GAAG,mBAAmB;AAChiB;AACA,eAAe,mBAAO,CAAC,sEAAU;AACjC,+CAA8C,EAAE,qCAAqC,gCAAgC,EAAC;AACtH,gCAAgC,mBAAO,CAAC,wGAA2B;AACnE,2DAA0D,EAAE,qCAAqC,6DAA6D,EAAC;AAC/J,2DAA0D,EAAE,qCAAqC,6DAA6D,EAAC;AAC/J,8BAA8B,mBAAO,CAAC,oGAAyB;AAC/D,yDAAwD,EAAE,qCAAqC,yDAAyD,EAAC;AACzJ,cAAc,mBAAO,CAAC,oEAAS;AAC/B,qDAAoD,EAAE,qCAAqC,qCAAqC,EAAC;AACjI,eAAe,mBAAO,CAAC,sEAAU;AACjC,qDAAoD,EAAE,qCAAqC,sCAAsC,EAAC;AAClI,wDAAuD,EAAE,qCAAqC,yCAAyC,EAAC;AACxI,gDAA+C,EAAE,qCAAqC,iCAAiC,EAAC;AACxH,gDAA+C,EAAE,qCAAqC,iCAAiC,EAAC;AACxH,iBAAiB,mBAAO,CAAC,0EAAY;AACrC,uDAAsD,EAAE,qCAAqC,0CAA0C,EAAC;AACxI,0DAAyD,EAAE,qCAAqC,6CAA6C,EAAC;AAC9I,wDAAuD,EAAE,qCAAqC,2CAA2C,EAAC;AAC1I,4CAA2C,EAAE,qCAAqC,+BAA+B,EAAC;AAClH,eAAe,mBAAO,CAAC,sEAAU;AACjC,yDAAwD,EAAE,qCAAqC,0CAA0C,EAAC;AAC1I,gBAAgB,mBAAO,CAAC,wEAAW;AACnC,qDAAoD,EAAE,qCAAqC,uCAAuC,EAAC;AACnI,iDAAgD,EAAE,qCAAqC,mCAAmC,EAAC;AAC3H,+CAA8C,EAAE,qCAAqC,iCAAiC,EAAC;AACvH,eAAe,mBAAO,CAAC,sEAAU;AACjC,8CAA6C,EAAE,qCAAqC,+BAA+B,EAAC;AACpH,cAAc,mBAAO,CAAC,qGAAe;AACrC,wCAAuC,EAAE,qCAAqC,wBAAwB,EAAC;AACvG,yCAAwC,EAAE,qCAAqC,yBAAyB,EAAC;AACzG,8CAA6C,EAAE,qCAAqC,8BAA8B,EAAC;AACnH;;;;;;;;;;;ACnCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB;AACzB,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB;AACpB,yBAAyB;AACzB,oBAAoB;AACpB,4BAA4B;AAC5B;AACA,gBAAgB,mBAAO,CAAC,qGAAe;AACvC,mBAAmB,mBAAO,CAAC,2GAAkB;AAC7C,eAAe,mBAAO,CAAC,mGAAc;AACrC,eAAe,mBAAO,CAAC,0GAAyC;AAChE,eAAe,mBAAO,CAAC,4GAA0C;AACjE,eAAe,mBAAO,CAAC,8GAA2C;AAClE,cAAc,mBAAO,CAAC,4FAAkC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uCAAuC,aAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,gDAAgD,eAAe;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,eAAe;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC9Ha;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,gCAAgC;AAChC,8BAA8B;AAC9B,2BAA2B;AAC3B,4BAA4B;AAC5B,aAAa,mBAAO,CAAC,kGAAqC;AAC1D,eAAe,mBAAO,CAAC,sGAAuC;AAC9D,aAAa,mBAAO,CAAC,8FAAmC;AACxD,cAAc,mBAAO,CAAC,4FAAkC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA,qBAAqB;AACrB,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,QAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,MAAM,2BAA2B,MAAM,6BAA6B,MAAM;AACjG;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,yBAAyB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAgB;AACrD,aAAa;AACb;AACA;AACA;AACA,gBAAgB;AAChB;;;;;;;;;;;ACrJa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,6BAA6B;AAC7B;AACA;AACA;AACA;;;;;;;;;;;ACNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB;AACzB,mBAAmB;AACnB,qBAAqB;AACrB;AACA,gBAAgB,mBAAO,CAAC,qGAAe;AACvC,kBAAkB,mBAAO,CAAC,wHAAgD;AAC1E,aAAa,mBAAO,CAAC,8FAAmC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kBAAkB;AAC5C;AACA;AACA,sBAAsB,gBAAgB;AACtC,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kDAAkD;AAC3E;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;AC5Da;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B,GAAG,kBAAkB;AAChD,kBAAkB;AAClB,eAAe;AACf,eAAe;AACf,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,mBAAmB,mBAAO,CAAC,2GAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,iBAAiB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,iBAAiB;AACnF;AACA;AACA;;;;;;;;;;;ACjEa;AACb;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oCAAoC;AACpC,sCAAsC;AACtC,0BAA0B;AAC1B,uBAAuB;AACvB,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,mBAAmB,mBAAO,CAAC,2GAAkB;AAC7C,mBAAmB,mBAAO,CAAC,qGAAY;AACvC,kBAAkB,mBAAO,CAAC,mGAAW;AACrC;AACA;AACA,0DAA0D,kBAAkB;AAC5E;AACA;AACA;AACA;AACA;AACA,yEAAyE,kBAAkB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7Ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY;AACZ,aAAa;AACb,kBAAkB;AAClB,gBAAgB;AAChB,eAAe,mBAAO,CAAC,mGAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB;AACA,YAAY,aAAa;AACzB;AACA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,MAAM;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzFa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,6BAA6B;AAC7B,2BAA2B;AAC3B,yBAAyB;AACzB,0BAA0B;AAC1B,yBAAyB;AACzB,0BAA0B;AAC1B,mBAAmB,mBAAO,CAAC,2GAAkB;AAC7C,eAAe,mBAAO,CAAC,mGAAc;AACrC,gBAAgB,mBAAO,CAAC,qGAAe;AACvC,kBAAkB,mBAAO,CAAC,mGAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC9Ma;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,GAAG,iBAAiB,GAAG,eAAe,GAAG,wBAAwB,GAAG,mBAAmB,GAAG,gCAAgC,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,yBAAyB,GAAG,+BAA+B,GAAG,kBAAkB,GAAG,sBAAsB,GAAG,yBAAyB,GAAG,iCAAiC,GAAG,uBAAuB,GAAG,yBAAyB,GAAG,mBAAmB,GAAG,qCAAqC,GAAG,6BAA6B,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,yBAAyB,GAAG,0BAA0B,GAAG,yBAAyB,GAAG,kBAAkB,GAAG,aAAa,GAAG,YAAY,GAAG,gBAAgB,GAAG,sCAAsC,GAAG,oCAAoC,GAAG,0BAA0B,GAAG,uBAAuB;AAC91B,kBAAkB,mBAAO,CAAC,uGAAa;AACvC,mDAAkD,EAAE,qCAAqC,uCAAuC,EAAC;AACjI,sDAAqD,EAAE,qCAAqC,0CAA0C,EAAC;AACvI,gEAA+D,EAAE,qCAAqC,oDAAoD,EAAC;AAC3J,kEAAiE,EAAE,qCAAqC,sDAAsD,EAAC;AAC/J,cAAc,mBAAO,CAAC,+FAAS;AAC/B,4CAA2C,EAAE,qCAAqC,4BAA4B,EAAC;AAC/G,wCAAuC,EAAE,qCAAqC,wBAAwB,EAAC;AACvG,yCAAwC,EAAE,qCAAqC,yBAAyB,EAAC;AACzG,8CAA6C,EAAE,qCAAqC,8BAA8B,EAAC;AACnH,iBAAiB,mBAAO,CAAC,qGAAY;AACrC,qDAAoD,EAAE,qCAAqC,wCAAwC,EAAC;AACpI,sDAAqD,EAAE,qCAAqC,yCAAyC,EAAC;AACtI,qDAAoD,EAAE,qCAAqC,wCAAwC,EAAC;AACpI,sDAAqD,EAAE,qCAAqC,yCAAyC,EAAC;AACtI,uDAAsD,EAAE,qCAAqC,0CAA0C,EAAC;AACxI,yDAAwD,EAAE,qCAAqC,4CAA4C,EAAC;AAC5I,iBAAiB,mBAAO,CAAC,qGAAY;AACrC,iEAAgE,EAAE,qCAAqC,oDAAoD,EAAC;AAC5J,oBAAoB,mBAAO,CAAC,2GAAe;AAC3C,+CAA8C,EAAE,qCAAqC,qCAAqC,EAAC;AAC3H,cAAc,mBAAO,CAAC,+FAAS;AAC/B,qDAAoD,EAAE,qCAAqC,qCAAqC,EAAC;AACjI,gBAAgB,mBAAO,CAAC,mGAAW;AACnC,mDAAkD,EAAE,qCAAqC,qCAAqC,EAAC;AAC/H,6DAA4D,EAAE,qCAAqC,+CAA+C,EAAC;AACnJ,qDAAoD,EAAE,qCAAqC,uCAAuC,EAAC;AACnI,kDAAiD,EAAE,qCAAqC,oCAAoC,EAAC;AAC7H,8CAA6C,EAAE,qCAAqC,gCAAgC,EAAC;AACrH,0BAA0B,mBAAO,CAAC,uHAAqB;AACvD,2DAA0D,EAAE,qCAAqC,uDAAuD,EAAC;AACzJ,qDAAoD,EAAE,qCAAqC,iDAAiD,EAAC;AAC7I,wBAAwB,mBAAO,CAAC,mHAAmB;AACnD,mDAAkD,EAAE,qCAAqC,6CAA6C,EAAC;AACvI,kBAAkB,mBAAO,CAAC,uGAAa;AACvC,mDAAkD,EAAE,qCAAqC,uCAAuC,EAAC;AACjI,4DAA2D,EAAE,qCAAqC,gDAAgD,EAAC;AACnJ,gBAAgB,mBAAO,CAAC,mGAAW;AACnC,+CAA8C,EAAE,qCAAqC,iCAAiC,EAAC;AACvH,oDAAmD,EAAE,qCAAqC,sCAAsC,EAAC;AACjI,cAAc,mBAAO,CAAC,+FAAS;AAC/B,2CAA0C,EAAE,qCAAqC,2BAA2B,EAAC;AAC7G,6CAA4C,EAAE,qCAAqC,6BAA6B,EAAC;AACjH,eAAe,mBAAO,CAAC,iGAAU;AACjC,8CAA6C,EAAE,qCAAqC,+BAA+B,EAAC;AACpH;;;;;;;;;;;AChDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB;AACrB,qCAAqC;AACrC,mBAAmB,mBAAO,CAAC,2GAAkB;AAC7C,eAAe,mBAAO,CAAC,mGAAc;AACrC,oBAAoB,mBAAO,CAAC,uGAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,0BAA0B,6BAA6B,eAAe;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;;;;;;;;;;ACxCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,aAAa;AAClE;AACA;AACA;;;;;;;;;;;ACrBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB;AACzB,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB,uBAAuB;AACvB,yBAAyB;AACzB,sBAAsB;AACtB,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB;AACzB,+BAA+B;AAC/B,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,mBAAmB,mBAAO,CAAC,2GAAkB;AAC7C,gBAAgB,mBAAO,CAAC,qGAAe;AACvC,oBAAoB,mBAAO,CAAC,uGAAa;AACzC,gBAAgB,mBAAO,CAAC,+FAAS;AACjC,oBAAoB,mBAAO,CAAC,uGAAa;AACzC,kBAAkB,mBAAO,CAAC,mGAAW;AACrC,iBAAiB,mBAAO,CAAC,iGAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uBAAuB;AAClE;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA,uCAAuC,eAAe;AACtD;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gBAAgB;AAC3D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,yBAAyB;AACzB;;;;;;;;;;;AC9Pa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,mBAAmB,mBAAO,CAAC,2GAAkB;AAC7C,oBAAoB,mBAAO,CAAC,uGAAa;AACzC,oBAAoB,mBAAO,CAAC,uGAAa;AACzC,kBAAkB,mBAAO,CAAC,mGAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACvDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gCAAgC;AAChC,uBAAuB;AACvB;AACA,mBAAmB,mBAAO,CAAC,2GAAkB;AAC7C,mBAAmB,mBAAO,CAAC,qGAAY;AACvC,kBAAkB,mBAAO,CAAC,mGAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACnCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B;AAC3B,mBAAmB;AACnB,wBAAwB;AACxB,wBAAwB;AACxB;AACA,mBAAmB,mBAAO,CAAC,2GAAkB;AAC7C,eAAe,mBAAO,CAAC,mGAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2CAA2C;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf,iBAAiB;AACjB;AACA,YAAY,6BAA6B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B,GAAG,kBAAkB;AAChD,kBAAkB;AAClB,eAAe;AACf,eAAe;AACf,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,mBAAmB,mBAAO,CAAC,2GAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,iBAAiB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,iBAAiB;AACnF;AACA;AACA;;;;;;;;;;;ACjEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;AC/Ba;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,kBAAkB;AAClB,8BAA8B,mBAAO,CAAC,oDAAW;AACjD;AACA;AACA;AACA;AACA,8CAA8C,IAAI;AAClD;AACA;AACA;AACA;AACA;;;;;;;;;;;AC/Ca;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,kBAAkB;AAClB,uBAAuB;AACvB,4BAA4B,mBAAO,CAAC,8CAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;;;;;;;;;;;AC5Da;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa;AACb,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA,6CAA6C,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,aAAa,GAAG,eAAe,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,eAAe,GAAG,iBAAiB;AAC7P,cAAc,mBAAO,CAAC,kGAAS;AAC/B,6CAA4C,EAAE,qCAAqC,6BAA6B,EAAC;AACjH,2CAA0C,EAAE,qCAAqC,2BAA2B,EAAC;AAC7G,eAAe,mBAAO,CAAC,oGAAU;AACjC,8CAA6C,EAAE,qCAAqC,+BAA+B,EAAC;AACpH,4CAA2C,EAAE,qCAAqC,6BAA6B,EAAC;AAChH,eAAe,mBAAO,CAAC,oGAAU;AACjC,8CAA6C,EAAE,qCAAqC,+BAA+B,EAAC;AACpH,mDAAkD,EAAE,qCAAqC,oCAAoC,EAAC;AAC9H,4CAA2C,EAAE,qCAAqC,6BAA6B,EAAC;AAChH,YAAY,mBAAO,CAAC,8FAAO;AAC3B,2CAA0C,EAAE,qCAAqC,yBAAyB,EAAC;AAC3G,yCAAwC,EAAE,qCAAqC,uBAAuB,EAAC;AACvG,gBAAgB,mBAAO,CAAC,sGAAW;AACnC,+CAA8C,EAAE,qCAAqC,iCAAiC,EAAC;AACvH,6CAA4C,EAAE,qCAAqC,+BAA+B,EAAC;AACnH,aAAa,mBAAO,CAAC,gGAAQ;AAC7B,4CAA2C,EAAE,qCAAqC,2BAA2B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,yBAAyB,EAAC;AAC1G;;;;;;;;;;;ACtBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB,iBAAiB;AACjB,6BAA6B,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,IAAI,aAAa,EAAE,IAAI,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,GAAG;AACrE;AACA;;;;;;;;;;;ACnDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;;;;;;;;;;;AClBa;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf;AACA,gCAAgC,mBAAO,CAAC,6CAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,uBAAuB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,MAAM,EAAE,yCAAyC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,oBAAoB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB,GAAG,sBAAsB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;;;;;;;;;;ACpNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,eAAe;AAClF,gBAAgB,mBAAO,CAAC,kGAAW;AACnC,2CAA0C,EAAE,qCAAqC,6BAA6B,EAAC;AAC/G,iBAAiB,mBAAO,CAAC,oGAAY;AACrC,yCAAwC,EAAE,qCAAqC,4BAA4B,EAAC;AAC5G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G;;;;;;;;;;;ACVa;AACb;AACA;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc;AAChE;AACA,gCAAgC,mBAAO,CAAC,6CAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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kBAAkB,mBAAO,CAAC,gDAAS;AACnC,kCAAkC,mBAAO,CAAC,iGAA2B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;;;;;;;;;;;;AC7Ea;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB;AACrB;AACA,wCAAwC,mBAAO,CAAC,8DAAe;AAC/D;AACA,mBAAmB,OAAO;AAC1B,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,SAAS;AAClF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,6BAA6B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,uBAAuB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;ACvJa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,kBAAkB,mBAAO,CAAC,gDAAS;AACnC,wBAAwB,mBAAO,CAAC,6EAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;AClDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB;AACtB,eAAe,mBAAO,CAAC,8FAAc;AACrC,wBAAwB,mBAAO,CAAC,kFAAuB;AACvD,gBAAgB,mBAAO,CAAC,gGAAe;AACvC,eAAe,mBAAO,CAAC,sGAAuC;AAC9D,kBAAkB,mBAAO,CAAC,kHAA6C;AACvE;AACA;AACA;AACA;AACA,YAAY,2CAA2C;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iBAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D;AACA;AACA;;;;;;;;;;;AC9Da;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,2EAA2E,WAAW;AACtF;AACA;AACA,0DAA0D,KAAK;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,KAAK;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;;;;;;;;;;ACjDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B;AAC3B,mBAAmB,mBAAO,CAAC,sGAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;;;;;;;;;;ACjBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,oBAAoB;AACpB,eAAe,mBAAO,CAAC,8FAAc;AACrC,wBAAwB,mBAAO,CAAC,kFAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,YAAY,gCAAgC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AClEa;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qCAAqC,GAAG,6BAA6B,GAAG,mCAAmC,G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CA;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,QAAQ,4BAA4B,UAAU;AACnG;AACA;AACA;AACA;;;;;;;;;;;ACtFa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,gBAAgB,mBAAO,CAAC,wGAAwC;AAChE,sBAAsB,mBAAO,CAAC,qFAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU,+BAA+B,kBAAkB;AACnF;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;ACnBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACda;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB,aAAa,mBAAO,CAAC,oGAAsC;AAC3D,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;;;;;;;;;;ACTa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B;AAC3B,gBAAgB,mBAAO,CAAC,0GAAyC;AACjE,sBAAsB,mBAAO,CAAC,qFAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;ACnCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB;AACtB,2BAA2B;AAC3B,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gCAAgC;AACxD;AACA;AACA;AACA,aAAa;AACb,0BAA0B,kCAAkC;AAC5D;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;ACnDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,6BAA6B;AAC7B,aAAa,mBAAO,CAAC,kGAAqC;AAC1D,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACZa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B;AACA,gBAAgB,mBAAO,CAAC,gGAAe;AACvC,gBAAgB,mBAAO,CAAC,wGAAwC;AAChE,sBAAsB,mBAAO,CAAC,qFAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU,+BAA+B,gCAAgC;AACjG;AACA;AACA,aAAa;AACb;AACA,wBAAwB,WAAW,+EAA+E,kBAAkB;AACpI;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA,wBAAwB,SAAS,gCAAgC,cAAc;AAC/E;AACA;AACA,aAAa;AACb;AACA,wBAAwB,WAAW,qCAAqC,OAAO;AAC/E;AACA;AACA,aAAa;AACb;AACA,wBAAwB,YAAY;AACpC;AACA,iBAAiB;AACjB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;AChDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iCAAiC;AACjC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACVa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oCAAoC;AACpC,yCAAyC;AACzC,6CAA6C;AAC7C,mCAAmC;AACnC,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA,aAAa;AACb,0BAA0B,mBAAmB;AAC7C;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,oCAAoC;AAC5D;AACA;AACA,aAAa;AACb,0BAA0B,sCAAsC;AAChE;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,qCAAqC;AAC7D;AACA;AACA,aAAa;AACb,0BAA0B,uCAAuC;AACjE;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA,aAAa;AACb,0BAA0B,oBAAoB;AAC9C;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;ACnEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB;AACzB,gDAAgD;AAChD,aAAa,mBAAO,CAAC,kHAA6C;AAClE,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACfa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kCAAkC;AAClC;AACA,gBAAgB,mBAAO,CAAC,wHAAgD;AACxE,sBAAsB,mBAAO,CAAC,qFAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA,6DAA6D;AAC7D;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;ACtEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gCAAgC;AAChC,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACVa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB;AACrB,aAAa,mBAAO,CAAC,0GAAyC;AAC9D,qBAAqB;AACrB;AACA;AACA;AACA;;;;;;;;;;;ACRa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,8BAA8B;AAC9B,gBAAgB,mBAAO,CAAC,gHAA4C;AACpE,sBAAsB,mBAAO,CAAC,qFAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;AC7Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gCAAgC;AAChC,sBAAsB;AACtB,8BAA8B;AAC9B,yBAAyB;AACzB,gCAAgC;AAChC,eAAe,mBAAO,CAAC,8FAAc;AACrC,gBAAgB,mBAAO,CAAC,gGAAe;AACvC,cAAc,mBAAO,CAAC,kGAAqC;AAC3D,cAAc,mBAAO,CAAC,4FAAkC;AACxD,sBAAsB,mBAAO,CAAC,qFAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0BAA0B,gCAAgC;AAC1D;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0BAA0B,4BAA4B;AACtD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb,0BAA0B,6BAA6B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,oCAAoC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,uEAAuE,gBAAgB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0BAA0B,qCAAqC;AAC/D;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,yBAAyB;AACzB;AACA;AACA;AACA,uEAAuE,aAAa;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;AC/Ia;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,gCAAgC;AAChC,uCAAuC;AACvC,6BAA6B;AAC7B,qCAAqC;AACrC,aAAa,mBAAO,CAAC,sFAA+B;AACpD,aAAa,mBAAO,CAAC,gGAAoC;AACzD,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB;AACzB,gBAAgB,mBAAO,CAAC,sGAAuC;AAC/D,sBAAsB,mBAAO,CAAC,qFAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,4BAA4B;AACzF;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA,+DAA+D,oDAAoD;AACnH;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;AClEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;;;;;;;;;;ACPa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB,aAAa,mBAAO,CAAC,0FAAiC;AACtD,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,KAAK;AAC9C;AACA;AACA;;;;;;;;;;;AC5Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,gCAAgC;AAChC;AACA,gBAAgB,mBAAO,CAAC,gGAAe;AACvC,aAAa,mBAAO,CAAC,oHAA8C;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4FAA4F;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,aAAa;AACb,0BAA0B,gGAAgG;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;AC/Ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,iCAAiC;AACjC,aAAa,mBAAO,CAAC,oHAA8C;AACnE,aAAa,mBAAO,CAAC,kGAAqC;AAC1D,aAAa,mBAAO,CAAC,gGAAoC;AACzD,aAAa,mBAAO,CAAC,wGAAwC;AAC7D,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB;AACzB,gBAAgB,mBAAO,CAAC,0HAAiD;AACzE,gBAAgB,mBAAO,CAAC,wGAAwC;AAChE,gBAAgB,mBAAO,CAAC,sGAAuC;AAC/D,gBAAgB,mBAAO,CAAC,8GAA2C;AACnE,qBAAqB,mBAAO,CAAC,wIAAwD;AACrF,sBAAsB,mBAAO,CAAC,qFAAmB;AACjD;AACA;AACA,yDAAyD,qBAAqB;AAC9E;AACA;AACA;AACA;AACA;AACA,yDAAyD,qBAAqB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,4EAA4E,UAAU;AACtF;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,sEAAsE;AACtE;AACA,4EAA4E,UAAU;AACtF;AACA,iBAAiB;AACjB;AACA,4BAA4B,eAAe;AAC3C;AACA,qBAAqB;AACrB,+CAA+C,aAAa;AAC5D,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,sBAAsB;AACtB,+CAA+C,aAAa;AAC5D,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,8EAA8E,YAAY;AAC1F;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,kEAAkE;AAClE,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;AChTa;AACb,8CAA6C,EAAE,aAA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ACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA,6DAA6D;AAC7D;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;AC7Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,iCAAiC;AACjC,+BAA+B;AAC/B,0BAA0B;AAC1B,iCAAiC;AACjC,4BAA4B;AAC5B,2CAA2C;AAC3C,oCAAoC;AACpC,eAAe,mBAAO,CAAC,8FAAc;AACrC,wBAAwB,mBAAO,CAAC,kFAAuB;AACvD,gBAAgB,mBAAO,CAAC,gGAAe;AACvC;AACA;AACA;AACA,cAAc,MAAM,GAAG,mCAAmC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAqE;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0BAA0B,0EAA0E;AACpG;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,gGAAgG;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0BAA0B,oGAAoG;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,4CAA4C;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0BAA0B,+CAA+C;AACzE;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,mEAAmE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0BAA0B,uEAAuE;AACjG;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,6CAA6C;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0BAA0B,+CAA+C;AACzE;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wBAAwB,6DAA6D;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0BAA0B,gEAAgE;AAC1F;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;ACnMa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB;AACpB,wCAAwC;AACxC,wCAAwC;AACxC,iCAAiC;AACjC,sCAAsC;AACtC,mCAAmC;AACnC,kDAAkD;AAClD,aAAa,mBAAO,CAAC,wGAAwC;AAC7D,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,6BAA6B;AAC7B;AACA,gBAAgB,mBAAO,CAAC,8GAA2C;AACnE,sBAAsB,mBAAO,CAAC,qFAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA,6DAA6D;AAC7D;AACA,aAAa;AACb;AACA,2DAA2D;AAC3D;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA,gEAAgE,iCAAiC;AACjG;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;AC1Ga;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,wBAAwB;AACxB,wBAAwB,mBAAO,CAAC,kFAAuB;AACvD,kBAAkB,mBAAO,CAAC,wHAAgD;AAC1E,kBAAkB,mBAAO,CAAC,wGAAwC;AAClE,aAAa,mBAAO,CAAC,8FAAmC;AACxD,sBAAsB,mBAAO,CAAC,qFAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA,4CAA4C,UAAU,kDAAkD;AACxG,6BAA6B;AAC7B;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;ACjDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sCAAsC;AACtC,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mDAAmD;AAC3E;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0BAA0B,sDAAsD;AAChF;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;;;;;;;;;;AC5Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB;AACpB,aAAa,mBAAO,CAAC,wGAAwC;AAC7D,oBAAoB;AACpB;AACA;AACA;;;;;;;;;;;ACPa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B;AAC3B,yBAAyB;AACzB,8BAA8B;AAC9B,gBAAgB,mBAAO,CAAC,gGAAe;AACvC,mBAAmB,mBAAO,CAAC,sGAAkB;AAC7C,wBAAwB,mBAAO,CAAC,kFAAuB;AACvD,mBAAmB,mBAAO,CAAC,oIAAsD;AACjF,kBAAkB,mBAAO,CAAC,wHAAgD;AAC1E,aAAa,mBAAO,CAAC,8FAAmC;AACxD,aAAa,mBAAO,CAAC,8FAAmC;AACxD;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,oDAAoD,0CAA0C;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yCAAyC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,UAAU,wDAAwD;AAC1H,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA,8FAA8F,4BAA4B;AAC1H,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChFa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,mCAAmC,GAAG,+BAA+B,GAAG,wBAAwB,GAAG,mBAAmB;AACxI,oBAAoB,mBAAO,CAAC,uFAAe;AAC3C,+CAA8C,EAAE,qCAAqC,qCAAqC,EAAC;AAC3H,cAAc,mBAAO,CAAC,2EAAS;AAC/B,oDAAmD,EAAE,qCAAqC,oCAAoC,EAAC;AAC/H,2DAA0D,EAAE,qCAAqC,2CAA2C,EAAC;AAC7I,+DAA8D,EAAE,qCAAqC,+CAA+C,EAAC;AACrJ,2CAA0C,EAAE,qCAAqC,2BAA2B,EAAC;AAC7G;;;;;;;;;;;ACVa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB,gBAAgB,mBAAO,CAAC,gGAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+HAA+H,oBAAoB,cAAc,UAAU;AAC3K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,kDAAkD,cAAc,KAAK,aAAa;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;;;;;;;;;;;ACnDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB;AACpB,wBAAwB;AACxB,+BAA+B;AAC/B,eAAe;AACf,mCAAmC;AACnC,mBAAmB,mBAAO,CAAC,sGAAkB;AAC7C,eAAe,mBAAO,CAAC,8FAAc;AACrC,qBAAqB,mBAAO,CAAC,8HAAmD;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,oBAAoB,2CAA2C;AACjI;AACA;AACA;AACA;AACA,6BAA6B,QAAQ,GAAG,OAAO;AAC/C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACvDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,4BAA4B;AAC5B;AACA;AACA;AACA;;;;;;;;;;;ACNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,6BAA6B,GAAG,4BAA4B;AAC5D,oCAAoC;AACpC,gBAAgB,mBAAO,CAAC,gGAAe;AACvC,mBAAmB,mBAAO,CAAC,sGAAkB;AAC7C,eAAe,mBAAO,CAAC,8FAAc;AACrC,wBAAwB,mBAAO,CAAC,kFAAuB;AACvD,yBAAyB,mBAAO,CAAC,oFAAwB;AACzD,gBAAgB,mBAAO,CAAC,gGAAe;AACvC,eAAe,mBAAO,CAAC,sGAAuC;AAC9D,aAAa,mBAAO,CAAC,kHAA6C;AAClE,aAAa,mBAAO,CAAC,wGAAwC;AAC7D,kBAAkB,mBAAO,CAAC,wHAAgD;AAC1E,aAAa,mBAAO,CAAC,8FAAmC;AACxD,aAAa,mBAAO,CAAC,oHAA8C;AACnE,qBAAqB,mBAAO,CAAC,yEAAc;AAC3C,cAAc,mBAAO,CAAC,2DAAO;AAC7B,kBAAkB,mBAAO,CAAC,yEAAW;AACrC,kBAAkB,mBAAO,CAAC,yEAAW;AACrC,yBAAyB,mBAAO,CAAC,iFAAkB;AACnD,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mJAAmJ;AACnK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,kCAAkC;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,kCAAkC;AAChH;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,2DAA2D,kCAAkC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,wEAAwE,kBAAkB;AAC1F;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,6BAA6B;AAC7B;;;;;;;;;;;ACnSa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB,GAAG,wBAAwB,GAAG,oBAAoB;AACxE,0BAA0B;AAC1B,0BAA0B;AAC1B,gCAAgC;AAChC,gCAAgC;AAChC;AACA,gBAAgB,mBAAO,CAAC,gGAAe;AACvC,mBAAmB,mBAAO,CAAC,sGAAkB;AAC7C,eAAe,mBAAO,CAAC,8FAAc;AACrC,yBAAyB,mBAAO,CAAC,oFAAwB;AACzD,gBAAgB,mBAAO,CAAC,gGAAe;AACvC,eAAe,mBAAO,CAAC,gHAA4C;AACnE,mBAAmB,mBAAO,CAAC,qEAAY;AACvC,iBAAiB,mBAAO,CAAC,iEAAU;AACnC,kBAAkB,mBAAO,CAAC,yEAAW;AACrC,sBAAsB,mBAAO,CAAC,iFAAe;AAC7C,iBAAiB,mBAAO,CAAC,iEAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,wBAAwB,YAAY,cAAc,UAAU,cAAc,WAAW,cAAc;AACzJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB,yBAAyB,cAAc,UAAU,cAAc,WAAW,cAAc;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,MAAM,cAAc,UAAU,UAAU,IAAI;AACvG;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4CAA4C;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kCAAkC;AACtD;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,GAAG;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,MAAM,IAAI,QAAQ;AAChD;AACA,8BAA8B,MAAM,GAAG,QAAQ;AAC/C,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,8DAA8D,MAAM,uGAAuG,kBAAkB;AAC7L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,IAAI;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,cAAc;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,sBAAsB;AACtB;;;;;;;;;;;AC1Ta;AACb;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oCAAoC;AACpC,sCAAsC;AACtC,0BAA0B;AAC1B,uBAAuB;AACvB,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,mBAAmB,mBAAO,CAAC,sGAAkB;AAC7C,mBAAmB,mBAAO,CAAC,gGAAY;AACvC,kBAAkB,mBAAO,CAAC,8FAAW;AACrC;AACA;AACA,0DAA0D,kBAAkB;AAC5E;AACA;AACA;AACA;AACA;AACA,yEAAyE,kBAAkB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7Ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY;AACZ,aAAa;AACb,kBAAkB;AAClB,gBAAgB;AAChB,eAAe,mBAAO,CAAC,8FAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB;AACA,YAAY,aAAa;AACzB;AACA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,MAAM;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzFa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,6BAA6B;AAC7B,2BAA2B;AAC3B,yBAAyB;AACzB,0BAA0B;AAC1B,yBAAyB;AACzB,0BAA0B;AAC1B,mBAAmB,mBAAO,CAAC,sGAAkB;AAC7C,eAAe,mBAAO,CAAC,8FAAc;AACrC,gBAAgB,mBAAO,CAAC,gGAAe;AACvC,kBAAkB,mBAAO,CAAC,8FAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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ACzC,kBAAkB,mBAAO,CAAC,8FAAW;AACrC,iBAAiB,mBAAO,CAAC,4FAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uBAAuB;AAClE;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA,uCAAuC,eAAe;AACtD;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gBAAgB;AAC3D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,yBAAyB;AACzB;;;;;;;;;;;AC9Pa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,mBAAmB,mBAAO,CAAC,sGAAkB;AAC7C,oBAAoB,mBAAO,CAAC,kGAAa;AACzC,oBAAoB,mBAAO,CAAC,kGAAa;AACzC,kBAAkB,mBAAO,CAAC,8FAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACvDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gCAAgC;AAChC,uBAAuB;AACvB;AACA,mBAAmB,mBAAO,CAAC,sGAAkB;AAC7C,mBAAmB,mBAAO,CAAC,gGAAY;AACvC,kBAAkB,mBAAO,CAAC,8FAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACnCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B;AAC3B,mBAAmB;AACnB,wBAAwB;AACxB,wBAAwB;AACxB;AACA,mBAAmB,mBAAO,CAAC,sGAAkB;AAC7C,eAAe,mBAAO,CAAC,8FAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2CAA2C;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf,iBAAiB;AACjB;AACA,YAAY,6BAA6B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B,GAAG,kBAAkB;AAChD,kBAAkB;AAClB,eAAe;AACf,eAAe;AACf,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,mBAAmB,mBAAO,CAAC,sGAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,iBAAiB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,iBAAiB;AACnF;AACA;AACA;;;;;;;;;;;ACjEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;AC/Ba;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,kBAAkB;AAClB,8BAA8B,mBAAO,CAAC,oDAAW;AACjD;AACA;AACA;AACA;AACA,8CAA8C,IAAI;AAClD;AACA;AACA;AACA;AACA;;;;;;;;;;;AC/Ca;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,kBAAkB;AAClB,uBAAuB;AACvB,4BAA4B,mBAAO,CAAC,8CAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;;;;;;;;;;;AC5Da;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa;AACb,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA,6CAA6C,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,aAAa,GAAG,eAAe,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,eAAe,GAAG,iBAAiB;AAC7P,cAAc,mBAAO,CAAC,6FAAS;AAC/B,6CAA4C,EAAE,qCAAqC,6BAA6B,EAAC;AACjH,2CAA0C,EAAE,qCAAqC,2BAA2B,EAAC;AAC7G,eAAe,mBAAO,CAAC,+FAAU;AACjC,8CAA6C,EAAE,qCAAqC,+BAA+B,EAAC;AACpH,4CAA2C,EAAE,qCAAqC,6BAA6B,EAAC;AAChH,eAAe,mBAAO,CAAC,+FAAU;AACjC,8CAA6C,EAAE,qCAAqC,+BAA+B,EAAC;AACpH,mDAAkD,EAAE,qCAAqC,oCAAoC,EAAC;AAC9H,4CAA2C,EAAE,qCAAqC,6BAA6B,EAAC;AAChH,YAAY,mBAAO,CAAC,yFAAO;AAC3B,2CAA0C,EAAE,qCAAqC,yBAAyB,EAAC;AAC3G,yCAAwC,EAAE,qCAAqC,uBAAuB,EAAC;AACvG,gBAAgB,mBAAO,CAAC,iGAAW;AACnC,+CAA8C,EAAE,qCAAqC,iCAAiC,EAAC;AACvH,6CAA4C,EAAE,qCAAqC,+BAA+B,EAAC;AACnH,aAAa,mBAAO,CAAC,2FAAQ;AAC7B,4CAA2C,EAAE,qCAAqC,2BAA2B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,yBAAyB,EAAC;AAC1G;;;;;;;;;;;ACtBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB,iBAAiB;AACjB,6BAA6B,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,IAAI,aAAa,EAAE,IAAI,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,GAAG;AACrE;AACA;;;;;;;;;;;ACnDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;;;;;;;;;;;AClBa;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf;AACA,gCAAgC,mBAAO,CAAC,6CAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,uBAAuB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,MAAM,EAAE,yCAAyC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,oBAAoB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB,GAAG,sBAAsB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;;;;;;;;;;ACpNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,eAAe;AAClF,gBAAgB,mBAAO,CAAC,6FAAW;AACnC,2CAA0C,EAAE,qCAAqC,6BAA6B,EAAC;AAC/G,iBAAiB,mBAAO,CAAC,+FAAY;AACrC,yCAAwC,EAAE,qCAAqC,4BAA4B,EAAC;AAC5G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G;;;;;;;;;;;ACVa;AACb;AACA;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc;AAChE;AACA,gCAAgC,mBAAO,CAAC,6CAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,qBAAqB;AACrB,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,GAAG,uBAAuB,GAAG,iBAAiB,GAAG,aAAa,GAAG,+BAA+B,GAAG,qBAAqB,GAAG,cAAc,GAAG,8BAA8B,GAAG,0BAA0B;AAC3N,eAAe,mBAAO,CAAC,4FAAU;AACjC,sDAAqD,EAAE,qCAAqC,uCAAuC,EAAC;AACpI,0DAAyD,EAAE,qCAAqC,2CAA2C,EAAC;AAC5I,eAAe,mBAAO,CAAC,4FAAU;AACjC,0CAAyC,EAAE,qCAAqC,2BAA2B,EAAC;AAC5G,iDAAgD,EAAE,qCAAqC,kCAAkC,EAAC;AAC1H,2DAA0D,EAAE,qCAAqC,4CAA4C,EAAC;AAC9I,cAAc,mBAAO,CAAC,0FAAS;AAC/B,yCAAwC,EAAE,qCAAqC,yBAAyB,EAAC;AACzG,mBAAmB,mBAAO,CAAC,oGAAc;AACzC,6CAA4C,EAAE,qCAAqC,kCAAkC,EAAC;AACtH,mDAAkD,EAAE,qCAAqC,wCAAwC,EAAC;AAClI,gDAA+C,EAAE,qCAAqC,qCAAqC,EAAC;AAC5H;;;;;;;;;;;AChBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa;AACb;AACA;AACA;AACA;;;;;;;;;;;;ACNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,oBAAoB;AACpB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM,2BAA2B,MAAM;AACtD;AACA,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5Ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,kBAAkB,mBAAO,CAAC,gDAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;;;;;;;;;AC9Fa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;;;;;;;;;;;ACtDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC/Ba;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,kBAAkB,GAAG,sBAAsB,GAAG,4BAA4B,GAAG,cAAc;AACvK,eAAe,mBAAO,CAAC,+DAAU;AACjC,0CAAyC,EAAE,qCAAqC,2BAA2B,EAAC;AAC5G,6BAA6B,mBAAO,CAAC,2FAAwB;AAC7D,wDAAuD,EAAE,qCAAqC,uDAAuD,EAAC;AACtJ,uBAAuB,mBAAO,CAAC,+EAAkB;AACjD,kDAAiD,EAAE,qCAAqC,2CAA2C,EAAC;AACpI,gBAAgB,mBAAO,CAAC,iEAAW;AACnC,8CAA6C,EAAE,qCAAqC,gCAAgC,EAAC;AACrH,mDAAkD,EAAE,qCAAqC,qCAAqC,EAAC;AAC/H,iDAAgD,EAAE,qCAAqC,mCAAmC,EAAC;AAC3H,aAAa,mBAAO,CAAC,iEAAW;AAChC,wBAAwB,mBAAO,CAAC,iFAAmB;AACnD,mDAAkD,EAAE,qCAAqC,6CAA6C,EAAC;AACvI;;;;;;;;;;;AC9Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,qBAAqB;AACrB,kBAAkB;AAClB,kBAAkB,mBAAO,CAAC,gDAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iCAAiC,cAAc,aAAa,MAAM;AAClE,aAAa;AACb;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf,mBAAmB;AACnB,eAAe;AACf,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,kBAAkB,mBAAO,CAAC,gDAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;AC/Ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oCAAoC;AACpC,sCAAsC;AACtC,0BAA0B;AAC1B,uBAAuB;AACvB,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,mBAAmB,mBAAO,CAAC,4GAAkB;AAC7C;AACA;AACA,0DAA0D,kBAAkB;AAC5E;AACA;AACA;AACA;AACA;AACA,yEAAyE,kBAAkB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,MAAM;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,cAAc;AAClC,iBAAiB,mBAAO,CAAC,2FAAY;AACrC,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,kBAAkB,mBAAO,CAAC,6FAAa;AACvC,6CAA4C,EAAE,qCAAqC,iCAAiC,EAAC;AACrH;;;;;;;;;;;ACPa;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd;AACA,mBAAmB,mBAAO,CAAC,4GAAkB;AAC7C,qBAAqB,mBAAO,CAAC,mFAAkB;AAC/C,kBAAkB,mBAAO,CAAC,6EAAe;AACzC,oBAAoB,mBAAO,CAAC,sFAAc;AAC1C,8BAA8B,mBAAO,CAAC,oFAAa;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,4CAA4C,sCAAsC;AAClF,kEAAkE,cAAc;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;;;;;;;;;;ACtJa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,mBAAmB;AACnB,6BAA6B;AAC7B,oBAAoB;AACpB,8BAA8B;AAC9B,2BAA2B;AAC3B;AACA,mBAAmB,mBAAO,CAAC,4GAAkB;AAC7C,gBAAgB,mBAAO,CAAC,sGAAe;AACvC,gBAAgB,mBAAO,CAAC,yEAAa;AACrC,qBAAqB,mBAAO,CAAC,mFAAkB;AAC/C,gBAAgB,mBAAO,CAAC,yEAAa;AACrC,oBAAoB,mBAAO,CAAC,sFAAc;AAC1C,iBAAiB,mBAAO,CAAC,gFAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0GAA0G,UAAU;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,UAAU;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mCAAmC,2BAA2B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;;;;;;;;;;ACtba;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB;AACrB,kBAAkB,mBAAO,CAAC,0EAAY;AACtC,qBAAqB,mBAAO,CAAC,sFAAe;AAC5C,kBAAkB,mBAAO,CAAC,uFAAW;AACrC,8BAA8B,mBAAO,CAAC,mFAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB,yCAAyC;AACjE;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uBAAuB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB,0CAA0C;AAClE;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,qBAAqB,+CAA+C;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qDAAqD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,uBAAuB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AC/Ua;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB;AACpB,oBAAoB;AACpB,mBAAmB;AACnB,oBAAoB;AACpB,sBAAsB;AACtB,WAAW;AACX,6BAA6B;AAC7B,oBAAoB;AACpB,qBAAqB;AACrB,kBAAkB;AAClB,mBAAmB;AACnB,qBAAqB;AACrB,qBAAqB;AACrB,mBAAmB,mBAAO,CAAC,4GAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7La;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,iBAAiB;AACjB,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,oBAAoB,mBAAO,CAAC,qFAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AClEa;AACb;AACA,aAAa,UAAU;AACvB,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,GAAG,8BAA8B,GAAG,gCAAgC,GAAG,6BAA6B,GAAG,cAAc,GAAG,qBAAqB;AAC7J,sBAAsB,mBAAO,CAAC,6FAAiB;AAC/C,iDAAgD,EAAE,qCAAqC,yCAAyC,EAAC;AACjI,iBAAiB,mBAAO,CAAC,mFAAY;AACrC,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,yDAAwD,EAAE,qCAAqC,4CAA4C,EAAC;AAC5I,kBAAkB,mBAAO,CAAC,qFAAa;AACvC,4DAA2D,EAAE,qCAAqC,gDAAgD,EAAC;AACnJ,0DAAyD,EAAE,qCAAqC,8CAA8C,EAAC;AAC/I,4CAA2C,EAAE,qCAAqC,gCAAgC,EAAC;AACnH;;;;;;;;;;;ACda;AACb;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,6BAA6B,GAAG,cAAc;AAC9C,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,aAAa,cAAc,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B,6BAA6B,6BAA6B;AACvF;AACA;AACA,+CAA+C,QAAQ,IAAI,UAAU;AACrE;AACA;AACA;AACA;;;;;;;;;;;AClDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,8BAA8B;AAC9B,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,eAAe,gBAAgB,gBAAgB;AAChD;;;;;;;;;;;AC7Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,kCAAkC;AAClC,gCAAgC;AAChC,mBAAmB;AACnB,iBAAiB;AACjB,mBAAmB,mBAAO,CAAC,4GAAkB;AAC7C,eAAe,mBAAO,CAAC,oGAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,4BAA4B,EAAE,6BAA6B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;;;;;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Y;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3Ba;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY;AACZ,sCAAsC,mBAAO,CAAC,wEAAa;AAC3D;AACA;AACA,mDAAmD,WAAW;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,mBAAmB,mBAAO,CAAC,wEAAkB;AAC7C,eAAe,mBAAO,CAAC,8EAAQ;AAC/B,oBAAoB,mBAAO,CAAC,wFAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0BAA0B;AACxD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;AC3Fa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB,mBAAmB,mBAAO,CAAC,wEAAkB;AAC7C,eAAe,mBAAO,CAAC,8EAAQ;AAC/B,oBAAoB,mBAAO,CAAC,wFAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;;;;;;;;;;AC/Ba;AACb;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,oCAAoC,GAAG,kBAAkB,GAAG,uBAAuB;AAC7G,wBAAwB,mBAAO,CAAC,oGAAmB;AACnD,mDAAkD,EAAE,qCAAqC,6CAA6C,EAAC;AACvI,mBAAmB,mBAAO,CAAC,0FAAc;AACzC,8CAA6C,EAAE,qCAAqC,mCAAmC,EAAC;AACxH,kBAAkB,mBAAO,CAAC,wFAAa;AACvC,gEAA+D,EAAE,qCAAqC,oDAAoD,EAAC;AAC3J,wBAAwB,mBAAO,CAAC,oGAAmB;AACnD,mDAAkD,EAAE,qCAAqC,6CAA6C,EAAC;AACvI;;;;;;;;;;;ACZa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oCAAoC;AACpC,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACXa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,mBAAmB,mBAAO,CAAC,wEAAkB;AAC7C,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,kBAAkB,mBAAO,CAAC,gDAAS;AACnC,oBAAoB,mBAAO,CAAC,wFAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,aAAa;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;AC9Ka;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,cAAc;AAClC,iBAAiB,mBAAO,CAAC,gGAAY;AACrC,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,kBAAkB,mBAAO,CAAC,kGAAa;AACvC,6CAA4C,EAAE,qCAAqC,iCAAiC,EAAC;AACrH;;;;;;;;;;;ACPa;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd;AACA,mBAAmB,mBAAO,CAAC,4GAAkB;AAC7C,qBAAqB,mBAAO,CAAC,mFAAkB;AAC/C,kBAAkB,mBAAO,CAAC,6EAAe;AACzC,oBAAoB,mBAAO,CAAC,2FAAc;AAC1C,8BAA8B,mBAAO,CAAC,yFAAa;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,4CAA4C,sCAAsC;AAClF,kEAAkE,cAAc;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;;;;;;;;;;ACtJa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,mBAAmB;AACnB,6BAA6B;AAC7B,8BAA8B;AAC9B,2BAA2B;AAC3B;AACA,mBAAmB,mBAAO,CAAC,4GAAkB;AAC7C,gBAAgB,mBAAO,CAAC,sGAAe;AACvC,gBAAgB,mBAAO,CAAC,yEAAa;AACrC,qBAAqB,mBAAO,CAAC,mFAAkB;AAC/C,gBAAgB,mBAAO,CAAC,yEAAa;AACrC,oBAAoB,mBAAO,CAAC,2FAAc;AAC1C,iBAAiB,mBAAO,CAAC,qFAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0GAA0G,UAAU;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,UAAU;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mCAAmC,2BAA2B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;;;;;;;;;;ACpba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB;AACpB,oBAAoB;AACpB,mBAAmB;AACnB,oBAAoB;AACpB,sBAAsB;AACtB,WAAW;AACX,6BAA6B;AAC7B,oBAAoB;AACpB,qBAAqB;AACrB,kBAAkB;AAClB,mBAAmB;AACnB,qBAAqB;AACrB,qBAAqB;AACrB,mBAAmB,mBAAO,CAAC,4GAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7La;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,iBAAiB;AACjB,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,oBAAoB,mBAAO,CAAC,0FAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AClEa;AACb;AACA,aAAa,eAAe;AAC5B,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B,GAAG,gBAAgB,GAAG,8BAA8B,GAAG,gCAAgC,GAAG,6BAA6B,GAAG,cAAc;AAClK,iBAAiB,mBAAO,CAAC,wFAAY;AACrC,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,yDAAwD,EAAE,qCAAqC,4CAA4C,EAAC;AAC5I,kBAAkB,mBAAO,CAAC,0FAAa;AACvC,4DAA2D,EAAE,qCAAqC,gDAAgD,EAAC;AACnJ,0DAAyD,EAAE,qCAAqC,8CAA8C,EAAC;AAC/I,4CAA2C,EAAE,qCAAqC,gCAAgC,EAAC;AACnH,2BAA2B,mBAAO,CAAC,4GAAsB;AACzD,sDAAqD,EAAE,qCAAqC,mDAAmD,EAAC;AAChJ;;;;;;;;;;;ACda;AACb;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,6BAA6B,GAAG,cAAc;AAC9C,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,aAAa,cAAc,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B,6BAA6B,6BAA6B;AACvF;AACA;AACA,+CAA+C,QAAQ,IAAI,UAAU;AACrE;AACA;AACA;AACA;;;;;;;;;;;AClDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,8BAA8B;AAC9B,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,eAAe,gBAAgB,gBAAgB;AAChD;;;;;;;;;;;AC7Ba;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,kBAAkB,mBAAO,CAAC,0EAAY;AACtC,qBAAqB,mBAAO,CAAC,sFAAe;AAC5C,kBAAkB,mBAAO,CAAC,4FAAW;AACrC,8BAA8B,mBAAO,CAAC,wFAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB,yCAAyC;AACjE;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uBAAuB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB,0CAA0C;AAClE;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,qBAAqB,+CAA+C;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qDAAqD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,uBAAuB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,0BAA0B;AAC1B;;;;;;;;;;;AC5Ua;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,cAAc;AAClC,iBAAiB,mBAAO,CAAC,gGAAY;AACrC,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,kBAAkB,mBAAO,CAAC,kGAAa;AACvC,6CAA4C,EAAE,qCAAqC,iCAAiC,EAAC;AACrH;;;;;;;;;;;ACPa;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd;AACA,mBAAmB,mBAAO,CAAC,4GAAkB;AAC7C,qBAAqB,mBAAO,CAAC,mFAAkB;AAC/C,kBAAkB,mBAAO,CAAC,6EAAe;AACzC,oBAAoB,mBAAO,CAAC,2FAAc;AAC1C,8BAA8B,mBAAO,CAAC,yFAAa;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,4CAA4C,sCAAsC;AAClF,kEAAkE,cAAc;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;;;;;;;;;;ACtJa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,mBAAmB;AACnB,6BAA6B;AAC7B,8BAA8B;AAC9B,2BAA2B;AAC3B;AACA,mBAAmB,mBAAO,CAAC,4GAAkB;AAC7C,gBAAgB,mBAAO,CAAC,sGAAe;AACvC,gBAAgB,mBAAO,CAAC,yEAAa;AACrC,qBAAqB,mBAAO,CAAC,mFAAkB;AAC/C,gBAAgB,mBAAO,CAAC,yEAAa;AACrC,oBAAoB,mBAAO,CAAC,2FAAc;AAC1C,iBAAiB,mBAAO,CAAC,qFAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0GAA0G,UAAU;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,UAAU;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mCAAmC,2BAA2B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;;;;;;;;;;ACpba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB;AACpB,oBAAoB;AACpB,mBAAmB;AACnB,oBAAoB;AACpB,sBAAsB;AACtB,WAAW;AACX,6BAA6B;AAC7B,oBAAoB;AACpB,qBAAqB;AACrB,kBAAkB;AAClB,mBAAmB;AACnB,qBAAqB;AACrB,qBAAqB;AACrB,mBAAmB,mBAAO,CAAC,4GAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7La;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,iBAAiB;AACjB,iBAAiB,mBAAO,CAAC,oEAAgB;AACzC,oBAAoB,mBAAO,CAAC,0FAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AClEa;AACb;AACA,aAAa,eAAe;AAC5B,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B,GAAG,gBAAgB,GAAG,8BAA8B,GAAG,gCAAgC,GAAG,6BAA6B,GAAG,cAAc;AAClK,iBAAiB,mBAAO,CAAC,wFAAY;AACrC,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,yDAAwD,EAAE,qCAAqC,4CAA4C,EAAC;AAC5I,kBAAkB,mBAAO,CAAC,0FAAa;AACvC,4DAA2D,EAAE,qCAAqC,gDAAgD,EAAC;AACnJ,0DAAyD,EAAE,qCAAqC,8CAA8C,EAAC;AAC/I,4CAA2C,EAAE,qCAAqC,gCAAgC,EAAC;AACnH,2BAA2B,mBAAO,CAAC,4GAAsB;AACzD,sDAAqD,EAAE,qCAAqC,mDAAmD,EAAC;AAChJ;;;;;;;;;;;ACda;AACb;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,6BAA6B,GAAG,cAAc;AAC9C,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,aAAa,cAAc,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B,6BAA6B,6BAA6B;AACvF;AACA;AACA,+CAA+C,QAAQ,IAAI,UAAU;AACrE;AACA;AACA;AACA;;;;;;;;;;;AClDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,8BAA8B;AAC9B,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,eAAe,gBAAgB,gBAAgB;AAChD;;;;;;;;;;;AC7Ba;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,kBAAkB,mBAAO,CAAC,0EAAY;AACtC,qBAAqB,mBAAO,CAAC,sFAAe;AAC5C,kBAAkB,mBAAO,CAAC,4FAAW;AACrC,8BAA8B,mBAAO,CAAC,wFAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB,yCAAyC;AACjE;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uBAAuB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB,0CAA0C;AAClE;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,qBAAqB,+CAA+C;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qDAAqD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,uBAAuB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,0BAA0B;AAC1B;;;;;;;;;;;AC5Ua;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,4BAA4B;AAC5B,4BAA4B;AAC5B,uBAAuB;AACvB,oBAAoB;AACpB,kBAAkB,mBAAO,CAAC,+EAAW;AACrC,uBAAuB,mBAAO,CAAC,yFAAgB;AAC/C,uBAAuB,mBAAO,CAAC,yFAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACxCa;AACb;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kBAAkB,mBAAmB,mBAAmB;AACzD;;;;;;;;;;;ACba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;AC/Ba;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,kBAAkB;AAClB,8BAA8B,mBAAO,CAAC,oDAAW;AACjD;AACA;AACA;AACA;AACA,8CAA8C,IAAI;AAClD;AACA;AACA;AACA;AACA;;;;;;;;;;;AC/Ca;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,kBAAkB;AAClB,uBAAuB;AACvB,4BAA4B,mBAAO,CAAC,8CAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;;;;;;;;;;;AC5Da;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa;AACb,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA,6CAA6C,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,aAAa,GAAG,eAAe,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,eAAe,GAAG,iBAAiB;AAC7P,cAAc,mBAAO,CAAC,mGAAS;AAC/B,6CAA4C,EAAE,qCAAqC,6BAA6B,EAAC;AACjH,2CAA0C,EAAE,qCAAqC,2BAA2B,EAAC;AAC7G,eAAe,mBAAO,CAAC,qGAAU;AACjC,8CAA6C,EAAE,qCAAqC,+BAA+B,EAAC;AACpH,4CAA2C,EAAE,qCAAqC,6BAA6B,EAAC;AAChH,eAAe,mBAAO,CAAC,qGAAU;AACjC,8CAA6C,EAAE,qCAAqC,+BAA+B,EAAC;AACpH,mDAAkD,EAAE,qCAAqC,oCAAoC,EAAC;AAC9H,4CAA2C,EAAE,qCAAqC,6BAA6B,EAAC;AAChH,YAAY,mBAAO,CAAC,+FAAO;AAC3B,2CAA0C,EAAE,qCAAqC,yBAAyB,EAAC;AAC3G,yCAAwC,EAAE,qCAAqC,uBAAuB,EAAC;AACvG,gBAAgB,mBAAO,CAAC,uGAAW;AACnC,+CAA8C,EAAE,qCAAqC,iCAAiC,EAAC;AACvH,6CAA4C,EAAE,qCAAqC,+BAA+B,EAAC;AACnH,aAAa,mBAAO,CAAC,iGAAQ;AAC7B,4CAA2C,EAAE,qCAAqC,2BAA2B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,yBAAyB,EAAC;AAC1G;;;;;;;;;;;ACtBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB,iBAAiB;AACjB,6BAA6B,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,IAAI,aAAa,EAAE,IAAI,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,GAAG;AACrE;AACA;;;;;;;;;;;ACnDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;;;;;;;;;;;AClBa;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf;AACA,gCAAgC,mBAAO,CAAC,6CAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,uBAAuB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,MAAM,EAAE,yCAAyC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,oBAAoB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB,GAAG,sBAAsB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;;;;;;;;;;ACpNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,eAAe;AAClF,gBAAgB,mBAAO,CAAC,mGAAW;AACnC,2CAA0C,EAAE,qCAAqC,6BAA6B,EAAC;AAC/G,iBAAiB,mBAAO,CAAC,qGAAY;AACrC,yCAAwC,EAAE,qCAAqC,4BAA4B,EAAC;AAC5G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G;;;;;;;;;;;ACVa;AACb;AACA;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc;AAChE;AACA,gCAAgC,mBAAO,CAAC,6CAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,qBAAqB;AACrB,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,GAAG,uBAAuB,GAAG,iBAAiB,GAAG,aAAa,GAAG,+BAA+B,GAAG,qBAAqB,GAAG,cAAc,GAAG,8BAA8B,GAAG,0BAA0B;AAC3N,eAAe,mBAAO,CAAC,kGAAU;AACjC,sDAAqD,EAAE,qCAAqC,uCAAuC,EAAC;AACpI,0DAAyD,EAAE,qCAAqC,2CAA2C,EAAC;AAC5I,eAAe,mBAAO,CAAC,kGAAU;AACjC,0CAAyC,EAAE,qCAAqC,2BAA2B,EAAC;AAC5G,iDAAgD,EAAE,qCAAqC,kCAAkC,EAAC;AAC1H,2DAA0D,EAAE,qCAAqC,4CAA4C,EAAC;AAC9I,cAAc,mBAAO,CAAC,gGAAS;AAC/B,yCAAwC,EAAE,qCAAqC,yBAAyB,EAAC;AACzG,mBAAmB,mBAAO,CAAC,0GAAc;AACzC,6CAA4C,EAAE,qCAAqC,kCAAkC,EAAC;AACtH,mDAAkD,EAAE,qCAAqC,wCAAwC,EAAC;AAClI,gDAA+C,EAAE,qCAAqC,qCAAqC,EAAC;AAC5H;;;;;;;;;;;AChBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa;AACb;AACA;AACA;AACA;;;;;;;;;;;;ACNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,oBAAoB;AACpB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM,2BAA2B,MAAM;AACtD;AACA,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5Ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,gBAAgB;AAChB,qCAAqC;AACrC,0BAA0B;AAC1B,yBAAyB;AACzB,wBAAwB;AACxB,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAO,CAAC,+DAAS;AACjC,mBAAmB,mBAAO,CAAC,qEAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wBAAwB;AACpC,WAAW,wBAAwB;AACnC,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,wBAAwB;AACpC,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,WAAW,iCAAiC;AAC5C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,WAAW,+BAA+B;AAC1C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gCAAgC;AAC3C,aAAa;AACb;AACA;AACA;AACA;AACA,oCAAoC,GAAG,UAAU,GAAG,mBAAmB,GAAG,UAAU,GAAG;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtIa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa,GAAG,cAAc;AAC9B,kBAAkB;AAClB,qBAAqB;AACrB,qBAAqB;AACrB,gBAAgB,mBAAO,CAAC,+DAAS;AACjC,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,eAAe,mBAAO,CAAC,6DAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS,GAAG,SAAS;AAC7C;AACA,kBAAkB,UAAU,EAAE,iCAAiC,EAAE,qBAAqB,cAAc,gBAAgB,UAAU,6BAA6B,EAAE,OAAO;AACpK;AACA;AACA,mBAAmB,UAAU,IAAI,kCAAkC,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,aAAa,GAAG,WAAW,GAAG,cAAc,GAAG,gDAAgD;AAC/M;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD,6EAA6E,gBAAgB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD,6EAA6E,gBAAgB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,cAAc,+BAA+B;AAC7C;AACA;AACA,cAAc,8BAA8B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB,EAAE,KAAK;AAC3C;AACA;AACA;AACA,cAAc,0CAA0C,EAAE,WAAW,EAAE,KAAK;AAC5E;AACA;AACA,0CAA0C,EAAE;AAC5C;AACA;;;;;;;;;;;AChXa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,GAAG,oBAAoB,GAAG,aAAa;AAC3D,oBAAoB;AACpB,mBAAmB;AACnB,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,iBAAiB,mBAAO,CAAC,iEAAU;AACnC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,OAAO;AACnG;AACA,KAAK;AACL,cAAc,OAAO,GAAG,mBAAmB;AAC3C;AACA,oBAAoB;AACpB,oBAAoB;AACpB;;;;;;;;;;;AC9Da;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB,mBAAmB,mBAAO,CAAC,qEAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;;;;;;;;;;ACvHa;AACb;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,GAAG,gBAAgB,GAAG,sBAAsB;AAC9D,cAAc;AACd,cAAc;AACd,cAAc;AACd,eAAe;AACf,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,qEAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7Na;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,UAAU,GAAG,UAAU,GAAG,aAAa;AACvC,cAAc;AACd,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,UAAU;AACV,UAAU;AACV;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtDa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,gCAAgC,GAAG,yBAAyB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,+BAA+B,GAAG,6BAA6B,GAAG,0BAA0B,GAAG,sCAAsC,GAAG,6BAA6B,GAAG,4BAA4B,GAAG,2BAA2B;AAClZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,EAAE;AACjD;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA,2CAA2C,UAAU,EAAE,QAAQ;AAC/D;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5Ra;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB,8BAA8B;AAC9B,eAAe;AACf;AACA,mBAAmB,mBAAO,CAAC,qEAAY;AACvC,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,iBAAiB,mBAAO,CAAC,iEAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA,qEAAqE,KAAK;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,YAAY,EAAE,kBAAkB;AACrD;AACA;AACA,4BAA4B,cAAc;AAC1C,uBAAuB,EAAE,MAAM,EAAE,IAAI,KAAK;AAC1C;AACA;AACA,kBAAkB,EAAE;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY,EAAE,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;;;;;;;;;;;ACvRa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,eAAe,mBAAO,CAAC,6DAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,sDAAsD;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,iBAAiB;AACjB;;;;;;;;;;;;AChFa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,WAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAwE;AACxF;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;;;;;;;;;;;ACvMa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,qCAAqC,GAAG,sCAAsC,GAAG,0BAA0B,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,gCAAgC,GAAG,YAAY,GAAG,YAAY,GAAG,yBAAyB,GAAG,aAAa,GAAG,yBAAyB,GAAG,aAAa,GAAG,mBAAmB,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,wBAAwB,GAAG,2BAA2B,GAAG,6BAA6B,GAAG,4BAA4B,GAAG,eAAe,GAAG,qBAAqB,GAAG,cAAc,GAAG,aAAa,GAAG,+BAA+B,GAAG,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,0BAA0B,GAAG,mBAAmB,GAAG,uBAAuB,GAAG,6BAA6B,GAAG,8BAA8B,GAAG,0BAA0B,GAAG,aAAa,GAAG,eAAe,GAAG,0BAA0B;AACl8B,qBAAqB,mBAAO,CAAC,6EAAgB;AAC7C,sDAAqD,EAAE,qCAAqC,6CAA6C,EAAC;AAC1I,2CAA0C,EAAE,qCAAqC,kCAAkC,EAAC;AACpH,yCAAwC,EAAE,qCAAqC,gCAAgC,EAAC;AAChH,sDAAqD,EAAE,qCAAqC,6CAA6C,EAAC;AAC1I,0DAAyD,EAAE,qCAAqC,iDAAiD,EAAC;AAClJ,yDAAwD,EAAE,qCAAqC,gDAAgD,EAAC;AAChJ,mDAAkD,EAAE,qCAAqC,0CAA0C,EAAC;AACpI,+CAA8C,EAAE,qCAAqC,sCAAsC,EAAC;AAC5H,sDAAqD,EAAE,qCAAqC,6CAA6C,EAAC;AAC1I,4CAA2C,EAAE,qCAAqC,mCAAmC,EAAC;AACtH,4CAA2C,EAAE,qCAAqC,mCAAmC,EAAC;AACtH,yCAAwC,EAAE,qCAAqC,gCAAgC,EAAC;AAChH,2DAA0D,EAAE,qCAAqC,kDAAkD,EAAC;AACpJ,yCAAwC,EAAE,qCAAqC,gCAAgC,EAAC;AAChH,0CAAyC,EAAE,qCAAqC,iCAAiC,EAAC;AAClH,iDAAgD,EAAE,qCAAqC,wCAAwC,EAAC;AAChI,2CAA0C,EAAE,qCAAqC,kCAAkC,EAAC;AACpH,wDAAuD,EAAE,qCAAqC,+CAA+C,EAAC;AAC9I,yDAAwD,EAAE,qCAAqC,gDAAgD,EAAC;AAChJ,uDAAsD,EAAE,qCAAqC,8CAA8C,EAAC;AAC5I,oDAAmD,EAAE,qCAAqC,2CAA2C,EAAC;AACtI,yCAAwC,EAAE,qCAAqC,gCAAgC,EAAC;AAChH,0CAAyC,EAAE,qCAAqC,iCAAiC,EAAC;AAClH,0CAAyC,EAAE,qCAAqC,iCAAiC,EAAC;AAClH,+CAA8C,EAAE,qCAAqC,sCAAsC,EAAC;AAC5H,yCAAwC,EAAE,qCAAqC,gCAAgC,EAAC;AAChH,qDAAoD,EAAE,qCAAqC,4CAA4C,EAAC;AACxI,yCAAwC,EAAE,qCAAqC,gCAAgC,EAAC;AAChH,qDAAoD,EAAE,qCAAqC,4CAA4C,EAAC;AACxI,wCAAuC,EAAE,qCAAqC,+BAA+B,EAAC;AAC9G,wCAAuC,EAAE,qCAAqC,+BAA+B,EAAC;AAC9G,4DAA2D,EAAE,qCAAqC,mDAAmD,EAAC;AACtJ,iDAAgD,EAAE,qCAAqC,wCAAwC,EAAC;AAChI,gDAA+C,EAAE,qCAAqC,uCAAuC,EAAC;AAC9H,gDAA+C,EAAE,qCAAqC,uCAAuC,EAAC;AAC9H,gDAA+C,EAAE,qCAAqC,uCAAuC,EAAC;AAC9H,sDAAqD,EAAE,qCAAqC,6CAA6C,EAAC;AAC1I,kEAAiE,EAAE,qCAAqC,yDAAyD,EAAC;AAClK,iEAAgE,EAAE,qCAAqC,wDAAwD,EAAC;AAChK,6CAA4C,EAAE,qCAAqC,oCAAoC,EAAC;AACxH;;;;;;;;;;;AC1Da;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAO,CAAC,mEAAW;AACrC,mBAAmB,mBAAO,CAAC,qEAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe;AACf;;;;;;;;;;;ACjGa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,iBAAiB,mBAAO,CAAC,iEAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gCAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,SAAS;AACT;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACnFa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,mBAAmB,mBAAO,CAAC,qEAAY;AACvC,mBAAmB,mBAAO,CAAC,qEAAY;AACvC,iBAAiB,mBAAO,CAAC,iEAAU;AACnC,kBAAkB,mBAAO,CAAC,mEAAW;AACrC,0BAA0B,mBAAO,CAAC,mFAAmB;AACrD,kBAAkB,mBAAO,CAAC,mEAAW;AACrC,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,iBAAiB,mBAAO,CAAC,iEAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gCAAgC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,MAAM;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,8CAA8C,yBAAyB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,8BAA8B,yCAAyC,EAAE,QAAQ;AACjF;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,YAAY;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yCAAyC,EAAE,QAAQ;AACjF;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;;;;;;;;;;;ACzba;AACb;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa;AACb,aAAa,gBAAgB,mBAAO,CAAC,gEAAgB;AACrD;;;;;;;;;;;ACrCa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY,GAAG,YAAY;AAC3B,aAAa,mBAAO,CAAC,+DAAe;AACpC,wCAAuC,EAAE,qCAAqC,uBAAuB,EAAC;AACtG,wCAAuC,EAAE,qCAAqC,uBAAuB,EAAC;AACtG;;;;;;;;;;;ACpBa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mCAAmC,GAAG,4BAA4B,GAAG,6BAA6B,GAAG,0BAA0B,GAAG,sBAAsB,GAAG,sCAAsC;AACjM,sBAAsB;AACtB,qBAAqB;AACrB,0BAA0B;AAC1B,oBAAoB;AACpB,oBAAoB;AACpB,8BAA8B;AAC9B,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,oBAAoB,mBAAO,CAAC,uEAAa;AACzC,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,wBAAwB,mBAAO,CAAC,+EAAiB;AACjD,iBAAiB,mBAAO,CAAC,iEAAU;AACnC,sCAAsC;AACtC,sBAAsB;AACtB,0BAA0B;AAC1B;AACA,6BAA6B,kBAAkB;AAC/C,4BAA4B;AAC5B;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB,GAAG,+BAA+B;AACzE,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB,GAAG,UAAU;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,EAAE;AAClC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gEAAgE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1Ja;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,UAAU,GAAG,aAAa,GAAG,cAAc,GAAG,YAAY;AAC1D,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAO,CAAC,yEAAc;AAC3C,mBAAmB,mBAAO,CAAC,qEAAY;AACvC,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,GAAG,IAAI,KAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,aAAa;AAC1E,mDAAmD,kDAAkD;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,sEAAsE;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,uBAAuB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,mCAAmC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,yBAAyB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,yBAAyB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,oCAAoC;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,WAAW;AAC/C;AACA;AACA,uBAAuB,OAAO,GAAG,WAAW;AAC5C;AACA,4BAA4B,MAAM,IAAI,2BAA2B;AACjE;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpsBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,qBAAqB,GAAG,wBAAwB,GAAG,eAAe,GAAG,YAAY;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,qEAAY;AACvC,oBAAoB,mBAAO,CAAC,uEAAa;AACzC,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,qBAAqB,mBAAO,CAAC,yEAAc;AAC3C,kBAAkB,mBAAO,CAAC,mEAAW;AACrC,0BAA0B,mBAAO,CAAC,mFAAmB;AACrD,0BAA0B,mBAAO,CAAC,mFAAmB;AACrD,qBAAqB,mBAAO,CAAC,yEAAc;AAC3C,iBAAiB,mBAAO,CAAC,iEAAU;AACnC,cAAc,mBAAO,CAAC,2DAAO;AAC7B,iBAAiB,mBAAO,CAAC,iEAAU;AACnC,kBAAkB,mBAAO,CAAC,mEAAW;AACrC,iBAAiB,mBAAO,CAAC,iEAAU;AACnC;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,8BAA8B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,8BAA8B,yBAAyB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,sCAAsC,sBAAsB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,gCAAgC;AAChC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2BAA2B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA,wCAAwC,eAAe;AACvD;AACA;AACA;AACA;AACA;AACA,sEAAsE,GAAG,EAAE,kBAAkB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC,kCAAkC,gCAAgC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI;AACxE;AACA;AACA,gCAAgC,SAAS,EAAE,MAAM,EAAE,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS,EAAE,eAAe,EAAE,IAAI;AAC/D;AACA;AACA,+BAA+B,SAAS,EAAE,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,WAAW,EAAE,SAAS,EAAE,MAAM;AAClE;AACA;AACA,oCAAoC,WAAW,EAAE,MAAM;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO,EAAE,IAAI;AACnD;AACA;AACA,sCAAsC,MAAM;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,kBAAkB;AACzF;AACA;AACA,iCAAiC,aAAa,EAAE,QAAQ,EAAE,kBAAkB;AAC5E;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,MAAM;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACv8Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,iBAAiB,mBAAO,CAAC,iEAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;;;;;;;;;;;ACtJa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,GAAG,mBAAmB,GAAG,mBAAmB;AAC9D,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,iBAAiB,mBAAO,CAAC,iEAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,eAAe;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,8CAA8C,eAAe;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,YAAY;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;;;;;;;;;;ACtIa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,GAAG,eAAe;AAClC,mBAAmB;AACnB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,EAAE;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;;;;;;;;;;;ACzJa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,kBAAkB;AACpC,wBAAwB;AACxB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAO,CAAC,uEAAa;AACzC,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,mBAAmB,mBAAO,CAAC,qEAAY;AACvC,eAAe,mBAAO,CAAC,6DAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS,KAAK,EAAE;AAC3C,kBAAkB,KAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO,gBAAgB,eAAe,IAAI,cAAc;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,MAAM,KAAK,iCAAiC;AACnF,8BAA8B,UAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB,GAAG,+BAA+B;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,iBAAiB;AACjB;AACA;AACA,eAAe;AACf;;;;;;;;;;;AC3Ra;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,iBAAiB,GAAG,aAAa;AAC1E,2BAA2B;AAC3B,mBAAmB;AACnB,qBAAqB;AACrB,oBAAoB;AACpB,oBAAoB;AACpB,gBAAgB;AAChB,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,qEAAY;AACvC,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,qBAAqB,mBAAO,CAAC,yEAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,iBAAiB;AACjB,YAAY;AACZ,UAAU,oCAAoC;AAC9C,UAAU,oCAAoC;AAC9C;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7Ea;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa;AACb,iBAAiB,mBAAO,CAAC,qEAAY;AACrC,yCAAwC,EAAE,qCAAqC,4BAA4B,EAAC;AAC5G;;;;;;;;;;;;ACLa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,GAAG,YAAY;AAClC,cAAc;AACd,cAAc;AACd,eAAe;AACf,aAAa;AACb,gBAAgB;AAChB,gBAAgB;AAChB,qBAAqB;AACrB,eAAe;AACf,eAAe;AACf,cAAc;AACd,eAAe;AACf,aAAa;AACb,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,qEAAY;AACvC,iBAAiB,mBAAO,CAAC,iEAAU;AACnC;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA,aAAa;AACb;AACA,gBAAgB,OAAO;AACvB;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,UAAU;AACzC;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sBAAsB;AAChD,SAAS;AACT;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5Pa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf;AACA,eAAe;AACf;;;;;;;;;;;;ACLa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB,oBAAoB;AACpB,iBAAiB;AACjB,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,oBAAoB,mBAAO,CAAC,uEAAa;AACzC,kBAAkB,mBAAO,CAAC,mEAAW;AACrC,qBAAqB,mBAAO,CAAC,yEAAc;AAC3C,mBAAmB,mBAAO,CAAC,qEAAY;AACvC,eAAe,mBAAO,CAAC,6DAAQ;AAC/B,kBAAkB,mBAAO,CAAC,mEAAW;AACrC,iBAAiB,mBAAO,CAAC,iEAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA,oBAAoB,OAAO,WAAW,8BAA8B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO,WAAW,0BAA0B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO,cAAc,0BAA0B,IAAI,IAAI;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sCAAsC,KAAK,EAAE;AAChE;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,EAAE;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS,IAAI,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,OAAO;AACxD;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;;;;;;;;;;;ACzTa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;;;;;;;;;;ACxEa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa;AACb,gBAAgB,mBAAO,CAAC,2DAAS;AACjC,gBAAgB,mBAAO,CAAC,2DAAS;AACjC,iBAAiB,mBAAO,CAAC,6DAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sCAAsC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,WAAW;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,8DAA8D;AAC9D;AACA;AACA;AACA,aAAa;AACb;;;;;;;;;;;AC/Ha;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;;;;;;;;;;AC3Sa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,qBAAqB,GAAG,mBAAmB;AAC7D,gBAAgB,mBAAO,CAAC,2DAAS;AACjC,+BAA+B,mBAAO,CAAC,yDAAQ;AAC/C,gBAAgB,mBAAO,CAAC,2DAAS;AACjC,gBAAgB,mBAAO,CAAC,2DAAS;AACjC,iBAAiB,mBAAO,CAAC,6DAAU;AACnC,gBAAgB,mBAAO,CAAC,2DAAS;AACjC,mBAAmB;AACnB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,WAAW;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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A,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,YAAY,SAAS;AACrB,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,aAAa,cAAc,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,qBAAqB,sBAAsB,sBAAsB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;;;;;;;;;;ACzOa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,gBAAgB,mBAAO,CAAC,2DAAS;AACjC,gBAAgB,mBAAO,CAAC,2DAAS;AACjC,+BAA+B,mBAAO,CAAC,yDAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;;;;;;;;;;;AC7Ea;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,cAAc;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,OAAO;AACf;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO;AACX;AACA;;;;;;;;;;;AC1Da;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf;AACA,eAAe;AACf;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY,GAAG,YAAY;AAC3B;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAa;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;AACZ;;;;;;;;;;;ACzIa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,yBAAyB,mBAAO,CAAC,uFAA2B;AAC5D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iEAAiE,yBAAyB;AAC1F,aAAa;AACb;AACA;;;;;;;;;;;ACnBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY;AACZ,gBAAgB;AAChB,kBAAkB;AAClB,qBAAqB;AACrB,iBAAiB;AACjB,2BAA2B;AAC3B,qBAAqB;AACrB,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,0DAAa;AACxC,qBAAqB,mBAAO,CAAC,sEAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,qCAAqC;AACrC,8BAA8B;AAC9B,6CAA6C;AAC7C,+BAA+B;AAC/B,aAAa;AACb;AACA;AACA,YAAY,uCAAuC;AACnD,kCAAkC;AAClC,8BAA8B;AAC9B;AACA;AACA,+BAA+B;AAC/B,kCAAkC,wBAAwB;AAC1D;AACA;AACA;AACA,4BAA4B;AAC5B,sBAAsB;AACtB;AACA;AACA,sDAAsD;AACtD,gCAAgC;AAChC,6BAA6B;AAC7B,qCAAqC;AACrC,iCAAiC;AACjC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA,6BAA6B,kBAAkB;AAC/C;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qBAAqB;AAClD;AACA,oBAAoB,gDAAgD;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qBAAqB;AAClD;AACA,uBAAuB;AACvB,oBAAoB,+BAA+B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA,wBAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,sDAAsD,OAAO;AAC7D;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,wDAAwD;AACxD;AACA;AACA;AACA,iCAAiC,eAAe;AAChD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA,gCAAgC,gBAAgB;AAChD;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa,mBAAmB;AAChC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,MAAM;AACtD;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA,0CAA0C,MAAM;AAChD;AACA;AACA;AACA,qCAAqC,GAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,GAAG;AACxC;AACA,0CAA0C;AAC1C,aAAa;AACb;AACA;;;;;;;;;;;AC3da;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB,0BAA0B;AAC1B,0BAA0B;AAC1B,qBAAqB;AACrB,kBAAkB;AAClB,oBAAoB;AACpB,mBAAmB,mBAAO,CAAC,0DAAa;AACxC,qBAAqB,mBAAO,CAAC,sEAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,QAAQ;AACrC,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8CAA8C;AAC1D;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,OAAO;AAChC;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6EAA6E;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,YAAY,6BAA6B;AACzC;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA,mCAAmC;AACnC,iDAAiD;AACjD,iBAAiB;AACjB;AACA;AACA,mBAAmB;AACnB,8EAA8E,gBAAgB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mDAAmD,0BAA0B;AAC7E,yCAAyC;AACzC;AACA;AACA;AACA,SAAS;AACT,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,yCAAyC,cAAc,sCAAsC;AAC7F;AACA,SAAS;AACT;AACA;AACA;;;;;;;;;;;AClNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB;AACpB,WAAW;AACX,WAAW;AACX,YAAY;AACZ,cAAc;AACd,qBAAqB;AACrB,cAAc;AACd,qBAAqB;AACrB,aAAa;AACb,qBAAqB;AACrB,aAAa;AACb,kBAAkB;AAClB,kBAAkB;AAClB,eAAe;AACf,aAAa;AACb,iBAAiB;AACjB,kBAAkB;AAClB,2BAA2B;AAC3B,2BAA2B;AAC3B,wBAAwB;AACxB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,0DAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,4BAA4B;AAC5B,qCAAqC;AACrC,iCAAiC;AACjC;AACA,iCAAiC;AACjC,mCAAmC;AACnC,qCAAqC;AACrC,qCAAqC;AACrC,2CAA2C;AAC3C,2CAA2C;AAC3C,qCAAqC;AACrC,qCAAqC;AACrC,2CAA2C;AAC3C,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,8BAA8B;AAC9B,mCAAmC;AACnC;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA,uDAAuD;AACvD,2CAA2C;AAC3C;AACA;AACA,2BAA2B;AAC3B,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uCAAuC;AACnD;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACziBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,WAAW,GAAG,cAAc;AAC5B,wBAAwB;AACxB,sBAAsB;AACtB,oBAAoB;AACpB,sBAAsB;AACtB,2BAA2B;AAC3B,YAAY;AACZ,aAAa;AACb,yBAAyB;AACzB,0BAA0B;AAC1B,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAO,CAAC,mEAAuB;AACjD,gBAAgB,mBAAO,CAAC,kEAAqB;AAC7C,mBAAmB,mBAAO,CAAC,0DAAa;AACxC,mBAAmB,mBAAO,CAAC,kEAAY;AACvC,qBAAqB,mBAAO,CAAC,sEAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F;AAC7F;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,gBAAgB,+BAA+B;AAC/C;AACA,gBAAgB,+BAA+B;AAC/C;AACA;AACA,gBAAgB,2BAA2B;AAC3C,gBAAgB,2BAA2B;AAC3C;AACA;AACA,iBAAiB;AACjB,KAAK;AACL;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAkB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,SAAS,QAAQ,WAAW;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,YAAY,SAAS;AACrB;AACA,YAAY,8BAA8B;AAC1C,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,YAAY,OAAO;AACnB;AACA,kCAAkC,yCAAyC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iDAAiD,WAAW;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,gDAAgD;AAChD;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qDAAqD,OAAO,wBAAwB,MAAM,kBAAkB,OAAO;AACnH;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,kCAAkC;AAClC,gEAAgE;AAChE;AACA;AACA;AACA;AACA,gCAAgC;AAChC,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,MAAM;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,IAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,oBAAoB,sBAAsB;AAC1C,0DAA0D;AAC1D,qCAAqC;AACrC;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C,oBAAoB,sBAAsB;AAC1C,0DAA0D;AAC1D;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,iEAAiE;AACjE,6BAA6B;AAC7B;AACA,8BAA8B,wBAAwB;AACtD;AACA,wBAAwB,uBAAuB;AAC/C,wBAAwB,iBAAiB;AACzC,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C,wBAAwB,SAAS,mDAAmD;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mCAAmC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA,kBAAkB;AAClB,2DAA2D;AAC3D;AACA;AACA;AACA,uCAAuC;AACvC,iCAAiC;AACjC,iCAAiC;AACjC,6BAA6B;AAC7B,8BAA8B;AAC9B,4CAA4C;AAC5C;AACA,sBAAsB;AACtB,iCAAiC;AACjC,+BAA+B;AAC/B,8BAA8B;AAC9B,kCAAkC;AAClC,+BAA+B;AAC/B,gCAAgC;AAChC,8BAA8B;AAC9B,8BAA8B;AAC9B,oCAAoC;AACpC,+BAA+B;AAC/B,wCAAwC;AACxC,+BAA+B;AAC/B,gCAAgC;AAChC,uCAAuC;AACvC,uCAAuC;AACvC;AACA,yBAAyB,SAAS;AAClC,+BAA+B;AAC/B,sCAAsC;AACtC,yCAAyC;AACzC,6CAA6C;AAC7C,oCAAoC;AACpC,oCAAoC;AACpC,qCAAqC;AACrC,yCAAyC;AACzC,0CAA0C;AAC1C;AACA,iBAAiB;AACjB;AACA;AACA;AACA,2CAA2C;AAC3C,uCAAuC;AACvC;AACA,iCAAiC;AACjC,sCAAsC;AACtC,oCAAoC;AACpC,sCAAsC;AACtC,kCAAkC;AAClC,uCAAuC;AACvC,+CAA+C,kBAAkB;AACjE,yCAAyC;AACzC,2CAA2C;AAC3C,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,8BAA8B;AAC9B,2BAA2B;AAC3B,gCAAgC;AAChC,mCAAmC;AACnC,8BAA8B;AAC9B,8DAA8D;AAC9D,8BAA8B;AAC9B,2BAA2B;AAC3B,2BAA2B;AAC3B,8BAA8B;AAC9B,gCAAgC;AAChC,gCAAgC;AAChC,gCAAgC;AAChC,8BAA8B;AAC9B,gCAAgC;AAChC,8BAA8B;AAC9B,gBAAgB,iBAAiB,uBAAuB;AACxD,4BAA4B;AAC5B,8BAA8B;AAC9B,sCAAsC;AACtC,wCAAwC;AACxC,gDAAgD;AAChD,uCAAuC;AACvC;AACA,gCAAgC;AAChC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,YAAY,KAAK;AACjB;AACA,+DAA+D,oDAAoD;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yCAAyC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAA8C;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,2BAA2B,8DAA8D;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,2BAA2B,OAAO;AACvF;AACA;AACA,0CAA0C;AAC1C;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,YAAY,SAAS;AACrB,YAAY,mCAAmC;AAC/C,YAAY,wDAAwD;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,MAAM;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,0FAA0F;AAC1F,2CAA2C;AAC3C,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE,qDAAqD;AACrD;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8BAA8B;AAC9C,wDAAwD;AACxD;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA,+DAA+D;AAC/D,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA,wBAAwB;AACxB,kCAAkC;AAClC,yDAAyD;AACzD,sCAAsC;AACtC;AACA;AACA,4DAA4D;AAC5D;AACA;AACA,oEAAoE;AACpE;AACA;AACA,mCAAmC;AACnC,+BAA+B;AAC/B;AACA,sDAAsD;AACtD;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,gBAAgB,cAAc,qCAAqC;AACnE;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,sBAAsB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B,8CAA8C;AAC9C,kCAAkC;AAClC,0CAA0C;AAC1C,0CAA0C;AAC1C,+EAA+E;AAC/E;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,kCAAkC;AAClC,oDAAoD;AACpD;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,+BAA+B;AAC/B,KAAK;AACL;AACA;AACA;AACA,YAAY,oCAAoC;AAChD;AACA;AACA;AACA;AACA;;;;;;;;;;;ACl5Ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,mBAAmB,GAAG,wBAAwB,GAAG,eAAe,GAAG,iBAAiB;AAC5G;AACA;AACA;AACA;AACA,cAAc,uBAAuB;AACrC;AACA;AACA;AACA,kBAAkB,mBAAO,CAAC,mEAAuB;AACjD,mBAAmB,mBAAO,CAAC,qEAAwB;AACnD,2BAA2B,mBAAO,CAAC,yEAAoB;AACvD,2BAA2B,mBAAO,CAAC,2FAA6B;AAChE,qBAAqB,mBAAO,CAAC,+EAAuB;AACpD,yBAAyB,mBAAO,CAAC,uFAA2B;AAC5D,mBAAmB,mBAAO,CAAC,yDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,eAAe;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB,WAAW,uBAAuB;AAClC;AACA;AACA;AACA;AACA;AACA,iBAAiB,yCAAyC,gEAAgE;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA,iCAAiC,aAAa;AAC9C;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,wBAAwB;AACxB;AACA;AACA;AACA;AACA,mCAAmC,MAAM;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAK;AACjB;AACA,YAAY,uBAAuB,kCAAkC;AACrE,mEAAmE;AACnE,iEAAiE;AACjE,wDAAwD;AACxD;AACA,YAAY,uBAAuB;AACnC,oCAAoC;AACpC,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA,oCAAoC,wBAAwB;AAC5D,4CAA4C,2BAA2B;AACvE;AACA;AACA,6CAA6C,4BAA4B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB,WAAW,uBAAuB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,wBAAwB;AACxB,YAAY,OAAO;AACnB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,8BAA8B,mBAAmB,kCAAkC;AACnF,mBAAmB;AACnB,8BAA8B,mBAAmB,kCAAkC;AACnF,qBAAqB;AACrB;;;;;;;;;;;ACxSa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB,GAAG,eAAe,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,eAAe,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,eAAe,GAAG,cAAc;AAC/N,aAAa;AACb,eAAe;AACf,gBAAgB;AAChB,2BAA2B;AAC3B,mBAAmB;AACnB,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,0BAA0B;AAC1B,mBAAmB;AACnB,kBAAkB;AAClB,iBAAiB;AACjB,oBAAoB;AACpB,eAAe;AACf,gBAAgB;AAChB,cAAc;AACd,cAAc;AACd,cAAc;AACd,sBAAsB;AACtB,sBAAsB;AACtB,cAAc;AACd,uBAAuB;AACvB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,qEAAwB;AACnD,iBAAiB,mBAAO,CAAC,qEAAwB;AACjD,0CAAyC,EAAE,qCAAqC,6BAA6B,EAAC;AAC9G,2CAA0C,EAAE,qCAAqC,8BAA8B,EAAC;AAChH,8CAA6C,EAAE,qCAAqC,iCAAiC,EAAC;AACtH,+CAA8C,EAAE,qCAAqC,kCAAkC,EAAC;AACxH,+CAA8C,EAAE,qCAAqC,kCAAkC,EAAC;AACxH,8CAA6C,EAAE,qCAAqC,iCAAiC,EAAC;AACtH,2CAA0C,EAAE,qCAAqC,8BAA8B,EAAC;AAChH,+CAA8C,EAAE,qCAAqC,kCAAkC,EAAC;AACxH,+CAA8C,EAAE,qCAAqC,kCAAkC,EAAC;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,MAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,MAAM;AAC1C,+CAA+C,OAAO;AACtD,sCAAsC,IAAI,YAAY,aAAa;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,SAAS,cAAc,UAAU,cAAc,EAAE;AACrH;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,gDAAgD;AAChD,0BAA0B;AAC1B,0BAA0B;AAC1B,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,iCAAiC;AACjC,iBAAiB;AACjB;AACA;AACA,iCAAiC;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW,WAAW,YAAY,IAAI;AACpD,kCAAkC,oBAAoB,IAAI,aAAa,GAAG;AAC1E;AACA,kCAAkC,UAAU,IAAI,SAAS;AACzD,kCAAkC,oBAAoB,IAAI,SAAS;AACnE,kCAAkC,2BAA2B;AAC7D,kCAAkC,wBAAwB;AAC1D;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,UAAU,yBAAyB,aAAa,QAAQ,QAAQ;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACvWa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,cAAc;AAC9F,oBAAoB;AACpB,WAAW;AACX,WAAW;AACX;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,yDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yBAAyB;AACzC;AACA,0BAA0B,UAAU;AACpC;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+BAA+B;AAC/C,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qDAAqD;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;;;;;;;;;;ACjKa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa,GAAG,aAAa,GAAG,aAAa,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,GAAG,eAAe,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa;AACzT,WAAW;AACX,eAAe;AACf,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,eAAe;AACf;AACA,eAAe;AACf;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;;;;;ACzFa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,cAAc;AACd;;;;;;;;;;;ACJa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY,GAAG,YAAY;AAC3B;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,yDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,gBAAgB,yDAAyD;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB;AACA;AACA;AACA,YAAY;AACZ,mBAAmB;AACnB;;;;;;;;;;;AC1Fa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,iBAAiB,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY;AAC/F;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,qDAAU;AACnC,mBAAmB,mBAAO,CAAC,yDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA,cAAc,gBAAgB;AAC9B,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA,cAAc,aAAa;AAC3B,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA,0DAA0D;AAC1D,sDAAsD;AACtD,kEAAkE;AAClE,4BAA4B,QAAQ;AACpC;AACA,2FAA2F;AAC3F;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA,2FAA2F;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;;;;;;;;;;AC9Ra;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,mBAAmB;AACnB;AACA;AACA;AACA;AACA,kBAAkB,mBAAO,CAAC,uDAAW;AACrC;AACA,mBAAmB,mBAAO,CAAC,yDAAY;AACvC;AACA;AACA;AACA,6CAA6C,0BAA0B;AACvE,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA,oDAAoD,+BAA+B;AACnF;AACA;AACA,YAAY,6BAA6B;AACzC,cAAc;AACd;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,uBAAuB;AAC1E;AACA;AACA,YAAY,wCAAwC;AACpD,cAAc;AACd;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA;AACA;;;;;;;;;;;ACpGa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAO,CAAC,2DAAa;AACzC;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;;;;;;;;;;;ACfa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,GAAG,kBAAkB,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc;AACzN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,qDAAU;AACnC,YAAY,mBAAO,CAAC,uDAAW;AAC/B,mBAAmB,mBAAO,CAAC,yDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yBAAyB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,yBAAyB;AACvC,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAiE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iEAAiE;AAC/E;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;;;;;;;;;;AC/Xa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAO,CAAC,uDAAW;AACrC;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;;;;;;;;;;;ACtBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,cAAc;AACpN,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAO,CAAC,uDAAW;AACrC;AACA,mBAAmB,mBAAO,CAAC,yDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,YAAY;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA,wBAAwB,QAAQ;AAChC;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC,4BAA4B,QAAQ;AACpC;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA,0BAA0B,UAAU;AACpC;AACA,4BAA4B,UAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+BAA+B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,4CAA4C,UAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iDAAiD;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,gBAAgB;AAChB;AACA,gBAAgB;AAChB;AACA,gBAAgB;AAChB;AACA,gBAAgB;AAChB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB,wFAAwF;AACxF;AACA,gBAAgB;AAChB;AACA,gBAAgB;AAChB;;;;;;;;;;;AC9Oa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc;AACrJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAO,CAAC,uDAAW;AACrC;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;;;;;;;;;;;AC5Ba;AACb;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kCAAkC,GAAG,+BAA+B,GAAG,uBAAuB,GAAG,YAAY,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,iBAAiB,GAAG,YAAY;AAC/M,eAAe;AACf,eAAe;AACf,cAAc;AACd,aAAa;AACb,eAAe;AACf,eAAe;AACf,UAAU;AACV,WAAW;AACX,aAAa;AACb,kBAAkB;AAClB,YAAY;AACZ,YAAY;AACZ,gBAAgB;AAChB,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;AAClB,iBAAiB;AACjB,mBAAmB;AACnB,mBAAmB;AACnB,eAAe;AACf,uBAAuB;AACvB,mBAAmB;AACnB,iBAAiB;AACjB,oBAAoB;AACpB,uBAAuB;AACvB,mBAAmB;AACnB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,oEAAsB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,aAAa;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,+BAA+B;AAC/B;AACA,qCAAqC;AACrC;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA,6BAA6B,mBAAmB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,+BAA+B;AAC/B,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACxTA;;AAEA,cAAc,mBAAO,CAAC,kEAAO;;AAE7B,cAAc,wFAA4B;AAC1C,YAAY,mBAAO,CAAC,kEAAa;AACjC,iBAAiB,mBAAO,CAAC,4EAAkB;AAC3C,gBAAgB,mBAAO,CAAC,0EAAiB;AACzC,gBAAgB,mBAAO,CAAC,0EAAiB;;;;;;;;;;;ACRzC,WAAW,mBAAO,CAAC,mDAAS;AAC5B,eAAe,mBAAO,CAAC,6DAAU;;AAEjC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,yFAA8B;AAC1C,4CAA4C;AAC5C,iCAAiC;AACjC,QAAQ;AACR;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;AC5DA,eAAe,mBAAO,CAAC,6DAAU;AACjC,eAAe,8FAA2B;AAC1C,aAAa,4EAAwB;;AAErC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACnHA;;AAEA,gBAAgB,oGAA8B;AAC9C,qBAAqB,qGAAiC;AACtD,qBAAqB,qGAAiC;AACtD,YAAY,mBAAO,CAAC,4DAAQ;;;;;;;;;;;ACL5B,eAAe,8FAA2B;AAC1C,oBAAoB,mGAAgC;AACpD,oBAAoB,mGAAgC;AACpD,aAAa,mBAAO,CAAC,wEAAqB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACznBA,eAAe,mBAAO,CAAC,6DAAU;;AAEjC;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;;AAEA;AACA;;AAEA,WAAW;AACX;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;;;;;;;;;;ACxHA,gBAAgB,mBAAO,CAAC,wEAAc;;AAEtC,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;;;;;;;;;;ACzCjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA,gBAAgB,mBAAO,CAAC,+DAAO;;;;;;;;;;;AClB/B,eAAe,mBAAO,CAAC,6DAAU;;AAEjC,WAAW,mBAAO,CAAC,sDAAY;AAC/B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,IAAI;AACJ;AACA;AACA;;AAEA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACnUA;;AAEA,eAAe,mBAAO,CAAC,8DAAO;AAC9B,eAAe,mBAAO,CAAC,8DAAO;;;;;;;;;;;ACH9B,eAAe,mBAAO,CAAC,6DAAU;AACjC,aAAa,4EAAwB;;AAErC,iBAAiB,mBAAO,CAAC,8DAAO;;AAEhC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;AChDA,eAAe,mBAAO,CAAC,6DAAU;AACjC,aAAa,4EAAwB;;AAErC,WAAW,mBAAO,CAAC,sDAAY;AAC/B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,YAAY;AAC3C;;AAEA;AACA;AACA;;AAEA,kDAAkD,OAAO;AACzD;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA,IAAI;AACJ;AACA,oBAAoB,eAAe;AACnC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA,iBAAiB,eAAe;AAChC;AACA;;AAEA;AACA;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,YAAY;AAChC;;AAEA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,YAAY,iBAAiB;AAC7B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;;;;;;;;;;ACtSA;;AAEA,eAAe,mBAAO,CAAC,8DAAO;AAC9B,eAAe,mBAAO,CAAC,8DAAO;;;;;;;;;;;ACH9B,eAAe,mBAAO,CAAC,6DAAU;;AAEjC,iBAAiB,mBAAO,CAAC,8DAAO;;AAEhC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;;;;;;;;;;;;ACpBA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,eAAe,mDAAwB;AACvC;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA,0DAA0D,mBAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,SAAS;AACjC;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;;AAEA,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;AACA,MAAM;AACN,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;;AAEA,aAAa,eAAe;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,gBAAgB;AACtC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;;AAEA,sBAAsB,OAAO;AAC7B;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;;AAEA,mCAAmC;AACnC,uCAAuC;AACvC;;AAEA;AACA,sBAAsB,OAAO;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,8BAA8B,cAAc;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,QAAQ;AACxC;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,+CAA+C;AACnE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,sBAAsB,sCAAsC;AAC5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,QAAQ;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,QAAQ;AACrC;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,MAA6B;;;;;;;;;;;;;;ACr3GhC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,sBAAsB,2BAA2B,oGAAoG,mBAAmB,iBAAiB,sHAAsH;AAC/S,4CAA4C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD;AAC/P,8DAA8D,sEAAsE,8DAA8D,kDAAkD,iBAAiB,GAAG;AACxQ,+BAA+B,uCAAuC;AACtE,qCAAqC,iEAAiE,sCAAsC,0BAA0B,+CAA+C,2CAA2C,uEAAuE;AACvU,kDAAkD,0CAA0C;AAC5F,eAAe,mBAAO,CAAC,yEAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAO,CAAC,yGAAmC;AAChE,gBAAgB,mBAAO,CAAC,0CAAO;AAC/B;AACA,qBAAqB,uEAAsB;AAC3C;AACA;AACA,mBAAmB,mBAAO,CAAC,wEAAwB;AACnD,eAAe,mBAAO,CAAC,gEAAoB;AAC3C,0BAA0B,mBAAO,CAAC,kEAAqB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,6FAA6B;AACxD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,iBAAiB,OAAO,eAAe,OAAO,eAAe,OAAO,WAAW,OAAO;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sEAAsE,aAAa;AACnF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,6FAA6F,eAAe;AAC5G;AACA;AACA;AACA;AACA;AACA,6FAA6F,eAAe;AAC5G;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,6FAA6F,eAAe;AAC5G;AACA;AACA;AACA;AACA;AACA,6FAA6F,eAAe;AAC5G;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yEAAyE,eAAe;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;AC7kBA;AACA;;AAEa;;AAEb,yBAAyB,wBAAwB,oCAAoC,yCAAyC,kCAAkC,0DAA0D,0BAA0B;AACpP,4BAA4B,gBAAgB,sBAAsB,OAAO,kDAAkD,sDAAsD,8BAA8B,mJAAmJ,qEAAqE,KAAK;AAC5a,4CAA4C,2BAA2B,kBAAkB,kCAAkC,oEAAoE,KAAK,OAAO,oBAAoB;AAC/N,kDAAkD,0CAA0C;AAC5F,4CAA4C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD;AAC/P,8DAA8D,sEAAsE,8DAA8D,kDAAkD,iBAAiB,GAAG;AACxQ,+BAA+B,uCAAuC;AACtE,qCAAqC,iEAAiE,sCAAsC,0BAA0B,+CAA+C,2CAA2C,uEAAuE;AACvU,2CAA2C,+DAA+D,6EAA6E,yEAAyE,eAAe,uDAAuD,GAAG,+CAA+C,iBAAiB,GAAG;AAC5Y,iCAAiC,6DAA6D,yCAAyC,8CAA8C,iCAAiC,mDAAmD,2DAA2D,OAAO,yCAAyC;AACpX,kDAAkD,0EAA0E,eAAe,4BAA4B,mFAAmF;AAC1P,wCAAwC,uBAAuB,yFAAyF;AACxJ,mCAAmC,gEAAgE,sDAAsD,+DAA+D,mCAAmC,6EAA6E,qCAAqC,iDAAiD,8BAA8B,qBAAqB,0EAA0E,qDAAqD,eAAe,yEAAyE,GAAG,2CAA2C;AACttB,2CAA2C,mCAAmC,yCAAyC,OAAO,wDAAwD,gBAAgB,uBAAuB,kDAAkD,kCAAkC,uDAAuD,sBAAsB;AAC9X,uCAAuC,wEAAwE,0CAA0C,8CAA8C,MAAM,4EAA4E,IAAI,eAAe,YAAY;AACxT,iCAAiC;AACjC,iCAAiC,0GAA0G,iBAAiB,aAAa;AACzK,8BAA8B,uGAAuG,mDAAmD;AACxL,sBAAsB,2BAA2B,oGAAoG,mBAAmB,iBAAiB,sHAAsH;AAC/S,eAAe,mBAAO,CAAC,0CAAO;AAC9B;AACA,gBAAgB,mBAAO,CAAC,iEAAW;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,sBAAsB,OAAO,WAAW,OAAO,gBAAgB,OAAO;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,aAAa,IAAI,aAAa;AAClE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,UAAU,OAAO,WAAW,OAAO;AACnC;AACA;AACA,YAAY,OAAO,WAAW,OAAO,yBAAyB,OAAO;AACrE;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,UAAU;AACnE;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA,CAAC;AACD;;;;;;;;;;;AC5bA;AACA;;AAEA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA,sBAAsB,2BAA2B,oGAAoG,mBAAmB,iBAAiB,sHAAsH;AAC/S,4CAA4C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD;AAC/P,8DAA8D,sEAAsE,8DAA8D,kDAAkD,iBAAiB,GAAG;AACxQ,+BAA+B,uCAAuC;AACtE,qCAAqC,iEAAiE,sCAAsC,0BAA0B,+CAA+C,2CAA2C,uEAAuE;AACvU,kDAAkD,0CAA0C;AAC5F,2CAA2C,+DAA+D,6EAA6E,yEAAyE,eAAe,uDAAuD,GAAG,+CAA+C,iBAAiB,GAAG;AAC5Y,iCAAiC,0GAA0G,iBAAiB,aAAa;AACzK,iCAAiC,6DAA6D,yCAAyC,8CAA8C,iCAAiC,mDAAmD,2DAA2D,OAAO,yCAAyC;AACpX,kDAAkD,0EAA0E,eAAe,4BAA4B,mFAAmF;AAC1P,wCAAwC,uBAAuB,yFAAyF;AACxJ,uCAAuC,wEAAwE,0CAA0C,8CAA8C,MAAM,4EAA4E,IAAI,eAAe,YAAY;AACxT,8BAA8B,uGAAuG,mDAAmD;AACxL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,qCAAqC,mBAAO,CAAC,wDAAW;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,iCAAiC,mBAAO,CAAC,0CAAO;AAChD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,CAAC;AACD;AACA,sEAAsE,aAAa;AACnF;AACA;AACA,qCAAqC,mBAAO,CAAC,wDAAW;AACxD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,oBAAoB;;;;;;;;;;;AC1KpB;AACA;;AAEa;;AAEb,kCAAkC;AAClC,8BAA8B;AAC9B,kDAAkD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD;AAC7S,uCAAuC,uDAAuD,uCAAuC,SAAS,uBAAuB;AACrK,uCAAuC,kGAAkG,iBAAiB,wCAAwC,MAAM,yCAAyC,6BAA6B,UAAU,YAAY,kEAAkE,WAAW,YAAY,iBAAiB,UAAU,MAAM,2EAA2E,UAAU,oBAAoB;AACvgB,gCAAgC;AAChC,sBAAsB,2BAA2B,oGAAoG,mBAAmB,iBAAiB,sHAAsH;AAC/S;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,uCAAuC,mBAAO,CAAC,oDAAW;AAC1D;AACA;AACA;AACA,gDAAgD,mBAAO,CAAC,8CAAQ;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uEAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,kBAAkB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW,oBAAoB,WAAW;AACzD;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC9jBY;;AAEZ,kBAAkB;AAClB,mBAAmB;AACnB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA,mCAAmC,SAAS;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C,UAAU;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACrJY;AACZ;;AAEA;AACA;AACA,gBAAgB,qBAAqB;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;;AAEA;AACA;AACA;;AAEA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,kBAAkB;AACpC;AACA;;AAEA;AACA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,iBAAiB;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACrLA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,eAAe,mDAAwB;AACvC;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA,0DAA0D,mBAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,SAAS;AACjC;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B,iBAAiB;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B,iBAAiB;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,gBAAgB;AACtC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;;AAEA,sBAAsB,OAAO;AAC7B;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;;AAEA,mCAAmC;AACnC,uCAAuC;AACvC;;AAEA;AACA,sBAAsB,OAAO;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,8BAA8B,cAAc;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,QAAQ;AACxC;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,+CAA+C;AACnE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,sBAAsB,sCAAsC;AAC5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,QAAQ;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,QAAQ;AACrC;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,MAA6B;;;;;;;;;;;AC19GhC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,iBAAiB,mBAAO,CAAC,qBAAQ;AACjC;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;;;;;;;;;;AChEA;AACA;AACA;AACA;;AAEA,aAAa,sFAA6B;;AAE1C;AACA;;AAEA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,aAAa;AAC/B;AACA;;AAEA,oBAAoB,YAAY;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB,aAAa;AAChC;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;;;;;;;;;;;ACnOlB,UAAU,mBAAO,CAAC,mDAAO;AACzB,aAAa,sFAA6B;AAC1C,gBAAgB,mBAAO,CAAC,wDAAa;AACrC,eAAe,mBAAO,CAAC,6DAAU;AACjC,YAAY,mBAAO,CAAC,uDAAS;AAC7B,UAAU,mBAAO,CAAC,sDAAY;AAC9B,aAAa,mBAAO,CAAC,yDAAU;;AAE/B;AACA;AACA;;AAEA;AACA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACpHA,cAAc,mBAAO,CAAC,+DAAa;AACnC,gBAAgB,mBAAO,CAAC,+DAAa;AACrC,YAAY,mBAAO,CAAC,wEAAmB;;AAEvC;AACA;AACA;;AAEA,oBAAoB,GAAG,cAAc;AACrC,sBAAsB,GAAG,gBAAgB;AACzC,sBAAsB,GAAG,gBAAgB;AACzC,wBAAwB,GAAG,kBAAkB;AAC7C,mBAAmB,GAAG,kBAAkB;;;;;;;;;;;ACZxC,iBAAiB,mBAAO,CAAC,iEAAc;AACvC,aAAa,sFAA6B;AAC1C,YAAY,mBAAO,CAAC,6DAAS;AAC7B,mBAAmB,mBAAO,CAAC,qEAAgB;AAC3C,gBAAgB,mBAAO,CAAC,wDAAa;AACrC,UAAU,mBAAO,CAAC,mDAAO;AACzB,WAAW,mBAAO,CAAC,8DAAgB;AACnC,eAAe,mBAAO,CAAC,6DAAU;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB;AACtB,wBAAwB;;;;;;;;;;;AC3HxB,YAAY,mBAAO,CAAC,6DAAS;AAC7B,iBAAiB,mBAAO,CAAC,iEAAc;AACvC,aAAa,sFAA6B;AAC1C,mBAAmB,mBAAO,CAAC,qEAAgB;AAC3C,gBAAgB,mBAAO,CAAC,wDAAa;AACrC,UAAU,mBAAO,CAAC,mDAAO;AACzB,WAAW,mBAAO,CAAC,8DAAgB;AACnC,eAAe,mBAAO,CAAC,6DAAU;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB;AACtB,oBAAoB;;;;;;;;;;;ACjHpB,aAAa,sFAA6B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACdA,UAAU,mBAAO,CAAC,sDAAY;;AAE9B,eAAe;AACf;;AAEA;AACA;AACA;;AAEA,eAAe;AACf;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;AChBA,aAAa,sFAA6B;AAC1C,UAAU,mBAAO,CAAC,sDAAY;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AChCA,aAAa,sFAA6B;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACzCA,aAAa,sFAA6B;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACxBA,UAAU,mBAAO,CAAC,sDAAY;AAC9B,aAAa,sFAA6B;AAC1C,aAAa,mBAAO,CAAC,0DAAW;;AAEhC;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7BA,eAAe;AACf;AACA;;AAEA,eAAe;AACf;AACA;;;;;;;;;;;ACNA;AACA,OAAO,mBAAO,CAAC,yDAAO;AACtB,OAAO,mBAAO,CAAC,yDAAO;AACtB,OAAO,mBAAO,CAAC,yDAAO;AACtB,QAAQ,mBAAO,CAAC,2DAAQ;AACxB,QAAQ,mBAAO,CAAC,2DAAQ;AACxB,OAAO,mBAAO,CAAC,yDAAO;AACtB,OAAO,mBAAO,CAAC,yDAAO;AACtB,OAAO,mBAAO,CAAC,yDAAO;AACtB;;AAEA,YAAY,mBAAO,CAAC,kEAAa;;AAEjC;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,UAAU,mBAAO,CAAC,sDAAY;;AAE9B;AACA;AACA;AACA;;AAEA,eAAe;AACf;AACA,kBAAkB,MAAM;AACxB;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACfA,UAAU,mBAAO,CAAC,mDAAO;AACzB,aAAa,sFAA6B;AAC1C,gBAAgB,mBAAO,CAAC,wDAAa;AACrC,eAAe,mBAAO,CAAC,6DAAU;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA,UAAU,mBAAO,CAAC,8DAAgB;AAClC,UAAU,mBAAO,CAAC,wEAAwB;AAC1C,eAAe,mBAAO,CAAC,0EAAsB;AAC7C,eAAe,mBAAO,CAAC,oEAAsB;AAC7C,WAAW,mBAAO,CAAC,8DAAgB;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,+BAA+B;;AAEvE;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,8CAA8C;;AAEtF;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,GAAG,cAAc;AACrC,sBAAsB,GAAG,gBAAgB;AACzC,sBAAsB,GAAG,gBAAgB;AACzC,wBAAwB,GAAG,kBAAkB;AAC7C,mBAAmB,GAAG,kBAAkB;;;;;;;;;;;AClExC,iBAAiB,mBAAO,CAAC,wDAAa;AACtC,UAAU,mBAAO,CAAC,gDAAQ;AAC1B,eAAe,mBAAO,CAAC,6DAAU;AACjC,aAAa,sFAA6B;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjDA,kBAAkB;AAClB;AACA;AACA;AACA,kBAAkB,GAAG,WAAW;AAChC;AACA;AACA;AACA,uBAAuB,GAAG,YAAY;AACtC;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;;;;;;;;;;;ACvBa;;AAEb,SAAS,mBAAO,CAAC,6CAAO;AACxB,kBAAkB,mBAAO,CAAC,0DAAa;AACvC,aAAa,sFAA6B;;AAE1C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrCa;;AAEb,+HAAqD;;;;;;;;;;;;ACFxC;;AAEb,aAAa,sFAA6B;AAC1C,iBAAiB,mBAAO,CAAC,0DAAa;AACtC,aAAa,mBAAO,CAAC,wGAAiB;AACtC,eAAe,mBAAO,CAAC,6DAAU;AACjC,WAAW,mBAAO,CAAC,8DAAQ;AAC3B,aAAa,mBAAO,CAAC,kEAAU;;AAE/B,iBAAiB,mBAAO,CAAC,iFAAmB;AAC5C;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC3Fa;;AAEb;AACA,aAAa,sFAA6B;AAC1C,iBAAiB,mBAAO,CAAC,0DAAa;AACtC,UAAU,mBAAO,CAAC,8DAAgB;AAClC,SAAS,mFAAsB;AAC/B,SAAS,mBAAO,CAAC,6CAAO;AACxB,gBAAgB,mBAAO,CAAC,sDAAY;AACpC,aAAa,mBAAO,CAAC,yEAAe;;AAEpC;;AAEA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA,IAAI;AACJ,8BAA8B;AAC9B;AACA;AACA,wDAAwD;AACxD,wEAAwE;;AAExE;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB,sBAAsB;;;;;;;;;;;;ACrJT;;AAEb;AACA,aAAa,sFAA6B;AAC1C,SAAS,mBAAO,CAAC,6CAAO;AACxB,SAAS,mFAAsB;AAC/B,gBAAgB,mBAAO,CAAC,sDAAY;AACpC,aAAa,mBAAO,CAAC,yEAAe;;AAEpC;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA,IAAI;AACJ,8BAA8B;AAC9B;AACA;AACA,wDAAwD;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA,kBAAkB;;AAElB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB,uBAAuB;AACvB;;AAEA;;;;;;;;;;;;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,UAAU,mBAAO,CAAC,0EAAsB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA,yBAAyB,mBAAO,CAAC,6DAAc;AAC/C,gBAAgB,mBAAO,CAAC,6DAAU;AAClC;;AAEA,eAAe,mBAAO,CAAC,+GAAoB;AAC3C,eAAe,mBAAO,CAAC,+GAAoB;;AAE3C;;AAEA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEa;;AAEb;;AAEA,gBAAgB,mBAAO,CAAC,iHAAqB;;AAE7C;AACA,yBAAyB,mBAAO,CAAC,6DAAc;AAC/C,gBAAgB,mBAAO,CAAC,6DAAU;AAClC;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,UAAU,mBAAO,CAAC,0EAAsB;AACxC;;AAEA;;AAEA;AACA,cAAc,mBAAO,CAAC,gDAAS;AAC/B;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS,mFAA8B;;AAEvC;AACA;AACA;AACA;;AAEA;AACA,aAAa,mBAAO,CAAC,qIAA2B;AAChD;;AAEA;;AAEA,aAAa,gJAA6B;AAC1C,4BAA4B,qBAAM,mBAAmB,qBAAM,mFAAmF;AAC9I;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,yBAAyB,mBAAO,CAAC,6DAAc;AAC/C,gBAAgB,mBAAO,CAAC,6DAAU;AAClC;;AAEA;AACA,gBAAgB,mBAAO,CAAC,mBAAM;AAC9B;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA,iBAAiB,mBAAO,CAAC,qIAA+B;AACxD,kBAAkB,mBAAO,CAAC,+HAA4B;AACtD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yEAAyE,6EAA6E;AACtJ;;AAEA;AACA,qBAAqB,mBAAO,CAAC,2GAAkB;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iDAAiD,0FAA0F;;AAE3I;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,8IAAwC;AAChF;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,mBAAO,CAAC,2GAAkB;;AAE/C;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,kGAAkG;AAClG,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA,4FAA4F;AAC5F,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,gDAAgD;;AAEhD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,8IAAwC;AAC9E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gEAAgE,OAAO,oBAAoB,OAAO;;AAElG;AACA,4CAA4C;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;;AAErB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B,sCAAsC,mBAAmB;AACzD,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA,4EAA4E;;AAE5E;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,kBAAkB,yBAAyB;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mDAAmD;AACnD;AACA,mDAAmD,iEAAiE;AACpH;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,uCAAuC;AACvC,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,OAAO;AACxC;AACA;AACA;AACA;;;;;;;;;;;AC1/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,aAAa;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,aAAa,mBAAO,CAAC,2GAAkB;;AAEvC;AACA,yBAAyB,mBAAO,CAAC,6DAAc;AAC/C,gBAAgB,mBAAO,CAAC,6DAAU;AAClC;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;;;;;;ACrNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEa;;AAEb;;AAEA,UAAU,mBAAO,CAAC,0EAAsB;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,OAAO,uCAAuC,OAAO;AACvE;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,yBAAyB,mBAAO,CAAC,6DAAc;AAC/C,gBAAgB,mBAAO,CAAC,6DAAU;AAClC;;AAEA;AACA;AACA,aAAa,mBAAO,CAAC,gEAAgB;AACrC;AACA;;AAEA;AACA,aAAa,mBAAO,CAAC,qIAA2B;AAChD;;AAEA;;AAEA,aAAa,gJAA6B;AAC1C,4BAA4B,qBAAM,mBAAmB,qBAAM,mFAAmF;AAC9I;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,kBAAkB,mBAAO,CAAC,+HAA4B;;AAEtD;;AAEA;;AAEA;AACA,qBAAqB,mBAAO,CAAC,2GAAkB;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAiD,0FAA0F;;AAE3I;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,IAAI;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,mBAAO,CAAC,2GAAkB;;AAE/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iCAAiC;;AAEjC;;AAEA,2CAA2C;AAC3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,oDAAoD;AACpD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5qBa;;AAEb,kDAAkD,0CAA0C;;AAE5F,aAAa,gJAA6B;AAC1C,WAAW,mBAAO,CAAC,mBAAM;;AAEzB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB,gDAAgD;AAChD;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,6BAA6B,qBAAqB;AAClD;AACA;AACA;;;;;;;;;;;AC7Ea;;AAEb;;AAEA,UAAU,mBAAO,CAAC,0EAAsB;AACxC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;ACnFA,kGAA+C;;;;;;;;;;;ACA/C;AACA,aAAa,mBAAO,CAAC,8CAAQ;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE,cAAc;AAChB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7DA,UAAU,4JAAqD;AAC/D,cAAc;AACd,gBAAgB;AAChB,8JAAuD;AACvD,wJAAmD;AACnD,iKAAyD;AACzD,uKAA6D;;;;;;;;;;;;ACN7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,aAAa,+IAA6B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,sCAAsC,sCAAsC;AACzG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;ACvSA;AACA,aAAa,mBAAO,CAAC,8CAAQ;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE,cAAc;AAChB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7DA;AACA;AACA,mBAAmB,MAAM;;AAEzB,kBAAkB,YAAY;AAC9B;AACA;;AAEA;AACA;;;;;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ,eAAe,mBAAO,CAAC,oDAAW;AAClC,gBAAgB,mBAAO,CAAC,gDAAS;AACjC;AACA;AACA;AACA;;AAEA,cAAc;AACd,kBAAkB;AAClB,yBAAyB;;AAEzB;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0CAA0C,OAAO;AACjD,WAAW,OAAO;AAClB,EAAE,OAAO;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;;AAEA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iDAAiD,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,eAAe;AACxC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,yBAAyB,QAAQ;AACjC;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA,qBAAqB,WAAW,GAAG,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,gBAAgB,WAAW,GAAG,IAAI,KAAK,aAAa;AACpD;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;;AAEA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,KAAK,mDAAmD,cAAc;AACzF,GAAG;AACH;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,MAAM,aAAa,SAAS;AACtD;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,SAAS,gBAAgB;AACzB,cAAc,oBAAoB,EAAE,IAAI;AACxC;AACA,YAAY,gBAAgB,EAAE,IAAI;AAClC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,GAAG,SAAS,GAAG,KAAK,qBAAqB,EAAE,EAAE;AACpE,QAAQ;AACR,yBAAyB,GAAG,KAAK,yBAAyB,EAAE,EAAE;AAC9D,mBAAmB,yBAAyB,EAAE,EAAE;AAChD;AACA,MAAM;AACN,oBAAoB,IAAI,EAAE,GAAG,SAAS,IAAI,EAAE,EAAE;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0CAA0C,cAAc,SAAS,OAAO;AACxE;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,YAAY;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACzjEa;;AAEb,WAAW,mBAAO,CAAC,4DAAe;;AAElC,aAAa,mBAAO,CAAC,gFAAiB;AACtC,YAAY,mBAAO,CAAC,8EAAgB;AACpC,oBAAoB,mBAAO,CAAC,8EAAgB;;AAE5C,WAAW,yBAAyB;AACpC;;;;;;;;;;;;ACTa;;AAEb,WAAW,mBAAO,CAAC,4DAAe;AAClC,aAAa,mBAAO,CAAC,gFAAiB;AACtC,kBAAkB,mBAAO,CAAC,4EAAe;;AAEzC,WAAW,uBAAuB;AAClC;AACA;AACA;;;;;;;;;;;;ACTa;;AAEb,WAAW,2BAA2B;AACtC;;;;;;;;;;;;ACHa;;AAEb,WAAW,0BAA0B;AACrC;;;;;;;;;;;;ACHa;;AAEb,WAAW,mBAAO,CAAC,4DAAe;AAClC,iBAAiB,mBAAO,CAAC,wDAAgB;;AAEzC,YAAY,mBAAO,CAAC,8EAAgB;AACpC,mBAAmB,mBAAO,CAAC,4EAAe;;AAE1C,WAAW,uEAAuE;AAClF;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACda;;AAEb,WAAW,0BAA0B;AACrC;;;;;;;;;;;;ACHa;;AAEb,mBAAmB,mBAAO,CAAC,4DAAe;;AAE1C,eAAe,mBAAO,CAAC,6CAAI;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACda;;AAEb,wBAAwB,mBAAO,CAAC,wEAAqB;;AAErD,sBAAsB,mBAAO,CAAC,sEAAoB;;AAElD,oBAAoB,mBAAO,CAAC,gFAAyB;AACrD,gBAAgB,mBAAO,CAAC,8FAAmC;;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C,kBAAkB;AAC9D,EAAE;AACF,CAAC,oBAAoB;AACrB;;;;;;;;;;;;ACvBa;;AAEb,mBAAmB,mBAAO,CAAC,4DAAe;;AAE1C,oBAAoB,mBAAO,CAAC,gFAAyB;;AAErD,WAAW,sEAAsE;AACjF;;AAEA,WAAW,aAAa;AACxB;AACA;;AAEA,4BAA4B,gDAAgD;AAC5E;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;;;;;;;;;;;;AClBa;;AAEb,aAAa,sFAA6B;AAC1C,gBAAgB,0FAA2B;AAC3C,oBAAoB,gHAAuC;AAC3D,eAAe,mBAAO,CAAC,6DAAU;;AAEjC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACtKA;AACA,WAAW,mBAAO,CAAC,yCAAM;AACzB,aAAa,mBAAO,CAAC,qDAAQ;AAC7B,iBAAiB;;AAEjB;AACA;AACA;;AAEA,WAAW,qBAAM,oBAAoB,qBAAM;AAC3C,cAAc,qBAAM;AACpB,EAAE;AACF;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,sBAAsB;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB,sGAAoD;;AAEpD;AACA;AACA;;;;;;;;;;;;AC1Ga;AACb;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,GAAG,oBAAoB,GAAG,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAO,CAAC,mDAAQ;AAC/B,iBAAiB,mBAAO,CAAC,uDAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,eAAe,gBAAgB,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,uFAAuF,QAAQ;AAC/F;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA,uFAAuF,QAAQ;AAC/F;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrVa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,wBAAwB,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,uBAAuB;AACjH;AACA,cAAc,mBAAO,CAAC,wFAA8B;AACpD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACpVa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,gCAAgC,GAAG,+BAA+B,GAAG,uCAAuC,GAAG,sCAAsC,GAAG,oCAAoC,GAAG,mCAAmC,GAAG,oCAAoC,GAAG,mCAAmC,GAAG,4BAA4B,GAAG,2BAA2B,GAAG,wCAAwC,GAAG,uCAAuC,GAAG,mCAAmC,GAAG,kCAAkC,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,4BAA4B,GAAG,2BAA2B,GAAG,6BAA6B,GAAG,4BAA4B,GAAG,uBAAuB;AACvvB;AACA,qBAAqB,mBAAO,CAAC,gHAAqC;AAClE,cAAc,mBAAO,CAAC,wFAA8B;AACpD,eAAe,mBAAO,CAAC,uEAAQ;AAC/B,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;AC5gCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB,GAAG,0BAA0B,GAAG,aAAa,GAAG,4BAA4B,GAAG,uBAAuB;AAC5H;AACA,cAAc,mBAAO,CAAC,wFAA8B;AACpD,oBAAoB,mBAAO,CAAC,oGAAoC;AAChE,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AChQa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,kCAAkC,GAAG,iCAAiC,GAAG,kCAAkC,GAAG,iCAAiC,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,uBAAuB;AAC9P;AACA,qBAAqB,mBAAO,CAAC,gHAAqC;AAClE,gBAAgB,mBAAO,CAAC,0EAAS;AACjC,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACpba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,yBAAyB,GAAG,iBAAiB,GAAG,wBAAwB,GAAG,eAAe,GAAG,uBAAuB,GAAG,gBAAgB,GAAG,uBAAuB;AACzL;AACA,gBAAgB,mBAAO,CAAC,0EAAS;AACjC,cAAc,mBAAO,CAAC,wFAA8B;AACpD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;ACtWa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,GAAG,iBAAiB,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,mBAAmB,GAAG,cAAc,GAAG,uBAAuB;AACvJ;AACA,eAAe,mBAAO,CAAC,wFAAyB;AAChD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC9fa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,gCAAgC,GAAG,+BAA+B,GAAG,gCAAgC,GAAG,kBAAkB,GAAG,+BAA+B,GAAG,kCAAkC,GAAG,iCAAiC,GAAG,mCAAmC,GAAG,kCAAkC,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,6BAA6B,GAAG,4BAA4B,GAAG,gCAAgC,GAAG,+BAA+B,GAAG,4CAA4C,GAAG,2CAA2C,GAAG,sCAAsC,GAAG,qCAAqC,GAAG,gCAAgC,GAAG,+BAA+B,GAAG,4BAA4B,GAAG,2BAA2B,GAAG,uBAAuB;AACn1B;AACA,qBAAqB,mBAAO,CAAC,gHAAqC;AAClE,eAAe,mBAAO,CAAC,wFAAyB;AAChD,eAAe,mBAAO,CAAC,uEAAQ;AAC/B,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACz2Ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,iCAAiC,GAAG,yBAAyB,GAAG,+BAA+B,GAAG,uBAAuB,GAAG,4BAA4B,GAAG,oBAAoB,GAAG,uBAAuB,GAAG,eAAe,GAAG,uBAAuB;AAC7Q;AACA,eAAe,mBAAO,CAAC,wFAAyB;AAChD,eAAe,mBAAO,CAAC,uEAAQ;AAC/B,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AC5ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,iBAAiB,GAAG,eAAe,GAAG,0BAA0B,GAAG,cAAc,GAAG,eAAe,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,sBAAsB,GAAG,kBAAkB,GAAG,uBAAuB;AAC/O;AACA,cAAc,mBAAO,CAAC,2FAAiC;AACvD,gBAAgB,mBAAO,CAAC,+FAAmC;AAC3D,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC71Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,GAAG,mBAAmB,GAAG,uBAAuB;AACpE;AACA,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACpKa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,GAAG,gBAAgB,GAAG,eAAe,GAAG,YAAY,GAAG,uBAAuB;AAC9F;AACA,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACzNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,cAAc,GAAG,uBAAuB;AAC1D;AACA,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACvGa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB,GAAG,uBAAuB;AACnD;AACA,cAAc,mBAAO,CAAC,wFAA8B;AACpD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACvEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,sBAAsB,GAAG,uBAAuB;AAC1E;AACA,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACtHa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,cAAc,GAAG,uBAAuB;AAC1D;AACA,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACvGa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,6CAA6C,GAAG,iCAAiC,GAAG,6BAA6B,GAAG,kCAAkC,GAAG,eAAe,GAAG,4BAA4B,GAAG,2BAA2B,GAAG,mCAAmC,GAAG,sCAAsC,GAAG,+BAA+B,GAAG,kCAAkC,GAAG,cAAc,GAAG,uBAAuB;AACta;AACA,eAAe,mBAAO,CAAC,wFAAyB;AAChD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC/xBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,kCAAkC,GAAG,iCAAiC,GAAG,6CAA6C,GAAG,4CAA4C,GAAG,wCAAwC,GAAG,uCAAuC,GAAG,2CAA2C,GAAG,0CAA0C,GAAG,sCAAsC,GAAG,qCAAqC,GAAG,qCAAqC,GAAG,oCAAoC,GAAG,wCAAwC,GAAG,uCAAuC,GAAG,gDAAgD,GAAG,+CAA+C,GAAG,8CAA8C,GAAG,6CAA6C,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,uBAAuB;AAC/3B;AACA,qBAAqB,mBAAO,CAAC,gHAAqC;AAClE,uBAAuB,mBAAO,CAAC,+FAAgB;AAC/C,eAAe,mBAAO,CAAC,wFAAyB;AAChD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,0EAA0E;AAC1E;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gFAAgF;AAChF;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACrnCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,qCAAqC,GAAG,6BAA6B,GAAG,+BAA+B,GAAG,uBAAuB,GAAG,oCAAoC,GAAG,4BAA4B,GAAG,8CAA8C,GAAG,sCAAsC,GAAG,0CAA0C,GAAG,kCAAkC,GAAG,qCAAqC,GAAG,6BAA6B,GAAG,uBAAuB;AAC7e;AACA,eAAe,mBAAO,CAAC,wFAAyB;AAChD,uBAAuB,mBAAO,CAAC,+FAAgB;AAC/C,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AC/oBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa,GAAG,2BAA2B,GAAG,yBAAyB,GAAG,sBAAsB,GAAG,uBAAuB;AAC1H;AACA,eAAe,mBAAO,CAAC,wFAAyB;AAChD,oBAAoB,mBAAO,CAAC,oGAAoC;AAChE,mBAAmB,mBAAO,CAAC,kGAAmC;AAC9D,cAAc,mBAAO,CAAC,wFAA8B;AACpD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oDAAoD;AACpD,kDAAkD;AAClD;AACA;AACA,yDAAyD;AACzD;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACnUa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,wCAAwC,GAAG,uCAAuC,GAAG,+BAA+B,GAAG,8BAA8B,GAAG,8BAA8B,GAAG,6BAA6B,GAAG,uBAAuB;AAC1Q;AACA,qBAAqB,mBAAO,CAAC,gHAAqC;AAClE,mBAAmB,mBAAO,CAAC,mFAAY;AACvC,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;AC3Ya;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,kCAAkC,GAAG,0BAA0B,GAAG,iCAAiC,GAAG,yBAAyB,GAAG,uBAAuB;AACjL;AACA,cAAc,mBAAO,CAAC,wFAA8B;AACpD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AClOa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,mBAAmB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,YAAY,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,eAAe,GAAG,0BAA0B,GAAG,4BAA4B,GAAG,8BAA8B,GAAG,sBAAsB,GAAG,wBAAwB,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,uBAAuB;AAC1X;AACA,eAAe,mBAAO,CAAC,wFAAyB;AAChD,cAAc,mBAAO,CAAC,wFAA8B;AACpD,oBAAoB,mBAAO,CAAC,oGAAoC;AAChE,mBAAmB,mBAAO,CAAC,kGAAmC;AAC9D,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,iBAAiB,kBAAkB,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,qBAAqB,sBAAsB,sBAAsB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC3+Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,+BAA+B,GAAG,uBAAuB,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,+BAA+B,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,eAAe,GAAG,oCAAoC,GAAG,4BAA4B,GAAG,iCAAiC,GAAG,yBAAyB,GAAG,uBAAuB;AAC3Y;AACA,cAAc,mBAAO,CAAC,wFAA8B;AACpD,eAAe,mBAAO,CAAC,wFAAyB;AAChD,cAAc,mBAAO,CAAC,+DAAO;AAC7B,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AClvBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,YAAY,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,eAAe,GAAG,oBAAoB,GAAG,0BAA0B,GAAG,4BAA4B,GAAG,8BAA8B,GAAG,sBAAsB,GAAG,wBAAwB,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,uBAAuB;AAChY;AACA,eAAe,mBAAO,CAAC,wFAAyB;AAChD,cAAc,mBAAO,CAAC,wFAA8B;AACpD,oBAAoB,mBAAO,CAAC,oGAAoC;AAChE,mBAAmB,mBAAO,CAAC,kGAAmC;AAC9D,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,iBAAiB,kBAAkB,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,qBAAqB,sBAAsB,sBAAsB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,wDAAwD;AACxD,4DAA4D;AAC5D;AACA,6DAA6D;AAC7D,2DAA2D;AAC3D;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACz1Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,gCAAgC,GAAG,+BAA+B,GAAG,6BAA6B,GAAG,4BAA4B,GAAG,4BAA4B,GAAG,2BAA2B,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,0BAA0B,GAAG,yBAAyB,GAAG,yBAAyB,GAAG,wBAAwB,GAAG,8BAA8B,GAAG,6BAA6B,GAAG,6BAA6B,GAAG,4BAA4B,GAAG,uBAAuB;AAC7hB;AACA,cAAc,mBAAO,CAAC,oEAAO;AAC7B,qBAAqB,mBAAO,CAAC,gHAAqC;AAClE,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uDAAuD;AACvD,yDAAyD;AACzD,qDAAqD;AACrD;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACr/Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,+BAA+B,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,eAAe,GAAG,iCAAiC,GAAG,yBAAyB,GAAG,uBAAuB;AACzQ;AACA,cAAc,mBAAO,CAAC,wFAA8B;AACpD,eAAe,mBAAO,CAAC,wFAAyB;AAChD,cAAc,mBAAO,CAAC,oEAAO;AAC7B,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AC9ea;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,6BAA6B,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,eAAe,GAAG,uBAAuB,GAAG,eAAe,GAAG,mCAAmC,GAAG,2BAA2B,GAAG,iCAAiC,GAAG,yBAAyB,GAAG,4CAA4C,GAAG,oCAAoC,GAAG,kDAAkD,GAAG,0CAA0C,GAAG,wCAAwC,GAAG,gCAAgC,GAAG,yCAAyC,GAAG,iCAAiC,GAAG,oCAAoC,GAAG,4BAA4B,GAAG,sCAAsC,GAAG,8BAA8B,GAAG,mCAAmC,GAAG,2BAA2B,GAAG,qCAAqC,GAAG,6BAA6B,GAAG,8BAA8B,GAAG,sBAAsB,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,YAAY,GAAG,uBAAuB;AAC1iC;AACA,gBAAgB,mBAAO,CAAC,qEAAS;AACjC,cAAc,mBAAO,CAAC,wFAA8B;AACpD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,WAAW,YAAY,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AC3wDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,6BAA6B,GAAG,gCAAgC,GAAG,+BAA+B,GAAG,qBAAqB,GAAG,cAAc,GAAG,oCAAoC,GAAG,sCAAsC,GAAG,8BAA8B,GAAG,4BAA4B,GAAG,8BAA8B,GAAG,sBAAsB,GAAG,wBAAwB,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,uBAAuB;AACxjB;AACA,oBAAoB,mBAAO,CAAC,oGAAoC;AAChE,mBAAmB,mBAAO,CAAC,kGAAmC;AAC9D,cAAc,mBAAO,CAAC,wFAA8B;AACpD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,iBAAiB,kBAAkB,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,qBAAqB,sBAAsB,sBAAsB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,6BAA6B,8BAA8B,8BAA8B;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,wDAAwD;AACxD,8DAA8D;AAC9D;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA,4DAA4D;AAC5D,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACpsCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mCAAmC,GAAG,gCAAgC,GAAG,4BAA4B,GAAG,4BAA4B,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,eAAe,GAAG,cAAc,GAAG,uBAAuB,GAAG,yBAAyB,GAAG,sBAAsB,GAAG,sBAAsB,GAAG,wBAAwB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,sBAAsB,GAAG,cAAc,GAAG,uBAAuB;AAC1e;AACA,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,aAAa,cAAc,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,eAAe,gBAAgB,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACvrCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc,GAAG,uBAAuB;AACzD;AACA,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC1Ka;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,qCAAqC,GAAG,oCAAoC,GAAG,8BAA8B,GAAG,6BAA6B,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,uBAAuB;AAC5P;AACA,eAAe,mBAAO,CAAC,uEAAQ;AAC/B,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;AC1Ra;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,iCAAiC,GAAG,gCAAgC,GAAG,gCAAgC,GAAG,+BAA+B,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,uBAAuB;AACxP;AACA,qBAAqB,mBAAO,CAAC,gHAAqC;AAClE,mBAAmB,mBAAO,CAAC,mFAAY;AACvC,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;AC9Ua;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,4BAA4B,GAAG,uBAAuB;AACvE;AACA,oBAAoB,mBAAO,CAAC,oGAAoC;AAChE,mBAAmB,mBAAO,CAAC,kGAAmC;AAC9D,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC9Na;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,yBAAyB,GAAG,wBAAwB,GAAG,mCAAmC,GAAG,kCAAkC,GAAG,uCAAuC,GAAG,sCAAsC,GAAG,wCAAwC,GAAG,uCAAuC,GAAG,kCAAkC,GAAG,iCAAiC,GAAG,kDAAkD,GAAG,iDAAiD,GAAG,yCAAyC,GAAG,wCAAwC,GAAG,wCAAwC,GAAG,uCAAuC,GAAG,+BAA+B,GAAG,8BAA8B,GAAG,kDAAkD,GAAG,iDAAiD,GAAG,yCAAyC,GAAG,wCAAwC,GAAG,8BAA8B,GAAG,6BAA6B,GAAG,+BAA+B,GAAG,8BAA8B,GAAG,uBAAuB;AAC3nC;AACA,qBAAqB,mBAAO,CAAC,gHAAqC;AAClE,kBAAkB,mBAAO,CAAC,gFAAW;AACrC,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACxqDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,wBAAwB,GAAG,YAAY,GAAG,4BAA4B,GAAG,iCAAiC,GAAG,0BAA0B,GAAG,cAAc,GAAG,oBAAoB,GAAG,yBAAyB,GAAG,gCAAgC,GAAG,2BAA2B,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,eAAe,GAAG,cAAc,GAAG,oBAAoB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,uBAAuB,GAAG,sBAAsB,GAAG,wBAAwB,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,wBAAwB,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,uBAAuB;AAC5qB;AACA,gBAAgB,mBAAO,CAAC,8FAAiC;AACzD,oBAAoB,mBAAO,CAAC,oGAAoC;AAChE,cAAc,mBAAO,CAAC,wFAA8B;AACpD,mBAAmB,mBAAO,CAAC,kGAAmC;AAC9D,eAAe,mBAAO,CAAC,wFAAyB;AAChD,gBAAgB,mBAAO,CAAC,4FAAgC;AACxD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,iBAAiB,kBAAkB,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,iBAAiB,kBAAkB,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+DAA+D;AAC/D,wDAAwD;AACxD;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA,2DAA2D;AAC3D,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,qDAAqD;AACrD,2CAA2C;AAC3C;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC1tDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,+BAA+B,GAAG,uBAAuB,GAAG,4CAA4C,GAAG,oCAAoC,GAAG,6BAA6B,GAAG,qBAAqB,GAAG,kCAAkC,GAAG,0BAA0B,GAAG,2BAA2B,GAAG,mBAAmB,GAAG,gCAAgC,GAAG,wBAAwB,GAAG,kCAAkC,GAAG,0BAA0B,GAAG,uBAAuB;AAC/e;AACA,kBAAkB,mBAAO,CAAC,gFAAW;AACrC,cAAc,mBAAO,CAAC,wFAA8B;AACpD,eAAe,mBAAO,CAAC,wFAAyB;AAChD,oBAAoB,mBAAO,CAAC,oGAAoC;AAChE,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA,yDAAyD;AACzD,4DAA4D;AAC5D;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AC74Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sCAAsC,GAAG,uCAAuC,GAAG,gCAAgC,GAAG,2BAA2B,GAAG,4BAA4B,GAAG,sBAAsB,GAAG,wBAAwB,GAAG,gBAAgB,GAAG,uBAAuB;AACjR;AACA,mBAAmB,mBAAO,CAAC,yHAA2C;AACtE,cAAc,mBAAO,CAAC,2FAAiC;AACvD,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,eAAe,gBAAgB,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC/aa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB,GAAG,6BAA6B,GAAG,4BAA4B,GAAG,6BAA6B,GAAG,4BAA4B,GAAG,wBAAwB,GAAG,uBAAuB,GAAG,wBAAwB,GAAG,uBAAuB,GAAG,+BAA+B,GAAG,8BAA8B,GAAG,qBAAqB,GAAG,oBAAoB,GAAG,wBAAwB,GAAG,uBAAuB,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,2BAA2B,GAAG,6BAA6B,GAAG,qBAAqB,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,eAAe,GAAG,uBAAuB;AACltB;AACA,aAAa,mBAAO,CAAC,iEAAM;AAC3B,qBAAqB,mBAAO,CAAC,gHAAqC;AAClE,eAAe,mBAAO,CAAC,kGAA8B;AACrD,gBAAgB,mBAAO,CAAC,8FAAiC;AACzD,gBAAgB,mBAAO,CAAC,8FAAiC;AACzD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,cAAc,eAAe,eAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oBAAoB,qBAAqB,qBAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;;;;;;;;;;;ACvuCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,WAAW,GAAG,WAAW,GAAG,sBAAsB,GAAG,uBAAuB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,cAAc,GAAG,wBAAwB,GAAG,eAAe,GAAG,aAAa,GAAG,UAAU,GAAG,uBAAuB;AACpR;AACA,cAAc,mBAAO,CAAC,wFAA8B;AACpD,kBAAkB,mBAAO,CAAC,oGAA4B;AACtD,mBAAmB,mBAAO,CAAC,sHAAwC;AACnE,eAAe,mBAAO,CAAC,wFAAyB;AAChD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AChhCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,qCAAqC,GAAG,+BAA+B,GAAG,YAAY,GAAG,uBAAuB;AACxI;AACA,oBAAoB,mBAAO,CAAC,oGAAoC;AAChE,cAAc,mBAAO,CAAC,wFAA8B;AACpD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC1Sa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,+CAA+C,GAAG,uCAAuC,GAAG,+CAA+C,GAAG,uCAAuC,GAAG,uCAAuC,GAAG,+BAA+B,GAAG,uBAAuB;AACnT;AACA,eAAe,mBAAO,CAAC,wFAAyB;AAChD,kBAAkB,mBAAO,CAAC,gFAAW;AACrC,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AC7Ya;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,8BAA8B,GAAG,8BAA8B,GAAG,cAAc,GAAG,6BAA6B,GAAG,gCAAgC,GAAG,0BAA0B,GAAG,uBAAuB;AAC1M;AACA,eAAe,mBAAO,CAAC,wFAAyB;AAChD,eAAe,mBAAO,CAAC,wFAAyB;AAChD,iBAAiB,mBAAO,CAAC,8DAAiB;AAC1C,kBAAkB,mBAAO,CAAC,gEAAkB;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACnba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,WAAW,GAAG,uBAAuB;AACrC;AACA,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AClEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,GAAG,uBAAuB;AAC1C;AACA,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACnEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,uBAAuB;AAC3C;AACA,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;ACnEa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,2BAA2B,GAAG,gBAAgB,GAAG,aAAa,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,uBAAuB,GAAG,uBAAuB;AAC9P;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAM;AACrB,eAAe,qBAAM;AACrB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,aAAa;AACzD;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,MAAM;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;;;;;;;;;;ACpIa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,kCAAkC,GAAG,iCAAiC,GAAG,8BAA8B,GAAG,6BAA6B,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,gCAAgC,GAAG,+BAA+B,GAAG,+BAA+B,GAAG,8BAA8B,GAAG,uBAAuB;AAC9X;AACA,qBAAqB,mBAAO,CAAC,6HAAkD;AAC/E,mBAAmB,mBAAO,CAAC,wFAAY;AACvC,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;AC/hBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,kBAAkB,GAAG,uBAAuB;AAC7D;AACA,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC3Ha;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,2BAA2B,GAAG,mBAAmB,GAAG,uBAAuB;AACnG;AACA,eAAe,mBAAO,CAAC,qGAAsC;AAC7D,iBAAiB,mBAAO,CAAC,gGAAgC;AACzD,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AC1Ma;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,gBAAgB,GAAG,mBAAmB,GAAG,cAAc,GAAG,oBAAoB,GAAG,yBAAyB,GAAG,eAAe,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,aAAa,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,aAAa,GAAG,uBAAuB;AAC5S;AACA,iBAAiB,mBAAO,CAAC,wFAAwB;AACjD,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,YAAY,aAAa,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,YAAY,aAAa,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACxuBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,wCAAwC,GAAG,uCAAuC,GAAG,mCAAmC,GAAG,kCAAkC,GAAG,sCAAsC,GAAG,qCAAqC,GAAG,2CAA2C,GAAG,0CAA0C,GAAG,0CAA0C,GAAG,yCAAyC,GAAG,kCAAkC,GAAG,iCAAiC,GAAG,sCAAsC,GAAG,qCAAqC,GAAG,qCAAqC,GAAG,oCAAoC,GAAG,0CAA0C,GAAG,yCAAyC,GAAG,uCAAuC,GAAG,sCAAsC,GAAG,uCAAuC,GAAG,sCAAsC,GAAG,6BAA6B,GAAG,4BAA4B,GAAG,4BAA4B,GAAG,2BAA2B,GAAG,uBAAuB;AAC1jC;AACA,qBAAqB,mBAAO,CAAC,6HAAkD;AAC/E,kBAAkB,mBAAO,CAAC,6EAAW;AACrC,iBAAiB,mBAAO,CAAC,wFAAwB;AACjD,cAAc,mBAAO,CAAC,2FAAiC;AACvD,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACz+Da;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,kCAAkC,GAAG,0BAA0B,GAAG,iCAAiC,GAAG,yBAAyB,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,6BAA6B,GAAG,qBAAqB,GAAG,sCAAsC,GAAG,8BAA8B,GAAG,mCAAmC,GAAG,2BAA2B,GAAG,qCAAqC,GAAG,6BAA6B,GAAG,iCAAiC,GAAG,yBAAyB,GAAG,iCAAiC,GAAG,yBAAyB,GAAG,kCAAkC,GAAG,0BAA0B,GAAG,gCAAgC,GAAG,kCAAkC,GAAG,0BAA0B,GAAG,uBAAuB;AACxxB;AACA,kBAAkB,mBAAO,CAAC,6EAAW;AACrC,iBAAiB,mBAAO,CAAC,wFAAwB;AACjD,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,yBAAyB,0BAA0B,0BAA0B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,mDAAmD;AACnD;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AC5+Ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,cAAc,GAAG,uBAAuB,GAAG,4BAA4B,GAAG,6BAA6B,GAAG,gCAAgC,GAAG,6BAA6B,GAAG,uBAAuB;AACrN;AACA,cAAc,mBAAO,CAAC,2FAAiC;AACvD,kBAAkB,mBAAO,CAAC,iHAA4C;AACtE,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AChea;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,2CAA2C,GAAG,0CAA0C,GAAG,wCAAwC,GAAG,uCAAuC,GAAG,iCAAiC,GAAG,gCAAgC,GAAG,iCAAiC,GAAG,gCAAgC,GAAG,0CAA0C,GAAG,yCAAyC,GAAG,oCAAoC,GAAG,mCAAmC,GAAG,mCAAmC,GAAG,kCAAkC,GAAG,iCAAiC,GAAG,gCAAgC,GAAG,gCAAgC,GAAG,+BAA+B,GAAG,uBAAuB;AAC5uB;AACA,qBAAqB,mBAAO,CAAC,6HAAkD;AAC/E,cAAc,mBAAO,CAAC,2FAAiC;AACvD,iBAAiB,mBAAO,CAAC,0EAAU;AACnC,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACxjCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,qCAAqC,GAAG,6BAA6B,GAAG,gCAAgC,GAAG,wBAAwB,GAAG,+BAA+B,GAAG,uBAAuB,GAAG,+BAA+B,GAAG,uBAAuB,GAAG,uBAAuB;AAC7S;AACA,cAAc,mBAAO,CAAC,2FAAiC;AACvD,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;AC7fa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,uBAAuB;AAC9G;AACA,iBAAiB,mBAAO,CAAC,iGAAoC;AAC7D,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AChNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,GAAG,eAAe,GAAG,uBAAuB,GAAG,mBAAmB,GAAG,oBAAoB,GAAG,4BAA4B,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,aAAa,GAAG,uBAAuB;AACtP;AACA,qBAAqB,mBAAO,CAAC,wGAAgC;AAC7D,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,YAAY,aAAa,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACjkBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,qCAAqC,GAAG,oCAAoC,GAAG,6CAA6C,GAAG,4CAA4C,GAAG,0CAA0C,GAAG,yCAAyC,GAAG,sCAAsC,GAAG,qCAAqC,GAAG,gCAAgC,GAAG,+BAA+B,GAAG,+BAA+B,GAAG,8BAA8B,GAAG,uBAAuB;AACjhB;AACA,qBAAqB,mBAAO,CAAC,6HAAkD;AAC/E,qBAAqB,mBAAO,CAAC,sFAAc;AAC3C,iBAAiB,mBAAO,CAAC,wFAAwB;AACjD,cAAc,mBAAO,CAAC,2FAAiC;AACvD,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;;;ACnyBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,wCAAwC,GAAG,gCAAgC,GAAG,oCAAoC,GAAG,4BAA4B,GAAG,oCAAoC,GAAG,4BAA4B,GAAG,qCAAqC,GAAG,6BAA6B,GAAG,uBAAuB;AACjV;AACA,qBAAqB,mBAAO,CAAC,sFAAc;AAC3C,cAAc,mBAAO,CAAC,2FAAiC;AACvD,iBAAiB,mBAAO,CAAC,wFAAwB;AACjD,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;ACnuBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,GAAG,cAAc,GAAG,oBAAoB,GAAG,sBAAsB,GAAG,mBAAmB,GAAG,uBAAuB;AACjI;AACA,mBAAmB,mBAAO,CAAC,qGAAsC;AACjE,iBAAiB,mBAAO,CAAC,gGAAgC;AACzD,iBAAiB,mBAAO,CAAC,iGAAoC;AAC7D,oBAAoB,mBAAO,CAAC,uGAAuC;AACnE,qBAAqB,mBAAO,CAAC,gHAAwC;AACrE,gBAAgB,mBAAO,CAAC,iGAAoC;AAC5D,oBAAoB,mBAAO,CAAC,yGAAwC;AACpE,iBAAiB,mBAAO,CAAC,iEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,mEAAqB;AAC/C,uBAAuB;AACvB;AACA;AACA;AACA,mDAAmD;AACnD,0DAA0D;AAC1D,2DAA2D;AAC3D,yDAAyD;AACzD,oDAAoD;AACpD,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uDAAuD;AACvD,oDAAoD;AACpD;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC1fa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,+BAA+B,GAAG,kCAAkC,GAAG,iCAAiC,GAAG,6BAA6B,GAAG,6BAA6B,GAAG,sBAAsB,GAAG,wBAAwB,GAAG,yBAAyB,GAAG,uBAAuB,GAAG,0BAA0B,GAAG,qBAAqB,GAAG,yBAAyB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,oBAAoB,GAAG,yBAAyB,GAAG,gBAAgB,GAAG,8BAA8B,GAAG,8BAA8B,GAAG,iCAAiC,GAAG,gCAAgC,GAAG,4BAA4B,GAAG,4BAA4B,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,wBAAwB,GAAG,sBAAsB,GAAG,yBAAyB,GAAG,oBAAoB,GAAG,wBAAwB,GAAG,mBAAmB,GAAG,oBAAoB,GAAG,mBAAmB,GAAG,eAAe,GAAG,6BAA6B,GAAG,+BAA+B,GAAG,uBAAuB,GAAG,oDAAoD,GAAG,sDAAsD,GAAG,8CAA8C,GAAG,+CAA+C,GAAG,iDAAiD,GAAG,yCAAyC,GAAG,0CAA0C,GAAG,4CAA4C,GAAG,oCAAoC,GAAG,yBAAyB,GAAG,2BAA2B,GAAG,mBAAmB,GAAG,uBAAuB;AACpiD,iCAAiC,GAAG,gBAAgB,GAAG,mBAAmB,GAAG,wBAAwB,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,aAAa,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,+BAA+B;AACtT;AACA,oBAAoB,mBAAO,CAAC,iGAAiC;AAC7D,iBAAiB,mBAAO,CAAC,+EAAiB;AAC1C,gBAAgB,mBAAO,CAAC,6EAAgB;AACxC,gBAAgB,mBAAO,CAAC,+EAAiB;AACzC,eAAe,mBAAO,CAAC,6EAAgB;AACvC,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,CAAC,kBAAkB,mBAAmB,mBAAmB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,mCAAmC,oCAAoC,oCAAoC;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC,yCAAyC,yCAAyC;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,6CAA6C,8CAA8C,8CAA8C;AAC1I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sBAAsB,uBAAuB,uBAAuB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,yDAAyD;AACzD;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA,kDAAkD;AAClD;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;;;;;;;;;;;AC1kIa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,uBAAuB;AAC3C;AACA,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACnEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,GAAG,eAAe,GAAG,gBAAgB,GAAG,eAAe,GAAG,aAAa,GAAG,uBAAuB;AACjH;AACA,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC9Va;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa,GAAG,uBAAuB;AACvC;AACA,gBAAgB,mBAAO,CAAC,sEAAS;AACjC,mBAAmB,mBAAO,CAAC,4EAAY;AACvC,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA,6CAA6C;AAC7C,yCAAyC;AACzC,wDAAwD;AACxD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACnGa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,GAAG,iCAAiC,GAAG,6BAA6B,GAAG,gBAAgB,GAAG,uBAAuB;AACrI;AACA,gBAAgB,mBAAO,CAAC,sEAAS;AACjC,oBAAoB,mBAAO,CAAC,iGAAiC;AAC7D,oBAAoB,mBAAO,CAAC,8EAAa;AACzC,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACrVa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,sBAAsB,GAAG,mBAAmB,GAAG,uBAAuB,GAAG,uBAAuB;AACzK;AACA,mBAAmB,mBAAO,CAAC,+FAAgC;AAC3D,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACnZa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,cAAc,GAAG,YAAY,GAAG,YAAY,GAAG,cAAc,GAAG,eAAe,GAAG,YAAY,GAAG,qBAAqB,GAAG,2BAA2B,GAAG,6BAA6B,GAAG,qBAAqB,GAAG,yBAAyB,GAAG,2BAA2B,GAAG,mBAAmB,GAAG,uBAAuB;AAC/a;AACA,gBAAgB,mBAAO,CAAC,+EAAiB;AACzC,gBAAgB,mBAAO,CAAC,iFAAkB;AAC1C,oBAAoB,mBAAO,CAAC,iGAAiC;AAC7D,oBAAoB,mBAAO,CAAC,8EAAa;AACzC,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kBAAkB,mBAAmB,mBAAmB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oBAAoB,qBAAqB,qBAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA,kDAAkD;AAClD,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,uDAAuD;AACvD;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AC3vCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,iBAAiB,GAAG,oBAAoB,GAAG,uBAAuB;AAC5F;AACA,eAAe,mBAAO,CAAC,6EAAgB;AACvC,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;AChPa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,WAAW,GAAG,uBAAuB;AACzD;AACA,iBAAiB,mBAAO,CAAC,2DAAc;AACvC,kBAAkB,mBAAO,CAAC,6DAAe;AACzC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,qBAAqB;AACrB;AACA;AACA;AACa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,gBAAgB,GAAG,kBAAkB;AACzD;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,QAAQ;AACR,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;;;;;;;;;;ACzIa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,oBAAoB,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,sBAAsB,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,qBAAqB,GAAG,oBAAoB;AACtW;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,iBAAiB;AACjB;;;;;;;;;;;ACvaA,eAAe,mBAAO,CAAC,yDAAU;AACjC,SAAS,mBAAO,CAAC,sEAAO;;AAExB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO,MAAM;AACb,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO,MAAM;AACb,cAAc,MAAM;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO,MAAM;AACb,eAAe,MAAM;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA,oBAAoB,MAAM;AAC1B;AACA,UAAU,MAAM;AAChB;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;;;;AC3HA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,eAAe,mDAAwB;AACvC;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA,0DAA0D,mBAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,SAAS;AACjC;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;;AAEA,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;AACA,MAAM;AACN,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;;AAEA,aAAa,eAAe;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,gBAAgB;AACtC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;;AAEA,sBAAsB,OAAO;AAC7B;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;;AAEA,mCAAmC;AACnC,uCAAuC;AACvC;;AAEA;AACA,sBAAsB,OAAO;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,8BAA8B,cAAc;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,QAAQ;AACxC;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,+CAA+C;AACnE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,sBAAsB,sCAAsC;AAC5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,QAAQ;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,QAAQ;AACrC;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,MAA6B;;;;;;;;;;;;ACr3GpB;AACZ,eAAe,mBAAO,CAAC,6DAAU;AACjC,UAAU,mBAAO,CAAC,8CAAQ;AAC1B,gBAAgB,mBAAO,CAAC,oDAAW;AACnC,UAAU,mBAAO,CAAC,8CAAQ;AAC1B,WAAW,mBAAO,CAAC,wDAAa;;AAEhC;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AC7BA,UAAU,mBAAO,CAAC,8CAAQ;;AAE1B;AACA;AACA;;;;;;;;;;;;ACJY;AACZ,eAAe,mBAAO,CAAC,6DAAU;AACjC,aAAa,mBAAO,CAAC,sDAAU;AAC/B,WAAW,mBAAO,CAAC,wDAAa;AAChC,aAAa,sFAA6B;AAC1C,UAAU,mBAAO,CAAC,0DAAiB;AACnC,gBAAgB,mBAAO,CAAC,oDAAW;;AAEnC,UAAU,mBAAO,CAAC,8CAAQ;;AAE1B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7DY;AACZ,eAAe,mBAAO,CAAC,6DAAU;AACjC,aAAa,sFAA6B;;AAE1C,WAAW,mBAAO,CAAC,wDAAa;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA,kBAAkB,eAAe;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA,QAAQ,qBAAM,oBAAoB,qBAAM;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;AACD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,qBAAM,oBAAoB,qBAAM;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA,uDAAuD;AACvD,UAAU;AACV;AACA,UAAU;AACV,8EAA8E;AAC9E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,qBAAqB;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,YAAY,OAAO;AACnB;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,uCAAuC,4BAA4B;AACnE;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,+BAA+B,0BAA0B,eAAe;AACxE;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AA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AAoB,SAAS;AAC7B;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;;AAEA,kBAAkB,QAAQ;AAC1B,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,WAAW;AACX;AACA;;AAEA,kBAAkB,OAAO;AACzB,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,WAAW;AACX;AACA;;AAEA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;;AAEA;AACA;AACA;;AAEA,cAAc;AACd;AACA;;AAEA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,eAAe;AACf;AACA,kBAAkB,yBAAyB;AAC3C;AACA;AACA;AACA;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA,kBAAkB,UAAU;AAC5B;AACA;AACA;;;;;;;;;;;;AC/PA,oBAAoB,mBAAO,CAAC,+EAAqB;AACjD,aAAa,mBAAO,CAAC,wEAAmB;;AAExC,SAAS,mBAAO,CAAC,yDAAU;;AAE3B;AACA,kBAAkB,MAAM;AACxB,gBAAgB,MAAM;;AAEtB;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAM,MAAM;AACZ;AACA;;AAEA;AACA;AACA,+BAA+B,MAAM;;AAErC,OAAO,MAAM;AACb,oBAAoB,MAAM;AAC1B;;AAEA;AACA;AACA;;AAEA,OAAO,MAAM;AACb,gBAAgB,MAAM;AACtB;;AAEA;AACA;;AAEA,0BAA0B,GAAG,gCAAgC,GAAG,wBAAwB;AACxF,2BAA2B,GAAG,qBAAqB;;;;;;;;;;;;ACzCnD,SAAS,mBAAO,CAAC,yEAAO;AACxB,kBAAkB,mBAAO,CAAC,2DAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,2EAAiB;AACtC,kBAAkB,mBAAO,CAAC,0DAAa;AACvC;;AAEA;AACA;AACA,OAAO,MAAM;AACb,cAAc,MAAM;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO,MAAM;AACb,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA,UAAU,MAAM;AAChB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO,MAAM;AACb,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;;;ACnKA,kBAAkB,mBAAO,CAAC,0DAAa;AACvC;AACA;AACA;AACA,SAAS,mBAAO,CAAC,yEAAO;AACxB;AACA,kBAAkB,mBAAO,CAAC,2DAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,WAAW;AACpC;AACA,oBAAoB,yBAAyB;AAC7C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,eAAe,mDAAwB;AACvC;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA,0DAA0D,mBAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,SAAS;AACjC;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;;AAEA,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;AACA,MAAM;AACN,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;;AAEA,aAAa,eAAe;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,gBAAgB;AACtC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;;AAEA,sBAAsB,OAAO;AAC7B;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;;AAEA,mCAAmC;AACnC,uCAAuC;AACvC;;AAEA;AACA,sBAAsB,OAAO;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,8BAA8B,cAAc;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,QAAQ;AACxC;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,+CAA+C;AACnE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,sBAAsB,sCAAsC;AAC5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,QAAQ;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,QAAQ;AACrC;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,MAA6B;;;;;;;;;;;;ACr3GnB;;AAEb,eAAe,mBAAO,CAAC,gFAAyB;AAChD,WAAW,mBAAO,CAAC,0CAAM;;AAEzB;AACA;AACA;AACA,iCAAiC,sCAAsC;AACvE,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,2EAA2E,+BAA+B;;AAE1G;AACA;;AAEA,WAAW,iBAAiB;AAC5B;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;;;;;;;;;;;;AC7Ba;;AAEb;;AAEA,mBAAmB,4FAAkC;AACrD,iBAAiB,mBAAO,CAAC,uEAAkB;AAC3C,gBAAgB,mBAAO,CAAC,gDAAS;AACjC,iBAAiB,mBAAO,CAAC,6EAAkB;AAC3C,kBAAkB,mBAAO,CAAC,yEAAmB;;AAE7C;AACA,cAAc,mBAAO,CAAC,uEAAe;AACrC,iBAAiB,mBAAO,CAAC,6EAAkB;;;;;;;;;;;;ACZ9B;;AAEb,SAAS,mBAAO,CAAC,mEAAO;AACxB,YAAY,mBAAO,CAAC,+DAAU;AAC9B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,OAAO;AACzB,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,QAAQ;AACxB;;AAEA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,WAAW;AAC7B,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;;;;;;;;;;;;AC5Xa;;AAEb,YAAY,mBAAO,CAAC,+DAAU;AAC9B,SAAS,mBAAO,CAAC,mEAAO;AACxB,eAAe,mBAAO,CAAC,6DAAU;AACjC,WAAW,mBAAO,CAAC,kEAAQ;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;AClba;;AAEb;;AAEA,aAAa,mBAAO,CAAC,kEAAQ;AAC7B,cAAc,mBAAO,CAAC,oEAAS;AAC/B,aAAa,mBAAO,CAAC,kEAAQ;AAC7B,gBAAgB,mBAAO,CAAC,wEAAW;;;;;;;;;;;;ACPtB;;AAEb,SAAS,mBAAO,CAAC,mEAAO;AACxB,eAAe,mBAAO,CAAC,6DAAU;AACjC,WAAW,mBAAO,CAAC,kEAAQ;;AAE3B,YAAY,mBAAO,CAAC,+DAAU;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB,wCAAwC;AACxC,gBAAgB;;AAEhB,sBAAsB,iBAAiB;AACvC;;AAEA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACjLa;;AAEb,YAAY,mBAAO,CAAC,+DAAU;AAC9B,SAAS,mBAAO,CAAC,mEAAO;AACxB,eAAe,mBAAO,CAAC,6DAAU;AACjC,WAAW,mBAAO,CAAC,kEAAQ;;AAE3B;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,cAAc;AACpB,MAAM,cAAc;AACpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,mBAAmB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACz6Ba;;AAEb;;AAEA,WAAW,mBAAO,CAAC,mDAAS;AAC5B,YAAY,mBAAO,CAAC,oEAAS;AAC7B,YAAY,mBAAO,CAAC,8DAAS;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,QAAQ,mBAAO,CAAC,8FAAyB;AACzC,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AC7MY;;AAEb,SAAS,mBAAO,CAAC,mEAAO;AACxB,eAAe,mBAAO,CAAC,4DAAW;AAClC,YAAY,mBAAO,CAAC,+DAAU;AAC9B,aAAa,mBAAO,CAAC,iEAAW;AAChC,WAAW,mBAAO,CAAC,gDAAS;AAC5B;;AAEA,cAAc,mBAAO,CAAC,6DAAO;AAC7B,gBAAgB,mBAAO,CAAC,yEAAa;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+CAA+C;AAC/C,oBAAoB,gBAAgB;AACpC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,0CAA0C;AACrE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACrRa;;AAEb,SAAS,mBAAO,CAAC,mEAAO;AACxB,YAAY,mBAAO,CAAC,+DAAU;AAC9B;;AAEA;AACA;AACA;AACA;;AAEA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;;AAEb,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACxHa;;AAEb,SAAS,mBAAO,CAAC,mEAAO;;AAExB,YAAY,mBAAO,CAAC,+DAAU;AAC9B;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC/Ka;;AAEb,WAAW,mBAAO,CAAC,mDAAS;AAC5B,aAAa,mBAAO,CAAC,iEAAW;AAChC,YAAY,mBAAO,CAAC,+DAAU;AAC9B;AACA;AACA,cAAc,mBAAO,CAAC,gEAAO;AAC7B,gBAAgB,mBAAO,CAAC,4EAAa;;AAErC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,UAAU,cAAc;AACxB,UAAU,sBAAsB;AAChC,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gCAAgC;AAC9D;;AAEA;AACA,UAAU,OAAO;AACjB,UAAU,wBAAwB;AAClC,UAAU,4BAA4B;AACtC,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACxHa;;AAEb,YAAY,mBAAO,CAAC,+DAAU;AAC9B;AACA;AACA;;AAEA;AACA,UAAU,OAAO;AACjB,UAAU,QAAQ;AAClB;AACA,UAAU,aAAa;AACvB,UAAU,OAAO;AACjB,UAAU,aAAa;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B,UAAU;AACxC;;AAEA;AACA;AACA;AACA,8BAA8B,gBAAgB;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9Fa;;AAEb,SAAS,mBAAO,CAAC,mEAAO;AACxB,YAAY,mBAAO,CAAC,+DAAU;AAC9B;AACA;AACA;;AAEA;AACA,UAAU,OAAO;AACjB,UAAU,qBAAqB;AAC/B,UAAU,oBAAoB;AAC9B,UAAU,iBAAiB;AAC3B,UAAU,cAAc;AACxB,UAAU,cAAc;AACxB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;AC3wBa;;AAEb;AACA,SAAS,mBAAO,CAAC,mEAAO;AACxB,gBAAgB,mBAAO,CAAC,wEAAqB;AAC7C,eAAe,mBAAO,CAAC,wFAA2B;;AAElD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;;AAEA;AACA;;AAEA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;ACxHA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,eAAe,mDAAwB;AACvC;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA,0DAA0D,mBAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,SAAS;AACjC;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;;AAEA,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;AACA,MAAM;AACN,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;;AAEA,aAAa,eAAe;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,gBAAgB;AACtC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;;AAEA,sBAAsB,OAAO;AAC7B;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;;AAEA,mCAAmC;AACnC,uCAAuC;AACvC;;AAEA;AACA,sBAAsB,OAAO;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,8BAA8B,cAAc;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,QAAQ;AACxC;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,+CAA+C;AACnE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,sBAAsB,sCAAsC;AAC5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,QAAQ;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,QAAQ;AACrC;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,MAA6B;;;;;;;;;;;;ACr3GnB;;AAEb,WAAW,aAAa;AACxB;AACA;AACA;AACA,oBAAoB,SAAS,UAAU;AACvC,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACba;;AAEb,WAAW,kBAAkB;AAC7B;;;;;;;;;;;;ACHa;;AAEb,WAAW,aAAa;AACxB;;;;;;;;;;;;ACHa;;AAEb,WAAW,mBAAmB;AAC9B;;;;;;;;;;;;ACHa;;AAEb,WAAW,iBAAiB;AAC5B;;;;;;;;;;;;ACHa;;AAEb,WAAW,oBAAoB;AAC/B;;;;;;;;;;;;ACHa;;AAEb,WAAW,kBAAkB;AAC7B;;;;;;;;;;;;ACHa;;AAEb,WAAW,iBAAiB;AAC5B;;;;;;;;;;;;ACHa;;AAEb,WAAW,aAAa;AACxB;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,MAAM,OAAO,IAAI,OAAO,OAAO,OAAO;AACtC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,sBAAsB;AACxC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe;AACf;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;;AAEA;AACA,SAAS,yBAAyB;AAClC;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,8DAA8D,YAAY;AAC1E;AACA,8DAA8D,YAAY;AAC1E;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,qCAAqC,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;;;;;;;;;;;AChfA,aAAa,sFAA6B;AAC1C,UAAU,mBAAO,CAAC,8CAAQ;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX;;AAEA;;;;;;;;;;;;AC5Ca;;AAEb,iBAAiB,mBAAO,CAAC,wDAAa;;AAEtC;AACA;;AAEA,WAAW,kKAAkK;AAC7K;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA,WAAW,4JAA4J;AACvK;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA,WAAW,yIAAyI;AACpJ;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA,WAAW,yCAAyC;AACpD;AACA;AACA;;AAEA,WAAW,uBAAuB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;;;;;;;;;;;ACpEa;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qCAAqC,oBAAoB;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA,iFAAiF,sCAAsC;;AAEvH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACnFa;;AAEb,qBAAqB,mBAAO,CAAC,wEAAkB;;AAE/C;;;;;;;;;;;;ACJa;;AAEb;;AAEA,cAAc,mBAAO,CAAC,gEAAiB;;AAEvC,aAAa,mBAAO,CAAC,oDAAW;AAChC,iBAAiB,mBAAO,CAAC,wDAAgB;AACzC,kBAAkB,mBAAO,CAAC,0DAAiB;AAC3C,sBAAsB,mBAAO,CAAC,sDAAe;AAC7C,mBAAmB,mBAAO,CAAC,4DAAkB;AAC7C,iBAAiB,mBAAO,CAAC,wDAAgB;AACzC,gBAAgB,mBAAO,CAAC,sDAAe;;AAEvC,UAAU,mBAAO,CAAC,kEAAqB;AACvC,YAAY,mBAAO,CAAC,sEAAuB;AAC3C,UAAU,mBAAO,CAAC,kEAAqB;AACvC,UAAU,mBAAO,CAAC,kEAAqB;AACvC,UAAU,mBAAO,CAAC,kEAAqB;AACvC,YAAY,mBAAO,CAAC,sEAAuB;AAC3C,WAAW,mBAAO,CAAC,oEAAsB;;AAEzC;;AAEA;AACA;AACA;AACA,kCAAkC,8CAA8C;AAChF,GAAG;AACH;;AAEA,YAAY,mBAAO,CAAC,0CAAM;AAC1B,sBAAsB,mBAAO,CAAC,sEAAoB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,IAAI;AACJ;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,EAAE;AACF;;AAEA,iBAAiB,mBAAO,CAAC,wDAAa;;AAEtC,eAAe,mBAAO,CAAC,oDAAW;AAClC,iBAAiB,mBAAO,CAAC,0FAAiC;AAC1D,kBAAkB,mBAAO,CAAC,4FAAkC;;AAE5D,aAAa,mBAAO,CAAC,sGAAuC;AAC5D,YAAY,mBAAO,CAAC,oGAAsC;;AAE1D;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qDAAqD;AACrD,GAAG;AACH,gDAAgD;AAChD,GAAG;AACH,sDAAsD;AACtD,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW,mBAAO,CAAC,4DAAe;AAClC,aAAa,mBAAO,CAAC,8CAAQ;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA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AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;;AAEA;AACA,2CAA2C,WAAW;AACtD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,OAAO;;AAEzB;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACzIA;;AAEA,aAAa,mBAAO,CAAC,8DAAc;AACnC,cAAc,mBAAO,CAAC,gEAAe;AACrC,WAAW,mBAAO,CAAC,0DAAY;AAC/B,cAAc,mBAAO,CAAC,gEAAe;AACrC,YAAY,mBAAO,CAAC,4DAAa;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACda;;AAEb,YAAY,mBAAO,CAAC,yDAAS;AAC7B,aAAa,mBAAO,CAAC,wEAAqB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;;AAEA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,oBAAoB;AACpC;AACA;;AAEA;AACA;;;;;;;;;;;;AC3Fa;;AAEb,YAAY,mBAAO,CAAC,yDAAS;AAC7B,aAAa,mBAAO,CAAC,wEAAqB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,oBAAoB;AAC/C;;AAEA,cAAc,gBAAgB;AAC9B;AACA;;AAEA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;AC9Ca;;AAEb,YAAY,mBAAO,CAAC,yDAAS;AAC7B,aAAa,mBAAO,CAAC,2DAAU;;AAE/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACjJa;;AAEb,6FAAiC;AACjC,mGAAqC;AACrC,mGAAqC;AACrC,mGAAqC;AACrC,mGAAqC;;;;;;;;;;;;ACNxB;;AAEb,YAAY,mBAAO,CAAC,0DAAU;AAC9B,aAAa,mBAAO,CAAC,4DAAW;AAChC,gBAAgB,mBAAO,CAAC,+DAAU;;AAElC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,QAAQ;AAC1B;;AAEA,QAAQ,cAAc;AACtB;;AAEA;AACA;AACA;AACA;AACA;;AAEA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzEa;;AAEb,YAAY,mBAAO,CAAC,0DAAU;AAC9B,aAAa,mBAAO,CAAC,yDAAO;;AAE5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5Ba;;AAEb,YAAY,mBAAO,CAAC,0DAAU;AAC9B,aAAa,mBAAO,CAAC,4DAAW;AAChC,gBAAgB,mBAAO,CAAC,+DAAU;AAClC,aAAa,mBAAO,CAAC,wEAAqB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,QAAQ;AAC1B;AACA,SAAS,cAAc;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACxGa;;AAEb,YAAY,mBAAO,CAAC,0DAAU;;AAE9B,aAAa,mBAAO,CAAC,yDAAO;;AAE5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClCa;;AAEb,YAAY,mBAAO,CAAC,0DAAU;AAC9B,aAAa,mBAAO,CAAC,4DAAW;AAChC,aAAa,mBAAO,CAAC,wEAAqB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,QAAQ;AAC1B;AACA,SAAS,cAAc;AACvB,gDAAgD;AAChD;AACA,4BAA4B;AAC5B;AACA,kDAAkD;AAClD;AACA,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qCAAqC;AACrC,qCAAqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qCAAqC;AACrC,qCAAqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC;AACtC;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzUa;;AAEb,YAAY,mBAAO,CAAC,0DAAU;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,cAAc;;;;;;;;;;;;AChDD;;AAEb,aAAa,mBAAO,CAAC,wEAAqB;AAC1C,eAAe,mBAAO,CAAC,6DAAU;;AAEjC,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA,IAAI;AACJ,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA,yBAAyB,gBAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;;AAEA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA,gBAAgB;;;;;;;;;;;;ACrRH;;AAEb;AACA;AACA,WAAW,mBAAO,CAAC,4DAAe;;AAElC,WAAW,aAAa;AACxB;;;;;;;;;;;;ACPa;;AAEb,WAAW,mBAAO,CAAC,mDAAS;AAC5B,YAAY,mBAAO,CAAC,wFAA2B;AAC/C,aAAa,mBAAO,CAAC,wEAAqB;;AAE1C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;;AAEA;AACA;AACA,0CAA0C;AAC1C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChHA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS,WAAW;;AAEpB;AACA;AACA;AACA,SAAS,WAAW;;AAEpB;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA,SAAS,WAAW;;AAEpB;AACA;AACA,SAAS,UAAU;;AAEnB;AACA;;;;;;;;;;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1Ba;;AAEb,qBAAqB,mBAAO,CAAC,sEAAuB;AACpD,gBAAgB,mBAAO,CAAC,sDAAY;;AAEpC;;AAEA,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA,2DAA2D;;AAE3D,WAAW,aAAa;AACxB;;;;;;;;;;;;AC3Ca;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,6BAA6B,WAAW;AACxC,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,2CAA2C;AAC3C,2EAA2E;;AAE3E,0BAA0B;;AAE1B,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,MAAM,YAAY;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB,gBAAgB;AAChB,kEAAkE;AAClE;AACA;AACA,IAAI;AACJ,iCAAiC;AACjC;AACA;AACA;AACA;AACA,sBAAsB;AACtB,gBAAgB;AAChB,kEAAkE;AAClE,wBAAwB;AACxB,6BAA6B;AAC7B;AACA,6FAA6F;AAC7F;AACA;;;;;;;;;;;;ACpGa;;AAEb,gBAAgB,mBAAO,CAAC,sDAAY;AACpC,oBAAoB,mBAAO,CAAC,gEAAiB;AAC7C;AACA,qBAAqB,mBAAO,CAAC,sEAAuB;AACpD,eAAe,mBAAO,CAAC,oDAAW;;AAElC;AACA;;AAEA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,wCAAwC;AACxC,GAAG;AACH;AACA;AACA,WAAW,yDAAyD;AACpE;;AAEA,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8BAA8B;AAC9C;AACA;AACA;AACA;;;;;;;;;;;;AC9Ca;;AAEb;;AAEA;AACA;AACA;;;;;;;;;;;;ACNa;;AAEb,eAAe,mBAAO,CAAC,oDAAW;AAClC,aAAa,mBAAO,CAAC,oEAAmB;;AAExC,qBAAqB,mBAAO,CAAC,iEAAkB;AAC/C,kBAAkB,mBAAO,CAAC,qDAAY;AACtC,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;;AAEA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACnBa;;AAEb,qBAAqB,mBAAO,CAAC,iEAAkB;;AAE/C;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACTa;;AAEb,aAAa,mBAAO,CAAC,oEAAmB;AACxC,kBAAkB,mBAAO,CAAC,qDAAY;;AAEtC;;AAEA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA,EAAE;AACF;AACA;;;;;;;;;;;;ACfa;;AAEb,gBAAgB,mBAAO,CAAC,sDAAY;AACpC,qBAAqB,mBAAO,CAAC,sEAAuB;AACpD,aAAa,mBAAO,CAAC,8CAAQ;AAC7B,WAAW,mBAAO,CAAC,0CAAM;;AAEzB,WAAW,aAAa;AACxB;;AAEA;AACA,YAAY,4JAA4J;AACxK;AACA,YAAY,QAAQ;AACpB;;AAEA;AACA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,0BAA0B,uBAAuB,uBAAuB;AACtG;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,QAAQ,eAAe,SAAS;AAC3D,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF,YAAY,wKAAwK;AACpL;AACA,mBAAmB,mBAAmB;AACtC;;AAEA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpEa;;AAEb,sBAAsB,mBAAO,CAAC,oEAAmB;;AAEjD,WAAW,aAAa;AACxB;AACA;AACA;;;;;;;;;;;ACPA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;;;;;ACJA;;AAEA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE,gBAAgB,qBAAM;AACxB,OAAO,qBAAM,cAAc,qBAAM;AACjC,EAAE;AACF;AACA,EAAE;AACF;AACA;;AAEA;;;;;;;;;;;;AChBA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,OAAO,iBAAiB,OAAO,aAAa,OAAO,kBAAkB,OAAO;AACjI;AACA,WAAW,qBAAM;AACjB,IAAI;AACJ;AACA;AACA,kDAAkD,QAAa;AAC/D,YAAY,KAA4B,IAAI,wBAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAO,CAAC,qBAAQ;AACjC,iBAAiB,mDAAwB;AACzC;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,OAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA,QAAQ;AACR,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,MAAM,mCAAO;AACb;AACA,OAAO;AAAA,kGAAC;AACR;AACA;AACA,CAAC;;;;;;;;;;;;;;AC7gBD,6GAAa,cAAc,aAA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,oCAAC,CAAC;AAAA;AAAA;AAAA,kGAAC,CAAC,CAA4I,oCAAoC,YAAY,GAAG;;;;;;;;;;;;ACAz2mG;;AAEb,WAAW,iBAAiB;AAC5B;;;;;;;;;;;;ACHa;;AAEb,WAAW,mBAAmB;AAC9B;;;;;;;;;;;;ACHa;;AAEb,WAAW,mBAAmB;AAC9B;AACA;AACA;;;;;;;;;;;;ACLa;;AAEb,WAAW,iBAAiB;AAC5B;;;;;;;;;;;;ACHa;;AAEb,WAAW,iBAAiB;AAC5B;;;;;;;;;;;;ACHa;;AAEb,WAAW,iBAAiB;AAC5B;;;;;;;;;;;;ACHa;;AAEb,WAAW,mBAAmB;AAC9B;;;;;;;;;;;;ACHa;;AAEb,aAAa,mBAAO,CAAC,wDAAS;;AAE9B,WAAW,kBAAkB;AAC7B;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACVY;AACZ,eAAe,mBAAO,CAAC,6DAAU;AACjC,eAAe,mBAAO,CAAC,oDAAW;AAClC,aAAa,sFAA6B;;AAE1C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,kBAAkB,QAAQ;;AAE1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACjJA,SAAS,mBAAO,CAAC,uEAAO;AACxB,cAAc,mBAAO,CAAC,gDAAS;;AAE/B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kBAAkB,cAAc;AAChC;;AAEA;;AAEA;AACA,SAAS,OAAO;AAChB;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kBAAkB,cAAc;AAChC;;AAEA;;AAEA,SAAS,OAAO;AAChB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;AClHA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,eAAe,mDAAwB;AACvC;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA,0DAA0D,mBAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,SAAS;AACjC;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;;AAEA,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;AACA,MAAM;AACN,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;;AAEA,aAAa,eAAe;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,gBAAgB;AACtC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;;AAEA,sBAAsB,OAAO;AAC7B;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;;AAEA,mCAAmC;AACnC,uCAAuC;AACvC;;AAEA;AACA,sBAAsB,OAAO;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,8BAA8B,cAAc;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,QAAQ;AACxC;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,+CAA+C;AACnE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,sBAAsB,sCAAsC;AAC5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,QAAQ;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,QAAQ;AACrC;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,MAA6B;;;;;;;;;;;ACr3GhC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACVa;;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA,IAAI;AACJ,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzDa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBa;;AAEb,aAAa,mBAAO,CAAC,oEAAmB;AACxC,eAAe,mBAAO,CAAC,oDAAW;;AAElC,qBAAqB,mBAAO,CAAC,oEAAkB;AAC/C,kBAAkB,mBAAO,CAAC,wDAAY;AACtC,WAAW,mBAAO,CAAC,gDAAQ;;AAE3B;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACjBa;;AAEb,qBAAqB,mBAAO,CAAC,oEAAkB;;AAE/C;AACA;AACA;;;;;;;;;;;;ACNa;;AAEb,kBAAkB,mBAAO,CAAC,wDAAY;AACtC,aAAa,mBAAO,CAAC,oEAAmB;;AAExC;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA,EAAE;AACF;AACA;;;;;;;;;;;;ACba;;AAEb;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,gEAAe,GAAG;AACxC;AACA,2CAA2C,gBAAgB;AAC3D,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;;AAEA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzHa;;AAEb;AACA,aAAa,mBAAO,CAAC,gEAAe;;AAEpC;AACA,6CAA6C,sBAAsB,EAAE,mBAAO,CAAC,sEAAkB;;AAE/F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/Ba;;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChBa;;AAEb;AACA,iBAAiB,mBAAO,CAAC,wDAAa;AACtC,iBAAiB,mBAAO,CAAC,8DAAmB;AAC5C,gBAAgB,mBAAO,CAAC,sDAAY;AACpC,cAAc,mBAAO,CAAC,gEAAiB;AACvC;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB,2BAA2B;AAC3B;AACA,aAAa;AACb;AACA,iBAAiB,sBAAsB;AACvC,oCAAoC;;AAEpC;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,iBAAiB;AACnC;AACA,2CAA2C;AAC3C,mCAAmC;AACnC,6BAA6B;AAC7B;AACA;AACA;;AAEA,YAAY;AACZ;;;;;;;;;;;;AC7Ca;;AAEb,qBAAqB,mBAAO,CAAC,wEAAkB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oBAAoB;AACrC;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,MAAM;AAChD;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACtDA;AACA;;AAEa;;AAEb,WAAW,mBAAO,CAAC,mDAAS;;AAE5B,0GAA8C;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qBAAqB;;AAErB,gBAAgB;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA,EAAE;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,oBAAoB;;AAEpB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AC1HD;AACA;;AAEa;;AAEb,UAAU,mBAAO,CAAC,mDAAS;;AAE3B;AACA;AACA;AACA;AACA,EAAE;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,EAAE;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACxFa;;AAEb;AACA;AACA;AACA;AACA,UAAU,mBAAO,CAAC,8DAAgB;AAClC,cAAc,mBAAO,CAAC,gEAAgB;AACtC,aAAa,sFAA6B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChCa;;AAEb,WAAW,mBAAO,CAAC,iDAAQ;AAC3B,YAAY,mBAAO,CAAC,0DAAc;AAClC,cAAc,mBAAO,CAAC,uDAAW;AACjC,cAAc,mBAAO,CAAC,gEAAgB;AACtC,aAAa,mBAAO,CAAC,gDAAQ;AAC7B,aAAa,sFAA6B;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9Ga;;AAEb,6FAAuC;AACvC,uGAA0C;;;;;;;;;;;;ACH7B;;AAEb,aAAa,sFAA6B;;AAE1C,sBAAsB,mBAAO,CAAC,iEAAgB;AAC9C,sBAAsB,mBAAO,CAAC,yEAAoB;AAClD,WAAW,mBAAO,CAAC,yDAAQ;AAC3B,eAAe,mBAAO,CAAC,2DAAa;;AAEpC;AACA,aAAa,qBAAM,WAAW,qBAAM;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,qBAAM,YAAY,qBAAM;AAC7B,aAAa,qBAAM;AACnB,GAAG,SAAS,qBAAM;AAClB,aAAa,qBAAM;AACnB,GAAG,SAAS,qBAAM;AAClB,aAAa,qBAAM;AACnB,GAAG;AACH,aAAa,qBAAM;AACnB;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA,KAAK,qBAAM,aAAa,qBAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,cAAc;AAC/B,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qBAAqB,qBAAM;AAC3B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;;;;;;;;;;;;ACzHa;;AAEb;AACA;AACA,IAAI,qBAAM,YAAY,qBAAM;AAC5B;AACA,EAAE,SAAS,qBAAM,YAAY,qBAAM;AACnC,8BAA8B,OAAO;;AAErC;AACA,EAAE;AACF;AACA;AACA;;;;;;;;;;;;ACba;;AAEb;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8DAA8D;AAC9D;AACA;AACA;;;;;;;;;;;;ACrBa;;AAEb,UAAU,mBAAO,CAAC,0DAAiB;AACnC,gBAAgB,mBAAO,CAAC,oDAAW;AACnC,UAAU,mBAAO,CAAC,8CAAQ;AAC1B,aAAa,sFAA6B;;AAE1C,sBAAsB,mBAAO,CAAC,iEAAgB;AAC9C,sBAAsB,mBAAO,CAAC,yEAAoB;AAClD,eAAe,mBAAO,CAAC,2DAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,iBAAiB,eAAe;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,QAAQ;AACzB;;AAEA;AACA;;AAEA,kBAAkB,gBAAgB;AAClC;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;AClIa;;AAEb,aAAa,sFAA6B;AAC1C,eAAe,mBAAO,CAAC,oDAAW;;AAElC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnBa;;AAEb,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChBa;;AAEb,WAAW,OAAO;AAClB,KAAK,OAAO;AACZ,IAAI,OAAO;AACX,IAAI,OAAO,iCAAiC,OAAO;AACnD,qBAAqB;AACrB,EAAE;AACF,mBAAmB,OAAO;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB;AACA,KAAK;AACL;AACA,WAAW,OAAO;AAClB;AACA,KAAK;AACL;AACA,WAAW,OAAO;AAClB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA,KAAK;AACL;AACA;;;;;;;;;;;;AC3CA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC;;AAEtC;AACA;AACA;;AAEA,4BAA4B;AAC5B;AACA;AACA;AACA,6BAA6B;;;;;;;;;;;ACvL7B,oHAAkD;AAClD,uHAAoD;;AAEpD,sBAAsB;AACtB;AACA;;AAEA,qBAAqB;AACrB;AACA;;;;;;;;;;;ACTA,iBAAiB,mBAAO,CAAC,0DAAa;AACtC,aAAa,sFAA6B;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClBA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,eAAe,mDAAwB;AACvC;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA,0DAA0D,mBAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,SAAS;AACjC;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;;AAEA,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;AACA,MAAM;AACN,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;;AAEA,aAAa,eAAe;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,gBAAgB;AACtC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;;AAEA,sBAAsB,OAAO;AAC7B;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;;AAEA,mCAAmC;AACnC,uCAAuC;AACvC;;AAEA;AACA,sBAAsB,OAAO;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,8BAA8B,cAAc;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,QAAQ;AACxC;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,+CAA+C;AACnE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,sBAAsB,sCAAsC;AAC5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,QAAQ;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,QAAQ;AACrC;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,MAA6B;;;;;;;;;;;ACr3GhC,gBAAgB,mBAAO,CAAC,sDAAY;AACpC,UAAU,mBAAO,CAAC,mDAAO;AACzB,UAAU,mBAAO,CAAC,mDAAO;AACzB,SAAS,mBAAO,CAAC,yEAAO;AACxB,UAAU,mBAAO,CAAC,8DAAgB;AAClC,iBAAiB,mBAAO,CAAC,0DAAa;AACtC,iBAAiB,mBAAO,CAAC,iEAAc;AACvC,aAAa,sFAA6B;;AAE1C;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACxGA,gBAAgB,mBAAO,CAAC,sDAAY;AACpC,kBAAkB,mBAAO,CAAC,0DAAa;AACvC,iBAAiB,mBAAO,CAAC,0DAAa;AACtC,UAAU,mBAAO,CAAC,mDAAO;AACzB,UAAU,mBAAO,CAAC,mDAAO;AACzB,SAAS,mBAAO,CAAC,yEAAO;AACxB,iBAAiB,mBAAO,CAAC,iEAAc;AACvC,UAAU,mBAAO,CAAC,8DAAgB;AAClC,aAAa,sFAA6B;;AAE1C;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACvFA,SAAS,mBAAO,CAAC,yEAAO;AACxB,aAAa,sFAA6B;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACPY;;AAEZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,aAAa,sFAA6B;AAC1C,aAAa,qBAAM,WAAW,qBAAM;;AAEpC;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,mBAAmB;AACnB,4BAA4B;AAC5B;AACA,8BAA8B,kBAAkB;AAChD;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB;AACA,KAAK;AACL;;AAEA;AACA;;;;;;;;;;;;;ACjDY;;AAEZ;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,wDAAa;AACtC,kBAAkB,mBAAO,CAAC,0DAAa;AACvC;AACA;AACA,aAAa,qBAAM,WAAW,qBAAM;AACpC;AACA;AACA,yDAAyD;AACzD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,mDAAmD;AACnD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD,EAAE,kBAAkB;AACpB,EAAE,sBAAsB;AACxB,EAAE;AACF,EAAE,kBAAkB;AACpB,EAAE,sBAAsB;AACxB;AACA;AACA,gDAAgD,qBAAM;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,OAAO;AACb;AACA;AACA;AACA;AACA,MAAM,OAAO;AACb;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,qBAAM;AACtD;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;;;;;;;;;;;AC3Ga;;AAEb,gDAAgD,0DAA0D,2CAA2C;;AAErJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;;;AAGF;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;;AAEA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,oBAAoB;;;;;;;;;;;;;AC9HpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,mBAAO,CAAC,kFAAoB;AAC3C,eAAe,mBAAO,CAAC,kFAAoB;AAC3C,mBAAO,CAAC,6DAAU;AAClB;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE,OAAO;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;AC7HD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEa;;AAEb;AACA,gBAAgB,mBAAO,CAAC,oFAAqB;AAC7C,mBAAO,CAAC,6DAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS,mFAA8B;AACvC;AACA;AACA;AACA;;AAEA;AACA,aAAa,mBAAO,CAAC,wGAA2B;AAChD;;AAEA,aAAa,4EAAwB;AACrC,4BAA4B,qBAAM,mBAAmB,qBAAM,mFAAmF;AAC9I;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAO,CAAC,mBAAM;AAC9B;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA,iBAAiB,mBAAO,CAAC,0GAAgC;AACzD,kBAAkB,mBAAO,CAAC,kGAA4B;AACtD,eAAe,mBAAO,CAAC,8FAA0B;AACjD;AACA,qBAAqB,gGAA0B;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAO,CAAC,6DAAU;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yEAAyE,mFAAmF;AAC5J;AACA;AACA,qBAAqB,mBAAO,CAAC,8EAAkB;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iHAAwC;AAChF;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAO,CAAC,8EAAkB;AAC/C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,+FAA+F;AAC/F,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA,4FAA4F;AAC5F,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,iHAAwC;AAC9E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,OAAO,oBAAoB,OAAO;AAClG;AACA,wBAAwB,OAAO,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,QAAQ,OAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,kBAAkB,yBAAyB;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mBAAO,CAAC,gHAAmC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA,mDAAmD,+DAA+D;AAClH;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,oGAAyB;AAC9C;AACA;AACA;AACA;AACA;AACA,iCAAiC,OAAO;AACxC;AACA;AACA;AACA;;;;;;;;;;;AClgCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,aAAa;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA,qBAAqB,gGAA0B;AAC/C;AACA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,8EAAkB;AACvC,mBAAO,CAAC,6DAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEa;;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAa,mBAAO,CAAC,gEAAgB;AACrC;AACA;;AAEA;AACA,aAAa,mBAAO,CAAC,wGAA2B;AAChD;;AAEA,aAAa,4EAAwB;AACrC,4BAA4B,qBAAM,mBAAmB,qBAAM,mFAAmF;AAC9I;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAO,CAAC,kGAA4B;AACtD,eAAe,mBAAO,CAAC,8FAA0B;AACjD;AACA,qBAAqB,gGAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAO,CAAC,6DAAU;AAClB;AACA;AACA,qBAAqB,mBAAO,CAAC,8EAAkB;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,IAAI;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAO,CAAC,8EAAkB;;AAE/C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,OAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,sDAAsD;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO;AACX;AACA;AACA,IAAI,OAAO;AACX;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,OAAO;AACb,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,OAAO;AACb,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO,cAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChoBa;;AAEb;AACA,4CAA4C,2BAA2B,kBAAkB,kCAAkC,oEAAoE,KAAK,OAAO,oBAAoB;AAC/N,+BAA+B,uCAAuC;AACtE,qCAAqC,+DAA+D,sCAAsC,0BAA0B,+CAA+C,yCAAyC,uEAAuE;AACnU,eAAe,mBAAO,CAAC,6FAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,OAAO;AACf;AACA;AACA,YAAY;AACZ;AACA;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,CAAC;AACD;AACA;AACA,yFAAyF;AACzF;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;ACnLa;;AAEb,2CAA2C,gCAAgC,oCAAoC,oDAAoD,6DAA6D,iEAAiE,sCAAsC;AACvU,iCAAiC,gBAAgB,sBAAsB,OAAO,uDAAuD,6DAA6D,4CAA4C,oKAAoK,mFAAmF,KAAK;AAC1e,4CAA4C,2BAA2B,kBAAkB,kCAAkC,oEAAoE,KAAK,OAAO,oBAAoB;AAC/N,kDAAkD,0CAA0C;AAC5F,4CAA4C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD;AAC/P,8DAA8D,sEAAsE,8DAA8D,kDAAkD,iBAAiB,GAAG;AACxQ,+BAA+B,uCAAuC;AACtE,qCAAqC,+DAA+D,sCAAsC,0BAA0B,+CAA+C,yCAAyC,uEAAuE;AACnU,eAAe,mBAAO,CAAC,8CAAQ;AAC/B;AACA,gBAAgB,mBAAO,CAAC,mBAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA,yDAAyD,cAAc;AACvE;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;ACtLY;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,QAAQ,OAAO;AACf,QAAQ;AACR;AACA,QAAQ,OAAO;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,OAAO;AACf,QAAQ;AACR;AACA,QAAQ,OAAO;AACf,QAAQ;AACR,QAAQ,OAAO;AACf;AACA,MAAM;AACN,MAAM,OAAO;AACb;AACA,MAAM;AACN,MAAM,OAAO;AACb;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wFAAwF;AACxF;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC/FA;AACA;;AAEa;;AAEb,iCAAiC,sGAAgC;AACjE;AACA;AACA;AACA;AACA;AACA,wEAAwE,aAAa;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACrFA;AACA;AACA;;;;;;;;;;;;ACFA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sGAAgC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,+BAA+B,mBAAO,CAAC,6FAAiB;AACxD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,aAAa;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;;;;;;;;;;;ACrFa;;AAEb,4BAA4B,sGAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACrBA,kGAA+C;;;;;;;;;;;;ACAlC;;AAEb,aAAa,4EAAwB;AACrC,eAAe,mBAAO,CAAC,6DAAU;AACjC,eAAe,mBAAO,CAAC,2EAAW;;AAElC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI,OAAO;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtKa;;AAEb,aAAa,sFAA6B;AAC1C,eAAe,mBAAO,CAAC,iFAAa;AACpC,gBAAgB,mIAAoC;AACpD,eAAe,mBAAO,CAAC,6DAAU;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4CAA4C;;AAE5C;AACA;AACA;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gDAAgD,WAAW;AAC3D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5Ga;;AAEb,aAAa,sFAA6B;AAC1C,eAAe,mBAAO,CAAC,oDAAW;;AAElC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,UAAU,mBAAO,CAAC,0EAAsB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA,yBAAyB,mBAAO,CAAC,6DAAc;AAC/C,gBAAgB,mBAAO,CAAC,6DAAU;AAClC;;AAEA,eAAe,mBAAO,CAAC,yGAAoB;AAC3C,eAAe,mBAAO,CAAC,yGAAoB;;AAE3C;;AAEA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEa;;AAEb;;AAEA,gBAAgB,mBAAO,CAAC,2GAAqB;;AAE7C;AACA,yBAAyB,mBAAO,CAAC,6DAAc;AAC/C,gBAAgB,mBAAO,CAAC,6DAAU;AAClC;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,UAAU,mBAAO,CAAC,0EAAsB;AACxC;;AAEA;;AAEA;AACA,cAAc,mBAAO,CAAC,gDAAS;AAC/B;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS,mFAA8B;;AAEvC;AACA;AACA;AACA;;AAEA;AACA,aAAa,mBAAO,CAAC,+HAA2B;AAChD;;AAEA;;AAEA,aAAa,0IAA6B;AAC1C,4BAA4B,qBAAM,mBAAmB,qBAAM,mFAAmF;AAC9I;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,yBAAyB,mBAAO,CAAC,6DAAc;AAC/C,gBAAgB,mBAAO,CAAC,6DAAU;AAClC;;AAEA;AACA,gBAAgB,mBAAO,CAAC,mBAAM;AAC9B;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA,iBAAiB,mBAAO,CAAC,+HAA+B;AACxD,kBAAkB,mBAAO,CAAC,yHAA4B;AACtD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yEAAyE,6EAA6E;AACtJ;;AAEA;AACA,qBAAqB,mBAAO,CAAC,qGAAkB;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iDAAiD,0FAA0F;;AAE3I;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,wIAAwC;AAChF;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,mBAAO,CAAC,qGAAkB;;AAE/C;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,kGAAkG;AAClG,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA,4FAA4F;AAC5F,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,gDAAgD;;AAEhD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,wIAAwC;AAC9E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gEAAgE,OAAO,oBAAoB,OAAO;;AAElG;AACA,4CAA4C;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;;AAErB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B,sCAAsC,mBAAmB;AACzD,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA,4EAA4E;;AAE5E;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,kBAAkB,yBAAyB;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mDAAmD;AACnD;AACA,mDAAmD,iEAAiE;AACpH;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,uCAAuC;AACvC,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,OAAO;AACxC;AACA;AACA;AACA;;;;;;;;;;;AC1/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,aAAa;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,aAAa,mBAAO,CAAC,qGAAkB;;AAEvC;AACA,yBAAyB,mBAAO,CAAC,6DAAc;AAC/C,gBAAgB,mBAAO,CAAC,6DAAU;AAClC;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;;;;;;ACrNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEa;;AAEb;;AAEA,UAAU,mBAAO,CAAC,0EAAsB;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,OAAO,uCAAuC,OAAO;AACvE;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,yBAAyB,mBAAO,CAAC,6DAAc;AAC/C,gBAAgB,mBAAO,CAAC,6DAAU;AAClC;;AAEA;AACA;AACA,aAAa,mBAAO,CAAC,gEAAgB;AACrC;AACA;;AAEA;AACA,aAAa,mBAAO,CAAC,+HAA2B;AAChD;;AAEA;;AAEA,aAAa,0IAA6B;AAC1C,4BAA4B,qBAAM,mBAAmB,qBAAM,mFAAmF;AAC9I;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,kBAAkB,mBAAO,CAAC,yHAA4B;;AAEtD;;AAEA;;AAEA;AACA,qBAAqB,mBAAO,CAAC,qGAAkB;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAiD,0FAA0F;;AAE3I;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,IAAI;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,mBAAO,CAAC,qGAAkB;;AAE/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iCAAiC;;AAEjC;;AAEA,2CAA2C;AAC3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,oDAAoD;AACpD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5qBa;;AAEb,kDAAkD,0CAA0C;;AAE5F,aAAa,0IAA6B;AAC1C,WAAW,mBAAO,CAAC,mBAAM;;AAEzB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB,gDAAgD;AAChD;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,6BAA6B,qBAAqB;AAClD;AACA;AACA;;;;;;;;;;;AC7Ea;;AAEb;;AAEA,UAAU,mBAAO,CAAC,0EAAsB;AACxC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;ACnFA,kGAA+C;;;;;;;;;;;ACA/C;AACA,aAAa,mBAAO,CAAC,8CAAQ;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE,cAAc;AAChB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7DA,UAAU,sJAAqD;AAC/D,cAAc;AACd,gBAAgB;AAChB,wJAAuD;AACvD,kJAAmD;AACnD,2JAAyD;AACzD,iKAA6D;;;;;;;;;;;;ACN7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,aAAa,yIAA6B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,sCAAsC,sCAAsC;AACzG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;ACvSA;AACA,aAAa,mBAAO,CAAC,8CAAQ;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE,cAAc;AAChB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7DA;AACA;AACA,aAAa,mBAAO,CAAC,8CAAQ;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE,cAAc;AAChB;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChEa;;AAEb,gBAAgB,mBAAO,CAAC,sDAAY;AACpC,cAAc,mBAAO,CAAC,kDAAU;;AAEhC;AACA,iBAAiB,mBAAO,CAAC,wDAAgB;;AAEzC,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChBa;;AAEb,mBAAmB,mBAAO,CAAC,4DAAe;AAC1C,aAAa,mBAAO,CAAC,0EAAsB;AAC3C,qBAAqB,mBAAO,CAAC,kFAA0B;AACvD,WAAW,mBAAO,CAAC,0CAAM;;AAEzB,iBAAiB,mBAAO,CAAC,wDAAgB;AACzC;;AAEA,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,uBAAuB;AAC5C,IAAI;AACJ,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;;;;;;;;;;;;ACzCa;;AAEb,aAAa,sFAA6B;AAC1C,eAAe,mBAAO,CAAC,oDAAW;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sBAAsB,gBAAgB;AACtC;AACA;;AAEA,kBAAkB,eAAe;AACjC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnFa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qFAAqC;AACrC,wFAAuC;AACvC,8FAA2C;AAC3C,8FAA2C;AAC3C,8FAA2C;AAC3C,8FAA2C;;;;;;;;;;;;AClB9B;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,mBAAO,CAAC,6DAAU;AACjC,WAAW,mBAAO,CAAC,6CAAQ;AAC3B,aAAa,sFAA6B;;AAE1C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,QAAQ;AACzB;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;;AAEA,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACvGa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,mBAAO,CAAC,6DAAU;AACjC,WAAW,mBAAO,CAAC,6CAAQ;AAC3B,aAAa,sFAA6B;;AAE1C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,QAAQ;AACzB;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;;AAEA,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;AC5Ga;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,mBAAO,CAAC,6DAAU;AACjC,aAAa,mBAAO,CAAC,iDAAU;AAC/B,WAAW,mBAAO,CAAC,6CAAQ;AAC3B,aAAa,sFAA6B;;AAE1C;;AAEA;AACA;;AAEA,cAAc;;AAEd;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACtDa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,mBAAO,CAAC,6DAAU;AACjC,WAAW,mBAAO,CAAC,6CAAQ;AAC3B,aAAa,sFAA6B;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,cAAc;;AAEd;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,QAAQ;AACzB;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;;AAEA,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;AC5La;;AAEb,eAAe,mBAAO,CAAC,6DAAU;AACjC,aAAa,mBAAO,CAAC,iDAAU;AAC/B,WAAW,mBAAO,CAAC,6CAAQ;AAC3B,aAAa,sFAA6B;;AAE1C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;AC1Da;;AAEb,eAAe,mBAAO,CAAC,6DAAU;AACjC,WAAW,mBAAO,CAAC,6CAAQ;AAC3B,aAAa,sFAA6B;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AC7XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,SAAS,mFAA8B;AACvC,eAAe,mBAAO,CAAC,6DAAU;;AAEjC;AACA,kBAAkB,mBAAO,CAAC,uGAAyC;AACnE,kBAAkB,mBAAO,CAAC,uGAAyC;AACnE,gBAAgB,mBAAO,CAAC,mGAAuC;AAC/D,mBAAmB,mBAAO,CAAC,yGAA0C;AACrE,qBAAqB,mBAAO,CAAC,6GAA4C;AACzE,kBAAkB,mBAAO,CAAC,mIAAuD;AACjF,kBAAkB,mBAAO,CAAC,yHAAkD;;AAE5E;AACA;;;;AAIA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;;;;;;;;;;;AChIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,aAAa,sFAA6B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,sCAAsC,sCAAsC;AACzG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACvSa;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;;;;;;;;;AChCA,8GAA0C;;;;;;;;;;;;ACA7B;;AAEb,aAAa,sFAA6B;AAC1C,cAAc,mBAAO,CAAC,uEAAS;AAC/B,uBAAuB,mBAAO,CAAC,sEAAoB;;AAEnD;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AC5GA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;;;;;;;;;ACHA,wHAAkE;AAClE,wHAAsE;AACtE,oIAA4D;AAC5D,oIAA+D;AAC/D,wHAA2D;AAC3D,wHAAuE;AACvE,iIAA+E;AAC/E,oIAAuE;AACvE,wHAAwE;AACxE,wHAAoE;AACpE,wHAAiE;AACjE,wHAA2E;AAC3E,iIAAqE;AACrE,wHAAiE;AACjE,yHAAmE;AACnE,iIAAmE;AACnE,iIAAsE;AACtE,oIAAiE;AACjE,oIAA+E;AAC/E,oIAA0E;AAC1E,yHAAyE;AACzE,yHAAgF;AAChF,yHAA8E;AAC9E,iIAA2F;AAC3F,iIAAuE;AACvE,iIAA2E;AAC3E,oIAAgE;AAChE,yHAAsE;AACtE,yHAA6D;AAC7D,oIAA2D;AAC3D,yHAAiE;AACjE,iIAAsD;AACtD,iIAAwE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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,+CAA+C;AAC/C,+CAA+C;AAC/C,+CAA+C;AAC/C,+CAA+C;AAC/C,+CAA+C;AAC/C;AACA,+CAA+C;AAC/C,+CAA+C;AAC/C,+CAA+C;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uDAAuD;AACvD,uDAAuD;AACvD,uDAAuD;AACvD,uDAAuD;AACvD,uDAAuD;AACvD;AACA,uDAAuD;AACvD,uDAAuD;AACvD,uDAAuD;AACvD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,QAAQ;AACtB;AACA,cAAc,QAAQ;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;;AAEA;AACA,kBAAkB,QAAQ;AAC1B;;AAEA;AACA,kBAAkB,QAAQ;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD;;AAEA;AACA;AACA,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB;AACtB,sBAAsB;;AAEtB;AACA;AACA;;AAEA,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB;AACtB,sBAAsB;;AAEtB;AACA;AACA;;AAEA,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB;AACtB,sBAAsB;;AAEtB;AACA;;AAEA,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;;AAEA,0BAA0B;AAC1B,0BAA0B;;AAE1B;AACA;;AAEA,2BAA2B;AAC3B,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;;AAEA,2BAA2B;AAC3B,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;;AAEA,2BAA2B;AAC3B,2BAA2B;;AAE3B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;;AAEA;AACA;AACA;AACA;;AAEA,cAAc,OAAO;;AAErB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,QAAQ;AACtB;AACA;;AAEA;;AAEA;AACA;AACA,eAAe,SAAS;AACxB;AACA,iCAAiC,OAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,cAAc,OAAO;AACrB,cAAc,QAAQ;;AAEtB;AACA;AACA;AACA;;AAEA,eAAe,QAAQ;AACvB;AACA;;AAEA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,cAAc,OAAO;AACrB,cAAc,QAAQ;AACtB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,gBAAgB;AAClC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uBAAuB;AACrC,cAAc,gBAAgB;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,KAAK;AACL,IAAI,SAAS,IAA8B;AAC3C;AACA,aAAa,mBAAO,CAAC,qBAAQ;AAC7B;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,OAAO;AACP;AACA;AACA,CAAC;;AAED,CAAC,EAAE,KAA6B,kEAAkE;;;;;;;;;;;;ACt1ErF;;AAEb,iBAAiB,mBAAO,CAAC,wDAAgB;;AAEzC,gBAAgB,mBAAO,CAAC,sDAAY;;AAEpC,WAAW,4EAA4E;AACvF;;AAEA,mBAAmB,mBAAO,CAAC,8DAAgB;;AAE3C,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,QAAQ,OAAO;AACf,QAAQ;AACR,QAAQ,OAAO;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,SAAS,qBAAM;AACf,IAAI;AACJ;AACA;AACA,YAAY,qBAAM;AAClB;AACA;AACA;;;;;;;;;;;AClEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACLA;AACA;;AAEa;;AAEb,wBAAwB,mBAAO,CAAC,0DAAc;AAC9C,0BAA0B,mBAAO,CAAC,4EAAuB;AACzD,sBAAsB,mBAAO,CAAC,oEAAmB;AACjD,mBAAmB,mBAAO,CAAC,8DAAgB;;AAE3C;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA,yBAAyB;AACzB,2BAA2B;AAC3B,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;;AAGzB;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;;;AC7UD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,wBAAwB,SAAS;AACjC;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa,OAAO,oBAAoB,OAAO;AAC/C;AACA;;AAEA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,OAAO;AACjB;AACA,QAAQ,SAAS,OAAO;AACxB,QAAQ,OAAO;AACf,QAAQ;AACR,QAAQ,OAAO;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA,IAAI,OAAO;AACX,iBAAiB,OAAO;AACxB,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA,QAAQ,OAAO;AACf;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;;AAGf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4CAA4C,KAAK;;AAEjD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;AAGA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA;AACA,WAAW;AACX;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA,kGAA0C;;AAE1C;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,gBAAgB;AAChB,sBAAsB;;AAEtB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,cAAc;AACd,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA,eAAe;AACf,2BAA2B;;AAE3B;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB,kHAAgD;;AAEhD;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,WAAW;AACX,EAAE,OAAO;AACT;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA,WAAW,UAAU;AACrB;AACA,qGAAsC;;AAEtC,eAAe;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO,qCAAqC;AACxE,4BAA4B,OAAO,sDAAsD;AACzF;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;;;;;;;;;;AC1sBnB;AACA;AACA,yBAAyB,eAAe;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,eAAe;AACxC;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;AAC5B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,iBAAiB;AACjB;AACA;;AAEA,oBAAoB;AACpB;AACA;;AAEA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;;;;;;;;;;;ACpJa;;AAEb,cAAc,mBAAO,CAAC,kDAAU;AAChC,2BAA2B,mBAAO,CAAC,8EAAwB;AAC3D,eAAe,mBAAO,CAAC,oDAAW;AAClC,gBAAgB,mBAAO,CAAC,sDAAY;AACpC,WAAW,mBAAO,CAAC,0CAAM;AACzB,eAAe,mBAAO,CAAC,oDAAW;;AAElC;AACA,qBAAqB,mBAAO,CAAC,sEAAuB;;AAEpD,4CAA4C,qBAAM;AAClD;;AAEA;;AAEA,WAAW,8DAA8D;AACzE;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,0BAA0B;AACxC,WAAW,yBAAyB;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI,2BAA2B,GAAG;AACjD,kBAAkB,2DAA2D;AAC7E;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA,WAAW,uDAAuD;AAClE;AACA,YAAY,sCAAsC;AAClD;AACA,aAAa,YAAY,2BAA2B,YAAY;AAChE,aAAa,4BAA4B,2BAA2B,YAAY;AAChF;AACA;AACA;AACA;AACA;AACA,yBAAyB,4BAA4B;AACrD;AACA,MAAM,YAAY;AAClB;AACA;AACA;AACA;AACA;;AAEA,WAAW,uDAAuD;AAClE;AACA,YAAY,iCAAiC;AAC7C;AACA,aAAa,YAAY,2BAA2B,YAAY;AAChE,aAAa,4BAA4B,2BAA2B,YAAY;AAChF;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD,MAAM,YAAY;AAClB;AACA;AACA;AACA;AACA;;AAEA,WAAW,aAAa;AACxB;AACA,4CAA4C;AAC5C;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B;AACA;;;;;;;;;;;;;ACpHa;AACb;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa,GAAG,UAAU,GAAG,oBAAoB,GAAG,cAAc;AAClE,iBAAiB,mBAAO,CAAC,gFAA4B;AACrD,mBAAmB,mBAAO,CAAC,sDAAY;AACvC;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT,qCAAqC,YAAY;AACjD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,0BAA0B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA,gBAAgB;AAChB;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,oCAAoC,eAAe;AACnD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4CAA4C;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,OAAO;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,gBAAgB;AAChB;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,gBAAgB;AAChB;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,oBAAoB;AACpB;AACA,kBAAe;AACf,2CAA2C;;;;;;;;;;ACltD3C;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;;ACAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc;AACd,wBAAwB,mBAAO,CAAC,iFAAiB;AACjD,yBAAyB,mBAAO,CAAC,mFAAkB;AACnD,oBAAoB,mBAAO,CAAC,yFAAqB;AACjD,mBAAmB,mBAAO,CAAC,uFAAoB;AAC/C,oBAAoB,mBAAO,CAAC,yFAAqB;AACjD,sBAAsB,mBAAO,CAAC,qFAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,oBAAoB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnQa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,iBAAiB,kBAAkB,kBAAkB;;;;;;;;;;;;ACpDzC;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB,uBAAuB;AACvB,iBAAiB;AACjB,yBAAyB,mBAAO,CAAC,mFAAkB;AACnD,oBAAoB,mBAAO,CAAC,yFAAqB;AACjD,qBAAqB,mBAAO,CAAC,2FAAsB;AACnD,6BAA6B,mBAAO,CAAC,qGAA2B;AAChE;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,6BAA6B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpNa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChCa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB,oBAAoB,mBAAO,CAAC,mFAAkB;AAC9C;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,mBAAmB,OAAO;AAC1B,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,MAAM;AAC5D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,uDAAuD,MAAM;AAC7D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7Ha;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnCa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,kBAAkB;AAClB,qBAAqB;AACrB,oBAAoB;AACpB,wBAAwB;AACxB,oBAAoB,mBAAO,CAAC,iFAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC5Ea;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB,qBAAqB;AACrB,qBAAqB;AACrB,iBAAiB;AACjB,yBAAyB,mBAAO,CAAC,oFAAmB;AACpD,wBAAwB,mBAAO,CAAC,kFAAkB;AAClD,mBAAmB,mBAAO,CAAC,+EAAY;AACvC,mBAAmB,mBAAO,CAAC,+EAAY;AACvC,6BAA6B,mBAAO,CAAC,sGAA4B;AACjE,2BAA2B,mBAAO,CAAC,kGAA0B;AAC7D,yBAAyB,mBAAO,CAAC,oFAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,yBAAyB,QAAQ,iBAAiB;AACnF;AACA;AACA,iCAAiC,wBAAwB,QAAQ,iBAAiB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,UAAU,IAAI,oCAAoC;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,iBAAiB,sBAAsB,iBAAiB;AAC5H;AACA;AACA;AACA,6DAA6D,eAAe,IAAI,uCAAuC;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,OAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,OAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ,aAAa,eAAe;AAC9E;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA,uBAAuB,oCAAoC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,WAAW;AAChD;AACA;AACA,gCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,cAAc;AAChD;AACA;AACA;AACA,oDAAoD,2BAA2B;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,cAAc;AAC5C;AACA;AACA;AACA;AACA,mCAAmC,yBAAyB;AAC5D;AACA,mCAAmC,sBAAsB;AACzD;AACA,mCAAmC,0CAA0C;AAC7E;AACA;AACA;AACA;AACA;AACA,kCAAkC,0CAA0C,IAAI,yBAAyB;AACzG;AACA,kCAAkC,0CAA0C,IAAI,sBAAsB;AACtG;AACA,kCAAkC,0CAA0C,IAAI,0CAA0C;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzQa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf,mBAAmB;AACnB,kBAAkB;AAClB,yBAAyB,mBAAO,CAAC,oFAAmB;AACpD,2BAA2B,mBAAO,CAAC,+FAAoB;AACvD,mBAAmB,mBAAO,CAAC,+EAAY;AACvC,oBAAoB,mBAAO,CAAC,iFAAa;AACzC,oBAAoB,mBAAO,CAAC,0EAAc;AAC1C,sBAAsB,mBAAO,CAAC,sFAAoB;AAClD,oBAAoB,mBAAO,CAAC,iFAAa;AACzC,yBAAyB,mBAAO,CAAC,oFAAmB;AACpD,mBAAmB,mBAAO,CAAC,+EAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,mBAAmB,eAAe,gBAAgB;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,UAAU;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1hBa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB;AACpB,uBAAuB;AACvB,yBAAyB;AACzB,yBAAyB,mBAAO,CAAC,oFAAmB;AACpD,yBAAyB,mBAAO,CAAC,oFAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;;;;;;;;;;;;ACtGa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB;AACnB,uBAAuB;AACvB,mBAAmB;AACnB,2BAA2B;AAC3B,iBAAiB;AACjB,iBAAiB;AACjB,mBAAmB;AACnB,oBAAoB,mBAAO,CAAC,iFAAa;AACzC;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnJa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB;AAChB,kBAAkB;AAClB,qBAAqB,mBAAO,CAAC,2FAAsB;AACnD,6BAA6B,mBAAO,CAAC,qGAA2B;AAChE,yBAAyB,mBAAO,CAAC,mFAAkB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,kBAAkB,GAAG,QAAQ;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,QAAQ,GAAG,WAAW,aAAa,UAAU;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACtMa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB;AACpB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1Ja;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,GAAG,oBAAoB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,gBAAgB;AACvK,oBAAoB,mBAAO,CAAC,8EAAa;AACzC,yBAAyB,mBAAO,CAAC,oFAAmB;AACpD,2BAA2B,mBAAO,CAAC,4FAAoB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,eAAe,gBAAgB,gBAAgB;AAChD;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oCAAoC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACjgBa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa,mBAAO,CAAC,gGAAsB;AAC3C,aAAa,mBAAO,CAAC,gGAAsB;AAC3C,aAAa,mBAAO,CAAC,4FAAoB;AACzC,aAAa,mBAAO,CAAC,wFAAkB;AACvC,aAAa,mBAAO,CAAC,8FAAqB;;;;;;;;;;;;ACjC7B;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA,uDAAuD;AACvD;AACA;AACA;AACA,0MAA0M,cAAc;AACxN,8BAA8B,sBAAsB;AACpD,0BAA0B,YAAY,sBAAsB,qCAAqC,2CAA2C,MAAM;AAClJ,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B;AAC3B,iCAAiC;AACjC,yBAAyB;AACzB,uBAAuB,mBAAO,CAAC,gFAAiB;AAChD,6BAA6B,mBAAO,CAAC,gGAAsB;AAC3D,yBAAyB,mBAAO,CAAC,oFAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,8EAA8E;AAClK;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACxJa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,6BAA6B;AAC7B,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;;;;;;;;;;;ACrDa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gCAAgC;AAChC,kCAAkC;AAClC,yBAAyB,mBAAO,CAAC,oFAAmB;AACpD,yBAAyB,mBAAO,CAAC,oFAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,UAAU,iBAAiB,MAAM;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,mCAAmC,iBAAiB,MAAM;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACvMa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB;AACpB,qBAAqB;AACrB,uBAAuB;AACvB,qBAAqB;AACrB,sBAAsB;AACtB,qBAAqB;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClUa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB;AACjB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzCa;;AAEb,oBAAoB,mBAAO,CAAC,sFAA4B;;AAExD,4CAA4C,qBAAM;;AAElD,WAAW,aAAa;AACxB;AACA,gBAAgB,yCAAyC;AACzD,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UChBA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCzBA;;;;;WCAA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,IAAI;WACJ;WACA;WACA,IAAI;WACJ;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA,sGAAsG;WACtG;WACA;WACA;WACA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA,EAAE;WACF;WACA;;;;;WChEA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;WACA;WACA;WACA;WACA;;;;;UEJA;UACA;UACA;UACA","sources":["webpack://structs-webapp/./js/api/GuildAPI.js","webpack://structs-webapp/./js/api/GuildAPIResponse.js","webpack://structs-webapp/./js/builders/CheatsheetContentBuilder.js","webpack://structs-webapp/./js/builders/MapOrnamentComponentBuilder.js","webpack://structs-webapp/./js/builders/MapTransitionComponentBuilder.js","webpack://structs-webapp/./js/builders/PlanetCardBuilder.js","webpack://structs-webapp/./js/builders/StructStillBuilder.js","webpack://structs-webapp/./js/builders/StructTypeArtSetBuilder.js","webpack://structs-webapp/./js/constants/Ambits.js","webpack://structs-webapp/./js/constants/AnimationConstants.js","webpack://structs-webapp/./js/constants/Events.js","webpack://structs-webapp/./js/constants/Fee.js","webpack://structs-webapp/./js/constants/HUDConstants.js","webpack://structs-webapp/./js/constants/LocationTypes.js","webpack://structs-webapp/./js/constants/MapConstants.js","webpack://structs-webapp/./js/constants/MapPerspectives.js","webpack://structs-webapp/./js/constants/MenuPageRouterModes.js","webpack://structs-webapp/./js/constants/NotificationDialogueSequences.js","webpack://structs-webapp/./js/constants/ObjectTypes.js","webpack://structs-webapp/./js/constants/PaginationLimits.js","webpack://structs-webapp/./js/constants/Permissions.js","webpack://structs-webapp/./js/constants/PlanetCardTypes.js","webpack://structs-webapp/./js/constants/PlayerMapRoles.js","webpack://structs-webapp/./js/constants/PlayerTypes.js","webpack://structs-webapp/./js/constants/PrecisionConstants.js","webpack://structs-webapp/./js/constants/RaidStatus.js","webpack://structs-webapp/./js/constants/RegexPattern.js","webpack://structs-webapp/./js/constants/SettingConstants.js","webpack://structs-webapp/./js/constants/StructConstants.js","webpack://structs-webapp/./js/constants/TaskConstants.js","webpack://structs-webapp/./js/constants/TaskManagerStatus.js","webpack://structs-webapp/./js/constants/TaskStatus.js","webpack://structs-webapp/./js/constants/TaskTypes.js","webpack://structs-webapp/./js/controllers/AccountController.js","webpack://structs-webapp/./js/controllers/AuthController.js","webpack://structs-webapp/./js/controllers/FleetController.js","webpack://structs-webapp/./js/controllers/GenericController.js","webpack://structs-webapp/./js/controllers/GuildController.js","webpack://structs-webapp/./js/data_structures/AnimationEventQueue.js","webpack://structs-webapp/./js/data_structures/DoublyLinkedList.js","webpack://structs-webapp/./js/data_structures/DoublyLinkedNode.js","webpack://structs-webapp/./js/data_structures/Queue.js","webpack://structs-webapp/./js/dtos/ActivationCodeInfoDTO.js","webpack://structs-webapp/./js/dtos/AddPendingAddressRequestDTO.js","webpack://structs-webapp/./js/dtos/AddPlayerAddressMetaRequestDTO.js","webpack://structs-webapp/./js/dtos/CreateActivationCodeRequestDTO.js","webpack://structs-webapp/./js/dtos/GuildAPICacheItemDTO.js","webpack://structs-webapp/./js/dtos/GuildPowerStatsDTO.js","webpack://structs-webapp/./js/dtos/GuildSearchResultDTO.js","webpack://structs-webapp/./js/dtos/LoginRequestDTO.js","webpack://structs-webapp/./js/dtos/MapStructTileRenderParamsDTO.js","webpack://structs-webapp/./js/dtos/NavItemDTO.js","webpack://structs-webapp/./js/dtos/PlanetaryShieldInfoDTO.js","webpack://structs-webapp/./js/dtos/PlayerSearchResultDTO.js","webpack://structs-webapp/./js/dtos/PositionDTO.js","webpack://structs-webapp/./js/dtos/RaidSearchRequestDTO.js","webpack://structs-webapp/./js/dtos/SetAddressPermissionsRequestDTO.js","webpack://structs-webapp/./js/dtos/SetPendingAddressPermissionsRequestDTO.js","webpack://structs-webapp/./js/dtos/SignupRequestDTO.js","webpack://structs-webapp/./js/dtos/SocialsDTO.js","webpack://structs-webapp/./js/dtos/TransferSearchRequestDTO.js","webpack://structs-webapp/./js/errors/AnimationError.js","webpack://structs-webapp/./js/errors/GuildAPIError.js","webpack://structs-webapp/./js/errors/MapOrnamentComponentBuilderError.js","webpack://structs-webapp/./js/errors/MapTransitionLayerComponentFactoryError.js","webpack://structs-webapp/./js/events/AlphaCountChangedEvent.js","webpack://structs-webapp/./js/events/AnimationEndEvent.js","webpack://structs-webapp/./js/events/AnimationEvent.js","webpack://structs-webapp/./js/events/ChargeLevelChangedEvent.js","webpack://structs-webapp/./js/events/ClearAttackTargetsEvent.js","webpack://structs-webapp/./js/events/ClearDefendTargetsEvent.js","webpack://structs-webapp/./js/events/ClearMoveTargetsEvent.js","webpack://structs-webapp/./js/events/ClearStructTileEvent.js","webpack://structs-webapp/./js/events/EnergyUsageChangedEvent.js","webpack://structs-webapp/./js/events/OreCountChangedEvent.js","webpack://structs-webapp/./js/events/PendingBuildAddedEvent.js","webpack://structs-webapp/./js/events/PlanetRaidStatusChangedEvent.js","webpack://structs-webapp/./js/events/RefreshActionBarEvent.js","webpack://structs-webapp/./js/events/RefreshActionBarIfSelectedEvent.js","webpack://structs-webapp/./js/events/RenderDeploymentIndicatorEvent.js","webpack://structs-webapp/./js/events/RenderStructEvent.js","webpack://structs-webapp/./js/events/RenderStructHUDEvent.js","webpack://structs-webapp/./js/events/SaveGameStateEvent.js","webpack://structs-webapp/./js/events/ShieldHealthChangedEvent.js","webpack://structs-webapp/./js/events/ShowAttackTargetsEvent.js","webpack://structs-webapp/./js/events/ShowDefendTargetsEvent.js","webpack://structs-webapp/./js/events/ShowMoveTargetsEvent.js","webpack://structs-webapp/./js/events/StructCountChangedEvent.js","webpack://structs-webapp/./js/events/TaskCmdKillEvent.js","webpack://structs-webapp/./js/events/TaskCmdSpawnEvent.js","webpack://structs-webapp/./js/events/TaskCompletedEvent.js","webpack://structs-webapp/./js/events/TaskManagerStatusChangedEvent.js","webpack://structs-webapp/./js/events/TaskStateChangedEvent.js","webpack://structs-webapp/./js/events/TaskWorkerChangedEvent.js","webpack://structs-webapp/./js/events/TrackDestroyedStructEvent.js","webpack://structs-webapp/./js/events/TrackDestroyedStructsEvent.js","webpack://structs-webapp/./js/events/UndiscoveredOreCountChangedEvent.js","webpack://structs-webapp/./js/events/UpdateTileStructIdEvent.js","webpack://structs-webapp/./js/factories/AnimationEventFactory.js","webpack://structs-webapp/./js/factories/FleetFactory.js","webpack://structs-webapp/./js/factories/GuildAPIResponseFactory.js","webpack://structs-webapp/./js/factories/GuildFactory.js","webpack://structs-webapp/./js/factories/GuildPowerStatsDTOFactory.js","webpack://structs-webapp/./js/factories/GuildSearchResultDTOFactory.js","webpack://structs-webapp/./js/factories/InfusionFactory.js","webpack://structs-webapp/./js/factories/MapTransitionLayerComponentFactory.js","webpack://structs-webapp/./js/factories/NotificationDialogueSequenceFactory.js","webpack://structs-webapp/./js/factories/PlanetFactory.js","webpack://structs-webapp/./js/factories/PlanetRaidFactory.js","webpack://structs-webapp/./js/factories/PlanetaryShieldInfoDTOFactory.js","webpack://structs-webapp/./js/factories/PlayerAddressFactory.js","webpack://structs-webapp/./js/factories/PlayerAddressPendingFactory.js","webpack://structs-webapp/./js/factories/PlayerFactory.js","webpack://structs-webapp/./js/factories/PlayerOreStatsFactory.js","webpack://structs-webapp/./js/factories/PlayerSearchResultDTOFactory.js","webpack://structs-webapp/./js/factories/SettingFactory.js","webpack://structs-webapp/./js/factories/SocialsDTOFactory.js","webpack://structs-webapp/./js/factories/StructFactory.js","webpack://structs-webapp/./js/factories/StructTypeFactory.js","webpack://structs-webapp/./js/factories/TaskStateFactory.js","webpack://structs-webapp/./js/factories/TransactionFactory.js","webpack://structs-webapp/./js/factories/WorkFactory.js","webpack://structs-webapp/./js/framework/AbstractController.js","webpack://structs-webapp/./js/framework/AbstractFactory.js","webpack://structs-webapp/./js/framework/AbstractGrassListener.js","webpack://structs-webapp/./js/framework/AbstractViewModel.js","webpack://structs-webapp/./js/framework/AbstractViewModelComponent.js","webpack://structs-webapp/./js/framework/BannerLayer.js","webpack://structs-webapp/./js/framework/GrassError.js","webpack://structs-webapp/./js/framework/GrassManager.js","webpack://structs-webapp/./js/framework/JsonAjaxer.js","webpack://structs-webapp/./js/framework/MenuPage.js","webpack://structs-webapp/./js/framework/MenuPageRouter.js","webpack://structs-webapp/./js/framework/NotImplementedError.js","webpack://structs-webapp/./js/framework/NotificationDialogue.js","webpack://structs-webapp/./js/framework/NotificationDialogueSequence.js","webpack://structs-webapp/./js/framework/NotificationDialogueSequenceStep.js","webpack://structs-webapp/./js/grass_listeners/AlphaChangeListener.js","webpack://structs-webapp/./js/grass_listeners/AlphaInfusedChangeListener.js","webpack://structs-webapp/./js/grass_listeners/BlockListener.js","webpack://structs-webapp/./js/grass_listeners/ConnectionCapacityListener.js","webpack://structs-webapp/./js/grass_listeners/KeyPlayerLastActionListener.js","webpack://structs-webapp/./js/grass_listeners/KeyPlayerOreListener.js","webpack://structs-webapp/./js/grass_listeners/NewPlanetListener.js","webpack://structs-webapp/./js/grass_listeners/PlanetRaidStatusListener.js","webpack://structs-webapp/./js/grass_listeners/PlayerAddressApprovedListener.js","webpack://structs-webapp/./js/grass_listeners/PlayerAddressApprovedLoginListener.js","webpack://structs-webapp/./js/grass_listeners/PlayerAddressPendingCreatedListener.js","webpack://structs-webapp/./js/grass_listeners/PlayerAddressRevokedListener.js","webpack://structs-webapp/./js/grass_listeners/PlayerAlphaListener.js","webpack://structs-webapp/./js/grass_listeners/PlayerCapacityListener.js","webpack://structs-webapp/./js/grass_listeners/PlayerCreatedListener.js","webpack://structs-webapp/./js/grass_listeners/PlayerLoadListener.js","webpack://structs-webapp/./js/grass_listeners/PlayerStructsLoadListener.js","webpack://structs-webapp/./js/grass_listeners/RaidStatusListener.js","webpack://structs-webapp/./js/grass_listeners/StructListener.js","webpack://structs-webapp/./js/grass_listeners/StructMineStatusListener.js","webpack://structs-webapp/./js/grass_listeners/StructRefineStatusListener.js","webpack://structs-webapp/./js/grass_listeners/TransferSentListener.js","webpack://structs-webapp/./js/index.js","webpack://structs-webapp/./js/managers/AlphaManager.js","webpack://structs-webapp/./js/managers/AuthManager.js","webpack://structs-webapp/./js/managers/DestroyedStructManager.js","webpack://structs-webapp/./js/managers/FleetManager.js","webpack://structs-webapp/./js/managers/MapMananger.js","webpack://structs-webapp/./js/managers/PermissionManager.js","webpack://structs-webapp/./js/managers/PlanetManager.js","webpack://structs-webapp/./js/managers/PlayerAddressManager.js","webpack://structs-webapp/./js/managers/RaidManager.js","webpack://structs-webapp/./js/managers/SigningClientManager.js","webpack://structs-webapp/./js/managers/StructManager.js","webpack://structs-webapp/./js/managers/TaskManager.js","webpack://structs-webapp/./js/managers/WalletManager.js","webpack://structs-webapp/./js/models/ActionBarLock.js","webpack://structs-webapp/./js/models/Fleet.js","webpack://structs-webapp/./js/models/GameState.js","webpack://structs-webapp/./js/models/Guild.js","webpack://structs-webapp/./js/models/Infusion.js","webpack://structs-webapp/./js/models/KeyPlayer.js","webpack://structs-webapp/./js/models/Planet.js","webpack://structs-webapp/./js/models/PlanetRaid.js","webpack://structs-webapp/./js/models/Player.js","webpack://structs-webapp/./js/models/PlayerAddress.js","webpack://structs-webapp/./js/models/PlayerAddressPending.js","webpack://structs-webapp/./js/models/PlayerOreStats.js","webpack://structs-webapp/./js/models/Setting.js","webpack://structs-webapp/./js/models/Settings.js","webpack://structs-webapp/./js/models/Struct.js","webpack://structs-webapp/./js/models/StructType.js","webpack://structs-webapp/./js/models/StructTypeArtSet.js","webpack://structs-webapp/./js/models/StructTypeCollection.js","webpack://structs-webapp/./js/models/TaskProcess.js","webpack://structs-webapp/./js/models/TaskState.js","webpack://structs-webapp/./js/models/Transaction.js","webpack://structs-webapp/./js/models/UserAgent.js","webpack://structs-webapp/./js/models/Work.js","webpack://structs-webapp/./js/options/MenuWaitingOptions.js","webpack://structs-webapp/./js/sui/SUI.js","webpack://structs-webapp/./js/sui/SUICheatsheet.js","webpack://structs-webapp/./js/sui/SUICheatsheetContentBuilder.js","webpack://structs-webapp/./js/sui/SUICheatsheetRenderer.js","webpack://structs-webapp/./js/sui/SUIFeature.js","webpack://structs-webapp/./js/sui/SUIInputStepper.js","webpack://structs-webapp/./js/sui/SUINotImplementedError.js","webpack://structs-webapp/./js/sui/SUIOffcanvas.js","webpack://structs-webapp/./js/sui/SUITooltip.js","webpack://structs-webapp/./js/sui/SUIUtil.js","webpack://structs-webapp/./js/util/AmbitUtil.js","webpack://structs-webapp/./js/util/AttackSequenceAnimationUtil.js","webpack://structs-webapp/./js/util/CaseConverter.js","webpack://structs-webapp/./js/util/ChargeCalculator.js","webpack://structs-webapp/./js/util/ColorUtil.js","webpack://structs-webapp/./js/util/DateFormatter.js","webpack://structs-webapp/./js/util/NumberFormatter.js","webpack://structs-webapp/./js/util/RaidStatusUtil.js","webpack://structs-webapp/./js/util/ShieldHealthCalculator.js","webpack://structs-webapp/./js/util/TileClassNameUtil.js","webpack://structs-webapp/./js/vendor/Blockies.js","webpack://structs-webapp/./js/view_models/HUDViewModel.js","webpack://structs-webapp/./js/view_models/IndexViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountActivatingDeviceViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountApproveNewDeviceViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountChangeUsername.js","webpack://structs-webapp/./js/view_models/account/AccountConfirmTransfer.js","webpack://structs-webapp/./js/view_models/account/AccountDeviceActivationCancelled.js","webpack://structs-webapp/./js/view_models/account/AccountDeviceActivationComplete.js","webpack://structs-webapp/./js/view_models/account/AccountDeviceViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountDevicesViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountIndexViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountNewDeviceCodeViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountProfileViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountRecipientSearchResults.js","webpack://structs-webapp/./js/view_models/account/AccountRecipientSearchViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountRecipientViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountTransactionHistory.js","webpack://structs-webapp/./js/view_models/account/AccountTransactionViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountTransferAmountViewModel.js","webpack://structs-webapp/./js/view_models/account/AccountTransfersViewModel.js","webpack://structs-webapp/./js/view_models/banners/AbstractBannerViewModel.js","webpack://structs-webapp/./js/view_models/banners/DefeatBannerViewModel.js","webpack://structs-webapp/./js/view_models/banners/VictoryBannerViewModel.js","webpack://structs-webapp/./js/view_models/components/AlphaOwnedComponent.js","webpack://structs-webapp/./js/view_models/components/EnergyUsageComponent.js","webpack://structs-webapp/./js/view_models/components/GenericResourceComponent.js","webpack://structs-webapp/./js/view_models/components/LottieCustomPlayer.js","webpack://structs-webapp/./js/view_models/components/MapStructLottieAnimationSVG.js","webpack://structs-webapp/./js/view_models/components/MapStructViewerComponent.js","webpack://structs-webapp/./js/view_models/components/PlanetCardComponent.js","webpack://structs-webapp/./js/view_models/components/StructStillRenderer.js","webpack://structs-webapp/./js/view_models/components/hud/ActionBarComponent.js","webpack://structs-webapp/./js/view_models/components/hud/StatusBarTopLeftComponent.js","webpack://structs-webapp/./js/view_models/components/hud/StatusBarTopRightComponent.js","webpack://structs-webapp/./js/view_models/components/map/AbstractMapTransitionLayerComponent.js","webpack://structs-webapp/./js/view_models/components/map/GenericMapLayerComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapFogOfWarComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapOrnamentComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapOrnamentsComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapPictureInPictureComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapStructHUDLayerComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapStructLayerComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapTerrainAmbitComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapTerrainComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapTileMarkersComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapTileSelectionComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapTransitionComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapTransitionLayerOrnamentComponent.js","webpack://structs-webapp/./js/view_models/components/map/MapTransitionLayerTileSetComponent.js","webpack://structs-webapp/./js/view_models/components/offcanvas/DeployOffcanvas.js","webpack://structs-webapp/./js/view_models/components/sequences/AttackerVictoryDialogueSequence.js","webpack://structs-webapp/./js/view_models/components/sequences/DefeatedByAttackerDialogueSequence.js","webpack://structs-webapp/./js/view_models/components/sequences/DefeatedByDefenderDialogueSequence.js","webpack://structs-webapp/./js/view_models/components/sequences/DefenderVictoryDialogueSequence.js","webpack://structs-webapp/./js/view_models/fleet/FleetIndexViewModel.js","webpack://structs-webapp/./js/view_models/fleet/PreviewViewModel.js","webpack://structs-webapp/./js/view_models/fleet/ScanResultsViewModel.js","webpack://structs-webapp/./js/view_models/fleet/ScanViewModel.js","webpack://structs-webapp/./js/view_models/generic/MenuWaitingViewModel.js","webpack://structs-webapp/./js/view_models/guild/GuildIndexViewModel.js","webpack://structs-webapp/./js/view_models/guild/GuildProfileViewModel.js","webpack://structs-webapp/./js/view_models/guild/GuildsDirectoryViewModel.js","webpack://structs-webapp/./js/view_models/guild/ManageAlphaViewModel.js","webpack://structs-webapp/./js/view_models/guild/MemberRosterViewModel.js","webpack://structs-webapp/./js/view_models/guild/ReactorViewModel.js","webpack://structs-webapp/./js/view_models/login/ActivateDeviceCancelledViewModel.js","webpack://structs-webapp/./js/view_models/login/ActivateDeviceCompleteViewModel.js","webpack://structs-webapp/./js/view_models/login/ActivateDeviceVerifyViewModel.js","webpack://structs-webapp/./js/view_models/login/ActivateDeviceViewModel.js","webpack://structs-webapp/./js/view_models/login/ActivateDeviceWaitingForApprovalViewModel.js","webpack://structs-webapp/./js/view_models/login/ActivatingDeviceViewModel.js","webpack://structs-webapp/./js/view_models/login/LoggingInViewModel.js","webpack://structs-webapp/./js/view_models/login/RecoverAccountFailViewModel.js","webpack://structs-webapp/./js/view_models/login/RecoverAccountStartViewModel.js","webpack://structs-webapp/./js/view_models/login/RecoverAccountSuccessViewModel.js","webpack://structs-webapp/./js/view_models/logout/LogoutAssetsWarningViewModel.js","webpack://structs-webapp/./js/view_models/logout/LogoutPermissionsWarningViewModel.js","webpack://structs-webapp/./js/view_models/signup/ConnectingToCorp1ViewModel.js","webpack://structs-webapp/./js/view_models/signup/ConnectingToCorp2ViewModel.js","webpack://structs-webapp/./js/view_models/signup/IncomingCall1ViewModel.js","webpack://structs-webapp/./js/view_models/signup/IncomingCall2ViewModel.js","webpack://structs-webapp/./js/view_models/signup/IncomingCall3ViewModel.js","webpack://structs-webapp/./js/view_models/signup/Orientation1ViewModel.js","webpack://structs-webapp/./js/view_models/signup/Orientation2ViewModel.js","webpack://structs-webapp/./js/view_models/signup/Orientation3ViewModel.js","webpack://structs-webapp/./js/view_models/signup/Orientation4ViewModel.js","webpack://structs-webapp/./js/view_models/signup/Orientation5ViewModel.js","webpack://structs-webapp/./js/view_models/signup/Orientation6ViewModel.js","webpack://structs-webapp/./js/view_models/signup/Orientation7ViewModel.js","webpack://structs-webapp/./js/view_models/signup/Orientation8ViewModel.js","webpack://structs-webapp/./js/view_models/signup/OrientationEndViewModel.js","webpack://structs-webapp/./js/view_models/signup/RecoveryKeyConfirmationViewModel.js","webpack://structs-webapp/./js/view_models/signup/RecoveryKeyCreationViewModel.js","webpack://structs-webapp/./js/view_models/signup/RecoveryKeyFaqViewModel.js","webpack://structs-webapp/./js/view_models/signup/RecoveryKeyIntroViewModel.js","webpack://structs-webapp/./js/view_models/signup/SetUsernameViewModel.js","webpack://structs-webapp/./js/view_models/signup/SignupSuccessViewModel.js","webpack://structs-webapp/./js/view_models/templates/ConfirmTemplate.js","webpack://structs-webapp/./js/view_models/templates/HRBotTalkingTemplate.js","webpack://structs-webapp/./js/view_models/templates/OrientationStructDeployedTemplate.js","webpack://structs-webapp/./js/view_models/templates/partials/PageHeader.js","webpack://structs-webapp/./js/view_models/templates/partials/Pagination.js","webpack://structs-webapp/./js/view_models/templates/partials/SystemModal.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/bip39.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/hmac.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/keccak.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/libsodium.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/pbkdf2.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/random.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/ripemd.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/secp256k1.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/secp256k1signature.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/sha.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/slip10.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/build/utils.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/encoding/build/ascii.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/encoding/build/base64.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/encoding/build/bech32.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/encoding/build/hex.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/encoding/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/encoding/build/rfc3339.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/encoding/build/utf8.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/math/build/decimal.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/math/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/math/build/integers.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/utils/build/arrays.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/utils/build/assert.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/utils/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/utils/build/sleep.js","webpack://structs-webapp/./node_modules/@cosmjs/crypto/node_modules/@cosmjs/utils/build/typechecks.js","webpack://structs-webapp/./node_modules/@cosmjs/json-rpc/build/compatibility.js","webpack://structs-webapp/./node_modules/@cosmjs/json-rpc/build/id.js","webpack://structs-webapp/./node_modules/@cosmjs/json-rpc/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/json-rpc/build/jsonrpcclient.js","webpack://structs-webapp/./node_modules/@cosmjs/json-rpc/build/parse.js","webpack://structs-webapp/./node_modules/@cosmjs/json-rpc/build/types.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/build/decode.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/build/directsecp256k1hdwallet.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/build/directsecp256k1wallet.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/build/paths.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/build/pubkey.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/build/registry.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/build/signer.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/build/signing.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/build/wallet.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/addresses.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/coins.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/encoding.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/multisig.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/omitdefault.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/paths.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/pubkeys.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/secp256k1hdwallet.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/secp256k1wallet.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/signature.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/signdoc.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/stdtx.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/amino/build/wallet.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/ascii.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/base64.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/bech32.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/hex.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/rfc3339.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/utf8.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/math/build/decimal.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/math/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/math/build/integers.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/arrays.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/assert.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/sleep.js","webpack://structs-webapp/./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/typechecks.js","webpack://structs-webapp/./node_modules/@cosmjs/socket/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/socket/build/queueingstreamingsocket.js","webpack://structs-webapp/./node_modules/@cosmjs/socket/build/reconnectingsocket.js","webpack://structs-webapp/./node_modules/@cosmjs/socket/build/socketwrapper.js","webpack://structs-webapp/./node_modules/@cosmjs/socket/build/streamingsocket.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/accounts.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/aminotypes.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/events.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/fee.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/logs.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/auth/queries.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/authz/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/authz/messages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/authz/queries.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/bank/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/bank/messages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/bank/queries.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/crisis/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/distribution/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/distribution/messages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/distribution/queries.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/evidence/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/feegrant/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/feegrant/messages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/feegrant/queries.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/gov/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/gov/messages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/gov/queries.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/group/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/group/messages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/ibc/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/ibc/messages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/ibc/queries.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/index.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/mint/queries.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/slashing/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/slashing/queries.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/staking/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/staking/messages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/staking/queries.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/tx/queries.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/vesting/aminomessages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/modules/vesting/messages.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/multisignature.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/queryclient/index.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/queryclient/queryclient.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/queryclient/utils.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/search.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/signingstargateclient.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/build/stargateclient.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/addresses.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/coins.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/encoding.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/multisig.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/omitdefault.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/paths.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/pubkeys.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/secp256k1hdwallet.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/secp256k1wallet.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/signature.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/signdoc.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/stdtx.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/amino/build/wallet.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/ascii.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/base64.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/bech32.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/hex.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/rfc3339.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/utf8.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/math/build/decimal.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/math/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/math/build/integers.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/arrays.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/assert.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/sleep.js","webpack://structs-webapp/./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/typechecks.js","webpack://structs-webapp/./node_modules/@cosmjs/stream/build/concat.js","webpack://structs-webapp/./node_modules/@cosmjs/stream/build/defaultvalueproducer.js","webpack://structs-webapp/./node_modules/@cosmjs/stream/build/dropduplicates.js","webpack://structs-webapp/./node_modules/@cosmjs/stream/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/stream/build/promise.js","webpack://structs-webapp/./node_modules/@cosmjs/stream/build/reducer.js","webpack://structs-webapp/./node_modules/@cosmjs/stream/build/valueandupdates.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/addresses.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/comet38/adaptor/index.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/comet38/adaptor/requests.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/comet38/adaptor/responses.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/comet38/comet38client.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/comet38/encodings.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/comet38/hasher.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/comet38/index.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/comet38/requests.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/comet38/responses.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/dates.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/inthelpers.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/jsonrpc.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/http.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/httpbatchclient.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/httpclient.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/index.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/rpcclient.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/websocketclient.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/index.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/requests.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/responses.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/encodings.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/hasher.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/index.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/requests.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/responses.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/tendermint34client.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/index.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/requests.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/responses.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/encodings.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/hasher.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/index.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/requests.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/responses.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/tendermint37client.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/tendermintclient.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/build/types.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/ascii.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/base64.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/bech32.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/hex.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/rfc3339.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/utf8.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/math/build/decimal.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/math/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/math/build/integers.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/arrays.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/assert.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/index.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/sleep.js","webpack://structs-webapp/./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/typechecks.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/authenticator.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/bench.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/core.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/databuffer.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/denobuffer.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/encoders.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/errors.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/headers.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/heartbeats.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/idleheartbeat_monitor.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/internal_mod.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/ipparser.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/mod.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/msg.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/muxsubscription.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/nats.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/nkeys.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/nuid.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/options.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/parser.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/protocol.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/queued_iterator.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/request.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/semver.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/servers.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/transport.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/types.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/util.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/version.js","webpack://structs-webapp/./node_modules/@nats-io/nats-core/lib/ws_transport.js","webpack://structs-webapp/./node_modules/@nats-io/nkeys/lib/base32.js","webpack://structs-webapp/./node_modules/@nats-io/nkeys/lib/codec.js","webpack://structs-webapp/./node_modules/@nats-io/nkeys/lib/crc16.js","webpack://structs-webapp/./node_modules/@nats-io/nkeys/lib/curve.js","webpack://structs-webapp/./node_modules/@nats-io/nkeys/lib/kp.js","webpack://structs-webapp/./node_modules/@nats-io/nkeys/lib/mod.js","webpack://structs-webapp/./node_modules/@nats-io/nkeys/lib/nacl.js","webpack://structs-webapp/./node_modules/@nats-io/nkeys/lib/nkeys.js","webpack://structs-webapp/./node_modules/@nats-io/nkeys/lib/public.js","webpack://structs-webapp/./node_modules/@nats-io/nkeys/lib/util.js","webpack://structs-webapp/./node_modules/@nats-io/nkeys/lib/version.js","webpack://structs-webapp/./node_modules/@nats-io/nuid/lib/nuid.js","webpack://structs-webapp/./node_modules/@noble/curves/_shortw_utils.js","webpack://structs-webapp/./node_modules/@noble/curves/abstract/curve.js","webpack://structs-webapp/./node_modules/@noble/curves/abstract/hash-to-curve.js","webpack://structs-webapp/./node_modules/@noble/curves/abstract/modular.js","webpack://structs-webapp/./node_modules/@noble/curves/abstract/weierstrass.js","webpack://structs-webapp/./node_modules/@noble/curves/secp256k1.js","webpack://structs-webapp/./node_modules/@noble/curves/utils.js","webpack://structs-webapp/./node_modules/@noble/hashes/_md.js","webpack://structs-webapp/./node_modules/@noble/hashes/_u64.js","webpack://structs-webapp/./node_modules/@noble/hashes/crypto.js","webpack://structs-webapp/./node_modules/@noble/hashes/hmac.js","webpack://structs-webapp/./node_modules/@noble/hashes/legacy.js","webpack://structs-webapp/./node_modules/@noble/hashes/pbkdf2.js","webpack://structs-webapp/./node_modules/@noble/hashes/ripemd160.js","webpack://structs-webapp/./node_modules/@noble/hashes/sha2.js","webpack://structs-webapp/./node_modules/@noble/hashes/sha256.js","webpack://structs-webapp/./node_modules/@noble/hashes/sha3.js","webpack://structs-webapp/./node_modules/@noble/hashes/sha512.js","webpack://structs-webapp/./node_modules/@noble/hashes/utils.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/api.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/base/buffer.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/base/index.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/base/node.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/base/reporter.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/constants/der.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/constants/index.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/decoders/der.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/decoders/index.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/decoders/pem.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/encoders/der.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/encoders/index.js","webpack://structs-webapp/./node_modules/asn1.js/lib/asn1/encoders/pem.js","webpack://structs-webapp/./node_modules/asn1.js/node_modules/bn.js/lib/bn.js","webpack://structs-webapp/./node_modules/assert/build/assert.js","webpack://structs-webapp/./node_modules/assert/build/internal/assert/assertion_error.js","webpack://structs-webapp/./node_modules/assert/build/internal/errors.js","webpack://structs-webapp/./node_modules/assert/build/internal/util/comparisons.js","webpack://structs-webapp/./node_modules/base64-js/index.js","webpack://structs-webapp/./node_modules/bech32/index.js","webpack://structs-webapp/./node_modules/bn.js/lib/bn.js","webpack://structs-webapp/./node_modules/brorand/index.js","webpack://structs-webapp/./node_modules/browserify-aes/aes.js","webpack://structs-webapp/./node_modules/browserify-aes/authCipher.js","webpack://structs-webapp/./node_modules/browserify-aes/browser.js","webpack://structs-webapp/./node_modules/browserify-aes/decrypter.js","webpack://structs-webapp/./node_modules/browserify-aes/encrypter.js","webpack://structs-webapp/./node_modules/browserify-aes/ghash.js","webpack://structs-webapp/./node_modules/browserify-aes/incr32.js","webpack://structs-webapp/./node_modules/browserify-aes/modes/cbc.js","webpack://structs-webapp/./node_modules/browserify-aes/modes/cfb.js","webpack://structs-webapp/./node_modules/browserify-aes/modes/cfb1.js","webpack://structs-webapp/./node_modules/browserify-aes/modes/cfb8.js","webpack://structs-webapp/./node_modules/browserify-aes/modes/ctr.js","webpack://structs-webapp/./node_modules/browserify-aes/modes/ecb.js","webpack://structs-webapp/./node_modules/browserify-aes/modes/index.js","webpack://structs-webapp/./node_modules/browserify-aes/modes/ofb.js","webpack://structs-webapp/./node_modules/browserify-aes/streamCipher.js","webpack://structs-webapp/./node_modules/browserify-cipher/browser.js","webpack://structs-webapp/./node_modules/browserify-des/index.js","webpack://structs-webapp/./node_modules/browserify-des/modes.js","webpack://structs-webapp/./node_modules/browserify-rsa/index.js","webpack://structs-webapp/./node_modules/browserify-sign/algos.js","webpack://structs-webapp/./node_modules/browserify-sign/browser/index.js","webpack://structs-webapp/./node_modules/browserify-sign/browser/sign.js","webpack://structs-webapp/./node_modules/browserify-sign/browser/verify.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer/index.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/string_decoder/lib/string_decoder.js","webpack://structs-webapp/./node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer/index.js","webpack://structs-webapp/./node_modules/buffer-xor/index.js","webpack://structs-webapp/./node_modules/buffer/index.js","webpack://structs-webapp/./node_modules/call-bind-apply-helpers/actualApply.js","webpack://structs-webapp/./node_modules/call-bind-apply-helpers/applyBind.js","webpack://structs-webapp/./node_modules/call-bind-apply-helpers/functionApply.js","webpack://structs-webapp/./node_modules/call-bind-apply-helpers/functionCall.js","webpack://structs-webapp/./node_modules/call-bind-apply-helpers/index.js","webpack://structs-webapp/./node_modules/call-bind-apply-helpers/reflectApply.js","webpack://structs-webapp/./node_modules/call-bind/callBound.js","webpack://structs-webapp/./node_modules/call-bind/index.js","webpack://structs-webapp/./node_modules/call-bound/index.js","webpack://structs-webapp/./node_modules/cipher-base/index.js","webpack://structs-webapp/./node_modules/console-browserify/index.js","webpack://structs-webapp/./node_modules/core-util-is/lib/util.js","webpack://structs-webapp/./node_modules/cosmjs-types/binary.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/auth/v1beta1/auth.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/auth/v1beta1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/authz/v1beta1/authz.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/authz/v1beta1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/authz/v1beta1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/bank/v1beta1/bank.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/bank/v1beta1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/bank/v1beta1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/base/abci/v1beta1/abci.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/crypto/ed25519/keys.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/crypto/multisig/keys.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/crypto/multisig/v1beta1/multisig.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/crypto/secp256k1/keys.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/distribution/v1beta1/distribution.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/distribution/v1beta1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/distribution/v1beta1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/feegrant.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/gov/v1/gov.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/gov/v1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/gov/v1beta1/gov.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/gov/v1beta1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/gov/v1beta1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/group/v1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/group/v1/types.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/ics23/v1/proofs.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/mint/v1beta1/mint.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/mint/v1beta1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/slashing/v1beta1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/slashing/v1beta1/slashing.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/staking/v1beta1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/staking/v1beta1/staking.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/staking/v1beta1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/tx/signing/v1beta1/signing.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/tx/v1beta1/service.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/tx/v1beta1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/upgrade/v1beta1/upgrade.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/vesting/v1beta1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/cosmos/vesting/v1beta1/vesting.js","webpack://structs-webapp/./node_modules/cosmjs-types/google/protobuf/any.js","webpack://structs-webapp/./node_modules/cosmjs-types/google/protobuf/duration.js","webpack://structs-webapp/./node_modules/cosmjs-types/google/protobuf/timestamp.js","webpack://structs-webapp/./node_modules/cosmjs-types/helpers.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/applications/transfer/v1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/applications/transfer/v1/transfer.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/applications/transfer/v1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/core/channel/v1/channel.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/core/channel/v1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/core/channel/v1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/core/client/v1/client.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/core/client/v1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/core/client/v1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/core/commitment/v1/commitment.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/core/connection/v1/connection.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/core/connection/v1/query.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/core/connection/v1/tx.js","webpack://structs-webapp/./node_modules/cosmjs-types/ibc/lightclients/tendermint/v1/tendermint.js","webpack://structs-webapp/./node_modules/cosmjs-types/tendermint/abci/types.js","webpack://structs-webapp/./node_modules/cosmjs-types/tendermint/crypto/keys.js","webpack://structs-webapp/./node_modules/cosmjs-types/tendermint/crypto/proof.js","webpack://structs-webapp/./node_modules/cosmjs-types/tendermint/types/block.js","webpack://structs-webapp/./node_modules/cosmjs-types/tendermint/types/evidence.js","webpack://structs-webapp/./node_modules/cosmjs-types/tendermint/types/params.js","webpack://structs-webapp/./node_modules/cosmjs-types/tendermint/types/types.js","webpack://structs-webapp/./node_modules/cosmjs-types/tendermint/types/validator.js","webpack://structs-webapp/./node_modules/cosmjs-types/tendermint/version/types.js","webpack://structs-webapp/./node_modules/cosmjs-types/utf8.js","webpack://structs-webapp/./node_modules/cosmjs-types/varint.js","webpack://structs-webapp/./node_modules/create-ecdh/browser.js","webpack://structs-webapp/./node_modules/create-ecdh/node_modules/bn.js/lib/bn.js","webpack://structs-webapp/./node_modules/create-hash/browser.js","webpack://structs-webapp/./node_modules/create-hash/md5.js","webpack://structs-webapp/./node_modules/create-hmac/browser.js","webpack://structs-webapp/./node_modules/create-hmac/legacy.js","webpack://structs-webapp/./node_modules/cross-fetch/dist/browser-ponyfill.js","webpack://structs-webapp/./node_modules/crypto-browserify/index.js","webpack://structs-webapp/./node_modules/define-data-property/index.js","webpack://structs-webapp/./node_modules/define-properties/index.js","webpack://structs-webapp/./node_modules/des.js/lib/des.js","webpack://structs-webapp/./node_modules/des.js/lib/des/cbc.js","webpack://structs-webapp/./node_modules/des.js/lib/des/cipher.js","webpack://structs-webapp/./node_modules/des.js/lib/des/des.js","webpack://structs-webapp/./node_modules/des.js/lib/des/ede.js","webpack://structs-webapp/./node_modules/des.js/lib/des/utils.js","webpack://structs-webapp/./node_modules/diffie-hellman/browser.js","webpack://structs-webapp/./node_modules/diffie-hellman/lib/dh.js","webpack://structs-webapp/./node_modules/diffie-hellman/lib/generatePrime.js","webpack://structs-webapp/./node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js","webpack://structs-webapp/./node_modules/dunder-proto/get.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/curve/base.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/curve/edwards.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/curve/index.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/curve/mont.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/curve/short.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/curves.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/ec/index.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/ec/key.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/ec/signature.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/eddsa/index.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/eddsa/key.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/eddsa/signature.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","webpack://structs-webapp/./node_modules/elliptic/lib/elliptic/utils.js","webpack://structs-webapp/./node_modules/elliptic/node_modules/bn.js/lib/bn.js","webpack://structs-webapp/./node_modules/es-define-property/index.js","webpack://structs-webapp/./node_modules/es-errors/eval.js","webpack://structs-webapp/./node_modules/es-errors/index.js","webpack://structs-webapp/./node_modules/es-errors/range.js","webpack://structs-webapp/./node_modules/es-errors/ref.js","webpack://structs-webapp/./node_modules/es-errors/syntax.js","webpack://structs-webapp/./node_modules/es-errors/type.js","webpack://structs-webapp/./node_modules/es-errors/uri.js","webpack://structs-webapp/./node_modules/es-object-atoms/index.js","webpack://structs-webapp/./node_modules/events/events.js","webpack://structs-webapp/./node_modules/evp_bytestokey/index.js","webpack://structs-webapp/./node_modules/for-each/index.js","webpack://structs-webapp/./node_modules/function-bind/implementation.js","webpack://structs-webapp/./node_modules/function-bind/index.js","webpack://structs-webapp/./node_modules/get-intrinsic/index.js","webpack://structs-webapp/./node_modules/get-proto/Object.getPrototypeOf.js","webpack://structs-webapp/./node_modules/get-proto/Reflect.getPrototypeOf.js","webpack://structs-webapp/./node_modules/get-proto/index.js","webpack://structs-webapp/./node_modules/globalthis/implementation.browser.js","webpack://structs-webapp/./node_modules/globalthis/index.js","webpack://structs-webapp/./node_modules/globalthis/polyfill.js","webpack://structs-webapp/./node_modules/globalthis/shim.js","webpack://structs-webapp/./node_modules/gopd/gOPD.js","webpack://structs-webapp/./node_modules/gopd/index.js","webpack://structs-webapp/./node_modules/has-property-descriptors/index.js","webpack://structs-webapp/./node_modules/has-symbols/index.js","webpack://structs-webapp/./node_modules/has-symbols/shams.js","webpack://structs-webapp/./node_modules/has-tostringtag/shams.js","webpack://structs-webapp/./node_modules/hash-base/index.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash/common.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash/hmac.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash/ripemd.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash/sha.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash/sha/1.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash/sha/224.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash/sha/256.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash/sha/384.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash/sha/512.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash/sha/common.js","webpack://structs-webapp/./node_modules/hash.js/lib/hash/utils.js","webpack://structs-webapp/./node_modules/hasown/index.js","webpack://structs-webapp/./node_modules/hmac-drbg/lib/hmac-drbg.js","webpack://structs-webapp/./node_modules/ieee754/index.js","webpack://structs-webapp/./node_modules/inherits/inherits_browser.js","webpack://structs-webapp/./node_modules/is-arguments/index.js","webpack://structs-webapp/./node_modules/is-callable/index.js","webpack://structs-webapp/./node_modules/is-generator-function/index.js","webpack://structs-webapp/./node_modules/is-nan/implementation.js","webpack://structs-webapp/./node_modules/is-nan/index.js","webpack://structs-webapp/./node_modules/is-nan/polyfill.js","webpack://structs-webapp/./node_modules/is-nan/shim.js","webpack://structs-webapp/./node_modules/is-regex/index.js","webpack://structs-webapp/./node_modules/is-typed-array/index.js","webpack://structs-webapp/./node_modules/isarray/index.js","webpack://structs-webapp/./node_modules/isomorphic-ws/browser.js","webpack://structs-webapp/./node_modules/js-sha256/src/sha256.js","webpack://structs-webapp/./node_modules/libsodium-sumo/dist/modules-sumo/libsodium-sumo.js","webpack://structs-webapp/./node_modules/libsodium-wrappers-sumo/dist/modules-sumo/libsodium-wrappers.js","webpack://structs-webapp/./node_modules/math-intrinsics/abs.js","webpack://structs-webapp/./node_modules/math-intrinsics/floor.js","webpack://structs-webapp/./node_modules/math-intrinsics/isNaN.js","webpack://structs-webapp/./node_modules/math-intrinsics/max.js","webpack://structs-webapp/./node_modules/math-intrinsics/min.js","webpack://structs-webapp/./node_modules/math-intrinsics/pow.js","webpack://structs-webapp/./node_modules/math-intrinsics/round.js","webpack://structs-webapp/./node_modules/math-intrinsics/sign.js","webpack://structs-webapp/./node_modules/md5.js/index.js","webpack://structs-webapp/./node_modules/miller-rabin/lib/mr.js","webpack://structs-webapp/./node_modules/miller-rabin/node_modules/bn.js/lib/bn.js","webpack://structs-webapp/./node_modules/minimalistic-assert/index.js","webpack://structs-webapp/./node_modules/minimalistic-crypto-utils/lib/utils.js","webpack://structs-webapp/./node_modules/object-is/implementation.js","webpack://structs-webapp/./node_modules/object-is/index.js","webpack://structs-webapp/./node_modules/object-is/polyfill.js","webpack://structs-webapp/./node_modules/object-is/shim.js","webpack://structs-webapp/./node_modules/object-keys/implementation.js","webpack://structs-webapp/./node_modules/object-keys/index.js","webpack://structs-webapp/./node_modules/object-keys/isArguments.js","webpack://structs-webapp/./node_modules/object.assign/implementation.js","webpack://structs-webapp/./node_modules/object.assign/polyfill.js","webpack://structs-webapp/./node_modules/parse-asn1/asn1.js","webpack://structs-webapp/./node_modules/parse-asn1/certificate.js","webpack://structs-webapp/./node_modules/parse-asn1/fixProc.js","webpack://structs-webapp/./node_modules/parse-asn1/index.js","webpack://structs-webapp/./node_modules/pbkdf2/browser.js","webpack://structs-webapp/./node_modules/pbkdf2/lib/async.js","webpack://structs-webapp/./node_modules/pbkdf2/lib/default-encoding.js","webpack://structs-webapp/./node_modules/pbkdf2/lib/precondition.js","webpack://structs-webapp/./node_modules/pbkdf2/lib/sync-browser.js","webpack://structs-webapp/./node_modules/pbkdf2/lib/to-buffer.js","webpack://structs-webapp/./node_modules/possible-typed-array-names/index.js","webpack://structs-webapp/./node_modules/process-nextick-args/index.js","webpack://structs-webapp/./node_modules/process/browser.js","webpack://structs-webapp/./node_modules/public-encrypt/browser.js","webpack://structs-webapp/./node_modules/public-encrypt/mgf.js","webpack://structs-webapp/./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js","webpack://structs-webapp/./node_modules/public-encrypt/privateDecrypt.js","webpack://structs-webapp/./node_modules/public-encrypt/publicEncrypt.js","webpack://structs-webapp/./node_modules/public-encrypt/withPublic.js","webpack://structs-webapp/./node_modules/public-encrypt/xor.js","webpack://structs-webapp/./node_modules/randombytes/browser.js","webpack://structs-webapp/./node_modules/randomfill/browser.js","webpack://structs-webapp/./node_modules/readable-stream/errors-browser.js","webpack://structs-webapp/./node_modules/readable-stream/lib/_stream_duplex.js","webpack://structs-webapp/./node_modules/readable-stream/lib/_stream_passthrough.js","webpack://structs-webapp/./node_modules/readable-stream/lib/_stream_readable.js","webpack://structs-webapp/./node_modules/readable-stream/lib/_stream_transform.js","webpack://structs-webapp/./node_modules/readable-stream/lib/_stream_writable.js","webpack://structs-webapp/./node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack://structs-webapp/./node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://structs-webapp/./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://structs-webapp/./node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://structs-webapp/./node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack://structs-webapp/./node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://structs-webapp/./node_modules/readable-stream/lib/internal/streams/state.js","webpack://structs-webapp/./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://structs-webapp/./node_modules/ripemd160/index.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/hash-base/index.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/hash-base/to-buffer.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/readable-stream/lib/_stream_duplex.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/readable-stream/lib/_stream_passthrough.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/readable-stream/lib/_stream_readable.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/readable-stream/lib/_stream_transform.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/readable-stream/lib/_stream_writable.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/readable-stream/node_modules/safe-buffer/index.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/readable-stream/readable-browser.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/string_decoder/lib/string_decoder.js","webpack://structs-webapp/./node_modules/ripemd160/node_modules/string_decoder/node_modules/safe-buffer/index.js","webpack://structs-webapp/./node_modules/safe-buffer/index.js","webpack://structs-webapp/./node_modules/safe-regex-test/index.js","webpack://structs-webapp/./node_modules/set-function-length/index.js","webpack://structs-webapp/./node_modules/sha.js/hash.js","webpack://structs-webapp/./node_modules/sha.js/index.js","webpack://structs-webapp/./node_modules/sha.js/sha.js","webpack://structs-webapp/./node_modules/sha.js/sha1.js","webpack://structs-webapp/./node_modules/sha.js/sha224.js","webpack://structs-webapp/./node_modules/sha.js/sha256.js","webpack://structs-webapp/./node_modules/sha.js/sha384.js","webpack://structs-webapp/./node_modules/sha.js/sha512.js","webpack://structs-webapp/./node_modules/stream-browserify/index.js","webpack://structs-webapp/./node_modules/string_decoder/lib/string_decoder.js","webpack://structs-webapp/./node_modules/symbol-observable/lib/ponyfill.js","webpack://structs-webapp/./node_modules/symbol-observable/ponyfill.js","webpack://structs-webapp/./node_modules/to-buffer/index.js","webpack://structs-webapp/./node_modules/to-buffer/node_modules/isarray/index.js","webpack://structs-webapp/./js/ts/structs.structs/registry.ts","webpack://structs-webapp/./js/ts/structs.structs/types/cosmos/base/query/v1beta1/pagination.ts","webpack://structs-webapp/./js/ts/structs.structs/types/cosmos/base/v1beta1/coin.ts","webpack://structs-webapp/./js/ts/structs.structs/types/google/protobuf/timestamp.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/address.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/agreement.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/allocation.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/events.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/fleet.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/genesis.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/grid.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/guild.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/infusion.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/keys.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/packet.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/params.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/permission.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/planet.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/player.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/provider.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/query.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/reactor.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/struct.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/substation.ts","webpack://structs-webapp/./js/ts/structs.structs/types/structs/structs/tx.ts","webpack://structs-webapp/./node_modules/tweetnacl/nacl-fast.js","webpack://structs-webapp/./node_modules/typed-array-buffer/index.js","webpack://structs-webapp/./node_modules/util-deprecate/browser.js","webpack://structs-webapp/./node_modules/util/support/isBufferBrowser.js","webpack://structs-webapp/./node_modules/util/support/types.js","webpack://structs-webapp/./node_modules/util/util.js","webpack://structs-webapp/./node_modules/vm-browserify/index.js","webpack://structs-webapp/./node_modules/which-typed-array/index.js","webpack://structs-webapp/./node_modules/xstream/index.js","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/asn1.js/node_modules/bn.js/lib|buffer","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/bn.js/lib|buffer","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/brorand|crypto","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams|util","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/browserify-sign/node_modules/readable-stream/lib|util","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/create-ecdh/node_modules/bn.js/lib|buffer","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/diffie-hellman/node_modules/bn.js/lib|buffer","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/elliptic/node_modules/bn.js/lib|buffer","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/js-sha256/src|buffer","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/js-sha256/src|crypto","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/libsodium-sumo/dist/modules-sumo|fs","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/libsodium-sumo/dist/modules-sumo|path","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/miller-rabin/node_modules/bn.js/lib|buffer","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/public-encrypt/node_modules/bn.js/lib|buffer","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/readable-stream/lib/internal/streams|util","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/readable-stream/lib|util","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/ripemd160/node_modules/readable-stream/lib/internal/streams|util","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/ripemd160/node_modules/readable-stream/lib|util","webpack://structs-webapp/ignored|/Users/derekchung/PhpstormProjects/structs-webapp/src/node_modules/tweetnacl|crypto","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/create.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/descriptors.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/from-binary.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/is-message.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/proto-int64.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/reflect/error.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/reflect/guard.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/reflect/reflect-check.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/reflect/reflect.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/reflect/scalar.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/reflect/unsafe.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/to-binary.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/wire/base64-encoding.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/wire/binary-encoding.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/wire/index.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/wire/size-delimited.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/wire/text-encoding.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/wire/text-format.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/wire/varint.js","webpack://structs-webapp/./node_modules/@bufbuild/protobuf/dist/cjs/wkt/wrappers.js","webpack://structs-webapp/./node_modules/available-typed-arrays/index.js","webpack://structs-webapp/webpack/bootstrap","webpack://structs-webapp/webpack/runtime/amd options","webpack://structs-webapp/webpack/runtime/async module","webpack://structs-webapp/webpack/runtime/compat get default export","webpack://structs-webapp/webpack/runtime/define property getters","webpack://structs-webapp/webpack/runtime/global","webpack://structs-webapp/webpack/runtime/hasOwnProperty shorthand","webpack://structs-webapp/webpack/runtime/make namespace object","webpack://structs-webapp/webpack/runtime/node module decorator","webpack://structs-webapp/webpack/before-startup","webpack://structs-webapp/webpack/startup","webpack://structs-webapp/webpack/after-startup"],"sourcesContent":["import {JsonAjaxer} from \"../framework/JsonAjaxer\";\nimport {GuildFactory} from \"../factories/GuildFactory\";\nimport {PlayerFactory} from \"../factories/PlayerFactory\";\nimport {GuildAPIResponseFactory} from \"../factories/GuildAPIResponseFactory\";\nimport {GuildAPIError} from \"../errors/GuildAPIError\";\nimport {GuildAPICacheItemDTO} from \"../dtos/GuildAPICacheItemDTO\";\nimport {InfusionFactory} from \"../factories/InfusionFactory\";\nimport {PlayerOreStatsFactory} from \"../factories/PlayerOreStatsFactory\";\nimport {PlanetFactory} from \"../factories/PlanetFactory\";\nimport {PlayerAddressFactory} from \"../factories/PlayerAddressFactory\";\nimport {Guild} from \"../models/Guild\";\nimport {ActivationCodeInfoDTO} from \"../dtos/ActivationCodeInfoDTO\";\nimport {TransactionFactory} from \"../factories/TransactionFactory\";\nimport {PlayerSearchResultDTOFactory} from \"../factories/PlayerSearchResultDTOFactory\";\nimport {GuildPowerStatsDTOFactory} from \"../factories/GuildPowerStatsDTOFactory\";\nimport {GuildSearchResultDTOFactory} from \"../factories/GuildSearchResultDTOFactory\";\nimport {PlanetaryShieldInfoDTOFactory} from \"../factories/PlanetaryShieldInfoDTOFactory\";\nimport {PlanetRaidFactory} from \"../factories/PlanetRaidFactory\";\nimport {StructTypeFactory} from \"../factories/StructTypeFactory\";\nimport {StructFactory} from \"../factories/StructFactory\";\nimport {FleetFactory} from \"../factories/FleetFactory\";\nimport {WorkFactory} from \"../factories/WorkFactory\";\nimport {Struct} from \"../models/Struct\";\nimport {SettingFactory} from \"../factories/SettingFactory\";\nimport {Settings} from \"../models/Settings\";\nimport {Player} from \"../models/Player\";\nimport {Infusion} from \"../models/Infusion\";\nimport {Fleet} from \"../models/Fleet\";\n\nexport class GuildAPI {\n\n constructor() {\n this.apiUrl = '/api';\n this.ajax = new JsonAjaxer();\n this.guildAPIResponseFactory = new GuildAPIResponseFactory();\n this.guildFactory = new GuildFactory();\n this.playerFactory = new PlayerFactory();\n this.infusionFactory = new InfusionFactory();\n this.playerOreStatsFactory = new PlayerOreStatsFactory();\n this.planetFactory = new PlanetFactory();\n this.playerAddressFactory = new PlayerAddressFactory();\n this.transactionFactory = new TransactionFactory();\n this.playerSearchResultDTOFactory = new PlayerSearchResultDTOFactory();\n this.guildPowerStatsDTOFactory = new GuildPowerStatsDTOFactory();\n this.guildSearchResultDTOFactory = new GuildSearchResultDTOFactory();\n this.planetaryShieldInfoDTOFactory = new PlanetaryShieldInfoDTOFactory();\n this.planetRaidFactory = new PlanetRaidFactory();\n this.structTypeFactory = new StructTypeFactory();\n this.structFactory = new StructFactory();\n this.fleetFactory = new FleetFactory();\n this.workFactory = new WorkFactory();\n this.settingFactory = new SettingFactory();\n\n }\n\n /**\n * @param {string} key\n * @param {*} value\n */\n cacheItem(key, value) {\n const item = new GuildAPICacheItemDTO(value);\n localStorage.setItem(key, JSON.stringify(item));\n }\n\n /**\n * @param {string} key\n * @param {number} ttl\n * @return {null|*}\n */\n getCachedItem(key, ttl = 1000 * 60 * 60) {\n let item = localStorage.getItem(key);\n\n if (item === null) {\n return null;\n }\n\n item = JSON.parse(item);\n\n if (item.timestamp + ttl < Date.now()) {\n localStorage.removeItem(key);\n return null;\n }\n\n return item.value;\n }\n\n /**\n * @param {string} playerId\n * @param {string} address\n * @return {string}\n */\n buildAddressRegisterMessage(playerId, address) {\n return `PLAYER${playerId}ADDRESS${address}`;\n }\n\n /**\n * @param {string} guildId\n * @param {string} address\n * @param {number} nonce\n * @return {string}\n */\n buildGuildMembershipJoinProxyMessage(guildId, address, nonce) {\n return `GUILD${guildId}ADDRESS${address}NONCE${nonce}`;\n }\n\n /**\n *\n * @param {string} guildId\n * @param {string} address\n * @param {string} unixTimestamp\n * @return {string}\n */\n buildLoginMessage(guildId, address, unixTimestamp) {\n return `LOGIN_GUILD${guildId}ADDRESS${address}DATETIME${unixTimestamp}`;\n }\n\n /**\n * @param {GuildAPIResponse} guildAPIResponse\n */\n handleResponseFailure(guildAPIResponse) {\n if (!guildAPIResponse.success) {\n throw new GuildAPIError(`Guild API request was unsuccessful. See network request for details.`);\n }\n }\n\n /**\n * @param {string} requestUrl\n * @param {string} dataProperty\n * @return {Promise<*>}\n */\n async getSingleDataValue(requestUrl, dataProperty) {\n const jsonResponse = await this.ajax.get(requestUrl);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n\n if (response.data === null\n || response.data === undefined\n || !response.data.hasOwnProperty(dataProperty)\n ) {\n throw new GuildAPIError(`Data does not contain required property (${dataProperty}).`);\n }\n\n return response.data[dataProperty];\n }\n\n /**\n * @return {Promise}\n */\n async getThisGuild() {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/guild/this`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.guildFactory.make(response.data);\n }\n\n /**\n * @return {Promise}\n */\n async getTimestamp() {\n const timestamp = await this.getSingleDataValue(`${this.apiUrl}/timestamp`, 'unix_timestamp');\n return `${timestamp}`;\n }\n\n /**\n * @param {SignupRequestDTO} signupRequestDTO\n * @return {Promise}\n */\n async signup(signupRequestDTO) {\n const jsonResponse = await this.ajax.post(`${this.apiUrl}/auth/signup`, signupRequestDTO);\n return this.guildAPIResponseFactory.make(jsonResponse);\n }\n\n /**\n * @param {LoginRequestDTO} loginRequestDTO\n * @return {GuildAPIResponse}\n */\n async login(loginRequestDTO) {\n const jsonResponse = await this.ajax.post(`${this.apiUrl}/auth/login`, loginRequestDTO);\n return this.guildAPIResponseFactory.make(jsonResponse);\n }\n\n async logout() {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/auth/logout`);\n return this.guildAPIResponseFactory.make(jsonResponse);\n }\n\n /**\n * @param {string} playerId\n * @return {Promise}\n */\n async getPlayer(playerId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/player/${playerId}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.playerFactory.make(response.data);\n }\n\n /**\n * @param {string} playerId\n * @return {Promise}\n */\n async getPlayerLastActionBlockHeight(playerId) {\n const lastActionBlockHeight = await this.getSingleDataValue(`${this.apiUrl}/player/${playerId}/action/last/block/height`, 'last_action_block_height');\n return parseInt(lastActionBlockHeight);\n }\n\n /**\n * @param {string} playerId\n * @return {string}\n */\n getPlayerAddressCountCacheKey(playerId) {\n return `getPlayerAddressCount::${playerId}`;\n }\n\n /**\n * @param {string} playerId\n * @param {boolean} forceRefresh\n * @return {Promise}\n */\n async getPlayerAddressCount(playerId, forceRefresh = false) {\n let count = this.getCachedItem(this.getPlayerAddressCountCacheKey(playerId));\n if (count === null || forceRefresh) {\n count = await this.getSingleDataValue(`${this.apiUrl}/player-address/count/player/${playerId}`, 'count');\n this.cacheItem(this.getPlayerAddressCountCacheKey(playerId), count);\n }\n return parseInt(count);\n }\n\n /**\n * @param {string} playerId\n * @return {Promise}\n */\n async getInfusionByPlayerId(playerId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/infusion/player/${playerId}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.infusionFactory.make(response.data);\n }\n\n /**\n * @param {string} playerId\n * @return {string}\n */\n getPlayerOreStatsCacheKey(playerId) {\n return `getPlayerOreStats::${playerId}`;\n }\n\n /**\n * @param {string} playerId\n * @param {boolean} forceRefresh\n * @return {Promise}\n */\n async getPlayerOreStats(playerId, forceRefresh = false) {\n let response = this.getCachedItem(this.getPlayerOreStatsCacheKey(playerId));\n if (response === null || forceRefresh) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/player/${playerId}/ore/stats`);\n response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n this.cacheItem(this.getPlayerOreStatsCacheKey(playerId), response);\n }\n return this.playerOreStatsFactory.make(response.data, playerId);\n }\n\n /**\n * @param {string} playerId\n * @return {string}\n */\n getPlayerPlanetsCompletedCacheKey(playerId) {\n return `getPlayerPlanetsCompleted::${playerId}`;\n }\n\n /**\n * @param {string} playerId\n * @param {boolean} forceRefresh\n * @return {Promise}\n */\n async getPlayerPlanetsCompleted(playerId, forceRefresh = false) {\n let count = this.getCachedItem(this.getPlayerPlanetsCompletedCacheKey(playerId));\n if (count === null || forceRefresh) {\n count = await this.getSingleDataValue(`${this.apiUrl}/player/${playerId}/planet/completed`, 'count');\n this.cacheItem(this.getPlayerPlanetsCompletedCacheKey(playerId), count);\n }\n return parseInt(count);\n }\n\n /**\n * @param {string} playerId\n * @return {string}\n */\n getPlayerRaidsLaunchedCacheKey(playerId) {\n return `getPlayerRaidsLaunched::${playerId}`;\n }\n\n /**\n * @param {string} playerId\n * @param {boolean} forceRefresh\n * @return {Promise}\n */\n async getPlayerRaidsLaunched(playerId, forceRefresh = false) {\n let count = this.getCachedItem(this.getPlayerRaidsLaunchedCacheKey(playerId));\n if (count === null || forceRefresh) {\n count = await this.getSingleDataValue(`${this.apiUrl}/player/${playerId}/raid/launched`, 'count');\n this.cacheItem(this.getPlayerRaidsLaunchedCacheKey(playerId), count);\n }\n return parseInt(count);\n }\n\n /**\n * @param {string} planetId\n * @return {Promise}\n */\n async getPlanet(planetId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/planet/${planetId}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.planetFactory.make(response.data);\n }\n\n /**\n * @param {string} playerId\n * @return {Promise}\n */\n async getPlayerAddressList(playerId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/player-address/player/${playerId}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.playerAddressFactory.parseList(response.data);\n }\n\n /**\n * @param {AddPlayerAddressMetaRequestDTO} addPlayerAddressMetaRequestDTO\n * @return {Promise}\n */\n async addPlayerAddressMeta(addPlayerAddressMetaRequestDTO) {\n const jsonResponse = await this.ajax.post(`${this.apiUrl}/player-address/meta`, addPlayerAddressMetaRequestDTO);\n return this.guildAPIResponseFactory.make(jsonResponse);\n }\n\n /**\n * @param {CreateActivationCodeRequestDTO} createActivationCodeRequestDTO\n * @return {Promise}\n */\n async createActivationCode(createActivationCodeRequestDTO) {\n const jsonResponse = await this.ajax.post(`${this.apiUrl}/player-address/activation-code`, createActivationCodeRequestDTO);\n return this.guildAPIResponseFactory.make(jsonResponse);\n }\n\n /**\n * @param {string} activationCode\n * @return {Promise}\n */\n async getActivationCodeInfo(activationCode) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/auth/activation-code/${activationCode}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n\n if (response.data === null) {\n return null;\n }\n\n const info = new ActivationCodeInfoDTO();\n info.code = activationCode;\n Object.assign(info, response.data);\n\n return info;\n }\n\n /**\n * @param {AddPendingAddressRequestDTO} addPendingAddressRequestDTO\n * @return {Promise}\n */\n async addPendingAddress(addPendingAddressRequestDTO) {\n const jsonResponse = await this.ajax.post(`${this.apiUrl}/auth/player-address`, addPendingAddressRequestDTO);\n return this.guildAPIResponseFactory.make(jsonResponse);\n }\n\n /**\n * @param {SetPendingAddressPermissionsRequestDTO} setPendingAddressPermissionsRequestDTO\n * @return {Promise}\n */\n async setPendingAddressPermissions(setPendingAddressPermissionsRequestDTO) {\n const jsonResponse = await this.ajax.put(`${this.apiUrl}/player-address/pending/permissions`, setPendingAddressPermissionsRequestDTO);\n return this.guildAPIResponseFactory.make(jsonResponse);\n }\n\n /**\n * @param {string} activationCode\n * @return {Promise}\n */\n async deleteActivationCode(activationCode) {\n const jsonResponse = await this.ajax.delete(`${this.apiUrl}/player-address/activation-code/${activationCode}`);\n return this.guildAPIResponseFactory.make(jsonResponse);\n }\n\n /**\n * @param address\n * @param guildId\n * @return {Promise}\n */\n async getPlayerIdByAddressAndGuild(address, guildId) {\n return await this.getSingleDataValue(\n `${this.apiUrl}/auth/player-address/${address}/guild/${guildId}/player-id`,\n 'player_id'\n );\n }\n\n /**\n * @param {string} address\n * @return {Promise}\n */\n async getPlayerAddress(address) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/player-address/${address}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.playerAddressFactory.make(response.data);\n }\n\n /**\n * @param {SetAddressPermissionsRequestDTO} setAddressPermissionsRequestDTO\n * @return {Promise}\n */\n async setAddressPermissions(setAddressPermissionsRequestDTO) {\n const jsonResponse = await this.ajax.put(`${this.apiUrl}/player-address/permissions`, setAddressPermissionsRequestDTO);\n return this.guildAPIResponseFactory.make(jsonResponse);\n }\n\n /**\n * @param {string} playerId\n * @param {number} page\n * @return {Promise}\n */\n async getTransactions(playerId, page) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/ledger/player/${playerId}/page/${page}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.transactionFactory.parseList(response.data);\n }\n\n /**\n * @param {string} playerId\n * @return {Promise}\n */\n async countTransactions(playerId) {\n const count = await this.getSingleDataValue(`${this.apiUrl}/ledger/player/${playerId}/count`, 'count');\n return parseInt(count);\n }\n\n /**\n * @param {number} txId\n * @return {Promise}\n */\n async getTransaction(txId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/ledger/${txId}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.transactionFactory.make(response.data);\n }\n\n /**\n * @return {Promise}\n */\n async getGuildFilterList() {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/guild/name`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.guildFactory.parseList(response.data);\n }\n\n /**\n * @param transferSearchRequestDTO\n * @return {Promise}\n */\n async transferSearch(transferSearchRequestDTO) {\n const searchStringParam = `search_string=${transferSearchRequestDTO.search_string}`;\n const guildIdParam = transferSearchRequestDTO.guild_id ? `&guild_id=${transferSearchRequestDTO.guild_id}` : '';\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/player/transfer/search?${searchStringParam}${guildIdParam}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.playerSearchResultDTOFactory.parseList(response.data);\n }\n\n /**\n * @return {string}\n */\n getCountGuildMembersCacheKey(guildId) {\n return `countGuildMembers::${guildId}`;\n }\n\n /**\n * @param {string} guildId\n * @param {boolean} forceRefresh\n * @return {Promise}\n */\n async countGuildMembers(guildId, forceRefresh = false) {\n let count = this.getCachedItem(this.getCountGuildMembersCacheKey(guildId));\n if (count === null || forceRefresh) {\n count = await this.getSingleDataValue(`${this.apiUrl}/guild/${guildId}/members/count`, 'count');\n this.cacheItem(this.getCountGuildMembersCacheKey(guildId), count);\n }\n return parseInt(count);\n }\n\n /**\n * @return {string}\n */\n getCountGuildsCacheKey() {\n return `countGuilds`;\n }\n\n /**\n * @return {Promise}\n */\n async countGuilds(forceRefresh = false) {\n let count = this.getCachedItem(this.getCountGuildsCacheKey());\n if (count === null || forceRefresh) {\n count = await this.getSingleDataValue(`${this.apiUrl}/guild/count`, 'count');\n this.cacheItem(this.getCountGuildsCacheKey(), count);\n }\n return parseInt(count);\n }\n\n /**\n * @param {string} guildId\n * @return {Promise}\n */\n async getGuild(guildId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/guild/${guildId}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.guildFactory.make(response.data);\n }\n\n /**\n * @param {string} guildId\n * @return {string}\n */\n getGuildPowerStatsCacheKey(guildId) {\n return `getGuildPowerStats::${guildId}`;\n }\n\n /**\n * @param {string} guildId\n * @param {boolean} forceRefresh\n * @return {Promise}\n */\n async getGuildPowerStats(guildId, forceRefresh = false) {\n let stats = this.getCachedItem(this.getGuildPowerStatsCacheKey(guildId));\n if (stats === null || forceRefresh) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/guild/${guildId}/power/stats`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n stats = this.guildPowerStatsDTOFactory.make(response.data);\n this.cacheItem(this.getGuildPowerStatsCacheKey(guildId), stats);\n }\n return stats;\n }\n\n /**\n * @param {string} guildId\n * @return {string}\n */\n countGuildPlanetsCompletedCacheKey(guildId) {\n return `countGuildPlanetsCompleted::${guildId}`;\n }\n\n /**\n * @return {Promise}\n */\n async countGuildPlanetsCompleted(guildId, forceRefresh = false) {\n let count = this.getCachedItem(this.countGuildPlanetsCompletedCacheKey(guildId));\n if (count === null || forceRefresh) {\n count = await this.getSingleDataValue(`${this.apiUrl}/guild/${guildId}/planet/complete/count`, 'count');\n this.cacheItem(this.countGuildPlanetsCompletedCacheKey(guildId), count);\n }\n return parseInt(count);\n }\n\n /**\n * @param {string} guildId\n * @return {Promise}\n */\n async getGuildRoster(guildId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/guild/${guildId}/roster`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.playerSearchResultDTOFactory.parseList(response.data);\n }\n\n /**\n * @return {string}\n */\n getGuildsDirectoryCacheKey() {\n return `getGuildsDirectory`;\n }\n\n /**\n * @param {boolean} forceRefresh\n * @return {Promise}\n */\n async getGuildsDirectory(forceRefresh = false) {\n let guilds = this.getCachedItem(this.getGuildsDirectoryCacheKey());\n if (guilds === null || forceRefresh) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/guild/directory`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n guilds = this.guildSearchResultDTOFactory.parseList(response.data);\n this.cacheItem(this.getGuildsDirectoryCacheKey(), guilds);\n }\n return guilds;\n }\n\n /**\n * @param {string} planetId\n * @return {Promise}\n */\n async getPlanetaryShieldInfo(planetId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/planet/${planetId}/shield`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.planetaryShieldInfoDTOFactory.make(response.data);\n }\n\n /**\n * @param {RaidSearchRequestDTO} raidSearchRequestDTO\n * @return {Promise}\n */\n async raidSearch(raidSearchRequestDTO) {\n const searchStringParam = raidSearchRequestDTO.search_string ? `search_string=${raidSearchRequestDTO.search_string}` : '';\n const guildIdParam = raidSearchRequestDTO.guild_id ? `&guild_id=${raidSearchRequestDTO.guild_id}` : '';\n const minOreParam = `&min_ore=${raidSearchRequestDTO.min_ore}`;\n const fleetAwayOnlyParam = `&fleet_away_only=${raidSearchRequestDTO.fleet_away_only ? 1 : 0}`;\n const pageParam = `&page=${raidSearchRequestDTO.page}`;\n\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/player/raid/search?${searchStringParam}${guildIdParam}${minOreParam}${fleetAwayOnlyParam}${pageParam}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.playerSearchResultDTOFactory.parseList(response.data);\n }\n\n /**\n * @param {RaidSearchRequestDTO} raidSearchRequestDTO\n * @return {Promise}\n */\n async raidSearchCount(raidSearchRequestDTO) {\n const count_only = `count_only=1`;\n const searchStringParam = raidSearchRequestDTO.search_string ? `&search_string=${raidSearchRequestDTO.search_string}` : '';\n const guildIdParam = raidSearchRequestDTO.guild_id ? `&guild_id=${raidSearchRequestDTO.guild_id}` : '';\n const minOreParam = `&min_ore=${raidSearchRequestDTO.min_ore}`;\n const fleetAwayOnlyParam = `&fleet_away_only=${raidSearchRequestDTO.fleet_away_only ? 1 : 0}`;\n\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/player/raid/search?${count_only}${searchStringParam}${guildIdParam}${minOreParam}${fleetAwayOnlyParam}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n\n return (response.data.hasOwnProperty('length') && response.data.length === 1 && response.data[0].hasOwnProperty('count'))\n ? parseInt(response.data[0].count)\n : 0;\n }\n\n /**\n * @param {string} planetId\n * @return {Promise}\n */\n async getActivePlanetRaidByPlanetId(planetId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/planet/${planetId}/raid/active`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.planetRaidFactory.make(response.data);\n }\n\n /**\n * @param {string} fleetId\n * @return {Promise}\n */\n async getActivePlanetRaidByFleetId(fleetId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/planet/raid/active/fleet/${fleetId}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.planetRaidFactory.make(response.data);\n }\n\n /**\n * @return {string}\n */\n getStructTypesCacheKey() {\n return `getStructTypes`;\n }\n\n /**\n * @param {boolean} forceRefresh\n * @return {Promise}\n */\n async getStructTypes(forceRefresh = false) {\n let structTypeResponseData = this.getCachedItem(this.getStructTypesCacheKey(), 1000 * 60 * 60 * 24);\n if (structTypeResponseData === null || forceRefresh) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/struct/type`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n structTypeResponseData = response.data;\n this.cacheItem(this.getStructTypesCacheKey(), structTypeResponseData);\n }\n return this.structTypeFactory.parseList(structTypeResponseData);\n }\n\n /**\n * @param {string} playerId\n * @return {Promise}\n */\n async getStructsByPlayerId(playerId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/struct/player/${playerId}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.structFactory.parseList(response.data);\n }\n\n /**\n * @param {string} playerId\n * @return {Promise}\n */\n async getFleetByPlayerId(playerId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/fleet/player/${playerId}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.fleetFactory.make(response.data);\n }\n\n /**\n * @param playerId\n * @return {Promise}\n */\n async getWorkByPlayerId(playerId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/work/player/${playerId}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.workFactory.parseList(response.data);\n }\n\n /**\n * @param {string} structId\n * @return {Promise}\n */\n async getStruct(structId) {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/struct/${structId}`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.structFactory.make(response.data);\n }\n\n /**\n * @return {Promise}\n */\n async getSettings() {\n const jsonResponse = await this.ajax.get(`${this.apiUrl}/setting`);\n const response = this.guildAPIResponseFactory.make(jsonResponse);\n this.handleResponseFailure(response);\n return this.settingFactory.parseList(response.data);\n }\n}","export class GuildAPIResponse {\n\n constructor(\n success = false,\n errors = [],\n data = null\n ) {\n this.success = success;\n this.errors = errors;\n this.data = data;\n }\n}","import {SUICheatsheetContentBuilder} from \"../sui/SUICheatsheetContentBuilder\";\nimport {\n STRUCT_DESCRIPTIONS,\n STRUCT_EQUIPMENT_ICON_MAP,\n STRUCT_WEAPON_CONTROL_LABELS\n} from \"../constants/StructConstants\";\nimport {AMBIT_ORDER} from \"../constants/Ambits\";\nimport {StructType} from \"../models/StructType\";\nimport {NumberFormatter} from \"../util/NumberFormatter\";\n\nexport class CheatsheetContentBuilder extends SUICheatsheetContentBuilder {\n\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super();\n this.gameState = gameState;\n this.numberFormatter = new NumberFormatter();\n }\n\n /**\n * @param {StructType} structType\n * @return {string[]}\n */\n getPassiveWeaponryAmbits(structType) {\n const ambits = new Set([\n ...structType.primary_weapon_ambits_array,\n ...structType.secondary_weapon_ambits_array\n ]);\n return [...ambits].sort((a, b) => {\n const indexA = AMBIT_ORDER.indexOf(a.toUpperCase());\n const indexB = AMBIT_ORDER.indexOf(b.toUpperCase());\n return indexA - indexB;\n });\n }\n\n /**\n * @param {string} weaponType\n * @param {number} weaponDamage\n * @param {string} weaponLabel\n * @param {string[]} weaponAmbits\n * @param {string} notEquippedValue\n * @return {string}\n */\n renderWeaponProperty(\n weaponType,\n weaponLabel,\n weaponDamage,\n weaponAmbits,\n notEquippedValue\n ) {\n if (!weaponType || weaponType === notEquippedValue) {\n return '';\n }\n\n const iconClass = STRUCT_EQUIPMENT_ICON_MAP[weaponType];\n const ambitIcons = weaponAmbits.map(ambit => \n ``\n ).join('');\n\n return `\n

\n `;\n }\n\n /**\n * @param {StructType} structType\n * @return {string}\n */\n renderPassiveWeaponProperty(structType) {\n if (!structType.passive_weaponry || structType.passive_weaponry === 'noPassiveWeaponry') {\n return '';\n }\n\n const iconClass = STRUCT_EQUIPMENT_ICON_MAP[structType.passive_weaponry];\n const weaponAmbits = this.getPassiveWeaponryAmbits(structType);\n const possibleAmbitsLower = structType.possible_ambit_array.map(a => a.toLowerCase());\n\n let damageHTML = '';\n\n if (structType.counter_attack_same_ambit > structType.counter_attack) {\n // Separate ambits into regular and same-ambit groups\n const regularAmbits = weaponAmbits.filter(a => !possibleAmbitsLower.includes(a.toLowerCase()));\n const sameAmbits = weaponAmbits.filter(a => possibleAmbitsLower.includes(a.toLowerCase()));\n\n if (regularAmbits.length > 0) {\n const regularIcons = regularAmbits.map(ambit =>\n ``\n ).join('');\n damageHTML += `${structType.counter_attack} DMG ${regularIcons} `;\n }\n\n if (sameAmbits.length > 0) {\n const sameIcons = sameAmbits.map(ambit =>\n ``\n ).join('');\n damageHTML += `${structType.counter_attack_same_ambit} DMG ${sameIcons}`;\n }\n } else {\n const ambitIcons = weaponAmbits.map(ambit =>\n ``\n ).join('');\n damageHTML = `${structType.counter_attack} DMG ${ambitIcons}`;\n }\n\n return `\n
\n
\n \n
\n
\n
${structType.passive_weaponry_label}
\n
\n ${damageHTML}\n
\n
\n
\n `;\n }\n\n /**\n * @param {StructType} structType\n * @return {string}\n */\n renderUnitDefensesProperty(structType) {\n if (structType.unit_defenses === 'noUnitDefenses') {\n return '';\n }\n\n const iconClass = STRUCT_EQUIPMENT_ICON_MAP[structType.unit_defenses];\n\n return `\n
\n
\n \n
\n
\n
${structType.unit_defenses_label}
\n
\n
\n `;\n }\n\n /**\n * @param {StructType} structType\n * @return {string}\n */\n renderPlanetaryDefensesProperty(structType) {\n switch (structType.planetary_defenses) {\n case 'noPlanetaryDefense':\n return '';\n case 'defensiveCannon':\n return this.renderWeaponProperty(\n structType.planetary_defenses,\n structType.planetary_defenses_label,\n 1,\n AMBIT_ORDER.map(ambit => ambit.toLowerCase()),\n 'noPlanetaryDefense'\n );\n default:\n const iconClass = STRUCT_EQUIPMENT_ICON_MAP[structType.planetary_defenses];\n\n return `\n
\n
\n \n
\n
\n
${structType.planetary_defenses_label}
\n
\n
\n `;\n }\n }\n\n /**\n * @param {StructType} structType\n * @return {string}\n */\n renderOreReserveDefensesProperty(structType) {\n if (structType.ore_reserve_defenses === 'noOreReserveDefenses') {\n return '';\n }\n\n const iconClass = STRUCT_EQUIPMENT_ICON_MAP[structType.ore_reserve_defenses];\n const planetaryShieldContribution = this.numberFormatter.format(structType.planetary_shield_contribution);\n\n return `\n
\n
\n \n
\n
\n
${structType.ore_reserve_defenses_label}
\n
+${planetaryShieldContribution} Planetary Defense
\n
\n
\n `;\n }\n\n /**\n * @param {StructType} structType\n * @return {string}\n */\n renderPowerGenerationProperty(structType) {\n if (structType.power_generation === 'noPowerGeneration') {\n return '';\n }\n\n const iconClass = STRUCT_EQUIPMENT_ICON_MAP[structType.power_generation];\n\n return `\n
\n
\n \n
\n
\n
Consume Alpha
\n
\n
\n
\n
\n \n
\n
\n
+${structType.generating_rate} KW Per Alpha
\n
\n
\n `;\n }\n\n /**\n * @param {StructType} structType\n * @param {object} dataset\n * @return {string}\n */\n buildStructCheatsheet(structType, dataset = {}) {\n let propertiesHTML = '';\n\n propertiesHTML += this.renderWeaponProperty(\n structType.primary_weapon,\n structType.primary_weapon_label,\n structType.primary_weapon_damage,\n structType.primary_weapon_ambits_array,\n 'noActiveWeaponry'\n );\n\n propertiesHTML += this.renderWeaponProperty(\n structType.secondary_weapon,\n structType.secondary_weapon_label,\n structType.secondary_weapon_damage,\n structType.secondary_weapon_ambits_array,\n 'noActiveWeaponry'\n );\n\n propertiesHTML += this.renderPassiveWeaponProperty(structType);\n\n propertiesHTML += this.renderUnitDefensesProperty(structType);\n\n propertiesHTML += this.renderPlanetaryDefensesProperty(structType);\n\n propertiesHTML += this.renderOreReserveDefensesProperty(structType);\n\n propertiesHTML += this.renderPowerGenerationProperty(structType);\n\n return this.renderer.renderContentHTML(\n `${structType.default_cosmetic_model_number} ${structType.class}`,\n structType.build_charge,\n structType.build_draw,\n STRUCT_DESCRIPTIONS[structType.type],\n dataset.contextualMsg ? dataset.contextualMsg : '',\n propertiesHTML || null\n );\n }\n\n /**\n *\n * @param {string} selectedProperty\n * @param {string} weaponType\n * @param {string} weaponControl\n * @param {number} weaponCharge\n * @param {number} weaponDamage\n * @param {number} weaponShots\n * @param {string[]} weaponAmbitsArray\n * @return {string}\n */\n renderPropertiesForWeapon(\n selectedProperty,\n weaponType,\n weaponControl,\n weaponCharge,\n weaponDamage,\n weaponShots,\n weaponAmbitsArray\n ) {\n if (!selectedProperty || (selectedProperty !== 'primary_weapon' && selectedProperty !== 'secondary_weapon')) {\n return '';\n }\n\n const iconClass = STRUCT_EQUIPMENT_ICON_MAP[weaponType];\n const weaponControlLabel = STRUCT_WEAPON_CONTROL_LABELS[weaponControl];\n let weaponDamageLabel = (weaponShots > 1)\n ? `${weaponDamage}-${weaponDamage * weaponShots} DMG`\n :`${weaponDamage} DMG`;\n const ambitIcons = weaponAmbitsArray.map(ambit =>\n ``\n ).join('');\n\n return `\n
\n
\n \n
\n
\n
${weaponControlLabel}
\n
\n
\n
\n
\n \n
\n
\n
\n ${weaponDamageLabel}\n
\n
\n
\n
\n
\n \n
\n
\n
\n ${ambitIcons}\n
\n
\n
\n `;\n }\n\n /**\n * @param {string} selectedProperty\n * @param {StructType} structType\n * @return {string}\n */\n renderPropertiesForPassiveWeaponry(selectedProperty, structType) {\n if (!selectedProperty || selectedProperty !== 'passive_weaponry') {\n return '';\n }\n\n if (!structType.passive_weaponry || structType.passive_weaponry === 'noPassiveWeaponry') {\n return '';\n }\n\n const weaponAmbits = this.getPassiveWeaponryAmbits(structType);\n\n let damageHTML = `${structType.counter_attack} DMG`;\n\n if (structType.counter_attack_same_ambit > structType.counter_attack) {\n damageHTML += `${structType.counter_attack}-${structType.counter_attack_same_ambit} DMG`;\n }\n\n return `\n
\n
\n \n
\n
\n
\n ${damageHTML}\n
\n
\n
\n
\n
\n \n
\n
\n
\n ${weaponAmbits.map(ambit => ``).join('')}\n
\n
\n
\n `;\n }\n\n /**\n * @param {string} selectedProperty\n * @param {StructType} structType\n * @return {string}\n */\n renderPropertiesForOreReserveDefenses(selectedProperty, structType) {\n if (!selectedProperty || selectedProperty !== 'ore_reserve_defenses') {\n return '';\n }\n\n if (structType.ore_reserve_defenses === 'noOreReserveDefenses') {\n return '';\n }\n\n const iconClass = STRUCT_EQUIPMENT_ICON_MAP[structType.ore_reserve_defenses];\n const planetaryShieldContribution = this.numberFormatter.format(structType.planetary_shield_contribution);\n\n return `\n
\n
\n \n
\n
\n
${structType.ore_reserve_defenses_label}
\n
+${planetaryShieldContribution} Planetary Defense
\n
\n
\n `;\n }\n\n /**\n * @param {string} selectedProperty\n * @param {StructType} structType\n * @return {string}\n */\n renderPropertiesForPlanetaryDefenses(selectedProperty, structType) {\n if (!selectedProperty || selectedProperty !== 'planetary_defenses') {\n return '';\n }\n\n if (structType.planetary_defenses === 'defensiveCannon') {\n const weaponDamage = 1;\n const weaponAmbits = AMBIT_ORDER.map(ambit => ambit.toLowerCase());\n const ambitIcons = weaponAmbits.map(ambit =>\n ``\n ).join('');\n \n return `\n
\n
\n \n
\n
\n
\n ${weaponDamage} DMG\n
\n
\n
\n
\n
\n \n
\n
\n
\n ${ambitIcons}\n
\n
\n
\n `;\n }\n\n // Default or other planetary defenses if any\n return '';\n }\n\n /**\n * @param {StructType} structType\n * @param {object} dataset\n * @return {string}\n */\n buildStructPropertyCheatsheet(structType, dataset) {\n const selectedProperty = dataset.selectedProperty;\n let titleText = '';\n let batteryCost = null;\n let descriptionText = '';\n let propertySectionHTML = '';\n\n switch (selectedProperty) {\n case 'primary_weapon':\n titleText = structType.primary_weapon_label;\n batteryCost = structType.primary_weapon_charge;\n descriptionText = structType.primary_weapon_description;\n propertySectionHTML = this.renderPropertiesForWeapon(\n selectedProperty,\n structType.primary_weapon,\n structType.primary_weapon_control,\n structType.primary_weapon_charge,\n structType.primary_weapon_damage,\n structType.primary_weapon_shots,\n structType.primary_weapon_ambits_array\n );\n break;\n case 'secondary_weapon':\n titleText = structType.secondary_weapon_label;\n batteryCost = structType.secondary_weapon_charge;\n descriptionText = structType.secondary_weapon_description;\n propertySectionHTML = this.renderPropertiesForWeapon(\n selectedProperty,\n structType.secondary_weapon,\n structType.secondary_weapon_control,\n structType.secondary_weapon_charge,\n structType.secondary_weapon_damage,\n structType.secondary_weapon_shots,\n structType.secondary_weapon_ambits_array\n );\n break;\n case 'movable':\n titleText = structType.drive_label;\n batteryCost = structType.move_charge;\n descriptionText = structType.drive_description;\n break;\n case 'passive_weaponry':\n titleText = structType.passive_weaponry_label;\n descriptionText = structType.passive_weaponry_description;\n propertySectionHTML = this.renderPropertiesForPassiveWeaponry(selectedProperty, structType);\n break;\n case 'unit_defenses':\n titleText = structType.unit_defenses_label;\n descriptionText = structType.unit_defenses_description;\n break;\n case 'ore_reserve_defenses':\n titleText = structType.ore_reserve_defenses_label;\n descriptionText = structType.ore_reserve_defenses_description;\n propertySectionHTML = this.renderPropertiesForOreReserveDefenses(selectedProperty, structType);\n break;\n case 'planetary_defenses':\n titleText = structType.planetary_defenses_label;\n descriptionText = structType.planetary_defenses_description;\n propertySectionHTML = this.renderPropertiesForPlanetaryDefenses(selectedProperty, structType);\n break;\n }\n\n return this.renderer.renderContentHTML(\n titleText,\n batteryCost,\n null,\n descriptionText,\n null,\n propertySectionHTML\n );\n }\n\n /**\n * @param {object} dataset\n * @return {string}\n */\n renderUndiscoveredOre(dataset) {\n return this.renderer.renderContentHTML(\n 'Undiscovered Ore',\n null,\n null,\n `${dataset.undiscoveredOre} Ore remains to be mined.`\n );\n }\n\n /**\n * @param {object} dataset\n * @return {string}\n */\n renderExtractorActive(dataset) {\n let oreExtracting = 0;\n let timeRemaining = '';\n\n if (dataset.estTime) {\n oreExtracting = 1;\n timeRemaining = `
${dataset.estTime} Est. time remaining.
`;\n }\n\n return this.renderer.renderContentHTML(\n 'Extractor Active',\n null,\n null,\n `\n
${oreExtracting} Ore extracting.
\n ${timeRemaining}\n `\n );\n }\n\n /**\n * @param {object} dataset\n * @return {string}\n */\n renderOreReady(dataset) {\n return this.renderer.renderContentHTML(\n 'Ore Ready',\n null,\n null,\n `${dataset.oreReady} Ore remains to be refined.`\n );\n }\n\n /**\n * @param {object} dataset\n * @return {string}\n */\n renderRefineryActive(dataset) {\n let oreRefining = 0;\n let timeRemaining = '';\n\n if (dataset.estTime) {\n oreRefining = 1;\n timeRemaining = `
${dataset.estTime} Est. time remaining.
`;\n }\n\n return this.renderer.renderContentHTML(\n 'Refinery Active',\n null,\n null,\n `\n
${oreRefining} Ore refining.
\n ${timeRemaining}\n `\n );\n }\n\n /**\n * @param {object} dataset triggering element's data attributes\n * @return {string}\n */\n build(dataset) {\n let html = '';\n\n switch (dataset.suiCheatsheet) {\n case 'icon-beacon':\n html = this.renderer.renderContentForEmptyTileHTML(\n 'Planetary Beacon',\n 'Planetary Structs can be deployed to this location.'\n );\n break;\n case 'icon-blocked':\n html = this.renderer.renderContentForEmptyTileHTML(\n 'Blocked',\n 'Structs cannot be deployed to this location.'\n );\n break;\n case 'icon-cmd-post':\n html = this.renderer.renderContentForEmptyTileHTML(\n 'Command Post',\n 'Only the Command Ship can be deployed to this location.'\n );\n break;\n case 'icon-enemy-tile':\n html = this.renderer.renderContentForEmptyTileHTML(\n 'Enemy Territory',\n 'Structs cannot be deployed in Enemy Territory.'\n );\n break;\n case 'icon-fleet-tile':\n html = this.renderer.renderContentForEmptyTileHTML(\n 'Fleet Territory',\n 'Fleet Structs can be deployed to this location.'\n );\n break;\n case 'icon-unknown-territory':\n html = this.renderer.renderContentForEmptyTileHTML(\n 'Unknown Territory',\n 'There is nothing of interest here yet.'\n );\n break;\n case 'enemy-struct-deploying':\n html = this.renderer.renderContentForEmptyTileHTML(\n 'Enemy Struct Deploying',\n 'A new enemy struct is being deployed.'\n );\n break;\n case 'icon-undiscovered-ore':\n html = this.renderUndiscoveredOre(dataset);\n break;\n case 'extractor-active':\n html = this.renderExtractorActive(dataset);\n break;\n case 'icon-ore-ready':\n html = this.renderOreReady(dataset);\n break;\n case 'refinery-active':\n html = this.renderRefineryActive(dataset);\n break;\n case 'icon-unpowered':\n html = this.renderer.renderContentHTML(\n 'Unpowered',\n null,\n null,\n 'This Struct is not receiving power. It’s abilities are not active.'\n );\n break;\n default:\n const structType = this.gameState.structTypes.getStructType(dataset.suiCheatsheet);\n\n if (!structType) {\n throw new Error(`Unknown cheatsheet key: ${dataset.suiCheatsheet}`);\n }\n\n if (dataset.selectedProperty) {\n html = this.buildStructPropertyCheatsheet(structType, dataset);\n } else if (dataset.actionButton === 'defend') {\n html = this.renderer.renderContentHTML(\n 'Defend',\n structType.defend_change_charge,\n null,\n `Blocks incoming damage and counter-attacks on behalf of another Struct.`\n );\n } else {\n html = this.buildStructCheatsheet(structType, dataset);\n }\n\n }\n\n return html;\n }\n}\n","import {MAP_ORNAMENTS, MAP_TILE_ROWS_PER_AMBIT, MAP_TILE_SIZE, MAP_TRANSITION_HEIGHT} from \"../constants/MapConstants\";\nimport {MapOrnamentComponent} from \"../view_models/components/map/MapOrnamentComponent\";\nimport {MapOrnamentComponentBuilderError} from \"../errors/MapOrnamentComponentBuilderError\";\n\n/**\n * Builds an ornament based on its name.\n */\nexport class MapOrnamentComponentBuilder {\n\n /**\n * @param {GameState} gameState\n * @param {Planet} planet\n * @param {int} mapColCount\n */\n constructor(\n gameState,\n planet,\n mapColCount\n ) {\n this.gameState = gameState;\n this.planet = planet;\n this.mapColCount = mapColCount;\n }\n\n /**\n * Determines the ornament ambit overlay's height based on the target ambit and whether to include\n * the surrounding transition areas.\n *\n * @param ambit the ambit the ornament is for\n * @param includeTopTransition whether or not the ornament area uses the top transition space\n * @param includeBottomTransition whether or not the ornament area uses the bottom transition space\n *\n * @return {number} the height of the ornament area in pixels\n */\n calculateOrnamentAmbitHeight(ambit, includeTopTransition = true, includeBottomTransition = true) {\n\n let height = 0;\n\n if (includeTopTransition) {\n height += MAP_TRANSITION_HEIGHT;\n }\n\n // Ambit height\n height += MAP_TILE_ROWS_PER_AMBIT * MAP_TILE_SIZE;\n\n if (includeBottomTransition) {\n height += MAP_TRANSITION_HEIGHT;\n }\n\n return height;\n }\n\n /**\n * Determines where the top of the ornament ambit's overlay should be positioned\n * based on the target ambit and if the top transition is included.\n *\n * @param {string} ornamentAmbit the ambit the ornament is for\n * @param {boolean} ornamentIncludesTopTransition whether or not the ornament area uses the top transition space\n *\n * @return {number} top position in pixels\n */\n calculateOrnamentAmbitTop(ornamentAmbit, ornamentIncludesTopTransition = true) {\n let top = 0;\n\n const planetAmbits = this.planet.getAmbits();\n const ambitIndex = planetAmbits.indexOf(ornamentAmbit);\n\n for(let i = 0; i <= ambitIndex; i++) {\n\n const currentAmbit = planetAmbits[i];\n\n // Transition height\n if (!(ornamentAmbit === currentAmbit && ornamentIncludesTopTransition)) {\n top += MAP_TRANSITION_HEIGHT;\n }\n\n // Ambit height\n if (ornamentAmbit !== currentAmbit) {\n top += MAP_TILE_ROWS_PER_AMBIT * MAP_TILE_SIZE;\n }\n }\n\n return top;\n }\n\n /**\n * @param {string} ornamentName\n * @param {string} ornamentAmbit\n *\n * @return {MapOrnamentComponent}\n *\n * @throws {MapOrnamentComponentBuilderError}\n */\n make(ornamentName, ornamentAmbit) {\n let ornament = null;\n const width = this.mapColCount * MAP_TILE_SIZE;\n let height = 0;\n let top = 0;\n\n switch(ornamentName) {\n case MAP_ORNAMENTS.SPACE_MONSTER:\n\n height = this.calculateOrnamentAmbitHeight(ornamentAmbit);\n top = this.calculateOrnamentAmbitTop(ornamentAmbit);\n\n ornament = new MapOrnamentComponent(\n this.gameState,\n 'map-ornament-space-monster',\n width,\n height,\n top\n );\n\n break;\n default:\n throw new MapOrnamentComponentBuilderError(`Could find ornament with ornament name: (${ornamentName})`);\n }\n\n return ornament;\n }\n\n}\n","import {AMBITS} from \"../constants/Ambits\";\nimport {MAP_NAMED_TRANSITIONS} from \"../constants/MapConstants\";\nimport {MapTransitionComponent} from \"../view_models/components/map/MapTransitionComponent\";\nimport {AbstractViewModelComponent} from \"../framework/AbstractViewModelComponent\";\n\n/**\n * Builds a transition based on which ambit is above the transition\n * and which ambit is below the transition.\n */\nexport class MapTransitionComponentBuilder extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {MapTransitionLayerComponentFactory} transitionLayerFactory\n */\n constructor(gameState, transitionLayerFactory) {\n super(gameState);\n this.transitionLayerFactory = transitionLayerFactory;\n }\n\n /**\n * @param {int} mapColCount\n * @param {string} topAmbit\n * @param {string} bottomAmbit\n *\n * @return {MapTransitionComponent}\n */\n make(mapColCount, topAmbit = '', bottomAmbit = '') {\n let layers = [];\n\n if (topAmbit) {\n layers.push(this.transitionLayerFactory.make(\n '',\n mapColCount,\n topAmbit,\n 'bottom'\n ));\n }\n\n if (bottomAmbit === AMBITS.AIR) {\n // Example of a transition ornament\n // layers.push(this.transitionLayerFactory.make('map-transition-ornament-flying-pom'));\n }\n\n if (bottomAmbit === AMBITS.LAND) {\n layers.push(this.transitionLayerFactory.make(\n '',\n mapColCount,\n MAP_NAMED_TRANSITIONS.HORIZON\n ));\n }\n\n if (bottomAmbit) {\n layers.push(this.transitionLayerFactory.make(\n '',\n mapColCount,\n bottomAmbit,\n 'top'\n ));\n }\n\n return new MapTransitionComponent(this.gameState, layers);\n }\n}","import {PLANET_CARD_TYPES} from \"../constants/PlanetCardTypes\";\nimport {PlanetCardComponent} from \"../view_models/components/PlanetCardComponent\";\nimport {MenuPage} from \"../framework/MenuPage\";\nimport {RAID_STATUS} from \"../constants/RaidStatus\";\nimport {NewPlanetListener} from \"../grass_listeners/NewPlanetListener\";\nimport {MAP_CONTAINER_IDS} from \"../constants/MapConstants\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class PlanetCardBuilder {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {GrassManager} grassManager\n * @param {FleetManager} fleetManager\n * @param {PlanetManager} planetManager\n * @param {MapManager} mapManager\n * @param {RaidManager} raidManager\n * @param {StructManager} structManager\n */\n constructor(\n gameState,\n guildAPI,\n grassManager,\n fleetManager,\n planetManager,\n mapManager,\n raidManager,\n structManager\n ) {\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.grassManager = grassManager;\n this.fleetManager = fleetManager;\n this.planetManager = planetManager;\n this.mapManager = mapManager;\n this.raidManager = raidManager;\n this.structManager = structManager;\n }\n\n /**\n * @return {PlanetCardComponent}\n */\n createAlphaBasePlanetCard() {\n return new PlanetCardComponent(\n this.gameState,\n 'alpha-base',\n false\n );\n }\n\n /**\n * @return {PlanetCardComponent}\n */\n createRaidPlanetCard() {\n return new PlanetCardComponent(\n this.gameState,\n 'raid',\n true\n )\n }\n\n showAlphaBaseMap() {\n this.gameState.setActiveMapContainerId(MAP_CONTAINER_IDS.ALPHA_BASE);\n this.mapManager.showMap(MAP_CONTAINER_IDS.ALPHA_BASE);\n MenuPage.close();\n }\n\n showRaidMap() {\n this.gameState.setActiveMapContainerId(MAP_CONTAINER_IDS.RAID);\n this.mapManager.showMap(MAP_CONTAINER_IDS.RAID);\n MenuPage.close();\n }\n\n buildAlphaBaseLoading(alphaBaseCard, type) {\n if (type !== PLANET_CARD_TYPES.ALPHA_BASE_LOADING) {\n return;\n }\n\n alphaBaseCard.hasGeneralMessage = true;\n alphaBaseCard.generalMessageIconClass = 'hidden';\n alphaBaseCard.generalMessage = `\"3`;\n }\n\n /**\n * @param {PlanetCardComponent} alphaBaseCard\n */\n configureAlphaBaseCardCounterUpdateHandlers(alphaBaseCard) {\n alphaBaseCard.undiscoveredOreUpdateHandler = (event) => {\n if (event.playerType !== PLAYER_TYPES.PLAYER) {\n return;\n }\n const display = document.getElementById(`${alphaBaseCard.undiscoveredOreId}-value`);\n if (display) {\n display.innerHTML = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.undiscovered_ore;\n }\n };\n alphaBaseCard.alphaOreUpdateHandler = (event) => {\n if (event.playerType !== PLAYER_TYPES.PLAYER) {\n return;\n }\n const display = document.getElementById(`${alphaBaseCard.alphaOreId}-value`);\n if (display) {\n display.innerHTML = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.ore;\n }\n };\n alphaBaseCard.shieldHealthUpdateHandler = (event) => {\n if (event.playerType !== PLAYER_TYPES.PLAYER) {\n return;\n }\n const display = document.getElementById(`${alphaBaseCard.shieldHealthId}-value`);\n if (display) {\n display.innerHTML = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].getPlanetShieldHealth();\n }\n };\n alphaBaseCard.deployedStructsUpdateHandler = (event) => {\n if (event.playerType !== PLAYER_TYPES.PLAYER) {\n return;\n }\n const display = document.getElementById(`${alphaBaseCard.deployedStructsId}-value`);\n if (display) {\n display.innerHTML = this.structManager.getStructCountByPlayerType(PLAYER_TYPES.PLAYER);\n }\n };\n }\n\n /**\n * @param {PlanetCardComponent} alphaBaseCard\n * @param {string} type\n */\n buildAlphaBaseActive(alphaBaseCard, type) {\n if (type !== PLANET_CARD_TYPES.ALPHA_BASE_ACTIVE) {\n return;\n }\n\n alphaBaseCard.planetName = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.name;\n\n alphaBaseCard.hasStatusGroup = true;\n alphaBaseCard.undiscoveredOre = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.undiscovered_ore;\n alphaBaseCard.alphaOre = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.ore;\n alphaBaseCard.shieldHealth = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].getPlanetShieldHealth();\n alphaBaseCard.deployedStructs = this.structManager.getStructCountByPlayerType(PLAYER_TYPES.PLAYER);\n\n this.configureAlphaBaseCardCounterUpdateHandlers(alphaBaseCard);\n\n alphaBaseCard.hasPrimaryBtn = true;\n alphaBaseCard.primaryBtnLabel = 'Command';\n alphaBaseCard.primaryBtnHandler = () => {\n this.showAlphaBaseMap();\n }\n }\n\n buildAlphaBaseCompleted(alphaBaseCard, type) {\n if (type !== PLANET_CARD_TYPES.ALPHA_BASE_COMPLETED) {\n return;\n }\n\n alphaBaseCard.planetName = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.name;\n\n alphaBaseCard.hasStatusGroup = true;\n alphaBaseCard.undiscoveredOre = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.undiscovered_ore;\n alphaBaseCard.alphaOre = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.ore;\n alphaBaseCard.shieldHealth = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].getPlanetShieldHealth();\n alphaBaseCard.deployedStructs = this.structManager.getStructCountByPlayerType(PLAYER_TYPES.PLAYER);\n\n this.configureAlphaBaseCardCounterUpdateHandlers(alphaBaseCard);\n\n alphaBaseCard.hasAlert = true;\n alphaBaseCard.alertIconColorClass = 'sui-text-primary';\n alphaBaseCard.alertMessage = 'All Alpha extracted.';\n\n alphaBaseCard.hasPrimaryBtn = true;\n alphaBaseCard.primaryBtnLabel = 'Command';\n alphaBaseCard.primaryBtnHandler = () => {\n this.showAlphaBaseMap();\n }\n\n alphaBaseCard.hasSecondaryBtn = true;\n alphaBaseCard.secondaryBtnLabel = 'Depart';\n alphaBaseCard.secondaryBtnHandler = () => {\n MenuPage.router.goto('Fleet', 'index', {\n planetCardType: PLANET_CARD_TYPES.ALPHA_BASE_DEPART\n });\n }\n }\n\n buildAlphaBaseDepart(alphaBaseCard, type) {\n if (type !== PLANET_CARD_TYPES.ALPHA_BASE_DEPART) {\n return;\n }\n\n alphaBaseCard.planetName = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.name;\n\n alphaBaseCard.hasAlert = true;\n alphaBaseCard.alertMessage = 'Depart planet?';\n\n alphaBaseCard.hasGeneralMessage = true;\n alphaBaseCard.generalMessageIconClass = 'hidden';\n alphaBaseCard.generalMessage = `Fleet will travel to an undiscovered world.`;\n\n alphaBaseCard.hasPrimaryBtn = true;\n alphaBaseCard.primaryBtnLabel = 'Confirm';\n alphaBaseCard.primaryBtnHandler = () => {\n MenuPage.router.goto('Fleet', 'index', {planetCardType: PLANET_CARD_TYPES.ALPHA_BASE_LOADING})\n\n const newPlanetListener = new NewPlanetListener(\n this.gameState,\n this.guildAPI,\n this.mapManager,\n this.grassManager,\n this.raidManager\n );\n\n this.grassManager.registerListener(newPlanetListener);\n\n this.planetManager.findNewPlanet().then();\n }\n\n alphaBaseCard.hasSecondaryBtn = true;\n alphaBaseCard.secondaryBtnLabel = 'Cancel';\n alphaBaseCard.secondaryBtnHandler = () => {\n MenuPage.router.goto('Fleet', 'index');\n }\n }\n\n buildAlphaBaseArrived(alphaBaseCard, type) {\n if (type !== PLANET_CARD_TYPES.ALPHA_BASE_ARRIVED) {\n return;\n }\n\n alphaBaseCard.planetName = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.name;\n\n alphaBaseCard.hasGeneralMessage = true;\n alphaBaseCard.generalMessageIconClass = 'icon-planet';\n alphaBaseCard.generalMessage = `Fleet has arrived at ${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.name}.`;\n\n alphaBaseCard.hasPrimaryBtn = true;\n alphaBaseCard.primaryBtnLabel = 'View';\n alphaBaseCard.primaryBtnHandler = () => {\n this.showAlphaBaseMap();\n }\n\n alphaBaseCard.hasSecondaryBtn = true;\n alphaBaseCard.secondaryBtnLabel = 'Dismiss';\n alphaBaseCard.secondaryBtnHandler = () => {\n MenuPage.router.goto('Fleet', 'index');\n }\n }\n\n /**\n * @param {string} type\n * @param {PlanetCardComponent} raidCard\n */\n buildRaidLoading(raidCard, type) {\n if (type !== PLANET_CARD_TYPES.RAID_LOADING) {\n return;\n }\n\n raidCard.hasGeneralMessage = true;\n raidCard.generalMessageIconClass = 'hidden';\n raidCard.generalMessage = `\"3`;\n }\n\n /**\n * @param {string} type\n * @param {PlanetCardComponent} raidCard\n */\n buildRaidNone(raidCard, type) {\n if (type !== PLANET_CARD_TYPES.RAID_NONE) {\n return;\n }\n\n raidCard.hasGeneralMessage = true;\n raidCard.generalMessageIconClass = 'hidden';\n raidCard.generalMessage = 'No Raid active.';\n\n raidCard.hasSecondaryBtn = true;\n raidCard.secondaryBtnLabel = 'Scan';\n raidCard.secondaryBtnHandler = () => {\n MenuPage.router.goto('Fleet', 'scan');\n }\n }\n\n /**\n * @param {string} type\n * @param {PlanetCardComponent} raidCard\n */\n buildRaidStarted(raidCard, type) {\n if (type !== PLANET_CARD_TYPES.RAID_STARTED) {\n return;\n }\n\n raidCard.planetName = this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].getUsername();\n\n raidCard.hasGeneralMessage = true;\n raidCard.generalMessageIconClass = 'icon-raid';\n raidCard.generalMessage = `Fleet has begun raid on ${this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].getUsername()}.`;\n\n raidCard.hasPrimaryBtn = true;\n raidCard.primaryBtnLabel = 'View';\n raidCard.primaryBtnHandler = () => {\n MenuPage.router.goto('Fleet', 'index');\n this.showRaidMap();\n }\n\n raidCard.hasSecondaryBtn = true;\n raidCard.secondaryBtnLabel = 'Dismiss';\n raidCard.secondaryBtnHandler = () => {\n MenuPage.router.goto('Fleet', 'index');\n }\n }\n\n /**\n * @param {string} type\n * @param {PlanetCardComponent} raidCard\n */\n buildRaidActive(raidCard, type) {\n if (type !== PLANET_CARD_TYPES.RAID_ACTIVE) {\n return;\n }\n\n raidCard.planetName = this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].getUsername();\n\n raidCard.hasStatusGroup = true;\n raidCard.undiscoveredOre = this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planet.undiscovered_ore;\n raidCard.alphaOre = this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].player.ore;\n raidCard.shieldHealth = this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].getPlanetShieldHealth();\n raidCard.deployedStructs = this.structManager.getStructCountByPlayerType(PLAYER_TYPES.RAID_ENEMY);\n\n raidCard.undiscoveredOreUpdateHandler = (event) => {\n if (event.playerType !== PLAYER_TYPES.RAID_ENEMY) {\n return;\n }\n const display = document.getElementById(`${raidCard.undiscoveredOreId}-value`);\n if (display) {\n display.innerHTML = this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planet.undiscovered_ore;\n }\n };\n raidCard.alphaOreUpdateHandler = (event) => {\n if (event.playerType !== PLAYER_TYPES.RAID_ENEMY) {\n return;\n }\n const display = document.getElementById(`${raidCard.alphaOreId}-value`);\n if (display) {\n display.innerHTML = this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].player.ore;\n }\n };\n raidCard.shieldHealthUpdateHandler = (event) => {\n if (event.playerType !== PLAYER_TYPES.RAID_ENEMY) {\n return;\n }\n const display = document.getElementById(`${raidCard.shieldHealthId}-value`);\n if (display) {\n display.innerHTML = this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].getPlanetShieldHealth();\n }\n };\n raidCard.deployedStructsUpdateHandler = (event) => {\n if (event.playerType !== PLAYER_TYPES.RAID_ENEMY) {\n return;\n }\n const display = document.getElementById(`${raidCard.deployedStructsId}-value`);\n if (display) {\n display.innerHTML = this.structManager.getStructCountByPlayerType(PLAYER_TYPES.RAID_ENEMY);\n }\n };\n\n raidCard.hasPrimaryBtn = true;\n raidCard.primaryBtnLabel = 'Command';\n raidCard.primaryBtnHandler = () => {\n this.showRaidMap();\n }\n\n raidCard.hasSecondaryBtn = true;\n raidCard.secondaryBtnLabel = 'Retreat';\n raidCard.secondaryBtnHandler = () => {\n MenuPage.router.goto('Fleet', 'index', {raidCardType: PLANET_CARD_TYPES.RAID_RETREAT})\n }\n }\n\n /**\n * @param {string} type\n * @param {PlanetCardComponent} raidCard\n */\n buildRaidRetreat(raidCard, type) {\n if (type !== PLANET_CARD_TYPES.RAID_RETREAT) {\n return;\n }\n\n raidCard.planetName = this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].getUsername();\n\n raidCard.hasAlert = true;\n raidCard.alertMessage = 'Abandon raid?';\n\n raidCard.hasGeneralMessage = true;\n raidCard.generalMessageIconClass = 'hidden';\n raidCard.generalMessage = `Fleet will return to Alpha Base.`;\n\n raidCard.hasPrimaryBtn = true;\n raidCard.primaryBtnLabel = 'Confirm';\n raidCard.primaryBtnHandler = () => {\n MenuPage.router.goto('Fleet', 'index', {raidCardType: PLANET_CARD_TYPES.RAID_LOADING})\n this.fleetManager.moveFleet(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.id).then();\n }\n\n raidCard.hasSecondaryBtn = true;\n raidCard.secondaryBtnLabel = 'Cancel';\n raidCard.secondaryBtnHandler = () => {\n MenuPage.router.goto('Fleet', 'index');\n }\n }\n\n /**\n * @param {string|null} selectedType\n */\n determineAlphaBaseCardType(selectedType = null) {\n\n const selectAlphaBaseTypes = [\n PLANET_CARD_TYPES.ALPHA_BASE_LOADING,\n PLANET_CARD_TYPES.ALPHA_BASE_ACTIVE,\n PLANET_CARD_TYPES.ALPHA_BASE_COMPLETED,\n PLANET_CARD_TYPES.ALPHA_BASE_DEPART,\n PLANET_CARD_TYPES.ALPHA_BASE_ARRIVED\n ];\n\n let type = PLANET_CARD_TYPES.ALPHA_BASE_ACTIVE;\n\n if (selectAlphaBaseTypes.includes(selectedType)) {\n\n type = selectedType;\n\n } else if (this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.undiscovered_ore === 0) {\n\n type = PLANET_CARD_TYPES.ALPHA_BASE_COMPLETED;\n\n }\n\n return type;\n }\n\n /**\n * @param {string|null} selectedType\n * @return {string}\n */\n determineRaidCardType(selectedType = null) {\n const selectRaidTypes = [\n PLANET_CARD_TYPES.RAID_LOADING,\n PLANET_CARD_TYPES.RAID_NONE,\n PLANET_CARD_TYPES.RAID_ACTIVE,\n PLANET_CARD_TYPES.RAID_RETREAT\n ];\n\n let type = PLANET_CARD_TYPES.RAID_NONE;\n\n if (selectRaidTypes.includes(selectedType)) {\n\n type = selectedType;\n\n } else if (this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo.status === RAID_STATUS.REQUESTED) {\n\n type = PLANET_CARD_TYPES.RAID_LOADING;\n\n } else if (\n selectedType === PLANET_CARD_TYPES.RAID_STARTED\n && this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo.status === RAID_STATUS.INITIATED\n ) {\n\n type = PLANET_CARD_TYPES.RAID_STARTED;\n\n } else if (\n this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo.status === RAID_STATUS.INITIATED\n || this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo.status === RAID_STATUS.ONGOING\n ) {\n\n type = PLANET_CARD_TYPES.RAID_ACTIVE;\n\n }\n\n return type;\n }\n\n /**\n * @param {string|null} selectedType\n * @return {PlanetCardComponent}\n */\n buildAlphaBaseCard(selectedType = null) {\n let planetCard = this.createAlphaBasePlanetCard();\n\n const type = this.determineAlphaBaseCardType(selectedType);\n console.log(type);\n\n this.buildAlphaBaseLoading(planetCard, type);\n this.buildAlphaBaseActive(planetCard, type);\n this.buildAlphaBaseCompleted(planetCard, type);\n this.buildAlphaBaseDepart(planetCard, type);\n this.buildAlphaBaseArrived(planetCard, type);\n\n return planetCard;\n }\n\n /**\n * @param {string|null} selectedType\n * @return {PlanetCardComponent}\n */\n buildRaidCard(selectedType = null) {\n let planetCard = this.createRaidPlanetCard();\n\n const type = this.determineRaidCardType(selectedType);\n\n this.buildRaidLoading(planetCard, type);\n this.buildRaidNone(planetCard, type);\n this.buildRaidStarted(planetCard, type);\n this.buildRaidActive(planetCard, type);\n this.buildRaidRetreat(planetCard, type);\n\n return planetCard;\n }\n\n /**\n * @param {boolean} isRaidCard\n * @param {string|null} selectedType\n * @return {PlanetCardComponent}\n */\n build(isRaidCard = false, selectedType = null) {\n return isRaidCard\n ? this.buildRaidCard(selectedType)\n : this.buildAlphaBaseCard(selectedType);\n }\n}","import {StructStillRenderer} from \"../view_models/components/StructStillRenderer\";\nimport {\n STRUCT_EQUIPMENT,\n STRUCT_STILL_LAYERS,\n STRUCT_WATER_RIPPLE,\n STRUCT_WEAPON_SYSTEM\n} from \"../constants/StructConstants\";\nimport {StructType} from \"../models/StructType\";\nimport {StructTypeArtSetBuilder} from \"./StructTypeArtSetBuilder\";\n\nexport class StructStillBuilder {\n\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n this.gameState = gameState;\n this.structTypeArtSetBuilder = new StructTypeArtSetBuilder();\n }\n \n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildBattleship(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n '',\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildCommandShip(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildCruiser(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON],\n art[STRUCT_WEAPON_SYSTEM.SECONDARY_WEAPON],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n art[STRUCT_WATER_RIPPLE]\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildDestroyer(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n art[STRUCT_WATER_RIPPLE]\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildOreExtractor(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_EQUIPMENT.PLANETARY_MINING],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildFrigate(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n '',\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON]\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildFieldGenerator(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_EQUIPMENT.POWER_GENERATION],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildHighAltitudeInterceptor(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n '',\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON]\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildJammingSatellite(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_EQUIPMENT.PLANETARY_DEFENSES],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildMobileArtillery(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildOrbitalShieldGenerator(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_EQUIPMENT.ORE_RESERVE_DEFENSES],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildOreBunker(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_EQUIPMENT.ORE_RESERVE_DEFENSES],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildPlanetaryDefenseCannon(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_EQUIPMENT.PLANETARY_DEFENSES],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildPursuitFighter(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n '',\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON]\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildOreRefinery(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_EQUIPMENT.PLANETARY_REFINERY],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildSAMLauncher(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildStarfighter(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_WEAPON_SYSTEM.SECONDARY_WEAPON],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON]\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildStealthBomber(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n '',\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON]\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildSubmersible(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n art[STRUCT_WATER_RIPPLE]\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n buildTank(structType) {\n const art = this.structTypeArtSetBuilder.build(structType);\n\n return new StructStillRenderer(\n this.gameState,\n structType,\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON],\n '',\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE],\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG],\n ''\n );\n }\n \n /**\n * @param {StructType} structType\n * @return {StructStillRenderer}\n */\n build(structType) {\n const structTypeClean = structType.type.replace(/[^a-zA-Z0-9]/g, '');\n\n if (!this[`build${structTypeClean}`]) {\n throw new Error(`No struct still for struct type ${structType.type}`);\n }\n\n return this[`build${structTypeClean}`](structType);\n }\n}\n","import {\n STRUCT_EQUIPMENT,\n STRUCT_STILL_LAYERS,\n STRUCT_WATER_RIPPLE,\n STRUCT_WEAPON_SYSTEM\n} from \"../constants/StructConstants\";\nimport {StructType} from \"../models/StructType\";\nimport {StructTypeArtSet} from \"../models/StructTypeArtSet\";\n\nexport class StructTypeArtSetBuilder {\n\n constructor() {\n this.structImageDir = '/img/structs';\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}\n */\n buildBattleship(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/battleship/battleship-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/battleship/battleship-struct-dmg.png';\n \n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildCommandShip(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/cmd-ship/cmd-ship-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/cmd-ship/cmd-ship-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/cmd-ship/cmd-ship-top-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildCruiser(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/cruiser/cruiser-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/cruiser/cruiser-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/cruiser/cruiser-top-weapon-ballistic.png';\n art[STRUCT_WEAPON_SYSTEM.SECONDARY_WEAPON] = this.structImageDir + '/cruiser/cruiser-top-weapon-smart.png';\n art[STRUCT_WATER_RIPPLE] = this.structImageDir + '/cruiser/cruiser-bottom-ripples.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildDestroyer(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/destroyer/destroyer-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/destroyer/destroyer-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/destroyer/destroyer-top-weapon.png';\n art[STRUCT_WATER_RIPPLE] = this.structImageDir + '/destroyer/destroyer-bottom-ripples.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildOreExtractor(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/extractor/extractor-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/extractor/extractor-struct-dmg.png';\n art[STRUCT_EQUIPMENT.PLANETARY_MINING] = this.structImageDir + '/extractor/extractor-top-drill.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildFrigate(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/frigate/frigate-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/frigate/frigate-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/frigate/frigate-bottom-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildFieldGenerator(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/generator/generator-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/generator/generator-struct-dmg.png';\n art[STRUCT_EQUIPMENT.POWER_GENERATION] = this.structImageDir + '/generator/generator-top-tube.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildHighAltitudeInterceptor(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/interceptor/interceptor-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/interceptor/interceptor-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/interceptor/interceptor-bottom-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildJammingSatellite(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/jamming-sat/jamming-sat-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/jamming-sat/jamming-sat-struct-dmg.png';\n art[STRUCT_EQUIPMENT.PLANETARY_DEFENSES] = this.structImageDir + '/jamming-sat/jamming-sat-top-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildMobileArtillery(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/mobile-artillery/mobile-artillery-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/mobile-artillery/mobile-artillery-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/mobile-artillery/mobile-artillery-top-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildOrbitalShieldGenerator(structType) {\n const art = new StructTypeArtSet(structType);\n \n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/orb-shield/orb-shield-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/orb-shield/orb-shield-struct-dmg.png';\n art[STRUCT_EQUIPMENT.ORE_RESERVE_DEFENSES] = this.structImageDir + '/orb-shield/orb-shield-top-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildOreBunker(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/ore-bunker/ore-bunker-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/ore-bunker/ore-bunker-struct-dmg.png';\n art[STRUCT_EQUIPMENT.ORE_RESERVE_DEFENSES] = this.structImageDir + '/ore-bunker/ore-bunker-top-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildPlanetaryDefenseCannon(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/pdc/pdc-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/pdc/pdc-struct-dmg.png';\n art[STRUCT_EQUIPMENT.PLANETARY_DEFENSES] = this.structImageDir + '/pdc/pdc-top-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildPursuitFighter(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/pursuit-fighter/pursuit-fighter-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/pursuit-fighter/pursuit-fighter-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/pursuit-fighter/pursuit-fighter-bottom-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildOreRefinery(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/refinery/refinery-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/refinery/refinery-struct-dmg.png';\n art[STRUCT_EQUIPMENT.PLANETARY_REFINERY] = this.structImageDir + '/refinery/refinery-top-bays.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildStarfighter(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/starfighter/starfighter-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/starfighter/starfighter-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/starfighter/starfighter-bottom-weapon-smart.png';\n art[STRUCT_WEAPON_SYSTEM.SECONDARY_WEAPON] = this.structImageDir + '/starfighter/starfighter-top-weapon-ballistic.png'\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildSAMLauncher(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/sam-launcher/sam-launcher-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/sam-launcher/sam-launcher-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/sam-launcher/sam-launcher-top-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildStealthBomber(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/stealth-bomber/stealth-bomber-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/stealth-bomber/stealth-bomber-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/stealth-bomber/stealth-bomber-bottom-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildSubmersible(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/submersible/submersible-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/submersible/submersible-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/submersible/submersible-top-weapon.png';\n art[STRUCT_WATER_RIPPLE] = this.structImageDir + '/submersible/submersible-bottom-ripples.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n buildTank(structType) {\n const art = new StructTypeArtSet(structType);\n\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = this.structImageDir + '/tank/tank-struct-base.png';\n art[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = this.structImageDir + '/tank/tank-struct-dmg.png';\n art[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = this.structImageDir + '/tank/tank-top-weapon.png';\n\n return art;\n }\n\n /**\n * @param {StructType} structType\n * @return {StructTypeArtSet}}\n */\n build(structType) {\n const structTypeClean = structType.type.replace(/[^a-zA-Z0-9]/g, '');\n\n if (!this[`build${structTypeClean}`]) {\n throw new Error(`No struct art set for struct type ${structType.type}`);\n }\n\n return this[`build${structTypeClean}`](structType);\n }\n}\n","export const\n AMBITS = {\n LAND: 'LAND',\n AIR: 'AIR',\n SPACE: 'SPACE',\n WATER: 'WATER',\n },\n\n AMBIT_ORDER = [\n AMBITS.SPACE,\n AMBITS.AIR,\n AMBITS.LAND,\n AMBITS.WATER\n ],\n\n AMBIT_ENUM = {\n 'NONE': 0,\n 'WATER': 1,\n 'LAND': 2,\n 'AIR': 3,\n 'SPACE': 4,\n 'LOCAL': 5\n }\n;","export const\n ANIMATION = {\n NAMES: {\n ATTACK: {\n PRIMARY_WEAPON: 'ATTACK_PRIMARY_WEAPON',\n SECONDARY_WEAPON: 'ATTACK_SECONDARY_WEAPON',\n },\n DEPLOYMENT: {\n SPACE: 'DEPLOYMENT_SPACE',\n AIR: 'DEPLOYMENT_AIR',\n LAND: 'DEPLOYMENT_LAND',\n WATER: 'DEPLOYMENT_WATER',\n },\n DESTROY: {\n SPACE: 'DESTROY_SPACE',\n AIR: 'DESTROY_AIR',\n LAND: 'DESTROY_LAND',\n WATER: 'DESTROY_WATER',\n },\n FIRST: 'FIRST',\n LAST: 'LAST',\n MOVE: {\n ARRIVE: 'MOVE_ARRIVE',\n DEPART: 'MOVE_DEPART',\n },\n STEALTH: {\n ACTIVATE: 'STEALTH_ACTIVATE',\n DEACTIVATE: 'STEALTH_DEACTIVATE',\n },\n IMPACT: {\n ANGLED: {\n DOWN: {\n CANNON: 'IMPACT_ANGLED_DOWN_CANNON',\n MISSILE: 'IMPACT_ANGLED_DOWN_MISSILE',\n TORPEDO: 'IMPACT_ANGLED_DOWN_TORPEDO'\n },\n UP: {\n CANNON: 'IMPACT_ANGLED_UP_CANNON',\n GATLING: 'IMPACT_ANGLED_UP_GATLING',\n MISSILE: 'IMPACT_ANGLED_UP_MISSILE',\n TORPEDO: 'IMPACT_ANGLED_UP_TORPEDO'\n },\n },\n HORIZONTAL: {\n CANNON: 'IMPACT_HORIZONTAL_CANNON',\n GATLING: 'IMPACT_HORIZONTAL_GATLING',\n MISSILE: 'IMPACT_HORIZONTAL_MISSILE',\n TORPEDO: 'IMPACT_HORIZONTAL_TORPEDO',\n }\n },\n EVADE: 'EVADE',\n SHAKE: {\n ANGLED: {\n DOWN: {\n DEFAULT: {\n FIRST: 'SHAKE_ANGLED_DOWN_DEFAULT_FIRST',\n LAST: 'SHAKE_ANGLED_DOWN_DEFAULT_LAST',\n }\n },\n UP: {\n DEFAULT: {\n FIRST: 'SHAKE_ANGLED_UP_DEFAULT_FIRST',\n LAST: 'SHAKE_ANGLED_UP_DEFAULT_LAST',\n },\n GATLING: {\n FIRST: 'SHAKE_ANGLED_UP_GATLING_FIRST',\n LAST: 'SHAKE_ANGLED_UP_GATLING_LAST',\n }\n },\n },\n HORIZONTAL: {\n DEFAULT: {\n FIRST: 'SHAKE_HORIZONTAL_DEFAULT_FIRST',\n LAST: 'SHAKE_HORIZONTAL_DEFAULT_LAST',\n },\n GATLING: {\n FIRST: 'SHAKE_HORIZONTAL_GATLING_FIRST',\n LAST: 'SHAKE_HORIZONTAL_GATLING_LAST',\n }\n },\n ATTACK: {\n PRIMARY_WEAPON: 'ATTACK_PRIMARY_WEAPON',\n SECONDARY_WEAPON: 'ATTACK_SECONDARY_WEAPON',\n }\n }\n },\n PROJECTILES: {\n CANNON: 'CANNON',\n GATLING: 'GATLING',\n MISSILE: 'MISSILE',\n TORPEDO: 'TORPEDO',\n }\n }\n;\n","export const EVENTS = {\n ALPHA_COUNT_CHANGED: 'ALPHA_COUNT_CHANGED',\n ANIMATION: 'ANIMATION',\n ANIMATION_END: 'ANIMATION_END',\n ANIMATION_QUEUE_EMPTY: 'ANIMATION_QUEUE_EMPTY',\n BLOCK_HEIGHT_CHANGED: 'BLOCK_HEIGHT_CHANGED',\n CHARGE_LEVEL_CHANGED: 'CHARGE_LEVEL_CHANGED',\n CLEAR_ATTACK_TARGETS: 'CLEAR_ATTACK_TARGETS',\n CLEAR_DEFEND_TARGETS: 'CLEAR_DEFEND_TARGETS',\n CLEAR_MOVE_TARGETS: 'CLEAR_MOVE_TARGETS',\n CLEAR_STRUCT_TILE: 'CLEAR_STRUCT_TILE',\n ENERGY_USAGE_CHANGED: 'ENERGY_USAGE_CHANGED',\n LOTTIE_CUSTOMIZED: 'LOTTIE_CUSTOMIZED',\n ORE_COUNT_CHANGED: 'ORE_COUNT_CHANGED',\n PENDING_BUILD_ADDED: 'PENDING_BUILD_ADDED',\n PLANET_RAID_STATUS_CHANGED: 'PLANET_RAID_STATUS_CHANGED',\n REFRESH_ACTION_BAR: 'REFRESH_ACTION_BAR',\n REFRESH_ACTION_BAR_IF_SELECTED: 'REFRESH_ACTION_BAR_IF_SELECTED',\n RENDER_ALL_STRUCTS: 'RENDER_ALL_STRUCTS',\n RENDER_DEPLOYMENT_INDICATOR: 'RENDER_DEPLOYMENT_INDICATOR',\n RENDER_STRUCT_HUD: 'RENDER_STRUCT_HUD',\n RENDER_STRUCT: 'RENDER_STRUCT',\n SHOW_MOVE_TARGETS: 'SHOW_MOVE_TARGETS',\n UPDATE_TILE_STRUCT_ID: 'UPDATE_TILE_STRUCT_ID',\n SAVE_GAME_STATE: 'SAVE_GAME_STATE',\n SHIELD_HEALTH_CHANGED: 'SHIELD_HEALTH_CHANGED',\n SHOW_ATTACK_TARGETS: 'SHOW_ATTACK_TARGETS',\n SHOW_DEFEND_TARGETS: 'SHOW_DEFEND_TARGETS',\n STRUCT_COUNT_CHANGED: 'STRUCT_COUNT_CHANGED',\n TASK_CMD_KILL: 'TASK_CMD_KILL',\n TASK_CMD_MANAGER_PAUSE: 'TASK_CMD_MANAGER_PAUSE',\n TASK_CMD_MANAGER_RESUME: 'TASK_CMD_MANAGER_RESUME',\n TASK_CMD_PAUSE: 'TASK_CMD_PAUSE',\n TASK_CMD_RESUME: 'TASK_CMD_RESUME',\n TASK_CMD_SPAWN: 'TASK_CMD_SPAWN',\n TASK_CMD_FORCE_RUN: 'TASK_CMD_FORCE_RUN',\n TASK_CMD_SWEEP: 'TASK_CMD_SWEEP',\n TASK_CMD_SWEEP_ALL: 'TASK_CMD_SWEEP_ALL',\n TASK_COMPLETED: 'TASK_COMPLETED',\n TASK_STATE_CHANGED: 'TASK_STATE_CHANGED',\n TASK_MANAGER_STATUS_CHANGED: 'TASK_MANAGER_STATUS_CHANGED',\n TASK_WORKER_CHANGED: 'TASK_WORKER_CHANGED',\n TRACK_DESTROYED_STRUCT: 'TRACK_DESTROYED_STRUCT',\n TRACK_DESTROYED_STRUCTS: 'TRACK_DESTROYED_STRUCTS',\n UNDISCOVERED_ORE_COUNT_CHANGED: 'UNDISCOVERED_ORE_COUNT_CHANGED',\n};","export const FEE = {\n amount: [\n {\n denom: \"ualpha\",\n amount: \"0\",\n },\n ],\n gas: \"500000\",\n};","export const\n HUD_IDS = {\n ACTION_BAR_PLAYER: 'action-bar-player',\n ACTION_BAR_ALPHA_BASE_ENEMY: 'action-bar-alpha-base-enemy',\n ACTION_BAR_RAID_ENEMY: 'action-bar-raid-enemy',\n STATUS_BAR_TOP_LEFT: 'status-bar-top-left',\n STATUS_BAR_TOP_RIGHT_ALPHA_BASE: 'status-bar-top-right-alpha-base',\n STATUS_BAR_TOP_RIGHT_RAID: 'status-bar-top-right-raid'\n }\n;","export const LOCATION_TYPE_INDEX = {\n 'planet': 2,\n 'fleet': 9\n};\n","export const\n MAP_COL_DEFENDER_COMMAND = 'DEFENDER_COMMAND',\n MAP_COL_DEFENDER_PLANETARY = 'DEFENDER_PLANETARY',\n MAP_COL_DEFENDER_FLEET = 'DEFENDER_FLEET',\n MAP_COL_DIVIDER = 'DIVIDER',\n MAP_COL_ATTACKER_FLEET = 'ATTACKER_FLEET',\n MAP_COL_ATTACKER_COMMAND = 'ATTACKER_COMMAND',\n\n MAP_DEFAULT_COMMAND_COL_COUNT = 1,\n MAP_DEFAULT_PLANETARY_COL_COUNT = 2,\n MAP_DEFAULT_FLEET_COL_COUNT = 2,\n MAP_DEFAULT_DIVIDER_COL_COUNT = 1,\n\n MAP_TILE_ROWS_PER_AMBIT = 2,\n\n MAP_COL_ORDER = [\n MAP_COL_DEFENDER_COMMAND,\n MAP_COL_DEFENDER_PLANETARY,\n MAP_COL_DEFENDER_FLEET,\n MAP_COL_DIVIDER,\n MAP_COL_ATTACKER_FLEET,\n MAP_COL_ATTACKER_COMMAND\n ],\n\n MAP_COL_COUNT_PROPS = {\n DEFENDER_COMMAND: 'defenderCommandColCount',\n DEFENDER_PLANETARY: 'defenderPlanetaryColCount',\n DEFENDER_FLEET: 'defenderFleetColCount',\n DIVIDER: 'dividerColCount',\n ATTACKER_FLEET: 'attackerFleetColCount',\n ATTACKER_COMMAND: 'attackerCommandColCount'\n },\n\n MAP_TILE_SIZE = 128,\n\n MAP_TRANSITION_HEIGHT = 128,\n\n MAP_NAMED_TRANSITIONS = {\n HORIZON: 'HORIZON'\n },\n\n MAP_TRANSITION_TILE_LABELS = {\n ATMOSPHERE: 'ATMOSPHERE',\n HORIZON: 'HORIZON',\n SHORE: 'SHORE'\n },\n\n MAP_TILE_TYPES = {\n FOG_OF_WAR: 'FOG_OF_WAR',\n TRANSITION: 'TRANSITION',\n COMMAND: 'COMMAND',\n COMMAND_BLOCKED: 'COMMAND_BLOCKED',\n PLANETARY_SLOT: 'PLANETARY_SLOT',\n PLANETARY_BLOCKED: 'PLANETARY_BLOCKED',\n FLEET: 'FLEET',\n DIVIDER: 'DIVIDER',\n },\n\n MAP_TILE_TYPE_ICONS = {\n FOG_OF_WAR: 'icon-unknown-territory',\n TRANSITION: 'icon-blocked',\n COMMAND: 'icon-cmd-post',\n COMMAND_BLOCKED: 'icon-blocked',\n PLANETARY_SLOT: 'icon-beacon',\n PLANETARY_BLOCKED: 'icon-blocked',\n FLEET: 'icon-fleet-tile',\n DIVIDER: 'icon-blocked',\n ENEMY_TERRITORY: 'icon-enemy-tile',\n },\n\n MAP_ORNAMENTS = {\n SPACE_MONSTER: 'SPACE_MONSTER'\n },\n\n MAP_CONTAINER_IDS = {\n ALPHA_BASE: 'alpha-base-map-container',\n RAID: 'raid-map-container',\n PREVIEW: 'preview-map-container'\n },\n\n MAP_TYPES = {\n ALPHA_BASE: 'alphaBaseMap',\n RAID: 'raidMap'\n }\n;","export const MAP_PERSPECTIVES = {\n ATTACKER: 'ATTACKER',\n DEFENDER: 'DEFENDER'\n};","export const MENU_PAGE_ROUTER_MODES = {\n DEFAULT: 'DEFAULT',\n PREVIEW: 'PREVIEW'\n};\n","export const\n NOTIFICATION_DIALOGUE_SEQUENCES = {\n DEFEATED_BY_ATTACKER: 'DEFEATED_BY_ATTACKER',\n DEFEATED_BY_DEFENDER: 'DEFEATED_BY_DEFENDER',\n ATTACKER_VICTORY: 'ATTACKER_VICTORY',\n DEFENDER_VICTORY: 'DEFENDER_VICTORY',\n };","export const OBJECT_TYPES = {\n GUILD: 'guild',\n PLAYER: 'player',\n PLANET: 'planet',\n REACTOR: 'reactor',\n SUBSTATION: 'substation',\n STRUCT: 'struct',\n ALLOCATION: 'allocation',\n INFUSION: 'infusion',\n ADDRESS: 'address',\n FLEET: 'fleet',\n PROVIDER: 'provider',\n AGREEMENT: 'agreement',\n};\n\n","export const PAGINATION_LIMITS = {\n DEFAULT: 100,\n};","export const PERMISSIONS = {\n PLAY: 1,\n ADMIN: 2,\n UPDATE: 4,\n DELETE: 8,\n TOKEN_TRANSFER: 16,\n TOKEN_INFUSE: 32,\n TOKEN_MIGRATE: 64,\n TOKEN_DEFUSE: 128,\n SOURCE_ALLOCATION: 256,\n GUILD_MEMBERSHIP: 512,\n SUBSTATION_CONNECTION: 1024,\n ALLOCATION_CONNECTION: 2048,\n GUILD_TOKEN_BURN: 4096,\n GUILD_TOKEN_MINT: 8192,\n GUILD_ENDPOINT_UPDATE: 16384,\n GUILD_JOIN_CONSTRAINTS_UPDATE: 32768,\n GUILD_SUBSTATION_UPDATE: 65536,\n PROVIDER_WITHDRAW: 131072,\n PROVIDER_OPEN: 262144,\n REACTOR_GUILD_CREATE: 524288,\n HASH_BUILD: 1048576,\n HASH_MINE: 2097152,\n HASH_REFINE: 4194304,\n HASH_RAID: 8388608,\n GUILD_UGC_UPDATE: 16777216,\n\n ASSETS_ALL: 16 | 32 | 64 | 128,\n HASH_ALL: 1048576 | 2097152 | 4194304 | 8388608,\n ALL: (1 << 25) - 1,\n};\n","export const PLANET_CARD_TYPES = {\n ALPHA_BASE_LOADING: 'ALPHA_BASE_LOADING',\n ALPHA_BASE_ACTIVE: 'ALPHA_BASE_ACTIVE',\n ALPHA_BASE_COMPLETED: 'ALPHA_BASE_COMPLETED',\n ALPHA_BASE_DEPART: 'ALPHA_BASE_DEPART',\n ALPHA_BASE_ARRIVED: 'ALPHA_BASE_ARRIVED',\n RAID_LOADING: 'RAID_LOADING',\n RAID_NONE: 'RAID_NONE',\n RAID_STARTED: 'RAID_STARTED',\n RAID_ACTIVE: 'RAID_ACTIVE',\n RAID_RETREAT: 'RAID_RETREAT'\n};","export const PLAYER_MAP_ROLES = {\n ATTACKER: 'ATTACKER',\n DEFENDER: 'DEFENDER',\n SPECTATOR: 'SPECTATOR',\n};","export const PLAYER_TYPES = {\n PLAYER: 'player',\n RAID_ENEMY: 'raid_enemy',\n PLANET_RAIDER: 'planet_raider',\n};\n","export const PRECISION_CONVERSION = {\n ENERGY: 1000\n};","export const RAID_STATUS = {\n REQUESTED: 'requested',\n INITIATED: 'initiated',\n ONGOING: 'ongoing',\n ATTACKER_DEFEATED: 'attackerDefeated',\n ATTACKER_RETREATED: 'attackerRetreated',\n RAID_SUCCESSFUL: 'raidSuccessful',\n DEMILITARIZED: 'demilitarized',\n};\n","export const\n CODE_PATTERN = /^[A-HJ-NP-Z2-9]{5}$/,\n DISCORD_URL_PATTERN = /(?<=(discord\\.gg\\/))[a-zA-Z0-9]+/,\n SEARCH_STRING_PATTERN = /^[\\p{L}0-9-_]{3,}$/u,\n USERNAME_PATTERN = /^[\\p{L}0-9-_]{3,20}$/u\n;","export const\n SETTING = {\n PLANETARY_SHIELD_BASE: 'PLANETARY_SHIELD_BASE',\n PLANET_STARTING_ORE: 'PLANET_STARTING_ORE',\n PLANET_STARTING_SLOTS: 'PLANET_STARTING_SLOTS',\n PLAYER_PASSIVE_DRAW: 'PLAYER_PASSIVE_DRAW',\n PLAYER_RESUME_CHARGE: 'PLAYER_RESUME_CHARGE',\n REACTOR_RATIO: 'REACTOR_RATIO',\n STRUCT_SWEEP_DELAY: 'STRUCT_SWEEP_DELAY'\n }\n;\n","export const\n STRUCT_TYPES = {\n BATTLESHIP: 'Battleship',\n COMMAND_SHIP: 'Command Ship',\n CONTINENTAL_POWER_PLANT: 'Continental Power Plant',\n CRUISER: 'Cruiser',\n DESTROYER: 'Destroyer',\n FIELD_GENERATOR: 'Field Generator',\n FRIGATE: 'Frigate',\n HIGH_ALTITUDE_INTERCEPTOR: 'High Altitude Interceptor',\n JAMMING_SATELLITE: 'Jamming Satellite',\n MOBILE_ARTILLERY: 'Mobile Artillery',\n ORBITAL_SHIELD_GENERATOR: 'Orbital Shield Generator',\n ORE_BUNKER: 'Ore Bunker',\n ORE_EXTRACTOR: 'Ore Extractor',\n ORE_REFINERY: 'Ore Refinery',\n PLANETARY_DEFENSE_CANNON: 'Planetary Defense Cannon',\n PURSUIT_FIGHTER: 'Pursuit Fighter',\n SAM_LAUNCHER: 'SAM Launcher',\n STARFIGHTER: 'Starfighter',\n STEALTH_BOMBER: 'Stealth Bomber',\n SUBMERSIBLE: 'Submersible',\n TANK: 'Tank',\n WORLD_ENGINE: 'World Engine',\n },\n STRUCT_CATEGORIES = {\n FLEET: 'fleet',\n PLANET: 'planet'\n },\n STRUCT_PRIMARY_WEAPON = {\n UNGUIDED_WEAPONRY: 'unguidedWeaponry',\n GUIDED_WEAPONRY: 'guidedWeaponry',\n NO_ACTIVE_WEAPONRY: 'noActiveWeaponry'\n },\n STRUCT_SECONDARY_WEAPON = {\n UNGUIDED_WEAPONRY: 'unguidedWeaponry',\n ATTACK_RUN: 'attackRun',\n NO_ACTIVE_WEAPONRY: 'noActiveWeaponry'\n },\n STRUCT_PASSIVE_WEAPONRY = {\n COUNTER_ATTACK: 'counterAttack',\n STRONG_COUNTER_ATTACK: 'strongCounterAttack',\n ADVANCED_COUNTER_ATTACK: 'advancedCounterAttack',\n NO_PASSIVE_WEAPONRY: 'noPassiveWeaponry'\n },\n STRUCT_UNIT_DEFENSES = {\n ARMOUR: 'armour',\n DEFENSIVE_MANEUVER: 'defensiveManeuver',\n INDIRECT_COMBAT_MODULE: 'indirectCombatModule',\n SIGNAL_JAMMING: 'signalJamming',\n STEALTH_MODE: 'stealthMode',\n NO_UNIT_DEFENSES: 'noUnitDefenses'\n },\n STRUCT_ORE_RESERVE_DEFENSES = {\n COORDINATED_RESERVE_RESPONSE_TRACKER: 'coordinatedReserveResponseTracker',\n MONITORING_STATION: 'monitoringStation',\n ORE_BUNKER: 'oreBunker',\n NO_ORE_RESERVE_DEFENSES: 'noOreReserveDefenses'\n },\n STRUCT_PLANETARY_DEFENSES = {\n DEFENSIVE_CANNON: 'defensiveCannon',\n LOW_ORBIT_BALLISTIC_INTERCEPTOR_NETWORK: 'lowOrbitBallisticInterceptorNetwork',\n NO_PLANETARY_DEFENSE: 'noPlanetaryDefense'\n },\n STRUCT_PLANETARY_MINING = {\n ORE_MINING_RIG: 'oreMiningRig',\n NO_PLANETARY_MINING: 'noPlanetaryMining'\n },\n STRUCT_PLANETARY_REFINERY = {\n ORE_REFINERY: 'oreRefinery',\n NO_PLANETARY_REFINERY: 'noPlanetaryRefinery'\n },\n STRUCT_POWER_GENERATION = {\n SMALL_GENERATOR: 'smallGenerator',\n MEDIUM_GENERATOR: 'mediumGenerator',\n LARGE_GENERATOR: 'largeGenerator',\n NO_POWER_GENERATION: 'noPowerGeneration'\n },\n STRUCT_EQUIPMENT_ICON_MAP = {\n [STRUCT_SECONDARY_WEAPON.ATTACK_RUN]: 'icon-ballistic-weapon',\n [STRUCT_PRIMARY_WEAPON.GUIDED_WEAPONRY]: 'icon-smart-weapon',\n [STRUCT_PRIMARY_WEAPON.UNGUIDED_WEAPONRY]: 'icon-ballistic-weapon',\n\n [STRUCT_PASSIVE_WEAPONRY.ADVANCED_COUNTER_ATTACK]: 'icon-adv-counter',\n [STRUCT_PASSIVE_WEAPONRY.COUNTER_ATTACK]: 'icon-counter',\n [STRUCT_PASSIVE_WEAPONRY.STRONG_COUNTER_ATTACK]: 'icon-adv-counter',\n\n [STRUCT_UNIT_DEFENSES.ARMOUR]: 'icon-armour',\n [STRUCT_UNIT_DEFENSES.DEFENSIVE_MANEUVER]: 'icon-kinetic-barrier',\n [STRUCT_UNIT_DEFENSES.INDIRECT_COMBAT_MODULE]: 'icon-indirect',\n [STRUCT_UNIT_DEFENSES.SIGNAL_JAMMING]: 'icon-signal-jam',\n [STRUCT_UNIT_DEFENSES.STEALTH_MODE]: 'icon-stealth',\n\n [STRUCT_ORE_RESERVE_DEFENSES.COORDINATED_RESERVE_RESPONSE_TRACKER]: 'icon-planetary-shield',\n [STRUCT_PLANETARY_DEFENSES.DEFENSIVE_CANNON]: 'icon-counter',\n [STRUCT_PLANETARY_DEFENSES.LOW_ORBIT_BALLISTIC_INTERCEPTOR_NETWORK]: 'icon-signal-jam',\n [STRUCT_ORE_RESERVE_DEFENSES.MONITORING_STATION]: 'icon-planetary-shield',\n [STRUCT_ORE_RESERVE_DEFENSES.ORE_BUNKER]: 'icon-planetary-shield',\n [STRUCT_POWER_GENERATION.SMALL_GENERATOR]: 'icon-refine'\n },\n STRUCT_DESCRIPTIONS = {\n [STRUCT_TYPES.BATTLESHIP]: \"\",\n [STRUCT_TYPES.COMMAND_SHIP]: \"\",\n [STRUCT_TYPES.CONTINENTAL_POWER_PLANT]: \"Consumes Alpha Matter to generate Energy.\",\n [STRUCT_TYPES.CRUISER]: \"\",\n [STRUCT_TYPES.DESTROYER]: \"\",\n [STRUCT_TYPES.FIELD_GENERATOR]: \"Consumes Alpha Matter to generate Energy.\",\n [STRUCT_TYPES.FRIGATE]: \"\",\n [STRUCT_TYPES.HIGH_ALTITUDE_INTERCEPTOR]: \"\",\n [STRUCT_TYPES.JAMMING_SATELLITE]: \"Applies Signal Jamming to all enemy Smart Attacks.\",\n [STRUCT_TYPES.MOBILE_ARTILLERY]: \"\",\n [STRUCT_TYPES.ORBITAL_SHIELD_GENERATOR]: \"Improves Planetary Defense.\",\n [STRUCT_TYPES.ORE_BUNKER]: \"Massively improves Planetary Defense by storing Ore underground.\",\n [STRUCT_TYPES.ORE_EXTRACTOR]: \"Extracts Alpha Ore from the planet.\",\n [STRUCT_TYPES.ORE_REFINERY]: \"Refines Ore into usable Alpha Matter.\",\n [STRUCT_TYPES.PLANETARY_DEFENSE_CANNON]: \"Launches Counter-Attacks against attacking Structs.\",\n [STRUCT_TYPES.PURSUIT_FIGHTER]: \"\",\n [STRUCT_TYPES.SAM_LAUNCHER]: \"\",\n [STRUCT_TYPES.STARFIGHTER]: \"\",\n [STRUCT_TYPES.STEALTH_BOMBER]: \"\",\n [STRUCT_TYPES.SUBMERSIBLE]: \"\",\n [STRUCT_TYPES.TANK]: \"\",\n [STRUCT_TYPES.WORLD_ENGINE]: \"Consumes Alpha Matter to generate Energy.\"\n },\n STRUCT_WEAPON_SYSTEM = {\n PRIMARY_WEAPON: 'primaryWeapon',\n SECONDARY_WEAPON: 'secondaryWeapon'\n },\n STRUCT_WEAPON_CONTROL = {\n GUIDED: 'guided',\n UNGUIDED: 'unguided'\n },\n STRUCT_WEAPON_CONTROL_LABELS = {\n [STRUCT_WEAPON_CONTROL.GUIDED]: 'Smart Weapon',\n [STRUCT_WEAPON_CONTROL.UNGUIDED]: 'Ballistic Weapon'\n },\n STRUCT_STATUS_FLAGS = {\n MATERIALIZED: 1,\n BUILT: 2,\n ONLINE: 4,\n STORED: 8,\n HIDDEN: 16,\n DESTROYED: 32,\n LOCKED: 64\n },\n STRUCT_ACTIONS = {\n ACTIVATE: 'ACTIVATE',\n DEACTIVATE: 'DEACTIVATE',\n ATTACK_PRIMARY_WEAPON: 'ATTACK_PRIMARY_WEAPON',\n ATTACK_SECONDARY_WEAPON: 'ATTACK_SECONDARY_WEAPON',\n DEFENSE_SET: 'DEFENSE_SET',\n DEFENSE_CLEAR: 'DEFENSE_CLEAR',\n MOVE: 'MOVE',\n STEALTH_ACTIVATE: 'STEALTH_ACTIVATE',\n STEALTH_DEACTIVATE: 'STEALTH_DEACTIVATE'\n },\n STRUCT_WATER_RIPPLE = 'waterRipple',\n STRUCT_EQUIPMENT = {\n PASSIVE_WEAPONRY: 'passiveWeaponry',\n UNIT_DEFENSES: 'unitDefenses',\n ORE_RESERVE_DEFENSES: 'oreReserveDefenses',\n PLANETARY_DEFENSES: 'planetaryDefenses',\n PLANETARY_MINING: 'planetaryMining',\n PLANETARY_REFINERY: 'planetaryRefinery',\n POWER_GENERATION: 'powerGeneration',\n },\n STRUCT_STILL_LAYERS = {\n STRUCT_VARIANT_BASE: 'structVariantBase',\n STRUCT_VARIANT_DMG: 'structVariantDmg',\n }\n;\n","export const TASK = {\n WORKER_PATH: '/js/workers/TaskWorker.js',\n MAX_BLOCKS_WHEN_ESTIMATING: 30000,\n MAX_CONCURRENT_PROCESSES: 5,\n CHECKPOINT_COMMIT: 5000000,\n DIFFICULTY_RECALCULATE: 5000000,\n DIFFICULTY_START: 10,\n DIFFICULTY_START_SLEEP_DELAY: 10000,\n CHECKPOINT_BLOCK: 10,\n ESTIMATED_BLOCK_TIME: 5000,\n HASHRATE_INITIAL_ESTIMATE: 300.0,\n IDENTITY_PREFIX: \"IDENTITY\",\n NONCE_PREFIX: \"NONCE\",\n TARGET_DELIMITER: \"@\",\n AUTOMATIC_STATUS_INTERVAL: 60000,\n START_DELAY: 10000,\n};\n","export const TASK_MANAGER_STATUS = {\n OFFLINE: 'offline',\n ONLINE: 'online',\n};\n","export const TASK_STATUS = {\n INITIATED: 'initiated',\n STARTING: 'starting',\n WAITING: 'waiting',\n RUNNING: 'running',\n PAUSED: 'paused',\n TERMINATED: 'terminated',\n COMPLETED: 'completed',\n};\n","export const TASK_TYPES = {\n RAID: 'RAID',\n BUILD: 'BUILD',\n MINE: 'MINE',\n REFINE: 'REFINE',\n};\n","import {AbstractController} from \"../framework/AbstractController\";\nimport {AccountIndexViewModel} from \"../view_models/account/AccountIndexViewModel\";\nimport {AccountProfileViewModel} from \"../view_models/account/AccountProfileViewModel\";\nimport {AccountDevicesViewModel} from \"../view_models/account/AccountDevicesViewModel\";\nimport {AccountNewDeviceCodeViewModel} from \"../view_models/account/AccountNewDeviceCodeViewModel\";\nimport {AccountApproveNewDeviceViewModel} from \"../view_models/account/AccountApproveNewDeviceViewModel\";\nimport {AccountActivatingDeviceViewModel} from \"../view_models/account/AccountActivatingDeviceViewModel\";\nimport {AccountDeviceActivationComplete} from \"../view_models/account/AccountDeviceActivationComplete\";\nimport {AccountDeviceActivationCancelled} from \"../view_models/account/AccountDeviceActivationCancelled\";\nimport {AccountDeviceViewModel} from \"../view_models/account/AccountDeviceViewModel\";\nimport {AccountChangeUsername} from \"../view_models/account/AccountChangeUsername\";\nimport {AccountTransfersViewModel} from \"../view_models/account/AccountTransfersViewModel\";\nimport {AccountTransactionHistory} from \"../view_models/account/AccountTransactionHistory\";\nimport {AccountTransactionViewModel} from \"../view_models/account/AccountTransactionViewModel\";\nimport {AccountTransferAmountViewModel} from \"../view_models/account/AccountTransferAmountViewModel\";\nimport {AccountRecipientSearchViewModel} from \"../view_models/account/AccountRecipientSearchViewModel\";\nimport {AccountRecipientSearchResults} from \"../view_models/account/AccountRecipientSearchResults\";\nimport {AccountRecipientViewModel} from \"../view_models/account/AccountRecipientViewModel\";\nimport {AccountConfirmTransfer} from \"../view_models/account/AccountConfirmTransfer\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class AccountController extends AbstractController {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {AuthManager} authManager\n * @param {PermissionManager} permissionManager\n * @param {AlphaManager} alphaManager\n * @param {GrassManager} grassManager\n * @param {SigningClientManager} signingClientManager\n */\n constructor(\n gameState,\n guildAPI,\n authManager,\n permissionManager,\n alphaManager,\n grassManager,\n signingClientManager\n ) {\n super('Account', gameState);\n this.guildAPI = guildAPI;\n this.authManager = authManager;\n this.permissionManager = permissionManager;\n this.alphaManager = alphaManager;\n this.grassManager = grassManager;\n this.signingClientManager = signingClientManager;\n }\n\n index() {\n const viewModel = new AccountIndexViewModel(this.gameState, this.guildAPI, this.authManager);\n viewModel.render();\n }\n\n /**\n * @param {object} options\n */\n profile(options) {\n const playerId = (options.hasOwnProperty('playerId') && options.playerId)\n ? options.playerId\n : this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id;\n const viewModel = new AccountProfileViewModel(\n this.gameState,\n this.guildAPI,\n playerId\n );\n viewModel.render();\n }\n\n devices() {\n const viewModel = new AccountDevicesViewModel(\n this.gameState,\n this.guildAPI,\n this.authManager,\n this.permissionManager\n );\n viewModel.render();\n }\n\n newDeviceCode() {\n const viewModel = new AccountNewDeviceCodeViewModel(this.gameState, this.guildAPI, this.authManager);\n viewModel.render();\n }\n\n /**\n * @param {PlayerAddressPending} playerAddressPending\n */\n approveNewDevice(playerAddressPending) {\n const viewModel = new AccountApproveNewDeviceViewModel(\n this.gameState,\n this.permissionManager,\n playerAddressPending\n );\n viewModel.render();\n }\n\n /**\n * @param {PlayerAddressPending} playerAddressPending\n */\n activatingDevice(playerAddressPending) {\n const viewModel = new AccountActivatingDeviceViewModel(\n this.gameState,\n this.authManager,\n playerAddressPending\n );\n viewModel.render();\n }\n\n deviceActivationComplete() {\n const viewModel = new AccountDeviceActivationComplete();\n viewModel.render();\n }\n\n deviceActivationCancelled() {\n const viewModel = new AccountDeviceActivationCancelled();\n viewModel.render();\n }\n\n /**\n * @param {PlayerAddress} deviceAddress\n */\n manageDevice(deviceAddress) {\n const viewModel = new AccountDeviceViewModel(\n this.gameState,\n this.guildAPI,\n this.permissionManager,\n deviceAddress\n );\n viewModel.render();\n }\n\n changeUsername() {\n const viewModel = new AccountChangeUsername(\n this.gameState,\n this.guildAPI,\n this.permissionManager,\n this.signingClientManager\n );\n viewModel.render();\n }\n\n transfers() {\n const viewModel = new AccountTransfersViewModel();\n viewModel.render();\n }\n\n /**\n * @param {object} options\n */\n transactionHistory(options) {\n const page = options.hasOwnProperty('page') ? options.page : 1;\n const viewModel = new AccountTransactionHistory(\n this.gameState,\n this.guildAPI,\n page\n );\n viewModel.render();\n }\n\n /**\n * @param {object} options\n */\n transaction(options) {\n const viewModel = new AccountTransactionViewModel(\n this.gameState,\n this.guildAPI,\n options.txId,\n options.comingFromPage,\n options.hasOwnProperty('hasBackToAccountBtn') ? options.hasBackToAccountBtn : false,\n );\n viewModel.render();\n }\n\n transferAmount() {\n const viewModel = new AccountTransferAmountViewModel(this.gameState);\n viewModel.render();\n }\n\n recipientSearch() {\n const viewModel = new AccountRecipientSearchViewModel(this.gameState, this.guildAPI);\n viewModel.render();\n }\n\n /**\n * @param {object} options\n */\n recipientSearchResults(options) {\n const viewModel = new AccountRecipientSearchResults(this.gameState, this.guildAPI, options)\n viewModel.render();\n }\n\n /**\n * @param {object} options\n */\n recipient(options) {\n const viewModel = new AccountRecipientViewModel(this.gameState, this.guildAPI, options);\n viewModel.render();\n }\n\n /**\n * @param {object} options\n */\n confirmTransfer(options) {\n const viewModel = new AccountConfirmTransfer(\n this.gameState,\n this.guildAPI,\n this.alphaManager,\n this.grassManager,\n options\n );\n viewModel.render();\n }\n}","import {AbstractController} from \"../framework/AbstractController\";\nimport {IndexView} from \"../view_models/IndexViewModel\";\nimport {ConnectingToCorp1ViewModel} from \"../view_models/signup/ConnectingToCorp1ViewModel\";\nimport {ConnectingToCorp2ViewModel} from \"../view_models/signup/ConnectingToCorp2ViewModel\";\nimport {IncomingCall1ViewModel} from \"../view_models/signup/IncomingCall1ViewModel\";\nimport {IncomingCall2ViewModel} from \"../view_models/signup/IncomingCall2ViewModel\";\nimport {IncomingCall3ViewModel} from \"../view_models/signup/IncomingCall3ViewModel\";\nimport {SetUsernameViewModel} from \"../view_models/signup/SetUsernameViewModel\";\nimport {RecoveryKeyIntroViewModel} from \"../view_models/signup/RecoveryKeyIntroViewModel\";\nimport {RecoveryKeyCreationViewModel} from \"../view_models/signup/RecoveryKeyCreationViewModel\";\nimport {WalletManager} from \"../managers/WalletManager\";\nimport {RecoveryKeyConfirmationViewModel} from \"../view_models/signup/RecoveryKeyConfirmationViewModel\";\nimport {LoggingInViewModel} from \"../view_models/login/LoggingInViewModel\";\nimport {RecoveryKeyFaqViewModel} from \"../view_models/signup/RecoveryKeyFaqViewModel\";\nimport {SignupSuccessViewModel} from \"../view_models/signup/SignupSuccessViewModel\";\nimport {AuthManager} from \"../managers/AuthManager\";\nimport {Orientation1ViewModel} from \"../view_models/signup/Orientation1ViewModel\";\nimport {Orientation2ViewModel} from \"../view_models/signup/Orientation2ViewModel\";\nimport {Orientation3ViewModel} from \"../view_models/signup/Orientation3ViewModel\";\nimport {Orientation4ViewModel} from \"../view_models/signup/Orientation4ViewModel\";\nimport {Orientation5ViewModel} from \"../view_models/signup/Orientation5ViewModel\";\nimport {Orientation6ViewModel} from \"../view_models/signup/Orientation6ViewModel\";\nimport {Orientation7ViewModel} from \"../view_models/signup/Orientation7ViewModel\";\nimport {Orientation8ViewModel} from \"../view_models/signup/Orientation8ViewModel\";\nimport {OrientationEndViewModel} from \"../view_models/signup/OrientationEndViewModel\";\nimport {ActivateDeviceViewModel} from \"../view_models/login/ActivateDeviceViewModel\";\nimport {ActivateDeviceVerifyViewModel} from \"../view_models/login/ActivateDeviceVerifyViewModel\";\nimport {ActivationCodeInfoDTO} from \"../dtos/ActivationCodeInfoDTO\";\nimport {ActivateDeviceCancelledViewModel} from \"../view_models/login/ActivateDeviceCancelledViewModel\";\nimport {\n ActivateDeviceWaitingForApprovalViewModel\n} from \"../view_models/login/ActivateDeviceWaitingForApprovalViewModel\";\nimport {ActivatingDeviceViewModel} from \"../view_models/login/ActivatingDeviceViewModel\";\nimport {ActivateDeviceCompleteViewModel} from \"../view_models/login/ActivateDeviceCompleteViewModel\";\nimport {RecoverAccountStartViewModel} from \"../view_models/login/RecoverAccountStartViewModel\";\nimport {RecoverAccountSuccessViewModel} from \"../view_models/login/RecoverAccountSuccessViewModel\";\nimport {RecoverAccountFailViewModel} from \"../view_models/login/RecoverAccountFailViewModel\";\nimport {LogoutPermissionsWarningViewModel} from \"../view_models/logout/LogoutPermissionsWarningViewModel\";\nimport {LogoutAssetsWarningViewModel} from \"../view_models/logout/LogoutAssetsWarningViewModel\";\nimport {MenuPage} from \"../framework/MenuPage\";\nimport {MenuWaitingOptions} from \"../options/MenuWaitingOptions\";\n\nexport class AuthController extends AbstractController {\n\n /**\n *\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {WalletManager} walletManager\n * @param {AuthManager} authManager\n */\n constructor(\n gameState,\n guildAPI,\n walletManager,\n authManager\n ) {\n super('Auth', gameState);\n this.guildAPI = guildAPI;\n this.walletManager = walletManager;\n this.authManager = authManager;\n }\n\n index() {\n const viewModel = new IndexView();\n viewModel.render();\n }\n\n signupConnectingToCorporate1() {\n const viewModel = new ConnectingToCorp1ViewModel();\n viewModel.render();\n }\n\n signupConnectingToCorporate2() {\n const viewModel = new ConnectingToCorp2ViewModel();\n viewModel.render();\n }\n\n signupIncomingCall1() {\n const viewModel = new IncomingCall1ViewModel();\n viewModel.render();\n }\n\n signupIncomingCall2() {\n const viewModel = new IncomingCall2ViewModel();\n viewModel.render();\n }\n\n signupIncomingCall3() {\n const viewModel = new IncomingCall3ViewModel();\n viewModel.render();\n }\n\n signupSetUsername() {\n const viewModel = new SetUsernameViewModel(this.gameState);\n viewModel.render();\n }\n\n signupRecoveryKeyIntro() {\n const viewModel = new RecoveryKeyIntroViewModel();\n viewModel.render();\n }\n\n signupRecoveryKeyCreation() {\n if (this.gameState.mnemonic === null) {\n this.gameState.mnemonic = this.walletManager.createMnemonic();\n }\n const viewModel = new RecoveryKeyCreationViewModel(this.gameState.mnemonic);\n viewModel.render();\n }\n\n signupRecoveryKeyConfirmation() {\n const viewModel = new RecoveryKeyConfirmationViewModel(\n this.gameState,\n this.authManager\n );\n viewModel.render();\n }\n\n /**\n * @param {object} options\n */\n signupRecoveryKeyConfirmFail(options) {\n const viewModel = new RecoveryKeyCreationViewModel(this.gameState.mnemonic);\n viewModel.render(options.view);\n }\n\n /**\n * @param {object} options\n */\n signupRecoveryKeyFaq(options) {\n const viewModel = new RecoveryKeyFaqViewModel(options.backButtonHandler);\n viewModel.render();\n }\n\n signupSuccess() {\n const viewModel = new SignupSuccessViewModel();\n viewModel.render();\n }\n\n loggingIn() {\n const viewModel = new LoggingInViewModel();\n viewModel.render();\n }\n\n orientation1() {\n const viewModel = new Orientation1ViewModel();\n viewModel.render();\n }\n\n orientation2() {\n const viewModel = new Orientation2ViewModel();\n viewModel.render();\n }\n\n orientation3() {\n const viewModel = new Orientation3ViewModel();\n viewModel.render();\n }\n\n orientation4() {\n const viewModel = new Orientation4ViewModel();\n viewModel.render();\n }\n\n orientation5() {\n const viewModel = new Orientation5ViewModel();\n viewModel.render();\n }\n\n orientation6() {\n const viewModel = new Orientation6ViewModel();\n viewModel.render();\n }\n\n orientation7() {\n const viewModel = new Orientation7ViewModel();\n viewModel.render();\n }\n\n orientation8() {\n const viewModel = new Orientation8ViewModel();\n viewModel.render();\n }\n\n orientationEnd() {\n const viewModel = new OrientationEndViewModel();\n viewModel.render();\n }\n\n loginActivateDevice() {\n const viewModel = new ActivateDeviceViewModel(this.guildAPI);\n viewModel.render();\n }\n\n /**\n * @param {ActivationCodeInfoDTO|null} activationCodeInfoDTO\n */\n loginActivateDeviceVerify(activationCodeInfoDTO = null) {\n const viewModel = new ActivateDeviceVerifyViewModel(\n this.authManager,\n activationCodeInfoDTO\n );\n viewModel.render();\n }\n\n loginActivateDeviceCancelled() {\n const viewModel = new ActivateDeviceCancelledViewModel();\n viewModel.render();\n }\n\n /**\n * @param {ActivationCodeInfoDTO|null} activationCodeInfoDTO\n */\n loginActivateDeviceWaitingForApproval(activationCodeInfoDTO = null) {\n const viewModel = new ActivateDeviceWaitingForApprovalViewModel(\n this.gameState,\n activationCodeInfoDTO\n );\n viewModel.render();\n }\n\n /**\n * @param {ActivationCodeInfoDTO|null} activationCodeInfoDTO\n */\n loginActivatingDevice(activationCodeInfoDTO) {\n const viewModel = new ActivatingDeviceViewModel(\n this.gameState,\n this.authManager,\n activationCodeInfoDTO\n );\n viewModel.render();\n }\n\n loginActivateDeviceComplete() {\n const viewModel = new ActivateDeviceCompleteViewModel(this.gameState);\n viewModel.render();\n }\n\n loginRecoverAccountStart() {\n const viewModel = new RecoverAccountStartViewModel(this.gameState, this.authManager);\n viewModel.render();\n }\n\n loginRecoverAccountSuccess() {\n const viewModel = new RecoverAccountSuccessViewModel();\n viewModel.render();\n }\n\n loginRecoverAccountFail() {\n const viewModel = new RecoverAccountFailViewModel();\n viewModel.render();\n }\n\n /**\n * @param {object} options\n */\n logout(options) {\n\n const addressToRevoke = options.hasOwnProperty('address') ? options.address : null;\n\n const menuWaitingOptions = new MenuWaitingOptions();\n menuWaitingOptions.headerBtnLabel = 'Logout';\n menuWaitingOptions.waitingMessage = 'Logging out.';\n\n MenuPage.router.goto('Generic', 'menuWaiting', menuWaitingOptions);\n\n if (addressToRevoke) {\n this.authManager.revokeAddress(addressToRevoke).then();\n } else {\n this.authManager.logout();\n }\n }\n\n /**\n * @param {PlayerAddress} playerAddress\n */\n logoutAssetsWarning(playerAddress) {\n const viewModel = new LogoutAssetsWarningViewModel(this.gameState, playerAddress);\n viewModel.render();\n }\n\n /**\n * @param {PlayerAddress} playerAddress\n */\n logoutPermissionsWarning(playerAddress) {\n const viewModel = new LogoutPermissionsWarningViewModel(this.gameState, playerAddress);\n viewModel.render();\n }\n}","import {AbstractController} from \"../framework/AbstractController\";\nimport {FleetIndexViewModel} from \"../view_models/fleet/FleetIndexViewModel\";\nimport {ScanViewModel} from \"../view_models/fleet/ScanViewModel\";\nimport {ScanResultsViewModel} from \"../view_models/fleet/ScanResultsViewModel\";\nimport {MapManager} from \"../managers/MapMananger\";\nimport {PreviewViewModel} from \"../view_models/fleet/PreviewViewModel\";\n\n\nexport class FleetController extends AbstractController {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {GrassManager} grassManager\n * @param {FleetManager} fleetManager\n * @param {RaidManager} raidManager\n * @param {PlanetManager} planetManager\n * @param {MapManager} mapManager\n * @param {StructManager} structManager\n */\n constructor(\n gameState,\n guildAPI,\n grassManager,\n fleetManager,\n raidManager,\n planetManager,\n mapManager,\n structManager\n ) {\n super('Fleet', gameState);\n this.guildAPI = guildAPI;\n this.grassManager = grassManager;\n this.fleetManager = fleetManager;\n this.raidManager = raidManager;\n this.planetManager = planetManager;\n this.mapManager = mapManager;\n this.structManager = structManager;\n }\n\n /**\n * @param {Object} options\n */\n index(options = {}) {\n\n const planetCardType = options.hasOwnProperty('planetCardType') ? options.planetCardType : null;\n const raidCardType = options.hasOwnProperty('raidCardType') ? options.raidCardType : null;\n\n const viewModel = new FleetIndexViewModel(\n this.gameState,\n this.guildAPI,\n this.fleetManager,\n this.grassManager,\n this.planetManager,\n this.mapManager,\n this.raidManager,\n this.structManager,\n planetCardType,\n raidCardType\n );\n viewModel.render();\n }\n\n scan() {\n const viewModel = new ScanViewModel(this.gameState, this.guildAPI);\n viewModel.render();\n }\n\n /**\n * @param {Object} options\n */\n scanResults(options) {\n const viewModel = new ScanResultsViewModel(\n this.gameState,\n this.guildAPI,\n this.fleetManager,\n this.grassManager,\n this.raidManager,\n this.mapManager,\n options\n );\n viewModel.render();\n }\n\n /**\n * @param {Object} options\n */\n preview(options) {\n const viewModel = new PreviewViewModel(\n this.gameState,\n this.guildAPI,\n this.fleetManager,\n this.grassManager,\n this.raidManager,\n this.mapManager,\n options.planet_id,\n options.planet_undiscovered_ore,\n options.defender_id,\n options.defender_ore,\n options.attacker_id\n );\n viewModel.render();\n }\n}","import {AbstractController} from \"../framework/AbstractController\";\nimport {MenuWaitingViewModel} from \"../view_models/generic/MenuWaitingViewModel\";\nimport {MenuWaitingOptions} from \"../options/MenuWaitingOptions\";\n\nexport class GenericController extends AbstractController {\n\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super('Generic', gameState);\n }\n\n /**\n * @param {MenuWaitingOptions} options\n */\n menuWaiting(options) {\n const viewModel = new MenuWaitingViewModel(options);\n viewModel.render();\n }\n\n}","import {AbstractController} from \"../framework/AbstractController\";\nimport {GuildIndexViewModel} from \"../view_models/guild/GuildIndexViewModel\";\nimport {GuildProfileViewModel} from \"../view_models/guild/GuildProfileViewModel\";\nimport {MemberRosterViewModel} from \"../view_models/guild/MemberRosterViewModel\";\nimport {GuildsDirectoryViewModel} from \"../view_models/guild/GuildsDirectoryViewModel\";\nimport {ReactorViewModel} from \"../view_models/guild/ReactorViewModel\";\nimport {ManageAlphaViewModel} from \"../view_models/guild/ManageAlphaViewModel\";\n\nexport class GuildController extends AbstractController {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {GrassManager} grassManager\n * @param {AlphaManager} alphaManager\n */\n constructor(\n gameState,\n guildAPI,\n grassManager,\n alphaManager\n ) {\n super('Guild', gameState);\n this.guildAPI = guildAPI;\n this.grassManager = grassManager;\n this.alphaManager = alphaManager;\n }\n\n index() {\n const viewModel = new GuildIndexViewModel(this.gameState, this.guildAPI);\n viewModel.render();\n }\n\n /**\n * @param {object} options\n */\n profile(options) {\n const viewModel = new GuildProfileViewModel(this.gameState, this.guildAPI, options.guildId);\n viewModel.render();\n }\n\n /**\n * @param {object} options\n */\n roster(options) {\n const viewModel = new MemberRosterViewModel(this.gameState, this.guildAPI, options.guildId);\n viewModel.render();\n }\n\n directory() {\n const viewModel = new GuildsDirectoryViewModel(this.gameState, this.guildAPI);\n viewModel.render();\n }\n\n reactor() {\n const viewModel = new ReactorViewModel(this.gameState, this.guildAPI);\n viewModel.render();\n }\n\n /**\n * @param {object} options\n */\n manageAlpha(options) {\n const viewModel = new ManageAlphaViewModel(\n this.gameState,\n this.guildAPI,\n this.grassManager,\n this.alphaManager,\n options\n );\n viewModel.render();\n }\n}","import {EVENTS} from \"../constants/Events\";\nimport {Queue} from \"./Queue\";\n\nexport class AnimationEventQueue extends Queue {\n\n constructor() {\n super();\n this.isPlaying = false;\n this.currentEvent = null;\n }\n\n enqueue(event) {\n super.enqueue(event);\n if (!this.isPlaying) {\n this.playNext();\n }\n }\n\n playNext() {\n if (this.isEmpty()) {\n const wasPlaying = this.isPlaying;\n this.isPlaying = false;\n this.currentEvent = null;\n // Notify listeners that the queue has just transitioned to idle so they\n // can flush any work they deferred while animations were in flight (e.g.\n // HUD renders that would otherwise have clobbered partial-state frames).\n if (wasPlaying) {\n window.dispatchEvent(new CustomEvent(EVENTS.ANIMATION_QUEUE_EMPTY));\n }\n return;\n }\n\n this.isPlaying = true;\n this.currentEvent = super.dequeue();\n window.dispatchEvent(this.currentEvent);\n }\n\n initListeners() {\n window.addEventListener(EVENTS.ANIMATION_END, async () => {\n if (this.currentEvent && this.currentEvent.onAnimationEnd) {\n await this.currentEvent.onAnimationEnd();\n }\n this.playNext();\n });\n }\n}\n","import {DoublyLinkedNode} from \"./DoublyLinkedNode\";\n\nexport class DoublyLinkedList {\n\n constructor() {\n /** @type {DoublyLinkedNode|null} */\n this.head = null;\n\n /** @type {DoublyLinkedNode|null} */\n this.tail = null;\n\n this.size = 0;\n }\n\n /**\n * @return {boolean}\n */\n isEmpty() {\n return this.size === 0;\n }\n\n /**\n * @param {*} value\n */\n addToTail(value) {\n const node = new DoublyLinkedNode(value);\n\n if (this.isEmpty()) {\n this.head = node;\n this.tail = node;\n } else {\n node.prev = this.tail;\n this.tail.next = node;\n this.tail = node;\n }\n\n this.size++;\n }\n\n /**\n * @return {*|null}\n */\n removeFromHead() {\n if (this.isEmpty()) {\n return null;\n }\n\n const value = this.head.value;\n\n if (this.size === 1) {\n this.head = null;\n this.tail = null;\n } else {\n this.head = this.head.next;\n this.head.prev = null;\n }\n\n this.size--;\n return value;\n }\n}\n","export class DoublyLinkedNode {\n\n /**\n * @param {*} value\n */\n constructor(value) {\n this.value = value;\n\n /** @type {DoublyLinkedNode|null} */\n this.prev = null;\n\n /** @type {DoublyLinkedNode|null} */\n this.next = null;\n }\n}\n","import {DoublyLinkedList} from \"./DoublyLinkedList\";\n\nexport class Queue {\n\n constructor() {\n this.list = new DoublyLinkedList();\n }\n\n /**\n * @param {*} value\n */\n enqueue(value) {\n this.list.addToTail(value);\n }\n\n /**\n * @return {*|null}\n */\n dequeue() {\n return this.list.removeFromHead();\n }\n\n /**\n * @return {boolean}\n */\n isEmpty() {\n return this.list.isEmpty();\n }\n\n /**\n * @return {number}\n */\n getSize() {\n return this.list.size;\n }\n}\n","export class ActivationCodeInfoDTO {\n constructor() {\n this.code = null;\n this.player_id = null;\n this.tag = null;\n this.username = null;\n this.pfp = null;\n }\n}","export class AddPendingAddressRequestDTO {\n constructor() {\n this.player_id = null;\n this.guild_id = null;\n this.code = null;\n this.address = null;\n this.signature = null;\n this.pubkey = null;\n this.user_agent = null;\n }\n}","export class AddPlayerAddressMetaRequestDTO {\n constructor() {\n this.address = null;\n this.guild_id = null;\n this.user_agent = null;\n }\n}","export class CreateActivationCodeRequestDTO {\n constructor() {\n this.logged_in_address = null;\n this.guild_id = null;\n }\n}","export class GuildAPICacheItemDTO {\n constructor(value) {\n this.value = value;\n this.timestamp = Date.now();\n }\n}","export class GuildPowerStatsDTO {\n constructor() {\n this.total_fuel = null;\n this.total_load = null;\n this.total_capacity = null;\n this.avg_connection_capacity = null;\n }\n}","export class GuildSearchResultDTO {\n constructor() {\n this.guild_id = null;\n this.name = null;\n this.logo = null;\n this.alpha = null;\n this.members = null;\n }\n}","export class LoginRequestDTO {\n constructor() {\n this.address = null;\n this.signature = null;\n this.pubkey = null;\n this.guild_id = null;\n this.unix_timestamp = null;\n }\n}","export class MapStructTileRenderParamsDTO {\n constructor() {\n this.tileElement = null;\n this.struct = null;\n }\n}","export class NavItemDTO {\n constructor(id, label, actionHandler = () => {}) {\n this.id = id;\n this.label = label;\n this.actionHandler = actionHandler;\n }\n}","export class PlanetaryShieldInfoDTO {\n constructor() {\n this.planet_id = null;\n this.planetary_shield = null;\n this.block_start_raid = null;\n }\n}","export class PlayerSearchResultDTO {\n constructor() {\n this.id = null;\n this.address = null;\n this.username = null;\n this.pfp = null;\n this.guild_name = null;\n this.tag = null;\n this.fleet_status = null;\n this.alpha = null;\n this.undiscovered_ore = null;\n this.ore = null;\n this.planet_id = null;\n }\n}","/**\n * Generic position data transfer object\n */\nexport class PositionDTO {\n\n /**\n * @param {int} x\n * @param {int} y\n */\n constructor(x = 0, y = 0) {\n this.x = x;\n this.y = y;\n }\n}\n","export class RaidSearchRequestDTO {\n constructor() {\n this.search_string = null;\n this.guild_id = null;\n this.min_ore = 0;\n this.fleet_away_only = 0;\n this.page = 1;\n }\n}","export class SetAddressPermissionsRequestDTO {\n constructor() {\n this.address = null;\n this.permissions = null;\n }\n}","export class SetPendingAddressPermissionsRequestDTO {\n constructor() {\n this.code = null;\n this.address = null;\n this.permissions = null;\n }\n}","export class SignupRequestDTO {\n constructor() {\n this.primary_address = null;\n this.signature = null;\n this.pubkey = null;\n this.guild_id = null;\n this.username = null;\n this.pfp = null;\n }\n}","export class SocialsDTO {\n constructor() {\n this.bluesky = null;\n this.discord_contact = null;\n this.discord_server = null;\n this.facebook = null;\n this.farcaster = null;\n this.instagram = null;\n this.telegram_channel = null;\n this.telegram_contact = null;\n this.twitch = null;\n this.x = null;\n this.youtube = null;\n }\n}","export class TransferSearchRequestDTO {\n constructor() {\n this.search_string = null;\n this.guild_id = null;\n }\n}","export class AnimationError extends Error {\n constructor(message, detail = {}) {\n super(message);\n this.detail = detail;\n }\n}","export class GuildAPIError extends Error {}","export class MapOrnamentComponentBuilderError extends Error {}","export class MapTransitionLayerComponentFactoryError extends Error {}","import {EVENTS} from \"../constants/Events\";\n\nexport class AlphaCountChangedEvent extends CustomEvent {\n\n /**\n * @param {string} playerType\n */\n constructor(playerType) {\n super(EVENTS.ALPHA_COUNT_CHANGED);\n this.playerType = playerType;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class AnimationEndEvent extends CustomEvent {\n\n /**\n * @param {string} animationName the name of the animation\n * @param {string} structId the subject of the animation\n * @param {string|null} mapId the id of the map the animation played on\n * @param {number|null} healthAfter the struct health that this animation ended with;\n * lets HUD/HUD-like listeners render partial state mid-attack-sequence rather than\n * pulling the (already-final) value from gameState\n */\n constructor(animationName, structId, mapId = null, healthAfter = null) {\n super(EVENTS.ANIMATION_END);\n\n this.animationName = animationName;\n this.structId = structId;\n this.mapId = mapId;\n this.healthAfter = healthAfter;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class AnimationEvent extends CustomEvent {\n\n /**\n * @param {string} structId the subject of the animation\n * @param {string[]} animationNames the names of the animations to play simultaneously\n * @param {boolean} showStructStillDuringAnimation whether or not to show the still struct image while the animation plays\n * @param {boolean} showStructStillAfterAnimation whether or not the still struct image should still be shown after the animations ends\n * @param {object} options optional parameters such which projectile to use in the animation\n * @param {string|null} mapId the id of the map the animation should play on; used by\n * map layer listeners to ignore events not intended for them\n */\n constructor(\n structId,\n animationNames,\n showStructStillDuringAnimation = false,\n showStructStillAfterAnimation = true,\n options = {},\n mapId = null\n ) {\n super(EVENTS.ANIMATION);\n\n this.structId = structId;\n this.animationNames = animationNames;\n this.showStructStillDuringAnimation = showStructStillDuringAnimation;\n this.showStructStillAfterAnimation = showStructStillAfterAnimation;\n this.options = options;\n this.mapId = mapId;\n\n /** @type {function(): (void|Promise)} */\n this.onAnimationEnd = null;\n }\n\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class ChargeLevelChangedEvent extends CustomEvent {\n constructor(playerId, chargeLevel) {\n super(EVENTS.CHARGE_LEVEL_CHANGED);\n this.playerId = playerId;\n this.chargeLevel = chargeLevel;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class ClearAttackTargetsEvent extends CustomEvent {\n /**\n * @param {string} mapId\n */\n constructor(mapId) {\n super(EVENTS.CLEAR_ATTACK_TARGETS);\n this.mapId = mapId;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class ClearDefendTargetsEvent extends CustomEvent {\n /**\n * @param {string} mapId\n */\n constructor(mapId) {\n super(EVENTS.CLEAR_DEFEND_TARGETS);\n this.mapId = mapId;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class ClearMoveTargetsEvent extends CustomEvent {\n /**\n * @param {string} mapId\n */\n constructor(mapId) {\n super(EVENTS.CLEAR_MOVE_TARGETS);\n this.mapId = mapId;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class ClearStructTileEvent extends CustomEvent {\n /**\n * @param {string} mapId\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n */\n constructor(mapId, tileType, ambit, slot, playerId) {\n super(EVENTS.CLEAR_STRUCT_TILE);\n this.mapId = mapId;\n this.tileType = tileType;\n this.ambit = ambit;\n this.slot = slot;\n this.playerId = playerId;\n }\n}\n\n","import {EVENTS} from \"../constants/Events\";\n\nexport class EnergyUsageChangedEvent extends CustomEvent {\n\n /**\n * @param {string} playerType\n */\n constructor(playerType) {\n super(EVENTS.ENERGY_USAGE_CHANGED);\n this.playerType = playerType;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class OreCountChangedEvent extends CustomEvent {\n\n /**\n * @param {string} playerType\n */\n constructor(playerType) {\n super(EVENTS.ORE_COUNT_CHANGED);\n this.playerType = playerType;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class PendingBuildAddedEvent extends CustomEvent {\n /**\n * @param {string} mapId\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n * @param {StructType} structType\n */\n constructor(mapId, tileType, ambit, slot, playerId, structType) {\n super(EVENTS.PENDING_BUILD_ADDED);\n this.mapId = mapId;\n this.tileType = tileType;\n this.ambit = ambit;\n this.slot = slot;\n this.playerId = playerId;\n this.structType = structType;\n }\n}\n\n","import {EVENTS} from \"../constants/Events\";\n\nexport class PlanetRaidStatusChangedEvent extends CustomEvent {\n\n /**\n * @param {string} playerType\n */\n constructor(playerType) {\n super(EVENTS.PLANET_RAID_STATUS_CHANGED);\n this.playerType = playerType;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class RefreshActionBarEvent extends CustomEvent {\n\n constructor() {\n super(EVENTS.REFRESH_ACTION_BAR);\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class RefreshActionBarIfSelectedEvent extends CustomEvent {\n /**\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n * @param {string} structId\n */\n constructor(tileType, ambit, slot, playerId, structId) {\n super(EVENTS.REFRESH_ACTION_BAR_IF_SELECTED);\n this.tileType = tileType;\n this.ambit = ambit;\n this.slot = slot;\n this.playerId = playerId;\n this.structId = structId;\n }\n}\n\n","import {EVENTS} from \"../constants/Events\";\n\nexport class RenderDeploymentIndicatorEvent extends CustomEvent {\n /**\n * @param {string} mapId\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n */\n constructor(mapId, tileType, ambit, slot, playerId) {\n super(EVENTS.RENDER_DEPLOYMENT_INDICATOR);\n this.mapId = mapId;\n this.tileType = tileType;\n this.ambit = ambit;\n this.slot = slot;\n this.playerId = playerId;\n }\n}\n\n","import {EVENTS} from \"../constants/Events\";\nimport {Struct} from \"../models/Struct\";\n\nexport class RenderStructEvent extends CustomEvent {\n /**\n * @param {string} mapId\n * @param {Struct} struct\n * @param {AnimationEvent} animationToAutoplay\n */\n constructor(mapId, struct, animationToAutoplay = null) {\n super(EVENTS.RENDER_STRUCT);\n this.mapId = mapId;\n this.struct = struct;\n this.animationToAutoplay = animationToAutoplay;\n }\n}\n\n","import {EVENTS} from \"../constants/Events\";\nimport {Struct} from \"../models/Struct\";\n\nexport class RenderStructHUDEvent extends CustomEvent {\n /**\n * @param {string} mapId\n * @param {Struct} struct\n */\n constructor(mapId, struct) {\n super(EVENTS.RENDER_STRUCT_HUD);\n this.mapId = mapId;\n this.struct = struct;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class SaveGameStateEvent extends CustomEvent {\n constructor() {\n super(EVENTS.SAVE_GAME_STATE);\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class ShieldHealthChangedEvent extends CustomEvent {\n\n /**\n * @param {string} playerType\n */\n constructor(playerType) {\n super(EVENTS.SHIELD_HEALTH_CHANGED);\n this.playerType = playerType;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class ShowAttackTargetsEvent extends CustomEvent {\n /**\n * @param {string} mapId\n * @param {string[]} weaponAmbitsArray - Valid ambits for the weapon (e.g. [\"space\", \"air\"])\n */\n constructor(mapId, weaponAmbitsArray) {\n super(EVENTS.SHOW_ATTACK_TARGETS);\n this.mapId = mapId;\n this.weaponAmbitsArray = weaponAmbitsArray;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class ShowDefendTargetsEvent extends CustomEvent {\n /**\n * @param {string} mapId\n */\n constructor(mapId) {\n super(EVENTS.SHOW_DEFEND_TARGETS);\n this.mapId = mapId;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class ShowMoveTargetsEvent extends CustomEvent {\n /**\n * @param {string} mapId\n */\n constructor(mapId) {\n super(EVENTS.SHOW_MOVE_TARGETS);\n this.mapId = mapId;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class StructCountChangedEvent extends CustomEvent {\n\n /**\n * @param {string} playerType\n */\n constructor(playerType) {\n super(EVENTS.STRUCT_COUNT_CHANGED);\n this.playerType = playerType;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class TaskCmdKillEvent extends CustomEvent {\n /**\n * @param {string} pid\n */\n constructor(pid) {\n super(EVENTS.TASK_CMD_KILL);\n this.pid = pid;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class TaskCmdSpawnEvent extends CustomEvent {\n /**\n * @param {TaskState} state\n */\n constructor(state) {\n super(EVENTS.TASK_CMD_SPAWN);\n this.state = state;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class TaskCompletedEvent extends CustomEvent {\n /**\n * @param {TaskState} state\n */\n constructor(state) {\n super(EVENTS.TASK_COMPLETED);\n this.state = state;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class TaskManagerStatusChangedEvent extends CustomEvent {\n /**\n * @param {string} status\n */\n constructor(status) {\n super(EVENTS.TASK_MANAGER_STATUS_CHANGED);\n this.status = status;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class TaskStateChangedEvent extends CustomEvent {\n /**\n * @param {TaskState} state\n */\n constructor(state) {\n super(EVENTS.TASK_STATE_CHANGED);\n this.state = state;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class TaskWorkerChangedEvent extends CustomEvent {\n /**\n * @param {TaskState} state\n */\n constructor(state) {\n super(EVENTS.TASK_WORKER_CHANGED);\n this.state = state;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class TrackDestroyedStructEvent extends CustomEvent {\n\n /**\n * @param {string} playerType\n * @param {string} structId\n */\n constructor(playerType, structId) {\n super(EVENTS.TRACK_DESTROYED_STRUCT);\n this.playerType = playerType;\n this.structId = structId;\n }\n}\n\n","import {EVENTS} from \"../constants/Events\";\n\nexport class TrackDestroyedStructsEvent extends CustomEvent {\n\n /**\n * @param {string} playerType\n */\n constructor(playerType) {\n super(EVENTS.TRACK_DESTROYED_STRUCTS);\n this.playerType = playerType;\n }\n}\n\n","import {EVENTS} from \"../constants/Events\";\n\nexport class UndiscoveredOreCountChangedEvent extends CustomEvent {\n\n /**\n * @param {string} playerType\n */\n constructor(playerType) {\n super(EVENTS.UNDISCOVERED_ORE_COUNT_CHANGED);\n this.playerType = playerType;\n }\n}\n","import {EVENTS} from \"../constants/Events\";\n\nexport class UpdateTileStructIdEvent extends CustomEvent {\n /**\n * @param {string} mapId\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n * @param {string} structId\n */\n constructor(mapId, tileType, ambit, slot, playerId, structId) {\n super(EVENTS.UPDATE_TILE_STRUCT_ID);\n this.mapId = mapId;\n this.tileType = tileType;\n this.ambit = ambit;\n this.slot = slot;\n this.playerId = playerId;\n this.structId = structId;\n }\n}\n\n","import {ANIMATION} from \"../constants/AnimationConstants\";\nimport {AnimationEvent} from \"../events/AnimationEvent\";\nimport {CaseConverter, UPPER_SNAKE_CASE} from \"../util/CaseConverter\";\nimport {\n STRUCT_TYPES,\n STRUCT_UNIT_DEFENSES,\n STRUCT_WEAPON_SYSTEM\n} from \"../constants/StructConstants\";\nimport {AMBITS} from \"../constants/Ambits\";\nimport {AnimationError} from \"../errors/AnimationError\";\n\nexport class AnimationEventFactory {\n\n constructor() {\n this.caseConverter = new CaseConverter();\n }\n\n /**\n * @param {string} structId the id of the struct that activated stealth mode\n * @param {string|null} mapId the id of the map the animation should play on\n * @return {AnimationEvent} an event specifying the animation to play when stealth mode is activated\n */\n makeStealthActivateAnimationEvent(structId, mapId = null) {\n return new AnimationEvent(\n structId,\n [ANIMATION.NAMES.STEALTH.ACTIVATE],\n false,\n true,\n {},\n mapId\n );\n }\n\n /**\n * @param {string} structId the id of the struct that deactivated stealth mode\n * @param {string|null} mapId the id of the map the animation should play on\n * @return {AnimationEvent} an event specifying the animation to play when stealth mode is deactivated\n */\n makeStealthDeactivateAnimationEvent(structId, mapId = null) {\n return new AnimationEvent(\n structId,\n [ANIMATION.NAMES.STEALTH.DEACTIVATE],\n false,\n true,\n {},\n mapId\n );\n }\n\n /**\n * @param {string} attackStructId the id of the attacking struct\n * @param {string} weaponSystem the weapon system being used by the attacking struct such as primaryWeapon, secondaryWeapon or planetaryDefenses\n * @param {string|null} mapId the id of the map the animation should play on\n * @param {number|null} attackStructHealthAfter the attacking struct's health at\n * the point in the sequence at which this animation ends; when provided, the\n * still/HUD will render at this partial value instead of falling back to\n * gameState (which already holds the final post-attack value)\n * @return {AnimationEvent} an event specifying the animation to play for the attacking struct\n */\n makeAttackAnimationEvent(attackStructId, weaponSystem, mapId = null, attackStructHealthAfter = null) {\n const weaponSystemFormatted = this.caseConverter.convert(weaponSystem, UPPER_SNAKE_CASE);\n const options = {};\n if (attackStructHealthAfter !== null && attackStructHealthAfter !== undefined) {\n options.healthAfter = parseInt('' + attackStructHealthAfter);\n }\n return new AnimationEvent(\n attackStructId,\n [ANIMATION.NAMES.ATTACK[weaponSystemFormatted]],\n false,\n true,\n options,\n mapId\n );\n }\n\n /**\n * @param {string} targetStructId the id of the struct being targeted\n * @param {string} attackStructType the StructType.type of the attacking struct\n * @param {string} attackStructOperatingAmbit the current ambit of the attacking struct\n * @param {string} weaponSystem the weapon system being used by the attacking struct such as primaryWeapon, secondaryWeapon or planetaryDefenses\n * @param {string} targetStructType the StructType.type of the struct being targeted\n * @param {string} targetStructOperatingAmbit the current ambit of the struct being targeted\n * @param {string} targetStructCategory whether the struct being targeted is fleet or planetary\n * @param {string|number} targetHealthBefore the health of the struct being targeted before receiving damage\n * @param {string|number} targetHealthAfter the health of the struct being targeted after receiving damage\n * @param {boolean} evaded whether or not the struct being targeted evaded the attack\n * @param {string} evadedCause the unit defenses used to evade the attack\n * @param {string|null} mapId the id of the map the animation should play on\n * @return {AnimationEvent|null} an event specifying the animation to play for the target struct\n */\n makeReceiveDamageAnimationEvent(\n targetStructId,\n attackStructType,\n attackStructOperatingAmbit,\n weaponSystem,\n targetStructType,\n targetStructOperatingAmbit,\n targetStructCategory,\n targetHealthBefore,\n targetHealthAfter,\n evaded = false,\n evadedCause = '',\n mapId = null\n ) {\n\n attackStructOperatingAmbit = attackStructOperatingAmbit.toUpperCase();\n targetStructOperatingAmbit = targetStructOperatingAmbit.toUpperCase();\n targetHealthBefore = parseInt('' + targetHealthBefore);\n targetHealthAfter = parseInt('' + targetHealthAfter);\n\n const options = {\n healthAfter: targetHealthAfter,\n };\n\n // --- Evasion cases ---\n\n if (evaded && evadedCause === STRUCT_UNIT_DEFENSES.SIGNAL_JAMMING) {\n return new AnimationEvent(\n targetStructId,\n [\n ANIMATION.NAMES.EVADE,\n ],\n true,\n true,\n { ...options, projectile: ANIMATION.PROJECTILES.TORPEDO },\n mapId\n );\n } else if (evaded) {\n return new AnimationEvent(\n targetStructId,\n [ANIMATION.NAMES.EVADE],\n true,\n true,\n options,\n mapId\n );\n }\n\n let animationNames = [];\n let firstOrLast = (targetHealthAfter > 0) ? ANIMATION.NAMES.FIRST : ANIMATION.NAMES.LAST;\n let projectile = '';\n\n // --- Horizontal cases ---\n\n // - Horizontal Cannon -\n if (\n (\n attackStructType === STRUCT_TYPES.BATTLESHIP\n && attackStructOperatingAmbit === AMBITS.SPACE\n && targetStructOperatingAmbit === AMBITS.SPACE\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n || (\n attackStructType === STRUCT_TYPES.TANK\n && attackStructOperatingAmbit === AMBITS.LAND\n && targetStructOperatingAmbit === AMBITS.LAND\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n ) {\n animationNames.push(ANIMATION.NAMES.IMPACT.HORIZONTAL.CANNON);\n animationNames.push(ANIMATION.NAMES.SHAKE.HORIZONTAL.DEFAULT[firstOrLast]);\n\n projectile = ANIMATION.PROJECTILES.CANNON;\n }\n\n // - Horizontal Missile -\n else if (\n (\n attackStructType === STRUCT_TYPES.STARFIGHTER\n && attackStructOperatingAmbit === AMBITS.SPACE\n && targetStructOperatingAmbit === AMBITS.SPACE\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n || (\n attackStructType === STRUCT_TYPES.FRIGATE\n && attackStructOperatingAmbit === AMBITS.SPACE\n && targetStructOperatingAmbit === AMBITS.SPACE\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n || (\n attackStructType === STRUCT_TYPES.PURSUIT_FIGHTER\n && attackStructOperatingAmbit === AMBITS.AIR\n && targetStructOperatingAmbit === AMBITS.AIR\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n || (\n attackStructType === STRUCT_TYPES.COMMAND_SHIP\n && attackStructOperatingAmbit === targetStructOperatingAmbit\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n ) {\n animationNames.push(ANIMATION.NAMES.IMPACT.HORIZONTAL.MISSILE);\n animationNames.push(ANIMATION.NAMES.SHAKE.HORIZONTAL.DEFAULT[firstOrLast]);\n\n projectile = ANIMATION.PROJECTILES.MISSILE;\n }\n\n // - Horizontal Torpedo -\n else if (\n attackStructType === STRUCT_TYPES.HIGH_ALTITUDE_INTERCEPTOR\n && attackStructOperatingAmbit === AMBITS.AIR\n && targetStructOperatingAmbit === AMBITS.AIR\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n ) {\n animationNames.push(ANIMATION.NAMES.IMPACT.HORIZONTAL.TORPEDO);\n animationNames.push(ANIMATION.NAMES.SHAKE.HORIZONTAL.DEFAULT[firstOrLast]);\n\n projectile = ANIMATION.PROJECTILES.TORPEDO;\n }\n\n // - Horizontal Gatling -\n else if (\n attackStructType === STRUCT_TYPES.STARFIGHTER\n && attackStructOperatingAmbit === AMBITS.SPACE\n && targetStructOperatingAmbit === AMBITS.SPACE\n && weaponSystem === STRUCT_WEAPON_SYSTEM.SECONDARY_WEAPON\n ) {\n animationNames.push(ANIMATION.NAMES.IMPACT.HORIZONTAL.GATLING);\n animationNames.push(ANIMATION.NAMES.SHAKE.HORIZONTAL.GATLING[firstOrLast]);\n\n projectile = ANIMATION.PROJECTILES.GATLING;\n }\n\n // --- Angled down cases ---\n\n // - Angled down missile -\n else if (\n (\n attackStructType === STRUCT_TYPES.CRUISER\n && attackStructOperatingAmbit === AMBITS.WATER\n && targetStructOperatingAmbit === AMBITS.LAND\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n || (\n attackStructType === STRUCT_TYPES.SUBMERSIBLE\n && attackStructOperatingAmbit === AMBITS.WATER\n && targetStructOperatingAmbit === AMBITS.WATER\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n ) {\n animationNames.push(ANIMATION.NAMES.IMPACT.ANGLED.DOWN.MISSILE);\n animationNames.push(ANIMATION.NAMES.SHAKE.ANGLED.DOWN.DEFAULT[firstOrLast]);\n\n projectile = ANIMATION.PROJECTILES.MISSILE;\n }\n\n // - Angled down torpedo -\n else if (\n (\n attackStructType === STRUCT_TYPES.DESTROYER\n && attackStructOperatingAmbit === AMBITS.WATER\n && targetStructOperatingAmbit === AMBITS.WATER\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n || (\n attackStructType === STRUCT_TYPES.STEALTH_BOMBER\n && attackStructOperatingAmbit === AMBITS.AIR\n && (\n targetStructOperatingAmbit === AMBITS.WATER\n || targetStructOperatingAmbit === AMBITS.LAND\n )\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n ) {\n animationNames.push(ANIMATION.NAMES.IMPACT.ANGLED.DOWN.TORPEDO);\n animationNames.push(ANIMATION.NAMES.SHAKE.ANGLED.DOWN.DEFAULT[firstOrLast]);\n\n projectile = ANIMATION.PROJECTILES.TORPEDO;\n }\n\n // - Angled down cannon -\n else if (\n (\n attackStructType === STRUCT_TYPES.MOBILE_ARTILLERY\n && attackStructOperatingAmbit === AMBITS.LAND\n && (\n targetStructOperatingAmbit === AMBITS.WATER\n || targetStructOperatingAmbit === AMBITS.LAND\n )\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n || (\n attackStructType === STRUCT_TYPES.BATTLESHIP\n && attackStructOperatingAmbit === AMBITS.SPACE\n && (\n targetStructOperatingAmbit === AMBITS.WATER\n || targetStructOperatingAmbit === AMBITS.LAND\n )\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n || (\n attackStructType === STRUCT_TYPES.PLANETARY_DEFENSE_CANNON\n && (\n attackStructOperatingAmbit === AMBITS.LAND\n || attackStructOperatingAmbit === AMBITS.WATER\n )\n && (\n targetStructOperatingAmbit === AMBITS.WATER\n || targetStructOperatingAmbit === AMBITS.LAND\n )\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n ) {\n animationNames.push(ANIMATION.NAMES.IMPACT.ANGLED.DOWN.CANNON);\n animationNames.push(ANIMATION.NAMES.SHAKE.ANGLED.DOWN.DEFAULT[firstOrLast]);\n\n projectile = ANIMATION.PROJECTILES.CANNON;\n }\n\n // --- Angled up cases ---\n\n // - Angled up cannon -\n else if (\n attackStructType === STRUCT_TYPES.PLANETARY_DEFENSE_CANNON\n && (\n attackStructOperatingAmbit === AMBITS.LAND\n || attackStructOperatingAmbit === AMBITS.WATER\n )\n && (\n targetStructOperatingAmbit === AMBITS.SPACE\n || targetStructOperatingAmbit === AMBITS.AIR\n )\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n ) {\n animationNames.push(ANIMATION.NAMES.IMPACT.ANGLED.UP.CANNON);\n animationNames.push(ANIMATION.NAMES.SHAKE.ANGLED.UP.DEFAULT[firstOrLast]);\n\n projectile = ANIMATION.PROJECTILES.CANNON;\n }\n\n // - Angled up missile -\n else if (\n (\n attackStructType === STRUCT_TYPES.SAM_LAUNCHER\n && attackStructOperatingAmbit === AMBITS.LAND\n && (\n targetStructOperatingAmbit === AMBITS.AIR\n || targetStructOperatingAmbit === AMBITS.SPACE\n )\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n || (\n attackStructType === STRUCT_TYPES.SUBMERSIBLE\n && attackStructOperatingAmbit === AMBITS.WATER\n && (\n targetStructOperatingAmbit === AMBITS.AIR\n || targetStructOperatingAmbit === AMBITS.SPACE\n )\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n ) {\n animationNames.push(ANIMATION.NAMES.IMPACT.ANGLED.UP.MISSILE);\n animationNames.push(ANIMATION.NAMES.SHAKE.ANGLED.UP.DEFAULT[firstOrLast]);\n\n projectile = ANIMATION.PROJECTILES.MISSILE;\n }\n\n // - Angled up torpedo -\n else if (\n (\n attackStructType === STRUCT_TYPES.DESTROYER\n && attackStructOperatingAmbit === AMBITS.WATER\n && targetStructOperatingAmbit === AMBITS.AIR\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n || (\n attackStructType === STRUCT_TYPES.HIGH_ALTITUDE_INTERCEPTOR\n && attackStructOperatingAmbit === AMBITS.AIR\n && targetStructOperatingAmbit === AMBITS.SPACE\n && weaponSystem === STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n )\n ) {\n animationNames.push(ANIMATION.NAMES.IMPACT.ANGLED.UP.TORPEDO);\n animationNames.push(ANIMATION.NAMES.SHAKE.ANGLED.UP.DEFAULT[firstOrLast]);\n\n projectile = ANIMATION.PROJECTILES.TORPEDO;\n }\n\n // - Angled up gatling -\n else if (\n attackStructType === STRUCT_TYPES.CRUISER\n && attackStructOperatingAmbit === AMBITS.WATER\n && targetStructOperatingAmbit === AMBITS.AIR\n && weaponSystem === STRUCT_WEAPON_SYSTEM.SECONDARY_WEAPON\n ) {\n animationNames.push(ANIMATION.NAMES.IMPACT.ANGLED.UP.GATLING);\n animationNames.push(ANIMATION.NAMES.SHAKE.ANGLED.UP.GATLING[firstOrLast]);\n\n projectile = ANIMATION.PROJECTILES.GATLING;\n }\n\n if (!animationNames.length) {\n throw new AnimationError(\n 'No receive damage animation matching parameters. See detail.',\n {\n targetStructId: targetStructId,\n attackStructType: attackStructType,\n attackStructOperatingAmbit: attackStructOperatingAmbit,\n weaponSystem: weaponSystem,\n targetStructType: targetStructType,\n targetStructOperatingAmbit: targetStructOperatingAmbit,\n targetStructCategory: targetStructCategory,\n targetHealthBefore: targetHealthBefore,\n targetHealthAfter: targetHealthAfter,\n evaded: evaded,\n evadedCause: evadedCause,\n }\n );\n }\n\n return new AnimationEvent(\n targetStructId,\n animationNames,\n false,\n true,\n { ...options, projectile: projectile },\n mapId\n );\n }\n\n /**\n * @param {string} structId the id of the struct that was destroyed\n * @param {string} ambit the current ambit of the struct that was destroyed\n * @param {string|null} mapId the id of the map the animation should play on\n * @return {AnimationEvent} an event specifying the animation to play for the struct that was destroyed\n */\n makeDestroyAnimationEvent(structId, ambit, mapId = null) {\n const ambitFormatted = ambit.toUpperCase();\n return new AnimationEvent(\n structId,\n [ANIMATION.NAMES.DESTROY[ambitFormatted]],\n false,\n false,\n { healthAfter: 0 },\n mapId\n );\n }\n\n /**\n * @param {string} structId the id of the struct that was deployed\n * @param {string} ambit the current ambit of the struct that was deployed\n * @param {string|null} mapId the id of the map the animation should play on\n * @return {AnimationEvent} an event specifying the animation to play for the struct that was deployed\n */\n makeDeploymentAnimationEvent(structId, ambit, mapId = null) {\n const ambitFormatted = ambit.toUpperCase();\n return new AnimationEvent(\n structId,\n [ANIMATION.NAMES.DEPLOYMENT[ambitFormatted]],\n false,\n true,\n {},\n mapId\n );\n }\n}\n","import {AbstractFactory} from \"../framework/AbstractFactory\";\nimport {Fleet} from \"../models/Fleet\";\n\nexport class FleetFactory extends AbstractFactory {\n\n /**\n * @param {object} obj\n * @return {Fleet}\n */\n make(obj) {\n const fleet = new Fleet();\n Object.assign(fleet, obj);\n return fleet;\n }\n}","import {GuildAPIResponse} from \"../api/GuildAPIResponse\";\nimport {GuildAPIError} from \"../errors/GuildAPIError\";\n\nexport class GuildAPIResponseFactory {\n make(jsonResponse) {\n if (!jsonResponse.hasOwnProperty('success')\n || typeof jsonResponse.success !== 'boolean'\n || !jsonResponse.hasOwnProperty('errors')\n || !jsonResponse.hasOwnProperty('data')\n ) {\n throw new GuildAPIError('Invalid response from server');\n }\n\n return new GuildAPIResponse(\n jsonResponse.success,\n jsonResponse.errors,\n jsonResponse.data\n );\n }\n}","import {Guild} from \"../models/Guild\";\nimport {AbstractFactory} from \"../framework/AbstractFactory\";\nimport {SocialsDTOFactory} from \"./SocialsDTOFactory\";\n\nexport class GuildFactory extends AbstractFactory {\n\n constructor() {\n super();\n this.socialsDTOFactory = new SocialsDTOFactory();\n }\n\n /**\n * @param {object} obj\n * @return {Guild}\n */\n make(obj) {\n const guild = new Guild();\n Object.assign(guild, obj);\n if (guild.hasOwnProperty('socials') && guild.socials !== null) {\n guild.socials = this.socialsDTOFactory.make(JSON.parse(guild.socials));\n }\n return guild;\n }\n}","import {AbstractFactory} from \"../framework/AbstractFactory\";\nimport {GuildPowerStatsDTO} from \"../dtos/GuildPowerStatsDTO\";\n\nexport class GuildPowerStatsDTOFactory extends AbstractFactory {\n\n /**\n * @param {object} obj\n * @return {GuildPowerStatsDTO}\n */\n make(obj) {\n const dto = new GuildPowerStatsDTO();\n Object.assign(dto, obj);\n return dto;\n }\n}","import {AbstractFactory} from \"../framework/AbstractFactory\";\nimport {GuildSearchResultDTO} from \"../dtos/GuildSearchResultDTO\";\n\nexport class GuildSearchResultDTOFactory extends AbstractFactory {\n /**\n * @param {object} obj\n * @return {GuildSearchResultDTO}\n */\n make(obj) {\n const guild = new GuildSearchResultDTO();\n Object.assign(guild, obj);\n return guild;\n }\n}","import {Infusion} from \"../models/Infusion\";\n\nexport class InfusionFactory {\n make(obj) {\n const infusion = new Infusion();\n Object.assign(infusion, obj);\n return infusion;\n }\n}","import {AMBIT_ORDER} from \"../constants/Ambits\";\nimport {MapTransitionLayerTileSetComponent} from \"../view_models/components/map/MapTransitionLayerTileSetComponent\";\nimport {MAP_NAMED_TRANSITIONS} from \"../constants/MapConstants\";\nimport {MapTransitionLayerComponentFactoryError} from \"../errors/MapTransitionLayerComponentFactoryError\";\nimport {MapTransitionLayerOrnamentComponent} from \"../view_models/components/map/MapTransitionLayerOrnamentComponent\";\n\n/**\n * Produces different types of transition layers.\n */\nexport class MapTransitionLayerComponentFactory {\n\n /**\n * @param {TileClassNameUtil} tileClassNameUtil\n */\n constructor(tileClassNameUtil) {\n this.tileClassNameUtil = tileClassNameUtil;\n }\n\n /**\n * @param {string} ornamentClassName\n * @param {int} mapColCount\n * @param {string} ambitOrTransition ambit or named transition (such as Horizon)\n * @param {string} verticalPos top|middle|bottom\n *\n * @return {AbstractMapTransitionLayerComponent}\n *\n * @throws {MapTransitionLayerComponentFactoryError}\n */\n make(ornamentClassName = '', mapColCount = 0, ambitOrTransition = '', verticalPos = '') {\n\n if (AMBIT_ORDER.includes(ambitOrTransition)) {\n\n return new MapTransitionLayerTileSetComponent(\n mapColCount,\n this.tileClassNameUtil.getTileEdgeClassName(ambitOrTransition, verticalPos, 'left'),\n this.tileClassNameUtil.getTileEdgeClassName(ambitOrTransition, verticalPos, 'middle'),\n this.tileClassNameUtil.getTileEdgeClassName(ambitOrTransition, verticalPos, 'right'),\n );\n\n } else if (MAP_NAMED_TRANSITIONS[ambitOrTransition]) {\n\n return new MapTransitionLayerTileSetComponent(\n mapColCount,\n this.tileClassNameUtil.getTileNamedTransitionClassName(ambitOrTransition, 'left'),\n this.tileClassNameUtil.getTileNamedTransitionClassName(ambitOrTransition, 'middle'),\n this.tileClassNameUtil.getTileNamedTransitionClassName(ambitOrTransition, 'right')\n );\n\n } else if (ornamentClassName) {\n\n return new MapTransitionLayerOrnamentComponent(ornamentClassName);\n\n } else {\n\n throw new MapTransitionLayerComponentFactoryError(`Unknown ornament, ambit or named transition: (${ornamentClassName}${ambitOrTransition})`);\n\n }\n }\n}\n","import {NOTIFICATION_DIALOGUE_SEQUENCES} from \"../constants/NotificationDialogueSequences\";\nimport {AttackerVictoryDialogueSequence} from \"../view_models/components/sequences/AttackerVictoryDialogueSequence\";\nimport {DefeatedByAttackerDialogueSequence} from \"../view_models/components/sequences/DefeatedByAttackerDialogueSequence\";\nimport {DefenderVictoryDialogueSequence} from \"../view_models/components/sequences/DefenderVictoryDialogueSequence\";\nimport {\n DefeatedByDefenderDialogueSequence\n} from \"../view_models/components/sequences/DefeatedByDefenderDialogueSequence\";\nimport {NotificationDialogueSequence} from \"../framework/NotificationDialogueSequence\";\n\nexport class NotificationDialogueSequenceFactory {\n\n /**\n * @param {string} sequenceName See NOTIFICATION_DIALOGUE_SEQUENCES\n * @param {object} params\n * @return {NotificationDialogueSequence}\n */\n make(sequenceName, params = {}) {\n switch (sequenceName) {\n case NOTIFICATION_DIALOGUE_SEQUENCES.ATTACKER_VICTORY:\n return new AttackerVictoryDialogueSequence(params?.alphaOreRecovered);\n case NOTIFICATION_DIALOGUE_SEQUENCES.DEFENDER_VICTORY:\n return new DefenderVictoryDialogueSequence();\n case NOTIFICATION_DIALOGUE_SEQUENCES.DEFEATED_BY_ATTACKER:\n return new DefeatedByAttackerDialogueSequence(params?.alphaOreLost);\n case NOTIFICATION_DIALOGUE_SEQUENCES.DEFEATED_BY_DEFENDER:\n return new DefeatedByDefenderDialogueSequence();\n default:\n throw new Error(`NotificationDialogueSequenceFactory: No notification dialogue sequence with name: ${sequenceName}`);\n }\n }\n}","import {Planet} from \"../models/Planet\";\n\nexport class PlanetFactory {\n make(obj) {\n const planet = new Planet();\n Object.assign(planet, obj);\n planet.undiscovered_ore = parseInt(planet.undiscovered_ore);\n return planet;\n }\n}","import {PlanetRaid} from \"../models/PlanetRaid\";\n\nexport class PlanetRaidFactory {\n make(obj) {\n const planetRaid = new PlanetRaid();\n Object.assign(planetRaid, obj);\n return planetRaid;\n }\n}","import {PlanetaryShieldInfoDTO} from \"../dtos/PlanetaryShieldInfoDTO\";\nimport {AbstractFactory} from \"../framework/AbstractFactory\";\n\nexport class PlanetaryShieldInfoDTOFactory extends AbstractFactory {\n\n /**\n * @param {object} obj\n * @return {PlanetaryShieldInfoDTO}\n */\n make(obj) {\n const dto = new PlanetaryShieldInfoDTO();\n Object.assign(dto, obj);\n return dto;\n }\n}","import {PlayerAddress} from \"../models/PlayerAddress\";\nimport {AbstractFactory} from \"../framework/AbstractFactory\";\n\nexport class PlayerAddressFactory extends AbstractFactory {\n\n /**\n * @param {object} obj\n * @return {PlayerAddress}\n */\n make(obj) {\n const playerAddress = new PlayerAddress();\n Object.assign(playerAddress, obj);\n return playerAddress;\n }\n}","import {PlayerAddressPending} from \"../models/PlayerAddressPending\";\n\nexport class PlayerAddressPendingFactory {\n\n /**\n * @param {Object} obj\n * @return {PlayerAddressPending}\n */\n make(obj) {\n const playerAddressPending = new PlayerAddressPending();\n Object.assign(playerAddressPending, obj);\n return playerAddressPending;\n }\n}","import {Player} from \"../models/Player\";\nimport {PRECISION_CONVERSION} from \"../constants/PrecisionConstants\";\n\nexport class PlayerFactory {\n\n /**\n * @param {string} numberString\n * @return {number}\n */\n convertFromPreciseNumber(numberString) {\n return Number(BigInt(numberString) / BigInt(PRECISION_CONVERSION.ENERGY));\n }\n\n make(obj) {\n const player = new Player();\n Object.assign(player, obj);\n player.load = this.convertFromPreciseNumber(player.load);\n player.structs_load = this.convertFromPreciseNumber(player.structs_load);\n player.capacity = this.convertFromPreciseNumber(player.capacity);\n player.connection_capacity = this.convertFromPreciseNumber(player.connection_capacity);\n player.ore = parseInt(player.ore);\n return player;\n }\n}","import {PlayerOreStats} from \"../models/PlayerOreStats\";\n\nexport class PlayerOreStatsFactory {\n make(obj, playerId) {\n const player = new PlayerOreStats();\n\n if (!obj) {\n player.playerId = playerId;\n player.forfeited = 0;\n player.mined = 0;\n player.seized = 0;\n } else {\n Object.assign(player, obj);\n }\n\n return player;\n }\n}","import {AbstractFactory} from \"../framework/AbstractFactory\";\nimport {PlayerSearchResultDTO} from \"../dtos/PlayerSearchResultDTO\";\n\nexport class PlayerSearchResultDTOFactory extends AbstractFactory {\n\n /**\n * @param {object} obj\n * @return {PlayerSearchResultDTO}\n */\n make(obj) {\n const player = new PlayerSearchResultDTO();\n Object.assign(player, obj);\n return player;\n }\n}","import {AbstractFactory} from \"../framework/AbstractFactory\";\nimport {Setting} from \"../models/Setting\";\nimport {Settings} from \"../models/Settings\";\n\n\nexport class SettingFactory extends AbstractFactory {\n\n /**\n * @param {object} obj\n * @return {Setting}\n */\n make(obj) {\n const setting = new Setting();\n Object.assign(setting, obj);\n return setting;\n }\n\n /**\n * @param {object[]} list\n * @return {Settings}\n */\n parseList(list) {\n const settings = new Settings();\n for (let i = 0; i < list.length; i++) {\n settings.add(this.make(list[i]));\n }\n return settings;\n }\n}","import {AbstractFactory} from \"../framework/AbstractFactory\";\nimport {SocialsDTO} from \"../dtos/SocialsDTO\";\nimport {DISCORD_URL_PATTERN} from \"../constants/RegexPattern\";\n\nexport class SocialsDTOFactory extends AbstractFactory {\n\n /**\n * @param {string} url\n * @return {string}\n */\n filterDiscordUrl(url) {\n if (DISCORD_URL_PATTERN.test(url)) {\n return `https://discord.gg/${url.match(DISCORD_URL_PATTERN)[0]}`;\n }\n return \"\";\n }\n\n /**\n * @param {object} obj\n * @return {SocialsDTO}\n */\n make(obj) {\n const dto = new SocialsDTO();\n Object.assign(dto, obj);\n\n dto.discord_server = this.filterDiscordUrl(dto.discord_server);\n\n return dto;\n }\n}","import {AbstractFactory} from \"../framework/AbstractFactory\";\nimport {Struct} from \"../models/Struct\";\n\nexport class StructFactory extends AbstractFactory {\n\n /**\n * @param {object} obj\n * @return {Struct}\n */\n make(obj) {\n const struct = new Struct();\n Object.assign(struct, obj);\n struct.defending_struct_ids = JSON.parse(obj.defending_struct_ids);\n return struct;\n }\n\n}","import {AbstractFactory} from \"../framework/AbstractFactory\";\nimport {StructType} from \"../models/StructType\";\n\nexport class StructTypeFactory extends AbstractFactory {\n\n /**\n * @param {object} obj\n * @return {StructType}\n */\n make(obj) {\n const structType = new StructType();\n Object.assign(structType, obj);\n structType.possible_ambit_array = JSON.parse(obj.possible_ambit_array);\n structType.primary_weapon_ambits_array = JSON.parse(obj.primary_weapon_ambits_array);\n structType.secondary_weapon_ambits_array = JSON.parse(obj.secondary_weapon_ambits_array);\n return structType;\n }\n\n}","import {TaskState} from \"../models/TaskState\";\nimport {AbstractFactory} from \"../framework/AbstractFactory\";\nimport {TASK} from \"../constants/TaskConstants\";\nimport {TASK_TYPES} from \"../constants/TaskTypes\";\nimport {OBJECT_TYPES as OBJECT_TYPE} from \"../constants/ObjectTypes\";\n\nexport class TaskStateFactory extends AbstractFactory {\n\n /**\n * @param {object} obj\n * @return {TaskState}\n */\n make(obj) {\n const task_state = new TaskState();\n Object.assign(task_state, obj);\n\n return task_state;\n }\n\n\n /**\n * @param {string} fleet_id\n * @param {string} planet_id\n * @param {number} block_start\n * @param {number} difficulty_target\n * @return {TaskState}\n */\n initRaidTask(fleet_id, planet_id, block_start, difficulty_target){\n\n const task_state = new TaskState();\n\n task_state.task_type = TASK_TYPES.RAID;\n task_state.object_type = OBJECT_TYPE.FLEET;\n task_state.object_id = fleet_id;\n task_state.target_id = planet_id;\n task_state.block_start = block_start;\n task_state.difficulty_target = difficulty_target;\n\n task_state.prefix = task_state.object_id + TASK.TARGET_DELIMITER + task_state.target_id + task_state.task_type + task_state.block_start + TASK.NONCE_PREFIX;\n task_state.postfix = '';\n\n return task_state;\n }\n\n\n\n /**\n * @param {string} struct_id\n * @param {string} task_type\n * @param {number} block_start\n * @param {number} difficulty_target\n * @return {TaskState}\n */\n initStructTask(struct_id, task_type, block_start, difficulty_target){\n\n const task_state = new TaskState();\n\n task_state.task_type = task_type;\n task_state.object_type = OBJECT_TYPE.STRUCT;\n task_state.object_id = struct_id;\n task_state.block_start = block_start;\n task_state.difficulty_target = difficulty_target;\n\n task_state.prefix = task_state.object_id + task_state.task_type + task_state.block_start + TASK.NONCE_PREFIX;\n task_state.postfix = '';\n\n return task_state;\n }\n\n /**\n * @param {Work} work\n * @return {TaskState}\n */\n initTaskFromWork(work) {\n switch(work.category) {\n case TASK_TYPES.RAID:\n return this.initRaidTask(work.object_id, work.target_id, work.block_start, work.difficulty_target);\n case TASK_TYPES.BUILD:\n case TASK_TYPES.MINE:\n case TASK_TYPES.REFINE:\n return this.initStructTask(work.object_id, work.category, work.block_start, work.difficulty_target);\n default:\n throw new Error(`Unknown task type: ${work.category}`);\n }\n }\n\n\n}","import {Transaction} from \"../models/Transaction\";\nimport {AbstractFactory} from \"../framework/AbstractFactory\";\n\nexport class TransactionFactory extends AbstractFactory {\n\n /**\n * @param {object} obj\n * @return {Transaction}\n */\n make(obj) {\n const transaction = new Transaction();\n Object.assign(transaction, obj);\n return transaction;\n }\n}","import {AbstractFactory} from \"../framework/AbstractFactory\";\nimport {Work} from \"../models/Work\";\n\nexport class WorkFactory extends AbstractFactory {\n\n /**\n * @param {object} obj\n * @return {Work}\n */\n make(obj) {\n const work = new Work();\n Object.assign(work, obj);\n return work;\n }\n\n}","export class AbstractController {\n /**\n * @param {string} name\n * @param {GameState} gameState\n */\n constructor(name, gameState) {\n this.name = name;\n this.gameState = gameState;\n }\n}","import {NotImplementedError} from \"./NotImplementedError\";\n\nexport class AbstractFactory {\n\n make(obj) {\n throw new NotImplementedError();\n }\n\n parseList(list) {\n return list.map(this.make);\n }\n}","import {NotImplementedError} from \"./NotImplementedError\";\n\nexport class AbstractGrassListener {\n\n /**\n * @param {string} name\n */\n constructor(name) {\n this.name = name;\n }\n\n handler(messageData) {\n throw new NotImplementedError();\n }\n\n shouldUnregister() {\n return false;\n }\n}","import {NotImplementedError} from \"./NotImplementedError\";\n\nexport class AbstractViewModel {\n render() {\n throw new NotImplementedError();\n }\n}\n","import {NotImplementedError} from \"./NotImplementedError\";\nimport {NumberFormatter} from \"../util/NumberFormatter\";\n\nexport class AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n this.gameState = gameState;\n this.numberFormatter = new NumberFormatter();\n }\n\n initPageCode() {\n throw new NotImplementedError();\n }\n\n renderHTML() {\n throw new NotImplementedError();\n }\n}\n","export class BannerLayer {\n\n /* Element IDs Start */\n\n static id = 'banner-layer';\n\n /* Element IDs End */\n\n static setContent(content) {\n const bannerLayer = document.getElementById(BannerLayer.id);\n if (bannerLayer) {\n bannerLayer.innerHTML = content;\n }\n }\n\n static clear() {\n const bannerLayer = document.getElementById(BannerLayer.id);\n if (bannerLayer) {\n bannerLayer.innerHTML = '';\n }\n }\n\n static hideAndClear() {\n const bannerLayer = document.getElementById(BannerLayer.id);\n if (bannerLayer) {\n bannerLayer.classList.add('hidden');\n }\n BannerLayer.clear();\n }\n\n static show() {\n const bannerLayer = document.getElementById(BannerLayer.id);\n if (bannerLayer) {\n bannerLayer.classList.remove('hidden');\n }\n }\n}\n","export class GrassError extends Error {}","import * as natsCore from \"@nats-io/nats-core\";\nimport {GrassError} from \"./GrassError\";\n\n/**\n * Guild Rapid Alert System Stream\n */\nexport class GrassManager {\n\n /**\n * @param {string} grassServerUrl\n * @param {string} subject\n */\n constructor(grassServerUrl, subject) {\n this.grassServerUrl = grassServerUrl;\n this.subject = subject;\n this.listeners = new Map();\n }\n\n /**\n * @param {MsgImpl} message\n * @return {object}\n */\n getMessageData(message) {\n return message.json();\n }\n\n /**\n * @param {object} messageData\n * @return {boolean}\n */\n shouldIgnoreMessage(messageData) {\n return !messageData.hasOwnProperty('subject')\n || !messageData.hasOwnProperty('category');\n }\n\n /**\n * @param {AbstractGrassListener} listener\n */\n registerListener(listener) {\n this.listeners.set(listener.name, listener);\n }\n\n /**\n * @param {string} name\n */\n unregisterListener(name) {\n this.listeners.delete(name);\n }\n\n init() {\n natsCore.wsconnect({\n servers: this.grassServerUrl,\n }).then((nc) => {\n const subscription = nc.subscribe(this.subject);\n (async function () {\n\n for await (const message of subscription) {\n\n const messageData = this.getMessageData(message);\n\n console.log(messageData);\n\n if (this.shouldIgnoreMessage(messageData)) {\n continue;\n }\n\n this.listeners.forEach((listener) => {\n listener.handler(messageData);\n\n if (listener.shouldUnregister()) {\n this.unregisterListener(listener.name);\n }\n });\n\n }\n\n throw new GrassError(\"GRASS subscription closed unexpectedly.\");\n\n }.bind(this))();\n });\n }\n}","/**\n * Encapsulate and abstract HTTP request methods.\n */\nexport class JsonAjaxer {\n async get (url) {\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json'\n },\n redirect: 'follow'\n });\n return response.json();\n }\n\n async post (url, data) {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(data)\n });\n\n return response.json();\n }\n\n async put (url, data) {\n const response = await fetch(url, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(data)\n });\n\n return response.json();\n }\n\n async delete (url, data) {\n const response = await fetch(url, {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(data)\n });\n\n return response.json();\n }\n}\n","import {MenuPageRouter} from \"./MenuPageRouter\";\nimport {NavItemDTO} from \"../dtos/NavItemDTO\";\nimport {SUI} from \"../sui/SUI\";\nimport {EnergyUsageComponent} from \"../view_models/components/EnergyUsageComponent\";\nimport {AlphaOwnedComponent} from \"../view_models/components/AlphaOwnedComponent\";\nimport {MENU_PAGE_ROUTER_MODES} from \"../constants/MenuPageRouterModes\";\n\nexport class MenuPage {\n\n /** @type {GameState} */\n static gameState;\n\n /** @type {MapManager} */\n static mapManager;\n\n /* Element IDs Start */\n\n static pageLayoutId = 'menu-page-layout';\n\n static panelChunkId = 'menu-page-panel-chunk';\n\n static navId = 'menu-page-nav';\n\n static navItemsId = 'menu-page-nav-items';\n\n static closeBtnId = 'menu-page-nav-close';\n\n static screenBodyId = 'menu-page-screen-body';\n\n static bodyId = 'menu-page-body-content';\n\n static dialoguePanelId = 'menu-page-dialogue';\n\n static dialogueIndicatorId = 'menu-page-dialogue-indicator';\n\n static dialogueIndicatorContentId = 'menu-page-dialogue-indicator-content';\n\n static dialogueScreenId = 'menu-page-dialogue-screen';\n\n static dialogueScreenContentId = 'menu-page-dialogue-screen-content';\n\n static dialogueBtnChunkBId = 'menu-page-dialogue-btn-chunk-b';\n\n static dialogueBtnAId = 'menu-page-dialogue-btn-a';\n\n static dialogueBtnBId = 'menu-page-dialogue-btn-b';\n\n static pageTemplateNavBtnId = 'menu-page-template-nav-btn';\n\n static resourceEnergyUsageId = 'menu-page-resource-energy-usage';\n\n static resourceAlphaOwnedId = 'menu-page-resource-alpha-owned';\n\n static pageTemplateContentId = 'menu-page-template-content';\n\n static navItemFleetId = 'nav-item-fleet';\n\n static navItemGuildId = 'nav-item-guild';\n\n static navItemAccountId = 'nav-item-Account';\n\n static loadingScreenId = 'loading-screen';\n\n /* Element IDs End */\n\n static router = new MenuPageRouter();\n\n static sui = new SUI();\n\n static menuNavItems = [\n new NavItemDTO(\n MenuPage.navItemFleetId,\n 'FLEET',\n () => { MenuPage.router.goto('Fleet', 'index') }\n ),\n new NavItemDTO(\n MenuPage.navItemGuildId,\n 'GUILD',\n () => { MenuPage.router.goto('Guild', 'index') }\n ),\n new NavItemDTO(\n MenuPage.navItemAccountId,\n 'ACCOUNT',\n () => { MenuPage.router.goto('Account', 'index') }\n )\n ];\n\n /* Dynamic Handlers Start */\n\n static dialogueBtnAHandler = () => {};\n\n static dialogueBtnBHandler = () => {};\n\n static pageTemplateNavBtnHandler = () => {};\n\n /* Dynamic Handlers End */\n\n /**\n * @param {NavItemDTO[]}items\n * @param {string|null} activeId the ID of the active nav item\n */\n static setNavItems(items, activeId = null) {\n\n let itemsHtml = '';\n const isPreviewMode = MenuPage.router.mode === MENU_PAGE_ROUTER_MODES.PREVIEW;\n let activeNavItemIndex = 0;\n\n for (let i = 0; i < items.length; i++) {\n let activeClass= '';\n\n if (activeId === items[i].id || (!activeId && i === 0)) {\n activeClass = 'sui-mod-active';\n activeNavItemIndex = i;\n }\n\n if (!isPreviewMode || activeClass) {\n itemsHtml += `
${items[i].label}`;\n }\n }\n\n document.getElementById(MenuPage.navItemsId).innerHTML = itemsHtml;\n\n for (let i = 0; !isPreviewMode && (i < items.length); i++) {\n document.getElementById(items[i].id).addEventListener('click', items[i].actionHandler);\n }\n }\n\n static disableCloseBtn() {\n document.getElementById(MenuPage.closeBtnId).classList.add('hidden');\n }\n\n static enableCloseBtn() {\n document.getElementById(MenuPage.closeBtnId).classList.remove('hidden');\n }\n\n static hideAndClearNav() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-structs',\n 'Structs'\n )\n ];\n MenuPage.setNavItems(navItems, 'nav-item-structs');\n document.getElementById(MenuPage.navId).classList.add('hidden');\n }\n\n static showNav() {\n document.getElementById(MenuPage.navId).classList.remove('hidden');\n }\n\n static setBodyContent(content) {\n document.getElementById(MenuPage.bodyId).innerHTML = content;\n }\n\n static setDialogueIndicatorContent(content, useFadeAnimation = false) {\n const dialogueIndicatorContent = document.getElementById(MenuPage.dialogueIndicatorContentId);\n dialogueIndicatorContent.innerHTML = content;\n\n if (useFadeAnimation) {\n MenuPage.applyFadeInFadeOutAnimation(dialogueIndicatorContent);\n }\n }\n\n static applyFadeInFadeOutAnimation(element) {\n element.classList.add('fade-in-fade-out');\n element.addEventListener('animationend', () => {\n element.classList.remove('fade-in-fade-out');\n });\n }\n\n static setDialogueScreenContent(content, useFadeAnimation = false) {\n const dialogueScreenContent = document.getElementById(MenuPage.dialogueScreenContentId);\n dialogueScreenContent.innerHTML = content;\n\n if (useFadeAnimation) {\n MenuPage.applyFadeInFadeOutAnimation(dialogueScreenContent);\n }\n }\n\n static setDialogueScreenTheme(theme) {\n const dialogueScreen = document.getElementById(MenuPage.dialogueScreenId);\n dialogueScreen.classList.remove(...dialogueScreen.classList);\n dialogueScreen.classList.add('sui-screen-dialogue');\n dialogueScreen.classList.add(theme);\n }\n\n static setDialogueScreenThemeToNeutral() {\n MenuPage.setDialogueScreenTheme('sui-theme-neutral');\n }\n\n static setDialogueScreenThemeToEnemy() {\n MenuPage.setDialogueScreenTheme('sui-theme-enemy');\n }\n\n static enableDialogueBtnA() {\n document.getElementById(MenuPage.dialogueBtnAId).classList.remove('hidden');\n }\n\n static disableDialogueBtnA() {\n document.getElementById(MenuPage.dialogueBtnAId).classList.add('hidden');\n }\n\n static enableDialogueBtnB() {\n document.getElementById(MenuPage.dialogueBtnChunkBId).classList.remove('hidden');\n }\n\n static disableDialogueBtnB() {\n document.getElementById(MenuPage.dialogueBtnChunkBId).classList.add('hidden');\n }\n\n static clearDialogueScreen() {\n document.getElementById(MenuPage.dialogueScreenContentId).innerHTML = '';\n }\n\n static clearDialogueBtnAHandler() {\n MenuPage.dialogueBtnAHandler = () => {};\n }\n\n static clearDialogueBtnBHandler() {\n MenuPage.dialogueBtnBHandler = () => {};\n }\n\n static clearPageTemplateNavBtnHandler() {\n MenuPage.pageTemplateNavBtnHandler = () => {};\n }\n\n static hideAndClearDialoguePanel() {\n document.getElementById(MenuPage.dialoguePanelId).classList.add('hidden');\n MenuPage.clearDialogueScreen();\n MenuPage.setDialogueScreenThemeToNeutral();\n MenuPage.clearDialogueBtnAHandler();\n MenuPage.clearDialogueBtnBHandler();\n }\n\n static showDialoguePanel() {\n document.getElementById(MenuPage.dialoguePanelId).classList.remove('hidden');\n }\n\n static closeBtnHandler() {\n document.getElementById(MenuPage.pageLayoutId).classList.add('hidden');\n }\n\n static close() {\n MenuPage.mapManager.showActiveMap();\n console.log(MenuPage.gameState.activeMapContainerId)\n MenuPage.closeBtnHandler();\n }\n\n static open() {\n document.getElementById(MenuPage.pageLayoutId).classList.remove('hidden');\n }\n\n static initCloseBtnListener() {\n document.getElementById(MenuPage.closeBtnId).addEventListener('click', MenuPage.close);\n }\n\n static initDialogueBtnAListener() {\n const dialogueBtnA = document.getElementById(MenuPage.dialogueBtnAId);\n dialogueBtnA.addEventListener('click', () => {\n MenuPage.dialogueBtnAHandler();\n });\n }\n\n static initDialogueBtnBListener() {\n const dialogueBtnB = document.getElementById(MenuPage.dialogueBtnBId);\n dialogueBtnB.addEventListener('click', () => {\n MenuPage.dialogueBtnBHandler();\n });\n }\n\n static initPageTemplateNavBtnListener() {\n const pageTemplateNavBtn = document.getElementById(MenuPage.pageTemplateNavBtnId);\n pageTemplateNavBtn.addEventListener('click', () => {\n MenuPage.pageTemplateNavBtnHandler();\n });\n }\n\n static initListeners() {\n MenuPage.initCloseBtnListener();\n MenuPage.initDialogueBtnAListener();\n MenuPage.initDialogueBtnBListener();\n }\n\n static enablePageTemplate(\n activeNavItemId = null,\n showResources = true,\n useTransparentBackground = false,\n useCustomResources = false,\n customResourcesHTML = '',\n initCustomPageTemplateCode = () => {}\n ) {\n\n MenuPage.setNavItems(MenuPage.menuNavItems, activeNavItemId);\n MenuPage.enableCloseBtn();\n\n let headerResourcesHTML = useCustomResources ? customResourcesHTML : '';\n let energyUsageComponent;\n let alphaOwnedComponent;\n const isPreviewMode = MenuPage.router.mode === MENU_PAGE_ROUTER_MODES.PREVIEW;\n\n showResources = !isPreviewMode && showResources;\n\n if (!useCustomResources && showResources) {\n\n energyUsageComponent = new EnergyUsageComponent(\n MenuPage.gameState,\n MenuPage.resourceEnergyUsageId\n );\n\n alphaOwnedComponent = new AlphaOwnedComponent(\n MenuPage.gameState,\n MenuPage.resourceAlphaOwnedId,\n );\n\n headerResourcesHTML = `\n
\n ${energyUsageComponent.renderHTML()}\n ${alphaOwnedComponent.renderHTML()}\n
\n `;\n\n }\n\n const pageTemplate = `\n
\n \n \n \n
\n \n \n Member Roster\n \n \n ${headerResourcesHTML}\n
\n \n \n \n
\n \n \n \n
\n
\n `;\n\n MenuPage.setBodyContent(pageTemplate);\n\n MenuPage.useOpaqueBackground();\n\n if (useTransparentBackground) {\n MenuPage.useTransparentBackground();\n }\n\n if (!useCustomResources && showResources) {\n energyUsageComponent.initPageCode();\n alphaOwnedComponent.initPageCode();\n }\n\n MenuPage.initPageTemplateNavBtnListener();\n\n initCustomPageTemplateCode();\n }\n\n static setPageTemplateHeaderBtn(label, showBackIcon = false, handler = () => {}) {\n if (MenuPage.router.mode === MENU_PAGE_ROUTER_MODES.PREVIEW) {\n showBackIcon = false;\n handler = () => {};\n }\n\n const backIcon = showBackIcon ? '' : '';\n document.getElementById(this.pageTemplateNavBtnId).innerHTML = `${backIcon} ${label}`;\n this.pageTemplateNavBtnHandler = handler;\n }\n\n static setPageTemplateContent(content) {\n document.getElementById(this.pageTemplateContentId).innerHTML = content;\n }\n\n static useTransparentBackground() {\n document.getElementById(this.screenBodyId).classList.add('hidden-background');\n document.getElementById(this.panelChunkId).classList.add('hidden-background');\n }\n\n static useOpaqueBackground() {\n document.getElementById(this.screenBodyId).classList.remove('hidden-background');\n document.getElementById(this.panelChunkId).classList.remove('hidden-background');\n }\n\n static hideLoadingScreen() {\n document.getElementById(MenuPage.loadingScreenId).classList.add('hidden');\n }\n}\n","import {MENU_PAGE_ROUTER_MODES} from \"../constants/MenuPageRouterModes\";\n\nexport class MenuPageRouter {\n constructor() {\n this.controllers = new Map();\n\n this.currentController = null;\n this.currentPage = null;\n this.currentOptions = {};\n\n this.lastController = null;\n this.lastPage = null;\n this.lastOptions = {};\n\n this.mode = MENU_PAGE_ROUTER_MODES.DEFAULT;\n\n /**\n * Incremented on every navigation. Async work started during one navigation\n * can compare a snapshot of this value against the current one to detect\n * whether the user has since navigated away.\n */\n this.navigationId = 0;\n }\n\n registerController(controller) {\n this.controllers.set(controller.name, controller);\n }\n\n goto(controllerName, pageName, options = {}) {\n this.navigationId++;\n\n if (this.mode !== MENU_PAGE_ROUTER_MODES.PREVIEW) {\n if (!(\n this.currentController === controllerName\n && this.currentPage === pageName\n && JSON.stringify(this.currentOptions) === JSON.stringify(options)\n )) {\n this.lastController = this.currentController;\n this.lastPage = this.currentPage;\n this.lastOptions = this.currentOptions;\n\n this.currentController = controllerName;\n this.currentPage = pageName;\n this.currentOptions = options;\n }\n\n localStorage.setItem(\"lastMenuPage\", JSON.stringify({\n controller: this.lastController,\n page: this.lastPage,\n options: this.lastOptions\n }))\n localStorage.setItem(\"currentMenuPage\", JSON.stringify({\n controller: controllerName,\n page: pageName,\n options: options\n }));\n }\n\n this.controllers.get(controllerName)[pageName](options);\n }\n\n back() {\n this.goto(this.lastController, this.lastPage, this.lastOptions);\n }\n\n restore(defaultController, defaultPage, defaultOptions = {}) {\n const lastMenuPage = JSON.parse(localStorage.getItem(\"lastMenuPage\"));\n const currentMenuPage = JSON.parse(localStorage.getItem(\"currentMenuPage\"));\n\n if (!currentMenuPage || !lastMenuPage) {\n this.goto(defaultController, defaultPage, defaultOptions);\n } else {\n this.currentPage = lastMenuPage.page;\n this.currentController = lastMenuPage.controller;\n this.currentOptions = lastMenuPage.options;\n\n this.goto(currentMenuPage.controller, currentMenuPage.page, currentMenuPage.options);\n }\n }\n\n enablePreviewMode() {\n this.mode = MENU_PAGE_ROUTER_MODES.PREVIEW;\n }\n\n enableDefaultMode() {\n this.mode = MENU_PAGE_ROUTER_MODES.DEFAULT;\n }\n\n}","export class NotImplementedError extends Error {\n constructor(message= 'Function not implemented') {\n super(message);\n this.name = \"NotImplementedError\";\n }\n}\n","import {HUDViewModel} from \"../view_models/HUDViewModel\";\n\nexport class NotificationDialogue {\n\n /* Element IDs Start */\n\n static dialoguePanelId = 'notification-dialogue';\n\n static dialogueIndicatorContentId = 'notification-dialogue-indicator-content';\n\n static dialogueScreenId = 'notification-dialogue-screen';\n\n static dialogueScreenContentId = 'notification-dialogue-screen-content';\n\n static dialogueBtnAId = 'notification-dialogue-btn-a';\n\n /* Element IDs End */\n\n /* Dynamic Handlers Start */\n\n static dialogueBtnAHandler = () => {};\n\n /* Dynamic Handlers End */\n\n static setDialogueIndicatorContent(content, useFadeAnimation = false) {\n const dialogueIndicatorContent = document.getElementById(NotificationDialogue.dialogueIndicatorContentId);\n dialogueIndicatorContent.innerHTML = content;\n\n if (useFadeAnimation) {\n NotificationDialogue.applyFadeInFadeOutAnimation(dialogueIndicatorContent);\n }\n }\n\n static applyFadeInFadeOutAnimation(element) {\n element.classList.add('fade-in-fade-out');\n element.addEventListener('animationend', () => {\n element.classList.remove('fade-in-fade-out');\n }, {once: true});\n }\n\n static setDialogueScreenContent(content, useFadeAnimation = false) {\n const dialogueScreenContent = document.getElementById(NotificationDialogue.dialogueScreenContentId);\n dialogueScreenContent.innerHTML = content;\n\n if (useFadeAnimation) {\n NotificationDialogue.applyFadeInFadeOutAnimation(dialogueScreenContent);\n }\n }\n\n static setDialogueScreenTheme(theme) {\n const dialogueScreen = document.getElementById(NotificationDialogue.dialogueScreenId);\n dialogueScreen.classList.remove(...dialogueScreen.classList);\n dialogueScreen.classList.add('sui-screen-dialogue');\n dialogueScreen.classList.add(theme);\n }\n\n static setDialogueScreenThemeToPlayer() {\n NotificationDialogue.setDialogueScreenTheme('sui-theme-player');\n }\n\n static setDialogueScreenThemeToNeutral() {\n NotificationDialogue.setDialogueScreenTheme('sui-theme-neutral');\n }\n\n static setDialogueScreenThemeToEnemy() {\n NotificationDialogue.setDialogueScreenTheme('sui-theme-enemy');\n }\n\n static clearDialogueScreen() {\n document.getElementById(NotificationDialogue.dialogueScreenContentId).innerHTML = '';\n }\n\n static clearDialogueBtnAHandler() {\n NotificationDialogue.dialogueBtnAHandler = () => {};\n }\n\n static hideAndClearDialoguePanel() {\n document.getElementById(NotificationDialogue.dialoguePanelId).classList.add('hidden');\n NotificationDialogue.clearDialogueScreen();\n NotificationDialogue.setDialogueScreenThemeToNeutral();\n NotificationDialogue.clearDialogueBtnAHandler();\n HUDViewModel.show();\n }\n\n static showDialoguePanel() {\n HUDViewModel.hide();\n document.getElementById(NotificationDialogue.dialoguePanelId).classList.remove('hidden');\n }\n\n static initDialogueBtnAListener() {\n const dialogueBtnA = document.getElementById(NotificationDialogue.dialogueBtnAId);\n dialogueBtnA.addEventListener('click', () => {\n NotificationDialogue.dialogueBtnAHandler();\n });\n }\n\n static initListeners() {\n NotificationDialogue.initDialogueBtnAListener();\n }\n}\n","import {NotificationDialogueSequenceStep} from \"./NotificationDialogueSequenceStep\";\nimport {NotificationDialogue} from \"./NotificationDialogue\";\n\nexport class NotificationDialogueSequence {\n constructor() {\n\n /** @type {NotificationDialogueSequenceStep[]} dialogueSequence */\n this.dialogueSequence = [];\n\n /** @type {number} */\n this.dialogueIndex = 0;\n\n /** @type {function} */\n this.actionOnSequenceEnd = () => {};\n\n this.initPageCode = () => {};\n }\n\n step() {\n if (this.dialogueIndex < this.dialogueSequence.length) {\n const step = this.dialogueSequence[this.dialogueIndex];\n\n NotificationDialogue.setDialogueIndicatorContent(step.indicatorContent)\n NotificationDialogue.setDialogueScreenContent(step.screenContent);\n\n this.dialogueIndex++;\n }\n }\n\n start() {\n NotificationDialogue.hideAndClearDialoguePanel();\n\n let pendingAction = null;\n\n NotificationDialogue.dialogueBtnAHandler = () => {\n const actionResult = this.dialogueSequence[this.dialogueIndex - 1]?.btnAExtraAction();\n\n if (actionResult instanceof Promise) {\n pendingAction = actionResult;\n }\n\n if (this.dialogueIndex === this.dialogueSequence.length) {\n NotificationDialogue.hideAndClearDialoguePanel();\n\n if (pendingAction) {\n pendingAction.then(() => {\n this.actionOnSequenceEnd();\n });\n } else {\n this.actionOnSequenceEnd();\n }\n return;\n }\n\n this.step();\n };\n\n this.step();\n this.initPageCode();\n\n NotificationDialogue.showDialoguePanel();\n }\n}","export class NotificationDialogueSequenceStep {\n\n /**\n * @param {string} indicatorContent\n * @param {string} screenContent\n * @param {function} btnAExtraAction\n */\n constructor(indicatorContent, screenContent, btnAExtraAction = () => {}) {\n this.indicatorContent = indicatorContent;\n this.screenContent = screenContent;\n this.btnAExtraAction = btnAExtraAction;\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class AlphaChangeListener extends AbstractGrassListener {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n */\n constructor(gameState, guildAPI) {\n super('ALPHA_CHANGE');\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n }\n\n handler(messageData) {\n if (\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id\n && ['sent','received'].includes(messageData.category)\n && messageData.subject.startsWith(`structs.inventory.ualpha.${this.gameState.thisGuild.id}.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}`)\n ) {\n let amount = parseInt(messageData.amount);\n\n if (messageData.category === 'sent') {\n amount = -1 * amount;\n }\n\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setAlpha(parseInt(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.alpha) + amount);\n }\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {MenuPage} from \"../framework/MenuPage\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class AlphaInfusedChangeListener extends AbstractGrassListener {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {string} category\n */\n constructor(gameState, guildAPI, category) {\n super('ALPHA_INFUSED_CHANGE');\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.category = category;\n }\n\n handler(messageData) {\n if (\n messageData.category === this.category\n && (messageData.subject.startsWith(`structs.inventory.ualpha.infused.${this.gameState.thisGuild.id}.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}`)\n || messageData.subject.startsWith(`structs.inventory.ualpha.defusing.${this.gameState.thisGuild.id}.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}`)\n )\n ) {\n this.shouldUnregister = () => true;\n\n this.guildAPI.getPlayer(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id).then(player => {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setPlayer(player); // Refresh alpha count\n MenuPage.router.goto('Guild', 'reactor'); // Infusion gets reloaded from Guild controller\n });\n\n }\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {EVENTS} from \"../constants/Events\";\n\nexport class BlockListener extends AbstractGrassListener {\n\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super('BLOCK');\n this.gameState = gameState;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'block'\n && messageData.subject === 'consensus'\n ) {\n this.gameState.setCurrentBlockHeight(messageData.height);\n window.dispatchEvent(new CustomEvent(EVENTS.BLOCK_HEIGHT_CHANGED));\n }\n }\n}\n","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class ConnectionCapacityListener extends AbstractGrassListener {\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super('CONNECTION_CAPACITY');\n this.gameState = gameState;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'connectionCapacity'\n && messageData.subject === `structs.grid.substation.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.substation_id}`\n ) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setConnectionCapacity(messageData.value);\n }\n }\n}\n","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {RaidStatusUtil} from \"../util/RaidStatusUtil\";\n\nexport class KeyPlayerLastActionListener extends AbstractGrassListener {\n\n /**\n * @param {GameState} gameState\n * @param {string} playerType\n */\n constructor(gameState, playerType) {\n super(`${playerType}_LAST_ACTION`);\n this.gameState = gameState;\n this.playerType = playerType;\n this.raidStatusUtil = new RaidStatusUtil();\n }\n\n handler(messageData) {\n if (\n messageData.category === 'lastAction'\n && messageData.subject === `structs.grid.player.${this.gameState.keyPlayers[this.playerType].id}`\n ) {\n this.gameState.keyPlayers[this.playerType].setLastActionBlockHeight(this.gameState.currentBlockHeight, messageData.value);\n }\n\n if (\n this.gameState.keyPlayers[this.playerType].isRaidDependent()\n && messageData.category === 'raid_status'\n && messageData.subject === `structs.planet.${this.gameState.getPlanetRaidInfoForKeyPlayer(this.playerType).planet_id}`\n && this.raidStatusUtil.hasRaidEnded(messageData.detail.status)\n ) {\n this.shouldUnregister = () => true;\n }\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {RaidStatusUtil} from \"../util/RaidStatusUtil\";\n\nexport class KeyPlayerOreListener extends AbstractGrassListener {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {string} playerType\n */\n constructor(gameState, guildAPI, playerType) {\n super(`${playerType}_ORE`);\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.playerType = playerType;\n this.raidStatusUtil = new RaidStatusUtil();\n }\n\n handler(messageData) {\n if (\n messageData.category === 'ore'\n && messageData.subject === `structs.grid.player.${this.gameState.keyPlayers[this.playerType].id}`\n ) {\n this.gameState.keyPlayers[this.playerType].setOre(messageData.value);\n\n // Update undiscovered ore count too\n if (this.gameState.keyPlayers[this.playerType].planetUsedForMap) {\n this.guildAPI.getPlanet(this.gameState.keyPlayers[this.playerType].getPlanetId()).then(planet => {\n this.gameState.keyPlayers[this.playerType].setPlanet(planet);\n });\n }\n }\n\n if (\n this.gameState.keyPlayers[this.playerType].isRaidDependent()\n && messageData.category === 'raid_status'\n && messageData.subject === `structs.planet.${this.gameState.getPlanetRaidInfoForKeyPlayer(this.playerType).planet_id}`\n && this.raidStatusUtil.hasRaidEnded(messageData.detail.status)\n ) {\n this.shouldUnregister = () => true;\n }\n }\n}\n","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {MenuPage} from \"../framework/MenuPage\";\nimport {PLANET_CARD_TYPES} from \"../constants/PlanetCardTypes\";\nimport {PlanetRaidStatusListener} from \"./PlanetRaidStatusListener\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class NewPlanetListener extends AbstractGrassListener {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {MapManager} mapManager\n * @param {GrassManager} grassManager\n * @param {RaidManager} raidManager\n */\n constructor(\n gameState,\n guildAPI,\n mapManager,\n grassManager,\n raidManager\n ) {\n super('NEW_PLANET');\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.mapManager = mapManager;\n this.grassManager = grassManager;\n this.raidManager = raidManager;\n this.redirectControllerName = 'Fleet';\n this.redirectPageName = 'index';\n this.redirectOptions = {planetCardType: PLANET_CARD_TYPES.ALPHA_BASE_ARRIVED};\n }\n\n handler(messageData) {\n if (\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player\n && messageData.category === 'player_consensus'\n && messageData.subject === `structs.player.${this.gameState.thisGuild.id}.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}`\n && messageData.planet_id\n ) {\n this.shouldUnregister = () => true;\n const playerId = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id;\n\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.planet_id = messageData.planet_id;\n\n Promise.all([\n this.guildAPI.getPlanet(messageData.planet_id),\n this.guildAPI.getFleetByPlayerId(playerId),\n this.guildAPI.getStructsByPlayerId(playerId)\n ]).then(([planet, fleet, structs]) => {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setPlanet(planet);\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setPlanetShieldHealth(this.gameState.currentBlockHeight);\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].fleet = fleet;\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.fleet_id = fleet.id;\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setStructs(structs);\n\n this.grassManager.registerListener(new PlanetRaidStatusListener(\n this.gameState,\n this.guildAPI,\n this.raidManager,\n this.mapManager\n ));\n this.mapManager.configureAlphaBaseMap();\n this.gameState.alphaBaseMap.render();\n\n MenuPage.router.goto(this.redirectControllerName, this.redirectPageName, this.redirectOptions);\n });\n }\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {RAID_STATUS} from \"../constants/RaidStatus\";\nimport {RaidStatusUtil} from \"../util/RaidStatusUtil\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\nimport {NOTIFICATION_DIALOGUE_SEQUENCES} from \"../constants/NotificationDialogueSequences\";\nimport {NotificationDialogueSequenceFactory} from \"../factories/NotificationDialogueSequenceFactory\";\nimport {MAP_CONTAINER_IDS} from \"../constants/MapConstants\";\nimport {MenuPage} from \"../framework/MenuPage\";\n\nexport class PlanetRaidStatusListener extends AbstractGrassListener {\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {RaidManager} raidManager\n * @param {MapManager} mapManager\n */\n constructor(\n gameState,\n guildAPI,\n raidManager,\n mapManager\n ) {\n super('PLANET_RAID_STATUS');\n this.gameState = gameState;\n this.guildAPI = gameState.guildAPI;\n this.raidManager = raidManager;\n this.mapManager = mapManager;\n this.raidStatusUtil = new RaidStatusUtil();\n this.notificationDialogueSequenceFactory = new NotificationDialogueSequenceFactory();\n }\n\n raidInitiated(messageData) {\n if (messageData.detail.status !== RAID_STATUS.INITIATED) {\n return;\n }\n\n console.log('PLANET RAID INITIATED HANDLER');\n\n this.guildAPI.getActivePlanetRaidByPlanetId(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.id).then(raidInfo => {\n this.gameState.setPlanetPlanetRaidInfo(raidInfo, false);\n\n this.raidManager.initPlanetRaider().then(() => {\n console.log('PLANET RAID ENEMY INITIATED DONE');\n\n this.mapManager.configureAlphaBaseMap()\n this.gameState.alphaBaseMap.render();\n });\n });\n }\n\n raidOngoing(messageData) {\n if (messageData.detail.status !== RAID_STATUS.ONGOING) {\n return;\n }\n\n console.log('PLANET RAID ONGOING HANDLER');\n\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setPlanetRaidStatus(messageData.detail.status);\n }\n\n raidEndActions() {\n this.gameState.clearPlanetRaidData();\n\n this.mapManager.configureAlphaBaseMap()\n this.gameState.alphaBaseMap.render();\n\n this.gameState.setActiveMapContainerId(MAP_CONTAINER_IDS.ALPHA_BASE);\n this.mapManager.showMap(MAP_CONTAINER_IDS.ALPHA_BASE);\n MenuPage.router.goto('Fleet', 'index');\n MenuPage.open();\n\n this.shouldUnregister = () => true;\n }\n\n raidEnded(messageData) {\n if (!this.raidStatusUtil.hasRaidEnded(messageData.detail.status)) {\n return;\n }\n\n console.log('PLANET RAID HAS ENDED HANDLER');\n\n const seizedOre = messageData.detail.seized_ore\n ? messageData.detail.seized_ore\n : 0;\n\n let dialogue = null;\n if (this.raidStatusUtil.isRaidSuccessful(messageData.detail.status)) {\n dialogue = this.notificationDialogueSequenceFactory.make(\n NOTIFICATION_DIALOGUE_SEQUENCES.DEFEATED_BY_ATTACKER,\n {alphaOreLost: seizedOre}\n );\n } else if (this.raidStatusUtil.isAttackerDefeated(messageData.detail.status)) {\n dialogue = this.notificationDialogueSequenceFactory.make(NOTIFICATION_DIALOGUE_SEQUENCES.DEFENDER_VICTORY);\n }\n\n if (dialogue) {\n dialogue.actionOnSequenceEnd = () => {\n this.raidEndActions();\n }\n dialogue.start();\n } else {\n this.raidEndActions();\n }\n }\n\n handler(messageData) {\n if (\n messageData.category === 'raid_status'\n && messageData.subject === `structs.planet.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.id}`\n ) {\n console.log('PLANET RAID STATUS LISTENER', messageData);\n\n this.raidInitiated(messageData);\n this.raidOngoing(messageData);\n this.raidEnded(messageData);\n }\n }\n}\n","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {MenuPage} from \"../framework/MenuPage\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class PlayerAddressApprovedListener extends AbstractGrassListener {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {PlayerAddressPending} playerAddressPending\n */\n constructor(\n gameState,\n guildAPI,\n playerAddressPending\n ) {\n super('PLAYER_ADDRESS_APPROVED');\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.playerAddressPending = playerAddressPending;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'player_address'\n && messageData.subject === `structs.player.${this.gameState.thisGuild.id}.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}`\n && messageData.status === 'approved'\n && messageData.address === this.playerAddressPending.address\n ) {\n this.shouldUnregister = () => true;\n\n // Refresh device count cache\n this.guildAPI.getPlayerAddressCount(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id, true).then();\n\n MenuPage.router.goto('Account', 'deviceActivationComplete');\n }\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {MenuPage} from \"../framework/MenuPage\";\n\nexport class PlayerAddressApprovedLoginListener extends AbstractGrassListener {\n\n /**\n * @param {GameState} gameState\n * @param {ActivationCodeInfoDTO} activationCodeInfo\n */\n constructor(\n gameState,\n activationCodeInfo\n ) {\n super('PLAYER_ADDRESS_APPROVED_LOGIN');\n this.gameState = gameState;\n this.activationCodeInfo = activationCodeInfo;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'player_address'\n && messageData.subject === `structs.player.${this.gameState.thisGuild.id}.${this.activationCodeInfo.player_id}`\n && messageData.status === 'approved'\n && messageData.address === this.gameState.signingAccount.address\n ) {\n this.shouldUnregister = () => true;\n\n MenuPage.router.goto('Auth', 'loginActivatingDevice', this.activationCodeInfo);\n }\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {MenuPage} from \"../framework/MenuPage\";\n\nexport class PlayerAddressPendingCreatedListener extends AbstractGrassListener {\n\n /**\n * @param {PlayerAddressPendingFactory} playerAddressPendingFactory\n * @param {string} activationCode\n */\n constructor(\n playerAddressPendingFactory,\n activationCode\n ) {\n super('PLAYER_ADDRESS_PENDING_CREATED');\n this.playerAddressPendingFactory = playerAddressPendingFactory;\n this.activationCode = activationCode;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'player_address_pending'\n && messageData.subject === `structs.address.register.${this.activationCode}`\n && !messageData.permissions\n ) {\n const playerAddressPending = this.playerAddressPendingFactory.make(messageData);\n\n this.shouldUnregister = () => true;\n\n MenuPage.router.goto('Account', 'approveNewDevice', playerAddressPending);\n }\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {MenuPage} from \"../framework/MenuPage\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class PlayerAddressRevokedListener extends AbstractGrassListener {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {string} addressToWatch\n */\n constructor(\n gameState,\n guildAPI,\n addressToWatch\n ) {\n super('PLAYER_ADDRESS_REVOKED');\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.addressToWatch = addressToWatch;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'player_address'\n && messageData.subject === `structs.player.${this.gameState.thisGuild.id}.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}`\n && messageData.status === 'revoked'\n && messageData.address === this.addressToWatch\n ) {\n this.shouldUnregister = () => true;\n\n if (this.gameState.signingAccount.address === this.addressToWatch) {\n MenuPage.router.goto('Auth', 'logout');\n } else {\n this.guildAPI.getPlayerAddressCount(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id, true).then(() => {\n MenuPage.router.goto('Account', 'devices');\n });\n }\n }\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class PlayerAlphaListener extends AbstractGrassListener {\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super('PLAYER_ALPHA');\n this.gameState = gameState;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'alpha'\n && messageData.subject === `structs.grid.player.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}`\n ) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setAlpha(messageData.value);\n }\n }\n}\n","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class PlayerCapacityListener extends AbstractGrassListener {\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super('PLAYER_CAPACITY');\n this.gameState = gameState;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'capacity'\n && messageData.subject === `structs.grid.player.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}`\n ) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setPlayerCapacity(messageData.value);\n }\n }\n}\n","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\n\nexport class PlayerCreatedListener extends AbstractGrassListener {\n\n constructor() {\n super('PLAYER_CREATED');\n this.guildId = null;\n this.playerAddress = null;\n this.authManager = null;\n this.guildAPI = null;\n this.gameState = null;\n this.planetManager = null;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'player_consensus'\n && messageData.subject.startsWith(`structs.player.${this.guildId}`)\n && messageData.primary_address === this.playerAddress\n ) {\n console.log(messageData.id);\n\n this.authManager.login(messageData.id).then(async function () {\n await this.planetManager.findNewPlanet();\n }.bind(this));\n\n this.shouldUnregister = () => true;\n }\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class PlayerLoadListener extends AbstractGrassListener {\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super('PLAYER_LOAD');\n this.gameState = gameState;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'load'\n && messageData.subject === `structs.grid.player.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}`\n ) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setLoad(messageData.value);\n }\n }\n}\n","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class PlayerStructsLoadListener extends AbstractGrassListener {\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super('PLAYER_STRUCTS_LOAD');\n this.gameState = gameState;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'structsLoad'\n && messageData.subject === `structs.grid.player.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}`\n ) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setStructsLoad(messageData.value);\n }\n }\n}\n","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {RAID_STATUS} from \"../constants/RaidStatus\";\nimport {RaidStatusUtil} from \"../util/RaidStatusUtil\";\nimport {MenuPage} from \"../framework/MenuPage\";\nimport {PLANET_CARD_TYPES} from \"../constants/PlanetCardTypes\";\nimport {TaskStateFactory} from \"../factories/TaskStateFactory\";\nimport {TaskCmdKillEvent} from \"../events/TaskCmdKillEvent\";\nimport {TaskCmdSpawnEvent} from \"../events/TaskCmdSpawnEvent\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\nimport {NotificationDialogueSequenceFactory} from \"../factories/NotificationDialogueSequenceFactory\";\nimport {NOTIFICATION_DIALOGUE_SEQUENCES} from \"../constants/NotificationDialogueSequences\";\nimport {MAP_CONTAINER_IDS} from \"../constants/MapConstants\";\n\nexport class RaidStatusListener extends AbstractGrassListener {\n /**\n * @param {GameState} gameState\n * @param {RaidManager} raidManager\n * @param {MapManager} mapManager\n */\n constructor(\n gameState,\n raidManager,\n mapManager\n ) {\n super('RAID_STATUS');\n this.gameState = gameState;\n this.raidManager = raidManager;\n this.mapManager = mapManager;\n this.raidStatusUtil = new RaidStatusUtil();\n this.notificationDialogueSequenceFactory = new NotificationDialogueSequenceFactory();\n }\n\n raidInitiated(messageData) {\n if (messageData.detail.status !== RAID_STATUS.INITIATED) {\n return;\n }\n\n console.log('RAID INITIATED HANDLER');\n\n // Don't dispatch as we need to wait for the raid enemy info\n this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].setPlanetRaidStatus(messageData.detail.status, false);\n\n this.raidManager.initRaidEnemy().then(() => {\n console.log('RAID ENEMY INITIATED DONE');\n\n window.dispatchEvent(new TaskCmdSpawnEvent(new TaskStateFactory().initRaidTask(messageData.detail.fleet_id, messageData.detail.planet_id, this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetShieldInfo.block_start_raid, this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetShieldInfo.planetary_shield )));\n\n // Also needs updating as the fleet has moved away\n this.mapManager.configureAlphaBaseMap();\n this.gameState.alphaBaseMap.render();\n\n this.mapManager.configureRaidMap();\n this.gameState.raidMap.render();\n\n MenuPage.router.goto('Fleet', 'index', {'raidCardType': PLANET_CARD_TYPES.RAID_STARTED});\n });\n }\n\n raidOngoing(messageData) {\n if (messageData.detail.status !== RAID_STATUS.ONGOING) {\n return;\n }\n\n console.log('RAID ONGOING HANDLER');\n\n this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].setPlanetRaidStatus(messageData.detail.status);\n\n window.dispatchEvent(new TaskCmdSpawnEvent(new TaskStateFactory().initRaidTask(messageData.detail.fleet_id, messageData.detail.planet_id, this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetShieldInfo.block_start_raid, this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetShieldInfo.planetary_shield )));\n }\n\n\n raidEndActions(messageData) {\n // Player's fleet needs updating as it's been moved back home.\n this.gameState.guildAPI.getFleetByPlayerId(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id).then(playerFleet => {\n\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].fleet = playerFleet;\n\n window.dispatchEvent(new TaskCmdKillEvent(messageData.detail.fleet_id));\n\n // Clear the planet raid info\n this.gameState.clearRaidData();\n\n this.mapManager.configureRaidMap();\n this.gameState.raidMap.render();\n\n this.mapManager.configureAlphaBaseMap();\n this.gameState.alphaBaseMap.render();\n\n this.gameState.setActiveMapContainerId(MAP_CONTAINER_IDS.ALPHA_BASE);\n this.mapManager.showMap(MAP_CONTAINER_IDS.ALPHA_BASE);\n MenuPage.router.goto('Fleet', 'index');\n MenuPage.open();\n\n this.shouldUnregister = () => true;\n\n });\n }\n\n raidEnded(messageData) {\n if (!this.raidStatusUtil.hasRaidEnded(messageData.detail.status)) {\n return;\n }\n\n console.log('RAID HAS ENDED HANDLER');\n\n const seizedOre = messageData.detail.seized_ore\n ? messageData.detail.seized_ore\n : 0;\n\n let dialogue = null;\n if (this.raidStatusUtil.isRaidSuccessful(messageData.detail.status)) {\n dialogue = this.notificationDialogueSequenceFactory.make(\n NOTIFICATION_DIALOGUE_SEQUENCES.ATTACKER_VICTORY,\n {alphaOreRecovered: seizedOre}\n );\n } else if (this.raidStatusUtil.isAttackerDefeated(messageData.detail.status)) {\n dialogue = this.notificationDialogueSequenceFactory.make(NOTIFICATION_DIALOGUE_SEQUENCES.DEFEATED_BY_DEFENDER);\n }\n\n if (dialogue) {\n dialogue.actionOnSequenceEnd = () => {\n this.raidEndActions(messageData);\n }\n dialogue.start();\n } else {\n this.raidEndActions(messageData);\n }\n }\n\n handler(messageData) {\n if (\n messageData.category === 'raid_status'\n && messageData.subject === `structs.planet.${this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo.planet_id}`\n ) {\n console.log('RAID STATUS LISTENER', messageData);\n\n this.raidInitiated(messageData);\n this.raidOngoing(messageData);\n this.raidEnded(messageData);\n }\n\n /**\n * Handles the special case where the player is raiding a planet\n * and the raid enemy's fleet leaves or arrives during the battle.\n */\n if (\n (messageData.category === 'fleet_depart' || messageData.category === 'fleet_arrive')\n && messageData.subject === `structs.planet.${this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].getPlanetId()}`\n && this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].isFleetOwner(messageData.detail?.fleet_id)\n ) {\n this.raidManager.refreshRaidFleet().then(() => {\n this.gameState.raidMap.render();\n })\n }\n }\n}\n","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {TaskStateFactory} from \"../factories/TaskStateFactory\";\nimport {TASK_TYPES} from \"../constants/TaskTypes\";\nimport {TaskCmdKillEvent} from \"../events/TaskCmdKillEvent\";\nimport {TaskCmdSpawnEvent} from \"../events/TaskCmdSpawnEvent\";\nimport {STRUCT_ACTIONS, STRUCT_STATUS_FLAGS, STRUCT_TYPES, STRUCT_WEAPON_SYSTEM} from \"../constants/StructConstants\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\nimport {ClearStructTileEvent} from \"../events/ClearStructTileEvent\";\nimport {UpdateTileStructIdEvent} from \"../events/UpdateTileStructIdEvent\";\nimport {AnimationEventFactory} from \"../factories/AnimationEventFactory\";\nimport {AnimationEvent} from \"../events/AnimationEvent\";\nimport {ANIMATION} from \"../constants/AnimationConstants\";\n\nexport class StructListener extends AbstractGrassListener {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {StructManager} structManager\n * @param {string} targetPlayerType - The player type whose planet this listener monitors\n */\n constructor(\n gameState,\n guildAPI,\n structManager,\n targetPlayerType = PLAYER_TYPES.PLAYER\n ) {\n super(`STRUCT_CHANGE_${targetPlayerType}`);\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.structManager = structManager;\n this.targetPlayerType = targetPlayerType;\n this.animationEventFactory = new AnimationEventFactory();\n }\n\n /**\n * Get the player type for a given owner ID.\n * @param {string} ownerId\n * @returns {string|null}\n */\n getOwnerPlayerType(ownerId) {\n for (const playerType of Object.values(PLAYER_TYPES)) {\n if (this.gameState.keyPlayers[playerType].id === ownerId) {\n return playerType;\n }\n }\n return null;\n }\n\n /**\n * Determines if this listener should be unregistered.\n * For RAID_ENEMY listeners, unregister when the raid is no longer active.\n * @returns {boolean}\n */\n shouldUnregister() {\n if (this.gameState.keyPlayers[this.targetPlayerType].isRaidDependent()) {\n return !this.gameState.getPlanetRaidInfoForKeyPlayer(this.targetPlayerType)?.isRaidActive();\n }\n return false;\n }\n\n /**\n * @param {string} subject\n * @param {object} messageData\n */\n handleStructBlockBuildStart(subject, messageData) {\n if (!(\n messageData.category === 'struct_block_build_start'\n && messageData.subject === subject\n && messageData.detail.block > 0\n )) {\n return;\n }\n\n // Skip the struct viewer re-render here: this handler only needs the\n // refreshed struct snapshot to spawn the build progress task. The\n // deployment indicator was already rendered client-side by\n // DeployOffcanvas (own structs) or by the initial map sync, and the\n // BUILT struct_status transition handled in handleStructStatus is what\n // swaps the indicator out for the built viewer plus deployment animation.\n // Letting refreshStruct re-render here lets the last block_build_start's\n // RenderStructEvent race the BUILT transition's deployment animation -\n // if the block event's API response lands while the animation is in\n // flight, the struct viewer is torn down and the animation either never\n // completes or completes against an orphaned wrapper, stalling the\n // animation queue. RenderStructHUDEvent is still dispatched\n // unconditionally inside refreshStruct so the build progress bar updates.\n this.structManager.refreshStruct(\n messageData.detail.struct_id,\n this.gameState.keyPlayers[this.targetPlayerType].planetMapType,\n false,\n false\n ).then((struct) => {\n\n if (struct && this.getOwnerPlayerType(struct.owner) === PLAYER_TYPES.PLAYER) {\n window.dispatchEvent(new TaskCmdSpawnEvent(new TaskStateFactory().initStructTask(\n messageData.detail.struct_id,\n TASK_TYPES.BUILD,\n messageData.detail.block,\n this.gameState.structTypes.getStructTypeById(struct.type).build_difficulty\n )));\n }\n\n });\n }\n\n /**\n * @param {string} subject\n * @param {object} messageData\n */\n handleStructStatus(subject, messageData) {\n if (!(\n messageData.category === 'struct_status'\n && messageData.subject === subject\n )) {\n return;\n }\n\n let removePendingBuild = false;\n let renderStruct = true;\n const mapType = this.gameState.keyPlayers[this.targetPlayerType].planetMapType;\n const mapId = this.gameState[mapType]?.mapId ?? null;\n\n if (\n (messageData.detail.status_old & STRUCT_STATUS_FLAGS.BUILT) === 0\n && (messageData.detail.status & STRUCT_STATUS_FLAGS.BUILT) > 0\n ) {\n removePendingBuild = true;\n\n } else if (\n (messageData.detail.status_old & STRUCT_STATUS_FLAGS.HIDDEN) === 0\n && (messageData.detail.status & STRUCT_STATUS_FLAGS.HIDDEN) > 0\n ) {\n renderStruct = false;\n const animationEvent = this.animationEventFactory.makeStealthActivateAnimationEvent(\n messageData.detail.struct_id,\n mapId\n );\n this.gameState.animationEventQueue.enqueue(animationEvent);\n\n } else if (\n (messageData.detail.status_old & STRUCT_STATUS_FLAGS.HIDDEN) > 0\n && (messageData.detail.status & STRUCT_STATUS_FLAGS.HIDDEN) === 0\n ) {\n renderStruct = false;\n const animationEvent = this.animationEventFactory.makeStealthDeactivateAnimationEvent(\n messageData.detail.struct_id,\n mapId\n );\n this.gameState.animationEventQueue.enqueue(animationEvent);\n\n } else if (\n (messageData.detail.status_old & STRUCT_STATUS_FLAGS.DESTROYED) === 0\n && (messageData.detail.status & STRUCT_STATUS_FLAGS.DESTROYED) > 0\n ) {\n // The destroy animation enqueued by handleStructAttack drives the visual\n // teardown, and DestroyedStructManager clears the tile after the sweep\n // delay. Re-rendering the viewer here would destroy the receive-damage\n // animations mid-flight (their 'complete' listeners die with the lottie\n // instance), stalling the animation queue so the destroy animation never\n // dequeues.\n renderStruct = false;\n\n } else {\n // Any other status transition (e.g. ONLINE/OFFLINE, LOCKED, STORED, or\n // a follow-up status change emitted alongside a transition we already\n // handled) doesn't change anything the struct still itself renders -\n // those indicators live on the HUD layer which is still refreshed by\n // the RenderStructHUDEvent dispatched unconditionally from refreshStruct.\n // Re-rendering the struct viewer for these would tear down any in-flight\n // animation triggered by a previously-matched transition (most notably\n // the deployment animation autoplayed when BUILT was first set), leaving\n // the viewer pointing at a wiped DOM and stalling the animation queue.\n renderStruct = false;\n }\n\n this.structManager.refreshStruct(\n messageData.detail.struct_id,\n mapType,\n removePendingBuild,\n renderStruct\n ).then((struct) => {\n\n this.gameState.actionBarLock.clear();\n\n // Only kill build tasks for the player's own structs\n if (\n removePendingBuild\n && struct\n && (struct.owner === this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id)\n ) {\n window.dispatchEvent(new TaskCmdKillEvent(messageData.detail.struct_id));\n }\n });\n }\n\n /**\n * @param {string} subject\n * @param {object} messageData\n */\n handleStructMove(subject, messageData) {\n if (!(\n messageData.category === 'struct_move'\n && messageData.subject === subject\n )) {\n return;\n }\n\n const structId = messageData.detail.struct_id;\n const oldStruct = this.structManager.getStructById(structId);\n const mapType = this.gameState.keyPlayers[this.targetPlayerType].planetMapType;\n const mapId = this.gameState[mapType]?.mapId;\n\n // 1. Enqueue depart animation\n const departEvent = new AnimationEvent(\n structId,\n [ANIMATION.NAMES.MOVE.DEPART],\n false,\n false,\n {},\n mapId ?? null\n );\n\n departEvent.onAnimationEnd = async () => {\n if (oldStruct && mapId) {\n const oldTileType = this.structManager.getTileTypeFromStruct(oldStruct);\n const oldAmbit = oldStruct.operating_ambit.toUpperCase();\n\n window.dispatchEvent(new ClearStructTileEvent(\n mapId, oldTileType, oldAmbit, oldStruct.slot, oldStruct.owner\n ));\n window.dispatchEvent(new UpdateTileStructIdEvent(\n mapId, oldTileType, oldAmbit, oldStruct.slot, oldStruct.owner, ''\n ));\n }\n\n await this.structManager.refreshStruct(structId, mapType);\n };\n\n this.gameState.animationEventQueue.enqueue(departEvent);\n\n // 2. Enqueue arrive animation (plays after depart + side effects complete)\n const arriveEvent = new AnimationEvent(\n structId,\n [ANIMATION.NAMES.MOVE.ARRIVE],\n false,\n true,\n {},\n mapId ?? null\n );\n\n arriveEvent.onAnimationEnd = () => {\n this.gameState.actionBarLock.clear();\n };\n\n this.gameState.animationEventQueue.enqueue(arriveEvent);\n }\n\n /**\n * @param {string} subject\n * @param {object} messageData\n */\n handleStructDefenseAdd(subject, messageData) {\n if (!(\n messageData.category === 'struct_defense_add'\n && messageData.subject === subject\n )) {\n return;\n }\n\n const defenderStructId = messageData.detail.defender_struct_id;\n const protectedStructId = messageData.detail.protected_struct_id;\n const mapType = this.gameState.keyPlayers[this.targetPlayerType].planetMapType;\n\n // Refresh both the defender and protected structs\n Promise.all([\n this.structManager.refreshStruct(defenderStructId, mapType, false, false),\n this.structManager.refreshStruct(protectedStructId, mapType, false, false)\n ]).then(() => {\n // Only clear actionBarLock if this was triggered by the current player's action\n if (\n this.gameState.actionBarLock.getCurrentAction() === STRUCT_ACTIONS.DEFENSE_SET\n && this.gameState.actionBarLock.isLocked()\n ) {\n this.gameState.actionBarLock.clear();\n }\n });\n }\n\n /**\n * @param {string} subject\n * @param {object} messageData\n */\n handleStructDefenseRemove(subject, messageData) {\n if (!(\n messageData.category === 'struct_defense_remove'\n && messageData.subject === subject\n )) {\n return;\n }\n\n const defenderStructId = messageData.detail.defender_struct_id;\n const protectedStructId = messageData.detail.protected_struct_id;\n const mapType = this.gameState.keyPlayers[this.targetPlayerType].planetMapType;\n\n // Refresh both the defender and protected structs\n Promise.all([\n this.structManager.refreshStruct(defenderStructId, mapType, false, false),\n this.structManager.refreshStruct(protectedStructId, mapType, false, false)\n ]).then(() => {\n // Only clear actionBarLock if this was triggered by the current player's action\n if (\n this.gameState.actionBarLock.getCurrentAction() === STRUCT_ACTIONS.DEFENSE_CLEAR\n && this.gameState.actionBarLock.isLocked()\n ) {\n this.gameState.actionBarLock.clear();\n }\n });\n }\n\n /**\n * @param {string} subject\n * @param {object} messageData\n */\n handleStructAttack(subject, messageData) {\n if (!(\n messageData.category === 'struct_attack'\n && messageData.subject === subject\n )) {\n return;\n }\n\n const mapType = this.gameState.keyPlayers[this.targetPlayerType].planetMapType;\n const mapId = this.gameState[mapType]?.mapId ?? null;\n const structIdsToRefresh = new Set();\n\n structIdsToRefresh.add(messageData.detail.attackerStructId);\n\n // Track the attacker's running health across all shots/counters so each\n // animation event for the attacker can carry the partial health value at\n // the point in the sequence at which it ends. Without this, gameState\n // (refreshed in parallel with the queue) would hold the final post-attack\n // health and the still/HUD would jump straight to that final state after\n // the first counter animation.\n let runningAttackerHealth = parseInt('' + (messageData.detail.attackerHealthBefore || 0));\n\n for (let i = 0; i < messageData.detail.eventAttackShotDetail.length; i++) {\n\n const eventAttackShotDetail = messageData.detail.eventAttackShotDetail[i];\n\n let defenderCounterDestroyedAttacker = false;\n\n for (let j = 0; j < eventAttackShotDetail.eventAttackDefenderCounterDetail.length; j++) {\n\n const eventAttackDefenderCounterDetail = eventAttackShotDetail.eventAttackDefenderCounterDetail[j];\n\n // i. Play counterByStruct attack animation\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeAttackAnimationEvent(\n eventAttackDefenderCounterDetail.counterByStructId,\n eventAttackDefenderCounterDetail.counterByStructWeaponSystem,\n mapId\n )\n );\n\n const counterDamage = parseInt('' + (eventAttackDefenderCounterDetail.counterDamage || 0));\n const attackerHealthBeforeCounter = runningAttackerHealth;\n const attackerHealthAfterCounter = Math.max(0, attackerHealthBeforeCounter - counterDamage);\n runningAttackerHealth = attackerHealthAfterCounter;\n\n // ii. Play attackerStruct receiving damage animation\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeReceiveDamageAnimationEvent(\n messageData.detail.attackerStructId,\n eventAttackDefenderCounterDetail.counterByStructType,\n eventAttackDefenderCounterDetail.counterByStructOperatingAmbit,\n eventAttackDefenderCounterDetail.counterByStructWeaponSystem,\n messageData.detail.attackerStructType,\n messageData.detail.attackerStructOperatingAmbit,\n messageData.detail.attackerStructLocationType,\n attackerHealthBeforeCounter,\n attackerHealthAfterCounter,\n false,\n '',\n mapId\n )\n );\n\n if (eventAttackDefenderCounterDetail.counterDestroyedAttacker) {\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeDestroyAnimationEvent(\n messageData.detail.attackerStructId,\n messageData.detail.attackerStructOperatingAmbit,\n mapId\n )\n );\n\n defenderCounterDestroyedAttacker = true;\n break;\n }\n }\n\n if (!defenderCounterDestroyedAttacker) {\n // b. If not counterDestroyedAttacker, play attackerStruct attack animation.\n // Thread runningAttackerHealth so the still/HUD don't snap to the final\n // gameState health when this animation ends; the target counter (if any)\n // is still ahead of us in the queue.\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeAttackAnimationEvent(\n messageData.detail.attackerStructId,\n messageData.detail.weaponSystem,\n mapId,\n runningAttackerHealth\n )\n );\n }\n\n if (eventAttackShotDetail.evaded) {\n // c. If evaded, play targetStruct evade animation\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeReceiveDamageAnimationEvent(\n eventAttackShotDetail.targetStructId,\n messageData.detail.attackerStructType,\n messageData.detail.attackerStructOperatingAmbit,\n messageData.detail.weaponSystem,\n eventAttackShotDetail.targetStructType,\n eventAttackShotDetail.targetStructOperatingAmbit,\n eventAttackShotDetail.targetStructLocationType,\n eventAttackShotDetail.targetHealthBefore,\n eventAttackShotDetail.targetHealthAfter,\n eventAttackShotDetail.evaded,\n eventAttackShotDetail.evadedCause,\n mapId\n )\n );\n }\n\n if (eventAttackShotDetail.blocked) {\n // d. If blocked, play blockedByStruct receiving damage animation\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeReceiveDamageAnimationEvent(\n eventAttackShotDetail.blockedByStructId,\n messageData.detail.attackerStructType,\n messageData.detail.attackerStructOperatingAmbit,\n messageData.detail.weaponSystem,\n eventAttackShotDetail.blockedByStructType,\n eventAttackShotDetail.blockedByStructOperatingAmbit,\n eventAttackShotDetail.blockedByStructLocationType,\n eventAttackShotDetail.blockerHealthBefore,\n eventAttackShotDetail.blockerHealthAfter,\n false,\n '',\n mapId\n )\n );\n\n if (eventAttackShotDetail.blockerDestroyed) {\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeDestroyAnimationEvent(\n eventAttackShotDetail.blockedByStructId,\n eventAttackShotDetail.blockedByStructOperatingAmbit,\n mapId\n )\n );\n }\n\n structIdsToRefresh.add(eventAttackShotDetail.blockedByStructId);\n }\n\n if (parseInt(eventAttackShotDetail.targetHealthBefore) !== parseInt(eventAttackShotDetail.targetHealthAfter)) {\n // e. If targetHealthBefore !== targetHealthAfter, play targetStruct receive damage animation\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeReceiveDamageAnimationEvent(\n eventAttackShotDetail.targetStructId,\n messageData.detail.attackerStructType,\n messageData.detail.attackerStructOperatingAmbit,\n messageData.detail.weaponSystem,\n eventAttackShotDetail.targetStructType,\n eventAttackShotDetail.targetStructOperatingAmbit,\n eventAttackShotDetail.targetStructLocationType,\n eventAttackShotDetail.targetHealthBefore,\n eventAttackShotDetail.targetHealthAfter,\n false,\n '',\n mapId\n )\n );\n\n if (eventAttackShotDetail.targetDestroyed) {\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeDestroyAnimationEvent(\n eventAttackShotDetail.targetStructId,\n eventAttackShotDetail.targetStructOperatingAmbit,\n mapId\n )\n );\n }\n\n structIdsToRefresh.add(eventAttackShotDetail.targetStructId);\n }\n\n if (!eventAttackShotDetail.targetDestroyed && eventAttackShotDetail.targetCountered) {\n // f. If targetHealthAfter > 0 and targetCountered, play targetStruct attack animation.\n // Thread targetHealthAfter so the still/HUD reflect the post-damage value when this\n // animation ends; otherwise the still would fall back to gameState (which may not\n // have refreshed yet) and visually flash backward to the pre-damage health.\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeAttackAnimationEvent(\n eventAttackShotDetail.targetStructId,\n eventAttackShotDetail.targetCounterWeaponSystem,\n mapId,\n eventAttackShotDetail.targetHealthAfter\n )\n );\n\n const targetCounterDamage = parseInt('' + (eventAttackShotDetail.targetCounteredDamage || 0));\n const attackerHealthBeforeTargetCounter = runningAttackerHealth;\n const attackerHealthAfterTargetCounter = Math.max(0, attackerHealthBeforeTargetCounter - targetCounterDamage);\n runningAttackerHealth = attackerHealthAfterTargetCounter;\n\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeReceiveDamageAnimationEvent(\n messageData.detail.attackerStructId,\n eventAttackShotDetail.targetStructType,\n eventAttackShotDetail.targetStructOperatingAmbit,\n eventAttackShotDetail.targetCounterWeaponSystem,\n messageData.detail.attackerStructType,\n messageData.detail.attackerStructOperatingAmbit,\n messageData.detail.attackerStructLocationType,\n attackerHealthBeforeTargetCounter,\n attackerHealthAfterTargetCounter,\n false,\n '',\n mapId\n )\n );\n }\n\n if (eventAttackShotDetail.targetCounterDestroyedAttacker) {\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeDestroyAnimationEvent(\n messageData.detail.attackerStructId,\n messageData.detail.attackerStructOperatingAmbit,\n mapId\n )\n );\n }\n }\n\n if (messageData.detail.planetaryDefenseCannonDamageToAttacker) {\n\n // The message doesn't carry the PDC struct id, but the listener is scoped\n // to a single planet (this.targetPlayerType's planet) and there is at most\n // one planetary defense cannon per planet, so we can locate it by struct\n // type among the structs owned by this listener's target player.\n const planetaryDefenseCannonStruct = this.gameState.getPlanetaryDefenseStructByKeyPlayer(this.targetPlayerType);\n\n const planetaryDefenseCannonDamage = parseInt(messageData.detail.planetaryDefenseCannonDamage);\n const attackerHealthBeforePDCCounter = runningAttackerHealth;\n const attackerHealthAfterPDCCounter = Math.max(0, attackerHealthBeforePDCCounter - planetaryDefenseCannonDamage);\n runningAttackerHealth = attackerHealthAfterPDCCounter;\n\n if (planetaryDefenseCannonStruct) {\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeAttackAnimationEvent(\n planetaryDefenseCannonStruct.id,\n STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON,\n mapId\n )\n );\n\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeReceiveDamageAnimationEvent(\n messageData.detail.attackerStructId,\n STRUCT_TYPES.PLANETARY_DEFENSE_CANNON,\n planetaryDefenseCannonStruct.operating_ambit,\n STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON,\n messageData.detail.attackerStructType,\n messageData.detail.attackerStructOperatingAmbit,\n messageData.detail.attackerStructLocationType,\n attackerHealthBeforePDCCounter,\n attackerHealthAfterPDCCounter,\n false,\n '',\n mapId\n )\n );\n\n structIdsToRefresh.add(planetaryDefenseCannonStruct.id);\n\n if (messageData.detail.planetaryDefenseCannonDamageDestroyedAttacker) {\n this.gameState.animationEventQueue.enqueue(\n this.animationEventFactory.makeDestroyAnimationEvent(\n messageData.detail.attackerStructId,\n messageData.detail.attackerStructOperatingAmbit,\n mapId\n )\n );\n }\n }\n }\n\n // Refresh all involved structs\n const refreshPromises = Array.from(structIdsToRefresh).map(\n structId => this.structManager.refreshStruct(structId, mapType, false, false)\n );\n\n Promise.all(refreshPromises).then(() => {\n // Only clear actionBarLock if this was triggered by the current player's attack action\n if (\n (this.gameState.actionBarLock.getCurrentAction() === STRUCT_ACTIONS.ATTACK_PRIMARY_WEAPON\n || this.gameState.actionBarLock.getCurrentAction() === STRUCT_ACTIONS.ATTACK_SECONDARY_WEAPON)\n && this.gameState.actionBarLock.isLocked()\n ) {\n this.gameState.actionBarLock.clear();\n }\n });\n }\n\n handler(messageData) {\n const targetPlanetId = this.gameState.keyPlayers[this.targetPlayerType].getPlanetId();\n\n // Skip if we don't have a target planet ID yet\n if (!targetPlanetId) {\n return;\n }\n\n const subject = `structs.planet.${targetPlanetId}`;\n\n this.handleStructBlockBuildStart(subject, messageData);\n this.handleStructStatus(subject, messageData);\n this.handleStructMove(subject, messageData);\n this.handleStructDefenseAdd(subject, messageData);\n this.handleStructDefenseRemove(subject, messageData);\n this.handleStructAttack(subject, messageData);\n }\n}\n","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {TaskStateFactory} from \"../factories/TaskStateFactory\";\nimport {TASK_TYPES} from \"../constants/TaskTypes\";\nimport {TaskCmdKillEvent} from \"../events/TaskCmdKillEvent\";\nimport {TaskCmdSpawnEvent} from \"../events/TaskCmdSpawnEvent\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class StructMineStatusListener extends AbstractGrassListener {\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super('STRUCTS_MINE_STATUS_CHANGE');\n this.gameState = gameState;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'struct_block_ore_mine_start'\n && messageData.subject === `structs.planet.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.planet_id}`\n ) {\n if (messageData.detail.block === 0) {\n window.dispatchEvent(new TaskCmdKillEvent(messageData.detail.struct_id));\n } else {\n const structId = messageData.detail.struct_id;\n const structTypeId = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].structs[structId].type;\n const oreMineDifficulty = this.gameState.structTypes.getStructTypeById(structTypeId).ore_mining_difficulty;\n\n window.dispatchEvent(new TaskCmdSpawnEvent(new TaskStateFactory().initStructTask(messageData.detail.struct_id, TASK_TYPES.MINE, messageData.detail.block, oreMineDifficulty)));\n }\n }\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {TaskStateFactory} from \"../factories/TaskStateFactory\";\nimport {TASK_TYPES} from \"../constants/TaskTypes\";\nimport {TaskCmdKillEvent} from \"../events/TaskCmdKillEvent\";\nimport {TaskCmdSpawnEvent} from \"../events/TaskCmdSpawnEvent\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\n\nexport class StructRefineStatusListener extends AbstractGrassListener {\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super('STRUCTS_REFINE_STATUS_CHANGE');\n this.gameState = gameState;\n }\n\n handler(messageData) {\n if (\n messageData.category === 'struct_block_ore_refine_start'\n && messageData.subject === `structs.planet.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.planet_id}`\n ) {\n if (messageData.detail.block === 0) {\n window.dispatchEvent(new TaskCmdKillEvent(messageData.detail.struct_id));\n } else {\n const structId = messageData.detail.struct_id;\n const structTypeId = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].structs[structId].type;\n const oreRefineDifficulty = this.gameState.structTypes.getStructTypeById(structTypeId).ore_refining_difficulty;\n\n window.dispatchEvent(new TaskCmdSpawnEvent(new TaskStateFactory().initStructTask(messageData.detail.struct_id, TASK_TYPES.REFINE, messageData.detail.block, oreRefineDifficulty)));\n }\n }\n }\n}","import {AbstractGrassListener} from \"../framework/AbstractGrassListener\";\nimport {MenuPage} from \"../framework/MenuPage\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class TransferSentListener extends AbstractGrassListener {\n\n /**\n * @param {GameState} gameState\n * @param {string} fromAddress\n * @param {string} toAddress\n * @param {number} alphaAmount\n */\n constructor(gameState, fromAddress, toAddress, alphaAmount) {\n super('TRANSFER_SENT');\n this.gameState = gameState;\n this.fromAddress = fromAddress;\n this.toAddress = toAddress;\n this.alphaAmount = alphaAmount;\n }\n\n handler(messageData) {\n if (\n this.gameState.thisGuild.id\n && this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id\n && messageData.category === 'sent'\n && messageData.subject === `structs.inventory.ualpha.${this.gameState.thisGuild.id}.${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}.${this.fromAddress}`\n && messageData.address === this.fromAddress\n && messageData.counterparty === this.toAddress\n && Math.abs(messageData.amount) === this.alphaAmount\n ) {\n this.shouldUnregister = () => true;\n\n MenuPage.router.goto('Account', 'transaction', {txId: messageData.id, comingFromPage: 1, hasBackToAccountBtn: true});\n }\n }\n}","import {MenuPage} from './framework/MenuPage';\nimport {AuthController} from \"./controllers/AuthController\";\nimport {GameState} from \"./models/GameState\";\nimport {GuildAPI} from \"./api/GuildAPI\";\nimport {WalletManager} from \"./managers/WalletManager\";\nimport {AuthManager} from \"./managers/AuthManager\";\nimport {GrassManager} from \"./framework/GrassManager\";\nimport {BlockListener} from \"./grass_listeners/BlockListener\";\nimport {HUDViewModel} from \"./view_models/HUDViewModel\";\nimport {AccountController} from \"./controllers/AccountController\";\nimport {SigningClientManager} from \"./managers/SigningClientManager\";\nimport {PlanetManager} from \"./managers/PlanetManager\";\nimport {PlayerAddressManager} from \"./managers/PlayerAddressManager\";\nimport {PermissionManager} from \"./managers/PermissionManager\";\nimport {PlayerAddressPendingFactory} from \"./factories/PlayerAddressPendingFactory\";\nimport {GenericController} from \"./controllers/GenericController\";\nimport {AlphaManager} from \"./managers/AlphaManager\";\nimport {GuildController} from \"./controllers/GuildController\";\nimport {FleetController} from \"./controllers/FleetController\";\nimport {FleetManager} from \"./managers/FleetManager\";\nimport {RaidManager} from \"./managers/RaidManager\";\nimport {MapComponent} from \"./view_models/components/map/MapComponent\";\nimport {MapManager} from \"./managers/MapMananger\";\nimport {MAP_CONTAINER_IDS} from \"./constants/MapConstants\";\nimport {CheatsheetContentBuilder} from \"./builders/CheatsheetContentBuilder\";\nimport {StructManager} from \"./managers/StructManager\";\nimport {TaskManager} from \"./managers/TaskManager\";\nimport {TaskStateFactory} from \"./factories/TaskStateFactory\";\nimport {EVENTS} from \"./constants/Events\";\nimport {TASK} from \"./constants/TaskConstants\";\nimport {PLAYER_TYPES} from \"./constants/PlayerTypes\";\nimport {DestroyedStructManager} from \"./managers/DestroyedStructManager\";\nimport {NotificationDialogue} from \"./framework/NotificationDialogue\";\nimport {AnimationEventQueue} from \"./data_structures/AnimationEventQueue\";\n\n// TODO Remove eventually...\n// Or formalize a migration system (MigrationManager?)\nconst actionBarMigrate = localStorage.getItem(\"actionBarMigrate-20260107\");\nif (!actionBarMigrate) {\n console.log('Migrating to new Struct Type System');\n localStorage.setItem(\"actionBarMigrate-20260107\", \"true\");\n localStorage.removeItem('getStructTypes');\n}\n\nconst gameState = new GameState();\nglobal.gameState = gameState;\n\nconst guildAPI = new GuildAPI();\nglobal.guildAPI = guildAPI;\n\nconst walletManager = new WalletManager();\nglobal.walletManager = walletManager;\n\nconst grassManager = new GrassManager(\n `ws://${window.location.hostname}:1443`,\n \"structs.>\"\n);\n\nconst blockGrassManager = new GrassManager(\n `ws://${window.location.hostname}:1443`,\n \"consensus\"\n);\n\nconst signingClientManager = new SigningClientManager(gameState);\nglobal.signingClientManager = signingClientManager;\n\nconst structManager = new StructManager(gameState, guildAPI, signingClientManager);\n\nconst planetManager = new PlanetManager(gameState, signingClientManager);\n\nconst playerAddressManager = new PlayerAddressManager(gameState, guildAPI);\n\nconst permissionManager = new PermissionManager();\n\nconst playerAddressPendingFactory = new PlayerAddressPendingFactory();\n\nconst mapManager = new MapManager(gameState);\n\nconst raidManager = new RaidManager(gameState, guildAPI, grassManager, mapManager, structManager);\n\nconst taskStateFactory = new TaskStateFactory();\n\nconst taskManager = new TaskManager(gameState, guildAPI, signingClientManager, taskStateFactory);\nglobal.taskManager = taskManager;\n\nconst destroyedStructManager = new DestroyedStructManager(gameState, structManager);\nglobal.destroyedStructManager = destroyedStructManager;\n\nconst animationEventQueue = new AnimationEventQueue();\nanimationEventQueue.initListeners();\ngameState.animationEventQueue = animationEventQueue;\n\nconst authManager = new AuthManager(\n gameState,\n guildAPI,\n walletManager,\n grassManager,\n signingClientManager,\n planetManager,\n playerAddressManager,\n playerAddressPendingFactory,\n raidManager,\n mapManager,\n taskManager,\n structManager,\n destroyedStructManager\n);\n\nconst alphaManager = new AlphaManager(gameState, signingClientManager);\n\nconst fleetManager = new FleetManager(gameState, signingClientManager);\n\nconst blockListener = new BlockListener(gameState);\n\nconst authController = new AuthController(\n gameState,\n guildAPI,\n walletManager,\n authManager\n);\nconst accountController = new AccountController(\n gameState,\n guildAPI,\n authManager,\n permissionManager,\n alphaManager,\n grassManager,\n signingClientManager\n);\nconst genericController = new GenericController(\n gameState\n);\nconst guildController = new GuildController(\n gameState,\n guildAPI,\n grassManager,\n alphaManager\n);\nconst fleetController = new FleetController(\n gameState,\n guildAPI,\n grassManager,\n fleetManager,\n raidManager,\n planetManager,\n mapManager,\n structManager\n);\n\ngameState.alphaBaseMap = new MapComponent(\n gameState,\n signingClientManager,\n structManager,\n taskManager,\n MAP_CONTAINER_IDS.ALPHA_BASE,\n 'alpha-base'\n);\n\ngameState.raidMap = new MapComponent(\n gameState,\n signingClientManager,\n structManager,\n taskManager,\n MAP_CONTAINER_IDS.RAID,\n 'raid'\n);\n\ngameState.previewMap = new MapComponent(\n gameState,\n signingClientManager,\n structManager,\n taskManager,\n MAP_CONTAINER_IDS.PREVIEW,\n 'preview',\n false\n);\n\nMenuPage.gameState = gameState;\nMenuPage.mapManager = mapManager;\nMenuPage.router.registerController(authController);\nMenuPage.router.registerController(accountController);\nMenuPage.router.registerController(genericController);\nMenuPage.router.registerController(guildController);\nMenuPage.router.registerController(fleetController);\nMenuPage.initListeners();\nMenuPage.sui.cheatsheet.setContentBuilder(new CheatsheetContentBuilder(gameState));\n\nNotificationDialogue.initListeners();\n\ngrassManager.init();\nblockGrassManager.registerListener(blockListener);\nblockGrassManager.init();\n\nconst hudContainer = document.getElementById(HUDViewModel.containerId);\n\nawait gameState.load();\ngameState.settings = await guildAPI.getSettings();\ngameState.thisGuild = await guildAPI.getThisGuild();\n\nHUDViewModel.init(gameState, signingClientManager, structManager, taskManager);\nhudContainer.innerHTML = HUDViewModel.render();\nHUDViewModel.initPageCode();\n\nMenuPage.sui.autoInitAll();\n\nif (!gameState.keyPlayers[PLAYER_TYPES.PLAYER].id) {\n MenuPage.router.goto('Auth', 'index');\n\n MenuPage.hideLoadingScreen();\n} else {\n authManager.login(gameState.keyPlayers[PLAYER_TYPES.PLAYER].id).then(() => {\n playerAddressManager.addPlayerAddressMeta().then(() => {\n MenuPage.close();\n MenuPage.router.restore('Fleet', 'index');\n MenuPage.hideLoadingScreen();\n });\n });\n}\n\n// Start the hashing engine after a delay\nnew Promise(resolve => setTimeout(resolve, TASK.START_DELAY)).then(() => window.dispatchEvent(new CustomEvent(EVENTS.TASK_CMD_MANAGER_RESUME)));\n","import {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class AlphaManager {\n\n /**\n * @param gameState\n * @param {SigningClientManager} signingClientManager\n */\n constructor(gameState, signingClientManager) {\n this.gameState = gameState;\n this.signingClientManager = signingClientManager;\n }\n\n /**\n * @param {number} alphaAmount\n * @return {string}\n */\n convertAlphaToUAlpha(alphaAmount) {\n return (BigInt(alphaAmount) * BigInt(1000000)).toString();\n }\n\n /**\n * @param {string} recipientAddress\n * @param {number} alphaAmount\n */\n async transferAlpha(recipientAddress, alphaAmount) {\n await this.signingClientManager.queueMsgPlayerSend(\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.primary_address,\n recipientAddress,\n [{\n denom: \"ualpha\",\n amount: this.convertAlphaToUAlpha(alphaAmount),\n }]\n );\n }\n\n /**\n * @param {number} alphaAmount\n */\n async infuse(alphaAmount) {\n await this.signingClientManager.queueMsgReactorInfuse(\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.primary_address,\n this.gameState.thisGuild.validator,\n {\n denom: \"ualpha\",\n amount: this.convertAlphaToUAlpha(alphaAmount),\n }\n );\n }\n\n /**\n * @param {number} alphaAmount\n */\n async defuse(alphaAmount) {\n await this.signingClientManager.queueMsgReactorDefuse(\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.primary_address,\n this.gameState.thisGuild.validator,\n {\n denom: \"ualpha\",\n amount: this.convertAlphaToUAlpha(alphaAmount),\n }\n );\n }\n}","import {PlayerCreatedListener} from \"../grass_listeners/PlayerCreatedListener\";\nimport {LoginRequestDTO} from \"../dtos/LoginRequestDTO\";\nimport {KeyPlayerOreListener} from \"../grass_listeners/KeyPlayerOreListener\";\nimport {PlayerCapacityListener} from \"../grass_listeners/PlayerCapacityListener\";\nimport {PlayerLoadListener} from \"../grass_listeners/PlayerLoadListener\";\nimport {PlayerStructsLoadListener} from \"../grass_listeners/PlayerStructsLoadListener\";\nimport {ConnectionCapacityListener} from \"../grass_listeners/ConnectionCapacityListener\";\nimport {PlayerAlphaListener} from \"../grass_listeners/PlayerAlphaListener\";\nimport {MenuPage} from \"../framework/MenuPage\";\nimport {PlanetManager} from \"./PlanetManager\";\nimport {NewPlanetListener} from \"../grass_listeners/NewPlanetListener\";\nimport {AddPendingAddressRequestDTO} from \"../dtos/AddPendingAddressRequestDTO\";\nimport {PlayerAddressApprovedLoginListener} from \"../grass_listeners/PlayerAddressApprovedLoginListener\";\nimport {PlayerAddressPendingCreatedListener} from \"../grass_listeners/PlayerAddressPendingCreatedListener\";\nimport {PlayerAddressPendingFactory} from \"../factories/PlayerAddressPendingFactory\";\nimport {SetPendingAddressPermissionsRequestDTO} from \"../dtos/SetPendingAddressPermissionsRequestDTO\";\nimport {PlayerAddressApprovedListener} from \"../grass_listeners/PlayerAddressApprovedListener\";\nimport {PlayerAddressRevokedListener} from \"../grass_listeners/PlayerAddressRevokedListener\";\nimport {AlphaChangeListener} from \"../grass_listeners/AlphaChangeListener\";\nimport {PlanetRaidStatusListener} from \"../grass_listeners/PlanetRaidStatusListener\";\nimport {StructListener} from \"../grass_listeners/StructListener\";\nimport {StructMineStatusListener} from \"../grass_listeners/StructMineStatusListener\";\nimport {StructRefineStatusListener} from \"../grass_listeners/StructRefineStatusListener\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\nimport {KeyPlayerLastActionListener} from \"../grass_listeners/KeyPlayerLastActionListener\";\n\nexport class AuthManager {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {WalletManager} walletManager\n * @param {GrassManager} grassManager\n * @param {SigningClientManager} signingClientManager\n * @param {PlanetManager} planetManager\n * @param {PlayerAddressManager} playerAddressManager\n * @param {PlayerAddressPendingFactory} playerAddressPendingFactory\n * @param {RaidManager} raidManager\n * @param {MapManager} mapManager\n * @param {TaskManager} taskManager\n * @param {StructManager} structManager\n * @param {DestroyedStructManager} destroyedStructManager\n */\n constructor(\n gameState,\n guildAPI,\n walletManager,\n grassManager,\n signingClientManager,\n planetManager,\n playerAddressManager,\n playerAddressPendingFactory,\n raidManager,\n mapManager,\n taskManager,\n structManager,\n destroyedStructManager,\n ) {\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.walletManager = walletManager;\n this.grassManager = grassManager;\n this.signingClientManager = signingClientManager;\n this.planetManager = planetManager;\n this.playerAddressManager = playerAddressManager;\n this.playerAddressPendingFactory = playerAddressPendingFactory;\n this.raidManager = raidManager;\n this.mapManager = mapManager;\n this.taskManager = taskManager;\n this.structManager = structManager;\n this.destroyedStructManager = destroyedStructManager;\n }\n\n /**\n * @param {string} mnemonic\n * @return {Promise}\n */\n async initWallet(mnemonic) {\n this.gameState.wallet = await this.walletManager.createWallet(mnemonic);\n const accounts = await this.gameState.wallet.getAccountsWithPrivkeys();\n this.gameState.signingAccount = accounts[0];\n this.gameState.pubkey = this.walletManager.bytesToHex(this.gameState.signingAccount.pubkey);\n }\n\n /**\n * @param {string} mnemonic\n * @return {Promise}\n */\n async signup(mnemonic) {\n await this.initWallet(mnemonic);\n\n this.gameState.signupRequest.pubkey = this.gameState.pubkey;\n this.gameState.signupRequest.primary_address = this.gameState.signingAccount.address;\n this.gameState.signupRequest.guild_id = this.gameState.thisGuild.id;\n\n const message = this.guildAPI.buildGuildMembershipJoinProxyMessage(\n this.gameState.signupRequest.guild_id,\n this.gameState.signupRequest.primary_address,\n 0\n );\n\n this.gameState.signupRequest.signature = await this.walletManager.createSignatureForProxyMessage(\n message,\n this.gameState.signingAccount.privkey\n );\n\n const playerCreatedListener = new PlayerCreatedListener();\n playerCreatedListener.guildId = this.gameState.signupRequest.guild_id;\n playerCreatedListener.playerAddress = this.gameState.signupRequest.primary_address;\n playerCreatedListener.authManager = this;\n playerCreatedListener.guildAPI = this.guildAPI;\n playerCreatedListener.gameState = this.gameState;\n playerCreatedListener.grassManager = this.grassManager;\n playerCreatedListener.planetManager = this.planetManager;\n\n const newPlanetListener = new NewPlanetListener(\n this.gameState,\n this.guildAPI,\n this.mapManager,\n this.grassManager,\n this.raidManager\n );\n newPlanetListener.redirectControllerName = 'Auth';\n newPlanetListener.redirectPageName = 'orientation1';\n\n // Needs to be registered first because it listens for planet_id whose creation is trigger by playerCreatedListener.\n this.grassManager.registerListener(newPlanetListener);\n\n this.grassManager.registerListener(playerCreatedListener);\n\n const response = await this.guildAPI.signup(this.gameState.signupRequest);\n\n return response.success;\n }\n\n /**\n * @param {string} playerId\n * @return {Promise}\n */\n async login(playerId) {\n const timestamp = await this.guildAPI.getTimestamp();\n\n const request = new LoginRequestDTO();\n request.address = this.gameState.signingAccount.address;\n request.pubkey = this.gameState.pubkey;\n request.guild_id = this.gameState.thisGuild.id;\n request.unix_timestamp = timestamp;\n\n const message = this.guildAPI.buildLoginMessage(\n request.guild_id,\n request.address,\n timestamp\n );\n\n request.signature = await this.walletManager.createSignatureForProxyMessage(\n message,\n this.gameState.signingAccount.privkey\n );\n\n const response = await this.guildAPI.login(request);\n\n console.log('Login response status:', response);\n\n if (response.success) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setId(playerId); // Must be set before registering many GRASS listeners\n\n this.grassManager.registerListener(new KeyPlayerLastActionListener(this.gameState, PLAYER_TYPES.PLAYER));\n this.grassManager.registerListener(new PlayerAlphaListener(this.gameState));\n this.grassManager.registerListener(new KeyPlayerOreListener(this.gameState, this.guildAPI, PLAYER_TYPES.PLAYER));\n this.grassManager.registerListener(new PlayerLoadListener(this.gameState));\n this.grassManager.registerListener(new PlayerStructsLoadListener(this.gameState));\n this.grassManager.registerListener(new PlayerCapacityListener(this.gameState));\n this.grassManager.registerListener(new ConnectionCapacityListener(this.gameState));\n this.grassManager.registerListener(new PlayerAddressRevokedListener(\n this.gameState,\n this.guildAPI,\n this.gameState.signingAccount.address\n ));\n this.grassManager.registerListener(new AlphaChangeListener(this.gameState, this.guildAPI));\n\n // Task related listeners\n this.grassManager.registerListener(new StructListener(\n this.gameState,\n this.guildAPI,\n this.structManager,\n PLAYER_TYPES.PLAYER\n ));\n this.grassManager.registerListener(new StructMineStatusListener(this.gameState));\n this.grassManager.registerListener(new StructRefineStatusListener(this.gameState));\n\n await this.signingClientManager.initSigningClient(this.gameState.wallet);\n await this.playerAddressManager.addPlayerAddressMeta();\n\n this.destroyedStructManager.init();\n\n const [\n player,\n height,\n structTypes,\n fleet,\n structs\n ] = await Promise.all([\n this.guildAPI.getPlayer(playerId),\n this.guildAPI.getPlayerLastActionBlockHeight(playerId),\n this.guildAPI.getStructTypes(),\n this.guildAPI.getFleetByPlayerId(playerId),\n this.guildAPI.getStructsByPlayerId(playerId)\n ]);\n\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setPlayer(player);\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setLastActionBlockHeight(this.gameState.currentBlockHeight, height);\n this.gameState.setStructTypes(structTypes);\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].fleet = fleet;\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setStructs(structs);\n\n if (this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.planet_id) {\n\n const [\n planet,\n shieldInfo,\n planetPlanetRaidInfo,\n raidPlanetRaidInfo\n ] = await Promise.all([\n this.guildAPI.getPlanet(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.planet_id),\n this.guildAPI.getPlanetaryShieldInfo(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.planet_id),\n this.guildAPI.getActivePlanetRaidByPlanetId(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.planet_id),\n this.guildAPI.getActivePlanetRaidByFleetId(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.fleet_id)\n ]);\n\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setPlanet(planet);\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setPlanetShieldInfo(shieldInfo, this.gameState.currentBlockHeight);\n this.gameState.setPlanetPlanetRaidInfo(planetPlanetRaidInfo);\n this.gameState.setRaidPlanetRaidInfo(raidPlanetRaidInfo);\n\n await Promise.all([\n this.raidManager.initPlanetRaider(),\n this.raidManager.initRaidEnemy(),\n ]);\n\n this.grassManager.registerListener(new PlanetRaidStatusListener(\n this.gameState,\n this.guildAPI,\n this.raidManager,\n this.mapManager\n ));\n\n this.mapManager.configureAlphaBaseMap();\n this.gameState.alphaBaseMap.render();\n\n this.mapManager.configureRaidMap();\n this.gameState.raidMap.render();\n\n this.mapManager.showActiveMap();\n\n // Do this last so block height is available\n await this.taskManager.restoreTasksFromDB();\n }\n }\n\n return response.success;\n }\n\n /**\n * @param {string} mnemonic\n * @return {Promise}\n */\n async loginWithMnemonic(mnemonic) {\n try {\n this.gameState.mnemonic = mnemonic;\n await this.initWallet(mnemonic);\n\n const playerId = await this.guildAPI.getPlayerIdByAddressAndGuild(\n this.gameState.signingAccount.address,\n this.gameState.thisGuild.id\n );\n\n return this.login(playerId);\n } catch (error) {\n console.log(error);\n return false;\n }\n }\n\n /**\n * @param {string|null} addressToRevoke\n */\n async revokeAddress(addressToRevoke) {\n this.grassManager.registerListener(new PlayerAddressRevokedListener(\n this.gameState,\n this.guildAPI,\n addressToRevoke\n ));\n\n await this.signingClientManager.queueMsgAddressRevoke(\n addressToRevoke\n );\n }\n\n logout() {\n this.guildAPI.logout().then(() => {\n localStorage.clear();\n MenuPage.router.goto('Auth', 'index');\n MenuPage.open();\n window.location.reload();\n });\n }\n\n /**\n * @param {ActivationCodeInfoDTO} activationCodeInfo\n * @return {Promise}\n */\n async addNewDevice(activationCodeInfo) {\n this.gameState.mnemonic = this.walletManager.createMnemonic();\n\n await this.initWallet(this.gameState.mnemonic);\n\n const message = this.guildAPI.buildAddressRegisterMessage(\n activationCodeInfo.player_id,\n this.gameState.signingAccount.address\n );\n\n const signature = await this.walletManager.createSignatureForProxyMessage(\n message,\n this.gameState.signingAccount.privkey\n );\n\n const request = new AddPendingAddressRequestDTO();\n request.player_id = activationCodeInfo.player_id;\n request.guild_id = this.gameState.thisGuild.id;\n request.code = activationCodeInfo.code;\n request.address = this.gameState.signingAccount.address;\n request.signature = signature;\n request.pubkey = this.gameState.pubkey;\n request.user_agent = window.navigator.userAgent;\n\n const playerAddressApprovedLoginListener = new PlayerAddressApprovedLoginListener(\n this.gameState,\n activationCodeInfo\n );\n this.grassManager.registerListener(playerAddressApprovedLoginListener);\n\n const response = await this.guildAPI.addPendingAddress(request);\n\n return response.success;\n }\n\n /**\n * @param {CreateActivationCodeRequestDTO} request\n * @return {Promise}\n */\n async createActivationCode(request) {\n const response = await this.guildAPI.createActivationCode(request);\n\n let code = 'ERROR';\n\n if (response.success) {\n code = response.data.code;\n\n this.grassManager.registerListener(new PlayerAddressPendingCreatedListener(\n this.playerAddressPendingFactory,\n code\n ));\n }\n\n return code;\n }\n\n /**\n * @param {PlayerAddressPending} playerAddressPending\n * @return {Promise}\n */\n async activateDevice(playerAddressPending) {\n const setPermissionsRequest = new SetPendingAddressPermissionsRequestDTO();\n setPermissionsRequest.code = playerAddressPending.code;\n setPermissionsRequest.address = playerAddressPending.address;\n setPermissionsRequest.permissions = playerAddressPending.permissions;\n\n const response = await this.guildAPI.setPendingAddressPermissions(setPermissionsRequest);\n\n if (!response.success) {\n return false;\n }\n\n const playerAddressApprovedListener = new PlayerAddressApprovedListener(\n this.gameState,\n this.guildAPI,\n playerAddressPending\n );\n this.grassManager.registerListener(playerAddressApprovedListener);\n\n await this.signingClientManager.queueMsgAddressRegister(\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id,\n playerAddressPending.address,\n playerAddressPending.pubkey,\n playerAddressPending.signature,\n playerAddressPending.permissions\n );\n\n await this.guildAPI.deleteActivationCode(playerAddressPending.code);\n\n return true;\n }\n\n}","import {Struct} from \"../models/Struct\";\nimport {SETTING} from \"../constants/SettingConstants\";\nimport {ClearStructTileEvent} from \"../events/ClearStructTileEvent\";\nimport {EVENTS} from \"../constants/Events\";\n\nexport class DestroyedStructManager {\n\n /**\n * @param {GameState} gameState\n * @param {StructManager} structManager\n */\n constructor(gameState, structManager) {\n this.gameState = gameState;\n this.structManager = structManager;\n this.destroyedStructs = {};\n }\n\n /**\n * @param {string} playerType\n * @param {Struct} struct\n */\n track(playerType, struct) {\n if (struct.isDestroyed()) {\n this.destroyedStructs[struct.id] = {\n playerType: playerType,\n struct: struct\n };\n }\n }\n\n /**\n * @param {string} playerType\n */\n trackAll(playerType) {\n Object.keys(this.gameState.keyPlayers[playerType].structs).forEach((structId) => {\n this.track(playerType, this.gameState.keyPlayers[playerType].structs[structId]);\n });\n }\n\n sweep() {\n const sweepDelay = this.gameState.settings.get(SETTING.STRUCT_SWEEP_DELAY);\n const currentBlock = this.gameState.currentBlockHeight;\n const keys = Object.keys(this.destroyedStructs);\n\n for (let i = 0; i < keys.length; i++) {\n\n const item = this.destroyedStructs[keys[i]];\n\n if (item.struct.destroyed_block + sweepDelay < currentBlock) {\n\n delete(this.destroyedStructs[keys[i]]);\n delete this.gameState.keyPlayers[item.playerType].structs[item.struct.id];\n\n const mapId = this.structManager.getMapIdByPlayerTypeAndStruct(item.struct, item.playerType);\n const tileType = this.structManager.getTileTypeFromStruct(item.struct);\n\n if (mapId && tileType) {\n\n window.dispatchEvent(new ClearStructTileEvent(\n mapId,\n tileType,\n item.struct.operating_ambit.toUpperCase(),\n item.struct.slot,\n item.struct.owner\n ));\n\n }\n\n }\n }\n }\n\n init() {\n window.addEventListener(EVENTS.BLOCK_HEIGHT_CHANGED, () => {\n this.sweep();\n });\n\n window.addEventListener(EVENTS.TRACK_DESTROYED_STRUCTS, (event) => {\n this.trackAll(event.playerType);\n });\n\n window.addEventListener(EVENTS.TRACK_DESTROYED_STRUCT, (event) => {\n const struct = this.structManager.getStructById(event.structId);\n if (struct) {\n this.track(event.playerType, struct);\n }\n });\n }\n\n}","\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class FleetManager {\n\n /**\n * @param gameState\n * @param {SigningClientManager} signingClientManager\n */\n constructor(gameState, signingClientManager) {\n this.gameState = gameState;\n this.signingClientManager = signingClientManager;\n }\n\n /**\n * @param {string} destinationLocationId\n */\n async moveFleet(destinationLocationId) {\n await this.signingClientManager.queueMsgFleetMove(\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.fleet_id,\n destinationLocationId\n );\n }\n}","import {PLAYER_MAP_ROLES} from \"../constants/PlayerMapRoles\";\nimport {MAP_CONTAINER_IDS} from \"../constants/MapConstants\";\nimport {HUD_IDS} from \"../constants/HUDConstants\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class MapManager {\n\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n this.gameState = gameState;\n }\n\n configureAlphaBaseMap() {\n this.gameState.alphaBaseMap.setPlanet(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet);\n this.gameState.alphaBaseMap.setDefender(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player);\n this.gameState.alphaBaseMap.setDefenderFleet(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].fleet);\n this.gameState.alphaBaseMap.setAttacker(this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].player);\n this.gameState.alphaBaseMap.setAttackerFleet(this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].fleet);\n this.gameState.alphaBaseMap.setPlayerMapRole(PLAYER_MAP_ROLES.DEFENDER);\n }\n\n configureRaidMap() {\n this.gameState.raidMap.setPlanet(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planet);\n this.gameState.raidMap.setDefender(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].player);\n this.gameState.raidMap.setDefenderFleet(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].fleet);\n this.gameState.raidMap.setAttacker(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player);\n this.gameState.raidMap.setAttackerFleet(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].fleet);\n this.gameState.raidMap.setPlayerMapRole(PLAYER_MAP_ROLES.ATTACKER);\n }\n\n /**\n * @param {Planet} planet\n * @param {Player} defender\n * @param {Player} attacker\n * @param {Fleet} defenderFleet\n * @param {Fleet} attackerFleet\n */\n configurePreviewMap(planet, defender, attacker, defenderFleet, attackerFleet) {\n this.gameState.previewMap.setPlanet(planet);\n this.gameState.previewMap.setDefender(defender);\n this.gameState.previewMap.setDefenderFleet(defenderFleet);\n this.gameState.previewMap.setAttacker(attacker);\n this.gameState.previewMap.setAttackerFleet(attackerFleet);\n this.gameState.previewMap.setPlayerMapRole(PLAYER_MAP_ROLES.SPECTATOR);\n }\n\n hideHUD() {\n Object.values(HUD_IDS).forEach(id => {\n document.getElementById(id).classList.add('hidden');\n });\n }\n\n showHUDForMap(mapContainerId) {\n this.hideHUD();\n\n if (mapContainerId === MAP_CONTAINER_IDS.RAID) {\n document.getElementById(HUD_IDS.STATUS_BAR_TOP_RIGHT_RAID).classList.remove('hidden');\n document.getElementById(HUD_IDS.ACTION_BAR_RAID_ENEMY).classList.remove('hidden');\n } else if (mapContainerId === MAP_CONTAINER_IDS.ALPHA_BASE) {\n document.getElementById(HUD_IDS.STATUS_BAR_TOP_RIGHT_ALPHA_BASE).classList.remove('hidden');\n if (this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].player) {\n document.getElementById(HUD_IDS.ACTION_BAR_ALPHA_BASE_ENEMY).classList.remove('hidden');\n }\n }\n\n if (\n mapContainerId === MAP_CONTAINER_IDS.ALPHA_BASE\n || mapContainerId === MAP_CONTAINER_IDS.RAID\n ) {\n document.getElementById(HUD_IDS.STATUS_BAR_TOP_LEFT).classList.remove('hidden');\n document.getElementById(HUD_IDS.ACTION_BAR_PLAYER).classList.remove('hidden');\n }\n }\n\n /**\n * @param {string} mapContainerId\n */\n showMap(mapContainerId) {\n this.showHUDForMap(mapContainerId);\n\n document.querySelectorAll('.map-container').forEach(mapContainer => {\n mapContainer.classList.add('hidden');\n });\n document.getElementById(mapContainerId).classList.remove('hidden');\n }\n\n showActiveMap() {\n this.showMap(this.gameState.activeMapContainerId);\n }\n}","import {PERMISSIONS} from \"../constants/Permissions\";\n\nexport class PermissionManager {\n\n /**\n * @return {number}\n */\n getDefaultPlayerPermissions() {\n return PERMISSIONS.PLAY\n | PERMISSIONS.SOURCE_ALLOCATION\n | PERMISSIONS.GUILD_MEMBERSHIP\n | PERMISSIONS.SUBSTATION_CONNECTION\n | PERMISSIONS.ALLOCATION_CONNECTION\n | PERMISSIONS.HASH_ALL\n | PERMISSIONS.GUILD_UGC_UPDATE;\n }\n\n /**\n * @return {number}\n */\n getManageDevicesPermissions() {\n return PERMISSIONS.ADMIN\n | PERMISSIONS.UPDATE\n | PERMISSIONS.DELETE;\n }\n\n /**\n * @param {number} initialPermissions\n * @param {array} permissionsToAdd\n * @return {number}\n */\n addPermissions(initialPermissions, permissionsToAdd) {\n return permissionsToAdd.reduce((permissions, permissionToAdd) =>\n permissions | permissionToAdd\n , initialPermissions);\n }\n\n /**\n * @param initialPermissions\n * @param permissionsToRemove\n * @return {*}\n */\n removePermissions(initialPermissions, permissionsToRemove) {\n return permissionsToRemove.reduce((permissions, permissionToRemove) =>\n permissions & ~permissionToRemove\n , initialPermissions);\n }\n}","import {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\nexport class PlanetManager {\n\n /**\n * @param {GameState} gameState\n * @param {SigningClientManager} signingClientManager\n */\n constructor(gameState, signingClientManager) {\n this.gameState = gameState;\n this.signingClientManager = signingClientManager;\n }\n\n async findNewPlanet() {\n await this.signingClientManager.queueMsgPlanetExplore(\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id\n );\n }\n}","import {AddPlayerAddressMetaRequestDTO} from \"../dtos/AddPlayerAddressMetaRequestDTO\";\n\nexport class PlayerAddressManager {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n */\n constructor(gameState, guildAPI) {\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n }\n\n async addPlayerAddressMeta() {\n const request = new AddPlayerAddressMetaRequestDTO();\n request.address = this.gameState.signingAccount.address;\n request.guild_id = this.gameState.thisGuild.id;\n request.user_agent = window.navigator.userAgent;\n\n const response = await this.guildAPI.addPlayerAddressMeta(request);\n\n if (!response.success) {\n console.log(response);\n }\n }\n}","import {KeyPlayerOreListener} from \"../grass_listeners/KeyPlayerOreListener\";\nimport {RaidStatusListener} from \"../grass_listeners/RaidStatusListener\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\nimport {KeyPlayerLastActionListener} from \"../grass_listeners/KeyPlayerLastActionListener\";\nimport {StructListener} from \"../grass_listeners/StructListener\";\n\nexport class RaidManager {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {GrassManager} grassManager\n * @param {MapManager} mapManager\n * @param {StructManager} structManager\n */\n constructor(\n gameState,\n guildAPI,\n grassManager,\n mapManager,\n structManager\n ) {\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.grassManager = grassManager;\n this.mapManager = mapManager;\n this.structManager = structManager;\n }\n\n /**\n * @return {Promise}\n */\n async initRaidEnemy() {\n if (!this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo.isRaidActive()) {\n return;\n }\n\n this.grassManager.registerListener(new RaidStatusListener(this.gameState, this, this.mapManager));\n this.grassManager.registerListener(new KeyPlayerLastActionListener(this.gameState, PLAYER_TYPES.RAID_ENEMY));\n this.grassManager.registerListener(new KeyPlayerOreListener(this.gameState, this.guildAPI, PLAYER_TYPES.RAID_ENEMY));\n\n // Register struct status listener for RAID_ENEMY's planet\n this.grassManager.registerListener(new StructListener(\n this.gameState,\n this.guildAPI,\n this.structManager,\n PLAYER_TYPES.RAID_ENEMY\n ));\n\n const [\n player,\n height,\n planet,\n shieldInfo,\n raidEnemyFleet,\n playerFleet, // Needs updating as fleet would be away now\n structs,\n ] = await Promise.all([\n this.guildAPI.getPlayer(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].id),\n this.guildAPI.getPlayerLastActionBlockHeight(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].id),\n this.guildAPI.getPlanet(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo.planet_id),\n this.guildAPI.getPlanetaryShieldInfo(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo.planet_id),\n this.guildAPI.getFleetByPlayerId(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].id),\n this.guildAPI.getFleetByPlayerId(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id),\n this.guildAPI.getStructsByPlayerId(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].id)\n ]);\n\n this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].setPlayer(player);\n this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].setLastActionBlockHeight(this.gameState.currentBlockHeight, height);\n this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].setPlanet(planet);\n this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].setPlanetShieldInfo(shieldInfo, this.gameState.currentBlockHeight);\n this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].fleet = raidEnemyFleet;\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].fleet = playerFleet;\n this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].setStructs(structs);\n }\n\n /**\n * @return {Promise}\n */\n async initPlanetRaider() {\n if (!this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planetRaidInfo.isRaidActive()) {\n return;\n }\n\n this.grassManager.registerListener(new KeyPlayerLastActionListener(this.gameState, PLAYER_TYPES.PLANET_RAIDER));\n\n const [\n player,\n height,\n fleet,\n structs,\n shieldInfo\n ] = await Promise.all([\n this.guildAPI.getPlayer(this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].id),\n this.guildAPI.getPlayerLastActionBlockHeight(this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].id),\n this.guildAPI.getFleetByPlayerId(this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].id),\n this.guildAPI.getStructsByPlayerId(this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].id),\n this.guildAPI.getPlanetaryShieldInfo(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planetRaidInfo.planet_id),\n ]);\n\n this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].setPlayer(player);\n this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].setLastActionBlockHeight(this.gameState.currentBlockHeight, height);\n this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].fleet = fleet;\n this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].setStructs(structs);\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setPlanetShieldInfo(shieldInfo, this.gameState.currentBlockHeight);\n }\n\n async refreshRaidFleet() {\n this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].fleet = await this.guildAPI.getFleetByPlayerId(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].id);\n this.gameState.raidMap.setDefenderFleet(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].fleet);\n }\n}","import {Registry} from \"@cosmjs/proto-signing\";\nimport {defaultRegistryTypes, SigningStargateClient} from \"@cosmjs/stargate\";\n// noinspection ES6PreferShortImport\nimport {msgTypes} from \"../ts/structs.structs/registry\";\nimport {\n MsgAddressRegister,\n MsgPlanetExplore,\n MsgPlanetRaidComplete,\n MsgPlanetUpdateName,\n MsgAddressRevoke,\n MsgFleetMove,\n MsgAllocationCreate,\n MsgAllocationDelete,\n MsgAllocationUpdate,\n MsgAllocationTransfer,\n MsgGuildCreate,\n MsgGuildBankMint,\n MsgGuildBankRedeem,\n MsgGuildBankConfiscateAndBurn,\n MsgGuildUpdateOwnerId,\n MsgGuildUpdateEntrySubstationId,\n MsgGuildUpdateEndpoint,\n MsgGuildUpdateJoinInfusionMinimum,\n MsgGuildUpdateJoinInfusionMinimumBypassByInvite,\n MsgGuildUpdateJoinInfusionMinimumBypassByRequest,\n MsgGuildUpdateEntryRank,\n MsgGuildUpdateName,\n MsgGuildUpdatePfp,\n MsgGuildMembershipInvite,\n MsgGuildMembershipInviteApprove,\n MsgGuildMembershipInviteDeny,\n MsgGuildMembershipInviteRevoke,\n MsgGuildMembershipJoin,\n MsgGuildMembershipJoinProxy,\n MsgGuildMembershipKick,\n MsgGuildMembershipRequest,\n MsgGuildMembershipRequestApprove,\n MsgGuildMembershipRequestDeny,\n MsgGuildMembershipRequestRevoke,\n MsgPermissionGrantOnObject,\n MsgPermissionGrantOnAddress,\n MsgPermissionRevokeOnObject,\n MsgPermissionRevokeOnAddress,\n MsgPermissionSetOnObject,\n MsgPermissionSetOnAddress,\n MsgPermissionGuildRankSet,\n MsgPermissionGuildRankRevoke,\n MsgPlayerUpdatePrimaryAddress,\n MsgPlayerUpdateGuildRank,\n MsgPlayerUpdateName,\n MsgPlayerUpdatePfp,\n MsgPlayerSend,\n MsgStructActivate,\n MsgStructDeactivate,\n MsgStructBuildInitiate,\n MsgStructBuildCancel,\n MsgStructBuildComplete,\n MsgStructDefenseSet,\n MsgStructDefenseClear,\n MsgStructMove,\n MsgStructOreMinerComplete,\n MsgStructOreRefineryComplete,\n MsgStructAttack,\n MsgStructStealthActivate,\n MsgStructStealthDeactivate,\n MsgStructGeneratorInfuse,\n MsgSubstationCreate,\n MsgSubstationDelete,\n MsgSubstationAllocationConnect,\n MsgSubstationAllocationDisconnect,\n MsgSubstationPlayerConnect,\n MsgSubstationPlayerDisconnect,\n MsgSubstationPlayerMigrate,\n MsgSubstationUpdateName,\n MsgSubstationUpdatePfp,\n MsgAgreementOpen,\n MsgAgreementClose,\n MsgAgreementCapacityIncrease,\n MsgAgreementCapacityDecrease,\n MsgAgreementDurationIncrease,\n MsgProviderCreate,\n MsgProviderWithdrawBalance,\n MsgProviderUpdateCapacityMinimum,\n MsgProviderUpdateCapacityMaximum,\n MsgProviderUpdateDurationMinimum,\n MsgProviderUpdateDurationMaximum,\n MsgProviderUpdateAccessPolicy,\n MsgProviderDelete,\n MsgReactorInfuse,\n MsgReactorBeginMigration,\n MsgReactorDefuse,\n MsgReactorCancelDefusion\n} from \"../ts/structs.structs/types/structs/structs/tx\";\nimport {EVENTS} from \"../constants/Events\";\nimport {FEE} from \"../constants/Fee\";\nimport {AMBIT_ENUM} from \"../constants/Ambits\";\nimport {TASK} from \"../constants/TaskConstants\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\nimport {LOCATION_TYPE_INDEX} from \"../constants/LocationTypes\";\n\nexport class SigningClientManager {\n\n /**\n * @param {GameState} gameState\n */\n constructor(gameState, debug = false) {\n console.info('Initiating Signing Client Manager');\n this.gameState = gameState;\n\n // TODO Make this value more dynamic\n // Possibly a database setting or env, provided via server\n //this.wsUrl = `ws://${window.location.hostname}:26657`;\n this.debug = debug;\n this.wsUrl = debug\n ? `ws://reactor.oh.energy:26657`\n : `ws://${window.location.hostname}:26657`;\n\n this.registry = new Registry([...defaultRegistryTypes, ...msgTypes]);\n\n this.messageQueue = [];\n this.lastBroadcastHeight = 0;\n\n window.addEventListener(EVENTS.BLOCK_HEIGHT_CHANGED, async function (event) {\n await this.transactQueue();\n }.bind(this));\n\n }\n\n /**\n * @param {DirectSecp256k1HdWallet} wallet\n * @return {Promise}\n */\n async initSigningClient(wallet) {\n console.debug(\"Initializing signing client...\");\n this.gameState.signingClient = await SigningStargateClient.connectWithSigner(\n this.wsUrl,\n wallet,\n {\n registry: this.registry,\n },\n );\n console.info(\"Signing client initialized.\");\n }\n\n async transactQueue() {\n if (this.lastBroadcastHeight < this.gameState.currentBlockHeight) {\n this.lastBroadcastHeight = this.gameState.currentBlockHeight\n if (this.messageQueue.length > 0) {\n\n /* Temporary Fix to prevent batching\n let processMessageQueue = [...this.messageQueue];\n this.messageQueue.splice(0,processMessageQueue.length);\n */\n let processMessageQueue = [this.messageQueue[0]];\n this.messageQueue.splice(0,processMessageQueue.length);\n\n\n console.debug('Running TransactQueue');\n console.info(processMessageQueue);\n // TODO establish a maximum of messages to include in a single transaction\n try {\n const response = await this.gameState.signingClient.signAndBroadcast(\n this.gameState.signingAccount.address,\n processMessageQueue,\n FEE\n );\n\n if (this.debug) {\n if (response.code === 0 ) {\n console.debug('Transaction Successful: Code 0');\n } else {\n console.warn('Transaction Failed: Code ', response.code);\n }\n\n console.debug('Transaction Hash:', response.transactionHash);\n console.debug('Height:', response.height);\n console.debug('Msg Responses:', response.msgResponses.map(msg => ({\n typeUrl: msg.typeUrl,\n value: this.registry.decode(msg)\n })));\n console.debug('Events:', response.events);\n\n }\n } catch (error) {\n console.warn('Sign and Broadcast Error:', error);\n }\n }\n }\n }\n\n /**\n * @param {object} msg\n * @return {string}\n */\n async queue(msg) {\n this.messageQueue.push(msg);\n await this.transactQueue();\n }\n\n /**\n * @param {string} fromAddress\n * @param {string} toAddress\n * @param {Array<{denom: string, amount: string}>} amount\n */\n async queueMsgPlayerSend(fromAddress, toAddress, amount) {\n this.queue({\n typeUrl: '/structs.structs.MsgPlayerSend',\n value: MsgPlayerSend.fromPartial({\n creator: this.gameState.signingAccount.address,\n fromAddress: fromAddress,\n toAddress: toAddress,\n amount: amount\n }),\n });\n }\n\n /**\n * @param {string} playerId\n */\n async queueMsgPlanetExplore(playerId) {\n this.queue({\n typeUrl: '/structs.structs.MsgPlanetExplore',\n value: MsgPlanetExplore.fromPartial({\n creator: this.gameState.signingAccount.address,\n playerId: playerId\n }),\n });\n }\n\n /**\n * @param {string} playerId\n * @param {string} addressToRegister\n * @param {string} proofPubKey\n * @param {string} proofSignature\n * @param {number} permissions\n */\n async queueMsgAddressRegister(playerId, addressToRegister, proofPubKey, proofSignature, permissions) {\n this.queue({\n typeUrl: '/structs.structs.MsgAddressRegister',\n value: MsgAddressRegister.fromPartial({\n creator: this.gameState.signingAccount.address,\n playerId: playerId,\n address: addressToRegister,\n proofPubKey: proofPubKey,\n proofSignature: proofSignature,\n permissions: permissions\n }),\n });\n }\n\n /**\n * @param {string} addressToRevoke\n */\n async queueMsgAddressRevoke(addressToRevoke) {\n this.queue({\n typeUrl: '/structs.structs.MsgAddressRevoke',\n value: MsgAddressRevoke.fromPartial({\n creator: this.gameState.signingAccount.address,\n address: addressToRevoke\n }),\n });\n }\n\n /**\n * @param {string} fleetId\n * @param {string} destinationLocationId\n */\n async queueMsgFleetMove(fleetId, destinationLocationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgFleetMove',\n value: MsgFleetMove.fromPartial({\n creator: this.gameState.signingAccount.address,\n fleetId: fleetId,\n destinationLocationId: destinationLocationId\n }),\n });\n }\n\n /**\n * @param {string} fleetId\n * @param {string} proof\n * @param {string} nonce\n */\n async queueMsgPlanetRaidComplete(fleetId, proof, nonce) {\n this.queue({\n typeUrl: '/structs.structs.MsgPlanetRaidComplete',\n value: MsgPlanetRaidComplete.fromPartial({\n creator: this.gameState.signingAccount.address,\n fleetId: fleetId,\n proof: proof,\n nonce: nonce\n }),\n });\n }\n\n /**\n * @param {string} planetId\n * @param {string} name\n */\n async queueMsgPlanetUpdateName(planetId, name) {\n this.queue({\n typeUrl: '/structs.structs.MsgPlanetUpdateName',\n value: MsgPlanetUpdateName.fromPartial({\n creator: this.gameState.signingAccount.address,\n planetId: planetId,\n name: name\n }),\n });\n }\n\n /**\n * @param {string} structId\n * @param {string} proof\n * @param {string} nonce\n */\n async queueMsgStructBuildComplete(structId, proof, nonce) {\n this.queue({\n typeUrl: '/structs.structs.MsgStructBuildComplete',\n value: MsgStructBuildComplete.fromPartial({\n creator: this.gameState.signingAccount.address,\n structId: structId,\n proof: proof,\n nonce: nonce\n }),\n });\n }\n\n /**\n * @param {string} structId\n * @param {string} proof\n * @param {string} nonce\n */\n async queueMsgStructOreMinerComplete(structId, proof, nonce) {\n this.queue({\n typeUrl: '/structs.structs.MsgStructOreMinerComplete',\n value: MsgStructOreMinerComplete.fromPartial({\n creator: this.gameState.signingAccount.address,\n structId: structId,\n proof: proof,\n nonce: nonce\n }),\n });\n }\n\n /**\n * @param {string} structId\n * @param {string} proof\n * @param {string} nonce\n */\n async queueMsgStructOreRefineryComplete(structId, proof, nonce) {\n this.queue({\n typeUrl: '/structs.structs.MsgStructOreRefineryComplete',\n value: MsgStructOreRefineryComplete.fromPartial({\n creator: this.gameState.signingAccount.address,\n structId: structId,\n proof: proof,\n nonce: nonce\n }),\n });\n }\n\n /**\n * @param {string} controller\n * @param {string} sourceObjectId\n * @param {string} allocationType\n * @param {number} power\n */\n async queueMsgAllocationCreate(controller, sourceObjectId, allocationType, power) {\n this.queue({\n typeUrl: '/structs.structs.MsgAllocationCreate',\n value: MsgAllocationCreate.fromPartial({\n creator: this.gameState.signingAccount.address,\n controller: controller,\n sourceObjectId: sourceObjectId,\n allocationType: allocationType,\n power: power\n }),\n });\n }\n\n /**\n * @param {string} allocationId\n */\n async queueMsgAllocationDelete(allocationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgAllocationDelete',\n value: MsgAllocationDelete.fromPartial({\n creator: this.gameState.signingAccount.address,\n allocationId: allocationId\n }),\n });\n }\n\n /**\n * @param {string} allocationId\n * @param {number} power\n */\n async queueMsgAllocationUpdate(allocationId, power) {\n this.queue({\n typeUrl: '/structs.structs.MsgAllocationUpdate',\n value: MsgAllocationUpdate.fromPartial({\n creator: this.gameState.signingAccount.address,\n allocationId: allocationId,\n power: power\n }),\n });\n }\n\n /**\n * @param {string} allocationId\n * @param {string} controller\n */\n async queueMsgAllocationTransfer(allocationId, controller) {\n this.queue({\n typeUrl: '/structs.structs.MsgAllocationTransfer',\n value: MsgAllocationTransfer.fromPartial({\n creator: this.gameState.signingAccount.address,\n allocationId: allocationId,\n controller: controller\n }),\n });\n }\n\n /**\n * @param {number} amountAlpha\n * @param {number} amountToken\n */\n async queueMsgGuildBankMint(amountAlpha, amountToken) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildBankMint',\n value: MsgGuildBankMint.fromPartial({\n creator: this.gameState.signingAccount.address,\n amountAlpha: amountAlpha,\n amountToken: amountToken\n }),\n });\n }\n\n /**\n * @param {{denom: string, amount: string}} amountToken\n */\n async queueMsgGuildBankRedeem(amountToken) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildBankRedeem',\n value: MsgGuildBankRedeem.fromPartial({\n creator: this.gameState.signingAccount.address,\n amountToken: amountToken\n }),\n });\n }\n\n /**\n * @param {string} address\n * @param {number} amountToken\n */\n async queueMsgGuildBankConfiscateAndBurn(address, amountToken) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildBankConfiscateAndBurn',\n value: MsgGuildBankConfiscateAndBurn.fromPartial({\n creator: this.gameState.signingAccount.address,\n address: address,\n amountToken: amountToken\n }),\n });\n }\n\n /**\n * @param {string} reactorId\n * @param {string} endpoint\n * @param {string} entrySubstationId\n */\n async queueMsgGuildCreate(reactorId, endpoint, entrySubstationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildCreate',\n value: MsgGuildCreate.fromPartial({\n creator: this.gameState.signingAccount.address,\n reactorId: reactorId,\n endpoint: endpoint,\n entrySubstationId: entrySubstationId\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} entrySubstationId\n */\n async queueMsgGuildUpdateEntrySubstationId(guildId, entrySubstationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildUpdateEntrySubstationId',\n value: MsgGuildUpdateEntrySubstationId.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n entrySubstationId: entrySubstationId\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} owner\n */\n async queueMsgGuildUpdateOwnerId(guildId, owner) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildUpdateOwnerId',\n value: MsgGuildUpdateOwnerId.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n owner: owner\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} endpoint\n */\n async queueMsgGuildUpdateEndpoint(guildId, endpoint) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildUpdateEndpoint',\n value: MsgGuildUpdateEndpoint.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n endpoint: endpoint\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} name\n */\n async queueMsgGuildUpdateName(guildId, name) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildUpdateName',\n value: MsgGuildUpdateName.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n name: name\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} pfp\n */\n async queueMsgGuildUpdatePfp(guildId, pfp) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildUpdatePfp',\n value: MsgGuildUpdatePfp.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n pfp: pfp\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {number} joinInfusionMinimum\n */\n async queueMsgGuildUpdateJoinInfusionMinimum(guildId, joinInfusionMinimum) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildUpdateJoinInfusionMinimum',\n value: MsgGuildUpdateJoinInfusionMinimum.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n joinInfusionMinimum: joinInfusionMinimum\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {number} guildJoinBypassLevel\n */\n async queueMsgGuildUpdateJoinInfusionMinimumBypassByInvite(guildId, guildJoinBypassLevel) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildUpdateJoinInfusionMinimumBypassByInvite',\n value: MsgGuildUpdateJoinInfusionMinimumBypassByInvite.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n guildJoinBypassLevel: guildJoinBypassLevel\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {number} guildJoinBypassLevel\n */\n async queueMsgGuildUpdateJoinInfusionMinimumBypassByRequest(guildId, guildJoinBypassLevel) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildUpdateJoinInfusionMinimumBypassByRequest',\n value: MsgGuildUpdateJoinInfusionMinimumBypassByRequest.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n guildJoinBypassLevel: guildJoinBypassLevel\n }),\n });\n }\n\n /**\n * @param {number} newEntryRank\n */\n async queueMsgGuildUpdateEntryRank(newEntryRank) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildUpdateEntryRank',\n value: MsgGuildUpdateEntryRank.fromPartial({\n creator: this.gameState.signingAccount.address,\n newEntryRank: newEntryRank\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} playerId\n * @param {string} substationId\n */\n async queueMsgGuildMembershipInvite(guildId, playerId, substationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildMembershipInvite',\n value: MsgGuildMembershipInvite.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n playerId: playerId,\n substationId: substationId\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} playerId\n * @param {string} substationId\n */\n async queueMsgGuildMembershipInviteApprove(guildId, playerId, substationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildMembershipInviteApprove',\n value: MsgGuildMembershipInviteApprove.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n playerId: playerId,\n substationId: substationId\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} playerId\n */\n async queueMsgGuildMembershipInviteDeny(guildId, playerId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildMembershipInviteDeny',\n value: MsgGuildMembershipInviteDeny.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n playerId: playerId\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} playerId\n */\n async queueMsgGuildMembershipInviteRevoke(guildId, playerId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildMembershipInviteRevoke',\n value: MsgGuildMembershipInviteRevoke.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n playerId: playerId\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} playerId\n * @param {string} substationId\n * @param {string[]} infusionId\n */\n async queueMsgGuildMembershipJoin(guildId, playerId, substationId, infusionId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildMembershipJoin',\n value: MsgGuildMembershipJoin.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n playerId: playerId,\n substationId: substationId,\n infusionId: infusionId\n }),\n });\n }\n\n /**\n * @param {string} address\n * @param {string} substationId\n * @param {string} proofPubKey\n * @param {string} proofSignature\n * @param {string} playerName\n * @param {string} playerPfp\n */\n async queueMsgGuildMembershipJoinProxy(address, substationId, proofPubKey, proofSignature, playerName, playerPfp) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildMembershipJoinProxy',\n value: MsgGuildMembershipJoinProxy.fromPartial({\n creator: this.gameState.signingAccount.address,\n address: address,\n substationId: substationId,\n proofPubKey: proofPubKey,\n proofSignature: proofSignature,\n playerName: playerName,\n playerPfp: playerPfp\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} playerId\n */\n async queueMsgGuildMembershipKick(guildId, playerId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildMembershipKick',\n value: MsgGuildMembershipKick.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n playerId: playerId\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} playerId\n * @param {string} substationId\n */\n async queueMsgGuildMembershipRequest(guildId, playerId, substationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildMembershipRequest',\n value: MsgGuildMembershipRequest.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n playerId: playerId,\n substationId: substationId\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} playerId\n * @param {string} substationId\n */\n async queueMsgGuildMembershipRequestApprove(guildId, playerId, substationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildMembershipRequestApprove',\n value: MsgGuildMembershipRequestApprove.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n playerId: playerId,\n substationId: substationId\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} playerId\n */\n async queueMsgGuildMembershipRequestDeny(guildId, playerId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildMembershipRequestDeny',\n value: MsgGuildMembershipRequestDeny.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n playerId: playerId\n }),\n });\n }\n\n /**\n * @param {string} guildId\n * @param {string} playerId\n */\n async queueMsgGuildMembershipRequestRevoke(guildId, playerId) {\n this.queue({\n typeUrl: '/structs.structs.MsgGuildMembershipRequestRevoke',\n value: MsgGuildMembershipRequestRevoke.fromPartial({\n creator: this.gameState.signingAccount.address,\n guildId: guildId,\n playerId: playerId\n }),\n });\n }\n\n /**\n * @param {string} objectId\n * @param {string} playerId\n * @param {number} permissions\n */\n async queueMsgPermissionGrantOnObject(objectId, playerId, permissions) {\n this.queue({\n typeUrl: '/structs.structs.MsgPermissionGrantOnObject',\n value: MsgPermissionGrantOnObject.fromPartial({\n creator: this.gameState.signingAccount.address,\n objectId: objectId,\n playerId: playerId,\n permissions: permissions\n }),\n });\n }\n\n /**\n * @param {string} address\n * @param {number} permissions\n */\n async queueMsgPermissionGrantOnAddress(address, permissions) {\n this.queue({\n typeUrl: '/structs.structs.MsgPermissionGrantOnAddress',\n value: MsgPermissionGrantOnAddress.fromPartial({\n creator: this.gameState.signingAccount.address,\n address: address,\n permissions: permissions\n }),\n });\n }\n\n /**\n * @param {string} objectId\n * @param {string} playerId\n * @param {number} permissions\n */\n async queueMsgPermissionRevokeOnObject(objectId, playerId, permissions) {\n this.queue({\n typeUrl: '/structs.structs.MsgPermissionRevokeOnObject',\n value: MsgPermissionRevokeOnObject.fromPartial({\n creator: this.gameState.signingAccount.address,\n objectId: objectId,\n playerId: playerId,\n permissions: permissions\n }),\n });\n }\n\n /**\n * @param {string} address\n * @param {number} permissions\n */\n async queueMsgPermissionRevokeOnAddress(address, permissions) {\n this.queue({\n typeUrl: '/structs.structs.MsgPermissionRevokeOnAddress',\n value: MsgPermissionRevokeOnAddress.fromPartial({\n creator: this.gameState.signingAccount.address,\n address: address,\n permissions: permissions\n }),\n });\n }\n\n /**\n * @param {string} objectId\n * @param {string} playerId\n * @param {number} permissions\n */\n async queueMsgPermissionSetOnObject(objectId, playerId, permissions) {\n this.queue({\n typeUrl: '/structs.structs.MsgPermissionSetOnObject',\n value: MsgPermissionSetOnObject.fromPartial({\n creator: this.gameState.signingAccount.address,\n objectId: objectId,\n playerId: playerId,\n permissions: permissions\n }),\n });\n }\n\n /**\n * @param {string} address\n * @param {number} permissions\n */\n async queueMsgPermissionSetOnAddress(address, permissions) {\n this.queue({\n typeUrl: '/structs.structs.MsgPermissionSetOnAddress',\n value: MsgPermissionSetOnAddress.fromPartial({\n creator: this.gameState.signingAccount.address,\n address: address,\n permissions: permissions\n }),\n });\n }\n\n /**\n * @param {string} objectId\n * @param {string} guildId\n * @param {number} permission\n * @param {number} rank\n */\n async queueMsgPermissionGuildRankSet(objectId, guildId, permission, rank) {\n this.queue({\n typeUrl: '/structs.structs.MsgPermissionGuildRankSet',\n value: MsgPermissionGuildRankSet.fromPartial({\n creator: this.gameState.signingAccount.address,\n objectId: objectId,\n guildId: guildId,\n permission: permission,\n rank: rank\n }),\n });\n }\n\n /**\n * @param {string} objectId\n * @param {string} guildId\n * @param {number} permission\n */\n async queueMsgPermissionGuildRankRevoke(objectId, guildId, permission) {\n this.queue({\n typeUrl: '/structs.structs.MsgPermissionGuildRankRevoke',\n value: MsgPermissionGuildRankRevoke.fromPartial({\n creator: this.gameState.signingAccount.address,\n objectId: objectId,\n guildId: guildId,\n permission: permission\n }),\n });\n }\n\n /**\n * @param {string} primaryAddress\n */\n async queueMsgPlayerUpdatePrimaryAddress(primaryAddress) {\n this.queue({\n typeUrl: '/structs.structs.MsgPlayerUpdatePrimaryAddress',\n value: MsgPlayerUpdatePrimaryAddress.fromPartial({\n creator: this.gameState.signingAccount.address,\n primaryAddress: primaryAddress\n }),\n });\n }\n\n /**\n * @param {string} playerId\n * @param {number} guildRank\n */\n async queueMsgPlayerUpdateGuildRank(playerId, guildRank) {\n this.queue({\n typeUrl: '/structs.structs.MsgPlayerUpdateGuildRank',\n value: MsgPlayerUpdateGuildRank.fromPartial({\n creator: this.gameState.signingAccount.address,\n playerId: playerId,\n guildRank: guildRank\n }),\n });\n }\n\n /**\n * @param {string} playerId\n * @param {string} name\n */\n async queueMsgPlayerUpdateName(playerId, name) {\n this.queue({\n typeUrl: '/structs.structs.MsgPlayerUpdateName',\n value: MsgPlayerUpdateName.fromPartial({\n creator: this.gameState.signingAccount.address,\n playerId: playerId,\n name: name\n }),\n });\n }\n\n /**\n * @param {string} playerId\n * @param {string} pfp\n */\n async queueMsgPlayerUpdatePfp(playerId, pfp) {\n this.queue({\n typeUrl: '/structs.structs.MsgPlayerUpdatePfp',\n value: MsgPlayerUpdatePfp.fromPartial({\n creator: this.gameState.signingAccount.address,\n playerId: playerId,\n pfp: pfp\n }),\n });\n }\n\n /**\n * @param {string} structId\n */\n async queueMsgStructActivate(structId) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setLastActionBlockHeight(this.gameState.currentBlockHeight, this.gameState.currentBlockHeight + 1);\n this.queue({\n typeUrl: '/structs.structs.MsgStructActivate',\n value: MsgStructActivate.fromPartial({\n creator: this.gameState.signingAccount.address,\n structId: structId\n }),\n });\n }\n\n /**\n * @param {string} structId\n */\n async queueMsgStructDeactivate(structId) {\n this.queue({\n typeUrl: '/structs.structs.MsgStructDeactivate',\n value: MsgStructDeactivate.fromPartial({\n creator: this.gameState.signingAccount.address,\n structId: structId\n }),\n });\n }\n\n /**\n * @param {string} playerId\n * @param {number} structTypeId\n * @param {string} operatingAmbit\n * @param {number} slot\n */\n async queueMsgStructBuildInitiate(playerId, structTypeId, operatingAmbit, slot) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setLastActionBlockHeight(this.gameState.currentBlockHeight, this.gameState.currentBlockHeight + 1);\n const ambitNumber = AMBIT_ENUM[operatingAmbit.toUpperCase()];\n this.queue({\n typeUrl: '/structs.structs.MsgStructBuildInitiate',\n value: MsgStructBuildInitiate.fromPartial({\n creator: this.gameState.signingAccount.address,\n playerId: playerId,\n structTypeId: structTypeId,\n operatingAmbit: ambitNumber,\n slot: slot\n }),\n });\n }\n\n /**\n * @param {string} structId\n */\n async queueMsgStructBuildCancel(structId) {\n this.queue({\n typeUrl: '/structs.structs.MsgStructBuildCancel',\n value: MsgStructBuildCancel.fromPartial({\n creator: this.gameState.signingAccount.address,\n structId: structId\n }),\n });\n }\n\n /**\n * @param {string} defenderStructId\n * @param {string} protectedStructId\n */\n async queueMsgStructDefenseSet(defenderStructId, protectedStructId) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setLastActionBlockHeight(this.gameState.currentBlockHeight, this.gameState.currentBlockHeight + 1);\n this.queue({\n typeUrl: '/structs.structs.MsgStructDefenseSet',\n value: MsgStructDefenseSet.fromPartial({\n creator: this.gameState.signingAccount.address,\n defenderStructId: defenderStructId,\n protectedStructId: protectedStructId\n }),\n });\n }\n\n /**\n * @param {string} defenderStructId\n */\n async queueMsgStructDefenseClear(defenderStructId) {\n this.queue({\n typeUrl: '/structs.structs.MsgStructDefenseClear',\n value: MsgStructDefenseClear.fromPartial({\n creator: this.gameState.signingAccount.address,\n defenderStructId: defenderStructId\n }),\n });\n }\n\n /**\n * @param {string} structId\n * @param {string} locationType\n * @param {string} ambit\n * @param {number} slot\n */\n async queueMsgStructMove(structId, locationType, ambit, slot) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setLastActionBlockHeight(this.gameState.currentBlockHeight, this.gameState.currentBlockHeight + 1);\n const locationTypeIndex = LOCATION_TYPE_INDEX[locationType.toLowerCase()];\n const ambitNumber = AMBIT_ENUM[ambit.toUpperCase()];\n this.queue({\n typeUrl: '/structs.structs.MsgStructMove',\n value: MsgStructMove.fromPartial({\n creator: this.gameState.signingAccount.address,\n structId: structId,\n locationType: locationTypeIndex,\n ambit: ambitNumber,\n slot: slot\n }),\n });\n }\n\n /**\n * @param {string} operatingStructId\n * @param {string[]} targetStructId\n * @param {string} weaponSystem\n */\n async queueMsgStructAttack(operatingStructId, targetStructId, weaponSystem) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setLastActionBlockHeight(this.gameState.currentBlockHeight, this.gameState.currentBlockHeight + 1);\n this.queue({\n typeUrl: '/structs.structs.MsgStructAttack',\n value: MsgStructAttack.fromPartial({\n creator: this.gameState.signingAccount.address,\n operatingStructId: operatingStructId,\n targetStructId: targetStructId,\n weaponSystem: weaponSystem\n }),\n });\n }\n\n /**\n * @param {string} structId\n */\n async queueMsgStructStealthActivate(structId) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setLastActionBlockHeight(this.gameState.currentBlockHeight, this.gameState.currentBlockHeight + 1);\n this.queue({\n typeUrl: '/structs.structs.MsgStructStealthActivate',\n value: MsgStructStealthActivate.fromPartial({\n creator: this.gameState.signingAccount.address,\n structId: structId\n }),\n });\n }\n\n /**\n * @param {string} structId\n */\n async queueMsgStructStealthDeactivate(structId) {\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].setLastActionBlockHeight(this.gameState.currentBlockHeight, this.gameState.currentBlockHeight + 1);\n this.queue({\n typeUrl: '/structs.structs.MsgStructStealthDeactivate',\n value: MsgStructStealthDeactivate.fromPartial({\n creator: this.gameState.signingAccount.address,\n structId: structId\n }),\n });\n }\n\n /**\n * @param {string} structId\n * @param {string} infuseAmount\n */\n async queueMsgStructGeneratorInfuse(structId, infuseAmount) {\n this.queue({\n typeUrl: '/structs.structs.MsgStructGeneratorInfuse',\n value: MsgStructGeneratorInfuse.fromPartial({\n creator: this.gameState.signingAccount.address,\n structId: structId,\n infuseAmount: infuseAmount\n }),\n });\n }\n\n /**\n * @param {string} owner\n * @param {string} allocationId\n */\n async queueMsgSubstationCreate(owner, allocationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgSubstationCreate',\n value: MsgSubstationCreate.fromPartial({\n creator: this.gameState.signingAccount.address,\n owner: owner,\n allocationId: allocationId\n }),\n });\n }\n\n /**\n * @param {string} substationId\n * @param {string} name\n */\n async queueMsgSubstationUpdateName(substationId, name) {\n this.queue({\n typeUrl: '/structs.structs.MsgSubstationUpdateName',\n value: MsgSubstationUpdateName.fromPartial({\n creator: this.gameState.signingAccount.address,\n substationId: substationId,\n name: name\n }),\n });\n }\n\n /**\n * @param {string} substationId\n * @param {string} pfp\n */\n async queueMsgSubstationUpdatePfp(substationId, pfp) {\n this.queue({\n typeUrl: '/structs.structs.MsgSubstationUpdatePfp',\n value: MsgSubstationUpdatePfp.fromPartial({\n creator: this.gameState.signingAccount.address,\n substationId: substationId,\n pfp: pfp\n }),\n });\n }\n\n /**\n * @param {string} substationId\n * @param {string} migrationSubstationId\n */\n async queueMsgSubstationDelete(substationId, migrationSubstationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgSubstationDelete',\n value: MsgSubstationDelete.fromPartial({\n creator: this.gameState.signingAccount.address,\n substationId: substationId,\n migrationSubstationId: migrationSubstationId\n }),\n });\n }\n\n /**\n * @param {string} allocationId\n * @param {string} destinationId\n */\n async queueMsgSubstationAllocationConnect(allocationId, destinationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgSubstationAllocationConnect',\n value: MsgSubstationAllocationConnect.fromPartial({\n creator: this.gameState.signingAccount.address,\n allocationId: allocationId,\n destinationId: destinationId\n }),\n });\n }\n\n /**\n * @param {string} allocationId\n */\n async queueMsgSubstationAllocationDisconnect(allocationId) {\n this.queue({\n typeUrl: '/structs.structs.MsgSubstationAllocationDisconnect',\n value: MsgSubstationAllocationDisconnect.fromPartial({\n creator: this.gameState.signingAccount.address,\n allocationId: allocationId\n }),\n });\n }\n\n /**\n * @param {string} substationId\n * @param {string} playerId\n */\n async queueMsgSubstationPlayerConnect(substationId, playerId) {\n this.queue({\n typeUrl: '/structs.structs.MsgSubstationPlayerConnect',\n value: MsgSubstationPlayerConnect.fromPartial({\n creator: this.gameState.signingAccount.address,\n substationId: substationId,\n playerId: playerId\n }),\n });\n }\n\n /**\n * @param {string} playerId\n */\n async queueMsgSubstationPlayerDisconnect(playerId) {\n this.queue({\n typeUrl: '/structs.structs.MsgSubstationPlayerDisconnect',\n value: MsgSubstationPlayerDisconnect.fromPartial({\n creator: this.gameState.signingAccount.address,\n playerId: playerId\n }),\n });\n }\n\n /**\n * @param {string} substationId\n * @param {string[]} playerId\n */\n async queueMsgSubstationPlayerMigrate(substationId, playerId) {\n this.queue({\n typeUrl: '/structs.structs.MsgSubstationPlayerMigrate',\n value: MsgSubstationPlayerMigrate.fromPartial({\n creator: this.gameState.signingAccount.address,\n substationId: substationId,\n playerId: playerId\n }),\n });\n }\n\n /**\n * @param {string} providerId\n * @param {number} duration\n * @param {number} capacity\n */\n async queueMsgAgreementOpen(providerId, duration, capacity) {\n this.queue({\n typeUrl: '/structs.structs.MsgAgreementOpen',\n value: MsgAgreementOpen.fromPartial({\n creator: this.gameState.signingAccount.address,\n providerId: providerId,\n duration: duration,\n capacity: capacity\n }),\n });\n }\n\n /**\n * @param {string} agreementId\n */\n async queueMsgAgreementClose(agreementId) {\n this.queue({\n typeUrl: '/structs.structs.MsgAgreementClose',\n value: MsgAgreementClose.fromPartial({\n creator: this.gameState.signingAccount.address,\n agreementId: agreementId\n }),\n });\n }\n\n /**\n * @param {string} agreementId\n * @param {number} capacityIncrease\n */\n async queueMsgAgreementCapacityIncrease(agreementId, capacityIncrease) {\n this.queue({\n typeUrl: '/structs.structs.MsgAgreementCapacityIncrease',\n value: MsgAgreementCapacityIncrease.fromPartial({\n creator: this.gameState.signingAccount.address,\n agreementId: agreementId,\n capacityIncrease: capacityIncrease\n }),\n });\n }\n\n /**\n * @param {string} agreementId\n * @param {number} capacityDecrease\n */\n async queueMsgAgreementCapacityDecrease(agreementId, capacityDecrease) {\n this.queue({\n typeUrl: '/structs.structs.MsgAgreementCapacityDecrease',\n value: MsgAgreementCapacityDecrease.fromPartial({\n creator: this.gameState.signingAccount.address,\n agreementId: agreementId,\n capacityDecrease: capacityDecrease\n }),\n });\n }\n\n /**\n * @param {string} agreementId\n * @param {number} durationIncrease\n */\n async queueMsgAgreementDurationIncrease(agreementId, durationIncrease) {\n this.queue({\n typeUrl: '/structs.structs.MsgAgreementDurationIncrease',\n value: MsgAgreementDurationIncrease.fromPartial({\n creator: this.gameState.signingAccount.address,\n agreementId: agreementId,\n durationIncrease: durationIncrease\n }),\n });\n }\n\n /**\n * @param {string} substationId\n * @param {{denom: string, amount: string}} rate\n * @param {string} accessPolicy\n * @param {string} providerCancellationPenalty\n * @param {string} consumerCancellationPenalty\n * @param {number} capacityMinimum\n * @param {number} capacityMaximum\n * @param {number} durationMinimum\n * @param {number} durationMaximum\n */\n async queueMsgProviderCreate(substationId, rate, accessPolicy, providerCancellationPenalty, consumerCancellationPenalty, capacityMinimum, capacityMaximum, durationMinimum, durationMaximum) {\n this.queue({\n typeUrl: '/structs.structs.MsgProviderCreate',\n value: MsgProviderCreate.fromPartial({\n creator: this.gameState.signingAccount.address,\n substationId: substationId,\n rate: rate,\n accessPolicy: accessPolicy,\n providerCancellationPenalty: providerCancellationPenalty,\n consumerCancellationPenalty: consumerCancellationPenalty,\n capacityMinimum: capacityMinimum,\n capacityMaximum: capacityMaximum,\n durationMinimum: durationMinimum,\n durationMaximum: durationMaximum\n }),\n });\n }\n\n /**\n * @param {string} providerId\n * @param {string} destinationAddress\n */\n async queueMsgProviderWithdrawBalance(providerId, destinationAddress) {\n this.queue({\n typeUrl: '/structs.structs.MsgProviderWithdrawBalance',\n value: MsgProviderWithdrawBalance.fromPartial({\n creator: this.gameState.signingAccount.address,\n providerId: providerId,\n destinationAddress: destinationAddress\n }),\n });\n }\n\n /**\n * @param {string} providerId\n * @param {number} newMinimumCapacity\n */\n async queueMsgProviderUpdateCapacityMinimum(providerId, newMinimumCapacity) {\n this.queue({\n typeUrl: '/structs.structs.MsgProviderUpdateCapacityMinimum',\n value: MsgProviderUpdateCapacityMinimum.fromPartial({\n creator: this.gameState.signingAccount.address,\n providerId: providerId,\n newMinimumCapacity: newMinimumCapacity\n }),\n });\n }\n\n /**\n * @param {string} providerId\n * @param {number} newMaximumCapacity\n */\n async queueMsgProviderUpdateCapacityMaximum(providerId, newMaximumCapacity) {\n this.queue({\n typeUrl: '/structs.structs.MsgProviderUpdateCapacityMaximum',\n value: MsgProviderUpdateCapacityMaximum.fromPartial({\n creator: this.gameState.signingAccount.address,\n providerId: providerId,\n newMaximumCapacity: newMaximumCapacity\n }),\n });\n }\n\n /**\n * @param {string} providerId\n * @param {number} newMinimumDuration\n */\n async queueMsgProviderUpdateDurationMinimum(providerId, newMinimumDuration) {\n this.queue({\n typeUrl: '/structs.structs.MsgProviderUpdateDurationMinimum',\n value: MsgProviderUpdateDurationMinimum.fromPartial({\n creator: this.gameState.signingAccount.address,\n providerId: providerId,\n newMinimumDuration: newMinimumDuration\n }),\n });\n }\n\n /**\n * @param {string} providerId\n * @param {number} newMaximumDuration\n */\n async queueMsgProviderUpdateDurationMaximum(providerId, newMaximumDuration) {\n this.queue({\n typeUrl: '/structs.structs.MsgProviderUpdateDurationMaximum',\n value: MsgProviderUpdateDurationMaximum.fromPartial({\n creator: this.gameState.signingAccount.address,\n providerId: providerId,\n newMaximumDuration: newMaximumDuration\n }),\n });\n }\n\n /**\n * @param {string} providerId\n * @param {string} accessPolicy\n */\n async queueMsgProviderUpdateAccessPolicy(providerId, accessPolicy) {\n this.queue({\n typeUrl: '/structs.structs.MsgProviderUpdateAccessPolicy',\n value: MsgProviderUpdateAccessPolicy.fromPartial({\n creator: this.gameState.signingAccount.address,\n providerId: providerId,\n accessPolicy: accessPolicy\n }),\n });\n }\n\n /**\n * @param {string} providerId\n */\n async queueMsgProviderDelete(providerId) {\n this.queue({\n typeUrl: '/structs.structs.MsgProviderDelete',\n value: MsgProviderDelete.fromPartial({\n creator: this.gameState.signingAccount.address,\n providerId: providerId\n }),\n });\n }\n\n /**\n * @param {string} delegatorAddress\n * @param {string} validatorAddress\n * @param {{denom: string, amount: string}} amount\n */\n async queueMsgReactorInfuse(delegatorAddress, validatorAddress, amount) {\n this.queue({\n typeUrl: '/structs.structs.MsgReactorInfuse',\n value: MsgReactorInfuse.fromPartial({\n creator: this.gameState.signingAccount.address,\n delegatorAddress: delegatorAddress,\n validatorAddress: validatorAddress,\n amount: amount\n }),\n });\n }\n\n /**\n * @param {string} delegatorAddress\n * @param {string} validatorSrcAddress\n * @param {string} validatorDstAddress\n * @param {{denom: string, amount: string}} amount\n */\n async queueMsgReactorBeginMigration(delegatorAddress, validatorSrcAddress, validatorDstAddress, amount) {\n this.queue({\n typeUrl: '/structs.structs.MsgReactorBeginMigration',\n value: MsgReactorBeginMigration.fromPartial({\n creator: this.gameState.signingAccount.address,\n delegatorAddress: delegatorAddress,\n validatorSrcAddress: validatorSrcAddress,\n validatorDstAddress: validatorDstAddress,\n amount: amount\n }),\n });\n }\n\n /**\n * @param {string} delegatorAddress\n * @param {string} validatorAddress\n * @param {{denom: string, amount: string}} amount\n */\n async queueMsgReactorDefuse(delegatorAddress, validatorAddress, amount) {\n this.queue({\n typeUrl: '/structs.structs.MsgReactorDefuse',\n value: MsgReactorDefuse.fromPartial({\n creator: this.gameState.signingAccount.address,\n delegatorAddress: delegatorAddress,\n validatorAddress: validatorAddress,\n amount: amount\n }),\n });\n }\n\n /**\n * @param {string} delegatorAddress\n * @param {string} validatorAddress\n * @param {{denom: string, amount: string}} amount\n * @param {number} creationHeight\n */\n async queueMsgReactorCancelDefusion(delegatorAddress, validatorAddress, amount, creationHeight) {\n this.queue({\n typeUrl: '/structs.structs.MsgReactorCancelDefusion',\n value: MsgReactorCancelDefusion.fromPartial({\n creator: this.gameState.signingAccount.address,\n delegatorAddress: delegatorAddress,\n validatorAddress: validatorAddress,\n amount: amount,\n creationHeight: creationHeight\n }),\n });\n }\n\n}","import {Struct} from \"../models/Struct\";\nimport {StructType} from \"../models/StructType\";\nimport {MAP_TILE_TYPES} from \"../constants/MapConstants\";\nimport {TaskCmdKillEvent} from \"../events/TaskCmdKillEvent\";\nimport {ClearStructTileEvent} from \"../events/ClearStructTileEvent\";\nimport {UpdateTileStructIdEvent} from \"../events/UpdateTileStructIdEvent\";\nimport {HUDViewModel} from \"../view_models/HUDViewModel\";\nimport {RefreshActionBarEvent} from \"../events/RefreshActionBarEvent\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\nimport {RefreshActionBarIfSelectedEvent} from \"../events/RefreshActionBarIfSelectedEvent\";\nimport {RenderStructEvent} from \"../events/RenderStructEvent\";\nimport {RenderStructHUDEvent} from \"../events/RenderStructHUDEvent\";\nimport {Fleet} from \"../models/Fleet\";\nimport {AnimationEventFactory} from \"../factories/AnimationEventFactory\";\n\nexport class StructManager {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {SigningClientManager} signingClientManager\n */\n constructor(\n gameState,\n guildAPI,\n signingClientManager\n ) {\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.signingClientManager = signingClientManager;\n this.animationEventFactory = new AnimationEventFactory();\n }\n\n /**\n * @param {Struct} struct\n * @return {boolean}\n */\n isCommandStruct(struct) {\n const structType = this.gameState.structTypes.getStructTypeById(struct.type);\n return !!structType.is_command;\n }\n\n /**\n * @param {Struct} struct\n * @param {string} planetId\n * @param {Fleet} fleet\n * @return {boolean}\n */\n isStructOnPlanet(struct, planetId, fleet = null) {\n return (struct.location_type === 'planet' && struct.location_id === planetId)\n || (struct.location_type === 'fleet' && fleet?.location_id === planetId);\n }\n\n /**\n * Get a struct by its owner, and it's position on planet or in fleet\n * @param {string} playerId - The id of the struct owner\n * @param {string} locationType - \"fleet\" or \"planet\"\n * @param {string} locationId - Fleet ID or Planet ID\n * @param {string} mapPlanetId - the planet to look for the struct on\n * @param {string} ambit - \"space\", \"air\", \"land\", \"water\"\n * @param {number} slot - Slot number\n * @param {boolean} isCommandSlot - Whether the slot is a command slot or just a planetary or fleet slot\n * @param {Fleet} fleet - The fleet belonging to the player, required for fleet structs\n * @return {Struct|null}\n */\n getStructByPositionAndPlayerId(\n playerId,\n locationType,\n locationId,\n mapPlanetId,\n ambit,\n slot,\n isCommandSlot,\n fleet\n ) {\n\n /**\n * @type {Struct[]}\n */\n const allStructs = [\n ...Object.values(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].structs),\n ...Object.values(this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].structs),\n ...Object.values(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].structs),\n ...Object.values(this.gameState.previewDefenderStructs),\n ...Object.values(this.gameState.previewAttackerStructs)\n ];\n\n return allStructs.find(struct =>\n struct.owner === playerId\n && struct.location_type === locationType\n && struct.location_id === locationId\n && struct.operating_ambit.toLowerCase() === ambit.toLowerCase()\n && `${struct.slot}` === `${slot}`\n && this.isCommandStruct(struct) === isCommandSlot\n && this.isStructOnPlanet(struct, mapPlanetId, fleet)\n ) || null;\n }\n\n /**\n * Get a struct id by its owner, and it's position on planet or in fleet\n * @param {string} playerId - The id of the struct owner\n * @param {string} locationType - \"fleet\" or \"planet\"\n * @param {string} locationId - Fleet ID or Planet ID\n * @param {string} mapPlanetId - the planet to look for the struct on\n * @param {string} ambit - \"space\", \"air\", \"land\", \"water\"\n * @param {string|number} slot - Slot number\n * @param {boolean} isCommandSlot - Whether the slot is a command slot or just a planetary or fleet slot\n * @param {Fleet} fleet - The fleet belonging to the player, required for fleet structs\n * @return {string}\n */\n getStructIdByPositionAndPlayerId(\n playerId,\n locationType,\n locationId,\n mapPlanetId,\n ambit,\n slot,\n isCommandSlot,\n fleet\n ) {\n if (slot === \"\") {\n return \"\";\n }\n\n const struct = this.getStructByPositionAndPlayerId(playerId, locationType, locationId, mapPlanetId, ambit, parseInt(slot), isCommandSlot, fleet);\n return struct ? struct.id : '';\n }\n\n /**\n * @param {StructType} structType\n * @return {string}\n */\n getDeploymentBlockerBuildLimitReached(structType) {\n if (structType.build_limit > 0) {\n const structTypeCount = Object.values(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].structs).filter(struct =>\n struct.type === structType.id\n ).length;\n\n if (structTypeCount >= structType.build_limit) {\n return 'Already deployed';\n }\n }\n\n return '';\n }\n\n /**\n * @param {StructType} structType\n * @return {string}\n */\n getDeploymentBlockerInsufficientCharge(structType) {\n const playerCharge = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].getCharge(this.gameState.currentBlockHeight);\n return playerCharge < structType.build_charge\n ? 'Insufficient battery'\n : '';\n }\n\n /**\n * @return {number}\n */\n getEnergySupply() {\n let totalLoad = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.load + this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.structs_load;\n let totalCapacity = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.capacity + this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.connection_capacity;\n\n return totalCapacity - totalLoad;\n }\n\n /**\n * @param {StructType} structType\n * @return {string}\n */\n getDeploymentBlockerInsufficientEnergySupply(structType) {\n const energySupply = this.getEnergySupply();\n return (energySupply < structType.build_draw || energySupply < structType.passive_draw)\n ? 'Insufficient energy supply'\n : '';\n }\n\n /**\n * @param {StructType} structType\n * @return {string}\n */\n getDeploymentBlockerNoCommandShip(structType) {\n if (structType.is_command) {\n return '';\n }\n\n return !this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].fleet.command_struct\n ? 'Requires command ship'\n : '';\n }\n\n /**\n * @param {StructType} structType\n * @return {string|string}\n */\n getDeploymentBlockerCommandShipAway(structType) {\n if (structType.is_command) {\n return '';\n }\n\n return this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].fleet.status === 'away'\n ? 'Command ship is away'\n : '';\n }\n\n /**\n * Checks if the logged in player is eligible to deploy the select struct type and returns any blockers.\n *\n * @param {StructType} structType\n * @return {string}\n */\n getDeploymentBlocker(structType) {\n return this.getDeploymentBlockerNoCommandShip(structType)\n || this.getDeploymentBlockerBuildLimitReached(structType)\n || this.getDeploymentBlockerInsufficientEnergySupply(structType)\n || this.getDeploymentBlockerInsufficientCharge(structType)\n || this.getDeploymentBlockerCommandShipAway(structType);\n }\n\n /**\n * Gets a struct by ID from all available struct objects. O(1) lookup.\n *\n * @param {string} structId\n * @return {Struct|null}\n */\n getStructById(structId) {\n if (!structId) {\n return null;\n }\n\n return this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].structs[structId]\n || this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].structs[structId]\n || this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].structs[structId]\n || this.gameState.previewDefenderStructs[structId]\n || this.gameState.previewAttackerStructs[structId]\n || null;\n }\n\n /**\n * Determine tile type from struct location and type\n * @param {Struct} struct\n * @return {string|null}\n */\n getTileTypeFromStruct(struct) {\n if (struct.location_type === 'planet') {\n return MAP_TILE_TYPES.PLANETARY_SLOT;\n }\n if (struct.location_type === 'fleet') {\n return this.isCommandStruct(struct)\n ? MAP_TILE_TYPES.COMMAND\n : MAP_TILE_TYPES.FLEET;\n }\n return null;\n }\n\n /**\n * @param {Struct} struct\n */\n cancelStructBuild(struct) {\n console.log(`Canceling build of struct ${struct.id}`);\n\n // Get struct position info before removing\n const tileType = this.getTileTypeFromStruct(struct);\n const ambit = struct.operating_ambit.toUpperCase();\n const slot = struct.slot;\n const playerId = struct.owner;\n const mapId = this.gameState.alphaBaseMap.mapId;\n\n // Kill the task worker\n window.dispatchEvent(new TaskCmdKillEvent(struct.id));\n\n if (!struct.isDestroyed()) {\n // Send cancel message to backend (fire and forget)\n this.signingClientManager.queueMsgStructBuildCancel(\n struct.id\n ).then();\n }\n\n // Optimistic UI update: remove struct from gameState immediately\n this.gameState.removeStruct(struct.id);\n\n // Clear the struct layer tile\n window.dispatchEvent(new ClearStructTileEvent(\n mapId,\n tileType,\n ambit,\n slot,\n playerId\n ));\n\n // Clear the tile selection's data-struct-id\n window.dispatchEvent(new UpdateTileStructIdEvent(\n mapId,\n tileType,\n ambit,\n slot,\n playerId,\n '' // Empty string to clear the struct ID\n ));\n\n // Clear currentSelectedTile.structId\n if (HUDViewModel.currentSelectedTile) {\n HUDViewModel.currentSelectedTile.structId = null;\n }\n\n // Refresh the action bar to show empty tile state\n window.dispatchEvent(new RefreshActionBarEvent());\n }\n\n /**\n * @param {String} playerType\n * @return {Object}\n */\n getStructsByPlayerType(playerType) {\n switch (playerType) {\n case PLAYER_TYPES.PLAYER:\n return this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].structs;\n case PLAYER_TYPES.PLANET_RAIDER:\n return this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].structs;\n case PLAYER_TYPES.RAID_ENEMY:\n return this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].structs;\n default:\n throw new Error(`No such player type ${playerType}`);\n }\n }\n\n /**\n * @param {string} playerType\n * @return {string}\n */\n getStructCountByPlayerType(playerType) {\n const structs = this.getStructsByPlayerType(playerType);\n const isFleetAway = this.gameState.keyPlayers[playerType]?.fleet?.status === 'away';\n let planetaryStructCount = 0;\n let fleetStructCount = 0;\n for (const struct of Object.values(structs)) {\n if (struct.location_type === 'planet') {\n planetaryStructCount++;\n } else if (struct.location_type === 'fleet' && !isFleetAway) {\n fleetStructCount++;\n }\n }\n return `${fleetStructCount}+${planetaryStructCount}`;\n }\n\n /**\n * @param {string} structId\n * @param {string} mapType\n * @param {boolean} removePendingBuild\n * @param {boolean} renderStruct\n * @param {AnimationEvent} animationToAutoplay\n * @return {Promise}\n */\n async refreshStruct(\n structId,\n mapType,\n removePendingBuild = false,\n renderStruct = true,\n animationToAutoplay = null\n ) {\n const struct = await this.guildAPI.getStruct(structId);\n this.gameState.setStruct(struct);\n\n const tileType = this.getTileTypeFromStruct(struct);\n const ambit = struct.operating_ambit.toUpperCase();\n const mapId = this.gameState[mapType]?.mapId ?? null;\n\n // Remove pending build from gameState\n if (tileType && removePendingBuild) {\n this.gameState.removePendingBuild(tileType, ambit, struct.slot, struct.owner);\n\n if (!animationToAutoplay) {\n animationToAutoplay = this.animationEventFactory.makeDeploymentAnimationEvent(\n struct.id,\n ambit,\n mapId\n );\n }\n }\n\n // Dispatch event to update the struct layer\n if (renderStruct) {\n const renderStructEvent = new RenderStructEvent(\n this.gameState[mapType].mapId,\n struct,\n animationToAutoplay\n );\n window.dispatchEvent(renderStructEvent);\n }\n\n const renderStructHUDEvent = new RenderStructHUDEvent(this.gameState[mapType].mapId, struct);\n window.dispatchEvent(renderStructHUDEvent);\n\n // Dispatch event to update the tile selection layer's struct ID\n if (tileType) {\n const updateTileEvent = new UpdateTileStructIdEvent(\n this.gameState[mapType].mapId,\n tileType,\n ambit,\n struct.slot,\n struct.owner,\n struct.id\n );\n window.dispatchEvent(updateTileEvent);\n\n // Dispatch event to refresh action bar if this struct's tile is currently selected\n const refreshActionBarEvent = new RefreshActionBarIfSelectedEvent(\n tileType,\n ambit,\n struct.slot,\n struct.owner,\n struct.id\n );\n window.dispatchEvent(refreshActionBarEvent);\n }\n\n return struct;\n }\n\n /**\n * @param {Struct} struct\n * @param {string} playerType\n */\n getMapIdByPlayerTypeAndStruct(struct, playerType) {\n\n let onPlanet = (struct.location_type === 'fleet')\n ? this.gameState.keyPlayers[playerType].fleet?.location_id\n : struct.location_id;\n\n if (this.gameState.alphaBaseMap.planet && onPlanet === this.gameState.alphaBaseMap.planet.id) {\n return this.gameState.alphaBaseMap.mapId;\n }\n\n if (this.gameState.raidMap.planet && onPlanet === this.gameState.raidMap.planet.id) {\n return this.gameState.raidMap.mapId;\n }\n\n return null;\n }\n}","import {EVENTS} from \"../constants/Events\";\nimport {FEE} from \"../constants/Fee\";\nimport {TASK} from \"../constants/TaskConstants\";\nimport {TASK_TYPES} from \"../constants/TaskTypes\";\nimport {TASK_MANAGER_STATUS} from \"../constants/TaskManagerStatus\";\nimport {TaskProcess} from \"../models/TaskProcess\";\nimport {TaskCompletedEvent} from \"../events/TaskCompletedEvent\";\nimport {TaskManagerStatusChangedEvent} from \"../events/TaskManagerStatusChangedEvent\";\nimport {TASK_STATUS} from \"../constants/TaskStatus\";\nimport {OBJECT_TYPES} from \"../constants/ObjectTypes\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\n\n\n/*\n * The Task Manager\n */\nexport class TaskManager {\n \n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {SigningClientManager} signingClientManager\n * @param {TaskStateFactory} taskStateFactory\n */\n constructor(\n gameState,\n guildAPI,\n signingClientManager,\n taskStateFactory\n ) {\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.signingClientManager = signingClientManager;\n this.taskStateFactory = taskStateFactory;\n\n this.status = TASK_MANAGER_STATUS.OFFLINE;\n\n this.processes = {};\n this.waiting_queue = [];\n this.running_queue = [];\n\n /*\n TASK_STATE_CHANGED used to propagate task state throughout. Can be\n used by UI elements for updating progress bars and estimates.\n\n TASK_WORKER_CHANGED is used by the Web Worker and likely shouldn't\n be used by UI elements as they may miss other events such\n as Pausing and Resuming.\n */\n window.addEventListener(EVENTS.TASK_WORKER_CHANGED, function (event) {\n this.setState(event.state);\n console.log(this.processes[event.state.getPID()].state)\n if (event.state.isCompleted()) {\n\n event.state.setBlockCheckpoint(this.gameState.currentBlockHeight);\n // Make sure the hash is acceptable compared to the estimations performed in the worker\n if (event.state.checkResultHashDifficulty()) {\n this.complete(event.state.getPID());\n } else {\n event.state.setStatus(TASK_STATUS.STARTING);\n this.spawn(event.state);\n }\n\n }\n }.bind(this));\n\n // TASK_CMD_MANAGER_PAUSE\n // Can be dispatched anywhere to halt the Task Manager\n window.addEventListener(EVENTS.TASK_CMD_MANAGER_PAUSE, function (event) {\n this.setManagerStatus(TASK_MANAGER_STATUS.OFFLINE);\n this.pauseAll();\n }.bind(this));\n\n // TASK_CMD_MANAGER_RESUME\n // Can be dispatched anywhere to resume the Task Manager\n window.addEventListener(EVENTS.TASK_CMD_MANAGER_RESUME, function (event) {\n this.setManagerStatus(TASK_MANAGER_STATUS.ONLINE);\n this.resumeAll();\n }.bind(this));\n\n // TASK_CMD_FORCE_RUN\n // Can be dispatched anywhere to force a process in waiting to start running\n window.addEventListener(EVENTS.TASK_CMD_FORCE_RUN, function (event) {\n this.forceRun(event.pid);\n }.bind(this));\n\n // TASK_CMD_KILL\n // Can be dispatched anywhere to kill tasks.\n window.addEventListener(EVENTS.TASK_CMD_KILL, function (event) {\n this.terminate(event.pid);\n }.bind(this));\n\n // TASK_CMD_PAUSE\n // Can be dispatched anywhere to pause a job\n window.addEventListener(EVENTS.TASK_CMD_PAUSE, function (event) {\n this.pause(event.pid);\n }.bind(this));\n\n // TASK_CMD_RESUME\n // Can be dispatched anywhere to resume a job\n window.addEventListener(EVENTS.TASK_CMD_RESUME, function (event) {\n this.resume(event.pid);\n }.bind(this));\n\n // TASK_CMD_SPAWN\n // Can be dispatched anywhere to execute new tasks.\n window.addEventListener(EVENTS.TASK_CMD_SPAWN, function (event) {\n this.spawn(event.state);\n }.bind(this));\n\n\n // TASK_CMD_SWEEP\n // Can be dispatched anywhere to remove a job from the processes object\n window.addEventListener(EVENTS.TASK_CMD_SWEEP, function (event) {\n this.sweep(event.pid);\n }.bind(this));\n\n // TASK_CMD_SWEEP_ALL\n // Can be dispatched anywhere to remove all finished jobs from the processes object\n window.addEventListener(EVENTS.TASK_CMD_SWEEP_ALL, function (event) {\n this.sweepAll();\n }.bind(this));\n\n // Handle a completed task\n window.addEventListener(EVENTS.TASK_COMPLETED, async function (event) {\n console.log('It is done! \\n ' + event.state.toLog());\n\n // TODO - restructure this to not be switch based\n // TODO - add result verification (check hash, difficulty, etc)\n // TODO - More complex result handling, currently assumes\n // only processing your own work.\n //\n // If the Task belongs to this user\n // Create a transactions\n // else\n // submit to guild\n\n let msg;\n this.sweep(event.state.getPID());\n switch (event.state.task_type) {\n case TASK_TYPES.RAID:\n await this.signingClientManager.queueMsgPlanetRaidComplete(\n event.state.object_id,\n event.state.result_hash,\n event.state.result_nonce\n );\n break;\n case TASK_TYPES.BUILD:\n await this.signingClientManager.queueMsgStructBuildComplete(\n event.state.object_id,\n event.state.result_hash,\n event.state.result_nonce\n );\n break;\n\n case TASK_TYPES.MINE:\n await this.signingClientManager.queueMsgStructOreMinerComplete(\n event.state.object_id,\n event.state.result_hash,\n event.state.result_nonce\n );\n break;\n\n case TASK_TYPES.REFINE:\n await this.signingClientManager.queueMsgStructOreRefineryComplete(\n event.state.object_id,\n event.state.result_hash,\n event.state.result_nonce\n );\n break;\n }\n }.bind(this));\n\n // Add Console Utilities\n setInterval(() => this.StatusAll(), TASK.AUTOMATIC_STATUS_INTERVAL);\n\n }\n\n StatusAll() {\n console.log(this.processes);\n console.log(this.waiting_queue);\n console.log(this.running_queue);\n console.log('hashrate ' + this.getProcessAverageHashrate());\n console.log('percent est. ' + this.getProcessPercentCompleteEstimateAll());\n console.log('time est. ' + this.getProcessTimeRemainingEstimateAll()/1000.0);\n }\n\n canStartTask() {\n return this.isOnline() && this.running_queue.length < TASK.MAX_CONCURRENT_PROCESSES\n }\n\n // TODO I'd like to change this to === but I'm not sure if something will currently send it over\n isAtCapacity() {\n return this.running_queue.length >= TASK.MAX_CONCURRENT_PROCESSES\n }\n\n isOnline() {\n return this.status === TASK_MANAGER_STATUS.ONLINE;\n }\n\n /**\n * @param {string} new_status\n */\n setManagerStatus(new_status) {\n this.status = new_status;\n window.dispatchEvent(new TaskManagerStatusChangedEvent(this.status));\n }\n\n /**\n * @param {TaskState} task_state\n * @return {string}\n */\n spawn(task_state) {\n const pid = task_state.getPID();\n\n task_state.setBlockCheckpoint(this.gameState.currentBlockHeight);\n\n if (this.processes[pid]) {\n this.processes[pid].replaceState(task_state);\n } else {\n this.processes[pid] = new TaskProcess(task_state);\n if (this.canStartTask()) {\n this.processes[pid].start(pid);\n this.running_queue.push(pid);\n } else {\n this.waiting_queue.push(pid);\n }\n }\n return pid;\n }\n\n runNext() {\n if (this.canStartTask()) {\n const next_pid = this.waiting_queue.pop()\n if (next_pid !== undefined) {\n console.log(next_pid)\n this.processes[next_pid].state.setBlockCheckpoint(this.gameState.currentBlockHeight);\n this.processes[next_pid].start(next_pid);\n this.running_queue.push(next_pid);\n }\n }\n }\n\n /**\n * @param {string} pid\n */\n forceRun(pid){\n if (this.processes[pid]) {\n if (this.processes[pid].isWaiting()) {\n this.processes[pid].setStatus(TASK_STATUS.RUNNING);\n this.processes[pid].start();\n }\n }\n }\n\n /**\n * @param {string} pid\n */\n terminate(pid) {\n const running_index = this.running_queue.indexOf(pid);\n const waiting_index = this.waiting_queue.indexOf(pid);\n if ((running_index !== -1) || (waiting_index !== -1)) {\n this.processes[pid].terminate();\n\n this.runningQueueRemove(pid);\n this.waitingQueueRemove(pid);\n\n this.runNext();\n }\n }\n\n /**\n * @param {string} pid\n */\n complete(pid) {\n if (this.processes[pid]) {\n this.processes[pid].clearWorker();\n\n this.runningQueueRemove(pid);\n this.waitingQueueRemove(pid);\n\n window.dispatchEvent(new TaskCompletedEvent(this.processes[pid].state));\n\n this.runNext();\n }\n }\n\n\n /**\n * @param {string} pid\n */\n pause(pid) {\n if (this.processes[pid]) {\n if (this.processes[pid].canPause()) {\n\n const estimatedHashrate = this.getProcessAverageHashrate();\n const estimatedBlockStartOffset = this.getProcessBlockOffset(pid, estimatedHashrate);\n\n this.processes[pid].pause(estimatedHashrate, estimatedBlockStartOffset);\n this.runningQueueRemove(pid);\n\n this.waiting_queue.push(pid);\n\n this.runNext();\n }\n }\n }\n\n pauseAll() {\n let pause_list = [...this.running_queue];\n\n const estimatedHashrate = this.getProcessAverageHashrate();\n\n for (const pid of pause_list) {\n if (this.processes[pid].canPause()) {\n const estimatedBlockStartOffset = this.getProcessBlockOffset(pid, estimatedHashrate);\n\n this.processes[pid].pause(estimatedHashrate, estimatedBlockStartOffset);\n this.runningQueueRemove(pid);\n\n this.waiting_queue.push(pid);\n }\n }\n }\n\n /**\n * @param {string} pid\n */\n resume(pid) {\n if (this.processes[pid]\n && this.processes[pid].canResume()\n ) {\n // Pull it out of the waiting queue\n this.waitingQueueRemove(pid)\n\n if (this.canStartTask()) {\n this.running_queue.push(pid);\n this.processes[pid].state.setBlockCheckpoint(this.gameState.currentBlockHeight);\n this.processes[pid].start(pid);\n\n } else {\n // Add back to the next position of the waiting queue\n this.waiting_queue.push(pid);\n\n // Sleep the oldest\n // Which will automatically run the next in the queue after\n const sleep_pid = this.running_queue[0];\n this.pause(sleep_pid);\n }\n }\n }\n\n resumeAll() {\n let resume_list = [...this.waiting_queue];\n for (const pid of resume_list) {\n if (this.isAtCapacity()) {\n break;\n }\n this.resume(pid);\n }\n }\n\n /**\n * @param {string} pid\n */\n sweep(pid) {\n if (this.processes[pid]) {\n this.terminate(pid);\n delete this.processes[pid];\n }\n }\n\n sweepAll() {\n let sweep_list = [];\n for (const pid of Object.keys(this.processes)) {\n if (this.processes[pid].canSweep()) {\n sweep_list.push(pid);\n }\n }\n\n for (const pid of sweep_list) {\n delete this.processes[pid];\n }\n }\n\n /**\n * @param {string} pid\n */\n waitingQueueRemove(pid){\n const waiting_index = this.waiting_queue.indexOf(pid);\n if (waiting_index !== -1) {\n this.waiting_queue.splice(waiting_index, 1);\n }\n }\n\n /**\n * @param {string} pid\n */\n runningQueueRemove(pid) {\n const running_index = this.running_queue.indexOf(pid);\n if (running_index !== -1) {\n this.running_queue.splice(running_index, 1);\n }\n }\n\n /**\n * @param {TaskState} new_state\n */\n setState(new_state) {\n this.processes[new_state.getPID()].setState(new_state);\n }\n\n /**\n * @param {string} pid\n * @return {number}\n */\n getProcessPercentCompleteEstimate(pid) {\n const hashrate = this.getProcessAverageHashrate();\n const offsetBlock = this.getProcessBlockOffset(pid, hashrate);\n\n return this.processes[pid].state.getPercentCompleteEstimate(hashrate, offsetBlock);\n }\n\n /**\n * @return {number}\n */\n getProcessPercentCompleteEstimateAll() {\n const hashrate = this.getProcessAverageHashrate();\n\n let i = 0;\n let avg_complete = 0.0;\n for (const pid of Object.keys(this.processes)) {\n i++\n const offsetBlock = this.getProcessBlockOffset(pid, hashrate);\n avg_complete += this.processes[pid].state.getPercentCompleteEstimate(hashrate, offsetBlock);\n }\n\n if (i == 0) {\n return 1;\n }\n return avg_complete / (i);\n }\n\n /**\n * @param {string} pid\n * @return {number}\n */\n getProcessTimeRemainingEstimate(pid) {\n const hashrate = this.getProcessAverageHashrate();\n const offsetBlock = this.getProcessBlockOffset(pid, hashrate);\n\n if (this.processes[pid]) {\n return this.processes[pid].state.getTimeRemainingEstimate(hashrate, offsetBlock);\n }\n\n return 0;\n }\n\n /**\n * @param {string} queue_pid\n * @param {number} hashRate\n * @return {number}\n */\n getProcessBlockOffset(queue_pid, hashrate) {\n let longest_block = 0;\n let running_list = [...this.running_queue];\n for (const pid of running_list) {\n if (pid === queue_pid) { return 0; }\n const current_block_length = this.processes[pid].state.getTimeRemainingEstimate(hashrate, 0 );\n longest_block = (current_block_length > longest_block) ? current_block_length : longest_block;\n }\n\n // Only process the waiting list if the running list has any jobs\n // Otherwise we end up with a wonky estimate on initial jobs\n if (running_list.length > 0) {\n let waiting_list = [...this.waiting_queue];\n for (const pid of waiting_list) {\n if (pid === queue_pid) { break; }\n const current_block_length = this.processes[pid].state.getTimeRemainingEstimate(hashrate, longest_block );\n longest_block = (current_block_length > longest_block) ? current_block_length : longest_block;\n }\n }\n return longest_block;\n\n }\n\n\n\n /**\n * @return {number}\n */\n getProcessTimeRemainingEstimateAll() {\n const hashrate = this.getProcessAverageHashrate();\n\n let longest = 0;\n for (const pid of Object.keys(this.processes)) {\n const offsetBlock = this.getProcessBlockOffset(pid, hashrate);\n const estimate = this.processes[pid].state.getTimeRemainingEstimate(hashrate, offsetBlock);\n if (estimate > longest) {\n longest = estimate;\n }\n }\n return longest;\n }\n\n /**\n * @param {string} pid\n * @return {number}\n */\n getProcessHashrate(pid) {\n return this.processes[pid].state.getHashrate();\n }\n\n /**\n * @return {number}\n */\n getProcessHashrateAll() {\n let total = 0;\n for (const pid of Object.keys(this.processes)) {\n total += this.processes[pid].state.getHashrate();\n }\n return total;\n }\n\n\n /**\n * @return {number}\n */\n getProcessAverageHashrate() {\n let average = 0;\n let iterations = 0;\n for (const pid of Object.keys(this.processes)) {\n // Make sure the state is actually running and not waiting\n if (this.processes[pid].state.isRunning()) {\n average += this.processes[pid].state.getHashrate();\n iterations++\n }\n }\n\n if (iterations == 0 || average == 0) {\n return TASK.HASHRATE_INITIAL_ESTIMATE;\n }\n return average / iterations;\n }\n\n /**\n * Searches for a build process by struct ID.\n *\n * @param {string} structId\n * @return {TaskProcess|null}\n */\n getBuildProcessByStructId(structId) {\n return this.getProcessByStructIdAndType(structId, TASK_TYPES.BUILD);\n }\n\n /**\n * Searches for a process associated with a given struct ID and task type.\n *\n * @param {string} structId\n * @param {string} taskType see TASK_TYPES\n * @return {TaskProcess|null}\n */\n getProcessByStructIdAndType(structId, taskType) {\n for (const pid of Object.keys(this.processes)) {\n const process = this.processes[pid];\n const state = process.state;\n if (\n state.task_type === taskType\n && state.object_type === OBJECT_TYPES.STRUCT\n && state.object_id === structId\n ) {\n return process;\n }\n }\n return null;\n }\n\n\n /**\n * Restores worker tasks for the logged in player from the database.\n *\n * @return {Promise}\n */\n async restoreTasksFromDB() {\n\n // Only restore tasks, if the task manager is not already in use.\n if (Object.keys(this.processes).length || this.running_queue.length || this.waiting_queue.length) {\n return;\n }\n\n const work = await this.guildAPI.getWorkByPlayerId(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id);\n work.forEach((workTask) => {\n const task = this.taskStateFactory.initTaskFromWork(workTask);\n this.spawn(task);\n });\n }\n}\n","import {DirectSecp256k1HdWallet} from \"@cosmjs/proto-signing\";\nimport {Bip39, Random, Secp256k1, sha256} from \"@cosmjs/crypto\";\n\nexport class WalletManager {\n\n constructor() {\n this.textEncoder = new TextEncoder();\n }\n\n /**\n * @return {string}\n */\n createMnemonic() {\n const getNewRandom = Random.getBytes(16);\n return Bip39.encode(getNewRandom).toString();\n }\n\n /**\n * @param {string} mnemonic\n * @return {Promise}\n */\n async createWallet(mnemonic) {\n return await DirectSecp256k1HdWallet.fromMnemonic(\n mnemonic,\n {\n prefix: \"structs\"\n }\n );\n }\n\n /**\n * @param {string} message\n * @param {Uint8Array} privateKey\n * @return {Promise}\n */\n async createSignatureForProxyMessage(message, privateKey) {\n const encodedMessage = this.textEncoder.encode(message);\n const digest = sha256(encodedMessage);\n const rawSignature = await Secp256k1.createSignature(digest, privateKey);\n return this.bytesToHex(rawSignature.toFixedLength());\n }\n\n /**\n * @param byteArray\n * @return {string}\n */\n bytesToHex(byteArray) {\n return Array.from(byteArray, function(byte) {\n return ('0' + (byte & 0xFF).toString(16)).slice(-2);\n }).join('');\n }\n}","import {HUDViewModel} from \"../view_models/HUDViewModel\";\nimport {Struct} from \"./Struct\";\n\nexport class ActionBarLock {\n\n constructor() {\n\n /** @type {string} See STRUCT_ACTIONS */\n this.currentAction = '';\n\n /** @type {Struct} The struct that is the source of this action. */\n this.actionSourceStruct = null;\n\n /** @type {boolean} */\n this.locked = false;\n }\n\n /**\n * @param {string} action\n */\n setCurrentAction(action) {\n if (this.locked) {\n console.warn(`Cannot set current action, ActionBarLock is locked for action ${this.currentAction}`);\n } else {\n this.currentAction = action;\n }\n }\n\n /**\n * @return {string}\n */\n getCurrentAction() {\n return this.currentAction;\n }\n\n lock() {\n this.locked = true;\n\n // Refresh the action bar to show the executing progress bar\n HUDViewModel.refreshActionBar();\n }\n\n /**\n * @param {boolean} refreshActionBar\n */\n unlock(refreshActionBar = true) {\n this.locked = false;\n\n if (refreshActionBar) {\n // Refresh the action bar to end the executing progress bar and show the relevant action bar\n HUDViewModel.refreshActionBar();\n }\n }\n\n /**\n * @return {boolean}\n */\n isLocked() {\n return this.locked;\n }\n\n /**\n * @param {boolean} refreshActionBar\n */\n clear(refreshActionBar = true) {\n this.unlock(refreshActionBar);\n this.setActionSourceStruct(null);\n this.setCurrentAction('');\n }\n\n /**\n * @param {Struct} struct\n */\n setActionSourceStruct(struct) {\n this.actionSourceStruct = struct;\n }\n\n /**\n * @return {Struct}\n */\n getActionSourceStruct() {\n return this.actionSourceStruct;\n }\n\n}","export class Fleet {\n constructor() {\n this.id = null;\n this.owner = null;\n this.map = null;\n this.space_slots = null;\n this.air_slots = null;\n this.land_slots = null;\n this.water_slots = null;\n this.location_type = null;\n this.location_id = null;\n this.status = null;\n this.location_list_forward = null;\n this.location_list_backward = null;\n this.command_struct = null;\n this.created_at = null;\n this.updated_at = null;\n }\n}\n\n","import {SignupRequestDTO} from \"../dtos/SignupRequestDTO\";\nimport {ChargeCalculator} from \"../util/ChargeCalculator\";\nimport {EVENTS} from \"../constants/Events\";\nimport {ChargeLevelChangedEvent} from \"../events/ChargeLevelChangedEvent\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\nimport {WalletManager} from \"../managers/WalletManager\";\nimport {GuildAPI} from \"../api/GuildAPI\";\nimport {PlanetRaid} from \"./PlanetRaid\";\nimport {MAP_CONTAINER_IDS, MAP_TYPES} from \"../constants/MapConstants\";\nimport {StructTypeCollection} from \"./StructTypeCollection\";\nimport {Struct} from \"./Struct\";\nimport {StructType} from \"./StructType\";\nimport {KeyPlayer} from \"./KeyPlayer\";\nimport {StructCountChangedEvent} from \"../events/StructCountChangedEvent\";\nimport {PlanetRaidStatusChangedEvent} from \"../events/PlanetRaidStatusChangedEvent\";\nimport {Guild} from \"./Guild\";\nimport {ActionBarLock} from \"./ActionBarLock\";\nimport {Settings} from \"./Settings\";\nimport {STRUCT_TYPES} from \"../constants/StructConstants\";\n\nexport class GameState {\n\n constructor() {\n this.chargeCalculator = new ChargeCalculator();\n this.walletManager = new WalletManager();\n this.guildAPI = new GuildAPI();\n\n /* Multistep Request Data */\n this.signupRequest = new SignupRequestDTO();\n this.transferAmount = 0;\n\n /* Persistent Data */\n this.mnemonic = null;\n this.pubkey = null;\n this.lastSaveBlockHeight = 0;\n this.activeMapContainerId = MAP_CONTAINER_IDS.ALPHA_BASE;\n\n /* Must Be Re-instantiated On Load */\n this.wallet = null;\n this.signingAccount = null;\n this.signingClient = null;\n\n /** @type {MapComponent} */\n this.alphaBaseMap = null;\n\n /** @type {MapComponent} */\n this.raidMap = null;\n\n /** @type {MapComponent} */\n this.previewMap = null;\n\n /* API Primed Data */\n\n /** @type {Settings} */\n this.settings = null;\n\n /** @type {Guild} */\n this.thisGuild = null;\n\n /**\n * @type {{player: KeyPlayer, raid_enemy: KeyPlayer, planet_raider: KeyPlayer}}\n */\n this.keyPlayers = {\n [PLAYER_TYPES.PLAYER]: new KeyPlayer(\n PLAYER_TYPES.PLAYER,\n true,\n MAP_TYPES.ALPHA_BASE\n ),\n [PLAYER_TYPES.RAID_ENEMY]: new KeyPlayer(\n PLAYER_TYPES.RAID_ENEMY,\n true,\n MAP_TYPES.RAID\n ),\n [PLAYER_TYPES.PLANET_RAIDER]: new KeyPlayer(\n PLAYER_TYPES.PLANET_RAIDER,\n false,\n '',\n PLAYER_TYPES.PLAYER\n )\n };\n\n this.structTypes = new StructTypeCollection();\n\n /** @type {Object} */\n this.previewDefenderStructs = {};\n\n /** @type {Object} */\n this.previewAttackerStructs = {};\n\n /* GRASS Only Data */\n\n this.currentBlockHeight = 0;\n\n /* Temp Data */\n\n /**\n * Tracks pending builds before the struct ID is known.\n * Key: \"{tileType}-{ambit}-{slot}-{playerId}\"\n * Value: {structType: StructType, timestamp: number}\n * @type {Map}\n */\n this.pendingBuilds = new Map();\n\n /** @type {ActionBarLock} The current struct action (see STRUCT_ACTIONS) that holds the lock. */\n this.actionBarLock = new ActionBarLock();\n\n /** @type {AnimationEventQueue} */\n this.animationEventQueue = null;\n\n /* Allow saving from other classes without cyclical references. */\n window.addEventListener(EVENTS.SAVE_GAME_STATE, this.save.bind(this));\n }\n\n save() {\n this.lastSaveBlockHeight = this.currentBlockHeight;\n\n localStorage.setItem('gameState', JSON.stringify({\n mnemonic: this.mnemonic,\n pubkey: this.pubkey,\n thisPlayerId: this.keyPlayers[PLAYER_TYPES.PLAYER].id,\n lastSaveBlockHeight: this.lastSaveBlockHeight,\n lastActionBlockHeight: this.keyPlayers[PLAYER_TYPES.PLAYER].lastActionBlockHeight,\n planetRaiderLastActionBlockHeight: this.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].lastActionBlockHeight,\n raidEnemyLastActionBlockHeight: this.keyPlayers[PLAYER_TYPES.RAID_ENEMY].lastActionBlockHeight,\n chargeLevel: this.keyPlayers[PLAYER_TYPES.PLAYER].chargeLevel,\n planetRaiderChargeLevel: this.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].chargeLevel,\n raidEnemyChargeLevel: this.keyPlayers[PLAYER_TYPES.RAID_ENEMY].chargeLevel,\n transferAmount: this.transferAmount,\n activeMapContainerId: this.activeMapContainerId\n }));\n }\n\n async load() {\n const gameState = localStorage.getItem('gameState');\n\n if (!gameState) {\n return;\n }\n\n const gameStateParsed = JSON.parse(gameState);\n\n this.mnemonic = gameStateParsed.mnemonic;\n this.pubkey = gameStateParsed.pubkey;\n this.keyPlayers[PLAYER_TYPES.PLAYER].id = gameStateParsed.thisPlayerId;\n this.lastSaveBlockHeight = gameStateParsed.lastSaveBlockHeight;\n this.keyPlayers[PLAYER_TYPES.PLAYER].lastActionBlockHeight = gameStateParsed.lastActionBlockHeight;\n this.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].lastActionBlockHeight = gameStateParsed.planetRaiderLastActionBlockHeight;\n this.keyPlayers[PLAYER_TYPES.RAID_ENEMY].lastActionBlockHeight = gameStateParsed.raidEnemyLastActionBlockHeight;\n this.keyPlayers[PLAYER_TYPES.PLAYER].chargeLevel = gameStateParsed.chargeLevel;\n this.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].chargeLevel = gameStateParsed.planetRaiderChargeLevel;\n this.keyPlayers[PLAYER_TYPES.RAID_ENEMY].chargeLevel = gameStateParsed.raidEnemyChargeLevel;\n this.transferAmount = gameStateParsed.transferAmount;\n this.activeMapContainerId = gameStateParsed.activeMapContainerId;\n\n if (this.mnemonic) {\n // Properties to re-instantiate\n this.wallet = await this.walletManager.createWallet(this.mnemonic);\n const accounts = await this.wallet.getAccountsWithPrivkeys();\n this.signingAccount = accounts[0];\n }\n }\n\n /**\n * @param {number} height\n */\n setCurrentBlockHeight(height) {\n this.currentBlockHeight = height;\n\n Object.values(PLAYER_TYPES).forEach(playerType => {\n if (this.keyPlayers[playerType].player) {\n this.keyPlayers[playerType].chargeLevel = this.chargeCalculator.calc(this.currentBlockHeight, this.keyPlayers[playerType].lastActionBlockHeight);\n\n window.dispatchEvent(new ChargeLevelChangedEvent(this.keyPlayers[playerType].id, this.keyPlayers[playerType].chargeLevel));\n }\n if (this.keyPlayers[playerType].planetUsedForMap && this.keyPlayers[playerType].planetRaidInfo.isRaidActive()) {\n this.keyPlayers[playerType].setPlanetShieldHealth(height);\n }\n });\n\n this.save();\n\n console.log(`New Block ${height}`);\n }\n\n /**\n * @param {PlanetRaid} info\n * @param dispatchEvent\n */\n setPlanetPlanetRaidInfo(info, dispatchEvent = true) {\n this.keyPlayers[PLAYER_TYPES.PLAYER].planetRaidInfo = info;\n this.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].id = info.fleet_owner;\n this.save();\n\n if (dispatchEvent) {\n window.dispatchEvent(new PlanetRaidStatusChangedEvent(PLAYER_TYPES.PLAYER));\n }\n }\n\n /**\n * @param {PlanetRaid} info\n * @param dispatchEvent\n */\n setRaidPlanetRaidInfo(info, dispatchEvent = true) {\n this.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo = info;\n this.keyPlayers[PLAYER_TYPES.RAID_ENEMY].id = info.planet_owner;\n this.save();\n\n if (dispatchEvent) {\n window.dispatchEvent(new PlanetRaidStatusChangedEvent(PLAYER_TYPES.RAID_ENEMY));\n }\n }\n\n /**\n * @param {number} amount\n */\n setTransferAmount(amount) {\n this.transferAmount = amount;\n this.save();\n }\n\n /**\n * @param {string} id\n */\n setActiveMapContainerId(id) {\n this.activeMapContainerId = id;\n this.save();\n }\n\n /**\n * @param {array} types\n */\n setStructTypes(types) {\n this.structTypes.setStructTypes(types);\n }\n\n /**\n * @param {Struct} struct\n */\n setStruct(struct) {\n const playerType = this.getPlayerTypeById(struct.owner);\n this.keyPlayers[playerType].setStruct(struct);\n }\n\n /**\n * Removes a struct by ID from all struct objects.\n *\n * @param {string} structId\n * @return {Struct|null} The removed struct, or null if not found\n */\n removeStruct(structId) {\n Object.keys(PLAYER_TYPES).forEach((playerType) => {\n if (this.keyPlayers[playerType].structs[structId]) {\n const removedStruct = this.keyPlayers[playerType].structs[structId];\n delete this.keyPlayers[playerType].structs[structId];\n\n window.dispatchEvent(new StructCountChangedEvent(playerType));\n\n return removedStruct;\n }\n });\n\n return null;\n }\n\n /**\n * Adds a pending build to track before the struct ID is known.\n *\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n * @param {StructType} structType\n */\n addPendingBuild(tileType, ambit, slot, playerId, structType) {\n const key = this.getPendingBuildKey(tileType, ambit, slot, playerId);\n this.pendingBuilds.set(key, {\n structType: structType,\n timestamp: Date.now()\n });\n }\n\n /**\n * Removes a pending build after the struct ID is known.\n *\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n */\n removePendingBuild(tileType, ambit, slot, playerId) {\n const key = this.getPendingBuildKey(tileType, ambit, slot, playerId);\n this.pendingBuilds.delete(key);\n }\n\n /**\n * @param {Struct[]} structs\n */\n setPreviewDefenderStructs(structs) {\n this.previewDefenderStructs = {};\n structs.forEach(struct => {\n this.previewDefenderStructs[struct.id] = struct;\n });\n }\n\n /**\n * @param {Struct[]} structs\n */\n setPreviewAttackerStructs(structs) {\n this.previewAttackerStructs = {};\n structs.forEach(struct => {\n this.previewAttackerStructs[struct.id] = struct;\n });\n }\n\n clearPlanetRaidData() {\n this.keyPlayers[PLAYER_TYPES.PLAYER].planetRaidInfo = new PlanetRaid();\n this.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].id = '';\n this.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].player = null;\n this.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].lastActionBlockHeight = 0;\n this.keyPlayers[PLAYER_TYPES.PLAYER].setPlanetShieldHealth(this.currentBlockHeight);\n\n this.save();\n }\n\n clearRaidData() {\n this.keyPlayers[PLAYER_TYPES.RAID_ENEMY].id = '';\n this.keyPlayers[PLAYER_TYPES.RAID_ENEMY].player = null;\n this.keyPlayers[PLAYER_TYPES.RAID_ENEMY].lastActionBlockHeight = 0;\n this.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planet = null;\n this.setRaidPlanetRaidInfo(new PlanetRaid());\n\n this.save();\n }\n\n /**\n * @param {string} type player or enemy\n * @return {string|null}\n */\n getPlayerIdByType(type) {\n return (this.keyPlayers[type] && this.keyPlayers[type].id)\n ? this.keyPlayers[type].id\n : null;\n }\n\n /**\n * @param {String} playerId\n * @return {string}\n */\n getPlayerTypeById(playerId) {\n for (const playerType of Object.values(PLAYER_TYPES)) {\n if (this.keyPlayers[playerType].id === playerId) {\n return playerType;\n }\n }\n\n throw new Error(`Player with ID ${playerId} has no type`);\n }\n\n /**\n * Generates a key for the pending builds map.\n *\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n * @return {string}\n */\n getPendingBuildKey(tileType, ambit, slot, playerId) {\n return `${tileType}-${ambit.toLowerCase()}-${slot}-${playerId}`;\n }\n\n /**\n * Gets a pending build by position.\n *\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n * @return {{structType: StructType, timestamp: number}|null}\n */\n getPendingBuild(tileType, ambit, slot, playerId) {\n const key = this.getPendingBuildKey(tileType, ambit, slot, playerId);\n return this.pendingBuilds.get(key) || null;\n }\n\n /**\n * @param {string} playerType\n * @return {PlanetRaid}\n */\n getPlanetRaidInfoForKeyPlayer(playerType) {\n if (this.keyPlayers[playerType].hasForeignRaidInfo()) {\n const sourcePlayerType = this.keyPlayers[playerType].getForeignRaidInfoSource();\n return this.keyPlayers[sourcePlayerType].planetRaidInfo;\n }\n return this.keyPlayers[playerType].planetRaidInfo;\n }\n\n /** @return {null|string} */\n getActiveMapId() {\n const mapContainerElm = document.getElementById(this.activeMapContainerId);\n if (mapContainerElm) {\n const mapElm = mapContainerElm.querySelector('.map');\n if (mapElm) {\n return mapElm.id\n }\n }\n return null;\n }\n\n /**\n * @param {string|null} playerType\n * @return {Struct|null}\n */\n getPlanetaryDefenseStructByKeyPlayer(playerType) {\n const keyPlayer = playerType ? this.keyPlayers[playerType] : null;\n const pdcStructType = this.structTypes.getStructType(STRUCT_TYPES.PLANETARY_DEFENSE_CANNON);\n if (!keyPlayer || !pdcStructType) {\n return null;\n }\n return Object.values(keyPlayer.structs).find(struct =>\n struct.type === pdcStructType.id\n && struct.location_type === 'planet'\n ) || null;\n }\n\n printMyPlayer() {\n console.log('Player ID: ' + this.keyPlayers[PLAYER_TYPES.PLAYER].id);\n console.log('Singing Account: ' + this.signingAccount.address);\n console.log('Primary Account: ' + this.keyPlayers[PLAYER_TYPES.PLAYER].player.primary_address);\n }\n}\n","export class Guild {\n constructor() {\n this.id = null;\n this.endpoint = null;\n this.join_infusion_minimum = null;\n this.join_infusion_minimum_bypass_by_request = null;\n this.join_infusion_minimum_bypass_by_invite = null;\n this.primary_reactor_id = null;\n this.entry_substation_id = null;\n this.creator = null;\n this.owner = null;\n this.name = null;\n this.description = null;\n this.tag = null;\n this.logo = null;\n this.socials = null;\n this.website = null;\n this.this_infrastructure = true;\n this.status = null;\n this.reactor_ratio = null;\n this.default_commission = null;\n this.validator = null;\n }\n}","export class Infusion {\n constructor() {\n this.destination_id = null;\n this.address = null;\n this.destination_type = null;\n this.player_id = null;\n this.fuel = null;\n this.defusing = null;\n this.power = null;\n this.ratio = null;\n this.commission = null;\n this.created_at = null;\n this.updated_at = null;\n this.join_infusion_minimum = null;\n }\n}","import {PlanetaryShieldInfoDTO} from \"../dtos/PlanetaryShieldInfoDTO\";\nimport {PlanetRaid} from \"./PlanetRaid\";\nimport {ChargeLevelChangedEvent} from \"../events/ChargeLevelChangedEvent\";\nimport {ChargeCalculator} from \"../util/ChargeCalculator\";\nimport {SaveGameStateEvent} from \"../events/SaveGameStateEvent\";\nimport {StructCountChangedEvent} from \"../events/StructCountChangedEvent\";\nimport {Player} from \"./Player\";\nimport {AlphaCountChangedEvent} from \"../events/AlphaCountChangedEvent\";\nimport {EnergyUsageChangedEvent} from \"../events/EnergyUsageChangedEvent\";\nimport {OreCountChangedEvent} from \"../events/OreCountChangedEvent\";\nimport {ShieldHealthCalculator} from \"../util/ShieldHealthCalculator\";\nimport {ShieldHealthChangedEvent} from \"../events/ShieldHealthChangedEvent\";\nimport {UndiscoveredOreCountChangedEvent} from \"../events/UndiscoveredOreCountChangedEvent\";\nimport {PlanetRaidStatusChangedEvent} from \"../events/PlanetRaidStatusChangedEvent\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\nimport {Fleet} from \"./Fleet\";\nimport {TrackDestroyedStructsEvent} from \"../events/TrackDestroyedStructsEvent\";\nimport {TrackDestroyedStructEvent} from \"../events/TrackDestroyedStructEvent\";\n\nexport class KeyPlayer {\n\n /**\n * @param {string} playerType See PLAYER_TYPES\n * @param {boolean} planetUsedForMap Whether or not this key player's planet is used for a map\n * @param {string} planetMapType The map type of this planet if it's used for a map.\n * @param {string} foreignRaidInfoKeyPlayer The key player that contains the raid info\n */\n constructor(\n playerType,\n planetUsedForMap,\n planetMapType = '',\n foreignRaidInfoKeyPlayer = ''\n ) {\n\n this.chargeCalculator = new ChargeCalculator();\n this.shieldHealthCalculator = new ShieldHealthCalculator();\n\n /** @type {string} See PLAYER_TYPES */\n this.playerType = playerType;\n\n /** @type {string} */\n this.id = '';\n\n /** @type {Player} */\n this.player = null;\n\n /** @type {number} */\n this.lastActionBlockHeight = 0;\n\n /** @type {number} */\n this.chargeLevel = 0;\n\n /** @type {Planet} */\n this.planet = null;\n\n /** @type {number} */\n this.planetShieldHealth = 100;\n\n /** @type {PlanetaryShieldInfoDTO} */\n this.planetShieldInfo = new PlanetaryShieldInfoDTO();\n\n /** @type {PlanetRaid} */\n this.planetRaidInfo = new PlanetRaid();\n\n /** @type {boolean} Whether or not this key player's planet is used for a map */\n this.planetUsedForMap = planetUsedForMap;\n\n /** @type {string} The map type of this planet if it's used for a map. */\n this.planetMapType = planetUsedForMap ? planetMapType : '';\n\n /** @type {Fleet} */\n this.fleet = null;\n\n /** @type {Object} */\n this.structs = {};\n\n /** @type {string} foreignRaidInfoKeyPlayer */\n this.foreignRaidInfoKeyPlayer = foreignRaidInfoKeyPlayer;\n\n }\n\n setAlpha(alpha) {\n if (this.player && this.player.hasOwnProperty('alpha')) {\n this.player.alpha = alpha;\n\n window.dispatchEvent(new SaveGameStateEvent());\n window.dispatchEvent(new AlphaCountChangedEvent(this.playerType));\n }\n }\n\n /**\n * @param {number} connectionCapacity\n */\n setConnectionCapacity(connectionCapacity) {\n if (this.player && this.player.hasOwnProperty('connection_capacity')) {\n this.player.connection_capacity = connectionCapacity;\n\n window.dispatchEvent(new SaveGameStateEvent());\n window.dispatchEvent(new EnergyUsageChangedEvent(this.playerType));\n }\n }\n\n /**\n * @param {string} id\n */\n setId(id) {\n this.id = id;\n\n window.dispatchEvent(new SaveGameStateEvent());\n }\n\n /**\n * @param {number} currentBlockHeight\n * @param {number} height\n */\n setLastActionBlockHeight(currentBlockHeight, height) {\n this.lastActionBlockHeight = height;\n this.chargeLevel = this.chargeCalculator.calc(currentBlockHeight, this.lastActionBlockHeight);\n\n window.dispatchEvent(new SaveGameStateEvent());\n window.dispatchEvent(new ChargeLevelChangedEvent(this.id, this.chargeLevel));\n }\n\n /**\n * @param {number} load\n */\n setLoad(load) {\n if (this.player && this.player.hasOwnProperty('load')) {\n this.player.load = load;\n\n window.dispatchEvent(new SaveGameStateEvent());\n window.dispatchEvent(new EnergyUsageChangedEvent(this.playerType));\n }\n }\n\n /**\n * @param {number|string} ore\n */\n setOre(ore) {\n if (this.player && this.player.hasOwnProperty('ore')) {\n this.player.ore = parseInt(ore);\n\n window.dispatchEvent(new SaveGameStateEvent());\n window.dispatchEvent(new OreCountChangedEvent(this.playerType));\n }\n }\n\n /**\n * @param {Planet} planet\n */\n setPlanet(planet) {\n this.planet = planet;\n\n window.dispatchEvent(new UndiscoveredOreCountChangedEvent(this.playerType));\n }\n\n /**\n * @param {string} status\n * @param dispatchEvent\n */\n setPlanetRaidStatus(status, dispatchEvent = true) {\n this.planetRaidInfo.status = status;\n window.dispatchEvent(new SaveGameStateEvent());\n\n if (dispatchEvent) {\n window.dispatchEvent(new PlanetRaidStatusChangedEvent(this.playerType));\n }\n }\n\n /**\n * @param {number} currentBlockHeight\n */\n setPlanetShieldHealth(currentBlockHeight) {\n let health = 100;\n\n if (\n this.planetRaidInfo.isRaidActive()\n && currentBlockHeight\n && this.planetShieldInfo.block_start_raid\n ) {\n health = this.shieldHealthCalculator.calc(\n this.planetShieldInfo.planetary_shield,\n this.planetShieldInfo.block_start_raid,\n currentBlockHeight\n );\n }\n\n this.planetShieldHealth = health;\n\n window.dispatchEvent(new ShieldHealthChangedEvent(this.playerType));\n }\n\n /**\n * @param {PlanetaryShieldInfoDTO} info\n * @param {number} currentBlockHeight\n */\n setPlanetShieldInfo(info, currentBlockHeight) {\n this.planetShieldInfo = info;\n\n this.setPlanetShieldHealth(currentBlockHeight);\n }\n\n /**\n * @param {Player} player\n */\n setPlayer(player) {\n this.player = player;\n\n window.dispatchEvent(new AlphaCountChangedEvent(this.playerType));\n window.dispatchEvent(new EnergyUsageChangedEvent(this.playerType));\n window.dispatchEvent(new OreCountChangedEvent(this.playerType));\n }\n\n /**\n * @param {number} capacity\n */\n setPlayerCapacity(capacity) {\n if (this.player && this.player.hasOwnProperty('capacity')) {\n this.player.capacity = capacity;\n\n window.dispatchEvent(new SaveGameStateEvent());\n window.dispatchEvent(new EnergyUsageChangedEvent(this.playerType));\n }\n }\n\n /**\n * @param {Struct[]} structs\n */\n setStructs(structs) {\n this.structs = {};\n structs.forEach(struct => {\n this.structs[struct.id] = struct;\n });\n\n window.dispatchEvent(new StructCountChangedEvent(this.playerType));\n window.dispatchEvent(new TrackDestroyedStructsEvent(this.playerType));\n }\n\n /**\n * @param {number} structsLoad\n */\n setStructsLoad(structsLoad) {\n if (this.player && this.player.hasOwnProperty('structs_load')) {\n this.player.structs_load = structsLoad;\n\n window.dispatchEvent(new SaveGameStateEvent());\n window.dispatchEvent(new EnergyUsageChangedEvent(this.playerType));\n }\n }\n\n /**\n * @param {Struct} struct\n */\n setStruct(struct) {\n this.structs[struct.id] = struct;\n\n window.dispatchEvent(new StructCountChangedEvent(this.playerType));\n window.dispatchEvent(new TrackDestroyedStructEvent(this.playerType, struct.id));\n }\n\n /**\n * @param {number} currentBlockHeight\n * @return {number}\n */\n getCharge(currentBlockHeight) {\n return this.chargeCalculator.calcCharge(currentBlockHeight, this.lastActionBlockHeight);\n }\n\n getForeignRaidInfoSource() {\n return this.foreignRaidInfoKeyPlayer;\n }\n\n getPlanetId() {\n if (!this.planetUsedForMap) {\n return null;\n }\n\n if (this.planet) {\n return this.planet.id;\n } else if (this.isRaidDependent()) {\n return this.planetRaidInfo.planet_id;\n }\n\n return null;\n }\n\n /**\n * @return {string}\n */\n getPlanetShieldHealth() {\n return this.planetShieldHealth + \"%\";\n }\n\n /**\n * @return {string}\n */\n getTag() {\n return this.player && this.player.tag && this.player.tag.length > 0\n ? `[${this.player.tag}]`\n : '';\n }\n\n /**\n * @return {string}\n */\n getUsername() {\n return this.player && this.player.username && this.player.username.length > 0\n ? `${this.player.username}`\n : `PID# ${this.id}`;\n }\n\n /**\n * @return {boolean}\n */\n isRaidDependent() {\n return this.playerType !== PLAYER_TYPES.PLAYER;\n }\n\n /**\n * @return {boolean}\n */\n hasForeignRaidInfo() {\n return !!this.foreignRaidInfoKeyPlayer;\n }\n\n /**\n * @param {string} fleetId\n */\n isFleetOwner(fleetId) {\n return fleetId && this.fleet?.id === fleetId;\n }\n\n}\n","import {AMBITS} from \"../constants/Ambits\";\nimport {MAP_TILE_TYPES} from \"../constants/MapConstants\";\n\nexport class Planet {\n constructor() {\n this.id = null;\n this.owner = null;\n this.map = null;\n this.space_slots = null;\n this.air_slots = null;\n this.land_slots = null;\n this.water_slots = null;\n this.name = null;\n this.undiscovered_ore = null;\n\n // TODO: Temporary, for map testing until ornament system chain side is built\n this.ornaments = new Map([\n [AMBITS.SPACE, []],\n [AMBITS.AIR, []],\n [AMBITS.LAND, []],\n [AMBITS.WATER, []]\n ]);\n }\n\n /**\n * Get a list of the planet's available ambits.\n *\n * @return {string[]}\n */\n getAmbits() {\n const ambits = [];\n if (this.space_slots && this.space_slots > 0) {\n ambits.push(AMBITS.SPACE);\n }\n if (this.air_slots && this.air_slots > 0) {\n ambits.push(AMBITS.AIR);\n }\n if (this.land_slots && this.land_slots > 0) {\n ambits.push(AMBITS.LAND);\n }\n if (this.water_slots && this.water_slots > 0) {\n ambits.push(AMBITS.WATER);\n }\n return ambits;\n }\n\n /**\n * Get a map of ambits to ambit map ornaments.\n *\n * @return {Map}\n */\n getOrnaments() {\n return this.ornaments;\n }\n\n /**\n * @param {string} ambit\n * @param {StructTypeCollection} structTypes\n * @return {number}\n */\n getPlanetarySlotsByAmbit(ambit, structTypes) {\n const property = `${ambit.toLowerCase()}_slots`;\n\n if (this[property] === undefined) {\n throw new Error(`Invalid ambit: ${ambit}`);\n }\n\n if (structTypes.fetchAllByTileTypeAndAmbit(MAP_TILE_TYPES.PLANETARY_SLOT, ambit).length > 0) {\n return this[property];\n }\n\n return 0;\n }\n}","import {RAID_STATUS} from \"../constants/RaidStatus\";\n\nexport class PlanetRaid {\n constructor() {\n this.planet_id = null;\n this.planet_owner = null;\n this.fleet_id = null;\n this.fleet_owner = null;\n this.status = null;\n this.updated_at = null;\n }\n\n isRaidActive() {\n return (\n this.status === RAID_STATUS.INITIATED\n || this.status === RAID_STATUS.ONGOING\n );\n }\n}","export class Player {\n constructor() {\n this.id = null;\n this.primary_address = null;\n this.guild_id = null;\n this.substation_id = null;\n this.planet_id = null;\n this.fleet_id = null;\n this.username = null;\n this.pfp = null;\n this.guild_name = null;\n this.tag = null;\n this.alpha = null;\n this.ore = null;\n this.load = null;\n this.structs_load = null;\n this.capacity = null;\n this.connection_capacity = null;\n }\n\n /**\n * @return {string}\n */\n getTag() {\n return (this.tag && this.tag.length > 0) ? `[${this.tag}]` : '';\n }\n\n /**\n * @return {string}\n */\n getUsername() {\n return (this.username && this.username.length > 0) ? `${this.username}` : 'Name Redacted';\n }\n}","export class PlayerAddress {\n constructor() {\n this.address = null;\n this.player_id = null;\n this.guild_id = null;\n this.status = null;\n\n this.ip = null;\n this.user_agent = null;\n\n this.block_time = null;\n\n this.permissions = null;\n\n this.alpha = null;\n\n this.isOnlyManagingDevice = false;\n }\n}","export class PlayerAddressPending {\n constructor() {\n this.code = null;\n this.address = null;\n this.signature = null;\n this.pubkey = null;\n this.ip = null;\n this.user_agent = null;\n this.permissions = null;\n this.created_at = null;\n this.updated_at = null;\n }\n}","export class PlayerOreStats {\n constructor() {\n this.player_id = null;\n this.forfeited = null;\n this.mined = null;\n this.seized = null;\n }\n}","export class Setting {\n constructor() {\n\n /** @type {string|null} */\n this.name = null;\n\n /** @type {string|null} */\n this.value = null;\n\n /** @type {string|null} */\n this.updated_at = null;\n }\n\n}\n","export class Settings {\n \n constructor() {\n this.settings = new Map();\n }\n\n /** @param {Setting} setting */\n add(setting) {\n this.settings.set(setting.name, setting);\n }\n\n /**\n * @param {string} settingName\n * @return {string|number|null}\n */\n get(settingName) {\n if (!this.settings.has(settingName)) {\n return null;\n }\n\n const value = this.settings.get(settingName).value;\n const parsedValue = parseInt(value);\n\n return isNaN(parsedValue) ? value : parsedValue;\n }\n\n}","import {STRUCT_STATUS_FLAGS} from \"../constants/StructConstants\";\n\nexport class Struct {\n constructor() {\n /** @type {string|null} */\n this.id = null;\n\n /** @type {number|null} */\n this.index = null;\n\n /** @type {number|null} - FK to struct_type.id */\n this.type = null;\n\n /** @type {string|null} */\n this.creator = null;\n\n /** @type {string|null} - Player ID who owns this struct */\n this.owner = null;\n\n /** @type {string|null} - \"fleet\" or \"planet\" */\n this.location_type = null;\n\n /** @type {string|null} - Fleet ID or Planet ID */\n this.location_id = null;\n\n /** @type {string|null} - \"space\", \"air\", \"land\", \"water\" */\n this.operating_ambit = null;\n\n /** @type {number|null} */\n this.slot = null;\n\n /** @type {number|null} */\n this.health = null;\n\n /** @type {number|null} */\n this.status = null;\n\n /** @type {string|null} the ID of the struct that this struct is protecting => */\n this.protected_struct_id = null;\n\n /** @type {string[]} the IDs of the structs that are defending this struct <=> */\n this.defending_struct_ids = [];\n\n /** @type {number|null} */\n this.destroyed_block = null;\n }\n\n /**\n * @return {boolean}\n */\n isMaterialized() {\n return (this.status & STRUCT_STATUS_FLAGS.MATERIALIZED) > 0;\n }\n\n /**\n * @return {boolean}\n */\n isBuilt() {\n return (this.status & STRUCT_STATUS_FLAGS.BUILT) > 0;\n }\n\n /**\n * @return {boolean}\n */\n isOnline() {\n return (this.status & STRUCT_STATUS_FLAGS.ONLINE) > 0;\n }\n\n /**\n * @return {boolean}\n */\n isStored() {\n return (this.status & STRUCT_STATUS_FLAGS.STORED) > 0;\n }\n\n /**\n * @return {boolean}\n */\n isDefending() {\n return !!this.protected_struct_id;\n }\n\n /**\n * @return {boolean}\n */\n isDefended() {\n return this.defending_struct_ids.length > 0;\n }\n\n /**\n * @return {boolean}\n */\n isHidden() {\n return (this.status & STRUCT_STATUS_FLAGS.HIDDEN) > 0;\n }\n\n /**\n * @return {boolean}\n */\n isDestroyed() {\n return (this.status & STRUCT_STATUS_FLAGS.DESTROYED) > 0;\n }\n\n /**\n * @return {boolean}\n */\n isLocked() {\n return (this.status & STRUCT_STATUS_FLAGS.LOCKED) > 0;\n }\n\n /**\n * @param {number} flag see STRUCT_STATUS_FLAGS\n */\n addStatusFlag(flag) {\n this.status |= flag;\n }\n\n /**\n * @param {number} flag see STRUCT_STATUS_FLAGS\n */\n removeStatusFlag(flag) {\n this.status &= ~flag;\n }\n}\n\n","import {\n STRUCT_PRIMARY_WEAPON,\n STRUCT_SECONDARY_WEAPON,\n STRUCT_PASSIVE_WEAPONRY,\n STRUCT_UNIT_DEFENSES,\n STRUCT_ORE_RESERVE_DEFENSES,\n STRUCT_PLANETARY_DEFENSES,\n STRUCT_PLANETARY_MINING,\n STRUCT_PLANETARY_REFINERY,\n STRUCT_POWER_GENERATION\n} from \"../constants/StructConstants\";\n\nexport class StructType {\n\n constructor() {\n this.id = null;\n this.type = null;\n\n /** @type {string|null} */\n this.category = null;\n\n this.build_limit = null;\n this.build_difficulty = null;\n this.build_draw = null;\n this.max_health = null;\n this.passive_draw = null;\n this.possible_ambit = null;\n this.movable = null;\n this.slot_bound = null;\n this.primary_weapon = null;\n this.primary_weapon_label = null;\n this.primary_weapon_description = null;\n this.primary_weapon_control = null;\n this.primary_weapon_charge = null;\n this.primary_weapon_ambits = null;\n this.primary_weapon_ambits_array = null;\n this.primary_weapon_targets = null;\n this.primary_weapon_shots = null;\n this.primary_weapon_damage = null;\n this.primary_weapon_blockable = null;\n this.primary_weapon_counterable = null;\n this.primary_weapon_recoil_damage = null;\n this.primary_weapon_shot_success_rate_numerator = null;\n this.primary_weapon_shot_success_rate_denominator = null;\n this.secondary_weapon = null;\n this.secondary_weapon_label = null;\n this.secondary_weapon_description = null;\n this.secondary_weapon_control = null;\n this.secondary_weapon_charge = null;\n this.secondary_weapon_ambits = null;\n this.secondary_weapon_ambits_array = null;\n this.secondary_weapon_targets = null;\n this.secondary_weapon_shots = null;\n this.secondary_weapon_damage = null;\n this.secondary_weapon_blockable = null;\n this.secondary_weapon_counterable = null;\n this.secondary_weapon_recoil_damage = null;\n this.secondary_weapon_shot_success_rate_numerator = null;\n this.secondary_weapon_shot_success_rate_denominator = null;\n this.passive_weaponry = null;\n this.passive_weaponry_label = null;\n this.passive_weaponry_description = null;\n this.unit_defenses = null;\n this.unit_defenses_label = null;\n this.unit_defenses_description = null;\n this.ore_reserve_defenses = null;\n this.ore_reserve_defenses_label = null;\n this.ore_reserve_defenses_description = null;\n this.planetary_defenses = null;\n this.planetary_defenses_label = null;\n this.planetary_defenses_description = null;\n this.planetary_mining = null;\n this.planetary_mining_label = null;\n this.planetary_mining_description = null;\n this.planetary_refinery = null;\n this.planetary_refinery_label = null;\n this.planetary_refinery_description = null;\n this.power_generation = null;\n this.power_generation_label = null;\n this.power_generation_description = null;\n this.activate_charge = null;\n this.build_charge = null;\n this.defend_change_charge = null;\n this.move_charge = null;\n this.ore_mining_charge = null;\n this.ore_refining_charge = null;\n this.stealth_activate_charge = null;\n this.attack_reduction = null;\n this.attack_counterable = null;\n this.stealth_systems = null;\n this.counter_attack = null;\n this.counter_attack_same_ambit = null;\n this.post_destruction_damage = null;\n this.generating_rate = null;\n this.planetary_shield_contribution = null;\n this.ore_mining_difficulty = null;\n this.ore_refining_difficulty = null;\n this.unguided_defensive_success_rate_numerator = null;\n this.unguided_defensive_success_rate_denominator = null;\n this.guided_defensive_success_rate_numerator = null;\n this.guided_defensive_success_rate_denominator = null;\n this.trigger_raid_defeat_by_destruction = null;\n this.updated_at = null;\n this.possible_ambit_array = null;\n this.is_command = null;\n this.drive_label = null;\n this.drive_description = null;\n this['class'] = null;\n this.class_abbreviation = null;\n this.default_cosmetic_model_number = null;\n this.default_cosmetic_name = null;\n }\n\n /**\n * Checks if the struct type has a primary weapon.\n * @return {boolean}\n */\n hasPrimaryWeapon() {\n return this.primary_weapon\n && this.primary_weapon !== STRUCT_PRIMARY_WEAPON.NO_ACTIVE_WEAPONRY;\n }\n\n /**\n * Checks if the struct type has a secondary weapon.\n * @return {boolean}\n */\n hasSecondaryWeapon() {\n return this.secondary_weapon\n && this.secondary_weapon !== STRUCT_SECONDARY_WEAPON.NO_ACTIVE_WEAPONRY;\n }\n\n /**\n * Checks if the struct type has passive weaponry.\n * @return {boolean}\n */\n hasPassiveWeaponry() {\n return this.passive_weaponry\n && this.passive_weaponry !== STRUCT_PASSIVE_WEAPONRY.NO_PASSIVE_WEAPONRY;\n }\n\n /**\n * Checks if the struct type has unit defenses.\n * @return {boolean}\n */\n hasUnitDefenses() {\n return this.unit_defenses\n && this.unit_defenses !== STRUCT_UNIT_DEFENSES.NO_UNIT_DEFENSES;\n }\n\n /**\n * Checks if the struct type has ore reserve defenses.\n * @return {boolean}\n */\n hasOreReserveDefenses() {\n return this.ore_reserve_defenses\n && this.ore_reserve_defenses !== STRUCT_ORE_RESERVE_DEFENSES.NO_ORE_RESERVE_DEFENSES;\n }\n\n /**\n * Checks if the struct type has planetary defenses.\n * @return {boolean}\n */\n hasPlanetaryDefenses() {\n return this.planetary_defenses\n && this.planetary_defenses !== STRUCT_PLANETARY_DEFENSES.NO_PLANETARY_DEFENSE;\n }\n\n /**\n * Checks if the struct type has planetary mining capability.\n * @return {boolean}\n */\n hasPlanetaryMining() {\n return this.planetary_mining\n && this.planetary_mining !== STRUCT_PLANETARY_MINING.NO_PLANETARY_MINING;\n }\n\n /**\n * Checks if the struct type has planetary refinery capability.\n * @return {boolean}\n */\n hasPlanetaryRefinery() {\n return this.planetary_refinery\n && this.planetary_refinery !== STRUCT_PLANETARY_REFINERY.NO_PLANETARY_REFINERY;\n }\n\n /**\n * Checks if the struct type has power generation capability.\n * @return {boolean}\n */\n hasPowerGeneration() {\n return this.power_generation\n && this.power_generation !== STRUCT_POWER_GENERATION.NO_POWER_GENERATION;\n }\n\n /**\n * Checks if the struct type has the ability to move.\n * @return {boolean}\n */\n isMovable() {\n return this.movable;\n }\n\n /**\n * Checks if the struct type has defensive maneuver capability.\n * @return {boolean}\n */\n hasDefensiveManeuver() {\n return this.unit_defenses\n && this.unit_defenses === STRUCT_UNIT_DEFENSES.DEFENSIVE_MANEUVER;\n }\n\n /**\n * Checks if the struct type has signal jamming capability.\n * @return {boolean}\n */\n hasSignalJamming() {\n return this.unit_defenses\n && this.unit_defenses === STRUCT_UNIT_DEFENSES.SIGNAL_JAMMING;\n }\n}","import {\n STRUCT_EQUIPMENT,\n STRUCT_STILL_LAYERS,\n STRUCT_WATER_RIPPLE,\n STRUCT_WEAPON_SYSTEM\n} from \"../constants/StructConstants\";\n\nexport class StructTypeArtSet {\n constructor(structType) {\n this.structType = structType;\n this[STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE] = '';\n this[STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG] = '';\n this[STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON] = '';\n this[STRUCT_WEAPON_SYSTEM.SECONDARY_WEAPON] = '';\n this[STRUCT_EQUIPMENT.PASSIVE_WEAPONRY] = '';\n this[STRUCT_EQUIPMENT.UNIT_DEFENSES] = '';\n this[STRUCT_EQUIPMENT.ORE_RESERVE_DEFENSES] = '';\n this[STRUCT_EQUIPMENT.PLANETARY_DEFENSES] = '';\n this[STRUCT_EQUIPMENT.PLANETARY_MINING] = '';\n this[STRUCT_EQUIPMENT.PLANETARY_REFINERY] = '';\n this[STRUCT_EQUIPMENT.POWER_GENERATION] = '';\n this[STRUCT_WATER_RIPPLE] = '';\n }\n}\n\n","import {MAP_TILE_TYPES} from \"../constants/MapConstants\";\nimport {STRUCT_CATEGORIES} from \"../constants/StructConstants\";\nimport {StructType} from \"./StructType\";\n\nexport class StructTypeCollection {\n constructor() {\n this.structTypes = [];\n }\n\n /**\n * @param {StructType[]} structTypes\n */\n setStructTypes(structTypes) {\n this.structTypes = structTypes;\n }\n\n /**\n * @param {String}type\n * @return {StructType|undefined}\n */\n getStructType(type) {\n return this.structTypes.find((structType) =>\n structType.type === type\n && !this.isExcluded(structType)\n );\n }\n\n /**\n * @param {number} id\n * @return {StructType}\n */\n getStructTypeById(id) {\n return this.structTypes.find((structType) =>\n structType.id === id\n && !this.isExcluded(structType)\n );\n }\n\n /**\n * @param {StructType} structType\n * @return {boolean}\n */\n isExcluded(structType) {\n return structType.type.toLowerCase() === 'continental power plant'\n || structType.type.toLowerCase() === 'world engine';\n }\n\n /**\n * @param {string} tileType\n * @param {string} ambit\n * @return {StructType[]}\n */\n fetchAllByTileTypeAndAmbit(tileType, ambit) {\n return this.structTypes.filter((structType) =>\n structType.possible_ambit_array.includes(ambit.toLowerCase())\n && (\n (\n tileType === MAP_TILE_TYPES.PLANETARY_SLOT\n && structType.category === STRUCT_CATEGORIES.PLANET\n && !this.isExcluded(structType)\n ) || (\n tileType === MAP_TILE_TYPES.FLEET\n && structType.category === STRUCT_CATEGORIES.FLEET\n && !structType.is_command\n ) || (\n tileType === MAP_TILE_TYPES.COMMAND\n && structType.is_command\n )\n )\n );\n }\n}","import {TASK} from \"../constants/TaskConstants\";\nimport {TASK_STATUS} from \"../constants/TaskStatus\";\nimport {TaskStateFactory} from \"../factories/TaskStateFactory\";\nimport {TaskState} from \"./TaskState\";\nimport {TaskWorkerChangedEvent} from \"../events/TaskWorkerChangedEvent\";\nimport {TaskStateChangedEvent} from \"../events/TaskStateChangedEvent\";\n\n\nexport class TaskProcess {\n\n /**\n * @param {TaskState} _state\n */\n constructor(state) {\n this.worker = null;\n this.state = state;\n }\n\n start() {\n if (this.isCompleted()){\n console.log('Cannot start Completed state');\n return false;\n }\n\n if (this.isTerminated()){\n console.log('Cannot start Terminated state');\n return false;\n }\n\n if (this.hasWorker()) {\n this.worker.terminate();\n }\n\n this.worker = new Worker(TASK.WORKER_PATH);\n\n this.worker.onmessage = async function (result) {\n const taskStateFactory = new TaskStateFactory();\n let state = taskStateFactory.make(result.data[0]);\n window.dispatchEvent(new TaskWorkerChangedEvent(state));\n }\n\n // Send the initial state to the Worker\n if (!this.isRunning()) {\n this.state.status = TASK_STATUS.STARTING;\n }\n this.clearEstimatedBlockStartOffset();\n this.worker.postMessage([this.state]);\n return true\n }\n\n /**\n * @param {TaskState} new_state\n */\n replaceState(new_state) {\n switch (this.state.status) {\n case TASK_STATUS.INITIATED:\n case TASK_STATUS.PAUSED:\n new_state.setStatus(this.state.status);\n this.setState(new_state);\n break;\n\n case TASK_STATUS.STARTING:\n case TASK_STATUS.RUNNING:\n case TASK_STATUS.TERMINATED:\n this.setState(new_state);\n this.start();\n break;\n\n case TASK_STATUS.COMPLETED:\n console.log(\"Tried to spawn new state over completed task \" + this.state.getPID());\n break;\n }\n }\n\n pause(estimatedHashrate, estimatedBlockStartOffset) {\n this.clearWorker();\n this.setEstimatedHashrateAndBlockStartOffset(estimatedHashrate, estimatedBlockStartOffset);\n this.setStatus(TASK_STATUS.PAUSED);\n }\n\n terminate() {\n this.clearWorker();\n this.setStatus(TASK_STATUS.TERMINATED);\n }\n\n clearWorker() {\n this.worker.terminate();\n this.worker = null;\n }\n\n /**\n * @return {string}\n */\n getPID(){\n return this.state.getObjectId();\n }\n\n /**\n * @return {boolean}\n */\n hasWorker() {\n return (this.worker !== null);\n }\n\n /**\n * @return {boolean}\n */\n isInitiated() {\n return this.state.status === TASK_STATUS.INITIATED;\n }\n\n /**\n * @return {boolean}\n */\n isStarting() {\n return this.state.status === TASK_STATUS.STARTING;\n }\n\n /**\n * @return {boolean}\n */\n isWaiting() {\n return this.state.status === TASK_STATUS.WAITING;\n }\n\n /**\n * @return {boolean}\n */\n isRunning() {\n return this.state.status === TASK_STATUS.RUNNING;\n }\n\n /**\n * @return {boolean}\n */\n isPaused() {\n return this.state.status === TASK_STATUS.PAUSED;\n }\n\n /**\n * @return {boolean}\n */\n isTerminated() {\n return this.state.status === TASK_STATUS.TERMINATED;\n }\n\n /**\n * @return {boolean}\n */\n isCompleted() {\n return this.state.status === TASK_STATUS.COMPLETED;\n }\n\n canStart() {\n return this.isInitiated() || this.isPaused();\n }\n\n canPause() {\n return this.isStarting() || this.isWaiting() || this.isRunning();\n }\n\n canResume() {\n return !(this.isRunning() || this.isWaiting() || this.isStarting() || this.isCompleted());\n }\n\n canSweep() {\n return this.isTerminated() || this.isCompleted();\n }\n\n /**\n * @param {string} new_status\n */\n setStatus(new_status) {\n this.state.status = new_status;\n this.dispatchProgress();\n }\n\n /**\n * @param {TaskState} new_state\n */\n setState(new_state) {\n this.state = new_state;\n this.dispatchProgress();\n }\n\n /**\n * @param {number} estimatedHashrate\n * @param {number} estimatedBlockStartOffset\n */\n setEstimatedHashrateAndBlockStartOffset(estimatedHashrate, estimatedBlockStartOffset){\n this.state.estimated_hashrate = estimatedHashrate;\n this.state.estimated_block_start_offset = estimatedBlockStartOffset;\n }\n\n clearEstimatedBlockStartOffset() {\n this.state.estimated_block_start_offset = 0;\n }\n\n dispatchProgress(){\n window.dispatchEvent(new TaskStateChangedEvent(this.state));\n }\n}\n","import {TASK} from \"../constants/TaskConstants\";\nimport {TASK_STATUS} from \"../constants/TaskStatus\";\nimport {sha256} from \"js-sha256\";\n\n\nexport class TaskState {\n constructor() {\n this.status = TASK_STATUS.INITIATED;\n this.object_id = null;\n this.target_id = null;\n this.object_type = null;\n this.task_type = null;\n this.identity = null;\n\n this.prefix = null; // Entire string up to NONCE\n this.postfix = null; // Optional IDENTITY\n this.nonce_start = Math.floor(Math.random() * 10000000000);\n this.nonce_current = this.nonce_start;\n this.iterations = 0;\n this.iterations_since_last_start = 0;\n this.process_start_time = new Date();\n this.process_end_time = null;\n this.difficulty_start = null;\n this.difficulty_target = null;\n this.block_start = null;\n this.block_checkpoint = null;\n this.block_checkpoint_time = null;\n this.block_current_estimated = null;\n this.result_exists = false;\n this.result_message = null;\n this.result_nonce = null;\n this.result_hash = null;\n this.result_difficulty = 0;\n\n this.estimated_hashrate = TASK.HASHRATE_INITIAL_ESTIMATE;\n this.estimated_block_start_offset = 0;\n this.last_status_change_time = new Date();\n }\n\n /**\n * @return {boolean}\n */\n isCompleted() {\n return this.status === TASK_STATUS.COMPLETED;\n }\n\n /**\n * @return {boolean}\n */\n isWaiting() {\n return this.status === TASK_STATUS.WAITING;\n }\n\n /**\n * @return {boolean}\n */\n isRunning() {\n return this.status === TASK_STATUS.RUNNING;\n }\n\n /**\n * @return {string}\n */\n toLog(){\n return JSON.stringify(this, null, 2);\n }\n\n /**\n * @param {number} block\n */\n setBlockCheckpoint(block) {\n this.block_checkpoint_time = new Date();\n this.block_checkpoint = block;\n this.block_current_estimated = block;\n }\n\n /**\n * @param {string} status\n */\n setStatus(status) {\n this.last_status_change_time = new Date();\n this.status = status\n }\n\n /**\n * @param {string} nonce\n * @param {string} message\n * @param {string} hash\n * @param {number} difficulty\n */\n setResult(nonce, message, hash, difficulty) {\n this.status = TASK_STATUS.COMPLETED;\n this.process_end_time = new Date();\n this.result_exists = true;\n this.result_message = message;\n this.result_nonce = nonce + this.postfix;\n this.result_hash = hash;\n this.result_difficulty = difficulty;\n }\n\n /**\n * @param {number} difficulty\n */\n setPreviousResult(difficulty) {\n this.status = TASK_STATUS.COMPLETED;\n this.process_end_time = new Date();\n this.result_difficulty = difficulty;\n }\n\n getNextNonce() {\n this.iterations++;\n return ++this.nonce_current;\n }\n\n getObjectId() {\n return this.object_id;\n }\n\n /**\n * @return {string}\n */\n getPID() {\n return this.object_id;\n }\n\n /**\n * Calculate percent complete using getBlockRemainingEstimate.\n *\n * @param {number} hashrate\n * @param {number} blockStartOffset\n * @return {number} Percent complete (0.0 to 1.0)\n */\n getPercentCompleteEstimate(hashrate = this.getHashrate(), blockStartOffset = this.estimated_block_start_offset) {\n if (this.isCompleted()) {\n return 1.0;\n }\n\n // Age represents blocks processed since start\n const age = this.block_current_estimated - this.block_start;\n\n // Get the blocks remaining using current hash rate\n const blocksRemaining = this.getBlockRemainingEstimate(hashrate, blockStartOffset);\n\n // Total blocks needed = blocks already processed + blocks remaining\n const totalBlocks = age + blocksRemaining;\n\n // Percent complete = blocks processed / total blocks needed\n const percent = totalBlocks > 0 ? age / totalBlocks : 0.0;\n\n return Math.min(1.0, Math.max(0.0, percent));\n }\n\n\n /**\n * @param {number} hashrate\n * @param {number} blockStartOffset\n * @return {number}\n */\n getBlockRemainingEstimate(hashrate= this.getHashrate(), blockStartOffset = this.estimated_block_start_offset) {\n if (this.isCompleted()) {\n return 0;\n }\n\n const currentAge = this.getCurrentAgeEstimate()\n\n const baseDifficultyRange = this.difficulty_target;\n const maxBlocksToCheck = TASK.MAX_BLOCKS_WHEN_ESTIMATING;\n const blockTimeSeconds = TASK.ESTIMATED_BLOCK_TIME;\n\n let cumulativeExpectedSuccesses = 0;\n let blocksAhead = 0;\n\n while (cumulativeExpectedSuccesses < 1 && blocksAhead < maxBlocksToCheck) {\n if (blocksAhead > blockStartOffset) {\n const ageAtBlock = currentAge + blocksAhead;\n const difficulty = this.getCalculatedDifficulty(ageAtBlock, baseDifficultyRange);\n const successProbability = 1 / Math.pow(16, difficulty);\n\n // Expected number of successful hashes in this block\n const expectedSuccessesInBlock = hashrate * blockTimeSeconds * successProbability;\n cumulativeExpectedSuccesses += expectedSuccessesInBlock;\n }\n blocksAhead++;\n }\n\n return Math.min(blocksAhead, maxBlocksToCheck);\n }\n\n\n /**\n * @param {number} hashrate\n * @param {number} blockStartOffset\n * @return {number}\n */\n getTimeRemainingEstimate(hashrate= this.getHashrate(), blockStartOffset = this.estimated_block_start_offset) {\n const blocksAhead = this.getBlockRemainingEstimate(hashrate, blockStartOffset);\n return blocksAhead * TASK.ESTIMATED_BLOCK_TIME;\n }\n\n /**\n * @return {number}\n */\n getHashrate() {\n if (!this.isRunning()) {\n return this.estimated_hashrate;\n }\n\n const current_time = new Date();\n return this.iterations_since_last_start / (Math.floor((current_time - this.last_status_change_time)) * 1);\n }\n\n /**\n * @param {string} nonce\n * @return {string}\n */\n getMessage(nonce) {\n return this.prefix + nonce + this.postfix;\n }\n\n /**\n * @return {number}\n */\n getCurrentAgeEstimate() {\n const current_time = new Date();\n const estimated_blocks_past = Math.floor((current_time - this.block_checkpoint_time) / TASK.ESTIMATED_BLOCK_TIME);\n this.block_current_estimated = Math.floor(this.block_checkpoint + estimated_blocks_past);\n\n return this.block_current_estimated - this.block_start;\n }\n\n /**\n * @return {number}\n */\n getCurrentDifficulty(){\n const age = this.getCurrentAgeEstimate();\n\n if (age <= 1) {\n return 64;\n }\n\n // Using logarithmic function to calculate difficulty\n let difficulty = 64 - Math.floor(Math.log10(age) / Math.log10(this.difficulty_target) * 63);\n\n return Math.max(1, difficulty)\n }\n\n /**\n * Calculate difficulty from age\n *\n * @param {number} age - Current age in blocks\n * @param {number} baseDifficultyRange - Base difficulty range\n * @returns {number} Difficulty (number of leading zeros required in hash)\n */\n getCalculatedDifficulty(age, baseDifficultyRange) {\n if (age <= 1) {\n return 64;\n }\n\n const difficulty = 64 - Math.floor(\n Math.log10(age) / Math.log10(baseDifficultyRange) * 63\n );\n\n return Math.max(1, difficulty);\n }\n\n /**\n * Check to see if Hash was built for an acceptable block height\n */\n checkResultHashDifficulty() {\n return this.result_difficulty >= this.getCurrentDifficulty();\n }\n}","export class Transaction {\n constructor() {\n this.time = null;\n this.id = null;\n this.object_id = null;\n this.address = null;\n this.counterparty = null;\n this.counterparty_player_id = null;\n this.counterparty_username = null;\n this.amount = null;\n this.amount_p = null;\n this.block_height = null;\n this.action = null;\n this.direction = null;\n this.denom = null;\n }\n}","export class UserAgent {\n\n /**\n * @param {string} userAgent\n */\n constructor(userAgent) {\n this.userAgent = userAgent;\n }\n\n /**\n * @return {string}\n */\n getDeviceTypeAndOS() {\n const match = this.userAgent.match(/(?<=\\()[^)]+/);\n return match ? match[0] : 'Unknown OS';\n }\n\n /**\n * Many browsers are Chrome based so always check this one last.\n *\n * @return {string|null}\n */\n isChrome() {\n return /(?<= )Chrome(?=\\/)/i.test(this.userAgent)\n ? \"Chrome Based\"\n : null;\n }\n\n /**\n * @return {string|null}\n */\n isEdge() {\n return /(?<= )Edg(?=\\/)/i.test(this.userAgent)\n ? \"Edge\"\n : null;\n }\n\n /**\n * @return {string|null}\n */\n isFirefox() {\n return /(?<= )Firefox(?=\\/)/i.test(this.userAgent)\n ? \"Firefox\"\n : null;\n }\n\n /**\n * @return {string|null}\n */\n isOpera() {\n return /(?<= )OPR(?=\\/)/i.test(this.userAgent)\n ? \"Opera\"\n : null;\n }\n\n /**\n * @return {string|null}\n */\n isSafari() {\n return /(?<= )Safari(?=\\/)/i.test(this.userAgent) && !/(?<= )Chrome(?=\\/)/i.test(this.userAgent)\n ? \"Safari\"\n : null;\n }\n\n /**\n * @return {string|null}\n */\n isSamsungBrowser() {\n return /(?<= )SamsungBrowser(?=\\/)/i.test(this.userAgent)\n ? \"Samsung\"\n : null;\n }\n\n /**\n * If the browser is unrecognized just dump the user agent string without the device type and OS.\n *\n * @return {string}\n */\n isUnrecognizedBrowser() {\n const match = this.userAgent.match(/(?<=\\) ).*/);\n return match ? match[0] : 'Unrecognized';\n }\n\n /**\n * @return {string}\n */\n getBrowser() {\n return this.isEdge()\n || this.isFirefox()\n || this.isOpera()\n || this.isSafari()\n || this.isSamsungBrowser()\n || this.isChrome()\n || this.isUnrecognizedBrowser();\n }\n}","export class Work {\n\n constructor() {\n this.object_id = null;\n this.player_id = null;\n this.target_id = null;\n this.category = null;\n this.block_start = null;\n this.difficulty_target = null;\n }\n\n}\n","import {MenuPage} from \"../framework/MenuPage\";\n\nexport class MenuWaitingOptions {\n constructor() {\n this.navItemId = MenuPage.navItemAccountId\n this.waitingAnimation = 'DEFAULT';\n this.waitingMessage = null;\n this.hasDoNotCloseMessage = true;\n this.headerBtnLabel = '';\n this.headerBtnShowBackIcon = false;\n this.headerBtnHandler = () => {};\n this.initPageCode = () => {};\n }\n}","import {SUIInputStepper} from \"./SUIInputStepper.js\";\nimport {SUITooltip} from \"./SUITooltip.js\";\nimport {SUICheatsheet} from \"./SUICheatsheet.js\";\nimport {SUIOffcanvas} from \"./SUIOffcanvas\";\n\nexport class SUI {\n\n constructor() {\n this.inputStepper = new SUIInputStepper();\n this.tooltip = new SUITooltip();\n this.cheatsheet = new SUICheatsheet();\n this.offcanvas = new SUIOffcanvas();\n\n this.autoInitClasses = [\n this.inputStepper,\n this.tooltip,\n this.cheatsheet,\n this.offcanvas\n ];\n }\n\n /**\n * Auto initialize all SUI features\n */\n autoInitAll() {\n this.autoInitClasses.forEach(suiFeature => {\n suiFeature.autoInitAll();\n });\n }\n\n}\n","import {SUIFeature} from \"./SUIFeature.js\";\nimport {SUIUtil} from \"./SUIUtil.js\";\n\nexport class SUICheatsheet extends SUIFeature {\n\n /**\n * Used to track how long the mouse or touch screen is pressed.\n *\n * @type {number|null} a timeout ID\n */\n static pointerPressedTimer = null;\n\n /**\n * Set to true once the long-press timer fires and the cheatsheet is\n * actually shown. Used to suppress the synthetic `click` event that\n * browsers fire on release, so that releasing a long-press is not\n * treated as a click on the underlying element (e.g. an action bar\n * button).\n *\n * @type {boolean}\n */\n static cheatsheetWasShown = false;\n\n static OPEN_DELAY = 500;\n\n constructor() {\n super();\n this.util = new SUIUtil();\n this.suiThemes = [\n 'sui-theme-player',\n 'sui-theme-enemy',\n 'sui-theme-neutral'\n ];\n\n /** @type {SUICheatsheetContentBuilder} */\n this.contentBuilder = null;\n }\n\n /**\n * @param {SUICheatsheetContentBuilder} contentBuilder\n */\n setContentBuilder(contentBuilder) {\n this.contentBuilder = contentBuilder;\n }\n\n /**\n * @param {HTMLElement} cheatsheetElm\n */\n clearPointerPressedTimer(cheatsheetElm) {\n\n // If there is an existing cheatsheet, remove it.\n if (cheatsheetElm.parentElement) {\n cheatsheetElm.parentElement.removeChild(cheatsheetElm);\n }\n\n clearTimeout(SUICheatsheet.pointerPressedTimer);\n }\n\n /**\n * @param {HTMLElement} cheatsheetElm\n * @param {HTMLElement} cheatsheetTriggerElm\n */\n pointerPressed(cheatsheetElm, cheatsheetTriggerElm) {\n clearTimeout(SUICheatsheet.pointerPressedTimer);\n SUICheatsheet.cheatsheetWasShown = false;\n\n // If there is an existing cheatsheet, remove it.\n if (cheatsheetElm.parentElement) {\n cheatsheetElm.parentElement.removeChild(cheatsheetElm);\n }\n\n SUICheatsheet.pointerPressedTimer = setTimeout(function() {\n\n this.suiThemes.forEach(themeClass => {\n cheatsheetElm.classList.remove(themeClass);\n });\n\n if (cheatsheetTriggerElm.dataset.suiTheme) {\n cheatsheetElm.classList.add(`sui-theme-${cheatsheetTriggerElm.dataset.suiTheme}`);\n } else {\n cheatsheetElm.classList.add(this.suiThemes[0]);\n }\n\n // Append to body so cheatsheet is not clipped by ancestor overflow\n document.body.appendChild(cheatsheetElm);\n\n // Use the triggering elements data attribute as key to which cheatsheet to show.\n cheatsheetElm.innerHTML = this.contentBuilder.build({...cheatsheetTriggerElm.dataset});\n\n // Get viewport-relative coordinates for fixed positioning\n const triggerRect = cheatsheetTriggerElm.getBoundingClientRect();\n\n // Position cheatsheet in best fitting location (tries: top, right, bottom, left)\n this.util.positionBestFitFixed(cheatsheetElm, triggerRect);\n\n SUICheatsheet.cheatsheetWasShown = true;\n\n }.bind(this), SUICheatsheet.OPEN_DELAY);\n }\n\n /**\n * Initialize all cheatsheets on the page.\n */\n autoInitAll() {\n\n const cheatsheetElm = document.createElement('div');\n cheatsheetElm.id = `sui-cheatsheet-container`;\n cheatsheetElm.classList.add('sui-cheatsheet');\n cheatsheetElm.style.position = 'fixed';\n\n let pressedEvent = 'mousedown';\n let releasedEvent = 'mouseup';\n\n if (window.matchMedia(\"(pointer: coarse)\").matches) {\n pressedEvent = 'touchstart';\n releasedEvent = 'touchend';\n\n // Press and hold on mobile also fires a contextmenu event which we need to block\n // because it can obscure the cheatsheet and also cause inadvertent actions.\n document.body.addEventListener('contextmenu', (e) => {\n if (e.target.closest('[data-sui-cheatsheet]')) {\n e.preventDefault();\n }\n }, { passive: false });\n }\n\n document.body.addEventListener(pressedEvent, function (e) {\n const cheatsheetTriggerElm = e.target.closest('[data-sui-cheatsheet]');\n if (cheatsheetTriggerElm) {\n this.pointerPressed(cheatsheetElm, cheatsheetTriggerElm);\n }\n }.bind(this), { passive: true });\n\n // Suppress the synthetic `click` event that follows the release of a\n // long-press, so that long-pressing an element to view its cheatsheet\n // does not also trigger that element's click handler. Capture phase is\n // used so we run before any handler attached directly to the trigger.\n document.body.addEventListener('click', function (e) {\n if (\n SUICheatsheet.cheatsheetWasShown\n && e.target.closest('[data-sui-cheatsheet]')\n ) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n // Clear immediately on the success path so a subsequent quick\n // click on the same (or another) trigger is not also suppressed.\n SUICheatsheet.cheatsheetWasShown = false;\n }\n }, true);\n\n window.addEventListener(releasedEvent, function () {\n this.clearPointerPressedTimer(cheatsheetElm);\n // Fallback flag-clear in case no synthetic `click` follows the\n // release (e.g. touchcancel, user dragged off the trigger, or the\n // browser otherwise does not dispatch a click). The delay is long\n // enough to outlast platform synthetic-click latency (historically\n // up to ~300ms on touch) but short enough not to interfere with a\n // subsequent intentional tap.\n setTimeout(() => {\n SUICheatsheet.cheatsheetWasShown = false;\n }, 350);\n }.bind(this), { passive: true });\n }\n}\n","import {SUINotImplementedError} from \"./SUINotImplementedError\";\nimport {SUICheatsheetRenderer} from \"./SUICheatsheetRenderer\";\n\nexport class SUICheatsheetContentBuilder {\n\n constructor() {\n this.renderer = new SUICheatsheetRenderer();\n }\n\n /**\n * @param {object} dataset triggering element's data attributes\n * @return {string}\n */\n build(dataset) {\n throw new SUINotImplementedError(`build() not implemented for ${dataset.cheatsheetKey}`);\n }\n}\n","import {NumberFormatter} from \"../util/NumberFormatter\";\nimport {ChargeCalculator} from \"../util/ChargeCalculator\";\n\nexport class SUICheatsheetRenderer {\n\n constructor() {\n this.numberFormatter = new NumberFormatter();\n this.chargeCalculator = new ChargeCalculator();\n }\n\n\n /**\n * @param {number|null} batteryCost\n * @return {string}\n */\n renderBatteryCostHTML(batteryCost = null) {\n if (batteryCost === null) {\n return '';\n }\n\n let batteryChunks = '';\n\n const chargeLevel = this.chargeCalculator.calcChargeLevelByCharge(batteryCost);\n\n for(let i = 1; i < this.chargeCalculator.chargeLevelThresholds.length; i++) {\n const isFilledClass = i <= chargeLevel ? 'sui-mod-filled' : '';\n batteryChunks += `
`;\n }\n\n return `\n
\n ${batteryChunks}\n
\n `;\n }\n\n /**\n * @param {number|null} energyCost\n * @return {string}\n */\n renderEnergyCostHTML(energyCost = null) {\n if (energyCost === null) {\n return '';\n }\n return `\n
\n ${this.numberFormatter.format(energyCost)} \n
\n `;\n }\n\n /**\n * @param {string} titleText\n * @param {number|null} batteryCost\n * @param {number|null} energyCost\n * @return {string}\n */\n renderTitleHTML(\n titleText,\n batteryCost = null,\n energyCost = null\n ) {\n return `\n
\n
${titleText.toUpperCase()}
\n
\n ${this.renderBatteryCostHTML(batteryCost)}\n ${this.renderEnergyCostHTML(energyCost)}\n
\n
\n `;\n }\n\n /**\n * @param {string|null} descriptionText\n * @return {string}\n */\n renderDescriptionHTML(descriptionText) {\n if (!descriptionText) {\n return '';\n }\n return `\n
\n ${descriptionText}\n
\n `;\n }\n\n /**\n * @param {string|null} contextualMessageText\n * @return {string}\n */\n renderContextualMessageHTML(contextualMessageText) {\n if (!contextualMessageText) {\n return '';\n }\n return `\n
\n ${contextualMessageText}\n
\n `\n }\n\n /**\n * @param {string|null} propertySectionHTML\n * @return {string}\n */\n renderCheatsheetPropertySectionHTML(propertySectionHTML) {\n if (!propertySectionHTML) {\n return '';\n }\n return `\n
\n ${propertySectionHTML}\n
\n `;\n }\n\n /**\n * @param {string} titleText\n * @param {number|null} batteryCost\n * @param {number|null} energyCost\n * @param {string|null} descriptionText\n * @param {string|null} contextualMessageText\n * @param {string|null} propertySectionHTML\n * @return {string}\n */\n renderContentHTML(\n titleText,\n batteryCost = null,\n energyCost = null,\n descriptionText = null,\n contextualMessageText = null,\n propertySectionHTML = null\n ) {\n return `\n
\n \n ${this.renderTitleHTML(titleText, batteryCost, energyCost)}\n \n
\n ${this.renderDescriptionHTML(descriptionText)}\n \n ${this.renderCheatsheetPropertySectionHTML(propertySectionHTML)}\n \n ${this.renderContextualMessageHTML(contextualMessageText)}\n
\n `;\n }\n\n /**\n * @param {string} titleText\n * @param {string} descriptionText\n * @return {string}\n */\n renderContentForEmptyTileHTML(\n titleText,\n descriptionText\n ) {\n return this.renderContentHTML(\n titleText,\n null,\n null,\n descriptionText\n );\n }\n}","import {SUINotImplementedError} from \"./SUINotImplementedError.js\";\n\nexport class SUIFeature {\n\n /**\n * Auto initialize feature\n */\n autoInitAll() {\n throw new SUINotImplementedError();\n }\n\n}\n","import {SUIFeature} from \"./SUIFeature.js\";\n\nexport class SUIInputStepper extends SUIFeature {\n\n /**\n * Ensure that the number is a number between the min or max value or the empty string.\n *\n * @param {string|number} value\n * @param {number} min\n * @param {number} max\n * @return {number|string}\n */\n filterNumberInput(value, min, max) {\n let cleanValue = `${value}`.replace(/^[^0-9]*$/, '');\n\n if (cleanValue === '') {\n return cleanValue;\n }\n\n cleanValue = parseInt(cleanValue);\n cleanValue = Math.max(cleanValue, min);\n cleanValue = Math.min(cleanValue, max);\n\n return cleanValue;\n }\n\n /**\n * Initialize all input steppers on the page.\n */\n autoInitAll() {\n let inputSteppers = document.querySelectorAll('.sui-input-stepper input[type=number]');\n\n if (inputSteppers.length === 0) {\n return;\n }\n\n inputSteppers.forEach(inputStepper => {\n const decreaseBtn = inputStepper.previousElementSibling;\n const increaseBtn = inputStepper.nextElementSibling;\n\n const enableDisableButtons = () => {\n decreaseBtn.disabled = inputStepper.disabled || (inputStepper.value <= inputStepper.min);\n increaseBtn.disabled = inputStepper.disabled || (inputStepper.value >= inputStepper.max);\n };\n\n decreaseBtn.addEventListener('click', function(event) {\n event.preventDefault();\n inputStepper.stepDown();\n enableDisableButtons();\n });\n\n increaseBtn.addEventListener('click', function(event) {\n event.preventDefault();\n inputStepper.stepUp();\n enableDisableButtons();\n });\n\n inputStepper.addEventListener('input', function() {\n inputStepper.value = this.filterNumberInput(inputStepper.value, inputStepper.min, inputStepper.max);\n enableDisableButtons();\n }.bind(this));\n\n enableDisableButtons();\n });\n }\n}\n","export class SUINotImplementedError extends Error {\n\n /**\n * @param {string} message\n */\n constructor(message= '') {\n super(message);\n this.name = \"SUINotImplementedError\";\n this.message = message ? message : 'Method not implemented';\n }\n}\n","import {SUIFeature} from \"./SUIFeature.js\";\n\nexport class SUIOffcanvas extends SUIFeature {\n\n constructor() {\n super();\n\n this.offcanvasElm = null;\n this.placement = 'left';\n this.theme = 'player';\n\n // Closes the offcanvas when a click occurs outside of it. Bound here so\n // the same reference can be added/removed from the document listener.\n this.handleOutsideClick = (e) => {\n if (this.offcanvasElm && !this.offcanvasElm.contains(e.target)) {\n this.close();\n }\n };\n }\n\n setPlacement(placement) {\n this.placement = placement;\n this.offcanvasElm.classList.remove(`sui-mod-${this.placement}`);\n this.offcanvasElm.classList.add(`sui-mod-${this.placement}`);\n }\n\n setTheme(theme) {\n this.theme = theme;\n this.offcanvasElm.classList.remove(`sui-theme-${this.theme}`);\n this.offcanvasElm.classList.add(`sui-theme-${this.theme}`);\n }\n\n open() {\n this.offcanvasElm.classList.remove('hidden');\n\n // Defer attaching so the click that triggered open() does not bubble up\n // to the document listener and immediately close the offcanvas. The\n // browser de-duplicates identical (listener, options) pairs, so repeated\n // open() calls remain safe.\n setTimeout(() => {\n document.addEventListener('click', this.handleOutsideClick);\n }, 0);\n }\n\n close() {\n this.offcanvasElm.classList.add('hidden');\n document.removeEventListener('click', this.handleOutsideClick);\n }\n\n setHeader(header) {\n this.offcanvasElm.querySelector('.sui-offcanvas-header').innerHTML = header;\n }\n\n setContent(content) {\n this.offcanvasElm.querySelector('.sui-offcanvas-body').innerHTML = content;\n }\n\n renderOffcanvasInnerHTML() {\n return `\n
\n
\n \n \n \n
\n
\n
\n
HEADER
\n
\n \n \n \n
\n
\n \n \n \n \n \n
\n
\n
\n \n \n \n
\n \n \n \n
\n \n \n \n
\n
\n
\n \n \n \n
\n
\n `;\n }\n\n /**\n * Initialize the offcanvas element. There can only be one offcanvas at a time.\n */\n autoInitAll() {\n\n this.offcanvasElm = document.createElement('div');\n this.offcanvasElm.id = `sui-offcanvas`;\n this.offcanvasElm.classList.add('hidden');\n this.offcanvasElm.classList.add('sui-panel');\n this.setPlacement(this.placement);\n this.setTheme(this.theme);\n this.offcanvasElm.innerHTML = this.renderOffcanvasInnerHTML();\n\n document.body.appendChild(this.offcanvasElm);\n\n if (this.offcanvasElm) {\n this.offcanvasElm.querySelector('.sui-offcanvas-close-btn').addEventListener('click', () => {\n this.close();\n });\n }\n\n }\n}\n","import {SUIFeature} from \"./SUIFeature.js\";\nimport {SUIUtil} from \"./SUIUtil.js\";\n\nexport class SUITooltip extends SUIFeature {\n\n /**\n * Used to track how long the mouse or touch screen is pressed.\n *\n * @type {number|null} a timeout ID\n */\n static pointerPressedTimer = null;\n\n constructor() {\n super();\n this.util = new SUIUtil();\n }\n\n /**\n * @param {HTMLElement} tooltipHtmlElement\n */\n clearPointerPressedTimer(tooltipHtmlElement) {\n tooltipHtmlElement.classList.remove('sui-mod-show');\n\n // If there is an existing tooltip, remove it.\n if (tooltipHtmlElement.parentElement) {\n tooltipHtmlElement.parentElement.removeChild(tooltipHtmlElement);\n }\n\n clearTimeout(SUITooltip.pointerPressedTimer);\n }\n\n /**\n * @param {HTMLElement} tooltipElm\n * @param {HTMLElement} tooltipTriggerElm\n */\n pointerPressed(tooltipElm, tooltipTriggerElm) {\n clearTimeout(SUITooltip.pointerPressedTimer);\n\n // If there is an existing tooltip, remove it.\n if (tooltipElm.parentElement) {\n tooltipElm.parentElement.removeChild(tooltipElm);\n }\n\n SUITooltip.pointerPressedTimer = setTimeout(function() {\n\n // To position the tooltip the parent also must have position defined.\n const parentStyle = getComputedStyle(tooltipTriggerElm.parentElement);\n if (parentStyle.getPropertyValue('position') === 'static') {\n tooltipTriggerElm.parentElement.style.position = 'relative';\n }\n\n // Add the tooltip to the triggering element's parent, so that the tool tip stays relative to the target.\n tooltipTriggerElm.parentElement.appendChild(tooltipElm);\n\n // Set the tooltip content based on the triggering elements data attribute\n tooltipElm.innerHTML = tooltipTriggerElm.dataset.suiTooltip;\n\n // Show the tool tip\n tooltipElm.classList.add('sui-mod-show');\n\n this.util.horizontallyCenter(tooltipElm, tooltipTriggerElm);\n\n if (tooltipTriggerElm.dataset.suiModPlacement === 'bottom') {\n this.util.positionBelow(tooltipElm, tooltipTriggerElm);\n } else {\n this.util.positionAbove(tooltipElm, tooltipTriggerElm);\n }\n\n }.bind(this), 100);\n }\n\n /**\n * Initialize all tooltips on the page.\n */\n autoInitAll() {\n\n const tooltipElm = document.createElement('div');\n tooltipElm.id = `sui-tooltip-container`;\n tooltipElm.classList.add('sui-tooltip');\n tooltipElm.style.position = 'absolute';\n\n let pressedEvent = 'mousedown';\n let releasedEvent = 'mouseup';\n\n if (window.matchMedia(\"(pointer: coarse)\").matches) {\n pressedEvent = 'touchstart';\n releasedEvent = 'touchend';\n\n // Press and hold on mobile also fires a contextmenu event which we need to block\n // because it can obscure the tooltip and also cause inadvertent actions.\n document.body.addEventListener('contextmenu', (e) => {\n if (\n e.target.matches('[data-sui-tooltip]')\n || e.target.parentElement.matches('[data-sui-tooltip]')\n ) {\n e.preventDefault();\n }\n }, { passive: false });\n }\n\n document.body.addEventListener(pressedEvent, function (e) {\n if (e.target.matches('[data-sui-tooltip]')) {\n this.pointerPressed(tooltipElm, e.target);\n }\n if (e.target.parentElement.matches('[data-sui-tooltip]')) {\n this.pointerPressed(tooltipElm, e.target.parentElement);\n }\n\n }.bind(this), { passive: true });\n\n window.addEventListener(releasedEvent, function () {\n this.clearPointerPressedTimer(tooltipElm);\n }.bind(this), { passive: true });\n }\n}\n","export class SUIUtil {\n /**\n * @param {HTMLElement} dynamicElm\n * @param {HTMLElement} originElm\n */\n positionAbove(dynamicElm, originElm) {\n const originRect = originElm.getBoundingClientRect();\n\n // If dynamic element would end up offscreen, place it below\n if (\n originRect.top < dynamicElm.offsetHeight\n && (window.innerHeight - originRect.bottom) >= dynamicElm.offsetHeight\n ) {\n this.positionBelow(dynamicElm, originElm);\n } else {\n dynamicElm.style.top = `${originElm.offsetTop - dynamicElm.offsetHeight}px`;\n }\n }\n\n /**\n * @param {HTMLElement} dynamicElm\n * @param {HTMLElement} originElm\n */\n positionBelow(dynamicElm, originElm) {\n const originRect = originElm.getBoundingClientRect();\n\n // If dynamic element would end up offscreen, place it above\n if (\n (window.innerHeight - originRect.bottom) < dynamicElm.offsetHeight\n && originRect.top > dynamicElm.offsetHeight\n ) {\n this.positionAbove(dynamicElm, originElm);\n } else {\n dynamicElm.style.top = `${originElm.offsetTop + originElm.offsetHeight}px`;\n }\n }\n\n /**\n * @param {HTMLElement} dynamicElm\n * @param {HTMLElement} originElm\n */\n horizontallyCenter(dynamicElm, originElm) {\n const originRect = originElm.getBoundingClientRect();\n\n // If the dynamic element will go offscreen on the left,\n // align the dynamic element up to the left edge.\n if (originRect.left - (originElm.offsetWidth / 2) < dynamicElm.offsetWidth / 2) {\n dynamicElm.style.left = `${originElm.offsetLeft}px`;\n\n // If the dynamic element will go offscreen on the right,\n // align the dynamic element up to the right edge.\n } else if ((originElm.offsetWidth / 2) + (window.innerWidth - originRect.right) < dynamicElm.offsetWidth / 2) {\n dynamicElm.style.left = `${(originElm.offsetLeft + originElm.offsetWidth) - dynamicElm.offsetWidth}px`;\n\n } else {\n dynamicElm.style.left = `${originElm.offsetLeft - (dynamicElm.offsetWidth - originElm.offsetWidth) / 2}px`;\n }\n }\n\n /**\n * Read the effective uniform scale factor from an element's computed\n * `transform`. Returns 1 when no transform is applied (or it can't be parsed).\n *\n * The cheatsheet (and similar elements) opt in to viewport scaling via media\n * queries that apply `transform: scale(N)`. Their `style.top`/`style.left`\n * stay in unscaled (logical) pixel space, so positioning math has to use the\n * post-scale visual size to land correctly.\n *\n * @param {HTMLElement} elm\n * @return {number}\n */\n getEffectiveScale(elm) {\n const transform = window.getComputedStyle(elm).transform;\n if (!transform || transform === 'none') {\n return 1;\n }\n const match = transform.match(/matrix\\(\\s*([^,)]+)/);\n if (!match) {\n return 1;\n }\n const scale = parseFloat(match[1]);\n return Number.isFinite(scale) && scale > 0 ? scale : 1;\n }\n\n /**\n * Position element above the origin using fixed positioning (viewport-relative).\n * Falls back to below if there's not enough space above.\n *\n * @param {HTMLElement} dynamicElm\n * @param {DOMRect} originRect\n * @param {number} [scale=1] visual scale factor applied to dynamicElm\n */\n positionAboveFixed(dynamicElm, originRect, scale = 1) {\n const visualHeight = dynamicElm.offsetHeight * scale;\n\n // If dynamic element would go offscreen above, place it below instead\n if (\n originRect.top < visualHeight\n && (window.innerHeight - originRect.bottom) >= visualHeight\n ) {\n this.positionBelowFixed(dynamicElm, originRect, scale);\n } else {\n dynamicElm.style.top = `${originRect.top - visualHeight}px`;\n }\n }\n\n /**\n * Position element below the origin using fixed positioning (viewport-relative).\n * Falls back to above if there's not enough space below.\n *\n * @param {HTMLElement} dynamicElm\n * @param {DOMRect} originRect\n * @param {number} [scale=1] visual scale factor applied to dynamicElm\n */\n positionBelowFixed(dynamicElm, originRect, scale = 1) {\n const visualHeight = dynamicElm.offsetHeight * scale;\n\n // If dynamic element would go offscreen below, place it above instead\n if (\n (window.innerHeight - originRect.bottom) < visualHeight\n && originRect.top > visualHeight\n ) {\n this.positionAboveFixed(dynamicElm, originRect, scale);\n } else {\n dynamicElm.style.top = `${originRect.bottom}px`;\n }\n }\n\n /**\n * Horizontally center element relative to origin using fixed positioning (viewport-relative).\n * Adjusts to keep element within viewport bounds.\n *\n * @param {HTMLElement} dynamicElm\n * @param {DOMRect} originRect\n * @param {number} [scale=1] visual scale factor applied to dynamicElm\n */\n horizontallyCenterFixed(dynamicElm, originRect, scale = 1) {\n const visualWidth = dynamicElm.offsetWidth * scale;\n const originCenterX = originRect.left + (originRect.width / 2);\n let leftPos = originCenterX - (visualWidth / 2);\n\n // If element would go offscreen on the left, align to left edge\n if (leftPos < 0) {\n leftPos = originRect.left;\n\n // If element would go offscreen on the right, align to right edge\n } else if (leftPos + visualWidth > window.innerWidth) {\n leftPos = originRect.right - visualWidth;\n }\n\n dynamicElm.style.left = `${leftPos}px`;\n }\n\n /**\n * Vertically center element relative to origin using fixed positioning (viewport-relative).\n * Adjusts to keep element within viewport bounds.\n *\n * @param {HTMLElement} dynamicElm\n * @param {DOMRect} originRect\n * @param {number} [scale=1] visual scale factor applied to dynamicElm\n */\n verticallyCenterFixed(dynamicElm, originRect, scale = 1) {\n const visualHeight = dynamicElm.offsetHeight * scale;\n const originCenterY = originRect.top + (originRect.height / 2);\n let topPos = originCenterY - (visualHeight / 2);\n\n // If element would go offscreen on the top, align to top edge\n if (topPos < 0) {\n topPos = 0;\n\n // If element would go offscreen on the bottom, align to bottom edge\n } else if (topPos + visualHeight > window.innerHeight) {\n topPos = window.innerHeight - visualHeight;\n }\n\n dynamicElm.style.top = `${topPos}px`;\n }\n\n /**\n * Position element to the right of the origin using fixed positioning (viewport-relative).\n *\n * @param {HTMLElement} dynamicElm\n * @param {DOMRect} originRect\n * @param {number} [scale=1] visual scale factor applied to dynamicElm\n */\n positionRightFixed(dynamicElm, originRect, scale = 1) {\n dynamicElm.style.left = `${originRect.right}px`;\n this.verticallyCenterFixed(dynamicElm, originRect, scale);\n }\n\n /**\n * Position element to the left of the origin using fixed positioning (viewport-relative).\n *\n * @param {HTMLElement} dynamicElm\n * @param {DOMRect} originRect\n * @param {number} [scale=1] visual scale factor applied to dynamicElm\n */\n positionLeftFixed(dynamicElm, originRect, scale = 1) {\n const visualWidth = dynamicElm.offsetWidth * scale;\n dynamicElm.style.left = `${originRect.left - visualWidth}px`;\n this.verticallyCenterFixed(dynamicElm, originRect, scale);\n }\n\n /**\n * Position element in the best fitting position relative to origin.\n * Tries positions in order: top, right, bottom, left.\n * Falls back to the side with the most available space.\n *\n * If `scale` is omitted it is read from the element's computed transform so\n * the math accounts for any media-query driven scaling applied to dynamicElm.\n *\n * @param {HTMLElement} dynamicElm\n * @param {DOMRect} originRect\n * @param {number} [scale] visual scale factor applied to dynamicElm\n */\n positionBestFitFixed(dynamicElm, originRect, scale) {\n if (scale === undefined) {\n scale = this.getEffectiveScale(dynamicElm);\n }\n\n const visualWidth = dynamicElm.offsetWidth * scale;\n const visualHeight = dynamicElm.offsetHeight * scale;\n\n // Calculate available space on each side\n const spaceTop = originRect.top;\n const spaceRight = window.innerWidth - originRect.right;\n const spaceBottom = window.innerHeight - originRect.bottom;\n const spaceLeft = originRect.left;\n\n // Check if element fits on each side (in order: top, right, bottom, left)\n const fitsTop = spaceTop >= visualHeight;\n const fitsRight = spaceRight >= visualWidth;\n const fitsBottom = spaceBottom >= visualHeight;\n const fitsLeft = spaceLeft >= visualWidth;\n\n // Try positions in order: top, right, bottom, left\n if (fitsTop) {\n dynamicElm.style.top = `${originRect.top - visualHeight}px`;\n this.horizontallyCenterFixed(dynamicElm, originRect, scale);\n return;\n }\n\n if (fitsRight) {\n this.positionRightFixed(dynamicElm, originRect, scale);\n return;\n }\n\n if (fitsBottom) {\n dynamicElm.style.top = `${originRect.bottom}px`;\n this.horizontallyCenterFixed(dynamicElm, originRect, scale);\n return;\n }\n\n if (fitsLeft) {\n this.positionLeftFixed(dynamicElm, originRect, scale);\n return;\n }\n\n // None fit - find the side with the most space\n const spaces = [\n { side: 'top', space: spaceTop },\n { side: 'right', space: spaceRight },\n { side: 'bottom', space: spaceBottom },\n { side: 'left', space: spaceLeft }\n ];\n\n spaces.sort((a, b) => b.space - a.space);\n const bestSide = spaces[0].side;\n\n switch (bestSide) {\n case 'top':\n dynamicElm.style.top = `${originRect.top - visualHeight}px`;\n this.horizontallyCenterFixed(dynamicElm, originRect, scale);\n break;\n case 'right':\n this.positionRightFixed(dynamicElm, originRect, scale);\n break;\n case 'bottom':\n dynamicElm.style.top = `${originRect.bottom}px`;\n this.horizontallyCenterFixed(dynamicElm, originRect, scale);\n break;\n case 'left':\n this.positionLeftFixed(dynamicElm, originRect, scale);\n break;\n }\n }\n}\n","export class AmbitUtil {\n\n /**\n * @param {string[]} ambitArray\n * @param {string} targetAmbit\n * @param {string|null} localAmbit\n * @return {boolean}\n */\n contains(ambitArray, targetAmbit, localAmbit = null) {\n targetAmbit = targetAmbit.toLowerCase();\n localAmbit = localAmbit ? localAmbit.toLowerCase() : '';\n\n return !!ambitArray.find(ambit => {\n ambit = ambit.toLowerCase();\n return ambit === targetAmbit\n || (ambit === 'local' && localAmbit && localAmbit === targetAmbit)\n });\n }\n\n}","/**\n * Identifies whether a given animation (or set of animations) belongs to an\n * attack sequence enqueued by `StructListener.handleStructAttack`.\n *\n * Attack sequences are made up of attack, impact, shake, evade and destroy\n * animations. Status-driven animations (deployment, move, stealth) are not\n * part of the attack sequence.\n */\nexport class AttackSequenceAnimationUtil {\n\n /**\n * Animation name prefixes that only ever appear during an attack sequence.\n * `EVADE` is included as an exact match because it is the only animation in\n * its family.\n */\n static ATTACK_SEQUENCE_NAME_PREFIXES = [\n 'ATTACK_',\n 'IMPACT_',\n 'SHAKE_',\n 'EVADE',\n 'DESTROY_',\n ];\n\n /**\n * @param {string} animationName\n * @return {boolean}\n */\n static isAttackSequenceAnimation(animationName) {\n if (!animationName) {\n return false;\n }\n return AttackSequenceAnimationUtil.ATTACK_SEQUENCE_NAME_PREFIXES.some(\n (prefix) => animationName === prefix || animationName.startsWith(prefix)\n );\n }\n\n /**\n * @param {string[]} animationNames\n * @return {boolean}\n */\n static includesAttackSequenceAnimation(animationNames) {\n if (!Array.isArray(animationNames)) {\n return false;\n }\n return animationNames.some(\n (name) => AttackSequenceAnimationUtil.isAttackSequenceAnimation(name)\n );\n }\n}\n","export const CAMEL_CASE = 'CAMEL_CASE';\nexport const KEBAB_CASE = 'KEBAB_CASE';\nexport const LOWER_SNAKE_CASE = 'LOWER_SNAKE_CASE';\nexport const UPPER_SNAKE_CASE = 'UPPER_SNAKE_CASE';\nexport const SPACE_SEPARATED_WORDS = 'SPACE_SEPARATED_WORDS';\n\nexport class CaseConverter {\n\n /**\n * Converts a string into the specified case.\n *\n * @param {string} source the source string which can be space separate words, or in camel case, kebab case, lower snake case, or upper snake case\n * @param {string} targetCase the case to convert the source to\n * @return {string} the source string formatted in the given case\n */\n convert(source, targetCase) {\n const words = this.tokenize(source);\n\n switch (targetCase) {\n case CAMEL_CASE:\n return words\n .map((w, i) => i === 0 ? w : w.charAt(0).toUpperCase() + w.slice(1))\n .join('');\n case KEBAB_CASE:\n return words.join('-');\n case LOWER_SNAKE_CASE:\n return words.join('_');\n case UPPER_SNAKE_CASE:\n return words.map(w => w.toUpperCase()).join('_');\n case SPACE_SEPARATED_WORDS:\n return words.join(' ');\n default:\n return source;\n }\n }\n\n /**\n * @param {string} source\n * @return {string[]}\n */\n tokenize(source) {\n return source\n .replace(/[-_]/g, ' ')\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n .toLowerCase()\n .split(/\\s+/)\n .filter(w => w.length > 0);\n }\n}\n","export class ChargeCalculator {\n constructor() {\n this.chargeLevelThresholds = [\n 0,\n 1,\n 8,\n 20,\n 39,\n 666\n ];\n }\n\n /**\n * @param {number} charge\n * @return {number}\n */\n calcChargeLevelByCharge(charge) {\n for (let i = 0; i < this.chargeLevelThresholds.length; i++) {\n if (charge <= this.chargeLevelThresholds[i]) {\n return i;\n }\n }\n\n return this.chargeLevelThresholds.length - 1;\n }\n\n /**\n * @param {number} currentBlockHeight\n * @param {number} lastActionBlockHeight\n * @return {number}\n */\n calcCharge(currentBlockHeight, lastActionBlockHeight) {\n return currentBlockHeight - (lastActionBlockHeight + 1);\n }\n\n /**\n * @param {number} currentBlockHeight\n * @param {number} lastActionBlockHeight\n * @return {number}\n */\n calc(currentBlockHeight, lastActionBlockHeight) {\n const charge = this.calcCharge(currentBlockHeight, lastActionBlockHeight);\n return this.calcChargeLevelByCharge(charge);\n }\n}","export class ColorUtil {\n /**\n * @param {string} address base36 address\n * @param {number} colorIndex which slice of the string to use for the color\n * @return {string}\n */\n getHexColorFromBase36Address(address, colorIndex) {\n const addressPartBase36 = address.substring(address.length - colorIndex * 5 - 5, address.length - colorIndex * 5);\n const addressPartBase16 = parseInt(addressPartBase36, 36).toString(16);\n const hexColor = addressPartBase16.slice(-6);\n return `#${hexColor}`;\n }\n}","export class DateFormatter {\n\n /**\n * @param datetimeString\n * @return {string}\n */\n formatDate(datetimeString) {\n return new Date(datetimeString).toLocaleDateString(\n 'default',\n {\n month:\"long\",\n day:\"numeric\",\n year:\"numeric\"\n }\n );\n }\n\n formatTime(datetimeString) {\n return new Date(datetimeString).toLocaleTimeString(\n 'default',\n {\n hour : \"2-digit\",\n minute : \"2-digit\",\n second : \"2-digit\"\n }\n );\n }\n\n formatDatetime(datetimeString) {\n return `${this.formatTime(datetimeString)} ${this.formatDate(datetimeString)}` ;\n }\n}","export class NumberFormatter {\n\n constructor() {\n this.scale = {\n '1': 'k',\n '2': 'M',\n '3': 'G',\n '4': 'T',\n '5': 'P',\n '6': 'E',\n '7': 'Z',\n '8': 'Y',\n '9': 'R',\n '10': 'Q'\n }\n }\n\n /**\n * @param {number|string} number\n * @return {string}\n */\n format(number) {\n const intString = `${parseInt(`${number}`)}`;\n const numDigits = intString.length;\n\n if (numDigits <= 3) {\n return intString;\n }\n\n let remainderDigits = numDigits % 3;\n remainderDigits = remainderDigits === 0 ? 3 : remainderDigits;\n const scaleIndex = ((numDigits - remainderDigits) / 3);\n const unit = this.scale[scaleIndex];\n\n return intString.substring(0, remainderDigits) + unit;\n }\n\n /**\n * @param {number} ms milliseconds\n * @return {string}\n */\n formatMilliseconds(ms) {\n const timeParts = [];\n\n const hours = Math.floor(ms / (1000 * 60 * 60));\n const minutes = Math.floor((ms % (1000 * 60 * 60)) / (1000 * 60));\n\n if (hours > 0) {\n timeParts.push(`${hours}h`);\n }\n\n if (minutes > 0) {\n timeParts.push(`${minutes}m`);\n }\n\n return timeParts.join(' ');\n }\n}\n","import {RAID_STATUS} from \"../constants/RaidStatus\";\n\nexport class RaidStatusUtil {\n\n /**\n * @param {string} raidStatus\n * @return {boolean}\n */\n hasRaidEnded(raidStatus) {\n return (\n raidStatus === RAID_STATUS.ATTACKER_DEFEATED\n || raidStatus === RAID_STATUS.RAID_SUCCESSFUL\n || raidStatus === RAID_STATUS.DEMILITARIZED\n || raidStatus === RAID_STATUS.ATTACKER_RETREATED\n );\n }\n\n /**\n * @param {string} raidStatus\n * @return {boolean}\n */\n isAttackerDefeated(raidStatus) {\n return raidStatus === RAID_STATUS.ATTACKER_DEFEATED;\n }\n\n /**\n * @param {string} raidStatus\n * @return {boolean}\n */\n isRaidSuccessful(raidStatus) {\n return raidStatus === RAID_STATUS.RAID_SUCCESSFUL;\n }\n}","import {TASK} from \"../constants/TaskConstants\";\n\nexport class ShieldHealthCalculator {\n\n /**\n * Calculate difficulty from age\n *\n * @param {number} age - Current age in blocks\n * @param {number} baseDifficultyRange - Base difficulty range\n * @returns {number} Difficulty (number of leading zeros required in hash)\n */\n getCalculatedDifficulty(age, baseDifficultyRange) {\n if (age <= 1) {\n return 64;\n }\n\n const difficulty = 64 - Math.floor(\n Math.log10(age) / Math.log10(baseDifficultyRange) * 63\n );\n\n return Math.max(1, difficulty);\n }\n\n /**\n * Calculate total blocks needed at hash rate 1 (worst case) to break the shield\n *\n * @param {number} blockStartRaid - Block when raid started\n * @param {number} planetaryShield - Difficulty target (base difficulty range)\n * @return {number} Total blocks needed\n */\n getTotalBlocksNeededAtHashRate1(blockStartRaid, planetaryShield) {\n const baseDifficultyRange = Math.max(planetaryShield, 1);\n const maxBlocksToCheck = TASK.MAX_BLOCKS_WHEN_ESTIMATING;\n const blockTimeSeconds = TASK.ESTIMATED_BLOCK_TIME;\n const hashrate = 1; // Worst case\n\n let cumulativeExpectedSuccesses = 0;\n let blocksAhead = 0;\n\n // Start from age 0 (blockStartRaid) and calculate forward\n while (cumulativeExpectedSuccesses < 1 && blocksAhead < maxBlocksToCheck) {\n const ageAtBlock = blocksAhead; // Age starts at 0\n const difficulty = this.getCalculatedDifficulty(ageAtBlock, baseDifficultyRange);\n const successProbability = 1 / Math.pow(16, difficulty);\n\n // Expected number of successful hashes in this block\n const expectedSuccessesInBlock = hashrate * blockTimeSeconds * successProbability;\n cumulativeExpectedSuccesses += expectedSuccessesInBlock;\n blocksAhead++;\n }\n\n return Math.min(blocksAhead, maxBlocksToCheck);\n }\n\n /**\n * @param {number} planetaryShield\n * @param {number} blockStartRaid\n * @param {number} currentBlock\n * @return {number}\n */\n calc(\n planetaryShield,\n blockStartRaid,\n currentBlock\n ) {\n // Age represents blocks processed since raid started\n const age = currentBlock - blockStartRaid;\n\n // If no blocks have passed, shield is at 100%\n if (age <= 0) {\n return 100;\n }\n\n // Calculate total blocks needed at hash rate 1 (worst case) to break shield\n const totalBlocksNeeded = this.getTotalBlocksNeededAtHashRate1(blockStartRaid, planetaryShield);\n\n // Calculate percent complete\n const percentComplete = totalBlocksNeeded > 0 ? age / totalBlocksNeeded : 1.0;\n\n // Shield health = (1 - percentComplete) * 100, clamped to 0-100\n const shieldHealth = (1 - percentComplete) * 100;\n\n return Math.ceil(Math.max(shieldHealth, 0));\n }\n}","/**\n * A unified class for generating css tile class names;\n */\nexport class TileClassNameUtil {\n\n /**\n * @param {string} ambit\n * @param {string} verticalPos\n * @param {string} horizontalPos\n *\n * @return {string}\n */\n getTileClassName(ambit, verticalPos, horizontalPos) {\n return `tile-${ambit.toLowerCase()}-${verticalPos}-${horizontalPos}`;\n }\n\n /**\n * @param {string} ambit\n * @param {string} verticalPos\n * @param {string} horizontalPos\n *\n * @return {string}\n */\n getTileEdgeClassName(ambit, verticalPos, horizontalPos) {\n return `tile-${ambit.toLowerCase()}-edge-${verticalPos}-${horizontalPos}`;\n }\n\n /**\n * @param {string} transitionName\n * @param {string} horizontalPos\n *\n * @return {string}\n */\n getTileNamedTransitionClassName(transitionName, horizontalPos) {\n return `tile-${transitionName.toLowerCase()}-${horizontalPos}`;\n }\n\n /**\n * @param {string} ambit\n *\n * @return {string}\n */\n getTileBlockedClassName(ambit) {\n return `tile-blocked-${ambit.toLowerCase()}`;\n }\n\n /**\n * @param {string} ambit\n *\n * @return {string}\n */\n getTileBeaconClassName(ambit) {\n return `tile-beacon-${ambit.toLowerCase()}`;\n }\n\n}","import {ColorUtil} from \"../util/ColorUtil\";\n\nexport class Blockies {\n\n\tconstructor() {\n\t\tthis.colorUtil = new ColorUtil();\n\t\tthis.randseed = new Array(4); // Xorshift: [x, y, z, w] 32 bit values\n\t}\n\n\tseedrand(seed) {\n\t\tthis.randseed.fill(0);\n\n\t\tfor(let i = 0; i < seed.length; i++) {\n\t\t\tthis.randseed[i%4] = ((this.randseed[i%4] << 5) - this.randseed[i%4]) + seed.charCodeAt(i);\n\t\t}\n\t}\n\n\trand() {\n\t\t// based on Java's String.hashCode(), expanded to 4 32bit values\n\t\tconst t = this.randseed[0] ^ (this.randseed[0] << 11);\n\n\t\tthis.randseed[0] = this.randseed[1];\n\t\tthis.randseed[1] = this.randseed[2];\n\t\tthis.randseed[2] = this.randseed[3];\n\t\tthis.randseed[3] = (this.randseed[3] ^ (this.randseed[3] >> 19) ^ t ^ (t >> 8));\n\n\t\treturn (this.randseed[3] >>> 0) / ((1 << 31) >>> 0);\n\t}\n\n\tcreateColor() {\n\t\t//saturation is the whole color spectrum\n\t\tconst h = Math.floor(this.rand() * 360);\n\t\t//saturation goes from 40 to 100, it avoids greyish colors\n\t\tconst s = ((this.rand() * 60) + 40) + '%';\n\t\t//lightness can be anything from 0 to 100, but probabilities are a bell curve around 50%\n\t\tconst l = ((this.rand() + this.rand() + this.rand() + this.rand()) * 25) + '%';\n\n\t\treturn 'hsl(' + h + ',' + s + ',' + l + ')';\n\t}\n\n\tcreateImageData(size) {\n\t\tconst width = size; // Only support square icons for now\n\t\tconst height = size;\n\n\t\tconst dataWidth = Math.ceil(width / 2);\n\t\tconst mirrorWidth = width - dataWidth;\n\n\t\tconst data = [];\n\t\tfor(let y = 0; y < height; y++) {\n\t\t\tlet row = [];\n\t\t\tfor(let x = 0; x < dataWidth; x++) {\n\t\t\t\t// this makes foreground and background color to have a 43% (1/2.3) probability\n\t\t\t\t// spot color has 13% chance\n\t\t\t\trow[x] = Math.floor(this.rand()*2.3);\n\t\t\t}\n\t\t\tconst r = row.slice(0, mirrorWidth);\n\t\t\tr.reverse();\n\t\t\trow = row.concat(r);\n\n\t\t\tfor(let i = 0; i < row.length; i++) {\n\t\t\t\tdata.push(row[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn data;\n\t}\n\n\tbuildOpts(opts) {\n\t\tconst newOpts = {};\n\n\t\tnewOpts.seed = opts.seed || Math.floor((Math.random()*Math.pow(10,16))).toString(16);\n\n\t\tthis.seedrand(newOpts.seed);\n\n\t\tnewOpts.size = opts.size || 8;\n\t\tnewOpts.scale = opts.scale || 4;\n\t\tnewOpts.color = opts.color || this.createColor();\n\t\tnewOpts.bgcolor = opts.bgcolor || this.createColor();\n\t\tnewOpts.spotcolor = opts.spotcolor || this.createColor();\n\n\t\treturn newOpts;\n\t}\n\n\trenderIcon(opts, canvas) {\n\t\topts = this.buildOpts(opts || {});\n\t\tconst imageData = this.createImageData(opts.size);\n\t\tconst width = Math.sqrt(imageData.length);\n\n\t\tcanvas.width = canvas.height = opts.size * opts.scale;\n\n\t\tconst cc = canvas.getContext('2d');\n\t\tcc.fillStyle = opts.bgcolor;\n\t\tcc.fillRect(0, 0, canvas.width, canvas.height);\n\t\tcc.fillStyle = opts.color;\n\n\t\tfor(let i = 0; i < imageData.length; i++) {\n\n\t\t\t// if data is 0, leave the background\n\t\t\tif(imageData[i]) {\n\t\t\t\tconst row = Math.floor(i / width);\n\t\t\t\tconst col = i % width;\n\n\t\t\t\t// if data is 2, choose spot color, if 1 choose foreground\n\t\t\t\tcc.fillStyle = (imageData[i] === 1) ? opts.color : opts.spotcolor;\n\n\t\t\t\tcc.fillRect(col * opts.scale, row * opts.scale, opts.scale, opts.scale);\n\t\t\t}\n\t\t}\n\n\t\treturn canvas;\n\t}\n\n\tcreateIcon(opts) {\n\t\tlet canvas = document.createElement('canvas');\n\n\t\tthis.renderIcon(opts, canvas);\n\n\t\treturn canvas;\n\t}\n\n\tcreateBlockie(address) {\n\t\treturn this.createIcon({\n\t\t\tseed: address,\n\t\t\tcolor: this.colorUtil.getHexColorFromBase36Address(address,0),\n\t\t\tbgcolor: this.colorUtil.getHexColorFromBase36Address(address,1),\n\t\t\tsize: 10,\n\t\t\tscale: 8,\n\t\t\tspotcolor: this.colorUtil.getHexColorFromBase36Address(address,2)\n\t\t});\n\t}\n}\n","import {AbstractViewModel} from \"../framework/AbstractViewModel\";\nimport {StatusBarTopLeftComponent} from \"./components/hud/StatusBarTopLeftComponent\";\nimport {StatusBarTopRightComponent} from \"./components/hud/StatusBarTopRightComponent\";\nimport {ActionBarComponent} from \"./components/hud/ActionBarComponent\";\nimport {PLAYER_TYPES} from \"../constants/PlayerTypes\";\nimport {EVENTS} from \"../constants/Events\";\nimport {MenuPage} from \"../framework/MenuPage\";\nimport {HUD_IDS} from \"../constants/HUDConstants\";\nimport {MAP_CONTAINER_IDS} from \"../constants/MapConstants\";\nimport {MENU_PAGE_ROUTER_MODES} from \"../constants/MenuPageRouterModes\";\n\nexport class HUDViewModel extends AbstractViewModel {\n\n /** @type {GameState} */\n static gameState;\n\n /** @type {SigningClientManager} */\n static signingClientManager;\n\n static containerId = 'hud-container';\n\n /** @type {StatusBarTopLeftComponent} */\n static topLeftStatusBar;\n\n /** @type {StatusBarTopRightComponent} */\n static topRightStatusBarAlphaBase;\n\n /** @type {StatusBarTopRightComponent} */\n static topRightStatusBarRaid;\n\n /** @type {ActionBarComponent} */\n static bottomLeftActionBar;\n\n /** @type {ActionBarComponent} */\n static bottomRightActionBarAlphaBase;\n\n /** @type {ActionBarComponent} */\n static bottomRightActionBarRaid;\n\n /**\n * Currently selected tile data for action bar refresh.\n * @type {{tileType: string, ambit: string, slot: number|null, playerId: string, side: string, structId: string|null, tileLabel: string}|null}\n */\n static currentSelectedTile = null;\n\n /**\n * @param {GameState} gameState\n * @param {SigningClientManager} signingClientManager\n * @param {StructManager} structManager\n * @param {TaskManager} taskManager\n */\n static init(\n gameState,\n signingClientManager,\n structManager,\n taskManager\n ) {\n HUDViewModel.gameState = gameState;\n HUDViewModel.signingClientManager = signingClientManager;\n\n HUDViewModel.topLeftStatusBar = new StatusBarTopLeftComponent(\n gameState,\n HUD_IDS.STATUS_BAR_TOP_LEFT\n );\n\n HUDViewModel.topRightStatusBarAlphaBase = new StatusBarTopRightComponent(\n gameState,\n false,\n HUD_IDS.STATUS_BAR_TOP_RIGHT_ALPHA_BASE\n );\n\n HUDViewModel.topRightStatusBarRaid = new StatusBarTopRightComponent(\n gameState,\n true,\n HUD_IDS.STATUS_BAR_TOP_RIGHT_RAID\n );\n\n HUDViewModel.bottomLeftActionBar = new ActionBarComponent(\n gameState,\n signingClientManager,\n structManager,\n taskManager,\n PLAYER_TYPES.PLAYER,\n 'left',\n HUD_IDS.ACTION_BAR_PLAYER\n );\n\n HUDViewModel.bottomRightActionBarAlphaBase = new ActionBarComponent(\n gameState,\n signingClientManager,\n structManager,\n taskManager,\n PLAYER_TYPES.PLANET_RAIDER,\n 'right',\n HUD_IDS.ACTION_BAR_ALPHA_BASE_ENEMY\n );\n\n HUDViewModel.bottomRightActionBarRaid = new ActionBarComponent(\n gameState,\n signingClientManager,\n structManager,\n taskManager,\n PLAYER_TYPES.RAID_ENEMY,\n 'right',\n HUD_IDS.ACTION_BAR_RAID_ENEMY\n );\n\n HUDViewModel.bottomLeftActionBar.profileClickHandler = function () {\n const allowedControllers = [\n 'Fleet',\n 'Guild',\n 'Account',\n ];\n if (!allowedControllers.includes(MenuPage.router.currentController)) {\n MenuPage.router.goto('Fleet', 'index');\n } else {\n if (MenuPage.router.mode !== MENU_PAGE_ROUTER_MODES.DEFAULT) {\n MenuPage.router.enableDefaultMode();\n }\n MenuPage.router.goto(MenuPage.router.currentController, MenuPage.router.currentPage, MenuPage.router.currentOptions);\n }\n MenuPage.open();\n };\n\n HUDViewModel.bottomRightActionBarAlphaBase.profileClickHandler = () => {\n MenuPage.router.enablePreviewMode();\n MenuPage.router.goto('Account', 'profile', {playerId: this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].player.id});\n MenuPage.open();\n };\n\n HUDViewModel.bottomRightActionBarRaid.profileClickHandler = () => {\n MenuPage.router.enablePreviewMode();\n MenuPage.router.goto('Account', 'profile', {playerId: this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].player.id});\n MenuPage.open();\n };\n }\n\n static initPageCode() {\n HUDViewModel.topLeftStatusBar.initPageCode();\n HUDViewModel.topRightStatusBarAlphaBase.initPageCode();\n HUDViewModel.topRightStatusBarRaid.initPageCode();\n HUDViewModel.bottomLeftActionBar.initPageCode();\n HUDViewModel.bottomRightActionBarAlphaBase.initPageCode();\n HUDViewModel.bottomRightActionBarRaid.initPageCode();\n\n window.addEventListener(EVENTS.REFRESH_ACTION_BAR, () => {\n console.log('Refreshing action bar');\n HUDViewModel.refreshActionBar();\n });\n\n // Listen for REFRESH_ACTION_BAR events (when a struct arrives at a position)\n window.addEventListener(EVENTS.REFRESH_ACTION_BAR_IF_SELECTED, (event) => {\n HUDViewModel.refreshActionBarIfSelected(\n event.tileType,\n event.ambit,\n event.slot,\n event.playerId,\n event.structId\n );\n });\n\n // Listen for PENDING_BUILD_ADDED events to refresh action bar if the tile is selected\n window.addEventListener(EVENTS.PENDING_BUILD_ADDED, (event) => {\n if (HUDViewModel.currentSelectedTile) {\n const current = HUDViewModel.currentSelectedTile;\n if (\n current.tileType === event.tileType\n && current.ambit.toUpperCase() === event.ambit.toUpperCase()\n && current.slot === event.slot\n && current.playerId === event.playerId\n ) {\n // Refresh the action bar to show the pending build\n const actionBar = HUDViewModel.whichActionBar(current.side);\n HUDViewModel[actionBar].showActionBarFor(\n current.tileType,\n current.tileLabel,\n current.side,\n current.slot,\n current.structId\n );\n }\n }\n });\n }\n\n static render() {\n return `\n ${HUDViewModel.topLeftStatusBar.renderHTML()}\n ${HUDViewModel.topRightStatusBarAlphaBase.renderHTML()}\n ${HUDViewModel.topRightStatusBarRaid.renderHTML()}\n ${HUDViewModel.bottomLeftActionBar.renderHTML()}\n ${HUDViewModel.bottomRightActionBarAlphaBase.renderHTML()}\n ${HUDViewModel.bottomRightActionBarRaid.renderHTML()}\n `;\n }\n\n /**\n * @param {string} sideClicked left or right or empty string\n * @return {string}\n */\n static whichActionBar(sideClicked) {\n let actionBar = 'bottomLeftActionBar';\n\n if (sideClicked === 'right') {\n if (this.gameState.activeMapContainerId === MAP_CONTAINER_IDS.RAID) {\n actionBar = 'bottomRightActionBarRaid';\n }\n if (\n this.gameState.activeMapContainerId === MAP_CONTAINER_IDS.ALPHA_BASE\n && this.gameState.keyPlayers[PLAYER_TYPES.PLANET_RAIDER].player\n ) {\n actionBar = 'bottomRightActionBarAlphaBase';\n }\n }\n\n return actionBar;\n }\n\n static hideActionBarActionChunks() {\n HUDViewModel.bottomLeftActionBar.hideActionChunk();\n HUDViewModel.bottomRightActionBarAlphaBase.hideActionChunk();\n HUDViewModel.bottomRightActionBarRaid.hideActionChunk();\n }\n\n /**\n * @param {HTMLElement|object} clickedDomElement\n */\n static showActionBar(clickedDomElement) {\n HUDViewModel.hideActionBarActionChunks();\n\n const actionBar = HUDViewModel.whichActionBar(clickedDomElement.dataset.side);\n const structId = clickedDomElement.dataset.structId;\n\n let slot = parseInt(clickedDomElement.dataset.slot, 10);\n if (isNaN(slot)) {\n slot = null;\n }\n\n const tileType = clickedDomElement.dataset.tileType;\n const tileLabel = clickedDomElement.dataset.tileLabel || clickedDomElement.dataset.ambit;\n const side = clickedDomElement.dataset.side;\n const playerId = clickedDomElement.dataset.playerId;\n\n // Store the currently selected tile for action bar refresh\n HUDViewModel.currentSelectedTile = {\n tileType: tileType,\n ambit: clickedDomElement.dataset.ambit,\n slot: slot,\n playerId: playerId,\n side: side,\n structId: structId || null,\n tileLabel: tileLabel\n };\n\n // Show action bar for both empty and occupied tiles\n // Pass structId to determine if deploy button should be disabled\n HUDViewModel[actionBar].showActionBarFor(\n tileType,\n tileLabel,\n side,\n slot,\n structId || null\n );\n }\n\n /**\n * Refresh the action bar for the currently selected tile.\n * Called when a struct arrives at the selected position.\n *\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n * @param {string} structId\n */\n static refreshActionBarIfSelected(tileType, ambit, slot, playerId, structId) {\n if (!HUDViewModel.currentSelectedTile) {\n return;\n }\n\n const current = HUDViewModel.currentSelectedTile;\n\n // Check if the event matches the currently selected tile\n if (\n current.tileType === tileType\n && current.ambit.toUpperCase() === ambit.toUpperCase()\n && current.slot === slot\n && current.playerId === playerId\n ) {\n // Update the stored struct ID\n HUDViewModel.currentSelectedTile.structId = structId;\n\n // Refresh the action bar\n const actionBar = HUDViewModel.whichActionBar(current.side);\n HUDViewModel[actionBar].showActionBarFor(\n current.tileType,\n current.tileLabel,\n current.side,\n current.slot,\n structId\n );\n }\n }\n\n static refreshActionBar() {\n if (!HUDViewModel.currentSelectedTile) {\n return;\n }\n\n const current = HUDViewModel.currentSelectedTile;\n const actionBar = HUDViewModel.whichActionBar(current.side);\n HUDViewModel[actionBar].showActionBarFor(\n current.tileType,\n current.tileLabel,\n current.side,\n current.slot,\n current.structId\n );\n }\n\n static hide() {\n const container = document.getElementById(this.containerId);\n if (container) {\n container.classList.add('hidden')\n }\n }\n\n static show() {\n const container = document.getElementById(this.containerId);\n if (container) {\n container.classList.remove('hidden')\n }\n }\n}\n","import {NavItemDTO} from \"../dtos/NavItemDTO\";\nimport {MenuPage} from \"../framework/MenuPage\";\nimport {AbstractViewModel} from \"../framework/AbstractViewModel\";\n\nexport class IndexView extends AbstractViewModel {\n\n initPageCode() {\n document.getElementById('new-player-btn').addEventListener('click', () => {\n MenuPage.router.goto('Auth', 'signupConnectingToCorporate1');\n });\n document.getElementById('returning-player-btn').addEventListener('click', () => {\n MenuPage.router.goto('Auth', 'loginActivateDevice');\n });\n }\n\n render () {\n const navItems = [\n new NavItemDTO(\n 'nav-item-structs',\n 'Structs'\n )\n ];\n MenuPage.setNavItems(navItems, 'nav-item-structs');\n MenuPage.disableCloseBtn()\n\n MenuPage.setBodyContent(`\n \n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class AccountActivatingDeviceViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {AuthManager} authManager\n * @param {PlayerAddressPending} playerAddressPending\n */\n constructor(\n gameState,\n authManager,\n playerAddressPending\n ) {\n super();\n this.gameState = gameState;\n this.authManager = authManager;\n this.playerAddressPending = playerAddressPending;\n }\n\n initPageCode() {\n this.authManager.activateDevice(this.playerAddressPending).then(async function (success) {\n if (!success) {\n MenuPage.router.goto('Account', 'deviceActivationCancelled');\n }\n }).catch(() => {\n MenuPage.router.goto('Account', 'deviceActivationCancelled');\n });\n }\n\n render () {\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn('Activate New Device');\n\n MenuPage.setPageTemplateContent(`\n
\n \"3\n
\n Activating device
\n
\n Do not close this screen.\n
\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {UserAgent} from \"../../models/UserAgent\";\nimport {PlayerAddressPending} from \"../../models/PlayerAddressPending\";\nimport {Blockies} from \"../../vendor/Blockies\";\nimport {PERMISSIONS} from \"../../constants/Permissions\";\n\nexport class AccountApproveNewDeviceViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {PermissionManager} permissionManager\n * @param {PlayerAddressPending} playerAddressPending\n */\n constructor(\n gameState,\n permissionManager,\n playerAddressPending\n ) {\n super();\n this.gameState = gameState;\n this.permissionManager = permissionManager;\n this.playerAddressPending = playerAddressPending;\n this.blockies = new Blockies();\n this.manageDevicesCheckboxId = 'manageDevicesCheckbox';\n this.transferAssetsCheckboxId = 'transferAssetsCheckbox';\n this.approveDeviceBtnId = 'approveDeviceBtn';\n this.denyDeviceBtnId = 'denyDeviceBtn';\n this.newDeviceBlockieId = 'newDeviceBlockie';\n }\n\n initPageCode() {\n document.getElementById(`${this.newDeviceBlockieId}`).append(\n this.blockies.createBlockie(this.playerAddressPending.address)\n );\n document.getElementById(`${this.approveDeviceBtnId}`).addEventListener(\n 'click',\n () => {\n this.playerAddressPending.permissions = this.permissionManager.getDefaultPlayerPermissions();\n this.playerAddressPending.permissions |= (document.getElementById(this.manageDevicesCheckboxId).checked\n ? this.permissionManager.getManageDevicesPermissions()\n : 0);\n this.playerAddressPending.permissions |= document.getElementById(this.transferAssetsCheckboxId).checked\n ? PERMISSIONS.ASSETS_ALL\n : 0;\n\n MenuPage.router.goto('Account', 'activatingDevice', this.playerAddressPending);\n }\n );\n }\n\n render() {\n const userAgent = new UserAgent(this.playerAddressPending.user_agent);\n const location = this.playerAddressPending.ip; // TODO: When geoip data is added, use that field if set\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn('Activate New Device');\n\n MenuPage.setPageTemplateContent(`\n
\n \n
\n
The following device is requesting access to your account:
\n
\n
\n
New Device
\n
\n
${location}
\n
${userAgent.getBrowser()} Browser
\n
${userAgent.getDeviceTypeAndOS()}
\n
\n
\n
\n
\n
\n
Device Seal
\n
Ensure this image matches the one shown on the device to be activated.
\n
\n
\n
\n
\n \n
\n
Set permissions for the new device:
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {USERNAME_PATTERN} from \"../../constants/RegexPattern\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class AccountChangeUsername extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {PermissionManager} permissionManager\n * @param {SigningClientManager} signingClientManager\n */\n constructor(\n gameState,\n guildAPI,\n permissionManager,\n signingClientManager\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.permissionManager = permissionManager;\n this.signingClientManager = signingClientManager;\n this.changeUsernameInputId = 'changeUsername';\n this.changeUsernameBtnId = 'changeUsernameBtn';\n this.changeUsernameErrorId = 'changeUsernameError';\n this.canEditUsername = true;\n this.disabledMessage = \"This device doesn't have permission to change the display name. Sign in on a device with management permissions to update it.\";\n }\n\n initPageCode() {\n if (!this.canEditUsername) {\n return;\n }\n\n const usernameInput = document.getElementById(this.changeUsernameInputId);\n usernameInput.addEventListener('keyup', () => {\n const submitBtn = document.getElementById(this.changeUsernameBtnId);\n\n if (usernameInput.value.length > 0 && submitBtn.classList.contains('sui-mod-disabled')) {\n submitBtn.disabled = false;\n submitBtn.classList.remove('sui-mod-disabled');\n submitBtn.classList.add('sui-mod-primary');\n } else if (usernameInput.value.length === 0 && submitBtn.classList.contains('sui-mod-primary')) {\n submitBtn.disabled = true;\n submitBtn.classList.remove('sui-mod-primary');\n submitBtn.classList.add('sui-mod-disabled');\n }\n });\n\n const submitBtnHandler = () => {\n document.getElementById(this.changeUsernameErrorId).classList.remove('sui-mod-show');\n\n const usernameInput = document.getElementById(this.changeUsernameInputId);\n\n if (!USERNAME_PATTERN.test(usernameInput.value)) {\n document.getElementById(this.changeUsernameErrorId).classList.add('sui-mod-show');\n } else {\n this.signingClientManager.queueMsgPlayerUpdateName(\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id,\n usernameInput.value\n );\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.username = usernameInput.value;\n MenuPage.router.goto('Account', 'profile');\n }\n };\n\n document.getElementById(this.changeUsernameBtnId).addEventListener('click', submitBtnHandler);\n usernameInput.addEventListener('keyup', (e) => {\n if (e.key === 'Enter') {\n submitBtnHandler();\n }\n });\n }\n\n render() {\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn(\n 'Change Display Name',\n true,\n () => {\n MenuPage.router.goto('Account', 'profile');\n });\n\n this.guildAPI.getPlayerAddress(this.gameState.signingAccount.address).then((currentDevice) => {\n const currentDevicePermissions = parseInt(currentDevice.permissions);\n const manageBits = this.permissionManager.getManageDevicesPermissions();\n this.canEditUsername = (currentDevicePermissions & manageBits) === manageBits;\n\n const inputAttrs = this.canEditUsername ? '' : 'readonly';\n const inputClass = this.canEditUsername ? 'sui-input-text' : 'sui-input-text sui-mod-disabled';\n const errorClass = this.canEditUsername ? 'sui-input-text-warning' : 'sui-input-text-warning sui-mod-show';\n const errorMessage = this.canEditUsername\n ? \"Name must be 3\\u201320 characters and only include letters, numbers, '-' and '_'.\"\n : this.disabledMessage;\n\n MenuPage.setPageTemplateContent(`\n
\n
\n
\n \n \n
\n
\n
${errorMessage}
\n
\n
\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\nimport {MenuWaitingOptions} from \"../../options/MenuWaitingOptions\";\nimport {TransferSentListener} from \"../../grass_listeners/TransferSentListener\";\n\nexport class AccountConfirmTransfer extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {AlphaManager} alphaManager\n * @param {GrassManager} grassManager\n * @param {PlayerSearchResultDTO|object} playerSearchResultDTO\n */\n constructor(\n gameState,\n guildAPI,\n alphaManager,\n grassManager,\n playerSearchResultDTO\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.alphaManager = alphaManager;\n this.grassManager = grassManager;\n this.playerSearchResultDTO = playerSearchResultDTO;\n this.numberFormatter = new NumberFormatter();\n this.cancelBtnId = 'confirm-transfer-cancel-btn';\n this.transferBtnId = 'confirm-transfer-transfer-btn';\n }\n\n initPageCode() {\n document.getElementById(this.cancelBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'index');\n });\n document.getElementById(this.transferBtnId).addEventListener('click', () => {\n const options = new MenuWaitingOptions();\n options.headerBtnLabel = 'Transferring...';\n options.waitingAnimation = 'ALPHA_TRANSFER';\n options.hasDoNotCloseMessage = false;\n\n MenuPage.router.goto('Generic', 'menuWaiting', options);\n\n this.grassManager.registerListener(new TransferSentListener(\n this.gameState,\n this.gameState.signingAccount.address,\n this.playerSearchResultDTO.address,\n this.gameState.transferAmount\n ));\n\n this.alphaManager.transferAlpha(this.playerSearchResultDTO.address, this.gameState.transferAmount).then();\n });\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderNameHTML(playerSearchResultDTO) {\n let html = 'Non-Player Address';\n if (playerSearchResultDTO.id) {\n let tag = playerSearchResultDTO.tag\n ? `[${playerSearchResultDTO.tag}]`\n : '';\n let username = playerSearchResultDTO.username\n ? playerSearchResultDTO.username\n : 'Name Redacted';\n html = `${tag} ${username}`;\n }\n return html;\n }\n\n render () {\n const amount = this.numberFormatter.format(this.gameState.transferAmount);\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn('Confirm Transfer', true, () => {\n MenuPage.router.back();\n });\n\n MenuPage.setPageTemplateContent(`\n
\n \n
\n
Transaction Details
\n
\n \n
\n
Amount
\n
\n
\n ${amount}\n \n
\n
\n
\n \n
\n
Recipient
\n
\n ${this.renderNameHTML(this.playerSearchResultDTO)}\n
\n ${\n this.playerSearchResultDTO.id\n ? '#' + this.playerSearchResultDTO.id\n : this.playerSearchResultDTO.address\n }\n
\n
\n\n
\n
\n \n \n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class AccountDeviceActivationCancelled extends AbstractViewModel {\n\n constructor() {\n super();\n this.returnToAccountBtnId = 'return-to-account-btn';\n }\n\n initPageCode() {\n document.getElementById(this.returnToAccountBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'index');\n });\n }\n\n render () {\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn('Activate New Device');\n\n MenuPage.setPageTemplateContent(`\n
\n
\n
\n \n Activation Cancelled\n
\n
This device has not been activated.
\n
\n \n
\n \n
\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class AccountDeviceActivationComplete extends AbstractViewModel {\n\n constructor() {\n super();\n this.returnToAccountBtnId = 'return-to-account-btn';\n }\n\n initPageCode() {\n document.getElementById(this.returnToAccountBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'index');\n });\n }\n\n render () {\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn('Activate New Device');\n\n MenuPage.setPageTemplateContent(`\n
\n
\n
\n \n Device Approved\n
\n
The new device has been activated.
\n
\n \n
\n \n
\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {UserAgent} from \"../../models/UserAgent\";\nimport {PERMISSIONS} from \"../../constants/Permissions\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\nimport {SetAddressPermissionsRequestDTO} from \"../../dtos/SetAddressPermissionsRequestDTO\";\nimport {MenuWaitingOptions} from \"../../options/MenuWaitingOptions\";\n\nexport class AccountDeviceViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {PermissionManager} permissionManager\n * @param {PlayerAddress} deviceAddress\n */\n constructor(\n gameState,\n guildAPI,\n permissionManager,\n deviceAddress,\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.permissionManager = permissionManager;\n this.deviceAddress = deviceAddress;\n this.playerAddressDetails = null;\n this.deviceLogoutBtnId = 'deviceLogoutBtn';\n this.manageDevicesCheckboxId = 'manageDevicesCheckbox';\n this.transferAssetsCheckboxId = 'transferAssetsCheckbox';\n this.cancelDeviceChangesBtnId = 'cancelDeviceChangesBtnId';\n this.saveDeviceChangesBtnId = 'saveDeviceChangesBtn';\n\n this.isPrimaryDevice = (this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.primary_address === this.deviceAddress.address);\n this.isCurrentDevice = (this.gameState.signingAccount.address === this.deviceAddress.address);\n this.canEditPermissions = true;\n }\n\n initPageCode() {\n if (this.canEditPermissions) {\n document.getElementById(`${this.cancelDeviceChangesBtnId}`).addEventListener(\n 'click',\n () => {\n MenuPage.router.goto('Account', 'devices');\n }\n );\n\n document.getElementById(this.saveDeviceChangesBtnId).addEventListener(\n 'click',\n () => {\n const request = new SetAddressPermissionsRequestDTO();\n request.address = this.playerAddressDetails.address;\n request.permissions = this.permissionManager.getDefaultPlayerPermissions();\n request.permissions |= (document.getElementById(this.manageDevicesCheckboxId).checked\n ? this.permissionManager.getManageDevicesPermissions()\n : 0);\n request.permissions |= document.getElementById(this.transferAssetsCheckboxId).checked\n ? PERMISSIONS.ASSETS_ALL\n : 0;\n\n const options = new MenuWaitingOptions();\n options.headerBtnLabel = 'Manage Device';\n options.waitingMessage = 'Saving changes.';\n\n MenuPage.router.goto('Generic', 'menuWaiting', options);\n\n this.guildAPI.setAddressPermissions(request).then(() => {\n MenuPage.router.goto('Account', 'devices');\n });\n }\n );\n }\n\n const logoutBtn = document.getElementById(this.deviceLogoutBtnId);\n if (logoutBtn) {\n logoutBtn.addEventListener(\n 'click',\n () => {\n if (!this.isPrimaryDevice && this.playerAddressDetails.alpha) {\n MenuPage.router.goto('Auth', 'logoutAssetsWarning', this.playerAddressDetails);\n } else if (this.playerAddressDetails.isOnlyManagingDevice) {\n MenuPage.router.goto('Auth', 'logoutPermissionsWarning', this.playerAddressDetails);\n } else if (this.isPrimaryDevice) {\n MenuPage.router.goto('Auth', 'logout');\n } else {\n MenuPage.router.goto('Auth', 'logout', this.playerAddressDetails);\n }\n });\n }\n }\n\n render() {\n const fetchTargetDevice = this.guildAPI.getPlayerAddress(this.deviceAddress.address);\n const fetchCurrentDevice = this.isCurrentDevice\n ? fetchTargetDevice\n : this.guildAPI.getPlayerAddress(this.gameState.signingAccount.address);\n\n Promise.all([fetchTargetDevice, fetchCurrentDevice]).then(([playerAddress, currentDevicePlayerAddress]) => {\n this.playerAddressDetails = playerAddress;\n this.playerAddressDetails.isOnlyManagingDevice = this.deviceAddress.isOnlyManagingDevice;\n\n const currentDevicePermissions = parseInt(currentDevicePlayerAddress.permissions);\n this.canEditPermissions =\n (currentDevicePermissions & this.permissionManager.getManageDevicesPermissions()) === this.permissionManager.getManageDevicesPermissions();\n\n const userAgent = new UserAgent(playerAddress.user_agent);\n\n let location = playerAddress.ip; // TODO: When geoip data is added, use that field if set\n let logoutSection = '';\n\n if (this.isPrimaryDevice) {\n location = `[PRIMARY DEVICE]
${location}`;\n logoutSection = `\n
\n
\n
Primary Device Logout
\n
Remote logout is not available for primary devices. Please log out using the primary device itself.
\n
\n
\n `;\n } else if (this.isCurrentDevice || this.canEditPermissions) {\n logoutSection = `\n Log Out\n `;\n }\n\n const isCheckedManageDevices = (parseInt(playerAddress.permissions) & this.permissionManager.getManageDevicesPermissions()) === this.permissionManager.getManageDevicesPermissions();\n const isCheckedTransferAssets = (parseInt(playerAddress.permissions) & PERMISSIONS.ASSETS_ALL) === PERMISSIONS.ASSETS_ALL;\n const checkboxDisabledAttr = this.canEditPermissions ? '' : 'disabled';\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn(\n 'Manage Device',\n true,\n () => {\n MenuPage.router.goto('Account', 'devices');\n });\n\n MenuPage.setPageTemplateContent(`\n
\n\n
\n \n
\n \n \n
\n
${location}
\n
\n
${userAgent.getBrowser()} Browser
\n
${userAgent.getDeviceTypeAndOS()}
\n
\n
\n
\n \n ${logoutSection}\n
\n \n
\n
Device permissions:
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n ${this.canEditPermissions ? `\n
\n Cancel\n Save\n
\n ` : ''}\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {Blockies} from \"../../vendor/Blockies\";\nimport {UserAgent} from \"../../models/UserAgent\";\nimport {PlayerAddress} from \"../../models/PlayerAddress\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class AccountDevicesViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {AuthManager} authManager\n * @param {PermissionManager} permissionManager\n */\n constructor(\n gameState,\n guildAPI,\n authManager,\n permissionManager\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.authManager = authManager;\n this.permissionManager = permissionManager;\n this.activateNewDeviceBtnId = 'activate-new-device';\n this.blockies = new Blockies();\n this.devices = new Map();\n }\n\n initPageCode() {\n document.getElementById(this.activateNewDeviceBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'newDeviceCode');\n });\n\n let numManagingDevices = 0;\n this.devices.forEach((device) => {\n numManagingDevices += ((parseInt(device.playerAddress.permissions) & this.permissionManager.getManageDevicesPermissions()) === this.permissionManager.getManageDevicesPermissions()) ? 1 : 0;\n });\n\n this.devices.forEach((device, address) => {\n document.getElementById(`device-${address}`).append(device.blockieElm);\n document.getElementById(`manage-${address}`).addEventListener('click', () => {\n if (\n numManagingDevices === 1\n && ((parseInt(device.playerAddress.permissions) & this.permissionManager.getManageDevicesPermissions()) === this.permissionManager.getManageDevicesPermissions())\n ) {\n device.playerAddress.isOnlyManagingDevice = true;\n }\n MenuPage.router.goto('Account', 'manageDevice', device.playerAddress);\n });\n })\n }\n\n /**\n * @param {PlayerAddress} playerAddress\n * @return {string}\n */\n renderDevice(playerAddress) {\n this.devices.set(playerAddress.address, {\n playerAddress: playerAddress,\n blockieElm: this.blockies.createBlockie(playerAddress.address)\n });\n const userAgent = new UserAgent(playerAddress.user_agent);\n\n let location = playerAddress.ip; // TODO: When geoip data is added, use that field if set\n\n if (this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.primary_address === playerAddress.address) {\n location = `[Primary Device]
${location}`;\n }\n\n const lastActivity = new Date(playerAddress.block_time).toLocaleDateString(\n 'default',\n {\n month:\"long\",\n day:\"numeric\",\n year:\"numeric\"\n }\n );\n const deviceInfoList = [];\n\n if (playerAddress.address === this.gameState.signingAccount.address) {\n deviceInfoList.push('This Device');\n } else {\n deviceInfoList.push(`${userAgent.getBrowser()} Browser`);\n deviceInfoList.push(`${userAgent.getDeviceTypeAndOS()}`);\n deviceInfoList.push(`Last Activity: ${lastActivity}`);\n }\n\n const deviceInfoListHtml = deviceInfoList.reduce((html, info) => html + `
${info}
`, '');\n\n return `\n
\n
\n
\n
\n
${location}
\n
\n ${deviceInfoListHtml}\n
\n
\n
\n Manage\n
\n `;\n }\n\n render () {\n this.guildAPI.getPlayerAddressList(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id).then((playerAddresses) => {\n\n const deviceListHtml = playerAddresses.reduce((html, playerAddress) => {\n return html + this.renderDevice(playerAddress)\n }, '');\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn(\n 'Devices',\n true,\n () => {\n MenuPage.router.goto('Account', 'index');\n });\n\n MenuPage.setPageTemplateContent(`\n
\n \n ${deviceListHtml}\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class AccountIndexViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {AuthManager} authManager\n */\n constructor(\n gameState,\n guildAPI,\n authManager\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.authManager = authManager;\n this.copyPidBtnId = 'account-menu-copy-pid';\n this.profileBtnId = 'account-menu-profile-btn';\n this.transfersBtnId = 'account-menu-transfers-btn';\n this.devicesBtnId = 'account-menu-devices-btn';\n this.logoutBtnId = 'account-menu-logout-btn';\n }\n\n initPageCode() {\n document.getElementById(this.copyPidBtnId).addEventListener('click', async function () {\n if (navigator.clipboard) {\n await navigator.clipboard.writeText(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id);\n }\n }.bind(this));\n document.getElementById(this.logoutBtnId).addEventListener('click', function () {\n this.authManager.logout();\n }.bind(this));\n document.getElementById(this.profileBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'profile');\n });\n document.getElementById(this.transfersBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'transfers');\n });\n document.getElementById(this.devicesBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'devices');\n });\n }\n\n render () {\n this.guildAPI.getPlayerAddressCount(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id).then((addressCount) => {\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn('Account');\n\n MenuPage.setPageTemplateContent(`\n
\n
\n
\n
\n ${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].getTag()}\n ${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].getUsername()}\n
\n
\n PID #${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id}\n \n \n \n
\n
\n
\n \n
\n
\n \n \n \n
\n \n
\n
\n
\n \n \n \n
\n \n
\n
\n
\n \n \n \n
\n \n
${addressCount} Devices Active
\n
\n
\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {CreateActivationCodeRequestDTO} from \"../../dtos/CreateActivationCodeRequestDTO\";\n\nexport class AccountNewDeviceCodeViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {AuthManager} authManager\n */\n constructor(\n gameState,\n guildAPI,\n authManager\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.authManager = authManager;\n this.generateActivationCode = 'generate-activation-code';\n this.generateNewCode = 'generate-new-code';\n this.activationCodeWrapper = 'activation-code-Wrapper';\n this.activationCodeDisplay = 'activation-code-display';\n }\n\n initPageCode() {\n const generatedActivationCodeElm = document.getElementById(this.generateActivationCode);\n\n generatedActivationCodeElm.addEventListener('click', () => {\n\n const request = new CreateActivationCodeRequestDTO();\n request.logged_in_address = this.gameState.signingAccount.address;\n request.guild_id = this.gameState.thisGuild.id;\n\n this.authManager.createActivationCode(request).then((code) => {\n document.getElementById(this.activationCodeDisplay).innerHTML = code;\n generatedActivationCodeElm.classList.add('hidden');\n document.getElementById(this.activationCodeWrapper).classList.remove('hidden');\n });\n\n });\n\n document.getElementById(this.generateNewCode).addEventListener('click', () => {\n\n const request = new CreateActivationCodeRequestDTO();\n request.logged_in_address = this.gameState.signingAccount.address;\n request.guild_id = this.gameState.thisGuild.id;\n\n this.authManager.createActivationCode(request).then((code) => {\n document.getElementById(this.activationCodeDisplay).innerHTML = code;\n });\n\n });\n }\n\n render () {\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn(\n 'Activate New Device',\n true,\n () => {\n MenuPage.router.goto('Account', 'devices');\n });\n\n MenuPage.setPageTemplateContent(`\n
\n \n
\n
\n
\n
Activation Code
\n
\n
\n \n
\n
Do not close this screen until activation is complete.
\n
\n
Enter the above code on the Returning Player screen on your new device to activate it.
\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {GenericResourceComponent} from \"../components/GenericResourceComponent\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class AccountProfileViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {string} playerId\n */\n constructor(\n gameState,\n guildAPI,\n playerId\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.playerId = playerId;\n this.player = null;\n this.guild = null;\n this.isOwnProfile = (this.playerId === this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id);\n this.numberFormatter = new NumberFormatter();\n this.editUsernameBtnId = 'account-profile-edit-username-btn';\n this.copyPidBtnId = 'account-profile-copy-pid-btn';\n this.copyPidBtnId2 = 'account-profile-copy-pid-btn-2';\n this.copyAddressBtnId = 'account-profile-copy-address-btn';\n this.alphaMatterId = 'account-profile-alpha-matter';\n this.alphaInfusedId = 'account-profile-alpha-infused';\n this.energyUsageId = 'account-profile-energy-usage';\n this.oreMinedId = 'account-profile-ore-mined';\n this.oreStolenId = 'account-profile-ore-stolen';\n this.oreLostId = 'account-profile-ore-lost';\n this.genericResourceComponent = new GenericResourceComponent(gameState);\n this.alphaInfused = 0;\n this.playerOreStats = null;\n this.playerPlanetsCompleted = 0;\n this.playerRaidsLaunched = 0;\n }\n\n async fetchPageData() {\n const infusionPromise = this.guildAPI.getInfusionByPlayerId(this.playerId);\n const playerOreStatsPromise = this.guildAPI.getPlayerOreStats(this.playerId);\n const playerPlanetsCompletedPromise = this.guildAPI.getPlayerPlanetsCompleted(this.playerId);\n const playerRaidsLaunchedPromise = this.guildAPI.getPlayerRaidsLaunched(this.playerId);\n\n let playerPromise;\n let guildPromise;\n if (this.isOwnProfile) {\n playerPromise = Promise.resolve(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player);\n guildPromise = Promise.resolve(this.gameState.thisGuild);\n } else {\n playerPromise = this.guildAPI.getPlayer(this.playerId);\n guildPromise = playerPromise.then((player) => this.guildAPI.getGuild(player.guild_id));\n }\n\n const [\n player,\n guild,\n infusion,\n playerOreStats,\n playerPlanetsCompleted,\n playerRaidsLaunched\n ] = await Promise.all([\n playerPromise,\n guildPromise,\n infusionPromise,\n playerOreStatsPromise,\n playerPlanetsCompletedPromise,\n playerRaidsLaunchedPromise\n ]);\n\n this.player = player;\n this.guild = guild;\n this.alphaInfused = infusion.fuel;\n this.playerOreStats = playerOreStats;\n this.playerPlanetsCompleted = playerPlanetsCompleted;\n this.playerRaidsLaunched = playerRaidsLaunched;\n }\n\n initPageCode() {\n if (this.isOwnProfile) {\n document.getElementById(this.editUsernameBtnId).addEventListener('click', function () {\n MenuPage.router.goto('Account', 'changeUsername');\n });\n }\n\n document.getElementById(this.copyPidBtnId).addEventListener('click', async function () {\n if (navigator.clipboard) {\n await navigator.clipboard.writeText(this.playerId);\n }\n }.bind(this));\n document.getElementById(this.copyPidBtnId2).addEventListener('click', async function () {\n if (navigator.clipboard) {\n await navigator.clipboard.writeText(this.playerId);\n }\n }.bind(this));\n document.getElementById(this.copyAddressBtnId).addEventListener('click', async function () {\n if (navigator.clipboard) {\n await navigator.clipboard.writeText(this.player.primary_address);\n }\n }.bind(this));\n }\n\n renderEditUsernameBtnHTML() {\n return this.isOwnProfile\n ? `\n \n \n \n `\n : '' ;\n }\n\n getEnergyUsage() {\n const load = this.player.load ? this.player.load : 0;\n const structsLoad = this.player.structs_load ? this.player.structs_load : 0;\n const capacity = this.player.capacity ? this.player.capacity : 0;\n const connectionCapacity = this.player.connection_capacity ? this.player.connection_capacity : 0;\n\n let totalLoad = load + structsLoad;\n let totalCapacity = capacity + connectionCapacity;\n totalLoad = this.numberFormatter.format(totalLoad);\n totalCapacity = this.numberFormatter.format(totalCapacity);\n\n return `${totalLoad}/${totalCapacity}`;\n }\n\n renderPageTemplateHeader() {\n if (this.isOwnProfile) {\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn('Profile', true, () => {\n MenuPage.router.goto('Account', 'index');\n });\n } else {\n MenuPage.enablePageTemplate(MenuPage.navItemGuildId);\n\n MenuPage.setPageTemplateHeaderBtn('Guild Profile', true, () => {\n MenuPage.router.back();\n });\n }\n }\n\n renderSkeleton() {\n this.renderPageTemplateHeader();\n\n MenuPage.setPageTemplateContent(`\n
\n \"3\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n }\n\n renderContent() {\n const editUsernameBtn = this.renderEditUsernameBtnHTML();\n\n this.renderPageTemplateHeader();\n\n MenuPage.setPageTemplateContent(`\n
\n
\n
\n
\n
\n
\n
\n ${this.player.getTag()}\n ${this.player.getUsername()}\n ${editUsernameBtn}\n
\n
\n #${this.playerId}\n \n
\n \n
\n
\n
\n
\n
\n \n
\n
Player Details
\n
\n
\n
Guild
\n
${this.guild.name}
\n
\n
\n
\n Player ID\n \n \n \n
\n
\n #${this.playerId}\n \n \n \n
\n
\n
\n
\n Blockchain Address\n \n \n \n
\n
\n Copy Address\n \n \n \n
\n
\n
\n
\n \n
\n
Power
\n
\n
\n
Alpha Matter
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.alphaMatterId,\n 'sui-icon-alpha-matter',\n 'Alpha Matter',\n this.numberFormatter.format(this.player.alpha)\n )\n }\n
\n
\n
\n
Alpha Infused
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.alphaInfusedId, \n 'sui-icon-alpha-matter', \n 'Alpha Infused', \n this.alphaInfused\n )\n }\n
\n
\n
\n
Energy Usage
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.energyUsageId,\n 'sui-icon-energy',\n 'Energy usage',\n this.getEnergyUsage()\n )\n }\n
\n
\n
\n
\n \n
\n
Statistics
\n
\n
\n
Planets Completed
\n
${this.playerPlanetsCompleted}
\n
\n
\n
Raids Launched
\n
${this.playerRaidsLaunched}
\n
\n
\n
Ore Mined
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.oreMinedId,\n 'sui-icon-alpha-ore',\n 'Ore Mined',\n this.playerOreStats.mined\n )\n }\n
\n
\n
\n
Ore Stolen
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.oreStolenId,\n 'sui-icon-alpha-ore',\n 'Ore Stolen',\n this.playerOreStats.seized\n )\n }\n
\n
\n
\n
Ore Lost
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.oreLostId,\n 'sui-icon-alpha-ore',\n 'Ore Lost',\n this.playerOreStats.forfeited\n )\n }\n
\n
\n
\n
\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n\n render () {\n const navAtRender = MenuPage.router.navigationId;\n this.renderSkeleton();\n this.fetchPageData().then(() => {\n if (navAtRender !== MenuPage.router.navigationId) return;\n this.renderContent();\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\n\nexport class AccountRecipientSearchResults extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {TransferSearchRequestDTO|object} transferSearchRequest\n */\n constructor(\n gameState,\n guildAPI,\n transferSearchRequest\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.transferSearchRequest = transferSearchRequest;\n this.numberFormatter = new NumberFormatter();\n this.players = [];\n }\n\n initPageCode() {\n this.players.forEach((player) => {\n document.getElementById(`recipient-${player.id}`).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'recipient', player)\n });\n })\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderIconHTML(playerSearchResultDTO) {\n let html = `\n
\n
\n
\n `;\n\n if (!playerSearchResultDTO.id) {\n html = `\n
\n \n
\n `;\n }\n\n return html;\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderPlayerInfoHTML(playerSearchResultDTO) {\n let html = `\n
\n
\n Address ${playerSearchResultDTO.address}\n
\n
\n `;\n\n if (playerSearchResultDTO.id) {\n let tag = playerSearchResultDTO.tag\n ? `[${playerSearchResultDTO.tag}]`\n : '';\n let username = playerSearchResultDTO.username\n ? playerSearchResultDTO.username\n : 'Name Redacted'\n\n html = `\n
\n
\n ${tag} ${username}
\n PID #${playerSearchResultDTO.id}\n
\n
\n `;\n }\n\n return html;\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderAlphaHTML(playerSearchResultDTO) {\n if (isNaN(parseInt(playerSearchResultDTO.alpha))) {\n return '';\n }\n\n const amount = this.numberFormatter.format(playerSearchResultDTO.alpha);\n return `\n ${amount}\n \n `;\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderResultRowHTML(playerSearchResultDTO) {\n\n const iconHTML = this.renderIconHTML(playerSearchResultDTO);\n const playerInfoHTML = this.renderPlayerInfoHTML(playerSearchResultDTO);\n const alphaHTML = this.renderAlphaHTML(playerSearchResultDTO);\n const btnId = `recipient-${playerSearchResultDTO.id}`;\n\n return `\n
\n
\n ${iconHTML}\n ${playerInfoHTML}\n
\n
\n
\n
\n ${alphaHTML}\n
\n
\n View\n
\n
\n `;\n }\n\n render () {\n this.guildAPI.transferSearch(this.transferSearchRequest).then((players) => {\n\n this.players = players;\n\n let noResultsMessage = this.players.length > 0\n ? ''\n : `
No results found. Please try a different search term.
`;\n let maxResultsMessage = this.players.length >= 25\n ? `
Showing the first 25 results. Try narrowing your search for better results.
`\n : '';\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn('Search Results', true, () => {\n MenuPage.router.goto('Account', 'recipientSearch');\n });\n\n const playersListHTML = players.reduce((html, player) => {\n return html + this.renderResultRowHTML(player)\n }, '');\n\n MenuPage.setPageTemplateContent(`\n
\n \n ${noResultsMessage}\n \n
\n \n ${playersListHTML}\n \n
\n \n ${maxResultsMessage}\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {SEARCH_STRING_PATTERN} from \"../../constants/RegexPattern\";\nimport {TransferSearchRequestDTO} from \"../../dtos/TransferSearchRequestDTO\";\n\nexport class AccountRecipientSearchViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n */\n constructor(\n gameState,\n guildAPI\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.playerSearchInputId = 'playerSearch';\n this.playerSearchBtnId = 'playerSearchBtn';\n this.playerSearchErrorId = 'playerSearchError';\n this.guildFilterSelectId = 'guildFilterSelect';\n }\n\n initPageCode() {\n const playerSearchInput = document.getElementById(this.playerSearchInputId);\n playerSearchInput.addEventListener('keyup', () => {\n const submitBtn = document.getElementById(this.playerSearchBtnId);\n\n if (playerSearchInput.value.length > 0 && submitBtn.classList.contains('sui-mod-disabled')) {\n submitBtn.disabled = false;\n submitBtn.classList.remove('sui-mod-disabled');\n submitBtn.classList.add('sui-mod-primary');\n } else if (playerSearchInput.value.length === 0 && submitBtn.classList.contains('sui-mod-primary')) {\n submitBtn.disabled = true;\n submitBtn.classList.remove('sui-mod-primary');\n submitBtn.classList.add('sui-mod-disabled');\n }\n });\n\n const submitBtnHandler = () => {\n document.getElementById(this.playerSearchErrorId).classList.remove('sui-mod-show');\n\n const playerSearchInput = document.getElementById(this.playerSearchInputId);\n\n if (!SEARCH_STRING_PATTERN.test(playerSearchInput.value)) {\n document.getElementById(this.playerSearchErrorId).classList.add('sui-mod-show');\n } else {\n const transferSearchRequest = new TransferSearchRequestDTO();\n transferSearchRequest.search_string = playerSearchInput.value;\n transferSearchRequest.guild_id = document.getElementById(this.guildFilterSelectId).value;\n\n MenuPage.router.goto('Account', 'recipientSearchResults', transferSearchRequest);\n }\n };\n\n document.getElementById(this.playerSearchBtnId).addEventListener('click', submitBtnHandler);\n playerSearchInput.addEventListener('keyup', (e) => {\n if (e.key === 'Enter') {\n submitBtnHandler();\n }\n });\n }\n\n render() {\n this.guildAPI.getGuildFilterList().then(guilds => {\n\n const guildFilterOptions = guilds.reduce((options, guild) =>\n options + ``\n , '');\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn(\n 'Find Recipient',\n true,\n () => {\n MenuPage.router.goto('Account', 'transferAmount');\n });\n\n MenuPage.setPageTemplateContent(`\n
\n
Who do you want to send to?
\n
\n
\n \n \n \n
\n
\n
Enter at least 3 characters, using only letters, numbers, '-' and '_'.
\n
\n
\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\n\nexport class AccountRecipientViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {PlayerSearchResultDTO|object} playerSearchResultDTO\n */\n constructor(\n gameState,\n guildAPI,\n playerSearchResultDTO\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.playerSearchResultDTO = playerSearchResultDTO;\n this.numberFormatter = new NumberFormatter();\n this.selectThisPlayerBtnId = 'select-this-player-btn';\n }\n\n initPageCode() {\n document.getElementById(this.selectThisPlayerBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'confirmTransfer', this.playerSearchResultDTO)\n })\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderIconHTML(playerSearchResultDTO) {\n let html = `\n
\n
\n
\n `;\n\n if (!playerSearchResultDTO.id) {\n html = `\n
\n \n
\n `;\n }\n\n return html;\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderNameHTML(playerSearchResultDTO) {\n let html = 'Non-Player Address';\n if (playerSearchResultDTO.id) {\n let tag = playerSearchResultDTO.tag\n ? `[${playerSearchResultDTO.tag}]`\n : '';\n let username = playerSearchResultDTO.username\n ? playerSearchResultDTO.username\n : 'Name Redacted';\n html = `${tag} ${username}`;\n }\n return html;\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderAlphaHTML(playerSearchResultDTO) {\n if (isNaN(parseInt(playerSearchResultDTO.alpha))) {\n return '';\n }\n\n const amount = this.numberFormatter.format(playerSearchResultDTO.alpha);\n return `\n ${amount}\n \n `;\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n getCardTitle(playerSearchResultDTO) {\n return playerSearchResultDTO.id ? `Player Details` : 'Recipient Details';\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderGuildDataRow(playerSearchResultDTO) {\n return playerSearchResultDTO.guild_name\n ? `\n
\n
Guild
\n
${playerSearchResultDTO.guild_name}
\n
\n `\n : '';\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderPlayerIdDataRow(playerSearchResultDTO) {\n return playerSearchResultDTO.id\n ? `\n
\n
\n Player ID\n \n \n \n
\n
#${playerSearchResultDTO.id}
\n
\n `\n : '';\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderAddressDataRow(playerSearchResultDTO) {\n return playerSearchResultDTO.address\n ? `\n
\n
\n Blockchain Address\n \n \n \n
\n
${playerSearchResultDTO.address}
\n
\n `\n : '';\n }\n\n render () {\n\n const iconHTML = this.renderIconHTML(this.playerSearchResultDTO);\n const nameHTML = this.renderNameHTML(this.playerSearchResultDTO);\n const alphaHTML = this.renderAlphaHTML(this.playerSearchResultDTO);\n const cardTitle = this.getCardTitle(this.playerSearchResultDTO);\n const guildDataRow = this.renderGuildDataRow(this.playerSearchResultDTO);\n const playerIdDataRow = this.renderPlayerIdDataRow(this.playerSearchResultDTO);\n const addressDataRow = this.renderAddressDataRow(this.playerSearchResultDTO);\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn('Recipient', true, () => {\n MenuPage.router.goto('Account', 'recipientSearchResults');\n });\n\n MenuPage.setPageTemplateContent(`\n
\n
\n ${iconHTML}\n
\n
\n ${nameHTML}\n
\n
\n ${alphaHTML}\n
\n
\n
\n \n
\n
${cardTitle}
\n
\n ${guildDataRow}\n ${playerIdDataRow}\n ${addressDataRow}\n
\n
\n \n \n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\nimport {Pagination} from \"../templates/partials/Pagination\";\nimport {PAGINATION_LIMITS} from \"../../constants/PaginationLimits\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class AccountTransactionHistory extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {number} page\n */\n constructor(\n gameState,\n guildAPI,\n page\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.numberFormatter = new NumberFormatter();\n this.page = page;\n this.playerId = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id;\n // this.playerId = '1-1';\n this.transactions = [];\n }\n\n initPageCode() {\n this.transactions.forEach((transaction) => {\n document.getElementById(`transaction-${transaction.id}`).addEventListener('click', () => {\n MenuPage.router.goto(\n 'Account',\n 'transaction',\n {\n txId: transaction.id,\n comingFromPage: this.page\n }\n );\n });\n })\n }\n\n /**\n * @param {Transaction} transaction\n * @return {string}\n */\n renderTransactionHTML(transaction) {\n\n const iconClass = transaction.action === 'sent' ? 'icon-outgoing' : 'icon-incoming';\n const amount = this.numberFormatter.format(transaction.amount);\n const btnId = `transaction-${transaction.id}`;\n\n return `\n
\n
\n
\n \n
\n
\n
\n Transaction #${transaction.id}\n
\n Completed\n
\n
\n
\n
\n
\n ${amount}\n \n
\n
\n View\n
\n
\n `;\n }\n\n render () {\n this.guildAPI.getTransactions(this.playerId, this.page).then((transactions) => {\n this.guildAPI.countTransactions(this.playerId).then(transactionCount => {\n\n this.transactions = transactions;\n\n let noTransactionsMessage = `
No confirmed alpha transactions yet.
`;\n let paginationHTML = '';\n\n const pagination = new Pagination(\n this.page,\n PAGINATION_LIMITS.DEFAULT,\n transactionCount,\n 'transactions',\n 'Account',\n 'transactionHistory'\n );\n\n if (transactionCount) {\n noTransactionsMessage = '';\n paginationHTML = pagination.render();\n }\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn('Transaction History', true, () => {\n MenuPage.router.goto('Account', 'transfers');\n });\n\n const transactionListHTML = transactions.reduce((html, transaction) => {\n return html + this.renderTransactionHTML(transaction)\n }, '');\n\n MenuPage.setPageTemplateContent(`\n
\n \n ${noTransactionsMessage}\n \n
\n \n ${transactionListHTML}\n \n
\n \n ${paginationHTML}\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n pagination.init();\n });\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\nimport {DateFormatter} from \"../../util/DateFormatter\";\nimport {GenericResourceComponent} from \"../components/GenericResourceComponent\";\n\nexport class AccountTransactionViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {number} txId\n * @param {number} comingFromPage\n * @param {boolean} hasBackToAccountBtn\n */\n constructor(\n gameState,\n guildAPI,\n txId,\n comingFromPage,\n hasBackToAccountBtn = false\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.numberFormatter = new NumberFormatter();\n this.dateFormatter = new DateFormatter();\n this.genericResourceComponent = new GenericResourceComponent(gameState);\n this.txId = txId;\n this.comingFromPage = comingFromPage;\n this.amountId = 'transaction-resource-amount';\n this.counterpartyLinkId = 'transaction-counterparty-link';\n this.transaction = null;\n this.hasBackToAccountBtn = hasBackToAccountBtn;\n this.backToAccountBtnId = 'transaction-back-to-account-btn';\n }\n\n initPageCode() {\n if (this.transaction.counterparty_player_id) {\n document.getElementById(this.counterpartyLinkId).addEventListener('click', () => {\n console.log(this.transaction.counterparty_player_id);\n });\n }\n\n if (this.hasBackToAccountBtn) {\n document.getElementById(this.backToAccountBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'index');\n });\n }\n }\n\n /**\n * @return {string}\n */\n renderCounterpartyName() {\n if (this.transaction.counterparty_username) {\n return `${this.transaction.counterparty_username}`;\n } else if (this.transaction.counterparty_player_id) {\n return `Player #${this.transaction.counterparty_player_id}`;\n }\n return `${this.transaction.counterparty}`;\n }\n\n renderBackToAccountBtn() {\n return this.hasBackToAccountBtn\n ? `\n \n `\n : '';\n }\n\n render () {\n this.guildAPI.getTransaction(this.txId).then((transaction) => {\n\n this.transaction = transaction;\n\n const counterpartyLabel = transaction.action === 'sent' ? 'Recipient' : 'Sender';\n const backToAccountBtn = this.renderBackToAccountBtn();\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn('Transaction Details', true, () => {\n MenuPage.router.goto(\n 'Account',\n 'transactionHistory',\n {page: this.comingFromPage}\n );\n });\n\n MenuPage.setPageTemplateContent(`\n
\n
\n \n This transaction was completed successfully.\n
\n \n
\n
Player Details
\n
\n \n
\n
Transaction ID
\n
#${this.txId}
\n
\n \n
\n
Date
\n
${this.dateFormatter.formatDatetime(transaction.time)}
\n
\n \n
\n
Amount
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.amountId,\n 'sui-icon-alpha-matter',\n 'Alpha Matter',\n this.numberFormatter.format(transaction.amount)\n )\n }\n
\n
\n \n
\n
${counterpartyLabel}
\n
${this.renderCounterpartyName()}
\n
\n
\n
\n \n ${backToAccountBtn}\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class AccountTransferAmountViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super();\n this.gameState = gameState;\n this.amountInputId = 'transferAmountInput';\n this.nextBtnId = 'transferAmountNextBtn';\n this.gameState.setTransferAmount(0);\n this.maxTransfer = Math.min(parseInt(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.alpha) || 0, 99);\n }\n\n initPageCode() {\n MenuPage.sui.inputStepper.autoInitAll();\n\n const amountInput = document.getElementById(this.amountInputId);\n const decreaseBtn = amountInput.previousElementSibling;\n const increaseBtn = amountInput.nextElementSibling;\n\n const inputStepperChangeHandler = () => {\n const nextBtn = document.getElementById(this.nextBtnId);\n if (\n 0 < document.getElementById(this.amountInputId).value\n && document.getElementById(this.amountInputId).value <= this.maxTransfer\n ) {\n nextBtn.disabled = false;\n nextBtn.classList.add('sui-mod-primary');\n nextBtn.classList.remove('sui-mod-disabled');\n } else {\n nextBtn.disabled = true;\n nextBtn.classList.add('sui-mod-disabled');\n nextBtn.classList.remove('sui-mod-primary');\n }\n }\n\n decreaseBtn.addEventListener('click', inputStepperChangeHandler);\n increaseBtn.addEventListener('click', inputStepperChangeHandler);\n amountInput.addEventListener('input', inputStepperChangeHandler);\n\n document.getElementById(this.nextBtnId).addEventListener('click', () => {\n this.gameState.setTransferAmount(parseInt(document.getElementById(this.amountInputId).value));\n MenuPage.router.goto('Account', 'recipientSearch');\n })\n }\n\n render () {\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn('Amount', true, () => {\n MenuPage.router.goto('Account', 'transfers');\n });\n\n MenuPage.setPageTemplateContent(`\n
\n \n
How much Alpha Matter do you want to send?
\n \n
\n \n \n \n \n
\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class AccountTransfersViewModel extends AbstractViewModel {\n\n constructor() {\n super();\n this.sendAlphaBtnId = 'account-menu-send-alpha-btn';\n this.transactionHistoryBtnId = 'account-menu-transaction-history-btn';\n }\n\n initPageCode() {\n document.getElementById(this.sendAlphaBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'transferAmount');\n });\n document.getElementById(this.transactionHistoryBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'transactionHistory');\n });\n }\n\n render () {\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId);\n\n MenuPage.setPageTemplateHeaderBtn('Account', true, () => {\n MenuPage.router.goto('Account', 'index');\n });\n\n MenuPage.setPageTemplateContent(`\n \n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NotImplementedError} from \"../../framework/NotImplementedError\";\n\nexport class AbstractBannerViewModel extends AbstractViewModel {\n\n constructor() {\n super();\n this.id = '';\n this.banner = null;\n this.isLoaded = false;\n }\n\n close() {\n throw new NotImplementedError();\n }\n\n}","import {BannerLayer} from \"../../framework/BannerLayer\";\nimport {AbstractBannerViewModel} from \"./AbstractBannerViewModel\";\n\nexport class DefeatBannerViewModel extends AbstractBannerViewModel {\n\n constructor() {\n super();\n this.id = 'defeat-banner';\n this.banner = null;\n }\n\n render() {\n BannerLayer.setContent(`
`);\n BannerLayer.show();\n\n const {lottie} = window;\n const {loadAnimation} = lottie;\n\n this.banner = loadAnimation({\n container: document.getElementById(this.id),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: '/lottie/defeat-banner/data.json'\n });\n this.banner.addEventListener('DOMLoaded', () => {\n this.isLoaded = true;\n this.banner.playSegments([0,45], true);\n this.banner.loop = true;\n this.banner.playSegments([45,96], false);\n });\n }\n\n close() {\n return new Promise((resolve) => {\n if (!this.isLoaded) {\n this.banner?.destroy();\n BannerLayer.hideAndClear();\n resolve();\n return;\n }\n\n this.banner.loop = false;\n this.banner.addEventListener('complete', () => {\n BannerLayer.hideAndClear();\n resolve();\n });\n this.banner.playSegments([97,123], false);\n });\n }\n\n}","import {BannerLayer} from \"../../framework/BannerLayer\";\nimport {AbstractBannerViewModel} from \"./AbstractBannerViewModel\";\n\nexport class VictoryBannerViewModel extends AbstractBannerViewModel {\n\n constructor() {\n super();\n this.id = 'victory-banner';\n this.banner = null;\n }\n\n render() {\n BannerLayer.setContent(`
`);\n BannerLayer.show();\n\n const {lottie} = window;\n const {loadAnimation} = lottie;\n\n this.banner = loadAnimation({\n container: document.getElementById(this.id),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: '/lottie/victory-banner/data.json'\n });\n this.banner.addEventListener('DOMLoaded', () => {\n this.isLoaded = true;\n this.banner.playSegments([0,45], true);\n this.banner.loop = true;\n this.banner.playSegments([45,96], false);\n });\n }\n\n close() {\n return new Promise((resolve) => {\n if (!this.isLoaded) {\n this.banner?.destroy();\n BannerLayer.hideAndClear();\n resolve();\n return;\n }\n\n this.banner.loop = false;\n this.banner.addEventListener('complete', () => {\n BannerLayer.hideAndClear();\n resolve();\n });\n this.banner.playSegments([97,123], false);\n });\n }\n\n}","import {AbstractViewModelComponent} from \"../../framework/AbstractViewModelComponent\";\nimport {EVENTS} from \"../../constants/Events\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class AlphaOwnedComponent extends AbstractViewModelComponent {\n\n constructor(gameState, elementId) {\n super(gameState);\n this.elementId = elementId;\n this.alphaOwnedClass = 'alpha-owned';\n\n this.alphaOwnedHandler = this.alphaOwnedHandler.bind(this);\n }\n\n getAlphaOwned() {\n let alpha = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player ? this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.alpha : 0;\n return this.numberFormatter.format(alpha);\n }\n\n alphaOwnedHandler(event) {\n if (event.playerType !== PLAYER_TYPES.PLAYER) {\n return;\n }\n\n const alphaOwnedLinkElm = document.getElementById(this.elementId);\n\n if (!alphaOwnedLinkElm) {\n window.removeEventListener(EVENTS.ALPHA_COUNT_CHANGED, this.alphaOwnedHandler);\n return;\n }\n\n const alphaOwnedNumbersContainer = alphaOwnedLinkElm.querySelector(`.${this.alphaOwnedClass}`);\n alphaOwnedNumbersContainer.innerText = this.getAlphaOwned();\n }\n\n initPageCode() {\n const alphaOwnedLinkElm = document.getElementById(this.elementId);\n const alphaOwnedNumbersContainer = alphaOwnedLinkElm.querySelector(`.${this.alphaOwnedClass}`);\n alphaOwnedNumbersContainer.innerText = this.getAlphaOwned();\n\n window.addEventListener(EVENTS.ALPHA_COUNT_CHANGED, this.alphaOwnedHandler);\n }\n\n renderHTML() {\n return `\n \n \n \n \n `;\n }\n}","import {AbstractViewModelComponent} from \"../../framework/AbstractViewModelComponent\";\nimport {EVENTS} from \"../../constants/Events\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class EnergyUsageComponent extends AbstractViewModelComponent {\n\n constructor(gameState, elementId) {\n super(gameState);\n this.elementId = elementId;\n this.energyUsageClass = 'energy-usage';\n\n this.energyUsageHandler = this.energyUsageHandler.bind(this);\n }\n\n getEnergyUsage() {\n const load = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player ? this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.load : 0;\n const structsLoad = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player ? this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.structs_load : 0;\n const capacity = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player ? this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.capacity : 0;\n const connectionCapacity = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player ? this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.connection_capacity : 0;\n\n let totalLoad = load + structsLoad;\n let totalCapacity = capacity + connectionCapacity;\n totalLoad = this.numberFormatter.format(totalLoad);\n totalCapacity = this.numberFormatter.format(totalCapacity);\n\n return `${totalLoad}/${totalCapacity}`;\n }\n\n energyUsageHandler(event) {\n if (event.playerType !== PLAYER_TYPES.PLAYER) {\n return;\n }\n\n const energyUsageLinkElm = document.getElementById(this.elementId);\n\n if (!energyUsageLinkElm) {\n window.removeEventListener(EVENTS.ENERGY_USAGE_CHANGED, this.energyUsageHandler);\n return;\n }\n\n const energyUsageNumbersContainer = energyUsageLinkElm.querySelector(`.${this.energyUsageClass}`);\n energyUsageNumbersContainer.innerText = this.getEnergyUsage();\n }\n\n initPageCode() {\n const energyUsageLinkElm = document.getElementById(this.elementId);\n const energyUsageNumbersContainer = energyUsageLinkElm.querySelector(`.${this.energyUsageClass}`);\n energyUsageNumbersContainer.innerText = this.getEnergyUsage();\n\n window.addEventListener(EVENTS.ENERGY_USAGE_CHANGED, this.energyUsageHandler);\n }\n\n renderHTML() {\n return `\n \n \n \n \n `;\n }\n}","import {AbstractViewModelComponent} from \"../../framework/AbstractViewModelComponent\";\n\nexport class GenericResourceComponent extends AbstractViewModelComponent {\n\n constructor(gameState) {\n super(gameState);\n }\n\n renderHTML(\n elementId,\n iconClass,\n toolTipText,\n value,\n iconFirst = false\n ) {\n let iconPos1 = '';\n let iconPos2 = ``;\n\n if (iconFirst) {\n iconPos1 = iconPos2;\n iconPos2 = '';\n }\n\n return `\n \n ${iconPos1}\n ${value}\n ${iconPos2}\n \n `;\n }\n}","export class LottieCustomPlayer {\n constructor() {\n this.animations = [];\n }\n\n getAnimation(animationName) {\n for (let i = 0; i < this.animations.length; i++) {\n if (this.animations[i].animationName === animationName) {\n return this.animations[i];\n }\n }\n return null;\n }\n\n hideAll() {\n for (let i = 0; i < this.animations.length; i++) {\n this.animations[i].hide();\n }\n }\n\n stopAll() {\n for (let i = 0; i < this.animations.length; i++) {\n this.animations[i].stop();\n }\n }\n\n checkHasAnimations() {\n if (this.animations.length === 0) {\n throw Error('No animations to play');\n }\n }\n\n /**\n * @param {string} animationName\n */\n play(animationName) {\n this.checkHasAnimations();\n for (let i = 0; i < this.animations.length; i++) {\n if (this.animations[i].animationName === animationName) {\n this.animations[i].play().then();\n break;\n }\n }\n }\n\n /**\n * @param {MapStructLottieAnimationSVG} animation\n */\n registerAnimation(animation) {\n this.animations.push(animation);\n }\n\n /**\n * @param {string[]} animationsToAutoplay\n */\n init(animationsToAutoplay = []) {\n for (let i = 0; i < this.animations.length; i++) {\n let autoplay = animationsToAutoplay.includes(this.animations[i].animationName);\n this.animations[i].init(autoplay);\n }\n }\n\n /**\n * Destroy every registered animation and clear the registry.\n */\n destroyAll() {\n for (let i = 0; i < this.animations.length; i++) {\n this.animations[i].destroy();\n }\n this.animations = [];\n }\n}\n","import {EVENTS} from \"../../constants/Events\";\nimport {StructStillBuilder} from \"../../builders/StructStillBuilder\";\nimport {StructType} from \"../../models/StructType\"\n\nexport class MapStructLottieAnimationSVG {\n\n /**\n * Process-wide cache of in-flight / completed image decodes, keyed by\n * source URL. Repeated swaps of the same sprite across wrapper instances\n * (and across animations) skip the network round-trip and decode cost.\n *\n * @type {Map>}\n */\n static _imageCache = new Map();\n\n /**\n * Preload (and where supported, decode) an image. Successful loads stay\n * cached for the page lifetime; failures are evicted so a transient\n * error can't permanently poison the entry.\n *\n * @param {string} src\n * @returns {Promise}\n */\n static _preloadImage(src) {\n const cached = MapStructLottieAnimationSVG._imageCache.get(src);\n if (cached) {\n return cached;\n }\n\n const img = new Image();\n img.src = src;\n\n const ready = typeof img.decode === 'function'\n ? img.decode()\n : new Promise((resolve, reject) => {\n img.onload = () => resolve();\n img.onerror = reject;\n });\n\n const entry = ready\n .then(() => img)\n .catch((err) => {\n MapStructLottieAnimationSVG._imageCache.delete(src);\n throw err;\n });\n\n MapStructLottieAnimationSVG._imageCache.set(src, entry);\n return entry;\n }\n\n /**\n * Only works with Lottie SVG rendering.\n *\n * @param {GameState} gameState\n * @param {StructManager} structManager\n * @param {string} animationName\n * @param {string} structId\n * @param {StructType} structType\n * @param {string} lottieContainerId\n * @param {Object} lottieLoadOptions\n */\n constructor(gameState, structManager, animationName, structId, structType, lottieContainerId, lottieLoadOptions) {\n this.gameState = gameState;\n this.structManager = structManager;\n this.structStillBuilder = new StructStillBuilder(gameState);\n this.animationName = animationName;\n this.structId = structId;\n this.structType = structType;\n this.lottieContainerId = lottieContainerId;\n this.lottieLoadOptions = lottieLoadOptions;\n this.animation = null;\n this.isLoaded = false;\n\n this.lottieLoadOptions.autoplay = false;\n\n this.onCompleteCallback = () => {};\n\n // Monotonic generation token used to disambiguate overlapping\n // configStructImages() calls. Each new config bumps the counter\n // so that in flight swaps that finish after a newer config started\n // bail out before mutating the DOM so the latest sprite set always wins.\n this._configGen = 0;\n }\n\n /**\n * Swap the image in the lottie animation as identified by the targetClass with the image specified by newImageSrc.\n *\n * @param {string} targetClass the class of the parent g container in the lottie that holds the image to replace\n * @param {string} newImageSrc the image source for the new image\n * @param {number} [generation] generation token from a configStructImages call.\n * If provided and stale by the time preload finishes, the append is skipped so a newer config can win.\n * @returns {Promise}\n */\n swapImage(targetClass, newImageSrc, generation) {\n const originalSVGImage = document.querySelector(\n `#${this.lottieContainerId} g g${targetClass} image`\n );\n\n if (!originalSVGImage) {\n return Promise.resolve();\n }\n\n const gContainer = originalSVGImage.parentNode;\n gContainer.innerHTML = '';\n\n if (!newImageSrc) {\n return Promise.resolve();\n }\n\n const height = originalSVGImage.height.baseVal.valueAsString;\n const width = originalSVGImage.width.baseVal.valueAsString;\n\n return MapStructLottieAnimationSVG._preloadImage(newImageSrc)\n .catch(() => {\n // Swallow preload failures and still insert the SVG ; the\n // browser may yet succeed via its own fetch and a broken-image\n // attempt is no worse than a permanently empty slot.\n })\n .then(() => {\n // Bail if the wrapper was destroyed during the preload; destroy()\n // nulls this.animation, so the append below would land on an\n // orphaned SVG node that lottie has already torn down.\n if (!this.animation) {\n return;\n }\n\n // Bail if a newer configStructImages superseded us. Leave the DOM\n // alone so the live owner's swap can win.\n if (generation !== undefined && generation !== this._configGen) {\n return;\n }\n\n const svgImage = document.createElementNS('http://www.w3.org/2000/svg', 'image');\n svgImage.setAttributeNS(null, 'height', height);\n svgImage.setAttributeNS(null, 'width', width);\n svgImage.setAttributeNS('http://www.w3.org/1999/xlink', 'href', newImageSrc);\n svgImage.setAttributeNS(null, 'visibility', 'visible');\n\n gContainer.append(svgImage);\n });\n }\n\n /**\n * @returns {Promise} resolves with the generation token this\n * call ran under, so callers can detect being superseded by a later\n * configStructImages() before continuing.\n */\n configStructImages() {\n const struct = this.structManager.getStructById(this.structId);\n if (!struct) {\n return Promise.resolve(this._configGen);\n }\n const structStillRenderer = this.structStillBuilder.build(this.structType);\n\n let structInitSrc = structStillRenderer.structVariantDmg;\n\n if (this.structType.max_health === struct.health) {\n structInitSrc = structStillRenderer.structVariantBase;\n }\n\n const generation = ++this._configGen;\n\n return Promise.all([\n this.swapImage('.struct_top_layer_1', structStillRenderer.topDetailLayer1, generation),\n this.swapImage('.struct_top_layer_2', structStillRenderer.topDetailLayer2, generation),\n this.swapImage('.struct_init', structInitSrc, generation),\n this.swapImage('.struct_dmg', structStillRenderer.structVariantDmg, generation),\n this.swapImage('.struct_bottom_layer_1', structStillRenderer.bottomDetailLayer1, generation),\n ]).then(() => generation);\n }\n\n show() {\n this.lottieLoadOptions.container.style.visibility = 'visible';\n }\n\n hide() {\n this.lottieLoadOptions.container.style.visibility = 'hidden';\n }\n\n async play() {\n if (!this.animation) {\n // First-time play: lazily load the Lottie data and let the DOMLoaded\n // callback (customizeLottie) trigger playback once the JSON + images\n // have finished downloading.\n this.load(true);\n return;\n }\n\n if (!this.isLoaded) {\n // Animation has been requested but the JSON/images aren't ready yet.\n // The pending DOMLoaded callback will autoplay, so just no-op here to\n // avoid issuing a duplicate play() against an unloaded Lottie.\n return;\n }\n\n this.animation.stop();\n const ranGen = await this.configStructImages();\n\n // Bail if a newer play()/configStructImages() superseded us, or if\n // destroy() ran while images were preloading. The newer caller (or\n // teardown) is responsible for the final DOM/animation state.\n if (!this.animation || ranGen !== this._configGen) {\n return;\n }\n\n this.show();\n this.animation.play();\n }\n\n stop() {\n this.hide();\n if (this.animation) {\n this.animation.stop();\n }\n }\n\n /**\n * @param {boolean} autoplayAfterCustomized\n * @return {Promise}\n */\n async customizeLottie(autoplayAfterCustomized) {\n await this.configStructImages();\n\n // destroy() may have run while images were preloading; bail out so we\n // don't flip flags or dispatch events against a torn-down wrapper.\n if (!this.animation) {\n return;\n }\n\n this.isLoaded = true;\n\n if (autoplayAfterCustomized) {\n await this.play();\n\n // play() also awaits internally, so destroy() may have raced in\n // between. Re-check before dispatching the customized event.\n if (!this.animation) {\n return;\n }\n }\n\n if (this.lottieLoadOptions && this.lottieLoadOptions.container) {\n this.lottieLoadOptions.container.dispatchEvent(new CustomEvent(\n EVENTS.LOTTIE_CUSTOMIZED,\n {\n detail: {\n animationName: this.animationName,\n }\n }\n ));\n }\n }\n\n /**\n * Initialize the wrapper without fetching the Lottie data. Pass\n * `autoplayAfterInit = true` to eagerly load and autoplay; otherwise the\n * animation is loaded lazily on the first play() call.\n *\n * @param {boolean} autoplayAfterInit\n */\n init(autoplayAfterInit) {\n this.hide();\n\n if (autoplayAfterInit) {\n this.load(true);\n }\n }\n\n /**\n * Load the Lottie animation data and register completion handlers. Safe\n * to call multiple times; subsequent calls are no-ops.\n *\n * @param {boolean} autoplayAfterCustomized whether to autoplay once\n * customizeLottie runs after DOMLoaded\n */\n load(autoplayAfterCustomized = false) {\n if (this.animation) {\n return;\n }\n\n const {lottie} = window;\n const {loadAnimation} = lottie;\n const animation = loadAnimation(this.lottieLoadOptions);\n\n animation.addEventListener('DOMLoaded', this.customizeLottie.bind(this, autoplayAfterCustomized));\n\n animation.addEventListener('complete', () => {\n this.hide();\n this.onCompleteCallback();\n });\n\n this.animation = animation;\n }\n\n /**\n * Tear down the underlying lottie player and release references so the\n * animation's frame cache, image bitmaps, internal listeners, and SVG\n * renderer can be garbage collected. Safe to call when the animation was\n * never loaded.\n */\n destroy() {\n // Drop our own callback first so any in-flight 'complete' event that\n // fires during lottie teardown can't re-enter wrapper logic against a\n // half-destroyed instance.\n this.onCompleteCallback = () => {};\n\n if (this.animation) {\n try {\n this.animation.destroy();\n } catch (e) {\n // lottie can throw if destroy is invoked on a partially-initialized\n // animation (e.g. JSON fetch in flight). Swallow so a single bad\n // animation can't block teardown of the rest of the viewer.\n }\n this.animation = null;\n }\n\n this.isLoaded = false;\n\n // Drop the strong reference to the (possibly already detached) DOM\n // container so it can be reclaimed even if something else still holds\n // a reference to this wrapper.\n if (this.lottieLoadOptions) {\n this.lottieLoadOptions.container = null;\n }\n }\n}\n","import {ANIMATION} from \"../../constants/AnimationConstants\";\nimport {LottieCustomPlayer} from \"./LottieCustomPlayer\";\nimport {MapStructLottieAnimationSVG} from \"./MapStructLottieAnimationSVG\";\nimport {StructStillBuilder} from \"../../builders/StructStillBuilder\";\nimport {CaseConverter, LOWER_SNAKE_CASE} from \"../../util/CaseConverter\";\nimport {AnimationEndEvent} from \"../../events/AnimationEndEvent\";\nimport {STRUCT_TYPES} from \"../../constants/StructConstants\";\n\nexport class MapStructViewerComponent {\n\n /**\n * @param {GameState} gameState\n * @param {StructManager} structManager\n * @param {string} structId\n * @param {number} structTypeId\n * @param {string|null} mapId the id of the map that owns this viewer; included on\n * dispatched AnimationEndEvents so listeners can filter by their own map\n * @param {string} idPrefix prepended to every internal lottie/container element id.\n * Lets multiple viewers (e.g. the on-map viewer and a picture-in-picture viewer)\n * coexist for the same struct without `document.getElementById` collisions.\n * @param {boolean} dispatchAnimationEnd whether the viewer should dispatch an\n * `AnimationEndEvent` on lottie complete. Picture-in-picture / mirror viewers\n * must pass `false` so they don't drive the global `AnimationEventQueue`.\n */\n constructor(\n gameState,\n structManager,\n structId,\n structTypeId,\n mapId = null,\n idPrefix = '',\n dispatchAnimationEnd = true\n ) {\n this.gameState = gameState;\n this.structManager = structManager;\n this.structId = structId;\n this.structTypeId = structTypeId;\n this.mapId = mapId;\n this.idPrefix = idPrefix;\n this.dispatchAnimationEnd = dispatchAnimationEnd;\n this.layerZIndex = 0;\n\n this.lottieCustomPlayer = new LottieCustomPlayer();\n this.caseConverter = new CaseConverter();\n this.structStillBuilder = new StructStillBuilder(this.gameState);\n\n /**\n * Optional hook invoked from `prepareAnimationLifecycle` after the last\n * animation in a play/init cycle completes. Fires regardless of\n * `dispatchAnimationEnd` so muted viewers (e.g. the picture-in-picture\n * mirror) can still observe their own completion without driving the\n * global `AnimationEventQueue`.\n *\n * @type {function(): void}\n */\n this.onAnimationsComplete = null;\n\n this.showStructStillAfterAnimation = true;\n this.structType = this.gameState.structTypes.getStructTypeById(structTypeId);\n\n this.deploymentSpaceAnimationContainerId = `${this.idPrefix}deploymentSpaceAnimation-${this.structId}`;\n this.deploymentAirAnimationContainerId = `${this.idPrefix}deploymentAirAnimation-${this.structId}`;\n this.deploymentLandAnimationContainerId = `${this.idPrefix}deploymentLandAnimation-${this.structId}`;\n this.deploymentWaterAnimationContainerId = `${this.idPrefix}deploymentWaterAnimation-${this.structId}`;\n\n this.moveArriveAnimationContainerId = `${this.idPrefix}moveArriveAnimation-${this.structId}`;\n this.moveDepartAnimationContainerId = `${this.idPrefix}moveDepartAnimation-${this.structId}`;\n\n this.stealthActivateAnimationContainerId = `${this.idPrefix}stealthActivateAnimation-${this.structId}`;\n this.stealthDeactivateAnimationContainerId = `${this.idPrefix}stealthDeactivateAnimation-${this.structId}`;\n\n this.impactAngledDownCannonAnimationContainerId = `${this.idPrefix}impactAngledDownCannonAnimation-${this.structId}`;\n this.impactAngledDownMissileAnimationContainerId = `${this.idPrefix}impactAngledDownMissileAnimation-${this.structId}`;\n this.impactAngledDownTorpedoAnimationContainerId = `${this.idPrefix}impactAngledDownTorpedoAnimation-${this.structId}`;\n this.impactAngledUpMissileAnimationContainerId = `${this.idPrefix}impactAngledUpMissileAnimation-${this.structId}`;\n this.impactAngledUpTorpedoAnimationContainerId = `${this.idPrefix}impactAngledUpTorpedoAnimation-${this.structId}`;\n this.impactAngledUpGatlingAnimationContainerId = `${this.idPrefix}impactAngledUpGatlingAnimation-${this.structId}`;\n this.impactAngledUpCannonAnimationContainerId = `${this.idPrefix}impactAngledUpCannonAnimation-${this.structId}`;\n this.impactHorizontalCannonAnimationContainerId = `${this.idPrefix}impactHorizontalCannonAnimation-${this.structId}`;\n this.impactHorizontalGatlingAnimationContainerId = `${this.idPrefix}impactHorizontalGatlingAnimation-${this.structId}`;\n this.impactHorizontalMissileAnimationContainerId = `${this.idPrefix}impactHorizontalMissileAnimation-${this.structId}`;\n this.impactHorizontalTorpedoAnimationContainerId = `${this.idPrefix}impactHorizontalTorpedoAnimation-${this.structId}`;\n\n this.evadeAnimationContainerId = `${this.idPrefix}evadeAnimation-${this.structId}`;\n\n this.shakeAngledDownDefaultFirstAnimationContainerId = `${this.idPrefix}shakeAngledDownDefaultFirstAnimation-${this.structId}`;\n this.shakeAngledDownDefaultLastAnimationContainerId = `${this.idPrefix}shakeAngledDownDefaultLastAnimation-${this.structId}`;\n this.shakeAngledUpDefaultFirstAnimationContainerId = `${this.idPrefix}shakeAngledUpDefaultFirstAnimation-${this.structId}`;\n this.shakeAngledUpDefaultLastAnimationContainerId = `${this.idPrefix}shakeAngledUpDefaultLastAnimation-${this.structId}`;\n this.shakeAngledUpGatlingFirstAnimationContainerId = `${this.idPrefix}shakeAngledUpGatlingFirstAnimation-${this.structId}`;\n this.shakeAngledUpGatlingLastAnimationContainerId = `${this.idPrefix}shakeAngledUpGatlingLastAnimation-${this.structId}`;\n this.shakeHorizontalDefaultFirstAnimationContainerId = `${this.idPrefix}shakeHorizontalDefaultFirstAnimation-${this.structId}`;\n this.shakeHorizontalDefaultLastAnimationContainerId = `${this.idPrefix}shakeHorizontalDefaultLastAnimation-${this.structId}`;\n this.shakeHorizontalGatlingFirstAnimationContainerId = `${this.idPrefix}shakeHorizontalGatlingFirstAnimation-${this.structId}`;\n this.shakeHorizontalGatlingLastAnimationContainerId = `${this.idPrefix}shakeHorizontalGatlingLastAnimation-${this.structId}`;\n\n this.destroySpaceAnimationContainerId = `${this.idPrefix}destroySpaceAnimation-${this.structId}`;\n this.destroyAirAnimationContainerId = `${this.idPrefix}destroyAirAnimation-${this.structId}`;\n this.destroyLandAnimationContainerId = `${this.idPrefix}destroyLandAnimation-${this.structId}`;\n this.destroyWaterAnimationContainerId = `${this.idPrefix}destroyWaterAnimation-${this.structId}`;\n\n this.attackPrimaryWeaponAnimationContainerId = `${this.idPrefix}attackPrimaryWeaponAnimation-${this.structId}`;\n this.attackSecondaryWeaponAnimationContainerId = `${this.idPrefix}attackSecondaryWeaponAnimation-${this.structId}`;\n\n this.structStillContainerId = `${this.idPrefix}structStill-${this.structId}`;\n }\n\n getLayerZIndex() {\n this.layerZIndex++;\n return this.layerZIndex;\n }\n\n hideStructStill() {\n const structStillContainer = document.getElementById(this.structStillContainerId);\n if (!structStillContainer) {\n return;\n }\n structStillContainer.classList.add('invisible');\n }\n\n showStructStill() {\n const structStillContainer = document.getElementById(this.structStillContainerId);\n if (!structStillContainer) {\n return;\n }\n structStillContainer.classList.remove('invisible');\n }\n\n /**\n * @param {boolean} isActive whether the struct should be rendered in a stealth-active state\n */\n setStealthActive(isActive) {\n const structStillContainer = document.getElementById(this.structStillContainerId);\n if (!structStillContainer) {\n return;\n }\n if (isActive) {\n structStillContainer.classList.add('struct-stealth-active');\n } else {\n structStillContainer.classList.remove('struct-stealth-active');\n }\n }\n\n /**\n * Render the struct still HTML using either an explicit health value or, when\n * none is provided, the struct's current health from gameState. The override\n * is used during multi-source attack sequences where gameState already holds\n * the final health but the visual should reflect the per-animation partial\n * state.\n *\n * @param {number|null} healthOverride\n * @return {string}\n */\n renderStructStillInnerHTML(healthOverride = null) {\n const struct = this.structManager.getStructById(this.structId);\n if (!struct) {\n return '';\n }\n const structStill = this.structStillBuilder.build(this.structType);\n const health = (healthOverride !== null && healthOverride !== undefined)\n ? healthOverride\n : struct.health;\n return structStill.renderHTML(health);\n }\n\n /**\n * Refresh only the struct still image, preserving any state classes (e.g.\n * struct-stealth-active) on the container and leaving all other animation\n * layers untouched. Pass `healthOverride` to render a specific (partial)\n * health value rather than the current gameState value.\n *\n * @param {number|null} healthOverride\n */\n updateStructStill(healthOverride = null) {\n const structStillContainer = document.getElementById(this.structStillContainerId);\n if (!structStillContainer) {\n return;\n }\n structStillContainer.innerHTML = this.renderStructStillInnerHTML(healthOverride);\n }\n\n /**\n * @param {boolean} showStructStillDuringAnimation\n * @param {boolean} showStructStillAfterAnimation\n */\n preparePlaybackState(\n showStructStillDuringAnimation = false,\n showStructStillAfterAnimation = true\n ) {\n this.showStructStillAfterAnimation = showStructStillAfterAnimation;\n this.lottieCustomPlayer.hideAll();\n\n if (showStructStillDuringAnimation) {\n this.showStructStill();\n } else {\n this.hideStructStill();\n }\n }\n\n resetAnimationCallbacks() {\n for (let i = 0; i < this.lottieCustomPlayer.animations.length; i++) {\n this.lottieCustomPlayer.animations[i].onCompleteCallback = () => {};\n }\n }\n\n /**\n * @param {string[]} animationNames\n * @param {object} options optional values from the originating AnimationEvent;\n * `healthAfter` is read here to drive partial-state still/HUD rendering for\n * multi-source attack sequences (where gameState already holds the final\n * post-attack value but the visual should reflect this animation's partial\n * snapshot)\n */\n prepareAnimationLifecycle(animationNames, options = {}) {\n this.resetAnimationCallbacks();\n\n let pendingCount = animationNames.length;\n\n const healthAfter = (options && options.healthAfter !== undefined && options.healthAfter !== null)\n ? parseInt('' + options.healthAfter)\n : null;\n\n for (let i = 0; i < animationNames.length; i++) {\n const animationName = animationNames[i];\n const animation = this.lottieCustomPlayer.getAnimation(animationName);\n\n if (!animation) {\n throw new Error(`Missing animation \"${animationName}\" for struct ${this.structId}`);\n }\n\n animation.onCompleteCallback = () => {\n if (animationName === ANIMATION.NAMES.STEALTH.ACTIVATE) {\n this.setStealthActive(true);\n } else if (animationName === ANIMATION.NAMES.STEALTH.DEACTIVATE) {\n this.setStealthActive(false);\n }\n\n pendingCount--;\n if (pendingCount === 0) {\n this.updateStructStill(healthAfter);\n if (this.showStructStillAfterAnimation) {\n this.showStructStill();\n }\n if (typeof this.onAnimationsComplete === 'function') {\n this.onAnimationsComplete();\n }\n if (this.dispatchAnimationEnd) {\n window.dispatchEvent(new AnimationEndEvent(\n animationName,\n this.structId,\n this.mapId,\n healthAfter\n ));\n }\n }\n };\n }\n }\n\n /**\n * @param {string[]} animationNames\n * @param {boolean} showStructStillDuringAnimation whether or not to show the still struct image while the animation plays\n * @param {boolean} showStructStillAfterAnimation whether or not the still struct image should still be shown after the animations ends\n * @param {object} options the originating AnimationEvent's options (e.g. healthAfter)\n */\n play(\n animationNames,\n showStructStillDuringAnimation = false,\n showStructStillAfterAnimation = true,\n options = {}\n ) {\n this.preparePlaybackState(\n showStructStillDuringAnimation,\n showStructStillAfterAnimation\n );\n this.prepareAnimationLifecycle(animationNames, options);\n\n for (let i = 0; i < animationNames.length; i++) {\n this.lottieCustomPlayer.play(animationNames[i]);\n }\n }\n\n /**\n * @param {string[]} animationNames the names of the animations to play after initialization\n * @param {boolean} showStructStillDuringAnimation whether or not to show the still struct image while the animation plays\n * @param {boolean} showStructStillAfterAnimation whether or not the still struct image should still be shown after the animations ends\n * @param {object} options the originating AnimationEvent's options (e.g. healthAfter)\n */\n init(\n animationNames = [],\n showStructStillDuringAnimation = false,\n showStructStillAfterAnimation = true,\n options = {}\n ) {\n this.registerAnimations();\n\n if (animationNames.length) {\n this.preparePlaybackState(\n showStructStillDuringAnimation,\n showStructStillAfterAnimation\n );\n this.prepareAnimationLifecycle(animationNames, options);\n } else {\n this.showStructStillAfterAnimation = true;\n this.lottieCustomPlayer.hideAll();\n this.showStructStill();\n }\n\n this.lottieCustomPlayer.init(animationNames);\n }\n\n renderMoveHTML() {\n if (!this.structType.isMovable()) {\n return '';\n }\n\n return `\n
\n
\n `;\n }\n\n renderStealthHTML() {\n if (!this.structType.stealth_systems) {\n return '';\n }\n\n return `\n
\n
\n `;\n }\n\n renderEvadeHTML() {\n if (!this.structType.hasDefensiveManeuver() && !this.structType.hasSignalJamming()) {\n return '';\n }\n\n return `\n
\n `;\n }\n\n renderAttackPrimaryWeaponHTML() {\n if (!this.structType.hasPrimaryWeapon() && this.structType.type !== STRUCT_TYPES.PLANETARY_DEFENSE_CANNON) {\n return '';\n }\n\n return `\n
\n `;\n }\n\n renderAttackSecondaryWeaponHTML() {\n if (!this.structType.hasSecondaryWeapon()) {\n return '';\n }\n\n return `\n
\n `;\n }\n\n renderHTML() {\n const struct = this.structManager.getStructById(this.structId);\n const stealthClass = struct && struct.isHidden() ? ' struct-stealth-active' : '';\n\n return `\n
\n
${this.renderStructStillInnerHTML()}
\n\n ${this.renderAttackSecondaryWeaponHTML()}\n ${this.renderAttackPrimaryWeaponHTML()}\n\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n ${this.renderEvadeHTML()}\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n ${this.renderStealthHTML()}\n ${this.renderMoveHTML()}\n\n
\n
\n
\n
\n
\n `;\n }\n\n registerAnimations() {\n this.registerStandardAnimations();\n this.registerMoveAnimations();\n this.registerStealthAnimations();\n this.registerEvadeAnimation();\n this.registerAttackPrimaryWeaponAnimation();\n this.registerAttackSecondaryWeaponAnimation();\n }\n\n /**\n * Tear down all lottie players owned by this viewer. Must be called before\n * the viewer is dereferenced (e.g. when its tile is cleared or the viewer\n * is replaced), otherwise lottie-web's internal animation registry keeps\n * the JSON, image bitmaps, rAF subscription, and DOM listeners alive.\n */\n destroy() {\n this.lottieCustomPlayer.destroyAll();\n }\n\n registerStandardAnimations() {\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.DEPLOYMENT.SPACE,\n this.structId,\n this.structType,\n this.deploymentSpaceAnimationContainerId,\n {\n container: document.getElementById(this.deploymentSpaceAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/deployment_space/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.DEPLOYMENT.AIR,\n this.structId,\n this.structType,\n this.deploymentAirAnimationContainerId,\n {\n container: document.getElementById(this.deploymentAirAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/deployment_air/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.DEPLOYMENT.LAND,\n this.structId,\n this.structType,\n this.deploymentLandAnimationContainerId,\n {\n container: document.getElementById(this.deploymentLandAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/deployment_land/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.DEPLOYMENT.WATER,\n this.structId,\n this.structType,\n this.deploymentWaterAnimationContainerId,\n {\n container: document.getElementById(this.deploymentWaterAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/deployment_water/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.IMPACT.ANGLED.DOWN.CANNON,\n this.structId,\n this.structType,\n this.impactAngledDownCannonAnimationContainerId,\n {\n container: document.getElementById(this.impactAngledDownCannonAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/impact_angled_down_cannon/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.IMPACT.ANGLED.DOWN.MISSILE,\n this.structId,\n this.structType,\n this.impactAngledDownMissileAnimationContainerId,\n {\n container: document.getElementById(this.impactAngledDownMissileAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/impact_angled_down_missile/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.IMPACT.ANGLED.DOWN.TORPEDO,\n this.structId,\n this.structType,\n this.impactAngledDownTorpedoAnimationContainerId,\n {\n container: document.getElementById(this.impactAngledDownTorpedoAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/impact_angled_down_torpedo/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.IMPACT.ANGLED.UP.CANNON,\n this.structId,\n this.structType,\n this.impactAngledUpCannonAnimationContainerId,\n {\n container: document.getElementById(this.impactAngledUpCannonAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/impact_angled_up_cannon/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.IMPACT.ANGLED.UP.MISSILE,\n this.structId,\n this.structType,\n this.impactAngledUpMissileAnimationContainerId,\n {\n container: document.getElementById(this.impactAngledUpMissileAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/impact_angled_up_missile/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.IMPACT.ANGLED.UP.TORPEDO,\n this.structId,\n this.structType,\n this.impactAngledUpTorpedoAnimationContainerId,\n {\n container: document.getElementById(this.impactAngledUpTorpedoAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/impact_angled_up_torpedo/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.IMPACT.ANGLED.UP.GATLING,\n this.structId,\n this.structType,\n this.impactAngledUpGatlingAnimationContainerId,\n {\n container: document.getElementById(this.impactAngledUpGatlingAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/impact_angled_up_gatling/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.IMPACT.HORIZONTAL.CANNON,\n this.structId,\n this.structType,\n this.impactHorizontalCannonAnimationContainerId,\n {\n container: document.getElementById(this.impactHorizontalCannonAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/impact_horizontal_cannon/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.IMPACT.HORIZONTAL.GATLING,\n this.structId,\n this.structType,\n this.impactHorizontalGatlingAnimationContainerId,\n {\n container: document.getElementById(this.impactHorizontalGatlingAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/impact_horizontal_gatling/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.IMPACT.HORIZONTAL.MISSILE,\n this.structId,\n this.structType,\n this.impactHorizontalMissileAnimationContainerId,\n {\n container: document.getElementById(this.impactHorizontalMissileAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/impact_horizontal_missile/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.IMPACT.HORIZONTAL.TORPEDO,\n this.structId,\n this.structType,\n this.impactHorizontalTorpedoAnimationContainerId,\n {\n container: document.getElementById(this.impactHorizontalTorpedoAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/impact_horizontal_torpedo/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.SHAKE.ANGLED.DOWN.DEFAULT.FIRST,\n this.structId,\n this.structType,\n this.shakeAngledDownDefaultFirstAnimationContainerId,\n {\n container: document.getElementById(this.shakeAngledDownDefaultFirstAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/shake_angled_down_default_first/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.SHAKE.ANGLED.DOWN.DEFAULT.LAST,\n this.structId,\n this.structType,\n this.shakeAngledDownDefaultLastAnimationContainerId,\n {\n container: document.getElementById(this.shakeAngledDownDefaultLastAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/shake_angled_down_default_last/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.SHAKE.ANGLED.UP.DEFAULT.FIRST,\n this.structId,\n this.structType,\n this.shakeAngledUpDefaultFirstAnimationContainerId,\n {\n container: document.getElementById(this.shakeAngledUpDefaultFirstAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/shake_angled_up_default_first/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.SHAKE.ANGLED.UP.DEFAULT.LAST,\n this.structId,\n this.structType,\n this.shakeAngledUpDefaultLastAnimationContainerId,\n {\n container: document.getElementById(this.shakeAngledUpDefaultLastAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/shake_angled_up_default_last/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.SHAKE.ANGLED.UP.GATLING.FIRST,\n this.structId,\n this.structType,\n this.shakeAngledUpGatlingFirstAnimationContainerId,\n {\n container: document.getElementById(this.shakeAngledUpGatlingFirstAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/shake_angled_up_gatling_first/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.SHAKE.ANGLED.UP.GATLING.LAST,\n this.structId,\n this.structType,\n this.shakeAngledUpGatlingLastAnimationContainerId,\n {\n container: document.getElementById(this.shakeAngledUpGatlingLastAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/shake_angled_up_gatling_last/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.SHAKE.HORIZONTAL.DEFAULT.FIRST,\n this.structId,\n this.structType,\n this.shakeHorizontalDefaultFirstAnimationContainerId,\n {\n container: document.getElementById(this.shakeHorizontalDefaultFirstAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/shake_horizontal_default_first/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.SHAKE.HORIZONTAL.DEFAULT.LAST,\n this.structId,\n this.structType,\n this.shakeHorizontalDefaultLastAnimationContainerId,\n {\n container: document.getElementById(this.shakeHorizontalDefaultLastAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/shake_horizontal_default_last/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.SHAKE.HORIZONTAL.GATLING.FIRST,\n this.structId,\n this.structType,\n this.shakeHorizontalGatlingFirstAnimationContainerId,\n {\n container: document.getElementById(this.shakeHorizontalGatlingFirstAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/shake_horizontal_gatling_first/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.SHAKE.HORIZONTAL.GATLING.LAST,\n this.structId,\n this.structType,\n this.shakeHorizontalGatlingLastAnimationContainerId,\n {\n container: document.getElementById(this.shakeHorizontalGatlingLastAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/shake_horizontal_gatling_last/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.DESTROY.SPACE,\n this.structId,\n this.structType,\n this.destroySpaceAnimationContainerId,\n {\n container: document.getElementById(this.destroySpaceAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/destroy_space/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.DESTROY.AIR,\n this.structId,\n this.structType,\n this.destroyAirAnimationContainerId,\n {\n container: document.getElementById(this.destroyAirAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/destroy_air/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.DESTROY.LAND,\n this.structId,\n this.structType,\n this.destroyLandAnimationContainerId,\n {\n container: document.getElementById(this.destroyLandAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/destroy_land/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.DESTROY.WATER,\n this.structId,\n this.structType,\n this.destroyWaterAnimationContainerId,\n {\n container: document.getElementById(this.destroyWaterAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/destroy_water/data.json`\n }\n ));\n }\n\n registerMoveAnimations() {\n if (!this.structType.isMovable()) {\n return;\n }\n\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.MOVE.ARRIVE,\n this.structId,\n this.structType,\n this.moveArriveAnimationContainerId,\n {\n container: document.getElementById(this.moveArriveAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/move_arrive/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.MOVE.DEPART,\n this.structId,\n this.structType,\n this.moveDepartAnimationContainerId,\n {\n container: document.getElementById(this.moveDepartAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/move_depart/data.json`\n }\n ));\n }\n\n registerStealthAnimations() {\n if (!this.structType.stealth_systems) {\n return;\n }\n\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.STEALTH.ACTIVATE,\n this.structId,\n this.structType,\n this.stealthActivateAnimationContainerId,\n {\n container: document.getElementById(this.stealthActivateAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/stealth_activate/data.json`\n }\n ));\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.STEALTH.DEACTIVATE,\n this.structId,\n this.structType,\n this.stealthDeactivateAnimationContainerId,\n {\n container: document.getElementById(this.stealthDeactivateAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/stealth_deactivate/data.json`\n }\n ));\n }\n\n registerEvadeAnimation() {\n if (this.structType.hasDefensiveManeuver()) {\n\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.EVADE,\n this.structId,\n this.structType,\n this.evadeAnimationContainerId,\n {\n container: document.getElementById(this.evadeAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/defensive_maneuver/data.json`\n }\n ));\n\n } else if (this.structType.hasSignalJamming()) {\n\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.EVADE,\n this.structId,\n this.structType,\n this.evadeAnimationContainerId,\n {\n container: document.getElementById(this.evadeAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/signal_jamming/data.json`\n }\n ));\n\n }\n }\n\n registerAttackPrimaryWeaponAnimation() {\n if (!this.structType.hasPrimaryWeapon() && this.structType.type !== STRUCT_TYPES.PLANETARY_DEFENSE_CANNON) {\n return;\n }\n\n const structTypeDirectory = this.caseConverter.convert(this.structType.type, LOWER_SNAKE_CASE);\n\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.ATTACK.PRIMARY_WEAPON,\n this.structId,\n this.structType,\n this.attackPrimaryWeaponAnimationContainerId,\n {\n container: document.getElementById(this.attackPrimaryWeaponAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/attack_primary_weapon/${structTypeDirectory}/data.json`\n }\n ));\n }\n\n registerAttackSecondaryWeaponAnimation() {\n if (!this.structType.hasSecondaryWeapon()) {\n return;\n }\n\n const structTypeDirectory = this.caseConverter.convert(this.structType.type, LOWER_SNAKE_CASE);\n\n this.lottieCustomPlayer.registerAnimation(new MapStructLottieAnimationSVG(\n this.gameState,\n this.structManager,\n ANIMATION.NAMES.ATTACK.SECONDARY_WEAPON,\n this.structId,\n this.structType,\n this.attackSecondaryWeaponAnimationContainerId,\n {\n container: document.getElementById(this.attackSecondaryWeaponAnimationContainerId),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: `/lottie/attack_secondary_weapon/${structTypeDirectory}/data.json`\n }\n ));\n }\n}\n","import {AbstractViewModelComponent} from \"../../framework/AbstractViewModelComponent\";\nimport {EVENTS} from \"../../constants/Events\";\nimport {GenericResourceComponent} from \"./GenericResourceComponent\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class PlanetCardComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {string} idPrefix\n * @param {boolean} isRaidCard\n */\n constructor(\n gameState,\n idPrefix,\n isRaidCard\n ) {\n super(gameState);\n this.genericResourceComponent = new GenericResourceComponent(gameState);\n\n this.idPrefix = idPrefix;\n this.isRaidCard = isRaidCard;\n this.isFleetOnPlanet = (Boolean(isRaidCard) === Boolean(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo.isRaidActive()));\n this.planetName = '';\n\n this.hasStatusGroup = false;\n\n this.undiscoveredOre = 0;\n this.undiscoveredOreId = `${this.idPrefix}-planet-card-undiscovered-ore`;\n this.undiscoveredOreEvent = EVENTS.UNDISCOVERED_ORE_COUNT_CHANGED;\n\n this.alphaOre = 0;\n this.alphaOreId = `${this.idPrefix}-planet-card-alpha-ore`;\n this.alphaOreEvent = EVENTS.ORE_COUNT_CHANGED;\n\n this.shieldHealth = '0%';\n this.shieldHealthId = `${this.idPrefix}-planet-card-shield-health`;\n this.shieldHealthEvent = EVENTS.SHIELD_HEALTH_CHANGED;\n\n this.deployedStructs = '0+0';\n this.deployedStructsId = `${this.idPrefix}-planet-card-deployed-structs`;\n this.deployedStructsEvent = EVENTS.STRUCT_COUNT_CHANGED;\n\n this.undiscoveredOreUpdateHandler = () => {};\n this.alphaOreUpdateHandler = () => {};\n this.shieldHealthUpdateHandler = () => {};\n this.deployedStructsUpdateHandler = () => {};\n\n this.hasAlert = false;\n this.alertIconClass = \"icon-alert\";\n this.alertIconColorClass = \"sui-text-warning\";\n this.alertMessage = \"\";\n\n this.hasGeneralMessage = false;\n this.generalMessageIconClass = \"icon-raid\";\n this.generalMessage = \"\";\n\n this.hasPrimaryBtn = false;\n this.primaryBtnId = `${this.idPrefix}-planet-card-primary-btn`;\n this.primaryBtnLabel = \"\";\n this.primaryBtnHandler = () => {};\n\n this.hasSecondaryBtn = false;\n this.secondaryBtnId = `${this.idPrefix}-planet-card-secondary-btn`;\n this.secondaryBtnLabel = \"\";\n this.secondaryBtnHandler = () => {};\n }\n\n initPageCode() {\n\n if (this.hasStatusGroup) {\n window.addEventListener(this.undiscoveredOreEvent, this.undiscoveredOreUpdateHandler.bind(this));\n window.addEventListener(this.alphaOreEvent, this.alphaOreUpdateHandler.bind(this));\n window.addEventListener(this.shieldHealthEvent, this.shieldHealthUpdateHandler.bind(this));\n window.addEventListener(this.deployedStructsEvent, this.deployedStructsUpdateHandler.bind(this));\n }\n\n if (this.hasPrimaryBtn) {\n document.getElementById(this.primaryBtnId).addEventListener('click', this.primaryBtnHandler.bind(this));\n }\n\n if (this.hasSecondaryBtn) {\n document.getElementById(this.secondaryBtnId).addEventListener('click', this.secondaryBtnHandler.bind(this));\n }\n }\n\n renderFleetBadgeHTML() {\n if (!this.isFleetOnPlanet) {\n return '';\n }\n\n return `Fleet`;\n }\n\n renderPlanetNameHTML() {\n if (!this.planetName) {\n return '';\n }\n\n return `${this.planetName}`;\n }\n\n renderStatusGroupHTML() {\n if (!this.hasStatusGroup) {\n return '';\n }\n\n return `\n
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.undiscoveredOreId,\n 'sui-icon-undiscovered-ore',\n 'Undiscovered Ore',\n this.numberFormatter.format(this.undiscoveredOre),\n true\n )\n }\n\n ${\n this.genericResourceComponent.renderHTML(\n this.alphaOreId,\n 'sui-icon-alpha-ore',\n 'Alpha Ore',\n this.numberFormatter.format(this.alphaOre),\n true\n )\n }\n
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.shieldHealthId,\n this.isRaidCard ? 'sui-icon-enemy-shield-health' : 'sui-icon-shield-health',\n 'Planetary Shield',\n this.shieldHealth,\n true\n )\n }\n \n ${\n this.genericResourceComponent.renderHTML(\n this.deployedStructsId,\n this.isRaidCard ? 'sui-icon-enemy-deployed-structs' : 'sui-icon-deployed-structs',\n 'Fleet+Planetary Structs',\n this.deployedStructs,\n true\n )\n }\n
\n
\n `;\n }\n\n renderAlertHTML() {\n if (!this.hasAlert) {\n return '';\n }\n\n return `\n
\n \n ${this.alertMessage}\n
\n `;\n }\n\n renderGeneralMessageHTML() {\n if (!this.hasGeneralMessage) {\n return '';\n }\n\n return `\n
\n \n ${this.generalMessage}\n
\n `;\n }\n\n renderPrimaryBtnHTML() {\n if (!this.hasPrimaryBtn) {\n return '';\n }\n\n return `\n ${this.primaryBtnLabel}\n `;\n }\n\n renderSecondaryBtnHTML() {\n if (!this.hasSecondaryBtn) {\n return '';\n }\n\n return `\n ${this.secondaryBtnLabel}\n `;\n }\n\n renderHTML() {\n\n const cardIconClass = this.isRaidCard ? \"icon-raid\" : \"icon-planet\";\n\n const cardTitle = this.isRaidCard ? \"Raid\" : \"Alpha Base\";\n\n return `\n
\n\n
\n
\n \n
\n \n ${cardTitle}\n \n ${this.renderPlanetNameHTML()}\n
\n
\n\n ${this.renderFleetBadgeHTML()}\n
\n\n\n
\n
\n \n ${this.renderStatusGroupHTML()}\n\n ${this.renderAlertHTML()}\n\n ${this.renderGeneralMessageHTML()}\n \n
\n\n
\n \n ${this.renderSecondaryBtnHTML()}\n \n ${this.renderPrimaryBtnHTML()}\n \n
\n
\n\n
\n `;\n }\n}","import {AbstractViewModelComponent} from \"../../framework/AbstractViewModelComponent\";\nimport {STRUCT_STILL_LAYERS} from \"../../constants/StructConstants\";\nimport {StructType} from \"../../models/StructType\";\nimport {AnimationError} from \"../../errors/AnimationError\";\n\nexport class StructStillRenderer extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {StructType} structType\n * @param {string} topDetailLayer1\n * @param {string} topDetailLayer2\n * @param {string} structVariantBase\n * @param {string} structVariantDmg\n * @param {string} bottomDetailLayer1\n */\n constructor(\n gameState,\n structType,\n topDetailLayer1,\n topDetailLayer2,\n structVariantBase,\n structVariantDmg,\n bottomDetailLayer1\n ) {\n super(gameState);\n\n this.structType = structType;\n this.topDetailLayer1 = topDetailLayer1;\n this.topDetailLayer2 = topDetailLayer2;\n this.structVariantBase = structVariantBase;\n this.structVariantDmg = structVariantDmg;\n this.bottomDetailLayer1 = bottomDetailLayer1;\n }\n\n /**\n * @param {string} layerPath path to the image file\n * @param {string|null} position top or bottom\n * @return {string}\n */\n renderLayerHtml(layerPath, position = null) {\n if (!layerPath) {\n return '';\n }\n\n const positionClass = position\n ? ` struct-${position}-detail`\n : '';\n\n return `\"\"/`;\n }\n\n /**\n * @return {string}\n */\n renderTopDetailLayers() {\n return this.renderLayerHtml(this.topDetailLayer1, 'top')\n + this.renderLayerHtml(this.topDetailLayer2, 'top');\n }\n\n /**\n * @return {string}\n */\n renderBottomDetailLayers() {\n return this.renderLayerHtml(this.bottomDetailLayer1, 'bottom');\n }\n\n /**\n * @param {string} variant\n * @return {string}\n */\n renderStructVariant(variant) {\n if (!this.hasOwnProperty(variant)) {\n throw new AnimationError(`Struct variant does not exist ${variant}`);\n }\n return this.renderLayerHtml(this[variant]);\n }\n\n /**\n * @param {number} currentHealth\n * @param {string} structVariant\n * @return {string}\n */\n renderHTML(currentHealth = -1, structVariant = '') {\n\n if (currentHealth === 0) {\n return `
`;\n }\n\n if (structVariant === '') {\n structVariant = (0 < currentHealth && currentHealth < this.structType.max_health)\n ? STRUCT_STILL_LAYERS.STRUCT_VARIANT_DMG\n : STRUCT_STILL_LAYERS.STRUCT_VARIANT_BASE;\n }\n\n return `\n
\n ${this.renderTopDetailLayers()}\n ${this.renderStructVariant(structVariant)}\n ${this.renderBottomDetailLayers()}\n
\n `;\n }\n\n}","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\nimport {EVENTS} from \"../../../constants/Events\";\nimport {MAP_CONTAINER_IDS, MAP_TILE_TYPE_ICONS, MAP_TILE_TYPES} from \"../../../constants/MapConstants\";\nimport {PLAYER_TYPES} from \"../../../constants/PlayerTypes\";\nimport {DeployOffcanvas} from \"../offcanvas/DeployOffcanvas\";\nimport {Struct} from \"../../../models/Struct\";\nimport {StructType} from \"../../../models/StructType\";\nimport {STRUCT_ACTIONS, STRUCT_CATEGORIES, STRUCT_EQUIPMENT_ICON_MAP, STRUCT_STATUS_FLAGS} from \"../../../constants/StructConstants\";\nimport {ShowMoveTargetsEvent} from \"../../../events/ShowMoveTargetsEvent\";\nimport {ClearMoveTargetsEvent} from \"../../../events/ClearMoveTargetsEvent\";\nimport {ShowDefendTargetsEvent} from \"../../../events/ShowDefendTargetsEvent\";\nimport {ClearDefendTargetsEvent} from \"../../../events/ClearDefendTargetsEvent\";\nimport {ShowAttackTargetsEvent} from \"../../../events/ShowAttackTargetsEvent\";\nimport {ClearAttackTargetsEvent} from \"../../../events/ClearAttackTargetsEvent\";\nimport {TASK_TYPES} from \"../../../constants/TaskTypes\";\nimport {NumberFormatter} from \"../../../util/NumberFormatter\";\n\nexport class ActionBarComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {SigningClientManager} signingClientManager\n * @param {StructManager} structManager\n * @param {TaskManager} taskManager\n * @param {string} playerType\n * @param {string} align left or right\n * @param {string} id\n */\n constructor(\n gameState,\n signingClientManager,\n structManager,\n taskManager,\n playerType,\n align,\n id\n ) {\n super(gameState);\n\n this.playerType = playerType;\n this.signingClientManager = signingClientManager;\n this.structManager = structManager;\n this.taskManager = taskManager;\n this.numberFormatter = new NumberFormatter();\n\n /* Style */\n this.themeClass = `sui-theme-${this.playerType === PLAYER_TYPES.PLAYER ? 'player' : 'enemy'}`;\n this.align = align;\n\n /* IDs */\n this.id = id;\n this.playerChunkId = `${this.playerType}-action-bar-player-chunk`;\n this.playerChunkPortraitId = `${this.playerType}-action-bar-portrait`;\n this.playerChunkBatteryId = `${this.playerType}-action-bar-battery`;\n this.connectorId = `${this.playerType}-action-bar-connector`;\n this.actionChunkId = `${this.playerType}-action-bar-action-chunk`;\n this.headerScreenId = `${this.playerType}-action-bar-header`;\n this.propertiesScreenId = `${this.playerType}-action-bar-properties-screen`;\n this.progressBarId = `${this.playerType}-action-bar-progress-bar`;\n this.undiscoveredOreContainerId = `${this.playerType}-action-bar-undiscovered-or-container`;\n this.oreReadyContainerId = `${this.playerType}-action-bar-ore-ready-container`;\n this.inProgressValueContainerId = `${this.playerType}-action-bar-progress-bar-in-progress-value`;\n this.panelSwitchId = `${this.playerType}-action-bar-panel-switch`;\n\n /* Profile Chunk */\n this.profileClickHandler = function () {};\n this.batteryfilledClass = 'sui-mod-filled';\n\n /**\n * Currently selected struct\n * @type {Struct|null}\n */\n this.selectedStruct = null;\n }\n\n /**\n * Currently selected struct ID if there is one.\n * @return {string|null}\n */\n getSelectedStructId() {\n return this.selectedStruct ? this.selectedStruct.id : null;\n }\n\n /**\n * @param {ChargeLevelChangedEvent} event\n */\n updateActionButtons(event) {\n if (\n this.playerType === PLAYER_TYPES.PLAYER\n && event.playerId === this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id\n && this.selectedStruct\n && this.selectedStruct.isOnline()\n ) {\n const charge = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].getCharge(this.gameState.currentBlockHeight);\n const actionButtons = document.getElementById(this.actionChunkId).querySelectorAll('.sui-action-bar-btn-group a.sui-panel-btn');\n actionButtons.forEach(actionButton => {\n if (\n parseInt(actionButton.getAttribute('data-action-charge')) <= charge\n && actionButton.classList.contains('sui-mod-disabled')\n ) {\n const isActive = parseInt(actionButton.getAttribute('data-active-defense') || 0);\n if (isActive) {\n actionButton.classList.add('sui-mod-active-defense');\n } else {\n actionButton.classList.add('sui-mod-default');\n }\n actionButton.classList.remove('sui-mod-disabled');\n }\n });\n }\n }\n\n initPageCode() {\n window.addEventListener(EVENTS.CHARGE_LEVEL_CHANGED, function (event) {\n if (event.playerId === this.gameState.getPlayerIdByType(this.playerType)) {\n this.renderChargeLevel(event.chargeLevel);\n }\n\n if (this.selectedStruct && !this.selectedStruct.isOnline()) {\n const panelSwitchElm = document.getElementById(this.panelSwitchId);\n\n if (panelSwitchElm && panelSwitchElm.dataset.state === 'disabled') {\n const structType = this.gameState.structTypes.getStructTypeById(this.selectedStruct.type);\n const panelSwitchState = this.getPanelSwitchState(this.selectedStruct, structType);\n\n if (panelSwitchState.canToggle) {\n this.showStructActionBar(this.selectedStruct);\n }\n }\n\n }\n\n this.updateActionButtons(event);\n\n }.bind(this));\n\n document.getElementById(this.playerChunkPortraitId).addEventListener('click', this.profileClickHandler.bind(this));\n\n // Listen for task worker changes to update progress bar\n window.addEventListener(EVENTS.TASK_WORKER_CHANGED, (event) => {\n if (!this.getSelectedStructId() || event.state.object_id !== this.getSelectedStructId()) {\n return;\n }\n if (event.state.task_type === TASK_TYPES.BUILD) {\n this.updateProgressBar(event.state.getPercentCompleteEstimate());\n } else if (event.state.task_type === TASK_TYPES.MINE || event.state.task_type === TASK_TYPES.REFINE) {\n const estInMS = event.state.getTimeRemainingEstimate();\n const estFormatted = this.numberFormatter.formatMilliseconds(estInMS);\n this.updateInProgressValue(estFormatted);\n }\n });\n\n const undiscoveredOreContainer = document.getElementById(this.undiscoveredOreContainerId);\n if (undiscoveredOreContainer) {\n window.addEventListener(EVENTS.UNDISCOVERED_ORE_COUNT_CHANGED, (event) => {\n if (event.playerType === PLAYER_TYPES.PLAYER) {\n undiscoveredOreContainer.innerHTML = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.undiscovered_ore;\n }\n });\n }\n\n const oreReadyContainer = document.getElementById(this.oreReadyContainerId);\n if (oreReadyContainer) {\n window.addEventListener(EVENTS.ORE_COUNT_CHANGED, () => {\n oreReadyContainer.innerHTML = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.ore;\n });\n }\n }\n\n /**\n * Update the progress bar contents without re-rendering the entire action bar.\n *\n * @param {number} percentageToComplete\n */\n updateProgressBar(percentageToComplete) {\n const progressBarWrapper = document.getElementById(this.progressBarId);\n if (progressBarWrapper) {\n progressBarWrapper.innerHTML = this.renderProgressBar(percentageToComplete);\n }\n }\n\n /**\n * Update the in progress time estimate without re-rendering the entire action bar.\n *\n * @param {string} value\n */\n updateInProgressValue(value) {\n const inProgressValueContainer = document.getElementById(this.inProgressValueContainerId);\n if (inProgressValueContainer) {\n inProgressValueContainer.innerHTML = value;\n }\n }\n\n renderChargeLevel(level) {\n const battery = document.getElementById(this.playerChunkBatteryId);\n const batteryChunks = battery.children;\n\n for (let i = 0; i < batteryChunks.length; i++) {\n if (i + 1 > level) {\n batteryChunks[i].classList.remove(this.batteryfilledClass);\n } else {\n batteryChunks[i].classList.add(this.batteryfilledClass);\n }\n }\n }\n\n renderPortraitChunkHTML() {\n const hoverIcon = this.playerType === PLAYER_TYPES.PLAYER ? 'icon-menu' : 'icon-info';\n return `\n
\n \n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n `;\n }\n\n showActionChunk() {\n document.getElementById(this.connectorId).classList.remove('hidden');\n document.getElementById(this.actionChunkId).classList.remove('hidden');\n }\n\n hideActionChunk() {\n document.getElementById(this.connectorId).classList.add('hidden');\n document.getElementById(this.actionChunkId).classList.add('hidden');\n }\n\n /**\n *\n * @param {string} tileType see MAP_TILE_TYPES\n * @return {string} icon class\n */\n getPropertyIconForTileType(tileType) {\n if (\n this.align === 'right'\n && (\n tileType === MAP_TILE_TYPES.COMMAND\n || tileType === MAP_TILE_TYPES.PLANETARY_SLOT\n || tileType === MAP_TILE_TYPES.FLEET\n )\n ) {\n return MAP_TILE_TYPE_ICONS.ENEMY_TERRITORY;\n }\n\n return MAP_TILE_TYPE_ICONS[tileType];\n }\n\n /**\n * Renders the progress bar chunks HTML without the wrapper.\n *\n * @param {number} percentageToComplete - A number from 0 to 1 representing completion percentage\n * @return {string} HTML for the progress bar chunks\n */\n renderProgressBar(percentageToComplete) {\n const totalChunks = 10;\n const filledChunks = Math.floor(percentageToComplete * totalChunks);\n\n let chunksHTML = '';\n for (let i = 0; i < totalChunks; i++) {\n const filledClass = i < filledChunks ? ' sui-mod-filled' : '';\n chunksHTML += `
`;\n }\n\n return `\n
\n ${chunksHTML}\n
\n `;\n }\n\n /**\n * @param {string} tileType\n * @param {string} ambitOrTileLabel\n * @param {string} side right or left\n * @param {number|null} slot\n * @param {string|null} structId - ID of struct occupying the tile, null if empty\n */\n showActionBarFor(\n tileType,\n ambitOrTileLabel,\n side,\n slot = null,\n structId = null\n ) {\n if (side === 'left' && this.gameState.actionBarLock.isLocked()) {\n this.showExecutingActionBar();\n return;\n }\n\n const struct = this.structManager.getStructById(structId);\n\n // If the struct is building, show the building action bar\n if (struct && !struct.isBuilt()) {\n this.showBuildingActionBar(struct);\n return;\n }\n\n // If the struct is built, show the built struct action bar\n if (struct && struct.isBuilt()) {\n this.showStructActionBar(struct);\n return;\n }\n\n // Check if there's a pending build at this position\n const playerId = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id;\n const pendingBuild = this.gameState.getPendingBuild(tileType, ambitOrTileLabel, slot, playerId);\n\n if (pendingBuild) {\n this.showPendingBuildActionBar(pendingBuild.structType);\n } else {\n this.showEmptyTileActionBar(tileType, ambitOrTileLabel, side, slot);\n }\n }\n\n showExecutingActionBar() {\n document.getElementById(this.actionChunkId).innerHTML = `\n
\n
Executing
\n
\n\n
\n\n
\n
\n
\n
\n
\n
\n
\n\n
\n `;\n\n this.showActionChunk();\n }\n\n /**\n * Shows the action bar for a pending build (before struct ID is known).\n *\n * @param {StructType} structType\n */\n showPendingBuildActionBar(structType) {\n // Clear current building struct ID (pending builds don't have one yet)\n this.selectedStruct = null;\n\n const header = structType.class_abbreviation;\n\n // Pending builds start at 0% progress\n const percentageToComplete = 0;\n\n const cancelBtnId = `${this.playerType}-action-bar-cancel-btn`;\n\n const cancelBtn = `\n
\n \n \n \n
\n `;\n\n document.getElementById(this.actionChunkId).innerHTML = `\n
\n
${header}
\n
\n\n
\n\n
\n
\n
\n ${this.renderProgressBar(percentageToComplete)}\n
\n
\n
\n\n ${cancelBtn}\n\n
\n `;\n\n this.showActionChunk();\n }\n\n /**\n * @param {string} tileType\n * @param {string} ambitOrTileLabel\n * @param {string} side right or left\n * @param {number|null} slot\n */\n showEmptyTileActionBar(\n tileType,\n ambitOrTileLabel,\n side,\n slot = null,\n ) {\n // Clear current building struct ID\n this.selectedStruct = null;\n\n const header = ambitOrTileLabel.toUpperCase();\n\n const propertyIcon = this.getPropertyIconForTileType(tileType);\n const propertyIconLinkId = `${this.playerType}-action-bar-property-tile-type`;\n\n const hasDeployButton = tileType === MAP_TILE_TYPES.PLANETARY_SLOT\n || tileType === MAP_TILE_TYPES.FLEET\n || tileType === MAP_TILE_TYPES.COMMAND;\n let deployBtn = '';\n const deployBtnId = `${this.playerType}-action-bar-deploy-btn`;\n let attachDeployBtnHandler = () => {};\n let btnTypeClass = 'sui-mod-disabled';\n\n if (hasDeployButton) {\n // Only enable deploy button if:\n // 1. It's on the left side (player's side)\n // 2. The map is the alpha base map\n // TODO 3. The player's command ship is on the alpha base\n if (\n side === 'left'\n && this.gameState.activeMapContainerId === MAP_CONTAINER_IDS.ALPHA_BASE\n ) {\n btnTypeClass = 'sui-mod-default';\n attachDeployBtnHandler = () => {\n document.getElementById(deployBtnId).addEventListener('click', function () {\n const deployOffcanvas = new DeployOffcanvas(\n this.gameState,\n this.signingClientManager,\n this.structManager,\n tileType,\n ambitOrTileLabel,\n slot\n );\n deployOffcanvas.render();\n }.bind(this));\n };\n }\n\n deployBtn = `\n
\n \n \n \n
\n `;\n }\n\n document.getElementById(this.actionChunkId).innerHTML = `\n
\n
${header}
\n
\n\n
\n\n
\n
\n \n \n \n
\n
\n\n ${deployBtn}\n\n
\n `;\n\n attachDeployBtnHandler();\n\n this.showActionChunk();\n }\n\n /**\n * Shows the action bar for a struct that is currently being built.\n *\n * @param {Struct} struct\n */\n showBuildingActionBar(struct) {\n // Store current building struct ID for progress bar updates\n this.selectedStruct = struct;\n\n const structType = this.gameState.structTypes.getStructTypeById(struct.type);\n const header = structType.class_abbreviation;\n\n // Get the build progress\n let percentageToComplete = 0;\n\n const buildProcess = this.taskManager.getBuildProcessByStructId(struct.id);\n if (buildProcess) {\n percentageToComplete = this.taskManager.getProcessPercentCompleteEstimate(buildProcess.state.getPID());\n console.log(`Build progress: ${percentageToComplete}`);\n }\n\n const cancelBtnId = `${this.playerType}-action-bar-cancel-btn`;\n\n // Only the owning player can cancel a build in progress\n const isOwnedByPlayer = struct.owner === this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id;\n\n const cancelBtn = isOwnedByPlayer\n ? `\n
\n \n \n \n
\n `\n : '' ;\n\n const propertyIconLinkId = `${this.playerType}-action-bar-property-tile-type`;\n\n document.getElementById(this.actionChunkId).innerHTML = `\n
\n
${header}
\n
\n\n
\n\n
\n
\n ${ isOwnedByPlayer\n ? `\n
\n ${this.renderProgressBar(percentageToComplete)}\n
\n `\n : `\n \n \n \n `\n }\n
\n
\n\n ${cancelBtn}\n\n
\n `;\n\n if (isOwnedByPlayer) {\n document.getElementById(cancelBtnId).addEventListener('click', function () {\n this.structManager.cancelStructBuild(struct);\n }.bind(this));\n }\n\n this.showActionChunk();\n }\n\n /**\n * Determines the panel switch state based on struct online status and player charge.\n *\n * @param {Struct} struct\n * @param {StructType} structType\n * @return {{image: string, state: string, canToggle: boolean}}\n */\n getPanelSwitchState(struct, structType) {\n if (this.isActionAvailable(struct, 0, true)) {\n return {\n image: '/img/sui/panel/panel-switch-on.png',\n state: 'on',\n canToggle: true\n };\n }\n\n if (this.isActionAvailable(struct, structType.activate_charge, false)) {\n return {\n image: '/img/sui/panel/panel-switch-off.png',\n state: 'off',\n canToggle: true\n };\n }\n\n return {\n image: '/img/sui/panel/panel-switch-disabled.png',\n state: 'disabled',\n canToggle: false\n };\n }\n\n /**\n * Handles panel switch click to toggle struct online/offline state.\n *\n * @param {Struct} struct\n * @param {StructType} structType\n */\n handlePanelSwitchClick(struct, structType) {\n if (this.isActionAvailable(struct, 0, true)) {\n // Turn off: deactivate the struct\n this.signingClientManager.queueMsgStructDeactivate(struct.id).then(() => {\n struct.removeStatusFlag(STRUCT_STATUS_FLAGS.ONLINE);\n this.showStructActionBar(struct);\n });\n } else if (this.isActionAvailable(struct, structType.activate_charge, false)){\n // Turn on: activate the struct\n this.signingClientManager.queueMsgStructActivate(struct.id).then(() => {\n struct.addStatusFlag(STRUCT_STATUS_FLAGS.ONLINE);\n this.showStructActionBar(struct);\n });\n }\n }\n\n /**\n * Shows the action bar for a built (completed) struct.\n *\n * @param {Struct} struct\n */\n showStructActionBar(struct) {\n this.selectedStruct = struct;\n\n const structType = this.gameState.structTypes.getStructTypeById(struct.type);\n const header = structType.class_abbreviation;\n\n const isOnline = struct.isOnline();\n\n // Determine panel switch state\n const panelSwitchState = this.getPanelSwitchState(struct, structType);\n const panelSwitchCursor = panelSwitchState.canToggle ? 'pointer' : 'not-allowed';\n\n // Build list of property icons based on struct type capabilities and online state\n let propertyIcons;\n if (isOnline) {\n propertyIcons = this.buildStructPropertyIcons(struct, structType);\n } else {\n // Show unpowered icon when offline\n propertyIcons = `\n \n \n \n `;\n }\n\n // Build action buttons based on struct type capabilities\n const actionButtons = this.buildStructActionButtons(struct, structType);\n\n document.getElementById(this.actionChunkId).innerHTML = `\n
\n
${header}
\n
\n\n
\n \n
\n \"panel\n
\n\n
\n
\n ${propertyIcons}\n
\n
\n\n ${\n actionButtons\n ? `\n
\n ${actionButtons}\n
\n `\n : ''\n }\n\n
\n `;\n\n // Attach panel switch handler if it can be toggled\n if (panelSwitchState.canToggle) {\n document.getElementById(this.panelSwitchId).addEventListener('click', () => {\n this.handlePanelSwitchClick(struct, structType);\n });\n }\n\n // Attach action button handlers (only functional when online)\n if (isOnline) {\n this.attachStructActionButtonHandlers(struct, structType);\n }\n\n this.showActionChunk();\n }\n\n /**\n * @param {string} iconClass\n * @param {string} selectedProperty\n * @param {string} structTypeId\n * @return {string}\n */\n structPropertyIconHtml(iconClass, selectedProperty, structTypeId) {\n return `\n \n \n \n `;\n }\n\n /**\n * @param {Struct} struct\n * @param {StructType} structType\n * @return {string[]}\n */\n buildExtractorPropertyIcons(struct, structType) {\n if (!structType.hasPlanetaryMining()) {\n return [];\n }\n\n const icons = [];\n\n icons.push(`\n \n ${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].planet.undiscovered_ore}\n \n `);\n\n if (struct.isOnline()) {\n const estInMS = this.taskManager.getProcessTimeRemainingEstimate(this.getSelectedStructId());\n const estFormatted = this.numberFormatter.formatMilliseconds(estInMS);\n\n icons.push(`\n \n ${estFormatted}\n \n `);\n }\n\n return icons;\n }\n\n /**\n * @param {Struct} struct\n * @param {StructType} structType\n * @return {string[]}\n */\n buildRefineryPropertyIcons(struct, structType) {\n if (!structType.hasPlanetaryRefinery()) {\n return [];\n }\n\n const icons = [];\n\n icons.push(`\n \n ${this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.ore}\n \n `);\n\n if (struct.isOnline()) {\n const estInMS = this.taskManager.getProcessTimeRemainingEstimate(this.getSelectedStructId());\n const estFormatted = this.numberFormatter.formatMilliseconds(estInMS);\n\n icons.push(`\n \n ${estFormatted}\n \n `);\n }\n\n return icons;\n }\n\n /**\n * @param {Struct} struct\n * @param {StructType} structType\n * @return {string}\n */\n buildStructPropertyIcons(struct, structType) {\n const standardPropsMap = {\n 'hasPassiveWeaponry': 'passive_weaponry',\n 'hasUnitDefenses': 'unit_defenses',\n 'hasOreReserveDefenses': 'ore_reserve_defenses',\n 'hasPlanetaryDefenses': 'planetary_defenses',\n };\n let icons = [];\n\n Object.keys(standardPropsMap).forEach((hasEquipmentFn) => {\n if (structType[hasEquipmentFn]()) {\n const prop = standardPropsMap[hasEquipmentFn];\n const equipmentType = structType[prop];\n const iconClass = STRUCT_EQUIPMENT_ICON_MAP[equipmentType];\n if (!iconClass) {\n console.log(`Missing icon for equipment type: ${hasEquipmentFn}`)\n }\n icons.push(this.structPropertyIconHtml(iconClass, prop, structType.type));\n }\n });\n\n icons = icons.concat(this.buildExtractorPropertyIcons(struct, structType));\n icons = icons.concat(this.buildRefineryPropertyIcons(struct, structType));\n\n return icons.join('');\n }\n\n /**\n * @return {string}\n */\n getActionBtnIdPrefix() {\n return `${this.playerType}-action-bar`;\n }\n\n /**\n * @param {Struct} struct\n * @param {number} actionCharge\n * @param {boolean} isOnlineAction\n * @return {boolean}\n */\n isActionAvailable(struct, actionCharge = 0, isOnlineAction = true) {\n return (struct.isOnline() === isOnlineAction)\n && struct.owner === this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id\n && (!actionCharge || actionCharge <= this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].getCharge(this.gameState.currentBlockHeight));\n }\n\n /**\n * @param {array} buttons\n * @param {Struct} struct\n * @param {StructType} structType\n */\n buildPrimaryWeaponActionButton(buttons, struct, structType) {\n if (structType.hasPrimaryWeapon()) {\n const iconClass = structType.primary_weapon_control === 'guided'\n ? 'icon-smart-weapon'\n : 'icon-ballistic-weapon';\n const btnClass = this.isActionAvailable(struct, structType.primary_weapon_charge)\n ? 'sui-mod-default'\n : 'sui-mod-disabled';\n buttons.push(`\n \n \n \n `);\n }\n }\n\n /**\n * @param {Struct} struct\n * @param {StructType} structType\n */\n attachPrimaryWeaponButtonHandler(struct, structType) {\n if (structType.hasPrimaryWeapon()) {\n const btn = document.getElementById(`${this.getActionBtnIdPrefix()}-primary-weapon-btn`);\n if (btn) {\n btn.addEventListener('click', () => {\n if (!this.isActionAvailable(struct, structType.primary_weapon_charge)) {\n return;\n }\n\n const currentAction = this.gameState.actionBarLock.getCurrentAction();\n\n if (currentAction === STRUCT_ACTIONS.ATTACK_PRIMARY_WEAPON) {\n // Already in primary weapon mode - cancel\n this.gameState.actionBarLock.clear(false);\n btn.classList.remove('sui-mod-active-offense');\n btn.classList.add('sui-mod-default');\n window.dispatchEvent(new ClearAttackTargetsEvent(this.gameState.getActiveMapId()));\n } else {\n // If secondary weapon mode was active, reset its button\n if (currentAction === STRUCT_ACTIONS.ATTACK_SECONDARY_WEAPON) {\n const secBtn = document.getElementById(`${this.getActionBtnIdPrefix()}-secondary-weapon-btn`);\n if (secBtn) {\n secBtn.classList.remove('sui-mod-active-offense');\n secBtn.classList.add('sui-mod-default');\n }\n window.dispatchEvent(new ClearAttackTargetsEvent(this.gameState.getActiveMapId()));\n }\n\n // Activate primary weapon mode\n this.gameState.actionBarLock.setCurrentAction(STRUCT_ACTIONS.ATTACK_PRIMARY_WEAPON);\n this.gameState.actionBarLock.setActionSourceStruct(struct);\n btn.classList.remove('sui-mod-default');\n btn.classList.add('sui-mod-active-offense');\n window.dispatchEvent(new ShowAttackTargetsEvent(\n this.gameState.getActiveMapId(),\n structType.primary_weapon_ambits_array\n ));\n }\n });\n }\n }\n }\n\n /**\n * @param {array} buttons\n * @param {Struct} struct\n * @param {StructType} structType\n */\n buildSecondaryWeaponActionButton(buttons, struct, structType) {\n if (structType.hasSecondaryWeapon()) {\n const iconClass = structType.secondary_weapon_control === 'guided'\n ? 'icon-smart-weapon'\n : 'icon-ballistic-weapon';\n const btnClass = this.isActionAvailable(struct, structType.secondary_weapon_charge)\n ? 'sui-mod-default'\n : 'sui-mod-disabled';\n buttons.push(`\n \n \n \n `);\n }\n }\n\n /**\n * @param {Struct} struct\n * @param {StructType} structType\n */\n attachSecondaryWeaponButtonHandler(struct, structType) {\n if (structType.hasSecondaryWeapon()) {\n const btn = document.getElementById(`${this.getActionBtnIdPrefix()}-secondary-weapon-btn`);\n if (btn) {\n btn.addEventListener('click', () => {\n if (!this.isActionAvailable(struct, structType.secondary_weapon_charge)) {\n return;\n }\n\n const currentAction = this.gameState.actionBarLock.getCurrentAction();\n\n if (currentAction === STRUCT_ACTIONS.ATTACK_SECONDARY_WEAPON) {\n // Already in secondary weapon mode - cancel\n this.gameState.actionBarLock.clear(false);\n btn.classList.remove('sui-mod-active-offense');\n btn.classList.add('sui-mod-default');\n window.dispatchEvent(new ClearAttackTargetsEvent(this.gameState.getActiveMapId()));\n } else {\n // If primary weapon mode was active, reset its button\n if (currentAction === STRUCT_ACTIONS.ATTACK_PRIMARY_WEAPON) {\n const priBtn = document.getElementById(`${this.getActionBtnIdPrefix()}-primary-weapon-btn`);\n if (priBtn) {\n priBtn.classList.remove('sui-mod-active-offense');\n priBtn.classList.add('sui-mod-default');\n }\n window.dispatchEvent(new ClearAttackTargetsEvent(this.gameState.getActiveMapId()));\n }\n\n // Activate secondary weapon mode\n this.gameState.actionBarLock.setCurrentAction(STRUCT_ACTIONS.ATTACK_SECONDARY_WEAPON);\n this.gameState.actionBarLock.setActionSourceStruct(struct);\n btn.classList.remove('sui-mod-default');\n btn.classList.add('sui-mod-active-offense');\n window.dispatchEvent(new ShowAttackTargetsEvent(\n this.gameState.getActiveMapId(),\n structType.secondary_weapon_ambits_array\n ));\n }\n });\n }\n }\n }\n\n /**\n * @param {array} buttons\n * @param {Struct} struct\n * @param {StructType} structType\n */\n buildStealthModeActionButton(buttons, struct, structType) {\n if (structType.stealth_systems) {\n let btnClass;\n if (!this.isActionAvailable(struct, structType.stealth_activate_charge)) {\n btnClass = 'sui-mod-disabled';\n } else if (struct.isHidden()) {\n btnClass = 'sui-mod-active-defense';\n } else {\n btnClass = 'sui-mod-default';\n }\n buttons.push(`\n \n \n \n `);\n }\n }\n\n /**\n * @param {Struct} struct\n * @param {StructType} structType\n */\n attachStealthModeButtonHandler(struct, structType) {\n if (structType.stealth_systems) {\n const btn = document.getElementById(`${this.getActionBtnIdPrefix()}-stealth-btn`);\n if (btn) {\n btn.addEventListener('click', () => {\n if (!this.isActionAvailable(struct, structType.stealth_activate_charge)) {\n return;\n }\n if (struct.isHidden()) {\n this.gameState.actionBarLock.setCurrentAction(STRUCT_ACTIONS.STEALTH_DEACTIVATE);\n this.gameState.actionBarLock.lock();\n\n // Deactivate stealth mode\n this.signingClientManager.queueMsgStructStealthDeactivate(struct.id).then(() => {\n struct.removeStatusFlag(STRUCT_STATUS_FLAGS.HIDDEN);\n // Update button to default state\n btn.setAttribute('data-active-defense', '0');\n btn.classList.remove('sui-mod-active-defense');\n btn.classList.add('sui-mod-default');\n });\n } else {\n this.gameState.actionBarLock.setCurrentAction(STRUCT_ACTIONS.STEALTH_ACTIVATE);\n this.gameState.actionBarLock.lock();\n\n // Activate stealth mode\n this.signingClientManager.queueMsgStructStealthActivate(struct.id).then(() => {\n struct.addStatusFlag(STRUCT_STATUS_FLAGS.HIDDEN);\n // Update button to active state\n btn.setAttribute('data-active-defense', '1');\n btn.classList.remove('sui-mod-default');\n btn.classList.add('sui-mod-active-defense');\n });\n }\n });\n }\n }\n }\n\n /**\n * @param {array} buttons\n * @param {Struct} struct\n * @param {StructType} structType\n */\n buildMoveActionButton(buttons, struct, structType) {\n if (structType.movable) {\n const btnClass = this.isActionAvailable(struct, structType.move_charge)\n ? 'sui-mod-default'\n : 'sui-mod-disabled';\n\n buttons.push(`\n \n \n \n `);\n }\n }\n\n /**\n * @param {Struct} struct\n * @param {StructType} structType\n */\n attachMoveButtonHandler(struct, structType) {\n if (structType.movable) {\n const btn = document.getElementById(`${this.getActionBtnIdPrefix()}-move-btn`);\n if (btn) {\n btn.addEventListener('click', () => {\n if (!this.isActionAvailable(struct, structType.move_charge)) {\n return;\n }\n\n if (btn.classList.contains('sui-mod-active-defense')) {\n // Deactivate move mode\n this.gameState.actionBarLock.clear(false);\n btn.classList.remove('sui-mod-active-defense');\n btn.classList.add('sui-mod-default');\n\n // Clear move target indicators\n window.dispatchEvent(new ClearMoveTargetsEvent(this.gameState.getActiveMapId()));\n } else {\n // Activate move mode\n this.gameState.actionBarLock.setCurrentAction(STRUCT_ACTIONS.MOVE);\n this.gameState.actionBarLock.setActionSourceStruct(struct);\n btn.classList.remove('sui-mod-default');\n btn.classList.add('sui-mod-active-defense');\n\n // Show move target indicators on empty command tiles\n window.dispatchEvent(new ShowMoveTargetsEvent(this.gameState.getActiveMapId()));\n }\n });\n }\n }\n }\n\n /**\n * @param {array} buttons\n * @param {Struct} struct\n * @param {StructType} structType\n */\n buildDefendActionButton(buttons, struct, structType) {\n if (structType.category === STRUCT_CATEGORIES.FLEET) {\n let btnClass;\n if (!this.isActionAvailable(struct, structType.defend_change_charge)) {\n btnClass = 'sui-mod-disabled';\n } else if (struct.isDefending()) {\n btnClass = 'sui-mod-active-defense';\n } else {\n btnClass = 'sui-mod-default';\n }\n\n buttons.push(`\n \n \n \n `);\n }\n }\n\n /**\n * @param {Struct} struct\n * @param {StructType} structType\n */\n attachDefendButtonHandler(struct, structType) {\n if (structType.category === STRUCT_CATEGORIES.FLEET) {\n const btn = document.getElementById(`${this.getActionBtnIdPrefix()}-defend-btn`);\n if (btn) {\n btn.addEventListener('click', async () => {\n if (!this.isActionAvailable(struct, structType.defend_change_charge)) {\n return;\n }\n\n const currentAction = this.gameState.actionBarLock.getCurrentAction();\n\n if (struct.isDefending()) {\n // Struct is currently defending another struct - clicking clears the defense\n this.gameState.actionBarLock.setCurrentAction(STRUCT_ACTIONS.DEFENSE_CLEAR);\n this.gameState.actionBarLock.setActionSourceStruct(struct);\n this.gameState.actionBarLock.lock();\n\n // Update button to default state while processing\n btn.setAttribute('data-active-defense', '0');\n btn.classList.remove('sui-mod-active-defense');\n btn.classList.add('sui-mod-default');\n\n // Send defense clear message to chain\n await this.signingClientManager.queueMsgStructDefenseClear(struct.id);\n\n } else if (currentAction === STRUCT_ACTIONS.DEFENSE_SET) {\n // Already in defense selection mode - cancel it\n this.gameState.actionBarLock.clear(false);\n\n // Update button to default state\n btn.setAttribute('data-active-defense', '0');\n btn.classList.remove('sui-mod-active-defense');\n btn.classList.add('sui-mod-default');\n\n // Clear defend target indicators\n window.dispatchEvent(new ClearDefendTargetsEvent(this.gameState.getActiveMapId()));\n\n } else {\n // Activate defense selection mode\n this.gameState.actionBarLock.setCurrentAction(STRUCT_ACTIONS.DEFENSE_SET);\n this.gameState.actionBarLock.setActionSourceStruct(struct);\n\n // Update button to active state\n btn.setAttribute('data-active-defense', '1');\n btn.classList.remove('sui-mod-default');\n btn.classList.add('sui-mod-active-defense');\n\n // Mark enemy structs as invalid\n window.dispatchEvent(new ShowDefendTargetsEvent(this.gameState.getActiveMapId()));\n }\n });\n }\n }\n }\n\n /**\n * Builds the HTML for struct action buttons based on struct type capabilities.\n *\n * @param {Struct} struct\n * @param {StructType} structType\n * @return {string} HTML for action buttons\n */\n buildStructActionButtons(struct, structType) {\n const buttons = [];\n\n this.buildPrimaryWeaponActionButton(buttons, struct, structType);\n this.buildSecondaryWeaponActionButton(buttons, struct, structType);\n this.buildStealthModeActionButton(buttons, struct, structType);\n this.buildMoveActionButton(buttons, struct, structType);\n this.buildDefendActionButton(buttons, struct, structType);\n\n return buttons.join('');\n }\n\n /**\n * Attaches click handlers to struct action buttons.\n *\n * @param {Struct} struct\n * @param {StructType} structType\n */\n attachStructActionButtonHandlers(struct, structType) {\n this.attachPrimaryWeaponButtonHandler(struct, structType);\n this.attachSecondaryWeaponButtonHandler(struct, structType);\n this.attachStealthModeButtonHandler(struct, structType);\n this.attachMoveButtonHandler(struct, structType);\n this.attachDefendButtonHandler(struct, structType);\n }\n\n renderHTML() {\n let actionChunkLeftHTML = '';\n let actionChunkRightHTML = `\n
\n
\n `;\n\n if (this.align === 'right') {\n actionChunkLeftHTML = `\n
\n
\n `;\n actionChunkRightHTML = '';\n }\n\n return `\n
\n
\n
\n \n ${actionChunkLeftHTML}\n \n ${this.renderPortraitChunkHTML()}\n \n ${actionChunkRightHTML}\n \n
\n
\n
\n `;\n }\n}","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\nimport {EnergyUsageComponent} from \"../EnergyUsageComponent\";\n\nexport class StatusBarTopLeftComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {string} id\n */\n constructor(gameState, id) {\n super(gameState);\n this.id = id;\n this.energyUsageComponent = new EnergyUsageComponent(gameState, 'hud-energy-usage');\n }\n\n\n initPageCode() {\n this.energyUsageComponent.initPageCode();\n }\n\n renderHTML() {\n return `\n
\n ${this.energyUsageComponent.renderHTML()}\n
\n `;\n }\n}","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\nimport {EVENTS} from \"../../../constants/Events\";\nimport {MAP_CONTAINER_IDS} from \"../../../constants/MapConstants\";\nimport {PLAYER_TYPES} from \"../../../constants/PlayerTypes\";\n\nexport class StatusBarTopRightComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {Boolean} isRaidPlanet\n * @param {string} id\n */\n constructor(gameState, isRaidPlanet, id) {\n super(gameState);\n this.id = id;\n this.isRaidPlanet = isRaidPlanet;\n this.prefix = '';\n this.theme = '';\n this.shieldIcon = 'sui-icon-shield-health';\n this.shieldHealthChangedEvent = EVENTS.SHIELD_HEALTH_CHANGED;\n this.oreCountChangedEvent = EVENTS.ORE_COUNT_CHANGED;\n\n if (this.isRaidPlanet) {\n this.prefix = 'raid-';\n this.theme = 'sui-theme-enemy';\n this.shieldIcon ='sui-icon-enemy-shield-health';\n }\n\n this.startHidden = ((this.gameState.activeMapContainerId === MAP_CONTAINER_IDS.RAID) === this.isRaidPlanet)\n ? '' : 'hidden';\n\n this.hudShieldHealthValueId = `${this.prefix}hud-shield-health`;\n this.hudShieldHealthHintId = `${this.prefix}${this.hudShieldHealthValueId}-hint`;\n this.hudOreValueId = `${this.prefix}hud-ore`;\n this.hudOreHintId = `${this.prefix}${this.hudOreValueId}-hint`;\n }\n\n initPageCode() {\n window.addEventListener(this.shieldHealthChangedEvent, function (event) {\n if (\n (this.isRaidPlanet && event.playerType === PLAYER_TYPES.RAID_ENEMY)\n || (!this.isRaidPlanet && event.playerType === PLAYER_TYPES.PLAYER)\n ) {\n document.getElementById(this.hudShieldHealthValueId).innerText = `${this.gameState.keyPlayers[event.playerType].planetShieldHealth}`;\n }\n }.bind(this));\n\n window.addEventListener(this.oreCountChangedEvent, function (event) {\n if (\n (this.isRaidPlanet && event.playerType === PLAYER_TYPES.RAID_ENEMY && this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].player)\n || (!this.isRaidPlanet && event.playerType === PLAYER_TYPES.PLAYER && this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player)\n ) {\n document.getElementById(this.hudOreValueId).innerText = `${this.gameState.keyPlayers[event.playerType].player.ore}`;\n }\n }.bind(this));\n }\n\n renderHTML() {\n return `\n \n `;\n }\n}","/**\n * Transition layer interface.\n *\n * There are different types of transition layers such a tile set layer and ornament layers.\n */\nexport class AbstractMapTransitionLayerComponent {\n\n /**\n * Renders the transition layer\n *\n * @param {int} layerOrderNumber determines the layer's z position\n *\n * @return {string} html\n */\n renderHTML(layerOrderNumber) {\n return '';\n }\n}","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\nimport {\n MAP_COL_ATTACKER_COMMAND, MAP_COL_ATTACKER_FLEET, MAP_COL_DEFENDER_COMMAND, MAP_COL_DEFENDER_FLEET,\n MAP_COL_DEFENDER_PLANETARY, MAP_COL_DIVIDER, MAP_DEFAULT_FLEET_COL_COUNT,\n MAP_TILE_ROWS_PER_AMBIT, MAP_TILE_TYPES,\n MAP_DEFAULT_COMMAND_COL_COUNT\n} from \"../../../constants/MapConstants\";\nimport {Player} from \"../../../models/Player\";\nimport {MapStructTileRenderParamsDTO} from \"../../../dtos/MapStructTileRenderParamsDTO\";\nimport {Struct} from \"../../../models/Struct\";\nimport {Fleet} from \"../../../models/Fleet\";\n\n\nexport class GenericMapLayerComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {string} tileRowClass\n * @param {string} tileClass\n * @param {StructManager} structManager\n * @param {string[]} mapColBreakdown\n * @param {(Planet|null)} planet\n * @param {Player|null} defender\n * @param {Player|null} attacker\n * @param {Fleet|null} defenderFleet\n * @param {Fleet|null} attackerFleet\n * @param {string} containerId\n * @param {string} mapId\n */\n constructor(\n gameState,\n tileRowClass,\n tileClass,\n structManager,\n mapColBreakdown,\n planet,\n defender,\n attacker,\n defenderFleet = null,\n attackerFleet = null,\n containerId = \"\",\n mapId = \"\"\n ) {\n super(gameState);\n this.tileRowClass = tileRowClass;\n this.tileClass = tileClass;\n this.structManager = structManager;\n this.mapColBreakdown = mapColBreakdown;\n this.dividerIndex = this.mapColBreakdown.lastIndexOf(MAP_COL_DIVIDER);\n this.planet = planet;\n this.defender = defender;\n this.attacker = attacker;\n this.defenderFleet = defenderFleet;\n this.attackerFleet = attackerFleet;\n this.containerId = containerId;\n this.mapId = mapId;\n }\n\n /**\n * @param {number} col\n * @return {string}\n */\n getTileSide(col) {\n if (col < this.dividerIndex) {\n return 'left';\n } else if (col === this.dividerIndex) {\n return '';\n } else {\n return 'right';\n }\n }\n\n /**\n * Check if tile has required position data attributes\n * @param {string} tileType\n * @param {string} ambit\n * @param {string} slot\n * @param {string} playerId\n * @return {boolean}\n */\n hasTilePositionData(tileType, ambit, slot, playerId) {\n return !!(tileType && ambit && slot !== '' && playerId);\n }\n\n /**\n * Build CSS selector for finding a struct tile\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n * @return {string}\n */\n buildTileSelector(tileType, ambit, slot, playerId) {\n return `.${this.tileClass}[data-tile-type=\"${tileType}\"][data-ambit=\"${ambit}\"][data-slot=\"${slot}\"][data-player-id=\"${playerId}\"]`;\n }\n\n /**\n * Get location info for a tile based on its type and player\n * @param {string} tileType\n * @param {string} playerId\n * @return {{locationType: string, locationId: string|null, isCommandSlot: boolean}|null}\n */\n getLocationInfoFromTile(tileType, playerId) {\n if (tileType === MAP_TILE_TYPES.PLANETARY_SLOT) {\n return {\n locationType: 'planet',\n locationId: this.planet.id,\n isCommandSlot: false\n };\n }\n\n if (tileType === MAP_TILE_TYPES.COMMAND || tileType === MAP_TILE_TYPES.FLEET) {\n let locationId = null;\n if (this.defender && playerId === this.defender.id) {\n locationId = this.defender.fleet_id;\n } else if (this.attacker && playerId === this.attacker.id) {\n locationId = this.attacker.fleet_id;\n }\n\n return {\n locationType: 'fleet',\n locationId: locationId,\n isCommandSlot: (tileType === MAP_TILE_TYPES.COMMAND)\n };\n }\n\n return null;\n }\n\n /**\n * @param {string} tileType the tile type. See MAP_TILE_TYPES constant array.\n * @param {string} side the side of the map the tile is on\n * @param {string} playerId the ID of the player that owns the tile or empty if no one does such as a transition tile.\n * @param {string} ambit the ambit the tile is in or empty if it's a transition tile.\n * @param {string|number} slot the planetary or fleet slot number. Empty if it's not a command, planetary, fleet or command tile.\n * @return {string}\n */\n renderTileHTML(\n tileType,\n side = \"\",\n playerId = \"\",\n ambit = \"\",\n slot = \"\"\n ) {\n return `\n \n `;\n }\n\n renderFogOfWarTileHTML(mapColType) {\n if (this.attacker) {\n return '';\n }\n\n const mapColTypeLastIndex = this.mapColBreakdown.lastIndexOf(mapColType);\n const attackerSide = (this.mapColBreakdown[0] === MAP_COL_ATTACKER_COMMAND) ? 'LEFT' : 'RIGHT';\n\n if (this.dividerIndex === -1 || mapColTypeLastIndex === -1) {\n throw new Error('Divider or map col type not found');\n }\n\n if (\n mapColType === MAP_COL_DIVIDER\n || (attackerSide === 'RIGHT' && this.dividerIndex < mapColTypeLastIndex)\n || (attackerSide === 'LEFT' && mapColTypeLastIndex < this.dividerIndex)\n ) {\n return this.renderTileHTML(\n MAP_TILE_TYPES.FOG_OF_WAR,\n attackerSide.toLowerCase()\n );\n }\n\n return '';\n }\n\n /**\n * @param {string} topAmbit the ambit that is on top in the transition\n * @param {string} bottomAmbit the ambit that is on the bottom in the transition\n * @param {boolean} isInFinalTransitionPosition is this for the final transition of the map\n * @param {number|null} totalAmbits the total number of ambits in the ambit\n * @param {number|null} bottomAmbitIndex the ambit index of the bottom ambit\n * @return {string} the row of struct tiles for the whole transition row\n */\n renderTransitionRowHTML(\n topAmbit,\n bottomAmbit,\n isInFinalTransitionPosition = false,\n totalAmbits = null,\n bottomAmbitIndex= null\n ) {\n const isFinalTransition = isInFinalTransitionPosition && (bottomAmbitIndex === (totalAmbits - 1));\n\n if (isInFinalTransitionPosition && !isFinalTransition) {\n return '';\n }\n\n let tiles = '';\n\n for (let c = 0; c < this.mapColBreakdown.length; c++) {\n tiles += this.renderFogOfWarTileHTML(this.mapColBreakdown[c])\n || this.renderTileHTML(\n MAP_TILE_TYPES.TRANSITION,\n this.getTileSide(c)\n );\n }\n\n return `\n
\n ${tiles}\n
\n `;\n }\n\n /**\n * Creates a command slot tracker object for an ambit.\n * Each command column type gets 1 usable slot per ambit.\n *\n * @return {Object} commandSlotTracker\n */\n createCommandSlotTracker() {\n return {\n [MAP_COL_DEFENDER_COMMAND]: MAP_DEFAULT_COMMAND_COL_COUNT,\n [MAP_COL_ATTACKER_COMMAND]: MAP_DEFAULT_COMMAND_COL_COUNT,\n };\n }\n\n /**\n * @param {string} mapColType\n * @param {string} side\n * @param {string} ambit\n * @param {Object} commandSlotTracker\n * @return {string}\n */\n renderCommandTileHTML(\n mapColType,\n side,\n ambit,\n commandSlotTracker\n ) {\n let playerId = '';\n\n if (mapColType === MAP_COL_DEFENDER_COMMAND) {\n playerId = this.defender.id;\n } else if (mapColType === MAP_COL_ATTACKER_COMMAND) {\n playerId = this.attacker.id;\n } else {\n return '';\n }\n\n // Check if there's an available command slot for this column type\n const hasAvailableSlot = commandSlotTracker[mapColType] > 0;\n\n if (hasAvailableSlot) {\n commandSlotTracker[mapColType]--;\n }\n\n const tileType = hasAvailableSlot\n ? MAP_TILE_TYPES.COMMAND\n : MAP_TILE_TYPES.COMMAND_BLOCKED;\n\n // Command structs are always slot 0 in a fleet\n return this.renderTileHTML(\n tileType,\n side,\n playerId,\n ambit,\n hasAvailableSlot ? 0 : ''\n );\n }\n\n /**\n * @param {string} mapColType\n * @param {string} side\n * @param {string} ambit\n * @param {string} slot\n * @return {string}\n */\n renderPlanetaryTileHTML(\n mapColType,\n side,\n ambit,\n slot\n ) {\n if (mapColType !== MAP_COL_DEFENDER_PLANETARY) {\n return '';\n }\n\n const tileType = (slot === '')\n ? MAP_TILE_TYPES.PLANETARY_BLOCKED\n : MAP_TILE_TYPES.PLANETARY_SLOT;\n\n return this.renderTileHTML(\n tileType,\n side,\n this.defender.id,\n ambit,\n slot\n );\n }\n\n /**\n * @param {string} mapColType\n * @param {string} side\n * @param {string} ambit\n * @param {string} slot\n * @return {string}\n */\n renderFleetTileHTML(\n mapColType,\n side,\n ambit,\n slot\n ) {\n if (mapColType === MAP_COL_DEFENDER_FLEET) {\n return this.renderTileHTML(MAP_TILE_TYPES.FLEET, side, this.defender.id, ambit, slot);\n }\n if (mapColType === MAP_COL_ATTACKER_FLEET) {\n return this.renderTileHTML(MAP_TILE_TYPES.FLEET, side, this.attacker.id, ambit, slot);\n }\n return '';\n }\n\n /**\n * @param {string} mapColType\n * @param {string} ambit\n * @return {string}\n */\n renderDividerTileHTML(\n mapColType,\n ambit\n ) {\n if (mapColType !== MAP_COL_DIVIDER) {\n return '';\n }\n\n return this.renderTileHTML(\n MAP_TILE_TYPES.DIVIDER,\n '',\n '',\n ambit\n );\n }\n\n /**\n * @param {string} targetColType\n * @return {{first: null|number, last: null|number}}\n */\n findFirstAndLastOccurrencesOfColType(targetColType) {\n const first = this.mapColBreakdown.indexOf(targetColType);\n return {\n first: first === -1 ? null : first,\n last: first === -1 ? null : this.mapColBreakdown.lastIndexOf(targetColType)\n };\n }\n\n /**\n * @param {string} targetColType\n * @param {number} currentMapRowIndex\n * @param {number} currentMapColIndex\n * @param {number} totalSlots\n * @return {string}\n */\n calcSlotNumber(\n targetColType,\n currentMapRowIndex,\n currentMapColIndex,\n totalSlots\n ) {\n let targetColTypeOccurrences = this.findFirstAndLastOccurrencesOfColType(targetColType);\n\n const tilesOfTargetTypePerRow = (targetColTypeOccurrences.last - targetColTypeOccurrences.first) + 1;\n\n // Slot indexing from right to left\n const slotsToReserveThisRow = (targetColTypeOccurrences.last - currentMapColIndex);\n let slotNumber = slotsToReserveThisRow + currentMapRowIndex * tilesOfTargetTypePerRow;\n\n // Slot indexing from left to right\n if (this.mapColBreakdown[0] === MAP_COL_ATTACKER_COMMAND) {\n const slotsAssignedThisRow = currentMapColIndex - targetColTypeOccurrences.first;\n slotNumber = slotsAssignedThisRow + currentMapRowIndex * tilesOfTargetTypePerRow;\n }\n\n return (slotNumber >= totalSlots) ? '' : `${slotNumber}`;\n }\n\n\n\n /**\n * @return {string}\n */\n renderHTML() {\n let html = '';\n let previousAmbit = '';\n\n const planetAmbits = this.planet.getAmbits();\n\n for (let a = 0; a < planetAmbits.length; a++) {\n\n const currentAmbit = planetAmbits[a];\n const numPlanetarySlots = this.planet.getPlanetarySlotsByAmbit(currentAmbit, this.gameState.structTypes);\n const totalFleetSlotsPerAmbitPerPlayer = MAP_TILE_ROWS_PER_AMBIT * MAP_DEFAULT_FLEET_COL_COUNT;\n const commandSlotTracker = this.createCommandSlotTracker();\n\n html += this.renderTransitionRowHTML(previousAmbit, currentAmbit);\n\n for (let r = 0; r < MAP_TILE_ROWS_PER_AMBIT; r++) {\n\n html += `
`;\n\n for (let c = 0; c < this.mapColBreakdown.length; c++) {\n\n const mapColType = this.mapColBreakdown[c];\n let side = this.getTileSide(c);\n\n html += this.renderFogOfWarTileHTML(mapColType)\n || this.renderCommandTileHTML(mapColType, side, currentAmbit, commandSlotTracker)\n || this.renderPlanetaryTileHTML(\n mapColType,\n side,\n currentAmbit,\n this.calcSlotNumber(MAP_COL_DEFENDER_PLANETARY, r, c, numPlanetarySlots)\n )\n || this.renderFleetTileHTML(\n mapColType,\n side,\n currentAmbit,\n this.calcSlotNumber(mapColType, r, c, totalFleetSlotsPerAmbitPerPlayer)\n )\n || this.renderDividerTileHTML(mapColType, currentAmbit)\n ;\n }\n\n html += `
`;\n }\n\n html += this.renderTransitionRowHTML(\n previousAmbit,\n currentAmbit,\n true,\n planetAmbits.length,\n a\n );\n\n previousAmbit = currentAmbit;\n }\n\n return html;\n }\n\n /**\n * Clear a tile by position (e.g., when build is canceled).\n *\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n */\n clearTile(tileType, ambit, slot, playerId) {\n const selector = this.buildTileSelector(tileType, ambit, slot, playerId);\n const container = document.getElementById(this.containerId);\n const tileElement = container.querySelector(selector);\n if (tileElement) {\n tileElement.innerHTML = '';\n tileElement.setAttribute('data-struct-id', '');\n }\n }\n\n /**\n * @param {string} playerId\n * @return {Fleet|null}\n */\n getFleetByPlayerId(playerId) {\n if (this.attackerFleet?.owner === playerId) {\n return this.attackerFleet;\n } else if (this.defenderFleet?.owner === playerId) {\n return this.defenderFleet;\n }\n return null;\n }\n\n buildMapStructTilRenderParamsFromTileElement(tileElement) {\n const renderParams = new MapStructTileRenderParamsDTO();\n renderParams.tileElement = tileElement;\n\n const tileType = tileElement.getAttribute('data-tile-type');\n const ambit = tileElement.getAttribute('data-ambit');\n const slot = tileElement.getAttribute('data-slot');\n const playerId = tileElement.getAttribute('data-player-id');\n\n if (!this.hasTilePositionData(tileType, ambit, slot, playerId)) {\n return null;\n }\n\n const locationInfo = this.getLocationInfoFromTile(tileType, playerId);\n if (!locationInfo) {\n return null;\n }\n\n const slotNum = parseInt(slot, 10);\n const fleet = this.getFleetByPlayerId(playerId);\n\n renderParams.struct = this.structManager.getStructByPositionAndPlayerId(\n playerId,\n locationInfo.locationType,\n locationInfo.locationId,\n this.planet.id,\n ambit,\n slotNum,\n locationInfo.isCommandSlot,\n fleet\n );\n\n return renderParams;\n }\n\n /**\n * @param {Struct} struct\n * @return {MapStructTileRenderParamsDTO|null}\n */\n buildMapStructTilRenderParamsFromStruct(struct) {\n const renderParams = new MapStructTileRenderParamsDTO();\n renderParams.struct = struct;\n\n const tileType = this.structManager.getTileTypeFromStruct(struct);\n\n if (!tileType) {\n return null;\n }\n\n const ambit = struct.operating_ambit ? struct.operating_ambit.toUpperCase() : '';\n const selector = this.buildTileSelector(tileType, ambit, struct.slot, struct.owner);\n const container = document.getElementById(this.containerId);\n renderParams.tileElement = container.querySelector(selector);\n\n if (!renderParams.tileElement) {\n return null;\n }\n\n return renderParams;\n }\n}\n","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\nimport {TileClassNameUtil} from \"../../../util/TileClassNameUtil\";\nimport {MapTransitionLayerComponentFactory} from \"../../../factories/MapTransitionLayerComponentFactory\";\nimport {MapTransitionComponentBuilder} from \"../../../builders/MapTransitionComponentBuilder\";\nimport {MapTerrainComponent} from \"./MapTerrainComponent\";\nimport {MapOrnamentComponentBuilder} from \"../../../builders/MapOrnamentComponentBuilder\";\nimport {MapOrnamentsComponent} from \"./MapOrnamentsComponent\";\nimport {MapTileMarkersComponent} from \"./MapTileMarkersComponent\";\nimport {MapFogOfWarComponent} from \"./MapFogOfWarComponent\";\nimport {MAP_ORNAMENTS} from \"../../../constants/MapConstants\";\nimport {PLAYER_MAP_ROLES} from \"../../../constants/PlayerMapRoles\";\nimport {MAP_PERSPECTIVES} from \"../../../constants/MapPerspectives\";\nimport {MapTileSelectionComponent} from \"./MapTileSelectionComponent\";\nimport {MapStructLayerComponent} from \"./MapStructLayerComponent\";\nimport {MapStructHUDLayerComponent} from \"./MapStructHUDLayerComponent\";\nimport {MapPictureInPictureComponent} from \"./MapPictureInPictureComponent\";\nimport {Planet} from \"../../../models/Planet\";\nimport {Player} from \"../../../models/Player\";\n\nexport class MapComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {SigningClientManager} signingClientManager\n * @param {StructManager} structManager\n * @param {TaskManager} taskManager\n * @param {string} containerId\n * @param {string} idPrefix\n * @param {boolean} enableTileSelectionLayer\n */\n constructor(\n gameState,\n signingClientManager,\n structManager,\n taskManager,\n containerId,\n idPrefix,\n enableTileSelectionLayer = true\n ) {\n super(gameState);\n\n /** @type {SigningClientManager} */\n this.signingClientManager = signingClientManager;\n\n this.structManager = structManager;\n\n /** @type {TaskManager} */\n this.taskManager = taskManager;\n\n this.containerId = containerId;\n\n this.idPrefix = idPrefix;\n\n this.enableTileSelectionLayer = enableTileSelectionLayer;\n\n this.mapId = `${this.idPrefix}-map`;\n this.terrainId = `${this.idPrefix}-map-terrain`;\n this.ornamentsId = `${this.idPrefix}-map-ornaments`;\n this.markersId = `${this.idPrefix}-map-markers`;\n this.structLayerId = `${this.idPrefix}-map-struct-layer`;\n this.structHUDLayerId = `${this.idPrefix}-map-struct-hud-layer`;\n this.fogOfWarId = `${this.idPrefix}-map-fog-of-war`;\n this.tileSelectionId = `${this.idPrefix}-map-tile-selection`;\n this.pictureInPictureId = `${this.idPrefix}-map-pip`;\n\n /** @type {Planet|null} */\n this.planet = null;\n\n /** @type {Player|null} */\n this.attacker = null;\n\n /** @type {Player|null} */\n this.defender = null;\n\n /** @type {Fleet|null} */\n this.attackerFleet = null;\n\n /** @type {Fleet|null} */\n this.defenderFleet = null;\n\n this.perspective = null; // ATTACKER, DEFENDER\n\n this.tileClassNameUtil = new TileClassNameUtil();\n this.transitionLayerFactory = new MapTransitionLayerComponentFactory(this.tileClassNameUtil);\n this.transitionBuilder = new MapTransitionComponentBuilder(gameState, this.transitionLayerFactory);\n\n /** @type {MapTerrainComponent|null} */\n this.mapTerrain = null;\n\n /** @type {MapOrnamentComponentBuilder|null} */\n this.mapOrnamentBuilder = null;\n\n /** @type {MapOrnamentsComponent|null} */\n this.mapOrnaments = null;\n\n /** @type {MapTileMarkersComponent|null} */\n this.mapTileMarkers = null;\n\n /** @type {MapFogOfWarComponent|null} */\n this.mapFogOfWar = null;\n\n /** @type {MapStructLayerComponent|null} */\n this.mapStructLayer = null;\n\n /** @type {MapStructHUDLayerComponent|null} */\n this.mapStructHUDLayer = null;\n\n /** @type {MapTileSelectionComponent|null} */\n this.mapTileSelection = null;\n\n /** @type {MapPictureInPictureComponent|null} */\n this.mapPictureInPicture = null;\n }\n\n /**\n * @param {Planet} planet\n */\n setPlanet(planet) {\n this.planet = planet;\n }\n\n /**\n * @param {Player} player\n */\n setDefender(player) {\n this.defender = player;\n }\n\n /**\n * @param {Player|null} player\n */\n setAttacker(player) {\n this.attacker = player;\n }\n\n /**\n * @param {Fleet|null} fleet\n */\n setDefenderFleet(fleet) {\n this.defenderFleet = fleet;\n }\n\n /**\n * @param {Fleet|null} fleet\n */\n setAttackerFleet(fleet) {\n this.attackerFleet = fleet;\n }\n\n /**\n * @param {string} role\n */\n setPlayerMapRole(role) {\n if(!Object.values(PLAYER_MAP_ROLES).includes(role)) {\n throw new Error(`Invalid player map role: ${role}`);\n }\n\n switch (role) {\n case PLAYER_MAP_ROLES.ATTACKER:\n this.perspective = MAP_PERSPECTIVES.ATTACKER;\n break;\n case PLAYER_MAP_ROLES.DEFENDER:\n this.perspective = MAP_PERSPECTIVES.DEFENDER;\n break;\n case PLAYER_MAP_ROLES.SPECTATOR:\n this.perspective = MAP_PERSPECTIVES.ATTACKER;\n break;\n }\n }\n\n shouldDisplayFogOfWar() {\n return !this.attacker && (this.perspective === MAP_PERSPECTIVES.DEFENDER);\n }\n\n initMapComponents() {\n /**\n * URL parameter parsing for testing different scenarios.\n * URL param syntax: ?[ornament(/[a-zA-Z_]+/)]=[space|air|land|water]\n * */\n const urlParams = new URLSearchParams(document.location.search);\n\n Object.keys(MAP_ORNAMENTS).forEach((ornamentKey) => {\n let ornamentAmbit = urlParams.get(ornamentKey.toLowerCase());\n\n if (ornamentAmbit) {\n console.log(ornamentAmbit);\n ornamentAmbit = ornamentAmbit.toUpperCase();\n const ambitOrnaments = this.planet.ornaments.get(ornamentAmbit);\n ambitOrnaments.push(ornamentKey);\n this.planet.ornaments.set(ornamentAmbit, ambitOrnaments);\n console.log(this.planet);\n }\n })\n\n this.mapTerrain = new MapTerrainComponent(\n this.gameState,\n this.transitionBuilder,\n this.tileClassNameUtil,\n this.planet\n );\n this.mapTerrain.init();\n\n this.mapOrnamentBuilder = new MapOrnamentComponentBuilder(\n gameState,\n this.planet,\n this.mapTerrain.mapColCount\n );\n\n this.mapOrnaments = new MapOrnamentsComponent(\n this.gameState,\n this.mapOrnamentBuilder,\n this.planet\n );\n\n const mapColBreakdown = this.mapTerrain.getMapColBreakdown(this.perspective === MAP_PERSPECTIVES.DEFENDER);\n this.mapTileMarkers = new MapTileMarkersComponent(\n this.gameState,\n this.tileClassNameUtil,\n mapColBreakdown,\n this.planet\n );\n\n this.mapFogOfWar = new MapFogOfWarComponent(\n this.gameState,\n mapColBreakdown,\n this.planet\n );\n \n this.mapStructLayer = new MapStructLayerComponent(\n this.gameState,\n this.structManager,\n mapColBreakdown,\n this.planet,\n this.defender,\n this.attacker,\n this.defenderFleet,\n this.attackerFleet,\n this.structLayerId,\n this.mapId\n );\n\n this.mapStructHUDLayer = new MapStructHUDLayerComponent(\n this.gameState,\n this.structManager,\n this.taskManager,\n mapColBreakdown,\n this.planet,\n this.defender,\n this.attacker,\n this.defenderFleet,\n this.attackerFleet,\n this.structHUDLayerId,\n this.mapId\n );\n\n if (this.enableTileSelectionLayer) {\n\n this.mapTileSelection = new MapTileSelectionComponent(\n this.gameState,\n this.signingClientManager,\n this.structManager,\n mapColBreakdown,\n this.planet,\n this.defender,\n this.attacker,\n this.defenderFleet,\n this.attackerFleet,\n this.tileSelectionId,\n this.mapId\n );\n\n }\n\n this.mapPictureInPicture = new MapPictureInPictureComponent(\n this.gameState,\n this.structManager,\n this.tileClassNameUtil,\n this.mapTileMarkers,\n mapColBreakdown,\n this.planet,\n this.mapId,\n this.structLayerId,\n this.pictureInPictureId,\n this.idPrefix\n );\n }\n\n /**\n * @return {string}\n */\n renderHTML() {\n return `\n
\n
\n
\n
\n
\n
\n
\n
\n
\n `;\n }\n\n destroyMapStructLayer() {\n if (this.mapStructLayer) {\n this.mapStructLayer.destroy();\n }\n }\n\n destroyMapStructHUDLayer() {\n if (this.mapStructHUDLayer) {\n this.mapStructHUDLayer.destroy();\n }\n }\n\n /**\n * Tear down the PIP component (its window listeners and lottie players) and\n * remove its DOM element. The PIP is rendered at `document.body` level so\n * it is not wiped out by `${this.containerId}.innerHTML = ...` and must be\n * cleaned up explicitly across re-renders.\n */\n destroyMapPictureInPicture() {\n if (this.mapPictureInPicture) {\n this.mapPictureInPicture.destroy();\n this.mapPictureInPicture = null;\n }\n const existing = document.getElementById(this.pictureInPictureId);\n if (existing && existing.parentNode) {\n existing.parentNode.removeChild(existing);\n }\n }\n\n render() {\n this.destroyMapStructLayer();\n this.destroyMapStructHUDLayer();\n this.destroyMapPictureInPicture();\n\n document.getElementById(this.containerId).innerHTML = this.renderHTML();\n\n if (this.planet === null) {\n return;\n }\n\n this.initMapComponents();\n\n document.getElementById(this.terrainId).innerHTML = this.mapTerrain.renderHTML();\n\n document.getElementById(this.ornamentsId).innerHTML = this.mapOrnaments.renderHTML();\n\n document.getElementById(this.markersId).innerHTML = this.mapTileMarkers.renderHTML();\n\n document.getElementById(this.structLayerId).innerHTML = this.mapStructLayer.renderHTML();\n\n document.getElementById(this.structHUDLayerId).innerHTML = this.mapStructHUDLayer.renderHTML();\n\n if (this.shouldDisplayFogOfWar()) {\n document.getElementById(this.fogOfWarId).innerHTML = this.mapFogOfWar.renderHTML();\n }\n\n if (this.enableTileSelectionLayer) {\n document.getElementById(this.tileSelectionId).innerHTML = this.mapTileSelection.renderHTML();\n this.mapTileSelection.initPageCode();\n }\n\n // The PIP must live outside the (transform-scaled) `.map-container` so it\n // can be `position: fixed` against the browser viewport. Append it as a\n // direct child of ; destroyMapPictureInPicture() cleans it up.\n document.body.insertAdjacentHTML('beforeend', this.mapPictureInPicture.renderHTML());\n\n this.mapStructLayer.initPageCode();\n this.mapStructHUDLayer.initPageCode();\n this.mapPictureInPicture.initPageCode();\n }\n}","import {MAP_TILE_ROWS_PER_AMBIT, MAP_TILE_SIZE, MAP_TRANSITION_HEIGHT} from \"../../../constants/MapConstants\";\nimport {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\n\n/**\n * An overlay to hide the enemy side of the map when there is no enemy.\n */\nexport class MapFogOfWarComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {string[]} mapColBreakdown\n * @param {Planet} planet\n */\n constructor(\n gameState,\n mapColBreakdown,\n planet\n ) {\n super(gameState);\n this.mapColBreakdown = mapColBreakdown;\n this.planet = planet;\n }\n\n /**\n * Calculate the pixel width from the start of the map dividing column\n * to the right edge of the map.\n *\n * @return {int} the map width in pixels\n */\n calcWidthFromMapDividerToRightEdge() {\n const numColsFromDivider = this.mapColBreakdown.length - this.mapColBreakdown.indexOf('DIVIDER');\n return numColsFromDivider * MAP_TILE_SIZE;\n }\n\n /**\n * Calculate the left position of the map dividing column.\n *\n * @return {number} the left position in pixels\n */\n calcDividerLeftPos() {\n return this.mapColBreakdown.length * MAP_TILE_SIZE - this.calcWidthFromMapDividerToRightEdge();\n }\n\n /**\n * Calculate the pixel height of the map.\n *\n * @return {int} the map height in pixels\n */\n calcMapHeight() {\n const numAmbits = this.planet.getAmbits().length;\n\n const ambitRows = numAmbits * MAP_TILE_ROWS_PER_AMBIT;\n const heightOfAmbits = ambitRows * MAP_TILE_SIZE;\n\n const transitionRows = numAmbits + 1;\n const heightOfTransitions = transitionRows * MAP_TRANSITION_HEIGHT;\n\n return heightOfAmbits + heightOfTransitions;\n }\n\n /**\n * Renders fog of war overlay.\n *\n * @return {string} html\n */\n renderHTML() {\n const leftPosFogOfWar = this.calcDividerLeftPos();\n const widthFromDivider = this.calcWidthFromMapDividerToRightEdge();\n const mapHeight = this.calcMapHeight();\n return `\n
\n
\n
\n
\n `;\n }\n}\n","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\n\n/**\n * A decorative layer that overlays an ambit between the terrain and map marker layers.\n */\nexport class MapOrnamentComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {string} ornamentClassName\n * @param {int} width in pixels\n * @param {int} height in pixels\n * @param {int} top in pixels\n */\n constructor(\n gameState,\n ornamentClassName,\n width,\n height,\n top\n ) {\n super(gameState);\n this.ornamentClassName = ornamentClassName;\n this.width = width;\n this.height = height;\n this.top = top;\n }\n\n /**\n * Renders an ornament.\n *\n * @return {string} html\n */\n renderHTML() {\n return `\n
\n
\n
\n `;\n }\n}\n","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\n\n/**\n * An overlay for ambit level map ornaments.\n */\nexport class MapOrnamentsComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {MapOrnamentComponentBuilder} mapOrnamentBuilder\n * @param {Planet} planet\n */\n constructor(\n gameState,\n mapOrnamentBuilder,\n planet\n ) {\n super(gameState);\n this.mapOrnamentBuilder = mapOrnamentBuilder;\n this.planet = planet;\n }\n\n /**\n * @return {string}\n */\n renderHTML() {\n const planetAmbits = this.planet.getAmbits();\n const planetOrnaments = this.planet.getOrnaments();\n\n let html = '';\n\n for (let j = 0; j < planetAmbits.length; j++) {\n\n const ambitOrnaments = planetOrnaments.get(planetAmbits[j]);\n\n for (let i = 0; i < ambitOrnaments.length; i++) {\n html += (this.mapOrnamentBuilder.make(ambitOrnaments[i], planetAmbits[j])).renderHTML();\n }\n }\n\n return html;\n }\n}","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\nimport {EVENTS} from \"../../../constants/Events\";\nimport {MAP_TILE_ROWS_PER_AMBIT} from \"../../../constants/MapConstants\";\nimport {MapStructViewerComponent} from \"../MapStructViewerComponent\";\nimport {MapTerrainAmbitComponent} from \"./MapTerrainAmbitComponent\";\nimport {MapStructLayerComponent} from \"./MapStructLayerComponent\";\nimport {AttackSequenceAnimationUtil} from \"../../../util/AttackSequenceAnimationUtil\";\n\n/**\n * Upper-bound, in milliseconds, on how long to wait for a slide-out\n * `transitionend` before forcing the post-slide-out work to proceed. The CSS\n * transition is 500ms; the extra buffer covers timing jitter and the cases\n * where `transitionend` doesn't fire (e.g. when transitioning to/from `auto`,\n * or when another class change cancels the in-flight transition).\n */\nconst SLIDE_OUT_FALLBACK_MS = 750;\n\n/**\n * A 128x128 picture-in-picture overlay that mirrors the currently-animating\n * attack-sequence struct when its tile is fully off-screen.\n *\n * The PIP renders three layers for a single tile (terrain, optional marker,\n * struct viewer) and is positioned `position: fixed` against the browser\n * viewport so it is unaffected by the map's `transform: scale(...)`.\n *\n * The PIP delegates every \"render a tile\" decision back to the canonical\n * components so behavior stays in sync if those components change:\n * - terrain -> `MapTerrainAmbitComponent.renderTile`\n * - markers -> `MapTileMarkersComponent.getCellMarker` (wraps `processCell`)\n * - struct mount -> `MapStructLayerComponent.mountStructViewerInTile`\n * (extracted from `MapStructLayerComponent.renderStruct`)\n *\n * The PIP's struct viewer runs in \"muted\" mode (no `AnimationEndEvent`\n * dispatch) so its lottie completions can't drive the global\n * `AnimationEventQueue`.\n */\nexport class MapPictureInPictureComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {StructManager} structManager\n * @param {TileClassNameUtil} tileClassNameUtil\n * @param {MapTileMarkersComponent} mapTileMarkers\n * @param {string[]} mapColBreakdown\n * @param {Planet} planet\n * @param {string} mapId the id of the owning map; only animation events\n * whose `mapId` matches will affect this PIP\n * @param {string} structLayerId the DOM id of the owning map's struct layer\n * (used to locate the struct's tile element for visibility checks)\n * @param {string} containerId the DOM id this PIP renders into\n * @param {string} idPrefix used to build the PIP viewer's id prefix so its\n * internal lottie container ids don't collide with the on-map viewer's\n * ids for the same struct\n */\n constructor(\n gameState,\n structManager,\n tileClassNameUtil,\n mapTileMarkers,\n mapColBreakdown,\n planet,\n mapId,\n structLayerId,\n containerId,\n idPrefix\n ) {\n super(gameState);\n this.structManager = structManager;\n this.tileClassNameUtil = tileClassNameUtil;\n this.mapTileMarkers = mapTileMarkers;\n this.mapColBreakdown = mapColBreakdown;\n this.planet = planet;\n this.mapId = mapId;\n this.structLayerId = structLayerId;\n this.containerId = containerId;\n this.idPrefix = idPrefix;\n\n this.viewerIdPrefix = `pip-${this.idPrefix}-`;\n\n // Reused for `renderTile`, `rowIndexToVerticalPos`, and\n // `colIndexToHorizontalPos`. The instance is ambit-agnostic (the methods\n // we call accept ambit as a parameter or only consult mapColCount /\n // rowsPerAmbit), so a single helper is enough for every PIP render.\n this.terrainAmbitHelper = new MapTerrainAmbitComponent(\n this.gameState,\n this.tileClassNameUtil,\n '',\n this.mapColBreakdown.length,\n MAP_TILE_ROWS_PER_AMBIT\n );\n\n /** @type {string|null} struct id this PIP is currently tracking */\n this.activeStructId = null;\n\n /** @type {MapStructViewerComponent|null} */\n this.activeViewer = null;\n\n /**\n * True while the PIP viewer's lottie animation is in flight.\n * Flipped to false in `handleViewerAnimationsComplete`.\n *\n * @type {boolean}\n */\n this.viewerActive = false;\n\n /**\n * True when the attack sequence has produced a \"no continuation\" signal\n * (queue empty or next event is not an attack-sequence animation) and we\n * are waiting for the PIP's current animation to finish before hiding.\n *\n * @type {boolean}\n */\n this.pendingHide = false;\n\n /**\n * Render request that will be applied after the current PIP has slid\n * out. Used to sequence \"slide current struct out -> swap contents ->\n * slide new struct in\" when an attack-sequence event targets a struct\n * other than the one the PIP is currently mirroring.\n *\n * @type {{structId: string, tileElement: HTMLElement, animationEvent: AnimationEvent}|null}\n */\n this.pendingRender = null;\n\n /**\n * `transitionend` handler attached to the PIP container while a\n * slide-out is in flight. Tracked so it can be removed exactly once.\n *\n * @type {EventListener|null}\n */\n this.slideOutHandler = null;\n\n /**\n * Fallback `setTimeout` id ensuring slide-out post-work runs even if\n * `transitionend` is skipped or cancelled.\n *\n * @type {number|null}\n */\n this.slideOutTimeout = null;\n\n /** @type {Array<{target: EventTarget, event: string, handler: EventListener}>} */\n this.windowEventHandlers = [];\n }\n\n /**\n * @return {string}\n */\n renderHTML() {\n return `
`;\n }\n\n /**\n * @return {HTMLElement|null}\n */\n getContainer() {\n return document.getElementById(this.containerId);\n }\n\n /**\n * Locate the on-map tile element for the given struct id, scoped to this\n * PIP's owning map.\n *\n * @param {string} structId\n * @return {HTMLElement|null}\n */\n findTileElement(structId) {\n if (!structId) {\n return null;\n }\n const structLayer = document.getElementById(this.structLayerId);\n if (!structLayer) {\n return null;\n }\n return structLayer.querySelector(`.map-struct-layer-tile[data-struct-id=\"${structId}\"]`);\n }\n\n /**\n * Determine whether a tile element is fully off-screen relative to the\n * browser viewport. Returns false when any part of the tile is visible.\n *\n * @param {HTMLElement|null} tileElement\n * @return {boolean}\n */\n isTileFullyOffscreen(tileElement) {\n if (!tileElement) {\n return false;\n }\n const rect = tileElement.getBoundingClientRect();\n const viewportWidth = window.innerWidth || document.documentElement.clientWidth;\n const viewportHeight = window.innerHeight || document.documentElement.clientHeight;\n return (\n rect.bottom <= 0\n || rect.top >= viewportHeight\n || rect.right <= 0\n || rect.left >= viewportWidth\n );\n }\n\n /**\n * Determine the (rowIndex within ambit, colIndex within row) of a struct\n * layer tile by walking the DOM. Transition rows and ambit boundary rows\n * stop the upward walk.\n *\n * @param {HTMLElement} tileElement\n * @return {{rowIndex: number, colIndex: number}|null}\n */\n findAmbitTilePosition(tileElement) {\n const ambit = tileElement.getAttribute('data-ambit');\n const row = tileElement.parentElement;\n if (!ambit || !row) {\n return null;\n }\n const colIndex = Array.from(row.children).indexOf(tileElement);\n\n let rowIndex = 0;\n let prev = row.previousElementSibling;\n while (prev) {\n const firstSiblingTile = prev.querySelector('.map-struct-layer-tile');\n if (!firstSiblingTile) {\n break;\n }\n if (firstSiblingTile.getAttribute('data-ambit') !== ambit) {\n break;\n }\n rowIndex++;\n prev = prev.previousElementSibling;\n }\n\n return {rowIndex, colIndex};\n }\n\n /**\n * Tear down the currently-rendered struct viewer (if any) and clear all PIP\n * markup. Used when transitioning to a new active struct or when destroying\n * the PIP entirely. Always called only once the PIP is already parked\n * off-screen (so the cleanup doesn't visibly snap the element).\n */\n clearPipContents() {\n this.detachSlideOutListener();\n if (this.activeViewer) {\n this.activeViewer.onAnimationsComplete = null;\n this.activeViewer.destroy();\n this.activeViewer = null;\n }\n const container = this.getContainer();\n if (container) {\n container.innerHTML = '';\n container.classList.remove('mod-visible', 'mod-side-left', 'mod-side-right');\n }\n this.activeStructId = null;\n this.viewerActive = false;\n this.pendingHide = false;\n this.pendingRender = null;\n }\n\n /**\n * The PIP viewer's lottie animation reached its final frame. If a swap or\n * hide is pending, this is the moment to begin the slide-out: it keeps the\n * exit visually anchored to \"the end of the animation\" rather than to \"the\n * moment the next attack-sequence event was dispatched\" (which can happen\n * mid-animation when the on-map and PIP viewers are out of sync).\n */\n handleViewerAnimationsComplete() {\n this.viewerActive = false;\n if (this.pendingHide || this.pendingRender) {\n this.beginSlideOut();\n }\n }\n\n /**\n * Mark the PIP for hide. If the viewer is still mid-animation, the\n * slide-out is deferred until `handleViewerAnimationsComplete` fires.\n * Otherwise the slide-out begins immediately and `clearPipContents` runs\n * when the CSS transition completes.\n */\n requestHide() {\n this.pendingHide = true;\n this.pendingRender = null;\n if (this.viewerActive) {\n return;\n }\n this.beginSlideOut();\n }\n\n /**\n * Begin sliding the PIP out of the viewport by removing `mod-visible`,\n * which lets the CSS transition the active side anchor back to its\n * off-screen rest position. The completion handler runs from\n * `transitionend` (or the fallback timer) and decides whether to clear\n * the PIP or render the pending struct.\n */\n beginSlideOut() {\n const container = this.getContainer();\n if (!container) {\n this.handleSlideOutComplete();\n return;\n }\n if (this.slideOutHandler) {\n // A slide-out is already in flight; its completion handler will pick\n // up the latest `pendingHide` / `pendingRender` state.\n return;\n }\n if (!container.classList.contains('mod-visible')) {\n // PIP is already off-screen (e.g. the user scrolled the active\n // struct's tile back into view, or the PIP never became visible),\n // so no transition will fire. Skip straight to the post-work.\n this.handleSlideOutComplete();\n return;\n }\n this.attachSlideOutListener(container);\n container.classList.remove('mod-visible');\n }\n\n /**\n * Attach a one-shot `transitionend` listener to the PIP container plus a\n * fallback `setTimeout`. Whichever fires first wins; the other is cleared\n * in `detachSlideOutListener`.\n *\n * @param {HTMLElement} container\n */\n attachSlideOutListener(container) {\n this.detachSlideOutListener();\n\n const handler = (e) => {\n // Ignore bubbled transitions from child elements and from properties\n // other than the slide axes; only `left`/`right` move the PIP.\n if (e.target !== container) {\n return;\n }\n if (e.propertyName !== 'left' && e.propertyName !== 'right') {\n return;\n }\n this.detachSlideOutListener();\n this.handleSlideOutComplete();\n };\n this.slideOutHandler = handler;\n container.addEventListener('transitionend', handler);\n\n this.slideOutTimeout = setTimeout(() => {\n if (this.slideOutHandler) {\n this.detachSlideOutListener();\n this.handleSlideOutComplete();\n }\n }, SLIDE_OUT_FALLBACK_MS);\n }\n\n detachSlideOutListener() {\n const container = this.getContainer();\n if (container && this.slideOutHandler) {\n container.removeEventListener('transitionend', this.slideOutHandler);\n }\n this.slideOutHandler = null;\n if (this.slideOutTimeout !== null) {\n clearTimeout(this.slideOutTimeout);\n this.slideOutTimeout = null;\n }\n }\n\n /**\n * Slide-out has finished. Apply whichever post-work the current state\n * implies: clear (hide pending) or render-then-slide-in (swap pending).\n * If both are set the hide wins, matching the user-facing semantics that\n * \"no continuation\" always trumps a queued swap.\n */\n handleSlideOutComplete() {\n if (this.pendingHide) {\n this.pendingHide = false;\n this.pendingRender = null;\n this.clearPipContents();\n return;\n }\n if (this.pendingRender) {\n const next = this.pendingRender;\n this.pendingRender = null;\n const rendered = this.renderForStruct(\n next.structId,\n next.tileElement,\n next.animationEvent\n );\n if (rendered) {\n this.slideIn();\n } else {\n this.clearPipContents();\n }\n }\n }\n\n /**\n * Force a layout flush so the browser commits the (just-swapped) side\n * class's off-screen anchor before `mod-visible` is added, then delegate\n * to `updateVisibility` to add `mod-visible` if (and only if) the active\n * struct's tile is fully off the user's viewport.\n *\n * Without the reflow, the browser would batch the side-class swap with\n * the subsequent `mod-visible` add, see only the final on-screen anchor,\n * and skip the slide-in transition entirely.\n */\n slideIn() {\n const container = this.getContainer();\n if (!container) {\n return;\n }\n // Reading `offsetWidth` forces a synchronous layout, committing the\n // off-screen state established by `renderForStruct` so the subsequent\n // `mod-visible` add actually animates `left`/`right`.\n // eslint-disable-next-line no-unused-expressions\n container.offsetWidth;\n this.updateVisibility();\n }\n\n /**\n * Render the PIP contents for the active struct and autoplay the given\n * animation in the embedded viewer.\n *\n * The terrain tile is produced by `MapTerrainAmbitComponent.renderTile`,\n * the marker (if any) by `MapTileMarkersComponent.getCellMarker` (which\n * wraps `processCell`), and the struct viewer by\n * `MapStructLayerComponent.mountStructViewerInTile` (extracted from\n * `MapStructLayerComponent.renderStruct`).\n *\n * @param {string} structId\n * @param {HTMLElement} tileElement on-map tile element backing the struct\n * @param {AnimationEvent} animationEvent the triggering animation event\n * @return {boolean} whether the contents were rendered successfully\n */\n renderForStruct(structId, tileElement, animationEvent) {\n const struct = this.structManager.getStructById(structId);\n const ambit = tileElement.getAttribute('data-ambit');\n const side = tileElement.getAttribute('data-side');\n const tilePos = this.findAmbitTilePosition(tileElement);\n const container = this.getContainer();\n\n if (\n !struct\n || !struct.isBuilt()\n || !ambit\n || !side\n || !tilePos\n || !container\n ) {\n return false;\n }\n\n if (this.activeViewer) {\n this.activeViewer.onAnimationsComplete = null;\n this.activeViewer.destroy();\n this.activeViewer = null;\n }\n\n const verticalPos = this.terrainAmbitHelper.rowIndexToVerticalPos(tilePos.rowIndex);\n const horizontalPos = this.terrainAmbitHelper.colIndexToHorizontalPos(tilePos.colIndex);\n const terrainTileHTML = this.terrainAmbitHelper.renderTile(ambit, verticalPos, horizontalPos);\n const markerHTML = this.mapTileMarkers.getCellMarker(ambit, tilePos.rowIndex, tilePos.colIndex) || '';\n\n container.innerHTML = `\n
\n
\n ${terrainTileHTML}\n ${markerHTML}\n
\n
\n
\n
\n
\n `;\n container.classList.remove('mod-side-left', 'mod-side-right');\n container.classList.add(side === 'right' ? 'mod-side-right' : 'mod-side-left');\n\n this.activeViewer = new MapStructViewerComponent(\n this.gameState,\n this.structManager,\n struct.id,\n struct.type,\n this.mapId,\n this.viewerIdPrefix,\n false\n );\n this.activeViewer.onAnimationsComplete = () => this.handleViewerAnimationsComplete();\n\n const structSlot = container.querySelector('.map-pip-struct');\n MapStructLayerComponent.mountStructViewerInTile(structSlot, this.activeViewer, animationEvent);\n\n this.activeStructId = structId;\n this.viewerActive = true;\n this.pendingHide = false;\n\n return true;\n }\n\n /**\n * Update the PIP's visibility class based on whether the active struct's\n * tile is fully off-screen. Called on animation events, scroll, and resize.\n *\n * Skipped while a slide-out for a pending swap or hide is in progress so\n * the in-flight transition isn't clobbered by an unrelated scroll/resize.\n */\n updateVisibility() {\n if (this.pendingRender || this.pendingHide) {\n return;\n }\n const container = this.getContainer();\n if (!container) {\n return;\n }\n if (!this.activeStructId) {\n container.classList.remove('mod-visible');\n return;\n }\n const tileElement = this.findTileElement(this.activeStructId);\n if (this.isTileFullyOffscreen(tileElement)) {\n container.classList.add('mod-visible');\n } else {\n container.classList.remove('mod-visible');\n }\n }\n\n /**\n * Handle an incoming `EVENTS.ANIMATION` event:\n * - ignore events for other maps\n * - non-attack-sequence: request the PIP slide out and clear\n * - empty PIP: render the new struct and slide it in\n * - same struct (e.g. counter-attack chaining additional animations on\n * the struct the PIP is already mirroring): re-render contents in\n * place; the PIP stays on its current side and visibility is unchanged\n * - different struct: queue the new render and slide the current struct\n * out first; the new render and slide-in happen in\n * `handleSlideOutComplete` once the transition (and, if it was still\n * playing, the PIP's current animation) has finished\n *\n * @param {AnimationEvent|Event} event\n */\n handleAnimation(event) {\n if (\n !event\n || !event.structId\n || (event.mapId && event.mapId !== this.mapId)\n ) {\n return;\n }\n\n if (!AttackSequenceAnimationUtil.includesAttackSequenceAnimation(event.animationNames || [])) {\n if (this.activeStructId || this.pendingRender) {\n this.requestHide();\n }\n return;\n }\n\n const tileElement = this.findTileElement(event.structId);\n if (!tileElement) {\n return;\n }\n\n if (!this.activeStructId) {\n const rendered = this.renderForStruct(event.structId, tileElement, event);\n if (rendered) {\n this.slideIn();\n }\n return;\n }\n\n if (this.activeStructId === event.structId) {\n this.renderForStruct(event.structId, tileElement, event);\n return;\n }\n\n this.pendingRender = {\n structId: event.structId,\n tileElement: tileElement,\n animationEvent: event,\n };\n this.pendingHide = false;\n if (this.viewerActive) {\n // Wait for the PIP's current animation to finish first;\n // `handleViewerAnimationsComplete` will kick off the slide-out.\n return;\n }\n this.beginSlideOut();\n }\n\n /**\n * The global `AnimationEventQueue` just transitioned to idle. If the PIP\n * is still tracking a struct, request a hide; the actual hide is deferred\n * until the PIP's current animation finishes playing and then a slide-out\n * is performed.\n */\n handleAnimationQueueEmpty() {\n if (this.activeStructId) {\n this.requestHide();\n }\n }\n\n /**\n * @param {string} eventName\n * @param {EventListener|function} handler\n * @param {EventTarget} target\n */\n addEventListenerTracked(eventName, handler, target = window) {\n target.addEventListener(eventName, handler);\n this.windowEventHandlers.push({target, event: eventName, handler});\n }\n\n initPageCode() {\n this.addEventListenerTracked(EVENTS.ANIMATION, (event) => this.handleAnimation(event));\n this.addEventListenerTracked(EVENTS.ANIMATION_QUEUE_EMPTY, () => this.handleAnimationQueueEmpty());\n\n const visibilityHandler = () => this.updateVisibility();\n this.addEventListenerTracked('scroll', visibilityHandler, window);\n this.addEventListenerTracked('resize', visibilityHandler, window);\n }\n\n /**\n * Remove all listeners, destroy the embedded viewer, and clear PIP markup.\n * The container element itself is left in place so the owning\n * `MapComponent` can decide whether to remove it.\n */\n destroy() {\n this.detachSlideOutListener();\n for (let i = 0; i < this.windowEventHandlers.length; i++) {\n const {target, event, handler} = this.windowEventHandlers[i];\n target.removeEventListener(event, handler);\n }\n this.windowEventHandlers = [];\n\n this.clearPipContents();\n }\n}\n","import {GenericMapLayerComponent} from \"./GenericMapLayerComponent\";\nimport {Struct} from \"../../../models/Struct\";\nimport {StructType} from \"../../../models/StructType\";\nimport {EVENTS} from \"../../../constants/Events\";\nimport {OBJECT_TYPES} from \"../../../constants/ObjectTypes\";\nimport {PLAYER_TYPES} from \"../../../constants/PlayerTypes\";\nimport {STRUCT_TYPES} from \"../../../constants/StructConstants\";\nimport {TASK_TYPES} from \"../../../constants/TaskTypes\";\n\n\nexport class MapStructHUDLayerComponent extends GenericMapLayerComponent {\n\n /**\n * @param {GameState} gameState\n * @param {StructManager} structManager\n * @param {TaskManager} taskManager\n * @param {string[]} mapColBreakdown\n * @param {Planet|null} planet\n * @param {Player|null} defender\n * @param {Player|null} attacker\n * @param {Fleet|null} defenderFleet\n * @param {Fleet|null} attackerFleet\n * @param {string} containerId - The ID of the DOM container element for this HUD layer\n * @param {string} mapId\n */\n constructor(\n gameState,\n structManager,\n taskManager,\n mapColBreakdown,\n planet,\n defender,\n attacker,\n defenderFleet,\n attackerFleet,\n containerId = \"\",\n mapId = \"\"\n ) {\n super(\n gameState,\n 'map-struct-hud-layer-row',\n 'map-struct-hud-layer-tile',\n structManager,\n mapColBreakdown,\n planet,\n defender,\n attacker,\n defenderFleet,\n attackerFleet,\n containerId,\n mapId\n );\n\n /** @type {TaskManager} */\n this.taskManager = taskManager;\n\n /** @type {Array<{event: string, handler: EventListener}>} */\n this.windowEventHandlers = [];\n\n // Buffer of RENDER_STRUCT_HUD requests that arrived while the animation\n // queue was playing. Keyed by structId so that repeated requests collapse\n // to the latest struct snapshot. Flushed when ANIMATION_QUEUE_EMPTY fires.\n /** @type {Map} */\n this.deferredHudRenders = new Map();\n }\n\n /**\n * Register a window event listener and remember it so it can be removed in destroy().\n *\n * @param {string} event\n * @param {EventListener} handler\n */\n addWindowEventListener(event, handler) {\n window.addEventListener(event, handler);\n this.windowEventHandlers.push({event, handler});\n }\n\n /**\n * Remove all window event listeners registered by this component.\n */\n destroy() {\n for (let i = 0; i < this.windowEventHandlers.length; i++) {\n const {event, handler} = this.windowEventHandlers[i];\n window.removeEventListener(event, handler);\n }\n this.windowEventHandlers = [];\n this.deferredHudRenders.clear();\n }\n\n /**\n * @param {Struct} struct\n * @param {number|null} healthOverride if non-null, render the bar at this health\n * value instead of struct.health (used to show partial state mid-attack-sequence)\n * @return {string}\n */\n renderHealthBar(struct, healthOverride = null) {\n if (!struct.isBuilt()) {\n return '';\n }\n\n const structType = this.gameState.structTypes.getStructTypeById(struct.type);\n const segments = [];\n const health = (healthOverride !== null && healthOverride !== undefined)\n ? healthOverride\n : struct.health;\n\n for (let i = 0; i < structType.max_health; i++) {\n segments.push(`
`);\n }\n\n return `\n
\n ${segments.join('')}\n
\n `;\n }\n\n /**\n * Determines which task type's progress bar (if any) should be shown for the\n * given struct in the HUD layer. Returns null when no progress bar applies.\n *\n * Task progress is calculated locally on each player's machine against their\n * own task state, so the bar would never advance for structs owned by other\n * players. Restrict progress bars to structs owned by the current player.\n *\n * @param {Struct} struct\n * @param {StructType} structType\n * @return {string|null} a value from TASK_TYPES or null\n */\n getProgressBarTaskType(struct, structType) {\n if (!struct || struct.isDestroyed()) {\n return null;\n }\n const currentPlayerId = this.gameState.keyPlayers\n && this.gameState.keyPlayers[PLAYER_TYPES.PLAYER]\n ? this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id\n : null;\n if (!currentPlayerId || struct.owner !== currentPlayerId) {\n return null;\n }\n if (!struct.isBuilt()) {\n return TASK_TYPES.BUILD;\n }\n if (!struct.isOnline()) {\n return null;\n }\n if (structType && structType.type === STRUCT_TYPES.ORE_EXTRACTOR) {\n return TASK_TYPES.MINE;\n }\n if (structType && structType.type === STRUCT_TYPES.ORE_REFINERY) {\n return TASK_TYPES.REFINE;\n }\n return null;\n }\n\n /**\n * Clamp a fractional percent (0.0 - 1.0) and return it as a CSS percentage.\n *\n * @param {number} percent\n * @return {string}\n */\n formatProgressPercent(percent) {\n const clamped = Math.max(0, Math.min(1, percent || 0));\n return `${clamped * 100}%`;\n }\n\n /**\n * Render the struct progress bar HTML if applicable for the given struct.\n *\n * @param {Struct} struct\n * @return {string}\n */\n renderProgressBar(struct) {\n const structType = this.gameState.structTypes\n ? this.gameState.structTypes.getStructTypeById(struct.type)\n : null;\n const taskType = this.getProgressBarTaskType(struct, structType);\n if (!taskType) {\n return '';\n }\n\n let percent = 0;\n if (this.taskManager) {\n const process = this.taskManager.getProcessByStructIdAndType(struct.id, taskType);\n if (process) {\n percent = this.taskManager.getProcessPercentCompleteEstimate(process.state.getPID());\n }\n }\n\n return `\n
\n
\n
\n `;\n }\n\n /**\n * @param {Struct} struct\n * @return {string}\n */\n renderIndicatorIsDefended(struct) {\n return !struct.isDestroyed() && struct.isDefended()\n ? ``\n : '';\n }\n\n /**\n * @param {Struct} struct\n * @return {string}\n */\n renderIndicatorIsDefending(struct) {\n return !struct.isDestroyed() && struct.isDefending()\n ? ``\n : '';\n }\n\n /**\n * @param {Struct} struct\n * @return {string}\n */\n renderIndicatorIsDestroyed(struct) {\n return struct.isDestroyed()\n ? ``\n : '';\n }\n\n /**\n * @param {Struct} struct\n * @return {string}\n */\n renderIndicatorIsOffline(struct) {\n return !struct.isDestroyed() && struct.isBuilt() && !struct.isOnline()\n ? ``\n : '';\n }\n\n /**\n * @param {Struct} struct\n * @return {string}\n */\n renderStatusIndicators(struct) {\n return `\n
\n ${this.renderIndicatorIsDestroyed(struct)}\n ${this.renderIndicatorIsOffline(struct)}\n ${this.renderIndicatorIsDefended(struct)}\n ${this.renderIndicatorIsDefending(struct)}\n
\n `;\n }\n\n /**\n * Render the content for a single HUD tile\n * @param {HTMLElement} tileElement\n * @param {Struct|null} struct\n * @param {number|null} healthOverride if non-null, render the health bar at this\n * value instead of struct.health (used to show partial state mid-attack-sequence)\n */\n renderStructHUD(tileElement, struct = null, healthOverride = null) {\n const shouldRender = struct && (!struct.isDestroyed() || struct.isBuilt());\n\n if (!shouldRender) {\n tileElement.innerHTML = '';\n tileElement.setAttribute('data-struct-id', '');\n return;\n }\n\n const healthBarHTML = this.renderHealthBar(struct, healthOverride);\n const progressBarHTML = this.renderProgressBar(struct);\n const statusBarsHTML = (healthBarHTML || progressBarHTML)\n ? `
${healthBarHTML}${progressBarHTML}
`\n : '';\n\n tileElement.innerHTML = `\n ${statusBarsHTML}\n ${this.renderStatusIndicators(struct)}\n `;\n tileElement.setAttribute('data-struct-id', struct.id);\n }\n\n /**\n * @param {HTMLElement} tileElement\n */\n renderStructHUDFromTileElement(tileElement) {\n const renderParams = this.buildMapStructTilRenderParamsFromTileElement(tileElement);\n if (renderParams) {\n this.renderStructHUD(renderParams.tileElement, renderParams.struct);\n }\n }\n\n /**\n * @param {Struct} struct\n * @param {number|null} healthOverride if non-null, render the health bar at this\n * value instead of struct.health\n */\n renderStructHUDFromStruct(struct, healthOverride = null) {\n const renderParams = this.buildMapStructTilRenderParamsFromStruct(struct);\n if (renderParams) {\n this.renderStructHUD(renderParams.tileElement, renderParams.struct, healthOverride);\n }\n }\n\n renderAllStructHUDs() {\n const tiles = document.getElementById(this.containerId).querySelectorAll(`.${this.tileClass}`);\n tiles.forEach(tile => {\n this.renderStructHUDFromTileElement(tile);\n });\n }\n\n /**\n * Update only the width of an already rendered progress bar fill for the\n * given struct, without re-rendering the entire HUD tile. If the tile\n * currently has no progress bar of the supplied taskType (e.g. the struct\n * just transitioned from BUILD to MINE), fall back to a full HUD render\n * so the correct bar appears.\n *\n * @param {string} structId\n * @param {string} taskType see TASK_TYPES\n * @param {number} percent fractional (0.0 - 1.0)\n */\n updateProgressBarFill(structId, taskType, percent) {\n const tile = document.querySelector(\n `#${this.mapId} .${this.tileClass}[data-struct-id=\"${structId}\"]`\n );\n if (!tile) {\n return;\n }\n const progressBar = tile.querySelector(`.struct-progress-bar[data-task-type=\"${taskType}\"]`);\n if (!progressBar) {\n const struct = this.structManager.getStructById(structId);\n if (struct) {\n this.renderStructHUD(tile, struct);\n }\n return;\n }\n const fill = progressBar.querySelector('.struct-progress-bar-fill');\n if (fill) {\n fill.style.width = this.formatProgressPercent(percent);\n }\n }\n\n /**\n * Initialize page code: set up event listeners for future expansion\n */\n initPageCode() {\n this.renderAllStructHUDs();\n\n this.addWindowEventListener(EVENTS.TASK_STATE_CHANGED, (event) => {\n if (\n !event.state\n || event.state.object_type !== OBJECT_TYPES.STRUCT\n ) {\n return;\n }\n\n const structId = event.state.object_id;\n const struct = this.structManager.getStructById(structId);\n if (!struct) {\n return;\n }\n\n const structType = this.gameState.structTypes\n ? this.gameState.structTypes.getStructTypeById(struct.type)\n : null;\n const expectedTaskType = this.getProgressBarTaskType(struct, structType);\n if (!expectedTaskType) {\n return;\n }\n\n // Use the manager's estimator (factors hashrate + block offset) so the\n // live update matches the value used by renderProgressBar on the\n // initial draw and avoids a visible jump on the first tick.\n this.updateProgressBarFill(\n structId,\n expectedTaskType,\n this.taskManager.getProcessPercentCompleteEstimate(event.state.getPID())\n );\n });\n\n this.addWindowEventListener(EVENTS.RENDER_STRUCT_HUD, (event) => {\n if (event.mapId !== this.mapId) {\n return;\n }\n // While the animation queue is playing, defer applying gameState-based\n // HUD renders. Animation lifecycles drive partial-state HUD content via\n // ANIMATION_END's healthAfter, and applying gameState mid-sequence would\n // clobber that partial state with the (already-final) post-attack value.\n // The deferred render is flushed once the queue goes idle.\n if (this.gameState.animationEventQueue && this.gameState.animationEventQueue.isPlaying) {\n this.deferredHudRenders.set(event.struct.id, event.struct);\n return;\n }\n this.renderStructHUDFromStruct(event.struct);\n });\n\n this.addWindowEventListener(EVENTS.ANIMATION_QUEUE_EMPTY, () => {\n if (this.deferredHudRenders.size === 0) {\n return;\n }\n for (const struct of this.deferredHudRenders.values()) {\n this.renderStructHUDFromStruct(struct);\n }\n this.deferredHudRenders.clear();\n });\n\n this.addWindowEventListener(EVENTS.CLEAR_STRUCT_TILE, (event) => {\n if (event.mapId === this.mapId) {\n this.clearTile(event.tileType, event.ambit, event.slot, event.playerId);\n }\n });\n\n // Hide the HUD while animations are playing for the tile and show HUD after they're finished\n this.addWindowEventListener(EVENTS.ANIMATION, (event) => {\n if (event.mapId && event.mapId !== this.mapId) {\n return;\n }\n const tile = document.querySelector(`#${this.mapId} .map-struct-hud-layer-tile[data-struct-id=\"${event.structId}\"]`);\n if (tile) {\n tile.classList.add('invisible');\n }\n });\n this.addWindowEventListener(EVENTS.ANIMATION_END, (event) => {\n if (event.mapId && event.mapId !== this.mapId) {\n return;\n }\n const tile = document.querySelector(`#${this.mapId} .map-struct-hud-layer-tile[data-struct-id=\"${event.structId}\"]`);\n if (!tile) {\n return;\n }\n\n // When the animation carries a partial health value (e.g. from a multi-source\n // attack sequence), re-render the HUD content at that health before revealing\n // it. Without this, gameState already holds the final post-attack health, so\n // the HUD would jump to the final state after the first counter animation.\n if (event.healthAfter !== null && event.healthAfter !== undefined) {\n const struct = this.structManager.getStructById(event.structId);\n if (struct) {\n this.renderStructHUD(tile, struct, event.healthAfter);\n }\n }\n\n tile.classList.remove('invisible');\n });\n }\n}\n","import {EVENTS} from \"../../../constants/Events\";\nimport {StructStillBuilder} from \"../../../builders/StructStillBuilder\";\nimport {Player} from \"../../../models/Player\";\nimport {Struct} from \"../../../models/Struct\";\nimport {GenericMapLayerComponent} from \"./GenericMapLayerComponent\";\nimport {PLAYER_TYPES} from \"../../../constants/PlayerTypes\";\nimport {AmbitUtil} from \"../../../util/AmbitUtil\";\nimport {MapStructViewerComponent} from \"../MapStructViewerComponent\";\n\n\nexport class MapStructLayerComponent extends GenericMapLayerComponent {\n\n /**\n * @param {GameState} gameState\n * @param {StructManager} structManager\n * @param {string[]} mapColBreakdown\n * @param {Planet|null} planet\n * @param {Player|null} defender\n * @param {Player|null} attacker\n * @param {Fleet|null} defenderFleet\n * @param {Fleet|null} attackerFleet\n * @param {string} containerId - The ID of the DOM container element for this struct layer\n * @param {string} mapId\n */\n constructor(\n gameState,\n structManager,\n mapColBreakdown,\n planet,\n defender,\n attacker,\n defenderFleet,\n attackerFleet,\n containerId = \"\",\n mapId = \"\"\n ) {\n super(\n gameState,\n 'map-struct-layer-row',\n 'map-struct-layer-tile',\n structManager,\n mapColBreakdown,\n planet,\n defender,\n attacker,\n defenderFleet,\n attackerFleet,\n containerId,\n mapId\n );\n\n this.structStillBuilder = new StructStillBuilder(this.gameState);\n this.ambitUtil = new AmbitUtil();\n\n /** @type {Object} */\n this.mapStructViewers = {};\n\n /** @type {Array<{event: string, handler: EventListener}>} */\n this.windowEventHandlers = [];\n }\n\n /**\n * @return {string}\n */\n renderDeploymentIndicatorHTML() {\n return `\n
\n \"Deployment\n
\n `;\n }\n\n /**\n * Render the deployment indicator over a particular tile.\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n */\n renderDeploymentIndicator(tileType, ambit, slot, playerId) {\n const selector = this.buildTileSelector(tileType, ambit, slot, playerId);\n const container = document.getElementById(this.containerId);\n const tileElement = container.querySelector(selector);\n tileElement.innerHTML = this.renderDeploymentIndicatorHTML();\n }\n\n /**\n * Destroy and forget the viewer associated with `structId` (if any). This\n * releases the underlying lottie players so their frame caches, image\n * bitmaps, DOM listeners, and SVG renderers can be garbage collected.\n *\n * @param {string} structId\n */\n destroyMapStructViewer(structId) {\n if (structId && this.mapStructViewers[structId]) {\n this.mapStructViewers[structId].destroy();\n delete this.mapStructViewers[structId];\n }\n }\n\n /**\n * Render a `MapStructViewerComponent` into a tile element and initialize\n * its lottie players, optionally autoplaying a given animation.\n *\n * Shared by `renderStruct` (the on-map struct layer) and by the picture-in-\n * picture component (whose internal struct slot also mounts a viewer).\n * Centralizing it ensures any future change to the mount + init lifecycle\n * only needs to happen in one place.\n *\n * @param {HTMLElement} tileElement\n * @param {MapStructViewerComponent} viewer\n * @param {AnimationEvent|null} animationToAutoplay\n */\n static mountStructViewerInTile(tileElement, viewer, animationToAutoplay = null) {\n tileElement.innerHTML = viewer.renderHTML();\n if (animationToAutoplay) {\n viewer.init(\n animationToAutoplay.animationNames,\n animationToAutoplay.showStructStillDuringAnimation,\n animationToAutoplay.showStructStillAfterAnimation,\n animationToAutoplay.options\n );\n } else {\n viewer.init();\n }\n }\n\n /**\n * @param {HTMLElement} tileElement\n * @param {Struct} struct\n * @param {AnimationEvent} animationToAutoplay the animation to autoplay once the struct is rendered and ready to play animations\n */\n renderStruct(tileElement, struct, animationToAutoplay = null) {\n if (!struct) {\n\n const oldStructId = tileElement.getAttribute('data-struct-id');\n this.destroyMapStructViewer(oldStructId);\n tileElement.innerHTML = '';\n if (oldStructId) {\n tileElement.setAttribute('data-struct-id', '');\n }\n\n } else if (!struct.isBuilt()) {\n\n // Defensive: if the tile previously held a built struct (whose viewer\n // we own), tear it down before the deployment-indicator overwrite so\n // its lottie players don't leak.\n const oldStructId = tileElement.getAttribute('data-struct-id');\n if (oldStructId && oldStructId !== struct.id) {\n this.destroyMapStructViewer(oldStructId);\n }\n tileElement.innerHTML = this.renderDeploymentIndicatorHTML();\n tileElement.setAttribute('data-struct-id', struct.id);\n\n } else {\n\n // Tear down any prior viewer at this key (same struct re-rendering on a\n // status/build/move event) before we overwrite the reference, otherwise\n // lottie-web's internal registry keeps every previously-played\n // animation alive for the lifetime of the page.\n this.destroyMapStructViewer(struct.id);\n\n this.mapStructViewers[struct.id] = new MapStructViewerComponent(\n this.gameState,\n this.structManager,\n struct.id,\n struct.type,\n this.mapId\n );\n MapStructLayerComponent.mountStructViewerInTile(\n tileElement,\n this.mapStructViewers[struct.id],\n animationToAutoplay\n );\n tileElement.setAttribute('data-struct-id', struct.id);\n }\n }\n\n /**\n * @param {HTMLElement} tileElement\n */\n renderStructFromTileElement(tileElement) {\n const renderParams = this.buildMapStructTilRenderParamsFromTileElement(tileElement);\n if (renderParams) {\n this.renderStruct(renderParams.tileElement, renderParams.struct);\n }\n }\n\n /**\n * @param {Struct} struct\n * @param {AnimationEvent} animationToAutoplay the animation to autoplay once the struct is rendered and ready to play animations\n */\n renderStructFromStruct(struct, animationToAutoplay = null) {\n const renderParams = this.buildMapStructTilRenderParamsFromStruct(struct);\n if (renderParams) {\n this.renderStruct(renderParams.tileElement, renderParams.struct, animationToAutoplay);\n }\n }\n\n /**\n * Sync all struct tiles in the container by looking up structs for each tile\n */\n renderAllStructs() {\n const container = document.getElementById(this.containerId);\n const tiles = container.querySelectorAll('.map-struct-layer-tile');\n tiles.forEach(tileElement => this.renderStructFromTileElement(tileElement));\n }\n\n /**\n * Mark enemy structs as invalid selections when entering defend mode.\n */\n showDefendTargets() {\n const container = document.getElementById(this.containerId);\n const playerId = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id;\n const tiles = container.querySelectorAll(`.map-struct-layer-tile[data-side=\"right\"][data-player-id^=\"1\"]:not([data-player-id=\"${playerId}\"])`);\n tiles.forEach(tile => {\n tile.classList.add('mod-invalid-selection');\n });\n }\n\n /**\n * Clear all defend target indicators.\n */\n clearDefendTargets() {\n const container = document.getElementById(this.containerId);\n const tiles = container.querySelectorAll('.map-struct-layer-tile.mod-invalid-selection');\n tiles.forEach(tile => {\n tile.classList.remove('mod-invalid-selection');\n });\n }\n\n /**\n * Mark enemy structs as invalid selections when entering attack mode\n * if their operating ambit does not fall within the weapon's ambit array.\n *\n * @param {string[]} weaponAmbitsArray - Valid target ambits for the weapon (e.g. [\"space\", \"air\"])\n */\n showAttackTargets(weaponAmbitsArray) {\n const container = document.getElementById(this.containerId);\n const attackingPlayerId = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id;\n const attackingStruct = this.gameState.actionBarLock.getActionSourceStruct();\n const tiles = container.querySelectorAll(`.map-struct-layer-tile[data-struct-id^=\"5\"]`);\n\n tiles.forEach(tile => {\n const ambit = tile.getAttribute('data-ambit');\n const playerId = tile.getAttribute('data-player-id');\n const structId = tile.getAttribute('data-struct-id');\n\n // Mark as invalid if the struct's operating ambit is not in the weapon's ambit array\n // or the struct belongs to the player except if it's the attacking struct\n if (\n attackingStruct.id !== structId\n && (\n attackingPlayerId === playerId\n || !this.ambitUtil.contains(weaponAmbitsArray, ambit, attackingStruct.operating_ambit)\n )\n ) {\n tile.classList.add('mod-invalid-selection');\n }\n });\n }\n\n /**\n * Clear all attack target indicators.\n */\n clearAttackTargets() {\n const container = document.getElementById(this.containerId);\n const tiles = container.querySelectorAll('.map-struct-layer-tile.mod-invalid-selection');\n tiles.forEach(tile => {\n tile.classList.remove('mod-invalid-selection');\n });\n }\n\n /**\n * Register a window event listener and remember it so it can be removed in destroy().\n *\n * @param {string} event\n * @param {EventListener} handler\n */\n addWindowEventListener(event, handler) {\n window.addEventListener(event, handler);\n this.windowEventHandlers.push({event, handler});\n }\n\n /**\n * Remove all window event listeners registered by this component, destroy\n * every owned struct viewer (releasing its lottie players), and clear\n * viewer references.\n */\n destroy() {\n for (let i = 0; i < this.windowEventHandlers.length; i++) {\n const {event, handler} = this.windowEventHandlers[i];\n window.removeEventListener(event, handler);\n }\n this.windowEventHandlers = [];\n\n for (const structId in this.mapStructViewers) {\n if (Object.prototype.hasOwnProperty.call(this.mapStructViewers, structId)) {\n this.mapStructViewers[structId].destroy();\n }\n }\n this.mapStructViewers = {};\n }\n\n /**\n * Initialize page code: populate structs and set up event listeners\n */\n initPageCode() {\n // Populate initial structs\n this.renderAllStructs();\n\n this.addWindowEventListener(EVENTS.RENDER_ALL_STRUCTS, (event) => {\n if (event.mapId === this.mapId) {\n this.renderAllStructs();\n }\n });\n\n this.addWindowEventListener(EVENTS.ANIMATION, (event) => {\n if (event.mapId && event.mapId !== this.mapId) {\n return;\n }\n if (this.mapStructViewers[event.structId]) {\n this.mapStructViewers[event.structId].play(\n event.animationNames,\n event.showStructStillDuringAnimation,\n event.showStructStillAfterAnimation,\n event.options\n );\n }\n });\n\n this.addWindowEventListener(EVENTS.RENDER_STRUCT, (event) => {\n if (event.mapId === this.mapId) {\n this.renderStructFromStruct(event.struct, event.animationToAutoplay);\n }\n });\n\n this.addWindowEventListener(EVENTS.RENDER_DEPLOYMENT_INDICATOR, (event) => {\n if (event.mapId === this.mapId) {\n this.renderDeploymentIndicator(event.tileType, event.ambit, event.slot, event.playerId);\n }\n });\n\n this.addWindowEventListener(EVENTS.CLEAR_STRUCT_TILE, (event) => {\n if (event.mapId === this.mapId) {\n this.clearTile(event.tileType, event.ambit, event.slot, event.playerId);\n }\n });\n\n this.addWindowEventListener(EVENTS.SHOW_DEFEND_TARGETS, (event) => {\n if (event.mapId === this.mapId) {\n this.showDefendTargets();\n }\n });\n\n this.addWindowEventListener(EVENTS.CLEAR_DEFEND_TARGETS, (event) => {\n if (event.mapId === this.mapId) {\n this.clearDefendTargets();\n }\n });\n\n this.addWindowEventListener(EVENTS.SHOW_ATTACK_TARGETS, (event) => {\n if (event.mapId === this.mapId) {\n this.showAttackTargets(event.weaponAmbitsArray);\n }\n });\n\n this.addWindowEventListener(EVENTS.CLEAR_ATTACK_TARGETS, (event) => {\n if (event.mapId === this.mapId) {\n this.clearAttackTargets();\n }\n });\n }\n}\n","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\n\n/**\n * Component for rendering the terrain tiles that make up an ambit, excluding transitions.\n */\nexport class MapTerrainAmbitComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {TileClassNameUtil} tileClassNameUtil\n * @param {string} ambit\n * @param {int} mapColCount\n * @param {int} rowsPerAmbit\n */\n constructor(\n gameState,\n tileClassNameUtil,\n ambit,\n mapColCount,\n rowsPerAmbit\n ) {\n super(gameState);\n this.tileClassNameUtil = tileClassNameUtil;\n this.ambit = ambit;\n this.mapColCount = mapColCount;\n this.rowsPerAmbit = rowsPerAmbit;\n }\n\n /**\n * Converts a tile row index to a vertical position.\n *\n * @param {int} rowIndex\n *\n * @return {string} top|middle|bottom\n */\n rowIndexToVerticalPos(rowIndex) {\n let verticalPos = 'bottom';\n if (rowIndex === 0) {\n verticalPos = 'top';\n } else if (rowIndex > 0 && rowIndex < this.rowsPerAmbit - 1) {\n verticalPos = 'middle';\n }\n return verticalPos;\n }\n\n /**\n * Converts a tile column index to a horizontal position.\n *\n * @param {int} colIndex\n *\n * @return {string} left|middle|right\n */\n colIndexToHorizontalPos(colIndex) {\n let horizontalPos = 'right';\n if (colIndex === 0) {\n horizontalPos = 'left';\n } else if (colIndex > 0 && colIndex < this.mapColCount - 1) {\n horizontalPos = 'middle';\n }\n return horizontalPos;\n }\n\n /**\n * Renders an individual terrain tile.\n *\n * @param {string} ambit\n * @param {string} verticalPos\n * @param {string} horizontalPos\n *\n * @return {string} html\n */\n renderTile(ambit, verticalPos, horizontalPos) {\n const tileClassName = this.tileClassNameUtil.getTileClassName(ambit, verticalPos, horizontalPos);\n return `
`;\n }\n\n /**\n * Render the terrain tiles that make up the ambit.\n *\n * @return {string} html\n */\n renderHTML() {\n let html = `
`;\n\n for (let rowIndex = 0; rowIndex < this.rowsPerAmbit; rowIndex++) {\n\n const verticalPos = this.rowIndexToVerticalPos(rowIndex);\n html += `
`;\n\n for (let colIndex = 0; colIndex < this.mapColCount; colIndex++) {\n\n const horizontalPos = this.colIndexToHorizontalPos(colIndex);\n html += this.renderTile(this.ambit, verticalPos, horizontalPos);\n\n }\n\n html += `
`;\n }\n\n html += `
`;\n\n return html;\n }\n}","import {\n MAP_COL_COUNT_PROPS,\n MAP_COL_ORDER,\n MAP_DEFAULT_COMMAND_COL_COUNT,\n MAP_DEFAULT_DIVIDER_COL_COUNT,\n MAP_DEFAULT_FLEET_COL_COUNT,\n MAP_DEFAULT_PLANETARY_COL_COUNT, MAP_TILE_ROWS_PER_AMBIT\n} from \"../../../constants/MapConstants\";\nimport {MapTerrainAmbitComponent} from \"./MapTerrainAmbitComponent\";\nimport {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\n\n/**\n * The terrain part of the map including ambit transitions.\n */\nexport class MapTerrainComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {MapTransitionComponentBuilder} transitionBuilder\n * @param {TileClassNameUtil} tileClassNameUtil\n * @param {Planet} planet\n */\n constructor(\n gameState,\n transitionBuilder,\n tileClassNameUtil,\n planet\n ) {\n super(gameState);\n this.transitionBuilder = transitionBuilder;\n this.tileClassNameUtil = tileClassNameUtil;\n\n this.planet = planet;\n\n this.defenderCommandColCount = MAP_DEFAULT_COMMAND_COL_COUNT;\n this.defenderPlanetaryColCount = MAP_DEFAULT_PLANETARY_COL_COUNT;\n this.defenderFleetColCount = MAP_DEFAULT_FLEET_COL_COUNT;\n this.dividerColCount = MAP_DEFAULT_DIVIDER_COL_COUNT;\n this.attackerFleetColCount = MAP_DEFAULT_FLEET_COL_COUNT;\n this.attackerCommandColCount = MAP_DEFAULT_COMMAND_COL_COUNT;\n\n this.mapColCount = 0;\n }\n\n /**\n * Determines how many tile columns are needed based on the number of slots.\n *\n * @param {Planet|Fleet} slotsPerAmbit Planet or Fleet\n * @param {int} maxRows\n *\n * @return {number}\n */\n calcColsNeededBySlots(slotsPerAmbit, maxRows = MAP_TILE_ROWS_PER_AMBIT) {\n return Math.ceil(\n Math.max(\n slotsPerAmbit.space_slots,\n slotsPerAmbit.air_slots,\n slotsPerAmbit.land_slots,\n slotsPerAmbit.water_slots\n ) / maxRows\n );\n }\n\n /**\n * Count the number of tile columns in the map.\n *\n * @return {number}\n */\n countMapCols() {\n return MAP_COL_ORDER.reduce((sum, col) =>\n sum + this[MAP_COL_COUNT_PROPS[col]]\n , 0);\n }\n\n /**\n * Calculate and store the number of each type of tile column.\n */\n init() {\n this.defenderPlanetaryColCount = Math.max(this.calcColsNeededBySlots(this.planet), MAP_DEFAULT_PLANETARY_COL_COUNT);\n this.mapColCount = this.countMapCols();\n }\n\n /**\n * Determine the type of each column.\n *\n * @param {boolean} planetOwnerView if the viewing player is not the planet owner, the column order needs to be reverse\n *\n * @return {string[]} the type of each column\n */\n getMapColBreakdown(planetOwnerView = true) {\n let breakdown = [];\n\n for (let i = 0; i < MAP_COL_ORDER.length; i++) {\n\n const columnType = MAP_COL_ORDER[i];\n\n for (let j = 0; j < this[MAP_COL_COUNT_PROPS[columnType]]; j++) {\n breakdown.push(columnType);\n }\n\n }\n\n if (!planetOwnerView) {\n breakdown.reverse();\n }\n\n return breakdown;\n }\n\n /**\n * Renders the full terrain layer of the map.\n *\n * @return {string} html\n */\n renderHTML() {\n let html = '';\n let lastAmbit = '';\n const ambits = this.planet.getAmbits();\n\n for (let i = 0; i < ambits.length; i++) {\n\n let transition = this.transitionBuilder.make(this.mapColCount, lastAmbit, ambits[i]);\n html += transition.renderHTML();\n\n html += (new MapTerrainAmbitComponent(\n gameState,\n this.tileClassNameUtil,\n ambits[i],\n this.countMapCols(),\n MAP_TILE_ROWS_PER_AMBIT\n )).renderHTML();\n\n if (i === ambits.length - 1) {\n transition = this.transitionBuilder.make(this.mapColCount, ambits[i]);\n html += transition.renderHTML();\n }\n\n lastAmbit = ambits[i];\n }\n\n return html;\n }\n}","import {PositionDTO} from \"../../../dtos/PositionDTO\";\nimport {\n MAP_COL_ATTACKER_COMMAND, MAP_COL_DEFENDER_COMMAND, MAP_COL_DEFENDER_PLANETARY,\n MAP_TILE_ROWS_PER_AMBIT,\n MAP_TILE_SIZE,\n MAP_TRANSITION_HEIGHT\n} from \"../../../constants/MapConstants\";\nimport {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\n\n/**\n * An overlay to show obstructions and other indicators on top of map tiles.\n */\nexport class MapTileMarkersComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {TileClassNameUtil} tileClassNameUtil\n * @param {string[]} mapColBreakdown\n * @param {Planet} planet\n */\n constructor(\n gameState,\n tileClassNameUtil,\n mapColBreakdown,\n planet\n ) {\n super(gameState);\n this.tileClassNameUtil = tileClassNameUtil;\n this.mapColBreakdown = mapColBreakdown;\n this.planet = planet;\n }\n\n /**\n * Converts a relative ambit tile position (such as Space, column 2, row 1)\n * to an x, y, z pixel coordinate with respect to the overall map.\n *\n * @param {string} ambit\n * @param {int} ambitRow\n * @param {int} col\n *\n * @return {PositionDTO} pos\n */\n convertAmbitPosToPixelPos(ambit, ambitRow, col) {\n\n const pos = new PositionDTO();\n\n // Calculate x pixel position\n pos.x = col * MAP_TILE_SIZE;\n\n // Calculate y pixel position\n const planetAmbits = this.planet.getAmbits();\n const ambitIndex = planetAmbits.indexOf(ambit);\n\n let lastAmbit = '';\n for(let i = 0; i <= ambitIndex; i++) {\n const currentAmbit = planetAmbits[i];\n\n // Transition height\n pos.y += MAP_TRANSITION_HEIGHT;\n\n // Ambit height\n if (ambit !== currentAmbit) {\n pos.y += MAP_TILE_ROWS_PER_AMBIT * MAP_TILE_SIZE;\n }\n\n lastAmbit = currentAmbit;\n }\n\n pos.y += ambitRow * MAP_TILE_SIZE;\n\n return pos;\n }\n\n /**\n * Renders the tile marker overlay\n * determining where blocked and beacon markers should go based on\n * the map column breakdown and planetary slots.\n *\n * @return {string} html\n */\n renderHTML() {\n const markers = [];\n const planetAmbits = this.planet.getAmbits();\n\n for (const ambit of planetAmbits) {\n const slotTracker = this.createSlotTracker(ambit);\n\n for (let r = 0; r < MAP_TILE_ROWS_PER_AMBIT; r++) {\n for (const c of this.getColumnIndices()) {\n const marker = this.processCell(ambit, r, c, slotTracker);\n if (marker) {\n markers.push(marker);\n }\n }\n }\n }\n\n return markers.join('');\n }\n\n /**\n * Creates a slot tracker object for an ambit with consumption logic.\n *\n * @param {string} ambit\n * @return {Object} slotTracker\n */\n createSlotTracker(ambit) {\n return {\n [MAP_COL_ATTACKER_COMMAND]: 1,\n [MAP_COL_DEFENDER_COMMAND]: 1,\n [MAP_COL_DEFENDER_PLANETARY]: this.planet.getPlanetarySlotsByAmbit(ambit, this.gameState.structTypes),\n };\n }\n\n /**\n * Returns column indices in the correct order based on perspective.\n * If the view is from the attacker's perspective, the blockers and beacons should be swapped.\n *\n * @return {number[]} indices\n */\n getColumnIndices() {\n const isAttackerPerspective = this.mapColBreakdown[0] === MAP_COL_ATTACKER_COMMAND;\n const indices = [...Array(this.mapColBreakdown.length).keys()];\n return isAttackerPerspective ? indices : indices.reverse();\n }\n\n /**\n * Processes a single cell and returns marker HTML or null.\n *\n * @param {string} ambit\n * @param {int} row\n * @param {int} col\n * @param {Object} slotTracker\n * @return {string|null} marker HTML or null\n */\n processCell(ambit, row, col, slotTracker) {\n const colType = this.mapColBreakdown[col];\n\n if (!(colType in slotTracker)) {\n return null;\n }\n\n const hasAvailableSlot = slotTracker[colType] > 0;\n\n if (hasAvailableSlot) {\n slotTracker[colType]--;\n\n // Only planetary tiles show beacons for available slots\n if (colType !== MAP_COL_DEFENDER_PLANETARY) {\n return null;\n }\n }\n\n return this.renderMarker(ambit, row, col, hasAvailableSlot);\n }\n\n /**\n * Renders a single marker div.\n *\n * @param {string} ambit\n * @param {int} row\n * @param {int} col\n * @param {boolean} isBeacon\n * @return {string} marker HTML\n */\n renderMarker(ambit, row, col, isBeacon = false) {\n const pos = this.convertAmbitPosToPixelPos(ambit, row, col);\n const className = isBeacon\n ? this.tileClassNameUtil.getTileBeaconClassName(ambit)\n : this.tileClassNameUtil.getTileBlockedClassName(ambit);\n\n return `
`;\n }\n\n /**\n * Resolve the marker HTML (or null) for a single ambit cell.\n *\n * The marker decision in `processCell` depends on a slot tracker that is\n * consumed left-to-right (or right-to-left) and top-to-bottom across the\n * ambit, so determining the marker for one cell requires replaying that\n * walk from (0, 0) up to and including the target cell. This method\n * encapsulates that replay using `createSlotTracker`, `getColumnIndices`,\n * and `processCell` directly so callers (e.g. the picture-in-picture\n * component) don't duplicate marker logic.\n *\n * @param {string} targetAmbit\n * @param {int} targetRow\n * @param {int} targetCol\n * @return {string|null} marker HTML for the target cell, or null\n */\n getCellMarker(targetAmbit, targetRow, targetCol) {\n const slotTracker = this.createSlotTracker(targetAmbit);\n let cellMarker = null;\n\n for (let r = 0; r < MAP_TILE_ROWS_PER_AMBIT; r++) {\n for (const c of this.getColumnIndices()) {\n const result = this.processCell(targetAmbit, r, c, slotTracker);\n if (r === targetRow && c === targetCol) {\n cellMarker = result;\n }\n }\n }\n\n return cellMarker;\n }\n}\n","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\nimport {\n MAP_COL_ATTACKER_COMMAND, MAP_COL_ATTACKER_FLEET, MAP_COL_DEFENDER_COMMAND, MAP_COL_DEFENDER_FLEET,\n MAP_COL_DEFENDER_PLANETARY, MAP_COL_DIVIDER, MAP_DEFAULT_FLEET_COL_COUNT,\n MAP_TILE_ROWS_PER_AMBIT, MAP_TILE_TYPES, MAP_TRANSITION_TILE_LABELS,\n MAP_DEFAULT_COMMAND_COL_COUNT\n} from \"../../../constants/MapConstants\";\nimport {AMBITS} from \"../../../constants/Ambits\";\nimport {EVENTS} from \"../../../constants/Events\";\nimport {HUDViewModel} from \"../../HUDViewModel\";\nimport {Planet} from \"../../../models/Planet\";\nimport {Player} from \"../../../models/Player\";\nimport {STRUCT_ACTIONS, STRUCT_WEAPON_SYSTEM} from \"../../../constants/StructConstants\";\nimport {ClearMoveTargetsEvent} from \"../../../events/ClearMoveTargetsEvent\";\nimport {ClearDefendTargetsEvent} from \"../../../events/ClearDefendTargetsEvent\";\nimport {ClearAttackTargetsEvent} from \"../../../events/ClearAttackTargetsEvent\";\nimport {PLAYER_TYPES} from \"../../../constants/PlayerTypes\";\nimport {AmbitUtil} from \"../../../util/AmbitUtil\";\n\n\nexport class MapTileSelectionComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {SigningClientManager} signingClientManager\n * @param {StructManager} structManager\n * @param {string[]} mapColBreakdown\n * @param {Planet|null} planet\n * @param {Player|null} defender\n * @param {Player|null} attacker\n * @param {Fleet|null} defenderFleet\n * @param {Fleet|null} attackerFleet\n * @param {string} containerId - The ID of the DOM container element for this tile selection layer\n * @param {string} mapId\n */\n constructor(\n gameState,\n signingClientManager,\n structManager,\n mapColBreakdown,\n planet,\n defender,\n attacker,\n defenderFleet,\n attackerFleet,\n containerId = \"\",\n mapId = \"\"\n ) {\n super(gameState);\n this.ambitUtil = new AmbitUtil();\n this.signingClientManager = signingClientManager;\n this.structManager = structManager;\n this.mapColBreakdown = mapColBreakdown;\n this.dividerIndex = this.mapColBreakdown.lastIndexOf(MAP_COL_DIVIDER);\n this.containerId = containerId;\n this.mapId = mapId;\n\n /** @type {Planet} */\n this.planet = planet;\n\n /** @type {Player} */\n this.defender = defender;\n\n /** @type {Player} */\n this.attacker = attacker;\n\n /** @type {Fleet} */\n this.defenderFleet = defenderFleet;\n\n /** @type {Fleet} */\n this.attackerFleet = attackerFleet;\n }\n\n /**\n * @param {number} col\n * @return {string}\n */\n getTileSide(col) {\n if (col < this.dividerIndex) {\n return 'left';\n } else if (col === this.dividerIndex) {\n return '';\n } else {\n return 'right';\n }\n }\n\n /**\n * @param {string} tileType the tile type. See MAP_TILE_TYPES constant array.\n * @param {string} side the side of the map the tile is on\n * @param {string} playerId the ID of the player that owns the tile or empty if no one does such as a transition tile.\n * @param {string} ambit the ambit the tile is in or empty if it's a transition tile.\n * @param {string|number} slot the planetary or fleet slot number. Empty if it's not a command, planetary, fleet or command tile.\n * @param {string} structId the ID of the struct occupying the tile or empty if the tile is not occupied.\n * @param {string} tileLabel a custom tile label that is displayed in the action bar. Used for transition tiles.\n * @return {string}\n */\n renderSelectionTileHTML(\n tileType,\n side = \"\",\n playerId = \"\",\n ambit = \"\",\n slot = \"\",\n structId = \"\",\n tileLabel = \"\"\n ) {\n return `\n \n \n `;\n }\n\n /**\n * @param {string} mapColType\n * @param {string} tileLabel the label for the fog of war tile. Should be the current ambit for\n * ambit rows or the transition tile label for transition rows.\n * @return {string}\n */\n renderFogOfWarTileHTML(mapColType, tileLabel = '') {\n if (this.attacker) {\n return '';\n }\n\n const mapColTypeLastIndex = this.mapColBreakdown.lastIndexOf(mapColType);\n const dividerIndex = this.mapColBreakdown.lastIndexOf(MAP_COL_DIVIDER);\n const attackerSide = (this.mapColBreakdown[0] === MAP_COL_ATTACKER_COMMAND) ? 'LEFT' : 'RIGHT';\n\n if (dividerIndex === -1 || mapColTypeLastIndex === -1) {\n throw new Error('Divider or map col type not found');\n }\n\n if (\n mapColType === MAP_COL_DIVIDER\n || (attackerSide === 'RIGHT' && dividerIndex < mapColTypeLastIndex)\n || (attackerSide === 'LEFT' && mapColTypeLastIndex < dividerIndex)\n ) {\n return this.renderSelectionTileHTML(\n MAP_TILE_TYPES.FOG_OF_WAR,\n attackerSide.toLowerCase(),\n '',\n '',\n '',\n '',\n tileLabel\n );\n }\n\n return '';\n }\n\n /**\n * Determine what the transition tile's label should be based on the current ambit and previous ambit.\n *\n * @param {string} topAmbit\n * @param {string} bottomAmbit\n * @param {boolean} isFinalTransition\n * @return {string}\n */\n getTransitionTileLabel(\n topAmbit,\n bottomAmbit,\n isFinalTransition = false\n ) {\n let label;\n\n if (isFinalTransition) {\n label = bottomAmbit.toUpperCase();\n } else if (topAmbit === AMBITS.SPACE && bottomAmbit === AMBITS.AIR) {\n label = MAP_TRANSITION_TILE_LABELS.ATMOSPHERE;\n } else if (\n (topAmbit === AMBITS.SPACE || topAmbit === AMBITS.AIR)\n && (bottomAmbit === AMBITS.LAND || bottomAmbit === AMBITS.WATER)\n ) {\n label = MAP_TRANSITION_TILE_LABELS.HORIZON;\n } else if (topAmbit === AMBITS.LAND && bottomAmbit === AMBITS.WATER) {\n label = MAP_TRANSITION_TILE_LABELS.SHORE;\n } else {\n label = bottomAmbit.toUpperCase();\n }\n\n return label;\n }\n\n /**\n * @param {string} topAmbit the ambit that is on top in the transition\n * @param {string} bottomAmbit the ambit that is on the bottom in the transition\n * @param {boolean} isInFinalTransitionPosition is this for the final transition of the map\n * @param {number|null} totalAmbits the total number of ambits in the ambit\n * @param {number|null} bottomAmbitIndex the ambit index of the bottom ambit\n * @return {string} the row of selection tiles for the whole transition row\n */\n renderTransitionRowHTML(\n topAmbit,\n bottomAmbit,\n isInFinalTransitionPosition = false,\n totalAmbits = null,\n bottomAmbitIndex= null\n ) {\n const isFinalTransition = isInFinalTransitionPosition && (bottomAmbitIndex === (totalAmbits - 1));\n\n if (isInFinalTransitionPosition && !isFinalTransition) {\n return '';\n }\n\n let tiles = '';\n const tileLabel = this.getTransitionTileLabel(topAmbit, bottomAmbit, isFinalTransition);\n\n for (let c = 0; c < this.mapColBreakdown.length; c++) {\n tiles += this.renderFogOfWarTileHTML(this.mapColBreakdown[c], tileLabel)\n || this.renderSelectionTileHTML(\n MAP_TILE_TYPES.TRANSITION,\n this.getTileSide(c),\n '',\n '',\n '',\n '',\n tileLabel\n );\n }\n\n return `\n
\n ${tiles}\n
\n `;\n }\n\n /**\n * Creates a command slot tracker object for an ambit.\n * Each command column type gets 1 usable slot per ambit.\n *\n * @return {Object} commandSlotTracker\n */\n createCommandSlotTracker() {\n return {\n [MAP_COL_DEFENDER_COMMAND]: MAP_DEFAULT_COMMAND_COL_COUNT,\n [MAP_COL_ATTACKER_COMMAND]: MAP_DEFAULT_COMMAND_COL_COUNT,\n };\n }\n\n /**\n * @param {string} mapColType\n * @param {string} side\n * @param {string} ambit\n * @param {Object} commandSlotTracker\n * @return {string}\n */\n renderCommandTileHTML(\n mapColType,\n side,\n ambit,\n commandSlotTracker\n ) {\n let playerId = '';\n let fleetId = '';\n let fleet = null;\n\n if (mapColType === MAP_COL_DEFENDER_COMMAND) {\n playerId = this.defender.id;\n fleetId = this.defender.fleet_id;\n fleet = this.defenderFleet;\n } else if (mapColType === MAP_COL_ATTACKER_COMMAND) {\n playerId = this.attacker.id;\n fleetId = this.attacker.fleet_id;\n fleet = this.attackerFleet;\n } else {\n return '';\n }\n\n // Check if there's an available command slot for this column type\n const hasAvailableSlot = commandSlotTracker[mapColType] > 0;\n\n if (hasAvailableSlot) {\n commandSlotTracker[mapColType]--;\n }\n\n const tileType = hasAvailableSlot\n ? MAP_TILE_TYPES.COMMAND\n : MAP_TILE_TYPES.COMMAND_BLOCKED;\n\n // Command structs are always slot 0\n const structId = hasAvailableSlot \n ? this.structManager.getStructIdByPositionAndPlayerId(\n playerId,\n 'fleet',\n fleetId,\n this.planet.id,\n ambit,\n 0,\n true,\n fleet\n )\n : '';\n\n return this.renderSelectionTileHTML(\n tileType,\n side,\n playerId,\n ambit,\n hasAvailableSlot ? 0 : '',\n structId\n );\n }\n\n /**\n * @param {string} mapColType\n * @param {string} side\n * @param {string} ambit\n * @param {string} slot\n * @return {string}\n */\n renderPlanetaryTileHTML(\n mapColType,\n side,\n ambit,\n slot\n ) {\n if (mapColType !== MAP_COL_DEFENDER_PLANETARY) {\n return '';\n }\n\n const tileType = (slot === '')\n ? MAP_TILE_TYPES.PLANETARY_BLOCKED\n : MAP_TILE_TYPES.PLANETARY_SLOT;\n\n const structId = slot !== '' \n ? this.structManager.getStructIdByPositionAndPlayerId(\n this.defender.id,\n 'planet',\n this.planet.id,\n this.planet.id,\n ambit,\n slot,\n false,\n this.defenderFleet\n )\n : '';\n\n return this.renderSelectionTileHTML(\n tileType,\n side,\n this.defender.id,\n ambit,\n slot,\n structId\n );\n }\n\n /**\n * @param {string} mapColType\n * @param {string} side\n * @param {string} ambit\n * @param {string} slot\n * @return {string}\n */\n renderDefenderFleetTileHTML(\n mapColType,\n side,\n ambit,\n slot\n ) {\n if (mapColType !== MAP_COL_DEFENDER_FLEET) {\n return '';\n }\n\n const structId = slot !== ''\n ? this.structManager.getStructIdByPositionAndPlayerId(\n this.defender.id,\n 'fleet',\n this.defender.fleet_id,\n this.planet.id,\n ambit,\n slot,\n false,\n this.defenderFleet\n )\n : '';\n\n return this.renderSelectionTileHTML(\n MAP_TILE_TYPES.FLEET,\n side,\n this.defender.id,\n ambit,\n slot,\n structId\n );\n }\n\n /**\n * @param {string} mapColType\n * @param {string} side\n * @param {string} ambit\n * @param {string} slot\n * @return {string}\n */\n renderAttackerFleetTileHTML(\n mapColType,\n side,\n ambit,\n slot\n ) {\n if (mapColType !== MAP_COL_ATTACKER_FLEET) {\n return '';\n }\n\n const structId = slot !== ''\n ? this.structManager.getStructIdByPositionAndPlayerId(\n this.attacker.id,\n 'fleet',\n this.attacker.fleet_id,\n this.planet.id,\n ambit,\n slot,\n false,\n this.attackerFleet\n )\n : '';\n\n return this.renderSelectionTileHTML(\n MAP_TILE_TYPES.FLEET,\n side,\n this.attacker.id,\n ambit,\n slot,\n structId\n );\n }\n\n /**\n * @param {string} mapColType\n * @param {string} ambit\n * @return {string}\n */\n renderDividerTileHTML(\n mapColType,\n ambit\n ) {\n if (mapColType !== MAP_COL_DIVIDER) {\n return '';\n }\n\n return this.renderSelectionTileHTML(\n MAP_TILE_TYPES.DIVIDER,\n '',\n '',\n ambit\n );\n }\n\n /**\n * @param {string} targetColType\n * @return {{first: null|number, last: null|number}}\n */\n findFirstAndLastOccurrencesOfColType(targetColType) {\n let firstOccurrence = null;\n let lastOccurrence = null;\n\n for(let i = 0; i < this.mapColBreakdown.length; i++) {\n\n if (this.mapColBreakdown[i] !== targetColType) {\n continue;\n }\n\n if (firstOccurrence === null) {\n firstOccurrence = i;\n }\n\n lastOccurrence = i;\n }\n\n return {\n first: firstOccurrence,\n last: lastOccurrence\n }\n\n }\n\n /**\n * @param {string} targetColType\n * @param {number} currentMapRowIndex\n * @param {number} currentMapColIndex\n * @param {number} totalSlots\n * @return {string}\n */\n calcSlotNumber(\n targetColType,\n currentMapRowIndex,\n currentMapColIndex,\n totalSlots\n ) {\n let targetColTypeOccurrences = this.findFirstAndLastOccurrencesOfColType(targetColType);\n\n const tilesOfTargetTypePerRow = (targetColTypeOccurrences.last - targetColTypeOccurrences.first) + 1;\n\n // Slot indexing from right to left\n const slotsToReserveThisRow = (targetColTypeOccurrences.last - currentMapColIndex);\n let slotNumber = slotsToReserveThisRow + currentMapRowIndex * tilesOfTargetTypePerRow;\n\n // Slot indexing from left to right\n if (this.mapColBreakdown[0] === MAP_COL_ATTACKER_COMMAND) {\n const slotsAssignedThisRow = currentMapColIndex - targetColTypeOccurrences.first;\n slotNumber = slotsAssignedThisRow + currentMapRowIndex * tilesOfTargetTypePerRow;\n }\n\n return (slotNumber >= totalSlots) ? '' : `${slotNumber}`;\n }\n\n /**\n * Add the relevant focus cursor to a selected tile.\n * Use this when you select a tile without an action engaged.\n *\n * @param {HTMLElement|object} tile\n */\n addFocusToSourceTile(tile) {\n document.querySelectorAll('a.map-tile-selection-tile.focus-source').forEach(focusedTile => {\n focusedTile.classList.remove('focus-source');\n focusedTile.classList.remove('focus-friendly');\n focusedTile.classList.remove('focus-neutral');\n focusedTile.classList.remove('focus-enemy');\n });\n\n tile.classList.add('focus-source');\n\n if (tile.dataset.side === 'left' && tile.dataset.playerId) {\n tile.classList.add('focus-friendly');\n } else if (tile.dataset.side === 'right' && tile.dataset.playerId) {\n tile.classList.add('focus-enemy');\n } else {\n tile.classList.add('focus-neutral');\n }\n }\n\n /**\n * Build CSS selector for finding a tile by position.\n *\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n * @return {string}\n */\n buildTileSelector(tileType, ambit, slot, playerId) {\n return `.map-tile-selection-tile[data-tile-type=\"${tileType}\"][data-ambit=\"${ambit}\"][data-slot=\"${slot}\"][data-player-id=\"${playerId}\"]`;\n }\n\n /**\n * Update a tile's struct ID attribute.\n *\n * @param {string} tileType\n * @param {string} ambit\n * @param {number} slot\n * @param {string} playerId\n * @param {string} structId\n */\n updateTileStructId(tileType, ambit, slot, playerId, structId) {\n const selector = this.buildTileSelector(tileType, ambit, slot, playerId);\n const tileElement = document.getElementById(this.containerId).querySelector(selector);\n if (tileElement) {\n tileElement.setAttribute('data-struct-id', structId);\n }\n }\n\n /**\n * Show move target indicators on valid empty command tiles.\n */\n showMoveTargets() {\n const container = document.getElementById(this.containerId);\n const playerId = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id;\n const structBeingMoved = this.gameState.actionBarLock.getActionSourceStruct();\n\n // Get all command tiles on the player's side (defender) that are empty\n const commandTiles = container.querySelectorAll(\n `.map-tile-selection-tile[data-tile-type=\"${MAP_TILE_TYPES.COMMAND}\"][data-player-id=\"${playerId}\"]`\n );\n\n commandTiles.forEach(tile => {\n const structId = tile.getAttribute('data-struct-id');\n const tileAmbit = tile.getAttribute('data-ambit');\n\n // Only show indicator on empty tiles in the same ambit (command structs move within ambit)\n // or empty tiles in any ambit if the struct can move across ambits\n const structType = this.gameState.structTypes.getStructTypeById(structBeingMoved.type);\n const possibleAmbits = structType.possible_ambit_array || [structBeingMoved.operating_ambit.toLowerCase()];\n\n if (!structId && possibleAmbits.includes(tileAmbit.toLowerCase())) {\n tile.classList.add('focus-move');\n }\n });\n }\n\n /**\n * Clear all move target indicators.\n */\n clearMoveTargets() {\n const container = document.getElementById(this.containerId);\n container.querySelectorAll('.map-tile-selection-tile.focus-move').forEach(tile => {\n tile.classList.remove('focus-move');\n });\n }\n\n /**\n * Handle a click on a defend target tile.\n *\n * @param {HTMLElement} tile - The tile that was clicked\n */\n async handleDefendTargetClick(tile) {\n const protectedStructId = tile.getAttribute('data-struct-id');\n if (!protectedStructId) {\n return;\n }\n\n // Lock the action bar until we hear the grass notification from the struct defend action\n this.gameState.actionBarLock.lock();\n\n // Clear defend target indicators\n window.dispatchEvent(new ClearDefendTargetsEvent(this.mapId));\n\n const defendingStruct = this.gameState.actionBarLock.getActionSourceStruct();\n\n // Send defend set message to chain\n await this.signingClientManager.queueMsgStructDefenseSet(\n defendingStruct.id,\n protectedStructId\n );\n }\n\n /**\n * Handle a click on a valid attack target tile.\n *\n * @param {HTMLElement} tile - The tile that was clicked\n * @param {string} currentAction - The current action (ATTACK_PRIMARY_WEAPON or ATTACK_SECONDARY_WEAPON)\n */\n async handleAttackTargetClick(tile, currentAction) {\n const targetStructId = tile.getAttribute('data-struct-id');\n if (!targetStructId) {\n return;\n }\n\n // Lock the action bar until we hear the grass notification from the struct attack action\n this.gameState.actionBarLock.lock();\n\n // Clear attack target indicators\n window.dispatchEvent(new ClearAttackTargetsEvent(this.mapId));\n\n const attackingStruct = this.gameState.actionBarLock.getActionSourceStruct();\n const weaponSystem = (currentAction === STRUCT_ACTIONS.ATTACK_PRIMARY_WEAPON)\n ? STRUCT_WEAPON_SYSTEM.PRIMARY_WEAPON\n : STRUCT_WEAPON_SYSTEM.SECONDARY_WEAPON;\n\n // Send attack message to chain\n await this.signingClientManager.queueMsgStructAttack(\n attackingStruct.id,\n [targetStructId],\n weaponSystem\n );\n }\n\n /**\n * Handle a click on a move target tile.\n *\n * @param {HTMLElement} tile - The tile that was clicked\n */\n async handleMoveTargetClick(tile) {\n // The lock the action bar until we hear the grass notification from the struct move action\n this.gameState.actionBarLock.lock();\n\n const ambit = tile.getAttribute('data-ambit');\n const slot = parseInt(tile.getAttribute('data-slot'), 10);\n const structBeingMoved = this.gameState.actionBarLock.getActionSourceStruct();\n\n // Send move message to chain\n await this.signingClientManager.queueMsgStructMove(\n structBeingMoved.id,\n structBeingMoved.location_type,\n ambit,\n slot\n );\n\n // Update focus to the new tile\n this.addFocusToSourceTile(tile);\n\n // Dispatch event to clear move targets on all maps\n window.dispatchEvent(new ClearMoveTargetsEvent(this.mapId));\n }\n\n initPageCode() {\n const container = document.getElementById(this.containerId);\n\n container.querySelectorAll('a.map-tile-selection-tile').forEach(tile => {\n tile.addEventListener('click', async (e) => {\n const currentAction = this.gameState.actionBarLock.getCurrentAction();\n\n // Check if we're in move mode and clicked on a valid move target\n if (currentAction === STRUCT_ACTIONS.MOVE && e.currentTarget.classList.contains('focus-move')) {\n await this.handleMoveTargetClick(e.currentTarget);\n return;\n }\n\n // If we're in move mode but clicked elsewhere, cancel the move\n if (currentAction === STRUCT_ACTIONS.MOVE) {\n this.clearMoveTargets();\n this.gameState.actionBarLock.clear(false);\n window.dispatchEvent(new ClearMoveTargetsEvent(this.mapId));\n }\n\n // Check if we're in attack mode (primary or secondary weapon)\n if (\n currentAction === STRUCT_ACTIONS.ATTACK_PRIMARY_WEAPON\n || currentAction === STRUCT_ACTIONS.ATTACK_SECONDARY_WEAPON\n ) {\n const targetStructId = e.currentTarget.getAttribute('data-struct-id');\n const targetPlayerId = e.currentTarget.getAttribute('data-player-id');\n const attackingStruct = this.gameState.actionBarLock.getActionSourceStruct();\n\n // Valid target: enemy struct whose ambit is within the weapon's ambit array\n const isEnemy = targetPlayerId\n && targetPlayerId !== this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id;\n\n if (targetStructId && isEnemy) {\n const targetStruct = this.structManager.getStructById(targetStructId);\n const attackerStructType = this.gameState.structTypes.getStructTypeById(attackingStruct.type);\n const weaponAmbitsArray = (currentAction === STRUCT_ACTIONS.ATTACK_PRIMARY_WEAPON)\n ? attackerStructType.primary_weapon_ambits_array\n : attackerStructType.secondary_weapon_ambits_array;\n\n if (\n targetStruct\n && this.ambitUtil.contains(weaponAmbitsArray, targetStruct.operating_ambit, attackingStruct.operating_ambit)\n ) {\n await this.handleAttackTargetClick(e.currentTarget, currentAction);\n return;\n }\n }\n\n // Invalid target or empty tile - cancel attack mode\n window.dispatchEvent(new ClearAttackTargetsEvent(this.mapId));\n this.gameState.actionBarLock.clear(false);\n }\n\n // Check if we're in defend mode\n if (currentAction === STRUCT_ACTIONS.DEFENSE_SET) {\n const structId = e.currentTarget.getAttribute('data-struct-id');\n const playerId = e.currentTarget.getAttribute('data-player-id');\n const defendingStruct = this.gameState.actionBarLock.getActionSourceStruct();\n\n // Check if clicked on a valid defend target (friendly struct, not the defending struct itself)\n const isValidTarget = structId \n && structId !== defendingStruct.id\n && playerId === this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id;\n\n if (isValidTarget) {\n await this.handleDefendTargetClick(e.currentTarget);\n return;\n }\n\n // Clicked elsewhere (invalid or empty tile), cancel the defense\n window.dispatchEvent(new ClearDefendTargetsEvent(this.mapId));\n this.gameState.actionBarLock.clear(false);\n }\n\n this.addFocusToSourceTile(e.currentTarget);\n HUDViewModel.showActionBar(e.currentTarget);\n console.log(e.currentTarget);\n });\n });\n\n // Listen for UPDATE_TILE_STRUCT_ID events\n window.addEventListener(EVENTS.UPDATE_TILE_STRUCT_ID, (event) => {\n if (event.mapId === this.mapId) {\n this.updateTileStructId(\n event.tileType,\n event.ambit,\n event.slot,\n event.playerId,\n event.structId\n );\n }\n });\n\n // Listen for SHOW_MOVE_TARGETS events\n window.addEventListener(EVENTS.SHOW_MOVE_TARGETS, (event) => {\n if (event.mapId === this.mapId) {\n this.showMoveTargets();\n }\n });\n\n // Listen for CLEAR_MOVE_TARGETS events\n window.addEventListener(EVENTS.CLEAR_MOVE_TARGETS, (event) => {\n if (event.mapId === this.mapId) {\n this.clearMoveTargets();\n }\n });\n }\n\n /**\n * @return {string}\n */\n renderHTML() {\n let html = '';\n let previousAmbit = '';\n\n const planetAmbits = this.planet.getAmbits();\n\n for (let a = 0; a < planetAmbits.length; a++) {\n\n const currentAmbit = planetAmbits[a];\n const numPlanetarySlots = this.planet.getPlanetarySlotsByAmbit(currentAmbit, this.gameState.structTypes);\n const totalFleetSlotsPerAmbitPerPlayer = MAP_TILE_ROWS_PER_AMBIT * MAP_DEFAULT_FLEET_COL_COUNT;\n const commandSlotTracker = this.createCommandSlotTracker();\n\n html += this.renderTransitionRowHTML(previousAmbit, currentAmbit);\n\n for (let r = 0; r < MAP_TILE_ROWS_PER_AMBIT; r++) {\n\n html += `
`;\n\n for (let c = 0; c < this.mapColBreakdown.length; c++) {\n\n const mapColType = this.mapColBreakdown[c];\n let side = this.getTileSide(c);\n\n html += this.renderFogOfWarTileHTML(mapColType, currentAmbit.toUpperCase())\n || this.renderCommandTileHTML(mapColType, side, currentAmbit, commandSlotTracker)\n || this.renderPlanetaryTileHTML(\n mapColType,\n side,\n currentAmbit,\n this.calcSlotNumber(MAP_COL_DEFENDER_PLANETARY, r, c, numPlanetarySlots)\n )\n || this.renderDefenderFleetTileHTML(\n mapColType,\n side,\n currentAmbit,\n this.calcSlotNumber(MAP_COL_DEFENDER_FLEET, r, c, totalFleetSlotsPerAmbitPerPlayer)\n )\n || this.renderAttackerFleetTileHTML(\n mapColType,\n side,\n currentAmbit,\n this.calcSlotNumber(MAP_COL_ATTACKER_FLEET, r, c, totalFleetSlotsPerAmbitPerPlayer)\n )\n || this.renderDividerTileHTML(mapColType, currentAmbit)\n ;\n }\n\n html += `
`;\n }\n\n html += this.renderTransitionRowHTML(\n previousAmbit,\n currentAmbit,\n true,\n planetAmbits.length,\n a\n );\n\n previousAmbit = currentAmbit;\n }\n\n return html;\n }\n}","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\n\n/**\n * Transition space between ambits.\n */\nexport class MapTransitionComponent extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {AbstractMapTransitionLayerComponent[]} layers\n */\n constructor(gameState, layers) {\n super(gameState);\n this.layers = layers;\n }\n\n /**\n * Renders the transition space using a composition of transition layers.\n *\n * @return {string} html\n */\n renderHTML() {\n let html = `
`;\n\n for(let i = 0; i < this.layers.length; i++) {\n html += this.layers[i].renderHTML(i);\n }\n\n html += `
`;\n return html;\n }\n}","import {AbstractMapTransitionLayerComponent} from \"./AbstractMapTransitionLayerComponent\";\n\n/**\n * For transition layers that use a single non-repeating image.\n */\nexport class MapTransitionLayerOrnamentComponent extends AbstractMapTransitionLayerComponent {\n\n /**\n * @param {string} ornamentClassName\n */\n constructor(ornamentClassName) {\n super();\n this.ornamentClassName = ornamentClassName;\n }\n\n /**\n * @param {int} layerOrderNumber\n *\n * @return {string}\n */\n renderHTML(layerOrderNumber) {\n return `\n
\n
\n
\n `;\n }\n}\n","import {AbstractMapTransitionLayerComponent} from \"./AbstractMapTransitionLayerComponent\";\n\n/**\n * For transition layers that use a 3 image tile set with a horizontally repeating middle.\n */\nexport class MapTransitionLayerTileSetComponent extends AbstractMapTransitionLayerComponent {\n\n /**\n * @param {int} mapColCount\n * @param {string} leftTileClassName\n * @param {string} middleTileClassName\n * @param {string} rightTileClassName\n */\n constructor(\n mapColCount,\n leftTileClassName,\n middleTileClassName,\n rightTileClassName\n ) {\n super();\n this.mapColCount = mapColCount;\n this.leftTileClassName = leftTileClassName;\n this.middleTileClassName = middleTileClassName;\n this.rightTileClassName = rightTileClassName;\n }\n\n /**\n * @param {int} layerOrderNumber\n *\n * @return {string}\n */\n renderHTML(layerOrderNumber) {\n let html = `
`;\n\n for(let i = 0; i < this.mapColCount; i++) {\n if (i === 0) {\n html += `
`;\n } else if (0 < i && i < this.mapColCount - 1) {\n html += `
`;\n } else {\n html += `
`;\n }\n }\n\n html += `
`;\n\n return html;\n }\n}\n","import {AbstractViewModelComponent} from \"../../../framework/AbstractViewModelComponent\";\nimport {MenuPage} from \"../../../framework/MenuPage\";\nimport {StructStillBuilder} from \"../../../builders/StructStillBuilder\";\nimport {MAP_TILE_TYPES} from \"../../../constants/MapConstants\";\nimport {StructType} from \"../../../models/StructType\";\nimport {RenderDeploymentIndicatorEvent} from \"../../../events/RenderDeploymentIndicatorEvent\";\nimport {PendingBuildAddedEvent} from \"../../../events/PendingBuildAddedEvent\";\nimport {SUICheatsheet} from \"../../../sui/SUICheatsheet\";\nimport {PLAYER_TYPES} from \"../../../constants/PlayerTypes\";\n\nexport class DeployOffcanvas extends AbstractViewModelComponent {\n\n /**\n * @param {GameState} gameState\n * @param {SigningClientManager} signingClientManager\n * @param {StructManager} structManager\n * @param {string} tileType see MAP_TILE_TYPES\n * @param {string} ambit\n * @param {number|null} slot\n */\n constructor(\n gameState,\n signingClientManager,\n structManager,\n tileType,\n ambit,\n slot = null\n ) {\n super(gameState);\n this.tileType = tileType;\n this.ambit = ambit;\n this.signingClientManager = signingClientManager;\n this.structManager = structManager;\n this.slot = slot;\n this.structStillBuilder = new StructStillBuilder(this.gameState);\n\n /** @type {StructType[]}*/\n this.deployableStructTypes = this.gameState.structTypes.fetchAllByTileTypeAndAmbit(this.tileType, this.ambit);\n\n this.idPrefix = 'deploy-';\n this.className = 'deploy-struct-type';\n this.disabledClassName = 'deploy-struct-type-disabled';\n }\n\n /**\n * @param {StructType} structType\n * @return {string}\n */\n createLinkId(structType) {\n const name = structType.type.toLowerCase().replace(/\\s/g, '-');\n return `${this.idPrefix}${name}`;\n }\n\n /**\n * @param {StructType} structType\n */\n getTileTypeByStructType(structType) {\n if (structType.category === 'planet') {\n return MAP_TILE_TYPES.PLANETARY_SLOT;\n } else if (structType.category === 'fleet') {\n if (structType.is_command) {\n return MAP_TILE_TYPES.COMMAND\n } else {\n return MAP_TILE_TYPES.FLEET\n }\n }\n\n throw new Error(`Unknown struct type category: ${structType.category}`);\n }\n\n initPageCode() {\n this.deployableStructTypes.forEach(structType => {\n if (this.structManager.getDeploymentBlocker(structType)) {\n return;\n }\n\n const element = document.getElementById(this.createLinkId(structType));\n let mouseDownTime = null;\n\n element.addEventListener('mousedown', () => {\n mouseDownTime = performance.now();\n });\n\n element.addEventListener('mouseup', () => {\n if (mouseDownTime === null) {\n return;\n }\n\n const elapsed = performance.now() - mouseDownTime;\n mouseDownTime = null;\n\n if (elapsed > SUICheatsheet.OPEN_DELAY - 50) {\n return;\n }\n\n console.log(`Deploy: ${structType.type}`);\n\n const tileType = this.getTileTypeByStructType(structType);\n\n this.signingClientManager.queueMsgStructBuildInitiate(\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id,\n structType.id,\n this.ambit,\n this.slot\n ).then();\n\n MenuPage.sui.offcanvas.close();\n\n // Add pending build to gameState\n this.gameState.addPendingBuild(\n tileType,\n this.ambit,\n this.slot,\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id,\n structType\n );\n\n // Dispatch event to render deployment indicator on struct layer\n window.dispatchEvent(new RenderDeploymentIndicatorEvent(\n this.gameState.alphaBaseMap.mapId,\n tileType,\n this.ambit,\n this.slot,\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id\n ));\n\n // Dispatch event to notify that a pending build was added\n window.dispatchEvent(new PendingBuildAddedEvent(\n this.gameState.alphaBaseMap.mapId,\n tileType,\n this.ambit,\n this.slot,\n this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id,\n structType\n ));\n });\n });\n }\n\n /**\n * @return {string}\n */\n renderHTML() {\n return `\n
\n ${this.deployableStructTypes.map(structType => {\n const structStill = this.structStillBuilder.build(structType);\n const deploymentBlocker = this.structManager.getDeploymentBlocker(structType);\n const disabledClassName = deploymentBlocker ? this.disabledClassName : '';\n return `\n \n ${structStill.renderHTML()}\n \n `;\n }).join('')}\n
\n `;\n }\n\n render() {\n MenuPage.sui.offcanvas.setHeader('Select Struct');\n MenuPage.sui.offcanvas.setContent(this.renderHTML());\n MenuPage.sui.offcanvas.open();\n this.initPageCode();\n }\n}\n","import {NotificationDialogueSequence} from \"../../../framework/NotificationDialogueSequence\";\nimport {NotificationDialogueSequenceStep} from \"../../../framework/NotificationDialogueSequenceStep\";\nimport {VictoryBannerViewModel} from \"../../banners/VictoryBannerViewModel\";\n\nexport class AttackerVictoryDialogueSequence extends NotificationDialogueSequence {\n constructor(alphaOreRecovered) {\n super();\n\n this.bannerViewModel = new VictoryBannerViewModel();\n\n this.alphaOreRecovered = alphaOreRecovered;\n\n this.dialogueSequence = [\n new NotificationDialogueSequenceStep(\n '',\n 'Victory! The enemy\\'s planetary shield has been defeated.',\n () => this.bannerViewModel.close()\n ),\n new NotificationDialogueSequenceStep(\n '',\n `You recovered ${this.alphaOreRecovered} Alpha Ore from the enemy base.`,\n ),\n new NotificationDialogueSequenceStep(\n '',\n 'Your fleet will now return to base.',\n ),\n ];\n\n this.initPageCode = () => {\n this.bannerViewModel.render();\n }\n }\n}","import {NotificationDialogueSequence} from \"../../../framework/NotificationDialogueSequence\";\nimport {NotificationDialogueSequenceStep} from \"../../../framework/NotificationDialogueSequenceStep\";\nimport {DefeatBannerViewModel} from \"../../banners/DefeatBannerViewModel\";\n\nexport class DefeatedByAttackerDialogueSequence extends NotificationDialogueSequence {\n constructor(alphaOreLost) {\n super();\n\n this.bannerViewModel = new DefeatBannerViewModel();\n\n this.alphaOreLost = alphaOreLost;\n\n this.dialogueSequence = [\n new NotificationDialogueSequenceStep(\n '',\n `Defeat! Your Planetary Shield was depleted, allowing the enemy to steal ${this.alphaOreLost} Alpha Ore.`,\n () => this.bannerViewModel.close()\n )\n ];\n\n this.initPageCode = () => {\n this.bannerViewModel.render();\n }\n }\n}","import {NotificationDialogueSequence} from \"../../../framework/NotificationDialogueSequence\";\nimport {NotificationDialogueSequenceStep} from \"../../../framework/NotificationDialogueSequenceStep\";\nimport {DefeatBannerViewModel} from \"../../banners/DefeatBannerViewModel\";\n\nexport class DefeatedByDefenderDialogueSequence extends NotificationDialogueSequence {\n constructor() {\n super();\n\n this.bannerViewModel = new DefeatBannerViewModel();\n\n this.dialogueSequence = [\n new NotificationDialogueSequenceStep(\n '',\n `Defeat! Your command ship was destroyed.`,\n () => this.bannerViewModel.close()\n ),\n new NotificationDialogueSequenceStep(\n '',\n 'You will now be returned to your base.',\n ),\n ];\n\n this.initPageCode = () => {\n this.bannerViewModel.render();\n }\n }\n}","import {NotificationDialogueSequence} from \"../../../framework/NotificationDialogueSequence\";\nimport {NotificationDialogueSequenceStep} from \"../../../framework/NotificationDialogueSequenceStep\";\nimport {VictoryBannerViewModel} from \"../../banners/VictoryBannerViewModel\";\n\nexport class DefenderVictoryDialogueSequence extends NotificationDialogueSequence {\n constructor() {\n super();\n\n this.bannerViewModel = new VictoryBannerViewModel();\n\n this.dialogueSequence = [\n new NotificationDialogueSequenceStep(\n '',\n 'Victory! You successfully repelled the enemy\\'s attack.',\n () => this.bannerViewModel.close()\n )\n ];\n\n this.initPageCode = () => {\n this.bannerViewModel.render();\n }\n }\n}","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {RaidStatusUtil} from \"../../util/RaidStatusUtil\";\nimport {PlanetCardBuilder} from \"../../builders/PlanetCardBuilder\";\nimport {EVENTS} from \"../../constants/Events\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class FleetIndexViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {FleetManager} fleetManager\n * @param {GrassManager} grassManager\n * @param {PlanetManager} planetManager\n * @param {MapManager} mapManager\n * @param {RaidManager} raidManager\n * @param {StructManager} structManager\n * @param {string|null} planetCardType\n * @param {string|null} raidCardType\n */\n constructor(\n gameState,\n guildAPI,\n fleetManager,\n grassManager,\n planetManager,\n mapManager,\n raidManager,\n structManager,\n planetCardType = null,\n raidCardType= null\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.fleetManager = fleetManager;\n this.grassManager = grassManager;\n this.planetManager = planetManager;\n this.mapManager = mapManager;\n this.structManager = structManager;\n this.planetCardType = planetCardType;\n this.raidCardType = raidCardType;\n\n this.raidStatusUtil = new RaidStatusUtil();\n this.raidCardContainerId = 'raid-card-container';\n\n this.planetCardBuilder = new PlanetCardBuilder(\n gameState,\n guildAPI,\n grassManager,\n fleetManager,\n planetManager,\n mapManager,\n raidManager,\n structManager\n );\n this.alphaBaseCard = this.planetCardBuilder.build(false, this.planetCardType);\n this.raidCard = this.planetCardBuilder.build(true, this.raidCardType);\n }\n\n initPageCode() {\n this.alphaBaseCard.initPageCode();\n this.raidCard.initPageCode();\n\n window.addEventListener(EVENTS.PLANET_RAID_STATUS_CHANGED, (event) => {\n if (event.playerType === PLAYER_TYPES.PLAYER || event.playerType === PLAYER_TYPES.RAID_ENEMY) {\n MenuPage.router.goto('Fleet', 'index');\n }\n })\n }\n\n renderRaidLogBtnHTML() {\n if (\n this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo === null\n || !this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo.isRaidActive()\n ) {\n return '';\n }\n\n return `\n \n `;\n }\n\n render() {\n\n MenuPage.enablePageTemplate(MenuPage.navItemFleetId);\n\n MenuPage.setPageTemplateHeaderBtn('Fleet Status');\n\n MenuPage.setPageTemplateContent(`\n
\n \n
\n \n
\n \n ${this.alphaBaseCard.renderHTML()}\n \n \n \n
\n \n
\n \n ${this.raidCard.renderHTML()}\n \n ${this.renderRaidLogBtnHTML()}\n \n
\n \n
\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\nimport {RAID_STATUS} from \"../../constants/RaidStatus\";\nimport {RaidStatusListener} from \"../../grass_listeners/RaidStatusListener\";\nimport {MAP_CONTAINER_IDS} from \"../../constants/MapConstants\";\nimport {PlanetRaidFactory} from \"../../factories/PlanetRaidFactory\";\nimport {GenericResourceComponent} from \"../components/GenericResourceComponent\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class PreviewViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {FleetManager} fleetManager\n * @param {GrassManager} grassManager\n * @param {RaidManager} raidManager\n * @param {MapManager} mapManager\n * @param {string} planet_id\n * @param {number} planet_undiscovered_ore\n * @param {string} defender_id\n * @param {number} defender_ore\n * @param {string|null} attacker_id\n */\n constructor(\n gameState,\n guildAPI,\n fleetManager,\n grassManager,\n raidManager,\n mapManager,\n planet_id,\n planet_undiscovered_ore,\n defender_id,\n defender_ore,\n attacker_id = null\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.fleetManager = fleetManager;\n this.grassManager = grassManager;\n this.raidManager = raidManager;\n this.mapManager = mapManager;\n this.planet_id = planet_id;\n this.planet_undiscovered_ore = planet_undiscovered_ore;\n this.defender_id = defender_id;\n this.defender_ore = defender_ore;\n this.attacker_id = attacker_id;\n this.numberFormatter = new NumberFormatter();\n this.planetRaidFactory = new PlanetRaidFactory();\n this.launchFleetBtnId = 'launch-fleet';\n this.undiscoveredOreId = 'preview-planet-undiscovered-ore';\n this.alphaOreId = 'preview-defender-ore-mined';\n }\n\n initPageCode() {\n if (this.attacker === null) {\n return;\n }\n\n const launchFleetBtnElm = document.getElementById(this.launchFleetBtnId);\n\n if (!launchFleetBtnElm) {\n return;\n }\n\n launchFleetBtnElm.addEventListener('click', () => {\n const planetRaid = this.planetRaidFactory.make({\n fleet_id: this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.fleet_id,\n planet_id: this.planet_id,\n planet_owner: this.defender_id,\n status: RAID_STATUS.REQUESTED\n });\n\n this.gameState.setRaidPlanetRaidInfo(planetRaid);\n\n MenuPage.router.goto('Fleet', 'index');\n\n this.grassManager.registerListener(new RaidStatusListener(this.gameState, this.raidManager, this.mapManager));\n this.fleetManager.moveFleet(this.gameState.keyPlayers[PLAYER_TYPES.RAID_ENEMY].planetRaidInfo.planet_id).then();\n });\n }\n\n /**\n * @param {Player} player\n * @return {string}\n */\n renderUsernameHTML(player) {\n let tag = player.tag\n ? `[${player.tag}]`\n : '';\n let username = player.username\n ? player.username\n : `PID #${player.id}`;\n\n\n return `${tag} ${username}`;\n }\n\n render() {\n Promise.all([\n this.guildAPI.getPlanet(this.planet_id),\n this.guildAPI.getPlayer(this.defender_id),\n this.guildAPI.getStructsByPlayerId(this.defender_id),\n this.guildAPI.getFleetByPlayerId(this.defender_id),\n (async () => (this.attacker_id === null)\n ? null\n : await this.guildAPI.getPlayer(this.attacker_id)\n )(),\n (async () => (this.attacker_id === null)\n ? []\n : await this.guildAPI.getStructsByPlayerId(this.attacker_id)\n )(),\n (async () => (this.attacker_id === null)\n ? null\n : await this.guildAPI.getFleetByPlayerId(this.attacker_id)\n )(),\n ]).then(\n ([\n planet,\n defender,\n defenderStructs,\n defenderFleet,\n attacker,\n attackerStructs,\n attackerFleet,\n ]) => {\n this.mapManager.configurePreviewMap(planet, defender, attacker, defenderFleet, attackerFleet);\n this.gameState.setPreviewDefenderStructs(defenderStructs);\n this.gameState.setPreviewAttackerStructs(attackerStructs);\n this.mapManager.showMap(MAP_CONTAINER_IDS.PREVIEW);\n this.gameState.previewMap.render();\n\n const genericResourceComponent = new GenericResourceComponent(MenuPage.gameState);\n\n const headerResourcesHTML = `\n
\n ${\n genericResourceComponent.renderHTML(\n this.undiscoveredOreId,\n 'sui-icon-undiscovered-ore',\n 'Undiscovered Ore',\n this.numberFormatter.format(this.planet_undiscovered_ore)\n )\n }\n ${\n genericResourceComponent.renderHTML(\n this.alphaOreId,\n 'sui-icon-alpha-ore',\n 'Ore Mined',\n this.numberFormatter.format(this.defender_ore)\n )\n }\n
\n `;\n\n MenuPage.enablePageTemplate(\n MenuPage.navItemFleetId,\n false,\n true,\n true,\n headerResourcesHTML\n );\n\n MenuPage.setPageTemplateHeaderBtn(this.renderUsernameHTML(defender), true, () => {\n MenuPage.router.back();\n });\n\n const launchFleetBtn = (this.attacker_id === null)\n ? `\n \n `\n : ``;\n\n MenuPage.setPageTemplateContent(`${launchFleetBtn}`);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n MenuPage.open();\n }\n );\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\nimport {Pagination} from \"../templates/partials/Pagination\";\nimport {PAGINATION_LIMITS} from \"../../constants/PaginationLimits\";\nimport {PlanetRaidFactory} from \"../../factories/PlanetRaidFactory\";\n\nexport class ScanResultsViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {FleetManager} fleetManager\n * @param {GrassManager} grassManager\n * @param {RaidManager} raidManager\n * @param {MapManager} mapManager\n * @param {RaidSearchRequestDTO|object} raidSearchRequest\n */\n constructor(\n gameState,\n guildAPI,\n fleetManager,\n grassManager,\n raidManager,\n mapManager,\n raidSearchRequest\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.fleetManager = fleetManager;\n this.grassManager = grassManager;\n this.raidManager = raidManager;\n this.mapManager = mapManager;\n this.raidSearchRequest = raidSearchRequest;\n this.planetRaidFactory = new PlanetRaidFactory();\n this.numberFormatter = new NumberFormatter();\n this.players = [];\n }\n\n initPageCode() {\n this.players.forEach((player) => {\n document.getElementById(`scan-${player.id}`).addEventListener('click', () => {\n\n this.guildAPI.getActivePlanetRaidByPlanetId(player.planet_id).then(\n planetRaid => {\n MenuPage.router.goto('Fleet', 'preview', {\n planet_id: player.planet_id,\n planet_undiscovered_ore: player.undiscovered_ore ? player.undiscovered_ore : 0,\n defender_id: player.id,\n defender_ore: player.ore ? player.ore : 0,\n attacker_id: planetRaid.isRaidActive() ? planetRaid.fleet_owner : null\n });\n }\n );\n });\n })\n }\n\n /**\n * @return {string}\n */\n renderIconHTML() {\n return `\n
\n
\n
\n `;\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderPlayerInfoHTML(playerSearchResultDTO) {\n let tag = playerSearchResultDTO.tag\n ? `[${playerSearchResultDTO.tag}]`\n : '';\n let username = playerSearchResultDTO.username\n ? playerSearchResultDTO.username\n : `PID #${playerSearchResultDTO.id}`;\n let fleetBadge = playerSearchResultDTO.fleet_status === 'away'\n ? `Fleet Away`\n : `On Station`;\n\n return `\n
\n
\n ${tag} ${username}
\n ${fleetBadge}\n
\n
\n `;\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderResultRowHTML(playerSearchResultDTO) {\n\n const iconHTML = this.renderIconHTML();\n const playerInfoHTML = this.renderPlayerInfoHTML(playerSearchResultDTO);\n const btnId = `scan-${playerSearchResultDTO.id}`;\n\n return `\n
\n
\n ${iconHTML}\n ${playerInfoHTML}\n
\n
\n
\n
\n ${this.numberFormatter.format(playerSearchResultDTO.undiscovered_ore)}\n \n
\n
\n ${this.numberFormatter.format(playerSearchResultDTO.ore)}\n \n
\n
\n View\n
\n
\n `;\n }\n\n render() {\n Promise.all([\n this.guildAPI.raidSearch(this.raidSearchRequest),\n this.guildAPI.raidSearchCount(this.raidSearchRequest)\n ]).then(([\n players,\n count\n ]) => {\n this.players = players;\n\n let noResultsMessage = `
No results found. Please try a different search term.
`;\n let paginationHTML = '';\n\n const pagination = new Pagination(\n this.raidSearchRequest.page,\n PAGINATION_LIMITS.DEFAULT,\n count,\n 'scan',\n 'Fleet',\n 'scanResults',\n this.raidSearchRequest\n );\n\n if (count) {\n noResultsMessage = '';\n paginationHTML = pagination.render();\n }\n\n MenuPage.enablePageTemplate(MenuPage.navItemFleetId);\n\n MenuPage.setPageTemplateHeaderBtn('Scan Results', true, () => {\n MenuPage.router.goto('Fleet', 'scan');\n });\n\n const playersListHTML = players.reduce((html, player) => {\n return html + this.renderResultRowHTML(player)\n }, '');\n\n MenuPage.setPageTemplateContent(`\n
\n \n ${noResultsMessage}\n \n
\n \n ${playersListHTML}\n \n
\n \n ${paginationHTML}\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n pagination.init();\n });\n\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {SEARCH_STRING_PATTERN} from \"../../constants/RegexPattern\";\nimport {RaidSearchRequestDTO} from \"../../dtos/RaidSearchRequestDTO\";\n\nexport class ScanViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n */\n constructor(\n gameState,\n guildAPI\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n\n this.minVulnerableOreId = 'minVulnerableOre';\n this.guildFilterSelectId = 'guildFilterSelect';\n this.fleetStatusId = 'fleetStatusCheckbox';\n this.searchByStatusBtnId = 'searchByStatusBtn';\n this.playerSearchInputId = 'playerSearch';\n this.playerSearchBtnId = 'playerSearchBtn';\n this.playerSearchErrorId = 'playerSearchError';\n }\n\n getMinOre() {\n const minOre = parseInt(document.getElementById(this.minVulnerableOreId).value);\n return isNaN(minOre)\n ? 0\n : Math.max(minOre, 0);\n }\n\n initPageCode() {\n MenuPage.sui.inputStepper.autoInitAll();\n\n // Search By Status Submission\n document.getElementById(this.searchByStatusBtnId).addEventListener('click', () => {\n const raidSearchRequest = new RaidSearchRequestDTO();\n raidSearchRequest.min_ore = this.getMinOre();\n raidSearchRequest.guild_id = document.getElementById(this.guildFilterSelectId).value;\n raidSearchRequest.fleet_away_only = document.getElementById(this.fleetStatusId).checked;\n\n MenuPage.router.goto('Fleet', 'scanResults', raidSearchRequest);\n });\n\n // Search By Player Input Checker\n const playerSearchInput = document.getElementById(this.playerSearchInputId);\n playerSearchInput.addEventListener('keyup', () => {\n const submitBtn = document.getElementById(this.playerSearchBtnId);\n\n if (playerSearchInput.value.length > 0 && submitBtn.classList.contains('sui-mod-disabled')) {\n submitBtn.disabled = false;\n submitBtn.classList.remove('sui-mod-disabled');\n submitBtn.classList.add('sui-mod-primary');\n } else if (playerSearchInput.value.length === 0 && submitBtn.classList.contains('sui-mod-primary')) {\n submitBtn.disabled = true;\n submitBtn.classList.remove('sui-mod-primary');\n submitBtn.classList.add('sui-mod-disabled');\n }\n });\n\n // Search By Player Submission\n document.getElementById(this.playerSearchBtnId).addEventListener('click', () => {\n document.getElementById(this.playerSearchErrorId).classList.remove('sui-mod-show');\n\n const playerSearchInput = document.getElementById(this.playerSearchInputId);\n\n if (!SEARCH_STRING_PATTERN.test(playerSearchInput.value)) {\n document.getElementById(this.playerSearchErrorId).classList.add('sui-mod-show');\n } else {\n const raidSearchRequest = new RaidSearchRequestDTO();\n raidSearchRequest.search_string = playerSearchInput.value;\n\n MenuPage.router.goto('Fleet', 'scanResults', raidSearchRequest);\n }\n });\n }\n\n render() {\n this.guildAPI.getGuildFilterList().then(guilds => {\n\n const guildFilterOptions = guilds.reduce((options, guild) =>\n options + ``\n , '');\n\n MenuPage.enablePageTemplate(MenuPage.navItemFleetId);\n\n MenuPage.setPageTemplateHeaderBtn(\n 'Scan',\n true,\n () => {\n MenuPage.router.goto('Fleet', 'index');\n });\n\n MenuPage.setPageTemplateContent(`\n
\n \n
\n
Search By Status
\n
\n \n \n \n \n \n \n \n \n
\n
\n \n
\n
Search By Player
\n
\n
\n
\n \n \n
\n
\n
Enter at least 3 characters, using only letters, numbers, '-' and '_'.
\n
\n
\n
\n
\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class MenuWaitingViewModel extends AbstractViewModel {\n\n /**\n * @param {MenuWaitingOptions} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n renderWaitingAnimation() {\n switch (this.options.waitingAnimation) {\n case 'ALPHA_TRANSFER':\n return `\"alpha`;\n case 'INFUSE':\n return `\"alpha`;\n case 'DEFUSE':\n return `\"alpha`;\n default:\n return `\"3`;\n }\n }\n\n renderWaitingMessage() {\n return this.options.waitingMessage ? this.options.waitingMessage : '';\n }\n\n renderDoNotCloseWarning() {\n return this.options.hasDoNotCloseMessage\n ? `Do not close this screen.`\n : '';\n }\n\n render () {\n MenuPage.enablePageTemplate(this.options.navItemId, false);\n\n MenuPage.setPageTemplateHeaderBtn(\n this.options.headerBtnLabel,\n this.options.headerBtnShowBackIcon,\n this.options.headerBtnHandler\n );\n\n const waitingAnimation = this.renderWaitingAnimation();\n const waitingMessage = this.renderWaitingMessage();\n const doNotCloseWarning = this.renderDoNotCloseWarning();\n\n MenuPage.setPageTemplateContent(`\n
\n ${waitingAnimation}\n
\n ${waitingMessage}\n ${(waitingMessage && doNotCloseWarning) ? `

` : ''}\n ${doNotCloseWarning}\n
\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.options.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class GuildIndexViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n */\n constructor(\n gameState,\n guildAPI\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.alphaReactorBtnId = 'guild-menu-alpha-reactor-btn';\n this.guildProfileBtnId = 'guild-menu-profile-btn';\n this.memberRosterBtnId = 'guild-menu-member-roster-btn';\n this.guildsDirectoryBtnId = 'guild-menu-guilds-directory-btn';\n }\n\n initPageCode() {\n document.getElementById(this.alphaReactorBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Guild', 'reactor');\n });\n document.getElementById(this.guildProfileBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Guild', 'profile', {guildId: this.gameState.thisGuild.id});\n });\n document.getElementById(this.memberRosterBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Guild', 'roster', {guildId: this.gameState.thisGuild.id});\n });\n document.getElementById(this.guildsDirectoryBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Guild', 'directory');\n });\n }\n\n render () {\n\n const alphaInfusedPromise = this.guildAPI.getInfusionByPlayerId(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id);\n const memberCountPromise = this.guildAPI.countGuildMembers(this.gameState.thisGuild.id);\n const guildCountPromise = this.guildAPI.countGuilds();\n\n Promise.all([\n alphaInfusedPromise,\n memberCountPromise,\n guildCountPromise\n ]).then((responseValues) => {\n const alphaInfused = responseValues[0].fuel;\n const memberCount = responseValues[1];\n const guildCount = responseValues[2];\n\n MenuPage.enablePageTemplate(MenuPage.navItemGuildId);\n\n MenuPage.setPageTemplateHeaderBtn('Guild Status');\n\n MenuPage.setPageTemplateContent(`\n \n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {GenericResourceComponent} from \"../components/GenericResourceComponent\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\n\nexport class GuildProfileViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {string} guildId\n */\n constructor(\n gameState,\n guildAPI,\n guildId\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.guildId = guildId;\n this.genericResourceComponent = new GenericResourceComponent(gameState);\n this.numberFormatter = new NumberFormatter();\n\n this.copyGidBtnId = 'guild-profile-copy-gid-btn';\n this.guildMinimumId = 'guild-profile-guild-minimum';\n this.baseEnergySupplyId = 'guild-profile-base-energy-supply';\n this.commissionId = 'guild-profile-commission';\n this.alphaInfusedId = 'guild-profile-alpha-infused';\n this.energyUsageId = 'guild-profile-energy-usage';\n\n this.guild = null;\n this.powerStats = 0;\n this.membersCount = null;\n this.completePlanetsCount = 0;\n }\n\n async fetchPageData() {\n\n const [guild, powerStats, membersCount, completePlanetsCount] = await Promise.all([\n this.guildAPI.getGuild(this.guildId),\n this.guildAPI.getGuildPowerStats(this.guildId),\n this.guildAPI.countGuildMembers(this.guildId),\n this.guildAPI.countGuildPlanetsCompleted(this.guildId)\n ]);\n\n this.guild = guild;\n this.powerStats = powerStats;\n this.membersCount = membersCount;\n this.completePlanetsCount = completePlanetsCount;\n }\n\n initPageCode() {\n document.getElementById(this.copyGidBtnId).addEventListener('click', async function () {\n if (navigator.clipboard) {\n await navigator.clipboard.writeText(this.guild.id);\n }\n }.bind(this));\n }\n\n renderJoinWarningHTML() {\n if (this.guild.id === this.gameState.thisGuild.id) {\n return '';\n }\n\n let guildWebsiteLink = '';\n\n if (this.guild.website) {\n guildWebsiteLink = `\n Visit the ${this.guild.name} Guild Site \n `;\n }\n\n return `\n
\n \n
\n Players joining a Guild are required to play Structs through that Guild’s external game client.\n ${guildWebsiteLink}\n
\n
\n `;\n }\n\n renderJoinBtnsHTML() {\n let discordBtn = '';\n let guildBtn = '';\n\n if (this.guild.socials?.discord_server) {\n discordBtn = `\n Join Discord\n `;\n }\n\n // Switching guilds from the UI is out of scope for the MVP\n // if (this.guild.id !== this.gameState.thisGuild.id) {\n // guildBtn = `\n // Join Guild\n // `;\n // }\n\n if (discordBtn === '' && guildBtn === '') {\n return '';\n }\n\n return `\n
\n ${discordBtn}\n ${guildBtn}\n
\n `;\n }\n\n render () {\n this.fetchPageData().then(() => {\n\n MenuPage.enablePageTemplate(MenuPage.navItemGuildId);\n\n MenuPage.setPageTemplateHeaderBtn('Guild Profile', true, () => {\n MenuPage.router.back();\n });\n\n MenuPage.setPageTemplateContent(`\n
\n
\n
\n
\n
\n
\n
\n ${this.guild.name ? this.guild.name : 'Name Redacted'}\n ${this.guild.tag ? \"[\" + this.guild.tag + \"]\" : ''}\n
\n
\n Guild ID #${this.guild.id}\n \n
\n \n
\n
\n
\n
\n
\n \n
\n
Guild Data
\n
\n
\n ${this.guild.description ? this.guild.description : 'Description Redacted'}\n
\n
\n
\n \n ${this.renderJoinWarningHTML()}\n \n ${this.renderJoinBtnsHTML()}\n \n
\n
Guild Power
\n
\n
\n
\n Guild Minimum\n \n \n \n
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.guildMinimumId,\n 'sui-icon-alpha-matter',\n 'Minimum alpha required to join guild',\n this.numberFormatter.format(this.guild.join_infusion_minimum)\n )\n }\n
\n
\n
\n
\n Avg. Base Energy Supply\n \n \n \n
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.baseEnergySupplyId,\n 'sui-icon-energy',\n 'Average energy supplied to guild members',\n this.numberFormatter.format(this.powerStats.avg_connection_capacity)\n )\n }\n
\n
\n
\n
\n Alpha Efficiency\n \n \n \n
\n
\n ${this.numberFormatter.format(this.guild.reactor_ratio)} /\n 1 \n
\n
\n
\n
Commission
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.commissionId,\n 'sui-icon-energy',\n 'The guild\\'s cut',\n Math.floor(this.guild.default_commission * 100) + '%'\n )\n }\n
\n
\n
\n
Alpha Infused
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.alphaInfusedId,\n 'sui-icon-alpha-matter',\n 'Alpha infused with the guild',\n this.numberFormatter.format(this.powerStats.total_fuel)\n )\n }\n
\n
\n
\n
Energy Usage
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.energyUsageId,\n 'sui-icon-energy',\n 'Cumulative guild member energy usage',\n `${this.numberFormatter.format(this.powerStats.total_load)}/${this.numberFormatter.format(this.powerStats.total_capacity)}` \n )\n }\n
\n
\n
\n
\n \n
\n
Guild Statistics
\n
\n
\n
Members
\n
${this.numberFormatter.format(this.membersCount)}
\n
\n
\n
Planets Completed
\n
${this.numberFormatter.format(this.completePlanetsCount)}
\n
\n
\n
\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\nimport {GenericResourceComponent} from \"../components/GenericResourceComponent\";\n\nexport class GuildsDirectoryViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n */\n constructor(\n gameState,\n guildAPI\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.numberFormatter = new NumberFormatter();\n this.guilds = [];\n this.genericResourceComponent = new GenericResourceComponent(gameState);\n\n this.membersId = 'guild-dir-members';\n this.alphaInfusedId = 'guild-dir-alpha-infused';\n }\n\n initPageCode() {\n this.guilds.forEach((guild) => {\n document.getElementById(`guild-search-result-${guild.guild_id}`).addEventListener('click', () => {\n MenuPage.router.goto('Guild', 'profile', {guildId: guild.guild_id})\n });\n })\n }\n\n /**\n * @param {GuildSearchResultDTO} guildSearchResultDTO\n * @return {string}\n */\n renderIconHTML(guildSearchResultDTO) {\n let html = `\n
\n \n
\n `;\n\n if (guildSearchResultDTO.logo) {\n html = `\n
\n \"Guild\n
\n `;\n }\n\n return html;\n }\n\n /**\n * @param {GuildSearchResultDTO} guildSearchResultDTO\n * @return {string}\n */\n renderGuildInfoHTML(guildSearchResultDTO) {\n let name = guildSearchResultDTO.name\n ? guildSearchResultDTO.name\n : `Guild #${guildSearchResultDTO.guild_id}`;\n\n return `\n
\n
\n ${name}\n
\n
\n `;\n }\n\n /**\n * @param {GuildSearchResultDTO} guildSearchResultDTO\n * @return {string}\n */\n renderResultRowHTML(guildSearchResultDTO) {\n\n const iconHTML = this.renderIconHTML(guildSearchResultDTO);\n const guildInfoHTML = this.renderGuildInfoHTML(guildSearchResultDTO);\n const btnId = `guild-search-result-${guildSearchResultDTO.guild_id}`;\n\n return `\n
\n
\n ${iconHTML}\n ${guildInfoHTML}\n
\n
\n
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.membersId,\n 'sui-icon-players',\n 'Number of members in the guild',\n this.numberFormatter.format(guildSearchResultDTO.members)\n )\n }\n
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.alphaInfusedId,\n 'sui-icon-alpha-matter',\n 'Alpha infused with the guild',\n this.numberFormatter.format(guildSearchResultDTO.alpha)\n )\n }\n
\n
\n View\n
\n
\n `;\n }\n\n render () {\n this.guildAPI.getGuildsDirectory().then((guilds) => {\n\n this.guilds = guilds;\n\n let noResultsMessage = this.guilds.length > 0 ? '' : `
Guild has no members yet.
`;\n\n MenuPage.enablePageTemplate(MenuPage.navItemGuildId);\n\n MenuPage.setPageTemplateHeaderBtn(\"Guild's Directory\", true, () => {\n MenuPage.router.goto('Guild', 'index');\n });\n\n const guildsListHTML = guilds.reduce((html, guild) => {\n return html + this.renderResultRowHTML(guild)\n }, '');\n\n MenuPage.setPageTemplateContent(`\n
\n \n ${noResultsMessage}\n \n
\n \n ${guildsListHTML}\n \n
\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {GenericResourceComponent} from \"../components/GenericResourceComponent\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\nimport {SystemModal} from \"../templates/partials/SystemModal\";\nimport {AlphaInfusedChangeListener} from \"../../grass_listeners/AlphaInfusedChangeListener\";\nimport {MenuWaitingOptions} from \"../../options/MenuWaitingOptions\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class ManageAlphaViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {GrassManager} grassManager\n * @param {AlphaManager} alphaManager\n * @param {Infusion|object} infusion\n */\n constructor(\n gameState,\n guildAPI,\n grassManager,\n alphaManager,\n infusion\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.grassManager = grassManager;\n this.alphaManager = alphaManager;\n this.infusion = infusion;\n this.genericResourceComponent = new GenericResourceComponent(gameState);\n this.numberFormatter = new NumberFormatter();\n this.systemModal = new SystemModal();\n\n this.alphaToInfuse = this.infusion.fuel;\n this.joinInfusionMinimum = this.gameState.thisGuild.join_infusion_minimum;\n\n this.addBtnId = 'manage-alpha-add';\n this.subtractBtnId = 'manage-alpha-subtract';\n this.alphaInfusedId = 'manage-alpha-alpha-infused';\n this.alphaInfusedValueId = 'manage-alpha-alpha-infused-value';\n this.energyId = 'manage-alpha-energy';\n this.energyValueId = 'manage-alpha-energy-value';\n this.cancelBtnId = 'manage-alpha-cancel';\n this.saveChangesBtnId = 'manage-alpha-save-changes';\n\n this.infusionWarning = `Alpha will be removed from your inventory and added to the reactor.`;\n this.defusionWarning = `Alpha will be removed from the reactor and put on cooldown.`;\n }\n\n calculateEnergy() {\n return Math.floor(this.alphaToInfuse * this.gameState.thisGuild.reactor_ratio * (1 - this.gameState.thisGuild.default_commission));\n }\n\n postToggleRender() {\n const subtractBtn = document.getElementById(this.subtractBtnId);\n const addBtn = document.getElementById(this.addBtnId);\n const alphaInfusedValue = document.getElementById(this.alphaInfusedValueId);\n const energyValue = document.getElementById(this.energyValueId);\n const errorElm = document.querySelector('.manage-alpha-error');\n const ctaBtns = document.querySelector('.manage-alpha-cta-btns');\n\n if (this.alphaToInfuse < this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.alpha) {\n addBtn.classList.remove('sui-mod-disabled');\n addBtn.disabled = false;\n } else {\n addBtn.classList.add('sui-mod-disabled');\n addBtn.disabled = true;\n }\n\n if (this.alphaToInfuse > 0 && this.alphaToInfuse > this.joinInfusionMinimum) {\n subtractBtn.classList.remove('sui-mod-disabled');\n subtractBtn.disabled = false;\n } else {\n subtractBtn.classList.add('sui-mod-disabled');\n subtractBtn.disabled = true;\n }\n\n if (\n this.alphaToInfuse !== this.infusion.fuel\n && this.alphaToInfuse >= this.joinInfusionMinimum\n ) {\n ctaBtns.classList.remove('hidden');\n } else {\n ctaBtns.classList.add('hidden');\n }\n\n if (this.alphaToInfuse <= this.joinInfusionMinimum) {\n errorElm.classList.remove('hidden');\n } else {\n errorElm.classList.add('hidden');\n }\n\n alphaInfusedValue.innerText = this.alphaToInfuse;\n energyValue.innerHTML = `${this.calculateEnergy()}`;\n }\n\n infuse() {\n const alphaDiff = this.alphaToInfuse - this.infusion.fuel;\n this.grassManager.registerListener(new AlphaInfusedChangeListener(this.gameState, this.guildAPI, 'infused'));\n this.alphaManager.infuse(alphaDiff).then();\n }\n\n defuse() {\n const alphaDiff = this.infusion.fuel - this.alphaToInfuse;\n this.grassManager.registerListener(new AlphaInfusedChangeListener(this.gameState, this.guildAPI, 'defusion_started'));\n this.alphaManager.defuse(alphaDiff).then();\n }\n\n initPageCode() {\n this.systemModal.init();\n\n document.getElementById(this.subtractBtnId).addEventListener('click', (event) => {\n event.preventDefault();\n\n if (this.alphaToInfuse > 0 && this.alphaToInfuse > this.joinInfusionMinimum) {\n this.alphaToInfuse--;\n }\n\n this.postToggleRender();\n });\n\n document.getElementById(this.addBtnId).addEventListener('click', (event) => {\n event.preventDefault();\n\n if (this.alphaToInfuse < this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.alpha) {\n this.alphaToInfuse++;\n }\n\n this.postToggleRender();\n });\n\n document.getElementById(this.cancelBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Guild', 'reactor');\n });\n document.getElementById(this.saveChangesBtnId).addEventListener('click', () => {\n\n document.getElementById(this.systemModal.messageId).innerHTML = (this.alphaToInfuse > this.infusion.fuel)\n ? this.infusionWarning\n : this.defusionWarning;\n\n this.systemModal.show();\n });\n\n this.postToggleRender();\n }\n\n render () {\n\n this.systemModal.iconClasses = `sui-icon-alpha-matter`;\n this.systemModal.confirmBtnHandler = () => {\n const options = new MenuWaitingOptions();\n options.navItemId = MenuPage.navItemGuildId;\n options.hasDoNotCloseMessage = false;\n\n if (this.alphaToInfuse > this.infusion.fuel) {\n this.infuse();\n\n options.headerBtnLabel = 'Infusing...';\n options.waitingAnimation = 'INFUSE';\n } else {\n this.defuse();\n\n options.headerBtnLabel = 'Defusing...';\n options.waitingAnimation = 'DEFUSE';\n }\n\n MenuPage.router.goto('Generic', 'menuWaiting', options);\n };\n const modalHTML = this.systemModal.render();\n\n MenuPage.enablePageTemplate(MenuPage.navItemGuildId);\n\n MenuPage.setPageTemplateHeaderBtn('Manage Alpha', true, () => {\n MenuPage.router.goto('Guild', 'reactor');\n });\n\n MenuPage.setPageTemplateContent(`\n
\n \n
\n \n \"alpha\n \n
\n \n
\n ${\n this.genericResourceComponent.renderHTML(\n this.alphaInfusedId,\n 'sui-icon-alpha-matter',\n 'Alpha to infuse',\n this.infusion.fuel\n )\n }\n ${\n this.genericResourceComponent.renderHTML(\n this.energyId,\n 'sui-icon-energy',\n 'Expected energy supply',\n this.numberFormatter.format(this.alphaToInfuse * this.infusion.ratio * (this.infusion.commission/100))\n )\n }\n
\n \n
\n \n The Guild Minimum is ${this.joinInfusionMinimum} Alpha Matter.\n
\n \n \n \n ${modalHTML}\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\n\nexport class MemberRosterViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n * @param {string} guildId\n */\n constructor(\n gameState,\n guildAPI,\n guildId\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.guildId = guildId;\n this.numberFormatter = new NumberFormatter();\n this.players = [];\n }\n\n initPageCode() {\n this.players.forEach((player) => {\n document.getElementById(`player-search-result-${player.id}`).addEventListener('click', () => {\n MenuPage.router.goto('Account', 'profile', {playerId: player.id})\n });\n })\n }\n\n /**\n * @return {string}\n */\n renderIconHTML() {\n return `\n
\n
\n
\n `;\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderPlayerInfoHTML(playerSearchResultDTO) {\n let html = `\n
\n
\n Address ${playerSearchResultDTO.address}\n
\n
\n `;\n\n if (playerSearchResultDTO.id) {\n let tag = playerSearchResultDTO.tag\n ? `[${playerSearchResultDTO.tag}]`\n : '';\n let username = playerSearchResultDTO.username\n ? playerSearchResultDTO.username\n : 'Name Redacted'\n\n html = `\n
\n
\n ${tag} ${username}
\n PID #${playerSearchResultDTO.id}\n
\n
\n `;\n }\n\n return html;\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderAlphaHTML(playerSearchResultDTO) {\n if (isNaN(parseInt(playerSearchResultDTO.alpha))) {\n return '';\n }\n\n const amount = this.numberFormatter.format(playerSearchResultDTO.alpha);\n return `\n ${amount}\n \n `;\n }\n\n /**\n * @param {PlayerSearchResultDTO} playerSearchResultDTO\n * @return {string}\n */\n renderResultRowHTML(playerSearchResultDTO) {\n\n const iconHTML = this.renderIconHTML();\n const playerInfoHTML = this.renderPlayerInfoHTML(playerSearchResultDTO);\n const alphaHTML = this.renderAlphaHTML(playerSearchResultDTO);\n const btnId = `player-search-result-${playerSearchResultDTO.id}`;\n\n return `\n
\n
\n ${iconHTML}\n ${playerInfoHTML}\n
\n
\n
\n
\n ${alphaHTML}\n
\n
\n View\n
\n
\n `;\n }\n\n render () {\n this.guildAPI.getGuildRoster(this.guildId).then((players) => {\n\n this.players = players;\n\n let noResultsMessage = this.players.length > 0 ? '' : `
Guild has no members yet.
`;\n\n MenuPage.enablePageTemplate(MenuPage.navItemGuildId);\n\n MenuPage.setPageTemplateHeaderBtn('Member Roster', true, () => {\n MenuPage.router.goto('Guild', 'index');\n });\n\n const playersListHTML = players.reduce((html, player) => {\n return html + this.renderResultRowHTML(player)\n }, '');\n\n MenuPage.setPageTemplateContent(`\n
\n \n ${noResultsMessage}\n \n
\n \n ${playersListHTML}\n \n
\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {GenericResourceComponent} from \"../components/GenericResourceComponent\";\nimport {NumberFormatter} from \"../../util/NumberFormatter\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class ReactorViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {GuildAPI} guildAPI\n */\n constructor(\n gameState,\n guildAPI\n ) {\n super();\n this.gameState = gameState;\n this.guildAPI = guildAPI;\n this.guildId = this.gameState.thisGuild.id;\n this.genericResourceComponent = new GenericResourceComponent(gameState);\n this.numberFormatter = new NumberFormatter();\n\n this.guildMinimumId = 'guild-profile-guild-minimum';\n this.commissionId = 'guild-profile-commission';\n this.alphaInfusedId = 'guild-profile-alpha-infused';\n this.defusingId = 'guild-profile-defusing';\n this.totalSupplyId = 'guild-profile-total-supply';\n this.manageAlphaBtnId = 'guild-reactor-manage-alpha-btn';\n\n this.guild = null;\n this.infusion = null;\n }\n\n async fetchPageData() {\n\n const [guild, infusion] = await Promise.all([\n this.guildAPI.getGuild(this.guildId),\n this.guildAPI.getInfusionByPlayerId(this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].id)\n ]);\n\n this.guild = guild;\n this.infusion = infusion;\n }\n\n initPageCode() {\n document.getElementById(this.manageAlphaBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Guild', 'manageAlpha', this.infusion);\n });\n }\n\n render () {\n this.fetchPageData().then(() => {\n\n MenuPage.enablePageTemplate(MenuPage.navItemGuildId);\n\n MenuPage.setPageTemplateHeaderBtn('Guild Reactor', true, () => {\n MenuPage.router.goto('Guild', 'index');\n });\n\n MenuPage.setPageTemplateContent(`\n
\n \n
\n \n \"alpha\n \n
\n \n
\n
ALPHA MATTER
\n
\n \n
\n
Alpha Infused
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.alphaInfusedId,\n 'sui-icon-alpha-matter',\n 'Alpha infused with the guild',\n this.numberFormatter.format(this.infusion.fuel)\n )\n }\n
\n
\n
\n
\n Cooldown\n \n \n \n
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.defusingId,\n 'sui-icon-inert-alpha',\n 'Alpha removed from the reactor that must cooldown before reuse',\n this.numberFormatter.format(this.infusion.defusing)\n )\n }\n
\n
\n \n
\n
\n \n
\n
ENERGY
\n
\n \n
\n
Total Supply
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.totalSupplyId,\n 'sui-icon-energy',\n 'Expected supply of power',\n this.numberFormatter.format(this.infusion.power)\n )\n }\n
\n
\n \n
\n
\n \n \n \n
\n \n
\n \n
\n
Reactor Details
\n
\n
\n
\n Guild Minimum\n \n \n \n
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.guildMinimumId,\n 'sui-icon-alpha-matter',\n 'Minimum alpha required to join guild',\n this.numberFormatter.format(this.guild.join_infusion_minimum)\n )\n }\n
\n
\n
\n
\n Reactor Efficiency\n \n \n \n
\n
\n ${this.numberFormatter.format(this.guild.reactor_ratio)} /\n 1 \n
\n
\n
\n
\n Commission\n \n \n \n
\n
\n ${\n this.genericResourceComponent.renderHTML(\n this.commissionId,\n 'sui-icon-energy',\n 'The guild\\'s cut',\n Math.floor(this.guild.default_commission * 100) + '%'\n )\n }\n
\n
\n \n
\n
\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n });\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class ActivateDeviceCancelledViewModel extends AbstractViewModel {\n\n constructor() {\n super();\n this.tryAgainBtnId = 'try-again-btn';\n this.logInWithRecoveryKeyBtnId = 'log-in-with-recovery-key-btn';\n }\n\n initPageCode() {\n document.getElementById(this.tryAgainBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Auth', 'loginActivateDevice');\n });\n document.getElementById(this.logInWithRecoveryKeyBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Auth', 'loginRecoverAccountStart');\n });\n }\n\n render () {\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn('Activate Device');\n\n MenuPage.setPageTemplateContent(`\n
\n
\n
\n \n Activation Cancelled\n
\n
This device has not been logged in.
\n
\n \n
\n \n \n
\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class ActivateDeviceCompleteViewModel extends AbstractViewModel {\n\n constructor() {\n super();\n this.playStructsBtnId = 'play-structs-btn';\n }\n\n initPageCode() {\n document.getElementById(this.playStructsBtnId).addEventListener('click', () => {\n MenuPage.close();\n });\n }\n\n render () {\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn('Activate Device');\n\n MenuPage.setPageTemplateContent(`\n
\n
\n
\n \n Activation Completed\n
\n
Your device has been successfully activated and you are now logged-in.
\n
\n \n
\n \n
\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {ActivationCodeInfoDTO} from \"../../dtos/ActivationCodeInfoDTO\";\n\nexport class ActivateDeviceVerifyViewModel extends AbstractViewModel {\n\n /**\n * @param {AuthManager} authManager\n * @param {ActivationCodeInfoDTO | null} activationCodeInfo\n */\n constructor(\n authManager,\n activationCodeInfo\n ) {\n super();\n this.authManager = authManager;\n this.activationCodeInfo = activationCodeInfo;\n this.yesBtnId = 'yes-btn';\n this.noBtnId = 'no-btn';\n }\n\n initPageCode() {\n document.getElementById(this.noBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Auth', 'loginActivateDeviceCancelled');\n });\n document.getElementById(this.yesBtnId).addEventListener('click', () => {\n this.authManager.addNewDevice(this.activationCodeInfo).then(success => {\n if (success) {\n MenuPage.router.goto(\n 'Auth',\n 'loginActivateDeviceWaitingForApproval',\n this.activationCodeInfo\n );\n } else {\n MenuPage.router.goto('Auth', 'loginActivateDeviceCancelled');\n }\n }).catch(() => {\n MenuPage.router.goto('Auth', 'loginActivateDeviceCancelled');\n });\n });\n }\n\n render () {\n\n if (this.activationCodeInfo === null) {\n MenuPage.router.goto('Auth', 'loginActivateDevice');\n return;\n }\n\n const tag = this.activationCodeInfo.tag ? `[${this.activationCodeInfo.tag}]` : '';\n const username = this.activationCodeInfo.username ? this.activationCodeInfo.username : '';\n const playerId = this.activationCodeInfo.player_id;\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn('Activate Device', true, () => {\n MenuPage.router.goto('Auth', 'loginActivateDevice');\n });\n\n MenuPage.setPageTemplateContent(`\n
\n
Is this your account?
\n \n
\n
\n
\n
\n
${tag}
\n
${username}
\n
\n
\n
Player ID
\n
#${playerId}
\n
\n
\n
\n \n \n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {CODE_PATTERN} from \"../../constants/RegexPattern\";\n\nexport class ActivateDeviceViewModel extends AbstractViewModel {\n\n /**\n * @param {GuildAPI} guildAPI\n */\n constructor(guildAPI) {\n super();\n this.guildAPI = guildAPI;\n this.activationCodeInputId = 'activationCode';\n this.activationCodeInputErrorId = 'activation-code-input-error';\n this.activationCodeSubmitBtnId = 'activation-code-submit-btn';\n this.logInWithRecoveryKeyBtnId = 'log-in-with-recovery-key-btn';\n this.errorMessage = 'Activation Code is invalid or has expired.'\n }\n\n initPageCode() {\n const errorElm = document.getElementById(this.activationCodeInputErrorId);\n\n document.getElementById(this.activationCodeSubmitBtnId).addEventListener('click', () => {\n\n errorElm.innerHTML = '';\n const input = document.getElementById(this.activationCodeInputId);\n let code = input.value.toUpperCase();\n input.value = code;\n\n if (!CODE_PATTERN.test(code)) {\n errorElm.innerHTML = this.errorMessage;\n return;\n }\n\n this.guildAPI.getActivationCodeInfo(code).then(info => {\n\n if (info === null) {\n errorElm.innerHTML = this.errorMessage;\n return;\n }\n\n MenuPage.router.goto('Auth', 'loginActivateDeviceVerify', info);\n\n }).catch(() => {\n errorElm.innerHTML = this.errorMessage;\n });\n });\n\n document.getElementById(this.logInWithRecoveryKeyBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Auth', 'loginRecoverAccountStart');\n })\n }\n\n render () {\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn('Activate Device', true, () => {\n MenuPage.router.goto('Auth', 'index');\n });\n\n MenuPage.setPageTemplateContent(`\n
\n
To receive an activation code, go to Account > Devices on any logged in device.
\n \n
\n
\n \n
\n
\n \n
\n \n
\n
Not logged in anywhere else?
\n \n
\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {Blockies} from \"../../vendor/Blockies\";\n\nexport class ActivateDeviceWaitingForApprovalViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {ActivationCodeInfoDTO} activationCodeInfo\n */\n constructor(gameState, activationCodeInfo) {\n super();\n this.gameState = gameState;\n this.activationCodeInfo = activationCodeInfo;\n this.blockies = new Blockies();\n this.blockieWrapperId = 'login-blockie-wrapper';\n this.deviceSealHintId = 'device-seal-hint';\n }\n\n initPageCode() {\n document.getElementById(this.blockieWrapperId).append(\n this.blockies.createBlockie(this.gameState.signingAccount.address)\n );\n }\n\n render () {\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn('Activate Device');\n\n MenuPage.setPageTemplateContent(`\n
\n \"3\n \n
\n
\n Please review and confirm the activation request on your logged-in device.
\n
\n Do not close this screen.\n
\n
\n
\n
\n
DEVICE SEAL
\n
\n What's this?\n
\n
\n
\n
\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class ActivatingDeviceViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {AuthManager} authManager\n * @param {ActivationCodeInfoDTO} activationCodeInfo\n */\n constructor(\n gameState,\n authManager,\n activationCodeInfo\n ) {\n super();\n this.gameState = gameState;\n this.authManager = authManager;\n this.activationCodeInfo = activationCodeInfo;\n }\n\n initPageCode() {\n this.authManager.login(this.activationCodeInfo.player_id).then(async function (success) {\n if (success) {\n MenuPage.router.goto('Auth', 'loginActivateDeviceComplete');\n } else {\n MenuPage.router.goto('Auth', 'loginActivateDeviceCancelled');\n }\n }.bind(this)).catch((e) => {\n console.log(e);\n MenuPage.router.goto('Auth', 'loginActivateDeviceCancelled');\n });\n }\n\n render () {\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn('Activate Device');\n\n MenuPage.setPageTemplateContent(`\n
\n \"3\n
\n Activating device
\n
\n Do not close this screen.\n
\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n }\n}\n","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class LoggingInViewModel extends AbstractViewModel{\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'Connecting...'\n )\n ];\n MenuPage.setNavItems(navItems);\n MenuPage.disableCloseBtn();\n MenuPage.showNav();\n\n MenuPage.setBodyContent(`\n
\n \n
\n
\n \"Computer\n
\n
\n \n
\n `);\n\n MenuPage.setDialogueIndicatorContent(``);\n MenuPage.setDialogueScreenContent(`Please wait while your Employee Record is confirmed...`);\n MenuPage.disableDialogueBtnB();\n MenuPage.disableDialogueBtnA();\n MenuPage.showDialoguePanel();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class RecoverAccountFailViewModel extends AbstractViewModel {\n\n constructor() {\n super();\n this.tryAgainBtnId = 'try-again-btn';\n this.logInFromAnotherDeviceBtnId = 'log-in-from-another-device-btn';\n }\n\n initPageCode() {\n document.getElementById(this.tryAgainBtnId).addEventListener('click', () => {\n MenuPage.router.goto('Auth', 'loginRecoverAccountStart');\n });\n document.getElementById(this.logInFromAnotherDeviceBtnId).addEventListener('click', () => {\n console.log('Log in with recovery key');\n MenuPage.router.goto('Auth', 'loginActivateDevice');\n });\n }\n\n render () {\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn('Recover Account');\n\n MenuPage.setPageTemplateContent(`\n
\n
\n
\n \n Invalid Recovery Key\n
\n
The Recovery Key provided did not match any known account. Please ensure each word is spelled correctly and is entered in the correct order.
\n
\n \n
\n \n \n
\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {PageHeader} from \"../templates/partials/PageHeader\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class RecoverAccountStartViewModel extends AbstractViewModel {\n /**\n * @param {GameState} gameState\n * @param {AuthManager} authManager\n */\n constructor(\n gameState,\n authManager\n ) {\n super();\n this.gameState = gameState;\n this.authManager = authManager;\n this.recoveryKeyFaqBtnId = 'recovery-key-faq-link';\n }\n\n initPageCode() {\n const recoveryKeyInput = document.getElementById('recovery-key-input');\n recoveryKeyInput.addEventListener('keyup', () => {\n const submitBtn = document.getElementById('submit-btn');\n\n if (recoveryKeyInput.value.length > 0 && submitBtn.classList.contains('sui-mod-disabled')) {\n submitBtn.disabled = false;\n submitBtn.classList.remove('sui-mod-disabled');\n submitBtn.classList.add('sui-mod-primary');\n } else if (recoveryKeyInput.value.length === 0 && submitBtn.classList.contains('sui-mod-primary')) {\n submitBtn.disabled = true;\n submitBtn.classList.remove('sui-mod-primary');\n submitBtn.classList.add('sui-mod-disabled');\n }\n });\n\n const submitBtnHandler = () => {\n const recoveryKeyInput = document.getElementById('recovery-key-input');\n recoveryKeyInput.value = recoveryKeyInput.value.replace(/\\s\\s+/g, ' ');\n\n MenuPage.router.goto('Auth', 'loggingIn');\n\n this.authManager.loginWithMnemonic(recoveryKeyInput.value).then(async (success) => {\n if (success) {\n MenuPage.router.goto('Auth', 'loginRecoverAccountSuccess');\n } else {\n MenuPage.router.goto('Auth', 'loginRecoverAccountFail');\n }\n });\n };\n\n document.getElementById('submit-btn').addEventListener('click', submitBtnHandler);\n recoveryKeyInput.addEventListener('keyup', (e) => {\n if (e.key === 'Enter') {\n submitBtnHandler();\n }\n });\n\n document.getElementById(this.recoveryKeyFaqBtnId).addEventListener('click', () => {\n MenuPage.router.goto(\n 'Auth',\n 'signupRecoveryKeyFaq',\n {\n backButtonHandler: () => {\n MenuPage.router.goto('Auth', 'loginRecoverAccountStart');\n }\n }\n );\n });\n }\n\n async render() {\n const pageHeader = new PageHeader();\n pageHeader.pageLabel = 'Recovery Account';\n pageHeader.showBackButton = true;\n pageHeader.backButtonHandler = () => {\n MenuPage.router.goto('Auth', 'loginActivateDevice');\n };\n\n MenuPage.hideAndClearNav();\n\n MenuPage.setBodyContent(`\n
\n \n ${pageHeader.render()}\n \n
\n \n
\n \n \n
\n
\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n pageHeader.init();\n this.initPageCode();\n }\n}","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class RecoverAccountSuccessViewModel extends AbstractViewModel {\n\n constructor() {\n super();\n this.playStructsBtnId = 'play-structs-btn';\n }\n\n initPageCode() {\n document.getElementById(this.playStructsBtnId).addEventListener('click', () => {\n MenuPage.close();\n });\n }\n\n render () {\n\n MenuPage.enablePageTemplate(MenuPage.navItemAccountId, false);\n\n MenuPage.setPageTemplateHeaderBtn('Recover Account');\n\n MenuPage.setPageTemplateContent(`\n
\n
\n
\n \n Success!\n
\n
Your account has been recovered and you are now logged in.
\n
\n \n
\n \n
\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {ConfirmTemplate} from \"../templates/ConfirmTemplate\";\nimport {PLAYER_TYPES} from \"../../constants/PlayerTypes\";\n\nexport class LogoutAssetsWarningViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {PlayerAddress} playerAddress\n */\n constructor(gameState, playerAddress) {\n super();\n this.gameState = gameState;\n this.playerAddress = playerAddress;\n this.isPrimaryDevice = this.gameState.keyPlayers[PLAYER_TYPES.PLAYER].player.primary_address === this.playerAddress.address;\n }\n\n render() {\n const view = new ConfirmTemplate();\n\n view.headerBtnLabel = 'Manage Device';\n\n view.messageHeaderColorClass = 'sui-mod-warning';\n view.messageHeaderIconClass = 'icon-alert';\n view.messageHeaderText = 'IMPORTANT';\n view.messageBody1HTML = `\n The following assets are associated with this device. If this device is logged out, these assets will be migrated to your \n Primary Account Address.\n `;\n view.messageBody2HTML = `\n \n ${this.playerAddress.alpha}x\n \n \n `;\n\n view.confirmBtn1Enabled = true;\n view.confirmBtn1Label = 'Stay Logged In';\n view.confirmBtn1ColorClass = 'sui-mod-primary';\n\n view.confirmBtn2Enabled = true;\n view.confirmBtn2Label = 'Log Out Now';\n view.confirmBtn2ColorClass = 'sui-mod-destructive';\n\n view.initPageCode = () => {\n document.getElementById(view.confirmBtn1Id).addEventListener('click', () => {\n MenuPage.router.back();\n });\n document.getElementById(view.confirmBtn2Id).addEventListener('click', () => {\n if (this.playerAddress.isOnlyManagingDevice) {\n MenuPage.router.goto('Auth', 'logoutPermissionsWarning');\n } else if (this.isPrimaryDevice) {\n MenuPage.router.goto('Auth', 'logout');\n } else {\n MenuPage.router.goto('Auth', 'logout', this.playerAddress);\n }\n });\n };\n\n view.render();\n }\n}","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {ConfirmTemplate} from \"../templates/ConfirmTemplate\";\n\nexport class LogoutPermissionsWarningViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n * @param {PlayerAddress} playerAddress\n */\n constructor(gameState, playerAddress) {\n super();\n this.gameState = gameState;\n this.playerAddress = playerAddress;\n }\n\n render() {\n const view = new ConfirmTemplate();\n\n view.headerBtnLabel = 'Manage Device';\n\n view.messageHeaderColorClass = 'sui-mod-warning';\n view.messageHeaderIconClass = 'icon-alert';\n view.messageHeaderText = 'IMPORTANT';\n view.messageBody1HTML = `\n This is the only device with Manage Device permissions active. If these permissions are removed, you will be unable to activate new devices without using your\n Recovery Key.\n `;\n\n view.confirmBtn1Enabled = true;\n view.confirmBtn1Label = 'Save Changes';\n view.confirmBtn1ColorClass = 'sui-mod-primary';\n\n view.confirmBtn2Enabled = true;\n view.confirmBtn2Label = 'Cancel';\n view.confirmBtn2ColorClass = 'sui-mod-destructive';\n\n view.initPageCode = () => {\n document.getElementById(view.confirmBtn1Id).addEventListener('click', () => {\n if (this.isPrimaryDevice) {\n MenuPage.router.goto('Auth', 'logout');\n } else {\n MenuPage.router.goto('Auth', 'logout', this.playerAddress);\n }\n });\n document.getElementById(view.confirmBtn2Id).addEventListener('click', () => {\n MenuPage.router.back();\n });\n };\n\n view.render();\n }\n}","import {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class ConnectingToCorp1ViewModel extends AbstractViewModel {\n\n initPageCode() {\n document.getElementById('glitch-logo-fade').addEventListener('animationstart', () => {\n MenuPage.router.goto('Auth', 'signupConnectingToCorporate2');\n });\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'Connecting...'\n )\n ];\n MenuPage.setNavItems(navItems);\n MenuPage.disableCloseBtn()\n\n MenuPage.setBodyContent(`\n
\n
\n
\n
\n `);\n\n MenuPage.setDialogueIndicatorContent(``);\n MenuPage.setDialogueScreenContent(`Connecting to Corporate Database...`);\n MenuPage.disableDialogueBtnB();\n MenuPage.disableDialogueBtnA();\n MenuPage.showDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class ConnectingToCorp2ViewModel extends AbstractViewModel {\n\n initPageCode() {\n setTimeout(() => {\n MenuPage.router.goto('Auth', 'signupIncomingCall1');\n }, 4000);\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'SN.Corporation'\n )\n ];\n MenuPage.setNavItems(navItems);\n\n document.getElementById('snc-logo-wrapper').innerHTML = `\n \"SNC\n

WE KNOW BETTER.

\n `;\n\n MenuPage.setDialogueIndicatorContent(``, true);\n MenuPage.setDialogueScreenContent(`Connection Successful.`, true);\n MenuPage.showDialoguePanel();\n\n this.initPageCode();\n }\n}\n","import {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class IncomingCall1ViewModel extends AbstractViewModel {\n\n initLottieAnimations() {\n const {lottie} = window;\n const {loadAnimation} = lottie;\n loadAnimation({\n container: document.getElementById('lottie-scan-lines'),\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/lottie/transition-scan-lines/data.json'\n });\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'Incoming Call'\n )\n ];\n MenuPage.setNavItems(navItems);\n MenuPage.disableCloseBtn();\n\n MenuPage.setBodyContent(`\n
\n
\n
\n
\n \n
\n `);\n\n MenuPage.setDialogueIndicatorContent(``, true);\n MenuPage.setDialogueScreenContent(`Alert: Priority Call`, true);\n MenuPage.dialogueBtnAHandler = () => {\n MenuPage.router.goto('Auth', 'signupIncomingCall2');\n };\n MenuPage.enableDialogueBtnA();\n MenuPage.showDialoguePanel();\n\n this.initLottieAnimations();\n }\n}","import {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class IncomingCall2ViewModel extends AbstractViewModel {\n initLottieAnimations() {\n const {lottie} = window;\n const {loadAnimation} = lottie;\n loadAnimation({\n container: document.getElementById('hrbot-talking-large'),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: '/lottie/hr-bot/data.json'\n });\n }\n\n initPageCode() {\n setTimeout(() => {\n MenuPage.router.goto('Auth', 'signupIncomingCall3');\n }, 800);\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'Connecting...'\n )\n ];\n MenuPage.setNavItems(navItems);\n\n MenuPage.setBodyContent(`\n
\n
\n \n
\n `);\n\n MenuPage.disableDialogueBtnA();\n\n this.initLottieAnimations();\n\n this.initPageCode();\n }\n}","import {HRBotTalkingTemplate} from \"../templates/HRBotTalkingTemplate\";\nimport {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class IncomingCall3ViewModel extends AbstractViewModel {\n render() {\n const view = new HRBotTalkingTemplate();\n view.dialogueSequence = [\n `SN.CORP: Greetings, SN.CORPORATION employee. I am your designated Synthetic Resources Officer.`,\n `I have been tasked with assisting you as you complete your Employee Orientation.`\n ];\n view.actionOnSequenceEnd = () => {\n MenuPage.router.goto('Auth', 'signupSetUsername');\n }\n view.render();\n }\n}\n","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class Orientation1ViewModel extends AbstractViewModel {\n\n initLottieAnimations() {\n const {lottie} = window;\n const {loadAnimation} = lottie;\n const scanLines = loadAnimation({\n container: document.getElementById('lottie-scan-lines'),\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/lottie/transition-scan-lines/data.json'\n });\n loadAnimation({\n container: document.getElementById('hrbot-talking-small'),\n renderer: 'svg',\n loop: true,\n autoplay: true,\n path: '/lottie/hr-bot/data.json'\n });\n\n scanLines.addEventListener('complete', () => {\n document.getElementById('lottie-scan-lines').classList.add('hidden');\n });\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'SN.Corporation'\n )\n ];\n MenuPage.setNavItems(navItems);\n MenuPage.disableCloseBtn();\n MenuPage.showNav();\n\n MenuPage.setBodyContent(`\n
\n
\n
\n
\n \n
\n
\n
\n
\n SN.CORPORATION\n
\n
\n Contract #8322\n
\n
\n \n
\n
\n \n
\n `);\n\n MenuPage.setDialogueIndicatorContent(`
`);\n MenuPage.setDialogueScreenContent(`Thank you. We can now begin your orientation.`);\n MenuPage.dialogueBtnAHandler = () => {\n MenuPage.router.goto('Auth', 'orientation2');\n };\n MenuPage.disableDialogueBtnB();\n MenuPage.enableDialogueBtnA();\n MenuPage.showDialoguePanel();\n\n this.initLottieAnimations()\n }\n}\n","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class Orientation2ViewModel extends AbstractViewModel {\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'SN.Corporation'\n )\n ];\n MenuPage.setNavItems(navItems);\n\n MenuPage.setBodyContent(`\n
\n\n
\n
\n \n
\n \"SNC\n

WE KNOW BETTER.

\n
\n \n
\n
\n \n
\n `);\n\n MenuPage.setDialogueScreenContent(\n `You have been contracted by SN.CORPORATION, a member of the \n Structs Conglomerate,\n to conduct Alpha Matter mining operations in the Milky Way Galaxy.`\n );\n MenuPage.dialogueBtnAHandler = () => {\n MenuPage.router.goto('Auth', 'orientation3');\n };\n }\n}\n","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class Orientation3ViewModel extends AbstractViewModel {\n\n initLottieAnimations() {\n const {lottie} = window;\n const {loadAnimation} = lottie;\n const scanLines = loadAnimation({\n container: document.getElementById('lottie-scan-lines'),\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/lottie/transition-scan-lines/data.json'\n });\n\n scanLines.addEventListener('complete', () => {\n document.getElementById('lottie-scan-lines').classList.add('hidden');\n });\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'SN.Corporation'\n )\n ];\n MenuPage.setNavItems(navItems);\n MenuPage.disableCloseBtn();\n MenuPage.showNav();\n\n MenuPage.setBodyContent(`\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n Alpha Matter\n
\n
\n Ap - 52.456u\n
\n
\n \n
\n
\n \n
\n `);\n\n MenuPage.setDialogueScreenContent(\n `Alpha Matter\n is a rare and powerful substance that fuels galactic civilization. Unfortunately, it is dangerously unstable.`\n );\n MenuPage.dialogueBtnAHandler = () => {\n MenuPage.router.goto('Auth', 'orientation4');\n };\n\n this.initLottieAnimations();\n }\n}\n","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class Orientation4ViewModel extends AbstractViewModel {\n\n initLottieAnimations() {\n const {lottie} = window;\n const {loadAnimation} = lottie;\n const scanLines = loadAnimation({\n container: document.getElementById('lottie-scan-lines'),\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/lottie/transition-scan-lines/data.json'\n });\n const hoagExplosion = loadAnimation({\n container: document.getElementById('lottie-hoag-explosion'),\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: '/lottie/hoag-explosion/data.json'\n });\n\n setTimeout(() => {\n hoagExplosion.play();\n }, 1000);\n\n scanLines.addEventListener('complete', () => {\n document.getElementById('lottie-scan-lines').classList.add('hidden');\n });\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'SN.Corporation'\n )\n ];\n MenuPage.setNavItems(navItems);\n MenuPage.disableCloseBtn();\n MenuPage.showNav();\n\n MenuPage.setBodyContent(`\n
\n
\n
\n
\n
\n
\n
\n
\n
\n Trydor,
\n Hoag System\n
\n
\n
\n
\n
\n `);\n\n MenuPage.setDialogueScreenContent(\n `Improper handling of Alpha Matter during the Hoag Incident resulted in \n catastrophic loss of life.`\n );\n MenuPage.dialogueBtnAHandler = () => {\n MenuPage.router.goto('Auth', 'orientation5');\n };\n\n this.initLottieAnimations();\n }\n}\n","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class Orientation5ViewModel extends AbstractViewModel {\n\n initLottieAnimations() {\n const {lottie} = window;\n const {loadAnimation} = lottie;\n const scanLines = loadAnimation({\n container: document.getElementById('lottie-scan-lines'),\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/lottie/transition-scan-lines/data.json'\n });\n\n scanLines.addEventListener('complete', () => {\n document.getElementById('lottie-scan-lines').classList.add('hidden');\n });\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'SN.Corporation'\n )\n ];\n MenuPage.setNavItems(navItems);\n MenuPage.disableCloseBtn();\n MenuPage.showNav();\n\n MenuPage.setBodyContent(`\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n Mining Regulations\n
\n
\n See file: Ref_72426B.dx\n
\n
\n
\n
\n \n
\n `);\n\n MenuPage.setDialogueScreenContent(\n `Following the incident, the \n Alpha Star Council\n banned sentient lifeforms from operating Alpha mining colonies.`\n );\n MenuPage.dialogueBtnAHandler = () => {\n MenuPage.router.goto('Auth', 'orientation6');\n };\n\n this.initLottieAnimations();\n }\n}\n","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {MenuPage} from \"../../framework/MenuPage\";\nimport {OrientationStructDeployedTemplate} from \"../templates/OrientationStructDeployedTemplate\";\n\nexport class Orientation6ViewModel extends AbstractViewModel {\n\n render() {\n const view = new OrientationStructDeployedTemplate();\n\n view.bodyTextSequence = {\n 0: `Galactic Codex Entry #2722`,\n 1: `Status: DISPUTED`,\n };\n\n view.dialogueSequence = [\n `For this reason, Alpha mining operations are now conducted by a race of advanced machines known as\n Structs.`,\n\n `Structs are not officially recognized as sentient lifeforms by the Alpha Star Council, granting them sole access to Alpha-laced worlds.`\n ];\n\n view.actionOnSequenceEnd = () => {\n MenuPage.router.goto('Auth', 'orientation7');\n }\n\n view.render();\n }\n}\n","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class Orientation7ViewModel extends AbstractViewModel {\n\n initLottieAnimations() {\n const {lottie} = window;\n const {loadAnimation} = lottie;\n const scanLines = loadAnimation({\n container: document.getElementById('lottie-scan-lines'),\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/lottie/transition-scan-lines/data.json'\n });\n loadAnimation({\n container: document.getElementById('hrbot-talking-small'),\n renderer: 'svg',\n loop: true,\n autoplay: true,\n path: '/lottie/hr-bot/data.json'\n });\n loadAnimation({\n container: document.getElementById('lottie-ship-passing-planet'),\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/lottie/ship-passing-planet/data.json'\n });\n\n scanLines.addEventListener('complete', () => {\n document.getElementById('lottie-scan-lines').classList.add('hidden');\n });\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'SN.Corporation'\n )\n ];\n MenuPage.setNavItems(navItems);\n MenuPage.disableCloseBtn();\n MenuPage.showNav();\n\n MenuPage.setBodyContent(`\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n `);\n\n MenuPage.setDialogueIndicatorContent(`
`);\n MenuPage.setDialogueScreenContent(`Your task is to deploy Structs to uncharted worlds across the galaxy and harvest Alpha Matter on behalf of SN.CORPORATION.`);\n MenuPage.dialogueBtnAHandler = () => {\n MenuPage.router.goto('Auth', 'orientation8');\n };\n MenuPage.disableDialogueBtnB();\n MenuPage.enableDialogueBtnA();\n MenuPage.showDialoguePanel();\n\n this.initLottieAnimations()\n }\n}\n","import {HRBotTalkingTemplate} from \"../templates/HRBotTalkingTemplate\";\nimport {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class Orientation8ViewModel extends AbstractViewModel {\n render() {\n const view = new HRBotTalkingTemplate();\n view.startWithScanLines = true;\n view.dialogueSequence = [\n `SN.CORPORATION accepts no responsibility for damages incurred during Alpha mining operations, including but not limited to...`,\n `...piracy, corporate espionage, raids, Alpha-tear events, acts of cosmic beings, interplanetary warf... (See full message: 602,1023 pages)`\n ];\n view.actionOnSequenceEnd = () => {\n MenuPage.router.goto('Auth', 'orientationEnd');\n }\n view.render();\n }\n}","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class OrientationEndViewModel extends AbstractViewModel {\n\n initLottieAnimations() {\n const {lottie} = window;\n const {loadAnimation} = lottie;\n const scanLines = loadAnimation({\n container: document.getElementById('lottie-scan-lines'),\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/lottie/transition-scan-lines/data.json'\n });\n loadAnimation({\n container: document.getElementById('hrbot-talking-small'),\n renderer: 'svg',\n loop: true,\n autoplay: true,\n path: '/lottie/hr-bot/data.json'\n });\n\n scanLines.addEventListener('complete', () => {\n document.getElementById('lottie-scan-lines').classList.add('hidden');\n });\n }\n\n initPageCode() {\n document.getElementById('beginOperations').addEventListener('click', () => {\n console.log('begin operations');\n MenuPage.close();\n });\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'SN.Corporation'\n )\n ];\n MenuPage.setNavItems(navItems);\n MenuPage.disableCloseBtn();\n MenuPage.showNav();\n\n MenuPage.setBodyContent(`\n
\n
\n
\n
\n \n
\n
Orientation Complete
\n
\n \n
\n
\n \n
\n `);\n\n MenuPage.setDialogueIndicatorContent(`
`);\n MenuPage.setDialogueScreenContent(\n `Your orientation has now been completed. It is time for you to commence operations on your first planet.`\n );\n MenuPage.clearDialogueBtnAHandler();\n MenuPage.clearDialogueBtnBHandler();\n MenuPage.disableDialogueBtnA();\n MenuPage.disableDialogueBtnB();\n\n this.initLottieAnimations();\n this.initPageCode();\n }\n}\n","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {PageHeader} from \"../templates/partials/PageHeader\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class RecoveryKeyConfirmationViewModel extends AbstractViewModel {\n /**\n * @param {GameState} gameState\n * @param {AuthManager} authManager\n */\n constructor(\n gameState,\n authManager\n ) {\n super();\n this.gameState = gameState;\n this.authManager = authManager;\n }\n\n initPageCode() {\n const recoveryKeyInput = document.getElementById('recovery-key-input');\n recoveryKeyInput.addEventListener('keyup', () => {\n const submitBtn = document.getElementById('submit-btn');\n\n if (recoveryKeyInput.value.length > 0 && submitBtn.classList.contains('sui-mod-disabled')) {\n submitBtn.disabled = false;\n submitBtn.classList.remove('sui-mod-disabled');\n submitBtn.classList.add('sui-mod-primary');\n } else if (recoveryKeyInput.value.length === 0 && submitBtn.classList.contains('sui-mod-primary')) {\n submitBtn.disabled = true;\n submitBtn.classList.remove('sui-mod-primary');\n submitBtn.classList.add('sui-mod-disabled');\n }\n });\n\n const submitBtnHandler = () => {\n const recoveryKeyInput = document.getElementById('recovery-key-input');\n recoveryKeyInput.value = recoveryKeyInput.value.replace(/\\s\\s+/g, ' ');\n\n if (recoveryKeyInput.value !== this.gameState.mnemonic) {\n\n MenuPage.router.goto('Auth', 'signupRecoveryKeyConfirmFail', {view: 'CONFIRM_FAIL'});\n\n } else {\n\n this.authManager.signup(this.gameState.mnemonic).then((success) => {\n if (success) {\n this.gameState.save();\n\n MenuPage.router.goto('Auth', 'signupSuccess');\n } else {\n MenuPage.router.goto('Auth', 'signupRecoveryKeyConfirmFail', {view: 'CONFIRM_FAIL'});\n }\n });\n\n }\n };\n\n document.getElementById('submit-btn').addEventListener('click', submitBtnHandler);\n recoveryKeyInput.addEventListener('keyup', (e) => {\n if (e.key === 'Enter') {\n submitBtnHandler();\n }\n });\n }\n\n async render() {\n const pageHeader = new PageHeader();\n pageHeader.pageLabel = 'Confirm Recovery Key';\n pageHeader.showBackButton = true;\n pageHeader.backButtonHandler = () => {\n MenuPage.router.goto('Auth', 'signupRecoveryKeyCreation');\n };\n\n MenuPage.hideAndClearNav();\n\n MenuPage.setBodyContent(`\n
\n \n ${pageHeader.render()}\n \n
\n
\n
To confirm your Recovery Key, enter each word, in order, separated by spaces.
\n
\n
\n \n \n
\n
\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n pageHeader.init();\n this.initPageCode();\n }\n}","import {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {PageHeader} from \"../templates/partials/PageHeader\";\n\nexport class RecoveryKeyCreationViewModel extends AbstractViewModel {\n\n /**\n * @param mnemonic\n */\n constructor(mnemonic) {\n super();\n this.mnemonic = mnemonic;\n }\n\n /**\n * @param {string} mnemonic\n * @return {string} html\n */\n renderRecoveryKeyHtml(mnemonic) {\n const mnemonicArray = mnemonic.split(' ');\n\n let html = `
`;\n\n for (let i = 0; i < mnemonicArray.length; i++) {\n html += `\n
\n ${i + 1}\n ${mnemonicArray[i]}\n
\n `;\n }\n\n html += `
`;\n\n return html;\n }\n\n initPageCode() {\n document.getElementById('display-recovery-key-btn').addEventListener('click', () => {\n document.getElementById('display-recovery-key-btn').classList.add('hidden');\n document.getElementById('recovery-key').classList.remove('hidden');\n\n const writtenDownBtn = document.getElementById('written-down-btn');\n writtenDownBtn.classList.remove('sui-mod-disabled');\n writtenDownBtn.classList.add('sui-mod-primary');\n writtenDownBtn.disabled = false;\n });\n\n document.getElementById('written-down-btn').addEventListener('click', () => {\n MenuPage.router.goto('Auth', 'signupRecoveryKeyConfirmation');\n });\n }\n\n /**\n * @param {string} pageLabel\n * @param {boolean} showBackButton\n * @param {function} backButtonHandler\n * @param {string} messageHtml\n * @param {string} writtenDownBtnLabel\n * @param {function} customCodeCallback\n */\n renderPage(\n pageLabel,\n showBackButton,\n backButtonHandler,\n messageHtml,\n writtenDownBtnLabel,\n customCodeCallback = () => {}\n ) {\n const recoveryKeyHtml = this.renderRecoveryKeyHtml(this.mnemonic);\n\n const pageHeader = new PageHeader();\n pageHeader.pageLabel = pageLabel;\n pageHeader.showBackButton = true;\n pageHeader.backButtonHandler = backButtonHandler;\n\n MenuPage.hideAndClearNav();\n\n MenuPage.setBodyContent(`\n
\n \n ${pageHeader.render()}\n \n
\n
\n ${messageHtml}\n
\n
\n \n \n Display Recovery Key\n \n ${ recoveryKeyHtml }\n
\n
\n \n
\n
\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n\n pageHeader.init();\n\n customCodeCallback();\n }\n\n renderCreationView() {\n this.renderPage(\n 'Create Recovery Key',\n false,\n () => {},\n `\n
Write down your 12-word Recovery Key and keep it in a safe place. You will need this Key to recover your account if you log out or clear your browser cache.
\n Learn More About Recovery Keys\n `,\n `I've Written It Down`,\n () => {\n document.getElementById('recovery-key-faq-link').addEventListener('click', () => {\n MenuPage.router.goto(\n 'Auth',\n 'signupRecoveryKeyFaq',\n {\n backButtonHandler: () => {\n MenuPage.router.goto('Auth', 'signupRecoveryKeyCreation');\n }\n }\n );\n });\n }\n );\n }\n\n renderConfirmFail() {\n this.renderPage(\n 'Confirm Recovery Key',\n true,\n () => {\n MenuPage.router.goto('Auth', 'signupRecoveryKeyConfirmation');\n },\n `\n
\n \n Incorrect Recovery Key\n
\n
Please review the exact spelling and order of your 12-word Recovery Key below, then try again.
\n `,\n `Try Again`\n );\n }\n\n render(view = 'CREATION') {\n if (view === 'CREATION') {\n this.renderCreationView();\n } else if (view === 'CONFIRM_FAIL') {\n this.renderConfirmFail();\n }\n console.log(this.mnemonic);\n }\n}","import {PageHeader} from \"../templates/partials/PageHeader\";\nimport {MenuPage} from \"../../framework/MenuPage\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class RecoveryKeyFaqViewModel extends AbstractViewModel {\n\n /**\n * @param {function} backButtonHandler\n */\n constructor(backButtonHandler) {\n super();\n this.backButtonHandler = backButtonHandler;\n this.loginFromAnotherDeviceLinkId = 'recovery-key-faq-login-from-another-device-link';\n }\n\n initPageCode() {\n document.getElementById(this.loginFromAnotherDeviceLinkId).addEventListener('click', () => {\n MenuPage.router.goto('Auth', 'loginActivateDevice');\n });\n }\n\n render() {\n const pageHeader = new PageHeader();\n pageHeader.pageLabel = 'About Recovery Keys';\n pageHeader.showBackButton = true;\n pageHeader.backButtonHandler = this.backButtonHandler;\n\n MenuPage.hideAndClearNav();\n\n MenuPage.setBodyContent(`\n
\n \n ${pageHeader.render()}\n \n
\n
\n
What is a Recovery Key?
\n
Your recovery key is the 12-word secrect code that was given to you created your account.
\n
\n
\n
Why do I need my Recovery Key?
\n
In the event that you lose access to your account, you can use your Recovery Key to log in.
\n
\n
\n
How can I protect my Recovery Key?
\n
It is important to write down your Recovery Key and keep it in a safe place. You may also consider saving your Recovery Key to a password manager. We do not store Recovery Keys and cannot help you retrieve your Key if you lose it.
\n
\n
\n
I want to log in on a new device. Do I need my recovery Key?
\n
No. If you currently have access to a logged-in device, you can log in a new device by using the Login From Another Device option.
\n
\n Note: this option is only available if the logged-in device has Account Management permissions.
\n
\n If you have no currently logged-in devices with Account Management permissions, you will need to use your Recovery Key to log in again.\n
\n
\n
\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n pageHeader.init();\n this.initPageCode();\n }\n}","import {HRBotTalkingTemplate} from \"../templates/HRBotTalkingTemplate\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class RecoveryKeyIntroViewModel {\n render() {\n const view = new HRBotTalkingTemplate();\n view.startWithScanLines = true;\n view.dialogueSequence = [\n `Next, you will create a Recovery Key for your account. This Key allows you to recover your account in the event that you lose access.`,\n ];\n view.actionOnSequenceEnd = () => {\n MenuPage.router.goto('Auth', 'signupRecoveryKeyCreation');\n }\n view.render();\n }\n}","import {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\nimport {USERNAME_PATTERN} from \"../../constants/RegexPattern\";\nimport {AbstractViewModel} from \"../../framework/AbstractViewModel\";\n\nexport class SetUsernameViewModel extends AbstractViewModel {\n\n /**\n * @param {GameState} gameState\n */\n constructor(gameState) {\n super();\n this.gameState = gameState;\n }\n\n initLottieAnimations() {\n const {lottie} = window;\n const {loadAnimation} = lottie;\n const scanLines = loadAnimation({\n container: document.getElementById('lottie-scan-lines'),\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/lottie/transition-scan-lines/data.json'\n });\n loadAnimation({\n container: document.getElementById('hrbot-talking-small'),\n renderer: 'svg',\n loop: true,\n autoplay: true,\n path: '/lottie/hr-bot/data.json'\n });\n\n scanLines.addEventListener('complete', () => {\n document.getElementById('lottie-scan-lines').classList.add('hidden');\n });\n }\n\n initPageCode() {\n const usernameInput = document.getElementById('username-input');\n usernameInput.addEventListener('keyup', () => {\n const submitBtn = document.getElementById('submit-btn');\n\n if (usernameInput.value.length > 0 && submitBtn.classList.contains('sui-mod-disabled')) {\n submitBtn.disabled = false;\n submitBtn.classList.remove('sui-mod-disabled');\n submitBtn.classList.add('sui-mod-primary');\n } else if (usernameInput.value.length === 0 && submitBtn.classList.contains('sui-mod-primary')) {\n submitBtn.disabled = true;\n submitBtn.classList.remove('sui-mod-primary');\n submitBtn.classList.add('sui-mod-disabled');\n }\n });\n\n const submitBtnHandler = () => {\n const usernameInput = document.getElementById('username-input');\n\n if (!USERNAME_PATTERN.test(usernameInput.value)) {\n MenuPage.setDialogueScreenContent(`Only letters, numbers, - and _ are allowed. Length must be between 3 and 20 characters.`, true);\n } else {\n this.gameState.signupRequest.username = document.getElementById('username-input').value;\n\n this.renderSuccessfulSubmission();\n }\n };\n\n document.getElementById('submit-btn').addEventListener('click', submitBtnHandler);\n usernameInput.addEventListener('keyup', (e) => {\n if (e.key === 'Enter') {\n submitBtnHandler();\n }\n });\n }\n\n renderSuccessfulSubmission() {\n const setUsernameNameSection = document.getElementById('set-username-name-section');\n\n setUsernameNameSection.classList.remove('set-username-input-mode');\n setUsernameNameSection.classList.add('set-username-display-mode');\n\n setUsernameNameSection.innerHTML = `\n

${this.gameState.signupRequest.username}

\n
Profile Created
\n `;\n\n MenuPage.setDialogueScreenContent(`Welcome, ${this.gameState.signupRequest.username}.`, true);\n MenuPage.dialogueBtnAHandler = () => {\n MenuPage.router.goto('Auth', 'signupRecoveryKeyIntro');\n };\n MenuPage.enableDialogueBtnA();\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'SN.Corporation'\n )\n ];\n MenuPage.setNavItems(navItems);\n\n MenuPage.setBodyContent(`\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n `);\n\n MenuPage.setDialogueIndicatorContent(`
`);\n MenuPage.setDialogueScreenContent(`To begin, please confirm your identity.`, true);\n MenuPage.clearDialogueBtnAHandler();\n MenuPage.clearDialogueBtnBHandler();\n MenuPage.disableDialogueBtnA();\n MenuPage.disableDialogueBtnB();\n MenuPage.showDialoguePanel();\n\n this.initLottieAnimations()\n\n this.initPageCode();\n }\n}","import {AbstractViewModel} from \"../../framework/AbstractViewModel\";\nimport {PageHeader} from \"../templates/partials/PageHeader\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class SignupSuccessViewModel extends AbstractViewModel {\n\n initPageCode() {\n document.getElementById('return-to-game-btn').addEventListener('click', () => {\n MenuPage.router.goto('Auth', 'loggingIn');\n });\n }\n\n render() {\n const pageHeader = new PageHeader();\n pageHeader.pageLabel = 'Success!';\n\n MenuPage.hideAndClearNav();\n\n MenuPage.setBodyContent(`\n
\n \n ${pageHeader.render()}\n \n
\n
\n
\n \n Success!\n
\n
Your account has been created. Keep your Recovery Key safe; you will need it if you lose access to your account.
\n
\n
\n \n
\n
\n \n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}","import {MenuPage} from \"../../framework/MenuPage\";\n\nexport class ConfirmTemplate {\n\n constructor() {\n this.showResources = false;\n\n this.headerBtnLabel = '';\n this.headerShowBackBtn = false;\n this.headerBackBtnHandler = () => {};\n\n this.messageHeaderColorClass = '';\n this.messageHeaderIconClass = '';\n this.messageHeaderText = '';\n this.messageBody1HTML = '';\n this.messageBody2HTML = '';\n\n this.confirmBtn1Enabled = false;\n this.confirmBtn1Id = 'confirm-template-btn-1';\n this.confirmBtn1Label = '';\n this.confirmBtn1ColorClass = '';\n\n this.confirmBtn2Enabled = false;\n this.confirmBtn2Id = 'confirm-template-btn-2';\n this.confirmBtn2Label = '';\n this.confirmBtn2ColorClass = '';\n\n this.initPageCode = () => {};\n }\n\n render() {\n MenuPage.enablePageTemplate(\n MenuPage.navItemAccountId,\n this.showResources\n );\n\n MenuPage.setPageTemplateHeaderBtn(\n this.headerBtnLabel,\n this.headerShowBackBtn,\n this.headerBackBtnHandler\n );\n\n let confirmBtn1HTML = '';\n let confirmBtn2HTML = '';\n\n if (this.confirmBtn1Enabled) {\n confirmBtn1HTML = `\n
\n \n
\n `;\n }\n\n if (this.confirmBtn2Enabled) {\n confirmBtn2HTML = `\n
\n \n
\n `;\n }\n\n MenuPage.setPageTemplateContent(`\n
\n
\n
\n \n ${this.messageHeaderText}\n
\n
${this.messageBody1HTML}
\n
\n \n
${this.messageBody2HTML}
\n \n
\n ${confirmBtn1HTML}\n ${confirmBtn2HTML}\n
\n\n
\n `);\n\n MenuPage.hideAndClearDialoguePanel();\n\n this.initPageCode();\n }\n}","import {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class HRBotTalkingTemplate {\n\n constructor() {\n this.dialogueSequence = [];\n this.dialogueIndex = 0;\n this.actionOnSequenceEnd = () => {};\n this.startWithScanLines = false;\n this.initPageCode = () => {};\n }\n\n initLottieAnimations() {\n const {lottie} = window;\n const {loadAnimation} = lottie;\n\n if (this.startWithScanLines) {\n\n const scanLines = loadAnimation({\n container: document.getElementById('lottie-scan-lines'),\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/lottie/transition-scan-lines/data.json'\n });\n scanLines.addEventListener('complete', () => {\n document.getElementById('lottie-scan-lines').classList.add('hidden');\n });\n\n }\n\n const lottieHRBotLarge = loadAnimation({\n container: document.getElementById('hrbot-talking-large'),\n renderer: 'svg',\n loop: true,\n autoplay: false,\n path: '/lottie/hr-bot/data.json'\n });\n const lottieHRBotSmall = loadAnimation({\n container: document.getElementById('hrbot-talking-small'),\n renderer: 'svg',\n loop: true,\n autoplay: false,\n path: '/lottie/hr-bot/data.json'\n });\n setTimeout(() => {\n lottieHRBotLarge.play();\n lottieHRBotSmall.play();\n }, 500);\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'SN.Corporation'\n )\n ];\n MenuPage.setNavItems(navItems);\n MenuPage.disableCloseBtn();\n\n MenuPage.setBodyContent(`\n
\n
\n
\n
\n
\n
\n `);\n\n MenuPage.setDialogueIndicatorContent(`
`, true);\n MenuPage.setDialogueScreenContent(this.dialogueSequence[0], true);\n\n MenuPage.disableDialogueBtnB();\n MenuPage.clearDialogueBtnBHandler();\n MenuPage.dialogueBtnAHandler = () => {\n this.dialogueIndex++;\n\n if (this.dialogueIndex < this.dialogueSequence.length) {\n MenuPage.setDialogueScreenContent(this.dialogueSequence[this.dialogueIndex], true);\n this.initPageCode();\n }\n\n if (this.dialogueIndex === this.dialogueSequence.length) {\n this.actionOnSequenceEnd();\n }\n };\n MenuPage.enableDialogueBtnA();\n MenuPage.showDialoguePanel();\n\n this.initLottieAnimations();\n this.initPageCode();\n }\n}","import {NavItemDTO} from \"../../dtos/NavItemDTO\";\nimport {MenuPage} from \"../../framework/MenuPage\";\n\nexport class OrientationStructDeployedTemplate {\n\n constructor() {\n this.sequenceIndex = 0;\n\n this.dialogueSequence = []; // Dialogue always changes in the sequence index changes.\n\n // Objects allow you to specify which indexes the body text and page code should change.\n this.bodyTextSequence = {};\n this.pageCodeSequence = {};\n\n this.actionOnSequenceEnd = () => {};\n }\n\n initLottieAnimations() {\n const {lottie} = window;\n const {loadAnimation} = lottie;\n const scanLines = loadAnimation({\n container: document.getElementById('lottie-scan-lines'),\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/lottie/transition-scan-lines/data.json'\n });\n loadAnimation({\n container: document.getElementById('hrbot-talking-small'),\n renderer: 'svg',\n loop: true,\n autoplay: true,\n path: '/lottie/hr-bot/data.json'\n });\n\n scanLines.addEventListener('complete', () => {\n document.getElementById('lottie-scan-lines').classList.add('hidden');\n });\n }\n\n initPageCode() {\n if (this.pageCodeSequence[0]) {\n this.pageCodeSequence[0]();\n }\n }\n\n render() {\n const navItems = [\n new NavItemDTO(\n 'nav-item-text-only',\n 'SN.Corporation'\n )\n ];\n MenuPage.setNavItems(navItems);\n MenuPage.disableCloseBtn();\n MenuPage.showNav();\n\n MenuPage.setBodyContent(`\n
\n\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n STRUCTS\n
\n
\n Galactic Codex Entry #2722\n
\n
\n
\n
\n
\n \n
\n `);\n\n MenuPage.setDialogueIndicatorContent(`
`);\n MenuPage.setDialogueScreenContent(\n `For this reason, Alpha mining operations are now conducted by a race of advanced machines knowns as\n Structs.`\n );\n MenuPage.dialogueBtnAHandler = () => {\n this.sequenceIndex++;\n\n if (this.sequenceIndex < this.dialogueSequence.length) {\n const bodyTextElm = document.getElementById('orientation-struct-deployment-body-text');\n bodyTextElm.innerHTML = this.bodyTextSequence[this.sequenceIndex];\n\n MenuPage.setDialogueScreenContent(this.dialogueSequence[this.sequenceIndex], true);\n\n if (this.pageCodeSequence[this.sequenceIndex]) {\n this.pageCodeSequence[this.sequenceIndex]();\n }\n }\n\n if (this.sequenceIndex === this.dialogueSequence.length) {\n this.actionOnSequenceEnd();\n }\n };\n MenuPage.disableDialogueBtnB();\n MenuPage.enableDialogueBtnA();\n MenuPage.showDialoguePanel();\n\n this.initLottieAnimations();\n this.initPageCode();\n }\n}","export class PageHeader {\n\n constructor() {\n this.pageLabel = '';\n this.showBackButton = false;\n this.backButtonHandler = () => {};\n }\n\n init() {\n document.getElementById('page-header-back-button').addEventListener('click', this.backButtonHandler);\n }\n\n render() {\n const backButtonIcon = this.showBackButton\n ? ``\n : '';\n const backButtonHref = this.showBackButton\n ? 'href=\"javascript: void(0)\"'\n : '';\n\n return `\n \n\n \n\n \n `;\n }\n}","import {MenuPage} from \"../../../framework/MenuPage\";\n\nexport class Pagination {\n\n constructor(\n currentPage,\n resultsPerPage,\n totalResults,\n idPrefix,\n targetController,\n targetAction,\n options = {}\n ) {\n this.currentPage = currentPage;\n this.resultsPerPage = resultsPerPage;\n this.totalResults = totalResults;\n this.totalPages = Math.ceil(this.totalResults / this.resultsPerPage);\n this.idPrefix = idPrefix;\n this.targetController = targetController;\n this.targetAction = targetAction;\n this.pageBtns = [];\n this.options = options;\n }\n\n init() {\n if (this.currentPage > 1) {\n document.getElementById(`${this.idPrefix}-pagi-prev-btn`).addEventListener('click', () => {\n MenuPage.router.goto(this.targetController, this.targetAction, {...this.options, page: this.currentPage - 1});\n });\n }\n\n if (this.currentPage < this.totalPages) {\n document.getElementById(`${this.idPrefix}-pagi-next-btn`).addEventListener('click', () => {\n MenuPage.router.goto(this.targetController, this.targetAction, {...this.options, page: this.currentPage + 1});\n });\n }\n\n this.pageBtns.forEach((pageBtnNumber) => {\n document.getElementById(`${this.idPrefix}-pagi-${pageBtnNumber}-btn`).addEventListener('click', () => {\n MenuPage.router.goto(this.targetController, this.targetAction, {...this.options, page: pageBtnNumber});\n });\n });\n }\n\n renderPreviousPageBtn() {\n if (this.currentPage === 1) {\n return '';\n }\n\n return `\n \n \n \n `;\n }\n\n renderNextPageBtn() {\n if (this.currentPage >= this.totalPages) {\n return '';\n }\n\n return `\n \n \n \n `;\n }\n\n\n renderPageBtn(label, isActive = false) {\n const activeClass = isActive ? 'sui-mod-active' : '';\n\n if (label === '...') {\n return `
...
`;\n }\n\n this.pageBtns.push(label);\n\n return `\n ${label}\n `;\n }\n\n renderNumberedPageBtns() {\n let btn1 = this.renderPageBtn(1, (this.currentPage === 1));\n let btn2 = '';\n let btn3 = '';\n let btn4 = '';\n let btn5 = '';\n\n if (this.totalPages >= 2) {\n if ((this.totalPages <= 5 || this.currentPage <= 3)) {\n btn2 = this.renderPageBtn(2, (this.currentPage === 2));\n } else {\n btn2 = this.renderPageBtn('...');\n }\n }\n\n if (this.totalPages >= 3) {\n if (this.totalPages <= 5 || this.currentPage <= 3) {\n btn3 = this.renderPageBtn(3, (this.currentPage === 3));\n } else if (this.currentPage > 3 && this.totalPages - this.currentPage > 2) {\n btn3 = this.renderPageBtn(this.currentPage, true);\n } else {\n btn3 = this.renderPageBtn('...');\n }\n }\n\n if (this.totalPages >= 4) {\n if (this.totalPages <= 5) {\n btn4 = this.renderPageBtn(4, (this.currentPage === 4));\n } else {\n btn4 = this.renderPageBtn('...');\n }\n }\n\n if (this.totalPages >= 5) {\n if (this.totalPages - this.currentPage <= 2) {\n btn3 = this.renderPageBtn(this.totalPages - 2, (this.currentPage === this.totalPages - 2));\n btn4 = this.renderPageBtn(this.totalPages - 1, (this.currentPage === this.totalPages - 1));\n }\n\n btn5 = this.renderPageBtn(this.totalPages, (this.currentPage === this.totalPages));\n }\n\n return `\n
\n ${btn1}${btn2}${btn3}${btn4}${btn5}\n
\n `;\n }\n\n render() {\n\n const previousPageBtn = this.renderPreviousPageBtn();\n const nextPageBtn = this.renderNextPageBtn();\n const pageBtns = this.renderNumberedPageBtns();\n\n return `\n \n\n
\n ${previousPageBtn}\n ${pageBtns}\n ${nextPageBtn}\n
\n\n \n `;\n }\n}","export class SystemModal {\n\n constructor() {\n this.systemModalId = 'system-modal';\n this.iconClasses = 'icon-deploy';\n this.messageId = 'system-modal-message';\n this.cancelBtnId = 'system-modal-cancel-btn';\n this.confirmBtnId = 'system-modal-confirm-btn';\n this.cancelBtnHandler = () => {\n this.hide();\n };\n this.confirmBtnHandler = () => {};\n this.cancelBtnLabel = 'Cancel';\n this.confirmBtnLabel = 'Confirm';\n }\n\n init() {\n document.getElementById(this.cancelBtnId).addEventListener('click', this.cancelBtnHandler);\n document.getElementById(this.confirmBtnId).addEventListener('click', this.confirmBtnHandler);\n }\n\n show() {\n document.getElementById(this.systemModalId).classList.remove('hidden');\n }\n\n hide() {\n document.getElementById(this.systemModalId).classList.add('hidden');\n }\n\n render() {\n return `\n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n ${this.confirmBtnLabel}\n
\n
\n
\n
\n \n \n `;\n }\n}","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bip39 = exports.EnglishMnemonic = void 0;\nexports.entropyToMnemonic = entropyToMnemonic;\nexports.mnemonicToEntropy = mnemonicToEntropy;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst pbkdf2_1 = require(\"./pbkdf2\");\nconst sha_1 = require(\"./sha\");\nconst wordlist = [\n \"abandon\",\n \"ability\",\n \"able\",\n \"about\",\n \"above\",\n \"absent\",\n \"absorb\",\n \"abstract\",\n \"absurd\",\n \"abuse\",\n \"access\",\n \"accident\",\n \"account\",\n \"accuse\",\n \"achieve\",\n \"acid\",\n \"acoustic\",\n \"acquire\",\n \"across\",\n \"act\",\n \"action\",\n \"actor\",\n \"actress\",\n \"actual\",\n \"adapt\",\n \"add\",\n \"addict\",\n \"address\",\n \"adjust\",\n \"admit\",\n \"adult\",\n \"advance\",\n \"advice\",\n \"aerobic\",\n \"affair\",\n \"afford\",\n \"afraid\",\n \"again\",\n \"age\",\n \"agent\",\n \"agree\",\n \"ahead\",\n \"aim\",\n \"air\",\n \"airport\",\n \"aisle\",\n \"alarm\",\n \"album\",\n \"alcohol\",\n \"alert\",\n \"alien\",\n \"all\",\n \"alley\",\n \"allow\",\n \"almost\",\n \"alone\",\n \"alpha\",\n \"already\",\n \"also\",\n \"alter\",\n \"always\",\n \"amateur\",\n \"amazing\",\n \"among\",\n \"amount\",\n \"amused\",\n \"analyst\",\n \"anchor\",\n \"ancient\",\n \"anger\",\n \"angle\",\n \"angry\",\n \"animal\",\n \"ankle\",\n \"announce\",\n \"annual\",\n \"another\",\n \"answer\",\n \"antenna\",\n \"antique\",\n \"anxiety\",\n \"any\",\n \"apart\",\n \"apology\",\n \"appear\",\n \"apple\",\n \"approve\",\n \"april\",\n \"arch\",\n \"arctic\",\n \"area\",\n \"arena\",\n \"argue\",\n \"arm\",\n \"armed\",\n \"armor\",\n \"army\",\n \"around\",\n \"arrange\",\n \"arrest\",\n \"arrive\",\n \"arrow\",\n \"art\",\n \"artefact\",\n \"artist\",\n \"artwork\",\n \"ask\",\n \"aspect\",\n \"assault\",\n \"asset\",\n \"assist\",\n \"assume\",\n \"asthma\",\n \"athlete\",\n \"atom\",\n \"attack\",\n \"attend\",\n \"attitude\",\n \"attract\",\n \"auction\",\n \"audit\",\n \"august\",\n \"aunt\",\n \"author\",\n \"auto\",\n \"autumn\",\n \"average\",\n \"avocado\",\n \"avoid\",\n \"awake\",\n \"aware\",\n \"away\",\n \"awesome\",\n \"awful\",\n \"awkward\",\n \"axis\",\n \"baby\",\n \"bachelor\",\n \"bacon\",\n \"badge\",\n \"bag\",\n \"balance\",\n \"balcony\",\n \"ball\",\n \"bamboo\",\n \"banana\",\n \"banner\",\n \"bar\",\n \"barely\",\n \"bargain\",\n \"barrel\",\n \"base\",\n \"basic\",\n \"basket\",\n \"battle\",\n \"beach\",\n \"bean\",\n \"beauty\",\n \"because\",\n \"become\",\n \"beef\",\n \"before\",\n \"begin\",\n \"behave\",\n \"behind\",\n \"believe\",\n \"below\",\n \"belt\",\n \"bench\",\n \"benefit\",\n \"best\",\n \"betray\",\n \"better\",\n \"between\",\n \"beyond\",\n \"bicycle\",\n \"bid\",\n \"bike\",\n \"bind\",\n \"biology\",\n \"bird\",\n \"birth\",\n \"bitter\",\n \"black\",\n \"blade\",\n \"blame\",\n \"blanket\",\n \"blast\",\n \"bleak\",\n \"bless\",\n \"blind\",\n \"blood\",\n \"blossom\",\n \"blouse\",\n \"blue\",\n \"blur\",\n \"blush\",\n \"board\",\n \"boat\",\n \"body\",\n \"boil\",\n \"bomb\",\n \"bone\",\n \"bonus\",\n \"book\",\n \"boost\",\n \"border\",\n \"boring\",\n \"borrow\",\n \"boss\",\n \"bottom\",\n \"bounce\",\n \"box\",\n \"boy\",\n \"bracket\",\n \"brain\",\n \"brand\",\n \"brass\",\n \"brave\",\n \"bread\",\n \"breeze\",\n \"brick\",\n \"bridge\",\n \"brief\",\n \"bright\",\n \"bring\",\n \"brisk\",\n \"broccoli\",\n \"broken\",\n \"bronze\",\n \"broom\",\n \"brother\",\n \"brown\",\n \"brush\",\n \"bubble\",\n \"buddy\",\n \"budget\",\n \"buffalo\",\n \"build\",\n \"bulb\",\n \"bulk\",\n \"bullet\",\n \"bundle\",\n \"bunker\",\n \"burden\",\n \"burger\",\n \"burst\",\n \"bus\",\n \"business\",\n \"busy\",\n \"butter\",\n \"buyer\",\n \"buzz\",\n \"cabbage\",\n \"cabin\",\n \"cable\",\n \"cactus\",\n \"cage\",\n \"cake\",\n \"call\",\n \"calm\",\n \"camera\",\n \"camp\",\n \"can\",\n \"canal\",\n \"cancel\",\n \"candy\",\n \"cannon\",\n \"canoe\",\n \"canvas\",\n \"canyon\",\n \"capable\",\n \"capital\",\n \"captain\",\n \"car\",\n \"carbon\",\n \"card\",\n \"cargo\",\n \"carpet\",\n \"carry\",\n \"cart\",\n \"case\",\n \"cash\",\n \"casino\",\n \"castle\",\n \"casual\",\n \"cat\",\n \"catalog\",\n \"catch\",\n \"category\",\n \"cattle\",\n \"caught\",\n \"cause\",\n \"caution\",\n \"cave\",\n \"ceiling\",\n \"celery\",\n \"cement\",\n \"census\",\n \"century\",\n \"cereal\",\n \"certain\",\n \"chair\",\n \"chalk\",\n \"champion\",\n \"change\",\n \"chaos\",\n \"chapter\",\n \"charge\",\n \"chase\",\n \"chat\",\n \"cheap\",\n \"check\",\n \"cheese\",\n \"chef\",\n \"cherry\",\n \"chest\",\n \"chicken\",\n \"chief\",\n \"child\",\n \"chimney\",\n \"choice\",\n \"choose\",\n \"chronic\",\n \"chuckle\",\n \"chunk\",\n \"churn\",\n \"cigar\",\n \"cinnamon\",\n \"circle\",\n \"citizen\",\n \"city\",\n \"civil\",\n \"claim\",\n \"clap\",\n \"clarify\",\n \"claw\",\n \"clay\",\n \"clean\",\n \"clerk\",\n \"clever\",\n \"click\",\n \"client\",\n \"cliff\",\n \"climb\",\n \"clinic\",\n \"clip\",\n \"clock\",\n \"clog\",\n \"close\",\n \"cloth\",\n \"cloud\",\n \"clown\",\n \"club\",\n \"clump\",\n \"cluster\",\n \"clutch\",\n \"coach\",\n \"coast\",\n \"coconut\",\n \"code\",\n \"coffee\",\n \"coil\",\n \"coin\",\n \"collect\",\n \"color\",\n \"column\",\n \"combine\",\n \"come\",\n \"comfort\",\n \"comic\",\n \"common\",\n \"company\",\n \"concert\",\n \"conduct\",\n \"confirm\",\n \"congress\",\n \"connect\",\n \"consider\",\n \"control\",\n \"convince\",\n \"cook\",\n \"cool\",\n \"copper\",\n \"copy\",\n \"coral\",\n \"core\",\n \"corn\",\n \"correct\",\n \"cost\",\n \"cotton\",\n \"couch\",\n \"country\",\n \"couple\",\n \"course\",\n \"cousin\",\n \"cover\",\n \"coyote\",\n \"crack\",\n \"cradle\",\n \"craft\",\n \"cram\",\n \"crane\",\n \"crash\",\n \"crater\",\n \"crawl\",\n \"crazy\",\n \"cream\",\n \"credit\",\n \"creek\",\n \"crew\",\n \"cricket\",\n \"crime\",\n \"crisp\",\n \"critic\",\n \"crop\",\n \"cross\",\n \"crouch\",\n \"crowd\",\n \"crucial\",\n \"cruel\",\n \"cruise\",\n \"crumble\",\n \"crunch\",\n \"crush\",\n \"cry\",\n \"crystal\",\n \"cube\",\n \"culture\",\n \"cup\",\n \"cupboard\",\n \"curious\",\n \"current\",\n \"curtain\",\n \"curve\",\n \"cushion\",\n \"custom\",\n \"cute\",\n \"cycle\",\n \"dad\",\n \"damage\",\n \"damp\",\n \"dance\",\n \"danger\",\n \"daring\",\n \"dash\",\n \"daughter\",\n \"dawn\",\n \"day\",\n \"deal\",\n \"debate\",\n \"debris\",\n \"decade\",\n \"december\",\n \"decide\",\n \"decline\",\n \"decorate\",\n \"decrease\",\n \"deer\",\n \"defense\",\n \"define\",\n \"defy\",\n \"degree\",\n \"delay\",\n \"deliver\",\n \"demand\",\n \"demise\",\n \"denial\",\n \"dentist\",\n \"deny\",\n \"depart\",\n \"depend\",\n \"deposit\",\n \"depth\",\n \"deputy\",\n \"derive\",\n \"describe\",\n \"desert\",\n \"design\",\n \"desk\",\n \"despair\",\n \"destroy\",\n \"detail\",\n \"detect\",\n \"develop\",\n \"device\",\n \"devote\",\n \"diagram\",\n \"dial\",\n \"diamond\",\n \"diary\",\n \"dice\",\n \"diesel\",\n \"diet\",\n \"differ\",\n \"digital\",\n \"dignity\",\n \"dilemma\",\n \"dinner\",\n \"dinosaur\",\n \"direct\",\n \"dirt\",\n \"disagree\",\n \"discover\",\n \"disease\",\n \"dish\",\n \"dismiss\",\n \"disorder\",\n \"display\",\n \"distance\",\n \"divert\",\n \"divide\",\n \"divorce\",\n \"dizzy\",\n \"doctor\",\n \"document\",\n \"dog\",\n \"doll\",\n \"dolphin\",\n \"domain\",\n \"donate\",\n \"donkey\",\n \"donor\",\n \"door\",\n \"dose\",\n \"double\",\n \"dove\",\n \"draft\",\n \"dragon\",\n \"drama\",\n \"drastic\",\n \"draw\",\n \"dream\",\n \"dress\",\n \"drift\",\n \"drill\",\n \"drink\",\n \"drip\",\n \"drive\",\n \"drop\",\n \"drum\",\n \"dry\",\n \"duck\",\n \"dumb\",\n \"dune\",\n \"during\",\n \"dust\",\n \"dutch\",\n \"duty\",\n \"dwarf\",\n \"dynamic\",\n \"eager\",\n \"eagle\",\n \"early\",\n \"earn\",\n \"earth\",\n \"easily\",\n \"east\",\n \"easy\",\n \"echo\",\n \"ecology\",\n \"economy\",\n \"edge\",\n \"edit\",\n \"educate\",\n \"effort\",\n \"egg\",\n \"eight\",\n \"either\",\n \"elbow\",\n \"elder\",\n \"electric\",\n \"elegant\",\n \"element\",\n \"elephant\",\n \"elevator\",\n \"elite\",\n \"else\",\n \"embark\",\n \"embody\",\n \"embrace\",\n \"emerge\",\n \"emotion\",\n \"employ\",\n \"empower\",\n \"empty\",\n \"enable\",\n \"enact\",\n \"end\",\n \"endless\",\n \"endorse\",\n \"enemy\",\n \"energy\",\n \"enforce\",\n \"engage\",\n \"engine\",\n \"enhance\",\n \"enjoy\",\n \"enlist\",\n \"enough\",\n \"enrich\",\n \"enroll\",\n \"ensure\",\n \"enter\",\n \"entire\",\n \"entry\",\n \"envelope\",\n \"episode\",\n \"equal\",\n \"equip\",\n \"era\",\n \"erase\",\n \"erode\",\n \"erosion\",\n \"error\",\n \"erupt\",\n \"escape\",\n \"essay\",\n \"essence\",\n \"estate\",\n \"eternal\",\n \"ethics\",\n \"evidence\",\n \"evil\",\n \"evoke\",\n \"evolve\",\n \"exact\",\n \"example\",\n \"excess\",\n \"exchange\",\n \"excite\",\n \"exclude\",\n \"excuse\",\n \"execute\",\n \"exercise\",\n \"exhaust\",\n \"exhibit\",\n \"exile\",\n \"exist\",\n \"exit\",\n \"exotic\",\n \"expand\",\n \"expect\",\n \"expire\",\n \"explain\",\n \"expose\",\n \"express\",\n \"extend\",\n \"extra\",\n \"eye\",\n \"eyebrow\",\n \"fabric\",\n \"face\",\n \"faculty\",\n \"fade\",\n \"faint\",\n \"faith\",\n \"fall\",\n \"false\",\n \"fame\",\n \"family\",\n \"famous\",\n \"fan\",\n \"fancy\",\n \"fantasy\",\n \"farm\",\n \"fashion\",\n \"fat\",\n \"fatal\",\n \"father\",\n \"fatigue\",\n \"fault\",\n \"favorite\",\n \"feature\",\n \"february\",\n \"federal\",\n \"fee\",\n \"feed\",\n \"feel\",\n \"female\",\n \"fence\",\n \"festival\",\n \"fetch\",\n \"fever\",\n \"few\",\n \"fiber\",\n \"fiction\",\n \"field\",\n \"figure\",\n \"file\",\n \"film\",\n \"filter\",\n \"final\",\n \"find\",\n \"fine\",\n \"finger\",\n \"finish\",\n \"fire\",\n \"firm\",\n \"first\",\n \"fiscal\",\n \"fish\",\n \"fit\",\n \"fitness\",\n \"fix\",\n \"flag\",\n \"flame\",\n \"flash\",\n \"flat\",\n \"flavor\",\n \"flee\",\n \"flight\",\n \"flip\",\n \"float\",\n \"flock\",\n \"floor\",\n \"flower\",\n \"fluid\",\n \"flush\",\n \"fly\",\n \"foam\",\n \"focus\",\n \"fog\",\n \"foil\",\n \"fold\",\n \"follow\",\n \"food\",\n \"foot\",\n \"force\",\n \"forest\",\n \"forget\",\n \"fork\",\n \"fortune\",\n \"forum\",\n \"forward\",\n \"fossil\",\n \"foster\",\n \"found\",\n \"fox\",\n \"fragile\",\n \"frame\",\n \"frequent\",\n \"fresh\",\n \"friend\",\n \"fringe\",\n \"frog\",\n \"front\",\n \"frost\",\n \"frown\",\n \"frozen\",\n \"fruit\",\n \"fuel\",\n \"fun\",\n \"funny\",\n \"furnace\",\n \"fury\",\n \"future\",\n \"gadget\",\n \"gain\",\n \"galaxy\",\n \"gallery\",\n \"game\",\n \"gap\",\n \"garage\",\n \"garbage\",\n \"garden\",\n \"garlic\",\n \"garment\",\n \"gas\",\n \"gasp\",\n \"gate\",\n \"gather\",\n \"gauge\",\n \"gaze\",\n \"general\",\n \"genius\",\n \"genre\",\n \"gentle\",\n \"genuine\",\n \"gesture\",\n \"ghost\",\n \"giant\",\n \"gift\",\n \"giggle\",\n \"ginger\",\n \"giraffe\",\n \"girl\",\n \"give\",\n \"glad\",\n \"glance\",\n \"glare\",\n \"glass\",\n \"glide\",\n \"glimpse\",\n \"globe\",\n \"gloom\",\n \"glory\",\n \"glove\",\n \"glow\",\n \"glue\",\n \"goat\",\n \"goddess\",\n \"gold\",\n \"good\",\n \"goose\",\n \"gorilla\",\n \"gospel\",\n \"gossip\",\n \"govern\",\n \"gown\",\n \"grab\",\n \"grace\",\n \"grain\",\n \"grant\",\n \"grape\",\n \"grass\",\n \"gravity\",\n \"great\",\n \"green\",\n \"grid\",\n \"grief\",\n \"grit\",\n \"grocery\",\n \"group\",\n \"grow\",\n \"grunt\",\n \"guard\",\n \"guess\",\n \"guide\",\n \"guilt\",\n \"guitar\",\n \"gun\",\n \"gym\",\n \"habit\",\n \"hair\",\n \"half\",\n \"hammer\",\n \"hamster\",\n \"hand\",\n \"happy\",\n \"harbor\",\n \"hard\",\n \"harsh\",\n \"harvest\",\n \"hat\",\n \"have\",\n \"hawk\",\n \"hazard\",\n \"head\",\n \"health\",\n \"heart\",\n \"heavy\",\n \"hedgehog\",\n \"height\",\n \"hello\",\n \"helmet\",\n \"help\",\n \"hen\",\n \"hero\",\n \"hidden\",\n \"high\",\n \"hill\",\n \"hint\",\n \"hip\",\n \"hire\",\n \"history\",\n \"hobby\",\n \"hockey\",\n \"hold\",\n \"hole\",\n \"holiday\",\n \"hollow\",\n \"home\",\n \"honey\",\n \"hood\",\n \"hope\",\n \"horn\",\n \"horror\",\n \"horse\",\n \"hospital\",\n \"host\",\n \"hotel\",\n \"hour\",\n \"hover\",\n \"hub\",\n \"huge\",\n \"human\",\n \"humble\",\n \"humor\",\n \"hundred\",\n \"hungry\",\n \"hunt\",\n \"hurdle\",\n \"hurry\",\n \"hurt\",\n \"husband\",\n \"hybrid\",\n \"ice\",\n \"icon\",\n \"idea\",\n \"identify\",\n \"idle\",\n \"ignore\",\n \"ill\",\n \"illegal\",\n \"illness\",\n \"image\",\n \"imitate\",\n \"immense\",\n \"immune\",\n \"impact\",\n \"impose\",\n \"improve\",\n \"impulse\",\n \"inch\",\n \"include\",\n \"income\",\n \"increase\",\n \"index\",\n \"indicate\",\n \"indoor\",\n \"industry\",\n \"infant\",\n \"inflict\",\n \"inform\",\n \"inhale\",\n \"inherit\",\n \"initial\",\n \"inject\",\n \"injury\",\n \"inmate\",\n \"inner\",\n \"innocent\",\n \"input\",\n \"inquiry\",\n \"insane\",\n \"insect\",\n \"inside\",\n \"inspire\",\n \"install\",\n \"intact\",\n \"interest\",\n \"into\",\n \"invest\",\n \"invite\",\n \"involve\",\n \"iron\",\n \"island\",\n \"isolate\",\n \"issue\",\n \"item\",\n \"ivory\",\n \"jacket\",\n \"jaguar\",\n \"jar\",\n \"jazz\",\n \"jealous\",\n \"jeans\",\n \"jelly\",\n \"jewel\",\n \"job\",\n \"join\",\n \"joke\",\n \"journey\",\n \"joy\",\n \"judge\",\n \"juice\",\n \"jump\",\n \"jungle\",\n \"junior\",\n \"junk\",\n \"just\",\n \"kangaroo\",\n \"keen\",\n \"keep\",\n \"ketchup\",\n \"key\",\n \"kick\",\n \"kid\",\n \"kidney\",\n \"kind\",\n \"kingdom\",\n \"kiss\",\n \"kit\",\n \"kitchen\",\n \"kite\",\n \"kitten\",\n \"kiwi\",\n \"knee\",\n \"knife\",\n \"knock\",\n \"know\",\n \"lab\",\n \"label\",\n \"labor\",\n \"ladder\",\n \"lady\",\n \"lake\",\n \"lamp\",\n \"language\",\n \"laptop\",\n \"large\",\n \"later\",\n \"latin\",\n \"laugh\",\n \"laundry\",\n \"lava\",\n \"law\",\n \"lawn\",\n \"lawsuit\",\n \"layer\",\n \"lazy\",\n \"leader\",\n \"leaf\",\n \"learn\",\n \"leave\",\n \"lecture\",\n \"left\",\n \"leg\",\n \"legal\",\n \"legend\",\n \"leisure\",\n \"lemon\",\n \"lend\",\n \"length\",\n \"lens\",\n \"leopard\",\n \"lesson\",\n \"letter\",\n \"level\",\n \"liar\",\n \"liberty\",\n \"library\",\n \"license\",\n \"life\",\n \"lift\",\n \"light\",\n \"like\",\n \"limb\",\n \"limit\",\n \"link\",\n \"lion\",\n \"liquid\",\n \"list\",\n \"little\",\n \"live\",\n \"lizard\",\n \"load\",\n \"loan\",\n \"lobster\",\n \"local\",\n \"lock\",\n \"logic\",\n \"lonely\",\n \"long\",\n \"loop\",\n \"lottery\",\n \"loud\",\n \"lounge\",\n \"love\",\n \"loyal\",\n \"lucky\",\n \"luggage\",\n \"lumber\",\n \"lunar\",\n \"lunch\",\n \"luxury\",\n \"lyrics\",\n \"machine\",\n \"mad\",\n \"magic\",\n \"magnet\",\n \"maid\",\n \"mail\",\n \"main\",\n \"major\",\n \"make\",\n \"mammal\",\n \"man\",\n \"manage\",\n \"mandate\",\n \"mango\",\n \"mansion\",\n \"manual\",\n \"maple\",\n \"marble\",\n \"march\",\n \"margin\",\n \"marine\",\n \"market\",\n \"marriage\",\n \"mask\",\n \"mass\",\n \"master\",\n \"match\",\n \"material\",\n \"math\",\n \"matrix\",\n \"matter\",\n \"maximum\",\n \"maze\",\n \"meadow\",\n \"mean\",\n \"measure\",\n \"meat\",\n \"mechanic\",\n \"medal\",\n \"media\",\n \"melody\",\n \"melt\",\n \"member\",\n \"memory\",\n \"mention\",\n \"menu\",\n \"mercy\",\n \"merge\",\n \"merit\",\n \"merry\",\n \"mesh\",\n \"message\",\n \"metal\",\n \"method\",\n \"middle\",\n \"midnight\",\n \"milk\",\n \"million\",\n \"mimic\",\n \"mind\",\n \"minimum\",\n \"minor\",\n \"minute\",\n \"miracle\",\n \"mirror\",\n \"misery\",\n \"miss\",\n \"mistake\",\n \"mix\",\n \"mixed\",\n \"mixture\",\n \"mobile\",\n \"model\",\n \"modify\",\n \"mom\",\n \"moment\",\n \"monitor\",\n \"monkey\",\n \"monster\",\n \"month\",\n \"moon\",\n \"moral\",\n \"more\",\n \"morning\",\n \"mosquito\",\n \"mother\",\n \"motion\",\n \"motor\",\n \"mountain\",\n \"mouse\",\n \"move\",\n \"movie\",\n \"much\",\n \"muffin\",\n \"mule\",\n \"multiply\",\n \"muscle\",\n \"museum\",\n \"mushroom\",\n \"music\",\n \"must\",\n \"mutual\",\n \"myself\",\n \"mystery\",\n \"myth\",\n \"naive\",\n \"name\",\n \"napkin\",\n \"narrow\",\n \"nasty\",\n \"nation\",\n \"nature\",\n \"near\",\n \"neck\",\n \"need\",\n \"negative\",\n \"neglect\",\n \"neither\",\n \"nephew\",\n \"nerve\",\n \"nest\",\n \"net\",\n \"network\",\n \"neutral\",\n \"never\",\n \"news\",\n \"next\",\n \"nice\",\n \"night\",\n \"noble\",\n \"noise\",\n \"nominee\",\n \"noodle\",\n \"normal\",\n \"north\",\n \"nose\",\n \"notable\",\n \"note\",\n \"nothing\",\n \"notice\",\n \"novel\",\n \"now\",\n \"nuclear\",\n \"number\",\n \"nurse\",\n \"nut\",\n \"oak\",\n \"obey\",\n \"object\",\n \"oblige\",\n \"obscure\",\n \"observe\",\n \"obtain\",\n \"obvious\",\n \"occur\",\n \"ocean\",\n \"october\",\n \"odor\",\n \"off\",\n \"offer\",\n \"office\",\n \"often\",\n \"oil\",\n \"okay\",\n \"old\",\n \"olive\",\n \"olympic\",\n \"omit\",\n \"once\",\n \"one\",\n \"onion\",\n \"online\",\n \"only\",\n \"open\",\n \"opera\",\n \"opinion\",\n \"oppose\",\n \"option\",\n \"orange\",\n \"orbit\",\n \"orchard\",\n \"order\",\n \"ordinary\",\n \"organ\",\n \"orient\",\n \"original\",\n \"orphan\",\n \"ostrich\",\n \"other\",\n \"outdoor\",\n \"outer\",\n \"output\",\n \"outside\",\n \"oval\",\n \"oven\",\n \"over\",\n \"own\",\n \"owner\",\n \"oxygen\",\n \"oyster\",\n \"ozone\",\n \"pact\",\n \"paddle\",\n \"page\",\n \"pair\",\n \"palace\",\n \"palm\",\n \"panda\",\n \"panel\",\n \"panic\",\n \"panther\",\n \"paper\",\n \"parade\",\n \"parent\",\n \"park\",\n \"parrot\",\n \"party\",\n \"pass\",\n \"patch\",\n \"path\",\n \"patient\",\n \"patrol\",\n \"pattern\",\n \"pause\",\n \"pave\",\n \"payment\",\n \"peace\",\n \"peanut\",\n \"pear\",\n \"peasant\",\n \"pelican\",\n \"pen\",\n \"penalty\",\n \"pencil\",\n \"people\",\n \"pepper\",\n \"perfect\",\n \"permit\",\n \"person\",\n \"pet\",\n \"phone\",\n \"photo\",\n \"phrase\",\n \"physical\",\n \"piano\",\n \"picnic\",\n \"picture\",\n \"piece\",\n \"pig\",\n \"pigeon\",\n \"pill\",\n \"pilot\",\n \"pink\",\n \"pioneer\",\n \"pipe\",\n \"pistol\",\n \"pitch\",\n \"pizza\",\n \"place\",\n \"planet\",\n \"plastic\",\n \"plate\",\n \"play\",\n \"please\",\n \"pledge\",\n \"pluck\",\n \"plug\",\n \"plunge\",\n \"poem\",\n \"poet\",\n \"point\",\n \"polar\",\n \"pole\",\n \"police\",\n \"pond\",\n \"pony\",\n \"pool\",\n \"popular\",\n \"portion\",\n \"position\",\n \"possible\",\n \"post\",\n \"potato\",\n \"pottery\",\n \"poverty\",\n \"powder\",\n \"power\",\n \"practice\",\n \"praise\",\n \"predict\",\n \"prefer\",\n \"prepare\",\n \"present\",\n \"pretty\",\n \"prevent\",\n \"price\",\n \"pride\",\n \"primary\",\n \"print\",\n \"priority\",\n \"prison\",\n \"private\",\n \"prize\",\n \"problem\",\n \"process\",\n \"produce\",\n \"profit\",\n \"program\",\n \"project\",\n \"promote\",\n \"proof\",\n \"property\",\n \"prosper\",\n \"protect\",\n \"proud\",\n \"provide\",\n \"public\",\n \"pudding\",\n \"pull\",\n \"pulp\",\n \"pulse\",\n \"pumpkin\",\n \"punch\",\n \"pupil\",\n \"puppy\",\n \"purchase\",\n \"purity\",\n \"purpose\",\n \"purse\",\n \"push\",\n \"put\",\n \"puzzle\",\n \"pyramid\",\n \"quality\",\n \"quantum\",\n \"quarter\",\n \"question\",\n \"quick\",\n \"quit\",\n \"quiz\",\n \"quote\",\n \"rabbit\",\n \"raccoon\",\n \"race\",\n \"rack\",\n \"radar\",\n \"radio\",\n \"rail\",\n \"rain\",\n \"raise\",\n \"rally\",\n \"ramp\",\n \"ranch\",\n \"random\",\n \"range\",\n \"rapid\",\n \"rare\",\n \"rate\",\n \"rather\",\n \"raven\",\n \"raw\",\n \"razor\",\n \"ready\",\n \"real\",\n \"reason\",\n \"rebel\",\n \"rebuild\",\n \"recall\",\n \"receive\",\n \"recipe\",\n \"record\",\n \"recycle\",\n \"reduce\",\n \"reflect\",\n \"reform\",\n \"refuse\",\n \"region\",\n \"regret\",\n \"regular\",\n \"reject\",\n \"relax\",\n \"release\",\n \"relief\",\n \"rely\",\n \"remain\",\n \"remember\",\n \"remind\",\n \"remove\",\n \"render\",\n \"renew\",\n \"rent\",\n \"reopen\",\n \"repair\",\n \"repeat\",\n \"replace\",\n \"report\",\n \"require\",\n \"rescue\",\n \"resemble\",\n \"resist\",\n \"resource\",\n \"response\",\n \"result\",\n \"retire\",\n \"retreat\",\n \"return\",\n \"reunion\",\n \"reveal\",\n \"review\",\n \"reward\",\n \"rhythm\",\n \"rib\",\n \"ribbon\",\n \"rice\",\n \"rich\",\n \"ride\",\n \"ridge\",\n \"rifle\",\n \"right\",\n \"rigid\",\n \"ring\",\n \"riot\",\n \"ripple\",\n \"risk\",\n \"ritual\",\n \"rival\",\n \"river\",\n \"road\",\n \"roast\",\n \"robot\",\n \"robust\",\n \"rocket\",\n \"romance\",\n \"roof\",\n \"rookie\",\n \"room\",\n \"rose\",\n \"rotate\",\n \"rough\",\n \"round\",\n \"route\",\n \"royal\",\n \"rubber\",\n \"rude\",\n \"rug\",\n \"rule\",\n \"run\",\n \"runway\",\n \"rural\",\n \"sad\",\n \"saddle\",\n \"sadness\",\n \"safe\",\n \"sail\",\n \"salad\",\n \"salmon\",\n \"salon\",\n \"salt\",\n \"salute\",\n \"same\",\n \"sample\",\n \"sand\",\n \"satisfy\",\n \"satoshi\",\n \"sauce\",\n \"sausage\",\n \"save\",\n \"say\",\n \"scale\",\n \"scan\",\n \"scare\",\n \"scatter\",\n \"scene\",\n \"scheme\",\n \"school\",\n \"science\",\n \"scissors\",\n \"scorpion\",\n \"scout\",\n \"scrap\",\n \"screen\",\n \"script\",\n \"scrub\",\n \"sea\",\n \"search\",\n \"season\",\n \"seat\",\n \"second\",\n \"secret\",\n \"section\",\n \"security\",\n \"seed\",\n \"seek\",\n \"segment\",\n \"select\",\n \"sell\",\n \"seminar\",\n \"senior\",\n \"sense\",\n \"sentence\",\n \"series\",\n \"service\",\n \"session\",\n \"settle\",\n \"setup\",\n \"seven\",\n \"shadow\",\n \"shaft\",\n \"shallow\",\n \"share\",\n \"shed\",\n \"shell\",\n \"sheriff\",\n \"shield\",\n \"shift\",\n \"shine\",\n \"ship\",\n \"shiver\",\n \"shock\",\n \"shoe\",\n \"shoot\",\n \"shop\",\n \"short\",\n \"shoulder\",\n \"shove\",\n \"shrimp\",\n \"shrug\",\n \"shuffle\",\n \"shy\",\n \"sibling\",\n \"sick\",\n \"side\",\n \"siege\",\n \"sight\",\n \"sign\",\n \"silent\",\n \"silk\",\n \"silly\",\n \"silver\",\n \"similar\",\n \"simple\",\n \"since\",\n \"sing\",\n \"siren\",\n \"sister\",\n \"situate\",\n \"six\",\n \"size\",\n \"skate\",\n \"sketch\",\n \"ski\",\n \"skill\",\n \"skin\",\n \"skirt\",\n \"skull\",\n \"slab\",\n \"slam\",\n \"sleep\",\n \"slender\",\n \"slice\",\n \"slide\",\n \"slight\",\n \"slim\",\n \"slogan\",\n \"slot\",\n \"slow\",\n \"slush\",\n \"small\",\n \"smart\",\n \"smile\",\n \"smoke\",\n \"smooth\",\n \"snack\",\n \"snake\",\n \"snap\",\n \"sniff\",\n \"snow\",\n \"soap\",\n \"soccer\",\n \"social\",\n \"sock\",\n \"soda\",\n \"soft\",\n \"solar\",\n \"soldier\",\n \"solid\",\n \"solution\",\n \"solve\",\n \"someone\",\n \"song\",\n \"soon\",\n \"sorry\",\n \"sort\",\n \"soul\",\n \"sound\",\n \"soup\",\n \"source\",\n \"south\",\n \"space\",\n \"spare\",\n \"spatial\",\n \"spawn\",\n \"speak\",\n \"special\",\n \"speed\",\n \"spell\",\n \"spend\",\n \"sphere\",\n \"spice\",\n \"spider\",\n \"spike\",\n \"spin\",\n \"spirit\",\n \"split\",\n \"spoil\",\n \"sponsor\",\n \"spoon\",\n \"sport\",\n \"spot\",\n \"spray\",\n \"spread\",\n \"spring\",\n \"spy\",\n \"square\",\n \"squeeze\",\n \"squirrel\",\n \"stable\",\n \"stadium\",\n \"staff\",\n \"stage\",\n \"stairs\",\n \"stamp\",\n \"stand\",\n \"start\",\n \"state\",\n \"stay\",\n \"steak\",\n \"steel\",\n \"stem\",\n \"step\",\n \"stereo\",\n \"stick\",\n \"still\",\n \"sting\",\n \"stock\",\n \"stomach\",\n \"stone\",\n \"stool\",\n \"story\",\n \"stove\",\n \"strategy\",\n \"street\",\n \"strike\",\n \"strong\",\n \"struggle\",\n \"student\",\n \"stuff\",\n \"stumble\",\n \"style\",\n \"subject\",\n \"submit\",\n \"subway\",\n \"success\",\n \"such\",\n \"sudden\",\n \"suffer\",\n \"sugar\",\n \"suggest\",\n \"suit\",\n \"summer\",\n \"sun\",\n \"sunny\",\n \"sunset\",\n \"super\",\n \"supply\",\n \"supreme\",\n \"sure\",\n \"surface\",\n \"surge\",\n \"surprise\",\n \"surround\",\n \"survey\",\n \"suspect\",\n \"sustain\",\n \"swallow\",\n \"swamp\",\n \"swap\",\n \"swarm\",\n \"swear\",\n \"sweet\",\n \"swift\",\n \"swim\",\n \"swing\",\n \"switch\",\n \"sword\",\n \"symbol\",\n \"symptom\",\n \"syrup\",\n \"system\",\n \"table\",\n \"tackle\",\n \"tag\",\n \"tail\",\n \"talent\",\n \"talk\",\n \"tank\",\n \"tape\",\n \"target\",\n \"task\",\n \"taste\",\n \"tattoo\",\n \"taxi\",\n \"teach\",\n \"team\",\n \"tell\",\n \"ten\",\n \"tenant\",\n \"tennis\",\n \"tent\",\n \"term\",\n \"test\",\n \"text\",\n \"thank\",\n \"that\",\n \"theme\",\n \"then\",\n \"theory\",\n \"there\",\n \"they\",\n \"thing\",\n \"this\",\n \"thought\",\n \"three\",\n \"thrive\",\n \"throw\",\n \"thumb\",\n \"thunder\",\n \"ticket\",\n \"tide\",\n \"tiger\",\n \"tilt\",\n \"timber\",\n \"time\",\n \"tiny\",\n \"tip\",\n \"tired\",\n \"tissue\",\n \"title\",\n \"toast\",\n \"tobacco\",\n \"today\",\n \"toddler\",\n \"toe\",\n \"together\",\n \"toilet\",\n \"token\",\n \"tomato\",\n \"tomorrow\",\n \"tone\",\n \"tongue\",\n \"tonight\",\n \"tool\",\n \"tooth\",\n \"top\",\n \"topic\",\n \"topple\",\n \"torch\",\n \"tornado\",\n \"tortoise\",\n \"toss\",\n \"total\",\n \"tourist\",\n \"toward\",\n \"tower\",\n \"town\",\n \"toy\",\n \"track\",\n \"trade\",\n \"traffic\",\n \"tragic\",\n \"train\",\n \"transfer\",\n \"trap\",\n \"trash\",\n \"travel\",\n \"tray\",\n \"treat\",\n \"tree\",\n \"trend\",\n \"trial\",\n \"tribe\",\n \"trick\",\n \"trigger\",\n \"trim\",\n \"trip\",\n \"trophy\",\n \"trouble\",\n \"truck\",\n \"true\",\n \"truly\",\n \"trumpet\",\n \"trust\",\n \"truth\",\n \"try\",\n \"tube\",\n \"tuition\",\n \"tumble\",\n \"tuna\",\n \"tunnel\",\n \"turkey\",\n \"turn\",\n \"turtle\",\n \"twelve\",\n \"twenty\",\n \"twice\",\n \"twin\",\n \"twist\",\n \"two\",\n \"type\",\n \"typical\",\n \"ugly\",\n \"umbrella\",\n \"unable\",\n \"unaware\",\n \"uncle\",\n \"uncover\",\n \"under\",\n \"undo\",\n \"unfair\",\n \"unfold\",\n \"unhappy\",\n \"uniform\",\n \"unique\",\n \"unit\",\n \"universe\",\n \"unknown\",\n \"unlock\",\n \"until\",\n \"unusual\",\n \"unveil\",\n \"update\",\n \"upgrade\",\n \"uphold\",\n \"upon\",\n \"upper\",\n \"upset\",\n \"urban\",\n \"urge\",\n \"usage\",\n \"use\",\n \"used\",\n \"useful\",\n \"useless\",\n \"usual\",\n \"utility\",\n \"vacant\",\n \"vacuum\",\n \"vague\",\n \"valid\",\n \"valley\",\n \"valve\",\n \"van\",\n \"vanish\",\n \"vapor\",\n \"various\",\n \"vast\",\n \"vault\",\n \"vehicle\",\n \"velvet\",\n \"vendor\",\n \"venture\",\n \"venue\",\n \"verb\",\n \"verify\",\n \"version\",\n \"very\",\n \"vessel\",\n \"veteran\",\n \"viable\",\n \"vibrant\",\n \"vicious\",\n \"victory\",\n \"video\",\n \"view\",\n \"village\",\n \"vintage\",\n \"violin\",\n \"virtual\",\n \"virus\",\n \"visa\",\n \"visit\",\n \"visual\",\n \"vital\",\n \"vivid\",\n \"vocal\",\n \"voice\",\n \"void\",\n \"volcano\",\n \"volume\",\n \"vote\",\n \"voyage\",\n \"wage\",\n \"wagon\",\n \"wait\",\n \"walk\",\n \"wall\",\n \"walnut\",\n \"want\",\n \"warfare\",\n \"warm\",\n \"warrior\",\n \"wash\",\n \"wasp\",\n \"waste\",\n \"water\",\n \"wave\",\n \"way\",\n \"wealth\",\n \"weapon\",\n \"wear\",\n \"weasel\",\n \"weather\",\n \"web\",\n \"wedding\",\n \"weekend\",\n \"weird\",\n \"welcome\",\n \"west\",\n \"wet\",\n \"whale\",\n \"what\",\n \"wheat\",\n \"wheel\",\n \"when\",\n \"where\",\n \"whip\",\n \"whisper\",\n \"wide\",\n \"width\",\n \"wife\",\n \"wild\",\n \"will\",\n \"win\",\n \"window\",\n \"wine\",\n \"wing\",\n \"wink\",\n \"winner\",\n \"winter\",\n \"wire\",\n \"wisdom\",\n \"wise\",\n \"wish\",\n \"witness\",\n \"wolf\",\n \"woman\",\n \"wonder\",\n \"wood\",\n \"wool\",\n \"word\",\n \"work\",\n \"world\",\n \"worry\",\n \"worth\",\n \"wrap\",\n \"wreck\",\n \"wrestle\",\n \"wrist\",\n \"write\",\n \"wrong\",\n \"yard\",\n \"year\",\n \"yellow\",\n \"you\",\n \"young\",\n \"youth\",\n \"zebra\",\n \"zero\",\n \"zone\",\n \"zoo\",\n];\nfunction bytesToBitstring(bytes) {\n return Array.from(bytes)\n .map((byte) => byte.toString(2).padStart(8, \"0\"))\n .join(\"\");\n}\nfunction deriveChecksumBits(entropy) {\n const entropyLengthBits = entropy.length * 8; // \"ENT\" (in bits)\n const checksumLengthBits = entropyLengthBits / 32; // \"CS\" (in bits)\n const hash = (0, sha_1.sha256)(entropy);\n return bytesToBitstring(hash).slice(0, checksumLengthBits);\n}\nfunction bitstringToByte(bin) {\n return parseInt(bin, 2);\n}\nconst allowedEntropyLengths = [16, 20, 24, 28, 32];\nconst allowedWordLengths = [12, 15, 18, 21, 24];\nfunction entropyToMnemonic(entropy) {\n if (allowedEntropyLengths.indexOf(entropy.length) === -1) {\n throw new Error(\"invalid input length\");\n }\n const entropyBits = bytesToBitstring(entropy);\n const checksumBits = deriveChecksumBits(entropy);\n const bits = entropyBits + checksumBits;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const chunks = bits.match(/(.{11})/g);\n const words = chunks.map((binary) => {\n const index = bitstringToByte(binary);\n return wordlist[index];\n });\n return words.join(\" \");\n}\nconst invalidNumberOfWords = \"Invalid number of words\";\nconst wordNotInWordlist = \"Found word that is not in the wordlist\";\nconst invalidEntropy = \"Invalid entropy\";\nconst invalidChecksum = \"Invalid mnemonic checksum\";\nfunction normalize(str) {\n return str.normalize(\"NFKD\");\n}\nfunction mnemonicToEntropy(mnemonic) {\n const words = normalize(mnemonic).split(\" \");\n if (!allowedWordLengths.includes(words.length)) {\n throw new Error(invalidNumberOfWords);\n }\n // convert word indices to 11 bit binary strings\n const bits = words\n .map((word) => {\n const index = wordlist.indexOf(word);\n if (index === -1) {\n throw new Error(wordNotInWordlist);\n }\n return index.toString(2).padStart(11, \"0\");\n })\n .join(\"\");\n // split the binary string into ENT/CS\n const dividerIndex = Math.floor(bits.length / 33) * 32;\n const entropyBits = bits.slice(0, dividerIndex);\n const checksumBits = bits.slice(dividerIndex);\n // calculate the checksum and compare\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const entropyBytes = entropyBits.match(/(.{1,8})/g).map(bitstringToByte);\n if (entropyBytes.length < 16 || entropyBytes.length > 32 || entropyBytes.length % 4 !== 0) {\n throw new Error(invalidEntropy);\n }\n const entropy = Uint8Array.from(entropyBytes);\n const newChecksum = deriveChecksumBits(entropy);\n if (newChecksum !== checksumBits) {\n throw new Error(invalidChecksum);\n }\n return entropy;\n}\nclass EnglishMnemonic {\n constructor(mnemonic) {\n if (!EnglishMnemonic.mnemonicMatcher.test(mnemonic)) {\n throw new Error(\"Invalid mnemonic format\");\n }\n const words = mnemonic.split(\" \");\n const allowedWordsLengths = [12, 15, 18, 21, 24];\n if (allowedWordsLengths.indexOf(words.length) === -1) {\n throw new Error(`Invalid word count in mnemonic (allowed: ${allowedWordsLengths} got: ${words.length})`);\n }\n for (const word of words) {\n if (EnglishMnemonic.wordlist.indexOf(word) === -1) {\n throw new Error(\"Mnemonic contains invalid word\");\n }\n }\n // Throws with informative error message if mnemonic is not valid\n mnemonicToEntropy(mnemonic);\n this.data = mnemonic;\n }\n toString() {\n return this.data;\n }\n}\nexports.EnglishMnemonic = EnglishMnemonic;\nEnglishMnemonic.wordlist = wordlist;\n// list of space separated lower case words (1 or more)\nEnglishMnemonic.mnemonicMatcher = /^[a-z]+( [a-z]+)*$/;\nclass Bip39 {\n /**\n * Encodes raw entropy of length 16, 20, 24, 28 or 32 bytes as an English mnemonic between 12 and 24 words.\n *\n * | Entropy | Words |\n * |--------------------|-------|\n * | 128 bit (16 bytes) | 12 |\n * | 160 bit (20 bytes) | 15 |\n * | 192 bit (24 bytes) | 18 |\n * | 224 bit (28 bytes) | 21 |\n * | 256 bit (32 bytes) | 24 |\n *\n *\n * @see https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki#generating-the-mnemonic\n * @param entropy The entropy to be encoded. This must be cryptographically secure.\n */\n static encode(entropy) {\n return new EnglishMnemonic(entropyToMnemonic(entropy));\n }\n static decode(mnemonic) {\n return mnemonicToEntropy(mnemonic.toString());\n }\n static async mnemonicToSeed(mnemonic, password) {\n const mnemonicBytes = (0, encoding_1.toUtf8)(normalize(mnemonic.toString()));\n const salt = \"mnemonic\" + (password ? normalize(password) : \"\");\n const saltBytes = (0, encoding_1.toUtf8)(salt);\n return (0, pbkdf2_1.pbkdf2Sha512)(mnemonicBytes, saltBytes, 2048, 64);\n }\n}\nexports.Bip39 = Bip39;\n//# sourceMappingURL=bip39.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Hmac = void 0;\nclass Hmac {\n constructor(hashFunctionConstructor, originalKey) {\n // This implementation is based on https://en.wikipedia.org/wiki/HMAC#Implementation\n // with the addition of incremental hashing support. Thus part of the algorithm\n // is in the constructor and the rest in digest().\n const blockSize = new hashFunctionConstructor().blockSize;\n this.hash = (data) => new hashFunctionConstructor().update(data).digest();\n let key = originalKey;\n if (key.length > blockSize) {\n key = this.hash(key);\n }\n if (key.length < blockSize) {\n const zeroPadding = new Uint8Array(blockSize - key.length);\n key = new Uint8Array([...key, ...zeroPadding]);\n }\n // eslint-disable-next-line no-bitwise\n this.oKeyPad = key.map((keyByte) => keyByte ^ 0x5c);\n // eslint-disable-next-line no-bitwise\n this.iKeyPad = key.map((keyByte) => keyByte ^ 0x36);\n this.messageHasher = new hashFunctionConstructor();\n this.blockSize = blockSize;\n this.update(this.iKeyPad);\n }\n update(data) {\n this.messageHasher.update(data);\n return this;\n }\n digest() {\n const innerHash = this.messageHasher.digest();\n return this.hash(new Uint8Array([...this.oKeyPad, ...innerHash]));\n }\n}\nexports.Hmac = Hmac;\n//# sourceMappingURL=hmac.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringToPath = exports.Slip10RawIndex = exports.slip10CurveFromString = exports.Slip10Curve = exports.Slip10 = exports.pathToString = exports.sha512 = exports.Sha512 = exports.sha256 = exports.Sha256 = exports.Secp256k1Signature = exports.ExtendedSecp256k1Signature = exports.Secp256k1 = exports.ripemd160 = exports.Ripemd160 = exports.Random = exports.Xchacha20poly1305Ietf = exports.xchacha20NonceLength = exports.isArgon2idOptions = exports.Ed25519Keypair = exports.Ed25519 = exports.Argon2id = exports.keccak256 = exports.Keccak256 = exports.Hmac = exports.EnglishMnemonic = exports.Bip39 = void 0;\nvar bip39_1 = require(\"./bip39\");\nObject.defineProperty(exports, \"Bip39\", { enumerable: true, get: function () { return bip39_1.Bip39; } });\nObject.defineProperty(exports, \"EnglishMnemonic\", { enumerable: true, get: function () { return bip39_1.EnglishMnemonic; } });\nvar hmac_1 = require(\"./hmac\");\nObject.defineProperty(exports, \"Hmac\", { enumerable: true, get: function () { return hmac_1.Hmac; } });\nvar keccak_1 = require(\"./keccak\");\nObject.defineProperty(exports, \"Keccak256\", { enumerable: true, get: function () { return keccak_1.Keccak256; } });\nObject.defineProperty(exports, \"keccak256\", { enumerable: true, get: function () { return keccak_1.keccak256; } });\nvar libsodium_1 = require(\"./libsodium\");\nObject.defineProperty(exports, \"Argon2id\", { enumerable: true, get: function () { return libsodium_1.Argon2id; } });\nObject.defineProperty(exports, \"Ed25519\", { enumerable: true, get: function () { return libsodium_1.Ed25519; } });\nObject.defineProperty(exports, \"Ed25519Keypair\", { enumerable: true, get: function () { return libsodium_1.Ed25519Keypair; } });\nObject.defineProperty(exports, \"isArgon2idOptions\", { enumerable: true, get: function () { return libsodium_1.isArgon2idOptions; } });\nObject.defineProperty(exports, \"xchacha20NonceLength\", { enumerable: true, get: function () { return libsodium_1.xchacha20NonceLength; } });\nObject.defineProperty(exports, \"Xchacha20poly1305Ietf\", { enumerable: true, get: function () { return libsodium_1.Xchacha20poly1305Ietf; } });\nvar random_1 = require(\"./random\");\nObject.defineProperty(exports, \"Random\", { enumerable: true, get: function () { return random_1.Random; } });\nvar ripemd_1 = require(\"./ripemd\");\nObject.defineProperty(exports, \"Ripemd160\", { enumerable: true, get: function () { return ripemd_1.Ripemd160; } });\nObject.defineProperty(exports, \"ripemd160\", { enumerable: true, get: function () { return ripemd_1.ripemd160; } });\nvar secp256k1_1 = require(\"./secp256k1\");\nObject.defineProperty(exports, \"Secp256k1\", { enumerable: true, get: function () { return secp256k1_1.Secp256k1; } });\nvar secp256k1signature_1 = require(\"./secp256k1signature\");\nObject.defineProperty(exports, \"ExtendedSecp256k1Signature\", { enumerable: true, get: function () { return secp256k1signature_1.ExtendedSecp256k1Signature; } });\nObject.defineProperty(exports, \"Secp256k1Signature\", { enumerable: true, get: function () { return secp256k1signature_1.Secp256k1Signature; } });\nvar sha_1 = require(\"./sha\");\nObject.defineProperty(exports, \"Sha256\", { enumerable: true, get: function () { return sha_1.Sha256; } });\nObject.defineProperty(exports, \"sha256\", { enumerable: true, get: function () { return sha_1.sha256; } });\nObject.defineProperty(exports, \"Sha512\", { enumerable: true, get: function () { return sha_1.Sha512; } });\nObject.defineProperty(exports, \"sha512\", { enumerable: true, get: function () { return sha_1.sha512; } });\nvar slip10_1 = require(\"./slip10\");\nObject.defineProperty(exports, \"pathToString\", { enumerable: true, get: function () { return slip10_1.pathToString; } });\nObject.defineProperty(exports, \"Slip10\", { enumerable: true, get: function () { return slip10_1.Slip10; } });\nObject.defineProperty(exports, \"Slip10Curve\", { enumerable: true, get: function () { return slip10_1.Slip10Curve; } });\nObject.defineProperty(exports, \"slip10CurveFromString\", { enumerable: true, get: function () { return slip10_1.slip10CurveFromString; } });\nObject.defineProperty(exports, \"Slip10RawIndex\", { enumerable: true, get: function () { return slip10_1.Slip10RawIndex; } });\nObject.defineProperty(exports, \"stringToPath\", { enumerable: true, get: function () { return slip10_1.stringToPath; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Keccak256 = void 0;\nexports.keccak256 = keccak256;\nconst sha3_1 = require(\"@noble/hashes/sha3\");\nconst utils_1 = require(\"./utils\");\nclass Keccak256 {\n constructor(firstData) {\n this.blockSize = 512 / 8;\n this.impl = sha3_1.keccak_256.create();\n if (firstData) {\n this.update(firstData);\n }\n }\n update(data) {\n this.impl.update((0, utils_1.toRealUint8Array)(data));\n return this;\n }\n digest() {\n return this.impl.digest();\n }\n}\nexports.Keccak256 = Keccak256;\n/** Convenience function equivalent to `new Keccak256(data).digest()` */\nfunction keccak256(data) {\n return new Keccak256(data).digest();\n}\n//# sourceMappingURL=keccak.js.map","\"use strict\";\n// Keep all classes requiring libsodium-js in one file as having multiple\n// requiring of the libsodium-wrappers module currently crashes browsers\n//\n// libsodium.js API: https://gist.github.com/webmaster128/b2dbe6d54d36dd168c9fabf441b9b09c\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Xchacha20poly1305Ietf = exports.xchacha20NonceLength = exports.Ed25519 = exports.Ed25519Keypair = exports.Argon2id = void 0;\nexports.isArgon2idOptions = isArgon2idOptions;\nconst utils_1 = require(\"@cosmjs/utils\");\n// Using crypto_pwhash requires sumo. Once we migrate to a standalone\n// Argon2 implementation, we can use the normal libsodium-wrappers\n// again: https://github.com/cosmos/cosmjs/issues/1031\nconst libsodium_wrappers_sumo_1 = __importDefault(require(\"libsodium-wrappers-sumo\"));\nfunction isArgon2idOptions(thing) {\n if (!(0, utils_1.isNonNullObject)(thing))\n return false;\n if (typeof thing.outputLength !== \"number\")\n return false;\n if (typeof thing.opsLimit !== \"number\")\n return false;\n if (typeof thing.memLimitKib !== \"number\")\n return false;\n return true;\n}\nclass Argon2id {\n static async execute(password, salt, options) {\n await libsodium_wrappers_sumo_1.default.ready;\n return libsodium_wrappers_sumo_1.default.crypto_pwhash(options.outputLength, password, salt, // libsodium only supports 16 byte salts and will throw when you don't respect that\n options.opsLimit, options.memLimitKib * 1024, libsodium_wrappers_sumo_1.default.crypto_pwhash_ALG_ARGON2ID13);\n }\n}\nexports.Argon2id = Argon2id;\nclass Ed25519Keypair {\n // a libsodium privkey has the format ` + `\n static fromLibsodiumPrivkey(libsodiumPrivkey) {\n if (libsodiumPrivkey.length !== 64) {\n throw new Error(`Unexpected key length ${libsodiumPrivkey.length}. Must be 64.`);\n }\n return new Ed25519Keypair(libsodiumPrivkey.slice(0, 32), libsodiumPrivkey.slice(32, 64));\n }\n constructor(privkey, pubkey) {\n this.privkey = privkey;\n this.pubkey = pubkey;\n }\n toLibsodiumPrivkey() {\n return new Uint8Array([...this.privkey, ...this.pubkey]);\n }\n}\nexports.Ed25519Keypair = Ed25519Keypair;\nclass Ed25519 {\n /**\n * Generates a keypair deterministically from a given 32 bytes seed.\n *\n * This seed equals the Ed25519 private key.\n * For implementation details see crypto_sign_seed_keypair in\n * https://download.libsodium.org/doc/public-key_cryptography/public-key_signatures.html\n * and diagram on https://blog.mozilla.org/warner/2011/11/29/ed25519-keys/\n */\n static async makeKeypair(seed) {\n await libsodium_wrappers_sumo_1.default.ready;\n const keypair = libsodium_wrappers_sumo_1.default.crypto_sign_seed_keypair(seed);\n return Ed25519Keypair.fromLibsodiumPrivkey(keypair.privateKey);\n }\n static async createSignature(message, keyPair) {\n await libsodium_wrappers_sumo_1.default.ready;\n return libsodium_wrappers_sumo_1.default.crypto_sign_detached(message, keyPair.toLibsodiumPrivkey());\n }\n static async verifySignature(signature, message, pubkey) {\n await libsodium_wrappers_sumo_1.default.ready;\n return libsodium_wrappers_sumo_1.default.crypto_sign_verify_detached(signature, message, pubkey);\n }\n}\nexports.Ed25519 = Ed25519;\n/**\n * Nonce length in bytes for all flavours of XChaCha20.\n *\n * @see https://libsodium.gitbook.io/doc/advanced/stream_ciphers/xchacha20#notes\n */\nexports.xchacha20NonceLength = 24;\nclass Xchacha20poly1305Ietf {\n static async encrypt(message, key, nonce) {\n await libsodium_wrappers_sumo_1.default.ready;\n const additionalData = null;\n return libsodium_wrappers_sumo_1.default.crypto_aead_xchacha20poly1305_ietf_encrypt(message, additionalData, null, // secret nonce: unused and should be null (https://download.libsodium.org/doc/secret-key_cryptography/aead/chacha20-poly1305/xchacha20-poly1305_construction)\n nonce, key);\n }\n static async decrypt(ciphertext, key, nonce) {\n await libsodium_wrappers_sumo_1.default.ready;\n const additionalData = null;\n return libsodium_wrappers_sumo_1.default.crypto_aead_xchacha20poly1305_ietf_decrypt(null, // secret nonce: unused and should be null (https://download.libsodium.org/doc/secret-key_cryptography/aead/chacha20-poly1305/xchacha20-poly1305_construction)\n ciphertext, additionalData, nonce, key);\n }\n}\nexports.Xchacha20poly1305Ietf = Xchacha20poly1305Ietf;\n//# sourceMappingURL=libsodium.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getNodeCrypto = getNodeCrypto;\nexports.getSubtle = getSubtle;\nexports.pbkdf2Sha512Subtle = pbkdf2Sha512Subtle;\nexports.pbkdf2Sha512NodeCrypto = pbkdf2Sha512NodeCrypto;\nexports.pbkdf2Sha512Noble = pbkdf2Sha512Noble;\nexports.pbkdf2Sha512 = pbkdf2Sha512;\nconst utils_1 = require(\"@cosmjs/utils\");\nconst pbkdf2_1 = require(\"@noble/hashes/pbkdf2\");\nconst sha512_1 = require(\"@noble/hashes/sha512\");\n/**\n * Returns the Node.js crypto module when available and `undefined`\n * otherwise.\n *\n * Detects an unimplemented fallback module from Webpack 5 and returns\n * `undefined` in that case.\n */\nasync function getNodeCrypto() {\n try {\n const nodeCrypto = await Promise.resolve().then(() => __importStar(require(\"crypto\")));\n // We get `Object{default: Object{}}` as a fallback when using\n // `crypto: false` in Webpack 5, which we interprete as unavailable.\n if (typeof nodeCrypto === \"object\" && Object.keys(nodeCrypto).length <= 1) {\n return undefined;\n }\n return nodeCrypto;\n }\n catch {\n return undefined;\n }\n}\nasync function getSubtle() {\n // From Node.js 15 onwards, webcrypto is available in globalThis.\n // In version 15 and 16 this was stored under the webcrypto key.\n // With Node.js 17 it was moved to the same locations where browsers\n // make it available.\n // Loading `require(\"crypto\")` here seems unnecessary since it only\n // causes issues with bundlers and does not increase compatibility.\n // Browsers and Node.js 17+\n let subtle = globalThis?.crypto?.subtle;\n // Node.js 15+\n if (!subtle)\n subtle = globalThis?.crypto?.webcrypto?.subtle;\n return subtle;\n}\nasync function pbkdf2Sha512Subtle(\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nsubtle, secret, salt, iterations, keylen) {\n (0, utils_1.assert)(subtle, \"Argument subtle is falsy\");\n (0, utils_1.assert)(typeof subtle === \"object\", \"Argument subtle is not of type object\");\n (0, utils_1.assert)(typeof subtle.importKey === \"function\", \"subtle.importKey is not a function\");\n (0, utils_1.assert)(typeof subtle.deriveBits === \"function\", \"subtle.deriveBits is not a function\");\n return subtle.importKey(\"raw\", secret, { name: \"PBKDF2\" }, false, [\"deriveBits\"]).then((key) => subtle\n .deriveBits({\n name: \"PBKDF2\",\n salt: salt,\n iterations: iterations,\n hash: { name: \"SHA-512\" },\n }, key, keylen * 8)\n .then((buffer) => new Uint8Array(buffer)));\n}\n/**\n * Implements pbkdf2-sha512 using the Node.js crypro module (`import \"crypto\"`).\n * This does not use subtle from [Crypto](https://developer.mozilla.org/en-US/docs/Web/API/Crypto).\n */\nasync function pbkdf2Sha512NodeCrypto(\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nnodeCrypto, secret, salt, iterations, keylen) {\n (0, utils_1.assert)(nodeCrypto, \"Argument nodeCrypto is falsy\");\n (0, utils_1.assert)(typeof nodeCrypto === \"object\", \"Argument nodeCrypto is not of type object\");\n (0, utils_1.assert)(typeof nodeCrypto.pbkdf2 === \"function\", \"nodeCrypto.pbkdf2 is not a function\");\n return new Promise((resolve, reject) => {\n nodeCrypto.pbkdf2(secret, salt, iterations, keylen, \"sha512\", (error, result) => {\n if (error) {\n reject(error);\n }\n else {\n resolve(Uint8Array.from(result));\n }\n });\n });\n}\nasync function pbkdf2Sha512Noble(secret, salt, iterations, keylen) {\n return (0, pbkdf2_1.pbkdf2Async)(sha512_1.sha512, secret, salt, { c: iterations, dkLen: keylen });\n}\n/**\n * A pbkdf2 implementation for BIP39. This is not exported at package level and thus a private API.\n */\nasync function pbkdf2Sha512(secret, salt, iterations, keylen) {\n const subtle = await getSubtle();\n if (subtle) {\n return pbkdf2Sha512Subtle(subtle, secret, salt, iterations, keylen);\n }\n else {\n const nodeCrypto = await getNodeCrypto();\n if (nodeCrypto) {\n return pbkdf2Sha512NodeCrypto(nodeCrypto, secret, salt, iterations, keylen);\n }\n else {\n return pbkdf2Sha512Noble(secret, salt, iterations, keylen);\n }\n }\n}\n//# sourceMappingURL=pbkdf2.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Random = void 0;\nclass Random {\n /**\n * Returns `count` cryptographically secure random bytes\n */\n static getBytes(count) {\n try {\n const globalObject = typeof window === \"object\" ? window : self;\n const cryptoApi = typeof globalObject.crypto !== \"undefined\" ? globalObject.crypto : globalObject.msCrypto;\n const out = new Uint8Array(count);\n cryptoApi.getRandomValues(out);\n return out;\n }\n catch {\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const crypto = require(\"crypto\");\n return new Uint8Array([...crypto.randomBytes(count)]);\n }\n catch {\n throw new Error(\"No secure random number generator found\");\n }\n }\n }\n}\nexports.Random = Random;\n//# sourceMappingURL=random.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Ripemd160 = void 0;\nexports.ripemd160 = ripemd160;\nconst ripemd160_1 = require(\"@noble/hashes/ripemd160\");\nconst utils_1 = require(\"./utils\");\nclass Ripemd160 {\n constructor(firstData) {\n this.blockSize = 512 / 8;\n this.impl = ripemd160_1.ripemd160.create();\n if (firstData) {\n this.update(firstData);\n }\n }\n update(data) {\n this.impl.update((0, utils_1.toRealUint8Array)(data));\n return this;\n }\n digest() {\n return this.impl.digest();\n }\n}\nexports.Ripemd160 = Ripemd160;\n/** Convenience function equivalent to `new Ripemd160(data).digest()` */\nfunction ripemd160(data) {\n return new Ripemd160(data).digest();\n}\n//# sourceMappingURL=ripemd.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Secp256k1 = void 0;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst secp256k1_1 = require(\"@noble/curves/secp256k1\");\nconst secp256k1signature_1 = require(\"./secp256k1signature\");\nfunction unsignedBigIntToBytes(a) {\n (0, utils_1.assert)(a >= 0n);\n let hex = a.toString(16);\n if (hex.length % 2)\n hex = \"0\" + hex;\n return (0, encoding_1.fromHex)(hex);\n}\nfunction bytesToUnsignedBigInt(a) {\n return BigInt(\"0x\" + (0, encoding_1.toHex)(a));\n}\nclass Secp256k1 {\n /**\n * Takes a 32 byte private key and returns a privkey/pubkey pair.\n *\n * The resulting pubkey is uncompressed. For the use in Cosmos it should\n * be compressed first using `Secp256k1.compressPubkey`.\n */\n static async makeKeypair(privkey) {\n if (privkey.length !== 32) {\n throw new Error(\"input data is not a valid secp256k1 private key\");\n }\n if (!secp256k1_1.secp256k1.utils.isValidPrivateKey(privkey)) {\n // not strictly smaller than N\n throw new Error(\"input data is not a valid secp256k1 private key\");\n }\n const out = {\n privkey: privkey,\n // encodes uncompressed as\n // - 1-byte prefix \"04\"\n // - 32-byte x coordinate\n // - 32-byte y coordinate\n pubkey: secp256k1_1.secp256k1.getPublicKey(privkey, false),\n };\n return out;\n }\n /**\n * Creates a signature that is\n * - deterministic (RFC 6979)\n * - lowS signature\n * - DER encoded\n */\n static async createSignature(messageHash, privkey) {\n if (messageHash.length === 0) {\n throw new Error(\"Message hash must not be empty\");\n }\n if (messageHash.length > 32) {\n throw new Error(\"Message hash length must not exceed 32 bytes\");\n }\n const { recovery, r, s } = secp256k1_1.secp256k1.sign(messageHash, privkey, {\n lowS: true,\n });\n if (typeof recovery !== \"number\")\n throw new Error(\"Recovery param missing\");\n return new secp256k1signature_1.ExtendedSecp256k1Signature(unsignedBigIntToBytes(r), unsignedBigIntToBytes(s), recovery);\n }\n static async verifySignature(signature, messageHash, pubkey) {\n if (messageHash.length === 0) {\n throw new Error(\"Message hash must not be empty\");\n }\n if (messageHash.length > 32) {\n throw new Error(\"Message hash length must not exceed 32 bytes\");\n }\n const encodedSig = secp256k1_1.secp256k1.Signature.fromDER(signature.toDer());\n return secp256k1_1.secp256k1.verify(encodedSig, messageHash, pubkey, { lowS: false });\n }\n static recoverPubkey(signature, messageHash) {\n const pk = new secp256k1_1.secp256k1.Signature(bytesToUnsignedBigInt(signature.r()), bytesToUnsignedBigInt(signature.s()), signature.recovery).recoverPublicKey(messageHash);\n return pk.toBytes(false);\n }\n /**\n * Takes a compressed or uncompressed pubkey and return a compressed one.\n *\n * This function is idempotent.\n */\n static compressPubkey(pubkey) {\n switch (pubkey.length) {\n case 33:\n return pubkey;\n case 65:\n return secp256k1_1.secp256k1.Point.fromHex(pubkey).toRawBytes(true);\n default:\n throw new Error(\"Invalid pubkey length\");\n }\n }\n /**\n * Takes a compressed or uncompressed pubkey and returns an uncompressed one.\n *\n * This function is idempotent.\n */\n static uncompressPubkey(pubkey) {\n switch (pubkey.length) {\n case 33:\n return secp256k1_1.secp256k1.Point.fromHex(pubkey).toRawBytes(false);\n case 65:\n return pubkey;\n default:\n throw new Error(\"Invalid pubkey length\");\n }\n }\n static trimRecoveryByte(signature) {\n switch (signature.length) {\n case 64:\n return signature;\n case 65:\n return signature.slice(0, 64);\n default:\n throw new Error(\"Invalid signature length\");\n }\n }\n}\nexports.Secp256k1 = Secp256k1;\n//# sourceMappingURL=secp256k1.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExtendedSecp256k1Signature = exports.Secp256k1Signature = void 0;\nfunction trimLeadingNullBytes(inData) {\n let numberOfLeadingNullBytes = 0;\n for (const byte of inData) {\n if (byte === 0x00) {\n numberOfLeadingNullBytes++;\n }\n else {\n break;\n }\n }\n return inData.slice(numberOfLeadingNullBytes);\n}\nconst derTagInteger = 0x02;\nclass Secp256k1Signature {\n /**\n * Takes the pair of integers (r, s) as 2x32 byte of binary data.\n *\n * Note: This is the format Cosmos SDK uses natively.\n *\n * @param data a 64 byte value containing integers r and s.\n */\n static fromFixedLength(data) {\n if (data.length !== 64) {\n throw new Error(`Got invalid data length: ${data.length}. Expected 2x 32 bytes for the pair (r, s)`);\n }\n return new Secp256k1Signature(trimLeadingNullBytes(data.slice(0, 32)), trimLeadingNullBytes(data.slice(32, 64)));\n }\n static fromDer(data) {\n let pos = 0;\n if (data[pos++] !== 0x30) {\n throw new Error(\"Prefix 0x30 expected\");\n }\n const bodyLength = data[pos++];\n if (data.length - pos !== bodyLength) {\n throw new Error(\"Data length mismatch detected\");\n }\n // r\n const rTag = data[pos++];\n if (rTag !== derTagInteger) {\n throw new Error(\"INTEGER tag expected\");\n }\n const rLength = data[pos++];\n if (rLength >= 0x80) {\n throw new Error(\"Decoding length values above 127 not supported\");\n }\n const rData = data.slice(pos, pos + rLength);\n pos += rLength;\n // s\n const sTag = data[pos++];\n if (sTag !== derTagInteger) {\n throw new Error(\"INTEGER tag expected\");\n }\n const sLength = data[pos++];\n if (sLength >= 0x80) {\n throw new Error(\"Decoding length values above 127 not supported\");\n }\n const sData = data.slice(pos, pos + sLength);\n pos += sLength;\n return new Secp256k1Signature(\n // r/s data can contain leading 0 bytes to express integers being non-negative in DER\n trimLeadingNullBytes(rData), trimLeadingNullBytes(sData));\n }\n constructor(r, s) {\n if (r.length > 32 || r.length === 0 || r[0] === 0x00) {\n throw new Error(\"Unsigned integer r must be encoded as unpadded big endian.\");\n }\n if (s.length > 32 || s.length === 0 || s[0] === 0x00) {\n throw new Error(\"Unsigned integer s must be encoded as unpadded big endian.\");\n }\n this.data = {\n r: r,\n s: s,\n };\n }\n r(length) {\n if (length === undefined) {\n return this.data.r;\n }\n else {\n const paddingLength = length - this.data.r.length;\n if (paddingLength < 0) {\n throw new Error(\"Length too small to hold parameter r\");\n }\n const padding = new Uint8Array(paddingLength);\n return new Uint8Array([...padding, ...this.data.r]);\n }\n }\n s(length) {\n if (length === undefined) {\n return this.data.s;\n }\n else {\n const paddingLength = length - this.data.s.length;\n if (paddingLength < 0) {\n throw new Error(\"Length too small to hold parameter s\");\n }\n const padding = new Uint8Array(paddingLength);\n return new Uint8Array([...padding, ...this.data.s]);\n }\n }\n toFixedLength() {\n return new Uint8Array([...this.r(32), ...this.s(32)]);\n }\n toDer() {\n // DER supports negative integers but our data is unsigned. Thus we need to prepend\n // a leading 0 byte when the highest bit is set to differentiate negative values\n const rEncoded = this.data.r[0] >= 0x80 ? new Uint8Array([0, ...this.data.r]) : this.data.r;\n const sEncoded = this.data.s[0] >= 0x80 ? new Uint8Array([0, ...this.data.s]) : this.data.s;\n const rLength = rEncoded.length;\n const sLength = sEncoded.length;\n const data = new Uint8Array([derTagInteger, rLength, ...rEncoded, derTagInteger, sLength, ...sEncoded]);\n return new Uint8Array([0x30, data.length, ...data]);\n }\n}\nexports.Secp256k1Signature = Secp256k1Signature;\n/**\n * A Secp256k1Signature plus the recovery parameter\n */\nclass ExtendedSecp256k1Signature extends Secp256k1Signature {\n /**\n * Decode extended signature from the simple fixed length encoding\n * described in toFixedLength().\n */\n static fromFixedLength(data) {\n if (data.length !== 65) {\n throw new Error(`Got invalid data length ${data.length}. Expected 32 + 32 + 1`);\n }\n return new ExtendedSecp256k1Signature(trimLeadingNullBytes(data.slice(0, 32)), trimLeadingNullBytes(data.slice(32, 64)), data[64]);\n }\n constructor(r, s, recovery) {\n super(r, s);\n if (!Number.isInteger(recovery)) {\n throw new Error(\"The recovery parameter must be an integer.\");\n }\n if (recovery < 0 || recovery > 4) {\n throw new Error(\"The recovery parameter must be one of 0, 1, 2, 3.\");\n }\n this.recovery = recovery;\n }\n /**\n * A simple custom encoding that encodes the extended signature as\n * r (32 bytes) | s (32 bytes) | recovery param (1 byte)\n * where | denotes concatenation of bonary data.\n */\n toFixedLength() {\n return new Uint8Array([...this.r(32), ...this.s(32), this.recovery]);\n }\n}\nexports.ExtendedSecp256k1Signature = ExtendedSecp256k1Signature;\n//# sourceMappingURL=secp256k1signature.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha512 = exports.Sha256 = void 0;\nexports.sha256 = sha256;\nexports.sha512 = sha512;\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst sha512_1 = require(\"@noble/hashes/sha512\");\nconst utils_1 = require(\"./utils\");\nclass Sha256 {\n constructor(firstData) {\n this.blockSize = 512 / 8;\n this.impl = sha256_1.sha256.create();\n if (firstData) {\n this.update(firstData);\n }\n }\n update(data) {\n this.impl.update((0, utils_1.toRealUint8Array)(data));\n return this;\n }\n digest() {\n return this.impl.digest();\n }\n}\nexports.Sha256 = Sha256;\n/** Convenience function equivalent to `new Sha256(data).digest()` */\nfunction sha256(data) {\n return new Sha256(data).digest();\n}\nclass Sha512 {\n constructor(firstData) {\n this.blockSize = 1024 / 8;\n this.impl = sha512_1.sha512.create();\n if (firstData) {\n this.update(firstData);\n }\n }\n update(data) {\n this.impl.update((0, utils_1.toRealUint8Array)(data));\n return this;\n }\n digest() {\n return this.impl.digest();\n }\n}\nexports.Sha512 = Sha512;\n/** Convenience function equivalent to `new Sha512(data).digest()` */\nfunction sha512(data) {\n return new Sha512(data).digest();\n}\n//# sourceMappingURL=sha.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Slip10 = exports.Slip10RawIndex = exports.Slip10Curve = void 0;\nexports.slip10CurveFromString = slip10CurveFromString;\nexports.pathToString = pathToString;\nexports.stringToPath = stringToPath;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst secp256k1_1 = require(\"@noble/curves/secp256k1\");\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst hmac_1 = require(\"./hmac\");\nconst sha_1 = require(\"./sha\");\n/**\n * Raw values must match the curve string in SLIP-0010 master key generation\n *\n * @see https://github.com/satoshilabs/slips/blob/master/slip-0010.md#master-key-generation\n */\nvar Slip10Curve;\n(function (Slip10Curve) {\n Slip10Curve[\"Secp256k1\"] = \"Bitcoin seed\";\n Slip10Curve[\"Ed25519\"] = \"ed25519 seed\";\n})(Slip10Curve || (exports.Slip10Curve = Slip10Curve = {}));\nfunction bytesToUnsignedBigInt(a) {\n return BigInt(\"0x\" + (0, encoding_1.toHex)(a));\n}\n/**\n * Reverse mapping of Slip10Curve\n */\nfunction slip10CurveFromString(curveString) {\n switch (curveString) {\n case Slip10Curve.Ed25519:\n return Slip10Curve.Ed25519;\n case Slip10Curve.Secp256k1:\n return Slip10Curve.Secp256k1;\n default:\n throw new Error(`Unknown curve string: '${curveString}'`);\n }\n}\nclass Slip10RawIndex extends math_1.Uint32 {\n static hardened(hardenedIndex) {\n return new Slip10RawIndex(hardenedIndex + 2 ** 31);\n }\n static normal(normalIndex) {\n return new Slip10RawIndex(normalIndex);\n }\n isHardened() {\n return this.data >= 2 ** 31;\n }\n}\nexports.Slip10RawIndex = Slip10RawIndex;\n// Universal private key derivation accoring to\n// https://github.com/satoshilabs/slips/blob/master/slip-0010.md\nclass Slip10 {\n static derivePath(curve, seed, path) {\n let result = this.master(curve, seed);\n for (const rawIndex of path) {\n result = this.child(curve, result.privkey, result.chainCode, rawIndex);\n }\n return result;\n }\n static master(curve, seed) {\n const i = new hmac_1.Hmac(sha_1.Sha512, (0, encoding_1.toAscii)(curve)).update(seed).digest();\n const il = i.slice(0, 32);\n const ir = i.slice(32, 64);\n if (curve !== Slip10Curve.Ed25519 && (this.isZero(il) || this.isGteN(curve, il))) {\n return this.master(curve, i);\n }\n return {\n chainCode: ir,\n privkey: il,\n };\n }\n static child(curve, parentPrivkey, parentChainCode, rawIndex) {\n let i;\n if (rawIndex.isHardened()) {\n const payload = new Uint8Array([0x00, ...parentPrivkey, ...rawIndex.toBytesBigEndian()]);\n i = new hmac_1.Hmac(sha_1.Sha512, parentChainCode).update(payload).digest();\n }\n else {\n if (curve === Slip10Curve.Ed25519) {\n throw new Error(\"Normal keys are not allowed with ed25519\");\n }\n else {\n // Step 1 of https://github.com/satoshilabs/slips/blob/master/slip-0010.md#private-parent-key--private-child-key\n // Calculate I = HMAC-SHA512(Key = c_par, Data = ser_P(point(k_par)) || ser_32(i)).\n // where the functions point() and ser_p() are defined in BIP-0032\n const data = new Uint8Array([\n ...Slip10.serializedPoint(curve, bytesToUnsignedBigInt(parentPrivkey)),\n ...rawIndex.toBytesBigEndian(),\n ]);\n i = new hmac_1.Hmac(sha_1.Sha512, parentChainCode).update(data).digest();\n }\n }\n return this.childImpl(curve, parentPrivkey, parentChainCode, rawIndex, i);\n }\n /**\n * Implementation of ser_P(point(k_par)) from BIP-0032\n *\n * @see https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\n */\n static serializedPoint(curve, p) {\n switch (curve) {\n case Slip10Curve.Secp256k1:\n return secp256k1_1.secp256k1.Point.BASE.multiply(p).toRawBytes(true);\n default:\n throw new Error(\"curve not supported\");\n }\n }\n static childImpl(curve, parentPrivkey, parentChainCode, rawIndex, i) {\n // step 2 (of the Private parent key → private child key algorithm)\n const il = i.slice(0, 32);\n const ir = i.slice(32, 64);\n // step 3\n const returnChainCode = ir;\n // step 4\n if (curve === Slip10Curve.Ed25519) {\n return {\n chainCode: returnChainCode,\n privkey: il,\n };\n }\n // step 5\n const n = this.n(curve);\n const returnChildKeyAsNumber = new bn_js_1.default(il).add(new bn_js_1.default(parentPrivkey)).mod(n);\n const returnChildKey = Uint8Array.from(returnChildKeyAsNumber.toArray(\"be\", 32));\n // step 6\n if (this.isGteN(curve, il) || this.isZero(returnChildKey)) {\n const newI = new hmac_1.Hmac(sha_1.Sha512, parentChainCode)\n .update(new Uint8Array([0x01, ...ir, ...rawIndex.toBytesBigEndian()]))\n .digest();\n return this.childImpl(curve, parentPrivkey, parentChainCode, rawIndex, newI);\n }\n // step 7\n return {\n chainCode: returnChainCode,\n privkey: returnChildKey,\n };\n }\n static isZero(privkey) {\n return privkey.every((byte) => byte === 0);\n }\n static isGteN(curve, privkey) {\n const keyAsNumber = new bn_js_1.default(privkey);\n return keyAsNumber.gte(this.n(curve));\n }\n static n(curve) {\n switch (curve) {\n case Slip10Curve.Secp256k1:\n return new bn_js_1.default(\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141\", 16);\n default:\n throw new Error(\"curve not supported\");\n }\n }\n}\nexports.Slip10 = Slip10;\nfunction pathToString(path) {\n return path.reduce((current, component) => {\n const componentString = component.isHardened()\n ? `${component.toNumber() - 2 ** 31}'`\n : component.toString();\n return current + \"/\" + componentString;\n }, \"m\");\n}\nfunction stringToPath(input) {\n if (!input.startsWith(\"m\"))\n throw new Error(\"Path string must start with 'm'\");\n let rest = input.slice(1);\n const out = new Array();\n while (rest) {\n const match = rest.match(/^\\/([0-9]+)('?)/);\n if (!match)\n throw new Error(\"Syntax error while reading path component\");\n const [fullMatch, numberString, apostrophe] = match;\n const value = math_1.Uint53.fromString(numberString).toNumber();\n if (value >= 2 ** 31)\n throw new Error(\"Component value too high. Must not exceed 2**31-1.\");\n if (apostrophe)\n out.push(Slip10RawIndex.hardened(value));\n else\n out.push(Slip10RawIndex.normal(value));\n rest = rest.slice(fullMatch.length);\n }\n return out;\n}\n//# sourceMappingURL=slip10.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toRealUint8Array = toRealUint8Array;\n// See https://github.com/paulmillr/noble-hashes/issues/25 for why this is needed\nfunction toRealUint8Array(data) {\n if (data instanceof Uint8Array)\n return data;\n else\n return Uint8Array.from(data);\n}\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toAscii = toAscii;\nexports.fromAscii = fromAscii;\nfunction toAscii(input) {\n const toNums = (str) => str.split(\"\").map((x) => {\n const charCode = x.charCodeAt(0);\n // 0x00–0x1F control characters\n // 0x20–0x7E printable characters\n // 0x7F delete character\n // 0x80–0xFF out of 7 bit ascii range\n if (charCode < 0x20 || charCode > 0x7e) {\n throw new Error(\"Cannot encode character that is out of printable ASCII range: \" + charCode);\n }\n return charCode;\n });\n return Uint8Array.from(toNums(input));\n}\nfunction fromAscii(data) {\n const fromNums = (listOfNumbers) => listOfNumbers.map((x) => {\n // 0x00–0x1F control characters\n // 0x20–0x7E printable characters\n // 0x7F delete character\n // 0x80–0xFF out of 7 bit ascii range\n if (x < 0x20 || x > 0x7e) {\n throw new Error(\"Cannot decode character that is out of printable ASCII range: \" + x);\n }\n return String.fromCharCode(x);\n });\n return fromNums(Array.from(data)).join(\"\");\n}\n//# sourceMappingURL=ascii.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBase64 = toBase64;\nexports.fromBase64 = fromBase64;\nconst base64js = __importStar(require(\"base64-js\"));\nfunction toBase64(data) {\n return base64js.fromByteArray(data);\n}\nfunction fromBase64(base64String) {\n if (!base64String.match(/^[a-zA-Z0-9+/]*={0,2}$/)) {\n throw new Error(\"Invalid base64 string format\");\n }\n return base64js.toByteArray(base64String);\n}\n//# sourceMappingURL=base64.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBech32 = toBech32;\nexports.fromBech32 = fromBech32;\nexports.normalizeBech32 = normalizeBech32;\nconst bech32 = __importStar(require(\"bech32\"));\nfunction toBech32(prefix, data, limit) {\n const address = bech32.encode(prefix, bech32.toWords(data), limit);\n return address;\n}\nfunction fromBech32(address, limit = Infinity) {\n const decodedAddress = bech32.decode(address, limit);\n return {\n prefix: decodedAddress.prefix,\n data: new Uint8Array(bech32.fromWords(decodedAddress.words)),\n };\n}\n/**\n * Takes a bech32 address and returns a normalized (i.e. lower case) representation of it.\n *\n * The input is validated along the way, which makes this significantly safer than\n * using `address.toLowerCase()`.\n */\nfunction normalizeBech32(address) {\n const { prefix, data } = fromBech32(address);\n return toBech32(prefix, data);\n}\n//# sourceMappingURL=bech32.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toHex = toHex;\nexports.fromHex = fromHex;\nfunction toHex(data) {\n let out = \"\";\n for (const byte of data) {\n out += (\"0\" + byte.toString(16)).slice(-2);\n }\n return out;\n}\nfunction fromHex(hexstring) {\n if (hexstring.length % 2 !== 0) {\n throw new Error(\"hex string length must be a multiple of 2\");\n }\n const out = new Uint8Array(hexstring.length / 2);\n for (let i = 0; i < out.length; i++) {\n const j = 2 * i;\n const hexByteAsString = hexstring.slice(j, j + 2);\n if (!hexByteAsString.match(/[0-9a-f]{2}/i)) {\n throw new Error(\"hex string contains invalid characters\");\n }\n out[i] = parseInt(hexByteAsString, 16);\n }\n return out;\n}\n//# sourceMappingURL=hex.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = exports.toRfc3339 = exports.fromRfc3339 = exports.toHex = exports.fromHex = exports.toBech32 = exports.normalizeBech32 = exports.fromBech32 = exports.toBase64 = exports.fromBase64 = exports.toAscii = exports.fromAscii = void 0;\nvar ascii_1 = require(\"./ascii\");\nObject.defineProperty(exports, \"fromAscii\", { enumerable: true, get: function () { return ascii_1.fromAscii; } });\nObject.defineProperty(exports, \"toAscii\", { enumerable: true, get: function () { return ascii_1.toAscii; } });\nvar base64_1 = require(\"./base64\");\nObject.defineProperty(exports, \"fromBase64\", { enumerable: true, get: function () { return base64_1.fromBase64; } });\nObject.defineProperty(exports, \"toBase64\", { enumerable: true, get: function () { return base64_1.toBase64; } });\nvar bech32_1 = require(\"./bech32\");\nObject.defineProperty(exports, \"fromBech32\", { enumerable: true, get: function () { return bech32_1.fromBech32; } });\nObject.defineProperty(exports, \"normalizeBech32\", { enumerable: true, get: function () { return bech32_1.normalizeBech32; } });\nObject.defineProperty(exports, \"toBech32\", { enumerable: true, get: function () { return bech32_1.toBech32; } });\nvar hex_1 = require(\"./hex\");\nObject.defineProperty(exports, \"fromHex\", { enumerable: true, get: function () { return hex_1.fromHex; } });\nObject.defineProperty(exports, \"toHex\", { enumerable: true, get: function () { return hex_1.toHex; } });\nvar rfc3339_1 = require(\"./rfc3339\");\nObject.defineProperty(exports, \"fromRfc3339\", { enumerable: true, get: function () { return rfc3339_1.fromRfc3339; } });\nObject.defineProperty(exports, \"toRfc3339\", { enumerable: true, get: function () { return rfc3339_1.toRfc3339; } });\nvar utf8_1 = require(\"./utf8\");\nObject.defineProperty(exports, \"fromUtf8\", { enumerable: true, get: function () { return utf8_1.fromUtf8; } });\nObject.defineProperty(exports, \"toUtf8\", { enumerable: true, get: function () { return utf8_1.toUtf8; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromRfc3339 = fromRfc3339;\nexports.toRfc3339 = toRfc3339;\nconst rfc3339Matcher = /^(\\d{4})-(\\d{2})-(\\d{2})[T ](\\d{2}):(\\d{2}):(\\d{2})(\\.\\d{1,9})?((?:[+-]\\d{2}:\\d{2})|Z)$/;\nfunction padded(integer, length = 2) {\n return integer.toString().padStart(length, \"0\");\n}\nfunction fromRfc3339(str) {\n const matches = rfc3339Matcher.exec(str);\n if (!matches) {\n throw new Error(\"Date string is not in RFC3339 format\");\n }\n const year = +matches[1];\n const month = +matches[2];\n const day = +matches[3];\n const hour = +matches[4];\n const minute = +matches[5];\n const second = +matches[6];\n // fractional seconds match either undefined or a string like \".1\", \".123456789\"\n const milliSeconds = matches[7] ? Math.floor(+matches[7] * 1000) : 0;\n let tzOffsetSign;\n let tzOffsetHours;\n let tzOffsetMinutes;\n // if timezone is undefined, it must be Z or nothing (otherwise the group would have captured).\n if (matches[8] === \"Z\") {\n tzOffsetSign = 1;\n tzOffsetHours = 0;\n tzOffsetMinutes = 0;\n }\n else {\n tzOffsetSign = matches[8].substring(0, 1) === \"-\" ? -1 : 1;\n tzOffsetHours = +matches[8].substring(1, 3);\n tzOffsetMinutes = +matches[8].substring(4, 6);\n }\n const tzOffset = tzOffsetSign * (tzOffsetHours * 60 + tzOffsetMinutes) * 60; // seconds\n const date = new Date();\n date.setUTCFullYear(year, month - 1, day);\n date.setUTCHours(hour, minute, second, milliSeconds);\n return new Date(date.getTime() - tzOffset * 1000);\n}\nfunction toRfc3339(date) {\n const year = date.getUTCFullYear();\n const month = padded(date.getUTCMonth() + 1);\n const day = padded(date.getUTCDate());\n const hour = padded(date.getUTCHours());\n const minute = padded(date.getUTCMinutes());\n const second = padded(date.getUTCSeconds());\n const ms = padded(date.getUTCMilliseconds(), 3);\n return `${year}-${month}-${day}T${hour}:${minute}:${second}.${ms}Z`;\n}\n//# sourceMappingURL=rfc3339.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = toUtf8;\nexports.fromUtf8 = fromUtf8;\nfunction toUtf8(str) {\n return new TextEncoder().encode(str);\n}\n/**\n * Takes UTF-8 data and decodes it to a string.\n *\n * In lossy mode, the [REPLACEMENT CHARACTER](https://en.wikipedia.org/wiki/Specials_(Unicode_block))\n * is used to substitude invalid encodings.\n * By default lossy mode is off and invalid data will lead to exceptions.\n */\nfunction fromUtf8(data, lossy = false) {\n const fatal = !lossy;\n return new TextDecoder(\"utf-8\", { fatal }).decode(data);\n}\n//# sourceMappingURL=utf8.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Decimal = void 0;\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\n// Too large values lead to massive memory usage. Limit to something sensible.\n// The largest value we need is 18 (Ether).\nconst maxFractionalDigits = 100;\n/**\n * A type for arbitrary precision, non-negative decimals.\n *\n * Instances of this class are immutable.\n */\nclass Decimal {\n static fromUserInput(input, fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n const badCharacter = input.match(/[^0-9.]/);\n if (badCharacter) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n throw new Error(`Invalid character at position ${badCharacter.index + 1}`);\n }\n let whole;\n let fractional;\n if (input === \"\") {\n whole = \"0\";\n fractional = \"\";\n }\n else if (input.search(/\\./) === -1) {\n // integer format, no separator\n whole = input;\n fractional = \"\";\n }\n else {\n const parts = input.split(\".\");\n switch (parts.length) {\n case 0:\n case 1:\n throw new Error(\"Fewer than two elements in split result. This must not happen here.\");\n case 2:\n if (!parts[1])\n throw new Error(\"Fractional part missing\");\n whole = parts[0];\n fractional = parts[1].replace(/0+$/, \"\");\n break;\n default:\n throw new Error(\"More than one separator found\");\n }\n }\n if (fractional.length > fractionalDigits) {\n throw new Error(\"Got more fractional digits than supported\");\n }\n const quantity = `${whole}${fractional.padEnd(fractionalDigits, \"0\")}`;\n return new Decimal(quantity, fractionalDigits);\n }\n static fromAtomics(atomics, fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(atomics, fractionalDigits);\n }\n /**\n * Creates a Decimal with value 0.0 and the given number of fractial digits.\n *\n * Fractional digits are not relevant for the value but needed to be able\n * to perform arithmetic operations with other decimals.\n */\n static zero(fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(\"0\", fractionalDigits);\n }\n /**\n * Creates a Decimal with value 1.0 and the given number of fractial digits.\n *\n * Fractional digits are not relevant for the value but needed to be able\n * to perform arithmetic operations with other decimals.\n */\n static one(fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(\"1\" + \"0\".repeat(fractionalDigits), fractionalDigits);\n }\n static verifyFractionalDigits(fractionalDigits) {\n if (!Number.isInteger(fractionalDigits))\n throw new Error(\"Fractional digits is not an integer\");\n if (fractionalDigits < 0)\n throw new Error(\"Fractional digits must not be negative\");\n if (fractionalDigits > maxFractionalDigits) {\n throw new Error(`Fractional digits must not exceed ${maxFractionalDigits}`);\n }\n }\n static compare(a, b) {\n if (a.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n return a.data.atomics.cmp(new bn_js_1.default(b.atomics));\n }\n get atomics() {\n return this.data.atomics.toString();\n }\n get fractionalDigits() {\n return this.data.fractionalDigits;\n }\n constructor(atomics, fractionalDigits) {\n if (!atomics.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format. Only non-negative integers in decimal representation supported.\");\n }\n this.data = {\n atomics: new bn_js_1.default(atomics),\n fractionalDigits: fractionalDigits,\n };\n }\n /** Creates a new instance with the same value */\n clone() {\n return new Decimal(this.atomics, this.fractionalDigits);\n }\n /** Returns the greatest decimal <= this which has no fractional part (rounding down) */\n floor() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return this.clone();\n }\n else {\n return Decimal.fromAtomics(whole.mul(factor).toString(), this.fractionalDigits);\n }\n }\n /** Returns the smallest decimal >= this which has no fractional part (rounding up) */\n ceil() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return this.clone();\n }\n else {\n return Decimal.fromAtomics(whole.addn(1).mul(factor).toString(), this.fractionalDigits);\n }\n }\n toString() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return whole.toString();\n }\n else {\n const fullFractionalPart = fractional.toString().padStart(this.data.fractionalDigits, \"0\");\n const trimmedFractionalPart = fullFractionalPart.replace(/0+$/, \"\");\n return `${whole.toString()}.${trimmedFractionalPart}`;\n }\n }\n /**\n * Returns an approximation as a float type. Only use this if no\n * exact calculation is required.\n */\n toFloatApproximation() {\n const out = Number(this.toString());\n if (Number.isNaN(out))\n throw new Error(\"Conversion to number failed\");\n return out;\n }\n /**\n * a.plus(b) returns a+b.\n *\n * Both values need to have the same fractional digits.\n */\n plus(b) {\n if (this.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n const sum = this.data.atomics.add(new bn_js_1.default(b.atomics));\n return new Decimal(sum.toString(), this.fractionalDigits);\n }\n /**\n * a.minus(b) returns a-b.\n *\n * Both values need to have the same fractional digits.\n * The resulting difference needs to be non-negative.\n */\n minus(b) {\n if (this.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n const difference = this.data.atomics.sub(new bn_js_1.default(b.atomics));\n if (difference.ltn(0))\n throw new Error(\"Difference must not be negative\");\n return new Decimal(difference.toString(), this.fractionalDigits);\n }\n /**\n * a.multiply(b) returns a*b.\n *\n * We only allow multiplication by unsigned integers to avoid rounding errors.\n */\n multiply(b) {\n const product = this.data.atomics.mul(new bn_js_1.default(b.toString()));\n return new Decimal(product.toString(), this.fractionalDigits);\n }\n equals(b) {\n return Decimal.compare(this, b) === 0;\n }\n isLessThan(b) {\n return Decimal.compare(this, b) < 0;\n }\n isLessThanOrEqual(b) {\n return Decimal.compare(this, b) <= 0;\n }\n isGreaterThan(b) {\n return Decimal.compare(this, b) > 0;\n }\n isGreaterThanOrEqual(b) {\n return Decimal.compare(this, b) >= 0;\n }\n}\nexports.Decimal = Decimal;\n//# sourceMappingURL=decimal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uint64 = exports.Uint53 = exports.Uint32 = exports.Int53 = exports.Decimal = void 0;\nvar decimal_1 = require(\"./decimal\");\nObject.defineProperty(exports, \"Decimal\", { enumerable: true, get: function () { return decimal_1.Decimal; } });\nvar integers_1 = require(\"./integers\");\nObject.defineProperty(exports, \"Int53\", { enumerable: true, get: function () { return integers_1.Int53; } });\nObject.defineProperty(exports, \"Uint32\", { enumerable: true, get: function () { return integers_1.Uint32; } });\nObject.defineProperty(exports, \"Uint53\", { enumerable: true, get: function () { return integers_1.Uint53; } });\nObject.defineProperty(exports, \"Uint64\", { enumerable: true, get: function () { return integers_1.Uint64; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n/* eslint-disable no-bitwise */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uint64 = exports.Uint53 = exports.Int53 = exports.Uint32 = void 0;\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst uint64MaxValue = new bn_js_1.default(\"18446744073709551615\", 10, \"be\");\nclass Uint32 {\n /** @deprecated use Uint32.fromBytes */\n static fromBigEndianBytes(bytes) {\n return Uint32.fromBytes(bytes);\n }\n /**\n * Creates a Uint32 from a fixed length byte array.\n *\n * @param bytes a list of exactly 4 bytes\n * @param endianess defaults to big endian\n */\n static fromBytes(bytes, endianess = \"be\") {\n if (bytes.length !== 4) {\n throw new Error(\"Invalid input length. Expected 4 bytes.\");\n }\n for (let i = 0; i < bytes.length; ++i) {\n if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) {\n throw new Error(\"Invalid value in byte. Found: \" + bytes[i]);\n }\n }\n const beBytes = endianess === \"be\" ? bytes : Array.from(bytes).reverse();\n // Use multiplication instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint32(beBytes[0] * 2 ** 24 + beBytes[1] * 2 ** 16 + beBytes[2] * 2 ** 8 + beBytes[3]);\n }\n static fromString(str) {\n if (!str.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Uint32(Number.parseInt(str, 10));\n }\n constructor(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n if (input < 0 || input > 4294967295) {\n throw new Error(\"Input not in uint32 range: \" + input.toString());\n }\n this.data = input;\n }\n toBytesBigEndian() {\n // Use division instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint8Array([\n Math.floor(this.data / 2 ** 24) & 0xff,\n Math.floor(this.data / 2 ** 16) & 0xff,\n Math.floor(this.data / 2 ** 8) & 0xff,\n Math.floor(this.data / 2 ** 0) & 0xff,\n ]);\n }\n toBytesLittleEndian() {\n // Use division instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint8Array([\n Math.floor(this.data / 2 ** 0) & 0xff,\n Math.floor(this.data / 2 ** 8) & 0xff,\n Math.floor(this.data / 2 ** 16) & 0xff,\n Math.floor(this.data / 2 ** 24) & 0xff,\n ]);\n }\n toNumber() {\n return this.data;\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Uint32 = Uint32;\nclass Int53 {\n static fromString(str) {\n if (!str.match(/^-?[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Int53(Number.parseInt(str, 10));\n }\n constructor(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n if (input < Number.MIN_SAFE_INTEGER || input > Number.MAX_SAFE_INTEGER) {\n throw new Error(\"Input not in int53 range: \" + input.toString());\n }\n this.data = input;\n }\n toNumber() {\n return this.data;\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Int53 = Int53;\nclass Uint53 {\n static fromString(str) {\n const signed = Int53.fromString(str);\n return new Uint53(signed.toNumber());\n }\n constructor(input) {\n const signed = new Int53(input);\n if (signed.toNumber() < 0) {\n throw new Error(\"Input is negative\");\n }\n this.data = signed;\n }\n toNumber() {\n return this.data.toNumber();\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Uint53 = Uint53;\nclass Uint64 {\n /** @deprecated use Uint64.fromBytes */\n static fromBytesBigEndian(bytes) {\n return Uint64.fromBytes(bytes);\n }\n /**\n * Creates a Uint64 from a fixed length byte array.\n *\n * @param bytes a list of exactly 8 bytes\n * @param endianess defaults to big endian\n */\n static fromBytes(bytes, endianess = \"be\") {\n if (bytes.length !== 8) {\n throw new Error(\"Invalid input length. Expected 8 bytes.\");\n }\n for (let i = 0; i < bytes.length; ++i) {\n if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) {\n throw new Error(\"Invalid value in byte. Found: \" + bytes[i]);\n }\n }\n const beBytes = endianess === \"be\" ? Array.from(bytes) : Array.from(bytes).reverse();\n return new Uint64(new bn_js_1.default(beBytes));\n }\n static fromString(str) {\n if (!str.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Uint64(new bn_js_1.default(str, 10, \"be\"));\n }\n static fromNumber(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n let bigint;\n try {\n bigint = new bn_js_1.default(input);\n }\n catch {\n throw new Error(\"Input is not a safe integer\");\n }\n return new Uint64(bigint);\n }\n constructor(data) {\n if (data.isNeg()) {\n throw new Error(\"Input is negative\");\n }\n if (data.gt(uint64MaxValue)) {\n throw new Error(\"Input exceeds uint64 range\");\n }\n this.data = data;\n }\n toBytesBigEndian() {\n return Uint8Array.from(this.data.toArray(\"be\", 8));\n }\n toBytesLittleEndian() {\n return Uint8Array.from(this.data.toArray(\"le\", 8));\n }\n toString() {\n return this.data.toString(10);\n }\n toBigInt() {\n return BigInt(this.toString());\n }\n toNumber() {\n return this.data.toNumber();\n }\n}\nexports.Uint64 = Uint64;\n// Assign classes to unused variables in order to verify static interface conformance at compile time.\n// Workaround for https://github.com/microsoft/TypeScript/issues/33892\nconst _int53Class = Int53;\nconst _uint53Class = Uint53;\nconst _uint32Class = Uint32;\nconst _uint64Class = Uint64;\n//# sourceMappingURL=integers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.arrayContentEquals = arrayContentEquals;\nexports.arrayContentStartsWith = arrayContentStartsWith;\n/**\n * Compares the content of two arrays-like objects for equality.\n *\n * Equality is defined as having equal length and element values, where element equality means `===` returning `true`.\n *\n * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type.\n * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type.\n */\nfunction arrayContentEquals(a, b) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; ++i) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n}\n/**\n * Checks if `a` starts with the contents of `b`.\n *\n * This requires equality of the element values, where element equality means `===` returning `true`.\n *\n * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type.\n * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type.\n */\nfunction arrayContentStartsWith(a, b) {\n if (a.length < b.length)\n return false;\n for (let i = 0; i < b.length; ++i) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n}\n//# sourceMappingURL=arrays.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assert = assert;\nexports.assertDefined = assertDefined;\nexports.assertDefinedAndNotNull = assertDefinedAndNotNull;\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction assert(condition, msg) {\n if (!condition) {\n throw new Error(msg || \"condition is not truthy\");\n }\n}\nfunction assertDefined(value, msg) {\n if (value === undefined) {\n throw new Error(msg ?? \"value is undefined\");\n }\n}\nfunction assertDefinedAndNotNull(value, msg) {\n if (value === undefined || value === null) {\n throw new Error(msg ?? \"value is undefined or null\");\n }\n}\n//# sourceMappingURL=assert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isUint8Array = exports.isNonNullObject = exports.isDefined = exports.sleep = exports.assertDefinedAndNotNull = exports.assertDefined = exports.assert = exports.arrayContentStartsWith = exports.arrayContentEquals = void 0;\nvar arrays_1 = require(\"./arrays\");\nObject.defineProperty(exports, \"arrayContentEquals\", { enumerable: true, get: function () { return arrays_1.arrayContentEquals; } });\nObject.defineProperty(exports, \"arrayContentStartsWith\", { enumerable: true, get: function () { return arrays_1.arrayContentStartsWith; } });\nvar assert_1 = require(\"./assert\");\nObject.defineProperty(exports, \"assert\", { enumerable: true, get: function () { return assert_1.assert; } });\nObject.defineProperty(exports, \"assertDefined\", { enumerable: true, get: function () { return assert_1.assertDefined; } });\nObject.defineProperty(exports, \"assertDefinedAndNotNull\", { enumerable: true, get: function () { return assert_1.assertDefinedAndNotNull; } });\nvar sleep_1 = require(\"./sleep\");\nObject.defineProperty(exports, \"sleep\", { enumerable: true, get: function () { return sleep_1.sleep; } });\nvar typechecks_1 = require(\"./typechecks\");\nObject.defineProperty(exports, \"isDefined\", { enumerable: true, get: function () { return typechecks_1.isDefined; } });\nObject.defineProperty(exports, \"isNonNullObject\", { enumerable: true, get: function () { return typechecks_1.isNonNullObject; } });\nObject.defineProperty(exports, \"isUint8Array\", { enumerable: true, get: function () { return typechecks_1.isUint8Array; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sleep = sleep;\nasync function sleep(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n//# sourceMappingURL=sleep.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNonNullObject = isNonNullObject;\nexports.isUint8Array = isUint8Array;\nexports.isDefined = isDefined;\n/**\n * Checks if data is a non-null object (i.e. matches the TypeScript object type).\n *\n * Note: this returns true for arrays, which are objects in JavaScript\n * even though array and object are different types in JSON.\n *\n * @see https://www.typescriptlang.org/docs/handbook/basic-types.html#object\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isNonNullObject(data) {\n return typeof data === \"object\" && data !== null;\n}\n/**\n * Checks if data is an Uint8Array. Note: Buffer is treated as not a Uint8Array\n */\nfunction isUint8Array(data) {\n if (!isNonNullObject(data))\n return false;\n // Avoid instanceof check which is unreliable in some JS environments\n // https://medium.com/@simonwarta/limitations-of-the-instanceof-operator-f4bcdbe7a400\n // Use check that was discussed in https://github.com/crypto-browserify/pbkdf2/pull/81\n if (Object.prototype.toString.call(data) !== \"[object Uint8Array]\")\n return false;\n if (typeof Buffer !== \"undefined\" && typeof Buffer.isBuffer !== \"undefined\") {\n // Buffer.isBuffer is available at runtime\n if (Buffer.isBuffer(data))\n return false;\n }\n return true;\n}\n/**\n * Checks if input is not undefined in a TypeScript-friendly way.\n *\n * This is convenient to use in e.g. `Array.filter` as it will convert\n * the type of a `Array` to `Array`.\n */\nfunction isDefined(value) {\n return value !== undefined;\n}\n//# sourceMappingURL=typechecks.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isJsonCompatibleValue = isJsonCompatibleValue;\nexports.isJsonCompatibleArray = isJsonCompatibleArray;\nexports.isJsonCompatibleDictionary = isJsonCompatibleDictionary;\nfunction isJsonCompatibleValue(value) {\n if (typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\" ||\n value === null ||\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n isJsonCompatibleArray(value) ||\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n isJsonCompatibleDictionary(value)) {\n return true;\n }\n else {\n return false;\n }\n}\nfunction isJsonCompatibleArray(value) {\n if (!Array.isArray(value)) {\n return false;\n }\n for (const item of value) {\n if (!isJsonCompatibleValue(item)) {\n return false;\n }\n }\n // all items okay\n return true;\n}\nfunction isJsonCompatibleDictionary(value) {\n if (typeof value !== \"object\" || value === null) {\n // value must be a non-null object\n return false;\n }\n // Exclude special kind of objects like Array, Date or Uint8Array\n // Object.prototype.toString() returns a specified value:\n // http://www.ecma-international.org/ecma-262/7.0/index.html#sec-object.prototype.tostring\n if (Object.prototype.toString.call(value) !== \"[object Object]\") {\n return false;\n }\n return Object.values(value).every(isJsonCompatibleValue);\n}\n//# sourceMappingURL=compatibility.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeJsonRpcId = makeJsonRpcId;\n// Start with 10001 to avoid possible collisions with all hand-selected values like e.g. 1,2,3,42,100\nlet counter = 10000;\n/**\n * Creates a new ID to be used for creating a JSON-RPC request.\n *\n * Multiple calls of this produce unique values.\n *\n * The output may be any value compatible to JSON-RPC request IDs with an undefined output format and generation logic.\n */\nfunction makeJsonRpcId() {\n return (counter += 1);\n}\n//# sourceMappingURL=id.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.jsonRpcCode = exports.isJsonRpcSuccessResponse = exports.isJsonRpcErrorResponse = exports.parseJsonRpcSuccessResponse = exports.parseJsonRpcResponse = exports.parseJsonRpcRequest = exports.parseJsonRpcId = exports.parseJsonRpcErrorResponse = exports.JsonRpcClient = exports.makeJsonRpcId = void 0;\nvar id_1 = require(\"./id\");\nObject.defineProperty(exports, \"makeJsonRpcId\", { enumerable: true, get: function () { return id_1.makeJsonRpcId; } });\nvar jsonrpcclient_1 = require(\"./jsonrpcclient\");\nObject.defineProperty(exports, \"JsonRpcClient\", { enumerable: true, get: function () { return jsonrpcclient_1.JsonRpcClient; } });\nvar parse_1 = require(\"./parse\");\nObject.defineProperty(exports, \"parseJsonRpcErrorResponse\", { enumerable: true, get: function () { return parse_1.parseJsonRpcErrorResponse; } });\nObject.defineProperty(exports, \"parseJsonRpcId\", { enumerable: true, get: function () { return parse_1.parseJsonRpcId; } });\nObject.defineProperty(exports, \"parseJsonRpcRequest\", { enumerable: true, get: function () { return parse_1.parseJsonRpcRequest; } });\nObject.defineProperty(exports, \"parseJsonRpcResponse\", { enumerable: true, get: function () { return parse_1.parseJsonRpcResponse; } });\nObject.defineProperty(exports, \"parseJsonRpcSuccessResponse\", { enumerable: true, get: function () { return parse_1.parseJsonRpcSuccessResponse; } });\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"isJsonRpcErrorResponse\", { enumerable: true, get: function () { return types_1.isJsonRpcErrorResponse; } });\nObject.defineProperty(exports, \"isJsonRpcSuccessResponse\", { enumerable: true, get: function () { return types_1.isJsonRpcSuccessResponse; } });\nObject.defineProperty(exports, \"jsonRpcCode\", { enumerable: true, get: function () { return types_1.jsonRpcCode; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonRpcClient = void 0;\nconst stream_1 = require(\"@cosmjs/stream\");\nconst types_1 = require(\"./types\");\n/**\n * A thin wrapper that is used to bring together requests and responses by ID.\n *\n * Using this class is only advised for continous communication channels like\n * WebSockets or WebWorker messaging.\n */\nclass JsonRpcClient {\n constructor(connection) {\n this.connection = connection;\n }\n async run(request) {\n const filteredStream = this.connection.responseStream.filter((r) => r.id === request.id);\n const pendingResponses = (0, stream_1.firstEvent)(filteredStream);\n this.connection.sendRequest(request);\n const response = await pendingResponses;\n if ((0, types_1.isJsonRpcErrorResponse)(response)) {\n const error = response.error;\n throw new Error(`JSON RPC error: code=${error.code}; message='${error.message}'`);\n }\n return response;\n }\n}\nexports.JsonRpcClient = JsonRpcClient;\n//# sourceMappingURL=jsonrpcclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseJsonRpcId = parseJsonRpcId;\nexports.parseJsonRpcRequest = parseJsonRpcRequest;\nexports.parseJsonRpcErrorResponse = parseJsonRpcErrorResponse;\nexports.parseJsonRpcSuccessResponse = parseJsonRpcSuccessResponse;\nexports.parseJsonRpcResponse = parseJsonRpcResponse;\nconst compatibility_1 = require(\"./compatibility\");\n/**\n * Extracts ID field from request or response object.\n *\n * Returns `null` when no valid ID was found.\n */\nfunction parseJsonRpcId(data) {\n if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) {\n throw new Error(\"Data must be JSON compatible dictionary\");\n }\n const id = data.id;\n if (typeof id !== \"number\" && typeof id !== \"string\") {\n return null;\n }\n return id;\n}\nfunction parseJsonRpcRequest(data) {\n if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) {\n throw new Error(\"Data must be JSON compatible dictionary\");\n }\n if (data.jsonrpc !== \"2.0\") {\n throw new Error(`Got unexpected jsonrpc version: ${data.jsonrpc}`);\n }\n const id = parseJsonRpcId(data);\n if (id === null) {\n throw new Error(\"Invalid id field\");\n }\n const method = data.method;\n if (typeof method !== \"string\") {\n throw new Error(\"Invalid method field\");\n }\n if (!(0, compatibility_1.isJsonCompatibleArray)(data.params) && !(0, compatibility_1.isJsonCompatibleDictionary)(data.params)) {\n throw new Error(\"Invalid params field\");\n }\n return {\n jsonrpc: \"2.0\",\n id: id,\n method: method,\n params: data.params,\n };\n}\nfunction parseError(error) {\n if (typeof error.code !== \"number\") {\n throw new Error(\"Error property 'code' is not a number\");\n }\n if (typeof error.message !== \"string\") {\n throw new Error(\"Error property 'message' is not a string\");\n }\n let maybeUndefinedData;\n if (error.data === undefined) {\n maybeUndefinedData = undefined;\n }\n else if ((0, compatibility_1.isJsonCompatibleValue)(error.data)) {\n maybeUndefinedData = error.data;\n }\n else {\n throw new Error(\"Error property 'data' is defined but not a JSON compatible value.\");\n }\n return {\n code: error.code,\n message: error.message,\n ...(maybeUndefinedData !== undefined ? { data: maybeUndefinedData } : {}),\n };\n}\n/** Throws if data is not a JsonRpcErrorResponse */\nfunction parseJsonRpcErrorResponse(data) {\n if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) {\n throw new Error(\"Data must be JSON compatible dictionary\");\n }\n if (data.jsonrpc !== \"2.0\") {\n throw new Error(`Got unexpected jsonrpc version: ${JSON.stringify(data)}`);\n }\n const id = data.id;\n if (typeof id !== \"number\" && typeof id !== \"string\" && id !== null) {\n throw new Error(\"Invalid id field\");\n }\n if (typeof data.error === \"undefined\" || !(0, compatibility_1.isJsonCompatibleDictionary)(data.error)) {\n throw new Error(\"Invalid error field\");\n }\n return {\n jsonrpc: \"2.0\",\n id: id,\n error: parseError(data.error),\n };\n}\n/** Throws if data is not a JsonRpcSuccessResponse */\nfunction parseJsonRpcSuccessResponse(data) {\n if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) {\n throw new Error(\"Data must be JSON compatible dictionary\");\n }\n if (data.jsonrpc !== \"2.0\") {\n throw new Error(`Got unexpected jsonrpc version: ${JSON.stringify(data)}`);\n }\n const id = data.id;\n if (typeof id !== \"number\" && typeof id !== \"string\") {\n throw new Error(\"Invalid id field\");\n }\n if (typeof data.result === \"undefined\") {\n throw new Error(\"Invalid result field\");\n }\n const result = data.result;\n return {\n jsonrpc: \"2.0\",\n id: id,\n result: result,\n };\n}\n/**\n * Returns a JsonRpcErrorResponse if input can be parsed as a JSON-RPC error. Otherwise parses\n * input as JsonRpcSuccessResponse. Throws if input is neither a valid error nor success response.\n */\nfunction parseJsonRpcResponse(data) {\n let response;\n try {\n response = parseJsonRpcErrorResponse(data);\n }\n catch (_) {\n response = parseJsonRpcSuccessResponse(data);\n }\n return response;\n}\n//# sourceMappingURL=parse.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.jsonRpcCode = void 0;\nexports.isJsonRpcErrorResponse = isJsonRpcErrorResponse;\nexports.isJsonRpcSuccessResponse = isJsonRpcSuccessResponse;\nfunction isJsonRpcErrorResponse(response) {\n return typeof response.error === \"object\";\n}\nfunction isJsonRpcSuccessResponse(response) {\n return !isJsonRpcErrorResponse(response);\n}\n/**\n * Error codes as specified in JSON-RPC 2.0\n *\n * @see https://www.jsonrpc.org/specification#error_object\n */\nexports.jsonRpcCode = {\n parseError: -32700,\n invalidRequest: -32600,\n methodNotFound: -32601,\n invalidParams: -32602,\n internalError: -32603,\n // server error (Reserved for implementation-defined server-errors.):\n // -32000 to -32099\n serverError: {\n default: -32000,\n },\n};\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeTxRaw = decodeTxRaw;\nconst tx_1 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\n/**\n * Takes a serialized TxRaw (the bytes stored in Tendermint) and decodes it into something usable.\n */\nfunction decodeTxRaw(tx) {\n const txRaw = tx_1.TxRaw.decode(tx);\n return {\n authInfo: tx_1.AuthInfo.decode(txRaw.authInfoBytes),\n body: tx_1.TxBody.decode(txRaw.bodyBytes),\n signatures: txRaw.signatures,\n };\n}\n//# sourceMappingURL=decode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DirectSecp256k1HdWallet = void 0;\nexports.extractKdfConfiguration = extractKdfConfiguration;\nconst amino_1 = require(\"@cosmjs/amino\");\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst signing_1 = require(\"./signing\");\nconst wallet_1 = require(\"./wallet\");\nconst serializationTypeV1 = \"directsecp256k1hdwallet-v1\";\n/**\n * A KDF configuration that is not very strong but can be used on the main thread.\n * It takes about 1 second in Node.js 16.0.0 and should have similar runtimes in other modern Wasm hosts.\n */\nconst basicPasswordHashingOptions = {\n algorithm: \"argon2id\",\n params: {\n outputLength: 32,\n opsLimit: 24,\n memLimitKib: 12 * 1024,\n },\n};\nfunction isDerivationJson(thing) {\n if (!(0, utils_1.isNonNullObject)(thing))\n return false;\n if (typeof thing.hdPath !== \"string\")\n return false;\n if (typeof thing.prefix !== \"string\")\n return false;\n return true;\n}\nfunction extractKdfConfigurationV1(doc) {\n return doc.kdf;\n}\nfunction extractKdfConfiguration(serialization) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n switch (root.type) {\n case serializationTypeV1:\n return extractKdfConfigurationV1(root);\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n}\nconst defaultOptions = {\n bip39Password: \"\",\n hdPaths: [(0, amino_1.makeCosmoshubPath)(0)],\n prefix: \"cosmos\",\n};\n/** A wallet for protobuf based signing using SIGN_MODE_DIRECT */\nclass DirectSecp256k1HdWallet {\n /**\n * Restores a wallet from the given BIP39 mnemonic.\n *\n * @param mnemonic Any valid English mnemonic.\n * @param options An optional `DirectSecp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix.\n */\n static async fromMnemonic(mnemonic, options = {}) {\n const mnemonicChecked = new crypto_1.EnglishMnemonic(mnemonic);\n const seed = await crypto_1.Bip39.mnemonicToSeed(mnemonicChecked, options.bip39Password);\n return new DirectSecp256k1HdWallet(mnemonicChecked, {\n ...options,\n seed: seed,\n });\n }\n /**\n * Generates a new wallet with a BIP39 mnemonic of the given length.\n *\n * @param length The number of words in the mnemonic (12, 15, 18, 21 or 24).\n * @param options An optional `DirectSecp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix.\n */\n static async generate(length = 12, options = {}) {\n const entropyLength = 4 * Math.floor((11 * length) / 33);\n const entropy = crypto_1.Random.getBytes(entropyLength);\n const mnemonic = crypto_1.Bip39.encode(entropy);\n return DirectSecp256k1HdWallet.fromMnemonic(mnemonic.toString(), options);\n }\n /**\n * Restores a wallet from an encrypted serialization.\n *\n * @param password The user provided password used to generate an encryption key via a KDF.\n * This is not normalized internally (see \"Unicode normalization\" to learn more).\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n static async deserialize(serialization, password) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n switch (root.type) {\n case serializationTypeV1:\n return DirectSecp256k1HdWallet.deserializeTypeV1(serialization, password);\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n }\n /**\n * Restores a wallet from an encrypted serialization.\n *\n * This is an advanced alternative to calling `deserialize(serialization, password)` directly, which allows\n * you to offload the KDF execution to a non-UI thread (e.g. in a WebWorker).\n *\n * The caller is responsible for ensuring the key was derived with the given KDF configuration. This can be\n * done using `extractKdfConfiguration(serialization)` and `executeKdf(password, kdfConfiguration)` from this package.\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n static async deserializeWithEncryptionKey(serialization, encryptionKey) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n const untypedRoot = root;\n switch (untypedRoot.type) {\n case serializationTypeV1: {\n const decryptedBytes = await (0, wallet_1.decrypt)((0, encoding_1.fromBase64)(untypedRoot.data), encryptionKey, untypedRoot.encryption);\n const decryptedDocument = JSON.parse((0, encoding_1.fromUtf8)(decryptedBytes));\n const { mnemonic, accounts } = decryptedDocument;\n (0, utils_1.assert)(typeof mnemonic === \"string\");\n if (!Array.isArray(accounts))\n throw new Error(\"Property 'accounts' is not an array\");\n if (!accounts.every((account) => isDerivationJson(account))) {\n throw new Error(\"Account is not in the correct format.\");\n }\n const firstPrefix = accounts[0].prefix;\n if (!accounts.every(({ prefix }) => prefix === firstPrefix)) {\n throw new Error(\"Accounts do not all have the same prefix\");\n }\n const hdPaths = accounts.map(({ hdPath }) => (0, crypto_1.stringToPath)(hdPath));\n return DirectSecp256k1HdWallet.fromMnemonic(mnemonic, {\n hdPaths: hdPaths,\n prefix: firstPrefix,\n });\n }\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n }\n static async deserializeTypeV1(serialization, password) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n const encryptionKey = await (0, wallet_1.executeKdf)(password, root.kdf);\n return DirectSecp256k1HdWallet.deserializeWithEncryptionKey(serialization, encryptionKey);\n }\n constructor(mnemonic, options) {\n const prefix = options.prefix ?? defaultOptions.prefix;\n const hdPaths = options.hdPaths ?? defaultOptions.hdPaths;\n this.secret = mnemonic;\n this.seed = options.seed;\n this.accounts = hdPaths.map((hdPath) => ({\n hdPath: hdPath,\n prefix: prefix,\n }));\n }\n get mnemonic() {\n return this.secret.toString();\n }\n async getAccounts() {\n const accountsWithPrivkeys = await this.getAccountsWithPrivkeys();\n return accountsWithPrivkeys.map(({ algo, pubkey, address }) => ({\n algo: algo,\n pubkey: pubkey,\n address: address,\n }));\n }\n async signDirect(signerAddress, signDoc) {\n const accounts = await this.getAccountsWithPrivkeys();\n const account = accounts.find(({ address }) => address === signerAddress);\n if (account === undefined) {\n throw new Error(`Address ${signerAddress} not found in wallet`);\n }\n const { privkey, pubkey } = account;\n const signBytes = (0, signing_1.makeSignBytes)(signDoc);\n const hashedMessage = (0, crypto_1.sha256)(signBytes);\n const signature = await crypto_1.Secp256k1.createSignature(hashedMessage, privkey);\n const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]);\n const stdSignature = (0, amino_1.encodeSecp256k1Signature)(pubkey, signatureBytes);\n return {\n signed: signDoc,\n signature: stdSignature,\n };\n }\n /**\n * Generates an encrypted serialization of this wallet.\n *\n * @param password The user provided password used to generate an encryption key via a KDF.\n * This is not normalized internally (see \"Unicode normalization\" to learn more).\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n async serialize(password) {\n const kdfConfiguration = basicPasswordHashingOptions;\n const encryptionKey = await (0, wallet_1.executeKdf)(password, kdfConfiguration);\n return this.serializeWithEncryptionKey(encryptionKey, kdfConfiguration);\n }\n /**\n * Generates an encrypted serialization of this wallet.\n *\n * This is an advanced alternative to calling `serialize(password)` directly, which allows you to\n * offload the KDF execution to a non-UI thread (e.g. in a WebWorker).\n *\n * The caller is responsible for ensuring the key was derived with the given KDF options. If this\n * is not the case, the wallet cannot be restored with the original password.\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n async serializeWithEncryptionKey(encryptionKey, kdfConfiguration) {\n const dataToEncrypt = {\n mnemonic: this.mnemonic,\n accounts: this.accounts.map(({ hdPath, prefix }) => ({\n hdPath: (0, crypto_1.pathToString)(hdPath),\n prefix: prefix,\n })),\n };\n const dataToEncryptRaw = (0, encoding_1.toUtf8)(JSON.stringify(dataToEncrypt));\n const encryptionConfiguration = {\n algorithm: wallet_1.supportedAlgorithms.xchacha20poly1305Ietf,\n };\n const encryptedData = await (0, wallet_1.encrypt)(dataToEncryptRaw, encryptionKey, encryptionConfiguration);\n const out = {\n type: serializationTypeV1,\n kdf: kdfConfiguration,\n encryption: encryptionConfiguration,\n data: (0, encoding_1.toBase64)(encryptedData),\n };\n return JSON.stringify(out);\n }\n async getKeyPair(hdPath) {\n const { privkey } = crypto_1.Slip10.derivePath(crypto_1.Slip10Curve.Secp256k1, this.seed, hdPath);\n const { pubkey } = await crypto_1.Secp256k1.makeKeypair(privkey);\n return {\n privkey: privkey,\n pubkey: crypto_1.Secp256k1.compressPubkey(pubkey),\n };\n }\n async getAccountsWithPrivkeys() {\n return Promise.all(this.accounts.map(async ({ hdPath, prefix }) => {\n const { privkey, pubkey } = await this.getKeyPair(hdPath);\n const address = (0, encoding_1.toBech32)(prefix, (0, amino_1.rawSecp256k1PubkeyToRawAddress)(pubkey));\n return {\n algo: \"secp256k1\",\n privkey: privkey,\n pubkey: pubkey,\n address: address,\n };\n }));\n }\n}\nexports.DirectSecp256k1HdWallet = DirectSecp256k1HdWallet;\n//# sourceMappingURL=directsecp256k1hdwallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DirectSecp256k1Wallet = void 0;\nconst amino_1 = require(\"@cosmjs/amino\");\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst signing_1 = require(\"./signing\");\n/**\n * A wallet that holds a single secp256k1 keypair.\n *\n * If you want to work with BIP39 mnemonics and multiple accounts, use DirectSecp256k1HdWallet.\n */\nclass DirectSecp256k1Wallet {\n /**\n * Creates a DirectSecp256k1Wallet from the given private key\n *\n * @param privkey The private key.\n * @param prefix The bech32 address prefix (human readable part). Defaults to \"cosmos\".\n */\n static async fromKey(privkey, prefix = \"cosmos\") {\n const uncompressed = (await crypto_1.Secp256k1.makeKeypair(privkey)).pubkey;\n return new DirectSecp256k1Wallet(privkey, crypto_1.Secp256k1.compressPubkey(uncompressed), prefix);\n }\n constructor(privkey, pubkey, prefix) {\n this.privkey = privkey;\n this.pubkey = pubkey;\n this.prefix = prefix;\n }\n get address() {\n return (0, encoding_1.toBech32)(this.prefix, (0, amino_1.rawSecp256k1PubkeyToRawAddress)(this.pubkey));\n }\n async getAccounts() {\n return [\n {\n algo: \"secp256k1\",\n address: this.address,\n pubkey: this.pubkey,\n },\n ];\n }\n async signDirect(address, signDoc) {\n const signBytes = (0, signing_1.makeSignBytes)(signDoc);\n if (address !== this.address) {\n throw new Error(`Address ${address} not found in wallet`);\n }\n const hashedMessage = (0, crypto_1.sha256)(signBytes);\n const signature = await crypto_1.Secp256k1.createSignature(hashedMessage, this.privkey);\n const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]);\n const stdSignature = (0, amino_1.encodeSecp256k1Signature)(this.pubkey, signatureBytes);\n return {\n signed: signDoc,\n signature: stdSignature,\n };\n }\n}\nexports.DirectSecp256k1Wallet = DirectSecp256k1Wallet;\n//# sourceMappingURL=directsecp256k1wallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseCoins = exports.coins = exports.coin = exports.executeKdf = exports.makeSignDoc = exports.makeSignBytes = exports.makeAuthInfoBytes = exports.isOfflineDirectSigner = exports.Registry = exports.isTxBodyEncodeObject = exports.isTsProtoGeneratedType = exports.isPbjsGeneratedType = exports.encodePubkey = exports.decodePubkey = exports.decodeOptionalPubkey = exports.anyToSinglePubkey = exports.makeCosmoshubPath = exports.DirectSecp256k1Wallet = exports.extractKdfConfiguration = exports.DirectSecp256k1HdWallet = exports.decodeTxRaw = void 0;\n// This type happens to be shared between Amino and Direct sign modes\nvar decode_1 = require(\"./decode\");\nObject.defineProperty(exports, \"decodeTxRaw\", { enumerable: true, get: function () { return decode_1.decodeTxRaw; } });\nvar directsecp256k1hdwallet_1 = require(\"./directsecp256k1hdwallet\");\nObject.defineProperty(exports, \"DirectSecp256k1HdWallet\", { enumerable: true, get: function () { return directsecp256k1hdwallet_1.DirectSecp256k1HdWallet; } });\nObject.defineProperty(exports, \"extractKdfConfiguration\", { enumerable: true, get: function () { return directsecp256k1hdwallet_1.extractKdfConfiguration; } });\nvar directsecp256k1wallet_1 = require(\"./directsecp256k1wallet\");\nObject.defineProperty(exports, \"DirectSecp256k1Wallet\", { enumerable: true, get: function () { return directsecp256k1wallet_1.DirectSecp256k1Wallet; } });\nvar paths_1 = require(\"./paths\");\nObject.defineProperty(exports, \"makeCosmoshubPath\", { enumerable: true, get: function () { return paths_1.makeCosmoshubPath; } });\nvar pubkey_1 = require(\"./pubkey\");\nObject.defineProperty(exports, \"anyToSinglePubkey\", { enumerable: true, get: function () { return pubkey_1.anyToSinglePubkey; } });\nObject.defineProperty(exports, \"decodeOptionalPubkey\", { enumerable: true, get: function () { return pubkey_1.decodeOptionalPubkey; } });\nObject.defineProperty(exports, \"decodePubkey\", { enumerable: true, get: function () { return pubkey_1.decodePubkey; } });\nObject.defineProperty(exports, \"encodePubkey\", { enumerable: true, get: function () { return pubkey_1.encodePubkey; } });\nvar registry_1 = require(\"./registry\");\nObject.defineProperty(exports, \"isPbjsGeneratedType\", { enumerable: true, get: function () { return registry_1.isPbjsGeneratedType; } });\nObject.defineProperty(exports, \"isTsProtoGeneratedType\", { enumerable: true, get: function () { return registry_1.isTsProtoGeneratedType; } });\nObject.defineProperty(exports, \"isTxBodyEncodeObject\", { enumerable: true, get: function () { return registry_1.isTxBodyEncodeObject; } });\nObject.defineProperty(exports, \"Registry\", { enumerable: true, get: function () { return registry_1.Registry; } });\nvar signer_1 = require(\"./signer\");\nObject.defineProperty(exports, \"isOfflineDirectSigner\", { enumerable: true, get: function () { return signer_1.isOfflineDirectSigner; } });\nvar signing_1 = require(\"./signing\");\nObject.defineProperty(exports, \"makeAuthInfoBytes\", { enumerable: true, get: function () { return signing_1.makeAuthInfoBytes; } });\nObject.defineProperty(exports, \"makeSignBytes\", { enumerable: true, get: function () { return signing_1.makeSignBytes; } });\nObject.defineProperty(exports, \"makeSignDoc\", { enumerable: true, get: function () { return signing_1.makeSignDoc; } });\nvar wallet_1 = require(\"./wallet\");\nObject.defineProperty(exports, \"executeKdf\", { enumerable: true, get: function () { return wallet_1.executeKdf; } });\nvar amino_1 = require(\"@cosmjs/amino\");\nObject.defineProperty(exports, \"coin\", { enumerable: true, get: function () { return amino_1.coin; } });\nObject.defineProperty(exports, \"coins\", { enumerable: true, get: function () { return amino_1.coins; } });\nObject.defineProperty(exports, \"parseCoins\", { enumerable: true, get: function () { return amino_1.parseCoins; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeCosmoshubPath = makeCosmoshubPath;\nconst crypto_1 = require(\"@cosmjs/crypto\");\n/**\n * The Cosmos Hub derivation path in the form `m/44'/118'/0'/0/a`\n * with 0-based account index `a`.\n */\nfunction makeCosmoshubPath(a) {\n return [\n crypto_1.Slip10RawIndex.hardened(44),\n crypto_1.Slip10RawIndex.hardened(118),\n crypto_1.Slip10RawIndex.hardened(0),\n crypto_1.Slip10RawIndex.normal(0),\n crypto_1.Slip10RawIndex.normal(a),\n ];\n}\n//# sourceMappingURL=paths.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodePubkey = encodePubkey;\nexports.anyToSinglePubkey = anyToSinglePubkey;\nexports.decodePubkey = decodePubkey;\nexports.decodeOptionalPubkey = decodeOptionalPubkey;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst amino_1 = require(\"@cosmjs/amino\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst keys_1 = require(\"cosmjs-types/cosmos/crypto/ed25519/keys\");\nconst keys_2 = require(\"cosmjs-types/cosmos/crypto/multisig/keys\");\nconst keys_3 = require(\"cosmjs-types/cosmos/crypto/secp256k1/keys\");\nconst any_1 = require(\"cosmjs-types/google/protobuf/any\");\n/**\n * Takes a pubkey in the Amino JSON object style (type/value wrapper)\n * and convertes it into a protobuf `Any`.\n *\n * This is the reverse operation to `decodePubkey`.\n */\nfunction encodePubkey(pubkey) {\n if ((0, amino_1.isSecp256k1Pubkey)(pubkey)) {\n const pubkeyProto = keys_3.PubKey.fromPartial({\n key: (0, encoding_1.fromBase64)(pubkey.value),\n });\n return any_1.Any.fromPartial({\n typeUrl: \"/cosmos.crypto.secp256k1.PubKey\",\n value: Uint8Array.from(keys_3.PubKey.encode(pubkeyProto).finish()),\n });\n }\n else if ((0, amino_1.isEd25519Pubkey)(pubkey)) {\n const pubkeyProto = keys_1.PubKey.fromPartial({\n key: (0, encoding_1.fromBase64)(pubkey.value),\n });\n return any_1.Any.fromPartial({\n typeUrl: \"/cosmos.crypto.ed25519.PubKey\",\n value: Uint8Array.from(keys_1.PubKey.encode(pubkeyProto).finish()),\n });\n }\n else if ((0, amino_1.isMultisigThresholdPubkey)(pubkey)) {\n const pubkeyProto = keys_2.LegacyAminoPubKey.fromPartial({\n threshold: math_1.Uint53.fromString(pubkey.value.threshold).toNumber(),\n publicKeys: pubkey.value.pubkeys.map(encodePubkey),\n });\n return any_1.Any.fromPartial({\n typeUrl: \"/cosmos.crypto.multisig.LegacyAminoPubKey\",\n value: Uint8Array.from(keys_2.LegacyAminoPubKey.encode(pubkeyProto).finish()),\n });\n }\n else {\n throw new Error(`Pubkey type ${pubkey.type} not recognized`);\n }\n}\n/**\n * Decodes a single pubkey (i.e. not a multisig pubkey) from `Any` into\n * `SinglePubkey`.\n *\n * In most cases you probably want to use `decodePubkey`.\n */\nfunction anyToSinglePubkey(pubkey) {\n switch (pubkey.typeUrl) {\n case \"/cosmos.crypto.secp256k1.PubKey\": {\n const { key } = keys_3.PubKey.decode(pubkey.value);\n return (0, amino_1.encodeSecp256k1Pubkey)(key);\n }\n case \"/cosmos.crypto.ed25519.PubKey\": {\n const { key } = keys_1.PubKey.decode(pubkey.value);\n return (0, amino_1.encodeEd25519Pubkey)(key);\n }\n default:\n throw new Error(`Pubkey type_url ${pubkey.typeUrl} not recognized as single public key type`);\n }\n}\n/**\n * Decodes a pubkey from a protobuf `Any` into `Pubkey`.\n * This supports single pubkeys such as Cosmos ed25519 and secp256k1 keys\n * as well as multisig threshold pubkeys.\n */\nfunction decodePubkey(pubkey) {\n switch (pubkey.typeUrl) {\n case \"/cosmos.crypto.secp256k1.PubKey\":\n case \"/cosmos.crypto.ed25519.PubKey\": {\n return anyToSinglePubkey(pubkey);\n }\n case \"/cosmos.crypto.multisig.LegacyAminoPubKey\": {\n const { threshold, publicKeys } = keys_2.LegacyAminoPubKey.decode(pubkey.value);\n const out = {\n type: \"tendermint/PubKeyMultisigThreshold\",\n value: {\n threshold: threshold.toString(),\n pubkeys: publicKeys.map(anyToSinglePubkey),\n },\n };\n return out;\n }\n default:\n throw new Error(`Pubkey type URL '${pubkey.typeUrl}' not recognized`);\n }\n}\n/**\n * Decodes an optional pubkey from a protobuf `Any` into `Pubkey | null`.\n * This supports single pubkeys such as Cosmos ed25519 and secp256k1 keys\n * as well as multisig threshold pubkeys.\n */\nfunction decodeOptionalPubkey(pubkey) {\n if (!pubkey)\n return null;\n if (pubkey.typeUrl) {\n if (pubkey.value.length) {\n // both set\n return decodePubkey(pubkey);\n }\n else {\n throw new Error(`Pubkey is an Any with type URL '${pubkey.typeUrl}' but an empty value`);\n }\n }\n else {\n if (pubkey.value.length) {\n throw new Error(`Pubkey is an Any with an empty type URL but a value set`);\n }\n else {\n // both unset, assuming this empty instance means null\n return null;\n }\n }\n}\n//# sourceMappingURL=pubkey.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Registry = void 0;\nexports.isTelescopeGeneratedType = isTelescopeGeneratedType;\nexports.isTsProtoGeneratedType = isTsProtoGeneratedType;\nexports.isPbjsGeneratedType = isPbjsGeneratedType;\nexports.isTxBodyEncodeObject = isTxBodyEncodeObject;\nconst tx_1 = require(\"cosmjs-types/cosmos/bank/v1beta1/tx\");\nconst coin_1 = require(\"cosmjs-types/cosmos/base/v1beta1/coin\");\nconst tx_2 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nconst any_1 = require(\"cosmjs-types/google/protobuf/any\");\nfunction isTelescopeGeneratedType(type) {\n const casted = type;\n return typeof casted.fromPartial === \"function\" && typeof casted.typeUrl == \"string\";\n}\nfunction isTsProtoGeneratedType(type) {\n return typeof type.fromPartial === \"function\";\n}\nfunction isPbjsGeneratedType(type) {\n return !isTsProtoGeneratedType(type);\n}\nconst defaultTypeUrls = {\n cosmosCoin: \"/cosmos.base.v1beta1.Coin\",\n cosmosMsgSend: \"/cosmos.bank.v1beta1.MsgSend\",\n cosmosTxBody: \"/cosmos.tx.v1beta1.TxBody\",\n googleAny: \"/google.protobuf.Any\",\n};\nfunction isTxBodyEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmos.tx.v1beta1.TxBody\";\n}\nclass Registry {\n /**\n * Creates a new Registry for mapping protobuf type identifiers/type URLs to\n * actual implementations. Those implementations are typically generated with ts-proto\n * but we also support protobuf.js as a type generator.\n *\n * If there is no parameter given, a `new Registry()` adds the types `Coin` and `MsgSend`\n * for historic reasons. Those can be overriden by customTypes.\n *\n * There are currently two methods for adding new types:\n * 1. Passing types to the constructor.\n * 2. Using the `register()` method\n */\n constructor(customTypes) {\n const { cosmosCoin, cosmosMsgSend } = defaultTypeUrls;\n this.types = customTypes\n ? new Map([...customTypes])\n : new Map([\n [cosmosCoin, coin_1.Coin],\n [cosmosMsgSend, tx_1.MsgSend],\n ]);\n }\n register(typeUrl, type) {\n this.types.set(typeUrl, type);\n }\n /**\n * Looks up a type that was previously added to the registry.\n *\n * The generator information (ts-proto or pbjs) gets lost along the way.\n * If you need to work with the result type in TypeScript, you can use:\n *\n * ```\n * import { assert } from \"@cosmjs/utils\";\n *\n * const Coin = registry.lookupType(\"/cosmos.base.v1beta1.Coin\");\n * assert(Coin); // Ensures not unset\n * assert(isTsProtoGeneratedType(Coin)); // Ensures this is the type we expect\n *\n * // Coin is typed TsProtoGeneratedType now.\n * ```\n */\n lookupType(typeUrl) {\n return this.types.get(typeUrl);\n }\n lookupTypeWithError(typeUrl) {\n const type = this.lookupType(typeUrl);\n if (!type) {\n throw new Error(`Unregistered type url: ${typeUrl}`);\n }\n return type;\n }\n /**\n * Takes a typeUrl/value pair and encodes the value to protobuf if\n * the given type was previously registered.\n *\n * If the value has to be wrapped in an Any, this needs to be done\n * manually after this call. Or use `encodeAsAny` instead.\n */\n encode(encodeObject) {\n const { value, typeUrl } = encodeObject;\n if (isTxBodyEncodeObject(encodeObject)) {\n return this.encodeTxBody(value);\n }\n const type = this.lookupTypeWithError(typeUrl);\n const instance = isTelescopeGeneratedType(type) || isTsProtoGeneratedType(type)\n ? type.fromPartial(value)\n : type.create(value);\n return type.encode(instance).finish();\n }\n /**\n * Takes a typeUrl/value pair and encodes the value to an Any if\n * the given type was previously registered.\n */\n encodeAsAny(encodeObject) {\n const binaryValue = this.encode(encodeObject);\n return any_1.Any.fromPartial({\n typeUrl: encodeObject.typeUrl,\n value: binaryValue,\n });\n }\n encodeTxBody(txBodyFields) {\n const wrappedMessages = txBodyFields.messages.map((message) => this.encodeAsAny(message));\n const txBody = tx_2.TxBody.fromPartial({\n ...txBodyFields,\n timeoutHeight: BigInt(txBodyFields.timeoutHeight?.toString() ?? \"0\"),\n messages: wrappedMessages,\n });\n return tx_2.TxBody.encode(txBody).finish();\n }\n decode({ typeUrl, value }) {\n if (typeUrl === defaultTypeUrls.cosmosTxBody) {\n return this.decodeTxBody(value);\n }\n const type = this.lookupTypeWithError(typeUrl);\n const decoded = type.decode(value);\n Object.entries(decoded).forEach(([key, val]) => {\n if (typeof Buffer !== \"undefined\" && typeof Buffer.isBuffer !== \"undefined\" && Buffer.isBuffer(val)) {\n decoded[key] = Uint8Array.from(val);\n }\n });\n return decoded;\n }\n decodeTxBody(txBody) {\n const decodedTxBody = tx_2.TxBody.decode(txBody);\n return {\n ...decodedTxBody,\n messages: decodedTxBody.messages.map(({ typeUrl: typeUrl, value }) => {\n if (!typeUrl) {\n throw new Error(\"Missing type_url in Any\");\n }\n if (!value) {\n throw new Error(\"Missing value in Any\");\n }\n return this.decode({ typeUrl, value });\n }),\n };\n }\n}\nexports.Registry = Registry;\n//# sourceMappingURL=registry.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isOfflineDirectSigner = isOfflineDirectSigner;\nfunction isOfflineDirectSigner(signer) {\n return signer.signDirect !== undefined;\n}\n//# sourceMappingURL=signer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeAuthInfoBytes = makeAuthInfoBytes;\nexports.makeSignDoc = makeSignDoc;\nexports.makeSignBytes = makeSignBytes;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst utils_1 = require(\"@cosmjs/utils\");\nconst signing_1 = require(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing\");\nconst tx_1 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\n/**\n * Create signer infos from the provided signers.\n *\n * This implementation does not support different signing modes for the different signers.\n */\nfunction makeSignerInfos(signers, signMode) {\n return signers.map(({ pubkey, sequence }) => ({\n publicKey: pubkey,\n modeInfo: {\n single: { mode: signMode },\n },\n sequence: BigInt(sequence),\n }));\n}\n/**\n * Creates and serializes an AuthInfo document.\n *\n * This implementation does not support different signing modes for the different signers.\n */\nfunction makeAuthInfoBytes(signers, feeAmount, gasLimit, feeGranter, feePayer, signMode = signing_1.SignMode.SIGN_MODE_DIRECT) {\n // Required arguments 4 and 5 were added in CosmJS 0.29. Use runtime checks to help our non-TS users.\n (0, utils_1.assert)(feeGranter === undefined || typeof feeGranter === \"string\", \"feeGranter must be undefined or string\");\n (0, utils_1.assert)(feePayer === undefined || typeof feePayer === \"string\", \"feePayer must be undefined or string\");\n const authInfo = tx_1.AuthInfo.fromPartial({\n signerInfos: makeSignerInfos(signers, signMode),\n fee: {\n amount: [...feeAmount],\n gasLimit: BigInt(gasLimit),\n granter: feeGranter,\n payer: feePayer,\n },\n });\n return tx_1.AuthInfo.encode(authInfo).finish();\n}\nfunction makeSignDoc(bodyBytes, authInfoBytes, chainId, accountNumber) {\n return {\n bodyBytes: bodyBytes,\n authInfoBytes: authInfoBytes,\n chainId: chainId,\n accountNumber: BigInt(accountNumber),\n };\n}\nfunction makeSignBytes({ accountNumber, authInfoBytes, bodyBytes, chainId }) {\n const signDoc = tx_1.SignDoc.fromPartial({\n accountNumber: accountNumber,\n authInfoBytes: authInfoBytes,\n bodyBytes: bodyBytes,\n chainId: chainId,\n });\n return tx_1.SignDoc.encode(signDoc).finish();\n}\n//# sourceMappingURL=signing.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.supportedAlgorithms = exports.cosmjsSalt = void 0;\nexports.executeKdf = executeKdf;\nexports.encrypt = encrypt;\nexports.decrypt = decrypt;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\n/**\n * A fixed salt is chosen to archive a deterministic password to key derivation.\n * This reduces the scope of a potential rainbow attack to all CosmJS users.\n * Must be 16 bytes due to implementation limitations.\n */\nexports.cosmjsSalt = (0, encoding_1.toAscii)(\"The CosmJS salt.\");\n/**\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\nasync function executeKdf(password, configuration) {\n switch (configuration.algorithm) {\n case \"argon2id\": {\n const options = configuration.params;\n if (!(0, crypto_1.isArgon2idOptions)(options))\n throw new Error(\"Invalid format of argon2id params\");\n return crypto_1.Argon2id.execute(password, exports.cosmjsSalt, options);\n }\n default:\n throw new Error(\"Unsupported KDF algorithm\");\n }\n}\nexports.supportedAlgorithms = {\n xchacha20poly1305Ietf: \"xchacha20poly1305-ietf\",\n};\n/**\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\nasync function encrypt(plaintext, encryptionKey, config) {\n switch (config.algorithm) {\n case exports.supportedAlgorithms.xchacha20poly1305Ietf: {\n const nonce = crypto_1.Random.getBytes(crypto_1.xchacha20NonceLength);\n // Prepend fixed-length nonce to ciphertext as suggested in the example from https://github.com/jedisct1/libsodium.js#api\n return new Uint8Array([\n ...nonce,\n ...(await crypto_1.Xchacha20poly1305Ietf.encrypt(plaintext, encryptionKey, nonce)),\n ]);\n }\n default:\n throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`);\n }\n}\n/**\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\nasync function decrypt(ciphertext, encryptionKey, config) {\n switch (config.algorithm) {\n case exports.supportedAlgorithms.xchacha20poly1305Ietf: {\n const nonce = ciphertext.slice(0, crypto_1.xchacha20NonceLength);\n return crypto_1.Xchacha20poly1305Ietf.decrypt(ciphertext.slice(crypto_1.xchacha20NonceLength), encryptionKey, nonce);\n }\n default:\n throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`);\n }\n}\n//# sourceMappingURL=wallet.js.map","\"use strict\";\n// See https://github.com/tendermint/tendermint/blob/f2ada0a604b4c0763bda2f64fac53d506d3beca7/docs/spec/blockchain/encoding.md#public-key-cryptography\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.rawEd25519PubkeyToRawAddress = rawEd25519PubkeyToRawAddress;\nexports.rawSecp256k1PubkeyToRawAddress = rawSecp256k1PubkeyToRawAddress;\nexports.pubkeyToRawAddress = pubkeyToRawAddress;\nexports.pubkeyToAddress = pubkeyToAddress;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst encoding_2 = require(\"./encoding\");\nconst pubkeys_1 = require(\"./pubkeys\");\nfunction rawEd25519PubkeyToRawAddress(pubkeyData) {\n if (pubkeyData.length !== 32) {\n throw new Error(`Invalid Ed25519 pubkey length: ${pubkeyData.length}`);\n }\n return (0, crypto_1.sha256)(pubkeyData).slice(0, 20);\n}\nfunction rawSecp256k1PubkeyToRawAddress(pubkeyData) {\n if (pubkeyData.length !== 33) {\n throw new Error(`Invalid Secp256k1 pubkey length (compressed): ${pubkeyData.length}`);\n }\n return (0, crypto_1.ripemd160)((0, crypto_1.sha256)(pubkeyData));\n}\n// For secp256k1 this assumes we already have a compressed pubkey.\nfunction pubkeyToRawAddress(pubkey) {\n if ((0, pubkeys_1.isSecp256k1Pubkey)(pubkey)) {\n const pubkeyData = (0, encoding_1.fromBase64)(pubkey.value);\n return rawSecp256k1PubkeyToRawAddress(pubkeyData);\n }\n else if ((0, pubkeys_1.isEd25519Pubkey)(pubkey)) {\n const pubkeyData = (0, encoding_1.fromBase64)(pubkey.value);\n return rawEd25519PubkeyToRawAddress(pubkeyData);\n }\n else if ((0, pubkeys_1.isMultisigThresholdPubkey)(pubkey)) {\n // https://github.com/tendermint/tendermint/blob/38b401657e4ad7a7eeb3c30a3cbf512037df3740/crypto/multisig/threshold_pubkey.go#L71-L74\n const pubkeyData = (0, encoding_2.encodeAminoPubkey)(pubkey);\n return (0, crypto_1.sha256)(pubkeyData).slice(0, 20);\n }\n else {\n throw new Error(\"Unsupported public key type\");\n }\n}\nfunction pubkeyToAddress(pubkey, prefix) {\n return (0, encoding_1.toBech32)(prefix, pubkeyToRawAddress(pubkey));\n}\n//# sourceMappingURL=addresses.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.coin = coin;\nexports.coins = coins;\nexports.parseCoins = parseCoins;\nexports.addCoins = addCoins;\nconst math_1 = require(\"@cosmjs/math\");\n/**\n * Creates a coin.\n *\n * If your values do not exceed the safe integer range of JS numbers (53 bit),\n * you can use the number type here. This is the case for all typical Cosmos SDK\n * chains that use the default 6 decimals.\n *\n * In case you need to supportr larger values, use unsigned integer strings instead.\n */\nfunction coin(amount, denom) {\n let outAmount;\n if (typeof amount === \"number\") {\n try {\n outAmount = new math_1.Uint53(amount).toString();\n }\n catch (_err) {\n throw new Error(\"Given amount is not a safe integer. Consider using a string instead to overcome the limitations of JS numbers.\");\n }\n }\n else {\n if (!amount.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid unsigned integer string format\");\n }\n outAmount = amount.replace(/^0*/, \"\") || \"0\";\n }\n return {\n amount: outAmount,\n denom: denom,\n };\n}\n/**\n * Creates a list of coins with one element.\n */\nfunction coins(amount, denom) {\n return [coin(amount, denom)];\n}\n/**\n * Takes a coins list like \"819966000ucosm,700000000ustake\" and parses it.\n *\n * Starting with CosmJS 0.32.3, the following imports are all synonym and support\n * a variety of denom types such as IBC denoms or tokenfactory. If you need to\n * restrict the denom to something very minimal, this needs to be implemented\n * separately in the caller.\n *\n * ```\n * import { parseCoins } from \"@cosmjs/proto-signing\";\n * // equals\n * import { parseCoins } from \"@cosmjs/stargate\";\n * // equals\n * import { parseCoins } from \"@cosmjs/amino\";\n * ```\n *\n * This function is not made for supporting decimal amounts and does not support\n * parsing gas prices.\n */\nfunction parseCoins(input) {\n return input\n .replace(/\\s/g, \"\")\n .split(\",\")\n .filter(Boolean)\n .map((part) => {\n // Denom regex from Stargate (https://github.com/cosmos/cosmos-sdk/blob/v0.42.7/types/coin.go#L599-L601)\n const match = part.match(/^([0-9]+)([a-zA-Z][a-zA-Z0-9/]{2,127})$/);\n if (!match)\n throw new Error(\"Got an invalid coin string\");\n return {\n amount: match[1].replace(/^0+/, \"\") || \"0\",\n denom: match[2],\n };\n });\n}\n/**\n * Function to sum up coins with type Coin\n */\nfunction addCoins(lhs, rhs) {\n if (lhs.denom !== rhs.denom)\n throw new Error(\"Trying to add two coins with different denoms\");\n return {\n amount: math_1.Decimal.fromAtomics(lhs.amount, 0).plus(math_1.Decimal.fromAtomics(rhs.amount, 0)).atomics,\n denom: lhs.denom,\n };\n}\n//# sourceMappingURL=coins.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeSecp256k1Pubkey = encodeSecp256k1Pubkey;\nexports.encodeEd25519Pubkey = encodeEd25519Pubkey;\nexports.decodeAminoPubkey = decodeAminoPubkey;\nexports.decodeBech32Pubkey = decodeBech32Pubkey;\nexports.encodeAminoPubkey = encodeAminoPubkey;\nexports.encodeBech32Pubkey = encodeBech32Pubkey;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst pubkeys_1 = require(\"./pubkeys\");\n/**\n * Takes a Secp256k1 public key as raw bytes and returns the Amino JSON\n * representation of it (the type/value wrapper object).\n */\nfunction encodeSecp256k1Pubkey(pubkey) {\n if (pubkey.length !== 33 || (pubkey[0] !== 0x02 && pubkey[0] !== 0x03)) {\n throw new Error(\"Public key must be compressed secp256k1, i.e. 33 bytes starting with 0x02 or 0x03\");\n }\n return {\n type: pubkeys_1.pubkeyType.secp256k1,\n value: (0, encoding_1.toBase64)(pubkey),\n };\n}\n/**\n * Takes an Edd25519 public key as raw bytes and returns the Amino JSON\n * representation of it (the type/value wrapper object).\n */\nfunction encodeEd25519Pubkey(pubkey) {\n if (pubkey.length !== 32) {\n throw new Error(\"Ed25519 public key must be 32 bytes long\");\n }\n return {\n type: pubkeys_1.pubkeyType.ed25519,\n value: (0, encoding_1.toBase64)(pubkey),\n };\n}\n// As discussed in https://github.com/binance-chain/javascript-sdk/issues/163\n// Prefixes listed here: https://github.com/tendermint/tendermint/blob/d419fffe18531317c28c29a292ad7d253f6cafdf/docs/spec/blockchain/encoding.md#public-key-cryptography\n// Last bytes is varint-encoded length prefix\nconst pubkeyAminoPrefixSecp256k1 = (0, encoding_1.fromHex)(\"eb5ae987\" + \"21\" /* fixed length */);\nconst pubkeyAminoPrefixEd25519 = (0, encoding_1.fromHex)(\"1624de64\" + \"20\" /* fixed length */);\nconst pubkeyAminoPrefixSr25519 = (0, encoding_1.fromHex)(\"0dfb1005\" + \"20\" /* fixed length */);\n/** See https://github.com/tendermint/tendermint/commit/38b401657e4ad7a7eeb3c30a3cbf512037df3740 */\nconst pubkeyAminoPrefixMultisigThreshold = (0, encoding_1.fromHex)(\"22c1f7e2\" /* variable length not included */);\n/**\n * Decodes a pubkey in the Amino binary format to a type/value object.\n */\nfunction decodeAminoPubkey(data) {\n if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixSecp256k1)) {\n const rest = data.slice(pubkeyAminoPrefixSecp256k1.length);\n if (rest.length !== 33) {\n throw new Error(\"Invalid rest data length. Expected 33 bytes (compressed secp256k1 pubkey).\");\n }\n return {\n type: pubkeys_1.pubkeyType.secp256k1,\n value: (0, encoding_1.toBase64)(rest),\n };\n }\n else if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixEd25519)) {\n const rest = data.slice(pubkeyAminoPrefixEd25519.length);\n if (rest.length !== 32) {\n throw new Error(\"Invalid rest data length. Expected 32 bytes (Ed25519 pubkey).\");\n }\n return {\n type: pubkeys_1.pubkeyType.ed25519,\n value: (0, encoding_1.toBase64)(rest),\n };\n }\n else if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixSr25519)) {\n const rest = data.slice(pubkeyAminoPrefixSr25519.length);\n if (rest.length !== 32) {\n throw new Error(\"Invalid rest data length. Expected 32 bytes (Sr25519 pubkey).\");\n }\n return {\n type: pubkeys_1.pubkeyType.sr25519,\n value: (0, encoding_1.toBase64)(rest),\n };\n }\n else if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixMultisigThreshold)) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return decodeMultisigPubkey(data);\n }\n else {\n throw new Error(\"Unsupported public key type. Amino data starts with: \" + (0, encoding_1.toHex)(data.slice(0, 5)));\n }\n}\n/**\n * Decodes a bech32 pubkey to Amino binary, which is then decoded to a type/value object.\n * The bech32 prefix is ignored and discareded.\n *\n * @param bechEncoded the bech32 encoded pubkey\n */\nfunction decodeBech32Pubkey(bechEncoded) {\n const { data } = (0, encoding_1.fromBech32)(bechEncoded);\n return decodeAminoPubkey(data);\n}\n/**\n * Uvarint decoder for Amino.\n * @see https://github.com/tendermint/go-amino/blob/8e779b71f40d175/decoder.go#L64-76\n * @returns varint as number, and bytes count occupied by varaint\n */\nfunction decodeUvarint(reader) {\n if (reader.length < 1) {\n throw new Error(\"Can't decode varint. EOF\");\n }\n if (reader[0] > 127) {\n throw new Error(\"Decoding numbers > 127 is not supported here. Please tell those lazy CosmJS maintainers to port the binary.Varint implementation from the Go standard library and write some tests.\");\n }\n return [reader[0], 1];\n}\n/**\n * Decodes a multisig pubkey to type object.\n * Pubkey structure [ prefix + const + threshold + loop:(const + pubkeyLength + pubkey ) ]\n * [ 4b + 1b + varint + loop:(1b + varint + pubkeyLength bytes) ]\n * @param data encoded pubkey\n */\nfunction decodeMultisigPubkey(data) {\n const reader = Array.from(data);\n // remove multisig amino prefix;\n const prefixFromReader = reader.splice(0, pubkeyAminoPrefixMultisigThreshold.length);\n if (!(0, utils_1.arrayContentStartsWith)(prefixFromReader, pubkeyAminoPrefixMultisigThreshold)) {\n throw new Error(\"Invalid multisig prefix.\");\n }\n // remove 0x08 threshold prefix;\n if (reader.shift() != 0x08) {\n throw new Error(\"Invalid multisig data. Expecting 0x08 prefix before threshold.\");\n }\n // read threshold\n const [threshold, thresholdBytesLength] = decodeUvarint(reader);\n reader.splice(0, thresholdBytesLength);\n // read participants pubkeys\n const pubkeys = [];\n while (reader.length > 0) {\n // remove 0x12 threshold prefix;\n if (reader.shift() != 0x12) {\n throw new Error(\"Invalid multisig data. Expecting 0x12 prefix before participant pubkey length.\");\n }\n // read pubkey length\n const [pubkeyLength, pubkeyLengthBytesSize] = decodeUvarint(reader);\n reader.splice(0, pubkeyLengthBytesSize);\n // verify that we can read pubkey\n if (reader.length < pubkeyLength) {\n throw new Error(\"Invalid multisig data length.\");\n }\n // read and decode participant pubkey\n const encodedPubkey = reader.splice(0, pubkeyLength);\n const pubkey = decodeAminoPubkey(Uint8Array.from(encodedPubkey));\n pubkeys.push(pubkey);\n }\n return {\n type: pubkeys_1.pubkeyType.multisigThreshold,\n value: {\n threshold: threshold.toString(),\n pubkeys: pubkeys,\n },\n };\n}\n/**\n * Uvarint encoder for Amino. This is the same encoding as `binary.PutUvarint` from the Go\n * standard library.\n *\n * @see https://github.com/tendermint/go-amino/blob/8e779b71f40d175/encoder.go#L77-L85\n */\nfunction encodeUvarint(value) {\n const checked = math_1.Uint53.fromString(value.toString()).toNumber();\n if (checked > 127) {\n throw new Error(\"Encoding numbers > 127 is not supported here. Please tell those lazy CosmJS maintainers to port the binary.PutUvarint implementation from the Go standard library and write some tests.\");\n }\n return [checked];\n}\n/**\n * Encodes a public key to binary Amino.\n */\nfunction encodeAminoPubkey(pubkey) {\n if ((0, pubkeys_1.isMultisigThresholdPubkey)(pubkey)) {\n const out = Array.from(pubkeyAminoPrefixMultisigThreshold);\n out.push(0x08); // TODO: What is this?\n out.push(...encodeUvarint(pubkey.value.threshold));\n for (const pubkeyData of pubkey.value.pubkeys.map((p) => encodeAminoPubkey(p))) {\n out.push(0x12); // TODO: What is this?\n out.push(...encodeUvarint(pubkeyData.length));\n out.push(...pubkeyData);\n }\n return new Uint8Array(out);\n }\n else if ((0, pubkeys_1.isEd25519Pubkey)(pubkey)) {\n return new Uint8Array([...pubkeyAminoPrefixEd25519, ...(0, encoding_1.fromBase64)(pubkey.value)]);\n }\n else if ((0, pubkeys_1.isSecp256k1Pubkey)(pubkey)) {\n return new Uint8Array([...pubkeyAminoPrefixSecp256k1, ...(0, encoding_1.fromBase64)(pubkey.value)]);\n }\n else {\n throw new Error(\"Unsupported pubkey type\");\n }\n}\n/**\n * Encodes a public key to binary Amino and then to bech32.\n *\n * @param pubkey the public key to encode\n * @param prefix the bech32 prefix (human readable part)\n */\nfunction encodeBech32Pubkey(pubkey, prefix) {\n return (0, encoding_1.toBech32)(prefix, encodeAminoPubkey(pubkey));\n}\n//# sourceMappingURL=encoding.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.executeKdf = exports.makeStdTx = exports.isStdTx = exports.serializeSignDoc = exports.makeSignDoc = exports.encodeSecp256k1Signature = exports.decodeSignature = exports.Secp256k1Wallet = exports.Secp256k1HdWallet = exports.extractKdfConfiguration = exports.pubkeyType = exports.isSinglePubkey = exports.isSecp256k1Pubkey = exports.isMultisigThresholdPubkey = exports.isEd25519Pubkey = exports.makeCosmoshubPath = exports.omitDefault = exports.createMultisigThresholdPubkey = exports.encodeSecp256k1Pubkey = exports.encodeEd25519Pubkey = exports.encodeBech32Pubkey = exports.encodeAminoPubkey = exports.decodeBech32Pubkey = exports.decodeAminoPubkey = exports.parseCoins = exports.coins = exports.coin = exports.addCoins = exports.rawSecp256k1PubkeyToRawAddress = exports.rawEd25519PubkeyToRawAddress = exports.pubkeyToRawAddress = exports.pubkeyToAddress = void 0;\nvar addresses_1 = require(\"./addresses\");\nObject.defineProperty(exports, \"pubkeyToAddress\", { enumerable: true, get: function () { return addresses_1.pubkeyToAddress; } });\nObject.defineProperty(exports, \"pubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.pubkeyToRawAddress; } });\nObject.defineProperty(exports, \"rawEd25519PubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.rawEd25519PubkeyToRawAddress; } });\nObject.defineProperty(exports, \"rawSecp256k1PubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.rawSecp256k1PubkeyToRawAddress; } });\nvar coins_1 = require(\"./coins\");\nObject.defineProperty(exports, \"addCoins\", { enumerable: true, get: function () { return coins_1.addCoins; } });\nObject.defineProperty(exports, \"coin\", { enumerable: true, get: function () { return coins_1.coin; } });\nObject.defineProperty(exports, \"coins\", { enumerable: true, get: function () { return coins_1.coins; } });\nObject.defineProperty(exports, \"parseCoins\", { enumerable: true, get: function () { return coins_1.parseCoins; } });\nvar encoding_1 = require(\"./encoding\");\nObject.defineProperty(exports, \"decodeAminoPubkey\", { enumerable: true, get: function () { return encoding_1.decodeAminoPubkey; } });\nObject.defineProperty(exports, \"decodeBech32Pubkey\", { enumerable: true, get: function () { return encoding_1.decodeBech32Pubkey; } });\nObject.defineProperty(exports, \"encodeAminoPubkey\", { enumerable: true, get: function () { return encoding_1.encodeAminoPubkey; } });\nObject.defineProperty(exports, \"encodeBech32Pubkey\", { enumerable: true, get: function () { return encoding_1.encodeBech32Pubkey; } });\nObject.defineProperty(exports, \"encodeEd25519Pubkey\", { enumerable: true, get: function () { return encoding_1.encodeEd25519Pubkey; } });\nObject.defineProperty(exports, \"encodeSecp256k1Pubkey\", { enumerable: true, get: function () { return encoding_1.encodeSecp256k1Pubkey; } });\nvar multisig_1 = require(\"./multisig\");\nObject.defineProperty(exports, \"createMultisigThresholdPubkey\", { enumerable: true, get: function () { return multisig_1.createMultisigThresholdPubkey; } });\nvar omitdefault_1 = require(\"./omitdefault\");\nObject.defineProperty(exports, \"omitDefault\", { enumerable: true, get: function () { return omitdefault_1.omitDefault; } });\nvar paths_1 = require(\"./paths\");\nObject.defineProperty(exports, \"makeCosmoshubPath\", { enumerable: true, get: function () { return paths_1.makeCosmoshubPath; } });\nvar pubkeys_1 = require(\"./pubkeys\");\nObject.defineProperty(exports, \"isEd25519Pubkey\", { enumerable: true, get: function () { return pubkeys_1.isEd25519Pubkey; } });\nObject.defineProperty(exports, \"isMultisigThresholdPubkey\", { enumerable: true, get: function () { return pubkeys_1.isMultisigThresholdPubkey; } });\nObject.defineProperty(exports, \"isSecp256k1Pubkey\", { enumerable: true, get: function () { return pubkeys_1.isSecp256k1Pubkey; } });\nObject.defineProperty(exports, \"isSinglePubkey\", { enumerable: true, get: function () { return pubkeys_1.isSinglePubkey; } });\nObject.defineProperty(exports, \"pubkeyType\", { enumerable: true, get: function () { return pubkeys_1.pubkeyType; } });\nvar secp256k1hdwallet_1 = require(\"./secp256k1hdwallet\");\nObject.defineProperty(exports, \"extractKdfConfiguration\", { enumerable: true, get: function () { return secp256k1hdwallet_1.extractKdfConfiguration; } });\nObject.defineProperty(exports, \"Secp256k1HdWallet\", { enumerable: true, get: function () { return secp256k1hdwallet_1.Secp256k1HdWallet; } });\nvar secp256k1wallet_1 = require(\"./secp256k1wallet\");\nObject.defineProperty(exports, \"Secp256k1Wallet\", { enumerable: true, get: function () { return secp256k1wallet_1.Secp256k1Wallet; } });\nvar signature_1 = require(\"./signature\");\nObject.defineProperty(exports, \"decodeSignature\", { enumerable: true, get: function () { return signature_1.decodeSignature; } });\nObject.defineProperty(exports, \"encodeSecp256k1Signature\", { enumerable: true, get: function () { return signature_1.encodeSecp256k1Signature; } });\nvar signdoc_1 = require(\"./signdoc\");\nObject.defineProperty(exports, \"makeSignDoc\", { enumerable: true, get: function () { return signdoc_1.makeSignDoc; } });\nObject.defineProperty(exports, \"serializeSignDoc\", { enumerable: true, get: function () { return signdoc_1.serializeSignDoc; } });\nvar stdtx_1 = require(\"./stdtx\");\nObject.defineProperty(exports, \"isStdTx\", { enumerable: true, get: function () { return stdtx_1.isStdTx; } });\nObject.defineProperty(exports, \"makeStdTx\", { enumerable: true, get: function () { return stdtx_1.makeStdTx; } });\nvar wallet_1 = require(\"./wallet\");\nObject.defineProperty(exports, \"executeKdf\", { enumerable: true, get: function () { return wallet_1.executeKdf; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compareArrays = compareArrays;\nexports.createMultisigThresholdPubkey = createMultisigThresholdPubkey;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst addresses_1 = require(\"./addresses\");\n/**\n * Compare arrays lexicographically.\n *\n * Returns value < 0 if `a < b`.\n * Returns value > 0 if `a > b`.\n * Returns 0 if `a === b`.\n */\nfunction compareArrays(a, b) {\n const aHex = (0, encoding_1.toHex)(a);\n const bHex = (0, encoding_1.toHex)(b);\n return aHex === bHex ? 0 : aHex < bHex ? -1 : 1;\n}\nfunction createMultisigThresholdPubkey(pubkeys, threshold, nosort = false) {\n const uintThreshold = new math_1.Uint53(threshold);\n if (uintThreshold.toNumber() > pubkeys.length) {\n throw new Error(`Threshold k = ${uintThreshold.toNumber()} exceeds number of keys n = ${pubkeys.length}`);\n }\n const outPubkeys = nosort\n ? pubkeys\n : Array.from(pubkeys).sort((lhs, rhs) => {\n // https://github.com/cosmos/cosmos-sdk/blob/v0.42.2/client/keys/add.go#L172-L174\n const addressLhs = (0, addresses_1.pubkeyToRawAddress)(lhs);\n const addressRhs = (0, addresses_1.pubkeyToRawAddress)(rhs);\n return compareArrays(addressLhs, addressRhs);\n });\n return {\n type: \"tendermint/PubKeyMultisigThreshold\",\n value: {\n threshold: uintThreshold.toString(),\n pubkeys: outPubkeys,\n },\n };\n}\n//# sourceMappingURL=multisig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.omitDefault = omitDefault;\n/**\n * Returns the given input. If the input is the default value\n * of protobuf, undefined is returned. Use this when creating Amino JSON converters.\n */\nfunction omitDefault(input) {\n switch (typeof input) {\n case \"string\":\n return input === \"\" ? undefined : input;\n case \"number\":\n return input === 0 ? undefined : input;\n case \"bigint\":\n return input === BigInt(0) ? undefined : input;\n case \"boolean\":\n return !input ? undefined : input;\n default:\n throw new Error(`Got unsupported type '${typeof input}'`);\n }\n}\n//# sourceMappingURL=omitdefault.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeCosmoshubPath = makeCosmoshubPath;\nconst crypto_1 = require(\"@cosmjs/crypto\");\n/**\n * The Cosmos Hub derivation path in the form `m/44'/118'/0'/0/a`\n * with 0-based account index `a`.\n */\nfunction makeCosmoshubPath(a) {\n return [\n crypto_1.Slip10RawIndex.hardened(44),\n crypto_1.Slip10RawIndex.hardened(118),\n crypto_1.Slip10RawIndex.hardened(0),\n crypto_1.Slip10RawIndex.normal(0),\n crypto_1.Slip10RawIndex.normal(a),\n ];\n}\n//# sourceMappingURL=paths.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pubkeyType = void 0;\nexports.isEd25519Pubkey = isEd25519Pubkey;\nexports.isSecp256k1Pubkey = isSecp256k1Pubkey;\nexports.isSinglePubkey = isSinglePubkey;\nexports.isMultisigThresholdPubkey = isMultisigThresholdPubkey;\nfunction isEd25519Pubkey(pubkey) {\n return pubkey.type === \"tendermint/PubKeyEd25519\";\n}\nfunction isSecp256k1Pubkey(pubkey) {\n return pubkey.type === \"tendermint/PubKeySecp256k1\";\n}\nexports.pubkeyType = {\n /** @see https://github.com/tendermint/tendermint/blob/v0.33.0/crypto/ed25519/ed25519.go#L22 */\n secp256k1: \"tendermint/PubKeySecp256k1\",\n /** @see https://github.com/tendermint/tendermint/blob/v0.33.0/crypto/secp256k1/secp256k1.go#L23 */\n ed25519: \"tendermint/PubKeyEd25519\",\n /** @see https://github.com/tendermint/tendermint/blob/v0.33.0/crypto/sr25519/codec.go#L12 */\n sr25519: \"tendermint/PubKeySr25519\",\n multisigThreshold: \"tendermint/PubKeyMultisigThreshold\",\n};\nfunction isSinglePubkey(pubkey) {\n const singPubkeyTypes = [exports.pubkeyType.ed25519, exports.pubkeyType.secp256k1, exports.pubkeyType.sr25519];\n return singPubkeyTypes.includes(pubkey.type);\n}\nfunction isMultisigThresholdPubkey(pubkey) {\n return pubkey.type === \"tendermint/PubKeyMultisigThreshold\";\n}\n//# sourceMappingURL=pubkeys.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Secp256k1HdWallet = void 0;\nexports.extractKdfConfiguration = extractKdfConfiguration;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst addresses_1 = require(\"./addresses\");\nconst paths_1 = require(\"./paths\");\nconst signature_1 = require(\"./signature\");\nconst signdoc_1 = require(\"./signdoc\");\nconst wallet_1 = require(\"./wallet\");\nconst serializationTypeV1 = \"secp256k1wallet-v1\";\n/**\n * A KDF configuration that is not very strong but can be used on the main thread.\n * It takes about 1 second in Node.js 16.0.0 and should have similar runtimes in other modern Wasm hosts.\n */\nconst basicPasswordHashingOptions = {\n algorithm: \"argon2id\",\n params: {\n outputLength: 32,\n opsLimit: 24,\n memLimitKib: 12 * 1024,\n },\n};\nfunction isDerivationJson(thing) {\n if (!(0, utils_1.isNonNullObject)(thing))\n return false;\n if (typeof thing.hdPath !== \"string\")\n return false;\n if (typeof thing.prefix !== \"string\")\n return false;\n return true;\n}\nfunction extractKdfConfigurationV1(doc) {\n return doc.kdf;\n}\nfunction extractKdfConfiguration(serialization) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n switch (root.type) {\n case serializationTypeV1:\n return extractKdfConfigurationV1(root);\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n}\nconst defaultOptions = {\n bip39Password: \"\",\n hdPaths: [(0, paths_1.makeCosmoshubPath)(0)],\n prefix: \"cosmos\",\n};\nclass Secp256k1HdWallet {\n /**\n * Restores a wallet from the given BIP39 mnemonic.\n *\n * @param mnemonic Any valid English mnemonic.\n * @param options An optional `Secp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix.\n */\n static async fromMnemonic(mnemonic, options = {}) {\n const mnemonicChecked = new crypto_1.EnglishMnemonic(mnemonic);\n const seed = await crypto_1.Bip39.mnemonicToSeed(mnemonicChecked, options.bip39Password);\n return new Secp256k1HdWallet(mnemonicChecked, {\n ...options,\n seed: seed,\n });\n }\n /**\n * Generates a new wallet with a BIP39 mnemonic of the given length.\n *\n * @param length The number of words in the mnemonic (12, 15, 18, 21 or 24).\n * @param options An optional `Secp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix.\n */\n static async generate(length = 12, options = {}) {\n const entropyLength = 4 * Math.floor((11 * length) / 33);\n const entropy = crypto_1.Random.getBytes(entropyLength);\n const mnemonic = crypto_1.Bip39.encode(entropy);\n return Secp256k1HdWallet.fromMnemonic(mnemonic.toString(), options);\n }\n /**\n * Restores a wallet from an encrypted serialization.\n *\n * @param password The user provided password used to generate an encryption key via a KDF.\n * This is not normalized internally (see \"Unicode normalization\" to learn more).\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n static async deserialize(serialization, password) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n switch (root.type) {\n case serializationTypeV1:\n return Secp256k1HdWallet.deserializeTypeV1(serialization, password);\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n }\n /**\n * Restores a wallet from an encrypted serialization.\n *\n * This is an advanced alternative to calling `deserialize(serialization, password)` directly, which allows\n * you to offload the KDF execution to a non-UI thread (e.g. in a WebWorker).\n *\n * The caller is responsible for ensuring the key was derived with the given KDF configuration. This can be\n * done using `extractKdfConfiguration(serialization)` and `executeKdf(password, kdfConfiguration)` from this package.\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n static async deserializeWithEncryptionKey(serialization, encryptionKey) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n const untypedRoot = root;\n switch (untypedRoot.type) {\n case serializationTypeV1: {\n const decryptedBytes = await (0, wallet_1.decrypt)((0, encoding_1.fromBase64)(untypedRoot.data), encryptionKey, untypedRoot.encryption);\n const decryptedDocument = JSON.parse((0, encoding_1.fromUtf8)(decryptedBytes));\n const { mnemonic, accounts } = decryptedDocument;\n (0, utils_1.assert)(typeof mnemonic === \"string\");\n if (!Array.isArray(accounts))\n throw new Error(\"Property 'accounts' is not an array\");\n if (!accounts.every((account) => isDerivationJson(account))) {\n throw new Error(\"Account is not in the correct format.\");\n }\n const firstPrefix = accounts[0].prefix;\n if (!accounts.every(({ prefix }) => prefix === firstPrefix)) {\n throw new Error(\"Accounts do not all have the same prefix\");\n }\n const hdPaths = accounts.map(({ hdPath }) => (0, crypto_1.stringToPath)(hdPath));\n return Secp256k1HdWallet.fromMnemonic(mnemonic, {\n hdPaths: hdPaths,\n prefix: firstPrefix,\n });\n }\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n }\n static async deserializeTypeV1(serialization, password) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n const encryptionKey = await (0, wallet_1.executeKdf)(password, root.kdf);\n return Secp256k1HdWallet.deserializeWithEncryptionKey(serialization, encryptionKey);\n }\n constructor(mnemonic, options) {\n const hdPaths = options.hdPaths ?? defaultOptions.hdPaths;\n const prefix = options.prefix ?? defaultOptions.prefix;\n this.secret = mnemonic;\n this.seed = options.seed;\n this.accounts = hdPaths.map((hdPath) => ({\n hdPath: hdPath,\n prefix,\n }));\n }\n get mnemonic() {\n return this.secret.toString();\n }\n async getAccounts() {\n const accountsWithPrivkeys = await this.getAccountsWithPrivkeys();\n return accountsWithPrivkeys.map(({ algo, pubkey, address }) => ({\n algo: algo,\n pubkey: pubkey,\n address: address,\n }));\n }\n async signAmino(signerAddress, signDoc) {\n const accounts = await this.getAccountsWithPrivkeys();\n const account = accounts.find(({ address }) => address === signerAddress);\n if (account === undefined) {\n throw new Error(`Address ${signerAddress} not found in wallet`);\n }\n const { privkey, pubkey } = account;\n const message = (0, crypto_1.sha256)((0, signdoc_1.serializeSignDoc)(signDoc));\n const signature = await crypto_1.Secp256k1.createSignature(message, privkey);\n const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]);\n return {\n signed: signDoc,\n signature: (0, signature_1.encodeSecp256k1Signature)(pubkey, signatureBytes),\n };\n }\n /**\n * Generates an encrypted serialization of this wallet.\n *\n * @param password The user provided password used to generate an encryption key via a KDF.\n * This is not normalized internally (see \"Unicode normalization\" to learn more).\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n async serialize(password) {\n const kdfConfiguration = basicPasswordHashingOptions;\n const encryptionKey = await (0, wallet_1.executeKdf)(password, kdfConfiguration);\n return this.serializeWithEncryptionKey(encryptionKey, kdfConfiguration);\n }\n /**\n * Generates an encrypted serialization of this wallet.\n *\n * This is an advanced alternative to calling `serialize(password)` directly, which allows you to\n * offload the KDF execution to a non-UI thread (e.g. in a WebWorker).\n *\n * The caller is responsible for ensuring the key was derived with the given KDF options. If this\n * is not the case, the wallet cannot be restored with the original password.\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n async serializeWithEncryptionKey(encryptionKey, kdfConfiguration) {\n const dataToEncrypt = {\n mnemonic: this.mnemonic,\n accounts: this.accounts.map(({ hdPath, prefix }) => ({\n hdPath: (0, crypto_1.pathToString)(hdPath),\n prefix: prefix,\n })),\n };\n const dataToEncryptRaw = (0, encoding_1.toUtf8)(JSON.stringify(dataToEncrypt));\n const encryptionConfiguration = {\n algorithm: wallet_1.supportedAlgorithms.xchacha20poly1305Ietf,\n };\n const encryptedData = await (0, wallet_1.encrypt)(dataToEncryptRaw, encryptionKey, encryptionConfiguration);\n const out = {\n type: serializationTypeV1,\n kdf: kdfConfiguration,\n encryption: encryptionConfiguration,\n data: (0, encoding_1.toBase64)(encryptedData),\n };\n return JSON.stringify(out);\n }\n async getKeyPair(hdPath) {\n const { privkey } = crypto_1.Slip10.derivePath(crypto_1.Slip10Curve.Secp256k1, this.seed, hdPath);\n const { pubkey } = await crypto_1.Secp256k1.makeKeypair(privkey);\n return {\n privkey: privkey,\n pubkey: crypto_1.Secp256k1.compressPubkey(pubkey),\n };\n }\n async getAccountsWithPrivkeys() {\n return Promise.all(this.accounts.map(async ({ hdPath, prefix }) => {\n const { privkey, pubkey } = await this.getKeyPair(hdPath);\n const address = (0, encoding_1.toBech32)(prefix, (0, addresses_1.rawSecp256k1PubkeyToRawAddress)(pubkey));\n return {\n algo: \"secp256k1\",\n privkey: privkey,\n pubkey: pubkey,\n address: address,\n };\n }));\n }\n}\nexports.Secp256k1HdWallet = Secp256k1HdWallet;\n//# sourceMappingURL=secp256k1hdwallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Secp256k1Wallet = void 0;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst addresses_1 = require(\"./addresses\");\nconst signature_1 = require(\"./signature\");\nconst signdoc_1 = require(\"./signdoc\");\n/**\n * A wallet that holds a single secp256k1 keypair.\n *\n * If you want to work with BIP39 mnemonics and multiple accounts, use Secp256k1HdWallet.\n */\nclass Secp256k1Wallet {\n /**\n * Creates a Secp256k1Wallet from the given private key\n *\n * @param privkey The private key.\n * @param prefix The bech32 address prefix (human readable part). Defaults to \"cosmos\".\n */\n static async fromKey(privkey, prefix = \"cosmos\") {\n const uncompressed = (await crypto_1.Secp256k1.makeKeypair(privkey)).pubkey;\n return new Secp256k1Wallet(privkey, crypto_1.Secp256k1.compressPubkey(uncompressed), prefix);\n }\n constructor(privkey, pubkey, prefix) {\n this.privkey = privkey;\n this.pubkey = pubkey;\n this.prefix = prefix;\n }\n get address() {\n return (0, encoding_1.toBech32)(this.prefix, (0, addresses_1.rawSecp256k1PubkeyToRawAddress)(this.pubkey));\n }\n async getAccounts() {\n return [\n {\n algo: \"secp256k1\",\n address: this.address,\n pubkey: this.pubkey,\n },\n ];\n }\n async signAmino(signerAddress, signDoc) {\n if (signerAddress !== this.address) {\n throw new Error(`Address ${signerAddress} not found in wallet`);\n }\n const message = new crypto_1.Sha256((0, signdoc_1.serializeSignDoc)(signDoc)).digest();\n const signature = await crypto_1.Secp256k1.createSignature(message, this.privkey);\n const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]);\n return {\n signed: signDoc,\n signature: (0, signature_1.encodeSecp256k1Signature)(this.pubkey, signatureBytes),\n };\n }\n}\nexports.Secp256k1Wallet = Secp256k1Wallet;\n//# sourceMappingURL=secp256k1wallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeSecp256k1Signature = encodeSecp256k1Signature;\nexports.decodeSignature = decodeSignature;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst encoding_2 = require(\"./encoding\");\nconst pubkeys_1 = require(\"./pubkeys\");\n/**\n * Takes a binary pubkey and signature to create a signature object\n *\n * @param pubkey a compressed secp256k1 public key\n * @param signature a 64 byte fixed length representation of secp256k1 signature components r and s\n */\nfunction encodeSecp256k1Signature(pubkey, signature) {\n if (signature.length !== 64) {\n throw new Error(\"Signature must be 64 bytes long. Cosmos SDK uses a 2x32 byte fixed length encoding for the secp256k1 signature integers r and s.\");\n }\n return {\n pub_key: (0, encoding_2.encodeSecp256k1Pubkey)(pubkey),\n signature: (0, encoding_1.toBase64)(signature),\n };\n}\nfunction decodeSignature(signature) {\n switch (signature.pub_key.type) {\n // Note: please don't add cases here without writing additional unit tests\n case pubkeys_1.pubkeyType.secp256k1:\n return {\n pubkey: (0, encoding_1.fromBase64)(signature.pub_key.value),\n signature: (0, encoding_1.fromBase64)(signature.signature),\n };\n default:\n throw new Error(\"Unsupported pubkey type\");\n }\n}\n//# sourceMappingURL=signature.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sortedJsonStringify = sortedJsonStringify;\nexports.makeSignDoc = makeSignDoc;\nexports.escapeCharacters = escapeCharacters;\nexports.serializeSignDoc = serializeSignDoc;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nfunction sortedObject(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return obj;\n }\n if (Array.isArray(obj)) {\n return obj.map(sortedObject);\n }\n const sortedKeys = Object.keys(obj).sort();\n const result = {};\n // NOTE: Use forEach instead of reduce for performance with large objects eg Wasm code\n sortedKeys.forEach((key) => {\n result[key] = sortedObject(obj[key]);\n });\n return result;\n}\n/** Returns a JSON string with objects sorted by key */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction sortedJsonStringify(obj) {\n return JSON.stringify(sortedObject(obj));\n}\nfunction makeSignDoc(msgs, fee, chainId, memo, accountNumber, sequence, timeout_height) {\n return {\n chain_id: chainId,\n account_number: math_1.Uint53.fromString(accountNumber.toString()).toString(),\n sequence: math_1.Uint53.fromString(sequence.toString()).toString(),\n fee: fee,\n msgs: msgs,\n memo: memo || \"\",\n ...(timeout_height && { timeout_height: timeout_height.toString() }),\n };\n}\n/**\n * Takes a valid JSON document and performs the following escapings in string values:\n *\n * `&` -> `\\u0026`\n * `<` -> `\\u003c`\n * `>` -> `\\u003e`\n *\n * Since those characters do not occur in other places of the JSON document, only\n * string values are affected.\n *\n * If the input is invalid JSON, the behaviour is undefined.\n */\nfunction escapeCharacters(input) {\n // When we migrate to target es2021 or above, we can use replaceAll instead of global patterns.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll\n const amp = /&/g;\n const lt = //g;\n return input.replace(amp, \"\\\\u0026\").replace(lt, \"\\\\u003c\").replace(gt, \"\\\\u003e\");\n}\nfunction serializeSignDoc(signDoc) {\n const serialized = escapeCharacters(sortedJsonStringify(signDoc));\n return (0, encoding_1.toUtf8)(serialized);\n}\n//# sourceMappingURL=signdoc.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isStdTx = isStdTx;\nexports.makeStdTx = makeStdTx;\nfunction isStdTx(txValue) {\n const { memo, msg, fee, signatures } = txValue;\n return (typeof memo === \"string\" && Array.isArray(msg) && typeof fee === \"object\" && Array.isArray(signatures));\n}\nfunction makeStdTx(content, signatures) {\n return {\n msg: content.msgs,\n fee: content.fee,\n memo: content.memo,\n signatures: Array.isArray(signatures) ? signatures : [signatures],\n };\n}\n//# sourceMappingURL=stdtx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.supportedAlgorithms = exports.cosmjsSalt = void 0;\nexports.executeKdf = executeKdf;\nexports.encrypt = encrypt;\nexports.decrypt = decrypt;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\n/**\n * A fixed salt is chosen to archive a deterministic password to key derivation.\n * This reduces the scope of a potential rainbow attack to all CosmJS users.\n * Must be 16 bytes due to implementation limitations.\n */\nexports.cosmjsSalt = (0, encoding_1.toAscii)(\"The CosmJS salt.\");\n/**\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\nasync function executeKdf(password, configuration) {\n switch (configuration.algorithm) {\n case \"argon2id\": {\n const options = configuration.params;\n if (!(0, crypto_1.isArgon2idOptions)(options))\n throw new Error(\"Invalid format of argon2id params\");\n return crypto_1.Argon2id.execute(password, exports.cosmjsSalt, options);\n }\n default:\n throw new Error(\"Unsupported KDF algorithm\");\n }\n}\nexports.supportedAlgorithms = {\n xchacha20poly1305Ietf: \"xchacha20poly1305-ietf\",\n};\n/**\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\nasync function encrypt(plaintext, encryptionKey, config) {\n switch (config.algorithm) {\n case exports.supportedAlgorithms.xchacha20poly1305Ietf: {\n const nonce = crypto_1.Random.getBytes(crypto_1.xchacha20NonceLength);\n // Prepend fixed-length nonce to ciphertext as suggested in the example from https://github.com/jedisct1/libsodium.js#api\n return new Uint8Array([\n ...nonce,\n ...(await crypto_1.Xchacha20poly1305Ietf.encrypt(plaintext, encryptionKey, nonce)),\n ]);\n }\n default:\n throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`);\n }\n}\n/**\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\nasync function decrypt(ciphertext, encryptionKey, config) {\n switch (config.algorithm) {\n case exports.supportedAlgorithms.xchacha20poly1305Ietf: {\n const nonce = ciphertext.slice(0, crypto_1.xchacha20NonceLength);\n return crypto_1.Xchacha20poly1305Ietf.decrypt(ciphertext.slice(crypto_1.xchacha20NonceLength), encryptionKey, nonce);\n }\n default:\n throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`);\n }\n}\n//# sourceMappingURL=wallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toAscii = toAscii;\nexports.fromAscii = fromAscii;\nfunction toAscii(input) {\n const toNums = (str) => str.split(\"\").map((x) => {\n const charCode = x.charCodeAt(0);\n // 0x00–0x1F control characters\n // 0x20–0x7E printable characters\n // 0x7F delete character\n // 0x80–0xFF out of 7 bit ascii range\n if (charCode < 0x20 || charCode > 0x7e) {\n throw new Error(\"Cannot encode character that is out of printable ASCII range: \" + charCode);\n }\n return charCode;\n });\n return Uint8Array.from(toNums(input));\n}\nfunction fromAscii(data) {\n const fromNums = (listOfNumbers) => listOfNumbers.map((x) => {\n // 0x00–0x1F control characters\n // 0x20–0x7E printable characters\n // 0x7F delete character\n // 0x80–0xFF out of 7 bit ascii range\n if (x < 0x20 || x > 0x7e) {\n throw new Error(\"Cannot decode character that is out of printable ASCII range: \" + x);\n }\n return String.fromCharCode(x);\n });\n return fromNums(Array.from(data)).join(\"\");\n}\n//# sourceMappingURL=ascii.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBase64 = toBase64;\nexports.fromBase64 = fromBase64;\nconst base64js = __importStar(require(\"base64-js\"));\nfunction toBase64(data) {\n return base64js.fromByteArray(data);\n}\nfunction fromBase64(base64String) {\n if (!base64String.match(/^[a-zA-Z0-9+/]*={0,2}$/)) {\n throw new Error(\"Invalid base64 string format\");\n }\n return base64js.toByteArray(base64String);\n}\n//# sourceMappingURL=base64.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBech32 = toBech32;\nexports.fromBech32 = fromBech32;\nexports.normalizeBech32 = normalizeBech32;\nconst bech32 = __importStar(require(\"bech32\"));\nfunction toBech32(prefix, data, limit) {\n const address = bech32.encode(prefix, bech32.toWords(data), limit);\n return address;\n}\nfunction fromBech32(address, limit = Infinity) {\n const decodedAddress = bech32.decode(address, limit);\n return {\n prefix: decodedAddress.prefix,\n data: new Uint8Array(bech32.fromWords(decodedAddress.words)),\n };\n}\n/**\n * Takes a bech32 address and returns a normalized (i.e. lower case) representation of it.\n *\n * The input is validated along the way, which makes this significantly safer than\n * using `address.toLowerCase()`.\n */\nfunction normalizeBech32(address) {\n const { prefix, data } = fromBech32(address);\n return toBech32(prefix, data);\n}\n//# sourceMappingURL=bech32.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toHex = toHex;\nexports.fromHex = fromHex;\nfunction toHex(data) {\n let out = \"\";\n for (const byte of data) {\n out += (\"0\" + byte.toString(16)).slice(-2);\n }\n return out;\n}\nfunction fromHex(hexstring) {\n if (hexstring.length % 2 !== 0) {\n throw new Error(\"hex string length must be a multiple of 2\");\n }\n const out = new Uint8Array(hexstring.length / 2);\n for (let i = 0; i < out.length; i++) {\n const j = 2 * i;\n const hexByteAsString = hexstring.slice(j, j + 2);\n if (!hexByteAsString.match(/[0-9a-f]{2}/i)) {\n throw new Error(\"hex string contains invalid characters\");\n }\n out[i] = parseInt(hexByteAsString, 16);\n }\n return out;\n}\n//# sourceMappingURL=hex.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = exports.toRfc3339 = exports.fromRfc3339 = exports.toHex = exports.fromHex = exports.toBech32 = exports.normalizeBech32 = exports.fromBech32 = exports.toBase64 = exports.fromBase64 = exports.toAscii = exports.fromAscii = void 0;\nvar ascii_1 = require(\"./ascii\");\nObject.defineProperty(exports, \"fromAscii\", { enumerable: true, get: function () { return ascii_1.fromAscii; } });\nObject.defineProperty(exports, \"toAscii\", { enumerable: true, get: function () { return ascii_1.toAscii; } });\nvar base64_1 = require(\"./base64\");\nObject.defineProperty(exports, \"fromBase64\", { enumerable: true, get: function () { return base64_1.fromBase64; } });\nObject.defineProperty(exports, \"toBase64\", { enumerable: true, get: function () { return base64_1.toBase64; } });\nvar bech32_1 = require(\"./bech32\");\nObject.defineProperty(exports, \"fromBech32\", { enumerable: true, get: function () { return bech32_1.fromBech32; } });\nObject.defineProperty(exports, \"normalizeBech32\", { enumerable: true, get: function () { return bech32_1.normalizeBech32; } });\nObject.defineProperty(exports, \"toBech32\", { enumerable: true, get: function () { return bech32_1.toBech32; } });\nvar hex_1 = require(\"./hex\");\nObject.defineProperty(exports, \"fromHex\", { enumerable: true, get: function () { return hex_1.fromHex; } });\nObject.defineProperty(exports, \"toHex\", { enumerable: true, get: function () { return hex_1.toHex; } });\nvar rfc3339_1 = require(\"./rfc3339\");\nObject.defineProperty(exports, \"fromRfc3339\", { enumerable: true, get: function () { return rfc3339_1.fromRfc3339; } });\nObject.defineProperty(exports, \"toRfc3339\", { enumerable: true, get: function () { return rfc3339_1.toRfc3339; } });\nvar utf8_1 = require(\"./utf8\");\nObject.defineProperty(exports, \"fromUtf8\", { enumerable: true, get: function () { return utf8_1.fromUtf8; } });\nObject.defineProperty(exports, \"toUtf8\", { enumerable: true, get: function () { return utf8_1.toUtf8; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromRfc3339 = fromRfc3339;\nexports.toRfc3339 = toRfc3339;\nconst rfc3339Matcher = /^(\\d{4})-(\\d{2})-(\\d{2})[T ](\\d{2}):(\\d{2}):(\\d{2})(\\.\\d{1,9})?((?:[+-]\\d{2}:\\d{2})|Z)$/;\nfunction padded(integer, length = 2) {\n return integer.toString().padStart(length, \"0\");\n}\nfunction fromRfc3339(str) {\n const matches = rfc3339Matcher.exec(str);\n if (!matches) {\n throw new Error(\"Date string is not in RFC3339 format\");\n }\n const year = +matches[1];\n const month = +matches[2];\n const day = +matches[3];\n const hour = +matches[4];\n const minute = +matches[5];\n const second = +matches[6];\n // fractional seconds match either undefined or a string like \".1\", \".123456789\"\n const milliSeconds = matches[7] ? Math.floor(+matches[7] * 1000) : 0;\n let tzOffsetSign;\n let tzOffsetHours;\n let tzOffsetMinutes;\n // if timezone is undefined, it must be Z or nothing (otherwise the group would have captured).\n if (matches[8] === \"Z\") {\n tzOffsetSign = 1;\n tzOffsetHours = 0;\n tzOffsetMinutes = 0;\n }\n else {\n tzOffsetSign = matches[8].substring(0, 1) === \"-\" ? -1 : 1;\n tzOffsetHours = +matches[8].substring(1, 3);\n tzOffsetMinutes = +matches[8].substring(4, 6);\n }\n const tzOffset = tzOffsetSign * (tzOffsetHours * 60 + tzOffsetMinutes) * 60; // seconds\n const date = new Date();\n date.setUTCFullYear(year, month - 1, day);\n date.setUTCHours(hour, minute, second, milliSeconds);\n return new Date(date.getTime() - tzOffset * 1000);\n}\nfunction toRfc3339(date) {\n const year = date.getUTCFullYear();\n const month = padded(date.getUTCMonth() + 1);\n const day = padded(date.getUTCDate());\n const hour = padded(date.getUTCHours());\n const minute = padded(date.getUTCMinutes());\n const second = padded(date.getUTCSeconds());\n const ms = padded(date.getUTCMilliseconds(), 3);\n return `${year}-${month}-${day}T${hour}:${minute}:${second}.${ms}Z`;\n}\n//# sourceMappingURL=rfc3339.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = toUtf8;\nexports.fromUtf8 = fromUtf8;\nfunction toUtf8(str) {\n return new TextEncoder().encode(str);\n}\n/**\n * Takes UTF-8 data and decodes it to a string.\n *\n * In lossy mode, the [REPLACEMENT CHARACTER](https://en.wikipedia.org/wiki/Specials_(Unicode_block))\n * is used to substitude invalid encodings.\n * By default lossy mode is off and invalid data will lead to exceptions.\n */\nfunction fromUtf8(data, lossy = false) {\n const fatal = !lossy;\n return new TextDecoder(\"utf-8\", { fatal }).decode(data);\n}\n//# sourceMappingURL=utf8.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Decimal = void 0;\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\n// Too large values lead to massive memory usage. Limit to something sensible.\n// The largest value we need is 18 (Ether).\nconst maxFractionalDigits = 100;\n/**\n * A type for arbitrary precision, non-negative decimals.\n *\n * Instances of this class are immutable.\n */\nclass Decimal {\n static fromUserInput(input, fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n const badCharacter = input.match(/[^0-9.]/);\n if (badCharacter) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n throw new Error(`Invalid character at position ${badCharacter.index + 1}`);\n }\n let whole;\n let fractional;\n if (input === \"\") {\n whole = \"0\";\n fractional = \"\";\n }\n else if (input.search(/\\./) === -1) {\n // integer format, no separator\n whole = input;\n fractional = \"\";\n }\n else {\n const parts = input.split(\".\");\n switch (parts.length) {\n case 0:\n case 1:\n throw new Error(\"Fewer than two elements in split result. This must not happen here.\");\n case 2:\n if (!parts[1])\n throw new Error(\"Fractional part missing\");\n whole = parts[0];\n fractional = parts[1].replace(/0+$/, \"\");\n break;\n default:\n throw new Error(\"More than one separator found\");\n }\n }\n if (fractional.length > fractionalDigits) {\n throw new Error(\"Got more fractional digits than supported\");\n }\n const quantity = `${whole}${fractional.padEnd(fractionalDigits, \"0\")}`;\n return new Decimal(quantity, fractionalDigits);\n }\n static fromAtomics(atomics, fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(atomics, fractionalDigits);\n }\n /**\n * Creates a Decimal with value 0.0 and the given number of fractial digits.\n *\n * Fractional digits are not relevant for the value but needed to be able\n * to perform arithmetic operations with other decimals.\n */\n static zero(fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(\"0\", fractionalDigits);\n }\n /**\n * Creates a Decimal with value 1.0 and the given number of fractial digits.\n *\n * Fractional digits are not relevant for the value but needed to be able\n * to perform arithmetic operations with other decimals.\n */\n static one(fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(\"1\" + \"0\".repeat(fractionalDigits), fractionalDigits);\n }\n static verifyFractionalDigits(fractionalDigits) {\n if (!Number.isInteger(fractionalDigits))\n throw new Error(\"Fractional digits is not an integer\");\n if (fractionalDigits < 0)\n throw new Error(\"Fractional digits must not be negative\");\n if (fractionalDigits > maxFractionalDigits) {\n throw new Error(`Fractional digits must not exceed ${maxFractionalDigits}`);\n }\n }\n static compare(a, b) {\n if (a.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n return a.data.atomics.cmp(new bn_js_1.default(b.atomics));\n }\n get atomics() {\n return this.data.atomics.toString();\n }\n get fractionalDigits() {\n return this.data.fractionalDigits;\n }\n constructor(atomics, fractionalDigits) {\n if (!atomics.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format. Only non-negative integers in decimal representation supported.\");\n }\n this.data = {\n atomics: new bn_js_1.default(atomics),\n fractionalDigits: fractionalDigits,\n };\n }\n /** Creates a new instance with the same value */\n clone() {\n return new Decimal(this.atomics, this.fractionalDigits);\n }\n /** Returns the greatest decimal <= this which has no fractional part (rounding down) */\n floor() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return this.clone();\n }\n else {\n return Decimal.fromAtomics(whole.mul(factor).toString(), this.fractionalDigits);\n }\n }\n /** Returns the smallest decimal >= this which has no fractional part (rounding up) */\n ceil() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return this.clone();\n }\n else {\n return Decimal.fromAtomics(whole.addn(1).mul(factor).toString(), this.fractionalDigits);\n }\n }\n toString() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return whole.toString();\n }\n else {\n const fullFractionalPart = fractional.toString().padStart(this.data.fractionalDigits, \"0\");\n const trimmedFractionalPart = fullFractionalPart.replace(/0+$/, \"\");\n return `${whole.toString()}.${trimmedFractionalPart}`;\n }\n }\n /**\n * Returns an approximation as a float type. Only use this if no\n * exact calculation is required.\n */\n toFloatApproximation() {\n const out = Number(this.toString());\n if (Number.isNaN(out))\n throw new Error(\"Conversion to number failed\");\n return out;\n }\n /**\n * a.plus(b) returns a+b.\n *\n * Both values need to have the same fractional digits.\n */\n plus(b) {\n if (this.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n const sum = this.data.atomics.add(new bn_js_1.default(b.atomics));\n return new Decimal(sum.toString(), this.fractionalDigits);\n }\n /**\n * a.minus(b) returns a-b.\n *\n * Both values need to have the same fractional digits.\n * The resulting difference needs to be non-negative.\n */\n minus(b) {\n if (this.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n const difference = this.data.atomics.sub(new bn_js_1.default(b.atomics));\n if (difference.ltn(0))\n throw new Error(\"Difference must not be negative\");\n return new Decimal(difference.toString(), this.fractionalDigits);\n }\n /**\n * a.multiply(b) returns a*b.\n *\n * We only allow multiplication by unsigned integers to avoid rounding errors.\n */\n multiply(b) {\n const product = this.data.atomics.mul(new bn_js_1.default(b.toString()));\n return new Decimal(product.toString(), this.fractionalDigits);\n }\n equals(b) {\n return Decimal.compare(this, b) === 0;\n }\n isLessThan(b) {\n return Decimal.compare(this, b) < 0;\n }\n isLessThanOrEqual(b) {\n return Decimal.compare(this, b) <= 0;\n }\n isGreaterThan(b) {\n return Decimal.compare(this, b) > 0;\n }\n isGreaterThanOrEqual(b) {\n return Decimal.compare(this, b) >= 0;\n }\n}\nexports.Decimal = Decimal;\n//# sourceMappingURL=decimal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uint64 = exports.Uint53 = exports.Uint32 = exports.Int53 = exports.Decimal = void 0;\nvar decimal_1 = require(\"./decimal\");\nObject.defineProperty(exports, \"Decimal\", { enumerable: true, get: function () { return decimal_1.Decimal; } });\nvar integers_1 = require(\"./integers\");\nObject.defineProperty(exports, \"Int53\", { enumerable: true, get: function () { return integers_1.Int53; } });\nObject.defineProperty(exports, \"Uint32\", { enumerable: true, get: function () { return integers_1.Uint32; } });\nObject.defineProperty(exports, \"Uint53\", { enumerable: true, get: function () { return integers_1.Uint53; } });\nObject.defineProperty(exports, \"Uint64\", { enumerable: true, get: function () { return integers_1.Uint64; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n/* eslint-disable no-bitwise */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uint64 = exports.Uint53 = exports.Int53 = exports.Uint32 = void 0;\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst uint64MaxValue = new bn_js_1.default(\"18446744073709551615\", 10, \"be\");\nclass Uint32 {\n /** @deprecated use Uint32.fromBytes */\n static fromBigEndianBytes(bytes) {\n return Uint32.fromBytes(bytes);\n }\n /**\n * Creates a Uint32 from a fixed length byte array.\n *\n * @param bytes a list of exactly 4 bytes\n * @param endianess defaults to big endian\n */\n static fromBytes(bytes, endianess = \"be\") {\n if (bytes.length !== 4) {\n throw new Error(\"Invalid input length. Expected 4 bytes.\");\n }\n for (let i = 0; i < bytes.length; ++i) {\n if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) {\n throw new Error(\"Invalid value in byte. Found: \" + bytes[i]);\n }\n }\n const beBytes = endianess === \"be\" ? bytes : Array.from(bytes).reverse();\n // Use multiplication instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint32(beBytes[0] * 2 ** 24 + beBytes[1] * 2 ** 16 + beBytes[2] * 2 ** 8 + beBytes[3]);\n }\n static fromString(str) {\n if (!str.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Uint32(Number.parseInt(str, 10));\n }\n constructor(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n if (input < 0 || input > 4294967295) {\n throw new Error(\"Input not in uint32 range: \" + input.toString());\n }\n this.data = input;\n }\n toBytesBigEndian() {\n // Use division instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint8Array([\n Math.floor(this.data / 2 ** 24) & 0xff,\n Math.floor(this.data / 2 ** 16) & 0xff,\n Math.floor(this.data / 2 ** 8) & 0xff,\n Math.floor(this.data / 2 ** 0) & 0xff,\n ]);\n }\n toBytesLittleEndian() {\n // Use division instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint8Array([\n Math.floor(this.data / 2 ** 0) & 0xff,\n Math.floor(this.data / 2 ** 8) & 0xff,\n Math.floor(this.data / 2 ** 16) & 0xff,\n Math.floor(this.data / 2 ** 24) & 0xff,\n ]);\n }\n toNumber() {\n return this.data;\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Uint32 = Uint32;\nclass Int53 {\n static fromString(str) {\n if (!str.match(/^-?[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Int53(Number.parseInt(str, 10));\n }\n constructor(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n if (input < Number.MIN_SAFE_INTEGER || input > Number.MAX_SAFE_INTEGER) {\n throw new Error(\"Input not in int53 range: \" + input.toString());\n }\n this.data = input;\n }\n toNumber() {\n return this.data;\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Int53 = Int53;\nclass Uint53 {\n static fromString(str) {\n const signed = Int53.fromString(str);\n return new Uint53(signed.toNumber());\n }\n constructor(input) {\n const signed = new Int53(input);\n if (signed.toNumber() < 0) {\n throw new Error(\"Input is negative\");\n }\n this.data = signed;\n }\n toNumber() {\n return this.data.toNumber();\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Uint53 = Uint53;\nclass Uint64 {\n /** @deprecated use Uint64.fromBytes */\n static fromBytesBigEndian(bytes) {\n return Uint64.fromBytes(bytes);\n }\n /**\n * Creates a Uint64 from a fixed length byte array.\n *\n * @param bytes a list of exactly 8 bytes\n * @param endianess defaults to big endian\n */\n static fromBytes(bytes, endianess = \"be\") {\n if (bytes.length !== 8) {\n throw new Error(\"Invalid input length. Expected 8 bytes.\");\n }\n for (let i = 0; i < bytes.length; ++i) {\n if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) {\n throw new Error(\"Invalid value in byte. Found: \" + bytes[i]);\n }\n }\n const beBytes = endianess === \"be\" ? Array.from(bytes) : Array.from(bytes).reverse();\n return new Uint64(new bn_js_1.default(beBytes));\n }\n static fromString(str) {\n if (!str.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Uint64(new bn_js_1.default(str, 10, \"be\"));\n }\n static fromNumber(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n let bigint;\n try {\n bigint = new bn_js_1.default(input);\n }\n catch {\n throw new Error(\"Input is not a safe integer\");\n }\n return new Uint64(bigint);\n }\n constructor(data) {\n if (data.isNeg()) {\n throw new Error(\"Input is negative\");\n }\n if (data.gt(uint64MaxValue)) {\n throw new Error(\"Input exceeds uint64 range\");\n }\n this.data = data;\n }\n toBytesBigEndian() {\n return Uint8Array.from(this.data.toArray(\"be\", 8));\n }\n toBytesLittleEndian() {\n return Uint8Array.from(this.data.toArray(\"le\", 8));\n }\n toString() {\n return this.data.toString(10);\n }\n toBigInt() {\n return BigInt(this.toString());\n }\n toNumber() {\n return this.data.toNumber();\n }\n}\nexports.Uint64 = Uint64;\n// Assign classes to unused variables in order to verify static interface conformance at compile time.\n// Workaround for https://github.com/microsoft/TypeScript/issues/33892\nconst _int53Class = Int53;\nconst _uint53Class = Uint53;\nconst _uint32Class = Uint32;\nconst _uint64Class = Uint64;\n//# sourceMappingURL=integers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.arrayContentEquals = arrayContentEquals;\nexports.arrayContentStartsWith = arrayContentStartsWith;\n/**\n * Compares the content of two arrays-like objects for equality.\n *\n * Equality is defined as having equal length and element values, where element equality means `===` returning `true`.\n *\n * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type.\n * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type.\n */\nfunction arrayContentEquals(a, b) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; ++i) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n}\n/**\n * Checks if `a` starts with the contents of `b`.\n *\n * This requires equality of the element values, where element equality means `===` returning `true`.\n *\n * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type.\n * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type.\n */\nfunction arrayContentStartsWith(a, b) {\n if (a.length < b.length)\n return false;\n for (let i = 0; i < b.length; ++i) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n}\n//# sourceMappingURL=arrays.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assert = assert;\nexports.assertDefined = assertDefined;\nexports.assertDefinedAndNotNull = assertDefinedAndNotNull;\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction assert(condition, msg) {\n if (!condition) {\n throw new Error(msg || \"condition is not truthy\");\n }\n}\nfunction assertDefined(value, msg) {\n if (value === undefined) {\n throw new Error(msg ?? \"value is undefined\");\n }\n}\nfunction assertDefinedAndNotNull(value, msg) {\n if (value === undefined || value === null) {\n throw new Error(msg ?? \"value is undefined or null\");\n }\n}\n//# sourceMappingURL=assert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isUint8Array = exports.isNonNullObject = exports.isDefined = exports.sleep = exports.assertDefinedAndNotNull = exports.assertDefined = exports.assert = exports.arrayContentStartsWith = exports.arrayContentEquals = void 0;\nvar arrays_1 = require(\"./arrays\");\nObject.defineProperty(exports, \"arrayContentEquals\", { enumerable: true, get: function () { return arrays_1.arrayContentEquals; } });\nObject.defineProperty(exports, \"arrayContentStartsWith\", { enumerable: true, get: function () { return arrays_1.arrayContentStartsWith; } });\nvar assert_1 = require(\"./assert\");\nObject.defineProperty(exports, \"assert\", { enumerable: true, get: function () { return assert_1.assert; } });\nObject.defineProperty(exports, \"assertDefined\", { enumerable: true, get: function () { return assert_1.assertDefined; } });\nObject.defineProperty(exports, \"assertDefinedAndNotNull\", { enumerable: true, get: function () { return assert_1.assertDefinedAndNotNull; } });\nvar sleep_1 = require(\"./sleep\");\nObject.defineProperty(exports, \"sleep\", { enumerable: true, get: function () { return sleep_1.sleep; } });\nvar typechecks_1 = require(\"./typechecks\");\nObject.defineProperty(exports, \"isDefined\", { enumerable: true, get: function () { return typechecks_1.isDefined; } });\nObject.defineProperty(exports, \"isNonNullObject\", { enumerable: true, get: function () { return typechecks_1.isNonNullObject; } });\nObject.defineProperty(exports, \"isUint8Array\", { enumerable: true, get: function () { return typechecks_1.isUint8Array; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sleep = sleep;\nasync function sleep(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n//# sourceMappingURL=sleep.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNonNullObject = isNonNullObject;\nexports.isUint8Array = isUint8Array;\nexports.isDefined = isDefined;\n/**\n * Checks if data is a non-null object (i.e. matches the TypeScript object type).\n *\n * Note: this returns true for arrays, which are objects in JavaScript\n * even though array and object are different types in JSON.\n *\n * @see https://www.typescriptlang.org/docs/handbook/basic-types.html#object\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isNonNullObject(data) {\n return typeof data === \"object\" && data !== null;\n}\n/**\n * Checks if data is an Uint8Array. Note: Buffer is treated as not a Uint8Array\n */\nfunction isUint8Array(data) {\n if (!isNonNullObject(data))\n return false;\n // Avoid instanceof check which is unreliable in some JS environments\n // https://medium.com/@simonwarta/limitations-of-the-instanceof-operator-f4bcdbe7a400\n // Use check that was discussed in https://github.com/crypto-browserify/pbkdf2/pull/81\n if (Object.prototype.toString.call(data) !== \"[object Uint8Array]\")\n return false;\n if (typeof Buffer !== \"undefined\" && typeof Buffer.isBuffer !== \"undefined\") {\n // Buffer.isBuffer is available at runtime\n if (Buffer.isBuffer(data))\n return false;\n }\n return true;\n}\n/**\n * Checks if input is not undefined in a TypeScript-friendly way.\n *\n * This is convenient to use in e.g. `Array.filter` as it will convert\n * the type of a `Array` to `Array`.\n */\nfunction isDefined(value) {\n return value !== undefined;\n}\n//# sourceMappingURL=typechecks.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StreamingSocket = exports.SocketWrapper = exports.ReconnectingSocket = exports.QueueingStreamingSocket = exports.ConnectionStatus = void 0;\nvar queueingstreamingsocket_1 = require(\"./queueingstreamingsocket\");\nObject.defineProperty(exports, \"ConnectionStatus\", { enumerable: true, get: function () { return queueingstreamingsocket_1.ConnectionStatus; } });\nObject.defineProperty(exports, \"QueueingStreamingSocket\", { enumerable: true, get: function () { return queueingstreamingsocket_1.QueueingStreamingSocket; } });\nvar reconnectingsocket_1 = require(\"./reconnectingsocket\");\nObject.defineProperty(exports, \"ReconnectingSocket\", { enumerable: true, get: function () { return reconnectingsocket_1.ReconnectingSocket; } });\nvar socketwrapper_1 = require(\"./socketwrapper\");\nObject.defineProperty(exports, \"SocketWrapper\", { enumerable: true, get: function () { return socketwrapper_1.SocketWrapper; } });\nvar streamingsocket_1 = require(\"./streamingsocket\");\nObject.defineProperty(exports, \"StreamingSocket\", { enumerable: true, get: function () { return streamingsocket_1.StreamingSocket; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueueingStreamingSocket = exports.ConnectionStatus = void 0;\nconst stream_1 = require(\"@cosmjs/stream\");\nconst xstream_1 = require(\"xstream\");\nconst streamingsocket_1 = require(\"./streamingsocket\");\nvar ConnectionStatus;\n(function (ConnectionStatus) {\n ConnectionStatus[ConnectionStatus[\"Unconnected\"] = 0] = \"Unconnected\";\n ConnectionStatus[ConnectionStatus[\"Connecting\"] = 1] = \"Connecting\";\n ConnectionStatus[ConnectionStatus[\"Connected\"] = 2] = \"Connected\";\n ConnectionStatus[ConnectionStatus[\"Disconnected\"] = 3] = \"Disconnected\";\n})(ConnectionStatus || (exports.ConnectionStatus = ConnectionStatus = {}));\n/**\n * A wrapper around StreamingSocket that can queue requests.\n */\nclass QueueingStreamingSocket {\n constructor(url, timeout = 10000, reconnectedHandler) {\n this.queue = [];\n this.isProcessingQueue = false;\n this.url = url;\n this.timeout = timeout;\n this.reconnectedHandler = reconnectedHandler;\n const eventProducer = {\n start: (listener) => (this.eventProducerListener = listener),\n stop: () => (this.eventProducerListener = undefined),\n };\n this.events = xstream_1.Stream.create(eventProducer);\n this.connectionStatusProducer = new stream_1.DefaultValueProducer(ConnectionStatus.Unconnected);\n this.connectionStatus = new stream_1.ValueAndUpdates(this.connectionStatusProducer);\n this.socket = new streamingsocket_1.StreamingSocket(this.url, this.timeout);\n this.socket.events.subscribe({\n next: (event) => {\n if (!this.eventProducerListener)\n throw new Error(\"No event producer listener set\");\n this.eventProducerListener.next(event);\n },\n error: () => this.connectionStatusProducer.update(ConnectionStatus.Disconnected),\n });\n }\n connect() {\n this.connectionStatusProducer.update(ConnectionStatus.Connecting);\n this.socket.connected.then(async () => {\n this.connectionStatusProducer.update(ConnectionStatus.Connected);\n return this.processQueue();\n }, () => this.connectionStatusProducer.update(ConnectionStatus.Disconnected));\n this.socket.connect();\n }\n disconnect() {\n this.connectionStatusProducer.update(ConnectionStatus.Disconnected);\n this.socket.disconnect();\n }\n reconnect() {\n this.socket = new streamingsocket_1.StreamingSocket(this.url, this.timeout);\n this.socket.events.subscribe({\n next: (event) => {\n if (!this.eventProducerListener)\n throw new Error(\"No event producer listener set\");\n this.eventProducerListener.next(event);\n },\n error: () => this.connectionStatusProducer.update(ConnectionStatus.Disconnected),\n });\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.socket.connected.then(() => {\n if (this.reconnectedHandler) {\n this.reconnectedHandler();\n }\n });\n this.connect();\n }\n getQueueLength() {\n return this.queue.length;\n }\n queueRequest(request) {\n this.queue.push(request);\n // We don’t need to wait for the queue to be processed.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.processQueue();\n }\n async processQueue() {\n if (this.isProcessingQueue || this.connectionStatus.value !== ConnectionStatus.Connected) {\n return;\n }\n this.isProcessingQueue = true;\n let request;\n while ((request = this.queue.shift())) {\n try {\n await this.socket.send(request);\n this.isProcessingQueue = false;\n }\n catch (error) {\n // Probably the connection is down; will try again automatically when reconnected.\n this.queue.unshift(request);\n this.isProcessingQueue = false;\n return;\n }\n }\n }\n}\nexports.QueueingStreamingSocket = QueueingStreamingSocket;\n//# sourceMappingURL=queueingstreamingsocket.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReconnectingSocket = void 0;\nconst xstream_1 = require(\"xstream\");\nconst queueingstreamingsocket_1 = require(\"./queueingstreamingsocket\");\n/**\n * A wrapper around QueueingStreamingSocket that reconnects automatically.\n */\nclass ReconnectingSocket {\n /** Starts with a 0.1 second timeout, then doubles every attempt with a maximum timeout of 5 seconds. */\n static calculateTimeout(index) {\n return Math.min(2 ** index * 100, 5000);\n }\n constructor(url, timeout = 10000, reconnectedHandler) {\n this.unconnected = true;\n this.disconnected = false;\n this.timeoutIndex = 0;\n this.reconnectTimeout = null;\n const eventProducer = {\n start: (listener) => (this.eventProducerListener = listener),\n stop: () => (this.eventProducerListener = undefined),\n };\n this.events = xstream_1.Stream.create(eventProducer);\n this.socket = new queueingstreamingsocket_1.QueueingStreamingSocket(url, timeout, reconnectedHandler);\n this.socket.events.subscribe({\n next: (event) => {\n if (this.eventProducerListener) {\n this.eventProducerListener.next(event);\n }\n },\n error: (error) => {\n if (this.eventProducerListener) {\n this.eventProducerListener.error(error);\n }\n },\n });\n this.connectionStatus = this.socket.connectionStatus;\n this.connectionStatus.updates.subscribe({\n next: (status) => {\n if (status === queueingstreamingsocket_1.ConnectionStatus.Connected) {\n this.timeoutIndex = 0;\n }\n if (status === queueingstreamingsocket_1.ConnectionStatus.Disconnected) {\n if (this.reconnectTimeout) {\n clearTimeout(this.reconnectTimeout);\n this.reconnectTimeout = null;\n }\n this.reconnectTimeout = setTimeout(() => this.socket.reconnect(), ReconnectingSocket.calculateTimeout(this.timeoutIndex++));\n }\n },\n });\n }\n connect() {\n if (!this.unconnected) {\n throw new Error(\"Cannot connect: socket has already connected\");\n }\n this.socket.connect();\n this.unconnected = false;\n }\n disconnect() {\n if (this.unconnected) {\n throw new Error(\"Cannot disconnect: socket has not yet connected\");\n }\n this.socket.disconnect();\n if (this.eventProducerListener) {\n this.eventProducerListener.complete();\n }\n this.disconnected = true;\n }\n queueRequest(request) {\n if (this.disconnected) {\n throw new Error(\"Cannot queue request: socket has disconnected\");\n }\n this.socket.queueRequest(request);\n }\n}\nexports.ReconnectingSocket = ReconnectingSocket;\n//# sourceMappingURL=reconnectingsocket.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SocketWrapper = void 0;\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst isomorphic_ws_1 = __importDefault(require(\"isomorphic-ws\"));\nfunction environmentIsNodeJs() {\n return (typeof process !== \"undefined\" &&\n typeof process.versions !== \"undefined\" &&\n typeof process.versions.node !== \"undefined\");\n}\n/**\n * A thin wrapper around isomorphic-ws' WebSocket class that adds\n * - constant message/error/open/close handlers\n * - explict connection via a connect() method\n * - type support for events\n * - handling of corner cases in the open and close behaviour\n */\nclass SocketWrapper {\n constructor(url, messageHandler, errorHandler, openHandler, closeHandler, timeout = 10000) {\n this.closed = false;\n this.connected = new Promise((resolve, reject) => {\n this.connectedResolver = resolve;\n this.connectedRejecter = reject;\n });\n this.url = url;\n this.messageHandler = messageHandler;\n this.errorHandler = errorHandler;\n this.openHandler = openHandler;\n this.closeHandler = closeHandler;\n this.timeout = timeout;\n }\n /**\n * returns a promise that resolves when connection is open\n */\n connect() {\n const socket = new isomorphic_ws_1.default(this.url);\n socket.onerror = (error) => {\n this.clearTimeout();\n if (this.errorHandler) {\n this.errorHandler(error);\n }\n };\n socket.onmessage = (messageEvent) => {\n this.messageHandler({\n type: messageEvent.type,\n data: messageEvent.data,\n });\n };\n socket.onopen = (_) => {\n this.clearTimeout();\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.connectedResolver();\n if (this.openHandler) {\n this.openHandler();\n }\n };\n socket.onclose = (closeEvent) => {\n this.closed = true;\n if (this.closeHandler) {\n this.closeHandler(closeEvent);\n }\n };\n const started = Date.now();\n this.timeoutId = setTimeout(() => {\n socket.onmessage = () => 0;\n socket.onerror = () => 0;\n socket.onopen = () => 0;\n socket.onclose = () => 0;\n socket.close();\n this.socket = undefined;\n const elapsed = Math.floor(Date.now() - started);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.connectedRejecter(`Connection attempt timed out after ${elapsed} ms`);\n }, this.timeout);\n this.socket = socket;\n }\n /**\n * Closes an established connection and aborts other connection states\n */\n disconnect() {\n if (!this.socket) {\n throw new Error(\"Socket undefined. This must be called after connecting.\");\n }\n this.clearTimeout();\n switch (this.socket.readyState) {\n case isomorphic_ws_1.default.OPEN:\n this.socket.close(1000 /* Normal Closure */);\n break;\n case isomorphic_ws_1.default.CLOSED:\n // nothing to be done\n break;\n case isomorphic_ws_1.default.CONNECTING:\n // imitate missing abort API\n this.socket.onopen = () => 0;\n this.socket.onclose = () => 0;\n this.socket.onerror = () => 0;\n this.socket.onmessage = () => 0;\n this.socket = undefined;\n if (this.closeHandler) {\n this.closeHandler({ wasClean: false, code: 4001 });\n }\n break;\n case isomorphic_ws_1.default.CLOSING:\n // already closing. Let it proceed\n break;\n default:\n throw new Error(`Unknown readyState: ${this.socket.readyState}`);\n }\n }\n async send(data) {\n return new Promise((resolve, reject) => {\n if (!this.socket) {\n throw new Error(\"Socket undefined. This must be called after connecting.\");\n }\n if (this.closed) {\n throw new Error(\"Socket was closed, so no data can be sent anymore.\");\n }\n // this exception should be thrown by send() automatically according to\n // https://developer.mozilla.org/de/docs/Web/API/WebSocket#send() but it does not work in browsers\n if (this.socket.readyState !== isomorphic_ws_1.default.OPEN) {\n throw new Error(\"Websocket is not open\");\n }\n if (environmentIsNodeJs()) {\n this.socket.send(data, (err) => (err ? reject(err) : resolve()));\n }\n else {\n // Browser websocket send method does not accept a callback\n this.socket.send(data);\n resolve();\n }\n });\n }\n /**\n * Clears the timeout function, such that no timeout error will be raised anymore. This should be\n * called when the connection is established, a connection error occurred or the socket is disconnected.\n *\n * This method must not be called before `connect()`.\n * This method is idempotent.\n */\n clearTimeout() {\n if (!this.timeoutId) {\n throw new Error(\"Timeout ID not set. This should not happen and usually means connect() was not called.\");\n }\n // Note: do not unset this.timeoutId to allow multiple calls to this function\n clearTimeout(this.timeoutId);\n }\n}\nexports.SocketWrapper = SocketWrapper;\n//# sourceMappingURL=socketwrapper.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StreamingSocket = void 0;\nconst xstream_1 = require(\"xstream\");\nconst socketwrapper_1 = require(\"./socketwrapper\");\n/**\n * A WebSocket wrapper that exposes all events as a stream.\n *\n * This underlying socket will not be closed when the stream has no listeners\n */\nclass StreamingSocket {\n constructor(url, timeout = 10000) {\n this.socket = new socketwrapper_1.SocketWrapper(url, (event) => {\n if (this.eventProducerListener) {\n this.eventProducerListener.next(event);\n }\n }, (errorEvent) => {\n if (this.eventProducerListener) {\n this.eventProducerListener.error(errorEvent);\n }\n }, () => {\n // socket opened\n }, (closeEvent) => {\n if (this.eventProducerListener) {\n if (closeEvent.wasClean) {\n this.eventProducerListener.complete();\n }\n else {\n this.eventProducerListener.error(\"Socket was closed unclean\");\n }\n }\n }, timeout);\n this.connected = this.socket.connected;\n const eventProducer = {\n start: (listener) => (this.eventProducerListener = listener),\n stop: () => (this.eventProducerListener = undefined),\n };\n this.events = xstream_1.Stream.create(eventProducer);\n }\n connect() {\n this.socket.connect();\n }\n disconnect() {\n this.socket.disconnect();\n }\n async send(data) {\n return this.socket.send(data);\n }\n}\nexports.StreamingSocket = StreamingSocket;\n//# sourceMappingURL=streamingsocket.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.accountFromAny = accountFromAny;\nconst math_1 = require(\"@cosmjs/math\");\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst auth_1 = require(\"cosmjs-types/cosmos/auth/v1beta1/auth\");\nconst vesting_1 = require(\"cosmjs-types/cosmos/vesting/v1beta1/vesting\");\nfunction uint64FromProto(input) {\n return math_1.Uint64.fromString(input.toString());\n}\nfunction accountFromBaseAccount(input) {\n const { address, pubKey, accountNumber, sequence } = input;\n const pubkey = (0, proto_signing_1.decodeOptionalPubkey)(pubKey);\n return {\n address: address,\n pubkey: pubkey,\n accountNumber: uint64FromProto(accountNumber).toNumber(),\n sequence: uint64FromProto(sequence).toNumber(),\n };\n}\n/**\n * Basic implementation of AccountParser. This is supposed to support the most relevant\n * common Cosmos SDK account types. If you need support for exotic account types,\n * you'll need to write your own account decoder.\n */\nfunction accountFromAny(input) {\n const { typeUrl, value } = input;\n switch (typeUrl) {\n // auth\n case \"/cosmos.auth.v1beta1.BaseAccount\":\n return accountFromBaseAccount(auth_1.BaseAccount.decode(value));\n case \"/cosmos.auth.v1beta1.ModuleAccount\": {\n const baseAccount = auth_1.ModuleAccount.decode(value).baseAccount;\n (0, utils_1.assert)(baseAccount);\n return accountFromBaseAccount(baseAccount);\n }\n // vesting\n case \"/cosmos.vesting.v1beta1.BaseVestingAccount\": {\n const baseAccount = vesting_1.BaseVestingAccount.decode(value)?.baseAccount;\n (0, utils_1.assert)(baseAccount);\n return accountFromBaseAccount(baseAccount);\n }\n case \"/cosmos.vesting.v1beta1.ContinuousVestingAccount\": {\n const baseAccount = vesting_1.ContinuousVestingAccount.decode(value)?.baseVestingAccount?.baseAccount;\n (0, utils_1.assert)(baseAccount);\n return accountFromBaseAccount(baseAccount);\n }\n case \"/cosmos.vesting.v1beta1.DelayedVestingAccount\": {\n const baseAccount = vesting_1.DelayedVestingAccount.decode(value)?.baseVestingAccount?.baseAccount;\n (0, utils_1.assert)(baseAccount);\n return accountFromBaseAccount(baseAccount);\n }\n case \"/cosmos.vesting.v1beta1.PeriodicVestingAccount\": {\n const baseAccount = vesting_1.PeriodicVestingAccount.decode(value)?.baseVestingAccount?.baseAccount;\n (0, utils_1.assert)(baseAccount);\n return accountFromBaseAccount(baseAccount);\n }\n default:\n throw new Error(`Unsupported type: '${typeUrl}'`);\n }\n}\n//# sourceMappingURL=accounts.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AminoTypes = void 0;\n/**\n * A map from Stargate message types as used in the messages's `Any` type\n * to Amino types.\n */\nclass AminoTypes {\n constructor(types) {\n this.register = types;\n }\n toAmino({ typeUrl, value }) {\n const converter = this.register[typeUrl];\n if (!converter) {\n throw new Error(`Type URL '${typeUrl}' does not exist in the Amino message type register. ` +\n \"If you need support for this message type, you can pass in additional entries to the AminoTypes constructor. \" +\n \"If you think this message type should be included by default, please open an issue at https://github.com/cosmos/cosmjs/issues.\");\n }\n return {\n type: converter.aminoType,\n value: converter.toAmino(value),\n };\n }\n fromAmino({ type, value }) {\n const matches = Object.entries(this.register).filter(([_typeUrl, { aminoType }]) => aminoType === type);\n switch (matches.length) {\n case 0: {\n throw new Error(`Amino type identifier '${type}' does not exist in the Amino message type register. ` +\n \"If you need support for this message type, you can pass in additional entries to the AminoTypes constructor. \" +\n \"If you think this message type should be included by default, please open an issue at https://github.com/cosmos/cosmjs/issues.\");\n }\n case 1: {\n const [typeUrl, converter] = matches[0];\n return {\n typeUrl: typeUrl,\n value: converter.fromAmino(value),\n };\n }\n default:\n throw new Error(`Multiple types are registered with Amino type identifier '${type}': '` +\n matches\n .map(([key, _value]) => key)\n .sort()\n .join(\"', '\") +\n \"'. Thus fromAmino cannot be performed.\");\n }\n }\n}\nexports.AminoTypes = AminoTypes;\n//# sourceMappingURL=aminotypes.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTendermintEvent = fromTendermintEvent;\nconst encoding_1 = require(\"@cosmjs/encoding\");\n/**\n * Takes a Tendermint 0.34 or 0.37 event with binary encoded key and value\n * and converts it into an `Event` with string attributes.\n */\nfunction fromTendermintEvent(event) {\n return {\n type: event.type,\n attributes: event.attributes.map((attr) => ({\n key: typeof attr.key == \"string\" ? attr.key : (0, encoding_1.fromUtf8)(attr.key, true),\n value: typeof attr.value == \"string\" ? attr.value : (0, encoding_1.fromUtf8)(attr.value, true),\n })),\n };\n}\n//# sourceMappingURL=events.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GasPrice = void 0;\nexports.calculateFee = calculateFee;\nconst math_1 = require(\"@cosmjs/math\");\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\n/**\n * Denom checker for the Cosmos SDK 0.42 denom pattern\n * (https://github.com/cosmos/cosmos-sdk/blob/v0.42.4/types/coin.go#L599-L601).\n *\n * This is like a regexp but with helpful error messages.\n */\nfunction checkDenom(denom) {\n if (denom.length < 3 || denom.length > 128) {\n throw new Error(\"Denom must be between 3 and 128 characters\");\n }\n}\n/**\n * A gas price, i.e. the price of a single unit of gas. This is typically a fraction of\n * the smallest fee token unit, such as 0.012utoken.\n */\nclass GasPrice {\n constructor(amount, denom) {\n this.amount = amount;\n this.denom = denom;\n }\n /**\n * Parses a gas price formatted as ``, e.g. `GasPrice.fromString(\"0.012utoken\")`.\n *\n * The denom must match the Cosmos SDK 0.42 pattern (https://github.com/cosmos/cosmos-sdk/blob/v0.42.4/types/coin.go#L599-L601).\n * See `GasPrice` in @cosmjs/stargate for a more generic matcher.\n *\n * Separators are not yet supported.\n */\n static fromString(gasPrice) {\n // Use Decimal.fromUserInput and checkDenom for detailed checks and helpful error messages\n const matchResult = gasPrice.match(/^([0-9.]+)([a-zA-Z][a-zA-Z0-9/:._-]*)$/);\n if (!matchResult) {\n throw new Error(\"Invalid gas price string\");\n }\n const [_, amount, denom] = matchResult;\n checkDenom(denom);\n const fractionalDigits = 18;\n const decimalAmount = math_1.Decimal.fromUserInput(amount, fractionalDigits);\n return new GasPrice(decimalAmount, denom);\n }\n /**\n * Returns a string representation of this gas price, e.g. \"0.025uatom\".\n * This can be used as an input to `GasPrice.fromString`.\n */\n toString() {\n return this.amount.toString() + this.denom;\n }\n}\nexports.GasPrice = GasPrice;\nfunction calculateFee(gasLimit, gasPrice) {\n const processedGasPrice = typeof gasPrice === \"string\" ? GasPrice.fromString(gasPrice) : gasPrice;\n const { denom, amount: gasPriceAmount } = processedGasPrice;\n // Note: Amount can exceed the safe integer range (https://github.com/cosmos/cosmjs/issues/1134),\n // which we handle by converting from Decimal to string without going through number.\n const amount = gasPriceAmount.multiply(new math_1.Uint53(gasLimit)).ceil().toString();\n return {\n amount: (0, proto_signing_1.coins)(amount, denom),\n gas: gasLimit.toString(),\n };\n}\n//# sourceMappingURL=fee.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isMsgVoteWeightedEncodeObject = exports.isMsgVoteEncodeObject = exports.isMsgUndelegateEncodeObject = exports.isMsgTransferEncodeObject = exports.isMsgSubmitProposalEncodeObject = exports.isMsgSendEncodeObject = exports.isMsgEditValidatorEncodeObject = exports.isMsgDepositEncodeObject = exports.isMsgDelegateEncodeObject = exports.isMsgCreateValidatorEncodeObject = exports.isMsgCancelUnbondingDelegationEncodeObject = exports.isMsgBeginRedelegateEncodeObject = exports.isAminoMsgWithdrawValidatorCommission = exports.isAminoMsgWithdrawDelegatorReward = exports.isAminoMsgVoteWeighted = exports.isAminoMsgVote = exports.isAminoMsgVerifyInvariant = exports.isAminoMsgUnjail = exports.isAminoMsgUndelegate = exports.isAminoMsgTransfer = exports.isAminoMsgSubmitProposal = exports.isAminoMsgSubmitEvidence = exports.isAminoMsgSetWithdrawAddress = exports.isAminoMsgSend = exports.isAminoMsgMultiSend = exports.isAminoMsgFundCommunityPool = exports.isAminoMsgEditValidator = exports.isAminoMsgDeposit = exports.isAminoMsgDelegate = exports.isAminoMsgCreateVestingAccount = exports.isAminoMsgCreateValidator = exports.isAminoMsgBeginRedelegate = exports.createVestingAminoConverters = exports.createStakingAminoConverters = exports.createSlashingAminoConverters = exports.createIbcAminoConverters = exports.createGroupAminoConverters = exports.createGovAminoConverters = exports.createFeegrantAminoConverters = exports.createEvidenceAminoConverters = exports.createDistributionAminoConverters = exports.createCrysisAminoConverters = exports.createBankAminoConverters = exports.createAuthzAminoConverters = exports.logs = exports.GasPrice = exports.calculateFee = exports.fromTendermintEvent = exports.AminoTypes = exports.accountFromAny = void 0;\nexports.parseCoins = exports.makeCosmoshubPath = exports.coins = exports.coin = exports.TimeoutError = exports.StargateClient = exports.isDeliverTxSuccess = exports.isDeliverTxFailure = exports.BroadcastTxError = exports.assertIsDeliverTxSuccess = exports.assertIsDeliverTxFailure = exports.SigningStargateClient = exports.defaultRegistryTypes = exports.createDefaultAminoConverters = exports.isSearchTxQueryArray = exports.QueryClient = exports.decodeCosmosSdkDecFromProto = exports.createProtobufRpcClient = exports.createPagination = exports.makeMultisignedTxBytes = exports.makeMultisignedTx = exports.setupTxExtension = exports.setupStakingExtension = exports.setupSlashingExtension = exports.setupMintExtension = exports.setupIbcExtension = exports.setupGovExtension = exports.setupFeegrantExtension = exports.setupDistributionExtension = exports.setupBankExtension = exports.setupAuthzExtension = exports.setupAuthExtension = exports.isMsgWithdrawDelegatorRewardEncodeObject = void 0;\nvar accounts_1 = require(\"./accounts\");\nObject.defineProperty(exports, \"accountFromAny\", { enumerable: true, get: function () { return accounts_1.accountFromAny; } });\nvar aminotypes_1 = require(\"./aminotypes\");\nObject.defineProperty(exports, \"AminoTypes\", { enumerable: true, get: function () { return aminotypes_1.AminoTypes; } });\nvar events_1 = require(\"./events\");\nObject.defineProperty(exports, \"fromTendermintEvent\", { enumerable: true, get: function () { return events_1.fromTendermintEvent; } });\nvar fee_1 = require(\"./fee\");\nObject.defineProperty(exports, \"calculateFee\", { enumerable: true, get: function () { return fee_1.calculateFee; } });\nObject.defineProperty(exports, \"GasPrice\", { enumerable: true, get: function () { return fee_1.GasPrice; } });\nexports.logs = __importStar(require(\"./logs\"));\nvar modules_1 = require(\"./modules\");\nObject.defineProperty(exports, \"createAuthzAminoConverters\", { enumerable: true, get: function () { return modules_1.createAuthzAminoConverters; } });\nObject.defineProperty(exports, \"createBankAminoConverters\", { enumerable: true, get: function () { return modules_1.createBankAminoConverters; } });\nObject.defineProperty(exports, \"createCrysisAminoConverters\", { enumerable: true, get: function () { return modules_1.createCrysisAminoConverters; } });\nObject.defineProperty(exports, \"createDistributionAminoConverters\", { enumerable: true, get: function () { return modules_1.createDistributionAminoConverters; } });\nObject.defineProperty(exports, \"createEvidenceAminoConverters\", { enumerable: true, get: function () { return modules_1.createEvidenceAminoConverters; } });\nObject.defineProperty(exports, \"createFeegrantAminoConverters\", { enumerable: true, get: function () { return modules_1.createFeegrantAminoConverters; } });\nObject.defineProperty(exports, \"createGovAminoConverters\", { enumerable: true, get: function () { return modules_1.createGovAminoConverters; } });\nObject.defineProperty(exports, \"createGroupAminoConverters\", { enumerable: true, get: function () { return modules_1.createGroupAminoConverters; } });\nObject.defineProperty(exports, \"createIbcAminoConverters\", { enumerable: true, get: function () { return modules_1.createIbcAminoConverters; } });\nObject.defineProperty(exports, \"createSlashingAminoConverters\", { enumerable: true, get: function () { return modules_1.createSlashingAminoConverters; } });\nObject.defineProperty(exports, \"createStakingAminoConverters\", { enumerable: true, get: function () { return modules_1.createStakingAminoConverters; } });\nObject.defineProperty(exports, \"createVestingAminoConverters\", { enumerable: true, get: function () { return modules_1.createVestingAminoConverters; } });\nObject.defineProperty(exports, \"isAminoMsgBeginRedelegate\", { enumerable: true, get: function () { return modules_1.isAminoMsgBeginRedelegate; } });\nObject.defineProperty(exports, \"isAminoMsgCreateValidator\", { enumerable: true, get: function () { return modules_1.isAminoMsgCreateValidator; } });\nObject.defineProperty(exports, \"isAminoMsgCreateVestingAccount\", { enumerable: true, get: function () { return modules_1.isAminoMsgCreateVestingAccount; } });\nObject.defineProperty(exports, \"isAminoMsgDelegate\", { enumerable: true, get: function () { return modules_1.isAminoMsgDelegate; } });\nObject.defineProperty(exports, \"isAminoMsgDeposit\", { enumerable: true, get: function () { return modules_1.isAminoMsgDeposit; } });\nObject.defineProperty(exports, \"isAminoMsgEditValidator\", { enumerable: true, get: function () { return modules_1.isAminoMsgEditValidator; } });\nObject.defineProperty(exports, \"isAminoMsgFundCommunityPool\", { enumerable: true, get: function () { return modules_1.isAminoMsgFundCommunityPool; } });\nObject.defineProperty(exports, \"isAminoMsgMultiSend\", { enumerable: true, get: function () { return modules_1.isAminoMsgMultiSend; } });\nObject.defineProperty(exports, \"isAminoMsgSend\", { enumerable: true, get: function () { return modules_1.isAminoMsgSend; } });\nObject.defineProperty(exports, \"isAminoMsgSetWithdrawAddress\", { enumerable: true, get: function () { return modules_1.isAminoMsgSetWithdrawAddress; } });\nObject.defineProperty(exports, \"isAminoMsgSubmitEvidence\", { enumerable: true, get: function () { return modules_1.isAminoMsgSubmitEvidence; } });\nObject.defineProperty(exports, \"isAminoMsgSubmitProposal\", { enumerable: true, get: function () { return modules_1.isAminoMsgSubmitProposal; } });\nObject.defineProperty(exports, \"isAminoMsgTransfer\", { enumerable: true, get: function () { return modules_1.isAminoMsgTransfer; } });\nObject.defineProperty(exports, \"isAminoMsgUndelegate\", { enumerable: true, get: function () { return modules_1.isAminoMsgUndelegate; } });\nObject.defineProperty(exports, \"isAminoMsgUnjail\", { enumerable: true, get: function () { return modules_1.isAminoMsgUnjail; } });\nObject.defineProperty(exports, \"isAminoMsgVerifyInvariant\", { enumerable: true, get: function () { return modules_1.isAminoMsgVerifyInvariant; } });\nObject.defineProperty(exports, \"isAminoMsgVote\", { enumerable: true, get: function () { return modules_1.isAminoMsgVote; } });\nObject.defineProperty(exports, \"isAminoMsgVoteWeighted\", { enumerable: true, get: function () { return modules_1.isAminoMsgVoteWeighted; } });\nObject.defineProperty(exports, \"isAminoMsgWithdrawDelegatorReward\", { enumerable: true, get: function () { return modules_1.isAminoMsgWithdrawDelegatorReward; } });\nObject.defineProperty(exports, \"isAminoMsgWithdrawValidatorCommission\", { enumerable: true, get: function () { return modules_1.isAminoMsgWithdrawValidatorCommission; } });\nObject.defineProperty(exports, \"isMsgBeginRedelegateEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgBeginRedelegateEncodeObject; } });\nObject.defineProperty(exports, \"isMsgCancelUnbondingDelegationEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgCancelUnbondingDelegationEncodeObject; } });\nObject.defineProperty(exports, \"isMsgCreateValidatorEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgCreateValidatorEncodeObject; } });\nObject.defineProperty(exports, \"isMsgDelegateEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgDelegateEncodeObject; } });\nObject.defineProperty(exports, \"isMsgDepositEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgDepositEncodeObject; } });\nObject.defineProperty(exports, \"isMsgEditValidatorEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgEditValidatorEncodeObject; } });\nObject.defineProperty(exports, \"isMsgSendEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgSendEncodeObject; } });\nObject.defineProperty(exports, \"isMsgSubmitProposalEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgSubmitProposalEncodeObject; } });\nObject.defineProperty(exports, \"isMsgTransferEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgTransferEncodeObject; } });\nObject.defineProperty(exports, \"isMsgUndelegateEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgUndelegateEncodeObject; } });\nObject.defineProperty(exports, \"isMsgVoteEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgVoteEncodeObject; } });\nObject.defineProperty(exports, \"isMsgVoteWeightedEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgVoteWeightedEncodeObject; } });\nObject.defineProperty(exports, \"isMsgWithdrawDelegatorRewardEncodeObject\", { enumerable: true, get: function () { return modules_1.isMsgWithdrawDelegatorRewardEncodeObject; } });\nObject.defineProperty(exports, \"setupAuthExtension\", { enumerable: true, get: function () { return modules_1.setupAuthExtension; } });\nObject.defineProperty(exports, \"setupAuthzExtension\", { enumerable: true, get: function () { return modules_1.setupAuthzExtension; } });\nObject.defineProperty(exports, \"setupBankExtension\", { enumerable: true, get: function () { return modules_1.setupBankExtension; } });\nObject.defineProperty(exports, \"setupDistributionExtension\", { enumerable: true, get: function () { return modules_1.setupDistributionExtension; } });\nObject.defineProperty(exports, \"setupFeegrantExtension\", { enumerable: true, get: function () { return modules_1.setupFeegrantExtension; } });\nObject.defineProperty(exports, \"setupGovExtension\", { enumerable: true, get: function () { return modules_1.setupGovExtension; } });\nObject.defineProperty(exports, \"setupIbcExtension\", { enumerable: true, get: function () { return modules_1.setupIbcExtension; } });\nObject.defineProperty(exports, \"setupMintExtension\", { enumerable: true, get: function () { return modules_1.setupMintExtension; } });\nObject.defineProperty(exports, \"setupSlashingExtension\", { enumerable: true, get: function () { return modules_1.setupSlashingExtension; } });\nObject.defineProperty(exports, \"setupStakingExtension\", { enumerable: true, get: function () { return modules_1.setupStakingExtension; } });\nObject.defineProperty(exports, \"setupTxExtension\", { enumerable: true, get: function () { return modules_1.setupTxExtension; } });\nvar multisignature_1 = require(\"./multisignature\");\nObject.defineProperty(exports, \"makeMultisignedTx\", { enumerable: true, get: function () { return multisignature_1.makeMultisignedTx; } });\nObject.defineProperty(exports, \"makeMultisignedTxBytes\", { enumerable: true, get: function () { return multisignature_1.makeMultisignedTxBytes; } });\nvar queryclient_1 = require(\"./queryclient\");\nObject.defineProperty(exports, \"createPagination\", { enumerable: true, get: function () { return queryclient_1.createPagination; } });\nObject.defineProperty(exports, \"createProtobufRpcClient\", { enumerable: true, get: function () { return queryclient_1.createProtobufRpcClient; } });\nObject.defineProperty(exports, \"decodeCosmosSdkDecFromProto\", { enumerable: true, get: function () { return queryclient_1.decodeCosmosSdkDecFromProto; } });\nObject.defineProperty(exports, \"QueryClient\", { enumerable: true, get: function () { return queryclient_1.QueryClient; } });\nvar search_1 = require(\"./search\");\nObject.defineProperty(exports, \"isSearchTxQueryArray\", { enumerable: true, get: function () { return search_1.isSearchTxQueryArray; } });\nvar signingstargateclient_1 = require(\"./signingstargateclient\");\nObject.defineProperty(exports, \"createDefaultAminoConverters\", { enumerable: true, get: function () { return signingstargateclient_1.createDefaultAminoConverters; } });\nObject.defineProperty(exports, \"defaultRegistryTypes\", { enumerable: true, get: function () { return signingstargateclient_1.defaultRegistryTypes; } });\nObject.defineProperty(exports, \"SigningStargateClient\", { enumerable: true, get: function () { return signingstargateclient_1.SigningStargateClient; } });\nvar stargateclient_1 = require(\"./stargateclient\");\nObject.defineProperty(exports, \"assertIsDeliverTxFailure\", { enumerable: true, get: function () { return stargateclient_1.assertIsDeliverTxFailure; } });\nObject.defineProperty(exports, \"assertIsDeliverTxSuccess\", { enumerable: true, get: function () { return stargateclient_1.assertIsDeliverTxSuccess; } });\nObject.defineProperty(exports, \"BroadcastTxError\", { enumerable: true, get: function () { return stargateclient_1.BroadcastTxError; } });\nObject.defineProperty(exports, \"isDeliverTxFailure\", { enumerable: true, get: function () { return stargateclient_1.isDeliverTxFailure; } });\nObject.defineProperty(exports, \"isDeliverTxSuccess\", { enumerable: true, get: function () { return stargateclient_1.isDeliverTxSuccess; } });\nObject.defineProperty(exports, \"StargateClient\", { enumerable: true, get: function () { return stargateclient_1.StargateClient; } });\nObject.defineProperty(exports, \"TimeoutError\", { enumerable: true, get: function () { return stargateclient_1.TimeoutError; } });\nvar proto_signing_1 = require(\"@cosmjs/proto-signing\");\nObject.defineProperty(exports, \"coin\", { enumerable: true, get: function () { return proto_signing_1.coin; } });\nObject.defineProperty(exports, \"coins\", { enumerable: true, get: function () { return proto_signing_1.coins; } });\nObject.defineProperty(exports, \"makeCosmoshubPath\", { enumerable: true, get: function () { return proto_signing_1.makeCosmoshubPath; } });\nObject.defineProperty(exports, \"parseCoins\", { enumerable: true, get: function () { return proto_signing_1.parseCoins; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseAttribute = parseAttribute;\nexports.parseEvent = parseEvent;\nexports.parseLog = parseLog;\nexports.parseLogs = parseLogs;\nexports.parseRawLog = parseRawLog;\nexports.findAttribute = findAttribute;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst utils_1 = require(\"@cosmjs/utils\");\nfunction parseAttribute(input) {\n if (!(0, utils_1.isNonNullObject)(input))\n throw new Error(\"Attribute must be a non-null object\");\n const { key, value } = input;\n if (typeof key !== \"string\" || !key)\n throw new Error(\"Attribute's key must be a non-empty string\");\n if (typeof value !== \"string\" && typeof value !== \"undefined\") {\n throw new Error(\"Attribute's value must be a string or unset\");\n }\n return {\n key: key,\n value: value || \"\",\n };\n}\nfunction parseEvent(input) {\n if (!(0, utils_1.isNonNullObject)(input))\n throw new Error(\"Event must be a non-null object\");\n const { type, attributes } = input;\n if (typeof type !== \"string\" || type === \"\") {\n throw new Error(`Event type must be a non-empty string`);\n }\n if (!Array.isArray(attributes))\n throw new Error(\"Event's attributes must be an array\");\n return {\n type: type,\n attributes: attributes.map(parseAttribute),\n };\n}\nfunction parseLog(input) {\n if (!(0, utils_1.isNonNullObject)(input))\n throw new Error(\"Log must be a non-null object\");\n const { msg_index, log, events } = input;\n if (typeof msg_index !== \"number\")\n throw new Error(\"Log's msg_index must be a number\");\n if (typeof log !== \"string\")\n throw new Error(\"Log's log must be a string\");\n if (!Array.isArray(events))\n throw new Error(\"Log's events must be an array\");\n return {\n msg_index: msg_index,\n log: log,\n events: events.map(parseEvent),\n };\n}\nfunction parseLogs(input) {\n if (!Array.isArray(input))\n throw new Error(\"Logs must be an array\");\n return input.map(parseLog);\n}\nfunction parseRawLog(input) {\n // Cosmos SDK >= 0.50 gives us an empty string here. This should be handled like undefined.\n if (!input)\n return [];\n const logsToParse = JSON.parse(input).map(({ events }, i) => ({\n msg_index: i,\n events,\n log: \"\",\n }));\n return parseLogs(logsToParse);\n}\n/**\n * Searches in logs for the first event of the given event type and in that event\n * for the first first attribute with the given attribute key.\n *\n * Throws if the attribute was not found.\n */\nfunction findAttribute(logs, eventType, attrKey) {\n const firstLogs = logs.find(() => true);\n const out = firstLogs?.events\n .find((event) => event.type === eventType)\n ?.attributes.find((attr) => attr.key === attrKey);\n if (!out) {\n throw new Error(`Could not find attribute '${attrKey}' in first event of type '${eventType}' in first log.`);\n }\n return out;\n}\n//# sourceMappingURL=logs.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupAuthExtension = setupAuthExtension;\nconst query_1 = require(\"cosmjs-types/cosmos/auth/v1beta1/query\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction setupAuthExtension(base) {\n const rpc = (0, queryclient_1.createProtobufRpcClient)(base);\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n auth: {\n account: async (address) => {\n const { account } = await queryService.Account({ address: address });\n return account ?? null;\n },\n },\n };\n}\n//# sourceMappingURL=queries.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createAuthzAminoConverters = createAuthzAminoConverters;\nfunction createAuthzAminoConverters() {\n return {\n // For Cosmos SDK < 0.46 the Amino JSON codec was broken on chain and thus inaccessible.\n // Now this can be implemented for 0.46+ chains, see\n // https://github.com/cosmos/cosmjs/issues/1092\n //\n // \"/cosmos.authz.v1beta1.MsgGrant\": IMPLEMENT ME,\n // \"/cosmos.authz.v1beta1.MsgExec\": IMPLEMENT ME,\n // \"/cosmos.authz.v1beta1.MsgRevoke\": IMPLEMENT ME,\n };\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.authzTypes = void 0;\nconst tx_1 = require(\"cosmjs-types/cosmos/authz/v1beta1/tx\");\nexports.authzTypes = [\n [\"/cosmos.authz.v1beta1.MsgExec\", tx_1.MsgExec],\n [\"/cosmos.authz.v1beta1.MsgGrant\", tx_1.MsgGrant],\n [\"/cosmos.authz.v1beta1.MsgRevoke\", tx_1.MsgRevoke],\n];\n//# sourceMappingURL=messages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupAuthzExtension = setupAuthzExtension;\nconst query_1 = require(\"cosmjs-types/cosmos/authz/v1beta1/query\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction setupAuthzExtension(base) {\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const rpc = (0, queryclient_1.createProtobufRpcClient)(base);\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n authz: {\n grants: async (granter, grantee, msgTypeUrl, paginationKey) => {\n return await queryService.Grants({\n granter: granter,\n grantee: grantee,\n msgTypeUrl: msgTypeUrl,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n },\n granteeGrants: async (grantee, paginationKey) => {\n return await queryService.GranteeGrants({\n grantee: grantee,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n },\n granterGrants: async (granter, paginationKey) => {\n return await queryService.GranterGrants({\n granter: granter,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n },\n },\n };\n}\n//# sourceMappingURL=queries.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAminoMsgSend = isAminoMsgSend;\nexports.isAminoMsgMultiSend = isAminoMsgMultiSend;\nexports.createBankAminoConverters = createBankAminoConverters;\nfunction isAminoMsgSend(msg) {\n return msg.type === \"cosmos-sdk/MsgSend\";\n}\nfunction isAminoMsgMultiSend(msg) {\n return msg.type === \"cosmos-sdk/MsgMultiSend\";\n}\nfunction createBankAminoConverters() {\n return {\n \"/cosmos.bank.v1beta1.MsgSend\": {\n aminoType: \"cosmos-sdk/MsgSend\",\n toAmino: ({ fromAddress, toAddress, amount }) => ({\n from_address: fromAddress,\n to_address: toAddress,\n amount: [...amount],\n }),\n fromAmino: ({ from_address, to_address, amount }) => ({\n fromAddress: from_address,\n toAddress: to_address,\n amount: [...amount],\n }),\n },\n \"/cosmos.bank.v1beta1.MsgMultiSend\": {\n aminoType: \"cosmos-sdk/MsgMultiSend\",\n toAmino: ({ inputs, outputs }) => ({\n inputs: inputs.map((input) => ({\n address: input.address,\n coins: [...input.coins],\n })),\n outputs: outputs.map((output) => ({\n address: output.address,\n coins: [...output.coins],\n })),\n }),\n fromAmino: ({ inputs, outputs }) => ({\n inputs: inputs.map((input) => ({\n address: input.address,\n coins: [...input.coins],\n })),\n outputs: outputs.map((output) => ({\n address: output.address,\n coins: [...output.coins],\n })),\n }),\n },\n };\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bankTypes = void 0;\nexports.isMsgSendEncodeObject = isMsgSendEncodeObject;\nconst tx_1 = require(\"cosmjs-types/cosmos/bank/v1beta1/tx\");\nexports.bankTypes = [\n [\"/cosmos.bank.v1beta1.MsgMultiSend\", tx_1.MsgMultiSend],\n [\"/cosmos.bank.v1beta1.MsgSend\", tx_1.MsgSend],\n];\nfunction isMsgSendEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmos.bank.v1beta1.MsgSend\";\n}\n//# sourceMappingURL=messages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupBankExtension = setupBankExtension;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst utils_1 = require(\"@cosmjs/utils\");\nconst query_1 = require(\"cosmjs-types/cosmos/bank/v1beta1/query\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction setupBankExtension(base) {\n const rpc = (0, queryclient_1.createProtobufRpcClient)(base);\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n bank: {\n balance: async (address, denom) => {\n const { balance } = await queryService.Balance({ address: address, denom: denom });\n (0, utils_1.assert)(balance);\n return balance;\n },\n allBalances: async (address) => {\n const { balances } = await queryService.AllBalances(query_1.QueryAllBalancesRequest.fromPartial({ address: address }));\n return balances;\n },\n totalSupply: async (paginationKey) => {\n const response = await queryService.TotalSupply({\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n supplyOf: async (denom) => {\n const { amount } = await queryService.SupplyOf({ denom: denom });\n (0, utils_1.assert)(amount);\n return amount;\n },\n denomMetadata: async (denom) => {\n const { metadata } = await queryService.DenomMetadata({ denom });\n (0, utils_1.assert)(metadata);\n return metadata;\n },\n denomsMetadata: async () => {\n const { metadatas } = await queryService.DenomsMetadata(query_1.QueryDenomsMetadataRequest.fromPartial({\n pagination: undefined, // Not implemented\n }));\n return metadatas;\n },\n },\n };\n}\n//# sourceMappingURL=queries.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAminoMsgVerifyInvariant = isAminoMsgVerifyInvariant;\nexports.createCrysisAminoConverters = createCrysisAminoConverters;\nfunction isAminoMsgVerifyInvariant(msg) {\n return msg.type === \"cosmos-sdk/MsgVerifyInvariant\";\n}\nfunction createCrysisAminoConverters() {\n throw new Error(\"Not implemented\");\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAminoMsgSetWithdrawAddress = isAminoMsgSetWithdrawAddress;\nexports.isAminoMsgWithdrawDelegatorReward = isAminoMsgWithdrawDelegatorReward;\nexports.isAminoMsgWithdrawValidatorCommission = isAminoMsgWithdrawValidatorCommission;\nexports.isAminoMsgFundCommunityPool = isAminoMsgFundCommunityPool;\nexports.createDistributionAminoConverters = createDistributionAminoConverters;\nfunction isAminoMsgSetWithdrawAddress(msg) {\n // NOTE: Type string and names diverge here!\n return msg.type === \"cosmos-sdk/MsgModifyWithdrawAddress\";\n}\nfunction isAminoMsgWithdrawDelegatorReward(msg) {\n // NOTE: Type string and names diverge here!\n return msg.type === \"cosmos-sdk/MsgWithdrawDelegationReward\";\n}\nfunction isAminoMsgWithdrawValidatorCommission(msg) {\n return msg.type === \"cosmos-sdk/MsgWithdrawValidatorCommission\";\n}\nfunction isAminoMsgFundCommunityPool(msg) {\n return msg.type === \"cosmos-sdk/MsgFundCommunityPool\";\n}\nfunction createDistributionAminoConverters() {\n return {\n \"/cosmos.distribution.v1beta1.MsgFundCommunityPool\": {\n aminoType: \"cosmos-sdk/MsgFundCommunityPool\",\n toAmino: ({ amount, depositor }) => ({\n amount: [...amount],\n depositor: depositor,\n }),\n fromAmino: ({ amount, depositor }) => ({\n amount: [...amount],\n depositor: depositor,\n }),\n },\n \"/cosmos.distribution.v1beta1.MsgSetWithdrawAddress\": {\n aminoType: \"cosmos-sdk/MsgModifyWithdrawAddress\",\n toAmino: ({ delegatorAddress, withdrawAddress, }) => ({\n delegator_address: delegatorAddress,\n withdraw_address: withdrawAddress,\n }),\n fromAmino: ({ delegator_address, withdraw_address, }) => ({\n delegatorAddress: delegator_address,\n withdrawAddress: withdraw_address,\n }),\n },\n \"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward\": {\n aminoType: \"cosmos-sdk/MsgWithdrawDelegationReward\",\n toAmino: ({ delegatorAddress, validatorAddress, }) => ({\n delegator_address: delegatorAddress,\n validator_address: validatorAddress,\n }),\n fromAmino: ({ delegator_address, validator_address, }) => ({\n delegatorAddress: delegator_address,\n validatorAddress: validator_address,\n }),\n },\n \"/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission\": {\n aminoType: \"cosmos-sdk/MsgWithdrawValidatorCommission\",\n toAmino: ({ validatorAddress, }) => ({\n validator_address: validatorAddress,\n }),\n fromAmino: ({ validator_address, }) => ({\n validatorAddress: validator_address,\n }),\n },\n };\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.distributionTypes = void 0;\nexports.isMsgWithdrawDelegatorRewardEncodeObject = isMsgWithdrawDelegatorRewardEncodeObject;\nconst tx_1 = require(\"cosmjs-types/cosmos/distribution/v1beta1/tx\");\nexports.distributionTypes = [\n [\"/cosmos.distribution.v1beta1.MsgFundCommunityPool\", tx_1.MsgFundCommunityPool],\n [\"/cosmos.distribution.v1beta1.MsgSetWithdrawAddress\", tx_1.MsgSetWithdrawAddress],\n [\"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward\", tx_1.MsgWithdrawDelegatorReward],\n [\"/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission\", tx_1.MsgWithdrawValidatorCommission],\n];\nfunction isMsgWithdrawDelegatorRewardEncodeObject(object) {\n return (object.typeUrl ===\n \"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward\");\n}\n//# sourceMappingURL=messages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupDistributionExtension = setupDistributionExtension;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst query_1 = require(\"cosmjs-types/cosmos/distribution/v1beta1/query\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction setupDistributionExtension(base) {\n const rpc = (0, queryclient_1.createProtobufRpcClient)(base);\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n distribution: {\n communityPool: async () => {\n const response = await queryService.CommunityPool({});\n return response;\n },\n delegationRewards: async (delegatorAddress, validatorAddress) => {\n const response = await queryService.DelegationRewards({\n delegatorAddress: delegatorAddress,\n validatorAddress: validatorAddress,\n });\n return response;\n },\n delegationTotalRewards: async (delegatorAddress) => {\n const response = await queryService.DelegationTotalRewards({\n delegatorAddress: delegatorAddress,\n });\n return response;\n },\n delegatorValidators: async (delegatorAddress) => {\n const response = await queryService.DelegatorValidators({\n delegatorAddress: delegatorAddress,\n });\n return response;\n },\n delegatorWithdrawAddress: async (delegatorAddress) => {\n const response = await queryService.DelegatorWithdrawAddress({\n delegatorAddress: delegatorAddress,\n });\n return response;\n },\n params: async () => {\n const response = await queryService.Params({});\n return response;\n },\n validatorCommission: async (validatorAddress) => {\n const response = await queryService.ValidatorCommission({\n validatorAddress: validatorAddress,\n });\n return response;\n },\n validatorOutstandingRewards: async (validatorAddress) => {\n const response = await queryService.ValidatorOutstandingRewards({\n validatorAddress: validatorAddress,\n });\n return response;\n },\n validatorSlashes: async (validatorAddress, startingHeight, endingHeight, paginationKey) => {\n const response = await queryService.ValidatorSlashes({\n validatorAddress: validatorAddress,\n startingHeight: BigInt(startingHeight),\n endingHeight: BigInt(endingHeight),\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n },\n };\n}\n//# sourceMappingURL=queries.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAminoMsgSubmitEvidence = isAminoMsgSubmitEvidence;\nexports.createEvidenceAminoConverters = createEvidenceAminoConverters;\nfunction isAminoMsgSubmitEvidence(msg) {\n return msg.type === \"cosmos-sdk/MsgSubmitEvidence\";\n}\nfunction createEvidenceAminoConverters() {\n throw new Error(\"Not implemented\");\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createFeegrantAminoConverters = createFeegrantAminoConverters;\nfunction createFeegrantAminoConverters() {\n return {\n // For Cosmos SDK < 0.46 the Amino JSON codec was broken on chain and thus inaccessible.\n // Now this can be implemented for 0.46+ chains, see\n // https://github.com/cosmos/cosmjs/issues/1092\n //\n // \"/cosmos.feegrant.v1beta1.MsgGrantAllowance\": IMPLEMENT_ME,\n // \"/cosmos.feegrant.v1beta1.MsgRevokeAllowance\": IMPLEMENT_ME,\n };\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.feegrantTypes = void 0;\nconst tx_1 = require(\"cosmjs-types/cosmos/feegrant/v1beta1/tx\");\nexports.feegrantTypes = [\n [\"/cosmos.feegrant.v1beta1.MsgGrantAllowance\", tx_1.MsgGrantAllowance],\n [\"/cosmos.feegrant.v1beta1.MsgRevokeAllowance\", tx_1.MsgRevokeAllowance],\n];\n//# sourceMappingURL=messages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupFeegrantExtension = setupFeegrantExtension;\nconst query_1 = require(\"cosmjs-types/cosmos/feegrant/v1beta1/query\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction setupFeegrantExtension(base) {\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const rpc = (0, queryclient_1.createProtobufRpcClient)(base);\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n feegrant: {\n allowance: async (granter, grantee) => {\n const response = await queryService.Allowance({\n granter: granter,\n grantee: grantee,\n });\n return response;\n },\n allowances: async (grantee, paginationKey) => {\n const response = await queryService.Allowances({\n grantee: grantee,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n },\n };\n}\n//# sourceMappingURL=queries.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAminoMsgSubmitProposal = isAminoMsgSubmitProposal;\nexports.isAminoMsgVote = isAminoMsgVote;\nexports.isAminoMsgVoteWeighted = isAminoMsgVoteWeighted;\nexports.isAminoMsgDeposit = isAminoMsgDeposit;\nexports.createGovAminoConverters = createGovAminoConverters;\nconst math_1 = require(\"@cosmjs/math\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst gov_1 = require(\"cosmjs-types/cosmos/gov/v1beta1/gov\");\nconst any_1 = require(\"cosmjs-types/google/protobuf/any\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction isAminoMsgSubmitProposal(msg) {\n return msg.type === \"cosmos-sdk/MsgSubmitProposal\";\n}\nfunction isAminoMsgVote(msg) {\n return msg.type === \"cosmos-sdk/MsgVote\";\n}\nfunction isAminoMsgVoteWeighted(msg) {\n return msg.type === \"cosmos-sdk/MsgVoteWeighted\";\n}\nfunction isAminoMsgDeposit(msg) {\n return msg.type === \"cosmos-sdk/MsgDeposit\";\n}\nfunction createGovAminoConverters() {\n // Gov v1 types missing, see\n // https://github.com/cosmos/cosmjs/issues/1442\n return {\n \"/cosmos.gov.v1beta1.MsgDeposit\": {\n aminoType: \"cosmos-sdk/MsgDeposit\",\n toAmino: ({ amount, depositor, proposalId }) => {\n return {\n amount,\n depositor,\n proposal_id: proposalId.toString(),\n };\n },\n fromAmino: ({ amount, depositor, proposal_id }) => {\n return {\n amount: Array.from(amount),\n depositor,\n proposalId: BigInt(proposal_id),\n };\n },\n },\n \"/cosmos.gov.v1beta1.MsgVote\": {\n aminoType: \"cosmos-sdk/MsgVote\",\n toAmino: ({ option, proposalId, voter }) => {\n return {\n option: option,\n proposal_id: proposalId.toString(),\n voter: voter,\n };\n },\n fromAmino: ({ option, proposal_id, voter }) => {\n return {\n option: (0, gov_1.voteOptionFromJSON)(option),\n proposalId: BigInt(proposal_id),\n voter: voter,\n };\n },\n },\n \"/cosmos.gov.v1beta1.MsgVoteWeighted\": {\n aminoType: \"cosmos-sdk/MsgVoteWeighted\",\n toAmino: ({ options, proposalId, voter }) => {\n return {\n options: options.map((o) => ({\n option: o.option,\n // Weight is between 0 and 1, so we always have 20 characters when printing all trailing\n // zeros (e.g. \"0.700000000000000000\" or \"1.000000000000000000\")\n weight: (0, queryclient_1.decodeCosmosSdkDecFromProto)(o.weight).toString().padEnd(20, \"0\"),\n })),\n proposal_id: proposalId.toString(),\n voter: voter,\n };\n },\n fromAmino: ({ options, proposal_id, voter }) => {\n return {\n proposalId: BigInt(proposal_id),\n voter: voter,\n options: options.map((o) => ({\n option: (0, gov_1.voteOptionFromJSON)(o.option),\n weight: math_1.Decimal.fromUserInput(o.weight, 18).atomics,\n })),\n };\n },\n },\n \"/cosmos.gov.v1beta1.MsgSubmitProposal\": {\n aminoType: \"cosmos-sdk/MsgSubmitProposal\",\n toAmino: ({ initialDeposit, proposer, content, }) => {\n (0, utils_1.assertDefinedAndNotNull)(content);\n let proposal;\n switch (content.typeUrl) {\n case \"/cosmos.gov.v1beta1.TextProposal\": {\n const textProposal = gov_1.TextProposal.decode(content.value);\n proposal = {\n type: \"cosmos-sdk/TextProposal\",\n value: {\n description: textProposal.description,\n title: textProposal.title,\n },\n };\n break;\n }\n default:\n throw new Error(`Unsupported proposal type: '${content.typeUrl}'`);\n }\n return {\n initial_deposit: initialDeposit,\n proposer: proposer,\n content: proposal,\n };\n },\n fromAmino: ({ initial_deposit, proposer, content, }) => {\n let any_content;\n switch (content.type) {\n case \"cosmos-sdk/TextProposal\": {\n const { value } = content;\n (0, utils_1.assert)((0, utils_1.isNonNullObject)(value));\n const { title, description } = value;\n (0, utils_1.assert)(typeof title === \"string\");\n (0, utils_1.assert)(typeof description === \"string\");\n any_content = any_1.Any.fromPartial({\n typeUrl: \"/cosmos.gov.v1beta1.TextProposal\",\n value: gov_1.TextProposal.encode(gov_1.TextProposal.fromPartial({\n title: title,\n description: description,\n })).finish(),\n });\n break;\n }\n default:\n throw new Error(`Unsupported proposal type: '${content.type}'`);\n }\n return {\n initialDeposit: Array.from(initial_deposit),\n proposer: proposer,\n content: any_content,\n };\n },\n },\n };\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.govTypes = void 0;\nexports.isMsgDepositEncodeObject = isMsgDepositEncodeObject;\nexports.isMsgSubmitProposalEncodeObject = isMsgSubmitProposalEncodeObject;\nexports.isMsgVoteEncodeObject = isMsgVoteEncodeObject;\nexports.isMsgVoteWeightedEncodeObject = isMsgVoteWeightedEncodeObject;\nconst tx_1 = require(\"cosmjs-types/cosmos/gov/v1/tx\");\nconst tx_2 = require(\"cosmjs-types/cosmos/gov/v1beta1/tx\");\nexports.govTypes = [\n [\"/cosmos.gov.v1.MsgDeposit\", tx_1.MsgDeposit],\n [\"/cosmos.gov.v1.MsgSubmitProposal\", tx_1.MsgSubmitProposal],\n [\"/cosmos.gov.v1.MsgUpdateParams\", tx_1.MsgUpdateParams],\n [\"/cosmos.gov.v1.MsgVote\", tx_1.MsgVote],\n [\"/cosmos.gov.v1.MsgVoteWeighted\", tx_1.MsgVoteWeighted],\n [\"/cosmos.gov.v1beta1.MsgDeposit\", tx_2.MsgDeposit],\n [\"/cosmos.gov.v1beta1.MsgSubmitProposal\", tx_2.MsgSubmitProposal],\n [\"/cosmos.gov.v1beta1.MsgVote\", tx_2.MsgVote],\n [\"/cosmos.gov.v1beta1.MsgVoteWeighted\", tx_2.MsgVoteWeighted],\n];\nfunction isMsgDepositEncodeObject(object) {\n return object.typeUrl === \"/cosmos.gov.v1beta1.MsgDeposit\";\n}\nfunction isMsgSubmitProposalEncodeObject(object) {\n return object.typeUrl === \"/cosmos.gov.v1beta1.MsgSubmitProposal\";\n}\nfunction isMsgVoteEncodeObject(object) {\n return object.typeUrl === \"/cosmos.gov.v1beta1.MsgVote\";\n}\nfunction isMsgVoteWeightedEncodeObject(object) {\n return object.typeUrl === \"/cosmos.gov.v1beta1.MsgVoteWeighted\";\n}\n//# sourceMappingURL=messages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupGovExtension = setupGovExtension;\nconst query_1 = require(\"cosmjs-types/cosmos/gov/v1beta1/query\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction setupGovExtension(base) {\n const rpc = (0, queryclient_1.createProtobufRpcClient)(base);\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n gov: {\n params: async (parametersType) => {\n const response = await queryService.Params({ paramsType: parametersType });\n return response;\n },\n proposals: async (proposalStatus, depositorAddress, voterAddress, paginationKey) => {\n const response = await queryService.Proposals({\n proposalStatus,\n depositor: depositorAddress,\n voter: voterAddress,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n proposal: async (proposalId) => {\n const response = await queryService.Proposal({ proposalId: (0, queryclient_1.longify)(proposalId) });\n return response;\n },\n deposits: async (proposalId, paginationKey) => {\n const response = await queryService.Deposits({\n proposalId: (0, queryclient_1.longify)(proposalId),\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n deposit: async (proposalId, depositorAddress) => {\n const response = await queryService.Deposit({\n proposalId: (0, queryclient_1.longify)(proposalId),\n depositor: depositorAddress,\n });\n return response;\n },\n tally: async (proposalId) => {\n const response = await queryService.TallyResult({\n proposalId: (0, queryclient_1.longify)(proposalId),\n });\n return response;\n },\n votes: async (proposalId, paginationKey) => {\n const response = await queryService.Votes({\n proposalId: (0, queryclient_1.longify)(proposalId),\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n vote: async (proposalId, voterAddress) => {\n const response = await queryService.Vote({\n proposalId: (0, queryclient_1.longify)(proposalId),\n voter: voterAddress,\n });\n return response;\n },\n },\n };\n}\n//# sourceMappingURL=queries.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createGroupAminoConverters = createGroupAminoConverters;\nfunction createGroupAminoConverters() {\n // Missing, see https://github.com/cosmos/cosmjs/issues/1441\n return {};\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.groupTypes = void 0;\nconst tx_1 = require(\"cosmjs-types/cosmos/group/v1/tx\");\nexports.groupTypes = [\n [\"/cosmos.group.v1.MsgCreateGroup\", tx_1.MsgCreateGroup],\n [\"/cosmos.group.v1.MsgCreateGroupPolicy\", tx_1.MsgCreateGroupPolicy],\n [\"/cosmos.group.v1.MsgCreateGroupWithPolicy\", tx_1.MsgCreateGroupWithPolicy],\n [\"/cosmos.group.v1.MsgExec\", tx_1.MsgExec],\n [\"/cosmos.group.v1.MsgLeaveGroup\", tx_1.MsgLeaveGroup],\n [\"/cosmos.group.v1.MsgSubmitProposal\", tx_1.MsgSubmitProposal],\n [\"/cosmos.group.v1.MsgUpdateGroupAdmin\", tx_1.MsgUpdateGroupAdmin],\n [\"/cosmos.group.v1.MsgUpdateGroupMembers\", tx_1.MsgUpdateGroupMembers],\n [\"/cosmos.group.v1.MsgUpdateGroupMetadata\", tx_1.MsgUpdateGroupMetadata],\n [\"/cosmos.group.v1.MsgUpdateGroupPolicyAdmin\", tx_1.MsgUpdateGroupPolicyAdmin],\n [\"/cosmos.group.v1.MsgUpdateGroupPolicyDecisionPolicy\", tx_1.MsgUpdateGroupPolicyDecisionPolicy],\n [\"/cosmos.group.v1.MsgUpdateGroupPolicyMetadata\", tx_1.MsgUpdateGroupPolicyMetadata],\n [\"/cosmos.group.v1.MsgVote\", tx_1.MsgVote],\n [\"/cosmos.group.v1.MsgWithdrawProposal\", tx_1.MsgWithdrawProposal],\n];\n// There are no EncodeObject implementations for the new v1 message types because\n// those things don't scale (https://github.com/cosmos/cosmjs/issues/1440). We need to\n// address this more fundamentally. Users can use\n// const msg = {\n// typeUrl: \"/cosmos.group.v1.MsgCreateGroup\",\n// value: MsgCreateGroup.fromPartial({ ... })\n// }\n// in their app.\n//# sourceMappingURL=messages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAminoMsgTransfer = isAminoMsgTransfer;\nexports.createIbcAminoConverters = createIbcAminoConverters;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst amino_1 = require(\"@cosmjs/amino\");\nconst tx_1 = require(\"cosmjs-types/ibc/applications/transfer/v1/tx\");\nfunction isAminoMsgTransfer(msg) {\n return msg.type === \"cosmos-sdk/MsgTransfer\";\n}\nfunction createIbcAminoConverters() {\n return {\n \"/ibc.applications.transfer.v1.MsgTransfer\": {\n aminoType: \"cosmos-sdk/MsgTransfer\",\n toAmino: ({ sourcePort, sourceChannel, token, sender, receiver, timeoutHeight, timeoutTimestamp, memo, }) => ({\n source_port: sourcePort,\n source_channel: sourceChannel,\n token: token,\n sender: sender,\n receiver: receiver,\n timeout_height: timeoutHeight\n ? {\n revision_height: (0, amino_1.omitDefault)(timeoutHeight.revisionHeight)?.toString(),\n revision_number: (0, amino_1.omitDefault)(timeoutHeight.revisionNumber)?.toString(),\n }\n : {},\n timeout_timestamp: (0, amino_1.omitDefault)(timeoutTimestamp)?.toString(),\n memo: (0, amino_1.omitDefault)(memo),\n }),\n fromAmino: ({ source_port, source_channel, token, sender, receiver, timeout_height, timeout_timestamp, memo, }) => tx_1.MsgTransfer.fromPartial({\n sourcePort: source_port,\n sourceChannel: source_channel,\n token: token,\n sender: sender,\n receiver: receiver,\n timeoutHeight: timeout_height\n ? {\n revisionHeight: BigInt(timeout_height.revision_height || \"0\"),\n revisionNumber: BigInt(timeout_height.revision_number || \"0\"),\n }\n : undefined,\n timeoutTimestamp: BigInt(timeout_timestamp || \"0\"),\n memo: memo ?? \"\",\n }),\n },\n };\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ibcTypes = void 0;\nexports.isMsgTransferEncodeObject = isMsgTransferEncodeObject;\nconst tx_1 = require(\"cosmjs-types/ibc/applications/transfer/v1/tx\");\nconst tx_2 = require(\"cosmjs-types/ibc/core/channel/v1/tx\");\nconst tx_3 = require(\"cosmjs-types/ibc/core/client/v1/tx\");\nconst tx_4 = require(\"cosmjs-types/ibc/core/connection/v1/tx\");\nexports.ibcTypes = [\n [\"/ibc.applications.transfer.v1.MsgTransfer\", tx_1.MsgTransfer],\n [\"/ibc.core.channel.v1.MsgAcknowledgement\", tx_2.MsgAcknowledgement],\n [\"/ibc.core.channel.v1.MsgChannelCloseConfirm\", tx_2.MsgChannelCloseConfirm],\n [\"/ibc.core.channel.v1.MsgChannelCloseInit\", tx_2.MsgChannelCloseInit],\n [\"/ibc.core.channel.v1.MsgChannelOpenAck\", tx_2.MsgChannelOpenAck],\n [\"/ibc.core.channel.v1.MsgChannelOpenConfirm\", tx_2.MsgChannelOpenConfirm],\n [\"/ibc.core.channel.v1.MsgChannelOpenInit\", tx_2.MsgChannelOpenInit],\n [\"/ibc.core.channel.v1.MsgChannelOpenTry\", tx_2.MsgChannelOpenTry],\n [\"/ibc.core.channel.v1.MsgRecvPacket\", tx_2.MsgRecvPacket],\n [\"/ibc.core.channel.v1.MsgTimeout\", tx_2.MsgTimeout],\n [\"/ibc.core.channel.v1.MsgTimeoutOnClose\", tx_2.MsgTimeoutOnClose],\n [\"/ibc.core.client.v1.MsgCreateClient\", tx_3.MsgCreateClient],\n [\"/ibc.core.client.v1.MsgSubmitMisbehaviour\", tx_3.MsgSubmitMisbehaviour],\n [\"/ibc.core.client.v1.MsgUpdateClient\", tx_3.MsgUpdateClient],\n [\"/ibc.core.client.v1.MsgUpgradeClient\", tx_3.MsgUpgradeClient],\n [\"/ibc.core.connection.v1.MsgConnectionOpenAck\", tx_4.MsgConnectionOpenAck],\n [\"/ibc.core.connection.v1.MsgConnectionOpenConfirm\", tx_4.MsgConnectionOpenConfirm],\n [\"/ibc.core.connection.v1.MsgConnectionOpenInit\", tx_4.MsgConnectionOpenInit],\n [\"/ibc.core.connection.v1.MsgConnectionOpenTry\", tx_4.MsgConnectionOpenTry],\n];\nfunction isMsgTransferEncodeObject(object) {\n return object.typeUrl === \"/ibc.applications.transfer.v1.MsgTransfer\";\n}\n//# sourceMappingURL=messages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupIbcExtension = setupIbcExtension;\nconst query_1 = require(\"cosmjs-types/ibc/applications/transfer/v1/query\");\nconst query_2 = require(\"cosmjs-types/ibc/core/channel/v1/query\");\nconst query_3 = require(\"cosmjs-types/ibc/core/client/v1/query\");\nconst query_4 = require(\"cosmjs-types/ibc/core/connection/v1/query\");\nconst tendermint_1 = require(\"cosmjs-types/ibc/lightclients/tendermint/v1/tendermint\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction decodeTendermintClientStateAny(clientState) {\n if (clientState?.typeUrl !== \"/ibc.lightclients.tendermint.v1.ClientState\") {\n throw new Error(`Unexpected client state type: ${clientState?.typeUrl}`);\n }\n return tendermint_1.ClientState.decode(clientState.value);\n}\nfunction decodeTendermintConsensusStateAny(clientState) {\n if (clientState?.typeUrl !== \"/ibc.lightclients.tendermint.v1.ConsensusState\") {\n throw new Error(`Unexpected client state type: ${clientState?.typeUrl}`);\n }\n return tendermint_1.ConsensusState.decode(clientState.value);\n}\nfunction setupIbcExtension(base) {\n const rpc = (0, queryclient_1.createProtobufRpcClient)(base);\n // Use these services to get easy typed access to query methods\n // These cannot be used for proof verification\n const channelQueryService = new query_2.QueryClientImpl(rpc);\n const clientQueryService = new query_3.QueryClientImpl(rpc);\n const connectionQueryService = new query_4.QueryClientImpl(rpc);\n const transferQueryService = new query_1.QueryClientImpl(rpc);\n return {\n ibc: {\n channel: {\n channel: async (portId, channelId) => channelQueryService.Channel({\n portId: portId,\n channelId: channelId,\n }),\n channels: async (paginationKey) => channelQueryService.Channels({\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n }),\n allChannels: async () => {\n const channels = [];\n let response;\n let key;\n do {\n response = await channelQueryService.Channels({\n pagination: (0, queryclient_1.createPagination)(key),\n });\n channels.push(...response.channels);\n key = response.pagination?.nextKey;\n } while (key && key.length);\n return query_2.QueryChannelsResponse.fromPartial({\n channels: channels,\n height: response.height,\n });\n },\n connectionChannels: async (connection, paginationKey) => channelQueryService.ConnectionChannels({\n connection: connection,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n }),\n allConnectionChannels: async (connection) => {\n const channels = [];\n let response;\n let key;\n do {\n response = await channelQueryService.ConnectionChannels({\n connection: connection,\n pagination: (0, queryclient_1.createPagination)(key),\n });\n channels.push(...response.channels);\n key = response.pagination?.nextKey;\n } while (key && key.length);\n return query_2.QueryConnectionChannelsResponse.fromPartial({\n channels: channels,\n height: response.height,\n });\n },\n clientState: async (portId, channelId) => channelQueryService.ChannelClientState({\n portId: portId,\n channelId: channelId,\n }),\n consensusState: async (portId, channelId, revisionNumber, revisionHeight) => channelQueryService.ChannelConsensusState({\n portId: portId,\n channelId: channelId,\n revisionNumber: BigInt(revisionNumber),\n revisionHeight: BigInt(revisionHeight),\n }),\n packetCommitment: async (portId, channelId, sequence) => channelQueryService.PacketCommitment({\n portId: portId,\n channelId: channelId,\n sequence: (0, queryclient_1.longify)(sequence),\n }),\n packetCommitments: async (portId, channelId, paginationKey) => channelQueryService.PacketCommitments({\n channelId: channelId,\n portId: portId,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n }),\n allPacketCommitments: async (portId, channelId) => {\n const commitments = [];\n let response;\n let key;\n do {\n response = await channelQueryService.PacketCommitments({\n channelId: channelId,\n portId: portId,\n pagination: (0, queryclient_1.createPagination)(key),\n });\n commitments.push(...response.commitments);\n key = response.pagination?.nextKey;\n } while (key && key.length);\n return query_2.QueryPacketCommitmentsResponse.fromPartial({\n commitments: commitments,\n height: response.height,\n });\n },\n packetReceipt: async (portId, channelId, sequence) => channelQueryService.PacketReceipt({\n portId: portId,\n channelId: channelId,\n sequence: (0, queryclient_1.longify)(sequence),\n }),\n packetAcknowledgement: async (portId, channelId, sequence) => channelQueryService.PacketAcknowledgement({\n portId: portId,\n channelId: channelId,\n sequence: (0, queryclient_1.longify)(sequence),\n }),\n packetAcknowledgements: async (portId, channelId, paginationKey) => {\n const request = query_2.QueryPacketAcknowledgementsRequest.fromPartial({\n portId: portId,\n channelId: channelId,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return channelQueryService.PacketAcknowledgements(request);\n },\n allPacketAcknowledgements: async (portId, channelId) => {\n const acknowledgements = [];\n let response;\n let key;\n do {\n const request = query_2.QueryPacketAcknowledgementsRequest.fromPartial({\n channelId: channelId,\n portId: portId,\n pagination: (0, queryclient_1.createPagination)(key),\n });\n response = await channelQueryService.PacketAcknowledgements(request);\n acknowledgements.push(...response.acknowledgements);\n key = response.pagination?.nextKey;\n } while (key && key.length);\n return query_2.QueryPacketAcknowledgementsResponse.fromPartial({\n acknowledgements: acknowledgements,\n height: response.height,\n });\n },\n unreceivedPackets: async (portId, channelId, packetCommitmentSequences) => channelQueryService.UnreceivedPackets({\n portId: portId,\n channelId: channelId,\n packetCommitmentSequences: packetCommitmentSequences.map((s) => BigInt(s)),\n }),\n unreceivedAcks: async (portId, channelId, packetAckSequences) => channelQueryService.UnreceivedAcks({\n portId: portId,\n channelId: channelId,\n packetAckSequences: packetAckSequences.map((s) => BigInt(s)),\n }),\n nextSequenceReceive: async (portId, channelId) => channelQueryService.NextSequenceReceive({\n portId: portId,\n channelId: channelId,\n }),\n },\n client: {\n state: async (clientId) => clientQueryService.ClientState({ clientId }),\n states: async (paginationKey) => clientQueryService.ClientStates({\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n }),\n allStates: async () => {\n const clientStates = [];\n let response;\n let key;\n do {\n response = await clientQueryService.ClientStates({\n pagination: (0, queryclient_1.createPagination)(key),\n });\n clientStates.push(...response.clientStates);\n key = response.pagination?.nextKey;\n } while (key && key.length);\n return query_3.QueryClientStatesResponse.fromPartial({\n clientStates: clientStates,\n });\n },\n consensusState: async (clientId, consensusHeight) => clientQueryService.ConsensusState(query_3.QueryConsensusStateRequest.fromPartial({\n clientId: clientId,\n revisionHeight: consensusHeight !== undefined ? BigInt(consensusHeight) : undefined,\n latestHeight: consensusHeight === undefined,\n })),\n consensusStates: async (clientId, paginationKey) => clientQueryService.ConsensusStates({\n clientId: clientId,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n }),\n allConsensusStates: async (clientId) => {\n const consensusStates = [];\n let response;\n let key;\n do {\n response = await clientQueryService.ConsensusStates({\n clientId: clientId,\n pagination: (0, queryclient_1.createPagination)(key),\n });\n consensusStates.push(...response.consensusStates);\n key = response.pagination?.nextKey;\n } while (key && key.length);\n return query_3.QueryConsensusStatesResponse.fromPartial({\n consensusStates: consensusStates,\n });\n },\n params: async () => clientQueryService.ClientParams({}),\n stateTm: async (clientId) => {\n const response = await clientQueryService.ClientState({ clientId });\n return decodeTendermintClientStateAny(response.clientState);\n },\n statesTm: async (paginationKey) => {\n const { clientStates } = await clientQueryService.ClientStates({\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return clientStates.map(({ clientState }) => decodeTendermintClientStateAny(clientState));\n },\n allStatesTm: async () => {\n const clientStates = [];\n let response;\n let key;\n do {\n response = await clientQueryService.ClientStates({\n pagination: (0, queryclient_1.createPagination)(key),\n });\n clientStates.push(...response.clientStates);\n key = response.pagination?.nextKey;\n } while (key && key.length);\n return clientStates.map(({ clientState }) => decodeTendermintClientStateAny(clientState));\n },\n consensusStateTm: async (clientId, consensusHeight) => {\n const response = await clientQueryService.ConsensusState(query_3.QueryConsensusStateRequest.fromPartial({\n clientId: clientId,\n revisionHeight: consensusHeight?.revisionHeight,\n revisionNumber: consensusHeight?.revisionNumber,\n latestHeight: consensusHeight === undefined,\n }));\n return decodeTendermintConsensusStateAny(response.consensusState);\n },\n },\n connection: {\n connection: async (connectionId) => connectionQueryService.Connection({\n connectionId: connectionId,\n }),\n connections: async (paginationKey) => connectionQueryService.Connections({\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n }),\n allConnections: async () => {\n const connections = [];\n let response;\n let key;\n do {\n response = await connectionQueryService.Connections({\n pagination: (0, queryclient_1.createPagination)(key),\n });\n connections.push(...response.connections);\n key = response.pagination?.nextKey;\n } while (key && key.length);\n return query_4.QueryConnectionsResponse.fromPartial({\n connections: connections,\n height: response.height,\n });\n },\n clientConnections: async (clientId) => connectionQueryService.ClientConnections({\n clientId: clientId,\n }),\n clientState: async (connectionId) => connectionQueryService.ConnectionClientState({\n connectionId: connectionId,\n }),\n consensusState: async (connectionId, revisionHeight) => connectionQueryService.ConnectionConsensusState(query_4.QueryConnectionConsensusStateRequest.fromPartial({\n connectionId: connectionId,\n revisionHeight: BigInt(revisionHeight),\n })),\n },\n transfer: {\n denomTrace: async (hash) => transferQueryService.DenomTrace({ hash: hash }),\n denomTraces: async (paginationKey) => transferQueryService.DenomTraces({\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n }),\n allDenomTraces: async () => {\n const denomTraces = [];\n let response;\n let key;\n do {\n response = await transferQueryService.DenomTraces({\n pagination: (0, queryclient_1.createPagination)(key),\n });\n denomTraces.push(...response.denomTraces);\n key = response.pagination?.nextKey;\n } while (key && key.length);\n return query_1.QueryDenomTracesResponse.fromPartial({\n denomTraces: denomTraces,\n });\n },\n params: async () => transferQueryService.Params({}),\n },\n },\n };\n}\n//# sourceMappingURL=queries.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAminoMsgCreateValidator = exports.isAminoMsgBeginRedelegate = exports.createStakingAminoConverters = exports.setupSlashingExtension = exports.isAminoMsgUnjail = exports.createSlashingAminoConverters = exports.setupMintExtension = exports.setupIbcExtension = exports.isMsgTransferEncodeObject = exports.ibcTypes = exports.isAminoMsgTransfer = exports.createIbcAminoConverters = exports.groupTypes = exports.createGroupAminoConverters = exports.setupGovExtension = exports.isMsgVoteWeightedEncodeObject = exports.isMsgVoteEncodeObject = exports.isMsgSubmitProposalEncodeObject = exports.isMsgDepositEncodeObject = exports.govTypes = exports.isAminoMsgVoteWeighted = exports.isAminoMsgVote = exports.isAminoMsgSubmitProposal = exports.isAminoMsgDeposit = exports.createGovAminoConverters = exports.setupFeegrantExtension = exports.feegrantTypes = exports.createFeegrantAminoConverters = exports.isAminoMsgSubmitEvidence = exports.createEvidenceAminoConverters = exports.setupDistributionExtension = exports.isMsgWithdrawDelegatorRewardEncodeObject = exports.distributionTypes = exports.isAminoMsgWithdrawValidatorCommission = exports.isAminoMsgWithdrawDelegatorReward = exports.isAminoMsgSetWithdrawAddress = exports.isAminoMsgFundCommunityPool = exports.createDistributionAminoConverters = exports.isAminoMsgVerifyInvariant = exports.createCrysisAminoConverters = exports.setupBankExtension = exports.isMsgSendEncodeObject = exports.bankTypes = exports.isAminoMsgSend = exports.isAminoMsgMultiSend = exports.createBankAminoConverters = exports.setupAuthzExtension = exports.authzTypes = exports.createAuthzAminoConverters = exports.setupAuthExtension = void 0;\nexports.vestingTypes = exports.isAminoMsgCreateVestingAccount = exports.createVestingAminoConverters = exports.setupTxExtension = exports.setupStakingExtension = exports.stakingTypes = exports.isMsgUndelegateEncodeObject = exports.isMsgEditValidatorEncodeObject = exports.isMsgDelegateEncodeObject = exports.isMsgCreateValidatorEncodeObject = exports.isMsgCancelUnbondingDelegationEncodeObject = exports.isMsgBeginRedelegateEncodeObject = exports.isAminoMsgUndelegate = exports.isAminoMsgEditValidator = exports.isAminoMsgDelegate = void 0;\nvar queries_1 = require(\"./auth/queries\");\nObject.defineProperty(exports, \"setupAuthExtension\", { enumerable: true, get: function () { return queries_1.setupAuthExtension; } });\nvar aminomessages_1 = require(\"./authz/aminomessages\");\nObject.defineProperty(exports, \"createAuthzAminoConverters\", { enumerable: true, get: function () { return aminomessages_1.createAuthzAminoConverters; } });\nvar messages_1 = require(\"./authz/messages\");\nObject.defineProperty(exports, \"authzTypes\", { enumerable: true, get: function () { return messages_1.authzTypes; } });\nvar queries_2 = require(\"./authz/queries\");\nObject.defineProperty(exports, \"setupAuthzExtension\", { enumerable: true, get: function () { return queries_2.setupAuthzExtension; } });\nvar aminomessages_2 = require(\"./bank/aminomessages\");\nObject.defineProperty(exports, \"createBankAminoConverters\", { enumerable: true, get: function () { return aminomessages_2.createBankAminoConverters; } });\nObject.defineProperty(exports, \"isAminoMsgMultiSend\", { enumerable: true, get: function () { return aminomessages_2.isAminoMsgMultiSend; } });\nObject.defineProperty(exports, \"isAminoMsgSend\", { enumerable: true, get: function () { return aminomessages_2.isAminoMsgSend; } });\nvar messages_2 = require(\"./bank/messages\");\nObject.defineProperty(exports, \"bankTypes\", { enumerable: true, get: function () { return messages_2.bankTypes; } });\nObject.defineProperty(exports, \"isMsgSendEncodeObject\", { enumerable: true, get: function () { return messages_2.isMsgSendEncodeObject; } });\nvar queries_3 = require(\"./bank/queries\");\nObject.defineProperty(exports, \"setupBankExtension\", { enumerable: true, get: function () { return queries_3.setupBankExtension; } });\nvar aminomessages_3 = require(\"./crisis/aminomessages\");\nObject.defineProperty(exports, \"createCrysisAminoConverters\", { enumerable: true, get: function () { return aminomessages_3.createCrysisAminoConverters; } });\nObject.defineProperty(exports, \"isAminoMsgVerifyInvariant\", { enumerable: true, get: function () { return aminomessages_3.isAminoMsgVerifyInvariant; } });\nvar aminomessages_4 = require(\"./distribution/aminomessages\");\nObject.defineProperty(exports, \"createDistributionAminoConverters\", { enumerable: true, get: function () { return aminomessages_4.createDistributionAminoConverters; } });\nObject.defineProperty(exports, \"isAminoMsgFundCommunityPool\", { enumerable: true, get: function () { return aminomessages_4.isAminoMsgFundCommunityPool; } });\nObject.defineProperty(exports, \"isAminoMsgSetWithdrawAddress\", { enumerable: true, get: function () { return aminomessages_4.isAminoMsgSetWithdrawAddress; } });\nObject.defineProperty(exports, \"isAminoMsgWithdrawDelegatorReward\", { enumerable: true, get: function () { return aminomessages_4.isAminoMsgWithdrawDelegatorReward; } });\nObject.defineProperty(exports, \"isAminoMsgWithdrawValidatorCommission\", { enumerable: true, get: function () { return aminomessages_4.isAminoMsgWithdrawValidatorCommission; } });\nvar messages_3 = require(\"./distribution/messages\");\nObject.defineProperty(exports, \"distributionTypes\", { enumerable: true, get: function () { return messages_3.distributionTypes; } });\nObject.defineProperty(exports, \"isMsgWithdrawDelegatorRewardEncodeObject\", { enumerable: true, get: function () { return messages_3.isMsgWithdrawDelegatorRewardEncodeObject; } });\nvar queries_4 = require(\"./distribution/queries\");\nObject.defineProperty(exports, \"setupDistributionExtension\", { enumerable: true, get: function () { return queries_4.setupDistributionExtension; } });\nvar aminomessages_5 = require(\"./evidence/aminomessages\");\nObject.defineProperty(exports, \"createEvidenceAminoConverters\", { enumerable: true, get: function () { return aminomessages_5.createEvidenceAminoConverters; } });\nObject.defineProperty(exports, \"isAminoMsgSubmitEvidence\", { enumerable: true, get: function () { return aminomessages_5.isAminoMsgSubmitEvidence; } });\nvar aminomessages_6 = require(\"./feegrant/aminomessages\");\nObject.defineProperty(exports, \"createFeegrantAminoConverters\", { enumerable: true, get: function () { return aminomessages_6.createFeegrantAminoConverters; } });\nvar messages_4 = require(\"./feegrant/messages\");\nObject.defineProperty(exports, \"feegrantTypes\", { enumerable: true, get: function () { return messages_4.feegrantTypes; } });\nvar queries_5 = require(\"./feegrant/queries\");\nObject.defineProperty(exports, \"setupFeegrantExtension\", { enumerable: true, get: function () { return queries_5.setupFeegrantExtension; } });\nvar aminomessages_7 = require(\"./gov/aminomessages\");\nObject.defineProperty(exports, \"createGovAminoConverters\", { enumerable: true, get: function () { return aminomessages_7.createGovAminoConverters; } });\nObject.defineProperty(exports, \"isAminoMsgDeposit\", { enumerable: true, get: function () { return aminomessages_7.isAminoMsgDeposit; } });\nObject.defineProperty(exports, \"isAminoMsgSubmitProposal\", { enumerable: true, get: function () { return aminomessages_7.isAminoMsgSubmitProposal; } });\nObject.defineProperty(exports, \"isAminoMsgVote\", { enumerable: true, get: function () { return aminomessages_7.isAminoMsgVote; } });\nObject.defineProperty(exports, \"isAminoMsgVoteWeighted\", { enumerable: true, get: function () { return aminomessages_7.isAminoMsgVoteWeighted; } });\nvar messages_5 = require(\"./gov/messages\");\nObject.defineProperty(exports, \"govTypes\", { enumerable: true, get: function () { return messages_5.govTypes; } });\nObject.defineProperty(exports, \"isMsgDepositEncodeObject\", { enumerable: true, get: function () { return messages_5.isMsgDepositEncodeObject; } });\nObject.defineProperty(exports, \"isMsgSubmitProposalEncodeObject\", { enumerable: true, get: function () { return messages_5.isMsgSubmitProposalEncodeObject; } });\nObject.defineProperty(exports, \"isMsgVoteEncodeObject\", { enumerable: true, get: function () { return messages_5.isMsgVoteEncodeObject; } });\nObject.defineProperty(exports, \"isMsgVoteWeightedEncodeObject\", { enumerable: true, get: function () { return messages_5.isMsgVoteWeightedEncodeObject; } });\nvar queries_6 = require(\"./gov/queries\");\nObject.defineProperty(exports, \"setupGovExtension\", { enumerable: true, get: function () { return queries_6.setupGovExtension; } });\nvar aminomessages_8 = require(\"./group/aminomessages\");\nObject.defineProperty(exports, \"createGroupAminoConverters\", { enumerable: true, get: function () { return aminomessages_8.createGroupAminoConverters; } });\nvar messages_6 = require(\"./group/messages\");\nObject.defineProperty(exports, \"groupTypes\", { enumerable: true, get: function () { return messages_6.groupTypes; } });\nvar aminomessages_9 = require(\"./ibc/aminomessages\");\nObject.defineProperty(exports, \"createIbcAminoConverters\", { enumerable: true, get: function () { return aminomessages_9.createIbcAminoConverters; } });\nObject.defineProperty(exports, \"isAminoMsgTransfer\", { enumerable: true, get: function () { return aminomessages_9.isAminoMsgTransfer; } });\nvar messages_7 = require(\"./ibc/messages\");\nObject.defineProperty(exports, \"ibcTypes\", { enumerable: true, get: function () { return messages_7.ibcTypes; } });\nObject.defineProperty(exports, \"isMsgTransferEncodeObject\", { enumerable: true, get: function () { return messages_7.isMsgTransferEncodeObject; } });\nvar queries_7 = require(\"./ibc/queries\");\nObject.defineProperty(exports, \"setupIbcExtension\", { enumerable: true, get: function () { return queries_7.setupIbcExtension; } });\nvar queries_8 = require(\"./mint/queries\");\nObject.defineProperty(exports, \"setupMintExtension\", { enumerable: true, get: function () { return queries_8.setupMintExtension; } });\nvar aminomessages_10 = require(\"./slashing/aminomessages\");\nObject.defineProperty(exports, \"createSlashingAminoConverters\", { enumerable: true, get: function () { return aminomessages_10.createSlashingAminoConverters; } });\nObject.defineProperty(exports, \"isAminoMsgUnjail\", { enumerable: true, get: function () { return aminomessages_10.isAminoMsgUnjail; } });\nvar queries_9 = require(\"./slashing/queries\");\nObject.defineProperty(exports, \"setupSlashingExtension\", { enumerable: true, get: function () { return queries_9.setupSlashingExtension; } });\nvar aminomessages_11 = require(\"./staking/aminomessages\");\nObject.defineProperty(exports, \"createStakingAminoConverters\", { enumerable: true, get: function () { return aminomessages_11.createStakingAminoConverters; } });\nObject.defineProperty(exports, \"isAminoMsgBeginRedelegate\", { enumerable: true, get: function () { return aminomessages_11.isAminoMsgBeginRedelegate; } });\nObject.defineProperty(exports, \"isAminoMsgCreateValidator\", { enumerable: true, get: function () { return aminomessages_11.isAminoMsgCreateValidator; } });\nObject.defineProperty(exports, \"isAminoMsgDelegate\", { enumerable: true, get: function () { return aminomessages_11.isAminoMsgDelegate; } });\nObject.defineProperty(exports, \"isAminoMsgEditValidator\", { enumerable: true, get: function () { return aminomessages_11.isAminoMsgEditValidator; } });\nObject.defineProperty(exports, \"isAminoMsgUndelegate\", { enumerable: true, get: function () { return aminomessages_11.isAminoMsgUndelegate; } });\nvar messages_8 = require(\"./staking/messages\");\nObject.defineProperty(exports, \"isMsgBeginRedelegateEncodeObject\", { enumerable: true, get: function () { return messages_8.isMsgBeginRedelegateEncodeObject; } });\nObject.defineProperty(exports, \"isMsgCancelUnbondingDelegationEncodeObject\", { enumerable: true, get: function () { return messages_8.isMsgCancelUnbondingDelegationEncodeObject; } });\nObject.defineProperty(exports, \"isMsgCreateValidatorEncodeObject\", { enumerable: true, get: function () { return messages_8.isMsgCreateValidatorEncodeObject; } });\nObject.defineProperty(exports, \"isMsgDelegateEncodeObject\", { enumerable: true, get: function () { return messages_8.isMsgDelegateEncodeObject; } });\nObject.defineProperty(exports, \"isMsgEditValidatorEncodeObject\", { enumerable: true, get: function () { return messages_8.isMsgEditValidatorEncodeObject; } });\nObject.defineProperty(exports, \"isMsgUndelegateEncodeObject\", { enumerable: true, get: function () { return messages_8.isMsgUndelegateEncodeObject; } });\nObject.defineProperty(exports, \"stakingTypes\", { enumerable: true, get: function () { return messages_8.stakingTypes; } });\nvar queries_10 = require(\"./staking/queries\");\nObject.defineProperty(exports, \"setupStakingExtension\", { enumerable: true, get: function () { return queries_10.setupStakingExtension; } });\nvar queries_11 = require(\"./tx/queries\");\nObject.defineProperty(exports, \"setupTxExtension\", { enumerable: true, get: function () { return queries_11.setupTxExtension; } });\nvar aminomessages_12 = require(\"./vesting/aminomessages\");\nObject.defineProperty(exports, \"createVestingAminoConverters\", { enumerable: true, get: function () { return aminomessages_12.createVestingAminoConverters; } });\nObject.defineProperty(exports, \"isAminoMsgCreateVestingAccount\", { enumerable: true, get: function () { return aminomessages_12.isAminoMsgCreateVestingAccount; } });\nvar messages_9 = require(\"./vesting/messages\");\nObject.defineProperty(exports, \"vestingTypes\", { enumerable: true, get: function () { return messages_9.vestingTypes; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupMintExtension = setupMintExtension;\nconst utils_1 = require(\"@cosmjs/utils\");\nconst query_1 = require(\"cosmjs-types/cosmos/mint/v1beta1/query\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction setupMintExtension(base) {\n const rpc = (0, queryclient_1.createProtobufRpcClient)(base);\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n mint: {\n params: async () => {\n const { params } = await queryService.Params({});\n (0, utils_1.assert)(params);\n return {\n blocksPerYear: params.blocksPerYear,\n goalBonded: (0, queryclient_1.decodeCosmosSdkDecFromProto)(params.goalBonded),\n inflationMin: (0, queryclient_1.decodeCosmosSdkDecFromProto)(params.inflationMin),\n inflationMax: (0, queryclient_1.decodeCosmosSdkDecFromProto)(params.inflationMax),\n inflationRateChange: (0, queryclient_1.decodeCosmosSdkDecFromProto)(params.inflationRateChange),\n mintDenom: params.mintDenom,\n };\n },\n inflation: async () => {\n const { inflation } = await queryService.Inflation({});\n return (0, queryclient_1.decodeCosmosSdkDecFromProto)(inflation);\n },\n annualProvisions: async () => {\n const { annualProvisions } = await queryService.AnnualProvisions({});\n return (0, queryclient_1.decodeCosmosSdkDecFromProto)(annualProvisions);\n },\n },\n };\n}\n//# sourceMappingURL=queries.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAminoMsgUnjail = isAminoMsgUnjail;\nexports.createSlashingAminoConverters = createSlashingAminoConverters;\nfunction isAminoMsgUnjail(msg) {\n return msg.type === \"cosmos-sdk/MsgUnjail\";\n}\nfunction createSlashingAminoConverters() {\n throw new Error(\"Not implemented\");\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupSlashingExtension = setupSlashingExtension;\nconst query_1 = require(\"cosmjs-types/cosmos/slashing/v1beta1/query\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction setupSlashingExtension(base) {\n const rpc = (0, queryclient_1.createProtobufRpcClient)(base);\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n slashing: {\n signingInfo: async (consAddress) => {\n const response = await queryService.SigningInfo({\n consAddress: consAddress,\n });\n return response;\n },\n signingInfos: async (paginationKey) => {\n const response = await queryService.SigningInfos({\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n params: async () => {\n const response = await queryService.Params({});\n return response;\n },\n },\n };\n}\n//# sourceMappingURL=queries.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.protoDecimalToJson = protoDecimalToJson;\nexports.isAminoMsgCreateValidator = isAminoMsgCreateValidator;\nexports.isAminoMsgEditValidator = isAminoMsgEditValidator;\nexports.isAminoMsgDelegate = isAminoMsgDelegate;\nexports.isAminoMsgBeginRedelegate = isAminoMsgBeginRedelegate;\nexports.isAminoMsgUndelegate = isAminoMsgUndelegate;\nexports.isAminoMsgCancelUnbondingDelegation = isAminoMsgCancelUnbondingDelegation;\nexports.createStakingAminoConverters = createStakingAminoConverters;\nconst math_1 = require(\"@cosmjs/math\");\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\nconst utils_1 = require(\"@cosmjs/utils\");\nfunction protoDecimalToJson(decimal) {\n const parsed = math_1.Decimal.fromAtomics(decimal, 18);\n const [whole, fractional] = parsed.toString().split(\".\");\n return `${whole}.${(fractional ?? \"\").padEnd(18, \"0\")}`;\n}\nfunction jsonDecimalToProto(decimal) {\n const parsed = math_1.Decimal.fromUserInput(decimal, 18);\n return parsed.atomics;\n}\nfunction isAminoMsgCreateValidator(msg) {\n return msg.type === \"cosmos-sdk/MsgCreateValidator\";\n}\nfunction isAminoMsgEditValidator(msg) {\n return msg.type === \"cosmos-sdk/MsgEditValidator\";\n}\nfunction isAminoMsgDelegate(msg) {\n return msg.type === \"cosmos-sdk/MsgDelegate\";\n}\nfunction isAminoMsgBeginRedelegate(msg) {\n return msg.type === \"cosmos-sdk/MsgBeginRedelegate\";\n}\nfunction isAminoMsgUndelegate(msg) {\n return msg.type === \"cosmos-sdk/MsgUndelegate\";\n}\nfunction isAminoMsgCancelUnbondingDelegation(msg) {\n return msg.type === \"cosmos-sdk/MsgCancelUnbondingDelegation\";\n}\nfunction createStakingAminoConverters() {\n return {\n \"/cosmos.staking.v1beta1.MsgBeginRedelegate\": {\n aminoType: \"cosmos-sdk/MsgBeginRedelegate\",\n toAmino: ({ delegatorAddress, validatorSrcAddress, validatorDstAddress, amount, }) => {\n (0, utils_1.assertDefinedAndNotNull)(amount, \"missing amount\");\n return {\n delegator_address: delegatorAddress,\n validator_src_address: validatorSrcAddress,\n validator_dst_address: validatorDstAddress,\n amount: amount,\n };\n },\n fromAmino: ({ delegator_address, validator_src_address, validator_dst_address, amount, }) => ({\n delegatorAddress: delegator_address,\n validatorSrcAddress: validator_src_address,\n validatorDstAddress: validator_dst_address,\n amount: amount,\n }),\n },\n \"/cosmos.staking.v1beta1.MsgCreateValidator\": {\n aminoType: \"cosmos-sdk/MsgCreateValidator\",\n toAmino: ({ description, commission, minSelfDelegation, delegatorAddress, validatorAddress, pubkey, value, }) => {\n (0, utils_1.assertDefinedAndNotNull)(description, \"missing description\");\n (0, utils_1.assertDefinedAndNotNull)(commission, \"missing commission\");\n (0, utils_1.assertDefinedAndNotNull)(pubkey, \"missing pubkey\");\n (0, utils_1.assertDefinedAndNotNull)(value, \"missing value\");\n return {\n description: {\n moniker: description.moniker,\n identity: description.identity,\n website: description.website,\n security_contact: description.securityContact,\n details: description.details,\n },\n commission: {\n rate: protoDecimalToJson(commission.rate),\n max_rate: protoDecimalToJson(commission.maxRate),\n max_change_rate: protoDecimalToJson(commission.maxChangeRate),\n },\n min_self_delegation: minSelfDelegation,\n delegator_address: delegatorAddress,\n validator_address: validatorAddress,\n pubkey: (0, proto_signing_1.decodePubkey)(pubkey),\n value: value,\n };\n },\n fromAmino: ({ description, commission, min_self_delegation, delegator_address, validator_address, pubkey, value, }) => {\n return {\n description: {\n moniker: description.moniker,\n identity: description.identity,\n website: description.website,\n securityContact: description.security_contact,\n details: description.details,\n },\n commission: {\n rate: jsonDecimalToProto(commission.rate),\n maxRate: jsonDecimalToProto(commission.max_rate),\n maxChangeRate: jsonDecimalToProto(commission.max_change_rate),\n },\n minSelfDelegation: min_self_delegation,\n delegatorAddress: delegator_address,\n validatorAddress: validator_address,\n pubkey: (0, proto_signing_1.encodePubkey)(pubkey),\n value: value,\n };\n },\n },\n \"/cosmos.staking.v1beta1.MsgDelegate\": {\n aminoType: \"cosmos-sdk/MsgDelegate\",\n toAmino: ({ delegatorAddress, validatorAddress, amount }) => {\n (0, utils_1.assertDefinedAndNotNull)(amount, \"missing amount\");\n return {\n delegator_address: delegatorAddress,\n validator_address: validatorAddress,\n amount: amount,\n };\n },\n fromAmino: ({ delegator_address, validator_address, amount, }) => ({\n delegatorAddress: delegator_address,\n validatorAddress: validator_address,\n amount: amount,\n }),\n },\n \"/cosmos.staking.v1beta1.MsgEditValidator\": {\n aminoType: \"cosmos-sdk/MsgEditValidator\",\n toAmino: ({ description, commissionRate, minSelfDelegation, validatorAddress, }) => {\n (0, utils_1.assertDefinedAndNotNull)(description, \"missing description\");\n return {\n description: {\n moniker: description.moniker,\n identity: description.identity,\n website: description.website,\n security_contact: description.securityContact,\n details: description.details,\n },\n // empty string in the protobuf document means \"do not change\"\n commission_rate: commissionRate ? protoDecimalToJson(commissionRate) : undefined,\n // empty string in the protobuf document means \"do not change\"\n min_self_delegation: minSelfDelegation ? minSelfDelegation : undefined,\n validator_address: validatorAddress,\n };\n },\n fromAmino: ({ description, commission_rate, min_self_delegation, validator_address, }) => ({\n description: {\n moniker: description.moniker,\n identity: description.identity,\n website: description.website,\n securityContact: description.security_contact,\n details: description.details,\n },\n // empty string in the protobuf document means \"do not change\"\n commissionRate: commission_rate ? jsonDecimalToProto(commission_rate) : \"\",\n // empty string in the protobuf document means \"do not change\"\n minSelfDelegation: min_self_delegation ?? \"\",\n validatorAddress: validator_address,\n }),\n },\n \"/cosmos.staking.v1beta1.MsgUndelegate\": {\n aminoType: \"cosmos-sdk/MsgUndelegate\",\n toAmino: ({ delegatorAddress, validatorAddress, amount, }) => {\n (0, utils_1.assertDefinedAndNotNull)(amount, \"missing amount\");\n return {\n delegator_address: delegatorAddress,\n validator_address: validatorAddress,\n amount: amount,\n };\n },\n fromAmino: ({ delegator_address, validator_address, amount, }) => ({\n delegatorAddress: delegator_address,\n validatorAddress: validator_address,\n amount: amount,\n }),\n },\n \"/cosmos.staking.v1beta1.MsgCancelUnbondingDelegation\": {\n aminoType: \"cosmos-sdk/MsgCancelUnbondingDelegation\",\n toAmino: ({ delegatorAddress, validatorAddress, amount, creationHeight, }) => {\n (0, utils_1.assertDefinedAndNotNull)(amount, \"missing amount\");\n return {\n delegator_address: delegatorAddress,\n validator_address: validatorAddress,\n amount: amount,\n creation_height: creationHeight.toString(),\n };\n },\n fromAmino: ({ delegator_address, validator_address, amount, creation_height, }) => ({\n delegatorAddress: delegator_address,\n validatorAddress: validator_address,\n amount: amount,\n creationHeight: BigInt(creation_height),\n }),\n },\n };\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stakingTypes = void 0;\nexports.isMsgBeginRedelegateEncodeObject = isMsgBeginRedelegateEncodeObject;\nexports.isMsgCreateValidatorEncodeObject = isMsgCreateValidatorEncodeObject;\nexports.isMsgDelegateEncodeObject = isMsgDelegateEncodeObject;\nexports.isMsgEditValidatorEncodeObject = isMsgEditValidatorEncodeObject;\nexports.isMsgUndelegateEncodeObject = isMsgUndelegateEncodeObject;\nexports.isMsgCancelUnbondingDelegationEncodeObject = isMsgCancelUnbondingDelegationEncodeObject;\nconst tx_1 = require(\"cosmjs-types/cosmos/staking/v1beta1/tx\");\nexports.stakingTypes = [\n [\"/cosmos.staking.v1beta1.MsgBeginRedelegate\", tx_1.MsgBeginRedelegate],\n [\"/cosmos.staking.v1beta1.MsgCreateValidator\", tx_1.MsgCreateValidator],\n [\"/cosmos.staking.v1beta1.MsgDelegate\", tx_1.MsgDelegate],\n [\"/cosmos.staking.v1beta1.MsgEditValidator\", tx_1.MsgEditValidator],\n [\"/cosmos.staking.v1beta1.MsgUndelegate\", tx_1.MsgUndelegate],\n [\"/cosmos.staking.v1beta1.MsgCancelUnbondingDelegation\", tx_1.MsgCancelUnbondingDelegation],\n];\nfunction isMsgBeginRedelegateEncodeObject(o) {\n return o.typeUrl === \"/cosmos.staking.v1beta1.MsgBeginRedelegate\";\n}\nfunction isMsgCreateValidatorEncodeObject(o) {\n return o.typeUrl === \"/cosmos.staking.v1beta1.MsgCreateValidator\";\n}\nfunction isMsgDelegateEncodeObject(object) {\n return object.typeUrl === \"/cosmos.staking.v1beta1.MsgDelegate\";\n}\nfunction isMsgEditValidatorEncodeObject(o) {\n return o.typeUrl === \"/cosmos.staking.v1beta1.MsgEditValidator\";\n}\nfunction isMsgUndelegateEncodeObject(object) {\n return object.typeUrl === \"/cosmos.staking.v1beta1.MsgUndelegate\";\n}\nfunction isMsgCancelUnbondingDelegationEncodeObject(object) {\n return (object.typeUrl ===\n \"/cosmos.staking.v1beta1.MsgCancelUnbondingDelegation\");\n}\n//# sourceMappingURL=messages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupStakingExtension = setupStakingExtension;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst query_1 = require(\"cosmjs-types/cosmos/staking/v1beta1/query\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction setupStakingExtension(base) {\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const rpc = (0, queryclient_1.createProtobufRpcClient)(base);\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n staking: {\n delegation: async (delegatorAddress, validatorAddress) => {\n const response = await queryService.Delegation({\n delegatorAddr: delegatorAddress,\n validatorAddr: validatorAddress,\n });\n return response;\n },\n delegatorDelegations: async (delegatorAddress, paginationKey) => {\n const response = await queryService.DelegatorDelegations({\n delegatorAddr: delegatorAddress,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n delegatorUnbondingDelegations: async (delegatorAddress, paginationKey) => {\n const response = await queryService.DelegatorUnbondingDelegations({\n delegatorAddr: delegatorAddress,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n delegatorValidator: async (delegatorAddress, validatorAddress) => {\n const response = await queryService.DelegatorValidator({\n delegatorAddr: delegatorAddress,\n validatorAddr: validatorAddress,\n });\n return response;\n },\n delegatorValidators: async (delegatorAddress, paginationKey) => {\n const response = await queryService.DelegatorValidators({\n delegatorAddr: delegatorAddress,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n historicalInfo: async (height) => {\n const response = await queryService.HistoricalInfo({\n height: BigInt(height),\n });\n return response;\n },\n params: async () => {\n const response = await queryService.Params({});\n return response;\n },\n pool: async () => {\n const response = await queryService.Pool({});\n return response;\n },\n redelegations: async (delegatorAddress, sourceValidatorAddress, destinationValidatorAddress, paginationKey) => {\n const response = await queryService.Redelegations({\n delegatorAddr: delegatorAddress,\n srcValidatorAddr: sourceValidatorAddress,\n dstValidatorAddr: destinationValidatorAddress,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n unbondingDelegation: async (delegatorAddress, validatorAddress) => {\n const response = await queryService.UnbondingDelegation({\n delegatorAddr: delegatorAddress,\n validatorAddr: validatorAddress,\n });\n return response;\n },\n validator: async (validatorAddress) => {\n const response = await queryService.Validator({ validatorAddr: validatorAddress });\n return response;\n },\n validatorDelegations: async (validatorAddress, paginationKey) => {\n const response = await queryService.ValidatorDelegations({\n validatorAddr: validatorAddress,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n validators: async (status, paginationKey) => {\n const response = await queryService.Validators({\n status: status,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n validatorUnbondingDelegations: async (validatorAddress, paginationKey) => {\n const response = await queryService.ValidatorUnbondingDelegations({\n validatorAddr: validatorAddress,\n pagination: (0, queryclient_1.createPagination)(paginationKey),\n });\n return response;\n },\n },\n };\n}\n//# sourceMappingURL=queries.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupTxExtension = setupTxExtension;\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\nconst signing_1 = require(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing\");\nconst service_1 = require(\"cosmjs-types/cosmos/tx/v1beta1/service\");\nconst tx_1 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nconst queryclient_1 = require(\"../../queryclient\");\nfunction setupTxExtension(base) {\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const rpc = (0, queryclient_1.createProtobufRpcClient)(base);\n const queryService = new service_1.ServiceClientImpl(rpc);\n return {\n tx: {\n getTx: async (txId) => {\n const request = {\n hash: txId,\n };\n const response = await queryService.GetTx(request);\n return response;\n },\n simulate: async (messages, memo, signer, sequence) => {\n const tx = tx_1.Tx.fromPartial({\n authInfo: tx_1.AuthInfo.fromPartial({\n fee: tx_1.Fee.fromPartial({}),\n signerInfos: [\n {\n publicKey: (0, proto_signing_1.encodePubkey)(signer),\n sequence: BigInt(sequence),\n modeInfo: { single: { mode: signing_1.SignMode.SIGN_MODE_UNSPECIFIED } },\n },\n ],\n }),\n body: tx_1.TxBody.fromPartial({\n messages: Array.from(messages),\n memo: memo,\n }),\n signatures: [new Uint8Array()],\n });\n const request = service_1.SimulateRequest.fromPartial({\n txBytes: tx_1.Tx.encode(tx).finish(),\n });\n const response = await queryService.Simulate(request);\n return response;\n },\n },\n };\n}\n//# sourceMappingURL=queries.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAminoMsgCreateVestingAccount = isAminoMsgCreateVestingAccount;\nexports.createVestingAminoConverters = createVestingAminoConverters;\nfunction isAminoMsgCreateVestingAccount(msg) {\n return msg.type === \"cosmos-sdk/MsgCreateVestingAccount\";\n}\nfunction createVestingAminoConverters() {\n return {\n \"/cosmos.vesting.v1beta1.MsgCreateVestingAccount\": {\n aminoType: \"cosmos-sdk/MsgCreateVestingAccount\",\n toAmino: ({ fromAddress, toAddress, amount, endTime, delayed, }) => ({\n from_address: fromAddress,\n to_address: toAddress,\n amount: [...amount],\n end_time: endTime.toString(),\n delayed: delayed,\n }),\n fromAmino: ({ from_address, to_address, amount, end_time, delayed, }) => ({\n fromAddress: from_address,\n toAddress: to_address,\n amount: [...amount],\n endTime: BigInt(end_time),\n delayed: delayed,\n }),\n },\n };\n}\n//# sourceMappingURL=aminomessages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.vestingTypes = void 0;\nconst tx_1 = require(\"cosmjs-types/cosmos/vesting/v1beta1/tx\");\nexports.vestingTypes = [\n [\"/cosmos.vesting.v1beta1.MsgCreateVestingAccount\", tx_1.MsgCreateVestingAccount],\n];\n//# sourceMappingURL=messages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeCompactBitArray = makeCompactBitArray;\nexports.makeMultisignedTx = makeMultisignedTx;\nexports.makeMultisignedTxBytes = makeMultisignedTxBytes;\nconst amino_1 = require(\"@cosmjs/amino\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\nconst multisig_1 = require(\"cosmjs-types/cosmos/crypto/multisig/v1beta1/multisig\");\nconst signing_1 = require(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing\");\nconst tx_1 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nconst tx_2 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nfunction makeCompactBitArray(bits) {\n const byteCount = Math.ceil(bits.length / 8);\n const extraBits = bits.length - Math.floor(bits.length / 8) * 8;\n const bytes = new Uint8Array(byteCount); // zero-filled\n bits.forEach((value, index) => {\n const bytePos = Math.floor(index / 8);\n const bitPos = index % 8;\n // eslint-disable-next-line no-bitwise\n if (value)\n bytes[bytePos] |= 0b1 << (8 - 1 - bitPos);\n });\n return multisig_1.CompactBitArray.fromPartial({ elems: bytes, extraBitsStored: extraBits });\n}\n/**\n * Creates a signed transaction from signer info, transaction body and signatures.\n * The result can be broadcasted after serialization.\n *\n * Consider using `makeMultisignedTxBytes` instead if you want to broadcast the\n * transaction immediately.\n */\nfunction makeMultisignedTx(multisigPubkey, sequence, fee, bodyBytes, signatures) {\n const addresses = Array.from(signatures.keys());\n const prefix = (0, encoding_1.fromBech32)(addresses[0]).prefix;\n const signers = Array(multisigPubkey.value.pubkeys.length).fill(false);\n const signaturesList = new Array();\n for (let i = 0; i < multisigPubkey.value.pubkeys.length; i++) {\n const signerAddress = (0, amino_1.pubkeyToAddress)(multisigPubkey.value.pubkeys[i], prefix);\n const signature = signatures.get(signerAddress);\n if (signature) {\n signers[i] = true;\n signaturesList.push(signature);\n }\n }\n const signerInfo = {\n publicKey: (0, proto_signing_1.encodePubkey)(multisigPubkey),\n modeInfo: {\n multi: {\n bitarray: makeCompactBitArray(signers),\n modeInfos: signaturesList.map((_) => ({ single: { mode: signing_1.SignMode.SIGN_MODE_LEGACY_AMINO_JSON } })),\n },\n },\n sequence: BigInt(sequence),\n };\n const authInfo = tx_1.AuthInfo.fromPartial({\n signerInfos: [signerInfo],\n fee: {\n amount: [...fee.amount],\n gasLimit: BigInt(fee.gas),\n },\n });\n const authInfoBytes = tx_1.AuthInfo.encode(authInfo).finish();\n const signedTx = tx_2.TxRaw.fromPartial({\n bodyBytes: bodyBytes,\n authInfoBytes: authInfoBytes,\n signatures: [multisig_1.MultiSignature.encode(multisig_1.MultiSignature.fromPartial({ signatures: signaturesList })).finish()],\n });\n return signedTx;\n}\n/**\n * Creates a signed transaction from signer info, transaction body and signatures.\n * The result can be broadcasted.\n *\n * This is a wrapper around `makeMultisignedTx` that encodes the transaction for broadcasting.\n */\nfunction makeMultisignedTxBytes(multisigPubkey, sequence, fee, bodyBytes, signatures) {\n const signedTx = makeMultisignedTx(multisigPubkey, sequence, fee, bodyBytes, signatures);\n return Uint8Array.from(tx_2.TxRaw.encode(signedTx).finish());\n}\n//# sourceMappingURL=multisignature.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.longify = exports.decodeCosmosSdkDecFromProto = exports.createProtobufRpcClient = exports.createPagination = exports.QueryClient = void 0;\nvar queryclient_1 = require(\"./queryclient\");\nObject.defineProperty(exports, \"QueryClient\", { enumerable: true, get: function () { return queryclient_1.QueryClient; } });\nvar utils_1 = require(\"./utils\");\nObject.defineProperty(exports, \"createPagination\", { enumerable: true, get: function () { return utils_1.createPagination; } });\nObject.defineProperty(exports, \"createProtobufRpcClient\", { enumerable: true, get: function () { return utils_1.createProtobufRpcClient; } });\nObject.defineProperty(exports, \"decodeCosmosSdkDecFromProto\", { enumerable: true, get: function () { return utils_1.decodeCosmosSdkDecFromProto; } });\nObject.defineProperty(exports, \"longify\", { enumerable: true, get: function () { return utils_1.longify; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClient = void 0;\nconst utils_1 = require(\"@cosmjs/utils\");\nclass QueryClient {\n static withExtensions(cometClient, ...extensionSetups) {\n const client = new QueryClient(cometClient);\n const extensions = extensionSetups.map((setupExtension) => setupExtension(client));\n for (const extension of extensions) {\n (0, utils_1.assert)((0, utils_1.isNonNullObject)(extension), `Extension must be a non-null object`);\n for (const [moduleKey, moduleValue] of Object.entries(extension)) {\n (0, utils_1.assert)((0, utils_1.isNonNullObject)(moduleValue), `Module must be a non-null object. Found type ${typeof moduleValue} for module \"${moduleKey}\".`);\n const current = client[moduleKey] || {};\n client[moduleKey] = {\n ...current,\n ...moduleValue,\n };\n }\n }\n return client;\n }\n constructor(cometClient) {\n this.cometClient = cometClient;\n }\n /**\n * Performs an ABCI query to Tendermint without requesting a proof.\n *\n * If the `desiredHeight` is set, a particular height is requested. Otherwise\n * the latest height is requested. The response contains the actual height of\n * the query.\n */\n async queryAbci(path, request, desiredHeight) {\n const response = await this.cometClient.abciQuery({\n path: path,\n data: request,\n prove: false,\n height: desiredHeight,\n });\n if (response.code) {\n throw new Error(`Query failed with (${response.code}): ${response.log}`);\n }\n if (!response.height) {\n throw new Error(\"No query height returned\");\n }\n return {\n value: response.value,\n height: response.height,\n };\n }\n}\nexports.QueryClient = QueryClient;\n//# sourceMappingURL=queryclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toAccAddress = toAccAddress;\nexports.createPagination = createPagination;\nexports.createProtobufRpcClient = createProtobufRpcClient;\nexports.longify = longify;\nexports.decodeCosmosSdkDecFromProto = decodeCosmosSdkDecFromProto;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst pagination_1 = require(\"cosmjs-types/cosmos/base/query/v1beta1/pagination\");\n/**\n * Takes a bech32 encoded address and returns the data part. The prefix is ignored and discarded.\n * This is called AccAddress in Cosmos SDK, which is basically an alias for raw binary data.\n * The result is typically 20 bytes long but not restricted to that.\n */\nfunction toAccAddress(address) {\n return (0, encoding_1.fromBech32)(address).data;\n}\n/**\n * If paginationKey is set, return a `PageRequest` with the given key.\n * If paginationKey is unset, return `undefined`.\n *\n * Use this with a query response's pagination next key to\n * request the next page.\n */\nfunction createPagination(paginationKey) {\n return paginationKey ? pagination_1.PageRequest.fromPartial({ key: paginationKey }) : pagination_1.PageRequest.fromPartial({});\n}\nfunction createProtobufRpcClient(base) {\n return {\n request: async (service, method, data) => {\n const path = `/${service}/${method}`;\n const response = await base.queryAbci(path, data, undefined);\n return response.value;\n },\n };\n}\n/**\n * Takes a uint64 value as string, number, BigInt or Uint64 and returns a BigInt\n * of it.\n */\nfunction longify(value) {\n const checkedValue = math_1.Uint64.fromString(value.toString());\n return BigInt(checkedValue.toString());\n}\n/**\n * Takes a string or binary encoded `github.com/cosmos/cosmos-sdk/types.Dec` from the\n * protobuf API and converts it into a `Decimal` with 18 fractional digits.\n *\n * See https://github.com/cosmos/cosmos-sdk/issues/10863 for more context why this is needed.\n */\nfunction decodeCosmosSdkDecFromProto(input) {\n const asString = typeof input === \"string\" ? input : (0, encoding_1.fromAscii)(input);\n return math_1.Decimal.fromAtomics(asString, 18);\n}\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isSearchTxQueryArray = isSearchTxQueryArray;\nfunction isSearchTxQueryArray(query) {\n return Array.isArray(query);\n}\n//# sourceMappingURL=search.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SigningStargateClient = exports.defaultRegistryTypes = void 0;\nexports.createDefaultAminoConverters = createDefaultAminoConverters;\nconst amino_1 = require(\"@cosmjs/amino\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\nconst tendermint_rpc_1 = require(\"@cosmjs/tendermint-rpc\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst coin_1 = require(\"cosmjs-types/cosmos/base/v1beta1/coin\");\nconst tx_1 = require(\"cosmjs-types/cosmos/distribution/v1beta1/tx\");\nconst tx_2 = require(\"cosmjs-types/cosmos/staking/v1beta1/tx\");\nconst signing_1 = require(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing\");\nconst tx_3 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nconst tx_4 = require(\"cosmjs-types/ibc/applications/transfer/v1/tx\");\nconst aminotypes_1 = require(\"./aminotypes\");\nconst fee_1 = require(\"./fee\");\nconst modules_1 = require(\"./modules\");\nconst modules_2 = require(\"./modules\");\nconst stargateclient_1 = require(\"./stargateclient\");\nexports.defaultRegistryTypes = [\n [\"/cosmos.base.v1beta1.Coin\", coin_1.Coin],\n ...modules_1.authzTypes,\n ...modules_1.bankTypes,\n ...modules_1.distributionTypes,\n ...modules_1.feegrantTypes,\n ...modules_1.govTypes,\n ...modules_1.groupTypes,\n ...modules_1.stakingTypes,\n ...modules_1.ibcTypes,\n ...modules_1.vestingTypes,\n];\nfunction createDefaultAminoConverters() {\n return {\n ...(0, modules_2.createAuthzAminoConverters)(),\n ...(0, modules_2.createBankAminoConverters)(),\n ...(0, modules_2.createDistributionAminoConverters)(),\n ...(0, modules_2.createGovAminoConverters)(),\n ...(0, modules_2.createStakingAminoConverters)(),\n ...(0, modules_2.createIbcAminoConverters)(),\n ...(0, modules_2.createFeegrantAminoConverters)(),\n ...(0, modules_2.createVestingAminoConverters)(),\n };\n}\nclass SigningStargateClient extends stargateclient_1.StargateClient {\n /**\n * Creates an instance by connecting to the given CometBFT RPC endpoint.\n *\n * This uses auto-detection to decide between a CometBFT 0.38, Tendermint 0.37 and 0.34 client.\n * To set the Comet client explicitly, use `createWithSigner`.\n */\n static async connectWithSigner(endpoint, signer, options = {}) {\n const cometClient = await (0, tendermint_rpc_1.connectComet)(endpoint);\n return SigningStargateClient.createWithSigner(cometClient, signer, options);\n }\n /**\n * Creates an instance from a manually created Comet client.\n * Use this to use `Comet38Client` or `Tendermint37Client` instead of `Tendermint34Client`.\n */\n static async createWithSigner(cometClient, signer, options = {}) {\n return new SigningStargateClient(cometClient, signer, options);\n }\n /**\n * Creates a client in offline mode.\n *\n * This should only be used in niche cases where you know exactly what you're doing,\n * e.g. when building an offline signing application.\n *\n * When you try to use online functionality with such a signer, an\n * exception will be raised.\n */\n static async offline(signer, options = {}) {\n return new SigningStargateClient(undefined, signer, options);\n }\n constructor(cometClient, signer, options) {\n super(cometClient, options);\n // Starting with Cosmos SDK 0.47, we see many cases in which 1.3 is not enough anymore\n // E.g. https://github.com/cosmos/cosmos-sdk/issues/16020\n this.defaultGasMultiplier = 1.4;\n const { registry = new proto_signing_1.Registry(exports.defaultRegistryTypes), aminoTypes = new aminotypes_1.AminoTypes(createDefaultAminoConverters()), } = options;\n this.registry = registry;\n this.aminoTypes = aminoTypes;\n this.signer = signer;\n this.broadcastTimeoutMs = options.broadcastTimeoutMs;\n this.broadcastPollIntervalMs = options.broadcastPollIntervalMs;\n this.gasPrice = options.gasPrice;\n }\n async simulate(signerAddress, messages, memo) {\n const anyMsgs = messages.map((m) => this.registry.encodeAsAny(m));\n const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress);\n if (!accountFromSigner) {\n throw new Error(\"Failed to retrieve account from signer\");\n }\n const pubkey = (0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey);\n const { sequence } = await this.getSequence(signerAddress);\n const { gasInfo } = await this.forceGetQueryClient().tx.simulate(anyMsgs, memo, pubkey, sequence);\n (0, utils_1.assertDefined)(gasInfo);\n return math_1.Uint53.fromString(gasInfo.gasUsed.toString()).toNumber();\n }\n async sendTokens(senderAddress, recipientAddress, amount, fee, memo = \"\") {\n const sendMsg = {\n typeUrl: \"/cosmos.bank.v1beta1.MsgSend\",\n value: {\n fromAddress: senderAddress,\n toAddress: recipientAddress,\n amount: [...amount],\n },\n };\n return this.signAndBroadcast(senderAddress, [sendMsg], fee, memo);\n }\n async delegateTokens(delegatorAddress, validatorAddress, amount, fee, memo = \"\") {\n const delegateMsg = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgDelegate\",\n value: tx_2.MsgDelegate.fromPartial({\n delegatorAddress: delegatorAddress,\n validatorAddress: validatorAddress,\n amount: amount,\n }),\n };\n return this.signAndBroadcast(delegatorAddress, [delegateMsg], fee, memo);\n }\n async undelegateTokens(delegatorAddress, validatorAddress, amount, fee, memo = \"\") {\n const undelegateMsg = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgUndelegate\",\n value: tx_2.MsgUndelegate.fromPartial({\n delegatorAddress: delegatorAddress,\n validatorAddress: validatorAddress,\n amount: amount,\n }),\n };\n return this.signAndBroadcast(delegatorAddress, [undelegateMsg], fee, memo);\n }\n async withdrawRewards(delegatorAddress, validatorAddress, fee, memo = \"\") {\n const withdrawMsg = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward\",\n value: tx_1.MsgWithdrawDelegatorReward.fromPartial({\n delegatorAddress: delegatorAddress,\n validatorAddress: validatorAddress,\n }),\n };\n return this.signAndBroadcast(delegatorAddress, [withdrawMsg], fee, memo);\n }\n /**\n * @deprecated This API does not support setting the memo field of `MsgTransfer` (only the transaction memo).\n * We'll remove this method at some point because trying to wrap the various message types is a losing strategy.\n * Please migrate to `signAndBroadcast` with an `MsgTransferEncodeObject` created in the caller code instead.\n * @see https://github.com/cosmos/cosmjs/issues/1493\n */\n async sendIbcTokens(senderAddress, recipientAddress, transferAmount, sourcePort, sourceChannel, timeoutHeight, \n /** timeout in seconds */\n timeoutTimestamp, fee, memo = \"\") {\n const timeoutTimestampNanoseconds = timeoutTimestamp\n ? BigInt(timeoutTimestamp) * BigInt(1000000000)\n : undefined;\n const transferMsg = {\n typeUrl: \"/ibc.applications.transfer.v1.MsgTransfer\",\n value: tx_4.MsgTransfer.fromPartial({\n sourcePort: sourcePort,\n sourceChannel: sourceChannel,\n sender: senderAddress,\n receiver: recipientAddress,\n token: transferAmount,\n timeoutHeight: timeoutHeight,\n timeoutTimestamp: timeoutTimestampNanoseconds,\n }),\n };\n return this.signAndBroadcast(senderAddress, [transferMsg], fee, memo);\n }\n async signAndBroadcast(signerAddress, messages, fee, memo = \"\", timeoutHeight) {\n let usedFee;\n if (fee == \"auto\" || typeof fee === \"number\") {\n (0, utils_1.assertDefined)(this.gasPrice, \"Gas price must be set in the client options when auto gas is used.\");\n const gasEstimation = await this.simulate(signerAddress, messages, memo);\n const multiplier = typeof fee === \"number\" ? fee : this.defaultGasMultiplier;\n usedFee = (0, fee_1.calculateFee)(Math.round(gasEstimation * multiplier), this.gasPrice);\n }\n else {\n usedFee = fee;\n }\n const txRaw = await this.sign(signerAddress, messages, usedFee, memo, undefined, timeoutHeight);\n const txBytes = tx_3.TxRaw.encode(txRaw).finish();\n return this.broadcastTx(txBytes, this.broadcastTimeoutMs, this.broadcastPollIntervalMs);\n }\n /**\n * This method is useful if you want to send a transaction in broadcast,\n * without waiting for it to be placed inside a block, because for example\n * I would like to receive the hash to later track the transaction with another tool.\n * @returns Returns the hash of the transaction\n */\n async signAndBroadcastSync(signerAddress, messages, fee, memo = \"\", timeoutHeight) {\n let usedFee;\n if (fee == \"auto\" || typeof fee === \"number\") {\n (0, utils_1.assertDefined)(this.gasPrice, \"Gas price must be set in the client options when auto gas is used.\");\n const gasEstimation = await this.simulate(signerAddress, messages, memo);\n const multiplier = typeof fee === \"number\" ? fee : this.defaultGasMultiplier;\n usedFee = (0, fee_1.calculateFee)(Math.round(gasEstimation * multiplier), this.gasPrice);\n }\n else {\n usedFee = fee;\n }\n const txRaw = await this.sign(signerAddress, messages, usedFee, memo, undefined, timeoutHeight);\n const txBytes = tx_3.TxRaw.encode(txRaw).finish();\n return this.broadcastTxSync(txBytes);\n }\n /**\n * Gets account number and sequence from the API, creates a sign doc,\n * creates a single signature and assembles the signed transaction.\n *\n * The sign mode (SIGN_MODE_DIRECT or SIGN_MODE_LEGACY_AMINO_JSON) is determined by this client's signer.\n *\n * You can pass signer data (account number, sequence and chain ID) explicitly instead of querying them\n * from the chain. This is needed when signing for a multisig account, but it also allows for offline signing\n * (See the SigningStargateClient.offline constructor).\n */\n async sign(signerAddress, messages, fee, memo, explicitSignerData, timeoutHeight) {\n let signerData;\n if (explicitSignerData) {\n signerData = explicitSignerData;\n }\n else {\n const { accountNumber, sequence } = await this.getSequence(signerAddress);\n const chainId = await this.getChainId();\n signerData = {\n accountNumber: accountNumber,\n sequence: sequence,\n chainId: chainId,\n };\n }\n return (0, proto_signing_1.isOfflineDirectSigner)(this.signer)\n ? this.signDirect(signerAddress, messages, fee, memo, signerData, timeoutHeight)\n : this.signAmino(signerAddress, messages, fee, memo, signerData, timeoutHeight);\n }\n async signAmino(signerAddress, messages, fee, memo, { accountNumber, sequence, chainId }, timeoutHeight) {\n (0, utils_1.assert)(!(0, proto_signing_1.isOfflineDirectSigner)(this.signer));\n const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress);\n if (!accountFromSigner) {\n throw new Error(\"Failed to retrieve account from signer\");\n }\n const pubkey = (0, proto_signing_1.encodePubkey)((0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey));\n const signMode = signing_1.SignMode.SIGN_MODE_LEGACY_AMINO_JSON;\n const msgs = messages.map((msg) => this.aminoTypes.toAmino(msg));\n const signDoc = (0, amino_1.makeSignDoc)(msgs, fee, chainId, memo, accountNumber, sequence, timeoutHeight);\n const { signature, signed } = await this.signer.signAmino(signerAddress, signDoc);\n const signedTxBody = {\n messages: signed.msgs.map((msg) => this.aminoTypes.fromAmino(msg)),\n memo: signed.memo,\n timeoutHeight: timeoutHeight,\n };\n const signedTxBodyEncodeObject = {\n typeUrl: \"/cosmos.tx.v1beta1.TxBody\",\n value: signedTxBody,\n };\n const signedTxBodyBytes = this.registry.encode(signedTxBodyEncodeObject);\n const signedGasLimit = math_1.Int53.fromString(signed.fee.gas).toNumber();\n const signedSequence = math_1.Int53.fromString(signed.sequence).toNumber();\n const signedAuthInfoBytes = (0, proto_signing_1.makeAuthInfoBytes)([{ pubkey, sequence: signedSequence }], signed.fee.amount, signedGasLimit, signed.fee.granter, signed.fee.payer, signMode);\n return tx_3.TxRaw.fromPartial({\n bodyBytes: signedTxBodyBytes,\n authInfoBytes: signedAuthInfoBytes,\n signatures: [(0, encoding_1.fromBase64)(signature.signature)],\n });\n }\n async signDirect(signerAddress, messages, fee, memo, { accountNumber, sequence, chainId }, timeoutHeight) {\n (0, utils_1.assert)((0, proto_signing_1.isOfflineDirectSigner)(this.signer));\n const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress);\n if (!accountFromSigner) {\n throw new Error(\"Failed to retrieve account from signer\");\n }\n const pubkey = (0, proto_signing_1.encodePubkey)((0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey));\n const txBodyEncodeObject = {\n typeUrl: \"/cosmos.tx.v1beta1.TxBody\",\n value: {\n messages: messages,\n memo: memo,\n timeoutHeight: timeoutHeight,\n },\n };\n const txBodyBytes = this.registry.encode(txBodyEncodeObject);\n const gasLimit = math_1.Int53.fromString(fee.gas).toNumber();\n const authInfoBytes = (0, proto_signing_1.makeAuthInfoBytes)([{ pubkey, sequence }], fee.amount, gasLimit, fee.granter, fee.payer);\n const signDoc = (0, proto_signing_1.makeSignDoc)(txBodyBytes, authInfoBytes, chainId, accountNumber);\n const { signature, signed } = await this.signer.signDirect(signerAddress, signDoc);\n return tx_3.TxRaw.fromPartial({\n bodyBytes: signed.bodyBytes,\n authInfoBytes: signed.authInfoBytes,\n signatures: [(0, encoding_1.fromBase64)(signature.signature)],\n });\n }\n}\nexports.SigningStargateClient = SigningStargateClient;\n//# sourceMappingURL=signingstargateclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StargateClient = exports.BroadcastTxError = exports.TimeoutError = void 0;\nexports.isDeliverTxFailure = isDeliverTxFailure;\nexports.isDeliverTxSuccess = isDeliverTxSuccess;\nexports.assertIsDeliverTxSuccess = assertIsDeliverTxSuccess;\nexports.assertIsDeliverTxFailure = assertIsDeliverTxFailure;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst amino_1 = require(\"@cosmjs/amino\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst tendermint_rpc_1 = require(\"@cosmjs/tendermint-rpc\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst abci_1 = require(\"cosmjs-types/cosmos/base/abci/v1beta1/abci\");\nconst accounts_1 = require(\"./accounts\");\nconst events_1 = require(\"./events\");\nconst modules_1 = require(\"./modules\");\nconst queryclient_1 = require(\"./queryclient\");\nconst search_1 = require(\"./search\");\nclass TimeoutError extends Error {\n constructor(message, txId) {\n super(message);\n this.txId = txId;\n }\n}\nexports.TimeoutError = TimeoutError;\nfunction isDeliverTxFailure(result) {\n return !!result.code;\n}\nfunction isDeliverTxSuccess(result) {\n return !isDeliverTxFailure(result);\n}\n/**\n * Ensures the given result is a success. Throws a detailed error message otherwise.\n */\nfunction assertIsDeliverTxSuccess(result) {\n if (isDeliverTxFailure(result)) {\n throw new Error(`Error when broadcasting tx ${result.transactionHash} at height ${result.height}. Code: ${result.code}; Raw log: ${result.rawLog}`);\n }\n}\n/**\n * Ensures the given result is a failure. Throws a detailed error message otherwise.\n */\nfunction assertIsDeliverTxFailure(result) {\n if (isDeliverTxSuccess(result)) {\n throw new Error(`Transaction ${result.transactionHash} did not fail at height ${result.height}. Code: ${result.code}; Raw log: ${result.rawLog}`);\n }\n}\n/**\n * An error when broadcasting the transaction. This contains the CheckTx errors\n * from the blockchain. Once a transaction is included in a block no BroadcastTxError\n * is thrown, even if the execution fails (DeliverTx errors).\n */\nclass BroadcastTxError extends Error {\n constructor(code, codespace, log) {\n super(`Broadcasting transaction failed with code ${code} (codespace: ${codespace}). Log: ${log}`);\n this.code = code;\n this.codespace = codespace;\n this.log = log;\n }\n}\nexports.BroadcastTxError = BroadcastTxError;\nclass StargateClient {\n /**\n * Creates an instance by connecting to the given CometBFT RPC endpoint.\n *\n * This uses auto-detection to decide between a CometBFT 0.38, Tendermint 0.37 and 0.34 client.\n * To set the Comet client explicitly, use `create`.\n */\n static async connect(endpoint, options = {}) {\n const cometClient = await (0, tendermint_rpc_1.connectComet)(endpoint);\n return StargateClient.create(cometClient, options);\n }\n /**\n * Creates an instance from a manually created Comet client.\n * Use this to use `Comet38Client` or `Tendermint37Client` instead of `Tendermint34Client`.\n */\n static async create(cometClient, options = {}) {\n return new StargateClient(cometClient, options);\n }\n constructor(cometClient, options) {\n if (cometClient) {\n this.cometClient = cometClient;\n this.queryClient = queryclient_1.QueryClient.withExtensions(cometClient, modules_1.setupAuthExtension, modules_1.setupBankExtension, modules_1.setupStakingExtension, modules_1.setupTxExtension);\n }\n const { accountParser = accounts_1.accountFromAny } = options;\n this.accountParser = accountParser;\n }\n getCometClient() {\n return this.cometClient;\n }\n forceGetCometClient() {\n if (!this.cometClient) {\n throw new Error(\"Comet client not available. You cannot use online functionality in offline mode.\");\n }\n return this.cometClient;\n }\n getQueryClient() {\n return this.queryClient;\n }\n forceGetQueryClient() {\n if (!this.queryClient) {\n throw new Error(\"Query client not available. You cannot use online functionality in offline mode.\");\n }\n return this.queryClient;\n }\n async getChainId() {\n if (!this.chainId) {\n const response = await this.forceGetCometClient().status();\n const chainId = response.nodeInfo.network;\n if (!chainId)\n throw new Error(\"Chain ID must not be empty\");\n this.chainId = chainId;\n }\n return this.chainId;\n }\n async getHeight() {\n const status = await this.forceGetCometClient().status();\n return status.syncInfo.latestBlockHeight;\n }\n async getAccount(searchAddress) {\n try {\n const account = await this.forceGetQueryClient().auth.account(searchAddress);\n return account ? this.accountParser(account) : null;\n }\n catch (error) {\n if (/rpc error: code = NotFound/i.test(error.toString())) {\n return null;\n }\n throw error;\n }\n }\n async getSequence(address) {\n const account = await this.getAccount(address);\n if (!account) {\n throw new Error(`Account '${address}' does not exist on chain. Send some tokens there before trying to query sequence.`);\n }\n return {\n accountNumber: account.accountNumber,\n sequence: account.sequence,\n };\n }\n async getBlock(height) {\n const response = await this.forceGetCometClient().block(height);\n return {\n id: (0, encoding_1.toHex)(response.blockId.hash).toUpperCase(),\n header: {\n version: {\n block: new math_1.Uint53(response.block.header.version.block).toString(),\n app: new math_1.Uint53(response.block.header.version.app).toString(),\n },\n height: response.block.header.height,\n chainId: response.block.header.chainId,\n time: (0, tendermint_rpc_1.toRfc3339WithNanoseconds)(response.block.header.time),\n },\n txs: response.block.txs,\n };\n }\n async getBalance(address, searchDenom) {\n return this.forceGetQueryClient().bank.balance(address, searchDenom);\n }\n /**\n * Queries all balances for all denoms that belong to this address.\n *\n * Uses the grpc queries (which iterates over the store internally), and we cannot get\n * proofs from such a method.\n */\n async getAllBalances(address) {\n return this.forceGetQueryClient().bank.allBalances(address);\n }\n async getBalanceStaked(address) {\n const allDelegations = [];\n let startAtKey = undefined;\n do {\n const { delegationResponses, pagination } = await this.forceGetQueryClient().staking.delegatorDelegations(address, startAtKey);\n const loadedDelegations = delegationResponses || [];\n allDelegations.push(...loadedDelegations);\n startAtKey = pagination?.nextKey;\n } while (startAtKey !== undefined && startAtKey.length !== 0);\n const sumValues = allDelegations.reduce((previousValue, currentValue) => {\n // Safe because field is set to non-nullable (https://github.com/cosmos/cosmos-sdk/blob/v0.45.3/proto/cosmos/staking/v1beta1/staking.proto#L295)\n (0, utils_1.assert)(currentValue.balance);\n return previousValue !== null ? (0, amino_1.addCoins)(previousValue, currentValue.balance) : currentValue.balance;\n }, null);\n return sumValues;\n }\n async getDelegation(delegatorAddress, validatorAddress) {\n let delegatedAmount;\n try {\n delegatedAmount = (await this.forceGetQueryClient().staking.delegation(delegatorAddress, validatorAddress)).delegationResponse?.balance;\n }\n catch (e) {\n if (e.toString().includes(\"key not found\")) {\n // ignore, `delegatedAmount` remains undefined\n }\n else {\n throw e;\n }\n }\n return delegatedAmount || null;\n }\n async getTx(id) {\n const results = await this.txsQuery(`tx.hash='${id}'`);\n return results[0] ?? null;\n }\n async searchTx(query) {\n let rawQuery;\n if (typeof query === \"string\") {\n rawQuery = query;\n }\n else if ((0, search_1.isSearchTxQueryArray)(query)) {\n rawQuery = query\n .map((t) => {\n // numeric values must not have quotes https://github.com/cosmos/cosmjs/issues/1462\n if (typeof t.value === \"string\")\n return `${t.key}='${t.value}'`;\n else\n return `${t.key}=${t.value}`;\n })\n .join(\" AND \");\n }\n else {\n throw new Error(\"Got unsupported query type. See CosmJS 0.31 CHANGELOG for API breaking changes here.\");\n }\n return this.txsQuery(rawQuery);\n }\n disconnect() {\n if (this.cometClient)\n this.cometClient.disconnect();\n }\n /**\n * Broadcasts a signed transaction to the network and monitors its inclusion in a block.\n *\n * If broadcasting is rejected by the node for some reason (e.g. because of a CheckTx failure),\n * an error is thrown.\n *\n * If the transaction is not included in a block before the provided timeout, this errors with a `TimeoutError`.\n *\n * If the transaction is included in a block, a `DeliverTxResponse` is returned. The caller then\n * usually needs to check for execution success or failure.\n */\n async broadcastTx(tx, timeoutMs = 60000, pollIntervalMs = 3000) {\n let timedOut = false;\n const txPollTimeout = setTimeout(() => {\n timedOut = true;\n }, timeoutMs);\n const pollForTx = async (txId) => {\n if (timedOut) {\n throw new TimeoutError(`Transaction with ID ${txId} was submitted but was not yet found on the chain. You might want to check later. There was a wait of ${timeoutMs / 1000} seconds.`, txId);\n }\n await (0, utils_1.sleep)(pollIntervalMs);\n const result = await this.getTx(txId);\n return result\n ? {\n code: result.code,\n height: result.height,\n txIndex: result.txIndex,\n events: result.events,\n rawLog: result.rawLog,\n transactionHash: txId,\n msgResponses: result.msgResponses,\n gasUsed: result.gasUsed,\n gasWanted: result.gasWanted,\n }\n : pollForTx(txId);\n };\n const transactionId = await this.broadcastTxSync(tx);\n return new Promise((resolve, reject) => pollForTx(transactionId).then((value) => {\n clearTimeout(txPollTimeout);\n resolve(value);\n }, (error) => {\n clearTimeout(txPollTimeout);\n reject(error);\n }));\n }\n /**\n * Broadcasts a signed transaction to the network without monitoring it.\n *\n * If broadcasting is rejected by the node for some reason (e.g. because of a CheckTx failure),\n * an error is thrown.\n *\n * If the transaction is broadcasted, a `string` containing the hash of the transaction is returned. The caller then\n * usually needs to check if the transaction was included in a block and was successful.\n *\n * @returns Returns the hash of the transaction\n */\n async broadcastTxSync(tx) {\n const broadcasted = await this.forceGetCometClient().broadcastTxSync({ tx });\n if (broadcasted.code) {\n return Promise.reject(new BroadcastTxError(broadcasted.code, broadcasted.codespace ?? \"\", broadcasted.log));\n }\n const transactionId = (0, encoding_1.toHex)(broadcasted.hash).toUpperCase();\n return transactionId;\n }\n async txsQuery(query) {\n const results = await this.forceGetCometClient().txSearchAll({ query: query });\n return results.txs.map((tx) => {\n const txMsgData = abci_1.TxMsgData.decode(tx.result.data ?? new Uint8Array());\n return {\n height: tx.height,\n txIndex: tx.index,\n hash: (0, encoding_1.toHex)(tx.hash).toUpperCase(),\n code: tx.result.code,\n events: tx.result.events.map(events_1.fromTendermintEvent),\n rawLog: tx.result.log || \"\",\n tx: tx.tx,\n msgResponses: txMsgData.msgResponses,\n gasUsed: tx.result.gasUsed,\n gasWanted: tx.result.gasWanted,\n };\n });\n }\n}\nexports.StargateClient = StargateClient;\n//# sourceMappingURL=stargateclient.js.map","\"use strict\";\n// See https://github.com/tendermint/tendermint/blob/f2ada0a604b4c0763bda2f64fac53d506d3beca7/docs/spec/blockchain/encoding.md#public-key-cryptography\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.rawEd25519PubkeyToRawAddress = rawEd25519PubkeyToRawAddress;\nexports.rawSecp256k1PubkeyToRawAddress = rawSecp256k1PubkeyToRawAddress;\nexports.pubkeyToRawAddress = pubkeyToRawAddress;\nexports.pubkeyToAddress = pubkeyToAddress;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst encoding_2 = require(\"./encoding\");\nconst pubkeys_1 = require(\"./pubkeys\");\nfunction rawEd25519PubkeyToRawAddress(pubkeyData) {\n if (pubkeyData.length !== 32) {\n throw new Error(`Invalid Ed25519 pubkey length: ${pubkeyData.length}`);\n }\n return (0, crypto_1.sha256)(pubkeyData).slice(0, 20);\n}\nfunction rawSecp256k1PubkeyToRawAddress(pubkeyData) {\n if (pubkeyData.length !== 33) {\n throw new Error(`Invalid Secp256k1 pubkey length (compressed): ${pubkeyData.length}`);\n }\n return (0, crypto_1.ripemd160)((0, crypto_1.sha256)(pubkeyData));\n}\n// For secp256k1 this assumes we already have a compressed pubkey.\nfunction pubkeyToRawAddress(pubkey) {\n if ((0, pubkeys_1.isSecp256k1Pubkey)(pubkey)) {\n const pubkeyData = (0, encoding_1.fromBase64)(pubkey.value);\n return rawSecp256k1PubkeyToRawAddress(pubkeyData);\n }\n else if ((0, pubkeys_1.isEd25519Pubkey)(pubkey)) {\n const pubkeyData = (0, encoding_1.fromBase64)(pubkey.value);\n return rawEd25519PubkeyToRawAddress(pubkeyData);\n }\n else if ((0, pubkeys_1.isMultisigThresholdPubkey)(pubkey)) {\n // https://github.com/tendermint/tendermint/blob/38b401657e4ad7a7eeb3c30a3cbf512037df3740/crypto/multisig/threshold_pubkey.go#L71-L74\n const pubkeyData = (0, encoding_2.encodeAminoPubkey)(pubkey);\n return (0, crypto_1.sha256)(pubkeyData).slice(0, 20);\n }\n else {\n throw new Error(\"Unsupported public key type\");\n }\n}\nfunction pubkeyToAddress(pubkey, prefix) {\n return (0, encoding_1.toBech32)(prefix, pubkeyToRawAddress(pubkey));\n}\n//# sourceMappingURL=addresses.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.coin = coin;\nexports.coins = coins;\nexports.parseCoins = parseCoins;\nexports.addCoins = addCoins;\nconst math_1 = require(\"@cosmjs/math\");\n/**\n * Creates a coin.\n *\n * If your values do not exceed the safe integer range of JS numbers (53 bit),\n * you can use the number type here. This is the case for all typical Cosmos SDK\n * chains that use the default 6 decimals.\n *\n * In case you need to supportr larger values, use unsigned integer strings instead.\n */\nfunction coin(amount, denom) {\n let outAmount;\n if (typeof amount === \"number\") {\n try {\n outAmount = new math_1.Uint53(amount).toString();\n }\n catch (_err) {\n throw new Error(\"Given amount is not a safe integer. Consider using a string instead to overcome the limitations of JS numbers.\");\n }\n }\n else {\n if (!amount.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid unsigned integer string format\");\n }\n outAmount = amount.replace(/^0*/, \"\") || \"0\";\n }\n return {\n amount: outAmount,\n denom: denom,\n };\n}\n/**\n * Creates a list of coins with one element.\n */\nfunction coins(amount, denom) {\n return [coin(amount, denom)];\n}\n/**\n * Takes a coins list like \"819966000ucosm,700000000ustake\" and parses it.\n *\n * Starting with CosmJS 0.32.3, the following imports are all synonym and support\n * a variety of denom types such as IBC denoms or tokenfactory. If you need to\n * restrict the denom to something very minimal, this needs to be implemented\n * separately in the caller.\n *\n * ```\n * import { parseCoins } from \"@cosmjs/proto-signing\";\n * // equals\n * import { parseCoins } from \"@cosmjs/stargate\";\n * // equals\n * import { parseCoins } from \"@cosmjs/amino\";\n * ```\n *\n * This function is not made for supporting decimal amounts and does not support\n * parsing gas prices.\n */\nfunction parseCoins(input) {\n return input\n .replace(/\\s/g, \"\")\n .split(\",\")\n .filter(Boolean)\n .map((part) => {\n // Denom regex from Stargate (https://github.com/cosmos/cosmos-sdk/blob/v0.42.7/types/coin.go#L599-L601)\n const match = part.match(/^([0-9]+)([a-zA-Z][a-zA-Z0-9/]{2,127})$/);\n if (!match)\n throw new Error(\"Got an invalid coin string\");\n return {\n amount: match[1].replace(/^0+/, \"\") || \"0\",\n denom: match[2],\n };\n });\n}\n/**\n * Function to sum up coins with type Coin\n */\nfunction addCoins(lhs, rhs) {\n if (lhs.denom !== rhs.denom)\n throw new Error(\"Trying to add two coins with different denoms\");\n return {\n amount: math_1.Decimal.fromAtomics(lhs.amount, 0).plus(math_1.Decimal.fromAtomics(rhs.amount, 0)).atomics,\n denom: lhs.denom,\n };\n}\n//# sourceMappingURL=coins.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeSecp256k1Pubkey = encodeSecp256k1Pubkey;\nexports.encodeEd25519Pubkey = encodeEd25519Pubkey;\nexports.decodeAminoPubkey = decodeAminoPubkey;\nexports.decodeBech32Pubkey = decodeBech32Pubkey;\nexports.encodeAminoPubkey = encodeAminoPubkey;\nexports.encodeBech32Pubkey = encodeBech32Pubkey;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst pubkeys_1 = require(\"./pubkeys\");\n/**\n * Takes a Secp256k1 public key as raw bytes and returns the Amino JSON\n * representation of it (the type/value wrapper object).\n */\nfunction encodeSecp256k1Pubkey(pubkey) {\n if (pubkey.length !== 33 || (pubkey[0] !== 0x02 && pubkey[0] !== 0x03)) {\n throw new Error(\"Public key must be compressed secp256k1, i.e. 33 bytes starting with 0x02 or 0x03\");\n }\n return {\n type: pubkeys_1.pubkeyType.secp256k1,\n value: (0, encoding_1.toBase64)(pubkey),\n };\n}\n/**\n * Takes an Edd25519 public key as raw bytes and returns the Amino JSON\n * representation of it (the type/value wrapper object).\n */\nfunction encodeEd25519Pubkey(pubkey) {\n if (pubkey.length !== 32) {\n throw new Error(\"Ed25519 public key must be 32 bytes long\");\n }\n return {\n type: pubkeys_1.pubkeyType.ed25519,\n value: (0, encoding_1.toBase64)(pubkey),\n };\n}\n// As discussed in https://github.com/binance-chain/javascript-sdk/issues/163\n// Prefixes listed here: https://github.com/tendermint/tendermint/blob/d419fffe18531317c28c29a292ad7d253f6cafdf/docs/spec/blockchain/encoding.md#public-key-cryptography\n// Last bytes is varint-encoded length prefix\nconst pubkeyAminoPrefixSecp256k1 = (0, encoding_1.fromHex)(\"eb5ae987\" + \"21\" /* fixed length */);\nconst pubkeyAminoPrefixEd25519 = (0, encoding_1.fromHex)(\"1624de64\" + \"20\" /* fixed length */);\nconst pubkeyAminoPrefixSr25519 = (0, encoding_1.fromHex)(\"0dfb1005\" + \"20\" /* fixed length */);\n/** See https://github.com/tendermint/tendermint/commit/38b401657e4ad7a7eeb3c30a3cbf512037df3740 */\nconst pubkeyAminoPrefixMultisigThreshold = (0, encoding_1.fromHex)(\"22c1f7e2\" /* variable length not included */);\n/**\n * Decodes a pubkey in the Amino binary format to a type/value object.\n */\nfunction decodeAminoPubkey(data) {\n if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixSecp256k1)) {\n const rest = data.slice(pubkeyAminoPrefixSecp256k1.length);\n if (rest.length !== 33) {\n throw new Error(\"Invalid rest data length. Expected 33 bytes (compressed secp256k1 pubkey).\");\n }\n return {\n type: pubkeys_1.pubkeyType.secp256k1,\n value: (0, encoding_1.toBase64)(rest),\n };\n }\n else if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixEd25519)) {\n const rest = data.slice(pubkeyAminoPrefixEd25519.length);\n if (rest.length !== 32) {\n throw new Error(\"Invalid rest data length. Expected 32 bytes (Ed25519 pubkey).\");\n }\n return {\n type: pubkeys_1.pubkeyType.ed25519,\n value: (0, encoding_1.toBase64)(rest),\n };\n }\n else if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixSr25519)) {\n const rest = data.slice(pubkeyAminoPrefixSr25519.length);\n if (rest.length !== 32) {\n throw new Error(\"Invalid rest data length. Expected 32 bytes (Sr25519 pubkey).\");\n }\n return {\n type: pubkeys_1.pubkeyType.sr25519,\n value: (0, encoding_1.toBase64)(rest),\n };\n }\n else if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixMultisigThreshold)) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return decodeMultisigPubkey(data);\n }\n else {\n throw new Error(\"Unsupported public key type. Amino data starts with: \" + (0, encoding_1.toHex)(data.slice(0, 5)));\n }\n}\n/**\n * Decodes a bech32 pubkey to Amino binary, which is then decoded to a type/value object.\n * The bech32 prefix is ignored and discareded.\n *\n * @param bechEncoded the bech32 encoded pubkey\n */\nfunction decodeBech32Pubkey(bechEncoded) {\n const { data } = (0, encoding_1.fromBech32)(bechEncoded);\n return decodeAminoPubkey(data);\n}\n/**\n * Uvarint decoder for Amino.\n * @see https://github.com/tendermint/go-amino/blob/8e779b71f40d175/decoder.go#L64-76\n * @returns varint as number, and bytes count occupied by varaint\n */\nfunction decodeUvarint(reader) {\n if (reader.length < 1) {\n throw new Error(\"Can't decode varint. EOF\");\n }\n if (reader[0] > 127) {\n throw new Error(\"Decoding numbers > 127 is not supported here. Please tell those lazy CosmJS maintainers to port the binary.Varint implementation from the Go standard library and write some tests.\");\n }\n return [reader[0], 1];\n}\n/**\n * Decodes a multisig pubkey to type object.\n * Pubkey structure [ prefix + const + threshold + loop:(const + pubkeyLength + pubkey ) ]\n * [ 4b + 1b + varint + loop:(1b + varint + pubkeyLength bytes) ]\n * @param data encoded pubkey\n */\nfunction decodeMultisigPubkey(data) {\n const reader = Array.from(data);\n // remove multisig amino prefix;\n const prefixFromReader = reader.splice(0, pubkeyAminoPrefixMultisigThreshold.length);\n if (!(0, utils_1.arrayContentStartsWith)(prefixFromReader, pubkeyAminoPrefixMultisigThreshold)) {\n throw new Error(\"Invalid multisig prefix.\");\n }\n // remove 0x08 threshold prefix;\n if (reader.shift() != 0x08) {\n throw new Error(\"Invalid multisig data. Expecting 0x08 prefix before threshold.\");\n }\n // read threshold\n const [threshold, thresholdBytesLength] = decodeUvarint(reader);\n reader.splice(0, thresholdBytesLength);\n // read participants pubkeys\n const pubkeys = [];\n while (reader.length > 0) {\n // remove 0x12 threshold prefix;\n if (reader.shift() != 0x12) {\n throw new Error(\"Invalid multisig data. Expecting 0x12 prefix before participant pubkey length.\");\n }\n // read pubkey length\n const [pubkeyLength, pubkeyLengthBytesSize] = decodeUvarint(reader);\n reader.splice(0, pubkeyLengthBytesSize);\n // verify that we can read pubkey\n if (reader.length < pubkeyLength) {\n throw new Error(\"Invalid multisig data length.\");\n }\n // read and decode participant pubkey\n const encodedPubkey = reader.splice(0, pubkeyLength);\n const pubkey = decodeAminoPubkey(Uint8Array.from(encodedPubkey));\n pubkeys.push(pubkey);\n }\n return {\n type: pubkeys_1.pubkeyType.multisigThreshold,\n value: {\n threshold: threshold.toString(),\n pubkeys: pubkeys,\n },\n };\n}\n/**\n * Uvarint encoder for Amino. This is the same encoding as `binary.PutUvarint` from the Go\n * standard library.\n *\n * @see https://github.com/tendermint/go-amino/blob/8e779b71f40d175/encoder.go#L77-L85\n */\nfunction encodeUvarint(value) {\n const checked = math_1.Uint53.fromString(value.toString()).toNumber();\n if (checked > 127) {\n throw new Error(\"Encoding numbers > 127 is not supported here. Please tell those lazy CosmJS maintainers to port the binary.PutUvarint implementation from the Go standard library and write some tests.\");\n }\n return [checked];\n}\n/**\n * Encodes a public key to binary Amino.\n */\nfunction encodeAminoPubkey(pubkey) {\n if ((0, pubkeys_1.isMultisigThresholdPubkey)(pubkey)) {\n const out = Array.from(pubkeyAminoPrefixMultisigThreshold);\n out.push(0x08); // TODO: What is this?\n out.push(...encodeUvarint(pubkey.value.threshold));\n for (const pubkeyData of pubkey.value.pubkeys.map((p) => encodeAminoPubkey(p))) {\n out.push(0x12); // TODO: What is this?\n out.push(...encodeUvarint(pubkeyData.length));\n out.push(...pubkeyData);\n }\n return new Uint8Array(out);\n }\n else if ((0, pubkeys_1.isEd25519Pubkey)(pubkey)) {\n return new Uint8Array([...pubkeyAminoPrefixEd25519, ...(0, encoding_1.fromBase64)(pubkey.value)]);\n }\n else if ((0, pubkeys_1.isSecp256k1Pubkey)(pubkey)) {\n return new Uint8Array([...pubkeyAminoPrefixSecp256k1, ...(0, encoding_1.fromBase64)(pubkey.value)]);\n }\n else {\n throw new Error(\"Unsupported pubkey type\");\n }\n}\n/**\n * Encodes a public key to binary Amino and then to bech32.\n *\n * @param pubkey the public key to encode\n * @param prefix the bech32 prefix (human readable part)\n */\nfunction encodeBech32Pubkey(pubkey, prefix) {\n return (0, encoding_1.toBech32)(prefix, encodeAminoPubkey(pubkey));\n}\n//# sourceMappingURL=encoding.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.executeKdf = exports.makeStdTx = exports.isStdTx = exports.serializeSignDoc = exports.makeSignDoc = exports.encodeSecp256k1Signature = exports.decodeSignature = exports.Secp256k1Wallet = exports.Secp256k1HdWallet = exports.extractKdfConfiguration = exports.pubkeyType = exports.isSinglePubkey = exports.isSecp256k1Pubkey = exports.isMultisigThresholdPubkey = exports.isEd25519Pubkey = exports.makeCosmoshubPath = exports.omitDefault = exports.createMultisigThresholdPubkey = exports.encodeSecp256k1Pubkey = exports.encodeEd25519Pubkey = exports.encodeBech32Pubkey = exports.encodeAminoPubkey = exports.decodeBech32Pubkey = exports.decodeAminoPubkey = exports.parseCoins = exports.coins = exports.coin = exports.addCoins = exports.rawSecp256k1PubkeyToRawAddress = exports.rawEd25519PubkeyToRawAddress = exports.pubkeyToRawAddress = exports.pubkeyToAddress = void 0;\nvar addresses_1 = require(\"./addresses\");\nObject.defineProperty(exports, \"pubkeyToAddress\", { enumerable: true, get: function () { return addresses_1.pubkeyToAddress; } });\nObject.defineProperty(exports, \"pubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.pubkeyToRawAddress; } });\nObject.defineProperty(exports, \"rawEd25519PubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.rawEd25519PubkeyToRawAddress; } });\nObject.defineProperty(exports, \"rawSecp256k1PubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.rawSecp256k1PubkeyToRawAddress; } });\nvar coins_1 = require(\"./coins\");\nObject.defineProperty(exports, \"addCoins\", { enumerable: true, get: function () { return coins_1.addCoins; } });\nObject.defineProperty(exports, \"coin\", { enumerable: true, get: function () { return coins_1.coin; } });\nObject.defineProperty(exports, \"coins\", { enumerable: true, get: function () { return coins_1.coins; } });\nObject.defineProperty(exports, \"parseCoins\", { enumerable: true, get: function () { return coins_1.parseCoins; } });\nvar encoding_1 = require(\"./encoding\");\nObject.defineProperty(exports, \"decodeAminoPubkey\", { enumerable: true, get: function () { return encoding_1.decodeAminoPubkey; } });\nObject.defineProperty(exports, \"decodeBech32Pubkey\", { enumerable: true, get: function () { return encoding_1.decodeBech32Pubkey; } });\nObject.defineProperty(exports, \"encodeAminoPubkey\", { enumerable: true, get: function () { return encoding_1.encodeAminoPubkey; } });\nObject.defineProperty(exports, \"encodeBech32Pubkey\", { enumerable: true, get: function () { return encoding_1.encodeBech32Pubkey; } });\nObject.defineProperty(exports, \"encodeEd25519Pubkey\", { enumerable: true, get: function () { return encoding_1.encodeEd25519Pubkey; } });\nObject.defineProperty(exports, \"encodeSecp256k1Pubkey\", { enumerable: true, get: function () { return encoding_1.encodeSecp256k1Pubkey; } });\nvar multisig_1 = require(\"./multisig\");\nObject.defineProperty(exports, \"createMultisigThresholdPubkey\", { enumerable: true, get: function () { return multisig_1.createMultisigThresholdPubkey; } });\nvar omitdefault_1 = require(\"./omitdefault\");\nObject.defineProperty(exports, \"omitDefault\", { enumerable: true, get: function () { return omitdefault_1.omitDefault; } });\nvar paths_1 = require(\"./paths\");\nObject.defineProperty(exports, \"makeCosmoshubPath\", { enumerable: true, get: function () { return paths_1.makeCosmoshubPath; } });\nvar pubkeys_1 = require(\"./pubkeys\");\nObject.defineProperty(exports, \"isEd25519Pubkey\", { enumerable: true, get: function () { return pubkeys_1.isEd25519Pubkey; } });\nObject.defineProperty(exports, \"isMultisigThresholdPubkey\", { enumerable: true, get: function () { return pubkeys_1.isMultisigThresholdPubkey; } });\nObject.defineProperty(exports, \"isSecp256k1Pubkey\", { enumerable: true, get: function () { return pubkeys_1.isSecp256k1Pubkey; } });\nObject.defineProperty(exports, \"isSinglePubkey\", { enumerable: true, get: function () { return pubkeys_1.isSinglePubkey; } });\nObject.defineProperty(exports, \"pubkeyType\", { enumerable: true, get: function () { return pubkeys_1.pubkeyType; } });\nvar secp256k1hdwallet_1 = require(\"./secp256k1hdwallet\");\nObject.defineProperty(exports, \"extractKdfConfiguration\", { enumerable: true, get: function () { return secp256k1hdwallet_1.extractKdfConfiguration; } });\nObject.defineProperty(exports, \"Secp256k1HdWallet\", { enumerable: true, get: function () { return secp256k1hdwallet_1.Secp256k1HdWallet; } });\nvar secp256k1wallet_1 = require(\"./secp256k1wallet\");\nObject.defineProperty(exports, \"Secp256k1Wallet\", { enumerable: true, get: function () { return secp256k1wallet_1.Secp256k1Wallet; } });\nvar signature_1 = require(\"./signature\");\nObject.defineProperty(exports, \"decodeSignature\", { enumerable: true, get: function () { return signature_1.decodeSignature; } });\nObject.defineProperty(exports, \"encodeSecp256k1Signature\", { enumerable: true, get: function () { return signature_1.encodeSecp256k1Signature; } });\nvar signdoc_1 = require(\"./signdoc\");\nObject.defineProperty(exports, \"makeSignDoc\", { enumerable: true, get: function () { return signdoc_1.makeSignDoc; } });\nObject.defineProperty(exports, \"serializeSignDoc\", { enumerable: true, get: function () { return signdoc_1.serializeSignDoc; } });\nvar stdtx_1 = require(\"./stdtx\");\nObject.defineProperty(exports, \"isStdTx\", { enumerable: true, get: function () { return stdtx_1.isStdTx; } });\nObject.defineProperty(exports, \"makeStdTx\", { enumerable: true, get: function () { return stdtx_1.makeStdTx; } });\nvar wallet_1 = require(\"./wallet\");\nObject.defineProperty(exports, \"executeKdf\", { enumerable: true, get: function () { return wallet_1.executeKdf; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compareArrays = compareArrays;\nexports.createMultisigThresholdPubkey = createMultisigThresholdPubkey;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst addresses_1 = require(\"./addresses\");\n/**\n * Compare arrays lexicographically.\n *\n * Returns value < 0 if `a < b`.\n * Returns value > 0 if `a > b`.\n * Returns 0 if `a === b`.\n */\nfunction compareArrays(a, b) {\n const aHex = (0, encoding_1.toHex)(a);\n const bHex = (0, encoding_1.toHex)(b);\n return aHex === bHex ? 0 : aHex < bHex ? -1 : 1;\n}\nfunction createMultisigThresholdPubkey(pubkeys, threshold, nosort = false) {\n const uintThreshold = new math_1.Uint53(threshold);\n if (uintThreshold.toNumber() > pubkeys.length) {\n throw new Error(`Threshold k = ${uintThreshold.toNumber()} exceeds number of keys n = ${pubkeys.length}`);\n }\n const outPubkeys = nosort\n ? pubkeys\n : Array.from(pubkeys).sort((lhs, rhs) => {\n // https://github.com/cosmos/cosmos-sdk/blob/v0.42.2/client/keys/add.go#L172-L174\n const addressLhs = (0, addresses_1.pubkeyToRawAddress)(lhs);\n const addressRhs = (0, addresses_1.pubkeyToRawAddress)(rhs);\n return compareArrays(addressLhs, addressRhs);\n });\n return {\n type: \"tendermint/PubKeyMultisigThreshold\",\n value: {\n threshold: uintThreshold.toString(),\n pubkeys: outPubkeys,\n },\n };\n}\n//# sourceMappingURL=multisig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.omitDefault = omitDefault;\n/**\n * Returns the given input. If the input is the default value\n * of protobuf, undefined is returned. Use this when creating Amino JSON converters.\n */\nfunction omitDefault(input) {\n switch (typeof input) {\n case \"string\":\n return input === \"\" ? undefined : input;\n case \"number\":\n return input === 0 ? undefined : input;\n case \"bigint\":\n return input === BigInt(0) ? undefined : input;\n case \"boolean\":\n return !input ? undefined : input;\n default:\n throw new Error(`Got unsupported type '${typeof input}'`);\n }\n}\n//# sourceMappingURL=omitdefault.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeCosmoshubPath = makeCosmoshubPath;\nconst crypto_1 = require(\"@cosmjs/crypto\");\n/**\n * The Cosmos Hub derivation path in the form `m/44'/118'/0'/0/a`\n * with 0-based account index `a`.\n */\nfunction makeCosmoshubPath(a) {\n return [\n crypto_1.Slip10RawIndex.hardened(44),\n crypto_1.Slip10RawIndex.hardened(118),\n crypto_1.Slip10RawIndex.hardened(0),\n crypto_1.Slip10RawIndex.normal(0),\n crypto_1.Slip10RawIndex.normal(a),\n ];\n}\n//# sourceMappingURL=paths.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pubkeyType = void 0;\nexports.isEd25519Pubkey = isEd25519Pubkey;\nexports.isSecp256k1Pubkey = isSecp256k1Pubkey;\nexports.isSinglePubkey = isSinglePubkey;\nexports.isMultisigThresholdPubkey = isMultisigThresholdPubkey;\nfunction isEd25519Pubkey(pubkey) {\n return pubkey.type === \"tendermint/PubKeyEd25519\";\n}\nfunction isSecp256k1Pubkey(pubkey) {\n return pubkey.type === \"tendermint/PubKeySecp256k1\";\n}\nexports.pubkeyType = {\n /** @see https://github.com/tendermint/tendermint/blob/v0.33.0/crypto/ed25519/ed25519.go#L22 */\n secp256k1: \"tendermint/PubKeySecp256k1\",\n /** @see https://github.com/tendermint/tendermint/blob/v0.33.0/crypto/secp256k1/secp256k1.go#L23 */\n ed25519: \"tendermint/PubKeyEd25519\",\n /** @see https://github.com/tendermint/tendermint/blob/v0.33.0/crypto/sr25519/codec.go#L12 */\n sr25519: \"tendermint/PubKeySr25519\",\n multisigThreshold: \"tendermint/PubKeyMultisigThreshold\",\n};\nfunction isSinglePubkey(pubkey) {\n const singPubkeyTypes = [exports.pubkeyType.ed25519, exports.pubkeyType.secp256k1, exports.pubkeyType.sr25519];\n return singPubkeyTypes.includes(pubkey.type);\n}\nfunction isMultisigThresholdPubkey(pubkey) {\n return pubkey.type === \"tendermint/PubKeyMultisigThreshold\";\n}\n//# sourceMappingURL=pubkeys.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Secp256k1HdWallet = void 0;\nexports.extractKdfConfiguration = extractKdfConfiguration;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst addresses_1 = require(\"./addresses\");\nconst paths_1 = require(\"./paths\");\nconst signature_1 = require(\"./signature\");\nconst signdoc_1 = require(\"./signdoc\");\nconst wallet_1 = require(\"./wallet\");\nconst serializationTypeV1 = \"secp256k1wallet-v1\";\n/**\n * A KDF configuration that is not very strong but can be used on the main thread.\n * It takes about 1 second in Node.js 16.0.0 and should have similar runtimes in other modern Wasm hosts.\n */\nconst basicPasswordHashingOptions = {\n algorithm: \"argon2id\",\n params: {\n outputLength: 32,\n opsLimit: 24,\n memLimitKib: 12 * 1024,\n },\n};\nfunction isDerivationJson(thing) {\n if (!(0, utils_1.isNonNullObject)(thing))\n return false;\n if (typeof thing.hdPath !== \"string\")\n return false;\n if (typeof thing.prefix !== \"string\")\n return false;\n return true;\n}\nfunction extractKdfConfigurationV1(doc) {\n return doc.kdf;\n}\nfunction extractKdfConfiguration(serialization) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n switch (root.type) {\n case serializationTypeV1:\n return extractKdfConfigurationV1(root);\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n}\nconst defaultOptions = {\n bip39Password: \"\",\n hdPaths: [(0, paths_1.makeCosmoshubPath)(0)],\n prefix: \"cosmos\",\n};\nclass Secp256k1HdWallet {\n /**\n * Restores a wallet from the given BIP39 mnemonic.\n *\n * @param mnemonic Any valid English mnemonic.\n * @param options An optional `Secp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix.\n */\n static async fromMnemonic(mnemonic, options = {}) {\n const mnemonicChecked = new crypto_1.EnglishMnemonic(mnemonic);\n const seed = await crypto_1.Bip39.mnemonicToSeed(mnemonicChecked, options.bip39Password);\n return new Secp256k1HdWallet(mnemonicChecked, {\n ...options,\n seed: seed,\n });\n }\n /**\n * Generates a new wallet with a BIP39 mnemonic of the given length.\n *\n * @param length The number of words in the mnemonic (12, 15, 18, 21 or 24).\n * @param options An optional `Secp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix.\n */\n static async generate(length = 12, options = {}) {\n const entropyLength = 4 * Math.floor((11 * length) / 33);\n const entropy = crypto_1.Random.getBytes(entropyLength);\n const mnemonic = crypto_1.Bip39.encode(entropy);\n return Secp256k1HdWallet.fromMnemonic(mnemonic.toString(), options);\n }\n /**\n * Restores a wallet from an encrypted serialization.\n *\n * @param password The user provided password used to generate an encryption key via a KDF.\n * This is not normalized internally (see \"Unicode normalization\" to learn more).\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n static async deserialize(serialization, password) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n switch (root.type) {\n case serializationTypeV1:\n return Secp256k1HdWallet.deserializeTypeV1(serialization, password);\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n }\n /**\n * Restores a wallet from an encrypted serialization.\n *\n * This is an advanced alternative to calling `deserialize(serialization, password)` directly, which allows\n * you to offload the KDF execution to a non-UI thread (e.g. in a WebWorker).\n *\n * The caller is responsible for ensuring the key was derived with the given KDF configuration. This can be\n * done using `extractKdfConfiguration(serialization)` and `executeKdf(password, kdfConfiguration)` from this package.\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n static async deserializeWithEncryptionKey(serialization, encryptionKey) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n const untypedRoot = root;\n switch (untypedRoot.type) {\n case serializationTypeV1: {\n const decryptedBytes = await (0, wallet_1.decrypt)((0, encoding_1.fromBase64)(untypedRoot.data), encryptionKey, untypedRoot.encryption);\n const decryptedDocument = JSON.parse((0, encoding_1.fromUtf8)(decryptedBytes));\n const { mnemonic, accounts } = decryptedDocument;\n (0, utils_1.assert)(typeof mnemonic === \"string\");\n if (!Array.isArray(accounts))\n throw new Error(\"Property 'accounts' is not an array\");\n if (!accounts.every((account) => isDerivationJson(account))) {\n throw new Error(\"Account is not in the correct format.\");\n }\n const firstPrefix = accounts[0].prefix;\n if (!accounts.every(({ prefix }) => prefix === firstPrefix)) {\n throw new Error(\"Accounts do not all have the same prefix\");\n }\n const hdPaths = accounts.map(({ hdPath }) => (0, crypto_1.stringToPath)(hdPath));\n return Secp256k1HdWallet.fromMnemonic(mnemonic, {\n hdPaths: hdPaths,\n prefix: firstPrefix,\n });\n }\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n }\n static async deserializeTypeV1(serialization, password) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n const encryptionKey = await (0, wallet_1.executeKdf)(password, root.kdf);\n return Secp256k1HdWallet.deserializeWithEncryptionKey(serialization, encryptionKey);\n }\n constructor(mnemonic, options) {\n const hdPaths = options.hdPaths ?? defaultOptions.hdPaths;\n const prefix = options.prefix ?? defaultOptions.prefix;\n this.secret = mnemonic;\n this.seed = options.seed;\n this.accounts = hdPaths.map((hdPath) => ({\n hdPath: hdPath,\n prefix,\n }));\n }\n get mnemonic() {\n return this.secret.toString();\n }\n async getAccounts() {\n const accountsWithPrivkeys = await this.getAccountsWithPrivkeys();\n return accountsWithPrivkeys.map(({ algo, pubkey, address }) => ({\n algo: algo,\n pubkey: pubkey,\n address: address,\n }));\n }\n async signAmino(signerAddress, signDoc) {\n const accounts = await this.getAccountsWithPrivkeys();\n const account = accounts.find(({ address }) => address === signerAddress);\n if (account === undefined) {\n throw new Error(`Address ${signerAddress} not found in wallet`);\n }\n const { privkey, pubkey } = account;\n const message = (0, crypto_1.sha256)((0, signdoc_1.serializeSignDoc)(signDoc));\n const signature = await crypto_1.Secp256k1.createSignature(message, privkey);\n const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]);\n return {\n signed: signDoc,\n signature: (0, signature_1.encodeSecp256k1Signature)(pubkey, signatureBytes),\n };\n }\n /**\n * Generates an encrypted serialization of this wallet.\n *\n * @param password The user provided password used to generate an encryption key via a KDF.\n * This is not normalized internally (see \"Unicode normalization\" to learn more).\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n async serialize(password) {\n const kdfConfiguration = basicPasswordHashingOptions;\n const encryptionKey = await (0, wallet_1.executeKdf)(password, kdfConfiguration);\n return this.serializeWithEncryptionKey(encryptionKey, kdfConfiguration);\n }\n /**\n * Generates an encrypted serialization of this wallet.\n *\n * This is an advanced alternative to calling `serialize(password)` directly, which allows you to\n * offload the KDF execution to a non-UI thread (e.g. in a WebWorker).\n *\n * The caller is responsible for ensuring the key was derived with the given KDF options. If this\n * is not the case, the wallet cannot be restored with the original password.\n *\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\n async serializeWithEncryptionKey(encryptionKey, kdfConfiguration) {\n const dataToEncrypt = {\n mnemonic: this.mnemonic,\n accounts: this.accounts.map(({ hdPath, prefix }) => ({\n hdPath: (0, crypto_1.pathToString)(hdPath),\n prefix: prefix,\n })),\n };\n const dataToEncryptRaw = (0, encoding_1.toUtf8)(JSON.stringify(dataToEncrypt));\n const encryptionConfiguration = {\n algorithm: wallet_1.supportedAlgorithms.xchacha20poly1305Ietf,\n };\n const encryptedData = await (0, wallet_1.encrypt)(dataToEncryptRaw, encryptionKey, encryptionConfiguration);\n const out = {\n type: serializationTypeV1,\n kdf: kdfConfiguration,\n encryption: encryptionConfiguration,\n data: (0, encoding_1.toBase64)(encryptedData),\n };\n return JSON.stringify(out);\n }\n async getKeyPair(hdPath) {\n const { privkey } = crypto_1.Slip10.derivePath(crypto_1.Slip10Curve.Secp256k1, this.seed, hdPath);\n const { pubkey } = await crypto_1.Secp256k1.makeKeypair(privkey);\n return {\n privkey: privkey,\n pubkey: crypto_1.Secp256k1.compressPubkey(pubkey),\n };\n }\n async getAccountsWithPrivkeys() {\n return Promise.all(this.accounts.map(async ({ hdPath, prefix }) => {\n const { privkey, pubkey } = await this.getKeyPair(hdPath);\n const address = (0, encoding_1.toBech32)(prefix, (0, addresses_1.rawSecp256k1PubkeyToRawAddress)(pubkey));\n return {\n algo: \"secp256k1\",\n privkey: privkey,\n pubkey: pubkey,\n address: address,\n };\n }));\n }\n}\nexports.Secp256k1HdWallet = Secp256k1HdWallet;\n//# sourceMappingURL=secp256k1hdwallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Secp256k1Wallet = void 0;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst addresses_1 = require(\"./addresses\");\nconst signature_1 = require(\"./signature\");\nconst signdoc_1 = require(\"./signdoc\");\n/**\n * A wallet that holds a single secp256k1 keypair.\n *\n * If you want to work with BIP39 mnemonics and multiple accounts, use Secp256k1HdWallet.\n */\nclass Secp256k1Wallet {\n /**\n * Creates a Secp256k1Wallet from the given private key\n *\n * @param privkey The private key.\n * @param prefix The bech32 address prefix (human readable part). Defaults to \"cosmos\".\n */\n static async fromKey(privkey, prefix = \"cosmos\") {\n const uncompressed = (await crypto_1.Secp256k1.makeKeypair(privkey)).pubkey;\n return new Secp256k1Wallet(privkey, crypto_1.Secp256k1.compressPubkey(uncompressed), prefix);\n }\n constructor(privkey, pubkey, prefix) {\n this.privkey = privkey;\n this.pubkey = pubkey;\n this.prefix = prefix;\n }\n get address() {\n return (0, encoding_1.toBech32)(this.prefix, (0, addresses_1.rawSecp256k1PubkeyToRawAddress)(this.pubkey));\n }\n async getAccounts() {\n return [\n {\n algo: \"secp256k1\",\n address: this.address,\n pubkey: this.pubkey,\n },\n ];\n }\n async signAmino(signerAddress, signDoc) {\n if (signerAddress !== this.address) {\n throw new Error(`Address ${signerAddress} not found in wallet`);\n }\n const message = new crypto_1.Sha256((0, signdoc_1.serializeSignDoc)(signDoc)).digest();\n const signature = await crypto_1.Secp256k1.createSignature(message, this.privkey);\n const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]);\n return {\n signed: signDoc,\n signature: (0, signature_1.encodeSecp256k1Signature)(this.pubkey, signatureBytes),\n };\n }\n}\nexports.Secp256k1Wallet = Secp256k1Wallet;\n//# sourceMappingURL=secp256k1wallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeSecp256k1Signature = encodeSecp256k1Signature;\nexports.decodeSignature = decodeSignature;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst encoding_2 = require(\"./encoding\");\nconst pubkeys_1 = require(\"./pubkeys\");\n/**\n * Takes a binary pubkey and signature to create a signature object\n *\n * @param pubkey a compressed secp256k1 public key\n * @param signature a 64 byte fixed length representation of secp256k1 signature components r and s\n */\nfunction encodeSecp256k1Signature(pubkey, signature) {\n if (signature.length !== 64) {\n throw new Error(\"Signature must be 64 bytes long. Cosmos SDK uses a 2x32 byte fixed length encoding for the secp256k1 signature integers r and s.\");\n }\n return {\n pub_key: (0, encoding_2.encodeSecp256k1Pubkey)(pubkey),\n signature: (0, encoding_1.toBase64)(signature),\n };\n}\nfunction decodeSignature(signature) {\n switch (signature.pub_key.type) {\n // Note: please don't add cases here without writing additional unit tests\n case pubkeys_1.pubkeyType.secp256k1:\n return {\n pubkey: (0, encoding_1.fromBase64)(signature.pub_key.value),\n signature: (0, encoding_1.fromBase64)(signature.signature),\n };\n default:\n throw new Error(\"Unsupported pubkey type\");\n }\n}\n//# sourceMappingURL=signature.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sortedJsonStringify = sortedJsonStringify;\nexports.makeSignDoc = makeSignDoc;\nexports.escapeCharacters = escapeCharacters;\nexports.serializeSignDoc = serializeSignDoc;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nfunction sortedObject(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return obj;\n }\n if (Array.isArray(obj)) {\n return obj.map(sortedObject);\n }\n const sortedKeys = Object.keys(obj).sort();\n const result = {};\n // NOTE: Use forEach instead of reduce for performance with large objects eg Wasm code\n sortedKeys.forEach((key) => {\n result[key] = sortedObject(obj[key]);\n });\n return result;\n}\n/** Returns a JSON string with objects sorted by key */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction sortedJsonStringify(obj) {\n return JSON.stringify(sortedObject(obj));\n}\nfunction makeSignDoc(msgs, fee, chainId, memo, accountNumber, sequence, timeout_height) {\n return {\n chain_id: chainId,\n account_number: math_1.Uint53.fromString(accountNumber.toString()).toString(),\n sequence: math_1.Uint53.fromString(sequence.toString()).toString(),\n fee: fee,\n msgs: msgs,\n memo: memo || \"\",\n ...(timeout_height && { timeout_height: timeout_height.toString() }),\n };\n}\n/**\n * Takes a valid JSON document and performs the following escapings in string values:\n *\n * `&` -> `\\u0026`\n * `<` -> `\\u003c`\n * `>` -> `\\u003e`\n *\n * Since those characters do not occur in other places of the JSON document, only\n * string values are affected.\n *\n * If the input is invalid JSON, the behaviour is undefined.\n */\nfunction escapeCharacters(input) {\n // When we migrate to target es2021 or above, we can use replaceAll instead of global patterns.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll\n const amp = /&/g;\n const lt = //g;\n return input.replace(amp, \"\\\\u0026\").replace(lt, \"\\\\u003c\").replace(gt, \"\\\\u003e\");\n}\nfunction serializeSignDoc(signDoc) {\n const serialized = escapeCharacters(sortedJsonStringify(signDoc));\n return (0, encoding_1.toUtf8)(serialized);\n}\n//# sourceMappingURL=signdoc.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isStdTx = isStdTx;\nexports.makeStdTx = makeStdTx;\nfunction isStdTx(txValue) {\n const { memo, msg, fee, signatures } = txValue;\n return (typeof memo === \"string\" && Array.isArray(msg) && typeof fee === \"object\" && Array.isArray(signatures));\n}\nfunction makeStdTx(content, signatures) {\n return {\n msg: content.msgs,\n fee: content.fee,\n memo: content.memo,\n signatures: Array.isArray(signatures) ? signatures : [signatures],\n };\n}\n//# sourceMappingURL=stdtx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.supportedAlgorithms = exports.cosmjsSalt = void 0;\nexports.executeKdf = executeKdf;\nexports.encrypt = encrypt;\nexports.decrypt = decrypt;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\n/**\n * A fixed salt is chosen to archive a deterministic password to key derivation.\n * This reduces the scope of a potential rainbow attack to all CosmJS users.\n * Must be 16 bytes due to implementation limitations.\n */\nexports.cosmjsSalt = (0, encoding_1.toAscii)(\"The CosmJS salt.\");\n/**\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\nasync function executeKdf(password, configuration) {\n switch (configuration.algorithm) {\n case \"argon2id\": {\n const options = configuration.params;\n if (!(0, crypto_1.isArgon2idOptions)(options))\n throw new Error(\"Invalid format of argon2id params\");\n return crypto_1.Argon2id.execute(password, exports.cosmjsSalt, options);\n }\n default:\n throw new Error(\"Unsupported KDF algorithm\");\n }\n}\nexports.supportedAlgorithms = {\n xchacha20poly1305Ietf: \"xchacha20poly1305-ietf\",\n};\n/**\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\nasync function encrypt(plaintext, encryptionKey, config) {\n switch (config.algorithm) {\n case exports.supportedAlgorithms.xchacha20poly1305Ietf: {\n const nonce = crypto_1.Random.getBytes(crypto_1.xchacha20NonceLength);\n // Prepend fixed-length nonce to ciphertext as suggested in the example from https://github.com/jedisct1/libsodium.js#api\n return new Uint8Array([\n ...nonce,\n ...(await crypto_1.Xchacha20poly1305Ietf.encrypt(plaintext, encryptionKey, nonce)),\n ]);\n }\n default:\n throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`);\n }\n}\n/**\n * @deprecated Wallet encryption support will be removed from CosmJS in a future version.\n * If you actually use this, please comment at https://github.com/cosmos/cosmjs/issues/1796.\n */\nasync function decrypt(ciphertext, encryptionKey, config) {\n switch (config.algorithm) {\n case exports.supportedAlgorithms.xchacha20poly1305Ietf: {\n const nonce = ciphertext.slice(0, crypto_1.xchacha20NonceLength);\n return crypto_1.Xchacha20poly1305Ietf.decrypt(ciphertext.slice(crypto_1.xchacha20NonceLength), encryptionKey, nonce);\n }\n default:\n throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`);\n }\n}\n//# sourceMappingURL=wallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toAscii = toAscii;\nexports.fromAscii = fromAscii;\nfunction toAscii(input) {\n const toNums = (str) => str.split(\"\").map((x) => {\n const charCode = x.charCodeAt(0);\n // 0x00–0x1F control characters\n // 0x20–0x7E printable characters\n // 0x7F delete character\n // 0x80–0xFF out of 7 bit ascii range\n if (charCode < 0x20 || charCode > 0x7e) {\n throw new Error(\"Cannot encode character that is out of printable ASCII range: \" + charCode);\n }\n return charCode;\n });\n return Uint8Array.from(toNums(input));\n}\nfunction fromAscii(data) {\n const fromNums = (listOfNumbers) => listOfNumbers.map((x) => {\n // 0x00–0x1F control characters\n // 0x20–0x7E printable characters\n // 0x7F delete character\n // 0x80–0xFF out of 7 bit ascii range\n if (x < 0x20 || x > 0x7e) {\n throw new Error(\"Cannot decode character that is out of printable ASCII range: \" + x);\n }\n return String.fromCharCode(x);\n });\n return fromNums(Array.from(data)).join(\"\");\n}\n//# sourceMappingURL=ascii.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBase64 = toBase64;\nexports.fromBase64 = fromBase64;\nconst base64js = __importStar(require(\"base64-js\"));\nfunction toBase64(data) {\n return base64js.fromByteArray(data);\n}\nfunction fromBase64(base64String) {\n if (!base64String.match(/^[a-zA-Z0-9+/]*={0,2}$/)) {\n throw new Error(\"Invalid base64 string format\");\n }\n return base64js.toByteArray(base64String);\n}\n//# sourceMappingURL=base64.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBech32 = toBech32;\nexports.fromBech32 = fromBech32;\nexports.normalizeBech32 = normalizeBech32;\nconst bech32 = __importStar(require(\"bech32\"));\nfunction toBech32(prefix, data, limit) {\n const address = bech32.encode(prefix, bech32.toWords(data), limit);\n return address;\n}\nfunction fromBech32(address, limit = Infinity) {\n const decodedAddress = bech32.decode(address, limit);\n return {\n prefix: decodedAddress.prefix,\n data: new Uint8Array(bech32.fromWords(decodedAddress.words)),\n };\n}\n/**\n * Takes a bech32 address and returns a normalized (i.e. lower case) representation of it.\n *\n * The input is validated along the way, which makes this significantly safer than\n * using `address.toLowerCase()`.\n */\nfunction normalizeBech32(address) {\n const { prefix, data } = fromBech32(address);\n return toBech32(prefix, data);\n}\n//# sourceMappingURL=bech32.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toHex = toHex;\nexports.fromHex = fromHex;\nfunction toHex(data) {\n let out = \"\";\n for (const byte of data) {\n out += (\"0\" + byte.toString(16)).slice(-2);\n }\n return out;\n}\nfunction fromHex(hexstring) {\n if (hexstring.length % 2 !== 0) {\n throw new Error(\"hex string length must be a multiple of 2\");\n }\n const out = new Uint8Array(hexstring.length / 2);\n for (let i = 0; i < out.length; i++) {\n const j = 2 * i;\n const hexByteAsString = hexstring.slice(j, j + 2);\n if (!hexByteAsString.match(/[0-9a-f]{2}/i)) {\n throw new Error(\"hex string contains invalid characters\");\n }\n out[i] = parseInt(hexByteAsString, 16);\n }\n return out;\n}\n//# sourceMappingURL=hex.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = exports.toRfc3339 = exports.fromRfc3339 = exports.toHex = exports.fromHex = exports.toBech32 = exports.normalizeBech32 = exports.fromBech32 = exports.toBase64 = exports.fromBase64 = exports.toAscii = exports.fromAscii = void 0;\nvar ascii_1 = require(\"./ascii\");\nObject.defineProperty(exports, \"fromAscii\", { enumerable: true, get: function () { return ascii_1.fromAscii; } });\nObject.defineProperty(exports, \"toAscii\", { enumerable: true, get: function () { return ascii_1.toAscii; } });\nvar base64_1 = require(\"./base64\");\nObject.defineProperty(exports, \"fromBase64\", { enumerable: true, get: function () { return base64_1.fromBase64; } });\nObject.defineProperty(exports, \"toBase64\", { enumerable: true, get: function () { return base64_1.toBase64; } });\nvar bech32_1 = require(\"./bech32\");\nObject.defineProperty(exports, \"fromBech32\", { enumerable: true, get: function () { return bech32_1.fromBech32; } });\nObject.defineProperty(exports, \"normalizeBech32\", { enumerable: true, get: function () { return bech32_1.normalizeBech32; } });\nObject.defineProperty(exports, \"toBech32\", { enumerable: true, get: function () { return bech32_1.toBech32; } });\nvar hex_1 = require(\"./hex\");\nObject.defineProperty(exports, \"fromHex\", { enumerable: true, get: function () { return hex_1.fromHex; } });\nObject.defineProperty(exports, \"toHex\", { enumerable: true, get: function () { return hex_1.toHex; } });\nvar rfc3339_1 = require(\"./rfc3339\");\nObject.defineProperty(exports, \"fromRfc3339\", { enumerable: true, get: function () { return rfc3339_1.fromRfc3339; } });\nObject.defineProperty(exports, \"toRfc3339\", { enumerable: true, get: function () { return rfc3339_1.toRfc3339; } });\nvar utf8_1 = require(\"./utf8\");\nObject.defineProperty(exports, \"fromUtf8\", { enumerable: true, get: function () { return utf8_1.fromUtf8; } });\nObject.defineProperty(exports, \"toUtf8\", { enumerable: true, get: function () { return utf8_1.toUtf8; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromRfc3339 = fromRfc3339;\nexports.toRfc3339 = toRfc3339;\nconst rfc3339Matcher = /^(\\d{4})-(\\d{2})-(\\d{2})[T ](\\d{2}):(\\d{2}):(\\d{2})(\\.\\d{1,9})?((?:[+-]\\d{2}:\\d{2})|Z)$/;\nfunction padded(integer, length = 2) {\n return integer.toString().padStart(length, \"0\");\n}\nfunction fromRfc3339(str) {\n const matches = rfc3339Matcher.exec(str);\n if (!matches) {\n throw new Error(\"Date string is not in RFC3339 format\");\n }\n const year = +matches[1];\n const month = +matches[2];\n const day = +matches[3];\n const hour = +matches[4];\n const minute = +matches[5];\n const second = +matches[6];\n // fractional seconds match either undefined or a string like \".1\", \".123456789\"\n const milliSeconds = matches[7] ? Math.floor(+matches[7] * 1000) : 0;\n let tzOffsetSign;\n let tzOffsetHours;\n let tzOffsetMinutes;\n // if timezone is undefined, it must be Z or nothing (otherwise the group would have captured).\n if (matches[8] === \"Z\") {\n tzOffsetSign = 1;\n tzOffsetHours = 0;\n tzOffsetMinutes = 0;\n }\n else {\n tzOffsetSign = matches[8].substring(0, 1) === \"-\" ? -1 : 1;\n tzOffsetHours = +matches[8].substring(1, 3);\n tzOffsetMinutes = +matches[8].substring(4, 6);\n }\n const tzOffset = tzOffsetSign * (tzOffsetHours * 60 + tzOffsetMinutes) * 60; // seconds\n const date = new Date();\n date.setUTCFullYear(year, month - 1, day);\n date.setUTCHours(hour, minute, second, milliSeconds);\n return new Date(date.getTime() - tzOffset * 1000);\n}\nfunction toRfc3339(date) {\n const year = date.getUTCFullYear();\n const month = padded(date.getUTCMonth() + 1);\n const day = padded(date.getUTCDate());\n const hour = padded(date.getUTCHours());\n const minute = padded(date.getUTCMinutes());\n const second = padded(date.getUTCSeconds());\n const ms = padded(date.getUTCMilliseconds(), 3);\n return `${year}-${month}-${day}T${hour}:${minute}:${second}.${ms}Z`;\n}\n//# sourceMappingURL=rfc3339.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = toUtf8;\nexports.fromUtf8 = fromUtf8;\nfunction toUtf8(str) {\n return new TextEncoder().encode(str);\n}\n/**\n * Takes UTF-8 data and decodes it to a string.\n *\n * In lossy mode, the [REPLACEMENT CHARACTER](https://en.wikipedia.org/wiki/Specials_(Unicode_block))\n * is used to substitude invalid encodings.\n * By default lossy mode is off and invalid data will lead to exceptions.\n */\nfunction fromUtf8(data, lossy = false) {\n const fatal = !lossy;\n return new TextDecoder(\"utf-8\", { fatal }).decode(data);\n}\n//# sourceMappingURL=utf8.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Decimal = void 0;\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\n// Too large values lead to massive memory usage. Limit to something sensible.\n// The largest value we need is 18 (Ether).\nconst maxFractionalDigits = 100;\n/**\n * A type for arbitrary precision, non-negative decimals.\n *\n * Instances of this class are immutable.\n */\nclass Decimal {\n static fromUserInput(input, fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n const badCharacter = input.match(/[^0-9.]/);\n if (badCharacter) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n throw new Error(`Invalid character at position ${badCharacter.index + 1}`);\n }\n let whole;\n let fractional;\n if (input === \"\") {\n whole = \"0\";\n fractional = \"\";\n }\n else if (input.search(/\\./) === -1) {\n // integer format, no separator\n whole = input;\n fractional = \"\";\n }\n else {\n const parts = input.split(\".\");\n switch (parts.length) {\n case 0:\n case 1:\n throw new Error(\"Fewer than two elements in split result. This must not happen here.\");\n case 2:\n if (!parts[1])\n throw new Error(\"Fractional part missing\");\n whole = parts[0];\n fractional = parts[1].replace(/0+$/, \"\");\n break;\n default:\n throw new Error(\"More than one separator found\");\n }\n }\n if (fractional.length > fractionalDigits) {\n throw new Error(\"Got more fractional digits than supported\");\n }\n const quantity = `${whole}${fractional.padEnd(fractionalDigits, \"0\")}`;\n return new Decimal(quantity, fractionalDigits);\n }\n static fromAtomics(atomics, fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(atomics, fractionalDigits);\n }\n /**\n * Creates a Decimal with value 0.0 and the given number of fractial digits.\n *\n * Fractional digits are not relevant for the value but needed to be able\n * to perform arithmetic operations with other decimals.\n */\n static zero(fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(\"0\", fractionalDigits);\n }\n /**\n * Creates a Decimal with value 1.0 and the given number of fractial digits.\n *\n * Fractional digits are not relevant for the value but needed to be able\n * to perform arithmetic operations with other decimals.\n */\n static one(fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(\"1\" + \"0\".repeat(fractionalDigits), fractionalDigits);\n }\n static verifyFractionalDigits(fractionalDigits) {\n if (!Number.isInteger(fractionalDigits))\n throw new Error(\"Fractional digits is not an integer\");\n if (fractionalDigits < 0)\n throw new Error(\"Fractional digits must not be negative\");\n if (fractionalDigits > maxFractionalDigits) {\n throw new Error(`Fractional digits must not exceed ${maxFractionalDigits}`);\n }\n }\n static compare(a, b) {\n if (a.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n return a.data.atomics.cmp(new bn_js_1.default(b.atomics));\n }\n get atomics() {\n return this.data.atomics.toString();\n }\n get fractionalDigits() {\n return this.data.fractionalDigits;\n }\n constructor(atomics, fractionalDigits) {\n if (!atomics.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format. Only non-negative integers in decimal representation supported.\");\n }\n this.data = {\n atomics: new bn_js_1.default(atomics),\n fractionalDigits: fractionalDigits,\n };\n }\n /** Creates a new instance with the same value */\n clone() {\n return new Decimal(this.atomics, this.fractionalDigits);\n }\n /** Returns the greatest decimal <= this which has no fractional part (rounding down) */\n floor() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return this.clone();\n }\n else {\n return Decimal.fromAtomics(whole.mul(factor).toString(), this.fractionalDigits);\n }\n }\n /** Returns the smallest decimal >= this which has no fractional part (rounding up) */\n ceil() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return this.clone();\n }\n else {\n return Decimal.fromAtomics(whole.addn(1).mul(factor).toString(), this.fractionalDigits);\n }\n }\n toString() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return whole.toString();\n }\n else {\n const fullFractionalPart = fractional.toString().padStart(this.data.fractionalDigits, \"0\");\n const trimmedFractionalPart = fullFractionalPart.replace(/0+$/, \"\");\n return `${whole.toString()}.${trimmedFractionalPart}`;\n }\n }\n /**\n * Returns an approximation as a float type. Only use this if no\n * exact calculation is required.\n */\n toFloatApproximation() {\n const out = Number(this.toString());\n if (Number.isNaN(out))\n throw new Error(\"Conversion to number failed\");\n return out;\n }\n /**\n * a.plus(b) returns a+b.\n *\n * Both values need to have the same fractional digits.\n */\n plus(b) {\n if (this.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n const sum = this.data.atomics.add(new bn_js_1.default(b.atomics));\n return new Decimal(sum.toString(), this.fractionalDigits);\n }\n /**\n * a.minus(b) returns a-b.\n *\n * Both values need to have the same fractional digits.\n * The resulting difference needs to be non-negative.\n */\n minus(b) {\n if (this.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n const difference = this.data.atomics.sub(new bn_js_1.default(b.atomics));\n if (difference.ltn(0))\n throw new Error(\"Difference must not be negative\");\n return new Decimal(difference.toString(), this.fractionalDigits);\n }\n /**\n * a.multiply(b) returns a*b.\n *\n * We only allow multiplication by unsigned integers to avoid rounding errors.\n */\n multiply(b) {\n const product = this.data.atomics.mul(new bn_js_1.default(b.toString()));\n return new Decimal(product.toString(), this.fractionalDigits);\n }\n equals(b) {\n return Decimal.compare(this, b) === 0;\n }\n isLessThan(b) {\n return Decimal.compare(this, b) < 0;\n }\n isLessThanOrEqual(b) {\n return Decimal.compare(this, b) <= 0;\n }\n isGreaterThan(b) {\n return Decimal.compare(this, b) > 0;\n }\n isGreaterThanOrEqual(b) {\n return Decimal.compare(this, b) >= 0;\n }\n}\nexports.Decimal = Decimal;\n//# sourceMappingURL=decimal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uint64 = exports.Uint53 = exports.Uint32 = exports.Int53 = exports.Decimal = void 0;\nvar decimal_1 = require(\"./decimal\");\nObject.defineProperty(exports, \"Decimal\", { enumerable: true, get: function () { return decimal_1.Decimal; } });\nvar integers_1 = require(\"./integers\");\nObject.defineProperty(exports, \"Int53\", { enumerable: true, get: function () { return integers_1.Int53; } });\nObject.defineProperty(exports, \"Uint32\", { enumerable: true, get: function () { return integers_1.Uint32; } });\nObject.defineProperty(exports, \"Uint53\", { enumerable: true, get: function () { return integers_1.Uint53; } });\nObject.defineProperty(exports, \"Uint64\", { enumerable: true, get: function () { return integers_1.Uint64; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n/* eslint-disable no-bitwise */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uint64 = exports.Uint53 = exports.Int53 = exports.Uint32 = void 0;\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst uint64MaxValue = new bn_js_1.default(\"18446744073709551615\", 10, \"be\");\nclass Uint32 {\n /** @deprecated use Uint32.fromBytes */\n static fromBigEndianBytes(bytes) {\n return Uint32.fromBytes(bytes);\n }\n /**\n * Creates a Uint32 from a fixed length byte array.\n *\n * @param bytes a list of exactly 4 bytes\n * @param endianess defaults to big endian\n */\n static fromBytes(bytes, endianess = \"be\") {\n if (bytes.length !== 4) {\n throw new Error(\"Invalid input length. Expected 4 bytes.\");\n }\n for (let i = 0; i < bytes.length; ++i) {\n if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) {\n throw new Error(\"Invalid value in byte. Found: \" + bytes[i]);\n }\n }\n const beBytes = endianess === \"be\" ? bytes : Array.from(bytes).reverse();\n // Use multiplication instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint32(beBytes[0] * 2 ** 24 + beBytes[1] * 2 ** 16 + beBytes[2] * 2 ** 8 + beBytes[3]);\n }\n static fromString(str) {\n if (!str.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Uint32(Number.parseInt(str, 10));\n }\n constructor(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n if (input < 0 || input > 4294967295) {\n throw new Error(\"Input not in uint32 range: \" + input.toString());\n }\n this.data = input;\n }\n toBytesBigEndian() {\n // Use division instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint8Array([\n Math.floor(this.data / 2 ** 24) & 0xff,\n Math.floor(this.data / 2 ** 16) & 0xff,\n Math.floor(this.data / 2 ** 8) & 0xff,\n Math.floor(this.data / 2 ** 0) & 0xff,\n ]);\n }\n toBytesLittleEndian() {\n // Use division instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint8Array([\n Math.floor(this.data / 2 ** 0) & 0xff,\n Math.floor(this.data / 2 ** 8) & 0xff,\n Math.floor(this.data / 2 ** 16) & 0xff,\n Math.floor(this.data / 2 ** 24) & 0xff,\n ]);\n }\n toNumber() {\n return this.data;\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Uint32 = Uint32;\nclass Int53 {\n static fromString(str) {\n if (!str.match(/^-?[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Int53(Number.parseInt(str, 10));\n }\n constructor(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n if (input < Number.MIN_SAFE_INTEGER || input > Number.MAX_SAFE_INTEGER) {\n throw new Error(\"Input not in int53 range: \" + input.toString());\n }\n this.data = input;\n }\n toNumber() {\n return this.data;\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Int53 = Int53;\nclass Uint53 {\n static fromString(str) {\n const signed = Int53.fromString(str);\n return new Uint53(signed.toNumber());\n }\n constructor(input) {\n const signed = new Int53(input);\n if (signed.toNumber() < 0) {\n throw new Error(\"Input is negative\");\n }\n this.data = signed;\n }\n toNumber() {\n return this.data.toNumber();\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Uint53 = Uint53;\nclass Uint64 {\n /** @deprecated use Uint64.fromBytes */\n static fromBytesBigEndian(bytes) {\n return Uint64.fromBytes(bytes);\n }\n /**\n * Creates a Uint64 from a fixed length byte array.\n *\n * @param bytes a list of exactly 8 bytes\n * @param endianess defaults to big endian\n */\n static fromBytes(bytes, endianess = \"be\") {\n if (bytes.length !== 8) {\n throw new Error(\"Invalid input length. Expected 8 bytes.\");\n }\n for (let i = 0; i < bytes.length; ++i) {\n if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) {\n throw new Error(\"Invalid value in byte. Found: \" + bytes[i]);\n }\n }\n const beBytes = endianess === \"be\" ? Array.from(bytes) : Array.from(bytes).reverse();\n return new Uint64(new bn_js_1.default(beBytes));\n }\n static fromString(str) {\n if (!str.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Uint64(new bn_js_1.default(str, 10, \"be\"));\n }\n static fromNumber(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n let bigint;\n try {\n bigint = new bn_js_1.default(input);\n }\n catch {\n throw new Error(\"Input is not a safe integer\");\n }\n return new Uint64(bigint);\n }\n constructor(data) {\n if (data.isNeg()) {\n throw new Error(\"Input is negative\");\n }\n if (data.gt(uint64MaxValue)) {\n throw new Error(\"Input exceeds uint64 range\");\n }\n this.data = data;\n }\n toBytesBigEndian() {\n return Uint8Array.from(this.data.toArray(\"be\", 8));\n }\n toBytesLittleEndian() {\n return Uint8Array.from(this.data.toArray(\"le\", 8));\n }\n toString() {\n return this.data.toString(10);\n }\n toBigInt() {\n return BigInt(this.toString());\n }\n toNumber() {\n return this.data.toNumber();\n }\n}\nexports.Uint64 = Uint64;\n// Assign classes to unused variables in order to verify static interface conformance at compile time.\n// Workaround for https://github.com/microsoft/TypeScript/issues/33892\nconst _int53Class = Int53;\nconst _uint53Class = Uint53;\nconst _uint32Class = Uint32;\nconst _uint64Class = Uint64;\n//# sourceMappingURL=integers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.arrayContentEquals = arrayContentEquals;\nexports.arrayContentStartsWith = arrayContentStartsWith;\n/**\n * Compares the content of two arrays-like objects for equality.\n *\n * Equality is defined as having equal length and element values, where element equality means `===` returning `true`.\n *\n * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type.\n * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type.\n */\nfunction arrayContentEquals(a, b) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; ++i) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n}\n/**\n * Checks if `a` starts with the contents of `b`.\n *\n * This requires equality of the element values, where element equality means `===` returning `true`.\n *\n * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type.\n * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type.\n */\nfunction arrayContentStartsWith(a, b) {\n if (a.length < b.length)\n return false;\n for (let i = 0; i < b.length; ++i) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n}\n//# sourceMappingURL=arrays.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assert = assert;\nexports.assertDefined = assertDefined;\nexports.assertDefinedAndNotNull = assertDefinedAndNotNull;\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction assert(condition, msg) {\n if (!condition) {\n throw new Error(msg || \"condition is not truthy\");\n }\n}\nfunction assertDefined(value, msg) {\n if (value === undefined) {\n throw new Error(msg ?? \"value is undefined\");\n }\n}\nfunction assertDefinedAndNotNull(value, msg) {\n if (value === undefined || value === null) {\n throw new Error(msg ?? \"value is undefined or null\");\n }\n}\n//# sourceMappingURL=assert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isUint8Array = exports.isNonNullObject = exports.isDefined = exports.sleep = exports.assertDefinedAndNotNull = exports.assertDefined = exports.assert = exports.arrayContentStartsWith = exports.arrayContentEquals = void 0;\nvar arrays_1 = require(\"./arrays\");\nObject.defineProperty(exports, \"arrayContentEquals\", { enumerable: true, get: function () { return arrays_1.arrayContentEquals; } });\nObject.defineProperty(exports, \"arrayContentStartsWith\", { enumerable: true, get: function () { return arrays_1.arrayContentStartsWith; } });\nvar assert_1 = require(\"./assert\");\nObject.defineProperty(exports, \"assert\", { enumerable: true, get: function () { return assert_1.assert; } });\nObject.defineProperty(exports, \"assertDefined\", { enumerable: true, get: function () { return assert_1.assertDefined; } });\nObject.defineProperty(exports, \"assertDefinedAndNotNull\", { enumerable: true, get: function () { return assert_1.assertDefinedAndNotNull; } });\nvar sleep_1 = require(\"./sleep\");\nObject.defineProperty(exports, \"sleep\", { enumerable: true, get: function () { return sleep_1.sleep; } });\nvar typechecks_1 = require(\"./typechecks\");\nObject.defineProperty(exports, \"isDefined\", { enumerable: true, get: function () { return typechecks_1.isDefined; } });\nObject.defineProperty(exports, \"isNonNullObject\", { enumerable: true, get: function () { return typechecks_1.isNonNullObject; } });\nObject.defineProperty(exports, \"isUint8Array\", { enumerable: true, get: function () { return typechecks_1.isUint8Array; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sleep = sleep;\nasync function sleep(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n//# sourceMappingURL=sleep.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNonNullObject = isNonNullObject;\nexports.isUint8Array = isUint8Array;\nexports.isDefined = isDefined;\n/**\n * Checks if data is a non-null object (i.e. matches the TypeScript object type).\n *\n * Note: this returns true for arrays, which are objects in JavaScript\n * even though array and object are different types in JSON.\n *\n * @see https://www.typescriptlang.org/docs/handbook/basic-types.html#object\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isNonNullObject(data) {\n return typeof data === \"object\" && data !== null;\n}\n/**\n * Checks if data is an Uint8Array. Note: Buffer is treated as not a Uint8Array\n */\nfunction isUint8Array(data) {\n if (!isNonNullObject(data))\n return false;\n // Avoid instanceof check which is unreliable in some JS environments\n // https://medium.com/@simonwarta/limitations-of-the-instanceof-operator-f4bcdbe7a400\n // Use check that was discussed in https://github.com/crypto-browserify/pbkdf2/pull/81\n if (Object.prototype.toString.call(data) !== \"[object Uint8Array]\")\n return false;\n if (typeof Buffer !== \"undefined\" && typeof Buffer.isBuffer !== \"undefined\") {\n // Buffer.isBuffer is available at runtime\n if (Buffer.isBuffer(data))\n return false;\n }\n return true;\n}\n/**\n * Checks if input is not undefined in a TypeScript-friendly way.\n *\n * This is convenient to use in e.g. `Array.filter` as it will convert\n * the type of a `Array` to `Array`.\n */\nfunction isDefined(value) {\n return value !== undefined;\n}\n//# sourceMappingURL=typechecks.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.concat = concat;\nconst xstream_1 = require(\"xstream\");\n/**\n * An implementation of concat that buffers all source stream events\n *\n * Marble diagram:\n *\n * ```text\n * --1--2---3---4-|\n * -a--b-c--d-|\n * --------X---------Y---------Z-\n * concat\n * --1--2---3---4-abcdXY-------Z-\n * ```\n *\n * This is inspired by RxJS's concat as documented at http://rxmarbles.com/#concat and behaves\n * differently than xstream's concat as discussed in https://github.com/staltz/xstream/issues/170.\n *\n */\nfunction concat(...streams) {\n const subscriptions = new Array();\n const queues = new Array(); // one queue per stream\n const completedStreams = new Set();\n let activeStreamIndex = 0;\n function reset() {\n while (subscriptions.length > 0) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const subscription = subscriptions.shift();\n subscription.unsubscribe();\n }\n queues.length = 0;\n completedStreams.clear();\n activeStreamIndex = 0;\n }\n const producer = {\n start: (listener) => {\n streams.forEach((_) => queues.push([]));\n function emitAllQueuesEvents(streamIndex) {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const element = queues[streamIndex].shift();\n if (element === undefined) {\n return;\n }\n listener.next(element);\n }\n }\n function isDone() {\n return activeStreamIndex >= streams.length;\n }\n if (isDone()) {\n listener.complete();\n return;\n }\n streams.forEach((stream, index) => {\n subscriptions.push(stream.subscribe({\n next: (value) => {\n if (index === activeStreamIndex) {\n listener.next(value);\n }\n else {\n queues[index].push(value);\n }\n },\n complete: () => {\n completedStreams.add(index);\n while (completedStreams.has(activeStreamIndex)) {\n // this stream completed: emit all and move on\n emitAllQueuesEvents(activeStreamIndex);\n activeStreamIndex++;\n }\n if (isDone()) {\n listener.complete();\n }\n else {\n // now active stream can have some events queued but did not yet complete\n emitAllQueuesEvents(activeStreamIndex);\n }\n },\n error: (error) => {\n listener.error(error);\n reset();\n },\n }));\n });\n },\n stop: () => {\n reset();\n },\n };\n return xstream_1.Stream.create(producer);\n}\n//# sourceMappingURL=concat.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultValueProducer = void 0;\n// allows pre-producing values before anyone is listening\nclass DefaultValueProducer {\n get value() {\n return this.internalValue;\n }\n constructor(value, callbacks) {\n this.callbacks = callbacks;\n this.internalValue = value;\n }\n /**\n * Update the current value.\n *\n * If producer is active (i.e. someone is listening), this emits an event.\n * If not, just the current value is updated.\n */\n update(value) {\n this.internalValue = value;\n if (this.listener) {\n this.listener.next(value);\n }\n }\n /**\n * Produce an error\n */\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n error(error) {\n if (this.listener) {\n this.listener.error(error);\n }\n }\n /**\n * Called by the stream. Do not call this directly.\n */\n start(listener) {\n this.listener = listener;\n listener.next(this.internalValue);\n if (this.callbacks) {\n this.callbacks.onStarted();\n }\n }\n /**\n * Called by the stream. Do not call this directly.\n */\n stop() {\n if (this.callbacks) {\n this.callbacks.onStop();\n }\n this.listener = undefined;\n }\n}\nexports.DefaultValueProducer = DefaultValueProducer;\n//# sourceMappingURL=defaultvalueproducer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dropDuplicates = dropDuplicates;\n/**\n * Drops duplicate values in a stream.\n *\n * Marble diagram:\n *\n * ```text\n * -1-1-1-2-4-3-3-4--\n * dropDuplicates\n * -1-----2-4-3------\n * ```\n *\n * Each value must be uniquely identified by a string given by\n * valueToKey(value).\n *\n * Internally this maintains a set of keys that have been processed already,\n * i.e. memory consumption and Set lookup times should be considered when\n * using this function.\n */\nfunction dropDuplicates(valueToKey) {\n const operand = (instream) => {\n const emittedKeys = new Set();\n const deduplicatedStream = instream\n .filter((value) => !emittedKeys.has(valueToKey(value)))\n .debug((value) => emittedKeys.add(valueToKey(value)));\n return deduplicatedStream;\n };\n return operand;\n}\n//# sourceMappingURL=dropduplicates.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueAndUpdates = exports.toListPromise = exports.fromListPromise = exports.firstEvent = exports.dropDuplicates = exports.DefaultValueProducer = exports.concat = void 0;\nvar concat_1 = require(\"./concat\");\nObject.defineProperty(exports, \"concat\", { enumerable: true, get: function () { return concat_1.concat; } });\nvar defaultvalueproducer_1 = require(\"./defaultvalueproducer\");\nObject.defineProperty(exports, \"DefaultValueProducer\", { enumerable: true, get: function () { return defaultvalueproducer_1.DefaultValueProducer; } });\nvar dropduplicates_1 = require(\"./dropduplicates\");\nObject.defineProperty(exports, \"dropDuplicates\", { enumerable: true, get: function () { return dropduplicates_1.dropDuplicates; } });\nvar promise_1 = require(\"./promise\");\nObject.defineProperty(exports, \"firstEvent\", { enumerable: true, get: function () { return promise_1.firstEvent; } });\nObject.defineProperty(exports, \"fromListPromise\", { enumerable: true, get: function () { return promise_1.fromListPromise; } });\nObject.defineProperty(exports, \"toListPromise\", { enumerable: true, get: function () { return promise_1.toListPromise; } });\n__exportStar(require(\"./reducer\"), exports);\nvar valueandupdates_1 = require(\"./valueandupdates\");\nObject.defineProperty(exports, \"ValueAndUpdates\", { enumerable: true, get: function () { return valueandupdates_1.ValueAndUpdates; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromListPromise = fromListPromise;\nexports.toListPromise = toListPromise;\nexports.firstEvent = firstEvent;\nconst xstream_1 = require(\"xstream\");\n/**\n * Emits one event for each list element as soon as the promise resolves\n */\nfunction fromListPromise(promise) {\n const producer = {\n start: (listener) => {\n // the code in `start` runs as soon as anyone listens to the stream\n promise\n .then((iterable) => {\n for (const element of iterable) {\n listener.next(element);\n }\n listener.complete();\n })\n .catch((error) => listener.error(error));\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n stop: () => { },\n };\n return xstream_1.Stream.create(producer);\n}\n/**\n * Listens to stream and collects events. When `count` events are collected,\n * the promise resolves with an array of events.\n *\n * Rejects if stream completes before `count` events are collected.\n */\nasync function toListPromise(stream, count) {\n return new Promise((resolve, reject) => {\n if (count === 0) {\n resolve([]);\n return;\n }\n const events = new Array();\n // take() unsubscribes from source stream automatically\n stream.take(count).subscribe({\n next: (event) => {\n events.push(event);\n if (events.length === count) {\n resolve(events);\n }\n },\n complete: () => {\n reject(`Stream completed before all events could be collected. ` +\n `Collected ${events.length}, expected ${count}`);\n },\n error: (error) => reject(error),\n });\n });\n}\n/**\n * Listens to stream, collects one event and revolves.\n *\n * Rejects if stream completes before one event was fired.\n */\nasync function firstEvent(stream) {\n return (await toListPromise(stream, 1))[0];\n}\n//# sourceMappingURL=promise.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Reducer = void 0;\nexports.countStream = countStream;\nexports.asArray = asArray;\nexports.lastValue = lastValue;\n// Reducer takes a stream of events T and a ReducerFunc, that\n// materializes a state of type U.\nclass Reducer {\n constructor(stream, reducer, initState) {\n this.stream = stream;\n this.reducer = reducer;\n this.state = initState;\n this.completed = new Promise((resolve, reject) => {\n const subscription = this.stream.subscribe({\n next: (evt) => {\n this.state = this.reducer(this.state, evt);\n },\n complete: () => {\n resolve();\n // this must happen after resolve, to ensure stream.subscribe() has finished\n subscription.unsubscribe();\n },\n error: (err) => {\n reject(err);\n // the stream already closed on error, but unsubscribe to be safe\n subscription.unsubscribe();\n },\n });\n });\n }\n // value returns current materialized state\n value() {\n return this.state;\n }\n // finished resolves on completed stream, rejects on stream error\n async finished() {\n return this.completed;\n }\n}\nexports.Reducer = Reducer;\nfunction increment(sum, _) {\n return sum + 1;\n}\n// countStream returns a reducer that contains current count\n// of events on the stream\nfunction countStream(stream) {\n return new Reducer(stream, increment, 0);\n}\nfunction append(list, evt) {\n return [...list, evt];\n}\n// asArray maintains an array containing all events that have\n// occurred on the stream\nfunction asArray(stream) {\n return new Reducer(stream, append, []);\n}\nfunction last(_, event) {\n return event;\n}\n// lastValue returns the last value read from the stream, or undefined if no values sent\nfunction lastValue(stream) {\n return new Reducer(stream, last, undefined);\n}\n//# sourceMappingURL=reducer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueAndUpdates = void 0;\nconst xstream_1 = require(\"xstream\");\n/**\n * A read only wrapper around DefaultValueProducer that allows\n * to synchronously get the current value using the .value property\n * and listen to updates by suscribing to the .updates stream\n */\nclass ValueAndUpdates {\n get value() {\n return this.producer.value;\n }\n constructor(producer) {\n this.producer = producer;\n this.updates = xstream_1.MemoryStream.createWithMemory(this.producer);\n }\n /**\n * Resolves as soon as search value is found.\n *\n * @param search either a value or a function that must return true when found\n * @returns the value of the update that caused the search match\n */\n async waitFor(search) {\n const searchImplementation = typeof search === \"function\" ? search : (value) => value === search;\n return new Promise((resolve, reject) => {\n const subscription = this.updates.subscribe({\n next: (newValue) => {\n if (searchImplementation(newValue)) {\n resolve(newValue);\n // MemoryStream.subscribe() calls next with the last value.\n // Make async to ensure the subscription exists\n setTimeout(() => subscription.unsubscribe(), 0);\n }\n },\n complete: () => {\n subscription.unsubscribe();\n reject(\"Update stream completed without expected value\");\n },\n error: (error) => {\n reject(error);\n },\n });\n });\n }\n}\nexports.ValueAndUpdates = ValueAndUpdates;\n//# sourceMappingURL=valueandupdates.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.rawEd25519PubkeyToRawAddress = rawEd25519PubkeyToRawAddress;\nexports.rawSecp256k1PubkeyToRawAddress = rawSecp256k1PubkeyToRawAddress;\nexports.pubkeyToRawAddress = pubkeyToRawAddress;\nexports.pubkeyToAddress = pubkeyToAddress;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nfunction rawEd25519PubkeyToRawAddress(pubkeyData) {\n if (pubkeyData.length !== 32) {\n throw new Error(`Invalid Ed25519 pubkey length: ${pubkeyData.length}`);\n }\n return (0, crypto_1.sha256)(pubkeyData).slice(0, 20);\n}\nfunction rawSecp256k1PubkeyToRawAddress(pubkeyData) {\n if (pubkeyData.length !== 33) {\n throw new Error(`Invalid Secp256k1 pubkey length (compressed): ${pubkeyData.length}`);\n }\n return (0, crypto_1.ripemd160)((0, crypto_1.sha256)(pubkeyData));\n}\n/**\n * Returns Tendermint address as bytes.\n *\n * This is for addresses that are derived by the Tendermint keypair (typically Ed25519).\n * Sometimes those addresses are bech32-encoded and contain the term \"cons\" in the presix\n * (\"cosmosvalcons1...\").\n *\n * For secp256k1 this assumes we already have a compressed pubkey, which is the default in Cosmos.\n */\nfunction pubkeyToRawAddress(type, data) {\n switch (type) {\n case \"ed25519\":\n return rawEd25519PubkeyToRawAddress(data);\n case \"secp256k1\":\n return rawSecp256k1PubkeyToRawAddress(data);\n default:\n // Keep this case here to guard against new types being added but not handled\n throw new Error(`Pubkey type ${type} not supported`);\n }\n}\n/**\n * Returns Tendermint address in uppercase hex format.\n *\n * This is for addresses that are derived by the Tendermint keypair (typically Ed25519).\n * Sometimes those addresses are bech32-encoded and contain the term \"cons\" in the presix\n * (\"cosmosvalcons1...\").\n *\n * For secp256k1 this assumes we already have a compressed pubkey, which is the default in Cosmos.\n */\nfunction pubkeyToAddress(type, data) {\n return (0, encoding_1.toHex)(pubkeyToRawAddress(type, data)).toUpperCase();\n}\n//# sourceMappingURL=addresses.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Responses = exports.Params = void 0;\nvar requests_1 = require(\"./requests\");\nObject.defineProperty(exports, \"Params\", { enumerable: true, get: function () { return requests_1.Params; } });\nvar responses_1 = require(\"./responses\");\nObject.defineProperty(exports, \"Responses\", { enumerable: true, get: function () { return responses_1.Responses; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst inthelpers_1 = require(\"../../inthelpers\");\nconst jsonrpc_1 = require(\"../../jsonrpc\");\nconst encodings_1 = require(\"../encodings\");\nconst requests = __importStar(require(\"../requests\"));\nfunction encodeHeightParam(param) {\n return {\n height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.height),\n };\n}\nfunction encodeBlockchainRequestParams(param) {\n return {\n minHeight: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.minHeight),\n maxHeight: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.maxHeight),\n };\n}\nfunction encodeBlockSearchParams(params) {\n return {\n query: params.query,\n page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page),\n per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page),\n order_by: params.order_by,\n };\n}\nfunction encodeAbciQueryParams(params) {\n return {\n path: (0, encodings_1.assertNotEmpty)(params.path),\n data: (0, encoding_1.toHex)(params.data),\n height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.height),\n prove: params.prove,\n };\n}\nfunction encodeBroadcastTxParams(params) {\n return {\n tx: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.tx)),\n };\n}\nfunction encodeTxParams(params) {\n return {\n hash: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.hash)),\n prove: params.prove,\n };\n}\nfunction encodeTxSearchParams(params) {\n return {\n query: params.query,\n prove: params.prove,\n page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page),\n per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page),\n order_by: params.order_by,\n };\n}\nfunction encodeValidatorsParams(params) {\n return {\n height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.height),\n page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page),\n per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page),\n };\n}\nclass Params {\n static encodeAbciInfo(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeAbciQuery(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeAbciQueryParams(req.params));\n }\n static encodeBlock(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeBlockchain(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockchainRequestParams(req.params));\n }\n static encodeBlockResults(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeBlockSearch(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockSearchParams(req.params));\n }\n static encodeBroadcastTx(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBroadcastTxParams(req.params));\n }\n static encodeCommit(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeGenesis(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeHealth(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeNumUnconfirmedTxs(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeStatus(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeSubscribe(req) {\n const eventTag = { key: \"tm.event\", value: req.query.type };\n const query = requests.buildQuery({ tags: [eventTag], raw: req.query.raw });\n return (0, jsonrpc_1.createJsonRpcRequest)(\"subscribe\", { query: query });\n }\n static encodeTx(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxParams(req.params));\n }\n // TODO: encode params for query string???\n static encodeTxSearch(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxSearchParams(req.params));\n }\n static encodeValidators(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeValidatorsParams(req.params));\n }\n}\nexports.Params = Params;\n//# sourceMappingURL=requests.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Responses = void 0;\nexports.decodeEvent = decodeEvent;\nexports.decodeValidatorUpdate = decodeValidatorUpdate;\nexports.decodeCommit = decodeCommit;\nexports.decodeValidatorGenesis = decodeValidatorGenesis;\nexports.decodeValidatorInfo = decodeValidatorInfo;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst dates_1 = require(\"../../dates\");\nconst inthelpers_1 = require(\"../../inthelpers\");\nconst types_1 = require(\"../../types\");\nconst encodings_1 = require(\"../encodings\");\nconst hasher_1 = require(\"../hasher\");\nfunction decodeAbciInfo(data) {\n return {\n data: data.data,\n lastBlockHeight: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.last_block_height),\n lastBlockAppHash: (0, encodings_1.may)(encoding_1.fromBase64, data.last_block_app_hash),\n };\n}\nfunction decodeQueryProof(data) {\n return {\n ops: data.ops.map((op) => ({\n type: op.type,\n key: (0, encoding_1.fromBase64)(op.key),\n data: (0, encoding_1.fromBase64)(op.data),\n })),\n };\n}\nfunction decodeAbciQuery(data) {\n return {\n key: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(data.key ?? \"\")),\n value: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(data.value ?? \"\")),\n proof: (0, encodings_1.may)(decodeQueryProof, data.proofOps),\n height: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.height),\n code: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.code),\n codespace: (0, encodings_1.assertString)(data.codespace ?? \"\"),\n index: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.index),\n log: data.log,\n info: (0, encodings_1.assertString)(data.info ?? \"\"),\n };\n}\nfunction decodeEventAttribute(attribute) {\n return {\n key: (0, encodings_1.assertNotEmpty)(attribute.key),\n value: attribute.value ?? \"\",\n };\n}\nfunction decodeAttributes(attributes) {\n return (0, encodings_1.assertArray)(attributes).map(decodeEventAttribute);\n}\nfunction decodeEvent(event) {\n return {\n type: event.type,\n attributes: event.attributes ? decodeAttributes(event.attributes) : [],\n };\n}\nfunction decodeEvents(events) {\n return (0, encodings_1.assertArray)(events).map(decodeEvent);\n}\nfunction decodeTxData(data) {\n return {\n code: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNumber)(data.code ?? 0)),\n codespace: data.codespace,\n log: data.log,\n data: (0, encodings_1.may)(encoding_1.fromBase64, data.data),\n events: data.events ? decodeEvents(data.events) : [],\n gasWanted: (0, inthelpers_1.apiToBigInt)(data.gas_wanted ?? \"0\"),\n gasUsed: (0, inthelpers_1.apiToBigInt)(data.gas_used ?? \"0\"),\n };\n}\nfunction decodePubkey(data) {\n if (\"Sum\" in data) {\n // we don't need to check type because we're checking algorithm\n const [[algorithm, value]] = Object.entries(data.Sum.value);\n (0, utils_1.assert)(algorithm === \"ed25519\" || algorithm === \"secp256k1\", `unknown pubkey type: ${algorithm}`);\n return {\n algorithm,\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(value)),\n };\n }\n else {\n switch (data.type) {\n // go-amino special code\n case \"tendermint/PubKeyEd25519\":\n return {\n algorithm: \"ed25519\",\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)),\n };\n case \"tendermint/PubKeySecp256k1\":\n return {\n algorithm: \"secp256k1\",\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)),\n };\n default:\n throw new Error(`unknown pubkey type: ${data.type}`);\n }\n }\n}\n/**\n * Note: we do not parse block.time_iota_ms for now because of this CHANGELOG entry\n *\n * > Add time_iota_ms to block's consensus parameters (not exposed to the application)\n * https://github.com/tendermint/tendermint/blob/master/CHANGELOG.md#v0310\n */\nfunction decodeBlockParams(data) {\n return {\n maxBytes: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_bytes)),\n maxGas: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_gas)),\n };\n}\nfunction decodeEvidenceParams(data) {\n return {\n maxAgeNumBlocks: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_age_num_blocks)),\n maxAgeDuration: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_age_duration)),\n };\n}\nfunction decodeConsensusParams(data) {\n return {\n block: decodeBlockParams((0, encodings_1.assertObject)(data.block)),\n evidence: decodeEvidenceParams((0, encodings_1.assertObject)(data.evidence)),\n };\n}\nfunction decodeValidatorUpdate(data) {\n return {\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: (0, inthelpers_1.apiToBigInt)(data.power ?? \"0\"),\n };\n}\nfunction decodeBlockResults(data) {\n return {\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n results: (data.txs_results || []).map(decodeTxData),\n validatorUpdates: (data.validator_updates || []).map(decodeValidatorUpdate),\n consensusUpdates: (0, encodings_1.may)(decodeConsensusParams, data.consensus_param_updates),\n finalizeBlockEvents: decodeEvents(data.finalize_block_events || []),\n };\n}\nfunction decodeBlockId(data) {\n return {\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n parts: {\n total: (0, encodings_1.assertNotEmpty)(data.parts.total),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.parts.hash)),\n },\n };\n}\nfunction decodeBlockVersion(data) {\n return {\n block: (0, inthelpers_1.apiToSmallInt)(data.block),\n app: (0, inthelpers_1.apiToSmallInt)(data.app ?? 0),\n };\n}\nfunction decodeHeader(data) {\n return {\n version: decodeBlockVersion(data.version),\n chainId: (0, encodings_1.assertNotEmpty)(data.chain_id),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n time: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.time)),\n // When there is no last block ID (i.e. this block's height is 1), we get an empty structure like this:\n // { hash: '', parts: { total: 0, hash: '' } }\n lastBlockId: data.last_block_id.hash ? decodeBlockId(data.last_block_id) : null,\n lastCommitHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_commit_hash)),\n dataHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.data_hash)),\n validatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.validators_hash)),\n nextValidatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.next_validators_hash)),\n consensusHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.consensus_hash)),\n appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)),\n lastResultsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_results_hash)),\n evidenceHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.evidence_hash)),\n proposerAddress: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.proposer_address)),\n };\n}\nfunction decodeBlockMeta(data) {\n return {\n blockId: decodeBlockId(data.block_id),\n blockSize: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.block_size)),\n header: decodeHeader(data.header),\n numTxs: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.num_txs)),\n };\n}\nfunction decodeBlockchain(data) {\n return {\n lastHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.last_height)),\n blockMetas: (0, encodings_1.assertArray)(data.block_metas).map(decodeBlockMeta),\n };\n}\nfunction decodeBroadcastTxSync(data) {\n return {\n ...decodeTxData(data),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n };\n}\nfunction decodeBroadcastTxCommit(data) {\n const txResult = data.tx_result ? decodeTxData(data.tx_result) : undefined;\n return {\n height: (0, inthelpers_1.apiToSmallInt)(data.height),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n checkTx: decodeTxData((0, encodings_1.assertObject)(data.check_tx)),\n deliverTx: txResult,\n txResult: txResult,\n };\n}\nfunction decodeBlockIdFlag(blockIdFlag) {\n (0, utils_1.assert)(blockIdFlag in types_1.BlockIdFlag);\n return blockIdFlag;\n}\nfunction decodeCommitSignature(data) {\n return {\n blockIdFlag: decodeBlockIdFlag(data.block_id_flag),\n validatorAddress: data.validator_address ? (0, encoding_1.fromHex)(data.validator_address) : undefined,\n timestamp: data.timestamp ? (0, dates_1.fromRfc3339WithNanoseconds)(data.timestamp) : undefined,\n signature: data.signature ? (0, encoding_1.fromBase64)(data.signature) : undefined,\n };\n}\nfunction decodeCommit(data) {\n return {\n blockId: decodeBlockId((0, encodings_1.assertObject)(data.block_id)),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n round: (0, inthelpers_1.apiToSmallInt)(data.round),\n signatures: data.signatures ? (0, encodings_1.assertArray)(data.signatures).map(decodeCommitSignature) : [],\n };\n}\nfunction decodeCommitResponse(data) {\n return {\n canonical: (0, encodings_1.assertBoolean)(data.canonical),\n header: decodeHeader(data.signed_header.header),\n commit: decodeCommit(data.signed_header.commit),\n };\n}\nfunction decodeValidatorGenesis(data) {\n return {\n address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)),\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: (0, inthelpers_1.apiToBigInt)((0, encodings_1.assertNotEmpty)(data.power)),\n };\n}\nfunction decodeGenesis(data) {\n return {\n genesisTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.genesis_time)),\n chainId: (0, encodings_1.assertNotEmpty)(data.chain_id),\n consensusParams: decodeConsensusParams(data.consensus_params),\n validators: data.validators ? (0, encodings_1.assertArray)(data.validators).map(decodeValidatorGenesis) : [],\n appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)), // empty string in kvstore app\n appState: data.app_state,\n };\n}\nfunction decodeValidatorInfo(data) {\n return {\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: (0, inthelpers_1.apiToBigInt)((0, encodings_1.assertNotEmpty)(data.voting_power)),\n address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)),\n proposerPriority: data.proposer_priority ? (0, inthelpers_1.apiToSmallInt)(data.proposer_priority) : undefined,\n };\n}\nfunction decodeNodeInfo(data) {\n return {\n id: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.id)),\n listenAddr: (0, encodings_1.assertNotEmpty)(data.listen_addr),\n network: (0, encodings_1.assertNotEmpty)(data.network),\n version: (0, encodings_1.assertString)(data.version), // Can be empty (https://github.com/cosmos/cosmos-sdk/issues/7963)\n channels: (0, encodings_1.assertString)(data.channels), // can be empty\n moniker: (0, encodings_1.assertNotEmpty)(data.moniker),\n other: (0, encodings_1.dictionaryToStringMap)(data.other),\n protocolVersion: {\n app: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.app)),\n block: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.block)),\n p2p: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.p2p)),\n },\n };\n}\nfunction decodeSyncInfo(data) {\n const earliestBlockHeight = data.earliest_block_height\n ? (0, inthelpers_1.apiToSmallInt)(data.earliest_block_height)\n : undefined;\n const earliestBlockTime = data.earliest_block_time\n ? (0, dates_1.fromRfc3339WithNanoseconds)(data.earliest_block_time)\n : undefined;\n return {\n earliestAppHash: data.earliest_app_hash ? (0, encoding_1.fromHex)(data.earliest_app_hash) : undefined,\n earliestBlockHash: data.earliest_block_hash ? (0, encoding_1.fromHex)(data.earliest_block_hash) : undefined,\n earliestBlockHeight: earliestBlockHeight || undefined,\n earliestBlockTime: earliestBlockTime?.getTime() ? earliestBlockTime : undefined,\n latestBlockHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_block_hash)),\n latestAppHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_app_hash)),\n latestBlockTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.latest_block_time)),\n latestBlockHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.latest_block_height)),\n catchingUp: (0, encodings_1.assertBoolean)(data.catching_up),\n };\n}\nfunction decodeStatus(data) {\n return {\n nodeInfo: decodeNodeInfo(data.node_info),\n syncInfo: decodeSyncInfo(data.sync_info),\n validatorInfo: decodeValidatorInfo(data.validator_info),\n };\n}\nfunction decodeTxProof(data) {\n return {\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.data)),\n rootHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.root_hash)),\n proof: {\n total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.proof.total)),\n index: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.proof.index)),\n leafHash: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.proof.leaf_hash)),\n aunts: (0, encodings_1.assertArray)(data.proof.aunts).map(encoding_1.fromBase64),\n },\n };\n}\nfunction decodeTxResponse(data) {\n return {\n tx: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx)),\n result: decodeTxData((0, encodings_1.assertObject)(data.tx_result)),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n index: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNumber)(data.index)),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n proof: (0, encodings_1.may)(decodeTxProof, data.proof),\n };\n}\nfunction decodeTxSearch(data) {\n return {\n totalCount: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_count)),\n txs: (0, encodings_1.assertArray)(data.txs).map(decodeTxResponse),\n };\n}\nfunction decodeTxEvent(data) {\n const tx = (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx));\n return {\n tx: tx,\n hash: (0, hasher_1.hashTx)(tx),\n result: decodeTxData(data.result),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n };\n}\nfunction decodeValidators(data) {\n return {\n blockHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.block_height)),\n validators: (0, encodings_1.assertArray)(data.validators).map(decodeValidatorInfo),\n count: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.count)),\n total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total)),\n };\n}\nfunction decodeBlock(data) {\n return {\n header: decodeHeader((0, encodings_1.assertObject)(data.header)),\n // For the block at height 1, last commit is not set. This is represented in an empty object like this:\n // { height: '0', round: 0, block_id: { hash: '', parts: [Object] }, signatures: [] }\n lastCommit: data.last_commit.block_id.hash ? decodeCommit((0, encodings_1.assertObject)(data.last_commit)) : null,\n txs: data.data.txs ? (0, encodings_1.assertArray)(data.data.txs).map(encoding_1.fromBase64) : [],\n // Lift up .evidence.evidence to just .evidence\n // See https://github.com/tendermint/tendermint/issues/7697\n evidence: data.evidence?.evidence ?? [],\n };\n}\nfunction decodeBlockResponse(data) {\n return {\n blockId: decodeBlockId(data.block_id),\n block: decodeBlock(data.block),\n };\n}\nfunction decodeBlockSearch(data) {\n return {\n totalCount: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_count)),\n blocks: (0, encodings_1.assertArray)(data.blocks).map(decodeBlockResponse),\n };\n}\nfunction decodeNumUnconfirmedTxs(data) {\n return {\n total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total)),\n totalBytes: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_bytes)),\n };\n}\nclass Responses {\n static decodeAbciInfo(response) {\n return decodeAbciInfo((0, encodings_1.assertObject)(response.result.response));\n }\n static decodeAbciQuery(response) {\n return decodeAbciQuery((0, encodings_1.assertObject)(response.result.response));\n }\n static decodeBlock(response) {\n return decodeBlockResponse(response.result);\n }\n static decodeBlockResults(response) {\n return decodeBlockResults(response.result);\n }\n static decodeBlockSearch(response) {\n return decodeBlockSearch(response.result);\n }\n static decodeBlockchain(response) {\n return decodeBlockchain(response.result);\n }\n static decodeBroadcastTxSync(response) {\n return decodeBroadcastTxSync(response.result);\n }\n static decodeBroadcastTxAsync(response) {\n return Responses.decodeBroadcastTxSync(response);\n }\n static decodeBroadcastTxCommit(response) {\n return decodeBroadcastTxCommit(response.result);\n }\n static decodeCommit(response) {\n return decodeCommitResponse(response.result);\n }\n static decodeGenesis(response) {\n return decodeGenesis((0, encodings_1.assertObject)(response.result.genesis));\n }\n static decodeHealth() {\n return null;\n }\n static decodeNumUnconfirmedTxs(response) {\n return decodeNumUnconfirmedTxs(response.result);\n }\n static decodeStatus(response) {\n return decodeStatus(response.result);\n }\n static decodeNewBlockEvent(event) {\n return decodeBlock(event.data.value.block);\n }\n static decodeNewBlockHeaderEvent(event) {\n return decodeHeader(event.data.value.header);\n }\n static decodeTxEvent(event) {\n return decodeTxEvent(event.data.value.TxResult);\n }\n static decodeTx(response) {\n return decodeTxResponse(response.result);\n }\n static decodeTxSearch(response) {\n return decodeTxSearch(response.result);\n }\n static decodeValidators(response) {\n return decodeValidators(response.result);\n }\n}\nexports.Responses = Responses;\n//# sourceMappingURL=responses.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Comet38Client = void 0;\nconst jsonrpc_1 = require(\"../jsonrpc\");\nconst rpcclients_1 = require(\"../rpcclients\");\nconst adaptor_1 = require(\"./adaptor\");\nconst requests = __importStar(require(\"./requests\"));\n/**\n * A client for the CometBFT 0.38 and 1.x RPC API\n */\nclass Comet38Client {\n /**\n * Creates a new Tendermint client for the given endpoint.\n *\n * Uses HTTP when the URL schema is http or https. Uses WebSockets otherwise.\n */\n static async connect(endpoint) {\n let rpcClient;\n if (typeof endpoint === \"object\") {\n rpcClient = new rpcclients_1.HttpClient(endpoint);\n }\n else {\n const useHttp = endpoint.startsWith(\"http://\") || endpoint.startsWith(\"https://\");\n rpcClient = useHttp ? new rpcclients_1.HttpClient(endpoint) : new rpcclients_1.WebsocketClient(endpoint);\n }\n // For some very strange reason I don't understand, tests start to fail on some systems\n // (our CI) when skipping the status call before doing other queries. Sleeping a little\n // while did not help. Thus we query the version as a way to say \"hi\" to the backend,\n // even in cases where we don't use the result.\n const _version = await this.detectVersion(rpcClient);\n return Comet38Client.create(rpcClient);\n }\n /**\n * Creates a new Tendermint client given an RPC client.\n */\n static async create(rpcClient) {\n return new Comet38Client(rpcClient);\n }\n static async detectVersion(client) {\n const req = (0, jsonrpc_1.createJsonRpcRequest)(requests.Method.Status);\n const response = await client.execute(req);\n const result = response.result;\n if (!result || !result.node_info) {\n throw new Error(\"Unrecognized format for status response\");\n }\n const version = result.node_info.version;\n if (typeof version !== \"string\") {\n throw new Error(\"Unrecognized version format: must be string\");\n }\n return version;\n }\n /**\n * Use `Tendermint37Client.connect` or `Tendermint37Client.create` to create an instance.\n */\n constructor(client) {\n this.client = client;\n }\n disconnect() {\n this.client.disconnect();\n }\n async abciInfo() {\n const query = { method: requests.Method.AbciInfo };\n return this.doCall(query, adaptor_1.Params.encodeAbciInfo, adaptor_1.Responses.decodeAbciInfo);\n }\n async abciQuery(params) {\n const query = { params: params, method: requests.Method.AbciQuery };\n return this.doCall(query, adaptor_1.Params.encodeAbciQuery, adaptor_1.Responses.decodeAbciQuery);\n }\n async block(height) {\n const query = { method: requests.Method.Block, params: { height: height } };\n return this.doCall(query, adaptor_1.Params.encodeBlock, adaptor_1.Responses.decodeBlock);\n }\n async blockResults(height) {\n const query = {\n method: requests.Method.BlockResults,\n params: { height: height },\n };\n return this.doCall(query, adaptor_1.Params.encodeBlockResults, adaptor_1.Responses.decodeBlockResults);\n }\n /**\n * Search for events that are in a block.\n *\n * NOTE\n * This method will error on any node that is running a Tendermint version lower than 0.34.9.\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/block_search\n */\n async blockSearch(params) {\n const query = { params: params, method: requests.Method.BlockSearch };\n const resp = await this.doCall(query, adaptor_1.Params.encodeBlockSearch, adaptor_1.Responses.decodeBlockSearch);\n return {\n ...resp,\n // make sure we sort by height, as tendermint may be sorting by string value of the height\n blocks: [...resp.blocks].sort((a, b) => a.block.header.height - b.block.header.height),\n };\n }\n // this should paginate through all blockSearch options to ensure it returns all results.\n // starts with page 1 or whatever was provided (eg. to start on page 7)\n //\n // NOTE\n // This method will error on any node that is running a Tendermint version lower than 0.34.9.\n async blockSearchAll(params) {\n let page = params.page || 1;\n const blocks = [];\n let done = false;\n while (!done) {\n const resp = await this.blockSearch({ ...params, page: page });\n blocks.push(...resp.blocks);\n if (blocks.length < resp.totalCount) {\n page++;\n }\n else {\n done = true;\n }\n }\n // make sure we sort by height, as tendermint may be sorting by string value of the height\n // and the earlier items may be in a higher page than the later items\n blocks.sort((a, b) => a.block.header.height - b.block.header.height);\n return {\n totalCount: blocks.length,\n blocks: blocks,\n };\n }\n /**\n * Queries block headers filtered by minHeight <= height <= maxHeight.\n *\n * @param minHeight The minimum height to be included in the result. Defaults to 0.\n * @param maxHeight The maximum height to be included in the result. Defaults to infinity.\n */\n async blockchain(minHeight, maxHeight) {\n const query = {\n method: requests.Method.Blockchain,\n params: {\n minHeight: minHeight,\n maxHeight: maxHeight,\n },\n };\n return this.doCall(query, adaptor_1.Params.encodeBlockchain, adaptor_1.Responses.decodeBlockchain);\n }\n /**\n * Broadcast transaction to mempool and wait for response\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_sync\n */\n async broadcastTxSync(params) {\n const query = { params: params, method: requests.Method.BroadcastTxSync };\n return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxSync);\n }\n /**\n * Broadcast transaction to mempool and do not wait for result\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_async\n */\n async broadcastTxAsync(params) {\n const query = { params: params, method: requests.Method.BroadcastTxAsync };\n return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxAsync);\n }\n /**\n * Broadcast transaction to mempool and wait for block\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_commit\n */\n async broadcastTxCommit(params) {\n const query = { params: params, method: requests.Method.BroadcastTxCommit };\n return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxCommit);\n }\n async commit(height) {\n const query = { method: requests.Method.Commit, params: { height: height } };\n return this.doCall(query, adaptor_1.Params.encodeCommit, adaptor_1.Responses.decodeCommit);\n }\n async genesis() {\n const query = { method: requests.Method.Genesis };\n return this.doCall(query, adaptor_1.Params.encodeGenesis, adaptor_1.Responses.decodeGenesis);\n }\n async health() {\n const query = { method: requests.Method.Health };\n return this.doCall(query, adaptor_1.Params.encodeHealth, adaptor_1.Responses.decodeHealth);\n }\n async numUnconfirmedTxs() {\n const query = { method: requests.Method.NumUnconfirmedTxs };\n return this.doCall(query, adaptor_1.Params.encodeNumUnconfirmedTxs, adaptor_1.Responses.decodeNumUnconfirmedTxs);\n }\n async status() {\n const query = { method: requests.Method.Status };\n return this.doCall(query, adaptor_1.Params.encodeStatus, adaptor_1.Responses.decodeStatus);\n }\n subscribeNewBlock() {\n const request = {\n method: requests.Method.Subscribe,\n query: { type: requests.SubscriptionEventType.NewBlock },\n };\n return this.subscribe(request, adaptor_1.Responses.decodeNewBlockEvent);\n }\n subscribeNewBlockHeader() {\n const request = {\n method: requests.Method.Subscribe,\n query: { type: requests.SubscriptionEventType.NewBlockHeader },\n };\n return this.subscribe(request, adaptor_1.Responses.decodeNewBlockHeaderEvent);\n }\n subscribeTx(query) {\n const request = {\n method: requests.Method.Subscribe,\n query: {\n type: requests.SubscriptionEventType.Tx,\n raw: query,\n },\n };\n return this.subscribe(request, adaptor_1.Responses.decodeTxEvent);\n }\n /**\n * Get a single transaction by hash\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/tx\n */\n async tx(params) {\n const query = { params: params, method: requests.Method.Tx };\n return this.doCall(query, adaptor_1.Params.encodeTx, adaptor_1.Responses.decodeTx);\n }\n /**\n * Search for transactions that are in a block\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/tx_search\n */\n async txSearch(params) {\n const query = { params: params, method: requests.Method.TxSearch };\n return this.doCall(query, adaptor_1.Params.encodeTxSearch, adaptor_1.Responses.decodeTxSearch);\n }\n // this should paginate through all txSearch options to ensure it returns all results.\n // starts with page 1 or whatever was provided (eg. to start on page 7)\n async txSearchAll(params) {\n let page = params.page || 1;\n const txs = [];\n let done = false;\n while (!done) {\n const resp = await this.txSearch({ ...params, page: page });\n txs.push(...resp.txs);\n if (txs.length < resp.totalCount) {\n page++;\n }\n else {\n done = true;\n }\n }\n return {\n totalCount: txs.length,\n txs: txs,\n };\n }\n async validators(params) {\n const query = {\n method: requests.Method.Validators,\n params: params,\n };\n return this.doCall(query, adaptor_1.Params.encodeValidators, adaptor_1.Responses.decodeValidators);\n }\n async validatorsAll(height) {\n const validators = [];\n let page = 1;\n let done = false;\n let blockHeight = height;\n while (!done) {\n const response = await this.validators({\n per_page: 50,\n height: blockHeight,\n page: page,\n });\n validators.push(...response.validators);\n blockHeight = blockHeight || response.blockHeight;\n if (validators.length < response.total) {\n page++;\n }\n else {\n done = true;\n }\n }\n return {\n // NOTE: Default value is for type safety but this should always be set\n blockHeight: blockHeight ?? 0,\n count: validators.length,\n total: validators.length,\n validators: validators,\n };\n }\n // doCall is a helper to handle the encode/call/decode logic\n async doCall(request, encode, decode) {\n const req = encode(request);\n const result = await this.client.execute(req);\n return decode(result);\n }\n subscribe(request, decode) {\n if (!(0, rpcclients_1.instanceOfRpcStreamingClient)(this.client)) {\n throw new Error(\"This RPC client type cannot subscribe to events\");\n }\n const req = adaptor_1.Params.encodeSubscribe(request);\n const eventStream = this.client.listen(req);\n return eventStream.map((event) => {\n return decode(event);\n });\n }\n}\nexports.Comet38Client = Comet38Client;\n//# sourceMappingURL=comet38client.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assertSet = assertSet;\nexports.assertBoolean = assertBoolean;\nexports.assertString = assertString;\nexports.assertNumber = assertNumber;\nexports.assertArray = assertArray;\nexports.assertObject = assertObject;\nexports.assertNotEmpty = assertNotEmpty;\nexports.may = may;\nexports.dictionaryToStringMap = dictionaryToStringMap;\nexports.encodeString = encodeString;\nexports.encodeUvarint = encodeUvarint;\nexports.encodeTime = encodeTime;\nexports.encodeBytes = encodeBytes;\nexports.encodeVersion = encodeVersion;\nexports.encodeBlockId = encodeBlockId;\nconst encoding_1 = require(\"@cosmjs/encoding\");\n/**\n * A runtime checker that ensures a given value is set (i.e. not undefined or null)\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n */\nfunction assertSet(value) {\n if (value === undefined) {\n throw new Error(\"Value must not be undefined\");\n }\n if (value === null) {\n throw new Error(\"Value must not be null\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is a boolean\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertBoolean(value) {\n assertSet(value);\n if (typeof value !== \"boolean\") {\n throw new Error(\"Value must be a boolean\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is a string.\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertString(value) {\n assertSet(value);\n if (typeof value !== \"string\") {\n throw new Error(\"Value must be a string\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is a number\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertNumber(value) {\n assertSet(value);\n if (typeof value !== \"number\") {\n throw new Error(\"Value must be a number\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is an array\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertArray(value) {\n assertSet(value);\n if (!Array.isArray(value)) {\n throw new Error(\"Value must be a an array\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is an object in the sense of JSON\n * (an unordered collection of key–value pairs where the keys are strings)\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertObject(value) {\n assertSet(value);\n if (typeof value !== \"object\") {\n throw new Error(\"Value must be an object\");\n }\n // Exclude special kind of objects like Array, Date or Uint8Array\n // Object.prototype.toString() returns a specified value:\n // http://www.ecma-international.org/ecma-262/7.0/index.html#sec-object.prototype.tostring\n if (Object.prototype.toString.call(value) !== \"[object Object]\") {\n throw new Error(\"Value must be a simple object\");\n }\n return value;\n}\n/**\n * Throws an error if value matches the empty value for the\n * given type (array/string of length 0, number of value 0, ...)\n *\n * Otherwise returns the value.\n *\n * This implies assertSet\n */\nfunction assertNotEmpty(value) {\n assertSet(value);\n if (typeof value === \"number\" && value === 0) {\n throw new Error(\"must provide a non-zero value\");\n }\n else if (value.length === 0) {\n throw new Error(\"must provide a non-empty value\");\n }\n return value;\n}\n// may will run the transform if value is defined, otherwise returns undefined\nfunction may(transform, value) {\n return value === undefined || value === null ? undefined : transform(value);\n}\nfunction dictionaryToStringMap(obj) {\n const out = new Map();\n for (const key of Object.keys(obj)) {\n const value = obj[key];\n if (typeof value !== \"string\") {\n throw new Error(\"Found dictionary value of type other than string\");\n }\n out.set(key, value);\n }\n return out;\n}\n// Encodings needed for hashing block headers\n// Several of these functions are inspired by https://github.com/nomic-io/js-tendermint/blob/tendermint-0.30/src/\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L193-L195\nfunction encodeString(s) {\n const utf8 = (0, encoding_1.toUtf8)(s);\n return Uint8Array.from([utf8.length, ...utf8]);\n}\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L79-L87\nfunction encodeUvarint(n) {\n return n >= 0x80\n ? // eslint-disable-next-line no-bitwise\n Uint8Array.from([(n & 0xff) | 0x80, ...encodeUvarint(n >> 7)])\n : // eslint-disable-next-line no-bitwise\n Uint8Array.from([n & 0xff]);\n}\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L134-L178\nfunction encodeTime(time) {\n const milliseconds = time.getTime();\n const seconds = Math.floor(milliseconds / 1000);\n const secondsArray = seconds ? [0x08, ...encodeUvarint(seconds)] : new Uint8Array();\n const nanoseconds = (time.nanoseconds || 0) + (milliseconds % 1000) * 1e6;\n const nanosecondsArray = nanoseconds ? [0x10, ...encodeUvarint(nanoseconds)] : new Uint8Array();\n return Uint8Array.from([...secondsArray, ...nanosecondsArray]);\n}\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L180-L187\nfunction encodeBytes(bytes) {\n // Since we're only dealing with short byte arrays we don't need a full VarBuffer implementation yet\n if (bytes.length >= 0x80)\n throw new Error(\"Not implemented for byte arrays of length 128 or more\");\n return bytes.length ? Uint8Array.from([bytes.length, ...bytes]) : new Uint8Array();\n}\nfunction encodeVersion(version) {\n const blockArray = version.block\n ? Uint8Array.from([0x08, ...encodeUvarint(version.block)])\n : new Uint8Array();\n const appArray = version.app ? Uint8Array.from([0x10, ...encodeUvarint(version.app)]) : new Uint8Array();\n return Uint8Array.from([...blockArray, ...appArray]);\n}\nfunction encodeBlockId(blockId) {\n return Uint8Array.from([\n 0x0a,\n blockId.hash.length,\n ...blockId.hash,\n 0x12,\n blockId.parts.hash.length + 4,\n 0x08,\n blockId.parts.total,\n 0x12,\n blockId.parts.hash.length,\n ...blockId.parts.hash,\n ]);\n}\n//# sourceMappingURL=encodings.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hashTx = hashTx;\nexports.hashBlock = hashBlock;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encodings_1 = require(\"./encodings\");\n// hash is sha256\n// https://github.com/tendermint/tendermint/blob/master/UPGRADING.md#v0260\nfunction hashTx(tx) {\n return (0, crypto_1.sha256)(tx);\n}\nfunction getSplitPoint(n) {\n if (n < 1)\n throw new Error(\"Cannot split an empty tree\");\n const largestPowerOf2 = 2 ** Math.floor(Math.log2(n));\n return largestPowerOf2 < n ? largestPowerOf2 : largestPowerOf2 / 2;\n}\nfunction hashLeaf(leaf) {\n const hash = new crypto_1.Sha256(Uint8Array.from([0]));\n hash.update(leaf);\n return hash.digest();\n}\nfunction hashInner(left, right) {\n const hash = new crypto_1.Sha256(Uint8Array.from([1]));\n hash.update(left);\n hash.update(right);\n return hash.digest();\n}\n// See https://github.com/tendermint/tendermint/blob/v0.31.8/docs/spec/blockchain/encoding.md#merkleroot\n// Note: the hashes input may not actually be hashes, especially before a recursive call\nfunction hashTree(hashes) {\n switch (hashes.length) {\n case 0:\n throw new Error(\"Cannot hash empty tree\");\n case 1:\n return hashLeaf(hashes[0]);\n default: {\n const slicePoint = getSplitPoint(hashes.length);\n const left = hashTree(hashes.slice(0, slicePoint));\n const right = hashTree(hashes.slice(slicePoint));\n return hashInner(left, right);\n }\n }\n}\nfunction hashBlock(header) {\n if (!header.lastBlockId) {\n throw new Error(\"Hashing a block header with no last block ID (i.e. header at height 1) is not supported. If you need this, contributions are welcome. Please add documentation and test vectors for this case.\");\n }\n const encodedFields = [\n (0, encodings_1.encodeVersion)(header.version),\n (0, encodings_1.encodeString)(header.chainId),\n (0, encodings_1.encodeUvarint)(header.height),\n (0, encodings_1.encodeTime)(header.time),\n (0, encodings_1.encodeBlockId)(header.lastBlockId),\n (0, encodings_1.encodeBytes)(header.lastCommitHash),\n (0, encodings_1.encodeBytes)(header.dataHash),\n (0, encodings_1.encodeBytes)(header.validatorsHash),\n (0, encodings_1.encodeBytes)(header.nextValidatorsHash),\n (0, encodings_1.encodeBytes)(header.consensusHash),\n (0, encodings_1.encodeBytes)(header.appHash),\n (0, encodings_1.encodeBytes)(header.lastResultsHash),\n (0, encodings_1.encodeBytes)(header.evidenceHash),\n (0, encodings_1.encodeBytes)(header.proposerAddress),\n ];\n return hashTree(encodedFields);\n}\n//# sourceMappingURL=hasher.js.map","\"use strict\";\n// Note: all exports in this module are publicly available via\n// `import { comet38 } from \"@cosmjs/tendermint-rpc\"`\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VoteType = exports.broadcastTxSyncSuccess = exports.broadcastTxCommitSuccess = exports.SubscriptionEventType = exports.Method = exports.Comet38Client = void 0;\nvar comet38client_1 = require(\"./comet38client\");\nObject.defineProperty(exports, \"Comet38Client\", { enumerable: true, get: function () { return comet38client_1.Comet38Client; } });\nvar requests_1 = require(\"./requests\");\nObject.defineProperty(exports, \"Method\", { enumerable: true, get: function () { return requests_1.Method; } });\nObject.defineProperty(exports, \"SubscriptionEventType\", { enumerable: true, get: function () { return requests_1.SubscriptionEventType; } });\nvar responses_1 = require(\"./responses\");\nObject.defineProperty(exports, \"broadcastTxCommitSuccess\", { enumerable: true, get: function () { return responses_1.broadcastTxCommitSuccess; } });\nObject.defineProperty(exports, \"broadcastTxSyncSuccess\", { enumerable: true, get: function () { return responses_1.broadcastTxSyncSuccess; } });\nObject.defineProperty(exports, \"VoteType\", { enumerable: true, get: function () { return responses_1.VoteType; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/naming-convention */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SubscriptionEventType = exports.Method = void 0;\nexports.buildQuery = buildQuery;\n/**\n * RPC methods as documented in https://docs.tendermint.com/master/rpc/\n *\n * Enum raw value must match the spelling in the \"shell\" example call (snake_case)\n */\nvar Method;\n(function (Method) {\n Method[\"AbciInfo\"] = \"abci_info\";\n Method[\"AbciQuery\"] = \"abci_query\";\n Method[\"Block\"] = \"block\";\n /** Get block headers for minHeight <= height <= maxHeight. */\n Method[\"Blockchain\"] = \"blockchain\";\n Method[\"BlockResults\"] = \"block_results\";\n Method[\"BlockSearch\"] = \"block_search\";\n Method[\"BroadcastTxAsync\"] = \"broadcast_tx_async\";\n Method[\"BroadcastTxSync\"] = \"broadcast_tx_sync\";\n Method[\"BroadcastTxCommit\"] = \"broadcast_tx_commit\";\n Method[\"Commit\"] = \"commit\";\n Method[\"Genesis\"] = \"genesis\";\n Method[\"Health\"] = \"health\";\n Method[\"NumUnconfirmedTxs\"] = \"num_unconfirmed_txs\";\n Method[\"Status\"] = \"status\";\n Method[\"Subscribe\"] = \"subscribe\";\n Method[\"Tx\"] = \"tx\";\n Method[\"TxSearch\"] = \"tx_search\";\n Method[\"Validators\"] = \"validators\";\n Method[\"Unsubscribe\"] = \"unsubscribe\";\n})(Method || (exports.Method = Method = {}));\n/**\n * Raw values must match the tendermint event name\n *\n * @see https://godoc.org/github.com/tendermint/tendermint/types#pkg-constants\n */\nvar SubscriptionEventType;\n(function (SubscriptionEventType) {\n SubscriptionEventType[\"NewBlock\"] = \"NewBlock\";\n SubscriptionEventType[\"NewBlockHeader\"] = \"NewBlockHeader\";\n SubscriptionEventType[\"Tx\"] = \"Tx\";\n})(SubscriptionEventType || (exports.SubscriptionEventType = SubscriptionEventType = {}));\nfunction buildQuery(components) {\n const tags = components.tags ? components.tags : [];\n const tagComponents = tags.map((tag) => `${tag.key}='${tag.value}'`);\n const rawComponents = components.raw ? [components.raw] : [];\n return [...tagComponents, ...rawComponents].join(\" AND \");\n}\n//# sourceMappingURL=requests.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VoteType = void 0;\nexports.broadcastTxSyncSuccess = broadcastTxSyncSuccess;\nexports.broadcastTxCommitSuccess = broadcastTxCommitSuccess;\n/**\n * Returns true iff transaction made it successfully into the transaction pool\n */\nfunction broadcastTxSyncSuccess(res) {\n // code must be 0 on success\n return res.code === 0;\n}\n/**\n * Returns true iff transaction made it successfully into a block\n * (i.e. success in `check_tx` and `deliver_tx` field)\n */\nfunction broadcastTxCommitSuccess(response) {\n // code must be 0 on success\n // deliverTx may be present but empty on failure\n return response.checkTx.code === 0 && !!response.deliverTx && response.deliverTx.code === 0;\n}\n/**\n * raw values from https://github.com/tendermint/tendermint/blob/dfa9a9a30a666132425b29454e90a472aa579a48/types/vote.go#L44\n */\nvar VoteType;\n(function (VoteType) {\n VoteType[VoteType[\"PreVote\"] = 1] = \"PreVote\";\n VoteType[VoteType[\"PreCommit\"] = 2] = \"PreCommit\";\n})(VoteType || (exports.VoteType = VoteType = {}));\n//# sourceMappingURL=responses.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DateTime = void 0;\nexports.fromRfc3339WithNanoseconds = fromRfc3339WithNanoseconds;\nexports.toRfc3339WithNanoseconds = toRfc3339WithNanoseconds;\nexports.fromSeconds = fromSeconds;\nexports.toSeconds = toSeconds;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nfunction fromRfc3339WithNanoseconds(dateTimeString) {\n const out = (0, encoding_1.fromRfc3339)(dateTimeString);\n const nanosecondsMatch = dateTimeString.match(/\\.(\\d+)Z$/);\n const nanoseconds = nanosecondsMatch ? nanosecondsMatch[1].slice(3) : \"\";\n out.nanoseconds = parseInt(nanoseconds.padEnd(6, \"0\"), 10);\n return out;\n}\nfunction toRfc3339WithNanoseconds(dateTime) {\n const millisecondIso = dateTime.toISOString();\n const nanoseconds = dateTime.nanoseconds?.toString() ?? \"\";\n return `${millisecondIso.slice(0, -1)}${nanoseconds.padStart(6, \"0\")}Z`;\n}\nfunction fromSeconds(seconds, nanos = 0) {\n const checkedNanos = new math_1.Uint32(nanos).toNumber();\n if (checkedNanos > 999999999) {\n throw new Error(\"Nano seconds must not exceed 999999999\");\n }\n const out = new Date(seconds * 1000 + Math.floor(checkedNanos / 1000000));\n out.nanoseconds = checkedNanos % 1000000;\n return out;\n}\n/**\n * Calculates the UNIX timestamp in seconds as well as the nanoseconds after the given second.\n *\n * This is useful when dealing with external systems like the protobuf type\n * [.google.protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Timestamp)\n * or any other system that does not use millisecond precision.\n */\nfunction toSeconds(date) {\n return {\n seconds: Math.floor(date.getTime() / 1000),\n nanos: (date.getTime() % 1000) * 1000000 + (date.nanoseconds ?? 0),\n };\n}\n/** @deprecated Use fromRfc3339WithNanoseconds/toRfc3339WithNanoseconds instead */\nclass DateTime {\n /** @deprecated Use fromRfc3339WithNanoseconds instead */\n static decode(dateTimeString) {\n return fromRfc3339WithNanoseconds(dateTimeString);\n }\n /** @deprecated Use toRfc3339WithNanoseconds instead */\n static encode(dateTime) {\n return toRfc3339WithNanoseconds(dateTime);\n }\n}\nexports.DateTime = DateTime;\n//# sourceMappingURL=dates.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlockIdFlag = exports.isTendermint37Client = exports.isTendermint34Client = exports.isComet38Client = exports.connectComet = exports.Tendermint37Client = exports.tendermint37 = exports.Tendermint34Client = exports.tendermint34 = exports.VoteType = exports.SubscriptionEventType = exports.Method = exports.broadcastTxSyncSuccess = exports.broadcastTxCommitSuccess = exports.WebsocketClient = exports.HttpClient = exports.HttpBatchClient = exports.Comet38Client = exports.comet38 = exports.toSeconds = exports.toRfc3339WithNanoseconds = exports.fromSeconds = exports.fromRfc3339WithNanoseconds = exports.DateTime = exports.rawSecp256k1PubkeyToRawAddress = exports.rawEd25519PubkeyToRawAddress = exports.pubkeyToRawAddress = exports.pubkeyToAddress = void 0;\nvar addresses_1 = require(\"./addresses\");\nObject.defineProperty(exports, \"pubkeyToAddress\", { enumerable: true, get: function () { return addresses_1.pubkeyToAddress; } });\nObject.defineProperty(exports, \"pubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.pubkeyToRawAddress; } });\nObject.defineProperty(exports, \"rawEd25519PubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.rawEd25519PubkeyToRawAddress; } });\nObject.defineProperty(exports, \"rawSecp256k1PubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.rawSecp256k1PubkeyToRawAddress; } });\nvar dates_1 = require(\"./dates\");\nObject.defineProperty(exports, \"DateTime\", { enumerable: true, get: function () { return dates_1.DateTime; } });\nObject.defineProperty(exports, \"fromRfc3339WithNanoseconds\", { enumerable: true, get: function () { return dates_1.fromRfc3339WithNanoseconds; } });\nObject.defineProperty(exports, \"fromSeconds\", { enumerable: true, get: function () { return dates_1.fromSeconds; } });\nObject.defineProperty(exports, \"toRfc3339WithNanoseconds\", { enumerable: true, get: function () { return dates_1.toRfc3339WithNanoseconds; } });\nObject.defineProperty(exports, \"toSeconds\", { enumerable: true, get: function () { return dates_1.toSeconds; } });\n// The public Tendermint34Client.create constructor allows manually choosing an RpcClient.\n// This is currently the only way to switch to the HttpBatchClient (which may become default at some point).\n// Due to this API, we make RPC client implementations public.\nexports.comet38 = __importStar(require(\"./comet38\"));\nvar comet38_1 = require(\"./comet38\");\nObject.defineProperty(exports, \"Comet38Client\", { enumerable: true, get: function () { return comet38_1.Comet38Client; } });\nvar rpcclients_1 = require(\"./rpcclients\");\nObject.defineProperty(exports, \"HttpBatchClient\", { enumerable: true, get: function () { return rpcclients_1.HttpBatchClient; } });\nObject.defineProperty(exports, \"HttpClient\", { enumerable: true, get: function () { return rpcclients_1.HttpClient; } });\nObject.defineProperty(exports, \"WebsocketClient\", { enumerable: true, get: function () { return rpcclients_1.WebsocketClient; } });\nvar tendermint34_1 = require(\"./tendermint34\");\nObject.defineProperty(exports, \"broadcastTxCommitSuccess\", { enumerable: true, get: function () { return tendermint34_1.broadcastTxCommitSuccess; } });\nObject.defineProperty(exports, \"broadcastTxSyncSuccess\", { enumerable: true, get: function () { return tendermint34_1.broadcastTxSyncSuccess; } });\nObject.defineProperty(exports, \"Method\", { enumerable: true, get: function () { return tendermint34_1.Method; } });\nObject.defineProperty(exports, \"SubscriptionEventType\", { enumerable: true, get: function () { return tendermint34_1.SubscriptionEventType; } });\nObject.defineProperty(exports, \"VoteType\", { enumerable: true, get: function () { return tendermint34_1.VoteType; } });\nexports.tendermint34 = __importStar(require(\"./tendermint34\"));\nvar tendermint34_2 = require(\"./tendermint34\");\nObject.defineProperty(exports, \"Tendermint34Client\", { enumerable: true, get: function () { return tendermint34_2.Tendermint34Client; } });\nexports.tendermint37 = __importStar(require(\"./tendermint37\"));\nvar tendermint37_1 = require(\"./tendermint37\");\nObject.defineProperty(exports, \"Tendermint37Client\", { enumerable: true, get: function () { return tendermint37_1.Tendermint37Client; } });\nvar tendermintclient_1 = require(\"./tendermintclient\");\nObject.defineProperty(exports, \"connectComet\", { enumerable: true, get: function () { return tendermintclient_1.connectComet; } });\nObject.defineProperty(exports, \"isComet38Client\", { enumerable: true, get: function () { return tendermintclient_1.isComet38Client; } });\nObject.defineProperty(exports, \"isTendermint34Client\", { enumerable: true, get: function () { return tendermintclient_1.isTendermint34Client; } });\nObject.defineProperty(exports, \"isTendermint37Client\", { enumerable: true, get: function () { return tendermintclient_1.isTendermint37Client; } });\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"BlockIdFlag\", { enumerable: true, get: function () { return types_1.BlockIdFlag; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.apiToSmallInt = apiToSmallInt;\nexports.apiToBigInt = apiToBigInt;\nexports.smallIntToApi = smallIntToApi;\nconst math_1 = require(\"@cosmjs/math\");\nconst encodings_1 = require(\"./tendermint34/encodings\");\n/**\n * Takes an integer value from the Tendermint RPC API and\n * returns it as number.\n *\n * Only works within the safe integer range.\n */\nfunction apiToSmallInt(input) {\n const asInt = typeof input === \"number\" ? new math_1.Int53(input) : math_1.Int53.fromString(input);\n return asInt.toNumber();\n}\n/**\n * Takes an integer value from the Tendermint RPC API and\n * returns it as BigInt.\n *\n * This supports the full uint64 and int64 ranges.\n */\nfunction apiToBigInt(input) {\n (0, encodings_1.assertString)(input); // Runtime check on top of TypeScript just to be safe for semi-trusted API types\n if (!input.match(/^-?[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return BigInt(input);\n}\n/**\n * Takes an integer in the safe integer range and returns\n * a string representation to be used in the Tendermint RPC API.\n */\nfunction smallIntToApi(num) {\n return new math_1.Int53(num).toString();\n}\n//# sourceMappingURL=inthelpers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createJsonRpcRequest = createJsonRpcRequest;\nconst numbersWithoutZero = \"123456789\";\n/** generates a random numeric character */\nfunction randomNumericChar() {\n return numbersWithoutZero[Math.floor(Math.random() * numbersWithoutZero.length)];\n}\n/**\n * An (absolutely not cryptographically secure) random integer > 0.\n */\nfunction randomId() {\n return parseInt(Array.from({ length: 12 })\n .map(() => randomNumericChar())\n .join(\"\"), 10);\n}\n/** Creates a JSON-RPC request with random ID */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction createJsonRpcRequest(method, params) {\n const paramsCopy = params ? { ...params } : {};\n return {\n jsonrpc: \"2.0\",\n id: randomId(),\n method: method,\n params: paramsCopy,\n };\n}\n//# sourceMappingURL=jsonrpc.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.http = http;\nconst cross_fetch_1 = __importDefault(require(\"cross-fetch\"));\nfunction filterBadStatus(res) {\n if (res.status >= 400) {\n throw new Error(`Bad status on response: ${res.status}`);\n }\n return res;\n}\n/**\n * Helper to work around missing CORS support in Tendermint (https://github.com/tendermint/tendermint/pull/2800)\n *\n * For some reason, fetch does not complain about missing server-side CORS support.\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nasync function http(method, url, headers, request) {\n const settings = {\n method: method,\n body: request ? JSON.stringify(request) : undefined,\n headers: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n };\n return (0, cross_fetch_1.default)(url, settings)\n .then(filterBadStatus)\n .then((res) => res.json());\n}\n//# sourceMappingURL=http.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpBatchClient = void 0;\nconst json_rpc_1 = require(\"@cosmjs/json-rpc\");\nconst http_1 = require(\"./http\");\nconst rpcclient_1 = require(\"./rpcclient\");\n// Those values are private and can change any time.\n// Does a user need to know them? I don't think so. You either set\n// a custom value or leave the option field unset.\nconst defaultHttpBatchClientOptions = {\n dispatchInterval: 20,\n batchSizeLimit: 20,\n};\nclass HttpBatchClient {\n constructor(endpoint, options = {}) {\n this.queue = [];\n this.options = {\n batchSizeLimit: options.batchSizeLimit ?? defaultHttpBatchClientOptions.batchSizeLimit,\n dispatchInterval: options.dispatchInterval ?? defaultHttpBatchClientOptions.dispatchInterval,\n };\n if (typeof endpoint === \"string\") {\n if (!(0, rpcclient_1.hasProtocol)(endpoint)) {\n throw new Error(\"Endpoint URL is missing a protocol. Expected 'https://' or 'http://'.\");\n }\n this.url = endpoint;\n }\n else {\n this.url = endpoint.url;\n this.headers = endpoint.headers;\n }\n this.timer = setInterval(() => this.tick(), options.dispatchInterval);\n this.validate();\n }\n disconnect() {\n this.timer && clearInterval(this.timer);\n this.timer = undefined;\n }\n async execute(request) {\n return new Promise((resolve, reject) => {\n this.queue.push({ request, resolve, reject });\n if (this.queue.length >= this.options.batchSizeLimit) {\n // this train is full, let's go\n this.tick();\n }\n });\n }\n validate() {\n if (!this.options.batchSizeLimit ||\n !Number.isSafeInteger(this.options.batchSizeLimit) ||\n this.options.batchSizeLimit < 1) {\n throw new Error(\"batchSizeLimit must be a safe integer >= 1\");\n }\n }\n /**\n * This is called in an interval where promise rejections cannot be handled.\n * So this is not async and HTTP errors need to be handled by the queued promises.\n */\n tick() {\n // Avoid race conditions\n const batch = this.queue.splice(0, this.options.batchSizeLimit);\n if (!batch.length)\n return;\n const requests = batch.map((s) => s.request);\n const requestIds = requests.map((request) => request.id);\n (0, http_1.http)(\"POST\", this.url, this.headers, requests).then((raw) => {\n // Requests with a single entry return as an object\n const arr = Array.isArray(raw) ? raw : [raw];\n arr.forEach((el) => {\n const req = batch.find((s) => s.request.id === el.id);\n if (!req)\n return;\n const { reject, resolve } = req;\n const response = (0, json_rpc_1.parseJsonRpcResponse)(el);\n if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) {\n reject(new Error(JSON.stringify(response.error)));\n }\n else {\n resolve(response);\n }\n });\n }, (error) => {\n for (const requestId of requestIds) {\n const req = batch.find((s) => s.request.id === requestId);\n if (!req)\n return;\n req.reject(error);\n }\n });\n }\n}\nexports.HttpBatchClient = HttpBatchClient;\n//# sourceMappingURL=httpbatchclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = void 0;\nconst json_rpc_1 = require(\"@cosmjs/json-rpc\");\nconst http_1 = require(\"./http\");\nconst rpcclient_1 = require(\"./rpcclient\");\nclass HttpClient {\n constructor(endpoint) {\n if (typeof endpoint === \"string\") {\n if (!(0, rpcclient_1.hasProtocol)(endpoint)) {\n throw new Error(\"Endpoint URL is missing a protocol. Expected 'https://' or 'http://'.\");\n }\n this.url = endpoint;\n }\n else {\n this.url = endpoint.url;\n this.headers = endpoint.headers;\n }\n }\n disconnect() {\n // nothing to be done\n }\n async execute(request) {\n const response = (0, json_rpc_1.parseJsonRpcResponse)(await (0, http_1.http)(\"POST\", this.url, this.headers, request));\n if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) {\n throw new Error(JSON.stringify(response.error));\n }\n return response;\n }\n}\nexports.HttpClient = HttpClient;\n//# sourceMappingURL=httpclient.js.map","\"use strict\";\n// This folder contains Tendermint-specific RPC clients\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebsocketClient = exports.instanceOfRpcStreamingClient = exports.HttpClient = exports.HttpBatchClient = void 0;\nvar httpbatchclient_1 = require(\"./httpbatchclient\");\nObject.defineProperty(exports, \"HttpBatchClient\", { enumerable: true, get: function () { return httpbatchclient_1.HttpBatchClient; } });\nvar httpclient_1 = require(\"./httpclient\");\nObject.defineProperty(exports, \"HttpClient\", { enumerable: true, get: function () { return httpclient_1.HttpClient; } });\nvar rpcclient_1 = require(\"./rpcclient\");\nObject.defineProperty(exports, \"instanceOfRpcStreamingClient\", { enumerable: true, get: function () { return rpcclient_1.instanceOfRpcStreamingClient; } });\nvar websocketclient_1 = require(\"./websocketclient\");\nObject.defineProperty(exports, \"WebsocketClient\", { enumerable: true, get: function () { return websocketclient_1.WebsocketClient; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.instanceOfRpcStreamingClient = instanceOfRpcStreamingClient;\nexports.hasProtocol = hasProtocol;\nfunction instanceOfRpcStreamingClient(client) {\n return typeof client.listen === \"function\";\n}\n// Helpers for all RPC clients\nfunction hasProtocol(url) {\n return url.search(\"://\") !== -1;\n}\n//# sourceMappingURL=rpcclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebsocketClient = void 0;\nconst json_rpc_1 = require(\"@cosmjs/json-rpc\");\nconst socket_1 = require(\"@cosmjs/socket\");\nconst stream_1 = require(\"@cosmjs/stream\");\nconst xstream_1 = require(\"xstream\");\nconst rpcclient_1 = require(\"./rpcclient\");\nfunction defaultErrorHandler(error) {\n throw error;\n}\nfunction toJsonRpcResponse(message) {\n // this should never happen, but I want an alert if it does\n if (message.type !== \"message\") {\n throw new Error(`Unexcepted message type on websocket: ${message.type}`);\n }\n const jsonRpcEvent = (0, json_rpc_1.parseJsonRpcResponse)(JSON.parse(message.data));\n return jsonRpcEvent;\n}\nclass RpcEventProducer {\n constructor(request, socket) {\n this.running = false;\n this.subscriptions = [];\n this.request = request;\n this.socket = socket;\n }\n /**\n * Implementation of Producer.start\n */\n start(listener) {\n if (this.running) {\n throw Error(\"Already started. Please stop first before restarting.\");\n }\n this.running = true;\n this.connectToClient(listener);\n this.socket.queueRequest(JSON.stringify(this.request));\n }\n /**\n * Implementation of Producer.stop\n *\n * Called by the stream when the stream's last listener stopped listening\n * or when the producer completed.\n */\n stop() {\n this.running = false;\n // Tell the server we are done in order to save resources. We cannot wait for the result.\n // This may fail when socket connection is not open, thus ignore errors in queueRequest\n const endRequest = { ...this.request, method: \"unsubscribe\" };\n try {\n this.socket.queueRequest(JSON.stringify(endRequest));\n }\n catch (error) {\n if (error instanceof Error && error.message.match(/socket has disconnected/i)) {\n // ignore\n }\n else {\n throw error;\n }\n }\n }\n connectToClient(listener) {\n const responseStream = this.socket.events.map(toJsonRpcResponse);\n // this should unsubscribe itself, so doesn't need to be removed explicitly\n const idSubscription = responseStream\n .filter((response) => response.id === this.request.id)\n .subscribe({\n next: (response) => {\n if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) {\n this.closeSubscriptions();\n listener.error(JSON.stringify(response.error));\n }\n idSubscription.unsubscribe();\n },\n });\n // this will fire on a response (success or error)\n // Tendermint adds an \"#event\" suffix for events that follow a previous subscription\n // https://github.com/tendermint/tendermint/blob/v0.23.0/rpc/core/events.go#L107\n const idEventSubscription = responseStream\n .filter((response) => response.id === this.request.id)\n .subscribe({\n next: (response) => {\n if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) {\n this.closeSubscriptions();\n listener.error(JSON.stringify(response.error));\n }\n else {\n listener.next(response.result);\n }\n },\n });\n // this will fire in case the websocket disconnects cleanly\n const nonResponseSubscription = responseStream.subscribe({\n error: (error) => {\n this.closeSubscriptions();\n listener.error(error);\n },\n complete: () => {\n this.closeSubscriptions();\n listener.complete();\n },\n });\n this.subscriptions.push(idSubscription, idEventSubscription, nonResponseSubscription);\n }\n closeSubscriptions() {\n for (const subscription of this.subscriptions) {\n subscription.unsubscribe();\n }\n // clear unused subscriptions\n this.subscriptions = [];\n }\n}\nclass WebsocketClient {\n constructor(baseUrl, onError = defaultErrorHandler) {\n // Lazily create streams and use the same stream when listening to the same query twice.\n //\n // Creating streams is cheap since producer is not started as long as nobody listens to events. Thus this\n // map is never cleared and there is no need to do so. But unsubscribe all the subscriptions!\n this.subscriptionStreams = new Map();\n if (!(0, rpcclient_1.hasProtocol)(baseUrl)) {\n throw new Error(\"Base URL is missing a protocol. Expected 'ws://' or 'wss://'.\");\n }\n // make sure we don't end up with ...//websocket\n const path = baseUrl.endsWith(\"/\") ? \"websocket\" : \"/websocket\";\n this.url = baseUrl + path;\n this.socket = new socket_1.ReconnectingSocket(this.url);\n const errorSubscription = this.socket.events.subscribe({\n error: (error) => {\n onError(error);\n errorSubscription.unsubscribe();\n },\n });\n this.jsonRpcResponseStream = this.socket.events.map(toJsonRpcResponse);\n this.socket.connect();\n }\n async execute(request) {\n const pendingResponse = this.responseForRequestId(request.id);\n this.socket.queueRequest(JSON.stringify(request));\n const response = await pendingResponse;\n if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) {\n throw new Error(JSON.stringify(response.error));\n }\n return response;\n }\n listen(request) {\n if (request.method !== \"subscribe\") {\n throw new Error(`Request method must be \"subscribe\" to start event listening`);\n }\n const query = request.params.query;\n if (typeof query !== \"string\") {\n throw new Error(\"request.params.query must be a string\");\n }\n if (!this.subscriptionStreams.has(query)) {\n const producer = new RpcEventProducer(request, this.socket);\n const stream = xstream_1.Stream.create(producer);\n this.subscriptionStreams.set(query, stream);\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this.subscriptionStreams.get(query).filter((response) => response.query !== undefined);\n }\n /**\n * Resolves as soon as websocket is connected. execute() queues requests automatically,\n * so this should be required for testing purposes only.\n */\n async connected() {\n await this.socket.connectionStatus.waitFor(socket_1.ConnectionStatus.Connected);\n }\n disconnect() {\n this.socket.disconnect();\n }\n async responseForRequestId(id) {\n return (0, stream_1.firstEvent)(this.jsonRpcResponseStream.filter((r) => r.id === id));\n }\n}\nexports.WebsocketClient = WebsocketClient;\n//# sourceMappingURL=websocketclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Responses = exports.Params = void 0;\nvar requests_1 = require(\"./requests\");\nObject.defineProperty(exports, \"Params\", { enumerable: true, get: function () { return requests_1.Params; } });\nvar responses_1 = require(\"./responses\");\nObject.defineProperty(exports, \"Responses\", { enumerable: true, get: function () { return responses_1.Responses; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst inthelpers_1 = require(\"../../inthelpers\");\nconst jsonrpc_1 = require(\"../../jsonrpc\");\nconst encodings_1 = require(\"../encodings\");\nconst requests = __importStar(require(\"../requests\"));\nfunction encodeHeightParam(param) {\n return {\n height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.height),\n };\n}\nfunction encodeBlockchainRequestParams(param) {\n return {\n minHeight: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.minHeight),\n maxHeight: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.maxHeight),\n };\n}\nfunction encodeBlockSearchParams(params) {\n return {\n query: params.query,\n page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page),\n per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page),\n order_by: params.order_by,\n };\n}\nfunction encodeAbciQueryParams(params) {\n return {\n path: (0, encodings_1.assertNotEmpty)(params.path),\n data: (0, encoding_1.toHex)(params.data),\n height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.height),\n prove: params.prove,\n };\n}\nfunction encodeBroadcastTxParams(params) {\n return {\n tx: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.tx)),\n };\n}\nfunction encodeTxParams(params) {\n return {\n hash: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.hash)),\n prove: params.prove,\n };\n}\nfunction encodeTxSearchParams(params) {\n return {\n query: params.query,\n prove: params.prove,\n page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page),\n per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page),\n order_by: params.order_by,\n };\n}\nfunction encodeValidatorsParams(params) {\n return {\n height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.height),\n page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page),\n per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page),\n };\n}\nclass Params {\n static encodeAbciInfo(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeAbciQuery(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeAbciQueryParams(req.params));\n }\n static encodeBlock(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeBlockchain(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockchainRequestParams(req.params));\n }\n static encodeBlockResults(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeBlockSearch(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockSearchParams(req.params));\n }\n static encodeBroadcastTx(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBroadcastTxParams(req.params));\n }\n static encodeCommit(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeGenesis(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeHealth(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeNumUnconfirmedTxs(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeStatus(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeSubscribe(req) {\n const eventTag = { key: \"tm.event\", value: req.query.type };\n const query = requests.buildQuery({ tags: [eventTag], raw: req.query.raw });\n return (0, jsonrpc_1.createJsonRpcRequest)(\"subscribe\", { query: query });\n }\n static encodeTx(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxParams(req.params));\n }\n // TODO: encode params for query string???\n static encodeTxSearch(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxSearchParams(req.params));\n }\n static encodeValidators(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeValidatorsParams(req.params));\n }\n}\nexports.Params = Params;\n//# sourceMappingURL=requests.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Responses = void 0;\nexports.decodeEvent = decodeEvent;\nexports.decodeValidatorUpdate = decodeValidatorUpdate;\nexports.decodeValidatorGenesis = decodeValidatorGenesis;\nexports.decodeValidatorInfo = decodeValidatorInfo;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst dates_1 = require(\"../../dates\");\nconst inthelpers_1 = require(\"../../inthelpers\");\nconst types_1 = require(\"../../types\");\nconst encodings_1 = require(\"../encodings\");\nconst hasher_1 = require(\"../hasher\");\nfunction decodeAbciInfo(data) {\n return {\n data: data.data,\n lastBlockHeight: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.last_block_height),\n lastBlockAppHash: (0, encodings_1.may)(encoding_1.fromBase64, data.last_block_app_hash),\n };\n}\nfunction decodeQueryProof(data) {\n return {\n ops: data.ops.map((op) => ({\n type: op.type,\n key: (0, encoding_1.fromBase64)(op.key),\n data: (0, encoding_1.fromBase64)(op.data),\n })),\n };\n}\nfunction decodeAbciQuery(data) {\n return {\n key: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(data.key ?? \"\")),\n value: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(data.value ?? \"\")),\n proof: (0, encodings_1.may)(decodeQueryProof, data.proofOps),\n height: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.height),\n code: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.code),\n codespace: (0, encodings_1.assertString)(data.codespace ?? \"\"),\n index: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.index),\n log: data.log,\n info: (0, encodings_1.assertString)(data.info ?? \"\"),\n };\n}\nfunction decodeAttribute(attribute) {\n return {\n key: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(attribute.key)),\n value: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(attribute.value ?? \"\")),\n };\n}\nfunction decodeAttributes(attributes) {\n return (0, encodings_1.assertArray)(attributes).map(decodeAttribute);\n}\nfunction decodeEvent(event) {\n return {\n type: event.type,\n attributes: event.attributes ? decodeAttributes(event.attributes) : [],\n };\n}\nfunction decodeEvents(events) {\n return (0, encodings_1.assertArray)(events).map(decodeEvent);\n}\nfunction decodeTxData(data) {\n return {\n code: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNumber)(data.code ?? 0)),\n codespace: data.codespace,\n log: data.log,\n data: (0, encodings_1.may)(encoding_1.fromBase64, data.data),\n events: data.events ? decodeEvents(data.events) : [],\n gasWanted: (0, inthelpers_1.apiToBigInt)(data.gas_wanted ?? \"0\"),\n gasUsed: (0, inthelpers_1.apiToBigInt)(data.gas_used ?? \"0\"),\n };\n}\nfunction decodePubkey(data) {\n if (\"Sum\" in data) {\n // we don't need to check type because we're checking algorithm\n const [[algorithm, value]] = Object.entries(data.Sum.value);\n (0, utils_1.assert)(algorithm === \"ed25519\" || algorithm === \"secp256k1\", `unknown pubkey type: ${algorithm}`);\n return {\n algorithm,\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(value)),\n };\n }\n else {\n switch (data.type) {\n // go-amino special code\n case \"tendermint/PubKeyEd25519\":\n return {\n algorithm: \"ed25519\",\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)),\n };\n case \"tendermint/PubKeySecp256k1\":\n return {\n algorithm: \"secp256k1\",\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)),\n };\n default:\n throw new Error(`unknown pubkey type: ${data.type}`);\n }\n }\n}\n/**\n * Note: we do not parse block.time_iota_ms for now because of this CHANGELOG entry\n *\n * > Add time_iota_ms to block's consensus parameters (not exposed to the application)\n * https://github.com/tendermint/tendermint/blob/master/CHANGELOG.md#v0310\n */\nfunction decodeBlockParams(data) {\n return {\n maxBytes: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_bytes)),\n maxGas: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_gas)),\n };\n}\nfunction decodeEvidenceParams(data) {\n return {\n maxAgeNumBlocks: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_age_num_blocks)),\n maxAgeDuration: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_age_duration)),\n };\n}\nfunction decodeConsensusParams(data) {\n return {\n block: decodeBlockParams((0, encodings_1.assertObject)(data.block)),\n evidence: decodeEvidenceParams((0, encodings_1.assertObject)(data.evidence)),\n };\n}\nfunction decodeValidatorUpdate(data) {\n return {\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: (0, inthelpers_1.apiToBigInt)(data.power ?? \"0\"),\n };\n}\nfunction decodeBlockResults(data) {\n return {\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n results: (data.txs_results || []).map(decodeTxData),\n validatorUpdates: (data.validator_updates || []).map(decodeValidatorUpdate),\n consensusUpdates: (0, encodings_1.may)(decodeConsensusParams, data.consensus_param_updates),\n beginBlockEvents: decodeEvents(data.begin_block_events || []),\n endBlockEvents: decodeEvents(data.end_block_events || []),\n };\n}\nfunction decodeBlockId(data) {\n return {\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n parts: {\n total: (0, encodings_1.assertNotEmpty)(data.parts.total),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.parts.hash)),\n },\n };\n}\nfunction decodeBlockVersion(data) {\n return {\n block: (0, inthelpers_1.apiToSmallInt)(data.block),\n app: (0, inthelpers_1.apiToSmallInt)(data.app ?? 0),\n };\n}\nfunction decodeHeader(data) {\n return {\n version: decodeBlockVersion(data.version),\n chainId: (0, encodings_1.assertNotEmpty)(data.chain_id),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n time: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.time)),\n // When there is no last block ID (i.e. this block's height is 1), we get an empty structure like this:\n // { hash: '', parts: { total: 0, hash: '' } }\n lastBlockId: data.last_block_id.hash ? decodeBlockId(data.last_block_id) : null,\n lastCommitHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_commit_hash)),\n dataHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.data_hash)),\n validatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.validators_hash)),\n nextValidatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.next_validators_hash)),\n consensusHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.consensus_hash)),\n appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)),\n lastResultsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_results_hash)),\n evidenceHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.evidence_hash)),\n proposerAddress: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.proposer_address)),\n };\n}\nfunction decodeBlockMeta(data) {\n return {\n blockId: decodeBlockId(data.block_id),\n blockSize: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.block_size)),\n header: decodeHeader(data.header),\n numTxs: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.num_txs)),\n };\n}\nfunction decodeBlockchain(data) {\n return {\n lastHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.last_height)),\n blockMetas: (0, encodings_1.assertArray)(data.block_metas).map(decodeBlockMeta),\n };\n}\nfunction decodeBroadcastTxSync(data) {\n return {\n ...decodeTxData(data),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n };\n}\nfunction decodeBroadcastTxCommit(data) {\n return {\n height: (0, inthelpers_1.apiToSmallInt)(data.height),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n checkTx: decodeTxData((0, encodings_1.assertObject)(data.check_tx)),\n deliverTx: (0, encodings_1.may)(decodeTxData, data.deliver_tx),\n };\n}\nfunction decodeBlockIdFlag(blockIdFlag) {\n (0, utils_1.assert)(blockIdFlag in types_1.BlockIdFlag);\n return blockIdFlag;\n}\nfunction decodeCommitSignature(data) {\n return {\n blockIdFlag: decodeBlockIdFlag(data.block_id_flag),\n validatorAddress: data.validator_address ? (0, encoding_1.fromHex)(data.validator_address) : undefined,\n timestamp: data.timestamp ? (0, dates_1.fromRfc3339WithNanoseconds)(data.timestamp) : undefined,\n signature: data.signature ? (0, encoding_1.fromBase64)(data.signature) : undefined,\n };\n}\nfunction decodeCommit(data) {\n return {\n blockId: decodeBlockId((0, encodings_1.assertObject)(data.block_id)),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n round: (0, inthelpers_1.apiToSmallInt)(data.round),\n signatures: (0, encodings_1.assertArray)(data.signatures).map(decodeCommitSignature),\n };\n}\nfunction decodeCommitResponse(data) {\n return {\n canonical: (0, encodings_1.assertBoolean)(data.canonical),\n header: decodeHeader(data.signed_header.header),\n commit: decodeCommit(data.signed_header.commit),\n };\n}\nfunction decodeValidatorGenesis(data) {\n return {\n address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)),\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: (0, inthelpers_1.apiToBigInt)((0, encodings_1.assertNotEmpty)(data.power)),\n };\n}\nfunction decodeGenesis(data) {\n return {\n genesisTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.genesis_time)),\n chainId: (0, encodings_1.assertNotEmpty)(data.chain_id),\n consensusParams: decodeConsensusParams(data.consensus_params),\n validators: data.validators ? (0, encodings_1.assertArray)(data.validators).map(decodeValidatorGenesis) : [],\n appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)), // empty string in kvstore app\n appState: data.app_state,\n };\n}\nfunction decodeValidatorInfo(data) {\n return {\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: (0, inthelpers_1.apiToBigInt)((0, encodings_1.assertNotEmpty)(data.voting_power)),\n address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)),\n proposerPriority: data.proposer_priority ? (0, inthelpers_1.apiToSmallInt)(data.proposer_priority) : undefined,\n };\n}\nfunction decodeNodeInfo(data) {\n return {\n id: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.id)),\n listenAddr: (0, encodings_1.assertNotEmpty)(data.listen_addr),\n network: (0, encodings_1.assertNotEmpty)(data.network),\n version: (0, encodings_1.assertString)(data.version), // Can be empty (https://github.com/cosmos/cosmos-sdk/issues/7963)\n channels: (0, encodings_1.assertNotEmpty)(data.channels),\n moniker: (0, encodings_1.assertNotEmpty)(data.moniker),\n other: (0, encodings_1.dictionaryToStringMap)(data.other),\n protocolVersion: {\n app: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.app)),\n block: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.block)),\n p2p: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.p2p)),\n },\n };\n}\nfunction decodeSyncInfo(data) {\n const earliestBlockHeight = data.earliest_block_height\n ? (0, inthelpers_1.apiToSmallInt)(data.earliest_block_height)\n : undefined;\n const earliestBlockTime = data.earliest_block_time\n ? (0, dates_1.fromRfc3339WithNanoseconds)(data.earliest_block_time)\n : undefined;\n return {\n earliestAppHash: data.earliest_app_hash ? (0, encoding_1.fromHex)(data.earliest_app_hash) : undefined,\n earliestBlockHash: data.earliest_block_hash ? (0, encoding_1.fromHex)(data.earliest_block_hash) : undefined,\n earliestBlockHeight: earliestBlockHeight || undefined,\n earliestBlockTime: earliestBlockTime?.getTime() ? earliestBlockTime : undefined,\n latestBlockHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_block_hash)),\n latestAppHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_app_hash)),\n latestBlockTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.latest_block_time)),\n latestBlockHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.latest_block_height)),\n catchingUp: (0, encodings_1.assertBoolean)(data.catching_up),\n };\n}\nfunction decodeStatus(data) {\n return {\n nodeInfo: decodeNodeInfo(data.node_info),\n syncInfo: decodeSyncInfo(data.sync_info),\n validatorInfo: decodeValidatorInfo(data.validator_info),\n };\n}\nfunction decodeTxProof(data) {\n return {\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.data)),\n rootHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.root_hash)),\n proof: {\n total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.proof.total)),\n index: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.proof.index)),\n leafHash: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.proof.leaf_hash)),\n aunts: (0, encodings_1.assertArray)(data.proof.aunts).map(encoding_1.fromBase64),\n },\n };\n}\nfunction decodeTxResponse(data) {\n return {\n tx: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx)),\n result: decodeTxData((0, encodings_1.assertObject)(data.tx_result)),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n index: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNumber)(data.index)),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n proof: (0, encodings_1.may)(decodeTxProof, data.proof),\n };\n}\nfunction decodeTxSearch(data) {\n return {\n totalCount: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_count)),\n txs: (0, encodings_1.assertArray)(data.txs).map(decodeTxResponse),\n };\n}\nfunction decodeTxEvent(data) {\n const tx = (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx));\n return {\n tx: tx,\n hash: (0, hasher_1.hashTx)(tx),\n result: decodeTxData(data.result),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n };\n}\nfunction decodeValidators(data) {\n return {\n blockHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.block_height)),\n validators: (0, encodings_1.assertArray)(data.validators).map(decodeValidatorInfo),\n count: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.count)),\n total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total)),\n };\n}\nfunction decodeBlock(data) {\n return {\n header: decodeHeader((0, encodings_1.assertObject)(data.header)),\n // For the block at height 1, last commit is not set. This is represented in an empty object like this:\n // { height: '0', round: 0, block_id: { hash: '', parts: [Object] }, signatures: [] }\n lastCommit: data.last_commit.block_id.hash ? decodeCommit((0, encodings_1.assertObject)(data.last_commit)) : null,\n txs: data.data.txs ? (0, encodings_1.assertArray)(data.data.txs).map(encoding_1.fromBase64) : [],\n // Lift up .evidence.evidence to just .evidence\n // See https://github.com/tendermint/tendermint/issues/7697\n evidence: data.evidence?.evidence ?? [],\n };\n}\nfunction decodeBlockResponse(data) {\n return {\n blockId: decodeBlockId(data.block_id),\n block: decodeBlock(data.block),\n };\n}\nfunction decodeBlockSearch(data) {\n return {\n totalCount: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_count)),\n blocks: (0, encodings_1.assertArray)(data.blocks).map(decodeBlockResponse),\n };\n}\nfunction decodeNumUnconfirmedTxs(data) {\n return {\n total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total)),\n totalBytes: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_bytes)),\n };\n}\nclass Responses {\n static decodeAbciInfo(response) {\n return decodeAbciInfo((0, encodings_1.assertObject)(response.result.response));\n }\n static decodeAbciQuery(response) {\n return decodeAbciQuery((0, encodings_1.assertObject)(response.result.response));\n }\n static decodeBlock(response) {\n return decodeBlockResponse(response.result);\n }\n static decodeBlockResults(response) {\n return decodeBlockResults(response.result);\n }\n static decodeBlockSearch(response) {\n return decodeBlockSearch(response.result);\n }\n static decodeBlockchain(response) {\n return decodeBlockchain(response.result);\n }\n static decodeBroadcastTxSync(response) {\n return decodeBroadcastTxSync(response.result);\n }\n static decodeBroadcastTxAsync(response) {\n return Responses.decodeBroadcastTxSync(response);\n }\n static decodeBroadcastTxCommit(response) {\n return decodeBroadcastTxCommit(response.result);\n }\n static decodeCommit(response) {\n return decodeCommitResponse(response.result);\n }\n static decodeGenesis(response) {\n return decodeGenesis((0, encodings_1.assertObject)(response.result.genesis));\n }\n static decodeHealth() {\n return null;\n }\n static decodeNumUnconfirmedTxs(response) {\n return decodeNumUnconfirmedTxs(response.result);\n }\n static decodeStatus(response) {\n return decodeStatus(response.result);\n }\n static decodeNewBlockEvent(event) {\n return decodeBlock(event.data.value.block);\n }\n static decodeNewBlockHeaderEvent(event) {\n return decodeHeader(event.data.value.header);\n }\n static decodeTxEvent(event) {\n return decodeTxEvent(event.data.value.TxResult);\n }\n static decodeTx(response) {\n return decodeTxResponse(response.result);\n }\n static decodeTxSearch(response) {\n return decodeTxSearch(response.result);\n }\n static decodeValidators(response) {\n return decodeValidators(response.result);\n }\n}\nexports.Responses = Responses;\n//# sourceMappingURL=responses.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assertSet = assertSet;\nexports.assertBoolean = assertBoolean;\nexports.assertString = assertString;\nexports.assertNumber = assertNumber;\nexports.assertArray = assertArray;\nexports.assertObject = assertObject;\nexports.assertNotEmpty = assertNotEmpty;\nexports.may = may;\nexports.dictionaryToStringMap = dictionaryToStringMap;\nexports.encodeString = encodeString;\nexports.encodeUvarint = encodeUvarint;\nexports.encodeTime = encodeTime;\nexports.encodeBytes = encodeBytes;\nexports.encodeVersion = encodeVersion;\nexports.encodeBlockId = encodeBlockId;\nconst encoding_1 = require(\"@cosmjs/encoding\");\n/**\n * A runtime checker that ensures a given value is set (i.e. not undefined or null)\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n */\nfunction assertSet(value) {\n if (value === undefined) {\n throw new Error(\"Value must not be undefined\");\n }\n if (value === null) {\n throw new Error(\"Value must not be null\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is a boolean\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertBoolean(value) {\n assertSet(value);\n if (typeof value !== \"boolean\") {\n throw new Error(\"Value must be a boolean\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is a string.\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertString(value) {\n assertSet(value);\n if (typeof value !== \"string\") {\n throw new Error(\"Value must be a string\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is a number\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertNumber(value) {\n assertSet(value);\n if (typeof value !== \"number\") {\n throw new Error(\"Value must be a number\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is an array\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertArray(value) {\n assertSet(value);\n if (!Array.isArray(value)) {\n throw new Error(\"Value must be a an array\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is an object in the sense of JSON\n * (an unordered collection of key–value pairs where the keys are strings)\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertObject(value) {\n assertSet(value);\n if (typeof value !== \"object\") {\n throw new Error(\"Value must be an object\");\n }\n // Exclude special kind of objects like Array, Date or Uint8Array\n // Object.prototype.toString() returns a specified value:\n // http://www.ecma-international.org/ecma-262/7.0/index.html#sec-object.prototype.tostring\n if (Object.prototype.toString.call(value) !== \"[object Object]\") {\n throw new Error(\"Value must be a simple object\");\n }\n return value;\n}\n/**\n * Throws an error if value matches the empty value for the\n * given type (array/string of length 0, number of value 0, ...)\n *\n * Otherwise returns the value.\n *\n * This implies assertSet\n */\nfunction assertNotEmpty(value) {\n assertSet(value);\n if (typeof value === \"number\" && value === 0) {\n throw new Error(\"must provide a non-zero value\");\n }\n else if (value.length === 0) {\n throw new Error(\"must provide a non-empty value\");\n }\n return value;\n}\n// may will run the transform if value is defined, otherwise returns undefined\nfunction may(transform, value) {\n return value === undefined || value === null ? undefined : transform(value);\n}\nfunction dictionaryToStringMap(obj) {\n const out = new Map();\n for (const key of Object.keys(obj)) {\n const value = obj[key];\n if (typeof value !== \"string\") {\n throw new Error(\"Found dictionary value of type other than string\");\n }\n out.set(key, value);\n }\n return out;\n}\n// Encodings needed for hashing block headers\n// Several of these functions are inspired by https://github.com/nomic-io/js-tendermint/blob/tendermint-0.30/src/\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L193-L195\nfunction encodeString(s) {\n const utf8 = (0, encoding_1.toUtf8)(s);\n return Uint8Array.from([utf8.length, ...utf8]);\n}\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L79-L87\nfunction encodeUvarint(n) {\n return n >= 0x80\n ? // eslint-disable-next-line no-bitwise\n Uint8Array.from([(n & 0xff) | 0x80, ...encodeUvarint(n >> 7)])\n : // eslint-disable-next-line no-bitwise\n Uint8Array.from([n & 0xff]);\n}\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L134-L178\nfunction encodeTime(time) {\n const milliseconds = time.getTime();\n const seconds = Math.floor(milliseconds / 1000);\n const secondsArray = seconds ? [0x08, ...encodeUvarint(seconds)] : new Uint8Array();\n const nanoseconds = (time.nanoseconds || 0) + (milliseconds % 1000) * 1e6;\n const nanosecondsArray = nanoseconds ? [0x10, ...encodeUvarint(nanoseconds)] : new Uint8Array();\n return Uint8Array.from([...secondsArray, ...nanosecondsArray]);\n}\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L180-L187\nfunction encodeBytes(bytes) {\n // Since we're only dealing with short byte arrays we don't need a full VarBuffer implementation yet\n if (bytes.length >= 0x80)\n throw new Error(\"Not implemented for byte arrays of length 128 or more\");\n return bytes.length ? Uint8Array.from([bytes.length, ...bytes]) : new Uint8Array();\n}\nfunction encodeVersion(version) {\n const blockArray = version.block\n ? Uint8Array.from([0x08, ...encodeUvarint(version.block)])\n : new Uint8Array();\n const appArray = version.app ? Uint8Array.from([0x10, ...encodeUvarint(version.app)]) : new Uint8Array();\n return Uint8Array.from([...blockArray, ...appArray]);\n}\nfunction encodeBlockId(blockId) {\n return Uint8Array.from([\n 0x0a,\n blockId.hash.length,\n ...blockId.hash,\n 0x12,\n blockId.parts.hash.length + 4,\n 0x08,\n blockId.parts.total,\n 0x12,\n blockId.parts.hash.length,\n ...blockId.parts.hash,\n ]);\n}\n//# sourceMappingURL=encodings.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hashTx = hashTx;\nexports.hashBlock = hashBlock;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encodings_1 = require(\"./encodings\");\n// hash is sha256\n// https://github.com/tendermint/tendermint/blob/master/UPGRADING.md#v0260\nfunction hashTx(tx) {\n return (0, crypto_1.sha256)(tx);\n}\nfunction getSplitPoint(n) {\n if (n < 1)\n throw new Error(\"Cannot split an empty tree\");\n const largestPowerOf2 = 2 ** Math.floor(Math.log2(n));\n return largestPowerOf2 < n ? largestPowerOf2 : largestPowerOf2 / 2;\n}\nfunction hashLeaf(leaf) {\n const hash = new crypto_1.Sha256(Uint8Array.from([0]));\n hash.update(leaf);\n return hash.digest();\n}\nfunction hashInner(left, right) {\n const hash = new crypto_1.Sha256(Uint8Array.from([1]));\n hash.update(left);\n hash.update(right);\n return hash.digest();\n}\n// See https://github.com/tendermint/tendermint/blob/v0.31.8/docs/spec/blockchain/encoding.md#merkleroot\n// Note: the hashes input may not actually be hashes, especially before a recursive call\nfunction hashTree(hashes) {\n switch (hashes.length) {\n case 0:\n throw new Error(\"Cannot hash empty tree\");\n case 1:\n return hashLeaf(hashes[0]);\n default: {\n const slicePoint = getSplitPoint(hashes.length);\n const left = hashTree(hashes.slice(0, slicePoint));\n const right = hashTree(hashes.slice(slicePoint));\n return hashInner(left, right);\n }\n }\n}\nfunction hashBlock(header) {\n if (!header.lastBlockId) {\n throw new Error(\"Hashing a block header with no last block ID (i.e. header at height 1) is not supported. If you need this, contributions are welcome. Please add documentation and test vectors for this case.\");\n }\n const encodedFields = [\n (0, encodings_1.encodeVersion)(header.version),\n (0, encodings_1.encodeString)(header.chainId),\n (0, encodings_1.encodeUvarint)(header.height),\n (0, encodings_1.encodeTime)(header.time),\n (0, encodings_1.encodeBlockId)(header.lastBlockId),\n (0, encodings_1.encodeBytes)(header.lastCommitHash),\n (0, encodings_1.encodeBytes)(header.dataHash),\n (0, encodings_1.encodeBytes)(header.validatorsHash),\n (0, encodings_1.encodeBytes)(header.nextValidatorsHash),\n (0, encodings_1.encodeBytes)(header.consensusHash),\n (0, encodings_1.encodeBytes)(header.appHash),\n (0, encodings_1.encodeBytes)(header.lastResultsHash),\n (0, encodings_1.encodeBytes)(header.evidenceHash),\n (0, encodings_1.encodeBytes)(header.proposerAddress),\n ];\n return hashTree(encodedFields);\n}\n//# sourceMappingURL=hasher.js.map","\"use strict\";\n// Note: all exports in this module are publicly available via\n// `import { tendermint34 } from \"@cosmjs/tendermint-rpc\"`\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Tendermint34Client = exports.VoteType = exports.broadcastTxSyncSuccess = exports.broadcastTxCommitSuccess = exports.SubscriptionEventType = exports.Method = void 0;\nvar requests_1 = require(\"./requests\");\nObject.defineProperty(exports, \"Method\", { enumerable: true, get: function () { return requests_1.Method; } });\nObject.defineProperty(exports, \"SubscriptionEventType\", { enumerable: true, get: function () { return requests_1.SubscriptionEventType; } });\nvar responses_1 = require(\"./responses\");\nObject.defineProperty(exports, \"broadcastTxCommitSuccess\", { enumerable: true, get: function () { return responses_1.broadcastTxCommitSuccess; } });\nObject.defineProperty(exports, \"broadcastTxSyncSuccess\", { enumerable: true, get: function () { return responses_1.broadcastTxSyncSuccess; } });\nObject.defineProperty(exports, \"VoteType\", { enumerable: true, get: function () { return responses_1.VoteType; } });\nvar tendermint34client_1 = require(\"./tendermint34client\");\nObject.defineProperty(exports, \"Tendermint34Client\", { enumerable: true, get: function () { return tendermint34client_1.Tendermint34Client; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/naming-convention */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SubscriptionEventType = exports.Method = void 0;\nexports.buildQuery = buildQuery;\n/**\n * RPC methods as documented in https://docs.tendermint.com/master/rpc/\n *\n * Enum raw value must match the spelling in the \"shell\" example call (snake_case)\n */\nvar Method;\n(function (Method) {\n Method[\"AbciInfo\"] = \"abci_info\";\n Method[\"AbciQuery\"] = \"abci_query\";\n Method[\"Block\"] = \"block\";\n /** Get block headers for minHeight <= height <= maxHeight. */\n Method[\"Blockchain\"] = \"blockchain\";\n Method[\"BlockResults\"] = \"block_results\";\n Method[\"BlockSearch\"] = \"block_search\";\n Method[\"BroadcastTxAsync\"] = \"broadcast_tx_async\";\n Method[\"BroadcastTxSync\"] = \"broadcast_tx_sync\";\n Method[\"BroadcastTxCommit\"] = \"broadcast_tx_commit\";\n Method[\"Commit\"] = \"commit\";\n Method[\"Genesis\"] = \"genesis\";\n Method[\"Health\"] = \"health\";\n Method[\"NumUnconfirmedTxs\"] = \"num_unconfirmed_txs\";\n Method[\"Status\"] = \"status\";\n Method[\"Subscribe\"] = \"subscribe\";\n Method[\"Tx\"] = \"tx\";\n Method[\"TxSearch\"] = \"tx_search\";\n Method[\"Validators\"] = \"validators\";\n Method[\"Unsubscribe\"] = \"unsubscribe\";\n})(Method || (exports.Method = Method = {}));\n/**\n * Raw values must match the tendermint event name\n *\n * @see https://godoc.org/github.com/tendermint/tendermint/types#pkg-constants\n */\nvar SubscriptionEventType;\n(function (SubscriptionEventType) {\n SubscriptionEventType[\"NewBlock\"] = \"NewBlock\";\n SubscriptionEventType[\"NewBlockHeader\"] = \"NewBlockHeader\";\n SubscriptionEventType[\"Tx\"] = \"Tx\";\n})(SubscriptionEventType || (exports.SubscriptionEventType = SubscriptionEventType = {}));\nfunction buildQuery(components) {\n const tags = components.tags ? components.tags : [];\n const tagComponents = tags.map((tag) => `${tag.key}='${tag.value}'`);\n const rawComponents = components.raw ? [components.raw] : [];\n return [...tagComponents, ...rawComponents].join(\" AND \");\n}\n//# sourceMappingURL=requests.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VoteType = void 0;\nexports.broadcastTxSyncSuccess = broadcastTxSyncSuccess;\nexports.broadcastTxCommitSuccess = broadcastTxCommitSuccess;\n/**\n * Returns true iff transaction made it successfully into the transaction pool\n */\nfunction broadcastTxSyncSuccess(res) {\n // code must be 0 on success\n return res.code === 0;\n}\n/**\n * Returns true iff transaction made it successfully into a block\n * (i.e. success in `check_tx` and `deliver_tx` field)\n */\nfunction broadcastTxCommitSuccess(response) {\n // code must be 0 on success\n // deliverTx may be present but empty on failure\n return response.checkTx.code === 0 && !!response.deliverTx && response.deliverTx.code === 0;\n}\n/**\n * raw values from https://github.com/tendermint/tendermint/blob/dfa9a9a30a666132425b29454e90a472aa579a48/types/vote.go#L44\n */\nvar VoteType;\n(function (VoteType) {\n VoteType[VoteType[\"PreVote\"] = 1] = \"PreVote\";\n VoteType[VoteType[\"PreCommit\"] = 2] = \"PreCommit\";\n})(VoteType || (exports.VoteType = VoteType = {}));\n//# sourceMappingURL=responses.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Tendermint34Client = void 0;\nconst jsonrpc_1 = require(\"../jsonrpc\");\nconst rpcclients_1 = require(\"../rpcclients\");\nconst adaptor_1 = require(\"./adaptor\");\nconst requests = __importStar(require(\"./requests\"));\nclass Tendermint34Client {\n /**\n * Creates a new Tendermint client for the given endpoint.\n *\n * Uses HTTP when the URL schema is http or https. Uses WebSockets otherwise.\n */\n static async connect(endpoint) {\n let rpcClient;\n if (typeof endpoint === \"object\") {\n rpcClient = new rpcclients_1.HttpClient(endpoint);\n }\n else {\n const useHttp = endpoint.startsWith(\"http://\") || endpoint.startsWith(\"https://\");\n rpcClient = useHttp ? new rpcclients_1.HttpClient(endpoint) : new rpcclients_1.WebsocketClient(endpoint);\n }\n // For some very strange reason I don't understand, tests start to fail on some systems\n // (our CI) when skipping the status call before doing other queries. Sleeping a little\n // while did not help. Thus we query the version as a way to say \"hi\" to the backend,\n // even in cases where we don't use the result.\n const _version = await this.detectVersion(rpcClient);\n return Tendermint34Client.create(rpcClient);\n }\n /**\n * Creates a new Tendermint client given an RPC client.\n */\n static async create(rpcClient) {\n return new Tendermint34Client(rpcClient);\n }\n static async detectVersion(client) {\n const req = (0, jsonrpc_1.createJsonRpcRequest)(requests.Method.Status);\n const response = await client.execute(req);\n const result = response.result;\n if (!result || !result.node_info) {\n throw new Error(\"Unrecognized format for status response\");\n }\n const version = result.node_info.version;\n if (typeof version !== \"string\") {\n throw new Error(\"Unrecognized version format: must be string\");\n }\n return version;\n }\n /**\n * Use `Tendermint34Client.connect` or `Tendermint34Client.create` to create an instance.\n */\n constructor(client) {\n this.client = client;\n }\n disconnect() {\n this.client.disconnect();\n }\n async abciInfo() {\n const query = { method: requests.Method.AbciInfo };\n return this.doCall(query, adaptor_1.Params.encodeAbciInfo, adaptor_1.Responses.decodeAbciInfo);\n }\n async abciQuery(params) {\n const query = { params: params, method: requests.Method.AbciQuery };\n return this.doCall(query, adaptor_1.Params.encodeAbciQuery, adaptor_1.Responses.decodeAbciQuery);\n }\n async block(height) {\n const query = { method: requests.Method.Block, params: { height: height } };\n return this.doCall(query, adaptor_1.Params.encodeBlock, adaptor_1.Responses.decodeBlock);\n }\n async blockResults(height) {\n const query = {\n method: requests.Method.BlockResults,\n params: { height: height },\n };\n return this.doCall(query, adaptor_1.Params.encodeBlockResults, adaptor_1.Responses.decodeBlockResults);\n }\n /**\n * Search for events that are in a block.\n *\n * NOTE\n * This method will error on any node that is running a Tendermint version lower than 0.34.9.\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/block_search\n */\n async blockSearch(params) {\n const query = { params: params, method: requests.Method.BlockSearch };\n const resp = await this.doCall(query, adaptor_1.Params.encodeBlockSearch, adaptor_1.Responses.decodeBlockSearch);\n return {\n ...resp,\n // make sure we sort by height, as tendermint may be sorting by string value of the height\n blocks: [...resp.blocks].sort((a, b) => a.block.header.height - b.block.header.height),\n };\n }\n // this should paginate through all blockSearch options to ensure it returns all results.\n // starts with page 1 or whatever was provided (eg. to start on page 7)\n //\n // NOTE\n // This method will error on any node that is running a Tendermint version lower than 0.34.9.\n async blockSearchAll(params) {\n let page = params.page || 1;\n const blocks = [];\n let done = false;\n while (!done) {\n const resp = await this.blockSearch({ ...params, page: page });\n blocks.push(...resp.blocks);\n if (blocks.length < resp.totalCount) {\n page++;\n }\n else {\n done = true;\n }\n }\n // make sure we sort by height, as tendermint may be sorting by string value of the height\n // and the earlier items may be in a higher page than the later items\n blocks.sort((a, b) => a.block.header.height - b.block.header.height);\n return {\n totalCount: blocks.length,\n blocks: blocks,\n };\n }\n /**\n * Queries block headers filtered by minHeight <= height <= maxHeight.\n *\n * @param minHeight The minimum height to be included in the result. Defaults to 0.\n * @param maxHeight The maximum height to be included in the result. Defaults to infinity.\n */\n async blockchain(minHeight, maxHeight) {\n const query = {\n method: requests.Method.Blockchain,\n params: {\n minHeight: minHeight,\n maxHeight: maxHeight,\n },\n };\n return this.doCall(query, adaptor_1.Params.encodeBlockchain, adaptor_1.Responses.decodeBlockchain);\n }\n /**\n * Broadcast transaction to mempool and wait for response\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_sync\n */\n async broadcastTxSync(params) {\n const query = { params: params, method: requests.Method.BroadcastTxSync };\n return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxSync);\n }\n /**\n * Broadcast transaction to mempool and do not wait for result\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_async\n */\n async broadcastTxAsync(params) {\n const query = { params: params, method: requests.Method.BroadcastTxAsync };\n return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxAsync);\n }\n /**\n * Broadcast transaction to mempool and wait for block\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_commit\n */\n async broadcastTxCommit(params) {\n const query = { params: params, method: requests.Method.BroadcastTxCommit };\n return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxCommit);\n }\n async commit(height) {\n const query = { method: requests.Method.Commit, params: { height: height } };\n return this.doCall(query, adaptor_1.Params.encodeCommit, adaptor_1.Responses.decodeCommit);\n }\n async genesis() {\n const query = { method: requests.Method.Genesis };\n return this.doCall(query, adaptor_1.Params.encodeGenesis, adaptor_1.Responses.decodeGenesis);\n }\n async health() {\n const query = { method: requests.Method.Health };\n return this.doCall(query, adaptor_1.Params.encodeHealth, adaptor_1.Responses.decodeHealth);\n }\n async numUnconfirmedTxs() {\n const query = { method: requests.Method.NumUnconfirmedTxs };\n return this.doCall(query, adaptor_1.Params.encodeNumUnconfirmedTxs, adaptor_1.Responses.decodeNumUnconfirmedTxs);\n }\n async status() {\n const query = { method: requests.Method.Status };\n return this.doCall(query, adaptor_1.Params.encodeStatus, adaptor_1.Responses.decodeStatus);\n }\n subscribeNewBlock() {\n const request = {\n method: requests.Method.Subscribe,\n query: { type: requests.SubscriptionEventType.NewBlock },\n };\n return this.subscribe(request, adaptor_1.Responses.decodeNewBlockEvent);\n }\n subscribeNewBlockHeader() {\n const request = {\n method: requests.Method.Subscribe,\n query: { type: requests.SubscriptionEventType.NewBlockHeader },\n };\n return this.subscribe(request, adaptor_1.Responses.decodeNewBlockHeaderEvent);\n }\n subscribeTx(query) {\n const request = {\n method: requests.Method.Subscribe,\n query: {\n type: requests.SubscriptionEventType.Tx,\n raw: query,\n },\n };\n return this.subscribe(request, adaptor_1.Responses.decodeTxEvent);\n }\n /**\n * Get a single transaction by hash\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/tx\n */\n async tx(params) {\n const query = { params: params, method: requests.Method.Tx };\n return this.doCall(query, adaptor_1.Params.encodeTx, adaptor_1.Responses.decodeTx);\n }\n /**\n * Search for transactions that are in a block\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/tx_search\n */\n async txSearch(params) {\n const query = { params: params, method: requests.Method.TxSearch };\n return this.doCall(query, adaptor_1.Params.encodeTxSearch, adaptor_1.Responses.decodeTxSearch);\n }\n // this should paginate through all txSearch options to ensure it returns all results.\n // starts with page 1 or whatever was provided (eg. to start on page 7)\n async txSearchAll(params) {\n let page = params.page || 1;\n const txs = [];\n let done = false;\n while (!done) {\n const resp = await this.txSearch({ ...params, page: page });\n txs.push(...resp.txs);\n if (txs.length < resp.totalCount) {\n page++;\n }\n else {\n done = true;\n }\n }\n return {\n totalCount: txs.length,\n txs: txs,\n };\n }\n async validators(params) {\n const query = {\n method: requests.Method.Validators,\n params: params,\n };\n return this.doCall(query, adaptor_1.Params.encodeValidators, adaptor_1.Responses.decodeValidators);\n }\n async validatorsAll(height) {\n const validators = [];\n let page = 1;\n let done = false;\n let blockHeight = height;\n while (!done) {\n const response = await this.validators({\n per_page: 50,\n height: blockHeight,\n page: page,\n });\n validators.push(...response.validators);\n blockHeight = blockHeight || response.blockHeight;\n if (validators.length < response.total) {\n page++;\n }\n else {\n done = true;\n }\n }\n return {\n // NOTE: Default value is for type safety but this should always be set\n blockHeight: blockHeight ?? 0,\n count: validators.length,\n total: validators.length,\n validators: validators,\n };\n }\n // doCall is a helper to handle the encode/call/decode logic\n async doCall(request, encode, decode) {\n const req = encode(request);\n const result = await this.client.execute(req);\n return decode(result);\n }\n subscribe(request, decode) {\n if (!(0, rpcclients_1.instanceOfRpcStreamingClient)(this.client)) {\n throw new Error(\"This RPC client type cannot subscribe to events\");\n }\n const req = adaptor_1.Params.encodeSubscribe(request);\n const eventStream = this.client.listen(req);\n return eventStream.map((event) => {\n return decode(event);\n });\n }\n}\nexports.Tendermint34Client = Tendermint34Client;\n//# sourceMappingURL=tendermint34client.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Responses = exports.Params = void 0;\nvar requests_1 = require(\"./requests\");\nObject.defineProperty(exports, \"Params\", { enumerable: true, get: function () { return requests_1.Params; } });\nvar responses_1 = require(\"./responses\");\nObject.defineProperty(exports, \"Responses\", { enumerable: true, get: function () { return responses_1.Responses; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst inthelpers_1 = require(\"../../inthelpers\");\nconst jsonrpc_1 = require(\"../../jsonrpc\");\nconst encodings_1 = require(\"../encodings\");\nconst requests = __importStar(require(\"../requests\"));\nfunction encodeHeightParam(param) {\n return {\n height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.height),\n };\n}\nfunction encodeBlockchainRequestParams(param) {\n return {\n minHeight: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.minHeight),\n maxHeight: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.maxHeight),\n };\n}\nfunction encodeBlockSearchParams(params) {\n return {\n query: params.query,\n page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page),\n per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page),\n order_by: params.order_by,\n };\n}\nfunction encodeAbciQueryParams(params) {\n return {\n path: (0, encodings_1.assertNotEmpty)(params.path),\n data: (0, encoding_1.toHex)(params.data),\n height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.height),\n prove: params.prove,\n };\n}\nfunction encodeBroadcastTxParams(params) {\n return {\n tx: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.tx)),\n };\n}\nfunction encodeTxParams(params) {\n return {\n hash: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.hash)),\n prove: params.prove,\n };\n}\nfunction encodeTxSearchParams(params) {\n return {\n query: params.query,\n prove: params.prove,\n page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page),\n per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page),\n order_by: params.order_by,\n };\n}\nfunction encodeValidatorsParams(params) {\n return {\n height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.height),\n page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page),\n per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page),\n };\n}\nclass Params {\n static encodeAbciInfo(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeAbciQuery(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeAbciQueryParams(req.params));\n }\n static encodeBlock(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeBlockchain(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockchainRequestParams(req.params));\n }\n static encodeBlockResults(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeBlockSearch(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockSearchParams(req.params));\n }\n static encodeBroadcastTx(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBroadcastTxParams(req.params));\n }\n static encodeCommit(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeGenesis(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeHealth(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeNumUnconfirmedTxs(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeStatus(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeSubscribe(req) {\n const eventTag = { key: \"tm.event\", value: req.query.type };\n const query = requests.buildQuery({ tags: [eventTag], raw: req.query.raw });\n return (0, jsonrpc_1.createJsonRpcRequest)(\"subscribe\", { query: query });\n }\n static encodeTx(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxParams(req.params));\n }\n // TODO: encode params for query string???\n static encodeTxSearch(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxSearchParams(req.params));\n }\n static encodeValidators(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeValidatorsParams(req.params));\n }\n}\nexports.Params = Params;\n//# sourceMappingURL=requests.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Responses = void 0;\nexports.decodeEvent = decodeEvent;\nexports.decodeValidatorUpdate = decodeValidatorUpdate;\nexports.decodeValidatorGenesis = decodeValidatorGenesis;\nexports.decodeValidatorInfo = decodeValidatorInfo;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst dates_1 = require(\"../../dates\");\nconst inthelpers_1 = require(\"../../inthelpers\");\nconst types_1 = require(\"../../types\");\nconst encodings_1 = require(\"../encodings\");\nconst hasher_1 = require(\"../hasher\");\nfunction decodeAbciInfo(data) {\n return {\n data: data.data,\n lastBlockHeight: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.last_block_height),\n lastBlockAppHash: (0, encodings_1.may)(encoding_1.fromBase64, data.last_block_app_hash),\n };\n}\nfunction decodeQueryProof(data) {\n return {\n ops: data.ops.map((op) => ({\n type: op.type,\n key: (0, encoding_1.fromBase64)(op.key),\n data: (0, encoding_1.fromBase64)(op.data),\n })),\n };\n}\nfunction decodeAbciQuery(data) {\n return {\n key: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(data.key ?? \"\")),\n value: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(data.value ?? \"\")),\n proof: (0, encodings_1.may)(decodeQueryProof, data.proofOps),\n height: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.height),\n code: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.code),\n codespace: (0, encodings_1.assertString)(data.codespace ?? \"\"),\n index: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.index),\n log: data.log,\n info: (0, encodings_1.assertString)(data.info ?? \"\"),\n };\n}\nfunction decodeEventAttribute(attribute) {\n return {\n key: (0, encodings_1.assertNotEmpty)(attribute.key),\n value: attribute.value ?? \"\",\n };\n}\nfunction decodeAttributes(attributes) {\n return (0, encodings_1.assertArray)(attributes).map(decodeEventAttribute);\n}\nfunction decodeEvent(event) {\n return {\n type: event.type,\n attributes: event.attributes ? decodeAttributes(event.attributes) : [],\n };\n}\nfunction decodeEvents(events) {\n return (0, encodings_1.assertArray)(events).map(decodeEvent);\n}\nfunction decodeTxData(data) {\n return {\n code: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNumber)(data.code ?? 0)),\n codespace: data.codespace,\n log: data.log,\n data: (0, encodings_1.may)(encoding_1.fromBase64, data.data),\n events: data.events ? decodeEvents(data.events) : [],\n gasWanted: (0, inthelpers_1.apiToBigInt)(data.gas_wanted ?? \"0\"),\n gasUsed: (0, inthelpers_1.apiToBigInt)(data.gas_used ?? \"0\"),\n };\n}\nfunction decodePubkey(data) {\n if (\"Sum\" in data) {\n // we don't need to check type because we're checking algorithm\n const [[algorithm, value]] = Object.entries(data.Sum.value);\n (0, utils_1.assert)(algorithm === \"ed25519\" || algorithm === \"secp256k1\", `unknown pubkey type: ${algorithm}`);\n return {\n algorithm,\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(value)),\n };\n }\n else {\n switch (data.type) {\n // go-amino special code\n case \"tendermint/PubKeyEd25519\":\n return {\n algorithm: \"ed25519\",\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)),\n };\n case \"tendermint/PubKeySecp256k1\":\n return {\n algorithm: \"secp256k1\",\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)),\n };\n default:\n throw new Error(`unknown pubkey type: ${data.type}`);\n }\n }\n}\n/**\n * Note: we do not parse block.time_iota_ms for now because of this CHANGELOG entry\n *\n * > Add time_iota_ms to block's consensus parameters (not exposed to the application)\n * https://github.com/tendermint/tendermint/blob/master/CHANGELOG.md#v0310\n */\nfunction decodeBlockParams(data) {\n return {\n maxBytes: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_bytes)),\n maxGas: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_gas)),\n };\n}\nfunction decodeEvidenceParams(data) {\n return {\n maxAgeNumBlocks: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_age_num_blocks)),\n maxAgeDuration: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_age_duration)),\n };\n}\nfunction decodeConsensusParams(data) {\n return {\n block: decodeBlockParams((0, encodings_1.assertObject)(data.block)),\n evidence: decodeEvidenceParams((0, encodings_1.assertObject)(data.evidence)),\n };\n}\nfunction decodeValidatorUpdate(data) {\n return {\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: (0, inthelpers_1.apiToBigInt)(data.power ?? \"0\"),\n };\n}\nfunction decodeBlockResults(data) {\n return {\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n results: (data.txs_results || []).map(decodeTxData),\n validatorUpdates: (data.validator_updates || []).map(decodeValidatorUpdate),\n consensusUpdates: (0, encodings_1.may)(decodeConsensusParams, data.consensus_param_updates),\n beginBlockEvents: decodeEvents(data.begin_block_events || []),\n endBlockEvents: decodeEvents(data.end_block_events || []),\n };\n}\nfunction decodeBlockId(data) {\n return {\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n parts: {\n total: (0, encodings_1.assertNotEmpty)(data.parts.total),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.parts.hash)),\n },\n };\n}\nfunction decodeBlockVersion(data) {\n return {\n block: (0, inthelpers_1.apiToSmallInt)(data.block),\n app: (0, inthelpers_1.apiToSmallInt)(data.app ?? 0),\n };\n}\nfunction decodeHeader(data) {\n return {\n version: decodeBlockVersion(data.version),\n chainId: (0, encodings_1.assertNotEmpty)(data.chain_id),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n time: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.time)),\n // When there is no last block ID (i.e. this block's height is 1), we get an empty structure like this:\n // { hash: '', parts: { total: 0, hash: '' } }\n lastBlockId: data.last_block_id.hash ? decodeBlockId(data.last_block_id) : null,\n lastCommitHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_commit_hash)),\n dataHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.data_hash)),\n validatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.validators_hash)),\n nextValidatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.next_validators_hash)),\n consensusHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.consensus_hash)),\n appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)),\n lastResultsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_results_hash)),\n evidenceHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.evidence_hash)),\n proposerAddress: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.proposer_address)),\n };\n}\nfunction decodeBlockMeta(data) {\n return {\n blockId: decodeBlockId(data.block_id),\n blockSize: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.block_size)),\n header: decodeHeader(data.header),\n numTxs: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.num_txs)),\n };\n}\nfunction decodeBlockchain(data) {\n return {\n lastHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.last_height)),\n blockMetas: (0, encodings_1.assertArray)(data.block_metas).map(decodeBlockMeta),\n };\n}\nfunction decodeBroadcastTxSync(data) {\n return {\n ...decodeTxData(data),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n };\n}\nfunction decodeBroadcastTxCommit(data) {\n return {\n height: (0, inthelpers_1.apiToSmallInt)(data.height),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n checkTx: decodeTxData((0, encodings_1.assertObject)(data.check_tx)),\n deliverTx: (0, encodings_1.may)(decodeTxData, data.deliver_tx),\n };\n}\nfunction decodeBlockIdFlag(blockIdFlag) {\n (0, utils_1.assert)(blockIdFlag in types_1.BlockIdFlag);\n return blockIdFlag;\n}\nfunction decodeCommitSignature(data) {\n return {\n blockIdFlag: decodeBlockIdFlag(data.block_id_flag),\n validatorAddress: data.validator_address ? (0, encoding_1.fromHex)(data.validator_address) : undefined,\n timestamp: data.timestamp ? (0, dates_1.fromRfc3339WithNanoseconds)(data.timestamp) : undefined,\n signature: data.signature ? (0, encoding_1.fromBase64)(data.signature) : undefined,\n };\n}\nfunction decodeCommit(data) {\n return {\n blockId: decodeBlockId((0, encodings_1.assertObject)(data.block_id)),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n round: (0, inthelpers_1.apiToSmallInt)(data.round),\n signatures: (0, encodings_1.assertArray)(data.signatures).map(decodeCommitSignature),\n };\n}\nfunction decodeCommitResponse(data) {\n return {\n canonical: (0, encodings_1.assertBoolean)(data.canonical),\n header: decodeHeader(data.signed_header.header),\n commit: decodeCommit(data.signed_header.commit),\n };\n}\nfunction decodeValidatorGenesis(data) {\n return {\n address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)),\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: (0, inthelpers_1.apiToBigInt)((0, encodings_1.assertNotEmpty)(data.power)),\n };\n}\nfunction decodeGenesis(data) {\n return {\n genesisTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.genesis_time)),\n chainId: (0, encodings_1.assertNotEmpty)(data.chain_id),\n consensusParams: decodeConsensusParams(data.consensus_params),\n validators: data.validators ? (0, encodings_1.assertArray)(data.validators).map(decodeValidatorGenesis) : [],\n appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)), // empty string in kvstore app\n appState: data.app_state,\n };\n}\nfunction decodeValidatorInfo(data) {\n return {\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: (0, inthelpers_1.apiToBigInt)((0, encodings_1.assertNotEmpty)(data.voting_power)),\n address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)),\n proposerPriority: data.proposer_priority ? (0, inthelpers_1.apiToSmallInt)(data.proposer_priority) : undefined,\n };\n}\nfunction decodeNodeInfo(data) {\n return {\n id: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.id)),\n listenAddr: (0, encodings_1.assertNotEmpty)(data.listen_addr),\n network: (0, encodings_1.assertNotEmpty)(data.network),\n version: (0, encodings_1.assertString)(data.version), // Can be empty (https://github.com/cosmos/cosmos-sdk/issues/7963)\n channels: (0, encodings_1.assertString)(data.channels), // can be empty\n moniker: (0, encodings_1.assertNotEmpty)(data.moniker),\n other: (0, encodings_1.dictionaryToStringMap)(data.other),\n protocolVersion: {\n app: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.app)),\n block: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.block)),\n p2p: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.p2p)),\n },\n };\n}\nfunction decodeSyncInfo(data) {\n const earliestBlockHeight = data.earliest_block_height\n ? (0, inthelpers_1.apiToSmallInt)(data.earliest_block_height)\n : undefined;\n const earliestBlockTime = data.earliest_block_time\n ? (0, dates_1.fromRfc3339WithNanoseconds)(data.earliest_block_time)\n : undefined;\n return {\n earliestAppHash: data.earliest_app_hash ? (0, encoding_1.fromHex)(data.earliest_app_hash) : undefined,\n earliestBlockHash: data.earliest_block_hash ? (0, encoding_1.fromHex)(data.earliest_block_hash) : undefined,\n earliestBlockHeight: earliestBlockHeight || undefined,\n earliestBlockTime: earliestBlockTime?.getTime() ? earliestBlockTime : undefined,\n latestBlockHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_block_hash)),\n latestAppHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_app_hash)),\n latestBlockTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.latest_block_time)),\n latestBlockHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.latest_block_height)),\n catchingUp: (0, encodings_1.assertBoolean)(data.catching_up),\n };\n}\nfunction decodeStatus(data) {\n return {\n nodeInfo: decodeNodeInfo(data.node_info),\n syncInfo: decodeSyncInfo(data.sync_info),\n validatorInfo: decodeValidatorInfo(data.validator_info),\n };\n}\nfunction decodeTxProof(data) {\n return {\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.data)),\n rootHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.root_hash)),\n proof: {\n total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.proof.total)),\n index: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.proof.index)),\n leafHash: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.proof.leaf_hash)),\n aunts: (0, encodings_1.assertArray)(data.proof.aunts).map(encoding_1.fromBase64),\n },\n };\n}\nfunction decodeTxResponse(data) {\n return {\n tx: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx)),\n result: decodeTxData((0, encodings_1.assertObject)(data.tx_result)),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n index: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNumber)(data.index)),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n proof: (0, encodings_1.may)(decodeTxProof, data.proof),\n };\n}\nfunction decodeTxSearch(data) {\n return {\n totalCount: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_count)),\n txs: (0, encodings_1.assertArray)(data.txs).map(decodeTxResponse),\n };\n}\nfunction decodeTxEvent(data) {\n const tx = (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx));\n return {\n tx: tx,\n hash: (0, hasher_1.hashTx)(tx),\n result: decodeTxData(data.result),\n height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)),\n };\n}\nfunction decodeValidators(data) {\n return {\n blockHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.block_height)),\n validators: (0, encodings_1.assertArray)(data.validators).map(decodeValidatorInfo),\n count: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.count)),\n total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total)),\n };\n}\nfunction decodeBlock(data) {\n return {\n header: decodeHeader((0, encodings_1.assertObject)(data.header)),\n // For the block at height 1, last commit is not set. This is represented in an empty object like this:\n // { height: '0', round: 0, block_id: { hash: '', parts: [Object] }, signatures: [] }\n lastCommit: data.last_commit.block_id.hash ? decodeCommit((0, encodings_1.assertObject)(data.last_commit)) : null,\n txs: data.data.txs ? (0, encodings_1.assertArray)(data.data.txs).map(encoding_1.fromBase64) : [],\n // Lift up .evidence.evidence to just .evidence\n // See https://github.com/tendermint/tendermint/issues/7697\n evidence: data.evidence?.evidence ?? [],\n };\n}\nfunction decodeBlockResponse(data) {\n return {\n blockId: decodeBlockId(data.block_id),\n block: decodeBlock(data.block),\n };\n}\nfunction decodeBlockSearch(data) {\n return {\n totalCount: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_count)),\n blocks: (0, encodings_1.assertArray)(data.blocks).map(decodeBlockResponse),\n };\n}\nfunction decodeNumUnconfirmedTxs(data) {\n return {\n total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total)),\n totalBytes: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_bytes)),\n };\n}\nclass Responses {\n static decodeAbciInfo(response) {\n return decodeAbciInfo((0, encodings_1.assertObject)(response.result.response));\n }\n static decodeAbciQuery(response) {\n return decodeAbciQuery((0, encodings_1.assertObject)(response.result.response));\n }\n static decodeBlock(response) {\n return decodeBlockResponse(response.result);\n }\n static decodeBlockResults(response) {\n return decodeBlockResults(response.result);\n }\n static decodeBlockSearch(response) {\n return decodeBlockSearch(response.result);\n }\n static decodeBlockchain(response) {\n return decodeBlockchain(response.result);\n }\n static decodeBroadcastTxSync(response) {\n return decodeBroadcastTxSync(response.result);\n }\n static decodeBroadcastTxAsync(response) {\n return Responses.decodeBroadcastTxSync(response);\n }\n static decodeBroadcastTxCommit(response) {\n return decodeBroadcastTxCommit(response.result);\n }\n static decodeCommit(response) {\n return decodeCommitResponse(response.result);\n }\n static decodeGenesis(response) {\n return decodeGenesis((0, encodings_1.assertObject)(response.result.genesis));\n }\n static decodeHealth() {\n return null;\n }\n static decodeNumUnconfirmedTxs(response) {\n return decodeNumUnconfirmedTxs(response.result);\n }\n static decodeStatus(response) {\n return decodeStatus(response.result);\n }\n static decodeNewBlockEvent(event) {\n return decodeBlock(event.data.value.block);\n }\n static decodeNewBlockHeaderEvent(event) {\n return decodeHeader(event.data.value.header);\n }\n static decodeTxEvent(event) {\n return decodeTxEvent(event.data.value.TxResult);\n }\n static decodeTx(response) {\n return decodeTxResponse(response.result);\n }\n static decodeTxSearch(response) {\n return decodeTxSearch(response.result);\n }\n static decodeValidators(response) {\n return decodeValidators(response.result);\n }\n}\nexports.Responses = Responses;\n//# sourceMappingURL=responses.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assertSet = assertSet;\nexports.assertBoolean = assertBoolean;\nexports.assertString = assertString;\nexports.assertNumber = assertNumber;\nexports.assertArray = assertArray;\nexports.assertObject = assertObject;\nexports.assertNotEmpty = assertNotEmpty;\nexports.may = may;\nexports.dictionaryToStringMap = dictionaryToStringMap;\nexports.encodeString = encodeString;\nexports.encodeUvarint = encodeUvarint;\nexports.encodeTime = encodeTime;\nexports.encodeBytes = encodeBytes;\nexports.encodeVersion = encodeVersion;\nexports.encodeBlockId = encodeBlockId;\nconst encoding_1 = require(\"@cosmjs/encoding\");\n/**\n * A runtime checker that ensures a given value is set (i.e. not undefined or null)\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n */\nfunction assertSet(value) {\n if (value === undefined) {\n throw new Error(\"Value must not be undefined\");\n }\n if (value === null) {\n throw new Error(\"Value must not be null\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is a boolean\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertBoolean(value) {\n assertSet(value);\n if (typeof value !== \"boolean\") {\n throw new Error(\"Value must be a boolean\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is a string.\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertString(value) {\n assertSet(value);\n if (typeof value !== \"string\") {\n throw new Error(\"Value must be a string\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is a number\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertNumber(value) {\n assertSet(value);\n if (typeof value !== \"number\") {\n throw new Error(\"Value must be a number\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is an array\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertArray(value) {\n assertSet(value);\n if (!Array.isArray(value)) {\n throw new Error(\"Value must be a an array\");\n }\n return value;\n}\n/**\n * A runtime checker that ensures a given value is an object in the sense of JSON\n * (an unordered collection of key–value pairs where the keys are strings)\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertObject(value) {\n assertSet(value);\n if (typeof value !== \"object\") {\n throw new Error(\"Value must be an object\");\n }\n // Exclude special kind of objects like Array, Date or Uint8Array\n // Object.prototype.toString() returns a specified value:\n // http://www.ecma-international.org/ecma-262/7.0/index.html#sec-object.prototype.tostring\n if (Object.prototype.toString.call(value) !== \"[object Object]\") {\n throw new Error(\"Value must be a simple object\");\n }\n return value;\n}\n/**\n * Throws an error if value matches the empty value for the\n * given type (array/string of length 0, number of value 0, ...)\n *\n * Otherwise returns the value.\n *\n * This implies assertSet\n */\nfunction assertNotEmpty(value) {\n assertSet(value);\n if (typeof value === \"number\" && value === 0) {\n throw new Error(\"must provide a non-zero value\");\n }\n else if (value.length === 0) {\n throw new Error(\"must provide a non-empty value\");\n }\n return value;\n}\n// may will run the transform if value is defined, otherwise returns undefined\nfunction may(transform, value) {\n return value === undefined || value === null ? undefined : transform(value);\n}\nfunction dictionaryToStringMap(obj) {\n const out = new Map();\n for (const key of Object.keys(obj)) {\n const value = obj[key];\n if (typeof value !== \"string\") {\n throw new Error(\"Found dictionary value of type other than string\");\n }\n out.set(key, value);\n }\n return out;\n}\n// Encodings needed for hashing block headers\n// Several of these functions are inspired by https://github.com/nomic-io/js-tendermint/blob/tendermint-0.30/src/\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L193-L195\nfunction encodeString(s) {\n const utf8 = (0, encoding_1.toUtf8)(s);\n return Uint8Array.from([utf8.length, ...utf8]);\n}\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L79-L87\nfunction encodeUvarint(n) {\n return n >= 0x80\n ? // eslint-disable-next-line no-bitwise\n Uint8Array.from([(n & 0xff) | 0x80, ...encodeUvarint(n >> 7)])\n : // eslint-disable-next-line no-bitwise\n Uint8Array.from([n & 0xff]);\n}\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L134-L178\nfunction encodeTime(time) {\n const milliseconds = time.getTime();\n const seconds = Math.floor(milliseconds / 1000);\n const secondsArray = seconds ? [0x08, ...encodeUvarint(seconds)] : new Uint8Array();\n const nanoseconds = (time.nanoseconds || 0) + (milliseconds % 1000) * 1e6;\n const nanosecondsArray = nanoseconds ? [0x10, ...encodeUvarint(nanoseconds)] : new Uint8Array();\n return Uint8Array.from([...secondsArray, ...nanosecondsArray]);\n}\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L180-L187\nfunction encodeBytes(bytes) {\n // Since we're only dealing with short byte arrays we don't need a full VarBuffer implementation yet\n if (bytes.length >= 0x80)\n throw new Error(\"Not implemented for byte arrays of length 128 or more\");\n return bytes.length ? Uint8Array.from([bytes.length, ...bytes]) : new Uint8Array();\n}\nfunction encodeVersion(version) {\n const blockArray = version.block\n ? Uint8Array.from([0x08, ...encodeUvarint(version.block)])\n : new Uint8Array();\n const appArray = version.app ? Uint8Array.from([0x10, ...encodeUvarint(version.app)]) : new Uint8Array();\n return Uint8Array.from([...blockArray, ...appArray]);\n}\nfunction encodeBlockId(blockId) {\n return Uint8Array.from([\n 0x0a,\n blockId.hash.length,\n ...blockId.hash,\n 0x12,\n blockId.parts.hash.length + 4,\n 0x08,\n blockId.parts.total,\n 0x12,\n blockId.parts.hash.length,\n ...blockId.parts.hash,\n ]);\n}\n//# sourceMappingURL=encodings.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hashTx = hashTx;\nexports.hashBlock = hashBlock;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encodings_1 = require(\"./encodings\");\n// hash is sha256\n// https://github.com/tendermint/tendermint/blob/master/UPGRADING.md#v0260\nfunction hashTx(tx) {\n return (0, crypto_1.sha256)(tx);\n}\nfunction getSplitPoint(n) {\n if (n < 1)\n throw new Error(\"Cannot split an empty tree\");\n const largestPowerOf2 = 2 ** Math.floor(Math.log2(n));\n return largestPowerOf2 < n ? largestPowerOf2 : largestPowerOf2 / 2;\n}\nfunction hashLeaf(leaf) {\n const hash = new crypto_1.Sha256(Uint8Array.from([0]));\n hash.update(leaf);\n return hash.digest();\n}\nfunction hashInner(left, right) {\n const hash = new crypto_1.Sha256(Uint8Array.from([1]));\n hash.update(left);\n hash.update(right);\n return hash.digest();\n}\n// See https://github.com/tendermint/tendermint/blob/v0.31.8/docs/spec/blockchain/encoding.md#merkleroot\n// Note: the hashes input may not actually be hashes, especially before a recursive call\nfunction hashTree(hashes) {\n switch (hashes.length) {\n case 0:\n throw new Error(\"Cannot hash empty tree\");\n case 1:\n return hashLeaf(hashes[0]);\n default: {\n const slicePoint = getSplitPoint(hashes.length);\n const left = hashTree(hashes.slice(0, slicePoint));\n const right = hashTree(hashes.slice(slicePoint));\n return hashInner(left, right);\n }\n }\n}\nfunction hashBlock(header) {\n if (!header.lastBlockId) {\n throw new Error(\"Hashing a block header with no last block ID (i.e. header at height 1) is not supported. If you need this, contributions are welcome. Please add documentation and test vectors for this case.\");\n }\n const encodedFields = [\n (0, encodings_1.encodeVersion)(header.version),\n (0, encodings_1.encodeString)(header.chainId),\n (0, encodings_1.encodeUvarint)(header.height),\n (0, encodings_1.encodeTime)(header.time),\n (0, encodings_1.encodeBlockId)(header.lastBlockId),\n (0, encodings_1.encodeBytes)(header.lastCommitHash),\n (0, encodings_1.encodeBytes)(header.dataHash),\n (0, encodings_1.encodeBytes)(header.validatorsHash),\n (0, encodings_1.encodeBytes)(header.nextValidatorsHash),\n (0, encodings_1.encodeBytes)(header.consensusHash),\n (0, encodings_1.encodeBytes)(header.appHash),\n (0, encodings_1.encodeBytes)(header.lastResultsHash),\n (0, encodings_1.encodeBytes)(header.evidenceHash),\n (0, encodings_1.encodeBytes)(header.proposerAddress),\n ];\n return hashTree(encodedFields);\n}\n//# sourceMappingURL=hasher.js.map","\"use strict\";\n// Note: all exports in this module are publicly available via\n// `import { tendermint37 } from \"@cosmjs/tendermint-rpc\"`\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Tendermint37Client = exports.VoteType = exports.broadcastTxSyncSuccess = exports.broadcastTxCommitSuccess = exports.SubscriptionEventType = exports.Method = void 0;\nvar requests_1 = require(\"./requests\");\nObject.defineProperty(exports, \"Method\", { enumerable: true, get: function () { return requests_1.Method; } });\nObject.defineProperty(exports, \"SubscriptionEventType\", { enumerable: true, get: function () { return requests_1.SubscriptionEventType; } });\nvar responses_1 = require(\"./responses\");\nObject.defineProperty(exports, \"broadcastTxCommitSuccess\", { enumerable: true, get: function () { return responses_1.broadcastTxCommitSuccess; } });\nObject.defineProperty(exports, \"broadcastTxSyncSuccess\", { enumerable: true, get: function () { return responses_1.broadcastTxSyncSuccess; } });\nObject.defineProperty(exports, \"VoteType\", { enumerable: true, get: function () { return responses_1.VoteType; } });\nvar tendermint37client_1 = require(\"./tendermint37client\");\nObject.defineProperty(exports, \"Tendermint37Client\", { enumerable: true, get: function () { return tendermint37client_1.Tendermint37Client; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/naming-convention */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SubscriptionEventType = exports.Method = void 0;\nexports.buildQuery = buildQuery;\n/**\n * RPC methods as documented in https://docs.tendermint.com/master/rpc/\n *\n * Enum raw value must match the spelling in the \"shell\" example call (snake_case)\n */\nvar Method;\n(function (Method) {\n Method[\"AbciInfo\"] = \"abci_info\";\n Method[\"AbciQuery\"] = \"abci_query\";\n Method[\"Block\"] = \"block\";\n /** Get block headers for minHeight <= height <= maxHeight. */\n Method[\"Blockchain\"] = \"blockchain\";\n Method[\"BlockResults\"] = \"block_results\";\n Method[\"BlockSearch\"] = \"block_search\";\n Method[\"BroadcastTxAsync\"] = \"broadcast_tx_async\";\n Method[\"BroadcastTxSync\"] = \"broadcast_tx_sync\";\n Method[\"BroadcastTxCommit\"] = \"broadcast_tx_commit\";\n Method[\"Commit\"] = \"commit\";\n Method[\"Genesis\"] = \"genesis\";\n Method[\"Health\"] = \"health\";\n Method[\"NumUnconfirmedTxs\"] = \"num_unconfirmed_txs\";\n Method[\"Status\"] = \"status\";\n Method[\"Subscribe\"] = \"subscribe\";\n Method[\"Tx\"] = \"tx\";\n Method[\"TxSearch\"] = \"tx_search\";\n Method[\"Validators\"] = \"validators\";\n Method[\"Unsubscribe\"] = \"unsubscribe\";\n})(Method || (exports.Method = Method = {}));\n/**\n * Raw values must match the tendermint event name\n *\n * @see https://godoc.org/github.com/tendermint/tendermint/types#pkg-constants\n */\nvar SubscriptionEventType;\n(function (SubscriptionEventType) {\n SubscriptionEventType[\"NewBlock\"] = \"NewBlock\";\n SubscriptionEventType[\"NewBlockHeader\"] = \"NewBlockHeader\";\n SubscriptionEventType[\"Tx\"] = \"Tx\";\n})(SubscriptionEventType || (exports.SubscriptionEventType = SubscriptionEventType = {}));\nfunction buildQuery(components) {\n const tags = components.tags ? components.tags : [];\n const tagComponents = tags.map((tag) => `${tag.key}='${tag.value}'`);\n const rawComponents = components.raw ? [components.raw] : [];\n return [...tagComponents, ...rawComponents].join(\" AND \");\n}\n//# sourceMappingURL=requests.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VoteType = void 0;\nexports.broadcastTxSyncSuccess = broadcastTxSyncSuccess;\nexports.broadcastTxCommitSuccess = broadcastTxCommitSuccess;\n/**\n * Returns true iff transaction made it successfully into the transaction pool\n */\nfunction broadcastTxSyncSuccess(res) {\n // code must be 0 on success\n return res.code === 0;\n}\n/**\n * Returns true iff transaction made it successfully into a block\n * (i.e. success in `check_tx` and `deliver_tx` field)\n */\nfunction broadcastTxCommitSuccess(response) {\n // code must be 0 on success\n // deliverTx may be present but empty on failure\n return response.checkTx.code === 0 && !!response.deliverTx && response.deliverTx.code === 0;\n}\n/**\n * raw values from https://github.com/tendermint/tendermint/blob/dfa9a9a30a666132425b29454e90a472aa579a48/types/vote.go#L44\n */\nvar VoteType;\n(function (VoteType) {\n VoteType[VoteType[\"PreVote\"] = 1] = \"PreVote\";\n VoteType[VoteType[\"PreCommit\"] = 2] = \"PreCommit\";\n})(VoteType || (exports.VoteType = VoteType = {}));\n//# sourceMappingURL=responses.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Tendermint37Client = void 0;\nconst jsonrpc_1 = require(\"../jsonrpc\");\nconst rpcclients_1 = require(\"../rpcclients\");\nconst adaptor_1 = require(\"./adaptor\");\nconst requests = __importStar(require(\"./requests\"));\nclass Tendermint37Client {\n /**\n * Creates a new Tendermint client for the given endpoint.\n *\n * Uses HTTP when the URL schema is http or https. Uses WebSockets otherwise.\n */\n static async connect(endpoint) {\n let rpcClient;\n if (typeof endpoint === \"object\") {\n rpcClient = new rpcclients_1.HttpClient(endpoint);\n }\n else {\n const useHttp = endpoint.startsWith(\"http://\") || endpoint.startsWith(\"https://\");\n rpcClient = useHttp ? new rpcclients_1.HttpClient(endpoint) : new rpcclients_1.WebsocketClient(endpoint);\n }\n // For some very strange reason I don't understand, tests start to fail on some systems\n // (our CI) when skipping the status call before doing other queries. Sleeping a little\n // while did not help. Thus we query the version as a way to say \"hi\" to the backend,\n // even in cases where we don't use the result.\n const _version = await this.detectVersion(rpcClient);\n return Tendermint37Client.create(rpcClient);\n }\n /**\n * Creates a new Tendermint client given an RPC client.\n */\n static async create(rpcClient) {\n return new Tendermint37Client(rpcClient);\n }\n static async detectVersion(client) {\n const req = (0, jsonrpc_1.createJsonRpcRequest)(requests.Method.Status);\n const response = await client.execute(req);\n const result = response.result;\n if (!result || !result.node_info) {\n throw new Error(\"Unrecognized format for status response\");\n }\n const version = result.node_info.version;\n if (typeof version !== \"string\") {\n throw new Error(\"Unrecognized version format: must be string\");\n }\n return version;\n }\n /**\n * Use `Tendermint37Client.connect` or `Tendermint37Client.create` to create an instance.\n */\n constructor(client) {\n this.client = client;\n }\n disconnect() {\n this.client.disconnect();\n }\n async abciInfo() {\n const query = { method: requests.Method.AbciInfo };\n return this.doCall(query, adaptor_1.Params.encodeAbciInfo, adaptor_1.Responses.decodeAbciInfo);\n }\n async abciQuery(params) {\n const query = { params: params, method: requests.Method.AbciQuery };\n return this.doCall(query, adaptor_1.Params.encodeAbciQuery, adaptor_1.Responses.decodeAbciQuery);\n }\n async block(height) {\n const query = { method: requests.Method.Block, params: { height: height } };\n return this.doCall(query, adaptor_1.Params.encodeBlock, adaptor_1.Responses.decodeBlock);\n }\n async blockResults(height) {\n const query = {\n method: requests.Method.BlockResults,\n params: { height: height },\n };\n return this.doCall(query, adaptor_1.Params.encodeBlockResults, adaptor_1.Responses.decodeBlockResults);\n }\n /**\n * Search for events that are in a block.\n *\n * NOTE\n * This method will error on any node that is running a Tendermint version lower than 0.34.9.\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/block_search\n */\n async blockSearch(params) {\n const query = { params: params, method: requests.Method.BlockSearch };\n const resp = await this.doCall(query, adaptor_1.Params.encodeBlockSearch, adaptor_1.Responses.decodeBlockSearch);\n return {\n ...resp,\n // make sure we sort by height, as tendermint may be sorting by string value of the height\n blocks: [...resp.blocks].sort((a, b) => a.block.header.height - b.block.header.height),\n };\n }\n // this should paginate through all blockSearch options to ensure it returns all results.\n // starts with page 1 or whatever was provided (eg. to start on page 7)\n //\n // NOTE\n // This method will error on any node that is running a Tendermint version lower than 0.34.9.\n async blockSearchAll(params) {\n let page = params.page || 1;\n const blocks = [];\n let done = false;\n while (!done) {\n const resp = await this.blockSearch({ ...params, page: page });\n blocks.push(...resp.blocks);\n if (blocks.length < resp.totalCount) {\n page++;\n }\n else {\n done = true;\n }\n }\n // make sure we sort by height, as tendermint may be sorting by string value of the height\n // and the earlier items may be in a higher page than the later items\n blocks.sort((a, b) => a.block.header.height - b.block.header.height);\n return {\n totalCount: blocks.length,\n blocks: blocks,\n };\n }\n /**\n * Queries block headers filtered by minHeight <= height <= maxHeight.\n *\n * @param minHeight The minimum height to be included in the result. Defaults to 0.\n * @param maxHeight The maximum height to be included in the result. Defaults to infinity.\n */\n async blockchain(minHeight, maxHeight) {\n const query = {\n method: requests.Method.Blockchain,\n params: {\n minHeight: minHeight,\n maxHeight: maxHeight,\n },\n };\n return this.doCall(query, adaptor_1.Params.encodeBlockchain, adaptor_1.Responses.decodeBlockchain);\n }\n /**\n * Broadcast transaction to mempool and wait for response\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_sync\n */\n async broadcastTxSync(params) {\n const query = { params: params, method: requests.Method.BroadcastTxSync };\n return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxSync);\n }\n /**\n * Broadcast transaction to mempool and do not wait for result\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_async\n */\n async broadcastTxAsync(params) {\n const query = { params: params, method: requests.Method.BroadcastTxAsync };\n return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxAsync);\n }\n /**\n * Broadcast transaction to mempool and wait for block\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_commit\n */\n async broadcastTxCommit(params) {\n const query = { params: params, method: requests.Method.BroadcastTxCommit };\n return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxCommit);\n }\n async commit(height) {\n const query = { method: requests.Method.Commit, params: { height: height } };\n return this.doCall(query, adaptor_1.Params.encodeCommit, adaptor_1.Responses.decodeCommit);\n }\n async genesis() {\n const query = { method: requests.Method.Genesis };\n return this.doCall(query, adaptor_1.Params.encodeGenesis, adaptor_1.Responses.decodeGenesis);\n }\n async health() {\n const query = { method: requests.Method.Health };\n return this.doCall(query, adaptor_1.Params.encodeHealth, adaptor_1.Responses.decodeHealth);\n }\n async numUnconfirmedTxs() {\n const query = { method: requests.Method.NumUnconfirmedTxs };\n return this.doCall(query, adaptor_1.Params.encodeNumUnconfirmedTxs, adaptor_1.Responses.decodeNumUnconfirmedTxs);\n }\n async status() {\n const query = { method: requests.Method.Status };\n return this.doCall(query, adaptor_1.Params.encodeStatus, adaptor_1.Responses.decodeStatus);\n }\n subscribeNewBlock() {\n const request = {\n method: requests.Method.Subscribe,\n query: { type: requests.SubscriptionEventType.NewBlock },\n };\n return this.subscribe(request, adaptor_1.Responses.decodeNewBlockEvent);\n }\n subscribeNewBlockHeader() {\n const request = {\n method: requests.Method.Subscribe,\n query: { type: requests.SubscriptionEventType.NewBlockHeader },\n };\n return this.subscribe(request, adaptor_1.Responses.decodeNewBlockHeaderEvent);\n }\n subscribeTx(query) {\n const request = {\n method: requests.Method.Subscribe,\n query: {\n type: requests.SubscriptionEventType.Tx,\n raw: query,\n },\n };\n return this.subscribe(request, adaptor_1.Responses.decodeTxEvent);\n }\n /**\n * Get a single transaction by hash\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/tx\n */\n async tx(params) {\n const query = { params: params, method: requests.Method.Tx };\n return this.doCall(query, adaptor_1.Params.encodeTx, adaptor_1.Responses.decodeTx);\n }\n /**\n * Search for transactions that are in a block\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/tx_search\n */\n async txSearch(params) {\n const query = { params: params, method: requests.Method.TxSearch };\n return this.doCall(query, adaptor_1.Params.encodeTxSearch, adaptor_1.Responses.decodeTxSearch);\n }\n // this should paginate through all txSearch options to ensure it returns all results.\n // starts with page 1 or whatever was provided (eg. to start on page 7)\n async txSearchAll(params) {\n let page = params.page || 1;\n const txs = [];\n let done = false;\n while (!done) {\n const resp = await this.txSearch({ ...params, page: page });\n txs.push(...resp.txs);\n if (txs.length < resp.totalCount) {\n page++;\n }\n else {\n done = true;\n }\n }\n return {\n totalCount: txs.length,\n txs: txs,\n };\n }\n async validators(params) {\n const query = {\n method: requests.Method.Validators,\n params: params,\n };\n return this.doCall(query, adaptor_1.Params.encodeValidators, adaptor_1.Responses.decodeValidators);\n }\n async validatorsAll(height) {\n const validators = [];\n let page = 1;\n let done = false;\n let blockHeight = height;\n while (!done) {\n const response = await this.validators({\n per_page: 50,\n height: blockHeight,\n page: page,\n });\n validators.push(...response.validators);\n blockHeight = blockHeight || response.blockHeight;\n if (validators.length < response.total) {\n page++;\n }\n else {\n done = true;\n }\n }\n return {\n // NOTE: Default value is for type safety but this should always be set\n blockHeight: blockHeight ?? 0,\n count: validators.length,\n total: validators.length,\n validators: validators,\n };\n }\n // doCall is a helper to handle the encode/call/decode logic\n async doCall(request, encode, decode) {\n const req = encode(request);\n const result = await this.client.execute(req);\n return decode(result);\n }\n subscribe(request, decode) {\n if (!(0, rpcclients_1.instanceOfRpcStreamingClient)(this.client)) {\n throw new Error(\"This RPC client type cannot subscribe to events\");\n }\n const req = adaptor_1.Params.encodeSubscribe(request);\n const eventStream = this.client.listen(req);\n return eventStream.map((event) => {\n return decode(event);\n });\n }\n}\nexports.Tendermint37Client = Tendermint37Client;\n//# sourceMappingURL=tendermint37client.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isTendermint34Client = isTendermint34Client;\nexports.isTendermint37Client = isTendermint37Client;\nexports.isComet38Client = isComet38Client;\nexports.connectComet = connectComet;\nconst comet38_1 = require(\"./comet38\");\nconst tendermint34_1 = require(\"./tendermint34\");\nconst tendermint37_1 = require(\"./tendermint37\");\nfunction isTendermint34Client(client) {\n return client instanceof tendermint34_1.Tendermint34Client;\n}\nfunction isTendermint37Client(client) {\n return client instanceof tendermint37_1.Tendermint37Client;\n}\nfunction isComet38Client(client) {\n return client instanceof comet38_1.Comet38Client;\n}\n/**\n * Auto-detects the version of the backend and uses a suitable client.\n */\nasync function connectComet(endpoint) {\n // Tendermint/CometBFT 0.34/0.37/0.38 auto-detection. Starting with 0.37 we seem to get reliable versions again 🎉\n // Using 0.34 as the fallback.\n let out;\n const tm37Client = await tendermint37_1.Tendermint37Client.connect(endpoint);\n const version = (await tm37Client.status()).nodeInfo.version;\n if (version.startsWith(\"0.37.\")) {\n out = tm37Client;\n }\n else if (version.startsWith(\"0.38.\") || version.startsWith(\"1.0.\")) {\n tm37Client.disconnect();\n out = await comet38_1.Comet38Client.connect(endpoint);\n }\n else {\n tm37Client.disconnect();\n out = await tendermint34_1.Tendermint34Client.connect(endpoint);\n }\n return out;\n}\n//# sourceMappingURL=tendermintclient.js.map","\"use strict\";\n// Types in this file are exported outside of the @cosmjs/tendermint-rpc package,\n// e.g. as part of a request or response\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlockIdFlag = void 0;\nvar BlockIdFlag;\n(function (BlockIdFlag) {\n BlockIdFlag[BlockIdFlag[\"Unknown\"] = 0] = \"Unknown\";\n BlockIdFlag[BlockIdFlag[\"Absent\"] = 1] = \"Absent\";\n BlockIdFlag[BlockIdFlag[\"Commit\"] = 2] = \"Commit\";\n BlockIdFlag[BlockIdFlag[\"Nil\"] = 3] = \"Nil\";\n BlockIdFlag[BlockIdFlag[\"Unrecognized\"] = -1] = \"Unrecognized\";\n})(BlockIdFlag || (exports.BlockIdFlag = BlockIdFlag = {}));\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toAscii = toAscii;\nexports.fromAscii = fromAscii;\nfunction toAscii(input) {\n const toNums = (str) => str.split(\"\").map((x) => {\n const charCode = x.charCodeAt(0);\n // 0x00–0x1F control characters\n // 0x20–0x7E printable characters\n // 0x7F delete character\n // 0x80–0xFF out of 7 bit ascii range\n if (charCode < 0x20 || charCode > 0x7e) {\n throw new Error(\"Cannot encode character that is out of printable ASCII range: \" + charCode);\n }\n return charCode;\n });\n return Uint8Array.from(toNums(input));\n}\nfunction fromAscii(data) {\n const fromNums = (listOfNumbers) => listOfNumbers.map((x) => {\n // 0x00–0x1F control characters\n // 0x20–0x7E printable characters\n // 0x7F delete character\n // 0x80–0xFF out of 7 bit ascii range\n if (x < 0x20 || x > 0x7e) {\n throw new Error(\"Cannot decode character that is out of printable ASCII range: \" + x);\n }\n return String.fromCharCode(x);\n });\n return fromNums(Array.from(data)).join(\"\");\n}\n//# sourceMappingURL=ascii.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBase64 = toBase64;\nexports.fromBase64 = fromBase64;\nconst base64js = __importStar(require(\"base64-js\"));\nfunction toBase64(data) {\n return base64js.fromByteArray(data);\n}\nfunction fromBase64(base64String) {\n if (!base64String.match(/^[a-zA-Z0-9+/]*={0,2}$/)) {\n throw new Error(\"Invalid base64 string format\");\n }\n return base64js.toByteArray(base64String);\n}\n//# sourceMappingURL=base64.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBech32 = toBech32;\nexports.fromBech32 = fromBech32;\nexports.normalizeBech32 = normalizeBech32;\nconst bech32 = __importStar(require(\"bech32\"));\nfunction toBech32(prefix, data, limit) {\n const address = bech32.encode(prefix, bech32.toWords(data), limit);\n return address;\n}\nfunction fromBech32(address, limit = Infinity) {\n const decodedAddress = bech32.decode(address, limit);\n return {\n prefix: decodedAddress.prefix,\n data: new Uint8Array(bech32.fromWords(decodedAddress.words)),\n };\n}\n/**\n * Takes a bech32 address and returns a normalized (i.e. lower case) representation of it.\n *\n * The input is validated along the way, which makes this significantly safer than\n * using `address.toLowerCase()`.\n */\nfunction normalizeBech32(address) {\n const { prefix, data } = fromBech32(address);\n return toBech32(prefix, data);\n}\n//# sourceMappingURL=bech32.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toHex = toHex;\nexports.fromHex = fromHex;\nfunction toHex(data) {\n let out = \"\";\n for (const byte of data) {\n out += (\"0\" + byte.toString(16)).slice(-2);\n }\n return out;\n}\nfunction fromHex(hexstring) {\n if (hexstring.length % 2 !== 0) {\n throw new Error(\"hex string length must be a multiple of 2\");\n }\n const out = new Uint8Array(hexstring.length / 2);\n for (let i = 0; i < out.length; i++) {\n const j = 2 * i;\n const hexByteAsString = hexstring.slice(j, j + 2);\n if (!hexByteAsString.match(/[0-9a-f]{2}/i)) {\n throw new Error(\"hex string contains invalid characters\");\n }\n out[i] = parseInt(hexByteAsString, 16);\n }\n return out;\n}\n//# sourceMappingURL=hex.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = exports.toRfc3339 = exports.fromRfc3339 = exports.toHex = exports.fromHex = exports.toBech32 = exports.normalizeBech32 = exports.fromBech32 = exports.toBase64 = exports.fromBase64 = exports.toAscii = exports.fromAscii = void 0;\nvar ascii_1 = require(\"./ascii\");\nObject.defineProperty(exports, \"fromAscii\", { enumerable: true, get: function () { return ascii_1.fromAscii; } });\nObject.defineProperty(exports, \"toAscii\", { enumerable: true, get: function () { return ascii_1.toAscii; } });\nvar base64_1 = require(\"./base64\");\nObject.defineProperty(exports, \"fromBase64\", { enumerable: true, get: function () { return base64_1.fromBase64; } });\nObject.defineProperty(exports, \"toBase64\", { enumerable: true, get: function () { return base64_1.toBase64; } });\nvar bech32_1 = require(\"./bech32\");\nObject.defineProperty(exports, \"fromBech32\", { enumerable: true, get: function () { return bech32_1.fromBech32; } });\nObject.defineProperty(exports, \"normalizeBech32\", { enumerable: true, get: function () { return bech32_1.normalizeBech32; } });\nObject.defineProperty(exports, \"toBech32\", { enumerable: true, get: function () { return bech32_1.toBech32; } });\nvar hex_1 = require(\"./hex\");\nObject.defineProperty(exports, \"fromHex\", { enumerable: true, get: function () { return hex_1.fromHex; } });\nObject.defineProperty(exports, \"toHex\", { enumerable: true, get: function () { return hex_1.toHex; } });\nvar rfc3339_1 = require(\"./rfc3339\");\nObject.defineProperty(exports, \"fromRfc3339\", { enumerable: true, get: function () { return rfc3339_1.fromRfc3339; } });\nObject.defineProperty(exports, \"toRfc3339\", { enumerable: true, get: function () { return rfc3339_1.toRfc3339; } });\nvar utf8_1 = require(\"./utf8\");\nObject.defineProperty(exports, \"fromUtf8\", { enumerable: true, get: function () { return utf8_1.fromUtf8; } });\nObject.defineProperty(exports, \"toUtf8\", { enumerable: true, get: function () { return utf8_1.toUtf8; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromRfc3339 = fromRfc3339;\nexports.toRfc3339 = toRfc3339;\nconst rfc3339Matcher = /^(\\d{4})-(\\d{2})-(\\d{2})[T ](\\d{2}):(\\d{2}):(\\d{2})(\\.\\d{1,9})?((?:[+-]\\d{2}:\\d{2})|Z)$/;\nfunction padded(integer, length = 2) {\n return integer.toString().padStart(length, \"0\");\n}\nfunction fromRfc3339(str) {\n const matches = rfc3339Matcher.exec(str);\n if (!matches) {\n throw new Error(\"Date string is not in RFC3339 format\");\n }\n const year = +matches[1];\n const month = +matches[2];\n const day = +matches[3];\n const hour = +matches[4];\n const minute = +matches[5];\n const second = +matches[6];\n // fractional seconds match either undefined or a string like \".1\", \".123456789\"\n const milliSeconds = matches[7] ? Math.floor(+matches[7] * 1000) : 0;\n let tzOffsetSign;\n let tzOffsetHours;\n let tzOffsetMinutes;\n // if timezone is undefined, it must be Z or nothing (otherwise the group would have captured).\n if (matches[8] === \"Z\") {\n tzOffsetSign = 1;\n tzOffsetHours = 0;\n tzOffsetMinutes = 0;\n }\n else {\n tzOffsetSign = matches[8].substring(0, 1) === \"-\" ? -1 : 1;\n tzOffsetHours = +matches[8].substring(1, 3);\n tzOffsetMinutes = +matches[8].substring(4, 6);\n }\n const tzOffset = tzOffsetSign * (tzOffsetHours * 60 + tzOffsetMinutes) * 60; // seconds\n const date = new Date();\n date.setUTCFullYear(year, month - 1, day);\n date.setUTCHours(hour, minute, second, milliSeconds);\n return new Date(date.getTime() - tzOffset * 1000);\n}\nfunction toRfc3339(date) {\n const year = date.getUTCFullYear();\n const month = padded(date.getUTCMonth() + 1);\n const day = padded(date.getUTCDate());\n const hour = padded(date.getUTCHours());\n const minute = padded(date.getUTCMinutes());\n const second = padded(date.getUTCSeconds());\n const ms = padded(date.getUTCMilliseconds(), 3);\n return `${year}-${month}-${day}T${hour}:${minute}:${second}.${ms}Z`;\n}\n//# sourceMappingURL=rfc3339.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = toUtf8;\nexports.fromUtf8 = fromUtf8;\nfunction toUtf8(str) {\n return new TextEncoder().encode(str);\n}\n/**\n * Takes UTF-8 data and decodes it to a string.\n *\n * In lossy mode, the [REPLACEMENT CHARACTER](https://en.wikipedia.org/wiki/Specials_(Unicode_block))\n * is used to substitude invalid encodings.\n * By default lossy mode is off and invalid data will lead to exceptions.\n */\nfunction fromUtf8(data, lossy = false) {\n const fatal = !lossy;\n return new TextDecoder(\"utf-8\", { fatal }).decode(data);\n}\n//# sourceMappingURL=utf8.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Decimal = void 0;\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\n// Too large values lead to massive memory usage. Limit to something sensible.\n// The largest value we need is 18 (Ether).\nconst maxFractionalDigits = 100;\n/**\n * A type for arbitrary precision, non-negative decimals.\n *\n * Instances of this class are immutable.\n */\nclass Decimal {\n static fromUserInput(input, fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n const badCharacter = input.match(/[^0-9.]/);\n if (badCharacter) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n throw new Error(`Invalid character at position ${badCharacter.index + 1}`);\n }\n let whole;\n let fractional;\n if (input === \"\") {\n whole = \"0\";\n fractional = \"\";\n }\n else if (input.search(/\\./) === -1) {\n // integer format, no separator\n whole = input;\n fractional = \"\";\n }\n else {\n const parts = input.split(\".\");\n switch (parts.length) {\n case 0:\n case 1:\n throw new Error(\"Fewer than two elements in split result. This must not happen here.\");\n case 2:\n if (!parts[1])\n throw new Error(\"Fractional part missing\");\n whole = parts[0];\n fractional = parts[1].replace(/0+$/, \"\");\n break;\n default:\n throw new Error(\"More than one separator found\");\n }\n }\n if (fractional.length > fractionalDigits) {\n throw new Error(\"Got more fractional digits than supported\");\n }\n const quantity = `${whole}${fractional.padEnd(fractionalDigits, \"0\")}`;\n return new Decimal(quantity, fractionalDigits);\n }\n static fromAtomics(atomics, fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(atomics, fractionalDigits);\n }\n /**\n * Creates a Decimal with value 0.0 and the given number of fractial digits.\n *\n * Fractional digits are not relevant for the value but needed to be able\n * to perform arithmetic operations with other decimals.\n */\n static zero(fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(\"0\", fractionalDigits);\n }\n /**\n * Creates a Decimal with value 1.0 and the given number of fractial digits.\n *\n * Fractional digits are not relevant for the value but needed to be able\n * to perform arithmetic operations with other decimals.\n */\n static one(fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(\"1\" + \"0\".repeat(fractionalDigits), fractionalDigits);\n }\n static verifyFractionalDigits(fractionalDigits) {\n if (!Number.isInteger(fractionalDigits))\n throw new Error(\"Fractional digits is not an integer\");\n if (fractionalDigits < 0)\n throw new Error(\"Fractional digits must not be negative\");\n if (fractionalDigits > maxFractionalDigits) {\n throw new Error(`Fractional digits must not exceed ${maxFractionalDigits}`);\n }\n }\n static compare(a, b) {\n if (a.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n return a.data.atomics.cmp(new bn_js_1.default(b.atomics));\n }\n get atomics() {\n return this.data.atomics.toString();\n }\n get fractionalDigits() {\n return this.data.fractionalDigits;\n }\n constructor(atomics, fractionalDigits) {\n if (!atomics.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format. Only non-negative integers in decimal representation supported.\");\n }\n this.data = {\n atomics: new bn_js_1.default(atomics),\n fractionalDigits: fractionalDigits,\n };\n }\n /** Creates a new instance with the same value */\n clone() {\n return new Decimal(this.atomics, this.fractionalDigits);\n }\n /** Returns the greatest decimal <= this which has no fractional part (rounding down) */\n floor() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return this.clone();\n }\n else {\n return Decimal.fromAtomics(whole.mul(factor).toString(), this.fractionalDigits);\n }\n }\n /** Returns the smallest decimal >= this which has no fractional part (rounding up) */\n ceil() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return this.clone();\n }\n else {\n return Decimal.fromAtomics(whole.addn(1).mul(factor).toString(), this.fractionalDigits);\n }\n }\n toString() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return whole.toString();\n }\n else {\n const fullFractionalPart = fractional.toString().padStart(this.data.fractionalDigits, \"0\");\n const trimmedFractionalPart = fullFractionalPart.replace(/0+$/, \"\");\n return `${whole.toString()}.${trimmedFractionalPart}`;\n }\n }\n /**\n * Returns an approximation as a float type. Only use this if no\n * exact calculation is required.\n */\n toFloatApproximation() {\n const out = Number(this.toString());\n if (Number.isNaN(out))\n throw new Error(\"Conversion to number failed\");\n return out;\n }\n /**\n * a.plus(b) returns a+b.\n *\n * Both values need to have the same fractional digits.\n */\n plus(b) {\n if (this.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n const sum = this.data.atomics.add(new bn_js_1.default(b.atomics));\n return new Decimal(sum.toString(), this.fractionalDigits);\n }\n /**\n * a.minus(b) returns a-b.\n *\n * Both values need to have the same fractional digits.\n * The resulting difference needs to be non-negative.\n */\n minus(b) {\n if (this.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n const difference = this.data.atomics.sub(new bn_js_1.default(b.atomics));\n if (difference.ltn(0))\n throw new Error(\"Difference must not be negative\");\n return new Decimal(difference.toString(), this.fractionalDigits);\n }\n /**\n * a.multiply(b) returns a*b.\n *\n * We only allow multiplication by unsigned integers to avoid rounding errors.\n */\n multiply(b) {\n const product = this.data.atomics.mul(new bn_js_1.default(b.toString()));\n return new Decimal(product.toString(), this.fractionalDigits);\n }\n equals(b) {\n return Decimal.compare(this, b) === 0;\n }\n isLessThan(b) {\n return Decimal.compare(this, b) < 0;\n }\n isLessThanOrEqual(b) {\n return Decimal.compare(this, b) <= 0;\n }\n isGreaterThan(b) {\n return Decimal.compare(this, b) > 0;\n }\n isGreaterThanOrEqual(b) {\n return Decimal.compare(this, b) >= 0;\n }\n}\nexports.Decimal = Decimal;\n//# sourceMappingURL=decimal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uint64 = exports.Uint53 = exports.Uint32 = exports.Int53 = exports.Decimal = void 0;\nvar decimal_1 = require(\"./decimal\");\nObject.defineProperty(exports, \"Decimal\", { enumerable: true, get: function () { return decimal_1.Decimal; } });\nvar integers_1 = require(\"./integers\");\nObject.defineProperty(exports, \"Int53\", { enumerable: true, get: function () { return integers_1.Int53; } });\nObject.defineProperty(exports, \"Uint32\", { enumerable: true, get: function () { return integers_1.Uint32; } });\nObject.defineProperty(exports, \"Uint53\", { enumerable: true, get: function () { return integers_1.Uint53; } });\nObject.defineProperty(exports, \"Uint64\", { enumerable: true, get: function () { return integers_1.Uint64; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n/* eslint-disable no-bitwise */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uint64 = exports.Uint53 = exports.Int53 = exports.Uint32 = void 0;\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst uint64MaxValue = new bn_js_1.default(\"18446744073709551615\", 10, \"be\");\nclass Uint32 {\n /** @deprecated use Uint32.fromBytes */\n static fromBigEndianBytes(bytes) {\n return Uint32.fromBytes(bytes);\n }\n /**\n * Creates a Uint32 from a fixed length byte array.\n *\n * @param bytes a list of exactly 4 bytes\n * @param endianess defaults to big endian\n */\n static fromBytes(bytes, endianess = \"be\") {\n if (bytes.length !== 4) {\n throw new Error(\"Invalid input length. Expected 4 bytes.\");\n }\n for (let i = 0; i < bytes.length; ++i) {\n if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) {\n throw new Error(\"Invalid value in byte. Found: \" + bytes[i]);\n }\n }\n const beBytes = endianess === \"be\" ? bytes : Array.from(bytes).reverse();\n // Use multiplication instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint32(beBytes[0] * 2 ** 24 + beBytes[1] * 2 ** 16 + beBytes[2] * 2 ** 8 + beBytes[3]);\n }\n static fromString(str) {\n if (!str.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Uint32(Number.parseInt(str, 10));\n }\n constructor(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n if (input < 0 || input > 4294967295) {\n throw new Error(\"Input not in uint32 range: \" + input.toString());\n }\n this.data = input;\n }\n toBytesBigEndian() {\n // Use division instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint8Array([\n Math.floor(this.data / 2 ** 24) & 0xff,\n Math.floor(this.data / 2 ** 16) & 0xff,\n Math.floor(this.data / 2 ** 8) & 0xff,\n Math.floor(this.data / 2 ** 0) & 0xff,\n ]);\n }\n toBytesLittleEndian() {\n // Use division instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint8Array([\n Math.floor(this.data / 2 ** 0) & 0xff,\n Math.floor(this.data / 2 ** 8) & 0xff,\n Math.floor(this.data / 2 ** 16) & 0xff,\n Math.floor(this.data / 2 ** 24) & 0xff,\n ]);\n }\n toNumber() {\n return this.data;\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Uint32 = Uint32;\nclass Int53 {\n static fromString(str) {\n if (!str.match(/^-?[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Int53(Number.parseInt(str, 10));\n }\n constructor(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n if (input < Number.MIN_SAFE_INTEGER || input > Number.MAX_SAFE_INTEGER) {\n throw new Error(\"Input not in int53 range: \" + input.toString());\n }\n this.data = input;\n }\n toNumber() {\n return this.data;\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Int53 = Int53;\nclass Uint53 {\n static fromString(str) {\n const signed = Int53.fromString(str);\n return new Uint53(signed.toNumber());\n }\n constructor(input) {\n const signed = new Int53(input);\n if (signed.toNumber() < 0) {\n throw new Error(\"Input is negative\");\n }\n this.data = signed;\n }\n toNumber() {\n return this.data.toNumber();\n }\n toBigInt() {\n return BigInt(this.toNumber());\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Uint53 = Uint53;\nclass Uint64 {\n /** @deprecated use Uint64.fromBytes */\n static fromBytesBigEndian(bytes) {\n return Uint64.fromBytes(bytes);\n }\n /**\n * Creates a Uint64 from a fixed length byte array.\n *\n * @param bytes a list of exactly 8 bytes\n * @param endianess defaults to big endian\n */\n static fromBytes(bytes, endianess = \"be\") {\n if (bytes.length !== 8) {\n throw new Error(\"Invalid input length. Expected 8 bytes.\");\n }\n for (let i = 0; i < bytes.length; ++i) {\n if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) {\n throw new Error(\"Invalid value in byte. Found: \" + bytes[i]);\n }\n }\n const beBytes = endianess === \"be\" ? Array.from(bytes) : Array.from(bytes).reverse();\n return new Uint64(new bn_js_1.default(beBytes));\n }\n static fromString(str) {\n if (!str.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Uint64(new bn_js_1.default(str, 10, \"be\"));\n }\n static fromNumber(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n let bigint;\n try {\n bigint = new bn_js_1.default(input);\n }\n catch {\n throw new Error(\"Input is not a safe integer\");\n }\n return new Uint64(bigint);\n }\n constructor(data) {\n if (data.isNeg()) {\n throw new Error(\"Input is negative\");\n }\n if (data.gt(uint64MaxValue)) {\n throw new Error(\"Input exceeds uint64 range\");\n }\n this.data = data;\n }\n toBytesBigEndian() {\n return Uint8Array.from(this.data.toArray(\"be\", 8));\n }\n toBytesLittleEndian() {\n return Uint8Array.from(this.data.toArray(\"le\", 8));\n }\n toString() {\n return this.data.toString(10);\n }\n toBigInt() {\n return BigInt(this.toString());\n }\n toNumber() {\n return this.data.toNumber();\n }\n}\nexports.Uint64 = Uint64;\n// Assign classes to unused variables in order to verify static interface conformance at compile time.\n// Workaround for https://github.com/microsoft/TypeScript/issues/33892\nconst _int53Class = Int53;\nconst _uint53Class = Uint53;\nconst _uint32Class = Uint32;\nconst _uint64Class = Uint64;\n//# sourceMappingURL=integers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.arrayContentEquals = arrayContentEquals;\nexports.arrayContentStartsWith = arrayContentStartsWith;\n/**\n * Compares the content of two arrays-like objects for equality.\n *\n * Equality is defined as having equal length and element values, where element equality means `===` returning `true`.\n *\n * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type.\n * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type.\n */\nfunction arrayContentEquals(a, b) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; ++i) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n}\n/**\n * Checks if `a` starts with the contents of `b`.\n *\n * This requires equality of the element values, where element equality means `===` returning `true`.\n *\n * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type.\n * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type.\n */\nfunction arrayContentStartsWith(a, b) {\n if (a.length < b.length)\n return false;\n for (let i = 0; i < b.length; ++i) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n}\n//# sourceMappingURL=arrays.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assert = assert;\nexports.assertDefined = assertDefined;\nexports.assertDefinedAndNotNull = assertDefinedAndNotNull;\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction assert(condition, msg) {\n if (!condition) {\n throw new Error(msg || \"condition is not truthy\");\n }\n}\nfunction assertDefined(value, msg) {\n if (value === undefined) {\n throw new Error(msg ?? \"value is undefined\");\n }\n}\nfunction assertDefinedAndNotNull(value, msg) {\n if (value === undefined || value === null) {\n throw new Error(msg ?? \"value is undefined or null\");\n }\n}\n//# sourceMappingURL=assert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isUint8Array = exports.isNonNullObject = exports.isDefined = exports.sleep = exports.assertDefinedAndNotNull = exports.assertDefined = exports.assert = exports.arrayContentStartsWith = exports.arrayContentEquals = void 0;\nvar arrays_1 = require(\"./arrays\");\nObject.defineProperty(exports, \"arrayContentEquals\", { enumerable: true, get: function () { return arrays_1.arrayContentEquals; } });\nObject.defineProperty(exports, \"arrayContentStartsWith\", { enumerable: true, get: function () { return arrays_1.arrayContentStartsWith; } });\nvar assert_1 = require(\"./assert\");\nObject.defineProperty(exports, \"assert\", { enumerable: true, get: function () { return assert_1.assert; } });\nObject.defineProperty(exports, \"assertDefined\", { enumerable: true, get: function () { return assert_1.assertDefined; } });\nObject.defineProperty(exports, \"assertDefinedAndNotNull\", { enumerable: true, get: function () { return assert_1.assertDefinedAndNotNull; } });\nvar sleep_1 = require(\"./sleep\");\nObject.defineProperty(exports, \"sleep\", { enumerable: true, get: function () { return sleep_1.sleep; } });\nvar typechecks_1 = require(\"./typechecks\");\nObject.defineProperty(exports, \"isDefined\", { enumerable: true, get: function () { return typechecks_1.isDefined; } });\nObject.defineProperty(exports, \"isNonNullObject\", { enumerable: true, get: function () { return typechecks_1.isNonNullObject; } });\nObject.defineProperty(exports, \"isUint8Array\", { enumerable: true, get: function () { return typechecks_1.isUint8Array; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sleep = sleep;\nasync function sleep(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n//# sourceMappingURL=sleep.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNonNullObject = isNonNullObject;\nexports.isUint8Array = isUint8Array;\nexports.isDefined = isDefined;\n/**\n * Checks if data is a non-null object (i.e. matches the TypeScript object type).\n *\n * Note: this returns true for arrays, which are objects in JavaScript\n * even though array and object are different types in JSON.\n *\n * @see https://www.typescriptlang.org/docs/handbook/basic-types.html#object\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isNonNullObject(data) {\n return typeof data === \"object\" && data !== null;\n}\n/**\n * Checks if data is an Uint8Array. Note: Buffer is treated as not a Uint8Array\n */\nfunction isUint8Array(data) {\n if (!isNonNullObject(data))\n return false;\n // Avoid instanceof check which is unreliable in some JS environments\n // https://medium.com/@simonwarta/limitations-of-the-instanceof-operator-f4bcdbe7a400\n // Use check that was discussed in https://github.com/crypto-browserify/pbkdf2/pull/81\n if (Object.prototype.toString.call(data) !== \"[object Uint8Array]\")\n return false;\n if (typeof Buffer !== \"undefined\" && typeof Buffer.isBuffer !== \"undefined\") {\n // Buffer.isBuffer is available at runtime\n if (Buffer.isBuffer(data))\n return false;\n }\n return true;\n}\n/**\n * Checks if input is not undefined in a TypeScript-friendly way.\n *\n * This is convenient to use in e.g. `Array.filter` as it will convert\n * the type of a `Array` to `Array`.\n */\nfunction isDefined(value) {\n return value !== undefined;\n}\n//# sourceMappingURL=typechecks.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.multiAuthenticator = multiAuthenticator;\nexports.noAuthFn = noAuthFn;\nexports.usernamePasswordAuthenticator = usernamePasswordAuthenticator;\nexports.tokenAuthenticator = tokenAuthenticator;\nexports.nkeyAuthenticator = nkeyAuthenticator;\nexports.jwtAuthenticator = jwtAuthenticator;\nexports.credsAuthenticator = credsAuthenticator;\n/*\n * Copyright 2020-2023 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst nkeys_1 = require(\"./nkeys\");\nconst encoders_1 = require(\"./encoders\");\nfunction multiAuthenticator(authenticators) {\n return (nonce) => {\n let auth = {};\n authenticators.forEach((a) => {\n const args = a(nonce) || {};\n auth = Object.assign(auth, args);\n });\n return auth;\n };\n}\nfunction noAuthFn() {\n return () => {\n return;\n };\n}\n/**\n * Returns a user/pass authenticator for the specified user and optional password\n * @param { string | () => string } user\n * @param {string | () => string } pass\n * @return {UserPass}\n */\nfunction usernamePasswordAuthenticator(user, pass) {\n return () => {\n const u = typeof user === \"function\" ? user() : user;\n const p = typeof pass === \"function\" ? pass() : pass;\n return { user: u, pass: p };\n };\n}\n/**\n * Returns a token authenticator for the specified token\n * @param { string | () => string } token\n * @return {TokenAuth}\n */\nfunction tokenAuthenticator(token) {\n return () => {\n const auth_token = typeof token === \"function\" ? token() : token;\n return { auth_token };\n };\n}\n/**\n * Returns an Authenticator that returns a NKeyAuth based that uses the\n * specified seed or function returning a seed.\n * @param {Uint8Array | (() => Uint8Array)} seed - the nkey seed\n * @return {NKeyAuth}\n */\nfunction nkeyAuthenticator(seed) {\n return (nonce) => {\n const s = typeof seed === \"function\" ? seed() : seed;\n const kp = s ? nkeys_1.nkeys.fromSeed(s) : undefined;\n const nkey = kp ? kp.getPublicKey() : \"\";\n const challenge = encoders_1.TE.encode(nonce || \"\");\n const sigBytes = kp !== undefined && nonce ? kp.sign(challenge) : undefined;\n const sig = sigBytes ? nkeys_1.nkeys.encode(sigBytes) : \"\";\n return { nkey, sig };\n };\n}\n/**\n * Returns an Authenticator function that returns a JwtAuth.\n * If a seed is provided, the public key, and signature are\n * calculated.\n *\n * @param {string | ()=>string} ajwt - the jwt\n * @param {Uint8Array | ()=> Uint8Array } seed - the optional nkey seed\n * @return {Authenticator}\n */\nfunction jwtAuthenticator(ajwt, seed) {\n return (nonce) => {\n const jwt = typeof ajwt === \"function\" ? ajwt() : ajwt;\n const fn = nkeyAuthenticator(seed);\n const { nkey, sig } = fn(nonce);\n return { jwt, nkey, sig };\n };\n}\n/**\n * Returns an Authenticator function that returns a JwtAuth.\n * This is a convenience Authenticator that parses the\n * specified creds and delegates to the jwtAuthenticator.\n * @param {Uint8Array | () => Uint8Array } creds - the contents of a creds file or a function that returns the creds\n * @returns {JwtAuth}\n */\nfunction credsAuthenticator(creds) {\n const fn = typeof creds !== \"function\" ? () => creds : creds;\n const parse = () => {\n const CREDS = /\\s*(?:(?:[-]{3,}[^\\n]*[-]{3,}\\n)(.+)(?:\\n\\s*[-]{3,}[^\\n]*[-]{3,}\\n))/ig;\n const s = encoders_1.TD.decode(fn());\n // get the JWT\n let m = CREDS.exec(s);\n if (!m) {\n throw new Error(\"unable to parse credentials\");\n }\n const jwt = m[1].trim();\n // get the nkey\n m = CREDS.exec(s);\n if (!m) {\n throw new Error(\"unable to parse credentials\");\n }\n const seed = encoders_1.TE.encode(m[1].trim());\n return { jwt, seed };\n };\n const jwtFn = () => {\n const { jwt } = parse();\n return jwt;\n };\n const nkeyFn = () => {\n const { seed } = parse();\n return seed;\n };\n return jwtAuthenticator(jwtFn, nkeyFn);\n}\n//# sourceMappingURL=authenticator.js.map","\"use strict\";\n/*\n * Copyright 2020-2022 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bench = exports.Metric = void 0;\nexports.throughput = throughput;\nexports.msgThroughput = msgThroughput;\nexports.humanizeBytes = humanizeBytes;\nconst types_1 = require(\"./types\");\nconst nuid_1 = require(\"./nuid\");\nconst util_1 = require(\"./util\");\nclass Metric {\n name;\n duration;\n date;\n payload;\n msgs;\n lang;\n version;\n bytes;\n asyncRequests;\n min;\n max;\n constructor(name, duration) {\n this.name = name;\n this.duration = duration;\n this.date = Date.now();\n this.payload = 0;\n this.msgs = 0;\n this.bytes = 0;\n }\n toString() {\n const sec = (this.duration) / 1000;\n const mps = Math.round(this.msgs / sec);\n const label = this.asyncRequests ? \"asyncRequests\" : \"\";\n let minmax = \"\";\n if (this.max) {\n minmax = `${this.min}/${this.max}`;\n }\n return `${this.name}${label ? \" [asyncRequests]\" : \"\"} ${humanizeNumber(mps)} msgs/sec - [${sec.toFixed(2)} secs] ~ ${throughput(this.bytes, sec)} ${minmax}`;\n }\n toCsv() {\n return `\"${this.name}\",${new Date(this.date).toISOString()},${this.lang},${this.version},${this.msgs},${this.payload},${this.bytes},${this.duration},${this.asyncRequests ? this.asyncRequests : false}\\n`;\n }\n static header() {\n return `Test,Date,Lang,Version,Count,MsgPayload,Bytes,Millis,Async\\n`;\n }\n}\nexports.Metric = Metric;\nclass Bench {\n nc;\n callbacks;\n msgs;\n size;\n subject;\n asyncRequests;\n pub;\n sub;\n req;\n rep;\n perf;\n payload;\n constructor(nc, opts = {\n msgs: 100000,\n size: 128,\n subject: \"\",\n asyncRequests: false,\n pub: false,\n sub: false,\n req: false,\n rep: false,\n }) {\n this.nc = nc;\n this.callbacks = opts.callbacks || false;\n this.msgs = opts.msgs || 0;\n this.size = opts.size || 0;\n this.subject = opts.subject || nuid_1.nuid.next();\n this.asyncRequests = opts.asyncRequests || false;\n this.pub = opts.pub || false;\n this.sub = opts.sub || false;\n this.req = opts.req || false;\n this.rep = opts.rep || false;\n this.perf = new util_1.Perf();\n this.payload = this.size ? new Uint8Array(this.size) : types_1.Empty;\n if (!this.pub && !this.sub && !this.req && !this.rep) {\n throw new Error(\"no options selected\");\n }\n }\n async run() {\n this.nc.closed()\n .then((err) => {\n if (err) {\n throw err;\n }\n });\n if (this.callbacks) {\n await this.runCallbacks();\n }\n else {\n await this.runAsync();\n }\n return this.processMetrics();\n }\n processMetrics() {\n const nc = this.nc;\n const { lang, version } = nc.protocol.transport;\n if (this.pub && this.sub) {\n this.perf.measure(\"pubsub\", \"pubStart\", \"subStop\");\n }\n if (this.req && this.rep) {\n this.perf.measure(\"reqrep\", \"reqStart\", \"reqStop\");\n }\n const measures = this.perf.getEntries();\n const pubsub = measures.find((m) => m.name === \"pubsub\");\n const reqrep = measures.find((m) => m.name === \"reqrep\");\n const req = measures.find((m) => m.name === \"req\");\n const rep = measures.find((m) => m.name === \"rep\");\n const pub = measures.find((m) => m.name === \"pub\");\n const sub = measures.find((m) => m.name === \"sub\");\n const stats = this.nc.stats();\n const metrics = [];\n if (pubsub) {\n const { name, duration } = pubsub;\n const m = new Metric(name, duration);\n m.msgs = this.msgs * 2;\n m.bytes = stats.inBytes + stats.outBytes;\n m.lang = lang;\n m.version = version;\n m.payload = this.payload.length;\n metrics.push(m);\n }\n if (reqrep) {\n const { name, duration } = reqrep;\n const m = new Metric(name, duration);\n m.msgs = this.msgs * 2;\n m.bytes = stats.inBytes + stats.outBytes;\n m.lang = lang;\n m.version = version;\n m.payload = this.payload.length;\n metrics.push(m);\n }\n if (pub) {\n const { name, duration } = pub;\n const m = new Metric(name, duration);\n m.msgs = this.msgs;\n m.bytes = stats.outBytes;\n m.lang = lang;\n m.version = version;\n m.payload = this.payload.length;\n metrics.push(m);\n }\n if (sub) {\n const { name, duration } = sub;\n const m = new Metric(name, duration);\n m.msgs = this.msgs;\n m.bytes = stats.inBytes;\n m.lang = lang;\n m.version = version;\n m.payload = this.payload.length;\n metrics.push(m);\n }\n if (rep) {\n const { name, duration } = rep;\n const m = new Metric(name, duration);\n m.msgs = this.msgs;\n m.bytes = stats.inBytes + stats.outBytes;\n m.lang = lang;\n m.version = version;\n m.payload = this.payload.length;\n metrics.push(m);\n }\n if (req) {\n const { name, duration } = req;\n const m = new Metric(name, duration);\n m.msgs = this.msgs;\n m.bytes = stats.inBytes + stats.outBytes;\n m.lang = lang;\n m.version = version;\n m.payload = this.payload.length;\n metrics.push(m);\n }\n return metrics;\n }\n async runCallbacks() {\n const jobs = [];\n if (this.sub) {\n const d = (0, util_1.deferred)();\n jobs.push(d);\n let i = 0;\n this.nc.subscribe(this.subject, {\n max: this.msgs,\n callback: () => {\n i++;\n if (i === 1) {\n this.perf.mark(\"subStart\");\n }\n if (i === this.msgs) {\n this.perf.mark(\"subStop\");\n this.perf.measure(\"sub\", \"subStart\", \"subStop\");\n d.resolve();\n }\n },\n });\n }\n if (this.rep) {\n const d = (0, util_1.deferred)();\n jobs.push(d);\n let i = 0;\n this.nc.subscribe(this.subject, {\n max: this.msgs,\n callback: (_, m) => {\n m.respond(this.payload);\n i++;\n if (i === 1) {\n this.perf.mark(\"repStart\");\n }\n if (i === this.msgs) {\n this.perf.mark(\"repStop\");\n this.perf.measure(\"rep\", \"repStart\", \"repStop\");\n d.resolve();\n }\n },\n });\n }\n if (this.pub) {\n const job = (async () => {\n this.perf.mark(\"pubStart\");\n for (let i = 0; i < this.msgs; i++) {\n this.nc.publish(this.subject, this.payload);\n }\n await this.nc.flush();\n this.perf.mark(\"pubStop\");\n this.perf.measure(\"pub\", \"pubStart\", \"pubStop\");\n })();\n jobs.push(job);\n }\n if (this.req) {\n const job = (async () => {\n if (this.asyncRequests) {\n this.perf.mark(\"reqStart\");\n const a = [];\n for (let i = 0; i < this.msgs; i++) {\n a.push(this.nc.request(this.subject, this.payload, { timeout: 20000 }));\n }\n await Promise.all(a);\n this.perf.mark(\"reqStop\");\n this.perf.measure(\"req\", \"reqStart\", \"reqStop\");\n }\n else {\n this.perf.mark(\"reqStart\");\n for (let i = 0; i < this.msgs; i++) {\n await this.nc.request(this.subject);\n }\n this.perf.mark(\"reqStop\");\n this.perf.measure(\"req\", \"reqStart\", \"reqStop\");\n }\n })();\n jobs.push(job);\n }\n await Promise.all(jobs);\n }\n async runAsync() {\n const jobs = [];\n if (this.rep) {\n let first = false;\n const sub = this.nc.subscribe(this.subject, { max: this.msgs });\n const job = (async () => {\n for await (const m of sub) {\n if (!first) {\n this.perf.mark(\"repStart\");\n first = true;\n }\n m.respond(this.payload);\n }\n await this.nc.flush();\n this.perf.mark(\"repStop\");\n this.perf.measure(\"rep\", \"repStart\", \"repStop\");\n })();\n jobs.push(job);\n }\n if (this.sub) {\n let first = false;\n const sub = this.nc.subscribe(this.subject, { max: this.msgs });\n const job = (async () => {\n for await (const _m of sub) {\n if (!first) {\n this.perf.mark(\"subStart\");\n first = true;\n }\n }\n this.perf.mark(\"subStop\");\n this.perf.measure(\"sub\", \"subStart\", \"subStop\");\n })();\n jobs.push(job);\n }\n if (this.pub) {\n const job = (async () => {\n this.perf.mark(\"pubStart\");\n for (let i = 0; i < this.msgs; i++) {\n this.nc.publish(this.subject, this.payload);\n }\n await this.nc.flush();\n this.perf.mark(\"pubStop\");\n this.perf.measure(\"pub\", \"pubStart\", \"pubStop\");\n })();\n jobs.push(job);\n }\n if (this.req) {\n const job = (async () => {\n if (this.asyncRequests) {\n this.perf.mark(\"reqStart\");\n const a = [];\n for (let i = 0; i < this.msgs; i++) {\n a.push(this.nc.request(this.subject, this.payload, { timeout: 20000 }));\n }\n await Promise.all(a);\n this.perf.mark(\"reqStop\");\n this.perf.measure(\"req\", \"reqStart\", \"reqStop\");\n }\n else {\n this.perf.mark(\"reqStart\");\n for (let i = 0; i < this.msgs; i++) {\n await this.nc.request(this.subject);\n }\n this.perf.mark(\"reqStop\");\n this.perf.measure(\"req\", \"reqStart\", \"reqStop\");\n }\n })();\n jobs.push(job);\n }\n await Promise.all(jobs);\n }\n}\nexports.Bench = Bench;\nfunction throughput(bytes, seconds) {\n return `${humanizeBytes(bytes / seconds)}/sec`;\n}\nfunction msgThroughput(msgs, seconds) {\n return `${(Math.floor(msgs / seconds))} msgs/sec`;\n}\nfunction humanizeBytes(bytes, si = false) {\n const base = si ? 1000 : 1024;\n const pre = si\n ? [\"k\", \"M\", \"G\", \"T\", \"P\", \"E\"]\n : [\"K\", \"M\", \"G\", \"T\", \"P\", \"E\"];\n const post = si ? \"iB\" : \"B\";\n if (bytes < base) {\n return `${bytes.toFixed(2)} ${post}`;\n }\n const exp = parseInt(Math.log(bytes) / Math.log(base) + \"\");\n const index = parseInt((exp - 1) + \"\");\n return `${(bytes / Math.pow(base, exp)).toFixed(2)} ${pre[index]}${post}`;\n}\nfunction humanizeNumber(n) {\n return n.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n}\n//# sourceMappingURL=bench.js.map","\"use strict\";\n/*\n * Copyright 2023 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_HOST = exports.DEFAULT_PORT = exports.Match = void 0;\nexports.syncIterator = syncIterator;\nexports.createInbox = createInbox;\nconst nuid_1 = require(\"./nuid\");\nconst errors_1 = require(\"./errors\");\nexports.Match = {\n // Exact option is case-sensitive\n Exact: \"exact\",\n // Case-sensitive, but key is transformed to Canonical MIME representation\n CanonicalMIME: \"canonical\",\n // Case-insensitive matches\n IgnoreCase: \"insensitive\",\n};\n/**\n * syncIterator is a utility function that allows an AsyncIterator to be triggered\n * by calling next() - the utility will yield null if the underlying iterator is closed.\n * Note it is possibly an error to call use this function on an AsyncIterable that has\n * already been started (Symbol.asyncIterator() has been called) from a looping construct.\n */\nfunction syncIterator(src) {\n const iter = src[Symbol.asyncIterator]();\n return {\n async next() {\n const m = await iter.next();\n if (m.done) {\n return Promise.resolve(null);\n }\n return Promise.resolve(m.value);\n },\n };\n}\nfunction createInbox(prefix = \"\") {\n prefix = prefix || \"_INBOX\";\n if (typeof prefix !== \"string\") {\n throw (new TypeError(\"prefix must be a string\"));\n }\n prefix.split(\".\")\n .forEach((v) => {\n if (v === \"*\" || v === \">\") {\n throw errors_1.InvalidArgumentError.format(\"prefix\", `cannot have wildcards ('${prefix}')`);\n }\n });\n return `${prefix}.${nuid_1.nuid.next()}`;\n}\nexports.DEFAULT_PORT = 4222;\nexports.DEFAULT_HOST = \"127.0.0.1\";\n//# sourceMappingURL=core.js.map","\"use strict\";\n/*\n * Copyright 2018-2021 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DataBuffer = void 0;\nconst encoders_1 = require(\"./encoders\");\nclass DataBuffer {\n buffers;\n byteLength;\n constructor() {\n this.buffers = [];\n this.byteLength = 0;\n }\n static concat(...bufs) {\n let max = 0;\n for (let i = 0; i < bufs.length; i++) {\n max += bufs[i].length;\n }\n const out = new Uint8Array(max);\n let index = 0;\n for (let i = 0; i < bufs.length; i++) {\n out.set(bufs[i], index);\n index += bufs[i].length;\n }\n return out;\n }\n static fromAscii(m) {\n if (!m) {\n m = \"\";\n }\n return encoders_1.TE.encode(m);\n }\n static toAscii(a) {\n return encoders_1.TD.decode(a);\n }\n reset() {\n this.buffers.length = 0;\n this.byteLength = 0;\n }\n pack() {\n if (this.buffers.length > 1) {\n const v = new Uint8Array(this.byteLength);\n let index = 0;\n for (let i = 0; i < this.buffers.length; i++) {\n v.set(this.buffers[i], index);\n index += this.buffers[i].length;\n }\n this.buffers.length = 0;\n this.buffers.push(v);\n }\n }\n shift() {\n if (this.buffers.length) {\n const a = this.buffers.shift();\n if (a) {\n this.byteLength -= a.length;\n return a;\n }\n }\n return new Uint8Array(0);\n }\n drain(n) {\n if (this.buffers.length) {\n this.pack();\n const v = this.buffers.pop();\n if (v) {\n const max = this.byteLength;\n if (n === undefined || n > max) {\n n = max;\n }\n const d = v.subarray(0, n);\n if (max > n) {\n this.buffers.push(v.subarray(n));\n }\n this.byteLength = max - n;\n return d;\n }\n }\n return new Uint8Array(0);\n }\n fill(a, ...bufs) {\n if (a) {\n this.buffers.push(a);\n this.byteLength += a.length;\n }\n for (let i = 0; i < bufs.length; i++) {\n if (bufs[i] && bufs[i].length) {\n this.buffers.push(bufs[i]);\n this.byteLength += bufs[i].length;\n }\n }\n }\n peek() {\n if (this.buffers.length) {\n this.pack();\n return this.buffers[0];\n }\n return new Uint8Array(0);\n }\n size() {\n return this.byteLength;\n }\n length() {\n return this.buffers.length;\n }\n}\nexports.DataBuffer = DataBuffer;\n//# sourceMappingURL=databuffer.js.map","\"use strict\";\n// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DenoBuffer = exports.MAX_SIZE = exports.AssertionError = void 0;\nexports.assert = assert;\nexports.concat = concat;\nexports.append = append;\nexports.readAll = readAll;\nexports.writeAll = writeAll;\n// This code has been ported almost directly from Go's src/bytes/buffer.go\n// Copyright 2009 The Go Authors. All rights reserved. BSD license.\n// https://github.com/golang/go/blob/master/LICENSE\n// This code removes all Deno specific functionality to enable its use\n// in a browser environment\n//@internal\nconst encoders_1 = require(\"./encoders\");\nclass AssertionError extends Error {\n constructor(msg) {\n super(msg);\n this.name = \"AssertionError\";\n }\n}\nexports.AssertionError = AssertionError;\n// @internal\nfunction assert(cond, msg = \"Assertion failed.\") {\n if (!cond) {\n throw new AssertionError(msg);\n }\n}\n// MIN_READ is the minimum ArrayBuffer size passed to a read call by\n// buffer.ReadFrom. As long as the Buffer has at least MIN_READ bytes beyond\n// what is required to hold the contents of r, readFrom() will not grow the\n// underlying buffer.\nconst MIN_READ = 32 * 1024;\nexports.MAX_SIZE = 2 ** 32 - 2;\n// `off` is the offset into `dst` where it will at which to begin writing values\n// from `src`.\n// Returns the number of bytes copied.\nfunction copy(src, dst, off = 0) {\n const r = dst.byteLength - off;\n if (src.byteLength > r) {\n src = src.subarray(0, r);\n }\n dst.set(src, off);\n return src.byteLength;\n}\nfunction concat(origin, b) {\n if (origin === undefined && b === undefined) {\n return new Uint8Array(0);\n }\n if (origin === undefined) {\n return b;\n }\n if (b === undefined) {\n return origin;\n }\n const output = new Uint8Array(origin.length + b.length);\n output.set(origin, 0);\n output.set(b, origin.length);\n return output;\n}\nfunction append(origin, b) {\n return concat(origin, Uint8Array.of(b));\n}\nclass DenoBuffer {\n _buf; // contents are the bytes _buf[off : len(_buf)]\n _off; // read at _buf[off], write at _buf[_buf.byteLength]\n constructor(ab) {\n this._off = 0;\n if (ab == null) {\n this._buf = new Uint8Array(0);\n return;\n }\n this._buf = new Uint8Array(ab);\n }\n bytes(options = { copy: true }) {\n if (options.copy === false)\n return this._buf.subarray(this._off);\n return this._buf.slice(this._off);\n }\n empty() {\n return this._buf.byteLength <= this._off;\n }\n get length() {\n return this._buf.byteLength - this._off;\n }\n get capacity() {\n return this._buf.buffer.byteLength;\n }\n truncate(n) {\n if (n === 0) {\n this.reset();\n return;\n }\n if (n < 0 || n > this.length) {\n throw Error(\"bytes.Buffer: truncation out of range\");\n }\n this._reslice(this._off + n);\n }\n reset() {\n this._reslice(0);\n this._off = 0;\n }\n _tryGrowByReslice(n) {\n const l = this._buf.byteLength;\n if (n <= this.capacity - l) {\n this._reslice(l + n);\n return l;\n }\n return -1;\n }\n _reslice(len) {\n assert(len <= this._buf.buffer.byteLength);\n this._buf = new Uint8Array(this._buf.buffer, 0, len);\n }\n readByte() {\n const a = new Uint8Array(1);\n if (this.read(a)) {\n return a[0];\n }\n return null;\n }\n read(p) {\n if (this.empty()) {\n // Buffer is empty, reset to recover space.\n this.reset();\n if (p.byteLength === 0) {\n // this edge case is tested in 'bufferReadEmptyAtEOF' test\n return 0;\n }\n return null;\n }\n const nread = copy(this._buf.subarray(this._off), p);\n this._off += nread;\n return nread;\n }\n writeByte(n) {\n return this.write(Uint8Array.of(n));\n }\n writeString(s) {\n return this.write(encoders_1.TE.encode(s));\n }\n write(p) {\n const m = this._grow(p.byteLength);\n return copy(p, this._buf, m);\n }\n _grow(n) {\n const m = this.length;\n // If buffer is empty, reset to recover space.\n if (m === 0 && this._off !== 0) {\n this.reset();\n }\n // Fast: Try to _grow by means of a _reslice.\n const i = this._tryGrowByReslice(n);\n if (i >= 0) {\n return i;\n }\n const c = this.capacity;\n if (n <= Math.floor(c / 2) - m) {\n // We can slide things down instead of allocating a new\n // ArrayBuffer. We only need m+n <= c to slide, but\n // we instead let capacity get twice as large so we\n // don't spend all our time copying.\n copy(this._buf.subarray(this._off), this._buf);\n }\n else if (c + n > exports.MAX_SIZE) {\n throw new Error(\"The buffer cannot be grown beyond the maximum size.\");\n }\n else {\n // Not enough space anywhere, we need to allocate.\n const buf = new Uint8Array(Math.min(2 * c + n, exports.MAX_SIZE));\n copy(this._buf.subarray(this._off), buf);\n this._buf = buf;\n }\n // Restore this.off and len(this._buf).\n this._off = 0;\n this._reslice(Math.min(m + n, exports.MAX_SIZE));\n return m;\n }\n grow(n) {\n if (n < 0) {\n throw Error(\"Buffer._grow: negative count\");\n }\n const m = this._grow(n);\n this._reslice(m);\n }\n readFrom(r) {\n let n = 0;\n const tmp = new Uint8Array(MIN_READ);\n while (true) {\n const shouldGrow = this.capacity - this.length < MIN_READ;\n // read into tmp buffer if there's not enough room\n // otherwise read directly into the internal buffer\n const buf = shouldGrow\n ? tmp\n : new Uint8Array(this._buf.buffer, this.length);\n const nread = r.read(buf);\n if (nread === null) {\n return n;\n }\n // write will grow if needed\n if (shouldGrow)\n this.write(buf.subarray(0, nread));\n else\n this._reslice(this.length + nread);\n n += nread;\n }\n }\n}\nexports.DenoBuffer = DenoBuffer;\nfunction readAll(r) {\n const buf = new DenoBuffer();\n buf.readFrom(r);\n return buf.bytes();\n}\nfunction writeAll(w, arr) {\n let nwritten = 0;\n while (nwritten < arr.length) {\n nwritten += w.write(arr.subarray(nwritten));\n }\n}\n//# sourceMappingURL=denobuffer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TD = exports.TE = exports.Empty = void 0;\nexports.encode = encode;\nexports.decode = decode;\n/*\n * Copyright 2020 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexports.Empty = new Uint8Array(0);\nexports.TE = new TextEncoder();\nexports.TD = new TextDecoder();\nfunction concat(...bufs) {\n let max = 0;\n for (let i = 0; i < bufs.length; i++) {\n max += bufs[i].length;\n }\n const out = new Uint8Array(max);\n let index = 0;\n for (let i = 0; i < bufs.length; i++) {\n out.set(bufs[i], index);\n index += bufs[i].length;\n }\n return out;\n}\nfunction encode(...a) {\n const bufs = [];\n for (let i = 0; i < a.length; i++) {\n bufs.push(exports.TE.encode(a[i]));\n }\n if (bufs.length === 0) {\n return exports.Empty;\n }\n if (bufs.length === 1) {\n return bufs[0];\n }\n return concat(...bufs);\n}\nfunction decode(a) {\n if (!a || a.length === 0) {\n return \"\";\n }\n return exports.TD.decode(a);\n}\n//# sourceMappingURL=encoders.js.map","\"use strict\";\n/*\n * Copyright 2024 Synadia Communications, Inc\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.errors = exports.PermissionViolationError = exports.NoRespondersError = exports.TimeoutError = exports.RequestError = exports.ProtocolError = exports.ConnectionError = exports.DrainingConnectionError = exports.ClosedConnectionError = exports.AuthorizationError = exports.UserAuthenticationExpiredError = exports.InvalidOperationError = exports.InvalidArgumentError = exports.InvalidSubjectError = void 0;\n/**\n * Represents an error that is thrown when an invalid subject is encountered.\n * This class extends the built-in Error object.\n *\n * @class\n * @extends Error\n */\nclass InvalidSubjectError extends Error {\n constructor(subject, options) {\n super(`illegal subject: '${subject}'`, options);\n this.name = \"InvalidSubjectError\";\n }\n}\nexports.InvalidSubjectError = InvalidSubjectError;\nclass InvalidArgumentError extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"InvalidArgumentError\";\n }\n static format(property, message, options) {\n if (Array.isArray(message) && message.length > 1) {\n message = message[0];\n }\n if (Array.isArray(property)) {\n property = property.map((n) => `'${n}'`);\n property = property.join(\",\");\n }\n else {\n property = `'${property}'`;\n }\n return new InvalidArgumentError(`${property} ${message}`, options);\n }\n}\nexports.InvalidArgumentError = InvalidArgumentError;\n/**\n * InvalidOperationError is a custom error class that extends the standard Error object.\n * It represents an error that occurs when an invalid operation is attempted on one of\n * objects returned by the API. For example, trying to iterate on an object that was\n * configured with a callback.\n *\n * @class InvalidOperationError\n * @extends {Error}\n *\n * @param {string} message - The error message that explains the reason for the error.\n * @param {ErrorOptions} [options] - Optional parameter to provide additional error options.\n */\nclass InvalidOperationError extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"InvalidOperationError\";\n }\n}\nexports.InvalidOperationError = InvalidOperationError;\n/**\n * Represents an error indicating that user authentication has expired.\n * This error is typically thrown when a user attempts to access a connection\n * but their authentication credentials have expired.\n */\nclass UserAuthenticationExpiredError extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"UserAuthenticationExpiredError\";\n }\n static parse(s) {\n const ss = s.toLowerCase();\n if (ss.indexOf(\"user authentication expired\") !== -1) {\n return new UserAuthenticationExpiredError(s);\n }\n return null;\n }\n}\nexports.UserAuthenticationExpiredError = UserAuthenticationExpiredError;\n/**\n * Represents an error related to authorization issues.\n * Note that these could represent an authorization violation,\n * or that the account authentication configuration has expired,\n * or an authentication timeout.\n */\nclass AuthorizationError extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"AuthorizationError\";\n }\n static parse(s) {\n const messages = [\n \"authorization violation\",\n \"account authentication expired\",\n \"authentication timeout\",\n ];\n const ss = s.toLowerCase();\n for (let i = 0; i < messages.length; i++) {\n if (ss.indexOf(messages[i]) !== -1) {\n return new AuthorizationError(s);\n }\n }\n return null;\n }\n}\nexports.AuthorizationError = AuthorizationError;\n/**\n * Class representing an error thrown when an operation is attempted on a closed connection.\n *\n * This error is intended to signal that a connection-related operation could not be completed\n * because the connection is no longer open or has been terminated.\n *\n * @class\n * @extends Error\n */\nclass ClosedConnectionError extends Error {\n constructor() {\n super(\"closed connection\");\n this.name = \"ClosedConnectionError\";\n }\n}\nexports.ClosedConnectionError = ClosedConnectionError;\n/**\n * The `ConnectionDrainingError` class represents a specific type of error\n * that occurs when a connection is being drained.\n *\n * This error is typically used in scenarios where connections need to be\n * gracefully closed or when they are transitioning to an inactive state.\n *\n * The error message is set to \"connection draining\" and the error name is\n * overridden to \"DrainingConnectionError\".\n */\nclass DrainingConnectionError extends Error {\n constructor() {\n super(\"connection draining\");\n this.name = \"DrainingConnectionError\";\n }\n}\nexports.DrainingConnectionError = DrainingConnectionError;\n/**\n * Represents an error that occurs when a network connection fails.\n * Extends the built-in Error class to provide additional context for connection-related issues.\n *\n * @param {string} message - A human-readable description of the error.\n * @param {ErrorOptions} [options] - Optional settings for customizing the error behavior.\n */\nclass ConnectionError extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"ConnectionError\";\n }\n}\nexports.ConnectionError = ConnectionError;\n/**\n * Represents an error encountered during protocol operations.\n * This class extends the built-in `Error` class, providing a specific\n * error type called `ProtocolError`.\n *\n * @param {string} message - A descriptive message describing the error.\n * @param {ErrorOptions} [options] - Optional parameters to include additional details.\n */\nclass ProtocolError extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"ProtocolError\";\n }\n}\nexports.ProtocolError = ProtocolError;\n/**\n * Class representing an error that occurs during an request operation\n * (such as TimeoutError, or NoRespondersError, or some other error).\n *\n * @extends Error\n */\nclass RequestError extends Error {\n constructor(message = \"\", options) {\n super(message, options);\n this.name = \"RequestError\";\n }\n isNoResponders() {\n return this.cause instanceof NoRespondersError;\n }\n}\nexports.RequestError = RequestError;\n/**\n * TimeoutError is a custom error class that extends the built-in Error class.\n * It is used to represent an error that occurs when an operation exceeds a\n * predefined time limit.\n *\n * @class\n * @extends {Error}\n */\nclass TimeoutError extends Error {\n constructor(options) {\n super(\"timeout\", options);\n this.name = \"TimeoutError\";\n }\n}\nexports.TimeoutError = TimeoutError;\n/**\n * NoRespondersError is an error thrown when no responders (no service is\n * subscribing to the subject) are found for a given subject. This error\n * is typically found as the cause for a RequestError\n *\n * @extends Error\n *\n * @param {string} subject - The subject for which no responders were found.\n * @param {ErrorOptions} [options] - Optional error options.\n */\nclass NoRespondersError extends Error {\n subject;\n constructor(subject, options) {\n super(`no responders: '${subject}'`, options);\n this.subject = subject;\n this.name = \"NoResponders\";\n }\n}\nexports.NoRespondersError = NoRespondersError;\n/**\n * Class representing a Permission Violation Error.\n * It provides information about the operation (either \"publish\" or \"subscription\")\n * and the subject used for the operation and the optional queue (if a subscription).\n *\n * This error is terminal for a subscription.\n */\nclass PermissionViolationError extends Error {\n operation;\n subject;\n queue;\n constructor(message, operation, subject, queue, options) {\n super(message, options);\n this.name = \"PermissionViolationError\";\n this.operation = operation;\n this.subject = subject;\n this.queue = queue;\n }\n static parse(s) {\n const t = s ? s.toLowerCase() : \"\";\n if (t.indexOf(\"permissions violation\") === -1) {\n return null;\n }\n let operation = \"publish\";\n let subject = \"\";\n let queue = undefined;\n const m = s.match(/(Publish|Subscription) to \"(\\S+)\"/);\n if (m) {\n operation = m[1].toLowerCase();\n subject = m[2];\n if (operation === \"subscription\") {\n const qm = s.match(/using queue \"(\\S+)\"/);\n if (qm) {\n queue = qm[1];\n }\n }\n }\n return new PermissionViolationError(s, operation, subject, queue);\n }\n}\nexports.PermissionViolationError = PermissionViolationError;\nexports.errors = {\n AuthorizationError,\n ClosedConnectionError,\n ConnectionError,\n DrainingConnectionError,\n InvalidArgumentError,\n InvalidOperationError,\n InvalidSubjectError,\n NoRespondersError,\n PermissionViolationError,\n ProtocolError,\n RequestError,\n TimeoutError,\n UserAuthenticationExpiredError,\n};\n//# sourceMappingURL=errors.js.map","\"use strict\";\n/*\n * Copyright 2020-2023 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgHdrsImpl = void 0;\nexports.canonicalMIMEHeaderKey = canonicalMIMEHeaderKey;\nexports.headers = headers;\n// Heavily inspired by Golang's https://golang.org/src/net/http/header.go\nconst encoders_1 = require(\"./encoders\");\nconst core_1 = require(\"./core\");\nconst errors_1 = require(\"./errors\");\n// https://www.ietf.org/rfc/rfc822.txt\n// 3.1.2. STRUCTURE OF HEADER FIELDS\n//\n// Once a field has been unfolded, it may be viewed as being com-\n// posed of a field-name followed by a colon (\":\"), followed by a\n// field-body, and terminated by a carriage-return/line-feed.\n// The field-name must be composed of printable ASCII characters\n// (i.e., characters that have values between 33. and 126.,\n// decimal, except colon). The field-body may be composed of any\n// ASCII characters, except CR or LF. (While CR and/or LF may be\n// present in the actual text, they are removed by the action of\n// unfolding the field.)\nfunction canonicalMIMEHeaderKey(k) {\n const a = 97;\n const A = 65;\n const Z = 90;\n const z = 122;\n const dash = 45;\n const colon = 58;\n const start = 33;\n const end = 126;\n const toLower = a - A;\n let upper = true;\n const buf = new Array(k.length);\n for (let i = 0; i < k.length; i++) {\n let c = k.charCodeAt(i);\n if (c === colon || c < start || c > end) {\n throw errors_1.InvalidArgumentError.format(\"header\", `'${k[i]}' is not a valid character in a header name`);\n }\n if (upper && a <= c && c <= z) {\n c -= toLower;\n }\n else if (!upper && A <= c && c <= Z) {\n c += toLower;\n }\n buf[i] = c;\n upper = c == dash;\n }\n return String.fromCharCode(...buf);\n}\nfunction headers(code = 0, description = \"\") {\n if ((code === 0 && description !== \"\") || (code > 0 && description === \"\")) {\n throw errors_1.InvalidArgumentError.format(\"description\", \"is required\");\n }\n return new MsgHdrsImpl(code, description);\n}\nconst HEADER = \"NATS/1.0\";\nclass MsgHdrsImpl {\n _code;\n headers;\n _description;\n constructor(code = 0, description = \"\") {\n this._code = code;\n this._description = description;\n this.headers = new Map();\n }\n [Symbol.iterator]() {\n return this.headers.entries();\n }\n size() {\n return this.headers.size;\n }\n equals(mh) {\n if (mh && this.headers.size === mh.headers.size &&\n this._code === mh._code) {\n for (const [k, v] of this.headers) {\n const a = mh.values(k);\n if (v.length !== a.length) {\n return false;\n }\n const vv = [...v].sort();\n const aa = [...a].sort();\n for (let i = 0; i < vv.length; i++) {\n if (vv[i] !== aa[i]) {\n return false;\n }\n }\n }\n return true;\n }\n return false;\n }\n static decode(a) {\n const mh = new MsgHdrsImpl();\n const s = encoders_1.TD.decode(a);\n const lines = s.split(\"\\r\\n\");\n const h = lines[0];\n if (h !== HEADER) {\n // malformed headers could add extra space without adding a code or description\n let str = h.replace(HEADER, \"\").trim();\n if (str.length > 0) {\n mh._code = parseInt(str, 10);\n if (isNaN(mh._code)) {\n mh._code = 0;\n }\n const scode = mh._code.toString();\n str = str.replace(scode, \"\");\n mh._description = str.trim();\n }\n }\n if (lines.length >= 1) {\n lines.slice(1).map((s) => {\n if (s) {\n const idx = s.indexOf(\":\");\n if (idx > -1) {\n const k = s.slice(0, idx);\n const v = s.slice(idx + 1).trim();\n mh.append(k, v);\n }\n }\n });\n }\n return mh;\n }\n toString() {\n if (this.headers.size === 0 && this._code === 0) {\n return \"\";\n }\n let s = HEADER;\n if (this._code > 0 && this._description !== \"\") {\n s += ` ${this._code} ${this._description}`;\n }\n for (const [k, v] of this.headers) {\n for (let i = 0; i < v.length; i++) {\n s = `${s}\\r\\n${k}: ${v[i]}`;\n }\n }\n return `${s}\\r\\n\\r\\n`;\n }\n encode() {\n return encoders_1.TE.encode(this.toString());\n }\n static validHeaderValue(k) {\n const inv = /[\\r\\n]/;\n if (inv.test(k)) {\n throw errors_1.InvalidArgumentError.format(\"header\", \"values cannot contain \\\\r or \\\\n\");\n }\n return k.trim();\n }\n keys() {\n const keys = [];\n for (const sk of this.headers.keys()) {\n keys.push(sk);\n }\n return keys;\n }\n findKeys(k, match = core_1.Match.Exact) {\n const keys = this.keys();\n switch (match) {\n case core_1.Match.Exact:\n return keys.filter((v) => {\n return v === k;\n });\n case core_1.Match.CanonicalMIME:\n k = canonicalMIMEHeaderKey(k);\n return keys.filter((v) => {\n return v === k;\n });\n default: {\n const lci = k.toLowerCase();\n return keys.filter((v) => {\n return lci === v.toLowerCase();\n });\n }\n }\n }\n get(k, match = core_1.Match.Exact) {\n const keys = this.findKeys(k, match);\n if (keys.length) {\n const v = this.headers.get(keys[0]);\n if (v) {\n return Array.isArray(v) ? v[0] : v;\n }\n }\n return \"\";\n }\n last(k, match = core_1.Match.Exact) {\n const keys = this.findKeys(k, match);\n if (keys.length) {\n const v = this.headers.get(keys[0]);\n if (v) {\n return Array.isArray(v) ? v[v.length - 1] : v;\n }\n }\n return \"\";\n }\n has(k, match = core_1.Match.Exact) {\n return this.findKeys(k, match).length > 0;\n }\n set(k, v, match = core_1.Match.Exact) {\n this.delete(k, match);\n this.append(k, v, match);\n }\n append(k, v, match = core_1.Match.Exact) {\n // validate the key\n const ck = canonicalMIMEHeaderKey(k);\n if (match === core_1.Match.CanonicalMIME) {\n k = ck;\n }\n // if we get non-sensical ignores/etc, we should try\n // to do the right thing and use the first key that matches\n const keys = this.findKeys(k, match);\n k = keys.length > 0 ? keys[0] : k;\n const value = MsgHdrsImpl.validHeaderValue(v);\n let a = this.headers.get(k);\n if (!a) {\n a = [];\n this.headers.set(k, a);\n }\n a.push(value);\n }\n values(k, match = core_1.Match.Exact) {\n const buf = [];\n const keys = this.findKeys(k, match);\n keys.forEach((v) => {\n const values = this.headers.get(v);\n if (values) {\n buf.push(...values);\n }\n });\n return buf;\n }\n delete(k, match = core_1.Match.Exact) {\n const keys = this.findKeys(k, match);\n keys.forEach((v) => {\n this.headers.delete(v);\n });\n }\n get hasError() {\n return this._code >= 300;\n }\n get status() {\n return `${this._code} ${this._description}`.trim();\n }\n toRecord() {\n const data = {};\n this.keys().forEach((v) => {\n data[v] = this.values(v);\n });\n return data;\n }\n get code() {\n return this._code;\n }\n get description() {\n return this._description;\n }\n static fromRecord(r) {\n const h = new MsgHdrsImpl();\n for (const k in r) {\n h.headers.set(k, r[k]);\n }\n return h;\n }\n}\nexports.MsgHdrsImpl = MsgHdrsImpl;\n//# sourceMappingURL=headers.js.map","\"use strict\";\n/*\n * Copyright 2020-2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Heartbeat = void 0;\nconst util_1 = require(\"./util\");\nclass Heartbeat {\n ph;\n interval;\n maxOut;\n timer;\n pendings;\n constructor(ph, interval, maxOut) {\n this.ph = ph;\n this.interval = interval;\n this.maxOut = maxOut;\n this.pendings = [];\n }\n // api to start the heartbeats, since this can be\n // spuriously called from dial, ensure we don't\n // leak timers\n start() {\n this.cancel();\n this._schedule();\n }\n // api for canceling the heartbeats, if stale is\n // true it will initiate a client disconnect\n cancel(stale) {\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = undefined;\n }\n this._reset();\n if (stale) {\n this.ph.disconnect();\n }\n }\n _schedule() {\n // @ts-ignore: node is not a number - we treat this opaquely\n this.timer = setTimeout(() => {\n this.ph.dispatchStatus({ type: \"ping\", pendingPings: this.pendings.length + 1 });\n if (this.pendings.length === this.maxOut) {\n this.cancel(true);\n return;\n }\n const ping = (0, util_1.deferred)();\n this.ph.flush(ping)\n .then(() => {\n this._reset();\n })\n .catch(() => {\n // we disconnected - pongs were rejected\n this.cancel();\n });\n this.pendings.push(ping);\n this._schedule();\n }, this.interval);\n }\n _reset() {\n // clear pendings after resolving them\n this.pendings = this.pendings.filter((p) => {\n const d = p;\n d.resolve();\n return false;\n });\n }\n}\nexports.Heartbeat = Heartbeat;\n//# sourceMappingURL=heartbeats.js.map","\"use strict\";\n/*\n * Copyright 2022 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IdleHeartbeatMonitor = void 0;\nclass IdleHeartbeatMonitor {\n interval;\n maxOut;\n cancelAfter;\n timer;\n autoCancelTimer;\n last;\n missed;\n count;\n callback;\n /**\n * Constructor\n * @param interval in millis to check\n * @param cb a callback to report when heartbeats are missed\n * @param opts monitor options @see IdleHeartbeatOptions\n */\n constructor(interval, cb, opts = { maxOut: 2 }) {\n this.interval = interval;\n this.maxOut = opts?.maxOut || 2;\n this.cancelAfter = opts?.cancelAfter || 0;\n this.last = Date.now();\n this.missed = 0;\n this.count = 0;\n this.callback = cb;\n this._schedule();\n }\n /**\n * cancel monitoring\n */\n cancel() {\n if (this.autoCancelTimer) {\n clearTimeout(this.autoCancelTimer);\n }\n if (this.timer) {\n clearInterval(this.timer);\n }\n this.timer = 0;\n this.autoCancelTimer = 0;\n this.missed = 0;\n }\n /**\n * work signals that there was work performed\n */\n work() {\n this.last = Date.now();\n this.missed = 0;\n }\n /**\n * internal api to change the interval, cancelAfter and maxOut\n * @param interval\n * @param cancelAfter\n * @param maxOut\n */\n _change(interval, cancelAfter = 0, maxOut = 2) {\n this.interval = interval;\n this.maxOut = maxOut;\n this.cancelAfter = cancelAfter;\n this.restart();\n }\n /**\n * cancels and restarts the monitoring\n */\n restart() {\n this.cancel();\n this._schedule();\n }\n /**\n * internal api called to start monitoring\n */\n _schedule() {\n if (this.cancelAfter > 0) {\n // @ts-ignore: in node is not a number - we treat this opaquely\n this.autoCancelTimer = setTimeout(() => {\n this.cancel();\n }, this.cancelAfter);\n }\n // @ts-ignore: in node is not a number - we treat this opaquely\n this.timer = setInterval(() => {\n this.count++;\n if ((Date.now() - this.last) > this.interval) {\n this.missed++;\n }\n if (this.missed >= this.maxOut) {\n try {\n if (this.callback(this.missed) === true) {\n this.cancel();\n }\n }\n catch (err) {\n console.log(err);\n }\n }\n }, this.interval);\n }\n}\nexports.IdleHeartbeatMonitor = IdleHeartbeatMonitor;\n//# sourceMappingURL=idleheartbeat_monitor.js.map","\"use strict\";\n/*\n * Copyright 2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TD = exports.Metric = exports.Bench = exports.writeAll = exports.readAll = exports.MAX_SIZE = exports.DenoBuffer = exports.State = exports.Parser = exports.Kind = exports.QueuedIteratorImpl = exports.usernamePasswordAuthenticator = exports.tokenAuthenticator = exports.nkeyAuthenticator = exports.jwtAuthenticator = exports.credsAuthenticator = exports.RequestOne = exports.parseOptions = exports.hasWsProtocol = exports.defaultOptions = exports.DEFAULT_MAX_RECONNECT_ATTEMPTS = exports.checkUnsupportedOption = exports.checkOptions = exports.buildAuthenticator = exports.DataBuffer = exports.MuxSubscription = exports.Heartbeat = exports.MsgHdrsImpl = exports.headers = exports.canonicalMIMEHeaderKey = exports.timeout = exports.SimpleMutex = exports.render = exports.nanos = exports.millis = exports.extend = exports.delay = exports.deferred = exports.deadline = exports.collect = exports.backoff = exports.ProtocolHandler = exports.INFO = exports.Connect = exports.setTransportFactory = exports.getResolveFn = exports.MsgImpl = exports.nuid = exports.Nuid = exports.NatsConnectionImpl = void 0;\nexports.UserAuthenticationExpiredError = exports.TimeoutError = exports.RequestError = exports.ProtocolError = exports.PermissionViolationError = exports.NoRespondersError = exports.InvalidSubjectError = exports.InvalidOperationError = exports.InvalidArgumentError = exports.errors = exports.DrainingConnectionError = exports.ConnectionError = exports.ClosedConnectionError = exports.AuthorizationError = exports.wsUrlParseFn = exports.wsconnect = exports.Servers = exports.isIPV4OrHostname = exports.IdleHeartbeatMonitor = exports.Subscriptions = exports.SubscriptionImpl = exports.syncIterator = exports.Match = exports.createInbox = exports.protoLen = exports.extractProtocolMessage = exports.Empty = exports.parseSemVer = exports.Features = exports.Feature = exports.compare = exports.parseIP = exports.isIP = exports.ipV4 = exports.TE = void 0;\nvar nats_1 = require(\"./nats\");\nObject.defineProperty(exports, \"NatsConnectionImpl\", { enumerable: true, get: function () { return nats_1.NatsConnectionImpl; } });\nvar nuid_1 = require(\"./nuid\");\nObject.defineProperty(exports, \"Nuid\", { enumerable: true, get: function () { return nuid_1.Nuid; } });\nObject.defineProperty(exports, \"nuid\", { enumerable: true, get: function () { return nuid_1.nuid; } });\nvar msg_1 = require(\"./msg\");\nObject.defineProperty(exports, \"MsgImpl\", { enumerable: true, get: function () { return msg_1.MsgImpl; } });\nvar transport_1 = require(\"./transport\");\nObject.defineProperty(exports, \"getResolveFn\", { enumerable: true, get: function () { return transport_1.getResolveFn; } });\nObject.defineProperty(exports, \"setTransportFactory\", { enumerable: true, get: function () { return transport_1.setTransportFactory; } });\nvar protocol_1 = require(\"./protocol\");\nObject.defineProperty(exports, \"Connect\", { enumerable: true, get: function () { return protocol_1.Connect; } });\nObject.defineProperty(exports, \"INFO\", { enumerable: true, get: function () { return protocol_1.INFO; } });\nObject.defineProperty(exports, \"ProtocolHandler\", { enumerable: true, get: function () { return protocol_1.ProtocolHandler; } });\nvar util_1 = require(\"./util\");\nObject.defineProperty(exports, \"backoff\", { enumerable: true, get: function () { return util_1.backoff; } });\nObject.defineProperty(exports, \"collect\", { enumerable: true, get: function () { return util_1.collect; } });\nObject.defineProperty(exports, \"deadline\", { enumerable: true, get: function () { return util_1.deadline; } });\nObject.defineProperty(exports, \"deferred\", { enumerable: true, get: function () { return util_1.deferred; } });\nObject.defineProperty(exports, \"delay\", { enumerable: true, get: function () { return util_1.delay; } });\nObject.defineProperty(exports, \"extend\", { enumerable: true, get: function () { return util_1.extend; } });\nObject.defineProperty(exports, \"millis\", { enumerable: true, get: function () { return util_1.millis; } });\nObject.defineProperty(exports, \"nanos\", { enumerable: true, get: function () { return util_1.nanos; } });\nObject.defineProperty(exports, \"render\", { enumerable: true, get: function () { return util_1.render; } });\nObject.defineProperty(exports, \"SimpleMutex\", { enumerable: true, get: function () { return util_1.SimpleMutex; } });\nObject.defineProperty(exports, \"timeout\", { enumerable: true, get: function () { return util_1.timeout; } });\nvar headers_1 = require(\"./headers\");\nObject.defineProperty(exports, \"canonicalMIMEHeaderKey\", { enumerable: true, get: function () { return headers_1.canonicalMIMEHeaderKey; } });\nObject.defineProperty(exports, \"headers\", { enumerable: true, get: function () { return headers_1.headers; } });\nObject.defineProperty(exports, \"MsgHdrsImpl\", { enumerable: true, get: function () { return headers_1.MsgHdrsImpl; } });\nvar heartbeats_1 = require(\"./heartbeats\");\nObject.defineProperty(exports, \"Heartbeat\", { enumerable: true, get: function () { return heartbeats_1.Heartbeat; } });\nvar muxsubscription_1 = require(\"./muxsubscription\");\nObject.defineProperty(exports, \"MuxSubscription\", { enumerable: true, get: function () { return muxsubscription_1.MuxSubscription; } });\nvar databuffer_1 = require(\"./databuffer\");\nObject.defineProperty(exports, \"DataBuffer\", { enumerable: true, get: function () { return databuffer_1.DataBuffer; } });\nvar options_1 = require(\"./options\");\nObject.defineProperty(exports, \"buildAuthenticator\", { enumerable: true, get: function () { return options_1.buildAuthenticator; } });\nObject.defineProperty(exports, \"checkOptions\", { enumerable: true, get: function () { return options_1.checkOptions; } });\nObject.defineProperty(exports, \"checkUnsupportedOption\", { enumerable: true, get: function () { return options_1.checkUnsupportedOption; } });\nObject.defineProperty(exports, \"DEFAULT_MAX_RECONNECT_ATTEMPTS\", { enumerable: true, get: function () { return options_1.DEFAULT_MAX_RECONNECT_ATTEMPTS; } });\nObject.defineProperty(exports, \"defaultOptions\", { enumerable: true, get: function () { return options_1.defaultOptions; } });\nObject.defineProperty(exports, \"hasWsProtocol\", { enumerable: true, get: function () { return options_1.hasWsProtocol; } });\nObject.defineProperty(exports, \"parseOptions\", { enumerable: true, get: function () { return options_1.parseOptions; } });\nvar request_1 = require(\"./request\");\nObject.defineProperty(exports, \"RequestOne\", { enumerable: true, get: function () { return request_1.RequestOne; } });\nvar authenticator_1 = require(\"./authenticator\");\nObject.defineProperty(exports, \"credsAuthenticator\", { enumerable: true, get: function () { return authenticator_1.credsAuthenticator; } });\nObject.defineProperty(exports, \"jwtAuthenticator\", { enumerable: true, get: function () { return authenticator_1.jwtAuthenticator; } });\nObject.defineProperty(exports, \"nkeyAuthenticator\", { enumerable: true, get: function () { return authenticator_1.nkeyAuthenticator; } });\nObject.defineProperty(exports, \"tokenAuthenticator\", { enumerable: true, get: function () { return authenticator_1.tokenAuthenticator; } });\nObject.defineProperty(exports, \"usernamePasswordAuthenticator\", { enumerable: true, get: function () { return authenticator_1.usernamePasswordAuthenticator; } });\n__exportStar(require(\"./nkeys\"), exports);\nvar queued_iterator_1 = require(\"./queued_iterator\");\nObject.defineProperty(exports, \"QueuedIteratorImpl\", { enumerable: true, get: function () { return queued_iterator_1.QueuedIteratorImpl; } });\nvar parser_1 = require(\"./parser\");\nObject.defineProperty(exports, \"Kind\", { enumerable: true, get: function () { return parser_1.Kind; } });\nObject.defineProperty(exports, \"Parser\", { enumerable: true, get: function () { return parser_1.Parser; } });\nObject.defineProperty(exports, \"State\", { enumerable: true, get: function () { return parser_1.State; } });\nvar denobuffer_1 = require(\"./denobuffer\");\nObject.defineProperty(exports, \"DenoBuffer\", { enumerable: true, get: function () { return denobuffer_1.DenoBuffer; } });\nObject.defineProperty(exports, \"MAX_SIZE\", { enumerable: true, get: function () { return denobuffer_1.MAX_SIZE; } });\nObject.defineProperty(exports, \"readAll\", { enumerable: true, get: function () { return denobuffer_1.readAll; } });\nObject.defineProperty(exports, \"writeAll\", { enumerable: true, get: function () { return denobuffer_1.writeAll; } });\nvar bench_1 = require(\"./bench\");\nObject.defineProperty(exports, \"Bench\", { enumerable: true, get: function () { return bench_1.Bench; } });\nObject.defineProperty(exports, \"Metric\", { enumerable: true, get: function () { return bench_1.Metric; } });\nvar encoders_1 = require(\"./encoders\");\nObject.defineProperty(exports, \"TD\", { enumerable: true, get: function () { return encoders_1.TD; } });\nObject.defineProperty(exports, \"TE\", { enumerable: true, get: function () { return encoders_1.TE; } });\nvar ipparser_1 = require(\"./ipparser\");\nObject.defineProperty(exports, \"ipV4\", { enumerable: true, get: function () { return ipparser_1.ipV4; } });\nObject.defineProperty(exports, \"isIP\", { enumerable: true, get: function () { return ipparser_1.isIP; } });\nObject.defineProperty(exports, \"parseIP\", { enumerable: true, get: function () { return ipparser_1.parseIP; } });\nvar semver_1 = require(\"./semver\");\nObject.defineProperty(exports, \"compare\", { enumerable: true, get: function () { return semver_1.compare; } });\nObject.defineProperty(exports, \"Feature\", { enumerable: true, get: function () { return semver_1.Feature; } });\nObject.defineProperty(exports, \"Features\", { enumerable: true, get: function () { return semver_1.Features; } });\nObject.defineProperty(exports, \"parseSemVer\", { enumerable: true, get: function () { return semver_1.parseSemVer; } });\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"Empty\", { enumerable: true, get: function () { return types_1.Empty; } });\nvar transport_2 = require(\"./transport\");\nObject.defineProperty(exports, \"extractProtocolMessage\", { enumerable: true, get: function () { return transport_2.extractProtocolMessage; } });\nObject.defineProperty(exports, \"protoLen\", { enumerable: true, get: function () { return transport_2.protoLen; } });\nvar core_1 = require(\"./core\");\nObject.defineProperty(exports, \"createInbox\", { enumerable: true, get: function () { return core_1.createInbox; } });\nObject.defineProperty(exports, \"Match\", { enumerable: true, get: function () { return core_1.Match; } });\nObject.defineProperty(exports, \"syncIterator\", { enumerable: true, get: function () { return core_1.syncIterator; } });\nvar protocol_2 = require(\"./protocol\");\nObject.defineProperty(exports, \"SubscriptionImpl\", { enumerable: true, get: function () { return protocol_2.SubscriptionImpl; } });\nObject.defineProperty(exports, \"Subscriptions\", { enumerable: true, get: function () { return protocol_2.Subscriptions; } });\nvar idleheartbeat_monitor_1 = require(\"./idleheartbeat_monitor\");\nObject.defineProperty(exports, \"IdleHeartbeatMonitor\", { enumerable: true, get: function () { return idleheartbeat_monitor_1.IdleHeartbeatMonitor; } });\nvar servers_1 = require(\"./servers\");\nObject.defineProperty(exports, \"isIPV4OrHostname\", { enumerable: true, get: function () { return servers_1.isIPV4OrHostname; } });\nObject.defineProperty(exports, \"Servers\", { enumerable: true, get: function () { return servers_1.Servers; } });\nvar ws_transport_1 = require(\"./ws_transport\");\nObject.defineProperty(exports, \"wsconnect\", { enumerable: true, get: function () { return ws_transport_1.wsconnect; } });\nObject.defineProperty(exports, \"wsUrlParseFn\", { enumerable: true, get: function () { return ws_transport_1.wsUrlParseFn; } });\nvar errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"AuthorizationError\", { enumerable: true, get: function () { return errors_1.AuthorizationError; } });\nObject.defineProperty(exports, \"ClosedConnectionError\", { enumerable: true, get: function () { return errors_1.ClosedConnectionError; } });\nObject.defineProperty(exports, \"ConnectionError\", { enumerable: true, get: function () { return errors_1.ConnectionError; } });\nObject.defineProperty(exports, \"DrainingConnectionError\", { enumerable: true, get: function () { return errors_1.DrainingConnectionError; } });\nObject.defineProperty(exports, \"errors\", { enumerable: true, get: function () { return errors_1.errors; } });\nObject.defineProperty(exports, \"InvalidArgumentError\", { enumerable: true, get: function () { return errors_1.InvalidArgumentError; } });\nObject.defineProperty(exports, \"InvalidOperationError\", { enumerable: true, get: function () { return errors_1.InvalidOperationError; } });\nObject.defineProperty(exports, \"InvalidSubjectError\", { enumerable: true, get: function () { return errors_1.InvalidSubjectError; } });\nObject.defineProperty(exports, \"NoRespondersError\", { enumerable: true, get: function () { return errors_1.NoRespondersError; } });\nObject.defineProperty(exports, \"PermissionViolationError\", { enumerable: true, get: function () { return errors_1.PermissionViolationError; } });\nObject.defineProperty(exports, \"ProtocolError\", { enumerable: true, get: function () { return errors_1.ProtocolError; } });\nObject.defineProperty(exports, \"RequestError\", { enumerable: true, get: function () { return errors_1.RequestError; } });\nObject.defineProperty(exports, \"TimeoutError\", { enumerable: true, get: function () { return errors_1.TimeoutError; } });\nObject.defineProperty(exports, \"UserAuthenticationExpiredError\", { enumerable: true, get: function () { return errors_1.UserAuthenticationExpiredError; } });\n//# sourceMappingURL=internal_mod.js.map","\"use strict\";\n/*\n * Copyright 2020-2021 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ipV4 = ipV4;\nexports.isIP = isIP;\nexports.parseIP = parseIP;\n// JavaScript port of go net/ip/ParseIP\n// https://github.com/golang/go/blob/master/src/net/ip.go\n// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nconst IPv4LEN = 4;\nconst IPv6LEN = 16;\nconst ASCII0 = 48;\nconst ASCII9 = 57;\nconst ASCIIA = 65;\nconst ASCIIF = 70;\nconst ASCIIa = 97;\nconst ASCIIf = 102;\nconst big = 0xFFFFFF;\nfunction ipV4(a, b, c, d) {\n const ip = new Uint8Array(IPv6LEN);\n const prefix = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff];\n prefix.forEach((v, idx) => {\n ip[idx] = v;\n });\n ip[12] = a;\n ip[13] = b;\n ip[14] = c;\n ip[15] = d;\n return ip;\n}\nfunction isIP(h) {\n return parseIP(h) !== undefined;\n}\nfunction parseIP(h) {\n for (let i = 0; i < h.length; i++) {\n switch (h[i]) {\n case \".\":\n return parseIPv4(h);\n case \":\":\n return parseIPv6(h);\n }\n }\n return;\n}\nfunction parseIPv4(s) {\n const ip = new Uint8Array(IPv4LEN);\n for (let i = 0; i < IPv4LEN; i++) {\n if (s.length === 0) {\n return undefined;\n }\n if (i > 0) {\n if (s[0] !== \".\") {\n return undefined;\n }\n s = s.substring(1);\n }\n const { n, c, ok } = dtoi(s);\n if (!ok || n > 0xFF) {\n return undefined;\n }\n s = s.substring(c);\n ip[i] = n;\n }\n return ipV4(ip[0], ip[1], ip[2], ip[3]);\n}\nfunction parseIPv6(s) {\n const ip = new Uint8Array(IPv6LEN);\n let ellipsis = -1;\n if (s.length >= 2 && s[0] === \":\" && s[1] === \":\") {\n ellipsis = 0;\n s = s.substring(2);\n if (s.length === 0) {\n return ip;\n }\n }\n let i = 0;\n while (i < IPv6LEN) {\n const { n, c, ok } = xtoi(s);\n if (!ok || n > 0xFFFF) {\n return undefined;\n }\n if (c < s.length && s[c] === \".\") {\n if (ellipsis < 0 && i != IPv6LEN - IPv4LEN) {\n return undefined;\n }\n if (i + IPv4LEN > IPv6LEN) {\n return undefined;\n }\n const ip4 = parseIPv4(s);\n if (ip4 === undefined) {\n return undefined;\n }\n ip[i] = ip4[12];\n ip[i + 1] = ip4[13];\n ip[i + 2] = ip4[14];\n ip[i + 3] = ip4[15];\n s = \"\";\n i += IPv4LEN;\n break;\n }\n ip[i] = n >> 8;\n ip[i + 1] = n;\n i += 2;\n s = s.substring(c);\n if (s.length === 0) {\n break;\n }\n if (s[0] !== \":\" || s.length == 1) {\n return undefined;\n }\n s = s.substring(1);\n if (s[0] === \":\") {\n if (ellipsis >= 0) {\n return undefined;\n }\n ellipsis = i;\n s = s.substring(1);\n if (s.length === 0) {\n break;\n }\n }\n }\n if (s.length !== 0) {\n return undefined;\n }\n if (i < IPv6LEN) {\n if (ellipsis < 0) {\n return undefined;\n }\n const n = IPv6LEN - i;\n for (let j = i - 1; j >= ellipsis; j--) {\n ip[j + n] = ip[j];\n }\n for (let j = ellipsis + n - 1; j >= ellipsis; j--) {\n ip[j] = 0;\n }\n }\n else if (ellipsis >= 0) {\n return undefined;\n }\n return ip;\n}\nfunction dtoi(s) {\n let i = 0;\n let n = 0;\n for (i = 0; i < s.length && ASCII0 <= s.charCodeAt(i) && s.charCodeAt(i) <= ASCII9; i++) {\n n = n * 10 + (s.charCodeAt(i) - ASCII0);\n if (n >= big) {\n return { n: big, c: i, ok: false };\n }\n }\n if (i === 0) {\n return { n: 0, c: 0, ok: false };\n }\n return { n: n, c: i, ok: true };\n}\nfunction xtoi(s) {\n let n = 0;\n let i = 0;\n for (i = 0; i < s.length; i++) {\n if (ASCII0 <= s.charCodeAt(i) && s.charCodeAt(i) <= ASCII9) {\n n *= 16;\n n += s.charCodeAt(i) - ASCII0;\n }\n else if (ASCIIa <= s.charCodeAt(i) && s.charCodeAt(i) <= ASCIIf) {\n n *= 16;\n n += (s.charCodeAt(i) - ASCIIa) + 10;\n }\n else if (ASCIIA <= s.charCodeAt(i) && s.charCodeAt(i) <= ASCIIF) {\n n *= 16;\n n += (s.charCodeAt(i) - ASCIIA) + 10;\n }\n else {\n break;\n }\n if (n >= big) {\n return { n: 0, c: i, ok: false };\n }\n }\n if (i === 0) {\n return { n: 0, c: i, ok: false };\n }\n return { n: n, c: i, ok: true };\n}\n//# sourceMappingURL=ipparser.js.map","\"use strict\";\n/*\n * Copyright 2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wsconnect = exports.usernamePasswordAuthenticator = exports.UserAuthenticationExpiredError = exports.tokenAuthenticator = exports.TimeoutError = exports.syncIterator = exports.RequestError = exports.ProtocolError = exports.PermissionViolationError = exports.nuid = exports.Nuid = exports.NoRespondersError = exports.nkeys = exports.nkeyAuthenticator = exports.nanos = exports.MsgHdrsImpl = exports.millis = exports.Metric = exports.Match = exports.jwtAuthenticator = exports.InvalidSubjectError = exports.InvalidOperationError = exports.InvalidArgumentError = exports.headers = exports.hasWsProtocol = exports.errors = exports.Empty = exports.DrainingConnectionError = exports.delay = exports.deferred = exports.deadline = exports.credsAuthenticator = exports.createInbox = exports.ConnectionError = exports.ClosedConnectionError = exports.canonicalMIMEHeaderKey = exports.buildAuthenticator = exports.Bench = exports.backoff = exports.AuthorizationError = void 0;\nvar internal_mod_1 = require(\"./internal_mod\");\nObject.defineProperty(exports, \"AuthorizationError\", { enumerable: true, get: function () { return internal_mod_1.AuthorizationError; } });\nObject.defineProperty(exports, \"backoff\", { enumerable: true, get: function () { return internal_mod_1.backoff; } });\nObject.defineProperty(exports, \"Bench\", { enumerable: true, get: function () { return internal_mod_1.Bench; } });\nObject.defineProperty(exports, \"buildAuthenticator\", { enumerable: true, get: function () { return internal_mod_1.buildAuthenticator; } });\nObject.defineProperty(exports, \"canonicalMIMEHeaderKey\", { enumerable: true, get: function () { return internal_mod_1.canonicalMIMEHeaderKey; } });\nObject.defineProperty(exports, \"ClosedConnectionError\", { enumerable: true, get: function () { return internal_mod_1.ClosedConnectionError; } });\nObject.defineProperty(exports, \"ConnectionError\", { enumerable: true, get: function () { return internal_mod_1.ConnectionError; } });\nObject.defineProperty(exports, \"createInbox\", { enumerable: true, get: function () { return internal_mod_1.createInbox; } });\nObject.defineProperty(exports, \"credsAuthenticator\", { enumerable: true, get: function () { return internal_mod_1.credsAuthenticator; } });\nObject.defineProperty(exports, \"deadline\", { enumerable: true, get: function () { return internal_mod_1.deadline; } });\nObject.defineProperty(exports, \"deferred\", { enumerable: true, get: function () { return internal_mod_1.deferred; } });\nObject.defineProperty(exports, \"delay\", { enumerable: true, get: function () { return internal_mod_1.delay; } });\nObject.defineProperty(exports, \"DrainingConnectionError\", { enumerable: true, get: function () { return internal_mod_1.DrainingConnectionError; } });\nObject.defineProperty(exports, \"Empty\", { enumerable: true, get: function () { return internal_mod_1.Empty; } });\nObject.defineProperty(exports, \"errors\", { enumerable: true, get: function () { return internal_mod_1.errors; } });\nObject.defineProperty(exports, \"hasWsProtocol\", { enumerable: true, get: function () { return internal_mod_1.hasWsProtocol; } });\nObject.defineProperty(exports, \"headers\", { enumerable: true, get: function () { return internal_mod_1.headers; } });\nObject.defineProperty(exports, \"InvalidArgumentError\", { enumerable: true, get: function () { return internal_mod_1.InvalidArgumentError; } });\nObject.defineProperty(exports, \"InvalidOperationError\", { enumerable: true, get: function () { return internal_mod_1.InvalidOperationError; } });\nObject.defineProperty(exports, \"InvalidSubjectError\", { enumerable: true, get: function () { return internal_mod_1.InvalidSubjectError; } });\nObject.defineProperty(exports, \"jwtAuthenticator\", { enumerable: true, get: function () { return internal_mod_1.jwtAuthenticator; } });\nObject.defineProperty(exports, \"Match\", { enumerable: true, get: function () { return internal_mod_1.Match; } });\nObject.defineProperty(exports, \"Metric\", { enumerable: true, get: function () { return internal_mod_1.Metric; } });\nObject.defineProperty(exports, \"millis\", { enumerable: true, get: function () { return internal_mod_1.millis; } });\nObject.defineProperty(exports, \"MsgHdrsImpl\", { enumerable: true, get: function () { return internal_mod_1.MsgHdrsImpl; } });\nObject.defineProperty(exports, \"nanos\", { enumerable: true, get: function () { return internal_mod_1.nanos; } });\nObject.defineProperty(exports, \"nkeyAuthenticator\", { enumerable: true, get: function () { return internal_mod_1.nkeyAuthenticator; } });\nObject.defineProperty(exports, \"nkeys\", { enumerable: true, get: function () { return internal_mod_1.nkeys; } });\nObject.defineProperty(exports, \"NoRespondersError\", { enumerable: true, get: function () { return internal_mod_1.NoRespondersError; } });\nObject.defineProperty(exports, \"Nuid\", { enumerable: true, get: function () { return internal_mod_1.Nuid; } });\nObject.defineProperty(exports, \"nuid\", { enumerable: true, get: function () { return internal_mod_1.nuid; } });\nObject.defineProperty(exports, \"PermissionViolationError\", { enumerable: true, get: function () { return internal_mod_1.PermissionViolationError; } });\nObject.defineProperty(exports, \"ProtocolError\", { enumerable: true, get: function () { return internal_mod_1.ProtocolError; } });\nObject.defineProperty(exports, \"RequestError\", { enumerable: true, get: function () { return internal_mod_1.RequestError; } });\nObject.defineProperty(exports, \"syncIterator\", { enumerable: true, get: function () { return internal_mod_1.syncIterator; } });\nObject.defineProperty(exports, \"TimeoutError\", { enumerable: true, get: function () { return internal_mod_1.TimeoutError; } });\nObject.defineProperty(exports, \"tokenAuthenticator\", { enumerable: true, get: function () { return internal_mod_1.tokenAuthenticator; } });\nObject.defineProperty(exports, \"UserAuthenticationExpiredError\", { enumerable: true, get: function () { return internal_mod_1.UserAuthenticationExpiredError; } });\nObject.defineProperty(exports, \"usernamePasswordAuthenticator\", { enumerable: true, get: function () { return internal_mod_1.usernamePasswordAuthenticator; } });\nObject.defineProperty(exports, \"wsconnect\", { enumerable: true, get: function () { return internal_mod_1.wsconnect; } });\n//# sourceMappingURL=mod.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgImpl = void 0;\n/*\n * Copyright 2020-2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst headers_1 = require(\"./headers\");\nconst encoders_1 = require(\"./encoders\");\nclass MsgImpl {\n _headers;\n _msg;\n _rdata;\n _reply;\n _subject;\n publisher;\n constructor(msg, data, publisher) {\n this._msg = msg;\n this._rdata = data;\n this.publisher = publisher;\n }\n get subject() {\n if (this._subject) {\n return this._subject;\n }\n this._subject = encoders_1.TD.decode(this._msg.subject);\n return this._subject;\n }\n get reply() {\n if (this._reply) {\n return this._reply;\n }\n this._reply = encoders_1.TD.decode(this._msg.reply);\n return this._reply;\n }\n get sid() {\n return this._msg.sid;\n }\n get headers() {\n if (this._msg.hdr > -1 && !this._headers) {\n const buf = this._rdata.subarray(0, this._msg.hdr);\n this._headers = headers_1.MsgHdrsImpl.decode(buf);\n }\n return this._headers;\n }\n get data() {\n if (!this._rdata) {\n return new Uint8Array(0);\n }\n return this._msg.hdr > -1\n ? this._rdata.subarray(this._msg.hdr)\n : this._rdata;\n }\n // eslint-ignore-next-line @typescript-eslint/no-explicit-any\n respond(data = encoders_1.Empty, opts) {\n if (this.reply) {\n this.publisher.publish(this.reply, data, opts);\n return true;\n }\n return false;\n }\n size() {\n const subj = this._msg.subject.length;\n const reply = this._msg.reply?.length || 0;\n const payloadAndHeaders = this._msg.size === -1 ? 0 : this._msg.size;\n return subj + reply + payloadAndHeaders;\n }\n json(reviver) {\n return JSON.parse(this.string(), reviver);\n }\n string() {\n return encoders_1.TD.decode(this.data);\n }\n requestInfo() {\n const v = this.headers?.get(\"Nats-Request-Info\");\n if (v) {\n return JSON.parse(v, function (key, value) {\n if ((key === \"start\" || key === \"stop\") && value !== \"\") {\n return new Date(Date.parse(value));\n }\n return value;\n });\n }\n return null;\n }\n}\nexports.MsgImpl = MsgImpl;\n//# sourceMappingURL=msg.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MuxSubscription = void 0;\nconst core_1 = require(\"./core\");\nconst errors_1 = require(\"./errors\");\nclass MuxSubscription {\n baseInbox;\n reqs;\n constructor() {\n this.reqs = new Map();\n }\n size() {\n return this.reqs.size;\n }\n init(prefix) {\n this.baseInbox = `${(0, core_1.createInbox)(prefix)}.`;\n return this.baseInbox;\n }\n add(r) {\n if (!isNaN(r.received)) {\n r.received = 0;\n }\n this.reqs.set(r.token, r);\n }\n get(token) {\n return this.reqs.get(token);\n }\n cancel(r) {\n this.reqs.delete(r.token);\n }\n getToken(m) {\n const s = m.subject || \"\";\n if (s.indexOf(this.baseInbox) === 0) {\n return s.substring(this.baseInbox.length);\n }\n return null;\n }\n all() {\n return Array.from(this.reqs.values());\n }\n handleError(isMuxPermissionError, err) {\n if (isMuxPermissionError) {\n // one or more requests queued but mux cannot process them\n this.all().forEach((r) => {\n r.resolver(err, {});\n });\n return true;\n }\n if (err.operation === \"publish\") {\n const req = this.all().find((s) => {\n return s.requestSubject === err.subject;\n });\n if (req) {\n req.resolver(err, {});\n return true;\n }\n }\n return false;\n }\n dispatcher() {\n return (err, m) => {\n const token = this.getToken(m);\n if (token) {\n const r = this.get(token);\n if (r) {\n if (err === null) {\n err = (m?.data?.length === 0 && m.headers?.code === 503)\n ? new errors_1.NoRespondersError(r.requestSubject)\n : null;\n }\n r.resolver(err, m);\n }\n }\n };\n }\n close() {\n const err = new errors_1.RequestError(\"connection closed\");\n this.reqs.forEach((req) => {\n req.resolver(err, {});\n });\n }\n}\nexports.MuxSubscription = MuxSubscription;\n//# sourceMappingURL=muxsubscription.js.map","\"use strict\";\n/*\n * Copyright 2018-2023 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NatsConnectionImpl = void 0;\nconst util_1 = require(\"./util\");\nconst protocol_1 = require(\"./protocol\");\nconst encoders_1 = require(\"./encoders\");\nconst semver_1 = require(\"./semver\");\nconst options_1 = require(\"./options\");\nconst queued_iterator_1 = require(\"./queued_iterator\");\nconst request_1 = require(\"./request\");\nconst core_1 = require(\"./core\");\nconst errors_1 = require(\"./errors\");\nclass NatsConnectionImpl {\n options;\n protocol;\n draining;\n constructor(opts) {\n this.draining = false;\n this.options = (0, options_1.parseOptions)(opts);\n }\n static connect(opts = {}) {\n return new Promise((resolve, reject) => {\n const nc = new NatsConnectionImpl(opts);\n protocol_1.ProtocolHandler.connect(nc.options, nc)\n .then((ph) => {\n nc.protocol = ph;\n resolve(nc);\n })\n .catch((err) => {\n reject(err);\n });\n });\n }\n closed() {\n return this.protocol.closed;\n }\n async close() {\n await this.protocol.close();\n }\n _check(subject, sub, pub) {\n if (this.isClosed()) {\n throw new errors_1.errors.ClosedConnectionError();\n }\n if (sub && this.isDraining()) {\n throw new errors_1.errors.DrainingConnectionError();\n }\n if (pub && this.protocol.noMorePublishing) {\n throw new errors_1.errors.DrainingConnectionError();\n }\n subject = subject || \"\";\n if (subject.length === 0) {\n throw new errors_1.errors.InvalidSubjectError(subject);\n }\n }\n publish(subject, data, options) {\n this._check(subject, false, true);\n if (options?.reply) {\n this._check(options.reply, false, true);\n }\n this.protocol.publish(subject, data, options);\n }\n publishMessage(msg) {\n return this.publish(msg.subject, msg.data, {\n reply: msg.reply,\n headers: msg.headers,\n });\n }\n respondMessage(msg) {\n if (msg.reply) {\n this.publish(msg.reply, msg.data, {\n reply: msg.reply,\n headers: msg.headers,\n });\n return true;\n }\n return false;\n }\n subscribe(subject, opts = {}) {\n this._check(subject, true, false);\n const sub = new protocol_1.SubscriptionImpl(this.protocol, subject, opts);\n if (typeof opts.callback !== \"function\" && typeof opts.slow === \"number\") {\n sub.setSlowNotificationFn(opts.slow, (pending) => {\n this.protocol.dispatchStatus({\n type: \"slowConsumer\",\n sub,\n pending,\n });\n });\n }\n this.protocol.subscribe(sub);\n return sub;\n }\n _resub(s, subject, max) {\n this._check(subject, true, false);\n const si = s;\n // FIXME: need way of understanding a callbacks processed\n // count without it, we cannot really do much - ie\n // for rejected messages, the count would be lower, etc.\n // To handle cases were for example KV is building a map\n // the consumer would say how many messages we need to do\n // a proper build before we can handle updates.\n si.max = max; // this might clear it\n if (max) {\n // we cannot auto-unsub, because we don't know the\n // number of messages we processed vs received\n // allow the auto-unsub on processMsg to work if they\n // we were called with a new max\n si.max = max + si.received;\n }\n this.protocol.resub(si, subject);\n }\n // possibilities are:\n // stop on error or any non-100 status\n // AND:\n // - wait for timer\n // - wait for n messages or timer\n // - wait for unknown messages, done when empty or reset timer expires (with possible alt wait)\n // - wait for unknown messages, done when an empty payload is received or timer expires (with possible alt wait)\n requestMany(subject, data = encoders_1.Empty, opts = { maxWait: 1000, maxMessages: -1 }) {\n const asyncTraces = !(this.protocol.options.noAsyncTraces || false);\n try {\n this._check(subject, true, true);\n }\n catch (err) {\n return Promise.reject(err);\n }\n opts.strategy = opts.strategy || \"timer\";\n opts.maxWait = opts.maxWait || 1000;\n if (opts.maxWait < 1) {\n return Promise.reject(errors_1.InvalidArgumentError.format(\"timeout\", \"must be greater than 0\"));\n }\n // the iterator for user results\n const qi = new queued_iterator_1.QueuedIteratorImpl();\n function stop(err) {\n qi.push(() => {\n qi.stop(err);\n });\n }\n // callback for the subscription or the mux handler\n // simply pushes errors and messages into the iterator\n function callback(err, msg) {\n if (err || msg === null) {\n stop(err === null ? undefined : err);\n }\n else {\n qi.push(msg);\n }\n }\n if (opts.noMux) {\n // we setup a subscription and manage it\n const stack = asyncTraces ? new Error().stack : null;\n let max = typeof opts.maxMessages === \"number\" && opts.maxMessages > 0\n ? opts.maxMessages\n : -1;\n const sub = this.subscribe((0, core_1.createInbox)(this.options.inboxPrefix), {\n callback: (err, msg) => {\n // we only expect runtime errors or a no responders\n if (msg?.data?.length === 0 &&\n msg?.headers?.status === \"503\") {\n err = new errors_1.errors.NoRespondersError(subject);\n }\n // augment any error with the current stack to provide context\n // for the error on the suer code\n if (err) {\n if (stack) {\n err.stack += `\\n\\n${stack}`;\n }\n cancel(err);\n return;\n }\n // push the message\n callback(null, msg);\n // see if the m request is completed\n if (opts.strategy === \"count\") {\n max--;\n if (max === 0) {\n cancel();\n }\n }\n if (opts.strategy === \"stall\") {\n clearTimers();\n timer = setTimeout(() => {\n cancel();\n }, 300);\n }\n if (opts.strategy === \"sentinel\") {\n if (msg && msg.data.length === 0) {\n cancel();\n }\n }\n },\n });\n sub.requestSubject = subject;\n sub.closed\n .then(() => {\n stop();\n })\n .catch((err) => {\n qi.stop(err);\n });\n const cancel = (err) => {\n if (err) {\n qi.push(() => {\n throw err;\n });\n }\n clearTimers();\n sub.drain()\n .then(() => {\n stop();\n })\n .catch((_err) => {\n stop();\n });\n };\n qi.iterClosed\n .then(() => {\n clearTimers();\n sub?.unsubscribe();\n })\n .catch((_err) => {\n clearTimers();\n sub?.unsubscribe();\n });\n try {\n this.publish(subject, data, { reply: sub.getSubject() });\n }\n catch (err) {\n cancel(err);\n }\n let timer = setTimeout(() => {\n cancel();\n }, opts.maxWait);\n const clearTimers = () => {\n if (timer) {\n clearTimeout(timer);\n }\n };\n }\n else {\n // the ingestion is the RequestMany\n const rmo = opts;\n rmo.callback = callback;\n qi.iterClosed.then(() => {\n r.cancel();\n }).catch((err) => {\n r.cancel(err);\n });\n const r = new request_1.RequestMany(this.protocol.muxSubscriptions, subject, rmo);\n this.protocol.request(r);\n try {\n this.publish(subject, data, {\n reply: `${this.protocol.muxSubscriptions.baseInbox}${r.token}`,\n headers: opts.headers,\n });\n }\n catch (err) {\n r.cancel(err);\n }\n }\n return Promise.resolve(qi);\n }\n request(subject, data, opts = { timeout: 1000, noMux: false }) {\n try {\n this._check(subject, true, true);\n }\n catch (err) {\n return Promise.reject(err);\n }\n const asyncTraces = !(this.protocol.options.noAsyncTraces || false);\n opts.timeout = opts.timeout || 1000;\n if (opts.timeout < 1) {\n return Promise.reject(errors_1.InvalidArgumentError.format(\"timeout\", `must be greater than 0`));\n }\n if (!opts.noMux && opts.reply) {\n return Promise.reject(errors_1.InvalidArgumentError.format([\"reply\", \"noMux\"], \"are mutually exclusive\"));\n }\n if (opts.noMux) {\n const inbox = opts.reply\n ? opts.reply\n : (0, core_1.createInbox)(this.options.inboxPrefix);\n const d = (0, util_1.deferred)();\n const errCtx = asyncTraces ? new errors_1.errors.RequestError(\"\") : null;\n const sub = this.subscribe(inbox, {\n max: 1,\n timeout: opts.timeout,\n callback: (err, msg) => {\n // check for no responders status\n if (msg && msg.data?.length === 0 && msg.headers?.code === 503) {\n err = new errors_1.errors.NoRespondersError(subject);\n }\n if (err) {\n // we have a proper stack on timeout\n if (!(err instanceof errors_1.TimeoutError)) {\n if (errCtx) {\n errCtx.message = err.message;\n errCtx.cause = err;\n err = errCtx;\n }\n else {\n err = new errors_1.errors.RequestError(err.message, { cause: err });\n }\n }\n d.reject(err);\n sub.unsubscribe();\n }\n else {\n d.resolve(msg);\n }\n },\n });\n sub.requestSubject = subject;\n this.protocol.publish(subject, data, {\n reply: inbox,\n headers: opts.headers,\n });\n return d;\n }\n else {\n const r = new request_1.RequestOne(this.protocol.muxSubscriptions, subject, opts, asyncTraces);\n this.protocol.request(r);\n try {\n this.publish(subject, data, {\n reply: `${this.protocol.muxSubscriptions.baseInbox}${r.token}`,\n headers: opts.headers,\n });\n }\n catch (err) {\n r.cancel(err);\n }\n const p = Promise.race([r.timer, r.deferred]);\n p.catch(() => {\n r.cancel();\n });\n return p;\n }\n }\n /** *\n * Flushes to the server. Promise resolves when round-trip completes.\n * @returns {Promise}\n */\n flush() {\n if (this.isClosed()) {\n return Promise.reject(new errors_1.errors.ClosedConnectionError());\n }\n return this.protocol.flush();\n }\n drain() {\n if (this.isClosed()) {\n return Promise.reject(new errors_1.errors.ClosedConnectionError());\n }\n if (this.isDraining()) {\n return Promise.reject(new errors_1.errors.DrainingConnectionError());\n }\n this.draining = true;\n return this.protocol.drain();\n }\n isClosed() {\n return this.protocol.isClosed();\n }\n isDraining() {\n return this.draining;\n }\n getServer() {\n const srv = this.protocol.getServer();\n return srv ? srv.listen : \"\";\n }\n status() {\n const iter = new queued_iterator_1.QueuedIteratorImpl();\n iter.iterClosed.then(() => {\n const idx = this.protocol.listeners.indexOf(iter);\n if (idx > -1) {\n this.protocol.listeners.splice(idx, 1);\n }\n });\n this.protocol.listeners.push(iter);\n return iter;\n }\n get info() {\n return this.protocol.isClosed() ? undefined : this.protocol.info;\n }\n async context() {\n const r = await this.request(`$SYS.REQ.USER.INFO`);\n return r.json((key, value) => {\n if (key === \"time\") {\n return new Date(Date.parse(value));\n }\n return value;\n });\n }\n stats() {\n return {\n inBytes: this.protocol.inBytes,\n outBytes: this.protocol.outBytes,\n inMsgs: this.protocol.inMsgs,\n outMsgs: this.protocol.outMsgs,\n };\n }\n getServerVersion() {\n const info = this.info;\n return info ? (0, semver_1.parseSemVer)(info.version) : undefined;\n }\n async rtt() {\n if (this.isClosed()) {\n throw new errors_1.errors.ClosedConnectionError();\n }\n if (!this.protocol.connected) {\n throw new errors_1.errors.RequestError(\"connection disconnected\");\n }\n const start = Date.now();\n await this.flush();\n return Date.now() - start;\n }\n get features() {\n return this.protocol.features;\n }\n reconnect() {\n if (this.isClosed()) {\n return Promise.reject(new errors_1.errors.ClosedConnectionError());\n }\n if (this.isDraining()) {\n return Promise.reject(new errors_1.errors.DrainingConnectionError());\n }\n return this.protocol.reconnect();\n }\n}\nexports.NatsConnectionImpl = NatsConnectionImpl;\n//# sourceMappingURL=nats.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.nkeys = void 0;\nexports.nkeys = __importStar(require(\"@nats-io/nkeys\"));\n//# sourceMappingURL=nkeys.js.map","\"use strict\";\n/*\n * Copyright 2016-2021 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.nuid = exports.Nuid = void 0;\nvar nuid_1 = require(\"@nats-io/nuid\");\nObject.defineProperty(exports, \"Nuid\", { enumerable: true, get: function () { return nuid_1.Nuid; } });\nObject.defineProperty(exports, \"nuid\", { enumerable: true, get: function () { return nuid_1.nuid; } });\n//# sourceMappingURL=nuid.js.map","\"use strict\";\n/*\n * Copyright 2021-2023 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_RECONNECT_TIME_WAIT = exports.DEFAULT_MAX_PING_OUT = exports.DEFAULT_PING_INTERVAL = exports.DEFAULT_JITTER_TLS = exports.DEFAULT_JITTER = exports.DEFAULT_MAX_RECONNECT_ATTEMPTS = void 0;\nexports.defaultOptions = defaultOptions;\nexports.hasWsProtocol = hasWsProtocol;\nexports.buildAuthenticator = buildAuthenticator;\nexports.parseOptions = parseOptions;\nexports.checkOptions = checkOptions;\nexports.checkUnsupportedOption = checkUnsupportedOption;\nconst util_1 = require(\"./util\");\nconst transport_1 = require(\"./transport\");\nconst core_1 = require(\"./core\");\nconst authenticator_1 = require(\"./authenticator\");\nconst errors_1 = require(\"./errors\");\nexports.DEFAULT_MAX_RECONNECT_ATTEMPTS = 10;\nexports.DEFAULT_JITTER = 100;\nexports.DEFAULT_JITTER_TLS = 1000;\n// Ping interval\nexports.DEFAULT_PING_INTERVAL = 2 * 60 * 1000; // 2 minutes\nexports.DEFAULT_MAX_PING_OUT = 2;\n// DISCONNECT Parameters, 2 sec wait, 10 tries\nexports.DEFAULT_RECONNECT_TIME_WAIT = 2 * 1000;\nfunction defaultOptions() {\n return {\n maxPingOut: exports.DEFAULT_MAX_PING_OUT,\n maxReconnectAttempts: exports.DEFAULT_MAX_RECONNECT_ATTEMPTS,\n noRandomize: false,\n pedantic: false,\n pingInterval: exports.DEFAULT_PING_INTERVAL,\n reconnect: true,\n reconnectJitter: exports.DEFAULT_JITTER,\n reconnectJitterTLS: exports.DEFAULT_JITTER_TLS,\n reconnectTimeWait: exports.DEFAULT_RECONNECT_TIME_WAIT,\n tls: undefined,\n verbose: false,\n waitOnFirstConnect: false,\n ignoreAuthErrorAbort: false,\n };\n}\nfunction hasWsProtocol(opts) {\n if (opts) {\n let { servers } = opts;\n if (typeof servers === \"string\") {\n servers = [servers];\n }\n if (servers) {\n for (let i = 0; i < servers.length; i++) {\n const s = servers[i].toLowerCase();\n if (s.startsWith(\"ws://\") || s.startsWith(\"wss://\")) {\n return true;\n }\n }\n }\n }\n return false;\n}\nfunction buildAuthenticator(opts) {\n const buf = [];\n // jwtAuthenticator is created by the user, since it\n // will require possibly reading files which\n // some of the clients are simply unable to do\n if (typeof opts.authenticator === \"function\") {\n buf.push(opts.authenticator);\n }\n if (Array.isArray(opts.authenticator)) {\n buf.push(...opts.authenticator);\n }\n if (opts.token) {\n buf.push((0, authenticator_1.tokenAuthenticator)(opts.token));\n }\n if (opts.user) {\n buf.push((0, authenticator_1.usernamePasswordAuthenticator)(opts.user, opts.pass));\n }\n return buf.length === 0 ? (0, authenticator_1.noAuthFn)() : (0, authenticator_1.multiAuthenticator)(buf);\n}\nfunction parseOptions(opts) {\n const dhp = `${core_1.DEFAULT_HOST}:${(0, transport_1.defaultPort)()}`;\n opts = opts || { servers: [dhp] };\n opts.servers = opts.servers || [];\n if (typeof opts.servers === \"string\") {\n opts.servers = [opts.servers];\n }\n if (opts.servers.length > 0 && opts.port) {\n throw errors_1.InvalidArgumentError.format([\"servers\", \"port\"], \"are mutually exclusive\");\n }\n if (opts.servers.length === 0 && opts.port) {\n opts.servers = [`${core_1.DEFAULT_HOST}:${opts.port}`];\n }\n if (opts.servers && opts.servers.length === 0) {\n opts.servers = [dhp];\n }\n const options = (0, util_1.extend)(defaultOptions(), opts);\n options.authenticator = buildAuthenticator(options);\n [\"reconnectDelayHandler\", \"authenticator\"].forEach((n) => {\n if (options[n] && typeof options[n] !== \"function\") {\n throw TypeError(`'${n}' must be a function`);\n }\n });\n if (!options.reconnectDelayHandler) {\n options.reconnectDelayHandler = () => {\n let extra = options.tls\n ? options.reconnectJitterTLS\n : options.reconnectJitter;\n if (extra) {\n extra++;\n extra = Math.floor(Math.random() * extra);\n }\n return options.reconnectTimeWait + extra;\n };\n }\n if (options.inboxPrefix) {\n (0, core_1.createInbox)(options.inboxPrefix);\n }\n // if not set - we set it\n if (options.resolve === undefined) {\n // set a default based on whether the client can resolve or not\n options.resolve = typeof (0, transport_1.getResolveFn)() === \"function\";\n }\n if (options.resolve) {\n if (typeof (0, transport_1.getResolveFn)() !== \"function\") {\n throw errors_1.InvalidArgumentError.format(\"resolve\", \"is not supported in the current runtime\");\n }\n }\n return options;\n}\nfunction checkOptions(info, options) {\n const { proto, tls_required: tlsRequired, tls_available: tlsAvailable } = info;\n if ((proto === undefined || proto < 1) && options.noEcho) {\n throw new errors_1.errors.ConnectionError(`server does not support 'noEcho'`);\n }\n const tls = tlsRequired || tlsAvailable || false;\n if (options.tls && !tls) {\n throw new errors_1.errors.ConnectionError(`server does not support 'tls'`);\n }\n}\nfunction checkUnsupportedOption(prop, v) {\n if (v) {\n throw errors_1.InvalidArgumentError.format(prop, \"is not supported\");\n }\n}\n//# sourceMappingURL=options.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cc = exports.State = exports.Parser = exports.Kind = void 0;\nexports.describe = describe;\n// deno-lint-ignore-file no-undef\n/*\n * Copyright 2020-2021 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst denobuffer_1 = require(\"./denobuffer\");\nconst encoders_1 = require(\"./encoders\");\nexports.Kind = {\n OK: 0,\n ERR: 1,\n MSG: 2,\n INFO: 3,\n PING: 4,\n PONG: 5,\n};\nfunction describe(e) {\n let ks;\n let data = \"\";\n switch (e.kind) {\n case exports.Kind.MSG:\n ks = \"MSG\";\n break;\n case exports.Kind.OK:\n ks = \"OK\";\n break;\n case exports.Kind.ERR:\n ks = \"ERR\";\n data = encoders_1.TD.decode(e.data);\n break;\n case exports.Kind.PING:\n ks = \"PING\";\n break;\n case exports.Kind.PONG:\n ks = \"PONG\";\n break;\n case exports.Kind.INFO:\n ks = \"INFO\";\n data = encoders_1.TD.decode(e.data);\n }\n return `${ks}: ${data}`;\n}\nfunction newMsgArg() {\n const ma = {};\n ma.sid = -1;\n ma.hdr = -1;\n ma.size = -1;\n return ma;\n}\nconst ASCII_0 = 48;\nconst ASCII_9 = 57;\n// This is an almost verbatim port of the Go NATS parser\n// https://github.com/nats-io/nats.go/blob/master/parser.go\nclass Parser {\n dispatcher;\n state;\n as;\n drop;\n hdr;\n ma;\n argBuf;\n msgBuf;\n constructor(dispatcher) {\n this.dispatcher = dispatcher;\n this.state = exports.State.OP_START;\n this.as = 0;\n this.drop = 0;\n this.hdr = 0;\n }\n parse(buf) {\n let i;\n for (i = 0; i < buf.length; i++) {\n const b = buf[i];\n switch (this.state) {\n case exports.State.OP_START:\n switch (b) {\n case exports.cc.M:\n case exports.cc.m:\n this.state = exports.State.OP_M;\n this.hdr = -1;\n this.ma = newMsgArg();\n break;\n case exports.cc.H:\n case exports.cc.h:\n this.state = exports.State.OP_H;\n this.hdr = 0;\n this.ma = newMsgArg();\n break;\n case exports.cc.P:\n case exports.cc.p:\n this.state = exports.State.OP_P;\n break;\n case exports.cc.PLUS:\n this.state = exports.State.OP_PLUS;\n break;\n case exports.cc.MINUS:\n this.state = exports.State.OP_MINUS;\n break;\n case exports.cc.I:\n case exports.cc.i:\n this.state = exports.State.OP_I;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_H:\n switch (b) {\n case exports.cc.M:\n case exports.cc.m:\n this.state = exports.State.OP_M;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_M:\n switch (b) {\n case exports.cc.S:\n case exports.cc.s:\n this.state = exports.State.OP_MS;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_MS:\n switch (b) {\n case exports.cc.G:\n case exports.cc.g:\n this.state = exports.State.OP_MSG;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_MSG:\n switch (b) {\n case exports.cc.SPACE:\n case exports.cc.TAB:\n this.state = exports.State.OP_MSG_SPC;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_MSG_SPC:\n switch (b) {\n case exports.cc.SPACE:\n case exports.cc.TAB:\n continue;\n default:\n this.state = exports.State.MSG_ARG;\n this.as = i;\n }\n break;\n case exports.State.MSG_ARG:\n switch (b) {\n case exports.cc.CR:\n this.drop = 1;\n break;\n case exports.cc.NL: {\n const arg = this.argBuf\n ? this.argBuf.bytes()\n : buf.subarray(this.as, i - this.drop);\n this.processMsgArgs(arg);\n this.drop = 0;\n this.as = i + 1;\n this.state = exports.State.MSG_PAYLOAD;\n // jump ahead with the index. If this overruns\n // what is left we fall out and process a split buffer.\n i = this.as + this.ma.size - 1;\n break;\n }\n default:\n if (this.argBuf) {\n this.argBuf.writeByte(b);\n }\n }\n break;\n case exports.State.MSG_PAYLOAD:\n if (this.msgBuf) {\n if (this.msgBuf.length >= this.ma.size) {\n const data = this.msgBuf.bytes({ copy: false });\n this.dispatcher.push({ kind: exports.Kind.MSG, msg: this.ma, data: data });\n this.argBuf = undefined;\n this.msgBuf = undefined;\n this.state = exports.State.MSG_END;\n }\n else {\n let toCopy = this.ma.size - this.msgBuf.length;\n const avail = buf.length - i;\n if (avail < toCopy) {\n toCopy = avail;\n }\n if (toCopy > 0) {\n this.msgBuf.write(buf.subarray(i, i + toCopy));\n i = (i + toCopy) - 1;\n }\n else {\n this.msgBuf.writeByte(b);\n }\n }\n }\n else if (i - this.as >= this.ma.size) {\n this.dispatcher.push({ kind: exports.Kind.MSG, msg: this.ma, data: buf.subarray(this.as, i) });\n this.argBuf = undefined;\n this.msgBuf = undefined;\n this.state = exports.State.MSG_END;\n }\n break;\n case exports.State.MSG_END:\n switch (b) {\n case exports.cc.NL:\n this.drop = 0;\n this.as = i + 1;\n this.state = exports.State.OP_START;\n break;\n default:\n continue;\n }\n break;\n case exports.State.OP_PLUS:\n switch (b) {\n case exports.cc.O:\n case exports.cc.o:\n this.state = exports.State.OP_PLUS_O;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_PLUS_O:\n switch (b) {\n case exports.cc.K:\n case exports.cc.k:\n this.state = exports.State.OP_PLUS_OK;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_PLUS_OK:\n switch (b) {\n case exports.cc.NL:\n this.dispatcher.push({ kind: exports.Kind.OK });\n this.drop = 0;\n this.state = exports.State.OP_START;\n break;\n }\n break;\n case exports.State.OP_MINUS:\n switch (b) {\n case exports.cc.E:\n case exports.cc.e:\n this.state = exports.State.OP_MINUS_E;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_MINUS_E:\n switch (b) {\n case exports.cc.R:\n case exports.cc.r:\n this.state = exports.State.OP_MINUS_ER;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_MINUS_ER:\n switch (b) {\n case exports.cc.R:\n case exports.cc.r:\n this.state = exports.State.OP_MINUS_ERR;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_MINUS_ERR:\n switch (b) {\n case exports.cc.SPACE:\n case exports.cc.TAB:\n this.state = exports.State.OP_MINUS_ERR_SPC;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_MINUS_ERR_SPC:\n switch (b) {\n case exports.cc.SPACE:\n case exports.cc.TAB:\n continue;\n default:\n this.state = exports.State.MINUS_ERR_ARG;\n this.as = i;\n }\n break;\n case exports.State.MINUS_ERR_ARG:\n switch (b) {\n case exports.cc.CR:\n this.drop = 1;\n break;\n case exports.cc.NL: {\n let arg;\n if (this.argBuf) {\n arg = this.argBuf.bytes();\n this.argBuf = undefined;\n }\n else {\n arg = buf.subarray(this.as, i - this.drop);\n }\n this.dispatcher.push({ kind: exports.Kind.ERR, data: arg });\n this.drop = 0;\n this.as = i + 1;\n this.state = exports.State.OP_START;\n break;\n }\n default:\n if (this.argBuf) {\n this.argBuf.write(Uint8Array.of(b));\n }\n }\n break;\n case exports.State.OP_P:\n switch (b) {\n case exports.cc.I:\n case exports.cc.i:\n this.state = exports.State.OP_PI;\n break;\n case exports.cc.O:\n case exports.cc.o:\n this.state = exports.State.OP_PO;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_PO:\n switch (b) {\n case exports.cc.N:\n case exports.cc.n:\n this.state = exports.State.OP_PON;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_PON:\n switch (b) {\n case exports.cc.G:\n case exports.cc.g:\n this.state = exports.State.OP_PONG;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_PONG:\n switch (b) {\n case exports.cc.NL:\n this.dispatcher.push({ kind: exports.Kind.PONG });\n this.drop = 0;\n this.state = exports.State.OP_START;\n break;\n }\n break;\n case exports.State.OP_PI:\n switch (b) {\n case exports.cc.N:\n case exports.cc.n:\n this.state = exports.State.OP_PIN;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_PIN:\n switch (b) {\n case exports.cc.G:\n case exports.cc.g:\n this.state = exports.State.OP_PING;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_PING:\n switch (b) {\n case exports.cc.NL:\n this.dispatcher.push({ kind: exports.Kind.PING });\n this.drop = 0;\n this.state = exports.State.OP_START;\n break;\n }\n break;\n case exports.State.OP_I:\n switch (b) {\n case exports.cc.N:\n case exports.cc.n:\n this.state = exports.State.OP_IN;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_IN:\n switch (b) {\n case exports.cc.F:\n case exports.cc.f:\n this.state = exports.State.OP_INF;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_INF:\n switch (b) {\n case exports.cc.O:\n case exports.cc.o:\n this.state = exports.State.OP_INFO;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_INFO:\n switch (b) {\n case exports.cc.SPACE:\n case exports.cc.TAB:\n this.state = exports.State.OP_INFO_SPC;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case exports.State.OP_INFO_SPC:\n switch (b) {\n case exports.cc.SPACE:\n case exports.cc.TAB:\n continue;\n default:\n this.state = exports.State.INFO_ARG;\n this.as = i;\n }\n break;\n case exports.State.INFO_ARG:\n switch (b) {\n case exports.cc.CR:\n this.drop = 1;\n break;\n case exports.cc.NL: {\n let arg;\n if (this.argBuf) {\n arg = this.argBuf.bytes();\n this.argBuf = undefined;\n }\n else {\n arg = buf.subarray(this.as, i - this.drop);\n }\n this.dispatcher.push({ kind: exports.Kind.INFO, data: arg });\n this.drop = 0;\n this.as = i + 1;\n this.state = exports.State.OP_START;\n break;\n }\n default:\n if (this.argBuf) {\n this.argBuf.writeByte(b);\n }\n }\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n }\n if ((this.state === exports.State.MSG_ARG || this.state === exports.State.MINUS_ERR_ARG ||\n this.state === exports.State.INFO_ARG) && !this.argBuf) {\n this.argBuf = new denobuffer_1.DenoBuffer(buf.subarray(this.as, i - this.drop));\n }\n if (this.state === exports.State.MSG_PAYLOAD && !this.msgBuf) {\n if (!this.argBuf) {\n this.cloneMsgArg();\n }\n this.msgBuf = new denobuffer_1.DenoBuffer(buf.subarray(this.as));\n }\n }\n cloneMsgArg() {\n const s = this.ma.subject.length;\n const r = this.ma.reply ? this.ma.reply.length : 0;\n const buf = new Uint8Array(s + r);\n buf.set(this.ma.subject);\n if (this.ma.reply) {\n buf.set(this.ma.reply, s);\n }\n this.argBuf = new denobuffer_1.DenoBuffer(buf);\n this.ma.subject = buf.subarray(0, s);\n if (this.ma.reply) {\n this.ma.reply = buf.subarray(s);\n }\n }\n processMsgArgs(arg) {\n if (this.hdr >= 0) {\n return this.processHeaderMsgArgs(arg);\n }\n const args = [];\n let start = -1;\n for (let i = 0; i < arg.length; i++) {\n const b = arg[i];\n switch (b) {\n case exports.cc.SPACE:\n case exports.cc.TAB:\n case exports.cc.CR:\n case exports.cc.NL:\n if (start >= 0) {\n args.push(arg.subarray(start, i));\n start = -1;\n }\n break;\n default:\n if (start < 0) {\n start = i;\n }\n }\n }\n if (start >= 0) {\n args.push(arg.subarray(start));\n }\n switch (args.length) {\n case 3:\n this.ma.subject = args[0];\n this.ma.sid = this.protoParseInt(args[1]);\n this.ma.reply = undefined;\n this.ma.size = this.protoParseInt(args[2]);\n break;\n case 4:\n this.ma.subject = args[0];\n this.ma.sid = this.protoParseInt(args[1]);\n this.ma.reply = args[2];\n this.ma.size = this.protoParseInt(args[3]);\n break;\n default:\n throw this.fail(arg, \"processMsgArgs Parse Error\");\n }\n if (this.ma.sid < 0) {\n throw this.fail(arg, \"processMsgArgs Bad or Missing Sid Error\");\n }\n if (this.ma.size < 0) {\n throw this.fail(arg, \"processMsgArgs Bad or Missing Size Error\");\n }\n }\n fail(data, label = \"\") {\n if (!label) {\n label = `parse error [${this.state}]`;\n }\n else {\n label = `${label} [${this.state}]`;\n }\n return new Error(`${label}: ${encoders_1.TD.decode(data)}`);\n }\n processHeaderMsgArgs(arg) {\n const args = [];\n let start = -1;\n for (let i = 0; i < arg.length; i++) {\n const b = arg[i];\n switch (b) {\n case exports.cc.SPACE:\n case exports.cc.TAB:\n case exports.cc.CR:\n case exports.cc.NL:\n if (start >= 0) {\n args.push(arg.subarray(start, i));\n start = -1;\n }\n break;\n default:\n if (start < 0) {\n start = i;\n }\n }\n }\n if (start >= 0) {\n args.push(arg.subarray(start));\n }\n switch (args.length) {\n case 4:\n this.ma.subject = args[0];\n this.ma.sid = this.protoParseInt(args[1]);\n this.ma.reply = undefined;\n this.ma.hdr = this.protoParseInt(args[2]);\n this.ma.size = this.protoParseInt(args[3]);\n break;\n case 5:\n this.ma.subject = args[0];\n this.ma.sid = this.protoParseInt(args[1]);\n this.ma.reply = args[2];\n this.ma.hdr = this.protoParseInt(args[3]);\n this.ma.size = this.protoParseInt(args[4]);\n break;\n default:\n throw this.fail(arg, \"processHeaderMsgArgs Parse Error\");\n }\n if (this.ma.sid < 0) {\n throw this.fail(arg, \"processHeaderMsgArgs Bad or Missing Sid Error\");\n }\n if (this.ma.hdr < 0 || this.ma.hdr > this.ma.size) {\n throw this.fail(arg, \"processHeaderMsgArgs Bad or Missing Header Size Error\");\n }\n if (this.ma.size < 0) {\n throw this.fail(arg, \"processHeaderMsgArgs Bad or Missing Size Error\");\n }\n }\n protoParseInt(a) {\n if (a.length === 0) {\n return -1;\n }\n let n = 0;\n for (let i = 0; i < a.length; i++) {\n if (a[i] < ASCII_0 || a[i] > ASCII_9) {\n return -1;\n }\n n = n * 10 + (a[i] - ASCII_0);\n }\n return n;\n }\n}\nexports.Parser = Parser;\nexports.State = {\n OP_START: 0,\n OP_PLUS: 1,\n OP_PLUS_O: 2,\n OP_PLUS_OK: 3,\n OP_MINUS: 4,\n OP_MINUS_E: 5,\n OP_MINUS_ER: 6,\n OP_MINUS_ERR: 7,\n OP_MINUS_ERR_SPC: 8,\n MINUS_ERR_ARG: 9,\n OP_M: 10,\n OP_MS: 11,\n OP_MSG: 12,\n OP_MSG_SPC: 13,\n MSG_ARG: 14,\n MSG_PAYLOAD: 15,\n MSG_END: 16,\n OP_H: 17,\n OP_P: 18,\n OP_PI: 19,\n OP_PIN: 20,\n OP_PING: 21,\n OP_PO: 22,\n OP_PON: 23,\n OP_PONG: 24,\n OP_I: 25,\n OP_IN: 26,\n OP_INF: 27,\n OP_INFO: 28,\n OP_INFO_SPC: 29,\n INFO_ARG: 30,\n};\nexports.cc = {\n CR: \"\\r\".charCodeAt(0),\n E: \"E\".charCodeAt(0),\n e: \"e\".charCodeAt(0),\n F: \"F\".charCodeAt(0),\n f: \"f\".charCodeAt(0),\n G: \"G\".charCodeAt(0),\n g: \"g\".charCodeAt(0),\n H: \"H\".charCodeAt(0),\n h: \"h\".charCodeAt(0),\n I: \"I\".charCodeAt(0),\n i: \"i\".charCodeAt(0),\n K: \"K\".charCodeAt(0),\n k: \"k\".charCodeAt(0),\n M: \"M\".charCodeAt(0),\n m: \"m\".charCodeAt(0),\n MINUS: \"-\".charCodeAt(0),\n N: \"N\".charCodeAt(0),\n n: \"n\".charCodeAt(0),\n NL: \"\\n\".charCodeAt(0),\n O: \"O\".charCodeAt(0),\n o: \"o\".charCodeAt(0),\n P: \"P\".charCodeAt(0),\n p: \"p\".charCodeAt(0),\n PLUS: \"+\".charCodeAt(0),\n R: \"R\".charCodeAt(0),\n r: \"r\".charCodeAt(0),\n S: \"S\".charCodeAt(0),\n s: \"s\".charCodeAt(0),\n SPACE: \" \".charCodeAt(0),\n TAB: \"\\t\".charCodeAt(0),\n};\n//# sourceMappingURL=parser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProtocolHandler = exports.Subscriptions = exports.SubscriptionImpl = exports.Connect = exports.INFO = void 0;\n/*\n * Copyright 2018-2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst encoders_1 = require(\"./encoders\");\nconst transport_1 = require(\"./transport\");\nconst util_1 = require(\"./util\");\nconst databuffer_1 = require(\"./databuffer\");\nconst servers_1 = require(\"./servers\");\nconst queued_iterator_1 = require(\"./queued_iterator\");\nconst muxsubscription_1 = require(\"./muxsubscription\");\nconst heartbeats_1 = require(\"./heartbeats\");\nconst parser_1 = require(\"./parser\");\nconst msg_1 = require(\"./msg\");\nconst semver_1 = require(\"./semver\");\nconst options_1 = require(\"./options\");\nconst errors_1 = require(\"./errors\");\nconst FLUSH_THRESHOLD = 1024 * 32;\nexports.INFO = /^INFO\\s+([^\\r\\n]+)\\r\\n/i;\nconst PONG_CMD = (0, encoders_1.encode)(\"PONG\\r\\n\");\nconst PING_CMD = (0, encoders_1.encode)(\"PING\\r\\n\");\nclass Connect {\n echo;\n no_responders;\n protocol;\n verbose;\n pedantic;\n jwt;\n nkey;\n sig;\n user;\n pass;\n auth_token;\n tls_required;\n name;\n lang;\n version;\n headers;\n constructor(transport, opts, nonce) {\n this.protocol = 1;\n this.version = transport.version;\n this.lang = transport.lang;\n this.echo = opts.noEcho ? false : undefined;\n this.verbose = opts.verbose;\n this.pedantic = opts.pedantic;\n this.tls_required = opts.tls ? true : undefined;\n this.name = opts.name;\n const creds = (opts && typeof opts.authenticator === \"function\"\n ? opts.authenticator(nonce)\n : {}) || {};\n (0, util_1.extend)(this, creds);\n }\n}\nexports.Connect = Connect;\nclass SlowNotifier {\n slow;\n cb;\n notified;\n constructor(slow, cb) {\n this.slow = slow;\n this.cb = cb;\n this.notified = false;\n }\n maybeNotify(pending) {\n // if we are below the threshold reset the ability to notify\n if (pending <= this.slow) {\n this.notified = false;\n }\n else {\n if (!this.notified) {\n // crossed the threshold, notify and silence.\n this.cb(pending);\n this.notified = true;\n }\n }\n }\n}\nclass SubscriptionImpl extends queued_iterator_1.QueuedIteratorImpl {\n sid;\n queue;\n draining;\n max;\n subject;\n drained;\n protocol;\n timer;\n info;\n cleanupFn;\n closed;\n requestSubject;\n slow;\n constructor(protocol, subject, opts = {}) {\n super();\n (0, util_1.extend)(this, opts);\n this.protocol = protocol;\n this.subject = subject;\n this.draining = false;\n this.noIterator = typeof opts.callback === \"function\";\n this.closed = (0, util_1.deferred)();\n const asyncTraces = !(protocol.options?.noAsyncTraces || false);\n if (opts.timeout) {\n this.timer = (0, util_1.timeout)(opts.timeout, asyncTraces);\n this.timer\n .then(() => {\n // timer was cancelled\n this.timer = undefined;\n })\n .catch((err) => {\n // timer fired\n this.stop(err);\n if (this.noIterator) {\n this.callback(err, {});\n }\n });\n }\n if (!this.noIterator) {\n // cleanup - they used break or return from the iterator\n // make sure we clean up, if they didn't call unsub\n this.iterClosed.then((err) => {\n this.closed.resolve(err);\n this.unsubscribe();\n });\n }\n }\n setSlowNotificationFn(slow, fn) {\n this.slow = undefined;\n if (fn) {\n if (this.noIterator) {\n throw new Error(\"callbacks don't support slow notifications\");\n }\n this.slow = new SlowNotifier(slow, fn);\n }\n }\n callback(err, msg) {\n this.cancelTimeout();\n err ? this.stop(err) : this.push(msg);\n if (!err && this.slow) {\n this.slow.maybeNotify(this.getPending());\n }\n }\n close(err) {\n if (!this.isClosed()) {\n this.cancelTimeout();\n const fn = () => {\n this.stop();\n if (this.cleanupFn) {\n try {\n this.cleanupFn(this, this.info);\n }\n catch (_err) {\n // ignoring\n }\n }\n this.closed.resolve(err);\n };\n if (this.noIterator) {\n fn();\n }\n else {\n this.push(fn);\n }\n }\n }\n unsubscribe(max) {\n this.protocol.unsubscribe(this, max);\n }\n cancelTimeout() {\n if (this.timer) {\n this.timer.cancel();\n this.timer = undefined;\n }\n }\n drain() {\n if (this.protocol.isClosed()) {\n return Promise.reject(new errors_1.errors.ClosedConnectionError());\n }\n if (this.isClosed()) {\n return Promise.reject(new errors_1.errors.InvalidOperationError(\"subscription is already closed\"));\n }\n if (!this.drained) {\n this.draining = true;\n this.protocol.unsub(this);\n this.drained = this.protocol.flush((0, util_1.deferred)())\n .then(() => {\n this.protocol.subscriptions.cancel(this);\n })\n .catch(() => {\n this.protocol.subscriptions.cancel(this);\n });\n }\n return this.drained;\n }\n isDraining() {\n return this.draining;\n }\n isClosed() {\n return this.done;\n }\n getSubject() {\n return this.subject;\n }\n getMax() {\n return this.max;\n }\n getID() {\n return this.sid;\n }\n}\nexports.SubscriptionImpl = SubscriptionImpl;\nclass Subscriptions {\n mux;\n subs;\n sidCounter;\n constructor() {\n this.sidCounter = 0;\n this.mux = null;\n this.subs = new Map();\n }\n size() {\n return this.subs.size;\n }\n add(s) {\n this.sidCounter++;\n s.sid = this.sidCounter;\n this.subs.set(s.sid, s);\n return s;\n }\n setMux(s) {\n this.mux = s;\n return s;\n }\n getMux() {\n return this.mux;\n }\n get(sid) {\n return this.subs.get(sid);\n }\n resub(s) {\n this.sidCounter++;\n this.subs.delete(s.sid);\n s.sid = this.sidCounter;\n this.subs.set(s.sid, s);\n return s;\n }\n all() {\n return Array.from(this.subs.values());\n }\n cancel(s) {\n if (s) {\n s.close();\n this.subs.delete(s.sid);\n }\n }\n handleError(err) {\n const subs = this.all();\n let sub;\n if (err.operation === \"subscription\") {\n sub = subs.find((s) => {\n return s.subject === err.subject && s.queue === err.queue;\n });\n }\n else if (err.operation === \"publish\") {\n // we have a no mux subscription\n sub = subs.find((s) => {\n return s.requestSubject === err.subject;\n });\n }\n if (sub) {\n sub.callback(err, {});\n sub.close(err);\n this.subs.delete(sub.sid);\n return sub !== this.mux;\n }\n return false;\n }\n close() {\n this.subs.forEach((sub) => {\n sub.close();\n });\n }\n}\nexports.Subscriptions = Subscriptions;\nclass ProtocolHandler {\n connected;\n connectedOnce;\n infoReceived;\n info;\n muxSubscriptions;\n options;\n outbound;\n pongs;\n subscriptions;\n transport;\n noMorePublishing;\n connectError;\n publisher;\n _closed;\n closed;\n listeners;\n heartbeats;\n parser;\n outMsgs;\n inMsgs;\n outBytes;\n inBytes;\n pendingLimit;\n lastError;\n abortReconnect;\n whyClosed;\n servers;\n server;\n features;\n connectPromise;\n dialDelay;\n raceTimer;\n constructor(options, publisher) {\n this._closed = false;\n this.connected = false;\n this.connectedOnce = false;\n this.infoReceived = false;\n this.noMorePublishing = false;\n this.abortReconnect = false;\n this.listeners = [];\n this.pendingLimit = FLUSH_THRESHOLD;\n this.outMsgs = 0;\n this.inMsgs = 0;\n this.outBytes = 0;\n this.inBytes = 0;\n this.options = options;\n this.publisher = publisher;\n this.subscriptions = new Subscriptions();\n this.muxSubscriptions = new muxsubscription_1.MuxSubscription();\n this.outbound = new databuffer_1.DataBuffer();\n this.pongs = [];\n this.whyClosed = \"\";\n //@ts-ignore: options.pendingLimit is hidden\n this.pendingLimit = options.pendingLimit || this.pendingLimit;\n this.features = new semver_1.Features({ major: 0, minor: 0, micro: 0 });\n this.connectPromise = null;\n this.dialDelay = null;\n const servers = typeof options.servers === \"string\"\n ? [options.servers]\n : options.servers;\n this.servers = new servers_1.Servers(servers, {\n randomize: !options.noRandomize,\n });\n this.closed = (0, util_1.deferred)();\n this.parser = new parser_1.Parser(this);\n this.heartbeats = new heartbeats_1.Heartbeat(this, this.options.pingInterval || options_1.DEFAULT_PING_INTERVAL, this.options.maxPingOut || options_1.DEFAULT_MAX_PING_OUT);\n }\n resetOutbound() {\n this.outbound.reset();\n const pongs = this.pongs;\n this.pongs = [];\n // reject the pongs - the disconnect from here shouldn't have a trace\n // because that confuses API consumers\n const err = new errors_1.errors.RequestError(\"connection disconnected\");\n err.stack = \"\";\n pongs.forEach((p) => {\n p.reject(err);\n });\n this.parser = new parser_1.Parser(this);\n this.infoReceived = false;\n }\n dispatchStatus(status) {\n this.listeners.forEach((q) => {\n q.push(status);\n });\n }\n prepare() {\n if (this.transport) {\n this.transport.discard();\n }\n this.info = undefined;\n this.resetOutbound();\n const pong = (0, util_1.deferred)();\n pong.catch(() => {\n // provide at least one catch - as pong rejection can happen before it is expected\n });\n this.pongs.unshift(pong);\n this.connectError = (err) => {\n pong.reject(err);\n };\n this.transport = (0, transport_1.newTransport)();\n this.transport.closed()\n .then(async (_err) => {\n this.connected = false;\n if (!this.isClosed()) {\n // if the transport gave an error use that, otherwise\n // we may have received a protocol error\n await this.disconnected(this.transport.closeError || this.lastError);\n return;\n }\n });\n return pong;\n }\n disconnect() {\n this.dispatchStatus({ type: \"staleConnection\" });\n this.transport.disconnect();\n }\n reconnect() {\n if (this.connected) {\n this.dispatchStatus({\n type: \"forceReconnect\",\n });\n this.transport.disconnect();\n }\n return Promise.resolve();\n }\n async disconnected(err) {\n this.dispatchStatus({\n type: \"disconnect\",\n server: this.servers.getCurrentServer().toString(),\n });\n if (this.options.reconnect) {\n await this.dialLoop()\n .then(() => {\n this.dispatchStatus({\n type: \"reconnect\",\n server: this.servers.getCurrentServer().toString(),\n });\n // if we are here we reconnected, but we have an authentication\n // that expired, we need to clean it up, otherwise we'll queue up\n // two of these, and the default for the client will be to\n // close, rather than attempt again - possibly they have an\n // authenticator that dynamically updates\n if (this.lastError instanceof errors_1.errors.UserAuthenticationExpiredError) {\n this.lastError = undefined;\n }\n })\n .catch((err) => {\n this.close(err).catch();\n });\n }\n else {\n await this.close(err).catch();\n }\n }\n async dial(srv) {\n const pong = this.prepare();\n try {\n this.raceTimer = (0, util_1.timeout)(this.options.timeout || 20000);\n const cp = this.transport.connect(srv, this.options);\n await Promise.race([cp, this.raceTimer]);\n (async () => {\n try {\n for await (const b of this.transport) {\n this.parser.parse(b);\n }\n }\n catch (err) {\n console.log(\"reader closed\", err);\n }\n })().then();\n }\n catch (err) {\n pong.reject(err);\n }\n try {\n await Promise.race([this.raceTimer, pong]);\n this.raceTimer?.cancel();\n this.connected = true;\n this.connectError = undefined;\n this.sendSubscriptions();\n this.connectedOnce = true;\n this.server.didConnect = true;\n this.server.reconnects = 0;\n this.flushPending();\n this.heartbeats.start();\n }\n catch (err) {\n this.raceTimer?.cancel();\n await this.transport.close(err);\n throw err;\n }\n }\n async _doDial(srv) {\n const { resolve } = this.options;\n const alts = await srv.resolve({\n fn: (0, transport_1.getResolveFn)(),\n debug: this.options.debug,\n randomize: !this.options.noRandomize,\n resolve,\n });\n let lastErr = null;\n for (const a of alts) {\n try {\n lastErr = null;\n this.dispatchStatus({ type: \"reconnecting\" });\n await this.dial(a);\n // if here we connected\n return;\n }\n catch (err) {\n lastErr = err;\n }\n }\n // if we are here, we failed, and we have no additional\n // alternatives for this server\n throw lastErr;\n }\n dialLoop() {\n if (this.connectPromise === null) {\n this.connectPromise = this.dodialLoop();\n this.connectPromise\n .then(() => { })\n .catch(() => { })\n .finally(() => {\n this.connectPromise = null;\n });\n }\n return this.connectPromise;\n }\n async dodialLoop() {\n let lastError;\n while (true) {\n if (this._closed) {\n // if we are disconnected, and close is called, the client\n // still tries to reconnect - to match the reconnect policy\n // in the case of close, want to stop.\n this.servers.clear();\n }\n const wait = this.options.reconnectDelayHandler\n ? this.options.reconnectDelayHandler()\n : options_1.DEFAULT_RECONNECT_TIME_WAIT;\n let maxWait = wait;\n const srv = this.selectServer();\n if (!srv || this.abortReconnect) {\n if (lastError) {\n throw lastError;\n }\n else if (this.lastError) {\n throw this.lastError;\n }\n else {\n throw new errors_1.errors.ConnectionError(\"connection refused\");\n }\n }\n const now = Date.now();\n if (srv.lastConnect === 0 || srv.lastConnect + wait <= now) {\n srv.lastConnect = Date.now();\n try {\n await this._doDial(srv);\n break;\n }\n catch (err) {\n lastError = err;\n if (!this.connectedOnce) {\n if (this.options.waitOnFirstConnect) {\n continue;\n }\n this.servers.removeCurrentServer();\n }\n srv.reconnects++;\n const mra = this.options.maxReconnectAttempts || 0;\n if (mra !== -1 && srv.reconnects >= mra) {\n this.servers.removeCurrentServer();\n }\n }\n }\n else {\n maxWait = Math.min(maxWait, srv.lastConnect + wait - now);\n this.dialDelay = (0, util_1.delay)(maxWait);\n await this.dialDelay;\n }\n }\n }\n static async connect(options, publisher) {\n const h = new ProtocolHandler(options, publisher);\n await h.dialLoop();\n return h;\n }\n static toError(s) {\n let err = errors_1.errors.PermissionViolationError.parse(s);\n if (err) {\n return err;\n }\n err = errors_1.errors.UserAuthenticationExpiredError.parse(s);\n if (err) {\n return err;\n }\n err = errors_1.errors.AuthorizationError.parse(s);\n if (err) {\n return err;\n }\n return new errors_1.errors.ProtocolError(s);\n }\n processMsg(msg, data) {\n this.inMsgs++;\n this.inBytes += data.length;\n if (!this.subscriptions.sidCounter) {\n return;\n }\n const sub = this.subscriptions.get(msg.sid);\n if (!sub) {\n return;\n }\n sub.received += 1;\n if (sub.callback) {\n sub.callback(null, new msg_1.MsgImpl(msg, data, this));\n }\n if (sub.max !== undefined && sub.received >= sub.max) {\n sub.unsubscribe();\n }\n }\n processError(m) {\n let s = (0, encoders_1.decode)(m);\n if (s.startsWith(\"'\") && s.endsWith(\"'\")) {\n s = s.slice(1, s.length - 1);\n }\n const err = ProtocolHandler.toError(s);\n switch (err.constructor) {\n case errors_1.errors.PermissionViolationError: {\n const pe = err;\n const mux = this.subscriptions.getMux();\n const isMuxPermission = mux ? pe.subject === mux.subject : false;\n this.subscriptions.handleError(pe);\n this.muxSubscriptions.handleError(isMuxPermission, pe);\n if (isMuxPermission) {\n // remove the permission - enable it to be recreated\n this.subscriptions.setMux(null);\n }\n }\n }\n this.dispatchStatus({ type: \"error\", error: err });\n this.handleError(err);\n }\n handleError(err) {\n if (err instanceof errors_1.errors.UserAuthenticationExpiredError ||\n err instanceof errors_1.errors.AuthorizationError) {\n this.handleAuthError(err);\n }\n if (!(err instanceof errors_1.errors.PermissionViolationError)) {\n this.lastError = err;\n }\n }\n handleAuthError(err) {\n if ((this.lastError instanceof errors_1.errors.UserAuthenticationExpiredError ||\n this.lastError instanceof errors_1.errors.AuthorizationError) &&\n this.options.ignoreAuthErrorAbort === false) {\n this.abortReconnect = true;\n }\n if (this.connectError) {\n this.connectError(err);\n }\n else {\n this.disconnect();\n }\n }\n processPing() {\n this.transport.send(PONG_CMD);\n }\n processPong() {\n const cb = this.pongs.shift();\n if (cb) {\n cb.resolve();\n }\n }\n processInfo(m) {\n const info = JSON.parse((0, encoders_1.decode)(m));\n this.info = info;\n const updates = this.options && this.options.ignoreClusterUpdates\n ? undefined\n : this.servers.update(info, this.transport.isEncrypted());\n if (!this.infoReceived) {\n this.features.update((0, semver_1.parseSemVer)(info.version));\n this.infoReceived = true;\n if (this.transport.isEncrypted()) {\n this.servers.updateTLSName();\n }\n // send connect\n const { version, lang } = this.transport;\n try {\n const c = new Connect({ version, lang }, this.options, info.nonce);\n if (info.headers) {\n c.headers = true;\n c.no_responders = true;\n }\n const cs = JSON.stringify(c);\n this.transport.send((0, encoders_1.encode)(`CONNECT ${cs}${transport_1.CR_LF}`));\n this.transport.send(PING_CMD);\n }\n catch (err) {\n // if we are dying here, this is likely some an authenticator blowing up\n this.close(err).catch();\n }\n }\n if (updates) {\n const { added, deleted } = updates;\n this.dispatchStatus({ type: \"update\", added, deleted });\n }\n const ldm = info.ldm !== undefined ? info.ldm : false;\n if (ldm) {\n this.dispatchStatus({\n type: \"ldm\",\n server: this.servers.getCurrentServer().toString(),\n });\n }\n }\n push(e) {\n switch (e.kind) {\n case parser_1.Kind.MSG: {\n const { msg, data } = e;\n this.processMsg(msg, data);\n break;\n }\n case parser_1.Kind.OK:\n break;\n case parser_1.Kind.ERR:\n this.processError(e.data);\n break;\n case parser_1.Kind.PING:\n this.processPing();\n break;\n case parser_1.Kind.PONG:\n this.processPong();\n break;\n case parser_1.Kind.INFO:\n this.processInfo(e.data);\n break;\n }\n }\n sendCommand(cmd, ...payloads) {\n const len = this.outbound.length();\n let buf;\n if (typeof cmd === \"string\") {\n buf = (0, encoders_1.encode)(cmd);\n }\n else {\n buf = cmd;\n }\n this.outbound.fill(buf, ...payloads);\n if (len === 0) {\n queueMicrotask(() => {\n this.flushPending();\n });\n }\n else if (this.outbound.size() >= this.pendingLimit) {\n // flush inline\n this.flushPending();\n }\n }\n publish(subject, payload = encoders_1.Empty, options) {\n let data;\n if (payload instanceof Uint8Array) {\n data = payload;\n }\n else if (typeof payload === \"string\") {\n data = encoders_1.TE.encode(payload);\n }\n else {\n throw new TypeError(\"payload types can be strings or Uint8Array\");\n }\n let len = data.length;\n options = options || {};\n options.reply = options.reply || \"\";\n let headers = encoders_1.Empty;\n let hlen = 0;\n if (options.headers) {\n if (this.info && !this.info.headers) {\n errors_1.InvalidArgumentError.format(\"headers\", \"are not available on this server\");\n }\n const hdrs = options.headers;\n headers = hdrs.encode();\n hlen = headers.length;\n len = data.length + hlen;\n }\n if (this.info && len > this.info.max_payload) {\n throw errors_1.InvalidArgumentError.format(\"payload\", \"max_payload size exceeded\");\n }\n this.outBytes += len;\n this.outMsgs++;\n let proto;\n if (options.headers) {\n if (options.reply) {\n proto = `HPUB ${subject} ${options.reply} ${hlen} ${len}\\r\\n`;\n }\n else {\n proto = `HPUB ${subject} ${hlen} ${len}\\r\\n`;\n }\n this.sendCommand(proto, headers, data, transport_1.CRLF);\n }\n else {\n if (options.reply) {\n proto = `PUB ${subject} ${options.reply} ${len}\\r\\n`;\n }\n else {\n proto = `PUB ${subject} ${len}\\r\\n`;\n }\n this.sendCommand(proto, data, transport_1.CRLF);\n }\n }\n request(r) {\n this.initMux();\n this.muxSubscriptions.add(r);\n return r;\n }\n subscribe(s) {\n this.subscriptions.add(s);\n this._subunsub(s);\n return s;\n }\n _sub(s) {\n if (s.queue) {\n this.sendCommand(`SUB ${s.subject} ${s.queue} ${s.sid}\\r\\n`);\n }\n else {\n this.sendCommand(`SUB ${s.subject} ${s.sid}\\r\\n`);\n }\n }\n _subunsub(s) {\n this._sub(s);\n if (s.max) {\n this.unsubscribe(s, s.max);\n }\n return s;\n }\n unsubscribe(s, max) {\n this.unsub(s, max);\n if (s.max === undefined || s.received >= s.max) {\n this.subscriptions.cancel(s);\n }\n }\n unsub(s, max) {\n if (!s || this.isClosed()) {\n return;\n }\n if (max) {\n this.sendCommand(`UNSUB ${s.sid} ${max}\\r\\n`);\n }\n else {\n this.sendCommand(`UNSUB ${s.sid}\\r\\n`);\n }\n s.max = max;\n }\n resub(s, subject) {\n if (!s || this.isClosed()) {\n return;\n }\n this.unsub(s);\n s.subject = subject;\n this.subscriptions.resub(s);\n // we don't auto-unsub here because we don't\n // really know \"processed\"\n this._sub(s);\n }\n flush(p) {\n if (!p) {\n p = (0, util_1.deferred)();\n }\n this.pongs.push(p);\n this.outbound.fill(PING_CMD);\n this.flushPending();\n return p;\n }\n sendSubscriptions() {\n const cmds = [];\n this.subscriptions.all().forEach((s) => {\n const sub = s;\n if (sub.queue) {\n cmds.push(`SUB ${sub.subject} ${sub.queue} ${sub.sid}${transport_1.CR_LF}`);\n }\n else {\n cmds.push(`SUB ${sub.subject} ${sub.sid}${transport_1.CR_LF}`);\n }\n });\n if (cmds.length) {\n this.transport.send((0, encoders_1.encode)(cmds.join(\"\")));\n }\n }\n async close(err) {\n if (this._closed) {\n return;\n }\n this.whyClosed = new Error(\"close trace\").stack || \"\";\n this.heartbeats.cancel();\n if (this.connectError) {\n this.connectError(err);\n this.connectError = undefined;\n }\n this.muxSubscriptions.close();\n this.subscriptions.close();\n const proms = [];\n for (let i = 0; i < this.listeners.length; i++) {\n const qi = this.listeners[i];\n if (qi) {\n qi.stop();\n proms.push(qi.iterClosed);\n }\n }\n if (proms.length) {\n await Promise.all(proms);\n }\n this._closed = true;\n await this.transport.close(err);\n this.raceTimer?.cancel();\n this.dialDelay?.cancel();\n this.closed.resolve(err);\n }\n isClosed() {\n return this._closed;\n }\n async drain() {\n const subs = this.subscriptions.all();\n const promises = [];\n subs.forEach((sub) => {\n promises.push(sub.drain());\n });\n try {\n await Promise.allSettled(promises);\n }\n catch {\n // nothing we can do here\n }\n finally {\n this.noMorePublishing = true;\n await this.flush();\n }\n return this.close();\n }\n flushPending() {\n if (!this.infoReceived || !this.connected) {\n return;\n }\n if (this.outbound.size()) {\n const d = this.outbound.drain();\n this.transport.send(d);\n }\n }\n initMux() {\n const mux = this.subscriptions.getMux();\n if (!mux) {\n const inbox = this.muxSubscriptions.init(this.options.inboxPrefix);\n // dot is already part of mux\n const sub = new SubscriptionImpl(this, `${inbox}*`);\n sub.callback = this.muxSubscriptions.dispatcher();\n this.subscriptions.setMux(sub);\n this.subscribe(sub);\n }\n }\n selectServer() {\n const server = this.servers.selectServer();\n if (server === undefined) {\n return undefined;\n }\n // Place in client context.\n this.server = server;\n return this.server;\n }\n getServer() {\n return this.server;\n }\n}\nexports.ProtocolHandler = ProtocolHandler;\n//# sourceMappingURL=protocol.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueuedIteratorImpl = void 0;\nconst util_1 = require(\"./util\");\nconst errors_1 = require(\"./errors\");\nclass QueuedIteratorImpl {\n inflight;\n processed;\n // this is updated by the protocol\n received;\n noIterator;\n iterClosed;\n done;\n signal;\n yields;\n filtered;\n pendingFiltered;\n ctx;\n _data; //data is for use by extenders in any way they like\n err;\n time;\n profile;\n yielding;\n didBreak;\n constructor() {\n this.inflight = 0;\n this.filtered = 0;\n this.pendingFiltered = 0;\n this.processed = 0;\n this.received = 0;\n this.noIterator = false;\n this.done = false;\n this.signal = (0, util_1.deferred)();\n this.yields = [];\n this.iterClosed = (0, util_1.deferred)();\n this.time = 0;\n this.yielding = false;\n this.didBreak = false;\n this.profile = false;\n }\n [Symbol.asyncIterator]() {\n return this.iterate();\n }\n push(v) {\n if (this.done) {\n return;\n }\n // if they `break` from a `for await`, any signaling that is pushed via\n // a function is not handled this can prevent closed promises from\n // resolving downstream.\n if (this.didBreak) {\n if (typeof v === \"function\") {\n const cb = v;\n try {\n cb();\n }\n catch (_) {\n // ignored\n }\n }\n return;\n }\n if (typeof v === \"function\") {\n this.pendingFiltered++;\n }\n this.yields.push(v);\n this.signal.resolve();\n }\n async *iterate() {\n if (this.noIterator) {\n throw new errors_1.InvalidOperationError(\"iterator cannot be used when a callback is registered\");\n }\n if (this.yielding) {\n throw new errors_1.InvalidOperationError(\"iterator is already yielding\");\n }\n this.yielding = true;\n try {\n while (true) {\n if (this.yields.length === 0) {\n await this.signal;\n }\n if (this.err) {\n throw this.err;\n }\n const yields = this.yields;\n this.inflight = yields.length;\n this.yields = [];\n for (let i = 0; i < yields.length; i++) {\n if (typeof yields[i] === \"function\") {\n this.pendingFiltered--;\n const fn = yields[i];\n try {\n fn();\n }\n catch (err) {\n // failed on the invocation - fail the iterator\n // so they know to fix the callback\n throw err;\n }\n // fn could have also set an error\n if (this.err) {\n throw this.err;\n }\n continue;\n }\n this.processed++;\n this.inflight--;\n const start = this.profile ? Date.now() : 0;\n yield yields[i];\n this.time = this.profile ? Date.now() - start : 0;\n }\n // yielding could have paused and microtask\n // could have added messages. Prevent allocations\n // if possible\n if (this.done) {\n break;\n }\n else if (this.yields.length === 0) {\n yields.length = 0;\n this.yields = yields;\n this.signal = (0, util_1.deferred)();\n }\n }\n }\n finally {\n // the iterator used break/return\n this.didBreak = true;\n this.stop();\n }\n }\n stop(err) {\n if (this.done) {\n return;\n }\n this.err = err;\n this.done = true;\n this.signal.resolve();\n this.iterClosed.resolve(err);\n }\n getProcessed() {\n return this.noIterator ? this.received : this.processed;\n }\n getPending() {\n return this.yields.length + this.inflight - this.pendingFiltered;\n }\n getReceived() {\n return this.received - this.filtered;\n }\n}\nexports.QueuedIteratorImpl = QueuedIteratorImpl;\n//# sourceMappingURL=queued_iterator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequestOne = exports.RequestMany = exports.BaseRequest = void 0;\nconst util_1 = require(\"./util\");\nconst nuid_1 = require(\"./nuid\");\nconst errors_1 = require(\"./errors\");\nclass BaseRequest {\n token;\n received;\n ctx;\n requestSubject;\n mux;\n constructor(mux, requestSubject, asyncTraces = true) {\n this.mux = mux;\n this.requestSubject = requestSubject;\n this.received = 0;\n this.token = nuid_1.nuid.next();\n if (asyncTraces) {\n this.ctx = new errors_1.RequestError();\n }\n }\n}\nexports.BaseRequest = BaseRequest;\n/**\n * Request expects multiple message response\n * the request ends when the timer expires,\n * an error arrives or an expected count of messages\n * arrives, end is signaled by a null message\n */\nclass RequestMany extends BaseRequest {\n callback;\n done;\n timer;\n max;\n opts;\n constructor(mux, requestSubject, opts = { maxWait: 1000 }) {\n super(mux, requestSubject);\n this.opts = opts;\n if (typeof this.opts.callback !== \"function\") {\n throw new TypeError(\"callback must be a function\");\n }\n this.callback = this.opts.callback;\n this.max = typeof opts.maxMessages === \"number\" && opts.maxMessages > 0\n ? opts.maxMessages\n : -1;\n this.done = (0, util_1.deferred)();\n this.done.then(() => {\n this.callback(null, null);\n });\n // @ts-ignore: node is not a number\n this.timer = setTimeout(() => {\n this.cancel();\n }, opts.maxWait);\n }\n cancel(err) {\n if (err) {\n this.callback(err, null);\n }\n clearTimeout(this.timer);\n this.mux.cancel(this);\n this.done.resolve();\n }\n resolver(err, msg) {\n if (err) {\n if (this.ctx) {\n err.stack += `\\n\\n${this.ctx.stack}`;\n }\n this.cancel(err);\n }\n else {\n this.callback(null, msg);\n if (this.opts.strategy === \"count\") {\n this.max--;\n if (this.max === 0) {\n this.cancel();\n }\n }\n if (this.opts.strategy === \"stall\") {\n clearTimeout(this.timer);\n // @ts-ignore: node is not a number\n this.timer = setTimeout(() => {\n this.cancel();\n }, this.opts.stall || 300);\n }\n if (this.opts.strategy === \"sentinel\") {\n if (msg && msg.data.length === 0) {\n this.cancel();\n }\n }\n }\n }\n}\nexports.RequestMany = RequestMany;\nclass RequestOne extends BaseRequest {\n deferred;\n timer;\n constructor(mux, requestSubject, opts = { timeout: 1000 }, asyncTraces = true) {\n super(mux, requestSubject, asyncTraces);\n // extend(this, opts);\n this.deferred = (0, util_1.deferred)();\n this.timer = (0, util_1.timeout)(opts.timeout, asyncTraces);\n }\n resolver(err, msg) {\n if (this.timer) {\n this.timer.cancel();\n }\n if (err) {\n // we have proper stack on timeout\n if (!(err instanceof errors_1.TimeoutError)) {\n if (this.ctx) {\n this.ctx.message = err.message;\n this.ctx.cause = err;\n err = this.ctx;\n }\n else {\n err = new errors_1.errors.RequestError(err.message, { cause: err });\n }\n }\n this.deferred.reject(err);\n }\n else {\n this.deferred.resolve(msg);\n }\n this.cancel();\n }\n cancel(err) {\n if (this.timer) {\n this.timer.cancel();\n }\n this.mux.cancel(this);\n this.deferred.reject(err ? err : new errors_1.RequestError(\"cancelled\"));\n }\n}\nexports.RequestOne = RequestOne;\n//# sourceMappingURL=request.js.map","\"use strict\";\n/*\n * Copyright 2022-2023 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Features = exports.Feature = void 0;\nexports.parseSemVer = parseSemVer;\nexports.compare = compare;\nfunction parseSemVer(s = \"\") {\n const m = s.match(/(\\d+).(\\d+).(\\d+)/);\n if (m) {\n return {\n major: parseInt(m[1]),\n minor: parseInt(m[2]),\n micro: parseInt(m[3]),\n };\n }\n throw new Error(`'${s}' is not a semver value`);\n}\nfunction compare(a, b) {\n if (a.major < b.major)\n return -1;\n if (a.major > b.major)\n return 1;\n if (a.minor < b.minor)\n return -1;\n if (a.minor > b.minor)\n return 1;\n if (a.micro < b.micro)\n return -1;\n if (a.micro > b.micro)\n return 1;\n return 0;\n}\nexports.Feature = {\n JS_KV: \"js_kv\",\n JS_OBJECTSTORE: \"js_objectstore\",\n JS_PULL_MAX_BYTES: \"js_pull_max_bytes\",\n JS_NEW_CONSUMER_CREATE_API: \"js_new_consumer_create\",\n JS_ALLOW_DIRECT: \"js_allow_direct\",\n JS_MULTIPLE_CONSUMER_FILTER: \"js_multiple_consumer_filter\",\n JS_SIMPLIFICATION: \"js_simplification\",\n JS_STREAM_CONSUMER_METADATA: \"js_stream_consumer_metadata\",\n JS_CONSUMER_FILTER_SUBJECTS: \"js_consumer_filter_subjects\",\n JS_STREAM_FIRST_SEQ: \"js_stream_first_seq\",\n JS_STREAM_SUBJECT_TRANSFORM: \"js_stream_subject_transform\",\n JS_STREAM_SOURCE_SUBJECT_TRANSFORM: \"js_stream_source_subject_transform\",\n JS_STREAM_COMPRESSION: \"js_stream_compression\",\n JS_DEFAULT_CONSUMER_LIMITS: \"js_default_consumer_limits\",\n JS_BATCH_DIRECT_GET: \"js_batch_direct_get\",\n JS_PRIORITY_GROUPS: \"js_priority_groups\",\n};\nclass Features {\n server;\n features;\n disabled;\n constructor(v) {\n this.features = new Map();\n this.disabled = [];\n this.update(v);\n }\n /**\n * Removes all disabled entries\n */\n resetDisabled() {\n this.disabled.length = 0;\n this.update(this.server);\n }\n /**\n * Disables a particular feature.\n * @param f\n */\n disable(f) {\n this.disabled.push(f);\n this.update(this.server);\n }\n isDisabled(f) {\n return this.disabled.indexOf(f) !== -1;\n }\n update(v) {\n if (typeof v === \"string\") {\n v = parseSemVer(v);\n }\n this.server = v;\n this.set(exports.Feature.JS_KV, \"2.6.2\");\n this.set(exports.Feature.JS_OBJECTSTORE, \"2.6.3\");\n this.set(exports.Feature.JS_PULL_MAX_BYTES, \"2.8.3\");\n this.set(exports.Feature.JS_NEW_CONSUMER_CREATE_API, \"2.9.0\");\n this.set(exports.Feature.JS_ALLOW_DIRECT, \"2.9.0\");\n this.set(exports.Feature.JS_MULTIPLE_CONSUMER_FILTER, \"2.10.0\");\n this.set(exports.Feature.JS_SIMPLIFICATION, \"2.9.4\");\n this.set(exports.Feature.JS_STREAM_CONSUMER_METADATA, \"2.10.0\");\n this.set(exports.Feature.JS_CONSUMER_FILTER_SUBJECTS, \"2.10.0\");\n this.set(exports.Feature.JS_STREAM_FIRST_SEQ, \"2.10.0\");\n this.set(exports.Feature.JS_STREAM_SUBJECT_TRANSFORM, \"2.10.0\");\n this.set(exports.Feature.JS_STREAM_SOURCE_SUBJECT_TRANSFORM, \"2.10.0\");\n this.set(exports.Feature.JS_STREAM_COMPRESSION, \"2.10.0\");\n this.set(exports.Feature.JS_DEFAULT_CONSUMER_LIMITS, \"2.10.0\");\n this.set(exports.Feature.JS_BATCH_DIRECT_GET, \"2.11.0\");\n this.set(exports.Feature.JS_PRIORITY_GROUPS, \"2.11.0\");\n this.disabled.forEach((f) => {\n this.features.delete(f);\n });\n }\n /**\n * Register a feature that requires a particular server version.\n * @param f\n * @param requires\n */\n set(f, requires) {\n this.features.set(f, {\n min: requires,\n ok: compare(this.server, parseSemVer(requires)) >= 0,\n });\n }\n /**\n * Returns whether the feature is available and the min server\n * version that supports it.\n * @param f\n */\n get(f) {\n return this.features.get(f) || { min: \"unknown\", ok: false };\n }\n /**\n * Returns true if the feature is supported\n * @param f\n */\n supports(f) {\n return this.get(f)?.ok || false;\n }\n /**\n * Returns true if the server is at least the specified version\n * @param v\n */\n require(v) {\n if (typeof v === \"string\") {\n v = parseSemVer(v);\n }\n return compare(this.server, v) >= 0;\n }\n}\nexports.Features = Features;\n//# sourceMappingURL=semver.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Servers = exports.ServerImpl = void 0;\nexports.isIPV4OrHostname = isIPV4OrHostname;\nexports.hostPort = hostPort;\n/*\n * Copyright 2018-2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst transport_1 = require(\"./transport\");\nconst util_1 = require(\"./util\");\nconst ipparser_1 = require(\"./ipparser\");\nconst core_1 = require(\"./core\");\nfunction isIPV4OrHostname(hp) {\n // in the wild seeing IPv4s as IPv6s\n // ::ffff:35.234.43.228 which incorrectly get mapped to IPv4 unless\n // we add this test first\n if (hp.indexOf(\"[\") !== -1 || hp.indexOf(\"::\") !== -1) {\n return false;\n }\n if (hp.indexOf(\".\") !== -1) {\n return true;\n }\n // if we have a plain hostname or host:port\n if (hp.split(\":\").length <= 2) {\n return true;\n }\n return false;\n}\nfunction isIPV6(hp) {\n return !isIPV4OrHostname(hp);\n}\nfunction filterIpv6MappedToIpv4(hp) {\n const prefix = \"::FFFF:\";\n const idx = hp.toUpperCase().indexOf(prefix);\n if (idx !== -1 && hp.indexOf(\".\") !== -1) {\n // we have something like: ::FFFF:127.0.0.1 or [::FFFF:127.0.0.1]:4222\n let ip = hp.substring(idx + prefix.length);\n ip = ip.replace(\"[\", \"\");\n return ip.replace(\"]\", \"\");\n }\n return hp;\n}\nfunction hostPort(u) {\n u = u.trim();\n // remove any protocol that may have been provided\n if (u.match(/^(.*:\\/\\/)(.*)/m)) {\n u = u.replace(/^(.*:\\/\\/)(.*)/gm, \"$2\");\n }\n // in web environments, URL may not be a living standard\n // that means that protocols other than HTTP/S are not\n // parsable correctly.\n // the third complication is that we may have been given\n // an IPv6 or worse IPv6 mapping an Ipv4\n u = filterIpv6MappedToIpv4(u);\n // we only wrap cases where they gave us a plain ipv6\n // and we are not already bracketed\n if (isIPV6(u) && u.indexOf(\"[\") === -1) {\n u = `[${u}]`;\n }\n // if we have ipv6, we expect port after ']:' otherwise after ':'\n const op = isIPV6(u) ? u.match(/(]:)(\\d+)/) : u.match(/(:)(\\d+)/);\n const port = op && op.length === 3 && op[1] && op[2]\n ? parseInt(op[2])\n : core_1.DEFAULT_PORT;\n // the next complication is that new URL() may\n // eat ports which match the protocol - so for example\n // port 80 may be eliminated - so we flip the protocol\n // so that it always yields a value\n const protocol = port === 80 ? \"https\" : \"http\";\n const url = new URL(`${protocol}://${u}`);\n url.port = `${port}`;\n let hostname = url.hostname;\n // if we are bracketed, we need to rip it out\n if (hostname.charAt(0) === \"[\") {\n hostname = hostname.substring(1, hostname.length - 1);\n }\n const listen = url.host;\n return { listen, hostname, port };\n}\n/**\n * @hidden\n */\nclass ServerImpl {\n src;\n listen;\n hostname;\n port;\n didConnect;\n reconnects;\n lastConnect;\n gossiped;\n tlsName;\n resolves;\n constructor(u, gossiped = false) {\n this.src = u;\n this.tlsName = \"\";\n const v = hostPort(u);\n this.listen = v.listen;\n this.hostname = v.hostname;\n this.port = v.port;\n this.didConnect = false;\n this.reconnects = 0;\n this.lastConnect = 0;\n this.gossiped = gossiped;\n }\n toString() {\n return this.listen;\n }\n async resolve(opts) {\n if (!opts.fn || opts.resolve === false) {\n // we cannot resolve - transport doesn't support it\n // or user opted out\n // don't add - to resolves or we get a circ reference\n return [this];\n }\n const buf = [];\n if ((0, ipparser_1.isIP)(this.hostname)) {\n // don't add - to resolves or we get a circ reference\n return [this];\n }\n else {\n // resolve the hostname to ips\n const ips = await opts.fn(this.hostname);\n if (opts.debug) {\n console.log(`resolve ${this.hostname} = ${ips.join(\",\")}`);\n }\n for (const ip of ips) {\n // letting URL handle the details of representing IPV6 ip with a port, etc\n // careful to make sure the protocol doesn't line with standard ports or they\n // get swallowed\n const proto = this.port === 80 ? \"https\" : \"http\";\n // ipv6 won't be bracketed here, because it came from resolve\n const url = new URL(`${proto}://${isIPV6(ip) ? \"[\" + ip + \"]\" : ip}`);\n url.port = `${this.port}`;\n const ss = new ServerImpl(url.host, false);\n ss.tlsName = this.hostname;\n buf.push(ss);\n }\n }\n if (opts.randomize) {\n (0, util_1.shuffle)(buf);\n }\n this.resolves = buf;\n return buf;\n }\n}\nexports.ServerImpl = ServerImpl;\n/**\n * @hidden\n */\nclass Servers {\n firstSelect;\n servers;\n currentServer;\n tlsName;\n randomize;\n constructor(listens = [], opts = {}) {\n this.firstSelect = true;\n this.servers = [];\n this.tlsName = \"\";\n this.randomize = opts.randomize || false;\n const urlParseFn = (0, transport_1.getUrlParseFn)();\n if (listens) {\n listens.forEach((hp) => {\n hp = urlParseFn ? urlParseFn(hp) : hp;\n this.servers.push(new ServerImpl(hp));\n });\n if (this.randomize) {\n this.servers = (0, util_1.shuffle)(this.servers);\n }\n }\n if (this.servers.length === 0) {\n this.addServer(`${core_1.DEFAULT_HOST}:${(0, transport_1.defaultPort)()}`, false);\n }\n this.currentServer = this.servers[0];\n }\n clear() {\n this.servers.length = 0;\n }\n updateTLSName() {\n const cs = this.getCurrentServer();\n if (!(0, ipparser_1.isIP)(cs.hostname)) {\n this.tlsName = cs.hostname;\n this.servers.forEach((s) => {\n if (s.gossiped) {\n s.tlsName = this.tlsName;\n }\n });\n }\n }\n getCurrentServer() {\n return this.currentServer;\n }\n addServer(u, implicit = false) {\n const urlParseFn = (0, transport_1.getUrlParseFn)();\n u = urlParseFn ? urlParseFn(u) : u;\n const s = new ServerImpl(u, implicit);\n if ((0, ipparser_1.isIP)(s.hostname)) {\n s.tlsName = this.tlsName;\n }\n this.servers.push(s);\n }\n selectServer() {\n // allow using select without breaking the order of the servers\n if (this.firstSelect) {\n this.firstSelect = false;\n return this.currentServer;\n }\n const t = this.servers.shift();\n if (t) {\n this.servers.push(t);\n this.currentServer = t;\n }\n return t;\n }\n removeCurrentServer() {\n this.removeServer(this.currentServer);\n }\n removeServer(server) {\n if (server) {\n const index = this.servers.indexOf(server);\n this.servers.splice(index, 1);\n }\n }\n length() {\n return this.servers.length;\n }\n next() {\n return this.servers.length ? this.servers[0] : undefined;\n }\n getServers() {\n return this.servers;\n }\n update(info, encrypted) {\n const added = [];\n let deleted = [];\n const urlParseFn = (0, transport_1.getUrlParseFn)();\n const discovered = new Map();\n if (info.connect_urls && info.connect_urls.length > 0) {\n info.connect_urls.forEach((hp) => {\n hp = urlParseFn ? urlParseFn(hp, encrypted) : hp;\n const s = new ServerImpl(hp, true);\n discovered.set(hp, s);\n });\n }\n // remove gossiped servers that are no longer reported\n const toDelete = [];\n this.servers.forEach((s, index) => {\n const u = s.listen;\n if (s.gossiped && this.currentServer.listen !== u &&\n discovered.get(u) === undefined) {\n // server was removed\n toDelete.push(index);\n }\n // remove this entry from reported\n discovered.delete(u);\n });\n // perform the deletion\n toDelete.reverse();\n toDelete.forEach((index) => {\n const removed = this.servers.splice(index, 1);\n deleted = deleted.concat(removed[0].listen);\n });\n // remaining servers are new\n discovered.forEach((v, k) => {\n this.servers.push(v);\n added.push(k);\n });\n return { added, deleted };\n }\n}\nexports.Servers = Servers;\n//# sourceMappingURL=servers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LF = exports.CR = exports.CRLF = exports.CR_LF_LEN = exports.CR_LF = void 0;\nexports.setTransportFactory = setTransportFactory;\nexports.defaultPort = defaultPort;\nexports.getUrlParseFn = getUrlParseFn;\nexports.newTransport = newTransport;\nexports.getResolveFn = getResolveFn;\nexports.protoLen = protoLen;\nexports.extractProtocolMessage = extractProtocolMessage;\n/*\n * Copyright 2020-2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst encoders_1 = require(\"./encoders\");\nconst core_1 = require(\"./core\");\nconst databuffer_1 = require(\"./databuffer\");\nlet transportConfig;\nfunction setTransportFactory(config) {\n transportConfig = config;\n}\nfunction defaultPort() {\n return transportConfig !== undefined &&\n transportConfig.defaultPort !== undefined\n ? transportConfig.defaultPort\n : core_1.DEFAULT_PORT;\n}\nfunction getUrlParseFn() {\n return transportConfig !== undefined && transportConfig.urlParseFn\n ? transportConfig.urlParseFn\n : undefined;\n}\nfunction newTransport() {\n if (!transportConfig || typeof transportConfig.factory !== \"function\") {\n throw new Error(\"transport fn is not set\");\n }\n return transportConfig.factory();\n}\nfunction getResolveFn() {\n return transportConfig !== undefined && transportConfig.dnsResolveFn\n ? transportConfig.dnsResolveFn\n : undefined;\n}\nexports.CR_LF = \"\\r\\n\";\nexports.CR_LF_LEN = exports.CR_LF.length;\nexports.CRLF = databuffer_1.DataBuffer.fromAscii(exports.CR_LF);\nexports.CR = new Uint8Array(exports.CRLF)[0]; // 13\nexports.LF = new Uint8Array(exports.CRLF)[1]; // 10\nfunction protoLen(ba) {\n for (let i = 0; i < ba.length; i++) {\n const n = i + 1;\n if (ba.byteLength > n && ba[i] === exports.CR && ba[n] === exports.LF) {\n return n + 1;\n }\n }\n return 0;\n}\nfunction extractProtocolMessage(a) {\n // protocol messages are ascii, so Uint8Array\n const len = protoLen(a);\n if (len > 0) {\n const ba = new Uint8Array(a);\n const out = ba.slice(0, len);\n return encoders_1.TD.decode(out);\n }\n return \"\";\n}\n//# sourceMappingURL=transport.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Empty = void 0;\nvar encoders_1 = require(\"./encoders\");\nObject.defineProperty(exports, \"Empty\", { enumerable: true, get: function () { return encoders_1.Empty; } });\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SimpleMutex = exports.Perf = void 0;\nexports.extend = extend;\nexports.render = render;\nexports.timeout = timeout;\nexports.delay = delay;\nexports.deadline = deadline;\nexports.deferred = deferred;\nexports.debugDeferred = debugDeferred;\nexports.shuffle = shuffle;\nexports.collect = collect;\nexports.jitter = jitter;\nexports.backoff = backoff;\nexports.nanos = nanos;\nexports.millis = millis;\n/*\n * Copyright 2018-2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// deno-lint-ignore-file no-explicit-any\nconst encoders_1 = require(\"./encoders\");\nconst errors_1 = require(\"./errors\");\nfunction extend(a, ...b) {\n for (let i = 0; i < b.length; i++) {\n const o = b[i];\n Object.keys(o).forEach(function (k) {\n a[k] = o[k];\n });\n }\n return a;\n}\nfunction render(frame) {\n const cr = \"␍\";\n const lf = \"␊\";\n return encoders_1.TD.decode(frame)\n .replace(/\\n/g, lf)\n .replace(/\\r/g, cr);\n}\nfunction timeout(ms, asyncTraces = true) {\n // by generating the stack here to help identify what timed out\n const err = asyncTraces ? new errors_1.TimeoutError() : null;\n let methods;\n let timer;\n const p = new Promise((_resolve, reject) => {\n const cancel = () => {\n if (timer) {\n clearTimeout(timer);\n }\n };\n methods = { cancel };\n // @ts-ignore: node is not a number\n timer = setTimeout(() => {\n if (err === null) {\n reject(new errors_1.TimeoutError());\n }\n else {\n reject(err);\n }\n }, ms);\n });\n // noinspection JSUnusedAssignment\n return Object.assign(p, methods);\n}\nfunction delay(ms = 0) {\n let methods;\n const p = new Promise((resolve) => {\n const timer = setTimeout(() => {\n resolve();\n }, ms);\n const cancel = () => {\n if (timer) {\n clearTimeout(timer);\n resolve();\n }\n };\n methods = { cancel };\n });\n return Object.assign(p, methods);\n}\nasync function deadline(p, millis = 1000) {\n const d = deferred();\n const timer = setTimeout(() => {\n d.reject(new errors_1.TimeoutError());\n }, millis);\n try {\n return await Promise.race([p, d]);\n }\n finally {\n clearTimeout(timer);\n }\n}\n/**\n * Returns a Promise that has a resolve/reject methods that can\n * be used to resolve and defer the Deferred.\n */\nfunction deferred() {\n let methods = {};\n const p = new Promise((resolve, reject) => {\n methods = { resolve, reject };\n });\n return Object.assign(p, methods);\n}\nfunction debugDeferred() {\n let methods = {};\n const p = new Promise((resolve, reject) => {\n methods = {\n resolve: (v) => {\n console.trace(\"resolve\", v);\n resolve(v);\n },\n reject: (err) => {\n console.trace(\"reject\");\n reject(err);\n },\n };\n });\n return Object.assign(p, methods);\n}\nfunction shuffle(a) {\n for (let i = a.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [a[i], a[j]] = [a[j], a[i]];\n }\n return a;\n}\nasync function collect(iter) {\n const buf = [];\n for await (const v of iter) {\n buf.push(v);\n }\n return buf;\n}\nclass Perf {\n timers;\n measures;\n constructor() {\n this.timers = new Map();\n this.measures = new Map();\n }\n mark(key) {\n this.timers.set(key, performance.now());\n }\n measure(key, startKey, endKey) {\n const s = this.timers.get(startKey);\n if (s === undefined) {\n throw new Error(`${startKey} is not defined`);\n }\n const e = this.timers.get(endKey);\n if (e === undefined) {\n throw new Error(`${endKey} is not defined`);\n }\n this.measures.set(key, e - s);\n }\n getEntries() {\n const values = [];\n this.measures.forEach((v, k) => {\n values.push({ name: k, duration: v });\n });\n return values;\n }\n}\nexports.Perf = Perf;\nclass SimpleMutex {\n max;\n current;\n waiting;\n /**\n * @param max number of concurrent operations\n */\n constructor(max = 1) {\n this.max = max;\n this.current = 0;\n this.waiting = [];\n }\n /**\n * Returns a promise that resolves when the mutex is acquired\n */\n lock() {\n // increment the count\n this.current++;\n // if we have runners, resolve it\n if (this.current <= this.max) {\n return Promise.resolve();\n }\n // otherwise defer it\n const d = deferred();\n this.waiting.push(d);\n return d;\n }\n /**\n * Release an acquired mutex - must be called\n */\n unlock() {\n // decrement the count\n this.current--;\n // if we have deferred, resolve one\n const d = this.waiting.pop();\n d?.resolve();\n }\n}\nexports.SimpleMutex = SimpleMutex;\n/**\n * Returns a new number between .5*n and 1.5*n.\n * If the n is 0, returns 0.\n * @param n\n */\nfunction jitter(n) {\n if (n === 0) {\n return 0;\n }\n return Math.floor(n / 2 + Math.random() * n);\n}\n/**\n * Returns a Backoff with the specified interval policy set.\n * @param policy\n */\nfunction backoff(policy = [0, 250, 250, 500, 500, 3000, 5000]) {\n if (!Array.isArray(policy)) {\n policy = [0, 250, 250, 500, 500, 3000, 5000];\n }\n const max = policy.length - 1;\n return {\n backoff(attempt) {\n return jitter(attempt > max ? policy[max] : policy[attempt]);\n },\n };\n}\n/**\n * Converts the specified millis into Nanos\n * @param millis\n */\nfunction nanos(millis) {\n return millis * 1000000;\n}\n/**\n * Convert the specified Nanos into millis\n * @param ns\n */\nfunction millis(ns) {\n return Math.floor(ns / 1000000);\n}\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.version = void 0;\n// This file is generated - do not edit\nexports.version = \"3.0.0\";\n//# sourceMappingURL=version.js.map","\"use strict\";\n/*\n * Copyright 2020-2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WsTransport = void 0;\nexports.wsUrlParseFn = wsUrlParseFn;\nexports.wsconnect = wsconnect;\nconst util_1 = require(\"./util\");\nconst transport_1 = require(\"./transport\");\nconst options_1 = require(\"./options\");\nconst databuffer_1 = require(\"./databuffer\");\nconst protocol_1 = require(\"./protocol\");\nconst nats_1 = require(\"./nats\");\nconst version_1 = require(\"./version\");\nconst errors_1 = require(\"./errors\");\nconst VERSION = version_1.version;\nconst LANG = \"nats.ws\";\nclass WsTransport {\n version;\n lang;\n closeError;\n connected;\n done;\n // @ts-ignore: expecting global WebSocket\n socket;\n options;\n socketClosed;\n encrypted;\n peeked;\n yields;\n signal;\n closedNotification;\n constructor() {\n this.version = VERSION;\n this.lang = LANG;\n this.connected = false;\n this.done = false;\n this.socketClosed = false;\n this.encrypted = false;\n this.peeked = false;\n this.yields = [];\n this.signal = (0, util_1.deferred)();\n this.closedNotification = (0, util_1.deferred)();\n }\n async connect(server, options) {\n const connected = false;\n const ok = (0, util_1.deferred)();\n this.options = options;\n const u = server.src;\n if (options.wsFactory) {\n const { socket, encrypted } = await options.wsFactory(server.src, options);\n this.socket = socket;\n this.encrypted = encrypted;\n }\n else {\n this.encrypted = u.indexOf(\"wss://\") === 0;\n this.socket = new WebSocket(u);\n }\n this.socket.binaryType = \"arraybuffer\";\n this.socket.onopen = () => {\n if (this.done) {\n this._closed(new Error(\"aborted\"));\n }\n // we don't do anything here...\n };\n this.socket.onmessage = (me) => {\n if (this.done) {\n return;\n }\n this.yields.push(new Uint8Array(me.data));\n if (this.peeked) {\n this.signal.resolve();\n return;\n }\n const t = databuffer_1.DataBuffer.concat(...this.yields);\n const pm = (0, transport_1.extractProtocolMessage)(t);\n if (pm !== \"\") {\n const m = protocol_1.INFO.exec(pm);\n if (!m) {\n if (options.debug) {\n console.error(\"!!!\", (0, util_1.render)(t));\n }\n ok.reject(new Error(\"unexpected response from server\"));\n return;\n }\n try {\n const info = JSON.parse(m[1]);\n (0, options_1.checkOptions)(info, this.options);\n this.peeked = true;\n this.connected = true;\n this.signal.resolve();\n ok.resolve();\n }\n catch (err) {\n ok.reject(err);\n return;\n }\n }\n };\n // @ts-ignore: CloseEvent is provided in browsers\n this.socket.onclose = (evt) => {\n let reason;\n if (!evt.wasClean && evt.reason !== \"\") {\n reason = new Error(evt.reason);\n }\n this._closed(reason);\n this._cleanup();\n };\n // @ts-ignore: signature can be any\n this.socket.onerror = (e) => {\n if (this.done) {\n return;\n }\n const evt = e;\n const err = new errors_1.errors.ConnectionError(evt.message);\n if (!connected) {\n ok.reject(err);\n }\n else {\n this._closed(err);\n }\n this._cleanup();\n };\n return ok;\n }\n _cleanup() {\n if (this.socketClosed === false) {\n // node seems to not emit closed if there's an error\n // all other runtimes do.\n this.socketClosed = true;\n this.socket.onopen = null;\n this.socket.onmessage = null;\n this.socket.onerror = null;\n this.socket.onclose = null;\n this.closedNotification.resolve(this.closeError);\n }\n }\n disconnect() {\n this._closed(undefined, true);\n }\n async _closed(err, _internal = true) {\n if (this.done) {\n try {\n this.socket.close();\n }\n catch (_) {\n // nothing\n }\n return;\n }\n this.closeError = err;\n if (!err) {\n while (!this.socketClosed && this.socket.bufferedAmount > 0) {\n await (0, util_1.delay)(100);\n }\n }\n this.done = true;\n try {\n this.socket.close();\n }\n catch (_) {\n // ignore this\n }\n return this.closedNotification;\n }\n get isClosed() {\n return this.done;\n }\n [Symbol.asyncIterator]() {\n return this.iterate();\n }\n async *iterate() {\n while (true) {\n if (this.done) {\n return;\n }\n if (this.yields.length === 0) {\n await this.signal;\n }\n const yields = this.yields;\n this.yields = [];\n for (let i = 0; i < yields.length; i++) {\n if (this.options.debug) {\n console.info(`> ${(0, util_1.render)(yields[i])}`);\n }\n yield yields[i];\n }\n // yielding could have paused and microtask\n // could have added messages. Prevent allocations\n // if possible\n if (this.done) {\n break;\n }\n else if (this.yields.length === 0) {\n yields.length = 0;\n this.yields = yields;\n this.signal = (0, util_1.deferred)();\n }\n }\n }\n isEncrypted() {\n return this.connected && this.encrypted;\n }\n send(frame) {\n if (this.done) {\n return;\n }\n try {\n this.socket.send(frame.buffer);\n if (this.options.debug) {\n console.info(`< ${(0, util_1.render)(frame)}`);\n }\n return;\n }\n catch (err) {\n // we ignore write errors because client will\n // fail on a read or when the heartbeat timer\n // detects a stale connection\n if (this.options.debug) {\n console.error(`!!! ${(0, util_1.render)(frame)}: ${err}`);\n }\n }\n }\n close(err) {\n return this._closed(err, false);\n }\n closed() {\n return this.closedNotification;\n }\n // this is to allow a force discard on a connection\n // if the connection fails during the handshake protocol.\n // Firefox for example, will keep connections going,\n // so eventually if it succeeds, the client will have\n // an additional transport running. With this\n discard() {\n this.socket?.close();\n }\n}\nexports.WsTransport = WsTransport;\nfunction wsUrlParseFn(u, encrypted) {\n const ut = /^(.*:\\/\\/)(.*)/;\n if (!ut.test(u)) {\n // if we have no hint to encrypted and no protocol, assume encrypted\n // else we fix the url from the update to match\n if (typeof encrypted === \"boolean\") {\n u = `${encrypted === true ? \"https\" : \"http\"}://${u}`;\n }\n else {\n u = `https://${u}`;\n }\n }\n let url = new URL(u);\n const srcProto = url.protocol.toLowerCase();\n if (srcProto === \"ws:\") {\n encrypted = false;\n }\n if (srcProto === \"wss:\") {\n encrypted = true;\n }\n if (srcProto !== \"https:\" && srcProto !== \"http\") {\n u = u.replace(/^(.*:\\/\\/)(.*)/gm, \"$2\");\n url = new URL(`http://${u}`);\n }\n let protocol;\n let port;\n const host = url.hostname;\n const path = url.pathname;\n const search = url.search || \"\";\n switch (srcProto) {\n case \"http:\":\n case \"ws:\":\n case \"nats:\":\n port = url.port || \"80\";\n protocol = \"ws:\";\n break;\n case \"https:\":\n case \"wss:\":\n case \"tls:\":\n port = url.port || \"443\";\n protocol = \"wss:\";\n break;\n default:\n port = url.port || encrypted === true ? \"443\" : \"80\";\n protocol = encrypted === true ? \"wss:\" : \"ws:\";\n break;\n }\n return `${protocol}//${host}:${port}${path}${search}`;\n}\nfunction wsconnect(opts = {}) {\n (0, transport_1.setTransportFactory)({\n defaultPort: 443,\n urlParseFn: wsUrlParseFn,\n factory: () => {\n if (opts.tls) {\n throw errors_1.InvalidArgumentError.format(\"tls\", \"is not configurable on w3c websocket connections\");\n }\n return new WsTransport();\n },\n });\n return nats_1.NatsConnectionImpl.connect(opts);\n}\n//# sourceMappingURL=ws_transport.js.map","\"use strict\";\n/*\n * Copyright 2018-2021 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.base32 = void 0;\n// Fork of https://github.com/LinusU/base32-encode\n// and https://github.com/LinusU/base32-decode to support returning\n// buffers without padding.\n/**\n * @ignore\n */\nconst b32Alphabet = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\";\n/**\n * @ignore\n */\nclass base32 {\n static encode(src) {\n let bits = 0;\n let value = 0;\n const a = new Uint8Array(src);\n const buf = new Uint8Array(src.byteLength * 2);\n let j = 0;\n for (let i = 0; i < a.byteLength; i++) {\n value = (value << 8) | a[i];\n bits += 8;\n while (bits >= 5) {\n const index = (value >>> (bits - 5)) & 31;\n buf[j++] = b32Alphabet.charAt(index).charCodeAt(0);\n bits -= 5;\n }\n }\n if (bits > 0) {\n const index = (value << (5 - bits)) & 31;\n buf[j++] = b32Alphabet.charAt(index).charCodeAt(0);\n }\n return buf.slice(0, j);\n }\n static decode(src) {\n let bits = 0;\n let byte = 0;\n let j = 0;\n const a = new Uint8Array(src);\n const out = new Uint8Array(a.byteLength * 5 / 8 | 0);\n for (let i = 0; i < a.byteLength; i++) {\n const v = String.fromCharCode(a[i]);\n const vv = b32Alphabet.indexOf(v);\n if (vv === -1) {\n throw new Error(\"Illegal Base32 character: \" + a[i]);\n }\n byte = (byte << 5) | vv;\n bits += 5;\n if (bits >= 8) {\n out[j++] = (byte >>> (bits - 8)) & 255;\n bits -= 8;\n }\n }\n return out.slice(0, j);\n }\n}\nexports.base32 = base32;\n//# sourceMappingURL=base32.js.map","\"use strict\";\n/*\n * Copyright 2018-2020 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Codec = void 0;\nconst crc16_1 = require(\"./crc16\");\nconst nkeys_1 = require(\"./nkeys\");\nconst base32_1 = require(\"./base32\");\n/**\n * @ignore\n */\nclass Codec {\n static encode(prefix, src) {\n if (!src || !(src instanceof Uint8Array)) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.SerializationError);\n }\n if (!nkeys_1.Prefixes.isValidPrefix(prefix)) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidPrefixByte);\n }\n return Codec._encode(false, prefix, src);\n }\n static encodeSeed(role, src) {\n if (!src) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ApiError);\n }\n if (!nkeys_1.Prefixes.isValidPublicPrefix(role)) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidPrefixByte);\n }\n if (src.byteLength !== 32) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidSeedLen);\n }\n return Codec._encode(true, role, src);\n }\n static decode(expected, src) {\n if (!nkeys_1.Prefixes.isValidPrefix(expected)) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidPrefixByte);\n }\n const raw = Codec._decode(src);\n if (raw[0] !== expected) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidPrefixByte);\n }\n return raw.slice(1);\n }\n static decodeSeed(src) {\n const raw = Codec._decode(src);\n const prefix = Codec._decodePrefix(raw);\n if (prefix[0] != nkeys_1.Prefix.Seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidSeed);\n }\n if (!nkeys_1.Prefixes.isValidPublicPrefix(prefix[1])) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidPrefixByte);\n }\n return ({ buf: raw.slice(2), prefix: prefix[1] });\n }\n // unsafe encode no prefix/role validation\n static _encode(seed, role, payload) {\n // offsets for this token\n const payloadOffset = seed ? 2 : 1;\n const payloadLen = payload.byteLength;\n const checkLen = 2;\n const cap = payloadOffset + payloadLen + checkLen;\n const checkOffset = payloadOffset + payloadLen;\n const raw = new Uint8Array(cap);\n // make the prefixes human readable when encoded\n if (seed) {\n const encodedPrefix = Codec._encodePrefix(nkeys_1.Prefix.Seed, role);\n raw.set(encodedPrefix);\n }\n else {\n raw[0] = role;\n }\n raw.set(payload, payloadOffset);\n //calculate the checksum write it LE\n const checksum = crc16_1.crc16.checksum(raw.slice(0, checkOffset));\n const dv = new DataView(raw.buffer);\n dv.setUint16(checkOffset, checksum, true);\n return base32_1.base32.encode(raw);\n }\n // unsafe decode - no prefix/role validation\n static _decode(src) {\n if (src.byteLength < 4) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidEncoding);\n }\n let raw;\n try {\n raw = base32_1.base32.decode(src);\n }\n catch (ex) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidEncoding, { cause: ex });\n }\n const checkOffset = raw.byteLength - 2;\n const dv = new DataView(raw.buffer);\n const checksum = dv.getUint16(checkOffset, true);\n const payload = raw.slice(0, checkOffset);\n if (!crc16_1.crc16.validate(payload, checksum)) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidChecksum);\n }\n return payload;\n }\n static _encodePrefix(kind, role) {\n // In order to make this human printable for both bytes, we need to do a little\n // bit manipulation to setup for base32 encoding which takes 5 bits at a time.\n const b1 = kind | (role >> 5);\n const b2 = (role & 31) << 3; // 31 = 00011111\n return new Uint8Array([b1, b2]);\n }\n static _decodePrefix(raw) {\n // Need to do the reverse from the printable representation to\n // get back to internal representation.\n const b1 = raw[0] & 248; // 248 = 11111000\n const b2 = (raw[0] & 7) << 5 | ((raw[1] & 248) >> 3); // 7 = 00000111\n return new Uint8Array([b1, b2]);\n }\n}\nexports.Codec = Codec;\n//# sourceMappingURL=codec.js.map","\"use strict\";\n/*\n * Copyright 2018-2020 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crc16 = void 0;\n// An implementation of crc16 according to CCITT standards for XMODEM.\n/**\n * @ignore\n */\nconst crc16tab = new Uint16Array([\n 0x0000,\n 0x1021,\n 0x2042,\n 0x3063,\n 0x4084,\n 0x50a5,\n 0x60c6,\n 0x70e7,\n 0x8108,\n 0x9129,\n 0xa14a,\n 0xb16b,\n 0xc18c,\n 0xd1ad,\n 0xe1ce,\n 0xf1ef,\n 0x1231,\n 0x0210,\n 0x3273,\n 0x2252,\n 0x52b5,\n 0x4294,\n 0x72f7,\n 0x62d6,\n 0x9339,\n 0x8318,\n 0xb37b,\n 0xa35a,\n 0xd3bd,\n 0xc39c,\n 0xf3ff,\n 0xe3de,\n 0x2462,\n 0x3443,\n 0x0420,\n 0x1401,\n 0x64e6,\n 0x74c7,\n 0x44a4,\n 0x5485,\n 0xa56a,\n 0xb54b,\n 0x8528,\n 0x9509,\n 0xe5ee,\n 0xf5cf,\n 0xc5ac,\n 0xd58d,\n 0x3653,\n 0x2672,\n 0x1611,\n 0x0630,\n 0x76d7,\n 0x66f6,\n 0x5695,\n 0x46b4,\n 0xb75b,\n 0xa77a,\n 0x9719,\n 0x8738,\n 0xf7df,\n 0xe7fe,\n 0xd79d,\n 0xc7bc,\n 0x48c4,\n 0x58e5,\n 0x6886,\n 0x78a7,\n 0x0840,\n 0x1861,\n 0x2802,\n 0x3823,\n 0xc9cc,\n 0xd9ed,\n 0xe98e,\n 0xf9af,\n 0x8948,\n 0x9969,\n 0xa90a,\n 0xb92b,\n 0x5af5,\n 0x4ad4,\n 0x7ab7,\n 0x6a96,\n 0x1a71,\n 0x0a50,\n 0x3a33,\n 0x2a12,\n 0xdbfd,\n 0xcbdc,\n 0xfbbf,\n 0xeb9e,\n 0x9b79,\n 0x8b58,\n 0xbb3b,\n 0xab1a,\n 0x6ca6,\n 0x7c87,\n 0x4ce4,\n 0x5cc5,\n 0x2c22,\n 0x3c03,\n 0x0c60,\n 0x1c41,\n 0xedae,\n 0xfd8f,\n 0xcdec,\n 0xddcd,\n 0xad2a,\n 0xbd0b,\n 0x8d68,\n 0x9d49,\n 0x7e97,\n 0x6eb6,\n 0x5ed5,\n 0x4ef4,\n 0x3e13,\n 0x2e32,\n 0x1e51,\n 0x0e70,\n 0xff9f,\n 0xefbe,\n 0xdfdd,\n 0xcffc,\n 0xbf1b,\n 0xaf3a,\n 0x9f59,\n 0x8f78,\n 0x9188,\n 0x81a9,\n 0xb1ca,\n 0xa1eb,\n 0xd10c,\n 0xc12d,\n 0xf14e,\n 0xe16f,\n 0x1080,\n 0x00a1,\n 0x30c2,\n 0x20e3,\n 0x5004,\n 0x4025,\n 0x7046,\n 0x6067,\n 0x83b9,\n 0x9398,\n 0xa3fb,\n 0xb3da,\n 0xc33d,\n 0xd31c,\n 0xe37f,\n 0xf35e,\n 0x02b1,\n 0x1290,\n 0x22f3,\n 0x32d2,\n 0x4235,\n 0x5214,\n 0x6277,\n 0x7256,\n 0xb5ea,\n 0xa5cb,\n 0x95a8,\n 0x8589,\n 0xf56e,\n 0xe54f,\n 0xd52c,\n 0xc50d,\n 0x34e2,\n 0x24c3,\n 0x14a0,\n 0x0481,\n 0x7466,\n 0x6447,\n 0x5424,\n 0x4405,\n 0xa7db,\n 0xb7fa,\n 0x8799,\n 0x97b8,\n 0xe75f,\n 0xf77e,\n 0xc71d,\n 0xd73c,\n 0x26d3,\n 0x36f2,\n 0x0691,\n 0x16b0,\n 0x6657,\n 0x7676,\n 0x4615,\n 0x5634,\n 0xd94c,\n 0xc96d,\n 0xf90e,\n 0xe92f,\n 0x99c8,\n 0x89e9,\n 0xb98a,\n 0xa9ab,\n 0x5844,\n 0x4865,\n 0x7806,\n 0x6827,\n 0x18c0,\n 0x08e1,\n 0x3882,\n 0x28a3,\n 0xcb7d,\n 0xdb5c,\n 0xeb3f,\n 0xfb1e,\n 0x8bf9,\n 0x9bd8,\n 0xabbb,\n 0xbb9a,\n 0x4a75,\n 0x5a54,\n 0x6a37,\n 0x7a16,\n 0x0af1,\n 0x1ad0,\n 0x2ab3,\n 0x3a92,\n 0xfd2e,\n 0xed0f,\n 0xdd6c,\n 0xcd4d,\n 0xbdaa,\n 0xad8b,\n 0x9de8,\n 0x8dc9,\n 0x7c26,\n 0x6c07,\n 0x5c64,\n 0x4c45,\n 0x3ca2,\n 0x2c83,\n 0x1ce0,\n 0x0cc1,\n 0xef1f,\n 0xff3e,\n 0xcf5d,\n 0xdf7c,\n 0xaf9b,\n 0xbfba,\n 0x8fd9,\n 0x9ff8,\n 0x6e17,\n 0x7e36,\n 0x4e55,\n 0x5e74,\n 0x2e93,\n 0x3eb2,\n 0x0ed1,\n 0x1ef0,\n]);\n/**\n * @ignore\n */\nclass crc16 {\n // crc16 returns the crc for the data provided.\n static checksum(data) {\n let crc = 0;\n for (let i = 0; i < data.byteLength; i++) {\n const b = data[i];\n crc = ((crc << 8) & 0xffff) ^ crc16tab[((crc >> 8) ^ b) & 0x00FF];\n }\n return crc;\n }\n // validate will check the calculated crc16 checksum for data against the expected.\n static validate(data, expected) {\n const ba = crc16.checksum(data);\n return ba == expected;\n }\n}\nexports.crc16 = crc16;\n//# sourceMappingURL=crc16.js.map","\"use strict\";\n/*\n * Copyright 2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CurveKP = exports.curveNonceLen = exports.curveKeyLen = void 0;\nconst nkeys_1 = require(\"./nkeys\");\nconst nacl_1 = __importDefault(require(\"./nacl\"));\nconst codec_1 = require(\"./codec\");\nconst nkeys_2 = require(\"./nkeys\");\nconst base32_1 = require(\"./base32\");\nconst crc16_1 = require(\"./crc16\");\nexports.curveKeyLen = 32;\nconst curveDecodeLen = 35;\nexports.curveNonceLen = 24;\n// \"xkv1\" in bytes\nconst XKeyVersionV1 = [120, 107, 118, 49];\nclass CurveKP {\n seed;\n constructor(seed) {\n this.seed = seed;\n }\n clear() {\n if (!this.seed) {\n return;\n }\n this.seed.fill(0);\n this.seed = undefined;\n }\n getPrivateKey() {\n if (!this.seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n return codec_1.Codec.encode(nkeys_2.Prefix.Private, this.seed);\n }\n getPublicKey() {\n if (!this.seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n const pub = nacl_1.default.scalarMult.base(this.seed);\n const buf = codec_1.Codec.encode(nkeys_2.Prefix.Curve, pub);\n return new TextDecoder().decode(buf);\n }\n getSeed() {\n if (!this.seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n return codec_1.Codec.encodeSeed(nkeys_2.Prefix.Curve, this.seed);\n }\n sign() {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidCurveOperation);\n }\n verify() {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidCurveOperation);\n }\n decodePubCurveKey(src) {\n try {\n const raw = base32_1.base32.decode(new TextEncoder().encode(src));\n if (raw.byteLength !== curveDecodeLen) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidCurveKey);\n }\n if (raw[0] !== nkeys_2.Prefix.Curve) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidPublicKey);\n }\n const checkOffset = raw.byteLength - 2;\n const dv = new DataView(raw.buffer);\n const checksum = dv.getUint16(checkOffset, true);\n const payload = raw.slice(0, checkOffset);\n if (!crc16_1.crc16.validate(payload, checksum)) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidChecksum);\n }\n // remove the prefix byte\n return payload.slice(1);\n }\n catch (ex) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidRecipient, { cause: ex });\n }\n }\n seal(message, recipient, nonce) {\n if (!this.seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n if (!nonce) {\n nonce = nacl_1.default.randomBytes(exports.curveNonceLen);\n }\n const pub = this.decodePubCurveKey(recipient);\n // prefix a header to the nonce\n const out = new Uint8Array(XKeyVersionV1.length + exports.curveNonceLen);\n out.set(XKeyVersionV1, 0);\n out.set(nonce, XKeyVersionV1.length);\n // this is only the encoded payload\n const encrypted = nacl_1.default.box(message, nonce, pub, this.seed);\n // the full message is the header+nonce+encrypted\n const fullMessage = new Uint8Array(out.length + encrypted.length);\n fullMessage.set(out);\n fullMessage.set(encrypted, out.length);\n return fullMessage;\n }\n open(message, sender) {\n if (!this.seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n if (message.length <= exports.curveNonceLen + XKeyVersionV1.length) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidEncrypted);\n }\n for (let i = 0; i < XKeyVersionV1.length; i++) {\n if (message[i] !== XKeyVersionV1[i]) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidEncrypted);\n }\n }\n const pub = this.decodePubCurveKey(sender);\n // strip off the header\n message = message.slice(XKeyVersionV1.length);\n // extract the nonce\n const nonce = message.slice(0, exports.curveNonceLen);\n // stripe the nonce\n message = message.slice(exports.curveNonceLen);\n return nacl_1.default.box.open(message, nonce, pub, this.seed);\n }\n}\nexports.CurveKP = CurveKP;\n//# sourceMappingURL=curve.js.map","\"use strict\";\n/*\n * Copyright 2018-2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KP = void 0;\nconst codec_1 = require(\"./codec\");\nconst nkeys_1 = require(\"./nkeys\");\nconst nacl_1 = __importDefault(require(\"./nacl\"));\n/**\n * @ignore\n */\nclass KP {\n seed;\n constructor(seed) {\n this.seed = seed;\n }\n getRawSeed() {\n if (!this.seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n const sd = codec_1.Codec.decodeSeed(this.seed);\n return sd.buf;\n }\n getSeed() {\n if (!this.seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n return this.seed;\n }\n getPublicKey() {\n if (!this.seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n const sd = codec_1.Codec.decodeSeed(this.seed);\n const kp = nacl_1.default.sign.keyPair.fromSeed(this.getRawSeed());\n const buf = codec_1.Codec.encode(sd.prefix, kp.publicKey);\n return new TextDecoder().decode(buf);\n }\n getPrivateKey() {\n if (!this.seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n const kp = nacl_1.default.sign.keyPair.fromSeed(this.getRawSeed());\n return codec_1.Codec.encode(nkeys_1.Prefix.Private, kp.secretKey);\n }\n sign(input) {\n if (!this.seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n const kp = nacl_1.default.sign.keyPair.fromSeed(this.getRawSeed());\n return nacl_1.default.sign.detached(input, kp.secretKey);\n }\n verify(input, sig) {\n if (!this.seed) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n const kp = nacl_1.default.sign.keyPair.fromSeed(this.getRawSeed());\n return nacl_1.default.sign.detached.verify(input, sig, kp.publicKey);\n }\n clear() {\n if (!this.seed) {\n return;\n }\n this.seed.fill(0);\n this.seed = undefined;\n }\n seal(_, _recipient, _nonce) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidNKeyOperation);\n }\n open(_, _sender) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidNKeyOperation);\n }\n}\nexports.KP = KP;\n//# sourceMappingURL=kp.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.version = exports.encode = exports.decode = exports.Prefixes = exports.Prefix = exports.NKeysErrorCode = exports.NKeysError = exports.fromSeed = exports.fromPublic = exports.fromCurveSeed = exports.createUser = exports.createServer = exports.createPair = exports.createOperator = exports.createCurve = exports.createCluster = exports.createAccount = void 0;\nvar nkeys_1 = require(\"./nkeys\");\nObject.defineProperty(exports, \"createAccount\", { enumerable: true, get: function () { return nkeys_1.createAccount; } });\nObject.defineProperty(exports, \"createCluster\", { enumerable: true, get: function () { return nkeys_1.createCluster; } });\nObject.defineProperty(exports, \"createCurve\", { enumerable: true, get: function () { return nkeys_1.createCurve; } });\nObject.defineProperty(exports, \"createOperator\", { enumerable: true, get: function () { return nkeys_1.createOperator; } });\nObject.defineProperty(exports, \"createPair\", { enumerable: true, get: function () { return nkeys_1.createPair; } });\nObject.defineProperty(exports, \"createServer\", { enumerable: true, get: function () { return nkeys_1.createServer; } });\nObject.defineProperty(exports, \"createUser\", { enumerable: true, get: function () { return nkeys_1.createUser; } });\nObject.defineProperty(exports, \"fromCurveSeed\", { enumerable: true, get: function () { return nkeys_1.fromCurveSeed; } });\nObject.defineProperty(exports, \"fromPublic\", { enumerable: true, get: function () { return nkeys_1.fromPublic; } });\nObject.defineProperty(exports, \"fromSeed\", { enumerable: true, get: function () { return nkeys_1.fromSeed; } });\nObject.defineProperty(exports, \"NKeysError\", { enumerable: true, get: function () { return nkeys_1.NKeysError; } });\nObject.defineProperty(exports, \"NKeysErrorCode\", { enumerable: true, get: function () { return nkeys_1.NKeysErrorCode; } });\nObject.defineProperty(exports, \"Prefix\", { enumerable: true, get: function () { return nkeys_1.Prefix; } });\nObject.defineProperty(exports, \"Prefixes\", { enumerable: true, get: function () { return nkeys_1.Prefixes; } });\nvar util_1 = require(\"./util\");\nObject.defineProperty(exports, \"decode\", { enumerable: true, get: function () { return util_1.decode; } });\nObject.defineProperty(exports, \"encode\", { enumerable: true, get: function () { return util_1.encode; } });\nvar version_1 = require(\"./version\");\nObject.defineProperty(exports, \"version\", { enumerable: true, get: function () { return version_1.version; } });\n//# sourceMappingURL=mod.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tweetnacl_1 = __importDefault(require(\"tweetnacl\"));\nexports.default = tweetnacl_1.default;\n//# sourceMappingURL=nacl.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NKeysError = exports.NKeysErrorCode = exports.Prefixes = exports.Prefix = void 0;\nexports.createPair = createPair;\nexports.createOperator = createOperator;\nexports.createAccount = createAccount;\nexports.createUser = createUser;\nexports.createCluster = createCluster;\nexports.createServer = createServer;\nexports.createCurve = createCurve;\nexports.fromPublic = fromPublic;\nexports.fromCurveSeed = fromCurveSeed;\nexports.fromSeed = fromSeed;\n/*\n * Copyright 2018-2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst kp_1 = require(\"./kp\");\nconst public_1 = require(\"./public\");\nconst codec_1 = require(\"./codec\");\nconst curve_1 = require(\"./curve\");\nconst nacl_1 = __importDefault(require(\"./nacl\"));\n/**\n * @ignore\n */\nfunction createPair(prefix) {\n const len = prefix === Prefix.Curve ? curve_1.curveKeyLen : 32;\n const rawSeed = nacl_1.default.randomBytes(len);\n const str = codec_1.Codec.encodeSeed(prefix, new Uint8Array(rawSeed));\n return prefix === Prefix.Curve\n ? new curve_1.CurveKP(new Uint8Array(rawSeed))\n : new kp_1.KP(str);\n}\n/**\n * Creates a KeyPair with an operator prefix\n * @returns {KeyPair} Returns the created KeyPair.\n */\nfunction createOperator() {\n return createPair(Prefix.Operator);\n}\n/**\n * Creates a KeyPair with an account prefix\n * @returns {KeyPair} Returns the created KeyPair.\n */\nfunction createAccount() {\n return createPair(Prefix.Account);\n}\n/**\n * Creates a KeyPair with a user prefix\n * @returns {KeyPair} Returns the created KeyPair.\n */\nfunction createUser() {\n return createPair(Prefix.User);\n}\n/**\n * @ignore\n */\nfunction createCluster() {\n return createPair(Prefix.Cluster);\n}\n/**\n * @ignore\n */\nfunction createServer() {\n return createPair(Prefix.Server);\n}\n/**\n * Generates and returns a KeyPair object using the Curve prefix.\n * Curve KeyPairs can seal/open (encrypt/decrypt) payloads.\n *\n * @return {KeyPair} The generated KeyPair object with Curve prefix.\n */\nfunction createCurve() {\n return createPair(Prefix.Curve);\n}\n/**\n * Creates a KeyPair from a specified public key\n * @param {string} src of the public key in string format.\n * @returns {KeyPair} Returns the created KeyPair.\n * @see KeyPair#getPublicKey\n */\nfunction fromPublic(src) {\n const ba = new TextEncoder().encode(src);\n const raw = codec_1.Codec._decode(ba);\n const prefix = Prefixes.parsePrefix(raw[0]);\n if (Prefixes.isValidPublicPrefix(prefix)) {\n return new public_1.PublicKey(ba);\n }\n throw new NKeysError(NKeysErrorCode.InvalidPublicKey);\n}\n/**\n * Creates a KeyPair from a Curve seed. Curve keys can encrypt and decrypt payloads.\n *\n * @param {Uint8Array} src - The seed representing the Curve key in encoded format.\n * @return {KeyPair} The resulting KeyPair generated from the Curve seed.\n * @throws {NKeysError} If the seed's prefix is not a Curve prefix or if the seed length is invalid.\n */\nfunction fromCurveSeed(src) {\n const sd = codec_1.Codec.decodeSeed(src);\n if (sd.prefix !== Prefix.Curve) {\n throw new NKeysError(NKeysErrorCode.InvalidCurveSeed);\n }\n if (sd.buf.byteLength !== curve_1.curveKeyLen) {\n throw new NKeysError(NKeysErrorCode.InvalidSeedLen);\n }\n return new curve_1.CurveKP(sd.buf);\n}\n/**\n * Creates a KeyPair from a specified seed.\n * @param {Uint8Array} src of the seed key as Uint8Array\n * @returns {KeyPair} Returns the created KeyPair.\n * @see KeyPair#getSeed\n */\nfunction fromSeed(src) {\n const sd = codec_1.Codec.decodeSeed(src);\n // if we are here it decoded properly\n if (sd.prefix === Prefix.Curve) {\n return fromCurveSeed(src);\n }\n return new kp_1.KP(src);\n}\n/**\n * @ignore\n */\nvar Prefix;\n(function (Prefix) {\n Prefix[Prefix[\"Unknown\"] = -1] = \"Unknown\";\n //Seed is the version byte used for encoded NATS Seeds\n Prefix[Prefix[\"Seed\"] = 144] = \"Seed\";\n //PrefixBytePrivate is the version byte used for encoded NATS Private keys\n Prefix[Prefix[\"Private\"] = 120] = \"Private\";\n //PrefixByteOperator is the version byte used for encoded NATS Operators\n Prefix[Prefix[\"Operator\"] = 112] = \"Operator\";\n //PrefixByteServer is the version byte used for encoded NATS Servers\n Prefix[Prefix[\"Server\"] = 104] = \"Server\";\n //PrefixByteCluster is the version byte used for encoded NATS Clusters\n Prefix[Prefix[\"Cluster\"] = 16] = \"Cluster\";\n //PrefixByteAccount is the version byte used for encoded NATS Accounts\n Prefix[Prefix[\"Account\"] = 0] = \"Account\";\n //PrefixByteUser is the version byte used for encoded NATS Users\n Prefix[Prefix[\"User\"] = 160] = \"User\";\n Prefix[Prefix[\"Curve\"] = 184] = \"Curve\";\n})(Prefix || (exports.Prefix = Prefix = {}));\n/**\n * @private\n */\nclass Prefixes {\n static isValidPublicPrefix(prefix) {\n return prefix == Prefix.Server ||\n prefix == Prefix.Operator ||\n prefix == Prefix.Cluster ||\n prefix == Prefix.Account ||\n prefix == Prefix.User ||\n prefix == Prefix.Curve;\n }\n static startsWithValidPrefix(s) {\n const c = s[0];\n return c == \"S\" || c == \"P\" || c == \"O\" || c == \"N\" || c == \"C\" ||\n c == \"A\" || c == \"U\" || c == \"X\";\n }\n static isValidPrefix(prefix) {\n const v = this.parsePrefix(prefix);\n return v !== Prefix.Unknown;\n }\n static parsePrefix(v) {\n switch (v) {\n case Prefix.Seed:\n return Prefix.Seed;\n case Prefix.Private:\n return Prefix.Private;\n case Prefix.Operator:\n return Prefix.Operator;\n case Prefix.Server:\n return Prefix.Server;\n case Prefix.Cluster:\n return Prefix.Cluster;\n case Prefix.Account:\n return Prefix.Account;\n case Prefix.User:\n return Prefix.User;\n case Prefix.Curve:\n return Prefix.Curve;\n default:\n return Prefix.Unknown;\n }\n }\n}\nexports.Prefixes = Prefixes;\n/**\n * Possible error codes on exceptions thrown by the library.\n */\nvar NKeysErrorCode;\n(function (NKeysErrorCode) {\n NKeysErrorCode[\"InvalidPrefixByte\"] = \"nkeys: invalid prefix byte\";\n NKeysErrorCode[\"InvalidKey\"] = \"nkeys: invalid key\";\n NKeysErrorCode[\"InvalidPublicKey\"] = \"nkeys: invalid public key\";\n NKeysErrorCode[\"InvalidSeedLen\"] = \"nkeys: invalid seed length\";\n NKeysErrorCode[\"InvalidSeed\"] = \"nkeys: invalid seed\";\n NKeysErrorCode[\"InvalidCurveSeed\"] = \"nkeys: invalid curve seed\";\n NKeysErrorCode[\"InvalidCurveKey\"] = \"nkeys: not a valid curve key\";\n NKeysErrorCode[\"InvalidCurveOperation\"] = \"nkeys: curve key is not valid for sign/verify\";\n NKeysErrorCode[\"InvalidNKeyOperation\"] = \"keys: only curve key can seal/open\";\n NKeysErrorCode[\"InvalidEncoding\"] = \"nkeys: invalid encoded key\";\n NKeysErrorCode[\"InvalidRecipient\"] = \"nkeys: not a valid recipient public curve key\";\n NKeysErrorCode[\"InvalidEncrypted\"] = \"nkeys: encrypted input is not valid\";\n NKeysErrorCode[\"CannotSign\"] = \"nkeys: cannot sign, no private key available\";\n NKeysErrorCode[\"PublicKeyOnly\"] = \"nkeys: no seed or private key available\";\n NKeysErrorCode[\"InvalidChecksum\"] = \"nkeys: invalid checksum\";\n NKeysErrorCode[\"SerializationError\"] = \"nkeys: serialization error\";\n NKeysErrorCode[\"ApiError\"] = \"nkeys: api error\";\n NKeysErrorCode[\"ClearedPair\"] = \"nkeys: pair is cleared\";\n})(NKeysErrorCode || (exports.NKeysErrorCode = NKeysErrorCode = {}));\nclass NKeysError extends Error {\n code;\n constructor(code, options) {\n super(code, options);\n this.code = code;\n }\n}\nexports.NKeysError = NKeysError;\n//# sourceMappingURL=nkeys.js.map","\"use strict\";\n/*\n * Copyright 2018-2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = void 0;\nconst codec_1 = require(\"./codec\");\nconst nkeys_1 = require(\"./nkeys\");\nconst nacl_1 = __importDefault(require(\"./nacl\"));\n/**\n * @ignore\n */\nclass PublicKey {\n publicKey;\n constructor(publicKey) {\n this.publicKey = publicKey;\n }\n getPublicKey() {\n if (!this.publicKey) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n return new TextDecoder().decode(this.publicKey);\n }\n getPrivateKey() {\n if (!this.publicKey) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.PublicKeyOnly);\n }\n getSeed() {\n if (!this.publicKey) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.PublicKeyOnly);\n }\n sign(_) {\n if (!this.publicKey) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.CannotSign);\n }\n verify(input, sig) {\n if (!this.publicKey) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.ClearedPair);\n }\n const buf = codec_1.Codec._decode(this.publicKey);\n return nacl_1.default.sign.detached.verify(input, sig, buf.slice(1));\n }\n clear() {\n if (!this.publicKey) {\n return;\n }\n this.publicKey.fill(0);\n this.publicKey = undefined;\n }\n seal(_, _recipient, _nonce) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidNKeyOperation);\n }\n open(_, _sender) {\n throw new nkeys_1.NKeysError(nkeys_1.NKeysErrorCode.InvalidNKeyOperation);\n }\n}\nexports.PublicKey = PublicKey;\n//# sourceMappingURL=public.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encode = encode;\nexports.decode = decode;\nexports.dump = dump;\n/*\n * Copyright 2018-2020 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Encode binary data to a base64 string\n * @param {Uint8Array} bytes to encode to base64\n */\nfunction encode(bytes) {\n return btoa(String.fromCharCode(...bytes));\n}\n/**\n * Decode a base64 encoded string to a binary Uint8Array\n * @param {string} b64str encoded string\n */\nfunction decode(b64str) {\n const bin = atob(b64str);\n const bytes = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; i++) {\n bytes[i] = bin.charCodeAt(i);\n }\n return bytes;\n}\n/**\n * @ignore\n */\nfunction dump(buf, msg) {\n if (msg) {\n console.log(msg);\n }\n const a = [];\n for (let i = 0; i < buf.byteLength; i++) {\n if (i % 8 === 0) {\n a.push(\"\\n\");\n }\n let v = buf[i].toString(16);\n if (v.length === 1) {\n v = \"0\" + v;\n }\n a.push(v);\n }\n console.log(a.join(\" \"));\n}\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.version = void 0;\n// this file is autogenerated - do not edit\nexports.version = \"2.0.3\";\n//# sourceMappingURL=version.js.map","/*\n * Copyright 2016-2024 The NATS Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.nuid = exports.Nuid = void 0;\nconst digits = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\nconst base = 36;\nconst preLen = 12;\nconst seqLen = 10;\nconst maxSeq = 3656158440062976; // base^seqLen == 36^10\nconst minInc = 33;\nconst maxInc = 333;\nconst totalLen = preLen + seqLen;\nfunction _getRandomValues(a) {\n for (let i = 0; i < a.length; i++) {\n a[i] = Math.floor(Math.random() * 255);\n }\n}\nfunction fillRandom(a) {\n if (globalThis?.crypto?.getRandomValues) {\n globalThis.crypto.getRandomValues(a);\n }\n else {\n _getRandomValues(a);\n }\n}\n/**\n * Nuid is a class that generates unique identifiers.\n */\nclass Nuid {\n /**\n * @hidden\n */\n buf;\n /**\n * @hidden\n */\n seq;\n /**\n * @hidden\n */\n inc;\n /**\n * @hidden\n */\n inited;\n constructor() {\n this.buf = new Uint8Array(totalLen);\n this.inited = false;\n }\n /**\n * Initializes a nuid with a crypto random prefix,\n * and pseudo-random sequence and increment. This function\n * is only called if any api on a nuid is called.\n *\n * @ignore\n */\n init() {\n this.inited = true;\n this.setPre();\n this.initSeqAndInc();\n this.fillSeq();\n }\n /**\n * Initializes the pseudo random sequence number and the increment range.\n * @ignore\n */\n initSeqAndInc() {\n this.seq = Math.floor(Math.random() * maxSeq);\n this.inc = Math.floor(Math.random() * (maxInc - minInc) + minInc);\n }\n /**\n * Sets the prefix from crypto random bytes. Converts them to base36.\n *\n * @ignore\n */\n setPre() {\n const cbuf = new Uint8Array(preLen);\n fillRandom(cbuf);\n for (let i = 0; i < preLen; i++) {\n const di = cbuf[i] % base;\n this.buf[i] = digits.charCodeAt(di);\n }\n }\n /**\n * Fills the sequence part of the nuid as base36 from this.seq.\n * @ignore\n */\n fillSeq() {\n let n = this.seq;\n for (let i = totalLen - 1; i >= preLen; i--) {\n this.buf[i] = digits.charCodeAt(n % base);\n n = Math.floor(n / base);\n }\n }\n /**\n * Returns the next nuid.\n */\n next() {\n if (!this.inited) {\n this.init();\n }\n this.seq += this.inc;\n if (this.seq > maxSeq) {\n this.setPre();\n this.initSeqAndInc();\n }\n this.fillSeq();\n // @ts-ignore - Uint8Arrays can be an argument\n return String.fromCharCode.apply(String, this.buf);\n }\n /**\n * Resets the prefix and counter for the nuid. This is typically\n * called automatically from within next() if the current sequence\n * exceeds the resolution of the nuid.\n */\n reset() {\n this.init();\n }\n}\nexports.Nuid = Nuid;\n/**\n * A nuid instance you can use by simply calling `next()` on it.\n */\nexports.nuid = new Nuid();\n//# sourceMappingURL=nuid.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getHash = getHash;\nexports.createCurve = createCurve;\n/**\n * Utilities for short weierstrass curves, combined with noble-hashes.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst weierstrass_ts_1 = require(\"./abstract/weierstrass.js\");\n/** connects noble-curves to noble-hashes */\nfunction getHash(hash) {\n return { hash };\n}\n/** @deprecated use new `weierstrass()` and `ecdsa()` methods */\nfunction createCurve(curveDef, defHash) {\n const create = (hash) => (0, weierstrass_ts_1.weierstrass)({ ...curveDef, hash: hash });\n return { ...create(defHash), create };\n}\n//# sourceMappingURL=_shortw_utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wNAF = void 0;\nexports.negateCt = negateCt;\nexports.normalizeZ = normalizeZ;\nexports.mulEndoUnsafe = mulEndoUnsafe;\nexports.pippenger = pippenger;\nexports.precomputeMSMUnsafe = precomputeMSMUnsafe;\nexports.validateBasic = validateBasic;\nexports._createCurveFields = _createCurveFields;\n/**\n * Methods for elliptic curve multiplication by scalars.\n * Contains wNAF, pippenger.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst utils_ts_1 = require(\"../utils.js\");\nconst modular_ts_1 = require(\"./modular.js\");\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nfunction negateCt(condition, item) {\n const neg = item.negate();\n return condition ? neg : item;\n}\n/**\n * Takes a bunch of Projective Points but executes only one\n * inversion on all of them. Inversion is very slow operation,\n * so this improves performance massively.\n * Optimization: converts a list of projective points to a list of identical points with Z=1.\n */\nfunction normalizeZ(c, points) {\n const invertedZs = (0, modular_ts_1.FpInvertBatch)(c.Fp, points.map((p) => p.Z));\n return points.map((p, i) => c.fromAffine(p.toAffine(invertedZs[i])));\n}\nfunction validateW(W, bits) {\n if (!Number.isSafeInteger(W) || W <= 0 || W > bits)\n throw new Error('invalid window size, expected [1..' + bits + '], got W=' + W);\n}\nfunction calcWOpts(W, scalarBits) {\n validateW(W, scalarBits);\n const windows = Math.ceil(scalarBits / W) + 1; // W=8 33. Not 32, because we skip zero\n const windowSize = 2 ** (W - 1); // W=8 128. Not 256, because we skip zero\n const maxNumber = 2 ** W; // W=8 256\n const mask = (0, utils_ts_1.bitMask)(W); // W=8 255 == mask 0b11111111\n const shiftBy = BigInt(W); // W=8 8\n return { windows, windowSize, mask, maxNumber, shiftBy };\n}\nfunction calcOffsets(n, window, wOpts) {\n const { windowSize, mask, maxNumber, shiftBy } = wOpts;\n let wbits = Number(n & mask); // extract W bits.\n let nextN = n >> shiftBy; // shift number by W bits.\n // What actually happens here:\n // const highestBit = Number(mask ^ (mask >> 1n));\n // let wbits2 = wbits - 1; // skip zero\n // if (wbits2 & highestBit) { wbits2 ^= Number(mask); // (~);\n // split if bits > max: +224 => 256-32\n if (wbits > windowSize) {\n // we skip zero, which means instead of `>= size-1`, we do `> size`\n wbits -= maxNumber; // -32, can be maxNumber - wbits, but then we need to set isNeg here.\n nextN += _1n; // +256 (carry)\n }\n const offsetStart = window * windowSize;\n const offset = offsetStart + Math.abs(wbits) - 1; // -1 because we skip zero\n const isZero = wbits === 0; // is current window slice a 0?\n const isNeg = wbits < 0; // is current window slice negative?\n const isNegF = window % 2 !== 0; // fake random statement for noise\n const offsetF = offsetStart; // fake offset for noise\n return { nextN, offset, isZero, isNeg, isNegF, offsetF };\n}\nfunction validateMSMPoints(points, c) {\n if (!Array.isArray(points))\n throw new Error('array expected');\n points.forEach((p, i) => {\n if (!(p instanceof c))\n throw new Error('invalid point at index ' + i);\n });\n}\nfunction validateMSMScalars(scalars, field) {\n if (!Array.isArray(scalars))\n throw new Error('array of scalars expected');\n scalars.forEach((s, i) => {\n if (!field.isValid(s))\n throw new Error('invalid scalar at index ' + i);\n });\n}\n// Since points in different groups cannot be equal (different object constructor),\n// we can have single place to store precomputes.\n// Allows to make points frozen / immutable.\nconst pointPrecomputes = new WeakMap();\nconst pointWindowSizes = new WeakMap();\nfunction getW(P) {\n // To disable precomputes:\n // return 1;\n return pointWindowSizes.get(P) || 1;\n}\nfunction assert0(n) {\n if (n !== _0n)\n throw new Error('invalid wNAF');\n}\n/**\n * Elliptic curve multiplication of Point by scalar. Fragile.\n * Table generation takes **30MB of ram and 10ms on high-end CPU**,\n * but may take much longer on slow devices. Actual generation will happen on\n * first call of `multiply()`. By default, `BASE` point is precomputed.\n *\n * Scalars should always be less than curve order: this should be checked inside of a curve itself.\n * Creates precomputation tables for fast multiplication:\n * - private scalar is split by fixed size windows of W bits\n * - every window point is collected from window's table & added to accumulator\n * - since windows are different, same point inside tables won't be accessed more than once per calc\n * - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar)\n * - +1 window is neccessary for wNAF\n * - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n *\n * @todo Research returning 2d JS array of windows, instead of a single window.\n * This would allow windows to be in different memory locations\n */\nclass wNAF {\n // Parametrized with a given Point class (not individual point)\n constructor(Point, bits) {\n this.BASE = Point.BASE;\n this.ZERO = Point.ZERO;\n this.Fn = Point.Fn;\n this.bits = bits;\n }\n // non-const time multiplication ladder\n _unsafeLadder(elm, n, p = this.ZERO) {\n let d = elm;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n }\n /**\n * Creates a wNAF precomputation window. Used for caching.\n * Default window size is set by `utils.precompute()` and is equal to 8.\n * Number of precomputed points depends on the curve size:\n * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:\n * - 𝑊 is the window size\n * - 𝑛 is the bitlength of the curve order.\n * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n * @param point Point instance\n * @param W window size\n * @returns precomputed point tables flattened to a single array\n */\n precomputeWindow(point, W) {\n const { windows, windowSize } = calcWOpts(W, this.bits);\n const points = [];\n let p = point;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n // i=1, bc we skip 0\n for (let i = 1; i < windowSize; i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n }\n /**\n * Implements ec multiplication using precomputed tables and w-ary non-adjacent form.\n * More compact implementation:\n * https://github.com/paulmillr/noble-secp256k1/blob/47cb1669b6e506ad66b35fe7d76132ae97465da2/index.ts#L502-L541\n * @returns real and fake (for const-time) points\n */\n wNAF(W, precomputes, n) {\n // Scalar should be smaller than field order\n if (!this.Fn.isValid(n))\n throw new Error('invalid scalar');\n // Accumulators\n let p = this.ZERO;\n let f = this.BASE;\n // This code was first written with assumption that 'f' and 'p' will never be infinity point:\n // since each addition is multiplied by 2 ** W, it cannot cancel each other. However,\n // there is negate now: it is possible that negated element from low value\n // would be the same as high element, which will create carry into next window.\n // It's not obvious how this can fail, but still worth investigating later.\n const wo = calcWOpts(W, this.bits);\n for (let window = 0; window < wo.windows; window++) {\n // (n === _0n) is handled and not early-exited. isEven and offsetF are used for noise\n const { nextN, offset, isZero, isNeg, isNegF, offsetF } = calcOffsets(n, window, wo);\n n = nextN;\n if (isZero) {\n // bits are 0: add garbage to fake point\n // Important part for const-time getPublicKey: add random \"noise\" point to f.\n f = f.add(negateCt(isNegF, precomputes[offsetF]));\n }\n else {\n // bits are 1: add to result point\n p = p.add(negateCt(isNeg, precomputes[offset]));\n }\n }\n assert0(n);\n // Return both real and fake points: JIT won't eliminate f.\n // At this point there is a way to F be infinity-point even if p is not,\n // which makes it less const-time: around 1 bigint multiply.\n return { p, f };\n }\n /**\n * Implements ec unsafe (non const-time) multiplication using precomputed tables and w-ary non-adjacent form.\n * @param acc accumulator point to add result of multiplication\n * @returns point\n */\n wNAFUnsafe(W, precomputes, n, acc = this.ZERO) {\n const wo = calcWOpts(W, this.bits);\n for (let window = 0; window < wo.windows; window++) {\n if (n === _0n)\n break; // Early-exit, skip 0 value\n const { nextN, offset, isZero, isNeg } = calcOffsets(n, window, wo);\n n = nextN;\n if (isZero) {\n // Window bits are 0: skip processing.\n // Move to next window.\n continue;\n }\n else {\n const item = precomputes[offset];\n acc = acc.add(isNeg ? item.negate() : item); // Re-using acc allows to save adds in MSM\n }\n }\n assert0(n);\n return acc;\n }\n getPrecomputes(W, point, transform) {\n // Calculate precomputes on a first run, reuse them after\n let comp = pointPrecomputes.get(point);\n if (!comp) {\n comp = this.precomputeWindow(point, W);\n if (W !== 1) {\n // Doing transform outside of if brings 15% perf hit\n if (typeof transform === 'function')\n comp = transform(comp);\n pointPrecomputes.set(point, comp);\n }\n }\n return comp;\n }\n cached(point, scalar, transform) {\n const W = getW(point);\n return this.wNAF(W, this.getPrecomputes(W, point, transform), scalar);\n }\n unsafe(point, scalar, transform, prev) {\n const W = getW(point);\n if (W === 1)\n return this._unsafeLadder(point, scalar, prev); // For W=1 ladder is ~x2 faster\n return this.wNAFUnsafe(W, this.getPrecomputes(W, point, transform), scalar, prev);\n }\n // We calculate precomputes for elliptic curve point multiplication\n // using windowed method. This specifies window size and\n // stores precomputed values. Usually only base point would be precomputed.\n createCache(P, W) {\n validateW(W, this.bits);\n pointWindowSizes.set(P, W);\n pointPrecomputes.delete(P);\n }\n hasCache(elm) {\n return getW(elm) !== 1;\n }\n}\nexports.wNAF = wNAF;\n/**\n * Endomorphism-specific multiplication for Koblitz curves.\n * Cost: 128 dbl, 0-256 adds.\n */\nfunction mulEndoUnsafe(Point, point, k1, k2) {\n let acc = point;\n let p1 = Point.ZERO;\n let p2 = Point.ZERO;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n)\n p1 = p1.add(acc);\n if (k2 & _1n)\n p2 = p2.add(acc);\n acc = acc.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n return { p1, p2 };\n}\n/**\n * Pippenger algorithm for multi-scalar multiplication (MSM, Pa + Qb + Rc + ...).\n * 30x faster vs naive addition on L=4096, 10x faster than precomputes.\n * For N=254bit, L=1, it does: 1024 ADD + 254 DBL. For L=5: 1536 ADD + 254 DBL.\n * Algorithmically constant-time (for same L), even when 1 point + scalar, or when scalar = 0.\n * @param c Curve Point constructor\n * @param fieldN field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @param scalars array of L scalars (aka secret keys / bigints)\n */\nfunction pippenger(c, fieldN, points, scalars) {\n // If we split scalars by some window (let's say 8 bits), every chunk will only\n // take 256 buckets even if there are 4096 scalars, also re-uses double.\n // TODO:\n // - https://eprint.iacr.org/2024/750.pdf\n // - https://tches.iacr.org/index.php/TCHES/article/view/10287\n // 0 is accepted in scalars\n validateMSMPoints(points, c);\n validateMSMScalars(scalars, fieldN);\n const plength = points.length;\n const slength = scalars.length;\n if (plength !== slength)\n throw new Error('arrays of points and scalars must have equal length');\n // if (plength === 0) throw new Error('array must be of length >= 2');\n const zero = c.ZERO;\n const wbits = (0, utils_ts_1.bitLen)(BigInt(plength));\n let windowSize = 1; // bits\n if (wbits > 12)\n windowSize = wbits - 3;\n else if (wbits > 4)\n windowSize = wbits - 2;\n else if (wbits > 0)\n windowSize = 2;\n const MASK = (0, utils_ts_1.bitMask)(windowSize);\n const buckets = new Array(Number(MASK) + 1).fill(zero); // +1 for zero array\n const lastBits = Math.floor((fieldN.BITS - 1) / windowSize) * windowSize;\n let sum = zero;\n for (let i = lastBits; i >= 0; i -= windowSize) {\n buckets.fill(zero);\n for (let j = 0; j < slength; j++) {\n const scalar = scalars[j];\n const wbits = Number((scalar >> BigInt(i)) & MASK);\n buckets[wbits] = buckets[wbits].add(points[j]);\n }\n let resI = zero; // not using this will do small speed-up, but will lose ct\n // Skip first bucket, because it is zero\n for (let j = buckets.length - 1, sumI = zero; j > 0; j--) {\n sumI = sumI.add(buckets[j]);\n resI = resI.add(sumI);\n }\n sum = sum.add(resI);\n if (i !== 0)\n for (let j = 0; j < windowSize; j++)\n sum = sum.double();\n }\n return sum;\n}\n/**\n * Precomputed multi-scalar multiplication (MSM, Pa + Qb + Rc + ...).\n * @param c Curve Point constructor\n * @param fieldN field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @returns function which multiplies points with scaars\n */\nfunction precomputeMSMUnsafe(c, fieldN, points, windowSize) {\n /**\n * Performance Analysis of Window-based Precomputation\n *\n * Base Case (256-bit scalar, 8-bit window):\n * - Standard precomputation requires:\n * - 31 additions per scalar × 256 scalars = 7,936 ops\n * - Plus 255 summary additions = 8,191 total ops\n * Note: Summary additions can be optimized via accumulator\n *\n * Chunked Precomputation Analysis:\n * - Using 32 chunks requires:\n * - 255 additions per chunk\n * - 256 doublings\n * - Total: (255 × 32) + 256 = 8,416 ops\n *\n * Memory Usage Comparison:\n * Window Size | Standard Points | Chunked Points\n * ------------|-----------------|---------------\n * 4-bit | 520 | 15\n * 8-bit | 4,224 | 255\n * 10-bit | 13,824 | 1,023\n * 16-bit | 557,056 | 65,535\n *\n * Key Advantages:\n * 1. Enables larger window sizes due to reduced memory overhead\n * 2. More efficient for smaller scalar counts:\n * - 16 chunks: (16 × 255) + 256 = 4,336 ops\n * - ~2x faster than standard 8,191 ops\n *\n * Limitations:\n * - Not suitable for plain precomputes (requires 256 constant doublings)\n * - Performance degrades with larger scalar counts:\n * - Optimal for ~256 scalars\n * - Less efficient for 4096+ scalars (Pippenger preferred)\n */\n validateW(windowSize, fieldN.BITS);\n validateMSMPoints(points, c);\n const zero = c.ZERO;\n const tableSize = 2 ** windowSize - 1; // table size (without zero)\n const chunks = Math.ceil(fieldN.BITS / windowSize); // chunks of item\n const MASK = (0, utils_ts_1.bitMask)(windowSize);\n const tables = points.map((p) => {\n const res = [];\n for (let i = 0, acc = p; i < tableSize; i++) {\n res.push(acc);\n acc = acc.add(p);\n }\n return res;\n });\n return (scalars) => {\n validateMSMScalars(scalars, fieldN);\n if (scalars.length > points.length)\n throw new Error('array of scalars must be smaller than array of points');\n let res = zero;\n for (let i = 0; i < chunks; i++) {\n // No need to double if accumulator is still zero.\n if (res !== zero)\n for (let j = 0; j < windowSize; j++)\n res = res.double();\n const shiftBy = BigInt(chunks * windowSize - (i + 1) * windowSize);\n for (let j = 0; j < scalars.length; j++) {\n const n = scalars[j];\n const curr = Number((n >> shiftBy) & MASK);\n if (!curr)\n continue; // skip zero scalars chunks\n res = res.add(tables[j][curr - 1]);\n }\n }\n return res;\n };\n}\n// TODO: remove\n/** @deprecated */\nfunction validateBasic(curve) {\n (0, modular_ts_1.validateField)(curve.Fp);\n (0, utils_ts_1.validateObject)(curve, {\n n: 'bigint',\n h: 'bigint',\n Gx: 'field',\n Gy: 'field',\n }, {\n nBitLength: 'isSafeInteger',\n nByteLength: 'isSafeInteger',\n });\n // Set defaults\n return Object.freeze({\n ...(0, modular_ts_1.nLength)(curve.n, curve.nBitLength),\n ...curve,\n ...{ p: curve.Fp.ORDER },\n });\n}\nfunction createField(order, field, isLE) {\n if (field) {\n if (field.ORDER !== order)\n throw new Error('Field.ORDER must match order: Fp == p, Fn == n');\n (0, modular_ts_1.validateField)(field);\n return field;\n }\n else {\n return (0, modular_ts_1.Field)(order, { isLE });\n }\n}\n/** Validates CURVE opts and creates fields */\nfunction _createCurveFields(type, CURVE, curveOpts = {}, FpFnLE) {\n if (FpFnLE === undefined)\n FpFnLE = type === 'edwards';\n if (!CURVE || typeof CURVE !== 'object')\n throw new Error(`expected valid ${type} CURVE object`);\n for (const p of ['p', 'n', 'h']) {\n const val = CURVE[p];\n if (!(typeof val === 'bigint' && val > _0n))\n throw new Error(`CURVE.${p} must be positive bigint`);\n }\n const Fp = createField(CURVE.p, curveOpts.Fp, FpFnLE);\n const Fn = createField(CURVE.n, curveOpts.Fn, FpFnLE);\n const _b = type === 'weierstrass' ? 'b' : 'd';\n const params = ['Gx', 'Gy', 'a', _b];\n for (const p of params) {\n // @ts-ignore\n if (!Fp.isValid(CURVE[p]))\n throw new Error(`CURVE.${p} must be valid field element of CURVE.Fp`);\n }\n CURVE = Object.freeze(Object.assign({}, CURVE));\n return { CURVE, Fp, Fn };\n}\n//# sourceMappingURL=curve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._DST_scalar = void 0;\nexports.expand_message_xmd = expand_message_xmd;\nexports.expand_message_xof = expand_message_xof;\nexports.hash_to_field = hash_to_field;\nexports.isogenyMap = isogenyMap;\nexports.createHasher = createHasher;\nconst utils_ts_1 = require(\"../utils.js\");\nconst modular_ts_1 = require(\"./modular.js\");\n// Octet Stream to Integer. \"spec\" implementation of os2ip is 2.5x slower vs bytesToNumberBE.\nconst os2ip = utils_ts_1.bytesToNumberBE;\n// Integer to Octet Stream (numberToBytesBE)\nfunction i2osp(value, length) {\n anum(value);\n anum(length);\n if (value < 0 || value >= 1 << (8 * length))\n throw new Error('invalid I2OSP input: ' + value);\n const res = Array.from({ length }).fill(0);\n for (let i = length - 1; i >= 0; i--) {\n res[i] = value & 0xff;\n value >>>= 8;\n }\n return new Uint8Array(res);\n}\nfunction strxor(a, b) {\n const arr = new Uint8Array(a.length);\n for (let i = 0; i < a.length; i++) {\n arr[i] = a[i] ^ b[i];\n }\n return arr;\n}\nfunction anum(item) {\n if (!Number.isSafeInteger(item))\n throw new Error('number expected');\n}\nfunction normDST(DST) {\n if (!(0, utils_ts_1.isBytes)(DST) && typeof DST !== 'string')\n throw new Error('DST must be Uint8Array or string');\n return typeof DST === 'string' ? (0, utils_ts_1.utf8ToBytes)(DST) : DST;\n}\n/**\n * Produces a uniformly random byte string using a cryptographic hash function H that outputs b bits.\n * [RFC 9380 5.3.1](https://www.rfc-editor.org/rfc/rfc9380#section-5.3.1).\n */\nfunction expand_message_xmd(msg, DST, lenInBytes, H) {\n (0, utils_ts_1.abytes)(msg);\n anum(lenInBytes);\n DST = normDST(DST);\n // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n if (DST.length > 255)\n DST = H((0, utils_ts_1.concatBytes)((0, utils_ts_1.utf8ToBytes)('H2C-OVERSIZE-DST-'), DST));\n const { outputLen: b_in_bytes, blockLen: r_in_bytes } = H;\n const ell = Math.ceil(lenInBytes / b_in_bytes);\n if (lenInBytes > 65535 || ell > 255)\n throw new Error('expand_message_xmd: invalid lenInBytes');\n const DST_prime = (0, utils_ts_1.concatBytes)(DST, i2osp(DST.length, 1));\n const Z_pad = i2osp(0, r_in_bytes);\n const l_i_b_str = i2osp(lenInBytes, 2); // len_in_bytes_str\n const b = new Array(ell);\n const b_0 = H((0, utils_ts_1.concatBytes)(Z_pad, msg, l_i_b_str, i2osp(0, 1), DST_prime));\n b[0] = H((0, utils_ts_1.concatBytes)(b_0, i2osp(1, 1), DST_prime));\n for (let i = 1; i <= ell; i++) {\n const args = [strxor(b_0, b[i - 1]), i2osp(i + 1, 1), DST_prime];\n b[i] = H((0, utils_ts_1.concatBytes)(...args));\n }\n const pseudo_random_bytes = (0, utils_ts_1.concatBytes)(...b);\n return pseudo_random_bytes.slice(0, lenInBytes);\n}\n/**\n * Produces a uniformly random byte string using an extendable-output function (XOF) H.\n * 1. The collision resistance of H MUST be at least k bits.\n * 2. H MUST be an XOF that has been proved indifferentiable from\n * a random oracle under a reasonable cryptographic assumption.\n * [RFC 9380 5.3.2](https://www.rfc-editor.org/rfc/rfc9380#section-5.3.2).\n */\nfunction expand_message_xof(msg, DST, lenInBytes, k, H) {\n (0, utils_ts_1.abytes)(msg);\n anum(lenInBytes);\n DST = normDST(DST);\n // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n // DST = H('H2C-OVERSIZE-DST-' || a_very_long_DST, Math.ceil((lenInBytes * k) / 8));\n if (DST.length > 255) {\n const dkLen = Math.ceil((2 * k) / 8);\n DST = H.create({ dkLen }).update((0, utils_ts_1.utf8ToBytes)('H2C-OVERSIZE-DST-')).update(DST).digest();\n }\n if (lenInBytes > 65535 || DST.length > 255)\n throw new Error('expand_message_xof: invalid lenInBytes');\n return (H.create({ dkLen: lenInBytes })\n .update(msg)\n .update(i2osp(lenInBytes, 2))\n // 2. DST_prime = DST || I2OSP(len(DST), 1)\n .update(DST)\n .update(i2osp(DST.length, 1))\n .digest());\n}\n/**\n * Hashes arbitrary-length byte strings to a list of one or more elements of a finite field F.\n * [RFC 9380 5.2](https://www.rfc-editor.org/rfc/rfc9380#section-5.2).\n * @param msg a byte string containing the message to hash\n * @param count the number of elements of F to output\n * @param options `{DST: string, p: bigint, m: number, k: number, expand: 'xmd' | 'xof', hash: H}`, see above\n * @returns [u_0, ..., u_(count - 1)], a list of field elements.\n */\nfunction hash_to_field(msg, count, options) {\n (0, utils_ts_1._validateObject)(options, {\n p: 'bigint',\n m: 'number',\n k: 'number',\n hash: 'function',\n });\n const { p, k, m, hash, expand, DST } = options;\n if (!(0, utils_ts_1.isHash)(options.hash))\n throw new Error('expected valid hash');\n (0, utils_ts_1.abytes)(msg);\n anum(count);\n const log2p = p.toString(2).length;\n const L = Math.ceil((log2p + k) / 8); // section 5.1 of ietf draft link above\n const len_in_bytes = count * m * L;\n let prb; // pseudo_random_bytes\n if (expand === 'xmd') {\n prb = expand_message_xmd(msg, DST, len_in_bytes, hash);\n }\n else if (expand === 'xof') {\n prb = expand_message_xof(msg, DST, len_in_bytes, k, hash);\n }\n else if (expand === '_internal_pass') {\n // for internal tests only\n prb = msg;\n }\n else {\n throw new Error('expand must be \"xmd\" or \"xof\"');\n }\n const u = new Array(count);\n for (let i = 0; i < count; i++) {\n const e = new Array(m);\n for (let j = 0; j < m; j++) {\n const elm_offset = L * (j + i * m);\n const tv = prb.subarray(elm_offset, elm_offset + L);\n e[j] = (0, modular_ts_1.mod)(os2ip(tv), p);\n }\n u[i] = e;\n }\n return u;\n}\nfunction isogenyMap(field, map) {\n // Make same order as in spec\n const coeff = map.map((i) => Array.from(i).reverse());\n return (x, y) => {\n const [xn, xd, yn, yd] = coeff.map((val) => val.reduce((acc, i) => field.add(field.mul(acc, x), i)));\n // 6.6.3\n // Exceptional cases of iso_map are inputs that cause the denominator of\n // either rational function to evaluate to zero; such cases MUST return\n // the identity point on E.\n const [xd_inv, yd_inv] = (0, modular_ts_1.FpInvertBatch)(field, [xd, yd], true);\n x = field.mul(xn, xd_inv); // xNum / xDen\n y = field.mul(y, field.mul(yn, yd_inv)); // y * (yNum / yDev)\n return { x, y };\n };\n}\nexports._DST_scalar = (0, utils_ts_1.utf8ToBytes)('HashToScalar-');\n/** Creates hash-to-curve methods from EC Point and mapToCurve function. See {@link H2CHasher}. */\nfunction createHasher(Point, mapToCurve, defaults) {\n if (typeof mapToCurve !== 'function')\n throw new Error('mapToCurve() must be defined');\n function map(num) {\n return Point.fromAffine(mapToCurve(num));\n }\n function clear(initial) {\n const P = initial.clearCofactor();\n if (P.equals(Point.ZERO))\n return Point.ZERO; // zero will throw in assert\n P.assertValidity();\n return P;\n }\n return {\n defaults,\n hashToCurve(msg, options) {\n const opts = Object.assign({}, defaults, options);\n const u = hash_to_field(msg, 2, opts);\n const u0 = map(u[0]);\n const u1 = map(u[1]);\n return clear(u0.add(u1));\n },\n encodeToCurve(msg, options) {\n const optsDst = defaults.encodeDST ? { DST: defaults.encodeDST } : {};\n const opts = Object.assign({}, defaults, optsDst, options);\n const u = hash_to_field(msg, 1, opts);\n const u0 = map(u[0]);\n return clear(u0);\n },\n /** See {@link H2CHasher} */\n mapToCurve(scalars) {\n if (!Array.isArray(scalars))\n throw new Error('expected array of bigints');\n for (const i of scalars)\n if (typeof i !== 'bigint')\n throw new Error('expected array of bigints');\n return clear(map(scalars));\n },\n // hash_to_scalar can produce 0: https://www.rfc-editor.org/errata/eid8393\n // RFC 9380, draft-irtf-cfrg-bbs-signatures-08\n hashToScalar(msg, options) {\n // @ts-ignore\n const N = Point.Fn.ORDER;\n const opts = Object.assign({}, defaults, { p: N, m: 1, DST: exports._DST_scalar }, options);\n return hash_to_field(msg, 1, opts)[0][0];\n },\n };\n}\n//# sourceMappingURL=hash-to-curve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNegativeLE = void 0;\nexports.mod = mod;\nexports.pow = pow;\nexports.pow2 = pow2;\nexports.invert = invert;\nexports.tonelliShanks = tonelliShanks;\nexports.FpSqrt = FpSqrt;\nexports.validateField = validateField;\nexports.FpPow = FpPow;\nexports.FpInvertBatch = FpInvertBatch;\nexports.FpDiv = FpDiv;\nexports.FpLegendre = FpLegendre;\nexports.FpIsSquare = FpIsSquare;\nexports.nLength = nLength;\nexports.Field = Field;\nexports.FpSqrtOdd = FpSqrtOdd;\nexports.FpSqrtEven = FpSqrtEven;\nexports.hashToPrivateScalar = hashToPrivateScalar;\nexports.getFieldBytesLength = getFieldBytesLength;\nexports.getMinHashLength = getMinHashLength;\nexports.mapHashToField = mapHashToField;\n/**\n * Utils for modular division and fields.\n * Field over 11 is a finite (Galois) field is integer number operations `mod 11`.\n * There is no division: it is replaced by modular multiplicative inverse.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst utils_ts_1 = require(\"../utils.js\");\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = /* @__PURE__ */ BigInt(2), _3n = /* @__PURE__ */ BigInt(3);\n// prettier-ignore\nconst _4n = /* @__PURE__ */ BigInt(4), _5n = /* @__PURE__ */ BigInt(5), _7n = /* @__PURE__ */ BigInt(7);\n// prettier-ignore\nconst _8n = /* @__PURE__ */ BigInt(8), _9n = /* @__PURE__ */ BigInt(9), _16n = /* @__PURE__ */ BigInt(16);\n// Calculates a modulo b\nfunction mod(a, b) {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\n/**\n * Efficiently raise num to power and do modular division.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\nfunction pow(num, power, modulo) {\n return FpPow(Field(modulo), num, power);\n}\n/** Does `x^(2^power)` mod p. `pow2(30, 4)` == `30^(2^4)` */\nfunction pow2(x, power, modulo) {\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= modulo;\n }\n return res;\n}\n/**\n * Inverses number over modulo.\n * Implemented using [Euclidean GCD](https://brilliant.org/wiki/extended-euclidean-algorithm/).\n */\nfunction invert(number, modulo) {\n if (number === _0n)\n throw new Error('invert: expected non-zero number');\n if (modulo <= _0n)\n throw new Error('invert: expected positive modulus, got ' + modulo);\n // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n let a = mod(number, modulo);\n let b = modulo;\n // prettier-ignore\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n // JIT applies optimization if those two lines follow each other\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n // prettier-ignore\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\nfunction assertIsSquare(Fp, root, n) {\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n}\n// Not all roots are possible! Example which will throw:\n// const NUM =\n// n = 72057594037927816n;\n// Fp = Field(BigInt('0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab'));\nfunction sqrt3mod4(Fp, n) {\n const p1div4 = (Fp.ORDER + _1n) / _4n;\n const root = Fp.pow(n, p1div4);\n assertIsSquare(Fp, root, n);\n return root;\n}\nfunction sqrt5mod8(Fp, n) {\n const p5div8 = (Fp.ORDER - _5n) / _8n;\n const n2 = Fp.mul(n, _2n);\n const v = Fp.pow(n2, p5div8);\n const nv = Fp.mul(n, v);\n const i = Fp.mul(Fp.mul(nv, _2n), v);\n const root = Fp.mul(nv, Fp.sub(i, Fp.ONE));\n assertIsSquare(Fp, root, n);\n return root;\n}\n// Based on RFC9380, Kong algorithm\n// prettier-ignore\nfunction sqrt9mod16(P) {\n const Fp_ = Field(P);\n const tn = tonelliShanks(P);\n const c1 = tn(Fp_, Fp_.neg(Fp_.ONE)); // 1. c1 = sqrt(-1) in F, i.e., (c1^2) == -1 in F\n const c2 = tn(Fp_, c1); // 2. c2 = sqrt(c1) in F, i.e., (c2^2) == c1 in F\n const c3 = tn(Fp_, Fp_.neg(c1)); // 3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n const c4 = (P + _7n) / _16n; // 4. c4 = (q + 7) / 16 # Integer arithmetic\n return (Fp, n) => {\n let tv1 = Fp.pow(n, c4); // 1. tv1 = x^c4\n let tv2 = Fp.mul(tv1, c1); // 2. tv2 = c1 * tv1\n const tv3 = Fp.mul(tv1, c2); // 3. tv3 = c2 * tv1\n const tv4 = Fp.mul(tv1, c3); // 4. tv4 = c3 * tv1\n const e1 = Fp.eql(Fp.sqr(tv2), n); // 5. e1 = (tv2^2) == x\n const e2 = Fp.eql(Fp.sqr(tv3), n); // 6. e2 = (tv3^2) == x\n tv1 = Fp.cmov(tv1, tv2, e1); // 7. tv1 = CMOV(tv1, tv2, e1) # Select tv2 if (tv2^2) == x\n tv2 = Fp.cmov(tv4, tv3, e2); // 8. tv2 = CMOV(tv4, tv3, e2) # Select tv3 if (tv3^2) == x\n const e3 = Fp.eql(Fp.sqr(tv2), n); // 9. e3 = (tv2^2) == x\n const root = Fp.cmov(tv1, tv2, e3); // 10. z = CMOV(tv1, tv2, e3) # Select sqrt from tv1 & tv2\n assertIsSquare(Fp, root, n);\n return root;\n };\n}\n/**\n * Tonelli-Shanks square root search algorithm.\n * 1. https://eprint.iacr.org/2012/685.pdf (page 12)\n * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks\n * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nfunction tonelliShanks(P) {\n // Initialization (precomputation).\n // Caching initialization could boost perf by 7%.\n if (P < _3n)\n throw new Error('sqrt is not defined for small field');\n // Factor P - 1 = Q * 2^S, where Q is odd\n let Q = P - _1n;\n let S = 0;\n while (Q % _2n === _0n) {\n Q /= _2n;\n S++;\n }\n // Find the first quadratic non-residue Z >= 2\n let Z = _2n;\n const _Fp = Field(P);\n while (FpLegendre(_Fp, Z) === 1) {\n // Basic primality test for P. After x iterations, chance of\n // not finding quadratic non-residue is 2^x, so 2^1000.\n if (Z++ > 1000)\n throw new Error('Cannot find square root: probably non-prime P');\n }\n // Fast-path; usually done before Z, but we do \"primality test\".\n if (S === 1)\n return sqrt3mod4;\n // Slow-path\n // TODO: test on Fp2 and others\n let cc = _Fp.pow(Z, Q); // c = z^Q\n const Q1div2 = (Q + _1n) / _2n;\n return function tonelliSlow(Fp, n) {\n if (Fp.is0(n))\n return n;\n // Check if n is a quadratic residue using Legendre symbol\n if (FpLegendre(Fp, n) !== 1)\n throw new Error('Cannot find square root');\n // Initialize variables for the main loop\n let M = S;\n let c = Fp.mul(Fp.ONE, cc); // c = z^Q, move cc from field _Fp into field Fp\n let t = Fp.pow(n, Q); // t = n^Q, first guess at the fudge factor\n let R = Fp.pow(n, Q1div2); // R = n^((Q+1)/2), first guess at the square root\n // Main loop\n // while t != 1\n while (!Fp.eql(t, Fp.ONE)) {\n if (Fp.is0(t))\n return Fp.ZERO; // if t=0 return R=0\n let i = 1;\n // Find the smallest i >= 1 such that t^(2^i) ≡ 1 (mod P)\n let t_tmp = Fp.sqr(t); // t^(2^1)\n while (!Fp.eql(t_tmp, Fp.ONE)) {\n i++;\n t_tmp = Fp.sqr(t_tmp); // t^(2^2)...\n if (i === M)\n throw new Error('Cannot find square root');\n }\n // Calculate the exponent for b: 2^(M - i - 1)\n const exponent = _1n << BigInt(M - i - 1); // bigint is important\n const b = Fp.pow(c, exponent); // b = 2^(M - i - 1)\n // Update variables\n M = i;\n c = Fp.sqr(b); // c = b^2\n t = Fp.mul(t, c); // t = (t * b^2)\n R = Fp.mul(R, b); // R = R*b\n }\n return R;\n };\n}\n/**\n * Square root for a finite field. Will try optimized versions first:\n *\n * 1. P ≡ 3 (mod 4)\n * 2. P ≡ 5 (mod 8)\n * 3. P ≡ 9 (mod 16)\n * 4. Tonelli-Shanks algorithm\n *\n * Different algorithms can give different roots, it is up to user to decide which one they want.\n * For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n */\nfunction FpSqrt(P) {\n // P ≡ 3 (mod 4) => √n = n^((P+1)/4)\n if (P % _4n === _3n)\n return sqrt3mod4;\n // P ≡ 5 (mod 8) => Atkin algorithm, page 10 of https://eprint.iacr.org/2012/685.pdf\n if (P % _8n === _5n)\n return sqrt5mod8;\n // P ≡ 9 (mod 16) => Kong algorithm, page 11 of https://eprint.iacr.org/2012/685.pdf (algorithm 4)\n if (P % _16n === _9n)\n return sqrt9mod16(P);\n // Tonelli-Shanks algorithm\n return tonelliShanks(P);\n}\n// Little-endian check for first LE bit (last BE bit);\nconst isNegativeLE = (num, modulo) => (mod(num, modulo) & _1n) === _1n;\nexports.isNegativeLE = isNegativeLE;\n// prettier-ignore\nconst FIELD_FIELDS = [\n 'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr',\n 'eql', 'add', 'sub', 'mul', 'pow', 'div',\n 'addN', 'subN', 'mulN', 'sqrN'\n];\nfunction validateField(field) {\n const initial = {\n ORDER: 'bigint',\n MASK: 'bigint',\n BYTES: 'number',\n BITS: 'number',\n };\n const opts = FIELD_FIELDS.reduce((map, val) => {\n map[val] = 'function';\n return map;\n }, initial);\n (0, utils_ts_1._validateObject)(field, opts);\n // const max = 16384;\n // if (field.BYTES < 1 || field.BYTES > max) throw new Error('invalid field');\n // if (field.BITS < 1 || field.BITS > 8 * max) throw new Error('invalid field');\n return field;\n}\n// Generic field functions\n/**\n * Same as `pow` but for Fp: non-constant-time.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n */\nfunction FpPow(Fp, num, power) {\n if (power < _0n)\n throw new Error('invalid exponent, negatives unsupported');\n if (power === _0n)\n return Fp.ONE;\n if (power === _1n)\n return num;\n let p = Fp.ONE;\n let d = num;\n while (power > _0n) {\n if (power & _1n)\n p = Fp.mul(p, d);\n d = Fp.sqr(d);\n power >>= _1n;\n }\n return p;\n}\n/**\n * Efficiently invert an array of Field elements.\n * Exception-free. Will return `undefined` for 0 elements.\n * @param passZero map 0 to 0 (instead of undefined)\n */\nfunction FpInvertBatch(Fp, nums, passZero = false) {\n const inverted = new Array(nums.length).fill(passZero ? Fp.ZERO : undefined);\n // Walk from first to last, multiply them by each other MOD p\n const multipliedAcc = nums.reduce((acc, num, i) => {\n if (Fp.is0(num))\n return acc;\n inverted[i] = acc;\n return Fp.mul(acc, num);\n }, Fp.ONE);\n // Invert last element\n const invertedAcc = Fp.inv(multipliedAcc);\n // Walk from last to first, multiply them by inverted each other MOD p\n nums.reduceRight((acc, num, i) => {\n if (Fp.is0(num))\n return acc;\n inverted[i] = Fp.mul(acc, inverted[i]);\n return Fp.mul(acc, num);\n }, invertedAcc);\n return inverted;\n}\n// TODO: remove\nfunction FpDiv(Fp, lhs, rhs) {\n return Fp.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, Fp.ORDER) : Fp.inv(rhs));\n}\n/**\n * Legendre symbol.\n * Legendre constant is used to calculate Legendre symbol (a | p)\n * which denotes the value of a^((p-1)/2) (mod p).\n *\n * * (a | p) ≡ 1 if a is a square (mod p), quadratic residue\n * * (a | p) ≡ -1 if a is not a square (mod p), quadratic non residue\n * * (a | p) ≡ 0 if a ≡ 0 (mod p)\n */\nfunction FpLegendre(Fp, n) {\n // We can use 3rd argument as optional cache of this value\n // but seems unneeded for now. The operation is very fast.\n const p1mod2 = (Fp.ORDER - _1n) / _2n;\n const powered = Fp.pow(n, p1mod2);\n const yes = Fp.eql(powered, Fp.ONE);\n const zero = Fp.eql(powered, Fp.ZERO);\n const no = Fp.eql(powered, Fp.neg(Fp.ONE));\n if (!yes && !zero && !no)\n throw new Error('invalid Legendre symbol result');\n return yes ? 1 : zero ? 0 : -1;\n}\n// This function returns True whenever the value x is a square in the field F.\nfunction FpIsSquare(Fp, n) {\n const l = FpLegendre(Fp, n);\n return l === 1;\n}\n// CURVE.n lengths\nfunction nLength(n, nBitLength) {\n // Bit size, byte size of CURVE.n\n if (nBitLength !== undefined)\n (0, utils_ts_1.anumber)(nBitLength);\n const _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length;\n const nByteLength = Math.ceil(_nBitLength / 8);\n return { nBitLength: _nBitLength, nByteLength };\n}\n/**\n * Creates a finite field. Major performance optimizations:\n * * 1. Denormalized operations like mulN instead of mul.\n * * 2. Identical object shape: never add or remove keys.\n * * 3. `Object.freeze`.\n * Fragile: always run a benchmark on a change.\n * Security note: operations don't check 'isValid' for all elements for performance reasons,\n * it is caller responsibility to check this.\n * This is low-level code, please make sure you know what you're doing.\n *\n * Note about field properties:\n * * CHARACTERISTIC p = prime number, number of elements in main subgroup.\n * * ORDER q = similar to cofactor in curves, may be composite `q = p^m`.\n *\n * @param ORDER field order, probably prime, or could be composite\n * @param bitLen how many bits the field consumes\n * @param isLE (default: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\nfunction Field(ORDER, bitLenOrOpts, // TODO: use opts only in v2?\nisLE = false, opts = {}) {\n if (ORDER <= _0n)\n throw new Error('invalid field: expected ORDER > 0, got ' + ORDER);\n let _nbitLength = undefined;\n let _sqrt = undefined;\n let modFromBytes = false;\n let allowedLengths = undefined;\n if (typeof bitLenOrOpts === 'object' && bitLenOrOpts != null) {\n if (opts.sqrt || isLE)\n throw new Error('cannot specify opts in two arguments');\n const _opts = bitLenOrOpts;\n if (_opts.BITS)\n _nbitLength = _opts.BITS;\n if (_opts.sqrt)\n _sqrt = _opts.sqrt;\n if (typeof _opts.isLE === 'boolean')\n isLE = _opts.isLE;\n if (typeof _opts.modFromBytes === 'boolean')\n modFromBytes = _opts.modFromBytes;\n allowedLengths = _opts.allowedLengths;\n }\n else {\n if (typeof bitLenOrOpts === 'number')\n _nbitLength = bitLenOrOpts;\n if (opts.sqrt)\n _sqrt = opts.sqrt;\n }\n const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, _nbitLength);\n if (BYTES > 2048)\n throw new Error('invalid field: expected ORDER of <= 2048 bytes');\n let sqrtP; // cached sqrtP\n const f = Object.freeze({\n ORDER,\n isLE,\n BITS,\n BYTES,\n MASK: (0, utils_ts_1.bitMask)(BITS),\n ZERO: _0n,\n ONE: _1n,\n allowedLengths: allowedLengths,\n create: (num) => mod(num, ORDER),\n isValid: (num) => {\n if (typeof num !== 'bigint')\n throw new Error('invalid field element: expected bigint, got ' + typeof num);\n return _0n <= num && num < ORDER; // 0 is valid element, but it's not invertible\n },\n is0: (num) => num === _0n,\n // is valid and invertible\n isValidNot0: (num) => !f.is0(num) && f.isValid(num),\n isOdd: (num) => (num & _1n) === _1n,\n neg: (num) => mod(-num, ORDER),\n eql: (lhs, rhs) => lhs === rhs,\n sqr: (num) => mod(num * num, ORDER),\n add: (lhs, rhs) => mod(lhs + rhs, ORDER),\n sub: (lhs, rhs) => mod(lhs - rhs, ORDER),\n mul: (lhs, rhs) => mod(lhs * rhs, ORDER),\n pow: (num, power) => FpPow(f, num, power),\n div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER),\n // Same as above, but doesn't normalize\n sqrN: (num) => num * num,\n addN: (lhs, rhs) => lhs + rhs,\n subN: (lhs, rhs) => lhs - rhs,\n mulN: (lhs, rhs) => lhs * rhs,\n inv: (num) => invert(num, ORDER),\n sqrt: _sqrt ||\n ((n) => {\n if (!sqrtP)\n sqrtP = FpSqrt(ORDER);\n return sqrtP(f, n);\n }),\n toBytes: (num) => (isLE ? (0, utils_ts_1.numberToBytesLE)(num, BYTES) : (0, utils_ts_1.numberToBytesBE)(num, BYTES)),\n fromBytes: (bytes, skipValidation = true) => {\n if (allowedLengths) {\n if (!allowedLengths.includes(bytes.length) || bytes.length > BYTES) {\n throw new Error('Field.fromBytes: expected ' + allowedLengths + ' bytes, got ' + bytes.length);\n }\n const padded = new Uint8Array(BYTES);\n // isLE add 0 to right, !isLE to the left.\n padded.set(bytes, isLE ? 0 : padded.length - bytes.length);\n bytes = padded;\n }\n if (bytes.length !== BYTES)\n throw new Error('Field.fromBytes: expected ' + BYTES + ' bytes, got ' + bytes.length);\n let scalar = isLE ? (0, utils_ts_1.bytesToNumberLE)(bytes) : (0, utils_ts_1.bytesToNumberBE)(bytes);\n if (modFromBytes)\n scalar = mod(scalar, ORDER);\n if (!skipValidation)\n if (!f.isValid(scalar))\n throw new Error('invalid field element: outside of range 0..ORDER');\n // NOTE: we don't validate scalar here, please use isValid. This done such way because some\n // protocol may allow non-reduced scalar that reduced later or changed some other way.\n return scalar;\n },\n // TODO: we don't need it here, move out to separate fn\n invertBatch: (lst) => FpInvertBatch(f, lst),\n // We can't move this out because Fp6, Fp12 implement it\n // and it's unclear what to return in there.\n cmov: (a, b, c) => (c ? b : a),\n });\n return Object.freeze(f);\n}\n// Generic random scalar, we can do same for other fields if via Fp2.mul(Fp2.ONE, Fp2.random)?\n// This allows unsafe methods like ignore bias or zero. These unsafe, but often used in different protocols (if deterministic RNG).\n// which mean we cannot force this via opts.\n// Not sure what to do with randomBytes, we can accept it inside opts if wanted.\n// Probably need to export getMinHashLength somewhere?\n// random(bytes?: Uint8Array, unsafeAllowZero = false, unsafeAllowBias = false) {\n// const LEN = !unsafeAllowBias ? getMinHashLength(ORDER) : BYTES;\n// if (bytes === undefined) bytes = randomBytes(LEN); // _opts.randomBytes?\n// const num = isLE ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes);\n// // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n// const reduced = unsafeAllowZero ? mod(num, ORDER) : mod(num, ORDER - _1n) + _1n;\n// return reduced;\n// },\nfunction FpSqrtOdd(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(\"Field doesn't have isOdd\");\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? root : Fp.neg(root);\n}\nfunction FpSqrtEven(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(\"Field doesn't have isOdd\");\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? Fp.neg(root) : root;\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Same as mapKeyToField, but accepts less bytes (40 instead of 48 for 32-byte field).\n * Which makes it slightly more biased, less secure.\n * @deprecated use `mapKeyToField` instead\n */\nfunction hashToPrivateScalar(hash, groupOrder, isLE = false) {\n hash = (0, utils_ts_1.ensureBytes)('privateHash', hash);\n const hashLen = hash.length;\n const minLen = nLength(groupOrder).nByteLength + 8;\n if (minLen < 24 || hashLen < minLen || hashLen > 1024)\n throw new Error('hashToPrivateScalar: expected ' + minLen + '-1024 bytes of input, got ' + hashLen);\n const num = isLE ? (0, utils_ts_1.bytesToNumberLE)(hash) : (0, utils_ts_1.bytesToNumberBE)(hash);\n return mod(num, groupOrder - _1n) + _1n;\n}\n/**\n * Returns total number of bytes consumed by the field element.\n * For example, 32 bytes for usual 256-bit weierstrass curve.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of field\n */\nfunction getFieldBytesLength(fieldOrder) {\n if (typeof fieldOrder !== 'bigint')\n throw new Error('field order must be bigint');\n const bitLength = fieldOrder.toString(2).length;\n return Math.ceil(bitLength / 8);\n}\n/**\n * Returns minimal amount of bytes that can be safely reduced\n * by field order.\n * Should be 2^-128 for 128-bit curve such as P256.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of target hash\n */\nfunction getMinHashLength(fieldOrder) {\n const length = getFieldBytesLength(fieldOrder);\n return length + Math.ceil(length / 2);\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Can take (n + n/2) or more bytes of uniform input e.g. from CSPRNG or KDF\n * and convert them into private scalar, with the modulo bias being negligible.\n * Needs at least 48 bytes of input for 32-byte private key.\n * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/\n * FIPS 186-5, A.2 https://csrc.nist.gov/publications/detail/fips/186/5/final\n * RFC 9380, https://www.rfc-editor.org/rfc/rfc9380#section-5\n * @param hash hash output from SHA3 or a similar function\n * @param groupOrder size of subgroup - (e.g. secp256k1.CURVE.n)\n * @param isLE interpret hash bytes as LE num\n * @returns valid private scalar\n */\nfunction mapHashToField(key, fieldOrder, isLE = false) {\n const len = key.length;\n const fieldLen = getFieldBytesLength(fieldOrder);\n const minLen = getMinHashLength(fieldOrder);\n // No small numbers: need to understand bias story. No huge numbers: easier to detect JS timings.\n if (len < 16 || len < minLen || len > 1024)\n throw new Error('expected ' + minLen + '-1024 bytes of input, got ' + len);\n const num = isLE ? (0, utils_ts_1.bytesToNumberLE)(key) : (0, utils_ts_1.bytesToNumberBE)(key);\n // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n const reduced = mod(num, fieldOrder - _1n) + _1n;\n return isLE ? (0, utils_ts_1.numberToBytesLE)(reduced, fieldLen) : (0, utils_ts_1.numberToBytesBE)(reduced, fieldLen);\n}\n//# sourceMappingURL=modular.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DER = exports.DERErr = void 0;\nexports._splitEndoScalar = _splitEndoScalar;\nexports._normFnElement = _normFnElement;\nexports.weierstrassN = weierstrassN;\nexports.SWUFpSqrtRatio = SWUFpSqrtRatio;\nexports.mapToCurveSimpleSWU = mapToCurveSimpleSWU;\nexports.ecdh = ecdh;\nexports.ecdsa = ecdsa;\nexports.weierstrassPoints = weierstrassPoints;\nexports._legacyHelperEquat = _legacyHelperEquat;\nexports.weierstrass = weierstrass;\n/**\n * Short Weierstrass curve methods. The formula is: y² = x³ + ax + b.\n *\n * ### Design rationale for types\n *\n * * Interaction between classes from different curves should fail:\n * `k256.Point.BASE.add(p256.Point.BASE)`\n * * For this purpose we want to use `instanceof` operator, which is fast and works during runtime\n * * Different calls of `curve()` would return different classes -\n * `curve(params) !== curve(params)`: if somebody decided to monkey-patch their curve,\n * it won't affect others\n *\n * TypeScript can't infer types for classes created inside a function. Classes is one instance\n * of nominative types in TypeScript and interfaces only check for shape, so it's hard to create\n * unique type for every function call.\n *\n * We can use generic types via some param, like curve opts, but that would:\n * 1. Enable interaction between `curve(params)` and `curve(params)` (curves of same params)\n * which is hard to debug.\n * 2. Params can be generic and we can't enforce them to be constant value:\n * if somebody creates curve from non-constant params,\n * it would be allowed to interact with other curves with non-constant params\n *\n * @todo https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-7.html#unique-symbol\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst hmac_js_1 = require(\"@noble/hashes/hmac.js\");\nconst utils_1 = require(\"@noble/hashes/utils\");\nconst utils_ts_1 = require(\"../utils.js\");\nconst curve_ts_1 = require(\"./curve.js\");\nconst modular_ts_1 = require(\"./modular.js\");\n// We construct basis in such way that den is always positive and equals n, but num sign depends on basis (not on secret value)\nconst divNearest = (num, den) => (num + (num >= 0 ? den : -den) / _2n) / den;\n/**\n * Splits scalar for GLV endomorphism.\n */\nfunction _splitEndoScalar(k, basis, n) {\n // Split scalar into two such that part is ~half bits: `abs(part) < sqrt(N)`\n // Since part can be negative, we need to do this on point.\n // TODO: verifyScalar function which consumes lambda\n const [[a1, b1], [a2, b2]] = basis;\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n // |k1|/|k2| is < sqrt(N), but can be negative.\n // If we do `k1 mod N`, we'll get big scalar (`> sqrt(N)`): so, we do cheaper negation instead.\n let k1 = k - c1 * a1 - c2 * a2;\n let k2 = -c1 * b1 - c2 * b2;\n const k1neg = k1 < _0n;\n const k2neg = k2 < _0n;\n if (k1neg)\n k1 = -k1;\n if (k2neg)\n k2 = -k2;\n // Double check that resulting scalar less than half bits of N: otherwise wNAF will fail.\n // This should only happen on wrong basises. Also, math inside is too complex and I don't trust it.\n const MAX_NUM = (0, utils_ts_1.bitMask)(Math.ceil((0, utils_ts_1.bitLen)(n) / 2)) + _1n; // Half bits of N\n if (k1 < _0n || k1 >= MAX_NUM || k2 < _0n || k2 >= MAX_NUM) {\n throw new Error('splitScalar (endomorphism): failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n}\nfunction validateSigFormat(format) {\n if (!['compact', 'recovered', 'der'].includes(format))\n throw new Error('Signature format must be \"compact\", \"recovered\", or \"der\"');\n return format;\n}\nfunction validateSigOpts(opts, def) {\n const optsn = {};\n for (let optName of Object.keys(def)) {\n // @ts-ignore\n optsn[optName] = opts[optName] === undefined ? def[optName] : opts[optName];\n }\n (0, utils_ts_1._abool2)(optsn.lowS, 'lowS');\n (0, utils_ts_1._abool2)(optsn.prehash, 'prehash');\n if (optsn.format !== undefined)\n validateSigFormat(optsn.format);\n return optsn;\n}\nclass DERErr extends Error {\n constructor(m = '') {\n super(m);\n }\n}\nexports.DERErr = DERErr;\n/**\n * ASN.1 DER encoding utilities. ASN is very complex & fragile. Format:\n *\n * [0x30 (SEQUENCE), bytelength, 0x02 (INTEGER), intLength, R, 0x02 (INTEGER), intLength, S]\n *\n * Docs: https://letsencrypt.org/docs/a-warm-welcome-to-asn1-and-der/, https://luca.ntop.org/Teaching/Appunti/asn1.html\n */\nexports.DER = {\n // asn.1 DER encoding utils\n Err: DERErr,\n // Basic building block is TLV (Tag-Length-Value)\n _tlv: {\n encode: (tag, data) => {\n const { Err: E } = exports.DER;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length & 1)\n throw new E('tlv.encode: unpadded data');\n const dataLen = data.length / 2;\n const len = (0, utils_ts_1.numberToHexUnpadded)(dataLen);\n if ((len.length / 2) & 128)\n throw new E('tlv.encode: long form length too big');\n // length of length with long form flag\n const lenLen = dataLen > 127 ? (0, utils_ts_1.numberToHexUnpadded)((len.length / 2) | 128) : '';\n const t = (0, utils_ts_1.numberToHexUnpadded)(tag);\n return t + lenLen + len + data;\n },\n // v - value, l - left bytes (unparsed)\n decode(tag, data) {\n const { Err: E } = exports.DER;\n let pos = 0;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length < 2 || data[pos++] !== tag)\n throw new E('tlv.decode: wrong tlv');\n const first = data[pos++];\n const isLong = !!(first & 128); // First bit of first length byte is flag for short/long form\n let length = 0;\n if (!isLong)\n length = first;\n else {\n // Long form: [longFlag(1bit), lengthLength(7bit), length (BE)]\n const lenLen = first & 127;\n if (!lenLen)\n throw new E('tlv.decode(long): indefinite length not supported');\n if (lenLen > 4)\n throw new E('tlv.decode(long): byte length is too big'); // this will overflow u32 in js\n const lengthBytes = data.subarray(pos, pos + lenLen);\n if (lengthBytes.length !== lenLen)\n throw new E('tlv.decode: length bytes not complete');\n if (lengthBytes[0] === 0)\n throw new E('tlv.decode(long): zero leftmost byte');\n for (const b of lengthBytes)\n length = (length << 8) | b;\n pos += lenLen;\n if (length < 128)\n throw new E('tlv.decode(long): not minimal encoding');\n }\n const v = data.subarray(pos, pos + length);\n if (v.length !== length)\n throw new E('tlv.decode: wrong value length');\n return { v, l: data.subarray(pos + length) };\n },\n },\n // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n // since we always use positive integers here. It must always be empty:\n // - add zero byte if exists\n // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n _int: {\n encode(num) {\n const { Err: E } = exports.DER;\n if (num < _0n)\n throw new E('integer: negative integers are not allowed');\n let hex = (0, utils_ts_1.numberToHexUnpadded)(num);\n // Pad with zero byte if negative flag is present\n if (Number.parseInt(hex[0], 16) & 0b1000)\n hex = '00' + hex;\n if (hex.length & 1)\n throw new E('unexpected DER parsing assertion: unpadded hex');\n return hex;\n },\n decode(data) {\n const { Err: E } = exports.DER;\n if (data[0] & 128)\n throw new E('invalid signature integer: negative');\n if (data[0] === 0x00 && !(data[1] & 128))\n throw new E('invalid signature integer: unnecessary leading zero');\n return (0, utils_ts_1.bytesToNumberBE)(data);\n },\n },\n toSig(hex) {\n // parse DER signature\n const { Err: E, _int: int, _tlv: tlv } = exports.DER;\n const data = (0, utils_ts_1.ensureBytes)('signature', hex);\n const { v: seqBytes, l: seqLeftBytes } = tlv.decode(0x30, data);\n if (seqLeftBytes.length)\n throw new E('invalid signature: left bytes after parsing');\n const { v: rBytes, l: rLeftBytes } = tlv.decode(0x02, seqBytes);\n const { v: sBytes, l: sLeftBytes } = tlv.decode(0x02, rLeftBytes);\n if (sLeftBytes.length)\n throw new E('invalid signature: left bytes after parsing');\n return { r: int.decode(rBytes), s: int.decode(sBytes) };\n },\n hexFromSig(sig) {\n const { _tlv: tlv, _int: int } = exports.DER;\n const rs = tlv.encode(0x02, int.encode(sig.r));\n const ss = tlv.encode(0x02, int.encode(sig.s));\n const seq = rs + ss;\n return tlv.encode(0x30, seq);\n },\n};\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3), _4n = BigInt(4);\nfunction _normFnElement(Fn, key) {\n const { BYTES: expected } = Fn;\n let num;\n if (typeof key === 'bigint') {\n num = key;\n }\n else {\n let bytes = (0, utils_ts_1.ensureBytes)('private key', key);\n try {\n num = Fn.fromBytes(bytes);\n }\n catch (error) {\n throw new Error(`invalid private key: expected ui8a of size ${expected}, got ${typeof key}`);\n }\n }\n if (!Fn.isValidNot0(num))\n throw new Error('invalid private key: out of range [1..N-1]');\n return num;\n}\n/**\n * Creates weierstrass Point constructor, based on specified curve options.\n *\n * @example\n```js\nconst opts = {\n p: BigInt('0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff'),\n n: BigInt('0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551'),\n h: BigInt(1),\n a: BigInt('0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc'),\n b: BigInt('0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b'),\n Gx: BigInt('0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296'),\n Gy: BigInt('0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5'),\n};\nconst p256_Point = weierstrass(opts);\n```\n */\nfunction weierstrassN(params, extraOpts = {}) {\n const validated = (0, curve_ts_1._createCurveFields)('weierstrass', params, extraOpts);\n const { Fp, Fn } = validated;\n let CURVE = validated.CURVE;\n const { h: cofactor, n: CURVE_ORDER } = CURVE;\n (0, utils_ts_1._validateObject)(extraOpts, {}, {\n allowInfinityPoint: 'boolean',\n clearCofactor: 'function',\n isTorsionFree: 'function',\n fromBytes: 'function',\n toBytes: 'function',\n endo: 'object',\n wrapPrivateKey: 'boolean',\n });\n const { endo } = extraOpts;\n if (endo) {\n // validateObject(endo, { beta: 'bigint', splitScalar: 'function' });\n if (!Fp.is0(CURVE.a) || typeof endo.beta !== 'bigint' || !Array.isArray(endo.basises)) {\n throw new Error('invalid endo: expected \"beta\": bigint and \"basises\": array');\n }\n }\n const lengths = getWLengths(Fp, Fn);\n function assertCompressionIsSupported() {\n if (!Fp.isOdd)\n throw new Error('compression is not supported: Field does not have .isOdd()');\n }\n // Implements IEEE P1363 point encoding\n function pointToBytes(_c, point, isCompressed) {\n const { x, y } = point.toAffine();\n const bx = Fp.toBytes(x);\n (0, utils_ts_1._abool2)(isCompressed, 'isCompressed');\n if (isCompressed) {\n assertCompressionIsSupported();\n const hasEvenY = !Fp.isOdd(y);\n return (0, utils_ts_1.concatBytes)(pprefix(hasEvenY), bx);\n }\n else {\n return (0, utils_ts_1.concatBytes)(Uint8Array.of(0x04), bx, Fp.toBytes(y));\n }\n }\n function pointFromBytes(bytes) {\n (0, utils_ts_1._abytes2)(bytes, undefined, 'Point');\n const { publicKey: comp, publicKeyUncompressed: uncomp } = lengths; // e.g. for 32-byte: 33, 65\n const length = bytes.length;\n const head = bytes[0];\n const tail = bytes.subarray(1);\n // No actual validation is done here: use .assertValidity()\n if (length === comp && (head === 0x02 || head === 0x03)) {\n const x = Fp.fromBytes(tail);\n if (!Fp.isValid(x))\n throw new Error('bad point: is not on curve, wrong x');\n const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n let y;\n try {\n y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n }\n catch (sqrtError) {\n const err = sqrtError instanceof Error ? ': ' + sqrtError.message : '';\n throw new Error('bad point: is not on curve, sqrt error' + err);\n }\n assertCompressionIsSupported();\n const isYOdd = Fp.isOdd(y); // (y & _1n) === _1n;\n const isHeadOdd = (head & 1) === 1; // ECDSA-specific\n if (isHeadOdd !== isYOdd)\n y = Fp.neg(y);\n return { x, y };\n }\n else if (length === uncomp && head === 0x04) {\n // TODO: more checks\n const L = Fp.BYTES;\n const x = Fp.fromBytes(tail.subarray(0, L));\n const y = Fp.fromBytes(tail.subarray(L, L * 2));\n if (!isValidXY(x, y))\n throw new Error('bad point: is not on curve');\n return { x, y };\n }\n else {\n throw new Error(`bad point: got length ${length}, expected compressed=${comp} or uncompressed=${uncomp}`);\n }\n }\n const encodePoint = extraOpts.toBytes || pointToBytes;\n const decodePoint = extraOpts.fromBytes || pointFromBytes;\n function weierstrassEquation(x) {\n const x2 = Fp.sqr(x); // x * x\n const x3 = Fp.mul(x2, x); // x² * x\n return Fp.add(Fp.add(x3, Fp.mul(x, CURVE.a)), CURVE.b); // x³ + a * x + b\n }\n // TODO: move top-level\n /** Checks whether equation holds for given x, y: y² == x³ + ax + b */\n function isValidXY(x, y) {\n const left = Fp.sqr(y); // y²\n const right = weierstrassEquation(x); // x³ + ax + b\n return Fp.eql(left, right);\n }\n // Validate whether the passed curve params are valid.\n // Test 1: equation y² = x³ + ax + b should work for generator point.\n if (!isValidXY(CURVE.Gx, CURVE.Gy))\n throw new Error('bad curve params: generator point');\n // Test 2: discriminant Δ part should be non-zero: 4a³ + 27b² != 0.\n // Guarantees curve is genus-1, smooth (non-singular).\n const _4a3 = Fp.mul(Fp.pow(CURVE.a, _3n), _4n);\n const _27b2 = Fp.mul(Fp.sqr(CURVE.b), BigInt(27));\n if (Fp.is0(Fp.add(_4a3, _27b2)))\n throw new Error('bad curve params: a or b');\n /** Asserts coordinate is valid: 0 <= n < Fp.ORDER. */\n function acoord(title, n, banZero = false) {\n if (!Fp.isValid(n) || (banZero && Fp.is0(n)))\n throw new Error(`bad point coordinate ${title}`);\n return n;\n }\n function aprjpoint(other) {\n if (!(other instanceof Point))\n throw new Error('ProjectivePoint expected');\n }\n function splitEndoScalarN(k) {\n if (!endo || !endo.basises)\n throw new Error('no endo');\n return _splitEndoScalar(k, endo.basises, Fn.ORDER);\n }\n // Memoized toAffine / validity check. They are heavy. Points are immutable.\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (X, Y, Z) ∋ (x=X/Z, y=Y/Z)\n const toAffineMemo = (0, utils_ts_1.memoized)((p, iz) => {\n const { X, Y, Z } = p;\n // Fast-path for normalized points\n if (Fp.eql(Z, Fp.ONE))\n return { x: X, y: Y };\n const is0 = p.is0();\n // If invZ was 0, we return zero point. However we still want to execute\n // all operations, so we replace invZ with a random number, 1.\n if (iz == null)\n iz = is0 ? Fp.ONE : Fp.inv(Z);\n const x = Fp.mul(X, iz);\n const y = Fp.mul(Y, iz);\n const zz = Fp.mul(Z, iz);\n if (is0)\n return { x: Fp.ZERO, y: Fp.ZERO };\n if (!Fp.eql(zz, Fp.ONE))\n throw new Error('invZ was invalid');\n return { x, y };\n });\n // NOTE: on exception this will crash 'cached' and no value will be set.\n // Otherwise true will be return\n const assertValidMemo = (0, utils_ts_1.memoized)((p) => {\n if (p.is0()) {\n // (0, 1, 0) aka ZERO is invalid in most contexts.\n // In BLS, ZERO can be serialized, so we allow it.\n // (0, 0, 0) is invalid representation of ZERO.\n if (extraOpts.allowInfinityPoint && !Fp.is0(p.Y))\n return;\n throw new Error('bad point: ZERO');\n }\n // Some 3rd-party test vectors require different wording between here & `fromCompressedHex`\n const { x, y } = p.toAffine();\n if (!Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('bad point: x or y not field elements');\n if (!isValidXY(x, y))\n throw new Error('bad point: equation left != right');\n if (!p.isTorsionFree())\n throw new Error('bad point: not in prime-order subgroup');\n return true;\n });\n function finishEndo(endoBeta, k1p, k2p, k1neg, k2neg) {\n k2p = new Point(Fp.mul(k2p.X, endoBeta), k2p.Y, k2p.Z);\n k1p = (0, curve_ts_1.negateCt)(k1neg, k1p);\n k2p = (0, curve_ts_1.negateCt)(k2neg, k2p);\n return k1p.add(k2p);\n }\n /**\n * Projective Point works in 3d / projective (homogeneous) coordinates:(X, Y, Z) ∋ (x=X/Z, y=Y/Z).\n * Default Point works in 2d / affine coordinates: (x, y).\n * We're doing calculations in projective, because its operations don't require costly inversion.\n */\n class Point {\n /** Does NOT validate if the point is valid. Use `.assertValidity()`. */\n constructor(X, Y, Z) {\n this.X = acoord('x', X);\n this.Y = acoord('y', Y, true);\n this.Z = acoord('z', Z);\n Object.freeze(this);\n }\n static CURVE() {\n return CURVE;\n }\n /** Does NOT validate if the point is valid. Use `.assertValidity()`. */\n static fromAffine(p) {\n const { x, y } = p || {};\n if (!p || !Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('invalid affine point');\n if (p instanceof Point)\n throw new Error('projective point not allowed');\n // (0, 0) would've produced (0, 0, 1) - instead, we need (0, 1, 0)\n if (Fp.is0(x) && Fp.is0(y))\n return Point.ZERO;\n return new Point(x, y, Fp.ONE);\n }\n static fromBytes(bytes) {\n const P = Point.fromAffine(decodePoint((0, utils_ts_1._abytes2)(bytes, undefined, 'point')));\n P.assertValidity();\n return P;\n }\n static fromHex(hex) {\n return Point.fromBytes((0, utils_ts_1.ensureBytes)('pointHex', hex));\n }\n get x() {\n return this.toAffine().x;\n }\n get y() {\n return this.toAffine().y;\n }\n /**\n *\n * @param windowSize\n * @param isLazy true will defer table computation until the first multiplication\n * @returns\n */\n precompute(windowSize = 8, isLazy = true) {\n wnaf.createCache(this, windowSize);\n if (!isLazy)\n this.multiply(_3n); // random number\n return this;\n }\n // TODO: return `this`\n /** A point on curve is valid if it conforms to equation. */\n assertValidity() {\n assertValidMemo(this);\n }\n hasEvenY() {\n const { y } = this.toAffine();\n if (!Fp.isOdd)\n throw new Error(\"Field doesn't support isOdd\");\n return !Fp.isOdd(y);\n }\n /** Compare one point to another. */\n equals(other) {\n aprjpoint(other);\n const { X: X1, Y: Y1, Z: Z1 } = this;\n const { X: X2, Y: Y2, Z: Z2 } = other;\n const U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1));\n const U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1));\n return U1 && U2;\n }\n /** Flips point to one corresponding to (x, -y) in Affine coordinates. */\n negate() {\n return new Point(this.X, Fp.neg(this.Y), this.Z);\n }\n // Renes-Costello-Batina exception-free doubling formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 3\n // Cost: 8M + 3S + 3*a + 2*b3 + 15add.\n double() {\n const { a, b } = CURVE;\n const b3 = Fp.mul(b, _3n);\n const { X: X1, Y: Y1, Z: Z1 } = this;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n let t0 = Fp.mul(X1, X1); // step 1\n let t1 = Fp.mul(Y1, Y1);\n let t2 = Fp.mul(Z1, Z1);\n let t3 = Fp.mul(X1, Y1);\n t3 = Fp.add(t3, t3); // step 5\n Z3 = Fp.mul(X1, Z1);\n Z3 = Fp.add(Z3, Z3);\n X3 = Fp.mul(a, Z3);\n Y3 = Fp.mul(b3, t2);\n Y3 = Fp.add(X3, Y3); // step 10\n X3 = Fp.sub(t1, Y3);\n Y3 = Fp.add(t1, Y3);\n Y3 = Fp.mul(X3, Y3);\n X3 = Fp.mul(t3, X3);\n Z3 = Fp.mul(b3, Z3); // step 15\n t2 = Fp.mul(a, t2);\n t3 = Fp.sub(t0, t2);\n t3 = Fp.mul(a, t3);\n t3 = Fp.add(t3, Z3);\n Z3 = Fp.add(t0, t0); // step 20\n t0 = Fp.add(Z3, t0);\n t0 = Fp.add(t0, t2);\n t0 = Fp.mul(t0, t3);\n Y3 = Fp.add(Y3, t0);\n t2 = Fp.mul(Y1, Z1); // step 25\n t2 = Fp.add(t2, t2);\n t0 = Fp.mul(t2, t3);\n X3 = Fp.sub(X3, t0);\n Z3 = Fp.mul(t2, t1);\n Z3 = Fp.add(Z3, Z3); // step 30\n Z3 = Fp.add(Z3, Z3);\n return new Point(X3, Y3, Z3);\n }\n // Renes-Costello-Batina exception-free addition formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 1\n // Cost: 12M + 0S + 3*a + 3*b3 + 23add.\n add(other) {\n aprjpoint(other);\n const { X: X1, Y: Y1, Z: Z1 } = this;\n const { X: X2, Y: Y2, Z: Z2 } = other;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n const a = CURVE.a;\n const b3 = Fp.mul(CURVE.b, _3n);\n let t0 = Fp.mul(X1, X2); // step 1\n let t1 = Fp.mul(Y1, Y2);\n let t2 = Fp.mul(Z1, Z2);\n let t3 = Fp.add(X1, Y1);\n let t4 = Fp.add(X2, Y2); // step 5\n t3 = Fp.mul(t3, t4);\n t4 = Fp.add(t0, t1);\n t3 = Fp.sub(t3, t4);\n t4 = Fp.add(X1, Z1);\n let t5 = Fp.add(X2, Z2); // step 10\n t4 = Fp.mul(t4, t5);\n t5 = Fp.add(t0, t2);\n t4 = Fp.sub(t4, t5);\n t5 = Fp.add(Y1, Z1);\n X3 = Fp.add(Y2, Z2); // step 15\n t5 = Fp.mul(t5, X3);\n X3 = Fp.add(t1, t2);\n t5 = Fp.sub(t5, X3);\n Z3 = Fp.mul(a, t4);\n X3 = Fp.mul(b3, t2); // step 20\n Z3 = Fp.add(X3, Z3);\n X3 = Fp.sub(t1, Z3);\n Z3 = Fp.add(t1, Z3);\n Y3 = Fp.mul(X3, Z3);\n t1 = Fp.add(t0, t0); // step 25\n t1 = Fp.add(t1, t0);\n t2 = Fp.mul(a, t2);\n t4 = Fp.mul(b3, t4);\n t1 = Fp.add(t1, t2);\n t2 = Fp.sub(t0, t2); // step 30\n t2 = Fp.mul(a, t2);\n t4 = Fp.add(t4, t2);\n t0 = Fp.mul(t1, t4);\n Y3 = Fp.add(Y3, t0);\n t0 = Fp.mul(t5, t4); // step 35\n X3 = Fp.mul(t3, X3);\n X3 = Fp.sub(X3, t0);\n t0 = Fp.mul(t3, t1);\n Z3 = Fp.mul(t5, Z3);\n Z3 = Fp.add(Z3, t0); // step 40\n return new Point(X3, Y3, Z3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n is0() {\n return this.equals(Point.ZERO);\n }\n /**\n * Constant time multiplication.\n * Uses wNAF method. Windowed method may be 10% faster,\n * but takes 2x longer to generate and consumes 2x memory.\n * Uses precomputes when available.\n * Uses endomorphism for Koblitz curves.\n * @param scalar by which the point would be multiplied\n * @returns New point\n */\n multiply(scalar) {\n const { endo } = extraOpts;\n if (!Fn.isValidNot0(scalar))\n throw new Error('invalid scalar: out of range'); // 0 is invalid\n let point, fake; // Fake point is used to const-time mult\n const mul = (n) => wnaf.cached(this, n, (p) => (0, curve_ts_1.normalizeZ)(Point, p));\n /** See docs for {@link EndomorphismOpts} */\n if (endo) {\n const { k1neg, k1, k2neg, k2 } = splitEndoScalarN(scalar);\n const { p: k1p, f: k1f } = mul(k1);\n const { p: k2p, f: k2f } = mul(k2);\n fake = k1f.add(k2f);\n point = finishEndo(endo.beta, k1p, k2p, k1neg, k2neg);\n }\n else {\n const { p, f } = mul(scalar);\n point = p;\n fake = f;\n }\n // Normalize `z` for both points, but return only real one\n return (0, curve_ts_1.normalizeZ)(Point, [point, fake])[0];\n }\n /**\n * Non-constant-time multiplication. Uses double-and-add algorithm.\n * It's faster, but should only be used when you don't care about\n * an exposed secret key e.g. sig verification, which works over *public* keys.\n */\n multiplyUnsafe(sc) {\n const { endo } = extraOpts;\n const p = this;\n if (!Fn.isValid(sc))\n throw new Error('invalid scalar: out of range'); // 0 is valid\n if (sc === _0n || p.is0())\n return Point.ZERO;\n if (sc === _1n)\n return p; // fast-path\n if (wnaf.hasCache(this))\n return this.multiply(sc);\n if (endo) {\n const { k1neg, k1, k2neg, k2 } = splitEndoScalarN(sc);\n const { p1, p2 } = (0, curve_ts_1.mulEndoUnsafe)(Point, p, k1, k2); // 30% faster vs wnaf.unsafe\n return finishEndo(endo.beta, p1, p2, k1neg, k2neg);\n }\n else {\n return wnaf.unsafe(p, sc);\n }\n }\n multiplyAndAddUnsafe(Q, a, b) {\n const sum = this.multiplyUnsafe(a).add(Q.multiplyUnsafe(b));\n return sum.is0() ? undefined : sum;\n }\n /**\n * Converts Projective point to affine (x, y) coordinates.\n * @param invertedZ Z^-1 (inverted zero) - optional, precomputation is useful for invertBatch\n */\n toAffine(invertedZ) {\n return toAffineMemo(this, invertedZ);\n }\n /**\n * Checks whether Point is free of torsion elements (is in prime subgroup).\n * Always torsion-free for cofactor=1 curves.\n */\n isTorsionFree() {\n const { isTorsionFree } = extraOpts;\n if (cofactor === _1n)\n return true;\n if (isTorsionFree)\n return isTorsionFree(Point, this);\n return wnaf.unsafe(this, CURVE_ORDER).is0();\n }\n clearCofactor() {\n const { clearCofactor } = extraOpts;\n if (cofactor === _1n)\n return this; // Fast-path\n if (clearCofactor)\n return clearCofactor(Point, this);\n return this.multiplyUnsafe(cofactor);\n }\n isSmallOrder() {\n // can we use this.clearCofactor()?\n return this.multiplyUnsafe(cofactor).is0();\n }\n toBytes(isCompressed = true) {\n (0, utils_ts_1._abool2)(isCompressed, 'isCompressed');\n this.assertValidity();\n return encodePoint(Point, this, isCompressed);\n }\n toHex(isCompressed = true) {\n return (0, utils_ts_1.bytesToHex)(this.toBytes(isCompressed));\n }\n toString() {\n return ``;\n }\n // TODO: remove\n get px() {\n return this.X;\n }\n get py() {\n return this.X;\n }\n get pz() {\n return this.Z;\n }\n toRawBytes(isCompressed = true) {\n return this.toBytes(isCompressed);\n }\n _setWindowSize(windowSize) {\n this.precompute(windowSize);\n }\n static normalizeZ(points) {\n return (0, curve_ts_1.normalizeZ)(Point, points);\n }\n static msm(points, scalars) {\n return (0, curve_ts_1.pippenger)(Point, Fn, points, scalars);\n }\n static fromPrivateKey(privateKey) {\n return Point.BASE.multiply(_normFnElement(Fn, privateKey));\n }\n }\n // base / generator point\n Point.BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n // zero / infinity / identity point\n Point.ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO); // 0, 1, 0\n // math field\n Point.Fp = Fp;\n // scalar field\n Point.Fn = Fn;\n const bits = Fn.BITS;\n const wnaf = new curve_ts_1.wNAF(Point, extraOpts.endo ? Math.ceil(bits / 2) : bits);\n Point.BASE.precompute(8); // Enable precomputes. Slows down first publicKey computation by 20ms.\n return Point;\n}\n// Points start with byte 0x02 when y is even; otherwise 0x03\nfunction pprefix(hasEvenY) {\n return Uint8Array.of(hasEvenY ? 0x02 : 0x03);\n}\n/**\n * Implementation of the Shallue and van de Woestijne method for any weierstrass curve.\n * TODO: check if there is a way to merge this with uvRatio in Edwards; move to modular.\n * b = True and y = sqrt(u / v) if (u / v) is square in F, and\n * b = False and y = sqrt(Z * (u / v)) otherwise.\n * @param Fp\n * @param Z\n * @returns\n */\nfunction SWUFpSqrtRatio(Fp, Z) {\n // Generic implementation\n const q = Fp.ORDER;\n let l = _0n;\n for (let o = q - _1n; o % _2n === _0n; o /= _2n)\n l += _1n;\n const c1 = l; // 1. c1, the largest integer such that 2^c1 divides q - 1.\n // We need 2n ** c1 and 2n ** (c1-1). We can't use **; but we can use <<.\n // 2n ** c1 == 2n << (c1-1)\n const _2n_pow_c1_1 = _2n << (c1 - _1n - _1n);\n const _2n_pow_c1 = _2n_pow_c1_1 * _2n;\n const c2 = (q - _1n) / _2n_pow_c1; // 2. c2 = (q - 1) / (2^c1) # Integer arithmetic\n const c3 = (c2 - _1n) / _2n; // 3. c3 = (c2 - 1) / 2 # Integer arithmetic\n const c4 = _2n_pow_c1 - _1n; // 4. c4 = 2^c1 - 1 # Integer arithmetic\n const c5 = _2n_pow_c1_1; // 5. c5 = 2^(c1 - 1) # Integer arithmetic\n const c6 = Fp.pow(Z, c2); // 6. c6 = Z^c2\n const c7 = Fp.pow(Z, (c2 + _1n) / _2n); // 7. c7 = Z^((c2 + 1) / 2)\n let sqrtRatio = (u, v) => {\n let tv1 = c6; // 1. tv1 = c6\n let tv2 = Fp.pow(v, c4); // 2. tv2 = v^c4\n let tv3 = Fp.sqr(tv2); // 3. tv3 = tv2^2\n tv3 = Fp.mul(tv3, v); // 4. tv3 = tv3 * v\n let tv5 = Fp.mul(u, tv3); // 5. tv5 = u * tv3\n tv5 = Fp.pow(tv5, c3); // 6. tv5 = tv5^c3\n tv5 = Fp.mul(tv5, tv2); // 7. tv5 = tv5 * tv2\n tv2 = Fp.mul(tv5, v); // 8. tv2 = tv5 * v\n tv3 = Fp.mul(tv5, u); // 9. tv3 = tv5 * u\n let tv4 = Fp.mul(tv3, tv2); // 10. tv4 = tv3 * tv2\n tv5 = Fp.pow(tv4, c5); // 11. tv5 = tv4^c5\n let isQR = Fp.eql(tv5, Fp.ONE); // 12. isQR = tv5 == 1\n tv2 = Fp.mul(tv3, c7); // 13. tv2 = tv3 * c7\n tv5 = Fp.mul(tv4, tv1); // 14. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, isQR); // 15. tv3 = CMOV(tv2, tv3, isQR)\n tv4 = Fp.cmov(tv5, tv4, isQR); // 16. tv4 = CMOV(tv5, tv4, isQR)\n // 17. for i in (c1, c1 - 1, ..., 2):\n for (let i = c1; i > _1n; i--) {\n let tv5 = i - _2n; // 18. tv5 = i - 2\n tv5 = _2n << (tv5 - _1n); // 19. tv5 = 2^tv5\n let tvv5 = Fp.pow(tv4, tv5); // 20. tv5 = tv4^tv5\n const e1 = Fp.eql(tvv5, Fp.ONE); // 21. e1 = tv5 == 1\n tv2 = Fp.mul(tv3, tv1); // 22. tv2 = tv3 * tv1\n tv1 = Fp.mul(tv1, tv1); // 23. tv1 = tv1 * tv1\n tvv5 = Fp.mul(tv4, tv1); // 24. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, e1); // 25. tv3 = CMOV(tv2, tv3, e1)\n tv4 = Fp.cmov(tvv5, tv4, e1); // 26. tv4 = CMOV(tv5, tv4, e1)\n }\n return { isValid: isQR, value: tv3 };\n };\n if (Fp.ORDER % _4n === _3n) {\n // sqrt_ratio_3mod4(u, v)\n const c1 = (Fp.ORDER - _3n) / _4n; // 1. c1 = (q - 3) / 4 # Integer arithmetic\n const c2 = Fp.sqrt(Fp.neg(Z)); // 2. c2 = sqrt(-Z)\n sqrtRatio = (u, v) => {\n let tv1 = Fp.sqr(v); // 1. tv1 = v^2\n const tv2 = Fp.mul(u, v); // 2. tv2 = u * v\n tv1 = Fp.mul(tv1, tv2); // 3. tv1 = tv1 * tv2\n let y1 = Fp.pow(tv1, c1); // 4. y1 = tv1^c1\n y1 = Fp.mul(y1, tv2); // 5. y1 = y1 * tv2\n const y2 = Fp.mul(y1, c2); // 6. y2 = y1 * c2\n const tv3 = Fp.mul(Fp.sqr(y1), v); // 7. tv3 = y1^2; 8. tv3 = tv3 * v\n const isQR = Fp.eql(tv3, u); // 9. isQR = tv3 == u\n let y = Fp.cmov(y2, y1, isQR); // 10. y = CMOV(y2, y1, isQR)\n return { isValid: isQR, value: y }; // 11. return (isQR, y) isQR ? y : y*c2\n };\n }\n // No curves uses that\n // if (Fp.ORDER % _8n === _5n) // sqrt_ratio_5mod8\n return sqrtRatio;\n}\n/**\n * Simplified Shallue-van de Woestijne-Ulas Method\n * https://www.rfc-editor.org/rfc/rfc9380#section-6.6.2\n */\nfunction mapToCurveSimpleSWU(Fp, opts) {\n (0, modular_ts_1.validateField)(Fp);\n const { A, B, Z } = opts;\n if (!Fp.isValid(A) || !Fp.isValid(B) || !Fp.isValid(Z))\n throw new Error('mapToCurveSimpleSWU: invalid opts');\n const sqrtRatio = SWUFpSqrtRatio(Fp, Z);\n if (!Fp.isOdd)\n throw new Error('Field does not have .isOdd()');\n // Input: u, an element of F.\n // Output: (x, y), a point on E.\n return (u) => {\n // prettier-ignore\n let tv1, tv2, tv3, tv4, tv5, tv6, x, y;\n tv1 = Fp.sqr(u); // 1. tv1 = u^2\n tv1 = Fp.mul(tv1, Z); // 2. tv1 = Z * tv1\n tv2 = Fp.sqr(tv1); // 3. tv2 = tv1^2\n tv2 = Fp.add(tv2, tv1); // 4. tv2 = tv2 + tv1\n tv3 = Fp.add(tv2, Fp.ONE); // 5. tv3 = tv2 + 1\n tv3 = Fp.mul(tv3, B); // 6. tv3 = B * tv3\n tv4 = Fp.cmov(Z, Fp.neg(tv2), !Fp.eql(tv2, Fp.ZERO)); // 7. tv4 = CMOV(Z, -tv2, tv2 != 0)\n tv4 = Fp.mul(tv4, A); // 8. tv4 = A * tv4\n tv2 = Fp.sqr(tv3); // 9. tv2 = tv3^2\n tv6 = Fp.sqr(tv4); // 10. tv6 = tv4^2\n tv5 = Fp.mul(tv6, A); // 11. tv5 = A * tv6\n tv2 = Fp.add(tv2, tv5); // 12. tv2 = tv2 + tv5\n tv2 = Fp.mul(tv2, tv3); // 13. tv2 = tv2 * tv3\n tv6 = Fp.mul(tv6, tv4); // 14. tv6 = tv6 * tv4\n tv5 = Fp.mul(tv6, B); // 15. tv5 = B * tv6\n tv2 = Fp.add(tv2, tv5); // 16. tv2 = tv2 + tv5\n x = Fp.mul(tv1, tv3); // 17. x = tv1 * tv3\n const { isValid, value } = sqrtRatio(tv2, tv6); // 18. (is_gx1_square, y1) = sqrt_ratio(tv2, tv6)\n y = Fp.mul(tv1, u); // 19. y = tv1 * u -> Z * u^3 * y1\n y = Fp.mul(y, value); // 20. y = y * y1\n x = Fp.cmov(x, tv3, isValid); // 21. x = CMOV(x, tv3, is_gx1_square)\n y = Fp.cmov(y, value, isValid); // 22. y = CMOV(y, y1, is_gx1_square)\n const e1 = Fp.isOdd(u) === Fp.isOdd(y); // 23. e1 = sgn0(u) == sgn0(y)\n y = Fp.cmov(Fp.neg(y), y, e1); // 24. y = CMOV(-y, y, e1)\n const tv4_inv = (0, modular_ts_1.FpInvertBatch)(Fp, [tv4], true)[0];\n x = Fp.mul(x, tv4_inv); // 25. x = x / tv4\n return { x, y };\n };\n}\nfunction getWLengths(Fp, Fn) {\n return {\n secretKey: Fn.BYTES,\n publicKey: 1 + Fp.BYTES,\n publicKeyUncompressed: 1 + 2 * Fp.BYTES,\n publicKeyHasPrefix: true,\n signature: 2 * Fn.BYTES,\n };\n}\n/**\n * Sometimes users only need getPublicKey, getSharedSecret, and secret key handling.\n * This helper ensures no signature functionality is present. Less code, smaller bundle size.\n */\nfunction ecdh(Point, ecdhOpts = {}) {\n const { Fn } = Point;\n const randomBytes_ = ecdhOpts.randomBytes || utils_ts_1.randomBytes;\n const lengths = Object.assign(getWLengths(Point.Fp, Fn), { seed: (0, modular_ts_1.getMinHashLength)(Fn.ORDER) });\n function isValidSecretKey(secretKey) {\n try {\n return !!_normFnElement(Fn, secretKey);\n }\n catch (error) {\n return false;\n }\n }\n function isValidPublicKey(publicKey, isCompressed) {\n const { publicKey: comp, publicKeyUncompressed } = lengths;\n try {\n const l = publicKey.length;\n if (isCompressed === true && l !== comp)\n return false;\n if (isCompressed === false && l !== publicKeyUncompressed)\n return false;\n return !!Point.fromBytes(publicKey);\n }\n catch (error) {\n return false;\n }\n }\n /**\n * Produces cryptographically secure secret key from random of size\n * (groupLen + ceil(groupLen / 2)) with modulo bias being negligible.\n */\n function randomSecretKey(seed = randomBytes_(lengths.seed)) {\n return (0, modular_ts_1.mapHashToField)((0, utils_ts_1._abytes2)(seed, lengths.seed, 'seed'), Fn.ORDER);\n }\n /**\n * Computes public key for a secret key. Checks for validity of the secret key.\n * @param isCompressed whether to return compact (default), or full key\n * @returns Public key, full when isCompressed=false; short when isCompressed=true\n */\n function getPublicKey(secretKey, isCompressed = true) {\n return Point.BASE.multiply(_normFnElement(Fn, secretKey)).toBytes(isCompressed);\n }\n function keygen(seed) {\n const secretKey = randomSecretKey(seed);\n return { secretKey, publicKey: getPublicKey(secretKey) };\n }\n /**\n * Quick and dirty check for item being public key. Does not validate hex, or being on-curve.\n */\n function isProbPub(item) {\n if (typeof item === 'bigint')\n return false;\n if (item instanceof Point)\n return true;\n const { secretKey, publicKey, publicKeyUncompressed } = lengths;\n if (Fn.allowedLengths || secretKey === publicKey)\n return undefined;\n const l = (0, utils_ts_1.ensureBytes)('key', item).length;\n return l === publicKey || l === publicKeyUncompressed;\n }\n /**\n * ECDH (Elliptic Curve Diffie Hellman).\n * Computes shared public key from secret key A and public key B.\n * Checks: 1) secret key validity 2) shared key is on-curve.\n * Does NOT hash the result.\n * @param isCompressed whether to return compact (default), or full key\n * @returns shared public key\n */\n function getSharedSecret(secretKeyA, publicKeyB, isCompressed = true) {\n if (isProbPub(secretKeyA) === true)\n throw new Error('first arg must be private key');\n if (isProbPub(publicKeyB) === false)\n throw new Error('second arg must be public key');\n const s = _normFnElement(Fn, secretKeyA);\n const b = Point.fromHex(publicKeyB); // checks for being on-curve\n return b.multiply(s).toBytes(isCompressed);\n }\n const utils = {\n isValidSecretKey,\n isValidPublicKey,\n randomSecretKey,\n // TODO: remove\n isValidPrivateKey: isValidSecretKey,\n randomPrivateKey: randomSecretKey,\n normPrivateKeyToScalar: (key) => _normFnElement(Fn, key),\n precompute(windowSize = 8, point = Point.BASE) {\n return point.precompute(windowSize, false);\n },\n };\n return Object.freeze({ getPublicKey, getSharedSecret, keygen, Point, utils, lengths });\n}\n/**\n * Creates ECDSA signing interface for given elliptic curve `Point` and `hash` function.\n * We need `hash` for 2 features:\n * 1. Message prehash-ing. NOT used if `sign` / `verify` are called with `prehash: false`\n * 2. k generation in `sign`, using HMAC-drbg(hash)\n *\n * ECDSAOpts are only rarely needed.\n *\n * @example\n * ```js\n * const p256_Point = weierstrass(...);\n * const p256_sha256 = ecdsa(p256_Point, sha256);\n * const p256_sha224 = ecdsa(p256_Point, sha224);\n * const p256_sha224_r = ecdsa(p256_Point, sha224, { randomBytes: (length) => { ... } });\n * ```\n */\nfunction ecdsa(Point, hash, ecdsaOpts = {}) {\n (0, utils_1.ahash)(hash);\n (0, utils_ts_1._validateObject)(ecdsaOpts, {}, {\n hmac: 'function',\n lowS: 'boolean',\n randomBytes: 'function',\n bits2int: 'function',\n bits2int_modN: 'function',\n });\n const randomBytes = ecdsaOpts.randomBytes || utils_ts_1.randomBytes;\n const hmac = ecdsaOpts.hmac ||\n ((key, ...msgs) => (0, hmac_js_1.hmac)(hash, key, (0, utils_ts_1.concatBytes)(...msgs)));\n const { Fp, Fn } = Point;\n const { ORDER: CURVE_ORDER, BITS: fnBits } = Fn;\n const { keygen, getPublicKey, getSharedSecret, utils, lengths } = ecdh(Point, ecdsaOpts);\n const defaultSigOpts = {\n prehash: false,\n lowS: typeof ecdsaOpts.lowS === 'boolean' ? ecdsaOpts.lowS : false,\n format: undefined, //'compact' as ECDSASigFormat,\n extraEntropy: false,\n };\n const defaultSigOpts_format = 'compact';\n function isBiggerThanHalfOrder(number) {\n const HALF = CURVE_ORDER >> _1n;\n return number > HALF;\n }\n function validateRS(title, num) {\n if (!Fn.isValidNot0(num))\n throw new Error(`invalid signature ${title}: out of range 1..Point.Fn.ORDER`);\n return num;\n }\n function validateSigLength(bytes, format) {\n validateSigFormat(format);\n const size = lengths.signature;\n const sizer = format === 'compact' ? size : format === 'recovered' ? size + 1 : undefined;\n return (0, utils_ts_1._abytes2)(bytes, sizer, `${format} signature`);\n }\n /**\n * ECDSA signature with its (r, s) properties. Supports compact, recovered & DER representations.\n */\n class Signature {\n constructor(r, s, recovery) {\n this.r = validateRS('r', r); // r in [1..N-1];\n this.s = validateRS('s', s); // s in [1..N-1];\n if (recovery != null)\n this.recovery = recovery;\n Object.freeze(this);\n }\n static fromBytes(bytes, format = defaultSigOpts_format) {\n validateSigLength(bytes, format);\n let recid;\n if (format === 'der') {\n const { r, s } = exports.DER.toSig((0, utils_ts_1._abytes2)(bytes));\n return new Signature(r, s);\n }\n if (format === 'recovered') {\n recid = bytes[0];\n format = 'compact';\n bytes = bytes.subarray(1);\n }\n const L = Fn.BYTES;\n const r = bytes.subarray(0, L);\n const s = bytes.subarray(L, L * 2);\n return new Signature(Fn.fromBytes(r), Fn.fromBytes(s), recid);\n }\n static fromHex(hex, format) {\n return this.fromBytes((0, utils_ts_1.hexToBytes)(hex), format);\n }\n addRecoveryBit(recovery) {\n return new Signature(this.r, this.s, recovery);\n }\n recoverPublicKey(messageHash) {\n const FIELD_ORDER = Fp.ORDER;\n const { r, s, recovery: rec } = this;\n if (rec == null || ![0, 1, 2, 3].includes(rec))\n throw new Error('recovery id invalid');\n // ECDSA recovery is hard for cofactor > 1 curves.\n // In sign, `r = q.x mod n`, and here we recover q.x from r.\n // While recovering q.x >= n, we need to add r+n for cofactor=1 curves.\n // However, for cofactor>1, r+n may not get q.x:\n // r+n*i would need to be done instead where i is unknown.\n // To easily get i, we either need to:\n // a. increase amount of valid recid values (4, 5...); OR\n // b. prohibit non-prime-order signatures (recid > 1).\n const hasCofactor = CURVE_ORDER * _2n < FIELD_ORDER;\n if (hasCofactor && rec > 1)\n throw new Error('recovery id is ambiguous for h>1 curve');\n const radj = rec === 2 || rec === 3 ? r + CURVE_ORDER : r;\n if (!Fp.isValid(radj))\n throw new Error('recovery id 2 or 3 invalid');\n const x = Fp.toBytes(radj);\n const R = Point.fromBytes((0, utils_ts_1.concatBytes)(pprefix((rec & 1) === 0), x));\n const ir = Fn.inv(radj); // r^-1\n const h = bits2int_modN((0, utils_ts_1.ensureBytes)('msgHash', messageHash)); // Truncate hash\n const u1 = Fn.create(-h * ir); // -hr^-1\n const u2 = Fn.create(s * ir); // sr^-1\n // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1). unsafe is fine: there is no private data.\n const Q = Point.BASE.multiplyUnsafe(u1).add(R.multiplyUnsafe(u2));\n if (Q.is0())\n throw new Error('point at infinify');\n Q.assertValidity();\n return Q;\n }\n // Signatures should be low-s, to prevent malleability.\n hasHighS() {\n return isBiggerThanHalfOrder(this.s);\n }\n toBytes(format = defaultSigOpts_format) {\n validateSigFormat(format);\n if (format === 'der')\n return (0, utils_ts_1.hexToBytes)(exports.DER.hexFromSig(this));\n const r = Fn.toBytes(this.r);\n const s = Fn.toBytes(this.s);\n if (format === 'recovered') {\n if (this.recovery == null)\n throw new Error('recovery bit must be present');\n return (0, utils_ts_1.concatBytes)(Uint8Array.of(this.recovery), r, s);\n }\n return (0, utils_ts_1.concatBytes)(r, s);\n }\n toHex(format) {\n return (0, utils_ts_1.bytesToHex)(this.toBytes(format));\n }\n // TODO: remove\n assertValidity() { }\n static fromCompact(hex) {\n return Signature.fromBytes((0, utils_ts_1.ensureBytes)('sig', hex), 'compact');\n }\n static fromDER(hex) {\n return Signature.fromBytes((0, utils_ts_1.ensureBytes)('sig', hex), 'der');\n }\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, Fn.neg(this.s), this.recovery) : this;\n }\n toDERRawBytes() {\n return this.toBytes('der');\n }\n toDERHex() {\n return (0, utils_ts_1.bytesToHex)(this.toBytes('der'));\n }\n toCompactRawBytes() {\n return this.toBytes('compact');\n }\n toCompactHex() {\n return (0, utils_ts_1.bytesToHex)(this.toBytes('compact'));\n }\n }\n // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets.\n // FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits, which matches bits2int.\n // bits2int can produce res>N, we can do mod(res, N) since the bitLen is the same.\n // int2octets can't be used; pads small msgs with 0: unacceptatble for trunc as per RFC vectors\n const bits2int = ecdsaOpts.bits2int ||\n function bits2int_def(bytes) {\n // Our custom check \"just in case\", for protection against DoS\n if (bytes.length > 8192)\n throw new Error('input is too large');\n // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m)\n // for some cases, since bytes.length * 8 is not actual bitLength.\n const num = (0, utils_ts_1.bytesToNumberBE)(bytes); // check for == u8 done here\n const delta = bytes.length * 8 - fnBits; // truncate to nBitLength leftmost bits\n return delta > 0 ? num >> BigInt(delta) : num;\n };\n const bits2int_modN = ecdsaOpts.bits2int_modN ||\n function bits2int_modN_def(bytes) {\n return Fn.create(bits2int(bytes)); // can't use bytesToNumberBE here\n };\n // Pads output with zero as per spec\n const ORDER_MASK = (0, utils_ts_1.bitMask)(fnBits);\n /** Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`. */\n function int2octets(num) {\n // IMPORTANT: the check ensures working for case `Fn.BYTES != Fn.BITS * 8`\n (0, utils_ts_1.aInRange)('num < 2^' + fnBits, num, _0n, ORDER_MASK);\n return Fn.toBytes(num);\n }\n function validateMsgAndHash(message, prehash) {\n (0, utils_ts_1._abytes2)(message, undefined, 'message');\n return prehash ? (0, utils_ts_1._abytes2)(hash(message), undefined, 'prehashed message') : message;\n }\n /**\n * Steps A, D of RFC6979 3.2.\n * Creates RFC6979 seed; converts msg/privKey to numbers.\n * Used only in sign, not in verify.\n *\n * Warning: we cannot assume here that message has same amount of bytes as curve order,\n * this will be invalid at least for P521. Also it can be bigger for P224 + SHA256.\n */\n function prepSig(message, privateKey, opts) {\n if (['recovered', 'canonical'].some((k) => k in opts))\n throw new Error('sign() legacy options not supported');\n const { lowS, prehash, extraEntropy } = validateSigOpts(opts, defaultSigOpts);\n message = validateMsgAndHash(message, prehash); // RFC6979 3.2 A: h1 = H(m)\n // We can't later call bits2octets, since nested bits2int is broken for curves\n // with fnBits % 8 !== 0. Because of that, we unwrap it here as int2octets call.\n // const bits2octets = (bits) => int2octets(bits2int_modN(bits))\n const h1int = bits2int_modN(message);\n const d = _normFnElement(Fn, privateKey); // validate secret key, convert to bigint\n const seedArgs = [int2octets(d), int2octets(h1int)];\n // extraEntropy. RFC6979 3.6: additional k' (optional).\n if (extraEntropy != null && extraEntropy !== false) {\n // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n // gen random bytes OR pass as-is\n const e = extraEntropy === true ? randomBytes(lengths.secretKey) : extraEntropy;\n seedArgs.push((0, utils_ts_1.ensureBytes)('extraEntropy', e)); // check for being bytes\n }\n const seed = (0, utils_ts_1.concatBytes)(...seedArgs); // Step D of RFC6979 3.2\n const m = h1int; // NOTE: no need to call bits2int second time here, it is inside truncateHash!\n // Converts signature params into point w r/s, checks result for validity.\n // To transform k => Signature:\n // q = k⋅G\n // r = q.x mod n\n // s = k^-1(m + rd) mod n\n // Can use scalar blinding b^-1(bm + bdr) where b ∈ [1,q−1] according to\n // https://tches.iacr.org/index.php/TCHES/article/view/7337/6509. We've decided against it:\n // a) dependency on CSPRNG b) 15% slowdown c) doesn't really help since bigints are not CT\n function k2sig(kBytes) {\n // RFC 6979 Section 3.2, step 3: k = bits2int(T)\n // Important: all mod() calls here must be done over N\n const k = bits2int(kBytes); // mod n, not mod p\n if (!Fn.isValidNot0(k))\n return; // Valid scalars (including k) must be in 1..N-1\n const ik = Fn.inv(k); // k^-1 mod n\n const q = Point.BASE.multiply(k).toAffine(); // q = k⋅G\n const r = Fn.create(q.x); // r = q.x mod n\n if (r === _0n)\n return;\n const s = Fn.create(ik * Fn.create(m + r * d)); // Not using blinding here, see comment above\n if (s === _0n)\n return;\n let recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n); // recovery bit (2 or 3, when q.x > n)\n let normS = s;\n if (lowS && isBiggerThanHalfOrder(s)) {\n normS = Fn.neg(s); // if lowS was passed, ensure s is always\n recovery ^= 1; // // in the bottom half of N\n }\n return new Signature(r, normS, recovery); // use normS, not s\n }\n return { seed, k2sig };\n }\n /**\n * Signs message hash with a secret key.\n *\n * ```\n * sign(m, d) where\n * k = rfc6979_hmac_drbg(m, d)\n * (x, y) = G × k\n * r = x mod n\n * s = (m + dr) / k mod n\n * ```\n */\n function sign(message, secretKey, opts = {}) {\n message = (0, utils_ts_1.ensureBytes)('message', message);\n const { seed, k2sig } = prepSig(message, secretKey, opts); // Steps A, D of RFC6979 3.2.\n const drbg = (0, utils_ts_1.createHmacDrbg)(hash.outputLen, Fn.BYTES, hmac);\n const sig = drbg(seed, k2sig); // Steps B, C, D, E, F, G\n return sig;\n }\n function tryParsingSig(sg) {\n // Try to deduce format\n let sig = undefined;\n const isHex = typeof sg === 'string' || (0, utils_ts_1.isBytes)(sg);\n const isObj = !isHex &&\n sg !== null &&\n typeof sg === 'object' &&\n typeof sg.r === 'bigint' &&\n typeof sg.s === 'bigint';\n if (!isHex && !isObj)\n throw new Error('invalid signature, expected Uint8Array, hex string or Signature instance');\n if (isObj) {\n sig = new Signature(sg.r, sg.s);\n }\n else if (isHex) {\n try {\n sig = Signature.fromBytes((0, utils_ts_1.ensureBytes)('sig', sg), 'der');\n }\n catch (derError) {\n if (!(derError instanceof exports.DER.Err))\n throw derError;\n }\n if (!sig) {\n try {\n sig = Signature.fromBytes((0, utils_ts_1.ensureBytes)('sig', sg), 'compact');\n }\n catch (error) {\n return false;\n }\n }\n }\n if (!sig)\n return false;\n return sig;\n }\n /**\n * Verifies a signature against message and public key.\n * Rejects lowS signatures by default: see {@link ECDSAVerifyOpts}.\n * Implements section 4.1.4 from https://www.secg.org/sec1-v2.pdf:\n *\n * ```\n * verify(r, s, h, P) where\n * u1 = hs^-1 mod n\n * u2 = rs^-1 mod n\n * R = u1⋅G + u2⋅P\n * mod(R.x, n) == r\n * ```\n */\n function verify(signature, message, publicKey, opts = {}) {\n const { lowS, prehash, format } = validateSigOpts(opts, defaultSigOpts);\n publicKey = (0, utils_ts_1.ensureBytes)('publicKey', publicKey);\n message = validateMsgAndHash((0, utils_ts_1.ensureBytes)('message', message), prehash);\n if ('strict' in opts)\n throw new Error('options.strict was renamed to lowS');\n const sig = format === undefined\n ? tryParsingSig(signature)\n : Signature.fromBytes((0, utils_ts_1.ensureBytes)('sig', signature), format);\n if (sig === false)\n return false;\n try {\n const P = Point.fromBytes(publicKey);\n if (lowS && sig.hasHighS())\n return false;\n const { r, s } = sig;\n const h = bits2int_modN(message); // mod n, not mod p\n const is = Fn.inv(s); // s^-1 mod n\n const u1 = Fn.create(h * is); // u1 = hs^-1 mod n\n const u2 = Fn.create(r * is); // u2 = rs^-1 mod n\n const R = Point.BASE.multiplyUnsafe(u1).add(P.multiplyUnsafe(u2)); // u1⋅G + u2⋅P\n if (R.is0())\n return false;\n const v = Fn.create(R.x); // v = r.x mod n\n return v === r;\n }\n catch (e) {\n return false;\n }\n }\n function recoverPublicKey(signature, message, opts = {}) {\n const { prehash } = validateSigOpts(opts, defaultSigOpts);\n message = validateMsgAndHash(message, prehash);\n return Signature.fromBytes(signature, 'recovered').recoverPublicKey(message).toBytes();\n }\n return Object.freeze({\n keygen,\n getPublicKey,\n getSharedSecret,\n utils,\n lengths,\n Point,\n sign,\n verify,\n recoverPublicKey,\n Signature,\n hash,\n });\n}\n/** @deprecated use `weierstrass` in newer releases */\nfunction weierstrassPoints(c) {\n const { CURVE, curveOpts } = _weierstrass_legacy_opts_to_new(c);\n const Point = weierstrassN(CURVE, curveOpts);\n return _weierstrass_new_output_to_legacy(c, Point);\n}\nfunction _weierstrass_legacy_opts_to_new(c) {\n const CURVE = {\n a: c.a,\n b: c.b,\n p: c.Fp.ORDER,\n n: c.n,\n h: c.h,\n Gx: c.Gx,\n Gy: c.Gy,\n };\n const Fp = c.Fp;\n let allowedLengths = c.allowedPrivateKeyLengths\n ? Array.from(new Set(c.allowedPrivateKeyLengths.map((l) => Math.ceil(l / 2))))\n : undefined;\n const Fn = (0, modular_ts_1.Field)(CURVE.n, {\n BITS: c.nBitLength,\n allowedLengths: allowedLengths,\n modFromBytes: c.wrapPrivateKey,\n });\n const curveOpts = {\n Fp,\n Fn,\n allowInfinityPoint: c.allowInfinityPoint,\n endo: c.endo,\n isTorsionFree: c.isTorsionFree,\n clearCofactor: c.clearCofactor,\n fromBytes: c.fromBytes,\n toBytes: c.toBytes,\n };\n return { CURVE, curveOpts };\n}\nfunction _ecdsa_legacy_opts_to_new(c) {\n const { CURVE, curveOpts } = _weierstrass_legacy_opts_to_new(c);\n const ecdsaOpts = {\n hmac: c.hmac,\n randomBytes: c.randomBytes,\n lowS: c.lowS,\n bits2int: c.bits2int,\n bits2int_modN: c.bits2int_modN,\n };\n return { CURVE, curveOpts, hash: c.hash, ecdsaOpts };\n}\nfunction _legacyHelperEquat(Fp, a, b) {\n /**\n * y² = x³ + ax + b: Short weierstrass curve formula. Takes x, returns y².\n * @returns y²\n */\n function weierstrassEquation(x) {\n const x2 = Fp.sqr(x); // x * x\n const x3 = Fp.mul(x2, x); // x² * x\n return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x³ + a * x + b\n }\n return weierstrassEquation;\n}\nfunction _weierstrass_new_output_to_legacy(c, Point) {\n const { Fp, Fn } = Point;\n function isWithinCurveOrder(num) {\n return (0, utils_ts_1.inRange)(num, _1n, Fn.ORDER);\n }\n const weierstrassEquation = _legacyHelperEquat(Fp, c.a, c.b);\n return Object.assign({}, {\n CURVE: c,\n Point: Point,\n ProjectivePoint: Point,\n normPrivateKeyToScalar: (key) => _normFnElement(Fn, key),\n weierstrassEquation,\n isWithinCurveOrder,\n });\n}\nfunction _ecdsa_new_output_to_legacy(c, _ecdsa) {\n const Point = _ecdsa.Point;\n return Object.assign({}, _ecdsa, {\n ProjectivePoint: Point,\n CURVE: Object.assign({}, c, (0, modular_ts_1.nLength)(Point.Fn.ORDER, Point.Fn.BITS)),\n });\n}\n// _ecdsa_legacy\nfunction weierstrass(c) {\n const { CURVE, curveOpts, hash, ecdsaOpts } = _ecdsa_legacy_opts_to_new(c);\n const Point = weierstrassN(CURVE, curveOpts);\n const signs = ecdsa(Point, hash, ecdsaOpts);\n return _ecdsa_new_output_to_legacy(c, signs);\n}\n//# sourceMappingURL=weierstrass.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeToCurve = exports.hashToCurve = exports.secp256k1_hasher = exports.schnorr = exports.secp256k1 = void 0;\n/**\n * SECG secp256k1. See [pdf](https://www.secg.org/sec2-v2.pdf).\n *\n * Belongs to Koblitz curves: it has efficiently-computable GLV endomorphism ψ,\n * check out {@link EndomorphismOpts}. Seems to be rigid (not backdoored).\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst sha2_js_1 = require(\"@noble/hashes/sha2.js\");\nconst utils_js_1 = require(\"@noble/hashes/utils.js\");\nconst _shortw_utils_ts_1 = require(\"./_shortw_utils.js\");\nconst hash_to_curve_ts_1 = require(\"./abstract/hash-to-curve.js\");\nconst modular_ts_1 = require(\"./abstract/modular.js\");\nconst weierstrass_ts_1 = require(\"./abstract/weierstrass.js\");\nconst utils_ts_1 = require(\"./utils.js\");\n// Seems like generator was produced from some seed:\n// `Point.BASE.multiply(Point.Fn.inv(2n, N)).toAffine().x`\n// // gives short x 0x3b78ce563f89a0ed9414f5aa28ad0d96d6795f9c63n\nconst secp256k1_CURVE = {\n p: BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f'),\n n: BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141'),\n h: BigInt(1),\n a: BigInt(0),\n b: BigInt(7),\n Gx: BigInt('0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798'),\n Gy: BigInt('0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8'),\n};\nconst secp256k1_ENDO = {\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n basises: [\n [BigInt('0x3086d221a7d46bcde86c90e49284eb15'), -BigInt('0xe4437ed6010e88286f547fa90abfe4c3')],\n [BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8'), BigInt('0x3086d221a7d46bcde86c90e49284eb15')],\n ],\n};\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\n/**\n * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.\n * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]\n */\nfunction sqrtMod(y) {\n const P = secp256k1_CURVE.p;\n // prettier-ignore\n const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);\n // prettier-ignore\n const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88);\n const b2 = (y * y * y) % P; // x^3, 11\n const b3 = (b2 * b2 * y) % P; // x^7\n const b6 = ((0, modular_ts_1.pow2)(b3, _3n, P) * b3) % P;\n const b9 = ((0, modular_ts_1.pow2)(b6, _3n, P) * b3) % P;\n const b11 = ((0, modular_ts_1.pow2)(b9, _2n, P) * b2) % P;\n const b22 = ((0, modular_ts_1.pow2)(b11, _11n, P) * b11) % P;\n const b44 = ((0, modular_ts_1.pow2)(b22, _22n, P) * b22) % P;\n const b88 = ((0, modular_ts_1.pow2)(b44, _44n, P) * b44) % P;\n const b176 = ((0, modular_ts_1.pow2)(b88, _88n, P) * b88) % P;\n const b220 = ((0, modular_ts_1.pow2)(b176, _44n, P) * b44) % P;\n const b223 = ((0, modular_ts_1.pow2)(b220, _3n, P) * b3) % P;\n const t1 = ((0, modular_ts_1.pow2)(b223, _23n, P) * b22) % P;\n const t2 = ((0, modular_ts_1.pow2)(t1, _6n, P) * b2) % P;\n const root = (0, modular_ts_1.pow2)(t2, _2n, P);\n if (!Fpk1.eql(Fpk1.sqr(root), y))\n throw new Error('Cannot find square root');\n return root;\n}\nconst Fpk1 = (0, modular_ts_1.Field)(secp256k1_CURVE.p, { sqrt: sqrtMod });\n/**\n * secp256k1 curve, ECDSA and ECDH methods.\n *\n * Field: `2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n`\n *\n * @example\n * ```js\n * import { secp256k1 } from '@noble/curves/secp256k1';\n * const { secretKey, publicKey } = secp256k1.keygen();\n * const msg = new TextEncoder().encode('hello');\n * const sig = secp256k1.sign(msg, secretKey);\n * const isValid = secp256k1.verify(sig, msg, publicKey) === true;\n * ```\n */\nexports.secp256k1 = (0, _shortw_utils_ts_1.createCurve)({ ...secp256k1_CURVE, Fp: Fpk1, lowS: true, endo: secp256k1_ENDO }, sha2_js_1.sha256);\n// Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.\n// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\n/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */\nconst TAGGED_HASH_PREFIXES = {};\nfunction taggedHash(tag, ...messages) {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = (0, sha2_js_1.sha256)((0, utils_ts_1.utf8ToBytes)(tag));\n tagP = (0, utils_ts_1.concatBytes)(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return (0, sha2_js_1.sha256)((0, utils_ts_1.concatBytes)(tagP, ...messages));\n}\n// ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03\nconst pointToBytes = (point) => point.toBytes(true).slice(1);\nconst Pointk1 = /* @__PURE__ */ (() => exports.secp256k1.Point)();\nconst hasEven = (y) => y % _2n === _0n;\n// Calculate point, scalar and bytes\nfunction schnorrGetExtPubKey(priv) {\n const { Fn, BASE } = Pointk1;\n const d_ = (0, weierstrass_ts_1._normFnElement)(Fn, priv);\n const p = BASE.multiply(d_); // P = d'⋅G; 0 < d' < n check is done inside\n const scalar = hasEven(p.y) ? d_ : Fn.neg(d_);\n return { scalar, bytes: pointToBytes(p) };\n}\n/**\n * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.\n * @returns valid point checked for being on-curve\n */\nfunction lift_x(x) {\n const Fp = Fpk1;\n if (!Fp.isValidNot0(x))\n throw new Error('invalid x: Fail if x ≥ p');\n const xx = Fp.create(x * x);\n const c = Fp.create(xx * x + BigInt(7)); // Let c = x³ + 7 mod p.\n let y = Fp.sqrt(c); // Let y = c^(p+1)/4 mod p. Same as sqrt().\n // Return the unique point P such that x(P) = x and\n // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise.\n if (!hasEven(y))\n y = Fp.neg(y);\n const p = Pointk1.fromAffine({ x, y });\n p.assertValidity();\n return p;\n}\nconst num = utils_ts_1.bytesToNumberBE;\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge(...args) {\n return Pointk1.Fn.create(num(taggedHash('BIP0340/challenge', ...args)));\n}\n/**\n * Schnorr public key is just `x` coordinate of Point as per BIP340.\n */\nfunction schnorrGetPublicKey(secretKey) {\n return schnorrGetExtPubKey(secretKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)\n}\n/**\n * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.\n * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.\n */\nfunction schnorrSign(message, secretKey, auxRand = (0, utils_js_1.randomBytes)(32)) {\n const { Fn } = Pointk1;\n const m = (0, utils_ts_1.ensureBytes)('message', message);\n const { bytes: px, scalar: d } = schnorrGetExtPubKey(secretKey); // checks for isWithinCurveOrder\n const a = (0, utils_ts_1.ensureBytes)('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array\n const t = Fn.toBytes(d ^ num(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a)\n const rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m)\n // Let k' = int(rand) mod n. Fail if k' = 0. Let R = k'⋅G\n const { bytes: rx, scalar: k } = schnorrGetExtPubKey(rand);\n const e = challenge(rx, px, m); // Let e = int(hash/challenge(bytes(R) || bytes(P) || m)) mod n.\n const sig = new Uint8Array(64); // Let sig = bytes(R) || bytes((k + ed) mod n).\n sig.set(rx, 0);\n sig.set(Fn.toBytes(Fn.create(k + e * d)), 32);\n // If Verify(bytes(P), m, sig) (see below) returns failure, abort\n if (!schnorrVerify(sig, m, px))\n throw new Error('sign: Invalid signature produced');\n return sig;\n}\n/**\n * Verifies Schnorr signature.\n * Will swallow errors & return false except for initial type validation of arguments.\n */\nfunction schnorrVerify(signature, message, publicKey) {\n const { Fn, BASE } = Pointk1;\n const sig = (0, utils_ts_1.ensureBytes)('signature', signature, 64);\n const m = (0, utils_ts_1.ensureBytes)('message', message);\n const pub = (0, utils_ts_1.ensureBytes)('publicKey', publicKey, 32);\n try {\n const P = lift_x(num(pub)); // P = lift_x(int(pk)); fail if that fails\n const r = num(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n if (!(0, utils_ts_1.inRange)(r, _1n, secp256k1_CURVE.p))\n return false;\n const s = num(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n if (!(0, utils_ts_1.inRange)(s, _1n, secp256k1_CURVE.n))\n return false;\n // int(challenge(bytes(r)||bytes(P)||m))%n\n const e = challenge(Fn.toBytes(r), pointToBytes(P), m);\n // R = s⋅G - e⋅P, where -eP == (n-e)P\n const R = BASE.multiplyUnsafe(s).add(P.multiplyUnsafe(Fn.neg(e)));\n const { x, y } = R.toAffine();\n // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.\n if (R.is0() || !hasEven(y) || x !== r)\n return false;\n return true;\n }\n catch (error) {\n return false;\n }\n}\n/**\n * Schnorr signatures over secp256k1.\n * https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\n * @example\n * ```js\n * import { schnorr } from '@noble/curves/secp256k1';\n * const { secretKey, publicKey } = schnorr.keygen();\n * // const publicKey = schnorr.getPublicKey(secretKey);\n * const msg = new TextEncoder().encode('hello');\n * const sig = schnorr.sign(msg, secretKey);\n * const isValid = schnorr.verify(sig, msg, publicKey);\n * ```\n */\nexports.schnorr = (() => {\n const size = 32;\n const seedLength = 48;\n const randomSecretKey = (seed = (0, utils_js_1.randomBytes)(seedLength)) => {\n return (0, modular_ts_1.mapHashToField)(seed, secp256k1_CURVE.n);\n };\n // TODO: remove\n exports.secp256k1.utils.randomSecretKey;\n function keygen(seed) {\n const secretKey = randomSecretKey(seed);\n return { secretKey, publicKey: schnorrGetPublicKey(secretKey) };\n }\n return {\n keygen,\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n Point: Pointk1,\n utils: {\n randomSecretKey: randomSecretKey,\n randomPrivateKey: randomSecretKey,\n taggedHash,\n // TODO: remove\n lift_x,\n pointToBytes,\n numberToBytesBE: utils_ts_1.numberToBytesBE,\n bytesToNumberBE: utils_ts_1.bytesToNumberBE,\n mod: modular_ts_1.mod,\n },\n lengths: {\n secretKey: size,\n publicKey: size,\n publicKeyHasPrefix: false,\n signature: size * 2,\n seed: seedLength,\n },\n };\n})();\nconst isoMap = /* @__PURE__ */ (() => (0, hash_to_curve_ts_1.isogenyMap)(Fpk1, [\n // xNum\n [\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7',\n '0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581',\n '0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262',\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c',\n ],\n // xDen\n [\n '0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b',\n '0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n // yNum\n [\n '0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c',\n '0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3',\n '0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931',\n '0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84',\n ],\n // yDen\n [\n '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b',\n '0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573',\n '0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n].map((i) => i.map((j) => BigInt(j)))))();\nconst mapSWU = /* @__PURE__ */ (() => (0, weierstrass_ts_1.mapToCurveSimpleSWU)(Fpk1, {\n A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n B: BigInt('1771'),\n Z: Fpk1.create(BigInt('-11')),\n}))();\n/** Hashing / encoding to secp256k1 points / field. RFC 9380 methods. */\nexports.secp256k1_hasher = (() => (0, hash_to_curve_ts_1.createHasher)(exports.secp256k1.Point, (scalars) => {\n const { x, y } = mapSWU(Fpk1.create(scalars[0]));\n return isoMap(x, y);\n}, {\n DST: 'secp256k1_XMD:SHA-256_SSWU_RO_',\n encodeDST: 'secp256k1_XMD:SHA-256_SSWU_NU_',\n p: Fpk1.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha2_js_1.sha256,\n}))();\n/** @deprecated use `import { secp256k1_hasher } from '@noble/curves/secp256k1.js';` */\nexports.hashToCurve = (() => exports.secp256k1_hasher.hashToCurve)();\n/** @deprecated use `import { secp256k1_hasher } from '@noble/curves/secp256k1.js';` */\nexports.encodeToCurve = (() => exports.secp256k1_hasher.encodeToCurve)();\n//# sourceMappingURL=secp256k1.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.notImplemented = exports.bitMask = exports.utf8ToBytes = exports.randomBytes = exports.isBytes = exports.hexToBytes = exports.concatBytes = exports.bytesToUtf8 = exports.bytesToHex = exports.anumber = exports.abytes = void 0;\nexports.abool = abool;\nexports._abool2 = _abool2;\nexports._abytes2 = _abytes2;\nexports.numberToHexUnpadded = numberToHexUnpadded;\nexports.hexToNumber = hexToNumber;\nexports.bytesToNumberBE = bytesToNumberBE;\nexports.bytesToNumberLE = bytesToNumberLE;\nexports.numberToBytesBE = numberToBytesBE;\nexports.numberToBytesLE = numberToBytesLE;\nexports.numberToVarBytesBE = numberToVarBytesBE;\nexports.ensureBytes = ensureBytes;\nexports.equalBytes = equalBytes;\nexports.copyBytes = copyBytes;\nexports.asciiToBytes = asciiToBytes;\nexports.inRange = inRange;\nexports.aInRange = aInRange;\nexports.bitLen = bitLen;\nexports.bitGet = bitGet;\nexports.bitSet = bitSet;\nexports.createHmacDrbg = createHmacDrbg;\nexports.validateObject = validateObject;\nexports.isHash = isHash;\nexports._validateObject = _validateObject;\nexports.memoized = memoized;\n/**\n * Hex, bytes and number utilities.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst utils_js_1 = require(\"@noble/hashes/utils.js\");\nvar utils_js_2 = require(\"@noble/hashes/utils.js\");\nObject.defineProperty(exports, \"abytes\", { enumerable: true, get: function () { return utils_js_2.abytes; } });\nObject.defineProperty(exports, \"anumber\", { enumerable: true, get: function () { return utils_js_2.anumber; } });\nObject.defineProperty(exports, \"bytesToHex\", { enumerable: true, get: function () { return utils_js_2.bytesToHex; } });\nObject.defineProperty(exports, \"bytesToUtf8\", { enumerable: true, get: function () { return utils_js_2.bytesToUtf8; } });\nObject.defineProperty(exports, \"concatBytes\", { enumerable: true, get: function () { return utils_js_2.concatBytes; } });\nObject.defineProperty(exports, \"hexToBytes\", { enumerable: true, get: function () { return utils_js_2.hexToBytes; } });\nObject.defineProperty(exports, \"isBytes\", { enumerable: true, get: function () { return utils_js_2.isBytes; } });\nObject.defineProperty(exports, \"randomBytes\", { enumerable: true, get: function () { return utils_js_2.randomBytes; } });\nObject.defineProperty(exports, \"utf8ToBytes\", { enumerable: true, get: function () { return utils_js_2.utf8ToBytes; } });\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nfunction abool(title, value) {\n if (typeof value !== 'boolean')\n throw new Error(title + ' boolean expected, got ' + value);\n}\n// tmp name until v2\nfunction _abool2(value, title = '') {\n if (typeof value !== 'boolean') {\n const prefix = title && `\"${title}\"`;\n throw new Error(prefix + 'expected boolean, got type=' + typeof value);\n }\n return value;\n}\n// tmp name until v2\n/** Asserts something is Uint8Array. */\nfunction _abytes2(value, length, title = '') {\n const bytes = (0, utils_js_1.isBytes)(value);\n const len = value?.length;\n const needsLen = length !== undefined;\n if (!bytes || (needsLen && len !== length)) {\n const prefix = title && `\"${title}\" `;\n const ofLen = needsLen ? ` of length ${length}` : '';\n const got = bytes ? `length=${len}` : `type=${typeof value}`;\n throw new Error(prefix + 'expected Uint8Array' + ofLen + ', got ' + got);\n }\n return value;\n}\n// Used in weierstrass, der\nfunction numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? '0' + hex : hex;\n}\nfunction hexToNumber(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n return hex === '' ? _0n : BigInt('0x' + hex); // Big Endian\n}\n// BE: Big Endian, LE: Little Endian\nfunction bytesToNumberBE(bytes) {\n return hexToNumber((0, utils_js_1.bytesToHex)(bytes));\n}\nfunction bytesToNumberLE(bytes) {\n (0, utils_js_1.abytes)(bytes);\n return hexToNumber((0, utils_js_1.bytesToHex)(Uint8Array.from(bytes).reverse()));\n}\nfunction numberToBytesBE(n, len) {\n return (0, utils_js_1.hexToBytes)(n.toString(16).padStart(len * 2, '0'));\n}\nfunction numberToBytesLE(n, len) {\n return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nfunction numberToVarBytesBE(n) {\n return (0, utils_js_1.hexToBytes)(numberToHexUnpadded(n));\n}\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'secret key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nfunction ensureBytes(title, hex, expectedLength) {\n let res;\n if (typeof hex === 'string') {\n try {\n res = (0, utils_js_1.hexToBytes)(hex);\n }\n catch (e) {\n throw new Error(title + ' must be hex string or Uint8Array, cause: ' + e);\n }\n }\n else if ((0, utils_js_1.isBytes)(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n }\n else {\n throw new Error(title + ' must be hex string or Uint8Array');\n }\n const len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength)\n throw new Error(title + ' of length ' + expectedLength + ' expected, got ' + len);\n return res;\n}\n// Compares 2 u8a-s in kinda constant time\nfunction equalBytes(a, b) {\n if (a.length !== b.length)\n return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++)\n diff |= a[i] ^ b[i];\n return diff === 0;\n}\n/**\n * Copies Uint8Array. We can't use u8a.slice(), because u8a can be Buffer,\n * and Buffer#slice creates mutable copy. Never use Buffers!\n */\nfunction copyBytes(bytes) {\n return Uint8Array.from(bytes);\n}\n/**\n * Decodes 7-bit ASCII string to Uint8Array, throws on non-ascii symbols\n * Should be safe to use for things expected to be ASCII.\n * Returns exact same result as utf8ToBytes for ASCII or throws.\n */\nfunction asciiToBytes(ascii) {\n return Uint8Array.from(ascii, (c, i) => {\n const charCode = c.charCodeAt(0);\n if (c.length !== 1 || charCode > 127) {\n throw new Error(`string contains non-ASCII character \"${ascii[i]}\" with code ${charCode} at position ${i}`);\n }\n return charCode;\n });\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\n// export const utf8ToBytes: typeof utf8ToBytes_ = utf8ToBytes_;\n/**\n * Converts bytes to string using UTF8 encoding.\n * @example bytesToUtf8(Uint8Array.from([97, 98, 99])) // 'abc'\n */\n// export const bytesToUtf8: typeof bytesToUtf8_ = bytesToUtf8_;\n// Is positive bigint\nconst isPosBig = (n) => typeof n === 'bigint' && _0n <= n;\nfunction inRange(n, min, max) {\n return isPosBig(n) && isPosBig(min) && isPosBig(max) && min <= n && n < max;\n}\n/**\n * Asserts min <= n < max. NOTE: It's < max and not <= max.\n * @example\n * aInRange('x', x, 1n, 256n); // would assume x is in (1n..255n)\n */\nfunction aInRange(title, n, min, max) {\n // Why min <= n < max and not a (min < n < max) OR b (min <= n <= max)?\n // consider P=256n, min=0n, max=P\n // - a for min=0 would require -1: `inRange('x', x, -1n, P)`\n // - b would commonly require subtraction: `inRange('x', x, 0n, P - 1n)`\n // - our way is the cleanest: `inRange('x', x, 0n, P)\n if (!inRange(n, min, max))\n throw new Error('expected valid ' + title + ': ' + min + ' <= n < ' + max + ', got ' + n);\n}\n// Bit operations\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n * TODO: merge with nLength in modular\n */\nfunction bitLen(n) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1)\n ;\n return len;\n}\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nfunction bitGet(n, pos) {\n return (n >> BigInt(pos)) & _1n;\n}\n/**\n * Sets single bit at position.\n */\nfunction bitSet(n, pos, value) {\n return n | ((value ? _1n : _0n) << BigInt(pos));\n}\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nconst bitMask = (n) => (_1n << BigInt(n)) - _1n;\nexports.bitMask = bitMask;\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n * const drbg = createHmacDRBG(32, 32, hmac);\n * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nfunction createHmacDrbg(hashLen, qByteLen, hmacFn) {\n if (typeof hashLen !== 'number' || hashLen < 2)\n throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2)\n throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function')\n throw new Error('hmacFn must be a function');\n // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n const u8n = (len) => new Uint8Array(len); // creates Uint8Array\n const u8of = (byte) => Uint8Array.of(byte); // another shortcut\n let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n let i = 0; // Iterations counter, will throw when over 1000\n const reset = () => {\n v.fill(1);\n k.fill(0);\n i = 0;\n };\n const h = (...b) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n const reseed = (seed = u8n(0)) => {\n // HMAC-DRBG reseed() function. Steps D-G\n k = h(u8of(0x00), seed); // k = hmac(k || v || 0x00 || seed)\n v = h(); // v = hmac(k || v)\n if (seed.length === 0)\n return;\n k = h(u8of(0x01), seed); // k = hmac(k || v || 0x01 || seed)\n v = h(); // v = hmac(k || v)\n };\n const gen = () => {\n // HMAC-DRBG generate() function\n if (i++ >= 1000)\n throw new Error('drbg: tried 1000 values');\n let len = 0;\n const out = [];\n while (len < qByteLen) {\n v = h();\n const sl = v.slice();\n out.push(sl);\n len += v.length;\n }\n return (0, utils_js_1.concatBytes)(...out);\n };\n const genUntil = (seed, pred) => {\n reset();\n reseed(seed); // Steps D-G\n let res = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen())))\n reseed();\n reset();\n return res;\n };\n return genUntil;\n}\n// Validating curves and fields\nconst validatorFns = {\n bigint: (val) => typeof val === 'bigint',\n function: (val) => typeof val === 'function',\n boolean: (val) => typeof val === 'boolean',\n string: (val) => typeof val === 'string',\n stringOrUint8Array: (val) => typeof val === 'string' || (0, utils_js_1.isBytes)(val),\n isSafeInteger: (val) => Number.isSafeInteger(val),\n array: (val) => Array.isArray(val),\n field: (val, object) => object.Fp.isValid(val),\n hash: (val) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n};\n// type Record = { [P in K]: T; }\nfunction validateObject(object, validators, optValidators = {}) {\n const checkField = (fieldName, type, isOptional) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error('invalid validator function');\n const val = object[fieldName];\n if (isOptional && val === undefined)\n return;\n if (!checkVal(val, object)) {\n throw new Error('param ' + String(fieldName) + ' is invalid. Expected ' + type + ', got ' + val);\n }\n };\n for (const [fieldName, type] of Object.entries(validators))\n checkField(fieldName, type, false);\n for (const [fieldName, type] of Object.entries(optValidators))\n checkField(fieldName, type, true);\n return object;\n}\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\nfunction isHash(val) {\n return typeof val === 'function' && Number.isSafeInteger(val.outputLen);\n}\nfunction _validateObject(object, fields, optFields = {}) {\n if (!object || typeof object !== 'object')\n throw new Error('expected valid options object');\n function checkField(fieldName, expectedType, isOpt) {\n const val = object[fieldName];\n if (isOpt && val === undefined)\n return;\n const current = typeof val;\n if (current !== expectedType || val === null)\n throw new Error(`param \"${fieldName}\" is invalid: expected ${expectedType}, got ${current}`);\n }\n Object.entries(fields).forEach(([k, v]) => checkField(k, v, false));\n Object.entries(optFields).forEach(([k, v]) => checkField(k, v, true));\n}\n/**\n * throws not implemented error\n */\nconst notImplemented = () => {\n throw new Error('not implemented');\n};\nexports.notImplemented = notImplemented;\n/**\n * Memoizes (caches) computation result.\n * Uses WeakMap: the value is going auto-cleaned by GC after last reference is removed.\n */\nfunction memoized(fn) {\n const map = new WeakMap();\n return (arg, ...args) => {\n const val = map.get(arg);\n if (val !== undefined)\n return val;\n const computed = fn(arg, ...args);\n map.set(arg, computed);\n return computed;\n };\n}\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SHA512_IV = exports.SHA384_IV = exports.SHA224_IV = exports.SHA256_IV = exports.HashMD = void 0;\nexports.setBigUint64 = setBigUint64;\nexports.Chi = Chi;\nexports.Maj = Maj;\n/**\n * Internal Merkle-Damgard hash utils.\n * @module\n */\nconst utils_ts_1 = require(\"./utils.js\");\n/** Polyfill for Safari 14. https://caniuse.com/mdn-javascript_builtins_dataview_setbiguint64 */\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n/** Choice: a ? b : c */\nfunction Chi(a, b, c) {\n return (a & b) ^ (~a & c);\n}\n/** Majority function, true if any two inputs is true. */\nfunction Maj(a, b, c) {\n return (a & b) ^ (a & c) ^ (b & c);\n}\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nclass HashMD extends utils_ts_1.Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.buffer = new Uint8Array(blockLen);\n this.view = (0, utils_ts_1.createView)(this.buffer);\n }\n update(data) {\n (0, utils_ts_1.aexists)(this);\n data = (0, utils_ts_1.toBytes)(data);\n (0, utils_ts_1.abytes)(data);\n const { view, buffer, blockLen } = this;\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = (0, utils_ts_1.createView)(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n (0, utils_ts_1.aexists)(this);\n (0, utils_ts_1.aoutput)(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n (0, utils_ts_1.clean)(this.buffer.subarray(pos));\n // we have less than padOffset left in buffer, so we cannot put length in\n // current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = (0, utils_ts_1.createView)(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.destroyed = destroyed;\n to.finished = finished;\n to.length = length;\n to.pos = pos;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n clone() {\n return this._cloneInto();\n }\n}\nexports.HashMD = HashMD;\n/**\n * Initial SHA-2 state: fractional parts of square roots of first 16 primes 2..53.\n * Check out `test/misc/sha2-gen-iv.js` for recomputation guide.\n */\n/** Initial SHA256 state. Bits 0..32 of frac part of sqrt of primes 2..19 */\nexports.SHA256_IV = Uint32Array.from([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,\n]);\n/** Initial SHA224 state. Bits 32..64 of frac part of sqrt of primes 23..53 */\nexports.SHA224_IV = Uint32Array.from([\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4,\n]);\n/** Initial SHA384 state. Bits 0..64 of frac part of sqrt of primes 23..53 */\nexports.SHA384_IV = Uint32Array.from([\n 0xcbbb9d5d, 0xc1059ed8, 0x629a292a, 0x367cd507, 0x9159015a, 0x3070dd17, 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31, 0x8eb44a87, 0x68581511, 0xdb0c2e0d, 0x64f98fa7, 0x47b5481d, 0xbefa4fa4,\n]);\n/** Initial SHA512 state. Bits 0..64 of frac part of sqrt of primes 2..19 */\nexports.SHA512_IV = Uint32Array.from([\n 0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f, 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179,\n]);\n//# sourceMappingURL=_md.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBig = exports.shrSL = exports.shrSH = exports.rotrSL = exports.rotrSH = exports.rotrBL = exports.rotrBH = exports.rotr32L = exports.rotr32H = exports.rotlSL = exports.rotlSH = exports.rotlBL = exports.rotlBH = exports.add5L = exports.add5H = exports.add4L = exports.add4H = exports.add3L = exports.add3H = void 0;\nexports.add = add;\nexports.fromBig = fromBig;\nexports.split = split;\n/**\n * Internal helpers for u64. BigUint64Array is too slow as per 2025, so we implement it using Uint32Array.\n * @todo re-check https://issues.chromium.org/issues/42212588\n * @module\n */\nconst U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\nfunction fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nfunction split(lst, le = false) {\n const len = lst.length;\n let Ah = new Uint32Array(len);\n let Al = new Uint32Array(len);\n for (let i = 0; i < len; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\nexports.toBig = toBig;\n// for Shift in [0, 32)\nconst shrSH = (h, _l, s) => h >>> s;\nexports.shrSH = shrSH;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\nexports.shrSL = shrSL;\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nexports.rotrSH = rotrSH;\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\nexports.rotrSL = rotrSL;\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nexports.rotrBH = rotrBH;\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\nexports.rotrBL = rotrBL;\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h, l) => l;\nexports.rotr32H = rotr32H;\nconst rotr32L = (h, _l) => h;\nexports.rotr32L = rotr32L;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nexports.rotlSH = rotlSH;\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\nexports.rotlSL = rotlSL;\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nexports.rotlBH = rotlBH;\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\nexports.rotlBL = rotlBL;\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nexports.add3L = add3L;\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nexports.add3H = add3H;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nexports.add4L = add4L;\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nexports.add4H = add4H;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nexports.add5L = add5L;\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\nexports.add5H = add5H;\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexports.default = u64;\n//# sourceMappingURL=_u64.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crypto = void 0;\nexports.crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hmac = exports.HMAC = void 0;\n/**\n * HMAC: RFC2104 message authentication code.\n * @module\n */\nconst utils_ts_1 = require(\"./utils.js\");\nclass HMAC extends utils_ts_1.Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n (0, utils_ts_1.ahash)(hash);\n const key = (0, utils_ts_1.toBytes)(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new Error('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n (0, utils_ts_1.clean)(pad);\n }\n update(buf) {\n (0, utils_ts_1.aexists)(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n (0, utils_ts_1.aexists)(this);\n (0, utils_ts_1.abytes)(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n clone() {\n return this._cloneInto();\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\nexports.HMAC = HMAC;\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n * @example\n * import { hmac } from '@noble/hashes/hmac';\n * import { sha256 } from '@noble/hashes/sha2';\n * const mac1 = hmac(sha256, 'key', 'message');\n */\nconst hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nexports.hmac = hmac;\nexports.hmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ripemd160 = exports.RIPEMD160 = exports.md5 = exports.MD5 = exports.sha1 = exports.SHA1 = void 0;\n/**\n\nSHA1 (RFC 3174), MD5 (RFC 1321) and RIPEMD160 (RFC 2286) legacy, weak hash functions.\nDon't use them in a new protocol. What \"weak\" means:\n\n- Collisions can be made with 2^18 effort in MD5, 2^60 in SHA1, 2^80 in RIPEMD160.\n- No practical pre-image attacks (only theoretical, 2^123.4)\n- HMAC seems kinda ok: https://datatracker.ietf.org/doc/html/rfc6151\n * @module\n */\nconst _md_ts_1 = require(\"./_md.js\");\nconst utils_ts_1 = require(\"./utils.js\");\n/** Initial SHA1 state */\nconst SHA1_IV = /* @__PURE__ */ Uint32Array.from([\n 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0,\n]);\n// Reusable temporary buffer\nconst SHA1_W = /* @__PURE__ */ new Uint32Array(80);\n/** SHA1 legacy hash class. */\nclass SHA1 extends _md_ts_1.HashMD {\n constructor() {\n super(64, 20, 8, false);\n this.A = SHA1_IV[0] | 0;\n this.B = SHA1_IV[1] | 0;\n this.C = SHA1_IV[2] | 0;\n this.D = SHA1_IV[3] | 0;\n this.E = SHA1_IV[4] | 0;\n }\n get() {\n const { A, B, C, D, E } = this;\n return [A, B, C, D, E];\n }\n set(A, B, C, D, E) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n }\n process(view, offset) {\n for (let i = 0; i < 16; i++, offset += 4)\n SHA1_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 80; i++)\n SHA1_W[i] = (0, utils_ts_1.rotl)(SHA1_W[i - 3] ^ SHA1_W[i - 8] ^ SHA1_W[i - 14] ^ SHA1_W[i - 16], 1);\n // Compression function main loop, 80 rounds\n let { A, B, C, D, E } = this;\n for (let i = 0; i < 80; i++) {\n let F, K;\n if (i < 20) {\n F = (0, _md_ts_1.Chi)(B, C, D);\n K = 0x5a827999;\n }\n else if (i < 40) {\n F = B ^ C ^ D;\n K = 0x6ed9eba1;\n }\n else if (i < 60) {\n F = (0, _md_ts_1.Maj)(B, C, D);\n K = 0x8f1bbcdc;\n }\n else {\n F = B ^ C ^ D;\n K = 0xca62c1d6;\n }\n const T = ((0, utils_ts_1.rotl)(A, 5) + F + E + K + SHA1_W[i]) | 0;\n E = D;\n D = C;\n C = (0, utils_ts_1.rotl)(B, 30);\n B = A;\n A = T;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n this.set(A, B, C, D, E);\n }\n roundClean() {\n (0, utils_ts_1.clean)(SHA1_W);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0);\n (0, utils_ts_1.clean)(this.buffer);\n }\n}\nexports.SHA1 = SHA1;\n/** SHA1 (RFC 3174) legacy hash function. It was cryptographically broken. */\nexports.sha1 = (0, utils_ts_1.createHasher)(() => new SHA1());\n/** Per-round constants */\nconst p32 = /* @__PURE__ */ Math.pow(2, 32);\nconst K = /* @__PURE__ */ Array.from({ length: 64 }, (_, i) => Math.floor(p32 * Math.abs(Math.sin(i + 1))));\n/** md5 initial state: same as sha1, but 4 u32 instead of 5. */\nconst MD5_IV = /* @__PURE__ */ SHA1_IV.slice(0, 4);\n// Reusable temporary buffer\nconst MD5_W = /* @__PURE__ */ new Uint32Array(16);\n/** MD5 legacy hash class. */\nclass MD5 extends _md_ts_1.HashMD {\n constructor() {\n super(64, 16, 8, true);\n this.A = MD5_IV[0] | 0;\n this.B = MD5_IV[1] | 0;\n this.C = MD5_IV[2] | 0;\n this.D = MD5_IV[3] | 0;\n }\n get() {\n const { A, B, C, D } = this;\n return [A, B, C, D];\n }\n set(A, B, C, D) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n }\n process(view, offset) {\n for (let i = 0; i < 16; i++, offset += 4)\n MD5_W[i] = view.getUint32(offset, true);\n // Compression function main loop, 64 rounds\n let { A, B, C, D } = this;\n for (let i = 0; i < 64; i++) {\n let F, g, s;\n if (i < 16) {\n F = (0, _md_ts_1.Chi)(B, C, D);\n g = i;\n s = [7, 12, 17, 22];\n }\n else if (i < 32) {\n F = (0, _md_ts_1.Chi)(D, B, C);\n g = (5 * i + 1) % 16;\n s = [5, 9, 14, 20];\n }\n else if (i < 48) {\n F = B ^ C ^ D;\n g = (3 * i + 5) % 16;\n s = [4, 11, 16, 23];\n }\n else {\n F = C ^ (B | ~D);\n g = (7 * i) % 16;\n s = [6, 10, 15, 21];\n }\n F = F + A + K[i] + MD5_W[g];\n A = D;\n D = C;\n C = B;\n B = B + (0, utils_ts_1.rotl)(F, s[i % 4]);\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n this.set(A, B, C, D);\n }\n roundClean() {\n (0, utils_ts_1.clean)(MD5_W);\n }\n destroy() {\n this.set(0, 0, 0, 0);\n (0, utils_ts_1.clean)(this.buffer);\n }\n}\nexports.MD5 = MD5;\n/**\n * MD5 (RFC 1321) legacy hash function. It was cryptographically broken.\n * MD5 architecture is similar to SHA1, with some differences:\n * - Reduced output length: 16 bytes (128 bit) instead of 20\n * - 64 rounds, instead of 80\n * - Little-endian: could be faster, but will require more code\n * - Non-linear index selection: huge speed-up for unroll\n * - Per round constants: more memory accesses, additional speed-up for unroll\n */\nexports.md5 = (0, utils_ts_1.createHasher)(() => new MD5());\n// RIPEMD-160\nconst Rho160 = /* @__PURE__ */ Uint8Array.from([\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n]);\nconst Id160 = /* @__PURE__ */ (() => Uint8Array.from(new Array(16).fill(0).map((_, i) => i)))();\nconst Pi160 = /* @__PURE__ */ (() => Id160.map((i) => (9 * i + 5) % 16))();\nconst idxLR = /* @__PURE__ */ (() => {\n const L = [Id160];\n const R = [Pi160];\n const res = [L, R];\n for (let i = 0; i < 4; i++)\n for (let j of res)\n j.push(j[i].map((k) => Rho160[k]));\n return res;\n})();\nconst idxL = /* @__PURE__ */ (() => idxLR[0])();\nconst idxR = /* @__PURE__ */ (() => idxLR[1])();\n// const [idxL, idxR] = idxLR;\nconst shifts160 = /* @__PURE__ */ [\n [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8],\n [12, 13, 11, 15, 6, 9, 9, 7, 12, 15, 11, 13, 7, 8, 7, 7],\n [13, 15, 14, 11, 7, 7, 6, 8, 13, 14, 13, 12, 5, 5, 6, 9],\n [14, 11, 12, 14, 8, 6, 5, 5, 15, 12, 15, 14, 9, 9, 8, 6],\n [15, 12, 13, 13, 9, 5, 8, 6, 14, 11, 12, 11, 8, 6, 5, 5],\n].map((i) => Uint8Array.from(i));\nconst shiftsL160 = /* @__PURE__ */ idxL.map((idx, i) => idx.map((j) => shifts160[i][j]));\nconst shiftsR160 = /* @__PURE__ */ idxR.map((idx, i) => idx.map((j) => shifts160[i][j]));\nconst Kl160 = /* @__PURE__ */ Uint32Array.from([\n 0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e,\n]);\nconst Kr160 = /* @__PURE__ */ Uint32Array.from([\n 0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000,\n]);\n// It's called f() in spec.\nfunction ripemd_f(group, x, y, z) {\n if (group === 0)\n return x ^ y ^ z;\n if (group === 1)\n return (x & y) | (~x & z);\n if (group === 2)\n return (x | ~y) ^ z;\n if (group === 3)\n return (x & z) | (y & ~z);\n return x ^ (y | ~z);\n}\n// Reusable temporary buffer\nconst BUF_160 = /* @__PURE__ */ new Uint32Array(16);\nclass RIPEMD160 extends _md_ts_1.HashMD {\n constructor() {\n super(64, 20, 8, true);\n this.h0 = 0x67452301 | 0;\n this.h1 = 0xefcdab89 | 0;\n this.h2 = 0x98badcfe | 0;\n this.h3 = 0x10325476 | 0;\n this.h4 = 0xc3d2e1f0 | 0;\n }\n get() {\n const { h0, h1, h2, h3, h4 } = this;\n return [h0, h1, h2, h3, h4];\n }\n set(h0, h1, h2, h3, h4) {\n this.h0 = h0 | 0;\n this.h1 = h1 | 0;\n this.h2 = h2 | 0;\n this.h3 = h3 | 0;\n this.h4 = h4 | 0;\n }\n process(view, offset) {\n for (let i = 0; i < 16; i++, offset += 4)\n BUF_160[i] = view.getUint32(offset, true);\n // prettier-ignore\n let al = this.h0 | 0, ar = al, bl = this.h1 | 0, br = bl, cl = this.h2 | 0, cr = cl, dl = this.h3 | 0, dr = dl, el = this.h4 | 0, er = el;\n // Instead of iterating 0 to 80, we split it into 5 groups\n // And use the groups in constants, functions, etc. Much simpler\n for (let group = 0; group < 5; group++) {\n const rGroup = 4 - group;\n const hbl = Kl160[group], hbr = Kr160[group]; // prettier-ignore\n const rl = idxL[group], rr = idxR[group]; // prettier-ignore\n const sl = shiftsL160[group], sr = shiftsR160[group]; // prettier-ignore\n for (let i = 0; i < 16; i++) {\n const tl = ((0, utils_ts_1.rotl)(al + ripemd_f(group, bl, cl, dl) + BUF_160[rl[i]] + hbl, sl[i]) + el) | 0;\n al = el, el = dl, dl = (0, utils_ts_1.rotl)(cl, 10) | 0, cl = bl, bl = tl; // prettier-ignore\n }\n // 2 loops are 10% faster\n for (let i = 0; i < 16; i++) {\n const tr = ((0, utils_ts_1.rotl)(ar + ripemd_f(rGroup, br, cr, dr) + BUF_160[rr[i]] + hbr, sr[i]) + er) | 0;\n ar = er, er = dr, dr = (0, utils_ts_1.rotl)(cr, 10) | 0, cr = br, br = tr; // prettier-ignore\n }\n }\n // Add the compressed chunk to the current hash value\n this.set((this.h1 + cl + dr) | 0, (this.h2 + dl + er) | 0, (this.h3 + el + ar) | 0, (this.h4 + al + br) | 0, (this.h0 + bl + cr) | 0);\n }\n roundClean() {\n (0, utils_ts_1.clean)(BUF_160);\n }\n destroy() {\n this.destroyed = true;\n (0, utils_ts_1.clean)(this.buffer);\n this.set(0, 0, 0, 0, 0);\n }\n}\nexports.RIPEMD160 = RIPEMD160;\n/**\n * RIPEMD-160 - a legacy hash function from 1990s.\n * * https://homes.esat.kuleuven.be/~bosselae/ripemd160.html\n * * https://homes.esat.kuleuven.be/~bosselae/ripemd160/pdf/AB-9601/AB-9601.pdf\n */\nexports.ripemd160 = (0, utils_ts_1.createHasher)(() => new RIPEMD160());\n//# sourceMappingURL=legacy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pbkdf2 = pbkdf2;\nexports.pbkdf2Async = pbkdf2Async;\n/**\n * PBKDF (RFC 2898). Can be used to create a key from password and salt.\n * @module\n */\nconst hmac_ts_1 = require(\"./hmac.js\");\n// prettier-ignore\nconst utils_ts_1 = require(\"./utils.js\");\n// Common prologue and epilogue for sync/async functions\nfunction pbkdf2Init(hash, _password, _salt, _opts) {\n (0, utils_ts_1.ahash)(hash);\n const opts = (0, utils_ts_1.checkOpts)({ dkLen: 32, asyncTick: 10 }, _opts);\n const { c, dkLen, asyncTick } = opts;\n (0, utils_ts_1.anumber)(c);\n (0, utils_ts_1.anumber)(dkLen);\n (0, utils_ts_1.anumber)(asyncTick);\n if (c < 1)\n throw new Error('iterations (c) should be >= 1');\n const password = (0, utils_ts_1.kdfInputToBytes)(_password);\n const salt = (0, utils_ts_1.kdfInputToBytes)(_salt);\n // DK = PBKDF2(PRF, Password, Salt, c, dkLen);\n const DK = new Uint8Array(dkLen);\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n const PRF = hmac_ts_1.hmac.create(hash, password);\n const PRFSalt = PRF._cloneInto().update(salt);\n return { c, dkLen, asyncTick, DK, PRF, PRFSalt };\n}\nfunction pbkdf2Output(PRF, PRFSalt, DK, prfW, u) {\n PRF.destroy();\n PRFSalt.destroy();\n if (prfW)\n prfW.destroy();\n (0, utils_ts_1.clean)(u);\n return DK;\n}\n/**\n * PBKDF2-HMAC: RFC 2898 key derivation function\n * @param hash - hash function that would be used e.g. sha256\n * @param password - password from which a derived key is generated\n * @param salt - cryptographic salt\n * @param opts - {c, dkLen} where c is work factor and dkLen is output message size\n * @example\n * const key = pbkdf2(sha256, 'password', 'salt', { dkLen: 32, c: Math.pow(2, 18) });\n */\nfunction pbkdf2(hash, password, salt, opts) {\n const { c, dkLen, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n let prfW; // Working copy\n const arr = new Uint8Array(4);\n const view = (0, utils_ts_1.createView)(arr);\n const u = new Uint8Array(PRF.outputLen);\n // DK = T1 + T2 + ⋯ + Tdklen/hlen\n for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n // Ti = F(Password, Salt, c, i)\n const Ti = DK.subarray(pos, pos + PRF.outputLen);\n view.setInt32(0, ti, false);\n // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n Ti.set(u.subarray(0, Ti.length));\n for (let ui = 1; ui < c; ui++) {\n // Uc = PRF(Password, Uc−1)\n PRF._cloneInto(prfW).update(u).digestInto(u);\n for (let i = 0; i < Ti.length; i++)\n Ti[i] ^= u[i];\n }\n }\n return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\n/**\n * PBKDF2-HMAC: RFC 2898 key derivation function. Async version.\n * @example\n * await pbkdf2Async(sha256, 'password', 'salt', { dkLen: 32, c: 500_000 });\n */\nasync function pbkdf2Async(hash, password, salt, opts) {\n const { c, dkLen, asyncTick, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n let prfW; // Working copy\n const arr = new Uint8Array(4);\n const view = (0, utils_ts_1.createView)(arr);\n const u = new Uint8Array(PRF.outputLen);\n // DK = T1 + T2 + ⋯ + Tdklen/hlen\n for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n // Ti = F(Password, Salt, c, i)\n const Ti = DK.subarray(pos, pos + PRF.outputLen);\n view.setInt32(0, ti, false);\n // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n Ti.set(u.subarray(0, Ti.length));\n await (0, utils_ts_1.asyncLoop)(c - 1, asyncTick, () => {\n // Uc = PRF(Password, Uc−1)\n PRF._cloneInto(prfW).update(u).digestInto(u);\n for (let i = 0; i < Ti.length; i++)\n Ti[i] ^= u[i];\n });\n }\n return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\n//# sourceMappingURL=pbkdf2.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ripemd160 = exports.RIPEMD160 = void 0;\n/**\n * RIPEMD-160 legacy hash function.\n * https://homes.esat.kuleuven.be/~bosselae/ripemd160.html\n * https://homes.esat.kuleuven.be/~bosselae/ripemd160/pdf/AB-9601/AB-9601.pdf\n * @module\n * @deprecated\n */\nconst legacy_ts_1 = require(\"./legacy.js\");\n/** @deprecated Use import from `noble/hashes/legacy` module */\nexports.RIPEMD160 = legacy_ts_1.RIPEMD160;\n/** @deprecated Use import from `noble/hashes/legacy` module */\nexports.ripemd160 = legacy_ts_1.ripemd160;\n//# sourceMappingURL=ripemd160.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha512_224 = exports.sha512_256 = exports.sha384 = exports.sha512 = exports.sha224 = exports.sha256 = exports.SHA512_256 = exports.SHA512_224 = exports.SHA384 = exports.SHA512 = exports.SHA224 = exports.SHA256 = void 0;\n/**\n * SHA2 hash function. A.k.a. sha256, sha384, sha512, sha512_224, sha512_256.\n * SHA256 is the fastest hash implementable in JS, even faster than Blake3.\n * Check out [RFC 4634](https://datatracker.ietf.org/doc/html/rfc4634) and\n * [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf).\n * @module\n */\nconst _md_ts_1 = require(\"./_md.js\");\nconst u64 = require(\"./_u64.js\");\nconst utils_ts_1 = require(\"./utils.js\");\n/**\n * Round constants:\n * First 32 bits of fractional parts of the cube roots of the first 64 primes 2..311)\n */\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ Uint32Array.from([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n/** Reusable temporary buffer. \"W\" comes straight from spec. */\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nclass SHA256 extends _md_ts_1.HashMD {\n constructor(outputLen = 32) {\n super(64, outputLen, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = _md_ts_1.SHA256_IV[0] | 0;\n this.B = _md_ts_1.SHA256_IV[1] | 0;\n this.C = _md_ts_1.SHA256_IV[2] | 0;\n this.D = _md_ts_1.SHA256_IV[3] | 0;\n this.E = _md_ts_1.SHA256_IV[4] | 0;\n this.F = _md_ts_1.SHA256_IV[5] | 0;\n this.G = _md_ts_1.SHA256_IV[6] | 0;\n this.H = _md_ts_1.SHA256_IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = (0, utils_ts_1.rotr)(W15, 7) ^ (0, utils_ts_1.rotr)(W15, 18) ^ (W15 >>> 3);\n const s1 = (0, utils_ts_1.rotr)(W2, 17) ^ (0, utils_ts_1.rotr)(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = (0, utils_ts_1.rotr)(E, 6) ^ (0, utils_ts_1.rotr)(E, 11) ^ (0, utils_ts_1.rotr)(E, 25);\n const T1 = (H + sigma1 + (0, _md_ts_1.Chi)(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = (0, utils_ts_1.rotr)(A, 2) ^ (0, utils_ts_1.rotr)(A, 13) ^ (0, utils_ts_1.rotr)(A, 22);\n const T2 = (sigma0 + (0, _md_ts_1.Maj)(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n (0, utils_ts_1.clean)(SHA256_W);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n (0, utils_ts_1.clean)(this.buffer);\n }\n}\nexports.SHA256 = SHA256;\nclass SHA224 extends SHA256 {\n constructor() {\n super(28);\n this.A = _md_ts_1.SHA224_IV[0] | 0;\n this.B = _md_ts_1.SHA224_IV[1] | 0;\n this.C = _md_ts_1.SHA224_IV[2] | 0;\n this.D = _md_ts_1.SHA224_IV[3] | 0;\n this.E = _md_ts_1.SHA224_IV[4] | 0;\n this.F = _md_ts_1.SHA224_IV[5] | 0;\n this.G = _md_ts_1.SHA224_IV[6] | 0;\n this.H = _md_ts_1.SHA224_IV[7] | 0;\n }\n}\nexports.SHA224 = SHA224;\n// SHA2-512 is slower than sha256 in js because u64 operations are slow.\n// Round contants\n// First 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409\n// prettier-ignore\nconst K512 = /* @__PURE__ */ (() => u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n))))();\nconst SHA512_Kh = /* @__PURE__ */ (() => K512[0])();\nconst SHA512_Kl = /* @__PURE__ */ (() => K512[1])();\n// Reusable temporary buffers\nconst SHA512_W_H = /* @__PURE__ */ new Uint32Array(80);\nconst SHA512_W_L = /* @__PURE__ */ new Uint32Array(80);\nclass SHA512 extends _md_ts_1.HashMD {\n constructor(outputLen = 64) {\n super(128, outputLen, 16, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = _md_ts_1.SHA512_IV[0] | 0;\n this.Al = _md_ts_1.SHA512_IV[1] | 0;\n this.Bh = _md_ts_1.SHA512_IV[2] | 0;\n this.Bl = _md_ts_1.SHA512_IV[3] | 0;\n this.Ch = _md_ts_1.SHA512_IV[4] | 0;\n this.Cl = _md_ts_1.SHA512_IV[5] | 0;\n this.Dh = _md_ts_1.SHA512_IV[6] | 0;\n this.Dl = _md_ts_1.SHA512_IV[7] | 0;\n this.Eh = _md_ts_1.SHA512_IV[8] | 0;\n this.El = _md_ts_1.SHA512_IV[9] | 0;\n this.Fh = _md_ts_1.SHA512_IV[10] | 0;\n this.Fl = _md_ts_1.SHA512_IV[11] | 0;\n this.Gh = _md_ts_1.SHA512_IV[12] | 0;\n this.Gl = _md_ts_1.SHA512_IV[13] | 0;\n this.Hh = _md_ts_1.SHA512_IV[14] | 0;\n this.Hl = _md_ts_1.SHA512_IV[15] | 0;\n }\n // prettier-ignore\n get() {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n roundClean() {\n (0, utils_ts_1.clean)(SHA512_W_H, SHA512_W_L);\n }\n destroy() {\n (0, utils_ts_1.clean)(this.buffer);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nexports.SHA512 = SHA512;\nclass SHA384 extends SHA512 {\n constructor() {\n super(48);\n this.Ah = _md_ts_1.SHA384_IV[0] | 0;\n this.Al = _md_ts_1.SHA384_IV[1] | 0;\n this.Bh = _md_ts_1.SHA384_IV[2] | 0;\n this.Bl = _md_ts_1.SHA384_IV[3] | 0;\n this.Ch = _md_ts_1.SHA384_IV[4] | 0;\n this.Cl = _md_ts_1.SHA384_IV[5] | 0;\n this.Dh = _md_ts_1.SHA384_IV[6] | 0;\n this.Dl = _md_ts_1.SHA384_IV[7] | 0;\n this.Eh = _md_ts_1.SHA384_IV[8] | 0;\n this.El = _md_ts_1.SHA384_IV[9] | 0;\n this.Fh = _md_ts_1.SHA384_IV[10] | 0;\n this.Fl = _md_ts_1.SHA384_IV[11] | 0;\n this.Gh = _md_ts_1.SHA384_IV[12] | 0;\n this.Gl = _md_ts_1.SHA384_IV[13] | 0;\n this.Hh = _md_ts_1.SHA384_IV[14] | 0;\n this.Hl = _md_ts_1.SHA384_IV[15] | 0;\n }\n}\nexports.SHA384 = SHA384;\n/**\n * Truncated SHA512/256 and SHA512/224.\n * SHA512_IV is XORed with 0xa5a5a5a5a5a5a5a5, then used as \"intermediary\" IV of SHA512/t.\n * Then t hashes string to produce result IV.\n * See `test/misc/sha2-gen-iv.js`.\n */\n/** SHA512/224 IV */\nconst T224_IV = /* @__PURE__ */ Uint32Array.from([\n 0x8c3d37c8, 0x19544da2, 0x73e19966, 0x89dcd4d6, 0x1dfab7ae, 0x32ff9c82, 0x679dd514, 0x582f9fcf,\n 0x0f6d2b69, 0x7bd44da8, 0x77e36f73, 0x04c48942, 0x3f9d85a8, 0x6a1d36c8, 0x1112e6ad, 0x91d692a1,\n]);\n/** SHA512/256 IV */\nconst T256_IV = /* @__PURE__ */ Uint32Array.from([\n 0x22312194, 0xfc2bf72c, 0x9f555fa3, 0xc84c64c2, 0x2393b86b, 0x6f53b151, 0x96387719, 0x5940eabd,\n 0x96283ee2, 0xa88effe3, 0xbe5e1e25, 0x53863992, 0x2b0199fc, 0x2c85b8aa, 0x0eb72ddc, 0x81c52ca2,\n]);\nclass SHA512_224 extends SHA512 {\n constructor() {\n super(28);\n this.Ah = T224_IV[0] | 0;\n this.Al = T224_IV[1] | 0;\n this.Bh = T224_IV[2] | 0;\n this.Bl = T224_IV[3] | 0;\n this.Ch = T224_IV[4] | 0;\n this.Cl = T224_IV[5] | 0;\n this.Dh = T224_IV[6] | 0;\n this.Dl = T224_IV[7] | 0;\n this.Eh = T224_IV[8] | 0;\n this.El = T224_IV[9] | 0;\n this.Fh = T224_IV[10] | 0;\n this.Fl = T224_IV[11] | 0;\n this.Gh = T224_IV[12] | 0;\n this.Gl = T224_IV[13] | 0;\n this.Hh = T224_IV[14] | 0;\n this.Hl = T224_IV[15] | 0;\n }\n}\nexports.SHA512_224 = SHA512_224;\nclass SHA512_256 extends SHA512 {\n constructor() {\n super(32);\n this.Ah = T256_IV[0] | 0;\n this.Al = T256_IV[1] | 0;\n this.Bh = T256_IV[2] | 0;\n this.Bl = T256_IV[3] | 0;\n this.Ch = T256_IV[4] | 0;\n this.Cl = T256_IV[5] | 0;\n this.Dh = T256_IV[6] | 0;\n this.Dl = T256_IV[7] | 0;\n this.Eh = T256_IV[8] | 0;\n this.El = T256_IV[9] | 0;\n this.Fh = T256_IV[10] | 0;\n this.Fl = T256_IV[11] | 0;\n this.Gh = T256_IV[12] | 0;\n this.Gl = T256_IV[13] | 0;\n this.Hh = T256_IV[14] | 0;\n this.Hl = T256_IV[15] | 0;\n }\n}\nexports.SHA512_256 = SHA512_256;\n/**\n * SHA2-256 hash function from RFC 4634.\n *\n * It is the fastest JS hash, even faster than Blake3.\n * To break sha256 using birthday attack, attackers need to try 2^128 hashes.\n * BTC network is doing 2^70 hashes/sec (2^95 hashes/year) as per 2025.\n */\nexports.sha256 = (0, utils_ts_1.createHasher)(() => new SHA256());\n/** SHA2-224 hash function from RFC 4634 */\nexports.sha224 = (0, utils_ts_1.createHasher)(() => new SHA224());\n/** SHA2-512 hash function from RFC 4634. */\nexports.sha512 = (0, utils_ts_1.createHasher)(() => new SHA512());\n/** SHA2-384 hash function from RFC 4634. */\nexports.sha384 = (0, utils_ts_1.createHasher)(() => new SHA384());\n/**\n * SHA2-512/256 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexports.sha512_256 = (0, utils_ts_1.createHasher)(() => new SHA512_256());\n/**\n * SHA2-512/224 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexports.sha512_224 = (0, utils_ts_1.createHasher)(() => new SHA512_224());\n//# sourceMappingURL=sha2.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha224 = exports.SHA224 = exports.sha256 = exports.SHA256 = void 0;\n/**\n * SHA2-256 a.k.a. sha256. In JS, it is the fastest hash, even faster than Blake3.\n *\n * To break sha256 using birthday attack, attackers need to try 2^128 hashes.\n * BTC network is doing 2^70 hashes/sec (2^95 hashes/year) as per 2025.\n *\n * Check out [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf).\n * @module\n * @deprecated\n */\nconst sha2_ts_1 = require(\"./sha2.js\");\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.SHA256 = sha2_ts_1.SHA256;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.sha256 = sha2_ts_1.sha256;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.SHA224 = sha2_ts_1.SHA224;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.sha224 = sha2_ts_1.sha224;\n//# sourceMappingURL=sha256.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shake256 = exports.shake128 = exports.keccak_512 = exports.keccak_384 = exports.keccak_256 = exports.keccak_224 = exports.sha3_512 = exports.sha3_384 = exports.sha3_256 = exports.sha3_224 = exports.Keccak = void 0;\nexports.keccakP = keccakP;\n/**\n * SHA3 (keccak) hash function, based on a new \"Sponge function\" design.\n * Different from older hashes, the internal state is bigger than output size.\n *\n * Check out [FIPS-202](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf),\n * [Website](https://keccak.team/keccak.html),\n * [the differences between SHA-3 and Keccak](https://crypto.stackexchange.com/questions/15727/what-are-the-key-differences-between-the-draft-sha-3-standard-and-the-keccak-sub).\n *\n * Check out `sha3-addons` module for cSHAKE, k12, and others.\n * @module\n */\nconst _u64_ts_1 = require(\"./_u64.js\");\n// prettier-ignore\nconst utils_ts_1 = require(\"./utils.js\");\n// No __PURE__ annotations in sha3 header:\n// EVERYTHING is in fact used on every export.\n// Various per round constants calculations\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _7n = BigInt(7);\nconst _256n = BigInt(256);\nconst _0x71n = BigInt(0x71);\nconst SHA3_PI = [];\nconst SHA3_ROTL = [];\nconst _SHA3_IOTA = [];\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n)\n t ^= _1n << ((_1n << /* @__PURE__ */ BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst IOTAS = (0, _u64_ts_1.split)(_SHA3_IOTA, true);\nconst SHA3_IOTA_H = IOTAS[0];\nconst SHA3_IOTA_L = IOTAS[1];\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => (s > 32 ? (0, _u64_ts_1.rotlBH)(h, l, s) : (0, _u64_ts_1.rotlSH)(h, l, s));\nconst rotlL = (h, l, s) => (s > 32 ? (0, _u64_ts_1.rotlBL)(h, l, s) : (0, _u64_ts_1.rotlSL)(h, l, s));\n/** `keccakf1600` internal function, additionally allows to adjust round count. */\nfunction keccakP(s, rounds = 24) {\n const B = new Uint32Array(5 * 2);\n // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n for (let round = 24 - rounds; round < 24; round++) {\n // Theta θ\n for (let x = 0; x < 10; x++)\n B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n for (let x = 0; x < 10; x += 2) {\n const idx1 = (x + 8) % 10;\n const idx0 = (x + 2) % 10;\n const B0 = B[idx0];\n const B1 = B[idx0 + 1];\n const Th = rotlH(B0, B1, 1) ^ B[idx1];\n const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n for (let y = 0; y < 50; y += 10) {\n s[x + y] ^= Th;\n s[x + y + 1] ^= Tl;\n }\n }\n // Rho (ρ) and Pi (π)\n let curH = s[2];\n let curL = s[3];\n for (let t = 0; t < 24; t++) {\n const shift = SHA3_ROTL[t];\n const Th = rotlH(curH, curL, shift);\n const Tl = rotlL(curH, curL, shift);\n const PI = SHA3_PI[t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = Th;\n s[PI + 1] = Tl;\n }\n // Chi (χ)\n for (let y = 0; y < 50; y += 10) {\n for (let x = 0; x < 10; x++)\n B[x] = s[y + x];\n for (let x = 0; x < 10; x++)\n s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n }\n // Iota (ι)\n s[0] ^= SHA3_IOTA_H[round];\n s[1] ^= SHA3_IOTA_L[round];\n }\n (0, utils_ts_1.clean)(B);\n}\n/** Keccak sponge function. */\nclass Keccak extends utils_ts_1.Hash {\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n super();\n this.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n this.enableXOF = false;\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n // Can be passed from user as dkLen\n (0, utils_ts_1.anumber)(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n // 0 < blockLen < 200\n if (!(0 < blockLen && blockLen < 200))\n throw new Error('only keccak-f1600 function is supported');\n this.state = new Uint8Array(200);\n this.state32 = (0, utils_ts_1.u32)(this.state);\n }\n clone() {\n return this._cloneInto();\n }\n keccak() {\n (0, utils_ts_1.swap32IfBE)(this.state32);\n keccakP(this.state32, this.rounds);\n (0, utils_ts_1.swap32IfBE)(this.state32);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n (0, utils_ts_1.aexists)(this);\n data = (0, utils_ts_1.toBytes)(data);\n (0, utils_ts_1.abytes)(data);\n const { blockLen, state } = this;\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++)\n state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen)\n this.keccak();\n }\n return this;\n }\n finish() {\n if (this.finished)\n return;\n this.finished = true;\n const { state, suffix, pos, blockLen } = this;\n // Do the padding\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n writeInto(out) {\n (0, utils_ts_1.aexists)(this, false);\n (0, utils_ts_1.abytes)(out);\n this.finish();\n const bufferOut = this.state;\n const { blockLen } = this;\n for (let pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= blockLen)\n this.keccak();\n const take = Math.min(blockLen - this.posOut, len - pos);\n out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n this.posOut += take;\n pos += take;\n }\n return out;\n }\n xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF)\n throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes) {\n (0, utils_ts_1.anumber)(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n (0, utils_ts_1.aoutput)(out, this);\n if (this.finished)\n throw new Error('digest() was already called');\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy() {\n this.destroyed = true;\n (0, utils_ts_1.clean)(this.state);\n }\n _cloneInto(to) {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n to.state32.set(this.state32);\n to.pos = this.pos;\n to.posOut = this.posOut;\n to.finished = this.finished;\n to.rounds = rounds;\n // Suffix can change in cSHAKE\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n}\nexports.Keccak = Keccak;\nconst gen = (suffix, blockLen, outputLen) => (0, utils_ts_1.createHasher)(() => new Keccak(blockLen, suffix, outputLen));\n/** SHA3-224 hash function. */\nexports.sha3_224 = (() => gen(0x06, 144, 224 / 8))();\n/** SHA3-256 hash function. Different from keccak-256. */\nexports.sha3_256 = (() => gen(0x06, 136, 256 / 8))();\n/** SHA3-384 hash function. */\nexports.sha3_384 = (() => gen(0x06, 104, 384 / 8))();\n/** SHA3-512 hash function. */\nexports.sha3_512 = (() => gen(0x06, 72, 512 / 8))();\n/** keccak-224 hash function. */\nexports.keccak_224 = (() => gen(0x01, 144, 224 / 8))();\n/** keccak-256 hash function. Different from SHA3-256. */\nexports.keccak_256 = (() => gen(0x01, 136, 256 / 8))();\n/** keccak-384 hash function. */\nexports.keccak_384 = (() => gen(0x01, 104, 384 / 8))();\n/** keccak-512 hash function. */\nexports.keccak_512 = (() => gen(0x01, 72, 512 / 8))();\nconst genShake = (suffix, blockLen, outputLen) => (0, utils_ts_1.createXOFer)((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\n/** SHAKE128 XOF with 128-bit security. */\nexports.shake128 = (() => genShake(0x1f, 168, 128 / 8))();\n/** SHAKE256 XOF with 256-bit security. */\nexports.shake256 = (() => genShake(0x1f, 136, 256 / 8))();\n//# sourceMappingURL=sha3.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha512_256 = exports.SHA512_256 = exports.sha512_224 = exports.SHA512_224 = exports.sha384 = exports.SHA384 = exports.sha512 = exports.SHA512 = void 0;\n/**\n * SHA2-512 a.k.a. sha512 and sha384. It is slower than sha256 in js because u64 operations are slow.\n *\n * Check out [RFC 4634](https://datatracker.ietf.org/doc/html/rfc4634) and\n * [the paper on truncated SHA512/256](https://eprint.iacr.org/2010/548.pdf).\n * @module\n * @deprecated\n */\nconst sha2_ts_1 = require(\"./sha2.js\");\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.SHA512 = sha2_ts_1.SHA512;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.sha512 = sha2_ts_1.sha512;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.SHA384 = sha2_ts_1.SHA384;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.sha384 = sha2_ts_1.sha384;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.SHA512_224 = sha2_ts_1.SHA512_224;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.sha512_224 = sha2_ts_1.sha512_224;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.SHA512_256 = sha2_ts_1.SHA512_256;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexports.sha512_256 = sha2_ts_1.sha512_256;\n//# sourceMappingURL=sha512.js.map","\"use strict\";\n/**\n * Utilities for hex, bytes, CSPRNG.\n * @module\n */\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wrapXOFConstructorWithOpts = exports.wrapConstructorWithOpts = exports.wrapConstructor = exports.Hash = exports.nextTick = exports.swap32IfBE = exports.byteSwapIfBE = exports.swap8IfBE = exports.isLE = void 0;\nexports.isBytes = isBytes;\nexports.anumber = anumber;\nexports.abytes = abytes;\nexports.ahash = ahash;\nexports.aexists = aexists;\nexports.aoutput = aoutput;\nexports.u8 = u8;\nexports.u32 = u32;\nexports.clean = clean;\nexports.createView = createView;\nexports.rotr = rotr;\nexports.rotl = rotl;\nexports.byteSwap = byteSwap;\nexports.byteSwap32 = byteSwap32;\nexports.bytesToHex = bytesToHex;\nexports.hexToBytes = hexToBytes;\nexports.asyncLoop = asyncLoop;\nexports.utf8ToBytes = utf8ToBytes;\nexports.bytesToUtf8 = bytesToUtf8;\nexports.toBytes = toBytes;\nexports.kdfInputToBytes = kdfInputToBytes;\nexports.concatBytes = concatBytes;\nexports.checkOpts = checkOpts;\nexports.createHasher = createHasher;\nexports.createOptHasher = createOptHasher;\nexports.createXOFer = createXOFer;\nexports.randomBytes = randomBytes;\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nconst crypto_1 = require(\"@noble/hashes/crypto\");\n/** Checks if something is Uint8Array. Be careful: nodejs Buffer will return true. */\nfunction isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n/** Asserts something is positive integer. */\nfunction anumber(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error('positive integer expected, got ' + n);\n}\n/** Asserts something is Uint8Array. */\nfunction abytes(b, ...lengths) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\n}\n/** Asserts something is hash */\nfunction ahash(h) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.createHasher');\n anumber(h.outputLen);\n anumber(h.blockLen);\n}\n/** Asserts a hash instance has not been destroyed / finished */\nfunction aexists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\n/** Asserts output is properly-sized byte array */\nfunction aoutput(out, instance) {\n abytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error('digestInto() expects output buffer of length at least ' + min);\n }\n}\n/** Cast u8 / u16 / u32 to u8. */\nfunction u8(arr) {\n return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** Cast u8 / u16 / u32 to u32. */\nfunction u32(arr) {\n return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n}\n/** Zeroize a byte array. Warning: JS provides no guarantees. */\nfunction clean(...arrays) {\n for (let i = 0; i < arrays.length; i++) {\n arrays[i].fill(0);\n }\n}\n/** Create DataView of an array for easy byte-level manipulation. */\nfunction createView(arr) {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** The rotate right (circular right shift) operation for uint32 */\nfunction rotr(word, shift) {\n return (word << (32 - shift)) | (word >>> shift);\n}\n/** The rotate left (circular left shift) operation for uint32 */\nfunction rotl(word, shift) {\n return (word << shift) | ((word >>> (32 - shift)) >>> 0);\n}\n/** Is current platform little-endian? Most are. Big-Endian platform: IBM */\nexports.isLE = (() => new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)();\n/** The byte swap operation for uint32 */\nfunction byteSwap(word) {\n return (((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff));\n}\n/** Conditionally byte swap if on a big-endian platform */\nexports.swap8IfBE = exports.isLE\n ? (n) => n\n : (n) => byteSwap(n);\n/** @deprecated */\nexports.byteSwapIfBE = exports.swap8IfBE;\n/** In place byte swap for Uint32Array */\nfunction byteSwap32(arr) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n return arr;\n}\nexports.swap32IfBE = exports.isLE\n ? (u) => u\n : byteSwap32;\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin = /* @__PURE__ */ (() => \n// @ts-ignore\ntypeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function')();\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * Convert byte array to hex string. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nfunction bytesToHex(bytes) {\n abytes(bytes);\n // @ts-ignore\n if (hasHexBuiltin)\n return bytes.toHex();\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };\nfunction asciiToBase16(ch) {\n if (ch >= asciis._0 && ch <= asciis._9)\n return ch - asciis._0; // '2' => 50-48\n if (ch >= asciis.A && ch <= asciis.F)\n return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n if (ch >= asciis.a && ch <= asciis.f)\n return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n return;\n}\n/**\n * Convert hex string to byte array. Uses built-in function, when available.\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // @ts-ignore\n if (hasHexBuiltin)\n return Uint8Array.fromHex(hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n }\n return array;\n}\n/**\n * There is no setImmediate in browser and setTimeout is slow.\n * Call of async fn will return Promise, which will be fullfiled only on\n * next scheduler queue processing step and this is exactly what we need.\n */\nconst nextTick = async () => { };\nexports.nextTick = nextTick;\n/** Returns control to thread each 'tick' ms to avoid blocking. */\nasync function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await (0, exports.nextTick)();\n ts += diff;\n }\n}\n/**\n * Converts string to bytes using UTF8 encoding.\n * @example utf8ToBytes('abc') // Uint8Array.from([97, 98, 99])\n */\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error('string expected');\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Converts bytes to string using UTF8 encoding.\n * @example bytesToUtf8(Uint8Array.from([97, 98, 99])) // 'abc'\n */\nfunction bytesToUtf8(bytes) {\n return new TextDecoder().decode(bytes);\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nfunction toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n/**\n * Helper for KDFs: consumes uint8array or string.\n * When string is passed, does utf8 decoding, using TextDecoder.\n */\nfunction kdfInputToBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n/** Copies several Uint8Arrays into one. */\nfunction concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\nfunction checkOpts(defaults, opts) {\n if (opts !== undefined && {}.toString.call(opts) !== '[object Object]')\n throw new Error('options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\n/** For runtime check if class implements interface */\nclass Hash {\n}\nexports.Hash = Hash;\n/** Wraps hash function, creating an interface on top of it */\nfunction createHasher(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nfunction createOptHasher(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nfunction createXOFer(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexports.wrapConstructor = createHasher;\nexports.wrapConstructorWithOpts = createOptHasher;\nexports.wrapXOFConstructorWithOpts = createXOFer;\n/** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */\nfunction randomBytes(bytesLength = 32) {\n if (crypto_1.crypto && typeof crypto_1.crypto.getRandomValues === 'function') {\n return crypto_1.crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto_1.crypto && typeof crypto_1.crypto.randomBytes === 'function') {\n return Uint8Array.from(crypto_1.crypto.randomBytes(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","var asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","var asn1 = require('../asn1');\nvar inherits = require('inherits');\n\nvar api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n};\n\nEntity.prototype._createNamed = function createNamed(base) {\n var named;\n try {\n named = require('vm').runInThisContext(\n '(function ' + this.name + '(entity) {\\n' +\n ' this._initNamed(entity);\\n' +\n '})'\n );\n } catch (e) {\n named = function (entity) {\n this._initNamed(entity);\n };\n }\n inherits(named, base);\n named.prototype._initNamed = function initnamed(entity) {\n base.call(this, entity);\n };\n\n return new named(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(asn1.decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(asn1.encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","var inherits = require('inherits');\nvar Reporter = require('../base').Reporter;\nvar Buffer = require('buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n var res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n}\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n var res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n}\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n}\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!(item instanceof EncoderBuffer))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = new Buffer(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","var base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","var Reporter = require('../base').Reporter;\nvar EncoderBuffer = require('../base').EncoderBuffer;\nvar DecoderBuffer = require('../base').DecoderBuffer;\nvar assert = require('minimalistic-assert');\n\n// Supported tags\nvar tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nvar methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nvar overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent) {\n var state = {};\n this._baseState = state;\n\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nvar stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n var state = this._baseState;\n var cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n var res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n var state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n var clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n var state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n var state = this._baseState;\n\n // Filter children and args\n var children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n var res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n var value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n var state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n var state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n var state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n var state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n var state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n var state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n var state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n var state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n var result = state['default'];\n var present = true;\n\n var prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n var tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n var save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n var prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n var explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n var start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n if (state.any)\n var save = input.save();\n var body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any)\n result = result;\n else if (state.choice === null)\n result = this._decodeGeneric(state.tag, input, options);\n else\n result = this._decodeChoice(input, options);\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n var data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n var state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n var state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n var state = this._baseState;\n var result = null;\n var match = false;\n\n Object.keys(state.choice).some(function(key) {\n var save = input.save();\n var node = state.choice[key];\n try {\n var value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n var state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n var result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n var result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default']\n else\n return;\n }\n\n // Encode children first\n var content = null;\n var primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n var prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n var res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n var child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n var state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n var result;\n if (!state.any && state.choice === null) {\n var tag = state.implicit !== null ? state.implicit : state.tag;\n var cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n var state = this._baseState;\n\n var node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n var state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '\\(\\)\\+,\\-\\.\\/:=\\?]*$/.test(str);\n};\n","var inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n var state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n var state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n var state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n var state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n var state = this._reporterState;\n\n var prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n var state = this._reporterState;\n\n var now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n var err;\n var state = this._reporterState;\n\n var inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n var state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n};\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","var constants = require('../constants');\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = constants._reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = constants._reverse(exports.tag);\n","var constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n var res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n var value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","var inherits = require('inherits');\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\nvar bignum = asn1.bignum;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!(data instanceof base.DecoderBuffer))\n data = new base.DecoderBuffer(data, options);\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n var state = buffer.save();\n var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n var decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n var len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n var state = buffer.save();\n var res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n while (true) {\n var tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n var len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n var res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len)\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n var result = [];\n while (!buffer.isEmpty()) {\n var possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n var res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n var unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n var raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n var str = '';\n for (var i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n var numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n var printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n var result;\n var identifiers = [];\n var ident = 0;\n while (!buffer.isEmpty()) {\n var subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n var first = (identifiers[0] / 40) | 0;\n var second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n var tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n var str = buffer.raw().toString();\n if (tag === 'gentime') {\n var year = str.slice(0, 4) | 0;\n var mon = str.slice(4, 6) | 0;\n var day = str.slice(6, 8) | 0;\n var hour = str.slice(8, 10) | 0;\n var min = str.slice(10, 12) | 0;\n var sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n var year = str.slice(0, 2) | 0;\n var mon = str.slice(2, 4) | 0;\n var day = str.slice(4, 6) | 0;\n var hour = str.slice(6, 8) | 0;\n var min = str.slice(8, 10) | 0;\n var sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull(buffer) {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n var res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n var raw = buffer.raw();\n var res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n var tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n var cls = der.tagClass[tag >> 6];\n var primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n var oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n var tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n var len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n var num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (var i = 0; i < num; i++) {\n len <<= 8;\n var j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","var decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n var lines = data.toString().split(/[\\r\\n]+/g);\n\n var label = options.label.toUpperCase();\n\n var re = /^-----(BEGIN|END) ([^-]+)-----$/;\n var start = -1;\n var end = -1;\n for (var i = 0; i < lines.length; i++) {\n var match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n var base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9\\+\\/=]+/gi, '');\n\n var input = new Buffer(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n var encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n var header = new Buffer(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n var lenOctets = 1;\n for (var i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n var header = new Buffer(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n var buf = new Buffer(str.length * 2);\n for (var i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s\\.]+/g);\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n var size = 0;\n for (var i = 0; i < id.length; i++) {\n var ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n var objid = new Buffer(size);\n var offset = objid.length - 1;\n for (var i = id.length - 1; i >= 0; i--) {\n var ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n var str;\n var date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n var numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = new Buffer(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n var size = num.length;\n if (num.length === 0)\n size++;\n\n var out = new Buffer(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n var size = 1;\n for (var i = num; i >= 0x100; i >>= 8)\n size++;\n\n var out = new Array(size);\n for (var i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(new Buffer(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n var state = this._baseState;\n var i;\n if (state['default'] === null)\n return false;\n\n var data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n var res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","var encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","var inherits = require('inherits');\n\nvar DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n var buf = DEREncoder.prototype.encode.call(this, data);\n\n var p = buf.toString('base64');\n var out = [ '-----BEGIN ' + options.label + '-----' ];\n for (var i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a51ae424a513ec9a6aa3466baa0cc1d55dd4f3b\n\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nvar _require = require('./internal/errors'),\n _require$codes = _require.codes,\n ERR_AMBIGUOUS_ARGUMENT = _require$codes.ERR_AMBIGUOUS_ARGUMENT,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_INVALID_ARG_VALUE = _require$codes.ERR_INVALID_ARG_VALUE,\n ERR_INVALID_RETURN_VALUE = _require$codes.ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\nvar AssertionError = require('./internal/assert/assertion_error');\nvar _require2 = require('util/'),\n inspect = _require2.inspect;\nvar _require$types = require('util/').types,\n isPromise = _require$types.isPromise,\n isRegExp = _require$types.isRegExp;\nvar objectAssign = require('object.assign/polyfill')();\nvar objectIs = require('object-is/polyfill')();\nvar RegExpPrototypeTest = require('call-bind/callBound')('RegExp.prototype.test');\nvar errorCache = new Map();\nvar isDeepEqual;\nvar isDeepStrictEqual;\nvar parseExpressionAt;\nvar findNodeAround;\nvar decoder;\nfunction lazyLoadComparison() {\n var comparison = require('./internal/util/comparisons');\n isDeepEqual = comparison.isDeepEqual;\n isDeepStrictEqual = comparison.isDeepStrictEqual;\n}\n\n// Escape control characters but not \\n and \\t to keep the line breaks and\n// indentation intact.\n// eslint-disable-next-line no-control-regex\nvar escapeSequencesRegExp = /[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f]/g;\nvar meta = [\"\\\\u0000\", \"\\\\u0001\", \"\\\\u0002\", \"\\\\u0003\", \"\\\\u0004\", \"\\\\u0005\", \"\\\\u0006\", \"\\\\u0007\", '\\\\b', '', '', \"\\\\u000b\", '\\\\f', '', \"\\\\u000e\", \"\\\\u000f\", \"\\\\u0010\", \"\\\\u0011\", \"\\\\u0012\", \"\\\\u0013\", \"\\\\u0014\", \"\\\\u0015\", \"\\\\u0016\", \"\\\\u0017\", \"\\\\u0018\", \"\\\\u0019\", \"\\\\u001a\", \"\\\\u001b\", \"\\\\u001c\", \"\\\\u001d\", \"\\\\u001e\", \"\\\\u001f\"];\nvar escapeFn = function escapeFn(str) {\n return meta[str.charCodeAt(0)];\n};\nvar warned = false;\n\n// The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\nvar NO_EXCEPTION_SENTINEL = {};\n\n// All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction innerFail(obj) {\n if (obj.message instanceof Error) throw obj.message;\n throw new AssertionError(obj);\n}\nfunction fail(actual, expected, message, operator, stackStartFn) {\n var argsLen = arguments.length;\n var internalMessage;\n if (argsLen === 0) {\n internalMessage = 'Failed';\n } else if (argsLen === 1) {\n message = actual;\n actual = undefined;\n } else {\n if (warned === false) {\n warned = true;\n var warn = process.emitWarning ? process.emitWarning : console.warn.bind(console);\n warn('assert.fail() with more than one argument is deprecated. ' + 'Please use assert.strictEqual() instead or only pass a message.', 'DeprecationWarning', 'DEP0094');\n }\n if (argsLen === 2) operator = '!=';\n }\n if (message instanceof Error) throw message;\n var errArgs = {\n actual: actual,\n expected: expected,\n operator: operator === undefined ? 'fail' : operator,\n stackStartFn: stackStartFn || fail\n };\n if (message !== undefined) {\n errArgs.message = message;\n }\n var err = new AssertionError(errArgs);\n if (internalMessage) {\n err.message = internalMessage;\n err.generatedMessage = true;\n }\n throw err;\n}\nassert.fail = fail;\n\n// The AssertionError is defined in internal/error.\nassert.AssertionError = AssertionError;\nfunction innerOk(fn, argLen, value, message) {\n if (!value) {\n var generatedMessage = false;\n if (argLen === 0) {\n generatedMessage = true;\n message = 'No value argument passed to `assert.ok()`';\n } else if (message instanceof Error) {\n throw message;\n }\n var err = new AssertionError({\n actual: value,\n expected: true,\n message: message,\n operator: '==',\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n}\n\n// Pure assertion tests whether a value is truthy, as determined\n// by !!value.\nfunction ok() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n innerOk.apply(void 0, [ok, args.length].concat(args));\n}\nassert.ok = ok;\n\n// The equality assertion tests shallow, coercive equality with ==.\n/* eslint-disable no-restricted-properties */\nassert.equal = function equal(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n // eslint-disable-next-line eqeqeq\n if (actual != expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '==',\n stackStartFn: equal\n });\n }\n};\n\n// The non-equality assertion tests for whether two objects are not\n// equal with !=.\nassert.notEqual = function notEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n // eslint-disable-next-line eqeqeq\n if (actual == expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '!=',\n stackStartFn: notEqual\n });\n }\n};\n\n// The equivalence assertion tests a deep equality relation.\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (!isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepEqual',\n stackStartFn: deepEqual\n });\n }\n};\n\n// The non-equivalence assertion tests for any deep inequality.\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepEqual',\n stackStartFn: notDeepEqual\n });\n }\n};\n/* eslint-enable */\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (!isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepStrictEqual',\n stackStartFn: deepStrictEqual\n });\n }\n};\nassert.notDeepStrictEqual = notDeepStrictEqual;\nfunction notDeepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepStrictEqual',\n stackStartFn: notDeepStrictEqual\n });\n }\n}\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (!objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'strictEqual',\n stackStartFn: strictEqual\n });\n }\n};\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notStrictEqual',\n stackStartFn: notStrictEqual\n });\n }\n};\nvar Comparison = /*#__PURE__*/_createClass(function Comparison(obj, keys, actual) {\n var _this = this;\n _classCallCheck(this, Comparison);\n keys.forEach(function (key) {\n if (key in obj) {\n if (actual !== undefined && typeof actual[key] === 'string' && isRegExp(obj[key]) && RegExpPrototypeTest(obj[key], actual[key])) {\n _this[key] = actual[key];\n } else {\n _this[key] = obj[key];\n }\n }\n });\n});\nfunction compareExceptionKey(actual, expected, key, message, keys, fn) {\n if (!(key in actual) || !isDeepStrictEqual(actual[key], expected[key])) {\n if (!message) {\n // Create placeholder objects to create a nice output.\n var a = new Comparison(actual, keys);\n var b = new Comparison(expected, keys, actual);\n var err = new AssertionError({\n actual: a,\n expected: b,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.actual = actual;\n err.expected = expected;\n err.operator = fn.name;\n throw err;\n }\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: fn.name,\n stackStartFn: fn\n });\n }\n}\nfunction expectedException(actual, expected, msg, fn) {\n if (typeof expected !== 'function') {\n if (isRegExp(expected)) return RegExpPrototypeTest(expected, actual);\n // assert.doesNotThrow does not accept objects.\n if (arguments.length === 2) {\n throw new ERR_INVALID_ARG_TYPE('expected', ['Function', 'RegExp'], expected);\n }\n\n // Handle primitives properly.\n if (_typeof(actual) !== 'object' || actual === null) {\n var err = new AssertionError({\n actual: actual,\n expected: expected,\n message: msg,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.operator = fn.name;\n throw err;\n }\n var keys = Object.keys(expected);\n // Special handle errors to make sure the name and the message are compared\n // as well.\n if (expected instanceof Error) {\n keys.push('name', 'message');\n } else if (keys.length === 0) {\n throw new ERR_INVALID_ARG_VALUE('error', expected, 'may not be an empty object');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n keys.forEach(function (key) {\n if (typeof actual[key] === 'string' && isRegExp(expected[key]) && RegExpPrototypeTest(expected[key], actual[key])) {\n return;\n }\n compareExceptionKey(actual, expected, key, msg, keys, fn);\n });\n return true;\n }\n // Guard instanceof against arrow functions as they don't have a prototype.\n if (expected.prototype !== undefined && actual instanceof expected) {\n return true;\n }\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n return expected.call({}, actual) === true;\n}\nfunction getActual(fn) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', 'Function', fn);\n }\n try {\n fn();\n } catch (e) {\n return e;\n }\n return NO_EXCEPTION_SENTINEL;\n}\nfunction checkIsPromise(obj) {\n // Accept native ES6 promises and promises that are implemented in a similar\n // way. Do not accept thenables that use a function as `obj` and that have no\n // `catch` handler.\n\n // TODO: thenables are checked up until they have the correct methods,\n // but according to documentation, the `then` method should receive\n // the `fulfill` and `reject` arguments as well or it may be never resolved.\n\n return isPromise(obj) || obj !== null && _typeof(obj) === 'object' && typeof obj.then === 'function' && typeof obj.catch === 'function';\n}\nfunction waitForActual(promiseFn) {\n return Promise.resolve().then(function () {\n var resultPromise;\n if (typeof promiseFn === 'function') {\n // Return a rejected promise if `promiseFn` throws synchronously.\n resultPromise = promiseFn();\n // Fail in case no promise is returned.\n if (!checkIsPromise(resultPromise)) {\n throw new ERR_INVALID_RETURN_VALUE('instance of Promise', 'promiseFn', resultPromise);\n }\n } else if (checkIsPromise(promiseFn)) {\n resultPromise = promiseFn;\n } else {\n throw new ERR_INVALID_ARG_TYPE('promiseFn', ['Function', 'Promise'], promiseFn);\n }\n return Promise.resolve().then(function () {\n return resultPromise;\n }).then(function () {\n return NO_EXCEPTION_SENTINEL;\n }).catch(function (e) {\n return e;\n });\n });\n}\nfunction expectsError(stackStartFn, actual, error, message) {\n if (typeof error === 'string') {\n if (arguments.length === 4) {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n if (_typeof(actual) === 'object' && actual !== null) {\n if (actual.message === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error message \\\"\".concat(actual.message, \"\\\" is identical to the message.\"));\n }\n } else if (actual === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error \\\"\".concat(actual, \"\\\" is identical to the message.\"));\n }\n message = error;\n error = undefined;\n } else if (error != null && _typeof(error) !== 'object' && typeof error !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n if (actual === NO_EXCEPTION_SENTINEL) {\n var details = '';\n if (error && error.name) {\n details += \" (\".concat(error.name, \")\");\n }\n details += message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'rejects' ? 'rejection' : 'exception';\n innerFail({\n actual: undefined,\n expected: error,\n operator: stackStartFn.name,\n message: \"Missing expected \".concat(fnType).concat(details),\n stackStartFn: stackStartFn\n });\n }\n if (error && !expectedException(actual, error, message, stackStartFn)) {\n throw actual;\n }\n}\nfunction expectsNoError(stackStartFn, actual, error, message) {\n if (actual === NO_EXCEPTION_SENTINEL) return;\n if (typeof error === 'string') {\n message = error;\n error = undefined;\n }\n if (!error || expectedException(actual, error)) {\n var details = message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'doesNotReject' ? 'rejection' : 'exception';\n innerFail({\n actual: actual,\n expected: error,\n operator: stackStartFn.name,\n message: \"Got unwanted \".concat(fnType).concat(details, \"\\n\") + \"Actual message: \\\"\".concat(actual && actual.message, \"\\\"\"),\n stackStartFn: stackStartFn\n });\n }\n throw actual;\n}\nassert.throws = function throws(promiseFn) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n expectsError.apply(void 0, [throws, getActual(promiseFn)].concat(args));\n};\nassert.rejects = function rejects(promiseFn) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n return waitForActual(promiseFn).then(function (result) {\n return expectsError.apply(void 0, [rejects, result].concat(args));\n });\n};\nassert.doesNotThrow = function doesNotThrow(fn) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n expectsNoError.apply(void 0, [doesNotThrow, getActual(fn)].concat(args));\n};\nassert.doesNotReject = function doesNotReject(fn) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n return waitForActual(fn).then(function (result) {\n return expectsNoError.apply(void 0, [doesNotReject, result].concat(args));\n });\n};\nassert.ifError = function ifError(err) {\n if (err !== null && err !== undefined) {\n var message = 'ifError got unwanted exception: ';\n if (_typeof(err) === 'object' && typeof err.message === 'string') {\n if (err.message.length === 0 && err.constructor) {\n message += err.constructor.name;\n } else {\n message += err.message;\n }\n } else {\n message += inspect(err);\n }\n var newErr = new AssertionError({\n actual: err,\n expected: null,\n operator: 'ifError',\n message: message,\n stackStartFn: ifError\n });\n\n // Make sure we actually have a stack trace!\n var origStack = err.stack;\n if (typeof origStack === 'string') {\n // This will remove any duplicated frames from the error frames taken\n // from within `ifError` and add the original error frames to the newly\n // created ones.\n var tmp2 = origStack.split('\\n');\n tmp2.shift();\n // Filter all frames existing in err.stack.\n var tmp1 = newErr.stack.split('\\n');\n for (var i = 0; i < tmp2.length; i++) {\n // Find the first occurrence of the frame.\n var pos = tmp1.indexOf(tmp2[i]);\n if (pos !== -1) {\n // Only keep new frames.\n tmp1 = tmp1.slice(0, pos);\n break;\n }\n }\n newErr.stack = \"\".concat(tmp1.join('\\n'), \"\\n\").concat(tmp2.join('\\n'));\n }\n throw newErr;\n }\n};\n\n// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a871df3dfb8ea663ef5e1f8f62701ec51384ecb\nfunction internalMatch(string, regexp, message, fn, fnName) {\n if (!isRegExp(regexp)) {\n throw new ERR_INVALID_ARG_TYPE('regexp', 'RegExp', regexp);\n }\n var match = fnName === 'match';\n if (typeof string !== 'string' || RegExpPrototypeTest(regexp, string) !== match) {\n if (message instanceof Error) {\n throw message;\n }\n var generatedMessage = !message;\n\n // 'The input was expected to not match the regular expression ' +\n message = message || (typeof string !== 'string' ? 'The \"string\" argument must be of type string. Received type ' + \"\".concat(_typeof(string), \" (\").concat(inspect(string), \")\") : (match ? 'The input did not match the regular expression ' : 'The input was expected to not match the regular expression ') + \"\".concat(inspect(regexp), \". Input:\\n\\n\").concat(inspect(string), \"\\n\"));\n var err = new AssertionError({\n actual: string,\n expected: regexp,\n message: message,\n operator: fnName,\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n}\nassert.match = function match(string, regexp, message) {\n internalMatch(string, regexp, message, match, 'match');\n};\nassert.doesNotMatch = function doesNotMatch(string, regexp, message) {\n internalMatch(string, regexp, message, doesNotMatch, 'doesNotMatch');\n};\n\n// Expose a strict only variant of assert\nfunction strict() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n innerOk.apply(void 0, [strict, args.length].concat(args));\n}\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;","// Currently in sync with Node.js lib/internal/assert/assertion_error.js\n// https://github.com/nodejs/node/commit/0817840f775032169ddd70c85ac059f18ffcc81c\n\n'use strict';\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _require = require('util/'),\n inspect = _require.inspect;\nvar _require2 = require('../errors'),\n ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE;\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat\nfunction repeat(str, count) {\n count = Math.floor(count);\n if (str.length == 0 || count == 0) return '';\n var maxCount = str.length * count;\n count = Math.floor(Math.log(count) / Math.log(2));\n while (count) {\n str += str;\n count--;\n }\n str += str.substring(0, maxCount - str.length);\n return str;\n}\nvar blue = '';\nvar green = '';\nvar red = '';\nvar white = '';\nvar kReadableOperator = {\n deepStrictEqual: 'Expected values to be strictly deep-equal:',\n strictEqual: 'Expected values to be strictly equal:',\n strictEqualObject: 'Expected \"actual\" to be reference-equal to \"expected\":',\n deepEqual: 'Expected values to be loosely deep-equal:',\n equal: 'Expected values to be loosely equal:',\n notDeepStrictEqual: 'Expected \"actual\" not to be strictly deep-equal to:',\n notStrictEqual: 'Expected \"actual\" to be strictly unequal to:',\n notStrictEqualObject: 'Expected \"actual\" not to be reference-equal to \"expected\":',\n notDeepEqual: 'Expected \"actual\" not to be loosely deep-equal to:',\n notEqual: 'Expected \"actual\" to be loosely unequal to:',\n notIdentical: 'Values identical but not reference-equal:'\n};\n\n// Comparing short primitives should just show === / !== instead of using the\n// diff.\nvar kMaxShortLength = 10;\nfunction copyError(source) {\n var keys = Object.keys(source);\n var target = Object.create(Object.getPrototypeOf(source));\n keys.forEach(function (key) {\n target[key] = source[key];\n });\n Object.defineProperty(target, 'message', {\n value: source.message\n });\n return target;\n}\nfunction inspectValue(val) {\n // The util.inspect default values could be changed. This makes sure the\n // error messages contain the necessary information nevertheless.\n return inspect(val, {\n compact: false,\n customInspect: false,\n depth: 1000,\n maxArrayLength: Infinity,\n // Assert compares only enumerable properties (with a few exceptions).\n showHidden: false,\n // Having a long line as error is better than wrapping the line for\n // comparison for now.\n // TODO(BridgeAR): `breakLength` should be limited as soon as soon as we\n // have meta information about the inspected properties (i.e., know where\n // in what line the property starts and ends).\n breakLength: Infinity,\n // Assert does not detect proxies currently.\n showProxy: false,\n sorted: true,\n // Inspect getters as we also check them when comparing entries.\n getters: true\n });\n}\nfunction createErrDiff(actual, expected, operator) {\n var other = '';\n var res = '';\n var lastPos = 0;\n var end = '';\n var skipped = false;\n var actualInspected = inspectValue(actual);\n var actualLines = actualInspected.split('\\n');\n var expectedLines = inspectValue(expected).split('\\n');\n var i = 0;\n var indicator = '';\n\n // In case both values are objects explicitly mark them as not reference equal\n // for the `strictEqual` operator.\n if (operator === 'strictEqual' && _typeof(actual) === 'object' && _typeof(expected) === 'object' && actual !== null && expected !== null) {\n operator = 'strictEqualObject';\n }\n\n // If \"actual\" and \"expected\" fit on a single line and they are not strictly\n // equal, check further special handling.\n if (actualLines.length === 1 && expectedLines.length === 1 && actualLines[0] !== expectedLines[0]) {\n var inputLength = actualLines[0].length + expectedLines[0].length;\n // If the character length of \"actual\" and \"expected\" together is less than\n // kMaxShortLength and if neither is an object and at least one of them is\n // not `zero`, use the strict equal comparison to visualize the output.\n if (inputLength <= kMaxShortLength) {\n if ((_typeof(actual) !== 'object' || actual === null) && (_typeof(expected) !== 'object' || expected === null) && (actual !== 0 || expected !== 0)) {\n // -0 === +0\n return \"\".concat(kReadableOperator[operator], \"\\n\\n\") + \"\".concat(actualLines[0], \" !== \").concat(expectedLines[0], \"\\n\");\n }\n } else if (operator !== 'strictEqualObject') {\n // If the stderr is a tty and the input length is lower than the current\n // columns per line, add a mismatch indicator below the output. If it is\n // not a tty, use a default value of 80 characters.\n var maxLength = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;\n if (inputLength < maxLength) {\n while (actualLines[0][i] === expectedLines[0][i]) {\n i++;\n }\n // Ignore the first characters.\n if (i > 2) {\n // Add position indicator for the first mismatch in case it is a\n // single line and the input length is less than the column length.\n indicator = \"\\n \".concat(repeat(' ', i), \"^\");\n i = 0;\n }\n }\n }\n }\n\n // Remove all ending lines that match (this optimizes the output for\n // readability by reducing the number of total changed lines).\n var a = actualLines[actualLines.length - 1];\n var b = expectedLines[expectedLines.length - 1];\n while (a === b) {\n if (i++ < 2) {\n end = \"\\n \".concat(a).concat(end);\n } else {\n other = a;\n }\n actualLines.pop();\n expectedLines.pop();\n if (actualLines.length === 0 || expectedLines.length === 0) break;\n a = actualLines[actualLines.length - 1];\n b = expectedLines[expectedLines.length - 1];\n }\n var maxLines = Math.max(actualLines.length, expectedLines.length);\n // Strict equal with identical objects that are not identical by reference.\n // E.g., assert.deepStrictEqual({ a: Symbol() }, { a: Symbol() })\n if (maxLines === 0) {\n // We have to get the result again. The lines were all removed before.\n var _actualLines = actualInspected.split('\\n');\n\n // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n if (_actualLines.length > 30) {\n _actualLines[26] = \"\".concat(blue, \"...\").concat(white);\n while (_actualLines.length > 27) {\n _actualLines.pop();\n }\n }\n return \"\".concat(kReadableOperator.notIdentical, \"\\n\\n\").concat(_actualLines.join('\\n'), \"\\n\");\n }\n if (i > 3) {\n end = \"\\n\".concat(blue, \"...\").concat(white).concat(end);\n skipped = true;\n }\n if (other !== '') {\n end = \"\\n \".concat(other).concat(end);\n other = '';\n }\n var printedLines = 0;\n var msg = kReadableOperator[operator] + \"\\n\".concat(green, \"+ actual\").concat(white, \" \").concat(red, \"- expected\").concat(white);\n var skippedMsg = \" \".concat(blue, \"...\").concat(white, \" Lines skipped\");\n for (i = 0; i < maxLines; i++) {\n // Only extra expected lines exist\n var cur = i - lastPos;\n if (actualLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(expectedLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(expectedLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the expected line to the cache.\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLines[i]);\n printedLines++;\n // Only extra actual lines exist\n } else if (expectedLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the actual line to the result.\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLines[i]);\n printedLines++;\n // Lines diverge\n } else {\n var expectedLine = expectedLines[i];\n var actualLine = actualLines[i];\n // If the lines diverge, specifically check for lines that only diverge by\n // a trailing comma. In that case it is actually identical and we should\n // mark it as such.\n var divergingLines = actualLine !== expectedLine && (!endsWith(actualLine, ',') || actualLine.slice(0, -1) !== expectedLine);\n // If the expected line has a trailing comma but is otherwise identical,\n // add a comma at the end of the actual line. Otherwise the output could\n // look weird as in:\n //\n // [\n // 1 // No comma at the end!\n // + 2\n // ]\n //\n if (divergingLines && endsWith(expectedLine, ',') && expectedLine.slice(0, -1) === actualLine) {\n divergingLines = false;\n actualLine += ',';\n }\n if (divergingLines) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the actual line to the result and cache the expected diverging\n // line so consecutive diverging lines show up as +++--- and not +-+-+-.\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLine);\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLine);\n printedLines += 2;\n // Lines are identical\n } else {\n // Add all cached information to the result before adding other things\n // and reset the cache.\n res += other;\n other = '';\n // If the last diverging line is exactly one line above or if it is the\n // very first line, add the line to the result.\n if (cur === 1 || i === 0) {\n res += \"\\n \".concat(actualLine);\n printedLines++;\n }\n }\n }\n // Inspected object to big (Show ~20 rows max)\n if (printedLines > 20 && i < maxLines - 2) {\n return \"\".concat(msg).concat(skippedMsg, \"\\n\").concat(res, \"\\n\").concat(blue, \"...\").concat(white).concat(other, \"\\n\") + \"\".concat(blue, \"...\").concat(white);\n }\n }\n return \"\".concat(msg).concat(skipped ? skippedMsg : '', \"\\n\").concat(res).concat(other).concat(end).concat(indicator);\n}\nvar AssertionError = /*#__PURE__*/function (_Error, _inspect$custom) {\n _inherits(AssertionError, _Error);\n var _super = _createSuper(AssertionError);\n function AssertionError(options) {\n var _this;\n _classCallCheck(this, AssertionError);\n if (_typeof(options) !== 'object' || options === null) {\n throw new ERR_INVALID_ARG_TYPE('options', 'Object', options);\n }\n var message = options.message,\n operator = options.operator,\n stackStartFn = options.stackStartFn;\n var actual = options.actual,\n expected = options.expected;\n var limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n if (message != null) {\n _this = _super.call(this, String(message));\n } else {\n if (process.stderr && process.stderr.isTTY) {\n // Reset on each call to make sure we handle dynamically set environment\n // variables correct.\n if (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1) {\n blue = \"\\x1B[34m\";\n green = \"\\x1B[32m\";\n white = \"\\x1B[39m\";\n red = \"\\x1B[31m\";\n } else {\n blue = '';\n green = '';\n white = '';\n red = '';\n }\n }\n // Prevent the error stack from being visible by duplicating the error\n // in a very close way to the original in case both sides are actually\n // instances of Error.\n if (_typeof(actual) === 'object' && actual !== null && _typeof(expected) === 'object' && expected !== null && 'stack' in actual && actual instanceof Error && 'stack' in expected && expected instanceof Error) {\n actual = copyError(actual);\n expected = copyError(expected);\n }\n if (operator === 'deepStrictEqual' || operator === 'strictEqual') {\n _this = _super.call(this, createErrDiff(actual, expected, operator));\n } else if (operator === 'notDeepStrictEqual' || operator === 'notStrictEqual') {\n // In case the objects are equal but the operator requires unequal, show\n // the first object and say A equals B\n var base = kReadableOperator[operator];\n var res = inspectValue(actual).split('\\n');\n\n // In case \"actual\" is an object, it should not be reference equal.\n if (operator === 'notStrictEqual' && _typeof(actual) === 'object' && actual !== null) {\n base = kReadableOperator.notStrictEqualObject;\n }\n\n // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n if (res.length > 30) {\n res[26] = \"\".concat(blue, \"...\").concat(white);\n while (res.length > 27) {\n res.pop();\n }\n }\n\n // Only print a single input.\n if (res.length === 1) {\n _this = _super.call(this, \"\".concat(base, \" \").concat(res[0]));\n } else {\n _this = _super.call(this, \"\".concat(base, \"\\n\\n\").concat(res.join('\\n'), \"\\n\"));\n }\n } else {\n var _res = inspectValue(actual);\n var other = '';\n var knownOperators = kReadableOperator[operator];\n if (operator === 'notDeepEqual' || operator === 'notEqual') {\n _res = \"\".concat(kReadableOperator[operator], \"\\n\\n\").concat(_res);\n if (_res.length > 1024) {\n _res = \"\".concat(_res.slice(0, 1021), \"...\");\n }\n } else {\n other = \"\".concat(inspectValue(expected));\n if (_res.length > 512) {\n _res = \"\".concat(_res.slice(0, 509), \"...\");\n }\n if (other.length > 512) {\n other = \"\".concat(other.slice(0, 509), \"...\");\n }\n if (operator === 'deepEqual' || operator === 'equal') {\n _res = \"\".concat(knownOperators, \"\\n\\n\").concat(_res, \"\\n\\nshould equal\\n\\n\");\n } else {\n other = \" \".concat(operator, \" \").concat(other);\n }\n }\n _this = _super.call(this, \"\".concat(_res).concat(other));\n }\n }\n Error.stackTraceLimit = limit;\n _this.generatedMessage = !message;\n Object.defineProperty(_assertThisInitialized(_this), 'name', {\n value: 'AssertionError [ERR_ASSERTION]',\n enumerable: false,\n writable: true,\n configurable: true\n });\n _this.code = 'ERR_ASSERTION';\n _this.actual = actual;\n _this.expected = expected;\n _this.operator = operator;\n if (Error.captureStackTrace) {\n // eslint-disable-next-line no-restricted-syntax\n Error.captureStackTrace(_assertThisInitialized(_this), stackStartFn);\n }\n // Create error message including the error code in the name.\n _this.stack;\n // Reset the name.\n _this.name = 'AssertionError';\n return _possibleConstructorReturn(_this);\n }\n _createClass(AssertionError, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.name, \" [\").concat(this.code, \"]: \").concat(this.message);\n }\n }, {\n key: _inspect$custom,\n value: function value(recurseTimes, ctx) {\n // This limits the `actual` and `expected` property default inspection to\n // the minimum depth. Otherwise those values would be too verbose compared\n // to the actual error message which contains a combined view of these two\n // input values.\n return inspect(this, _objectSpread(_objectSpread({}, ctx), {}, {\n customInspect: false,\n depth: 0\n }));\n }\n }]);\n return AssertionError;\n}( /*#__PURE__*/_wrapNativeSuper(Error), inspect.custom);\nmodule.exports = AssertionError;","// Currently in sync with Node.js lib/internal/errors.js\n// https://github.com/nodejs/node/commit/3b044962c48fe313905877a96b5d0894a5404f6f\n\n/* eslint node-core/documented-errors: \"error\" */\n/* eslint node-core/alphabetize-errors: \"error\" */\n/* eslint node-core/prefer-util-format-errors: \"error\" */\n\n'use strict';\n\n// The whole point behind this internal module is to allow Node.js to no\n// longer be forced to treat every error message change as a semver-major\n// change. The NodeError classes here all expose a `code` property whose\n// value statically and permanently identifies the error. While the error\n// message may change, the code should not.\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar codes = {};\n\n// Lazy loaded\nvar assert;\nvar util;\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /*#__PURE__*/function (_Base) {\n _inherits(NodeError, _Base);\n var _super = _createSuper(NodeError);\n function NodeError(arg1, arg2, arg3) {\n var _this;\n _classCallCheck(this, NodeError);\n _this = _super.call(this, getMessage(arg1, arg2, arg3));\n _this.code = code;\n return _this;\n }\n return _createClass(NodeError);\n }(Base);\n codes[code] = NodeError;\n}\n\n// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\ncreateErrorType('ERR_AMBIGUOUS_ARGUMENT', 'The \"%s\" argument is ambiguous. %s', TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n if (assert === undefined) assert = require('../assert');\n assert(typeof name === 'string', \"'name' must be a string\");\n\n // determiner: 'must be' or 'must not be'\n var determiner;\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n var msg;\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n // TODO(BridgeAR): Improve the output by showing `null` and similar.\n msg += \". Received type \".concat(_typeof(actual));\n return msg;\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_VALUE', function (name, value) {\n var reason = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'is invalid';\n if (util === undefined) util = require('util/');\n var inspected = util.inspect(value);\n if (inspected.length > 128) {\n inspected = \"\".concat(inspected.slice(0, 128), \"...\");\n }\n return \"The argument '\".concat(name, \"' \").concat(reason, \". Received \").concat(inspected);\n}, TypeError, RangeError);\ncreateErrorType('ERR_INVALID_RETURN_VALUE', function (input, name, value) {\n var type;\n if (value && value.constructor && value.constructor.name) {\n type = \"instance of \".concat(value.constructor.name);\n } else {\n type = \"type \".concat(_typeof(value));\n }\n return \"Expected \".concat(input, \" to be returned from the \\\"\").concat(name, \"\\\"\") + \" function but got \".concat(type, \".\");\n}, TypeError);\ncreateErrorType('ERR_MISSING_ARGS', function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (assert === undefined) assert = require('../assert');\n assert(args.length > 0, 'At least one arg needs to be specified');\n var msg = 'The ';\n var len = args.length;\n args = args.map(function (a) {\n return \"\\\"\".concat(a, \"\\\"\");\n });\n switch (len) {\n case 1:\n msg += \"\".concat(args[0], \" argument\");\n break;\n case 2:\n msg += \"\".concat(args[0], \" and \").concat(args[1], \" arguments\");\n break;\n default:\n msg += args.slice(0, len - 1).join(', ');\n msg += \", and \".concat(args[len - 1], \" arguments\");\n break;\n }\n return \"\".concat(msg, \" must be specified\");\n}, TypeError);\nmodule.exports.codes = codes;","// Currently in sync with Node.js lib/internal/util/comparisons.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar regexFlagsSupported = /a/g.flags !== undefined;\nvar arrayFromSet = function arrayFromSet(set) {\n var array = [];\n set.forEach(function (value) {\n return array.push(value);\n });\n return array;\n};\nvar arrayFromMap = function arrayFromMap(map) {\n var array = [];\n map.forEach(function (value, key) {\n return array.push([key, value]);\n });\n return array;\n};\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar objectGetOwnPropertySymbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function () {\n return [];\n};\nvar numberIsNaN = Number.isNaN ? Number.isNaN : require('is-nan');\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\nvar hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty);\nvar propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable);\nvar objectToString = uncurryThis(Object.prototype.toString);\nvar _require$types = require('util/').types,\n isAnyArrayBuffer = _require$types.isAnyArrayBuffer,\n isArrayBufferView = _require$types.isArrayBufferView,\n isDate = _require$types.isDate,\n isMap = _require$types.isMap,\n isRegExp = _require$types.isRegExp,\n isSet = _require$types.isSet,\n isNativeError = _require$types.isNativeError,\n isBoxedPrimitive = _require$types.isBoxedPrimitive,\n isNumberObject = _require$types.isNumberObject,\n isStringObject = _require$types.isStringObject,\n isBooleanObject = _require$types.isBooleanObject,\n isBigIntObject = _require$types.isBigIntObject,\n isSymbolObject = _require$types.isSymbolObject,\n isFloat32Array = _require$types.isFloat32Array,\n isFloat64Array = _require$types.isFloat64Array;\nfunction isNonIndex(key) {\n if (key.length === 0 || key.length > 10) return true;\n for (var i = 0; i < key.length; i++) {\n var code = key.charCodeAt(i);\n if (code < 48 || code > 57) return true;\n }\n // The maximum size for an array is 2 ** 32 -1.\n return key.length === 10 && key >= Math.pow(2, 32);\n}\nfunction getOwnNonIndexProperties(value) {\n return Object.keys(value).filter(isNonIndex).concat(objectGetOwnPropertySymbols(value).filter(Object.prototype.propertyIsEnumerable.bind(value)));\n}\n\n// Taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n var x = a.length;\n var y = b.length;\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y) {\n return -1;\n }\n if (y < x) {\n return 1;\n }\n return 0;\n}\nvar ONLY_ENUMERABLE = undefined;\nvar kStrict = true;\nvar kLoose = false;\nvar kNoIterator = 0;\nvar kIsArray = 1;\nvar kIsSet = 2;\nvar kIsMap = 3;\n\n// Check if they have the same source and flags\nfunction areSimilarRegExps(a, b) {\n return regexFlagsSupported ? a.source === b.source && a.flags === b.flags : RegExp.prototype.toString.call(a) === RegExp.prototype.toString.call(b);\n}\nfunction areSimilarFloatArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n for (var offset = 0; offset < a.byteLength; offset++) {\n if (a[offset] !== b[offset]) {\n return false;\n }\n }\n return true;\n}\nfunction areSimilarTypedArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n return compare(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)) === 0;\n}\nfunction areEqualArrayBuffers(buf1, buf2) {\n return buf1.byteLength === buf2.byteLength && compare(new Uint8Array(buf1), new Uint8Array(buf2)) === 0;\n}\nfunction isEqualBoxedPrimitive(val1, val2) {\n if (isNumberObject(val1)) {\n return isNumberObject(val2) && objectIs(Number.prototype.valueOf.call(val1), Number.prototype.valueOf.call(val2));\n }\n if (isStringObject(val1)) {\n return isStringObject(val2) && String.prototype.valueOf.call(val1) === String.prototype.valueOf.call(val2);\n }\n if (isBooleanObject(val1)) {\n return isBooleanObject(val2) && Boolean.prototype.valueOf.call(val1) === Boolean.prototype.valueOf.call(val2);\n }\n if (isBigIntObject(val1)) {\n return isBigIntObject(val2) && BigInt.prototype.valueOf.call(val1) === BigInt.prototype.valueOf.call(val2);\n }\n return isSymbolObject(val2) && Symbol.prototype.valueOf.call(val1) === Symbol.prototype.valueOf.call(val2);\n}\n\n// Notes: Type tags are historical [[Class]] properties that can be set by\n// FunctionTemplate::SetClassName() in C++ or Symbol.toStringTag in JS\n// and retrieved using Object.prototype.toString.call(obj) in JS\n// See https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n// for a list of tags pre-defined in the spec.\n// There are some unspecified tags in the wild too (e.g. typed array tags).\n// Since tags can be altered, they only serve fast failures\n//\n// Typed arrays and buffers are checked by comparing the content in their\n// underlying ArrayBuffer. This optimization requires that it's\n// reasonable to interpret their underlying memory in the same way,\n// which is checked by comparing their type tags.\n// (e.g. a Uint8Array and a Uint16Array with the same memory content\n// could still be different because they will be interpreted differently).\n//\n// For strict comparison, objects should have\n// a) The same built-in type tags\n// b) The same prototypes.\n\nfunction innerDeepEqual(val1, val2, strict, memos) {\n // All identical values are equivalent, as determined by ===.\n if (val1 === val2) {\n if (val1 !== 0) return true;\n return strict ? objectIs(val1, val2) : true;\n }\n\n // Check more closely if val1 and val2 are equal.\n if (strict) {\n if (_typeof(val1) !== 'object') {\n return typeof val1 === 'number' && numberIsNaN(val1) && numberIsNaN(val2);\n }\n if (_typeof(val2) !== 'object' || val1 === null || val2 === null) {\n return false;\n }\n if (Object.getPrototypeOf(val1) !== Object.getPrototypeOf(val2)) {\n return false;\n }\n } else {\n if (val1 === null || _typeof(val1) !== 'object') {\n if (val2 === null || _typeof(val2) !== 'object') {\n // eslint-disable-next-line eqeqeq\n return val1 == val2;\n }\n return false;\n }\n if (val2 === null || _typeof(val2) !== 'object') {\n return false;\n }\n }\n var val1Tag = objectToString(val1);\n var val2Tag = objectToString(val2);\n if (val1Tag !== val2Tag) {\n return false;\n }\n if (Array.isArray(val1)) {\n // Check for sparse arrays and general fast path\n if (val1.length !== val2.length) {\n return false;\n }\n var keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n if (keys1.length !== keys2.length) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsArray, keys1);\n }\n // [browserify] This triggers on certain types in IE (Map/Set) so we don't\n // wan't to early return out of the rest of the checks. However we can check\n // if the second value is one of these values and the first isn't.\n if (val1Tag === '[object Object]') {\n // return keyCheck(val1, val2, strict, memos, kNoIterator);\n if (!isMap(val1) && isMap(val2) || !isSet(val1) && isSet(val2)) {\n return false;\n }\n }\n if (isDate(val1)) {\n if (!isDate(val2) || Date.prototype.getTime.call(val1) !== Date.prototype.getTime.call(val2)) {\n return false;\n }\n } else if (isRegExp(val1)) {\n if (!isRegExp(val2) || !areSimilarRegExps(val1, val2)) {\n return false;\n }\n } else if (isNativeError(val1) || val1 instanceof Error) {\n // Do not compare the stack as it might differ even though the error itself\n // is otherwise identical.\n if (val1.message !== val2.message || val1.name !== val2.name) {\n return false;\n }\n } else if (isArrayBufferView(val1)) {\n if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) {\n if (!areSimilarFloatArrays(val1, val2)) {\n return false;\n }\n } else if (!areSimilarTypedArrays(val1, val2)) {\n return false;\n }\n // Buffer.compare returns true, so val1.length === val2.length. If they both\n // only contain numeric keys, we don't need to exam further than checking\n // the symbols.\n var _keys = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var _keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n if (_keys.length !== _keys2.length) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kNoIterator, _keys);\n } else if (isSet(val1)) {\n if (!isSet(val2) || val1.size !== val2.size) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsSet);\n } else if (isMap(val1)) {\n if (!isMap(val2) || val1.size !== val2.size) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsMap);\n } else if (isAnyArrayBuffer(val1)) {\n if (!areEqualArrayBuffers(val1, val2)) {\n return false;\n }\n } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kNoIterator);\n}\nfunction getEnumerables(val, keys) {\n return keys.filter(function (k) {\n return propertyIsEnumerable(val, k);\n });\n}\nfunction keyCheck(val1, val2, strict, memos, iterationType, aKeys) {\n // For all remaining Object pairs, including Array, objects and Maps,\n // equivalence is determined by having:\n // a) The same number of owned enumerable properties\n // b) The same set of keys/indexes (although not necessarily the same order)\n // c) Equivalent values for every corresponding key/index\n // d) For Sets and Maps, equal contents\n // Note: this accounts for both named and indexed properties on Arrays.\n if (arguments.length === 5) {\n aKeys = Object.keys(val1);\n var bKeys = Object.keys(val2);\n\n // The pair must have the same number of owned properties.\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n }\n\n // Cheap key test\n var i = 0;\n for (; i < aKeys.length; i++) {\n if (!hasOwnProperty(val2, aKeys[i])) {\n return false;\n }\n }\n if (strict && arguments.length === 5) {\n var symbolKeysA = objectGetOwnPropertySymbols(val1);\n if (symbolKeysA.length !== 0) {\n var count = 0;\n for (i = 0; i < symbolKeysA.length; i++) {\n var key = symbolKeysA[i];\n if (propertyIsEnumerable(val1, key)) {\n if (!propertyIsEnumerable(val2, key)) {\n return false;\n }\n aKeys.push(key);\n count++;\n } else if (propertyIsEnumerable(val2, key)) {\n return false;\n }\n }\n var symbolKeysB = objectGetOwnPropertySymbols(val2);\n if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) {\n return false;\n }\n } else {\n var _symbolKeysB = objectGetOwnPropertySymbols(val2);\n if (_symbolKeysB.length !== 0 && getEnumerables(val2, _symbolKeysB).length !== 0) {\n return false;\n }\n }\n }\n if (aKeys.length === 0 && (iterationType === kNoIterator || iterationType === kIsArray && val1.length === 0 || val1.size === 0)) {\n return true;\n }\n\n // Use memos to handle cycles.\n if (memos === undefined) {\n memos = {\n val1: new Map(),\n val2: new Map(),\n position: 0\n };\n } else {\n // We prevent up to two map.has(x) calls by directly retrieving the value\n // and checking for undefined. The map can only contain numbers, so it is\n // safe to check for undefined only.\n var val2MemoA = memos.val1.get(val1);\n if (val2MemoA !== undefined) {\n var val2MemoB = memos.val2.get(val2);\n if (val2MemoB !== undefined) {\n return val2MemoA === val2MemoB;\n }\n }\n memos.position++;\n }\n memos.val1.set(val1, memos.position);\n memos.val2.set(val2, memos.position);\n var areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType);\n memos.val1.delete(val1);\n memos.val2.delete(val2);\n return areEq;\n}\nfunction setHasEqualElement(set, val1, strict, memo) {\n // Go looking.\n var setValues = arrayFromSet(set);\n for (var i = 0; i < setValues.length; i++) {\n var val2 = setValues[i];\n if (innerDeepEqual(val1, val2, strict, memo)) {\n // Remove the matching element to make sure we do not check that again.\n set.delete(val2);\n return true;\n }\n }\n return false;\n}\n\n// See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using\n// Sadly it is not possible to detect corresponding values properly in case the\n// type is a string, number, bigint or boolean. The reason is that those values\n// can match lots of different string values (e.g., 1n == '+00001').\nfunction findLooseMatchingPrimitives(prim) {\n switch (_typeof(prim)) {\n case 'undefined':\n return null;\n case 'object':\n // Only pass in null as object!\n return undefined;\n case 'symbol':\n return false;\n case 'string':\n prim = +prim;\n // Loose equal entries exist only if the string is possible to convert to\n // a regular number and not NaN.\n // Fall through\n case 'number':\n if (numberIsNaN(prim)) {\n return false;\n }\n }\n return true;\n}\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) return altValue;\n return b.has(altValue) && !a.has(altValue);\n}\nfunction mapMightHaveLoosePrim(a, b, prim, item, memo) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) {\n return altValue;\n }\n var curB = b.get(altValue);\n if (curB === undefined && !b.has(altValue) || !innerDeepEqual(item, curB, false, memo)) {\n return false;\n }\n return !a.has(altValue) && innerDeepEqual(item, curB, false, memo);\n}\nfunction setEquiv(a, b, strict, memo) {\n // This is a lazily initiated Set of entries which have to be compared\n // pairwise.\n var set = null;\n var aValues = arrayFromSet(a);\n for (var i = 0; i < aValues.length; i++) {\n var val = aValues[i];\n // Note: Checking for the objects first improves the performance for object\n // heavy sets but it is a minor slow down for primitives. As they are fast\n // to check this improves the worst case scenario instead.\n if (_typeof(val) === 'object' && val !== null) {\n if (set === null) {\n set = new Set();\n }\n // If the specified value doesn't exist in the second set its an not null\n // object (or non strict only: a not matching primitive) we'll need to go\n // hunting for something thats deep-(strict-)equal to it. To make this\n // O(n log n) complexity we have to copy these values in a new set first.\n set.add(val);\n } else if (!b.has(val)) {\n if (strict) return false;\n\n // Fast path to detect missing string, symbol, undefined and null values.\n if (!setMightHaveLoosePrim(a, b, val)) {\n return false;\n }\n if (set === null) {\n set = new Set();\n }\n set.add(val);\n }\n }\n if (set !== null) {\n var bValues = arrayFromSet(b);\n for (var _i = 0; _i < bValues.length; _i++) {\n var _val = bValues[_i];\n // We have to check if a primitive value is already\n // matching and only if it's not, go hunting for it.\n if (_typeof(_val) === 'object' && _val !== null) {\n if (!setHasEqualElement(set, _val, strict, memo)) return false;\n } else if (!strict && !a.has(_val) && !setHasEqualElement(set, _val, strict, memo)) {\n return false;\n }\n }\n return set.size === 0;\n }\n return true;\n}\nfunction mapHasEqualEntry(set, map, key1, item1, strict, memo) {\n // To be able to handle cases like:\n // Map([[{}, 'a'], [{}, 'b']]) vs Map([[{}, 'b'], [{}, 'a']])\n // ... we need to consider *all* matching keys, not just the first we find.\n var setValues = arrayFromSet(set);\n for (var i = 0; i < setValues.length; i++) {\n var key2 = setValues[i];\n if (innerDeepEqual(key1, key2, strict, memo) && innerDeepEqual(item1, map.get(key2), strict, memo)) {\n set.delete(key2);\n return true;\n }\n }\n return false;\n}\nfunction mapEquiv(a, b, strict, memo) {\n var set = null;\n var aEntries = arrayFromMap(a);\n for (var i = 0; i < aEntries.length; i++) {\n var _aEntries$i = _slicedToArray(aEntries[i], 2),\n key = _aEntries$i[0],\n item1 = _aEntries$i[1];\n if (_typeof(key) === 'object' && key !== null) {\n if (set === null) {\n set = new Set();\n }\n set.add(key);\n } else {\n // By directly retrieving the value we prevent another b.has(key) check in\n // almost all possible cases.\n var item2 = b.get(key);\n if (item2 === undefined && !b.has(key) || !innerDeepEqual(item1, item2, strict, memo)) {\n if (strict) return false;\n // Fast path to detect missing string, symbol, undefined and null\n // keys.\n if (!mapMightHaveLoosePrim(a, b, key, item1, memo)) return false;\n if (set === null) {\n set = new Set();\n }\n set.add(key);\n }\n }\n }\n if (set !== null) {\n var bEntries = arrayFromMap(b);\n for (var _i2 = 0; _i2 < bEntries.length; _i2++) {\n var _bEntries$_i = _slicedToArray(bEntries[_i2], 2),\n _key = _bEntries$_i[0],\n item = _bEntries$_i[1];\n if (_typeof(_key) === 'object' && _key !== null) {\n if (!mapHasEqualEntry(set, a, _key, item, strict, memo)) return false;\n } else if (!strict && (!a.has(_key) || !innerDeepEqual(a.get(_key), item, false, memo)) && !mapHasEqualEntry(set, a, _key, item, false, memo)) {\n return false;\n }\n }\n return set.size === 0;\n }\n return true;\n}\nfunction objEquiv(a, b, strict, keys, memos, iterationType) {\n // Sets and maps don't have their entries accessible via normal object\n // properties.\n var i = 0;\n if (iterationType === kIsSet) {\n if (!setEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsMap) {\n if (!mapEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsArray) {\n for (; i < a.length; i++) {\n if (hasOwnProperty(a, i)) {\n if (!hasOwnProperty(b, i) || !innerDeepEqual(a[i], b[i], strict, memos)) {\n return false;\n }\n } else if (hasOwnProperty(b, i)) {\n return false;\n } else {\n // Array is sparse.\n var keysA = Object.keys(a);\n for (; i < keysA.length; i++) {\n var key = keysA[i];\n if (!hasOwnProperty(b, key) || !innerDeepEqual(a[key], b[key], strict, memos)) {\n return false;\n }\n }\n if (keysA.length !== Object.keys(b).length) {\n return false;\n }\n return true;\n }\n }\n }\n\n // The pair must have equivalent values for every corresponding key.\n // Possibly expensive deep test:\n for (i = 0; i < keys.length; i++) {\n var _key2 = keys[i];\n if (!innerDeepEqual(a[_key2], b[_key2], strict, memos)) {\n return false;\n }\n }\n return true;\n}\nfunction isDeepEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kLoose);\n}\nfunction isDeepStrictEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kStrict);\n}\nmodule.exports = {\n isDeepEqual: isDeepEqual,\n isDeepStrictEqual: isDeepStrictEqual\n};","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","'use strict'\nvar ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'\n\n// pre-compute lookup table\nvar ALPHABET_MAP = {}\nfor (var z = 0; z < ALPHABET.length; z++) {\n var x = ALPHABET.charAt(z)\n\n if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')\n ALPHABET_MAP[x] = z\n}\n\nfunction polymodStep (pre) {\n var b = pre >> 25\n return ((pre & 0x1FFFFFF) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3)\n}\n\nfunction prefixChk (prefix) {\n var chk = 1\n for (var i = 0; i < prefix.length; ++i) {\n var c = prefix.charCodeAt(i)\n if (c < 33 || c > 126) return 'Invalid prefix (' + prefix + ')'\n\n chk = polymodStep(chk) ^ (c >> 5)\n }\n chk = polymodStep(chk)\n\n for (i = 0; i < prefix.length; ++i) {\n var v = prefix.charCodeAt(i)\n chk = polymodStep(chk) ^ (v & 0x1f)\n }\n return chk\n}\n\nfunction encode (prefix, words, LIMIT) {\n LIMIT = LIMIT || 90\n if ((prefix.length + 7 + words.length) > LIMIT) throw new TypeError('Exceeds length limit')\n\n prefix = prefix.toLowerCase()\n\n // determine chk mod\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') throw new Error(chk)\n\n var result = prefix + '1'\n for (var i = 0; i < words.length; ++i) {\n var x = words[i]\n if ((x >> 5) !== 0) throw new Error('Non 5-bit word')\n\n chk = polymodStep(chk) ^ x\n result += ALPHABET.charAt(x)\n }\n\n for (i = 0; i < 6; ++i) {\n chk = polymodStep(chk)\n }\n chk ^= 1\n\n for (i = 0; i < 6; ++i) {\n var v = (chk >> ((5 - i) * 5)) & 0x1f\n result += ALPHABET.charAt(v)\n }\n\n return result\n}\n\nfunction __decode (str, LIMIT) {\n LIMIT = LIMIT || 90\n if (str.length < 8) return str + ' too short'\n if (str.length > LIMIT) return 'Exceeds length limit'\n\n // don't allow mixed case\n var lowered = str.toLowerCase()\n var uppered = str.toUpperCase()\n if (str !== lowered && str !== uppered) return 'Mixed-case string ' + str\n str = lowered\n\n var split = str.lastIndexOf('1')\n if (split === -1) return 'No separator character for ' + str\n if (split === 0) return 'Missing prefix for ' + str\n\n var prefix = str.slice(0, split)\n var wordChars = str.slice(split + 1)\n if (wordChars.length < 6) return 'Data too short'\n\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') return chk\n\n var words = []\n for (var i = 0; i < wordChars.length; ++i) {\n var c = wordChars.charAt(i)\n var v = ALPHABET_MAP[c]\n if (v === undefined) return 'Unknown character ' + c\n chk = polymodStep(chk) ^ v\n\n // not in the checksum?\n if (i + 6 >= wordChars.length) continue\n words.push(v)\n }\n\n if (chk !== 1) return 'Invalid checksum for ' + str\n return { prefix: prefix, words: words }\n}\n\nfunction decodeUnsafe () {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n}\n\nfunction decode (str) {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n\n throw new Error(res)\n}\n\nfunction convert (data, inBits, outBits, pad) {\n var value = 0\n var bits = 0\n var maxV = (1 << outBits) - 1\n\n var result = []\n for (var i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i]\n bits += inBits\n\n while (bits >= outBits) {\n bits -= outBits\n result.push((value >> bits) & maxV)\n }\n }\n\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV)\n }\n } else {\n if (bits >= inBits) return 'Excess padding'\n if ((value << (outBits - bits)) & maxV) return 'Non-zero padding'\n }\n\n return result\n}\n\nfunction toWordsUnsafe (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n}\n\nfunction toWords (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nfunction fromWordsUnsafe (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n}\n\nfunction fromWords (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nmodule.exports = {\n decodeUnsafe: decodeUnsafe,\n decode: decode,\n encode: encode,\n toWordsUnsafe: toWordsUnsafe,\n toWords: toWords,\n fromWordsUnsafe: fromWordsUnsafe,\n fromWords: fromWords\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","'use strict';\n\nvar BN = require('bn.js');\nvar randomBytes = require('randombytes');\nvar Buffer = require('safe-buffer').Buffer;\n\nfunction getr(priv) {\n\tvar len = priv.modulus.byteLength();\n\tvar r;\n\tdo {\n\t\tr = new BN(randomBytes(len));\n\t} while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2));\n\treturn r;\n}\n\nfunction blind(priv) {\n\tvar r = getr(priv);\n\tvar blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed();\n\treturn { blinder: blinder, unblinder: r.invm(priv.modulus) };\n}\n\nfunction crt(msg, priv) {\n\tvar blinds = blind(priv);\n\tvar len = priv.modulus.byteLength();\n\tvar blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus);\n\tvar c1 = blinded.toRed(BN.mont(priv.prime1));\n\tvar c2 = blinded.toRed(BN.mont(priv.prime2));\n\tvar qinv = priv.coefficient;\n\tvar p = priv.prime1;\n\tvar q = priv.prime2;\n\tvar m1 = c1.redPow(priv.exponent1).fromRed();\n\tvar m2 = c2.redPow(priv.exponent2).fromRed();\n\tvar h = m1.isub(m2).imul(qinv).umod(p).imul(q);\n\treturn m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len);\n}\ncrt.getr = getr;\n\nmodule.exports = crt;\n","'use strict';\n\nmodule.exports = require('./browser/algorithms.json');\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar createHash = require('create-hash');\nvar stream = require('readable-stream');\nvar inherits = require('inherits');\nvar sign = require('./sign');\nvar verify = require('./verify');\n\nvar algorithms = require('./algorithms.json');\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex');\n algorithms[key.toLowerCase()] = algorithms[key];\n});\n\nfunction Sign(algorithm) {\n stream.Writable.call(this);\n\n var data = algorithms[algorithm];\n if (!data) { throw new Error('Unknown message digest'); }\n\n this._hashType = data.hash;\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\ninherits(Sign, stream.Writable);\n\nSign.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n done();\n};\n\nSign.prototype.update = function update(data, enc) {\n this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n return this;\n};\n\nSign.prototype.sign = function signMethod(key, enc) {\n this.end();\n var hash = this._hash.digest();\n var sig = sign(hash, key, this._hashType, this._signType, this._tag);\n\n return enc ? sig.toString(enc) : sig;\n};\n\nfunction Verify(algorithm) {\n stream.Writable.call(this);\n\n var data = algorithms[algorithm];\n if (!data) { throw new Error('Unknown message digest'); }\n\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\ninherits(Verify, stream.Writable);\n\nVerify.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n done();\n};\n\nVerify.prototype.update = function update(data, enc) {\n this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n return this;\n};\n\nVerify.prototype.verify = function verifyMethod(key, sig, enc) {\n var sigBuffer = typeof sig === 'string' ? Buffer.from(sig, enc) : sig;\n\n this.end();\n var hash = this._hash.digest();\n return verify(sigBuffer, hash, key, this._signType, this._tag);\n};\n\nfunction createSign(algorithm) {\n return new Sign(algorithm);\n}\n\nfunction createVerify(algorithm) {\n return new Verify(algorithm);\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n};\n","'use strict';\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer;\nvar createHmac = require('create-hmac');\nvar crt = require('browserify-rsa');\nvar EC = require('elliptic').ec;\nvar BN = require('bn.js');\nvar parseKeys = require('parse-asn1');\nvar curves = require('./curves.json');\n\nvar RSA_PKCS1_PADDING = 1;\n\nfunction sign(hash, key, hashType, signType, tag) {\n var priv = parseKeys(key);\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n return ecSign(hash, priv);\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') { throw new Error('wrong private key type'); }\n return dsaSign(hash, priv, hashType);\n }\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n if (key.padding !== undefined && key.padding !== RSA_PKCS1_PADDING) { throw new Error('illegal or unsupported padding mode'); }\n\n hash = Buffer.concat([tag, hash]);\n var len = priv.modulus.byteLength();\n var pad = [0, 1];\n while (hash.length + pad.length + 1 < len) { pad.push(0xff); }\n pad.push(0x00);\n var i = -1;\n while (++i < hash.length) { pad.push(hash[i]); }\n\n var out = crt(pad, priv);\n return out;\n}\n\nfunction ecSign(hash, priv) {\n var curveId = curves[priv.curve.join('.')];\n if (!curveId) { throw new Error('unknown curve ' + priv.curve.join('.')); }\n\n var curve = new EC(curveId);\n var key = curve.keyFromPrivate(priv.privateKey);\n var out = key.sign(hash);\n\n return Buffer.from(out.toDER());\n}\n\nfunction dsaSign(hash, priv, algo) {\n var x = priv.params.priv_key;\n var p = priv.params.p;\n var q = priv.params.q;\n var g = priv.params.g;\n var r = new BN(0);\n var k;\n var H = bits2int(hash, q).mod(q);\n var s = false;\n var kv = getKey(x, q, hash, algo);\n while (s === false) {\n k = makeKey(q, kv, algo);\n r = makeR(g, k, p, q);\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q);\n if (s.cmpn(0) === 0) {\n s = false;\n r = new BN(0);\n }\n }\n return toDER(r, s);\n}\n\nfunction toDER(r, s) {\n r = r.toArray();\n s = s.toArray();\n\n // Pad values\n if (r[0] & 0x80) { r = [0].concat(r); }\n if (s[0] & 0x80) { s = [0].concat(s); }\n\n var total = r.length + s.length + 4;\n var res = [\n 0x30, total, 0x02, r.length\n ];\n res = res.concat(r, [0x02, s.length], s);\n return Buffer.from(res);\n}\n\nfunction getKey(x, q, hash, algo) {\n x = Buffer.from(x.toArray());\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length);\n x = Buffer.concat([zeros, x]);\n }\n var hlen = hash.length;\n var hbits = bits2octets(hash, q);\n var v = Buffer.alloc(hlen);\n v.fill(1);\n var k = Buffer.alloc(hlen);\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n return { k: k, v: v };\n}\n\nfunction bits2int(obits, q) {\n var bits = new BN(obits);\n var shift = (obits.length << 3) - q.bitLength();\n if (shift > 0) { bits.ishrn(shift); }\n return bits;\n}\n\nfunction bits2octets(bits, q) {\n bits = bits2int(bits, q);\n bits = bits.mod(q);\n var out = Buffer.from(bits.toArray());\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length);\n out = Buffer.concat([zeros, out]);\n }\n return out;\n}\n\nfunction makeKey(q, kv, algo) {\n var t;\n var k;\n\n do {\n t = Buffer.alloc(0);\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n t = Buffer.concat([t, kv.v]);\n }\n\n k = bits2int(t, q);\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest();\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n } while (k.cmp(q) !== -1);\n\n return k;\n}\n\nfunction makeR(g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q);\n}\n\nmodule.exports = sign;\nmodule.exports.getKey = getKey;\nmodule.exports.makeKey = makeKey;\n","'use strict';\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer;\nvar BN = require('bn.js');\nvar EC = require('elliptic').ec;\nvar parseKeys = require('parse-asn1');\nvar curves = require('./curves.json');\n\nfunction verify(sig, hash, key, signType, tag) {\n var pub = parseKeys(key);\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n return ecVerify(sig, hash, pub);\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') { throw new Error('wrong public key type'); }\n return dsaVerify(sig, hash, pub);\n }\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n\n hash = Buffer.concat([tag, hash]);\n var len = pub.modulus.byteLength();\n var pad = [1];\n var padNum = 0;\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff);\n padNum += 1;\n }\n pad.push(0x00);\n var i = -1;\n while (++i < hash.length) {\n pad.push(hash[i]);\n }\n pad = Buffer.from(pad);\n var red = BN.mont(pub.modulus);\n sig = new BN(sig).toRed(red);\n\n sig = sig.redPow(new BN(pub.publicExponent));\n sig = Buffer.from(sig.fromRed().toArray());\n var out = padNum < 8 ? 1 : 0;\n len = Math.min(sig.length, pad.length);\n if (sig.length !== pad.length) { out = 1; }\n\n i = -1;\n while (++i < len) { out |= sig[i] ^ pad[i]; }\n return out === 0;\n}\n\nfunction ecVerify(sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')];\n if (!curveId) { throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.')); }\n\n var curve = new EC(curveId);\n var pubkey = pub.data.subjectPrivateKey.data;\n\n return curve.verify(hash, sig, pubkey);\n}\n\nfunction dsaVerify(sig, hash, pub) {\n var p = pub.data.p;\n var q = pub.data.q;\n var g = pub.data.g;\n var y = pub.data.pub_key;\n var unpacked = parseKeys.signature.decode(sig, 'der');\n var s = unpacked.s;\n var r = unpacked.r;\n checkValue(s, q);\n checkValue(r, q);\n var montp = BN.mont(p);\n var w = s.invm(q);\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q);\n return v.cmp(r) === 0;\n}\n\nfunction checkValue(b, q) {\n if (b.cmpn(0) <= 0) { throw new Error('invalid sig'); }\n if (b.cmp(q) >= 0) { throw new Error('invalid sig'); }\n}\n\nmodule.exports = verify;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, { hasUnpiped: false });\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n pna.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n pna.nextTick(emitErrorNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, _this, err);\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","module.exports = require('events').EventEmitter;\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","'use strict';\n\nvar bind = require('function-bind');\nvar $apply = require('./functionApply');\nvar actualApply = require('./actualApply');\n\n/** @type {import('./applyBind')} */\nmodule.exports = function applyBind() {\n\treturn actualApply(bind, $apply, arguments);\n};\n","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","'use strict';\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","'use strict';\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar setFunctionLength = require('set-function-length');\n\nvar $defineProperty = require('es-define-property');\n\nvar callBindBasic = require('call-bind-apply-helpers');\nvar applyBind = require('call-bind-apply-helpers/applyBind');\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = callBindBasic(arguments);\n\tvar adjustedLength = originalFunction.length - (arguments.length - 1);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + (adjustedLength > 0 ? adjustedLength : 0),\n\t\ttrue\n\t);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBindBasic = require('call-bind-apply-helpers');\n\n/** @type {(thisArg: string, searchString: string, position?: number) => number} */\nvar $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]);\n\n/** @type {import('.')} */\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\t/* eslint no-extra-parens: 0 */\n\n\tvar intrinsic = /** @type {(this: unknown, ...args: unknown[]) => unknown} */ (GetIntrinsic(name, !!allowMissing));\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBindBasic(/** @type {const} */ ([intrinsic]));\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar Transform = require('stream').Transform;\nvar StringDecoder = require('string_decoder').StringDecoder;\nvar inherits = require('inherits');\n\nfunction CipherBase(hashMode) {\n\tTransform.call(this);\n\tthis.hashMode = typeof hashMode === 'string';\n\tif (this.hashMode) {\n\t\tthis[hashMode] = this._finalOrDigest;\n\t} else {\n\t\tthis['final'] = this._finalOrDigest;\n\t}\n\tif (this._final) {\n\t\tthis.__final = this._final;\n\t\tthis._final = null;\n\t}\n\tthis._decoder = null;\n\tthis._encoding = null;\n}\ninherits(CipherBase, Transform);\n\nvar useUint8Array = typeof Uint8Array !== 'undefined';\nvar useArrayBuffer = typeof ArrayBuffer !== 'undefined'\n\t&& typeof Uint8Array !== 'undefined'\n\t&& ArrayBuffer.isView\n\t&& (Buffer.prototype instanceof Uint8Array || Buffer.TYPED_ARRAY_SUPPORT);\n\nfunction toBuffer(data, encoding) {\n\t/*\n\t * No need to do anything for exact instance\n\t * This is only valid when safe-buffer.Buffer === buffer.Buffer, i.e. when Buffer.from/Buffer.alloc existed\n\t */\n\tif (data instanceof Buffer) {\n\t\treturn data;\n\t}\n\n\t// Convert strings to Buffer\n\tif (typeof data === 'string') {\n\t\treturn Buffer.from(data, encoding);\n\t}\n\n\t/*\n\t * Wrap any TypedArray instances and DataViews\n\t * Makes sense only on engines with full TypedArray support -- let Buffer detect that\n\t */\n\tif (useArrayBuffer && ArrayBuffer.isView(data)) {\n\t\t// Bug in Node.js <6.3.1, which treats this as out-of-bounds\n\t\tif (data.byteLength === 0) {\n\t\t\treturn Buffer.alloc(0);\n\t\t}\n\n\t\tvar res = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n\t\t/*\n\t\t * Recheck result size, as offset/length doesn't work on Node.js <5.10\n\t\t * We just go to Uint8Array case if this fails\n\t\t */\n\t\tif (res.byteLength === data.byteLength) {\n\t\t\treturn res;\n\t\t}\n\t}\n\n\t/*\n\t * Uint8Array in engines where Buffer.from might not work with ArrayBuffer, just copy over\n\t * Doesn't make sense with other TypedArray instances\n\t */\n\tif (useUint8Array && data instanceof Uint8Array) {\n\t\treturn Buffer.from(data);\n\t}\n\n\t/*\n\t * Old Buffer polyfill on an engine that doesn't have TypedArray support\n\t * Also, this is from a different Buffer polyfill implementation then we have, as instanceof check failed\n\t * Convert to our current Buffer implementation\n\t */\n\tif (\n\t\tBuffer.isBuffer(data)\n\t\t\t&& data.constructor\n\t\t\t&& typeof data.constructor.isBuffer === 'function'\n\t\t\t&& data.constructor.isBuffer(data)\n\t) {\n\t\treturn Buffer.from(data);\n\t}\n\n\tthrow new TypeError('The \"data\" argument must be of type string or an instance of Buffer, TypedArray, or DataView.');\n}\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n\tvar bufferData = toBuffer(data, inputEnc); // asserts correct input type\n\tvar outData = this._update(bufferData);\n\tif (this.hashMode) {\n\t\treturn this;\n\t}\n\n\tif (outputEnc) {\n\t\toutData = this._toString(outData, outputEnc);\n\t}\n\n\treturn outData;\n};\n\nCipherBase.prototype.setAutoPadding = function () {};\nCipherBase.prototype.getAuthTag = function () {\n\tthrow new Error('trying to get auth tag in unsupported state');\n};\n\nCipherBase.prototype.setAuthTag = function () {\n\tthrow new Error('trying to set auth tag in unsupported state');\n};\n\nCipherBase.prototype.setAAD = function () {\n\tthrow new Error('trying to set aad in unsupported state');\n};\n\nCipherBase.prototype._transform = function (data, _, next) {\n\tvar err;\n\ttry {\n\t\tif (this.hashMode) {\n\t\t\tthis._update(data);\n\t\t} else {\n\t\t\tthis.push(this._update(data));\n\t\t}\n\t} catch (e) {\n\t\terr = e;\n\t} finally {\n\t\tnext(err);\n\t}\n};\nCipherBase.prototype._flush = function (done) {\n\tvar err;\n\ttry {\n\t\tthis.push(this.__final());\n\t} catch (e) {\n\t\terr = e;\n\t}\n\n\tdone(err);\n};\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n\tvar outData = this.__final() || Buffer.alloc(0);\n\tif (outputEnc) {\n\t\toutData = this._toString(outData, outputEnc, true);\n\t}\n\treturn outData;\n};\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n\tif (!this._decoder) {\n\t\tthis._decoder = new StringDecoder(enc);\n\t\tthis._encoding = enc;\n\t}\n\n\tif (this._encoding !== enc) {\n\t\tthrow new Error('can’t switch encodings');\n\t}\n\n\tvar out = this._decoder.write(value);\n\tif (fin) {\n\t\tout += this._decoder.end();\n\t}\n\n\treturn out;\n};\n\nmodule.exports = CipherBase;\n","/*global window, global*/\nvar util = require(\"util\")\nvar assert = require(\"assert\")\nfunction now() { return new Date().getTime() }\n\nvar slice = Array.prototype.slice\nvar console\nvar times = {}\n\nif (typeof global !== \"undefined\" && global.console) {\n console = global.console\n} else if (typeof window !== \"undefined\" && window.console) {\n console = window.console\n} else {\n console = {}\n}\n\nvar functions = [\n [log, \"log\"],\n [info, \"info\"],\n [warn, \"warn\"],\n [error, \"error\"],\n [time, \"time\"],\n [timeEnd, \"timeEnd\"],\n [trace, \"trace\"],\n [dir, \"dir\"],\n [consoleAssert, \"assert\"]\n]\n\nfor (var i = 0; i < functions.length; i++) {\n var tuple = functions[i]\n var f = tuple[0]\n var name = tuple[1]\n\n if (!console[name]) {\n console[name] = f\n }\n}\n\nmodule.exports = console\n\nfunction log() {}\n\nfunction info() {\n console.log.apply(console, arguments)\n}\n\nfunction warn() {\n console.log.apply(console, arguments)\n}\n\nfunction error() {\n console.warn.apply(console, arguments)\n}\n\nfunction time(label) {\n times[label] = now()\n}\n\nfunction timeEnd(label) {\n var time = times[label]\n if (!time) {\n throw new Error(\"No such label: \" + label)\n }\n\n delete times[label]\n var duration = now() - time\n console.log(label + \": \" + duration + \"ms\")\n}\n\nfunction trace() {\n var err = new Error()\n err.name = \"Trace\"\n err.message = util.format.apply(null, arguments)\n console.error(err.stack)\n}\n\nfunction dir(object) {\n console.log(util.inspect(object) + \"\\n\")\n}\n\nfunction consoleAssert(expression) {\n if (!expression) {\n var arr = slice.call(arguments, 1)\n assert.ok(false, util.format.apply(null, arr))\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","\"use strict\";\n/* eslint-disable */\n/**\n * This file and any referenced files were automatically generated by @cosmology/telescope@1.0.7\n * DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain\n * and run the transpile command or yarn proto command to regenerate this bundle.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BinaryWriter = exports.BinaryReader = exports.WireType = void 0;\n// Copyright (c) 2016, Daniel Wirtz All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// * Neither the name of its author, nor the names of its contributors\n// may be used to endorse or promote products derived from this software\n// without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n// ---\n// Code generated by the command line utilities is owned by the owner\n// of the input file used when generating it. This code is not\n// standalone and requires a support library to be linked with it. This\n// support library is itself covered by the above license.\nconst utf8_1 = require(\"./utf8\");\nconst varint_1 = require(\"./varint\");\nvar WireType;\n(function (WireType) {\n WireType[WireType[\"Varint\"] = 0] = \"Varint\";\n WireType[WireType[\"Fixed64\"] = 1] = \"Fixed64\";\n WireType[WireType[\"Bytes\"] = 2] = \"Bytes\";\n WireType[WireType[\"Fixed32\"] = 5] = \"Fixed32\";\n})(WireType || (exports.WireType = WireType = {}));\nclass BinaryReader {\n assertBounds() {\n if (this.pos > this.len)\n throw new RangeError(\"premature EOF\");\n }\n constructor(buf) {\n this.buf = buf ? new Uint8Array(buf) : new Uint8Array(0);\n this.pos = 0;\n this.type = 0;\n this.len = this.buf.length;\n }\n tag() {\n const tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7;\n if (fieldNo <= 0 || wireType < 0 || wireType > 5)\n throw new Error(\"illegal tag: field no \" + fieldNo + \" wire type \" + wireType);\n return [fieldNo, wireType, tag];\n }\n skip(length) {\n if (typeof length === \"number\") {\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n }\n else {\n do {\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n }\n skipType(wireType) {\n switch (wireType) {\n case WireType.Varint:\n this.skip();\n break;\n case WireType.Fixed64:\n this.skip(8);\n break;\n case WireType.Bytes:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case WireType.Fixed32:\n this.skip(4);\n break;\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n }\n uint32() {\n return varint_1.varint32read.bind(this)();\n }\n int32() {\n return this.uint32() | 0;\n }\n sint32() {\n const num = this.uint32();\n return num % 2 === 1 ? (num + 1) / -2 : num / 2; // zigzag encoding\n }\n fixed32() {\n const val = (0, varint_1.readUInt32)(this.buf, this.pos);\n this.pos += 4;\n return val;\n }\n sfixed32() {\n const val = (0, varint_1.readInt32)(this.buf, this.pos);\n this.pos += 4;\n return val;\n }\n int64() {\n const [lo, hi] = varint_1.varint64read.bind(this)();\n return BigInt((0, varint_1.int64ToString)(lo, hi));\n }\n uint64() {\n const [lo, hi] = varint_1.varint64read.bind(this)();\n return BigInt((0, varint_1.uInt64ToString)(lo, hi));\n }\n sint64() {\n let [lo, hi] = varint_1.varint64read.bind(this)();\n // zig zag\n [lo, hi] = (0, varint_1.zzDecode)(lo, hi);\n return BigInt((0, varint_1.int64ToString)(lo, hi));\n }\n fixed64() {\n const lo = this.sfixed32();\n const hi = this.sfixed32();\n return BigInt((0, varint_1.uInt64ToString)(lo, hi));\n }\n sfixed64() {\n const lo = this.sfixed32();\n const hi = this.sfixed32();\n return BigInt((0, varint_1.int64ToString)(lo, hi));\n }\n float() {\n throw new Error(\"float not supported\");\n }\n double() {\n throw new Error(\"double not supported\");\n }\n bool() {\n const [lo, hi] = varint_1.varint64read.bind(this)();\n return lo !== 0 || hi !== 0;\n }\n bytes() {\n const len = this.uint32(), start = this.pos;\n this.pos += len;\n this.assertBounds();\n return this.buf.subarray(start, start + len);\n }\n string() {\n const bytes = this.bytes();\n return (0, utf8_1.utf8Read)(bytes, 0, bytes.length);\n }\n}\nexports.BinaryReader = BinaryReader;\nclass Op {\n constructor(fn, len, val) {\n this.fn = fn;\n this.len = len;\n this.val = val;\n }\n proceed(buf, pos) {\n if (this.fn) {\n this.fn(this.val, buf, pos);\n }\n }\n}\nclass State {\n constructor(writer) {\n this.head = writer.head;\n this.tail = writer.tail;\n this.len = writer.len;\n this.next = writer.states;\n }\n}\nclass BinaryWriter {\n constructor() {\n this.len = 0;\n // uint64 is the same with int64\n this.uint64 = BinaryWriter.prototype.int64;\n // sfixed64 is the same with fixed64\n this.sfixed64 = BinaryWriter.prototype.fixed64;\n // sfixed32 is the same with fixed32\n this.sfixed32 = BinaryWriter.prototype.fixed32;\n this.head = new Op(null, 0, 0);\n this.tail = this.head;\n this.states = null;\n }\n static create() {\n return new BinaryWriter();\n }\n static alloc(size) {\n if (typeof Uint8Array !== \"undefined\") {\n return pool((size) => new Uint8Array(size), Uint8Array.prototype.subarray)(size);\n }\n else {\n return new Array(size);\n }\n }\n _push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n }\n finish() {\n let head = this.head.next, pos = 0;\n const buf = BinaryWriter.alloc(this.len);\n while (head) {\n head.proceed(buf, pos);\n pos += head.len;\n head = head.next;\n }\n return buf;\n }\n fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(null, 0, 0);\n this.len = 0;\n return this;\n }\n reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n }\n else {\n this.head = this.tail = new Op(null, 0, 0);\n this.len = 0;\n }\n return this;\n }\n ldelim() {\n const head = this.head, tail = this.tail, len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n }\n tag(fieldNo, type) {\n return this.uint32(((fieldNo << 3) | type) >>> 0);\n }\n uint32(value) {\n this.len += (this.tail = this.tail.next =\n new Op(varint_1.writeVarint32, (value = value >>> 0) < 128 ? 1 : value < 16384 ? 2 : value < 2097152 ? 3 : value < 268435456 ? 4 : 5, value)).len;\n return this;\n }\n int32(value) {\n return value < 0\n ? this._push(varint_1.writeVarint64, 10, (0, varint_1.int64FromString)(value.toString())) // 10 bytes per spec\n : this.uint32(value);\n }\n sint32(value) {\n return this.uint32(((value << 1) ^ (value >> 31)) >>> 0);\n }\n int64(value) {\n const { lo, hi } = (0, varint_1.int64FromString)(value.toString());\n return this._push(varint_1.writeVarint64, (0, varint_1.int64Length)(lo, hi), { lo, hi });\n }\n sint64(value) {\n let { lo, hi } = (0, varint_1.int64FromString)(value.toString());\n // zig zag\n [lo, hi] = (0, varint_1.zzEncode)(lo, hi);\n return this._push(varint_1.writeVarint64, (0, varint_1.int64Length)(lo, hi), { lo, hi });\n }\n fixed64(value) {\n const { lo, hi } = (0, varint_1.int64FromString)(value.toString());\n return this._push(varint_1.writeFixed32, 4, lo)._push(varint_1.writeFixed32, 4, hi);\n }\n bool(value) {\n return this._push(varint_1.writeByte, 1, value ? 1 : 0);\n }\n fixed32(value) {\n return this._push(varint_1.writeFixed32, 4, value >>> 0);\n }\n float(value) {\n throw new Error(\"float not supported\" + value);\n }\n double(value) {\n throw new Error(\"double not supported\" + value);\n }\n bytes(value) {\n const len = value.length >>> 0;\n if (!len)\n return this._push(varint_1.writeByte, 1, 0);\n return this.uint32(len)._push(writeBytes, len, value);\n }\n string(value) {\n const len = (0, utf8_1.utf8Length)(value);\n return len ? this.uint32(len)._push(utf8_1.utf8Write, len, value) : this._push(varint_1.writeByte, 1, 0);\n }\n}\nexports.BinaryWriter = BinaryWriter;\nfunction writeBytes(val, buf, pos) {\n if (typeof Uint8Array !== \"undefined\") {\n buf.set(val, pos);\n }\n else {\n for (let i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n }\n}\nfunction pool(alloc, slice, size) {\n const SIZE = size || 8192;\n const MAX = SIZE >>> 1;\n let slab = null;\n let offset = SIZE;\n return function pool_alloc(size) {\n if (size < 1 || size > MAX)\n return alloc(size);\n if (offset + size > SIZE) {\n slab = alloc(SIZE);\n offset = 0;\n }\n const buf = slice.call(slab, offset, (offset += size));\n if (offset & 7)\n // align to 32 bit\n offset = (offset | 7) + 1;\n return buf;\n };\n}\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n//# sourceMappingURL=binary.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.ModuleCredential = exports.ModuleAccount = exports.BaseAccount = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.auth.v1beta1\";\nfunction createBaseBaseAccount() {\n return {\n address: \"\",\n pubKey: undefined,\n accountNumber: BigInt(0),\n sequence: BigInt(0),\n };\n}\nexports.BaseAccount = {\n typeUrl: \"/cosmos.auth.v1beta1.BaseAccount\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.pubKey !== undefined) {\n any_1.Any.encode(message.pubKey, writer.uint32(18).fork()).ldelim();\n }\n if (message.accountNumber !== BigInt(0)) {\n writer.uint32(24).uint64(message.accountNumber);\n }\n if (message.sequence !== BigInt(0)) {\n writer.uint32(32).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBaseAccount();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.pubKey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.accountNumber = reader.uint64();\n break;\n case 4:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBaseAccount();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.pubKey))\n obj.pubKey = any_1.Any.fromJSON(object.pubKey);\n if ((0, helpers_1.isSet)(object.accountNumber))\n obj.accountNumber = BigInt(object.accountNumber.toString());\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.pubKey !== undefined && (obj.pubKey = message.pubKey ? any_1.Any.toJSON(message.pubKey) : undefined);\n message.accountNumber !== undefined &&\n (obj.accountNumber = (message.accountNumber || BigInt(0)).toString());\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBaseAccount();\n message.address = object.address ?? \"\";\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = any_1.Any.fromPartial(object.pubKey);\n }\n if (object.accountNumber !== undefined && object.accountNumber !== null) {\n message.accountNumber = BigInt(object.accountNumber.toString());\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n return message;\n },\n};\nfunction createBaseModuleAccount() {\n return {\n baseAccount: undefined,\n name: \"\",\n permissions: [],\n };\n}\nexports.ModuleAccount = {\n typeUrl: \"/cosmos.auth.v1beta1.ModuleAccount\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.baseAccount !== undefined) {\n exports.BaseAccount.encode(message.baseAccount, writer.uint32(10).fork()).ldelim();\n }\n if (message.name !== \"\") {\n writer.uint32(18).string(message.name);\n }\n for (const v of message.permissions) {\n writer.uint32(26).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseModuleAccount();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseAccount = exports.BaseAccount.decode(reader, reader.uint32());\n break;\n case 2:\n message.name = reader.string();\n break;\n case 3:\n message.permissions.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseModuleAccount();\n if ((0, helpers_1.isSet)(object.baseAccount))\n obj.baseAccount = exports.BaseAccount.fromJSON(object.baseAccount);\n if ((0, helpers_1.isSet)(object.name))\n obj.name = String(object.name);\n if (Array.isArray(object?.permissions))\n obj.permissions = object.permissions.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.baseAccount !== undefined &&\n (obj.baseAccount = message.baseAccount ? exports.BaseAccount.toJSON(message.baseAccount) : undefined);\n message.name !== undefined && (obj.name = message.name);\n if (message.permissions) {\n obj.permissions = message.permissions.map((e) => e);\n }\n else {\n obj.permissions = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseModuleAccount();\n if (object.baseAccount !== undefined && object.baseAccount !== null) {\n message.baseAccount = exports.BaseAccount.fromPartial(object.baseAccount);\n }\n message.name = object.name ?? \"\";\n message.permissions = object.permissions?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseModuleCredential() {\n return {\n moduleName: \"\",\n derivationKeys: [],\n };\n}\nexports.ModuleCredential = {\n typeUrl: \"/cosmos.auth.v1beta1.ModuleCredential\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.moduleName !== \"\") {\n writer.uint32(10).string(message.moduleName);\n }\n for (const v of message.derivationKeys) {\n writer.uint32(18).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseModuleCredential();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.moduleName = reader.string();\n break;\n case 2:\n message.derivationKeys.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseModuleCredential();\n if ((0, helpers_1.isSet)(object.moduleName))\n obj.moduleName = String(object.moduleName);\n if (Array.isArray(object?.derivationKeys))\n obj.derivationKeys = object.derivationKeys.map((e) => (0, helpers_1.bytesFromBase64)(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.moduleName !== undefined && (obj.moduleName = message.moduleName);\n if (message.derivationKeys) {\n obj.derivationKeys = message.derivationKeys.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.derivationKeys = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseModuleCredential();\n message.moduleName = object.moduleName ?? \"\";\n message.derivationKeys = object.derivationKeys?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseParams() {\n return {\n maxMemoCharacters: BigInt(0),\n txSigLimit: BigInt(0),\n txSizeCostPerByte: BigInt(0),\n sigVerifyCostEd25519: BigInt(0),\n sigVerifyCostSecp256k1: BigInt(0),\n };\n}\nexports.Params = {\n typeUrl: \"/cosmos.auth.v1beta1.Params\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.maxMemoCharacters !== BigInt(0)) {\n writer.uint32(8).uint64(message.maxMemoCharacters);\n }\n if (message.txSigLimit !== BigInt(0)) {\n writer.uint32(16).uint64(message.txSigLimit);\n }\n if (message.txSizeCostPerByte !== BigInt(0)) {\n writer.uint32(24).uint64(message.txSizeCostPerByte);\n }\n if (message.sigVerifyCostEd25519 !== BigInt(0)) {\n writer.uint32(32).uint64(message.sigVerifyCostEd25519);\n }\n if (message.sigVerifyCostSecp256k1 !== BigInt(0)) {\n writer.uint32(40).uint64(message.sigVerifyCostSecp256k1);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxMemoCharacters = reader.uint64();\n break;\n case 2:\n message.txSigLimit = reader.uint64();\n break;\n case 3:\n message.txSizeCostPerByte = reader.uint64();\n break;\n case 4:\n message.sigVerifyCostEd25519 = reader.uint64();\n break;\n case 5:\n message.sigVerifyCostSecp256k1 = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseParams();\n if ((0, helpers_1.isSet)(object.maxMemoCharacters))\n obj.maxMemoCharacters = BigInt(object.maxMemoCharacters.toString());\n if ((0, helpers_1.isSet)(object.txSigLimit))\n obj.txSigLimit = BigInt(object.txSigLimit.toString());\n if ((0, helpers_1.isSet)(object.txSizeCostPerByte))\n obj.txSizeCostPerByte = BigInt(object.txSizeCostPerByte.toString());\n if ((0, helpers_1.isSet)(object.sigVerifyCostEd25519))\n obj.sigVerifyCostEd25519 = BigInt(object.sigVerifyCostEd25519.toString());\n if ((0, helpers_1.isSet)(object.sigVerifyCostSecp256k1))\n obj.sigVerifyCostSecp256k1 = BigInt(object.sigVerifyCostSecp256k1.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.maxMemoCharacters !== undefined &&\n (obj.maxMemoCharacters = (message.maxMemoCharacters || BigInt(0)).toString());\n message.txSigLimit !== undefined && (obj.txSigLimit = (message.txSigLimit || BigInt(0)).toString());\n message.txSizeCostPerByte !== undefined &&\n (obj.txSizeCostPerByte = (message.txSizeCostPerByte || BigInt(0)).toString());\n message.sigVerifyCostEd25519 !== undefined &&\n (obj.sigVerifyCostEd25519 = (message.sigVerifyCostEd25519 || BigInt(0)).toString());\n message.sigVerifyCostSecp256k1 !== undefined &&\n (obj.sigVerifyCostSecp256k1 = (message.sigVerifyCostSecp256k1 || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseParams();\n if (object.maxMemoCharacters !== undefined && object.maxMemoCharacters !== null) {\n message.maxMemoCharacters = BigInt(object.maxMemoCharacters.toString());\n }\n if (object.txSigLimit !== undefined && object.txSigLimit !== null) {\n message.txSigLimit = BigInt(object.txSigLimit.toString());\n }\n if (object.txSizeCostPerByte !== undefined && object.txSizeCostPerByte !== null) {\n message.txSizeCostPerByte = BigInt(object.txSizeCostPerByte.toString());\n }\n if (object.sigVerifyCostEd25519 !== undefined && object.sigVerifyCostEd25519 !== null) {\n message.sigVerifyCostEd25519 = BigInt(object.sigVerifyCostEd25519.toString());\n }\n if (object.sigVerifyCostSecp256k1 !== undefined && object.sigVerifyCostSecp256k1 !== null) {\n message.sigVerifyCostSecp256k1 = BigInt(object.sigVerifyCostSecp256k1.toString());\n }\n return message;\n },\n};\n//# sourceMappingURL=auth.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryAccountInfoResponse = exports.QueryAccountInfoRequest = exports.QueryAccountAddressByIDResponse = exports.QueryAccountAddressByIDRequest = exports.AddressStringToBytesResponse = exports.AddressStringToBytesRequest = exports.AddressBytesToStringResponse = exports.AddressBytesToStringRequest = exports.Bech32PrefixResponse = exports.Bech32PrefixRequest = exports.QueryModuleAccountByNameResponse = exports.QueryModuleAccountByNameRequest = exports.QueryModuleAccountsResponse = exports.QueryModuleAccountsRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryAccountResponse = exports.QueryAccountRequest = exports.QueryAccountsResponse = exports.QueryAccountsRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst pagination_1 = require(\"../../base/query/v1beta1/pagination\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst auth_1 = require(\"./auth\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.auth.v1beta1\";\nfunction createBaseQueryAccountsRequest() {\n return {\n pagination: undefined,\n };\n}\nexports.QueryAccountsRequest = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryAccountsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAccountsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAccountsRequest();\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAccountsRequest();\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryAccountsResponse() {\n return {\n accounts: [],\n pagination: undefined,\n };\n}\nexports.QueryAccountsResponse = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryAccountsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.accounts) {\n any_1.Any.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAccountsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.accounts.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAccountsResponse();\n if (Array.isArray(object?.accounts))\n obj.accounts = object.accounts.map((e) => any_1.Any.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.accounts) {\n obj.accounts = message.accounts.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.accounts = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAccountsResponse();\n message.accounts = object.accounts?.map((e) => any_1.Any.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryAccountRequest() {\n return {\n address: \"\",\n };\n}\nexports.QueryAccountRequest = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryAccountRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAccountRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAccountRequest();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAccountRequest();\n message.address = object.address ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryAccountResponse() {\n return {\n account: undefined,\n };\n}\nexports.QueryAccountResponse = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryAccountResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.account !== undefined) {\n any_1.Any.encode(message.account, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAccountResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.account = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAccountResponse();\n if ((0, helpers_1.isSet)(object.account))\n obj.account = any_1.Any.fromJSON(object.account);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.account !== undefined &&\n (obj.account = message.account ? any_1.Any.toJSON(message.account) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAccountResponse();\n if (object.account !== undefined && object.account !== null) {\n message.account = any_1.Any.fromPartial(object.account);\n }\n return message;\n },\n};\nfunction createBaseQueryParamsRequest() {\n return {};\n}\nexports.QueryParamsRequest = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryParamsRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryParamsRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryParamsRequest();\n return message;\n },\n};\nfunction createBaseQueryParamsResponse() {\n return {\n params: auth_1.Params.fromPartial({}),\n };\n}\nexports.QueryParamsResponse = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryParamsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.params !== undefined) {\n auth_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = auth_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryParamsResponse();\n if ((0, helpers_1.isSet)(object.params))\n obj.params = auth_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? auth_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryParamsResponse();\n if (object.params !== undefined && object.params !== null) {\n message.params = auth_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nfunction createBaseQueryModuleAccountsRequest() {\n return {};\n}\nexports.QueryModuleAccountsRequest = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryModuleAccountsRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryModuleAccountsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryModuleAccountsRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryModuleAccountsRequest();\n return message;\n },\n};\nfunction createBaseQueryModuleAccountsResponse() {\n return {\n accounts: [],\n };\n}\nexports.QueryModuleAccountsResponse = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryModuleAccountsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.accounts) {\n any_1.Any.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryModuleAccountsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.accounts.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryModuleAccountsResponse();\n if (Array.isArray(object?.accounts))\n obj.accounts = object.accounts.map((e) => any_1.Any.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.accounts) {\n obj.accounts = message.accounts.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.accounts = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryModuleAccountsResponse();\n message.accounts = object.accounts?.map((e) => any_1.Any.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseQueryModuleAccountByNameRequest() {\n return {\n name: \"\",\n };\n}\nexports.QueryModuleAccountByNameRequest = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryModuleAccountByNameRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.name !== \"\") {\n writer.uint32(10).string(message.name);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryModuleAccountByNameRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryModuleAccountByNameRequest();\n if ((0, helpers_1.isSet)(object.name))\n obj.name = String(object.name);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.name !== undefined && (obj.name = message.name);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryModuleAccountByNameRequest();\n message.name = object.name ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryModuleAccountByNameResponse() {\n return {\n account: undefined,\n };\n}\nexports.QueryModuleAccountByNameResponse = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryModuleAccountByNameResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.account !== undefined) {\n any_1.Any.encode(message.account, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryModuleAccountByNameResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.account = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryModuleAccountByNameResponse();\n if ((0, helpers_1.isSet)(object.account))\n obj.account = any_1.Any.fromJSON(object.account);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.account !== undefined &&\n (obj.account = message.account ? any_1.Any.toJSON(message.account) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryModuleAccountByNameResponse();\n if (object.account !== undefined && object.account !== null) {\n message.account = any_1.Any.fromPartial(object.account);\n }\n return message;\n },\n};\nfunction createBaseBech32PrefixRequest() {\n return {};\n}\nexports.Bech32PrefixRequest = {\n typeUrl: \"/cosmos.auth.v1beta1.Bech32PrefixRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBech32PrefixRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseBech32PrefixRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseBech32PrefixRequest();\n return message;\n },\n};\nfunction createBaseBech32PrefixResponse() {\n return {\n bech32Prefix: \"\",\n };\n}\nexports.Bech32PrefixResponse = {\n typeUrl: \"/cosmos.auth.v1beta1.Bech32PrefixResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.bech32Prefix !== \"\") {\n writer.uint32(10).string(message.bech32Prefix);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBech32PrefixResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bech32Prefix = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBech32PrefixResponse();\n if ((0, helpers_1.isSet)(object.bech32Prefix))\n obj.bech32Prefix = String(object.bech32Prefix);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.bech32Prefix !== undefined && (obj.bech32Prefix = message.bech32Prefix);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBech32PrefixResponse();\n message.bech32Prefix = object.bech32Prefix ?? \"\";\n return message;\n },\n};\nfunction createBaseAddressBytesToStringRequest() {\n return {\n addressBytes: new Uint8Array(),\n };\n}\nexports.AddressBytesToStringRequest = {\n typeUrl: \"/cosmos.auth.v1beta1.AddressBytesToStringRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.addressBytes.length !== 0) {\n writer.uint32(10).bytes(message.addressBytes);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAddressBytesToStringRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.addressBytes = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseAddressBytesToStringRequest();\n if ((0, helpers_1.isSet)(object.addressBytes))\n obj.addressBytes = (0, helpers_1.bytesFromBase64)(object.addressBytes);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.addressBytes !== undefined &&\n (obj.addressBytes = (0, helpers_1.base64FromBytes)(message.addressBytes !== undefined ? message.addressBytes : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseAddressBytesToStringRequest();\n message.addressBytes = object.addressBytes ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseAddressBytesToStringResponse() {\n return {\n addressString: \"\",\n };\n}\nexports.AddressBytesToStringResponse = {\n typeUrl: \"/cosmos.auth.v1beta1.AddressBytesToStringResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.addressString !== \"\") {\n writer.uint32(10).string(message.addressString);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAddressBytesToStringResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.addressString = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseAddressBytesToStringResponse();\n if ((0, helpers_1.isSet)(object.addressString))\n obj.addressString = String(object.addressString);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.addressString !== undefined && (obj.addressString = message.addressString);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseAddressBytesToStringResponse();\n message.addressString = object.addressString ?? \"\";\n return message;\n },\n};\nfunction createBaseAddressStringToBytesRequest() {\n return {\n addressString: \"\",\n };\n}\nexports.AddressStringToBytesRequest = {\n typeUrl: \"/cosmos.auth.v1beta1.AddressStringToBytesRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.addressString !== \"\") {\n writer.uint32(10).string(message.addressString);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAddressStringToBytesRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.addressString = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseAddressStringToBytesRequest();\n if ((0, helpers_1.isSet)(object.addressString))\n obj.addressString = String(object.addressString);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.addressString !== undefined && (obj.addressString = message.addressString);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseAddressStringToBytesRequest();\n message.addressString = object.addressString ?? \"\";\n return message;\n },\n};\nfunction createBaseAddressStringToBytesResponse() {\n return {\n addressBytes: new Uint8Array(),\n };\n}\nexports.AddressStringToBytesResponse = {\n typeUrl: \"/cosmos.auth.v1beta1.AddressStringToBytesResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.addressBytes.length !== 0) {\n writer.uint32(10).bytes(message.addressBytes);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAddressStringToBytesResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.addressBytes = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseAddressStringToBytesResponse();\n if ((0, helpers_1.isSet)(object.addressBytes))\n obj.addressBytes = (0, helpers_1.bytesFromBase64)(object.addressBytes);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.addressBytes !== undefined &&\n (obj.addressBytes = (0, helpers_1.base64FromBytes)(message.addressBytes !== undefined ? message.addressBytes : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseAddressStringToBytesResponse();\n message.addressBytes = object.addressBytes ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseQueryAccountAddressByIDRequest() {\n return {\n id: BigInt(0),\n accountId: BigInt(0),\n };\n}\nexports.QueryAccountAddressByIDRequest = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryAccountAddressByIDRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.id !== BigInt(0)) {\n writer.uint32(8).int64(message.id);\n }\n if (message.accountId !== BigInt(0)) {\n writer.uint32(16).uint64(message.accountId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAccountAddressByIDRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.int64();\n break;\n case 2:\n message.accountId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAccountAddressByIDRequest();\n if ((0, helpers_1.isSet)(object.id))\n obj.id = BigInt(object.id.toString());\n if ((0, helpers_1.isSet)(object.accountId))\n obj.accountId = BigInt(object.accountId.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.id !== undefined && (obj.id = (message.id || BigInt(0)).toString());\n message.accountId !== undefined && (obj.accountId = (message.accountId || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAccountAddressByIDRequest();\n if (object.id !== undefined && object.id !== null) {\n message.id = BigInt(object.id.toString());\n }\n if (object.accountId !== undefined && object.accountId !== null) {\n message.accountId = BigInt(object.accountId.toString());\n }\n return message;\n },\n};\nfunction createBaseQueryAccountAddressByIDResponse() {\n return {\n accountAddress: \"\",\n };\n}\nexports.QueryAccountAddressByIDResponse = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryAccountAddressByIDResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.accountAddress !== \"\") {\n writer.uint32(10).string(message.accountAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAccountAddressByIDResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.accountAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAccountAddressByIDResponse();\n if ((0, helpers_1.isSet)(object.accountAddress))\n obj.accountAddress = String(object.accountAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.accountAddress !== undefined && (obj.accountAddress = message.accountAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAccountAddressByIDResponse();\n message.accountAddress = object.accountAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryAccountInfoRequest() {\n return {\n address: \"\",\n };\n}\nexports.QueryAccountInfoRequest = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryAccountInfoRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAccountInfoRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAccountInfoRequest();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAccountInfoRequest();\n message.address = object.address ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryAccountInfoResponse() {\n return {\n info: undefined,\n };\n}\nexports.QueryAccountInfoResponse = {\n typeUrl: \"/cosmos.auth.v1beta1.QueryAccountInfoResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.info !== undefined) {\n auth_1.BaseAccount.encode(message.info, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAccountInfoResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.info = auth_1.BaseAccount.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAccountInfoResponse();\n if ((0, helpers_1.isSet)(object.info))\n obj.info = auth_1.BaseAccount.fromJSON(object.info);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.info !== undefined && (obj.info = message.info ? auth_1.BaseAccount.toJSON(message.info) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAccountInfoResponse();\n if (object.info !== undefined && object.info !== null) {\n message.info = auth_1.BaseAccount.fromPartial(object.info);\n }\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Accounts = this.Accounts.bind(this);\n this.Account = this.Account.bind(this);\n this.AccountAddressByID = this.AccountAddressByID.bind(this);\n this.Params = this.Params.bind(this);\n this.ModuleAccounts = this.ModuleAccounts.bind(this);\n this.ModuleAccountByName = this.ModuleAccountByName.bind(this);\n this.Bech32Prefix = this.Bech32Prefix.bind(this);\n this.AddressBytesToString = this.AddressBytesToString.bind(this);\n this.AddressStringToBytes = this.AddressStringToBytes.bind(this);\n this.AccountInfo = this.AccountInfo.bind(this);\n }\n Accounts(request = {\n pagination: pagination_1.PageRequest.fromPartial({}),\n }) {\n const data = exports.QueryAccountsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"Accounts\", data);\n return promise.then((data) => exports.QueryAccountsResponse.decode(new binary_1.BinaryReader(data)));\n }\n Account(request) {\n const data = exports.QueryAccountRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"Account\", data);\n return promise.then((data) => exports.QueryAccountResponse.decode(new binary_1.BinaryReader(data)));\n }\n AccountAddressByID(request) {\n const data = exports.QueryAccountAddressByIDRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"AccountAddressByID\", data);\n return promise.then((data) => exports.QueryAccountAddressByIDResponse.decode(new binary_1.BinaryReader(data)));\n }\n Params(request = {}) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n ModuleAccounts(request = {}) {\n const data = exports.QueryModuleAccountsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"ModuleAccounts\", data);\n return promise.then((data) => exports.QueryModuleAccountsResponse.decode(new binary_1.BinaryReader(data)));\n }\n ModuleAccountByName(request) {\n const data = exports.QueryModuleAccountByNameRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"ModuleAccountByName\", data);\n return promise.then((data) => exports.QueryModuleAccountByNameResponse.decode(new binary_1.BinaryReader(data)));\n }\n Bech32Prefix(request = {}) {\n const data = exports.Bech32PrefixRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"Bech32Prefix\", data);\n return promise.then((data) => exports.Bech32PrefixResponse.decode(new binary_1.BinaryReader(data)));\n }\n AddressBytesToString(request) {\n const data = exports.AddressBytesToStringRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"AddressBytesToString\", data);\n return promise.then((data) => exports.AddressBytesToStringResponse.decode(new binary_1.BinaryReader(data)));\n }\n AddressStringToBytes(request) {\n const data = exports.AddressStringToBytesRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"AddressStringToBytes\", data);\n return promise.then((data) => exports.AddressStringToBytesResponse.decode(new binary_1.BinaryReader(data)));\n }\n AccountInfo(request) {\n const data = exports.QueryAccountInfoRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"AccountInfo\", data);\n return promise.then((data) => exports.QueryAccountInfoResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GrantQueueItem = exports.GrantAuthorization = exports.Grant = exports.GenericAuthorization = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.authz.v1beta1\";\nfunction createBaseGenericAuthorization() {\n return {\n msg: \"\",\n };\n}\nexports.GenericAuthorization = {\n typeUrl: \"/cosmos.authz.v1beta1.GenericAuthorization\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.msg !== \"\") {\n writer.uint32(10).string(message.msg);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGenericAuthorization();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.msg = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGenericAuthorization();\n if ((0, helpers_1.isSet)(object.msg))\n obj.msg = String(object.msg);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.msg !== undefined && (obj.msg = message.msg);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGenericAuthorization();\n message.msg = object.msg ?? \"\";\n return message;\n },\n};\nfunction createBaseGrant() {\n return {\n authorization: undefined,\n expiration: undefined,\n };\n}\nexports.Grant = {\n typeUrl: \"/cosmos.authz.v1beta1.Grant\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.authorization !== undefined) {\n any_1.Any.encode(message.authorization, writer.uint32(10).fork()).ldelim();\n }\n if (message.expiration !== undefined) {\n timestamp_1.Timestamp.encode(message.expiration, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGrant();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.authorization = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.expiration = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGrant();\n if ((0, helpers_1.isSet)(object.authorization))\n obj.authorization = any_1.Any.fromJSON(object.authorization);\n if ((0, helpers_1.isSet)(object.expiration))\n obj.expiration = (0, helpers_1.fromJsonTimestamp)(object.expiration);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.authorization !== undefined &&\n (obj.authorization = message.authorization ? any_1.Any.toJSON(message.authorization) : undefined);\n message.expiration !== undefined && (obj.expiration = (0, helpers_1.fromTimestamp)(message.expiration).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGrant();\n if (object.authorization !== undefined && object.authorization !== null) {\n message.authorization = any_1.Any.fromPartial(object.authorization);\n }\n if (object.expiration !== undefined && object.expiration !== null) {\n message.expiration = timestamp_1.Timestamp.fromPartial(object.expiration);\n }\n return message;\n },\n};\nfunction createBaseGrantAuthorization() {\n return {\n granter: \"\",\n grantee: \"\",\n authorization: undefined,\n expiration: undefined,\n };\n}\nexports.GrantAuthorization = {\n typeUrl: \"/cosmos.authz.v1beta1.GrantAuthorization\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.authorization !== undefined) {\n any_1.Any.encode(message.authorization, writer.uint32(26).fork()).ldelim();\n }\n if (message.expiration !== undefined) {\n timestamp_1.Timestamp.encode(message.expiration, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGrantAuthorization();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.authorization = any_1.Any.decode(reader, reader.uint32());\n break;\n case 4:\n message.expiration = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGrantAuthorization();\n if ((0, helpers_1.isSet)(object.granter))\n obj.granter = String(object.granter);\n if ((0, helpers_1.isSet)(object.grantee))\n obj.grantee = String(object.grantee);\n if ((0, helpers_1.isSet)(object.authorization))\n obj.authorization = any_1.Any.fromJSON(object.authorization);\n if ((0, helpers_1.isSet)(object.expiration))\n obj.expiration = (0, helpers_1.fromJsonTimestamp)(object.expiration);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.authorization !== undefined &&\n (obj.authorization = message.authorization ? any_1.Any.toJSON(message.authorization) : undefined);\n message.expiration !== undefined && (obj.expiration = (0, helpers_1.fromTimestamp)(message.expiration).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGrantAuthorization();\n message.granter = object.granter ?? \"\";\n message.grantee = object.grantee ?? \"\";\n if (object.authorization !== undefined && object.authorization !== null) {\n message.authorization = any_1.Any.fromPartial(object.authorization);\n }\n if (object.expiration !== undefined && object.expiration !== null) {\n message.expiration = timestamp_1.Timestamp.fromPartial(object.expiration);\n }\n return message;\n },\n};\nfunction createBaseGrantQueueItem() {\n return {\n msgTypeUrls: [],\n };\n}\nexports.GrantQueueItem = {\n typeUrl: \"/cosmos.authz.v1beta1.GrantQueueItem\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.msgTypeUrls) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGrantQueueItem();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.msgTypeUrls.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGrantQueueItem();\n if (Array.isArray(object?.msgTypeUrls))\n obj.msgTypeUrls = object.msgTypeUrls.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.msgTypeUrls) {\n obj.msgTypeUrls = message.msgTypeUrls.map((e) => e);\n }\n else {\n obj.msgTypeUrls = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGrantQueueItem();\n message.msgTypeUrls = object.msgTypeUrls?.map((e) => e) || [];\n return message;\n },\n};\n//# sourceMappingURL=authz.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryGranteeGrantsResponse = exports.QueryGranteeGrantsRequest = exports.QueryGranterGrantsResponse = exports.QueryGranterGrantsRequest = exports.QueryGrantsResponse = exports.QueryGrantsRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst pagination_1 = require(\"../../base/query/v1beta1/pagination\");\nconst authz_1 = require(\"./authz\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.authz.v1beta1\";\nfunction createBaseQueryGrantsRequest() {\n return {\n granter: \"\",\n grantee: \"\",\n msgTypeUrl: \"\",\n pagination: undefined,\n };\n}\nexports.QueryGrantsRequest = {\n typeUrl: \"/cosmos.authz.v1beta1.QueryGrantsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.msgTypeUrl !== \"\") {\n writer.uint32(26).string(message.msgTypeUrl);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGrantsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.msgTypeUrl = reader.string();\n break;\n case 4:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryGrantsRequest();\n if ((0, helpers_1.isSet)(object.granter))\n obj.granter = String(object.granter);\n if ((0, helpers_1.isSet)(object.grantee))\n obj.grantee = String(object.grantee);\n if ((0, helpers_1.isSet)(object.msgTypeUrl))\n obj.msgTypeUrl = String(object.msgTypeUrl);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.msgTypeUrl !== undefined && (obj.msgTypeUrl = message.msgTypeUrl);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryGrantsRequest();\n message.granter = object.granter ?? \"\";\n message.grantee = object.grantee ?? \"\";\n message.msgTypeUrl = object.msgTypeUrl ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryGrantsResponse() {\n return {\n grants: [],\n pagination: undefined,\n };\n}\nexports.QueryGrantsResponse = {\n typeUrl: \"/cosmos.authz.v1beta1.QueryGrantsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.grants) {\n authz_1.Grant.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGrantsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.grants.push(authz_1.Grant.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryGrantsResponse();\n if (Array.isArray(object?.grants))\n obj.grants = object.grants.map((e) => authz_1.Grant.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.grants) {\n obj.grants = message.grants.map((e) => (e ? authz_1.Grant.toJSON(e) : undefined));\n }\n else {\n obj.grants = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryGrantsResponse();\n message.grants = object.grants?.map((e) => authz_1.Grant.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryGranterGrantsRequest() {\n return {\n granter: \"\",\n pagination: undefined,\n };\n}\nexports.QueryGranterGrantsRequest = {\n typeUrl: \"/cosmos.authz.v1beta1.QueryGranterGrantsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGranterGrantsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryGranterGrantsRequest();\n if ((0, helpers_1.isSet)(object.granter))\n obj.granter = String(object.granter);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryGranterGrantsRequest();\n message.granter = object.granter ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryGranterGrantsResponse() {\n return {\n grants: [],\n pagination: undefined,\n };\n}\nexports.QueryGranterGrantsResponse = {\n typeUrl: \"/cosmos.authz.v1beta1.QueryGranterGrantsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.grants) {\n authz_1.GrantAuthorization.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGranterGrantsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.grants.push(authz_1.GrantAuthorization.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryGranterGrantsResponse();\n if (Array.isArray(object?.grants))\n obj.grants = object.grants.map((e) => authz_1.GrantAuthorization.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.grants) {\n obj.grants = message.grants.map((e) => (e ? authz_1.GrantAuthorization.toJSON(e) : undefined));\n }\n else {\n obj.grants = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryGranterGrantsResponse();\n message.grants = object.grants?.map((e) => authz_1.GrantAuthorization.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryGranteeGrantsRequest() {\n return {\n grantee: \"\",\n pagination: undefined,\n };\n}\nexports.QueryGranteeGrantsRequest = {\n typeUrl: \"/cosmos.authz.v1beta1.QueryGranteeGrantsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.grantee !== \"\") {\n writer.uint32(10).string(message.grantee);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGranteeGrantsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.grantee = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryGranteeGrantsRequest();\n if ((0, helpers_1.isSet)(object.grantee))\n obj.grantee = String(object.grantee);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryGranteeGrantsRequest();\n message.grantee = object.grantee ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryGranteeGrantsResponse() {\n return {\n grants: [],\n pagination: undefined,\n };\n}\nexports.QueryGranteeGrantsResponse = {\n typeUrl: \"/cosmos.authz.v1beta1.QueryGranteeGrantsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.grants) {\n authz_1.GrantAuthorization.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGranteeGrantsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.grants.push(authz_1.GrantAuthorization.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryGranteeGrantsResponse();\n if (Array.isArray(object?.grants))\n obj.grants = object.grants.map((e) => authz_1.GrantAuthorization.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.grants) {\n obj.grants = message.grants.map((e) => (e ? authz_1.GrantAuthorization.toJSON(e) : undefined));\n }\n else {\n obj.grants = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryGranteeGrantsResponse();\n message.grants = object.grants?.map((e) => authz_1.GrantAuthorization.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Grants = this.Grants.bind(this);\n this.GranterGrants = this.GranterGrants.bind(this);\n this.GranteeGrants = this.GranteeGrants.bind(this);\n }\n Grants(request) {\n const data = exports.QueryGrantsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.authz.v1beta1.Query\", \"Grants\", data);\n return promise.then((data) => exports.QueryGrantsResponse.decode(new binary_1.BinaryReader(data)));\n }\n GranterGrants(request) {\n const data = exports.QueryGranterGrantsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.authz.v1beta1.Query\", \"GranterGrants\", data);\n return promise.then((data) => exports.QueryGranterGrantsResponse.decode(new binary_1.BinaryReader(data)));\n }\n GranteeGrants(request) {\n const data = exports.QueryGranteeGrantsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.authz.v1beta1.Query\", \"GranteeGrants\", data);\n return promise.then((data) => exports.QueryGranteeGrantsResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgRevokeResponse = exports.MsgRevoke = exports.MsgGrantResponse = exports.MsgExec = exports.MsgExecResponse = exports.MsgGrant = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst authz_1 = require(\"./authz\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.authz.v1beta1\";\nfunction createBaseMsgGrant() {\n return {\n granter: \"\",\n grantee: \"\",\n grant: authz_1.Grant.fromPartial({}),\n };\n}\nexports.MsgGrant = {\n typeUrl: \"/cosmos.authz.v1beta1.MsgGrant\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.grant !== undefined) {\n authz_1.Grant.encode(message.grant, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGrant();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.grant = authz_1.Grant.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgGrant();\n if ((0, helpers_1.isSet)(object.granter))\n obj.granter = String(object.granter);\n if ((0, helpers_1.isSet)(object.grantee))\n obj.grantee = String(object.grantee);\n if ((0, helpers_1.isSet)(object.grant))\n obj.grant = authz_1.Grant.fromJSON(object.grant);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.grant !== undefined && (obj.grant = message.grant ? authz_1.Grant.toJSON(message.grant) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgGrant();\n message.granter = object.granter ?? \"\";\n message.grantee = object.grantee ?? \"\";\n if (object.grant !== undefined && object.grant !== null) {\n message.grant = authz_1.Grant.fromPartial(object.grant);\n }\n return message;\n },\n};\nfunction createBaseMsgExecResponse() {\n return {\n results: [],\n };\n}\nexports.MsgExecResponse = {\n typeUrl: \"/cosmos.authz.v1beta1.MsgExecResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.results) {\n writer.uint32(10).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgExecResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.results.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgExecResponse();\n if (Array.isArray(object?.results))\n obj.results = object.results.map((e) => (0, helpers_1.bytesFromBase64)(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.results) {\n obj.results = message.results.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.results = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgExecResponse();\n message.results = object.results?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseMsgExec() {\n return {\n grantee: \"\",\n msgs: [],\n };\n}\nexports.MsgExec = {\n typeUrl: \"/cosmos.authz.v1beta1.MsgExec\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.grantee !== \"\") {\n writer.uint32(10).string(message.grantee);\n }\n for (const v of message.msgs) {\n any_1.Any.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgExec();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.grantee = reader.string();\n break;\n case 2:\n message.msgs.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgExec();\n if ((0, helpers_1.isSet)(object.grantee))\n obj.grantee = String(object.grantee);\n if (Array.isArray(object?.msgs))\n obj.msgs = object.msgs.map((e) => any_1.Any.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.grantee !== undefined && (obj.grantee = message.grantee);\n if (message.msgs) {\n obj.msgs = message.msgs.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.msgs = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgExec();\n message.grantee = object.grantee ?? \"\";\n message.msgs = object.msgs?.map((e) => any_1.Any.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgGrantResponse() {\n return {};\n}\nexports.MsgGrantResponse = {\n typeUrl: \"/cosmos.authz.v1beta1.MsgGrantResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGrantResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgGrantResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgGrantResponse();\n return message;\n },\n};\nfunction createBaseMsgRevoke() {\n return {\n granter: \"\",\n grantee: \"\",\n msgTypeUrl: \"\",\n };\n}\nexports.MsgRevoke = {\n typeUrl: \"/cosmos.authz.v1beta1.MsgRevoke\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.msgTypeUrl !== \"\") {\n writer.uint32(26).string(message.msgTypeUrl);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgRevoke();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.msgTypeUrl = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgRevoke();\n if ((0, helpers_1.isSet)(object.granter))\n obj.granter = String(object.granter);\n if ((0, helpers_1.isSet)(object.grantee))\n obj.grantee = String(object.grantee);\n if ((0, helpers_1.isSet)(object.msgTypeUrl))\n obj.msgTypeUrl = String(object.msgTypeUrl);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.msgTypeUrl !== undefined && (obj.msgTypeUrl = message.msgTypeUrl);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgRevoke();\n message.granter = object.granter ?? \"\";\n message.grantee = object.grantee ?? \"\";\n message.msgTypeUrl = object.msgTypeUrl ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgRevokeResponse() {\n return {};\n}\nexports.MsgRevokeResponse = {\n typeUrl: \"/cosmos.authz.v1beta1.MsgRevokeResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgRevokeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgRevokeResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgRevokeResponse();\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Grant = this.Grant.bind(this);\n this.Exec = this.Exec.bind(this);\n this.Revoke = this.Revoke.bind(this);\n }\n Grant(request) {\n const data = exports.MsgGrant.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.authz.v1beta1.Msg\", \"Grant\", data);\n return promise.then((data) => exports.MsgGrantResponse.decode(new binary_1.BinaryReader(data)));\n }\n Exec(request) {\n const data = exports.MsgExec.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.authz.v1beta1.Msg\", \"Exec\", data);\n return promise.then((data) => exports.MsgExecResponse.decode(new binary_1.BinaryReader(data)));\n }\n Revoke(request) {\n const data = exports.MsgRevoke.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.authz.v1beta1.Msg\", \"Revoke\", data);\n return promise.then((data) => exports.MsgRevokeResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Metadata = exports.DenomUnit = exports.Supply = exports.Output = exports.Input = exports.SendEnabled = exports.Params = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.bank.v1beta1\";\nfunction createBaseParams() {\n return {\n sendEnabled: [],\n defaultSendEnabled: false,\n };\n}\nexports.Params = {\n typeUrl: \"/cosmos.bank.v1beta1.Params\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.sendEnabled) {\n exports.SendEnabled.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.defaultSendEnabled === true) {\n writer.uint32(16).bool(message.defaultSendEnabled);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sendEnabled.push(exports.SendEnabled.decode(reader, reader.uint32()));\n break;\n case 2:\n message.defaultSendEnabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseParams();\n if (Array.isArray(object?.sendEnabled))\n obj.sendEnabled = object.sendEnabled.map((e) => exports.SendEnabled.fromJSON(e));\n if ((0, helpers_1.isSet)(object.defaultSendEnabled))\n obj.defaultSendEnabled = Boolean(object.defaultSendEnabled);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.sendEnabled) {\n obj.sendEnabled = message.sendEnabled.map((e) => (e ? exports.SendEnabled.toJSON(e) : undefined));\n }\n else {\n obj.sendEnabled = [];\n }\n message.defaultSendEnabled !== undefined && (obj.defaultSendEnabled = message.defaultSendEnabled);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseParams();\n message.sendEnabled = object.sendEnabled?.map((e) => exports.SendEnabled.fromPartial(e)) || [];\n message.defaultSendEnabled = object.defaultSendEnabled ?? false;\n return message;\n },\n};\nfunction createBaseSendEnabled() {\n return {\n denom: \"\",\n enabled: false,\n };\n}\nexports.SendEnabled = {\n typeUrl: \"/cosmos.bank.v1beta1.SendEnabled\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.enabled === true) {\n writer.uint32(16).bool(message.enabled);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSendEnabled();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.enabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSendEnabled();\n if ((0, helpers_1.isSet)(object.denom))\n obj.denom = String(object.denom);\n if ((0, helpers_1.isSet)(object.enabled))\n obj.enabled = Boolean(object.enabled);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.enabled !== undefined && (obj.enabled = message.enabled);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSendEnabled();\n message.denom = object.denom ?? \"\";\n message.enabled = object.enabled ?? false;\n return message;\n },\n};\nfunction createBaseInput() {\n return {\n address: \"\",\n coins: [],\n };\n}\nexports.Input = {\n typeUrl: \"/cosmos.bank.v1beta1.Input\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n for (const v of message.coins) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseInput();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.coins.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseInput();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if (Array.isArray(object?.coins))\n obj.coins = object.coins.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n if (message.coins) {\n obj.coins = message.coins.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.coins = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseInput();\n message.address = object.address ?? \"\";\n message.coins = object.coins?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseOutput() {\n return {\n address: \"\",\n coins: [],\n };\n}\nexports.Output = {\n typeUrl: \"/cosmos.bank.v1beta1.Output\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n for (const v of message.coins) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOutput();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.coins.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseOutput();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if (Array.isArray(object?.coins))\n obj.coins = object.coins.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n if (message.coins) {\n obj.coins = message.coins.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.coins = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseOutput();\n message.address = object.address ?? \"\";\n message.coins = object.coins?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseSupply() {\n return {\n total: [],\n };\n}\nexports.Supply = {\n typeUrl: \"/cosmos.bank.v1beta1.Supply\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.total) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSupply();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSupply();\n if (Array.isArray(object?.total))\n obj.total = object.total.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.total) {\n obj.total = message.total.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.total = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSupply();\n message.total = object.total?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseDenomUnit() {\n return {\n denom: \"\",\n exponent: 0,\n aliases: [],\n };\n}\nexports.DenomUnit = {\n typeUrl: \"/cosmos.bank.v1beta1.DenomUnit\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.exponent !== 0) {\n writer.uint32(16).uint32(message.exponent);\n }\n for (const v of message.aliases) {\n writer.uint32(26).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDenomUnit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.exponent = reader.uint32();\n break;\n case 3:\n message.aliases.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDenomUnit();\n if ((0, helpers_1.isSet)(object.denom))\n obj.denom = String(object.denom);\n if ((0, helpers_1.isSet)(object.exponent))\n obj.exponent = Number(object.exponent);\n if (Array.isArray(object?.aliases))\n obj.aliases = object.aliases.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.exponent !== undefined && (obj.exponent = Math.round(message.exponent));\n if (message.aliases) {\n obj.aliases = message.aliases.map((e) => e);\n }\n else {\n obj.aliases = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDenomUnit();\n message.denom = object.denom ?? \"\";\n message.exponent = object.exponent ?? 0;\n message.aliases = object.aliases?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseMetadata() {\n return {\n description: \"\",\n denomUnits: [],\n base: \"\",\n display: \"\",\n name: \"\",\n symbol: \"\",\n uri: \"\",\n uriHash: \"\",\n };\n}\nexports.Metadata = {\n typeUrl: \"/cosmos.bank.v1beta1.Metadata\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.description !== \"\") {\n writer.uint32(10).string(message.description);\n }\n for (const v of message.denomUnits) {\n exports.DenomUnit.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.base !== \"\") {\n writer.uint32(26).string(message.base);\n }\n if (message.display !== \"\") {\n writer.uint32(34).string(message.display);\n }\n if (message.name !== \"\") {\n writer.uint32(42).string(message.name);\n }\n if (message.symbol !== \"\") {\n writer.uint32(50).string(message.symbol);\n }\n if (message.uri !== \"\") {\n writer.uint32(58).string(message.uri);\n }\n if (message.uriHash !== \"\") {\n writer.uint32(66).string(message.uriHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMetadata();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.description = reader.string();\n break;\n case 2:\n message.denomUnits.push(exports.DenomUnit.decode(reader, reader.uint32()));\n break;\n case 3:\n message.base = reader.string();\n break;\n case 4:\n message.display = reader.string();\n break;\n case 5:\n message.name = reader.string();\n break;\n case 6:\n message.symbol = reader.string();\n break;\n case 7:\n message.uri = reader.string();\n break;\n case 8:\n message.uriHash = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMetadata();\n if ((0, helpers_1.isSet)(object.description))\n obj.description = String(object.description);\n if (Array.isArray(object?.denomUnits))\n obj.denomUnits = object.denomUnits.map((e) => exports.DenomUnit.fromJSON(e));\n if ((0, helpers_1.isSet)(object.base))\n obj.base = String(object.base);\n if ((0, helpers_1.isSet)(object.display))\n obj.display = String(object.display);\n if ((0, helpers_1.isSet)(object.name))\n obj.name = String(object.name);\n if ((0, helpers_1.isSet)(object.symbol))\n obj.symbol = String(object.symbol);\n if ((0, helpers_1.isSet)(object.uri))\n obj.uri = String(object.uri);\n if ((0, helpers_1.isSet)(object.uriHash))\n obj.uriHash = String(object.uriHash);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.description !== undefined && (obj.description = message.description);\n if (message.denomUnits) {\n obj.denomUnits = message.denomUnits.map((e) => (e ? exports.DenomUnit.toJSON(e) : undefined));\n }\n else {\n obj.denomUnits = [];\n }\n message.base !== undefined && (obj.base = message.base);\n message.display !== undefined && (obj.display = message.display);\n message.name !== undefined && (obj.name = message.name);\n message.symbol !== undefined && (obj.symbol = message.symbol);\n message.uri !== undefined && (obj.uri = message.uri);\n message.uriHash !== undefined && (obj.uriHash = message.uriHash);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMetadata();\n message.description = object.description ?? \"\";\n message.denomUnits = object.denomUnits?.map((e) => exports.DenomUnit.fromPartial(e)) || [];\n message.base = object.base ?? \"\";\n message.display = object.display ?? \"\";\n message.name = object.name ?? \"\";\n message.symbol = object.symbol ?? \"\";\n message.uri = object.uri ?? \"\";\n message.uriHash = object.uriHash ?? \"\";\n return message;\n },\n};\n//# sourceMappingURL=bank.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QuerySendEnabledResponse = exports.QuerySendEnabledRequest = exports.QueryDenomOwnersResponse = exports.DenomOwner = exports.QueryDenomOwnersRequest = exports.QueryDenomMetadataResponse = exports.QueryDenomMetadataRequest = exports.QueryDenomsMetadataResponse = exports.QueryDenomsMetadataRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QuerySupplyOfResponse = exports.QuerySupplyOfRequest = exports.QueryTotalSupplyResponse = exports.QueryTotalSupplyRequest = exports.QuerySpendableBalanceByDenomResponse = exports.QuerySpendableBalanceByDenomRequest = exports.QuerySpendableBalancesResponse = exports.QuerySpendableBalancesRequest = exports.QueryAllBalancesResponse = exports.QueryAllBalancesRequest = exports.QueryBalanceResponse = exports.QueryBalanceRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst pagination_1 = require(\"../../base/query/v1beta1/pagination\");\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst bank_1 = require(\"./bank\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.bank.v1beta1\";\nfunction createBaseQueryBalanceRequest() {\n return {\n address: \"\",\n denom: \"\",\n };\n}\nexports.QueryBalanceRequest = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryBalanceRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.denom !== \"\") {\n writer.uint32(18).string(message.denom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryBalanceRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.denom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryBalanceRequest();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.denom))\n obj.denom = String(object.denom);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.denom !== undefined && (obj.denom = message.denom);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryBalanceRequest();\n message.address = object.address ?? \"\";\n message.denom = object.denom ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryBalanceResponse() {\n return {\n balance: undefined,\n };\n}\nexports.QueryBalanceResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryBalanceResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.balance !== undefined) {\n coin_1.Coin.encode(message.balance, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryBalanceResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.balance = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryBalanceResponse();\n if ((0, helpers_1.isSet)(object.balance))\n obj.balance = coin_1.Coin.fromJSON(object.balance);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.balance !== undefined &&\n (obj.balance = message.balance ? coin_1.Coin.toJSON(message.balance) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryBalanceResponse();\n if (object.balance !== undefined && object.balance !== null) {\n message.balance = coin_1.Coin.fromPartial(object.balance);\n }\n return message;\n },\n};\nfunction createBaseQueryAllBalancesRequest() {\n return {\n address: \"\",\n pagination: undefined,\n };\n}\nexports.QueryAllBalancesRequest = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryAllBalancesRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllBalancesRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAllBalancesRequest();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAllBalancesRequest();\n message.address = object.address ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryAllBalancesResponse() {\n return {\n balances: [],\n pagination: undefined,\n };\n}\nexports.QueryAllBalancesResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryAllBalancesResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.balances) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllBalancesResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.balances.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAllBalancesResponse();\n if (Array.isArray(object?.balances))\n obj.balances = object.balances.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.balances) {\n obj.balances = message.balances.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.balances = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAllBalancesResponse();\n message.balances = object.balances?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQuerySpendableBalancesRequest() {\n return {\n address: \"\",\n pagination: undefined,\n };\n}\nexports.QuerySpendableBalancesRequest = {\n typeUrl: \"/cosmos.bank.v1beta1.QuerySpendableBalancesRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySpendableBalancesRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySpendableBalancesRequest();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySpendableBalancesRequest();\n message.address = object.address ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQuerySpendableBalancesResponse() {\n return {\n balances: [],\n pagination: undefined,\n };\n}\nexports.QuerySpendableBalancesResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.QuerySpendableBalancesResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.balances) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySpendableBalancesResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.balances.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySpendableBalancesResponse();\n if (Array.isArray(object?.balances))\n obj.balances = object.balances.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.balances) {\n obj.balances = message.balances.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.balances = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySpendableBalancesResponse();\n message.balances = object.balances?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQuerySpendableBalanceByDenomRequest() {\n return {\n address: \"\",\n denom: \"\",\n };\n}\nexports.QuerySpendableBalanceByDenomRequest = {\n typeUrl: \"/cosmos.bank.v1beta1.QuerySpendableBalanceByDenomRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.denom !== \"\") {\n writer.uint32(18).string(message.denom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySpendableBalanceByDenomRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.denom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySpendableBalanceByDenomRequest();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.denom))\n obj.denom = String(object.denom);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.denom !== undefined && (obj.denom = message.denom);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySpendableBalanceByDenomRequest();\n message.address = object.address ?? \"\";\n message.denom = object.denom ?? \"\";\n return message;\n },\n};\nfunction createBaseQuerySpendableBalanceByDenomResponse() {\n return {\n balance: undefined,\n };\n}\nexports.QuerySpendableBalanceByDenomResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.QuerySpendableBalanceByDenomResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.balance !== undefined) {\n coin_1.Coin.encode(message.balance, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySpendableBalanceByDenomResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.balance = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySpendableBalanceByDenomResponse();\n if ((0, helpers_1.isSet)(object.balance))\n obj.balance = coin_1.Coin.fromJSON(object.balance);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.balance !== undefined &&\n (obj.balance = message.balance ? coin_1.Coin.toJSON(message.balance) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySpendableBalanceByDenomResponse();\n if (object.balance !== undefined && object.balance !== null) {\n message.balance = coin_1.Coin.fromPartial(object.balance);\n }\n return message;\n },\n};\nfunction createBaseQueryTotalSupplyRequest() {\n return {\n pagination: undefined,\n };\n}\nexports.QueryTotalSupplyRequest = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryTotalSupplyRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryTotalSupplyRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryTotalSupplyRequest();\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryTotalSupplyRequest();\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryTotalSupplyResponse() {\n return {\n supply: [],\n pagination: undefined,\n };\n}\nexports.QueryTotalSupplyResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryTotalSupplyResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.supply) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryTotalSupplyResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.supply.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryTotalSupplyResponse();\n if (Array.isArray(object?.supply))\n obj.supply = object.supply.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.supply) {\n obj.supply = message.supply.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.supply = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryTotalSupplyResponse();\n message.supply = object.supply?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQuerySupplyOfRequest() {\n return {\n denom: \"\",\n };\n}\nexports.QuerySupplyOfRequest = {\n typeUrl: \"/cosmos.bank.v1beta1.QuerySupplyOfRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySupplyOfRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySupplyOfRequest();\n if ((0, helpers_1.isSet)(object.denom))\n obj.denom = String(object.denom);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySupplyOfRequest();\n message.denom = object.denom ?? \"\";\n return message;\n },\n};\nfunction createBaseQuerySupplyOfResponse() {\n return {\n amount: coin_1.Coin.fromPartial({}),\n };\n}\nexports.QuerySupplyOfResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.QuerySupplyOfResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.amount !== undefined) {\n coin_1.Coin.encode(message.amount, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySupplyOfResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySupplyOfResponse();\n if ((0, helpers_1.isSet)(object.amount))\n obj.amount = coin_1.Coin.fromJSON(object.amount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySupplyOfResponse();\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = coin_1.Coin.fromPartial(object.amount);\n }\n return message;\n },\n};\nfunction createBaseQueryParamsRequest() {\n return {};\n}\nexports.QueryParamsRequest = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryParamsRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryParamsRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryParamsRequest();\n return message;\n },\n};\nfunction createBaseQueryParamsResponse() {\n return {\n params: bank_1.Params.fromPartial({}),\n };\n}\nexports.QueryParamsResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryParamsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.params !== undefined) {\n bank_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = bank_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryParamsResponse();\n if ((0, helpers_1.isSet)(object.params))\n obj.params = bank_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? bank_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryParamsResponse();\n if (object.params !== undefined && object.params !== null) {\n message.params = bank_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nfunction createBaseQueryDenomsMetadataRequest() {\n return {\n pagination: undefined,\n };\n}\nexports.QueryDenomsMetadataRequest = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryDenomsMetadataRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomsMetadataRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomsMetadataRequest();\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomsMetadataRequest();\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDenomsMetadataResponse() {\n return {\n metadatas: [],\n pagination: undefined,\n };\n}\nexports.QueryDenomsMetadataResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryDenomsMetadataResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.metadatas) {\n bank_1.Metadata.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomsMetadataResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.metadatas.push(bank_1.Metadata.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomsMetadataResponse();\n if (Array.isArray(object?.metadatas))\n obj.metadatas = object.metadatas.map((e) => bank_1.Metadata.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.metadatas) {\n obj.metadatas = message.metadatas.map((e) => (e ? bank_1.Metadata.toJSON(e) : undefined));\n }\n else {\n obj.metadatas = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomsMetadataResponse();\n message.metadatas = object.metadatas?.map((e) => bank_1.Metadata.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDenomMetadataRequest() {\n return {\n denom: \"\",\n };\n}\nexports.QueryDenomMetadataRequest = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryDenomMetadataRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomMetadataRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomMetadataRequest();\n if ((0, helpers_1.isSet)(object.denom))\n obj.denom = String(object.denom);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomMetadataRequest();\n message.denom = object.denom ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryDenomMetadataResponse() {\n return {\n metadata: bank_1.Metadata.fromPartial({}),\n };\n}\nexports.QueryDenomMetadataResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryDenomMetadataResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.metadata !== undefined) {\n bank_1.Metadata.encode(message.metadata, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomMetadataResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.metadata = bank_1.Metadata.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomMetadataResponse();\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = bank_1.Metadata.fromJSON(object.metadata);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.metadata !== undefined &&\n (obj.metadata = message.metadata ? bank_1.Metadata.toJSON(message.metadata) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomMetadataResponse();\n if (object.metadata !== undefined && object.metadata !== null) {\n message.metadata = bank_1.Metadata.fromPartial(object.metadata);\n }\n return message;\n },\n};\nfunction createBaseQueryDenomOwnersRequest() {\n return {\n denom: \"\",\n pagination: undefined,\n };\n}\nexports.QueryDenomOwnersRequest = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryDenomOwnersRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomOwnersRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomOwnersRequest();\n if ((0, helpers_1.isSet)(object.denom))\n obj.denom = String(object.denom);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomOwnersRequest();\n message.denom = object.denom ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseDenomOwner() {\n return {\n address: \"\",\n balance: coin_1.Coin.fromPartial({}),\n };\n}\nexports.DenomOwner = {\n typeUrl: \"/cosmos.bank.v1beta1.DenomOwner\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.balance !== undefined) {\n coin_1.Coin.encode(message.balance, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDenomOwner();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.balance = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDenomOwner();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.balance))\n obj.balance = coin_1.Coin.fromJSON(object.balance);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.balance !== undefined &&\n (obj.balance = message.balance ? coin_1.Coin.toJSON(message.balance) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDenomOwner();\n message.address = object.address ?? \"\";\n if (object.balance !== undefined && object.balance !== null) {\n message.balance = coin_1.Coin.fromPartial(object.balance);\n }\n return message;\n },\n};\nfunction createBaseQueryDenomOwnersResponse() {\n return {\n denomOwners: [],\n pagination: undefined,\n };\n}\nexports.QueryDenomOwnersResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.QueryDenomOwnersResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.denomOwners) {\n exports.DenomOwner.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomOwnersResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denomOwners.push(exports.DenomOwner.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomOwnersResponse();\n if (Array.isArray(object?.denomOwners))\n obj.denomOwners = object.denomOwners.map((e) => exports.DenomOwner.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.denomOwners) {\n obj.denomOwners = message.denomOwners.map((e) => (e ? exports.DenomOwner.toJSON(e) : undefined));\n }\n else {\n obj.denomOwners = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomOwnersResponse();\n message.denomOwners = object.denomOwners?.map((e) => exports.DenomOwner.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQuerySendEnabledRequest() {\n return {\n denoms: [],\n pagination: undefined,\n };\n}\nexports.QuerySendEnabledRequest = {\n typeUrl: \"/cosmos.bank.v1beta1.QuerySendEnabledRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.denoms) {\n writer.uint32(10).string(v);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(794).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySendEnabledRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denoms.push(reader.string());\n break;\n case 99:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySendEnabledRequest();\n if (Array.isArray(object?.denoms))\n obj.denoms = object.denoms.map((e) => String(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.denoms) {\n obj.denoms = message.denoms.map((e) => e);\n }\n else {\n obj.denoms = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySendEnabledRequest();\n message.denoms = object.denoms?.map((e) => e) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQuerySendEnabledResponse() {\n return {\n sendEnabled: [],\n pagination: undefined,\n };\n}\nexports.QuerySendEnabledResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.QuerySendEnabledResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.sendEnabled) {\n bank_1.SendEnabled.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(794).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySendEnabledResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sendEnabled.push(bank_1.SendEnabled.decode(reader, reader.uint32()));\n break;\n case 99:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySendEnabledResponse();\n if (Array.isArray(object?.sendEnabled))\n obj.sendEnabled = object.sendEnabled.map((e) => bank_1.SendEnabled.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.sendEnabled) {\n obj.sendEnabled = message.sendEnabled.map((e) => (e ? bank_1.SendEnabled.toJSON(e) : undefined));\n }\n else {\n obj.sendEnabled = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySendEnabledResponse();\n message.sendEnabled = object.sendEnabled?.map((e) => bank_1.SendEnabled.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Balance = this.Balance.bind(this);\n this.AllBalances = this.AllBalances.bind(this);\n this.SpendableBalances = this.SpendableBalances.bind(this);\n this.SpendableBalanceByDenom = this.SpendableBalanceByDenom.bind(this);\n this.TotalSupply = this.TotalSupply.bind(this);\n this.SupplyOf = this.SupplyOf.bind(this);\n this.Params = this.Params.bind(this);\n this.DenomMetadata = this.DenomMetadata.bind(this);\n this.DenomsMetadata = this.DenomsMetadata.bind(this);\n this.DenomOwners = this.DenomOwners.bind(this);\n this.SendEnabled = this.SendEnabled.bind(this);\n }\n Balance(request) {\n const data = exports.QueryBalanceRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"Balance\", data);\n return promise.then((data) => exports.QueryBalanceResponse.decode(new binary_1.BinaryReader(data)));\n }\n AllBalances(request) {\n const data = exports.QueryAllBalancesRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"AllBalances\", data);\n return promise.then((data) => exports.QueryAllBalancesResponse.decode(new binary_1.BinaryReader(data)));\n }\n SpendableBalances(request) {\n const data = exports.QuerySpendableBalancesRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"SpendableBalances\", data);\n return promise.then((data) => exports.QuerySpendableBalancesResponse.decode(new binary_1.BinaryReader(data)));\n }\n SpendableBalanceByDenom(request) {\n const data = exports.QuerySpendableBalanceByDenomRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"SpendableBalanceByDenom\", data);\n return promise.then((data) => exports.QuerySpendableBalanceByDenomResponse.decode(new binary_1.BinaryReader(data)));\n }\n TotalSupply(request = {\n pagination: pagination_1.PageRequest.fromPartial({}),\n }) {\n const data = exports.QueryTotalSupplyRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"TotalSupply\", data);\n return promise.then((data) => exports.QueryTotalSupplyResponse.decode(new binary_1.BinaryReader(data)));\n }\n SupplyOf(request) {\n const data = exports.QuerySupplyOfRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"SupplyOf\", data);\n return promise.then((data) => exports.QuerySupplyOfResponse.decode(new binary_1.BinaryReader(data)));\n }\n Params(request = {}) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n DenomMetadata(request) {\n const data = exports.QueryDenomMetadataRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"DenomMetadata\", data);\n return promise.then((data) => exports.QueryDenomMetadataResponse.decode(new binary_1.BinaryReader(data)));\n }\n DenomsMetadata(request = {\n pagination: pagination_1.PageRequest.fromPartial({}),\n }) {\n const data = exports.QueryDenomsMetadataRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"DenomsMetadata\", data);\n return promise.then((data) => exports.QueryDenomsMetadataResponse.decode(new binary_1.BinaryReader(data)));\n }\n DenomOwners(request) {\n const data = exports.QueryDenomOwnersRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"DenomOwners\", data);\n return promise.then((data) => exports.QueryDenomOwnersResponse.decode(new binary_1.BinaryReader(data)));\n }\n SendEnabled(request) {\n const data = exports.QuerySendEnabledRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"SendEnabled\", data);\n return promise.then((data) => exports.QuerySendEnabledResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgSetSendEnabledResponse = exports.MsgSetSendEnabled = exports.MsgUpdateParamsResponse = exports.MsgUpdateParams = exports.MsgMultiSendResponse = exports.MsgMultiSend = exports.MsgSendResponse = exports.MsgSend = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst bank_1 = require(\"./bank\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.bank.v1beta1\";\nfunction createBaseMsgSend() {\n return {\n fromAddress: \"\",\n toAddress: \"\",\n amount: [],\n };\n}\nexports.MsgSend = {\n typeUrl: \"/cosmos.bank.v1beta1.MsgSend\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.fromAddress !== \"\") {\n writer.uint32(10).string(message.fromAddress);\n }\n if (message.toAddress !== \"\") {\n writer.uint32(18).string(message.toAddress);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSend();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.fromAddress = reader.string();\n break;\n case 2:\n message.toAddress = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgSend();\n if ((0, helpers_1.isSet)(object.fromAddress))\n obj.fromAddress = String(object.fromAddress);\n if ((0, helpers_1.isSet)(object.toAddress))\n obj.toAddress = String(object.toAddress);\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress);\n message.toAddress !== undefined && (obj.toAddress = message.toAddress);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgSend();\n message.fromAddress = object.fromAddress ?? \"\";\n message.toAddress = object.toAddress ?? \"\";\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgSendResponse() {\n return {};\n}\nexports.MsgSendResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.MsgSendResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSendResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgSendResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgSendResponse();\n return message;\n },\n};\nfunction createBaseMsgMultiSend() {\n return {\n inputs: [],\n outputs: [],\n };\n}\nexports.MsgMultiSend = {\n typeUrl: \"/cosmos.bank.v1beta1.MsgMultiSend\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.inputs) {\n bank_1.Input.encode(v, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.outputs) {\n bank_1.Output.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgMultiSend();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.inputs.push(bank_1.Input.decode(reader, reader.uint32()));\n break;\n case 2:\n message.outputs.push(bank_1.Output.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgMultiSend();\n if (Array.isArray(object?.inputs))\n obj.inputs = object.inputs.map((e) => bank_1.Input.fromJSON(e));\n if (Array.isArray(object?.outputs))\n obj.outputs = object.outputs.map((e) => bank_1.Output.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.inputs) {\n obj.inputs = message.inputs.map((e) => (e ? bank_1.Input.toJSON(e) : undefined));\n }\n else {\n obj.inputs = [];\n }\n if (message.outputs) {\n obj.outputs = message.outputs.map((e) => (e ? bank_1.Output.toJSON(e) : undefined));\n }\n else {\n obj.outputs = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgMultiSend();\n message.inputs = object.inputs?.map((e) => bank_1.Input.fromPartial(e)) || [];\n message.outputs = object.outputs?.map((e) => bank_1.Output.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgMultiSendResponse() {\n return {};\n}\nexports.MsgMultiSendResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.MsgMultiSendResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgMultiSendResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgMultiSendResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgMultiSendResponse();\n return message;\n },\n};\nfunction createBaseMsgUpdateParams() {\n return {\n authority: \"\",\n params: bank_1.Params.fromPartial({}),\n };\n}\nexports.MsgUpdateParams = {\n typeUrl: \"/cosmos.bank.v1beta1.MsgUpdateParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.authority !== \"\") {\n writer.uint32(10).string(message.authority);\n }\n if (message.params !== undefined) {\n bank_1.Params.encode(message.params, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.authority = reader.string();\n break;\n case 2:\n message.params = bank_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpdateParams();\n if ((0, helpers_1.isSet)(object.authority))\n obj.authority = String(object.authority);\n if ((0, helpers_1.isSet)(object.params))\n obj.params = bank_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.authority !== undefined && (obj.authority = message.authority);\n message.params !== undefined && (obj.params = message.params ? bank_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpdateParams();\n message.authority = object.authority ?? \"\";\n if (object.params !== undefined && object.params !== null) {\n message.params = bank_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nfunction createBaseMsgUpdateParamsResponse() {\n return {};\n}\nexports.MsgUpdateParamsResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.MsgUpdateParamsResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpdateParamsResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpdateParamsResponse();\n return message;\n },\n};\nfunction createBaseMsgSetSendEnabled() {\n return {\n authority: \"\",\n sendEnabled: [],\n useDefaultFor: [],\n };\n}\nexports.MsgSetSendEnabled = {\n typeUrl: \"/cosmos.bank.v1beta1.MsgSetSendEnabled\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.authority !== \"\") {\n writer.uint32(10).string(message.authority);\n }\n for (const v of message.sendEnabled) {\n bank_1.SendEnabled.encode(v, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.useDefaultFor) {\n writer.uint32(26).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSetSendEnabled();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.authority = reader.string();\n break;\n case 2:\n message.sendEnabled.push(bank_1.SendEnabled.decode(reader, reader.uint32()));\n break;\n case 3:\n message.useDefaultFor.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgSetSendEnabled();\n if ((0, helpers_1.isSet)(object.authority))\n obj.authority = String(object.authority);\n if (Array.isArray(object?.sendEnabled))\n obj.sendEnabled = object.sendEnabled.map((e) => bank_1.SendEnabled.fromJSON(e));\n if (Array.isArray(object?.useDefaultFor))\n obj.useDefaultFor = object.useDefaultFor.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.authority !== undefined && (obj.authority = message.authority);\n if (message.sendEnabled) {\n obj.sendEnabled = message.sendEnabled.map((e) => (e ? bank_1.SendEnabled.toJSON(e) : undefined));\n }\n else {\n obj.sendEnabled = [];\n }\n if (message.useDefaultFor) {\n obj.useDefaultFor = message.useDefaultFor.map((e) => e);\n }\n else {\n obj.useDefaultFor = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgSetSendEnabled();\n message.authority = object.authority ?? \"\";\n message.sendEnabled = object.sendEnabled?.map((e) => bank_1.SendEnabled.fromPartial(e)) || [];\n message.useDefaultFor = object.useDefaultFor?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseMsgSetSendEnabledResponse() {\n return {};\n}\nexports.MsgSetSendEnabledResponse = {\n typeUrl: \"/cosmos.bank.v1beta1.MsgSetSendEnabledResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSetSendEnabledResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgSetSendEnabledResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgSetSendEnabledResponse();\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Send = this.Send.bind(this);\n this.MultiSend = this.MultiSend.bind(this);\n this.UpdateParams = this.UpdateParams.bind(this);\n this.SetSendEnabled = this.SetSendEnabled.bind(this);\n }\n Send(request) {\n const data = exports.MsgSend.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Msg\", \"Send\", data);\n return promise.then((data) => exports.MsgSendResponse.decode(new binary_1.BinaryReader(data)));\n }\n MultiSend(request) {\n const data = exports.MsgMultiSend.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Msg\", \"MultiSend\", data);\n return promise.then((data) => exports.MsgMultiSendResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpdateParams(request) {\n const data = exports.MsgUpdateParams.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Msg\", \"UpdateParams\", data);\n return promise.then((data) => exports.MsgUpdateParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n SetSendEnabled(request) {\n const data = exports.MsgSetSendEnabled.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Msg\", \"SetSendEnabled\", data);\n return promise.then((data) => exports.MsgSetSendEnabledResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SearchTxsResult = exports.TxMsgData = exports.MsgData = exports.SimulationResponse = exports.Result = exports.GasInfo = exports.Attribute = exports.StringEvent = exports.ABCIMessageLog = exports.TxResponse = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst types_1 = require(\"../../../../tendermint/abci/types\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"cosmos.base.abci.v1beta1\";\nfunction createBaseTxResponse() {\n return {\n height: BigInt(0),\n txhash: \"\",\n codespace: \"\",\n code: 0,\n data: \"\",\n rawLog: \"\",\n logs: [],\n info: \"\",\n gasWanted: BigInt(0),\n gasUsed: BigInt(0),\n tx: undefined,\n timestamp: \"\",\n events: [],\n };\n}\nexports.TxResponse = {\n typeUrl: \"/cosmos.base.abci.v1beta1.TxResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.height !== BigInt(0)) {\n writer.uint32(8).int64(message.height);\n }\n if (message.txhash !== \"\") {\n writer.uint32(18).string(message.txhash);\n }\n if (message.codespace !== \"\") {\n writer.uint32(26).string(message.codespace);\n }\n if (message.code !== 0) {\n writer.uint32(32).uint32(message.code);\n }\n if (message.data !== \"\") {\n writer.uint32(42).string(message.data);\n }\n if (message.rawLog !== \"\") {\n writer.uint32(50).string(message.rawLog);\n }\n for (const v of message.logs) {\n exports.ABCIMessageLog.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.info !== \"\") {\n writer.uint32(66).string(message.info);\n }\n if (message.gasWanted !== BigInt(0)) {\n writer.uint32(72).int64(message.gasWanted);\n }\n if (message.gasUsed !== BigInt(0)) {\n writer.uint32(80).int64(message.gasUsed);\n }\n if (message.tx !== undefined) {\n any_1.Any.encode(message.tx, writer.uint32(90).fork()).ldelim();\n }\n if (message.timestamp !== \"\") {\n writer.uint32(98).string(message.timestamp);\n }\n for (const v of message.events) {\n types_1.Event.encode(v, writer.uint32(106).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n case 2:\n message.txhash = reader.string();\n break;\n case 3:\n message.codespace = reader.string();\n break;\n case 4:\n message.code = reader.uint32();\n break;\n case 5:\n message.data = reader.string();\n break;\n case 6:\n message.rawLog = reader.string();\n break;\n case 7:\n message.logs.push(exports.ABCIMessageLog.decode(reader, reader.uint32()));\n break;\n case 8:\n message.info = reader.string();\n break;\n case 9:\n message.gasWanted = reader.int64();\n break;\n case 10:\n message.gasUsed = reader.int64();\n break;\n case 11:\n message.tx = any_1.Any.decode(reader, reader.uint32());\n break;\n case 12:\n message.timestamp = reader.string();\n break;\n case 13:\n message.events.push(types_1.Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxResponse();\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.txhash))\n obj.txhash = String(object.txhash);\n if ((0, helpers_1.isSet)(object.codespace))\n obj.codespace = String(object.codespace);\n if ((0, helpers_1.isSet)(object.code))\n obj.code = Number(object.code);\n if ((0, helpers_1.isSet)(object.data))\n obj.data = String(object.data);\n if ((0, helpers_1.isSet)(object.rawLog))\n obj.rawLog = String(object.rawLog);\n if (Array.isArray(object?.logs))\n obj.logs = object.logs.map((e) => exports.ABCIMessageLog.fromJSON(e));\n if ((0, helpers_1.isSet)(object.info))\n obj.info = String(object.info);\n if ((0, helpers_1.isSet)(object.gasWanted))\n obj.gasWanted = BigInt(object.gasWanted.toString());\n if ((0, helpers_1.isSet)(object.gasUsed))\n obj.gasUsed = BigInt(object.gasUsed.toString());\n if ((0, helpers_1.isSet)(object.tx))\n obj.tx = any_1.Any.fromJSON(object.tx);\n if ((0, helpers_1.isSet)(object.timestamp))\n obj.timestamp = String(object.timestamp);\n if (Array.isArray(object?.events))\n obj.events = object.events.map((e) => types_1.Event.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.txhash !== undefined && (obj.txhash = message.txhash);\n message.codespace !== undefined && (obj.codespace = message.codespace);\n message.code !== undefined && (obj.code = Math.round(message.code));\n message.data !== undefined && (obj.data = message.data);\n message.rawLog !== undefined && (obj.rawLog = message.rawLog);\n if (message.logs) {\n obj.logs = message.logs.map((e) => (e ? exports.ABCIMessageLog.toJSON(e) : undefined));\n }\n else {\n obj.logs = [];\n }\n message.info !== undefined && (obj.info = message.info);\n message.gasWanted !== undefined && (obj.gasWanted = (message.gasWanted || BigInt(0)).toString());\n message.gasUsed !== undefined && (obj.gasUsed = (message.gasUsed || BigInt(0)).toString());\n message.tx !== undefined && (obj.tx = message.tx ? any_1.Any.toJSON(message.tx) : undefined);\n message.timestamp !== undefined && (obj.timestamp = message.timestamp);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? types_1.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxResponse();\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n message.txhash = object.txhash ?? \"\";\n message.codespace = object.codespace ?? \"\";\n message.code = object.code ?? 0;\n message.data = object.data ?? \"\";\n message.rawLog = object.rawLog ?? \"\";\n message.logs = object.logs?.map((e) => exports.ABCIMessageLog.fromPartial(e)) || [];\n message.info = object.info ?? \"\";\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = BigInt(object.gasWanted.toString());\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = BigInt(object.gasUsed.toString());\n }\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = any_1.Any.fromPartial(object.tx);\n }\n message.timestamp = object.timestamp ?? \"\";\n message.events = object.events?.map((e) => types_1.Event.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseABCIMessageLog() {\n return {\n msgIndex: 0,\n log: \"\",\n events: [],\n };\n}\nexports.ABCIMessageLog = {\n typeUrl: \"/cosmos.base.abci.v1beta1.ABCIMessageLog\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.msgIndex !== 0) {\n writer.uint32(8).uint32(message.msgIndex);\n }\n if (message.log !== \"\") {\n writer.uint32(18).string(message.log);\n }\n for (const v of message.events) {\n exports.StringEvent.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseABCIMessageLog();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.msgIndex = reader.uint32();\n break;\n case 2:\n message.log = reader.string();\n break;\n case 3:\n message.events.push(exports.StringEvent.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseABCIMessageLog();\n if ((0, helpers_1.isSet)(object.msgIndex))\n obj.msgIndex = Number(object.msgIndex);\n if ((0, helpers_1.isSet)(object.log))\n obj.log = String(object.log);\n if (Array.isArray(object?.events))\n obj.events = object.events.map((e) => exports.StringEvent.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.msgIndex !== undefined && (obj.msgIndex = Math.round(message.msgIndex));\n message.log !== undefined && (obj.log = message.log);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.StringEvent.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseABCIMessageLog();\n message.msgIndex = object.msgIndex ?? 0;\n message.log = object.log ?? \"\";\n message.events = object.events?.map((e) => exports.StringEvent.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseStringEvent() {\n return {\n type: \"\",\n attributes: [],\n };\n}\nexports.StringEvent = {\n typeUrl: \"/cosmos.base.abci.v1beta1.StringEvent\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.type !== \"\") {\n writer.uint32(10).string(message.type);\n }\n for (const v of message.attributes) {\n exports.Attribute.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStringEvent();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.string();\n break;\n case 2:\n message.attributes.push(exports.Attribute.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseStringEvent();\n if ((0, helpers_1.isSet)(object.type))\n obj.type = String(object.type);\n if (Array.isArray(object?.attributes))\n obj.attributes = object.attributes.map((e) => exports.Attribute.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = message.type);\n if (message.attributes) {\n obj.attributes = message.attributes.map((e) => (e ? exports.Attribute.toJSON(e) : undefined));\n }\n else {\n obj.attributes = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseStringEvent();\n message.type = object.type ?? \"\";\n message.attributes = object.attributes?.map((e) => exports.Attribute.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseAttribute() {\n return {\n key: \"\",\n value: \"\",\n };\n}\nexports.Attribute = {\n typeUrl: \"/cosmos.base.abci.v1beta1.Attribute\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAttribute();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n case 2:\n message.value = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseAttribute();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = String(object.key);\n if ((0, helpers_1.isSet)(object.value))\n obj.value = String(object.value);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined && (obj.key = message.key);\n message.value !== undefined && (obj.value = message.value);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseAttribute();\n message.key = object.key ?? \"\";\n message.value = object.value ?? \"\";\n return message;\n },\n};\nfunction createBaseGasInfo() {\n return {\n gasWanted: BigInt(0),\n gasUsed: BigInt(0),\n };\n}\nexports.GasInfo = {\n typeUrl: \"/cosmos.base.abci.v1beta1.GasInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.gasWanted !== BigInt(0)) {\n writer.uint32(8).uint64(message.gasWanted);\n }\n if (message.gasUsed !== BigInt(0)) {\n writer.uint32(16).uint64(message.gasUsed);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGasInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.gasWanted = reader.uint64();\n break;\n case 2:\n message.gasUsed = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGasInfo();\n if ((0, helpers_1.isSet)(object.gasWanted))\n obj.gasWanted = BigInt(object.gasWanted.toString());\n if ((0, helpers_1.isSet)(object.gasUsed))\n obj.gasUsed = BigInt(object.gasUsed.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.gasWanted !== undefined && (obj.gasWanted = (message.gasWanted || BigInt(0)).toString());\n message.gasUsed !== undefined && (obj.gasUsed = (message.gasUsed || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGasInfo();\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = BigInt(object.gasWanted.toString());\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = BigInt(object.gasUsed.toString());\n }\n return message;\n },\n};\nfunction createBaseResult() {\n return {\n data: new Uint8Array(),\n log: \"\",\n events: [],\n msgResponses: [],\n };\n}\nexports.Result = {\n typeUrl: \"/cosmos.base.abci.v1beta1.Result\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n if (message.log !== \"\") {\n writer.uint32(18).string(message.log);\n }\n for (const v of message.events) {\n types_1.Event.encode(v, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.msgResponses) {\n any_1.Any.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResult();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n case 2:\n message.log = reader.string();\n break;\n case 3:\n message.events.push(types_1.Event.decode(reader, reader.uint32()));\n break;\n case 4:\n message.msgResponses.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResult();\n if ((0, helpers_1.isSet)(object.data))\n obj.data = (0, helpers_1.bytesFromBase64)(object.data);\n if ((0, helpers_1.isSet)(object.log))\n obj.log = String(object.log);\n if (Array.isArray(object?.events))\n obj.events = object.events.map((e) => types_1.Event.fromJSON(e));\n if (Array.isArray(object?.msgResponses))\n obj.msgResponses = object.msgResponses.map((e) => any_1.Any.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array()));\n message.log !== undefined && (obj.log = message.log);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? types_1.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n if (message.msgResponses) {\n obj.msgResponses = message.msgResponses.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.msgResponses = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResult();\n message.data = object.data ?? new Uint8Array();\n message.log = object.log ?? \"\";\n message.events = object.events?.map((e) => types_1.Event.fromPartial(e)) || [];\n message.msgResponses = object.msgResponses?.map((e) => any_1.Any.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseSimulationResponse() {\n return {\n gasInfo: exports.GasInfo.fromPartial({}),\n result: undefined,\n };\n}\nexports.SimulationResponse = {\n typeUrl: \"/cosmos.base.abci.v1beta1.SimulationResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.gasInfo !== undefined) {\n exports.GasInfo.encode(message.gasInfo, writer.uint32(10).fork()).ldelim();\n }\n if (message.result !== undefined) {\n exports.Result.encode(message.result, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSimulationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.gasInfo = exports.GasInfo.decode(reader, reader.uint32());\n break;\n case 2:\n message.result = exports.Result.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSimulationResponse();\n if ((0, helpers_1.isSet)(object.gasInfo))\n obj.gasInfo = exports.GasInfo.fromJSON(object.gasInfo);\n if ((0, helpers_1.isSet)(object.result))\n obj.result = exports.Result.fromJSON(object.result);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.gasInfo !== undefined &&\n (obj.gasInfo = message.gasInfo ? exports.GasInfo.toJSON(message.gasInfo) : undefined);\n message.result !== undefined && (obj.result = message.result ? exports.Result.toJSON(message.result) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSimulationResponse();\n if (object.gasInfo !== undefined && object.gasInfo !== null) {\n message.gasInfo = exports.GasInfo.fromPartial(object.gasInfo);\n }\n if (object.result !== undefined && object.result !== null) {\n message.result = exports.Result.fromPartial(object.result);\n }\n return message;\n },\n};\nfunction createBaseMsgData() {\n return {\n msgType: \"\",\n data: new Uint8Array(),\n };\n}\nexports.MsgData = {\n typeUrl: \"/cosmos.base.abci.v1beta1.MsgData\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.msgType !== \"\") {\n writer.uint32(10).string(message.msgType);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgData();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.msgType = reader.string();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgData();\n if ((0, helpers_1.isSet)(object.msgType))\n obj.msgType = String(object.msgType);\n if ((0, helpers_1.isSet)(object.data))\n obj.data = (0, helpers_1.bytesFromBase64)(object.data);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.msgType !== undefined && (obj.msgType = message.msgType);\n message.data !== undefined &&\n (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgData();\n message.msgType = object.msgType ?? \"\";\n message.data = object.data ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseTxMsgData() {\n return {\n data: [],\n msgResponses: [],\n };\n}\nexports.TxMsgData = {\n typeUrl: \"/cosmos.base.abci.v1beta1.TxMsgData\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.data) {\n exports.MsgData.encode(v, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.msgResponses) {\n any_1.Any.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxMsgData();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data.push(exports.MsgData.decode(reader, reader.uint32()));\n break;\n case 2:\n message.msgResponses.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxMsgData();\n if (Array.isArray(object?.data))\n obj.data = object.data.map((e) => exports.MsgData.fromJSON(e));\n if (Array.isArray(object?.msgResponses))\n obj.msgResponses = object.msgResponses.map((e) => any_1.Any.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.data) {\n obj.data = message.data.map((e) => (e ? exports.MsgData.toJSON(e) : undefined));\n }\n else {\n obj.data = [];\n }\n if (message.msgResponses) {\n obj.msgResponses = message.msgResponses.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.msgResponses = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxMsgData();\n message.data = object.data?.map((e) => exports.MsgData.fromPartial(e)) || [];\n message.msgResponses = object.msgResponses?.map((e) => any_1.Any.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseSearchTxsResult() {\n return {\n totalCount: BigInt(0),\n count: BigInt(0),\n pageNumber: BigInt(0),\n pageTotal: BigInt(0),\n limit: BigInt(0),\n txs: [],\n };\n}\nexports.SearchTxsResult = {\n typeUrl: \"/cosmos.base.abci.v1beta1.SearchTxsResult\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.totalCount !== BigInt(0)) {\n writer.uint32(8).uint64(message.totalCount);\n }\n if (message.count !== BigInt(0)) {\n writer.uint32(16).uint64(message.count);\n }\n if (message.pageNumber !== BigInt(0)) {\n writer.uint32(24).uint64(message.pageNumber);\n }\n if (message.pageTotal !== BigInt(0)) {\n writer.uint32(32).uint64(message.pageTotal);\n }\n if (message.limit !== BigInt(0)) {\n writer.uint32(40).uint64(message.limit);\n }\n for (const v of message.txs) {\n exports.TxResponse.encode(v, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSearchTxsResult();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.totalCount = reader.uint64();\n break;\n case 2:\n message.count = reader.uint64();\n break;\n case 3:\n message.pageNumber = reader.uint64();\n break;\n case 4:\n message.pageTotal = reader.uint64();\n break;\n case 5:\n message.limit = reader.uint64();\n break;\n case 6:\n message.txs.push(exports.TxResponse.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSearchTxsResult();\n if ((0, helpers_1.isSet)(object.totalCount))\n obj.totalCount = BigInt(object.totalCount.toString());\n if ((0, helpers_1.isSet)(object.count))\n obj.count = BigInt(object.count.toString());\n if ((0, helpers_1.isSet)(object.pageNumber))\n obj.pageNumber = BigInt(object.pageNumber.toString());\n if ((0, helpers_1.isSet)(object.pageTotal))\n obj.pageTotal = BigInt(object.pageTotal.toString());\n if ((0, helpers_1.isSet)(object.limit))\n obj.limit = BigInt(object.limit.toString());\n if (Array.isArray(object?.txs))\n obj.txs = object.txs.map((e) => exports.TxResponse.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.totalCount !== undefined && (obj.totalCount = (message.totalCount || BigInt(0)).toString());\n message.count !== undefined && (obj.count = (message.count || BigInt(0)).toString());\n message.pageNumber !== undefined && (obj.pageNumber = (message.pageNumber || BigInt(0)).toString());\n message.pageTotal !== undefined && (obj.pageTotal = (message.pageTotal || BigInt(0)).toString());\n message.limit !== undefined && (obj.limit = (message.limit || BigInt(0)).toString());\n if (message.txs) {\n obj.txs = message.txs.map((e) => (e ? exports.TxResponse.toJSON(e) : undefined));\n }\n else {\n obj.txs = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSearchTxsResult();\n if (object.totalCount !== undefined && object.totalCount !== null) {\n message.totalCount = BigInt(object.totalCount.toString());\n }\n if (object.count !== undefined && object.count !== null) {\n message.count = BigInt(object.count.toString());\n }\n if (object.pageNumber !== undefined && object.pageNumber !== null) {\n message.pageNumber = BigInt(object.pageNumber.toString());\n }\n if (object.pageTotal !== undefined && object.pageTotal !== null) {\n message.pageTotal = BigInt(object.pageTotal.toString());\n }\n if (object.limit !== undefined && object.limit !== null) {\n message.limit = BigInt(object.limit.toString());\n }\n message.txs = object.txs?.map((e) => exports.TxResponse.fromPartial(e)) || [];\n return message;\n },\n};\n//# sourceMappingURL=abci.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PageResponse = exports.PageRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"cosmos.base.query.v1beta1\";\nfunction createBasePageRequest() {\n return {\n key: new Uint8Array(),\n offset: BigInt(0),\n limit: BigInt(0),\n countTotal: false,\n reverse: false,\n };\n}\nexports.PageRequest = {\n typeUrl: \"/cosmos.base.query.v1beta1.PageRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.offset !== BigInt(0)) {\n writer.uint32(16).uint64(message.offset);\n }\n if (message.limit !== BigInt(0)) {\n writer.uint32(24).uint64(message.limit);\n }\n if (message.countTotal === true) {\n writer.uint32(32).bool(message.countTotal);\n }\n if (message.reverse === true) {\n writer.uint32(40).bool(message.reverse);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePageRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.offset = reader.uint64();\n break;\n case 3:\n message.limit = reader.uint64();\n break;\n case 4:\n message.countTotal = reader.bool();\n break;\n case 5:\n message.reverse = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePageRequest();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n if ((0, helpers_1.isSet)(object.offset))\n obj.offset = BigInt(object.offset.toString());\n if ((0, helpers_1.isSet)(object.limit))\n obj.limit = BigInt(object.limit.toString());\n if ((0, helpers_1.isSet)(object.countTotal))\n obj.countTotal = Boolean(object.countTotal);\n if ((0, helpers_1.isSet)(object.reverse))\n obj.reverse = Boolean(object.reverse);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n message.offset !== undefined && (obj.offset = (message.offset || BigInt(0)).toString());\n message.limit !== undefined && (obj.limit = (message.limit || BigInt(0)).toString());\n message.countTotal !== undefined && (obj.countTotal = message.countTotal);\n message.reverse !== undefined && (obj.reverse = message.reverse);\n return obj;\n },\n fromPartial(object) {\n const message = createBasePageRequest();\n message.key = object.key ?? new Uint8Array();\n if (object.offset !== undefined && object.offset !== null) {\n message.offset = BigInt(object.offset.toString());\n }\n if (object.limit !== undefined && object.limit !== null) {\n message.limit = BigInt(object.limit.toString());\n }\n message.countTotal = object.countTotal ?? false;\n message.reverse = object.reverse ?? false;\n return message;\n },\n};\nfunction createBasePageResponse() {\n return {\n nextKey: new Uint8Array(),\n total: BigInt(0),\n };\n}\nexports.PageResponse = {\n typeUrl: \"/cosmos.base.query.v1beta1.PageResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.nextKey.length !== 0) {\n writer.uint32(10).bytes(message.nextKey);\n }\n if (message.total !== BigInt(0)) {\n writer.uint32(16).uint64(message.total);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePageResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.nextKey = reader.bytes();\n break;\n case 2:\n message.total = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePageResponse();\n if ((0, helpers_1.isSet)(object.nextKey))\n obj.nextKey = (0, helpers_1.bytesFromBase64)(object.nextKey);\n if ((0, helpers_1.isSet)(object.total))\n obj.total = BigInt(object.total.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.nextKey !== undefined &&\n (obj.nextKey = (0, helpers_1.base64FromBytes)(message.nextKey !== undefined ? message.nextKey : new Uint8Array()));\n message.total !== undefined && (obj.total = (message.total || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBasePageResponse();\n message.nextKey = object.nextKey ?? new Uint8Array();\n if (object.total !== undefined && object.total !== null) {\n message.total = BigInt(object.total.toString());\n }\n return message;\n },\n};\n//# sourceMappingURL=pagination.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DecProto = exports.IntProto = exports.DecCoin = exports.Coin = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.base.v1beta1\";\nfunction createBaseCoin() {\n return {\n denom: \"\",\n amount: \"\",\n };\n}\nexports.Coin = {\n typeUrl: \"/cosmos.base.v1beta1.Coin\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.amount !== \"\") {\n writer.uint32(18).string(message.amount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCoin();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.amount = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCoin();\n if ((0, helpers_1.isSet)(object.denom))\n obj.denom = String(object.denom);\n if ((0, helpers_1.isSet)(object.amount))\n obj.amount = String(object.amount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.amount !== undefined && (obj.amount = message.amount);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCoin();\n message.denom = object.denom ?? \"\";\n message.amount = object.amount ?? \"\";\n return message;\n },\n};\nfunction createBaseDecCoin() {\n return {\n denom: \"\",\n amount: \"\",\n };\n}\nexports.DecCoin = {\n typeUrl: \"/cosmos.base.v1beta1.DecCoin\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.amount !== \"\") {\n writer.uint32(18).string(message.amount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDecCoin();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.amount = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDecCoin();\n if ((0, helpers_1.isSet)(object.denom))\n obj.denom = String(object.denom);\n if ((0, helpers_1.isSet)(object.amount))\n obj.amount = String(object.amount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.amount !== undefined && (obj.amount = message.amount);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDecCoin();\n message.denom = object.denom ?? \"\";\n message.amount = object.amount ?? \"\";\n return message;\n },\n};\nfunction createBaseIntProto() {\n return {\n int: \"\",\n };\n}\nexports.IntProto = {\n typeUrl: \"/cosmos.base.v1beta1.IntProto\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.int !== \"\") {\n writer.uint32(10).string(message.int);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseIntProto();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.int = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseIntProto();\n if ((0, helpers_1.isSet)(object.int))\n obj.int = String(object.int);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.int !== undefined && (obj.int = message.int);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseIntProto();\n message.int = object.int ?? \"\";\n return message;\n },\n};\nfunction createBaseDecProto() {\n return {\n dec: \"\",\n };\n}\nexports.DecProto = {\n typeUrl: \"/cosmos.base.v1beta1.DecProto\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.dec !== \"\") {\n writer.uint32(10).string(message.dec);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDecProto();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.dec = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDecProto();\n if ((0, helpers_1.isSet)(object.dec))\n obj.dec = String(object.dec);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.dec !== undefined && (obj.dec = message.dec);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDecProto();\n message.dec = object.dec ?? \"\";\n return message;\n },\n};\n//# sourceMappingURL=coin.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PrivKey = exports.PubKey = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.crypto.ed25519\";\nfunction createBasePubKey() {\n return {\n key: new Uint8Array(),\n };\n}\nexports.PubKey = {\n typeUrl: \"/cosmos.crypto.ed25519.PubKey\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePubKey();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePubKey();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBasePubKey();\n message.key = object.key ?? new Uint8Array();\n return message;\n },\n};\nfunction createBasePrivKey() {\n return {\n key: new Uint8Array(),\n };\n}\nexports.PrivKey = {\n typeUrl: \"/cosmos.crypto.ed25519.PrivKey\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePrivKey();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePrivKey();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBasePrivKey();\n message.key = object.key ?? new Uint8Array();\n return message;\n },\n};\n//# sourceMappingURL=keys.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LegacyAminoPubKey = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.crypto.multisig\";\nfunction createBaseLegacyAminoPubKey() {\n return {\n threshold: 0,\n publicKeys: [],\n };\n}\nexports.LegacyAminoPubKey = {\n typeUrl: \"/cosmos.crypto.multisig.LegacyAminoPubKey\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.threshold !== 0) {\n writer.uint32(8).uint32(message.threshold);\n }\n for (const v of message.publicKeys) {\n any_1.Any.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseLegacyAminoPubKey();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.threshold = reader.uint32();\n break;\n case 2:\n message.publicKeys.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseLegacyAminoPubKey();\n if ((0, helpers_1.isSet)(object.threshold))\n obj.threshold = Number(object.threshold);\n if (Array.isArray(object?.publicKeys))\n obj.publicKeys = object.publicKeys.map((e) => any_1.Any.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.threshold !== undefined && (obj.threshold = Math.round(message.threshold));\n if (message.publicKeys) {\n obj.publicKeys = message.publicKeys.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.publicKeys = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseLegacyAminoPubKey();\n message.threshold = object.threshold ?? 0;\n message.publicKeys = object.publicKeys?.map((e) => any_1.Any.fromPartial(e)) || [];\n return message;\n },\n};\n//# sourceMappingURL=keys.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CompactBitArray = exports.MultiSignature = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"cosmos.crypto.multisig.v1beta1\";\nfunction createBaseMultiSignature() {\n return {\n signatures: [],\n };\n}\nexports.MultiSignature = {\n typeUrl: \"/cosmos.crypto.multisig.v1beta1.MultiSignature\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.signatures) {\n writer.uint32(10).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMultiSignature();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMultiSignature();\n if (Array.isArray(object?.signatures))\n obj.signatures = object.signatures.map((e) => (0, helpers_1.bytesFromBase64)(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMultiSignature();\n message.signatures = object.signatures?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseCompactBitArray() {\n return {\n extraBitsStored: 0,\n elems: new Uint8Array(),\n };\n}\nexports.CompactBitArray = {\n typeUrl: \"/cosmos.crypto.multisig.v1beta1.CompactBitArray\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.extraBitsStored !== 0) {\n writer.uint32(8).uint32(message.extraBitsStored);\n }\n if (message.elems.length !== 0) {\n writer.uint32(18).bytes(message.elems);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCompactBitArray();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.extraBitsStored = reader.uint32();\n break;\n case 2:\n message.elems = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCompactBitArray();\n if ((0, helpers_1.isSet)(object.extraBitsStored))\n obj.extraBitsStored = Number(object.extraBitsStored);\n if ((0, helpers_1.isSet)(object.elems))\n obj.elems = (0, helpers_1.bytesFromBase64)(object.elems);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.extraBitsStored !== undefined && (obj.extraBitsStored = Math.round(message.extraBitsStored));\n message.elems !== undefined &&\n (obj.elems = (0, helpers_1.base64FromBytes)(message.elems !== undefined ? message.elems : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCompactBitArray();\n message.extraBitsStored = object.extraBitsStored ?? 0;\n message.elems = object.elems ?? new Uint8Array();\n return message;\n },\n};\n//# sourceMappingURL=multisig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PrivKey = exports.PubKey = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.crypto.secp256k1\";\nfunction createBasePubKey() {\n return {\n key: new Uint8Array(),\n };\n}\nexports.PubKey = {\n typeUrl: \"/cosmos.crypto.secp256k1.PubKey\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePubKey();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePubKey();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBasePubKey();\n message.key = object.key ?? new Uint8Array();\n return message;\n },\n};\nfunction createBasePrivKey() {\n return {\n key: new Uint8Array(),\n };\n}\nexports.PrivKey = {\n typeUrl: \"/cosmos.crypto.secp256k1.PrivKey\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePrivKey();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePrivKey();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBasePrivKey();\n message.key = object.key ?? new Uint8Array();\n return message;\n },\n};\n//# sourceMappingURL=keys.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommunityPoolSpendProposalWithDeposit = exports.DelegationDelegatorReward = exports.DelegatorStartingInfo = exports.CommunityPoolSpendProposal = exports.FeePool = exports.ValidatorSlashEvents = exports.ValidatorSlashEvent = exports.ValidatorOutstandingRewards = exports.ValidatorAccumulatedCommission = exports.ValidatorCurrentRewards = exports.ValidatorHistoricalRewards = exports.Params = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.distribution.v1beta1\";\nfunction createBaseParams() {\n return {\n communityTax: \"\",\n baseProposerReward: \"\",\n bonusProposerReward: \"\",\n withdrawAddrEnabled: false,\n };\n}\nexports.Params = {\n typeUrl: \"/cosmos.distribution.v1beta1.Params\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.communityTax !== \"\") {\n writer.uint32(10).string(message.communityTax);\n }\n if (message.baseProposerReward !== \"\") {\n writer.uint32(18).string(message.baseProposerReward);\n }\n if (message.bonusProposerReward !== \"\") {\n writer.uint32(26).string(message.bonusProposerReward);\n }\n if (message.withdrawAddrEnabled === true) {\n writer.uint32(32).bool(message.withdrawAddrEnabled);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.communityTax = reader.string();\n break;\n case 2:\n message.baseProposerReward = reader.string();\n break;\n case 3:\n message.bonusProposerReward = reader.string();\n break;\n case 4:\n message.withdrawAddrEnabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseParams();\n if ((0, helpers_1.isSet)(object.communityTax))\n obj.communityTax = String(object.communityTax);\n if ((0, helpers_1.isSet)(object.baseProposerReward))\n obj.baseProposerReward = String(object.baseProposerReward);\n if ((0, helpers_1.isSet)(object.bonusProposerReward))\n obj.bonusProposerReward = String(object.bonusProposerReward);\n if ((0, helpers_1.isSet)(object.withdrawAddrEnabled))\n obj.withdrawAddrEnabled = Boolean(object.withdrawAddrEnabled);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.communityTax !== undefined && (obj.communityTax = message.communityTax);\n message.baseProposerReward !== undefined && (obj.baseProposerReward = message.baseProposerReward);\n message.bonusProposerReward !== undefined && (obj.bonusProposerReward = message.bonusProposerReward);\n message.withdrawAddrEnabled !== undefined && (obj.withdrawAddrEnabled = message.withdrawAddrEnabled);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseParams();\n message.communityTax = object.communityTax ?? \"\";\n message.baseProposerReward = object.baseProposerReward ?? \"\";\n message.bonusProposerReward = object.bonusProposerReward ?? \"\";\n message.withdrawAddrEnabled = object.withdrawAddrEnabled ?? false;\n return message;\n },\n};\nfunction createBaseValidatorHistoricalRewards() {\n return {\n cumulativeRewardRatio: [],\n referenceCount: 0,\n };\n}\nexports.ValidatorHistoricalRewards = {\n typeUrl: \"/cosmos.distribution.v1beta1.ValidatorHistoricalRewards\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.cumulativeRewardRatio) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.referenceCount !== 0) {\n writer.uint32(16).uint32(message.referenceCount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorHistoricalRewards();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.cumulativeRewardRatio.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.referenceCount = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidatorHistoricalRewards();\n if (Array.isArray(object?.cumulativeRewardRatio))\n obj.cumulativeRewardRatio = object.cumulativeRewardRatio.map((e) => coin_1.DecCoin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.referenceCount))\n obj.referenceCount = Number(object.referenceCount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.cumulativeRewardRatio) {\n obj.cumulativeRewardRatio = message.cumulativeRewardRatio.map((e) => e ? coin_1.DecCoin.toJSON(e) : undefined);\n }\n else {\n obj.cumulativeRewardRatio = [];\n }\n message.referenceCount !== undefined && (obj.referenceCount = Math.round(message.referenceCount));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidatorHistoricalRewards();\n message.cumulativeRewardRatio = object.cumulativeRewardRatio?.map((e) => coin_1.DecCoin.fromPartial(e)) || [];\n message.referenceCount = object.referenceCount ?? 0;\n return message;\n },\n};\nfunction createBaseValidatorCurrentRewards() {\n return {\n rewards: [],\n period: BigInt(0),\n };\n}\nexports.ValidatorCurrentRewards = {\n typeUrl: \"/cosmos.distribution.v1beta1.ValidatorCurrentRewards\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.rewards) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.period !== BigInt(0)) {\n writer.uint32(16).uint64(message.period);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorCurrentRewards();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.period = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidatorCurrentRewards();\n if (Array.isArray(object?.rewards))\n obj.rewards = object.rewards.map((e) => coin_1.DecCoin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.period))\n obj.period = BigInt(object.period.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.rewards) {\n obj.rewards = message.rewards.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.rewards = [];\n }\n message.period !== undefined && (obj.period = (message.period || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidatorCurrentRewards();\n message.rewards = object.rewards?.map((e) => coin_1.DecCoin.fromPartial(e)) || [];\n if (object.period !== undefined && object.period !== null) {\n message.period = BigInt(object.period.toString());\n }\n return message;\n },\n};\nfunction createBaseValidatorAccumulatedCommission() {\n return {\n commission: [],\n };\n}\nexports.ValidatorAccumulatedCommission = {\n typeUrl: \"/cosmos.distribution.v1beta1.ValidatorAccumulatedCommission\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.commission) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorAccumulatedCommission();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commission.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidatorAccumulatedCommission();\n if (Array.isArray(object?.commission))\n obj.commission = object.commission.map((e) => coin_1.DecCoin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.commission) {\n obj.commission = message.commission.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.commission = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidatorAccumulatedCommission();\n message.commission = object.commission?.map((e) => coin_1.DecCoin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseValidatorOutstandingRewards() {\n return {\n rewards: [],\n };\n}\nexports.ValidatorOutstandingRewards = {\n typeUrl: \"/cosmos.distribution.v1beta1.ValidatorOutstandingRewards\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.rewards) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorOutstandingRewards();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidatorOutstandingRewards();\n if (Array.isArray(object?.rewards))\n obj.rewards = object.rewards.map((e) => coin_1.DecCoin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.rewards) {\n obj.rewards = message.rewards.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.rewards = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidatorOutstandingRewards();\n message.rewards = object.rewards?.map((e) => coin_1.DecCoin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseValidatorSlashEvent() {\n return {\n validatorPeriod: BigInt(0),\n fraction: \"\",\n };\n}\nexports.ValidatorSlashEvent = {\n typeUrl: \"/cosmos.distribution.v1beta1.ValidatorSlashEvent\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validatorPeriod !== BigInt(0)) {\n writer.uint32(8).uint64(message.validatorPeriod);\n }\n if (message.fraction !== \"\") {\n writer.uint32(18).string(message.fraction);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorSlashEvent();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorPeriod = reader.uint64();\n break;\n case 2:\n message.fraction = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidatorSlashEvent();\n if ((0, helpers_1.isSet)(object.validatorPeriod))\n obj.validatorPeriod = BigInt(object.validatorPeriod.toString());\n if ((0, helpers_1.isSet)(object.fraction))\n obj.fraction = String(object.fraction);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validatorPeriod !== undefined &&\n (obj.validatorPeriod = (message.validatorPeriod || BigInt(0)).toString());\n message.fraction !== undefined && (obj.fraction = message.fraction);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidatorSlashEvent();\n if (object.validatorPeriod !== undefined && object.validatorPeriod !== null) {\n message.validatorPeriod = BigInt(object.validatorPeriod.toString());\n }\n message.fraction = object.fraction ?? \"\";\n return message;\n },\n};\nfunction createBaseValidatorSlashEvents() {\n return {\n validatorSlashEvents: [],\n };\n}\nexports.ValidatorSlashEvents = {\n typeUrl: \"/cosmos.distribution.v1beta1.ValidatorSlashEvents\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.validatorSlashEvents) {\n exports.ValidatorSlashEvent.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorSlashEvents();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorSlashEvents.push(exports.ValidatorSlashEvent.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidatorSlashEvents();\n if (Array.isArray(object?.validatorSlashEvents))\n obj.validatorSlashEvents = object.validatorSlashEvents.map((e) => exports.ValidatorSlashEvent.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.validatorSlashEvents) {\n obj.validatorSlashEvents = message.validatorSlashEvents.map((e) => e ? exports.ValidatorSlashEvent.toJSON(e) : undefined);\n }\n else {\n obj.validatorSlashEvents = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidatorSlashEvents();\n message.validatorSlashEvents =\n object.validatorSlashEvents?.map((e) => exports.ValidatorSlashEvent.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseFeePool() {\n return {\n communityPool: [],\n };\n}\nexports.FeePool = {\n typeUrl: \"/cosmos.distribution.v1beta1.FeePool\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.communityPool) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFeePool();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.communityPool.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseFeePool();\n if (Array.isArray(object?.communityPool))\n obj.communityPool = object.communityPool.map((e) => coin_1.DecCoin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.communityPool) {\n obj.communityPool = message.communityPool.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.communityPool = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseFeePool();\n message.communityPool = object.communityPool?.map((e) => coin_1.DecCoin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseCommunityPoolSpendProposal() {\n return {\n title: \"\",\n description: \"\",\n recipient: \"\",\n amount: [],\n };\n}\nexports.CommunityPoolSpendProposal = {\n typeUrl: \"/cosmos.distribution.v1beta1.CommunityPoolSpendProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.recipient !== \"\") {\n writer.uint32(26).string(message.recipient);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCommunityPoolSpendProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.recipient = reader.string();\n break;\n case 4:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCommunityPoolSpendProposal();\n if ((0, helpers_1.isSet)(object.title))\n obj.title = String(object.title);\n if ((0, helpers_1.isSet)(object.description))\n obj.description = String(object.description);\n if ((0, helpers_1.isSet)(object.recipient))\n obj.recipient = String(object.recipient);\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.recipient !== undefined && (obj.recipient = message.recipient);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCommunityPoolSpendProposal();\n message.title = object.title ?? \"\";\n message.description = object.description ?? \"\";\n message.recipient = object.recipient ?? \"\";\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseDelegatorStartingInfo() {\n return {\n previousPeriod: BigInt(0),\n stake: \"\",\n height: BigInt(0),\n };\n}\nexports.DelegatorStartingInfo = {\n typeUrl: \"/cosmos.distribution.v1beta1.DelegatorStartingInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.previousPeriod !== BigInt(0)) {\n writer.uint32(8).uint64(message.previousPeriod);\n }\n if (message.stake !== \"\") {\n writer.uint32(18).string(message.stake);\n }\n if (message.height !== BigInt(0)) {\n writer.uint32(24).uint64(message.height);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDelegatorStartingInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.previousPeriod = reader.uint64();\n break;\n case 2:\n message.stake = reader.string();\n break;\n case 3:\n message.height = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDelegatorStartingInfo();\n if ((0, helpers_1.isSet)(object.previousPeriod))\n obj.previousPeriod = BigInt(object.previousPeriod.toString());\n if ((0, helpers_1.isSet)(object.stake))\n obj.stake = String(object.stake);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.previousPeriod !== undefined &&\n (obj.previousPeriod = (message.previousPeriod || BigInt(0)).toString());\n message.stake !== undefined && (obj.stake = message.stake);\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDelegatorStartingInfo();\n if (object.previousPeriod !== undefined && object.previousPeriod !== null) {\n message.previousPeriod = BigInt(object.previousPeriod.toString());\n }\n message.stake = object.stake ?? \"\";\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n return message;\n },\n};\nfunction createBaseDelegationDelegatorReward() {\n return {\n validatorAddress: \"\",\n reward: [],\n };\n}\nexports.DelegationDelegatorReward = {\n typeUrl: \"/cosmos.distribution.v1beta1.DelegationDelegatorReward\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n for (const v of message.reward) {\n coin_1.DecCoin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDelegationDelegatorReward();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n case 2:\n message.reward.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDelegationDelegatorReward();\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n if (Array.isArray(object?.reward))\n obj.reward = object.reward.map((e) => coin_1.DecCoin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n if (message.reward) {\n obj.reward = message.reward.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.reward = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDelegationDelegatorReward();\n message.validatorAddress = object.validatorAddress ?? \"\";\n message.reward = object.reward?.map((e) => coin_1.DecCoin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseCommunityPoolSpendProposalWithDeposit() {\n return {\n title: \"\",\n description: \"\",\n recipient: \"\",\n amount: \"\",\n deposit: \"\",\n };\n}\nexports.CommunityPoolSpendProposalWithDeposit = {\n typeUrl: \"/cosmos.distribution.v1beta1.CommunityPoolSpendProposalWithDeposit\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.recipient !== \"\") {\n writer.uint32(26).string(message.recipient);\n }\n if (message.amount !== \"\") {\n writer.uint32(34).string(message.amount);\n }\n if (message.deposit !== \"\") {\n writer.uint32(42).string(message.deposit);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCommunityPoolSpendProposalWithDeposit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.recipient = reader.string();\n break;\n case 4:\n message.amount = reader.string();\n break;\n case 5:\n message.deposit = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCommunityPoolSpendProposalWithDeposit();\n if ((0, helpers_1.isSet)(object.title))\n obj.title = String(object.title);\n if ((0, helpers_1.isSet)(object.description))\n obj.description = String(object.description);\n if ((0, helpers_1.isSet)(object.recipient))\n obj.recipient = String(object.recipient);\n if ((0, helpers_1.isSet)(object.amount))\n obj.amount = String(object.amount);\n if ((0, helpers_1.isSet)(object.deposit))\n obj.deposit = String(object.deposit);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.recipient !== undefined && (obj.recipient = message.recipient);\n message.amount !== undefined && (obj.amount = message.amount);\n message.deposit !== undefined && (obj.deposit = message.deposit);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCommunityPoolSpendProposalWithDeposit();\n message.title = object.title ?? \"\";\n message.description = object.description ?? \"\";\n message.recipient = object.recipient ?? \"\";\n message.amount = object.amount ?? \"\";\n message.deposit = object.deposit ?? \"\";\n return message;\n },\n};\n//# sourceMappingURL=distribution.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryCommunityPoolResponse = exports.QueryCommunityPoolRequest = exports.QueryDelegatorWithdrawAddressResponse = exports.QueryDelegatorWithdrawAddressRequest = exports.QueryDelegatorValidatorsResponse = exports.QueryDelegatorValidatorsRequest = exports.QueryDelegationTotalRewardsResponse = exports.QueryDelegationTotalRewardsRequest = exports.QueryDelegationRewardsResponse = exports.QueryDelegationRewardsRequest = exports.QueryValidatorSlashesResponse = exports.QueryValidatorSlashesRequest = exports.QueryValidatorCommissionResponse = exports.QueryValidatorCommissionRequest = exports.QueryValidatorOutstandingRewardsResponse = exports.QueryValidatorOutstandingRewardsRequest = exports.QueryValidatorDistributionInfoResponse = exports.QueryValidatorDistributionInfoRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst pagination_1 = require(\"../../base/query/v1beta1/pagination\");\nconst distribution_1 = require(\"./distribution\");\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.distribution.v1beta1\";\nfunction createBaseQueryParamsRequest() {\n return {};\n}\nexports.QueryParamsRequest = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryParamsRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryParamsRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryParamsRequest();\n return message;\n },\n};\nfunction createBaseQueryParamsResponse() {\n return {\n params: distribution_1.Params.fromPartial({}),\n };\n}\nexports.QueryParamsResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryParamsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.params !== undefined) {\n distribution_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = distribution_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryParamsResponse();\n if ((0, helpers_1.isSet)(object.params))\n obj.params = distribution_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? distribution_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryParamsResponse();\n if (object.params !== undefined && object.params !== null) {\n message.params = distribution_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nfunction createBaseQueryValidatorDistributionInfoRequest() {\n return {\n validatorAddress: \"\",\n };\n}\nexports.QueryValidatorDistributionInfoRequest = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryValidatorDistributionInfoRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorDistributionInfoRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorDistributionInfoRequest();\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorDistributionInfoRequest();\n message.validatorAddress = object.validatorAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryValidatorDistributionInfoResponse() {\n return {\n operatorAddress: \"\",\n selfBondRewards: [],\n commission: [],\n };\n}\nexports.QueryValidatorDistributionInfoResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryValidatorDistributionInfoResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.operatorAddress !== \"\") {\n writer.uint32(10).string(message.operatorAddress);\n }\n for (const v of message.selfBondRewards) {\n coin_1.DecCoin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.commission) {\n coin_1.DecCoin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorDistributionInfoResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.operatorAddress = reader.string();\n break;\n case 2:\n message.selfBondRewards.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n case 3:\n message.commission.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorDistributionInfoResponse();\n if ((0, helpers_1.isSet)(object.operatorAddress))\n obj.operatorAddress = String(object.operatorAddress);\n if (Array.isArray(object?.selfBondRewards))\n obj.selfBondRewards = object.selfBondRewards.map((e) => coin_1.DecCoin.fromJSON(e));\n if (Array.isArray(object?.commission))\n obj.commission = object.commission.map((e) => coin_1.DecCoin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.operatorAddress !== undefined && (obj.operatorAddress = message.operatorAddress);\n if (message.selfBondRewards) {\n obj.selfBondRewards = message.selfBondRewards.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.selfBondRewards = [];\n }\n if (message.commission) {\n obj.commission = message.commission.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.commission = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorDistributionInfoResponse();\n message.operatorAddress = object.operatorAddress ?? \"\";\n message.selfBondRewards = object.selfBondRewards?.map((e) => coin_1.DecCoin.fromPartial(e)) || [];\n message.commission = object.commission?.map((e) => coin_1.DecCoin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseQueryValidatorOutstandingRewardsRequest() {\n return {\n validatorAddress: \"\",\n };\n}\nexports.QueryValidatorOutstandingRewardsRequest = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryValidatorOutstandingRewardsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorOutstandingRewardsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorOutstandingRewardsRequest();\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorOutstandingRewardsRequest();\n message.validatorAddress = object.validatorAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryValidatorOutstandingRewardsResponse() {\n return {\n rewards: distribution_1.ValidatorOutstandingRewards.fromPartial({}),\n };\n}\nexports.QueryValidatorOutstandingRewardsResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryValidatorOutstandingRewardsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.rewards !== undefined) {\n distribution_1.ValidatorOutstandingRewards.encode(message.rewards, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorOutstandingRewardsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards = distribution_1.ValidatorOutstandingRewards.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorOutstandingRewardsResponse();\n if ((0, helpers_1.isSet)(object.rewards))\n obj.rewards = distribution_1.ValidatorOutstandingRewards.fromJSON(object.rewards);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.rewards !== undefined &&\n (obj.rewards = message.rewards ? distribution_1.ValidatorOutstandingRewards.toJSON(message.rewards) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorOutstandingRewardsResponse();\n if (object.rewards !== undefined && object.rewards !== null) {\n message.rewards = distribution_1.ValidatorOutstandingRewards.fromPartial(object.rewards);\n }\n return message;\n },\n};\nfunction createBaseQueryValidatorCommissionRequest() {\n return {\n validatorAddress: \"\",\n };\n}\nexports.QueryValidatorCommissionRequest = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryValidatorCommissionRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorCommissionRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorCommissionRequest();\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorCommissionRequest();\n message.validatorAddress = object.validatorAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryValidatorCommissionResponse() {\n return {\n commission: distribution_1.ValidatorAccumulatedCommission.fromPartial({}),\n };\n}\nexports.QueryValidatorCommissionResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryValidatorCommissionResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.commission !== undefined) {\n distribution_1.ValidatorAccumulatedCommission.encode(message.commission, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorCommissionResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commission = distribution_1.ValidatorAccumulatedCommission.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorCommissionResponse();\n if ((0, helpers_1.isSet)(object.commission))\n obj.commission = distribution_1.ValidatorAccumulatedCommission.fromJSON(object.commission);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.commission !== undefined &&\n (obj.commission = message.commission\n ? distribution_1.ValidatorAccumulatedCommission.toJSON(message.commission)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorCommissionResponse();\n if (object.commission !== undefined && object.commission !== null) {\n message.commission = distribution_1.ValidatorAccumulatedCommission.fromPartial(object.commission);\n }\n return message;\n },\n};\nfunction createBaseQueryValidatorSlashesRequest() {\n return {\n validatorAddress: \"\",\n startingHeight: BigInt(0),\n endingHeight: BigInt(0),\n pagination: undefined,\n };\n}\nexports.QueryValidatorSlashesRequest = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryValidatorSlashesRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n if (message.startingHeight !== BigInt(0)) {\n writer.uint32(16).uint64(message.startingHeight);\n }\n if (message.endingHeight !== BigInt(0)) {\n writer.uint32(24).uint64(message.endingHeight);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorSlashesRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n case 2:\n message.startingHeight = reader.uint64();\n break;\n case 3:\n message.endingHeight = reader.uint64();\n break;\n case 4:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorSlashesRequest();\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n if ((0, helpers_1.isSet)(object.startingHeight))\n obj.startingHeight = BigInt(object.startingHeight.toString());\n if ((0, helpers_1.isSet)(object.endingHeight))\n obj.endingHeight = BigInt(object.endingHeight.toString());\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.startingHeight !== undefined &&\n (obj.startingHeight = (message.startingHeight || BigInt(0)).toString());\n message.endingHeight !== undefined && (obj.endingHeight = (message.endingHeight || BigInt(0)).toString());\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorSlashesRequest();\n message.validatorAddress = object.validatorAddress ?? \"\";\n if (object.startingHeight !== undefined && object.startingHeight !== null) {\n message.startingHeight = BigInt(object.startingHeight.toString());\n }\n if (object.endingHeight !== undefined && object.endingHeight !== null) {\n message.endingHeight = BigInt(object.endingHeight.toString());\n }\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryValidatorSlashesResponse() {\n return {\n slashes: [],\n pagination: undefined,\n };\n}\nexports.QueryValidatorSlashesResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryValidatorSlashesResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.slashes) {\n distribution_1.ValidatorSlashEvent.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorSlashesResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.slashes.push(distribution_1.ValidatorSlashEvent.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorSlashesResponse();\n if (Array.isArray(object?.slashes))\n obj.slashes = object.slashes.map((e) => distribution_1.ValidatorSlashEvent.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.slashes) {\n obj.slashes = message.slashes.map((e) => (e ? distribution_1.ValidatorSlashEvent.toJSON(e) : undefined));\n }\n else {\n obj.slashes = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorSlashesResponse();\n message.slashes = object.slashes?.map((e) => distribution_1.ValidatorSlashEvent.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDelegationRewardsRequest() {\n return {\n delegatorAddress: \"\",\n validatorAddress: \"\",\n };\n}\nexports.QueryDelegationRewardsRequest = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryDelegationRewardsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegationRewardsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegationRewardsRequest();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegationRewardsRequest();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryDelegationRewardsResponse() {\n return {\n rewards: [],\n };\n}\nexports.QueryDelegationRewardsResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryDelegationRewardsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.rewards) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegationRewardsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegationRewardsResponse();\n if (Array.isArray(object?.rewards))\n obj.rewards = object.rewards.map((e) => coin_1.DecCoin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.rewards) {\n obj.rewards = message.rewards.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.rewards = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegationRewardsResponse();\n message.rewards = object.rewards?.map((e) => coin_1.DecCoin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseQueryDelegationTotalRewardsRequest() {\n return {\n delegatorAddress: \"\",\n };\n}\nexports.QueryDelegationTotalRewardsRequest = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryDelegationTotalRewardsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegationTotalRewardsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegationTotalRewardsRequest();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegationTotalRewardsRequest();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryDelegationTotalRewardsResponse() {\n return {\n rewards: [],\n total: [],\n };\n}\nexports.QueryDelegationTotalRewardsResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryDelegationTotalRewardsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.rewards) {\n distribution_1.DelegationDelegatorReward.encode(v, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.total) {\n coin_1.DecCoin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegationTotalRewardsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards.push(distribution_1.DelegationDelegatorReward.decode(reader, reader.uint32()));\n break;\n case 2:\n message.total.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegationTotalRewardsResponse();\n if (Array.isArray(object?.rewards))\n obj.rewards = object.rewards.map((e) => distribution_1.DelegationDelegatorReward.fromJSON(e));\n if (Array.isArray(object?.total))\n obj.total = object.total.map((e) => coin_1.DecCoin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.rewards) {\n obj.rewards = message.rewards.map((e) => (e ? distribution_1.DelegationDelegatorReward.toJSON(e) : undefined));\n }\n else {\n obj.rewards = [];\n }\n if (message.total) {\n obj.total = message.total.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.total = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegationTotalRewardsResponse();\n message.rewards = object.rewards?.map((e) => distribution_1.DelegationDelegatorReward.fromPartial(e)) || [];\n message.total = object.total?.map((e) => coin_1.DecCoin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseQueryDelegatorValidatorsRequest() {\n return {\n delegatorAddress: \"\",\n };\n}\nexports.QueryDelegatorValidatorsRequest = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryDelegatorValidatorsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorValidatorsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorValidatorsRequest();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorValidatorsRequest();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryDelegatorValidatorsResponse() {\n return {\n validators: [],\n };\n}\nexports.QueryDelegatorValidatorsResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryDelegatorValidatorsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.validators) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorValidatorsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validators.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorValidatorsResponse();\n if (Array.isArray(object?.validators))\n obj.validators = object.validators.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.validators) {\n obj.validators = message.validators.map((e) => e);\n }\n else {\n obj.validators = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorValidatorsResponse();\n message.validators = object.validators?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseQueryDelegatorWithdrawAddressRequest() {\n return {\n delegatorAddress: \"\",\n };\n}\nexports.QueryDelegatorWithdrawAddressRequest = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryDelegatorWithdrawAddressRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorWithdrawAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorWithdrawAddressRequest();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorWithdrawAddressRequest();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryDelegatorWithdrawAddressResponse() {\n return {\n withdrawAddress: \"\",\n };\n}\nexports.QueryDelegatorWithdrawAddressResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryDelegatorWithdrawAddressResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.withdrawAddress !== \"\") {\n writer.uint32(10).string(message.withdrawAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorWithdrawAddressResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.withdrawAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorWithdrawAddressResponse();\n if ((0, helpers_1.isSet)(object.withdrawAddress))\n obj.withdrawAddress = String(object.withdrawAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.withdrawAddress !== undefined && (obj.withdrawAddress = message.withdrawAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorWithdrawAddressResponse();\n message.withdrawAddress = object.withdrawAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryCommunityPoolRequest() {\n return {};\n}\nexports.QueryCommunityPoolRequest = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryCommunityPoolRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryCommunityPoolRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryCommunityPoolRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryCommunityPoolRequest();\n return message;\n },\n};\nfunction createBaseQueryCommunityPoolResponse() {\n return {\n pool: [],\n };\n}\nexports.QueryCommunityPoolResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.QueryCommunityPoolResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.pool) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryCommunityPoolResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pool.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryCommunityPoolResponse();\n if (Array.isArray(object?.pool))\n obj.pool = object.pool.map((e) => coin_1.DecCoin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.pool) {\n obj.pool = message.pool.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.pool = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryCommunityPoolResponse();\n message.pool = object.pool?.map((e) => coin_1.DecCoin.fromPartial(e)) || [];\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Params = this.Params.bind(this);\n this.ValidatorDistributionInfo = this.ValidatorDistributionInfo.bind(this);\n this.ValidatorOutstandingRewards = this.ValidatorOutstandingRewards.bind(this);\n this.ValidatorCommission = this.ValidatorCommission.bind(this);\n this.ValidatorSlashes = this.ValidatorSlashes.bind(this);\n this.DelegationRewards = this.DelegationRewards.bind(this);\n this.DelegationTotalRewards = this.DelegationTotalRewards.bind(this);\n this.DelegatorValidators = this.DelegatorValidators.bind(this);\n this.DelegatorWithdrawAddress = this.DelegatorWithdrawAddress.bind(this);\n this.CommunityPool = this.CommunityPool.bind(this);\n }\n Params(request = {}) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n ValidatorDistributionInfo(request) {\n const data = exports.QueryValidatorDistributionInfoRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"ValidatorDistributionInfo\", data);\n return promise.then((data) => exports.QueryValidatorDistributionInfoResponse.decode(new binary_1.BinaryReader(data)));\n }\n ValidatorOutstandingRewards(request) {\n const data = exports.QueryValidatorOutstandingRewardsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"ValidatorOutstandingRewards\", data);\n return promise.then((data) => exports.QueryValidatorOutstandingRewardsResponse.decode(new binary_1.BinaryReader(data)));\n }\n ValidatorCommission(request) {\n const data = exports.QueryValidatorCommissionRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"ValidatorCommission\", data);\n return promise.then((data) => exports.QueryValidatorCommissionResponse.decode(new binary_1.BinaryReader(data)));\n }\n ValidatorSlashes(request) {\n const data = exports.QueryValidatorSlashesRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"ValidatorSlashes\", data);\n return promise.then((data) => exports.QueryValidatorSlashesResponse.decode(new binary_1.BinaryReader(data)));\n }\n DelegationRewards(request) {\n const data = exports.QueryDelegationRewardsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"DelegationRewards\", data);\n return promise.then((data) => exports.QueryDelegationRewardsResponse.decode(new binary_1.BinaryReader(data)));\n }\n DelegationTotalRewards(request) {\n const data = exports.QueryDelegationTotalRewardsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"DelegationTotalRewards\", data);\n return promise.then((data) => exports.QueryDelegationTotalRewardsResponse.decode(new binary_1.BinaryReader(data)));\n }\n DelegatorValidators(request) {\n const data = exports.QueryDelegatorValidatorsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"DelegatorValidators\", data);\n return promise.then((data) => exports.QueryDelegatorValidatorsResponse.decode(new binary_1.BinaryReader(data)));\n }\n DelegatorWithdrawAddress(request) {\n const data = exports.QueryDelegatorWithdrawAddressRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"DelegatorWithdrawAddress\", data);\n return promise.then((data) => exports.QueryDelegatorWithdrawAddressResponse.decode(new binary_1.BinaryReader(data)));\n }\n CommunityPool(request = {}) {\n const data = exports.QueryCommunityPoolRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"CommunityPool\", data);\n return promise.then((data) => exports.QueryCommunityPoolResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgCommunityPoolSpendResponse = exports.MsgCommunityPoolSpend = exports.MsgUpdateParamsResponse = exports.MsgUpdateParams = exports.MsgFundCommunityPoolResponse = exports.MsgFundCommunityPool = exports.MsgWithdrawValidatorCommissionResponse = exports.MsgWithdrawValidatorCommission = exports.MsgWithdrawDelegatorRewardResponse = exports.MsgWithdrawDelegatorReward = exports.MsgSetWithdrawAddressResponse = exports.MsgSetWithdrawAddress = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst distribution_1 = require(\"./distribution\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.distribution.v1beta1\";\nfunction createBaseMsgSetWithdrawAddress() {\n return {\n delegatorAddress: \"\",\n withdrawAddress: \"\",\n };\n}\nexports.MsgSetWithdrawAddress = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgSetWithdrawAddress\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.withdrawAddress !== \"\") {\n writer.uint32(18).string(message.withdrawAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSetWithdrawAddress();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.withdrawAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgSetWithdrawAddress();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.withdrawAddress))\n obj.withdrawAddress = String(object.withdrawAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.withdrawAddress !== undefined && (obj.withdrawAddress = message.withdrawAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgSetWithdrawAddress();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.withdrawAddress = object.withdrawAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgSetWithdrawAddressResponse() {\n return {};\n}\nexports.MsgSetWithdrawAddressResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgSetWithdrawAddressResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSetWithdrawAddressResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgSetWithdrawAddressResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgSetWithdrawAddressResponse();\n return message;\n },\n};\nfunction createBaseMsgWithdrawDelegatorReward() {\n return {\n delegatorAddress: \"\",\n validatorAddress: \"\",\n };\n}\nexports.MsgWithdrawDelegatorReward = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgWithdrawDelegatorReward();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgWithdrawDelegatorReward();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgWithdrawDelegatorReward();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgWithdrawDelegatorRewardResponse() {\n return {\n amount: [],\n };\n}\nexports.MsgWithdrawDelegatorRewardResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorRewardResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgWithdrawDelegatorRewardResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgWithdrawDelegatorRewardResponse();\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgWithdrawDelegatorRewardResponse();\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgWithdrawValidatorCommission() {\n return {\n validatorAddress: \"\",\n };\n}\nexports.MsgWithdrawValidatorCommission = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgWithdrawValidatorCommission();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgWithdrawValidatorCommission();\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgWithdrawValidatorCommission();\n message.validatorAddress = object.validatorAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgWithdrawValidatorCommissionResponse() {\n return {\n amount: [],\n };\n}\nexports.MsgWithdrawValidatorCommissionResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommissionResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgWithdrawValidatorCommissionResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgWithdrawValidatorCommissionResponse();\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgWithdrawValidatorCommissionResponse();\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgFundCommunityPool() {\n return {\n amount: [],\n depositor: \"\",\n };\n}\nexports.MsgFundCommunityPool = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgFundCommunityPool\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgFundCommunityPool();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.depositor = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgFundCommunityPool();\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.depositor))\n obj.depositor = String(object.depositor);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n message.depositor !== undefined && (obj.depositor = message.depositor);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgFundCommunityPool();\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n message.depositor = object.depositor ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgFundCommunityPoolResponse() {\n return {};\n}\nexports.MsgFundCommunityPoolResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgFundCommunityPoolResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgFundCommunityPoolResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgFundCommunityPoolResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgFundCommunityPoolResponse();\n return message;\n },\n};\nfunction createBaseMsgUpdateParams() {\n return {\n authority: \"\",\n params: distribution_1.Params.fromPartial({}),\n };\n}\nexports.MsgUpdateParams = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgUpdateParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.authority !== \"\") {\n writer.uint32(10).string(message.authority);\n }\n if (message.params !== undefined) {\n distribution_1.Params.encode(message.params, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.authority = reader.string();\n break;\n case 2:\n message.params = distribution_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpdateParams();\n if ((0, helpers_1.isSet)(object.authority))\n obj.authority = String(object.authority);\n if ((0, helpers_1.isSet)(object.params))\n obj.params = distribution_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.authority !== undefined && (obj.authority = message.authority);\n message.params !== undefined && (obj.params = message.params ? distribution_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpdateParams();\n message.authority = object.authority ?? \"\";\n if (object.params !== undefined && object.params !== null) {\n message.params = distribution_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nfunction createBaseMsgUpdateParamsResponse() {\n return {};\n}\nexports.MsgUpdateParamsResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgUpdateParamsResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpdateParamsResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpdateParamsResponse();\n return message;\n },\n};\nfunction createBaseMsgCommunityPoolSpend() {\n return {\n authority: \"\",\n recipient: \"\",\n amount: [],\n };\n}\nexports.MsgCommunityPoolSpend = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgCommunityPoolSpend\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.authority !== \"\") {\n writer.uint32(10).string(message.authority);\n }\n if (message.recipient !== \"\") {\n writer.uint32(18).string(message.recipient);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCommunityPoolSpend();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.authority = reader.string();\n break;\n case 2:\n message.recipient = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCommunityPoolSpend();\n if ((0, helpers_1.isSet)(object.authority))\n obj.authority = String(object.authority);\n if ((0, helpers_1.isSet)(object.recipient))\n obj.recipient = String(object.recipient);\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.authority !== undefined && (obj.authority = message.authority);\n message.recipient !== undefined && (obj.recipient = message.recipient);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCommunityPoolSpend();\n message.authority = object.authority ?? \"\";\n message.recipient = object.recipient ?? \"\";\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgCommunityPoolSpendResponse() {\n return {};\n}\nexports.MsgCommunityPoolSpendResponse = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgCommunityPoolSpendResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCommunityPoolSpendResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgCommunityPoolSpendResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgCommunityPoolSpendResponse();\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.SetWithdrawAddress = this.SetWithdrawAddress.bind(this);\n this.WithdrawDelegatorReward = this.WithdrawDelegatorReward.bind(this);\n this.WithdrawValidatorCommission = this.WithdrawValidatorCommission.bind(this);\n this.FundCommunityPool = this.FundCommunityPool.bind(this);\n this.UpdateParams = this.UpdateParams.bind(this);\n this.CommunityPoolSpend = this.CommunityPoolSpend.bind(this);\n }\n SetWithdrawAddress(request) {\n const data = exports.MsgSetWithdrawAddress.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"SetWithdrawAddress\", data);\n return promise.then((data) => exports.MsgSetWithdrawAddressResponse.decode(new binary_1.BinaryReader(data)));\n }\n WithdrawDelegatorReward(request) {\n const data = exports.MsgWithdrawDelegatorReward.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"WithdrawDelegatorReward\", data);\n return promise.then((data) => exports.MsgWithdrawDelegatorRewardResponse.decode(new binary_1.BinaryReader(data)));\n }\n WithdrawValidatorCommission(request) {\n const data = exports.MsgWithdrawValidatorCommission.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"WithdrawValidatorCommission\", data);\n return promise.then((data) => exports.MsgWithdrawValidatorCommissionResponse.decode(new binary_1.BinaryReader(data)));\n }\n FundCommunityPool(request) {\n const data = exports.MsgFundCommunityPool.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"FundCommunityPool\", data);\n return promise.then((data) => exports.MsgFundCommunityPoolResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpdateParams(request) {\n const data = exports.MsgUpdateParams.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"UpdateParams\", data);\n return promise.then((data) => exports.MsgUpdateParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n CommunityPoolSpend(request) {\n const data = exports.MsgCommunityPoolSpend.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"CommunityPoolSpend\", data);\n return promise.then((data) => exports.MsgCommunityPoolSpendResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Grant = exports.AllowedMsgAllowance = exports.PeriodicAllowance = exports.BasicAllowance = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst duration_1 = require(\"../../../google/protobuf/duration\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.feegrant.v1beta1\";\nfunction createBaseBasicAllowance() {\n return {\n spendLimit: [],\n expiration: undefined,\n };\n}\nexports.BasicAllowance = {\n typeUrl: \"/cosmos.feegrant.v1beta1.BasicAllowance\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.spendLimit) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.expiration !== undefined) {\n timestamp_1.Timestamp.encode(message.expiration, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBasicAllowance();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.spendLimit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.expiration = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBasicAllowance();\n if (Array.isArray(object?.spendLimit))\n obj.spendLimit = object.spendLimit.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.expiration))\n obj.expiration = (0, helpers_1.fromJsonTimestamp)(object.expiration);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.spendLimit) {\n obj.spendLimit = message.spendLimit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.spendLimit = [];\n }\n message.expiration !== undefined && (obj.expiration = (0, helpers_1.fromTimestamp)(message.expiration).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBasicAllowance();\n message.spendLimit = object.spendLimit?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.expiration !== undefined && object.expiration !== null) {\n message.expiration = timestamp_1.Timestamp.fromPartial(object.expiration);\n }\n return message;\n },\n};\nfunction createBasePeriodicAllowance() {\n return {\n basic: exports.BasicAllowance.fromPartial({}),\n period: duration_1.Duration.fromPartial({}),\n periodSpendLimit: [],\n periodCanSpend: [],\n periodReset: timestamp_1.Timestamp.fromPartial({}),\n };\n}\nexports.PeriodicAllowance = {\n typeUrl: \"/cosmos.feegrant.v1beta1.PeriodicAllowance\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.basic !== undefined) {\n exports.BasicAllowance.encode(message.basic, writer.uint32(10).fork()).ldelim();\n }\n if (message.period !== undefined) {\n duration_1.Duration.encode(message.period, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.periodSpendLimit) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.periodCanSpend) {\n coin_1.Coin.encode(v, writer.uint32(34).fork()).ldelim();\n }\n if (message.periodReset !== undefined) {\n timestamp_1.Timestamp.encode(message.periodReset, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePeriodicAllowance();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.basic = exports.BasicAllowance.decode(reader, reader.uint32());\n break;\n case 2:\n message.period = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 3:\n message.periodSpendLimit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 4:\n message.periodCanSpend.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 5:\n message.periodReset = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePeriodicAllowance();\n if ((0, helpers_1.isSet)(object.basic))\n obj.basic = exports.BasicAllowance.fromJSON(object.basic);\n if ((0, helpers_1.isSet)(object.period))\n obj.period = duration_1.Duration.fromJSON(object.period);\n if (Array.isArray(object?.periodSpendLimit))\n obj.periodSpendLimit = object.periodSpendLimit.map((e) => coin_1.Coin.fromJSON(e));\n if (Array.isArray(object?.periodCanSpend))\n obj.periodCanSpend = object.periodCanSpend.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.periodReset))\n obj.periodReset = (0, helpers_1.fromJsonTimestamp)(object.periodReset);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.basic !== undefined &&\n (obj.basic = message.basic ? exports.BasicAllowance.toJSON(message.basic) : undefined);\n message.period !== undefined &&\n (obj.period = message.period ? duration_1.Duration.toJSON(message.period) : undefined);\n if (message.periodSpendLimit) {\n obj.periodSpendLimit = message.periodSpendLimit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.periodSpendLimit = [];\n }\n if (message.periodCanSpend) {\n obj.periodCanSpend = message.periodCanSpend.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.periodCanSpend = [];\n }\n message.periodReset !== undefined && (obj.periodReset = (0, helpers_1.fromTimestamp)(message.periodReset).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBasePeriodicAllowance();\n if (object.basic !== undefined && object.basic !== null) {\n message.basic = exports.BasicAllowance.fromPartial(object.basic);\n }\n if (object.period !== undefined && object.period !== null) {\n message.period = duration_1.Duration.fromPartial(object.period);\n }\n message.periodSpendLimit = object.periodSpendLimit?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n message.periodCanSpend = object.periodCanSpend?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.periodReset !== undefined && object.periodReset !== null) {\n message.periodReset = timestamp_1.Timestamp.fromPartial(object.periodReset);\n }\n return message;\n },\n};\nfunction createBaseAllowedMsgAllowance() {\n return {\n allowance: undefined,\n allowedMessages: [],\n };\n}\nexports.AllowedMsgAllowance = {\n typeUrl: \"/cosmos.feegrant.v1beta1.AllowedMsgAllowance\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.allowance !== undefined) {\n any_1.Any.encode(message.allowance, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.allowedMessages) {\n writer.uint32(18).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAllowedMsgAllowance();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.allowance = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.allowedMessages.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseAllowedMsgAllowance();\n if ((0, helpers_1.isSet)(object.allowance))\n obj.allowance = any_1.Any.fromJSON(object.allowance);\n if (Array.isArray(object?.allowedMessages))\n obj.allowedMessages = object.allowedMessages.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.allowance !== undefined &&\n (obj.allowance = message.allowance ? any_1.Any.toJSON(message.allowance) : undefined);\n if (message.allowedMessages) {\n obj.allowedMessages = message.allowedMessages.map((e) => e);\n }\n else {\n obj.allowedMessages = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseAllowedMsgAllowance();\n if (object.allowance !== undefined && object.allowance !== null) {\n message.allowance = any_1.Any.fromPartial(object.allowance);\n }\n message.allowedMessages = object.allowedMessages?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseGrant() {\n return {\n granter: \"\",\n grantee: \"\",\n allowance: undefined,\n };\n}\nexports.Grant = {\n typeUrl: \"/cosmos.feegrant.v1beta1.Grant\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.allowance !== undefined) {\n any_1.Any.encode(message.allowance, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGrant();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.allowance = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGrant();\n if ((0, helpers_1.isSet)(object.granter))\n obj.granter = String(object.granter);\n if ((0, helpers_1.isSet)(object.grantee))\n obj.grantee = String(object.grantee);\n if ((0, helpers_1.isSet)(object.allowance))\n obj.allowance = any_1.Any.fromJSON(object.allowance);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.allowance !== undefined &&\n (obj.allowance = message.allowance ? any_1.Any.toJSON(message.allowance) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGrant();\n message.granter = object.granter ?? \"\";\n message.grantee = object.grantee ?? \"\";\n if (object.allowance !== undefined && object.allowance !== null) {\n message.allowance = any_1.Any.fromPartial(object.allowance);\n }\n return message;\n },\n};\n//# sourceMappingURL=feegrant.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryAllowancesByGranterResponse = exports.QueryAllowancesByGranterRequest = exports.QueryAllowancesResponse = exports.QueryAllowancesRequest = exports.QueryAllowanceResponse = exports.QueryAllowanceRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst pagination_1 = require(\"../../base/query/v1beta1/pagination\");\nconst feegrant_1 = require(\"./feegrant\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.feegrant.v1beta1\";\nfunction createBaseQueryAllowanceRequest() {\n return {\n granter: \"\",\n grantee: \"\",\n };\n}\nexports.QueryAllowanceRequest = {\n typeUrl: \"/cosmos.feegrant.v1beta1.QueryAllowanceRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllowanceRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAllowanceRequest();\n if ((0, helpers_1.isSet)(object.granter))\n obj.granter = String(object.granter);\n if ((0, helpers_1.isSet)(object.grantee))\n obj.grantee = String(object.grantee);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAllowanceRequest();\n message.granter = object.granter ?? \"\";\n message.grantee = object.grantee ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryAllowanceResponse() {\n return {\n allowance: undefined,\n };\n}\nexports.QueryAllowanceResponse = {\n typeUrl: \"/cosmos.feegrant.v1beta1.QueryAllowanceResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.allowance !== undefined) {\n feegrant_1.Grant.encode(message.allowance, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllowanceResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.allowance = feegrant_1.Grant.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAllowanceResponse();\n if ((0, helpers_1.isSet)(object.allowance))\n obj.allowance = feegrant_1.Grant.fromJSON(object.allowance);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.allowance !== undefined &&\n (obj.allowance = message.allowance ? feegrant_1.Grant.toJSON(message.allowance) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAllowanceResponse();\n if (object.allowance !== undefined && object.allowance !== null) {\n message.allowance = feegrant_1.Grant.fromPartial(object.allowance);\n }\n return message;\n },\n};\nfunction createBaseQueryAllowancesRequest() {\n return {\n grantee: \"\",\n pagination: undefined,\n };\n}\nexports.QueryAllowancesRequest = {\n typeUrl: \"/cosmos.feegrant.v1beta1.QueryAllowancesRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.grantee !== \"\") {\n writer.uint32(10).string(message.grantee);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllowancesRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.grantee = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAllowancesRequest();\n if ((0, helpers_1.isSet)(object.grantee))\n obj.grantee = String(object.grantee);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAllowancesRequest();\n message.grantee = object.grantee ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryAllowancesResponse() {\n return {\n allowances: [],\n pagination: undefined,\n };\n}\nexports.QueryAllowancesResponse = {\n typeUrl: \"/cosmos.feegrant.v1beta1.QueryAllowancesResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.allowances) {\n feegrant_1.Grant.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllowancesResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.allowances.push(feegrant_1.Grant.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAllowancesResponse();\n if (Array.isArray(object?.allowances))\n obj.allowances = object.allowances.map((e) => feegrant_1.Grant.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.allowances) {\n obj.allowances = message.allowances.map((e) => (e ? feegrant_1.Grant.toJSON(e) : undefined));\n }\n else {\n obj.allowances = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAllowancesResponse();\n message.allowances = object.allowances?.map((e) => feegrant_1.Grant.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryAllowancesByGranterRequest() {\n return {\n granter: \"\",\n pagination: undefined,\n };\n}\nexports.QueryAllowancesByGranterRequest = {\n typeUrl: \"/cosmos.feegrant.v1beta1.QueryAllowancesByGranterRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllowancesByGranterRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAllowancesByGranterRequest();\n if ((0, helpers_1.isSet)(object.granter))\n obj.granter = String(object.granter);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAllowancesByGranterRequest();\n message.granter = object.granter ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryAllowancesByGranterResponse() {\n return {\n allowances: [],\n pagination: undefined,\n };\n}\nexports.QueryAllowancesByGranterResponse = {\n typeUrl: \"/cosmos.feegrant.v1beta1.QueryAllowancesByGranterResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.allowances) {\n feegrant_1.Grant.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllowancesByGranterResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.allowances.push(feegrant_1.Grant.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAllowancesByGranterResponse();\n if (Array.isArray(object?.allowances))\n obj.allowances = object.allowances.map((e) => feegrant_1.Grant.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.allowances) {\n obj.allowances = message.allowances.map((e) => (e ? feegrant_1.Grant.toJSON(e) : undefined));\n }\n else {\n obj.allowances = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAllowancesByGranterResponse();\n message.allowances = object.allowances?.map((e) => feegrant_1.Grant.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Allowance = this.Allowance.bind(this);\n this.Allowances = this.Allowances.bind(this);\n this.AllowancesByGranter = this.AllowancesByGranter.bind(this);\n }\n Allowance(request) {\n const data = exports.QueryAllowanceRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.feegrant.v1beta1.Query\", \"Allowance\", data);\n return promise.then((data) => exports.QueryAllowanceResponse.decode(new binary_1.BinaryReader(data)));\n }\n Allowances(request) {\n const data = exports.QueryAllowancesRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.feegrant.v1beta1.Query\", \"Allowances\", data);\n return promise.then((data) => exports.QueryAllowancesResponse.decode(new binary_1.BinaryReader(data)));\n }\n AllowancesByGranter(request) {\n const data = exports.QueryAllowancesByGranterRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.feegrant.v1beta1.Query\", \"AllowancesByGranter\", data);\n return promise.then((data) => exports.QueryAllowancesByGranterResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgRevokeAllowanceResponse = exports.MsgRevokeAllowance = exports.MsgGrantAllowanceResponse = exports.MsgGrantAllowance = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.feegrant.v1beta1\";\nfunction createBaseMsgGrantAllowance() {\n return {\n granter: \"\",\n grantee: \"\",\n allowance: undefined,\n };\n}\nexports.MsgGrantAllowance = {\n typeUrl: \"/cosmos.feegrant.v1beta1.MsgGrantAllowance\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.allowance !== undefined) {\n any_1.Any.encode(message.allowance, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGrantAllowance();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.allowance = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgGrantAllowance();\n if ((0, helpers_1.isSet)(object.granter))\n obj.granter = String(object.granter);\n if ((0, helpers_1.isSet)(object.grantee))\n obj.grantee = String(object.grantee);\n if ((0, helpers_1.isSet)(object.allowance))\n obj.allowance = any_1.Any.fromJSON(object.allowance);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.allowance !== undefined &&\n (obj.allowance = message.allowance ? any_1.Any.toJSON(message.allowance) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgGrantAllowance();\n message.granter = object.granter ?? \"\";\n message.grantee = object.grantee ?? \"\";\n if (object.allowance !== undefined && object.allowance !== null) {\n message.allowance = any_1.Any.fromPartial(object.allowance);\n }\n return message;\n },\n};\nfunction createBaseMsgGrantAllowanceResponse() {\n return {};\n}\nexports.MsgGrantAllowanceResponse = {\n typeUrl: \"/cosmos.feegrant.v1beta1.MsgGrantAllowanceResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGrantAllowanceResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgGrantAllowanceResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgGrantAllowanceResponse();\n return message;\n },\n};\nfunction createBaseMsgRevokeAllowance() {\n return {\n granter: \"\",\n grantee: \"\",\n };\n}\nexports.MsgRevokeAllowance = {\n typeUrl: \"/cosmos.feegrant.v1beta1.MsgRevokeAllowance\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgRevokeAllowance();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgRevokeAllowance();\n if ((0, helpers_1.isSet)(object.granter))\n obj.granter = String(object.granter);\n if ((0, helpers_1.isSet)(object.grantee))\n obj.grantee = String(object.grantee);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgRevokeAllowance();\n message.granter = object.granter ?? \"\";\n message.grantee = object.grantee ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgRevokeAllowanceResponse() {\n return {};\n}\nexports.MsgRevokeAllowanceResponse = {\n typeUrl: \"/cosmos.feegrant.v1beta1.MsgRevokeAllowanceResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgRevokeAllowanceResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgRevokeAllowanceResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgRevokeAllowanceResponse();\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.GrantAllowance = this.GrantAllowance.bind(this);\n this.RevokeAllowance = this.RevokeAllowance.bind(this);\n }\n GrantAllowance(request) {\n const data = exports.MsgGrantAllowance.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.feegrant.v1beta1.Msg\", \"GrantAllowance\", data);\n return promise.then((data) => exports.MsgGrantAllowanceResponse.decode(new binary_1.BinaryReader(data)));\n }\n RevokeAllowance(request) {\n const data = exports.MsgRevokeAllowance.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.feegrant.v1beta1.Msg\", \"RevokeAllowance\", data);\n return promise.then((data) => exports.MsgRevokeAllowanceResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.TallyParams = exports.VotingParams = exports.DepositParams = exports.Vote = exports.TallyResult = exports.Proposal = exports.Deposit = exports.WeightedVoteOption = exports.proposalStatusToJSON = exports.proposalStatusFromJSON = exports.ProposalStatus = exports.voteOptionToJSON = exports.voteOptionFromJSON = exports.VoteOption = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst duration_1 = require(\"../../../google/protobuf/duration\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.gov.v1\";\n/** VoteOption enumerates the valid vote options for a given governance proposal. */\nvar VoteOption;\n(function (VoteOption) {\n /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_UNSPECIFIED\"] = 0] = \"VOTE_OPTION_UNSPECIFIED\";\n /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_YES\"] = 1] = \"VOTE_OPTION_YES\";\n /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_ABSTAIN\"] = 2] = \"VOTE_OPTION_ABSTAIN\";\n /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_NO\"] = 3] = \"VOTE_OPTION_NO\";\n /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_NO_WITH_VETO\"] = 4] = \"VOTE_OPTION_NO_WITH_VETO\";\n VoteOption[VoteOption[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(VoteOption || (exports.VoteOption = VoteOption = {}));\nfunction voteOptionFromJSON(object) {\n switch (object) {\n case 0:\n case \"VOTE_OPTION_UNSPECIFIED\":\n return VoteOption.VOTE_OPTION_UNSPECIFIED;\n case 1:\n case \"VOTE_OPTION_YES\":\n return VoteOption.VOTE_OPTION_YES;\n case 2:\n case \"VOTE_OPTION_ABSTAIN\":\n return VoteOption.VOTE_OPTION_ABSTAIN;\n case 3:\n case \"VOTE_OPTION_NO\":\n return VoteOption.VOTE_OPTION_NO;\n case 4:\n case \"VOTE_OPTION_NO_WITH_VETO\":\n return VoteOption.VOTE_OPTION_NO_WITH_VETO;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return VoteOption.UNRECOGNIZED;\n }\n}\nexports.voteOptionFromJSON = voteOptionFromJSON;\nfunction voteOptionToJSON(object) {\n switch (object) {\n case VoteOption.VOTE_OPTION_UNSPECIFIED:\n return \"VOTE_OPTION_UNSPECIFIED\";\n case VoteOption.VOTE_OPTION_YES:\n return \"VOTE_OPTION_YES\";\n case VoteOption.VOTE_OPTION_ABSTAIN:\n return \"VOTE_OPTION_ABSTAIN\";\n case VoteOption.VOTE_OPTION_NO:\n return \"VOTE_OPTION_NO\";\n case VoteOption.VOTE_OPTION_NO_WITH_VETO:\n return \"VOTE_OPTION_NO_WITH_VETO\";\n case VoteOption.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.voteOptionToJSON = voteOptionToJSON;\n/** ProposalStatus enumerates the valid statuses of a proposal. */\nvar ProposalStatus;\n(function (ProposalStatus) {\n /** PROPOSAL_STATUS_UNSPECIFIED - PROPOSAL_STATUS_UNSPECIFIED defines the default proposal status. */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_UNSPECIFIED\"] = 0] = \"PROPOSAL_STATUS_UNSPECIFIED\";\n /**\n * PROPOSAL_STATUS_DEPOSIT_PERIOD - PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit\n * period.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_DEPOSIT_PERIOD\"] = 1] = \"PROPOSAL_STATUS_DEPOSIT_PERIOD\";\n /**\n * PROPOSAL_STATUS_VOTING_PERIOD - PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting\n * period.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_VOTING_PERIOD\"] = 2] = \"PROPOSAL_STATUS_VOTING_PERIOD\";\n /**\n * PROPOSAL_STATUS_PASSED - PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has\n * passed.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_PASSED\"] = 3] = \"PROPOSAL_STATUS_PASSED\";\n /**\n * PROPOSAL_STATUS_REJECTED - PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has\n * been rejected.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_REJECTED\"] = 4] = \"PROPOSAL_STATUS_REJECTED\";\n /**\n * PROPOSAL_STATUS_FAILED - PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has\n * failed.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_FAILED\"] = 5] = \"PROPOSAL_STATUS_FAILED\";\n ProposalStatus[ProposalStatus[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ProposalStatus || (exports.ProposalStatus = ProposalStatus = {}));\nfunction proposalStatusFromJSON(object) {\n switch (object) {\n case 0:\n case \"PROPOSAL_STATUS_UNSPECIFIED\":\n return ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED;\n case 1:\n case \"PROPOSAL_STATUS_DEPOSIT_PERIOD\":\n return ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD;\n case 2:\n case \"PROPOSAL_STATUS_VOTING_PERIOD\":\n return ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD;\n case 3:\n case \"PROPOSAL_STATUS_PASSED\":\n return ProposalStatus.PROPOSAL_STATUS_PASSED;\n case 4:\n case \"PROPOSAL_STATUS_REJECTED\":\n return ProposalStatus.PROPOSAL_STATUS_REJECTED;\n case 5:\n case \"PROPOSAL_STATUS_FAILED\":\n return ProposalStatus.PROPOSAL_STATUS_FAILED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ProposalStatus.UNRECOGNIZED;\n }\n}\nexports.proposalStatusFromJSON = proposalStatusFromJSON;\nfunction proposalStatusToJSON(object) {\n switch (object) {\n case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED:\n return \"PROPOSAL_STATUS_UNSPECIFIED\";\n case ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD:\n return \"PROPOSAL_STATUS_DEPOSIT_PERIOD\";\n case ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD:\n return \"PROPOSAL_STATUS_VOTING_PERIOD\";\n case ProposalStatus.PROPOSAL_STATUS_PASSED:\n return \"PROPOSAL_STATUS_PASSED\";\n case ProposalStatus.PROPOSAL_STATUS_REJECTED:\n return \"PROPOSAL_STATUS_REJECTED\";\n case ProposalStatus.PROPOSAL_STATUS_FAILED:\n return \"PROPOSAL_STATUS_FAILED\";\n case ProposalStatus.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.proposalStatusToJSON = proposalStatusToJSON;\nfunction createBaseWeightedVoteOption() {\n return {\n option: 0,\n weight: \"\",\n };\n}\nexports.WeightedVoteOption = {\n typeUrl: \"/cosmos.gov.v1.WeightedVoteOption\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.option !== 0) {\n writer.uint32(8).int32(message.option);\n }\n if (message.weight !== \"\") {\n writer.uint32(18).string(message.weight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseWeightedVoteOption();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.option = reader.int32();\n break;\n case 2:\n message.weight = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseWeightedVoteOption();\n if ((0, helpers_1.isSet)(object.option))\n obj.option = voteOptionFromJSON(object.option);\n if ((0, helpers_1.isSet)(object.weight))\n obj.weight = String(object.weight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.option !== undefined && (obj.option = voteOptionToJSON(message.option));\n message.weight !== undefined && (obj.weight = message.weight);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseWeightedVoteOption();\n message.option = object.option ?? 0;\n message.weight = object.weight ?? \"\";\n return message;\n },\n};\nfunction createBaseDeposit() {\n return {\n proposalId: BigInt(0),\n depositor: \"\",\n amount: [],\n };\n}\nexports.Deposit = {\n typeUrl: \"/cosmos.gov.v1.Deposit\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDeposit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.depositor = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDeposit();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.depositor))\n obj.depositor = String(object.depositor);\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.depositor !== undefined && (obj.depositor = message.depositor);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDeposit();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.depositor = object.depositor ?? \"\";\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseProposal() {\n return {\n id: BigInt(0),\n messages: [],\n status: 0,\n finalTallyResult: undefined,\n submitTime: undefined,\n depositEndTime: undefined,\n totalDeposit: [],\n votingStartTime: undefined,\n votingEndTime: undefined,\n metadata: \"\",\n title: \"\",\n summary: \"\",\n proposer: \"\",\n };\n}\nexports.Proposal = {\n typeUrl: \"/cosmos.gov.v1.Proposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.id !== BigInt(0)) {\n writer.uint32(8).uint64(message.id);\n }\n for (const v of message.messages) {\n any_1.Any.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.status !== 0) {\n writer.uint32(24).int32(message.status);\n }\n if (message.finalTallyResult !== undefined) {\n exports.TallyResult.encode(message.finalTallyResult, writer.uint32(34).fork()).ldelim();\n }\n if (message.submitTime !== undefined) {\n timestamp_1.Timestamp.encode(message.submitTime, writer.uint32(42).fork()).ldelim();\n }\n if (message.depositEndTime !== undefined) {\n timestamp_1.Timestamp.encode(message.depositEndTime, writer.uint32(50).fork()).ldelim();\n }\n for (const v of message.totalDeposit) {\n coin_1.Coin.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.votingStartTime !== undefined) {\n timestamp_1.Timestamp.encode(message.votingStartTime, writer.uint32(66).fork()).ldelim();\n }\n if (message.votingEndTime !== undefined) {\n timestamp_1.Timestamp.encode(message.votingEndTime, writer.uint32(74).fork()).ldelim();\n }\n if (message.metadata !== \"\") {\n writer.uint32(82).string(message.metadata);\n }\n if (message.title !== \"\") {\n writer.uint32(90).string(message.title);\n }\n if (message.summary !== \"\") {\n writer.uint32(98).string(message.summary);\n }\n if (message.proposer !== \"\") {\n writer.uint32(106).string(message.proposer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.uint64();\n break;\n case 2:\n message.messages.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 3:\n message.status = reader.int32();\n break;\n case 4:\n message.finalTallyResult = exports.TallyResult.decode(reader, reader.uint32());\n break;\n case 5:\n message.submitTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 6:\n message.depositEndTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 7:\n message.totalDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 8:\n message.votingStartTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 9:\n message.votingEndTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 10:\n message.metadata = reader.string();\n break;\n case 11:\n message.title = reader.string();\n break;\n case 12:\n message.summary = reader.string();\n break;\n case 13:\n message.proposer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseProposal();\n if ((0, helpers_1.isSet)(object.id))\n obj.id = BigInt(object.id.toString());\n if (Array.isArray(object?.messages))\n obj.messages = object.messages.map((e) => any_1.Any.fromJSON(e));\n if ((0, helpers_1.isSet)(object.status))\n obj.status = proposalStatusFromJSON(object.status);\n if ((0, helpers_1.isSet)(object.finalTallyResult))\n obj.finalTallyResult = exports.TallyResult.fromJSON(object.finalTallyResult);\n if ((0, helpers_1.isSet)(object.submitTime))\n obj.submitTime = (0, helpers_1.fromJsonTimestamp)(object.submitTime);\n if ((0, helpers_1.isSet)(object.depositEndTime))\n obj.depositEndTime = (0, helpers_1.fromJsonTimestamp)(object.depositEndTime);\n if (Array.isArray(object?.totalDeposit))\n obj.totalDeposit = object.totalDeposit.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.votingStartTime))\n obj.votingStartTime = (0, helpers_1.fromJsonTimestamp)(object.votingStartTime);\n if ((0, helpers_1.isSet)(object.votingEndTime))\n obj.votingEndTime = (0, helpers_1.fromJsonTimestamp)(object.votingEndTime);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n if ((0, helpers_1.isSet)(object.title))\n obj.title = String(object.title);\n if ((0, helpers_1.isSet)(object.summary))\n obj.summary = String(object.summary);\n if ((0, helpers_1.isSet)(object.proposer))\n obj.proposer = String(object.proposer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.id !== undefined && (obj.id = (message.id || BigInt(0)).toString());\n if (message.messages) {\n obj.messages = message.messages.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.messages = [];\n }\n message.status !== undefined && (obj.status = proposalStatusToJSON(message.status));\n message.finalTallyResult !== undefined &&\n (obj.finalTallyResult = message.finalTallyResult\n ? exports.TallyResult.toJSON(message.finalTallyResult)\n : undefined);\n message.submitTime !== undefined && (obj.submitTime = (0, helpers_1.fromTimestamp)(message.submitTime).toISOString());\n message.depositEndTime !== undefined &&\n (obj.depositEndTime = (0, helpers_1.fromTimestamp)(message.depositEndTime).toISOString());\n if (message.totalDeposit) {\n obj.totalDeposit = message.totalDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.totalDeposit = [];\n }\n message.votingStartTime !== undefined &&\n (obj.votingStartTime = (0, helpers_1.fromTimestamp)(message.votingStartTime).toISOString());\n message.votingEndTime !== undefined &&\n (obj.votingEndTime = (0, helpers_1.fromTimestamp)(message.votingEndTime).toISOString());\n message.metadata !== undefined && (obj.metadata = message.metadata);\n message.title !== undefined && (obj.title = message.title);\n message.summary !== undefined && (obj.summary = message.summary);\n message.proposer !== undefined && (obj.proposer = message.proposer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseProposal();\n if (object.id !== undefined && object.id !== null) {\n message.id = BigInt(object.id.toString());\n }\n message.messages = object.messages?.map((e) => any_1.Any.fromPartial(e)) || [];\n message.status = object.status ?? 0;\n if (object.finalTallyResult !== undefined && object.finalTallyResult !== null) {\n message.finalTallyResult = exports.TallyResult.fromPartial(object.finalTallyResult);\n }\n if (object.submitTime !== undefined && object.submitTime !== null) {\n message.submitTime = timestamp_1.Timestamp.fromPartial(object.submitTime);\n }\n if (object.depositEndTime !== undefined && object.depositEndTime !== null) {\n message.depositEndTime = timestamp_1.Timestamp.fromPartial(object.depositEndTime);\n }\n message.totalDeposit = object.totalDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.votingStartTime !== undefined && object.votingStartTime !== null) {\n message.votingStartTime = timestamp_1.Timestamp.fromPartial(object.votingStartTime);\n }\n if (object.votingEndTime !== undefined && object.votingEndTime !== null) {\n message.votingEndTime = timestamp_1.Timestamp.fromPartial(object.votingEndTime);\n }\n message.metadata = object.metadata ?? \"\";\n message.title = object.title ?? \"\";\n message.summary = object.summary ?? \"\";\n message.proposer = object.proposer ?? \"\";\n return message;\n },\n};\nfunction createBaseTallyResult() {\n return {\n yesCount: \"\",\n abstainCount: \"\",\n noCount: \"\",\n noWithVetoCount: \"\",\n };\n}\nexports.TallyResult = {\n typeUrl: \"/cosmos.gov.v1.TallyResult\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.yesCount !== \"\") {\n writer.uint32(10).string(message.yesCount);\n }\n if (message.abstainCount !== \"\") {\n writer.uint32(18).string(message.abstainCount);\n }\n if (message.noCount !== \"\") {\n writer.uint32(26).string(message.noCount);\n }\n if (message.noWithVetoCount !== \"\") {\n writer.uint32(34).string(message.noWithVetoCount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTallyResult();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.yesCount = reader.string();\n break;\n case 2:\n message.abstainCount = reader.string();\n break;\n case 3:\n message.noCount = reader.string();\n break;\n case 4:\n message.noWithVetoCount = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTallyResult();\n if ((0, helpers_1.isSet)(object.yesCount))\n obj.yesCount = String(object.yesCount);\n if ((0, helpers_1.isSet)(object.abstainCount))\n obj.abstainCount = String(object.abstainCount);\n if ((0, helpers_1.isSet)(object.noCount))\n obj.noCount = String(object.noCount);\n if ((0, helpers_1.isSet)(object.noWithVetoCount))\n obj.noWithVetoCount = String(object.noWithVetoCount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.yesCount !== undefined && (obj.yesCount = message.yesCount);\n message.abstainCount !== undefined && (obj.abstainCount = message.abstainCount);\n message.noCount !== undefined && (obj.noCount = message.noCount);\n message.noWithVetoCount !== undefined && (obj.noWithVetoCount = message.noWithVetoCount);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTallyResult();\n message.yesCount = object.yesCount ?? \"\";\n message.abstainCount = object.abstainCount ?? \"\";\n message.noCount = object.noCount ?? \"\";\n message.noWithVetoCount = object.noWithVetoCount ?? \"\";\n return message;\n },\n};\nfunction createBaseVote() {\n return {\n proposalId: BigInt(0),\n voter: \"\",\n options: [],\n metadata: \"\",\n };\n}\nexports.Vote = {\n typeUrl: \"/cosmos.gov.v1.Vote\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n for (const v of message.options) {\n exports.WeightedVoteOption.encode(v, writer.uint32(34).fork()).ldelim();\n }\n if (message.metadata !== \"\") {\n writer.uint32(42).string(message.metadata);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVote();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 4:\n message.options.push(exports.WeightedVoteOption.decode(reader, reader.uint32()));\n break;\n case 5:\n message.metadata = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseVote();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.voter))\n obj.voter = String(object.voter);\n if (Array.isArray(object?.options))\n obj.options = object.options.map((e) => exports.WeightedVoteOption.fromJSON(e));\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n if (message.options) {\n obj.options = message.options.map((e) => (e ? exports.WeightedVoteOption.toJSON(e) : undefined));\n }\n else {\n obj.options = [];\n }\n message.metadata !== undefined && (obj.metadata = message.metadata);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseVote();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.voter = object.voter ?? \"\";\n message.options = object.options?.map((e) => exports.WeightedVoteOption.fromPartial(e)) || [];\n message.metadata = object.metadata ?? \"\";\n return message;\n },\n};\nfunction createBaseDepositParams() {\n return {\n minDeposit: [],\n maxDepositPeriod: undefined,\n };\n}\nexports.DepositParams = {\n typeUrl: \"/cosmos.gov.v1.DepositParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.minDeposit) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.maxDepositPeriod !== undefined) {\n duration_1.Duration.encode(message.maxDepositPeriod, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDepositParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.minDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.maxDepositPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDepositParams();\n if (Array.isArray(object?.minDeposit))\n obj.minDeposit = object.minDeposit.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.maxDepositPeriod))\n obj.maxDepositPeriod = duration_1.Duration.fromJSON(object.maxDepositPeriod);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.minDeposit) {\n obj.minDeposit = message.minDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.minDeposit = [];\n }\n message.maxDepositPeriod !== undefined &&\n (obj.maxDepositPeriod = message.maxDepositPeriod\n ? duration_1.Duration.toJSON(message.maxDepositPeriod)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDepositParams();\n message.minDeposit = object.minDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null) {\n message.maxDepositPeriod = duration_1.Duration.fromPartial(object.maxDepositPeriod);\n }\n return message;\n },\n};\nfunction createBaseVotingParams() {\n return {\n votingPeriod: undefined,\n };\n}\nexports.VotingParams = {\n typeUrl: \"/cosmos.gov.v1.VotingParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.votingPeriod !== undefined) {\n duration_1.Duration.encode(message.votingPeriod, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVotingParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.votingPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseVotingParams();\n if ((0, helpers_1.isSet)(object.votingPeriod))\n obj.votingPeriod = duration_1.Duration.fromJSON(object.votingPeriod);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.votingPeriod !== undefined &&\n (obj.votingPeriod = message.votingPeriod ? duration_1.Duration.toJSON(message.votingPeriod) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseVotingParams();\n if (object.votingPeriod !== undefined && object.votingPeriod !== null) {\n message.votingPeriod = duration_1.Duration.fromPartial(object.votingPeriod);\n }\n return message;\n },\n};\nfunction createBaseTallyParams() {\n return {\n quorum: \"\",\n threshold: \"\",\n vetoThreshold: \"\",\n };\n}\nexports.TallyParams = {\n typeUrl: \"/cosmos.gov.v1.TallyParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.quorum !== \"\") {\n writer.uint32(10).string(message.quorum);\n }\n if (message.threshold !== \"\") {\n writer.uint32(18).string(message.threshold);\n }\n if (message.vetoThreshold !== \"\") {\n writer.uint32(26).string(message.vetoThreshold);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTallyParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.quorum = reader.string();\n break;\n case 2:\n message.threshold = reader.string();\n break;\n case 3:\n message.vetoThreshold = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTallyParams();\n if ((0, helpers_1.isSet)(object.quorum))\n obj.quorum = String(object.quorum);\n if ((0, helpers_1.isSet)(object.threshold))\n obj.threshold = String(object.threshold);\n if ((0, helpers_1.isSet)(object.vetoThreshold))\n obj.vetoThreshold = String(object.vetoThreshold);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.quorum !== undefined && (obj.quorum = message.quorum);\n message.threshold !== undefined && (obj.threshold = message.threshold);\n message.vetoThreshold !== undefined && (obj.vetoThreshold = message.vetoThreshold);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTallyParams();\n message.quorum = object.quorum ?? \"\";\n message.threshold = object.threshold ?? \"\";\n message.vetoThreshold = object.vetoThreshold ?? \"\";\n return message;\n },\n};\nfunction createBaseParams() {\n return {\n minDeposit: [],\n maxDepositPeriod: undefined,\n votingPeriod: undefined,\n quorum: \"\",\n threshold: \"\",\n vetoThreshold: \"\",\n minInitialDepositRatio: \"\",\n burnVoteQuorum: false,\n burnProposalDepositPrevote: false,\n burnVoteVeto: false,\n };\n}\nexports.Params = {\n typeUrl: \"/cosmos.gov.v1.Params\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.minDeposit) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.maxDepositPeriod !== undefined) {\n duration_1.Duration.encode(message.maxDepositPeriod, writer.uint32(18).fork()).ldelim();\n }\n if (message.votingPeriod !== undefined) {\n duration_1.Duration.encode(message.votingPeriod, writer.uint32(26).fork()).ldelim();\n }\n if (message.quorum !== \"\") {\n writer.uint32(34).string(message.quorum);\n }\n if (message.threshold !== \"\") {\n writer.uint32(42).string(message.threshold);\n }\n if (message.vetoThreshold !== \"\") {\n writer.uint32(50).string(message.vetoThreshold);\n }\n if (message.minInitialDepositRatio !== \"\") {\n writer.uint32(58).string(message.minInitialDepositRatio);\n }\n if (message.burnVoteQuorum === true) {\n writer.uint32(104).bool(message.burnVoteQuorum);\n }\n if (message.burnProposalDepositPrevote === true) {\n writer.uint32(112).bool(message.burnProposalDepositPrevote);\n }\n if (message.burnVoteVeto === true) {\n writer.uint32(120).bool(message.burnVoteVeto);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.minDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.maxDepositPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 3:\n message.votingPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 4:\n message.quorum = reader.string();\n break;\n case 5:\n message.threshold = reader.string();\n break;\n case 6:\n message.vetoThreshold = reader.string();\n break;\n case 7:\n message.minInitialDepositRatio = reader.string();\n break;\n case 13:\n message.burnVoteQuorum = reader.bool();\n break;\n case 14:\n message.burnProposalDepositPrevote = reader.bool();\n break;\n case 15:\n message.burnVoteVeto = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseParams();\n if (Array.isArray(object?.minDeposit))\n obj.minDeposit = object.minDeposit.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.maxDepositPeriod))\n obj.maxDepositPeriod = duration_1.Duration.fromJSON(object.maxDepositPeriod);\n if ((0, helpers_1.isSet)(object.votingPeriod))\n obj.votingPeriod = duration_1.Duration.fromJSON(object.votingPeriod);\n if ((0, helpers_1.isSet)(object.quorum))\n obj.quorum = String(object.quorum);\n if ((0, helpers_1.isSet)(object.threshold))\n obj.threshold = String(object.threshold);\n if ((0, helpers_1.isSet)(object.vetoThreshold))\n obj.vetoThreshold = String(object.vetoThreshold);\n if ((0, helpers_1.isSet)(object.minInitialDepositRatio))\n obj.minInitialDepositRatio = String(object.minInitialDepositRatio);\n if ((0, helpers_1.isSet)(object.burnVoteQuorum))\n obj.burnVoteQuorum = Boolean(object.burnVoteQuorum);\n if ((0, helpers_1.isSet)(object.burnProposalDepositPrevote))\n obj.burnProposalDepositPrevote = Boolean(object.burnProposalDepositPrevote);\n if ((0, helpers_1.isSet)(object.burnVoteVeto))\n obj.burnVoteVeto = Boolean(object.burnVoteVeto);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.minDeposit) {\n obj.minDeposit = message.minDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.minDeposit = [];\n }\n message.maxDepositPeriod !== undefined &&\n (obj.maxDepositPeriod = message.maxDepositPeriod\n ? duration_1.Duration.toJSON(message.maxDepositPeriod)\n : undefined);\n message.votingPeriod !== undefined &&\n (obj.votingPeriod = message.votingPeriod ? duration_1.Duration.toJSON(message.votingPeriod) : undefined);\n message.quorum !== undefined && (obj.quorum = message.quorum);\n message.threshold !== undefined && (obj.threshold = message.threshold);\n message.vetoThreshold !== undefined && (obj.vetoThreshold = message.vetoThreshold);\n message.minInitialDepositRatio !== undefined &&\n (obj.minInitialDepositRatio = message.minInitialDepositRatio);\n message.burnVoteQuorum !== undefined && (obj.burnVoteQuorum = message.burnVoteQuorum);\n message.burnProposalDepositPrevote !== undefined &&\n (obj.burnProposalDepositPrevote = message.burnProposalDepositPrevote);\n message.burnVoteVeto !== undefined && (obj.burnVoteVeto = message.burnVoteVeto);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseParams();\n message.minDeposit = object.minDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null) {\n message.maxDepositPeriod = duration_1.Duration.fromPartial(object.maxDepositPeriod);\n }\n if (object.votingPeriod !== undefined && object.votingPeriod !== null) {\n message.votingPeriod = duration_1.Duration.fromPartial(object.votingPeriod);\n }\n message.quorum = object.quorum ?? \"\";\n message.threshold = object.threshold ?? \"\";\n message.vetoThreshold = object.vetoThreshold ?? \"\";\n message.minInitialDepositRatio = object.minInitialDepositRatio ?? \"\";\n message.burnVoteQuorum = object.burnVoteQuorum ?? false;\n message.burnProposalDepositPrevote = object.burnProposalDepositPrevote ?? false;\n message.burnVoteVeto = object.burnVoteVeto ?? false;\n return message;\n },\n};\n//# sourceMappingURL=gov.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgUpdateParamsResponse = exports.MsgUpdateParams = exports.MsgDepositResponse = exports.MsgDeposit = exports.MsgVoteWeightedResponse = exports.MsgVoteWeighted = exports.MsgVoteResponse = exports.MsgVote = exports.MsgExecLegacyContentResponse = exports.MsgExecLegacyContent = exports.MsgSubmitProposalResponse = exports.MsgSubmitProposal = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst gov_1 = require(\"./gov\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.gov.v1\";\nfunction createBaseMsgSubmitProposal() {\n return {\n messages: [],\n initialDeposit: [],\n proposer: \"\",\n metadata: \"\",\n title: \"\",\n summary: \"\",\n };\n}\nexports.MsgSubmitProposal = {\n typeUrl: \"/cosmos.gov.v1.MsgSubmitProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.messages) {\n any_1.Any.encode(v, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.initialDeposit) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.proposer !== \"\") {\n writer.uint32(26).string(message.proposer);\n }\n if (message.metadata !== \"\") {\n writer.uint32(34).string(message.metadata);\n }\n if (message.title !== \"\") {\n writer.uint32(42).string(message.title);\n }\n if (message.summary !== \"\") {\n writer.uint32(50).string(message.summary);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubmitProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.messages.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 2:\n message.initialDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 3:\n message.proposer = reader.string();\n break;\n case 4:\n message.metadata = reader.string();\n break;\n case 5:\n message.title = reader.string();\n break;\n case 6:\n message.summary = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgSubmitProposal();\n if (Array.isArray(object?.messages))\n obj.messages = object.messages.map((e) => any_1.Any.fromJSON(e));\n if (Array.isArray(object?.initialDeposit))\n obj.initialDeposit = object.initialDeposit.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.proposer))\n obj.proposer = String(object.proposer);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n if ((0, helpers_1.isSet)(object.title))\n obj.title = String(object.title);\n if ((0, helpers_1.isSet)(object.summary))\n obj.summary = String(object.summary);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.messages) {\n obj.messages = message.messages.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.messages = [];\n }\n if (message.initialDeposit) {\n obj.initialDeposit = message.initialDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.initialDeposit = [];\n }\n message.proposer !== undefined && (obj.proposer = message.proposer);\n message.metadata !== undefined && (obj.metadata = message.metadata);\n message.title !== undefined && (obj.title = message.title);\n message.summary !== undefined && (obj.summary = message.summary);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgSubmitProposal();\n message.messages = object.messages?.map((e) => any_1.Any.fromPartial(e)) || [];\n message.initialDeposit = object.initialDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n message.proposer = object.proposer ?? \"\";\n message.metadata = object.metadata ?? \"\";\n message.title = object.title ?? \"\";\n message.summary = object.summary ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgSubmitProposalResponse() {\n return {\n proposalId: BigInt(0),\n };\n}\nexports.MsgSubmitProposalResponse = {\n typeUrl: \"/cosmos.gov.v1.MsgSubmitProposalResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubmitProposalResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgSubmitProposalResponse();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgSubmitProposalResponse();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n return message;\n },\n};\nfunction createBaseMsgExecLegacyContent() {\n return {\n content: undefined,\n authority: \"\",\n };\n}\nexports.MsgExecLegacyContent = {\n typeUrl: \"/cosmos.gov.v1.MsgExecLegacyContent\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.content !== undefined) {\n any_1.Any.encode(message.content, writer.uint32(10).fork()).ldelim();\n }\n if (message.authority !== \"\") {\n writer.uint32(18).string(message.authority);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgExecLegacyContent();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.content = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.authority = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgExecLegacyContent();\n if ((0, helpers_1.isSet)(object.content))\n obj.content = any_1.Any.fromJSON(object.content);\n if ((0, helpers_1.isSet)(object.authority))\n obj.authority = String(object.authority);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.content !== undefined &&\n (obj.content = message.content ? any_1.Any.toJSON(message.content) : undefined);\n message.authority !== undefined && (obj.authority = message.authority);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgExecLegacyContent();\n if (object.content !== undefined && object.content !== null) {\n message.content = any_1.Any.fromPartial(object.content);\n }\n message.authority = object.authority ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgExecLegacyContentResponse() {\n return {};\n}\nexports.MsgExecLegacyContentResponse = {\n typeUrl: \"/cosmos.gov.v1.MsgExecLegacyContentResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgExecLegacyContentResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgExecLegacyContentResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgExecLegacyContentResponse();\n return message;\n },\n};\nfunction createBaseMsgVote() {\n return {\n proposalId: BigInt(0),\n voter: \"\",\n option: 0,\n metadata: \"\",\n };\n}\nexports.MsgVote = {\n typeUrl: \"/cosmos.gov.v1.MsgVote\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (message.option !== 0) {\n writer.uint32(24).int32(message.option);\n }\n if (message.metadata !== \"\") {\n writer.uint32(34).string(message.metadata);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVote();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.option = reader.int32();\n break;\n case 4:\n message.metadata = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgVote();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.voter))\n obj.voter = String(object.voter);\n if ((0, helpers_1.isSet)(object.option))\n obj.option = (0, gov_1.voteOptionFromJSON)(object.option);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n message.option !== undefined && (obj.option = (0, gov_1.voteOptionToJSON)(message.option));\n message.metadata !== undefined && (obj.metadata = message.metadata);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgVote();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.voter = object.voter ?? \"\";\n message.option = object.option ?? 0;\n message.metadata = object.metadata ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgVoteResponse() {\n return {};\n}\nexports.MsgVoteResponse = {\n typeUrl: \"/cosmos.gov.v1.MsgVoteResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVoteResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgVoteResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgVoteResponse();\n return message;\n },\n};\nfunction createBaseMsgVoteWeighted() {\n return {\n proposalId: BigInt(0),\n voter: \"\",\n options: [],\n metadata: \"\",\n };\n}\nexports.MsgVoteWeighted = {\n typeUrl: \"/cosmos.gov.v1.MsgVoteWeighted\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n for (const v of message.options) {\n gov_1.WeightedVoteOption.encode(v, writer.uint32(26).fork()).ldelim();\n }\n if (message.metadata !== \"\") {\n writer.uint32(34).string(message.metadata);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVoteWeighted();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.options.push(gov_1.WeightedVoteOption.decode(reader, reader.uint32()));\n break;\n case 4:\n message.metadata = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgVoteWeighted();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.voter))\n obj.voter = String(object.voter);\n if (Array.isArray(object?.options))\n obj.options = object.options.map((e) => gov_1.WeightedVoteOption.fromJSON(e));\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n if (message.options) {\n obj.options = message.options.map((e) => (e ? gov_1.WeightedVoteOption.toJSON(e) : undefined));\n }\n else {\n obj.options = [];\n }\n message.metadata !== undefined && (obj.metadata = message.metadata);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgVoteWeighted();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.voter = object.voter ?? \"\";\n message.options = object.options?.map((e) => gov_1.WeightedVoteOption.fromPartial(e)) || [];\n message.metadata = object.metadata ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgVoteWeightedResponse() {\n return {};\n}\nexports.MsgVoteWeightedResponse = {\n typeUrl: \"/cosmos.gov.v1.MsgVoteWeightedResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVoteWeightedResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgVoteWeightedResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgVoteWeightedResponse();\n return message;\n },\n};\nfunction createBaseMsgDeposit() {\n return {\n proposalId: BigInt(0),\n depositor: \"\",\n amount: [],\n };\n}\nexports.MsgDeposit = {\n typeUrl: \"/cosmos.gov.v1.MsgDeposit\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgDeposit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.depositor = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgDeposit();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.depositor))\n obj.depositor = String(object.depositor);\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.depositor !== undefined && (obj.depositor = message.depositor);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgDeposit();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.depositor = object.depositor ?? \"\";\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgDepositResponse() {\n return {};\n}\nexports.MsgDepositResponse = {\n typeUrl: \"/cosmos.gov.v1.MsgDepositResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgDepositResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgDepositResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgDepositResponse();\n return message;\n },\n};\nfunction createBaseMsgUpdateParams() {\n return {\n authority: \"\",\n params: gov_1.Params.fromPartial({}),\n };\n}\nexports.MsgUpdateParams = {\n typeUrl: \"/cosmos.gov.v1.MsgUpdateParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.authority !== \"\") {\n writer.uint32(10).string(message.authority);\n }\n if (message.params !== undefined) {\n gov_1.Params.encode(message.params, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.authority = reader.string();\n break;\n case 2:\n message.params = gov_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpdateParams();\n if ((0, helpers_1.isSet)(object.authority))\n obj.authority = String(object.authority);\n if ((0, helpers_1.isSet)(object.params))\n obj.params = gov_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.authority !== undefined && (obj.authority = message.authority);\n message.params !== undefined && (obj.params = message.params ? gov_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpdateParams();\n message.authority = object.authority ?? \"\";\n if (object.params !== undefined && object.params !== null) {\n message.params = gov_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nfunction createBaseMsgUpdateParamsResponse() {\n return {};\n}\nexports.MsgUpdateParamsResponse = {\n typeUrl: \"/cosmos.gov.v1.MsgUpdateParamsResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpdateParamsResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpdateParamsResponse();\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.SubmitProposal = this.SubmitProposal.bind(this);\n this.ExecLegacyContent = this.ExecLegacyContent.bind(this);\n this.Vote = this.Vote.bind(this);\n this.VoteWeighted = this.VoteWeighted.bind(this);\n this.Deposit = this.Deposit.bind(this);\n this.UpdateParams = this.UpdateParams.bind(this);\n }\n SubmitProposal(request) {\n const data = exports.MsgSubmitProposal.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1.Msg\", \"SubmitProposal\", data);\n return promise.then((data) => exports.MsgSubmitProposalResponse.decode(new binary_1.BinaryReader(data)));\n }\n ExecLegacyContent(request) {\n const data = exports.MsgExecLegacyContent.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1.Msg\", \"ExecLegacyContent\", data);\n return promise.then((data) => exports.MsgExecLegacyContentResponse.decode(new binary_1.BinaryReader(data)));\n }\n Vote(request) {\n const data = exports.MsgVote.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1.Msg\", \"Vote\", data);\n return promise.then((data) => exports.MsgVoteResponse.decode(new binary_1.BinaryReader(data)));\n }\n VoteWeighted(request) {\n const data = exports.MsgVoteWeighted.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1.Msg\", \"VoteWeighted\", data);\n return promise.then((data) => exports.MsgVoteWeightedResponse.decode(new binary_1.BinaryReader(data)));\n }\n Deposit(request) {\n const data = exports.MsgDeposit.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1.Msg\", \"Deposit\", data);\n return promise.then((data) => exports.MsgDepositResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpdateParams(request) {\n const data = exports.MsgUpdateParams.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1.Msg\", \"UpdateParams\", data);\n return promise.then((data) => exports.MsgUpdateParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TallyParams = exports.VotingParams = exports.DepositParams = exports.Vote = exports.TallyResult = exports.Proposal = exports.Deposit = exports.TextProposal = exports.WeightedVoteOption = exports.proposalStatusToJSON = exports.proposalStatusFromJSON = exports.ProposalStatus = exports.voteOptionToJSON = exports.voteOptionFromJSON = exports.VoteOption = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst duration_1 = require(\"../../../google/protobuf/duration\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.gov.v1beta1\";\n/** VoteOption enumerates the valid vote options for a given governance proposal. */\nvar VoteOption;\n(function (VoteOption) {\n /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_UNSPECIFIED\"] = 0] = \"VOTE_OPTION_UNSPECIFIED\";\n /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_YES\"] = 1] = \"VOTE_OPTION_YES\";\n /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_ABSTAIN\"] = 2] = \"VOTE_OPTION_ABSTAIN\";\n /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_NO\"] = 3] = \"VOTE_OPTION_NO\";\n /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_NO_WITH_VETO\"] = 4] = \"VOTE_OPTION_NO_WITH_VETO\";\n VoteOption[VoteOption[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(VoteOption || (exports.VoteOption = VoteOption = {}));\nfunction voteOptionFromJSON(object) {\n switch (object) {\n case 0:\n case \"VOTE_OPTION_UNSPECIFIED\":\n return VoteOption.VOTE_OPTION_UNSPECIFIED;\n case 1:\n case \"VOTE_OPTION_YES\":\n return VoteOption.VOTE_OPTION_YES;\n case 2:\n case \"VOTE_OPTION_ABSTAIN\":\n return VoteOption.VOTE_OPTION_ABSTAIN;\n case 3:\n case \"VOTE_OPTION_NO\":\n return VoteOption.VOTE_OPTION_NO;\n case 4:\n case \"VOTE_OPTION_NO_WITH_VETO\":\n return VoteOption.VOTE_OPTION_NO_WITH_VETO;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return VoteOption.UNRECOGNIZED;\n }\n}\nexports.voteOptionFromJSON = voteOptionFromJSON;\nfunction voteOptionToJSON(object) {\n switch (object) {\n case VoteOption.VOTE_OPTION_UNSPECIFIED:\n return \"VOTE_OPTION_UNSPECIFIED\";\n case VoteOption.VOTE_OPTION_YES:\n return \"VOTE_OPTION_YES\";\n case VoteOption.VOTE_OPTION_ABSTAIN:\n return \"VOTE_OPTION_ABSTAIN\";\n case VoteOption.VOTE_OPTION_NO:\n return \"VOTE_OPTION_NO\";\n case VoteOption.VOTE_OPTION_NO_WITH_VETO:\n return \"VOTE_OPTION_NO_WITH_VETO\";\n case VoteOption.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.voteOptionToJSON = voteOptionToJSON;\n/** ProposalStatus enumerates the valid statuses of a proposal. */\nvar ProposalStatus;\n(function (ProposalStatus) {\n /** PROPOSAL_STATUS_UNSPECIFIED - PROPOSAL_STATUS_UNSPECIFIED defines the default proposal status. */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_UNSPECIFIED\"] = 0] = \"PROPOSAL_STATUS_UNSPECIFIED\";\n /**\n * PROPOSAL_STATUS_DEPOSIT_PERIOD - PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit\n * period.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_DEPOSIT_PERIOD\"] = 1] = \"PROPOSAL_STATUS_DEPOSIT_PERIOD\";\n /**\n * PROPOSAL_STATUS_VOTING_PERIOD - PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting\n * period.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_VOTING_PERIOD\"] = 2] = \"PROPOSAL_STATUS_VOTING_PERIOD\";\n /**\n * PROPOSAL_STATUS_PASSED - PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has\n * passed.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_PASSED\"] = 3] = \"PROPOSAL_STATUS_PASSED\";\n /**\n * PROPOSAL_STATUS_REJECTED - PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has\n * been rejected.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_REJECTED\"] = 4] = \"PROPOSAL_STATUS_REJECTED\";\n /**\n * PROPOSAL_STATUS_FAILED - PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has\n * failed.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_FAILED\"] = 5] = \"PROPOSAL_STATUS_FAILED\";\n ProposalStatus[ProposalStatus[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ProposalStatus || (exports.ProposalStatus = ProposalStatus = {}));\nfunction proposalStatusFromJSON(object) {\n switch (object) {\n case 0:\n case \"PROPOSAL_STATUS_UNSPECIFIED\":\n return ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED;\n case 1:\n case \"PROPOSAL_STATUS_DEPOSIT_PERIOD\":\n return ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD;\n case 2:\n case \"PROPOSAL_STATUS_VOTING_PERIOD\":\n return ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD;\n case 3:\n case \"PROPOSAL_STATUS_PASSED\":\n return ProposalStatus.PROPOSAL_STATUS_PASSED;\n case 4:\n case \"PROPOSAL_STATUS_REJECTED\":\n return ProposalStatus.PROPOSAL_STATUS_REJECTED;\n case 5:\n case \"PROPOSAL_STATUS_FAILED\":\n return ProposalStatus.PROPOSAL_STATUS_FAILED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ProposalStatus.UNRECOGNIZED;\n }\n}\nexports.proposalStatusFromJSON = proposalStatusFromJSON;\nfunction proposalStatusToJSON(object) {\n switch (object) {\n case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED:\n return \"PROPOSAL_STATUS_UNSPECIFIED\";\n case ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD:\n return \"PROPOSAL_STATUS_DEPOSIT_PERIOD\";\n case ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD:\n return \"PROPOSAL_STATUS_VOTING_PERIOD\";\n case ProposalStatus.PROPOSAL_STATUS_PASSED:\n return \"PROPOSAL_STATUS_PASSED\";\n case ProposalStatus.PROPOSAL_STATUS_REJECTED:\n return \"PROPOSAL_STATUS_REJECTED\";\n case ProposalStatus.PROPOSAL_STATUS_FAILED:\n return \"PROPOSAL_STATUS_FAILED\";\n case ProposalStatus.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.proposalStatusToJSON = proposalStatusToJSON;\nfunction createBaseWeightedVoteOption() {\n return {\n option: 0,\n weight: \"\",\n };\n}\nexports.WeightedVoteOption = {\n typeUrl: \"/cosmos.gov.v1beta1.WeightedVoteOption\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.option !== 0) {\n writer.uint32(8).int32(message.option);\n }\n if (message.weight !== \"\") {\n writer.uint32(18).string(message.weight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseWeightedVoteOption();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.option = reader.int32();\n break;\n case 2:\n message.weight = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseWeightedVoteOption();\n if ((0, helpers_1.isSet)(object.option))\n obj.option = voteOptionFromJSON(object.option);\n if ((0, helpers_1.isSet)(object.weight))\n obj.weight = String(object.weight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.option !== undefined && (obj.option = voteOptionToJSON(message.option));\n message.weight !== undefined && (obj.weight = message.weight);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseWeightedVoteOption();\n message.option = object.option ?? 0;\n message.weight = object.weight ?? \"\";\n return message;\n },\n};\nfunction createBaseTextProposal() {\n return {\n title: \"\",\n description: \"\",\n };\n}\nexports.TextProposal = {\n typeUrl: \"/cosmos.gov.v1beta1.TextProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTextProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTextProposal();\n if ((0, helpers_1.isSet)(object.title))\n obj.title = String(object.title);\n if ((0, helpers_1.isSet)(object.description))\n obj.description = String(object.description);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTextProposal();\n message.title = object.title ?? \"\";\n message.description = object.description ?? \"\";\n return message;\n },\n};\nfunction createBaseDeposit() {\n return {\n proposalId: BigInt(0),\n depositor: \"\",\n amount: [],\n };\n}\nexports.Deposit = {\n typeUrl: \"/cosmos.gov.v1beta1.Deposit\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDeposit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.depositor = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDeposit();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.depositor))\n obj.depositor = String(object.depositor);\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.depositor !== undefined && (obj.depositor = message.depositor);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDeposit();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.depositor = object.depositor ?? \"\";\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseProposal() {\n return {\n proposalId: BigInt(0),\n content: undefined,\n status: 0,\n finalTallyResult: exports.TallyResult.fromPartial({}),\n submitTime: timestamp_1.Timestamp.fromPartial({}),\n depositEndTime: timestamp_1.Timestamp.fromPartial({}),\n totalDeposit: [],\n votingStartTime: timestamp_1.Timestamp.fromPartial({}),\n votingEndTime: timestamp_1.Timestamp.fromPartial({}),\n };\n}\nexports.Proposal = {\n typeUrl: \"/cosmos.gov.v1beta1.Proposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.content !== undefined) {\n any_1.Any.encode(message.content, writer.uint32(18).fork()).ldelim();\n }\n if (message.status !== 0) {\n writer.uint32(24).int32(message.status);\n }\n if (message.finalTallyResult !== undefined) {\n exports.TallyResult.encode(message.finalTallyResult, writer.uint32(34).fork()).ldelim();\n }\n if (message.submitTime !== undefined) {\n timestamp_1.Timestamp.encode(message.submitTime, writer.uint32(42).fork()).ldelim();\n }\n if (message.depositEndTime !== undefined) {\n timestamp_1.Timestamp.encode(message.depositEndTime, writer.uint32(50).fork()).ldelim();\n }\n for (const v of message.totalDeposit) {\n coin_1.Coin.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.votingStartTime !== undefined) {\n timestamp_1.Timestamp.encode(message.votingStartTime, writer.uint32(66).fork()).ldelim();\n }\n if (message.votingEndTime !== undefined) {\n timestamp_1.Timestamp.encode(message.votingEndTime, writer.uint32(74).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.content = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.status = reader.int32();\n break;\n case 4:\n message.finalTallyResult = exports.TallyResult.decode(reader, reader.uint32());\n break;\n case 5:\n message.submitTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 6:\n message.depositEndTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 7:\n message.totalDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 8:\n message.votingStartTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 9:\n message.votingEndTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseProposal();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.content))\n obj.content = any_1.Any.fromJSON(object.content);\n if ((0, helpers_1.isSet)(object.status))\n obj.status = proposalStatusFromJSON(object.status);\n if ((0, helpers_1.isSet)(object.finalTallyResult))\n obj.finalTallyResult = exports.TallyResult.fromJSON(object.finalTallyResult);\n if ((0, helpers_1.isSet)(object.submitTime))\n obj.submitTime = (0, helpers_1.fromJsonTimestamp)(object.submitTime);\n if ((0, helpers_1.isSet)(object.depositEndTime))\n obj.depositEndTime = (0, helpers_1.fromJsonTimestamp)(object.depositEndTime);\n if (Array.isArray(object?.totalDeposit))\n obj.totalDeposit = object.totalDeposit.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.votingStartTime))\n obj.votingStartTime = (0, helpers_1.fromJsonTimestamp)(object.votingStartTime);\n if ((0, helpers_1.isSet)(object.votingEndTime))\n obj.votingEndTime = (0, helpers_1.fromJsonTimestamp)(object.votingEndTime);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.content !== undefined &&\n (obj.content = message.content ? any_1.Any.toJSON(message.content) : undefined);\n message.status !== undefined && (obj.status = proposalStatusToJSON(message.status));\n message.finalTallyResult !== undefined &&\n (obj.finalTallyResult = message.finalTallyResult\n ? exports.TallyResult.toJSON(message.finalTallyResult)\n : undefined);\n message.submitTime !== undefined && (obj.submitTime = (0, helpers_1.fromTimestamp)(message.submitTime).toISOString());\n message.depositEndTime !== undefined &&\n (obj.depositEndTime = (0, helpers_1.fromTimestamp)(message.depositEndTime).toISOString());\n if (message.totalDeposit) {\n obj.totalDeposit = message.totalDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.totalDeposit = [];\n }\n message.votingStartTime !== undefined &&\n (obj.votingStartTime = (0, helpers_1.fromTimestamp)(message.votingStartTime).toISOString());\n message.votingEndTime !== undefined &&\n (obj.votingEndTime = (0, helpers_1.fromTimestamp)(message.votingEndTime).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseProposal();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n if (object.content !== undefined && object.content !== null) {\n message.content = any_1.Any.fromPartial(object.content);\n }\n message.status = object.status ?? 0;\n if (object.finalTallyResult !== undefined && object.finalTallyResult !== null) {\n message.finalTallyResult = exports.TallyResult.fromPartial(object.finalTallyResult);\n }\n if (object.submitTime !== undefined && object.submitTime !== null) {\n message.submitTime = timestamp_1.Timestamp.fromPartial(object.submitTime);\n }\n if (object.depositEndTime !== undefined && object.depositEndTime !== null) {\n message.depositEndTime = timestamp_1.Timestamp.fromPartial(object.depositEndTime);\n }\n message.totalDeposit = object.totalDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.votingStartTime !== undefined && object.votingStartTime !== null) {\n message.votingStartTime = timestamp_1.Timestamp.fromPartial(object.votingStartTime);\n }\n if (object.votingEndTime !== undefined && object.votingEndTime !== null) {\n message.votingEndTime = timestamp_1.Timestamp.fromPartial(object.votingEndTime);\n }\n return message;\n },\n};\nfunction createBaseTallyResult() {\n return {\n yes: \"\",\n abstain: \"\",\n no: \"\",\n noWithVeto: \"\",\n };\n}\nexports.TallyResult = {\n typeUrl: \"/cosmos.gov.v1beta1.TallyResult\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.yes !== \"\") {\n writer.uint32(10).string(message.yes);\n }\n if (message.abstain !== \"\") {\n writer.uint32(18).string(message.abstain);\n }\n if (message.no !== \"\") {\n writer.uint32(26).string(message.no);\n }\n if (message.noWithVeto !== \"\") {\n writer.uint32(34).string(message.noWithVeto);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTallyResult();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.yes = reader.string();\n break;\n case 2:\n message.abstain = reader.string();\n break;\n case 3:\n message.no = reader.string();\n break;\n case 4:\n message.noWithVeto = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTallyResult();\n if ((0, helpers_1.isSet)(object.yes))\n obj.yes = String(object.yes);\n if ((0, helpers_1.isSet)(object.abstain))\n obj.abstain = String(object.abstain);\n if ((0, helpers_1.isSet)(object.no))\n obj.no = String(object.no);\n if ((0, helpers_1.isSet)(object.noWithVeto))\n obj.noWithVeto = String(object.noWithVeto);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.yes !== undefined && (obj.yes = message.yes);\n message.abstain !== undefined && (obj.abstain = message.abstain);\n message.no !== undefined && (obj.no = message.no);\n message.noWithVeto !== undefined && (obj.noWithVeto = message.noWithVeto);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTallyResult();\n message.yes = object.yes ?? \"\";\n message.abstain = object.abstain ?? \"\";\n message.no = object.no ?? \"\";\n message.noWithVeto = object.noWithVeto ?? \"\";\n return message;\n },\n};\nfunction createBaseVote() {\n return {\n proposalId: BigInt(0),\n voter: \"\",\n option: 0,\n options: [],\n };\n}\nexports.Vote = {\n typeUrl: \"/cosmos.gov.v1beta1.Vote\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (message.option !== 0) {\n writer.uint32(24).int32(message.option);\n }\n for (const v of message.options) {\n exports.WeightedVoteOption.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVote();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.option = reader.int32();\n break;\n case 4:\n message.options.push(exports.WeightedVoteOption.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseVote();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.voter))\n obj.voter = String(object.voter);\n if ((0, helpers_1.isSet)(object.option))\n obj.option = voteOptionFromJSON(object.option);\n if (Array.isArray(object?.options))\n obj.options = object.options.map((e) => exports.WeightedVoteOption.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n message.option !== undefined && (obj.option = voteOptionToJSON(message.option));\n if (message.options) {\n obj.options = message.options.map((e) => (e ? exports.WeightedVoteOption.toJSON(e) : undefined));\n }\n else {\n obj.options = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseVote();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.voter = object.voter ?? \"\";\n message.option = object.option ?? 0;\n message.options = object.options?.map((e) => exports.WeightedVoteOption.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseDepositParams() {\n return {\n minDeposit: [],\n maxDepositPeriod: duration_1.Duration.fromPartial({}),\n };\n}\nexports.DepositParams = {\n typeUrl: \"/cosmos.gov.v1beta1.DepositParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.minDeposit) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.maxDepositPeriod !== undefined) {\n duration_1.Duration.encode(message.maxDepositPeriod, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDepositParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.minDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.maxDepositPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDepositParams();\n if (Array.isArray(object?.minDeposit))\n obj.minDeposit = object.minDeposit.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.maxDepositPeriod))\n obj.maxDepositPeriod = duration_1.Duration.fromJSON(object.maxDepositPeriod);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.minDeposit) {\n obj.minDeposit = message.minDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.minDeposit = [];\n }\n message.maxDepositPeriod !== undefined &&\n (obj.maxDepositPeriod = message.maxDepositPeriod\n ? duration_1.Duration.toJSON(message.maxDepositPeriod)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDepositParams();\n message.minDeposit = object.minDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null) {\n message.maxDepositPeriod = duration_1.Duration.fromPartial(object.maxDepositPeriod);\n }\n return message;\n },\n};\nfunction createBaseVotingParams() {\n return {\n votingPeriod: duration_1.Duration.fromPartial({}),\n };\n}\nexports.VotingParams = {\n typeUrl: \"/cosmos.gov.v1beta1.VotingParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.votingPeriod !== undefined) {\n duration_1.Duration.encode(message.votingPeriod, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVotingParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.votingPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseVotingParams();\n if ((0, helpers_1.isSet)(object.votingPeriod))\n obj.votingPeriod = duration_1.Duration.fromJSON(object.votingPeriod);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.votingPeriod !== undefined &&\n (obj.votingPeriod = message.votingPeriod ? duration_1.Duration.toJSON(message.votingPeriod) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseVotingParams();\n if (object.votingPeriod !== undefined && object.votingPeriod !== null) {\n message.votingPeriod = duration_1.Duration.fromPartial(object.votingPeriod);\n }\n return message;\n },\n};\nfunction createBaseTallyParams() {\n return {\n quorum: new Uint8Array(),\n threshold: new Uint8Array(),\n vetoThreshold: new Uint8Array(),\n };\n}\nexports.TallyParams = {\n typeUrl: \"/cosmos.gov.v1beta1.TallyParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.quorum.length !== 0) {\n writer.uint32(10).bytes(message.quorum);\n }\n if (message.threshold.length !== 0) {\n writer.uint32(18).bytes(message.threshold);\n }\n if (message.vetoThreshold.length !== 0) {\n writer.uint32(26).bytes(message.vetoThreshold);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTallyParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.quorum = reader.bytes();\n break;\n case 2:\n message.threshold = reader.bytes();\n break;\n case 3:\n message.vetoThreshold = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTallyParams();\n if ((0, helpers_1.isSet)(object.quorum))\n obj.quorum = (0, helpers_1.bytesFromBase64)(object.quorum);\n if ((0, helpers_1.isSet)(object.threshold))\n obj.threshold = (0, helpers_1.bytesFromBase64)(object.threshold);\n if ((0, helpers_1.isSet)(object.vetoThreshold))\n obj.vetoThreshold = (0, helpers_1.bytesFromBase64)(object.vetoThreshold);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.quorum !== undefined &&\n (obj.quorum = (0, helpers_1.base64FromBytes)(message.quorum !== undefined ? message.quorum : new Uint8Array()));\n message.threshold !== undefined &&\n (obj.threshold = (0, helpers_1.base64FromBytes)(message.threshold !== undefined ? message.threshold : new Uint8Array()));\n message.vetoThreshold !== undefined &&\n (obj.vetoThreshold = (0, helpers_1.base64FromBytes)(message.vetoThreshold !== undefined ? message.vetoThreshold : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTallyParams();\n message.quorum = object.quorum ?? new Uint8Array();\n message.threshold = object.threshold ?? new Uint8Array();\n message.vetoThreshold = object.vetoThreshold ?? new Uint8Array();\n return message;\n },\n};\n//# sourceMappingURL=gov.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryTallyResultResponse = exports.QueryTallyResultRequest = exports.QueryDepositsResponse = exports.QueryDepositsRequest = exports.QueryDepositResponse = exports.QueryDepositRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryVotesResponse = exports.QueryVotesRequest = exports.QueryVoteResponse = exports.QueryVoteRequest = exports.QueryProposalsResponse = exports.QueryProposalsRequest = exports.QueryProposalResponse = exports.QueryProposalRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst gov_1 = require(\"./gov\");\nconst pagination_1 = require(\"../../base/query/v1beta1/pagination\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.gov.v1beta1\";\nfunction createBaseQueryProposalRequest() {\n return {\n proposalId: BigInt(0),\n };\n}\nexports.QueryProposalRequest = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryProposalRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryProposalRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryProposalRequest();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryProposalRequest();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n return message;\n },\n};\nfunction createBaseQueryProposalResponse() {\n return {\n proposal: gov_1.Proposal.fromPartial({}),\n };\n}\nexports.QueryProposalResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryProposalResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposal !== undefined) {\n gov_1.Proposal.encode(message.proposal, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryProposalResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposal = gov_1.Proposal.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryProposalResponse();\n if ((0, helpers_1.isSet)(object.proposal))\n obj.proposal = gov_1.Proposal.fromJSON(object.proposal);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposal !== undefined &&\n (obj.proposal = message.proposal ? gov_1.Proposal.toJSON(message.proposal) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryProposalResponse();\n if (object.proposal !== undefined && object.proposal !== null) {\n message.proposal = gov_1.Proposal.fromPartial(object.proposal);\n }\n return message;\n },\n};\nfunction createBaseQueryProposalsRequest() {\n return {\n proposalStatus: 0,\n voter: \"\",\n depositor: \"\",\n pagination: undefined,\n };\n}\nexports.QueryProposalsRequest = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryProposalsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalStatus !== 0) {\n writer.uint32(8).int32(message.proposalStatus);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (message.depositor !== \"\") {\n writer.uint32(26).string(message.depositor);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryProposalsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalStatus = reader.int32();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.depositor = reader.string();\n break;\n case 4:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryProposalsRequest();\n if ((0, helpers_1.isSet)(object.proposalStatus))\n obj.proposalStatus = (0, gov_1.proposalStatusFromJSON)(object.proposalStatus);\n if ((0, helpers_1.isSet)(object.voter))\n obj.voter = String(object.voter);\n if ((0, helpers_1.isSet)(object.depositor))\n obj.depositor = String(object.depositor);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalStatus !== undefined &&\n (obj.proposalStatus = (0, gov_1.proposalStatusToJSON)(message.proposalStatus));\n message.voter !== undefined && (obj.voter = message.voter);\n message.depositor !== undefined && (obj.depositor = message.depositor);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryProposalsRequest();\n message.proposalStatus = object.proposalStatus ?? 0;\n message.voter = object.voter ?? \"\";\n message.depositor = object.depositor ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryProposalsResponse() {\n return {\n proposals: [],\n pagination: undefined,\n };\n}\nexports.QueryProposalsResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryProposalsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.proposals) {\n gov_1.Proposal.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryProposalsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposals.push(gov_1.Proposal.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryProposalsResponse();\n if (Array.isArray(object?.proposals))\n obj.proposals = object.proposals.map((e) => gov_1.Proposal.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.proposals) {\n obj.proposals = message.proposals.map((e) => (e ? gov_1.Proposal.toJSON(e) : undefined));\n }\n else {\n obj.proposals = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryProposalsResponse();\n message.proposals = object.proposals?.map((e) => gov_1.Proposal.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryVoteRequest() {\n return {\n proposalId: BigInt(0),\n voter: \"\",\n };\n}\nexports.QueryVoteRequest = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryVoteRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryVoteRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryVoteRequest();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.voter))\n obj.voter = String(object.voter);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryVoteRequest();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.voter = object.voter ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryVoteResponse() {\n return {\n vote: gov_1.Vote.fromPartial({}),\n };\n}\nexports.QueryVoteResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryVoteResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.vote !== undefined) {\n gov_1.Vote.encode(message.vote, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryVoteResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.vote = gov_1.Vote.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryVoteResponse();\n if ((0, helpers_1.isSet)(object.vote))\n obj.vote = gov_1.Vote.fromJSON(object.vote);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.vote !== undefined && (obj.vote = message.vote ? gov_1.Vote.toJSON(message.vote) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryVoteResponse();\n if (object.vote !== undefined && object.vote !== null) {\n message.vote = gov_1.Vote.fromPartial(object.vote);\n }\n return message;\n },\n};\nfunction createBaseQueryVotesRequest() {\n return {\n proposalId: BigInt(0),\n pagination: undefined,\n };\n}\nexports.QueryVotesRequest = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryVotesRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryVotesRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryVotesRequest();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryVotesRequest();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryVotesResponse() {\n return {\n votes: [],\n pagination: undefined,\n };\n}\nexports.QueryVotesResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryVotesResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.votes) {\n gov_1.Vote.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryVotesResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.votes.push(gov_1.Vote.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryVotesResponse();\n if (Array.isArray(object?.votes))\n obj.votes = object.votes.map((e) => gov_1.Vote.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.votes) {\n obj.votes = message.votes.map((e) => (e ? gov_1.Vote.toJSON(e) : undefined));\n }\n else {\n obj.votes = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryVotesResponse();\n message.votes = object.votes?.map((e) => gov_1.Vote.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryParamsRequest() {\n return {\n paramsType: \"\",\n };\n}\nexports.QueryParamsRequest = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryParamsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.paramsType !== \"\") {\n writer.uint32(10).string(message.paramsType);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.paramsType = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryParamsRequest();\n if ((0, helpers_1.isSet)(object.paramsType))\n obj.paramsType = String(object.paramsType);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.paramsType !== undefined && (obj.paramsType = message.paramsType);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryParamsRequest();\n message.paramsType = object.paramsType ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryParamsResponse() {\n return {\n votingParams: gov_1.VotingParams.fromPartial({}),\n depositParams: gov_1.DepositParams.fromPartial({}),\n tallyParams: gov_1.TallyParams.fromPartial({}),\n };\n}\nexports.QueryParamsResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryParamsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.votingParams !== undefined) {\n gov_1.VotingParams.encode(message.votingParams, writer.uint32(10).fork()).ldelim();\n }\n if (message.depositParams !== undefined) {\n gov_1.DepositParams.encode(message.depositParams, writer.uint32(18).fork()).ldelim();\n }\n if (message.tallyParams !== undefined) {\n gov_1.TallyParams.encode(message.tallyParams, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.votingParams = gov_1.VotingParams.decode(reader, reader.uint32());\n break;\n case 2:\n message.depositParams = gov_1.DepositParams.decode(reader, reader.uint32());\n break;\n case 3:\n message.tallyParams = gov_1.TallyParams.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryParamsResponse();\n if ((0, helpers_1.isSet)(object.votingParams))\n obj.votingParams = gov_1.VotingParams.fromJSON(object.votingParams);\n if ((0, helpers_1.isSet)(object.depositParams))\n obj.depositParams = gov_1.DepositParams.fromJSON(object.depositParams);\n if ((0, helpers_1.isSet)(object.tallyParams))\n obj.tallyParams = gov_1.TallyParams.fromJSON(object.tallyParams);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.votingParams !== undefined &&\n (obj.votingParams = message.votingParams ? gov_1.VotingParams.toJSON(message.votingParams) : undefined);\n message.depositParams !== undefined &&\n (obj.depositParams = message.depositParams ? gov_1.DepositParams.toJSON(message.depositParams) : undefined);\n message.tallyParams !== undefined &&\n (obj.tallyParams = message.tallyParams ? gov_1.TallyParams.toJSON(message.tallyParams) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryParamsResponse();\n if (object.votingParams !== undefined && object.votingParams !== null) {\n message.votingParams = gov_1.VotingParams.fromPartial(object.votingParams);\n }\n if (object.depositParams !== undefined && object.depositParams !== null) {\n message.depositParams = gov_1.DepositParams.fromPartial(object.depositParams);\n }\n if (object.tallyParams !== undefined && object.tallyParams !== null) {\n message.tallyParams = gov_1.TallyParams.fromPartial(object.tallyParams);\n }\n return message;\n },\n};\nfunction createBaseQueryDepositRequest() {\n return {\n proposalId: BigInt(0),\n depositor: \"\",\n };\n}\nexports.QueryDepositRequest = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryDepositRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDepositRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.depositor = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDepositRequest();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.depositor))\n obj.depositor = String(object.depositor);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.depositor !== undefined && (obj.depositor = message.depositor);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDepositRequest();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.depositor = object.depositor ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryDepositResponse() {\n return {\n deposit: gov_1.Deposit.fromPartial({}),\n };\n}\nexports.QueryDepositResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryDepositResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.deposit !== undefined) {\n gov_1.Deposit.encode(message.deposit, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDepositResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.deposit = gov_1.Deposit.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDepositResponse();\n if ((0, helpers_1.isSet)(object.deposit))\n obj.deposit = gov_1.Deposit.fromJSON(object.deposit);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.deposit !== undefined &&\n (obj.deposit = message.deposit ? gov_1.Deposit.toJSON(message.deposit) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDepositResponse();\n if (object.deposit !== undefined && object.deposit !== null) {\n message.deposit = gov_1.Deposit.fromPartial(object.deposit);\n }\n return message;\n },\n};\nfunction createBaseQueryDepositsRequest() {\n return {\n proposalId: BigInt(0),\n pagination: undefined,\n };\n}\nexports.QueryDepositsRequest = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryDepositsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDepositsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDepositsRequest();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDepositsRequest();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDepositsResponse() {\n return {\n deposits: [],\n pagination: undefined,\n };\n}\nexports.QueryDepositsResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryDepositsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.deposits) {\n gov_1.Deposit.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDepositsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.deposits.push(gov_1.Deposit.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDepositsResponse();\n if (Array.isArray(object?.deposits))\n obj.deposits = object.deposits.map((e) => gov_1.Deposit.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.deposits) {\n obj.deposits = message.deposits.map((e) => (e ? gov_1.Deposit.toJSON(e) : undefined));\n }\n else {\n obj.deposits = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDepositsResponse();\n message.deposits = object.deposits?.map((e) => gov_1.Deposit.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryTallyResultRequest() {\n return {\n proposalId: BigInt(0),\n };\n}\nexports.QueryTallyResultRequest = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryTallyResultRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryTallyResultRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryTallyResultRequest();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryTallyResultRequest();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n return message;\n },\n};\nfunction createBaseQueryTallyResultResponse() {\n return {\n tally: gov_1.TallyResult.fromPartial({}),\n };\n}\nexports.QueryTallyResultResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.QueryTallyResultResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.tally !== undefined) {\n gov_1.TallyResult.encode(message.tally, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryTallyResultResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tally = gov_1.TallyResult.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryTallyResultResponse();\n if ((0, helpers_1.isSet)(object.tally))\n obj.tally = gov_1.TallyResult.fromJSON(object.tally);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.tally !== undefined &&\n (obj.tally = message.tally ? gov_1.TallyResult.toJSON(message.tally) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryTallyResultResponse();\n if (object.tally !== undefined && object.tally !== null) {\n message.tally = gov_1.TallyResult.fromPartial(object.tally);\n }\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Proposal = this.Proposal.bind(this);\n this.Proposals = this.Proposals.bind(this);\n this.Vote = this.Vote.bind(this);\n this.Votes = this.Votes.bind(this);\n this.Params = this.Params.bind(this);\n this.Deposit = this.Deposit.bind(this);\n this.Deposits = this.Deposits.bind(this);\n this.TallyResult = this.TallyResult.bind(this);\n }\n Proposal(request) {\n const data = exports.QueryProposalRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Proposal\", data);\n return promise.then((data) => exports.QueryProposalResponse.decode(new binary_1.BinaryReader(data)));\n }\n Proposals(request) {\n const data = exports.QueryProposalsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Proposals\", data);\n return promise.then((data) => exports.QueryProposalsResponse.decode(new binary_1.BinaryReader(data)));\n }\n Vote(request) {\n const data = exports.QueryVoteRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Vote\", data);\n return promise.then((data) => exports.QueryVoteResponse.decode(new binary_1.BinaryReader(data)));\n }\n Votes(request) {\n const data = exports.QueryVotesRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Votes\", data);\n return promise.then((data) => exports.QueryVotesResponse.decode(new binary_1.BinaryReader(data)));\n }\n Params(request) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n Deposit(request) {\n const data = exports.QueryDepositRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Deposit\", data);\n return promise.then((data) => exports.QueryDepositResponse.decode(new binary_1.BinaryReader(data)));\n }\n Deposits(request) {\n const data = exports.QueryDepositsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Deposits\", data);\n return promise.then((data) => exports.QueryDepositsResponse.decode(new binary_1.BinaryReader(data)));\n }\n TallyResult(request) {\n const data = exports.QueryTallyResultRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"TallyResult\", data);\n return promise.then((data) => exports.QueryTallyResultResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgDepositResponse = exports.MsgDeposit = exports.MsgVoteWeightedResponse = exports.MsgVoteWeighted = exports.MsgVoteResponse = exports.MsgVote = exports.MsgSubmitProposalResponse = exports.MsgSubmitProposal = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst gov_1 = require(\"./gov\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.gov.v1beta1\";\nfunction createBaseMsgSubmitProposal() {\n return {\n content: undefined,\n initialDeposit: [],\n proposer: \"\",\n };\n}\nexports.MsgSubmitProposal = {\n typeUrl: \"/cosmos.gov.v1beta1.MsgSubmitProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.content !== undefined) {\n any_1.Any.encode(message.content, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.initialDeposit) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.proposer !== \"\") {\n writer.uint32(26).string(message.proposer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubmitProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.content = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.initialDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 3:\n message.proposer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgSubmitProposal();\n if ((0, helpers_1.isSet)(object.content))\n obj.content = any_1.Any.fromJSON(object.content);\n if (Array.isArray(object?.initialDeposit))\n obj.initialDeposit = object.initialDeposit.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.proposer))\n obj.proposer = String(object.proposer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.content !== undefined &&\n (obj.content = message.content ? any_1.Any.toJSON(message.content) : undefined);\n if (message.initialDeposit) {\n obj.initialDeposit = message.initialDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.initialDeposit = [];\n }\n message.proposer !== undefined && (obj.proposer = message.proposer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgSubmitProposal();\n if (object.content !== undefined && object.content !== null) {\n message.content = any_1.Any.fromPartial(object.content);\n }\n message.initialDeposit = object.initialDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n message.proposer = object.proposer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgSubmitProposalResponse() {\n return {\n proposalId: BigInt(0),\n };\n}\nexports.MsgSubmitProposalResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.MsgSubmitProposalResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubmitProposalResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgSubmitProposalResponse();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgSubmitProposalResponse();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n return message;\n },\n};\nfunction createBaseMsgVote() {\n return {\n proposalId: BigInt(0),\n voter: \"\",\n option: 0,\n };\n}\nexports.MsgVote = {\n typeUrl: \"/cosmos.gov.v1beta1.MsgVote\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (message.option !== 0) {\n writer.uint32(24).int32(message.option);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVote();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.option = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgVote();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.voter))\n obj.voter = String(object.voter);\n if ((0, helpers_1.isSet)(object.option))\n obj.option = (0, gov_1.voteOptionFromJSON)(object.option);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n message.option !== undefined && (obj.option = (0, gov_1.voteOptionToJSON)(message.option));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgVote();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.voter = object.voter ?? \"\";\n message.option = object.option ?? 0;\n return message;\n },\n};\nfunction createBaseMsgVoteResponse() {\n return {};\n}\nexports.MsgVoteResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.MsgVoteResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVoteResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgVoteResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgVoteResponse();\n return message;\n },\n};\nfunction createBaseMsgVoteWeighted() {\n return {\n proposalId: BigInt(0),\n voter: \"\",\n options: [],\n };\n}\nexports.MsgVoteWeighted = {\n typeUrl: \"/cosmos.gov.v1beta1.MsgVoteWeighted\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n for (const v of message.options) {\n gov_1.WeightedVoteOption.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVoteWeighted();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.options.push(gov_1.WeightedVoteOption.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgVoteWeighted();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.voter))\n obj.voter = String(object.voter);\n if (Array.isArray(object?.options))\n obj.options = object.options.map((e) => gov_1.WeightedVoteOption.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n if (message.options) {\n obj.options = message.options.map((e) => (e ? gov_1.WeightedVoteOption.toJSON(e) : undefined));\n }\n else {\n obj.options = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgVoteWeighted();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.voter = object.voter ?? \"\";\n message.options = object.options?.map((e) => gov_1.WeightedVoteOption.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgVoteWeightedResponse() {\n return {};\n}\nexports.MsgVoteWeightedResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.MsgVoteWeightedResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVoteWeightedResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgVoteWeightedResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgVoteWeightedResponse();\n return message;\n },\n};\nfunction createBaseMsgDeposit() {\n return {\n proposalId: BigInt(0),\n depositor: \"\",\n amount: [],\n };\n}\nexports.MsgDeposit = {\n typeUrl: \"/cosmos.gov.v1beta1.MsgDeposit\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgDeposit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.depositor = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgDeposit();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.depositor))\n obj.depositor = String(object.depositor);\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.depositor !== undefined && (obj.depositor = message.depositor);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgDeposit();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.depositor = object.depositor ?? \"\";\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgDepositResponse() {\n return {};\n}\nexports.MsgDepositResponse = {\n typeUrl: \"/cosmos.gov.v1beta1.MsgDepositResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgDepositResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgDepositResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgDepositResponse();\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.SubmitProposal = this.SubmitProposal.bind(this);\n this.Vote = this.Vote.bind(this);\n this.VoteWeighted = this.VoteWeighted.bind(this);\n this.Deposit = this.Deposit.bind(this);\n }\n SubmitProposal(request) {\n const data = exports.MsgSubmitProposal.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Msg\", \"SubmitProposal\", data);\n return promise.then((data) => exports.MsgSubmitProposalResponse.decode(new binary_1.BinaryReader(data)));\n }\n Vote(request) {\n const data = exports.MsgVote.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Msg\", \"Vote\", data);\n return promise.then((data) => exports.MsgVoteResponse.decode(new binary_1.BinaryReader(data)));\n }\n VoteWeighted(request) {\n const data = exports.MsgVoteWeighted.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Msg\", \"VoteWeighted\", data);\n return promise.then((data) => exports.MsgVoteWeightedResponse.decode(new binary_1.BinaryReader(data)));\n }\n Deposit(request) {\n const data = exports.MsgDeposit.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Msg\", \"Deposit\", data);\n return promise.then((data) => exports.MsgDepositResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgLeaveGroupResponse = exports.MsgLeaveGroup = exports.MsgExecResponse = exports.MsgExec = exports.MsgVoteResponse = exports.MsgVote = exports.MsgWithdrawProposalResponse = exports.MsgWithdrawProposal = exports.MsgSubmitProposalResponse = exports.MsgSubmitProposal = exports.MsgUpdateGroupPolicyMetadataResponse = exports.MsgUpdateGroupPolicyMetadata = exports.MsgUpdateGroupPolicyDecisionPolicyResponse = exports.MsgUpdateGroupPolicyDecisionPolicy = exports.MsgCreateGroupWithPolicyResponse = exports.MsgCreateGroupWithPolicy = exports.MsgUpdateGroupPolicyAdminResponse = exports.MsgUpdateGroupPolicyAdmin = exports.MsgCreateGroupPolicyResponse = exports.MsgCreateGroupPolicy = exports.MsgUpdateGroupMetadataResponse = exports.MsgUpdateGroupMetadata = exports.MsgUpdateGroupAdminResponse = exports.MsgUpdateGroupAdmin = exports.MsgUpdateGroupMembersResponse = exports.MsgUpdateGroupMembers = exports.MsgCreateGroupResponse = exports.MsgCreateGroup = exports.execToJSON = exports.execFromJSON = exports.Exec = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst types_1 = require(\"./types\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.group.v1\";\n/** Exec defines modes of execution of a proposal on creation or on new vote. */\nvar Exec;\n(function (Exec) {\n /**\n * EXEC_UNSPECIFIED - An empty value means that there should be a separate\n * MsgExec request for the proposal to execute.\n */\n Exec[Exec[\"EXEC_UNSPECIFIED\"] = 0] = \"EXEC_UNSPECIFIED\";\n /**\n * EXEC_TRY - Try to execute the proposal immediately.\n * If the proposal is not allowed per the DecisionPolicy,\n * the proposal will still be open and could\n * be executed at a later point.\n */\n Exec[Exec[\"EXEC_TRY\"] = 1] = \"EXEC_TRY\";\n Exec[Exec[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(Exec || (exports.Exec = Exec = {}));\nfunction execFromJSON(object) {\n switch (object) {\n case 0:\n case \"EXEC_UNSPECIFIED\":\n return Exec.EXEC_UNSPECIFIED;\n case 1:\n case \"EXEC_TRY\":\n return Exec.EXEC_TRY;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return Exec.UNRECOGNIZED;\n }\n}\nexports.execFromJSON = execFromJSON;\nfunction execToJSON(object) {\n switch (object) {\n case Exec.EXEC_UNSPECIFIED:\n return \"EXEC_UNSPECIFIED\";\n case Exec.EXEC_TRY:\n return \"EXEC_TRY\";\n case Exec.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.execToJSON = execToJSON;\nfunction createBaseMsgCreateGroup() {\n return {\n admin: \"\",\n members: [],\n metadata: \"\",\n };\n}\nexports.MsgCreateGroup = {\n typeUrl: \"/cosmos.group.v1.MsgCreateGroup\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.admin !== \"\") {\n writer.uint32(10).string(message.admin);\n }\n for (const v of message.members) {\n types_1.MemberRequest.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.metadata !== \"\") {\n writer.uint32(26).string(message.metadata);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateGroup();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.admin = reader.string();\n break;\n case 2:\n message.members.push(types_1.MemberRequest.decode(reader, reader.uint32()));\n break;\n case 3:\n message.metadata = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCreateGroup();\n if ((0, helpers_1.isSet)(object.admin))\n obj.admin = String(object.admin);\n if (Array.isArray(object?.members))\n obj.members = object.members.map((e) => types_1.MemberRequest.fromJSON(e));\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.admin !== undefined && (obj.admin = message.admin);\n if (message.members) {\n obj.members = message.members.map((e) => (e ? types_1.MemberRequest.toJSON(e) : undefined));\n }\n else {\n obj.members = [];\n }\n message.metadata !== undefined && (obj.metadata = message.metadata);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCreateGroup();\n message.admin = object.admin ?? \"\";\n message.members = object.members?.map((e) => types_1.MemberRequest.fromPartial(e)) || [];\n message.metadata = object.metadata ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgCreateGroupResponse() {\n return {\n groupId: BigInt(0),\n };\n}\nexports.MsgCreateGroupResponse = {\n typeUrl: \"/cosmos.group.v1.MsgCreateGroupResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.groupId !== BigInt(0)) {\n writer.uint32(8).uint64(message.groupId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateGroupResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.groupId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCreateGroupResponse();\n if ((0, helpers_1.isSet)(object.groupId))\n obj.groupId = BigInt(object.groupId.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCreateGroupResponse();\n if (object.groupId !== undefined && object.groupId !== null) {\n message.groupId = BigInt(object.groupId.toString());\n }\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupMembers() {\n return {\n admin: \"\",\n groupId: BigInt(0),\n memberUpdates: [],\n };\n}\nexports.MsgUpdateGroupMembers = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupMembers\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.admin !== \"\") {\n writer.uint32(10).string(message.admin);\n }\n if (message.groupId !== BigInt(0)) {\n writer.uint32(16).uint64(message.groupId);\n }\n for (const v of message.memberUpdates) {\n types_1.MemberRequest.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupMembers();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.admin = reader.string();\n break;\n case 2:\n message.groupId = reader.uint64();\n break;\n case 3:\n message.memberUpdates.push(types_1.MemberRequest.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpdateGroupMembers();\n if ((0, helpers_1.isSet)(object.admin))\n obj.admin = String(object.admin);\n if ((0, helpers_1.isSet)(object.groupId))\n obj.groupId = BigInt(object.groupId.toString());\n if (Array.isArray(object?.memberUpdates))\n obj.memberUpdates = object.memberUpdates.map((e) => types_1.MemberRequest.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.admin !== undefined && (obj.admin = message.admin);\n message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());\n if (message.memberUpdates) {\n obj.memberUpdates = message.memberUpdates.map((e) => (e ? types_1.MemberRequest.toJSON(e) : undefined));\n }\n else {\n obj.memberUpdates = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpdateGroupMembers();\n message.admin = object.admin ?? \"\";\n if (object.groupId !== undefined && object.groupId !== null) {\n message.groupId = BigInt(object.groupId.toString());\n }\n message.memberUpdates = object.memberUpdates?.map((e) => types_1.MemberRequest.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupMembersResponse() {\n return {};\n}\nexports.MsgUpdateGroupMembersResponse = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupMembersResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupMembersResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpdateGroupMembersResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpdateGroupMembersResponse();\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupAdmin() {\n return {\n admin: \"\",\n groupId: BigInt(0),\n newAdmin: \"\",\n };\n}\nexports.MsgUpdateGroupAdmin = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupAdmin\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.admin !== \"\") {\n writer.uint32(10).string(message.admin);\n }\n if (message.groupId !== BigInt(0)) {\n writer.uint32(16).uint64(message.groupId);\n }\n if (message.newAdmin !== \"\") {\n writer.uint32(26).string(message.newAdmin);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupAdmin();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.admin = reader.string();\n break;\n case 2:\n message.groupId = reader.uint64();\n break;\n case 3:\n message.newAdmin = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpdateGroupAdmin();\n if ((0, helpers_1.isSet)(object.admin))\n obj.admin = String(object.admin);\n if ((0, helpers_1.isSet)(object.groupId))\n obj.groupId = BigInt(object.groupId.toString());\n if ((0, helpers_1.isSet)(object.newAdmin))\n obj.newAdmin = String(object.newAdmin);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.admin !== undefined && (obj.admin = message.admin);\n message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());\n message.newAdmin !== undefined && (obj.newAdmin = message.newAdmin);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpdateGroupAdmin();\n message.admin = object.admin ?? \"\";\n if (object.groupId !== undefined && object.groupId !== null) {\n message.groupId = BigInt(object.groupId.toString());\n }\n message.newAdmin = object.newAdmin ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupAdminResponse() {\n return {};\n}\nexports.MsgUpdateGroupAdminResponse = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupAdminResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupAdminResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpdateGroupAdminResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpdateGroupAdminResponse();\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupMetadata() {\n return {\n admin: \"\",\n groupId: BigInt(0),\n metadata: \"\",\n };\n}\nexports.MsgUpdateGroupMetadata = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupMetadata\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.admin !== \"\") {\n writer.uint32(10).string(message.admin);\n }\n if (message.groupId !== BigInt(0)) {\n writer.uint32(16).uint64(message.groupId);\n }\n if (message.metadata !== \"\") {\n writer.uint32(26).string(message.metadata);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupMetadata();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.admin = reader.string();\n break;\n case 2:\n message.groupId = reader.uint64();\n break;\n case 3:\n message.metadata = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpdateGroupMetadata();\n if ((0, helpers_1.isSet)(object.admin))\n obj.admin = String(object.admin);\n if ((0, helpers_1.isSet)(object.groupId))\n obj.groupId = BigInt(object.groupId.toString());\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.admin !== undefined && (obj.admin = message.admin);\n message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());\n message.metadata !== undefined && (obj.metadata = message.metadata);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpdateGroupMetadata();\n message.admin = object.admin ?? \"\";\n if (object.groupId !== undefined && object.groupId !== null) {\n message.groupId = BigInt(object.groupId.toString());\n }\n message.metadata = object.metadata ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupMetadataResponse() {\n return {};\n}\nexports.MsgUpdateGroupMetadataResponse = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupMetadataResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupMetadataResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpdateGroupMetadataResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpdateGroupMetadataResponse();\n return message;\n },\n};\nfunction createBaseMsgCreateGroupPolicy() {\n return {\n admin: \"\",\n groupId: BigInt(0),\n metadata: \"\",\n decisionPolicy: undefined,\n };\n}\nexports.MsgCreateGroupPolicy = {\n typeUrl: \"/cosmos.group.v1.MsgCreateGroupPolicy\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.admin !== \"\") {\n writer.uint32(10).string(message.admin);\n }\n if (message.groupId !== BigInt(0)) {\n writer.uint32(16).uint64(message.groupId);\n }\n if (message.metadata !== \"\") {\n writer.uint32(26).string(message.metadata);\n }\n if (message.decisionPolicy !== undefined) {\n any_1.Any.encode(message.decisionPolicy, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateGroupPolicy();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.admin = reader.string();\n break;\n case 2:\n message.groupId = reader.uint64();\n break;\n case 3:\n message.metadata = reader.string();\n break;\n case 4:\n message.decisionPolicy = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCreateGroupPolicy();\n if ((0, helpers_1.isSet)(object.admin))\n obj.admin = String(object.admin);\n if ((0, helpers_1.isSet)(object.groupId))\n obj.groupId = BigInt(object.groupId.toString());\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n if ((0, helpers_1.isSet)(object.decisionPolicy))\n obj.decisionPolicy = any_1.Any.fromJSON(object.decisionPolicy);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.admin !== undefined && (obj.admin = message.admin);\n message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());\n message.metadata !== undefined && (obj.metadata = message.metadata);\n message.decisionPolicy !== undefined &&\n (obj.decisionPolicy = message.decisionPolicy ? any_1.Any.toJSON(message.decisionPolicy) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCreateGroupPolicy();\n message.admin = object.admin ?? \"\";\n if (object.groupId !== undefined && object.groupId !== null) {\n message.groupId = BigInt(object.groupId.toString());\n }\n message.metadata = object.metadata ?? \"\";\n if (object.decisionPolicy !== undefined && object.decisionPolicy !== null) {\n message.decisionPolicy = any_1.Any.fromPartial(object.decisionPolicy);\n }\n return message;\n },\n};\nfunction createBaseMsgCreateGroupPolicyResponse() {\n return {\n address: \"\",\n };\n}\nexports.MsgCreateGroupPolicyResponse = {\n typeUrl: \"/cosmos.group.v1.MsgCreateGroupPolicyResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateGroupPolicyResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCreateGroupPolicyResponse();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCreateGroupPolicyResponse();\n message.address = object.address ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupPolicyAdmin() {\n return {\n admin: \"\",\n groupPolicyAddress: \"\",\n newAdmin: \"\",\n };\n}\nexports.MsgUpdateGroupPolicyAdmin = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupPolicyAdmin\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.admin !== \"\") {\n writer.uint32(10).string(message.admin);\n }\n if (message.groupPolicyAddress !== \"\") {\n writer.uint32(18).string(message.groupPolicyAddress);\n }\n if (message.newAdmin !== \"\") {\n writer.uint32(26).string(message.newAdmin);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupPolicyAdmin();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.admin = reader.string();\n break;\n case 2:\n message.groupPolicyAddress = reader.string();\n break;\n case 3:\n message.newAdmin = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpdateGroupPolicyAdmin();\n if ((0, helpers_1.isSet)(object.admin))\n obj.admin = String(object.admin);\n if ((0, helpers_1.isSet)(object.groupPolicyAddress))\n obj.groupPolicyAddress = String(object.groupPolicyAddress);\n if ((0, helpers_1.isSet)(object.newAdmin))\n obj.newAdmin = String(object.newAdmin);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.admin !== undefined && (obj.admin = message.admin);\n message.groupPolicyAddress !== undefined && (obj.groupPolicyAddress = message.groupPolicyAddress);\n message.newAdmin !== undefined && (obj.newAdmin = message.newAdmin);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpdateGroupPolicyAdmin();\n message.admin = object.admin ?? \"\";\n message.groupPolicyAddress = object.groupPolicyAddress ?? \"\";\n message.newAdmin = object.newAdmin ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupPolicyAdminResponse() {\n return {};\n}\nexports.MsgUpdateGroupPolicyAdminResponse = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupPolicyAdminResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupPolicyAdminResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpdateGroupPolicyAdminResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpdateGroupPolicyAdminResponse();\n return message;\n },\n};\nfunction createBaseMsgCreateGroupWithPolicy() {\n return {\n admin: \"\",\n members: [],\n groupMetadata: \"\",\n groupPolicyMetadata: \"\",\n groupPolicyAsAdmin: false,\n decisionPolicy: undefined,\n };\n}\nexports.MsgCreateGroupWithPolicy = {\n typeUrl: \"/cosmos.group.v1.MsgCreateGroupWithPolicy\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.admin !== \"\") {\n writer.uint32(10).string(message.admin);\n }\n for (const v of message.members) {\n types_1.MemberRequest.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.groupMetadata !== \"\") {\n writer.uint32(26).string(message.groupMetadata);\n }\n if (message.groupPolicyMetadata !== \"\") {\n writer.uint32(34).string(message.groupPolicyMetadata);\n }\n if (message.groupPolicyAsAdmin === true) {\n writer.uint32(40).bool(message.groupPolicyAsAdmin);\n }\n if (message.decisionPolicy !== undefined) {\n any_1.Any.encode(message.decisionPolicy, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateGroupWithPolicy();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.admin = reader.string();\n break;\n case 2:\n message.members.push(types_1.MemberRequest.decode(reader, reader.uint32()));\n break;\n case 3:\n message.groupMetadata = reader.string();\n break;\n case 4:\n message.groupPolicyMetadata = reader.string();\n break;\n case 5:\n message.groupPolicyAsAdmin = reader.bool();\n break;\n case 6:\n message.decisionPolicy = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCreateGroupWithPolicy();\n if ((0, helpers_1.isSet)(object.admin))\n obj.admin = String(object.admin);\n if (Array.isArray(object?.members))\n obj.members = object.members.map((e) => types_1.MemberRequest.fromJSON(e));\n if ((0, helpers_1.isSet)(object.groupMetadata))\n obj.groupMetadata = String(object.groupMetadata);\n if ((0, helpers_1.isSet)(object.groupPolicyMetadata))\n obj.groupPolicyMetadata = String(object.groupPolicyMetadata);\n if ((0, helpers_1.isSet)(object.groupPolicyAsAdmin))\n obj.groupPolicyAsAdmin = Boolean(object.groupPolicyAsAdmin);\n if ((0, helpers_1.isSet)(object.decisionPolicy))\n obj.decisionPolicy = any_1.Any.fromJSON(object.decisionPolicy);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.admin !== undefined && (obj.admin = message.admin);\n if (message.members) {\n obj.members = message.members.map((e) => (e ? types_1.MemberRequest.toJSON(e) : undefined));\n }\n else {\n obj.members = [];\n }\n message.groupMetadata !== undefined && (obj.groupMetadata = message.groupMetadata);\n message.groupPolicyMetadata !== undefined && (obj.groupPolicyMetadata = message.groupPolicyMetadata);\n message.groupPolicyAsAdmin !== undefined && (obj.groupPolicyAsAdmin = message.groupPolicyAsAdmin);\n message.decisionPolicy !== undefined &&\n (obj.decisionPolicy = message.decisionPolicy ? any_1.Any.toJSON(message.decisionPolicy) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCreateGroupWithPolicy();\n message.admin = object.admin ?? \"\";\n message.members = object.members?.map((e) => types_1.MemberRequest.fromPartial(e)) || [];\n message.groupMetadata = object.groupMetadata ?? \"\";\n message.groupPolicyMetadata = object.groupPolicyMetadata ?? \"\";\n message.groupPolicyAsAdmin = object.groupPolicyAsAdmin ?? false;\n if (object.decisionPolicy !== undefined && object.decisionPolicy !== null) {\n message.decisionPolicy = any_1.Any.fromPartial(object.decisionPolicy);\n }\n return message;\n },\n};\nfunction createBaseMsgCreateGroupWithPolicyResponse() {\n return {\n groupId: BigInt(0),\n groupPolicyAddress: \"\",\n };\n}\nexports.MsgCreateGroupWithPolicyResponse = {\n typeUrl: \"/cosmos.group.v1.MsgCreateGroupWithPolicyResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.groupId !== BigInt(0)) {\n writer.uint32(8).uint64(message.groupId);\n }\n if (message.groupPolicyAddress !== \"\") {\n writer.uint32(18).string(message.groupPolicyAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateGroupWithPolicyResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.groupId = reader.uint64();\n break;\n case 2:\n message.groupPolicyAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCreateGroupWithPolicyResponse();\n if ((0, helpers_1.isSet)(object.groupId))\n obj.groupId = BigInt(object.groupId.toString());\n if ((0, helpers_1.isSet)(object.groupPolicyAddress))\n obj.groupPolicyAddress = String(object.groupPolicyAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());\n message.groupPolicyAddress !== undefined && (obj.groupPolicyAddress = message.groupPolicyAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCreateGroupWithPolicyResponse();\n if (object.groupId !== undefined && object.groupId !== null) {\n message.groupId = BigInt(object.groupId.toString());\n }\n message.groupPolicyAddress = object.groupPolicyAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupPolicyDecisionPolicy() {\n return {\n admin: \"\",\n groupPolicyAddress: \"\",\n decisionPolicy: undefined,\n };\n}\nexports.MsgUpdateGroupPolicyDecisionPolicy = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupPolicyDecisionPolicy\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.admin !== \"\") {\n writer.uint32(10).string(message.admin);\n }\n if (message.groupPolicyAddress !== \"\") {\n writer.uint32(18).string(message.groupPolicyAddress);\n }\n if (message.decisionPolicy !== undefined) {\n any_1.Any.encode(message.decisionPolicy, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupPolicyDecisionPolicy();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.admin = reader.string();\n break;\n case 2:\n message.groupPolicyAddress = reader.string();\n break;\n case 3:\n message.decisionPolicy = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpdateGroupPolicyDecisionPolicy();\n if ((0, helpers_1.isSet)(object.admin))\n obj.admin = String(object.admin);\n if ((0, helpers_1.isSet)(object.groupPolicyAddress))\n obj.groupPolicyAddress = String(object.groupPolicyAddress);\n if ((0, helpers_1.isSet)(object.decisionPolicy))\n obj.decisionPolicy = any_1.Any.fromJSON(object.decisionPolicy);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.admin !== undefined && (obj.admin = message.admin);\n message.groupPolicyAddress !== undefined && (obj.groupPolicyAddress = message.groupPolicyAddress);\n message.decisionPolicy !== undefined &&\n (obj.decisionPolicy = message.decisionPolicy ? any_1.Any.toJSON(message.decisionPolicy) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpdateGroupPolicyDecisionPolicy();\n message.admin = object.admin ?? \"\";\n message.groupPolicyAddress = object.groupPolicyAddress ?? \"\";\n if (object.decisionPolicy !== undefined && object.decisionPolicy !== null) {\n message.decisionPolicy = any_1.Any.fromPartial(object.decisionPolicy);\n }\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupPolicyDecisionPolicyResponse() {\n return {};\n}\nexports.MsgUpdateGroupPolicyDecisionPolicyResponse = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupPolicyDecisionPolicyResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupPolicyDecisionPolicyResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpdateGroupPolicyDecisionPolicyResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpdateGroupPolicyDecisionPolicyResponse();\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupPolicyMetadata() {\n return {\n admin: \"\",\n groupPolicyAddress: \"\",\n metadata: \"\",\n };\n}\nexports.MsgUpdateGroupPolicyMetadata = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupPolicyMetadata\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.admin !== \"\") {\n writer.uint32(10).string(message.admin);\n }\n if (message.groupPolicyAddress !== \"\") {\n writer.uint32(18).string(message.groupPolicyAddress);\n }\n if (message.metadata !== \"\") {\n writer.uint32(26).string(message.metadata);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupPolicyMetadata();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.admin = reader.string();\n break;\n case 2:\n message.groupPolicyAddress = reader.string();\n break;\n case 3:\n message.metadata = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpdateGroupPolicyMetadata();\n if ((0, helpers_1.isSet)(object.admin))\n obj.admin = String(object.admin);\n if ((0, helpers_1.isSet)(object.groupPolicyAddress))\n obj.groupPolicyAddress = String(object.groupPolicyAddress);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.admin !== undefined && (obj.admin = message.admin);\n message.groupPolicyAddress !== undefined && (obj.groupPolicyAddress = message.groupPolicyAddress);\n message.metadata !== undefined && (obj.metadata = message.metadata);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpdateGroupPolicyMetadata();\n message.admin = object.admin ?? \"\";\n message.groupPolicyAddress = object.groupPolicyAddress ?? \"\";\n message.metadata = object.metadata ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgUpdateGroupPolicyMetadataResponse() {\n return {};\n}\nexports.MsgUpdateGroupPolicyMetadataResponse = {\n typeUrl: \"/cosmos.group.v1.MsgUpdateGroupPolicyMetadataResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateGroupPolicyMetadataResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpdateGroupPolicyMetadataResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpdateGroupPolicyMetadataResponse();\n return message;\n },\n};\nfunction createBaseMsgSubmitProposal() {\n return {\n groupPolicyAddress: \"\",\n proposers: [],\n metadata: \"\",\n messages: [],\n exec: 0,\n title: \"\",\n summary: \"\",\n };\n}\nexports.MsgSubmitProposal = {\n typeUrl: \"/cosmos.group.v1.MsgSubmitProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.groupPolicyAddress !== \"\") {\n writer.uint32(10).string(message.groupPolicyAddress);\n }\n for (const v of message.proposers) {\n writer.uint32(18).string(v);\n }\n if (message.metadata !== \"\") {\n writer.uint32(26).string(message.metadata);\n }\n for (const v of message.messages) {\n any_1.Any.encode(v, writer.uint32(34).fork()).ldelim();\n }\n if (message.exec !== 0) {\n writer.uint32(40).int32(message.exec);\n }\n if (message.title !== \"\") {\n writer.uint32(50).string(message.title);\n }\n if (message.summary !== \"\") {\n writer.uint32(58).string(message.summary);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubmitProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.groupPolicyAddress = reader.string();\n break;\n case 2:\n message.proposers.push(reader.string());\n break;\n case 3:\n message.metadata = reader.string();\n break;\n case 4:\n message.messages.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 5:\n message.exec = reader.int32();\n break;\n case 6:\n message.title = reader.string();\n break;\n case 7:\n message.summary = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgSubmitProposal();\n if ((0, helpers_1.isSet)(object.groupPolicyAddress))\n obj.groupPolicyAddress = String(object.groupPolicyAddress);\n if (Array.isArray(object?.proposers))\n obj.proposers = object.proposers.map((e) => String(e));\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n if (Array.isArray(object?.messages))\n obj.messages = object.messages.map((e) => any_1.Any.fromJSON(e));\n if ((0, helpers_1.isSet)(object.exec))\n obj.exec = execFromJSON(object.exec);\n if ((0, helpers_1.isSet)(object.title))\n obj.title = String(object.title);\n if ((0, helpers_1.isSet)(object.summary))\n obj.summary = String(object.summary);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.groupPolicyAddress !== undefined && (obj.groupPolicyAddress = message.groupPolicyAddress);\n if (message.proposers) {\n obj.proposers = message.proposers.map((e) => e);\n }\n else {\n obj.proposers = [];\n }\n message.metadata !== undefined && (obj.metadata = message.metadata);\n if (message.messages) {\n obj.messages = message.messages.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.messages = [];\n }\n message.exec !== undefined && (obj.exec = execToJSON(message.exec));\n message.title !== undefined && (obj.title = message.title);\n message.summary !== undefined && (obj.summary = message.summary);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgSubmitProposal();\n message.groupPolicyAddress = object.groupPolicyAddress ?? \"\";\n message.proposers = object.proposers?.map((e) => e) || [];\n message.metadata = object.metadata ?? \"\";\n message.messages = object.messages?.map((e) => any_1.Any.fromPartial(e)) || [];\n message.exec = object.exec ?? 0;\n message.title = object.title ?? \"\";\n message.summary = object.summary ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgSubmitProposalResponse() {\n return {\n proposalId: BigInt(0),\n };\n}\nexports.MsgSubmitProposalResponse = {\n typeUrl: \"/cosmos.group.v1.MsgSubmitProposalResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubmitProposalResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgSubmitProposalResponse();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgSubmitProposalResponse();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n return message;\n },\n};\nfunction createBaseMsgWithdrawProposal() {\n return {\n proposalId: BigInt(0),\n address: \"\",\n };\n}\nexports.MsgWithdrawProposal = {\n typeUrl: \"/cosmos.group.v1.MsgWithdrawProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.address !== \"\") {\n writer.uint32(18).string(message.address);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgWithdrawProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.address = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgWithdrawProposal();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.address !== undefined && (obj.address = message.address);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgWithdrawProposal();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.address = object.address ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgWithdrawProposalResponse() {\n return {};\n}\nexports.MsgWithdrawProposalResponse = {\n typeUrl: \"/cosmos.group.v1.MsgWithdrawProposalResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgWithdrawProposalResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgWithdrawProposalResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgWithdrawProposalResponse();\n return message;\n },\n};\nfunction createBaseMsgVote() {\n return {\n proposalId: BigInt(0),\n voter: \"\",\n option: 0,\n metadata: \"\",\n exec: 0,\n };\n}\nexports.MsgVote = {\n typeUrl: \"/cosmos.group.v1.MsgVote\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (message.option !== 0) {\n writer.uint32(24).int32(message.option);\n }\n if (message.metadata !== \"\") {\n writer.uint32(34).string(message.metadata);\n }\n if (message.exec !== 0) {\n writer.uint32(40).int32(message.exec);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVote();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.option = reader.int32();\n break;\n case 4:\n message.metadata = reader.string();\n break;\n case 5:\n message.exec = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgVote();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.voter))\n obj.voter = String(object.voter);\n if ((0, helpers_1.isSet)(object.option))\n obj.option = (0, types_1.voteOptionFromJSON)(object.option);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n if ((0, helpers_1.isSet)(object.exec))\n obj.exec = execFromJSON(object.exec);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n message.option !== undefined && (obj.option = (0, types_1.voteOptionToJSON)(message.option));\n message.metadata !== undefined && (obj.metadata = message.metadata);\n message.exec !== undefined && (obj.exec = execToJSON(message.exec));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgVote();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.voter = object.voter ?? \"\";\n message.option = object.option ?? 0;\n message.metadata = object.metadata ?? \"\";\n message.exec = object.exec ?? 0;\n return message;\n },\n};\nfunction createBaseMsgVoteResponse() {\n return {};\n}\nexports.MsgVoteResponse = {\n typeUrl: \"/cosmos.group.v1.MsgVoteResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVoteResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgVoteResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgVoteResponse();\n return message;\n },\n};\nfunction createBaseMsgExec() {\n return {\n proposalId: BigInt(0),\n executor: \"\",\n };\n}\nexports.MsgExec = {\n typeUrl: \"/cosmos.group.v1.MsgExec\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.executor !== \"\") {\n writer.uint32(18).string(message.executor);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgExec();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.executor = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgExec();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.executor))\n obj.executor = String(object.executor);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.executor !== undefined && (obj.executor = message.executor);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgExec();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.executor = object.executor ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgExecResponse() {\n return {\n result: 0,\n };\n}\nexports.MsgExecResponse = {\n typeUrl: \"/cosmos.group.v1.MsgExecResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.result !== 0) {\n writer.uint32(16).int32(message.result);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgExecResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 2:\n message.result = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgExecResponse();\n if ((0, helpers_1.isSet)(object.result))\n obj.result = (0, types_1.proposalExecutorResultFromJSON)(object.result);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = (0, types_1.proposalExecutorResultToJSON)(message.result));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgExecResponse();\n message.result = object.result ?? 0;\n return message;\n },\n};\nfunction createBaseMsgLeaveGroup() {\n return {\n address: \"\",\n groupId: BigInt(0),\n };\n}\nexports.MsgLeaveGroup = {\n typeUrl: \"/cosmos.group.v1.MsgLeaveGroup\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.groupId !== BigInt(0)) {\n writer.uint32(16).uint64(message.groupId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgLeaveGroup();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.groupId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgLeaveGroup();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.groupId))\n obj.groupId = BigInt(object.groupId.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgLeaveGroup();\n message.address = object.address ?? \"\";\n if (object.groupId !== undefined && object.groupId !== null) {\n message.groupId = BigInt(object.groupId.toString());\n }\n return message;\n },\n};\nfunction createBaseMsgLeaveGroupResponse() {\n return {};\n}\nexports.MsgLeaveGroupResponse = {\n typeUrl: \"/cosmos.group.v1.MsgLeaveGroupResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgLeaveGroupResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgLeaveGroupResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgLeaveGroupResponse();\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.CreateGroup = this.CreateGroup.bind(this);\n this.UpdateGroupMembers = this.UpdateGroupMembers.bind(this);\n this.UpdateGroupAdmin = this.UpdateGroupAdmin.bind(this);\n this.UpdateGroupMetadata = this.UpdateGroupMetadata.bind(this);\n this.CreateGroupPolicy = this.CreateGroupPolicy.bind(this);\n this.CreateGroupWithPolicy = this.CreateGroupWithPolicy.bind(this);\n this.UpdateGroupPolicyAdmin = this.UpdateGroupPolicyAdmin.bind(this);\n this.UpdateGroupPolicyDecisionPolicy = this.UpdateGroupPolicyDecisionPolicy.bind(this);\n this.UpdateGroupPolicyMetadata = this.UpdateGroupPolicyMetadata.bind(this);\n this.SubmitProposal = this.SubmitProposal.bind(this);\n this.WithdrawProposal = this.WithdrawProposal.bind(this);\n this.Vote = this.Vote.bind(this);\n this.Exec = this.Exec.bind(this);\n this.LeaveGroup = this.LeaveGroup.bind(this);\n }\n CreateGroup(request) {\n const data = exports.MsgCreateGroup.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"CreateGroup\", data);\n return promise.then((data) => exports.MsgCreateGroupResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpdateGroupMembers(request) {\n const data = exports.MsgUpdateGroupMembers.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"UpdateGroupMembers\", data);\n return promise.then((data) => exports.MsgUpdateGroupMembersResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpdateGroupAdmin(request) {\n const data = exports.MsgUpdateGroupAdmin.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"UpdateGroupAdmin\", data);\n return promise.then((data) => exports.MsgUpdateGroupAdminResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpdateGroupMetadata(request) {\n const data = exports.MsgUpdateGroupMetadata.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"UpdateGroupMetadata\", data);\n return promise.then((data) => exports.MsgUpdateGroupMetadataResponse.decode(new binary_1.BinaryReader(data)));\n }\n CreateGroupPolicy(request) {\n const data = exports.MsgCreateGroupPolicy.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"CreateGroupPolicy\", data);\n return promise.then((data) => exports.MsgCreateGroupPolicyResponse.decode(new binary_1.BinaryReader(data)));\n }\n CreateGroupWithPolicy(request) {\n const data = exports.MsgCreateGroupWithPolicy.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"CreateGroupWithPolicy\", data);\n return promise.then((data) => exports.MsgCreateGroupWithPolicyResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpdateGroupPolicyAdmin(request) {\n const data = exports.MsgUpdateGroupPolicyAdmin.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"UpdateGroupPolicyAdmin\", data);\n return promise.then((data) => exports.MsgUpdateGroupPolicyAdminResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpdateGroupPolicyDecisionPolicy(request) {\n const data = exports.MsgUpdateGroupPolicyDecisionPolicy.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"UpdateGroupPolicyDecisionPolicy\", data);\n return promise.then((data) => exports.MsgUpdateGroupPolicyDecisionPolicyResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpdateGroupPolicyMetadata(request) {\n const data = exports.MsgUpdateGroupPolicyMetadata.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"UpdateGroupPolicyMetadata\", data);\n return promise.then((data) => exports.MsgUpdateGroupPolicyMetadataResponse.decode(new binary_1.BinaryReader(data)));\n }\n SubmitProposal(request) {\n const data = exports.MsgSubmitProposal.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"SubmitProposal\", data);\n return promise.then((data) => exports.MsgSubmitProposalResponse.decode(new binary_1.BinaryReader(data)));\n }\n WithdrawProposal(request) {\n const data = exports.MsgWithdrawProposal.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"WithdrawProposal\", data);\n return promise.then((data) => exports.MsgWithdrawProposalResponse.decode(new binary_1.BinaryReader(data)));\n }\n Vote(request) {\n const data = exports.MsgVote.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"Vote\", data);\n return promise.then((data) => exports.MsgVoteResponse.decode(new binary_1.BinaryReader(data)));\n }\n Exec(request) {\n const data = exports.MsgExec.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"Exec\", data);\n return promise.then((data) => exports.MsgExecResponse.decode(new binary_1.BinaryReader(data)));\n }\n LeaveGroup(request) {\n const data = exports.MsgLeaveGroup.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.group.v1.Msg\", \"LeaveGroup\", data);\n return promise.then((data) => exports.MsgLeaveGroupResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Vote = exports.TallyResult = exports.Proposal = exports.GroupPolicyInfo = exports.GroupMember = exports.GroupInfo = exports.DecisionPolicyWindows = exports.PercentageDecisionPolicy = exports.ThresholdDecisionPolicy = exports.MemberRequest = exports.Member = exports.proposalExecutorResultToJSON = exports.proposalExecutorResultFromJSON = exports.ProposalExecutorResult = exports.proposalStatusToJSON = exports.proposalStatusFromJSON = exports.ProposalStatus = exports.voteOptionToJSON = exports.voteOptionFromJSON = exports.VoteOption = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst duration_1 = require(\"../../../google/protobuf/duration\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.group.v1\";\n/** VoteOption enumerates the valid vote options for a given proposal. */\nvar VoteOption;\n(function (VoteOption) {\n /**\n * VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines an unspecified vote option which will\n * return an error.\n */\n VoteOption[VoteOption[\"VOTE_OPTION_UNSPECIFIED\"] = 0] = \"VOTE_OPTION_UNSPECIFIED\";\n /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_YES\"] = 1] = \"VOTE_OPTION_YES\";\n /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_ABSTAIN\"] = 2] = \"VOTE_OPTION_ABSTAIN\";\n /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_NO\"] = 3] = \"VOTE_OPTION_NO\";\n /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_NO_WITH_VETO\"] = 4] = \"VOTE_OPTION_NO_WITH_VETO\";\n VoteOption[VoteOption[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(VoteOption || (exports.VoteOption = VoteOption = {}));\nfunction voteOptionFromJSON(object) {\n switch (object) {\n case 0:\n case \"VOTE_OPTION_UNSPECIFIED\":\n return VoteOption.VOTE_OPTION_UNSPECIFIED;\n case 1:\n case \"VOTE_OPTION_YES\":\n return VoteOption.VOTE_OPTION_YES;\n case 2:\n case \"VOTE_OPTION_ABSTAIN\":\n return VoteOption.VOTE_OPTION_ABSTAIN;\n case 3:\n case \"VOTE_OPTION_NO\":\n return VoteOption.VOTE_OPTION_NO;\n case 4:\n case \"VOTE_OPTION_NO_WITH_VETO\":\n return VoteOption.VOTE_OPTION_NO_WITH_VETO;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return VoteOption.UNRECOGNIZED;\n }\n}\nexports.voteOptionFromJSON = voteOptionFromJSON;\nfunction voteOptionToJSON(object) {\n switch (object) {\n case VoteOption.VOTE_OPTION_UNSPECIFIED:\n return \"VOTE_OPTION_UNSPECIFIED\";\n case VoteOption.VOTE_OPTION_YES:\n return \"VOTE_OPTION_YES\";\n case VoteOption.VOTE_OPTION_ABSTAIN:\n return \"VOTE_OPTION_ABSTAIN\";\n case VoteOption.VOTE_OPTION_NO:\n return \"VOTE_OPTION_NO\";\n case VoteOption.VOTE_OPTION_NO_WITH_VETO:\n return \"VOTE_OPTION_NO_WITH_VETO\";\n case VoteOption.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.voteOptionToJSON = voteOptionToJSON;\n/** ProposalStatus defines proposal statuses. */\nvar ProposalStatus;\n(function (ProposalStatus) {\n /** PROPOSAL_STATUS_UNSPECIFIED - An empty value is invalid and not allowed. */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_UNSPECIFIED\"] = 0] = \"PROPOSAL_STATUS_UNSPECIFIED\";\n /** PROPOSAL_STATUS_SUBMITTED - Initial status of a proposal when submitted. */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_SUBMITTED\"] = 1] = \"PROPOSAL_STATUS_SUBMITTED\";\n /**\n * PROPOSAL_STATUS_ACCEPTED - Final status of a proposal when the final tally is done and the outcome\n * passes the group policy's decision policy.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_ACCEPTED\"] = 2] = \"PROPOSAL_STATUS_ACCEPTED\";\n /**\n * PROPOSAL_STATUS_REJECTED - Final status of a proposal when the final tally is done and the outcome\n * is rejected by the group policy's decision policy.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_REJECTED\"] = 3] = \"PROPOSAL_STATUS_REJECTED\";\n /**\n * PROPOSAL_STATUS_ABORTED - Final status of a proposal when the group policy is modified before the\n * final tally.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_ABORTED\"] = 4] = \"PROPOSAL_STATUS_ABORTED\";\n /**\n * PROPOSAL_STATUS_WITHDRAWN - A proposal can be withdrawn before the voting start time by the owner.\n * When this happens the final status is Withdrawn.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_WITHDRAWN\"] = 5] = \"PROPOSAL_STATUS_WITHDRAWN\";\n ProposalStatus[ProposalStatus[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ProposalStatus || (exports.ProposalStatus = ProposalStatus = {}));\nfunction proposalStatusFromJSON(object) {\n switch (object) {\n case 0:\n case \"PROPOSAL_STATUS_UNSPECIFIED\":\n return ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED;\n case 1:\n case \"PROPOSAL_STATUS_SUBMITTED\":\n return ProposalStatus.PROPOSAL_STATUS_SUBMITTED;\n case 2:\n case \"PROPOSAL_STATUS_ACCEPTED\":\n return ProposalStatus.PROPOSAL_STATUS_ACCEPTED;\n case 3:\n case \"PROPOSAL_STATUS_REJECTED\":\n return ProposalStatus.PROPOSAL_STATUS_REJECTED;\n case 4:\n case \"PROPOSAL_STATUS_ABORTED\":\n return ProposalStatus.PROPOSAL_STATUS_ABORTED;\n case 5:\n case \"PROPOSAL_STATUS_WITHDRAWN\":\n return ProposalStatus.PROPOSAL_STATUS_WITHDRAWN;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ProposalStatus.UNRECOGNIZED;\n }\n}\nexports.proposalStatusFromJSON = proposalStatusFromJSON;\nfunction proposalStatusToJSON(object) {\n switch (object) {\n case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED:\n return \"PROPOSAL_STATUS_UNSPECIFIED\";\n case ProposalStatus.PROPOSAL_STATUS_SUBMITTED:\n return \"PROPOSAL_STATUS_SUBMITTED\";\n case ProposalStatus.PROPOSAL_STATUS_ACCEPTED:\n return \"PROPOSAL_STATUS_ACCEPTED\";\n case ProposalStatus.PROPOSAL_STATUS_REJECTED:\n return \"PROPOSAL_STATUS_REJECTED\";\n case ProposalStatus.PROPOSAL_STATUS_ABORTED:\n return \"PROPOSAL_STATUS_ABORTED\";\n case ProposalStatus.PROPOSAL_STATUS_WITHDRAWN:\n return \"PROPOSAL_STATUS_WITHDRAWN\";\n case ProposalStatus.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.proposalStatusToJSON = proposalStatusToJSON;\n/** ProposalExecutorResult defines types of proposal executor results. */\nvar ProposalExecutorResult;\n(function (ProposalExecutorResult) {\n /** PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED - An empty value is not allowed. */\n ProposalExecutorResult[ProposalExecutorResult[\"PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED\"] = 0] = \"PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED\";\n /** PROPOSAL_EXECUTOR_RESULT_NOT_RUN - We have not yet run the executor. */\n ProposalExecutorResult[ProposalExecutorResult[\"PROPOSAL_EXECUTOR_RESULT_NOT_RUN\"] = 1] = \"PROPOSAL_EXECUTOR_RESULT_NOT_RUN\";\n /** PROPOSAL_EXECUTOR_RESULT_SUCCESS - The executor was successful and proposed action updated state. */\n ProposalExecutorResult[ProposalExecutorResult[\"PROPOSAL_EXECUTOR_RESULT_SUCCESS\"] = 2] = \"PROPOSAL_EXECUTOR_RESULT_SUCCESS\";\n /** PROPOSAL_EXECUTOR_RESULT_FAILURE - The executor returned an error and proposed action didn't update state. */\n ProposalExecutorResult[ProposalExecutorResult[\"PROPOSAL_EXECUTOR_RESULT_FAILURE\"] = 3] = \"PROPOSAL_EXECUTOR_RESULT_FAILURE\";\n ProposalExecutorResult[ProposalExecutorResult[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ProposalExecutorResult || (exports.ProposalExecutorResult = ProposalExecutorResult = {}));\nfunction proposalExecutorResultFromJSON(object) {\n switch (object) {\n case 0:\n case \"PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED\":\n return ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED;\n case 1:\n case \"PROPOSAL_EXECUTOR_RESULT_NOT_RUN\":\n return ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_NOT_RUN;\n case 2:\n case \"PROPOSAL_EXECUTOR_RESULT_SUCCESS\":\n return ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_SUCCESS;\n case 3:\n case \"PROPOSAL_EXECUTOR_RESULT_FAILURE\":\n return ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_FAILURE;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ProposalExecutorResult.UNRECOGNIZED;\n }\n}\nexports.proposalExecutorResultFromJSON = proposalExecutorResultFromJSON;\nfunction proposalExecutorResultToJSON(object) {\n switch (object) {\n case ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED:\n return \"PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED\";\n case ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_NOT_RUN:\n return \"PROPOSAL_EXECUTOR_RESULT_NOT_RUN\";\n case ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_SUCCESS:\n return \"PROPOSAL_EXECUTOR_RESULT_SUCCESS\";\n case ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_FAILURE:\n return \"PROPOSAL_EXECUTOR_RESULT_FAILURE\";\n case ProposalExecutorResult.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.proposalExecutorResultToJSON = proposalExecutorResultToJSON;\nfunction createBaseMember() {\n return {\n address: \"\",\n weight: \"\",\n metadata: \"\",\n addedAt: timestamp_1.Timestamp.fromPartial({}),\n };\n}\nexports.Member = {\n typeUrl: \"/cosmos.group.v1.Member\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.weight !== \"\") {\n writer.uint32(18).string(message.weight);\n }\n if (message.metadata !== \"\") {\n writer.uint32(26).string(message.metadata);\n }\n if (message.addedAt !== undefined) {\n timestamp_1.Timestamp.encode(message.addedAt, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMember();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.weight = reader.string();\n break;\n case 3:\n message.metadata = reader.string();\n break;\n case 4:\n message.addedAt = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMember();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.weight))\n obj.weight = String(object.weight);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n if ((0, helpers_1.isSet)(object.addedAt))\n obj.addedAt = (0, helpers_1.fromJsonTimestamp)(object.addedAt);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.weight !== undefined && (obj.weight = message.weight);\n message.metadata !== undefined && (obj.metadata = message.metadata);\n message.addedAt !== undefined && (obj.addedAt = (0, helpers_1.fromTimestamp)(message.addedAt).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMember();\n message.address = object.address ?? \"\";\n message.weight = object.weight ?? \"\";\n message.metadata = object.metadata ?? \"\";\n if (object.addedAt !== undefined && object.addedAt !== null) {\n message.addedAt = timestamp_1.Timestamp.fromPartial(object.addedAt);\n }\n return message;\n },\n};\nfunction createBaseMemberRequest() {\n return {\n address: \"\",\n weight: \"\",\n metadata: \"\",\n };\n}\nexports.MemberRequest = {\n typeUrl: \"/cosmos.group.v1.MemberRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.weight !== \"\") {\n writer.uint32(18).string(message.weight);\n }\n if (message.metadata !== \"\") {\n writer.uint32(26).string(message.metadata);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMemberRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.weight = reader.string();\n break;\n case 3:\n message.metadata = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMemberRequest();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.weight))\n obj.weight = String(object.weight);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.weight !== undefined && (obj.weight = message.weight);\n message.metadata !== undefined && (obj.metadata = message.metadata);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMemberRequest();\n message.address = object.address ?? \"\";\n message.weight = object.weight ?? \"\";\n message.metadata = object.metadata ?? \"\";\n return message;\n },\n};\nfunction createBaseThresholdDecisionPolicy() {\n return {\n threshold: \"\",\n windows: undefined,\n };\n}\nexports.ThresholdDecisionPolicy = {\n typeUrl: \"/cosmos.group.v1.ThresholdDecisionPolicy\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.threshold !== \"\") {\n writer.uint32(10).string(message.threshold);\n }\n if (message.windows !== undefined) {\n exports.DecisionPolicyWindows.encode(message.windows, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseThresholdDecisionPolicy();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.threshold = reader.string();\n break;\n case 2:\n message.windows = exports.DecisionPolicyWindows.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseThresholdDecisionPolicy();\n if ((0, helpers_1.isSet)(object.threshold))\n obj.threshold = String(object.threshold);\n if ((0, helpers_1.isSet)(object.windows))\n obj.windows = exports.DecisionPolicyWindows.fromJSON(object.windows);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.threshold !== undefined && (obj.threshold = message.threshold);\n message.windows !== undefined &&\n (obj.windows = message.windows ? exports.DecisionPolicyWindows.toJSON(message.windows) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseThresholdDecisionPolicy();\n message.threshold = object.threshold ?? \"\";\n if (object.windows !== undefined && object.windows !== null) {\n message.windows = exports.DecisionPolicyWindows.fromPartial(object.windows);\n }\n return message;\n },\n};\nfunction createBasePercentageDecisionPolicy() {\n return {\n percentage: \"\",\n windows: undefined,\n };\n}\nexports.PercentageDecisionPolicy = {\n typeUrl: \"/cosmos.group.v1.PercentageDecisionPolicy\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.percentage !== \"\") {\n writer.uint32(10).string(message.percentage);\n }\n if (message.windows !== undefined) {\n exports.DecisionPolicyWindows.encode(message.windows, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePercentageDecisionPolicy();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.percentage = reader.string();\n break;\n case 2:\n message.windows = exports.DecisionPolicyWindows.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePercentageDecisionPolicy();\n if ((0, helpers_1.isSet)(object.percentage))\n obj.percentage = String(object.percentage);\n if ((0, helpers_1.isSet)(object.windows))\n obj.windows = exports.DecisionPolicyWindows.fromJSON(object.windows);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.percentage !== undefined && (obj.percentage = message.percentage);\n message.windows !== undefined &&\n (obj.windows = message.windows ? exports.DecisionPolicyWindows.toJSON(message.windows) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBasePercentageDecisionPolicy();\n message.percentage = object.percentage ?? \"\";\n if (object.windows !== undefined && object.windows !== null) {\n message.windows = exports.DecisionPolicyWindows.fromPartial(object.windows);\n }\n return message;\n },\n};\nfunction createBaseDecisionPolicyWindows() {\n return {\n votingPeriod: duration_1.Duration.fromPartial({}),\n minExecutionPeriod: duration_1.Duration.fromPartial({}),\n };\n}\nexports.DecisionPolicyWindows = {\n typeUrl: \"/cosmos.group.v1.DecisionPolicyWindows\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.votingPeriod !== undefined) {\n duration_1.Duration.encode(message.votingPeriod, writer.uint32(10).fork()).ldelim();\n }\n if (message.minExecutionPeriod !== undefined) {\n duration_1.Duration.encode(message.minExecutionPeriod, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDecisionPolicyWindows();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.votingPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 2:\n message.minExecutionPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDecisionPolicyWindows();\n if ((0, helpers_1.isSet)(object.votingPeriod))\n obj.votingPeriod = duration_1.Duration.fromJSON(object.votingPeriod);\n if ((0, helpers_1.isSet)(object.minExecutionPeriod))\n obj.minExecutionPeriod = duration_1.Duration.fromJSON(object.minExecutionPeriod);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.votingPeriod !== undefined &&\n (obj.votingPeriod = message.votingPeriod ? duration_1.Duration.toJSON(message.votingPeriod) : undefined);\n message.minExecutionPeriod !== undefined &&\n (obj.minExecutionPeriod = message.minExecutionPeriod\n ? duration_1.Duration.toJSON(message.minExecutionPeriod)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDecisionPolicyWindows();\n if (object.votingPeriod !== undefined && object.votingPeriod !== null) {\n message.votingPeriod = duration_1.Duration.fromPartial(object.votingPeriod);\n }\n if (object.minExecutionPeriod !== undefined && object.minExecutionPeriod !== null) {\n message.minExecutionPeriod = duration_1.Duration.fromPartial(object.minExecutionPeriod);\n }\n return message;\n },\n};\nfunction createBaseGroupInfo() {\n return {\n id: BigInt(0),\n admin: \"\",\n metadata: \"\",\n version: BigInt(0),\n totalWeight: \"\",\n createdAt: timestamp_1.Timestamp.fromPartial({}),\n };\n}\nexports.GroupInfo = {\n typeUrl: \"/cosmos.group.v1.GroupInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.id !== BigInt(0)) {\n writer.uint32(8).uint64(message.id);\n }\n if (message.admin !== \"\") {\n writer.uint32(18).string(message.admin);\n }\n if (message.metadata !== \"\") {\n writer.uint32(26).string(message.metadata);\n }\n if (message.version !== BigInt(0)) {\n writer.uint32(32).uint64(message.version);\n }\n if (message.totalWeight !== \"\") {\n writer.uint32(42).string(message.totalWeight);\n }\n if (message.createdAt !== undefined) {\n timestamp_1.Timestamp.encode(message.createdAt, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGroupInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.uint64();\n break;\n case 2:\n message.admin = reader.string();\n break;\n case 3:\n message.metadata = reader.string();\n break;\n case 4:\n message.version = reader.uint64();\n break;\n case 5:\n message.totalWeight = reader.string();\n break;\n case 6:\n message.createdAt = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGroupInfo();\n if ((0, helpers_1.isSet)(object.id))\n obj.id = BigInt(object.id.toString());\n if ((0, helpers_1.isSet)(object.admin))\n obj.admin = String(object.admin);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n if ((0, helpers_1.isSet)(object.version))\n obj.version = BigInt(object.version.toString());\n if ((0, helpers_1.isSet)(object.totalWeight))\n obj.totalWeight = String(object.totalWeight);\n if ((0, helpers_1.isSet)(object.createdAt))\n obj.createdAt = (0, helpers_1.fromJsonTimestamp)(object.createdAt);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.id !== undefined && (obj.id = (message.id || BigInt(0)).toString());\n message.admin !== undefined && (obj.admin = message.admin);\n message.metadata !== undefined && (obj.metadata = message.metadata);\n message.version !== undefined && (obj.version = (message.version || BigInt(0)).toString());\n message.totalWeight !== undefined && (obj.totalWeight = message.totalWeight);\n message.createdAt !== undefined && (obj.createdAt = (0, helpers_1.fromTimestamp)(message.createdAt).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGroupInfo();\n if (object.id !== undefined && object.id !== null) {\n message.id = BigInt(object.id.toString());\n }\n message.admin = object.admin ?? \"\";\n message.metadata = object.metadata ?? \"\";\n if (object.version !== undefined && object.version !== null) {\n message.version = BigInt(object.version.toString());\n }\n message.totalWeight = object.totalWeight ?? \"\";\n if (object.createdAt !== undefined && object.createdAt !== null) {\n message.createdAt = timestamp_1.Timestamp.fromPartial(object.createdAt);\n }\n return message;\n },\n};\nfunction createBaseGroupMember() {\n return {\n groupId: BigInt(0),\n member: undefined,\n };\n}\nexports.GroupMember = {\n typeUrl: \"/cosmos.group.v1.GroupMember\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.groupId !== BigInt(0)) {\n writer.uint32(8).uint64(message.groupId);\n }\n if (message.member !== undefined) {\n exports.Member.encode(message.member, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGroupMember();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.groupId = reader.uint64();\n break;\n case 2:\n message.member = exports.Member.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGroupMember();\n if ((0, helpers_1.isSet)(object.groupId))\n obj.groupId = BigInt(object.groupId.toString());\n if ((0, helpers_1.isSet)(object.member))\n obj.member = exports.Member.fromJSON(object.member);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());\n message.member !== undefined && (obj.member = message.member ? exports.Member.toJSON(message.member) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGroupMember();\n if (object.groupId !== undefined && object.groupId !== null) {\n message.groupId = BigInt(object.groupId.toString());\n }\n if (object.member !== undefined && object.member !== null) {\n message.member = exports.Member.fromPartial(object.member);\n }\n return message;\n },\n};\nfunction createBaseGroupPolicyInfo() {\n return {\n address: \"\",\n groupId: BigInt(0),\n admin: \"\",\n metadata: \"\",\n version: BigInt(0),\n decisionPolicy: undefined,\n createdAt: timestamp_1.Timestamp.fromPartial({}),\n };\n}\nexports.GroupPolicyInfo = {\n typeUrl: \"/cosmos.group.v1.GroupPolicyInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.groupId !== BigInt(0)) {\n writer.uint32(16).uint64(message.groupId);\n }\n if (message.admin !== \"\") {\n writer.uint32(26).string(message.admin);\n }\n if (message.metadata !== \"\") {\n writer.uint32(34).string(message.metadata);\n }\n if (message.version !== BigInt(0)) {\n writer.uint32(40).uint64(message.version);\n }\n if (message.decisionPolicy !== undefined) {\n any_1.Any.encode(message.decisionPolicy, writer.uint32(50).fork()).ldelim();\n }\n if (message.createdAt !== undefined) {\n timestamp_1.Timestamp.encode(message.createdAt, writer.uint32(58).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGroupPolicyInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.groupId = reader.uint64();\n break;\n case 3:\n message.admin = reader.string();\n break;\n case 4:\n message.metadata = reader.string();\n break;\n case 5:\n message.version = reader.uint64();\n break;\n case 6:\n message.decisionPolicy = any_1.Any.decode(reader, reader.uint32());\n break;\n case 7:\n message.createdAt = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGroupPolicyInfo();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.groupId))\n obj.groupId = BigInt(object.groupId.toString());\n if ((0, helpers_1.isSet)(object.admin))\n obj.admin = String(object.admin);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n if ((0, helpers_1.isSet)(object.version))\n obj.version = BigInt(object.version.toString());\n if ((0, helpers_1.isSet)(object.decisionPolicy))\n obj.decisionPolicy = any_1.Any.fromJSON(object.decisionPolicy);\n if ((0, helpers_1.isSet)(object.createdAt))\n obj.createdAt = (0, helpers_1.fromJsonTimestamp)(object.createdAt);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString());\n message.admin !== undefined && (obj.admin = message.admin);\n message.metadata !== undefined && (obj.metadata = message.metadata);\n message.version !== undefined && (obj.version = (message.version || BigInt(0)).toString());\n message.decisionPolicy !== undefined &&\n (obj.decisionPolicy = message.decisionPolicy ? any_1.Any.toJSON(message.decisionPolicy) : undefined);\n message.createdAt !== undefined && (obj.createdAt = (0, helpers_1.fromTimestamp)(message.createdAt).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGroupPolicyInfo();\n message.address = object.address ?? \"\";\n if (object.groupId !== undefined && object.groupId !== null) {\n message.groupId = BigInt(object.groupId.toString());\n }\n message.admin = object.admin ?? \"\";\n message.metadata = object.metadata ?? \"\";\n if (object.version !== undefined && object.version !== null) {\n message.version = BigInt(object.version.toString());\n }\n if (object.decisionPolicy !== undefined && object.decisionPolicy !== null) {\n message.decisionPolicy = any_1.Any.fromPartial(object.decisionPolicy);\n }\n if (object.createdAt !== undefined && object.createdAt !== null) {\n message.createdAt = timestamp_1.Timestamp.fromPartial(object.createdAt);\n }\n return message;\n },\n};\nfunction createBaseProposal() {\n return {\n id: BigInt(0),\n groupPolicyAddress: \"\",\n metadata: \"\",\n proposers: [],\n submitTime: timestamp_1.Timestamp.fromPartial({}),\n groupVersion: BigInt(0),\n groupPolicyVersion: BigInt(0),\n status: 0,\n finalTallyResult: exports.TallyResult.fromPartial({}),\n votingPeriodEnd: timestamp_1.Timestamp.fromPartial({}),\n executorResult: 0,\n messages: [],\n title: \"\",\n summary: \"\",\n };\n}\nexports.Proposal = {\n typeUrl: \"/cosmos.group.v1.Proposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.id !== BigInt(0)) {\n writer.uint32(8).uint64(message.id);\n }\n if (message.groupPolicyAddress !== \"\") {\n writer.uint32(18).string(message.groupPolicyAddress);\n }\n if (message.metadata !== \"\") {\n writer.uint32(26).string(message.metadata);\n }\n for (const v of message.proposers) {\n writer.uint32(34).string(v);\n }\n if (message.submitTime !== undefined) {\n timestamp_1.Timestamp.encode(message.submitTime, writer.uint32(42).fork()).ldelim();\n }\n if (message.groupVersion !== BigInt(0)) {\n writer.uint32(48).uint64(message.groupVersion);\n }\n if (message.groupPolicyVersion !== BigInt(0)) {\n writer.uint32(56).uint64(message.groupPolicyVersion);\n }\n if (message.status !== 0) {\n writer.uint32(64).int32(message.status);\n }\n if (message.finalTallyResult !== undefined) {\n exports.TallyResult.encode(message.finalTallyResult, writer.uint32(74).fork()).ldelim();\n }\n if (message.votingPeriodEnd !== undefined) {\n timestamp_1.Timestamp.encode(message.votingPeriodEnd, writer.uint32(82).fork()).ldelim();\n }\n if (message.executorResult !== 0) {\n writer.uint32(88).int32(message.executorResult);\n }\n for (const v of message.messages) {\n any_1.Any.encode(v, writer.uint32(98).fork()).ldelim();\n }\n if (message.title !== \"\") {\n writer.uint32(106).string(message.title);\n }\n if (message.summary !== \"\") {\n writer.uint32(114).string(message.summary);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.uint64();\n break;\n case 2:\n message.groupPolicyAddress = reader.string();\n break;\n case 3:\n message.metadata = reader.string();\n break;\n case 4:\n message.proposers.push(reader.string());\n break;\n case 5:\n message.submitTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 6:\n message.groupVersion = reader.uint64();\n break;\n case 7:\n message.groupPolicyVersion = reader.uint64();\n break;\n case 8:\n message.status = reader.int32();\n break;\n case 9:\n message.finalTallyResult = exports.TallyResult.decode(reader, reader.uint32());\n break;\n case 10:\n message.votingPeriodEnd = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 11:\n message.executorResult = reader.int32();\n break;\n case 12:\n message.messages.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 13:\n message.title = reader.string();\n break;\n case 14:\n message.summary = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseProposal();\n if ((0, helpers_1.isSet)(object.id))\n obj.id = BigInt(object.id.toString());\n if ((0, helpers_1.isSet)(object.groupPolicyAddress))\n obj.groupPolicyAddress = String(object.groupPolicyAddress);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n if (Array.isArray(object?.proposers))\n obj.proposers = object.proposers.map((e) => String(e));\n if ((0, helpers_1.isSet)(object.submitTime))\n obj.submitTime = (0, helpers_1.fromJsonTimestamp)(object.submitTime);\n if ((0, helpers_1.isSet)(object.groupVersion))\n obj.groupVersion = BigInt(object.groupVersion.toString());\n if ((0, helpers_1.isSet)(object.groupPolicyVersion))\n obj.groupPolicyVersion = BigInt(object.groupPolicyVersion.toString());\n if ((0, helpers_1.isSet)(object.status))\n obj.status = proposalStatusFromJSON(object.status);\n if ((0, helpers_1.isSet)(object.finalTallyResult))\n obj.finalTallyResult = exports.TallyResult.fromJSON(object.finalTallyResult);\n if ((0, helpers_1.isSet)(object.votingPeriodEnd))\n obj.votingPeriodEnd = (0, helpers_1.fromJsonTimestamp)(object.votingPeriodEnd);\n if ((0, helpers_1.isSet)(object.executorResult))\n obj.executorResult = proposalExecutorResultFromJSON(object.executorResult);\n if (Array.isArray(object?.messages))\n obj.messages = object.messages.map((e) => any_1.Any.fromJSON(e));\n if ((0, helpers_1.isSet)(object.title))\n obj.title = String(object.title);\n if ((0, helpers_1.isSet)(object.summary))\n obj.summary = String(object.summary);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.id !== undefined && (obj.id = (message.id || BigInt(0)).toString());\n message.groupPolicyAddress !== undefined && (obj.groupPolicyAddress = message.groupPolicyAddress);\n message.metadata !== undefined && (obj.metadata = message.metadata);\n if (message.proposers) {\n obj.proposers = message.proposers.map((e) => e);\n }\n else {\n obj.proposers = [];\n }\n message.submitTime !== undefined && (obj.submitTime = (0, helpers_1.fromTimestamp)(message.submitTime).toISOString());\n message.groupVersion !== undefined && (obj.groupVersion = (message.groupVersion || BigInt(0)).toString());\n message.groupPolicyVersion !== undefined &&\n (obj.groupPolicyVersion = (message.groupPolicyVersion || BigInt(0)).toString());\n message.status !== undefined && (obj.status = proposalStatusToJSON(message.status));\n message.finalTallyResult !== undefined &&\n (obj.finalTallyResult = message.finalTallyResult\n ? exports.TallyResult.toJSON(message.finalTallyResult)\n : undefined);\n message.votingPeriodEnd !== undefined &&\n (obj.votingPeriodEnd = (0, helpers_1.fromTimestamp)(message.votingPeriodEnd).toISOString());\n message.executorResult !== undefined &&\n (obj.executorResult = proposalExecutorResultToJSON(message.executorResult));\n if (message.messages) {\n obj.messages = message.messages.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.messages = [];\n }\n message.title !== undefined && (obj.title = message.title);\n message.summary !== undefined && (obj.summary = message.summary);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseProposal();\n if (object.id !== undefined && object.id !== null) {\n message.id = BigInt(object.id.toString());\n }\n message.groupPolicyAddress = object.groupPolicyAddress ?? \"\";\n message.metadata = object.metadata ?? \"\";\n message.proposers = object.proposers?.map((e) => e) || [];\n if (object.submitTime !== undefined && object.submitTime !== null) {\n message.submitTime = timestamp_1.Timestamp.fromPartial(object.submitTime);\n }\n if (object.groupVersion !== undefined && object.groupVersion !== null) {\n message.groupVersion = BigInt(object.groupVersion.toString());\n }\n if (object.groupPolicyVersion !== undefined && object.groupPolicyVersion !== null) {\n message.groupPolicyVersion = BigInt(object.groupPolicyVersion.toString());\n }\n message.status = object.status ?? 0;\n if (object.finalTallyResult !== undefined && object.finalTallyResult !== null) {\n message.finalTallyResult = exports.TallyResult.fromPartial(object.finalTallyResult);\n }\n if (object.votingPeriodEnd !== undefined && object.votingPeriodEnd !== null) {\n message.votingPeriodEnd = timestamp_1.Timestamp.fromPartial(object.votingPeriodEnd);\n }\n message.executorResult = object.executorResult ?? 0;\n message.messages = object.messages?.map((e) => any_1.Any.fromPartial(e)) || [];\n message.title = object.title ?? \"\";\n message.summary = object.summary ?? \"\";\n return message;\n },\n};\nfunction createBaseTallyResult() {\n return {\n yesCount: \"\",\n abstainCount: \"\",\n noCount: \"\",\n noWithVetoCount: \"\",\n };\n}\nexports.TallyResult = {\n typeUrl: \"/cosmos.group.v1.TallyResult\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.yesCount !== \"\") {\n writer.uint32(10).string(message.yesCount);\n }\n if (message.abstainCount !== \"\") {\n writer.uint32(18).string(message.abstainCount);\n }\n if (message.noCount !== \"\") {\n writer.uint32(26).string(message.noCount);\n }\n if (message.noWithVetoCount !== \"\") {\n writer.uint32(34).string(message.noWithVetoCount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTallyResult();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.yesCount = reader.string();\n break;\n case 2:\n message.abstainCount = reader.string();\n break;\n case 3:\n message.noCount = reader.string();\n break;\n case 4:\n message.noWithVetoCount = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTallyResult();\n if ((0, helpers_1.isSet)(object.yesCount))\n obj.yesCount = String(object.yesCount);\n if ((0, helpers_1.isSet)(object.abstainCount))\n obj.abstainCount = String(object.abstainCount);\n if ((0, helpers_1.isSet)(object.noCount))\n obj.noCount = String(object.noCount);\n if ((0, helpers_1.isSet)(object.noWithVetoCount))\n obj.noWithVetoCount = String(object.noWithVetoCount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.yesCount !== undefined && (obj.yesCount = message.yesCount);\n message.abstainCount !== undefined && (obj.abstainCount = message.abstainCount);\n message.noCount !== undefined && (obj.noCount = message.noCount);\n message.noWithVetoCount !== undefined && (obj.noWithVetoCount = message.noWithVetoCount);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTallyResult();\n message.yesCount = object.yesCount ?? \"\";\n message.abstainCount = object.abstainCount ?? \"\";\n message.noCount = object.noCount ?? \"\";\n message.noWithVetoCount = object.noWithVetoCount ?? \"\";\n return message;\n },\n};\nfunction createBaseVote() {\n return {\n proposalId: BigInt(0),\n voter: \"\",\n option: 0,\n metadata: \"\",\n submitTime: timestamp_1.Timestamp.fromPartial({}),\n };\n}\nexports.Vote = {\n typeUrl: \"/cosmos.group.v1.Vote\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.proposalId !== BigInt(0)) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (message.option !== 0) {\n writer.uint32(24).int32(message.option);\n }\n if (message.metadata !== \"\") {\n writer.uint32(34).string(message.metadata);\n }\n if (message.submitTime !== undefined) {\n timestamp_1.Timestamp.encode(message.submitTime, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVote();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.option = reader.int32();\n break;\n case 4:\n message.metadata = reader.string();\n break;\n case 5:\n message.submitTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseVote();\n if ((0, helpers_1.isSet)(object.proposalId))\n obj.proposalId = BigInt(object.proposalId.toString());\n if ((0, helpers_1.isSet)(object.voter))\n obj.voter = String(object.voter);\n if ((0, helpers_1.isSet)(object.option))\n obj.option = voteOptionFromJSON(object.option);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = String(object.metadata);\n if ((0, helpers_1.isSet)(object.submitTime))\n obj.submitTime = (0, helpers_1.fromJsonTimestamp)(object.submitTime);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n message.option !== undefined && (obj.option = voteOptionToJSON(message.option));\n message.metadata !== undefined && (obj.metadata = message.metadata);\n message.submitTime !== undefined && (obj.submitTime = (0, helpers_1.fromTimestamp)(message.submitTime).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseVote();\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = BigInt(object.proposalId.toString());\n }\n message.voter = object.voter ?? \"\";\n message.option = object.option ?? 0;\n message.metadata = object.metadata ?? \"\";\n if (object.submitTime !== undefined && object.submitTime !== null) {\n message.submitTime = timestamp_1.Timestamp.fromPartial(object.submitTime);\n }\n return message;\n },\n};\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CompressedNonExistenceProof = exports.CompressedExistenceProof = exports.CompressedBatchEntry = exports.CompressedBatchProof = exports.BatchEntry = exports.BatchProof = exports.InnerSpec = exports.ProofSpec = exports.InnerOp = exports.LeafOp = exports.CommitmentProof = exports.NonExistenceProof = exports.ExistenceProof = exports.lengthOpToJSON = exports.lengthOpFromJSON = exports.LengthOp = exports.hashOpToJSON = exports.hashOpFromJSON = exports.HashOp = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.ics23.v1\";\nvar HashOp;\n(function (HashOp) {\n /** NO_HASH - NO_HASH is the default if no data passed. Note this is an illegal argument some places. */\n HashOp[HashOp[\"NO_HASH\"] = 0] = \"NO_HASH\";\n HashOp[HashOp[\"SHA256\"] = 1] = \"SHA256\";\n HashOp[HashOp[\"SHA512\"] = 2] = \"SHA512\";\n HashOp[HashOp[\"KECCAK\"] = 3] = \"KECCAK\";\n HashOp[HashOp[\"RIPEMD160\"] = 4] = \"RIPEMD160\";\n /** BITCOIN - ripemd160(sha256(x)) */\n HashOp[HashOp[\"BITCOIN\"] = 5] = \"BITCOIN\";\n HashOp[HashOp[\"SHA512_256\"] = 6] = \"SHA512_256\";\n HashOp[HashOp[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(HashOp || (exports.HashOp = HashOp = {}));\nfunction hashOpFromJSON(object) {\n switch (object) {\n case 0:\n case \"NO_HASH\":\n return HashOp.NO_HASH;\n case 1:\n case \"SHA256\":\n return HashOp.SHA256;\n case 2:\n case \"SHA512\":\n return HashOp.SHA512;\n case 3:\n case \"KECCAK\":\n return HashOp.KECCAK;\n case 4:\n case \"RIPEMD160\":\n return HashOp.RIPEMD160;\n case 5:\n case \"BITCOIN\":\n return HashOp.BITCOIN;\n case 6:\n case \"SHA512_256\":\n return HashOp.SHA512_256;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return HashOp.UNRECOGNIZED;\n }\n}\nexports.hashOpFromJSON = hashOpFromJSON;\nfunction hashOpToJSON(object) {\n switch (object) {\n case HashOp.NO_HASH:\n return \"NO_HASH\";\n case HashOp.SHA256:\n return \"SHA256\";\n case HashOp.SHA512:\n return \"SHA512\";\n case HashOp.KECCAK:\n return \"KECCAK\";\n case HashOp.RIPEMD160:\n return \"RIPEMD160\";\n case HashOp.BITCOIN:\n return \"BITCOIN\";\n case HashOp.SHA512_256:\n return \"SHA512_256\";\n case HashOp.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.hashOpToJSON = hashOpToJSON;\n/**\n * LengthOp defines how to process the key and value of the LeafOp\n * to include length information. After encoding the length with the given\n * algorithm, the length will be prepended to the key and value bytes.\n * (Each one with it's own encoded length)\n */\nvar LengthOp;\n(function (LengthOp) {\n /** NO_PREFIX - NO_PREFIX don't include any length info */\n LengthOp[LengthOp[\"NO_PREFIX\"] = 0] = \"NO_PREFIX\";\n /** VAR_PROTO - VAR_PROTO uses protobuf (and go-amino) varint encoding of the length */\n LengthOp[LengthOp[\"VAR_PROTO\"] = 1] = \"VAR_PROTO\";\n /** VAR_RLP - VAR_RLP uses rlp int encoding of the length */\n LengthOp[LengthOp[\"VAR_RLP\"] = 2] = \"VAR_RLP\";\n /** FIXED32_BIG - FIXED32_BIG uses big-endian encoding of the length as a 32 bit integer */\n LengthOp[LengthOp[\"FIXED32_BIG\"] = 3] = \"FIXED32_BIG\";\n /** FIXED32_LITTLE - FIXED32_LITTLE uses little-endian encoding of the length as a 32 bit integer */\n LengthOp[LengthOp[\"FIXED32_LITTLE\"] = 4] = \"FIXED32_LITTLE\";\n /** FIXED64_BIG - FIXED64_BIG uses big-endian encoding of the length as a 64 bit integer */\n LengthOp[LengthOp[\"FIXED64_BIG\"] = 5] = \"FIXED64_BIG\";\n /** FIXED64_LITTLE - FIXED64_LITTLE uses little-endian encoding of the length as a 64 bit integer */\n LengthOp[LengthOp[\"FIXED64_LITTLE\"] = 6] = \"FIXED64_LITTLE\";\n /** REQUIRE_32_BYTES - REQUIRE_32_BYTES is like NONE, but will fail if the input is not exactly 32 bytes (sha256 output) */\n LengthOp[LengthOp[\"REQUIRE_32_BYTES\"] = 7] = \"REQUIRE_32_BYTES\";\n /** REQUIRE_64_BYTES - REQUIRE_64_BYTES is like NONE, but will fail if the input is not exactly 64 bytes (sha512 output) */\n LengthOp[LengthOp[\"REQUIRE_64_BYTES\"] = 8] = \"REQUIRE_64_BYTES\";\n LengthOp[LengthOp[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(LengthOp || (exports.LengthOp = LengthOp = {}));\nfunction lengthOpFromJSON(object) {\n switch (object) {\n case 0:\n case \"NO_PREFIX\":\n return LengthOp.NO_PREFIX;\n case 1:\n case \"VAR_PROTO\":\n return LengthOp.VAR_PROTO;\n case 2:\n case \"VAR_RLP\":\n return LengthOp.VAR_RLP;\n case 3:\n case \"FIXED32_BIG\":\n return LengthOp.FIXED32_BIG;\n case 4:\n case \"FIXED32_LITTLE\":\n return LengthOp.FIXED32_LITTLE;\n case 5:\n case \"FIXED64_BIG\":\n return LengthOp.FIXED64_BIG;\n case 6:\n case \"FIXED64_LITTLE\":\n return LengthOp.FIXED64_LITTLE;\n case 7:\n case \"REQUIRE_32_BYTES\":\n return LengthOp.REQUIRE_32_BYTES;\n case 8:\n case \"REQUIRE_64_BYTES\":\n return LengthOp.REQUIRE_64_BYTES;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return LengthOp.UNRECOGNIZED;\n }\n}\nexports.lengthOpFromJSON = lengthOpFromJSON;\nfunction lengthOpToJSON(object) {\n switch (object) {\n case LengthOp.NO_PREFIX:\n return \"NO_PREFIX\";\n case LengthOp.VAR_PROTO:\n return \"VAR_PROTO\";\n case LengthOp.VAR_RLP:\n return \"VAR_RLP\";\n case LengthOp.FIXED32_BIG:\n return \"FIXED32_BIG\";\n case LengthOp.FIXED32_LITTLE:\n return \"FIXED32_LITTLE\";\n case LengthOp.FIXED64_BIG:\n return \"FIXED64_BIG\";\n case LengthOp.FIXED64_LITTLE:\n return \"FIXED64_LITTLE\";\n case LengthOp.REQUIRE_32_BYTES:\n return \"REQUIRE_32_BYTES\";\n case LengthOp.REQUIRE_64_BYTES:\n return \"REQUIRE_64_BYTES\";\n case LengthOp.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.lengthOpToJSON = lengthOpToJSON;\nfunction createBaseExistenceProof() {\n return {\n key: new Uint8Array(),\n value: new Uint8Array(),\n leaf: undefined,\n path: [],\n };\n}\nexports.ExistenceProof = {\n typeUrl: \"/cosmos.ics23.v1.ExistenceProof\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n if (message.leaf !== undefined) {\n exports.LeafOp.encode(message.leaf, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.path) {\n exports.InnerOp.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseExistenceProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n case 3:\n message.leaf = exports.LeafOp.decode(reader, reader.uint32());\n break;\n case 4:\n message.path.push(exports.InnerOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseExistenceProof();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n if ((0, helpers_1.isSet)(object.value))\n obj.value = (0, helpers_1.bytesFromBase64)(object.value);\n if ((0, helpers_1.isSet)(object.leaf))\n obj.leaf = exports.LeafOp.fromJSON(object.leaf);\n if (Array.isArray(object?.path))\n obj.path = object.path.map((e) => exports.InnerOp.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n message.value !== undefined &&\n (obj.value = (0, helpers_1.base64FromBytes)(message.value !== undefined ? message.value : new Uint8Array()));\n message.leaf !== undefined && (obj.leaf = message.leaf ? exports.LeafOp.toJSON(message.leaf) : undefined);\n if (message.path) {\n obj.path = message.path.map((e) => (e ? exports.InnerOp.toJSON(e) : undefined));\n }\n else {\n obj.path = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseExistenceProof();\n message.key = object.key ?? new Uint8Array();\n message.value = object.value ?? new Uint8Array();\n if (object.leaf !== undefined && object.leaf !== null) {\n message.leaf = exports.LeafOp.fromPartial(object.leaf);\n }\n message.path = object.path?.map((e) => exports.InnerOp.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseNonExistenceProof() {\n return {\n key: new Uint8Array(),\n left: undefined,\n right: undefined,\n };\n}\nexports.NonExistenceProof = {\n typeUrl: \"/cosmos.ics23.v1.NonExistenceProof\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.left !== undefined) {\n exports.ExistenceProof.encode(message.left, writer.uint32(18).fork()).ldelim();\n }\n if (message.right !== undefined) {\n exports.ExistenceProof.encode(message.right, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseNonExistenceProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.left = exports.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.right = exports.ExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseNonExistenceProof();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n if ((0, helpers_1.isSet)(object.left))\n obj.left = exports.ExistenceProof.fromJSON(object.left);\n if ((0, helpers_1.isSet)(object.right))\n obj.right = exports.ExistenceProof.fromJSON(object.right);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n message.left !== undefined && (obj.left = message.left ? exports.ExistenceProof.toJSON(message.left) : undefined);\n message.right !== undefined &&\n (obj.right = message.right ? exports.ExistenceProof.toJSON(message.right) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseNonExistenceProof();\n message.key = object.key ?? new Uint8Array();\n if (object.left !== undefined && object.left !== null) {\n message.left = exports.ExistenceProof.fromPartial(object.left);\n }\n if (object.right !== undefined && object.right !== null) {\n message.right = exports.ExistenceProof.fromPartial(object.right);\n }\n return message;\n },\n};\nfunction createBaseCommitmentProof() {\n return {\n exist: undefined,\n nonexist: undefined,\n batch: undefined,\n compressed: undefined,\n };\n}\nexports.CommitmentProof = {\n typeUrl: \"/cosmos.ics23.v1.CommitmentProof\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.exist !== undefined) {\n exports.ExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim();\n }\n if (message.nonexist !== undefined) {\n exports.NonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim();\n }\n if (message.batch !== undefined) {\n exports.BatchProof.encode(message.batch, writer.uint32(26).fork()).ldelim();\n }\n if (message.compressed !== undefined) {\n exports.CompressedBatchProof.encode(message.compressed, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCommitmentProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = exports.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = exports.NonExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.batch = exports.BatchProof.decode(reader, reader.uint32());\n break;\n case 4:\n message.compressed = exports.CompressedBatchProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCommitmentProof();\n if ((0, helpers_1.isSet)(object.exist))\n obj.exist = exports.ExistenceProof.fromJSON(object.exist);\n if ((0, helpers_1.isSet)(object.nonexist))\n obj.nonexist = exports.NonExistenceProof.fromJSON(object.nonexist);\n if ((0, helpers_1.isSet)(object.batch))\n obj.batch = exports.BatchProof.fromJSON(object.batch);\n if ((0, helpers_1.isSet)(object.compressed))\n obj.compressed = exports.CompressedBatchProof.fromJSON(object.compressed);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.exist !== undefined &&\n (obj.exist = message.exist ? exports.ExistenceProof.toJSON(message.exist) : undefined);\n message.nonexist !== undefined &&\n (obj.nonexist = message.nonexist ? exports.NonExistenceProof.toJSON(message.nonexist) : undefined);\n message.batch !== undefined && (obj.batch = message.batch ? exports.BatchProof.toJSON(message.batch) : undefined);\n message.compressed !== undefined &&\n (obj.compressed = message.compressed ? exports.CompressedBatchProof.toJSON(message.compressed) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCommitmentProof();\n if (object.exist !== undefined && object.exist !== null) {\n message.exist = exports.ExistenceProof.fromPartial(object.exist);\n }\n if (object.nonexist !== undefined && object.nonexist !== null) {\n message.nonexist = exports.NonExistenceProof.fromPartial(object.nonexist);\n }\n if (object.batch !== undefined && object.batch !== null) {\n message.batch = exports.BatchProof.fromPartial(object.batch);\n }\n if (object.compressed !== undefined && object.compressed !== null) {\n message.compressed = exports.CompressedBatchProof.fromPartial(object.compressed);\n }\n return message;\n },\n};\nfunction createBaseLeafOp() {\n return {\n hash: 0,\n prehashKey: 0,\n prehashValue: 0,\n length: 0,\n prefix: new Uint8Array(),\n };\n}\nexports.LeafOp = {\n typeUrl: \"/cosmos.ics23.v1.LeafOp\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.hash !== 0) {\n writer.uint32(8).int32(message.hash);\n }\n if (message.prehashKey !== 0) {\n writer.uint32(16).int32(message.prehashKey);\n }\n if (message.prehashValue !== 0) {\n writer.uint32(24).int32(message.prehashValue);\n }\n if (message.length !== 0) {\n writer.uint32(32).int32(message.length);\n }\n if (message.prefix.length !== 0) {\n writer.uint32(42).bytes(message.prefix);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseLeafOp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.int32();\n break;\n case 2:\n message.prehashKey = reader.int32();\n break;\n case 3:\n message.prehashValue = reader.int32();\n break;\n case 4:\n message.length = reader.int32();\n break;\n case 5:\n message.prefix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseLeafOp();\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = hashOpFromJSON(object.hash);\n if ((0, helpers_1.isSet)(object.prehashKey))\n obj.prehashKey = hashOpFromJSON(object.prehashKey);\n if ((0, helpers_1.isSet)(object.prehashValue))\n obj.prehashValue = hashOpFromJSON(object.prehashValue);\n if ((0, helpers_1.isSet)(object.length))\n obj.length = lengthOpFromJSON(object.length);\n if ((0, helpers_1.isSet)(object.prefix))\n obj.prefix = (0, helpers_1.bytesFromBase64)(object.prefix);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));\n message.prehashKey !== undefined && (obj.prehashKey = hashOpToJSON(message.prehashKey));\n message.prehashValue !== undefined && (obj.prehashValue = hashOpToJSON(message.prehashValue));\n message.length !== undefined && (obj.length = lengthOpToJSON(message.length));\n message.prefix !== undefined &&\n (obj.prefix = (0, helpers_1.base64FromBytes)(message.prefix !== undefined ? message.prefix : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseLeafOp();\n message.hash = object.hash ?? 0;\n message.prehashKey = object.prehashKey ?? 0;\n message.prehashValue = object.prehashValue ?? 0;\n message.length = object.length ?? 0;\n message.prefix = object.prefix ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseInnerOp() {\n return {\n hash: 0,\n prefix: new Uint8Array(),\n suffix: new Uint8Array(),\n };\n}\nexports.InnerOp = {\n typeUrl: \"/cosmos.ics23.v1.InnerOp\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.hash !== 0) {\n writer.uint32(8).int32(message.hash);\n }\n if (message.prefix.length !== 0) {\n writer.uint32(18).bytes(message.prefix);\n }\n if (message.suffix.length !== 0) {\n writer.uint32(26).bytes(message.suffix);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseInnerOp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.int32();\n break;\n case 2:\n message.prefix = reader.bytes();\n break;\n case 3:\n message.suffix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseInnerOp();\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = hashOpFromJSON(object.hash);\n if ((0, helpers_1.isSet)(object.prefix))\n obj.prefix = (0, helpers_1.bytesFromBase64)(object.prefix);\n if ((0, helpers_1.isSet)(object.suffix))\n obj.suffix = (0, helpers_1.bytesFromBase64)(object.suffix);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));\n message.prefix !== undefined &&\n (obj.prefix = (0, helpers_1.base64FromBytes)(message.prefix !== undefined ? message.prefix : new Uint8Array()));\n message.suffix !== undefined &&\n (obj.suffix = (0, helpers_1.base64FromBytes)(message.suffix !== undefined ? message.suffix : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseInnerOp();\n message.hash = object.hash ?? 0;\n message.prefix = object.prefix ?? new Uint8Array();\n message.suffix = object.suffix ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseProofSpec() {\n return {\n leafSpec: undefined,\n innerSpec: undefined,\n maxDepth: 0,\n minDepth: 0,\n };\n}\nexports.ProofSpec = {\n typeUrl: \"/cosmos.ics23.v1.ProofSpec\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.leafSpec !== undefined) {\n exports.LeafOp.encode(message.leafSpec, writer.uint32(10).fork()).ldelim();\n }\n if (message.innerSpec !== undefined) {\n exports.InnerSpec.encode(message.innerSpec, writer.uint32(18).fork()).ldelim();\n }\n if (message.maxDepth !== 0) {\n writer.uint32(24).int32(message.maxDepth);\n }\n if (message.minDepth !== 0) {\n writer.uint32(32).int32(message.minDepth);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProofSpec();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.leafSpec = exports.LeafOp.decode(reader, reader.uint32());\n break;\n case 2:\n message.innerSpec = exports.InnerSpec.decode(reader, reader.uint32());\n break;\n case 3:\n message.maxDepth = reader.int32();\n break;\n case 4:\n message.minDepth = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseProofSpec();\n if ((0, helpers_1.isSet)(object.leafSpec))\n obj.leafSpec = exports.LeafOp.fromJSON(object.leafSpec);\n if ((0, helpers_1.isSet)(object.innerSpec))\n obj.innerSpec = exports.InnerSpec.fromJSON(object.innerSpec);\n if ((0, helpers_1.isSet)(object.maxDepth))\n obj.maxDepth = Number(object.maxDepth);\n if ((0, helpers_1.isSet)(object.minDepth))\n obj.minDepth = Number(object.minDepth);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.leafSpec !== undefined &&\n (obj.leafSpec = message.leafSpec ? exports.LeafOp.toJSON(message.leafSpec) : undefined);\n message.innerSpec !== undefined &&\n (obj.innerSpec = message.innerSpec ? exports.InnerSpec.toJSON(message.innerSpec) : undefined);\n message.maxDepth !== undefined && (obj.maxDepth = Math.round(message.maxDepth));\n message.minDepth !== undefined && (obj.minDepth = Math.round(message.minDepth));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseProofSpec();\n if (object.leafSpec !== undefined && object.leafSpec !== null) {\n message.leafSpec = exports.LeafOp.fromPartial(object.leafSpec);\n }\n if (object.innerSpec !== undefined && object.innerSpec !== null) {\n message.innerSpec = exports.InnerSpec.fromPartial(object.innerSpec);\n }\n message.maxDepth = object.maxDepth ?? 0;\n message.minDepth = object.minDepth ?? 0;\n return message;\n },\n};\nfunction createBaseInnerSpec() {\n return {\n childOrder: [],\n childSize: 0,\n minPrefixLength: 0,\n maxPrefixLength: 0,\n emptyChild: new Uint8Array(),\n hash: 0,\n };\n}\nexports.InnerSpec = {\n typeUrl: \"/cosmos.ics23.v1.InnerSpec\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n writer.uint32(10).fork();\n for (const v of message.childOrder) {\n writer.int32(v);\n }\n writer.ldelim();\n if (message.childSize !== 0) {\n writer.uint32(16).int32(message.childSize);\n }\n if (message.minPrefixLength !== 0) {\n writer.uint32(24).int32(message.minPrefixLength);\n }\n if (message.maxPrefixLength !== 0) {\n writer.uint32(32).int32(message.maxPrefixLength);\n }\n if (message.emptyChild.length !== 0) {\n writer.uint32(42).bytes(message.emptyChild);\n }\n if (message.hash !== 0) {\n writer.uint32(48).int32(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseInnerSpec();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.childOrder.push(reader.int32());\n }\n }\n else {\n message.childOrder.push(reader.int32());\n }\n break;\n case 2:\n message.childSize = reader.int32();\n break;\n case 3:\n message.minPrefixLength = reader.int32();\n break;\n case 4:\n message.maxPrefixLength = reader.int32();\n break;\n case 5:\n message.emptyChild = reader.bytes();\n break;\n case 6:\n message.hash = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseInnerSpec();\n if (Array.isArray(object?.childOrder))\n obj.childOrder = object.childOrder.map((e) => Number(e));\n if ((0, helpers_1.isSet)(object.childSize))\n obj.childSize = Number(object.childSize);\n if ((0, helpers_1.isSet)(object.minPrefixLength))\n obj.minPrefixLength = Number(object.minPrefixLength);\n if ((0, helpers_1.isSet)(object.maxPrefixLength))\n obj.maxPrefixLength = Number(object.maxPrefixLength);\n if ((0, helpers_1.isSet)(object.emptyChild))\n obj.emptyChild = (0, helpers_1.bytesFromBase64)(object.emptyChild);\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = hashOpFromJSON(object.hash);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.childOrder) {\n obj.childOrder = message.childOrder.map((e) => Math.round(e));\n }\n else {\n obj.childOrder = [];\n }\n message.childSize !== undefined && (obj.childSize = Math.round(message.childSize));\n message.minPrefixLength !== undefined && (obj.minPrefixLength = Math.round(message.minPrefixLength));\n message.maxPrefixLength !== undefined && (obj.maxPrefixLength = Math.round(message.maxPrefixLength));\n message.emptyChild !== undefined &&\n (obj.emptyChild = (0, helpers_1.base64FromBytes)(message.emptyChild !== undefined ? message.emptyChild : new Uint8Array()));\n message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseInnerSpec();\n message.childOrder = object.childOrder?.map((e) => e) || [];\n message.childSize = object.childSize ?? 0;\n message.minPrefixLength = object.minPrefixLength ?? 0;\n message.maxPrefixLength = object.maxPrefixLength ?? 0;\n message.emptyChild = object.emptyChild ?? new Uint8Array();\n message.hash = object.hash ?? 0;\n return message;\n },\n};\nfunction createBaseBatchProof() {\n return {\n entries: [],\n };\n}\nexports.BatchProof = {\n typeUrl: \"/cosmos.ics23.v1.BatchProof\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.entries) {\n exports.BatchEntry.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBatchProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.entries.push(exports.BatchEntry.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBatchProof();\n if (Array.isArray(object?.entries))\n obj.entries = object.entries.map((e) => exports.BatchEntry.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.BatchEntry.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBatchProof();\n message.entries = object.entries?.map((e) => exports.BatchEntry.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseBatchEntry() {\n return {\n exist: undefined,\n nonexist: undefined,\n };\n}\nexports.BatchEntry = {\n typeUrl: \"/cosmos.ics23.v1.BatchEntry\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.exist !== undefined) {\n exports.ExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim();\n }\n if (message.nonexist !== undefined) {\n exports.NonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBatchEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = exports.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = exports.NonExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBatchEntry();\n if ((0, helpers_1.isSet)(object.exist))\n obj.exist = exports.ExistenceProof.fromJSON(object.exist);\n if ((0, helpers_1.isSet)(object.nonexist))\n obj.nonexist = exports.NonExistenceProof.fromJSON(object.nonexist);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.exist !== undefined &&\n (obj.exist = message.exist ? exports.ExistenceProof.toJSON(message.exist) : undefined);\n message.nonexist !== undefined &&\n (obj.nonexist = message.nonexist ? exports.NonExistenceProof.toJSON(message.nonexist) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBatchEntry();\n if (object.exist !== undefined && object.exist !== null) {\n message.exist = exports.ExistenceProof.fromPartial(object.exist);\n }\n if (object.nonexist !== undefined && object.nonexist !== null) {\n message.nonexist = exports.NonExistenceProof.fromPartial(object.nonexist);\n }\n return message;\n },\n};\nfunction createBaseCompressedBatchProof() {\n return {\n entries: [],\n lookupInners: [],\n };\n}\nexports.CompressedBatchProof = {\n typeUrl: \"/cosmos.ics23.v1.CompressedBatchProof\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.entries) {\n exports.CompressedBatchEntry.encode(v, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.lookupInners) {\n exports.InnerOp.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCompressedBatchProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.entries.push(exports.CompressedBatchEntry.decode(reader, reader.uint32()));\n break;\n case 2:\n message.lookupInners.push(exports.InnerOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCompressedBatchProof();\n if (Array.isArray(object?.entries))\n obj.entries = object.entries.map((e) => exports.CompressedBatchEntry.fromJSON(e));\n if (Array.isArray(object?.lookupInners))\n obj.lookupInners = object.lookupInners.map((e) => exports.InnerOp.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.CompressedBatchEntry.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n if (message.lookupInners) {\n obj.lookupInners = message.lookupInners.map((e) => (e ? exports.InnerOp.toJSON(e) : undefined));\n }\n else {\n obj.lookupInners = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCompressedBatchProof();\n message.entries = object.entries?.map((e) => exports.CompressedBatchEntry.fromPartial(e)) || [];\n message.lookupInners = object.lookupInners?.map((e) => exports.InnerOp.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseCompressedBatchEntry() {\n return {\n exist: undefined,\n nonexist: undefined,\n };\n}\nexports.CompressedBatchEntry = {\n typeUrl: \"/cosmos.ics23.v1.CompressedBatchEntry\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.exist !== undefined) {\n exports.CompressedExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim();\n }\n if (message.nonexist !== undefined) {\n exports.CompressedNonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCompressedBatchEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = exports.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = exports.CompressedNonExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCompressedBatchEntry();\n if ((0, helpers_1.isSet)(object.exist))\n obj.exist = exports.CompressedExistenceProof.fromJSON(object.exist);\n if ((0, helpers_1.isSet)(object.nonexist))\n obj.nonexist = exports.CompressedNonExistenceProof.fromJSON(object.nonexist);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.exist !== undefined &&\n (obj.exist = message.exist ? exports.CompressedExistenceProof.toJSON(message.exist) : undefined);\n message.nonexist !== undefined &&\n (obj.nonexist = message.nonexist ? exports.CompressedNonExistenceProof.toJSON(message.nonexist) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCompressedBatchEntry();\n if (object.exist !== undefined && object.exist !== null) {\n message.exist = exports.CompressedExistenceProof.fromPartial(object.exist);\n }\n if (object.nonexist !== undefined && object.nonexist !== null) {\n message.nonexist = exports.CompressedNonExistenceProof.fromPartial(object.nonexist);\n }\n return message;\n },\n};\nfunction createBaseCompressedExistenceProof() {\n return {\n key: new Uint8Array(),\n value: new Uint8Array(),\n leaf: undefined,\n path: [],\n };\n}\nexports.CompressedExistenceProof = {\n typeUrl: \"/cosmos.ics23.v1.CompressedExistenceProof\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n if (message.leaf !== undefined) {\n exports.LeafOp.encode(message.leaf, writer.uint32(26).fork()).ldelim();\n }\n writer.uint32(34).fork();\n for (const v of message.path) {\n writer.int32(v);\n }\n writer.ldelim();\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCompressedExistenceProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n case 3:\n message.leaf = exports.LeafOp.decode(reader, reader.uint32());\n break;\n case 4:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.path.push(reader.int32());\n }\n }\n else {\n message.path.push(reader.int32());\n }\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCompressedExistenceProof();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n if ((0, helpers_1.isSet)(object.value))\n obj.value = (0, helpers_1.bytesFromBase64)(object.value);\n if ((0, helpers_1.isSet)(object.leaf))\n obj.leaf = exports.LeafOp.fromJSON(object.leaf);\n if (Array.isArray(object?.path))\n obj.path = object.path.map((e) => Number(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n message.value !== undefined &&\n (obj.value = (0, helpers_1.base64FromBytes)(message.value !== undefined ? message.value : new Uint8Array()));\n message.leaf !== undefined && (obj.leaf = message.leaf ? exports.LeafOp.toJSON(message.leaf) : undefined);\n if (message.path) {\n obj.path = message.path.map((e) => Math.round(e));\n }\n else {\n obj.path = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCompressedExistenceProof();\n message.key = object.key ?? new Uint8Array();\n message.value = object.value ?? new Uint8Array();\n if (object.leaf !== undefined && object.leaf !== null) {\n message.leaf = exports.LeafOp.fromPartial(object.leaf);\n }\n message.path = object.path?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseCompressedNonExistenceProof() {\n return {\n key: new Uint8Array(),\n left: undefined,\n right: undefined,\n };\n}\nexports.CompressedNonExistenceProof = {\n typeUrl: \"/cosmos.ics23.v1.CompressedNonExistenceProof\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.left !== undefined) {\n exports.CompressedExistenceProof.encode(message.left, writer.uint32(18).fork()).ldelim();\n }\n if (message.right !== undefined) {\n exports.CompressedExistenceProof.encode(message.right, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCompressedNonExistenceProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.left = exports.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.right = exports.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCompressedNonExistenceProof();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n if ((0, helpers_1.isSet)(object.left))\n obj.left = exports.CompressedExistenceProof.fromJSON(object.left);\n if ((0, helpers_1.isSet)(object.right))\n obj.right = exports.CompressedExistenceProof.fromJSON(object.right);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n message.left !== undefined &&\n (obj.left = message.left ? exports.CompressedExistenceProof.toJSON(message.left) : undefined);\n message.right !== undefined &&\n (obj.right = message.right ? exports.CompressedExistenceProof.toJSON(message.right) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCompressedNonExistenceProof();\n message.key = object.key ?? new Uint8Array();\n if (object.left !== undefined && object.left !== null) {\n message.left = exports.CompressedExistenceProof.fromPartial(object.left);\n }\n if (object.right !== undefined && object.right !== null) {\n message.right = exports.CompressedExistenceProof.fromPartial(object.right);\n }\n return message;\n },\n};\n//# sourceMappingURL=proofs.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.Minter = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.mint.v1beta1\";\nfunction createBaseMinter() {\n return {\n inflation: \"\",\n annualProvisions: \"\",\n };\n}\nexports.Minter = {\n typeUrl: \"/cosmos.mint.v1beta1.Minter\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.inflation !== \"\") {\n writer.uint32(10).string(message.inflation);\n }\n if (message.annualProvisions !== \"\") {\n writer.uint32(18).string(message.annualProvisions);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMinter();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.inflation = reader.string();\n break;\n case 2:\n message.annualProvisions = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMinter();\n if ((0, helpers_1.isSet)(object.inflation))\n obj.inflation = String(object.inflation);\n if ((0, helpers_1.isSet)(object.annualProvisions))\n obj.annualProvisions = String(object.annualProvisions);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.inflation !== undefined && (obj.inflation = message.inflation);\n message.annualProvisions !== undefined && (obj.annualProvisions = message.annualProvisions);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMinter();\n message.inflation = object.inflation ?? \"\";\n message.annualProvisions = object.annualProvisions ?? \"\";\n return message;\n },\n};\nfunction createBaseParams() {\n return {\n mintDenom: \"\",\n inflationRateChange: \"\",\n inflationMax: \"\",\n inflationMin: \"\",\n goalBonded: \"\",\n blocksPerYear: BigInt(0),\n };\n}\nexports.Params = {\n typeUrl: \"/cosmos.mint.v1beta1.Params\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.mintDenom !== \"\") {\n writer.uint32(10).string(message.mintDenom);\n }\n if (message.inflationRateChange !== \"\") {\n writer.uint32(18).string(message.inflationRateChange);\n }\n if (message.inflationMax !== \"\") {\n writer.uint32(26).string(message.inflationMax);\n }\n if (message.inflationMin !== \"\") {\n writer.uint32(34).string(message.inflationMin);\n }\n if (message.goalBonded !== \"\") {\n writer.uint32(42).string(message.goalBonded);\n }\n if (message.blocksPerYear !== BigInt(0)) {\n writer.uint32(48).uint64(message.blocksPerYear);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.mintDenom = reader.string();\n break;\n case 2:\n message.inflationRateChange = reader.string();\n break;\n case 3:\n message.inflationMax = reader.string();\n break;\n case 4:\n message.inflationMin = reader.string();\n break;\n case 5:\n message.goalBonded = reader.string();\n break;\n case 6:\n message.blocksPerYear = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseParams();\n if ((0, helpers_1.isSet)(object.mintDenom))\n obj.mintDenom = String(object.mintDenom);\n if ((0, helpers_1.isSet)(object.inflationRateChange))\n obj.inflationRateChange = String(object.inflationRateChange);\n if ((0, helpers_1.isSet)(object.inflationMax))\n obj.inflationMax = String(object.inflationMax);\n if ((0, helpers_1.isSet)(object.inflationMin))\n obj.inflationMin = String(object.inflationMin);\n if ((0, helpers_1.isSet)(object.goalBonded))\n obj.goalBonded = String(object.goalBonded);\n if ((0, helpers_1.isSet)(object.blocksPerYear))\n obj.blocksPerYear = BigInt(object.blocksPerYear.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.mintDenom !== undefined && (obj.mintDenom = message.mintDenom);\n message.inflationRateChange !== undefined && (obj.inflationRateChange = message.inflationRateChange);\n message.inflationMax !== undefined && (obj.inflationMax = message.inflationMax);\n message.inflationMin !== undefined && (obj.inflationMin = message.inflationMin);\n message.goalBonded !== undefined && (obj.goalBonded = message.goalBonded);\n message.blocksPerYear !== undefined &&\n (obj.blocksPerYear = (message.blocksPerYear || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseParams();\n message.mintDenom = object.mintDenom ?? \"\";\n message.inflationRateChange = object.inflationRateChange ?? \"\";\n message.inflationMax = object.inflationMax ?? \"\";\n message.inflationMin = object.inflationMin ?? \"\";\n message.goalBonded = object.goalBonded ?? \"\";\n if (object.blocksPerYear !== undefined && object.blocksPerYear !== null) {\n message.blocksPerYear = BigInt(object.blocksPerYear.toString());\n }\n return message;\n },\n};\n//# sourceMappingURL=mint.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryAnnualProvisionsResponse = exports.QueryAnnualProvisionsRequest = exports.QueryInflationResponse = exports.QueryInflationRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst mint_1 = require(\"./mint\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.mint.v1beta1\";\nfunction createBaseQueryParamsRequest() {\n return {};\n}\nexports.QueryParamsRequest = {\n typeUrl: \"/cosmos.mint.v1beta1.QueryParamsRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryParamsRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryParamsRequest();\n return message;\n },\n};\nfunction createBaseQueryParamsResponse() {\n return {\n params: mint_1.Params.fromPartial({}),\n };\n}\nexports.QueryParamsResponse = {\n typeUrl: \"/cosmos.mint.v1beta1.QueryParamsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.params !== undefined) {\n mint_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = mint_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryParamsResponse();\n if ((0, helpers_1.isSet)(object.params))\n obj.params = mint_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? mint_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryParamsResponse();\n if (object.params !== undefined && object.params !== null) {\n message.params = mint_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nfunction createBaseQueryInflationRequest() {\n return {};\n}\nexports.QueryInflationRequest = {\n typeUrl: \"/cosmos.mint.v1beta1.QueryInflationRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryInflationRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryInflationRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryInflationRequest();\n return message;\n },\n};\nfunction createBaseQueryInflationResponse() {\n return {\n inflation: new Uint8Array(),\n };\n}\nexports.QueryInflationResponse = {\n typeUrl: \"/cosmos.mint.v1beta1.QueryInflationResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.inflation.length !== 0) {\n writer.uint32(10).bytes(message.inflation);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryInflationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.inflation = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryInflationResponse();\n if ((0, helpers_1.isSet)(object.inflation))\n obj.inflation = (0, helpers_1.bytesFromBase64)(object.inflation);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.inflation !== undefined &&\n (obj.inflation = (0, helpers_1.base64FromBytes)(message.inflation !== undefined ? message.inflation : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryInflationResponse();\n message.inflation = object.inflation ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseQueryAnnualProvisionsRequest() {\n return {};\n}\nexports.QueryAnnualProvisionsRequest = {\n typeUrl: \"/cosmos.mint.v1beta1.QueryAnnualProvisionsRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAnnualProvisionsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryAnnualProvisionsRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryAnnualProvisionsRequest();\n return message;\n },\n};\nfunction createBaseQueryAnnualProvisionsResponse() {\n return {\n annualProvisions: new Uint8Array(),\n };\n}\nexports.QueryAnnualProvisionsResponse = {\n typeUrl: \"/cosmos.mint.v1beta1.QueryAnnualProvisionsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.annualProvisions.length !== 0) {\n writer.uint32(10).bytes(message.annualProvisions);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAnnualProvisionsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.annualProvisions = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryAnnualProvisionsResponse();\n if ((0, helpers_1.isSet)(object.annualProvisions))\n obj.annualProvisions = (0, helpers_1.bytesFromBase64)(object.annualProvisions);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.annualProvisions !== undefined &&\n (obj.annualProvisions = (0, helpers_1.base64FromBytes)(message.annualProvisions !== undefined ? message.annualProvisions : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryAnnualProvisionsResponse();\n message.annualProvisions = object.annualProvisions ?? new Uint8Array();\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Params = this.Params.bind(this);\n this.Inflation = this.Inflation.bind(this);\n this.AnnualProvisions = this.AnnualProvisions.bind(this);\n }\n Params(request = {}) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.mint.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n Inflation(request = {}) {\n const data = exports.QueryInflationRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.mint.v1beta1.Query\", \"Inflation\", data);\n return promise.then((data) => exports.QueryInflationResponse.decode(new binary_1.BinaryReader(data)));\n }\n AnnualProvisions(request = {}) {\n const data = exports.QueryAnnualProvisionsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.mint.v1beta1.Query\", \"AnnualProvisions\", data);\n return promise.then((data) => exports.QueryAnnualProvisionsResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QuerySigningInfosResponse = exports.QuerySigningInfosRequest = exports.QuerySigningInfoResponse = exports.QuerySigningInfoRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst pagination_1 = require(\"../../base/query/v1beta1/pagination\");\nconst slashing_1 = require(\"./slashing\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.slashing.v1beta1\";\nfunction createBaseQueryParamsRequest() {\n return {};\n}\nexports.QueryParamsRequest = {\n typeUrl: \"/cosmos.slashing.v1beta1.QueryParamsRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryParamsRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryParamsRequest();\n return message;\n },\n};\nfunction createBaseQueryParamsResponse() {\n return {\n params: slashing_1.Params.fromPartial({}),\n };\n}\nexports.QueryParamsResponse = {\n typeUrl: \"/cosmos.slashing.v1beta1.QueryParamsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.params !== undefined) {\n slashing_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = slashing_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryParamsResponse();\n if ((0, helpers_1.isSet)(object.params))\n obj.params = slashing_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? slashing_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryParamsResponse();\n if (object.params !== undefined && object.params !== null) {\n message.params = slashing_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nfunction createBaseQuerySigningInfoRequest() {\n return {\n consAddress: \"\",\n };\n}\nexports.QuerySigningInfoRequest = {\n typeUrl: \"/cosmos.slashing.v1beta1.QuerySigningInfoRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.consAddress !== \"\") {\n writer.uint32(10).string(message.consAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySigningInfoRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySigningInfoRequest();\n if ((0, helpers_1.isSet)(object.consAddress))\n obj.consAddress = String(object.consAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.consAddress !== undefined && (obj.consAddress = message.consAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySigningInfoRequest();\n message.consAddress = object.consAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseQuerySigningInfoResponse() {\n return {\n valSigningInfo: slashing_1.ValidatorSigningInfo.fromPartial({}),\n };\n}\nexports.QuerySigningInfoResponse = {\n typeUrl: \"/cosmos.slashing.v1beta1.QuerySigningInfoResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.valSigningInfo !== undefined) {\n slashing_1.ValidatorSigningInfo.encode(message.valSigningInfo, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySigningInfoResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.valSigningInfo = slashing_1.ValidatorSigningInfo.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySigningInfoResponse();\n if ((0, helpers_1.isSet)(object.valSigningInfo))\n obj.valSigningInfo = slashing_1.ValidatorSigningInfo.fromJSON(object.valSigningInfo);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.valSigningInfo !== undefined &&\n (obj.valSigningInfo = message.valSigningInfo\n ? slashing_1.ValidatorSigningInfo.toJSON(message.valSigningInfo)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySigningInfoResponse();\n if (object.valSigningInfo !== undefined && object.valSigningInfo !== null) {\n message.valSigningInfo = slashing_1.ValidatorSigningInfo.fromPartial(object.valSigningInfo);\n }\n return message;\n },\n};\nfunction createBaseQuerySigningInfosRequest() {\n return {\n pagination: undefined,\n };\n}\nexports.QuerySigningInfosRequest = {\n typeUrl: \"/cosmos.slashing.v1beta1.QuerySigningInfosRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySigningInfosRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySigningInfosRequest();\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySigningInfosRequest();\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQuerySigningInfosResponse() {\n return {\n info: [],\n pagination: undefined,\n };\n}\nexports.QuerySigningInfosResponse = {\n typeUrl: \"/cosmos.slashing.v1beta1.QuerySigningInfosResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.info) {\n slashing_1.ValidatorSigningInfo.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQuerySigningInfosResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.info.push(slashing_1.ValidatorSigningInfo.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQuerySigningInfosResponse();\n if (Array.isArray(object?.info))\n obj.info = object.info.map((e) => slashing_1.ValidatorSigningInfo.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.info) {\n obj.info = message.info.map((e) => (e ? slashing_1.ValidatorSigningInfo.toJSON(e) : undefined));\n }\n else {\n obj.info = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQuerySigningInfosResponse();\n message.info = object.info?.map((e) => slashing_1.ValidatorSigningInfo.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Params = this.Params.bind(this);\n this.SigningInfo = this.SigningInfo.bind(this);\n this.SigningInfos = this.SigningInfos.bind(this);\n }\n Params(request = {}) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.slashing.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n SigningInfo(request) {\n const data = exports.QuerySigningInfoRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.slashing.v1beta1.Query\", \"SigningInfo\", data);\n return promise.then((data) => exports.QuerySigningInfoResponse.decode(new binary_1.BinaryReader(data)));\n }\n SigningInfos(request = {\n pagination: pagination_1.PageRequest.fromPartial({}),\n }) {\n const data = exports.QuerySigningInfosRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.slashing.v1beta1.Query\", \"SigningInfos\", data);\n return promise.then((data) => exports.QuerySigningInfosResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.ValidatorSigningInfo = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst duration_1 = require(\"../../../google/protobuf/duration\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.slashing.v1beta1\";\nfunction createBaseValidatorSigningInfo() {\n return {\n address: \"\",\n startHeight: BigInt(0),\n indexOffset: BigInt(0),\n jailedUntil: timestamp_1.Timestamp.fromPartial({}),\n tombstoned: false,\n missedBlocksCounter: BigInt(0),\n };\n}\nexports.ValidatorSigningInfo = {\n typeUrl: \"/cosmos.slashing.v1beta1.ValidatorSigningInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.startHeight !== BigInt(0)) {\n writer.uint32(16).int64(message.startHeight);\n }\n if (message.indexOffset !== BigInt(0)) {\n writer.uint32(24).int64(message.indexOffset);\n }\n if (message.jailedUntil !== undefined) {\n timestamp_1.Timestamp.encode(message.jailedUntil, writer.uint32(34).fork()).ldelim();\n }\n if (message.tombstoned === true) {\n writer.uint32(40).bool(message.tombstoned);\n }\n if (message.missedBlocksCounter !== BigInt(0)) {\n writer.uint32(48).int64(message.missedBlocksCounter);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorSigningInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.startHeight = reader.int64();\n break;\n case 3:\n message.indexOffset = reader.int64();\n break;\n case 4:\n message.jailedUntil = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 5:\n message.tombstoned = reader.bool();\n break;\n case 6:\n message.missedBlocksCounter = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidatorSigningInfo();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.startHeight))\n obj.startHeight = BigInt(object.startHeight.toString());\n if ((0, helpers_1.isSet)(object.indexOffset))\n obj.indexOffset = BigInt(object.indexOffset.toString());\n if ((0, helpers_1.isSet)(object.jailedUntil))\n obj.jailedUntil = (0, helpers_1.fromJsonTimestamp)(object.jailedUntil);\n if ((0, helpers_1.isSet)(object.tombstoned))\n obj.tombstoned = Boolean(object.tombstoned);\n if ((0, helpers_1.isSet)(object.missedBlocksCounter))\n obj.missedBlocksCounter = BigInt(object.missedBlocksCounter.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.startHeight !== undefined && (obj.startHeight = (message.startHeight || BigInt(0)).toString());\n message.indexOffset !== undefined && (obj.indexOffset = (message.indexOffset || BigInt(0)).toString());\n message.jailedUntil !== undefined && (obj.jailedUntil = (0, helpers_1.fromTimestamp)(message.jailedUntil).toISOString());\n message.tombstoned !== undefined && (obj.tombstoned = message.tombstoned);\n message.missedBlocksCounter !== undefined &&\n (obj.missedBlocksCounter = (message.missedBlocksCounter || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidatorSigningInfo();\n message.address = object.address ?? \"\";\n if (object.startHeight !== undefined && object.startHeight !== null) {\n message.startHeight = BigInt(object.startHeight.toString());\n }\n if (object.indexOffset !== undefined && object.indexOffset !== null) {\n message.indexOffset = BigInt(object.indexOffset.toString());\n }\n if (object.jailedUntil !== undefined && object.jailedUntil !== null) {\n message.jailedUntil = timestamp_1.Timestamp.fromPartial(object.jailedUntil);\n }\n message.tombstoned = object.tombstoned ?? false;\n if (object.missedBlocksCounter !== undefined && object.missedBlocksCounter !== null) {\n message.missedBlocksCounter = BigInt(object.missedBlocksCounter.toString());\n }\n return message;\n },\n};\nfunction createBaseParams() {\n return {\n signedBlocksWindow: BigInt(0),\n minSignedPerWindow: new Uint8Array(),\n downtimeJailDuration: duration_1.Duration.fromPartial({}),\n slashFractionDoubleSign: new Uint8Array(),\n slashFractionDowntime: new Uint8Array(),\n };\n}\nexports.Params = {\n typeUrl: \"/cosmos.slashing.v1beta1.Params\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.signedBlocksWindow !== BigInt(0)) {\n writer.uint32(8).int64(message.signedBlocksWindow);\n }\n if (message.minSignedPerWindow.length !== 0) {\n writer.uint32(18).bytes(message.minSignedPerWindow);\n }\n if (message.downtimeJailDuration !== undefined) {\n duration_1.Duration.encode(message.downtimeJailDuration, writer.uint32(26).fork()).ldelim();\n }\n if (message.slashFractionDoubleSign.length !== 0) {\n writer.uint32(34).bytes(message.slashFractionDoubleSign);\n }\n if (message.slashFractionDowntime.length !== 0) {\n writer.uint32(42).bytes(message.slashFractionDowntime);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signedBlocksWindow = reader.int64();\n break;\n case 2:\n message.minSignedPerWindow = reader.bytes();\n break;\n case 3:\n message.downtimeJailDuration = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 4:\n message.slashFractionDoubleSign = reader.bytes();\n break;\n case 5:\n message.slashFractionDowntime = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseParams();\n if ((0, helpers_1.isSet)(object.signedBlocksWindow))\n obj.signedBlocksWindow = BigInt(object.signedBlocksWindow.toString());\n if ((0, helpers_1.isSet)(object.minSignedPerWindow))\n obj.minSignedPerWindow = (0, helpers_1.bytesFromBase64)(object.minSignedPerWindow);\n if ((0, helpers_1.isSet)(object.downtimeJailDuration))\n obj.downtimeJailDuration = duration_1.Duration.fromJSON(object.downtimeJailDuration);\n if ((0, helpers_1.isSet)(object.slashFractionDoubleSign))\n obj.slashFractionDoubleSign = (0, helpers_1.bytesFromBase64)(object.slashFractionDoubleSign);\n if ((0, helpers_1.isSet)(object.slashFractionDowntime))\n obj.slashFractionDowntime = (0, helpers_1.bytesFromBase64)(object.slashFractionDowntime);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.signedBlocksWindow !== undefined &&\n (obj.signedBlocksWindow = (message.signedBlocksWindow || BigInt(0)).toString());\n message.minSignedPerWindow !== undefined &&\n (obj.minSignedPerWindow = (0, helpers_1.base64FromBytes)(message.minSignedPerWindow !== undefined ? message.minSignedPerWindow : new Uint8Array()));\n message.downtimeJailDuration !== undefined &&\n (obj.downtimeJailDuration = message.downtimeJailDuration\n ? duration_1.Duration.toJSON(message.downtimeJailDuration)\n : undefined);\n message.slashFractionDoubleSign !== undefined &&\n (obj.slashFractionDoubleSign = (0, helpers_1.base64FromBytes)(message.slashFractionDoubleSign !== undefined ? message.slashFractionDoubleSign : new Uint8Array()));\n message.slashFractionDowntime !== undefined &&\n (obj.slashFractionDowntime = (0, helpers_1.base64FromBytes)(message.slashFractionDowntime !== undefined ? message.slashFractionDowntime : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseParams();\n if (object.signedBlocksWindow !== undefined && object.signedBlocksWindow !== null) {\n message.signedBlocksWindow = BigInt(object.signedBlocksWindow.toString());\n }\n message.minSignedPerWindow = object.minSignedPerWindow ?? new Uint8Array();\n if (object.downtimeJailDuration !== undefined && object.downtimeJailDuration !== null) {\n message.downtimeJailDuration = duration_1.Duration.fromPartial(object.downtimeJailDuration);\n }\n message.slashFractionDoubleSign = object.slashFractionDoubleSign ?? new Uint8Array();\n message.slashFractionDowntime = object.slashFractionDowntime ?? new Uint8Array();\n return message;\n },\n};\n//# sourceMappingURL=slashing.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryPoolResponse = exports.QueryPoolRequest = exports.QueryHistoricalInfoResponse = exports.QueryHistoricalInfoRequest = exports.QueryDelegatorValidatorResponse = exports.QueryDelegatorValidatorRequest = exports.QueryDelegatorValidatorsResponse = exports.QueryDelegatorValidatorsRequest = exports.QueryRedelegationsResponse = exports.QueryRedelegationsRequest = exports.QueryDelegatorUnbondingDelegationsResponse = exports.QueryDelegatorUnbondingDelegationsRequest = exports.QueryDelegatorDelegationsResponse = exports.QueryDelegatorDelegationsRequest = exports.QueryUnbondingDelegationResponse = exports.QueryUnbondingDelegationRequest = exports.QueryDelegationResponse = exports.QueryDelegationRequest = exports.QueryValidatorUnbondingDelegationsResponse = exports.QueryValidatorUnbondingDelegationsRequest = exports.QueryValidatorDelegationsResponse = exports.QueryValidatorDelegationsRequest = exports.QueryValidatorResponse = exports.QueryValidatorRequest = exports.QueryValidatorsResponse = exports.QueryValidatorsRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst pagination_1 = require(\"../../base/query/v1beta1/pagination\");\nconst staking_1 = require(\"./staking\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.staking.v1beta1\";\nfunction createBaseQueryValidatorsRequest() {\n return {\n status: \"\",\n pagination: undefined,\n };\n}\nexports.QueryValidatorsRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryValidatorsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.status !== \"\") {\n writer.uint32(10).string(message.status);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.status = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorsRequest();\n if ((0, helpers_1.isSet)(object.status))\n obj.status = String(object.status);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.status !== undefined && (obj.status = message.status);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorsRequest();\n message.status = object.status ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryValidatorsResponse() {\n return {\n validators: [],\n pagination: undefined,\n };\n}\nexports.QueryValidatorsResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryValidatorsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.validators) {\n staking_1.Validator.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validators.push(staking_1.Validator.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorsResponse();\n if (Array.isArray(object?.validators))\n obj.validators = object.validators.map((e) => staking_1.Validator.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? staking_1.Validator.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorsResponse();\n message.validators = object.validators?.map((e) => staking_1.Validator.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryValidatorRequest() {\n return {\n validatorAddr: \"\",\n };\n}\nexports.QueryValidatorRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryValidatorRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validatorAddr !== \"\") {\n writer.uint32(10).string(message.validatorAddr);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddr = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorRequest();\n if ((0, helpers_1.isSet)(object.validatorAddr))\n obj.validatorAddr = String(object.validatorAddr);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorRequest();\n message.validatorAddr = object.validatorAddr ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryValidatorResponse() {\n return {\n validator: staking_1.Validator.fromPartial({}),\n };\n}\nexports.QueryValidatorResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryValidatorResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validator !== undefined) {\n staking_1.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validator = staking_1.Validator.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorResponse();\n if ((0, helpers_1.isSet)(object.validator))\n obj.validator = staking_1.Validator.fromJSON(object.validator);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validator !== undefined &&\n (obj.validator = message.validator ? staking_1.Validator.toJSON(message.validator) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorResponse();\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = staking_1.Validator.fromPartial(object.validator);\n }\n return message;\n },\n};\nfunction createBaseQueryValidatorDelegationsRequest() {\n return {\n validatorAddr: \"\",\n pagination: undefined,\n };\n}\nexports.QueryValidatorDelegationsRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryValidatorDelegationsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validatorAddr !== \"\") {\n writer.uint32(10).string(message.validatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorDelegationsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddr = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorDelegationsRequest();\n if ((0, helpers_1.isSet)(object.validatorAddr))\n obj.validatorAddr = String(object.validatorAddr);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorDelegationsRequest();\n message.validatorAddr = object.validatorAddr ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryValidatorDelegationsResponse() {\n return {\n delegationResponses: [],\n pagination: undefined,\n };\n}\nexports.QueryValidatorDelegationsResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryValidatorDelegationsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.delegationResponses) {\n staking_1.DelegationResponse.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorDelegationsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegationResponses.push(staking_1.DelegationResponse.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorDelegationsResponse();\n if (Array.isArray(object?.delegationResponses))\n obj.delegationResponses = object.delegationResponses.map((e) => staking_1.DelegationResponse.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.delegationResponses) {\n obj.delegationResponses = message.delegationResponses.map((e) => e ? staking_1.DelegationResponse.toJSON(e) : undefined);\n }\n else {\n obj.delegationResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorDelegationsResponse();\n message.delegationResponses =\n object.delegationResponses?.map((e) => staking_1.DelegationResponse.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryValidatorUnbondingDelegationsRequest() {\n return {\n validatorAddr: \"\",\n pagination: undefined,\n };\n}\nexports.QueryValidatorUnbondingDelegationsRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validatorAddr !== \"\") {\n writer.uint32(10).string(message.validatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorUnbondingDelegationsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddr = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorUnbondingDelegationsRequest();\n if ((0, helpers_1.isSet)(object.validatorAddr))\n obj.validatorAddr = String(object.validatorAddr);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorUnbondingDelegationsRequest();\n message.validatorAddr = object.validatorAddr ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryValidatorUnbondingDelegationsResponse() {\n return {\n unbondingResponses: [],\n pagination: undefined,\n };\n}\nexports.QueryValidatorUnbondingDelegationsResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.unbondingResponses) {\n staking_1.UnbondingDelegation.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidatorUnbondingDelegationsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.unbondingResponses.push(staking_1.UnbondingDelegation.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryValidatorUnbondingDelegationsResponse();\n if (Array.isArray(object?.unbondingResponses))\n obj.unbondingResponses = object.unbondingResponses.map((e) => staking_1.UnbondingDelegation.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.unbondingResponses) {\n obj.unbondingResponses = message.unbondingResponses.map((e) => e ? staking_1.UnbondingDelegation.toJSON(e) : undefined);\n }\n else {\n obj.unbondingResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryValidatorUnbondingDelegationsResponse();\n message.unbondingResponses =\n object.unbondingResponses?.map((e) => staking_1.UnbondingDelegation.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDelegationRequest() {\n return {\n delegatorAddr: \"\",\n validatorAddr: \"\",\n };\n}\nexports.QueryDelegationRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryDelegationRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.validatorAddr !== \"\") {\n writer.uint32(18).string(message.validatorAddr);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegationRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.validatorAddr = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegationRequest();\n if ((0, helpers_1.isSet)(object.delegatorAddr))\n obj.delegatorAddr = String(object.delegatorAddr);\n if ((0, helpers_1.isSet)(object.validatorAddr))\n obj.validatorAddr = String(object.validatorAddr);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegationRequest();\n message.delegatorAddr = object.delegatorAddr ?? \"\";\n message.validatorAddr = object.validatorAddr ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryDelegationResponse() {\n return {\n delegationResponse: undefined,\n };\n}\nexports.QueryDelegationResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryDelegationResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegationResponse !== undefined) {\n staking_1.DelegationResponse.encode(message.delegationResponse, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegationResponse = staking_1.DelegationResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegationResponse();\n if ((0, helpers_1.isSet)(object.delegationResponse))\n obj.delegationResponse = staking_1.DelegationResponse.fromJSON(object.delegationResponse);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegationResponse !== undefined &&\n (obj.delegationResponse = message.delegationResponse\n ? staking_1.DelegationResponse.toJSON(message.delegationResponse)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegationResponse();\n if (object.delegationResponse !== undefined && object.delegationResponse !== null) {\n message.delegationResponse = staking_1.DelegationResponse.fromPartial(object.delegationResponse);\n }\n return message;\n },\n};\nfunction createBaseQueryUnbondingDelegationRequest() {\n return {\n delegatorAddr: \"\",\n validatorAddr: \"\",\n };\n}\nexports.QueryUnbondingDelegationRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryUnbondingDelegationRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.validatorAddr !== \"\") {\n writer.uint32(18).string(message.validatorAddr);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryUnbondingDelegationRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.validatorAddr = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryUnbondingDelegationRequest();\n if ((0, helpers_1.isSet)(object.delegatorAddr))\n obj.delegatorAddr = String(object.delegatorAddr);\n if ((0, helpers_1.isSet)(object.validatorAddr))\n obj.validatorAddr = String(object.validatorAddr);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryUnbondingDelegationRequest();\n message.delegatorAddr = object.delegatorAddr ?? \"\";\n message.validatorAddr = object.validatorAddr ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryUnbondingDelegationResponse() {\n return {\n unbond: staking_1.UnbondingDelegation.fromPartial({}),\n };\n}\nexports.QueryUnbondingDelegationResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryUnbondingDelegationResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.unbond !== undefined) {\n staking_1.UnbondingDelegation.encode(message.unbond, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryUnbondingDelegationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.unbond = staking_1.UnbondingDelegation.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryUnbondingDelegationResponse();\n if ((0, helpers_1.isSet)(object.unbond))\n obj.unbond = staking_1.UnbondingDelegation.fromJSON(object.unbond);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.unbond !== undefined &&\n (obj.unbond = message.unbond ? staking_1.UnbondingDelegation.toJSON(message.unbond) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryUnbondingDelegationResponse();\n if (object.unbond !== undefined && object.unbond !== null) {\n message.unbond = staking_1.UnbondingDelegation.fromPartial(object.unbond);\n }\n return message;\n },\n};\nfunction createBaseQueryDelegatorDelegationsRequest() {\n return {\n delegatorAddr: \"\",\n pagination: undefined,\n };\n}\nexports.QueryDelegatorDelegationsRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryDelegatorDelegationsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorDelegationsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorDelegationsRequest();\n if ((0, helpers_1.isSet)(object.delegatorAddr))\n obj.delegatorAddr = String(object.delegatorAddr);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorDelegationsRequest();\n message.delegatorAddr = object.delegatorAddr ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDelegatorDelegationsResponse() {\n return {\n delegationResponses: [],\n pagination: undefined,\n };\n}\nexports.QueryDelegatorDelegationsResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryDelegatorDelegationsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.delegationResponses) {\n staking_1.DelegationResponse.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorDelegationsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegationResponses.push(staking_1.DelegationResponse.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorDelegationsResponse();\n if (Array.isArray(object?.delegationResponses))\n obj.delegationResponses = object.delegationResponses.map((e) => staking_1.DelegationResponse.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.delegationResponses) {\n obj.delegationResponses = message.delegationResponses.map((e) => e ? staking_1.DelegationResponse.toJSON(e) : undefined);\n }\n else {\n obj.delegationResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorDelegationsResponse();\n message.delegationResponses =\n object.delegationResponses?.map((e) => staking_1.DelegationResponse.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDelegatorUnbondingDelegationsRequest() {\n return {\n delegatorAddr: \"\",\n pagination: undefined,\n };\n}\nexports.QueryDelegatorUnbondingDelegationsRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorUnbondingDelegationsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorUnbondingDelegationsRequest();\n if ((0, helpers_1.isSet)(object.delegatorAddr))\n obj.delegatorAddr = String(object.delegatorAddr);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorUnbondingDelegationsRequest();\n message.delegatorAddr = object.delegatorAddr ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDelegatorUnbondingDelegationsResponse() {\n return {\n unbondingResponses: [],\n pagination: undefined,\n };\n}\nexports.QueryDelegatorUnbondingDelegationsResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.unbondingResponses) {\n staking_1.UnbondingDelegation.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorUnbondingDelegationsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.unbondingResponses.push(staking_1.UnbondingDelegation.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorUnbondingDelegationsResponse();\n if (Array.isArray(object?.unbondingResponses))\n obj.unbondingResponses = object.unbondingResponses.map((e) => staking_1.UnbondingDelegation.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.unbondingResponses) {\n obj.unbondingResponses = message.unbondingResponses.map((e) => e ? staking_1.UnbondingDelegation.toJSON(e) : undefined);\n }\n else {\n obj.unbondingResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorUnbondingDelegationsResponse();\n message.unbondingResponses =\n object.unbondingResponses?.map((e) => staking_1.UnbondingDelegation.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryRedelegationsRequest() {\n return {\n delegatorAddr: \"\",\n srcValidatorAddr: \"\",\n dstValidatorAddr: \"\",\n pagination: undefined,\n };\n}\nexports.QueryRedelegationsRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryRedelegationsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.srcValidatorAddr !== \"\") {\n writer.uint32(18).string(message.srcValidatorAddr);\n }\n if (message.dstValidatorAddr !== \"\") {\n writer.uint32(26).string(message.dstValidatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryRedelegationsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.srcValidatorAddr = reader.string();\n break;\n case 3:\n message.dstValidatorAddr = reader.string();\n break;\n case 4:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryRedelegationsRequest();\n if ((0, helpers_1.isSet)(object.delegatorAddr))\n obj.delegatorAddr = String(object.delegatorAddr);\n if ((0, helpers_1.isSet)(object.srcValidatorAddr))\n obj.srcValidatorAddr = String(object.srcValidatorAddr);\n if ((0, helpers_1.isSet)(object.dstValidatorAddr))\n obj.dstValidatorAddr = String(object.dstValidatorAddr);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.srcValidatorAddr !== undefined && (obj.srcValidatorAddr = message.srcValidatorAddr);\n message.dstValidatorAddr !== undefined && (obj.dstValidatorAddr = message.dstValidatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryRedelegationsRequest();\n message.delegatorAddr = object.delegatorAddr ?? \"\";\n message.srcValidatorAddr = object.srcValidatorAddr ?? \"\";\n message.dstValidatorAddr = object.dstValidatorAddr ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryRedelegationsResponse() {\n return {\n redelegationResponses: [],\n pagination: undefined,\n };\n}\nexports.QueryRedelegationsResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryRedelegationsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.redelegationResponses) {\n staking_1.RedelegationResponse.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryRedelegationsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.redelegationResponses.push(staking_1.RedelegationResponse.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryRedelegationsResponse();\n if (Array.isArray(object?.redelegationResponses))\n obj.redelegationResponses = object.redelegationResponses.map((e) => staking_1.RedelegationResponse.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.redelegationResponses) {\n obj.redelegationResponses = message.redelegationResponses.map((e) => e ? staking_1.RedelegationResponse.toJSON(e) : undefined);\n }\n else {\n obj.redelegationResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryRedelegationsResponse();\n message.redelegationResponses =\n object.redelegationResponses?.map((e) => staking_1.RedelegationResponse.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDelegatorValidatorsRequest() {\n return {\n delegatorAddr: \"\",\n pagination: undefined,\n };\n}\nexports.QueryDelegatorValidatorsRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryDelegatorValidatorsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorValidatorsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorValidatorsRequest();\n if ((0, helpers_1.isSet)(object.delegatorAddr))\n obj.delegatorAddr = String(object.delegatorAddr);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorValidatorsRequest();\n message.delegatorAddr = object.delegatorAddr ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDelegatorValidatorsResponse() {\n return {\n validators: [],\n pagination: undefined,\n };\n}\nexports.QueryDelegatorValidatorsResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryDelegatorValidatorsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.validators) {\n staking_1.Validator.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorValidatorsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validators.push(staking_1.Validator.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorValidatorsResponse();\n if (Array.isArray(object?.validators))\n obj.validators = object.validators.map((e) => staking_1.Validator.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? staking_1.Validator.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorValidatorsResponse();\n message.validators = object.validators?.map((e) => staking_1.Validator.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDelegatorValidatorRequest() {\n return {\n delegatorAddr: \"\",\n validatorAddr: \"\",\n };\n}\nexports.QueryDelegatorValidatorRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryDelegatorValidatorRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.validatorAddr !== \"\") {\n writer.uint32(18).string(message.validatorAddr);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorValidatorRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.validatorAddr = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorValidatorRequest();\n if ((0, helpers_1.isSet)(object.delegatorAddr))\n obj.delegatorAddr = String(object.delegatorAddr);\n if ((0, helpers_1.isSet)(object.validatorAddr))\n obj.validatorAddr = String(object.validatorAddr);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorValidatorRequest();\n message.delegatorAddr = object.delegatorAddr ?? \"\";\n message.validatorAddr = object.validatorAddr ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryDelegatorValidatorResponse() {\n return {\n validator: staking_1.Validator.fromPartial({}),\n };\n}\nexports.QueryDelegatorValidatorResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryDelegatorValidatorResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validator !== undefined) {\n staking_1.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDelegatorValidatorResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validator = staking_1.Validator.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDelegatorValidatorResponse();\n if ((0, helpers_1.isSet)(object.validator))\n obj.validator = staking_1.Validator.fromJSON(object.validator);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validator !== undefined &&\n (obj.validator = message.validator ? staking_1.Validator.toJSON(message.validator) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDelegatorValidatorResponse();\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = staking_1.Validator.fromPartial(object.validator);\n }\n return message;\n },\n};\nfunction createBaseQueryHistoricalInfoRequest() {\n return {\n height: BigInt(0),\n };\n}\nexports.QueryHistoricalInfoRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryHistoricalInfoRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.height !== BigInt(0)) {\n writer.uint32(8).int64(message.height);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryHistoricalInfoRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryHistoricalInfoRequest();\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryHistoricalInfoRequest();\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n return message;\n },\n};\nfunction createBaseQueryHistoricalInfoResponse() {\n return {\n hist: undefined,\n };\n}\nexports.QueryHistoricalInfoResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryHistoricalInfoResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.hist !== undefined) {\n staking_1.HistoricalInfo.encode(message.hist, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryHistoricalInfoResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hist = staking_1.HistoricalInfo.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryHistoricalInfoResponse();\n if ((0, helpers_1.isSet)(object.hist))\n obj.hist = staking_1.HistoricalInfo.fromJSON(object.hist);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.hist !== undefined && (obj.hist = message.hist ? staking_1.HistoricalInfo.toJSON(message.hist) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryHistoricalInfoResponse();\n if (object.hist !== undefined && object.hist !== null) {\n message.hist = staking_1.HistoricalInfo.fromPartial(object.hist);\n }\n return message;\n },\n};\nfunction createBaseQueryPoolRequest() {\n return {};\n}\nexports.QueryPoolRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryPoolRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPoolRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryPoolRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryPoolRequest();\n return message;\n },\n};\nfunction createBaseQueryPoolResponse() {\n return {\n pool: staking_1.Pool.fromPartial({}),\n };\n}\nexports.QueryPoolResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryPoolResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.pool !== undefined) {\n staking_1.Pool.encode(message.pool, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPoolResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pool = staking_1.Pool.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryPoolResponse();\n if ((0, helpers_1.isSet)(object.pool))\n obj.pool = staking_1.Pool.fromJSON(object.pool);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.pool !== undefined && (obj.pool = message.pool ? staking_1.Pool.toJSON(message.pool) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryPoolResponse();\n if (object.pool !== undefined && object.pool !== null) {\n message.pool = staking_1.Pool.fromPartial(object.pool);\n }\n return message;\n },\n};\nfunction createBaseQueryParamsRequest() {\n return {};\n}\nexports.QueryParamsRequest = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryParamsRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryParamsRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryParamsRequest();\n return message;\n },\n};\nfunction createBaseQueryParamsResponse() {\n return {\n params: staking_1.Params.fromPartial({}),\n };\n}\nexports.QueryParamsResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.QueryParamsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.params !== undefined) {\n staking_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = staking_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryParamsResponse();\n if ((0, helpers_1.isSet)(object.params))\n obj.params = staking_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? staking_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryParamsResponse();\n if (object.params !== undefined && object.params !== null) {\n message.params = staking_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Validators = this.Validators.bind(this);\n this.Validator = this.Validator.bind(this);\n this.ValidatorDelegations = this.ValidatorDelegations.bind(this);\n this.ValidatorUnbondingDelegations = this.ValidatorUnbondingDelegations.bind(this);\n this.Delegation = this.Delegation.bind(this);\n this.UnbondingDelegation = this.UnbondingDelegation.bind(this);\n this.DelegatorDelegations = this.DelegatorDelegations.bind(this);\n this.DelegatorUnbondingDelegations = this.DelegatorUnbondingDelegations.bind(this);\n this.Redelegations = this.Redelegations.bind(this);\n this.DelegatorValidators = this.DelegatorValidators.bind(this);\n this.DelegatorValidator = this.DelegatorValidator.bind(this);\n this.HistoricalInfo = this.HistoricalInfo.bind(this);\n this.Pool = this.Pool.bind(this);\n this.Params = this.Params.bind(this);\n }\n Validators(request) {\n const data = exports.QueryValidatorsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Validators\", data);\n return promise.then((data) => exports.QueryValidatorsResponse.decode(new binary_1.BinaryReader(data)));\n }\n Validator(request) {\n const data = exports.QueryValidatorRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Validator\", data);\n return promise.then((data) => exports.QueryValidatorResponse.decode(new binary_1.BinaryReader(data)));\n }\n ValidatorDelegations(request) {\n const data = exports.QueryValidatorDelegationsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"ValidatorDelegations\", data);\n return promise.then((data) => exports.QueryValidatorDelegationsResponse.decode(new binary_1.BinaryReader(data)));\n }\n ValidatorUnbondingDelegations(request) {\n const data = exports.QueryValidatorUnbondingDelegationsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"ValidatorUnbondingDelegations\", data);\n return promise.then((data) => exports.QueryValidatorUnbondingDelegationsResponse.decode(new binary_1.BinaryReader(data)));\n }\n Delegation(request) {\n const data = exports.QueryDelegationRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Delegation\", data);\n return promise.then((data) => exports.QueryDelegationResponse.decode(new binary_1.BinaryReader(data)));\n }\n UnbondingDelegation(request) {\n const data = exports.QueryUnbondingDelegationRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"UnbondingDelegation\", data);\n return promise.then((data) => exports.QueryUnbondingDelegationResponse.decode(new binary_1.BinaryReader(data)));\n }\n DelegatorDelegations(request) {\n const data = exports.QueryDelegatorDelegationsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"DelegatorDelegations\", data);\n return promise.then((data) => exports.QueryDelegatorDelegationsResponse.decode(new binary_1.BinaryReader(data)));\n }\n DelegatorUnbondingDelegations(request) {\n const data = exports.QueryDelegatorUnbondingDelegationsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"DelegatorUnbondingDelegations\", data);\n return promise.then((data) => exports.QueryDelegatorUnbondingDelegationsResponse.decode(new binary_1.BinaryReader(data)));\n }\n Redelegations(request) {\n const data = exports.QueryRedelegationsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Redelegations\", data);\n return promise.then((data) => exports.QueryRedelegationsResponse.decode(new binary_1.BinaryReader(data)));\n }\n DelegatorValidators(request) {\n const data = exports.QueryDelegatorValidatorsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"DelegatorValidators\", data);\n return promise.then((data) => exports.QueryDelegatorValidatorsResponse.decode(new binary_1.BinaryReader(data)));\n }\n DelegatorValidator(request) {\n const data = exports.QueryDelegatorValidatorRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"DelegatorValidator\", data);\n return promise.then((data) => exports.QueryDelegatorValidatorResponse.decode(new binary_1.BinaryReader(data)));\n }\n HistoricalInfo(request) {\n const data = exports.QueryHistoricalInfoRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"HistoricalInfo\", data);\n return promise.then((data) => exports.QueryHistoricalInfoResponse.decode(new binary_1.BinaryReader(data)));\n }\n Pool(request = {}) {\n const data = exports.QueryPoolRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Pool\", data);\n return promise.then((data) => exports.QueryPoolResponse.decode(new binary_1.BinaryReader(data)));\n }\n Params(request = {}) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValidatorUpdates = exports.Pool = exports.RedelegationResponse = exports.RedelegationEntryResponse = exports.DelegationResponse = exports.Params = exports.Redelegation = exports.RedelegationEntry = exports.UnbondingDelegationEntry = exports.UnbondingDelegation = exports.Delegation = exports.DVVTriplets = exports.DVVTriplet = exports.DVPairs = exports.DVPair = exports.ValAddresses = exports.Validator = exports.Description = exports.Commission = exports.CommissionRates = exports.HistoricalInfo = exports.infractionToJSON = exports.infractionFromJSON = exports.Infraction = exports.bondStatusToJSON = exports.bondStatusFromJSON = exports.BondStatus = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst types_1 = require(\"../../../tendermint/types/types\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst duration_1 = require(\"../../../google/protobuf/duration\");\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst types_2 = require(\"../../../tendermint/abci/types\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.staking.v1beta1\";\n/** BondStatus is the status of a validator. */\nvar BondStatus;\n(function (BondStatus) {\n /** BOND_STATUS_UNSPECIFIED - UNSPECIFIED defines an invalid validator status. */\n BondStatus[BondStatus[\"BOND_STATUS_UNSPECIFIED\"] = 0] = \"BOND_STATUS_UNSPECIFIED\";\n /** BOND_STATUS_UNBONDED - UNBONDED defines a validator that is not bonded. */\n BondStatus[BondStatus[\"BOND_STATUS_UNBONDED\"] = 1] = \"BOND_STATUS_UNBONDED\";\n /** BOND_STATUS_UNBONDING - UNBONDING defines a validator that is unbonding. */\n BondStatus[BondStatus[\"BOND_STATUS_UNBONDING\"] = 2] = \"BOND_STATUS_UNBONDING\";\n /** BOND_STATUS_BONDED - BONDED defines a validator that is bonded. */\n BondStatus[BondStatus[\"BOND_STATUS_BONDED\"] = 3] = \"BOND_STATUS_BONDED\";\n BondStatus[BondStatus[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(BondStatus || (exports.BondStatus = BondStatus = {}));\nfunction bondStatusFromJSON(object) {\n switch (object) {\n case 0:\n case \"BOND_STATUS_UNSPECIFIED\":\n return BondStatus.BOND_STATUS_UNSPECIFIED;\n case 1:\n case \"BOND_STATUS_UNBONDED\":\n return BondStatus.BOND_STATUS_UNBONDED;\n case 2:\n case \"BOND_STATUS_UNBONDING\":\n return BondStatus.BOND_STATUS_UNBONDING;\n case 3:\n case \"BOND_STATUS_BONDED\":\n return BondStatus.BOND_STATUS_BONDED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return BondStatus.UNRECOGNIZED;\n }\n}\nexports.bondStatusFromJSON = bondStatusFromJSON;\nfunction bondStatusToJSON(object) {\n switch (object) {\n case BondStatus.BOND_STATUS_UNSPECIFIED:\n return \"BOND_STATUS_UNSPECIFIED\";\n case BondStatus.BOND_STATUS_UNBONDED:\n return \"BOND_STATUS_UNBONDED\";\n case BondStatus.BOND_STATUS_UNBONDING:\n return \"BOND_STATUS_UNBONDING\";\n case BondStatus.BOND_STATUS_BONDED:\n return \"BOND_STATUS_BONDED\";\n case BondStatus.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.bondStatusToJSON = bondStatusToJSON;\n/** Infraction indicates the infraction a validator commited. */\nvar Infraction;\n(function (Infraction) {\n /** INFRACTION_UNSPECIFIED - UNSPECIFIED defines an empty infraction. */\n Infraction[Infraction[\"INFRACTION_UNSPECIFIED\"] = 0] = \"INFRACTION_UNSPECIFIED\";\n /** INFRACTION_DOUBLE_SIGN - DOUBLE_SIGN defines a validator that double-signs a block. */\n Infraction[Infraction[\"INFRACTION_DOUBLE_SIGN\"] = 1] = \"INFRACTION_DOUBLE_SIGN\";\n /** INFRACTION_DOWNTIME - DOWNTIME defines a validator that missed signing too many blocks. */\n Infraction[Infraction[\"INFRACTION_DOWNTIME\"] = 2] = \"INFRACTION_DOWNTIME\";\n Infraction[Infraction[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(Infraction || (exports.Infraction = Infraction = {}));\nfunction infractionFromJSON(object) {\n switch (object) {\n case 0:\n case \"INFRACTION_UNSPECIFIED\":\n return Infraction.INFRACTION_UNSPECIFIED;\n case 1:\n case \"INFRACTION_DOUBLE_SIGN\":\n return Infraction.INFRACTION_DOUBLE_SIGN;\n case 2:\n case \"INFRACTION_DOWNTIME\":\n return Infraction.INFRACTION_DOWNTIME;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return Infraction.UNRECOGNIZED;\n }\n}\nexports.infractionFromJSON = infractionFromJSON;\nfunction infractionToJSON(object) {\n switch (object) {\n case Infraction.INFRACTION_UNSPECIFIED:\n return \"INFRACTION_UNSPECIFIED\";\n case Infraction.INFRACTION_DOUBLE_SIGN:\n return \"INFRACTION_DOUBLE_SIGN\";\n case Infraction.INFRACTION_DOWNTIME:\n return \"INFRACTION_DOWNTIME\";\n case Infraction.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.infractionToJSON = infractionToJSON;\nfunction createBaseHistoricalInfo() {\n return {\n header: types_1.Header.fromPartial({}),\n valset: [],\n };\n}\nexports.HistoricalInfo = {\n typeUrl: \"/cosmos.staking.v1beta1.HistoricalInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.header !== undefined) {\n types_1.Header.encode(message.header, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.valset) {\n exports.Validator.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHistoricalInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.header = types_1.Header.decode(reader, reader.uint32());\n break;\n case 2:\n message.valset.push(exports.Validator.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseHistoricalInfo();\n if ((0, helpers_1.isSet)(object.header))\n obj.header = types_1.Header.fromJSON(object.header);\n if (Array.isArray(object?.valset))\n obj.valset = object.valset.map((e) => exports.Validator.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.header !== undefined && (obj.header = message.header ? types_1.Header.toJSON(message.header) : undefined);\n if (message.valset) {\n obj.valset = message.valset.map((e) => (e ? exports.Validator.toJSON(e) : undefined));\n }\n else {\n obj.valset = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseHistoricalInfo();\n if (object.header !== undefined && object.header !== null) {\n message.header = types_1.Header.fromPartial(object.header);\n }\n message.valset = object.valset?.map((e) => exports.Validator.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseCommissionRates() {\n return {\n rate: \"\",\n maxRate: \"\",\n maxChangeRate: \"\",\n };\n}\nexports.CommissionRates = {\n typeUrl: \"/cosmos.staking.v1beta1.CommissionRates\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.rate !== \"\") {\n writer.uint32(10).string(message.rate);\n }\n if (message.maxRate !== \"\") {\n writer.uint32(18).string(message.maxRate);\n }\n if (message.maxChangeRate !== \"\") {\n writer.uint32(26).string(message.maxChangeRate);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCommissionRates();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rate = reader.string();\n break;\n case 2:\n message.maxRate = reader.string();\n break;\n case 3:\n message.maxChangeRate = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCommissionRates();\n if ((0, helpers_1.isSet)(object.rate))\n obj.rate = String(object.rate);\n if ((0, helpers_1.isSet)(object.maxRate))\n obj.maxRate = String(object.maxRate);\n if ((0, helpers_1.isSet)(object.maxChangeRate))\n obj.maxChangeRate = String(object.maxChangeRate);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.rate !== undefined && (obj.rate = message.rate);\n message.maxRate !== undefined && (obj.maxRate = message.maxRate);\n message.maxChangeRate !== undefined && (obj.maxChangeRate = message.maxChangeRate);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCommissionRates();\n message.rate = object.rate ?? \"\";\n message.maxRate = object.maxRate ?? \"\";\n message.maxChangeRate = object.maxChangeRate ?? \"\";\n return message;\n },\n};\nfunction createBaseCommission() {\n return {\n commissionRates: exports.CommissionRates.fromPartial({}),\n updateTime: timestamp_1.Timestamp.fromPartial({}),\n };\n}\nexports.Commission = {\n typeUrl: \"/cosmos.staking.v1beta1.Commission\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.commissionRates !== undefined) {\n exports.CommissionRates.encode(message.commissionRates, writer.uint32(10).fork()).ldelim();\n }\n if (message.updateTime !== undefined) {\n timestamp_1.Timestamp.encode(message.updateTime, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCommission();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commissionRates = exports.CommissionRates.decode(reader, reader.uint32());\n break;\n case 2:\n message.updateTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCommission();\n if ((0, helpers_1.isSet)(object.commissionRates))\n obj.commissionRates = exports.CommissionRates.fromJSON(object.commissionRates);\n if ((0, helpers_1.isSet)(object.updateTime))\n obj.updateTime = (0, helpers_1.fromJsonTimestamp)(object.updateTime);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.commissionRates !== undefined &&\n (obj.commissionRates = message.commissionRates\n ? exports.CommissionRates.toJSON(message.commissionRates)\n : undefined);\n message.updateTime !== undefined && (obj.updateTime = (0, helpers_1.fromTimestamp)(message.updateTime).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCommission();\n if (object.commissionRates !== undefined && object.commissionRates !== null) {\n message.commissionRates = exports.CommissionRates.fromPartial(object.commissionRates);\n }\n if (object.updateTime !== undefined && object.updateTime !== null) {\n message.updateTime = timestamp_1.Timestamp.fromPartial(object.updateTime);\n }\n return message;\n },\n};\nfunction createBaseDescription() {\n return {\n moniker: \"\",\n identity: \"\",\n website: \"\",\n securityContact: \"\",\n details: \"\",\n };\n}\nexports.Description = {\n typeUrl: \"/cosmos.staking.v1beta1.Description\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.moniker !== \"\") {\n writer.uint32(10).string(message.moniker);\n }\n if (message.identity !== \"\") {\n writer.uint32(18).string(message.identity);\n }\n if (message.website !== \"\") {\n writer.uint32(26).string(message.website);\n }\n if (message.securityContact !== \"\") {\n writer.uint32(34).string(message.securityContact);\n }\n if (message.details !== \"\") {\n writer.uint32(42).string(message.details);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDescription();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.moniker = reader.string();\n break;\n case 2:\n message.identity = reader.string();\n break;\n case 3:\n message.website = reader.string();\n break;\n case 4:\n message.securityContact = reader.string();\n break;\n case 5:\n message.details = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDescription();\n if ((0, helpers_1.isSet)(object.moniker))\n obj.moniker = String(object.moniker);\n if ((0, helpers_1.isSet)(object.identity))\n obj.identity = String(object.identity);\n if ((0, helpers_1.isSet)(object.website))\n obj.website = String(object.website);\n if ((0, helpers_1.isSet)(object.securityContact))\n obj.securityContact = String(object.securityContact);\n if ((0, helpers_1.isSet)(object.details))\n obj.details = String(object.details);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.moniker !== undefined && (obj.moniker = message.moniker);\n message.identity !== undefined && (obj.identity = message.identity);\n message.website !== undefined && (obj.website = message.website);\n message.securityContact !== undefined && (obj.securityContact = message.securityContact);\n message.details !== undefined && (obj.details = message.details);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDescription();\n message.moniker = object.moniker ?? \"\";\n message.identity = object.identity ?? \"\";\n message.website = object.website ?? \"\";\n message.securityContact = object.securityContact ?? \"\";\n message.details = object.details ?? \"\";\n return message;\n },\n};\nfunction createBaseValidator() {\n return {\n operatorAddress: \"\",\n consensusPubkey: undefined,\n jailed: false,\n status: 0,\n tokens: \"\",\n delegatorShares: \"\",\n description: exports.Description.fromPartial({}),\n unbondingHeight: BigInt(0),\n unbondingTime: timestamp_1.Timestamp.fromPartial({}),\n commission: exports.Commission.fromPartial({}),\n minSelfDelegation: \"\",\n unbondingOnHoldRefCount: BigInt(0),\n unbondingIds: [],\n };\n}\nexports.Validator = {\n typeUrl: \"/cosmos.staking.v1beta1.Validator\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.operatorAddress !== \"\") {\n writer.uint32(10).string(message.operatorAddress);\n }\n if (message.consensusPubkey !== undefined) {\n any_1.Any.encode(message.consensusPubkey, writer.uint32(18).fork()).ldelim();\n }\n if (message.jailed === true) {\n writer.uint32(24).bool(message.jailed);\n }\n if (message.status !== 0) {\n writer.uint32(32).int32(message.status);\n }\n if (message.tokens !== \"\") {\n writer.uint32(42).string(message.tokens);\n }\n if (message.delegatorShares !== \"\") {\n writer.uint32(50).string(message.delegatorShares);\n }\n if (message.description !== undefined) {\n exports.Description.encode(message.description, writer.uint32(58).fork()).ldelim();\n }\n if (message.unbondingHeight !== BigInt(0)) {\n writer.uint32(64).int64(message.unbondingHeight);\n }\n if (message.unbondingTime !== undefined) {\n timestamp_1.Timestamp.encode(message.unbondingTime, writer.uint32(74).fork()).ldelim();\n }\n if (message.commission !== undefined) {\n exports.Commission.encode(message.commission, writer.uint32(82).fork()).ldelim();\n }\n if (message.minSelfDelegation !== \"\") {\n writer.uint32(90).string(message.minSelfDelegation);\n }\n if (message.unbondingOnHoldRefCount !== BigInt(0)) {\n writer.uint32(96).int64(message.unbondingOnHoldRefCount);\n }\n writer.uint32(106).fork();\n for (const v of message.unbondingIds) {\n writer.uint64(v);\n }\n writer.ldelim();\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidator();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.operatorAddress = reader.string();\n break;\n case 2:\n message.consensusPubkey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.jailed = reader.bool();\n break;\n case 4:\n message.status = reader.int32();\n break;\n case 5:\n message.tokens = reader.string();\n break;\n case 6:\n message.delegatorShares = reader.string();\n break;\n case 7:\n message.description = exports.Description.decode(reader, reader.uint32());\n break;\n case 8:\n message.unbondingHeight = reader.int64();\n break;\n case 9:\n message.unbondingTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 10:\n message.commission = exports.Commission.decode(reader, reader.uint32());\n break;\n case 11:\n message.minSelfDelegation = reader.string();\n break;\n case 12:\n message.unbondingOnHoldRefCount = reader.int64();\n break;\n case 13:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.unbondingIds.push(reader.uint64());\n }\n }\n else {\n message.unbondingIds.push(reader.uint64());\n }\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidator();\n if ((0, helpers_1.isSet)(object.operatorAddress))\n obj.operatorAddress = String(object.operatorAddress);\n if ((0, helpers_1.isSet)(object.consensusPubkey))\n obj.consensusPubkey = any_1.Any.fromJSON(object.consensusPubkey);\n if ((0, helpers_1.isSet)(object.jailed))\n obj.jailed = Boolean(object.jailed);\n if ((0, helpers_1.isSet)(object.status))\n obj.status = bondStatusFromJSON(object.status);\n if ((0, helpers_1.isSet)(object.tokens))\n obj.tokens = String(object.tokens);\n if ((0, helpers_1.isSet)(object.delegatorShares))\n obj.delegatorShares = String(object.delegatorShares);\n if ((0, helpers_1.isSet)(object.description))\n obj.description = exports.Description.fromJSON(object.description);\n if ((0, helpers_1.isSet)(object.unbondingHeight))\n obj.unbondingHeight = BigInt(object.unbondingHeight.toString());\n if ((0, helpers_1.isSet)(object.unbondingTime))\n obj.unbondingTime = (0, helpers_1.fromJsonTimestamp)(object.unbondingTime);\n if ((0, helpers_1.isSet)(object.commission))\n obj.commission = exports.Commission.fromJSON(object.commission);\n if ((0, helpers_1.isSet)(object.minSelfDelegation))\n obj.minSelfDelegation = String(object.minSelfDelegation);\n if ((0, helpers_1.isSet)(object.unbondingOnHoldRefCount))\n obj.unbondingOnHoldRefCount = BigInt(object.unbondingOnHoldRefCount.toString());\n if (Array.isArray(object?.unbondingIds))\n obj.unbondingIds = object.unbondingIds.map((e) => BigInt(e.toString()));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.operatorAddress !== undefined && (obj.operatorAddress = message.operatorAddress);\n message.consensusPubkey !== undefined &&\n (obj.consensusPubkey = message.consensusPubkey ? any_1.Any.toJSON(message.consensusPubkey) : undefined);\n message.jailed !== undefined && (obj.jailed = message.jailed);\n message.status !== undefined && (obj.status = bondStatusToJSON(message.status));\n message.tokens !== undefined && (obj.tokens = message.tokens);\n message.delegatorShares !== undefined && (obj.delegatorShares = message.delegatorShares);\n message.description !== undefined &&\n (obj.description = message.description ? exports.Description.toJSON(message.description) : undefined);\n message.unbondingHeight !== undefined &&\n (obj.unbondingHeight = (message.unbondingHeight || BigInt(0)).toString());\n message.unbondingTime !== undefined &&\n (obj.unbondingTime = (0, helpers_1.fromTimestamp)(message.unbondingTime).toISOString());\n message.commission !== undefined &&\n (obj.commission = message.commission ? exports.Commission.toJSON(message.commission) : undefined);\n message.minSelfDelegation !== undefined && (obj.minSelfDelegation = message.minSelfDelegation);\n message.unbondingOnHoldRefCount !== undefined &&\n (obj.unbondingOnHoldRefCount = (message.unbondingOnHoldRefCount || BigInt(0)).toString());\n if (message.unbondingIds) {\n obj.unbondingIds = message.unbondingIds.map((e) => (e || BigInt(0)).toString());\n }\n else {\n obj.unbondingIds = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidator();\n message.operatorAddress = object.operatorAddress ?? \"\";\n if (object.consensusPubkey !== undefined && object.consensusPubkey !== null) {\n message.consensusPubkey = any_1.Any.fromPartial(object.consensusPubkey);\n }\n message.jailed = object.jailed ?? false;\n message.status = object.status ?? 0;\n message.tokens = object.tokens ?? \"\";\n message.delegatorShares = object.delegatorShares ?? \"\";\n if (object.description !== undefined && object.description !== null) {\n message.description = exports.Description.fromPartial(object.description);\n }\n if (object.unbondingHeight !== undefined && object.unbondingHeight !== null) {\n message.unbondingHeight = BigInt(object.unbondingHeight.toString());\n }\n if (object.unbondingTime !== undefined && object.unbondingTime !== null) {\n message.unbondingTime = timestamp_1.Timestamp.fromPartial(object.unbondingTime);\n }\n if (object.commission !== undefined && object.commission !== null) {\n message.commission = exports.Commission.fromPartial(object.commission);\n }\n message.minSelfDelegation = object.minSelfDelegation ?? \"\";\n if (object.unbondingOnHoldRefCount !== undefined && object.unbondingOnHoldRefCount !== null) {\n message.unbondingOnHoldRefCount = BigInt(object.unbondingOnHoldRefCount.toString());\n }\n message.unbondingIds = object.unbondingIds?.map((e) => BigInt(e.toString())) || [];\n return message;\n },\n};\nfunction createBaseValAddresses() {\n return {\n addresses: [],\n };\n}\nexports.ValAddresses = {\n typeUrl: \"/cosmos.staking.v1beta1.ValAddresses\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.addresses) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValAddresses();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.addresses.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValAddresses();\n if (Array.isArray(object?.addresses))\n obj.addresses = object.addresses.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.addresses) {\n obj.addresses = message.addresses.map((e) => e);\n }\n else {\n obj.addresses = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValAddresses();\n message.addresses = object.addresses?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseDVPair() {\n return {\n delegatorAddress: \"\",\n validatorAddress: \"\",\n };\n}\nexports.DVPair = {\n typeUrl: \"/cosmos.staking.v1beta1.DVPair\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDVPair();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDVPair();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDVPair();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseDVPairs() {\n return {\n pairs: [],\n };\n}\nexports.DVPairs = {\n typeUrl: \"/cosmos.staking.v1beta1.DVPairs\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.pairs) {\n exports.DVPair.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDVPairs();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pairs.push(exports.DVPair.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDVPairs();\n if (Array.isArray(object?.pairs))\n obj.pairs = object.pairs.map((e) => exports.DVPair.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.pairs) {\n obj.pairs = message.pairs.map((e) => (e ? exports.DVPair.toJSON(e) : undefined));\n }\n else {\n obj.pairs = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDVPairs();\n message.pairs = object.pairs?.map((e) => exports.DVPair.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseDVVTriplet() {\n return {\n delegatorAddress: \"\",\n validatorSrcAddress: \"\",\n validatorDstAddress: \"\",\n };\n}\nexports.DVVTriplet = {\n typeUrl: \"/cosmos.staking.v1beta1.DVVTriplet\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorSrcAddress !== \"\") {\n writer.uint32(18).string(message.validatorSrcAddress);\n }\n if (message.validatorDstAddress !== \"\") {\n writer.uint32(26).string(message.validatorDstAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDVVTriplet();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorSrcAddress = reader.string();\n break;\n case 3:\n message.validatorDstAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDVVTriplet();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorSrcAddress))\n obj.validatorSrcAddress = String(object.validatorSrcAddress);\n if ((0, helpers_1.isSet)(object.validatorDstAddress))\n obj.validatorDstAddress = String(object.validatorDstAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorSrcAddress !== undefined && (obj.validatorSrcAddress = message.validatorSrcAddress);\n message.validatorDstAddress !== undefined && (obj.validatorDstAddress = message.validatorDstAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDVVTriplet();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorSrcAddress = object.validatorSrcAddress ?? \"\";\n message.validatorDstAddress = object.validatorDstAddress ?? \"\";\n return message;\n },\n};\nfunction createBaseDVVTriplets() {\n return {\n triplets: [],\n };\n}\nexports.DVVTriplets = {\n typeUrl: \"/cosmos.staking.v1beta1.DVVTriplets\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.triplets) {\n exports.DVVTriplet.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDVVTriplets();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.triplets.push(exports.DVVTriplet.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDVVTriplets();\n if (Array.isArray(object?.triplets))\n obj.triplets = object.triplets.map((e) => exports.DVVTriplet.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.triplets) {\n obj.triplets = message.triplets.map((e) => (e ? exports.DVVTriplet.toJSON(e) : undefined));\n }\n else {\n obj.triplets = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDVVTriplets();\n message.triplets = object.triplets?.map((e) => exports.DVVTriplet.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseDelegation() {\n return {\n delegatorAddress: \"\",\n validatorAddress: \"\",\n shares: \"\",\n };\n}\nexports.Delegation = {\n typeUrl: \"/cosmos.staking.v1beta1.Delegation\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n if (message.shares !== \"\") {\n writer.uint32(26).string(message.shares);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDelegation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.shares = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDelegation();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n if ((0, helpers_1.isSet)(object.shares))\n obj.shares = String(object.shares);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.shares !== undefined && (obj.shares = message.shares);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDelegation();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n message.shares = object.shares ?? \"\";\n return message;\n },\n};\nfunction createBaseUnbondingDelegation() {\n return {\n delegatorAddress: \"\",\n validatorAddress: \"\",\n entries: [],\n };\n}\nexports.UnbondingDelegation = {\n typeUrl: \"/cosmos.staking.v1beta1.UnbondingDelegation\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n for (const v of message.entries) {\n exports.UnbondingDelegationEntry.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseUnbondingDelegation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.entries.push(exports.UnbondingDelegationEntry.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseUnbondingDelegation();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n if (Array.isArray(object?.entries))\n obj.entries = object.entries.map((e) => exports.UnbondingDelegationEntry.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.UnbondingDelegationEntry.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseUnbondingDelegation();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n message.entries = object.entries?.map((e) => exports.UnbondingDelegationEntry.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseUnbondingDelegationEntry() {\n return {\n creationHeight: BigInt(0),\n completionTime: timestamp_1.Timestamp.fromPartial({}),\n initialBalance: \"\",\n balance: \"\",\n unbondingId: BigInt(0),\n unbondingOnHoldRefCount: BigInt(0),\n };\n}\nexports.UnbondingDelegationEntry = {\n typeUrl: \"/cosmos.staking.v1beta1.UnbondingDelegationEntry\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.creationHeight !== BigInt(0)) {\n writer.uint32(8).int64(message.creationHeight);\n }\n if (message.completionTime !== undefined) {\n timestamp_1.Timestamp.encode(message.completionTime, writer.uint32(18).fork()).ldelim();\n }\n if (message.initialBalance !== \"\") {\n writer.uint32(26).string(message.initialBalance);\n }\n if (message.balance !== \"\") {\n writer.uint32(34).string(message.balance);\n }\n if (message.unbondingId !== BigInt(0)) {\n writer.uint32(40).uint64(message.unbondingId);\n }\n if (message.unbondingOnHoldRefCount !== BigInt(0)) {\n writer.uint32(48).int64(message.unbondingOnHoldRefCount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseUnbondingDelegationEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.creationHeight = reader.int64();\n break;\n case 2:\n message.completionTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 3:\n message.initialBalance = reader.string();\n break;\n case 4:\n message.balance = reader.string();\n break;\n case 5:\n message.unbondingId = reader.uint64();\n break;\n case 6:\n message.unbondingOnHoldRefCount = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseUnbondingDelegationEntry();\n if ((0, helpers_1.isSet)(object.creationHeight))\n obj.creationHeight = BigInt(object.creationHeight.toString());\n if ((0, helpers_1.isSet)(object.completionTime))\n obj.completionTime = (0, helpers_1.fromJsonTimestamp)(object.completionTime);\n if ((0, helpers_1.isSet)(object.initialBalance))\n obj.initialBalance = String(object.initialBalance);\n if ((0, helpers_1.isSet)(object.balance))\n obj.balance = String(object.balance);\n if ((0, helpers_1.isSet)(object.unbondingId))\n obj.unbondingId = BigInt(object.unbondingId.toString());\n if ((0, helpers_1.isSet)(object.unbondingOnHoldRefCount))\n obj.unbondingOnHoldRefCount = BigInt(object.unbondingOnHoldRefCount.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.creationHeight !== undefined &&\n (obj.creationHeight = (message.creationHeight || BigInt(0)).toString());\n message.completionTime !== undefined &&\n (obj.completionTime = (0, helpers_1.fromTimestamp)(message.completionTime).toISOString());\n message.initialBalance !== undefined && (obj.initialBalance = message.initialBalance);\n message.balance !== undefined && (obj.balance = message.balance);\n message.unbondingId !== undefined && (obj.unbondingId = (message.unbondingId || BigInt(0)).toString());\n message.unbondingOnHoldRefCount !== undefined &&\n (obj.unbondingOnHoldRefCount = (message.unbondingOnHoldRefCount || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseUnbondingDelegationEntry();\n if (object.creationHeight !== undefined && object.creationHeight !== null) {\n message.creationHeight = BigInt(object.creationHeight.toString());\n }\n if (object.completionTime !== undefined && object.completionTime !== null) {\n message.completionTime = timestamp_1.Timestamp.fromPartial(object.completionTime);\n }\n message.initialBalance = object.initialBalance ?? \"\";\n message.balance = object.balance ?? \"\";\n if (object.unbondingId !== undefined && object.unbondingId !== null) {\n message.unbondingId = BigInt(object.unbondingId.toString());\n }\n if (object.unbondingOnHoldRefCount !== undefined && object.unbondingOnHoldRefCount !== null) {\n message.unbondingOnHoldRefCount = BigInt(object.unbondingOnHoldRefCount.toString());\n }\n return message;\n },\n};\nfunction createBaseRedelegationEntry() {\n return {\n creationHeight: BigInt(0),\n completionTime: timestamp_1.Timestamp.fromPartial({}),\n initialBalance: \"\",\n sharesDst: \"\",\n unbondingId: BigInt(0),\n unbondingOnHoldRefCount: BigInt(0),\n };\n}\nexports.RedelegationEntry = {\n typeUrl: \"/cosmos.staking.v1beta1.RedelegationEntry\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.creationHeight !== BigInt(0)) {\n writer.uint32(8).int64(message.creationHeight);\n }\n if (message.completionTime !== undefined) {\n timestamp_1.Timestamp.encode(message.completionTime, writer.uint32(18).fork()).ldelim();\n }\n if (message.initialBalance !== \"\") {\n writer.uint32(26).string(message.initialBalance);\n }\n if (message.sharesDst !== \"\") {\n writer.uint32(34).string(message.sharesDst);\n }\n if (message.unbondingId !== BigInt(0)) {\n writer.uint32(40).uint64(message.unbondingId);\n }\n if (message.unbondingOnHoldRefCount !== BigInt(0)) {\n writer.uint32(48).int64(message.unbondingOnHoldRefCount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRedelegationEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.creationHeight = reader.int64();\n break;\n case 2:\n message.completionTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 3:\n message.initialBalance = reader.string();\n break;\n case 4:\n message.sharesDst = reader.string();\n break;\n case 5:\n message.unbondingId = reader.uint64();\n break;\n case 6:\n message.unbondingOnHoldRefCount = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRedelegationEntry();\n if ((0, helpers_1.isSet)(object.creationHeight))\n obj.creationHeight = BigInt(object.creationHeight.toString());\n if ((0, helpers_1.isSet)(object.completionTime))\n obj.completionTime = (0, helpers_1.fromJsonTimestamp)(object.completionTime);\n if ((0, helpers_1.isSet)(object.initialBalance))\n obj.initialBalance = String(object.initialBalance);\n if ((0, helpers_1.isSet)(object.sharesDst))\n obj.sharesDst = String(object.sharesDst);\n if ((0, helpers_1.isSet)(object.unbondingId))\n obj.unbondingId = BigInt(object.unbondingId.toString());\n if ((0, helpers_1.isSet)(object.unbondingOnHoldRefCount))\n obj.unbondingOnHoldRefCount = BigInt(object.unbondingOnHoldRefCount.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.creationHeight !== undefined &&\n (obj.creationHeight = (message.creationHeight || BigInt(0)).toString());\n message.completionTime !== undefined &&\n (obj.completionTime = (0, helpers_1.fromTimestamp)(message.completionTime).toISOString());\n message.initialBalance !== undefined && (obj.initialBalance = message.initialBalance);\n message.sharesDst !== undefined && (obj.sharesDst = message.sharesDst);\n message.unbondingId !== undefined && (obj.unbondingId = (message.unbondingId || BigInt(0)).toString());\n message.unbondingOnHoldRefCount !== undefined &&\n (obj.unbondingOnHoldRefCount = (message.unbondingOnHoldRefCount || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRedelegationEntry();\n if (object.creationHeight !== undefined && object.creationHeight !== null) {\n message.creationHeight = BigInt(object.creationHeight.toString());\n }\n if (object.completionTime !== undefined && object.completionTime !== null) {\n message.completionTime = timestamp_1.Timestamp.fromPartial(object.completionTime);\n }\n message.initialBalance = object.initialBalance ?? \"\";\n message.sharesDst = object.sharesDst ?? \"\";\n if (object.unbondingId !== undefined && object.unbondingId !== null) {\n message.unbondingId = BigInt(object.unbondingId.toString());\n }\n if (object.unbondingOnHoldRefCount !== undefined && object.unbondingOnHoldRefCount !== null) {\n message.unbondingOnHoldRefCount = BigInt(object.unbondingOnHoldRefCount.toString());\n }\n return message;\n },\n};\nfunction createBaseRedelegation() {\n return {\n delegatorAddress: \"\",\n validatorSrcAddress: \"\",\n validatorDstAddress: \"\",\n entries: [],\n };\n}\nexports.Redelegation = {\n typeUrl: \"/cosmos.staking.v1beta1.Redelegation\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorSrcAddress !== \"\") {\n writer.uint32(18).string(message.validatorSrcAddress);\n }\n if (message.validatorDstAddress !== \"\") {\n writer.uint32(26).string(message.validatorDstAddress);\n }\n for (const v of message.entries) {\n exports.RedelegationEntry.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRedelegation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorSrcAddress = reader.string();\n break;\n case 3:\n message.validatorDstAddress = reader.string();\n break;\n case 4:\n message.entries.push(exports.RedelegationEntry.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRedelegation();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorSrcAddress))\n obj.validatorSrcAddress = String(object.validatorSrcAddress);\n if ((0, helpers_1.isSet)(object.validatorDstAddress))\n obj.validatorDstAddress = String(object.validatorDstAddress);\n if (Array.isArray(object?.entries))\n obj.entries = object.entries.map((e) => exports.RedelegationEntry.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorSrcAddress !== undefined && (obj.validatorSrcAddress = message.validatorSrcAddress);\n message.validatorDstAddress !== undefined && (obj.validatorDstAddress = message.validatorDstAddress);\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.RedelegationEntry.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRedelegation();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorSrcAddress = object.validatorSrcAddress ?? \"\";\n message.validatorDstAddress = object.validatorDstAddress ?? \"\";\n message.entries = object.entries?.map((e) => exports.RedelegationEntry.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseParams() {\n return {\n unbondingTime: duration_1.Duration.fromPartial({}),\n maxValidators: 0,\n maxEntries: 0,\n historicalEntries: 0,\n bondDenom: \"\",\n minCommissionRate: \"\",\n };\n}\nexports.Params = {\n typeUrl: \"/cosmos.staking.v1beta1.Params\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.unbondingTime !== undefined) {\n duration_1.Duration.encode(message.unbondingTime, writer.uint32(10).fork()).ldelim();\n }\n if (message.maxValidators !== 0) {\n writer.uint32(16).uint32(message.maxValidators);\n }\n if (message.maxEntries !== 0) {\n writer.uint32(24).uint32(message.maxEntries);\n }\n if (message.historicalEntries !== 0) {\n writer.uint32(32).uint32(message.historicalEntries);\n }\n if (message.bondDenom !== \"\") {\n writer.uint32(42).string(message.bondDenom);\n }\n if (message.minCommissionRate !== \"\") {\n writer.uint32(50).string(message.minCommissionRate);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.unbondingTime = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 2:\n message.maxValidators = reader.uint32();\n break;\n case 3:\n message.maxEntries = reader.uint32();\n break;\n case 4:\n message.historicalEntries = reader.uint32();\n break;\n case 5:\n message.bondDenom = reader.string();\n break;\n case 6:\n message.minCommissionRate = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseParams();\n if ((0, helpers_1.isSet)(object.unbondingTime))\n obj.unbondingTime = duration_1.Duration.fromJSON(object.unbondingTime);\n if ((0, helpers_1.isSet)(object.maxValidators))\n obj.maxValidators = Number(object.maxValidators);\n if ((0, helpers_1.isSet)(object.maxEntries))\n obj.maxEntries = Number(object.maxEntries);\n if ((0, helpers_1.isSet)(object.historicalEntries))\n obj.historicalEntries = Number(object.historicalEntries);\n if ((0, helpers_1.isSet)(object.bondDenom))\n obj.bondDenom = String(object.bondDenom);\n if ((0, helpers_1.isSet)(object.minCommissionRate))\n obj.minCommissionRate = String(object.minCommissionRate);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.unbondingTime !== undefined &&\n (obj.unbondingTime = message.unbondingTime ? duration_1.Duration.toJSON(message.unbondingTime) : undefined);\n message.maxValidators !== undefined && (obj.maxValidators = Math.round(message.maxValidators));\n message.maxEntries !== undefined && (obj.maxEntries = Math.round(message.maxEntries));\n message.historicalEntries !== undefined &&\n (obj.historicalEntries = Math.round(message.historicalEntries));\n message.bondDenom !== undefined && (obj.bondDenom = message.bondDenom);\n message.minCommissionRate !== undefined && (obj.minCommissionRate = message.minCommissionRate);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseParams();\n if (object.unbondingTime !== undefined && object.unbondingTime !== null) {\n message.unbondingTime = duration_1.Duration.fromPartial(object.unbondingTime);\n }\n message.maxValidators = object.maxValidators ?? 0;\n message.maxEntries = object.maxEntries ?? 0;\n message.historicalEntries = object.historicalEntries ?? 0;\n message.bondDenom = object.bondDenom ?? \"\";\n message.minCommissionRate = object.minCommissionRate ?? \"\";\n return message;\n },\n};\nfunction createBaseDelegationResponse() {\n return {\n delegation: exports.Delegation.fromPartial({}),\n balance: coin_1.Coin.fromPartial({}),\n };\n}\nexports.DelegationResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.DelegationResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegation !== undefined) {\n exports.Delegation.encode(message.delegation, writer.uint32(10).fork()).ldelim();\n }\n if (message.balance !== undefined) {\n coin_1.Coin.encode(message.balance, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDelegationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegation = exports.Delegation.decode(reader, reader.uint32());\n break;\n case 2:\n message.balance = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDelegationResponse();\n if ((0, helpers_1.isSet)(object.delegation))\n obj.delegation = exports.Delegation.fromJSON(object.delegation);\n if ((0, helpers_1.isSet)(object.balance))\n obj.balance = coin_1.Coin.fromJSON(object.balance);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegation !== undefined &&\n (obj.delegation = message.delegation ? exports.Delegation.toJSON(message.delegation) : undefined);\n message.balance !== undefined &&\n (obj.balance = message.balance ? coin_1.Coin.toJSON(message.balance) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDelegationResponse();\n if (object.delegation !== undefined && object.delegation !== null) {\n message.delegation = exports.Delegation.fromPartial(object.delegation);\n }\n if (object.balance !== undefined && object.balance !== null) {\n message.balance = coin_1.Coin.fromPartial(object.balance);\n }\n return message;\n },\n};\nfunction createBaseRedelegationEntryResponse() {\n return {\n redelegationEntry: exports.RedelegationEntry.fromPartial({}),\n balance: \"\",\n };\n}\nexports.RedelegationEntryResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.RedelegationEntryResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.redelegationEntry !== undefined) {\n exports.RedelegationEntry.encode(message.redelegationEntry, writer.uint32(10).fork()).ldelim();\n }\n if (message.balance !== \"\") {\n writer.uint32(34).string(message.balance);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRedelegationEntryResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.redelegationEntry = exports.RedelegationEntry.decode(reader, reader.uint32());\n break;\n case 4:\n message.balance = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRedelegationEntryResponse();\n if ((0, helpers_1.isSet)(object.redelegationEntry))\n obj.redelegationEntry = exports.RedelegationEntry.fromJSON(object.redelegationEntry);\n if ((0, helpers_1.isSet)(object.balance))\n obj.balance = String(object.balance);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.redelegationEntry !== undefined &&\n (obj.redelegationEntry = message.redelegationEntry\n ? exports.RedelegationEntry.toJSON(message.redelegationEntry)\n : undefined);\n message.balance !== undefined && (obj.balance = message.balance);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRedelegationEntryResponse();\n if (object.redelegationEntry !== undefined && object.redelegationEntry !== null) {\n message.redelegationEntry = exports.RedelegationEntry.fromPartial(object.redelegationEntry);\n }\n message.balance = object.balance ?? \"\";\n return message;\n },\n};\nfunction createBaseRedelegationResponse() {\n return {\n redelegation: exports.Redelegation.fromPartial({}),\n entries: [],\n };\n}\nexports.RedelegationResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.RedelegationResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.redelegation !== undefined) {\n exports.Redelegation.encode(message.redelegation, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.entries) {\n exports.RedelegationEntryResponse.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRedelegationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.redelegation = exports.Redelegation.decode(reader, reader.uint32());\n break;\n case 2:\n message.entries.push(exports.RedelegationEntryResponse.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRedelegationResponse();\n if ((0, helpers_1.isSet)(object.redelegation))\n obj.redelegation = exports.Redelegation.fromJSON(object.redelegation);\n if (Array.isArray(object?.entries))\n obj.entries = object.entries.map((e) => exports.RedelegationEntryResponse.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.redelegation !== undefined &&\n (obj.redelegation = message.redelegation ? exports.Redelegation.toJSON(message.redelegation) : undefined);\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.RedelegationEntryResponse.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRedelegationResponse();\n if (object.redelegation !== undefined && object.redelegation !== null) {\n message.redelegation = exports.Redelegation.fromPartial(object.redelegation);\n }\n message.entries = object.entries?.map((e) => exports.RedelegationEntryResponse.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBasePool() {\n return {\n notBondedTokens: \"\",\n bondedTokens: \"\",\n };\n}\nexports.Pool = {\n typeUrl: \"/cosmos.staking.v1beta1.Pool\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.notBondedTokens !== \"\") {\n writer.uint32(10).string(message.notBondedTokens);\n }\n if (message.bondedTokens !== \"\") {\n writer.uint32(18).string(message.bondedTokens);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePool();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.notBondedTokens = reader.string();\n break;\n case 2:\n message.bondedTokens = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePool();\n if ((0, helpers_1.isSet)(object.notBondedTokens))\n obj.notBondedTokens = String(object.notBondedTokens);\n if ((0, helpers_1.isSet)(object.bondedTokens))\n obj.bondedTokens = String(object.bondedTokens);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.notBondedTokens !== undefined && (obj.notBondedTokens = message.notBondedTokens);\n message.bondedTokens !== undefined && (obj.bondedTokens = message.bondedTokens);\n return obj;\n },\n fromPartial(object) {\n const message = createBasePool();\n message.notBondedTokens = object.notBondedTokens ?? \"\";\n message.bondedTokens = object.bondedTokens ?? \"\";\n return message;\n },\n};\nfunction createBaseValidatorUpdates() {\n return {\n updates: [],\n };\n}\nexports.ValidatorUpdates = {\n typeUrl: \"/cosmos.staking.v1beta1.ValidatorUpdates\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.updates) {\n types_2.ValidatorUpdate.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorUpdates();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.updates.push(types_2.ValidatorUpdate.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidatorUpdates();\n if (Array.isArray(object?.updates))\n obj.updates = object.updates.map((e) => types_2.ValidatorUpdate.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.updates) {\n obj.updates = message.updates.map((e) => (e ? types_2.ValidatorUpdate.toJSON(e) : undefined));\n }\n else {\n obj.updates = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidatorUpdates();\n message.updates = object.updates?.map((e) => types_2.ValidatorUpdate.fromPartial(e)) || [];\n return message;\n },\n};\n//# sourceMappingURL=staking.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgUpdateParamsResponse = exports.MsgUpdateParams = exports.MsgCancelUnbondingDelegationResponse = exports.MsgCancelUnbondingDelegation = exports.MsgUndelegateResponse = exports.MsgUndelegate = exports.MsgBeginRedelegateResponse = exports.MsgBeginRedelegate = exports.MsgDelegateResponse = exports.MsgDelegate = exports.MsgEditValidatorResponse = exports.MsgEditValidator = exports.MsgCreateValidatorResponse = exports.MsgCreateValidator = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst staking_1 = require(\"./staking\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.staking.v1beta1\";\nfunction createBaseMsgCreateValidator() {\n return {\n description: staking_1.Description.fromPartial({}),\n commission: staking_1.CommissionRates.fromPartial({}),\n minSelfDelegation: \"\",\n delegatorAddress: \"\",\n validatorAddress: \"\",\n pubkey: undefined,\n value: coin_1.Coin.fromPartial({}),\n };\n}\nexports.MsgCreateValidator = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgCreateValidator\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.description !== undefined) {\n staking_1.Description.encode(message.description, writer.uint32(10).fork()).ldelim();\n }\n if (message.commission !== undefined) {\n staking_1.CommissionRates.encode(message.commission, writer.uint32(18).fork()).ldelim();\n }\n if (message.minSelfDelegation !== \"\") {\n writer.uint32(26).string(message.minSelfDelegation);\n }\n if (message.delegatorAddress !== \"\") {\n writer.uint32(34).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(42).string(message.validatorAddress);\n }\n if (message.pubkey !== undefined) {\n any_1.Any.encode(message.pubkey, writer.uint32(50).fork()).ldelim();\n }\n if (message.value !== undefined) {\n coin_1.Coin.encode(message.value, writer.uint32(58).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateValidator();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.description = staking_1.Description.decode(reader, reader.uint32());\n break;\n case 2:\n message.commission = staking_1.CommissionRates.decode(reader, reader.uint32());\n break;\n case 3:\n message.minSelfDelegation = reader.string();\n break;\n case 4:\n message.delegatorAddress = reader.string();\n break;\n case 5:\n message.validatorAddress = reader.string();\n break;\n case 6:\n message.pubkey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 7:\n message.value = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCreateValidator();\n if ((0, helpers_1.isSet)(object.description))\n obj.description = staking_1.Description.fromJSON(object.description);\n if ((0, helpers_1.isSet)(object.commission))\n obj.commission = staking_1.CommissionRates.fromJSON(object.commission);\n if ((0, helpers_1.isSet)(object.minSelfDelegation))\n obj.minSelfDelegation = String(object.minSelfDelegation);\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n if ((0, helpers_1.isSet)(object.pubkey))\n obj.pubkey = any_1.Any.fromJSON(object.pubkey);\n if ((0, helpers_1.isSet)(object.value))\n obj.value = coin_1.Coin.fromJSON(object.value);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.description !== undefined &&\n (obj.description = message.description ? staking_1.Description.toJSON(message.description) : undefined);\n message.commission !== undefined &&\n (obj.commission = message.commission ? staking_1.CommissionRates.toJSON(message.commission) : undefined);\n message.minSelfDelegation !== undefined && (obj.minSelfDelegation = message.minSelfDelegation);\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.pubkey !== undefined && (obj.pubkey = message.pubkey ? any_1.Any.toJSON(message.pubkey) : undefined);\n message.value !== undefined && (obj.value = message.value ? coin_1.Coin.toJSON(message.value) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCreateValidator();\n if (object.description !== undefined && object.description !== null) {\n message.description = staking_1.Description.fromPartial(object.description);\n }\n if (object.commission !== undefined && object.commission !== null) {\n message.commission = staking_1.CommissionRates.fromPartial(object.commission);\n }\n message.minSelfDelegation = object.minSelfDelegation ?? \"\";\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n if (object.pubkey !== undefined && object.pubkey !== null) {\n message.pubkey = any_1.Any.fromPartial(object.pubkey);\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = coin_1.Coin.fromPartial(object.value);\n }\n return message;\n },\n};\nfunction createBaseMsgCreateValidatorResponse() {\n return {};\n}\nexports.MsgCreateValidatorResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgCreateValidatorResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateValidatorResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgCreateValidatorResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgCreateValidatorResponse();\n return message;\n },\n};\nfunction createBaseMsgEditValidator() {\n return {\n description: staking_1.Description.fromPartial({}),\n validatorAddress: \"\",\n commissionRate: \"\",\n minSelfDelegation: \"\",\n };\n}\nexports.MsgEditValidator = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgEditValidator\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.description !== undefined) {\n staking_1.Description.encode(message.description, writer.uint32(10).fork()).ldelim();\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n if (message.commissionRate !== \"\") {\n writer.uint32(26).string(message.commissionRate);\n }\n if (message.minSelfDelegation !== \"\") {\n writer.uint32(34).string(message.minSelfDelegation);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgEditValidator();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.description = staking_1.Description.decode(reader, reader.uint32());\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.commissionRate = reader.string();\n break;\n case 4:\n message.minSelfDelegation = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgEditValidator();\n if ((0, helpers_1.isSet)(object.description))\n obj.description = staking_1.Description.fromJSON(object.description);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n if ((0, helpers_1.isSet)(object.commissionRate))\n obj.commissionRate = String(object.commissionRate);\n if ((0, helpers_1.isSet)(object.minSelfDelegation))\n obj.minSelfDelegation = String(object.minSelfDelegation);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.description !== undefined &&\n (obj.description = message.description ? staking_1.Description.toJSON(message.description) : undefined);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.commissionRate !== undefined && (obj.commissionRate = message.commissionRate);\n message.minSelfDelegation !== undefined && (obj.minSelfDelegation = message.minSelfDelegation);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgEditValidator();\n if (object.description !== undefined && object.description !== null) {\n message.description = staking_1.Description.fromPartial(object.description);\n }\n message.validatorAddress = object.validatorAddress ?? \"\";\n message.commissionRate = object.commissionRate ?? \"\";\n message.minSelfDelegation = object.minSelfDelegation ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgEditValidatorResponse() {\n return {};\n}\nexports.MsgEditValidatorResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgEditValidatorResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgEditValidatorResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgEditValidatorResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgEditValidatorResponse();\n return message;\n },\n};\nfunction createBaseMsgDelegate() {\n return {\n delegatorAddress: \"\",\n validatorAddress: \"\",\n amount: coin_1.Coin.fromPartial({}),\n };\n}\nexports.MsgDelegate = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgDelegate\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n if (message.amount !== undefined) {\n coin_1.Coin.encode(message.amount, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgDelegate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.amount = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgDelegate();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n if ((0, helpers_1.isSet)(object.amount))\n obj.amount = coin_1.Coin.fromJSON(object.amount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgDelegate();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = coin_1.Coin.fromPartial(object.amount);\n }\n return message;\n },\n};\nfunction createBaseMsgDelegateResponse() {\n return {};\n}\nexports.MsgDelegateResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgDelegateResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgDelegateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgDelegateResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgDelegateResponse();\n return message;\n },\n};\nfunction createBaseMsgBeginRedelegate() {\n return {\n delegatorAddress: \"\",\n validatorSrcAddress: \"\",\n validatorDstAddress: \"\",\n amount: coin_1.Coin.fromPartial({}),\n };\n}\nexports.MsgBeginRedelegate = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgBeginRedelegate\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorSrcAddress !== \"\") {\n writer.uint32(18).string(message.validatorSrcAddress);\n }\n if (message.validatorDstAddress !== \"\") {\n writer.uint32(26).string(message.validatorDstAddress);\n }\n if (message.amount !== undefined) {\n coin_1.Coin.encode(message.amount, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgBeginRedelegate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorSrcAddress = reader.string();\n break;\n case 3:\n message.validatorDstAddress = reader.string();\n break;\n case 4:\n message.amount = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgBeginRedelegate();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorSrcAddress))\n obj.validatorSrcAddress = String(object.validatorSrcAddress);\n if ((0, helpers_1.isSet)(object.validatorDstAddress))\n obj.validatorDstAddress = String(object.validatorDstAddress);\n if ((0, helpers_1.isSet)(object.amount))\n obj.amount = coin_1.Coin.fromJSON(object.amount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorSrcAddress !== undefined && (obj.validatorSrcAddress = message.validatorSrcAddress);\n message.validatorDstAddress !== undefined && (obj.validatorDstAddress = message.validatorDstAddress);\n message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgBeginRedelegate();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorSrcAddress = object.validatorSrcAddress ?? \"\";\n message.validatorDstAddress = object.validatorDstAddress ?? \"\";\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = coin_1.Coin.fromPartial(object.amount);\n }\n return message;\n },\n};\nfunction createBaseMsgBeginRedelegateResponse() {\n return {\n completionTime: timestamp_1.Timestamp.fromPartial({}),\n };\n}\nexports.MsgBeginRedelegateResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgBeginRedelegateResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.completionTime !== undefined) {\n timestamp_1.Timestamp.encode(message.completionTime, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgBeginRedelegateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.completionTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgBeginRedelegateResponse();\n if ((0, helpers_1.isSet)(object.completionTime))\n obj.completionTime = (0, helpers_1.fromJsonTimestamp)(object.completionTime);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.completionTime !== undefined &&\n (obj.completionTime = (0, helpers_1.fromTimestamp)(message.completionTime).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgBeginRedelegateResponse();\n if (object.completionTime !== undefined && object.completionTime !== null) {\n message.completionTime = timestamp_1.Timestamp.fromPartial(object.completionTime);\n }\n return message;\n },\n};\nfunction createBaseMsgUndelegate() {\n return {\n delegatorAddress: \"\",\n validatorAddress: \"\",\n amount: coin_1.Coin.fromPartial({}),\n };\n}\nexports.MsgUndelegate = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgUndelegate\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n if (message.amount !== undefined) {\n coin_1.Coin.encode(message.amount, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUndelegate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.amount = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUndelegate();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n if ((0, helpers_1.isSet)(object.amount))\n obj.amount = coin_1.Coin.fromJSON(object.amount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUndelegate();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = coin_1.Coin.fromPartial(object.amount);\n }\n return message;\n },\n};\nfunction createBaseMsgUndelegateResponse() {\n return {\n completionTime: timestamp_1.Timestamp.fromPartial({}),\n };\n}\nexports.MsgUndelegateResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgUndelegateResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.completionTime !== undefined) {\n timestamp_1.Timestamp.encode(message.completionTime, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUndelegateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.completionTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUndelegateResponse();\n if ((0, helpers_1.isSet)(object.completionTime))\n obj.completionTime = (0, helpers_1.fromJsonTimestamp)(object.completionTime);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.completionTime !== undefined &&\n (obj.completionTime = (0, helpers_1.fromTimestamp)(message.completionTime).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUndelegateResponse();\n if (object.completionTime !== undefined && object.completionTime !== null) {\n message.completionTime = timestamp_1.Timestamp.fromPartial(object.completionTime);\n }\n return message;\n },\n};\nfunction createBaseMsgCancelUnbondingDelegation() {\n return {\n delegatorAddress: \"\",\n validatorAddress: \"\",\n amount: coin_1.Coin.fromPartial({}),\n creationHeight: BigInt(0),\n };\n}\nexports.MsgCancelUnbondingDelegation = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgCancelUnbondingDelegation\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n if (message.amount !== undefined) {\n coin_1.Coin.encode(message.amount, writer.uint32(26).fork()).ldelim();\n }\n if (message.creationHeight !== BigInt(0)) {\n writer.uint32(32).int64(message.creationHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCancelUnbondingDelegation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.amount = coin_1.Coin.decode(reader, reader.uint32());\n break;\n case 4:\n message.creationHeight = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCancelUnbondingDelegation();\n if ((0, helpers_1.isSet)(object.delegatorAddress))\n obj.delegatorAddress = String(object.delegatorAddress);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = String(object.validatorAddress);\n if ((0, helpers_1.isSet)(object.amount))\n obj.amount = coin_1.Coin.fromJSON(object.amount);\n if ((0, helpers_1.isSet)(object.creationHeight))\n obj.creationHeight = BigInt(object.creationHeight.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined);\n message.creationHeight !== undefined &&\n (obj.creationHeight = (message.creationHeight || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCancelUnbondingDelegation();\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = coin_1.Coin.fromPartial(object.amount);\n }\n if (object.creationHeight !== undefined && object.creationHeight !== null) {\n message.creationHeight = BigInt(object.creationHeight.toString());\n }\n return message;\n },\n};\nfunction createBaseMsgCancelUnbondingDelegationResponse() {\n return {};\n}\nexports.MsgCancelUnbondingDelegationResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgCancelUnbondingDelegationResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCancelUnbondingDelegationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgCancelUnbondingDelegationResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgCancelUnbondingDelegationResponse();\n return message;\n },\n};\nfunction createBaseMsgUpdateParams() {\n return {\n authority: \"\",\n params: staking_1.Params.fromPartial({}),\n };\n}\nexports.MsgUpdateParams = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgUpdateParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.authority !== \"\") {\n writer.uint32(10).string(message.authority);\n }\n if (message.params !== undefined) {\n staking_1.Params.encode(message.params, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.authority = reader.string();\n break;\n case 2:\n message.params = staking_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpdateParams();\n if ((0, helpers_1.isSet)(object.authority))\n obj.authority = String(object.authority);\n if ((0, helpers_1.isSet)(object.params))\n obj.params = staking_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.authority !== undefined && (obj.authority = message.authority);\n message.params !== undefined && (obj.params = message.params ? staking_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpdateParams();\n message.authority = object.authority ?? \"\";\n if (object.params !== undefined && object.params !== null) {\n message.params = staking_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nfunction createBaseMsgUpdateParamsResponse() {\n return {};\n}\nexports.MsgUpdateParamsResponse = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgUpdateParamsResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpdateParamsResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpdateParamsResponse();\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.CreateValidator = this.CreateValidator.bind(this);\n this.EditValidator = this.EditValidator.bind(this);\n this.Delegate = this.Delegate.bind(this);\n this.BeginRedelegate = this.BeginRedelegate.bind(this);\n this.Undelegate = this.Undelegate.bind(this);\n this.CancelUnbondingDelegation = this.CancelUnbondingDelegation.bind(this);\n this.UpdateParams = this.UpdateParams.bind(this);\n }\n CreateValidator(request) {\n const data = exports.MsgCreateValidator.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"CreateValidator\", data);\n return promise.then((data) => exports.MsgCreateValidatorResponse.decode(new binary_1.BinaryReader(data)));\n }\n EditValidator(request) {\n const data = exports.MsgEditValidator.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"EditValidator\", data);\n return promise.then((data) => exports.MsgEditValidatorResponse.decode(new binary_1.BinaryReader(data)));\n }\n Delegate(request) {\n const data = exports.MsgDelegate.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"Delegate\", data);\n return promise.then((data) => exports.MsgDelegateResponse.decode(new binary_1.BinaryReader(data)));\n }\n BeginRedelegate(request) {\n const data = exports.MsgBeginRedelegate.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"BeginRedelegate\", data);\n return promise.then((data) => exports.MsgBeginRedelegateResponse.decode(new binary_1.BinaryReader(data)));\n }\n Undelegate(request) {\n const data = exports.MsgUndelegate.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"Undelegate\", data);\n return promise.then((data) => exports.MsgUndelegateResponse.decode(new binary_1.BinaryReader(data)));\n }\n CancelUnbondingDelegation(request) {\n const data = exports.MsgCancelUnbondingDelegation.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"CancelUnbondingDelegation\", data);\n return promise.then((data) => exports.MsgCancelUnbondingDelegationResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpdateParams(request) {\n const data = exports.MsgUpdateParams.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"UpdateParams\", data);\n return promise.then((data) => exports.MsgUpdateParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SignatureDescriptor_Data_Multi = exports.SignatureDescriptor_Data_Single = exports.SignatureDescriptor_Data = exports.SignatureDescriptor = exports.SignatureDescriptors = exports.signModeToJSON = exports.signModeFromJSON = exports.SignMode = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst multisig_1 = require(\"../../../crypto/multisig/v1beta1/multisig\");\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"cosmos.tx.signing.v1beta1\";\n/**\n * SignMode represents a signing mode with its own security guarantees.\n *\n * This enum should be considered a registry of all known sign modes\n * in the Cosmos ecosystem. Apps are not expected to support all known\n * sign modes. Apps that would like to support custom sign modes are\n * encouraged to open a small PR against this file to add a new case\n * to this SignMode enum describing their sign mode so that different\n * apps have a consistent version of this enum.\n */\nvar SignMode;\n(function (SignMode) {\n /**\n * SIGN_MODE_UNSPECIFIED - SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be\n * rejected.\n */\n SignMode[SignMode[\"SIGN_MODE_UNSPECIFIED\"] = 0] = \"SIGN_MODE_UNSPECIFIED\";\n /**\n * SIGN_MODE_DIRECT - SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is\n * verified with raw bytes from Tx.\n */\n SignMode[SignMode[\"SIGN_MODE_DIRECT\"] = 1] = \"SIGN_MODE_DIRECT\";\n /**\n * SIGN_MODE_TEXTUAL - SIGN_MODE_TEXTUAL is a future signing mode that will verify some\n * human-readable textual representation on top of the binary representation\n * from SIGN_MODE_DIRECT. It is currently not supported.\n */\n SignMode[SignMode[\"SIGN_MODE_TEXTUAL\"] = 2] = \"SIGN_MODE_TEXTUAL\";\n /**\n * SIGN_MODE_DIRECT_AUX - SIGN_MODE_DIRECT_AUX specifies a signing mode which uses\n * SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, this sign mode does not\n * require signers signing over other signers' `signer_info`. It also allows\n * for adding Tips in transactions.\n *\n * Since: cosmos-sdk 0.46\n */\n SignMode[SignMode[\"SIGN_MODE_DIRECT_AUX\"] = 3] = \"SIGN_MODE_DIRECT_AUX\";\n /**\n * SIGN_MODE_LEGACY_AMINO_JSON - SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses\n * Amino JSON and will be removed in the future.\n */\n SignMode[SignMode[\"SIGN_MODE_LEGACY_AMINO_JSON\"] = 127] = \"SIGN_MODE_LEGACY_AMINO_JSON\";\n /**\n * SIGN_MODE_EIP_191 - SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos\n * SDK. Ref: https://eips.ethereum.org/EIPS/eip-191\n *\n * Currently, SIGN_MODE_EIP_191 is registered as a SignMode enum variant,\n * but is not implemented on the SDK by default. To enable EIP-191, you need\n * to pass a custom `TxConfig` that has an implementation of\n * `SignModeHandler` for EIP-191. The SDK may decide to fully support\n * EIP-191 in the future.\n *\n * Since: cosmos-sdk 0.45.2\n */\n SignMode[SignMode[\"SIGN_MODE_EIP_191\"] = 191] = \"SIGN_MODE_EIP_191\";\n SignMode[SignMode[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(SignMode || (exports.SignMode = SignMode = {}));\nfunction signModeFromJSON(object) {\n switch (object) {\n case 0:\n case \"SIGN_MODE_UNSPECIFIED\":\n return SignMode.SIGN_MODE_UNSPECIFIED;\n case 1:\n case \"SIGN_MODE_DIRECT\":\n return SignMode.SIGN_MODE_DIRECT;\n case 2:\n case \"SIGN_MODE_TEXTUAL\":\n return SignMode.SIGN_MODE_TEXTUAL;\n case 3:\n case \"SIGN_MODE_DIRECT_AUX\":\n return SignMode.SIGN_MODE_DIRECT_AUX;\n case 127:\n case \"SIGN_MODE_LEGACY_AMINO_JSON\":\n return SignMode.SIGN_MODE_LEGACY_AMINO_JSON;\n case 191:\n case \"SIGN_MODE_EIP_191\":\n return SignMode.SIGN_MODE_EIP_191;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return SignMode.UNRECOGNIZED;\n }\n}\nexports.signModeFromJSON = signModeFromJSON;\nfunction signModeToJSON(object) {\n switch (object) {\n case SignMode.SIGN_MODE_UNSPECIFIED:\n return \"SIGN_MODE_UNSPECIFIED\";\n case SignMode.SIGN_MODE_DIRECT:\n return \"SIGN_MODE_DIRECT\";\n case SignMode.SIGN_MODE_TEXTUAL:\n return \"SIGN_MODE_TEXTUAL\";\n case SignMode.SIGN_MODE_DIRECT_AUX:\n return \"SIGN_MODE_DIRECT_AUX\";\n case SignMode.SIGN_MODE_LEGACY_AMINO_JSON:\n return \"SIGN_MODE_LEGACY_AMINO_JSON\";\n case SignMode.SIGN_MODE_EIP_191:\n return \"SIGN_MODE_EIP_191\";\n case SignMode.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.signModeToJSON = signModeToJSON;\nfunction createBaseSignatureDescriptors() {\n return {\n signatures: [],\n };\n}\nexports.SignatureDescriptors = {\n typeUrl: \"/cosmos.tx.signing.v1beta1.SignatureDescriptors\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.signatures) {\n exports.SignatureDescriptor.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignatureDescriptors();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signatures.push(exports.SignatureDescriptor.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignatureDescriptors();\n if (Array.isArray(object?.signatures))\n obj.signatures = object.signatures.map((e) => exports.SignatureDescriptor.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (e ? exports.SignatureDescriptor.toJSON(e) : undefined));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignatureDescriptors();\n message.signatures = object.signatures?.map((e) => exports.SignatureDescriptor.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseSignatureDescriptor() {\n return {\n publicKey: undefined,\n data: undefined,\n sequence: BigInt(0),\n };\n}\nexports.SignatureDescriptor = {\n typeUrl: \"/cosmos.tx.signing.v1beta1.SignatureDescriptor\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.publicKey !== undefined) {\n any_1.Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim();\n }\n if (message.data !== undefined) {\n exports.SignatureDescriptor_Data.encode(message.data, writer.uint32(18).fork()).ldelim();\n }\n if (message.sequence !== BigInt(0)) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignatureDescriptor();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.publicKey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.data = exports.SignatureDescriptor_Data.decode(reader, reader.uint32());\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignatureDescriptor();\n if ((0, helpers_1.isSet)(object.publicKey))\n obj.publicKey = any_1.Any.fromJSON(object.publicKey);\n if ((0, helpers_1.isSet)(object.data))\n obj.data = exports.SignatureDescriptor_Data.fromJSON(object.data);\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.publicKey !== undefined &&\n (obj.publicKey = message.publicKey ? any_1.Any.toJSON(message.publicKey) : undefined);\n message.data !== undefined &&\n (obj.data = message.data ? exports.SignatureDescriptor_Data.toJSON(message.data) : undefined);\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignatureDescriptor();\n if (object.publicKey !== undefined && object.publicKey !== null) {\n message.publicKey = any_1.Any.fromPartial(object.publicKey);\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = exports.SignatureDescriptor_Data.fromPartial(object.data);\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n return message;\n },\n};\nfunction createBaseSignatureDescriptor_Data() {\n return {\n single: undefined,\n multi: undefined,\n };\n}\nexports.SignatureDescriptor_Data = {\n typeUrl: \"/cosmos.tx.signing.v1beta1.Data\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.single !== undefined) {\n exports.SignatureDescriptor_Data_Single.encode(message.single, writer.uint32(10).fork()).ldelim();\n }\n if (message.multi !== undefined) {\n exports.SignatureDescriptor_Data_Multi.encode(message.multi, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignatureDescriptor_Data();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.single = exports.SignatureDescriptor_Data_Single.decode(reader, reader.uint32());\n break;\n case 2:\n message.multi = exports.SignatureDescriptor_Data_Multi.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignatureDescriptor_Data();\n if ((0, helpers_1.isSet)(object.single))\n obj.single = exports.SignatureDescriptor_Data_Single.fromJSON(object.single);\n if ((0, helpers_1.isSet)(object.multi))\n obj.multi = exports.SignatureDescriptor_Data_Multi.fromJSON(object.multi);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.single !== undefined &&\n (obj.single = message.single ? exports.SignatureDescriptor_Data_Single.toJSON(message.single) : undefined);\n message.multi !== undefined &&\n (obj.multi = message.multi ? exports.SignatureDescriptor_Data_Multi.toJSON(message.multi) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignatureDescriptor_Data();\n if (object.single !== undefined && object.single !== null) {\n message.single = exports.SignatureDescriptor_Data_Single.fromPartial(object.single);\n }\n if (object.multi !== undefined && object.multi !== null) {\n message.multi = exports.SignatureDescriptor_Data_Multi.fromPartial(object.multi);\n }\n return message;\n },\n};\nfunction createBaseSignatureDescriptor_Data_Single() {\n return {\n mode: 0,\n signature: new Uint8Array(),\n };\n}\nexports.SignatureDescriptor_Data_Single = {\n typeUrl: \"/cosmos.tx.signing.v1beta1.Single\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.mode !== 0) {\n writer.uint32(8).int32(message.mode);\n }\n if (message.signature.length !== 0) {\n writer.uint32(18).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignatureDescriptor_Data_Single();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.mode = reader.int32();\n break;\n case 2:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignatureDescriptor_Data_Single();\n if ((0, helpers_1.isSet)(object.mode))\n obj.mode = signModeFromJSON(object.mode);\n if ((0, helpers_1.isSet)(object.signature))\n obj.signature = (0, helpers_1.bytesFromBase64)(object.signature);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.mode !== undefined && (obj.mode = signModeToJSON(message.mode));\n message.signature !== undefined &&\n (obj.signature = (0, helpers_1.base64FromBytes)(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignatureDescriptor_Data_Single();\n message.mode = object.mode ?? 0;\n message.signature = object.signature ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseSignatureDescriptor_Data_Multi() {\n return {\n bitarray: undefined,\n signatures: [],\n };\n}\nexports.SignatureDescriptor_Data_Multi = {\n typeUrl: \"/cosmos.tx.signing.v1beta1.Multi\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.bitarray !== undefined) {\n multisig_1.CompactBitArray.encode(message.bitarray, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.signatures) {\n exports.SignatureDescriptor_Data.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignatureDescriptor_Data_Multi();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bitarray = multisig_1.CompactBitArray.decode(reader, reader.uint32());\n break;\n case 2:\n message.signatures.push(exports.SignatureDescriptor_Data.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignatureDescriptor_Data_Multi();\n if ((0, helpers_1.isSet)(object.bitarray))\n obj.bitarray = multisig_1.CompactBitArray.fromJSON(object.bitarray);\n if (Array.isArray(object?.signatures))\n obj.signatures = object.signatures.map((e) => exports.SignatureDescriptor_Data.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.bitarray !== undefined &&\n (obj.bitarray = message.bitarray ? multisig_1.CompactBitArray.toJSON(message.bitarray) : undefined);\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (e ? exports.SignatureDescriptor_Data.toJSON(e) : undefined));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignatureDescriptor_Data_Multi();\n if (object.bitarray !== undefined && object.bitarray !== null) {\n message.bitarray = multisig_1.CompactBitArray.fromPartial(object.bitarray);\n }\n message.signatures = object.signatures?.map((e) => exports.SignatureDescriptor_Data.fromPartial(e)) || [];\n return message;\n },\n};\n//# sourceMappingURL=signing.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ServiceClientImpl = exports.TxDecodeAminoResponse = exports.TxDecodeAminoRequest = exports.TxEncodeAminoResponse = exports.TxEncodeAminoRequest = exports.TxEncodeResponse = exports.TxEncodeRequest = exports.TxDecodeResponse = exports.TxDecodeRequest = exports.GetBlockWithTxsResponse = exports.GetBlockWithTxsRequest = exports.GetTxResponse = exports.GetTxRequest = exports.SimulateResponse = exports.SimulateRequest = exports.BroadcastTxResponse = exports.BroadcastTxRequest = exports.GetTxsEventResponse = exports.GetTxsEventRequest = exports.broadcastModeToJSON = exports.broadcastModeFromJSON = exports.BroadcastMode = exports.orderByToJSON = exports.orderByFromJSON = exports.OrderBy = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst tx_1 = require(\"./tx\");\nconst pagination_1 = require(\"../../base/query/v1beta1/pagination\");\nconst abci_1 = require(\"../../base/abci/v1beta1/abci\");\nconst types_1 = require(\"../../../tendermint/types/types\");\nconst block_1 = require(\"../../../tendermint/types/block\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.tx.v1beta1\";\n/** OrderBy defines the sorting order */\nvar OrderBy;\n(function (OrderBy) {\n /** ORDER_BY_UNSPECIFIED - ORDER_BY_UNSPECIFIED specifies an unknown sorting order. OrderBy defaults to ASC in this case. */\n OrderBy[OrderBy[\"ORDER_BY_UNSPECIFIED\"] = 0] = \"ORDER_BY_UNSPECIFIED\";\n /** ORDER_BY_ASC - ORDER_BY_ASC defines ascending order */\n OrderBy[OrderBy[\"ORDER_BY_ASC\"] = 1] = \"ORDER_BY_ASC\";\n /** ORDER_BY_DESC - ORDER_BY_DESC defines descending order */\n OrderBy[OrderBy[\"ORDER_BY_DESC\"] = 2] = \"ORDER_BY_DESC\";\n OrderBy[OrderBy[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(OrderBy || (exports.OrderBy = OrderBy = {}));\nfunction orderByFromJSON(object) {\n switch (object) {\n case 0:\n case \"ORDER_BY_UNSPECIFIED\":\n return OrderBy.ORDER_BY_UNSPECIFIED;\n case 1:\n case \"ORDER_BY_ASC\":\n return OrderBy.ORDER_BY_ASC;\n case 2:\n case \"ORDER_BY_DESC\":\n return OrderBy.ORDER_BY_DESC;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return OrderBy.UNRECOGNIZED;\n }\n}\nexports.orderByFromJSON = orderByFromJSON;\nfunction orderByToJSON(object) {\n switch (object) {\n case OrderBy.ORDER_BY_UNSPECIFIED:\n return \"ORDER_BY_UNSPECIFIED\";\n case OrderBy.ORDER_BY_ASC:\n return \"ORDER_BY_ASC\";\n case OrderBy.ORDER_BY_DESC:\n return \"ORDER_BY_DESC\";\n case OrderBy.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.orderByToJSON = orderByToJSON;\n/** BroadcastMode specifies the broadcast mode for the TxService.Broadcast RPC method. */\nvar BroadcastMode;\n(function (BroadcastMode) {\n /** BROADCAST_MODE_UNSPECIFIED - zero-value for mode ordering */\n BroadcastMode[BroadcastMode[\"BROADCAST_MODE_UNSPECIFIED\"] = 0] = \"BROADCAST_MODE_UNSPECIFIED\";\n /**\n * BROADCAST_MODE_BLOCK - DEPRECATED: use BROADCAST_MODE_SYNC instead,\n * BROADCAST_MODE_BLOCK is not supported by the SDK from v0.47.x onwards.\n */\n BroadcastMode[BroadcastMode[\"BROADCAST_MODE_BLOCK\"] = 1] = \"BROADCAST_MODE_BLOCK\";\n /**\n * BROADCAST_MODE_SYNC - BROADCAST_MODE_SYNC defines a tx broadcasting mode where the client waits for\n * a CheckTx execution response only.\n */\n BroadcastMode[BroadcastMode[\"BROADCAST_MODE_SYNC\"] = 2] = \"BROADCAST_MODE_SYNC\";\n /**\n * BROADCAST_MODE_ASYNC - BROADCAST_MODE_ASYNC defines a tx broadcasting mode where the client returns\n * immediately.\n */\n BroadcastMode[BroadcastMode[\"BROADCAST_MODE_ASYNC\"] = 3] = \"BROADCAST_MODE_ASYNC\";\n BroadcastMode[BroadcastMode[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(BroadcastMode || (exports.BroadcastMode = BroadcastMode = {}));\nfunction broadcastModeFromJSON(object) {\n switch (object) {\n case 0:\n case \"BROADCAST_MODE_UNSPECIFIED\":\n return BroadcastMode.BROADCAST_MODE_UNSPECIFIED;\n case 1:\n case \"BROADCAST_MODE_BLOCK\":\n return BroadcastMode.BROADCAST_MODE_BLOCK;\n case 2:\n case \"BROADCAST_MODE_SYNC\":\n return BroadcastMode.BROADCAST_MODE_SYNC;\n case 3:\n case \"BROADCAST_MODE_ASYNC\":\n return BroadcastMode.BROADCAST_MODE_ASYNC;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return BroadcastMode.UNRECOGNIZED;\n }\n}\nexports.broadcastModeFromJSON = broadcastModeFromJSON;\nfunction broadcastModeToJSON(object) {\n switch (object) {\n case BroadcastMode.BROADCAST_MODE_UNSPECIFIED:\n return \"BROADCAST_MODE_UNSPECIFIED\";\n case BroadcastMode.BROADCAST_MODE_BLOCK:\n return \"BROADCAST_MODE_BLOCK\";\n case BroadcastMode.BROADCAST_MODE_SYNC:\n return \"BROADCAST_MODE_SYNC\";\n case BroadcastMode.BROADCAST_MODE_ASYNC:\n return \"BROADCAST_MODE_ASYNC\";\n case BroadcastMode.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.broadcastModeToJSON = broadcastModeToJSON;\nfunction createBaseGetTxsEventRequest() {\n return {\n events: [],\n pagination: undefined,\n orderBy: 0,\n page: BigInt(0),\n limit: BigInt(0),\n };\n}\nexports.GetTxsEventRequest = {\n typeUrl: \"/cosmos.tx.v1beta1.GetTxsEventRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.events) {\n writer.uint32(10).string(v);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.orderBy !== 0) {\n writer.uint32(24).int32(message.orderBy);\n }\n if (message.page !== BigInt(0)) {\n writer.uint32(32).uint64(message.page);\n }\n if (message.limit !== BigInt(0)) {\n writer.uint32(40).uint64(message.limit);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGetTxsEventRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.events.push(reader.string());\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n case 3:\n message.orderBy = reader.int32();\n break;\n case 4:\n message.page = reader.uint64();\n break;\n case 5:\n message.limit = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGetTxsEventRequest();\n if (Array.isArray(object?.events))\n obj.events = object.events.map((e) => String(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n if ((0, helpers_1.isSet)(object.orderBy))\n obj.orderBy = orderByFromJSON(object.orderBy);\n if ((0, helpers_1.isSet)(object.page))\n obj.page = BigInt(object.page.toString());\n if ((0, helpers_1.isSet)(object.limit))\n obj.limit = BigInt(object.limit.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.events) {\n obj.events = message.events.map((e) => e);\n }\n else {\n obj.events = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n message.orderBy !== undefined && (obj.orderBy = orderByToJSON(message.orderBy));\n message.page !== undefined && (obj.page = (message.page || BigInt(0)).toString());\n message.limit !== undefined && (obj.limit = (message.limit || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGetTxsEventRequest();\n message.events = object.events?.map((e) => e) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n message.orderBy = object.orderBy ?? 0;\n if (object.page !== undefined && object.page !== null) {\n message.page = BigInt(object.page.toString());\n }\n if (object.limit !== undefined && object.limit !== null) {\n message.limit = BigInt(object.limit.toString());\n }\n return message;\n },\n};\nfunction createBaseGetTxsEventResponse() {\n return {\n txs: [],\n txResponses: [],\n pagination: undefined,\n total: BigInt(0),\n };\n}\nexports.GetTxsEventResponse = {\n typeUrl: \"/cosmos.tx.v1beta1.GetTxsEventResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.txs) {\n tx_1.Tx.encode(v, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.txResponses) {\n abci_1.TxResponse.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(26).fork()).ldelim();\n }\n if (message.total !== BigInt(0)) {\n writer.uint32(32).uint64(message.total);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGetTxsEventResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txs.push(tx_1.Tx.decode(reader, reader.uint32()));\n break;\n case 2:\n message.txResponses.push(abci_1.TxResponse.decode(reader, reader.uint32()));\n break;\n case 3:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n case 4:\n message.total = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGetTxsEventResponse();\n if (Array.isArray(object?.txs))\n obj.txs = object.txs.map((e) => tx_1.Tx.fromJSON(e));\n if (Array.isArray(object?.txResponses))\n obj.txResponses = object.txResponses.map((e) => abci_1.TxResponse.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n if ((0, helpers_1.isSet)(object.total))\n obj.total = BigInt(object.total.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.txs) {\n obj.txs = message.txs.map((e) => (e ? tx_1.Tx.toJSON(e) : undefined));\n }\n else {\n obj.txs = [];\n }\n if (message.txResponses) {\n obj.txResponses = message.txResponses.map((e) => (e ? abci_1.TxResponse.toJSON(e) : undefined));\n }\n else {\n obj.txResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n message.total !== undefined && (obj.total = (message.total || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGetTxsEventResponse();\n message.txs = object.txs?.map((e) => tx_1.Tx.fromPartial(e)) || [];\n message.txResponses = object.txResponses?.map((e) => abci_1.TxResponse.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n if (object.total !== undefined && object.total !== null) {\n message.total = BigInt(object.total.toString());\n }\n return message;\n },\n};\nfunction createBaseBroadcastTxRequest() {\n return {\n txBytes: new Uint8Array(),\n mode: 0,\n };\n}\nexports.BroadcastTxRequest = {\n typeUrl: \"/cosmos.tx.v1beta1.BroadcastTxRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.txBytes.length !== 0) {\n writer.uint32(10).bytes(message.txBytes);\n }\n if (message.mode !== 0) {\n writer.uint32(16).int32(message.mode);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBroadcastTxRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txBytes = reader.bytes();\n break;\n case 2:\n message.mode = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBroadcastTxRequest();\n if ((0, helpers_1.isSet)(object.txBytes))\n obj.txBytes = (0, helpers_1.bytesFromBase64)(object.txBytes);\n if ((0, helpers_1.isSet)(object.mode))\n obj.mode = broadcastModeFromJSON(object.mode);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.txBytes !== undefined &&\n (obj.txBytes = (0, helpers_1.base64FromBytes)(message.txBytes !== undefined ? message.txBytes : new Uint8Array()));\n message.mode !== undefined && (obj.mode = broadcastModeToJSON(message.mode));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBroadcastTxRequest();\n message.txBytes = object.txBytes ?? new Uint8Array();\n message.mode = object.mode ?? 0;\n return message;\n },\n};\nfunction createBaseBroadcastTxResponse() {\n return {\n txResponse: undefined,\n };\n}\nexports.BroadcastTxResponse = {\n typeUrl: \"/cosmos.tx.v1beta1.BroadcastTxResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.txResponse !== undefined) {\n abci_1.TxResponse.encode(message.txResponse, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBroadcastTxResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txResponse = abci_1.TxResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBroadcastTxResponse();\n if ((0, helpers_1.isSet)(object.txResponse))\n obj.txResponse = abci_1.TxResponse.fromJSON(object.txResponse);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.txResponse !== undefined &&\n (obj.txResponse = message.txResponse ? abci_1.TxResponse.toJSON(message.txResponse) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBroadcastTxResponse();\n if (object.txResponse !== undefined && object.txResponse !== null) {\n message.txResponse = abci_1.TxResponse.fromPartial(object.txResponse);\n }\n return message;\n },\n};\nfunction createBaseSimulateRequest() {\n return {\n tx: undefined,\n txBytes: new Uint8Array(),\n };\n}\nexports.SimulateRequest = {\n typeUrl: \"/cosmos.tx.v1beta1.SimulateRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.tx !== undefined) {\n tx_1.Tx.encode(message.tx, writer.uint32(10).fork()).ldelim();\n }\n if (message.txBytes.length !== 0) {\n writer.uint32(18).bytes(message.txBytes);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSimulateRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = tx_1.Tx.decode(reader, reader.uint32());\n break;\n case 2:\n message.txBytes = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSimulateRequest();\n if ((0, helpers_1.isSet)(object.tx))\n obj.tx = tx_1.Tx.fromJSON(object.tx);\n if ((0, helpers_1.isSet)(object.txBytes))\n obj.txBytes = (0, helpers_1.bytesFromBase64)(object.txBytes);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined && (obj.tx = message.tx ? tx_1.Tx.toJSON(message.tx) : undefined);\n message.txBytes !== undefined &&\n (obj.txBytes = (0, helpers_1.base64FromBytes)(message.txBytes !== undefined ? message.txBytes : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSimulateRequest();\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = tx_1.Tx.fromPartial(object.tx);\n }\n message.txBytes = object.txBytes ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseSimulateResponse() {\n return {\n gasInfo: undefined,\n result: undefined,\n };\n}\nexports.SimulateResponse = {\n typeUrl: \"/cosmos.tx.v1beta1.SimulateResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.gasInfo !== undefined) {\n abci_1.GasInfo.encode(message.gasInfo, writer.uint32(10).fork()).ldelim();\n }\n if (message.result !== undefined) {\n abci_1.Result.encode(message.result, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSimulateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.gasInfo = abci_1.GasInfo.decode(reader, reader.uint32());\n break;\n case 2:\n message.result = abci_1.Result.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSimulateResponse();\n if ((0, helpers_1.isSet)(object.gasInfo))\n obj.gasInfo = abci_1.GasInfo.fromJSON(object.gasInfo);\n if ((0, helpers_1.isSet)(object.result))\n obj.result = abci_1.Result.fromJSON(object.result);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.gasInfo !== undefined &&\n (obj.gasInfo = message.gasInfo ? abci_1.GasInfo.toJSON(message.gasInfo) : undefined);\n message.result !== undefined && (obj.result = message.result ? abci_1.Result.toJSON(message.result) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSimulateResponse();\n if (object.gasInfo !== undefined && object.gasInfo !== null) {\n message.gasInfo = abci_1.GasInfo.fromPartial(object.gasInfo);\n }\n if (object.result !== undefined && object.result !== null) {\n message.result = abci_1.Result.fromPartial(object.result);\n }\n return message;\n },\n};\nfunction createBaseGetTxRequest() {\n return {\n hash: \"\",\n };\n}\nexports.GetTxRequest = {\n typeUrl: \"/cosmos.tx.v1beta1.GetTxRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.hash !== \"\") {\n writer.uint32(10).string(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGetTxRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGetTxRequest();\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = String(object.hash);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined && (obj.hash = message.hash);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGetTxRequest();\n message.hash = object.hash ?? \"\";\n return message;\n },\n};\nfunction createBaseGetTxResponse() {\n return {\n tx: undefined,\n txResponse: undefined,\n };\n}\nexports.GetTxResponse = {\n typeUrl: \"/cosmos.tx.v1beta1.GetTxResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.tx !== undefined) {\n tx_1.Tx.encode(message.tx, writer.uint32(10).fork()).ldelim();\n }\n if (message.txResponse !== undefined) {\n abci_1.TxResponse.encode(message.txResponse, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGetTxResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = tx_1.Tx.decode(reader, reader.uint32());\n break;\n case 2:\n message.txResponse = abci_1.TxResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGetTxResponse();\n if ((0, helpers_1.isSet)(object.tx))\n obj.tx = tx_1.Tx.fromJSON(object.tx);\n if ((0, helpers_1.isSet)(object.txResponse))\n obj.txResponse = abci_1.TxResponse.fromJSON(object.txResponse);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined && (obj.tx = message.tx ? tx_1.Tx.toJSON(message.tx) : undefined);\n message.txResponse !== undefined &&\n (obj.txResponse = message.txResponse ? abci_1.TxResponse.toJSON(message.txResponse) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGetTxResponse();\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = tx_1.Tx.fromPartial(object.tx);\n }\n if (object.txResponse !== undefined && object.txResponse !== null) {\n message.txResponse = abci_1.TxResponse.fromPartial(object.txResponse);\n }\n return message;\n },\n};\nfunction createBaseGetBlockWithTxsRequest() {\n return {\n height: BigInt(0),\n pagination: undefined,\n };\n}\nexports.GetBlockWithTxsRequest = {\n typeUrl: \"/cosmos.tx.v1beta1.GetBlockWithTxsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.height !== BigInt(0)) {\n writer.uint32(8).int64(message.height);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGetBlockWithTxsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGetBlockWithTxsRequest();\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGetBlockWithTxsRequest();\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseGetBlockWithTxsResponse() {\n return {\n txs: [],\n blockId: undefined,\n block: undefined,\n pagination: undefined,\n };\n}\nexports.GetBlockWithTxsResponse = {\n typeUrl: \"/cosmos.tx.v1beta1.GetBlockWithTxsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.txs) {\n tx_1.Tx.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.blockId !== undefined) {\n types_1.BlockID.encode(message.blockId, writer.uint32(18).fork()).ldelim();\n }\n if (message.block !== undefined) {\n block_1.Block.encode(message.block, writer.uint32(26).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGetBlockWithTxsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txs.push(tx_1.Tx.decode(reader, reader.uint32()));\n break;\n case 2:\n message.blockId = types_1.BlockID.decode(reader, reader.uint32());\n break;\n case 3:\n message.block = block_1.Block.decode(reader, reader.uint32());\n break;\n case 4:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseGetBlockWithTxsResponse();\n if (Array.isArray(object?.txs))\n obj.txs = object.txs.map((e) => tx_1.Tx.fromJSON(e));\n if ((0, helpers_1.isSet)(object.blockId))\n obj.blockId = types_1.BlockID.fromJSON(object.blockId);\n if ((0, helpers_1.isSet)(object.block))\n obj.block = block_1.Block.fromJSON(object.block);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.txs) {\n obj.txs = message.txs.map((e) => (e ? tx_1.Tx.toJSON(e) : undefined));\n }\n else {\n obj.txs = [];\n }\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? types_1.BlockID.toJSON(message.blockId) : undefined);\n message.block !== undefined && (obj.block = message.block ? block_1.Block.toJSON(message.block) : undefined);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseGetBlockWithTxsResponse();\n message.txs = object.txs?.map((e) => tx_1.Tx.fromPartial(e)) || [];\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = types_1.BlockID.fromPartial(object.blockId);\n }\n if (object.block !== undefined && object.block !== null) {\n message.block = block_1.Block.fromPartial(object.block);\n }\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseTxDecodeRequest() {\n return {\n txBytes: new Uint8Array(),\n };\n}\nexports.TxDecodeRequest = {\n typeUrl: \"/cosmos.tx.v1beta1.TxDecodeRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.txBytes.length !== 0) {\n writer.uint32(10).bytes(message.txBytes);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxDecodeRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txBytes = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxDecodeRequest();\n if ((0, helpers_1.isSet)(object.txBytes))\n obj.txBytes = (0, helpers_1.bytesFromBase64)(object.txBytes);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.txBytes !== undefined &&\n (obj.txBytes = (0, helpers_1.base64FromBytes)(message.txBytes !== undefined ? message.txBytes : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxDecodeRequest();\n message.txBytes = object.txBytes ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseTxDecodeResponse() {\n return {\n tx: undefined,\n };\n}\nexports.TxDecodeResponse = {\n typeUrl: \"/cosmos.tx.v1beta1.TxDecodeResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.tx !== undefined) {\n tx_1.Tx.encode(message.tx, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxDecodeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = tx_1.Tx.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxDecodeResponse();\n if ((0, helpers_1.isSet)(object.tx))\n obj.tx = tx_1.Tx.fromJSON(object.tx);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined && (obj.tx = message.tx ? tx_1.Tx.toJSON(message.tx) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxDecodeResponse();\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = tx_1.Tx.fromPartial(object.tx);\n }\n return message;\n },\n};\nfunction createBaseTxEncodeRequest() {\n return {\n tx: undefined,\n };\n}\nexports.TxEncodeRequest = {\n typeUrl: \"/cosmos.tx.v1beta1.TxEncodeRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.tx !== undefined) {\n tx_1.Tx.encode(message.tx, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxEncodeRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = tx_1.Tx.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxEncodeRequest();\n if ((0, helpers_1.isSet)(object.tx))\n obj.tx = tx_1.Tx.fromJSON(object.tx);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined && (obj.tx = message.tx ? tx_1.Tx.toJSON(message.tx) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxEncodeRequest();\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = tx_1.Tx.fromPartial(object.tx);\n }\n return message;\n },\n};\nfunction createBaseTxEncodeResponse() {\n return {\n txBytes: new Uint8Array(),\n };\n}\nexports.TxEncodeResponse = {\n typeUrl: \"/cosmos.tx.v1beta1.TxEncodeResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.txBytes.length !== 0) {\n writer.uint32(10).bytes(message.txBytes);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxEncodeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txBytes = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxEncodeResponse();\n if ((0, helpers_1.isSet)(object.txBytes))\n obj.txBytes = (0, helpers_1.bytesFromBase64)(object.txBytes);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.txBytes !== undefined &&\n (obj.txBytes = (0, helpers_1.base64FromBytes)(message.txBytes !== undefined ? message.txBytes : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxEncodeResponse();\n message.txBytes = object.txBytes ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseTxEncodeAminoRequest() {\n return {\n aminoJson: \"\",\n };\n}\nexports.TxEncodeAminoRequest = {\n typeUrl: \"/cosmos.tx.v1beta1.TxEncodeAminoRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.aminoJson !== \"\") {\n writer.uint32(10).string(message.aminoJson);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxEncodeAminoRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.aminoJson = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxEncodeAminoRequest();\n if ((0, helpers_1.isSet)(object.aminoJson))\n obj.aminoJson = String(object.aminoJson);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.aminoJson !== undefined && (obj.aminoJson = message.aminoJson);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxEncodeAminoRequest();\n message.aminoJson = object.aminoJson ?? \"\";\n return message;\n },\n};\nfunction createBaseTxEncodeAminoResponse() {\n return {\n aminoBinary: new Uint8Array(),\n };\n}\nexports.TxEncodeAminoResponse = {\n typeUrl: \"/cosmos.tx.v1beta1.TxEncodeAminoResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.aminoBinary.length !== 0) {\n writer.uint32(10).bytes(message.aminoBinary);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxEncodeAminoResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.aminoBinary = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxEncodeAminoResponse();\n if ((0, helpers_1.isSet)(object.aminoBinary))\n obj.aminoBinary = (0, helpers_1.bytesFromBase64)(object.aminoBinary);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.aminoBinary !== undefined &&\n (obj.aminoBinary = (0, helpers_1.base64FromBytes)(message.aminoBinary !== undefined ? message.aminoBinary : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxEncodeAminoResponse();\n message.aminoBinary = object.aminoBinary ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseTxDecodeAminoRequest() {\n return {\n aminoBinary: new Uint8Array(),\n };\n}\nexports.TxDecodeAminoRequest = {\n typeUrl: \"/cosmos.tx.v1beta1.TxDecodeAminoRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.aminoBinary.length !== 0) {\n writer.uint32(10).bytes(message.aminoBinary);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxDecodeAminoRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.aminoBinary = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxDecodeAminoRequest();\n if ((0, helpers_1.isSet)(object.aminoBinary))\n obj.aminoBinary = (0, helpers_1.bytesFromBase64)(object.aminoBinary);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.aminoBinary !== undefined &&\n (obj.aminoBinary = (0, helpers_1.base64FromBytes)(message.aminoBinary !== undefined ? message.aminoBinary : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxDecodeAminoRequest();\n message.aminoBinary = object.aminoBinary ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseTxDecodeAminoResponse() {\n return {\n aminoJson: \"\",\n };\n}\nexports.TxDecodeAminoResponse = {\n typeUrl: \"/cosmos.tx.v1beta1.TxDecodeAminoResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.aminoJson !== \"\") {\n writer.uint32(10).string(message.aminoJson);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxDecodeAminoResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.aminoJson = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxDecodeAminoResponse();\n if ((0, helpers_1.isSet)(object.aminoJson))\n obj.aminoJson = String(object.aminoJson);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.aminoJson !== undefined && (obj.aminoJson = message.aminoJson);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxDecodeAminoResponse();\n message.aminoJson = object.aminoJson ?? \"\";\n return message;\n },\n};\nclass ServiceClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Simulate = this.Simulate.bind(this);\n this.GetTx = this.GetTx.bind(this);\n this.BroadcastTx = this.BroadcastTx.bind(this);\n this.GetTxsEvent = this.GetTxsEvent.bind(this);\n this.GetBlockWithTxs = this.GetBlockWithTxs.bind(this);\n this.TxDecode = this.TxDecode.bind(this);\n this.TxEncode = this.TxEncode.bind(this);\n this.TxEncodeAmino = this.TxEncodeAmino.bind(this);\n this.TxDecodeAmino = this.TxDecodeAmino.bind(this);\n }\n Simulate(request) {\n const data = exports.SimulateRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"Simulate\", data);\n return promise.then((data) => exports.SimulateResponse.decode(new binary_1.BinaryReader(data)));\n }\n GetTx(request) {\n const data = exports.GetTxRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"GetTx\", data);\n return promise.then((data) => exports.GetTxResponse.decode(new binary_1.BinaryReader(data)));\n }\n BroadcastTx(request) {\n const data = exports.BroadcastTxRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"BroadcastTx\", data);\n return promise.then((data) => exports.BroadcastTxResponse.decode(new binary_1.BinaryReader(data)));\n }\n GetTxsEvent(request) {\n const data = exports.GetTxsEventRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"GetTxsEvent\", data);\n return promise.then((data) => exports.GetTxsEventResponse.decode(new binary_1.BinaryReader(data)));\n }\n GetBlockWithTxs(request) {\n const data = exports.GetBlockWithTxsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"GetBlockWithTxs\", data);\n return promise.then((data) => exports.GetBlockWithTxsResponse.decode(new binary_1.BinaryReader(data)));\n }\n TxDecode(request) {\n const data = exports.TxDecodeRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"TxDecode\", data);\n return promise.then((data) => exports.TxDecodeResponse.decode(new binary_1.BinaryReader(data)));\n }\n TxEncode(request) {\n const data = exports.TxEncodeRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"TxEncode\", data);\n return promise.then((data) => exports.TxEncodeResponse.decode(new binary_1.BinaryReader(data)));\n }\n TxEncodeAmino(request) {\n const data = exports.TxEncodeAminoRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"TxEncodeAmino\", data);\n return promise.then((data) => exports.TxEncodeAminoResponse.decode(new binary_1.BinaryReader(data)));\n }\n TxDecodeAmino(request) {\n const data = exports.TxDecodeAminoRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"TxDecodeAmino\", data);\n return promise.then((data) => exports.TxDecodeAminoResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.ServiceClientImpl = ServiceClientImpl;\n//# sourceMappingURL=service.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AuxSignerData = exports.Tip = exports.Fee = exports.ModeInfo_Multi = exports.ModeInfo_Single = exports.ModeInfo = exports.SignerInfo = exports.AuthInfo = exports.TxBody = exports.SignDocDirectAux = exports.SignDoc = exports.TxRaw = exports.Tx = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst signing_1 = require(\"../signing/v1beta1/signing\");\nconst multisig_1 = require(\"../../crypto/multisig/v1beta1/multisig\");\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.tx.v1beta1\";\nfunction createBaseTx() {\n return {\n body: undefined,\n authInfo: undefined,\n signatures: [],\n };\n}\nexports.Tx = {\n typeUrl: \"/cosmos.tx.v1beta1.Tx\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.body !== undefined) {\n exports.TxBody.encode(message.body, writer.uint32(10).fork()).ldelim();\n }\n if (message.authInfo !== undefined) {\n exports.AuthInfo.encode(message.authInfo, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.signatures) {\n writer.uint32(26).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTx();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.body = exports.TxBody.decode(reader, reader.uint32());\n break;\n case 2:\n message.authInfo = exports.AuthInfo.decode(reader, reader.uint32());\n break;\n case 3:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTx();\n if ((0, helpers_1.isSet)(object.body))\n obj.body = exports.TxBody.fromJSON(object.body);\n if ((0, helpers_1.isSet)(object.authInfo))\n obj.authInfo = exports.AuthInfo.fromJSON(object.authInfo);\n if (Array.isArray(object?.signatures))\n obj.signatures = object.signatures.map((e) => (0, helpers_1.bytesFromBase64)(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.body !== undefined && (obj.body = message.body ? exports.TxBody.toJSON(message.body) : undefined);\n message.authInfo !== undefined &&\n (obj.authInfo = message.authInfo ? exports.AuthInfo.toJSON(message.authInfo) : undefined);\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTx();\n if (object.body !== undefined && object.body !== null) {\n message.body = exports.TxBody.fromPartial(object.body);\n }\n if (object.authInfo !== undefined && object.authInfo !== null) {\n message.authInfo = exports.AuthInfo.fromPartial(object.authInfo);\n }\n message.signatures = object.signatures?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseTxRaw() {\n return {\n bodyBytes: new Uint8Array(),\n authInfoBytes: new Uint8Array(),\n signatures: [],\n };\n}\nexports.TxRaw = {\n typeUrl: \"/cosmos.tx.v1beta1.TxRaw\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.bodyBytes.length !== 0) {\n writer.uint32(10).bytes(message.bodyBytes);\n }\n if (message.authInfoBytes.length !== 0) {\n writer.uint32(18).bytes(message.authInfoBytes);\n }\n for (const v of message.signatures) {\n writer.uint32(26).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxRaw();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bodyBytes = reader.bytes();\n break;\n case 2:\n message.authInfoBytes = reader.bytes();\n break;\n case 3:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxRaw();\n if ((0, helpers_1.isSet)(object.bodyBytes))\n obj.bodyBytes = (0, helpers_1.bytesFromBase64)(object.bodyBytes);\n if ((0, helpers_1.isSet)(object.authInfoBytes))\n obj.authInfoBytes = (0, helpers_1.bytesFromBase64)(object.authInfoBytes);\n if (Array.isArray(object?.signatures))\n obj.signatures = object.signatures.map((e) => (0, helpers_1.bytesFromBase64)(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.bodyBytes !== undefined &&\n (obj.bodyBytes = (0, helpers_1.base64FromBytes)(message.bodyBytes !== undefined ? message.bodyBytes : new Uint8Array()));\n message.authInfoBytes !== undefined &&\n (obj.authInfoBytes = (0, helpers_1.base64FromBytes)(message.authInfoBytes !== undefined ? message.authInfoBytes : new Uint8Array()));\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxRaw();\n message.bodyBytes = object.bodyBytes ?? new Uint8Array();\n message.authInfoBytes = object.authInfoBytes ?? new Uint8Array();\n message.signatures = object.signatures?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseSignDoc() {\n return {\n bodyBytes: new Uint8Array(),\n authInfoBytes: new Uint8Array(),\n chainId: \"\",\n accountNumber: BigInt(0),\n };\n}\nexports.SignDoc = {\n typeUrl: \"/cosmos.tx.v1beta1.SignDoc\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.bodyBytes.length !== 0) {\n writer.uint32(10).bytes(message.bodyBytes);\n }\n if (message.authInfoBytes.length !== 0) {\n writer.uint32(18).bytes(message.authInfoBytes);\n }\n if (message.chainId !== \"\") {\n writer.uint32(26).string(message.chainId);\n }\n if (message.accountNumber !== BigInt(0)) {\n writer.uint32(32).uint64(message.accountNumber);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignDoc();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bodyBytes = reader.bytes();\n break;\n case 2:\n message.authInfoBytes = reader.bytes();\n break;\n case 3:\n message.chainId = reader.string();\n break;\n case 4:\n message.accountNumber = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignDoc();\n if ((0, helpers_1.isSet)(object.bodyBytes))\n obj.bodyBytes = (0, helpers_1.bytesFromBase64)(object.bodyBytes);\n if ((0, helpers_1.isSet)(object.authInfoBytes))\n obj.authInfoBytes = (0, helpers_1.bytesFromBase64)(object.authInfoBytes);\n if ((0, helpers_1.isSet)(object.chainId))\n obj.chainId = String(object.chainId);\n if ((0, helpers_1.isSet)(object.accountNumber))\n obj.accountNumber = BigInt(object.accountNumber.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.bodyBytes !== undefined &&\n (obj.bodyBytes = (0, helpers_1.base64FromBytes)(message.bodyBytes !== undefined ? message.bodyBytes : new Uint8Array()));\n message.authInfoBytes !== undefined &&\n (obj.authInfoBytes = (0, helpers_1.base64FromBytes)(message.authInfoBytes !== undefined ? message.authInfoBytes : new Uint8Array()));\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.accountNumber !== undefined &&\n (obj.accountNumber = (message.accountNumber || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignDoc();\n message.bodyBytes = object.bodyBytes ?? new Uint8Array();\n message.authInfoBytes = object.authInfoBytes ?? new Uint8Array();\n message.chainId = object.chainId ?? \"\";\n if (object.accountNumber !== undefined && object.accountNumber !== null) {\n message.accountNumber = BigInt(object.accountNumber.toString());\n }\n return message;\n },\n};\nfunction createBaseSignDocDirectAux() {\n return {\n bodyBytes: new Uint8Array(),\n publicKey: undefined,\n chainId: \"\",\n accountNumber: BigInt(0),\n sequence: BigInt(0),\n tip: undefined,\n };\n}\nexports.SignDocDirectAux = {\n typeUrl: \"/cosmos.tx.v1beta1.SignDocDirectAux\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.bodyBytes.length !== 0) {\n writer.uint32(10).bytes(message.bodyBytes);\n }\n if (message.publicKey !== undefined) {\n any_1.Any.encode(message.publicKey, writer.uint32(18).fork()).ldelim();\n }\n if (message.chainId !== \"\") {\n writer.uint32(26).string(message.chainId);\n }\n if (message.accountNumber !== BigInt(0)) {\n writer.uint32(32).uint64(message.accountNumber);\n }\n if (message.sequence !== BigInt(0)) {\n writer.uint32(40).uint64(message.sequence);\n }\n if (message.tip !== undefined) {\n exports.Tip.encode(message.tip, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignDocDirectAux();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bodyBytes = reader.bytes();\n break;\n case 2:\n message.publicKey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.chainId = reader.string();\n break;\n case 4:\n message.accountNumber = reader.uint64();\n break;\n case 5:\n message.sequence = reader.uint64();\n break;\n case 6:\n message.tip = exports.Tip.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignDocDirectAux();\n if ((0, helpers_1.isSet)(object.bodyBytes))\n obj.bodyBytes = (0, helpers_1.bytesFromBase64)(object.bodyBytes);\n if ((0, helpers_1.isSet)(object.publicKey))\n obj.publicKey = any_1.Any.fromJSON(object.publicKey);\n if ((0, helpers_1.isSet)(object.chainId))\n obj.chainId = String(object.chainId);\n if ((0, helpers_1.isSet)(object.accountNumber))\n obj.accountNumber = BigInt(object.accountNumber.toString());\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n if ((0, helpers_1.isSet)(object.tip))\n obj.tip = exports.Tip.fromJSON(object.tip);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.bodyBytes !== undefined &&\n (obj.bodyBytes = (0, helpers_1.base64FromBytes)(message.bodyBytes !== undefined ? message.bodyBytes : new Uint8Array()));\n message.publicKey !== undefined &&\n (obj.publicKey = message.publicKey ? any_1.Any.toJSON(message.publicKey) : undefined);\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.accountNumber !== undefined &&\n (obj.accountNumber = (message.accountNumber || BigInt(0)).toString());\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n message.tip !== undefined && (obj.tip = message.tip ? exports.Tip.toJSON(message.tip) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignDocDirectAux();\n message.bodyBytes = object.bodyBytes ?? new Uint8Array();\n if (object.publicKey !== undefined && object.publicKey !== null) {\n message.publicKey = any_1.Any.fromPartial(object.publicKey);\n }\n message.chainId = object.chainId ?? \"\";\n if (object.accountNumber !== undefined && object.accountNumber !== null) {\n message.accountNumber = BigInt(object.accountNumber.toString());\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n if (object.tip !== undefined && object.tip !== null) {\n message.tip = exports.Tip.fromPartial(object.tip);\n }\n return message;\n },\n};\nfunction createBaseTxBody() {\n return {\n messages: [],\n memo: \"\",\n timeoutHeight: BigInt(0),\n extensionOptions: [],\n nonCriticalExtensionOptions: [],\n };\n}\nexports.TxBody = {\n typeUrl: \"/cosmos.tx.v1beta1.TxBody\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.messages) {\n any_1.Any.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.memo !== \"\") {\n writer.uint32(18).string(message.memo);\n }\n if (message.timeoutHeight !== BigInt(0)) {\n writer.uint32(24).uint64(message.timeoutHeight);\n }\n for (const v of message.extensionOptions) {\n any_1.Any.encode(v, writer.uint32(8186).fork()).ldelim();\n }\n for (const v of message.nonCriticalExtensionOptions) {\n any_1.Any.encode(v, writer.uint32(16378).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxBody();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.messages.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 2:\n message.memo = reader.string();\n break;\n case 3:\n message.timeoutHeight = reader.uint64();\n break;\n case 1023:\n message.extensionOptions.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 2047:\n message.nonCriticalExtensionOptions.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxBody();\n if (Array.isArray(object?.messages))\n obj.messages = object.messages.map((e) => any_1.Any.fromJSON(e));\n if ((0, helpers_1.isSet)(object.memo))\n obj.memo = String(object.memo);\n if ((0, helpers_1.isSet)(object.timeoutHeight))\n obj.timeoutHeight = BigInt(object.timeoutHeight.toString());\n if (Array.isArray(object?.extensionOptions))\n obj.extensionOptions = object.extensionOptions.map((e) => any_1.Any.fromJSON(e));\n if (Array.isArray(object?.nonCriticalExtensionOptions))\n obj.nonCriticalExtensionOptions = object.nonCriticalExtensionOptions.map((e) => any_1.Any.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.messages) {\n obj.messages = message.messages.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.messages = [];\n }\n message.memo !== undefined && (obj.memo = message.memo);\n message.timeoutHeight !== undefined &&\n (obj.timeoutHeight = (message.timeoutHeight || BigInt(0)).toString());\n if (message.extensionOptions) {\n obj.extensionOptions = message.extensionOptions.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.extensionOptions = [];\n }\n if (message.nonCriticalExtensionOptions) {\n obj.nonCriticalExtensionOptions = message.nonCriticalExtensionOptions.map((e) => e ? any_1.Any.toJSON(e) : undefined);\n }\n else {\n obj.nonCriticalExtensionOptions = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxBody();\n message.messages = object.messages?.map((e) => any_1.Any.fromPartial(e)) || [];\n message.memo = object.memo ?? \"\";\n if (object.timeoutHeight !== undefined && object.timeoutHeight !== null) {\n message.timeoutHeight = BigInt(object.timeoutHeight.toString());\n }\n message.extensionOptions = object.extensionOptions?.map((e) => any_1.Any.fromPartial(e)) || [];\n message.nonCriticalExtensionOptions =\n object.nonCriticalExtensionOptions?.map((e) => any_1.Any.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseAuthInfo() {\n return {\n signerInfos: [],\n fee: undefined,\n tip: undefined,\n };\n}\nexports.AuthInfo = {\n typeUrl: \"/cosmos.tx.v1beta1.AuthInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.signerInfos) {\n exports.SignerInfo.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.fee !== undefined) {\n exports.Fee.encode(message.fee, writer.uint32(18).fork()).ldelim();\n }\n if (message.tip !== undefined) {\n exports.Tip.encode(message.tip, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAuthInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signerInfos.push(exports.SignerInfo.decode(reader, reader.uint32()));\n break;\n case 2:\n message.fee = exports.Fee.decode(reader, reader.uint32());\n break;\n case 3:\n message.tip = exports.Tip.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseAuthInfo();\n if (Array.isArray(object?.signerInfos))\n obj.signerInfos = object.signerInfos.map((e) => exports.SignerInfo.fromJSON(e));\n if ((0, helpers_1.isSet)(object.fee))\n obj.fee = exports.Fee.fromJSON(object.fee);\n if ((0, helpers_1.isSet)(object.tip))\n obj.tip = exports.Tip.fromJSON(object.tip);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.signerInfos) {\n obj.signerInfos = message.signerInfos.map((e) => (e ? exports.SignerInfo.toJSON(e) : undefined));\n }\n else {\n obj.signerInfos = [];\n }\n message.fee !== undefined && (obj.fee = message.fee ? exports.Fee.toJSON(message.fee) : undefined);\n message.tip !== undefined && (obj.tip = message.tip ? exports.Tip.toJSON(message.tip) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseAuthInfo();\n message.signerInfos = object.signerInfos?.map((e) => exports.SignerInfo.fromPartial(e)) || [];\n if (object.fee !== undefined && object.fee !== null) {\n message.fee = exports.Fee.fromPartial(object.fee);\n }\n if (object.tip !== undefined && object.tip !== null) {\n message.tip = exports.Tip.fromPartial(object.tip);\n }\n return message;\n },\n};\nfunction createBaseSignerInfo() {\n return {\n publicKey: undefined,\n modeInfo: undefined,\n sequence: BigInt(0),\n };\n}\nexports.SignerInfo = {\n typeUrl: \"/cosmos.tx.v1beta1.SignerInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.publicKey !== undefined) {\n any_1.Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim();\n }\n if (message.modeInfo !== undefined) {\n exports.ModeInfo.encode(message.modeInfo, writer.uint32(18).fork()).ldelim();\n }\n if (message.sequence !== BigInt(0)) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignerInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.publicKey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.modeInfo = exports.ModeInfo.decode(reader, reader.uint32());\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignerInfo();\n if ((0, helpers_1.isSet)(object.publicKey))\n obj.publicKey = any_1.Any.fromJSON(object.publicKey);\n if ((0, helpers_1.isSet)(object.modeInfo))\n obj.modeInfo = exports.ModeInfo.fromJSON(object.modeInfo);\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.publicKey !== undefined &&\n (obj.publicKey = message.publicKey ? any_1.Any.toJSON(message.publicKey) : undefined);\n message.modeInfo !== undefined &&\n (obj.modeInfo = message.modeInfo ? exports.ModeInfo.toJSON(message.modeInfo) : undefined);\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignerInfo();\n if (object.publicKey !== undefined && object.publicKey !== null) {\n message.publicKey = any_1.Any.fromPartial(object.publicKey);\n }\n if (object.modeInfo !== undefined && object.modeInfo !== null) {\n message.modeInfo = exports.ModeInfo.fromPartial(object.modeInfo);\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n return message;\n },\n};\nfunction createBaseModeInfo() {\n return {\n single: undefined,\n multi: undefined,\n };\n}\nexports.ModeInfo = {\n typeUrl: \"/cosmos.tx.v1beta1.ModeInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.single !== undefined) {\n exports.ModeInfo_Single.encode(message.single, writer.uint32(10).fork()).ldelim();\n }\n if (message.multi !== undefined) {\n exports.ModeInfo_Multi.encode(message.multi, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseModeInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.single = exports.ModeInfo_Single.decode(reader, reader.uint32());\n break;\n case 2:\n message.multi = exports.ModeInfo_Multi.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseModeInfo();\n if ((0, helpers_1.isSet)(object.single))\n obj.single = exports.ModeInfo_Single.fromJSON(object.single);\n if ((0, helpers_1.isSet)(object.multi))\n obj.multi = exports.ModeInfo_Multi.fromJSON(object.multi);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.single !== undefined &&\n (obj.single = message.single ? exports.ModeInfo_Single.toJSON(message.single) : undefined);\n message.multi !== undefined &&\n (obj.multi = message.multi ? exports.ModeInfo_Multi.toJSON(message.multi) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseModeInfo();\n if (object.single !== undefined && object.single !== null) {\n message.single = exports.ModeInfo_Single.fromPartial(object.single);\n }\n if (object.multi !== undefined && object.multi !== null) {\n message.multi = exports.ModeInfo_Multi.fromPartial(object.multi);\n }\n return message;\n },\n};\nfunction createBaseModeInfo_Single() {\n return {\n mode: 0,\n };\n}\nexports.ModeInfo_Single = {\n typeUrl: \"/cosmos.tx.v1beta1.Single\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.mode !== 0) {\n writer.uint32(8).int32(message.mode);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseModeInfo_Single();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.mode = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseModeInfo_Single();\n if ((0, helpers_1.isSet)(object.mode))\n obj.mode = (0, signing_1.signModeFromJSON)(object.mode);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.mode !== undefined && (obj.mode = (0, signing_1.signModeToJSON)(message.mode));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseModeInfo_Single();\n message.mode = object.mode ?? 0;\n return message;\n },\n};\nfunction createBaseModeInfo_Multi() {\n return {\n bitarray: undefined,\n modeInfos: [],\n };\n}\nexports.ModeInfo_Multi = {\n typeUrl: \"/cosmos.tx.v1beta1.Multi\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.bitarray !== undefined) {\n multisig_1.CompactBitArray.encode(message.bitarray, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.modeInfos) {\n exports.ModeInfo.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseModeInfo_Multi();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bitarray = multisig_1.CompactBitArray.decode(reader, reader.uint32());\n break;\n case 2:\n message.modeInfos.push(exports.ModeInfo.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseModeInfo_Multi();\n if ((0, helpers_1.isSet)(object.bitarray))\n obj.bitarray = multisig_1.CompactBitArray.fromJSON(object.bitarray);\n if (Array.isArray(object?.modeInfos))\n obj.modeInfos = object.modeInfos.map((e) => exports.ModeInfo.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.bitarray !== undefined &&\n (obj.bitarray = message.bitarray ? multisig_1.CompactBitArray.toJSON(message.bitarray) : undefined);\n if (message.modeInfos) {\n obj.modeInfos = message.modeInfos.map((e) => (e ? exports.ModeInfo.toJSON(e) : undefined));\n }\n else {\n obj.modeInfos = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseModeInfo_Multi();\n if (object.bitarray !== undefined && object.bitarray !== null) {\n message.bitarray = multisig_1.CompactBitArray.fromPartial(object.bitarray);\n }\n message.modeInfos = object.modeInfos?.map((e) => exports.ModeInfo.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseFee() {\n return {\n amount: [],\n gasLimit: BigInt(0),\n payer: \"\",\n granter: \"\",\n };\n}\nexports.Fee = {\n typeUrl: \"/cosmos.tx.v1beta1.Fee\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.gasLimit !== BigInt(0)) {\n writer.uint32(16).uint64(message.gasLimit);\n }\n if (message.payer !== \"\") {\n writer.uint32(26).string(message.payer);\n }\n if (message.granter !== \"\") {\n writer.uint32(34).string(message.granter);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFee();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.gasLimit = reader.uint64();\n break;\n case 3:\n message.payer = reader.string();\n break;\n case 4:\n message.granter = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseFee();\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.gasLimit))\n obj.gasLimit = BigInt(object.gasLimit.toString());\n if ((0, helpers_1.isSet)(object.payer))\n obj.payer = String(object.payer);\n if ((0, helpers_1.isSet)(object.granter))\n obj.granter = String(object.granter);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n message.gasLimit !== undefined && (obj.gasLimit = (message.gasLimit || BigInt(0)).toString());\n message.payer !== undefined && (obj.payer = message.payer);\n message.granter !== undefined && (obj.granter = message.granter);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseFee();\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.gasLimit !== undefined && object.gasLimit !== null) {\n message.gasLimit = BigInt(object.gasLimit.toString());\n }\n message.payer = object.payer ?? \"\";\n message.granter = object.granter ?? \"\";\n return message;\n },\n};\nfunction createBaseTip() {\n return {\n amount: [],\n tipper: \"\",\n };\n}\nexports.Tip = {\n typeUrl: \"/cosmos.tx.v1beta1.Tip\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.tipper !== \"\") {\n writer.uint32(18).string(message.tipper);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTip();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.tipper = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTip();\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.tipper))\n obj.tipper = String(object.tipper);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n message.tipper !== undefined && (obj.tipper = message.tipper);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTip();\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n message.tipper = object.tipper ?? \"\";\n return message;\n },\n};\nfunction createBaseAuxSignerData() {\n return {\n address: \"\",\n signDoc: undefined,\n mode: 0,\n sig: new Uint8Array(),\n };\n}\nexports.AuxSignerData = {\n typeUrl: \"/cosmos.tx.v1beta1.AuxSignerData\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.signDoc !== undefined) {\n exports.SignDocDirectAux.encode(message.signDoc, writer.uint32(18).fork()).ldelim();\n }\n if (message.mode !== 0) {\n writer.uint32(24).int32(message.mode);\n }\n if (message.sig.length !== 0) {\n writer.uint32(34).bytes(message.sig);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAuxSignerData();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.signDoc = exports.SignDocDirectAux.decode(reader, reader.uint32());\n break;\n case 3:\n message.mode = reader.int32();\n break;\n case 4:\n message.sig = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseAuxSignerData();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = String(object.address);\n if ((0, helpers_1.isSet)(object.signDoc))\n obj.signDoc = exports.SignDocDirectAux.fromJSON(object.signDoc);\n if ((0, helpers_1.isSet)(object.mode))\n obj.mode = (0, signing_1.signModeFromJSON)(object.mode);\n if ((0, helpers_1.isSet)(object.sig))\n obj.sig = (0, helpers_1.bytesFromBase64)(object.sig);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.signDoc !== undefined &&\n (obj.signDoc = message.signDoc ? exports.SignDocDirectAux.toJSON(message.signDoc) : undefined);\n message.mode !== undefined && (obj.mode = (0, signing_1.signModeToJSON)(message.mode));\n message.sig !== undefined &&\n (obj.sig = (0, helpers_1.base64FromBytes)(message.sig !== undefined ? message.sig : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseAuxSignerData();\n message.address = object.address ?? \"\";\n if (object.signDoc !== undefined && object.signDoc !== null) {\n message.signDoc = exports.SignDocDirectAux.fromPartial(object.signDoc);\n }\n message.mode = object.mode ?? 0;\n message.sig = object.sig ?? new Uint8Array();\n return message;\n },\n};\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ModuleVersion = exports.CancelSoftwareUpgradeProposal = exports.SoftwareUpgradeProposal = exports.Plan = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.upgrade.v1beta1\";\nfunction createBasePlan() {\n return {\n name: \"\",\n time: timestamp_1.Timestamp.fromPartial({}),\n height: BigInt(0),\n info: \"\",\n upgradedClientState: undefined,\n };\n}\nexports.Plan = {\n typeUrl: \"/cosmos.upgrade.v1beta1.Plan\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.name !== \"\") {\n writer.uint32(10).string(message.name);\n }\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(message.time, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== BigInt(0)) {\n writer.uint32(24).int64(message.height);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (message.upgradedClientState !== undefined) {\n any_1.Any.encode(message.upgradedClientState, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePlan();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.time = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = reader.int64();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.upgradedClientState = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePlan();\n if ((0, helpers_1.isSet)(object.name))\n obj.name = String(object.name);\n if ((0, helpers_1.isSet)(object.time))\n obj.time = (0, helpers_1.fromJsonTimestamp)(object.time);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.info))\n obj.info = String(object.info);\n if ((0, helpers_1.isSet)(object.upgradedClientState))\n obj.upgradedClientState = any_1.Any.fromJSON(object.upgradedClientState);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.name !== undefined && (obj.name = message.name);\n message.time !== undefined && (obj.time = (0, helpers_1.fromTimestamp)(message.time).toISOString());\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.info !== undefined && (obj.info = message.info);\n message.upgradedClientState !== undefined &&\n (obj.upgradedClientState = message.upgradedClientState\n ? any_1.Any.toJSON(message.upgradedClientState)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBasePlan();\n message.name = object.name ?? \"\";\n if (object.time !== undefined && object.time !== null) {\n message.time = timestamp_1.Timestamp.fromPartial(object.time);\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n message.info = object.info ?? \"\";\n if (object.upgradedClientState !== undefined && object.upgradedClientState !== null) {\n message.upgradedClientState = any_1.Any.fromPartial(object.upgradedClientState);\n }\n return message;\n },\n};\nfunction createBaseSoftwareUpgradeProposal() {\n return {\n title: \"\",\n description: \"\",\n plan: exports.Plan.fromPartial({}),\n };\n}\nexports.SoftwareUpgradeProposal = {\n typeUrl: \"/cosmos.upgrade.v1beta1.SoftwareUpgradeProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.plan !== undefined) {\n exports.Plan.encode(message.plan, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSoftwareUpgradeProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.plan = exports.Plan.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSoftwareUpgradeProposal();\n if ((0, helpers_1.isSet)(object.title))\n obj.title = String(object.title);\n if ((0, helpers_1.isSet)(object.description))\n obj.description = String(object.description);\n if ((0, helpers_1.isSet)(object.plan))\n obj.plan = exports.Plan.fromJSON(object.plan);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.plan !== undefined && (obj.plan = message.plan ? exports.Plan.toJSON(message.plan) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSoftwareUpgradeProposal();\n message.title = object.title ?? \"\";\n message.description = object.description ?? \"\";\n if (object.plan !== undefined && object.plan !== null) {\n message.plan = exports.Plan.fromPartial(object.plan);\n }\n return message;\n },\n};\nfunction createBaseCancelSoftwareUpgradeProposal() {\n return {\n title: \"\",\n description: \"\",\n };\n}\nexports.CancelSoftwareUpgradeProposal = {\n typeUrl: \"/cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCancelSoftwareUpgradeProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCancelSoftwareUpgradeProposal();\n if ((0, helpers_1.isSet)(object.title))\n obj.title = String(object.title);\n if ((0, helpers_1.isSet)(object.description))\n obj.description = String(object.description);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCancelSoftwareUpgradeProposal();\n message.title = object.title ?? \"\";\n message.description = object.description ?? \"\";\n return message;\n },\n};\nfunction createBaseModuleVersion() {\n return {\n name: \"\",\n version: BigInt(0),\n };\n}\nexports.ModuleVersion = {\n typeUrl: \"/cosmos.upgrade.v1beta1.ModuleVersion\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.name !== \"\") {\n writer.uint32(10).string(message.name);\n }\n if (message.version !== BigInt(0)) {\n writer.uint32(16).uint64(message.version);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseModuleVersion();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.version = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseModuleVersion();\n if ((0, helpers_1.isSet)(object.name))\n obj.name = String(object.name);\n if ((0, helpers_1.isSet)(object.version))\n obj.version = BigInt(object.version.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.name !== undefined && (obj.name = message.name);\n message.version !== undefined && (obj.version = (message.version || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseModuleVersion();\n message.name = object.name ?? \"\";\n if (object.version !== undefined && object.version !== null) {\n message.version = BigInt(object.version.toString());\n }\n return message;\n },\n};\n//# sourceMappingURL=upgrade.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgCreatePeriodicVestingAccountResponse = exports.MsgCreatePeriodicVestingAccount = exports.MsgCreatePermanentLockedAccountResponse = exports.MsgCreatePermanentLockedAccount = exports.MsgCreateVestingAccountResponse = exports.MsgCreateVestingAccount = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst vesting_1 = require(\"./vesting\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.vesting.v1beta1\";\nfunction createBaseMsgCreateVestingAccount() {\n return {\n fromAddress: \"\",\n toAddress: \"\",\n amount: [],\n endTime: BigInt(0),\n delayed: false,\n };\n}\nexports.MsgCreateVestingAccount = {\n typeUrl: \"/cosmos.vesting.v1beta1.MsgCreateVestingAccount\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.fromAddress !== \"\") {\n writer.uint32(10).string(message.fromAddress);\n }\n if (message.toAddress !== \"\") {\n writer.uint32(18).string(message.toAddress);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n if (message.endTime !== BigInt(0)) {\n writer.uint32(32).int64(message.endTime);\n }\n if (message.delayed === true) {\n writer.uint32(40).bool(message.delayed);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateVestingAccount();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.fromAddress = reader.string();\n break;\n case 2:\n message.toAddress = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 4:\n message.endTime = reader.int64();\n break;\n case 5:\n message.delayed = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCreateVestingAccount();\n if ((0, helpers_1.isSet)(object.fromAddress))\n obj.fromAddress = String(object.fromAddress);\n if ((0, helpers_1.isSet)(object.toAddress))\n obj.toAddress = String(object.toAddress);\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.endTime))\n obj.endTime = BigInt(object.endTime.toString());\n if ((0, helpers_1.isSet)(object.delayed))\n obj.delayed = Boolean(object.delayed);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress);\n message.toAddress !== undefined && (obj.toAddress = message.toAddress);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n message.endTime !== undefined && (obj.endTime = (message.endTime || BigInt(0)).toString());\n message.delayed !== undefined && (obj.delayed = message.delayed);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCreateVestingAccount();\n message.fromAddress = object.fromAddress ?? \"\";\n message.toAddress = object.toAddress ?? \"\";\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.endTime !== undefined && object.endTime !== null) {\n message.endTime = BigInt(object.endTime.toString());\n }\n message.delayed = object.delayed ?? false;\n return message;\n },\n};\nfunction createBaseMsgCreateVestingAccountResponse() {\n return {};\n}\nexports.MsgCreateVestingAccountResponse = {\n typeUrl: \"/cosmos.vesting.v1beta1.MsgCreateVestingAccountResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateVestingAccountResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgCreateVestingAccountResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgCreateVestingAccountResponse();\n return message;\n },\n};\nfunction createBaseMsgCreatePermanentLockedAccount() {\n return {\n fromAddress: \"\",\n toAddress: \"\",\n amount: [],\n };\n}\nexports.MsgCreatePermanentLockedAccount = {\n typeUrl: \"/cosmos.vesting.v1beta1.MsgCreatePermanentLockedAccount\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.fromAddress !== \"\") {\n writer.uint32(10).string(message.fromAddress);\n }\n if (message.toAddress !== \"\") {\n writer.uint32(18).string(message.toAddress);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreatePermanentLockedAccount();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.fromAddress = reader.string();\n break;\n case 2:\n message.toAddress = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCreatePermanentLockedAccount();\n if ((0, helpers_1.isSet)(object.fromAddress))\n obj.fromAddress = String(object.fromAddress);\n if ((0, helpers_1.isSet)(object.toAddress))\n obj.toAddress = String(object.toAddress);\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress);\n message.toAddress !== undefined && (obj.toAddress = message.toAddress);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCreatePermanentLockedAccount();\n message.fromAddress = object.fromAddress ?? \"\";\n message.toAddress = object.toAddress ?? \"\";\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgCreatePermanentLockedAccountResponse() {\n return {};\n}\nexports.MsgCreatePermanentLockedAccountResponse = {\n typeUrl: \"/cosmos.vesting.v1beta1.MsgCreatePermanentLockedAccountResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreatePermanentLockedAccountResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgCreatePermanentLockedAccountResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgCreatePermanentLockedAccountResponse();\n return message;\n },\n};\nfunction createBaseMsgCreatePeriodicVestingAccount() {\n return {\n fromAddress: \"\",\n toAddress: \"\",\n startTime: BigInt(0),\n vestingPeriods: [],\n };\n}\nexports.MsgCreatePeriodicVestingAccount = {\n typeUrl: \"/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccount\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.fromAddress !== \"\") {\n writer.uint32(10).string(message.fromAddress);\n }\n if (message.toAddress !== \"\") {\n writer.uint32(18).string(message.toAddress);\n }\n if (message.startTime !== BigInt(0)) {\n writer.uint32(24).int64(message.startTime);\n }\n for (const v of message.vestingPeriods) {\n vesting_1.Period.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreatePeriodicVestingAccount();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.fromAddress = reader.string();\n break;\n case 2:\n message.toAddress = reader.string();\n break;\n case 3:\n message.startTime = reader.int64();\n break;\n case 4:\n message.vestingPeriods.push(vesting_1.Period.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCreatePeriodicVestingAccount();\n if ((0, helpers_1.isSet)(object.fromAddress))\n obj.fromAddress = String(object.fromAddress);\n if ((0, helpers_1.isSet)(object.toAddress))\n obj.toAddress = String(object.toAddress);\n if ((0, helpers_1.isSet)(object.startTime))\n obj.startTime = BigInt(object.startTime.toString());\n if (Array.isArray(object?.vestingPeriods))\n obj.vestingPeriods = object.vestingPeriods.map((e) => vesting_1.Period.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress);\n message.toAddress !== undefined && (obj.toAddress = message.toAddress);\n message.startTime !== undefined && (obj.startTime = (message.startTime || BigInt(0)).toString());\n if (message.vestingPeriods) {\n obj.vestingPeriods = message.vestingPeriods.map((e) => (e ? vesting_1.Period.toJSON(e) : undefined));\n }\n else {\n obj.vestingPeriods = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCreatePeriodicVestingAccount();\n message.fromAddress = object.fromAddress ?? \"\";\n message.toAddress = object.toAddress ?? \"\";\n if (object.startTime !== undefined && object.startTime !== null) {\n message.startTime = BigInt(object.startTime.toString());\n }\n message.vestingPeriods = object.vestingPeriods?.map((e) => vesting_1.Period.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseMsgCreatePeriodicVestingAccountResponse() {\n return {};\n}\nexports.MsgCreatePeriodicVestingAccountResponse = {\n typeUrl: \"/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccountResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreatePeriodicVestingAccountResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgCreatePeriodicVestingAccountResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgCreatePeriodicVestingAccountResponse();\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.CreateVestingAccount = this.CreateVestingAccount.bind(this);\n this.CreatePermanentLockedAccount = this.CreatePermanentLockedAccount.bind(this);\n this.CreatePeriodicVestingAccount = this.CreatePeriodicVestingAccount.bind(this);\n }\n CreateVestingAccount(request) {\n const data = exports.MsgCreateVestingAccount.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.vesting.v1beta1.Msg\", \"CreateVestingAccount\", data);\n return promise.then((data) => exports.MsgCreateVestingAccountResponse.decode(new binary_1.BinaryReader(data)));\n }\n CreatePermanentLockedAccount(request) {\n const data = exports.MsgCreatePermanentLockedAccount.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.vesting.v1beta1.Msg\", \"CreatePermanentLockedAccount\", data);\n return promise.then((data) => exports.MsgCreatePermanentLockedAccountResponse.decode(new binary_1.BinaryReader(data)));\n }\n CreatePeriodicVestingAccount(request) {\n const data = exports.MsgCreatePeriodicVestingAccount.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.vesting.v1beta1.Msg\", \"CreatePeriodicVestingAccount\", data);\n return promise.then((data) => exports.MsgCreatePeriodicVestingAccountResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PermanentLockedAccount = exports.PeriodicVestingAccount = exports.Period = exports.DelayedVestingAccount = exports.ContinuousVestingAccount = exports.BaseVestingAccount = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst auth_1 = require(\"../../auth/v1beta1/auth\");\nconst coin_1 = require(\"../../base/v1beta1/coin\");\nconst binary_1 = require(\"../../../binary\");\nconst helpers_1 = require(\"../../../helpers\");\nexports.protobufPackage = \"cosmos.vesting.v1beta1\";\nfunction createBaseBaseVestingAccount() {\n return {\n baseAccount: undefined,\n originalVesting: [],\n delegatedFree: [],\n delegatedVesting: [],\n endTime: BigInt(0),\n };\n}\nexports.BaseVestingAccount = {\n typeUrl: \"/cosmos.vesting.v1beta1.BaseVestingAccount\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.baseAccount !== undefined) {\n auth_1.BaseAccount.encode(message.baseAccount, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.originalVesting) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.delegatedFree) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.delegatedVesting) {\n coin_1.Coin.encode(v, writer.uint32(34).fork()).ldelim();\n }\n if (message.endTime !== BigInt(0)) {\n writer.uint32(40).int64(message.endTime);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBaseVestingAccount();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseAccount = auth_1.BaseAccount.decode(reader, reader.uint32());\n break;\n case 2:\n message.originalVesting.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 3:\n message.delegatedFree.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 4:\n message.delegatedVesting.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 5:\n message.endTime = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBaseVestingAccount();\n if ((0, helpers_1.isSet)(object.baseAccount))\n obj.baseAccount = auth_1.BaseAccount.fromJSON(object.baseAccount);\n if (Array.isArray(object?.originalVesting))\n obj.originalVesting = object.originalVesting.map((e) => coin_1.Coin.fromJSON(e));\n if (Array.isArray(object?.delegatedFree))\n obj.delegatedFree = object.delegatedFree.map((e) => coin_1.Coin.fromJSON(e));\n if (Array.isArray(object?.delegatedVesting))\n obj.delegatedVesting = object.delegatedVesting.map((e) => coin_1.Coin.fromJSON(e));\n if ((0, helpers_1.isSet)(object.endTime))\n obj.endTime = BigInt(object.endTime.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.baseAccount !== undefined &&\n (obj.baseAccount = message.baseAccount ? auth_1.BaseAccount.toJSON(message.baseAccount) : undefined);\n if (message.originalVesting) {\n obj.originalVesting = message.originalVesting.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.originalVesting = [];\n }\n if (message.delegatedFree) {\n obj.delegatedFree = message.delegatedFree.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.delegatedFree = [];\n }\n if (message.delegatedVesting) {\n obj.delegatedVesting = message.delegatedVesting.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.delegatedVesting = [];\n }\n message.endTime !== undefined && (obj.endTime = (message.endTime || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBaseVestingAccount();\n if (object.baseAccount !== undefined && object.baseAccount !== null) {\n message.baseAccount = auth_1.BaseAccount.fromPartial(object.baseAccount);\n }\n message.originalVesting = object.originalVesting?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n message.delegatedFree = object.delegatedFree?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n message.delegatedVesting = object.delegatedVesting?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n if (object.endTime !== undefined && object.endTime !== null) {\n message.endTime = BigInt(object.endTime.toString());\n }\n return message;\n },\n};\nfunction createBaseContinuousVestingAccount() {\n return {\n baseVestingAccount: undefined,\n startTime: BigInt(0),\n };\n}\nexports.ContinuousVestingAccount = {\n typeUrl: \"/cosmos.vesting.v1beta1.ContinuousVestingAccount\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.baseVestingAccount !== undefined) {\n exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();\n }\n if (message.startTime !== BigInt(0)) {\n writer.uint32(16).int64(message.startTime);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseContinuousVestingAccount();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseVestingAccount = exports.BaseVestingAccount.decode(reader, reader.uint32());\n break;\n case 2:\n message.startTime = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseContinuousVestingAccount();\n if ((0, helpers_1.isSet)(object.baseVestingAccount))\n obj.baseVestingAccount = exports.BaseVestingAccount.fromJSON(object.baseVestingAccount);\n if ((0, helpers_1.isSet)(object.startTime))\n obj.startTime = BigInt(object.startTime.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.baseVestingAccount !== undefined &&\n (obj.baseVestingAccount = message.baseVestingAccount\n ? exports.BaseVestingAccount.toJSON(message.baseVestingAccount)\n : undefined);\n message.startTime !== undefined && (obj.startTime = (message.startTime || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseContinuousVestingAccount();\n if (object.baseVestingAccount !== undefined && object.baseVestingAccount !== null) {\n message.baseVestingAccount = exports.BaseVestingAccount.fromPartial(object.baseVestingAccount);\n }\n if (object.startTime !== undefined && object.startTime !== null) {\n message.startTime = BigInt(object.startTime.toString());\n }\n return message;\n },\n};\nfunction createBaseDelayedVestingAccount() {\n return {\n baseVestingAccount: undefined,\n };\n}\nexports.DelayedVestingAccount = {\n typeUrl: \"/cosmos.vesting.v1beta1.DelayedVestingAccount\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.baseVestingAccount !== undefined) {\n exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDelayedVestingAccount();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseVestingAccount = exports.BaseVestingAccount.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDelayedVestingAccount();\n if ((0, helpers_1.isSet)(object.baseVestingAccount))\n obj.baseVestingAccount = exports.BaseVestingAccount.fromJSON(object.baseVestingAccount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.baseVestingAccount !== undefined &&\n (obj.baseVestingAccount = message.baseVestingAccount\n ? exports.BaseVestingAccount.toJSON(message.baseVestingAccount)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDelayedVestingAccount();\n if (object.baseVestingAccount !== undefined && object.baseVestingAccount !== null) {\n message.baseVestingAccount = exports.BaseVestingAccount.fromPartial(object.baseVestingAccount);\n }\n return message;\n },\n};\nfunction createBasePeriod() {\n return {\n length: BigInt(0),\n amount: [],\n };\n}\nexports.Period = {\n typeUrl: \"/cosmos.vesting.v1beta1.Period\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.length !== BigInt(0)) {\n writer.uint32(8).int64(message.length);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePeriod();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.length = reader.int64();\n break;\n case 2:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePeriod();\n if ((0, helpers_1.isSet)(object.length))\n obj.length = BigInt(object.length.toString());\n if (Array.isArray(object?.amount))\n obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.length !== undefined && (obj.length = (message.length || BigInt(0)).toString());\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBasePeriod();\n if (object.length !== undefined && object.length !== null) {\n message.length = BigInt(object.length.toString());\n }\n message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBasePeriodicVestingAccount() {\n return {\n baseVestingAccount: undefined,\n startTime: BigInt(0),\n vestingPeriods: [],\n };\n}\nexports.PeriodicVestingAccount = {\n typeUrl: \"/cosmos.vesting.v1beta1.PeriodicVestingAccount\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.baseVestingAccount !== undefined) {\n exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();\n }\n if (message.startTime !== BigInt(0)) {\n writer.uint32(16).int64(message.startTime);\n }\n for (const v of message.vestingPeriods) {\n exports.Period.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePeriodicVestingAccount();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseVestingAccount = exports.BaseVestingAccount.decode(reader, reader.uint32());\n break;\n case 2:\n message.startTime = reader.int64();\n break;\n case 3:\n message.vestingPeriods.push(exports.Period.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePeriodicVestingAccount();\n if ((0, helpers_1.isSet)(object.baseVestingAccount))\n obj.baseVestingAccount = exports.BaseVestingAccount.fromJSON(object.baseVestingAccount);\n if ((0, helpers_1.isSet)(object.startTime))\n obj.startTime = BigInt(object.startTime.toString());\n if (Array.isArray(object?.vestingPeriods))\n obj.vestingPeriods = object.vestingPeriods.map((e) => exports.Period.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.baseVestingAccount !== undefined &&\n (obj.baseVestingAccount = message.baseVestingAccount\n ? exports.BaseVestingAccount.toJSON(message.baseVestingAccount)\n : undefined);\n message.startTime !== undefined && (obj.startTime = (message.startTime || BigInt(0)).toString());\n if (message.vestingPeriods) {\n obj.vestingPeriods = message.vestingPeriods.map((e) => (e ? exports.Period.toJSON(e) : undefined));\n }\n else {\n obj.vestingPeriods = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBasePeriodicVestingAccount();\n if (object.baseVestingAccount !== undefined && object.baseVestingAccount !== null) {\n message.baseVestingAccount = exports.BaseVestingAccount.fromPartial(object.baseVestingAccount);\n }\n if (object.startTime !== undefined && object.startTime !== null) {\n message.startTime = BigInt(object.startTime.toString());\n }\n message.vestingPeriods = object.vestingPeriods?.map((e) => exports.Period.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBasePermanentLockedAccount() {\n return {\n baseVestingAccount: undefined,\n };\n}\nexports.PermanentLockedAccount = {\n typeUrl: \"/cosmos.vesting.v1beta1.PermanentLockedAccount\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.baseVestingAccount !== undefined) {\n exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePermanentLockedAccount();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseVestingAccount = exports.BaseVestingAccount.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePermanentLockedAccount();\n if ((0, helpers_1.isSet)(object.baseVestingAccount))\n obj.baseVestingAccount = exports.BaseVestingAccount.fromJSON(object.baseVestingAccount);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.baseVestingAccount !== undefined &&\n (obj.baseVestingAccount = message.baseVestingAccount\n ? exports.BaseVestingAccount.toJSON(message.baseVestingAccount)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBasePermanentLockedAccount();\n if (object.baseVestingAccount !== undefined && object.baseVestingAccount !== null) {\n message.baseVestingAccount = exports.BaseVestingAccount.fromPartial(object.baseVestingAccount);\n }\n return message;\n },\n};\n//# sourceMappingURL=vesting.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Any = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"google.protobuf\";\nfunction createBaseAny() {\n return {\n typeUrl: \"\",\n value: new Uint8Array(),\n };\n}\nexports.Any = {\n typeUrl: \"/google.protobuf.Any\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.typeUrl !== \"\") {\n writer.uint32(10).string(message.typeUrl);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAny();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.typeUrl = reader.string();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseAny();\n if ((0, helpers_1.isSet)(object.typeUrl))\n obj.typeUrl = String(object.typeUrl);\n if ((0, helpers_1.isSet)(object.value))\n obj.value = (0, helpers_1.bytesFromBase64)(object.value);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.typeUrl !== undefined && (obj.typeUrl = message.typeUrl);\n message.value !== undefined &&\n (obj.value = (0, helpers_1.base64FromBytes)(message.value !== undefined ? message.value : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseAny();\n message.typeUrl = object.typeUrl ?? \"\";\n message.value = object.value ?? new Uint8Array();\n return message;\n },\n};\n//# sourceMappingURL=any.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Duration = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"google.protobuf\";\nfunction createBaseDuration() {\n return {\n seconds: BigInt(0),\n nanos: 0,\n };\n}\nexports.Duration = {\n typeUrl: \"/google.protobuf.Duration\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.seconds !== BigInt(0)) {\n writer.uint32(8).int64(message.seconds);\n }\n if (message.nanos !== 0) {\n writer.uint32(16).int32(message.nanos);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDuration();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.seconds = reader.int64();\n break;\n case 2:\n message.nanos = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDuration();\n if ((0, helpers_1.isSet)(object.seconds))\n obj.seconds = BigInt(object.seconds.toString());\n if ((0, helpers_1.isSet)(object.nanos))\n obj.nanos = Number(object.nanos);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.seconds !== undefined && (obj.seconds = (message.seconds || BigInt(0)).toString());\n message.nanos !== undefined && (obj.nanos = Math.round(message.nanos));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDuration();\n if (object.seconds !== undefined && object.seconds !== null) {\n message.seconds = BigInt(object.seconds.toString());\n }\n message.nanos = object.nanos ?? 0;\n return message;\n },\n};\n//# sourceMappingURL=duration.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Timestamp = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"google.protobuf\";\nfunction createBaseTimestamp() {\n return {\n seconds: BigInt(0),\n nanos: 0,\n };\n}\nexports.Timestamp = {\n typeUrl: \"/google.protobuf.Timestamp\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.seconds !== BigInt(0)) {\n writer.uint32(8).int64(message.seconds);\n }\n if (message.nanos !== 0) {\n writer.uint32(16).int32(message.nanos);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTimestamp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.seconds = reader.int64();\n break;\n case 2:\n message.nanos = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTimestamp();\n if ((0, helpers_1.isSet)(object.seconds))\n obj.seconds = BigInt(object.seconds.toString());\n if ((0, helpers_1.isSet)(object.nanos))\n obj.nanos = Number(object.nanos);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.seconds !== undefined && (obj.seconds = (message.seconds || BigInt(0)).toString());\n message.nanos !== undefined && (obj.nanos = Math.round(message.nanos));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTimestamp();\n if (object.seconds !== undefined && object.seconds !== null) {\n message.seconds = BigInt(object.seconds.toString());\n }\n message.nanos = object.nanos ?? 0;\n return message;\n },\n};\n//# sourceMappingURL=timestamp.js.map","\"use strict\";\n/* eslint-disable */\n/**\n * This file and any referenced files were automatically generated by @cosmology/telescope@1.0.7\n * DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain\n * and run the transpile command or yarn proto command to regenerate this bundle.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromJsonTimestamp = exports.fromTimestamp = exports.toTimestamp = exports.setPaginationParams = exports.isObject = exports.isSet = exports.fromDuration = exports.toDuration = exports.omitDefault = exports.base64FromBytes = exports.bytesFromBase64 = void 0;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nexports.bytesFromBase64 = bytesFromBase64;\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n arr.forEach((byte) => {\n bin.push(String.fromCharCode(byte));\n });\n return btoa(bin.join(\"\"));\n}\nexports.base64FromBytes = base64FromBytes;\nfunction omitDefault(input) {\n if (typeof input === \"string\") {\n return input === \"\" ? undefined : input;\n }\n if (typeof input === \"number\") {\n return input === 0 ? undefined : input;\n }\n if (typeof input === \"bigint\") {\n return input === BigInt(0) ? undefined : input;\n }\n throw new Error(`Got unsupported type ${typeof input}`);\n}\nexports.omitDefault = omitDefault;\nfunction toDuration(duration) {\n return {\n seconds: BigInt(Math.floor(parseInt(duration) / 1000000000)),\n nanos: parseInt(duration) % 1000000000,\n };\n}\nexports.toDuration = toDuration;\nfunction fromDuration(duration) {\n return (parseInt(duration.seconds.toString()) * 1000000000 + duration.nanos).toString();\n}\nexports.fromDuration = fromDuration;\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\nexports.isSet = isSet;\nfunction isObject(value) {\n return typeof value === \"object\" && value !== null;\n}\nexports.isObject = isObject;\nconst setPaginationParams = (options, pagination) => {\n if (!pagination) {\n return options;\n }\n if (typeof pagination?.countTotal !== \"undefined\") {\n options.params[\"pagination.count_total\"] = pagination.countTotal;\n }\n if (typeof pagination?.key !== \"undefined\") {\n // String to Uint8Array\n // let uint8arr = new Uint8Array(Buffer.from(data,'base64'));\n // Uint8Array to String\n options.params[\"pagination.key\"] = Buffer.from(pagination.key).toString(\"base64\");\n }\n if (typeof pagination?.limit !== \"undefined\") {\n options.params[\"pagination.limit\"] = pagination.limit.toString();\n }\n if (typeof pagination?.offset !== \"undefined\") {\n options.params[\"pagination.offset\"] = pagination.offset.toString();\n }\n if (typeof pagination?.reverse !== \"undefined\") {\n options.params[\"pagination.reverse\"] = pagination.reverse;\n }\n return options;\n};\nexports.setPaginationParams = setPaginationParams;\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return {\n seconds,\n nanos,\n };\n}\nexports.toTimestamp = toTimestamp;\nfunction fromTimestamp(t) {\n let millis = Number(t.seconds) * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nexports.fromTimestamp = fromTimestamp;\nconst timestampFromJSON = (object) => {\n return {\n seconds: isSet(object.seconds) ? BigInt(object.seconds.toString()) : BigInt(0),\n nanos: isSet(object.nanos) ? Number(object.nanos) : 0,\n };\n};\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return toTimestamp(o);\n }\n else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n }\n else {\n return timestampFromJSON(o);\n }\n}\nexports.fromJsonTimestamp = fromJsonTimestamp;\nfunction numberToLong(number) {\n return BigInt(Math.trunc(number));\n}\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryEscrowAddressResponse = exports.QueryEscrowAddressRequest = exports.QueryDenomHashResponse = exports.QueryDenomHashRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryDenomTracesResponse = exports.QueryDenomTracesRequest = exports.QueryDenomTraceResponse = exports.QueryDenomTraceRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst pagination_1 = require(\"../../../../cosmos/base/query/v1beta1/pagination\");\nconst transfer_1 = require(\"./transfer\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.applications.transfer.v1\";\nfunction createBaseQueryDenomTraceRequest() {\n return {\n hash: \"\",\n };\n}\nexports.QueryDenomTraceRequest = {\n typeUrl: \"/ibc.applications.transfer.v1.QueryDenomTraceRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.hash !== \"\") {\n writer.uint32(10).string(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomTraceRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomTraceRequest();\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = String(object.hash);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined && (obj.hash = message.hash);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomTraceRequest();\n message.hash = object.hash ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryDenomTraceResponse() {\n return {\n denomTrace: undefined,\n };\n}\nexports.QueryDenomTraceResponse = {\n typeUrl: \"/ibc.applications.transfer.v1.QueryDenomTraceResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.denomTrace !== undefined) {\n transfer_1.DenomTrace.encode(message.denomTrace, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomTraceResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denomTrace = transfer_1.DenomTrace.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomTraceResponse();\n if ((0, helpers_1.isSet)(object.denomTrace))\n obj.denomTrace = transfer_1.DenomTrace.fromJSON(object.denomTrace);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.denomTrace !== undefined &&\n (obj.denomTrace = message.denomTrace ? transfer_1.DenomTrace.toJSON(message.denomTrace) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomTraceResponse();\n if (object.denomTrace !== undefined && object.denomTrace !== null) {\n message.denomTrace = transfer_1.DenomTrace.fromPartial(object.denomTrace);\n }\n return message;\n },\n};\nfunction createBaseQueryDenomTracesRequest() {\n return {\n pagination: undefined,\n };\n}\nexports.QueryDenomTracesRequest = {\n typeUrl: \"/ibc.applications.transfer.v1.QueryDenomTracesRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomTracesRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomTracesRequest();\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomTracesRequest();\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryDenomTracesResponse() {\n return {\n denomTraces: [],\n pagination: undefined,\n };\n}\nexports.QueryDenomTracesResponse = {\n typeUrl: \"/ibc.applications.transfer.v1.QueryDenomTracesResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.denomTraces) {\n transfer_1.DenomTrace.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomTracesResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denomTraces.push(transfer_1.DenomTrace.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomTracesResponse();\n if (Array.isArray(object?.denomTraces))\n obj.denomTraces = object.denomTraces.map((e) => transfer_1.DenomTrace.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.denomTraces) {\n obj.denomTraces = message.denomTraces.map((e) => (e ? transfer_1.DenomTrace.toJSON(e) : undefined));\n }\n else {\n obj.denomTraces = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomTracesResponse();\n message.denomTraces = object.denomTraces?.map((e) => transfer_1.DenomTrace.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryParamsRequest() {\n return {};\n}\nexports.QueryParamsRequest = {\n typeUrl: \"/ibc.applications.transfer.v1.QueryParamsRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryParamsRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryParamsRequest();\n return message;\n },\n};\nfunction createBaseQueryParamsResponse() {\n return {\n params: undefined,\n };\n}\nexports.QueryParamsResponse = {\n typeUrl: \"/ibc.applications.transfer.v1.QueryParamsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.params !== undefined) {\n transfer_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = transfer_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryParamsResponse();\n if ((0, helpers_1.isSet)(object.params))\n obj.params = transfer_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? transfer_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryParamsResponse();\n if (object.params !== undefined && object.params !== null) {\n message.params = transfer_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nfunction createBaseQueryDenomHashRequest() {\n return {\n trace: \"\",\n };\n}\nexports.QueryDenomHashRequest = {\n typeUrl: \"/ibc.applications.transfer.v1.QueryDenomHashRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.trace !== \"\") {\n writer.uint32(10).string(message.trace);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomHashRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.trace = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomHashRequest();\n if ((0, helpers_1.isSet)(object.trace))\n obj.trace = String(object.trace);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.trace !== undefined && (obj.trace = message.trace);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomHashRequest();\n message.trace = object.trace ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryDenomHashResponse() {\n return {\n hash: \"\",\n };\n}\nexports.QueryDenomHashResponse = {\n typeUrl: \"/ibc.applications.transfer.v1.QueryDenomHashResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.hash !== \"\") {\n writer.uint32(10).string(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryDenomHashResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryDenomHashResponse();\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = String(object.hash);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined && (obj.hash = message.hash);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryDenomHashResponse();\n message.hash = object.hash ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryEscrowAddressRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n };\n}\nexports.QueryEscrowAddressRequest = {\n typeUrl: \"/ibc.applications.transfer.v1.QueryEscrowAddressRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryEscrowAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryEscrowAddressRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryEscrowAddressRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryEscrowAddressResponse() {\n return {\n escrowAddress: \"\",\n };\n}\nexports.QueryEscrowAddressResponse = {\n typeUrl: \"/ibc.applications.transfer.v1.QueryEscrowAddressResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.escrowAddress !== \"\") {\n writer.uint32(10).string(message.escrowAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryEscrowAddressResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.escrowAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryEscrowAddressResponse();\n if ((0, helpers_1.isSet)(object.escrowAddress))\n obj.escrowAddress = String(object.escrowAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.escrowAddress !== undefined && (obj.escrowAddress = message.escrowAddress);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryEscrowAddressResponse();\n message.escrowAddress = object.escrowAddress ?? \"\";\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.DenomTrace = this.DenomTrace.bind(this);\n this.DenomTraces = this.DenomTraces.bind(this);\n this.Params = this.Params.bind(this);\n this.DenomHash = this.DenomHash.bind(this);\n this.EscrowAddress = this.EscrowAddress.bind(this);\n }\n DenomTrace(request) {\n const data = exports.QueryDenomTraceRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.applications.transfer.v1.Query\", \"DenomTrace\", data);\n return promise.then((data) => exports.QueryDenomTraceResponse.decode(new binary_1.BinaryReader(data)));\n }\n DenomTraces(request = {\n pagination: pagination_1.PageRequest.fromPartial({}),\n }) {\n const data = exports.QueryDenomTracesRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.applications.transfer.v1.Query\", \"DenomTraces\", data);\n return promise.then((data) => exports.QueryDenomTracesResponse.decode(new binary_1.BinaryReader(data)));\n }\n Params(request = {}) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.applications.transfer.v1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n DenomHash(request) {\n const data = exports.QueryDenomHashRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.applications.transfer.v1.Query\", \"DenomHash\", data);\n return promise.then((data) => exports.QueryDenomHashResponse.decode(new binary_1.BinaryReader(data)));\n }\n EscrowAddress(request) {\n const data = exports.QueryEscrowAddressRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.applications.transfer.v1.Query\", \"EscrowAddress\", data);\n return promise.then((data) => exports.QueryEscrowAddressResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.DenomTrace = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.applications.transfer.v1\";\nfunction createBaseDenomTrace() {\n return {\n path: \"\",\n baseDenom: \"\",\n };\n}\nexports.DenomTrace = {\n typeUrl: \"/ibc.applications.transfer.v1.DenomTrace\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.path !== \"\") {\n writer.uint32(10).string(message.path);\n }\n if (message.baseDenom !== \"\") {\n writer.uint32(18).string(message.baseDenom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDenomTrace();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.path = reader.string();\n break;\n case 2:\n message.baseDenom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDenomTrace();\n if ((0, helpers_1.isSet)(object.path))\n obj.path = String(object.path);\n if ((0, helpers_1.isSet)(object.baseDenom))\n obj.baseDenom = String(object.baseDenom);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.path !== undefined && (obj.path = message.path);\n message.baseDenom !== undefined && (obj.baseDenom = message.baseDenom);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDenomTrace();\n message.path = object.path ?? \"\";\n message.baseDenom = object.baseDenom ?? \"\";\n return message;\n },\n};\nfunction createBaseParams() {\n return {\n sendEnabled: false,\n receiveEnabled: false,\n };\n}\nexports.Params = {\n typeUrl: \"/ibc.applications.transfer.v1.Params\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.sendEnabled === true) {\n writer.uint32(8).bool(message.sendEnabled);\n }\n if (message.receiveEnabled === true) {\n writer.uint32(16).bool(message.receiveEnabled);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sendEnabled = reader.bool();\n break;\n case 2:\n message.receiveEnabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseParams();\n if ((0, helpers_1.isSet)(object.sendEnabled))\n obj.sendEnabled = Boolean(object.sendEnabled);\n if ((0, helpers_1.isSet)(object.receiveEnabled))\n obj.receiveEnabled = Boolean(object.receiveEnabled);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.sendEnabled !== undefined && (obj.sendEnabled = message.sendEnabled);\n message.receiveEnabled !== undefined && (obj.receiveEnabled = message.receiveEnabled);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseParams();\n message.sendEnabled = object.sendEnabled ?? false;\n message.receiveEnabled = object.receiveEnabled ?? false;\n return message;\n },\n};\n//# sourceMappingURL=transfer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgTransferResponse = exports.MsgTransfer = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst coin_1 = require(\"../../../../cosmos/base/v1beta1/coin\");\nconst client_1 = require(\"../../../core/client/v1/client\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.applications.transfer.v1\";\nfunction createBaseMsgTransfer() {\n return {\n sourcePort: \"\",\n sourceChannel: \"\",\n token: coin_1.Coin.fromPartial({}),\n sender: \"\",\n receiver: \"\",\n timeoutHeight: client_1.Height.fromPartial({}),\n timeoutTimestamp: BigInt(0),\n memo: \"\",\n };\n}\nexports.MsgTransfer = {\n typeUrl: \"/ibc.applications.transfer.v1.MsgTransfer\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.sourcePort !== \"\") {\n writer.uint32(10).string(message.sourcePort);\n }\n if (message.sourceChannel !== \"\") {\n writer.uint32(18).string(message.sourceChannel);\n }\n if (message.token !== undefined) {\n coin_1.Coin.encode(message.token, writer.uint32(26).fork()).ldelim();\n }\n if (message.sender !== \"\") {\n writer.uint32(34).string(message.sender);\n }\n if (message.receiver !== \"\") {\n writer.uint32(42).string(message.receiver);\n }\n if (message.timeoutHeight !== undefined) {\n client_1.Height.encode(message.timeoutHeight, writer.uint32(50).fork()).ldelim();\n }\n if (message.timeoutTimestamp !== BigInt(0)) {\n writer.uint32(56).uint64(message.timeoutTimestamp);\n }\n if (message.memo !== \"\") {\n writer.uint32(66).string(message.memo);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgTransfer();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sourcePort = reader.string();\n break;\n case 2:\n message.sourceChannel = reader.string();\n break;\n case 3:\n message.token = coin_1.Coin.decode(reader, reader.uint32());\n break;\n case 4:\n message.sender = reader.string();\n break;\n case 5:\n message.receiver = reader.string();\n break;\n case 6:\n message.timeoutHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 7:\n message.timeoutTimestamp = reader.uint64();\n break;\n case 8:\n message.memo = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgTransfer();\n if ((0, helpers_1.isSet)(object.sourcePort))\n obj.sourcePort = String(object.sourcePort);\n if ((0, helpers_1.isSet)(object.sourceChannel))\n obj.sourceChannel = String(object.sourceChannel);\n if ((0, helpers_1.isSet)(object.token))\n obj.token = coin_1.Coin.fromJSON(object.token);\n if ((0, helpers_1.isSet)(object.sender))\n obj.sender = String(object.sender);\n if ((0, helpers_1.isSet)(object.receiver))\n obj.receiver = String(object.receiver);\n if ((0, helpers_1.isSet)(object.timeoutHeight))\n obj.timeoutHeight = client_1.Height.fromJSON(object.timeoutHeight);\n if ((0, helpers_1.isSet)(object.timeoutTimestamp))\n obj.timeoutTimestamp = BigInt(object.timeoutTimestamp.toString());\n if ((0, helpers_1.isSet)(object.memo))\n obj.memo = String(object.memo);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.sourcePort !== undefined && (obj.sourcePort = message.sourcePort);\n message.sourceChannel !== undefined && (obj.sourceChannel = message.sourceChannel);\n message.token !== undefined && (obj.token = message.token ? coin_1.Coin.toJSON(message.token) : undefined);\n message.sender !== undefined && (obj.sender = message.sender);\n message.receiver !== undefined && (obj.receiver = message.receiver);\n message.timeoutHeight !== undefined &&\n (obj.timeoutHeight = message.timeoutHeight ? client_1.Height.toJSON(message.timeoutHeight) : undefined);\n message.timeoutTimestamp !== undefined &&\n (obj.timeoutTimestamp = (message.timeoutTimestamp || BigInt(0)).toString());\n message.memo !== undefined && (obj.memo = message.memo);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgTransfer();\n message.sourcePort = object.sourcePort ?? \"\";\n message.sourceChannel = object.sourceChannel ?? \"\";\n if (object.token !== undefined && object.token !== null) {\n message.token = coin_1.Coin.fromPartial(object.token);\n }\n message.sender = object.sender ?? \"\";\n message.receiver = object.receiver ?? \"\";\n if (object.timeoutHeight !== undefined && object.timeoutHeight !== null) {\n message.timeoutHeight = client_1.Height.fromPartial(object.timeoutHeight);\n }\n if (object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null) {\n message.timeoutTimestamp = BigInt(object.timeoutTimestamp.toString());\n }\n message.memo = object.memo ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgTransferResponse() {\n return {\n sequence: BigInt(0),\n };\n}\nexports.MsgTransferResponse = {\n typeUrl: \"/ibc.applications.transfer.v1.MsgTransferResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.sequence !== BigInt(0)) {\n writer.uint32(8).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgTransferResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgTransferResponse();\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgTransferResponse();\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Transfer = this.Transfer.bind(this);\n }\n Transfer(request) {\n const data = exports.MsgTransfer.encode(request).finish();\n const promise = this.rpc.request(\"ibc.applications.transfer.v1.Msg\", \"Transfer\", data);\n return promise.then((data) => exports.MsgTransferResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Acknowledgement = exports.PacketId = exports.PacketState = exports.Packet = exports.Counterparty = exports.IdentifiedChannel = exports.Channel = exports.orderToJSON = exports.orderFromJSON = exports.Order = exports.stateToJSON = exports.stateFromJSON = exports.State = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst client_1 = require(\"../../client/v1/client\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.core.channel.v1\";\n/**\n * State defines if a channel is in one of the following states:\n * CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED.\n */\nvar State;\n(function (State) {\n /** STATE_UNINITIALIZED_UNSPECIFIED - Default State */\n State[State[\"STATE_UNINITIALIZED_UNSPECIFIED\"] = 0] = \"STATE_UNINITIALIZED_UNSPECIFIED\";\n /** STATE_INIT - A channel has just started the opening handshake. */\n State[State[\"STATE_INIT\"] = 1] = \"STATE_INIT\";\n /** STATE_TRYOPEN - A channel has acknowledged the handshake step on the counterparty chain. */\n State[State[\"STATE_TRYOPEN\"] = 2] = \"STATE_TRYOPEN\";\n /**\n * STATE_OPEN - A channel has completed the handshake. Open channels are\n * ready to send and receive packets.\n */\n State[State[\"STATE_OPEN\"] = 3] = \"STATE_OPEN\";\n /**\n * STATE_CLOSED - A channel has been closed and can no longer be used to send or receive\n * packets.\n */\n State[State[\"STATE_CLOSED\"] = 4] = \"STATE_CLOSED\";\n State[State[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(State || (exports.State = State = {}));\nfunction stateFromJSON(object) {\n switch (object) {\n case 0:\n case \"STATE_UNINITIALIZED_UNSPECIFIED\":\n return State.STATE_UNINITIALIZED_UNSPECIFIED;\n case 1:\n case \"STATE_INIT\":\n return State.STATE_INIT;\n case 2:\n case \"STATE_TRYOPEN\":\n return State.STATE_TRYOPEN;\n case 3:\n case \"STATE_OPEN\":\n return State.STATE_OPEN;\n case 4:\n case \"STATE_CLOSED\":\n return State.STATE_CLOSED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return State.UNRECOGNIZED;\n }\n}\nexports.stateFromJSON = stateFromJSON;\nfunction stateToJSON(object) {\n switch (object) {\n case State.STATE_UNINITIALIZED_UNSPECIFIED:\n return \"STATE_UNINITIALIZED_UNSPECIFIED\";\n case State.STATE_INIT:\n return \"STATE_INIT\";\n case State.STATE_TRYOPEN:\n return \"STATE_TRYOPEN\";\n case State.STATE_OPEN:\n return \"STATE_OPEN\";\n case State.STATE_CLOSED:\n return \"STATE_CLOSED\";\n case State.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.stateToJSON = stateToJSON;\n/** Order defines if a channel is ORDERED or UNORDERED */\nvar Order;\n(function (Order) {\n /** ORDER_NONE_UNSPECIFIED - zero-value for channel ordering */\n Order[Order[\"ORDER_NONE_UNSPECIFIED\"] = 0] = \"ORDER_NONE_UNSPECIFIED\";\n /**\n * ORDER_UNORDERED - packets can be delivered in any order, which may differ from the order in\n * which they were sent.\n */\n Order[Order[\"ORDER_UNORDERED\"] = 1] = \"ORDER_UNORDERED\";\n /** ORDER_ORDERED - packets are delivered exactly in the order which they were sent */\n Order[Order[\"ORDER_ORDERED\"] = 2] = \"ORDER_ORDERED\";\n Order[Order[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(Order || (exports.Order = Order = {}));\nfunction orderFromJSON(object) {\n switch (object) {\n case 0:\n case \"ORDER_NONE_UNSPECIFIED\":\n return Order.ORDER_NONE_UNSPECIFIED;\n case 1:\n case \"ORDER_UNORDERED\":\n return Order.ORDER_UNORDERED;\n case 2:\n case \"ORDER_ORDERED\":\n return Order.ORDER_ORDERED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return Order.UNRECOGNIZED;\n }\n}\nexports.orderFromJSON = orderFromJSON;\nfunction orderToJSON(object) {\n switch (object) {\n case Order.ORDER_NONE_UNSPECIFIED:\n return \"ORDER_NONE_UNSPECIFIED\";\n case Order.ORDER_UNORDERED:\n return \"ORDER_UNORDERED\";\n case Order.ORDER_ORDERED:\n return \"ORDER_ORDERED\";\n case Order.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.orderToJSON = orderToJSON;\nfunction createBaseChannel() {\n return {\n state: 0,\n ordering: 0,\n counterparty: exports.Counterparty.fromPartial({}),\n connectionHops: [],\n version: \"\",\n };\n}\nexports.Channel = {\n typeUrl: \"/ibc.core.channel.v1.Channel\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.state !== 0) {\n writer.uint32(8).int32(message.state);\n }\n if (message.ordering !== 0) {\n writer.uint32(16).int32(message.ordering);\n }\n if (message.counterparty !== undefined) {\n exports.Counterparty.encode(message.counterparty, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.connectionHops) {\n writer.uint32(34).string(v);\n }\n if (message.version !== \"\") {\n writer.uint32(42).string(message.version);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseChannel();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.state = reader.int32();\n break;\n case 2:\n message.ordering = reader.int32();\n break;\n case 3:\n message.counterparty = exports.Counterparty.decode(reader, reader.uint32());\n break;\n case 4:\n message.connectionHops.push(reader.string());\n break;\n case 5:\n message.version = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseChannel();\n if ((0, helpers_1.isSet)(object.state))\n obj.state = stateFromJSON(object.state);\n if ((0, helpers_1.isSet)(object.ordering))\n obj.ordering = orderFromJSON(object.ordering);\n if ((0, helpers_1.isSet)(object.counterparty))\n obj.counterparty = exports.Counterparty.fromJSON(object.counterparty);\n if (Array.isArray(object?.connectionHops))\n obj.connectionHops = object.connectionHops.map((e) => String(e));\n if ((0, helpers_1.isSet)(object.version))\n obj.version = String(object.version);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.ordering !== undefined && (obj.ordering = orderToJSON(message.ordering));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? exports.Counterparty.toJSON(message.counterparty) : undefined);\n if (message.connectionHops) {\n obj.connectionHops = message.connectionHops.map((e) => e);\n }\n else {\n obj.connectionHops = [];\n }\n message.version !== undefined && (obj.version = message.version);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseChannel();\n message.state = object.state ?? 0;\n message.ordering = object.ordering ?? 0;\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = exports.Counterparty.fromPartial(object.counterparty);\n }\n message.connectionHops = object.connectionHops?.map((e) => e) || [];\n message.version = object.version ?? \"\";\n return message;\n },\n};\nfunction createBaseIdentifiedChannel() {\n return {\n state: 0,\n ordering: 0,\n counterparty: exports.Counterparty.fromPartial({}),\n connectionHops: [],\n version: \"\",\n portId: \"\",\n channelId: \"\",\n };\n}\nexports.IdentifiedChannel = {\n typeUrl: \"/ibc.core.channel.v1.IdentifiedChannel\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.state !== 0) {\n writer.uint32(8).int32(message.state);\n }\n if (message.ordering !== 0) {\n writer.uint32(16).int32(message.ordering);\n }\n if (message.counterparty !== undefined) {\n exports.Counterparty.encode(message.counterparty, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.connectionHops) {\n writer.uint32(34).string(v);\n }\n if (message.version !== \"\") {\n writer.uint32(42).string(message.version);\n }\n if (message.portId !== \"\") {\n writer.uint32(50).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(58).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseIdentifiedChannel();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.state = reader.int32();\n break;\n case 2:\n message.ordering = reader.int32();\n break;\n case 3:\n message.counterparty = exports.Counterparty.decode(reader, reader.uint32());\n break;\n case 4:\n message.connectionHops.push(reader.string());\n break;\n case 5:\n message.version = reader.string();\n break;\n case 6:\n message.portId = reader.string();\n break;\n case 7:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseIdentifiedChannel();\n if ((0, helpers_1.isSet)(object.state))\n obj.state = stateFromJSON(object.state);\n if ((0, helpers_1.isSet)(object.ordering))\n obj.ordering = orderFromJSON(object.ordering);\n if ((0, helpers_1.isSet)(object.counterparty))\n obj.counterparty = exports.Counterparty.fromJSON(object.counterparty);\n if (Array.isArray(object?.connectionHops))\n obj.connectionHops = object.connectionHops.map((e) => String(e));\n if ((0, helpers_1.isSet)(object.version))\n obj.version = String(object.version);\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.ordering !== undefined && (obj.ordering = orderToJSON(message.ordering));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? exports.Counterparty.toJSON(message.counterparty) : undefined);\n if (message.connectionHops) {\n obj.connectionHops = message.connectionHops.map((e) => e);\n }\n else {\n obj.connectionHops = [];\n }\n message.version !== undefined && (obj.version = message.version);\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseIdentifiedChannel();\n message.state = object.state ?? 0;\n message.ordering = object.ordering ?? 0;\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = exports.Counterparty.fromPartial(object.counterparty);\n }\n message.connectionHops = object.connectionHops?.map((e) => e) || [];\n message.version = object.version ?? \"\";\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n return message;\n },\n};\nfunction createBaseCounterparty() {\n return {\n portId: \"\",\n channelId: \"\",\n };\n}\nexports.Counterparty = {\n typeUrl: \"/ibc.core.channel.v1.Counterparty\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCounterparty();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCounterparty();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCounterparty();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n return message;\n },\n};\nfunction createBasePacket() {\n return {\n sequence: BigInt(0),\n sourcePort: \"\",\n sourceChannel: \"\",\n destinationPort: \"\",\n destinationChannel: \"\",\n data: new Uint8Array(),\n timeoutHeight: client_1.Height.fromPartial({}),\n timeoutTimestamp: BigInt(0),\n };\n}\nexports.Packet = {\n typeUrl: \"/ibc.core.channel.v1.Packet\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.sequence !== BigInt(0)) {\n writer.uint32(8).uint64(message.sequence);\n }\n if (message.sourcePort !== \"\") {\n writer.uint32(18).string(message.sourcePort);\n }\n if (message.sourceChannel !== \"\") {\n writer.uint32(26).string(message.sourceChannel);\n }\n if (message.destinationPort !== \"\") {\n writer.uint32(34).string(message.destinationPort);\n }\n if (message.destinationChannel !== \"\") {\n writer.uint32(42).string(message.destinationChannel);\n }\n if (message.data.length !== 0) {\n writer.uint32(50).bytes(message.data);\n }\n if (message.timeoutHeight !== undefined) {\n client_1.Height.encode(message.timeoutHeight, writer.uint32(58).fork()).ldelim();\n }\n if (message.timeoutTimestamp !== BigInt(0)) {\n writer.uint32(64).uint64(message.timeoutTimestamp);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePacket();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sequence = reader.uint64();\n break;\n case 2:\n message.sourcePort = reader.string();\n break;\n case 3:\n message.sourceChannel = reader.string();\n break;\n case 4:\n message.destinationPort = reader.string();\n break;\n case 5:\n message.destinationChannel = reader.string();\n break;\n case 6:\n message.data = reader.bytes();\n break;\n case 7:\n message.timeoutHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 8:\n message.timeoutTimestamp = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePacket();\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n if ((0, helpers_1.isSet)(object.sourcePort))\n obj.sourcePort = String(object.sourcePort);\n if ((0, helpers_1.isSet)(object.sourceChannel))\n obj.sourceChannel = String(object.sourceChannel);\n if ((0, helpers_1.isSet)(object.destinationPort))\n obj.destinationPort = String(object.destinationPort);\n if ((0, helpers_1.isSet)(object.destinationChannel))\n obj.destinationChannel = String(object.destinationChannel);\n if ((0, helpers_1.isSet)(object.data))\n obj.data = (0, helpers_1.bytesFromBase64)(object.data);\n if ((0, helpers_1.isSet)(object.timeoutHeight))\n obj.timeoutHeight = client_1.Height.fromJSON(object.timeoutHeight);\n if ((0, helpers_1.isSet)(object.timeoutTimestamp))\n obj.timeoutTimestamp = BigInt(object.timeoutTimestamp.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n message.sourcePort !== undefined && (obj.sourcePort = message.sourcePort);\n message.sourceChannel !== undefined && (obj.sourceChannel = message.sourceChannel);\n message.destinationPort !== undefined && (obj.destinationPort = message.destinationPort);\n message.destinationChannel !== undefined && (obj.destinationChannel = message.destinationChannel);\n message.data !== undefined &&\n (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array()));\n message.timeoutHeight !== undefined &&\n (obj.timeoutHeight = message.timeoutHeight ? client_1.Height.toJSON(message.timeoutHeight) : undefined);\n message.timeoutTimestamp !== undefined &&\n (obj.timeoutTimestamp = (message.timeoutTimestamp || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBasePacket();\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n message.sourcePort = object.sourcePort ?? \"\";\n message.sourceChannel = object.sourceChannel ?? \"\";\n message.destinationPort = object.destinationPort ?? \"\";\n message.destinationChannel = object.destinationChannel ?? \"\";\n message.data = object.data ?? new Uint8Array();\n if (object.timeoutHeight !== undefined && object.timeoutHeight !== null) {\n message.timeoutHeight = client_1.Height.fromPartial(object.timeoutHeight);\n }\n if (object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null) {\n message.timeoutTimestamp = BigInt(object.timeoutTimestamp.toString());\n }\n return message;\n },\n};\nfunction createBasePacketState() {\n return {\n portId: \"\",\n channelId: \"\",\n sequence: BigInt(0),\n data: new Uint8Array(),\n };\n}\nexports.PacketState = {\n typeUrl: \"/ibc.core.channel.v1.PacketState\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.sequence !== BigInt(0)) {\n writer.uint32(24).uint64(message.sequence);\n }\n if (message.data.length !== 0) {\n writer.uint32(34).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePacketState();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n case 4:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePacketState();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n if ((0, helpers_1.isSet)(object.data))\n obj.data = (0, helpers_1.bytesFromBase64)(object.data);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n message.data !== undefined &&\n (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBasePacketState();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n message.data = object.data ?? new Uint8Array();\n return message;\n },\n};\nfunction createBasePacketId() {\n return {\n portId: \"\",\n channelId: \"\",\n sequence: BigInt(0),\n };\n}\nexports.PacketId = {\n typeUrl: \"/ibc.core.channel.v1.PacketId\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.sequence !== BigInt(0)) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePacketId();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePacketId();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBasePacketId();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n return message;\n },\n};\nfunction createBaseAcknowledgement() {\n return {\n result: undefined,\n error: undefined,\n };\n}\nexports.Acknowledgement = {\n typeUrl: \"/ibc.core.channel.v1.Acknowledgement\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.result !== undefined) {\n writer.uint32(170).bytes(message.result);\n }\n if (message.error !== undefined) {\n writer.uint32(178).string(message.error);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAcknowledgement();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 21:\n message.result = reader.bytes();\n break;\n case 22:\n message.error = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseAcknowledgement();\n if ((0, helpers_1.isSet)(object.result))\n obj.result = (0, helpers_1.bytesFromBase64)(object.result);\n if ((0, helpers_1.isSet)(object.error))\n obj.error = String(object.error);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined &&\n (obj.result = message.result !== undefined ? (0, helpers_1.base64FromBytes)(message.result) : undefined);\n message.error !== undefined && (obj.error = message.error);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseAcknowledgement();\n message.result = object.result ?? undefined;\n message.error = object.error ?? undefined;\n return message;\n },\n};\n//# sourceMappingURL=channel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryNextSequenceReceiveResponse = exports.QueryNextSequenceReceiveRequest = exports.QueryUnreceivedAcksResponse = exports.QueryUnreceivedAcksRequest = exports.QueryUnreceivedPacketsResponse = exports.QueryUnreceivedPacketsRequest = exports.QueryPacketAcknowledgementsResponse = exports.QueryPacketAcknowledgementsRequest = exports.QueryPacketAcknowledgementResponse = exports.QueryPacketAcknowledgementRequest = exports.QueryPacketReceiptResponse = exports.QueryPacketReceiptRequest = exports.QueryPacketCommitmentsResponse = exports.QueryPacketCommitmentsRequest = exports.QueryPacketCommitmentResponse = exports.QueryPacketCommitmentRequest = exports.QueryChannelConsensusStateResponse = exports.QueryChannelConsensusStateRequest = exports.QueryChannelClientStateResponse = exports.QueryChannelClientStateRequest = exports.QueryConnectionChannelsResponse = exports.QueryConnectionChannelsRequest = exports.QueryChannelsResponse = exports.QueryChannelsRequest = exports.QueryChannelResponse = exports.QueryChannelRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst pagination_1 = require(\"../../../../cosmos/base/query/v1beta1/pagination\");\nconst channel_1 = require(\"./channel\");\nconst client_1 = require(\"../../client/v1/client\");\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.core.channel.v1\";\nfunction createBaseQueryChannelRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n };\n}\nexports.QueryChannelRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryChannelRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryChannelRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryChannelRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryChannelRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryChannelResponse() {\n return {\n channel: undefined,\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryChannelResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryChannelResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.channel !== undefined) {\n channel_1.Channel.encode(message.channel, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryChannelResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.channel = channel_1.Channel.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryChannelResponse();\n if ((0, helpers_1.isSet)(object.channel))\n obj.channel = channel_1.Channel.fromJSON(object.channel);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.channel !== undefined &&\n (obj.channel = message.channel ? channel_1.Channel.toJSON(message.channel) : undefined);\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryChannelResponse();\n if (object.channel !== undefined && object.channel !== null) {\n message.channel = channel_1.Channel.fromPartial(object.channel);\n }\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryChannelsRequest() {\n return {\n pagination: undefined,\n };\n}\nexports.QueryChannelsRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryChannelsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryChannelsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryChannelsRequest();\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryChannelsRequest();\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryChannelsResponse() {\n return {\n channels: [],\n pagination: undefined,\n height: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryChannelsResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryChannelsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.channels) {\n channel_1.IdentifiedChannel.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryChannelsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.channels.push(channel_1.IdentifiedChannel.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryChannelsResponse();\n if (Array.isArray(object?.channels))\n obj.channels = object.channels.map((e) => channel_1.IdentifiedChannel.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = client_1.Height.fromJSON(object.height);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.channels) {\n obj.channels = message.channels.map((e) => (e ? channel_1.IdentifiedChannel.toJSON(e) : undefined));\n }\n else {\n obj.channels = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryChannelsResponse();\n message.channels = object.channels?.map((e) => channel_1.IdentifiedChannel.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = client_1.Height.fromPartial(object.height);\n }\n return message;\n },\n};\nfunction createBaseQueryConnectionChannelsRequest() {\n return {\n connection: \"\",\n pagination: undefined,\n };\n}\nexports.QueryConnectionChannelsRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryConnectionChannelsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.connection !== \"\") {\n writer.uint32(10).string(message.connection);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionChannelsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connection = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConnectionChannelsRequest();\n if ((0, helpers_1.isSet)(object.connection))\n obj.connection = String(object.connection);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.connection !== undefined && (obj.connection = message.connection);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConnectionChannelsRequest();\n message.connection = object.connection ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryConnectionChannelsResponse() {\n return {\n channels: [],\n pagination: undefined,\n height: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryConnectionChannelsResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryConnectionChannelsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.channels) {\n channel_1.IdentifiedChannel.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionChannelsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.channels.push(channel_1.IdentifiedChannel.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConnectionChannelsResponse();\n if (Array.isArray(object?.channels))\n obj.channels = object.channels.map((e) => channel_1.IdentifiedChannel.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = client_1.Height.fromJSON(object.height);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.channels) {\n obj.channels = message.channels.map((e) => (e ? channel_1.IdentifiedChannel.toJSON(e) : undefined));\n }\n else {\n obj.channels = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConnectionChannelsResponse();\n message.channels = object.channels?.map((e) => channel_1.IdentifiedChannel.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = client_1.Height.fromPartial(object.height);\n }\n return message;\n },\n};\nfunction createBaseQueryChannelClientStateRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n };\n}\nexports.QueryChannelClientStateRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryChannelClientStateRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryChannelClientStateRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryChannelClientStateRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryChannelClientStateRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryChannelClientStateResponse() {\n return {\n identifiedClientState: undefined,\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryChannelClientStateResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryChannelClientStateResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.identifiedClientState !== undefined) {\n client_1.IdentifiedClientState.encode(message.identifiedClientState, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryChannelClientStateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.identifiedClientState = client_1.IdentifiedClientState.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryChannelClientStateResponse();\n if ((0, helpers_1.isSet)(object.identifiedClientState))\n obj.identifiedClientState = client_1.IdentifiedClientState.fromJSON(object.identifiedClientState);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.identifiedClientState !== undefined &&\n (obj.identifiedClientState = message.identifiedClientState\n ? client_1.IdentifiedClientState.toJSON(message.identifiedClientState)\n : undefined);\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryChannelClientStateResponse();\n if (object.identifiedClientState !== undefined && object.identifiedClientState !== null) {\n message.identifiedClientState = client_1.IdentifiedClientState.fromPartial(object.identifiedClientState);\n }\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryChannelConsensusStateRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n revisionNumber: BigInt(0),\n revisionHeight: BigInt(0),\n };\n}\nexports.QueryChannelConsensusStateRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryChannelConsensusStateRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.revisionNumber !== BigInt(0)) {\n writer.uint32(24).uint64(message.revisionNumber);\n }\n if (message.revisionHeight !== BigInt(0)) {\n writer.uint32(32).uint64(message.revisionHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryChannelConsensusStateRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.revisionNumber = reader.uint64();\n break;\n case 4:\n message.revisionHeight = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryChannelConsensusStateRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.revisionNumber))\n obj.revisionNumber = BigInt(object.revisionNumber.toString());\n if ((0, helpers_1.isSet)(object.revisionHeight))\n obj.revisionHeight = BigInt(object.revisionHeight.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.revisionNumber !== undefined &&\n (obj.revisionNumber = (message.revisionNumber || BigInt(0)).toString());\n message.revisionHeight !== undefined &&\n (obj.revisionHeight = (message.revisionHeight || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryChannelConsensusStateRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n if (object.revisionNumber !== undefined && object.revisionNumber !== null) {\n message.revisionNumber = BigInt(object.revisionNumber.toString());\n }\n if (object.revisionHeight !== undefined && object.revisionHeight !== null) {\n message.revisionHeight = BigInt(object.revisionHeight.toString());\n }\n return message;\n },\n};\nfunction createBaseQueryChannelConsensusStateResponse() {\n return {\n consensusState: undefined,\n clientId: \"\",\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryChannelConsensusStateResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryChannelConsensusStateResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(10).fork()).ldelim();\n }\n if (message.clientId !== \"\") {\n writer.uint32(18).string(message.clientId);\n }\n if (message.proof.length !== 0) {\n writer.uint32(26).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryChannelConsensusStateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.clientId = reader.string();\n break;\n case 3:\n message.proof = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryChannelConsensusStateResponse();\n if ((0, helpers_1.isSet)(object.consensusState))\n obj.consensusState = any_1.Any.fromJSON(object.consensusState);\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryChannelConsensusStateResponse();\n if (object.consensusState !== undefined && object.consensusState !== null) {\n message.consensusState = any_1.Any.fromPartial(object.consensusState);\n }\n message.clientId = object.clientId ?? \"\";\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryPacketCommitmentRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n sequence: BigInt(0),\n };\n}\nexports.QueryPacketCommitmentRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryPacketCommitmentRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.sequence !== BigInt(0)) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPacketCommitmentRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryPacketCommitmentRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryPacketCommitmentRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n return message;\n },\n};\nfunction createBaseQueryPacketCommitmentResponse() {\n return {\n commitment: new Uint8Array(),\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryPacketCommitmentResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryPacketCommitmentResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.commitment.length !== 0) {\n writer.uint32(10).bytes(message.commitment);\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPacketCommitmentResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commitment = reader.bytes();\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryPacketCommitmentResponse();\n if ((0, helpers_1.isSet)(object.commitment))\n obj.commitment = (0, helpers_1.bytesFromBase64)(object.commitment);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.commitment !== undefined &&\n (obj.commitment = (0, helpers_1.base64FromBytes)(message.commitment !== undefined ? message.commitment : new Uint8Array()));\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryPacketCommitmentResponse();\n message.commitment = object.commitment ?? new Uint8Array();\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryPacketCommitmentsRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n pagination: undefined,\n };\n}\nexports.QueryPacketCommitmentsRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryPacketCommitmentsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPacketCommitmentsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryPacketCommitmentsRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryPacketCommitmentsRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryPacketCommitmentsResponse() {\n return {\n commitments: [],\n pagination: undefined,\n height: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryPacketCommitmentsResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryPacketCommitmentsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.commitments) {\n channel_1.PacketState.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPacketCommitmentsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commitments.push(channel_1.PacketState.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryPacketCommitmentsResponse();\n if (Array.isArray(object?.commitments))\n obj.commitments = object.commitments.map((e) => channel_1.PacketState.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = client_1.Height.fromJSON(object.height);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.commitments) {\n obj.commitments = message.commitments.map((e) => (e ? channel_1.PacketState.toJSON(e) : undefined));\n }\n else {\n obj.commitments = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryPacketCommitmentsResponse();\n message.commitments = object.commitments?.map((e) => channel_1.PacketState.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = client_1.Height.fromPartial(object.height);\n }\n return message;\n },\n};\nfunction createBaseQueryPacketReceiptRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n sequence: BigInt(0),\n };\n}\nexports.QueryPacketReceiptRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryPacketReceiptRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.sequence !== BigInt(0)) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPacketReceiptRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryPacketReceiptRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryPacketReceiptRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n return message;\n },\n};\nfunction createBaseQueryPacketReceiptResponse() {\n return {\n received: false,\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryPacketReceiptResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryPacketReceiptResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.received === true) {\n writer.uint32(16).bool(message.received);\n }\n if (message.proof.length !== 0) {\n writer.uint32(26).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPacketReceiptResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 2:\n message.received = reader.bool();\n break;\n case 3:\n message.proof = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryPacketReceiptResponse();\n if ((0, helpers_1.isSet)(object.received))\n obj.received = Boolean(object.received);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.received !== undefined && (obj.received = message.received);\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryPacketReceiptResponse();\n message.received = object.received ?? false;\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryPacketAcknowledgementRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n sequence: BigInt(0),\n };\n}\nexports.QueryPacketAcknowledgementRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryPacketAcknowledgementRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.sequence !== BigInt(0)) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPacketAcknowledgementRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryPacketAcknowledgementRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.sequence))\n obj.sequence = BigInt(object.sequence.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryPacketAcknowledgementRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = BigInt(object.sequence.toString());\n }\n return message;\n },\n};\nfunction createBaseQueryPacketAcknowledgementResponse() {\n return {\n acknowledgement: new Uint8Array(),\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryPacketAcknowledgementResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryPacketAcknowledgementResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.acknowledgement.length !== 0) {\n writer.uint32(10).bytes(message.acknowledgement);\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPacketAcknowledgementResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.acknowledgement = reader.bytes();\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryPacketAcknowledgementResponse();\n if ((0, helpers_1.isSet)(object.acknowledgement))\n obj.acknowledgement = (0, helpers_1.bytesFromBase64)(object.acknowledgement);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.acknowledgement !== undefined &&\n (obj.acknowledgement = (0, helpers_1.base64FromBytes)(message.acknowledgement !== undefined ? message.acknowledgement : new Uint8Array()));\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryPacketAcknowledgementResponse();\n message.acknowledgement = object.acknowledgement ?? new Uint8Array();\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryPacketAcknowledgementsRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n pagination: undefined,\n packetCommitmentSequences: [],\n };\n}\nexports.QueryPacketAcknowledgementsRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryPacketAcknowledgementsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(26).fork()).ldelim();\n }\n writer.uint32(34).fork();\n for (const v of message.packetCommitmentSequences) {\n writer.uint64(v);\n }\n writer.ldelim();\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPacketAcknowledgementsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n case 4:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.packetCommitmentSequences.push(reader.uint64());\n }\n }\n else {\n message.packetCommitmentSequences.push(reader.uint64());\n }\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryPacketAcknowledgementsRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n if (Array.isArray(object?.packetCommitmentSequences))\n obj.packetCommitmentSequences = object.packetCommitmentSequences.map((e) => BigInt(e.toString()));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n if (message.packetCommitmentSequences) {\n obj.packetCommitmentSequences = message.packetCommitmentSequences.map((e) => (e || BigInt(0)).toString());\n }\n else {\n obj.packetCommitmentSequences = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryPacketAcknowledgementsRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n message.packetCommitmentSequences =\n object.packetCommitmentSequences?.map((e) => BigInt(e.toString())) || [];\n return message;\n },\n};\nfunction createBaseQueryPacketAcknowledgementsResponse() {\n return {\n acknowledgements: [],\n pagination: undefined,\n height: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryPacketAcknowledgementsResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryPacketAcknowledgementsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.acknowledgements) {\n channel_1.PacketState.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryPacketAcknowledgementsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.acknowledgements.push(channel_1.PacketState.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryPacketAcknowledgementsResponse();\n if (Array.isArray(object?.acknowledgements))\n obj.acknowledgements = object.acknowledgements.map((e) => channel_1.PacketState.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = client_1.Height.fromJSON(object.height);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.acknowledgements) {\n obj.acknowledgements = message.acknowledgements.map((e) => (e ? channel_1.PacketState.toJSON(e) : undefined));\n }\n else {\n obj.acknowledgements = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryPacketAcknowledgementsResponse();\n message.acknowledgements = object.acknowledgements?.map((e) => channel_1.PacketState.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = client_1.Height.fromPartial(object.height);\n }\n return message;\n },\n};\nfunction createBaseQueryUnreceivedPacketsRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n packetCommitmentSequences: [],\n };\n}\nexports.QueryUnreceivedPacketsRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryUnreceivedPacketsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n writer.uint32(26).fork();\n for (const v of message.packetCommitmentSequences) {\n writer.uint64(v);\n }\n writer.ldelim();\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryUnreceivedPacketsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.packetCommitmentSequences.push(reader.uint64());\n }\n }\n else {\n message.packetCommitmentSequences.push(reader.uint64());\n }\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryUnreceivedPacketsRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if (Array.isArray(object?.packetCommitmentSequences))\n obj.packetCommitmentSequences = object.packetCommitmentSequences.map((e) => BigInt(e.toString()));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n if (message.packetCommitmentSequences) {\n obj.packetCommitmentSequences = message.packetCommitmentSequences.map((e) => (e || BigInt(0)).toString());\n }\n else {\n obj.packetCommitmentSequences = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryUnreceivedPacketsRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n message.packetCommitmentSequences =\n object.packetCommitmentSequences?.map((e) => BigInt(e.toString())) || [];\n return message;\n },\n};\nfunction createBaseQueryUnreceivedPacketsResponse() {\n return {\n sequences: [],\n height: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryUnreceivedPacketsResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryUnreceivedPacketsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n writer.uint32(10).fork();\n for (const v of message.sequences) {\n writer.uint64(v);\n }\n writer.ldelim();\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryUnreceivedPacketsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.sequences.push(reader.uint64());\n }\n }\n else {\n message.sequences.push(reader.uint64());\n }\n break;\n case 2:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryUnreceivedPacketsResponse();\n if (Array.isArray(object?.sequences))\n obj.sequences = object.sequences.map((e) => BigInt(e.toString()));\n if ((0, helpers_1.isSet)(object.height))\n obj.height = client_1.Height.fromJSON(object.height);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.sequences) {\n obj.sequences = message.sequences.map((e) => (e || BigInt(0)).toString());\n }\n else {\n obj.sequences = [];\n }\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryUnreceivedPacketsResponse();\n message.sequences = object.sequences?.map((e) => BigInt(e.toString())) || [];\n if (object.height !== undefined && object.height !== null) {\n message.height = client_1.Height.fromPartial(object.height);\n }\n return message;\n },\n};\nfunction createBaseQueryUnreceivedAcksRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n packetAckSequences: [],\n };\n}\nexports.QueryUnreceivedAcksRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryUnreceivedAcksRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n writer.uint32(26).fork();\n for (const v of message.packetAckSequences) {\n writer.uint64(v);\n }\n writer.ldelim();\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryUnreceivedAcksRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.packetAckSequences.push(reader.uint64());\n }\n }\n else {\n message.packetAckSequences.push(reader.uint64());\n }\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryUnreceivedAcksRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if (Array.isArray(object?.packetAckSequences))\n obj.packetAckSequences = object.packetAckSequences.map((e) => BigInt(e.toString()));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n if (message.packetAckSequences) {\n obj.packetAckSequences = message.packetAckSequences.map((e) => (e || BigInt(0)).toString());\n }\n else {\n obj.packetAckSequences = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryUnreceivedAcksRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n message.packetAckSequences = object.packetAckSequences?.map((e) => BigInt(e.toString())) || [];\n return message;\n },\n};\nfunction createBaseQueryUnreceivedAcksResponse() {\n return {\n sequences: [],\n height: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryUnreceivedAcksResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryUnreceivedAcksResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n writer.uint32(10).fork();\n for (const v of message.sequences) {\n writer.uint64(v);\n }\n writer.ldelim();\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryUnreceivedAcksResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.sequences.push(reader.uint64());\n }\n }\n else {\n message.sequences.push(reader.uint64());\n }\n break;\n case 2:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryUnreceivedAcksResponse();\n if (Array.isArray(object?.sequences))\n obj.sequences = object.sequences.map((e) => BigInt(e.toString()));\n if ((0, helpers_1.isSet)(object.height))\n obj.height = client_1.Height.fromJSON(object.height);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.sequences) {\n obj.sequences = message.sequences.map((e) => (e || BigInt(0)).toString());\n }\n else {\n obj.sequences = [];\n }\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryUnreceivedAcksResponse();\n message.sequences = object.sequences?.map((e) => BigInt(e.toString())) || [];\n if (object.height !== undefined && object.height !== null) {\n message.height = client_1.Height.fromPartial(object.height);\n }\n return message;\n },\n};\nfunction createBaseQueryNextSequenceReceiveRequest() {\n return {\n portId: \"\",\n channelId: \"\",\n };\n}\nexports.QueryNextSequenceReceiveRequest = {\n typeUrl: \"/ibc.core.channel.v1.QueryNextSequenceReceiveRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryNextSequenceReceiveRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryNextSequenceReceiveRequest();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryNextSequenceReceiveRequest();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryNextSequenceReceiveResponse() {\n return {\n nextSequenceReceive: BigInt(0),\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryNextSequenceReceiveResponse = {\n typeUrl: \"/ibc.core.channel.v1.QueryNextSequenceReceiveResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.nextSequenceReceive !== BigInt(0)) {\n writer.uint32(8).uint64(message.nextSequenceReceive);\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryNextSequenceReceiveResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.nextSequenceReceive = reader.uint64();\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryNextSequenceReceiveResponse();\n if ((0, helpers_1.isSet)(object.nextSequenceReceive))\n obj.nextSequenceReceive = BigInt(object.nextSequenceReceive.toString());\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.nextSequenceReceive !== undefined &&\n (obj.nextSequenceReceive = (message.nextSequenceReceive || BigInt(0)).toString());\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryNextSequenceReceiveResponse();\n if (object.nextSequenceReceive !== undefined && object.nextSequenceReceive !== null) {\n message.nextSequenceReceive = BigInt(object.nextSequenceReceive.toString());\n }\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Channel = this.Channel.bind(this);\n this.Channels = this.Channels.bind(this);\n this.ConnectionChannels = this.ConnectionChannels.bind(this);\n this.ChannelClientState = this.ChannelClientState.bind(this);\n this.ChannelConsensusState = this.ChannelConsensusState.bind(this);\n this.PacketCommitment = this.PacketCommitment.bind(this);\n this.PacketCommitments = this.PacketCommitments.bind(this);\n this.PacketReceipt = this.PacketReceipt.bind(this);\n this.PacketAcknowledgement = this.PacketAcknowledgement.bind(this);\n this.PacketAcknowledgements = this.PacketAcknowledgements.bind(this);\n this.UnreceivedPackets = this.UnreceivedPackets.bind(this);\n this.UnreceivedAcks = this.UnreceivedAcks.bind(this);\n this.NextSequenceReceive = this.NextSequenceReceive.bind(this);\n }\n Channel(request) {\n const data = exports.QueryChannelRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"Channel\", data);\n return promise.then((data) => exports.QueryChannelResponse.decode(new binary_1.BinaryReader(data)));\n }\n Channels(request = {\n pagination: pagination_1.PageRequest.fromPartial({}),\n }) {\n const data = exports.QueryChannelsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"Channels\", data);\n return promise.then((data) => exports.QueryChannelsResponse.decode(new binary_1.BinaryReader(data)));\n }\n ConnectionChannels(request) {\n const data = exports.QueryConnectionChannelsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"ConnectionChannels\", data);\n return promise.then((data) => exports.QueryConnectionChannelsResponse.decode(new binary_1.BinaryReader(data)));\n }\n ChannelClientState(request) {\n const data = exports.QueryChannelClientStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"ChannelClientState\", data);\n return promise.then((data) => exports.QueryChannelClientStateResponse.decode(new binary_1.BinaryReader(data)));\n }\n ChannelConsensusState(request) {\n const data = exports.QueryChannelConsensusStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"ChannelConsensusState\", data);\n return promise.then((data) => exports.QueryChannelConsensusStateResponse.decode(new binary_1.BinaryReader(data)));\n }\n PacketCommitment(request) {\n const data = exports.QueryPacketCommitmentRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"PacketCommitment\", data);\n return promise.then((data) => exports.QueryPacketCommitmentResponse.decode(new binary_1.BinaryReader(data)));\n }\n PacketCommitments(request) {\n const data = exports.QueryPacketCommitmentsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"PacketCommitments\", data);\n return promise.then((data) => exports.QueryPacketCommitmentsResponse.decode(new binary_1.BinaryReader(data)));\n }\n PacketReceipt(request) {\n const data = exports.QueryPacketReceiptRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"PacketReceipt\", data);\n return promise.then((data) => exports.QueryPacketReceiptResponse.decode(new binary_1.BinaryReader(data)));\n }\n PacketAcknowledgement(request) {\n const data = exports.QueryPacketAcknowledgementRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"PacketAcknowledgement\", data);\n return promise.then((data) => exports.QueryPacketAcknowledgementResponse.decode(new binary_1.BinaryReader(data)));\n }\n PacketAcknowledgements(request) {\n const data = exports.QueryPacketAcknowledgementsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"PacketAcknowledgements\", data);\n return promise.then((data) => exports.QueryPacketAcknowledgementsResponse.decode(new binary_1.BinaryReader(data)));\n }\n UnreceivedPackets(request) {\n const data = exports.QueryUnreceivedPacketsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"UnreceivedPackets\", data);\n return promise.then((data) => exports.QueryUnreceivedPacketsResponse.decode(new binary_1.BinaryReader(data)));\n }\n UnreceivedAcks(request) {\n const data = exports.QueryUnreceivedAcksRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"UnreceivedAcks\", data);\n return promise.then((data) => exports.QueryUnreceivedAcksResponse.decode(new binary_1.BinaryReader(data)));\n }\n NextSequenceReceive(request) {\n const data = exports.QueryNextSequenceReceiveRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"NextSequenceReceive\", data);\n return promise.then((data) => exports.QueryNextSequenceReceiveResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgAcknowledgementResponse = exports.MsgAcknowledgement = exports.MsgTimeoutOnCloseResponse = exports.MsgTimeoutOnClose = exports.MsgTimeoutResponse = exports.MsgTimeout = exports.MsgRecvPacketResponse = exports.MsgRecvPacket = exports.MsgChannelCloseConfirmResponse = exports.MsgChannelCloseConfirm = exports.MsgChannelCloseInitResponse = exports.MsgChannelCloseInit = exports.MsgChannelOpenConfirmResponse = exports.MsgChannelOpenConfirm = exports.MsgChannelOpenAckResponse = exports.MsgChannelOpenAck = exports.MsgChannelOpenTryResponse = exports.MsgChannelOpenTry = exports.MsgChannelOpenInitResponse = exports.MsgChannelOpenInit = exports.responseResultTypeToJSON = exports.responseResultTypeFromJSON = exports.ResponseResultType = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst channel_1 = require(\"./channel\");\nconst client_1 = require(\"../../client/v1/client\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.core.channel.v1\";\n/** ResponseResultType defines the possible outcomes of the execution of a message */\nvar ResponseResultType;\n(function (ResponseResultType) {\n /** RESPONSE_RESULT_TYPE_UNSPECIFIED - Default zero value enumeration */\n ResponseResultType[ResponseResultType[\"RESPONSE_RESULT_TYPE_UNSPECIFIED\"] = 0] = \"RESPONSE_RESULT_TYPE_UNSPECIFIED\";\n /** RESPONSE_RESULT_TYPE_NOOP - The message did not call the IBC application callbacks (because, for example, the packet had already been relayed) */\n ResponseResultType[ResponseResultType[\"RESPONSE_RESULT_TYPE_NOOP\"] = 1] = \"RESPONSE_RESULT_TYPE_NOOP\";\n /** RESPONSE_RESULT_TYPE_SUCCESS - The message was executed successfully */\n ResponseResultType[ResponseResultType[\"RESPONSE_RESULT_TYPE_SUCCESS\"] = 2] = \"RESPONSE_RESULT_TYPE_SUCCESS\";\n ResponseResultType[ResponseResultType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ResponseResultType || (exports.ResponseResultType = ResponseResultType = {}));\nfunction responseResultTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"RESPONSE_RESULT_TYPE_UNSPECIFIED\":\n return ResponseResultType.RESPONSE_RESULT_TYPE_UNSPECIFIED;\n case 1:\n case \"RESPONSE_RESULT_TYPE_NOOP\":\n return ResponseResultType.RESPONSE_RESULT_TYPE_NOOP;\n case 2:\n case \"RESPONSE_RESULT_TYPE_SUCCESS\":\n return ResponseResultType.RESPONSE_RESULT_TYPE_SUCCESS;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ResponseResultType.UNRECOGNIZED;\n }\n}\nexports.responseResultTypeFromJSON = responseResultTypeFromJSON;\nfunction responseResultTypeToJSON(object) {\n switch (object) {\n case ResponseResultType.RESPONSE_RESULT_TYPE_UNSPECIFIED:\n return \"RESPONSE_RESULT_TYPE_UNSPECIFIED\";\n case ResponseResultType.RESPONSE_RESULT_TYPE_NOOP:\n return \"RESPONSE_RESULT_TYPE_NOOP\";\n case ResponseResultType.RESPONSE_RESULT_TYPE_SUCCESS:\n return \"RESPONSE_RESULT_TYPE_SUCCESS\";\n case ResponseResultType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.responseResultTypeToJSON = responseResultTypeToJSON;\nfunction createBaseMsgChannelOpenInit() {\n return {\n portId: \"\",\n channel: channel_1.Channel.fromPartial({}),\n signer: \"\",\n };\n}\nexports.MsgChannelOpenInit = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelOpenInit\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channel !== undefined) {\n channel_1.Channel.encode(message.channel, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenInit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channel = channel_1.Channel.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgChannelOpenInit();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channel))\n obj.channel = channel_1.Channel.fromJSON(object.channel);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channel !== undefined &&\n (obj.channel = message.channel ? channel_1.Channel.toJSON(message.channel) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgChannelOpenInit();\n message.portId = object.portId ?? \"\";\n if (object.channel !== undefined && object.channel !== null) {\n message.channel = channel_1.Channel.fromPartial(object.channel);\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgChannelOpenInitResponse() {\n return {\n channelId: \"\",\n version: \"\",\n };\n}\nexports.MsgChannelOpenInitResponse = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelOpenInitResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.channelId !== \"\") {\n writer.uint32(10).string(message.channelId);\n }\n if (message.version !== \"\") {\n writer.uint32(18).string(message.version);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenInitResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.channelId = reader.string();\n break;\n case 2:\n message.version = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgChannelOpenInitResponse();\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.version))\n obj.version = String(object.version);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.version !== undefined && (obj.version = message.version);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgChannelOpenInitResponse();\n message.channelId = object.channelId ?? \"\";\n message.version = object.version ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgChannelOpenTry() {\n return {\n portId: \"\",\n previousChannelId: \"\",\n channel: channel_1.Channel.fromPartial({}),\n counterpartyVersion: \"\",\n proofInit: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n signer: \"\",\n };\n}\nexports.MsgChannelOpenTry = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelOpenTry\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.previousChannelId !== \"\") {\n writer.uint32(18).string(message.previousChannelId);\n }\n if (message.channel !== undefined) {\n channel_1.Channel.encode(message.channel, writer.uint32(26).fork()).ldelim();\n }\n if (message.counterpartyVersion !== \"\") {\n writer.uint32(34).string(message.counterpartyVersion);\n }\n if (message.proofInit.length !== 0) {\n writer.uint32(42).bytes(message.proofInit);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(50).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(58).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenTry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.previousChannelId = reader.string();\n break;\n case 3:\n message.channel = channel_1.Channel.decode(reader, reader.uint32());\n break;\n case 4:\n message.counterpartyVersion = reader.string();\n break;\n case 5:\n message.proofInit = reader.bytes();\n break;\n case 6:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 7:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgChannelOpenTry();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.previousChannelId))\n obj.previousChannelId = String(object.previousChannelId);\n if ((0, helpers_1.isSet)(object.channel))\n obj.channel = channel_1.Channel.fromJSON(object.channel);\n if ((0, helpers_1.isSet)(object.counterpartyVersion))\n obj.counterpartyVersion = String(object.counterpartyVersion);\n if ((0, helpers_1.isSet)(object.proofInit))\n obj.proofInit = (0, helpers_1.bytesFromBase64)(object.proofInit);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.previousChannelId !== undefined && (obj.previousChannelId = message.previousChannelId);\n message.channel !== undefined &&\n (obj.channel = message.channel ? channel_1.Channel.toJSON(message.channel) : undefined);\n message.counterpartyVersion !== undefined && (obj.counterpartyVersion = message.counterpartyVersion);\n message.proofInit !== undefined &&\n (obj.proofInit = (0, helpers_1.base64FromBytes)(message.proofInit !== undefined ? message.proofInit : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgChannelOpenTry();\n message.portId = object.portId ?? \"\";\n message.previousChannelId = object.previousChannelId ?? \"\";\n if (object.channel !== undefined && object.channel !== null) {\n message.channel = channel_1.Channel.fromPartial(object.channel);\n }\n message.counterpartyVersion = object.counterpartyVersion ?? \"\";\n message.proofInit = object.proofInit ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgChannelOpenTryResponse() {\n return {\n version: \"\",\n };\n}\nexports.MsgChannelOpenTryResponse = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelOpenTryResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.version !== \"\") {\n writer.uint32(10).string(message.version);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenTryResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.version = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgChannelOpenTryResponse();\n if ((0, helpers_1.isSet)(object.version))\n obj.version = String(object.version);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.version !== undefined && (obj.version = message.version);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgChannelOpenTryResponse();\n message.version = object.version ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgChannelOpenAck() {\n return {\n portId: \"\",\n channelId: \"\",\n counterpartyChannelId: \"\",\n counterpartyVersion: \"\",\n proofTry: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n signer: \"\",\n };\n}\nexports.MsgChannelOpenAck = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelOpenAck\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.counterpartyChannelId !== \"\") {\n writer.uint32(26).string(message.counterpartyChannelId);\n }\n if (message.counterpartyVersion !== \"\") {\n writer.uint32(34).string(message.counterpartyVersion);\n }\n if (message.proofTry.length !== 0) {\n writer.uint32(42).bytes(message.proofTry);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(50).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(58).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenAck();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.counterpartyChannelId = reader.string();\n break;\n case 4:\n message.counterpartyVersion = reader.string();\n break;\n case 5:\n message.proofTry = reader.bytes();\n break;\n case 6:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 7:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgChannelOpenAck();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.counterpartyChannelId))\n obj.counterpartyChannelId = String(object.counterpartyChannelId);\n if ((0, helpers_1.isSet)(object.counterpartyVersion))\n obj.counterpartyVersion = String(object.counterpartyVersion);\n if ((0, helpers_1.isSet)(object.proofTry))\n obj.proofTry = (0, helpers_1.bytesFromBase64)(object.proofTry);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.counterpartyChannelId !== undefined &&\n (obj.counterpartyChannelId = message.counterpartyChannelId);\n message.counterpartyVersion !== undefined && (obj.counterpartyVersion = message.counterpartyVersion);\n message.proofTry !== undefined &&\n (obj.proofTry = (0, helpers_1.base64FromBytes)(message.proofTry !== undefined ? message.proofTry : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgChannelOpenAck();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n message.counterpartyChannelId = object.counterpartyChannelId ?? \"\";\n message.counterpartyVersion = object.counterpartyVersion ?? \"\";\n message.proofTry = object.proofTry ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgChannelOpenAckResponse() {\n return {};\n}\nexports.MsgChannelOpenAckResponse = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelOpenAckResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenAckResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgChannelOpenAckResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgChannelOpenAckResponse();\n return message;\n },\n};\nfunction createBaseMsgChannelOpenConfirm() {\n return {\n portId: \"\",\n channelId: \"\",\n proofAck: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n signer: \"\",\n };\n}\nexports.MsgChannelOpenConfirm = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelOpenConfirm\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.proofAck.length !== 0) {\n writer.uint32(26).bytes(message.proofAck);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenConfirm();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.proofAck = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgChannelOpenConfirm();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.proofAck))\n obj.proofAck = (0, helpers_1.bytesFromBase64)(object.proofAck);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.proofAck !== undefined &&\n (obj.proofAck = (0, helpers_1.base64FromBytes)(message.proofAck !== undefined ? message.proofAck : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgChannelOpenConfirm();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n message.proofAck = object.proofAck ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgChannelOpenConfirmResponse() {\n return {};\n}\nexports.MsgChannelOpenConfirmResponse = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelOpenConfirmResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenConfirmResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgChannelOpenConfirmResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgChannelOpenConfirmResponse();\n return message;\n },\n};\nfunction createBaseMsgChannelCloseInit() {\n return {\n portId: \"\",\n channelId: \"\",\n signer: \"\",\n };\n}\nexports.MsgChannelCloseInit = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelCloseInit\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelCloseInit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgChannelCloseInit();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgChannelCloseInit();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgChannelCloseInitResponse() {\n return {};\n}\nexports.MsgChannelCloseInitResponse = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelCloseInitResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelCloseInitResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgChannelCloseInitResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgChannelCloseInitResponse();\n return message;\n },\n};\nfunction createBaseMsgChannelCloseConfirm() {\n return {\n portId: \"\",\n channelId: \"\",\n proofInit: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n signer: \"\",\n };\n}\nexports.MsgChannelCloseConfirm = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelCloseConfirm\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.proofInit.length !== 0) {\n writer.uint32(26).bytes(message.proofInit);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelCloseConfirm();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.proofInit = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgChannelCloseConfirm();\n if ((0, helpers_1.isSet)(object.portId))\n obj.portId = String(object.portId);\n if ((0, helpers_1.isSet)(object.channelId))\n obj.channelId = String(object.channelId);\n if ((0, helpers_1.isSet)(object.proofInit))\n obj.proofInit = (0, helpers_1.bytesFromBase64)(object.proofInit);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.proofInit !== undefined &&\n (obj.proofInit = (0, helpers_1.base64FromBytes)(message.proofInit !== undefined ? message.proofInit : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgChannelCloseConfirm();\n message.portId = object.portId ?? \"\";\n message.channelId = object.channelId ?? \"\";\n message.proofInit = object.proofInit ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgChannelCloseConfirmResponse() {\n return {};\n}\nexports.MsgChannelCloseConfirmResponse = {\n typeUrl: \"/ibc.core.channel.v1.MsgChannelCloseConfirmResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelCloseConfirmResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgChannelCloseConfirmResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgChannelCloseConfirmResponse();\n return message;\n },\n};\nfunction createBaseMsgRecvPacket() {\n return {\n packet: channel_1.Packet.fromPartial({}),\n proofCommitment: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n signer: \"\",\n };\n}\nexports.MsgRecvPacket = {\n typeUrl: \"/ibc.core.channel.v1.MsgRecvPacket\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.packet !== undefined) {\n channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.proofCommitment.length !== 0) {\n writer.uint32(18).bytes(message.proofCommitment);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(34).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgRecvPacket();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = channel_1.Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.proofCommitment = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 4:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgRecvPacket();\n if ((0, helpers_1.isSet)(object.packet))\n obj.packet = channel_1.Packet.fromJSON(object.packet);\n if ((0, helpers_1.isSet)(object.proofCommitment))\n obj.proofCommitment = (0, helpers_1.bytesFromBase64)(object.proofCommitment);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.packet !== undefined && (obj.packet = message.packet ? channel_1.Packet.toJSON(message.packet) : undefined);\n message.proofCommitment !== undefined &&\n (obj.proofCommitment = (0, helpers_1.base64FromBytes)(message.proofCommitment !== undefined ? message.proofCommitment : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgRecvPacket();\n if (object.packet !== undefined && object.packet !== null) {\n message.packet = channel_1.Packet.fromPartial(object.packet);\n }\n message.proofCommitment = object.proofCommitment ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgRecvPacketResponse() {\n return {\n result: 0,\n };\n}\nexports.MsgRecvPacketResponse = {\n typeUrl: \"/ibc.core.channel.v1.MsgRecvPacketResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgRecvPacketResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgRecvPacketResponse();\n if ((0, helpers_1.isSet)(object.result))\n obj.result = responseResultTypeFromJSON(object.result);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseResultTypeToJSON(message.result));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgRecvPacketResponse();\n message.result = object.result ?? 0;\n return message;\n },\n};\nfunction createBaseMsgTimeout() {\n return {\n packet: channel_1.Packet.fromPartial({}),\n proofUnreceived: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n nextSequenceRecv: BigInt(0),\n signer: \"\",\n };\n}\nexports.MsgTimeout = {\n typeUrl: \"/ibc.core.channel.v1.MsgTimeout\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.packet !== undefined) {\n channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.proofUnreceived.length !== 0) {\n writer.uint32(18).bytes(message.proofUnreceived);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n if (message.nextSequenceRecv !== BigInt(0)) {\n writer.uint32(32).uint64(message.nextSequenceRecv);\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgTimeout();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = channel_1.Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.proofUnreceived = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 4:\n message.nextSequenceRecv = reader.uint64();\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgTimeout();\n if ((0, helpers_1.isSet)(object.packet))\n obj.packet = channel_1.Packet.fromJSON(object.packet);\n if ((0, helpers_1.isSet)(object.proofUnreceived))\n obj.proofUnreceived = (0, helpers_1.bytesFromBase64)(object.proofUnreceived);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n if ((0, helpers_1.isSet)(object.nextSequenceRecv))\n obj.nextSequenceRecv = BigInt(object.nextSequenceRecv.toString());\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.packet !== undefined && (obj.packet = message.packet ? channel_1.Packet.toJSON(message.packet) : undefined);\n message.proofUnreceived !== undefined &&\n (obj.proofUnreceived = (0, helpers_1.base64FromBytes)(message.proofUnreceived !== undefined ? message.proofUnreceived : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.nextSequenceRecv !== undefined &&\n (obj.nextSequenceRecv = (message.nextSequenceRecv || BigInt(0)).toString());\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgTimeout();\n if (object.packet !== undefined && object.packet !== null) {\n message.packet = channel_1.Packet.fromPartial(object.packet);\n }\n message.proofUnreceived = object.proofUnreceived ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n if (object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null) {\n message.nextSequenceRecv = BigInt(object.nextSequenceRecv.toString());\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgTimeoutResponse() {\n return {\n result: 0,\n };\n}\nexports.MsgTimeoutResponse = {\n typeUrl: \"/ibc.core.channel.v1.MsgTimeoutResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgTimeoutResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgTimeoutResponse();\n if ((0, helpers_1.isSet)(object.result))\n obj.result = responseResultTypeFromJSON(object.result);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseResultTypeToJSON(message.result));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgTimeoutResponse();\n message.result = object.result ?? 0;\n return message;\n },\n};\nfunction createBaseMsgTimeoutOnClose() {\n return {\n packet: channel_1.Packet.fromPartial({}),\n proofUnreceived: new Uint8Array(),\n proofClose: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n nextSequenceRecv: BigInt(0),\n signer: \"\",\n };\n}\nexports.MsgTimeoutOnClose = {\n typeUrl: \"/ibc.core.channel.v1.MsgTimeoutOnClose\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.packet !== undefined) {\n channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.proofUnreceived.length !== 0) {\n writer.uint32(18).bytes(message.proofUnreceived);\n }\n if (message.proofClose.length !== 0) {\n writer.uint32(26).bytes(message.proofClose);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n if (message.nextSequenceRecv !== BigInt(0)) {\n writer.uint32(40).uint64(message.nextSequenceRecv);\n }\n if (message.signer !== \"\") {\n writer.uint32(50).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgTimeoutOnClose();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = channel_1.Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.proofUnreceived = reader.bytes();\n break;\n case 3:\n message.proofClose = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.nextSequenceRecv = reader.uint64();\n break;\n case 6:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgTimeoutOnClose();\n if ((0, helpers_1.isSet)(object.packet))\n obj.packet = channel_1.Packet.fromJSON(object.packet);\n if ((0, helpers_1.isSet)(object.proofUnreceived))\n obj.proofUnreceived = (0, helpers_1.bytesFromBase64)(object.proofUnreceived);\n if ((0, helpers_1.isSet)(object.proofClose))\n obj.proofClose = (0, helpers_1.bytesFromBase64)(object.proofClose);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n if ((0, helpers_1.isSet)(object.nextSequenceRecv))\n obj.nextSequenceRecv = BigInt(object.nextSequenceRecv.toString());\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.packet !== undefined && (obj.packet = message.packet ? channel_1.Packet.toJSON(message.packet) : undefined);\n message.proofUnreceived !== undefined &&\n (obj.proofUnreceived = (0, helpers_1.base64FromBytes)(message.proofUnreceived !== undefined ? message.proofUnreceived : new Uint8Array()));\n message.proofClose !== undefined &&\n (obj.proofClose = (0, helpers_1.base64FromBytes)(message.proofClose !== undefined ? message.proofClose : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.nextSequenceRecv !== undefined &&\n (obj.nextSequenceRecv = (message.nextSequenceRecv || BigInt(0)).toString());\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgTimeoutOnClose();\n if (object.packet !== undefined && object.packet !== null) {\n message.packet = channel_1.Packet.fromPartial(object.packet);\n }\n message.proofUnreceived = object.proofUnreceived ?? new Uint8Array();\n message.proofClose = object.proofClose ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n if (object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null) {\n message.nextSequenceRecv = BigInt(object.nextSequenceRecv.toString());\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgTimeoutOnCloseResponse() {\n return {\n result: 0,\n };\n}\nexports.MsgTimeoutOnCloseResponse = {\n typeUrl: \"/ibc.core.channel.v1.MsgTimeoutOnCloseResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgTimeoutOnCloseResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgTimeoutOnCloseResponse();\n if ((0, helpers_1.isSet)(object.result))\n obj.result = responseResultTypeFromJSON(object.result);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseResultTypeToJSON(message.result));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgTimeoutOnCloseResponse();\n message.result = object.result ?? 0;\n return message;\n },\n};\nfunction createBaseMsgAcknowledgement() {\n return {\n packet: channel_1.Packet.fromPartial({}),\n acknowledgement: new Uint8Array(),\n proofAcked: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n signer: \"\",\n };\n}\nexports.MsgAcknowledgement = {\n typeUrl: \"/ibc.core.channel.v1.MsgAcknowledgement\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.packet !== undefined) {\n channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.acknowledgement.length !== 0) {\n writer.uint32(18).bytes(message.acknowledgement);\n }\n if (message.proofAcked.length !== 0) {\n writer.uint32(26).bytes(message.proofAcked);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAcknowledgement();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = channel_1.Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.acknowledgement = reader.bytes();\n break;\n case 3:\n message.proofAcked = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgAcknowledgement();\n if ((0, helpers_1.isSet)(object.packet))\n obj.packet = channel_1.Packet.fromJSON(object.packet);\n if ((0, helpers_1.isSet)(object.acknowledgement))\n obj.acknowledgement = (0, helpers_1.bytesFromBase64)(object.acknowledgement);\n if ((0, helpers_1.isSet)(object.proofAcked))\n obj.proofAcked = (0, helpers_1.bytesFromBase64)(object.proofAcked);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.packet !== undefined && (obj.packet = message.packet ? channel_1.Packet.toJSON(message.packet) : undefined);\n message.acknowledgement !== undefined &&\n (obj.acknowledgement = (0, helpers_1.base64FromBytes)(message.acknowledgement !== undefined ? message.acknowledgement : new Uint8Array()));\n message.proofAcked !== undefined &&\n (obj.proofAcked = (0, helpers_1.base64FromBytes)(message.proofAcked !== undefined ? message.proofAcked : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgAcknowledgement();\n if (object.packet !== undefined && object.packet !== null) {\n message.packet = channel_1.Packet.fromPartial(object.packet);\n }\n message.acknowledgement = object.acknowledgement ?? new Uint8Array();\n message.proofAcked = object.proofAcked ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgAcknowledgementResponse() {\n return {\n result: 0,\n };\n}\nexports.MsgAcknowledgementResponse = {\n typeUrl: \"/ibc.core.channel.v1.MsgAcknowledgementResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAcknowledgementResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgAcknowledgementResponse();\n if ((0, helpers_1.isSet)(object.result))\n obj.result = responseResultTypeFromJSON(object.result);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseResultTypeToJSON(message.result));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgAcknowledgementResponse();\n message.result = object.result ?? 0;\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.ChannelOpenInit = this.ChannelOpenInit.bind(this);\n this.ChannelOpenTry = this.ChannelOpenTry.bind(this);\n this.ChannelOpenAck = this.ChannelOpenAck.bind(this);\n this.ChannelOpenConfirm = this.ChannelOpenConfirm.bind(this);\n this.ChannelCloseInit = this.ChannelCloseInit.bind(this);\n this.ChannelCloseConfirm = this.ChannelCloseConfirm.bind(this);\n this.RecvPacket = this.RecvPacket.bind(this);\n this.Timeout = this.Timeout.bind(this);\n this.TimeoutOnClose = this.TimeoutOnClose.bind(this);\n this.Acknowledgement = this.Acknowledgement.bind(this);\n }\n ChannelOpenInit(request) {\n const data = exports.MsgChannelOpenInit.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelOpenInit\", data);\n return promise.then((data) => exports.MsgChannelOpenInitResponse.decode(new binary_1.BinaryReader(data)));\n }\n ChannelOpenTry(request) {\n const data = exports.MsgChannelOpenTry.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelOpenTry\", data);\n return promise.then((data) => exports.MsgChannelOpenTryResponse.decode(new binary_1.BinaryReader(data)));\n }\n ChannelOpenAck(request) {\n const data = exports.MsgChannelOpenAck.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelOpenAck\", data);\n return promise.then((data) => exports.MsgChannelOpenAckResponse.decode(new binary_1.BinaryReader(data)));\n }\n ChannelOpenConfirm(request) {\n const data = exports.MsgChannelOpenConfirm.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelOpenConfirm\", data);\n return promise.then((data) => exports.MsgChannelOpenConfirmResponse.decode(new binary_1.BinaryReader(data)));\n }\n ChannelCloseInit(request) {\n const data = exports.MsgChannelCloseInit.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelCloseInit\", data);\n return promise.then((data) => exports.MsgChannelCloseInitResponse.decode(new binary_1.BinaryReader(data)));\n }\n ChannelCloseConfirm(request) {\n const data = exports.MsgChannelCloseConfirm.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelCloseConfirm\", data);\n return promise.then((data) => exports.MsgChannelCloseConfirmResponse.decode(new binary_1.BinaryReader(data)));\n }\n RecvPacket(request) {\n const data = exports.MsgRecvPacket.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"RecvPacket\", data);\n return promise.then((data) => exports.MsgRecvPacketResponse.decode(new binary_1.BinaryReader(data)));\n }\n Timeout(request) {\n const data = exports.MsgTimeout.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"Timeout\", data);\n return promise.then((data) => exports.MsgTimeoutResponse.decode(new binary_1.BinaryReader(data)));\n }\n TimeoutOnClose(request) {\n const data = exports.MsgTimeoutOnClose.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"TimeoutOnClose\", data);\n return promise.then((data) => exports.MsgTimeoutOnCloseResponse.decode(new binary_1.BinaryReader(data)));\n }\n Acknowledgement(request) {\n const data = exports.MsgAcknowledgement.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"Acknowledgement\", data);\n return promise.then((data) => exports.MsgAcknowledgementResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.Height = exports.UpgradeProposal = exports.ClientUpdateProposal = exports.ClientConsensusStates = exports.ConsensusStateWithHeight = exports.IdentifiedClientState = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst upgrade_1 = require(\"../../../../cosmos/upgrade/v1beta1/upgrade\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.core.client.v1\";\nfunction createBaseIdentifiedClientState() {\n return {\n clientId: \"\",\n clientState: undefined,\n };\n}\nexports.IdentifiedClientState = {\n typeUrl: \"/ibc.core.client.v1.IdentifiedClientState\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseIdentifiedClientState();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseIdentifiedClientState();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.clientState))\n obj.clientState = any_1.Any.fromJSON(object.clientState);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseIdentifiedClientState();\n message.clientId = object.clientId ?? \"\";\n if (object.clientState !== undefined && object.clientState !== null) {\n message.clientState = any_1.Any.fromPartial(object.clientState);\n }\n return message;\n },\n};\nfunction createBaseConsensusStateWithHeight() {\n return {\n height: exports.Height.fromPartial({}),\n consensusState: undefined,\n };\n}\nexports.ConsensusStateWithHeight = {\n typeUrl: \"/ibc.core.client.v1.ConsensusStateWithHeight\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.height !== undefined) {\n exports.Height.encode(message.height, writer.uint32(10).fork()).ldelim();\n }\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseConsensusStateWithHeight();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = exports.Height.decode(reader, reader.uint32());\n break;\n case 2:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseConsensusStateWithHeight();\n if ((0, helpers_1.isSet)(object.height))\n obj.height = exports.Height.fromJSON(object.height);\n if ((0, helpers_1.isSet)(object.consensusState))\n obj.consensusState = any_1.Any.fromJSON(object.consensusState);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = message.height ? exports.Height.toJSON(message.height) : undefined);\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseConsensusStateWithHeight();\n if (object.height !== undefined && object.height !== null) {\n message.height = exports.Height.fromPartial(object.height);\n }\n if (object.consensusState !== undefined && object.consensusState !== null) {\n message.consensusState = any_1.Any.fromPartial(object.consensusState);\n }\n return message;\n },\n};\nfunction createBaseClientConsensusStates() {\n return {\n clientId: \"\",\n consensusStates: [],\n };\n}\nexports.ClientConsensusStates = {\n typeUrl: \"/ibc.core.client.v1.ClientConsensusStates\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n for (const v of message.consensusStates) {\n exports.ConsensusStateWithHeight.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseClientConsensusStates();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.consensusStates.push(exports.ConsensusStateWithHeight.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseClientConsensusStates();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if (Array.isArray(object?.consensusStates))\n obj.consensusStates = object.consensusStates.map((e) => exports.ConsensusStateWithHeight.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n if (message.consensusStates) {\n obj.consensusStates = message.consensusStates.map((e) => e ? exports.ConsensusStateWithHeight.toJSON(e) : undefined);\n }\n else {\n obj.consensusStates = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseClientConsensusStates();\n message.clientId = object.clientId ?? \"\";\n message.consensusStates =\n object.consensusStates?.map((e) => exports.ConsensusStateWithHeight.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseClientUpdateProposal() {\n return {\n title: \"\",\n description: \"\",\n subjectClientId: \"\",\n substituteClientId: \"\",\n };\n}\nexports.ClientUpdateProposal = {\n typeUrl: \"/ibc.core.client.v1.ClientUpdateProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.subjectClientId !== \"\") {\n writer.uint32(26).string(message.subjectClientId);\n }\n if (message.substituteClientId !== \"\") {\n writer.uint32(34).string(message.substituteClientId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseClientUpdateProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.subjectClientId = reader.string();\n break;\n case 4:\n message.substituteClientId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseClientUpdateProposal();\n if ((0, helpers_1.isSet)(object.title))\n obj.title = String(object.title);\n if ((0, helpers_1.isSet)(object.description))\n obj.description = String(object.description);\n if ((0, helpers_1.isSet)(object.subjectClientId))\n obj.subjectClientId = String(object.subjectClientId);\n if ((0, helpers_1.isSet)(object.substituteClientId))\n obj.substituteClientId = String(object.substituteClientId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.subjectClientId !== undefined && (obj.subjectClientId = message.subjectClientId);\n message.substituteClientId !== undefined && (obj.substituteClientId = message.substituteClientId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseClientUpdateProposal();\n message.title = object.title ?? \"\";\n message.description = object.description ?? \"\";\n message.subjectClientId = object.subjectClientId ?? \"\";\n message.substituteClientId = object.substituteClientId ?? \"\";\n return message;\n },\n};\nfunction createBaseUpgradeProposal() {\n return {\n title: \"\",\n description: \"\",\n plan: upgrade_1.Plan.fromPartial({}),\n upgradedClientState: undefined,\n };\n}\nexports.UpgradeProposal = {\n typeUrl: \"/ibc.core.client.v1.UpgradeProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.plan !== undefined) {\n upgrade_1.Plan.encode(message.plan, writer.uint32(26).fork()).ldelim();\n }\n if (message.upgradedClientState !== undefined) {\n any_1.Any.encode(message.upgradedClientState, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseUpgradeProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.plan = upgrade_1.Plan.decode(reader, reader.uint32());\n break;\n case 4:\n message.upgradedClientState = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseUpgradeProposal();\n if ((0, helpers_1.isSet)(object.title))\n obj.title = String(object.title);\n if ((0, helpers_1.isSet)(object.description))\n obj.description = String(object.description);\n if ((0, helpers_1.isSet)(object.plan))\n obj.plan = upgrade_1.Plan.fromJSON(object.plan);\n if ((0, helpers_1.isSet)(object.upgradedClientState))\n obj.upgradedClientState = any_1.Any.fromJSON(object.upgradedClientState);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.plan !== undefined && (obj.plan = message.plan ? upgrade_1.Plan.toJSON(message.plan) : undefined);\n message.upgradedClientState !== undefined &&\n (obj.upgradedClientState = message.upgradedClientState\n ? any_1.Any.toJSON(message.upgradedClientState)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseUpgradeProposal();\n message.title = object.title ?? \"\";\n message.description = object.description ?? \"\";\n if (object.plan !== undefined && object.plan !== null) {\n message.plan = upgrade_1.Plan.fromPartial(object.plan);\n }\n if (object.upgradedClientState !== undefined && object.upgradedClientState !== null) {\n message.upgradedClientState = any_1.Any.fromPartial(object.upgradedClientState);\n }\n return message;\n },\n};\nfunction createBaseHeight() {\n return {\n revisionNumber: BigInt(0),\n revisionHeight: BigInt(0),\n };\n}\nexports.Height = {\n typeUrl: \"/ibc.core.client.v1.Height\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.revisionNumber !== BigInt(0)) {\n writer.uint32(8).uint64(message.revisionNumber);\n }\n if (message.revisionHeight !== BigInt(0)) {\n writer.uint32(16).uint64(message.revisionHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHeight();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.revisionNumber = reader.uint64();\n break;\n case 2:\n message.revisionHeight = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseHeight();\n if ((0, helpers_1.isSet)(object.revisionNumber))\n obj.revisionNumber = BigInt(object.revisionNumber.toString());\n if ((0, helpers_1.isSet)(object.revisionHeight))\n obj.revisionHeight = BigInt(object.revisionHeight.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.revisionNumber !== undefined &&\n (obj.revisionNumber = (message.revisionNumber || BigInt(0)).toString());\n message.revisionHeight !== undefined &&\n (obj.revisionHeight = (message.revisionHeight || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseHeight();\n if (object.revisionNumber !== undefined && object.revisionNumber !== null) {\n message.revisionNumber = BigInt(object.revisionNumber.toString());\n }\n if (object.revisionHeight !== undefined && object.revisionHeight !== null) {\n message.revisionHeight = BigInt(object.revisionHeight.toString());\n }\n return message;\n },\n};\nfunction createBaseParams() {\n return {\n allowedClients: [],\n };\n}\nexports.Params = {\n typeUrl: \"/ibc.core.client.v1.Params\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.allowedClients) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.allowedClients.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseParams();\n if (Array.isArray(object?.allowedClients))\n obj.allowedClients = object.allowedClients.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.allowedClients) {\n obj.allowedClients = message.allowedClients.map((e) => e);\n }\n else {\n obj.allowedClients = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseParams();\n message.allowedClients = object.allowedClients?.map((e) => e) || [];\n return message;\n },\n};\n//# sourceMappingURL=client.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryUpgradedConsensusStateResponse = exports.QueryUpgradedConsensusStateRequest = exports.QueryUpgradedClientStateResponse = exports.QueryUpgradedClientStateRequest = exports.QueryClientParamsResponse = exports.QueryClientParamsRequest = exports.QueryClientStatusResponse = exports.QueryClientStatusRequest = exports.QueryConsensusStateHeightsResponse = exports.QueryConsensusStateHeightsRequest = exports.QueryConsensusStatesResponse = exports.QueryConsensusStatesRequest = exports.QueryConsensusStateResponse = exports.QueryConsensusStateRequest = exports.QueryClientStatesResponse = exports.QueryClientStatesRequest = exports.QueryClientStateResponse = exports.QueryClientStateRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst pagination_1 = require(\"../../../../cosmos/base/query/v1beta1/pagination\");\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst client_1 = require(\"./client\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.core.client.v1\";\nfunction createBaseQueryClientStateRequest() {\n return {\n clientId: \"\",\n };\n}\nexports.QueryClientStateRequest = {\n typeUrl: \"/ibc.core.client.v1.QueryClientStateRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryClientStateRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryClientStateRequest();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryClientStateRequest();\n message.clientId = object.clientId ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryClientStateResponse() {\n return {\n clientState: undefined,\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryClientStateResponse = {\n typeUrl: \"/ibc.core.client.v1.QueryClientStateResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryClientStateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryClientStateResponse();\n if ((0, helpers_1.isSet)(object.clientState))\n obj.clientState = any_1.Any.fromJSON(object.clientState);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryClientStateResponse();\n if (object.clientState !== undefined && object.clientState !== null) {\n message.clientState = any_1.Any.fromPartial(object.clientState);\n }\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryClientStatesRequest() {\n return {\n pagination: undefined,\n };\n}\nexports.QueryClientStatesRequest = {\n typeUrl: \"/ibc.core.client.v1.QueryClientStatesRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryClientStatesRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryClientStatesRequest();\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryClientStatesRequest();\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryClientStatesResponse() {\n return {\n clientStates: [],\n pagination: undefined,\n };\n}\nexports.QueryClientStatesResponse = {\n typeUrl: \"/ibc.core.client.v1.QueryClientStatesResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.clientStates) {\n client_1.IdentifiedClientState.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryClientStatesResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientStates.push(client_1.IdentifiedClientState.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryClientStatesResponse();\n if (Array.isArray(object?.clientStates))\n obj.clientStates = object.clientStates.map((e) => client_1.IdentifiedClientState.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.clientStates) {\n obj.clientStates = message.clientStates.map((e) => (e ? client_1.IdentifiedClientState.toJSON(e) : undefined));\n }\n else {\n obj.clientStates = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryClientStatesResponse();\n message.clientStates = object.clientStates?.map((e) => client_1.IdentifiedClientState.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryConsensusStateRequest() {\n return {\n clientId: \"\",\n revisionNumber: BigInt(0),\n revisionHeight: BigInt(0),\n latestHeight: false,\n };\n}\nexports.QueryConsensusStateRequest = {\n typeUrl: \"/ibc.core.client.v1.QueryConsensusStateRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.revisionNumber !== BigInt(0)) {\n writer.uint32(16).uint64(message.revisionNumber);\n }\n if (message.revisionHeight !== BigInt(0)) {\n writer.uint32(24).uint64(message.revisionHeight);\n }\n if (message.latestHeight === true) {\n writer.uint32(32).bool(message.latestHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConsensusStateRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.revisionNumber = reader.uint64();\n break;\n case 3:\n message.revisionHeight = reader.uint64();\n break;\n case 4:\n message.latestHeight = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConsensusStateRequest();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.revisionNumber))\n obj.revisionNumber = BigInt(object.revisionNumber.toString());\n if ((0, helpers_1.isSet)(object.revisionHeight))\n obj.revisionHeight = BigInt(object.revisionHeight.toString());\n if ((0, helpers_1.isSet)(object.latestHeight))\n obj.latestHeight = Boolean(object.latestHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.revisionNumber !== undefined &&\n (obj.revisionNumber = (message.revisionNumber || BigInt(0)).toString());\n message.revisionHeight !== undefined &&\n (obj.revisionHeight = (message.revisionHeight || BigInt(0)).toString());\n message.latestHeight !== undefined && (obj.latestHeight = message.latestHeight);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConsensusStateRequest();\n message.clientId = object.clientId ?? \"\";\n if (object.revisionNumber !== undefined && object.revisionNumber !== null) {\n message.revisionNumber = BigInt(object.revisionNumber.toString());\n }\n if (object.revisionHeight !== undefined && object.revisionHeight !== null) {\n message.revisionHeight = BigInt(object.revisionHeight.toString());\n }\n message.latestHeight = object.latestHeight ?? false;\n return message;\n },\n};\nfunction createBaseQueryConsensusStateResponse() {\n return {\n consensusState: undefined,\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryConsensusStateResponse = {\n typeUrl: \"/ibc.core.client.v1.QueryConsensusStateResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConsensusStateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConsensusStateResponse();\n if ((0, helpers_1.isSet)(object.consensusState))\n obj.consensusState = any_1.Any.fromJSON(object.consensusState);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConsensusStateResponse();\n if (object.consensusState !== undefined && object.consensusState !== null) {\n message.consensusState = any_1.Any.fromPartial(object.consensusState);\n }\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryConsensusStatesRequest() {\n return {\n clientId: \"\",\n pagination: undefined,\n };\n}\nexports.QueryConsensusStatesRequest = {\n typeUrl: \"/ibc.core.client.v1.QueryConsensusStatesRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConsensusStatesRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConsensusStatesRequest();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConsensusStatesRequest();\n message.clientId = object.clientId ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryConsensusStatesResponse() {\n return {\n consensusStates: [],\n pagination: undefined,\n };\n}\nexports.QueryConsensusStatesResponse = {\n typeUrl: \"/ibc.core.client.v1.QueryConsensusStatesResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.consensusStates) {\n client_1.ConsensusStateWithHeight.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConsensusStatesResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusStates.push(client_1.ConsensusStateWithHeight.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConsensusStatesResponse();\n if (Array.isArray(object?.consensusStates))\n obj.consensusStates = object.consensusStates.map((e) => client_1.ConsensusStateWithHeight.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.consensusStates) {\n obj.consensusStates = message.consensusStates.map((e) => e ? client_1.ConsensusStateWithHeight.toJSON(e) : undefined);\n }\n else {\n obj.consensusStates = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConsensusStatesResponse();\n message.consensusStates =\n object.consensusStates?.map((e) => client_1.ConsensusStateWithHeight.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryConsensusStateHeightsRequest() {\n return {\n clientId: \"\",\n pagination: undefined,\n };\n}\nexports.QueryConsensusStateHeightsRequest = {\n typeUrl: \"/ibc.core.client.v1.QueryConsensusStateHeightsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConsensusStateHeightsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConsensusStateHeightsRequest();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConsensusStateHeightsRequest();\n message.clientId = object.clientId ?? \"\";\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryConsensusStateHeightsResponse() {\n return {\n consensusStateHeights: [],\n pagination: undefined,\n };\n}\nexports.QueryConsensusStateHeightsResponse = {\n typeUrl: \"/ibc.core.client.v1.QueryConsensusStateHeightsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.consensusStateHeights) {\n client_1.Height.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConsensusStateHeightsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusStateHeights.push(client_1.Height.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConsensusStateHeightsResponse();\n if (Array.isArray(object?.consensusStateHeights))\n obj.consensusStateHeights = object.consensusStateHeights.map((e) => client_1.Height.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.consensusStateHeights) {\n obj.consensusStateHeights = message.consensusStateHeights.map((e) => e ? client_1.Height.toJSON(e) : undefined);\n }\n else {\n obj.consensusStateHeights = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConsensusStateHeightsResponse();\n message.consensusStateHeights = object.consensusStateHeights?.map((e) => client_1.Height.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryClientStatusRequest() {\n return {\n clientId: \"\",\n };\n}\nexports.QueryClientStatusRequest = {\n typeUrl: \"/ibc.core.client.v1.QueryClientStatusRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryClientStatusRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryClientStatusRequest();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryClientStatusRequest();\n message.clientId = object.clientId ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryClientStatusResponse() {\n return {\n status: \"\",\n };\n}\nexports.QueryClientStatusResponse = {\n typeUrl: \"/ibc.core.client.v1.QueryClientStatusResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.status !== \"\") {\n writer.uint32(10).string(message.status);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryClientStatusResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.status = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryClientStatusResponse();\n if ((0, helpers_1.isSet)(object.status))\n obj.status = String(object.status);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.status !== undefined && (obj.status = message.status);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryClientStatusResponse();\n message.status = object.status ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryClientParamsRequest() {\n return {};\n}\nexports.QueryClientParamsRequest = {\n typeUrl: \"/ibc.core.client.v1.QueryClientParamsRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryClientParamsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryClientParamsRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryClientParamsRequest();\n return message;\n },\n};\nfunction createBaseQueryClientParamsResponse() {\n return {\n params: undefined,\n };\n}\nexports.QueryClientParamsResponse = {\n typeUrl: \"/ibc.core.client.v1.QueryClientParamsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.params !== undefined) {\n client_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryClientParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = client_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryClientParamsResponse();\n if ((0, helpers_1.isSet)(object.params))\n obj.params = client_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? client_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryClientParamsResponse();\n if (object.params !== undefined && object.params !== null) {\n message.params = client_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nfunction createBaseQueryUpgradedClientStateRequest() {\n return {};\n}\nexports.QueryUpgradedClientStateRequest = {\n typeUrl: \"/ibc.core.client.v1.QueryUpgradedClientStateRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryUpgradedClientStateRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryUpgradedClientStateRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryUpgradedClientStateRequest();\n return message;\n },\n};\nfunction createBaseQueryUpgradedClientStateResponse() {\n return {\n upgradedClientState: undefined,\n };\n}\nexports.QueryUpgradedClientStateResponse = {\n typeUrl: \"/ibc.core.client.v1.QueryUpgradedClientStateResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.upgradedClientState !== undefined) {\n any_1.Any.encode(message.upgradedClientState, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryUpgradedClientStateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.upgradedClientState = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryUpgradedClientStateResponse();\n if ((0, helpers_1.isSet)(object.upgradedClientState))\n obj.upgradedClientState = any_1.Any.fromJSON(object.upgradedClientState);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.upgradedClientState !== undefined &&\n (obj.upgradedClientState = message.upgradedClientState\n ? any_1.Any.toJSON(message.upgradedClientState)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryUpgradedClientStateResponse();\n if (object.upgradedClientState !== undefined && object.upgradedClientState !== null) {\n message.upgradedClientState = any_1.Any.fromPartial(object.upgradedClientState);\n }\n return message;\n },\n};\nfunction createBaseQueryUpgradedConsensusStateRequest() {\n return {};\n}\nexports.QueryUpgradedConsensusStateRequest = {\n typeUrl: \"/ibc.core.client.v1.QueryUpgradedConsensusStateRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryUpgradedConsensusStateRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryUpgradedConsensusStateRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryUpgradedConsensusStateRequest();\n return message;\n },\n};\nfunction createBaseQueryUpgradedConsensusStateResponse() {\n return {\n upgradedConsensusState: undefined,\n };\n}\nexports.QueryUpgradedConsensusStateResponse = {\n typeUrl: \"/ibc.core.client.v1.QueryUpgradedConsensusStateResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.upgradedConsensusState !== undefined) {\n any_1.Any.encode(message.upgradedConsensusState, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryUpgradedConsensusStateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.upgradedConsensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryUpgradedConsensusStateResponse();\n if ((0, helpers_1.isSet)(object.upgradedConsensusState))\n obj.upgradedConsensusState = any_1.Any.fromJSON(object.upgradedConsensusState);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.upgradedConsensusState !== undefined &&\n (obj.upgradedConsensusState = message.upgradedConsensusState\n ? any_1.Any.toJSON(message.upgradedConsensusState)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryUpgradedConsensusStateResponse();\n if (object.upgradedConsensusState !== undefined && object.upgradedConsensusState !== null) {\n message.upgradedConsensusState = any_1.Any.fromPartial(object.upgradedConsensusState);\n }\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.ClientState = this.ClientState.bind(this);\n this.ClientStates = this.ClientStates.bind(this);\n this.ConsensusState = this.ConsensusState.bind(this);\n this.ConsensusStates = this.ConsensusStates.bind(this);\n this.ConsensusStateHeights = this.ConsensusStateHeights.bind(this);\n this.ClientStatus = this.ClientStatus.bind(this);\n this.ClientParams = this.ClientParams.bind(this);\n this.UpgradedClientState = this.UpgradedClientState.bind(this);\n this.UpgradedConsensusState = this.UpgradedConsensusState.bind(this);\n }\n ClientState(request) {\n const data = exports.QueryClientStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ClientState\", data);\n return promise.then((data) => exports.QueryClientStateResponse.decode(new binary_1.BinaryReader(data)));\n }\n ClientStates(request = {\n pagination: pagination_1.PageRequest.fromPartial({}),\n }) {\n const data = exports.QueryClientStatesRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ClientStates\", data);\n return promise.then((data) => exports.QueryClientStatesResponse.decode(new binary_1.BinaryReader(data)));\n }\n ConsensusState(request) {\n const data = exports.QueryConsensusStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ConsensusState\", data);\n return promise.then((data) => exports.QueryConsensusStateResponse.decode(new binary_1.BinaryReader(data)));\n }\n ConsensusStates(request) {\n const data = exports.QueryConsensusStatesRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ConsensusStates\", data);\n return promise.then((data) => exports.QueryConsensusStatesResponse.decode(new binary_1.BinaryReader(data)));\n }\n ConsensusStateHeights(request) {\n const data = exports.QueryConsensusStateHeightsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ConsensusStateHeights\", data);\n return promise.then((data) => exports.QueryConsensusStateHeightsResponse.decode(new binary_1.BinaryReader(data)));\n }\n ClientStatus(request) {\n const data = exports.QueryClientStatusRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ClientStatus\", data);\n return promise.then((data) => exports.QueryClientStatusResponse.decode(new binary_1.BinaryReader(data)));\n }\n ClientParams(request = {}) {\n const data = exports.QueryClientParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ClientParams\", data);\n return promise.then((data) => exports.QueryClientParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpgradedClientState(request = {}) {\n const data = exports.QueryUpgradedClientStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"UpgradedClientState\", data);\n return promise.then((data) => exports.QueryUpgradedClientStateResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpgradedConsensusState(request = {}) {\n const data = exports.QueryUpgradedConsensusStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"UpgradedConsensusState\", data);\n return promise.then((data) => exports.QueryUpgradedConsensusStateResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgSubmitMisbehaviourResponse = exports.MsgSubmitMisbehaviour = exports.MsgUpgradeClientResponse = exports.MsgUpgradeClient = exports.MsgUpdateClientResponse = exports.MsgUpdateClient = exports.MsgCreateClientResponse = exports.MsgCreateClient = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.core.client.v1\";\nfunction createBaseMsgCreateClient() {\n return {\n clientState: undefined,\n consensusState: undefined,\n signer: \"\",\n };\n}\nexports.MsgCreateClient = {\n typeUrl: \"/ibc.core.client.v1.MsgCreateClient\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(10).fork()).ldelim();\n }\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateClient();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgCreateClient();\n if ((0, helpers_1.isSet)(object.clientState))\n obj.clientState = any_1.Any.fromJSON(object.clientState);\n if ((0, helpers_1.isSet)(object.consensusState))\n obj.consensusState = any_1.Any.fromJSON(object.consensusState);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgCreateClient();\n if (object.clientState !== undefined && object.clientState !== null) {\n message.clientState = any_1.Any.fromPartial(object.clientState);\n }\n if (object.consensusState !== undefined && object.consensusState !== null) {\n message.consensusState = any_1.Any.fromPartial(object.consensusState);\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgCreateClientResponse() {\n return {};\n}\nexports.MsgCreateClientResponse = {\n typeUrl: \"/ibc.core.client.v1.MsgCreateClientResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateClientResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgCreateClientResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgCreateClientResponse();\n return message;\n },\n};\nfunction createBaseMsgUpdateClient() {\n return {\n clientId: \"\",\n clientMessage: undefined,\n signer: \"\",\n };\n}\nexports.MsgUpdateClient = {\n typeUrl: \"/ibc.core.client.v1.MsgUpdateClient\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.clientMessage !== undefined) {\n any_1.Any.encode(message.clientMessage, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateClient();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.clientMessage = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpdateClient();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.clientMessage))\n obj.clientMessage = any_1.Any.fromJSON(object.clientMessage);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.clientMessage !== undefined &&\n (obj.clientMessage = message.clientMessage ? any_1.Any.toJSON(message.clientMessage) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpdateClient();\n message.clientId = object.clientId ?? \"\";\n if (object.clientMessage !== undefined && object.clientMessage !== null) {\n message.clientMessage = any_1.Any.fromPartial(object.clientMessage);\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgUpdateClientResponse() {\n return {};\n}\nexports.MsgUpdateClientResponse = {\n typeUrl: \"/ibc.core.client.v1.MsgUpdateClientResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateClientResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpdateClientResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpdateClientResponse();\n return message;\n },\n};\nfunction createBaseMsgUpgradeClient() {\n return {\n clientId: \"\",\n clientState: undefined,\n consensusState: undefined,\n proofUpgradeClient: new Uint8Array(),\n proofUpgradeConsensusState: new Uint8Array(),\n signer: \"\",\n };\n}\nexports.MsgUpgradeClient = {\n typeUrl: \"/ibc.core.client.v1.MsgUpgradeClient\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(18).fork()).ldelim();\n }\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(26).fork()).ldelim();\n }\n if (message.proofUpgradeClient.length !== 0) {\n writer.uint32(34).bytes(message.proofUpgradeClient);\n }\n if (message.proofUpgradeConsensusState.length !== 0) {\n writer.uint32(42).bytes(message.proofUpgradeConsensusState);\n }\n if (message.signer !== \"\") {\n writer.uint32(50).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpgradeClient();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 4:\n message.proofUpgradeClient = reader.bytes();\n break;\n case 5:\n message.proofUpgradeConsensusState = reader.bytes();\n break;\n case 6:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgUpgradeClient();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.clientState))\n obj.clientState = any_1.Any.fromJSON(object.clientState);\n if ((0, helpers_1.isSet)(object.consensusState))\n obj.consensusState = any_1.Any.fromJSON(object.consensusState);\n if ((0, helpers_1.isSet)(object.proofUpgradeClient))\n obj.proofUpgradeClient = (0, helpers_1.bytesFromBase64)(object.proofUpgradeClient);\n if ((0, helpers_1.isSet)(object.proofUpgradeConsensusState))\n obj.proofUpgradeConsensusState = (0, helpers_1.bytesFromBase64)(object.proofUpgradeConsensusState);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n message.proofUpgradeClient !== undefined &&\n (obj.proofUpgradeClient = (0, helpers_1.base64FromBytes)(message.proofUpgradeClient !== undefined ? message.proofUpgradeClient : new Uint8Array()));\n message.proofUpgradeConsensusState !== undefined &&\n (obj.proofUpgradeConsensusState = (0, helpers_1.base64FromBytes)(message.proofUpgradeConsensusState !== undefined\n ? message.proofUpgradeConsensusState\n : new Uint8Array()));\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgUpgradeClient();\n message.clientId = object.clientId ?? \"\";\n if (object.clientState !== undefined && object.clientState !== null) {\n message.clientState = any_1.Any.fromPartial(object.clientState);\n }\n if (object.consensusState !== undefined && object.consensusState !== null) {\n message.consensusState = any_1.Any.fromPartial(object.consensusState);\n }\n message.proofUpgradeClient = object.proofUpgradeClient ?? new Uint8Array();\n message.proofUpgradeConsensusState = object.proofUpgradeConsensusState ?? new Uint8Array();\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgUpgradeClientResponse() {\n return {};\n}\nexports.MsgUpgradeClientResponse = {\n typeUrl: \"/ibc.core.client.v1.MsgUpgradeClientResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpgradeClientResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgUpgradeClientResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgUpgradeClientResponse();\n return message;\n },\n};\nfunction createBaseMsgSubmitMisbehaviour() {\n return {\n clientId: \"\",\n misbehaviour: undefined,\n signer: \"\",\n };\n}\nexports.MsgSubmitMisbehaviour = {\n typeUrl: \"/ibc.core.client.v1.MsgSubmitMisbehaviour\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.misbehaviour !== undefined) {\n any_1.Any.encode(message.misbehaviour, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubmitMisbehaviour();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.misbehaviour = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgSubmitMisbehaviour();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.misbehaviour))\n obj.misbehaviour = any_1.Any.fromJSON(object.misbehaviour);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.misbehaviour !== undefined &&\n (obj.misbehaviour = message.misbehaviour ? any_1.Any.toJSON(message.misbehaviour) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgSubmitMisbehaviour();\n message.clientId = object.clientId ?? \"\";\n if (object.misbehaviour !== undefined && object.misbehaviour !== null) {\n message.misbehaviour = any_1.Any.fromPartial(object.misbehaviour);\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgSubmitMisbehaviourResponse() {\n return {};\n}\nexports.MsgSubmitMisbehaviourResponse = {\n typeUrl: \"/ibc.core.client.v1.MsgSubmitMisbehaviourResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubmitMisbehaviourResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgSubmitMisbehaviourResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgSubmitMisbehaviourResponse();\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.CreateClient = this.CreateClient.bind(this);\n this.UpdateClient = this.UpdateClient.bind(this);\n this.UpgradeClient = this.UpgradeClient.bind(this);\n this.SubmitMisbehaviour = this.SubmitMisbehaviour.bind(this);\n }\n CreateClient(request) {\n const data = exports.MsgCreateClient.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Msg\", \"CreateClient\", data);\n return promise.then((data) => exports.MsgCreateClientResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpdateClient(request) {\n const data = exports.MsgUpdateClient.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Msg\", \"UpdateClient\", data);\n return promise.then((data) => exports.MsgUpdateClientResponse.decode(new binary_1.BinaryReader(data)));\n }\n UpgradeClient(request) {\n const data = exports.MsgUpgradeClient.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Msg\", \"UpgradeClient\", data);\n return promise.then((data) => exports.MsgUpgradeClientResponse.decode(new binary_1.BinaryReader(data)));\n }\n SubmitMisbehaviour(request) {\n const data = exports.MsgSubmitMisbehaviour.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Msg\", \"SubmitMisbehaviour\", data);\n return promise.then((data) => exports.MsgSubmitMisbehaviourResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MerkleProof = exports.MerklePath = exports.MerklePrefix = exports.MerkleRoot = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst proofs_1 = require(\"../../../../cosmos/ics23/v1/proofs\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.core.commitment.v1\";\nfunction createBaseMerkleRoot() {\n return {\n hash: new Uint8Array(),\n };\n}\nexports.MerkleRoot = {\n typeUrl: \"/ibc.core.commitment.v1.MerkleRoot\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.hash.length !== 0) {\n writer.uint32(10).bytes(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMerkleRoot();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMerkleRoot();\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = (0, helpers_1.bytesFromBase64)(object.hash);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined &&\n (obj.hash = (0, helpers_1.base64FromBytes)(message.hash !== undefined ? message.hash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMerkleRoot();\n message.hash = object.hash ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseMerklePrefix() {\n return {\n keyPrefix: new Uint8Array(),\n };\n}\nexports.MerklePrefix = {\n typeUrl: \"/ibc.core.commitment.v1.MerklePrefix\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.keyPrefix.length !== 0) {\n writer.uint32(10).bytes(message.keyPrefix);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMerklePrefix();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.keyPrefix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMerklePrefix();\n if ((0, helpers_1.isSet)(object.keyPrefix))\n obj.keyPrefix = (0, helpers_1.bytesFromBase64)(object.keyPrefix);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.keyPrefix !== undefined &&\n (obj.keyPrefix = (0, helpers_1.base64FromBytes)(message.keyPrefix !== undefined ? message.keyPrefix : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMerklePrefix();\n message.keyPrefix = object.keyPrefix ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseMerklePath() {\n return {\n keyPath: [],\n };\n}\nexports.MerklePath = {\n typeUrl: \"/ibc.core.commitment.v1.MerklePath\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.keyPath) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMerklePath();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.keyPath.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMerklePath();\n if (Array.isArray(object?.keyPath))\n obj.keyPath = object.keyPath.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.keyPath) {\n obj.keyPath = message.keyPath.map((e) => e);\n }\n else {\n obj.keyPath = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMerklePath();\n message.keyPath = object.keyPath?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseMerkleProof() {\n return {\n proofs: [],\n };\n}\nexports.MerkleProof = {\n typeUrl: \"/ibc.core.commitment.v1.MerkleProof\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.proofs) {\n proofs_1.CommitmentProof.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMerkleProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proofs.push(proofs_1.CommitmentProof.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMerkleProof();\n if (Array.isArray(object?.proofs))\n obj.proofs = object.proofs.map((e) => proofs_1.CommitmentProof.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.proofs) {\n obj.proofs = message.proofs.map((e) => (e ? proofs_1.CommitmentProof.toJSON(e) : undefined));\n }\n else {\n obj.proofs = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMerkleProof();\n message.proofs = object.proofs?.map((e) => proofs_1.CommitmentProof.fromPartial(e)) || [];\n return message;\n },\n};\n//# sourceMappingURL=commitment.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.Version = exports.ConnectionPaths = exports.ClientPaths = exports.Counterparty = exports.IdentifiedConnection = exports.ConnectionEnd = exports.stateToJSON = exports.stateFromJSON = exports.State = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst commitment_1 = require(\"../../commitment/v1/commitment\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.core.connection.v1\";\n/**\n * State defines if a connection is in one of the following states:\n * INIT, TRYOPEN, OPEN or UNINITIALIZED.\n */\nvar State;\n(function (State) {\n /** STATE_UNINITIALIZED_UNSPECIFIED - Default State */\n State[State[\"STATE_UNINITIALIZED_UNSPECIFIED\"] = 0] = \"STATE_UNINITIALIZED_UNSPECIFIED\";\n /** STATE_INIT - A connection end has just started the opening handshake. */\n State[State[\"STATE_INIT\"] = 1] = \"STATE_INIT\";\n /**\n * STATE_TRYOPEN - A connection end has acknowledged the handshake step on the counterparty\n * chain.\n */\n State[State[\"STATE_TRYOPEN\"] = 2] = \"STATE_TRYOPEN\";\n /** STATE_OPEN - A connection end has completed the handshake. */\n State[State[\"STATE_OPEN\"] = 3] = \"STATE_OPEN\";\n State[State[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(State || (exports.State = State = {}));\nfunction stateFromJSON(object) {\n switch (object) {\n case 0:\n case \"STATE_UNINITIALIZED_UNSPECIFIED\":\n return State.STATE_UNINITIALIZED_UNSPECIFIED;\n case 1:\n case \"STATE_INIT\":\n return State.STATE_INIT;\n case 2:\n case \"STATE_TRYOPEN\":\n return State.STATE_TRYOPEN;\n case 3:\n case \"STATE_OPEN\":\n return State.STATE_OPEN;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return State.UNRECOGNIZED;\n }\n}\nexports.stateFromJSON = stateFromJSON;\nfunction stateToJSON(object) {\n switch (object) {\n case State.STATE_UNINITIALIZED_UNSPECIFIED:\n return \"STATE_UNINITIALIZED_UNSPECIFIED\";\n case State.STATE_INIT:\n return \"STATE_INIT\";\n case State.STATE_TRYOPEN:\n return \"STATE_TRYOPEN\";\n case State.STATE_OPEN:\n return \"STATE_OPEN\";\n case State.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.stateToJSON = stateToJSON;\nfunction createBaseConnectionEnd() {\n return {\n clientId: \"\",\n versions: [],\n state: 0,\n counterparty: exports.Counterparty.fromPartial({}),\n delayPeriod: BigInt(0),\n };\n}\nexports.ConnectionEnd = {\n typeUrl: \"/ibc.core.connection.v1.ConnectionEnd\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n for (const v of message.versions) {\n exports.Version.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.state !== 0) {\n writer.uint32(24).int32(message.state);\n }\n if (message.counterparty !== undefined) {\n exports.Counterparty.encode(message.counterparty, writer.uint32(34).fork()).ldelim();\n }\n if (message.delayPeriod !== BigInt(0)) {\n writer.uint32(40).uint64(message.delayPeriod);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseConnectionEnd();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.versions.push(exports.Version.decode(reader, reader.uint32()));\n break;\n case 3:\n message.state = reader.int32();\n break;\n case 4:\n message.counterparty = exports.Counterparty.decode(reader, reader.uint32());\n break;\n case 5:\n message.delayPeriod = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseConnectionEnd();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if (Array.isArray(object?.versions))\n obj.versions = object.versions.map((e) => exports.Version.fromJSON(e));\n if ((0, helpers_1.isSet)(object.state))\n obj.state = stateFromJSON(object.state);\n if ((0, helpers_1.isSet)(object.counterparty))\n obj.counterparty = exports.Counterparty.fromJSON(object.counterparty);\n if ((0, helpers_1.isSet)(object.delayPeriod))\n obj.delayPeriod = BigInt(object.delayPeriod.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n if (message.versions) {\n obj.versions = message.versions.map((e) => (e ? exports.Version.toJSON(e) : undefined));\n }\n else {\n obj.versions = [];\n }\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? exports.Counterparty.toJSON(message.counterparty) : undefined);\n message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseConnectionEnd();\n message.clientId = object.clientId ?? \"\";\n message.versions = object.versions?.map((e) => exports.Version.fromPartial(e)) || [];\n message.state = object.state ?? 0;\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = exports.Counterparty.fromPartial(object.counterparty);\n }\n if (object.delayPeriod !== undefined && object.delayPeriod !== null) {\n message.delayPeriod = BigInt(object.delayPeriod.toString());\n }\n return message;\n },\n};\nfunction createBaseIdentifiedConnection() {\n return {\n id: \"\",\n clientId: \"\",\n versions: [],\n state: 0,\n counterparty: exports.Counterparty.fromPartial({}),\n delayPeriod: BigInt(0),\n };\n}\nexports.IdentifiedConnection = {\n typeUrl: \"/ibc.core.connection.v1.IdentifiedConnection\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.clientId !== \"\") {\n writer.uint32(18).string(message.clientId);\n }\n for (const v of message.versions) {\n exports.Version.encode(v, writer.uint32(26).fork()).ldelim();\n }\n if (message.state !== 0) {\n writer.uint32(32).int32(message.state);\n }\n if (message.counterparty !== undefined) {\n exports.Counterparty.encode(message.counterparty, writer.uint32(42).fork()).ldelim();\n }\n if (message.delayPeriod !== BigInt(0)) {\n writer.uint32(48).uint64(message.delayPeriod);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseIdentifiedConnection();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.string();\n break;\n case 2:\n message.clientId = reader.string();\n break;\n case 3:\n message.versions.push(exports.Version.decode(reader, reader.uint32()));\n break;\n case 4:\n message.state = reader.int32();\n break;\n case 5:\n message.counterparty = exports.Counterparty.decode(reader, reader.uint32());\n break;\n case 6:\n message.delayPeriod = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseIdentifiedConnection();\n if ((0, helpers_1.isSet)(object.id))\n obj.id = String(object.id);\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if (Array.isArray(object?.versions))\n obj.versions = object.versions.map((e) => exports.Version.fromJSON(e));\n if ((0, helpers_1.isSet)(object.state))\n obj.state = stateFromJSON(object.state);\n if ((0, helpers_1.isSet)(object.counterparty))\n obj.counterparty = exports.Counterparty.fromJSON(object.counterparty);\n if ((0, helpers_1.isSet)(object.delayPeriod))\n obj.delayPeriod = BigInt(object.delayPeriod.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.id !== undefined && (obj.id = message.id);\n message.clientId !== undefined && (obj.clientId = message.clientId);\n if (message.versions) {\n obj.versions = message.versions.map((e) => (e ? exports.Version.toJSON(e) : undefined));\n }\n else {\n obj.versions = [];\n }\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? exports.Counterparty.toJSON(message.counterparty) : undefined);\n message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseIdentifiedConnection();\n message.id = object.id ?? \"\";\n message.clientId = object.clientId ?? \"\";\n message.versions = object.versions?.map((e) => exports.Version.fromPartial(e)) || [];\n message.state = object.state ?? 0;\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = exports.Counterparty.fromPartial(object.counterparty);\n }\n if (object.delayPeriod !== undefined && object.delayPeriod !== null) {\n message.delayPeriod = BigInt(object.delayPeriod.toString());\n }\n return message;\n },\n};\nfunction createBaseCounterparty() {\n return {\n clientId: \"\",\n connectionId: \"\",\n prefix: commitment_1.MerklePrefix.fromPartial({}),\n };\n}\nexports.Counterparty = {\n typeUrl: \"/ibc.core.connection.v1.Counterparty\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.connectionId !== \"\") {\n writer.uint32(18).string(message.connectionId);\n }\n if (message.prefix !== undefined) {\n commitment_1.MerklePrefix.encode(message.prefix, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCounterparty();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.connectionId = reader.string();\n break;\n case 3:\n message.prefix = commitment_1.MerklePrefix.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCounterparty();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.connectionId))\n obj.connectionId = String(object.connectionId);\n if ((0, helpers_1.isSet)(object.prefix))\n obj.prefix = commitment_1.MerklePrefix.fromJSON(object.prefix);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n message.prefix !== undefined &&\n (obj.prefix = message.prefix ? commitment_1.MerklePrefix.toJSON(message.prefix) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCounterparty();\n message.clientId = object.clientId ?? \"\";\n message.connectionId = object.connectionId ?? \"\";\n if (object.prefix !== undefined && object.prefix !== null) {\n message.prefix = commitment_1.MerklePrefix.fromPartial(object.prefix);\n }\n return message;\n },\n};\nfunction createBaseClientPaths() {\n return {\n paths: [],\n };\n}\nexports.ClientPaths = {\n typeUrl: \"/ibc.core.connection.v1.ClientPaths\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.paths) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseClientPaths();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.paths.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseClientPaths();\n if (Array.isArray(object?.paths))\n obj.paths = object.paths.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.paths) {\n obj.paths = message.paths.map((e) => e);\n }\n else {\n obj.paths = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseClientPaths();\n message.paths = object.paths?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseConnectionPaths() {\n return {\n clientId: \"\",\n paths: [],\n };\n}\nexports.ConnectionPaths = {\n typeUrl: \"/ibc.core.connection.v1.ConnectionPaths\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n for (const v of message.paths) {\n writer.uint32(18).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseConnectionPaths();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.paths.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseConnectionPaths();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if (Array.isArray(object?.paths))\n obj.paths = object.paths.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n if (message.paths) {\n obj.paths = message.paths.map((e) => e);\n }\n else {\n obj.paths = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseConnectionPaths();\n message.clientId = object.clientId ?? \"\";\n message.paths = object.paths?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseVersion() {\n return {\n identifier: \"\",\n features: [],\n };\n}\nexports.Version = {\n typeUrl: \"/ibc.core.connection.v1.Version\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.identifier !== \"\") {\n writer.uint32(10).string(message.identifier);\n }\n for (const v of message.features) {\n writer.uint32(18).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVersion();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.identifier = reader.string();\n break;\n case 2:\n message.features.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseVersion();\n if ((0, helpers_1.isSet)(object.identifier))\n obj.identifier = String(object.identifier);\n if (Array.isArray(object?.features))\n obj.features = object.features.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.identifier !== undefined && (obj.identifier = message.identifier);\n if (message.features) {\n obj.features = message.features.map((e) => e);\n }\n else {\n obj.features = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseVersion();\n message.identifier = object.identifier ?? \"\";\n message.features = object.features?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseParams() {\n return {\n maxExpectedTimePerBlock: BigInt(0),\n };\n}\nexports.Params = {\n typeUrl: \"/ibc.core.connection.v1.Params\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.maxExpectedTimePerBlock !== BigInt(0)) {\n writer.uint32(8).uint64(message.maxExpectedTimePerBlock);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxExpectedTimePerBlock = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseParams();\n if ((0, helpers_1.isSet)(object.maxExpectedTimePerBlock))\n obj.maxExpectedTimePerBlock = BigInt(object.maxExpectedTimePerBlock.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.maxExpectedTimePerBlock !== undefined &&\n (obj.maxExpectedTimePerBlock = (message.maxExpectedTimePerBlock || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseParams();\n if (object.maxExpectedTimePerBlock !== undefined && object.maxExpectedTimePerBlock !== null) {\n message.maxExpectedTimePerBlock = BigInt(object.maxExpectedTimePerBlock.toString());\n }\n return message;\n },\n};\n//# sourceMappingURL=connection.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryConnectionParamsResponse = exports.QueryConnectionParamsRequest = exports.QueryConnectionConsensusStateResponse = exports.QueryConnectionConsensusStateRequest = exports.QueryConnectionClientStateResponse = exports.QueryConnectionClientStateRequest = exports.QueryClientConnectionsResponse = exports.QueryClientConnectionsRequest = exports.QueryConnectionsResponse = exports.QueryConnectionsRequest = exports.QueryConnectionResponse = exports.QueryConnectionRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst pagination_1 = require(\"../../../../cosmos/base/query/v1beta1/pagination\");\nconst connection_1 = require(\"./connection\");\nconst client_1 = require(\"../../client/v1/client\");\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.core.connection.v1\";\nfunction createBaseQueryConnectionRequest() {\n return {\n connectionId: \"\",\n };\n}\nexports.QueryConnectionRequest = {\n typeUrl: \"/ibc.core.connection.v1.QueryConnectionRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.connectionId !== \"\") {\n writer.uint32(10).string(message.connectionId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConnectionRequest();\n if ((0, helpers_1.isSet)(object.connectionId))\n obj.connectionId = String(object.connectionId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConnectionRequest();\n message.connectionId = object.connectionId ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryConnectionResponse() {\n return {\n connection: undefined,\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryConnectionResponse = {\n typeUrl: \"/ibc.core.connection.v1.QueryConnectionResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.connection !== undefined) {\n connection_1.ConnectionEnd.encode(message.connection, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connection = connection_1.ConnectionEnd.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConnectionResponse();\n if ((0, helpers_1.isSet)(object.connection))\n obj.connection = connection_1.ConnectionEnd.fromJSON(object.connection);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.connection !== undefined &&\n (obj.connection = message.connection ? connection_1.ConnectionEnd.toJSON(message.connection) : undefined);\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConnectionResponse();\n if (object.connection !== undefined && object.connection !== null) {\n message.connection = connection_1.ConnectionEnd.fromPartial(object.connection);\n }\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryConnectionsRequest() {\n return {\n pagination: undefined,\n };\n}\nexports.QueryConnectionsRequest = {\n typeUrl: \"/ibc.core.connection.v1.QueryConnectionsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConnectionsRequest();\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConnectionsRequest();\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n return message;\n },\n};\nfunction createBaseQueryConnectionsResponse() {\n return {\n connections: [],\n pagination: undefined,\n height: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryConnectionsResponse = {\n typeUrl: \"/ibc.core.connection.v1.QueryConnectionsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.connections) {\n connection_1.IdentifiedConnection.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connections.push(connection_1.IdentifiedConnection.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConnectionsResponse();\n if (Array.isArray(object?.connections))\n obj.connections = object.connections.map((e) => connection_1.IdentifiedConnection.fromJSON(e));\n if ((0, helpers_1.isSet)(object.pagination))\n obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = client_1.Height.fromJSON(object.height);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.connections) {\n obj.connections = message.connections.map((e) => (e ? connection_1.IdentifiedConnection.toJSON(e) : undefined));\n }\n else {\n obj.connections = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConnectionsResponse();\n message.connections = object.connections?.map((e) => connection_1.IdentifiedConnection.fromPartial(e)) || [];\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = client_1.Height.fromPartial(object.height);\n }\n return message;\n },\n};\nfunction createBaseQueryClientConnectionsRequest() {\n return {\n clientId: \"\",\n };\n}\nexports.QueryClientConnectionsRequest = {\n typeUrl: \"/ibc.core.connection.v1.QueryClientConnectionsRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryClientConnectionsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryClientConnectionsRequest();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryClientConnectionsRequest();\n message.clientId = object.clientId ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryClientConnectionsResponse() {\n return {\n connectionPaths: [],\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryClientConnectionsResponse = {\n typeUrl: \"/ibc.core.connection.v1.QueryClientConnectionsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.connectionPaths) {\n writer.uint32(10).string(v);\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryClientConnectionsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionPaths.push(reader.string());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryClientConnectionsResponse();\n if (Array.isArray(object?.connectionPaths))\n obj.connectionPaths = object.connectionPaths.map((e) => String(e));\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.connectionPaths) {\n obj.connectionPaths = message.connectionPaths.map((e) => e);\n }\n else {\n obj.connectionPaths = [];\n }\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryClientConnectionsResponse();\n message.connectionPaths = object.connectionPaths?.map((e) => e) || [];\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryConnectionClientStateRequest() {\n return {\n connectionId: \"\",\n };\n}\nexports.QueryConnectionClientStateRequest = {\n typeUrl: \"/ibc.core.connection.v1.QueryConnectionClientStateRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.connectionId !== \"\") {\n writer.uint32(10).string(message.connectionId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionClientStateRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConnectionClientStateRequest();\n if ((0, helpers_1.isSet)(object.connectionId))\n obj.connectionId = String(object.connectionId);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConnectionClientStateRequest();\n message.connectionId = object.connectionId ?? \"\";\n return message;\n },\n};\nfunction createBaseQueryConnectionClientStateResponse() {\n return {\n identifiedClientState: undefined,\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryConnectionClientStateResponse = {\n typeUrl: \"/ibc.core.connection.v1.QueryConnectionClientStateResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.identifiedClientState !== undefined) {\n client_1.IdentifiedClientState.encode(message.identifiedClientState, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionClientStateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.identifiedClientState = client_1.IdentifiedClientState.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConnectionClientStateResponse();\n if ((0, helpers_1.isSet)(object.identifiedClientState))\n obj.identifiedClientState = client_1.IdentifiedClientState.fromJSON(object.identifiedClientState);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.identifiedClientState !== undefined &&\n (obj.identifiedClientState = message.identifiedClientState\n ? client_1.IdentifiedClientState.toJSON(message.identifiedClientState)\n : undefined);\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConnectionClientStateResponse();\n if (object.identifiedClientState !== undefined && object.identifiedClientState !== null) {\n message.identifiedClientState = client_1.IdentifiedClientState.fromPartial(object.identifiedClientState);\n }\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryConnectionConsensusStateRequest() {\n return {\n connectionId: \"\",\n revisionNumber: BigInt(0),\n revisionHeight: BigInt(0),\n };\n}\nexports.QueryConnectionConsensusStateRequest = {\n typeUrl: \"/ibc.core.connection.v1.QueryConnectionConsensusStateRequest\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.connectionId !== \"\") {\n writer.uint32(10).string(message.connectionId);\n }\n if (message.revisionNumber !== BigInt(0)) {\n writer.uint32(16).uint64(message.revisionNumber);\n }\n if (message.revisionHeight !== BigInt(0)) {\n writer.uint32(24).uint64(message.revisionHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionConsensusStateRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionId = reader.string();\n break;\n case 2:\n message.revisionNumber = reader.uint64();\n break;\n case 3:\n message.revisionHeight = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConnectionConsensusStateRequest();\n if ((0, helpers_1.isSet)(object.connectionId))\n obj.connectionId = String(object.connectionId);\n if ((0, helpers_1.isSet)(object.revisionNumber))\n obj.revisionNumber = BigInt(object.revisionNumber.toString());\n if ((0, helpers_1.isSet)(object.revisionHeight))\n obj.revisionHeight = BigInt(object.revisionHeight.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n message.revisionNumber !== undefined &&\n (obj.revisionNumber = (message.revisionNumber || BigInt(0)).toString());\n message.revisionHeight !== undefined &&\n (obj.revisionHeight = (message.revisionHeight || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConnectionConsensusStateRequest();\n message.connectionId = object.connectionId ?? \"\";\n if (object.revisionNumber !== undefined && object.revisionNumber !== null) {\n message.revisionNumber = BigInt(object.revisionNumber.toString());\n }\n if (object.revisionHeight !== undefined && object.revisionHeight !== null) {\n message.revisionHeight = BigInt(object.revisionHeight.toString());\n }\n return message;\n },\n};\nfunction createBaseQueryConnectionConsensusStateResponse() {\n return {\n consensusState: undefined,\n clientId: \"\",\n proof: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n };\n}\nexports.QueryConnectionConsensusStateResponse = {\n typeUrl: \"/ibc.core.connection.v1.QueryConnectionConsensusStateResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(10).fork()).ldelim();\n }\n if (message.clientId !== \"\") {\n writer.uint32(18).string(message.clientId);\n }\n if (message.proof.length !== 0) {\n writer.uint32(26).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionConsensusStateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.clientId = reader.string();\n break;\n case 3:\n message.proof = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConnectionConsensusStateResponse();\n if ((0, helpers_1.isSet)(object.consensusState))\n obj.consensusState = any_1.Any.fromJSON(object.consensusState);\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = (0, helpers_1.bytesFromBase64)(object.proof);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.proof !== undefined &&\n (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConnectionConsensusStateResponse();\n if (object.consensusState !== undefined && object.consensusState !== null) {\n message.consensusState = any_1.Any.fromPartial(object.consensusState);\n }\n message.clientId = object.clientId ?? \"\";\n message.proof = object.proof ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n return message;\n },\n};\nfunction createBaseQueryConnectionParamsRequest() {\n return {};\n}\nexports.QueryConnectionParamsRequest = {\n typeUrl: \"/ibc.core.connection.v1.QueryConnectionParamsRequest\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionParamsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseQueryConnectionParamsRequest();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseQueryConnectionParamsRequest();\n return message;\n },\n};\nfunction createBaseQueryConnectionParamsResponse() {\n return {\n params: undefined,\n };\n}\nexports.QueryConnectionParamsResponse = {\n typeUrl: \"/ibc.core.connection.v1.QueryConnectionParamsResponse\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.params !== undefined) {\n client_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryConnectionParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = client_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseQueryConnectionParamsResponse();\n if ((0, helpers_1.isSet)(object.params))\n obj.params = client_1.Params.fromJSON(object.params);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? client_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseQueryConnectionParamsResponse();\n if (object.params !== undefined && object.params !== null) {\n message.params = client_1.Params.fromPartial(object.params);\n }\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Connection = this.Connection.bind(this);\n this.Connections = this.Connections.bind(this);\n this.ClientConnections = this.ClientConnections.bind(this);\n this.ConnectionClientState = this.ConnectionClientState.bind(this);\n this.ConnectionConsensusState = this.ConnectionConsensusState.bind(this);\n this.ConnectionParams = this.ConnectionParams.bind(this);\n }\n Connection(request) {\n const data = exports.QueryConnectionRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Query\", \"Connection\", data);\n return promise.then((data) => exports.QueryConnectionResponse.decode(new binary_1.BinaryReader(data)));\n }\n Connections(request = {\n pagination: pagination_1.PageRequest.fromPartial({}),\n }) {\n const data = exports.QueryConnectionsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Query\", \"Connections\", data);\n return promise.then((data) => exports.QueryConnectionsResponse.decode(new binary_1.BinaryReader(data)));\n }\n ClientConnections(request) {\n const data = exports.QueryClientConnectionsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Query\", \"ClientConnections\", data);\n return promise.then((data) => exports.QueryClientConnectionsResponse.decode(new binary_1.BinaryReader(data)));\n }\n ConnectionClientState(request) {\n const data = exports.QueryConnectionClientStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Query\", \"ConnectionClientState\", data);\n return promise.then((data) => exports.QueryConnectionClientStateResponse.decode(new binary_1.BinaryReader(data)));\n }\n ConnectionConsensusState(request) {\n const data = exports.QueryConnectionConsensusStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Query\", \"ConnectionConsensusState\", data);\n return promise.then((data) => exports.QueryConnectionConsensusStateResponse.decode(new binary_1.BinaryReader(data)));\n }\n ConnectionParams(request = {}) {\n const data = exports.QueryConnectionParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Query\", \"ConnectionParams\", data);\n return promise.then((data) => exports.QueryConnectionParamsResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\n//# sourceMappingURL=query.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgConnectionOpenConfirmResponse = exports.MsgConnectionOpenConfirm = exports.MsgConnectionOpenAckResponse = exports.MsgConnectionOpenAck = exports.MsgConnectionOpenTryResponse = exports.MsgConnectionOpenTry = exports.MsgConnectionOpenInitResponse = exports.MsgConnectionOpenInit = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst connection_1 = require(\"./connection\");\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst client_1 = require(\"../../client/v1/client\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.core.connection.v1\";\nfunction createBaseMsgConnectionOpenInit() {\n return {\n clientId: \"\",\n counterparty: connection_1.Counterparty.fromPartial({}),\n version: undefined,\n delayPeriod: BigInt(0),\n signer: \"\",\n };\n}\nexports.MsgConnectionOpenInit = {\n typeUrl: \"/ibc.core.connection.v1.MsgConnectionOpenInit\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.counterparty !== undefined) {\n connection_1.Counterparty.encode(message.counterparty, writer.uint32(18).fork()).ldelim();\n }\n if (message.version !== undefined) {\n connection_1.Version.encode(message.version, writer.uint32(26).fork()).ldelim();\n }\n if (message.delayPeriod !== BigInt(0)) {\n writer.uint32(32).uint64(message.delayPeriod);\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenInit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.counterparty = connection_1.Counterparty.decode(reader, reader.uint32());\n break;\n case 3:\n message.version = connection_1.Version.decode(reader, reader.uint32());\n break;\n case 4:\n message.delayPeriod = reader.uint64();\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgConnectionOpenInit();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.counterparty))\n obj.counterparty = connection_1.Counterparty.fromJSON(object.counterparty);\n if ((0, helpers_1.isSet)(object.version))\n obj.version = connection_1.Version.fromJSON(object.version);\n if ((0, helpers_1.isSet)(object.delayPeriod))\n obj.delayPeriod = BigInt(object.delayPeriod.toString());\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? connection_1.Counterparty.toJSON(message.counterparty) : undefined);\n message.version !== undefined &&\n (obj.version = message.version ? connection_1.Version.toJSON(message.version) : undefined);\n message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || BigInt(0)).toString());\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgConnectionOpenInit();\n message.clientId = object.clientId ?? \"\";\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = connection_1.Counterparty.fromPartial(object.counterparty);\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = connection_1.Version.fromPartial(object.version);\n }\n if (object.delayPeriod !== undefined && object.delayPeriod !== null) {\n message.delayPeriod = BigInt(object.delayPeriod.toString());\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgConnectionOpenInitResponse() {\n return {};\n}\nexports.MsgConnectionOpenInitResponse = {\n typeUrl: \"/ibc.core.connection.v1.MsgConnectionOpenInitResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenInitResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgConnectionOpenInitResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgConnectionOpenInitResponse();\n return message;\n },\n};\nfunction createBaseMsgConnectionOpenTry() {\n return {\n clientId: \"\",\n previousConnectionId: \"\",\n clientState: undefined,\n counterparty: connection_1.Counterparty.fromPartial({}),\n delayPeriod: BigInt(0),\n counterpartyVersions: [],\n proofHeight: client_1.Height.fromPartial({}),\n proofInit: new Uint8Array(),\n proofClient: new Uint8Array(),\n proofConsensus: new Uint8Array(),\n consensusHeight: client_1.Height.fromPartial({}),\n signer: \"\",\n hostConsensusStateProof: new Uint8Array(),\n };\n}\nexports.MsgConnectionOpenTry = {\n typeUrl: \"/ibc.core.connection.v1.MsgConnectionOpenTry\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.previousConnectionId !== \"\") {\n writer.uint32(18).string(message.previousConnectionId);\n }\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(26).fork()).ldelim();\n }\n if (message.counterparty !== undefined) {\n connection_1.Counterparty.encode(message.counterparty, writer.uint32(34).fork()).ldelim();\n }\n if (message.delayPeriod !== BigInt(0)) {\n writer.uint32(40).uint64(message.delayPeriod);\n }\n for (const v of message.counterpartyVersions) {\n connection_1.Version.encode(v, writer.uint32(50).fork()).ldelim();\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(58).fork()).ldelim();\n }\n if (message.proofInit.length !== 0) {\n writer.uint32(66).bytes(message.proofInit);\n }\n if (message.proofClient.length !== 0) {\n writer.uint32(74).bytes(message.proofClient);\n }\n if (message.proofConsensus.length !== 0) {\n writer.uint32(82).bytes(message.proofConsensus);\n }\n if (message.consensusHeight !== undefined) {\n client_1.Height.encode(message.consensusHeight, writer.uint32(90).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(98).string(message.signer);\n }\n if (message.hostConsensusStateProof.length !== 0) {\n writer.uint32(106).bytes(message.hostConsensusStateProof);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenTry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.previousConnectionId = reader.string();\n break;\n case 3:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 4:\n message.counterparty = connection_1.Counterparty.decode(reader, reader.uint32());\n break;\n case 5:\n message.delayPeriod = reader.uint64();\n break;\n case 6:\n message.counterpartyVersions.push(connection_1.Version.decode(reader, reader.uint32()));\n break;\n case 7:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 8:\n message.proofInit = reader.bytes();\n break;\n case 9:\n message.proofClient = reader.bytes();\n break;\n case 10:\n message.proofConsensus = reader.bytes();\n break;\n case 11:\n message.consensusHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 12:\n message.signer = reader.string();\n break;\n case 13:\n message.hostConsensusStateProof = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgConnectionOpenTry();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.previousConnectionId))\n obj.previousConnectionId = String(object.previousConnectionId);\n if ((0, helpers_1.isSet)(object.clientState))\n obj.clientState = any_1.Any.fromJSON(object.clientState);\n if ((0, helpers_1.isSet)(object.counterparty))\n obj.counterparty = connection_1.Counterparty.fromJSON(object.counterparty);\n if ((0, helpers_1.isSet)(object.delayPeriod))\n obj.delayPeriod = BigInt(object.delayPeriod.toString());\n if (Array.isArray(object?.counterpartyVersions))\n obj.counterpartyVersions = object.counterpartyVersions.map((e) => connection_1.Version.fromJSON(e));\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n if ((0, helpers_1.isSet)(object.proofInit))\n obj.proofInit = (0, helpers_1.bytesFromBase64)(object.proofInit);\n if ((0, helpers_1.isSet)(object.proofClient))\n obj.proofClient = (0, helpers_1.bytesFromBase64)(object.proofClient);\n if ((0, helpers_1.isSet)(object.proofConsensus))\n obj.proofConsensus = (0, helpers_1.bytesFromBase64)(object.proofConsensus);\n if ((0, helpers_1.isSet)(object.consensusHeight))\n obj.consensusHeight = client_1.Height.fromJSON(object.consensusHeight);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n if ((0, helpers_1.isSet)(object.hostConsensusStateProof))\n obj.hostConsensusStateProof = (0, helpers_1.bytesFromBase64)(object.hostConsensusStateProof);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.previousConnectionId !== undefined && (obj.previousConnectionId = message.previousConnectionId);\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? connection_1.Counterparty.toJSON(message.counterparty) : undefined);\n message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || BigInt(0)).toString());\n if (message.counterpartyVersions) {\n obj.counterpartyVersions = message.counterpartyVersions.map((e) => (e ? connection_1.Version.toJSON(e) : undefined));\n }\n else {\n obj.counterpartyVersions = [];\n }\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.proofInit !== undefined &&\n (obj.proofInit = (0, helpers_1.base64FromBytes)(message.proofInit !== undefined ? message.proofInit : new Uint8Array()));\n message.proofClient !== undefined &&\n (obj.proofClient = (0, helpers_1.base64FromBytes)(message.proofClient !== undefined ? message.proofClient : new Uint8Array()));\n message.proofConsensus !== undefined &&\n (obj.proofConsensus = (0, helpers_1.base64FromBytes)(message.proofConsensus !== undefined ? message.proofConsensus : new Uint8Array()));\n message.consensusHeight !== undefined &&\n (obj.consensusHeight = message.consensusHeight ? client_1.Height.toJSON(message.consensusHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n message.hostConsensusStateProof !== undefined &&\n (obj.hostConsensusStateProof = (0, helpers_1.base64FromBytes)(message.hostConsensusStateProof !== undefined ? message.hostConsensusStateProof : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgConnectionOpenTry();\n message.clientId = object.clientId ?? \"\";\n message.previousConnectionId = object.previousConnectionId ?? \"\";\n if (object.clientState !== undefined && object.clientState !== null) {\n message.clientState = any_1.Any.fromPartial(object.clientState);\n }\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = connection_1.Counterparty.fromPartial(object.counterparty);\n }\n if (object.delayPeriod !== undefined && object.delayPeriod !== null) {\n message.delayPeriod = BigInt(object.delayPeriod.toString());\n }\n message.counterpartyVersions = object.counterpartyVersions?.map((e) => connection_1.Version.fromPartial(e)) || [];\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n message.proofInit = object.proofInit ?? new Uint8Array();\n message.proofClient = object.proofClient ?? new Uint8Array();\n message.proofConsensus = object.proofConsensus ?? new Uint8Array();\n if (object.consensusHeight !== undefined && object.consensusHeight !== null) {\n message.consensusHeight = client_1.Height.fromPartial(object.consensusHeight);\n }\n message.signer = object.signer ?? \"\";\n message.hostConsensusStateProof = object.hostConsensusStateProof ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseMsgConnectionOpenTryResponse() {\n return {};\n}\nexports.MsgConnectionOpenTryResponse = {\n typeUrl: \"/ibc.core.connection.v1.MsgConnectionOpenTryResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenTryResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgConnectionOpenTryResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgConnectionOpenTryResponse();\n return message;\n },\n};\nfunction createBaseMsgConnectionOpenAck() {\n return {\n connectionId: \"\",\n counterpartyConnectionId: \"\",\n version: undefined,\n clientState: undefined,\n proofHeight: client_1.Height.fromPartial({}),\n proofTry: new Uint8Array(),\n proofClient: new Uint8Array(),\n proofConsensus: new Uint8Array(),\n consensusHeight: client_1.Height.fromPartial({}),\n signer: \"\",\n hostConsensusStateProof: new Uint8Array(),\n };\n}\nexports.MsgConnectionOpenAck = {\n typeUrl: \"/ibc.core.connection.v1.MsgConnectionOpenAck\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.connectionId !== \"\") {\n writer.uint32(10).string(message.connectionId);\n }\n if (message.counterpartyConnectionId !== \"\") {\n writer.uint32(18).string(message.counterpartyConnectionId);\n }\n if (message.version !== undefined) {\n connection_1.Version.encode(message.version, writer.uint32(26).fork()).ldelim();\n }\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(34).fork()).ldelim();\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(42).fork()).ldelim();\n }\n if (message.proofTry.length !== 0) {\n writer.uint32(50).bytes(message.proofTry);\n }\n if (message.proofClient.length !== 0) {\n writer.uint32(58).bytes(message.proofClient);\n }\n if (message.proofConsensus.length !== 0) {\n writer.uint32(66).bytes(message.proofConsensus);\n }\n if (message.consensusHeight !== undefined) {\n client_1.Height.encode(message.consensusHeight, writer.uint32(74).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(82).string(message.signer);\n }\n if (message.hostConsensusStateProof.length !== 0) {\n writer.uint32(90).bytes(message.hostConsensusStateProof);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenAck();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionId = reader.string();\n break;\n case 2:\n message.counterpartyConnectionId = reader.string();\n break;\n case 3:\n message.version = connection_1.Version.decode(reader, reader.uint32());\n break;\n case 4:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 5:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 6:\n message.proofTry = reader.bytes();\n break;\n case 7:\n message.proofClient = reader.bytes();\n break;\n case 8:\n message.proofConsensus = reader.bytes();\n break;\n case 9:\n message.consensusHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 10:\n message.signer = reader.string();\n break;\n case 11:\n message.hostConsensusStateProof = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgConnectionOpenAck();\n if ((0, helpers_1.isSet)(object.connectionId))\n obj.connectionId = String(object.connectionId);\n if ((0, helpers_1.isSet)(object.counterpartyConnectionId))\n obj.counterpartyConnectionId = String(object.counterpartyConnectionId);\n if ((0, helpers_1.isSet)(object.version))\n obj.version = connection_1.Version.fromJSON(object.version);\n if ((0, helpers_1.isSet)(object.clientState))\n obj.clientState = any_1.Any.fromJSON(object.clientState);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n if ((0, helpers_1.isSet)(object.proofTry))\n obj.proofTry = (0, helpers_1.bytesFromBase64)(object.proofTry);\n if ((0, helpers_1.isSet)(object.proofClient))\n obj.proofClient = (0, helpers_1.bytesFromBase64)(object.proofClient);\n if ((0, helpers_1.isSet)(object.proofConsensus))\n obj.proofConsensus = (0, helpers_1.bytesFromBase64)(object.proofConsensus);\n if ((0, helpers_1.isSet)(object.consensusHeight))\n obj.consensusHeight = client_1.Height.fromJSON(object.consensusHeight);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n if ((0, helpers_1.isSet)(object.hostConsensusStateProof))\n obj.hostConsensusStateProof = (0, helpers_1.bytesFromBase64)(object.hostConsensusStateProof);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n message.counterpartyConnectionId !== undefined &&\n (obj.counterpartyConnectionId = message.counterpartyConnectionId);\n message.version !== undefined &&\n (obj.version = message.version ? connection_1.Version.toJSON(message.version) : undefined);\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.proofTry !== undefined &&\n (obj.proofTry = (0, helpers_1.base64FromBytes)(message.proofTry !== undefined ? message.proofTry : new Uint8Array()));\n message.proofClient !== undefined &&\n (obj.proofClient = (0, helpers_1.base64FromBytes)(message.proofClient !== undefined ? message.proofClient : new Uint8Array()));\n message.proofConsensus !== undefined &&\n (obj.proofConsensus = (0, helpers_1.base64FromBytes)(message.proofConsensus !== undefined ? message.proofConsensus : new Uint8Array()));\n message.consensusHeight !== undefined &&\n (obj.consensusHeight = message.consensusHeight ? client_1.Height.toJSON(message.consensusHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n message.hostConsensusStateProof !== undefined &&\n (obj.hostConsensusStateProof = (0, helpers_1.base64FromBytes)(message.hostConsensusStateProof !== undefined ? message.hostConsensusStateProof : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgConnectionOpenAck();\n message.connectionId = object.connectionId ?? \"\";\n message.counterpartyConnectionId = object.counterpartyConnectionId ?? \"\";\n if (object.version !== undefined && object.version !== null) {\n message.version = connection_1.Version.fromPartial(object.version);\n }\n if (object.clientState !== undefined && object.clientState !== null) {\n message.clientState = any_1.Any.fromPartial(object.clientState);\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n message.proofTry = object.proofTry ?? new Uint8Array();\n message.proofClient = object.proofClient ?? new Uint8Array();\n message.proofConsensus = object.proofConsensus ?? new Uint8Array();\n if (object.consensusHeight !== undefined && object.consensusHeight !== null) {\n message.consensusHeight = client_1.Height.fromPartial(object.consensusHeight);\n }\n message.signer = object.signer ?? \"\";\n message.hostConsensusStateProof = object.hostConsensusStateProof ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseMsgConnectionOpenAckResponse() {\n return {};\n}\nexports.MsgConnectionOpenAckResponse = {\n typeUrl: \"/ibc.core.connection.v1.MsgConnectionOpenAckResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenAckResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgConnectionOpenAckResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgConnectionOpenAckResponse();\n return message;\n },\n};\nfunction createBaseMsgConnectionOpenConfirm() {\n return {\n connectionId: \"\",\n proofAck: new Uint8Array(),\n proofHeight: client_1.Height.fromPartial({}),\n signer: \"\",\n };\n}\nexports.MsgConnectionOpenConfirm = {\n typeUrl: \"/ibc.core.connection.v1.MsgConnectionOpenConfirm\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.connectionId !== \"\") {\n writer.uint32(10).string(message.connectionId);\n }\n if (message.proofAck.length !== 0) {\n writer.uint32(18).bytes(message.proofAck);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(34).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenConfirm();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionId = reader.string();\n break;\n case 2:\n message.proofAck = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 4:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMsgConnectionOpenConfirm();\n if ((0, helpers_1.isSet)(object.connectionId))\n obj.connectionId = String(object.connectionId);\n if ((0, helpers_1.isSet)(object.proofAck))\n obj.proofAck = (0, helpers_1.bytesFromBase64)(object.proofAck);\n if ((0, helpers_1.isSet)(object.proofHeight))\n obj.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n if ((0, helpers_1.isSet)(object.signer))\n obj.signer = String(object.signer);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n message.proofAck !== undefined &&\n (obj.proofAck = (0, helpers_1.base64FromBytes)(message.proofAck !== undefined ? message.proofAck : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMsgConnectionOpenConfirm();\n message.connectionId = object.connectionId ?? \"\";\n message.proofAck = object.proofAck ?? new Uint8Array();\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\nfunction createBaseMsgConnectionOpenConfirmResponse() {\n return {};\n}\nexports.MsgConnectionOpenConfirmResponse = {\n typeUrl: \"/ibc.core.connection.v1.MsgConnectionOpenConfirmResponse\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenConfirmResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseMsgConnectionOpenConfirmResponse();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseMsgConnectionOpenConfirmResponse();\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.ConnectionOpenInit = this.ConnectionOpenInit.bind(this);\n this.ConnectionOpenTry = this.ConnectionOpenTry.bind(this);\n this.ConnectionOpenAck = this.ConnectionOpenAck.bind(this);\n this.ConnectionOpenConfirm = this.ConnectionOpenConfirm.bind(this);\n }\n ConnectionOpenInit(request) {\n const data = exports.MsgConnectionOpenInit.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Msg\", \"ConnectionOpenInit\", data);\n return promise.then((data) => exports.MsgConnectionOpenInitResponse.decode(new binary_1.BinaryReader(data)));\n }\n ConnectionOpenTry(request) {\n const data = exports.MsgConnectionOpenTry.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Msg\", \"ConnectionOpenTry\", data);\n return promise.then((data) => exports.MsgConnectionOpenTryResponse.decode(new binary_1.BinaryReader(data)));\n }\n ConnectionOpenAck(request) {\n const data = exports.MsgConnectionOpenAck.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Msg\", \"ConnectionOpenAck\", data);\n return promise.then((data) => exports.MsgConnectionOpenAckResponse.decode(new binary_1.BinaryReader(data)));\n }\n ConnectionOpenConfirm(request) {\n const data = exports.MsgConnectionOpenConfirm.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Msg\", \"ConnectionOpenConfirm\", data);\n return promise.then((data) => exports.MsgConnectionOpenConfirmResponse.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Fraction = exports.Header = exports.Misbehaviour = exports.ConsensusState = exports.ClientState = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst duration_1 = require(\"../../../../google/protobuf/duration\");\nconst client_1 = require(\"../../../core/client/v1/client\");\nconst proofs_1 = require(\"../../../../cosmos/ics23/v1/proofs\");\nconst timestamp_1 = require(\"../../../../google/protobuf/timestamp\");\nconst commitment_1 = require(\"../../../core/commitment/v1/commitment\");\nconst types_1 = require(\"../../../../tendermint/types/types\");\nconst validator_1 = require(\"../../../../tendermint/types/validator\");\nconst binary_1 = require(\"../../../../binary\");\nconst helpers_1 = require(\"../../../../helpers\");\nexports.protobufPackage = \"ibc.lightclients.tendermint.v1\";\nfunction createBaseClientState() {\n return {\n chainId: \"\",\n trustLevel: exports.Fraction.fromPartial({}),\n trustingPeriod: duration_1.Duration.fromPartial({}),\n unbondingPeriod: duration_1.Duration.fromPartial({}),\n maxClockDrift: duration_1.Duration.fromPartial({}),\n frozenHeight: client_1.Height.fromPartial({}),\n latestHeight: client_1.Height.fromPartial({}),\n proofSpecs: [],\n upgradePath: [],\n allowUpdateAfterExpiry: false,\n allowUpdateAfterMisbehaviour: false,\n };\n}\nexports.ClientState = {\n typeUrl: \"/ibc.lightclients.tendermint.v1.ClientState\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.chainId !== \"\") {\n writer.uint32(10).string(message.chainId);\n }\n if (message.trustLevel !== undefined) {\n exports.Fraction.encode(message.trustLevel, writer.uint32(18).fork()).ldelim();\n }\n if (message.trustingPeriod !== undefined) {\n duration_1.Duration.encode(message.trustingPeriod, writer.uint32(26).fork()).ldelim();\n }\n if (message.unbondingPeriod !== undefined) {\n duration_1.Duration.encode(message.unbondingPeriod, writer.uint32(34).fork()).ldelim();\n }\n if (message.maxClockDrift !== undefined) {\n duration_1.Duration.encode(message.maxClockDrift, writer.uint32(42).fork()).ldelim();\n }\n if (message.frozenHeight !== undefined) {\n client_1.Height.encode(message.frozenHeight, writer.uint32(50).fork()).ldelim();\n }\n if (message.latestHeight !== undefined) {\n client_1.Height.encode(message.latestHeight, writer.uint32(58).fork()).ldelim();\n }\n for (const v of message.proofSpecs) {\n proofs_1.ProofSpec.encode(v, writer.uint32(66).fork()).ldelim();\n }\n for (const v of message.upgradePath) {\n writer.uint32(74).string(v);\n }\n if (message.allowUpdateAfterExpiry === true) {\n writer.uint32(80).bool(message.allowUpdateAfterExpiry);\n }\n if (message.allowUpdateAfterMisbehaviour === true) {\n writer.uint32(88).bool(message.allowUpdateAfterMisbehaviour);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseClientState();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.chainId = reader.string();\n break;\n case 2:\n message.trustLevel = exports.Fraction.decode(reader, reader.uint32());\n break;\n case 3:\n message.trustingPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 4:\n message.unbondingPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 5:\n message.maxClockDrift = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 6:\n message.frozenHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 7:\n message.latestHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 8:\n message.proofSpecs.push(proofs_1.ProofSpec.decode(reader, reader.uint32()));\n break;\n case 9:\n message.upgradePath.push(reader.string());\n break;\n case 10:\n message.allowUpdateAfterExpiry = reader.bool();\n break;\n case 11:\n message.allowUpdateAfterMisbehaviour = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseClientState();\n if ((0, helpers_1.isSet)(object.chainId))\n obj.chainId = String(object.chainId);\n if ((0, helpers_1.isSet)(object.trustLevel))\n obj.trustLevel = exports.Fraction.fromJSON(object.trustLevel);\n if ((0, helpers_1.isSet)(object.trustingPeriod))\n obj.trustingPeriod = duration_1.Duration.fromJSON(object.trustingPeriod);\n if ((0, helpers_1.isSet)(object.unbondingPeriod))\n obj.unbondingPeriod = duration_1.Duration.fromJSON(object.unbondingPeriod);\n if ((0, helpers_1.isSet)(object.maxClockDrift))\n obj.maxClockDrift = duration_1.Duration.fromJSON(object.maxClockDrift);\n if ((0, helpers_1.isSet)(object.frozenHeight))\n obj.frozenHeight = client_1.Height.fromJSON(object.frozenHeight);\n if ((0, helpers_1.isSet)(object.latestHeight))\n obj.latestHeight = client_1.Height.fromJSON(object.latestHeight);\n if (Array.isArray(object?.proofSpecs))\n obj.proofSpecs = object.proofSpecs.map((e) => proofs_1.ProofSpec.fromJSON(e));\n if (Array.isArray(object?.upgradePath))\n obj.upgradePath = object.upgradePath.map((e) => String(e));\n if ((0, helpers_1.isSet)(object.allowUpdateAfterExpiry))\n obj.allowUpdateAfterExpiry = Boolean(object.allowUpdateAfterExpiry);\n if ((0, helpers_1.isSet)(object.allowUpdateAfterMisbehaviour))\n obj.allowUpdateAfterMisbehaviour = Boolean(object.allowUpdateAfterMisbehaviour);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.trustLevel !== undefined &&\n (obj.trustLevel = message.trustLevel ? exports.Fraction.toJSON(message.trustLevel) : undefined);\n message.trustingPeriod !== undefined &&\n (obj.trustingPeriod = message.trustingPeriod ? duration_1.Duration.toJSON(message.trustingPeriod) : undefined);\n message.unbondingPeriod !== undefined &&\n (obj.unbondingPeriod = message.unbondingPeriod ? duration_1.Duration.toJSON(message.unbondingPeriod) : undefined);\n message.maxClockDrift !== undefined &&\n (obj.maxClockDrift = message.maxClockDrift ? duration_1.Duration.toJSON(message.maxClockDrift) : undefined);\n message.frozenHeight !== undefined &&\n (obj.frozenHeight = message.frozenHeight ? client_1.Height.toJSON(message.frozenHeight) : undefined);\n message.latestHeight !== undefined &&\n (obj.latestHeight = message.latestHeight ? client_1.Height.toJSON(message.latestHeight) : undefined);\n if (message.proofSpecs) {\n obj.proofSpecs = message.proofSpecs.map((e) => (e ? proofs_1.ProofSpec.toJSON(e) : undefined));\n }\n else {\n obj.proofSpecs = [];\n }\n if (message.upgradePath) {\n obj.upgradePath = message.upgradePath.map((e) => e);\n }\n else {\n obj.upgradePath = [];\n }\n message.allowUpdateAfterExpiry !== undefined &&\n (obj.allowUpdateAfterExpiry = message.allowUpdateAfterExpiry);\n message.allowUpdateAfterMisbehaviour !== undefined &&\n (obj.allowUpdateAfterMisbehaviour = message.allowUpdateAfterMisbehaviour);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseClientState();\n message.chainId = object.chainId ?? \"\";\n if (object.trustLevel !== undefined && object.trustLevel !== null) {\n message.trustLevel = exports.Fraction.fromPartial(object.trustLevel);\n }\n if (object.trustingPeriod !== undefined && object.trustingPeriod !== null) {\n message.trustingPeriod = duration_1.Duration.fromPartial(object.trustingPeriod);\n }\n if (object.unbondingPeriod !== undefined && object.unbondingPeriod !== null) {\n message.unbondingPeriod = duration_1.Duration.fromPartial(object.unbondingPeriod);\n }\n if (object.maxClockDrift !== undefined && object.maxClockDrift !== null) {\n message.maxClockDrift = duration_1.Duration.fromPartial(object.maxClockDrift);\n }\n if (object.frozenHeight !== undefined && object.frozenHeight !== null) {\n message.frozenHeight = client_1.Height.fromPartial(object.frozenHeight);\n }\n if (object.latestHeight !== undefined && object.latestHeight !== null) {\n message.latestHeight = client_1.Height.fromPartial(object.latestHeight);\n }\n message.proofSpecs = object.proofSpecs?.map((e) => proofs_1.ProofSpec.fromPartial(e)) || [];\n message.upgradePath = object.upgradePath?.map((e) => e) || [];\n message.allowUpdateAfterExpiry = object.allowUpdateAfterExpiry ?? false;\n message.allowUpdateAfterMisbehaviour = object.allowUpdateAfterMisbehaviour ?? false;\n return message;\n },\n};\nfunction createBaseConsensusState() {\n return {\n timestamp: timestamp_1.Timestamp.fromPartial({}),\n root: commitment_1.MerkleRoot.fromPartial({}),\n nextValidatorsHash: new Uint8Array(),\n };\n}\nexports.ConsensusState = {\n typeUrl: \"/ibc.lightclients.tendermint.v1.ConsensusState\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(message.timestamp, writer.uint32(10).fork()).ldelim();\n }\n if (message.root !== undefined) {\n commitment_1.MerkleRoot.encode(message.root, writer.uint32(18).fork()).ldelim();\n }\n if (message.nextValidatorsHash.length !== 0) {\n writer.uint32(26).bytes(message.nextValidatorsHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseConsensusState();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.timestamp = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 2:\n message.root = commitment_1.MerkleRoot.decode(reader, reader.uint32());\n break;\n case 3:\n message.nextValidatorsHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseConsensusState();\n if ((0, helpers_1.isSet)(object.timestamp))\n obj.timestamp = (0, helpers_1.fromJsonTimestamp)(object.timestamp);\n if ((0, helpers_1.isSet)(object.root))\n obj.root = commitment_1.MerkleRoot.fromJSON(object.root);\n if ((0, helpers_1.isSet)(object.nextValidatorsHash))\n obj.nextValidatorsHash = (0, helpers_1.bytesFromBase64)(object.nextValidatorsHash);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.timestamp !== undefined && (obj.timestamp = (0, helpers_1.fromTimestamp)(message.timestamp).toISOString());\n message.root !== undefined && (obj.root = message.root ? commitment_1.MerkleRoot.toJSON(message.root) : undefined);\n message.nextValidatorsHash !== undefined &&\n (obj.nextValidatorsHash = (0, helpers_1.base64FromBytes)(message.nextValidatorsHash !== undefined ? message.nextValidatorsHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseConsensusState();\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = timestamp_1.Timestamp.fromPartial(object.timestamp);\n }\n if (object.root !== undefined && object.root !== null) {\n message.root = commitment_1.MerkleRoot.fromPartial(object.root);\n }\n message.nextValidatorsHash = object.nextValidatorsHash ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseMisbehaviour() {\n return {\n clientId: \"\",\n header1: undefined,\n header2: undefined,\n };\n}\nexports.Misbehaviour = {\n typeUrl: \"/ibc.lightclients.tendermint.v1.Misbehaviour\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.header1 !== undefined) {\n exports.Header.encode(message.header1, writer.uint32(18).fork()).ldelim();\n }\n if (message.header2 !== undefined) {\n exports.Header.encode(message.header2, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMisbehaviour();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.header1 = exports.Header.decode(reader, reader.uint32());\n break;\n case 3:\n message.header2 = exports.Header.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMisbehaviour();\n if ((0, helpers_1.isSet)(object.clientId))\n obj.clientId = String(object.clientId);\n if ((0, helpers_1.isSet)(object.header1))\n obj.header1 = exports.Header.fromJSON(object.header1);\n if ((0, helpers_1.isSet)(object.header2))\n obj.header2 = exports.Header.fromJSON(object.header2);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.header1 !== undefined &&\n (obj.header1 = message.header1 ? exports.Header.toJSON(message.header1) : undefined);\n message.header2 !== undefined &&\n (obj.header2 = message.header2 ? exports.Header.toJSON(message.header2) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMisbehaviour();\n message.clientId = object.clientId ?? \"\";\n if (object.header1 !== undefined && object.header1 !== null) {\n message.header1 = exports.Header.fromPartial(object.header1);\n }\n if (object.header2 !== undefined && object.header2 !== null) {\n message.header2 = exports.Header.fromPartial(object.header2);\n }\n return message;\n },\n};\nfunction createBaseHeader() {\n return {\n signedHeader: undefined,\n validatorSet: undefined,\n trustedHeight: client_1.Height.fromPartial({}),\n trustedValidators: undefined,\n };\n}\nexports.Header = {\n typeUrl: \"/ibc.lightclients.tendermint.v1.Header\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.signedHeader !== undefined) {\n types_1.SignedHeader.encode(message.signedHeader, writer.uint32(10).fork()).ldelim();\n }\n if (message.validatorSet !== undefined) {\n validator_1.ValidatorSet.encode(message.validatorSet, writer.uint32(18).fork()).ldelim();\n }\n if (message.trustedHeight !== undefined) {\n client_1.Height.encode(message.trustedHeight, writer.uint32(26).fork()).ldelim();\n }\n if (message.trustedValidators !== undefined) {\n validator_1.ValidatorSet.encode(message.trustedValidators, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHeader();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signedHeader = types_1.SignedHeader.decode(reader, reader.uint32());\n break;\n case 2:\n message.validatorSet = validator_1.ValidatorSet.decode(reader, reader.uint32());\n break;\n case 3:\n message.trustedHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 4:\n message.trustedValidators = validator_1.ValidatorSet.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseHeader();\n if ((0, helpers_1.isSet)(object.signedHeader))\n obj.signedHeader = types_1.SignedHeader.fromJSON(object.signedHeader);\n if ((0, helpers_1.isSet)(object.validatorSet))\n obj.validatorSet = validator_1.ValidatorSet.fromJSON(object.validatorSet);\n if ((0, helpers_1.isSet)(object.trustedHeight))\n obj.trustedHeight = client_1.Height.fromJSON(object.trustedHeight);\n if ((0, helpers_1.isSet)(object.trustedValidators))\n obj.trustedValidators = validator_1.ValidatorSet.fromJSON(object.trustedValidators);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.signedHeader !== undefined &&\n (obj.signedHeader = message.signedHeader ? types_1.SignedHeader.toJSON(message.signedHeader) : undefined);\n message.validatorSet !== undefined &&\n (obj.validatorSet = message.validatorSet ? validator_1.ValidatorSet.toJSON(message.validatorSet) : undefined);\n message.trustedHeight !== undefined &&\n (obj.trustedHeight = message.trustedHeight ? client_1.Height.toJSON(message.trustedHeight) : undefined);\n message.trustedValidators !== undefined &&\n (obj.trustedValidators = message.trustedValidators\n ? validator_1.ValidatorSet.toJSON(message.trustedValidators)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseHeader();\n if (object.signedHeader !== undefined && object.signedHeader !== null) {\n message.signedHeader = types_1.SignedHeader.fromPartial(object.signedHeader);\n }\n if (object.validatorSet !== undefined && object.validatorSet !== null) {\n message.validatorSet = validator_1.ValidatorSet.fromPartial(object.validatorSet);\n }\n if (object.trustedHeight !== undefined && object.trustedHeight !== null) {\n message.trustedHeight = client_1.Height.fromPartial(object.trustedHeight);\n }\n if (object.trustedValidators !== undefined && object.trustedValidators !== null) {\n message.trustedValidators = validator_1.ValidatorSet.fromPartial(object.trustedValidators);\n }\n return message;\n },\n};\nfunction createBaseFraction() {\n return {\n numerator: BigInt(0),\n denominator: BigInt(0),\n };\n}\nexports.Fraction = {\n typeUrl: \"/ibc.lightclients.tendermint.v1.Fraction\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.numerator !== BigInt(0)) {\n writer.uint32(8).uint64(message.numerator);\n }\n if (message.denominator !== BigInt(0)) {\n writer.uint32(16).uint64(message.denominator);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFraction();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.numerator = reader.uint64();\n break;\n case 2:\n message.denominator = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseFraction();\n if ((0, helpers_1.isSet)(object.numerator))\n obj.numerator = BigInt(object.numerator.toString());\n if ((0, helpers_1.isSet)(object.denominator))\n obj.denominator = BigInt(object.denominator.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.numerator !== undefined && (obj.numerator = (message.numerator || BigInt(0)).toString());\n message.denominator !== undefined && (obj.denominator = (message.denominator || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseFraction();\n if (object.numerator !== undefined && object.numerator !== null) {\n message.numerator = BigInt(object.numerator.toString());\n }\n if (object.denominator !== undefined && object.denominator !== null) {\n message.denominator = BigInt(object.denominator.toString());\n }\n return message;\n },\n};\n//# sourceMappingURL=tendermint.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResponsePrepareProposal = exports.ResponseApplySnapshotChunk = exports.ResponseLoadSnapshotChunk = exports.ResponseOfferSnapshot = exports.ResponseListSnapshots = exports.ResponseCommit = exports.ResponseEndBlock = exports.ResponseDeliverTx = exports.ResponseCheckTx = exports.ResponseBeginBlock = exports.ResponseQuery = exports.ResponseInitChain = exports.ResponseInfo = exports.ResponseFlush = exports.ResponseEcho = exports.ResponseException = exports.Response = exports.RequestProcessProposal = exports.RequestPrepareProposal = exports.RequestApplySnapshotChunk = exports.RequestLoadSnapshotChunk = exports.RequestOfferSnapshot = exports.RequestListSnapshots = exports.RequestCommit = exports.RequestEndBlock = exports.RequestDeliverTx = exports.RequestCheckTx = exports.RequestBeginBlock = exports.RequestQuery = exports.RequestInitChain = exports.RequestInfo = exports.RequestFlush = exports.RequestEcho = exports.Request = exports.misbehaviorTypeToJSON = exports.misbehaviorTypeFromJSON = exports.MisbehaviorType = exports.responseProcessProposal_ProposalStatusToJSON = exports.responseProcessProposal_ProposalStatusFromJSON = exports.ResponseProcessProposal_ProposalStatus = exports.responseApplySnapshotChunk_ResultToJSON = exports.responseApplySnapshotChunk_ResultFromJSON = exports.ResponseApplySnapshotChunk_Result = exports.responseOfferSnapshot_ResultToJSON = exports.responseOfferSnapshot_ResultFromJSON = exports.ResponseOfferSnapshot_Result = exports.checkTxTypeToJSON = exports.checkTxTypeFromJSON = exports.CheckTxType = exports.protobufPackage = void 0;\nexports.ABCIApplicationClientImpl = exports.Snapshot = exports.Misbehavior = exports.ExtendedVoteInfo = exports.VoteInfo = exports.ValidatorUpdate = exports.Validator = exports.TxResult = exports.EventAttribute = exports.Event = exports.ExtendedCommitInfo = exports.CommitInfo = exports.ResponseProcessProposal = void 0;\n/* eslint-disable */\nconst timestamp_1 = require(\"../../google/protobuf/timestamp\");\nconst params_1 = require(\"../types/params\");\nconst types_1 = require(\"../types/types\");\nconst proof_1 = require(\"../crypto/proof\");\nconst keys_1 = require(\"../crypto/keys\");\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"tendermint.abci\";\nvar CheckTxType;\n(function (CheckTxType) {\n CheckTxType[CheckTxType[\"NEW\"] = 0] = \"NEW\";\n CheckTxType[CheckTxType[\"RECHECK\"] = 1] = \"RECHECK\";\n CheckTxType[CheckTxType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(CheckTxType || (exports.CheckTxType = CheckTxType = {}));\nfunction checkTxTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"NEW\":\n return CheckTxType.NEW;\n case 1:\n case \"RECHECK\":\n return CheckTxType.RECHECK;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return CheckTxType.UNRECOGNIZED;\n }\n}\nexports.checkTxTypeFromJSON = checkTxTypeFromJSON;\nfunction checkTxTypeToJSON(object) {\n switch (object) {\n case CheckTxType.NEW:\n return \"NEW\";\n case CheckTxType.RECHECK:\n return \"RECHECK\";\n case CheckTxType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.checkTxTypeToJSON = checkTxTypeToJSON;\nvar ResponseOfferSnapshot_Result;\n(function (ResponseOfferSnapshot_Result) {\n /** UNKNOWN - Unknown result, abort all snapshot restoration */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n /** ACCEPT - Snapshot accepted, apply chunks */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"ACCEPT\"] = 1] = \"ACCEPT\";\n /** ABORT - Abort all snapshot restoration */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"ABORT\"] = 2] = \"ABORT\";\n /** REJECT - Reject this specific snapshot, try others */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"REJECT\"] = 3] = \"REJECT\";\n /** REJECT_FORMAT - Reject all snapshots of this format, try others */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"REJECT_FORMAT\"] = 4] = \"REJECT_FORMAT\";\n /** REJECT_SENDER - Reject all snapshots from the sender(s), try others */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"REJECT_SENDER\"] = 5] = \"REJECT_SENDER\";\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ResponseOfferSnapshot_Result || (exports.ResponseOfferSnapshot_Result = ResponseOfferSnapshot_Result = {}));\nfunction responseOfferSnapshot_ResultFromJSON(object) {\n switch (object) {\n case 0:\n case \"UNKNOWN\":\n return ResponseOfferSnapshot_Result.UNKNOWN;\n case 1:\n case \"ACCEPT\":\n return ResponseOfferSnapshot_Result.ACCEPT;\n case 2:\n case \"ABORT\":\n return ResponseOfferSnapshot_Result.ABORT;\n case 3:\n case \"REJECT\":\n return ResponseOfferSnapshot_Result.REJECT;\n case 4:\n case \"REJECT_FORMAT\":\n return ResponseOfferSnapshot_Result.REJECT_FORMAT;\n case 5:\n case \"REJECT_SENDER\":\n return ResponseOfferSnapshot_Result.REJECT_SENDER;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ResponseOfferSnapshot_Result.UNRECOGNIZED;\n }\n}\nexports.responseOfferSnapshot_ResultFromJSON = responseOfferSnapshot_ResultFromJSON;\nfunction responseOfferSnapshot_ResultToJSON(object) {\n switch (object) {\n case ResponseOfferSnapshot_Result.UNKNOWN:\n return \"UNKNOWN\";\n case ResponseOfferSnapshot_Result.ACCEPT:\n return \"ACCEPT\";\n case ResponseOfferSnapshot_Result.ABORT:\n return \"ABORT\";\n case ResponseOfferSnapshot_Result.REJECT:\n return \"REJECT\";\n case ResponseOfferSnapshot_Result.REJECT_FORMAT:\n return \"REJECT_FORMAT\";\n case ResponseOfferSnapshot_Result.REJECT_SENDER:\n return \"REJECT_SENDER\";\n case ResponseOfferSnapshot_Result.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.responseOfferSnapshot_ResultToJSON = responseOfferSnapshot_ResultToJSON;\nvar ResponseApplySnapshotChunk_Result;\n(function (ResponseApplySnapshotChunk_Result) {\n /** UNKNOWN - Unknown result, abort all snapshot restoration */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n /** ACCEPT - Chunk successfully accepted */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"ACCEPT\"] = 1] = \"ACCEPT\";\n /** ABORT - Abort all snapshot restoration */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"ABORT\"] = 2] = \"ABORT\";\n /** RETRY - Retry chunk (combine with refetch and reject) */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"RETRY\"] = 3] = \"RETRY\";\n /** RETRY_SNAPSHOT - Retry snapshot (combine with refetch and reject) */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"RETRY_SNAPSHOT\"] = 4] = \"RETRY_SNAPSHOT\";\n /** REJECT_SNAPSHOT - Reject this snapshot, try others */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"REJECT_SNAPSHOT\"] = 5] = \"REJECT_SNAPSHOT\";\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ResponseApplySnapshotChunk_Result || (exports.ResponseApplySnapshotChunk_Result = ResponseApplySnapshotChunk_Result = {}));\nfunction responseApplySnapshotChunk_ResultFromJSON(object) {\n switch (object) {\n case 0:\n case \"UNKNOWN\":\n return ResponseApplySnapshotChunk_Result.UNKNOWN;\n case 1:\n case \"ACCEPT\":\n return ResponseApplySnapshotChunk_Result.ACCEPT;\n case 2:\n case \"ABORT\":\n return ResponseApplySnapshotChunk_Result.ABORT;\n case 3:\n case \"RETRY\":\n return ResponseApplySnapshotChunk_Result.RETRY;\n case 4:\n case \"RETRY_SNAPSHOT\":\n return ResponseApplySnapshotChunk_Result.RETRY_SNAPSHOT;\n case 5:\n case \"REJECT_SNAPSHOT\":\n return ResponseApplySnapshotChunk_Result.REJECT_SNAPSHOT;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ResponseApplySnapshotChunk_Result.UNRECOGNIZED;\n }\n}\nexports.responseApplySnapshotChunk_ResultFromJSON = responseApplySnapshotChunk_ResultFromJSON;\nfunction responseApplySnapshotChunk_ResultToJSON(object) {\n switch (object) {\n case ResponseApplySnapshotChunk_Result.UNKNOWN:\n return \"UNKNOWN\";\n case ResponseApplySnapshotChunk_Result.ACCEPT:\n return \"ACCEPT\";\n case ResponseApplySnapshotChunk_Result.ABORT:\n return \"ABORT\";\n case ResponseApplySnapshotChunk_Result.RETRY:\n return \"RETRY\";\n case ResponseApplySnapshotChunk_Result.RETRY_SNAPSHOT:\n return \"RETRY_SNAPSHOT\";\n case ResponseApplySnapshotChunk_Result.REJECT_SNAPSHOT:\n return \"REJECT_SNAPSHOT\";\n case ResponseApplySnapshotChunk_Result.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.responseApplySnapshotChunk_ResultToJSON = responseApplySnapshotChunk_ResultToJSON;\nvar ResponseProcessProposal_ProposalStatus;\n(function (ResponseProcessProposal_ProposalStatus) {\n ResponseProcessProposal_ProposalStatus[ResponseProcessProposal_ProposalStatus[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n ResponseProcessProposal_ProposalStatus[ResponseProcessProposal_ProposalStatus[\"ACCEPT\"] = 1] = \"ACCEPT\";\n ResponseProcessProposal_ProposalStatus[ResponseProcessProposal_ProposalStatus[\"REJECT\"] = 2] = \"REJECT\";\n ResponseProcessProposal_ProposalStatus[ResponseProcessProposal_ProposalStatus[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ResponseProcessProposal_ProposalStatus || (exports.ResponseProcessProposal_ProposalStatus = ResponseProcessProposal_ProposalStatus = {}));\nfunction responseProcessProposal_ProposalStatusFromJSON(object) {\n switch (object) {\n case 0:\n case \"UNKNOWN\":\n return ResponseProcessProposal_ProposalStatus.UNKNOWN;\n case 1:\n case \"ACCEPT\":\n return ResponseProcessProposal_ProposalStatus.ACCEPT;\n case 2:\n case \"REJECT\":\n return ResponseProcessProposal_ProposalStatus.REJECT;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ResponseProcessProposal_ProposalStatus.UNRECOGNIZED;\n }\n}\nexports.responseProcessProposal_ProposalStatusFromJSON = responseProcessProposal_ProposalStatusFromJSON;\nfunction responseProcessProposal_ProposalStatusToJSON(object) {\n switch (object) {\n case ResponseProcessProposal_ProposalStatus.UNKNOWN:\n return \"UNKNOWN\";\n case ResponseProcessProposal_ProposalStatus.ACCEPT:\n return \"ACCEPT\";\n case ResponseProcessProposal_ProposalStatus.REJECT:\n return \"REJECT\";\n case ResponseProcessProposal_ProposalStatus.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.responseProcessProposal_ProposalStatusToJSON = responseProcessProposal_ProposalStatusToJSON;\nvar MisbehaviorType;\n(function (MisbehaviorType) {\n MisbehaviorType[MisbehaviorType[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n MisbehaviorType[MisbehaviorType[\"DUPLICATE_VOTE\"] = 1] = \"DUPLICATE_VOTE\";\n MisbehaviorType[MisbehaviorType[\"LIGHT_CLIENT_ATTACK\"] = 2] = \"LIGHT_CLIENT_ATTACK\";\n MisbehaviorType[MisbehaviorType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(MisbehaviorType || (exports.MisbehaviorType = MisbehaviorType = {}));\nfunction misbehaviorTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"UNKNOWN\":\n return MisbehaviorType.UNKNOWN;\n case 1:\n case \"DUPLICATE_VOTE\":\n return MisbehaviorType.DUPLICATE_VOTE;\n case 2:\n case \"LIGHT_CLIENT_ATTACK\":\n return MisbehaviorType.LIGHT_CLIENT_ATTACK;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return MisbehaviorType.UNRECOGNIZED;\n }\n}\nexports.misbehaviorTypeFromJSON = misbehaviorTypeFromJSON;\nfunction misbehaviorTypeToJSON(object) {\n switch (object) {\n case MisbehaviorType.UNKNOWN:\n return \"UNKNOWN\";\n case MisbehaviorType.DUPLICATE_VOTE:\n return \"DUPLICATE_VOTE\";\n case MisbehaviorType.LIGHT_CLIENT_ATTACK:\n return \"LIGHT_CLIENT_ATTACK\";\n case MisbehaviorType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.misbehaviorTypeToJSON = misbehaviorTypeToJSON;\nfunction createBaseRequest() {\n return {\n echo: undefined,\n flush: undefined,\n info: undefined,\n initChain: undefined,\n query: undefined,\n beginBlock: undefined,\n checkTx: undefined,\n deliverTx: undefined,\n endBlock: undefined,\n commit: undefined,\n listSnapshots: undefined,\n offerSnapshot: undefined,\n loadSnapshotChunk: undefined,\n applySnapshotChunk: undefined,\n prepareProposal: undefined,\n processProposal: undefined,\n };\n}\nexports.Request = {\n typeUrl: \"/tendermint.abci.Request\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.echo !== undefined) {\n exports.RequestEcho.encode(message.echo, writer.uint32(10).fork()).ldelim();\n }\n if (message.flush !== undefined) {\n exports.RequestFlush.encode(message.flush, writer.uint32(18).fork()).ldelim();\n }\n if (message.info !== undefined) {\n exports.RequestInfo.encode(message.info, writer.uint32(26).fork()).ldelim();\n }\n if (message.initChain !== undefined) {\n exports.RequestInitChain.encode(message.initChain, writer.uint32(42).fork()).ldelim();\n }\n if (message.query !== undefined) {\n exports.RequestQuery.encode(message.query, writer.uint32(50).fork()).ldelim();\n }\n if (message.beginBlock !== undefined) {\n exports.RequestBeginBlock.encode(message.beginBlock, writer.uint32(58).fork()).ldelim();\n }\n if (message.checkTx !== undefined) {\n exports.RequestCheckTx.encode(message.checkTx, writer.uint32(66).fork()).ldelim();\n }\n if (message.deliverTx !== undefined) {\n exports.RequestDeliverTx.encode(message.deliverTx, writer.uint32(74).fork()).ldelim();\n }\n if (message.endBlock !== undefined) {\n exports.RequestEndBlock.encode(message.endBlock, writer.uint32(82).fork()).ldelim();\n }\n if (message.commit !== undefined) {\n exports.RequestCommit.encode(message.commit, writer.uint32(90).fork()).ldelim();\n }\n if (message.listSnapshots !== undefined) {\n exports.RequestListSnapshots.encode(message.listSnapshots, writer.uint32(98).fork()).ldelim();\n }\n if (message.offerSnapshot !== undefined) {\n exports.RequestOfferSnapshot.encode(message.offerSnapshot, writer.uint32(106).fork()).ldelim();\n }\n if (message.loadSnapshotChunk !== undefined) {\n exports.RequestLoadSnapshotChunk.encode(message.loadSnapshotChunk, writer.uint32(114).fork()).ldelim();\n }\n if (message.applySnapshotChunk !== undefined) {\n exports.RequestApplySnapshotChunk.encode(message.applySnapshotChunk, writer.uint32(122).fork()).ldelim();\n }\n if (message.prepareProposal !== undefined) {\n exports.RequestPrepareProposal.encode(message.prepareProposal, writer.uint32(130).fork()).ldelim();\n }\n if (message.processProposal !== undefined) {\n exports.RequestProcessProposal.encode(message.processProposal, writer.uint32(138).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.echo = exports.RequestEcho.decode(reader, reader.uint32());\n break;\n case 2:\n message.flush = exports.RequestFlush.decode(reader, reader.uint32());\n break;\n case 3:\n message.info = exports.RequestInfo.decode(reader, reader.uint32());\n break;\n case 5:\n message.initChain = exports.RequestInitChain.decode(reader, reader.uint32());\n break;\n case 6:\n message.query = exports.RequestQuery.decode(reader, reader.uint32());\n break;\n case 7:\n message.beginBlock = exports.RequestBeginBlock.decode(reader, reader.uint32());\n break;\n case 8:\n message.checkTx = exports.RequestCheckTx.decode(reader, reader.uint32());\n break;\n case 9:\n message.deliverTx = exports.RequestDeliverTx.decode(reader, reader.uint32());\n break;\n case 10:\n message.endBlock = exports.RequestEndBlock.decode(reader, reader.uint32());\n break;\n case 11:\n message.commit = exports.RequestCommit.decode(reader, reader.uint32());\n break;\n case 12:\n message.listSnapshots = exports.RequestListSnapshots.decode(reader, reader.uint32());\n break;\n case 13:\n message.offerSnapshot = exports.RequestOfferSnapshot.decode(reader, reader.uint32());\n break;\n case 14:\n message.loadSnapshotChunk = exports.RequestLoadSnapshotChunk.decode(reader, reader.uint32());\n break;\n case 15:\n message.applySnapshotChunk = exports.RequestApplySnapshotChunk.decode(reader, reader.uint32());\n break;\n case 16:\n message.prepareProposal = exports.RequestPrepareProposal.decode(reader, reader.uint32());\n break;\n case 17:\n message.processProposal = exports.RequestProcessProposal.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequest();\n if ((0, helpers_1.isSet)(object.echo))\n obj.echo = exports.RequestEcho.fromJSON(object.echo);\n if ((0, helpers_1.isSet)(object.flush))\n obj.flush = exports.RequestFlush.fromJSON(object.flush);\n if ((0, helpers_1.isSet)(object.info))\n obj.info = exports.RequestInfo.fromJSON(object.info);\n if ((0, helpers_1.isSet)(object.initChain))\n obj.initChain = exports.RequestInitChain.fromJSON(object.initChain);\n if ((0, helpers_1.isSet)(object.query))\n obj.query = exports.RequestQuery.fromJSON(object.query);\n if ((0, helpers_1.isSet)(object.beginBlock))\n obj.beginBlock = exports.RequestBeginBlock.fromJSON(object.beginBlock);\n if ((0, helpers_1.isSet)(object.checkTx))\n obj.checkTx = exports.RequestCheckTx.fromJSON(object.checkTx);\n if ((0, helpers_1.isSet)(object.deliverTx))\n obj.deliverTx = exports.RequestDeliverTx.fromJSON(object.deliverTx);\n if ((0, helpers_1.isSet)(object.endBlock))\n obj.endBlock = exports.RequestEndBlock.fromJSON(object.endBlock);\n if ((0, helpers_1.isSet)(object.commit))\n obj.commit = exports.RequestCommit.fromJSON(object.commit);\n if ((0, helpers_1.isSet)(object.listSnapshots))\n obj.listSnapshots = exports.RequestListSnapshots.fromJSON(object.listSnapshots);\n if ((0, helpers_1.isSet)(object.offerSnapshot))\n obj.offerSnapshot = exports.RequestOfferSnapshot.fromJSON(object.offerSnapshot);\n if ((0, helpers_1.isSet)(object.loadSnapshotChunk))\n obj.loadSnapshotChunk = exports.RequestLoadSnapshotChunk.fromJSON(object.loadSnapshotChunk);\n if ((0, helpers_1.isSet)(object.applySnapshotChunk))\n obj.applySnapshotChunk = exports.RequestApplySnapshotChunk.fromJSON(object.applySnapshotChunk);\n if ((0, helpers_1.isSet)(object.prepareProposal))\n obj.prepareProposal = exports.RequestPrepareProposal.fromJSON(object.prepareProposal);\n if ((0, helpers_1.isSet)(object.processProposal))\n obj.processProposal = exports.RequestProcessProposal.fromJSON(object.processProposal);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.echo !== undefined && (obj.echo = message.echo ? exports.RequestEcho.toJSON(message.echo) : undefined);\n message.flush !== undefined &&\n (obj.flush = message.flush ? exports.RequestFlush.toJSON(message.flush) : undefined);\n message.info !== undefined && (obj.info = message.info ? exports.RequestInfo.toJSON(message.info) : undefined);\n message.initChain !== undefined &&\n (obj.initChain = message.initChain ? exports.RequestInitChain.toJSON(message.initChain) : undefined);\n message.query !== undefined &&\n (obj.query = message.query ? exports.RequestQuery.toJSON(message.query) : undefined);\n message.beginBlock !== undefined &&\n (obj.beginBlock = message.beginBlock ? exports.RequestBeginBlock.toJSON(message.beginBlock) : undefined);\n message.checkTx !== undefined &&\n (obj.checkTx = message.checkTx ? exports.RequestCheckTx.toJSON(message.checkTx) : undefined);\n message.deliverTx !== undefined &&\n (obj.deliverTx = message.deliverTx ? exports.RequestDeliverTx.toJSON(message.deliverTx) : undefined);\n message.endBlock !== undefined &&\n (obj.endBlock = message.endBlock ? exports.RequestEndBlock.toJSON(message.endBlock) : undefined);\n message.commit !== undefined &&\n (obj.commit = message.commit ? exports.RequestCommit.toJSON(message.commit) : undefined);\n message.listSnapshots !== undefined &&\n (obj.listSnapshots = message.listSnapshots\n ? exports.RequestListSnapshots.toJSON(message.listSnapshots)\n : undefined);\n message.offerSnapshot !== undefined &&\n (obj.offerSnapshot = message.offerSnapshot\n ? exports.RequestOfferSnapshot.toJSON(message.offerSnapshot)\n : undefined);\n message.loadSnapshotChunk !== undefined &&\n (obj.loadSnapshotChunk = message.loadSnapshotChunk\n ? exports.RequestLoadSnapshotChunk.toJSON(message.loadSnapshotChunk)\n : undefined);\n message.applySnapshotChunk !== undefined &&\n (obj.applySnapshotChunk = message.applySnapshotChunk\n ? exports.RequestApplySnapshotChunk.toJSON(message.applySnapshotChunk)\n : undefined);\n message.prepareProposal !== undefined &&\n (obj.prepareProposal = message.prepareProposal\n ? exports.RequestPrepareProposal.toJSON(message.prepareProposal)\n : undefined);\n message.processProposal !== undefined &&\n (obj.processProposal = message.processProposal\n ? exports.RequestProcessProposal.toJSON(message.processProposal)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequest();\n if (object.echo !== undefined && object.echo !== null) {\n message.echo = exports.RequestEcho.fromPartial(object.echo);\n }\n if (object.flush !== undefined && object.flush !== null) {\n message.flush = exports.RequestFlush.fromPartial(object.flush);\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = exports.RequestInfo.fromPartial(object.info);\n }\n if (object.initChain !== undefined && object.initChain !== null) {\n message.initChain = exports.RequestInitChain.fromPartial(object.initChain);\n }\n if (object.query !== undefined && object.query !== null) {\n message.query = exports.RequestQuery.fromPartial(object.query);\n }\n if (object.beginBlock !== undefined && object.beginBlock !== null) {\n message.beginBlock = exports.RequestBeginBlock.fromPartial(object.beginBlock);\n }\n if (object.checkTx !== undefined && object.checkTx !== null) {\n message.checkTx = exports.RequestCheckTx.fromPartial(object.checkTx);\n }\n if (object.deliverTx !== undefined && object.deliverTx !== null) {\n message.deliverTx = exports.RequestDeliverTx.fromPartial(object.deliverTx);\n }\n if (object.endBlock !== undefined && object.endBlock !== null) {\n message.endBlock = exports.RequestEndBlock.fromPartial(object.endBlock);\n }\n if (object.commit !== undefined && object.commit !== null) {\n message.commit = exports.RequestCommit.fromPartial(object.commit);\n }\n if (object.listSnapshots !== undefined && object.listSnapshots !== null) {\n message.listSnapshots = exports.RequestListSnapshots.fromPartial(object.listSnapshots);\n }\n if (object.offerSnapshot !== undefined && object.offerSnapshot !== null) {\n message.offerSnapshot = exports.RequestOfferSnapshot.fromPartial(object.offerSnapshot);\n }\n if (object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null) {\n message.loadSnapshotChunk = exports.RequestLoadSnapshotChunk.fromPartial(object.loadSnapshotChunk);\n }\n if (object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null) {\n message.applySnapshotChunk = exports.RequestApplySnapshotChunk.fromPartial(object.applySnapshotChunk);\n }\n if (object.prepareProposal !== undefined && object.prepareProposal !== null) {\n message.prepareProposal = exports.RequestPrepareProposal.fromPartial(object.prepareProposal);\n }\n if (object.processProposal !== undefined && object.processProposal !== null) {\n message.processProposal = exports.RequestProcessProposal.fromPartial(object.processProposal);\n }\n return message;\n },\n};\nfunction createBaseRequestEcho() {\n return {\n message: \"\",\n };\n}\nexports.RequestEcho = {\n typeUrl: \"/tendermint.abci.RequestEcho\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.message !== \"\") {\n writer.uint32(10).string(message.message);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestEcho();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.message = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestEcho();\n if ((0, helpers_1.isSet)(object.message))\n obj.message = String(object.message);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.message !== undefined && (obj.message = message.message);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestEcho();\n message.message = object.message ?? \"\";\n return message;\n },\n};\nfunction createBaseRequestFlush() {\n return {};\n}\nexports.RequestFlush = {\n typeUrl: \"/tendermint.abci.RequestFlush\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestFlush();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseRequestFlush();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseRequestFlush();\n return message;\n },\n};\nfunction createBaseRequestInfo() {\n return {\n version: \"\",\n blockVersion: BigInt(0),\n p2pVersion: BigInt(0),\n abciVersion: \"\",\n };\n}\nexports.RequestInfo = {\n typeUrl: \"/tendermint.abci.RequestInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.version !== \"\") {\n writer.uint32(10).string(message.version);\n }\n if (message.blockVersion !== BigInt(0)) {\n writer.uint32(16).uint64(message.blockVersion);\n }\n if (message.p2pVersion !== BigInt(0)) {\n writer.uint32(24).uint64(message.p2pVersion);\n }\n if (message.abciVersion !== \"\") {\n writer.uint32(34).string(message.abciVersion);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.version = reader.string();\n break;\n case 2:\n message.blockVersion = reader.uint64();\n break;\n case 3:\n message.p2pVersion = reader.uint64();\n break;\n case 4:\n message.abciVersion = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestInfo();\n if ((0, helpers_1.isSet)(object.version))\n obj.version = String(object.version);\n if ((0, helpers_1.isSet)(object.blockVersion))\n obj.blockVersion = BigInt(object.blockVersion.toString());\n if ((0, helpers_1.isSet)(object.p2pVersion))\n obj.p2pVersion = BigInt(object.p2pVersion.toString());\n if ((0, helpers_1.isSet)(object.abciVersion))\n obj.abciVersion = String(object.abciVersion);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.version !== undefined && (obj.version = message.version);\n message.blockVersion !== undefined && (obj.blockVersion = (message.blockVersion || BigInt(0)).toString());\n message.p2pVersion !== undefined && (obj.p2pVersion = (message.p2pVersion || BigInt(0)).toString());\n message.abciVersion !== undefined && (obj.abciVersion = message.abciVersion);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestInfo();\n message.version = object.version ?? \"\";\n if (object.blockVersion !== undefined && object.blockVersion !== null) {\n message.blockVersion = BigInt(object.blockVersion.toString());\n }\n if (object.p2pVersion !== undefined && object.p2pVersion !== null) {\n message.p2pVersion = BigInt(object.p2pVersion.toString());\n }\n message.abciVersion = object.abciVersion ?? \"\";\n return message;\n },\n};\nfunction createBaseRequestInitChain() {\n return {\n time: timestamp_1.Timestamp.fromPartial({}),\n chainId: \"\",\n consensusParams: undefined,\n validators: [],\n appStateBytes: new Uint8Array(),\n initialHeight: BigInt(0),\n };\n}\nexports.RequestInitChain = {\n typeUrl: \"/tendermint.abci.RequestInitChain\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(message.time, writer.uint32(10).fork()).ldelim();\n }\n if (message.chainId !== \"\") {\n writer.uint32(18).string(message.chainId);\n }\n if (message.consensusParams !== undefined) {\n params_1.ConsensusParams.encode(message.consensusParams, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.validators) {\n exports.ValidatorUpdate.encode(v, writer.uint32(34).fork()).ldelim();\n }\n if (message.appStateBytes.length !== 0) {\n writer.uint32(42).bytes(message.appStateBytes);\n }\n if (message.initialHeight !== BigInt(0)) {\n writer.uint32(48).int64(message.initialHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestInitChain();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.time = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 2:\n message.chainId = reader.string();\n break;\n case 3:\n message.consensusParams = params_1.ConsensusParams.decode(reader, reader.uint32());\n break;\n case 4:\n message.validators.push(exports.ValidatorUpdate.decode(reader, reader.uint32()));\n break;\n case 5:\n message.appStateBytes = reader.bytes();\n break;\n case 6:\n message.initialHeight = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestInitChain();\n if ((0, helpers_1.isSet)(object.time))\n obj.time = (0, helpers_1.fromJsonTimestamp)(object.time);\n if ((0, helpers_1.isSet)(object.chainId))\n obj.chainId = String(object.chainId);\n if ((0, helpers_1.isSet)(object.consensusParams))\n obj.consensusParams = params_1.ConsensusParams.fromJSON(object.consensusParams);\n if (Array.isArray(object?.validators))\n obj.validators = object.validators.map((e) => exports.ValidatorUpdate.fromJSON(e));\n if ((0, helpers_1.isSet)(object.appStateBytes))\n obj.appStateBytes = (0, helpers_1.bytesFromBase64)(object.appStateBytes);\n if ((0, helpers_1.isSet)(object.initialHeight))\n obj.initialHeight = BigInt(object.initialHeight.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.time !== undefined && (obj.time = (0, helpers_1.fromTimestamp)(message.time).toISOString());\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.consensusParams !== undefined &&\n (obj.consensusParams = message.consensusParams\n ? params_1.ConsensusParams.toJSON(message.consensusParams)\n : undefined);\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? exports.ValidatorUpdate.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.appStateBytes !== undefined &&\n (obj.appStateBytes = (0, helpers_1.base64FromBytes)(message.appStateBytes !== undefined ? message.appStateBytes : new Uint8Array()));\n message.initialHeight !== undefined &&\n (obj.initialHeight = (message.initialHeight || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestInitChain();\n if (object.time !== undefined && object.time !== null) {\n message.time = timestamp_1.Timestamp.fromPartial(object.time);\n }\n message.chainId = object.chainId ?? \"\";\n if (object.consensusParams !== undefined && object.consensusParams !== null) {\n message.consensusParams = params_1.ConsensusParams.fromPartial(object.consensusParams);\n }\n message.validators = object.validators?.map((e) => exports.ValidatorUpdate.fromPartial(e)) || [];\n message.appStateBytes = object.appStateBytes ?? new Uint8Array();\n if (object.initialHeight !== undefined && object.initialHeight !== null) {\n message.initialHeight = BigInt(object.initialHeight.toString());\n }\n return message;\n },\n};\nfunction createBaseRequestQuery() {\n return {\n data: new Uint8Array(),\n path: \"\",\n height: BigInt(0),\n prove: false,\n };\n}\nexports.RequestQuery = {\n typeUrl: \"/tendermint.abci.RequestQuery\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n if (message.path !== \"\") {\n writer.uint32(18).string(message.path);\n }\n if (message.height !== BigInt(0)) {\n writer.uint32(24).int64(message.height);\n }\n if (message.prove === true) {\n writer.uint32(32).bool(message.prove);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestQuery();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n case 2:\n message.path = reader.string();\n break;\n case 3:\n message.height = reader.int64();\n break;\n case 4:\n message.prove = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestQuery();\n if ((0, helpers_1.isSet)(object.data))\n obj.data = (0, helpers_1.bytesFromBase64)(object.data);\n if ((0, helpers_1.isSet)(object.path))\n obj.path = String(object.path);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.prove))\n obj.prove = Boolean(object.prove);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array()));\n message.path !== undefined && (obj.path = message.path);\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.prove !== undefined && (obj.prove = message.prove);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestQuery();\n message.data = object.data ?? new Uint8Array();\n message.path = object.path ?? \"\";\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n message.prove = object.prove ?? false;\n return message;\n },\n};\nfunction createBaseRequestBeginBlock() {\n return {\n hash: new Uint8Array(),\n header: types_1.Header.fromPartial({}),\n lastCommitInfo: exports.CommitInfo.fromPartial({}),\n byzantineValidators: [],\n };\n}\nexports.RequestBeginBlock = {\n typeUrl: \"/tendermint.abci.RequestBeginBlock\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.hash.length !== 0) {\n writer.uint32(10).bytes(message.hash);\n }\n if (message.header !== undefined) {\n types_1.Header.encode(message.header, writer.uint32(18).fork()).ldelim();\n }\n if (message.lastCommitInfo !== undefined) {\n exports.CommitInfo.encode(message.lastCommitInfo, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.byzantineValidators) {\n exports.Misbehavior.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestBeginBlock();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.bytes();\n break;\n case 2:\n message.header = types_1.Header.decode(reader, reader.uint32());\n break;\n case 3:\n message.lastCommitInfo = exports.CommitInfo.decode(reader, reader.uint32());\n break;\n case 4:\n message.byzantineValidators.push(exports.Misbehavior.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestBeginBlock();\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = (0, helpers_1.bytesFromBase64)(object.hash);\n if ((0, helpers_1.isSet)(object.header))\n obj.header = types_1.Header.fromJSON(object.header);\n if ((0, helpers_1.isSet)(object.lastCommitInfo))\n obj.lastCommitInfo = exports.CommitInfo.fromJSON(object.lastCommitInfo);\n if (Array.isArray(object?.byzantineValidators))\n obj.byzantineValidators = object.byzantineValidators.map((e) => exports.Misbehavior.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined &&\n (obj.hash = (0, helpers_1.base64FromBytes)(message.hash !== undefined ? message.hash : new Uint8Array()));\n message.header !== undefined && (obj.header = message.header ? types_1.Header.toJSON(message.header) : undefined);\n message.lastCommitInfo !== undefined &&\n (obj.lastCommitInfo = message.lastCommitInfo ? exports.CommitInfo.toJSON(message.lastCommitInfo) : undefined);\n if (message.byzantineValidators) {\n obj.byzantineValidators = message.byzantineValidators.map((e) => e ? exports.Misbehavior.toJSON(e) : undefined);\n }\n else {\n obj.byzantineValidators = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestBeginBlock();\n message.hash = object.hash ?? new Uint8Array();\n if (object.header !== undefined && object.header !== null) {\n message.header = types_1.Header.fromPartial(object.header);\n }\n if (object.lastCommitInfo !== undefined && object.lastCommitInfo !== null) {\n message.lastCommitInfo = exports.CommitInfo.fromPartial(object.lastCommitInfo);\n }\n message.byzantineValidators = object.byzantineValidators?.map((e) => exports.Misbehavior.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseRequestCheckTx() {\n return {\n tx: new Uint8Array(),\n type: 0,\n };\n}\nexports.RequestCheckTx = {\n typeUrl: \"/tendermint.abci.RequestCheckTx\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.tx.length !== 0) {\n writer.uint32(10).bytes(message.tx);\n }\n if (message.type !== 0) {\n writer.uint32(16).int32(message.type);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestCheckTx();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = reader.bytes();\n break;\n case 2:\n message.type = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestCheckTx();\n if ((0, helpers_1.isSet)(object.tx))\n obj.tx = (0, helpers_1.bytesFromBase64)(object.tx);\n if ((0, helpers_1.isSet)(object.type))\n obj.type = checkTxTypeFromJSON(object.type);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined &&\n (obj.tx = (0, helpers_1.base64FromBytes)(message.tx !== undefined ? message.tx : new Uint8Array()));\n message.type !== undefined && (obj.type = checkTxTypeToJSON(message.type));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestCheckTx();\n message.tx = object.tx ?? new Uint8Array();\n message.type = object.type ?? 0;\n return message;\n },\n};\nfunction createBaseRequestDeliverTx() {\n return {\n tx: new Uint8Array(),\n };\n}\nexports.RequestDeliverTx = {\n typeUrl: \"/tendermint.abci.RequestDeliverTx\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.tx.length !== 0) {\n writer.uint32(10).bytes(message.tx);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestDeliverTx();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestDeliverTx();\n if ((0, helpers_1.isSet)(object.tx))\n obj.tx = (0, helpers_1.bytesFromBase64)(object.tx);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined &&\n (obj.tx = (0, helpers_1.base64FromBytes)(message.tx !== undefined ? message.tx : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestDeliverTx();\n message.tx = object.tx ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseRequestEndBlock() {\n return {\n height: BigInt(0),\n };\n}\nexports.RequestEndBlock = {\n typeUrl: \"/tendermint.abci.RequestEndBlock\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.height !== BigInt(0)) {\n writer.uint32(8).int64(message.height);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestEndBlock();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestEndBlock();\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestEndBlock();\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n return message;\n },\n};\nfunction createBaseRequestCommit() {\n return {};\n}\nexports.RequestCommit = {\n typeUrl: \"/tendermint.abci.RequestCommit\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestCommit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseRequestCommit();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseRequestCommit();\n return message;\n },\n};\nfunction createBaseRequestListSnapshots() {\n return {};\n}\nexports.RequestListSnapshots = {\n typeUrl: \"/tendermint.abci.RequestListSnapshots\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestListSnapshots();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseRequestListSnapshots();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseRequestListSnapshots();\n return message;\n },\n};\nfunction createBaseRequestOfferSnapshot() {\n return {\n snapshot: undefined,\n appHash: new Uint8Array(),\n };\n}\nexports.RequestOfferSnapshot = {\n typeUrl: \"/tendermint.abci.RequestOfferSnapshot\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.snapshot !== undefined) {\n exports.Snapshot.encode(message.snapshot, writer.uint32(10).fork()).ldelim();\n }\n if (message.appHash.length !== 0) {\n writer.uint32(18).bytes(message.appHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestOfferSnapshot();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.snapshot = exports.Snapshot.decode(reader, reader.uint32());\n break;\n case 2:\n message.appHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestOfferSnapshot();\n if ((0, helpers_1.isSet)(object.snapshot))\n obj.snapshot = exports.Snapshot.fromJSON(object.snapshot);\n if ((0, helpers_1.isSet)(object.appHash))\n obj.appHash = (0, helpers_1.bytesFromBase64)(object.appHash);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.snapshot !== undefined &&\n (obj.snapshot = message.snapshot ? exports.Snapshot.toJSON(message.snapshot) : undefined);\n message.appHash !== undefined &&\n (obj.appHash = (0, helpers_1.base64FromBytes)(message.appHash !== undefined ? message.appHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestOfferSnapshot();\n if (object.snapshot !== undefined && object.snapshot !== null) {\n message.snapshot = exports.Snapshot.fromPartial(object.snapshot);\n }\n message.appHash = object.appHash ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseRequestLoadSnapshotChunk() {\n return {\n height: BigInt(0),\n format: 0,\n chunk: 0,\n };\n}\nexports.RequestLoadSnapshotChunk = {\n typeUrl: \"/tendermint.abci.RequestLoadSnapshotChunk\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.height !== BigInt(0)) {\n writer.uint32(8).uint64(message.height);\n }\n if (message.format !== 0) {\n writer.uint32(16).uint32(message.format);\n }\n if (message.chunk !== 0) {\n writer.uint32(24).uint32(message.chunk);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestLoadSnapshotChunk();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.uint64();\n break;\n case 2:\n message.format = reader.uint32();\n break;\n case 3:\n message.chunk = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestLoadSnapshotChunk();\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.format))\n obj.format = Number(object.format);\n if ((0, helpers_1.isSet)(object.chunk))\n obj.chunk = Number(object.chunk);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.format !== undefined && (obj.format = Math.round(message.format));\n message.chunk !== undefined && (obj.chunk = Math.round(message.chunk));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestLoadSnapshotChunk();\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n message.format = object.format ?? 0;\n message.chunk = object.chunk ?? 0;\n return message;\n },\n};\nfunction createBaseRequestApplySnapshotChunk() {\n return {\n index: 0,\n chunk: new Uint8Array(),\n sender: \"\",\n };\n}\nexports.RequestApplySnapshotChunk = {\n typeUrl: \"/tendermint.abci.RequestApplySnapshotChunk\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.index !== 0) {\n writer.uint32(8).uint32(message.index);\n }\n if (message.chunk.length !== 0) {\n writer.uint32(18).bytes(message.chunk);\n }\n if (message.sender !== \"\") {\n writer.uint32(26).string(message.sender);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestApplySnapshotChunk();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.index = reader.uint32();\n break;\n case 2:\n message.chunk = reader.bytes();\n break;\n case 3:\n message.sender = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestApplySnapshotChunk();\n if ((0, helpers_1.isSet)(object.index))\n obj.index = Number(object.index);\n if ((0, helpers_1.isSet)(object.chunk))\n obj.chunk = (0, helpers_1.bytesFromBase64)(object.chunk);\n if ((0, helpers_1.isSet)(object.sender))\n obj.sender = String(object.sender);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.index !== undefined && (obj.index = Math.round(message.index));\n message.chunk !== undefined &&\n (obj.chunk = (0, helpers_1.base64FromBytes)(message.chunk !== undefined ? message.chunk : new Uint8Array()));\n message.sender !== undefined && (obj.sender = message.sender);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestApplySnapshotChunk();\n message.index = object.index ?? 0;\n message.chunk = object.chunk ?? new Uint8Array();\n message.sender = object.sender ?? \"\";\n return message;\n },\n};\nfunction createBaseRequestPrepareProposal() {\n return {\n maxTxBytes: BigInt(0),\n txs: [],\n localLastCommit: exports.ExtendedCommitInfo.fromPartial({}),\n misbehavior: [],\n height: BigInt(0),\n time: timestamp_1.Timestamp.fromPartial({}),\n nextValidatorsHash: new Uint8Array(),\n proposerAddress: new Uint8Array(),\n };\n}\nexports.RequestPrepareProposal = {\n typeUrl: \"/tendermint.abci.RequestPrepareProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.maxTxBytes !== BigInt(0)) {\n writer.uint32(8).int64(message.maxTxBytes);\n }\n for (const v of message.txs) {\n writer.uint32(18).bytes(v);\n }\n if (message.localLastCommit !== undefined) {\n exports.ExtendedCommitInfo.encode(message.localLastCommit, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.misbehavior) {\n exports.Misbehavior.encode(v, writer.uint32(34).fork()).ldelim();\n }\n if (message.height !== BigInt(0)) {\n writer.uint32(40).int64(message.height);\n }\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(message.time, writer.uint32(50).fork()).ldelim();\n }\n if (message.nextValidatorsHash.length !== 0) {\n writer.uint32(58).bytes(message.nextValidatorsHash);\n }\n if (message.proposerAddress.length !== 0) {\n writer.uint32(66).bytes(message.proposerAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestPrepareProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxTxBytes = reader.int64();\n break;\n case 2:\n message.txs.push(reader.bytes());\n break;\n case 3:\n message.localLastCommit = exports.ExtendedCommitInfo.decode(reader, reader.uint32());\n break;\n case 4:\n message.misbehavior.push(exports.Misbehavior.decode(reader, reader.uint32()));\n break;\n case 5:\n message.height = reader.int64();\n break;\n case 6:\n message.time = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 7:\n message.nextValidatorsHash = reader.bytes();\n break;\n case 8:\n message.proposerAddress = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestPrepareProposal();\n if ((0, helpers_1.isSet)(object.maxTxBytes))\n obj.maxTxBytes = BigInt(object.maxTxBytes.toString());\n if (Array.isArray(object?.txs))\n obj.txs = object.txs.map((e) => (0, helpers_1.bytesFromBase64)(e));\n if ((0, helpers_1.isSet)(object.localLastCommit))\n obj.localLastCommit = exports.ExtendedCommitInfo.fromJSON(object.localLastCommit);\n if (Array.isArray(object?.misbehavior))\n obj.misbehavior = object.misbehavior.map((e) => exports.Misbehavior.fromJSON(e));\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.time))\n obj.time = (0, helpers_1.fromJsonTimestamp)(object.time);\n if ((0, helpers_1.isSet)(object.nextValidatorsHash))\n obj.nextValidatorsHash = (0, helpers_1.bytesFromBase64)(object.nextValidatorsHash);\n if ((0, helpers_1.isSet)(object.proposerAddress))\n obj.proposerAddress = (0, helpers_1.bytesFromBase64)(object.proposerAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.maxTxBytes !== undefined && (obj.maxTxBytes = (message.maxTxBytes || BigInt(0)).toString());\n if (message.txs) {\n obj.txs = message.txs.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.txs = [];\n }\n message.localLastCommit !== undefined &&\n (obj.localLastCommit = message.localLastCommit\n ? exports.ExtendedCommitInfo.toJSON(message.localLastCommit)\n : undefined);\n if (message.misbehavior) {\n obj.misbehavior = message.misbehavior.map((e) => (e ? exports.Misbehavior.toJSON(e) : undefined));\n }\n else {\n obj.misbehavior = [];\n }\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.time !== undefined && (obj.time = (0, helpers_1.fromTimestamp)(message.time).toISOString());\n message.nextValidatorsHash !== undefined &&\n (obj.nextValidatorsHash = (0, helpers_1.base64FromBytes)(message.nextValidatorsHash !== undefined ? message.nextValidatorsHash : new Uint8Array()));\n message.proposerAddress !== undefined &&\n (obj.proposerAddress = (0, helpers_1.base64FromBytes)(message.proposerAddress !== undefined ? message.proposerAddress : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestPrepareProposal();\n if (object.maxTxBytes !== undefined && object.maxTxBytes !== null) {\n message.maxTxBytes = BigInt(object.maxTxBytes.toString());\n }\n message.txs = object.txs?.map((e) => e) || [];\n if (object.localLastCommit !== undefined && object.localLastCommit !== null) {\n message.localLastCommit = exports.ExtendedCommitInfo.fromPartial(object.localLastCommit);\n }\n message.misbehavior = object.misbehavior?.map((e) => exports.Misbehavior.fromPartial(e)) || [];\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = timestamp_1.Timestamp.fromPartial(object.time);\n }\n message.nextValidatorsHash = object.nextValidatorsHash ?? new Uint8Array();\n message.proposerAddress = object.proposerAddress ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseRequestProcessProposal() {\n return {\n txs: [],\n proposedLastCommit: exports.CommitInfo.fromPartial({}),\n misbehavior: [],\n hash: new Uint8Array(),\n height: BigInt(0),\n time: timestamp_1.Timestamp.fromPartial({}),\n nextValidatorsHash: new Uint8Array(),\n proposerAddress: new Uint8Array(),\n };\n}\nexports.RequestProcessProposal = {\n typeUrl: \"/tendermint.abci.RequestProcessProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.txs) {\n writer.uint32(10).bytes(v);\n }\n if (message.proposedLastCommit !== undefined) {\n exports.CommitInfo.encode(message.proposedLastCommit, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.misbehavior) {\n exports.Misbehavior.encode(v, writer.uint32(26).fork()).ldelim();\n }\n if (message.hash.length !== 0) {\n writer.uint32(34).bytes(message.hash);\n }\n if (message.height !== BigInt(0)) {\n writer.uint32(40).int64(message.height);\n }\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(message.time, writer.uint32(50).fork()).ldelim();\n }\n if (message.nextValidatorsHash.length !== 0) {\n writer.uint32(58).bytes(message.nextValidatorsHash);\n }\n if (message.proposerAddress.length !== 0) {\n writer.uint32(66).bytes(message.proposerAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestProcessProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txs.push(reader.bytes());\n break;\n case 2:\n message.proposedLastCommit = exports.CommitInfo.decode(reader, reader.uint32());\n break;\n case 3:\n message.misbehavior.push(exports.Misbehavior.decode(reader, reader.uint32()));\n break;\n case 4:\n message.hash = reader.bytes();\n break;\n case 5:\n message.height = reader.int64();\n break;\n case 6:\n message.time = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 7:\n message.nextValidatorsHash = reader.bytes();\n break;\n case 8:\n message.proposerAddress = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseRequestProcessProposal();\n if (Array.isArray(object?.txs))\n obj.txs = object.txs.map((e) => (0, helpers_1.bytesFromBase64)(e));\n if ((0, helpers_1.isSet)(object.proposedLastCommit))\n obj.proposedLastCommit = exports.CommitInfo.fromJSON(object.proposedLastCommit);\n if (Array.isArray(object?.misbehavior))\n obj.misbehavior = object.misbehavior.map((e) => exports.Misbehavior.fromJSON(e));\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = (0, helpers_1.bytesFromBase64)(object.hash);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.time))\n obj.time = (0, helpers_1.fromJsonTimestamp)(object.time);\n if ((0, helpers_1.isSet)(object.nextValidatorsHash))\n obj.nextValidatorsHash = (0, helpers_1.bytesFromBase64)(object.nextValidatorsHash);\n if ((0, helpers_1.isSet)(object.proposerAddress))\n obj.proposerAddress = (0, helpers_1.bytesFromBase64)(object.proposerAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.txs) {\n obj.txs = message.txs.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.txs = [];\n }\n message.proposedLastCommit !== undefined &&\n (obj.proposedLastCommit = message.proposedLastCommit\n ? exports.CommitInfo.toJSON(message.proposedLastCommit)\n : undefined);\n if (message.misbehavior) {\n obj.misbehavior = message.misbehavior.map((e) => (e ? exports.Misbehavior.toJSON(e) : undefined));\n }\n else {\n obj.misbehavior = [];\n }\n message.hash !== undefined &&\n (obj.hash = (0, helpers_1.base64FromBytes)(message.hash !== undefined ? message.hash : new Uint8Array()));\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.time !== undefined && (obj.time = (0, helpers_1.fromTimestamp)(message.time).toISOString());\n message.nextValidatorsHash !== undefined &&\n (obj.nextValidatorsHash = (0, helpers_1.base64FromBytes)(message.nextValidatorsHash !== undefined ? message.nextValidatorsHash : new Uint8Array()));\n message.proposerAddress !== undefined &&\n (obj.proposerAddress = (0, helpers_1.base64FromBytes)(message.proposerAddress !== undefined ? message.proposerAddress : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseRequestProcessProposal();\n message.txs = object.txs?.map((e) => e) || [];\n if (object.proposedLastCommit !== undefined && object.proposedLastCommit !== null) {\n message.proposedLastCommit = exports.CommitInfo.fromPartial(object.proposedLastCommit);\n }\n message.misbehavior = object.misbehavior?.map((e) => exports.Misbehavior.fromPartial(e)) || [];\n message.hash = object.hash ?? new Uint8Array();\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = timestamp_1.Timestamp.fromPartial(object.time);\n }\n message.nextValidatorsHash = object.nextValidatorsHash ?? new Uint8Array();\n message.proposerAddress = object.proposerAddress ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseResponse() {\n return {\n exception: undefined,\n echo: undefined,\n flush: undefined,\n info: undefined,\n initChain: undefined,\n query: undefined,\n beginBlock: undefined,\n checkTx: undefined,\n deliverTx: undefined,\n endBlock: undefined,\n commit: undefined,\n listSnapshots: undefined,\n offerSnapshot: undefined,\n loadSnapshotChunk: undefined,\n applySnapshotChunk: undefined,\n prepareProposal: undefined,\n processProposal: undefined,\n };\n}\nexports.Response = {\n typeUrl: \"/tendermint.abci.Response\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.exception !== undefined) {\n exports.ResponseException.encode(message.exception, writer.uint32(10).fork()).ldelim();\n }\n if (message.echo !== undefined) {\n exports.ResponseEcho.encode(message.echo, writer.uint32(18).fork()).ldelim();\n }\n if (message.flush !== undefined) {\n exports.ResponseFlush.encode(message.flush, writer.uint32(26).fork()).ldelim();\n }\n if (message.info !== undefined) {\n exports.ResponseInfo.encode(message.info, writer.uint32(34).fork()).ldelim();\n }\n if (message.initChain !== undefined) {\n exports.ResponseInitChain.encode(message.initChain, writer.uint32(50).fork()).ldelim();\n }\n if (message.query !== undefined) {\n exports.ResponseQuery.encode(message.query, writer.uint32(58).fork()).ldelim();\n }\n if (message.beginBlock !== undefined) {\n exports.ResponseBeginBlock.encode(message.beginBlock, writer.uint32(66).fork()).ldelim();\n }\n if (message.checkTx !== undefined) {\n exports.ResponseCheckTx.encode(message.checkTx, writer.uint32(74).fork()).ldelim();\n }\n if (message.deliverTx !== undefined) {\n exports.ResponseDeliverTx.encode(message.deliverTx, writer.uint32(82).fork()).ldelim();\n }\n if (message.endBlock !== undefined) {\n exports.ResponseEndBlock.encode(message.endBlock, writer.uint32(90).fork()).ldelim();\n }\n if (message.commit !== undefined) {\n exports.ResponseCommit.encode(message.commit, writer.uint32(98).fork()).ldelim();\n }\n if (message.listSnapshots !== undefined) {\n exports.ResponseListSnapshots.encode(message.listSnapshots, writer.uint32(106).fork()).ldelim();\n }\n if (message.offerSnapshot !== undefined) {\n exports.ResponseOfferSnapshot.encode(message.offerSnapshot, writer.uint32(114).fork()).ldelim();\n }\n if (message.loadSnapshotChunk !== undefined) {\n exports.ResponseLoadSnapshotChunk.encode(message.loadSnapshotChunk, writer.uint32(122).fork()).ldelim();\n }\n if (message.applySnapshotChunk !== undefined) {\n exports.ResponseApplySnapshotChunk.encode(message.applySnapshotChunk, writer.uint32(130).fork()).ldelim();\n }\n if (message.prepareProposal !== undefined) {\n exports.ResponsePrepareProposal.encode(message.prepareProposal, writer.uint32(138).fork()).ldelim();\n }\n if (message.processProposal !== undefined) {\n exports.ResponseProcessProposal.encode(message.processProposal, writer.uint32(146).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exception = exports.ResponseException.decode(reader, reader.uint32());\n break;\n case 2:\n message.echo = exports.ResponseEcho.decode(reader, reader.uint32());\n break;\n case 3:\n message.flush = exports.ResponseFlush.decode(reader, reader.uint32());\n break;\n case 4:\n message.info = exports.ResponseInfo.decode(reader, reader.uint32());\n break;\n case 6:\n message.initChain = exports.ResponseInitChain.decode(reader, reader.uint32());\n break;\n case 7:\n message.query = exports.ResponseQuery.decode(reader, reader.uint32());\n break;\n case 8:\n message.beginBlock = exports.ResponseBeginBlock.decode(reader, reader.uint32());\n break;\n case 9:\n message.checkTx = exports.ResponseCheckTx.decode(reader, reader.uint32());\n break;\n case 10:\n message.deliverTx = exports.ResponseDeliverTx.decode(reader, reader.uint32());\n break;\n case 11:\n message.endBlock = exports.ResponseEndBlock.decode(reader, reader.uint32());\n break;\n case 12:\n message.commit = exports.ResponseCommit.decode(reader, reader.uint32());\n break;\n case 13:\n message.listSnapshots = exports.ResponseListSnapshots.decode(reader, reader.uint32());\n break;\n case 14:\n message.offerSnapshot = exports.ResponseOfferSnapshot.decode(reader, reader.uint32());\n break;\n case 15:\n message.loadSnapshotChunk = exports.ResponseLoadSnapshotChunk.decode(reader, reader.uint32());\n break;\n case 16:\n message.applySnapshotChunk = exports.ResponseApplySnapshotChunk.decode(reader, reader.uint32());\n break;\n case 17:\n message.prepareProposal = exports.ResponsePrepareProposal.decode(reader, reader.uint32());\n break;\n case 18:\n message.processProposal = exports.ResponseProcessProposal.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponse();\n if ((0, helpers_1.isSet)(object.exception))\n obj.exception = exports.ResponseException.fromJSON(object.exception);\n if ((0, helpers_1.isSet)(object.echo))\n obj.echo = exports.ResponseEcho.fromJSON(object.echo);\n if ((0, helpers_1.isSet)(object.flush))\n obj.flush = exports.ResponseFlush.fromJSON(object.flush);\n if ((0, helpers_1.isSet)(object.info))\n obj.info = exports.ResponseInfo.fromJSON(object.info);\n if ((0, helpers_1.isSet)(object.initChain))\n obj.initChain = exports.ResponseInitChain.fromJSON(object.initChain);\n if ((0, helpers_1.isSet)(object.query))\n obj.query = exports.ResponseQuery.fromJSON(object.query);\n if ((0, helpers_1.isSet)(object.beginBlock))\n obj.beginBlock = exports.ResponseBeginBlock.fromJSON(object.beginBlock);\n if ((0, helpers_1.isSet)(object.checkTx))\n obj.checkTx = exports.ResponseCheckTx.fromJSON(object.checkTx);\n if ((0, helpers_1.isSet)(object.deliverTx))\n obj.deliverTx = exports.ResponseDeliverTx.fromJSON(object.deliverTx);\n if ((0, helpers_1.isSet)(object.endBlock))\n obj.endBlock = exports.ResponseEndBlock.fromJSON(object.endBlock);\n if ((0, helpers_1.isSet)(object.commit))\n obj.commit = exports.ResponseCommit.fromJSON(object.commit);\n if ((0, helpers_1.isSet)(object.listSnapshots))\n obj.listSnapshots = exports.ResponseListSnapshots.fromJSON(object.listSnapshots);\n if ((0, helpers_1.isSet)(object.offerSnapshot))\n obj.offerSnapshot = exports.ResponseOfferSnapshot.fromJSON(object.offerSnapshot);\n if ((0, helpers_1.isSet)(object.loadSnapshotChunk))\n obj.loadSnapshotChunk = exports.ResponseLoadSnapshotChunk.fromJSON(object.loadSnapshotChunk);\n if ((0, helpers_1.isSet)(object.applySnapshotChunk))\n obj.applySnapshotChunk = exports.ResponseApplySnapshotChunk.fromJSON(object.applySnapshotChunk);\n if ((0, helpers_1.isSet)(object.prepareProposal))\n obj.prepareProposal = exports.ResponsePrepareProposal.fromJSON(object.prepareProposal);\n if ((0, helpers_1.isSet)(object.processProposal))\n obj.processProposal = exports.ResponseProcessProposal.fromJSON(object.processProposal);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.exception !== undefined &&\n (obj.exception = message.exception ? exports.ResponseException.toJSON(message.exception) : undefined);\n message.echo !== undefined && (obj.echo = message.echo ? exports.ResponseEcho.toJSON(message.echo) : undefined);\n message.flush !== undefined &&\n (obj.flush = message.flush ? exports.ResponseFlush.toJSON(message.flush) : undefined);\n message.info !== undefined && (obj.info = message.info ? exports.ResponseInfo.toJSON(message.info) : undefined);\n message.initChain !== undefined &&\n (obj.initChain = message.initChain ? exports.ResponseInitChain.toJSON(message.initChain) : undefined);\n message.query !== undefined &&\n (obj.query = message.query ? exports.ResponseQuery.toJSON(message.query) : undefined);\n message.beginBlock !== undefined &&\n (obj.beginBlock = message.beginBlock ? exports.ResponseBeginBlock.toJSON(message.beginBlock) : undefined);\n message.checkTx !== undefined &&\n (obj.checkTx = message.checkTx ? exports.ResponseCheckTx.toJSON(message.checkTx) : undefined);\n message.deliverTx !== undefined &&\n (obj.deliverTx = message.deliverTx ? exports.ResponseDeliverTx.toJSON(message.deliverTx) : undefined);\n message.endBlock !== undefined &&\n (obj.endBlock = message.endBlock ? exports.ResponseEndBlock.toJSON(message.endBlock) : undefined);\n message.commit !== undefined &&\n (obj.commit = message.commit ? exports.ResponseCommit.toJSON(message.commit) : undefined);\n message.listSnapshots !== undefined &&\n (obj.listSnapshots = message.listSnapshots\n ? exports.ResponseListSnapshots.toJSON(message.listSnapshots)\n : undefined);\n message.offerSnapshot !== undefined &&\n (obj.offerSnapshot = message.offerSnapshot\n ? exports.ResponseOfferSnapshot.toJSON(message.offerSnapshot)\n : undefined);\n message.loadSnapshotChunk !== undefined &&\n (obj.loadSnapshotChunk = message.loadSnapshotChunk\n ? exports.ResponseLoadSnapshotChunk.toJSON(message.loadSnapshotChunk)\n : undefined);\n message.applySnapshotChunk !== undefined &&\n (obj.applySnapshotChunk = message.applySnapshotChunk\n ? exports.ResponseApplySnapshotChunk.toJSON(message.applySnapshotChunk)\n : undefined);\n message.prepareProposal !== undefined &&\n (obj.prepareProposal = message.prepareProposal\n ? exports.ResponsePrepareProposal.toJSON(message.prepareProposal)\n : undefined);\n message.processProposal !== undefined &&\n (obj.processProposal = message.processProposal\n ? exports.ResponseProcessProposal.toJSON(message.processProposal)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponse();\n if (object.exception !== undefined && object.exception !== null) {\n message.exception = exports.ResponseException.fromPartial(object.exception);\n }\n if (object.echo !== undefined && object.echo !== null) {\n message.echo = exports.ResponseEcho.fromPartial(object.echo);\n }\n if (object.flush !== undefined && object.flush !== null) {\n message.flush = exports.ResponseFlush.fromPartial(object.flush);\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = exports.ResponseInfo.fromPartial(object.info);\n }\n if (object.initChain !== undefined && object.initChain !== null) {\n message.initChain = exports.ResponseInitChain.fromPartial(object.initChain);\n }\n if (object.query !== undefined && object.query !== null) {\n message.query = exports.ResponseQuery.fromPartial(object.query);\n }\n if (object.beginBlock !== undefined && object.beginBlock !== null) {\n message.beginBlock = exports.ResponseBeginBlock.fromPartial(object.beginBlock);\n }\n if (object.checkTx !== undefined && object.checkTx !== null) {\n message.checkTx = exports.ResponseCheckTx.fromPartial(object.checkTx);\n }\n if (object.deliverTx !== undefined && object.deliverTx !== null) {\n message.deliverTx = exports.ResponseDeliverTx.fromPartial(object.deliverTx);\n }\n if (object.endBlock !== undefined && object.endBlock !== null) {\n message.endBlock = exports.ResponseEndBlock.fromPartial(object.endBlock);\n }\n if (object.commit !== undefined && object.commit !== null) {\n message.commit = exports.ResponseCommit.fromPartial(object.commit);\n }\n if (object.listSnapshots !== undefined && object.listSnapshots !== null) {\n message.listSnapshots = exports.ResponseListSnapshots.fromPartial(object.listSnapshots);\n }\n if (object.offerSnapshot !== undefined && object.offerSnapshot !== null) {\n message.offerSnapshot = exports.ResponseOfferSnapshot.fromPartial(object.offerSnapshot);\n }\n if (object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null) {\n message.loadSnapshotChunk = exports.ResponseLoadSnapshotChunk.fromPartial(object.loadSnapshotChunk);\n }\n if (object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null) {\n message.applySnapshotChunk = exports.ResponseApplySnapshotChunk.fromPartial(object.applySnapshotChunk);\n }\n if (object.prepareProposal !== undefined && object.prepareProposal !== null) {\n message.prepareProposal = exports.ResponsePrepareProposal.fromPartial(object.prepareProposal);\n }\n if (object.processProposal !== undefined && object.processProposal !== null) {\n message.processProposal = exports.ResponseProcessProposal.fromPartial(object.processProposal);\n }\n return message;\n },\n};\nfunction createBaseResponseException() {\n return {\n error: \"\",\n };\n}\nexports.ResponseException = {\n typeUrl: \"/tendermint.abci.ResponseException\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.error !== \"\") {\n writer.uint32(10).string(message.error);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseException();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.error = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseException();\n if ((0, helpers_1.isSet)(object.error))\n obj.error = String(object.error);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.error !== undefined && (obj.error = message.error);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseException();\n message.error = object.error ?? \"\";\n return message;\n },\n};\nfunction createBaseResponseEcho() {\n return {\n message: \"\",\n };\n}\nexports.ResponseEcho = {\n typeUrl: \"/tendermint.abci.ResponseEcho\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.message !== \"\") {\n writer.uint32(10).string(message.message);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseEcho();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.message = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseEcho();\n if ((0, helpers_1.isSet)(object.message))\n obj.message = String(object.message);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.message !== undefined && (obj.message = message.message);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseEcho();\n message.message = object.message ?? \"\";\n return message;\n },\n};\nfunction createBaseResponseFlush() {\n return {};\n}\nexports.ResponseFlush = {\n typeUrl: \"/tendermint.abci.ResponseFlush\",\n encode(_, writer = binary_1.BinaryWriter.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseFlush();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const obj = createBaseResponseFlush();\n return obj;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = createBaseResponseFlush();\n return message;\n },\n};\nfunction createBaseResponseInfo() {\n return {\n data: \"\",\n version: \"\",\n appVersion: BigInt(0),\n lastBlockHeight: BigInt(0),\n lastBlockAppHash: new Uint8Array(),\n };\n}\nexports.ResponseInfo = {\n typeUrl: \"/tendermint.abci.ResponseInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.data !== \"\") {\n writer.uint32(10).string(message.data);\n }\n if (message.version !== \"\") {\n writer.uint32(18).string(message.version);\n }\n if (message.appVersion !== BigInt(0)) {\n writer.uint32(24).uint64(message.appVersion);\n }\n if (message.lastBlockHeight !== BigInt(0)) {\n writer.uint32(32).int64(message.lastBlockHeight);\n }\n if (message.lastBlockAppHash.length !== 0) {\n writer.uint32(42).bytes(message.lastBlockAppHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.string();\n break;\n case 2:\n message.version = reader.string();\n break;\n case 3:\n message.appVersion = reader.uint64();\n break;\n case 4:\n message.lastBlockHeight = reader.int64();\n break;\n case 5:\n message.lastBlockAppHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseInfo();\n if ((0, helpers_1.isSet)(object.data))\n obj.data = String(object.data);\n if ((0, helpers_1.isSet)(object.version))\n obj.version = String(object.version);\n if ((0, helpers_1.isSet)(object.appVersion))\n obj.appVersion = BigInt(object.appVersion.toString());\n if ((0, helpers_1.isSet)(object.lastBlockHeight))\n obj.lastBlockHeight = BigInt(object.lastBlockHeight.toString());\n if ((0, helpers_1.isSet)(object.lastBlockAppHash))\n obj.lastBlockAppHash = (0, helpers_1.bytesFromBase64)(object.lastBlockAppHash);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined && (obj.data = message.data);\n message.version !== undefined && (obj.version = message.version);\n message.appVersion !== undefined && (obj.appVersion = (message.appVersion || BigInt(0)).toString());\n message.lastBlockHeight !== undefined &&\n (obj.lastBlockHeight = (message.lastBlockHeight || BigInt(0)).toString());\n message.lastBlockAppHash !== undefined &&\n (obj.lastBlockAppHash = (0, helpers_1.base64FromBytes)(message.lastBlockAppHash !== undefined ? message.lastBlockAppHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseInfo();\n message.data = object.data ?? \"\";\n message.version = object.version ?? \"\";\n if (object.appVersion !== undefined && object.appVersion !== null) {\n message.appVersion = BigInt(object.appVersion.toString());\n }\n if (object.lastBlockHeight !== undefined && object.lastBlockHeight !== null) {\n message.lastBlockHeight = BigInt(object.lastBlockHeight.toString());\n }\n message.lastBlockAppHash = object.lastBlockAppHash ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseResponseInitChain() {\n return {\n consensusParams: undefined,\n validators: [],\n appHash: new Uint8Array(),\n };\n}\nexports.ResponseInitChain = {\n typeUrl: \"/tendermint.abci.ResponseInitChain\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.consensusParams !== undefined) {\n params_1.ConsensusParams.encode(message.consensusParams, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.validators) {\n exports.ValidatorUpdate.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.appHash.length !== 0) {\n writer.uint32(26).bytes(message.appHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseInitChain();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusParams = params_1.ConsensusParams.decode(reader, reader.uint32());\n break;\n case 2:\n message.validators.push(exports.ValidatorUpdate.decode(reader, reader.uint32()));\n break;\n case 3:\n message.appHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseInitChain();\n if ((0, helpers_1.isSet)(object.consensusParams))\n obj.consensusParams = params_1.ConsensusParams.fromJSON(object.consensusParams);\n if (Array.isArray(object?.validators))\n obj.validators = object.validators.map((e) => exports.ValidatorUpdate.fromJSON(e));\n if ((0, helpers_1.isSet)(object.appHash))\n obj.appHash = (0, helpers_1.bytesFromBase64)(object.appHash);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.consensusParams !== undefined &&\n (obj.consensusParams = message.consensusParams\n ? params_1.ConsensusParams.toJSON(message.consensusParams)\n : undefined);\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? exports.ValidatorUpdate.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.appHash !== undefined &&\n (obj.appHash = (0, helpers_1.base64FromBytes)(message.appHash !== undefined ? message.appHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseInitChain();\n if (object.consensusParams !== undefined && object.consensusParams !== null) {\n message.consensusParams = params_1.ConsensusParams.fromPartial(object.consensusParams);\n }\n message.validators = object.validators?.map((e) => exports.ValidatorUpdate.fromPartial(e)) || [];\n message.appHash = object.appHash ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseResponseQuery() {\n return {\n code: 0,\n log: \"\",\n info: \"\",\n index: BigInt(0),\n key: new Uint8Array(),\n value: new Uint8Array(),\n proofOps: undefined,\n height: BigInt(0),\n codespace: \"\",\n };\n}\nexports.ResponseQuery = {\n typeUrl: \"/tendermint.abci.ResponseQuery\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (message.index !== BigInt(0)) {\n writer.uint32(40).int64(message.index);\n }\n if (message.key.length !== 0) {\n writer.uint32(50).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(58).bytes(message.value);\n }\n if (message.proofOps !== undefined) {\n proof_1.ProofOps.encode(message.proofOps, writer.uint32(66).fork()).ldelim();\n }\n if (message.height !== BigInt(0)) {\n writer.uint32(72).int64(message.height);\n }\n if (message.codespace !== \"\") {\n writer.uint32(82).string(message.codespace);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseQuery();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.index = reader.int64();\n break;\n case 6:\n message.key = reader.bytes();\n break;\n case 7:\n message.value = reader.bytes();\n break;\n case 8:\n message.proofOps = proof_1.ProofOps.decode(reader, reader.uint32());\n break;\n case 9:\n message.height = reader.int64();\n break;\n case 10:\n message.codespace = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseQuery();\n if ((0, helpers_1.isSet)(object.code))\n obj.code = Number(object.code);\n if ((0, helpers_1.isSet)(object.log))\n obj.log = String(object.log);\n if ((0, helpers_1.isSet)(object.info))\n obj.info = String(object.info);\n if ((0, helpers_1.isSet)(object.index))\n obj.index = BigInt(object.index.toString());\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n if ((0, helpers_1.isSet)(object.value))\n obj.value = (0, helpers_1.bytesFromBase64)(object.value);\n if ((0, helpers_1.isSet)(object.proofOps))\n obj.proofOps = proof_1.ProofOps.fromJSON(object.proofOps);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.codespace))\n obj.codespace = String(object.codespace);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.code !== undefined && (obj.code = Math.round(message.code));\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n message.index !== undefined && (obj.index = (message.index || BigInt(0)).toString());\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n message.value !== undefined &&\n (obj.value = (0, helpers_1.base64FromBytes)(message.value !== undefined ? message.value : new Uint8Array()));\n message.proofOps !== undefined &&\n (obj.proofOps = message.proofOps ? proof_1.ProofOps.toJSON(message.proofOps) : undefined);\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.codespace !== undefined && (obj.codespace = message.codespace);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseQuery();\n message.code = object.code ?? 0;\n message.log = object.log ?? \"\";\n message.info = object.info ?? \"\";\n if (object.index !== undefined && object.index !== null) {\n message.index = BigInt(object.index.toString());\n }\n message.key = object.key ?? new Uint8Array();\n message.value = object.value ?? new Uint8Array();\n if (object.proofOps !== undefined && object.proofOps !== null) {\n message.proofOps = proof_1.ProofOps.fromPartial(object.proofOps);\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n message.codespace = object.codespace ?? \"\";\n return message;\n },\n};\nfunction createBaseResponseBeginBlock() {\n return {\n events: [],\n };\n}\nexports.ResponseBeginBlock = {\n typeUrl: \"/tendermint.abci.ResponseBeginBlock\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseBeginBlock();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseBeginBlock();\n if (Array.isArray(object?.events))\n obj.events = object.events.map((e) => exports.Event.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseBeginBlock();\n message.events = object.events?.map((e) => exports.Event.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseResponseCheckTx() {\n return {\n code: 0,\n data: new Uint8Array(),\n log: \"\",\n info: \"\",\n gasWanted: BigInt(0),\n gasUsed: BigInt(0),\n events: [],\n codespace: \"\",\n sender: \"\",\n priority: BigInt(0),\n mempoolError: \"\",\n };\n}\nexports.ResponseCheckTx = {\n typeUrl: \"/tendermint.abci.ResponseCheckTx\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (message.gasWanted !== BigInt(0)) {\n writer.uint32(40).int64(message.gasWanted);\n }\n if (message.gasUsed !== BigInt(0)) {\n writer.uint32(48).int64(message.gasUsed);\n }\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.codespace !== \"\") {\n writer.uint32(66).string(message.codespace);\n }\n if (message.sender !== \"\") {\n writer.uint32(74).string(message.sender);\n }\n if (message.priority !== BigInt(0)) {\n writer.uint32(80).int64(message.priority);\n }\n if (message.mempoolError !== \"\") {\n writer.uint32(90).string(message.mempoolError);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseCheckTx();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.gasWanted = reader.int64();\n break;\n case 6:\n message.gasUsed = reader.int64();\n break;\n case 7:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n case 8:\n message.codespace = reader.string();\n break;\n case 9:\n message.sender = reader.string();\n break;\n case 10:\n message.priority = reader.int64();\n break;\n case 11:\n message.mempoolError = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseCheckTx();\n if ((0, helpers_1.isSet)(object.code))\n obj.code = Number(object.code);\n if ((0, helpers_1.isSet)(object.data))\n obj.data = (0, helpers_1.bytesFromBase64)(object.data);\n if ((0, helpers_1.isSet)(object.log))\n obj.log = String(object.log);\n if ((0, helpers_1.isSet)(object.info))\n obj.info = String(object.info);\n if ((0, helpers_1.isSet)(object.gas_wanted))\n obj.gasWanted = BigInt(object.gas_wanted.toString());\n if ((0, helpers_1.isSet)(object.gas_used))\n obj.gasUsed = BigInt(object.gas_used.toString());\n if (Array.isArray(object?.events))\n obj.events = object.events.map((e) => exports.Event.fromJSON(e));\n if ((0, helpers_1.isSet)(object.codespace))\n obj.codespace = String(object.codespace);\n if ((0, helpers_1.isSet)(object.sender))\n obj.sender = String(object.sender);\n if ((0, helpers_1.isSet)(object.priority))\n obj.priority = BigInt(object.priority.toString());\n if ((0, helpers_1.isSet)(object.mempoolError))\n obj.mempoolError = String(object.mempoolError);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.code !== undefined && (obj.code = Math.round(message.code));\n message.data !== undefined &&\n (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array()));\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n message.gasWanted !== undefined && (obj.gas_wanted = (message.gasWanted || BigInt(0)).toString());\n message.gasUsed !== undefined && (obj.gas_used = (message.gasUsed || BigInt(0)).toString());\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n message.codespace !== undefined && (obj.codespace = message.codespace);\n message.sender !== undefined && (obj.sender = message.sender);\n message.priority !== undefined && (obj.priority = (message.priority || BigInt(0)).toString());\n message.mempoolError !== undefined && (obj.mempoolError = message.mempoolError);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseCheckTx();\n message.code = object.code ?? 0;\n message.data = object.data ?? new Uint8Array();\n message.log = object.log ?? \"\";\n message.info = object.info ?? \"\";\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = BigInt(object.gasWanted.toString());\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = BigInt(object.gasUsed.toString());\n }\n message.events = object.events?.map((e) => exports.Event.fromPartial(e)) || [];\n message.codespace = object.codespace ?? \"\";\n message.sender = object.sender ?? \"\";\n if (object.priority !== undefined && object.priority !== null) {\n message.priority = BigInt(object.priority.toString());\n }\n message.mempoolError = object.mempoolError ?? \"\";\n return message;\n },\n};\nfunction createBaseResponseDeliverTx() {\n return {\n code: 0,\n data: new Uint8Array(),\n log: \"\",\n info: \"\",\n gasWanted: BigInt(0),\n gasUsed: BigInt(0),\n events: [],\n codespace: \"\",\n };\n}\nexports.ResponseDeliverTx = {\n typeUrl: \"/tendermint.abci.ResponseDeliverTx\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (message.gasWanted !== BigInt(0)) {\n writer.uint32(40).int64(message.gasWanted);\n }\n if (message.gasUsed !== BigInt(0)) {\n writer.uint32(48).int64(message.gasUsed);\n }\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.codespace !== \"\") {\n writer.uint32(66).string(message.codespace);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseDeliverTx();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.gasWanted = reader.int64();\n break;\n case 6:\n message.gasUsed = reader.int64();\n break;\n case 7:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n case 8:\n message.codespace = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseDeliverTx();\n if ((0, helpers_1.isSet)(object.code))\n obj.code = Number(object.code);\n if ((0, helpers_1.isSet)(object.data))\n obj.data = (0, helpers_1.bytesFromBase64)(object.data);\n if ((0, helpers_1.isSet)(object.log))\n obj.log = String(object.log);\n if ((0, helpers_1.isSet)(object.info))\n obj.info = String(object.info);\n if ((0, helpers_1.isSet)(object.gas_wanted))\n obj.gasWanted = BigInt(object.gas_wanted.toString());\n if ((0, helpers_1.isSet)(object.gas_used))\n obj.gasUsed = BigInt(object.gas_used.toString());\n if (Array.isArray(object?.events))\n obj.events = object.events.map((e) => exports.Event.fromJSON(e));\n if ((0, helpers_1.isSet)(object.codespace))\n obj.codespace = String(object.codespace);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.code !== undefined && (obj.code = Math.round(message.code));\n message.data !== undefined &&\n (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array()));\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n message.gasWanted !== undefined && (obj.gas_wanted = (message.gasWanted || BigInt(0)).toString());\n message.gasUsed !== undefined && (obj.gas_used = (message.gasUsed || BigInt(0)).toString());\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n message.codespace !== undefined && (obj.codespace = message.codespace);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseDeliverTx();\n message.code = object.code ?? 0;\n message.data = object.data ?? new Uint8Array();\n message.log = object.log ?? \"\";\n message.info = object.info ?? \"\";\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = BigInt(object.gasWanted.toString());\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = BigInt(object.gasUsed.toString());\n }\n message.events = object.events?.map((e) => exports.Event.fromPartial(e)) || [];\n message.codespace = object.codespace ?? \"\";\n return message;\n },\n};\nfunction createBaseResponseEndBlock() {\n return {\n validatorUpdates: [],\n consensusParamUpdates: undefined,\n events: [],\n };\n}\nexports.ResponseEndBlock = {\n typeUrl: \"/tendermint.abci.ResponseEndBlock\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.validatorUpdates) {\n exports.ValidatorUpdate.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.consensusParamUpdates !== undefined) {\n params_1.ConsensusParams.encode(message.consensusParamUpdates, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseEndBlock();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorUpdates.push(exports.ValidatorUpdate.decode(reader, reader.uint32()));\n break;\n case 2:\n message.consensusParamUpdates = params_1.ConsensusParams.decode(reader, reader.uint32());\n break;\n case 3:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseEndBlock();\n if (Array.isArray(object?.validatorUpdates))\n obj.validatorUpdates = object.validatorUpdates.map((e) => exports.ValidatorUpdate.fromJSON(e));\n if ((0, helpers_1.isSet)(object.consensusParamUpdates))\n obj.consensusParamUpdates = params_1.ConsensusParams.fromJSON(object.consensusParamUpdates);\n if (Array.isArray(object?.events))\n obj.events = object.events.map((e) => exports.Event.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.validatorUpdates) {\n obj.validatorUpdates = message.validatorUpdates.map((e) => (e ? exports.ValidatorUpdate.toJSON(e) : undefined));\n }\n else {\n obj.validatorUpdates = [];\n }\n message.consensusParamUpdates !== undefined &&\n (obj.consensusParamUpdates = message.consensusParamUpdates\n ? params_1.ConsensusParams.toJSON(message.consensusParamUpdates)\n : undefined);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseEndBlock();\n message.validatorUpdates = object.validatorUpdates?.map((e) => exports.ValidatorUpdate.fromPartial(e)) || [];\n if (object.consensusParamUpdates !== undefined && object.consensusParamUpdates !== null) {\n message.consensusParamUpdates = params_1.ConsensusParams.fromPartial(object.consensusParamUpdates);\n }\n message.events = object.events?.map((e) => exports.Event.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseResponseCommit() {\n return {\n data: new Uint8Array(),\n retainHeight: BigInt(0),\n };\n}\nexports.ResponseCommit = {\n typeUrl: \"/tendermint.abci.ResponseCommit\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.retainHeight !== BigInt(0)) {\n writer.uint32(24).int64(message.retainHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseCommit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.retainHeight = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseCommit();\n if ((0, helpers_1.isSet)(object.data))\n obj.data = (0, helpers_1.bytesFromBase64)(object.data);\n if ((0, helpers_1.isSet)(object.retainHeight))\n obj.retainHeight = BigInt(object.retainHeight.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array()));\n message.retainHeight !== undefined && (obj.retainHeight = (message.retainHeight || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseCommit();\n message.data = object.data ?? new Uint8Array();\n if (object.retainHeight !== undefined && object.retainHeight !== null) {\n message.retainHeight = BigInt(object.retainHeight.toString());\n }\n return message;\n },\n};\nfunction createBaseResponseListSnapshots() {\n return {\n snapshots: [],\n };\n}\nexports.ResponseListSnapshots = {\n typeUrl: \"/tendermint.abci.ResponseListSnapshots\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.snapshots) {\n exports.Snapshot.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseListSnapshots();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.snapshots.push(exports.Snapshot.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseListSnapshots();\n if (Array.isArray(object?.snapshots))\n obj.snapshots = object.snapshots.map((e) => exports.Snapshot.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.snapshots) {\n obj.snapshots = message.snapshots.map((e) => (e ? exports.Snapshot.toJSON(e) : undefined));\n }\n else {\n obj.snapshots = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseListSnapshots();\n message.snapshots = object.snapshots?.map((e) => exports.Snapshot.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseResponseOfferSnapshot() {\n return {\n result: 0,\n };\n}\nexports.ResponseOfferSnapshot = {\n typeUrl: \"/tendermint.abci.ResponseOfferSnapshot\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseOfferSnapshot();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseOfferSnapshot();\n if ((0, helpers_1.isSet)(object.result))\n obj.result = responseOfferSnapshot_ResultFromJSON(object.result);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseOfferSnapshot_ResultToJSON(message.result));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseOfferSnapshot();\n message.result = object.result ?? 0;\n return message;\n },\n};\nfunction createBaseResponseLoadSnapshotChunk() {\n return {\n chunk: new Uint8Array(),\n };\n}\nexports.ResponseLoadSnapshotChunk = {\n typeUrl: \"/tendermint.abci.ResponseLoadSnapshotChunk\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.chunk.length !== 0) {\n writer.uint32(10).bytes(message.chunk);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseLoadSnapshotChunk();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.chunk = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseLoadSnapshotChunk();\n if ((0, helpers_1.isSet)(object.chunk))\n obj.chunk = (0, helpers_1.bytesFromBase64)(object.chunk);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.chunk !== undefined &&\n (obj.chunk = (0, helpers_1.base64FromBytes)(message.chunk !== undefined ? message.chunk : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseLoadSnapshotChunk();\n message.chunk = object.chunk ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseResponseApplySnapshotChunk() {\n return {\n result: 0,\n refetchChunks: [],\n rejectSenders: [],\n };\n}\nexports.ResponseApplySnapshotChunk = {\n typeUrl: \"/tendermint.abci.ResponseApplySnapshotChunk\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n writer.uint32(18).fork();\n for (const v of message.refetchChunks) {\n writer.uint32(v);\n }\n writer.ldelim();\n for (const v of message.rejectSenders) {\n writer.uint32(26).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseApplySnapshotChunk();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n case 2:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.refetchChunks.push(reader.uint32());\n }\n }\n else {\n message.refetchChunks.push(reader.uint32());\n }\n break;\n case 3:\n message.rejectSenders.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseApplySnapshotChunk();\n if ((0, helpers_1.isSet)(object.result))\n obj.result = responseApplySnapshotChunk_ResultFromJSON(object.result);\n if (Array.isArray(object?.refetchChunks))\n obj.refetchChunks = object.refetchChunks.map((e) => Number(e));\n if (Array.isArray(object?.rejectSenders))\n obj.rejectSenders = object.rejectSenders.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseApplySnapshotChunk_ResultToJSON(message.result));\n if (message.refetchChunks) {\n obj.refetchChunks = message.refetchChunks.map((e) => Math.round(e));\n }\n else {\n obj.refetchChunks = [];\n }\n if (message.rejectSenders) {\n obj.rejectSenders = message.rejectSenders.map((e) => e);\n }\n else {\n obj.rejectSenders = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseApplySnapshotChunk();\n message.result = object.result ?? 0;\n message.refetchChunks = object.refetchChunks?.map((e) => e) || [];\n message.rejectSenders = object.rejectSenders?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseResponsePrepareProposal() {\n return {\n txs: [],\n };\n}\nexports.ResponsePrepareProposal = {\n typeUrl: \"/tendermint.abci.ResponsePrepareProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.txs) {\n writer.uint32(10).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponsePrepareProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txs.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponsePrepareProposal();\n if (Array.isArray(object?.txs))\n obj.txs = object.txs.map((e) => (0, helpers_1.bytesFromBase64)(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.txs) {\n obj.txs = message.txs.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.txs = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponsePrepareProposal();\n message.txs = object.txs?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseResponseProcessProposal() {\n return {\n status: 0,\n };\n}\nexports.ResponseProcessProposal = {\n typeUrl: \"/tendermint.abci.ResponseProcessProposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.status !== 0) {\n writer.uint32(8).int32(message.status);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseProcessProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.status = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseResponseProcessProposal();\n if ((0, helpers_1.isSet)(object.status))\n obj.status = responseProcessProposal_ProposalStatusFromJSON(object.status);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.status !== undefined &&\n (obj.status = responseProcessProposal_ProposalStatusToJSON(message.status));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseResponseProcessProposal();\n message.status = object.status ?? 0;\n return message;\n },\n};\nfunction createBaseCommitInfo() {\n return {\n round: 0,\n votes: [],\n };\n}\nexports.CommitInfo = {\n typeUrl: \"/tendermint.abci.CommitInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.round !== 0) {\n writer.uint32(8).int32(message.round);\n }\n for (const v of message.votes) {\n exports.VoteInfo.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCommitInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.round = reader.int32();\n break;\n case 2:\n message.votes.push(exports.VoteInfo.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCommitInfo();\n if ((0, helpers_1.isSet)(object.round))\n obj.round = Number(object.round);\n if (Array.isArray(object?.votes))\n obj.votes = object.votes.map((e) => exports.VoteInfo.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.round !== undefined && (obj.round = Math.round(message.round));\n if (message.votes) {\n obj.votes = message.votes.map((e) => (e ? exports.VoteInfo.toJSON(e) : undefined));\n }\n else {\n obj.votes = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCommitInfo();\n message.round = object.round ?? 0;\n message.votes = object.votes?.map((e) => exports.VoteInfo.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseExtendedCommitInfo() {\n return {\n round: 0,\n votes: [],\n };\n}\nexports.ExtendedCommitInfo = {\n typeUrl: \"/tendermint.abci.ExtendedCommitInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.round !== 0) {\n writer.uint32(8).int32(message.round);\n }\n for (const v of message.votes) {\n exports.ExtendedVoteInfo.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseExtendedCommitInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.round = reader.int32();\n break;\n case 2:\n message.votes.push(exports.ExtendedVoteInfo.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseExtendedCommitInfo();\n if ((0, helpers_1.isSet)(object.round))\n obj.round = Number(object.round);\n if (Array.isArray(object?.votes))\n obj.votes = object.votes.map((e) => exports.ExtendedVoteInfo.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.round !== undefined && (obj.round = Math.round(message.round));\n if (message.votes) {\n obj.votes = message.votes.map((e) => (e ? exports.ExtendedVoteInfo.toJSON(e) : undefined));\n }\n else {\n obj.votes = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseExtendedCommitInfo();\n message.round = object.round ?? 0;\n message.votes = object.votes?.map((e) => exports.ExtendedVoteInfo.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseEvent() {\n return {\n type: \"\",\n attributes: [],\n };\n}\nexports.Event = {\n typeUrl: \"/tendermint.abci.Event\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.type !== \"\") {\n writer.uint32(10).string(message.type);\n }\n for (const v of message.attributes) {\n exports.EventAttribute.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEvent();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.string();\n break;\n case 2:\n message.attributes.push(exports.EventAttribute.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseEvent();\n if ((0, helpers_1.isSet)(object.type))\n obj.type = String(object.type);\n if (Array.isArray(object?.attributes))\n obj.attributes = object.attributes.map((e) => exports.EventAttribute.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = message.type);\n if (message.attributes) {\n obj.attributes = message.attributes.map((e) => (e ? exports.EventAttribute.toJSON(e) : undefined));\n }\n else {\n obj.attributes = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseEvent();\n message.type = object.type ?? \"\";\n message.attributes = object.attributes?.map((e) => exports.EventAttribute.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseEventAttribute() {\n return {\n key: \"\",\n value: \"\",\n index: false,\n };\n}\nexports.EventAttribute = {\n typeUrl: \"/tendermint.abci.EventAttribute\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n if (message.index === true) {\n writer.uint32(24).bool(message.index);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAttribute();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n case 2:\n message.value = reader.string();\n break;\n case 3:\n message.index = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseEventAttribute();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = String(object.key);\n if ((0, helpers_1.isSet)(object.value))\n obj.value = String(object.value);\n if ((0, helpers_1.isSet)(object.index))\n obj.index = Boolean(object.index);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined && (obj.key = message.key);\n message.value !== undefined && (obj.value = message.value);\n message.index !== undefined && (obj.index = message.index);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseEventAttribute();\n message.key = object.key ?? \"\";\n message.value = object.value ?? \"\";\n message.index = object.index ?? false;\n return message;\n },\n};\nfunction createBaseTxResult() {\n return {\n height: BigInt(0),\n index: 0,\n tx: new Uint8Array(),\n result: exports.ResponseDeliverTx.fromPartial({}),\n };\n}\nexports.TxResult = {\n typeUrl: \"/tendermint.abci.TxResult\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.height !== BigInt(0)) {\n writer.uint32(8).int64(message.height);\n }\n if (message.index !== 0) {\n writer.uint32(16).uint32(message.index);\n }\n if (message.tx.length !== 0) {\n writer.uint32(26).bytes(message.tx);\n }\n if (message.result !== undefined) {\n exports.ResponseDeliverTx.encode(message.result, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxResult();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n case 2:\n message.index = reader.uint32();\n break;\n case 3:\n message.tx = reader.bytes();\n break;\n case 4:\n message.result = exports.ResponseDeliverTx.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxResult();\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.index))\n obj.index = Number(object.index);\n if ((0, helpers_1.isSet)(object.tx))\n obj.tx = (0, helpers_1.bytesFromBase64)(object.tx);\n if ((0, helpers_1.isSet)(object.result))\n obj.result = exports.ResponseDeliverTx.fromJSON(object.result);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.index !== undefined && (obj.index = Math.round(message.index));\n message.tx !== undefined &&\n (obj.tx = (0, helpers_1.base64FromBytes)(message.tx !== undefined ? message.tx : new Uint8Array()));\n message.result !== undefined &&\n (obj.result = message.result ? exports.ResponseDeliverTx.toJSON(message.result) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxResult();\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n message.index = object.index ?? 0;\n message.tx = object.tx ?? new Uint8Array();\n if (object.result !== undefined && object.result !== null) {\n message.result = exports.ResponseDeliverTx.fromPartial(object.result);\n }\n return message;\n },\n};\nfunction createBaseValidator() {\n return {\n address: new Uint8Array(),\n power: BigInt(0),\n };\n}\nexports.Validator = {\n typeUrl: \"/tendermint.abci.Validator\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address.length !== 0) {\n writer.uint32(10).bytes(message.address);\n }\n if (message.power !== BigInt(0)) {\n writer.uint32(24).int64(message.power);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidator();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.bytes();\n break;\n case 3:\n message.power = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidator();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = (0, helpers_1.bytesFromBase64)(object.address);\n if ((0, helpers_1.isSet)(object.power))\n obj.power = BigInt(object.power.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined &&\n (obj.address = (0, helpers_1.base64FromBytes)(message.address !== undefined ? message.address : new Uint8Array()));\n message.power !== undefined && (obj.power = (message.power || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidator();\n message.address = object.address ?? new Uint8Array();\n if (object.power !== undefined && object.power !== null) {\n message.power = BigInt(object.power.toString());\n }\n return message;\n },\n};\nfunction createBaseValidatorUpdate() {\n return {\n pubKey: keys_1.PublicKey.fromPartial({}),\n power: BigInt(0),\n };\n}\nexports.ValidatorUpdate = {\n typeUrl: \"/tendermint.abci.ValidatorUpdate\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.pubKey !== undefined) {\n keys_1.PublicKey.encode(message.pubKey, writer.uint32(10).fork()).ldelim();\n }\n if (message.power !== BigInt(0)) {\n writer.uint32(16).int64(message.power);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorUpdate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pubKey = keys_1.PublicKey.decode(reader, reader.uint32());\n break;\n case 2:\n message.power = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidatorUpdate();\n if ((0, helpers_1.isSet)(object.pubKey))\n obj.pubKey = keys_1.PublicKey.fromJSON(object.pubKey);\n if ((0, helpers_1.isSet)(object.power))\n obj.power = BigInt(object.power.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.pubKey !== undefined &&\n (obj.pubKey = message.pubKey ? keys_1.PublicKey.toJSON(message.pubKey) : undefined);\n message.power !== undefined && (obj.power = (message.power || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidatorUpdate();\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = keys_1.PublicKey.fromPartial(object.pubKey);\n }\n if (object.power !== undefined && object.power !== null) {\n message.power = BigInt(object.power.toString());\n }\n return message;\n },\n};\nfunction createBaseVoteInfo() {\n return {\n validator: exports.Validator.fromPartial({}),\n signedLastBlock: false,\n };\n}\nexports.VoteInfo = {\n typeUrl: \"/tendermint.abci.VoteInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validator !== undefined) {\n exports.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim();\n }\n if (message.signedLastBlock === true) {\n writer.uint32(16).bool(message.signedLastBlock);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVoteInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validator = exports.Validator.decode(reader, reader.uint32());\n break;\n case 2:\n message.signedLastBlock = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseVoteInfo();\n if ((0, helpers_1.isSet)(object.validator))\n obj.validator = exports.Validator.fromJSON(object.validator);\n if ((0, helpers_1.isSet)(object.signedLastBlock))\n obj.signedLastBlock = Boolean(object.signedLastBlock);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validator !== undefined &&\n (obj.validator = message.validator ? exports.Validator.toJSON(message.validator) : undefined);\n message.signedLastBlock !== undefined && (obj.signedLastBlock = message.signedLastBlock);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseVoteInfo();\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = exports.Validator.fromPartial(object.validator);\n }\n message.signedLastBlock = object.signedLastBlock ?? false;\n return message;\n },\n};\nfunction createBaseExtendedVoteInfo() {\n return {\n validator: exports.Validator.fromPartial({}),\n signedLastBlock: false,\n voteExtension: new Uint8Array(),\n };\n}\nexports.ExtendedVoteInfo = {\n typeUrl: \"/tendermint.abci.ExtendedVoteInfo\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.validator !== undefined) {\n exports.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim();\n }\n if (message.signedLastBlock === true) {\n writer.uint32(16).bool(message.signedLastBlock);\n }\n if (message.voteExtension.length !== 0) {\n writer.uint32(26).bytes(message.voteExtension);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseExtendedVoteInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validator = exports.Validator.decode(reader, reader.uint32());\n break;\n case 2:\n message.signedLastBlock = reader.bool();\n break;\n case 3:\n message.voteExtension = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseExtendedVoteInfo();\n if ((0, helpers_1.isSet)(object.validator))\n obj.validator = exports.Validator.fromJSON(object.validator);\n if ((0, helpers_1.isSet)(object.signedLastBlock))\n obj.signedLastBlock = Boolean(object.signedLastBlock);\n if ((0, helpers_1.isSet)(object.voteExtension))\n obj.voteExtension = (0, helpers_1.bytesFromBase64)(object.voteExtension);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.validator !== undefined &&\n (obj.validator = message.validator ? exports.Validator.toJSON(message.validator) : undefined);\n message.signedLastBlock !== undefined && (obj.signedLastBlock = message.signedLastBlock);\n message.voteExtension !== undefined &&\n (obj.voteExtension = (0, helpers_1.base64FromBytes)(message.voteExtension !== undefined ? message.voteExtension : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseExtendedVoteInfo();\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = exports.Validator.fromPartial(object.validator);\n }\n message.signedLastBlock = object.signedLastBlock ?? false;\n message.voteExtension = object.voteExtension ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseMisbehavior() {\n return {\n type: 0,\n validator: exports.Validator.fromPartial({}),\n height: BigInt(0),\n time: timestamp_1.Timestamp.fromPartial({}),\n totalVotingPower: BigInt(0),\n };\n}\nexports.Misbehavior = {\n typeUrl: \"/tendermint.abci.Misbehavior\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.type !== 0) {\n writer.uint32(8).int32(message.type);\n }\n if (message.validator !== undefined) {\n exports.Validator.encode(message.validator, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== BigInt(0)) {\n writer.uint32(24).int64(message.height);\n }\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(message.time, writer.uint32(34).fork()).ldelim();\n }\n if (message.totalVotingPower !== BigInt(0)) {\n writer.uint32(40).int64(message.totalVotingPower);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMisbehavior();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.int32();\n break;\n case 2:\n message.validator = exports.Validator.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = reader.int64();\n break;\n case 4:\n message.time = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 5:\n message.totalVotingPower = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseMisbehavior();\n if ((0, helpers_1.isSet)(object.type))\n obj.type = misbehaviorTypeFromJSON(object.type);\n if ((0, helpers_1.isSet)(object.validator))\n obj.validator = exports.Validator.fromJSON(object.validator);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.time))\n obj.time = (0, helpers_1.fromJsonTimestamp)(object.time);\n if ((0, helpers_1.isSet)(object.totalVotingPower))\n obj.totalVotingPower = BigInt(object.totalVotingPower.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = misbehaviorTypeToJSON(message.type));\n message.validator !== undefined &&\n (obj.validator = message.validator ? exports.Validator.toJSON(message.validator) : undefined);\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.time !== undefined && (obj.time = (0, helpers_1.fromTimestamp)(message.time).toISOString());\n message.totalVotingPower !== undefined &&\n (obj.totalVotingPower = (message.totalVotingPower || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseMisbehavior();\n message.type = object.type ?? 0;\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = exports.Validator.fromPartial(object.validator);\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = timestamp_1.Timestamp.fromPartial(object.time);\n }\n if (object.totalVotingPower !== undefined && object.totalVotingPower !== null) {\n message.totalVotingPower = BigInt(object.totalVotingPower.toString());\n }\n return message;\n },\n};\nfunction createBaseSnapshot() {\n return {\n height: BigInt(0),\n format: 0,\n chunks: 0,\n hash: new Uint8Array(),\n metadata: new Uint8Array(),\n };\n}\nexports.Snapshot = {\n typeUrl: \"/tendermint.abci.Snapshot\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.height !== BigInt(0)) {\n writer.uint32(8).uint64(message.height);\n }\n if (message.format !== 0) {\n writer.uint32(16).uint32(message.format);\n }\n if (message.chunks !== 0) {\n writer.uint32(24).uint32(message.chunks);\n }\n if (message.hash.length !== 0) {\n writer.uint32(34).bytes(message.hash);\n }\n if (message.metadata.length !== 0) {\n writer.uint32(42).bytes(message.metadata);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSnapshot();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.uint64();\n break;\n case 2:\n message.format = reader.uint32();\n break;\n case 3:\n message.chunks = reader.uint32();\n break;\n case 4:\n message.hash = reader.bytes();\n break;\n case 5:\n message.metadata = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSnapshot();\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.format))\n obj.format = Number(object.format);\n if ((0, helpers_1.isSet)(object.chunks))\n obj.chunks = Number(object.chunks);\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = (0, helpers_1.bytesFromBase64)(object.hash);\n if ((0, helpers_1.isSet)(object.metadata))\n obj.metadata = (0, helpers_1.bytesFromBase64)(object.metadata);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.format !== undefined && (obj.format = Math.round(message.format));\n message.chunks !== undefined && (obj.chunks = Math.round(message.chunks));\n message.hash !== undefined &&\n (obj.hash = (0, helpers_1.base64FromBytes)(message.hash !== undefined ? message.hash : new Uint8Array()));\n message.metadata !== undefined &&\n (obj.metadata = (0, helpers_1.base64FromBytes)(message.metadata !== undefined ? message.metadata : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSnapshot();\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n message.format = object.format ?? 0;\n message.chunks = object.chunks ?? 0;\n message.hash = object.hash ?? new Uint8Array();\n message.metadata = object.metadata ?? new Uint8Array();\n return message;\n },\n};\nclass ABCIApplicationClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Echo = this.Echo.bind(this);\n this.Flush = this.Flush.bind(this);\n this.Info = this.Info.bind(this);\n this.DeliverTx = this.DeliverTx.bind(this);\n this.CheckTx = this.CheckTx.bind(this);\n this.Query = this.Query.bind(this);\n this.Commit = this.Commit.bind(this);\n this.InitChain = this.InitChain.bind(this);\n this.BeginBlock = this.BeginBlock.bind(this);\n this.EndBlock = this.EndBlock.bind(this);\n this.ListSnapshots = this.ListSnapshots.bind(this);\n this.OfferSnapshot = this.OfferSnapshot.bind(this);\n this.LoadSnapshotChunk = this.LoadSnapshotChunk.bind(this);\n this.ApplySnapshotChunk = this.ApplySnapshotChunk.bind(this);\n this.PrepareProposal = this.PrepareProposal.bind(this);\n this.ProcessProposal = this.ProcessProposal.bind(this);\n }\n Echo(request) {\n const data = exports.RequestEcho.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Echo\", data);\n return promise.then((data) => exports.ResponseEcho.decode(new binary_1.BinaryReader(data)));\n }\n Flush(request = {}) {\n const data = exports.RequestFlush.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Flush\", data);\n return promise.then((data) => exports.ResponseFlush.decode(new binary_1.BinaryReader(data)));\n }\n Info(request) {\n const data = exports.RequestInfo.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Info\", data);\n return promise.then((data) => exports.ResponseInfo.decode(new binary_1.BinaryReader(data)));\n }\n DeliverTx(request) {\n const data = exports.RequestDeliverTx.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"DeliverTx\", data);\n return promise.then((data) => exports.ResponseDeliverTx.decode(new binary_1.BinaryReader(data)));\n }\n CheckTx(request) {\n const data = exports.RequestCheckTx.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"CheckTx\", data);\n return promise.then((data) => exports.ResponseCheckTx.decode(new binary_1.BinaryReader(data)));\n }\n Query(request) {\n const data = exports.RequestQuery.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Query\", data);\n return promise.then((data) => exports.ResponseQuery.decode(new binary_1.BinaryReader(data)));\n }\n Commit(request = {}) {\n const data = exports.RequestCommit.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Commit\", data);\n return promise.then((data) => exports.ResponseCommit.decode(new binary_1.BinaryReader(data)));\n }\n InitChain(request) {\n const data = exports.RequestInitChain.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"InitChain\", data);\n return promise.then((data) => exports.ResponseInitChain.decode(new binary_1.BinaryReader(data)));\n }\n BeginBlock(request) {\n const data = exports.RequestBeginBlock.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"BeginBlock\", data);\n return promise.then((data) => exports.ResponseBeginBlock.decode(new binary_1.BinaryReader(data)));\n }\n EndBlock(request) {\n const data = exports.RequestEndBlock.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"EndBlock\", data);\n return promise.then((data) => exports.ResponseEndBlock.decode(new binary_1.BinaryReader(data)));\n }\n ListSnapshots(request = {}) {\n const data = exports.RequestListSnapshots.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"ListSnapshots\", data);\n return promise.then((data) => exports.ResponseListSnapshots.decode(new binary_1.BinaryReader(data)));\n }\n OfferSnapshot(request) {\n const data = exports.RequestOfferSnapshot.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"OfferSnapshot\", data);\n return promise.then((data) => exports.ResponseOfferSnapshot.decode(new binary_1.BinaryReader(data)));\n }\n LoadSnapshotChunk(request) {\n const data = exports.RequestLoadSnapshotChunk.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"LoadSnapshotChunk\", data);\n return promise.then((data) => exports.ResponseLoadSnapshotChunk.decode(new binary_1.BinaryReader(data)));\n }\n ApplySnapshotChunk(request) {\n const data = exports.RequestApplySnapshotChunk.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"ApplySnapshotChunk\", data);\n return promise.then((data) => exports.ResponseApplySnapshotChunk.decode(new binary_1.BinaryReader(data)));\n }\n PrepareProposal(request) {\n const data = exports.RequestPrepareProposal.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"PrepareProposal\", data);\n return promise.then((data) => exports.ResponsePrepareProposal.decode(new binary_1.BinaryReader(data)));\n }\n ProcessProposal(request) {\n const data = exports.RequestProcessProposal.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"ProcessProposal\", data);\n return promise.then((data) => exports.ResponseProcessProposal.decode(new binary_1.BinaryReader(data)));\n }\n}\nexports.ABCIApplicationClientImpl = ABCIApplicationClientImpl;\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"tendermint.crypto\";\nfunction createBasePublicKey() {\n return {\n ed25519: undefined,\n secp256k1: undefined,\n };\n}\nexports.PublicKey = {\n typeUrl: \"/tendermint.crypto.PublicKey\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.ed25519 !== undefined) {\n writer.uint32(10).bytes(message.ed25519);\n }\n if (message.secp256k1 !== undefined) {\n writer.uint32(18).bytes(message.secp256k1);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePublicKey();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.ed25519 = reader.bytes();\n break;\n case 2:\n message.secp256k1 = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePublicKey();\n if ((0, helpers_1.isSet)(object.ed25519))\n obj.ed25519 = (0, helpers_1.bytesFromBase64)(object.ed25519);\n if ((0, helpers_1.isSet)(object.secp256k1))\n obj.secp256k1 = (0, helpers_1.bytesFromBase64)(object.secp256k1);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.ed25519 !== undefined &&\n (obj.ed25519 = message.ed25519 !== undefined ? (0, helpers_1.base64FromBytes)(message.ed25519) : undefined);\n message.secp256k1 !== undefined &&\n (obj.secp256k1 = message.secp256k1 !== undefined ? (0, helpers_1.base64FromBytes)(message.secp256k1) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBasePublicKey();\n message.ed25519 = object.ed25519 ?? undefined;\n message.secp256k1 = object.secp256k1 ?? undefined;\n return message;\n },\n};\n//# sourceMappingURL=keys.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProofOps = exports.ProofOp = exports.DominoOp = exports.ValueOp = exports.Proof = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"tendermint.crypto\";\nfunction createBaseProof() {\n return {\n total: BigInt(0),\n index: BigInt(0),\n leafHash: new Uint8Array(),\n aunts: [],\n };\n}\nexports.Proof = {\n typeUrl: \"/tendermint.crypto.Proof\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.total !== BigInt(0)) {\n writer.uint32(8).int64(message.total);\n }\n if (message.index !== BigInt(0)) {\n writer.uint32(16).int64(message.index);\n }\n if (message.leafHash.length !== 0) {\n writer.uint32(26).bytes(message.leafHash);\n }\n for (const v of message.aunts) {\n writer.uint32(34).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total = reader.int64();\n break;\n case 2:\n message.index = reader.int64();\n break;\n case 3:\n message.leafHash = reader.bytes();\n break;\n case 4:\n message.aunts.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseProof();\n if ((0, helpers_1.isSet)(object.total))\n obj.total = BigInt(object.total.toString());\n if ((0, helpers_1.isSet)(object.index))\n obj.index = BigInt(object.index.toString());\n if ((0, helpers_1.isSet)(object.leafHash))\n obj.leafHash = (0, helpers_1.bytesFromBase64)(object.leafHash);\n if (Array.isArray(object?.aunts))\n obj.aunts = object.aunts.map((e) => (0, helpers_1.bytesFromBase64)(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.total !== undefined && (obj.total = (message.total || BigInt(0)).toString());\n message.index !== undefined && (obj.index = (message.index || BigInt(0)).toString());\n message.leafHash !== undefined &&\n (obj.leafHash = (0, helpers_1.base64FromBytes)(message.leafHash !== undefined ? message.leafHash : new Uint8Array()));\n if (message.aunts) {\n obj.aunts = message.aunts.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.aunts = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseProof();\n if (object.total !== undefined && object.total !== null) {\n message.total = BigInt(object.total.toString());\n }\n if (object.index !== undefined && object.index !== null) {\n message.index = BigInt(object.index.toString());\n }\n message.leafHash = object.leafHash ?? new Uint8Array();\n message.aunts = object.aunts?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseValueOp() {\n return {\n key: new Uint8Array(),\n proof: undefined,\n };\n}\nexports.ValueOp = {\n typeUrl: \"/tendermint.crypto.ValueOp\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.proof !== undefined) {\n exports.Proof.encode(message.proof, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValueOp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.proof = exports.Proof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValueOp();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = exports.Proof.fromJSON(object.proof);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n message.proof !== undefined && (obj.proof = message.proof ? exports.Proof.toJSON(message.proof) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValueOp();\n message.key = object.key ?? new Uint8Array();\n if (object.proof !== undefined && object.proof !== null) {\n message.proof = exports.Proof.fromPartial(object.proof);\n }\n return message;\n },\n};\nfunction createBaseDominoOp() {\n return {\n key: \"\",\n input: \"\",\n output: \"\",\n };\n}\nexports.DominoOp = {\n typeUrl: \"/tendermint.crypto.DominoOp\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.input !== \"\") {\n writer.uint32(18).string(message.input);\n }\n if (message.output !== \"\") {\n writer.uint32(26).string(message.output);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDominoOp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n case 2:\n message.input = reader.string();\n break;\n case 3:\n message.output = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDominoOp();\n if ((0, helpers_1.isSet)(object.key))\n obj.key = String(object.key);\n if ((0, helpers_1.isSet)(object.input))\n obj.input = String(object.input);\n if ((0, helpers_1.isSet)(object.output))\n obj.output = String(object.output);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined && (obj.key = message.key);\n message.input !== undefined && (obj.input = message.input);\n message.output !== undefined && (obj.output = message.output);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDominoOp();\n message.key = object.key ?? \"\";\n message.input = object.input ?? \"\";\n message.output = object.output ?? \"\";\n return message;\n },\n};\nfunction createBaseProofOp() {\n return {\n type: \"\",\n key: new Uint8Array(),\n data: new Uint8Array(),\n };\n}\nexports.ProofOp = {\n typeUrl: \"/tendermint.crypto.ProofOp\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.type !== \"\") {\n writer.uint32(10).string(message.type);\n }\n if (message.key.length !== 0) {\n writer.uint32(18).bytes(message.key);\n }\n if (message.data.length !== 0) {\n writer.uint32(26).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProofOp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.string();\n break;\n case 2:\n message.key = reader.bytes();\n break;\n case 3:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseProofOp();\n if ((0, helpers_1.isSet)(object.type))\n obj.type = String(object.type);\n if ((0, helpers_1.isSet)(object.key))\n obj.key = (0, helpers_1.bytesFromBase64)(object.key);\n if ((0, helpers_1.isSet)(object.data))\n obj.data = (0, helpers_1.bytesFromBase64)(object.data);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = message.type);\n message.key !== undefined &&\n (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array()));\n message.data !== undefined &&\n (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseProofOp();\n message.type = object.type ?? \"\";\n message.key = object.key ?? new Uint8Array();\n message.data = object.data ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseProofOps() {\n return {\n ops: [],\n };\n}\nexports.ProofOps = {\n typeUrl: \"/tendermint.crypto.ProofOps\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.ops) {\n exports.ProofOp.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProofOps();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.ops.push(exports.ProofOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseProofOps();\n if (Array.isArray(object?.ops))\n obj.ops = object.ops.map((e) => exports.ProofOp.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.ops) {\n obj.ops = message.ops.map((e) => (e ? exports.ProofOp.toJSON(e) : undefined));\n }\n else {\n obj.ops = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseProofOps();\n message.ops = object.ops?.map((e) => exports.ProofOp.fromPartial(e)) || [];\n return message;\n },\n};\n//# sourceMappingURL=proof.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Block = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst types_1 = require(\"./types\");\nconst evidence_1 = require(\"./evidence\");\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"tendermint.types\";\nfunction createBaseBlock() {\n return {\n header: types_1.Header.fromPartial({}),\n data: types_1.Data.fromPartial({}),\n evidence: evidence_1.EvidenceList.fromPartial({}),\n lastCommit: undefined,\n };\n}\nexports.Block = {\n typeUrl: \"/tendermint.types.Block\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.header !== undefined) {\n types_1.Header.encode(message.header, writer.uint32(10).fork()).ldelim();\n }\n if (message.data !== undefined) {\n types_1.Data.encode(message.data, writer.uint32(18).fork()).ldelim();\n }\n if (message.evidence !== undefined) {\n evidence_1.EvidenceList.encode(message.evidence, writer.uint32(26).fork()).ldelim();\n }\n if (message.lastCommit !== undefined) {\n types_1.Commit.encode(message.lastCommit, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBlock();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.header = types_1.Header.decode(reader, reader.uint32());\n break;\n case 2:\n message.data = types_1.Data.decode(reader, reader.uint32());\n break;\n case 3:\n message.evidence = evidence_1.EvidenceList.decode(reader, reader.uint32());\n break;\n case 4:\n message.lastCommit = types_1.Commit.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBlock();\n if ((0, helpers_1.isSet)(object.header))\n obj.header = types_1.Header.fromJSON(object.header);\n if ((0, helpers_1.isSet)(object.data))\n obj.data = types_1.Data.fromJSON(object.data);\n if ((0, helpers_1.isSet)(object.evidence))\n obj.evidence = evidence_1.EvidenceList.fromJSON(object.evidence);\n if ((0, helpers_1.isSet)(object.lastCommit))\n obj.lastCommit = types_1.Commit.fromJSON(object.lastCommit);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.header !== undefined && (obj.header = message.header ? types_1.Header.toJSON(message.header) : undefined);\n message.data !== undefined && (obj.data = message.data ? types_1.Data.toJSON(message.data) : undefined);\n message.evidence !== undefined &&\n (obj.evidence = message.evidence ? evidence_1.EvidenceList.toJSON(message.evidence) : undefined);\n message.lastCommit !== undefined &&\n (obj.lastCommit = message.lastCommit ? types_1.Commit.toJSON(message.lastCommit) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBlock();\n if (object.header !== undefined && object.header !== null) {\n message.header = types_1.Header.fromPartial(object.header);\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = types_1.Data.fromPartial(object.data);\n }\n if (object.evidence !== undefined && object.evidence !== null) {\n message.evidence = evidence_1.EvidenceList.fromPartial(object.evidence);\n }\n if (object.lastCommit !== undefined && object.lastCommit !== null) {\n message.lastCommit = types_1.Commit.fromPartial(object.lastCommit);\n }\n return message;\n },\n};\n//# sourceMappingURL=block.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EvidenceList = exports.LightClientAttackEvidence = exports.DuplicateVoteEvidence = exports.Evidence = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst types_1 = require(\"./types\");\nconst timestamp_1 = require(\"../../google/protobuf/timestamp\");\nconst validator_1 = require(\"./validator\");\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"tendermint.types\";\nfunction createBaseEvidence() {\n return {\n duplicateVoteEvidence: undefined,\n lightClientAttackEvidence: undefined,\n };\n}\nexports.Evidence = {\n typeUrl: \"/tendermint.types.Evidence\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.duplicateVoteEvidence !== undefined) {\n exports.DuplicateVoteEvidence.encode(message.duplicateVoteEvidence, writer.uint32(10).fork()).ldelim();\n }\n if (message.lightClientAttackEvidence !== undefined) {\n exports.LightClientAttackEvidence.encode(message.lightClientAttackEvidence, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEvidence();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.duplicateVoteEvidence = exports.DuplicateVoteEvidence.decode(reader, reader.uint32());\n break;\n case 2:\n message.lightClientAttackEvidence = exports.LightClientAttackEvidence.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseEvidence();\n if ((0, helpers_1.isSet)(object.duplicateVoteEvidence))\n obj.duplicateVoteEvidence = exports.DuplicateVoteEvidence.fromJSON(object.duplicateVoteEvidence);\n if ((0, helpers_1.isSet)(object.lightClientAttackEvidence))\n obj.lightClientAttackEvidence = exports.LightClientAttackEvidence.fromJSON(object.lightClientAttackEvidence);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.duplicateVoteEvidence !== undefined &&\n (obj.duplicateVoteEvidence = message.duplicateVoteEvidence\n ? exports.DuplicateVoteEvidence.toJSON(message.duplicateVoteEvidence)\n : undefined);\n message.lightClientAttackEvidence !== undefined &&\n (obj.lightClientAttackEvidence = message.lightClientAttackEvidence\n ? exports.LightClientAttackEvidence.toJSON(message.lightClientAttackEvidence)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseEvidence();\n if (object.duplicateVoteEvidence !== undefined && object.duplicateVoteEvidence !== null) {\n message.duplicateVoteEvidence = exports.DuplicateVoteEvidence.fromPartial(object.duplicateVoteEvidence);\n }\n if (object.lightClientAttackEvidence !== undefined && object.lightClientAttackEvidence !== null) {\n message.lightClientAttackEvidence = exports.LightClientAttackEvidence.fromPartial(object.lightClientAttackEvidence);\n }\n return message;\n },\n};\nfunction createBaseDuplicateVoteEvidence() {\n return {\n voteA: undefined,\n voteB: undefined,\n totalVotingPower: BigInt(0),\n validatorPower: BigInt(0),\n timestamp: timestamp_1.Timestamp.fromPartial({}),\n };\n}\nexports.DuplicateVoteEvidence = {\n typeUrl: \"/tendermint.types.DuplicateVoteEvidence\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.voteA !== undefined) {\n types_1.Vote.encode(message.voteA, writer.uint32(10).fork()).ldelim();\n }\n if (message.voteB !== undefined) {\n types_1.Vote.encode(message.voteB, writer.uint32(18).fork()).ldelim();\n }\n if (message.totalVotingPower !== BigInt(0)) {\n writer.uint32(24).int64(message.totalVotingPower);\n }\n if (message.validatorPower !== BigInt(0)) {\n writer.uint32(32).int64(message.validatorPower);\n }\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(message.timestamp, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDuplicateVoteEvidence();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.voteA = types_1.Vote.decode(reader, reader.uint32());\n break;\n case 2:\n message.voteB = types_1.Vote.decode(reader, reader.uint32());\n break;\n case 3:\n message.totalVotingPower = reader.int64();\n break;\n case 4:\n message.validatorPower = reader.int64();\n break;\n case 5:\n message.timestamp = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseDuplicateVoteEvidence();\n if ((0, helpers_1.isSet)(object.voteA))\n obj.voteA = types_1.Vote.fromJSON(object.voteA);\n if ((0, helpers_1.isSet)(object.voteB))\n obj.voteB = types_1.Vote.fromJSON(object.voteB);\n if ((0, helpers_1.isSet)(object.totalVotingPower))\n obj.totalVotingPower = BigInt(object.totalVotingPower.toString());\n if ((0, helpers_1.isSet)(object.validatorPower))\n obj.validatorPower = BigInt(object.validatorPower.toString());\n if ((0, helpers_1.isSet)(object.timestamp))\n obj.timestamp = (0, helpers_1.fromJsonTimestamp)(object.timestamp);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.voteA !== undefined && (obj.voteA = message.voteA ? types_1.Vote.toJSON(message.voteA) : undefined);\n message.voteB !== undefined && (obj.voteB = message.voteB ? types_1.Vote.toJSON(message.voteB) : undefined);\n message.totalVotingPower !== undefined &&\n (obj.totalVotingPower = (message.totalVotingPower || BigInt(0)).toString());\n message.validatorPower !== undefined &&\n (obj.validatorPower = (message.validatorPower || BigInt(0)).toString());\n message.timestamp !== undefined && (obj.timestamp = (0, helpers_1.fromTimestamp)(message.timestamp).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseDuplicateVoteEvidence();\n if (object.voteA !== undefined && object.voteA !== null) {\n message.voteA = types_1.Vote.fromPartial(object.voteA);\n }\n if (object.voteB !== undefined && object.voteB !== null) {\n message.voteB = types_1.Vote.fromPartial(object.voteB);\n }\n if (object.totalVotingPower !== undefined && object.totalVotingPower !== null) {\n message.totalVotingPower = BigInt(object.totalVotingPower.toString());\n }\n if (object.validatorPower !== undefined && object.validatorPower !== null) {\n message.validatorPower = BigInt(object.validatorPower.toString());\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = timestamp_1.Timestamp.fromPartial(object.timestamp);\n }\n return message;\n },\n};\nfunction createBaseLightClientAttackEvidence() {\n return {\n conflictingBlock: undefined,\n commonHeight: BigInt(0),\n byzantineValidators: [],\n totalVotingPower: BigInt(0),\n timestamp: timestamp_1.Timestamp.fromPartial({}),\n };\n}\nexports.LightClientAttackEvidence = {\n typeUrl: \"/tendermint.types.LightClientAttackEvidence\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.conflictingBlock !== undefined) {\n types_1.LightBlock.encode(message.conflictingBlock, writer.uint32(10).fork()).ldelim();\n }\n if (message.commonHeight !== BigInt(0)) {\n writer.uint32(16).int64(message.commonHeight);\n }\n for (const v of message.byzantineValidators) {\n validator_1.Validator.encode(v, writer.uint32(26).fork()).ldelim();\n }\n if (message.totalVotingPower !== BigInt(0)) {\n writer.uint32(32).int64(message.totalVotingPower);\n }\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(message.timestamp, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseLightClientAttackEvidence();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.conflictingBlock = types_1.LightBlock.decode(reader, reader.uint32());\n break;\n case 2:\n message.commonHeight = reader.int64();\n break;\n case 3:\n message.byzantineValidators.push(validator_1.Validator.decode(reader, reader.uint32()));\n break;\n case 4:\n message.totalVotingPower = reader.int64();\n break;\n case 5:\n message.timestamp = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseLightClientAttackEvidence();\n if ((0, helpers_1.isSet)(object.conflictingBlock))\n obj.conflictingBlock = types_1.LightBlock.fromJSON(object.conflictingBlock);\n if ((0, helpers_1.isSet)(object.commonHeight))\n obj.commonHeight = BigInt(object.commonHeight.toString());\n if (Array.isArray(object?.byzantineValidators))\n obj.byzantineValidators = object.byzantineValidators.map((e) => validator_1.Validator.fromJSON(e));\n if ((0, helpers_1.isSet)(object.totalVotingPower))\n obj.totalVotingPower = BigInt(object.totalVotingPower.toString());\n if ((0, helpers_1.isSet)(object.timestamp))\n obj.timestamp = (0, helpers_1.fromJsonTimestamp)(object.timestamp);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.conflictingBlock !== undefined &&\n (obj.conflictingBlock = message.conflictingBlock\n ? types_1.LightBlock.toJSON(message.conflictingBlock)\n : undefined);\n message.commonHeight !== undefined && (obj.commonHeight = (message.commonHeight || BigInt(0)).toString());\n if (message.byzantineValidators) {\n obj.byzantineValidators = message.byzantineValidators.map((e) => (e ? validator_1.Validator.toJSON(e) : undefined));\n }\n else {\n obj.byzantineValidators = [];\n }\n message.totalVotingPower !== undefined &&\n (obj.totalVotingPower = (message.totalVotingPower || BigInt(0)).toString());\n message.timestamp !== undefined && (obj.timestamp = (0, helpers_1.fromTimestamp)(message.timestamp).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseLightClientAttackEvidence();\n if (object.conflictingBlock !== undefined && object.conflictingBlock !== null) {\n message.conflictingBlock = types_1.LightBlock.fromPartial(object.conflictingBlock);\n }\n if (object.commonHeight !== undefined && object.commonHeight !== null) {\n message.commonHeight = BigInt(object.commonHeight.toString());\n }\n message.byzantineValidators = object.byzantineValidators?.map((e) => validator_1.Validator.fromPartial(e)) || [];\n if (object.totalVotingPower !== undefined && object.totalVotingPower !== null) {\n message.totalVotingPower = BigInt(object.totalVotingPower.toString());\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = timestamp_1.Timestamp.fromPartial(object.timestamp);\n }\n return message;\n },\n};\nfunction createBaseEvidenceList() {\n return {\n evidence: [],\n };\n}\nexports.EvidenceList = {\n typeUrl: \"/tendermint.types.EvidenceList\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.evidence) {\n exports.Evidence.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEvidenceList();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.evidence.push(exports.Evidence.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseEvidenceList();\n if (Array.isArray(object?.evidence))\n obj.evidence = object.evidence.map((e) => exports.Evidence.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.evidence) {\n obj.evidence = message.evidence.map((e) => (e ? exports.Evidence.toJSON(e) : undefined));\n }\n else {\n obj.evidence = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseEvidenceList();\n message.evidence = object.evidence?.map((e) => exports.Evidence.fromPartial(e)) || [];\n return message;\n },\n};\n//# sourceMappingURL=evidence.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HashedParams = exports.VersionParams = exports.ValidatorParams = exports.EvidenceParams = exports.BlockParams = exports.ConsensusParams = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst duration_1 = require(\"../../google/protobuf/duration\");\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"tendermint.types\";\nfunction createBaseConsensusParams() {\n return {\n block: undefined,\n evidence: undefined,\n validator: undefined,\n version: undefined,\n };\n}\nexports.ConsensusParams = {\n typeUrl: \"/tendermint.types.ConsensusParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.block !== undefined) {\n exports.BlockParams.encode(message.block, writer.uint32(10).fork()).ldelim();\n }\n if (message.evidence !== undefined) {\n exports.EvidenceParams.encode(message.evidence, writer.uint32(18).fork()).ldelim();\n }\n if (message.validator !== undefined) {\n exports.ValidatorParams.encode(message.validator, writer.uint32(26).fork()).ldelim();\n }\n if (message.version !== undefined) {\n exports.VersionParams.encode(message.version, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseConsensusParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.block = exports.BlockParams.decode(reader, reader.uint32());\n break;\n case 2:\n message.evidence = exports.EvidenceParams.decode(reader, reader.uint32());\n break;\n case 3:\n message.validator = exports.ValidatorParams.decode(reader, reader.uint32());\n break;\n case 4:\n message.version = exports.VersionParams.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseConsensusParams();\n if ((0, helpers_1.isSet)(object.block))\n obj.block = exports.BlockParams.fromJSON(object.block);\n if ((0, helpers_1.isSet)(object.evidence))\n obj.evidence = exports.EvidenceParams.fromJSON(object.evidence);\n if ((0, helpers_1.isSet)(object.validator))\n obj.validator = exports.ValidatorParams.fromJSON(object.validator);\n if ((0, helpers_1.isSet)(object.version))\n obj.version = exports.VersionParams.fromJSON(object.version);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.block !== undefined &&\n (obj.block = message.block ? exports.BlockParams.toJSON(message.block) : undefined);\n message.evidence !== undefined &&\n (obj.evidence = message.evidence ? exports.EvidenceParams.toJSON(message.evidence) : undefined);\n message.validator !== undefined &&\n (obj.validator = message.validator ? exports.ValidatorParams.toJSON(message.validator) : undefined);\n message.version !== undefined &&\n (obj.version = message.version ? exports.VersionParams.toJSON(message.version) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseConsensusParams();\n if (object.block !== undefined && object.block !== null) {\n message.block = exports.BlockParams.fromPartial(object.block);\n }\n if (object.evidence !== undefined && object.evidence !== null) {\n message.evidence = exports.EvidenceParams.fromPartial(object.evidence);\n }\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = exports.ValidatorParams.fromPartial(object.validator);\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = exports.VersionParams.fromPartial(object.version);\n }\n return message;\n },\n};\nfunction createBaseBlockParams() {\n return {\n maxBytes: BigInt(0),\n maxGas: BigInt(0),\n };\n}\nexports.BlockParams = {\n typeUrl: \"/tendermint.types.BlockParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.maxBytes !== BigInt(0)) {\n writer.uint32(8).int64(message.maxBytes);\n }\n if (message.maxGas !== BigInt(0)) {\n writer.uint32(16).int64(message.maxGas);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBlockParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxBytes = reader.int64();\n break;\n case 2:\n message.maxGas = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBlockParams();\n if ((0, helpers_1.isSet)(object.maxBytes))\n obj.maxBytes = BigInt(object.maxBytes.toString());\n if ((0, helpers_1.isSet)(object.maxGas))\n obj.maxGas = BigInt(object.maxGas.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || BigInt(0)).toString());\n message.maxGas !== undefined && (obj.maxGas = (message.maxGas || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBlockParams();\n if (object.maxBytes !== undefined && object.maxBytes !== null) {\n message.maxBytes = BigInt(object.maxBytes.toString());\n }\n if (object.maxGas !== undefined && object.maxGas !== null) {\n message.maxGas = BigInt(object.maxGas.toString());\n }\n return message;\n },\n};\nfunction createBaseEvidenceParams() {\n return {\n maxAgeNumBlocks: BigInt(0),\n maxAgeDuration: duration_1.Duration.fromPartial({}),\n maxBytes: BigInt(0),\n };\n}\nexports.EvidenceParams = {\n typeUrl: \"/tendermint.types.EvidenceParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.maxAgeNumBlocks !== BigInt(0)) {\n writer.uint32(8).int64(message.maxAgeNumBlocks);\n }\n if (message.maxAgeDuration !== undefined) {\n duration_1.Duration.encode(message.maxAgeDuration, writer.uint32(18).fork()).ldelim();\n }\n if (message.maxBytes !== BigInt(0)) {\n writer.uint32(24).int64(message.maxBytes);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEvidenceParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxAgeNumBlocks = reader.int64();\n break;\n case 2:\n message.maxAgeDuration = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 3:\n message.maxBytes = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseEvidenceParams();\n if ((0, helpers_1.isSet)(object.maxAgeNumBlocks))\n obj.maxAgeNumBlocks = BigInt(object.maxAgeNumBlocks.toString());\n if ((0, helpers_1.isSet)(object.maxAgeDuration))\n obj.maxAgeDuration = duration_1.Duration.fromJSON(object.maxAgeDuration);\n if ((0, helpers_1.isSet)(object.maxBytes))\n obj.maxBytes = BigInt(object.maxBytes.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.maxAgeNumBlocks !== undefined &&\n (obj.maxAgeNumBlocks = (message.maxAgeNumBlocks || BigInt(0)).toString());\n message.maxAgeDuration !== undefined &&\n (obj.maxAgeDuration = message.maxAgeDuration ? duration_1.Duration.toJSON(message.maxAgeDuration) : undefined);\n message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseEvidenceParams();\n if (object.maxAgeNumBlocks !== undefined && object.maxAgeNumBlocks !== null) {\n message.maxAgeNumBlocks = BigInt(object.maxAgeNumBlocks.toString());\n }\n if (object.maxAgeDuration !== undefined && object.maxAgeDuration !== null) {\n message.maxAgeDuration = duration_1.Duration.fromPartial(object.maxAgeDuration);\n }\n if (object.maxBytes !== undefined && object.maxBytes !== null) {\n message.maxBytes = BigInt(object.maxBytes.toString());\n }\n return message;\n },\n};\nfunction createBaseValidatorParams() {\n return {\n pubKeyTypes: [],\n };\n}\nexports.ValidatorParams = {\n typeUrl: \"/tendermint.types.ValidatorParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.pubKeyTypes) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pubKeyTypes.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidatorParams();\n if (Array.isArray(object?.pubKeyTypes))\n obj.pubKeyTypes = object.pubKeyTypes.map((e) => String(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.pubKeyTypes) {\n obj.pubKeyTypes = message.pubKeyTypes.map((e) => e);\n }\n else {\n obj.pubKeyTypes = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidatorParams();\n message.pubKeyTypes = object.pubKeyTypes?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseVersionParams() {\n return {\n app: BigInt(0),\n };\n}\nexports.VersionParams = {\n typeUrl: \"/tendermint.types.VersionParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.app !== BigInt(0)) {\n writer.uint32(8).uint64(message.app);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVersionParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.app = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseVersionParams();\n if ((0, helpers_1.isSet)(object.app))\n obj.app = BigInt(object.app.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.app !== undefined && (obj.app = (message.app || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseVersionParams();\n if (object.app !== undefined && object.app !== null) {\n message.app = BigInt(object.app.toString());\n }\n return message;\n },\n};\nfunction createBaseHashedParams() {\n return {\n blockMaxBytes: BigInt(0),\n blockMaxGas: BigInt(0),\n };\n}\nexports.HashedParams = {\n typeUrl: \"/tendermint.types.HashedParams\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.blockMaxBytes !== BigInt(0)) {\n writer.uint32(8).int64(message.blockMaxBytes);\n }\n if (message.blockMaxGas !== BigInt(0)) {\n writer.uint32(16).int64(message.blockMaxGas);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHashedParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.blockMaxBytes = reader.int64();\n break;\n case 2:\n message.blockMaxGas = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseHashedParams();\n if ((0, helpers_1.isSet)(object.blockMaxBytes))\n obj.blockMaxBytes = BigInt(object.blockMaxBytes.toString());\n if ((0, helpers_1.isSet)(object.blockMaxGas))\n obj.blockMaxGas = BigInt(object.blockMaxGas.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.blockMaxBytes !== undefined &&\n (obj.blockMaxBytes = (message.blockMaxBytes || BigInt(0)).toString());\n message.blockMaxGas !== undefined && (obj.blockMaxGas = (message.blockMaxGas || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseHashedParams();\n if (object.blockMaxBytes !== undefined && object.blockMaxBytes !== null) {\n message.blockMaxBytes = BigInt(object.blockMaxBytes.toString());\n }\n if (object.blockMaxGas !== undefined && object.blockMaxGas !== null) {\n message.blockMaxGas = BigInt(object.blockMaxGas.toString());\n }\n return message;\n },\n};\n//# sourceMappingURL=params.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TxProof = exports.BlockMeta = exports.LightBlock = exports.SignedHeader = exports.Proposal = exports.CommitSig = exports.Commit = exports.Vote = exports.Data = exports.Header = exports.BlockID = exports.Part = exports.PartSetHeader = exports.signedMsgTypeToJSON = exports.signedMsgTypeFromJSON = exports.SignedMsgType = exports.blockIDFlagToJSON = exports.blockIDFlagFromJSON = exports.BlockIDFlag = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst proof_1 = require(\"../crypto/proof\");\nconst types_1 = require(\"../version/types\");\nconst timestamp_1 = require(\"../../google/protobuf/timestamp\");\nconst validator_1 = require(\"./validator\");\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"tendermint.types\";\n/** BlockIdFlag indicates which BlcokID the signature is for */\nvar BlockIDFlag;\n(function (BlockIDFlag) {\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_UNKNOWN\"] = 0] = \"BLOCK_ID_FLAG_UNKNOWN\";\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_ABSENT\"] = 1] = \"BLOCK_ID_FLAG_ABSENT\";\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_COMMIT\"] = 2] = \"BLOCK_ID_FLAG_COMMIT\";\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_NIL\"] = 3] = \"BLOCK_ID_FLAG_NIL\";\n BlockIDFlag[BlockIDFlag[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(BlockIDFlag || (exports.BlockIDFlag = BlockIDFlag = {}));\nfunction blockIDFlagFromJSON(object) {\n switch (object) {\n case 0:\n case \"BLOCK_ID_FLAG_UNKNOWN\":\n return BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN;\n case 1:\n case \"BLOCK_ID_FLAG_ABSENT\":\n return BlockIDFlag.BLOCK_ID_FLAG_ABSENT;\n case 2:\n case \"BLOCK_ID_FLAG_COMMIT\":\n return BlockIDFlag.BLOCK_ID_FLAG_COMMIT;\n case 3:\n case \"BLOCK_ID_FLAG_NIL\":\n return BlockIDFlag.BLOCK_ID_FLAG_NIL;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return BlockIDFlag.UNRECOGNIZED;\n }\n}\nexports.blockIDFlagFromJSON = blockIDFlagFromJSON;\nfunction blockIDFlagToJSON(object) {\n switch (object) {\n case BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN:\n return \"BLOCK_ID_FLAG_UNKNOWN\";\n case BlockIDFlag.BLOCK_ID_FLAG_ABSENT:\n return \"BLOCK_ID_FLAG_ABSENT\";\n case BlockIDFlag.BLOCK_ID_FLAG_COMMIT:\n return \"BLOCK_ID_FLAG_COMMIT\";\n case BlockIDFlag.BLOCK_ID_FLAG_NIL:\n return \"BLOCK_ID_FLAG_NIL\";\n case BlockIDFlag.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.blockIDFlagToJSON = blockIDFlagToJSON;\n/** SignedMsgType is a type of signed message in the consensus. */\nvar SignedMsgType;\n(function (SignedMsgType) {\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_UNKNOWN\"] = 0] = \"SIGNED_MSG_TYPE_UNKNOWN\";\n /** SIGNED_MSG_TYPE_PREVOTE - Votes */\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_PREVOTE\"] = 1] = \"SIGNED_MSG_TYPE_PREVOTE\";\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_PRECOMMIT\"] = 2] = \"SIGNED_MSG_TYPE_PRECOMMIT\";\n /** SIGNED_MSG_TYPE_PROPOSAL - Proposals */\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_PROPOSAL\"] = 32] = \"SIGNED_MSG_TYPE_PROPOSAL\";\n SignedMsgType[SignedMsgType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(SignedMsgType || (exports.SignedMsgType = SignedMsgType = {}));\nfunction signedMsgTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"SIGNED_MSG_TYPE_UNKNOWN\":\n return SignedMsgType.SIGNED_MSG_TYPE_UNKNOWN;\n case 1:\n case \"SIGNED_MSG_TYPE_PREVOTE\":\n return SignedMsgType.SIGNED_MSG_TYPE_PREVOTE;\n case 2:\n case \"SIGNED_MSG_TYPE_PRECOMMIT\":\n return SignedMsgType.SIGNED_MSG_TYPE_PRECOMMIT;\n case 32:\n case \"SIGNED_MSG_TYPE_PROPOSAL\":\n return SignedMsgType.SIGNED_MSG_TYPE_PROPOSAL;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return SignedMsgType.UNRECOGNIZED;\n }\n}\nexports.signedMsgTypeFromJSON = signedMsgTypeFromJSON;\nfunction signedMsgTypeToJSON(object) {\n switch (object) {\n case SignedMsgType.SIGNED_MSG_TYPE_UNKNOWN:\n return \"SIGNED_MSG_TYPE_UNKNOWN\";\n case SignedMsgType.SIGNED_MSG_TYPE_PREVOTE:\n return \"SIGNED_MSG_TYPE_PREVOTE\";\n case SignedMsgType.SIGNED_MSG_TYPE_PRECOMMIT:\n return \"SIGNED_MSG_TYPE_PRECOMMIT\";\n case SignedMsgType.SIGNED_MSG_TYPE_PROPOSAL:\n return \"SIGNED_MSG_TYPE_PROPOSAL\";\n case SignedMsgType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nexports.signedMsgTypeToJSON = signedMsgTypeToJSON;\nfunction createBasePartSetHeader() {\n return {\n total: 0,\n hash: new Uint8Array(),\n };\n}\nexports.PartSetHeader = {\n typeUrl: \"/tendermint.types.PartSetHeader\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.total !== 0) {\n writer.uint32(8).uint32(message.total);\n }\n if (message.hash.length !== 0) {\n writer.uint32(18).bytes(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePartSetHeader();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total = reader.uint32();\n break;\n case 2:\n message.hash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePartSetHeader();\n if ((0, helpers_1.isSet)(object.total))\n obj.total = Number(object.total);\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = (0, helpers_1.bytesFromBase64)(object.hash);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.total !== undefined && (obj.total = Math.round(message.total));\n message.hash !== undefined &&\n (obj.hash = (0, helpers_1.base64FromBytes)(message.hash !== undefined ? message.hash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBasePartSetHeader();\n message.total = object.total ?? 0;\n message.hash = object.hash ?? new Uint8Array();\n return message;\n },\n};\nfunction createBasePart() {\n return {\n index: 0,\n bytes: new Uint8Array(),\n proof: proof_1.Proof.fromPartial({}),\n };\n}\nexports.Part = {\n typeUrl: \"/tendermint.types.Part\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.index !== 0) {\n writer.uint32(8).uint32(message.index);\n }\n if (message.bytes.length !== 0) {\n writer.uint32(18).bytes(message.bytes);\n }\n if (message.proof !== undefined) {\n proof_1.Proof.encode(message.proof, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePart();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.index = reader.uint32();\n break;\n case 2:\n message.bytes = reader.bytes();\n break;\n case 3:\n message.proof = proof_1.Proof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBasePart();\n if ((0, helpers_1.isSet)(object.index))\n obj.index = Number(object.index);\n if ((0, helpers_1.isSet)(object.bytes))\n obj.bytes = (0, helpers_1.bytesFromBase64)(object.bytes);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = proof_1.Proof.fromJSON(object.proof);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.index !== undefined && (obj.index = Math.round(message.index));\n message.bytes !== undefined &&\n (obj.bytes = (0, helpers_1.base64FromBytes)(message.bytes !== undefined ? message.bytes : new Uint8Array()));\n message.proof !== undefined && (obj.proof = message.proof ? proof_1.Proof.toJSON(message.proof) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBasePart();\n message.index = object.index ?? 0;\n message.bytes = object.bytes ?? new Uint8Array();\n if (object.proof !== undefined && object.proof !== null) {\n message.proof = proof_1.Proof.fromPartial(object.proof);\n }\n return message;\n },\n};\nfunction createBaseBlockID() {\n return {\n hash: new Uint8Array(),\n partSetHeader: exports.PartSetHeader.fromPartial({}),\n };\n}\nexports.BlockID = {\n typeUrl: \"/tendermint.types.BlockID\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.hash.length !== 0) {\n writer.uint32(10).bytes(message.hash);\n }\n if (message.partSetHeader !== undefined) {\n exports.PartSetHeader.encode(message.partSetHeader, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBlockID();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.bytes();\n break;\n case 2:\n message.partSetHeader = exports.PartSetHeader.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBlockID();\n if ((0, helpers_1.isSet)(object.hash))\n obj.hash = (0, helpers_1.bytesFromBase64)(object.hash);\n if ((0, helpers_1.isSet)(object.partSetHeader))\n obj.partSetHeader = exports.PartSetHeader.fromJSON(object.partSetHeader);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined &&\n (obj.hash = (0, helpers_1.base64FromBytes)(message.hash !== undefined ? message.hash : new Uint8Array()));\n message.partSetHeader !== undefined &&\n (obj.partSetHeader = message.partSetHeader ? exports.PartSetHeader.toJSON(message.partSetHeader) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBlockID();\n message.hash = object.hash ?? new Uint8Array();\n if (object.partSetHeader !== undefined && object.partSetHeader !== null) {\n message.partSetHeader = exports.PartSetHeader.fromPartial(object.partSetHeader);\n }\n return message;\n },\n};\nfunction createBaseHeader() {\n return {\n version: types_1.Consensus.fromPartial({}),\n chainId: \"\",\n height: BigInt(0),\n time: timestamp_1.Timestamp.fromPartial({}),\n lastBlockId: exports.BlockID.fromPartial({}),\n lastCommitHash: new Uint8Array(),\n dataHash: new Uint8Array(),\n validatorsHash: new Uint8Array(),\n nextValidatorsHash: new Uint8Array(),\n consensusHash: new Uint8Array(),\n appHash: new Uint8Array(),\n lastResultsHash: new Uint8Array(),\n evidenceHash: new Uint8Array(),\n proposerAddress: new Uint8Array(),\n };\n}\nexports.Header = {\n typeUrl: \"/tendermint.types.Header\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.version !== undefined) {\n types_1.Consensus.encode(message.version, writer.uint32(10).fork()).ldelim();\n }\n if (message.chainId !== \"\") {\n writer.uint32(18).string(message.chainId);\n }\n if (message.height !== BigInt(0)) {\n writer.uint32(24).int64(message.height);\n }\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(message.time, writer.uint32(34).fork()).ldelim();\n }\n if (message.lastBlockId !== undefined) {\n exports.BlockID.encode(message.lastBlockId, writer.uint32(42).fork()).ldelim();\n }\n if (message.lastCommitHash.length !== 0) {\n writer.uint32(50).bytes(message.lastCommitHash);\n }\n if (message.dataHash.length !== 0) {\n writer.uint32(58).bytes(message.dataHash);\n }\n if (message.validatorsHash.length !== 0) {\n writer.uint32(66).bytes(message.validatorsHash);\n }\n if (message.nextValidatorsHash.length !== 0) {\n writer.uint32(74).bytes(message.nextValidatorsHash);\n }\n if (message.consensusHash.length !== 0) {\n writer.uint32(82).bytes(message.consensusHash);\n }\n if (message.appHash.length !== 0) {\n writer.uint32(90).bytes(message.appHash);\n }\n if (message.lastResultsHash.length !== 0) {\n writer.uint32(98).bytes(message.lastResultsHash);\n }\n if (message.evidenceHash.length !== 0) {\n writer.uint32(106).bytes(message.evidenceHash);\n }\n if (message.proposerAddress.length !== 0) {\n writer.uint32(114).bytes(message.proposerAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHeader();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.version = types_1.Consensus.decode(reader, reader.uint32());\n break;\n case 2:\n message.chainId = reader.string();\n break;\n case 3:\n message.height = reader.int64();\n break;\n case 4:\n message.time = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 5:\n message.lastBlockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 6:\n message.lastCommitHash = reader.bytes();\n break;\n case 7:\n message.dataHash = reader.bytes();\n break;\n case 8:\n message.validatorsHash = reader.bytes();\n break;\n case 9:\n message.nextValidatorsHash = reader.bytes();\n break;\n case 10:\n message.consensusHash = reader.bytes();\n break;\n case 11:\n message.appHash = reader.bytes();\n break;\n case 12:\n message.lastResultsHash = reader.bytes();\n break;\n case 13:\n message.evidenceHash = reader.bytes();\n break;\n case 14:\n message.proposerAddress = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseHeader();\n if ((0, helpers_1.isSet)(object.version))\n obj.version = types_1.Consensus.fromJSON(object.version);\n if ((0, helpers_1.isSet)(object.chainId))\n obj.chainId = String(object.chainId);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.time))\n obj.time = (0, helpers_1.fromJsonTimestamp)(object.time);\n if ((0, helpers_1.isSet)(object.lastBlockId))\n obj.lastBlockId = exports.BlockID.fromJSON(object.lastBlockId);\n if ((0, helpers_1.isSet)(object.lastCommitHash))\n obj.lastCommitHash = (0, helpers_1.bytesFromBase64)(object.lastCommitHash);\n if ((0, helpers_1.isSet)(object.dataHash))\n obj.dataHash = (0, helpers_1.bytesFromBase64)(object.dataHash);\n if ((0, helpers_1.isSet)(object.validatorsHash))\n obj.validatorsHash = (0, helpers_1.bytesFromBase64)(object.validatorsHash);\n if ((0, helpers_1.isSet)(object.nextValidatorsHash))\n obj.nextValidatorsHash = (0, helpers_1.bytesFromBase64)(object.nextValidatorsHash);\n if ((0, helpers_1.isSet)(object.consensusHash))\n obj.consensusHash = (0, helpers_1.bytesFromBase64)(object.consensusHash);\n if ((0, helpers_1.isSet)(object.appHash))\n obj.appHash = (0, helpers_1.bytesFromBase64)(object.appHash);\n if ((0, helpers_1.isSet)(object.lastResultsHash))\n obj.lastResultsHash = (0, helpers_1.bytesFromBase64)(object.lastResultsHash);\n if ((0, helpers_1.isSet)(object.evidenceHash))\n obj.evidenceHash = (0, helpers_1.bytesFromBase64)(object.evidenceHash);\n if ((0, helpers_1.isSet)(object.proposerAddress))\n obj.proposerAddress = (0, helpers_1.bytesFromBase64)(object.proposerAddress);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.version !== undefined &&\n (obj.version = message.version ? types_1.Consensus.toJSON(message.version) : undefined);\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.time !== undefined && (obj.time = (0, helpers_1.fromTimestamp)(message.time).toISOString());\n message.lastBlockId !== undefined &&\n (obj.lastBlockId = message.lastBlockId ? exports.BlockID.toJSON(message.lastBlockId) : undefined);\n message.lastCommitHash !== undefined &&\n (obj.lastCommitHash = (0, helpers_1.base64FromBytes)(message.lastCommitHash !== undefined ? message.lastCommitHash : new Uint8Array()));\n message.dataHash !== undefined &&\n (obj.dataHash = (0, helpers_1.base64FromBytes)(message.dataHash !== undefined ? message.dataHash : new Uint8Array()));\n message.validatorsHash !== undefined &&\n (obj.validatorsHash = (0, helpers_1.base64FromBytes)(message.validatorsHash !== undefined ? message.validatorsHash : new Uint8Array()));\n message.nextValidatorsHash !== undefined &&\n (obj.nextValidatorsHash = (0, helpers_1.base64FromBytes)(message.nextValidatorsHash !== undefined ? message.nextValidatorsHash : new Uint8Array()));\n message.consensusHash !== undefined &&\n (obj.consensusHash = (0, helpers_1.base64FromBytes)(message.consensusHash !== undefined ? message.consensusHash : new Uint8Array()));\n message.appHash !== undefined &&\n (obj.appHash = (0, helpers_1.base64FromBytes)(message.appHash !== undefined ? message.appHash : new Uint8Array()));\n message.lastResultsHash !== undefined &&\n (obj.lastResultsHash = (0, helpers_1.base64FromBytes)(message.lastResultsHash !== undefined ? message.lastResultsHash : new Uint8Array()));\n message.evidenceHash !== undefined &&\n (obj.evidenceHash = (0, helpers_1.base64FromBytes)(message.evidenceHash !== undefined ? message.evidenceHash : new Uint8Array()));\n message.proposerAddress !== undefined &&\n (obj.proposerAddress = (0, helpers_1.base64FromBytes)(message.proposerAddress !== undefined ? message.proposerAddress : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseHeader();\n if (object.version !== undefined && object.version !== null) {\n message.version = types_1.Consensus.fromPartial(object.version);\n }\n message.chainId = object.chainId ?? \"\";\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = timestamp_1.Timestamp.fromPartial(object.time);\n }\n if (object.lastBlockId !== undefined && object.lastBlockId !== null) {\n message.lastBlockId = exports.BlockID.fromPartial(object.lastBlockId);\n }\n message.lastCommitHash = object.lastCommitHash ?? new Uint8Array();\n message.dataHash = object.dataHash ?? new Uint8Array();\n message.validatorsHash = object.validatorsHash ?? new Uint8Array();\n message.nextValidatorsHash = object.nextValidatorsHash ?? new Uint8Array();\n message.consensusHash = object.consensusHash ?? new Uint8Array();\n message.appHash = object.appHash ?? new Uint8Array();\n message.lastResultsHash = object.lastResultsHash ?? new Uint8Array();\n message.evidenceHash = object.evidenceHash ?? new Uint8Array();\n message.proposerAddress = object.proposerAddress ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseData() {\n return {\n txs: [],\n };\n}\nexports.Data = {\n typeUrl: \"/tendermint.types.Data\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.txs) {\n writer.uint32(10).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseData();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txs.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseData();\n if (Array.isArray(object?.txs))\n obj.txs = object.txs.map((e) => (0, helpers_1.bytesFromBase64)(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.txs) {\n obj.txs = message.txs.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.txs = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseData();\n message.txs = object.txs?.map((e) => e) || [];\n return message;\n },\n};\nfunction createBaseVote() {\n return {\n type: 0,\n height: BigInt(0),\n round: 0,\n blockId: exports.BlockID.fromPartial({}),\n timestamp: timestamp_1.Timestamp.fromPartial({}),\n validatorAddress: new Uint8Array(),\n validatorIndex: 0,\n signature: new Uint8Array(),\n };\n}\nexports.Vote = {\n typeUrl: \"/tendermint.types.Vote\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.type !== 0) {\n writer.uint32(8).int32(message.type);\n }\n if (message.height !== BigInt(0)) {\n writer.uint32(16).int64(message.height);\n }\n if (message.round !== 0) {\n writer.uint32(24).int32(message.round);\n }\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(34).fork()).ldelim();\n }\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(message.timestamp, writer.uint32(42).fork()).ldelim();\n }\n if (message.validatorAddress.length !== 0) {\n writer.uint32(50).bytes(message.validatorAddress);\n }\n if (message.validatorIndex !== 0) {\n writer.uint32(56).int32(message.validatorIndex);\n }\n if (message.signature.length !== 0) {\n writer.uint32(66).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVote();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.int32();\n break;\n case 2:\n message.height = reader.int64();\n break;\n case 3:\n message.round = reader.int32();\n break;\n case 4:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 5:\n message.timestamp = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 6:\n message.validatorAddress = reader.bytes();\n break;\n case 7:\n message.validatorIndex = reader.int32();\n break;\n case 8:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseVote();\n if ((0, helpers_1.isSet)(object.type))\n obj.type = signedMsgTypeFromJSON(object.type);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.round))\n obj.round = Number(object.round);\n if ((0, helpers_1.isSet)(object.blockId))\n obj.blockId = exports.BlockID.fromJSON(object.blockId);\n if ((0, helpers_1.isSet)(object.timestamp))\n obj.timestamp = (0, helpers_1.fromJsonTimestamp)(object.timestamp);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = (0, helpers_1.bytesFromBase64)(object.validatorAddress);\n if ((0, helpers_1.isSet)(object.validatorIndex))\n obj.validatorIndex = Number(object.validatorIndex);\n if ((0, helpers_1.isSet)(object.signature))\n obj.signature = (0, helpers_1.bytesFromBase64)(object.signature);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = signedMsgTypeToJSON(message.type));\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.round !== undefined && (obj.round = Math.round(message.round));\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n message.timestamp !== undefined && (obj.timestamp = (0, helpers_1.fromTimestamp)(message.timestamp).toISOString());\n message.validatorAddress !== undefined &&\n (obj.validatorAddress = (0, helpers_1.base64FromBytes)(message.validatorAddress !== undefined ? message.validatorAddress : new Uint8Array()));\n message.validatorIndex !== undefined && (obj.validatorIndex = Math.round(message.validatorIndex));\n message.signature !== undefined &&\n (obj.signature = (0, helpers_1.base64FromBytes)(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseVote();\n message.type = object.type ?? 0;\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n message.round = object.round ?? 0;\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromPartial(object.blockId);\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = timestamp_1.Timestamp.fromPartial(object.timestamp);\n }\n message.validatorAddress = object.validatorAddress ?? new Uint8Array();\n message.validatorIndex = object.validatorIndex ?? 0;\n message.signature = object.signature ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseCommit() {\n return {\n height: BigInt(0),\n round: 0,\n blockId: exports.BlockID.fromPartial({}),\n signatures: [],\n };\n}\nexports.Commit = {\n typeUrl: \"/tendermint.types.Commit\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.height !== BigInt(0)) {\n writer.uint32(8).int64(message.height);\n }\n if (message.round !== 0) {\n writer.uint32(16).int32(message.round);\n }\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.signatures) {\n exports.CommitSig.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCommit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n case 2:\n message.round = reader.int32();\n break;\n case 3:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 4:\n message.signatures.push(exports.CommitSig.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCommit();\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.round))\n obj.round = Number(object.round);\n if ((0, helpers_1.isSet)(object.blockId))\n obj.blockId = exports.BlockID.fromJSON(object.blockId);\n if (Array.isArray(object?.signatures))\n obj.signatures = object.signatures.map((e) => exports.CommitSig.fromJSON(e));\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.round !== undefined && (obj.round = Math.round(message.round));\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (e ? exports.CommitSig.toJSON(e) : undefined));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCommit();\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n message.round = object.round ?? 0;\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromPartial(object.blockId);\n }\n message.signatures = object.signatures?.map((e) => exports.CommitSig.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseCommitSig() {\n return {\n blockIdFlag: 0,\n validatorAddress: new Uint8Array(),\n timestamp: timestamp_1.Timestamp.fromPartial({}),\n signature: new Uint8Array(),\n };\n}\nexports.CommitSig = {\n typeUrl: \"/tendermint.types.CommitSig\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.blockIdFlag !== 0) {\n writer.uint32(8).int32(message.blockIdFlag);\n }\n if (message.validatorAddress.length !== 0) {\n writer.uint32(18).bytes(message.validatorAddress);\n }\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(message.timestamp, writer.uint32(26).fork()).ldelim();\n }\n if (message.signature.length !== 0) {\n writer.uint32(34).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCommitSig();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.blockIdFlag = reader.int32();\n break;\n case 2:\n message.validatorAddress = reader.bytes();\n break;\n case 3:\n message.timestamp = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 4:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseCommitSig();\n if ((0, helpers_1.isSet)(object.blockIdFlag))\n obj.blockIdFlag = blockIDFlagFromJSON(object.blockIdFlag);\n if ((0, helpers_1.isSet)(object.validatorAddress))\n obj.validatorAddress = (0, helpers_1.bytesFromBase64)(object.validatorAddress);\n if ((0, helpers_1.isSet)(object.timestamp))\n obj.timestamp = (0, helpers_1.fromJsonTimestamp)(object.timestamp);\n if ((0, helpers_1.isSet)(object.signature))\n obj.signature = (0, helpers_1.bytesFromBase64)(object.signature);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.blockIdFlag !== undefined && (obj.blockIdFlag = blockIDFlagToJSON(message.blockIdFlag));\n message.validatorAddress !== undefined &&\n (obj.validatorAddress = (0, helpers_1.base64FromBytes)(message.validatorAddress !== undefined ? message.validatorAddress : new Uint8Array()));\n message.timestamp !== undefined && (obj.timestamp = (0, helpers_1.fromTimestamp)(message.timestamp).toISOString());\n message.signature !== undefined &&\n (obj.signature = (0, helpers_1.base64FromBytes)(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseCommitSig();\n message.blockIdFlag = object.blockIdFlag ?? 0;\n message.validatorAddress = object.validatorAddress ?? new Uint8Array();\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = timestamp_1.Timestamp.fromPartial(object.timestamp);\n }\n message.signature = object.signature ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseProposal() {\n return {\n type: 0,\n height: BigInt(0),\n round: 0,\n polRound: 0,\n blockId: exports.BlockID.fromPartial({}),\n timestamp: timestamp_1.Timestamp.fromPartial({}),\n signature: new Uint8Array(),\n };\n}\nexports.Proposal = {\n typeUrl: \"/tendermint.types.Proposal\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.type !== 0) {\n writer.uint32(8).int32(message.type);\n }\n if (message.height !== BigInt(0)) {\n writer.uint32(16).int64(message.height);\n }\n if (message.round !== 0) {\n writer.uint32(24).int32(message.round);\n }\n if (message.polRound !== 0) {\n writer.uint32(32).int32(message.polRound);\n }\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(42).fork()).ldelim();\n }\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(message.timestamp, writer.uint32(50).fork()).ldelim();\n }\n if (message.signature.length !== 0) {\n writer.uint32(58).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.int32();\n break;\n case 2:\n message.height = reader.int64();\n break;\n case 3:\n message.round = reader.int32();\n break;\n case 4:\n message.polRound = reader.int32();\n break;\n case 5:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 6:\n message.timestamp = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 7:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseProposal();\n if ((0, helpers_1.isSet)(object.type))\n obj.type = signedMsgTypeFromJSON(object.type);\n if ((0, helpers_1.isSet)(object.height))\n obj.height = BigInt(object.height.toString());\n if ((0, helpers_1.isSet)(object.round))\n obj.round = Number(object.round);\n if ((0, helpers_1.isSet)(object.polRound))\n obj.polRound = Number(object.polRound);\n if ((0, helpers_1.isSet)(object.blockId))\n obj.blockId = exports.BlockID.fromJSON(object.blockId);\n if ((0, helpers_1.isSet)(object.timestamp))\n obj.timestamp = (0, helpers_1.fromJsonTimestamp)(object.timestamp);\n if ((0, helpers_1.isSet)(object.signature))\n obj.signature = (0, helpers_1.bytesFromBase64)(object.signature);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = signedMsgTypeToJSON(message.type));\n message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString());\n message.round !== undefined && (obj.round = Math.round(message.round));\n message.polRound !== undefined && (obj.polRound = Math.round(message.polRound));\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n message.timestamp !== undefined && (obj.timestamp = (0, helpers_1.fromTimestamp)(message.timestamp).toISOString());\n message.signature !== undefined &&\n (obj.signature = (0, helpers_1.base64FromBytes)(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = createBaseProposal();\n message.type = object.type ?? 0;\n if (object.height !== undefined && object.height !== null) {\n message.height = BigInt(object.height.toString());\n }\n message.round = object.round ?? 0;\n message.polRound = object.polRound ?? 0;\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromPartial(object.blockId);\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = timestamp_1.Timestamp.fromPartial(object.timestamp);\n }\n message.signature = object.signature ?? new Uint8Array();\n return message;\n },\n};\nfunction createBaseSignedHeader() {\n return {\n header: undefined,\n commit: undefined,\n };\n}\nexports.SignedHeader = {\n typeUrl: \"/tendermint.types.SignedHeader\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.header !== undefined) {\n exports.Header.encode(message.header, writer.uint32(10).fork()).ldelim();\n }\n if (message.commit !== undefined) {\n exports.Commit.encode(message.commit, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignedHeader();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.header = exports.Header.decode(reader, reader.uint32());\n break;\n case 2:\n message.commit = exports.Commit.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSignedHeader();\n if ((0, helpers_1.isSet)(object.header))\n obj.header = exports.Header.fromJSON(object.header);\n if ((0, helpers_1.isSet)(object.commit))\n obj.commit = exports.Commit.fromJSON(object.commit);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.header !== undefined && (obj.header = message.header ? exports.Header.toJSON(message.header) : undefined);\n message.commit !== undefined && (obj.commit = message.commit ? exports.Commit.toJSON(message.commit) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSignedHeader();\n if (object.header !== undefined && object.header !== null) {\n message.header = exports.Header.fromPartial(object.header);\n }\n if (object.commit !== undefined && object.commit !== null) {\n message.commit = exports.Commit.fromPartial(object.commit);\n }\n return message;\n },\n};\nfunction createBaseLightBlock() {\n return {\n signedHeader: undefined,\n validatorSet: undefined,\n };\n}\nexports.LightBlock = {\n typeUrl: \"/tendermint.types.LightBlock\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.signedHeader !== undefined) {\n exports.SignedHeader.encode(message.signedHeader, writer.uint32(10).fork()).ldelim();\n }\n if (message.validatorSet !== undefined) {\n validator_1.ValidatorSet.encode(message.validatorSet, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseLightBlock();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signedHeader = exports.SignedHeader.decode(reader, reader.uint32());\n break;\n case 2:\n message.validatorSet = validator_1.ValidatorSet.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseLightBlock();\n if ((0, helpers_1.isSet)(object.signedHeader))\n obj.signedHeader = exports.SignedHeader.fromJSON(object.signedHeader);\n if ((0, helpers_1.isSet)(object.validatorSet))\n obj.validatorSet = validator_1.ValidatorSet.fromJSON(object.validatorSet);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.signedHeader !== undefined &&\n (obj.signedHeader = message.signedHeader ? exports.SignedHeader.toJSON(message.signedHeader) : undefined);\n message.validatorSet !== undefined &&\n (obj.validatorSet = message.validatorSet ? validator_1.ValidatorSet.toJSON(message.validatorSet) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseLightBlock();\n if (object.signedHeader !== undefined && object.signedHeader !== null) {\n message.signedHeader = exports.SignedHeader.fromPartial(object.signedHeader);\n }\n if (object.validatorSet !== undefined && object.validatorSet !== null) {\n message.validatorSet = validator_1.ValidatorSet.fromPartial(object.validatorSet);\n }\n return message;\n },\n};\nfunction createBaseBlockMeta() {\n return {\n blockId: exports.BlockID.fromPartial({}),\n blockSize: BigInt(0),\n header: exports.Header.fromPartial({}),\n numTxs: BigInt(0),\n };\n}\nexports.BlockMeta = {\n typeUrl: \"/tendermint.types.BlockMeta\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(10).fork()).ldelim();\n }\n if (message.blockSize !== BigInt(0)) {\n writer.uint32(16).int64(message.blockSize);\n }\n if (message.header !== undefined) {\n exports.Header.encode(message.header, writer.uint32(26).fork()).ldelim();\n }\n if (message.numTxs !== BigInt(0)) {\n writer.uint32(32).int64(message.numTxs);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBlockMeta();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 2:\n message.blockSize = reader.int64();\n break;\n case 3:\n message.header = exports.Header.decode(reader, reader.uint32());\n break;\n case 4:\n message.numTxs = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseBlockMeta();\n if ((0, helpers_1.isSet)(object.blockId))\n obj.blockId = exports.BlockID.fromJSON(object.blockId);\n if ((0, helpers_1.isSet)(object.blockSize))\n obj.blockSize = BigInt(object.blockSize.toString());\n if ((0, helpers_1.isSet)(object.header))\n obj.header = exports.Header.fromJSON(object.header);\n if ((0, helpers_1.isSet)(object.numTxs))\n obj.numTxs = BigInt(object.numTxs.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n message.blockSize !== undefined && (obj.blockSize = (message.blockSize || BigInt(0)).toString());\n message.header !== undefined && (obj.header = message.header ? exports.Header.toJSON(message.header) : undefined);\n message.numTxs !== undefined && (obj.numTxs = (message.numTxs || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseBlockMeta();\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromPartial(object.blockId);\n }\n if (object.blockSize !== undefined && object.blockSize !== null) {\n message.blockSize = BigInt(object.blockSize.toString());\n }\n if (object.header !== undefined && object.header !== null) {\n message.header = exports.Header.fromPartial(object.header);\n }\n if (object.numTxs !== undefined && object.numTxs !== null) {\n message.numTxs = BigInt(object.numTxs.toString());\n }\n return message;\n },\n};\nfunction createBaseTxProof() {\n return {\n rootHash: new Uint8Array(),\n data: new Uint8Array(),\n proof: undefined,\n };\n}\nexports.TxProof = {\n typeUrl: \"/tendermint.types.TxProof\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.rootHash.length !== 0) {\n writer.uint32(10).bytes(message.rootHash);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.proof !== undefined) {\n proof_1.Proof.encode(message.proof, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rootHash = reader.bytes();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.proof = proof_1.Proof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseTxProof();\n if ((0, helpers_1.isSet)(object.rootHash))\n obj.rootHash = (0, helpers_1.bytesFromBase64)(object.rootHash);\n if ((0, helpers_1.isSet)(object.data))\n obj.data = (0, helpers_1.bytesFromBase64)(object.data);\n if ((0, helpers_1.isSet)(object.proof))\n obj.proof = proof_1.Proof.fromJSON(object.proof);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.rootHash !== undefined &&\n (obj.rootHash = (0, helpers_1.base64FromBytes)(message.rootHash !== undefined ? message.rootHash : new Uint8Array()));\n message.data !== undefined &&\n (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array()));\n message.proof !== undefined && (obj.proof = message.proof ? proof_1.Proof.toJSON(message.proof) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseTxProof();\n message.rootHash = object.rootHash ?? new Uint8Array();\n message.data = object.data ?? new Uint8Array();\n if (object.proof !== undefined && object.proof !== null) {\n message.proof = proof_1.Proof.fromPartial(object.proof);\n }\n return message;\n },\n};\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SimpleValidator = exports.Validator = exports.ValidatorSet = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst keys_1 = require(\"../crypto/keys\");\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"tendermint.types\";\nfunction createBaseValidatorSet() {\n return {\n validators: [],\n proposer: undefined,\n totalVotingPower: BigInt(0),\n };\n}\nexports.ValidatorSet = {\n typeUrl: \"/tendermint.types.ValidatorSet\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n for (const v of message.validators) {\n exports.Validator.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.proposer !== undefined) {\n exports.Validator.encode(message.proposer, writer.uint32(18).fork()).ldelim();\n }\n if (message.totalVotingPower !== BigInt(0)) {\n writer.uint32(24).int64(message.totalVotingPower);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorSet();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validators.push(exports.Validator.decode(reader, reader.uint32()));\n break;\n case 2:\n message.proposer = exports.Validator.decode(reader, reader.uint32());\n break;\n case 3:\n message.totalVotingPower = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidatorSet();\n if (Array.isArray(object?.validators))\n obj.validators = object.validators.map((e) => exports.Validator.fromJSON(e));\n if ((0, helpers_1.isSet)(object.proposer))\n obj.proposer = exports.Validator.fromJSON(object.proposer);\n if ((0, helpers_1.isSet)(object.totalVotingPower))\n obj.totalVotingPower = BigInt(object.totalVotingPower.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? exports.Validator.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.proposer !== undefined &&\n (obj.proposer = message.proposer ? exports.Validator.toJSON(message.proposer) : undefined);\n message.totalVotingPower !== undefined &&\n (obj.totalVotingPower = (message.totalVotingPower || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidatorSet();\n message.validators = object.validators?.map((e) => exports.Validator.fromPartial(e)) || [];\n if (object.proposer !== undefined && object.proposer !== null) {\n message.proposer = exports.Validator.fromPartial(object.proposer);\n }\n if (object.totalVotingPower !== undefined && object.totalVotingPower !== null) {\n message.totalVotingPower = BigInt(object.totalVotingPower.toString());\n }\n return message;\n },\n};\nfunction createBaseValidator() {\n return {\n address: new Uint8Array(),\n pubKey: keys_1.PublicKey.fromPartial({}),\n votingPower: BigInt(0),\n proposerPriority: BigInt(0),\n };\n}\nexports.Validator = {\n typeUrl: \"/tendermint.types.Validator\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.address.length !== 0) {\n writer.uint32(10).bytes(message.address);\n }\n if (message.pubKey !== undefined) {\n keys_1.PublicKey.encode(message.pubKey, writer.uint32(18).fork()).ldelim();\n }\n if (message.votingPower !== BigInt(0)) {\n writer.uint32(24).int64(message.votingPower);\n }\n if (message.proposerPriority !== BigInt(0)) {\n writer.uint32(32).int64(message.proposerPriority);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidator();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.bytes();\n break;\n case 2:\n message.pubKey = keys_1.PublicKey.decode(reader, reader.uint32());\n break;\n case 3:\n message.votingPower = reader.int64();\n break;\n case 4:\n message.proposerPriority = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseValidator();\n if ((0, helpers_1.isSet)(object.address))\n obj.address = (0, helpers_1.bytesFromBase64)(object.address);\n if ((0, helpers_1.isSet)(object.pubKey))\n obj.pubKey = keys_1.PublicKey.fromJSON(object.pubKey);\n if ((0, helpers_1.isSet)(object.votingPower))\n obj.votingPower = BigInt(object.votingPower.toString());\n if ((0, helpers_1.isSet)(object.proposerPriority))\n obj.proposerPriority = BigInt(object.proposerPriority.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined &&\n (obj.address = (0, helpers_1.base64FromBytes)(message.address !== undefined ? message.address : new Uint8Array()));\n message.pubKey !== undefined &&\n (obj.pubKey = message.pubKey ? keys_1.PublicKey.toJSON(message.pubKey) : undefined);\n message.votingPower !== undefined && (obj.votingPower = (message.votingPower || BigInt(0)).toString());\n message.proposerPriority !== undefined &&\n (obj.proposerPriority = (message.proposerPriority || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseValidator();\n message.address = object.address ?? new Uint8Array();\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = keys_1.PublicKey.fromPartial(object.pubKey);\n }\n if (object.votingPower !== undefined && object.votingPower !== null) {\n message.votingPower = BigInt(object.votingPower.toString());\n }\n if (object.proposerPriority !== undefined && object.proposerPriority !== null) {\n message.proposerPriority = BigInt(object.proposerPriority.toString());\n }\n return message;\n },\n};\nfunction createBaseSimpleValidator() {\n return {\n pubKey: undefined,\n votingPower: BigInt(0),\n };\n}\nexports.SimpleValidator = {\n typeUrl: \"/tendermint.types.SimpleValidator\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.pubKey !== undefined) {\n keys_1.PublicKey.encode(message.pubKey, writer.uint32(10).fork()).ldelim();\n }\n if (message.votingPower !== BigInt(0)) {\n writer.uint32(16).int64(message.votingPower);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSimpleValidator();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pubKey = keys_1.PublicKey.decode(reader, reader.uint32());\n break;\n case 2:\n message.votingPower = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseSimpleValidator();\n if ((0, helpers_1.isSet)(object.pubKey))\n obj.pubKey = keys_1.PublicKey.fromJSON(object.pubKey);\n if ((0, helpers_1.isSet)(object.votingPower))\n obj.votingPower = BigInt(object.votingPower.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.pubKey !== undefined &&\n (obj.pubKey = message.pubKey ? keys_1.PublicKey.toJSON(message.pubKey) : undefined);\n message.votingPower !== undefined && (obj.votingPower = (message.votingPower || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseSimpleValidator();\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = keys_1.PublicKey.fromPartial(object.pubKey);\n }\n if (object.votingPower !== undefined && object.votingPower !== null) {\n message.votingPower = BigInt(object.votingPower.toString());\n }\n return message;\n },\n};\n//# sourceMappingURL=validator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Consensus = exports.App = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst binary_1 = require(\"../../binary\");\nconst helpers_1 = require(\"../../helpers\");\nexports.protobufPackage = \"tendermint.version\";\nfunction createBaseApp() {\n return {\n protocol: BigInt(0),\n software: \"\",\n };\n}\nexports.App = {\n typeUrl: \"/tendermint.version.App\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.protocol !== BigInt(0)) {\n writer.uint32(8).uint64(message.protocol);\n }\n if (message.software !== \"\") {\n writer.uint32(18).string(message.software);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseApp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.protocol = reader.uint64();\n break;\n case 2:\n message.software = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseApp();\n if ((0, helpers_1.isSet)(object.protocol))\n obj.protocol = BigInt(object.protocol.toString());\n if ((0, helpers_1.isSet)(object.software))\n obj.software = String(object.software);\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.protocol !== undefined && (obj.protocol = (message.protocol || BigInt(0)).toString());\n message.software !== undefined && (obj.software = message.software);\n return obj;\n },\n fromPartial(object) {\n const message = createBaseApp();\n if (object.protocol !== undefined && object.protocol !== null) {\n message.protocol = BigInt(object.protocol.toString());\n }\n message.software = object.software ?? \"\";\n return message;\n },\n};\nfunction createBaseConsensus() {\n return {\n block: BigInt(0),\n app: BigInt(0),\n };\n}\nexports.Consensus = {\n typeUrl: \"/tendermint.version.Consensus\",\n encode(message, writer = binary_1.BinaryWriter.create()) {\n if (message.block !== BigInt(0)) {\n writer.uint32(8).uint64(message.block);\n }\n if (message.app !== BigInt(0)) {\n writer.uint32(16).uint64(message.app);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseConsensus();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.block = reader.uint64();\n break;\n case 2:\n message.app = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const obj = createBaseConsensus();\n if ((0, helpers_1.isSet)(object.block))\n obj.block = BigInt(object.block.toString());\n if ((0, helpers_1.isSet)(object.app))\n obj.app = BigInt(object.app.toString());\n return obj;\n },\n toJSON(message) {\n const obj = {};\n message.block !== undefined && (obj.block = (message.block || BigInt(0)).toString());\n message.app !== undefined && (obj.app = (message.app || BigInt(0)).toString());\n return obj;\n },\n fromPartial(object) {\n const message = createBaseConsensus();\n if (object.block !== undefined && object.block !== null) {\n message.block = BigInt(object.block.toString());\n }\n if (object.app !== undefined && object.app !== null) {\n message.app = BigInt(object.app.toString());\n }\n return message;\n },\n};\n//# sourceMappingURL=types.js.map","/* eslint-disable */\n/**\n * This file and any referenced files were automatically generated by @cosmology/telescope@1.0.7\n * DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain\n * and run the transpile command or yarn proto command to regenerate this bundle.\n */\n// Copyright (c) 2016, Daniel Wirtz All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// * Neither the name of its author, nor the names of its contributors\n// may be used to endorse or promote products derived from this software\n// without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.utf8Write = exports.utf8Read = exports.utf8Length = void 0;\n/**\n * Calculates the UTF8 byte length of a string.\n * @param {string} string String\n * @returns {number} Byte length\n */\nfunction utf8Length(str) {\n let len = 0, c = 0;\n for (let i = 0; i < str.length; ++i) {\n c = str.charCodeAt(i);\n if (c < 128)\n len += 1;\n else if (c < 2048)\n len += 2;\n else if ((c & 0xfc00) === 0xd800 && (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n ++i;\n len += 4;\n }\n else\n len += 3;\n }\n return len;\n}\nexports.utf8Length = utf8Length;\n/**\n * Reads UTF8 bytes as a string.\n * @param {Uint8Array} buffer Source buffer\n * @param {number} start Source start\n * @param {number} end Source end\n * @returns {string} String read\n */\nfunction utf8Read(buffer, start, end) {\n const len = end - start;\n if (len < 1)\n return \"\";\n const chunk = [];\n let parts = [], i = 0, // char offset\n t; // temporary\n while (start < end) {\n t = buffer[start++];\n if (t < 128)\n chunk[i++] = t;\n else if (t > 191 && t < 224)\n chunk[i++] = ((t & 31) << 6) | (buffer[start++] & 63);\n else if (t > 239 && t < 365) {\n t =\n (((t & 7) << 18) |\n ((buffer[start++] & 63) << 12) |\n ((buffer[start++] & 63) << 6) |\n (buffer[start++] & 63)) -\n 0x10000;\n chunk[i++] = 0xd800 + (t >> 10);\n chunk[i++] = 0xdc00 + (t & 1023);\n }\n else\n chunk[i++] = ((t & 15) << 12) | ((buffer[start++] & 63) << 6) | (buffer[start++] & 63);\n if (i > 8191) {\n (parts || (parts = [])).push(String.fromCharCode(...chunk));\n i = 0;\n }\n }\n if (parts) {\n if (i)\n parts.push(String.fromCharCode(...chunk.slice(0, i)));\n return parts.join(\"\");\n }\n return String.fromCharCode(...chunk.slice(0, i));\n}\nexports.utf8Read = utf8Read;\n/**\n * Writes a string as UTF8 bytes.\n * @param {string} string Source string\n * @param {Uint8Array} buffer Destination buffer\n * @param {number} offset Destination offset\n * @returns {number} Bytes written\n */\nfunction utf8Write(str, buffer, offset) {\n const start = offset;\n let c1, // character 1\n c2; // character 2\n for (let i = 0; i < str.length; ++i) {\n c1 = str.charCodeAt(i);\n if (c1 < 128) {\n buffer[offset++] = c1;\n }\n else if (c1 < 2048) {\n buffer[offset++] = (c1 >> 6) | 192;\n buffer[offset++] = (c1 & 63) | 128;\n }\n else if ((c1 & 0xfc00) === 0xd800 && ((c2 = str.charCodeAt(i + 1)) & 0xfc00) === 0xdc00) {\n c1 = 0x10000 + ((c1 & 0x03ff) << 10) + (c2 & 0x03ff);\n ++i;\n buffer[offset++] = (c1 >> 18) | 240;\n buffer[offset++] = ((c1 >> 12) & 63) | 128;\n buffer[offset++] = ((c1 >> 6) & 63) | 128;\n buffer[offset++] = (c1 & 63) | 128;\n }\n else {\n buffer[offset++] = (c1 >> 12) | 224;\n buffer[offset++] = ((c1 >> 6) & 63) | 128;\n buffer[offset++] = (c1 & 63) | 128;\n }\n }\n return offset - start;\n}\nexports.utf8Write = utf8Write;\n//# sourceMappingURL=utf8.js.map","\"use strict\";\n/* eslint-disable */\n/**\n * This file and any referenced files were automatically generated by @cosmology/telescope@1.0.7\n * DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain\n * and run the transpile command or yarn proto command to regenerate this bundle.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.writeByte = exports.writeFixed32 = exports.int64Length = exports.writeVarint64 = exports.writeVarint32 = exports.readInt32 = exports.readUInt32 = exports.zzDecode = exports.zzEncode = exports.varint32read = exports.varint32write = exports.uInt64ToString = exports.int64ToString = exports.int64FromString = exports.varint64write = exports.varint64read = void 0;\n// Copyright 2008 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n// Code generated by the Protocol Buffer compiler is owned by the owner\n// of the input file used when generating it. This code is not\n// standalone and requires a support library to be linked with it. This\n// support library is itself covered by the above license.\n/* eslint-disable prefer-const,@typescript-eslint/restrict-plus-operands */\n/**\n * Read a 64 bit varint as two JS numbers.\n *\n * Returns tuple:\n * [0]: low bits\n * [1]: high bits\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L175\n */\nfunction varint64read() {\n let lowBits = 0;\n let highBits = 0;\n for (let shift = 0; shift < 28; shift += 7) {\n let b = this.buf[this.pos++];\n lowBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n let middleByte = this.buf[this.pos++];\n // last four bits of the first 32 bit number\n lowBits |= (middleByte & 0x0f) << 28;\n // 3 upper bits are part of the next 32 bit number\n highBits = (middleByte & 0x70) >> 4;\n if ((middleByte & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n for (let shift = 3; shift <= 31; shift += 7) {\n let b = this.buf[this.pos++];\n highBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n throw new Error(\"invalid varint\");\n}\nexports.varint64read = varint64read;\n/**\n * Write a 64 bit varint, given as two JS numbers, to the given bytes array.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/writer.js#L344\n */\nfunction varint64write(lo, hi, bytes) {\n for (let i = 0; i < 28; i = i + 7) {\n const shift = lo >>> i;\n const hasNext = !(shift >>> 7 == 0 && hi == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n const splitBits = ((lo >>> 28) & 0x0f) | ((hi & 0x07) << 4);\n const hasMoreBits = !(hi >> 3 == 0);\n bytes.push((hasMoreBits ? splitBits | 0x80 : splitBits) & 0xff);\n if (!hasMoreBits) {\n return;\n }\n for (let i = 3; i < 31; i = i + 7) {\n const shift = hi >>> i;\n const hasNext = !(shift >>> 7 == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n bytes.push((hi >>> 31) & 0x01);\n}\nexports.varint64write = varint64write;\n// constants for binary math\nconst TWO_PWR_32_DBL = 0x100000000;\n/**\n * Parse decimal string of 64 bit integer value as two JS numbers.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nfunction int64FromString(dec) {\n // Check for minus sign.\n const minus = dec[0] === \"-\";\n if (minus) {\n dec = dec.slice(1);\n }\n // Work 6 decimal digits at a time, acting like we're converting base 1e6\n // digits to binary. This is safe to do with floating point math because\n // Number.isSafeInteger(ALL_32_BITS * 1e6) == true.\n const base = 1e6;\n let lowBits = 0;\n let highBits = 0;\n function add1e6digit(begin, end) {\n // Note: Number('') is 0.\n const digit1e6 = Number(dec.slice(begin, end));\n highBits *= base;\n lowBits = lowBits * base + digit1e6;\n // Carry bits from lowBits to\n if (lowBits >= TWO_PWR_32_DBL) {\n highBits = highBits + ((lowBits / TWO_PWR_32_DBL) | 0);\n lowBits = lowBits % TWO_PWR_32_DBL;\n }\n }\n add1e6digit(-24, -18);\n add1e6digit(-18, -12);\n add1e6digit(-12, -6);\n add1e6digit(-6);\n return minus ? negate(lowBits, highBits) : newBits(lowBits, highBits);\n}\nexports.int64FromString = int64FromString;\n/**\n * Losslessly converts a 64-bit signed integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nfunction int64ToString(lo, hi) {\n let bits = newBits(lo, hi);\n // If we're treating the input as a signed value and the high bit is set, do\n // a manual two's complement conversion before the decimal conversion.\n const negative = bits.hi & 0x80000000;\n if (negative) {\n bits = negate(bits.lo, bits.hi);\n }\n const result = uInt64ToString(bits.lo, bits.hi);\n return negative ? \"-\" + result : result;\n}\nexports.int64ToString = int64ToString;\n/**\n * Losslessly converts a 64-bit unsigned integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nfunction uInt64ToString(lo, hi) {\n ({ lo, hi } = toUnsigned(lo, hi));\n // Skip the expensive conversion if the number is small enough to use the\n // built-in conversions.\n // Number.MAX_SAFE_INTEGER = 0x001FFFFF FFFFFFFF, thus any number with\n // highBits <= 0x1FFFFF can be safely expressed with a double and retain\n // integer precision.\n // Proven by: Number.isSafeInteger(0x1FFFFF * 2**32 + 0xFFFFFFFF) == true.\n if (hi <= 0x1fffff) {\n return String(TWO_PWR_32_DBL * hi + lo);\n }\n // What this code is doing is essentially converting the input number from\n // base-2 to base-1e7, which allows us to represent the 64-bit range with\n // only 3 (very large) digits. Those digits are then trivial to convert to\n // a base-10 string.\n // The magic numbers used here are -\n // 2^24 = 16777216 = (1,6777216) in base-1e7.\n // 2^48 = 281474976710656 = (2,8147497,6710656) in base-1e7.\n // Split 32:32 representation into 16:24:24 representation so our\n // intermediate digits don't overflow.\n const low = lo & 0xffffff;\n const mid = ((lo >>> 24) | (hi << 8)) & 0xffffff;\n const high = (hi >> 16) & 0xffff;\n // Assemble our three base-1e7 digits, ignoring carries. The maximum\n // value in a digit at this step is representable as a 48-bit integer, which\n // can be stored in a 64-bit floating point number.\n let digitA = low + mid * 6777216 + high * 6710656;\n let digitB = mid + high * 8147497;\n let digitC = high * 2;\n // Apply carries from A to B and from B to C.\n const base = 10000000;\n if (digitA >= base) {\n digitB += Math.floor(digitA / base);\n digitA %= base;\n }\n if (digitB >= base) {\n digitC += Math.floor(digitB / base);\n digitB %= base;\n }\n // If digitC is 0, then we should have returned in the trivial code path\n // at the top for non-safe integers. Given this, we can assume both digitB\n // and digitA need leading zeros.\n return digitC.toString() + decimalFrom1e7WithLeadingZeros(digitB) + decimalFrom1e7WithLeadingZeros(digitA);\n}\nexports.uInt64ToString = uInt64ToString;\nfunction toUnsigned(lo, hi) {\n return { lo: lo >>> 0, hi: hi >>> 0 };\n}\nfunction newBits(lo, hi) {\n return { lo: lo | 0, hi: hi | 0 };\n}\n/**\n * Returns two's compliment negation of input.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Signed_32-bit_integers\n */\nfunction negate(lowBits, highBits) {\n highBits = ~highBits;\n if (lowBits) {\n lowBits = ~lowBits + 1;\n }\n else {\n // If lowBits is 0, then bitwise-not is 0xFFFFFFFF,\n // adding 1 to that, results in 0x100000000, which leaves\n // the low bits 0x0 and simply adds one to the high bits.\n highBits += 1;\n }\n return newBits(lowBits, highBits);\n}\n/**\n * Returns decimal representation of digit1e7 with leading zeros.\n */\nconst decimalFrom1e7WithLeadingZeros = (digit1e7) => {\n const partial = String(digit1e7);\n return \"0000000\".slice(partial.length) + partial;\n};\n/**\n * Write a 32 bit varint, signed or unsigned. Same as `varint64write(0, value, bytes)`\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/1b18833f4f2a2f681f4e4a25cdf3b0a43115ec26/js/binary/encoder.js#L144\n */\nfunction varint32write(value, bytes) {\n if (value >= 0) {\n // write value as varint 32\n while (value > 0x7f) {\n bytes.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n bytes.push(value);\n }\n else {\n for (let i = 0; i < 9; i++) {\n bytes.push((value & 127) | 128);\n value = value >> 7;\n }\n bytes.push(1);\n }\n}\nexports.varint32write = varint32write;\n/**\n * Read an unsigned 32 bit varint.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L220\n */\nfunction varint32read() {\n let b = this.buf[this.pos++];\n let result = b & 0x7f;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 7;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 14;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 21;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n // Extract only last 4 bits\n b = this.buf[this.pos++];\n result |= (b & 0x0f) << 28;\n for (let readBytes = 5; (b & 0x80) !== 0 && readBytes < 10; readBytes++)\n b = this.buf[this.pos++];\n if ((b & 0x80) != 0)\n throw new Error(\"invalid varint\");\n this.assertBounds();\n // Result can have 32 bits, convert it to unsigned\n return result >>> 0;\n}\nexports.varint32read = varint32read;\n/**\n * encode zig zag\n */\nfunction zzEncode(lo, hi) {\n let mask = hi >> 31;\n hi = (((hi << 1) | (lo >>> 31)) ^ mask) >>> 0;\n lo = ((lo << 1) ^ mask) >>> 0;\n return [lo, hi];\n}\nexports.zzEncode = zzEncode;\n/**\n * decode zig zag\n */\nfunction zzDecode(lo, hi) {\n let mask = -(lo & 1);\n lo = (((lo >>> 1) | (hi << 31)) ^ mask) >>> 0;\n hi = ((hi >>> 1) ^ mask) >>> 0;\n return [lo, hi];\n}\nexports.zzDecode = zzDecode;\n/**\n * unsigned int32 without moving pos.\n */\nfunction readUInt32(buf, pos) {\n return (buf[pos] | (buf[pos + 1] << 8) | (buf[pos + 2] << 16)) + buf[pos + 3] * 0x1000000;\n}\nexports.readUInt32 = readUInt32;\n/**\n * signed int32 without moving pos.\n */\nfunction readInt32(buf, pos) {\n return (buf[pos] | (buf[pos + 1] << 8) | (buf[pos + 2] << 16)) + (buf[pos + 3] << 24);\n}\nexports.readInt32 = readInt32;\n/**\n * writing varint32 to pos\n */\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = (val & 127) | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\nexports.writeVarint32 = writeVarint32;\n/**\n * writing varint64 to pos\n */\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = (val.lo & 127) | 128;\n val.lo = ((val.lo >>> 7) | (val.hi << 25)) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = (val.lo & 127) | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\nexports.writeVarint64 = writeVarint64;\nfunction int64Length(lo, hi) {\n let part0 = lo, part1 = ((lo >>> 28) | (hi << 4)) >>> 0, part2 = hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128\n ? 1\n : 2\n : part0 < 2097152\n ? 3\n : 4\n : part1 < 16384\n ? part1 < 128\n ? 5\n : 6\n : part1 < 2097152\n ? 7\n : 8\n : part2 < 128\n ? 9\n : 10;\n}\nexports.int64Length = int64Length;\nfunction writeFixed32(val, buf, pos) {\n buf[pos] = val & 255;\n buf[pos + 1] = (val >>> 8) & 255;\n buf[pos + 2] = (val >>> 16) & 255;\n buf[pos + 3] = val >>> 24;\n}\nexports.writeFixed32 = writeFixed32;\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\nexports.writeByte = writeByte;\n//# sourceMappingURL=varint.js.map","var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","// Save global object in a variable\nvar __global__ =\n(typeof globalThis !== 'undefined' && globalThis) ||\n(typeof self !== 'undefined' && self) ||\n(typeof global !== 'undefined' && global);\n// Create an object that extends from __global__ without the fetch function\nvar __globalThis__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = __global__.DOMException\n}\nF.prototype = __global__; // Needed for feature detection on whatwg-fetch's code\nreturn new F();\n})();\n// Wraps whatwg-fetch with a function scope to hijack the global object\n// \"globalThis\" that's going to be patched\n(function(globalThis) {\n\nvar irrelevant = (function (exports) {\n\n /* eslint-disable no-prototype-builtins */\n var g =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n // eslint-disable-next-line no-undef\n (typeof global !== 'undefined' && global) ||\n {};\n\n var support = {\n searchParams: 'URLSearchParams' in g,\n iterable: 'Symbol' in g && 'iterator' in Symbol,\n blob:\n 'FileReader' in g &&\n 'Blob' in g &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in g,\n arrayBuffer: 'ArrayBuffer' in g\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n if (header.length != 2) {\n throw new TypeError('Headers constructor: expected name/value pair to be length 2, found' + header.length)\n }\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body._noBody) return\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n var match = /charset=([A-Za-z0-9_-]+)/.exec(blob.type);\n var encoding = match ? match[1] : 'utf-8';\n reader.readAsText(blob, encoding);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n // eslint-disable-next-line no-self-assign\n this.bodyUsed = this.bodyUsed;\n this._bodyInit = body;\n if (!body) {\n this._noBody = true;\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this);\n if (isConsumed) {\n return isConsumed\n } else if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else if (support.blob) {\n return this.blob().then(readBlobAsArrayBuffer)\n } else {\n throw new Error('could not read as ArrayBuffer')\n }\n };\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['CONNECT', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'TRACE'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal || (function () {\n if ('AbortController' in g) {\n var ctrl = new AbortController();\n return ctrl.signal;\n }\n }());\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/;\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime());\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/;\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime();\n }\n }\n }\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n try {\n headers.append(key, value);\n } catch (error) {\n console.warn('Response ' + error.message);\n }\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n if (this.status < 200 || this.status > 599) {\n throw new RangeError(\"Failed to construct 'Response': The status provided (0) is outside the range [200, 599].\")\n }\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText;\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 200, statusText: ''});\n response.ok = false;\n response.status = 0;\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = g.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n // This check if specifically for when a user fetches a file locally from the file system\n // Only if the status is out of a normal range\n if (request.url.indexOf('file://') === 0 && (xhr.status < 200 || xhr.status > 599)) {\n options.status = 200;\n } else {\n options.status = xhr.status;\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n setTimeout(function() {\n resolve(new Response(body, options));\n }, 0);\n };\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request timed out'));\n }, 0);\n };\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n }, 0);\n };\n\n function fixUrl(url) {\n try {\n return url === '' && g.location.href ? g.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob';\n } else if (\n support.arrayBuffer\n ) {\n xhr.responseType = 'arraybuffer';\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers || (g.Headers && init.headers instanceof g.Headers))) {\n var names = [];\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n names.push(normalizeName(name));\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]));\n });\n request.headers.forEach(function(value, name) {\n if (names.indexOf(name) === -1) {\n xhr.setRequestHeader(name, value);\n }\n });\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!g.fetch) {\n g.fetch = fetch;\n g.Headers = Headers;\n g.Request = Request;\n g.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n return exports;\n\n})({});\n})(__globalThis__);\n// This is a ponyfill, so...\n__globalThis__.fetch.ponyfill = true;\ndelete __globalThis__.fetch.polyfill;\n// Choose between native implementation (__global__) or custom implementation (__globalThis__)\nvar ctx = __global__.fetch ? __global__ : __globalThis__;\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","'use strict';\n\n// eslint-disable-next-line no-multi-assign\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes');\n\n// eslint-disable-next-line no-multi-assign\nexports.createHash = exports.Hash = require('create-hash');\n\n// eslint-disable-next-line no-multi-assign\nexports.createHmac = exports.Hmac = require('create-hmac');\n\nvar algos = require('browserify-sign/algos');\nvar algoKeys = Object.keys(algos);\nvar hashes = [\n\t'sha1',\n\t'sha224',\n\t'sha256',\n\t'sha384',\n\t'sha512',\n\t'md5',\n\t'rmd160'\n].concat(algoKeys);\n\nexports.getHashes = function () {\n\treturn hashes;\n};\n\nvar p = require('pbkdf2');\nexports.pbkdf2 = p.pbkdf2;\nexports.pbkdf2Sync = p.pbkdf2Sync;\n\nvar aes = require('browserify-cipher');\n\nexports.Cipher = aes.Cipher;\nexports.createCipher = aes.createCipher;\nexports.Cipheriv = aes.Cipheriv;\nexports.createCipheriv = aes.createCipheriv;\nexports.Decipher = aes.Decipher;\nexports.createDecipher = aes.createDecipher;\nexports.Decipheriv = aes.Decipheriv;\nexports.createDecipheriv = aes.createDecipheriv;\nexports.getCiphers = aes.getCiphers;\nexports.listCiphers = aes.listCiphers;\n\nvar dh = require('diffie-hellman');\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup;\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup;\nexports.getDiffieHellman = dh.getDiffieHellman;\nexports.createDiffieHellman = dh.createDiffieHellman;\nexports.DiffieHellman = dh.DiffieHellman;\n\nvar sign = require('browserify-sign');\n\nexports.createSign = sign.createSign;\nexports.Sign = sign.Sign;\nexports.createVerify = sign.createVerify;\nexports.Verify = sign.Verify;\n\nexports.createECDH = require('create-ecdh');\n\nvar publicEncrypt = require('public-encrypt');\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt;\nexports.privateEncrypt = publicEncrypt.privateEncrypt;\nexports.publicDecrypt = publicEncrypt.publicDecrypt;\nexports.privateDecrypt = publicEncrypt.privateDecrypt;\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// [\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error('sorry, ' + name + ' is not implemented yet\\nwe accept pull requests\\nhttps://github.com/browserify/crypto-browserify');\n// };\n// });\n\nvar rf = require('randomfill');\n\nexports.randomFill = rf.randomFill;\nexports.randomFillSync = rf.randomFillSync;\n\nexports.createCredentials = function () {\n\tthrow new Error('sorry, createCredentials is not implemented yet\\nwe accept pull requests\\nhttps://github.com/browserify/crypto-browserify');\n};\n\nexports.constants = {\n\tDH_CHECK_P_NOT_SAFE_PRIME: 2,\n\tDH_CHECK_P_NOT_PRIME: 1,\n\tDH_UNABLE_TO_CHECK_GENERATOR: 4,\n\tDH_NOT_SUITABLE_GENERATOR: 8,\n\tNPN_ENABLED: 1,\n\tALPN_ENABLED: 1,\n\tRSA_PKCS1_PADDING: 1,\n\tRSA_SSLV23_PADDING: 2,\n\tRSA_NO_PADDING: 3,\n\tRSA_PKCS1_OAEP_PADDING: 4,\n\tRSA_X931_PADDING: 5,\n\tRSA_PKCS1_PSS_PADDING: 6,\n\tPOINT_CONVERSION_COMPRESSED: 2,\n\tPOINT_CONVERSION_UNCOMPRESSED: 4,\n\tPOINT_CONVERSION_HYBRID: 6\n};\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar defineDataProperty = require('define-data-property');\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar supportsDescriptors = require('has-property-descriptors')();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object) {\n\t\tif (predicate === true) {\n\t\t\tif (object[name] === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (!isFunction(predicate) || !predicate()) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif (supportsDescriptors) {\n\t\tdefineDataProperty(object, name, value, true);\n\t} else {\n\t\tdefineDataProperty(object, name, value);\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n this.padding = options.padding !== false\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n if (this.padding === false) {\n return false;\n }\n\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n if (this.padding === false) {\n return buffer;\n }\n\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly, bitLength) {\n var byteLength;\n if (BN.isBN(msg) || typeof msg === 'number') {\n msg = new BN(msg, 16);\n byteLength = msg.byteLength();\n } else if (typeof msg === 'object') {\n // BN assumes an array-like input and asserts length\n byteLength = msg.length;\n msg = new BN(msg, 16);\n } else {\n // BN converts the value to string\n var str = msg.toString();\n // HEX encoding\n byteLength = (str.length + 1) >>> 1;\n msg = new BN(str, 16);\n }\n // Allow overriding\n if (typeof bitLength !== 'number') {\n bitLength = byteLength * 8;\n }\n var delta = bitLength - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n if (typeof msg !== 'string' && typeof msg !== 'number' && !BN.isBN(msg)) {\n assert(typeof msg === 'object' && msg && typeof msg.length === 'number',\n 'Expected message to be an array-like, a hex string, or a BN instance');\n assert((msg.length >>> 0) === msg.length); // non-negative 32-bit integer\n for (var i = 0; i < msg.length; i++) assert((msg[i] & 255) === msg[i]);\n }\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(msg, false, options.msgBitLength);\n\n // Would fail further checks, but let's make the error message clear\n assert(!msg.isNeg(), 'Can not sign a negative message');\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Recheck nonce to be bijective to msg\n assert((new BN(nonce)).eq(msg), 'Can not sign message');\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc, options) {\n if (!options)\n options = {};\n\n msg = this._truncateToN(msg, false, options.msgBitLength);\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature, options) {\n return this.ec.verify(msg, signature, this, undefined, options);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n if(buf[p.place] === 0x00) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n if (sig.S().gte(sig.eddsa.curve.n) || sig.S().isNeg()) {\n return false;\n }\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n assert(sig.length === eddsa.encodingLength * 2, 'Signature has invalid size');\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n var i;\n for (i = 0; i < naf.length; i += 1) {\n naf[i] = 0;\n }\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/** @type {(arr: A, iterator: (this: This | void, value: A[number], index: number, arr: A) => void, receiver: This | undefined) => void} */\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\n/** @type {(string: S, iterator: (this: This | void, value: S[number], index: number, string: S) => void, receiver: This | undefined) => void} */\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\n/** @type {(obj: O, iterator: (this: This | void, value: O[keyof O], index: keyof O, obj: O) => void, receiver: This | undefined) => void} */\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\n/** @type {(x: unknown) => x is readonly unknown[]} */\nfunction isArray(x) {\n return toStr.call(x) === '[object Array]';\n}\n\n/** @type {import('.')._internal} */\nmodule.exports = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (isArray(list)) {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\nvar round = require('math-intrinsics/round');\nvar sign = require('math-intrinsics/sign');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = require('get-proto');\nvar $ObjectGPO = require('get-proto/Object.getPrototypeOf');\nvar $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Object.getPrototypeOf%': $ObjectGPO,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow,\n\t'%Math.round%': round,\n\t'%Math.sign%': sign,\n\t'%Reflect.getPrototypeOf%': $ReflectGPO\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar $Object = require('es-object-atoms');\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n","'use strict';\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n","'use strict';\n\nvar reflectGetProto = require('./Reflect.getPrototypeOf');\nvar originalGetProto = require('./Object.getPrototypeOf');\n\nvar getDunderProto = require('dunder-proto/get');\n\n/** @type {import('.')} */\nmodule.exports = reflectGetProto\n\t? function getProto(O) {\n\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\treturn reflectGetProto(O);\n\t}\n\t: originalGetProto\n\t\t? function getProto(O) {\n\t\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\t\tthrow new TypeError('getProto: not an object');\n\t\t\t}\n\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\treturn originalGetProto(O);\n\t\t}\n\t\t: getDunderProto\n\t\t\t? function getProto(O) {\n\t\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\t\treturn getDunderProto(O);\n\t\t\t}\n\t\t\t: null;\n","/* eslint no-negated-condition: 0, no-new-func: 0 */\n\n'use strict';\n\nif (typeof self !== 'undefined') {\n\tmodule.exports = self;\n} else if (typeof window !== 'undefined') {\n\tmodule.exports = window;\n} else {\n\tmodule.exports = Function('return this')();\n}\n","'use strict';\n\nvar defineProperties = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = getPolyfill();\n\nvar getGlobal = function () { return polyfill; };\n\ndefineProperties(getGlobal, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = getGlobal;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\tif (typeof global !== 'object' || !global || global.Math !== Math || global.Array !== Array) {\n\t\treturn implementation;\n\t}\n\treturn global;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar gOPD = require('gopd');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimGlobal() {\n\tvar polyfill = getPolyfill();\n\tif (define.supportsDescriptors) {\n\t\tvar descriptor = gOPD(polyfill, 'globalThis');\n\t\tif (\n\t\t\t!descriptor\n\t\t\t|| (\n\t\t\t\tdescriptor.configurable\n\t\t\t\t&& (descriptor.enumerable || !descriptor.writable || globalThis !== polyfill)\n\t\t\t)\n\t\t) {\n\t\t\tObject.defineProperty(polyfill, 'globalThis', {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: polyfill,\n\t\t\t\twritable: true\n\t\t\t});\n\t\t}\n\t} else if (typeof globalThis !== 'object' || globalThis !== polyfill) {\n\t\tpolyfill.globalThis = polyfill;\n\t}\n\treturn polyfill;\n};\n","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n","'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar inherits = require('inherits')\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nvar useUint8Array = typeof Uint8Array !== 'undefined'\nvar useArrayBuffer = typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n ArrayBuffer.isView &&\n (Buffer.prototype instanceof Uint8Array || Buffer.TYPED_ARRAY_SUPPORT)\n\nfunction toBuffer (data, encoding) {\n // No need to do anything for exact instance\n // This is only valid when safe-buffer.Buffer === buffer.Buffer, i.e. when Buffer.from/Buffer.alloc existed\n if (data instanceof Buffer) return data\n\n // Convert strings to Buffer\n if (typeof data === 'string') return Buffer.from(data, encoding)\n\n /*\n * Wrap any TypedArray instances and DataViews\n * Makes sense only on engines with full TypedArray support -- let Buffer detect that\n */\n if (useArrayBuffer && ArrayBuffer.isView(data)) {\n if (data.byteLength === 0) return Buffer.alloc(0) // Bug in Node.js <6.3.1, which treats this as out-of-bounds\n var res = Buffer.from(data.buffer, data.byteOffset, data.byteLength)\n // Recheck result size, as offset/length doesn't work on Node.js <5.10\n // We just go to Uint8Array case if this fails\n if (res.byteLength === data.byteLength) return res\n }\n\n /*\n * Uint8Array in engines where Buffer.from might not work with ArrayBuffer, just copy over\n * Doesn't make sense with other TypedArray instances\n */\n if (useUint8Array && data instanceof Uint8Array) return Buffer.from(data)\n\n /*\n * Old Buffer polyfill on an engine that doesn't have TypedArray support\n * Also, this is from a different Buffer polyfill implementation then we have, as instanceof check failed\n * Convert to our current Buffer implementation\n */\n if (\n Buffer.isBuffer(data) &&\n data.constructor &&\n typeof data.constructor.isBuffer === 'function' &&\n data.constructor.isBuffer(data)\n ) {\n return Buffer.from(data)\n }\n\n throw new TypeError('The \"data\" argument must be of type string or an instance of Buffer, TypedArray, or DataView.')\n}\n\nHashBase.prototype.update = function (data, encoding) {\n if (this._finalized) throw new Error('Digest already called')\n\n data = toBuffer(data, encoding) // asserts correct input type\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bound');\n\nvar $toString = callBound('Object.prototype.toString');\n\n/** @type {import('.')} */\nvar isStandardArguments = function isArguments(value) {\n\tif (\n\t\thasToStringTag\n\t\t&& value\n\t\t&& typeof value === 'object'\n\t\t&& Symbol.toStringTag in value\n\t) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\n/** @type {import('.')} */\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null\n\t\t&& typeof value === 'object'\n\t\t&& 'length' in value\n\t\t&& typeof value.length === 'number'\n\t\t&& value.length >= 0\n\t\t&& $toString(value) !== '[object Array]'\n\t\t&& 'callee' in value\n\t\t&& $toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\n// @ts-expect-error TODO make this not error\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\n/** @type {import('.')} */\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar callBound = require('call-bound');\nvar safeRegexTest = require('safe-regex-test');\nvar isFnRegex = safeRegexTest(/^\\s*(?:function)?\\*/);\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = require('get-proto');\n\nvar toStr = callBound('Object.prototype.toString');\nvar fnToStr = callBound('Function.prototype.toString');\n\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\n/** @type {undefined | false | null | GeneratorFunctionConstructor} */\nvar GeneratorFunction;\n\n/** @type {import('.')} */\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex(fnToStr(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t? /** @type {GeneratorFunctionConstructor} */ (getProto(generatorFunc))\n\t\t\t: false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function isNaN(value) {\n\treturn value !== value;\n};\n","'use strict';\n\nvar callBind = require('call-bind');\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Number);\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\tif (Number.isNaN && Number.isNaN(NaN) && !Number.isNaN('a')) {\n\t\treturn Number.isNaN;\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function shimNumberIsNaN() {\n\tvar polyfill = getPolyfill();\n\tdefine(Number, { isNaN: polyfill }, {\n\t\tisNaN: function testIsNaN() {\n\t\t\treturn Number.isNaN !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar callBound = require('call-bound');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar hasOwn = require('hasown');\nvar gOPD = require('gopd');\n\n/** @type {import('.')} */\nvar fn;\n\nif (hasToStringTag) {\n\t/** @type {(receiver: ThisParameterType, ...args: Parameters) => ReturnType} */\n\tvar $exec = callBound('RegExp.prototype.exec');\n\t/** @type {object} */\n\tvar isRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\t/** @type {{ toString(): never, valueOf(): never, [Symbol.toPrimitive]?(): never }} */\n\tvar badStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n\n\t/** @type {import('.')} */\n\t// @ts-expect-error TS can't figure out that the $exec call always throws\n\t// eslint-disable-next-line consistent-return\n\tfn = function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {NonNullable} */ (gOPD)(/** @type {{ lastIndex?: unknown }} */ (value), 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && hasOwn(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t$exec(value, /** @type {string} */ (/** @type {unknown} */ (badStringifier)));\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t};\n} else {\n\t/** @type {(receiver: ThisParameterType, ...args: Parameters) => ReturnType} */\n\tvar $toString = callBound('Object.prototype.toString');\n\t/** @const @type {'[object RegExp]'} */\n\tvar regexClass = '[object RegExp]';\n\n\t/** @type {import('.')} */\n\tfn = function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n}\n\nmodule.exports = fn;\n","'use strict';\n\nvar whichTypedArray = require('which-typed-array');\n\n/** @type {import('.')} */\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","// https://github.com/maxogden/websocket-stream/blob/48dc3ddf943e5ada668c31ccd94e9186f02fafbd/ws-fallback.js\n\nvar ws = null\n\nif (typeof WebSocket !== 'undefined') {\n ws = WebSocket\n} else if (typeof MozWebSocket !== 'undefined') {\n ws = MozWebSocket\n} else if (typeof global !== 'undefined') {\n ws = global.WebSocket || global.MozWebSocket\n} else if (typeof window !== 'undefined') {\n ws = window.WebSocket || window.MozWebSocket\n} else if (typeof self !== 'undefined') {\n ws = self.WebSocket || self.MozWebSocket\n}\n\nmodule.exports = ws\n","/**\n * [js-sha256]{@link https://github.com/emn178/js-sha256}\n *\n * @version 0.11.1\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2025\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var ERROR = 'input is invalid type';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA256_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node && process.type != 'renderer';\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (outputType, is224) {\n return function (message) {\n return new Sha256(is224, true).update(message)[outputType]();\n };\n };\n\n var createMethod = function (is224) {\n var method = createOutputMethod('hex', is224);\n if (NODE_JS) {\n method = nodeWrap(method, is224);\n }\n method.create = function () {\n return new Sha256(is224);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type, is224);\n }\n return method;\n };\n\n var nodeWrap = function (method, is224) {\n var crypto = require('crypto')\n var Buffer = require('buffer').Buffer;\n var algorithm = is224 ? 'sha224' : 'sha256';\n var bufferFrom;\n if (Buffer.from && !root.JS_SHA256_NO_BUFFER_FROM) {\n bufferFrom = Buffer.from;\n } else {\n bufferFrom = function (message) {\n return new Buffer(message);\n };\n }\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash(algorithm).update(message, 'utf8').digest('hex');\n } else {\n if (message === null || message === undefined) {\n throw new Error(ERROR);\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n }\n if (Array.isArray(message) || ArrayBuffer.isView(message) ||\n message.constructor === Buffer) {\n return crypto.createHash(algorithm).update(bufferFrom(message)).digest('hex');\n } else {\n return method(message);\n }\n };\n return nodeMethod;\n };\n\n var createHmacOutputMethod = function (outputType, is224) {\n return function (key, message) {\n return new HmacSha256(key, is224, true).update(message)[outputType]();\n };\n };\n\n var createHmacMethod = function (is224) {\n var method = createHmacOutputMethod('hex', is224);\n method.create = function (key) {\n return new HmacSha256(key, is224);\n };\n method.update = function (key, message) {\n return method.create(key).update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createHmacOutputMethod(type, is224);\n }\n return method;\n };\n\n function Sha256(is224, sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n\n if (is224) {\n this.h0 = 0xc1059ed8;\n this.h1 = 0x367cd507;\n this.h2 = 0x3070dd17;\n this.h3 = 0xf70e5939;\n this.h4 = 0xffc00b31;\n this.h5 = 0x68581511;\n this.h6 = 0x64f98fa7;\n this.h7 = 0xbefa4fa4;\n } else { // 256\n this.h0 = 0x6a09e667;\n this.h1 = 0xbb67ae85;\n this.h2 = 0x3c6ef372;\n this.h3 = 0xa54ff53a;\n this.h4 = 0x510e527f;\n this.h5 = 0x9b05688c;\n this.h6 = 0x1f83d9ab;\n this.h7 = 0x5be0cd19;\n }\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n this.is224 = is224;\n }\n\n Sha256.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = this.block;\n this.block = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n\n if (notString) {\n for (i = this.start; index < length && i < 64; ++index) {\n blocks[i >>> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >>> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >>> 2] |= (0xc0 | (code >>> 6)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >>> 2] |= (0xe0 | (code >>> 12)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | ((code >>> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >>> 2] |= (0xf0 | (code >>> 18)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | ((code >>> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | ((code >>> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.block = blocks[16];\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Sha256.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[16] = this.block;\n blocks[i >>> 2] |= EXTRA[i & 3];\n this.block = blocks[16];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.hBytes << 3 | this.bytes >>> 29;\n blocks[15] = this.bytes << 3;\n this.hash();\n };\n\n Sha256.prototype.hash = function () {\n var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6,\n h = this.h7, blocks = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc;\n\n for (j = 16; j < 64; ++j) {\n // rightrotate\n t1 = blocks[j - 15];\n s0 = ((t1 >>> 7) | (t1 << 25)) ^ ((t1 >>> 18) | (t1 << 14)) ^ (t1 >>> 3);\n t1 = blocks[j - 2];\n s1 = ((t1 >>> 17) | (t1 << 15)) ^ ((t1 >>> 19) | (t1 << 13)) ^ (t1 >>> 10);\n blocks[j] = blocks[j - 16] + s0 + blocks[j - 7] + s1 << 0;\n }\n\n bc = b & c;\n for (j = 0; j < 64; j += 4) {\n if (this.first) {\n if (this.is224) {\n ab = 300032;\n t1 = blocks[0] - 1413257819;\n h = t1 - 150054599 << 0;\n d = t1 + 24177077 << 0;\n } else {\n ab = 704751109;\n t1 = blocks[0] - 210244248;\n h = t1 - 1521486534 << 0;\n d = t1 + 143694565 << 0;\n }\n this.first = false;\n } else {\n s0 = ((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10));\n s1 = ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7));\n ab = a & b;\n maj = ab ^ (a & c) ^ bc;\n ch = (e & f) ^ (~e & g);\n t1 = h + s1 + ch + K[j] + blocks[j];\n t2 = s0 + maj;\n h = d + t1 << 0;\n d = t1 + t2 << 0;\n }\n s0 = ((d >>> 2) | (d << 30)) ^ ((d >>> 13) | (d << 19)) ^ ((d >>> 22) | (d << 10));\n s1 = ((h >>> 6) | (h << 26)) ^ ((h >>> 11) | (h << 21)) ^ ((h >>> 25) | (h << 7));\n da = d & a;\n maj = da ^ (d & b) ^ ab;\n ch = (h & e) ^ (~h & f);\n t1 = g + s1 + ch + K[j + 1] + blocks[j + 1];\n t2 = s0 + maj;\n g = c + t1 << 0;\n c = t1 + t2 << 0;\n s0 = ((c >>> 2) | (c << 30)) ^ ((c >>> 13) | (c << 19)) ^ ((c >>> 22) | (c << 10));\n s1 = ((g >>> 6) | (g << 26)) ^ ((g >>> 11) | (g << 21)) ^ ((g >>> 25) | (g << 7));\n cd = c & d;\n maj = cd ^ (c & a) ^ da;\n ch = (g & h) ^ (~g & e);\n t1 = f + s1 + ch + K[j + 2] + blocks[j + 2];\n t2 = s0 + maj;\n f = b + t1 << 0;\n b = t1 + t2 << 0;\n s0 = ((b >>> 2) | (b << 30)) ^ ((b >>> 13) | (b << 19)) ^ ((b >>> 22) | (b << 10));\n s1 = ((f >>> 6) | (f << 26)) ^ ((f >>> 11) | (f << 21)) ^ ((f >>> 25) | (f << 7));\n bc = b & c;\n maj = bc ^ (b & d) ^ cd;\n ch = (f & g) ^ (~f & h);\n t1 = e + s1 + ch + K[j + 3] + blocks[j + 3];\n t2 = s0 + maj;\n e = a + t1 << 0;\n a = t1 + t2 << 0;\n this.chromeBugWorkAround = true;\n }\n\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n this.h4 = this.h4 + e << 0;\n this.h5 = this.h5 + f << 0;\n this.h6 = this.h6 + g << 0;\n this.h7 = this.h7 + h << 0;\n };\n\n Sha256.prototype.hex = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var hex = HEX_CHARS[(h0 >>> 28) & 0x0F] + HEX_CHARS[(h0 >>> 24) & 0x0F] +\n HEX_CHARS[(h0 >>> 20) & 0x0F] + HEX_CHARS[(h0 >>> 16) & 0x0F] +\n HEX_CHARS[(h0 >>> 12) & 0x0F] + HEX_CHARS[(h0 >>> 8) & 0x0F] +\n HEX_CHARS[(h0 >>> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n HEX_CHARS[(h1 >>> 28) & 0x0F] + HEX_CHARS[(h1 >>> 24) & 0x0F] +\n HEX_CHARS[(h1 >>> 20) & 0x0F] + HEX_CHARS[(h1 >>> 16) & 0x0F] +\n HEX_CHARS[(h1 >>> 12) & 0x0F] + HEX_CHARS[(h1 >>> 8) & 0x0F] +\n HEX_CHARS[(h1 >>> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n HEX_CHARS[(h2 >>> 28) & 0x0F] + HEX_CHARS[(h2 >>> 24) & 0x0F] +\n HEX_CHARS[(h2 >>> 20) & 0x0F] + HEX_CHARS[(h2 >>> 16) & 0x0F] +\n HEX_CHARS[(h2 >>> 12) & 0x0F] + HEX_CHARS[(h2 >>> 8) & 0x0F] +\n HEX_CHARS[(h2 >>> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n HEX_CHARS[(h3 >>> 28) & 0x0F] + HEX_CHARS[(h3 >>> 24) & 0x0F] +\n HEX_CHARS[(h3 >>> 20) & 0x0F] + HEX_CHARS[(h3 >>> 16) & 0x0F] +\n HEX_CHARS[(h3 >>> 12) & 0x0F] + HEX_CHARS[(h3 >>> 8) & 0x0F] +\n HEX_CHARS[(h3 >>> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n HEX_CHARS[(h4 >>> 28) & 0x0F] + HEX_CHARS[(h4 >>> 24) & 0x0F] +\n HEX_CHARS[(h4 >>> 20) & 0x0F] + HEX_CHARS[(h4 >>> 16) & 0x0F] +\n HEX_CHARS[(h4 >>> 12) & 0x0F] + HEX_CHARS[(h4 >>> 8) & 0x0F] +\n HEX_CHARS[(h4 >>> 4) & 0x0F] + HEX_CHARS[h4 & 0x0F] +\n HEX_CHARS[(h5 >>> 28) & 0x0F] + HEX_CHARS[(h5 >>> 24) & 0x0F] +\n HEX_CHARS[(h5 >>> 20) & 0x0F] + HEX_CHARS[(h5 >>> 16) & 0x0F] +\n HEX_CHARS[(h5 >>> 12) & 0x0F] + HEX_CHARS[(h5 >>> 8) & 0x0F] +\n HEX_CHARS[(h5 >>> 4) & 0x0F] + HEX_CHARS[h5 & 0x0F] +\n HEX_CHARS[(h6 >>> 28) & 0x0F] + HEX_CHARS[(h6 >>> 24) & 0x0F] +\n HEX_CHARS[(h6 >>> 20) & 0x0F] + HEX_CHARS[(h6 >>> 16) & 0x0F] +\n HEX_CHARS[(h6 >>> 12) & 0x0F] + HEX_CHARS[(h6 >>> 8) & 0x0F] +\n HEX_CHARS[(h6 >>> 4) & 0x0F] + HEX_CHARS[h6 & 0x0F];\n if (!this.is224) {\n hex += HEX_CHARS[(h7 >>> 28) & 0x0F] + HEX_CHARS[(h7 >>> 24) & 0x0F] +\n HEX_CHARS[(h7 >>> 20) & 0x0F] + HEX_CHARS[(h7 >>> 16) & 0x0F] +\n HEX_CHARS[(h7 >>> 12) & 0x0F] + HEX_CHARS[(h7 >>> 8) & 0x0F] +\n HEX_CHARS[(h7 >>> 4) & 0x0F] + HEX_CHARS[h7 & 0x0F];\n }\n return hex;\n };\n\n Sha256.prototype.toString = Sha256.prototype.hex;\n\n Sha256.prototype.digest = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var arr = [\n (h0 >>> 24) & 0xFF, (h0 >>> 16) & 0xFF, (h0 >>> 8) & 0xFF, h0 & 0xFF,\n (h1 >>> 24) & 0xFF, (h1 >>> 16) & 0xFF, (h1 >>> 8) & 0xFF, h1 & 0xFF,\n (h2 >>> 24) & 0xFF, (h2 >>> 16) & 0xFF, (h2 >>> 8) & 0xFF, h2 & 0xFF,\n (h3 >>> 24) & 0xFF, (h3 >>> 16) & 0xFF, (h3 >>> 8) & 0xFF, h3 & 0xFF,\n (h4 >>> 24) & 0xFF, (h4 >>> 16) & 0xFF, (h4 >>> 8) & 0xFF, h4 & 0xFF,\n (h5 >>> 24) & 0xFF, (h5 >>> 16) & 0xFF, (h5 >>> 8) & 0xFF, h5 & 0xFF,\n (h6 >>> 24) & 0xFF, (h6 >>> 16) & 0xFF, (h6 >>> 8) & 0xFF, h6 & 0xFF\n ];\n if (!this.is224) {\n arr.push((h7 >>> 24) & 0xFF, (h7 >>> 16) & 0xFF, (h7 >>> 8) & 0xFF, h7 & 0xFF);\n }\n return arr;\n };\n\n Sha256.prototype.array = Sha256.prototype.digest;\n\n Sha256.prototype.arrayBuffer = function () {\n this.finalize();\n\n var buffer = new ArrayBuffer(this.is224 ? 28 : 32);\n var dataView = new DataView(buffer);\n dataView.setUint32(0, this.h0);\n dataView.setUint32(4, this.h1);\n dataView.setUint32(8, this.h2);\n dataView.setUint32(12, this.h3);\n dataView.setUint32(16, this.h4);\n dataView.setUint32(20, this.h5);\n dataView.setUint32(24, this.h6);\n if (!this.is224) {\n dataView.setUint32(28, this.h7);\n }\n return buffer;\n };\n\n function HmacSha256(key, is224, sharedMemory) {\n var i, type = typeof key;\n if (type === 'string') {\n var bytes = [], length = key.length, index = 0, code;\n for (i = 0; i < length; ++i) {\n code = key.charCodeAt(i);\n if (code < 0x80) {\n bytes[index++] = code;\n } else if (code < 0x800) {\n bytes[index++] = (0xc0 | (code >>> 6));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes[index++] = (0xe0 | (code >>> 12));\n bytes[index++] = (0x80 | ((code >>> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n bytes[index++] = (0xf0 | (code >>> 18));\n bytes[index++] = (0x80 | ((code >>> 12) & 0x3f));\n bytes[index++] = (0x80 | ((code >>> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n }\n }\n key = bytes;\n } else {\n if (type === 'object') {\n if (key === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\n key = new Uint8Array(key);\n } else if (!Array.isArray(key)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n }\n\n if (key.length > 64) {\n key = (new Sha256(is224, true)).update(key).array();\n }\n\n var oKeyPad = [], iKeyPad = [];\n for (i = 0; i < 64; ++i) {\n var b = key[i] || 0;\n oKeyPad[i] = 0x5c ^ b;\n iKeyPad[i] = 0x36 ^ b;\n }\n\n Sha256.call(this, is224, sharedMemory);\n\n this.update(iKeyPad);\n this.oKeyPad = oKeyPad;\n this.inner = true;\n this.sharedMemory = sharedMemory;\n }\n HmacSha256.prototype = new Sha256();\n\n HmacSha256.prototype.finalize = function () {\n Sha256.prototype.finalize.call(this);\n if (this.inner) {\n this.inner = false;\n var innerHash = this.array();\n Sha256.call(this, this.is224, this.sharedMemory);\n this.update(this.oKeyPad);\n this.update(innerHash);\n Sha256.prototype.finalize.call(this);\n }\n };\n\n var exports = createMethod();\n exports.sha256 = exports;\n exports.sha224 = createMethod(true);\n exports.sha256.hmac = createHmacMethod();\n exports.sha224.hmac = createHmacMethod(true);\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha256 = exports.sha256;\n root.sha224 = exports.sha224;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n","!function(A){function I(A){\"use strict\";var I;void 0===(I=A)&&(I={});var g=I;\"object\"!=typeof g.sodium&&(\"object\"==typeof global?g=global:\"object\"==typeof window&&(g=window));var C=I;return I.ready=new Promise((function(A,I){(B=C).onAbort=I,B.print=function(A){},B.printErr=function(A){},B.onRuntimeInitialized=function(){try{B._crypto_secretbox_keybytes(),A()}catch(A){I(A)}},B.useBackupModule=function(){return new Promise((function(A,I){(B={}).onAbort=I,B.onRuntimeInitialized=function(){Object.keys(C).forEach((function(A){\"getRandomValue\"!==A&&delete C[A]})),Object.keys(B).forEach((function(A){C[A]=B[A]})),A()};var g,B=void 0!==B?B:{},Q=\"object\"==typeof window,i=\"function\"==typeof importScripts,o=\"object\"==typeof process&&\"object\"==typeof process.versions&&\"string\"==typeof process.versions.node,E=Object.assign({},B),a=\"\";if(o){var _=require(\"fs\"),c=require(\"path\");a=__dirname+\"/\",g=A=>(A=Y(A)?new URL(A):c.normalize(A),_.readFileSync(A)),!B.thisProgram&&process.argv.length>1&&process.argv[1].replace(/\\\\/g,\"/\"),process.argv.slice(2),\"undefined\"!=typeof module&&(module.exports=B)}else(Q||i)&&(i?a=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(a=document.currentScript.src),a=a.startsWith(\"blob:\")?\"\":a.substr(0,a.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1),i&&(g=A=>{var I=new XMLHttpRequest;return I.open(\"GET\",A,!1),I.responseType=\"arraybuffer\",I.send(null),new Uint8Array(I.response)}));B.print;var t,r=B.printErr||void 0;Object.assign(B,E),E=null,B.arguments&&B.arguments,B.thisProgram&&B.thisProgram,B.quit&&B.quit,B.wasmBinary&&(t=B.wasmBinary);var e,y={Memory:function(A){this.buffer=new ArrayBuffer(65536*A.initial)},Module:function(A){},Instance:function(A,I){this.exports=function(A){for(var I,g=new Uint8Array(123),C=25;C>=0;--C)g[48+C]=52+C,g[65+C]=C,g[97+C]=26+C;function B(A,I,C){for(var B,Q,i=0,o=I,E=C.length,a=I+(3*E>>2)-(\"=\"==C[E-2])-(\"=\"==C[E-1]);i>4,o>2),o>>0>P>>>0?a+1|0:a)|0,a=(QA=(_=P)>>>0>(P=P+QA|0)>>>0?a+1|0:a)+yA|0,iA=eA=P+rA|0,eA=a=eA>>>0

>>0?a+1|0:a,P=UI(P^(o[A+80|0]|o[A+81|0]<<8|o[A+82|0]<<16|o[A+83|0]<<24)^-79577749,QA^(o[A+84|0]|o[A+85|0]<<8|o[A+86|0]<<16|o[A+87|0]<<24)^528734635,32),kA=a=f,a=a+1013904242|0,QA=P,V=a=(P=P-23791573|0)>>>0<4271175723?a+1|0:a,_A=UI(P^aA,a^_A,40),a=(a=eA)+(eA=f)|0,aA=UI(QA^(h=aA=_A+iA|0),kA^(D=h>>>0<_A>>>0?a+1|0:a),48),a=V+(R=f)|0,k=a=(aA=P+(p=aA)|0)>>>0

>>0?a+1|0:a,aA=a=UI(_A^(n=aA),eA^a,1),V=P=f,eA=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,kA=a=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,tA=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,P=(_A=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24)+(QA=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24)|0,a=(GA=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24)+(KA=o[A+44|0]|o[A+45|0]<<8|o[A+46|0]<<16|o[A+47|0]<<24)|0,a=(o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24)+(P>>>0>>0?a+1|0:a)|0,a=kA+(iA=(_=P)>>>0>(P=P+tA|0)>>>0?a+1|0:a)|0,a=(tA=P+eA|0)>>>0

>>0?a+1|0:a,_=UI(P^(o[A+72|0]|o[A+73|0]<<8|o[A+74|0]<<16|o[A+75|0]<<24)^725511199,iA^(o[A+76|0]|o[A+77|0]<<8|o[A+78|0]<<16|o[A+79|0]<<24)^-1694144372,32),e=UI(QA^(c=_-2067093701|0),KA^(x=(J=P=f)-((_>>>0<2067093701)+1150833018|0)|0),40),a=(L=f)+a|0,a=(Y=(F=P=e+tA|0)>>>0>>0?a+1|0:a)+V|0,a=(F>>>0>(P=F+aA|0)>>>0?a+1|0:a)+X|0,a=(QA=(t=P)>>>0>(P=P+oA|0)>>>0?a+1|0:a)+z|0,l=z=P+g|0,s=a=z>>>0

>>0?a+1|0:a,w=aA,wA=V,V=P,iA=QA,aA=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,P=a=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,KA=a=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i=QA=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,X=a,a=(FA=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)+(r=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24)|0,a=i+((z=o[A+32|0]|o[A+33|0]<<8|o[A+34|0]<<16|o[A+35|0]<<24)>>>0>(t=z+(QA=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24)|0)>>>0?a+1|0:a)|0,a=(tA=(X=t+X|0)>>>0>>0?a+1|0:a)+P|0,fA=t=X+aA|0,t=a=t>>>0>>0?a+1|0:a,y=z,z=UI(X^(o[A+64|0]|o[A+65|0]<<8|o[A+66|0]<<16|o[A+67|0]<<24)^-1377402159,tA^(o[A+68|0]|o[A+69|0]<<8|o[A+70|0]<<16|o[A+71|0]<<24)^1359893119,32),tA=a=f,a=a+1779033703|0,X=z,U=a=(z=z-205731576|0)>>>0<4089235720?a+1|0:a,r=UI(y^(S=z),a^r,40),a=(m=f)+t|0,y=UI(X^(t=z=r+fA|0),tA^(G=r>>>0>t>>>0?a+1|0:a),48),a=UI(y^V,(T=f)^iA,32),W=z=f,u=a,B=a=o[I+60|0]|o[I+61|0]<<8|o[I+62|0]<<16|o[I+63|0]<<24,tA=fA=o[I+56|0]|o[I+57|0]<<8|o[I+58|0]<<16|o[I+59|0]<<24,K=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,z=(iA=o[I+48|0]|o[I+49|0]<<8|o[I+50|0]<<16|o[I+51|0]<<24)+(X=o[A+56|0]|o[A+57|0]<<8|o[A+58|0]<<16|o[A+59|0]<<24)|0,a=(SA=o[I+52|0]|o[I+53|0]<<8|o[I+54|0]<<16|o[I+55|0]<<24)+(d=o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24)|0,a=(o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24)+(z>>>0>>0?a+1|0:a)|0,a=B+(V=(M=z)>>>0>(z=K+z|0)>>>0?a+1|0:a)|0,a=(K=z+tA|0)>>>0>>0?a+1|0:a,V=UI(z^(o[A+88|0]|o[A+89|0]<<8|o[A+90|0]<<16|o[A+91|0]<<24)^327033209,V^(o[A+92|0]|o[A+93|0]<<8|o[A+94|0]<<16|o[A+95|0]<<24)^1541459225,32),X=UI(X^(tA=V+1595750129|0),(M=d)^(d=(b=z=f)-((V>>>0<2699217167)+1521486533|0)|0),40),a=(IA=f)+a|0,z=UI((K=z=X+K|0)^V,b^(M=K>>>0>>0?a+1|0:a),48),a=d+($=f)|0,H=a=(z=tA+(d=z)|0)>>>0>>0?a+1|0:a,a=W+a|0,O=w^(V=u+(b=z)|0),w=a=V>>>0>>0?a+1|0:a,tA=UI(O,a^wA,40),a=(wA=f)+s|0,z=UI(l=u^(s=z=tA+l|0),W^(u=s>>>0>>0?a+1|0:a),48),a=w+(CA=f)|0,W=a=(w=V+(l=z)|0)>>>0>>0?a+1|0:a,z=(v=UI(w^tA,wA^a,1))+(V=o[I+72|0]|o[I+73|0]<<8|o[I+74|0]<<16|o[I+75|0]<<24)|0,a=(hA=f)+(wA=o[I+76|0]|o[I+77|0]<<8|o[I+78|0]<<16|o[I+79|0]<<24)|0,nA=z,q=z>>>0>>0?a+1|0:a,Z=sA,z=o[I+96|0]|o[I+97|0]<<8|o[I+98|0]<<16|o[I+99|0]<<24,tA=a=o[I+100|0]|o[I+101|0]<<8|o[I+102|0]<<16|o[I+103|0]<<24,X=(a=h)+(h=UI(b^X,H^IA,1))|0,a=(b=f)+D|0,a=(h>>>0>X>>>0?a+1|0:a)+tA|0,a=(D=(D=X)>>>0>(X=z+X|0)>>>0?a+1|0:a)+Z|0,O=H=X+gA|0,H=a=H>>>0>>0?a+1|0:a,F=UI(_^F,Y^J,48),Y=a=UI(F^X,(J=f)^D,32),a=U+T|0,a=(IA=X=f)+(S=(X=y+S|0)>>>0>>0?a+1|0:a)|0,U=a=(D=X)>>>0>(y=D+Y|0)>>>0?a+1|0:a,h=UI(y^h,b^a,40),a=(T=f)+H|0,a=(b=h>>>0>(H=X=h+O|0)>>>0?a+1|0:a)+q|0,a=(_=H>>>0>(X=H+nA|0)>>>0?a+1|0:a)+pA|0,nA=q=X+EA|0,q=a=q>>>0>>0?a+1|0:a,O=X,Z=_,X=o[I+116|0]|o[I+117|0]<<8|o[I+118|0]<<16|o[I+119|0]<<24,I=o[I+112|0]|o[I+113|0]<<8|o[I+114|0]<<16|o[I+115|0]<<24,r=UI(r^D,S^m,1),a=(m=f)+M|0,a=((_=r+K|0)>>>0>>0?a+1|0:a)+X|0,a=(D=(S=_)>>>0>(_=I+_|0)>>>0?a+1|0:a)+pA|0,MA=S=_+EA|0,S=a=S>>>0<_>>>0?a+1|0:a,a=UI(_^p,D^R,32),AA=_=f,p=a,D=_,a=J+x|0,F=_=c+F|0,K=a=_>>>0>>0?a+1|0:a,a=a+D|0,M=_=_+p|0,R=a=F>>>0>_>>>0?a+1|0:a,D=UI(_^r,m^a,40),a=(m=f)+S|0,p=UI((_=D+MA|0)^p,AA^(c=_>>>0>>0?a+1|0:a),48),a=UI(p^O,(MA=f)^Z,32),AA=r=f,S=a,O=r,e=UI(e^F,K^L,1),a=G+(F=f)|0,a=((r=t)>>>0>(t=t+e|0)>>>0?a+1|0:a)+BA|0,a=(t=(r=t+j|0)>>>0>>0?a+1|0:a)+wA|0,Z=G=r+V|0,G=a=G>>>0>>0?a+1|0:a,K=e,r=UI(r^d,t^$,32),a=(d=f)+k|0,n=UI(K^(t=e=r+n|0),(k=r>>>0>t>>>0?a+1|0:a)^F,40),a=($=f)+G|0,F=e=n+Z|0,e=UI(r^e,d^(G=e>>>0>>0?a+1|0:a),48),a=k+(E=f)|0,k=e,d=a=(e=t+e|0)>>>0>>0?a+1|0:a,a=a+O|0,a=(K=e)>>>0>(e=e+S|0)>>>0?a+1|0:a,O=e,e^=v,v=a,r=UI(e,hA^a,40),a=(hA=f)+q|0,q=e=r+nA|0,a=Q+(Z=r>>>0>e>>>0?a+1|0:a)|0,nA=e=e+g|0,J=a=e>>>0>>0?a+1|0:a,e=_,x=gA,L=sA,_=UI(Y^H,b^IA,48),a=U+(IA=f)|0,Y=_,U=a=(t=y+_|0)>>>0>>0?a+1|0:a,_=UI(t^h,T^a,1),a=(y=f)+L|0,a=((h=_+x|0)>>>0<_>>>0?a+1|0:a)+c|0,a=SA+(e=(c=e+h|0)>>>0>>0?a+1|0:a)|0,H=h=c+iA|0,h=a=h>>>0>>0?a+1|0:a,c=UI(c^k,e^E,32),a=W+(b=f)|0,k=c,w=a=(c=w+c|0)>>>0>>0?a+1|0:a,e=UI(_^c,a^y,40),a=(a=h)+(h=f)|0,y=_=e+H|0,_=UI(_^k,b^(H=_>>>0>>0?a+1|0:a),48),a=w+(T=f)|0,b=_,W=a=(w=c+_|0)>>>0>>0?a+1|0:a,_=UI(e^w,h^a,1),a=(h=f)+J|0,a=B+(e=(c=_+nA|0)>>>0<_>>>0?a+1|0:a)|0,nA=k=c+fA|0,k=a=k>>>0>>0?a+1|0:a,J=_,x=h,a=R+MA|0,a=(_=p+M|0)>>>0

>>0?a+1|0:a,p=_,M=a,a=UI(_^D,m^a,1),D=h=f,_=a,a=G+X|0,a=((F=I+F|0)>>>0>>0?a+1|0:a)+h|0,a=DA+(F=(h=_+F|0)>>>0>>0?a+1|0:a)|0,R=G=h+oA|0,G=a=G>>>0>>0?a+1|0:a,h=UI(h^l,F^CA,32),a=U+(l=f)|0,F=h,U=a=(U=t)>>>0>(t=t+h|0)>>>0?a+1|0:a,h=UI(_^t,a^D,40),a=(m=f)+G|0,D=_=h+R|0,_=UI(G=_^F,l^(F=_>>>0>>0?a+1|0:a),48),a=U+(CA=f)|0,U=_,G=_=t+_|0,l=a=_>>>0>>0?a+1|0:a,R=c,L=e,_=UI(n^K,d^$,1),a=(t=f)+N|0,a=u+((c=_+cA|0)>>>0<_>>>0?a+1|0:a)|0,a=BA+(e=(c=c+s|0)>>>0>>0?a+1|0:a)|0,u=s=c+j|0,s=a=s>>>0>>0?a+1|0:a,n=_,_=(c=UI(c^Y,e^IA,32))+p|0,a=(p=f)+M|0,e=_,t=UI(_^n,(Y=_>>>0>>0?a+1|0:a)^t,40),a=(IA=f)+s|0,s=_=t+u|0,K=UI(_^c,p^(u=_>>>0>>0?a+1|0:a),48),c=UI(K^R,(a=L)^(L=f),32),a=(R=f)+l|0,p=_=c+G|0,n=UI(_^J,(M=_>>>0>>0?a+1|0:a)^x,40),a=(J=f)+k|0,k=_=n+nA|0,_=UI(_^c,R^(d=_>>>0>>0?a+1|0:a),48),a=M+($=f)|0,M=_,R=a=(c=p)>>>0>(p=p+_|0)>>>0?a+1|0:a,_=UI(p^n,J^a,1),a=pA+(nA=f)|0,J=_,MA=_=EA+_|0,n=a=_>>>0>>0?a+1|0:a,c=rA,_=UI(h^G,m^l,1),a=H+(h=f)|0,a=((G=y)>>>0>(y=_+y|0)>>>0?a+1|0:a)+yA|0,a=(G=(c=c+y|0)>>>0>>0?a+1|0:a)+kA|0,x=y=c+eA|0,H=a=y>>>0>>0?a+1|0:a,l=_,y=UI(S^q,Z^AA,48),a=UI(y^c,(m=f)^G,32),AA=_=f,S=a,c=_,a=Y+L|0,a=(_=e+K|0)>>>0>>0?a+1|0:a,e=_,Y=a,a=a+c|0,G=_=_+S|0,K=a=e>>>0>_>>>0?a+1|0:a,c=UI(_^l,a^h,40),a=(a=H)+(H=f)|0,l=_=c+x|0,q=a=_>>>0>>0?a+1|0:a,a=a+n|0,Z=a=(h=_+MA|0)>>>0<_>>>0?a+1|0:a,n=a,_=UI(t^e,Y^IA,1),a=P+(t=f)|0,a=F+((e=_+aA|0)>>>0>>0?a+1|0:a)|0,a=tA+(D=(e=e+D|0)>>>0>>0?a+1|0:a)|0,x=F=e+z|0,F=a=F>>>0>>0?a+1|0:a,Y=_,a=UI(e^b,D^T,32),L=_=f,e=a,D=_,a=m+v|0,b=_=y+O|0,v=a=_>>>0>>0?a+1|0:a,a=a+D|0,a=(y=_+e|0)>>>0<_>>>0?a+1|0:a,_=y^Y,Y=a,D=UI(_,a^t,40),a=(T=f)+F|0,t=_=D+x|0,O=UI(_^e,L^(F=_>>>0>>0?a+1|0:a),48),a=UI(O^h,(IA=f)^n,32),MA=_=f,x=a,n=_,_=UI(r^b,v^hA,1),a=u+(r=f)|0,a=FA+((e=_+s|0)>>>0>>0?a+1|0:a)|0,a=(s=(e=e+QA|0)>>>0>>0?a+1|0:a)+GA|0,b=u=e+_A|0,u=a=u>>>0>>0?a+1|0:a,e=UI(e^U,s^CA,32),a=W+(v=f)|0,U=e,s=r,r=a=(e=w+e|0)>>>0>>0?a+1|0:a,s=UI(_^e,s^a,40),a=(CA=f)+u|0,w=_=s+b|0,_=UI(b=_^U,v^(U=_>>>0>>0?a+1|0:a),48),a=r+(m=f)|0,r=_,u=_=e+_|0,b=a=_>>>0>>0?a+1|0:a,a=a+n|0,W=a=(n=_+x|0)>>>0<_>>>0?a+1|0:a,e=UI(n^J,nA^a,40),a=Z+(v=f)|0,a=((_=e+h|0)>>>0>>0?a+1|0:a)+sA|0,h=_,Z=_=_+gA|0,J=a=h>>>0>_>>>0?a+1|0:a,L=BA,h=UI(S^l,q^AA,48),a=(hA=f)+K|0,S=_=h+G|0,a=UI(_^c,(G=_>>>0>>0?a+1|0:a)^H,1),H=c=f,_=a,a=F+Q|0,a=((t=t+g|0)>>>0>>0?a+1|0:a)+c|0,a=(t=(c=_+t|0)>>>0>>0?a+1|0:a)+L|0,K=F=c+j|0,F=a=F>>>0>>0?a+1|0:a,c=UI(c^r,t^m,32),a=R+(l=f)|0,p=a=(r=c+p|0)>>>0

>>0?a+1|0:a,t=UI(_^r,a^H,40),a=(q=f)+F|0,F=_=t+K|0,c=UI(_^c,l^(H=_>>>0>>0?a+1|0:a),48),a=p+(K=f)|0,l=a=(p=c+r|0)>>>0>>0?a+1|0:a,_=UI(t^p,q^a,1),a=(q=f)+J|0,a=wA+((r=_+Z|0)>>>0<_>>>0?a+1|0:a)|0,a=(t=(r=r+V|0)>>>0>>0?a+1|0:a)+N|0,nA=N=r+cA|0,N=a=N>>>0>>0?a+1|0:a,R=_,L=r,m=t,r=rA,_=UI(s^u,b^CA,1),a=d+(s=f)|0,a=((t=k)>>>0>(k=_+k|0)>>>0?a+1|0:a)+yA|0,a=GA+(t=(r=r+k|0)>>>0>>0?a+1|0:a)|0,d=k=r+_A|0,u=a=k>>>0<_A>>>0?a+1|0:a,k=_,t=a=UI(r^h,t^hA,32),a=Y+IA|0,a=(b=_=f)+(y=(_=y+O|0)>>>0>>0?a+1|0:a)|0,Y=a=(h=_+t|0)>>>0<_>>>0?a+1|0:a,k=UI(h^k,a^s,40),a=(IA=f)+u|0,u=UI(d=(r=k+d|0)^t,b^(t=r>>>0>>0?a+1|0:a),48),a=UI(u^L,(CA=f)^m,32),hA=s=f,d=a,b=s,_=UI(_^D,y^T,1),a=tA+(s=f)|0,a=U+((y=_+z|0)>>>0>>0?a+1|0:a)|0,a=FA+(w=(y=y+w|0)>>>0>>0?a+1|0:a)|0,L=D=y+QA|0,D=a=D>>>0>>0?a+1|0:a,U=_,O=s,y=UI(y^M,w^$,32),a=(M=f)+G|0,s=_=y+S|0,w=UI(_^U,(S=_>>>0>>0?a+1|0:a)^O,40),a=(T=f)+D|0,U=_=w+L|0,_=UI(_^y,M^(G=_>>>0>>0?a+1|0:a),48),a=S+(L=f)|0,D=_,S=_=s+_|0,M=a=_>>>0>>0?a+1|0:a,a=a+b|0,b=_=_+d|0,y=q,q=a=S>>>0>_>>>0?a+1|0:a,y=UI(_^R,y^a,40),a=(a=N)+(N=f)|0,O=_=y+nA|0,R=a=_>>>0>>0?a+1|0:a,s=t,_=UI(x^Z,J^MA,48),a=W+($=f)|0,W=_,t=(_=n+_|0)^e,e=a=_>>>0>>0?a+1|0:a,t=UI(t,a^v,1),a=(v=f)+s|0,a=B+((r=t+r|0)>>>0>>0?a+1|0:a)|0,a=(s=(r=r+fA|0)>>>0>>0?a+1|0:a)+P|0,Z=n=r+aA|0,n=a=n>>>0>>0?a+1|0:a,r=UI(r^D,s^L,32),a=l+(J=f)|0,l=r,p=a=(s=p+r|0)>>>0

>>0?a+1|0:a,t=UI(t^s,v^a,40),a=(a=n)+(n=f)|0,D=r=t+Z|0,r=UI(x=r^l,J^(l=r>>>0>>0?a+1|0:a),48),a=p+(nA=f)|0,v=r,Z=a=(p=s+r|0)>>>0>>0?a+1|0:a,r=UI(t^p,n^a,1),a=(n=f)+R|0,a=Q+((t=r+O|0)>>>0>>0?a+1|0:a)|0,a=X+(s=(t=t+g|0)>>>0>>0?a+1|0:a)|0,MA=J=I+t|0,J=a=J>>>0>>0?a+1|0:a,x=r,L=n,n=t,m=s,r=UI(w^S,M^T,1),a=(s=f)+H|0,a=DA+((t=r+F|0)>>>0>>0?a+1|0:a)|0,a=(w=(t=t+oA|0)>>>0>>0?a+1|0:a)+X|0,H=F=I+t|0,F=a=F>>>0>>0?a+1|0:a,S=r,t=a=UI(t^W,w^$,32),w=r=f,a=Y+CA|0,Y=a=(r=h+u|0)>>>0>>0?a+1|0:a,a=a+w|0,a=(h=r)>>>0>(r=r+t|0)>>>0?a+1|0:a,u=r,r^=S,S=a,s=UI(r,a^s,40),a=(T=f)+F|0,w=UI(F=(r=s+H|0)^t,w^(t=r>>>0>>0?a+1|0:a),48),a=UI(w^n,(a=m)^(m=f),32),$=n=f,F=a,H=e,e=c,a=UI(h^k,Y^IA,1),M=c=f,h=a,a=G+kA|0,a=((k=U+eA|0)>>>0>>0?a+1|0:a)+c|0,k=a=(c=h+k|0)>>>0>>0?a+1|0:a,e=UI(c^e,a^K,32),a=(a=H)+(H=f)|0,h=UI((_=e+_|0)^h,M^(Y=_>>>0>>0?a+1|0:a),40),a=k+(IA=f)|0,U=h,a=SA+((G=c)>>>0>(c=c+h|0)>>>0?a+1|0:a)|0,G=a=(h=c+iA|0)>>>0>>0?a+1|0:a,c=UI(e^h,H^a,48),a=Y+(CA=f)|0,K=_,e=c,Y=_=_+c|0,H=a=K>>>0>_>>>0?a+1|0:a,a=a+n|0,K=a=(n=_+F|0)>>>0<_>>>0?a+1|0:a,_=(k=UI(n^x,a^L,40))+MA|0,a=(MA=f)+J|0,M=_,W=_>>>0>>0?a+1|0:a,_=UI(d^O,R^hA,48),a=(d=f)+q|0,b=c=_+b|0,x=N,N=a=c>>>0<_>>>0?a+1|0:a,a=UI(c^y,x^a,1),O=c=f,y=a,a=t+B|0,a=((r=r+fA|0)>>>0>>0?a+1|0:a)+c|0,a=wA+(r=(c=r+y|0)>>>0>>0?a+1|0:a)|0,R=t=c+V|0,t=a=t>>>0>>0?a+1|0:a,c=UI(c^e,r^CA,32),a=Z+(J=f)|0,q=c,c=(e=p+c|0)^y,y=a=e>>>0

>>0?a+1|0:a,r=UI(c,O^a,40),a=(a=t)+(t=f)|0,O=c=r+R|0,c=UI(p=c^q,J^(q=c>>>0>>0?a+1|0:a),48),a=y+(CA=f)|0,Z=c,e=a=(c=e+c|0)>>>0>>0?a+1|0:a,r=UI(c^r,t^a,1),a=(p=f)+W|0,a=pA+((t=r+M|0)>>>0>>0?a+1|0:a)|0,a=(y=(t=t+EA|0)>>>0>>0?a+1|0:a)+BA|0,AA=R=t+j|0,R=a=R>>>0>>0?a+1|0:a,J=r,x=t,L=y,r=UI(U^Y,H^IA,1),a=(H=f)+sA|0,a=l+(r>>>0>(t=r+gA|0)>>>0?a+1|0:a)|0,y=a=(t=t+D|0)>>>0>>0?a+1|0:a,a=UI(_^t,a^d,32),d=_=f,D=a,a=S+m|0,a=(_=w+u|0)>>>0>>0?a+1|0:a,w=_,Y=a,a=d+a|0,S=_=_+D|0,U=a=w>>>0>_>>>0?a+1|0:a,_=UI(_^r,H^a,40),a=y+(m=f)|0,u=_,a=tA+((_=t+_|0)>>>0>>0?a+1|0:a)|0,a=(_=_+z|0)>>>0>>0?a+1|0:a,H=_,_^=D,D=a,y=UI(_,d^a,48),a=UI(y^x,(a=L)^(L=f),32),IA=_=f,d=a,l=_,_=UI(s^w,Y^T,1),a=kA+(t=f)|0,a=G+((r=_+eA|0)>>>0>>0?a+1|0:a)|0,a=(s=(r=r+h|0)>>>0>>0?a+1|0:a)+P|0,G=w=r+aA|0,w=a=w>>>0>>0?a+1|0:a,h=_,Y=t,_=(r=UI(r^v,s^nA,32))+b|0,a=(b=f)+N|0,t=_,s=UI(s=_^h,(h=_>>>0>>0?a+1|0:a)^Y,40),a=(T=f)+w|0,w=_=s+G|0,r=UI(_^r,b^(N=_>>>0>>0?a+1|0:a),48),a=h+(Y=f)|0,G=_=r+t|0,b=a=_>>>0>>0?a+1|0:a,a=a+l|0,l=a=(h=_+d|0)>>>0<_>>>0?a+1|0:a,t=UI(h^J,a^p,40),a=(v=f)+R|0,R=_=t+AA|0,J=a=_>>>0>>0?a+1|0:a,_=c,p=e,e=r,c=UI(F^M,W^$,48),a=K+(AA=f)|0,F=c,n=a=(r=n+c|0)>>>0>>0?a+1|0:a,a=UI(r^k,MA^a,1),K=c=f,k=a,a=D+NA|0,a=((D=H+cA|0)>>>0>>0?a+1|0:a)+c|0,D=a=(c=D+k|0)>>>0>>0?a+1|0:a,e=UI(c^e,a^Y,32),a=(H=f)+p|0,k=UI((_=e+_|0)^k,K^(p=_>>>0>>0?a+1|0:a),40),a=D+(M=f)|0,a=FA+((D=c)>>>0>(c=c+k|0)>>>0?a+1|0:a)|0,Y=a=(D=c+QA|0)>>>0>>0?a+1|0:a,c=UI(e^D,H^a,48),a=p+($=f)|0,H=c,K=a=(p=_+c|0)>>>0<_>>>0?a+1|0:a,_=UI(p^k,M^a,1),a=(k=f)+J|0,a=DA+((c=_+R|0)>>>0<_>>>0?a+1|0:a)|0,a=pA+(e=(c=c+oA|0)>>>0>>0?a+1|0:a)|0,hA=M=c+EA|0,M=a=M>>>0>>0?a+1|0:a,W=_,x=c,_=UI(s^G,b^T,1),a=(s=f)+q|0,a=GA+((c=_+O|0)>>>0<_>>>0?a+1|0:a)|0,a=SA+(G=(c=c+_A|0)>>>0<_A>>>0?a+1|0:a)|0,O=b=c+iA|0,b=a=b>>>0>>0?a+1|0:a,q=_,a=UI(c^F,G^AA,32),AA=_=f,c=a,a=U+L|0,S=_=y+S|0,F=a=_>>>0>>0?a+1|0:a,a=AA+a|0,U=a=(y=_+c|0)>>>0<_>>>0?a+1|0:a,s=UI(y^q,a^s,40),a=(L=f)+b|0,G=_=s+O|0,q=UI(_^c,AA^(b=_>>>0>>0?a+1|0:a),48),a=UI(q^x,(AA=f)^e,32),T=_=f,O=a,e=_,c=rA,_=UI(S^u,F^m,1),a=N+(F=f)|0,a=((S=w)>>>0>(w=_+w|0)>>>0?a+1|0:a)+yA|0,a=DA+(w=(c=c+w|0)>>>0>>0?a+1|0:a)|0,S=N=c+oA|0,N=a=N>>>0>>0?a+1|0:a,c=UI(c^Z,w^CA,32),a=n+(u=f)|0,n=c,a=(c=r+c|0)>>>0>>0?a+1|0:a,r=F,F=a,r=UI(_^c,r^a,40),a=(m=f)+N|0,w=_=r+S|0,_=UI(_^n,u^(N=_>>>0>>0?a+1|0:a),48),a=F+(x=f)|0,F=_,S=_=c+_|0,u=a=_>>>0>>0?a+1|0:a,a=a+e|0,a=(n=_+O|0)>>>0<_>>>0?a+1|0:a,_=n^W,W=a,k=UI(_,a^k,40),a=(CA=f)+M|0,M=_=k+hA|0,Z=_>>>0>>0?a+1|0:a,_=UI(d^R,J^IA,48),a=l+(IA=f)|0,d=_,a=(_=h+_|0)>>>0>>0?a+1|0:a,h=_,l=a,a=UI(_^t,a^v,1),v=_=f,e=a,a=b+wA|0,a=((c=G+V|0)>>>0>>0?a+1|0:a)+_|0,a=FA+(c=(_=c+e|0)>>>0>>0?a+1|0:a)|0,G=t=_+QA|0,t=a=t>>>0>>0?a+1|0:a,_=UI(_^F,c^x,32),a=K+(b=f)|0,F=_,p=a=(c=p+_|0)>>>0

>>0?a+1|0:a,e=UI(c^e,v^a,40),a=(v=f)+t|0,G=_=e+G|0,_=UI(t=_^F,b^(F=_>>>0>>0?a+1|0:a),48),a=p+(hA=f)|0,p=_,K=a=(t=c+_|0)>>>0>>0?a+1|0:a,_=UI(t^e,v^a,1),a=(b=f)+Z|0,a=kA+((c=_+M|0)>>>0<_>>>0?a+1|0:a)|0,a=(e=(c=c+eA|0)>>>0>>0?a+1|0:a)+sA|0,nA=v=c+gA|0,v=a=v>>>0>>0?a+1|0:a,R=_,J=c,x=e,_=UI(r^S,m^u,1),a=GA+(e=f)|0,a=Y+((c=_+_A|0)>>>0<_A>>>0?a+1|0:a)|0,a=NA+(r=(c=c+D|0)>>>0>>0?a+1|0:a)|0,u=D=c+cA|0,D=a=D>>>0>>0?a+1|0:a,Y=_,S=e,a=UI(c^d,r^IA,32),d=_=f,r=a,c=_,a=U+AA|0,a=(_=y+q|0)>>>0>>0?a+1|0:a,y=_,U=a,a=a+c|0,a=(e=_+r|0)>>>0<_>>>0?a+1|0:a,_=e^Y,Y=a,_=UI(_,a^S,40),a=(a=D)+(D=f)|0,S=c=_+u|0,u=a=c>>>0<_>>>0?a+1|0:a,d=UI(c^r,d^a,48),a=UI(d^J,(a=x)^(x=f),32),m=c=f,q=a,c=UI(y^s,U^L,1),a=(y=f)+yA|0,a=N+((r=c+rA|0)>>>0>>0?a+1|0:a)|0,a=B+(s=(r=r+w|0)>>>0>>0?a+1|0:a)|0,L=w=r+fA|0,w=a=w>>>0>>0?a+1|0:a,N=c,U=y,r=UI(r^H,s^$,32),a=(H=f)+l|0,y=c=r+h|0,c=(s=UI(c^N,(h=c>>>0>>0?a+1|0:a)^U,40))+L|0,a=(L=f)+w|0,N=c,c=UI(c^r,H^(U=c>>>0>>0?a+1|0:a),48),a=h+(AA=f)|0,H=c,l=c=y+c|0,J=a=c>>>0>>0?a+1|0:a,a=m+a|0,a=(r=c+q|0)>>>0>>0?a+1|0:a,c=b,b=a,y=UI(r^R,c^a,40),a=(IA=f)+v|0,w=c=y+nA|0,a=UI(c^q,m^(v=c>>>0>>0?a+1|0:a),48),m=c=f,q=a,c=_,a=Y+x|0,Y=_=e+d|0,d=a=_>>>0>>0?a+1|0:a,a=UI(_^c,a^D,1),e=c=f,_=a,a=U+Q|0,a=((h=N+g|0)>>>0>>0?a+1|0:a)+c|0,a=tA+(h=(c=_+h|0)>>>0>>0?a+1|0:a)|0,x=D=c+z|0,D=a=D>>>0>>0?a+1|0:a,N=_,U=e,_=UI(M^O,Z^T,48),a=W+(T=f)|0,M=_,a=(_=n+_|0)>>>0>>0?a+1|0:a,n=_,c=UI(c^p,h^hA,32),W=a,a=a+(O=f)|0,e=_=c+_|0,h=UI(_^N,(p=_>>>0>>0?a+1|0:a)^U,40),a=(Z=f)+D|0,D=_=h+x|0,_=UI(_^c,O^(N=_>>>0>>0?a+1|0:a),48),a=p+($=f)|0,U=_,O=a=(p=e+_|0)>>>0>>0?a+1|0:a,_=UI(h^p,Z^a,1),a=FA+(x=f)|0,Z=_,hA=_=QA+_|0,e=a=_>>>0>>0?a+1|0:a,_=UI(k^n,W^CA,1),a=(h=f)+u|0,a=SA+((c=_+S|0)>>>0<_>>>0?a+1|0:a)|0,a=BA+(n=(c=c+iA|0)>>>0>>0?a+1|0:a)|0,W=k=c+j|0,k=a=k>>>0>>0?a+1|0:a,S=h,c=UI(c^H,n^AA,32),a=K+(AA=f)|0,u=c,a=(h=t+c|0)>>>0>>0?a+1|0:a,t=S,S=a,n=UI(_^h,t^a,40),a=(CA=f)+k|0,H=_=n+W|0,a=(K=_>>>0>>0?a+1|0:a)+e|0,k=a=(e=_+hA|0)>>>0<_>>>0?a+1|0:a,W=a=UI(e^q,a^m,32),R=_=f,_=UI(s^l,J^L,1),a=(t=f)+F|0,a=X+((c=_+G|0)>>>0<_>>>0?a+1|0:a)|0,a=(s=(c=I+c|0)>>>0>>0?a+1|0:a)+P|0,J=F=c+aA|0,F=a=F>>>0>>0?a+1|0:a,G=_,l=t,c=UI(c^M,s^T,32),a=(M=f)+d|0,t=_=c+Y|0,_=(s=UI(_^G,(Y=_>>>0>>0?a+1|0:a)^l,40))+J|0,a=(J=f)+F|0,F=_,_=UI(_^c,M^(G=_>>>0>>0?a+1|0:a),48),a=Y+(T=f)|0,Y=_,M=a=(_=t+_|0)>>>0>>0?a+1|0:a,a=a+R|0,d=a=(t=_)>>>0>(_=_+W|0)>>>0?a+1|0:a,c=UI(_^Z,x^a,40),a=k+(x=f)|0,l=c,a=Q+((c=e+c|0)>>>0>>0?a+1|0:a)|0,Z=c=c+g|0,e=c^W,W=a=c>>>0>>0?a+1|0:a,c=UI(e,R^a,48),a=d+(R=f)|0,d=a=(k=_+c|0)>>>0<_>>>0?a+1|0:a,_=a=UI(k^l,x^a,1),l=e=f,e=UI(t^s,M^J,1),a=N+(s=f)|0,a=SA+((t=e+D|0)>>>0>>0?a+1|0:a)|0,a=DA+(D=(t=t+iA|0)>>>0>>0?a+1|0:a)|0,x=N=t+oA|0,N=a=N>>>0>>0?a+1|0:a,M=e,J=s,a=b+m|0,a=(e=r+q|0)>>>0>>0?a+1|0:a,b=e,u=UI(H^u,K^AA,48),s=UI(t^u,D^(AA=f),32),H=a,a=a+(hA=f)|0,D=e=s+e|0,e=UI(e^M,(K=e>>>0>>0?a+1|0:a)^J,40),a=(M=f)+N|0,J=a=(r=e+x|0)>>>0>>0?a+1|0:a,a=a+l|0,a=B+((q=r)>>>0>(r=_+r|0)>>>0?a+1|0:a)|0,a=(t=(r=r+fA|0)>>>0>>0?a+1|0:a)+yA|0,nA=N=r+rA|0,x=a=N>>>0>>0?a+1|0:a,L=_,m=r,a=UI(y^b,H^IA,1),y=r=f,_=a,a=G+GA|0,a=((N=F+_A|0)>>>0<_A>>>0?a+1|0:a)+r|0,a=tA+(N=(r=_+N|0)>>>0>>0?a+1|0:a)|0,H=F=r+z|0,F=a=F>>>0>>0?a+1|0:a,G=_,a=UI(r^U,N^$,32),b=_=f,r=a,N=_,a=S+AA|0,S=_=h+u|0,U=a=_>>>0>>0?a+1|0:a,a=a+N|0,a=(h=_+r|0)>>>0<_>>>0?a+1|0:a,_=h^G;G=a,N=UI(_,a^y,40),a=(AA=f)+F|0,u=UI(F=(_=N+H|0)^r,b^(r=_>>>0>>0?a+1|0:a),48),a=UI(a=u^m,(m=f)^t,32),IA=t=f,H=a,F=t,t=UI(n^S,U^CA,1),a=BA+(n=f)|0,a=v+((y=t+j|0)>>>0>>0?a+1|0:a)|0,a=kA+(w=(y=y+w|0)>>>0>>0?a+1|0:a)|0,U=S=y+eA|0,S=a=S>>>0>>0?a+1|0:a,y=UI(y^Y,w^T,32),a=O+(b=f)|0,Y=y,p=a=(y=p+y|0)>>>0

>>0?a+1|0:a,w=UI(t^y,a^n,40),a=(T=f)+S|0,n=t=w+U|0,t=UI(S=t^Y,b^(Y=t>>>0>>0?a+1|0:a),48),a=p+($=f)|0,S=t,U=t=y+t|0,b=a=t>>>0>>0?a+1|0:a,a=a+F|0,a=(y=t+H|0)>>>0>>0?a+1|0:a,t=l,l=a,p=UI(y^L,t^a,40),a=(v=f)+x|0,F=t=p+nA|0,t=UI(x=t^H,IA^(H=t>>>0

>>0?a+1|0:a),48),a=l+(IA=f)|0,l=t,y=a=(t=y+t|0)>>>0>>0?a+1|0:a,v=a=UI(t^p,v^a,1),CA=a,O=p=f,p=r,r=e,e=UI(s^q,J^hA,48),a=K+(hA=f)|0,K=e,a=(e=D+e|0)>>>0>>0?a+1|0:a,D=_,_=r^e,r=a,_=UI(_,a^M,1),a=(M=f)+p|0,a=NA+(_>>>0>(s=D+_|0)>>>0?a+1|0:a)|0,a=sA+(D=(s=s+cA|0)>>>0>>0?a+1|0:a)|0,q=p=s+gA|0,p=a=p>>>0>>0?a+1|0:a,s=UI(s^S,D^$,32),a=d+(J=f)|0,S=a=(D=s+k|0)>>>0>>0?a+1|0:a,k=UI(_^D,M^a,40),a=($=f)+p|0,M=_=k+q|0,s=UI(_^s,J^(d=_>>>0>>0?a+1|0:a),48),a=S+(q=f)|0,J=_=s+D|0,S=_,x=a=_>>>0>>0?a+1|0:a,D=e,p=r,a=G+m|0,a=(_=h+u|0)>>>0>>0?a+1|0:a,h=_,_^=N,N=a,a=UI(_,AA^a,1),L=_=f,G=a,r=a,a=Y+P|0,a=((e=n+aA|0)>>>0>>0?a+1|0:a)+_|0,n=a=(_=e)>>>0>(e=r+e|0)>>>0?a+1|0:a,r=UI(c^e,a^R,32),a=(a=p)+(p=f)|0,u=_=r+D|0,c=UI(c=_^G,L^(G=_>>>0>>0?a+1|0:a),40),a=n+(R=f)|0,a=wA+((_=c+e|0)>>>0>>0?a+1|0:a)|0,L=a=(D=_+V|0)>>>0>>0?a+1|0:a,p=UI(r^D,p^a,48),nA=a=f,_=UI(w^U,b^T,1),a=(r=f)+W|0,a=pA+((e=_+Z|0)>>>0<_>>>0?a+1|0:a)|0,a=X+(w=(e=e+EA|0)>>>0>>0?a+1|0:a)|0,W=n=I+e|0,U=a=n>>>0>>0?a+1|0:a,b=_,n=UI(e^K,w^hA,32),a=(T=f)+N|0,N=_=n+h|0,e=UI(_^b,(K=_>>>0>>0?a+1|0:a)^r,40),a=(a=U)+(U=f)|0,b=_=e+W|0,W=a=_>>>0>>0?a+1|0:a,r=a,a=X+O|0,a=((w=I+v|0)>>>0>>0?a+1|0:a)+r|0,Y=a=(r=_+w|0)>>>0>>0?a+1|0:a,_=UI(r^p,nA^a,32),a=(v=f)+x|0,h=UI((w=_+S|0)^CA,(a=w>>>0<_>>>0?a+1|0:a)^O,40),O=a,a=sA+(S=f)|0,a=Y+((Z=h+gA|0)>>>0>>0?a+1|0:a)|0,a=(Y=r+Z|0)>>>0>>0?a+1|0:a,r=v,v=a,r=UI(_^Y,r^a,48),a=(a=O)+(O=f)|0,_=h^(w=r+w|0),h=a=w>>>0>>0?a+1|0:a,Z=a=UI(_,a^S,1),CA=a,m=_=f,S=t,AA=y,t=e,e=UI(n^b,W^T,48),a=K+(b=f)|0,n=_=e+N|0,N=a=_>>>0>>0?a+1|0:a,t=UI(_^t,a^U,1),a=(W=f)+NA|0,a=L+((_=t+cA|0)>>>0>>0?a+1|0:a)|0,D=a=(y=_+D|0)>>>0>>0?a+1|0:a,_=UI(y^s,a^q,32),a=(U=f)+AA|0,S=s=_+S|0,K=a=s>>>0<_>>>0?a+1|0:a,t=UI(t^s,a^W,40),a=DA+(hA=f)|0,W=t,a=D+((t=oA+t|0)>>>0>>0?a+1|0:a)|0,y=a=(t=t+y|0)>>>0>>0?a+1|0:a,s=UI(_^t,a^U,48),a=(a=K)+(K=f)|0,q=_=s+S|0,U=_,L=a=_>>>0>>0?a+1|0:a,a=G+nA|0,S=(_=p+u|0)^c,c=a=_>>>0

>>0?a+1|0:a,a=UI(S,a^R,1),R=D=f,S=a,a=d+tA|0,a=((p=M+z|0)>>>0>>0?a+1|0:a)+D|0,G=a=(G=p)>>>0>(p=p+S|0)>>>0?a+1|0:a,u=D=UI(p^l,IA^a,32),M=a=f,a=a+N|0,d=D=D+n|0,l=a=u>>>0>D>>>0?a+1|0:a,D=UI(D^S,R^a,40),a=yA+(R=f)|0,a=G+((n=D+rA|0)>>>0>>0?a+1|0:a)|0,n=a=(S=p)>>>0>(p=p+n|0)>>>0?a+1|0:a,S=UI(p^u,a^M,48),IA=a=f,N=a,k=UI(k^J,x^$,1),G=a=f,u=e,a=a+P|0,a=H+((e=k+aA|0)>>>0>>0?a+1|0:a)|0,a=(e=e+F|0)>>>0>>0?a+1|0:a,F=e^u,u=a,F=UI(F,a^b,32),a=($=f)+c|0,H=_=F+_|0,c=UI(_^k,(c=G)^(G=_>>>0>>0?a+1|0:a),40),a=pA+(M=f)|0,a=u+((_=c+EA|0)>>>0>>0?a+1|0:a)|0,u=_=_+e|0,b=a=_>>>0>>0?a+1|0:a,e=a,a=m+SA|0,a=((k=Z+iA|0)>>>0>>0?a+1|0:a)+e|0,Z=a=(e=_+k|0)>>>0>>0?a+1|0:a,_=UI(e^S,a^N,32),a=(J=f)+L|0,N=UI((k=_+U|0)^CA,(a=k>>>0<_>>>0?a+1|0:a)^m,40),x=U=f,m=a,a=U+kA|0,a=Z+((U=N+eA|0)>>>0>>0?a+1|0:a)|0,Z=a=(U=e+U|0)>>>0>>0?a+1|0:a,e=UI(_^U,a^J,48),a=(J=f)+m|0,_=(k=e+k|0)^N,N=a=k>>>0>>0?a+1|0:a,x=a=UI(_,a^x,1),m=_=f,AA=w,T=s,s=c,c=UI(F^u,b^$,48),a=(F=f)+G|0,G=_=c+H|0,u=a=_>>>0>>0?a+1|0:a,s=UI(_^s,a^M,1),a=(M=f)+FA|0,a=((_=s+QA|0)>>>0>>0?a+1|0:a)+n|0,p=a=(w=_+p|0)>>>0<_>>>0?a+1|0:a,_=UI(w^T,a^K,32),a=(n=f)+h|0,H=h=_+AA|0,K=a=h>>>0<_>>>0?a+1|0:a,s=UI(s^h,a^M,40),a=B+(T=f)|0,M=s,a=p+((s=fA+s|0)>>>0>>0?a+1|0:a)|0,b=a=(h=s+w|0)>>>0>>0?a+1|0:a,s=UI(_^h,a^n,48),a=(a=K)+(K=f)|0,H=_=s+H|0,AA=a=_>>>0>>0?a+1|0:a,p=r,w=t,a=l+IA|0,r=a=(_=S+d|0)>>>0>>0?a+1|0:a,t=UI(_^D,a^R,1),a=(D=f)+BA|0,a=((n=t+j|0)>>>0>>0?a+1|0:a)+y|0,y=UI(p^(w=w+n|0),(a=w>>>0>>0?a+1|0:a)^O,32),n=a,S=t,a=(p=f)+u|0,a=(t=y+G|0)>>>0>>0?a+1|0:a,G=t,t^=S,S=a,t=UI(t,a^D,40),a=Q+(u=f)|0,a=((D=t+g|0)>>>0>>0?a+1|0:a)+n|0,d=a=(n=D)>>>0>(D=D+w|0)>>>0?a+1|0:a,p=UI(y^D,a^p,48),IA=a=f,w=a,y=UI(q^W,L^hA,1),l=a=f,W=r,a=a+wA|0,a=v+((r=y+V|0)>>>0>>0?a+1|0:a)|0,n=F,F=a=(r=r+Y|0)>>>0>>0?a+1|0:a,n=UI(c^r,n^a,32),a=($=f)+W|0,Y=_=n+_|0,c=UI(_^y,(c=l)^(l=_>>>0>>0?a+1|0:a),40),a=GA+(W=f)|0,a=F+((_=c+_A|0)>>>0<_A>>>0?a+1|0:a)|0,v=_=_+r|0,q=a=_>>>0>>0?a+1|0:a,r=a,a=m+tA|0,a=((y=z+x|0)>>>0>>0?a+1|0:a)+r|0,F=a=(r=_+y|0)>>>0>>0?a+1|0:a,_=UI(r^p,a^w,32),a=(O=f)+AA|0,w=UI((y=_+H|0)^x,(a=y>>>0<_>>>0?a+1|0:a)^m,40),x=a,a=P+(R=f)|0,a=F+((L=w+aA|0)>>>0>>0?a+1|0:a)|0,a=(F=r+L|0)>>>0>>0?a+1|0:a,r=O,O=a,r=UI(_^F,r^a,48),a=(a=x)+(x=f)|0,_=(y=r+y|0)^w,w=a=y>>>0>>0?a+1|0:a,R=a=UI(_,a^R,1),L=_=f,m=s,s=c,c=UI(n^v,q^$,48),a=(a=l)+(l=f)|0,Y=_=c+Y|0,n=W,W=a=_>>>0>>0?a+1|0:a,s=UI(_^s,n^a,1),a=(v=f)+kA|0,a=d+((_=s+eA|0)>>>0>>0?a+1|0:a)|0,n=D,D=_+D|0,_=K,K=a=n>>>0>D>>>0?a+1|0:a,_=UI(D^m,_^a,32),a=(a=N)+(N=f)|0,d=a=(n=_+k|0)>>>0<_>>>0?a+1|0:a,k=n,s=UI(s^n,a^v,40),a=wA+($=f)|0,v=s,a=K+((s=V+s|0)>>>0>>0?a+1|0:a)|0,K=a=(n=s+D|0)>>>0>>0?a+1|0:a,s=UI(_^n,a^N,48),a=(a=d)+(d=f)|0,q=_=s+k|0,m=a=_>>>0>>0?a+1|0:a,k=e,a=S+IA|0,e=a=(_=p+G|0)>>>0

>>0?a+1|0:a,t=UI(_^t,a^u,1),a=sA+(p=f)|0,a=b+((D=t+gA|0)>>>0>>0?a+1|0:a)|0,S=(D=h+D|0)^k,k=a=D>>>0>>0?a+1|0:a,h=UI(S,a^J,32),N=a=f,S=t,a=a+W|0,a=(t=h+Y|0)>>>0>>0?a+1|0:a,G=t,t^=S,S=a,t=UI(t,a^p,40),a=Q+(u=f)|0,a=k+((p=t+g|0)>>>0>>0?a+1|0:a)|0,b=a=(p=D+p|0)>>>0>>0?a+1|0:a,k=UI(h^p,a^N,48),IA=a=f,D=a,h=UI(M^H,T^AA,1),Y=a=f,H=e,a=a+B|0,a=Z+((e=h+fA|0)>>>0>>0?a+1|0:a)|0,U=a=(e=e+U|0)>>>0>>0?a+1|0:a,N=UI(c^e,a^l,32),a=(CA=f)+H|0,H=_=N+_|0,c=UI(_^h,(M=_>>>0>>0?a+1|0:a)^Y,40),a=X+(l=f)|0,a=U+((_=I+c|0)>>>0>>0?a+1|0:a)|0,U=_=_+e|0,W=a=_>>>0>>0?a+1|0:a,e=a,a=L+pA|0,a=((h=R+EA|0)>>>0>>0?a+1|0:a)+e|0,Y=a=(e=_+h|0)>>>0>>0?a+1|0:a,_=UI(e^k,a^D,32),a=(Z=f)+m|0,D=UI((h=_+q|0)^R,(a=h>>>0<_>>>0?a+1|0:a)^L,40),J=a,a=NA+(R=f)|0,a=Y+((L=D+cA|0)>>>0>>0?a+1|0:a)|0,a=(Y=e+L|0)>>>0>>0?a+1|0:a,e=Z,Z=a,e=UI(_^Y,e^a,48),a=(a=J)+(J=f)|0,_=(h=e+h|0)^D,D=a=h>>>0>>0?a+1|0:a,R=a=UI(_,a^R,1),hA=a,L=_=f,AA=y,T=s,y=c,c=UI(N^U,W^CA,48),a=(N=f)+M|0,U=_=c+H|0,H=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^l,1),a=(l=f)+yA|0,a=b+((_=y+rA|0)>>>0>>0?a+1|0:a)|0,p=a=(s=_+p|0)>>>0

>>0?a+1|0:a,_=UI(s^T,a^d,32),a=(M=f)+w|0,d=a=(w=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^w,a^l,40),a=FA+(CA=f)|0,b=y,a=p+((y=QA+y|0)>>>0>>0?a+1|0:a)|0,p=y+s|0,y=M,M=a=p>>>0>>0?a+1|0:a,y=UI(_^p,y^a,48),a=(a=d)+(d=f)|0,l=_=y+w|0,W=a=_>>>0>>0?a+1|0:a,s=r,a=S+IA|0,r=a=(_=k+G|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^u,1),a=(k=f)+GA|0,a=K+((w=t+_A|0)>>>0>>0?a+1|0:a)|0,s=UI(s^(w=w+n|0),(a=w>>>0>>0?a+1|0:a)^x,32),S=n=f,n=a,G=t,a=S+H|0,a=(t=s+U|0)>>>0>>0?a+1|0:a,U=t,t^=G,G=a,t=UI(t,a^k,40),a=DA+(u=f)|0,a=((k=t+oA|0)>>>0>>0?a+1|0:a)+n|0,K=S,S=a=(n=w+k|0)>>>0>>0?a+1|0:a,k=UI(s^n,K^a,48),IA=a=f,w=a,s=UI(q^v,m^$,1),H=a=f,K=r,a=a+BA|0,a=O+((r=s+j|0)>>>0>>0?a+1|0:a)|0,F=a=(r=r+F|0)>>>0>>0?a+1|0:a,N=UI(c^r,a^N,32),a=($=f)+K|0,K=_=N+_|0,c=UI(_^s,(c=H)^(H=_>>>0>>0?a+1|0:a),40),a=SA+(v=f)|0,a=F+((_=c+iA|0)>>>0>>0?a+1|0:a)|0,q=_=_+r|0,O=a=_>>>0>>0?a+1|0:a,r=a,a=L+Q|0,a=((s=R+g|0)>>>0>>0?a+1|0:a)+r|0,F=a=(r=_+s|0)>>>0>>0?a+1|0:a,_=UI(r^k,a^w,32),a=(R=f)+W|0,w=UI((s=_+l|0)^hA,(a=s>>>0<_>>>0?a+1|0:a)^L,40),L=a,a=kA+(x=f)|0,a=F+((m=w+eA|0)>>>0>>0?a+1|0:a)|0,a=(F=r+m|0)>>>0>>0?a+1|0:a,r=R,R=a,r=UI(_^F,r^a,48),a=(a=L)+(L=f)|0,_=(s=r+s|0)^w,w=a=s>>>0>>0?a+1|0:a,x=a=UI(_,a^x,1),m=_=f,AA=h,T=y,y=c,c=UI(N^q,O^$,48),a=(N=f)+H|0,H=_=c+K|0,K=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^v,1),a=(v=f)+FA|0,a=S+((_=y+QA|0)>>>0>>0?a+1|0:a)|0,n=a=(h=_+n|0)>>>0>>0?a+1|0:a,_=UI(h^T,a^d,32),a=(S=f)+D|0,d=a=(D=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^D,a^v,40),a=BA+($=f)|0,v=y,a=n+((y=j+y|0)>>>0>>0?a+1|0:a)|0,n=y+h|0,y=S,S=a=n>>>0>>0?a+1|0:a,y=UI(_^n,y^a,48),a=(a=d)+(d=f)|0,q=_=y+D|0,O=a=_>>>0>>0?a+1|0:a,h=e,a=G+IA|0,e=a=(_=k+U|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^u,1),a=SA+(k=f)|0,a=M+((D=t+iA|0)>>>0>>0?a+1|0:a)|0,p=a=(D=D+p|0)>>>0

>>0?a+1|0:a,h=UI(h^D,a^J,32),U=a=f,G=t,a=a+K|0,a=(t=h+H|0)>>>0>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=pA+(H=f)|0,a=p+((k=t+EA|0)>>>0>>0?a+1|0:a)|0,a=(p=D+k|0)>>>0>>0?a+1|0:a,D=U,U=a,k=UI(h^p,D^a,48),IA=a=f,D=a,h=UI(b^l,W^CA,1),K=a=f,M=e,a=a+X|0,a=Z+((e=I+h|0)>>>0>>0?a+1|0:a)|0,Y=a=(e=e+Y|0)>>>0>>0?a+1|0:a,N=UI(c^e,a^N,32),a=(CA=f)+M|0,M=_=N+_|0,c=UI(_^h,(c=K)^(K=_>>>0>>0?a+1|0:a),40),a=wA+(b=f)|0,a=Y+((_=c+V|0)>>>0>>0?a+1|0:a)|0,l=_=_+e|0,W=a=_>>>0>>0?a+1|0:a,e=a,a=m+sA|0,a=((h=x+gA|0)>>>0>>0?a+1|0:a)+e|0,Y=a=(e=_+h|0)>>>0>>0?a+1|0:a,_=UI(e^k,a^D,32),a=(Z=f)+O|0,D=UI((h=_+q|0)^x,(a=h>>>0<_>>>0?a+1|0:a)^m,40),x=a,a=B+(J=f)|0,a=Y+((m=D+fA|0)>>>0>>0?a+1|0:a)|0,a=(Y=e+m|0)>>>0>>0?a+1|0:a,e=Z,Z=a,e=UI(_^Y,e^a,48),a=(a=x)+(x=f)|0,_=(h=e+h|0)^D,D=a=h>>>0>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=s,T=y,y=c,c=UI(N^l,W^CA,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^b,1),a=(b=f)+tA|0,a=U+((_=y+z|0)>>>0>>0?a+1|0:a)|0,p=a=(s=_+p|0)>>>0

>>0?a+1|0:a,_=UI(s^T,a^d,32),a=(U=f)+w|0,d=a=(w=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^w,a^b,40),a=GA+(CA=f)|0,b=y,a=p+((y=_A+y|0)>>>0<_A>>>0?a+1|0:a)|0,p=y+s|0,y=U,U=a=p>>>0>>0?a+1|0:a,y=UI(_^p,y^a,48),a=(a=d)+(d=f)|0,l=_=y+w|0,W=a=_>>>0>>0?a+1|0:a,s=r,a=G+IA|0,r=a=(_=k+u|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^H,1),a=(k=f)+DA|0,a=S+((w=t+oA|0)>>>0>>0?a+1|0:a)|0,n=a=(w=w+n|0)>>>0>>0?a+1|0:a,s=UI(s^w,a^L,32),S=a=f,G=t,a=a+M|0,a=(t=s+K|0)>>>0>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=yA+(H=f)|0,a=n+((k=t+rA|0)>>>0>>0?a+1|0:a)|0,K=S,S=a=(n=w+k|0)>>>0>>0?a+1|0:a,k=UI(s^n,K^a,48),IA=a=f,w=a,s=UI(q^v,O^$,1),K=a=f,M=r,a=a+P|0,a=R+((r=s+aA|0)>>>0>>0?a+1|0:a)|0,F=a=(r=r+F|0)>>>0>>0?a+1|0:a,N=UI(c^r,a^N,32),a=($=f)+M|0,M=_=N+_|0,c=UI(_^s,(c=K)^(K=_>>>0>>0?a+1|0:a),40),a=NA+(v=f)|0,a=F+((_=c+cA|0)>>>0>>0?a+1|0:a)|0,q=_=_+r|0,O=a=_>>>0>>0?a+1|0:a,r=a,a=m+B|0,a=((s=J+fA|0)>>>0>>0?a+1|0:a)+r|0,F=a=(r=_+s|0)>>>0>>0?a+1|0:a,_=UI(r^k,a^w,32),a=(R=f)+W|0,w=UI((s=_+l|0)^J,(a=s>>>0<_>>>0?a+1|0:a)^m,40),L=a,a=SA+(J=f)|0,a=F+((m=w+iA|0)>>>0>>0?a+1|0:a)|0,a=(F=r+m|0)>>>0>>0?a+1|0:a,r=R,R=a,r=UI(_^F,r^a,48),a=(a=L)+(L=f)|0,_=(s=r+s|0)^w,w=a=s>>>0>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=h,T=y,y=c,c=UI(N^q,O^$,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^v,1),a=(v=f)+P|0,a=S+((_=y+aA|0)>>>0>>0?a+1|0:a)|0,n=a=(h=_+n|0)>>>0>>0?a+1|0:a,_=UI(h^T,a^d,32),a=(S=f)+D|0,d=a=(D=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^D,a^v,40),a=yA+($=f)|0,v=y,a=n+((y=rA+y|0)>>>0>>0?a+1|0:a)|0,n=y+h|0,y=S,S=a=n>>>0>>0?a+1|0:a,y=UI(_^n,y^a,48),a=(a=d)+(d=f)|0,q=_=y+D|0,O=a=_>>>0>>0?a+1|0:a,h=e,a=G+IA|0,e=a=(_=k+u|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^H,1),a=DA+(k=f)|0,a=U+((D=t+oA|0)>>>0>>0?a+1|0:a)|0,p=a=(D=D+p|0)>>>0

>>0?a+1|0:a,h=UI(h^D,a^x,32),U=a=f,G=t,a=a+M|0,a=(t=h+K|0)>>>0>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=GA+(H=f)|0,a=p+((k=t+_A|0)>>>0<_A>>>0?a+1|0:a)|0,a=(p=D+k|0)>>>0>>0?a+1|0:a,D=U,U=a,k=UI(h^p,D^a,48),IA=a=f,D=a,h=UI(b^l,W^CA,1),K=a=f,M=e,a=a+BA|0,a=Z+((e=h+j|0)>>>0>>0?a+1|0:a)|0,Y=a=(e=e+Y|0)>>>0>>0?a+1|0:a,N=UI(c^e,a^N,32),a=(CA=f)+M|0,M=_=N+_|0,c=UI(_^h,(c=K)^(K=_>>>0>>0?a+1|0:a),40),a=NA+(b=f)|0,a=Y+((_=c+cA|0)>>>0>>0?a+1|0:a)|0,l=_=_+e|0,W=a=_>>>0>>0?a+1|0:a,e=a,a=m+wA|0,a=((h=J+V|0)>>>0>>0?a+1|0:a)+e|0,Y=a=(e=_+h|0)>>>0>>0?a+1|0:a,_=UI(e^k,a^D,32),a=(Z=f)+O|0,D=UI((h=_+q|0)^J,(a=h>>>0<_>>>0?a+1|0:a)^m,40),x=a,a=X+(J=f)|0,a=Y+((m=I+D|0)>>>0>>0?a+1|0:a)|0,a=(Y=e+m|0)>>>0>>0?a+1|0:a,e=Z,Z=a,e=UI(_^Y,e^a,48),a=(a=x)+(x=f)|0,_=(h=e+h|0)^D,D=a=h>>>0>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=s,T=y,y=c,c=UI(N^l,W^CA,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^b,1),a=(b=f)+pA|0,a=U+((_=y+EA|0)>>>0>>0?a+1|0:a)|0,p=a=(s=_+p|0)>>>0

>>0?a+1|0:a,_=UI(s^T,a^d,32),a=(U=f)+w|0,d=a=(w=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^w,a^b,40),a=Q+(CA=f)|0,b=y,a=p+((y=g+y|0)>>>0>>0?a+1|0:a)|0,p=y+s|0,y=U,U=a=p>>>0>>0?a+1|0:a,y=UI(_^p,y^a,48),a=(a=d)+(d=f)|0,l=_=y+w|0,W=a=_>>>0>>0?a+1|0:a,s=r,a=G+IA|0,r=a=(_=k+u|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^H,1),a=(k=f)+sA|0,a=S+((w=t+gA|0)>>>0>>0?a+1|0:a)|0,n=a=(w=w+n|0)>>>0>>0?a+1|0:a,s=UI(s^w,a^L,32),S=a=f,G=t,a=a+M|0,a=(t=s+K|0)>>>0>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=FA+(H=f)|0,a=n+((k=t+QA|0)>>>0>>0?a+1|0:a)|0,K=S,S=a=(n=w+k|0)>>>0>>0?a+1|0:a,k=UI(s^n,K^a,48),IA=a=f,w=a,s=UI(q^v,O^$,1),K=a=f,M=r,a=a+kA|0,a=R+((r=s+eA|0)>>>0>>0?a+1|0:a)|0,F=a=(r=r+F|0)>>>0>>0?a+1|0:a,N=UI(c^r,a^N,32),a=($=f)+M|0,M=_=N+_|0,c=UI(_^s,(c=K)^(K=_>>>0>>0?a+1|0:a),40),a=tA+(v=f)|0,a=F+((_=c+z|0)>>>0>>0?a+1|0:a)|0,q=_=_+r|0,O=a=_>>>0>>0?a+1|0:a,r=a,a=m+NA|0,a=((s=J+cA|0)>>>0>>0?a+1|0:a)+r|0,F=a=(r=_+s|0)>>>0>>0?a+1|0:a,_=UI(r^k,a^w,32),a=(R=f)+W|0,w=UI((s=_+l|0)^J,(a=s>>>0<_>>>0?a+1|0:a)^m,40),L=a,a=yA+(J=f)|0,a=F+((m=w+rA|0)>>>0>>0?a+1|0:a)|0,a=(F=r+m|0)>>>0>>0?a+1|0:a,r=R,R=a,r=UI(_^F,r^a,48),a=(a=L)+(L=f)|0,_=(s=r+s|0)^w,w=a=s>>>0>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=h,T=y,y=c,c=UI(N^q,O^$,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^v,1),a=(v=f)+SA|0,a=S+((_=y+iA|0)>>>0>>0?a+1|0:a)|0,n=a=(h=_+n|0)>>>0>>0?a+1|0:a,_=UI(h^T,a^d,32),a=(S=f)+D|0,d=a=(D=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^D,a^v,40),a=B+($=f)|0,v=y,a=n+((y=fA+y|0)>>>0>>0?a+1|0:a)|0,n=y+h|0,y=S,S=a=n>>>0>>0?a+1|0:a,y=UI(_^n,y^a,48),a=(a=d)+(d=f)|0,q=_=y+D|0,O=a=_>>>0>>0?a+1|0:a,h=e,a=G+IA|0,e=a=(_=k+u|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^H,1),a=FA+(k=f)|0,a=U+((D=t+QA|0)>>>0>>0?a+1|0:a)|0,p=a=(D=D+p|0)>>>0

>>0?a+1|0:a,h=UI(h^D,a^x,32),U=a=f,G=t,a=a+M|0,a=(t=h+K|0)>>>0>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=P+(H=f)|0,a=p+((k=t+aA|0)>>>0>>0?a+1|0:a)|0,a=(p=D+k|0)>>>0>>0?a+1|0:a,D=U,U=a,k=UI(h^p,D^a,48),IA=a=f,D=a,h=UI(b^l,W^CA,1),K=a=f,M=e,a=a+GA|0,a=Z+((e=h+_A|0)>>>0<_A>>>0?a+1|0:a)|0,Y=a=(e=e+Y|0)>>>0>>0?a+1|0:a,N=UI(c^e,a^N,32),a=(CA=f)+M|0,M=_=N+_|0,c=UI(_^h,(c=K)^(K=_>>>0>>0?a+1|0:a),40),a=kA+(b=f)|0,a=Y+((_=c+eA|0)>>>0>>0?a+1|0:a)|0,l=_=_+e|0,W=a=_>>>0>>0?a+1|0:a,e=a,a=m+DA|0,a=((h=J+oA|0)>>>0>>0?a+1|0:a)+e|0,Y=a=(e=_+h|0)>>>0>>0?a+1|0:a,_=UI(e^k,a^D,32),a=(Z=f)+O|0,D=UI((h=_+q|0)^J,(a=h>>>0<_>>>0?a+1|0:a)^m,40),x=a,a=Q+(J=f)|0,a=Y+((m=D+g|0)>>>0>>0?a+1|0:a)|0,a=(Y=e+m|0)>>>0>>0?a+1|0:a,e=Z,Z=a,e=UI(_^Y,e^a,48),a=(a=x)+(x=f)|0,_=(h=e+h|0)^D,D=a=h>>>0>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=s,T=y,y=c,c=UI(N^l,W^CA,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^b,1),a=(l=f)+BA|0,a=U+((_=y+j|0)>>>0>>0?a+1|0:a)|0,p=a=(s=_+p|0)>>>0

>>0?a+1|0:a,_=UI(s^T,a^d,32),a=(U=f)+w|0,d=w=_+AA|0,b=a=w>>>0<_>>>0?a+1|0:a,y=UI(y^w,a^l,40),a=wA+(AA=f)|0,l=y,a=p+((y=V+y|0)>>>0>>0?a+1|0:a)|0,w=y+s|0,y=U,U=a=w>>>0>>0?a+1|0:a,y=UI(_^w,y^a,48),a=(a=b)+(b=f)|0,d=_=y+d|0,W=a=_>>>0>>0?a+1|0:a,s=r,a=G+IA|0,r=a=(_=k+u|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^H,1),a=(k=f)+X|0,a=S+((p=I+t|0)>>>0>>0?a+1|0:a)|0,n=a=(p=p+n|0)>>>0>>0?a+1|0:a,S=s=UI(s^p,a^L,32),G=a=f,u=t,a=a+M|0,a=(t=s+K|0)>>>0>>0?a+1|0:a,H=t,t^=u,u=a,t=UI(t,a^k,40),a=pA+(K=f)|0,a=n+((s=t+EA|0)>>>0>>0?a+1|0:a)|0,M=(s=s+p|0)^S,S=a=s>>>0

>>0?a+1|0:a,p=UI(M,a^G,48),L=a=f,k=a,G=n=UI(q^v,O^$,1),M=a=f,v=r,a=a+tA|0,a=R+((r=n+z|0)>>>0>>0?a+1|0:a)|0,a=(r=r+F|0)>>>0>>0?a+1|0:a,F=N,N=a,n=UI(c^r,F^a,32),a=(T=f)+v|0,F=_=n+_|0,c=UI(c=_^G,(G=_>>>0>>0?a+1|0:a)^M,40),a=sA+(M=f)|0,a=N+((_=c+gA|0)>>>0>>0?a+1|0:a)|0,N=_=_+r|0,v=a=_>>>0>>0?a+1|0:a,r=a,a=m+wA|0,a=((R=V)>>>0>(V=J+V|0)>>>0?a+1|0:a)+r|0,wA=a=(_=_+V|0)>>>0>>0?a+1|0:a,V=UI(_^p,a^k,32),a=(q=f)+W|0,k=UI((r=d+V|0)^J,(a=r>>>0>>0?a+1|0:a)^m,40),R=a,a=pA+(O=f)|0,a=wA+((J=EA)>>>0>(EA=k+EA|0)>>>0?a+1|0:a)|0,a=(EA=_+EA|0)>>>0<_>>>0?a+1|0:a,_=V^EA,V=a,pA=UI(_,a^q,48);a=(wA=f)+R|0,r=a=(_=r+pA|0)>>>0>>0?a+1|0:a,a=UI(_^k,a^O,1),k=f,q=a,O=h,h=gA,R=sA,sA=UI(n^N,v^T,48),a=(n=f)+G|0,G=h,F=a=(gA=F+sA|0)>>>0>>0?a+1|0:a,h=UI(c^(N=gA),a^M,1),a=(M=f)+R|0,a=S+(h>>>0>(gA=G+h|0)>>>0?a+1|0:a)|0,c=a=(gA=s+gA|0)>>>0>>0?a+1|0:a,y=UI(y^gA,a^b,32),a=(a=D)+(D=f)|0,S=s=y+O|0,G=a=s>>>0>>0?a+1|0:a,s=UI(s^h,a^M,40),a=(M=f)+SA|0,a=(s>>>0>(iA=s+iA|0)>>>0?a+1|0:a)+c|0,c=a=(c=iA)>>>0>(iA=gA+iA|0)>>>0?a+1|0:a,y=UI(y^iA,a^D,48),a=(h=f)+G|0,D=gA=y+S|0,SA=a=gA>>>0>>0?a+1|0:a,S=I,G=X,a=u+L|0,gA=a=(I=p+H|0)>>>0

>>0?a+1|0:a,X=UI(I^t,a^K,1),a=(p=f)+G|0,a=U+((t=S+X|0)>>>0>>0?a+1|0:a)|0,e=UI((t=t+w|0)^e,(a=t>>>0>>0?a+1|0:a)^x,32),S=a,U=oA,oA=X,a=(w=f)+F|0,F=p,p=a=(X=e+N|0)>>>0>>0?a+1|0:a,oA=UI(X^oA,F^a,40),a=(N=f)+DA|0,a=((DA=U+oA|0)>>>0>>0?a+1|0:a)+S|0,S=DA,t=e^(DA=t+DA|0),e=a=S>>>0>DA>>>0?a+1|0:a,a=UI(t,a^w,48),u=t=f,w=a,F=j,S=BA,j=UI(d^l,W^AA,1),G=a=f,a=a+NA|0,a=Z+((j=(U=j)+cA|0)>>>0>>0?a+1|0:a)|0,cA=a=(j=Y+j|0)>>>0>>0?a+1|0:a,BA=UI(j^sA,a^n,32),a=(Y=f)+gA|0,gA=I=BA+I|0,sA=UI(I^U,(n=I>>>0>>0?a+1|0:a)^G,40),a=(a=S)+(S=f)|0,a=cA+((I=sA+F|0)>>>0>>0?a+1|0:a)|0,cA=I=I+j|0,NA=a=I>>>0>>0?a+1|0:a,j=a,a=k+FA|0,a=((U=QA)>>>0>(QA=q+QA|0)>>>0?a+1|0:a)+j|0,FA=a=(j=I+QA|0)>>>0>>0?a+1|0:a,QA=UI(w^j,a^t,32),a=(U=f)+SA|0,t=I=QA+D|0,I=UI(I^q,(F=k)^(k=I>>>0>>0?a+1|0:a),40),a=GA+(G=f)|0,GA=I,a=FA+((I=_A+I|0)>>>0<_A>>>0?a+1|0:a)|0,a=(I=I+j|0)>>>0>>0?a+1|0:a,FA=I,H=(o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24)^I,F=a,K=a^(o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24),j=UI(BA^cA,Y^NA,48),a=(cA=f)+n|0,n=I=j+gA|0,NA=a=I>>>0>>0?a+1|0:a,BA=rA,a=p+u|0,rA=a=(I=w+X|0)>>>0>>0?a+1|0:a,oA=UI(I^oA,a^N,1),a=(w=f)+yA|0,a=((BA=oA+BA|0)>>>0>>0?a+1|0:a)+c|0,BA=a=(yA=BA+iA|0)>>>0>>0?a+1|0:a,gA=UI(yA^pA,a^wA,32),a=(X=f)+NA|0,iA=a=(_A=gA+n|0)>>>0>>0?a+1|0:a,pA=gA,gA=UI(oA^_A,a^w,40),a=(c=f)+kA|0,a=(gA>>>0>(oA=gA+eA|0)>>>0?a+1|0:a)+BA|0,p=X,X=a=(yA=oA+yA|0)>>>0>>0?a+1|0:a,oA=UI(pA^(eA=yA),p^a,48),a=(w=f)+iA|0,a=(BA=oA+_A|0)>>>0>>0?a+1|0:a,_A=BA,BA^=H,C[A+8|0]=BA,C[A+9|0]=BA>>>8,C[A+10|0]=BA>>>16,C[A+11|0]=BA>>>24,iA=a,a^=K,C[A+12|0]=a,C[A+13|0]=a>>>8,C[A+14|0]=a>>>16,C[A+15|0]=a>>>24,yA=I,BA=rA,I=j,j=UI(s^D,M^SA,1),a=(kA=f)+Q|0,a=(j>>>0>(rA=j+g|0)>>>0?a+1|0:a)+V|0,EA=a=(D=rA)>>>0>(rA=EA+rA|0)>>>0?a+1|0:a,I=UI(I^rA,a^cA,32),a=(a=BA)+(BA=f)|0,cA=a=(yA=I+yA|0)>>>0>>0?a+1|0:a,pA=I,yA=UI(j^(V=yA),a^kA,40),a=(s=f)+B|0,a=EA+((I=yA+fA|0)>>>0>>0?a+1|0:a)|0,a=(I=I+rA|0)>>>0>>0?a+1|0:a,EA=I,I^=pA,pA=a,rA=UI(I,a^BA,48),a=(D=f)+cA|0,V=I=rA+V|0,cA=I>>>0>>0?a+1|0:a,sA=I=UI(n^sA,S^NA,1),kA=a=f,a=a+P|0,a=e+((I=I+aA|0)>>>0>>0?a+1|0:a)|0,P=a=(j=I+DA|0)>>>0>>0?a+1|0:a,I=(BA=UI(y^j,a^h,32))+_|0,a=(_=f)+r|0,DA=I,I=(aA=UI(e=I^sA,(sA=I>>>0>>0?a+1|0:a)^kA,40))+z|0,a=(z=f)+tA|0,a=P+(I>>>0>>0?a+1|0:a)|0,a=(P=I+j|0)>>>0>>0?a+1|0:a,j=P^KA^V,C[0|(I=A)]=j,C[I+1|0]=j>>>8,C[I+2|0]=j>>>16,C[I+3|0]=j>>>24,j=a^i^cA,C[I+4|0]=j,C[I+5|0]=j>>>8,C[I+6|0]=j>>>16,C[I+7|0]=j>>>24,j=(BA=UI(P^BA,a^_,48))+DA|0,a=(DA=f)+sA|0,a=(sA=j>>>0>>0?a+1|0:a)^(o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24)^pA,P=(o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24)^EA^j,C[I+16|0]=P,C[I+17|0]=P>>>8,C[I+18|0]=P>>>16,C[I+19|0]=P>>>24,C[I+20|0]=a,C[I+21|0]=a>>>8,C[I+22|0]=a>>>16,C[I+23|0]=a>>>24,I=UI(QA^FA,F^U,48),P=f,EA=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,a=(o[A+32|0]|o[A+33|0]<<8|o[A+34|0]<<16|o[A+35|0]<<24)^UI(gA^_A,c^iA,1)^I,C[A+32|0]=a,C[A+33|0]=a>>>8,C[A+34|0]=a>>>16,C[A+35|0]=a>>>24,a=f^EA^P,C[A+36|0]=a,C[A+37|0]=a>>>8,C[A+38|0]=a>>>16,C[A+39|0]=a>>>24,a=k+P|0,a=(EA=I+t|0)>>>0>>0?a+1|0:a,gA=(o[(I=A)+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24)^X^a,P=(o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24)^eA^EA,C[I+24|0]=P,C[I+25|0]=P>>>8,C[I+26|0]=P>>>16,C[I+27|0]=P>>>24,C[I+28|0]=gA,C[I+29|0]=gA>>>8,C[I+30|0]=gA>>>16,C[I+31|0]=gA>>>24,gA=o[I+44|0]|o[I+45|0]<<8|o[I+46|0]<<16|o[I+47|0]<<24,I=rA^(o[I+40|0]|o[I+41|0]<<8|o[I+42|0]<<16|o[I+43|0]<<24)^UI(j^aA,z^sA,1),C[A+40|0]=I,C[A+41|0]=I>>>8,C[A+42|0]=I>>>16,C[A+43|0]=I>>>24,I=D^f^gA,C[A+44|0]=I,C[A+45|0]=I>>>8,C[A+46|0]=I>>>16,C[A+47|0]=I>>>24,j=o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24,I=BA^(o[A+56|0]|o[A+57|0]<<8|o[A+58|0]<<16|o[A+59|0]<<24)^UI(V^yA,s^cA,1),C[A+56|0]=I,C[A+57|0]=I>>>8,C[A+58|0]=I>>>16,C[A+59|0]=I>>>24,I=DA^f^j,C[A+60|0]=I,C[A+61|0]=I>>>8,C[A+62|0]=I>>>16,C[A+63|0]=I>>>24,j=o[A+52|0]|o[A+53|0]<<8|o[A+54|0]<<16|o[A+55|0]<<24,I=oA^(o[A+48|0]|o[A+49|0]<<8|o[A+50|0]<<16|o[A+51|0]<<24)^UI(EA^GA,a^G,1),C[A+48|0]=I,C[A+49|0]=I>>>8,C[A+50|0]=I>>>16,C[A+51|0]=I>>>24,I=w^f^j,C[A+52|0]=I,C[A+53|0]=I>>>8,C[A+54|0]=I>>>16,C[A+55|0]=I>>>24}function w(A,I,g,B,Q,E,a){var _,c,t,r,e,y,h,D,p,w,n,k,F,N,G,M,K,U,b,H,Y,J,d,m,l,u,x,v,R,L,P,q,z,X,O,W,V,Z,T,$,AA,IA,gA,CA,BA,QA,iA,oA,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,fA=0,pA=0,wA=0,kA=0,FA=0,NA=0,GA=0,MA=0,KA=0,UA=0,bA=0,HA=0,YA=0,JA=0,dA=0,mA=0,lA=0,uA=0,xA=0,vA=0,RA=0,LA=0,PA=0,qA=0,zA=0,jA=0,XA=0,OA=0,WA=0,VA=0,ZA=0,TA=0,$A=0,AI=0,II=0;return s=t=s-560|0,SI(_A=t+352|0),a&&SA(_A,35600,34,0),FI(t+288|0,E,32,0),SA(rA=t+352|0,t+320|0,32,0),SA(rA,g,B,Q),j(rA,yA=t+224|0),hA=o[(aA=E)+32|0]|o[aA+33|0]<<8|o[aA+34|0]<<16|o[aA+35|0]<<24,DA=o[aA+36|0]|o[aA+37|0]<<8|o[aA+38|0]<<16|o[aA+39|0]<<24,cA=o[aA+40|0]|o[aA+41|0]<<8|o[aA+42|0]<<16|o[aA+43|0]<<24,EA=o[aA+44|0]|o[aA+45|0]<<8|o[aA+46|0]<<16|o[aA+47|0]<<24,_A=o[aA+48|0]|o[aA+49|0]<<8|o[aA+50|0]<<16|o[aA+51|0]<<24,E=o[aA+52|0]|o[aA+53|0]<<8|o[aA+54|0]<<16|o[aA+55|0]<<24,tA=o[aA+60|0]|o[aA+61|0]<<8|o[aA+62|0]<<16|o[aA+63|0]<<24,aA=o[aA+56|0]|o[aA+57|0]<<8|o[aA+58|0]<<16|o[aA+59|0]<<24,C[A+56|0]=aA,C[A+57|0]=aA>>>8,C[A+58|0]=aA>>>16,C[A+59|0]=aA>>>24,C[A+60|0]=tA,C[A+61|0]=tA>>>8,C[A+62|0]=tA>>>16,C[A+63|0]=tA>>>24,C[A+48|0]=_A,C[A+49|0]=_A>>>8,C[A+50|0]=_A>>>16,C[A+51|0]=_A>>>24,C[A+52|0]=E,C[A+53|0]=E>>>8,C[A+54|0]=E>>>16,C[A+55|0]=E>>>24,C[A+40|0]=cA,C[A+41|0]=cA>>>8,C[A+42|0]=cA>>>16,C[A+43|0]=cA>>>24,C[A+44|0]=EA,C[A+45|0]=EA>>>8,C[A+46|0]=EA>>>16,C[A+47|0]=EA>>>24,C[0|(E=A+32|0)]=hA,C[E+1|0]=hA>>>8,C[E+2|0]=hA>>>16,C[E+3|0]=hA>>>24,C[E+4|0]=DA,C[E+5|0]=DA>>>8,C[E+6|0]=DA>>>16,C[E+7|0]=DA>>>24,S(yA),nA(t,yA),tg(A,t),SI(rA),a&&SA(rA,35600,34,0),SA(a=t+352|0,A,64,0),SA(a,g,B,Q),j(a,eA=t+160|0),S(eA),C[t+288|0]=248&o[t+288|0],C[t+319|0]=63&o[t+319|0]|64,g=o[23+(A=c=t+288|0)|0],cA=Ig(r=o[A+21|0]|o[A+22|0]<<8|g<<16&2031616,0,e=(o[eA+28|0]|o[eA+29|0]<<8|o[eA+30|0]<<16|o[eA+31|0]<<24)>>>7|0,0),_A=f,g=(A=o[eA+27|0])>>>24|0,Q=A<<8|(EA=o[eA+23|0]|o[eA+24|0]<<8|o[eA+25|0]<<16|o[eA+26|0]<<24)>>>24,A=Ig(y=2097151&((3&(DA=(A=(B=o[eA+28|0])>>>16|0)|g))<<30|(g=(B<<=16)|Q)>>>2),0,h=(a=o[c+23|0]|o[c+24|0]<<8|o[c+25|0]<<16|o[c+26|0]<<24)>>>5&2097151,0),g=f+_A|0,B=A>>>0>(Q=A+cA|0)>>>0?g+1|0:g,A=Ig(D=(g=o[eA+23|0])<<16&2031616|o[eA+21|0]|o[eA+22|0]<<8,0,p=(o[c+28|0]|o[c+29|0]<<8|o[c+30|0]<<16|o[c+31|0]<<24)>>>7|0,0),B=f+B|0,_A=g=A+Q|0,Q=A>>>0>g>>>0?B+1|0:B,B=(A=o[c+27|0])>>>24|0,a=A<<8|a>>>24,A=Ig(w=2097151&((3&(B|=g=(A=o[c+28|0])>>>16|0))<<30|(g=(A<<=16)|a)>>>2),0,n=EA>>>5&2097151,0),g=f+Q|0,aA=B=A+_A|0,Q=A>>>0>B>>>0?g+1|0:g,EA=Ig(h,0,n,0),_A=f,g=(A=o[c+19|0])>>>24|0,a=A<<8|(GA=o[c+15|0]|o[c+16|0]<<8|o[c+17|0]<<16|o[c+18|0]<<24)>>>24,B=g,g=Ig(k=(7&(B|=g=(A=o[c+20|0])>>>16|0))<<29|(g=(A<<=16)|a)>>>3,DA=B>>>3|0,e,0),A=f+_A|0,A=g>>>0>(B=g+EA|0)>>>0?A+1|0:A,a=(g=Ig(r,0,y,0))+B|0,B=f+A|0,g=g>>>0>(EA=a)>>>0?B+1|0:B,B=(A=o[eA+19|0])>>>24|0,_A=A<<8|(kA=o[eA+15|0]|o[eA+16|0]<<8|o[eA+17|0]<<16|o[eA+18|0]<<24)>>>24,A=Ig(F=(7&(cA=(A=(a=o[eA+20|0])>>>16|0)|B))<<29|(B=(a<<=16)|_A)>>>3,N=cA>>>3|0,p,0),g=f+g|0,g=A>>>0>(B=A+EA|0)>>>0?g+1|0:g,A=Ig(D,0,w,0),g=f+g|0,hA=g=A>>>0>(yA=A+B|0)>>>0?g+1|0:g,fA=A=g-((yA>>>0<4293918720)-1|0)|0,B=(g=A>>>21|0)+Q|0,EA=B=(A=(2097151&A)<<11|(cA=yA- -1048576|0)>>>21)>>>0>(aA=A+aA|0)>>>0?B+1|0:B,wA=A=B-((aA>>>0<4293918720)-1|0)|0,tA=(2097151&A)<<11|(_A=aA- -1048576|0)>>>21,a=A>>>21|0,A=Ig(p,0,n,0),g=f,B=A,A=Ig(e,0,h,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,pA=(A=B)+(B=Ig(y,0,w,0))|0,A=f+g|0,A=B>>>0>pA>>>0?A+1|0:A,rA=pA-(g=-2097152&(B=pA- -1048576|0))|0,g=(A-((131071&(Q=A-((pA>>>0<4293918720)-1|0)|0))+(g>>>0>pA>>>0)|0)|0)+a|0,R=g=(A=tA+rA|0)>>>0>>0?g+1|0:g,L=A,rA=Ig(A,g,470296,0),tA=f,g=Ig(e,0,w,0),A=f,a=g,g=Ig(y,0,p,0),A=f+A|0,g=g>>>0>(a=a+g|0)>>>0?A+1|0:A,A=Q>>>21|0,Q=(2097151&Q)<<11|B>>>21,B=A+g|0,bA=Q=(B=Q>>>0>(a=Q+a|0)>>>0?B+1|0:B)-((a>>>0<4293918720)-1|0)|0,A=a-(g=-2097152&(UA=a- -1048576|0))|0,P=a=B-((131071&Q)+(g>>>0>a>>>0)|0)|0,q=g=aA-(B=-2097152&_A)|0,z=Q=EA-((B>>>0>aA>>>0)+wA|0)|0,X=A,B=Ig(A,a,666643,0),A=f+tA|0,A=B>>>0>(a=B+rA|0)>>>0?A+1|0:A,B=Ig(g,Q,654183,0),g=f+A|0,sA=Q=B+a|0,_A=B>>>0>Q>>>0?g+1|0:g,pA=yA-(A=-2097152&cA)|0,fA=hA-((A>>>0>yA>>>0)+fA|0)|0,g=Ig(y,0,k,DA),B=f,Q=(A=g)+(g=Ig(G=GA>>>6&2097151,0,e,0))|0,A=f+B|0,A=g>>>0>Q>>>0?A+1|0:A,g=Ig(h,0,D,0),B=f+A|0,B=g>>>0>(Q=g+Q|0)>>>0?B+1|0:B,A=Ig(r,0,n,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(p,0,M=kA>>>6&2097151,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,B=Ig(w,0,F,N),g=f+A|0,yA=Q=B+Q|0,a=B>>>0>Q>>>0?g+1|0:g,g=(A=o[c+14|0])>>>24|0,Q=A<<8|(hA=o[c+10|0]|o[c+11|0]<<8|o[c+12|0]<<16|o[c+13|0]<<24)>>>24,g=Ig(K=2097151&((1&(g|=A=(B=o[c+15|0])>>>16|0))<<31|(A=(B<<=16)|Q)>>>1),0,e,0),A=f,B=g,g=Ig(y,0,G,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=Ig(n,0,k,DA))+B|0,B=f+A|0,B=g>>>0>Q>>>0?B+1|0:B,A=Ig(h,0,F,N),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,A=Ig(r,0,D,0),g=f+g|0,cA=B=A+Q|0,Q=A>>>0>B>>>0?g+1|0:g,g=(A=o[eA+14|0])>>>24|0,EA=A<<8|(aA=o[eA+10|0]|o[eA+11|0]<<8|o[eA+12|0]<<16|o[eA+13|0]<<24)>>>24,B=g,g=(A=o[eA+15|0])>>>16|0,g=Ig(U=2097151&((1&(g|=B))<<31|(A=A<<16|EA)>>>1),0,p,0),A=f+Q|0,A=g>>>0>(B=g+cA|0)>>>0?A+1|0:A,g=Ig(w,0,M,0),A=f+A|0,EA=A=g>>>0>(cA=g+B|0)>>>0?A+1|0:A,HA=g=A-((cA>>>0<4293918720)-1|0)|0,B=(A=g>>>21|0)+a|0,tA=B=(g=(2097151&g)<<11|(rA=cA- -1048576|0)>>>21)>>>0>(wA=g+yA|0)>>>0?B+1|0:B,MA=g=B-((wA>>>0<4293918720)-1|0)|0,A=(A=g>>>21|0)+fA|0,O=A=(g=(B=(2097151&g)<<11|(yA=wA- -1048576|0)>>>21)+pA|0)>>>0>>0?A+1|0:A,W=g,A=Ig(g,A,-997805,-1),g=f+_A|0,sA=B=A+sA|0,_A=A>>>0>B>>>0?g+1|0:g,pA=(dA=o[23+(_=t+224|0)|0]|o[_+24|0]<<8|o[_+25|0]<<16|o[_+26|0]<<24)>>>5&2097151,B=Ig(b=(A=o[c+2|0])<<16&2031616|o[0|c]|o[c+1|0]<<8,0,n,0),g=f,Q=(A=Ig(D,0,H=(a=o[c+2|0]|o[c+3|0]<<8|o[c+4|0]<<16|o[c+5|0]<<24)>>>5&2097151,0))+B|0,B=f+g|0,B=A>>>0>Q>>>0?B+1|0:B,A=Ig(Y=(o[c+7|0]|o[c+8|0]<<8|o[c+9|0]<<16|o[c+10|0]<<24)>>>7&2097151,0,M,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(U,0,J=hA>>>4&2097151,0),A=f+g|0,hA=Q=B+Q|0,Q=B>>>0>Q>>>0?A+1|0:A,a=(g=o[c+6|0])<<8|a>>>24,B=A=g>>>24|0,g=(A=o[c+7|0])>>>16|0,g=Ig(d=2097151&((3&(g|=B))<<30|(A=A<<16|a)>>>2),0,F,N),A=f+Q|0,A=g>>>0>(B=g+hA|0)>>>0?A+1|0:A,Q=(g=Ig(G,0,m=(o[eA+7|0]|o[eA+8|0]<<8|o[eA+9|0]<<16|o[eA+10|0]<<24)>>>7&2097151,0))+B|0,B=f+A|0,B=g>>>0>Q>>>0?B+1|0:B,g=Ig(K,0,KA=aA>>>4&2097151,0),A=f+B|0,a=g>>>0>(Q=g+Q|0)>>>0?A+1|0:A,A=(g=o[eA+6|0])>>>24|0,hA=g<<8|(aA=o[eA+2|0]|o[eA+3|0]<<8|o[eA+4|0]<<16|o[eA+5|0]<<24)>>>24,g=A,A=Ig(k,DA,l=2097151&((3&(g|=B=(A=o[eA+7|0])>>>16|0))<<30|(A=A<<16|hA)>>>2),0),g=f+a|0,g=A>>>0>(B=A+Q|0)>>>0?g+1|0:g,Q=B,B=Ig(u=(A=o[eA+2|0])<<16&2031616|o[0|eA]|o[eA+1|0]<<8,0,h,0),A=f+g|0,A=B>>>0>(Q=Q+B|0)>>>0?A+1|0:A,g=Ig(r,0,x=aA>>>5&2097151,0),A=f+A|0,A=g>>>0>(B=g+Q|0)>>>0?A+1|0:A,g=B,hA=B=B+pA|0,a=g=g>>>0>B>>>0?A+1|0:A,Q=o[_+21|0]|o[_+22|0]<<8,A=Ig(D,0,b,0),g=f,aA=(B=A)+(A=Ig(F,N,H,0))|0,B=f+g|0,B=A>>>0>aA>>>0?B+1|0:B,A=Ig(U,0,Y,0),g=f+B|0,g=A>>>0>(aA=A+aA|0)>>>0?g+1|0:g,A=Ig(J,0,KA,0),g=f+g|0,g=A>>>0>(B=A+aA|0)>>>0?g+1|0:g,aA=(A=B)+(B=Ig(M,0,d,0))|0,A=f+g|0,A=B>>>0>aA>>>0?A+1|0:A,g=Ig(G,0,l,0),A=f+A|0,A=g>>>0>(B=g+aA|0)>>>0?A+1|0:A,aA=(g=Ig(K,0,m,0))+B|0,B=f+A|0,B=g>>>0>aA>>>0?B+1|0:B,A=Ig(k,DA,x,0),g=f+B|0,g=A>>>0>(aA=A+aA|0)>>>0?g+1|0:g,A=Ig(r,0,u,0),g=f+g|0,A=A>>>0>(B=A+aA|0)>>>0?g+1|0:g,g=(g=B)>>>0>(B=B+Q|0)>>>0?A+1|0:A,Q=B,B=(A=o[_+23|0])<<16&2031616,A=g,B=A=B>>>0>(Q=Q+B|0)>>>0?A+1|0:A,eA=A=A-((Q>>>0<4293918720)-1|0)|0,g=(g=A>>>21|0)+a|0,A=(g=(a=hA=(A=(2097151&A)<<11|(aA=Q- -1048576|0)>>>21)+hA|0)>>>0>>0?g+1|0:g)+_A|0,A=(_A=a+sA|0)>>>0>>0?A+1|0:A,kA=a- -1048576|0,FA=a=g-((a>>>0<4293918720)-1|0)|0,NA=_A-(g=-2097152&kA)|0,YA=A-((g>>>0>_A>>>0)+a|0)|0,hA=Q,_A=B,A=Ig(q,z,470296,0),g=f,B=A,A=Ig(L,R,666643,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(W,O,654183,0))|0,A=f+g|0,GA=Q,a=B>>>0>Q>>>0?A+1|0:A,g=Ig(F,N,b,0),A=f,B=g,g=Ig(M,0,H,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(Y,0,KA,0))|0,g=f+A|0,g=B>>>0>Q>>>0?g+1|0:g,A=Ig(J,0,m,0),B=f+g|0,B=A>>>0>(Q=A+Q|0)>>>0?B+1|0:B,A=Ig(U,0,d,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(G,0,x,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,g=Ig(K,0,l,0),A=f+A|0,A=g>>>0>(B=g+Q|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(k,DA,u,0))|0,g=f+A|0,pA=Q,B=B>>>0>Q>>>0?g+1|0:g,g=(A=o[_+19|0])>>>24|0,fA=A<<8|(sA=o[_+15|0]|o[_+16|0]<<8|o[_+17|0]<<16|o[_+18|0]<<24)>>>24,B=((JA=(A=(Q=o[_+20|0])>>>16|0)|g)>>>3|0)+B|0,pA=Q=(g=(7&JA)<<29|(g=(Q<<=16)|fA)>>>3)+pA|0,Q=g>>>0>Q>>>0?B+1|0:B,fA=sA>>>6&2097151,A=Ig(M,0,b,0),g=f,B=A,A=Ig(U,0,H,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,sA=(A=B)+(B=Ig(Y,0,m,0))|0,A=f+g|0,A=B>>>0>sA>>>0?A+1|0:A,B=Ig(J,0,l,0),g=f+A|0,g=B>>>0>(sA=B+sA|0)>>>0?g+1|0:g,B=Ig(d,0,KA,0),A=f+g|0,A=B>>>0>(sA=B+sA|0)>>>0?A+1|0:A,g=Ig(G,0,u,0),B=f+A|0,B=g>>>0>(sA=g+sA|0)>>>0?B+1|0:B,A=Ig(K,0,x,0),g=f+B|0,A=A>>>0>(sA=A+sA|0)>>>0?g+1|0:g,qA=A=(lA=sA+fA|0)>>>0>>0?A+1|0:A,ZA=A=A-((lA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(LA=lA- -1048576|0)>>>21,A=(A>>>21|0)+Q|0,jA=A=B>>>0>(zA=B+pA|0)>>>0?A+1|0:A,TA=A=A-((zA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(xA=zA- -1048576|0)>>>21,A=(A>>>21|0)+a|0,g=(B>>>0>(Q=B+GA|0)>>>0?A+1|0:A)+_A|0,_A=(B=Q+hA|0)-(A=-2097152&aA)|0,eA=A=(g=B>>>0>>0?g+1|0:g)-((A>>>0>B>>>0)+eA|0)|0,$A=A=A-((_A>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(vA=_A- -1048576|0)>>>21,A=(A>>21)+YA|0,Q=A=B>>>0>(a=B+NA|0)>>>0?A+1|0:A,VA=A=A-((a>>>0<4293918720)-1|0)|0,RA=(2097151&A)<<11|(GA=a- -1048576|0)>>>21,hA=A>>21,JA=wA-(A=-2097152&yA)|0,MA=tA-((A>>>0>wA>>>0)+MA|0)|0,A=Ig(e,0,p,0),PA=g=f,NA=A,sA=A- -1048576|0,uA=g=g-((A>>>0<4293918720)-1|0)|0,V=A=g>>>21|0,A=Ig(v=(2097151&g)<<11|sA>>>21,A,-683901,-1),g=f+EA|0,g=A>>>0>(B=A+cA|0)>>>0?g+1|0:g,yA=B-(A=-2097152&rA)|0,aA=g-((A>>>0>B>>>0)+HA|0)|0,g=Ig(n,0,G,0),A=f,B=g,g=Ig(e,0,J,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,g=Ig(y,0,K,0),A=f+A|0,A=g>>>0>(B=g+B|0)>>>0?A+1|0:A,EA=(g=B)+(B=Ig(D,0,k,DA))|0,g=f+A|0,g=B>>>0>EA>>>0?g+1|0:g,A=Ig(h,0,M,0),B=f+g|0,B=A>>>0>(EA=A+EA|0)>>>0?B+1|0:B,A=Ig(r,0,F,N),g=f+B|0,g=A>>>0>(EA=A+EA|0)>>>0?g+1|0:g,B=Ig(p,0,KA,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,g=Ig(w,0,U,0),A=f+A|0,cA=B=g+EA|0,EA=g>>>0>B>>>0?A+1|0:A,A=Ig(y,0,J,0),g=f,B=A,A=Ig(e,0,Y,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,tA=(A=Ig(D,0,G,0))+B|0,B=f+g|0,B=A>>>0>tA>>>0?B+1|0:B,A=Ig(n,0,K,0),g=f+B|0,g=A>>>0>(tA=A+tA|0)>>>0?g+1|0:g,B=Ig(k,DA,F,N),A=f+g|0,A=B>>>0>(tA=B+tA|0)>>>0?A+1|0:A,g=Ig(h,0,U,0),A=f+A|0,A=g>>>0>(B=g+tA|0)>>>0?A+1|0:A,tA=(g=B)+(B=Ig(r,0,M,0))|0,g=f+A|0,g=B>>>0>tA>>>0?g+1|0:g,A=Ig(p,0,m,0),B=f+g|0,B=A>>>0>(tA=A+tA|0)>>>0?B+1|0:B,A=Ig(w,0,KA,0),g=f+B|0,fA=g=A>>>0>(pA=A+tA|0)>>>0?g+1|0:g,OA=A=g-((pA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(wA=pA- -1048576|0)>>>21,A=(A>>>21|0)+EA|0,rA=A=g>>>0>(HA=g+cA|0)>>>0?A+1|0:A,mA=A=A-((HA>>>0<4293918720)-1|0)|0,g=(B=A>>>21|0)+aA|0,yA=g=(A=(2097151&A)<<11|(tA=HA- -1048576|0)>>>21)>>>0>(YA=A+yA|0)>>>0?g+1|0:g,XA=A=g-((YA>>>0<4293918720)-1|0)|0,EA=(2097151&A)<<11|(aA=YA- -1048576|0)>>>21,A=(A>>21)+MA|0,Z=A=(g=EA+JA|0)>>>0>>0?A+1|0:A,T=g,A=Ig(g,A,-683901,-1),g=f+hA|0,RA=B=A+RA|0,hA=A>>>0>B>>>0?g+1|0:g,A=Ig(y,0,b,0),g=f,B=A,A=Ig(n,0,H,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,EA=(A=B)+(B=Ig(F,N,Y,0))|0,A=f+g|0,A=B>>>0>EA>>>0?A+1|0:A,g=Ig(M,0,J,0),B=f+A|0,B=g>>>0>(EA=g+EA|0)>>>0?B+1|0:B,g=Ig(D,0,d,0),A=f+B|0,A=g>>>0>(EA=g+EA|0)>>>0?A+1|0:A,B=Ig(G,0,KA,0),g=f+A|0,g=B>>>0>(EA=B+EA|0)>>>0?g+1|0:g,A=Ig(K,0,U,0),g=f+g|0,g=A>>>0>(B=A+EA|0)>>>0?g+1|0:g,EA=(A=B)+(B=Ig(k,DA,m,0))|0,A=f+g|0,A=B>>>0>EA>>>0?A+1|0:A,g=Ig(h,0,x,0),B=f+A|0,B=g>>>0>(EA=g+EA|0)>>>0?B+1|0:B,g=Ig(r,0,l,0),A=f+B|0,A=g>>>0>(EA=g+EA|0)>>>0?A+1|0:A,B=Ig(w,0,u,0),g=f+A|0,MA=EA=B+EA|0,B=B>>>0>EA>>>0?g+1|0:g,g=(A=o[_+27|0])>>>24|0,cA=A<<8|dA>>>24,EA=2097151&((3&(g|=A=(EA=o[_+28|0])>>>16|0))<<30|(A=(EA<<=16)|cA)>>>2),g=B,cA=A=EA+MA|0,EA=A>>>0>>0?g+1|0:g,JA=Ig(X,P,470296,0),MA=f,A=(B=(2097151&bA)<<11|UA>>>21)+(NA-(g=-2097152&sA)|0)|0,g=PA-((524287&uA)+(g>>>0>NA>>>0)|0)+(bA>>>21)|0,$=g=A>>>0>>0?g+1|0:g,AA=A,g=Ig(A,g,666643,0),A=f+MA|0,A=g>>>0>(B=g+JA|0)>>>0?A+1|0:A,sA=(g=Ig(L,R,654183,0))+B|0,B=f+A|0,B=g>>>0>sA>>>0?B+1|0:B,g=Ig(q,z,-997805,-1),A=f+B|0,A=g>>>0>(sA=g+sA|0)>>>0?A+1|0:A,B=Ig(W,O,136657,0),g=f+A|0,kA=(A=(2097151&FA)<<11|kA>>>21)+(sA=B+sA|0)|0,g=(FA>>>21|0)+(B>>>0>sA>>>0?g+1|0:g)|0,uA=sA=EA-((cA>>>0<4293918720)-1|0)|0,A=(A>>>0>kA>>>0?g+1|0:g)+EA|0,g=(EA=cA+kA|0)-(B=-2097152&(PA=cA- -1048576|0))|0,B=(A=(A=EA>>>0>>0?A+1|0:A)-((B>>>0>EA>>>0)+sA|0)|0)+hA|0,JA=EA=A-((g>>>0<4293918720)-1|0)|0,NA=(B=(cA=g+RA|0)>>>0>>0?B+1|0:B)-(((g=-2097152&(MA=g- -1048576|0))>>>0>cA>>>0)+EA|0)|0,dA=A=cA-g|0,EA=a,a=Q,WA=YA-(A=-2097152&aA)|0,sA=yA-((A>>>0>YA>>>0)+XA|0)|0,A=Ig(AA,$,-683901,-1),g=f,Q=(B=A)+(A=Ig(v,V,136657,0))|0,B=f+g|0,g=rA+(A>>>0>Q>>>0?B+1|0:B)|0,tA=(B=Q+HA|0)-(A=-2097152&tA)|0,yA=(g=B>>>0>>0?g+1|0:g)-((A>>>0>B>>>0)+mA|0)|0,g=Ig(v,V,-997805,-1),A=f+fA|0,A=g>>>0>(B=g+pA|0)>>>0?A+1|0:A,Q=(g=Ig(AA,$,136657,0))+B|0,B=f+A|0,B=g>>>0>Q>>>0?B+1|0:B,A=Ig(X,P,-683901,-1),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,aA=Q-(A=-2097152&wA)|0,hA=g-((A>>>0>Q>>>0)+OA|0)|0,g=Ig(n,0,J,0),A=f,B=g,g=Ig(y,0,Y,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=Ig(e,0,d,0))+B|0,B=f+A|0,B=g>>>0>Q>>>0?B+1|0:B,A=Ig(F,N,G,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(D,0,K,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,B=Ig(k,DA,M,0),g=f+A|0,g=B>>>0>(Q=B+Q|0)>>>0?g+1|0:g,B=Ig(h,0,KA,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,g=Ig(r,0,U,0),B=f+A|0,B=g>>>0>(Q=g+Q|0)>>>0?B+1|0:B,A=Ig(p,0,l,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(w,0,m,0),A=f+g|0,cA=Q=B+Q|0,Q=B>>>0>Q>>>0?A+1|0:A,A=Ig(n,0,Y,0),g=f,B=A,A=Ig(e,0,H,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,rA=(A=B)+(B=Ig(D,0,J,0))|0,A=f+g|0,A=B>>>0>rA>>>0?A+1|0:A,g=Ig(y,0,d,0),B=f+A|0,B=g>>>0>(rA=g+rA|0)>>>0?B+1|0:B,A=Ig(G,0,M,0),g=f+B|0,g=A>>>0>(rA=A+rA|0)>>>0?g+1|0:g,B=Ig(F,N,K,0),A=f+g|0,A=B>>>0>(rA=B+rA|0)>>>0?A+1|0:A,B=Ig(k,DA,U,0),g=f+A|0,g=B>>>0>(rA=B+rA|0)>>>0?g+1|0:g,B=Ig(h,0,m,0),A=f+g|0,A=B>>>0>(rA=B+rA|0)>>>0?A+1|0:A,g=Ig(r,0,KA,0),B=f+A|0,B=g>>>0>(rA=g+rA|0)>>>0?B+1|0:B,rA=(A=Ig(p,0,x,0))+rA|0,g=f+B|0,B=Ig(w,0,l,0),A=f+(A>>>0>rA>>>0?g+1|0:g)|0,YA=A=B>>>0>(XA=B+rA|0)>>>0?A+1|0:A,gA=A=A-((XA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(bA=XA- -1048576|0)>>>21,A=(A>>>21|0)+Q|0,UA=A=B>>>0>(RA=B+cA|0)>>>0?A+1|0:A,CA=A=A-((RA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(FA=RA- -1048576|0)>>>21,A=(A>>>21|0)+hA|0,kA=A=B>>>0>(HA=B+aA|0)>>>0?A+1|0:A,BA=A=A-((HA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(fA=HA- -1048576|0)>>>21,A=(A>>21)+yA|0,Q=A=B>>>0>(aA=B+tA|0)>>>0?A+1|0:A,yA=A=A-((aA>>>0<4293918720)-1|0)|0,hA=(2097151&A)<<11|(B=aA- -1048576|0)>>>21,A=(A>>21)+sA|0,OA=A=(cA=hA+WA|0)>>>0>>0?A+1|0:A,mA=cA,A=Ig(cA,A,-683901,-1),g=f,cA=A,A=Ig(T,Z,136657,0),g=f+g|0,A=(A>>>0>(cA=cA+A|0)>>>0?g+1|0:g)+a|0,AI=(a=EA+cA|0)-(g=-2097152&GA)|0,II=(A=a>>>0>>0?A+1|0:A)-((g>>>0>a>>>0)+VA|0)|0,hA=_A,cA=eA,_A=Ig(mA,OA,136657,0),a=f,WA=A=aA-(g=-2097152&B)|0,IA=Q=Q-((g>>>0>aA>>>0)+yA|0)|0,B=Ig(T,Z,-997805,-1),g=f+a|0,g=B>>>0>(_A=B+_A|0)>>>0?g+1|0:g,B=Ig(A,Q,-683901,-1),A=f+g|0,VA=Q=B+_A|0,EA=B>>>0>Q>>>0?A+1|0:A,A=Ig(W,O,470296,0),g=f,Q=(B=A)+(A=Ig(q,z,666643,0))|0,B=f+g|0,g=jA+(A>>>0>Q>>>0?B+1|0:B)|0,GA=A=Q+zA|0,a=g=A>>>0>>0?g+1|0:g,g=Ig(W,O,666643,0),A=f+qA|0,A=g>>>0>(B=g+lA|0)>>>0?A+1|0:A,tA=B-(g=-2097152&LA)|0,pA=A-((g>>>0>B>>>0)+ZA|0)|0,g=Ig(U,0,b,0),A=f,B=g,g=Ig(H,0,KA,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(Y,0,l,0))|0,g=f+A|0,g=B>>>0>Q>>>0?g+1|0:g,B=Ig(J,0,x,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,g=Ig(d,0,m,0),B=f+A|0,B=g>>>0>(Q=g+Q|0)>>>0?B+1|0:B,A=Ig(K,0,u,0),g=f+B|0,aA=Q=A+Q|0,Q=A>>>0>Q>>>0?g+1|0:g,g=(A=o[_+14|0])>>>24|0,_A=A<<8|(yA=o[_+10|0]|o[_+11|0]<<8|o[_+12|0]<<16|o[_+13|0]<<24)>>>24,g=2097151&((1&(g|=B=(A=o[_+15|0])>>>16|0))<<31|(A=_A|A<<16)>>>1),A=Q,aA=B=g+aA|0,Q=g>>>0>B>>>0?A+1|0:A,_A=yA>>>4&2097151,A=Ig(b,0,KA,0),g=f,B=A,A=Ig(H,0,m,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,A=Ig(Y,0,x,0),g=f+g|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,yA=(A=B)+(B=Ig(J,0,u,0))|0,A=f+g|0,A=B>>>0>yA>>>0?A+1|0:A,g=Ig(d,0,l,0),B=f+A|0,A=g>>>0>(yA=g+yA|0)>>>0?B+1|0:B,eA=A=(LA=_A+yA|0)>>>0>>0?A+1|0:A,QA=A=A-((LA>>>0<4293918720)-1|0)|0,g=(B=A>>>21|0)+Q|0,wA=g=(A=(2097151&A)<<11|(sA=LA- -1048576|0)>>>21)>>>0>(jA=A+aA|0)>>>0?g+1|0:g,iA=A=g-((jA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(rA=jA- -1048576|0)>>>21,A=(A>>>21|0)+pA|0,yA=A=g>>>0>(tA=g+tA|0)>>>0?A+1|0:A,oA=A=A-((tA>>>0<4293918720)-1|0)|0,g=(B=A>>21)+a|0,ZA=g=(g=(A=(2097151&A)<<11|(aA=tA- -1048576|0)>>>21)>>>0>(Q=A+GA|0)>>>0?g+1|0:g)-(((B=-2097152&xA)>>>0>Q>>>0)+TA|0)|0,xA=A=Q-B|0,_A=A- -1048576|0,TA=A=g-((A>>>0<4293918720)-1|0)|0,B=(g=A>>21)+EA|0,g=((A=(2097151&A)<<11|_A>>>21)>>>0>(Q=A+VA|0)>>>0?B+1|0:B)+cA|0,lA=g=(g=(A=Q)>>>0>(Q=Q+hA|0)>>>0?g+1|0:g)-(((B=-2097152&vA)>>>0>Q>>>0)+$A|0)|0,cA=A=Q-B|0,a=A- -1048576|0,qA=A=g-((A>>>0<4293918720)-1|0)|0,B=(g=A>>21)+II|0,vA=A=(B=(A=(2097151&A)<<11|a>>>21)>>>0>(EA=A+AI|0)>>>0?B+1|0:B)-((EA>>>0<4293918720)-1|0)|0,GA=dA- -1048576|0,pA=NA-((dA>>>0<4293918720)-1|0)|0,hA=(2097151&A)<<11|(Q=EA- -1048576|0)>>>21,A=(A>>21)+NA|0,$A=(dA=hA+dA|0)-(g=-2097152&GA)|0,AI=(hA>>>0>dA>>>0?A+1|0:A)-((g>>>0>dA>>>0)+pA|0)|0,II=EA-(A=-2097152&Q)|0,VA=B-((A>>>0>EA>>>0)+vA|0)|0,zA=cA-(A=-2097152&a)|0,dA=lA-((A>>>0>cA>>>0)+qA|0)|0,A=Ig(mA,OA,-997805,-1),g=f,B=A,A=Ig(T,Z,654183,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(WA,IA,136657,0))|0,A=f+g|0,g=ZA+(B>>>0>Q>>>0?A+1|0:A)|0,lA=(B=Q+xA|0)-(A=-2097152&_A)|0,qA=(g=B>>>0>>0?g+1|0:g)-((A>>>0>B>>>0)+TA|0)|0,xA=HA-(A=-2097152&fA)|0,NA=kA-((A>>>0>HA>>>0)+BA|0)|0,g=Ig(AA,$,-997805,-1),A=f,B=g,g=Ig(v,V,654183,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(X,P,136657,0))|0,g=f+A|0,g=B>>>0>Q>>>0?g+1|0:g,A=Ig(L,R,-683901,-1),B=f+g|0,g=UA+(A>>>0>(Q=A+Q|0)>>>0?B+1|0:B)|0,fA=(B=Q+RA|0)-(A=-2097152&FA)|0,kA=(g=B>>>0>>0?g+1|0:g)-((A>>>0>B>>>0)+CA|0)|0,g=Ig(AA,$,654183,0),A=f,B=g,g=Ig(v,V,470296,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=Ig(X,P,-997805,-1))+B|0,B=f+A|0,g=YA+(g>>>0>Q>>>0?B+1|0:B)|0,g=(A=Q+XA|0)>>>0>>0?g+1|0:g,B=A,A=Ig(L,R,136657,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(q,z,-683901,-1))|0,A=f+g|0,_A=Q-(g=-2097152&bA)|0,a=(B>>>0>Q>>>0?A+1|0:A)-((g>>>0>Q>>>0)+gA|0)|0,Q=(o[_+28|0]|o[_+29|0]<<8|o[_+30|0]<<16|o[_+31|0]<<24)>>>7|0,A=Ig(e,0,b,0),g=f,EA=(B=A)+(A=Ig(y,0,H,0))|0,B=f+g|0,B=A>>>0>EA>>>0?B+1|0:B,A=Ig(D,0,Y,0),g=f+B|0,g=A>>>0>(EA=A+EA|0)>>>0?g+1|0:g,B=Ig(F,N,J,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,B=Ig(n,0,d,0),g=f+A|0,g=B>>>0>(EA=B+EA|0)>>>0?g+1|0:g,B=Ig(G,0,U,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,g=Ig(M,0,K,0),B=f+A|0,B=g>>>0>(EA=g+EA|0)>>>0?B+1|0:B,A=Ig(k,DA,KA,0),g=f+B|0,g=A>>>0>(EA=A+EA|0)>>>0?g+1|0:g,B=Ig(h,0,l,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,B=Ig(r,0,m,0),g=f+A|0,g=B>>>0>(EA=B+EA|0)>>>0?g+1|0:g,B=Ig(p,0,u,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,g=Ig(w,0,x,0),B=f+A|0,g=B=g>>>0>(EA=g+EA|0)>>>0?B+1|0:B,UA=(B=(2097151&uA)<<11|PA>>>21)+(A=Q+EA|0)|0,A=(uA>>>21|0)+(g=A>>>0>>0?g+1|0:g)|0,hA=A=B>>>0>UA>>>0?A+1|0:A,vA=g=A-((UA>>>0<4293918720)-1|0)|0,B=(A=g>>>21|0)+a|0,cA=B=(g=(2097151&g)<<11|(DA=UA- -1048576|0)>>>21)>>>0>(FA=g+_A|0)>>>0?B+1|0:B,PA=g=B-((FA>>>0<4293918720)-1|0)|0,A=(A=g>>21)+kA|0,_A=A=(g=(2097151&g)<<11|(EA=FA- -1048576|0)>>>21)>>>0>(fA=g+fA|0)>>>0?A+1|0:A,bA=g=A-((fA>>>0<4293918720)-1|0)|0,B=(A=g>>21)+NA|0,uA=B=(g=(Q=(2097151&g)<<11|(a=fA- -1048576|0)>>>21)+xA|0)>>>0>>0?B+1|0:B,NA=g,A=Ig(g,B,-683901,-1),g=f+qA|0,kA=B=A+lA|0,Q=A>>>0>B>>>0?g+1|0:g,g=Ig(T,Z,470296,0),A=f+yA|0,A=g>>>0>(tA=g+tA|0)>>>0?A+1|0:A,g=Ig(mA,OA,654183,0),A=f+(A-(((B=-2097152&aA)>>>0>tA>>>0)+oA|0)|0)|0,A=g>>>0>(aA=g+(tA-B|0)|0)>>>0?A+1|0:A,B=Ig(WA,IA,-997805,-1),g=f+A|0,g=B>>>0>(aA=B+aA|0)>>>0?g+1|0:g,YA=B=fA-(A=-2097152&a)|0,KA=_A=_A-((A>>>0>fA>>>0)+bA|0)|0,aA=(a=Ig(NA,uA,136657,0))+aA|0,A=f+g|0,B=Ig(B,_A,-683901,-1),g=f+(a>>>0>aA>>>0?A+1|0:A)|0,_A=g=B>>>0>(yA=B+aA|0)>>>0?g+1|0:g,bA=A=g-((yA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(a=yA- -1048576|0)>>>21,A=(A>>21)+Q|0,fA=g=(A=g>>>0>(aA=g+kA|0)>>>0?A+1|0:A)-((aA>>>0<4293918720)-1|0)|0,tA=(2097151&g)<<11|(Q=aA- -1048576|0)>>>21,g=(g>>21)+dA|0,zA=kA=tA+zA|0,kA=tA>>>0>kA>>>0?g+1|0:g,dA=aA-(g=-2097152&Q)|0,XA=A-((g>>>0>aA>>>0)+fA|0)|0,lA=yA-(A=-2097152&a)|0,qA=_A-((A>>>0>yA>>>0)+bA|0)|0,A=Ig(T,Z,666643,0),B=wA+f|0,B=(a=A+jA|0)>>>0>>0?B+1|0:B,Q=(A=Ig(mA,OA,470296,0))+(a-(g=-2097152&rA)|0)|0,g=f+(B-((g>>>0>a>>>0)+iA|0)|0)|0,g=A>>>0>Q>>>0?g+1|0:g,B=Ig(WA,IA,654183,0),A=f+g|0,aA=Q=B+Q|0,Q=B>>>0>Q>>>0?A+1|0:A,a=FA-(A=-2097152&EA)|0,_A=cA-((A>>>0>FA>>>0)+PA|0)|0,A=Ig(AA,$,470296,0),g=f,B=A,A=Ig(v,V,666643,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,A=Ig(X,P,654183,0),g=f+g|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,EA=(A=B)+(B=Ig(L,R,-997805,-1))|0,A=f+g|0,A=B>>>0>EA>>>0?A+1|0:A,g=Ig(q,z,136657,0),A=f+A|0,A=g>>>0>(B=g+EA|0)>>>0?A+1|0:A,EA=(g=Ig(W,O,-683901,-1))+B|0,B=f+A|0,g=hA+(g>>>0>EA>>>0?B+1|0:B)|0,FA=(B=(2097151&JA)<<11|MA>>>21)+((EA=EA+UA|0)-(A=-2097152&DA)|0)|0,A=((g=EA>>>0>>0?g+1|0:g)-((A>>>0>EA>>>0)+vA|0)|0)+(JA>>21)|0,fA=A=B>>>0>FA>>>0?A+1|0:A,xA=A=A-((FA>>>0<4293918720)-1|0)|0,g=a,a=(2097151&A)<<11|(rA=FA- -1048576|0)>>>21,A=(A>>21)+_A|0,bA=A=(B=g+a|0)>>>0>>0?A+1|0:A,UA=B,A=Ig(B,A,-683901,-1),g=f+Q|0,g=A>>>0>(B=A+aA|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(NA,uA,-997805,-1))|0,A=f+g|0,A=B>>>0>Q>>>0?A+1|0:A,g=Ig(YA,KA,136657,0),B=f+A|0,MA=Q=g+Q|0,cA=g>>>0>Q>>>0?B+1|0:B,aA=LA-(A=-2097152&sA)|0,hA=eA-((A>>>0>LA>>>0)+QA|0)|0,g=Ig(b,0,m,0),A=f,B=g,g=Ig(H,0,l,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,g=Ig(Y,0,u,0),A=f+A|0,A=g>>>0>(B=g+B|0)>>>0?A+1|0:A,Q=(g=Ig(d,0,x,0))+B|0,B=f+A|0,g=g>>>0>Q>>>0?B+1|0:B,DA=B=(A=(o[_+7|0]|o[_+8|0]<<8|o[_+9|0]<<16|o[_+10|0]<<24)>>>7&2097151)+Q|0,EA=A>>>0>B>>>0?g+1|0:g,A=Ig(b,0,l,0),g=f,B=A,A=Ig(H,0,x,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(d,0,u,0))|0,A=f+g|0,_A=Q,Q=B>>>0>Q>>>0?A+1|0:A,A=(g=o[_+6|0])>>>24|0,a=g<<8|(vA=o[_+2|0]|o[_+3|0]<<8|o[_+4|0]<<16|o[_+5|0]<<24)>>>24,B=A,g=(A=o[_+7|0])>>>16|0,g|=B,B=Q,a=B=(A=2097151&((3&g)<<30|(A=A<<16|a)>>>2))>>>0>(_A=A+_A|0)>>>0?B+1|0:B,RA=A=B-((_A>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(wA=_A- -1048576|0)>>>21,A=(A>>>21|0)+EA|0,tA=A=B>>>0>(eA=B+DA|0)>>>0?A+1|0:A,PA=A=A-((eA>>>0<4293918720)-1|0)|0,B=(g=A>>>21|0)+hA|0,B=(A=(2097151&A)<<11|(yA=eA- -1048576|0)>>>21)>>>0>(Q=A+aA|0)>>>0?B+1|0:B,g=Ig(mA,OA,666643,0),A=f+B|0,A=g>>>0>(Q=g+Q|0)>>>0?A+1|0:A,g=Ig(WA,IA,470296,0),A=f+A|0,A=g>>>0>(B=g+Q|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(UA,bA,136657,0))|0,g=f+A|0,g=B>>>0>Q>>>0?g+1|0:g,A=Ig(NA,uA,654183,0),g=f+g|0,g=A>>>0>(B=A+Q|0)>>>0?g+1|0:g,aA=(A=Ig(YA,KA,-997805,-1))+B|0,B=f+g|0,hA=B=A>>>0>aA>>>0?B+1|0:B,JA=A=B-((aA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(DA=aA- -1048576|0)>>>21,A=(A>>21)+cA|0,MA=B=(A=B>>>0>(Q=B+MA|0)>>>0?A+1|0:A)-((Q>>>0<4293918720)-1|0)|0,EA=(2097151&B)<<11|(cA=Q- -1048576|0)>>>21,B=(B>>21)+qA|0,HA=sA=EA+lA|0,sA=EA>>>0>sA>>>0?B+1|0:B,EA=Q,g=A,Q=(FA-(A=-2097152&rA)|0)+(rA=(2097151&pA)<<11|GA>>>21)|0,A=(fA-((A>>>0>FA>>>0)+xA|0)|0)+(pA>>21)|0,pA=A=Q>>>0>>0?A+1|0:A,lA=A=A-((Q>>>0<4293918720)-1|0)|0,FA=B=A>>21,A=Ig(mA=(2097151&A)<<11|(fA=Q- -1048576|0)>>>21,B,-683901,-1),g=f+g|0,g=A>>>0>(B=A+EA|0)>>>0?g+1|0:g,qA=B-(A=-2097152&cA)|0,LA=g-((A>>>0>B>>>0)+MA|0)|0,g=Ig(mA,FA,136657,0),A=f+hA|0,A=g>>>0>(B=g+aA|0)>>>0?A+1|0:A,jA=B-(g=-2097152&DA)|0,JA=A-((g>>>0>B>>>0)+JA|0)|0,g=Ig(WA,IA,666643,0),A=f+(tA-(((B=-2097152&yA)>>>0>eA>>>0)+PA|0)|0)|0,A=g>>>0>(EA=g+(eA-B|0)|0)>>>0?A+1|0:A,B=Ig(UA,bA,-997805,-1),g=f+A|0,g=B>>>0>(EA=B+EA|0)>>>0?g+1|0:g,A=Ig(NA,uA,470296,0),B=f+g|0,B=A>>>0>(EA=A+EA|0)>>>0?B+1|0:B,g=Ig(YA,KA,654183,0),A=f+B|0,MA=EA=g+EA|0,hA=g>>>0>EA>>>0?A+1|0:A,B=vA>>>5&2097151,A=Ig(b,0,x,0),g=f,cA=A,A=Ig(H,0,u,0),g=f+g|0,A=A>>>0>(EA=cA+A|0)>>>0?g+1|0:g,cA=g=B+EA|0,B=A=g>>>0>>0?A+1|0:A,eA=(g=Ig(b,0,u,0))+(A=(A=o[_+2|0])<<16&2031616|o[0|_]|o[_+1|0]<<8)|0,g=f,rA=g=A>>>0>eA>>>0?g+1|0:g,xA=g=g-((eA>>>0<4293918720)-1|0)|0,A=(A=g>>>21|0)+B|0,yA=A=(g=(2097151&g)<<11|(tA=eA- -1048576|0)>>>21)>>>0>(GA=g+cA|0)>>>0?A+1|0:A,vA=g=A-((GA>>>0<4293918720)-1|0)|0,B=(2097151&g)<<11|(aA=GA- -1048576|0)>>>21,g=(g>>>21|0)+a|0,g=B>>>0>(EA=B+_A|0)>>>0?g+1|0:g,B=Ig(UA,bA,654183,0),A=f+(g-(((a=-2097152&wA)>>>0>EA>>>0)+RA|0)|0)|0,A=B>>>0>(_A=B+(EA-a|0)|0)>>>0?A+1|0:A,g=Ig(NA,uA,666643,0),A=f+A|0,A=g>>>0>(B=g+_A|0)>>>0?A+1|0:A,DA=(g=B)+(B=Ig(YA,KA,470296,0))|0,g=f+A|0,cA=g=B>>>0>DA>>>0?g+1|0:g,PA=g=g-((DA>>>0<4293918720)-1|0)|0,B=(A=g>>21)+hA|0,wA=g=(B=(g=(2097151&g)<<11|(EA=DA- -1048576|0)>>>21)>>>0>(_A=g+MA|0)>>>0?B+1|0:B)-((_A>>>0<4293918720)-1|0)|0,hA=(2097151&g)<<11|(a=_A- -1048576|0)>>>21,g=(g>>21)+JA|0,uA=NA=hA+jA|0,hA=hA>>>0>NA>>>0?g+1|0:g,A=Ig(mA,FA,-997805,-1),g=f+B|0,g=A>>>0>(_A=A+_A|0)>>>0?g+1|0:g,JA=_A-(A=-2097152&a)|0,MA=g-((A>>>0>_A>>>0)+wA|0)|0,g=Ig(mA,FA,654183,0),A=f+cA|0,A=g>>>0>(B=g+DA|0)>>>0?A+1|0:A,NA=B-(g=-2097152&EA)|0,wA=A-((g>>>0>B>>>0)+PA|0)|0,A=Ig(UA,bA,470296,0),B=f+(yA-(((g=-2097152&aA)>>>0>GA>>>0)+vA|0)|0)|0,B=A>>>0>(a=A+(GA-g|0)|0)>>>0?B+1|0:B,g=Ig(YA,KA,666643,0),A=f+B|0,_A=a=g+a|0,B=g>>>0>a>>>0?A+1|0:A,g=Ig(UA,bA,666643,0),A=f+(rA-((4095&xA)+((a=-2097152&tA)>>>0>eA>>>0)|0)|0)|0,DA=A=g>>>0>(aA=g+(eA-a|0)|0)>>>0?A+1|0:A,rA=A=A-((aA>>>0<4293918720)-1|0)|0,a=(2097151&A)<<11|(cA=aA- -1048576|0)>>>21,A=(A>>21)+B|0,B=A=a>>>0>(EA=a+_A|0)>>>0?A+1|0:A,tA=A=A-((EA>>>0<4293918720)-1|0)|0,a=(2097151&A)<<11|(_A=EA- -1048576|0)>>>21,A=(A>>21)+wA|0,a=a>>>0>(yA=a+NA|0)>>>0?A+1|0:A,A=Ig(mA,FA,470296,0),B=f+B|0,B=A>>>0>(g=A+EA|0)>>>0?B+1|0:B,EA=g-(A=-2097152&_A)|0,_A=B-((A>>>0>g>>>0)+tA|0)|0,g=Ig(mA,FA,666643,0),A=f+(DA-(((B=-2097152&cA)>>>0>aA>>>0)+rA|0)|0)|0,g=(B=(A=g>>>0>(wA=g+(aA-B|0)|0)>>>0?A+1|0:A)>>21)+_A|0,A=(A=(g=(A=(2097151&A)<<11|wA>>>21)>>>0>(rA=A+EA|0)>>>0?g+1|0:g)>>21)+a|0,g=(g=(A=(g=(2097151&g)<<11|rA>>>21)>>>0>(tA=g+yA|0)>>>0?A+1|0:A)>>21)+MA|0,B=(A=(g=(A=(2097151&A)<<11|tA>>>21)>>>0>(a=A+JA|0)>>>0?g+1|0:g)>>21)+hA|0,A=(g=(B=(g=(2097151&g)<<11|a>>>21)>>>0>(yA=g+uA|0)>>>0?B+1|0:B)>>21)+LA|0,g=(B=(A=(B=(2097151&B)<<11|yA>>>21)>>>0>(aA=B+qA|0)>>>0?A+1|0:A)>>21)+sA|0,A=(A=(g=(A=(2097151&A)<<11|aA>>>21)>>>0>(hA=A+HA|0)>>>0?g+1|0:g)>>21)+XA|0,g=(g=(A=(g=(2097151&g)<<11|hA>>>21)>>>0>(DA=g+dA|0)>>>0?A+1|0:A)>>21)+kA|0,B=(A=(g=(A=(2097151&A)<<11|DA>>>21)>>>0>(cA=A+zA|0)>>>0?g+1|0:g)>>21)+VA|0,A=(g=(B=(g=(2097151&g)<<11|cA>>>21)>>>0>(EA=g+II|0)>>>0?B+1|0:B)>>21)+AI|0,fA=(sA=Q-(g=-2097152&fA)|0)+((2097151&(A=(B=(2097151&B)<<11|EA>>>21)>>>0>(_A=B+$A|0)>>>0?A+1|0:A))<<11|_A>>>21)|0,A=(pA-((g>>>0>Q>>>0)+lA|0)|0)+(A>>21)|0,pA=g=(A=sA>>>0>fA>>>0?A+1|0:A)>>21,wA=(A=Ig(kA=(2097151&A)<<11|fA>>>21,g,666643,0))+(g=2097151&wA)|0,A=f,Q=A=g>>>0>wA>>>0?A+1|0:A,C[0|E]=wA,C[E+1|0]=(255&A)<<24|wA>>>8,A=2097151&rA,g=Ig(kA,pA,470296,0)+A|0,B=f,A=(Q>>21)+(A>>>0>g>>>0?B+1|0:B)|0,A=(rA=(sA=(2097151&Q)<<11|wA>>>21)+g|0)>>>0>>0?A+1|0:A,C[E+4|0]=(2047&A)<<21|rA>>>11,g=A,B=rA,C[E+3|0]=(7&A)<<29|B>>>3,C[E+2|0]=31&((65535&Q)<<16|wA>>>16)|B<<5,Q=2097151&tA,tA=Ig(kA,pA,654183,0)+Q|0,A=f,rA=(2097151&g)<<11|B>>>21,g=(g>>21)+(Q=Q>>>0>tA>>>0?A+1|0:A)|0,A=g=(tA=rA+tA|0)>>>0>>0?g+1|0:g,C[E+6|0]=(63&A)<<26|tA>>>6,Q=tA,tA=0,C[E+5|0]=tA<<13|(1572864&B)>>>19|Q<<2,B=2097151&a,a=Ig(kA,pA,-997805,-1)+B|0,g=f,g=B>>>0>a>>>0?g+1|0:g,tA=(2097151&(B=A))<<11|Q>>>21,B=(A>>=21)+g|0,B=(a=tA+a|0)>>>0>>0?B+1|0:B,C[E+9|0]=(511&B)<<23|a>>>9,C[E+8|0]=(1&B)<<31|a>>>1,g=0,C[E+7|0]=g<<18|(2080768&Q)>>>14|a<<7,g=2097151&yA,Q=Ig(kA,pA,136657,0)+g|0,A=f,A=g>>>0>Q>>>0?A+1|0:A,yA=(2097151&(g=B))<<11|a>>>21,g=A+(B=g>>21)|0,g=(Q=yA+Q|0)>>>0>>0?g+1|0:g,C[E+12|0]=(4095&g)<<20|Q>>>12,B=Q,C[E+11|0]=(15&g)<<28|B>>>4,Q=0,C[E+10|0]=Q<<15|(1966080&a)>>>17|B<<4,Q=2097151&aA,a=Ig(kA,pA,-683901,-1)+Q|0,A=f,A=Q>>>0>a>>>0?A+1|0:A,Q=g,g=A+(g>>=21)|0,g=(Q=(aA=a)+(a=(2097151&Q)<<11|B>>>21)|0)>>>0>>0?g+1|0:g,C[E+14|0]=(127&g)<<25|Q>>>7,a=0,C[E+13|0]=a<<12|(1048576&B)>>>20|Q<<1,A=g>>21,B=(g=(2097151&g)<<11|Q>>>21)>>>0>(a=g+(2097151&hA)|0)>>>0?A+1|0:A,C[E+17|0]=(1023&B)<<22|a>>>10,C[E+16|0]=(3&B)<<30|a>>>2,g=0,C[E+15|0]=g<<17|(2064384&Q)>>>15|a<<6,A=B>>21,A=(g=(2097151&B)<<11|a>>>21)>>>0>(B=g+(2097151&DA)|0)>>>0?A+1|0:A,C[E+20|0]=(8191&A)<<19|B>>>13,C[E+19|0]=(31&A)<<27|B>>>5,Q=(g=2097151&cA)+(cA=(2097151&A)<<11|B>>>21)|0,g=A>>21,g=Q>>>0>>0?g+1|0:g,cA=Q,C[E+21|0]=Q,DA=0,C[E+18|0]=DA<<14|(1835008&a)>>>18|B<<3,C[E+22|0]=(255&g)<<24|Q>>>8,B=g>>21,B=(Q=(a=(2097151&g)<<11|Q>>>21)+(2097151&EA)|0)>>>0>>0?B+1|0:B,C[E+25|0]=(2047&B)<<21|Q>>>11,C[E+24|0]=(7&B)<<29|Q>>>3,C[E+23|0]=31&((65535&g)<<16|cA>>>16)|Q<<5,A=B>>21,A=(g=(2097151&B)<<11|Q>>>21)>>>0>(B=g+(2097151&_A)|0)>>>0?A+1|0:A,C[E+27|0]=(63&A)<<26|B>>>6,a=0,C[E+26|0]=a<<13|(1572864&Q)>>>19|B<<2,g=A,A>>=21,g=(Q=(_A=(2097151&g)<<11|B>>>21)+(a=2097151&fA)|0)>>>0>>0?A+1|0:A,C[E+31|0]=(131071&g)<<15|Q>>>17,A=Q,C[E+30|0]=(511&g)<<23|A>>>9,Q=0,C[E+28|0]=Q<<18|(2080768&B)>>>14|A<<7,C[E+29|0]=_A+fA>>>1,XC(c,64),XC(_,64),I&&(i[I>>2]=64,i[I+4>>2]=0),s=t+560|0,0}function n(A,I,g){var B,Q,i,E,a,_,c,t,r,e,y,s,h,D,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l,u,x,v,R,L,P,q,z,j,X,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,fA=0,pA=0,wA=0,nA=0,kA=0,FA=0,SA=0,NA=0,GA=0,MA=0,KA=0,UA=0,bA=0,HA=0,YA=0,JA=0,dA=0,mA=0,lA=0,uA=0,xA=0,vA=0,RA=0,LA=0,PA=0,qA=0;Z=Ig(B=(W=o[g+2|0])<<16&2031616|o[0|g]|o[g+1|0]<<8,0,Q=(QA=o[I+23|0]|o[I+24|0]<<8|o[I+25|0]<<16|o[I+26|0]<<24)>>>5&2097151,0),V=f,O=Ig(i=(W=o[I+23|0])<<16&2031616|o[I+21|0]|o[I+22|0]<<8,0,E=(T=o[g+2|0]|o[g+3|0]<<8|o[g+4|0]<<16|o[g+5|0]<<24)>>>5&2097151,0),W=f+V|0,W=O>>>0>(Z=O+Z|0)>>>0?W+1|0:W,V=Ig(a=(o[g+7|0]|o[g+8|0]<<8|o[g+9|0]<<16|o[g+10|0]<<24)>>>7&2097151,0,_=(aA=o[I+15|0]|o[I+16|0]<<8|o[I+17|0]<<16|o[I+18|0]<<24)>>>6&2097151,0),O=f+W|0,IA=Z=V+Z|0,V=V>>>0>Z>>>0?O+1|0:O,O=(W=o[I+14|0])>>>24|0,$=W<<8|(gA=o[I+10|0]|o[I+11|0]<<8|o[I+12|0]<<16|o[I+13|0]<<24)>>>24,O=Ig(c=2097151&((1&(CA=(W=O)|(O=(Z=o[I+15|0])>>>16|0)))<<31|(W=(Z<<=16)|$)>>>1),0,t=(AA=o[g+10|0]|o[g+11|0]<<8|o[g+12|0]<<16|o[g+13|0]<<24)>>>4&2097151,0),V=f+V|0,CA=W=O+IA|0,Z=W>>>0>>0?V+1|0:V,V=(O=o[g+6|0])>>>24|0,IA=O<<8|T>>>24,T=r=2097151&((3&(V|=O=(W=o[g+7|0])>>>16|0))<<30|(W=IA|W<<16)>>>2),IA=0,$=(W=o[I+19|0])<<8|aA>>>24,V=O=W>>>24|0,W=(O=o[I+20|0])>>>16|0,G=V=(W|=V)>>>3|0,O=Ig(T,IA,e=(7&W)<<29|(O=O<<16|$)>>>3,V),W=f+Z|0,W=O>>>0>($=O+CA|0)>>>0?W+1|0:W,V=Ig(y=(T=o[g+15|0]|o[g+16|0]<<8|o[g+17|0]<<16|o[g+18|0]<<24)>>>6&2097151,0,s=(o[I+7|0]|o[I+8|0]<<8|o[I+9|0]<<16|o[I+10|0]<<24)>>>7&2097151,0),O=f+W|0,IA=Z=V+$|0,Z=V>>>0>Z>>>0?O+1|0:O,$=(W=o[g+14|0])<<8|AA>>>24,W=O=W>>>24|0,V=(O=o[g+15|0])>>>16|0,O=Ig(h=2097151&((1&(V|=W))<<31|(W=(O<<=16)|$)>>>1),0,D=gA>>>4&2097151,0),W=f+Z|0,AA=V=O+IA|0,IA=O>>>0>V>>>0?W+1|0:W,W=(O=o[g+19|0])>>>24|0,Z=O<<8|T>>>24,V=(O=o[g+20|0])>>>16|0,p=(7&(V|=W))<<29|(O=Z|O<<16)>>>3,eA=W=V>>>3|0,Z=W,W=(O=o[I+6|0])>>>24|0,T=O<<8|(CA=o[I+2|0]|o[I+3|0]<<8|o[I+4|0]<<16|o[I+5|0]<<24)>>>24,V=W,W=(O=o[I+7|0])>>>16|0,W=Ig(p,Z,w=2097151&((3&(W|=V))<<30|(O=O<<16|T)>>>2),0),O=f+IA|0,V=W>>>0>(Z=W+AA|0)>>>0?O+1|0:O,W=Ig(n=(W=o[g+23|0])<<16&2031616|o[g+21|0]|o[g+22|0]<<8,0,k=CA>>>5&2097151,0),O=f+V|0,V=W>>>0>(Z=W+Z|0)>>>0?O+1|0:O,O=Ig(F=(W=o[I+2|0])<<16&2031616|o[0|I]|o[I+1|0]<<8,0,hA=(CA=o[g+23|0]|o[g+24|0]<<8|o[g+25|0]<<16|o[g+26|0]<<24)>>>5&2097151,0),W=f+V|0,T=Z=O+Z|0,IA=O>>>0>Z>>>0?W+1|0:W,O=Ig(i,0,B,0),W=f,Z=(V=O)+(O=Ig(e,G,E,0))|0,V=f+W|0,V=O>>>0>Z>>>0?V+1|0:V,O=Ig(a,0,c,0),W=f+V|0,W=O>>>0>(Z=O+Z|0)>>>0?W+1|0:W,V=Ig(t,0,D,0),O=f+W|0,O=V>>>0>(Z=V+Z|0)>>>0?O+1|0:O,W=Ig(_,0,r,0),O=f+O|0,O=W>>>0>(V=W+Z|0)>>>0?O+1|0:O,Z=(W=V)+(V=Ig(y,0,w,0))|0,W=f+O|0,W=V>>>0>Z>>>0?W+1|0:W,O=Ig(h,0,s,0),V=f+W|0,V=O>>>0>(Z=O+Z|0)>>>0?V+1|0:V,Z=(O=Ig(p,eA,k,0))+Z|0,W=f+V|0,V=Ig(n,0,F,0),O=f+(O>>>0>Z>>>0?W+1|0:W)|0,Z=O=V>>>0>($=V+Z|0)>>>0?O+1|0:O,yA=O=O-(($>>>0<4293918720)-1|0)|0,W=(W=O>>>21|0)+IA|0,oA=V=(W=(O=(2097151&O)<<11|(cA=$- -1048576|0)>>>21)>>>0>(T=O+T|0)>>>0?W+1|0:W)-((T>>>0<4293918720)-1|0)|0,iA=T-(O=-2097152&(EA=T- -1048576|0))|0,BA=W-((O>>>0>T>>>0)+V|0)|0,IA=(W=o[g+27|0])<<8|CA>>>24,V=O=W>>>24|0,T=Ig(S=2097151&((3&(V|=W=(O=o[g+28|0])>>>16|0))<<30|(W=(O<<=16)|IA)>>>2),0,DA=(o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24)>>>7|0,0),IA=f,W=(O=o[I+27|0])>>>24|0,I=Ig(N=2097151&((3&(W|=V=(I=o[I+28|0])>>>16|0))<<30|(O=O<<8|QA>>>24|I<<16)>>>2),0,fA=(o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24)>>>7|0,0),O=f+IA|0,O=I>>>0>(g=I+T|0)>>>0?O+1|0:O,V=g,I=Ig(Q,0,fA,0),g=f,IA=(W=I)+(I=Ig(hA,0,DA,0))|0,W=f+g|0,W=I>>>0>IA>>>0?W+1|0:W,I=Ig(S,0,N,0),W=f+W|0,IA=W=I>>>0>(CA=I+IA|0)>>>0?W+1|0:W,AA=I=W-((CA>>>0<4293918720)-1|0)|0,W=I>>>21|0,T=(I=(2097151&I)<<11|(g=CA- -1048576|0)>>>21)+V|0,V=W+O|0,aA=W=(V=I>>>0>T>>>0?V+1|0:V)-((T>>>0<4293918720)-1|0)|0,I=T-(O=-2097152&(gA=T- -1048576|0))|0,K=O=V-((131071&W)+(O>>>0>T>>>0)|0)|0,U=I,I=Ig(I,O,666643,0),O=f+BA|0,nA=W=I+iA|0,T=I>>>0>W>>>0?O+1|0:O,iA=CA-(I=-2097152&g)|0,tA=IA-((131071&AA)+(I>>>0>CA>>>0)|0)|0,I=Ig(n,0,DA,0),g=f,W=(O=I)+(I=Ig(hA,0,N,0))|0,O=f+g|0,O=I>>>0>W>>>0?O+1|0:O,g=(I=Ig(i,0,fA,0))+W|0,W=f+O|0,W=I>>>0>g>>>0?W+1|0:W,I=Ig(Q,0,S,0),O=f+W|0,AA=g=I+g|0,I=I>>>0>g>>>0?O+1|0:O,g=Ig(Q,0,hA,0),O=f,V=(W=g)+(g=Ig(p,eA,DA,0))|0,W=f+O|0,W=g>>>0>V>>>0?W+1|0:W,O=(g=Ig(n,0,N,0))+V|0,V=f+W|0,V=g>>>0>O>>>0?V+1|0:V,W=(g=Ig(e,G,fA,0))+O|0,O=f+V|0,O=g>>>0>W>>>0?O+1|0:O,BA=(g=Ig(i,0,S,0))+W|0,W=f+O|0,CA=W=g>>>0>BA>>>0?W+1|0:W,_A=g=W-((BA>>>0<4293918720)-1|0)|0,W=I+(O=g>>>21|0)|0,g=W=(g=(2097151&g)<<11|(IA=BA- -1048576|0)>>>21)>>>0>(AA=g+AA|0)>>>0?W+1|0:W,QA=W=W-((AA>>>0<4293918720)-1|0)|0,O=iA,iA=(2097151&W)<<11|(I=AA- -1048576|0)>>>21,W=(W>>>21|0)+tA|0,b=W=(V=O+iA|0)>>>0>>0?W+1|0:W,H=I=AA-(O=-2097152&I)|0,Y=AA=g-((O>>>0>AA>>>0)+QA|0)|0,J=V,g=Ig(V,W,470296,0),O=f+T|0,O=g>>>0>(W=g+nA|0)>>>0?O+1|0:O,I=Ig(I,AA,654183,0),V=f+O|0,tA=g=I+W|0,T=I>>>0>g>>>0?V+1|0:V,QA=BA-(I=-2097152&IA)|0,BA=CA-((I>>>0>BA>>>0)+_A|0)|0,I=Ig(p,eA,N,0),g=f,W=(O=I)+(I=Ig(y,0,DA,0))|0,O=f+g|0,O=I>>>0>W>>>0?O+1|0:O,g=(I=Ig(i,0,hA,0))+W|0,W=f+O|0,W=I>>>0>g>>>0?W+1|0:W,I=Ig(Q,0,n,0),V=f+W|0,V=I>>>0>(g=I+g|0)>>>0?V+1|0:V,I=Ig(_,0,fA,0),O=f+V|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(e,G,S,0),W=f+O|0,CA=g=I+g|0,IA=I>>>0>g>>>0?W+1|0:W,I=Ig(h,0,DA,0),g=f,W=(O=I)+(I=Ig(y,0,N,0))|0,O=f+g|0,O=I>>>0>W>>>0?O+1|0:O,g=(I=Ig(Q,0,p,eA))+W|0,W=f+O|0,W=I>>>0>g>>>0?W+1|0:W,I=Ig(e,G,hA,0),V=f+W|0,V=I>>>0>(g=I+g|0)>>>0?V+1|0:V,I=Ig(i,0,n,0),O=f+V|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(c,0,fA,0),W=f+O|0,W=I>>>0>(g=I+g|0)>>>0?W+1|0:W,I=Ig(_,0,S,0),O=f+W|0,I=O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,sA=O=O-((g>>>0<4293918720)-1|0)|0,V=(W=O>>>21|0)+IA|0,iA=V=(O=(2097151&O)<<11|(_A=g- -1048576|0)>>>21)>>>0>(pA=O+CA|0)>>>0?V+1|0:V,NA=O=V-((pA>>>0<4293918720)-1|0)|0,IA=(2097151&O)<<11|(AA=pA- -1048576|0)>>>21,O=(O>>>21|0)+BA|0,d=O=(V=IA+QA|0)>>>0>>0?O+1|0:O,m=V,O=Ig(V,O,-997805,-1),W=f+T|0,BA=V=O+tA|0,T=O>>>0>V>>>0?W+1|0:W,IA=$,$=Z,O=Ig(B,0,e,G),W=f,Z=(V=O)+(O=Ig(_,0,E,0))|0,V=f+W|0,V=O>>>0>Z>>>0?V+1|0:V,W=Ig(a,0,D,0),O=f+V|0,O=W>>>0>(Z=W+Z|0)>>>0?O+1|0:O,V=Ig(t,0,s,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,V=Ig(c,0,r,0),O=f+W|0,O=V>>>0>(Z=V+Z|0)>>>0?O+1|0:O,V=Ig(y,0,k,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,O=Ig(h,0,w,0),V=f+W|0,V=O>>>0>(Z=O+Z|0)>>>0?V+1|0:V,W=Ig(p,eA,F,0),O=f+V|0,CA=Z=W+Z|0,Z=W>>>0>Z>>>0?O+1|0:O,O=Ig(B,0,_,0),W=f,V=O,O=Ig(E,0,c,0),W=f+W|0,W=O>>>0>(V=V+O|0)>>>0?W+1|0:W,QA=(O=V)+(V=Ig(a,0,s,0))|0,O=f+W|0,O=V>>>0>QA>>>0?O+1|0:O,V=Ig(t,0,w,0),W=f+O|0,W=V>>>0>(QA=V+QA|0)>>>0?W+1|0:W,O=Ig(r,0,D,0),V=f+W|0,V=O>>>0>(QA=O+QA|0)>>>0?V+1|0:V,QA=(W=Ig(y,0,F,0))+QA|0,O=f+V|0,V=Ig(h,0,k,0),W=f+(W>>>0>QA>>>0?O+1|0:O)|0,KA=W=V>>>0>(MA=V+QA|0)>>>0?W+1|0:W,xA=W=W-((MA>>>0<4293918720)-1|0)|0,V=(2097151&W)<<11|(GA=MA- -1048576|0)>>>21,W=(W>>>21|0)+Z|0,rA=W=V>>>0>(UA=V+CA|0)>>>0?W+1|0:W,vA=W=W-((UA>>>0<4293918720)-1|0)|0,V=(2097151&W)<<11|(nA=UA- -1048576|0)>>>21,W=(W>>>21|0)+$|0,W=V>>>0>(IA=V+IA|0)>>>0?W+1|0:W,O=Ig(J,b,666643,0),W=f+(W-(((V=-2097152&cA)>>>0>IA>>>0)+yA|0)|0)|0,W=O>>>0>(Z=O+(IA-V|0)|0)>>>0?W+1|0:W,V=Ig(H,Y,470296,0),O=f+W|0,O=V>>>0>(Z=V+Z|0)>>>0?O+1|0:O,V=Ig(m,d,654183,0),W=f+O|0,tA=W=V>>>0>(kA=V+Z|0)>>>0?W+1|0:W,mA=W=W-((kA>>>0<4293918720)-1|0)|0,O=(O=W>>21)+T|0,BA=O=(W=(2097151&W)<<11|(QA=kA- -1048576|0)>>>21)>>>0>(yA=W+BA|0)>>>0?O+1|0:O,bA=W=O-((yA>>>0<4293918720)-1|0)|0,JA=(2097151&W)<<11|(cA=yA- -1048576|0)>>>21,CA=W>>21,O=Ig(B,0,N,0),W=f,V=O,O=Ig(Q,0,E,0),W=f+W|0,W=O>>>0>(V=V+O|0)>>>0?W+1|0:W,Z=(O=Ig(a,0,e,G))+V|0,V=f+W|0,V=O>>>0>Z>>>0?V+1|0:V,W=Ig(_,0,t,0),O=f+V|0,O=W>>>0>(Z=W+Z|0)>>>0?O+1|0:O,V=Ig(i,0,r,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,V=Ig(y,0,D,0),O=f+W|0,O=V>>>0>(Z=V+Z|0)>>>0?O+1|0:O,V=Ig(h,0,c,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,O=Ig(s,0,p,eA),V=f+W|0,V=O>>>0>(Z=O+Z|0)>>>0?V+1|0:V,W=Ig(k,0,hA,0),O=f+V|0,O=W>>>0>(Z=W+Z|0)>>>0?O+1|0:O,V=Ig(w,0,n,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,V=(O=Z)+(Z=Ig(S,0,F,0))|0,O=f+W|0,T=V,IA=V>>>0>>0?O+1|0:O,FA=Ig(DA,0,fA,0),$=V=(SA=f)-((FA>>>0<4293918720)-1|0)|0,W=FA-(O=-2097152&(Z=FA- -1048576|0))|0,O=(aA>>>21|0)+(O=SA-((524287&V)+(O>>>0>FA>>>0)|0)|0)|0,l=O=(V=(gA=(2097151&aA)<<11|gA>>>21)+W|0)>>>0>>0?O+1|0:O,u=V,W=(2097151&oA)<<11|EA>>>21,gA=Ig(V,O,666643,0)+W|0,O=f+(oA>>>21|0)|0,O=W>>>0>gA>>>0?O+1|0:O,V=Ig(U,K,470296,0),W=f+O|0,W=(V>>>0>(gA=V+gA|0)>>>0?W+1|0:W)+IA|0,W=(O=T+gA|0)>>>0>>0?W+1|0:W,gA=(V=Ig(J,b,654183,0))+O|0,O=f+W|0,dA=T- -1048576|0,FA=IA=IA-((T>>>0<4293918720)-1|0)|0,W=Ig(H,Y,-997805,-1),V=f+(V>>>0>gA>>>0?O+1|0:O)|0,V=W>>>0>(T=W+gA|0)>>>0?V+1|0:V,EA=(O=Ig(m,d,136657,0))+(T-(W=-2097152&dA)|0)|0,W=f+(V-((W>>>0>T>>>0)+IA|0)|0)|0,V=(aA=O>>>0>EA>>>0?W+1|0:W)+CA|0,HA=O=EA+JA|0,gA=V=O>>>0>>0?V+1|0:V,SA=pA-(O=-2097152&AA)|0,pA=iA-((O>>>0>pA>>>0)+NA|0)|0,x=V=$>>>21|0,W=(O=g)+(g=Ig(M=(2097151&$)<<11|Z>>>21,V,-683901,-1))|0,O=f+I|0,iA=W-(I=-2097152&_A)|0,oA=(g>>>0>W>>>0?O+1|0:O)-((I>>>0>W>>>0)+sA|0)|0,I=Ig(Q,0,y,0),g=f,O=I,I=Ig(t,0,DA,0),W=f+g|0,W=I>>>0>(O=O+I|0)>>>0?W+1|0:W,I=Ig(h,0,N,0),V=f+W|0,V=I>>>0>(g=I+O|0)>>>0?V+1|0:V,I=Ig(i,0,p,eA),O=f+V|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(_,0,hA,0),O=f+O|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(e,G,n,0),W=f+O|0,W=I>>>0>(g=I+g|0)>>>0?W+1|0:W,I=Ig(D,0,fA,0),W=f+W|0,W=I>>>0>(g=I+g|0)>>>0?W+1|0:W,I=Ig(c,0,S,0),V=f+W|0,Z=g=I+g|0,I=I>>>0>g>>>0?V+1|0:V,g=Ig(t,0,N,0),O=f,W=g,g=Ig(a,0,DA,0),O=f+O|0,O=g>>>0>(W=W+g|0)>>>0?O+1|0:O,g=Ig(i,0,y,0),O=f+O|0,O=g>>>0>(W=g+W|0)>>>0?O+1|0:O,V=(g=Ig(Q,0,h,0))+W|0,W=f+O|0,W=g>>>0>V>>>0?W+1|0:W,g=Ig(e,G,p,eA),W=f+W|0,W=g>>>0>(O=g+V|0)>>>0?W+1|0:W,g=Ig(c,0,hA,0),V=f+W|0,V=g>>>0>(O=g+O|0)>>>0?V+1|0:V,W=(g=Ig(_,0,n,0))+O|0,O=f+V|0,O=g>>>0>W>>>0?O+1|0:O,g=Ig(s,0,fA,0),O=f+O|0,O=g>>>0>(W=g+W|0)>>>0?O+1|0:O,AA=(g=Ig(D,0,S,0))+W|0,W=f+O|0,CA=W=g>>>0>AA>>>0?W+1|0:W,YA=g=W-((AA>>>0<4293918720)-1|0)|0,V=I+(O=g>>>21|0)|0,IA=V=(g=(2097151&g)<<11|(T=AA- -1048576|0)>>>21)>>>0>(_A=g+Z|0)>>>0?V+1|0:V,sA=I=V-((_A>>>0<4293918720)-1|0)|0,W=(O=I>>>21|0)+oA|0,Z=W=(I=(2097151&I)<<11|($=_A- -1048576|0)>>>21)>>>0>(iA=I+iA|0)>>>0?W+1|0:W,oA=g=W-((iA>>>0<4293918720)-1|0)|0,V=(O=g>>21)+pA|0,v=V=(g=(W=(2097151&g)<<11|(I=iA- -1048576|0)>>>21)+SA|0)>>>0>>0?V+1|0:V,NA=EA- -1048576|0,JA=W=aA-((EA>>>0<4293918720)-1|0)|0,lA=g,g=Ig(g,V,-683901,-1),O=f+gA|0,SA=O=(W=(O=g>>>0>(V=g+HA|0)>>>0?O+1|0:O)-(((g=-2097152&NA)>>>0>V>>>0)+W|0)|0)-(((gA=V-g|0)>>>0<4293918720)-1|0)|0,P=gA-(g=-2097152&(pA=gA- -1048576|0))|0,RA=W-((g>>>0>gA>>>0)+O|0)|0,g=Ig(lA,v,136657,0),W=f+(BA-(((O=-2097152&cA)>>>0>yA>>>0)+bA|0)|0)|0,uA=V=g+(yA-O|0)|0,g=g>>>0>V>>>0?W+1|0:W,wA=iA-(I&=-2097152)|0,cA=Z-((I>>>0>iA>>>0)+oA|0)|0,I=Ig(u,l,-683901,-1),O=f,W=I,I=Ig(M,x,136657,0),O=f+O|0,W=IA+(I>>>0>(V=W+I|0)>>>0?O+1|0:O)|0,aA=(O=V+_A|0)-(I=-2097152&$)|0,gA=(W=O>>>0<_A>>>0?W+1|0:W)-((I>>>0>O>>>0)+sA|0)|0,I=Ig(M,x,-997805,-1),O=f+CA|0,O=I>>>0>(W=I+AA|0)>>>0?O+1|0:O,I=Ig(u,l,136657,0),O=f+O|0,O=I>>>0>(W=I+W|0)>>>0?O+1|0:O,V=(I=Ig(U,K,-683901,-1))+W|0,W=f+O|0,W=I>>>0>V>>>0?W+1|0:W,IA=V-(I=-2097152&T)|0,$=W-((I>>>0>V>>>0)+YA|0)|0,I=Ig(Q,0,t,0),O=f,V=(W=I)+(I=Ig(a,0,N,0))|0,W=f+O|0,W=I>>>0>V>>>0?W+1|0:W,I=Ig(r,0,DA,0),O=f+W|0,O=I>>>0>(V=I+V|0)>>>0?O+1|0:O,I=Ig(y,0,e,G),W=f+O|0,W=I>>>0>(V=I+V|0)>>>0?W+1|0:W,I=Ig(i,0,h,0),O=f+W|0,O=I>>>0>(V=I+V|0)>>>0?O+1|0:O,W=(I=Ig(_,0,p,eA))+V|0,V=f+O|0,V=I>>>0>W>>>0?V+1|0:V,O=(I=Ig(D,0,hA,0))+W|0,W=f+V|0,W=I>>>0>O>>>0?W+1|0:W,V=(I=Ig(c,0,n,0))+O|0,O=f+W|0,O=I>>>0>V>>>0?O+1|0:O,I=Ig(w,0,fA,0),W=f+O|0,W=I>>>0>(V=I+V|0)>>>0?W+1|0:W,I=Ig(s,0,S,0),O=f+W|0,Z=V=I+V|0,I=I>>>0>V>>>0?O+1|0:O,O=Ig(Q,0,a,0),W=f,T=(V=O)+(O=Ig(E,0,DA,0))|0,V=f+W|0,V=O>>>0>T>>>0?V+1|0:V,O=Ig(i,0,t,0),W=f+V|0,W=O>>>0>(T=O+T|0)>>>0?W+1|0:W,V=Ig(r,0,N,0),O=f+W|0,O=V>>>0>(T=V+T|0)>>>0?O+1|0:O,V=Ig(_,0,y,0),W=f+O|0,W=V>>>0>(T=V+T|0)>>>0?W+1|0:W,V=Ig(e,G,h,0),O=f+W|0,O=V>>>0>(T=V+T|0)>>>0?O+1|0:O,W=Ig(c,0,p,eA),V=f+O|0,V=W>>>0>(T=W+T|0)>>>0?V+1|0:V,O=Ig(s,0,hA,0),W=f+V|0,W=O>>>0>(T=O+T|0)>>>0?W+1|0:W,V=Ig(D,0,n,0),O=f+W|0,O=V>>>0>(T=V+T|0)>>>0?O+1|0:O,V=Ig(k,0,fA,0),W=f+O|0,W=V>>>0>(T=V+T|0)>>>0?W+1|0:W,V=Ig(w,0,S,0),O=f+W|0,yA=O=V>>>0>(bA=V+T|0)>>>0?O+1|0:O,q=O=O-((bA>>>0<4293918720)-1|0)|0,W=I+(W=O>>>21|0)|0,EA=W=(O=(2097151&O)<<11|(oA=bA- -1048576|0)>>>21)>>>0>(HA=O+Z|0)>>>0?W+1|0:W,z=I=W-((HA>>>0<4293918720)-1|0)|0,O=(W=I>>>21|0)+$|0,iA=O=(I=(2097151&I)<<11|(_A=HA- -1048576|0)>>>21)>>>0>(YA=I+IA|0)>>>0?O+1|0:O,j=I=O-((YA>>>0<4293918720)-1|0)|0,W=(W=I>>21)+gA|0,CA=W=(I=(2097151&I)<<11|(BA=YA- -1048576|0)>>>21)>>>0>(sA=I+aA|0)>>>0?W+1|0:W,LA=I=W-((sA>>>0<4293918720)-1|0)|0,O=(W=I>>21)+cA|0,R=O=(I=(V=(2097151&I)<<11|(Z=sA- -1048576|0)>>>21)+wA|0)>>>0>>0?O+1|0:O,wA=I,I=Ig(I,O,-683901,-1),V=f+g|0,PA=O=I+uA|0,T=I>>>0>O>>>0?V+1|0:V,qA=kA-(I=-2097152&QA)|0,mA=tA-((I>>>0>kA>>>0)+mA|0)|0,I=Ig(H,Y,666643,0),O=f+(rA-(((g=-2097152&nA)>>>0>UA>>>0)+vA|0)|0)|0,O=I>>>0>(W=I+(UA-g|0)|0)>>>0?O+1|0:O,g=(I=Ig(m,d,470296,0))+W|0,W=f+O|0,nA=g,g=I>>>0>g>>>0?W+1|0:W,AA=MA-(I=-2097152&GA)|0,IA=KA-((I>>>0>MA>>>0)+xA|0)|0,I=Ig(B,0,c,0),O=f,W=I,I=Ig(E,0,D,0),V=f+O|0,V=I>>>0>(W=W+I|0)>>>0?V+1|0:V,I=Ig(a,0,w,0),O=f+V|0,O=I>>>0>(W=I+W|0)>>>0?O+1|0:O,V=(I=Ig(t,0,k,0))+W|0,W=f+O|0,W=I>>>0>V>>>0?W+1|0:W,I=Ig(r,0,s,0),O=f+W|0,O=I>>>0>(V=I+V|0)>>>0?O+1|0:O,I=Ig(h,0,F,0),W=f+O|0,$=V=I+V|0,I=I>>>0>V>>>0?W+1|0:W,O=Ig(B,0,D,0),W=f,gA=(V=O)+(O=Ig(E,0,s,0))|0,V=f+W|0,V=O>>>0>gA>>>0?V+1|0:V,W=Ig(a,0,k,0),O=f+V|0,O=W>>>0>(gA=W+gA|0)>>>0?O+1|0:O,V=Ig(t,0,F,0),W=f+O|0,W=V>>>0>(gA=V+gA|0)>>>0?W+1|0:W,V=Ig(r,0,w,0),O=f+W|0,tA=O=V>>>0>(kA=V+gA|0)>>>0?O+1|0:O,X=O=O-((kA>>>0<4293918720)-1|0)|0,V=I+(W=O>>>21|0)|0,cA=V=(O=(2097151&O)<<11|(QA=kA- -1048576|0)>>>21)>>>0>(KA=O+$|0)>>>0?V+1|0:V,xA=I=V-((KA>>>0<4293918720)-1|0)|0,O=(W=I>>>21|0)+IA|0,O=(I=(2097151&I)<<11|(aA=KA- -1048576|0)>>>21)>>>0>(V=I+AA|0)>>>0?O+1|0:O,I=Ig(m,d,666643,0),W=f+O|0,gA=W=I>>>0>(GA=I+V|0)>>>0?W+1|0:W,vA=I=W-((GA>>>0<4293918720)-1|0)|0,O=g+(O=I>>21)|0,IA=O=(I=(2097151&I)<<11|(AA=GA- -1048576|0)>>>21)>>>0>(rA=I+nA|0)>>>0?O+1|0:O,uA=I=O-((rA>>>0<4293918720)-1|0)|0,W=(O=I>>21)+mA|0,W=(I=(2097151&I)<<11|($=rA- -1048576|0)>>>21)>>>0>(g=I+qA|0)>>>0?W+1|0:W,I=Ig(lA,v,-997805,-1),V=f+W|0,V=I>>>0>(O=I+g|0)>>>0?V+1|0:V,UA=I=sA-(g=-2097152&Z)|0,L=W=CA-((g>>>0>sA>>>0)+LA|0)|0,Z=(g=Ig(wA,R,136657,0))+O|0,O=f+V|0,I=Ig(I,W,-683901,-1),O=f+(g>>>0>Z>>>0?O+1|0:O)|0,Z=O=I>>>0>(CA=I+Z|0)>>>0?O+1|0:O,MA=I=O-((CA>>>0<4293918720)-1|0)|0,O=(W=I>>21)+T|0,g=O=(T=nA=(I=(2097151&I)<<11|(V=CA- -1048576|0)>>>21)+PA|0)>>>0>>0?O+1|0:O,sA=O=O-((T>>>0<4293918720)-1|0)|0,nA=(2097151&O)<<11|(I=T- -1048576|0)>>>21,O=(O>>21)+RA|0,RA=mA=nA+P|0,nA=nA>>>0>mA>>>0?O+1|0:O,LA=T-(I&=-2097152)|0,PA=g-((I>>>0>T>>>0)+sA|0)|0,qA=CA-(I=-2097152&V)|0,mA=Z-((I>>>0>CA>>>0)+MA|0)|0,I=Ig(lA,v,654183,0),W=f+(IA-(((g=-2097152&$)>>>0>rA>>>0)+uA|0)|0)|0,W=I>>>0>(O=I+(rA-g|0)|0)>>>0?W+1|0:W,g=(I=Ig(wA,R,-997805,-1))+O|0,O=f+W|0,O=I>>>0>g>>>0?O+1|0:O,I=Ig(UA,L,136657,0),O=f+O|0,uA=g=I+g|0,I=I>>>0>g>>>0?O+1|0:O,MA=YA-(g=-2097152&BA)|0,rA=iA-((g>>>0>YA>>>0)+j|0)|0,g=Ig(u,l,-997805,-1),O=f,V=(W=g)+(g=Ig(M,x,654183,0))|0,W=f+O|0,W=g>>>0>V>>>0?W+1|0:W,g=Ig(U,K,136657,0),O=f+W|0,O=g>>>0>(V=g+V|0)>>>0?O+1|0:O,g=Ig(J,b,-683901,-1),O=f+O|0,W=EA+(g>>>0>(V=g+V|0)>>>0?O+1|0:O)|0,BA=(O=V+HA|0)-(g=-2097152&_A)|0,_A=(W=O>>>0>>0?W+1|0:W)-((g>>>0>O>>>0)+z|0)|0,g=Ig(u,l,654183,0),O=f,V=(W=g)+(g=Ig(M,x,470296,0))|0,W=f+O|0,W=g>>>0>V>>>0?W+1|0:W,g=Ig(U,K,-997805,-1),O=f+W|0,W=yA+(g>>>0>(V=g+V|0)>>>0?O+1|0:O)|0,W=(g=V+bA|0)>>>0>>0?W+1|0:W,V=(O=g)+(g=Ig(J,b,136657,0))|0,O=f+W|0,O=g>>>0>V>>>0?O+1|0:O,W=(g=Ig(H,Y,-683901,-1))+V|0,V=f+O|0,V=g>>>0>W>>>0?V+1|0:V,$=W-(g=-2097152&oA)|0,Z=V-((g>>>0>W>>>0)+q|0)|0,g=Ig(B,0,DA,0),O=f,W=g,g=Ig(E,0,N,0),O=f+O|0,O=g>>>0>(W=W+g|0)>>>0?O+1|0:O,g=Ig(i,0,a,0),O=f+O|0,O=g>>>0>(W=g+W|0)>>>0?O+1|0:O,g=Ig(e,G,t,0),V=f+O|0,V=g>>>0>(W=g+W|0)>>>0?V+1|0:V,O=(g=Ig(Q,0,r,0))+W|0,W=f+V|0,W=g>>>0>O>>>0?W+1|0:W,g=Ig(y,0,c,0),W=f+W|0,W=g>>>0>(O=g+O|0)>>>0?W+1|0:W,V=(g=Ig(_,0,h,0))+O|0,O=f+W|0,O=g>>>0>V>>>0?O+1|0:O,g=Ig(D,0,p,eA),O=f+O|0,O=g>>>0>(W=g+V|0)>>>0?O+1|0:O,g=Ig(w,0,hA,0),V=f+O|0,V=g>>>0>(W=g+W|0)>>>0?V+1|0:V,O=(g=Ig(s,0,n,0))+W|0,W=f+V|0,W=g>>>0>O>>>0?W+1|0:W,g=Ig(F,0,fA,0),W=f+W|0,W=g>>>0>(O=g+O|0)>>>0?W+1|0:W,V=(g=Ig(S,0,k,0))+O|0,O=f+W|0,O=(FA>>>21|0)+(O=g>>>0>V>>>0?O+1|0:O)|0,CA=O=(g=(2097151&FA)<<11|dA>>>21)>>>0>(EA=g+V|0)>>>0?O+1|0:O,bA=g=O-((EA>>>0<4293918720)-1|0)|0,W=(W=g>>>21|0)+Z|0,IA=W=(g=(2097151&g)<<11|(T=EA- -1048576|0)>>>21)>>>0>(iA=g+$|0)>>>0?W+1|0:W,sA=g=W-((iA>>>0<4293918720)-1|0)|0,O=(W=g>>21)+_A|0,Z=O=(g=(2097151&g)<<11|($=iA- -1048576|0)>>>21)>>>0>(BA=g+BA|0)>>>0?O+1|0:O,oA=O=O-((BA>>>0<4293918720)-1|0)|0,W=(W=O>>21)+rA|0,rA=W=(O=(V=(2097151&O)<<11|(g=BA- -1048576|0)>>>21)+MA|0)>>>0>>0?W+1|0:W,dA=O,W=Ig(O,W,-683901,-1),O=f+I|0,_A=V=W+uA|0,I=W>>>0>V>>>0?O+1|0:O,O=Ig(lA,v,470296,0),V=f+(gA-(((W=-2097152&AA)>>>0>GA>>>0)+vA|0)|0)|0,V=O>>>0>(AA=O+(GA-W|0)|0)>>>0?V+1|0:V,O=Ig(wA,R,654183,0),W=f+V|0,W=O>>>0>(AA=O+AA|0)>>>0?W+1|0:W,V=Ig(UA,L,-997805,-1),O=f+W|0,O=V>>>0>(AA=V+AA|0)>>>0?O+1|0:O,FA=g=BA-(W=-2097152&g)|0,eA=Z=Z-((W>>>0>BA>>>0)+oA|0)|0,AA=(V=Ig(dA,rA,136657,0))+AA|0,W=f+O|0,g=Ig(g,Z,-683901,-1),V=f+(V>>>0>AA>>>0?W+1|0:W)|0,Z=V=g>>>0>(gA=g+AA|0)>>>0?V+1|0:V,yA=W=V-((gA>>>0<4293918720)-1|0)|0,V=(2097151&W)<<11|(g=gA- -1048576|0)>>>21,W=(W>>21)+I|0,oA=V=(W=V>>>0>(AA=V+_A|0)>>>0?W+1|0:W)-((AA>>>0<4293918720)-1|0)|0,BA=(2097151&V)<<11|(I=AA- -1048576|0)>>>21,V=(V>>21)+mA|0,hA=_A=BA+qA|0,_A=BA>>>0>_A>>>0?V+1|0:V,DA=AA-(I&=-2097152)|0,fA=W-((I>>>0>AA>>>0)+oA|0)|0,HA=gA-(I=-2097152&g)|0,YA=Z-((I>>>0>gA>>>0)+yA|0)|0,I=Ig(lA,v,666643,0),W=f+(cA-(((g=-2097152&aA)>>>0>KA>>>0)+xA|0)|0)|0,W=I>>>0>(O=I+(KA-g|0)|0)>>>0?W+1|0:W,I=Ig(wA,R,470296,0),V=f+W|0,V=I>>>0>(g=I+O|0)>>>0?V+1|0:V,I=Ig(UA,L,654183,0),W=f+V|0,AA=g=I+g|0,I=I>>>0>g>>>0?W+1|0:W,$=iA-(g=-2097152&$)|0,Z=IA-((g>>>0>iA>>>0)+sA|0)|0,g=Ig(u,l,470296,0),O=f,W=g,g=Ig(M,x,666643,0),O=f+O|0,O=g>>>0>(W=W+g|0)>>>0?O+1|0:O,g=Ig(U,K,654183,0),V=f+O|0,V=g>>>0>(W=g+W|0)>>>0?V+1|0:V,O=(g=Ig(J,b,-997805,-1))+W|0,W=f+V|0,W=g>>>0>O>>>0?W+1|0:W,g=Ig(H,Y,136657,0),W=f+W|0,O=CA+(g>>>0>(V=g+O|0)>>>0?W+1|0:W)|0,O=(g=V+EA|0)>>>0>>0?O+1|0:O,W=g,g=Ig(m,d,-683901,-1),O=f+O|0,O=g>>>0>(V=W+g|0)>>>0?O+1|0:O,oA=(g=(2097151&JA)<<11|NA>>>21)+(V-(W=-2097152&T)|0)|0,W=(O-((W>>>0>V>>>0)+bA|0)|0)+(JA>>21)|0,iA=W=g>>>0>oA>>>0?W+1|0:W,sA=g=W-((oA>>>0<4293918720)-1|0)|0,W=(O=g>>21)+Z|0,JA=W=(g=(V=(2097151&g)<<11|(BA=oA- -1048576|0)>>>21)+$|0)>>>0>>0?W+1|0:W,yA=g,g=Ig(g,W,-683901,-1),V=f+I|0,V=g>>>0>(O=g+AA|0)>>>0?V+1|0:V,I=Ig(dA,rA,-997805,-1),W=f+V|0,W=I>>>0>(g=I+O|0)>>>0?W+1|0:W,I=Ig(FA,eA,136657,0),O=f+W|0,NA=g=I+g|0,$=I>>>0>g>>>0?O+1|0:O,T=kA-(I=-2097152&QA)|0,IA=tA-((I>>>0>kA>>>0)+X|0)|0,I=Ig(B,0,s,0),g=f,O=I,I=Ig(E,0,w,0),W=f+g|0,W=I>>>0>(O=O+I|0)>>>0?W+1|0:W,I=Ig(a,0,F,0),W=f+W|0,W=I>>>0>(g=I+O|0)>>>0?W+1|0:W,I=Ig(r,0,k,0),O=f+W|0,I=I>>>0>(W=g=I+g|0)>>>0?O+1|0:O,g=Ig(B,0,w,0),O=f,Z=(V=g)+(g=Ig(E,0,k,0))|0,V=f+O|0,V=g>>>0>Z>>>0?V+1|0:V,g=Ig(r,0,F,0),O=f+V|0,g=O=g>>>0>(Z=g+Z|0)>>>0?O+1|0:O,lA=O=O-((Z>>>0<4293918720)-1|0)|0,V=O>>>21|0,EA=(O=(2097151&O)<<11|(cA=Z- -1048576|0)>>>21)+W|0,W=I+V|0,aA=W=O>>>0>EA>>>0?W+1|0:W,KA=I=W-((EA>>>0<4293918720)-1|0)|0,O=(V=I>>>21|0)+IA|0,O=(I=(2097151&I)<<11|(gA=EA- -1048576|0)>>>21)>>>0>(W=I+T|0)>>>0?O+1|0:O,V=(I=Ig(wA,R,666643,0))+W|0,W=f+O|0,W=I>>>0>V>>>0?W+1|0:W,I=Ig(UA,L,470296,0),W=f+W|0,W=I>>>0>(O=I+V|0)>>>0?W+1|0:W,V=(I=Ig(yA,JA,136657,0))+O|0,O=f+W|0,O=I>>>0>V>>>0?O+1|0:O,W=(I=Ig(dA,rA,654183,0))+V|0,V=f+O|0,V=I>>>0>W>>>0?V+1|0:V,I=Ig(FA,eA,-997805,-1),O=f+V|0,CA=O=I>>>0>(AA=I+W|0)>>>0?O+1|0:O,GA=I=O-((AA>>>0<4293918720)-1|0)|0,W=(V=I>>21)+$|0,NA=O=(W=(I=(O=(2097151&I)<<11|(T=AA- -1048576|0)>>>21)+NA|0)>>>0>>0?W+1|0:W)-((I>>>0<4293918720)-1|0)|0,$=(2097151&O)<<11|(IA=I- -1048576|0)>>>21,O=(O>>21)+YA|0,MA=QA=$+HA|0,tA=$>>>0>QA>>>0?O+1|0:O,$=I,V=W,W=(iA-(((O=-2097152&BA)>>>0>oA>>>0)+sA|0)|0)+(SA>>21)|0,QA=W=(I=(oA-O|0)+(BA=(2097151&SA)<<11|pA>>>21)|0)>>>0>>0?W+1|0:W,bA=W=W-((I>>>0<4293918720)-1|0)|0,oA=O=W>>21,W=Ig(wA=(2097151&W)<<11|(iA=I- -1048576|0)>>>21,O,-683901,-1),O=f+V|0,O=W>>>0>($=W+$|0)>>>0?O+1|0:O,HA=$-(W=-2097152&IA)|0,YA=O-((W>>>0>$>>>0)+NA|0)|0,O=Ig(wA,oA,136657,0),W=f+CA|0,W=O>>>0>(V=O+AA|0)>>>0?W+1|0:W,sA=V-(O=-2097152&T)|0,NA=W-((O>>>0>V>>>0)+GA|0)|0,V=(O=Ig(UA,L,666643,0))+(EA-(W=-2097152&gA)|0)|0,W=f+(aA-((W>>>0>EA>>>0)+KA|0)|0)|0,W=O>>>0>V>>>0?W+1|0:W,$=(O=Ig(yA,JA,-997805,-1))+V|0,V=f+W|0,V=O>>>0>$>>>0?V+1|0:V,W=Ig(dA,rA,470296,0),O=f+V|0,O=W>>>0>($=W+$|0)>>>0?O+1|0:O,V=Ig(FA,eA,654183,0),W=f+O|0,SA=$=V+$|0,CA=V>>>0>$>>>0?W+1|0:W,$=Z,Z=g,g=Ig(E,0,F,0),O=f,W=g,g=Ig(B,0,k,0),O=f+O|0,O=g>>>0>(V=W+g|0)>>>0?O+1|0:O,g=Ig(B,0,F,0),kA=W=f,EA=g,aA=g- -1048576|0,KA=g=W-((g>>>0<4293918720)-1|0)|0,W=g>>>21|0,BA=(g=(2097151&g)<<11|aA>>>21)+V|0,V=W+O|0,gA=V=g>>>0>BA>>>0?V+1|0:V,GA=g=V-((BA>>>0<4293918720)-1|0)|0,O=(W=g>>>21|0)+Z|0,O=(g=(2097151&g)<<11|(AA=BA- -1048576|0)>>>21)>>>0>(V=g+$|0)>>>0?O+1|0:O,Z=(g=Ig(yA,JA,654183,0))+(V-(W=-2097152&cA)|0)|0,V=f+(O-((8191&lA)+(W>>>0>V>>>0)|0)|0)|0,V=g>>>0>Z>>>0?V+1|0:V,g=Ig(dA,rA,666643,0),W=f+V|0,W=g>>>0>(O=g+Z|0)>>>0?W+1|0:W,T=(g=Ig(FA,eA,470296,0))+O|0,O=f+W|0,IA=O=g>>>0>T>>>0?O+1|0:O,pA=g=O-((T>>>0<4293918720)-1|0)|0,W=(W=g>>21)+CA|0,V=W=(g=(2097151&g)<<11|($=T- -1048576|0)>>>21)>>>0>(Z=g+SA|0)>>>0?W+1|0:W,cA=O=W-((Z>>>0<4293918720)-1|0)|0,CA=(2097151&O)<<11|(g=Z- -1048576|0)>>>21,O=(O>>21)+NA|0,CA=CA>>>0>(rA=SA=CA+sA|0)>>>0?O+1|0:O,W=Ig(wA,oA,-997805,-1),O=f+V|0,dA=(Z=W+Z|0)-(g&=-2097152)|0,NA=(W>>>0>Z>>>0?O+1|0:O)-((g>>>0>Z>>>0)+cA|0)|0,g=Ig(wA,oA,654183,0),V=f+IA|0,V=g>>>0>(O=g+T|0)>>>0?V+1|0:V,SA=O-(g=-2097152&$)|0,pA=V-((g>>>0>O>>>0)+pA|0)|0,g=Ig(yA,JA,470296,0),W=f+(gA-((8191&GA)+((O=-2097152&AA)>>>0>BA>>>0)|0)|0)|0,W=g>>>0>(V=g+(BA-O|0)|0)>>>0?W+1|0:W,g=Ig(FA,eA,666643,0),W=f+W|0,W=g>>>0>(O=g+V|0)>>>0?W+1|0:W,Z=O,g=Ig(yA,JA,666643,0),V=f+(kA-((2047&KA)+((O=-2097152&aA)>>>0>EA>>>0)|0)|0)|0,T=V=g>>>0>(AA=g+(EA-O|0)|0)>>>0?V+1|0:V,cA=g=V-((AA>>>0<4293918720)-1|0)|0,W=W+(O=g>>21)|0,aA=g=(W=(g=(2097151&g)<<11|(IA=AA- -1048576|0)>>>21)>>>0>($=g+Z|0)>>>0?W+1|0:W)-(($>>>0<4293918720)-1|0)|0,V=(O=g>>21)+pA|0,g=(g=(2097151&g)<<11|(Z=$- -1048576|0)>>>21)>>>0>(gA=g+SA|0)>>>0?V+1|0:V,O=Ig(wA,oA,470296,0),W=f+W|0,W=O>>>0>(V=O+$|0)>>>0?W+1|0:W,Z=V-(O=-2097152&Z)|0,$=W-((O>>>0>V>>>0)+aA|0)|0,O=Ig(wA,oA,666643,0),V=f+(T-(((W=-2097152&IA)>>>0>AA>>>0)+cA|0)|0)|0,O=(W=(V=O>>>0>(BA=O+(AA-W|0)|0)>>>0?V+1|0:V)>>21)+$|0,W=g+(V=(O=(V=(2097151&V)<<11|BA>>>21)>>>0>(Z=V+Z|0)>>>0?O+1|0:O)>>21)|0,O=(O=(W=(g=$=(O=(2097151&O)<<11|Z>>>21)+gA|0)>>>0>>0?W+1|0:W)>>21)+NA|0,W=(W=(O=(W=(2097151&W)<<11|g>>>21)>>>0>(cA=W+dA|0)>>>0?O+1|0:O)>>21)+CA|0,V=(O=(W=(O=(2097151&O)<<11|cA>>>21)>>>0>(aA=O+rA|0)>>>0?W+1|0:W)>>21)+YA|0,O=(W=(V=(W=(2097151&W)<<11|aA>>>21)>>>0>(gA=W+HA|0)>>>0?V+1|0:V)>>21)+tA|0,W=(V=(O=(V=(2097151&V)<<11|gA>>>21)>>>0>(AA=V+MA|0)>>>0?O+1|0:O)>>21)+fA|0,O=(O=(W=(O=(2097151&O)<<11|AA>>>21)>>>0>(CA=O+DA|0)>>>0?W+1|0:W)>>21)+_A|0,W=(W=(O=(W=(2097151&W)<<11|CA>>>21)>>>0>(T=W+hA|0)>>>0?O+1|0:O)>>21)+PA|0,V=(O=(W=(O=(2097151&O)<<11|T>>>21)>>>0>(IA=O+LA|0)>>>0?W+1|0:W)>>21)+nA|0,W=(QA-((I>>>0<(O=-2097152&iA)>>>0)+bA|0)|0)+((V=(W=(2097151&W)<<11|IA>>>21)>>>0>($=W+RA|0)>>>0?V+1|0:V)>>21)|0,QA=O=(W=(iA=(tA=I-O|0)+((2097151&V)<<11|$>>>21)|0)>>>0>>0?W+1|0:W)>>21,I=(I=Ig(tA=(2097151&W)<<11|iA>>>21,O,666643,0))+(O=2097151&BA)|0,V=f,C[0|A]=I,V=I>>>0>>0?V+1|0:V,C[A+1|0]=(255&V)<<24|I>>>8,O=2097151&Z,Z=Ig(tA,QA,470296,0)+O|0,W=f,W=(V>>21)+(W=O>>>0>Z>>>0?W+1|0:W)|0,W=(Z=(BA=(2097151&V)<<11|I>>>21)+Z|0)>>>0>>0?W+1|0:W,C[A+4|0]=(2047&W)<<21|Z>>>11;C[A+3|0]=(7&W)<<29|Z>>>3,C[A+2|0]=31&((65535&V)<<16|I>>>16)|Z<<5,I=2097151&g,g=Ig(tA,QA,654183,0)+I|0,V=f,V=I>>>0>g>>>0?V+1|0:V,I=W,O=(W>>=21)+V|0,I=O=(I=(2097151&I)<<11|Z>>>21)>>>0>(g=I+g|0)>>>0?O+1|0:O,C[A+6|0]=(63&O)<<26|g>>>6,W=0,C[A+5|0]=W<<13|(1572864&Z)>>>19|g<<2,W=2097151&cA,V=Ig(tA,QA,-997805,-1)+W|0,O=f,O=W>>>0>V>>>0?O+1|0:O,W=(W=I>>21)+O|0,W=(I=(Z=V)+(V=(2097151&I)<<11|g>>>21)|0)>>>0>>0?W+1|0:W,C[A+9|0]=(511&W)<<23|I>>>9,C[A+8|0]=(1&W)<<31|I>>>1,O=0,C[A+7|0]=O<<18|(2080768&g)>>>14|I<<7,g=2097151&aA,O=Ig(tA,QA,136657,0)+g|0,V=f,V=g>>>0>O>>>0?V+1|0:V,g=(Z=(2097151&(g=W))<<11|I>>>21)+O|0,O=(W>>=21)+V|0,O=g>>>0>>0?O+1|0:O,C[A+12|0]=(4095&O)<<20|g>>>12,C[A+11|0]=(15&O)<<28|g>>>4,W=0,C[A+10|0]=W<<15|(1966080&I)>>>17|g<<4,I=2097151&gA,V=Ig(tA,QA,-683901,-1)+I|0,W=f,W=I>>>0>V>>>0?W+1|0:W,I=O,O=W+(O>>=21)|0,O=(I=(Z=V)+(V=(2097151&I)<<11|g>>>21)|0)>>>0>>0?O+1|0:O,C[A+14|0]=(127&O)<<25|I>>>7,W=0,C[A+13|0]=W<<12|(1048576&g)>>>20|I<<1,W=O>>21,W=(g=(O=(2097151&O)<<11|I>>>21)+(2097151&AA)|0)>>>0>>0?W+1|0:W,C[A+17|0]=(1023&W)<<22|g>>>10,C[A+16|0]=(3&W)<<30|g>>>2,O=0,C[A+15|0]=O<<17|(2064384&I)>>>15|g<<6,I=W,W>>=21,V=(I=(O=(2097151&I)<<11|g>>>21)+(2097151&CA)|0)>>>0>>0?W+1|0:W,C[A+20|0]=(8191&V)<<19|I>>>13,C[A+19|0]=(31&V)<<27|I>>>5,O=V>>21,O=(W=(Z=(2097151&V)<<11|I>>>21)+(2097151&T)|0)>>>0>>0?O+1|0:O,Z=W,C[A+21|0]=W,W=0,C[A+18|0]=W<<14|(1835008&g)>>>18|I<<3,C[A+22|0]=(255&O)<<24|Z>>>8,W=O>>21,W=(I=(g=(2097151&O)<<11|Z>>>21)+(2097151&IA)|0)>>>0>>0?W+1|0:W,C[A+25|0]=(2047&W)<<21|I>>>11,C[A+24|0]=(7&W)<<29|I>>>3,C[A+23|0]=31&((65535&O)<<16|Z>>>16)|I<<5,O=(2097151&W)<<11|I>>>21,W>>=21,W=(g=O+(2097151&$)|0)>>>0>>0?W+1|0:W,C[A+27|0]=(63&W)<<26|g>>>6,O=0,C[A+26|0]=O<<13|(1572864&I)>>>19|g<<2,I=W,O=W>>=21,O=(I=(Z=(2097151&I)<<11|g>>>21)+(V=2097151&iA)|0)>>>0>>0?O+1|0:O,C[A+31|0]=(131071&O)<<15|I>>>17,C[A+30|0]=(511&O)<<23|I>>>9,W=0,C[A+28|0]=W<<18|(2080768&g)>>>14|I<<7,C[A+29|0]=Z+iA>>>1}function k(A,I,g,C){for(var B=0,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0;E=(B=_<<3)+g|0,Q=o[0|(B=I+B|0)]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,G=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,c=Q<<24|(65280&Q)<<8,t=(a=16711680&Q)<<24,a=a>>>8|0,B=(e=-16777216&Q)>>>24|0,i[E>>2]=t|e<<8|-16777216&((255&G)<<24|Q>>>8)|16711680&((16777215&G)<<8|Q>>>24)|G>>>8&65280|G>>>24,Q=B|a|c,B=0,i[E+4>>2]=Q|B,16!=(0|(_=_+1|0)););for(I=i[A+4>>2],i[C>>2]=i[A>>2],i[C+4>>2]=I,I=i[A+60>>2],i[C+56>>2]=i[A+56>>2],i[C+60>>2]=I,I=i[A+52>>2],i[C+48>>2]=i[A+48>>2],i[C+52>>2]=I,I=i[A+44>>2],i[C+40>>2]=i[A+40>>2],i[C+44>>2]=I,I=i[A+36>>2],i[C+32>>2]=i[A+32>>2],i[C+36>>2]=I,I=i[A+28>>2],i[C+24>>2]=i[A+24>>2],i[C+28>>2]=I,I=i[A+20>>2],i[C+16>>2]=i[A+16>>2],i[C+20>>2]=I,I=i[A+12>>2],i[C+8>>2]=i[A+8>>2],i[C+12>>2]=I;E=i[C+56>>2],a=i[C+60>>2],B=i[(I=G=(M=P<<3)+g|0)>>2],I=i[I+4>>2],k=Q=i[C+36>>2],Q=UI(p=i[C+32>>2],Q,50),_=f,Q=UI(p,k,46)^Q,_^=f,Q=UI(p,k,23)^Q,I=(f^_)+I|0,I=(B=Q+B|0)>>>0>>0?I+1|0:I,B=(_=i[(Q=M+34416|0)>>2])+B|0,I=i[Q+4>>2]+I|0,I=B>>>0<_>>>0?I+1|0:I,Q=(_=((t=i[C+48>>2])^(y=i[C+40>>2]))&p^t)+B|0,B=(((w=i[C+52>>2])^(F=i[C+44>>2]))&k^w)+I|0,I=(Q>>>0<_>>>0?B+1|0:B)+a|0,I=(E=Q+E|0)>>>0>>0?I+1|0:I,_=(Q=i[C+24>>2])+E|0,B=i[C+28>>2]+I|0,s=B=Q>>>0>_>>>0?B+1|0:B,i[C+24>>2]=_,i[C+28>>2]=B,n=B=i[C+4>>2],B=UI(Q=i[C>>2],B,36),a=f,B=UI(Q,n,30)^B,a^=f,e=E+(UI(Q,n,25)^B)|0,B=I+(f^a)|0,B=E>>>0>e>>>0?B+1|0:B,c=(I=e)+(e=Q&((a=i[C+16>>2])|(E=i[C+8>>2]))|E&a)|0,I=(I=B)+(n&((B=i[C+20>>2])|(h=i[C+12>>2]))|B&h)|0,e=I=c>>>0>>0?I+1|0:I,i[C+56>>2]=c,i[C+60>>2]=I,r=a,D=B,N=i[(I=l=(S=8|M)+g|0)>>2],U=i[I+4>>2],B=((k^F)&s^F)+w|0,B=(I=(a=(y^p)&_^y)+t|0)>>>0>>0?B+1|0:B,a=UI(_,s,50),t=f,a=UI(_,s,46)^a,t^=f,a=(w=UI(_,s,23)^a)+I|0,I=(f^t)+B|0,I=(a>>>0>>0?I+1|0:I)+U|0,I=(B=a+N|0)>>>0>>0?I+1|0:I,a=(a=B)+(t=i[(B=S+34416|0)>>2])|0,B=i[B+4>>2]+I|0,B=(I=a>>>0>>0?B+1|0:B)+D|0,w=B=(t=a+r|0)>>>0>>0?B+1|0:B,i[C+16>>2]=t,i[C+20>>2]=B,I=I+((h|n)&e|h&n)|0,I=(B=a+((Q|E)&c|Q&E)|0)>>>0>>0?I+1|0:I,a=UI(c,e,36),r=f,a=UI(c,e,30)^a,r^=f,D=B,B=UI(c,e,25)^a,I=(f^r)+I|0,r=I=B>>>0>(a=D+B|0)>>>0?I+1|0:I,i[C+48>>2]=a,i[C+52>>2]=I,D=E,S=h,I=(h=i[(B=Y=(E=16|M)+g|0)>>2])+y|0,B=i[B+4>>2]+F|0,B=I>>>0>>0?B+1|0:B,E=(y=I)+(h=i[(I=E+34416|0)>>2])|0,I=i[I+4>>2]+B|0,I=((s^k)&w^k)+(I=E>>>0>>0?I+1|0:I)|0,I=(B=(B=E)+(E=(_^p)&t^p)|0)>>>0>>0?I+1|0:I,E=UI(t,w,50),h=f,E=UI(t,w,46)^E,h^=f,E=(y=UI(t,w,23)^E)+B|0,B=(f^h)+I|0,B=(y=E>>>0>>0?B+1|0:B)+S|0,S=B=(h=E)>>>0>(E=E+D|0)>>>0?B+1|0:B,i[C+8>>2]=E,i[C+12>>2]=B,I=UI(a,r,36),B=f,I=UI(a,r,30)^I,B^=f,F=UI(a,r,25)^I,I=((e|n)&r|e&n)+(f^B)|0,B=y+((D=F+((Q|c)&a|Q&c)|0)>>>0>>0?I+1|0:I)|0,h=B=(y=h+D|0)>>>0>>0?B+1|0:B,i[C+40>>2]=y,i[C+44>>2]=B,D=Q,B=(B=p)+(p=i[(I=u=(Q=24|M)+g|0)>>2])|0,I=i[I+4>>2]+k|0,I=B>>>0

>>0?I+1|0:I,Q=(F=B)+(p=i[(B=Q+34416|0)>>2])|0,B=i[B+4>>2]+I|0,B=(s^(s^w)&S)+(B=Q>>>0

>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=_^(_^t)&E)|0)>>>0>>0?B+1|0:B,Q=UI(E,S,50),p=f,Q=UI(E,S,46)^Q,p^=f,Q=(k=UI(E,S,23)^Q)+I|0,I=(f^p)+B|0,B=(I=Q>>>0>>0?I+1|0:I)+n|0,k=B=(n=Q+D|0)>>>0>>0?B+1|0:B,i[C>>2]=n,i[C+4>>2]=B,B=UI(y,h,36),p=f,B=UI(y,h,30)^B,D=f^p,F=UI(y,h,25)^B,B=((e|r)&h|e&r)+(f^D)|0,I=I+((p=F+((a|c)&y|a&c)|0)>>>0>>0?B+1|0:B)|0,p=I=(D=Q+p|0)>>>0>>0?I+1|0:I,i[C+32>>2]=D,i[C+36>>2]=I,Q=i[(B=m=(I=32|M)+g|0)>>2],B=s+i[B+4>>2]|0,B=(Q=Q+_|0)>>>0<_>>>0?B+1|0:B,Q=(_=i[(I=I+34416|0)>>2])+Q|0,I=i[I+4>>2]+B|0,I=(w^(w^S)&k)+(I=Q>>>0<_>>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=t^(E^t)&n)|0)>>>0>>0?I+1|0:I,Q=UI(n,k,50),_=f,Q=UI(n,k,46)^Q,_^=f,Q=(s=UI(n,k,23)^Q)+B|0,B=(f^_)+I|0,F=B=Q>>>0>>0?B+1|0:B,I=B,B=UI(D,p,36),_=f,B=UI(D,p,30)^B,s=f^_,N=UI(D,p,25)^B,B=((r|h)&p|r&h)+(f^s)|0,I=((_=N+((a|y)&D|a&y)|0)>>>0>>0?B+1|0:B)+I|0,_=I=(s=Q+_|0)>>>0<_>>>0?I+1|0:I,i[C+24>>2]=s,i[C+28>>2]=I,B=e+F|0,F=B=(e=Q+c|0)>>>0>>0?B+1|0:B,i[C+56>>2]=e,i[C+60>>2]=B,Q=i[(I=J=(B=40|M)+g|0)>>2],I=w+i[I+4>>2]|0,I=(Q=Q+t|0)>>>0>>0?I+1|0:I,Q=(c=i[(B=B+34416|0)>>2])+Q|0,B=i[B+4>>2]+I|0,B=(S^(k^S)&F)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=E^(E^n)&e)|0)>>>0>>0?B+1|0:B,Q=UI(e,F,50),c=f,Q=UI(e,F,46)^Q,c^=f,Q=(t=UI(e,F,23)^Q)+I|0,I=(f^c)+B|0,I=Q>>>0>>0?I+1|0:I,B=UI(s,_,36),c=f,B=UI(s,_,30)^B,t=f^c,w=UI(s,_,25)^B,B=((h|p)&_|h&p)+(f^t)|0,B=((c=w+((y|D)&s|y&D)|0)>>>0>>0?B+1|0:B)+I|0,c=B=(t=Q+c|0)>>>0>>0?B+1|0:B,i[C+16>>2]=t,i[C+20>>2]=B,I=I+r|0,N=I=(r=Q+a|0)>>>0>>0?I+1|0:I,i[C+48>>2]=r,i[C+52>>2]=I,Q=i[(B=H=(I=48|M)+g|0)>>2],B=S+i[B+4>>2]|0,B=(Q=Q+E|0)>>>0>>0?B+1|0:B,Q=(E=i[(I=I+34416|0)>>2])+Q|0,I=i[I+4>>2]+B|0,I=(k^(k^F)&N)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=n^(e^n)&r)|0)>>>0>>0?I+1|0:I,Q=UI(r,N,50),E=f,Q=UI(r,N,46)^Q,E^=f,Q=(a=UI(r,N,23)^Q)+B|0,B=(f^E)+I|0,a=B=Q>>>0>>0?B+1|0:B,I=B,B=UI(t,c,36),E=f,B=UI(t,c,30)^B,w=f^E,S=UI(t,c,25)^B,B=((_|p)&c|_&p)+(f^w)|0,I=((E=S+((s|D)&t|s&D)|0)>>>0>>0?B+1|0:B)+I|0,w=I=(B=E)>>>0>(E=Q+E|0)>>>0?I+1|0:I,i[C+8>>2]=E,i[C+12>>2]=I,B=a+h|0,S=B=(U=Q+y|0)>>>0>>0?B+1|0:B,i[C+40>>2]=U,i[C+44>>2]=B,Q=i[(I=d=(B=56|M)+g|0)>>2],I=k+i[I+4>>2]|0,I=(Q=Q+n|0)>>>0>>0?I+1|0:I,Q=(a=i[(B=B+34416|0)>>2])+Q|0,B=i[B+4>>2]+I|0,B=(F^(F^N)&S)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=e^(e^r)&U)|0)>>>0>>0?B+1|0:B,Q=UI(U,S,50),a=f,Q=UI(U,S,46)^Q,a^=f,Q=(h=UI(U,S,23)^Q)+I|0,I=(f^a)+B|0,I=Q>>>0>>0?I+1|0:I,B=UI(E,w,36),a=f,B=UI(E,w,30)^B,h=f^a,y=UI(E,w,25)^B,B=((_|c)&w|_&c)+(f^h)|0,B=((a=y+((t|s)&E|t&s)|0)>>>0>>0?B+1|0:B)+I|0,h=B=(h=a)>>>0>(a=Q+a|0)>>>0?B+1|0:B,i[C>>2]=a,i[C+4>>2]=B,I=I+p|0,k=I=(y=Q+D|0)>>>0>>0?I+1|0:I,i[C+32>>2]=y,i[C+36>>2]=I,Q=i[(B=x=(I=64|M)+g|0)>>2],B=F+i[B+4>>2]|0,B=(Q=Q+e|0)>>>0>>0?B+1|0:B,Q=(e=i[(I=I+34416|0)>>2])+Q|0,I=i[I+4>>2]+B|0,I=(N^(S^N)&k)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=r^(r^U)&y)|0)>>>0>>0?I+1|0:I,Q=UI(y,k,50),e=f,Q=UI(y,k,46)^Q,e^=f,Q=(n=UI(y,k,23)^Q)+B|0,B=(f^e)+I|0,p=B=Q>>>0>>0?B+1|0:B,I=B,B=UI(a,h,36),e=f,B=UI(a,h,30)^B,n=f^e,D=UI(a,h,25)^B,B=((c|w)&h|c&w)+(f^n)|0,I=((e=D+((E|t)&a|E&t)|0)>>>0>>0?B+1|0:B)+I|0,e=I=(n=Q+e|0)>>>0>>0?I+1|0:I,i[C+56>>2]=n,i[C+60>>2]=I,B=_+p|0,F=B=(_=Q+s|0)>>>0>>0?B+1|0:B,i[C+24>>2]=_,i[C+28>>2]=B,Q=i[(I=b=(B=72|M)+g|0)>>2],I=N+i[I+4>>2]|0,I=(Q=Q+r|0)>>>0>>0?I+1|0:I,Q=(r=i[(B=B+34416|0)>>2])+Q|0,B=i[B+4>>2]+I|0,B=(S^(k^S)&F)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=U^(y^U)&_)|0)>>>0>>0?B+1|0:B,Q=UI(_,F,50),r=f,Q=UI(_,F,46)^Q,r^=f,Q=(p=UI(_,F,23)^Q)+I|0,I=(f^r)+B|0,I=Q>>>0

>>0?I+1|0:I,B=UI(n,e,36),r=f,B=UI(n,e,30)^B,p=f^r,D=UI(n,e,25)^B,B=((h|w)&e|h&w)+(f^p)|0,B=((r=D+((E|a)&n|E&a)|0)>>>0>>0?B+1|0:B)+I|0,r=B=(p=Q+r|0)>>>0>>0?B+1|0:B,i[C+48>>2]=p,i[C+52>>2]=B,I=I+c|0,N=I=(c=Q+t|0)>>>0>>0?I+1|0:I,i[C+16>>2]=c,i[C+20>>2]=I,I=(I=U)+(t=i[(B=U=(Q=80|M)+g|0)>>2])|0,B=i[B+4>>2]+S|0,B=I>>>0>>0?B+1|0:B,Q=(s=I)+(t=i[(I=Q+34416|0)>>2])|0,I=i[I+4>>2]+B|0,I=(k^(k^F)&N)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=y^(_^y)&c)|0)>>>0>>0?I+1|0:I,Q=UI(c,N,50),t=f,Q=UI(c,N,46)^Q,t^=f,Q=(D=UI(c,N,23)^Q)+B|0,B=(f^t)+I|0,s=B=Q>>>0>>0?B+1|0:B,I=B,B=UI(p,r,36),t=f,B=UI(p,r,30)^B,D=f^t,S=UI(p,r,25)^B,B=((e|h)&r|e&h)+(f^D)|0,I=((t=S+((a|n)&p|a&n)|0)>>>0>>0?B+1|0:B)+I|0,t=I=(D=Q+t|0)>>>0>>0?I+1|0:I,i[C+40>>2]=D,i[C+44>>2]=I,B=s+w|0,w=B=(s=Q+E|0)>>>0>>0?B+1|0:B,i[C+8>>2]=s,i[C+12>>2]=B,B=34416+(I=88|M)|0,E=i[(I=K=I+g|0)>>2],Q=i[B>>2]+E|0,I=i[B+4>>2]+i[I+4>>2]|0,B=k+(Q>>>0>>0?I+1|0:I)|0,B=(F^(F^N)&w)+(B=(I=Q+y|0)>>>0>>0?B+1|0:B)|0,B=(I=(Q=_^(_^c)&s)+I|0)>>>0>>0?B+1|0:B,Q=UI(s,w,50),E=f,Q=UI(s,w,46)^Q,E^=f,Q=(y=UI(s,w,23)^Q)+I|0,I=(f^E)+B|0,I=Q>>>0>>0?I+1|0:I,B=UI(D,t,36),E=f,B=UI(D,t,30)^B,y=f^E,S=UI(D,t,25)^B,B=((e|r)&t|e&r)+(f^y)|0,B=((E=S+((p|n)&D|p&n)|0)>>>0>>0?B+1|0:B)+I|0,y=B=(y=E)>>>0>(E=Q+E|0)>>>0?B+1|0:B,i[C+32>>2]=E,i[C+36>>2]=B,I=I+h|0,h=I=(B=a)>>>0>(a=Q+a|0)>>>0?I+1|0:I,i[C>>2]=a,i[C+4>>2]=I,B=34416+(I=96|M)|0,S=i[(I=v=I+g|0)>>2],Q=i[B>>2]+S|0,B=i[B+4>>2]+i[I+4>>2]|0,I=F+(Q>>>0>>0?B+1|0:B)|0,I=(B=Q+_|0)>>>0<_>>>0?I+1|0:I,Q=(_=c^(c^s)&a)+B|0,B=(N^(w^N)&h)+I|0,B=Q>>>0<_>>>0?B+1|0:B,I=UI(a,h,50),_=f,I=UI(a,h,46)^I,_^=f,F=Q,Q=UI(a,h,23)^I,B=(f^_)+B|0,k=B=(I=F+Q|0)>>>0>>0?B+1|0:B,Q=I,I=UI(E,y,36),_=f,I=UI(E,y,30)^I,S=f^_,F=UI(E,y,25)^I,I=((t|r)&y|t&r)+(f^S)|0,B=((_=F+((p|D)&E|p&D)|0)>>>0>>0?I+1|0:I)+B|0,_=B=(S=Q+_|0)>>>0<_>>>0?B+1|0:B,i[C+24>>2]=S,i[C+28>>2]=B,B=e+k|0,e=B=(n=Q+n|0)>>>0>>0?B+1|0:B,i[C+56>>2]=n,i[C+60>>2]=B,B=34416+(I=104|M)|0,k=i[(I=L=I+g|0)>>2],Q=i[B>>2]+k|0,I=i[B+4>>2]+i[I+4>>2]|0,B=N+(Q>>>0>>0?I+1|0:I)|0,B=(I=Q+c|0)>>>0>>0?B+1|0:B,Q=(c=s^(a^s)&n)+I|0,I=(w^(h^w)&e)+B|0,I=Q>>>0>>0?I+1|0:I,B=UI(n,e,50),c=f,B=UI(n,e,46)^B,c^=f,k=UI(n,e,23)^B,B=(f^c)+I|0,F=B=(Q=k+Q|0)>>>0>>0?B+1|0:B,I=B,B=UI(S,_,36),c=f,B=UI(S,_,30)^B,k=f^c,N=UI(S,_,25)^B,B=((t|y)&_|t&y)+(f^k)|0,I=((c=N+((E|D)&S|E&D)|0)>>>0>>0?B+1|0:B)+I|0,c=I=(k=Q+c|0)>>>0>>0?I+1|0:I,i[C+16>>2]=k,i[C+20>>2]=I,I=r+F|0,r=I=(p=Q+p|0)>>>0>>0?I+1|0:I,i[C+48>>2]=p,i[C+52>>2]=I,B=34416+(I=112|M)|0,F=i[(Q=N=I+g|0)>>2],I=i[B>>2]+F|0,B=i[B+4>>2]+i[Q+4>>2]|0,B=w+(I>>>0>>0?B+1|0:B)|0,B=(h^(e^h)&r)+(B=(I=I+s|0)>>>0>>0?B+1|0:B)|0,B=(I=(Q=a^(a^n)&p)+I|0)>>>0>>0?B+1|0:B,Q=UI(p,r,50),s=f,Q=UI(p,r,46)^Q,s^=f,Q=(w=UI(p,r,23)^Q)+I|0,I=(f^s)+B|0,F=I=Q>>>0>>0?I+1|0:I,B=I,I=UI(k,c,36),s=f,I=UI(k,c,30)^I,w=f^s,R=UI(k,c,25)^I,I=((_|y)&c|_&y)+(f^w)|0,B=((s=R+((E|S)&k|E&S)|0)>>>0>>0?I+1|0:I)+B|0,s=B=(w=Q+s|0)>>>0>>0?B+1|0:B,i[C+8>>2]=w,i[C+12>>2]=B,B=t+F|0,Q=B=(t=Q+D|0)>>>0>>0?B+1|0:B,i[C+40>>2]=t,i[C+44>>2]=B,B=34416+(I=120|M)|0,M=i[(I=D=I+g|0)>>2],F=i[B>>2]+M|0,B=i[B+4>>2]+i[I+4>>2]|0,I=h+(F>>>0>>0?B+1|0:B)|0,I=(e^(e^r)&Q)+(I=(B=a+F|0)>>>0>>0?I+1|0:I)|0,I=(B=(a=n^(p^n)&t)+B|0)>>>0>>0?I+1|0:I,a=UI(t,Q,50),e=f,a=UI(t,Q,46)^a,e^=f,Q=(a=UI(t,Q,23)^a)+B|0,B=(f^e)+I|0,B=Q>>>0>>0?B+1|0:B,a=Q,e=B,I=B,B=UI(w,s,36),t=f,B=UI(w,s,30)^B,r=f^t,h=UI(w,s,25)^B,B=((_|c)&s|_&c)+(f^r)|0,I=((t=h+((k|S)&w|k&S)|0)>>>0>>0?B+1|0:B)+I|0,I=(Q=Q+t|0)>>>0>>0?I+1|0:I,i[C>>2]=Q,i[C+4>>2]=I,B=e+y|0,B=(r=E)>>>0>(E=E+a|0)>>>0?B+1|0:B,i[C+32>>2]=E,i[C+36>>2]=B,64!=(0|P);)c=((P=P+16|0)<<3)+g|0,a=i[G>>2],_=i[G+4>>2],R=i[b>>2],e=I=i[b+4>>2],B=I,Q=I=i[N+4>>2],I=UI(S=i[N>>2],I,45),E=f,r=((63&Q)<<26|S>>>6)^(I=UI(S,Q,3)^I),I=(Q>>>6^(t=f^E))+B|0,B=((E=r+R|0)>>>0>>0?I+1|0:I)+_|0,B=(I=E+a|0)>>>0>>0?B+1|0:B,a=E=i[l+4>>2],E=UI(_=i[l>>2],E,63),t=f,E=((127&a)<<25|_>>>7)^UI(_,a,56)^E,B=(f^t^a>>>7)+B|0,E=B=E>>>0>(k=E+I|0)>>>0?B+1|0:B,i[c>>2]=k,i[c+4>>2]=B,_=(N=i[U>>2])+_|0,I=(c=i[U+4>>2])+a|0,B=_>>>0>>0?I+1|0:I,a=I=i[D+4>>2],I=UI(F=i[D>>2],I,45),t=f,r=_,_=((63&a)<<26|F>>>6)^UI(F,a,3)^I,B=(f^t^a>>>6)+B|0,_=_>>>0>(r=r+_|0)>>>0?B+1|0:B,B=UI(t=i[Y>>2],I=i[Y+4>>2],63),h=f,s=r,r=((127&I)<<25|t>>>7)^UI(t,I,56)^B,B=(f^h^I>>>7)+_|0,_=B=r>>>0>(w=s+r|0)>>>0?B+1|0:B,i[G+136>>2]=w,i[G+140>>2]=B,B=(U=i[K>>2])+t|0,I=(t=i[K+4>>2])+I|0,r=UI(k,E,45),h=f,r=(y=((63&E)<<26|k>>>6)^UI(k,E,3)^r)+B|0,B=(f^h^E>>>6)+(B>>>0>>0?I+1|0:I)|0,B=r>>>0>>0?B+1|0:B,h=I=i[u+4>>2],I=UI(y=i[u>>2],I,63),n=f,s=r,r=((127&h)<<25|y>>>7)^UI(y,h,56)^I,B=(f^n^h>>>7)+B|0,r=B=r>>>0>(M=s+r|0)>>>0?B+1|0:B,i[G+144>>2]=M,i[G+148>>2]=B,y=(l=i[v>>2])+y|0,I=(I=h)+(h=i[v+4>>2])|0,B=y>>>0>>0?I+1|0:I,I=UI(w,_,45),n=f,p=((63&_)<<26|w>>>6)^UI(w,_,3)^I,B=(f^n^_>>>6)+B|0,B=(y=p+y|0)>>>0

>>0?B+1|0:B,n=I=i[m+4>>2],I=UI(p=i[m>>2],I,63),D=f,s=y,y=((127&n)<<25|p>>>7)^UI(p,n,56)^I,B=(f^D^n>>>7)+B|0,y=B=y>>>0>(Y=s+y|0)>>>0?B+1|0:B,i[G+152>>2]=Y,i[G+156>>2]=B,I=(u=i[L>>2])+p|0,B=(B=n)+(n=i[L+4>>2])|0,p=UI(M,r,45),D=f,p=((63&r)<<26|M>>>6)^UI(M,r,3)^p,B=(f^D^r>>>6)+(I>>>0>>0?B+1|0:B)|0,p=(s=p+I|0)>>>0

>>0?B+1|0:B,B=UI(D=i[J>>2],I=i[J+4>>2],63),m=f,K=s,s=((127&I)<<25|D>>>7)^(B=UI(D,I,56)^B),B=(I>>>7^(J=f^m))+p|0,p=B=s>>>0>(m=K+s|0)>>>0?B+1|0:B,i[G+160>>2]=m,i[G+164>>2]=B,I=I+Q|0,I=(B=D+S|0)>>>0>>0?I+1|0:I,D=UI(Y,y,45),s=f,D=(J=((63&y)<<26|Y>>>6)^UI(Y,y,3)^D)+B|0,B=(f^s^y>>>6)+I|0,B=D>>>0>>0?B+1|0:B,s=i[H>>2],H=I=i[H+4>>2],I=UI(s,I,63),J=f,I=UI(s,H,56)^I,K=D,B=(H>>>7^(b=f^J))+B|0,D=B=(D=((127&H)<<25|s>>>7)^I)>>>0>(J=K+D|0)>>>0?B+1|0:B,i[G+168>>2]=J,i[G+172>>2]=B,I=a+H|0,I=(B=s+F|0)>>>0>>0?I+1|0:I,K=s=i[d+4>>2],s=UI(b=i[d>>2],s,63),H=f,s=(d=((127&K)<<25|b>>>7)^UI(b,K,56)^s)+B|0,B=(f^H^K>>>7)+I|0,I=s>>>0>>0?B+1|0:B,B=UI(m,p,45),H=f,B=UI(m,p,3)^B,d=f^H,H=s,I=(p>>>6^d)+I|0,s=I=(s=((63&p)<<26|m>>>6)^B)>>>0>(H=H+s|0)>>>0?I+1|0:I,i[G+176>>2]=H,i[G+180>>2]=I,v=i[x>>2],x=I=i[x+4>>2],d=I,I=UI(R,e,63),B=f,L=((127&e)<<25|R>>>7)^UI(R,e,56)^I,I=(f^B^e>>>7)+_|0,B=((w=L+w|0)>>>0>>0?I+1|0:I)+d|0,B=(I=w+v|0)>>>0>>0?B+1|0:B,_=UI(H,s,45),w=f,d=(_=((63&s)<<26|H>>>6)^UI(H,s,3)^_)+I|0,I=(f^w^s>>>6)+B|0,_=I=_>>>0>d>>>0?I+1|0:I,i[G+192>>2]=d,i[G+196>>2]=I,B=E+K|0,B=(I=k+b|0)>>>0>>0?B+1|0:B,w=UI(v,x,63),b=f,K=((127&x)<<25|v>>>7)^UI(v,x,56)^w,B=(f^b^x>>>7)+B|0,I=(w=K+I|0)>>>0>>0?B+1|0:B,B=UI(J,D,45),b=f,B=UI(J,D,3)^B,x=w,I=(D>>>6^(K=f^b))+I|0,w=I=(w=((63&D)<<26|J>>>6)^B)>>>0>(b=x+w|0)>>>0?I+1|0:I,i[G+184>>2]=b,i[G+188>>2]=I,I=UI(U,t,63),B=f,I=((127&t)<<25|U>>>7)^UI(U,t,56)^I,B=(f^B^t>>>7)+c|0,I=y+(I>>>0>(K=I+N|0)>>>0?B+1|0:B)|0,I=(B=Y+K|0)>>>0>>0?I+1|0:I,y=UI(d,_,45),Y=f,y=UI(d,_,3)^y,K=f^Y,Y=(y^=(63&_)<<26|d>>>6)+B|0,B=(_>>>6^K)+I|0,y=B=y>>>0>Y>>>0?B+1|0:B,i[G+208>>2]=Y,i[G+212>>2]=B,I=UI(N,c,63),B=f,K=UI(N,c,56)^I,B=((I=c>>>7|0)^f^B)+e|0,I=r+((c=(N=K^((127&c)<<25|N>>>7))+R|0)>>>0>>0?B+1|0:B)|0,I=(B=c+M|0)>>>0>>0?I+1|0:I,e=UI(b,w,45),c=f,r=(e=((63&w)<<26|b>>>6)^UI(b,w,3)^e)+B|0,B=(f^c^w>>>6)+I|0,e=B=e>>>0>r>>>0?B+1|0:B,i[G+200>>2]=r,i[G+204>>2]=B,I=UI(u,n,63),B=f,N=((127&n)<<25|u>>>7)^UI(u,n,56)^I,I=(f^B^n>>>7)+h|0,B=D+((c=N+l|0)>>>0>>0?I+1|0:I)|0,B=(I=c+J|0)>>>0>>0?B+1|0:B,c=UI(Y,y,45),D=f,N=I,I=y>>>6|0,c=((63&y)<<26|Y>>>6)^UI(Y,y,3)^c,B=(I^f^D)+B|0,c=B=c>>>0>(y=N+c|0)>>>0?B+1|0:B,i[G+224>>2]=y,i[G+228>>2]=B,I=UI(l,h,63),B=f,I=UI(l,h,56)^I,D=f^B,N=((127&h)<<25|l>>>7)^I,I=((B=h>>>7|0)^D)+t|0,B=p+((h=N+U|0)>>>0>>0?I+1|0:I)|0,B=(I=h+m|0)>>>0>>0?B+1|0:B,t=UI(r,e,45),h=f,D=I,I=e>>>6|0,e=((63&e)<<26|r>>>6)^UI(r,e,3)^t,I=(I^f^h)+B|0,e=I=(t=D+e|0)>>>0>>0?I+1|0:I,i[G+216>>2]=t,i[G+220>>2]=I,I=UI(F,a,63),B=f,h=((127&a)<<25|F>>>7)^UI(F,a,56)^I,B=(f^B^a>>>7)+Q|0,B=w+((I=h+S|0)>>>0>>0?B+1|0:B)|0,I=(r=I+b|0)>>>0>>0?B+1|0:B,B=UI(y,c,45),h=f,D=r,r=UI(y,c,3)^B,B=c>>>6|0,c=D+(r^=(63&c)<<26|y>>>6)|0,I=(B^f^h)+I|0,i[G+240>>2]=c,i[G+244>>2]=c>>>0>>0?I+1|0:I,I=UI(S,Q,63),B=f,I=UI(S,Q,56)^I,c=f^B,B=((B=Q>>>7|0)^c)+n|0,I=s+((I^=(127&Q)<<25|S>>>7)>>>0>(Q=I+u|0)>>>0?B+1|0:B)|0,I=(B=Q+H|0)>>>0>>0?I+1|0:I,Q=UI(t,e,45),c=f,r=B,B=e>>>6|0,Q=((63&e)<<26|t>>>6)^UI(t,e,3)^Q,B=(B^f^c)+I|0,Q=B=Q>>>0>(e=r+Q|0)>>>0?B+1|0:B,i[G+232>>2]=e,i[G+236>>2]=B,I=UI(k,E,63),B=f,r=UI(k,E,56)^I,B=((I=E>>>7|0)^f^B)+a|0,I=_+((E=(c=r^((127&E)<<25|k>>>7))+F|0)>>>0>>0?B+1|0:B)|0,I=(B=E+d|0)>>>0>>0?I+1|0:I,E=UI(e,Q,45),a=f,r=B,B=Q>>>6|0,Q=r+(E=((63&Q)<<26|e>>>6)^UI(e,Q,3)^E)|0,B=(B^f^a)+I|0,i[G+248>>2]=Q,i[G+252>>2]=Q>>>0>>0?B+1|0:B;I=I+i[A+4>>2]|0,I=(g=Q+i[A>>2]|0)>>>0>>0?I+1|0:I,i[A>>2]=g,i[A+4>>2]=I,B=i[A+12>>2]+i[C+12>>2]|0,I=(g=i[C+8>>2])+i[A+8>>2]|0,i[A+8>>2]=I,i[A+12>>2]=I>>>0>>0?B+1|0:B,B=i[A+20>>2]+i[C+20>>2]|0,I=(g=i[C+16>>2])+i[A+16>>2]|0,i[A+16>>2]=I,i[A+20>>2]=I>>>0>>0?B+1|0:B,I=i[A+28>>2]+i[C+28>>2]|0,g=(B=i[C+24>>2])+i[A+24>>2]|0,i[A+24>>2]=g,i[A+28>>2]=g>>>0>>0?I+1|0:I,B=i[A+36>>2]+i[C+36>>2]|0,I=(g=i[C+32>>2])+i[A+32>>2]|0,i[A+32>>2]=I,i[A+36>>2]=I>>>0>>0?B+1|0:B,I=i[A+44>>2]+i[C+44>>2]|0,g=(B=i[C+40>>2])+i[A+40>>2]|0,i[A+40>>2]=g,i[A+44>>2]=g>>>0>>0?I+1|0:I,B=i[A+52>>2]+i[C+52>>2]|0,I=(g=i[C+48>>2])+i[A+48>>2]|0,i[A+48>>2]=I,i[A+52>>2]=I>>>0>>0?B+1|0:B,B=i[A+60>>2]+i[C+60>>2]|0,I=(g=i[C+56>>2])+i[A+56>>2]|0,i[A+56>>2]=I,i[A+60>>2]=I>>>0>>0?B+1|0:B}function F(A,I){var g,C=0,B=0,Q=0,E=0,c=0,t=0,r=0,e=0,y=0,p=0,w=0,n=0,k=0,F=0,S=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0;if(s=g=s-4096|0,A){A:{I:{if(2==(0|(E=i[A+36>>2]))){if(oA=i[A+4>>2],(IA=i[I>>2])|(V=o[I+8|0])>>>0>=2)break I;IA=0}else V=o[I+8|0],oA=i[A+4>>2],IA=i[I>>2];if(bg(g+3072|0,0,1024),bg(g+2104|0,0,968),i[g+2048>>2]=IA,i[g+2052>>2]=0,u=i[I+4>>2],i[g+2064>>2]=V,i[g+2068>>2]=0,i[g+2056>>2]=u,i[g+2060>>2]=0,i[g+2072>>2]=i[A+16>>2],i[g+2076>>2]=0,u=i[A+8>>2],i[g+2088>>2]=E,i[g+2092>>2]=0,i[g+2080>>2]=u,i[g+2084>>2]=0,!i[A+20>>2])break A;for(u=0;(S=127&r)||(u=(z=z+1|0)?u:u+1|0,i[g+2096>>2]=z,i[g+2100>>2]=u,E=bg(g,0,1024),bg(E+1024|0,0,1024),N(C=E+3072|0,E+2048|0,E),N(C,E,E+1024|0)),S=i[4+(E=(g+1024|0)+(S<<3)|0)>>2],i[(C=(r<<3)+oA|0)>>2]=i[E>>2],i[C+4>>2]=S,(S=i[A+20>>2])>>>0>(r=r+1|0)>>>0;);break A}S=i[A+20>>2],cA=1}if(!((u=(aA=!(V|IA))<<1)>>>0>=S>>>0))for(E=i[A+24>>2],iA=i[I+4>>2],r=(z=(a(E,iA)+u|0)+a(S,V)|0)+((z>>>0)%(E>>>0)|0?-1:E-1|0)|0,tA=V+1|0;;){C=i[A+28>>2],EA=1==((z>>>0)%((E=i[A+24>>2])>>>0)|0)?z-1|0:r,r=cA?i[i[A>>2]+4>>2]+(EA<<10)|0:(u<<3)+oA|0,B=i[r>>2],r=i[r+4>>2],i[I+12>>2]=u,C=aA?iA:(r>>>0)%(C>>>0)|0;A:if(IA)r=E+((0|C)==(0|iA)?~S+u|0:(u?0:-1)-S|0)|0,Q=0,3!=(0|V)&&(Q=a(S,tA));else{if(!V){r=u-1|0,Q=0;break A}if(r=a(S,V),(0|C)==(0|iA)){r=(r+u|0)-1|0,Q=0;break A}r=r-!u|0,Q=0}S=Q,c=(p=i[i[A>>2]+4>>2])+(a(C,E)<<10)|0,y=(C=r-1|0)>>>0>(Q=C+S|0)>>>0,Ig(B,0,B,0),Ig(r,0,f,0),S=Q-(r=f)|0,C=0,e=0;A:{I:{g:{C:{B:{Q:{i:{o:{E:{a:{if(r=y-(Q>>>0>>0)|0){if(!E)break a;break E}h=S-a((S>>>0)/(E>>>0)|0,E)|0,D=0,f=0;break A}if(!S)break o;break i}if(!((B=E-1|0)&E))break Q;t=0-(B=(_(E)+33|0)-_(r)|0)|0;break C}h=0,D=r,f=0;break A}if((C=32-_(r)|0)>>>0<31)break B;break g}if(h=B&S,D=0,1==(0|E))break I;E=31&(S=FC(E)),(63&S)>>>0>=32?B=r>>>E|0:(C=r>>>E|0,B=0),f=C;break A}B=C+1|0,t=63-C|0}if(Q=31&(C=63&B),C>>>0>=32?(C=0,y=r>>>Q|0):(C=r>>>Q|0,y=((1<>>Q),Q=31&(t&=63),t>>>0>=32?(r=S<>>32-Q|r<>>31,y=(C=y<<1|r>>>31)-(b=E&(Q=F-(d+(C>>>0>t>>>0)|0)>>31))|0,C=d-(C>>>0>>0)|0,r=r<<1|S>>>31,S=e|S<<1,e=1&Q,B=B-1|0;);h=y,D=C,f=r<<1|S>>>31;break A}h=S,D=r,r=0}f=r}if(f=D,r=(h<<10)+c|0,E=p+(EA<<10)|0,_A=p+(z<<10)|0,IA)N(E,r,_A);else{for(Ng(g+3072|0,r,1024),r=0;Q=i[(B=(S=r<<3)+(C=g+3072|0)|0)>>2],p=i[(y=E+S|0)>>2],y=i[B+4>>2]^i[y+4>>2],i[B>>2]=Q^p,i[B+4>>2]=y,y=i[(B=(Q=8|S)+C|0)>>2],p=i[(Q=E+Q|0)>>2],Q=i[B+4>>2]^i[Q+4>>2],i[B>>2]=y^p,i[B+4>>2]=Q,y=i[(B=(Q=16|S)+C|0)>>2],p=i[(Q=E+Q|0)>>2],Q=i[B+4>>2]^i[Q+4>>2],i[B>>2]=y^p,i[B+4>>2]=Q,Q=i[(S=(B=24|S)+C|0)>>2],y=i[(B=B+E|0)>>2],B=i[S+4>>2]^i[B+4>>2],i[S>>2]=Q^y,i[S+4>>2]=B,128!=(0|(r=r+4|0)););for(Ng(g+2048|0,C,1024),S=0,r=0;Q=(y=i[56+(E=(g+3072|0)+(r<<7)|0)>>2])+(B=i[E+24>>2])|0,p=(F=i[E+60>>2])+(C=i[E+28>>2])|0,e=Ig(B<<1&-2,1&(C<<1|B>>>31),y,0),B=f+(B>>>0>Q>>>0?p+1|0:p)|0,p=(C=e+Q|0)>>>0>>0?B+1|0:B,c=(e=UI(C^i[E+120>>2],p^i[E+124>>2],32))+(B=i[E+88>>2])|0,t=(k=f)+(Q=i[E+92>>2])|0,d=Ig(e,0,B<<1&-2,1&(Q<<1|B>>>31)),B=f+(B>>>0>c>>>0?t+1|0:t)|0,b=UI(y^(Q=d+c|0),F^(v=Q>>>0>>0?B+1|0:B),40),w=1+(B=p+(BA=f)|0)|0,t=B,y=(B=C+b|0)>>>0>>0?w:t,d=(C=Ig(b,0,C<<1&-2,1&(p<<1|C>>>31)))+B|0,B=f+y|0,k=UI(d^e,k^(X=C>>>0>d>>>0?B+1|0:B),48),Y=w=f,y=(n=i[E+44>>2])+(C=i[E+12>>2])|0,e=(p=i[E+40>>2])+(B=i[E+8>>2])|0,c=Ig(B<<1&-2,1&(C<<1|B>>>31),p,0),B=f+(B>>>0>e>>>0?y+1|0:y)|0,c=(C=e+c|0)>>>0>>0?B+1|0:B,e=(t=UI(C^i[E+104>>2],c^i[E+108>>2],32))+(y=i[E+72>>2])|0,F=(M=f)+(B=i[E+76>>2])|0,G=Ig(t,0,y<<1&-2,1&(B<<1|y>>>31)),y=f+(e>>>0>>0?F+1|0:F)|0,e=UI(H=p^(B=G+e|0),n^(p=B>>>0>>0?y+1|0:y),40),G=1+(y=c+(F=f)|0)|0,n=y,n=(y=C+e|0)>>>0>>0?G:n,C=Ig(e,0,C<<1&-2,1&(c<<1|C>>>31)),c=f+n|0,n=UI((y=C+y|0)^t,M^(O=C>>>0>y>>>0?c+1|0:c),48),G=1+(C=p+(QA=f)|0)|0,t=C,c=(C=B+n|0)>>>0>>0?G:t,p=C+(B=Ig(n,0,B<<1&-2,1&(p<<1|B>>>31)))|0,C=f+c|0,M=UI(e^p,F^(Z=B>>>0>p>>>0?C+1|0:C),1),gA=H=f,e=(J=i[E+36>>2])+(C=i[E+4>>2])|0,t=(c=i[E+32>>2])+(B=i[E>>2])|0,F=Ig(B<<1&-2,1&(C<<1|B>>>31),c,0),B=f+(B>>>0>t>>>0?e+1|0:e)|0,t=(C=t+F|0)>>>0>>0?B+1|0:B,F=(q=UI(C^i[E+96>>2],t^i[E+100>>2],32))+(B=i[(e=j=E- -64|0)>>2])|0,G=($=f)+(e=i[e+4>>2])|0,R=Ig(q,0,B<<1&-2,1&(e<<1|B>>>31)),B=f+(B>>>0>F>>>0?G+1|0:G)|0,G=UI(c^(e=R+F|0),J^(R=e>>>0>>0?B+1|0:B),40),F=1+(B=t+(AA=f)|0)|0,c=B,c=(B=C+G|0)>>>0>>0?F:c,C=B+(t=Ig(G,0,C<<1&-2,1&(t<<1|C>>>31)))|0,B=f+c|0,c=1+(B=(W=C>>>0>>0?B+1|0:B)+H|0)|0,t=B,t=(B=C+M|0)>>>0>>0?c:t,c=B+(F=Ig(M,0,C<<1&-2,1&(W<<1|C>>>31)))|0,B=f+t|0,w=UI(c^k,(l=c>>>0>>0?B+1|0:B)^w,32),L=f,F=(K=i[E+52>>2])+(B=i[E+20>>2])|0,J=(H=i[E+48>>2])+(t=i[E+16>>2])|0,m=Ig(t<<1&-2,1&(B<<1|t>>>31),H,0),t=f+(t>>>0>J>>>0?F+1|0:F)|0,J=(B=J+m|0)>>>0>>0?t+1|0:t,P=(m=UI(B^i[E+112>>2],J^i[E+116>>2],32))+(F=i[E+80>>2])|0,x=(CA=f)+(t=i[E+84>>2])|0,U=Ig(m,0,F<<1&-2,1&(t<<1|F>>>31)),F=f+(F>>>0>P>>>0?x+1|0:x)|0,H=UI(H^(t=U+P|0),K^(P=t>>>0>>0?F+1|0:F),40),U=1+(F=J+(K=f)|0)|0,x=F,x=(F=B+H|0)>>>0>>0?U:x,B=Ig(H,0,B<<1&-2,1&(J<<1|B>>>31)),J=f+x|0,J=UI(U=(F=B+F|0)^m,CA^(m=B>>>0>F>>>0?J+1|0:J),48),U=1+(B=P+(CA=f)|0)|0,x=B,x=(B=t+J|0)>>>0>>0?U:x,t=Ig(J,0,t<<1&-2,1&(P<<1|t>>>31)),P=f+x|0,U=1+(t=(P=(B=t+B|0)>>>0>>0?P+1|0:P)+L|0)|0,x=t,x=(t=B+w|0)>>>0>>0?U:x,T=M^(t=(U=Ig(w,0,B<<1&-2,1&(P<<1|B>>>31)))+t|0),M=f+x|0,M=UI(T,gA^(x=t>>>0>>0?M+1|0:M),40),rA=1+(U=l+(gA=f)|0)|0,T=U,T=(U=c+M|0)>>>0>>0?rA:T,c=(l=Ig(M,0,c<<1&-2,1&(l<<1|c>>>31)))+U|0,i[E>>2]=c,U=f+T|0,l=c>>>0>>0?U+1|0:U,i[E+4>>2]=l,c=UI(c^w,l^L,48),i[E+120>>2]=c,w=f,i[E+124>>2]=w,T=1+(w=w+x|0)|0,U=w,l=(w=c+t|0)>>>0>>0?T:U,c=(t=Ig(c,0,t<<1&-2,1&(x<<1|t>>>31)))+w|0,i[E+80>>2]=c,w=f+l|0,t=c>>>0>>0?w+1|0:w,i[E+84>>2]=t,eA=E,yA=UI(c^M,t^gA,1),i[eA+40>>2]=yA,i[E+44>>2]=f,c=UI(B^H,K^P,1),w=1+(B=O+(H=f)|0)|0,t=B,t=(B=c+y|0)>>>0>>0?w:t,B=B+(M=Ig(c,0,y<<1&-2,1&(O<<1|y>>>31)))|0,y=f+t|0,t=UI(C^q,W^$,48),y=UI(t^B,(M=B>>>0>>0?y+1|0:y)^(O=f),32),q=w=f,K=1+(C=v+Y|0)|0,Y=C,W=(C=Q+k|0)>>>0>>0?K:Y,Q=Ig(k,0,Q<<1&-2,1&(v<<1|Q>>>31)),k=f+W|0,Y=1+(Q=(k=(C=Q+C|0)>>>0>>0?k+1|0:k)+w|0)|0,w=Q,w=(Q=C+y|0)>>>0>>0?Y:w,Y=c^(Q=(v=Ig(y,0,C<<1&-2,1&(k<<1|C>>>31)))+Q|0),c=f+w|0,c=UI(Y,H^(w=Q>>>0>>0?c+1|0:c),40),K=1+(v=M+(H=f)|0)|0,Y=v,W=(v=B+c|0)>>>0>>0?K:Y,Y=y^(B=(M=Ig(c,0,B<<1&-2,1&(M<<1|B>>>31)))+v|0),y=f+W|0,y=UI(Y,q^(M=B>>>0>>0?y+1|0:y),48),i[E+96>>2]=y,v=f,i[E+100>>2]=v,i[E+8>>2]=B,i[E+12>>2]=M,K=1+(B=w+v|0)|0,Y=B,M=(B=Q+y|0)>>>0>>0?K:Y,Q=Ig(y,0,Q<<1&-2,1&(w<<1|Q>>>31)),y=f+M|0,eA=E,yA=UI((B=Q+B|0)^c,H^(Q=B>>>0>>0?y+1|0:y),1),i[eA+48>>2]=yA,i[E+52>>2]=f,i[E+88>>2]=B,i[E+92>>2]=Q,y=UI(C^b,k^BA,1),Q=1+(C=m+(b=f)|0)|0,B=C,Q=(C=y+F|0)>>>0>>0?Q:B,B=C+(c=Ig(y,0,F<<1&-2,1&(m<<1|F>>>31)))|0,C=f+Q|0,c=UI(B^n,QA^(F=B>>>0>>0?C+1|0:C),32),k=Q=f,w=1+(C=R+O|0)|0,Q=C,n=(C=e+t|0)>>>0>>0?w:Q,e=Ig(t,0,e<<1&-2,1&(R<<1|e>>>31)),Q=f+n|0,w=1+(Q=k+(e=(C=e+C|0)>>>0>>0?Q+1|0:Q)|0)|0,t=Q,t=(Q=C+c|0)>>>0>>0?w:t,w=y^(Q=Q+(n=Ig(c,0,C<<1&-2,1&(e<<1|C>>>31)))|0),y=f+t|0,y=UI(w,b^(t=Q>>>0>>0?y+1|0:y),40),Y=1+(n=F+(b=f)|0)|0,w=n,M=(n=B+y|0)>>>0>>0?Y:w,B=(F=Ig(y,0,B<<1&-2,1&(F<<1|B>>>31)))+n|0,i[E+16>>2]=B,n=f+M|0,F=B>>>0>>0?n+1|0:n,i[E+20>>2]=F,B=UI(B^c,F^k,48),i[E+104>>2]=B,c=f,i[E+108>>2]=c,w=1+(c=c+t|0)|0,k=c,F=(c=B+Q|0)>>>0>>0?w:k,Q=(B=Ig(B,0,Q<<1&-2,1&(t<<1|Q>>>31)))+c|0,c=f+F|0,F=B=B>>>0>Q>>>0?c+1|0:c,i[j>>2]=Q,i[j+4>>2]=B,B=(e=UI(C^G,e^AA,1))+d|0,c=(k=f)+X|0,C=(t=Ig(d<<1&-2,1&(X<<1|d>>>31),e,0))+B|0,B=f+(B>>>0>>0?c+1|0:c)|0,c=UI(C^J,CA^(t=C>>>0>>0?B+1|0:B),32),n=1+(B=Z+(d=f)|0)|0,w=B,n=(B=c+p|0)>>>0

>>0?n:w,w=e^(B=(p=Ig(c,0,p<<1&-2,1&(Z<<1|p>>>31)))+B|0),e=f+n|0,p=UI(w,k^(e=B>>>0

>>0?e+1|0:e),40),G=1+(n=t+(k=f)|0)|0,w=n,M=(n=C+p|0)>>>0>>0?G:w,w=c^(t=(C=Ig(p,0,C<<1&-2,1&(t<<1|C>>>31)))+n|0),c=f+M|0,C=UI(w,d^(c=C>>>0>t>>>0?c+1|0:c),48),G=1+(n=e+(d=f)|0)|0,w=n,M=(n=C+B|0)>>>0>>0?G:w,B=(e=Ig(C,0,B<<1&-2,1&(e<<1|B>>>31)))+n|0,i[E+72>>2]=B,n=f+M|0,e=B>>>0>>0?n+1|0:n,i[E+76>>2]=e,i[E+112>>2]=C,i[E+116>>2]=d,i[E+24>>2]=t,i[E+28>>2]=c,eA=E,yA=UI(Q^y,F^b,1),i[eA+56>>2]=yA,i[E+60>>2]=f,eA=E,yA=UI(B^p,e^k,1),i[eA+32>>2]=yA,i[E+36>>2]=f,8!=(0|(r=r+1|0)););for(;B=(Q=i[392+(E=(g+3072|0)+(S<<4)|0)>>2])+(C=i[E+136>>2])|0,y=(t=i[E+396>>2])+(r=i[E+140>>2])|0,p=Ig(C<<1&-2,1&(r<<1|C>>>31),Q,0),C=f+(C>>>0>B>>>0?y+1|0:y)|0,y=(r=p+B|0)>>>0

>>0?C+1|0:C,e=(p=UI(r^i[E+904>>2],y^i[E+908>>2],32))+(C=i[E+648>>2])|0,c=(b=f)+(B=i[E+652>>2])|0,F=Ig(p,0,C<<1&-2,1&(B<<1|C>>>31)),C=f+(C>>>0>e>>>0?c+1|0:c)|0,d=UI(Q^(B=F+e|0),t^(J=B>>>0>>0?C+1|0:C),40),t=1+(C=y+(P=f)|0)|0,Q=C,Q=(C=r+d|0)>>>0>>0?t:Q,F=(r=Ig(d,0,r<<1&-2,1&(y<<1|r>>>31)))+C|0,C=f+Q|0,b=UI(F^p,b^(v=r>>>0>F>>>0?C+1|0:C),48),x=G=f,Q=(k=i[E+268>>2])+(r=i[E+12>>2])|0,p=(y=i[E+264>>2])+(C=i[E+8>>2])|0,e=Ig(C<<1&-2,1&(r<<1|C>>>31),y,0),C=f+(C>>>0>p>>>0?Q+1|0:Q)|0,e=(r=p+e|0)>>>0>>0?C+1|0:C,p=(c=UI(r^i[E+776>>2],e^i[E+780>>2],32))+(Q=i[E+520>>2])|0,t=(n=f)+(C=i[E+524>>2])|0,M=Ig(c,0,Q<<1&-2,1&(C<<1|Q>>>31)),Q=f+(Q>>>0>p>>>0?t+1|0:t)|0,p=UI(w=y^(C=M+p|0),k^(y=C>>>0>>0?Q+1|0:Q),40),w=1+(Q=e+(t=f)|0)|0,k=Q,k=(Q=r+p|0)>>>0>>0?w:k,r=Ig(p,0,r<<1&-2,1&(e<<1|r>>>31)),e=f+k|0,k=UI((Q=r+Q|0)^c,n^(X=Q>>>0>>0?e+1|0:e),48),n=1+(r=y+(BA=f)|0)|0,w=r,e=(r=C+k|0)>>>0>>0?n:w,y=r+(C=Ig(k,0,C<<1&-2,1&(y<<1|C>>>31)))|0,r=f+e|0,n=UI(p^y,t^(O=C>>>0>y>>>0?r+1|0:r),1),Y=w=f,p=(H=i[E+260>>2])+(r=i[E+4>>2])|0,c=(e=i[E+256>>2])+(C=i[E>>2])|0,t=Ig(C<<1&-2,1&(r<<1|C>>>31),e,0),C=f+(C>>>0>c>>>0?p+1|0:p)|0,c=(r=c+t|0)>>>0>>0?C+1|0:C,t=(Z=UI(r^i[E+768>>2],c^i[E+772>>2],32))+(C=i[E+512>>2])|0,M=(QA=f)+(p=i[E+516>>2])|0,q=Ig(Z,0,C<<1&-2,1&(p<<1|C>>>31)),C=f+(C>>>0>t>>>0?M+1|0:M)|0,M=UI(e^(p=q+t|0),H^(q=p>>>0>>0?C+1|0:C),40),e=1+(C=c+(gA=f)|0)|0,t=C,e=(C=r+M|0)>>>0>>0?e:t,r=C+(c=Ig(M,0,r<<1&-2,1&(c<<1|r>>>31)))|0,C=f+e|0,w=1+(C=(j=r>>>0>>0?C+1|0:C)+w|0)|0,t=C,c=(C=r+n|0)>>>0>>0?w:t,e=C+(t=Ig(n,0,r<<1&-2,1&(j<<1|r>>>31)))|0,C=f+c|0,G=UI(e^b,(R=e>>>0>>0?C+1|0:C)^G,32),W=f,t=($=i[E+388>>2])+(C=i[E+132>>2])|0,H=(w=i[E+384>>2])+(c=i[E+128>>2])|0,l=Ig(c<<1&-2,1&(C<<1|c>>>31),w,0),c=f+(c>>>0>H>>>0?t+1|0:t)|0,H=(C=H+l|0)>>>0>>0?c+1|0:c,L=(l=UI(C^i[E+896>>2],H^i[E+900>>2],32))+(t=i[E+640>>2])|0,m=(AA=f)+(c=i[E+644>>2])|0,K=Ig(l,0,t<<1&-2,1&(c<<1|t>>>31)),t=f+(t>>>0>L>>>0?m+1|0:m)|0,w=UI(w^(c=K+L|0),$^(L=c>>>0>>0?t+1|0:t),40),U=1+(t=H+($=f)|0)|0,K=t,m=(t=C+w|0)>>>0>>0?U:K,C=Ig(w,0,C<<1&-2,1&(H<<1|C>>>31)),H=f+m|0,H=UI(K=(t=C+t|0)^l,AA^(l=C>>>0>t>>>0?H+1|0:H),48),U=1+(C=L+(AA=f)|0)|0,K=C,m=(C=c+H|0)>>>0>>0?U:K,c=Ig(H,0,c<<1&-2,1&(L<<1|c>>>31)),L=f+m|0,U=1+(c=(L=(C=c+C|0)>>>0>>0?L+1|0:L)+W|0)|0,K=c,m=(c=C+G|0)>>>0>>0?U:K,U=n^(c=(K=Ig(G,0,C<<1&-2,1&(L<<1|C>>>31)))+c|0),n=f+m|0,n=UI(U,Y^(m=c>>>0>>0?n+1|0:n),40),T=1+(K=R+(Y=f)|0)|0,U=K,CA=(K=e+n|0)>>>0>>0?T:U,e=(R=Ig(n,0,e<<1&-2,1&(R<<1|e>>>31)))+K|0,i[E>>2]=e,K=f+CA|0,R=e>>>0>>0?K+1|0:K,i[E+4>>2]=R,e=UI(e^G,R^W,48),i[E+904>>2]=e,G=f,i[E+908>>2]=G,U=1+(G=G+m|0)|0,K=G,R=(G=c+e|0)>>>0>>0?U:K,e=(c=Ig(e,0,c<<1&-2,1&(m<<1|c>>>31)))+G|0,i[E+640>>2]=e,G=f+R|0,c=c>>>0>e>>>0?G+1|0:G,i[E+644>>2]=c,eA=E,yA=UI(e^n,c^Y,1),i[eA+264>>2]=yA,i[E+268>>2]=f,e=UI(C^w,L^$,1),G=1+(C=X+(w=f)|0)|0,n=C,c=(C=Q+e|0)>>>0>>0?G:n,C=C+(n=Ig(e,0,Q<<1&-2,1&(X<<1|Q>>>31)))|0,Q=f+c|0,c=UI(r^Z,j^QA,48),Q=UI(c^C,(n=C>>>0>>0?Q+1|0:Q)^(X=f),32),Z=G=f,K=1+(r=J+x|0)|0,Y=r,j=(r=B+b|0)>>>0>>0?K:Y,B=Ig(b,0,B<<1&-2,1&(J<<1|B>>>31)),b=f+j|0,Y=1+(B=(b=B>>>0>(r=B+r|0)>>>0?b+1|0:b)+G|0)|0,G=B,G=(B=Q+r|0)>>>0>>0?Y:G,Y=e^(B=(J=Ig(Q,0,r<<1&-2,1&(b<<1|r>>>31)))+B|0),e=f+G|0,e=UI(Y,w^(G=B>>>0>>0?e+1|0:e),40),K=1+(J=n+(w=f)|0)|0,Y=J,j=(J=C+e|0)>>>0>>0?K:Y,Y=Q^(C=(n=Ig(e,0,C<<1&-2,1&(n<<1|C>>>31)))+J|0),Q=f+j|0,Q=UI(Y,Z^(n=C>>>0>>0?Q+1|0:Q),48),i[E+768>>2]=Q,J=f,i[E+772>>2]=J,i[E+8>>2]=C,i[E+12>>2]=n,Y=1+(C=G+J|0)|0,n=C,n=(C=B+Q|0)>>>0>>0?Y:n,B=Ig(Q,0,B<<1&-2,1&(G<<1|B>>>31)),Q=f+n|0,eA=E,yA=UI((C=B+C|0)^e,w^(B=C>>>0>>0?Q+1|0:Q),1),i[eA+384>>2]=yA,i[E+388>>2]=f,i[E+648>>2]=C,i[E+652>>2]=B,Q=UI(r^d,b^P,1),B=1+(r=l+(d=f)|0)|0,C=r,B=(r=Q+t|0)>>>0>>0?B:C,C=r+(e=Ig(Q,0,t<<1&-2,1&(l<<1|t>>>31)))|0,r=f+B|0,e=UI(C^k,BA^(t=C>>>0>>0?r+1|0:r),32),b=B=f,k=1+(r=q+X|0)|0,B=r,k=(r=c+p|0)>>>0

>>0?k:B,p=Ig(c,0,p<<1&-2,1&(q<<1|p>>>31)),B=f+k|0,w=1+(B=b+(p=(r=p+r|0)>>>0

>>0?B+1|0:B)|0)|0,k=B,c=(B=r+e|0)>>>0>>0?w:k,w=Q^(B=B+(k=Ig(e,0,r<<1&-2,1&(p<<1|r>>>31)))|0),Q=f+c|0,Q=UI(w,d^(c=B>>>0>>0?Q+1|0:Q),40),n=1+(k=t+(d=f)|0)|0,w=k,n=(k=C+Q|0)>>>0>>0?n:w,C=(t=Ig(Q,0,C<<1&-2,1&(t<<1|C>>>31)))+k|0,i[E+128>>2]=C,k=f+n|0,t=C>>>0>>0?k+1|0:k,i[E+132>>2]=t,C=UI(C^e,t^b,48),i[E+776>>2]=C,e=f,i[E+780>>2]=e,k=1+(e=c+e|0)|0,t=e,t=(e=C+B|0)>>>0>>0?k:t,B=(C=Ig(C,0,B<<1&-2,1&(c<<1|B>>>31)))+e|0,e=f+t|0,t=C=C>>>0>B>>>0?e+1|0:e,i[E+512>>2]=B,i[E+516>>2]=C,C=(p=UI(r^M,p^gA,1))+F|0,e=(b=f)+v|0,r=(c=Ig(F<<1&-2,1&(v<<1|F>>>31),p,0))+C|0,C=f+(C>>>0

>>0?e+1|0:e)|0,e=UI(r^H,AA^(c=r>>>0>>0?C+1|0:C),32),w=1+(C=O+(F=f)|0)|0,k=C,k=(C=e+y|0)>>>0>>0?w:k,w=p^(C=(y=Ig(e,0,y<<1&-2,1&(O<<1|y>>>31)))+C|0),p=f+k|0,y=UI(w,b^(p=C>>>0>>0?p+1|0:p),40),n=1+(k=c+(b=f)|0)|0,w=k,n=(k=r+y|0)>>>0>>0?n:w,k=e^(c=(r=Ig(y,0,r<<1&-2,1&(c<<1|r>>>31)))+k|0),e=f+n|0,r=UI(k,F^(e=r>>>0>c>>>0?e+1|0:e),48),n=1+(k=p+(F=f)|0)|0,w=k,n=(k=C+r|0)>>>0>>0?n:w,C=(p=Ig(r,0,C<<1&-2,1&(p<<1|C>>>31)))+k|0,i[E+520>>2]=C,k=f+n|0,p=C>>>0

>>0?k+1|0:k,i[E+524>>2]=p,i[E+896>>2]=r,i[E+900>>2]=F,i[E+136>>2]=c,i[E+140>>2]=e,eA=E,yA=UI(B^Q,t^d,1),i[eA+392>>2]=yA,i[E+396>>2]=f,eA=E,yA=UI(C^y,p^b,1),i[eA+256>>2]=yA,i[E+260>>2]=f,8!=(0|(S=S+1|0)););for(E=Ng(_A,g+2048|0,1024),r=0;Q=i[(C=(S=r<<3)+E|0)>>2],p=i[(y=(B=g+3072|0)+S|0)>>2],y=i[C+4>>2]^i[y+4>>2],i[C>>2]=Q^p,i[C+4>>2]=y,y=i[(C=(Q=8|S)+E|0)>>2],p=i[(Q=B+Q|0)>>2],Q=i[C+4>>2]^i[Q+4>>2],i[C>>2]=y^p,i[C+4>>2]=Q,y=i[(C=(Q=16|S)+E|0)>>2],p=i[(Q=B+Q|0)>>2],Q=i[C+4>>2]^i[Q+4>>2],i[C>>2]=y^p,i[C+4>>2]=Q,Q=i[(S=(C=24|S)+E|0)>>2],B=i[(C=C+B|0)>>2],C=i[S+4>>2]^i[C+4>>2],i[S>>2]=B^Q,i[S+4>>2]=C,128!=(0|(r=r+4|0)););}if(r=EA+1|0,z=z+1|0,!((S=i[A+20>>2])>>>0>(u=u+1|0)>>>0))break}}s=g+4096|0}function S(A){var I,g,B,Q,i,E,a,_,c,t,r,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0;h=(U=o[A+44|0]|o[A+45|0]<<8|o[A+46|0]<<16|o[A+47|0]<<24)>>>5&2097151,s=Ig(I=(o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24)>>>3|0,0,-683901,-1),y=(e=o[A+44|0])<<16&2031616|o[A+42|0]|o[A+43|0]<<8,e=f,n=e=y>>>0>(F=s+y|0)>>>0?e+1|0:e,M=e=e-((F>>>0<4293918720)-1|0)|0,s=e>>21,e=(y=h)+(h=(2097151&e)<<11|(p=F- -1048576|0)>>>21)|0,y=s,m=y=e>>>0>>0?y+1|0:y,z=e,G=Ig(e,y,-683901,-1),k=f,w=Ig(g=(o[A+49|0]|o[A+50|0]<<8|o[A+51|0]<<16|o[A+52|0]<<24)>>>7&2097151,0,-997805,-1),s=(e=o[A+27|0])>>>24|0,h=e<<8|(K=o[A+23|0]|o[A+24|0]<<8|o[A+25|0]<<16|o[A+26|0]<<24)>>>24,y=(e=o[A+28|0])>>>16|0,y=2097151&((3&(y|=s))<<30|(e=h|e<<16)>>>2),e=f,e=y>>>0>(s=y+w|0)>>>0?e+1|0:e,y=Ig(P=(S=o[A+52|0]|o[A+53|0]<<8|o[A+54|0]<<16|o[A+55|0]<<24)>>>4&2097151,0,654183,0),e=f+e|0,w=s=y+s|0,s=y>>>0>s>>>0?e+1|0:e,D=(y=o[A+48|0])<<8|U>>>24,y=e=y>>>24|0,e=Ig(B=2097151&((3&(U=(e=(h=o[A+49|0])>>>16|0)|y))<<30|(y=(h<<=16)|D)>>>2),0,136657,0),s=f+s|0,s=e>>>0>(y=e+w|0)>>>0?s+1|0:s,h=(e=Ig(Q=(o[A+57|0]|o[A+58|0]<<8|o[A+59|0]<<16|o[A+60|0]<<24)>>>6&2097151,0,666643,0))+y|0,y=f+s|0,w=h,s=e>>>0>h>>>0?y+1|0:y,y=(e=o[A+56|0])>>>24|0,D=e<<8|S>>>24,y=Ig(i=2097151&((1&(S=(e=(h=o[A+57|0])>>>16|0)|y))<<31|(y=(h<<=16)|D)>>>1),0,470296,0),e=f+s|0,y=(e=(s=h=y+w|0)>>>0>>0?e+1|0:e)+k|0,y=s>>>0>(h=s+G|0)>>>0?y+1|0:y,b=s- -1048576|0,l=s=e-((s>>>0<4293918720)-1|0)|0,k=h-(e=-2097152&b)|0,G=y-((e>>>0>h>>>0)+s|0)|0,y=Ig(g,0,654183,0),e=f,e=y>>>0>(s=y+(K>>>5&2097151)|0)>>>0?e+1|0:e,h=(y=s)+(s=Ig(P,0,470296,0))|0,y=f+e|0,y=s>>>0>h>>>0?y+1|0:y,e=Ig(B,j,-997805,-1),y=f+y|0,y=e>>>0>(s=e+h|0)>>>0?y+1|0:y,h=(e=s)+(s=Ig(i,X,666643,0))|0,e=f+y|0,D=h,h=s>>>0>h>>>0?e+1|0:e,w=(s=Ig(g,0,470296,0))+(e=(e=o[A+23|0])<<16&2031616|o[A+21|0]|o[A+22|0]<<8)|0,s=f,s=e>>>0>w>>>0?s+1|0:s,w=(y=Ig(P,0,666643,0))+w|0,e=f+s|0,s=Ig(B,j,654183,0),y=f+(y>>>0>w>>>0?e+1|0:e)|0,S=y=s>>>0>(K=s+w|0)>>>0?y+1|0:y,L=y=y-((K>>>0<4293918720)-1|0)|0,e=(e=y>>>21|0)+h|0,s=e=(y=(2097151&y)<<11|(w=K- -1048576|0)>>>21)>>>0>(D=y+D|0)>>>0?e+1|0:e,N=y=e-((D>>>0<4293918720)-1|0)|0,e=k,k=(2097151&y)<<11|(h=D- -1048576|0)>>>21,y=(y>>21)+G|0,U=k=(y=k>>>0>(H=e+k|0)>>>0?y+1|0:y)-((H>>>0<4293918720)-1|0)|0,q=H-(e=-2097152&(G=H- -1048576|0))|0,O=y-((e>>>0>H>>>0)+k|0)|0,e=Ig(z,m,136657,0),s=f+s|0,s=e>>>0>(y=e+D|0)>>>0?s+1|0:s,d=y-(e=-2097152&h)|0,Y=s-((e>>>0>y>>>0)+N|0)|0,H=F-(e=-2097152&p)|0,M=n-((e>>>0>F>>>0)+M|0)|0,n=Ig(I,0,136657,0),y=(e=o[A+40|0])>>>24|0,h=e<<8|(p=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24)>>>24,s=(e=o[A+41|0])>>>16|0,y=(s|=y)>>>3|0,s=(7&s)<<29|(e=h|e<<16)>>>3,e=y+f|0,e=s>>>0>(h=s+n|0)>>>0?e+1|0:e,y=Ig(Q,0,-683901,-1),e=f+e|0,e=y>>>0>(s=y+h|0)>>>0?e+1|0:e,D=s,y=Ig(I,0,-997805,-1),s=f,s=y>>>0>(h=y+(p>>>6&2097151)|0)>>>0?s+1|0:s,p=(y=h)+(h=Ig(Q,0,136657,0))|0,y=f+s|0,s=Ig(i,X,-683901,-1),y=f+(h>>>0>p>>>0?y+1|0:y)|0,k=y=s>>>0>(u=s+p|0)>>>0?y+1|0:y,W=s=y-((u>>>0<4293918720)-1|0)|0,e=e+(y=s>>21)|0,p=e=(s=(2097151&s)<<11|(F=u- -1048576|0)>>>21)>>>0>(N=s+D|0)>>>0?e+1|0:e,x=e=e-((N>>>0<4293918720)-1|0)|0,y=(y=e>>21)+M|0,R=y=(e=(s=(2097151&e)<<11|(D=N- -1048576|0)>>>21)+H|0)>>>0>>0?y+1|0:y,v=e,y=Ig(e,y,-683901,-1),e=f+Y|0,J=s=y+d|0,h=y>>>0>s>>>0?e+1|0:e,H=K-(e=-2097152&w)|0,M=S-((4095&L)+(e>>>0>K>>>0)|0)|0,K=Ig(g,0,666643,0),e=(y=o[A+19|0])>>>24|0,w=y<<8|(S=o[A+15|0]|o[A+16|0]<<8|o[A+17|0]<<16|o[A+18|0]<<24)>>>24,s=e,y=(7&(s|=y=(e=o[A+20|0])>>>16|0))<<29|(y=(e<<=16)|w)>>>3,s=f+(s>>>3|0)|0,s=y>>>0>(w=y+K|0)>>>0?s+1|0:s,e=Ig(B,j,470296,0),y=f+s|0,e=e>>>0>(w=e+w|0)>>>0?y+1|0:y,s=Ig(B,j,666643,0),y=f,K=y=s>>>0>(d=s+(S>>>6&2097151)|0)>>>0?y+1|0:y,V=s=y-((d>>>0<4293918720)-1|0)|0,e=e+(y=s>>>21|0)|0,S=e=(s=(2097151&s)<<11|(n=d- -1048576|0)>>>21)>>>0>(Y=s+w|0)>>>0?e+1|0:e,Z=e=e-((Y>>>0<4293918720)-1|0)|0,y=(y=e>>>21|0)+M|0,y=(e=(2097151&e)<<11|(w=Y- -1048576|0)>>>21)>>>0>(s=e+H|0)>>>0?y+1|0:y,M=(e=s)+(s=Ig(z,m,-997805,-1))|0,e=f+y|0,e=s>>>0>M>>>0?e+1|0:e,L=y=N-(s=-2097152&D)|0,E=D=p-((s>>>0>N>>>0)+x|0)|0,s=Ig(v,R,136657,0),e=f+e|0,e=s>>>0>(p=s+M|0)>>>0?e+1|0:e,s=Ig(y,D,-683901,-1),y=f+e|0,p=y=s>>>0>(M=s+p|0)>>>0?y+1|0:y,x=e=y-((M>>>0<4293918720)-1|0)|0,y=(2097151&e)<<11|(D=M- -1048576|0)>>>21,e=(e>>21)+h|0,J=y=(e=y>>>0>(N=y+J|0)>>>0?e+1|0:e)-((N>>>0<4293918720)-1|0)|0,H=(2097151&y)<<11|(h=N- -1048576|0)>>>21,y=(y>>21)+O|0,_=q=H+q|0,H=H>>>0>q>>>0?y+1|0:y,c=N-(y=-2097152&h)|0,t=e-((y>>>0>N>>>0)+J|0)|0,q=M-(e=-2097152&D)|0,O=p-((e>>>0>M>>>0)+x|0)|0,s=(e=Ig(z,m,654183,0))+(Y-(y=-2097152&w)|0)|0,y=f+(S-((2147483647&Z)+(y>>>0>Y>>>0)|0)|0)|0,y=e>>>0>s>>>0?y+1|0:y,e=Ig(v,R,-997805,-1),y=f+y|0,y=e>>>0>(s=e+s|0)>>>0?y+1|0:y,h=(e=s)+(s=Ig(L,E,136657,0))|0,e=f+y|0,J=h,p=s>>>0>h>>>0?e+1|0:e,Y=u-(e=-2097152&F)|0,N=k-((e>>>0>u>>>0)+W|0)|0,S=Ig(P,0,-683901,-1),e=(y=o[A+35|0])>>>24|0,h=y<<8|(w=o[A+31|0]|o[A+32|0]<<8|o[A+33|0]<<16|o[A+34|0]<<24)>>>24,s=e,y=(e=o[A+36|0])>>>16|0,y|=s,s=f,s=(e=2097151&((1&y)<<31|(e=e<<16|h)>>>1))>>>0>(y=e+S|0)>>>0?s+1|0:s,h=(e=Ig(I,0,654183,0))+y|0,y=f+s|0,y=e>>>0>h>>>0?y+1|0:y,s=Ig(Q,0,-997805,-1),e=f+y|0,e=s>>>0>(h=s+h|0)>>>0?e+1|0:e,y=Ig(i,X,136657,0),e=f+e|0,D=s=y+h|0,h=y>>>0>s>>>0?e+1|0:e,e=Ig(g,0,-683901,-1),y=f,y=e>>>0>(s=e+(w>>>4&2097151)|0)>>>0?y+1|0:y,w=(e=Ig(P,0,136657,0))+s|0,s=f+y|0,s=e>>>0>w>>>0?s+1|0:s,e=Ig(I,0,470296,0),y=f+s|0,y=e>>>0>(w=e+w|0)>>>0?y+1|0:y,w=(s=Ig(Q,0,654183,0))+w|0,e=f+y|0,y=Ig(i,X,-997805,-1),e=f+(s>>>0>w>>>0?e+1|0:e)|0,S=e=y>>>0>(k=y+w|0)>>>0?e+1|0:e,r=y=e-((k>>>0<4293918720)-1|0)|0,s=(e=y>>21)+h|0,M=y=(s=(y=(2097151&y)<<11|(w=k- -1048576|0)>>>21)>>>0>(F=y+D|0)>>>0?s+1|0:s)-((F>>>0<4293918720)-1|0)|0,e=(e=y>>21)+N|0,x=e=(y=(h=(2097151&y)<<11|(D=F- -1048576|0)>>>21)+Y|0)>>>0>>0?e+1|0:e,h=J,J=y,e=Ig(y,e,-683901,-1),y=f+p|0,N=h=h+e|0,h=e>>>0>h>>>0?y+1|0:y,p=(e=Ig(z,m,470296,0))+(d-(y=-2097152&n)|0)|0,y=f+(K-((2047&V)+(y>>>0>d>>>0)|0)|0)|0,y=e>>>0>p>>>0?y+1|0:y,n=(e=p)+(p=Ig(v,R,654183,0))|0,e=f+y|0,e=p>>>0>n>>>0?e+1|0:e,p=Ig(L,E,-997805,-1),y=f+e|0,y=p>>>0>(n=p+n|0)>>>0?y+1|0:y,u=D=F-(e=-2097152&D)|0,a=p=s-((e>>>0>F>>>0)+M|0)|0,s=Ig(J,x,136657,0),e=f+y|0,e=s>>>0>(n=s+n|0)>>>0?e+1|0:e,s=Ig(D,p,-683901,-1),y=f+e|0,p=y=s>>>0>(K=s+n|0)>>>0?y+1|0:y,Y=e=y-((K>>>0<4293918720)-1|0)|0,y=(2097151&e)<<11|(D=K- -1048576|0)>>>21,e=(e>>21)+h|0,N=y=(e=y>>>0>(n=y+N|0)>>>0?e+1|0:e)-((n>>>0<4293918720)-1|0)|0,F=(2097151&y)<<11|(h=n- -1048576|0)>>>21,y=(y>>21)+O|0,W=M=F+q|0,M=F>>>0>M>>>0?y+1|0:y,V=n-(y=-2097152&h)|0,Z=e-((y>>>0>n>>>0)+N|0)|0,q=K-(e=-2097152&D)|0,O=p-((e>>>0>K>>>0)+Y|0)|0,p=Ig(z,m,666643,0),e=(y=o[A+14|0])>>>24|0,h=y<<8|(N=o[A+10|0]|o[A+11|0]<<8|o[A+12|0]<<16|o[A+13|0]<<24)>>>24,s=e,y=(e=o[A+15|0])>>>16|0,y|=s,s=f,s=(e=2097151&((1&y)<<31|(e=e<<16|h)>>>1))>>>0>(y=e+p|0)>>>0?s+1|0:s,h=(e=y)+(y=Ig(v,R,470296,0))|0,e=f+s|0,e=y>>>0>h>>>0?e+1|0:e,y=Ig(L,E,654183,0),e=f+e|0,e=y>>>0>(s=y+h|0)>>>0?e+1|0:e,h=(y=s)+(s=Ig(J,x,-997805,-1))|0,y=f+e|0,y=s>>>0>h>>>0?y+1|0:y,e=Ig(u,a,136657,0),y=f+y|0,K=s=e+h|0,h=e>>>0>s>>>0?y+1|0:y,w=k-(e=-2097152&w)|0,p=S-((e>>>0>k>>>0)+r|0)|0,s=Ig(g,0,136657,0),e=f,e=(y=(o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24)>>>7&2097151)>>>0>(s=y+s|0)>>>0?e+1|0:e,D=(y=s)+(s=Ig(P,0,-997805,-1))|0,y=f+e|0,y=s>>>0>D>>>0?y+1|0:y,e=Ig(B,j,-683901,-1),y=f+y|0,y=e>>>0>(s=e+D|0)>>>0?y+1|0:y,D=(e=Ig(I,0,666643,0))+s|0,s=f+y|0,s=e>>>0>D>>>0?s+1|0:s,y=Ig(Q,0,470296,0),e=f+s|0,e=y>>>0>(D=y+D|0)>>>0?e+1|0:e,y=Ig(i,X,654183,0),e=f+e|0,y=(l>>21)+(y>>>0>(s=y+D|0)>>>0?e+1|0:e)|0,F=y=(D=(2097151&l)<<11|b>>>21)>>>0>(b=D+s|0)>>>0?y+1|0:y,l=e=y-((b>>>0<4293918720)-1|0)|0,D=(2097151&e)<<11|(n=b- -1048576|0)>>>21,e=(e>>21)+p|0,d=e=(y=D+w|0)>>>0>>0?e+1|0:e,Y=y,y=Ig(y,e,-683901,-1),e=f+h|0,D=s=y+K|0,h=y>>>0>s>>>0?e+1|0:e,e=Ig(v,R,666643,0),y=f,y=e>>>0>(s=e+(N>>>4&2097151)|0)>>>0?y+1|0:y,e=Ig(L,E,470296,0),y=f+y|0,y=e>>>0>(s=e+s|0)>>>0?y+1|0:y,p=(e=Ig(J,x,654183,0))+s|0,s=f+y|0,s=e>>>0>p>>>0?s+1|0:s,y=Ig(u,a,-997805,-1),e=f+s|0,e=y>>>0>(p=y+p|0)>>>0?e+1|0:e,y=Ig(Y,d,136657,0),e=f+e|0,S=e=y>>>0>(k=y+p|0)>>>0?e+1|0:e,R=y=e-((k>>>0<4293918720)-1|0)|0,e=D,D=(2097151&y)<<11|(w=k- -1048576|0)>>>21,y=(y>>21)+h|0,v=h=(y=(s=e+D|0)>>>0>>0?y+1|0:y)-((s>>>0<4293918720)-1|0)|0,e=(e=h>>21)+O|0,z=D=(h=(2097151&h)<<11|(p=s- -1048576|0)>>>21)+q|0,K=h>>>0>D>>>0?e+1|0:e,D=s,s=y,h=(b-(y=-2097152&n)|0)+(n=(2097151&U)<<11|G>>>21)|0,y=(F-((y>>>0>b>>>0)+l|0)|0)+(U>>21)|0,N=y=h>>>0>>0?y+1|0:y,P=y=y-((h>>>0<4293918720)-1|0)|0,G=e=y>>21,e=Ig(m=(2097151&y)<<11|(l=h- -1048576|0)>>>21,e,-683901,-1),s=f+s|0,s=e>>>0>(y=e+D|0)>>>0?s+1|0:s,j=y-(e=-2097152&p)|0,X=s-((e>>>0>y>>>0)+v|0)|0,e=Ig(m,G,136657,0),y=S+f|0,v=(s=e+k|0)-(e=-2097152&w)|0,b=(y=s>>>0>>0?y+1|0:y)-((e>>>0>s>>>0)+R|0)|0,y=Ig(L,E,666643,0),s=f,s=(e=(o[A+7|0]|o[A+8|0]<<8|o[A+9|0]<<16|o[A+10|0]<<24)>>>7&2097151)>>>0>(y=e+y|0)>>>0?s+1|0:s,D=(e=Ig(J,x,470296,0))+y|0,y=f+s|0,y=e>>>0>D>>>0?y+1|0:y,e=Ig(u,a,654183,0),y=f+y|0,y=e>>>0>(s=e+D|0)>>>0?y+1|0:y,D=(e=s)+(s=Ig(Y,d,-997805,-1))|0,e=f+y|0,n=D,D=s>>>0>D>>>0?e+1|0:e,S=Ig(J,x,666643,0),e=(y=o[A+6|0])>>>24|0,p=y<<8|(R=o[A+2|0]|o[A+3|0]<<8|o[A+4|0]<<16|o[A+5|0]<<24)>>>24,s=e,y=(e=o[A+7|0])>>>16|0,y=2097151&((3&(y|=s))<<30|(e=e<<16|p)>>>2),e=f,e=y>>>0>(s=y+S|0)>>>0?e+1|0:e,p=(y=Ig(u,a,470296,0))+s|0,s=f+e|0,s=y>>>0>p>>>0?s+1|0:s,y=Ig(Y,d,654183,0),e=f+s|0,S=e=y>>>0>(F=y+p|0)>>>0?e+1|0:e,U=e=e-((F>>>0<4293918720)-1|0)|0,y=(s=e>>21)+D|0,k=e=(y=(e=(2097151&e)<<11|(w=F- -1048576|0)>>>21)>>>0>(p=e+n|0)>>>0?y+1|0:y)-((p>>>0<4293918720)-1|0)|0,n=(2097151&e)<<11|(D=p- -1048576|0)>>>21,e=(e>>21)+b|0,v=J=n+v|0,n=n>>>0>J>>>0?e+1|0:e,e=Ig(m,G,-997805,-1),y=f+y|0,y=e>>>0>(s=e+p|0)>>>0?y+1|0:y,L=s-(e=-2097152&D)|0,x=y-((e>>>0>s>>>0)+k|0)|0,y=Ig(m,G,654183,0),e=S+f|0,J=(s=y+F|0)-(y=-2097152&w)|0,b=(e=s>>>0>>0?e+1|0:e)-((y>>>0>s>>>0)+U|0)|0,e=Ig(u,a,666643,0),y=f,y=e>>>0>(s=e+(R>>>5&2097151)|0)>>>0?y+1|0:y,e=Ig(Y,d,470296,0),y=f+y|0,p=s=e+s|0,s=e>>>0>s>>>0?y+1|0:y,D=Ig(Y,d,666643,0),y=(e=o[A+2|0])<<16&2031616|o[0|A]|o[A+1|0]<<8,e=f,S=e=y>>>0>(k=D+y|0)>>>0?e+1|0:e,d=e=e-((k>>>0<4293918720)-1|0)|0,D=(2097151&e)<<11|(w=k- -1048576|0)>>>21,e=(e>>21)+s|0,s=e=D>>>0>(F=D+p|0)>>>0?e+1|0:e,U=e=e-((F>>>0<4293918720)-1|0)|0,D=(2097151&e)<<11|(p=F- -1048576|0)>>>21,e=(e>>21)+b|0,D=D>>>0>(Y=D+J|0)>>>0?e+1|0:e,e=Ig(m,G,470296,0),s=s+f|0,s=(y=e+F|0)>>>0>>0?s+1|0:s,F=y-(e=-2097152&p)|0,p=s-((e>>>0>y>>>0)+U|0)|0,y=Ig(m,G,666643,0),e=f+(S-(((s=-2097152&w)>>>0>k>>>0)+d|0)|0)|0,y=(s=(e=y>>>0>(b=y+(k-s|0)|0)>>>0?e+1|0:e)>>21)+p|0,e=(e=(y=(e=(2097151&e)<<11|b>>>21)>>>0>(U=e+F|0)>>>0?y+1|0:y)>>21)+D|0,y=(y=(e=(y=(2097151&y)<<11|U>>>21)>>>0>(G=y+Y|0)>>>0?e+1|0:e)>>21)+x|0,s=(e=(y=(e=(2097151&e)<<11|G>>>21)>>>0>(D=e+L|0)>>>0?y+1|0:y)>>21)+n|0,e=(y=(s=(y=(2097151&y)<<11|D>>>21)>>>0>(k=y+v|0)>>>0?s+1|0:s)>>21)+X|0,y=(s=(e=(s=(2097151&s)<<11|k>>>21)>>>0>(F=s+j|0)>>>0?e+1|0:e)>>21)+K|0,K=p=(e=(2097151&e)<<11|F>>>21)+z|0,e=(e=(y=e>>>0>p>>>0?y+1|0:y)>>21)+Z|0,y=(y=(e=(y=(2097151&y)<<11|p>>>21)>>>0>(n=y+V|0)>>>0?e+1|0:e)>>21)+M|0,s=(e=(y=(e=(2097151&e)<<11|n>>>21)>>>0>(S=e+W|0)>>>0?y+1|0:y)>>21)+t|0,e=(y=(s=(y=(2097151&y)<<11|S>>>21)>>>0>(w=y+c|0)>>>0?s+1|0:s)>>21)+H|0,l=(M=h-(y=-2097152&l)|0)+((2097151&(e=(s=(2097151&s)<<11|w>>>21)>>>0>(p=s+_|0)>>>0?e+1|0:e))<<11|p>>>21)|0,e=(N-((y>>>0>h>>>0)+P|0)|0)+(e>>21)|0,N=y=(e=M>>>0>l>>>0?e+1|0:e)>>21,b=(e=Ig(H=(2097151&e)<<11|l>>>21,y,666643,0))+(y=2097151&b)|0,e=f,h=e=y>>>0>b>>>0?e+1|0:e,C[0|A]=b,C[A+1|0]=(255&e)<<24|b>>>8,e=2097151&U,y=Ig(H,N,470296,0)+e|0,s=f,e=(h>>21)+(e>>>0>y>>>0?s+1|0:s)|0,e=(M=(2097151&h)<<11|b>>>21)>>>0>(U=M+y|0)>>>0?e+1|0:e,C[A+4|0]=(2047&e)<<21|U>>>11,y=e,s=U,C[A+3|0]=(7&e)<<29|s>>>3,C[A+2|0]=31&((65535&h)<<16|b>>>16)|s<<5,h=2097151&G,G=Ig(H,N,654183,0)+h|0,e=f,U=(2097151&y)<<11|s>>>21,y=(y>>21)+(h=h>>>0>G>>>0?e+1|0:e)|0,e=y=(G=U+G|0)>>>0>>0?y+1|0:y,C[A+6|0]=(63&e)<<26|G>>>6,h=G,G=0,C[A+5|0]=G<<13|(1572864&s)>>>19|h<<2,s=2097151&D,D=Ig(H,N,-997805,-1)+s|0,y=f,y=s>>>0>D>>>0?y+1|0:y,G=(2097151&(s=e))<<11|h>>>21,s=(e>>=21)+y|0,s=(D=G+D|0)>>>0>>0?s+1|0:s,C[A+9|0]=(511&s)<<23|D>>>9,C[A+8|0]=(1&s)<<31|D>>>1,y=0,C[A+7|0]=y<<18|(2080768&h)>>>14|D<<7,y=2097151&k,h=Ig(H,N,136657,0)+y|0,e=f,e=y>>>0>h>>>0?e+1|0:e,k=(2097151&(y=s))<<11|D>>>21,y=e+(s=y>>21)|0,y=(h=k+h|0)>>>0>>0?y+1|0:y,C[A+12|0]=(4095&y)<<20|h>>>12,s=h,C[A+11|0]=(15&y)<<28|s>>>4,h=0,C[A+10|0]=h<<15|(1966080&D)>>>17|s<<4,h=2097151&F,D=Ig(H,N,-683901,-1)+h|0,e=f,e=h>>>0>D>>>0?e+1|0:e,h=y,y=e+(y>>=21)|0,y=(h=(J=D)+(D=(2097151&h)<<11|s>>>21)|0)>>>0>>0?y+1|0:y,C[A+14|0]=(127&y)<<25|h>>>7,D=0,C[A+13|0]=D<<12|(1048576&s)>>>20|h<<1,e=y>>21,s=(y=(2097151&y)<<11|h>>>21)>>>0>(D=y+(2097151&K)|0)>>>0?e+1|0:e,C[A+17|0]=(1023&s)<<22|D>>>10,C[A+16|0]=(3&s)<<30|D>>>2,y=0,C[A+15|0]=y<<17|(2064384&h)>>>15|D<<6,e=s>>21,e=(y=(2097151&s)<<11|D>>>21)>>>0>(s=y+(2097151&n)|0)>>>0?e+1|0:e,C[A+20|0]=(8191&e)<<19|s>>>13,C[A+19|0]=(31&e)<<27|s>>>5,h=(y=2097151&S)+(S=(2097151&e)<<11|s>>>21)|0,y=e>>21,y=h>>>0>>0?y+1|0:y,S=h,C[A+21|0]=h,n=0,C[A+18|0]=n<<14|(1835008&D)>>>18|s<<3,C[A+22|0]=(255&y)<<24|h>>>8,s=y>>21,s=(h=(D=(2097151&y)<<11|h>>>21)+(2097151&w)|0)>>>0>>0?s+1|0:s,C[A+25|0]=(2047&s)<<21|h>>>11,C[A+24|0]=(7&s)<<29|h>>>3,C[A+23|0]=31&((65535&y)<<16|S>>>16)|h<<5,e=s>>21,e=(y=(2097151&s)<<11|h>>>21)>>>0>(s=y+(2097151&p)|0)>>>0?e+1|0:e,C[A+27|0]=(63&e)<<26|s>>>6,D=0,C[A+26|0]=D<<13|(1572864&h)>>>19|s<<2,y=e,e>>=21,y=(h=(p=(2097151&y)<<11|s>>>21)+(D=2097151&l)|0)>>>0>>0?e+1|0:e,C[A+31|0]=(131071&y)<<15|h>>>17,e=h,C[A+30|0]=(511&y)<<23|e>>>9,h=0,C[A+28|0]=h<<18|(2080768&s)>>>14|e<<7,C[A+29|0]=p+l>>>1}function N(A,I,g){var C,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0;for(s=E=s-2048|0,Ng(E+1024|0,I,1024),I=0;Q=i[(_=(o=E+1024|0)+(B=I<<3)|0)>>2],a=i[(c=A+B|0)>>2],c=i[_+4>>2]^i[c+4>>2],i[_>>2]=Q^a,i[_+4>>2]=c,c=i[(_=(Q=8|B)+o|0)>>2],a=i[(Q=A+Q|0)>>2],Q=i[_+4>>2]^i[Q+4>>2],i[_>>2]=a^c,i[_+4>>2]=Q,c=i[(_=(Q=16|B)+o|0)>>2],a=i[(Q=A+Q|0)>>2],Q=i[_+4>>2]^i[Q+4>>2],i[_>>2]=a^c,i[_+4>>2]=Q,Q=i[(B=(_=24|B)+o|0)>>2],c=i[(_=A+_|0)>>2],_=i[B+4>>2]^i[_+4>>2],i[B>>2]=Q^c,i[B+4>>2]=_,128!=(0|(I=I+4|0)););for(C=Ng(E,o,1024),A=0,I=0;E=i[(B=(o=I<<3)+C|0)>>2],Q=i[(_=g+o|0)>>2],_=i[B+4>>2]^i[_+4>>2],i[B>>2]=Q^E,i[B+4>>2]=_,_=i[(B=(E=8|o)+C|0)>>2],Q=i[(E=g+E|0)>>2],E=i[B+4>>2]^i[E+4>>2],i[B>>2]=Q^_,i[B+4>>2]=E,_=i[(B=(E=16|o)+C|0)>>2],Q=i[(E=g+E|0)>>2],E=i[B+4>>2]^i[E+4>>2],i[B>>2]=Q^_,i[B+4>>2]=E,E=i[(o=(B=24|o)+C|0)>>2],_=i[(B=g+B|0)>>2],B=i[o+4>>2]^i[B+4>>2],i[o>>2]=E^_,i[o+4>>2]=B,128!=(0|(I=I+4|0)););for(;c=(Q=i[56+(o=(C+1024|0)+(A<<7)|0)>>2])+(B=i[o+24>>2])|0,I=(t=i[o+60>>2])+(E=i[o+28>>2])|0,_=B>>>0>c>>>0?I+1|0:I,E=Ig(B<<1&-2,1&(E<<1|B>>>31),Q,0),I=f+_|0,_=(B=E+c|0)>>>0>>0?I+1|0:I,e=(c=UI(i[o+120>>2]^B,_^i[o+124>>2],32))+(E=i[o+88>>2])|0,I=(y=f)+(a=i[o+92>>2])|0,r=E>>>0>e>>>0?I+1|0:I,a=Ig(E<<1&-2,1&(a<<1|E>>>31),c,0),I=f+r|0,x=UI(Q^(E=a+e|0),t^(h=E>>>0>>0?I+1|0:I),40),I=_+(z=f)|0,Q=(a=B+x|0)>>>0>>0?I+1|0:I,B=Ig(x,0,B<<1&-2,1&(_<<1|B>>>31)),I=f+Q|0,H=UI(c^(F=B+a|0),y^(b=B>>>0>F>>>0?I+1|0:I),48),j=I=f,p=H,e=I,a=(c=i[o+40>>2])+(B=i[o+8>>2])|0,I=(Y=i[o+44>>2])+(_=i[o+12>>2])|0,Q=B>>>0>a>>>0?I+1|0:I,_=Ig(B<<1&-2,1&(_<<1|B>>>31),c,0),I=f+Q|0,Q=(B=_+a|0)>>>0<_>>>0?I+1|0:I,y=(a=UI(i[o+104>>2]^B,Q^i[o+108>>2],32))+(_=i[o+72>>2])|0,I=(w=f)+(r=i[o+76>>2])|0,t=_>>>0>y>>>0?I+1|0:I,r=Ig(_<<1&-2,1&(r<<1|_>>>31),a,0),I=f+t|0,r=UI(t=(_=r+y|0)^c,Y^(c=_>>>0>>0?I+1|0:I),40),I=Q+(n=f)|0,t=(y=B+r|0)>>>0>>0?I+1|0:I,Q=Ig(r,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+t|0,v=UI((B=Q+y|0)^a,w^(y=B>>>0>>0?I+1|0:I),48),I=c+(R=f)|0,Q=(a=_+v|0)>>>0<_>>>0?I+1|0:I,c=Ig(v,0,_<<1&-2,1&(c<<1|_>>>31)),I=f+Q|0,M=UI((_=c+a|0)^r,n^(Y=_>>>0>>0?I+1|0:I),1),L=I=f,k=M,t=I,w=(r=i[o+32>>2])+(Q=i[o>>2])|0,I=(J=i[o+36>>2])+(c=i[o+4>>2])|0,a=Q>>>0>w>>>0?I+1|0:I,c=Ig(Q<<1&-2,1&(c<<1|Q>>>31),r,0),I=f+a|0,a=(Q=c+w|0)>>>0>>0?I+1|0:I,D=(d=UI(i[o+96>>2]^Q,a^i[o+100>>2],32))+(c=i[(I=S=o- -64|0)>>2])|0,I=(q=f)+(w=i[I+4>>2])|0,n=c>>>0>D>>>0?I+1|0:I,w=Ig(c<<1&-2,1&(w<<1|c>>>31),d,0),I=f+n|0,J=UI((c=w+D|0)^r,J^(w=c>>>0>>0?I+1|0:I),40),I=a+(X=f)|0,r=(n=Q+J|0)>>>0>>0?I+1|0:I,a=Ig(J,0,Q<<1&-2,1&(a<<1|Q>>>31)),I=f+r|0,I=(n=(Q=a+n|0)>>>0>>0?I+1|0:I)+t|0,r=(a=Q+k|0)>>>0>>0?I+1|0:I,t=Ig(k,0,Q<<1&-2,1&(n<<1|Q>>>31)),I=f+r|0,m=UI((a=t+a|0)^p,(D=a>>>0>>0?I+1|0:I)^e,32),P=I=f,N=I,k=(p=i[o+48>>2])+(r=i[o+16>>2])|0,I=(l=i[o+52>>2])+(e=i[o+20>>2])|0,t=r>>>0>k>>>0?I+1|0:I,e=Ig(r<<1&-2,1&(e<<1|r>>>31),p,0),I=f+t|0,t=(r=e+k|0)>>>0>>0?I+1|0:I,G=(k=UI(i[o+112>>2]^r,t^i[o+116>>2],32))+(e=i[o+80>>2])|0,I=(u=f)+(K=i[o+84>>2])|0,U=e>>>0>G>>>0?I+1|0:I,K=Ig(e<<1&-2,1&(K<<1|e>>>31),k,0),I=f+U|0,K=UI(G=(e=K+G|0)^p,l^(p=e>>>0>>0?I+1|0:I),40),I=t+(l=f)|0,U=(G=r+K|0)>>>0>>0?I+1|0:I,t=Ig(K,0,r<<1&-2,1&(t<<1|r>>>31)),I=f+U|0,U=UI(G=(r=t+G|0)^k,u^(k=t>>>0>r>>>0?I+1|0:I),48),I=p+(u=f)|0,t=(G=e+U|0)>>>0>>0?I+1|0:I,p=Ig(U,0,e<<1&-2,1&(p<<1|e>>>31)),I=f+t|0,I=(p=(e=p+G|0)>>>0

>>0?I+1|0:I)+N|0,N=(t=e+m|0)>>>0>>0?I+1|0:I,G=Ig(m,0,e<<1&-2,1&(p<<1|e>>>31)),I=f+N|0,N=UI(N=(t=G+t|0)^M,L^(M=t>>>0>>0?I+1|0:I),40),I=D+(L=f)|0,G=(O=a+N|0)>>>0>>0?I+1|0:I,a=(D=Ig(N,0,a<<1&-2,1&(D<<1|a>>>31)))+O|0,I=f+G|0,i[o>>2]=a,I=a>>>0>>0?I+1|0:I,i[o+4>>2]=I,a=UI(a^m,I^P,48),i[o+120>>2]=a,I=f,i[o+124>>2]=I,I=I+M|0,D=(m=a+t|0)>>>0>>0?I+1|0:I,a=(t=Ig(a,0,t<<1&-2,1&(M<<1|t>>>31)))+m|0,I=f+D|0,i[o+80>>2]=a,I=a>>>0>>0?I+1|0:I,i[o+84>>2]=I,W=o,V=UI(a^N,I^L,1),i[W+40>>2]=V,i[o+44>>2]=f,I=h+j|0,a=(t=E+H|0)>>>0>>0?I+1|0:I,E=Ig(H,0,E<<1&-2,1&(h<<1|E>>>31)),I=f+a|0,a=I=E>>>0>(t=E+t|0)>>>0?I+1|0:I,E=I,e=UI(e^K,p^l,1),I=y+(p=f)|0,h=(D=B+e|0)>>>0>>0?I+1|0:I,B=(y=Ig(e,0,B<<1&-2,1&(y<<1|B>>>31)))+D|0,I=f+h|0,n=UI(Q^d,n^q,48),y=UI(n^B,(Q=B>>>0>>0?I+1|0:I)^(M=f),32),I=(H=f)+E|0,h=y>>>0>(D=y+t|0)>>>0?I+1|0:I,E=(I=D)+(D=Ig(t<<1&-2,1&(E<<1|t>>>31),y,0))|0,I=f+h|0,h=UI(N=E^e,p^(e=E>>>0>>0?I+1|0:I),40),I=Q+(D=f)|0,p=(d=B+h|0)>>>0>>0?I+1|0:I,B=Ig(h,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+p|0,B=UI((Q=B+d|0)^y,H^(I=B>>>0>Q>>>0?I+1|0:I),48),i[o+96>>2]=B,y=f,i[o+100>>2]=y,i[o+8>>2]=Q,i[o+12>>2]=I,I=e+y|0,Q=(y=B+E|0)>>>0>>0?I+1|0:I,E=Ig(B,0,E<<1&-2,1&(e<<1|E>>>31)),I=f+Q|0,W=o,V=UI((B=E+y|0)^h,(I=B>>>0>>0?I+1|0:I)^D,1),i[W+48>>2]=V,i[o+52>>2]=f,i[o+88>>2]=B,i[o+92>>2]=I,e=UI(t^x,a^z,1),I=k+(h=f)|0,E=(B=r+e|0)>>>0>>0?I+1|0:I,Q=Ig(e,0,r<<1&-2,1&(k<<1|r>>>31)),I=f+E|0,t=UI((B=Q+B|0)^v,R^(a=B>>>0>>0?I+1|0:I),32),y=I=f,Q=I,I=w+M|0,r=(E=c+n|0)>>>0>>0?I+1|0:I,c=Ig(n,0,c<<1&-2,1&(w<<1|c>>>31)),I=f+r|0,I=(c=(E=c+E|0)>>>0>>0?I+1|0:I)+Q|0,r=(Q=E+t|0)>>>0>>0?I+1|0:I,w=Ig(t,0,E<<1&-2,1&(c<<1|E>>>31)),I=f+r|0,e=UI((Q=w+Q|0)^e,h^(r=Q>>>0>>0?I+1|0:I),40),I=a+(w=f)|0,h=(n=B+e|0)>>>0>>0?I+1|0:I,B=(a=Ig(e,0,B<<1&-2,1&(a<<1|B>>>31)))+n|0,I=f+h|0,i[o+16>>2]=B,I=B>>>0>>0?I+1|0:I,i[o+20>>2]=I,B=UI(B^t,I^y,48),i[o+104>>2]=B,I=f,i[o+108>>2]=I,a=S,I=I+r|0,t=(h=B+Q|0)>>>0>>0?I+1|0:I,Q=Ig(B,0,Q<<1&-2,1&(r<<1|Q>>>31)),I=f+t|0,r=B=Q+h|0,t=I=B>>>0>>0?I+1|0:I,i[a>>2]=B,i[a+4>>2]=I,c=UI(E^J,c^X,1),I=(y=f)+b|0,E=(B=c+F|0)>>>0>>0?I+1|0:I,Q=Ig(F<<1&-2,1&(b<<1|F>>>31),c,0),I=f+E|0,a=UI((B=Q+B|0)^U,u^(Q=B>>>0>>0?I+1|0:I),32),I=Y+(F=f)|0,h=(E=a+_|0)>>>0<_>>>0?I+1|0:I,_=Ig(a,0,_<<1&-2,1&(Y<<1|_>>>31)),I=f+h|0,c=UI((E=_+E|0)^c,y^(_=E>>>0<_>>>0?I+1|0:I),40),I=Q+(b=f)|0,h=(y=B+c|0)>>>0>>0?I+1|0:I,Q=Ig(c,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+h|0,I=(B=Q+y|0)>>>0>>0?I+1|0:I,Q=B,B^=a,a=I,B=UI(B,F^I,48),I=_+(F=f)|0,h=(y=B+E|0)>>>0>>0?I+1|0:I,E=(_=Ig(B,0,E<<1&-2,1&(_<<1|E>>>31)))+y|0,I=f+h|0,i[o+72>>2]=E,I=E>>>0<_>>>0?I+1|0:I,i[o+76>>2]=I,i[o+112>>2]=B,i[o+116>>2]=F,i[o+24>>2]=Q,i[o+28>>2]=a,W=o,V=UI(r^e,t^w,1),i[W+56>>2]=V,i[o+60>>2]=f,W=o,V=UI(E^c,I^b,1),i[W+32>>2]=V,i[o+36>>2]=f,8!=(0|(A=A+1|0)););for(A=0;c=(Q=i[392+(o=(C+1024|0)+(A<<4)|0)>>2])+(B=i[o+136>>2])|0,I=(t=i[o+396>>2])+(E=i[o+140>>2])|0,_=B>>>0>c>>>0?I+1|0:I,E=Ig(B<<1&-2,1&(E<<1|B>>>31),Q,0),I=f+_|0,_=(B=E+c|0)>>>0>>0?I+1|0:I,e=(c=UI(i[o+904>>2]^B,_^i[o+908>>2],32))+(E=i[o+648>>2])|0,I=(y=f)+(a=i[o+652>>2])|0,r=E>>>0>e>>>0?I+1|0:I,a=Ig(E<<1&-2,1&(a<<1|E>>>31),c,0),I=f+r|0,x=UI(Q^(E=a+e|0),t^(h=E>>>0>>0?I+1|0:I),40),I=_+(G=f)|0,Q=(a=B+x|0)>>>0>>0?I+1|0:I,B=Ig(x,0,B<<1&-2,1&(_<<1|B>>>31)),I=f+Q|0,H=UI(c^(F=B+a|0),y^(b=B>>>0>F>>>0?I+1|0:I),48),z=I=f,p=H,e=I,a=(c=i[o+264>>2])+(B=i[o+8>>2])|0,I=(Y=i[o+268>>2])+(_=i[o+12>>2])|0,Q=B>>>0>a>>>0?I+1|0:I,_=Ig(B<<1&-2,1&(_<<1|B>>>31),c,0),I=f+Q|0,Q=(B=_+a|0)>>>0<_>>>0?I+1|0:I,y=(a=UI(i[o+776>>2]^B,Q^i[o+780>>2],32))+(_=i[o+520>>2])|0,I=(w=f)+(r=i[o+524>>2])|0,t=_>>>0>y>>>0?I+1|0:I,r=Ig(_<<1&-2,1&(r<<1|_>>>31),a,0),I=f+t|0,r=UI(t=(_=r+y|0)^c,Y^(c=_>>>0>>0?I+1|0:I),40),I=Q+(n=f)|0,t=(y=B+r|0)>>>0>>0?I+1|0:I,Q=Ig(r,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+t|0,v=UI((B=Q+y|0)^a,w^(y=B>>>0>>0?I+1|0:I),48),I=c+(j=f)|0,Q=(a=_+v|0)>>>0<_>>>0?I+1|0:I,c=Ig(v,0,_<<1&-2,1&(c<<1|_>>>31)),I=f+Q|0,M=UI((_=c+a|0)^r,n^(Y=_>>>0>>0?I+1|0:I),1),R=I=f,k=M,t=I,w=(r=i[o+256>>2])+(Q=i[o>>2])|0,I=(J=i[o+260>>2])+(c=i[o+4>>2])|0,a=Q>>>0>w>>>0?I+1|0:I,c=Ig(Q<<1&-2,1&(c<<1|Q>>>31),r,0),I=f+a|0,a=(Q=c+w|0)>>>0>>0?I+1|0:I,D=(d=UI(i[o+768>>2]^Q,a^i[o+772>>2],32))+(c=i[o+512>>2])|0,I=(L=f)+(w=i[o+516>>2])|0,n=c>>>0>D>>>0?I+1|0:I,w=Ig(c<<1&-2,1&(w<<1|c>>>31),d,0),I=f+n|0,J=UI((c=w+D|0)^r,J^(w=c>>>0>>0?I+1|0:I),40),I=a+(q=f)|0,r=(n=Q+J|0)>>>0>>0?I+1|0:I,a=Ig(J,0,Q<<1&-2,1&(a<<1|Q>>>31)),I=f+r|0,I=(n=(Q=a+n|0)>>>0>>0?I+1|0:I)+t|0,r=(a=Q+k|0)>>>0>>0?I+1|0:I,t=Ig(k,0,Q<<1&-2,1&(n<<1|Q>>>31)),I=f+r|0,m=UI((a=t+a|0)^p,(D=a>>>0>>0?I+1|0:I)^e,32),X=I=f,N=I,k=(p=i[o+384>>2])+(r=i[o+128>>2])|0,I=(P=i[o+388>>2])+(e=i[o+132>>2])|0,t=r>>>0>k>>>0?I+1|0:I,e=Ig(r<<1&-2,1&(e<<1|r>>>31),p,0),I=f+t|0,t=(r=e+k|0)>>>0>>0?I+1|0:I,S=(k=UI(i[o+896>>2]^r,t^i[o+900>>2],32))+(e=i[o+640>>2])|0,I=(l=f)+(K=i[o+644>>2])|0,U=e>>>0>S>>>0?I+1|0:I,K=Ig(e<<1&-2,1&(K<<1|e>>>31),k,0),I=f+U|0,K=UI(S=(e=K+S|0)^p,P^(p=e>>>0>>0?I+1|0:I),40),I=t+(P=f)|0,U=(S=r+K|0)>>>0>>0?I+1|0:I,t=Ig(K,0,r<<1&-2,1&(t<<1|r>>>31)),I=f+U|0,U=UI(S=(r=t+S|0)^k,l^(k=t>>>0>r>>>0?I+1|0:I),48),I=p+(l=f)|0,t=(S=e+U|0)>>>0>>0?I+1|0:I,p=Ig(U,0,e<<1&-2,1&(p<<1|e>>>31)),I=f+t|0,I=(p=(e=p+S|0)>>>0

>>0?I+1|0:I)+N|0,N=(t=e+m|0)>>>0>>0?I+1|0:I,S=Ig(m,0,e<<1&-2,1&(p<<1|e>>>31)),I=f+N|0,N=UI(N=(t=S+t|0)^M,R^(M=t>>>0>>0?I+1|0:I),40),I=D+(R=f)|0,S=(u=a+N|0)>>>0>>0?I+1|0:I,a=(D=Ig(N,0,a<<1&-2,1&(D<<1|a>>>31)))+u|0,I=f+S|0,i[o>>2]=a,I=a>>>0>>0?I+1|0:I,i[o+4>>2]=I,a=UI(a^m,I^X,48),i[o+904>>2]=a,I=f,i[o+908>>2]=I,I=I+M|0,D=(m=a+t|0)>>>0>>0?I+1|0:I,a=(t=Ig(a,0,t<<1&-2,1&(M<<1|t>>>31)))+m|0,I=f+D|0,i[o+640>>2]=a,I=a>>>0>>0?I+1|0:I,i[o+644>>2]=I,W=o,V=UI(a^N,I^R,1),i[W+264>>2]=V,i[o+268>>2]=f,I=h+z|0,a=(t=E+H|0)>>>0>>0?I+1|0:I,E=Ig(H,0,E<<1&-2,1&(h<<1|E>>>31)),I=f+a|0,a=I=E>>>0>(t=E+t|0)>>>0?I+1|0:I,E=I,e=UI(e^K,p^P,1),I=y+(p=f)|0,h=(D=B+e|0)>>>0>>0?I+1|0:I,B=(y=Ig(e,0,B<<1&-2,1&(y<<1|B>>>31)))+D|0,I=f+h|0,n=UI(Q^d,n^L,48),y=UI(n^B,(Q=B>>>0>>0?I+1|0:I)^(M=f),32),I=(H=f)+E|0,h=y>>>0>(D=y+t|0)>>>0?I+1|0:I,E=(I=D)+(D=Ig(t<<1&-2,1&(E<<1|t>>>31),y,0))|0,I=f+h|0,h=UI(S=E^e,p^(e=E>>>0>>0?I+1|0:I),40),I=Q+(D=f)|0,p=(d=B+h|0)>>>0>>0?I+1|0:I,B=Ig(h,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+p|0,B=UI((Q=B+d|0)^y,H^(I=B>>>0>Q>>>0?I+1|0:I),48),i[o+768>>2]=B,y=f,i[o+772>>2]=y,i[o+8>>2]=Q,i[o+12>>2]=I,I=e+y|0,Q=(y=B+E|0)>>>0>>0?I+1|0:I,E=Ig(B,0,E<<1&-2,1&(e<<1|E>>>31)),I=f+Q|0,W=o,V=UI((B=E+y|0)^h,(I=B>>>0>>0?I+1|0:I)^D,1),i[W+384>>2]=V,i[o+388>>2]=f,i[o+648>>2]=B,i[o+652>>2]=I,e=UI(t^x,a^G,1),I=k+(h=f)|0,E=(B=r+e|0)>>>0>>0?I+1|0:I,Q=Ig(e,0,r<<1&-2,1&(k<<1|r>>>31)),I=f+E|0,t=UI((B=Q+B|0)^v,j^(a=B>>>0>>0?I+1|0:I),32),y=I=f,Q=I,I=w+M|0,r=(E=c+n|0)>>>0>>0?I+1|0:I,c=Ig(n,0,c<<1&-2,1&(w<<1|c>>>31)),I=f+r|0,I=(c=(E=c+E|0)>>>0>>0?I+1|0:I)+Q|0,r=(Q=E+t|0)>>>0>>0?I+1|0:I,w=Ig(t,0,E<<1&-2,1&(c<<1|E>>>31)),I=f+r|0,e=UI((Q=w+Q|0)^e,h^(r=Q>>>0>>0?I+1|0:I),40),I=a+(w=f)|0,h=(n=B+e|0)>>>0>>0?I+1|0:I,B=(a=Ig(e,0,B<<1&-2,1&(a<<1|B>>>31)))+n|0,I=f+h|0,i[o+128>>2]=B,I=B>>>0>>0?I+1|0:I,i[o+132>>2]=I,B=UI(B^t,I^y,48),i[o+776>>2]=B,I=f,i[o+780>>2]=I,I=I+r|0,a=(t=B+Q|0)>>>0>>0?I+1|0:I,Q=Ig(B,0,Q<<1&-2,1&(r<<1|Q>>>31)),I=f+a|0,r=B=Q+t|0,t=I=B>>>0>>0?I+1|0:I,i[o+512>>2]=B,i[o+516>>2]=I,c=UI(E^J,c^q,1),I=(y=f)+b|0,E=(B=c+F|0)>>>0>>0?I+1|0:I,Q=Ig(F<<1&-2,1&(b<<1|F>>>31),c,0),I=f+E|0,a=UI((B=Q+B|0)^U,l^(Q=B>>>0>>0?I+1|0:I),32),I=Y+(F=f)|0,h=(E=a+_|0)>>>0<_>>>0?I+1|0:I,_=Ig(a,0,_<<1&-2,1&(Y<<1|_>>>31)),I=f+h|0,c=UI((E=_+E|0)^c,y^(_=E>>>0<_>>>0?I+1|0:I),40),I=Q+(b=f)|0,h=(y=B+c|0)>>>0>>0?I+1|0:I,Q=Ig(c,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+h|0,I=(B=Q+y|0)>>>0>>0?I+1|0:I,Q=B,B^=a,a=I,B=UI(B,F^I,48),I=_+(F=f)|0,h=(y=B+E|0)>>>0>>0?I+1|0:I,E=(_=Ig(B,0,E<<1&-2,1&(_<<1|E>>>31)))+y|0,I=f+h|0,i[o+520>>2]=E,I=E>>>0<_>>>0?I+1|0:I,i[o+524>>2]=I,i[o+896>>2]=B,i[o+900>>2]=F,i[o+136>>2]=Q,i[o+140>>2]=a,W=o,V=UI(r^e,t^w,1),i[W+392>>2]=V,i[o+396>>2]=f,W=o,V=UI(E^c,I^b,1),i[W+256>>2]=V,i[o+260>>2]=f,8!=(0|(A=A+1|0)););for(I=Ng(g,C,1024),A=0;B=i[(o=(g=A<<3)+I|0)>>2],Q=i[(_=(E=a=C+1024|0)+g|0)>>2],_=i[o+4>>2]^i[_+4>>2],i[o>>2]=B^Q,i[o+4>>2]=_,_=i[(o=(B=8|g)+I|0)>>2],E=i[(B=B+E|0)>>2],B=i[o+4>>2]^i[B+4>>2],i[o>>2]=E^_,i[o+4>>2]=B,E=i[(o=(B=16|g)+I|0)>>2],_=i[(B=B+a|0)>>2],B=i[o+4>>2]^i[B+4>>2],i[o>>2]=E^_,i[o+4>>2]=B,B=i[(g=(o=24|g)+I|0)>>2],E=i[(o=o+a|0)>>2],o=i[g+4>>2]^i[o+4>>2],i[g>>2]=B^E,i[g+4>>2]=o,128!=(0|(A=A+4|0)););s=C+2048|0}function G(A,I,g){var C,B,Q,E,a,_,c,t,r,e,y,h,D,f,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0;for(s=C=s-800|0,k=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,S=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,G=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,M=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,w=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,K=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,U=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,Q=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,E=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,a=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,_=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,c=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,t=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,r=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,n=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=g- -64|0,e=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[I>>2]=33620224^e,i[g+56>>2]=1496785429,i[g+60>>2]=1652156816,i[(A=g+48|0)>>2]=33620224,i[A+4>>2]=218629379,i[g+40>>2]=1110511904,i[g+44>>2]=-584534669,i[(B=g+32|0)>>2]=1427652059,i[B+4>>2]=-248528275,y=n^e,i[g>>2]=y,i[g+92>>2]=-584534669^r,i[g+88>>2]=1110511904^t,i[g+84>>2]=-248528275^c,i[(n=g+80|0)>>2]=1427652059^_,i[g+76>>2]=1652156816^a,i[g+72>>2]=1496785429^E,i[g+68>>2]=218629379^Q,U^=r,i[g+28>>2]=U,K^=t,i[g+24>>2]=K,h=w^c,i[g+20>>2]=h,M^=_,i[(w=g+16|0)>>2]=M,G^=a,i[g+12>>2]=G,D=S^E,i[g+8>>2]=D,f=k^Q,i[g+4>>2]=f,S=0;k=i[n+12>>2],i[C+792>>2]=i[n+8>>2],i[C+796>>2]=k,k=i[n+4>>2],i[C+784>>2]=i[n>>2],i[C+788>>2]=k,k=i[I+12>>2],i[C+760>>2]=i[I+8>>2],i[C+764>>2]=k,k=i[I+4>>2],i[C+752>>2]=i[I>>2],i[C+756>>2]=k,k=i[n+12>>2],i[C+744>>2]=i[n+8>>2],i[C+748>>2]=k,k=i[n+4>>2],i[C+736>>2]=i[n>>2],i[C+740>>2]=k,AI(k=C+768|0,C+752|0,C+736|0),p=i[C+780>>2],i[n+8>>2]=i[C+776>>2],i[n+12>>2]=p,p=i[C+772>>2],i[n>>2]=i[C+768>>2],i[n+4>>2]=p,p=i[A+12>>2],i[C+728>>2]=i[A+8>>2],i[C+732>>2]=p,p=i[A+4>>2],i[C+720>>2]=i[A>>2],i[C+724>>2]=p,p=i[I+12>>2],i[C+712>>2]=i[I+8>>2],i[C+716>>2]=p,p=i[I+4>>2],i[C+704>>2]=i[I>>2],i[C+708>>2]=p,AI(k,C+720|0,C+704|0),p=i[C+780>>2],i[I+8>>2]=i[C+776>>2],i[I+12>>2]=p,p=i[C+772>>2],i[I>>2]=i[C+768>>2],i[I+4>>2]=p,p=i[B+12>>2],i[C+696>>2]=i[B+8>>2],i[C+700>>2]=p,p=i[B+4>>2],i[C+688>>2]=i[B>>2],i[C+692>>2]=p,p=i[A+12>>2],i[C+680>>2]=i[A+8>>2],i[C+684>>2]=p,p=i[A+4>>2],i[C+672>>2]=i[A>>2],i[C+676>>2]=p,AI(k,C+688|0,C+672|0),p=i[C+780>>2],i[A+8>>2]=i[C+776>>2],i[A+12>>2]=p,p=i[C+772>>2],i[A>>2]=i[C+768>>2],i[A+4>>2]=p,p=i[w+12>>2],i[C+664>>2]=i[w+8>>2],i[C+668>>2]=p,p=i[w+4>>2],i[C+656>>2]=i[w>>2],i[C+660>>2]=p,p=i[B+12>>2],i[C+648>>2]=i[B+8>>2],i[C+652>>2]=p,p=i[B+4>>2],i[C+640>>2]=i[B>>2],i[C+644>>2]=p,AI(k,C+656|0,C+640|0),p=i[C+780>>2],i[B+8>>2]=i[C+776>>2],i[B+12>>2]=p,p=i[C+772>>2],i[B>>2]=i[C+768>>2],i[B+4>>2]=p,p=i[g+12>>2],i[C+632>>2]=i[g+8>>2],i[C+636>>2]=p,p=i[g+4>>2],i[C+624>>2]=i[g>>2],i[C+628>>2]=p,p=i[w+12>>2],i[C+616>>2]=i[w+8>>2],i[C+620>>2]=p,p=i[w+4>>2],i[C+608>>2]=i[w>>2],i[C+612>>2]=p,AI(k,C+624|0,C+608|0),p=i[C+780>>2],i[w+8>>2]=i[C+776>>2],i[w+12>>2]=p,p=i[C+772>>2],i[w>>2]=i[C+768>>2],i[w+4>>2]=p,p=i[C+796>>2],i[C+600>>2]=i[C+792>>2],i[C+604>>2]=p,p=i[C+788>>2],i[C+592>>2]=i[C+784>>2],i[C+596>>2]=p,p=i[g+12>>2],i[C+584>>2]=i[g+8>>2],i[C+588>>2]=p,p=i[g+4>>2],i[C+576>>2]=i[g>>2],i[C+580>>2]=p,AI(k,C+592|0,C+576|0),p=i[C+768>>2],F=i[C+772>>2],N=i[C+776>>2],i[g+12>>2]=i[C+780>>2]^a,i[g+8>>2]=N^E,i[g+4>>2]=F^Q,i[g>>2]=p^e,p=i[n+12>>2],i[C+792>>2]=i[n+8>>2],i[C+796>>2]=p,p=i[n+4>>2],i[C+784>>2]=i[n>>2],i[C+788>>2]=p,p=i[I+12>>2],i[C+568>>2]=i[I+8>>2],i[C+572>>2]=p,p=i[I+4>>2],i[C+560>>2]=i[I>>2],i[C+564>>2]=p,p=i[n+12>>2],i[C+552>>2]=i[n+8>>2],i[C+556>>2]=p,p=i[n+4>>2],i[C+544>>2]=i[n>>2],i[C+548>>2]=p,AI(k,C+560|0,C+544|0),p=i[C+780>>2],i[n+8>>2]=i[C+776>>2],i[n+12>>2]=p,p=i[C+772>>2],i[n>>2]=i[C+768>>2],i[n+4>>2]=p,p=i[A+12>>2],i[C+536>>2]=i[A+8>>2],i[C+540>>2]=p,p=i[A+4>>2],i[C+528>>2]=i[A>>2],i[C+532>>2]=p,p=i[I+12>>2],i[C+520>>2]=i[I+8>>2],i[C+524>>2]=p,p=i[I+4>>2],i[C+512>>2]=i[I>>2],i[C+516>>2]=p,AI(k,C+528|0,C+512|0),p=i[C+780>>2],i[I+8>>2]=i[C+776>>2],i[I+12>>2]=p,p=i[C+772>>2],i[I>>2]=i[C+768>>2],i[I+4>>2]=p,p=i[B+12>>2],i[C+504>>2]=i[B+8>>2],i[C+508>>2]=p,p=i[B+4>>2],i[C+496>>2]=i[B>>2],i[C+500>>2]=p,p=i[A+12>>2],i[C+488>>2]=i[A+8>>2],i[C+492>>2]=p,p=i[A+4>>2],i[C+480>>2]=i[A>>2],i[C+484>>2]=p,AI(k,C+496|0,C+480|0),p=i[C+780>>2],i[A+8>>2]=i[C+776>>2],i[A+12>>2]=p,p=i[C+772>>2],i[A>>2]=i[C+768>>2],i[A+4>>2]=p,p=i[w+12>>2],i[C+472>>2]=i[w+8>>2],i[C+476>>2]=p,p=i[w+4>>2],i[C+464>>2]=i[w>>2],i[C+468>>2]=p,p=i[B+12>>2],i[C+456>>2]=i[B+8>>2],i[C+460>>2]=p,p=i[B+4>>2],i[C+448>>2]=i[B>>2],i[C+452>>2]=p,AI(k,C+464|0,C+448|0),p=i[C+780>>2],i[B+8>>2]=i[C+776>>2],i[B+12>>2]=p,p=i[C+772>>2],i[B>>2]=i[C+768>>2],i[B+4>>2]=p,p=i[g+12>>2],i[C+440>>2]=i[g+8>>2],i[C+444>>2]=p,p=i[g+4>>2],i[C+432>>2]=i[g>>2],i[C+436>>2]=p,p=i[w+12>>2],i[C+424>>2]=i[w+8>>2],i[C+428>>2]=p,p=i[w+4>>2],i[C+416>>2]=i[w>>2],i[C+420>>2]=p,AI(k,C+432|0,C+416|0),p=i[C+780>>2],i[w+8>>2]=i[C+776>>2],i[w+12>>2]=p,p=i[C+772>>2],i[w>>2]=i[C+768>>2],i[w+4>>2]=p,p=i[C+796>>2],i[C+408>>2]=i[C+792>>2],i[C+412>>2]=p,p=i[C+788>>2],i[C+400>>2]=i[C+784>>2],i[C+404>>2]=p,p=i[g+12>>2],i[C+392>>2]=i[g+8>>2],i[C+396>>2]=p,p=i[g+4>>2],i[C+384>>2]=i[g>>2],i[C+388>>2]=p,AI(k,C+400|0,C+384|0),p=i[C+768>>2],F=i[C+772>>2],N=i[C+776>>2],i[g+12>>2]=i[C+780>>2]^r,i[g+8>>2]=N^t,i[g+4>>2]=F^c,i[g>>2]=p^_,p=i[n+12>>2],i[C+792>>2]=i[n+8>>2],i[C+796>>2]=p,p=i[n+4>>2],i[C+784>>2]=i[n>>2],i[C+788>>2]=p,p=i[I+12>>2],i[C+376>>2]=i[I+8>>2],i[C+380>>2]=p,p=i[I+4>>2],i[C+368>>2]=i[I>>2],i[C+372>>2]=p,p=i[n+12>>2],i[C+360>>2]=i[n+8>>2],i[C+364>>2]=p,p=i[n+4>>2],i[C+352>>2]=i[n>>2],i[C+356>>2]=p,AI(k,C+368|0,C+352|0),p=i[C+780>>2],i[n+8>>2]=i[C+776>>2],i[n+12>>2]=p,p=i[C+772>>2],i[n>>2]=i[C+768>>2],i[n+4>>2]=p,p=i[A+12>>2],i[C+344>>2]=i[A+8>>2],i[C+348>>2]=p,p=i[A+4>>2],i[C+336>>2]=i[A>>2],i[C+340>>2]=p,p=i[I+12>>2],i[C+328>>2]=i[I+8>>2],i[C+332>>2]=p,p=i[I+4>>2],i[C+320>>2]=i[I>>2],i[C+324>>2]=p,AI(k,C+336|0,C+320|0),p=i[C+780>>2],i[I+8>>2]=i[C+776>>2],i[I+12>>2]=p,p=i[C+772>>2],i[I>>2]=i[C+768>>2],i[I+4>>2]=p,p=i[B+12>>2],i[C+312>>2]=i[B+8>>2],i[C+316>>2]=p,p=i[B+4>>2],i[C+304>>2]=i[B>>2],i[C+308>>2]=p,p=i[A+12>>2],i[C+296>>2]=i[A+8>>2],i[C+300>>2]=p,p=i[A+4>>2],i[C+288>>2]=i[A>>2],i[C+292>>2]=p,AI(k,C+304|0,C+288|0),p=i[C+780>>2],i[A+8>>2]=i[C+776>>2],i[A+12>>2]=p,p=i[C+772>>2],i[A>>2]=i[C+768>>2],i[A+4>>2]=p,p=i[w+12>>2],i[C+280>>2]=i[w+8>>2],i[C+284>>2]=p,p=i[w+4>>2],i[C+272>>2]=i[w>>2],i[C+276>>2]=p,p=i[B+12>>2],i[C+264>>2]=i[B+8>>2],i[C+268>>2]=p,p=i[B+4>>2],i[C+256>>2]=i[B>>2],i[C+260>>2]=p,AI(k,C+272|0,C+256|0),p=i[C+780>>2],i[B+8>>2]=i[C+776>>2],i[B+12>>2]=p,p=i[C+772>>2],i[B>>2]=i[C+768>>2],i[B+4>>2]=p,p=i[g+12>>2],i[C+248>>2]=i[g+8>>2],i[C+252>>2]=p,p=i[g+4>>2],i[C+240>>2]=i[g>>2],i[C+244>>2]=p,p=i[w+12>>2],i[C+232>>2]=i[w+8>>2],i[C+236>>2]=p,p=i[w+4>>2],i[C+224>>2]=i[w>>2],i[C+228>>2]=p,AI(k,C+240|0,C+224|0),p=i[C+780>>2],i[w+8>>2]=i[C+776>>2],i[w+12>>2]=p,p=i[C+772>>2],i[w>>2]=i[C+768>>2],i[w+4>>2]=p,p=i[C+796>>2],i[C+216>>2]=i[C+792>>2],i[C+220>>2]=p,p=i[C+788>>2],i[C+208>>2]=i[C+784>>2],i[C+212>>2]=p,p=i[g+12>>2],i[C+200>>2]=i[g+8>>2],i[C+204>>2]=p,p=i[g+4>>2],i[C+192>>2]=i[g>>2],i[C+196>>2]=p,AI(k,C+208|0,C+192|0),p=i[C+768>>2],F=i[C+772>>2],N=i[C+776>>2],i[g+12>>2]=G^i[C+780>>2],i[g+8>>2]=N^D,i[g+4>>2]=F^f,i[g>>2]=p^y,p=i[n+12>>2],i[C+792>>2]=i[n+8>>2],i[C+796>>2]=p,p=i[n+4>>2],i[C+784>>2]=i[n>>2],i[C+788>>2]=p,p=i[I+12>>2],i[C+184>>2]=i[I+8>>2],i[C+188>>2]=p,p=i[I+4>>2],i[C+176>>2]=i[I>>2],i[C+180>>2]=p,p=i[n+12>>2],i[C+168>>2]=i[n+8>>2],i[C+172>>2]=p,p=i[n+4>>2],i[C+160>>2]=i[n>>2],i[C+164>>2]=p,AI(k,C+176|0,C+160|0),p=i[C+780>>2],i[n+8>>2]=i[C+776>>2],i[n+12>>2]=p,p=i[C+772>>2],i[n>>2]=i[C+768>>2],i[n+4>>2]=p,p=i[A+12>>2],i[C+152>>2]=i[A+8>>2],i[C+156>>2]=p,p=i[A+4>>2],i[C+144>>2]=i[A>>2],i[C+148>>2]=p,p=i[I+12>>2],i[C+136>>2]=i[I+8>>2],i[C+140>>2]=p,p=i[I+4>>2],i[C+128>>2]=i[I>>2],i[C+132>>2]=p,AI(k,C+144|0,C+128|0),p=i[C+780>>2],i[I+8>>2]=i[C+776>>2],i[I+12>>2]=p,p=i[C+772>>2],i[I>>2]=i[C+768>>2],i[I+4>>2]=p,p=i[B+12>>2],i[C+120>>2]=i[B+8>>2],i[C+124>>2]=p,p=i[B+4>>2],i[C+112>>2]=i[B>>2],i[C+116>>2]=p,p=i[A+12>>2],i[C+104>>2]=i[A+8>>2],i[C+108>>2]=p,p=i[A+4>>2],i[C+96>>2]=i[A>>2],i[C+100>>2]=p,AI(k,C+112|0,C+96|0),p=i[C+780>>2],i[A+8>>2]=i[C+776>>2],i[A+12>>2]=p,p=i[C+772>>2],i[A>>2]=i[C+768>>2],i[A+4>>2]=p,p=i[w+12>>2],i[C+88>>2]=i[w+8>>2],i[C+92>>2]=p,p=i[w+4>>2],i[C+80>>2]=i[w>>2],i[C+84>>2]=p,p=i[B+12>>2],i[C+72>>2]=i[B+8>>2],i[C+76>>2]=p,p=i[B+4>>2],i[C+64>>2]=i[B>>2],i[C+68>>2]=p,AI(k,C+80|0,C- -64|0),p=i[C+780>>2],i[B+8>>2]=i[C+776>>2],i[B+12>>2]=p,p=i[C+772>>2],i[B>>2]=i[C+768>>2],i[B+4>>2]=p,p=i[g+12>>2],i[C+56>>2]=i[g+8>>2],i[C+60>>2]=p,p=i[g+4>>2],i[C+48>>2]=i[g>>2],i[C+52>>2]=p,p=i[w+12>>2],i[C+40>>2]=i[w+8>>2],i[C+44>>2]=p,p=i[w+4>>2],i[C+32>>2]=i[w>>2],i[C+36>>2]=p,AI(k,C+48|0,C+32|0),p=i[C+780>>2],i[w+8>>2]=i[C+776>>2],i[w+12>>2]=p,p=i[C+772>>2],i[w>>2]=i[C+768>>2],i[w+4>>2]=p,p=i[C+796>>2],i[C+24>>2]=i[C+792>>2],i[C+28>>2]=p,p=i[C+788>>2],i[C+16>>2]=i[C+784>>2],i[C+20>>2]=p,p=i[g+12>>2],i[C+8>>2]=i[g+8>>2],i[C+12>>2]=p,p=i[g+4>>2],i[C>>2]=i[g>>2],i[C+4>>2]=p,AI(k,C+16|0,C),k=i[C+768>>2],p=i[C+772>>2],F=i[C+776>>2],i[g+12>>2]=U^i[C+780>>2],i[g+8>>2]=F^K,i[g+4>>2]=p^h,i[g>>2]=k^M,4!=(0|(S=S+1|0)););s=C+800|0}function M(A,I){var g,B,E,a,_,c,t,r,e,y,h,D,p,w,n,k,F,S,N,G,M,K,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0;for(s=g=s-48|0,Y=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,H=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,C[A+24|0]=H,C[A+25|0]=H>>>8,C[A+26|0]=H>>>16,C[A+27|0]=H>>>24,C[A+28|0]=Y,C[A+29|0]=Y>>>8,C[A+30|0]=Y>>>16,C[A+31|0]=Y>>>24,Y=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,H=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,C[0|A]=H,C[A+1|0]=H>>>8,C[A+2|0]=H>>>16,C[A+3|0]=H>>>24,C[A+4|0]=Y,C[A+5|0]=Y>>>8,C[A+6|0]=Y>>>16,C[A+7|0]=Y>>>24,Y=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,H=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,C[A+16|0]=H,C[A+17|0]=H>>>8,C[A+18|0]=H>>>16,C[A+19|0]=H>>>24,C[A+20|0]=Y,C[A+21|0]=Y>>>8,C[A+22|0]=Y>>>16,C[A+23|0]=Y>>>24,H=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,I=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,C[A+12|0]=H,C[A+13|0]=H>>>8,C[A+14|0]=H>>>16,C[A+15|0]=H>>>24,I=o[A+31|0],C[A+31|0]=127&I,fA(g,A),y=128&I,s=I=s-960|0,v(H=I+304|0,g),i[I+304>>2]=i[I+304>>2]+1,LA(H,H),Y=Ig(H=i[I+340>>2],H>>31,486662,0),H=f,l=(P=Y+16777216|0)>>>0<16777216?H+1|0:H,x=Y-(-33554432&P)|0,U=Ig(H=i[I+336>>2],H>>31,486662,0),Y=f,J=Ig(H=i[I+332>>2],H>>31,486662,0),H=f,u=U,U=(U=(H=(m=J+16777216|0)>>>0<16777216?H+1|0:H)>>25)+Y|0,H=(H=(33554431&H)<<7|m>>>25)>>>0>(d=u+H|0)>>>0?U+1|0:U,B=((67108863&(H=(Y=d+33554432|0)>>>0<33554432?H+1|0:H))<<6|Y>>>26)+x|0,i[I+292>>2]=0-B,W=d-(-67108864&Y)|0,i[I+288>>2]=0-W,x=J-(-33554432&m)|0,Y=Ig(H=i[I+328>>2],H>>31,486662,0),H=f,m=Ig(U=i[I+324>>2],U>>31,486662,0),U=f,u=Y,H=H+(Y=(U=(d=m+16777216|0)>>>0<16777216?U+1|0:U)>>25)|0,H=(U=u+(J=(33554431&U)<<7|d>>>25)|0)>>>0>>0?H+1|0:H,E=((67108863&(H=(Y=U+33554432|0)>>>0<33554432?H+1|0:H))<<6|Y>>>26)+x|0,i[I+284>>2]=0-E,a=U-(-67108864&Y)|0,i[I+280>>2]=0-a,x=m-(-33554432&d)|0,U=Ig(H=i[I+320>>2],H>>31,486662,0),H=f,m=Ig(Y=i[I+316>>2],Y>>31,486662,0),Y=f,u=U,H=(U=(Y=(d=m+16777216|0)>>>0<16777216?Y+1|0:Y)>>25)+H|0,U=H=(Y=u+(J=(33554431&Y)<<7|d>>>25)|0)>>>0>>0?H+1|0:H,_=((67108863&(U=(J=Y+33554432|0)>>>0<33554432?U+1|0:U))<<6|J>>>26)+x|0,i[I+276>>2]=0-_,c=Y-(-67108864&J)|0,i[I+272>>2]=0-c,u=m-(-33554432&d)|0,H=Ig(H=i[I+312>>2],H>>31,486662,0),x=f,J=Ig(Y=i[I+308>>2],Y>>31,486662,0),U=f,Y=(33554431&(U=(m=J+16777216|0)>>>0<16777216?U+1|0:U))<<7|m>>>25,U=(U>>25)+x|0,Y=Y>>>0>(d=Y+H|0)>>>0?U+1|0:U,t=((67108863&(Y=(H=d+33554432|0)>>>0<33554432?Y+1|0:Y))<<6|H>>>26)+u|0,i[I+268>>2]=0-t,r=d-(-67108864&H)|0,i[I+264>>2]=0-r,d=J-(-33554432&m)|0,Y=Ig((33554431&l)<<7|P>>>25,l>>25,19,0),H=f,J=Y,Y=Ig(U=i[I+304>>2],U>>31,486662,0),H=f+H|0,Y=(U=J+Y|0)>>>0>>0?H+1|0:H,e=((67108863&(Y=(H=U+33554432|0)>>>0<33554432?Y+1|0:Y))<<6|H>>>26)+d|0,i[I+260>>2]=0-e,L=U-(-67108864&H)|0,i[I+256>>2]=0-L,R(Y=I+208|0,H=I+256|0),b(I+160|0,H,Y),h=i[I+196>>2],D=i[I+160>>2],q=i[I+208>>2],p=i[I+164>>2],w=i[I+168>>2],z=i[I+212>>2],j=i[I+216>>2],n=i[I+172>>2],k=i[I+176>>2],X=i[I+220>>2],O=i[I+224>>2],F=i[I+180>>2],S=i[I+184>>2],u=i[I+228>>2],x=i[I+232>>2],N=i[I+188>>2],G=i[I+192>>2],Y=Ig(H=i[I+244>>2],H>>31,486662,0),H=f,l=(P=Y+16777216|0)>>>0<16777216?H+1|0:H,M=Y-(-33554432&P)|0,H=Ig(H=i[I+240>>2],H>>31,486662,0),K=f,J=Ig(Y=i[I+236>>2],Y>>31,486662,0),U=f,Y=H,H=(33554431&(U=(m=J+16777216|0)>>>0<16777216?U+1|0:U))<<7|m>>>25,U=(U>>25)+K|0,H=H>>>0>(d=Y+H|0)>>>0?U+1|0:U,U=((67108863&(H=(Y=d+33554432|0)>>>0<33554432?H+1|0:H))<<6|Y>>>26)+M|0,i[I+244>>2]=U,i[I+388>>2]=U+(h-B|0),H=d-(-67108864&Y)|0,i[I+240>>2]=H,i[I+384>>2]=H+(G-W|0),W=J-(-33554432&m)|0,H=Ig(x,x>>31,486662,0),J=f,m=Ig(u,u>>31,486662,0),Y=f,u=H,H=(H=(Y=(d=m+16777216|0)>>>0<16777216?Y+1|0:Y)>>25)+J|0,U=H=(U=(33554431&Y)<<7|d>>>25)>>>0>(Y=u+U|0)>>>0?H+1|0:H,J=((67108863&(U=(J=Y+33554432|0)>>>0<33554432?U+1|0:U))<<6|(H=J)>>>26)+W|0,i[I+236>>2]=J,i[I+380>>2]=J+(N-E|0),H=Y-(-67108864&H)|0,i[I+232>>2]=H,i[I+376>>2]=H+(S-a|0),x=m-(-33554432&d)|0,U=Ig(O,O>>31,486662,0),Y=f,J=Ig(X,X>>31,486662,0),H=f,u=U,U=(U=(H=(m=J+16777216|0)>>>0<16777216?H+1|0:H)>>25)+Y|0,Y=(H=(33554431&H)<<7|m>>>25)>>>0>(d=u+H|0)>>>0?U+1|0:U,U=((67108863&(Y=(H=d+33554432|0)>>>0<33554432?Y+1|0:Y))<<6|H>>>26)+x|0,i[I+228>>2]=U,i[I+372>>2]=U+(F-_|0),H=d-(-67108864&H)|0,i[I+224>>2]=H,i[I+368>>2]=H+(k-c|0),x=J-(-33554432&m)|0,H=Ig(j,j>>31,486662,0),Y=f,m=Ig(z,z>>31,486662,0),U=f,u=H,Y=(H=(U=(d=m+16777216|0)>>>0<16777216?U+1|0:U)>>25)+Y|0,H=Y=(U=u+(J=(33554431&U)<<7|d>>>25)|0)>>>0>>0?Y+1|0:Y,J=((67108863&(H=(J=U+33554432|0)>>>0<33554432?H+1|0:H))<<6|(Y=J)>>>26)+x|0,i[I+220>>2]=J,i[I+364>>2]=J+(n-t|0),H=U-(-67108864&Y)|0,i[I+216>>2]=H,i[I+360>>2]=H+(w-r|0),d=m-(-33554432&d)|0,Y=Ig((33554431&l)<<7|P>>>25,l>>25,19,0),H=f,U=Y,Y=Ig(q,q>>31,486662,0),H=f+H|0,H=(U=U+Y|0)>>>0>>0?H+1|0:H,l=((67108863&(H=(Y=U+33554432|0)>>>0<33554432?H+1|0:H))<<6|Y>>>26)+d|0,i[I+212>>2]=l,i[I+356>>2]=l+(p-e|0),H=U-(-67108864&Y)|0,i[I+208>>2]=H,i[I+352>>2]=H+(D-L|0),b(H=I+624|0,Y=I+352|0,Y),b(I,Y,H),R(Y=I+784|0,I),R(Y,Y),b(H=I+912|0,I,Y),R(Y=I+576|0,H),R(Y,Y),R(Y,Y),R(Y,Y),b(U=I+528|0,H,Y),R(U,U),R(U,U),b(U,U,I),H=i[I+564>>2],i[I+512>>2]=i[I+560>>2],i[I+516>>2]=H,H=i[I+556>>2],i[I+504>>2]=i[I+552>>2],i[I+508>>2]=H,H=i[I+548>>2],i[I+496>>2]=i[I+544>>2],i[I+500>>2]=H,H=i[I+540>>2],i[I+488>>2]=i[I+536>>2],i[I+492>>2]=H,H=i[I+532>>2],i[I+480>>2]=i[I+528>>2],i[I+484>>2]=H,R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),b(U,U,H=I+480|0),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),b(U,U,H),H=i[I+564>>2],i[I+464>>2]=i[I+560>>2],i[I+468>>2]=H,H=i[I+556>>2],i[I+456>>2]=i[I+552>>2],i[I+460>>2]=H,H=i[I+548>>2],i[I+448>>2]=i[I+544>>2],i[I+452>>2]=H,H=i[I+540>>2],i[I+440>>2]=i[I+536>>2],i[I+444>>2]=H,H=i[I+532>>2],i[I+432>>2]=i[I+528>>2],i[I+436>>2]=H,R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),b(U,U,Y=I+432|0),H=i[I+564>>2],i[I+464>>2]=i[I+560>>2],i[I+468>>2]=H,H=i[I+556>>2],i[I+456>>2]=i[I+552>>2],i[I+460>>2]=H,H=i[I+548>>2],i[I+448>>2]=i[I+544>>2],i[I+452>>2]=H,H=i[I+540>>2],i[I+440>>2]=i[I+536>>2],i[I+444>>2]=H,H=i[I+532>>2],i[I+432>>2]=i[I+528>>2],i[I+436>>2]=H,R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),b(U,U,Y),H=i[I+564>>2],i[I+464>>2]=i[I+560>>2],i[I+468>>2]=H,H=i[I+556>>2],i[I+456>>2]=i[I+552>>2],i[I+460>>2]=H,H=i[I+548>>2],i[I+448>>2]=i[I+544>>2],i[I+452>>2]=H,H=i[I+540>>2],i[I+440>>2]=i[I+536>>2],i[I+444>>2]=H,H=i[I+532>>2],i[I+432>>2]=i[I+528>>2],i[I+436>>2]=H;R(H=I+528|0,H),120!=(0|(V=V+1|0)););b(H,H,I+432|0),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),b(H,H,I+480|0),R(H,H),R(H,H),R(H,H),b(H,H,I),R(H,H),QI(I+400|0,H),q=i[I+256>>2],z=i[I+260>>2],j=i[I+264>>2],X=i[I+268>>2],O=i[I+272>>2],d=i[I+276>>2],l=i[I+280>>2],U=i[I+284>>2],Y=i[I+288>>2],u=(L=0-(1&C[I+401|0])|0)&(0-(H=i[I+292>>2])^H)^H,i[I+660>>2]=u,x=Y^L&(Y^0-Y),i[I+656>>2]=x,P=U^L&(U^0-U),i[I+652>>2]=P,J=l^L&(l^0-l),i[I+648>>2]=J,m=d^L&(d^0-d),i[I+644>>2]=m,d=O^L&(O^0-O),i[I+640>>2]=d,l=X^L&(X^0-X),i[I+636>>2]=l,U=j^L&(j^0-j),i[I+632>>2]=U,Y=z^L&(z^0-z),i[I+628>>2]=Y,H=(q^L&(q^0-q))-(486662&L)|0,i[I+624>>2]=H+1,i[I+820>>2]=u,i[I+816>>2]=x,i[I+812>>2]=P,i[I+808>>2]=J,i[I+804>>2]=m,i[I+800>>2]=d,i[I+796>>2]=l,i[I+792>>2]=U,i[I+788>>2]=Y,i[I+784>>2]=H-1,LA(I,I+624|0),b(H=I+912|0,I+784|0,I),QI(A,H),C[A+31|0]=o[A+31|0]|y,MA(I,A)&&(DB(),Q()),H=i[I+36>>2],i[I+816>>2]=i[I+32>>2],i[I+820>>2]=H,H=i[I+28>>2],i[I+808>>2]=i[I+24>>2],i[I+812>>2]=H,H=i[I+20>>2],i[I+800>>2]=i[I+16>>2],i[I+804>>2]=H,H=i[I+12>>2],i[I+792>>2]=i[I+8>>2],i[I+796>>2]=H,H=i[I+52>>2],i[I+832>>2]=i[I+48>>2],i[I+836>>2]=H,H=i[I+60>>2],i[I+840>>2]=i[I+56>>2],i[I+844>>2]=H,H=i[4+(Y=I- -64|0)>>2],i[I+848>>2]=i[Y>>2],i[I+852>>2]=H,H=i[I+76>>2],i[I+856>>2]=i[I+72>>2],i[I+860>>2]=H,H=i[I+4>>2],i[I+784>>2]=i[I>>2],i[I+788>>2]=H,H=i[I+44>>2],i[I+824>>2]=i[I+40>>2],i[I+828>>2]=H,H=i[I+116>>2],i[I+896>>2]=i[I+112>>2],i[I+900>>2]=H,H=i[I+108>>2],i[I+888>>2]=i[I+104>>2],i[I+892>>2]=H,H=i[I+100>>2],i[I+880>>2]=i[I+96>>2],i[I+884>>2]=H,H=i[I+92>>2],i[I+872>>2]=i[I+88>>2],i[I+876>>2]=H,H=i[I+84>>2],i[I+864>>2]=i[I+80>>2],i[I+868>>2]=H,KA(J=I+624|0,m=I+784|0),b(m,J,d=I+744|0),b(Y=I+824|0,U=I+664|0,l=I+704|0),b(H=I+864|0,l,d),KA(J,m),b(m,J,d),b(Y,U,l),b(H,l,d),KA(J,m),b(I,J,d),b(Y=I+40|0,U,l),b(H=I+80|0,l,d),b(I+120|0,J,U),LA(J,H),b(m,I,J),b(H=I+912|0,Y,J),QI(A,H),QI(I+576|0,m),C[A+31|0]=o[A+31|0]^o[I+576|0]<<7,s=I+960|0,s=g+48|0}function K(A){var I,g=0,C=0,B=0,Q=0,a=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0;s=I=s-16|0;A:{I:{g:{C:{B:{Q:{i:{o:{E:{a:{if((A|=0)>>>0<=244){if(3&(g=(Q=i[9405])>>>(A=(t=A>>>0<11?16:A+11&504)>>>3|0)|0)){A=37660+(g=(C=A+(1&~g)|0)<<3)|0,g=i[g+37668>>2],(0|A)!=(0|(B=i[g+8>>2]))?(i[B+12>>2]=A,i[A+8>>2]=B):(h=37620,D=Lg(-2,C)&Q,i[h>>2]=D),A=g+8|0,C<<=3,i[g+4>>2]=3|C,i[4+(g=g+C|0)>>2]=1|i[g+4>>2];break A}if((r=i[9407])>>>0>=t>>>0)break a;if(g){g=37660+(C=(A=FC((0-(C=2<>2],(0|g)!=(0|(B=i[C+8>>2]))?(i[B+12>>2]=g,i[g+8>>2]=B):(Q=Lg(-2,A)&Q,i[9405]=Q),i[C+4>>2]=3|t,a=(A<<=3)-t|0,i[4+(c=C+t|0)>>2]=1|a,i[A+C>>2]=a,r&&(A=37660+(-8&r)|0,B=i[9410],(g=1<<(r>>>3))&Q?g=i[A+8>>2]:(i[9405]=g|Q,g=A),i[A+8>>2]=B,i[g+12>>2]=B,i[B+12>>2]=A,i[B+8>>2]=g),A=C+8|0,i[9410]=c,i[9407]=a;break A}if(!(y=i[9406]))break a;for(C=i[37924+(FC(y)<<2)>>2],a=(-8&i[C+4>>2])-t|0,g=C;(A=i[g+16>>2])||(A=i[g+20>>2]);)a=(g=(B=(-8&i[A+4>>2])-t|0)>>>0>>0)?B:a,C=g?A:C,g=A;if(e=i[C+24>>2],(0|C)!=(0|(A=i[C+12>>2]))){g=i[C+8>>2],i[g+12>>2]=A,i[A+8>>2]=g;break I}if(g=i[C+20>>2])B=C+20|0;else{if(!(g=i[C+16>>2]))break E;B=C+16|0}for(;c=B,B=(A=g)+20|0,(g=i[A+20>>2])||(B=A+16|0,g=i[A+16>>2]););i[c>>2]=0;break I}if(t=-1,!(A>>>0>4294967231)&&(t=-8&(g=A+11|0),c=i[9406])){r=31,a=0-t|0,A>>>0<=16777204&&(r=62+((t>>>38-(A=_(g>>>8|0))&1)-(A<<1)|0)|0);_:{c:{if(g=i[37924+(r<<2)>>2])for(A=0,C=t<<(31!=(0|r)?25-(r>>>1|0):0);;){if(!((Q=(-8&i[g+4>>2])-t|0)>>>0>=a>>>0||(B=g,a=Q))){a=0,A=g;break c}if(Q=i[g+20>>2],g=i[16+((C>>>29&4)+g|0)>>2],A=Q?(0|Q)==(0|g)?A:Q:A,C<<=1,!g)break}else A=0;if(!(A|B)){if(B=0,!(A=(0-(A=2<>2]}if(!A)break _}for(;a=(g=(C=(-8&i[A+4>>2])-t|0)>>>0>>0)?C:a,B=g?A:B,A=(g=i[A+16>>2])||i[A+20>>2];);}if(!(!B|i[9407]-t>>>0<=a>>>0)){if(r=i[B+24>>2],(0|B)!=(0|(A=i[B+12>>2]))){g=i[B+8>>2],i[g+12>>2]=A,i[A+8>>2]=g;break g}if(g=i[B+20>>2])C=B+20|0;else{if(!(g=i[B+16>>2]))break o;C=B+16|0}for(;Q=C,C=(A=g)+20|0,(g=i[A+20>>2])||(C=A+16|0,g=i[A+16>>2]););i[Q>>2]=0;break g}}}if((B=i[9407])>>>0>=t>>>0){A=i[9410],(g=B-t|0)>>>0>=16?(i[4+(C=A+t|0)>>2]=1|g,i[A+B>>2]=g,i[A+4>>2]=3|t):(i[A+4>>2]=3|B,i[4+(g=A+B|0)>>2]=1|i[g+4>>2],C=0,g=0),i[9407]=g,i[9410]=C,A=A+8|0;break A}if((C=i[9408])>>>0>t>>>0){g=C-t|0,i[9408]=g,C=(A=i[9411])+t|0,i[9411]=C,i[C+4>>2]=1|g,i[A+4>>2]=3|t,A=A+8|0;break A}if(A=0,a=t+47|0,i[9523]?g=i[9525]:(i[9526]=-1,i[9527]=-1,i[9524]=4096,i[9525]=4096,i[9523]=I+12&-16^1431655768,i[9528]=0,i[9516]=0,g=4096),(g=(Q=a+g|0)&(c=0-g|0))>>>0<=t>>>0)break A;if((r=i[9515])&&(B=(e=i[9513])+g|0)>>>0<=e>>>0|B>>>0>r>>>0)break A;a:{if(!(4&o[38064])){_:{c:{t:{r:{if(B=i[9411])for(A=38068;;){if((r=i[A>>2])>>>0<=B>>>0&B>>>0>2]>>>0)break r;if(!(A=i[A+8>>2]))break}if(-1==(0|(C=cg(0))))break _;if(Q=g,(B=(A=i[9524])-1|0)&C&&(Q=(g-C|0)+(C+B&0-A)|0),Q>>>0<=t>>>0)break _;if((B=i[9515])&&(A=(c=i[9513])+Q|0)>>>0<=c>>>0|A>>>0>B>>>0)break _;if((0|C)!=(0|(A=cg(Q))))break t;break a}if((0|(C=cg(Q=c&Q-C)))==(i[A>>2]+i[A+4>>2]|0))break c;A=C}if(-1==(0|A))break _;if(t+48>>>0<=Q>>>0){C=A;break a}if(-1==(0|cg(C=(C=i[9525])+(a-Q|0)&0-C)))break _;Q=C+Q|0,C=A;break a}if(-1!=(0|C))break a}i[9516]=4|i[9516]}if(-1==(0|(C=cg(g)))|-1==(0|(A=cg(0)))|A>>>0<=C>>>0)break B;if((Q=A-C|0)>>>0<=t+40>>>0)break B}A=i[9513]+Q|0,i[9513]=A,A>>>0>E[9514]&&(i[9514]=A);a:{if(a=i[9411]){for(A=38068;;){if(((g=i[A>>2])+(B=i[A+4>>2])|0)==(0|C))break a;if(!(A=i[A+8>>2]))break}break i}for((A=i[9409])>>>0<=C>>>0&&A||(i[9409]=C),A=0,i[9518]=Q,i[9517]=C,i[9413]=-1,i[9414]=i[9523],i[9520]=0;B=37660+(g=A<<3)|0,i[g+37668>>2]=B,i[g+37672>>2]=B,32!=(0|(A=A+1|0)););B=(A=Q-40|0)-(g=-8-C&7)|0,i[9408]=B,g=g+C|0,i[9411]=g,i[g+4>>2]=1|B,i[4+(A+C|0)>>2]=40,i[9412]=i[9527];break Q}if(8&i[A+12>>2]|C>>>0<=a>>>0|g>>>0>a>>>0)break i;i[A+4>>2]=B+Q,g=(A=-8-a&7)+a|0,i[9411]=g,A=(C=i[9408]+Q|0)-A|0,i[9408]=A,i[g+4>>2]=1|A,i[4+(C+a|0)>>2]=40,i[9412]=i[9527];break Q}A=0;break I}A=0;break g}E[9409]>C>>>0&&(i[9409]=C),B=C+Q|0,A=38068;i:{for(;;){if((0|(g=i[A>>2]))!=(0|B)){if(A=i[A+8>>2])continue;break i}break}if(!(8&o[A+12|0]))break C}for(A=38068;!((g=i[A>>2])>>>0<=a>>>0&&(B=g+i[A+4>>2]|0)>>>0>a>>>0);)A=i[A+8>>2];for(c=(A=Q-40|0)-(g=-8-C&7)|0,i[9408]=c,g=g+C|0,i[9411]=g,i[g+4>>2]=1|c,i[4+(A+C|0)>>2]=40,i[9412]=i[9527],i[(g=(A=(B+(39-B&7)|0)-47|0)>>>0>>0?a:A)+4>>2]=27,A=i[9520],i[g+16>>2]=i[9519],i[g+20>>2]=A,A=i[9518],i[g+8>>2]=i[9517],i[g+12>>2]=A,i[9519]=g+8,i[9518]=Q,i[9517]=C,i[9520]=0,A=g+24|0;i[A+4>>2]=7,C=A+8|0,A=A+4|0,C>>>0>>0;);if((0|g)!=(0|a)){i[g+4>>2]=-2&i[g+4>>2],C=g-a|0,i[a+4>>2]=1|C,i[g>>2]=C;i:if(C>>>0<=255)A=37660+(-8&C)|0,(g=i[9405])&(C=1<<(C>>>3))?g=i[A+8>>2]:(i[9405]=g|C,g=A),i[A+8>>2]=a,i[g+12>>2]=a,B=8,C=12;else{A=31,C>>>0<=16777215&&(A=62+((C>>>38-(A=_(C>>>8|0))&1)-(A<<1)|0)|0),i[a+28>>2]=A,i[a+16>>2]=0,i[a+20>>2]=0,g=37924+(A<<2)|0;o:{if((B=i[9406])&(Q=1<>>1|0):0),B=i[g>>2];;){if((0|C)==(-8&i[(g=B)+4>>2]))break o;if(B=A>>>29|0,A<<=1,!(B=i[16+(Q=(4&B)+g|0)>>2]))break}i[Q+16>>2]=a}else i[9406]=B|Q,i[g>>2]=a;i[a+24>>2]=g,A=g=a,B=12,C=8;break i}A=i[g+8>>2],i[A+12>>2]=a,i[g+8>>2]=a,i[a+8>>2]=A,A=0,B=12,C=24}i[B+a>>2]=g,i[C+a>>2]=A}}if(!((A=i[9408])>>>0<=t>>>0)){g=A-t|0,i[9408]=g,C=(A=i[9411])+t|0,i[9411]=C,i[C+4>>2]=1|g,i[A+4>>2]=3|t,A=A+8|0;break A}}i[9404]=48,A=0;break A}i[A>>2]=C,i[A+4>>2]=i[A+4>>2]+Q,i[4+(r=(-8-C&7)+C|0)>>2]=3|t,c=(Q=g+(-8-g&7)|0)-(a=t+r|0)|0;C:if(i[9411]!=(0|Q))if(i[9410]!=(0|Q)){if(1==(3&(A=i[Q+4>>2]))){e=-8&A,C=i[Q+12>>2];B:if(A>>>0<=255){if((0|(g=i[Q+8>>2]))==(0|C)){h=37620,D=i[9405]&Lg(-2,A>>>3|0),i[h>>2]=D;break B}i[g+12>>2]=C,i[C+8>>2]=g}else{t=i[Q+24>>2];Q:if((0|C)==(0|Q)){i:{if(A=i[Q+20>>2])g=Q+20|0;else{if(!(A=i[Q+16>>2]))break i;g=Q+16|0}for(;B=g,C=A,g=A+20|0,(A=i[A+20>>2])||(g=C+16|0,A=i[C+16>>2]););i[B>>2]=0;break Q}C=0}else A=i[Q+8>>2],i[A+12>>2]=C,i[C+8>>2]=A;if(t){A=i[Q+28>>2];Q:{if(i[(g=37924+(A<<2)|0)>>2]==(0|Q)){if(i[g>>2]=C,C)break Q;h=37624,D=i[9406]&Lg(-2,A),i[h>>2]=D;break B}if(i[t+(i[t+16>>2]==(0|Q)?16:20)>>2]=C,!C)break B}i[C+24>>2]=t,(A=i[Q+16>>2])&&(i[C+16>>2]=A,i[A+24>>2]=C),(A=i[Q+20>>2])&&(i[C+20>>2]=A,i[A+24>>2]=C)}}c=c+e|0,A=i[4+(Q=Q+e|0)>>2]}if(i[Q+4>>2]=-2&A,i[a+4>>2]=1|c,i[a+c>>2]=c,c>>>0<=255)A=37660+(-8&c)|0,(g=i[9405])&(C=1<<(c>>>3))?g=i[A+8>>2]:(i[9405]=g|C,g=A),i[A+8>>2]=a,i[g+12>>2]=a,i[a+12>>2]=A,i[a+8>>2]=g;else{C=31,c>>>0<=16777215&&(C=62+((c>>>38-(A=_(c>>>8|0))&1)-(A<<1)|0)|0),i[a+28>>2]=C,i[a+16>>2]=0,i[a+20>>2]=0,A=37924+(C<<2)|0;B:{if((g=i[9406])&(B=1<>>1|0):0),g=i[A>>2];;){if((-8&i[(A=g)+4>>2])==(0|c))break B;if(g=C>>>29|0,C<<=1,!(g=i[16+(B=(4&g)+A|0)>>2]))break}i[B+16>>2]=a}else i[9406]=g|B,i[A>>2]=a;i[a+24>>2]=A,i[a+12>>2]=a,i[a+8>>2]=a;break C}g=i[A+8>>2],i[g+12>>2]=a,i[A+8>>2]=a,i[a+24>>2]=0,i[a+12>>2]=A,i[a+8>>2]=g}}else i[9410]=a,A=i[9407]+c|0,i[9407]=A,i[a+4>>2]=1|A,i[A+a>>2]=A;else i[9411]=a,A=i[9408]+c|0,i[9408]=A,i[a+4>>2]=1|A;A=r+8|0;break A}g:if(r){g=i[B+28>>2];C:{if(i[(C=37924+(g<<2)|0)>>2]==(0|B)){if(i[C>>2]=A,A)break C;c=Lg(-2,g)&c,i[9406]=c;break g}if(i[r+(i[r+16>>2]==(0|B)?16:20)>>2]=A,!A)break g}i[A+24>>2]=r,(g=i[B+16>>2])&&(i[A+16>>2]=g,i[g+24>>2]=A),(g=i[B+20>>2])&&(i[A+20>>2]=g,i[g+24>>2]=A)}g:if(a>>>0<=15)A=a+t|0,i[B+4>>2]=3|A,i[4+(A=A+B|0)>>2]=1|i[A+4>>2];else if(i[B+4>>2]=3|t,i[4+(Q=B+t|0)>>2]=1|a,i[a+Q>>2]=a,a>>>0<=255)A=37660+(-8&a)|0,(g=i[9405])&(C=1<<(a>>>3))?g=i[A+8>>2]:(i[9405]=g|C,g=A),i[A+8>>2]=Q,i[g+12>>2]=Q,i[Q+12>>2]=A,i[Q+8>>2]=g;else{A=31,a>>>0<=16777215&&(A=62+((a>>>38-(A=_(a>>>8|0))&1)-(A<<1)|0)|0),i[Q+28>>2]=A,i[Q+16>>2]=0,i[Q+20>>2]=0,g=37924+(A<<2)|0;C:{if((C=1<>>1|0):0),g=i[g>>2];;){if(C=g,(-8&i[g+4>>2])==(0|a))break C;if(c=A>>>29|0,A<<=1,!(g=i[16+(c=g+(4&c)|0)>>2]))break}i[c+16>>2]=Q,i[Q+24>>2]=C}else i[9406]=C|c,i[g>>2]=Q,i[Q+24>>2]=g;i[Q+12>>2]=Q,i[Q+8>>2]=Q;break g}A=i[C+8>>2],i[A+12>>2]=Q,i[C+8>>2]=Q,i[Q+24>>2]=0,i[Q+12>>2]=C,i[Q+8>>2]=A}A=B+8|0;break A}I:if(e){g=i[C+28>>2];g:{if(i[(B=37924+(g<<2)|0)>>2]==(0|C)){if(i[B>>2]=A,A)break g;h=37624,D=Lg(-2,g)&y,i[h>>2]=D;break I}if(i[e+(i[e+16>>2]==(0|C)?16:20)>>2]=A,!A)break I}i[A+24>>2]=e,(g=i[C+16>>2])&&(i[A+16>>2]=g,i[g+24>>2]=A),(g=i[C+20>>2])&&(i[A+20>>2]=g,i[g+24>>2]=A)}a>>>0<=15?(A=a+t|0,i[C+4>>2]=3|A,i[4+(A=A+C|0)>>2]=1|i[A+4>>2]):(i[C+4>>2]=3|t,i[4+(c=C+t|0)>>2]=1|a,i[a+c>>2]=a,r&&(A=37660+(-8&r)|0,B=i[9410],(g=1<<(r>>>3))&Q?g=i[A+8>>2]:(i[9405]=g|Q,g=A),i[A+8>>2]=B,i[g+12>>2]=B,i[B+12>>2]=A,i[B+8>>2]=g),i[9410]=c,i[9407]=a),A=C+8|0}return s=I+16|0,0|A}function U(A,I,g,B,Q,E){var _,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,X=0,O=0,W=0,V=0,Z=0,T=0;if(s=_=s-592|0,r=-1,ZI(t=A+32|0)&&!KI(A)&&NI(Q)&&!KI(Q)&&!qA(y=_+128|0,Q)){for(SI(r=_+384|0),E&&SA(r,35600,34,0),SA(r,A,32,0),SA(r,Q,32,0),SA(r,I,g,B),j(I=r,r=_+320|0),S(r),B=_+8|0,g=t,Q=0,I=0,s=c=s-2272|0;E=c+2016|0,t=o[r+(Q>>>3|0)|0],C[E+Q|0]=t>>>(6&Q)&1,C[(e=E)+(E=1|Q)|0]=t>>>(7&E)&1,256!=(0|(Q=Q+2|0)););for(;;){I=(E=I)+1|0;A:if(!(E>>>0>254)&&o[0|(D=(Q=c+2016|0)+E|0)]){I:if(Q=C[0|(h=I+Q|0)])if((0|(Q=(r=Q<<1)+(t=C[0|D])|0))<=15)C[0|D]=Q,C[0|h]=0;else{if((0|(Q=t-r|0))<-15)break A;for(C[0|D]=Q,Q=I;;){if(!o[0|(t=(c+2016|0)+Q|0)]){C[0|t]=1;break I}if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,!t)break}}if(!(E>>>0>253)){I:if(t=C[0|(e=(Q=E+2|0)+(c+2016|0)|0)])if((0|(t=(h=t<<2)+(r=C[0|D])|0))>=16){if((0|(t=r-h|0))<-15)break A;for(C[0|D]=t;;){if(o[0|(t=(c+2016|0)+Q|0)]){if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,t)continue;break I}break}C[0|t]=1}else C[0|D]=t,C[0|e]=0;if(253!=(0|E)){I:if(t=C[0|(e=(Q=E+3|0)+(c+2016|0)|0)])if((0|(t=(h=t<<3)+(r=C[0|D])|0))>=16){if((0|(t=r-h|0))<-15)break A;for(C[0|D]=t;;){if(o[0|(t=(c+2016|0)+Q|0)]){if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,t)continue;break I}break}C[0|t]=1}else C[0|D]=t,C[0|e]=0;if(!(E>>>0>251)){I:if(t=C[0|(e=(Q=E+4|0)+(c+2016|0)|0)])if((0|(t=(h=t<<4)+(r=C[0|D])|0))>=16){if((0|(t=r-h|0))<-15)break A;for(C[0|D]=t;;){if(o[0|(t=(c+2016|0)+Q|0)]){if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,t)continue;break I}break}C[0|t]=1}else C[0|D]=t,C[0|e]=0;if(251!=(0|E)){I:if(t=C[0|(e=(Q=E+5|0)+(c+2016|0)|0)])if((0|(t=(h=t<<5)+(r=C[0|D])|0))>=16){if((0|(t=r-h|0))<-15)break A;for(C[0|D]=t;;){if(o[0|(t=(c+2016|0)+Q|0)]){if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,t)continue;break I}break}C[0|t]=1}else C[0|D]=t,C[0|e]=0;if(!(E>>>0>249)&&(E=C[0|(h=(Q=E+6|0)+(c+2016|0)|0)]))if((0|(E=(r=E<<6)+(t=C[0|D])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|D]=E;;){if(o[0|(E=(c+2016|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break A}break}C[0|E]=1}else C[0|D]=E,C[0|h]=0}}}}}if(256==(0|I))break}for(Q=0;I=c+1760|0,E=o[g+(Q>>>3|0)|0],C[I+Q|0]=E>>>(6&Q)&1,C[(t=I)+(I=1|Q)|0]=E>>>(7&I)&1,256!=(0|(Q=Q+2|0)););for(I=0;;){g=I,I=I+1|0;A:if(!(g>>>0>254)&&o[0|(e=(Q=c+1760|0)+g|0)]){I:if(Q=C[0|(r=I+Q|0)])if((0|(Q=(t=Q<<1)+(E=C[0|e])|0))<=15)C[0|e]=Q,C[0|r]=0;else{if((0|(Q=E-t|0))<-15)break A;for(C[0|e]=Q,Q=I;;){if(!o[0|(E=(c+1760|0)+Q|0)]){C[0|E]=1;break I}if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,!E)break}}if(!(g>>>0>253)){I:if(E=C[0|(h=(Q=g+2|0)+(c+1760|0)|0)])if((0|(E=(r=E<<2)+(t=C[0|e])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|e]=E;;){if(o[0|(E=(c+1760|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break I}break}C[0|E]=1}else C[0|e]=E,C[0|h]=0;if(253!=(0|g)){I:if(E=C[0|(h=(Q=g+3|0)+(c+1760|0)|0)])if((0|(E=(r=E<<3)+(t=C[0|e])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|e]=E;;){if(o[0|(E=(c+1760|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break I}break}C[0|E]=1}else C[0|e]=E,C[0|h]=0;if(!(g>>>0>251)){I:if(E=C[0|(h=(Q=g+4|0)+(c+1760|0)|0)])if((0|(E=(r=E<<4)+(t=C[0|e])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|e]=E;;){if(o[0|(E=(c+1760|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break I}break}C[0|E]=1}else C[0|e]=E,C[0|h]=0;if(251!=(0|g)){I:if(E=C[0|(h=(Q=g+5|0)+(c+1760|0)|0)])if((0|(E=(r=E<<5)+(t=C[0|e])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|e]=E;;){if(o[0|(E=(c+1760|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break I}break}C[0|E]=1}else C[0|e]=E,C[0|h]=0;if(!(g>>>0>249)&&(g=C[0|(r=(Q=g+6|0)+(c+1760|0)|0)]))if((0|(g=(t=g<<6)+(E=C[0|e])|0))>=16){if((0|(g=E-t|0))<-15)break A;for(C[0|e]=g;;){if(o[0|(g=(c+1760|0)+Q|0)]){if(C[0|g]=0,g=Q>>>0<255,Q=Q+1|0,g)continue;break A}break}C[0|g]=1}else C[0|e]=g,C[0|r]=0}}}}}if(256==(0|I))break}for($A(Q=c+480|0,y),I=i[y+36>>2],i[c+192>>2]=i[y+32>>2],i[c+196>>2]=I,I=i[y+28>>2],i[c+184>>2]=i[y+24>>2],i[c+188>>2]=I,I=i[y+20>>2],i[c+176>>2]=i[y+16>>2],i[c+180>>2]=I,I=i[y+12>>2],i[c+168>>2]=i[y+8>>2],i[c+172>>2]=I,I=i[y+4>>2],i[c+160>>2]=i[y>>2],i[c+164>>2]=I,I=i[y+52>>2],i[c+208>>2]=i[y+48>>2],i[c+212>>2]=I,I=i[y+60>>2],i[c+216>>2]=i[y+56>>2],i[c+220>>2]=I,I=i[4+(g=y- -64|0)>>2],i[c+224>>2]=i[g>>2],i[c+228>>2]=I,I=i[y+76>>2],i[c+232>>2]=i[y+72>>2],i[c+236>>2]=I,I=i[y+44>>2],i[c+200>>2]=i[y+40>>2],i[c+204>>2]=I,I=i[y+92>>2],i[c+248>>2]=i[y+88>>2],i[c+252>>2]=I,I=i[y+100>>2],i[c+256>>2]=i[y+96>>2],i[c+260>>2]=I,I=i[y+108>>2],i[c+264>>2]=i[y+104>>2],i[c+268>>2]=I,I=i[y+116>>2],i[c+272>>2]=i[y+112>>2],i[c+276>>2]=I,I=i[y+84>>2],i[c+240>>2]=i[y+80>>2],i[c+244>>2]=I,KA(E=c+320|0,g=c+160|0),b(c,E,f=c+440|0),b(c+40|0,p=c+360|0,w=c+400|0),b(c+80|0,w,f),b(c+120|0,E,p),sA(E,c,Q),b(g,E,f),b(k=c+200|0,p,w),b(F=c+240|0,w,f),b(n=c+280|0,E,p),$A(I=c+640|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+800|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+960|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+1120|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+1280|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+1440|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(c+1600|0,g),i[B+32>>2]=0,i[B+36>>2]=0,i[B+24>>2]=0,i[B+28>>2]=0,i[B+16>>2]=0,i[B+20>>2]=0,i[B+8>>2]=0,i[B+12>>2]=0,i[B>>2]=0,i[B+4>>2]=0,i[B+44>>2]=0,i[B+48>>2]=0,i[B+40>>2]=1,i[B+52>>2]=0,i[B+56>>2]=0,i[B+60>>2]=0,i[B+64>>2]=0,i[B+68>>2]=0,i[B+72>>2]=0,i[B+84>>2]=0,i[B+88>>2]=0,i[B+76>>2]=0,i[B+80>>2]=1,i[B+92>>2]=0,i[B+96>>2]=0,i[B+100>>2]=0,i[B+104>>2]=0,i[B+108>>2]=0,i[B+112>>2]=0,i[B+116>>2]=0,X=B+80|0,O=B+40|0,I=255;;){A:{I:{if(!o[(g=c+2016|0)+I|0]&&!o[(Q=c+1760|0)+I|0]){if(!(o[(E=g)+(g=I-1|0)|0]|o[g+Q|0]))break I;I=g}if((0|I)<0)break A;for(;KA(Q=c+320|0,B),g=I,(0|(E=C[I+(c+2016|0)|0]))>0?(b(I=c+160|0,Q,f),b(k,p,w),b(F,w,f),b(n,Q,p),sA(Q,I,(c+480|0)+a((254&E)>>>1|0,160)|0)):(0|E)>=0||(b(I=c+160|0,Q=c+320|0,f),b(k,p,w),b(F,w,f),b(n,Q,p),hA(Q,I,(c+480|0)+a((0-E&254)>>>1|0,160)|0)),(0|(u=C[g+(c+1760|0)|0]))>0?(b(I=c+160|0,Q=c+320|0,f),b(k,p,w),b(F,w,f),b(n,Q,p),DA(Q,I,a((254&u)>>>1|0,120)+1728|0)):(0|u)>=0||(b(c+160|0,x=c+320|0,f),b(k,p,w),b(F,w,f),b(n,x,p),N=i[c+160>>2],G=i[c+200>>2],M=i[c+164>>2],K=i[c+204>>2],U=i[c+168>>2],H=i[c+208>>2],Y=i[c+172>>2],J=i[c+212>>2],d=i[c+176>>2],m=i[c+216>>2],l=i[c+180>>2],D=i[c+220>>2],e=i[c+184>>2],h=i[c+224>>2],r=i[c+188>>2],y=i[c+228>>2],t=i[c+192>>2],E=i[c+232>>2],Q=i[c+236>>2],I=i[c+196>>2],i[c+396>>2]=Q-I,i[c+392>>2]=E-t,i[c+388>>2]=y-r,i[c+384>>2]=h-e,i[c+380>>2]=D-l,i[c+376>>2]=m-d,i[c+372>>2]=J-Y,i[c+368>>2]=H-U,i[c+364>>2]=K-M,i[c+360>>2]=G-N,i[c+356>>2]=I+Q,i[c+352>>2]=E+t,i[c+348>>2]=r+y,i[c+344>>2]=e+h,i[c+340>>2]=D+l,i[c+336>>2]=d+m,i[c+332>>2]=Y+J,i[c+328>>2]=U+H,i[c+324>>2]=M+K,i[c+320>>2]=N+G,b(w,x,40+(I=a((0-u&254)>>>1|0,120)+1728|0)|0),b(p,p,I),b(f,I+80|0,n),W=i[c+276>>2],V=i[c+272>>2],u=i[c+268>>2],x=i[c+264>>2],e=i[c+260>>2],h=i[c+256>>2],r=i[c+252>>2],y=i[c+248>>2],t=i[c+244>>2],E=i[c+240>>2],v=i[c+360>>2],R=i[c+400>>2],L=i[c+364>>2],P=i[c+404>>2],q=i[c+368>>2],z=i[c+408>>2],N=i[c+372>>2],G=i[c+412>>2],M=i[c+376>>2],K=i[c+416>>2],U=i[c+380>>2],H=i[c+420>>2],Y=i[c+384>>2],J=i[c+424>>2],d=i[c+388>>2],m=i[c+428>>2],l=i[c+392>>2],D=i[c+432>>2],Q=i[c+396>>2],I=i[c+436>>2],i[c+396>>2]=Q+I,i[c+392>>2]=D+l,i[c+388>>2]=d+m,i[c+384>>2]=Y+J,i[c+380>>2]=U+H,i[c+376>>2]=M+K,i[c+372>>2]=N+G,i[c+368>>2]=q+z,i[c+364>>2]=L+P,i[c+360>>2]=v+R,i[c+356>>2]=I-Q,i[c+352>>2]=D-l,i[c+348>>2]=m-d,i[c+344>>2]=J-Y,i[c+340>>2]=H-U,i[c+336>>2]=K-M,i[c+332>>2]=G-N,i[c+328>>2]=z-q,i[c+324>>2]=P-L,i[c+320>>2]=R-v,N=E<<1,G=i[c+440>>2],i[c+400>>2]=N-G,M=t<<1,K=i[c+444>>2],i[c+404>>2]=M-K,U=y<<1,H=i[c+448>>2],i[c+408>>2]=U-H,Y=r<<1,J=i[c+452>>2],i[c+412>>2]=Y-J,d=h<<1,m=i[c+456>>2],i[c+416>>2]=d-m,l=e<<1,D=i[c+460>>2],i[c+420>>2]=l-D,e=x<<1,h=i[c+464>>2],i[c+424>>2]=e-h,r=u<<1,y=i[c+468>>2],i[c+428>>2]=r-y,t=V<<1,E=i[c+472>>2],i[c+432>>2]=t-E,Q=W<<1,I=i[c+476>>2],i[c+436>>2]=Q-I,i[c+440>>2]=N+G,i[c+444>>2]=M+K,i[c+448>>2]=U+H,i[c+452>>2]=Y+J,i[c+456>>2]=d+m,i[c+460>>2]=D+l,i[c+464>>2]=e+h,i[c+468>>2]=r+y,i[c+472>>2]=E+t,i[c+476>>2]=I+Q),b(B,c+320|0,f),b(O,p,w),b(X,w,f),I=g-1|0,(0|g)>0;);break A}if(I=I-2|0,g)continue}break}s=c+2272|0,tg(I=_+288|0,B),Z=-1,T=NC(I,A),r=((0|A)==(0|I)?Z:T)|MI(A,I,32)}return s=_+592|0,r}function b(A,I,g){var C,B,Q,o,E,_,c,t,r,e,y,s,h,D,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l,u,x,v,R,L,P,q,z,j,X,O,W,V,Z,T,$,AA,IA,gA,CA,BA,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,fA=0,pA=0,wA=0,nA=0,kA=0,FA=0,SA=0,NA=0,GA=0,MA=0,KA=0;QA=Ig(C=i[g+4>>2],e=C>>31,wA=(w=i[I+20>>2])<<1,m=wA>>31),oA=f,iA=(hA=Ig(fA=i[g>>2],Q=fA>>31,B=i[I+24>>2],o=B>>31))+QA|0,QA=f+oA|0,QA=iA>>>0>>0?QA+1|0:QA,rA=Ig(E=i[g+8>>2],h=E>>31,hA=i[I+16>>2],_=hA>>31),oA=f+QA|0,oA=(iA=rA+iA|0)>>>0>>0?oA+1|0:oA,QA=(rA=Ig(y=i[g+12>>2],n=y>>31,K=(k=i[I+12>>2])<<1,l=K>>31))+iA|0,iA=f+oA|0,iA=QA>>>0>>0?iA+1|0:iA,oA=(DA=Ig(D=i[g+16>>2],U=D>>31,rA=i[I+8>>2],c=rA>>31))+QA|0,QA=f+iA|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(F=i[g+20>>2],u=F>>31,b=(S=i[I+4>>2])<<1,x=b>>31),QA=f+QA|0,QA=(iA=iA+oA|0)>>>0>>0?QA+1|0:QA,Z=cA=i[g+24>>2],oA=(eA=Ig(cA,W=cA>>31,DA=i[I>>2],t=DA>>31))+iA|0,iA=f+QA|0,iA=oA>>>0>>0?iA+1|0:iA,v=i[g+28>>2],QA=(eA=Ig(sA=a(v,19),N=sA>>31,H=(G=i[I+36>>2])<<1,R=H>>31))+oA|0,oA=f+iA|0,oA=QA>>>0>>0?oA+1|0:oA,SA=i[g+32>>2],iA=(tA=Ig(EA=a(SA,19),p=EA>>31,eA=i[I+32>>2],r=eA>>31))+QA|0,QA=f+oA|0,QA=iA>>>0>>0?QA+1|0:QA,T=i[g+36>>2],g=Ig(tA=a(T,19),s=tA>>31,Y=(M=i[I+28>>2])<<1,L=Y>>31),QA=f+QA|0,aA=I=g+iA|0,g=I>>>0>>0?QA+1|0:QA,I=Ig(hA,_,C,e),QA=f,iA=Ig(fA,Q,w,P=w>>31),oA=f+QA|0,oA=(I=iA+I|0)>>>0>>0?oA+1|0:oA,QA=Ig(E,h,k,q=k>>31),iA=f+oA|0,iA=(I=QA+I|0)>>>0>>0?iA+1|0:iA,oA=Ig(rA,c,y,n),QA=f+iA|0,QA=(I=oA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(D,U,S,z=S>>31),QA=f+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(DA,t,F,u),QA=f+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(cA=a(cA,19),J=cA>>31,G,j=G>>31),oA=f+QA|0,oA=(I=iA+I|0)>>>0>>0?oA+1|0:oA,QA=Ig(eA,r,sA,N),iA=f+oA|0,iA=(I=QA+I|0)>>>0>>0?iA+1|0:iA,oA=Ig(EA,p,M,X=M>>31),QA=f+iA|0,QA=(I=oA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(tA,s,B,o),QA=f+QA|0,GA=I=iA+I|0,nA=I>>>0>>0?QA+1|0:QA,I=Ig(C,e,K,l),QA=f,iA=Ig(fA,Q,hA,_),QA=f+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(rA,c,E,h),oA=f+QA|0,oA=(I=iA+I|0)>>>0>>0?oA+1|0:oA,QA=Ig(y,n,b,x),iA=f+oA|0,iA=(I=QA+I|0)>>>0>>0?iA+1|0:iA,oA=Ig(DA,t,D,U),QA=f+iA|0,QA=(I=oA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(d=a(F,19),O=d>>31,H,R),QA=f+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(eA,r,cA,J),QA=f+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(sA,N,Y,L),oA=f+QA|0,oA=(I=iA+I|0)>>>0>>0?oA+1|0:oA,QA=Ig(EA,p,B,o),iA=f+oA|0,iA=(I=QA+I|0)>>>0>>0?iA+1|0:iA,oA=Ig(tA,s,wA,m),QA=f+iA|0,$=I=oA+I|0,AA=QA=I>>>0>>0?QA+1|0:QA,IA=I=I+33554432|0,gA=QA=I>>>0<33554432?QA+1|0:QA,oA=(67108863&QA)<<6|I>>>26,QA=(QA>>26)+nA|0,GA=I=oA+GA|0,QA=I>>>0>>0?QA+1|0:QA,CA=I=I+16777216|0,QA=g+(iA=(oA=I>>>0<16777216?QA+1|0:QA)>>25)|0,QA=(I=(oA=(33554431&oA)<<7|I>>>25)+aA|0)>>>0>>0?QA+1|0:QA,kA=g=(iA=I)+33554432|0,I=QA=g>>>0<33554432?QA+1|0:QA,i[A+24>>2]=iA-(-67108864&g),g=Ig(C,e,b,x),QA=f,iA=Ig(fA,Q,rA,c),oA=f+QA|0,oA=(g=iA+g|0)>>>0>>0?oA+1|0:oA,iA=(QA=g)+(g=Ig(DA,t,E,h))|0,QA=f+oA|0,QA=g>>>0>iA>>>0?QA+1|0:QA,oA=Ig(g=a(y,19),FA=g>>31,H,R),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,oA=(aA=Ig(eA,r,nA=a(D,19),V=nA>>31))+iA|0,iA=f+QA|0,iA=oA>>>0>>0?iA+1|0:iA,aA=Ig(Y,L,d,O),QA=f+iA|0,QA=(oA=aA+oA|0)>>>0>>0?QA+1|0:QA,iA=(aA=Ig(B,o,cA,J))+oA|0,oA=f+QA|0,oA=iA>>>0>>0?oA+1|0:oA,aA=Ig(sA,N,wA,m),QA=f+oA|0,QA=(iA=aA+iA|0)>>>0>>0?QA+1|0:QA,oA=Ig(EA,p,hA,_),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,oA=(aA=Ig(tA,s,K,l))+iA|0,iA=f+QA|0,yA=oA,MA=oA>>>0>>0?iA+1|0:iA,QA=Ig(DA,t,C,e),iA=f,oA=(aA=Ig(fA,Q,S,z))+QA|0,QA=f+iA|0,QA=oA>>>0>>0?QA+1|0:QA,aA=iA=a(E,19),iA=(_A=Ig(iA,NA=iA>>31,G,j))+oA|0,oA=f+QA|0,oA=iA>>>0<_A>>>0?oA+1|0:oA,_A=Ig(eA,r,g,FA),QA=f+oA|0,QA=(iA=_A+iA|0)>>>0<_A>>>0?QA+1|0:QA,oA=Ig(nA,V,M,X),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,oA=(_A=Ig(B,o,d,O))+iA|0,iA=f+QA|0,iA=oA>>>0<_A>>>0?iA+1|0:iA,_A=Ig(cA,J,w,P),QA=f+iA|0,QA=(oA=_A+oA|0)>>>0<_A>>>0?QA+1|0:QA,iA=(_A=Ig(hA,_,sA,N))+oA|0,oA=f+QA|0,oA=iA>>>0<_A>>>0?oA+1|0:oA,_A=Ig(EA,p,k,q),QA=f+oA|0,QA=(iA=_A+iA|0)>>>0<_A>>>0?QA+1|0:QA,oA=Ig(tA,s,rA,c),QA=f+QA|0,KA=iA=oA+iA|0,_A=iA>>>0>>0?QA+1|0:QA,QA=Ig(QA=a(C,19),QA>>31,H,R),iA=f,oA=Ig(fA,Q,DA,t),iA=f+iA|0,iA=(QA=oA+QA|0)>>>0>>0?iA+1|0:iA,oA=(aA=Ig(eA,r,aA,NA))+QA|0,QA=f+iA|0,g=(iA=Ig(g,FA,Y,L))+oA|0,oA=f+(oA>>>0>>0?QA+1|0:QA)|0,oA=g>>>0>>0?oA+1|0:oA,iA=Ig(B,o,nA,V),QA=f+oA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,iA=Ig(wA,m,d,O),QA=f+QA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,oA=Ig(hA,_,cA,J),iA=f+QA|0,iA=(g=oA+g|0)>>>0>>0?iA+1|0:iA,oA=Ig(sA,N,K,l),QA=f+iA|0,QA=(g=oA+g|0)>>>0>>0?QA+1|0:QA,iA=Ig(EA,p,rA,c),oA=f+QA|0,oA=(g=iA+g|0)>>>0>>0?oA+1|0:oA,iA=Ig(tA,s,b,x),QA=f+oA|0,aA=g=iA+g|0,FA=QA=g>>>0>>0?QA+1|0:QA,NA=g=g+33554432|0,BA=QA=g>>>0<33554432?QA+1|0:QA,iA=(oA=QA>>26)+_A|0,_A=g=(QA=(67108863&QA)<<6|g>>>26)+KA|0,QA=g>>>0>>0?iA+1|0:iA,KA=g=g+16777216|0,iA=(33554431&(QA=g>>>0<16777216?QA+1|0:QA))<<7|g>>>25,QA=(QA>>25)+MA|0,QA=(g=iA+yA|0)>>>0>>0?QA+1|0:QA,MA=iA=(oA=g)+33554432|0,g=QA=iA>>>0<33554432?QA+1|0:QA,i[A+8>>2]=oA-(-67108864&iA),QA=Ig(B,o,C,e),oA=f,iA=(yA=Ig(fA,Q,M,X))+QA|0,QA=f+oA|0,QA=iA>>>0>>0?QA+1|0:QA,oA=Ig(E,h,w,P),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,oA=Ig(hA,_,y,n),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,yA=Ig(D,U,k,q),oA=f+QA|0,oA=(iA=yA+iA|0)>>>0>>0?oA+1|0:oA,QA=(yA=Ig(rA,c,F,u))+iA|0,iA=f+oA|0,iA=QA>>>0>>0?iA+1|0:iA,oA=(yA=Ig(S,z,Z,W))+QA|0,QA=f+iA|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(DA,t,v,yA=v>>31),QA=f+QA|0,QA=(iA=iA+oA|0)>>>0>>0?QA+1|0:QA,oA=Ig(EA,p,G,j),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,pA=Ig(tA,s,eA,r),oA=f+QA|0,QA=I>>26,I=(kA=(67108863&I)<<6|kA>>>26)+(iA=pA+iA|0)|0,iA=QA+(iA>>>0>>0?oA+1|0:oA)|0,QA=(oA=I)>>>0>>0?iA+1|0:iA,kA=iA=oA+16777216|0,I=QA=iA>>>0<16777216?QA+1|0:QA,i[A+28>>2]=oA-(-33554432&iA),QA=Ig(rA,c,C,e),iA=f,pA=Ig(fA,Q,k,q),oA=f+iA|0,oA=(QA=pA+QA|0)>>>0>>0?oA+1|0:oA,pA=Ig(E,h,S,z),iA=f+oA|0,iA=(QA=pA+QA|0)>>>0>>0?iA+1|0:iA,oA=(pA=Ig(DA,t,y,n))+QA|0,QA=f+iA|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(nA,V,G,j),QA=f+QA|0,QA=(iA=iA+oA|0)>>>0>>0?QA+1|0:QA,oA=Ig(eA,r,d,O),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,iA=(cA=Ig(cA,J,M,X))+iA|0,oA=f+QA|0,QA=(sA=Ig(B,o,sA,N))+iA|0,iA=f+(iA>>>0>>0?oA+1|0:oA)|0,oA=(EA=Ig(EA,p,w,P))+QA|0,QA=f+(QA>>>0>>0?iA+1|0:iA)|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(tA,s,hA,_),QA=f+QA|0,EA=iA=iA+oA|0,QA=(QA=iA>>>0>>0?QA+1|0:QA)+(iA=g>>26)|0,EA=g=EA+(oA=(67108863&g)<<6|MA>>>26)|0,QA=g>>>0>>0?QA+1|0:QA,sA=iA=g+16777216|0,g=oA=iA>>>0<16777216?QA+1|0:QA,i[A+12>>2]=EA-(-33554432&iA),QA=Ig(C,e,Y,L),oA=f,iA=(EA=Ig(fA,Q,eA,r))+QA|0,QA=f+oA|0,QA=iA>>>0>>0?QA+1|0:QA,oA=Ig(B,o,E,h),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,EA=Ig(y,n,wA,m),oA=f+QA|0,oA=(iA=EA+iA|0)>>>0>>0?oA+1|0:oA,QA=(EA=Ig(hA,_,D,U))+iA|0,iA=f+oA|0,iA=QA>>>0>>0?iA+1|0:iA,oA=(EA=Ig(K,l,F,u))+QA|0,QA=f+iA|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(rA,c,Z,W),QA=f+QA|0,QA=(iA=iA+oA|0)>>>0>>0?QA+1|0:QA,oA=Ig(v,yA,b,x),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,iA=(wA=Ig(DA,t,EA=SA,cA=EA>>31))+iA|0,oA=f+QA|0,QA=(tA=Ig(tA,s,H,R))+iA|0,iA=f+(iA>>>0>>0?oA+1|0:oA)|0,iA=QA>>>0>>0?iA+1|0:iA,SA=QA,QA=(QA=I>>25)+iA|0,QA=(I=SA+(oA=(33554431&I)<<7|kA>>>25)|0)>>>0>>0?QA+1|0:QA,tA=iA=(oA=I)+33554432|0,I=QA=iA>>>0<33554432?QA+1|0:QA,i[A+32>>2]=oA-(-67108864&iA),iA=g>>25,g=(sA=(33554431&g)<<7|sA>>>25)+($-(QA=-67108864&IA)|0)|0,QA=iA+(AA-((QA>>>0>$>>>0)+gA|0)|0)|0,QA=g>>>0>>0?QA+1|0:QA,QA=((67108863&(QA=(g=(iA=g)+33554432|0)>>>0<33554432?QA+1|0:QA))<<6|g>>>26)+(oA=GA-(-33554432&CA)|0)|0,i[A+20>>2]=QA,i[A+16>>2]=iA-(-67108864&g),g=Ig(eA,r,C,e),QA=f,iA=Ig(fA,Q,G,j),QA=f+QA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,oA=Ig(E,h,M,X),iA=f+QA|0,iA=(g=oA+g|0)>>>0>>0?iA+1|0:iA,QA=Ig(B,o,y,n),oA=f+iA|0,oA=(g=QA+g|0)>>>0>>0?oA+1|0:oA,iA=Ig(D,U,w,P),QA=f+oA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,iA=Ig(hA,_,F,u),QA=f+QA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,iA=Ig(k,q,Z,W),QA=f+QA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,oA=Ig(rA,c,v,yA),iA=f+QA|0,iA=(g=oA+g|0)>>>0>>0?iA+1|0:iA,QA=Ig(EA,cA,S,z),oA=f+iA|0,oA=(g=QA+g|0)>>>0>>0?oA+1|0:oA,iA=Ig(DA,t,T,T>>31),QA=f+oA|0,QA=(QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA)+(iA=I>>26)|0,QA=(I=(oA=g)+(g=(67108863&I)<<6|tA>>>26)|0)>>>0>>0?QA+1|0:QA,QA=(I=(g=I)+16777216|0)>>>0<16777216?QA+1|0:QA,i[A+36>>2]=g-(-33554432&I),oA=_A-(-33554432&KA)|0,iA=aA-(g=-67108864&NA)|0,fA=FA-((g>>>0>aA>>>0)+BA|0)|0,I=(g=Ig((33554431&(g=QA))<<7|I>>>25,QA>>=25,19,0))+iA|0,iA=f+fA|0,QA=I>>>0>>0?iA+1|0:iA,QA=((67108863&(QA=(I=(g=I)+33554432|0)>>>0<33554432?QA+1|0:QA))<<6|I>>>26)+oA|0,i[A+4>>2]=QA,i[A>>2]=g-(-67108864&I)}function H(A,I){var g,C,B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w=0,n=0,k=0;s=g=s-544|0,C=o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24,B=o[A+56|0]|o[A+57|0]<<8|o[A+58|0]<<16|o[A+59|0]<<24,Q=o[A+52|0]|o[A+53|0]<<8|o[A+54|0]<<16|o[A+55|0]<<24,E=o[A+48|0]|o[A+49|0]<<8|o[A+50|0]<<16|o[A+51|0]<<24,a=o[A+32|0]|o[A+33|0]<<8|o[A+34|0]<<16|o[A+35|0]<<24,_=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,c=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,t=o[A+44|0]|o[A+45|0]<<8|o[A+46|0]<<16|o[A+47|0]<<24,w=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,r=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,e=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,y=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,h=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,D=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,f=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,p=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,A=i[I+124>>2],i[g+536>>2]=i[I+120>>2],i[g+540>>2]=A,A=i[I+116>>2],i[g+528>>2]=i[I+112>>2],i[g+532>>2]=A,A=i[I+108>>2],i[g+504>>2]=i[I+104>>2],i[g+508>>2]=A,A=i[I+100>>2],i[g+496>>2]=i[I+96>>2],i[g+500>>2]=A,A=i[I+124>>2],i[g+488>>2]=i[I+120>>2],i[g+492>>2]=A,A=i[I+116>>2],i[g+480>>2]=i[I+112>>2],i[g+484>>2]=A,AI(k=g+512|0,g+496|0,g+480|0),A=i[g+524>>2],i[I+120>>2]=i[g+520>>2],i[I+124>>2]=A,A=i[g+516>>2],i[I+112>>2]=i[g+512>>2],i[I+116>>2]=A,A=i[I+92>>2],i[g+472>>2]=i[I+88>>2],i[g+476>>2]=A,A=i[I+84>>2],i[g+464>>2]=i[I+80>>2],i[g+468>>2]=A,A=i[I+108>>2],i[g+456>>2]=i[I+104>>2],i[g+460>>2]=A,A=i[I+100>>2],i[g+448>>2]=i[I+96>>2],i[g+452>>2]=A,AI(k,g+464|0,g+448|0),A=i[g+524>>2],i[I+104>>2]=i[g+520>>2],i[I+108>>2]=A,A=i[g+516>>2],i[I+96>>2]=i[g+512>>2],i[I+100>>2]=A,A=i[I+76>>2],i[g+440>>2]=i[I+72>>2],i[g+444>>2]=A,n=i[4+(A=I- -64|0)>>2],i[g+432>>2]=i[A>>2],i[g+436>>2]=n,n=i[I+92>>2],i[g+424>>2]=i[I+88>>2],i[g+428>>2]=n,n=i[I+84>>2],i[g+416>>2]=i[I+80>>2],i[g+420>>2]=n,AI(k,g+432|0,g+416|0),n=i[g+524>>2],i[I+88>>2]=i[g+520>>2],i[I+92>>2]=n,n=i[g+516>>2],i[I+80>>2]=i[g+512>>2],i[I+84>>2]=n,n=i[I+60>>2],i[g+408>>2]=i[I+56>>2],i[g+412>>2]=n,n=i[I+52>>2],i[g+400>>2]=i[I+48>>2],i[g+404>>2]=n,n=i[I+76>>2],i[g+392>>2]=i[I+72>>2],i[g+396>>2]=n,n=i[A+4>>2],i[g+384>>2]=i[A>>2],i[g+388>>2]=n,AI(k,g+400|0,g+384|0),n=i[g+524>>2],i[I+72>>2]=i[g+520>>2],i[I+76>>2]=n,n=i[g+516>>2],i[A>>2]=i[g+512>>2],i[A+4>>2]=n,n=i[I+44>>2],i[g+376>>2]=i[I+40>>2],i[g+380>>2]=n,n=i[I+36>>2],i[g+368>>2]=i[I+32>>2],i[g+372>>2]=n,n=i[I+60>>2],i[g+360>>2]=i[I+56>>2],i[g+364>>2]=n,n=i[I+52>>2],i[g+352>>2]=i[I+48>>2],i[g+356>>2]=n,AI(k,g+368|0,g+352|0),n=i[g+524>>2],i[I+56>>2]=i[g+520>>2],i[I+60>>2]=n,n=i[g+516>>2],i[I+48>>2]=i[g+512>>2],i[I+52>>2]=n,n=i[I+28>>2],i[g+344>>2]=i[I+24>>2],i[g+348>>2]=n,n=i[I+20>>2],i[g+336>>2]=i[I+16>>2],i[g+340>>2]=n,n=i[I+44>>2],i[g+328>>2]=i[I+40>>2],i[g+332>>2]=n,n=i[I+36>>2],i[g+320>>2]=i[I+32>>2],i[g+324>>2]=n,AI(k,g+336|0,g+320|0),n=i[g+524>>2],i[I+40>>2]=i[g+520>>2],i[I+44>>2]=n,n=i[g+516>>2],i[I+32>>2]=i[g+512>>2],i[I+36>>2]=n,n=i[I+12>>2],i[g+312>>2]=i[I+8>>2],i[g+316>>2]=n,n=i[I+4>>2],i[g+304>>2]=i[I>>2],i[g+308>>2]=n,n=i[I+28>>2],i[g+296>>2]=i[I+24>>2],i[g+300>>2]=n,n=i[I+20>>2],i[g+288>>2]=i[I+16>>2],i[g+292>>2]=n,AI(k,g+304|0,g+288|0),n=i[g+524>>2],i[I+24>>2]=i[g+520>>2],i[I+28>>2]=n,n=i[g+516>>2],i[I+16>>2]=i[g+512>>2],i[I+20>>2]=n,n=i[g+540>>2],i[g+280>>2]=i[g+536>>2],i[g+284>>2]=n,n=i[g+532>>2],i[g+272>>2]=i[g+528>>2],i[g+276>>2]=n,n=i[I+12>>2],i[g+264>>2]=i[I+8>>2],i[g+268>>2]=n,n=i[I+4>>2],i[g+256>>2]=i[I>>2],i[g+260>>2]=n,AI(k,g+272|0,g+256|0),n=i[g+524>>2],i[I+8>>2]=i[g+520>>2],i[I+12>>2]=n,n=i[g+516>>2],i[I>>2]=i[g+512>>2],i[I+4>>2]=n,i[I+12>>2]=(o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)^f,i[I+8>>2]=(o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24)^D,i[I+4>>2]=(o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)^h,i[I>>2]=(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24)^p,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^y,i[I+68>>2]=(o[I+68|0]|o[I+69|0]<<8|o[I+70|0]<<16|o[I+71|0]<<24)^e,i[I+72>>2]=(o[I+72|0]|o[I+73|0]<<8|o[I+74|0]<<16|o[I+75|0]<<24)^r,i[I+76>>2]=(o[I+76|0]|o[I+77|0]<<8|o[I+78|0]<<16|o[I+79|0]<<24)^w,w=i[I+124>>2],i[g+536>>2]=i[I+120>>2],i[g+540>>2]=w,w=i[I+116>>2],i[g+528>>2]=i[I+112>>2],i[g+532>>2]=w,w=i[I+108>>2],i[g+248>>2]=i[I+104>>2],i[g+252>>2]=w,w=i[I+100>>2],i[g+240>>2]=i[I+96>>2],i[g+244>>2]=w,w=i[I+124>>2],i[g+232>>2]=i[I+120>>2],i[g+236>>2]=w,w=i[I+116>>2],i[g+224>>2]=i[I+112>>2],i[g+228>>2]=w,AI(k,g+240|0,g+224|0),w=i[g+524>>2],i[I+120>>2]=i[g+520>>2],i[I+124>>2]=w,w=i[g+516>>2],i[I+112>>2]=i[g+512>>2],i[I+116>>2]=w,w=i[I+92>>2],i[g+216>>2]=i[I+88>>2],i[g+220>>2]=w,w=i[I+84>>2],i[g+208>>2]=i[I+80>>2],i[g+212>>2]=w,w=i[I+108>>2],i[g+200>>2]=i[I+104>>2],i[g+204>>2]=w,w=i[I+100>>2],i[g+192>>2]=i[I+96>>2],i[g+196>>2]=w,AI(k,g+208|0,g+192|0),w=i[g+524>>2],i[I+104>>2]=i[g+520>>2],i[I+108>>2]=w,w=i[g+516>>2],i[I+96>>2]=i[g+512>>2],i[I+100>>2]=w,w=i[I+76>>2],i[g+184>>2]=i[I+72>>2],i[g+188>>2]=w,w=i[A+4>>2],i[g+176>>2]=i[A>>2],i[g+180>>2]=w,w=i[I+92>>2],i[g+168>>2]=i[I+88>>2],i[g+172>>2]=w,w=i[I+84>>2],i[g+160>>2]=i[I+80>>2],i[g+164>>2]=w,AI(k,g+176|0,g+160|0),w=i[g+524>>2],i[I+88>>2]=i[g+520>>2],i[I+92>>2]=w,w=i[g+516>>2],i[I+80>>2]=i[g+512>>2],i[I+84>>2]=w,w=i[I+60>>2],i[g+152>>2]=i[I+56>>2],i[g+156>>2]=w,w=i[I+52>>2],i[g+144>>2]=i[I+48>>2],i[g+148>>2]=w,w=i[I+76>>2],i[g+136>>2]=i[I+72>>2],i[g+140>>2]=w,w=i[A+4>>2],i[g+128>>2]=i[A>>2],i[g+132>>2]=w,AI(k,g+144|0,g+128|0),w=i[g+524>>2],i[I+72>>2]=i[g+520>>2],i[I+76>>2]=w,w=i[g+516>>2],i[A>>2]=i[g+512>>2],i[A+4>>2]=w,w=i[I+44>>2],i[g+120>>2]=i[I+40>>2],i[g+124>>2]=w,w=i[I+36>>2],i[g+112>>2]=i[I+32>>2],i[g+116>>2]=w,w=i[I+60>>2],i[g+104>>2]=i[I+56>>2],i[g+108>>2]=w,w=i[I+52>>2],i[g+96>>2]=i[I+48>>2],i[g+100>>2]=w,AI(k,g+112|0,g+96|0),w=i[g+524>>2],i[I+56>>2]=i[g+520>>2],i[I+60>>2]=w,w=i[g+516>>2],i[I+48>>2]=i[g+512>>2],i[I+52>>2]=w,w=i[I+28>>2],i[g+88>>2]=i[I+24>>2],i[g+92>>2]=w,w=i[I+20>>2],i[g+80>>2]=i[I+16>>2],i[g+84>>2]=w,w=i[I+44>>2],i[g+72>>2]=i[I+40>>2],i[g+76>>2]=w,w=i[I+36>>2],i[g+64>>2]=i[I+32>>2],i[g+68>>2]=w,AI(k,g+80|0,g- -64|0),w=i[g+524>>2],i[I+40>>2]=i[g+520>>2],i[I+44>>2]=w,w=i[g+516>>2],i[I+32>>2]=i[g+512>>2],i[I+36>>2]=w,w=i[I+12>>2],i[g+56>>2]=i[I+8>>2],i[g+60>>2]=w,w=i[I+4>>2],i[g+48>>2]=i[I>>2],i[g+52>>2]=w,w=i[I+28>>2],i[g+40>>2]=i[I+24>>2],i[g+44>>2]=w,w=i[I+20>>2],i[g+32>>2]=i[I+16>>2],i[g+36>>2]=w,AI(k,g+48|0,g+32|0),w=i[g+524>>2],i[I+24>>2]=i[g+520>>2],i[I+28>>2]=w,w=i[g+516>>2],i[I+16>>2]=i[g+512>>2],i[I+20>>2]=w,w=i[g+540>>2],i[g+24>>2]=i[g+536>>2],i[g+28>>2]=w,w=i[g+532>>2],i[g+16>>2]=i[g+528>>2],i[g+20>>2]=w,w=i[I+12>>2],i[g+8>>2]=i[I+8>>2],i[g+12>>2]=w,w=i[I+4>>2],i[g>>2]=i[I>>2],i[g+4>>2]=w,AI(k,g+16|0,g),k=i[g+524>>2],i[I+8>>2]=i[g+520>>2],i[I+12>>2]=k,k=i[g+516>>2],i[I>>2]=i[g+512>>2],i[I+4>>2]=k,i[I+12>>2]=(o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)^t,i[I+8>>2]=(o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24)^c,i[I+4>>2]=(o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)^_,i[I>>2]=(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24)^a,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^E,i[I+68>>2]=(o[I+68|0]|o[I+69|0]<<8|o[I+70|0]<<16|o[I+71|0]<<24)^Q,i[I+72>>2]=(o[I+72|0]|o[I+73|0]<<8|o[I+74|0]<<16|o[I+75|0]<<24)^B,i[I+76>>2]=(o[I+76|0]|o[I+77|0]<<8|o[I+78|0]<<16|o[I+79|0]<<24)^C,s=g+544|0}function Y(A,I,g,B,Q){var E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0;for(s=E=s-288|0,D=(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24)^B>>>29,f=(o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24)^B<<3,p=(o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24)^g>>>29,B=(o[0|(c=Q+32|0)]|o[c+1|0]<<8|o[c+2|0]<<16|o[c+3|0]<<24)^g<<3,y=Q+16|0,r=Q+48|0,_=Q- -64|0,e=Q+80|0,a=Q+96|0,t=Q+112|0;g=i[t+12>>2],i[E+280>>2]=i[t+8>>2],i[E+284>>2]=g,g=i[t+4>>2],i[E+272>>2]=i[t>>2],i[E+276>>2]=g,g=i[a+12>>2],i[E+248>>2]=i[a+8>>2],i[E+252>>2]=g,g=i[a+4>>2],i[E+240>>2]=i[a>>2],i[E+244>>2]=g,g=i[t+12>>2],i[E+232>>2]=i[t+8>>2],i[E+236>>2]=g,g=i[t+4>>2],i[E+224>>2]=i[t>>2],i[E+228>>2]=g,AI(h=E+256|0,E+240|0,E+224|0),g=i[E+268>>2],i[t+8>>2]=i[E+264>>2],i[t+12>>2]=g,g=i[E+260>>2],i[t>>2]=i[E+256>>2],i[t+4>>2]=g,g=i[e+12>>2],i[E+216>>2]=i[e+8>>2],i[E+220>>2]=g,g=i[e+4>>2],i[E+208>>2]=i[e>>2],i[E+212>>2]=g,g=i[a+12>>2],i[E+200>>2]=i[a+8>>2],i[E+204>>2]=g,g=i[a+4>>2],i[E+192>>2]=i[a>>2],i[E+196>>2]=g,AI(h,E+208|0,E+192|0),g=i[E+268>>2],i[a+8>>2]=i[E+264>>2],i[a+12>>2]=g,g=i[E+260>>2],i[a>>2]=i[E+256>>2],i[a+4>>2]=g,g=i[_+12>>2],i[E+184>>2]=i[_+8>>2],i[E+188>>2]=g,g=i[_+4>>2],i[E+176>>2]=i[_>>2],i[E+180>>2]=g,g=i[e+12>>2],i[E+168>>2]=i[e+8>>2],i[E+172>>2]=g,g=i[e+4>>2],i[E+160>>2]=i[e>>2],i[E+164>>2]=g,AI(h,E+176|0,E+160|0),g=i[E+268>>2],i[e+8>>2]=i[E+264>>2],i[e+12>>2]=g,g=i[E+260>>2],i[e>>2]=i[E+256>>2],i[e+4>>2]=g,g=i[r+12>>2],i[E+152>>2]=i[r+8>>2],i[E+156>>2]=g,g=i[r+4>>2],i[E+144>>2]=i[r>>2],i[E+148>>2]=g,g=i[_+12>>2],i[E+136>>2]=i[_+8>>2],i[E+140>>2]=g,g=i[_+4>>2],i[E+128>>2]=i[_>>2],i[E+132>>2]=g,AI(h,E+144|0,E+128|0),g=i[E+268>>2],i[_+8>>2]=i[E+264>>2],i[_+12>>2]=g,g=i[E+260>>2],i[_>>2]=i[E+256>>2],i[_+4>>2]=g,g=i[c+12>>2],i[E+120>>2]=i[c+8>>2],i[E+124>>2]=g,g=i[c+4>>2],i[E+112>>2]=i[c>>2],i[E+116>>2]=g,g=i[r+12>>2],i[E+104>>2]=i[r+8>>2],i[E+108>>2]=g,g=i[r+4>>2],i[E+96>>2]=i[r>>2],i[E+100>>2]=g,AI(h,E+112|0,E+96|0),g=i[E+268>>2],i[r+8>>2]=i[E+264>>2],i[r+12>>2]=g,g=i[E+260>>2],i[r>>2]=i[E+256>>2],i[r+4>>2]=g,g=i[y+12>>2],i[E+88>>2]=i[y+8>>2],i[E+92>>2]=g,g=i[y+4>>2],i[E+80>>2]=i[y>>2],i[E+84>>2]=g,g=i[c+12>>2],i[E+72>>2]=i[c+8>>2],i[E+76>>2]=g,g=i[c+4>>2],i[E+64>>2]=i[c>>2],i[E+68>>2]=g,AI(h,E+80|0,E- -64|0),g=i[E+268>>2],i[c+8>>2]=i[E+264>>2],i[c+12>>2]=g,g=i[E+260>>2],i[c>>2]=i[E+256>>2],i[c+4>>2]=g,g=i[Q+12>>2],i[E+56>>2]=i[Q+8>>2],i[E+60>>2]=g,g=i[Q+4>>2],i[E+48>>2]=i[Q>>2],i[E+52>>2]=g,g=i[y+12>>2],i[E+40>>2]=i[y+8>>2],i[E+44>>2]=g,g=i[y+4>>2],i[E+32>>2]=i[y>>2],i[E+36>>2]=g,AI(h,E+48|0,E+32|0),g=i[E+268>>2],i[y+8>>2]=i[E+264>>2],i[y+12>>2]=g,g=i[E+260>>2],i[y>>2]=i[E+256>>2],i[y+4>>2]=g,g=i[E+284>>2],i[E+24>>2]=i[E+280>>2],i[E+28>>2]=g,g=i[E+276>>2],i[E+16>>2]=i[E+272>>2],i[E+20>>2]=g,g=i[Q+12>>2],i[E+8>>2]=i[Q+8>>2],i[E+12>>2]=g,g=i[Q+4>>2],i[E>>2]=i[Q>>2],i[E+4>>2]=g,AI(h,E+16|0,E),g=i[E+268>>2],i[Q+8>>2]=i[E+264>>2],i[Q+12>>2]=g,g=i[E+260>>2],i[Q>>2]=i[E+256>>2],i[Q+4>>2]=g,n=D^(o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24),i[Q+12>>2]=n,k=f^(o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24),i[Q+8>>2]=k,F=p^(o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24),i[Q+4>>2]=F,S=B^(o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),i[Q>>2]=S,N=B^(o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24),i[_>>2]=N,G=p^(o[Q+68|0]|o[Q+69|0]<<8|o[Q+70|0]<<16|o[Q+71|0]<<24),i[Q+68>>2]=G,M=f^(o[Q+72|0]|o[Q+73|0]<<8|o[Q+74|0]<<16|o[Q+75|0]<<24),i[Q+72>>2]=M,K=D^(o[Q+76|0]|o[Q+77|0]<<8|o[Q+78|0]<<16|o[Q+79|0]<<24),i[Q+76>>2]=K,7!=(0|(w=w+1|0)););A:{I:{g:{if(g=I-16|0){if(16==(0|g))break g;break I}_=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,c=o[Q+48|0]|o[Q+49|0]<<8|o[Q+50|0]<<16|o[Q+51|0]<<24,y=o[Q+32|0]|o[Q+33|0]<<8|o[Q+34|0]<<16|o[Q+35|0]<<24,r=o[Q+96|0]|o[Q+97|0]<<8|o[Q+98|0]<<16|o[Q+99|0]<<24,e=o[Q+80|0]|o[Q+81|0]<<8|o[Q+82|0]<<16|o[Q+83|0]<<24,a=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,t=o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24,h=o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24,D=o[Q+100|0]|o[Q+101|0]<<8|o[Q+102|0]<<16|o[Q+103|0]<<24,f=o[Q+84|0]|o[Q+85|0]<<8|o[Q+86|0]<<16|o[Q+87|0]<<24,p=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,w=o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24,B=o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24,g=o[Q+104|0]|o[Q+105|0]<<8|o[Q+106|0]<<16|o[Q+107|0]<<24,I=o[Q+88|0]|o[Q+89|0]<<8|o[Q+90|0]<<16|o[Q+91|0]<<24,Q=n^(o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24)^(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24)^(o[Q+92|0]|o[Q+93|0]<<8|o[Q+94|0]<<16|o[Q+95|0]<<24)^(o[Q+108|0]|o[Q+109|0]<<8|o[Q+110|0]<<16|o[Q+111|0]<<24)^K,C[A+12|0]=Q,C[A+13|0]=Q>>>8,C[A+14|0]=Q>>>16,C[A+15|0]=Q>>>24,I=p^w^B^I^g^M^k,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=a^t^h^D^f^G^F,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=_^c^y^r^e^N^S,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24;break A}t=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,h=o[Q+48|0]|o[Q+49|0]<<8|o[Q+50|0]<<16|o[Q+51|0]<<24,D=o[Q+32|0]|o[Q+33|0]<<8|o[Q+34|0]<<16|o[Q+35|0]<<24,f=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,p=o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24,w=o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24,B=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,g=o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24,I=o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24,a=n^(o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24)^(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24),C[A+12|0]=a,C[A+13|0]=a>>>8,C[A+14|0]=a>>>16,C[A+15|0]=a>>>24,I=B^I^g^k,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=f^p^w^F,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=t^h^D^S,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,r=o[Q+80|0]|o[Q+81|0]<<8|o[Q+82|0]<<16|o[Q+83|0]<<24,e=o[0|(I=Q- -64|0)]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,a=o[Q+112|0]|o[Q+113|0]<<8|o[Q+114|0]<<16|o[Q+115|0]<<24,t=o[Q+96|0]|o[Q+97|0]<<8|o[Q+98|0]<<16|o[Q+99|0]<<24,h=o[Q+84|0]|o[Q+85|0]<<8|o[Q+86|0]<<16|o[Q+87|0]<<24,D=o[Q+68|0]|o[Q+69|0]<<8|o[Q+70|0]<<16|o[Q+71|0]<<24,f=o[Q+116|0]|o[Q+117|0]<<8|o[Q+118|0]<<16|o[Q+119|0]<<24,p=o[Q+100|0]|o[Q+101|0]<<8|o[Q+102|0]<<16|o[Q+103|0]<<24,w=o[Q+88|0]|o[Q+89|0]<<8|o[Q+90|0]<<16|o[Q+91|0]<<24,B=o[Q+72|0]|o[Q+73|0]<<8|o[Q+74|0]<<16|o[Q+75|0]<<24,g=o[Q+120|0]|o[Q+121|0]<<8|o[Q+122|0]<<16|o[Q+123|0]<<24,I=o[Q+104|0]|o[Q+105|0]<<8|o[Q+106|0]<<16|o[Q+107|0]<<24,Q=(o[Q+92|0]|o[Q+93|0]<<8|o[Q+94|0]<<16|o[Q+95|0]<<24)^(o[Q+76|0]|o[Q+77|0]<<8|o[Q+78|0]<<16|o[Q+79|0]<<24)^(o[Q+124|0]|o[Q+125|0]<<8|o[Q+126|0]<<16|o[Q+127|0]<<24)^(o[Q+108|0]|o[Q+109|0]<<8|o[Q+110|0]<<16|o[Q+111|0]<<24),C[A+28|0]=Q,C[A+29|0]=Q>>>8,C[A+30|0]=Q>>>16,C[A+31|0]=Q>>>24,I=w^B^I^g,C[A+24|0]=I,C[A+25|0]=I>>>8,C[A+26|0]=I>>>16,C[A+27|0]=I>>>24,I=h^D^f^p,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=r^e^a^t,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24;break A}bg(A,0,I)}s=E+288|0}function J(A,I,g,C){var B=0,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0;for(B=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,i[g>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[g+4>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,i[g+8>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[g+12>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[g+16>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[g+20>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[g+24>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[g+28>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+32|0]|o[I+33|0]<<8|o[I+34|0]<<16|o[I+35|0]<<24,i[g+32>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+36|0]|o[I+37|0]<<8|o[I+38|0]<<16|o[I+39|0]<<24,i[g+36>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+40|0]|o[I+41|0]<<8|o[I+42|0]<<16|o[I+43|0]<<24,i[g+40>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+44|0]|o[I+45|0]<<8|o[I+46|0]<<16|o[I+47|0]<<24,i[g+44>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+48|0]|o[I+49|0]<<8|o[I+50|0]<<16|o[I+51|0]<<24,i[g+48>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+52|0]|o[I+53|0]<<8|o[I+54|0]<<16|o[I+55|0]<<24,i[g+52>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+56|0]|o[I+57|0]<<8|o[I+58|0]<<16|o[I+59|0]<<24,i[g+56>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,I=o[I+60|0]|o[I+61|0]<<8|o[I+62|0]<<16|o[I+63|0]<<24,i[g+60>>2]=I<<24|(65280&I)<<8|I>>>8&65280|I>>>24,I=i[A+28>>2],i[C+24>>2]=i[A+24>>2],i[C+28>>2]=I,I=i[A+20>>2],i[C+16>>2]=i[A+16>>2],i[C+20>>2]=I,I=i[A+12>>2],i[C+8>>2]=i[A+8>>2],i[C+12>>2]=I,I=i[A+4>>2],i[C>>2]=i[A>>2],i[C+4>>2]=I;_=i[C+28>>2],B=(I=n<<2)+g|0,E=i[C+16>>2],c=i[B>>2]+(Lg(E,26)^Lg(E,21)^Lg(E,7))|0,r=(_=((Q=i[I+35264>>2]+c|0)+(E&((c=i[C+24>>2])^(e=i[C+20>>2]))^c)|0)+_|0)+i[C+12>>2]|0,i[C+12>>2]=r,_=(s=_+(Lg(t=i[C>>2],30)^Lg(t,19)^Lg(t,10))|0)+(t&((Q=i[C+8>>2])|(a=i[C+4>>2]))|Q&a)|0,i[C+28>>2]=_,Q=(s=Q)+(c=(i[(D=(Q=4|I)+g|0)>>2]+((c+(e^r&(E^e))|0)+(Lg(r,26)^Lg(r,21)^Lg(r,7))|0)|0)+i[Q+35264>>2]|0)|0,i[C+8>>2]=Q,c=(c+(_&(a|t)|a&t)|0)+(Lg(_,30)^Lg(_,19)^Lg(_,10))|0,i[C+24>>2]=c,e=(s=a)+(a=(((e+i[(w=(a=8|I)+g|0)>>2]|0)+i[a+35264>>2]|0)+(E^Q&(E^r))|0)+(Lg(Q,26)^Lg(Q,21)^Lg(Q,7))|0)|0,i[C+4>>2]=e,a=a+((c&(_|t)|_&t)+(Lg(c,30)^Lg(c,19)^Lg(c,10))|0)|0,i[C+20>>2]=a,E=(s=t)+(t=(((E+i[(k=(t=12|I)+g|0)>>2]|0)+i[t+35264>>2]|0)+(r^e&(Q^r))|0)+(Lg(e,26)^Lg(e,21)^Lg(e,7))|0)|0,i[C>>2]=E,t=t+((a&(_|c)|_&c)+(Lg(a,30)^Lg(a,19)^Lg(a,10))|0)|0,i[C+16>>2]=t,r=(y=((((s=r)+i[(F=(r=16|I)+g|0)>>2]|0)+i[r+35264>>2]|0)+(Q^E&(Q^e))|0)+(Lg(E,26)^Lg(E,21)^Lg(E,7))|0)+((t&(a|c)|a&c)+(Lg(t,30)^Lg(t,19)^Lg(t,10))|0)|0,i[C+12>>2]=r,y=_+y|0,i[C+28>>2]=y,_=(Q=(((Q+i[(S=(_=20|I)+g|0)>>2]|0)+i[_+35264>>2]|0)+(e^y&(E^e))|0)+(Lg(y,26)^Lg(y,21)^Lg(y,7))|0)+((r&(a|t)|a&t)+(Lg(r,30)^Lg(r,19)^Lg(r,10))|0)|0,i[C+8>>2]=_,Q=Q+c|0,i[C+24>>2]=Q,c=(e=(((e+i[(N=(c=24|I)+g|0)>>2]|0)+i[c+35264>>2]|0)+(E^Q&(E^y))|0)+(Lg(Q,26)^Lg(Q,21)^Lg(Q,7))|0)+((_&(t|r)|t&r)+(Lg(_,30)^Lg(_,19)^Lg(_,10))|0)|0,i[C+4>>2]=c,e=a+e|0,i[C+20>>2]=e,a=(E=(((E+i[(G=(a=28|I)+g|0)>>2]|0)+i[a+35264>>2]|0)+(y^e&(Q^y))|0)+(Lg(e,26)^Lg(e,21)^Lg(e,7))|0)+((c&(_|r)|_&r)+(Lg(c,30)^Lg(c,19)^Lg(c,10))|0)|0,i[C>>2]=a,E=E+t|0,i[C+16>>2]=E,t=(y=(((y+i[(M=(t=32|I)+g|0)>>2]|0)+i[t+35264>>2]|0)+(Q^E&(Q^e))|0)+(Lg(E,26)^Lg(E,21)^Lg(E,7))|0)+((a&(_|c)|_&c)+(Lg(a,30)^Lg(a,19)^Lg(a,10))|0)|0,i[C+28>>2]=t,y=r+y|0,i[C+12>>2]=y,r=(Q=(((Q+i[(K=(r=36|I)+g|0)>>2]|0)+i[r+35264>>2]|0)+(e^y&(E^e))|0)+(Lg(y,26)^Lg(y,21)^Lg(y,7))|0)+((t&(a|c)|a&c)+(Lg(t,30)^Lg(t,19)^Lg(t,10))|0)|0,i[C+24>>2]=r,Q=Q+_|0,i[C+8>>2]=Q,_=(e=(((e+i[(U=(_=40|I)+g|0)>>2]|0)+i[_+35264>>2]|0)+(E^Q&(E^y))|0)+(Lg(Q,26)^Lg(Q,21)^Lg(Q,7))|0)+((r&(a|t)|a&t)+(Lg(r,30)^Lg(r,19)^Lg(r,10))|0)|0,i[C+20>>2]=_,e=c+e|0,i[C+4>>2]=e,s=(c=44|I)+g|0,c=(E=((E+(i[c+35264>>2]+i[s>>2]|0)|0)+(y^e&(Q^y))|0)+(Lg(e,26)^Lg(e,21)^Lg(e,7))|0)+((_&(t|r)|t&r)+(Lg(_,30)^Lg(_,19)^Lg(_,10))|0)|0,i[C+16>>2]=c,a=a+E|0,i[C>>2]=a,p=(E=48|I)+g|0,E=(y=((y+(i[E+35264>>2]+i[p>>2]|0)|0)+(Q^a&(Q^e))|0)+(Lg(a,26)^Lg(a,21)^Lg(a,7))|0)+((c&(_|r)|_&r)+(Lg(c,30)^Lg(c,19)^Lg(c,10))|0)|0,i[C+12>>2]=E,t=t+y|0,i[C+28>>2]=t,f=(y=52|I)+g|0,Q=(y=(((i[y+35264>>2]+i[f>>2]|0)+Q|0)+(e^t&(a^e))|0)+(Lg(t,26)^Lg(t,21)^Lg(t,7))|0)+((E&(_|c)|_&c)+(Lg(E,30)^Lg(E,19)^Lg(E,10))|0)|0,i[C+8>>2]=Q,r=r+y|0,i[C+24>>2]=r,y=(h=56|I)+g|0,e=(h=(((i[h+35264>>2]+i[y>>2]|0)+e|0)+(a^r&(a^t))|0)+(Lg(r,26)^Lg(r,21)^Lg(r,7))|0)+((Q&(c|E)|c&E)+(Lg(Q,30)^Lg(Q,19)^Lg(Q,10))|0)|0,i[C+4>>2]=e,_=_+h|0,i[C+20>>2]=_,h=(I|=60)+g|0,_=(I=((a+(i[I+35264>>2]+i[h>>2]|0)|0)+(t^_&(t^r))|0)+(Lg(_,26)^Lg(_,21)^Lg(_,7))|0)+((e&(Q|E)|Q&E)+(Lg(e,30)^Lg(e,19)^Lg(e,10))|0)|0,i[C>>2]=_,i[C+16>>2]=I+c,48!=(0|n);)a=i[K>>2],n=n+16|0,I=i[y>>2],_=(Q=i[B>>2]+(a+(Lg(I,15)^Lg(I,13)^I>>>10)|0)|0)+(Lg(c=i[D>>2],25)^Lg(c,14)^c>>>3)|0,i[(n<<2)+g>>2]=_,r=(E=(Q=(t=i[U>>2])+c|0)+(Lg(c=i[h>>2],15)^Lg(c,13)^c>>>10)|0)+(Lg(Q=i[w>>2],25)^Lg(Q,14)^Q>>>3)|0,i[B+68>>2]=r,e=(s=((E=Q)+(Q=i[s>>2])|0)+(Lg(_,15)^Lg(_,13)^_>>>10)|0)+(Lg(E=i[k>>2],25)^Lg(E,14)^E>>>3)|0,i[B+72>>2]=e,y=(h=((s=E)+(E=i[p>>2])|0)+(Lg(r,15)^Lg(r,13)^r>>>10)|0)+(Lg(s=i[F>>2],25)^Lg(s,14)^s>>>3)|0,i[B+76>>2]=y,p=(h=((h=s)+(s=i[f>>2])|0)+(Lg(e,15)^Lg(e,13)^e>>>10)|0)+(Lg(f=i[S>>2],25)^Lg(f,14)^f>>>3)|0,i[B+80>>2]=p,f=(D=(I+f|0)+(Lg(y,15)^Lg(y,13)^y>>>10)|0)+(Lg(h=i[N>>2],25)^Lg(h,14)^h>>>3)|0,i[B+84>>2]=f,h=((c+h|0)+(Lg(w=i[G>>2],25)^Lg(w,14)^w>>>3)|0)+(Lg(p,15)^Lg(p,13)^p>>>10)|0,i[B+88>>2]=h,r=((D=i[M>>2])+(r+(Lg(a,25)^Lg(a,14)^a>>>3)|0)|0)+(Lg(h,15)^Lg(h,13)^h>>>10)|0,i[B+96>>2]=r,D=((_+w|0)+(Lg(D,25)^Lg(D,14)^D>>>3)|0)+(Lg(f,15)^Lg(f,13)^f>>>10)|0,i[B+92>>2]=D,y=(y+(t+(Lg(Q,25)^Lg(Q,14)^Q>>>3)|0)|0)+(Lg(r,15)^Lg(r,13)^r>>>10)|0,i[B+104>>2]=y,a=(e+(a+(Lg(t,25)^Lg(t,14)^t>>>3)|0)|0)+(Lg(D,15)^Lg(D,13)^D>>>10)|0,i[B+100>>2]=a,t=(f+(E+(Lg(s,25)^Lg(s,14)^s>>>3)|0)|0)+(Lg(y,15)^Lg(y,13)^y>>>10)|0,i[B+112>>2]=t,a=(p+(Q+(Lg(E,25)^Lg(E,14)^E>>>3)|0)|0)+(Lg(a,15)^Lg(a,13)^a>>>10)|0,i[B+108>>2]=a,b=B,H=(D+(I+(Lg(c,25)^Lg(c,14)^c>>>3)|0)|0)+(Lg(t,15)^Lg(t,13)^t>>>10)|0,i[b+120>>2]=H,I=(h+(s+(Lg(I,25)^Lg(I,14)^I>>>3)|0)|0)+(Lg(a,15)^Lg(a,13)^a>>>10)|0,i[B+116>>2]=I,b=B,H=(r+(c+(Lg(_,25)^Lg(_,14)^_>>>3)|0)|0)+(Lg(I,15)^Lg(I,13)^I>>>10)|0,i[b+124>>2]=H;i[A>>2]=_+i[A>>2],i[A+4>>2]=i[A+4>>2]+i[C+4>>2],i[A+8>>2]=i[A+8>>2]+i[C+8>>2],i[A+12>>2]=i[A+12>>2]+i[C+12>>2],i[A+16>>2]=i[A+16>>2]+i[C+16>>2],i[A+20>>2]=i[A+20>>2]+i[C+20>>2],i[A+24>>2]=i[A+24>>2]+i[C+24>>2],i[A+28>>2]=i[A+28>>2]+i[C+28>>2]}function d(A,I,g){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S,N,G,M,K,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0;s=B=s-288|0,t=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,r=o[g+48|0]|o[g+49|0]<<8|o[g+50|0]<<16|o[g+51|0]<<24,e=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,y=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,h=o[g+52|0]|o[g+53|0]<<8|o[g+54|0]<<16|o[g+55|0]<<24,D=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,f=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,p=o[g+56|0]|o[g+57|0]<<8|o[g+58|0]<<16|o[g+59|0]<<24,J=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,w=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,n=o[g+60|0]|o[g+61|0]<<8|o[g+62|0]<<16|o[g+63|0]<<24,b=o[g+32|0]|o[g+33|0]<<8|o[g+34|0]<<16|o[g+35|0]<<24,d=o[g+80|0]|o[g+81|0]<<8|o[g+82|0]<<16|o[g+83|0]<<24,k=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,F=o[g+112|0]|o[g+113|0]<<8|o[g+114|0]<<16|o[g+115|0]<<24,U=o[g+96|0]|o[g+97|0]<<8|o[g+98|0]<<16|o[g+99|0]<<24,H=o[g+36|0]|o[g+37|0]<<8|o[g+38|0]<<16|o[g+39|0]<<24,m=o[g+84|0]|o[g+85|0]<<8|o[g+86|0]<<16|o[g+87|0]<<24,S=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,N=o[g+116|0]|o[g+117|0]<<8|o[g+118|0]<<16|o[g+119|0]<<24,E=o[g+100|0]|o[g+101|0]<<8|o[g+102|0]<<16|o[g+103|0]<<24,Y=o[g+40|0]|o[g+41|0]<<8|o[g+42|0]<<16|o[g+43|0]<<24,l=o[g+88|0]|o[g+89|0]<<8|o[g+90|0]<<16|o[g+91|0]<<24,G=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,M=o[g+120|0]|o[g+121|0]<<8|o[g+122|0]<<16|o[g+123|0]<<24,a=o[g+104|0]|o[g+105|0]<<8|o[g+106|0]<<16|o[g+107|0]<<24,K=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,Q=(_=o[g+44|0]|o[g+45|0]<<8|o[g+46|0]<<16|o[g+47|0]<<24)^(c=o[g+108|0]|o[g+109|0]<<8|o[g+110|0]<<16|o[g+111|0]<<24)&(o[g+124|0]|o[g+125|0]<<8|o[g+126|0]<<16|o[g+127|0]<<24)^(o[g+92|0]|o[g+93|0]<<8|o[g+94|0]<<16|o[g+95|0]<<24)^(o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24),C[A+28|0]=Q,C[A+29|0]=Q>>>8,C[A+30|0]=Q>>>16,C[A+31|0]=Q>>>24,l=Y^a&M^l^G,C[A+24|0]=l,C[A+25|0]=l>>>8,C[A+26|0]=l>>>16,C[A+27|0]=l>>>24,m=H^E&N^m^S,C[A+20|0]=m,C[A+21|0]=m>>>8,C[A+22|0]=m>>>16,C[A+23|0]=m>>>24,d=b^U&F^d^k,C[A+16|0]=d,C[A+17|0]=d>>>8,C[A+18|0]=d>>>16,C[A+19|0]=d>>>24,J=n&_^J^w^c,C[A+12|0]=J,C[A+13|0]=J>>>8,C[A+14|0]=J>>>16,C[A+15|0]=J>>>24,Y=Y&p^D^f^a,C[A+8|0]=Y,C[A+9|0]=Y>>>8,C[A+10|0]=Y>>>16,C[A+11|0]=Y>>>24,H=H&h^e^y^E,C[A+4|0]=H,C[A+5|0]=H>>>8,C[A+6|0]=H>>>16,C[A+7|0]=H>>>24,b=U^b&r^t^K,C[0|A]=b,C[A+1|0]=b>>>8,C[A+2|0]=b>>>16,C[A+3|0]=b>>>24,A=i[g+124>>2],i[B+280>>2]=i[g+120>>2],i[B+284>>2]=A,A=i[g+116>>2],i[B+272>>2]=i[g+112>>2],i[B+276>>2]=A,A=i[g+108>>2],i[B+248>>2]=i[g+104>>2],i[B+252>>2]=A,A=i[g+100>>2],i[B+240>>2]=i[g+96>>2],i[B+244>>2]=A,A=i[g+124>>2],i[B+232>>2]=i[g+120>>2],i[B+236>>2]=A,A=i[g+116>>2],i[B+224>>2]=i[g+112>>2],i[B+228>>2]=A,AI(I=B+256|0,B+240|0,B+224|0),A=i[B+268>>2],i[g+120>>2]=i[B+264>>2],i[g+124>>2]=A,A=i[B+260>>2],i[g+112>>2]=i[B+256>>2],i[g+116>>2]=A,A=i[g+92>>2],i[B+216>>2]=i[g+88>>2],i[B+220>>2]=A,A=i[g+84>>2],i[B+208>>2]=i[g+80>>2],i[B+212>>2]=A,A=i[g+108>>2],i[B+200>>2]=i[g+104>>2],i[B+204>>2]=A,A=i[g+100>>2],i[B+192>>2]=i[g+96>>2],i[B+196>>2]=A,AI(I,B+208|0,B+192|0),A=i[B+268>>2],i[g+104>>2]=i[B+264>>2],i[g+108>>2]=A,A=i[B+260>>2],i[g+96>>2]=i[B+256>>2],i[g+100>>2]=A,A=i[g+76>>2],i[B+184>>2]=i[g+72>>2],i[B+188>>2]=A,U=i[4+(A=g- -64|0)>>2],i[B+176>>2]=i[A>>2],i[B+180>>2]=U,U=i[g+92>>2],i[B+168>>2]=i[g+88>>2],i[B+172>>2]=U,U=i[g+84>>2],i[B+160>>2]=i[g+80>>2],i[B+164>>2]=U,AI(I,B+176|0,B+160|0),U=i[B+268>>2],i[g+88>>2]=i[B+264>>2],i[g+92>>2]=U,U=i[B+260>>2],i[g+80>>2]=i[B+256>>2],i[g+84>>2]=U,U=i[g+60>>2],i[B+152>>2]=i[g+56>>2],i[B+156>>2]=U,U=i[g+52>>2],i[B+144>>2]=i[g+48>>2],i[B+148>>2]=U,U=i[g+76>>2],i[B+136>>2]=i[g+72>>2],i[B+140>>2]=U,U=i[A+4>>2],i[B+128>>2]=i[A>>2],i[B+132>>2]=U,AI(I,B+144|0,B+128|0),U=i[B+268>>2],i[g+72>>2]=i[B+264>>2],i[g+76>>2]=U,U=i[B+260>>2],i[A>>2]=i[B+256>>2],i[A+4>>2]=U,U=i[g+44>>2],i[B+120>>2]=i[g+40>>2],i[B+124>>2]=U,U=i[g+36>>2],i[B+112>>2]=i[g+32>>2],i[B+116>>2]=U,U=i[g+60>>2],i[B+104>>2]=i[g+56>>2],i[B+108>>2]=U,U=i[g+52>>2],i[B+96>>2]=i[g+48>>2],i[B+100>>2]=U,AI(I,B+112|0,B+96|0),U=i[B+268>>2],i[g+56>>2]=i[B+264>>2],i[g+60>>2]=U,U=i[B+260>>2],i[g+48>>2]=i[B+256>>2],i[g+52>>2]=U,U=i[g+28>>2],i[B+88>>2]=i[g+24>>2],i[B+92>>2]=U,U=i[g+20>>2],i[B+80>>2]=i[g+16>>2],i[B+84>>2]=U,U=i[g+44>>2],i[B+72>>2]=i[g+40>>2],i[B+76>>2]=U,U=i[g+36>>2],i[B+64>>2]=i[g+32>>2],i[B+68>>2]=U,AI(I,B+80|0,B- -64|0),U=i[B+268>>2],i[g+40>>2]=i[B+264>>2],i[g+44>>2]=U,U=i[B+260>>2],i[g+32>>2]=i[B+256>>2],i[g+36>>2]=U,U=i[g+12>>2],i[B+56>>2]=i[g+8>>2],i[B+60>>2]=U,U=i[g+4>>2],i[B+48>>2]=i[g>>2],i[B+52>>2]=U,U=i[g+28>>2],i[B+40>>2]=i[g+24>>2],i[B+44>>2]=U,U=i[g+20>>2],i[B+32>>2]=i[g+16>>2],i[B+36>>2]=U,AI(I,B+48|0,B+32|0),U=i[B+268>>2],i[g+24>>2]=i[B+264>>2],i[g+28>>2]=U,U=i[B+260>>2],i[g+16>>2]=i[B+256>>2],i[g+20>>2]=U,U=i[B+284>>2],i[B+24>>2]=i[B+280>>2],i[B+28>>2]=U,U=i[B+276>>2],i[B+16>>2]=i[B+272>>2],i[B+20>>2]=U,U=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=U,U=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=U,AI(I,B+16|0,B),I=i[B+268>>2],i[g+8>>2]=i[B+264>>2],i[g+12>>2]=I,I=i[B+260>>2],i[g>>2]=i[B+256>>2],i[g+4>>2]=I,i[g+12>>2]=J^(o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24),i[g+8>>2]=Y^(o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24),i[g+4>>2]=H^(o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24),i[g>>2]=b^(o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24),i[A>>2]=d^(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24),i[g+68>>2]=m^(o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24),i[g+72>>2]=l^(o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24),i[g+76>>2]=Q^(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24),s=B+288|0}function m(A,I,g){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l=0;s=B=s-288|0,k=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,F=o[g+48|0]|o[g+49|0]<<8|o[g+50|0]<<16|o[g+51|0]<<24,Q=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,S=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,N=o[g+52|0]|o[g+53|0]<<8|o[g+54|0]<<16|o[g+55|0]<<24,E=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,G=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,M=o[g+56|0]|o[g+57|0]<<8|o[g+58|0]<<16|o[g+59|0]<<24,a=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,K=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,U=o[g+60|0]|o[g+61|0]<<8|o[g+62|0]<<16|o[g+63|0]<<24,l=o[g+32|0]|o[g+33|0]<<8|o[g+34|0]<<16|o[g+35|0]<<24,_=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,b=o[g+80|0]|o[g+81|0]<<8|o[g+82|0]<<16|o[g+83|0]<<24,H=o[g+112|0]|o[g+113|0]<<8|o[g+114|0]<<16|o[g+115|0]<<24,c=o[g+96|0]|o[g+97|0]<<8|o[g+98|0]<<16|o[g+99|0]<<24,t=o[g+36|0]|o[g+37|0]<<8|o[g+38|0]<<16|o[g+39|0]<<24,r=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,Y=o[g+84|0]|o[g+85|0]<<8|o[g+86|0]<<16|o[g+87|0]<<24,J=o[g+116|0]|o[g+117|0]<<8|o[g+118|0]<<16|o[g+119|0]<<24,e=o[g+100|0]|o[g+101|0]<<8|o[g+102|0]<<16|o[g+103|0]<<24,y=o[g+40|0]|o[g+41|0]<<8|o[g+42|0]<<16|o[g+43|0]<<24,h=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,d=o[g+88|0]|o[g+89|0]<<8|o[g+90|0]<<16|o[g+91|0]<<24,m=o[g+120|0]|o[g+121|0]<<8|o[g+122|0]<<16|o[g+123|0]<<24,D=o[g+104|0]|o[g+105|0]<<8|o[g+106|0]<<16|o[g+107|0]<<24,f=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=(p=o[g+44|0]|o[g+45|0]<<8|o[g+46|0]<<16|o[g+47|0]<<24)^(w=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24)^(n=o[g+108|0]|o[g+109|0]<<8|o[g+110|0]<<16|o[g+111|0]<<24)&(o[g+124|0]|o[g+125|0]<<8|o[g+126|0]<<16|o[g+127|0]<<24)^(o[g+92|0]|o[g+93|0]<<8|o[g+94|0]<<16|o[g+95|0]<<24),C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=D&m^d^h^y,C[A+24|0]=I,C[A+25|0]=I>>>8,C[A+26|0]=I>>>16,C[A+27|0]=I>>>24,I=e&J^Y^r^t,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=l^c&H^b^_,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24,I=U&p^K^a^n,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=y&M^G^E^D,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=t&N^S^Q^e,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=l&F^k^f^c,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,A=i[g+124>>2],i[B+280>>2]=i[g+120>>2],i[B+284>>2]=A,A=i[g+116>>2],i[B+272>>2]=i[g+112>>2],i[B+276>>2]=A,A=i[g+108>>2],i[B+248>>2]=i[g+104>>2],i[B+252>>2]=A,A=i[g+100>>2],i[B+240>>2]=i[g+96>>2],i[B+244>>2]=A,A=i[g+124>>2],i[B+232>>2]=i[g+120>>2],i[B+236>>2]=A,A=i[g+116>>2],i[B+224>>2]=i[g+112>>2],i[B+228>>2]=A,AI(I=B+256|0,B+240|0,B+224|0),A=i[B+268>>2],i[g+120>>2]=i[B+264>>2],i[g+124>>2]=A,A=i[B+260>>2],i[g+112>>2]=i[B+256>>2],i[g+116>>2]=A,A=i[g+92>>2],i[B+216>>2]=i[g+88>>2],i[B+220>>2]=A,A=i[g+84>>2],i[B+208>>2]=i[g+80>>2],i[B+212>>2]=A,A=i[g+108>>2],i[B+200>>2]=i[g+104>>2],i[B+204>>2]=A,A=i[g+100>>2],i[B+192>>2]=i[g+96>>2],i[B+196>>2]=A,AI(I,B+208|0,B+192|0),A=i[B+268>>2],i[g+104>>2]=i[B+264>>2],i[g+108>>2]=A,A=i[B+260>>2],i[g+96>>2]=i[B+256>>2],i[g+100>>2]=A,A=i[g+76>>2],i[B+184>>2]=i[g+72>>2],i[B+188>>2]=A,l=i[4+(A=g- -64|0)>>2],i[B+176>>2]=i[A>>2],i[B+180>>2]=l,l=i[g+92>>2],i[B+168>>2]=i[g+88>>2],i[B+172>>2]=l,l=i[g+84>>2],i[B+160>>2]=i[g+80>>2],i[B+164>>2]=l,AI(I,B+176|0,B+160|0),l=i[B+268>>2],i[g+88>>2]=i[B+264>>2],i[g+92>>2]=l,l=i[B+260>>2],i[g+80>>2]=i[B+256>>2],i[g+84>>2]=l,l=i[g+60>>2],i[B+152>>2]=i[g+56>>2],i[B+156>>2]=l,l=i[g+52>>2],i[B+144>>2]=i[g+48>>2],i[B+148>>2]=l,l=i[g+76>>2],i[B+136>>2]=i[g+72>>2],i[B+140>>2]=l,l=i[A+4>>2],i[B+128>>2]=i[A>>2],i[B+132>>2]=l,AI(I,B+144|0,B+128|0),l=i[B+268>>2],i[g+72>>2]=i[B+264>>2],i[g+76>>2]=l,l=i[B+260>>2],i[A>>2]=i[B+256>>2],i[A+4>>2]=l,l=i[g+44>>2],i[B+120>>2]=i[g+40>>2],i[B+124>>2]=l,l=i[g+36>>2],i[B+112>>2]=i[g+32>>2],i[B+116>>2]=l,l=i[g+60>>2],i[B+104>>2]=i[g+56>>2],i[B+108>>2]=l,l=i[g+52>>2],i[B+96>>2]=i[g+48>>2],i[B+100>>2]=l,AI(I,B+112|0,B+96|0),l=i[B+268>>2],i[g+56>>2]=i[B+264>>2],i[g+60>>2]=l,l=i[B+260>>2],i[g+48>>2]=i[B+256>>2],i[g+52>>2]=l,l=i[g+28>>2],i[B+88>>2]=i[g+24>>2],i[B+92>>2]=l,l=i[g+20>>2],i[B+80>>2]=i[g+16>>2],i[B+84>>2]=l,l=i[g+44>>2],i[B+72>>2]=i[g+40>>2],i[B+76>>2]=l,l=i[g+36>>2],i[B+64>>2]=i[g+32>>2],i[B+68>>2]=l,AI(I,B+80|0,B- -64|0),l=i[B+268>>2],i[g+40>>2]=i[B+264>>2],i[g+44>>2]=l,l=i[B+260>>2],i[g+32>>2]=i[B+256>>2],i[g+36>>2]=l,l=i[g+12>>2],i[B+56>>2]=i[g+8>>2],i[B+60>>2]=l,l=i[g+4>>2],i[B+48>>2]=i[g>>2],i[B+52>>2]=l,l=i[g+28>>2],i[B+40>>2]=i[g+24>>2],i[B+44>>2]=l,l=i[g+20>>2],i[B+32>>2]=i[g+16>>2],i[B+36>>2]=l,AI(I,B+48|0,B+32|0),l=i[B+268>>2],i[g+24>>2]=i[B+264>>2],i[g+28>>2]=l,l=i[B+260>>2],i[g+16>>2]=i[B+256>>2],i[g+20>>2]=l,l=i[B+284>>2],i[B+24>>2]=i[B+280>>2],i[B+28>>2]=l,l=i[B+276>>2],i[B+16>>2]=i[B+272>>2],i[B+20>>2]=l,l=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=l,l=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=l,AI(I,B+16|0,B),I=i[B+268>>2],i[g+8>>2]=i[B+264>>2],i[g+12>>2]=I,I=i[B+260>>2],i[g>>2]=i[B+256>>2],i[g+4>>2]=I,i[g+12>>2]=(o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24)^a,i[g+8>>2]=(o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24)^E,i[g+4>>2]=(o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24)^Q,i[g>>2]=(o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24)^f,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^_,i[g+68>>2]=(o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24)^r,i[g+72>>2]=(o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24)^h,i[g+76>>2]=w^(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24),s=B+288|0}function l(A,I,g,B,Q){var E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0;for(s=E=s-224|0,f=(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^B>>>29,p=(o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24)^B<<3,e=(o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24)^g>>>29,h=(o[0|(a=Q+48|0)]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24)^g<<3,_=Q+16|0,c=Q+32|0,t=Q- -64|0,r=Q+80|0;g=i[r+12>>2],i[E+216>>2]=i[r+8>>2],i[E+220>>2]=g,g=i[r+4>>2],i[E+208>>2]=i[r>>2],i[E+212>>2]=g,g=i[t+12>>2],i[E+184>>2]=i[t+8>>2],i[E+188>>2]=g,g=i[t+4>>2],i[E+176>>2]=i[t>>2],i[E+180>>2]=g,g=i[r+12>>2],i[E+168>>2]=i[r+8>>2],i[E+172>>2]=g,g=i[r+4>>2],i[E+160>>2]=i[r>>2],i[E+164>>2]=g,AI(B=E+192|0,E+176|0,E+160|0),g=i[E+204>>2],i[r+8>>2]=i[E+200>>2],i[r+12>>2]=g,g=i[E+196>>2],i[r>>2]=i[E+192>>2],i[r+4>>2]=g,g=i[a+12>>2],i[E+152>>2]=i[a+8>>2],i[E+156>>2]=g,g=i[a+4>>2],i[E+144>>2]=i[a>>2],i[E+148>>2]=g,g=i[t+12>>2],i[E+136>>2]=i[t+8>>2],i[E+140>>2]=g,g=i[t+4>>2],i[E+128>>2]=i[t>>2],i[E+132>>2]=g,AI(B,E+144|0,E+128|0),g=i[E+204>>2],i[t+8>>2]=i[E+200>>2],i[t+12>>2]=g,g=i[E+196>>2],i[t>>2]=i[E+192>>2],i[t+4>>2]=g,g=i[c+12>>2],i[E+120>>2]=i[c+8>>2],i[E+124>>2]=g,g=i[c+4>>2],i[E+112>>2]=i[c>>2],i[E+116>>2]=g,g=i[a+12>>2],i[E+104>>2]=i[a+8>>2],i[E+108>>2]=g,g=i[a+4>>2],i[E+96>>2]=i[a>>2],i[E+100>>2]=g,AI(B,E+112|0,E+96|0),g=i[E+204>>2],i[a+8>>2]=i[E+200>>2],i[a+12>>2]=g,g=i[E+196>>2],i[a>>2]=i[E+192>>2],i[a+4>>2]=g,g=i[_+12>>2],i[E+88>>2]=i[_+8>>2],i[E+92>>2]=g,g=i[_+4>>2],i[E+80>>2]=i[_>>2],i[E+84>>2]=g,g=i[c+12>>2],i[E+72>>2]=i[c+8>>2],i[E+76>>2]=g,g=i[c+4>>2],i[E+64>>2]=i[c>>2],i[E+68>>2]=g,AI(B,E+80|0,E- -64|0),g=i[E+204>>2],i[c+8>>2]=i[E+200>>2],i[c+12>>2]=g,g=i[E+196>>2],i[c>>2]=i[E+192>>2],i[c+4>>2]=g,g=i[Q+12>>2],i[E+56>>2]=i[Q+8>>2],i[E+60>>2]=g,g=i[Q+4>>2],i[E+48>>2]=i[Q>>2],i[E+52>>2]=g,g=i[_+12>>2],i[E+40>>2]=i[_+8>>2],i[E+44>>2]=g,g=i[_+4>>2],i[E+32>>2]=i[_>>2],i[E+36>>2]=g,AI(B,E+48|0,E+32|0),g=i[E+204>>2],i[_+8>>2]=i[E+200>>2],i[_+12>>2]=g,g=i[E+196>>2],i[_>>2]=i[E+192>>2],i[_+4>>2]=g,g=i[E+220>>2],i[E+24>>2]=i[E+216>>2],i[E+28>>2]=g,g=i[E+212>>2],i[E+16>>2]=i[E+208>>2],i[E+20>>2]=g,g=i[Q+12>>2],i[E+8>>2]=i[Q+8>>2],i[E+12>>2]=g,g=i[Q+4>>2],i[E>>2]=i[Q>>2],i[E+4>>2]=g,AI(B,E+16|0,E),D=i[E+192>>2],B=i[E+196>>2],g=i[E+200>>2],w=f^i[E+204>>2],i[Q+12>>2]=w,n=g^p,i[Q+8>>2]=n,k=B^e,i[Q+4>>2]=k,F=h^D,i[Q>>2]=F,7!=(0|(y=y+1|0)););A:{I:{g:{if(g=I-16|0){if(16==(0|g))break g;break I}S=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,a=o[Q+48|0]|o[Q+49|0]<<8|o[Q+50|0]<<16|o[Q+51|0]<<24,_=o[Q+32|0]|o[Q+33|0]<<8|o[Q+34|0]<<16|o[Q+35|0]<<24,c=o[Q+80|0]|o[Q+81|0]<<8|o[Q+82|0]<<16|o[Q+83|0]<<24,t=o[0|(I=Q- -64|0)]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,r=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,f=o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24,p=o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24,e=o[Q+84|0]|o[Q+85|0]<<8|o[Q+86|0]<<16|o[Q+87|0]<<24,h=o[Q+68|0]|o[Q+69|0]<<8|o[Q+70|0]<<16|o[Q+71|0]<<24,D=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,y=o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24,B=o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24,g=o[Q+88|0]|o[Q+89|0]<<8|o[Q+90|0]<<16|o[Q+91|0]<<24,I=o[Q+72|0]|o[Q+73|0]<<8|o[Q+74|0]<<16|o[Q+75|0]<<24,Q=w^(o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24)^(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24)^(o[Q+92|0]|o[Q+93|0]<<8|o[Q+94|0]<<16|o[Q+95|0]<<24)^(o[Q+76|0]|o[Q+77|0]<<8|o[Q+78|0]<<16|o[Q+79|0]<<24),C[A+12|0]=Q,C[A+13|0]=Q>>>8,C[A+14|0]=Q>>>16,C[A+15|0]=Q>>>24,I=n^D^I^g^B^y,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=k^r^f^p^e^h,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=F^S^a^_^c^t,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24;break A}h=o[Q+32|0]|o[Q+33|0]<<8|o[Q+34|0]<<16|o[Q+35|0]<<24,D=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,y=o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24,B=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,g=o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24,I=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,e=w^(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24)^(o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24),C[A+12|0]=e,C[A+13|0]=e>>>8,C[A+14|0]=e>>>16,C[A+15|0]=e>>>24,I=n^I^g,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=k^B^y,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=F^h^D,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,f=o[Q+48|0]|o[Q+49|0]<<8|o[Q+50|0]<<16|o[Q+51|0]<<24,p=o[Q+80|0]|o[Q+81|0]<<8|o[Q+82|0]<<16|o[Q+83|0]<<24,e=o[0|(I=Q- -64|0)]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,h=o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24,D=o[Q+84|0]|o[Q+85|0]<<8|o[Q+86|0]<<16|o[Q+87|0]<<24,y=o[Q+68|0]|o[Q+69|0]<<8|o[Q+70|0]<<16|o[Q+71|0]<<24,B=o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24,g=o[Q+88|0]|o[Q+89|0]<<8|o[Q+90|0]<<16|o[Q+91|0]<<24,I=o[Q+72|0]|o[Q+73|0]<<8|o[Q+74|0]<<16|o[Q+75|0]<<24,Q=(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^(o[Q+92|0]|o[Q+93|0]<<8|o[Q+94|0]<<16|o[Q+95|0]<<24)^(o[Q+76|0]|o[Q+77|0]<<8|o[Q+78|0]<<16|o[Q+79|0]<<24),C[A+28|0]=Q,C[A+29|0]=Q>>>8,C[A+30|0]=Q>>>16,C[A+31|0]=Q>>>24,I=B^I^g,C[A+24|0]=I,C[A+25|0]=I>>>8,C[A+26|0]=I>>>16,C[A+27|0]=I>>>24,I=h^D^y,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=f^e^p,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24;break A}bg(A,0,I)}s=E+224|0}function u(A,I,g){var B,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0;for(s=B=s-4032|0,$A(B+160|0,g),_=i[g+36>>2],i[(a=B+3840|0)>>2]=i[g+32>>2],i[a+4>>2]=_,c=i[g+28>>2],i[(_=B+3832|0)>>2]=i[g+24>>2],i[_+4>>2]=c,r=i[g+20>>2],i[(c=B+3824|0)>>2]=i[g+16>>2],i[c+4>>2]=r,e=i[g+12>>2],i[(r=B+3816|0)>>2]=i[g+8>>2],i[r+4>>2]=e,e=i[g+4>>2],i[B+3808>>2]=i[g>>2],i[B+3812>>2]=e,D=i[g+52>>2],i[(e=B+3856|0)>>2]=i[g+48>>2],i[e+4>>2]=D,w=i[g+60>>2],i[(D=B+3864|0)>>2]=i[g+56>>2],i[D+4>>2]=w,y=i[4+(f=g- -64|0)>>2],i[(w=B+3872|0)>>2]=i[f>>2],i[w+4>>2]=y,y=i[g+76>>2],i[(f=B+3880|0)>>2]=i[g+72>>2],i[f+4>>2]=y,y=i[g+44>>2],i[B+3848>>2]=i[g+40>>2],i[B+3852>>2]=y,n=i[g+92>>2],i[(y=B+3896|0)>>2]=i[g+88>>2],i[y+4>>2]=n,k=i[g+100>>2],i[(n=B+3904|0)>>2]=i[g+96>>2],i[n+4>>2]=k,F=i[g+108>>2],i[(k=B+3912|0)>>2]=i[g+104>>2],i[k+4>>2]=F,S=i[g+116>>2],i[(F=B+3920|0)>>2]=i[g+112>>2],i[F+4>>2]=S,S=i[g+84>>2],i[B+3888>>2]=i[g+80>>2],i[B+3892>>2]=S,KA(Q=B+3528|0,S=B+3808|0),b(E=B+2408|0,Q,t=B+3648|0),b(B+2448|0,h=B+3568|0,p=B+3608|0),b(B+2488|0,p,t),b(B+2528|0,Q,h),$A(t=B+320|0,E),sA(Q=B+3368|0,g,t),b(E=B+2248|0,Q,t=B+3488|0),b(B+2288|0,h=B+3408|0,p=B+3448|0),b(B+2328|0,p,t),b(B+2368|0,Q,h),$A(B+480|0,E),E=i[4+(Q=B+2440|0)>>2],i[a>>2]=i[Q>>2],i[a+4>>2]=E,E=i[4+(Q=B+2432|0)>>2],i[_>>2]=i[Q>>2],i[_+4>>2]=E,E=i[4+(Q=B+2424|0)>>2],i[c>>2]=i[Q>>2],i[c+4>>2]=E,E=i[4+(Q=B+2416|0)>>2],i[r>>2]=i[Q>>2],i[r+4>>2]=E,E=i[4+(Q=B+2456|0)>>2],i[e>>2]=i[Q>>2],i[e+4>>2]=E,E=i[4+(Q=B+2464|0)>>2],i[D>>2]=i[Q>>2],i[D+4>>2]=E,E=i[4+(Q=B+2472|0)>>2],i[w>>2]=i[Q>>2],i[w+4>>2]=E,E=i[4+(Q=B+2480|0)>>2],i[f>>2]=i[Q>>2],i[f+4>>2]=E,Q=i[B+2412>>2],i[B+3808>>2]=i[B+2408>>2],i[B+3812>>2]=Q,Q=i[B+2452>>2],i[B+3848>>2]=i[B+2448>>2],i[B+3852>>2]=Q,E=i[4+(Q=B+2520|0)>>2],i[F>>2]=i[Q>>2],i[F+4>>2]=E,E=i[4+(Q=B+2512|0)>>2],i[k>>2]=i[Q>>2],i[k+4>>2]=E,E=i[4+(Q=B+2504|0)>>2],i[n>>2]=i[Q>>2],i[n+4>>2]=E,E=i[4+(Q=B+2496|0)>>2],i[y>>2]=i[Q>>2],i[y+4>>2]=E,Q=i[B+2492>>2],i[B+3888>>2]=i[B+2488>>2],i[B+3892>>2]=Q,KA(Q=B+3208|0,S),b(E=B+2088|0,Q,t=B+3328|0),b(B+2128|0,h=B+3248|0,p=B+3288|0),b(B+2168|0,p,t),b(B+2208|0,Q,h),$A(t=B+640|0,E),sA(Q=B+3048|0,g,t),b(E=B+1928|0,Q,t=B+3168|0),b(B+1968|0,h=B+3088|0,p=B+3128|0),b(B+2008|0,p,t),b(B+2048|0,Q,h),$A(B+800|0,E),E=i[4+(Q=B+2280|0)>>2],i[a>>2]=i[Q>>2],i[a+4>>2]=E,E=i[4+(Q=B+2272|0)>>2],i[_>>2]=i[Q>>2],i[_+4>>2]=E,E=i[4+(Q=B+2264|0)>>2],i[c>>2]=i[Q>>2],i[c+4>>2]=E,E=i[4+(Q=B+2256|0)>>2],i[r>>2]=i[Q>>2],i[r+4>>2]=E,E=i[4+(Q=B+2296|0)>>2],i[e>>2]=i[Q>>2],i[e+4>>2]=E,E=i[4+(Q=B+2304|0)>>2],i[D>>2]=i[Q>>2],i[D+4>>2]=E,E=i[4+(Q=B+2312|0)>>2],i[w>>2]=i[Q>>2],i[w+4>>2]=E,E=i[4+(Q=B+2320|0)>>2],i[f>>2]=i[Q>>2],i[f+4>>2]=E,Q=i[B+2252>>2],i[B+3808>>2]=i[B+2248>>2],i[B+3812>>2]=Q,Q=i[B+2292>>2],i[B+3848>>2]=i[B+2288>>2],i[B+3852>>2]=Q,E=i[4+(Q=B+2360|0)>>2],i[F>>2]=i[Q>>2],i[F+4>>2]=E,E=i[4+(Q=B+2352|0)>>2],i[k>>2]=i[Q>>2],i[k+4>>2]=E,E=i[4+(Q=B+2344|0)>>2],i[n>>2]=i[Q>>2],i[n+4>>2]=E,E=i[4+(Q=B+2336|0)>>2],i[y>>2]=i[Q>>2],i[y+4>>2]=E,Q=i[B+2332>>2],i[B+3888>>2]=i[B+2328>>2],i[B+3892>>2]=Q,KA(Q=B+2888|0,S),b(E=B+1768|0,Q,t=B+3008|0),b(B+1808|0,h=B+2928|0,p=B+2968|0),b(B+1848|0,p,t),b(B+1888|0,Q,h),$A(t=B+960|0,E),sA(Q=B+2728|0,g,t),b(g=B+1608|0,Q,E=B+2848|0),b(B+1648|0,t=B+2768|0,h=B+2808|0),b(B+1688|0,h,E),b(B+1728|0,Q,t),$A(B+1120|0,g),Q=i[4+(g=B+2120|0)>>2],i[a>>2]=i[g>>2],i[a+4>>2]=Q,a=i[4+(g=B+2112|0)>>2],i[_>>2]=i[g>>2],i[_+4>>2]=a,a=i[4+(g=B+2104|0)>>2],i[c>>2]=i[g>>2],i[c+4>>2]=a,a=i[4+(g=B+2096|0)>>2],i[r>>2]=i[g>>2],i[r+4>>2]=a,a=i[4+(g=B+2136|0)>>2],i[e>>2]=i[g>>2],i[e+4>>2]=a,a=i[4+(g=B+2144|0)>>2],i[D>>2]=i[g>>2],i[D+4>>2]=a,a=i[4+(g=B+2152|0)>>2],i[w>>2]=i[g>>2],i[w+4>>2]=a,a=i[4+(g=B+2160|0)>>2],i[f>>2]=i[g>>2],i[f+4>>2]=a,g=i[B+2092>>2],i[B+3808>>2]=i[B+2088>>2],i[B+3812>>2]=g,g=i[B+2132>>2],i[B+3848>>2]=i[B+2128>>2],i[B+3852>>2]=g,a=i[4+(g=B+2200|0)>>2],i[F>>2]=i[g>>2],i[F+4>>2]=a,a=i[4+(g=B+2192|0)>>2],i[k>>2]=i[g>>2],i[k+4>>2]=a,a=i[4+(g=B+2184|0)>>2],i[n>>2]=i[g>>2],i[n+4>>2]=a,a=i[4+(g=B+2176|0)>>2],i[y>>2]=i[g>>2],i[y+4>>2]=a,g=i[B+2172>>2],i[B+3888>>2]=i[B+2168>>2],i[B+3892>>2]=g,KA(g=B+2568|0,S),b(a=B+1448|0,g,_=B+2688|0),b(B+1488|0,c=B+2608|0,r=B+2648|0),b(B+1528|0,r,_),b(B+1568|0,g,c),$A(B+1280|0,a),a=0,g=0;c=(_=B+3968|0)+(g<<1)|0,r=o[I+g|0],C[c+1|0]=r>>>4,C[0|c]=15&r,_=_+((c=1|g)<<1)|0,c=o[I+c|0],C[_+1|0]=c>>>4,C[0|_]=15&c,32!=(0|(g=g+2|0)););for(I=0;g=8+(_=(g=I)+o[0|(I=(B+3968|0)+a|0)]|0)|0,C[0|I]=_-(240&g),g=8+(_=o[I+1|0]+(g<<24>>24>>4)|0)|0,C[I+1|0]=_-(240&g),g=8+(_=o[I+2|0]+(g<<24>>24>>4)|0)|0,C[I+2|0]=_-(240&g),I=g<<24>>24>>4,63!=(0|(a=a+3|0)););for(C[B+4031|0]=o[B+4031|0]+I,i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0,i[A>>2]=0,i[A+4>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+40>>2]=1,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A+80>>2]=1,bg(A+84|0,0,76),w=A+120|0,f=A+80|0,y=A+40|0,r=B+3768|0,g=B+3888|0,_=B+3848|0,e=B+3728|0,a=B+3928|0,D=63;HA(B,n=B+160|0,C[(B+3968|0)+D|0]),sA(I=B+3808|0,A,B),b(c=B+3688|0,I,a),b(e,_,g),b(r,g,a),KA(I,c),b(c,I,a),b(e,_,g),b(r,g,a),KA(I,c),b(c,I,a),b(e,_,g),b(r,g,a),KA(I,c),b(c,I,a),b(e,_,g),b(r,g,a),KA(I,c),b(A,I,a),b(y,_,g),b(f,g,a),b(w,I,_),D=D-1|0;);HA(B,n,C[B+3968|0]),sA(I,A,B),b(A,I,a),b(y,_,g),b(f,g,a),b(w,I,_),s=B+4032|0}function x(A,I,g,C){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S,N,G,M,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0;s=B=s-320|0,i[B+280>>2]=0,i[B+284>>2]=0,i[B+272>>2]=0,i[B+276>>2]=0,i[B+264>>2]=0,i[B+268>>2]=0,i[B+256>>2]=0,i[B+260>>2]=0,Ng(U=B+256|0,I,g),m=o[C+16|0]|o[C+17|0]<<8|o[C+18|0]<<16|o[C+19|0]<<24,K=o[C+48|0]|o[C+49|0]<<8|o[C+50|0]<<16|o[C+51|0]<<24,a=o[C+20|0]|o[C+21|0]<<8|o[C+22|0]<<16|o[C+23|0]<<24,_=o[C+52|0]|o[C+53|0]<<8|o[C+54|0]<<16|o[C+55|0]<<24,c=o[C+24|0]|o[C+25|0]<<8|o[C+26|0]<<16|o[C+27|0]<<24,t=o[C+56|0]|o[C+57|0]<<8|o[C+58|0]<<16|o[C+59|0]<<24,r=o[C+28|0]|o[C+29|0]<<8|o[C+30|0]<<16|o[C+31|0]<<24,e=o[C+60|0]|o[C+61|0]<<8|o[C+62|0]<<16|o[C+63|0]<<24,I=o[C+36|0]|o[C+37|0]<<8|o[C+38|0]<<16|o[C+39|0]<<24,y=o[C+84|0]|o[C+85|0]<<8|o[C+86|0]<<16|o[C+87|0]<<24,h=o[C+116|0]|o[C+117|0]<<8|o[C+118|0]<<16|o[C+119|0]<<24,b=o[C+100|0]|o[C+101|0]<<8|o[C+102|0]<<16|o[C+103|0]<<24,H=o[C+44|0]|o[C+45|0]<<8|o[C+46|0]<<16|o[C+47|0]<<24,D=o[C+92|0]|o[C+93|0]<<8|o[C+94|0]<<16|o[C+95|0]<<24,f=o[C+124|0]|o[C+125|0]<<8|o[C+126|0]<<16|o[C+127|0]<<24,Y=o[C+108|0]|o[C+109|0]<<8|o[C+110|0]<<16|o[C+111|0]<<24,J=o[C+32|0]|o[C+33|0]<<8|o[C+34|0]<<16|o[C+35|0]<<24,p=o[C+80|0]|o[C+81|0]<<8|o[C+82|0]<<16|o[C+83|0]<<24,w=o[C+112|0]|o[C+113|0]<<8|o[C+114|0]<<16|o[C+115|0]<<24,d=o[C+96|0]|o[C+97|0]<<8|o[C+98|0]<<16|o[C+99|0]<<24,n=i[B+272>>2],k=i[B+256>>2],F=i[B+260>>2],S=i[B+264>>2],N=i[B+268>>2],G=i[B+276>>2],M=i[B+284>>2],Q=o[C+40|0]|o[C+41|0]<<8|o[C+42|0]<<16|o[C+43|0]<<24,E=o[C+104|0]|o[C+105|0]<<8|o[C+106|0]<<16|o[C+107|0]<<24,i[B+280>>2]=Q^E&(o[C+120|0]|o[C+121|0]<<8|o[C+122|0]<<16|o[C+123|0]<<24)^i[B+280>>2]^(o[C+88|0]|o[C+89|0]<<8|o[C+90|0]<<16|o[C+91|0]<<24),i[B+272>>2]=J^d&w^p^n,i[B+284>>2]=H^Y&f^D^M,i[B+276>>2]=I^b&h^y^G,i[B+268>>2]=Y^H&e^r^N,i[B+264>>2]=t&Q^c^S^E,i[B+260>>2]=b^I&_^a^F,i[B+256>>2]=d^K&J^m^k,bg(g+U|0,0,32-g|0),Ng(A,U,g),g=i[B+280>>2],U=i[B+272>>2],b=i[B+284>>2],H=i[B+276>>2],Y=i[B+256>>2],J=i[B+260>>2],d=i[B+264>>2],m=i[B+268>>2],A=i[C+124>>2],i[B+312>>2]=i[C+120>>2],i[B+316>>2]=A,A=i[C+116>>2],i[B+304>>2]=i[C+112>>2],i[B+308>>2]=A,A=i[C+108>>2],i[B+248>>2]=i[C+104>>2],i[B+252>>2]=A,A=i[C+100>>2],i[B+240>>2]=i[C+96>>2],i[B+244>>2]=A,A=i[C+124>>2],i[B+232>>2]=i[C+120>>2],i[B+236>>2]=A,A=i[C+116>>2],i[B+224>>2]=i[C+112>>2],i[B+228>>2]=A,AI(I=B+288|0,B+240|0,B+224|0),A=i[B+300>>2],i[C+120>>2]=i[B+296>>2],i[C+124>>2]=A,A=i[B+292>>2],i[C+112>>2]=i[B+288>>2],i[C+116>>2]=A,A=i[C+92>>2],i[B+216>>2]=i[C+88>>2],i[B+220>>2]=A,A=i[C+84>>2],i[B+208>>2]=i[C+80>>2],i[B+212>>2]=A,A=i[C+108>>2],i[B+200>>2]=i[C+104>>2],i[B+204>>2]=A,A=i[C+100>>2],i[B+192>>2]=i[C+96>>2],i[B+196>>2]=A,AI(I,B+208|0,B+192|0),A=i[B+300>>2],i[C+104>>2]=i[B+296>>2],i[C+108>>2]=A,A=i[B+292>>2],i[C+96>>2]=i[B+288>>2],i[C+100>>2]=A,A=i[C+76>>2],i[B+184>>2]=i[C+72>>2],i[B+188>>2]=A,K=i[4+(A=C- -64|0)>>2],i[B+176>>2]=i[A>>2],i[B+180>>2]=K,K=i[C+92>>2],i[B+168>>2]=i[C+88>>2],i[B+172>>2]=K,K=i[C+84>>2],i[B+160>>2]=i[C+80>>2],i[B+164>>2]=K,AI(I,B+176|0,B+160|0),K=i[B+300>>2],i[C+88>>2]=i[B+296>>2],i[C+92>>2]=K,K=i[B+292>>2],i[C+80>>2]=i[B+288>>2],i[C+84>>2]=K,K=i[C+60>>2],i[B+152>>2]=i[C+56>>2],i[B+156>>2]=K,K=i[C+52>>2],i[B+144>>2]=i[C+48>>2],i[B+148>>2]=K,K=i[C+76>>2],i[B+136>>2]=i[C+72>>2],i[B+140>>2]=K,K=i[A+4>>2],i[B+128>>2]=i[A>>2],i[B+132>>2]=K,AI(I,B+144|0,B+128|0),K=i[B+300>>2],i[C+72>>2]=i[B+296>>2],i[C+76>>2]=K,K=i[B+292>>2],i[A>>2]=i[B+288>>2],i[A+4>>2]=K,K=i[C+44>>2],i[B+120>>2]=i[C+40>>2],i[B+124>>2]=K,K=i[C+36>>2],i[B+112>>2]=i[C+32>>2],i[B+116>>2]=K,K=i[C+60>>2],i[B+104>>2]=i[C+56>>2],i[B+108>>2]=K,K=i[C+52>>2],i[B+96>>2]=i[C+48>>2],i[B+100>>2]=K,AI(I,B+112|0,B+96|0),K=i[B+300>>2],i[C+56>>2]=i[B+296>>2],i[C+60>>2]=K,K=i[B+292>>2],i[C+48>>2]=i[B+288>>2],i[C+52>>2]=K,K=i[C+28>>2],i[B+88>>2]=i[C+24>>2],i[B+92>>2]=K,K=i[C+20>>2],i[B+80>>2]=i[C+16>>2],i[B+84>>2]=K,K=i[C+44>>2],i[B+72>>2]=i[C+40>>2],i[B+76>>2]=K,K=i[C+36>>2],i[B+64>>2]=i[C+32>>2],i[B+68>>2]=K,AI(I,B+80|0,B- -64|0),K=i[B+300>>2],i[C+40>>2]=i[B+296>>2],i[C+44>>2]=K,K=i[B+292>>2],i[C+32>>2]=i[B+288>>2],i[C+36>>2]=K,K=i[C+12>>2],i[B+56>>2]=i[C+8>>2],i[B+60>>2]=K,K=i[C+4>>2],i[B+48>>2]=i[C>>2],i[B+52>>2]=K,K=i[C+28>>2],i[B+40>>2]=i[C+24>>2],i[B+44>>2]=K,K=i[C+20>>2],i[B+32>>2]=i[C+16>>2],i[B+36>>2]=K,AI(I,B+48|0,B+32|0),K=i[B+300>>2],i[C+24>>2]=i[B+296>>2],i[C+28>>2]=K,K=i[B+292>>2],i[C+16>>2]=i[B+288>>2],i[C+20>>2]=K,K=i[B+316>>2],i[B+24>>2]=i[B+312>>2],i[B+28>>2]=K,K=i[B+308>>2],i[B+16>>2]=i[B+304>>2],i[B+20>>2]=K,K=i[C+12>>2],i[B+8>>2]=i[C+8>>2],i[B+12>>2]=K,K=i[C+4>>2],i[B>>2]=i[C>>2],i[B+4>>2]=K,AI(I,B+16|0,B),I=i[B+300>>2],i[C+8>>2]=i[B+296>>2],i[C+12>>2]=I,I=i[B+292>>2],i[C>>2]=i[B+288>>2],i[C+4>>2]=I,i[C+12>>2]=m^(o[C+12|0]|o[C+13|0]<<8|o[C+14|0]<<16|o[C+15|0]<<24),i[C+8>>2]=d^(o[C+8|0]|o[C+9|0]<<8|o[C+10|0]<<16|o[C+11|0]<<24),i[C+4>>2]=J^(o[C+4|0]|o[C+5|0]<<8|o[C+6|0]<<16|o[C+7|0]<<24),i[C>>2]=Y^(o[0|C]|o[C+1|0]<<8|o[C+2|0]<<16|o[C+3|0]<<24),i[A>>2]=U^(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24),i[C+68>>2]=H^(o[C+68|0]|o[C+69|0]<<8|o[C+70|0]<<16|o[C+71|0]<<24),i[C+72>>2]=g^(o[C+72|0]|o[C+73|0]<<8|o[C+74|0]<<16|o[C+75|0]<<24),i[C+76>>2]=b^(o[C+76|0]|o[C+77|0]<<8|o[C+78|0]<<16|o[C+79|0]<<24),s=B+320|0}function v(A,I){var g,C,B,Q,o,E,_,c,t,r,e,y,s,h,D,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l,u,x,v,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0;R=Ig(C=(D=i[I+12>>2])<<1,E=C>>31,$=(q=i[I+4>>2])<<1,B=$>>31),P=f,F=V=i[I+8>>2],L=(Z=Ig(V,p=V>>31,V,p))+R|0,R=f+P|0,R=L>>>0>>0?R+1|0:R,P=Ig(j=i[I+16>>2],_=j>>31,Z=(z=i[I>>2])<<1,Q=Z>>31),R=f+R|0,R=(L=P+L|0)>>>0

>>0?R+1|0:R,e=i[I+28>>2],P=Ig(BA=a(e,38),w=BA>>31,e,S=e>>31),R=f+R|0,R=(L=P+L|0)>>>0

>>0?R+1|0:R,P=L,y=i[I+32>>2],X=Ig(O=a(y,19),c=O>>31,L=(g=i[I+24>>2])<<1,L>>31),L=f+R|0,L=(P=P+X|0)>>>0>>0?L+1|0:L,H=i[I+36>>2],R=Ig(X=a(H,38),o=X>>31,AA=(t=i[I+20>>2])<<1,s=AA>>31),I=f+L|0,J=R=(R>>>0>(P=R+P|0)>>>0?I+1:I)<<1|P>>>31,d=L=33554432+(N=P<<1)|0,m=R=L>>>0<33554432?R+1|0:R,I=R>>26,T=(67108863&R)<<6|L>>>26,R=Ig($,B,j,_),P=f,L=(IA=Ig(V<<=1,h=V>>31,D,G=D>>31))+R|0,R=f+P|0,R=L>>>0>>0?R+1|0:R,P=(IA=Ig(t,n=t>>31,Z,Q))+L|0,L=f+R|0,L=P>>>0>>0?L+1|0:L,iA=Ig(O,c,IA=e<<1,M=IA>>31),R=f+L|0,R=(P=iA+P|0)>>>0>>0?R+1|0:R,L=Ig(X,o,g,r=g>>31),R=f+R|0,I=I+(L=(L>>>0>(P=L+P|0)>>>0?R+1:R)<<1|P>>>31)|0,iA=P=(R=P<<1)+T|0,R=I=R>>>0>P>>>0?I+1|0:I,l=P=P+16777216|0,T=(33554431&(R=P>>>0<16777216?R+1|0:R))<<7|P>>>25,P=R>>25,I=Ig(C,E,D,G),R=f,L=Ig(j,_,V,h),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=Ig($,B,AA,s),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(gA=Ig(Z,Q,g,r))+I|0,I=f+R|0,I=L>>>0>>0?I+1|0:I,gA=Ig(O,c,y,k=y>>31),R=f+I|0,R=(L=gA+L|0)>>>0>>0?R+1|0:R,I=(gA=Ig(X,o,IA,M))+L|0,L=f+R|0,I=((R=I)>>>0>>0?L+1:L)<<1|R>>>31,L=T,T=R<<1,R=I+P|0,R=(L=L+T|0)>>>0>>0?R+1|0:R,gA=I=L+33554432|0,P=R=I>>>0<33554432?R+1|0:R,i[A+24>>2]=L-(-67108864&I),L=Ig(I=a(t,38),I>>31,t,n),T=f,I=(R=Ig(I=z,R=I>>31,I,R))+L|0,L=f+T|0,L=I>>>0>>0?L+1|0:L,CA=Ig(z=a(g,19),K=z>>31,T=j<<1,U=T>>31),R=f+L|0,R=(I=CA+I|0)>>>0>>0?R+1|0:R,L=Ig(C,E,BA,w),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(CA=Ig(O,c,V,h))+I|0,I=f+R|0,I=L>>>0>>0?I+1|0:I,CA=Ig($,B,X,o),R=f+I|0,CA=R=((L=CA+L|0)>>>0>>0?R+1:R)<<1|L>>>31,u=I=33554432+(b=L<<1)|0,x=L=I>>>0<33554432?R+1|0:R,QA=(67108863&L)<<6|I>>>26,oA=L>>26,I=Ig(z,K,AA,s),R=f,L=Ig(Z,Q,q,Y=q>>31),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(W=Ig(j,_,BA,w))+I|0,I=f+R|0,I=L>>>0>>0?I+1|0:I,W=Ig(O,c,C,E),R=f+I|0,R=(L=W+L|0)>>>0>>0?R+1|0:R,W=(I=Ig(X,o,F,p))+L|0,L=f+R|0,R=(I=(I>>>0>W>>>0?L+1:L)<<1|W>>>31)+oA|0,R=(L=(W<<=1)+QA|0)>>>0>>0?R+1|0:R,oA=L,W=L=L+16777216|0,v=(33554431&(R=L>>>0<16777216?R+1|0:R))<<7|L>>>25,QA=R>>25,I=Ig(Z,Q,F,p),R=f,L=Ig($,B,q,Y),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,q=Ig(z,K,g,r),L=f+R|0,L=(I=q+I|0)>>>0>>0?L+1|0:L,q=Ig(AA,s,BA,w),R=f+L|0,R=(I=q+I|0)>>>0>>0?R+1|0:R,L=Ig(O,c,T,U),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(q=Ig(X,o,C,E))+I|0,I=f+R|0,R=(R=(L>>>0>>0?I+1:I)<<1|L>>>31)+QA|0,z=I=(L<<=1)+v|0,R=I>>>0>>0?R+1|0:R,QA=I=I+33554432|0,q=L=I>>>0<33554432?R+1|0:R,i[A+8>>2]=z-(-67108864&I),I=Ig(V,h,t,n),L=f,R=(z=Ig(j,_,C,E))+I|0,I=f+L|0,I=R>>>0>>0?I+1|0:I,L=(z=Ig($,B,g,r))+R|0,R=f+I|0,R=L>>>0>>0?R+1|0:R,I=(z=Ig(Z,Q,e,S))+L|0,L=f+R|0,L=I>>>0>>0?L+1|0:L,z=Ig(X,o,y,k),R=f+L|0,R=(R=((I=z+I|0)>>>0>>0?R+1:R)<<1|I>>>31)+(L=P>>26)|0,I=(L=P=(z=I<<1)+(I=(67108863&P)<<6|gA>>>26)|0)>>>0>>0?R+1|0:R,z=R=L+16777216|0,P=I=R>>>0<16777216?I+1|0:I,i[A+28>>2]=L-(-33554432&R),I=Ig(Z,Q,D,G),R=f,L=Ig($,B,F,p),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=Ig(g,r,BA,w),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(O=Ig(O,c,AA,s))+I|0,I=f+R|0,I=L>>>0>>0?I+1|0:I,R=(O=Ig(X,o,j,_))+L|0,L=f+I|0,I=R,R=(R>>>0>>0?L+1:L)<<1|R>>>31,L=I<<1,R=(I=q>>26)+R|0,R=(L=L+(q=(67108863&q)<<6|QA>>>26)|0)>>>0>>0?R+1|0:R,O=I=L+16777216|0,q=R=I>>>0<16777216?R+1|0:R,i[A+12>>2]=L-(-33554432&I),I=Ig(g,r,V,h),R=f,L=Ig(j,_,j,_),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=Ig(C,E,AA,s),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=Ig($,B,IA,M),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(j=Ig(Z,Q,y,k))+I|0,I=f+R|0,I=L>>>0>>0?I+1|0:I,R=(j=Ig(R=X,o,X=H,AA=X>>31))+L|0,L=f+I|0,I=R,R=(R>>>0>>0?L+1:L)<<1|R>>>31,L=I<<1,R=(I=P>>25)+R|0,R=(L=L+(P=(33554431&P)<<7|z>>>25)|0)>>>0

>>0?R+1|0:R,j=I=L+33554432|0,P=R=I>>>0<33554432?R+1|0:R,i[A+32>>2]=L-(-67108864&I),R=q>>25,L=(q=(33554431&q)<<7|O>>>25)+(N-(I=-67108864&d)|0)|0,I=R+(J-((I>>>0>N>>>0)+m|0)|0)|0,I=L>>>0>>0?I+1|0:I,q=L,R=I,I=((67108863&(R=(L=L+33554432|0)>>>0<33554432?R+1|0:R))<<6|L>>>26)+(BA=iA-(-33554432&l)|0)|0,i[A+20>>2]=I,i[A+16>>2]=q-(-67108864&L),I=Ig(C,E,g,r),L=f,R=(q=Ig(t,n,T,U))+I|0,I=f+L|0,I=R>>>0>>0?I+1|0:I,L=(q=Ig(V,h,e,S))+R|0,R=f+I|0,R=L>>>0>>0?R+1|0:R,I=(q=Ig($,B,y,k))+L|0,L=f+R|0,L=I>>>0>>0?L+1|0:L,q=Ig(Z,Q,X,AA),R=f+L|0,R=((I=q+I|0)>>>0>>0?R+1:R)<<1|I>>>31,q=I<<1,R=R+(L=P>>26)|0,I=(I=(67108863&P)<<6|j>>>26)>>>0>(P=q+I|0)>>>0?R+1|0:R,I=(R=P+16777216|0)>>>0<16777216?I+1|0:I,i[A+36>>2]=P-(-33554432&R),q=oA-(-33554432&W)|0,P=b-(L=-67108864&u)|0,$=CA-((L>>>0>b>>>0)+x|0)|0,I=Ig((33554431&I)<<7|R>>>25,I>>25,19,0),L=f+$|0,P=R=I+P|0,I=I>>>0>R>>>0?L+1|0:L,I=((67108863&(I=(R=R+33554432|0)>>>0<33554432?I+1|0:I))<<6|R>>>26)+q|0,i[A+4>>2]=I,i[A>>2]=P-(-67108864&R)}function R(A,I){var g,C,B,Q,o,E,_,c,t,r,e,y,s,h,D,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0;l=Ig(C=(p=i[I+12>>2])<<1,E=C>>31,p,S=p>>31),x=f,u=(z=Ig(R=i[I+16>>2],_=R>>31,c=(v=i[I+8>>2])<<1,y=c>>31))+l|0,l=f+x|0,l=u>>>0>>0?l+1|0:l,x=(j=Ig(W=(t=i[I+20>>2])<<1,s=W>>31,z=(L=i[I+4>>2])<<1,B=z>>31))+u|0,u=f+l|0,u=x>>>0>>0?u+1|0:u,P=Ig(g=i[I+24>>2],r=g>>31,j=(T=i[I>>2])<<1,Q=j>>31),l=f+u|0,l=(x=P+x|0)>>>0

>>0?l+1|0:l,u=x,h=i[I+32>>2],x=Ig(X=a(h,19),e=X>>31,h,n=h>>31),l=f+l|0,l=(u=u+x|0)>>>0>>0?l+1|0:l,U=i[I+36>>2],x=Ig(P=a(U,38),o=P>>31,k=(D=i[I+28>>2])<<1,N=k>>31),I=f+l|0,Z=u=x+u|0,x=u>>>0>>0?I+1|0:I,I=Ig(z,B,R,_),l=f,u=Ig(c,y,p,S),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,q=Ig(t,F=t>>31,j,Q),u=f+l|0,u=(I=q+I|0)>>>0>>0?u+1|0:u,q=Ig(X,e,k,N),l=f+u|0,l=(I=q+I|0)>>>0>>0?l+1|0:l,u=Ig(P,o,g,r),l=f+l|0,CA=I=u+I|0,O=I>>>0>>0?l+1|0:l,l=Ig(z,B,C,E),u=f,G=I=v,v=Ig(I,V=I>>31,I,V),I=f+u|0,I=(l=v+l|0)>>>0>>0?I+1|0:I,u=(v=Ig(j,Q,R,_))+l|0,l=f+I|0,l=u>>>0>>0?l+1|0:l,I=(v=Ig(q=a(D,38),w=q>>31,D,M=D>>31))+u|0,u=f+l|0,u=I>>>0>>0?u+1|0:u,I=(l=I)+(v=Ig(X,e,I=g<<1,I>>31))|0,l=f+u|0,l=I>>>0>>0?l+1|0:l,u=I,I=Ig(P,o,W,s),l=f+l|0,b=u=u+I|0,H=l=I>>>0>u>>>0?l+1|0:l,I=l,Y=u=u+33554432|0,J=I=u>>>0<33554432?I+1|0:I,l=(l=I>>26)+O|0,CA=I=(u=(67108863&I)<<6|u>>>26)+CA|0,l=I>>>0>>0?l+1|0:l,d=I=I+16777216|0,l=(l=(u=I>>>0<16777216?l+1|0:l)>>25)+x|0,I=(I=(33554431&u)<<7|I>>>25)>>>0>(u=I+Z|0)>>>0?l+1|0:l,Z=l=u+33554432|0,v=I=l>>>0<33554432?I+1|0:I,i[A+24>>2]=u-(-67108864&l),I=Ig(j,Q,G,V),l=f,x=Ig(z,B,L,$=L>>31),u=f+l|0,u=(I=x+I|0)>>>0>>0?u+1|0:u,O=Ig(x=a(g,19),gA=x>>31,g,r),l=f+u|0,l=(I=O+I|0)>>>0>>0?l+1|0:l,u=(O=Ig(W,s,q,w))+I|0,I=f+l|0,I=u>>>0>>0?I+1|0:I,AA=Ig(X,e,O=R<<1,K=O>>31),l=f+I|0,l=(u=AA+u|0)>>>0>>0?l+1|0:l,I=u,u=Ig(P,o,C,E),l=f+l|0,IA=I=I+u|0,AA=I>>>0>>0?l+1|0:l,I=Ig(W,s,x,gA),l=f,L=Ig(j,Q,L,$),u=f+l|0,u=(I=L+I|0)>>>0>>0?u+1|0:u,L=Ig(R,_,q,w),l=f+u|0,l=(I=L+I|0)>>>0>>0?l+1|0:l,u=(L=Ig(X,e,C,E))+I|0,I=f+l|0,I=u>>>0>>0?I+1|0:I,L=Ig(P,o,G,V),l=f+I|0,BA=u=L+u|0,$=u>>>0>>0?l+1|0:l,u=Ig(I=a(t,38),I>>31,t,F),L=f,I=T,T=u,u=Ig(I,l=I>>31,I,l),l=f+L|0,l=(I=T+u|0)>>>0>>0?l+1|0:l,x=Ig(x,gA,O,K),u=f+l|0,u=(I=x+I|0)>>>0>>0?u+1|0:u,x=Ig(C,E,q,w),l=f+u|0,l=(I=x+I|0)>>>0>>0?l+1|0:l,u=(x=Ig(X,e,c,y))+I|0,I=f+l|0,I=u>>>0>>0?I+1|0:I,x=Ig(z,B,P,o),l=f+I|0,L=u=x+u|0,T=l=u>>>0>>0?l+1|0:l,gA=u=u+33554432|0,m=l=u>>>0<33554432?l+1|0:l,I=l>>26,l=(67108863&l)<<6|u>>>26,u=I+$|0,$=x=l+BA|0,l=l>>>0>x>>>0?u+1|0:u,BA=u=x+16777216|0,x=(33554431&(l=u>>>0<16777216?l+1|0:l))<<7|u>>>25,l=(l>>25)+AA|0,l=(u=x+IA|0)>>>0>>0?l+1|0:l,AA=I=u+33554432|0,x=l=I>>>0<33554432?l+1|0:l,i[A+8>>2]=u-(-67108864&I),I=Ig(c,y,t,F),l=f,u=Ig(R,_,C,E),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,u=Ig(z,B,g,r),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,u=Ig(j,Q,D,M),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,IA=(u=Ig(P,o,h,n))+I|0,I=f+l|0,u=(l=v>>26)+(u=u>>>0>IA>>>0?I+1|0:I)|0,Z=I=(v=(67108863&v)<<6|Z>>>26)+IA|0,l=I>>>0>>0?u+1|0:u,IA=I=I+16777216|0,v=l=I>>>0<16777216?l+1|0:l,i[A+28>>2]=Z-(-33554432&I),I=Ig(j,Q,p,S),u=f,l=(V=Ig(z,B,G,V))+I|0,I=f+u|0,I=l>>>0>>0?I+1|0:I,l=(q=Ig(g,r,q,w))+l|0,u=f+I|0,I=(X=Ig(X,e,W,s))+l|0,l=f+(l>>>0>>0?u+1|0:u)|0,l=I>>>0>>0?l+1|0:l,u=Ig(P,o,R,_),l=f+l|0,l=(l=(I=u+I|0)>>>0>>0?l+1|0:l)+(u=x>>26)|0,I=(u=x=(Z=I)+(I=(67108863&x)<<6|AA>>>26)|0)>>>0>>0?l+1|0:l,X=l=u+16777216|0,x=I=l>>>0<16777216?I+1|0:I,i[A+12>>2]=u-(-33554432&l),I=Ig(g,r,c,y),l=f,u=Ig(R,_,R,_),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,u=Ig(C,E,W,s),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,u=(R=Ig(z,B,k,N))+I|0,I=f+l|0,I=u>>>0>>0?I+1|0:I,l=(R=Ig(j,Q,h,n))+u|0,u=f+I|0,u=l>>>0>>0?u+1|0:u,I=(R=Ig(I=P,o,P=U,W=P>>31))+l|0,l=f+u|0,l=I>>>0>>0?l+1|0:l,u=I,l=(I=v>>25)+l|0,l=(u=u+(v=(33554431&v)<<7|IA>>>25)|0)>>>0>>0?l+1|0:l,R=I=u+33554432|0,v=l=I>>>0<33554432?l+1|0:l,i[A+32>>2]=u-(-67108864&I),l=x>>25,u=(x=(33554431&x)<<7|X>>>25)+(b-(I=-67108864&Y)|0)|0,I=l+(H-((I>>>0>b>>>0)+J|0)|0)|0,I=u>>>0>>0?I+1|0:I,x=u,I=((67108863&(l=(u=u+33554432|0)>>>0<33554432?I+1|0:I))<<6|u>>>26)+(q=CA-(-33554432&d)|0)|0,i[A+20>>2]=I,i[A+16>>2]=x-(-67108864&u),I=Ig(C,E,g,r),u=f,l=(x=Ig(t,F,O,K))+I|0,I=f+u|0,I=l>>>0>>0?I+1|0:I,u=(x=Ig(c,y,D,M))+l|0,l=f+I|0,l=u>>>0>>0?l+1|0:l,I=(x=Ig(z,B,h,n))+u|0,u=f+l|0,u=I>>>0>>0?u+1|0:u,x=(l=I)+(I=Ig(j,Q,P,W))|0,l=f+u|0,l=(I=I>>>0>x>>>0?l+1|0:l)+(l=v>>26)|0,I=(u=(v=(67108863&v)<<6|R>>>26)+x|0)>>>0>>0?l+1|0:l,I=(l=u+16777216|0)>>>0<16777216?I+1|0:I,i[A+36>>2]=u-(-33554432&l),v=$-(-33554432&BA)|0,x=L-(u=-67108864&gA)|0,z=T-((u>>>0>L>>>0)+m|0)|0,I=Ig((33554431&I)<<7|l>>>25,I>>25,19,0),l=f+z|0,I=I>>>0>(u=I+x|0)>>>0?l+1|0:l,I=((67108863&(I=(l=u+33554432|0)>>>0<33554432?I+1|0:I))<<6|l>>>26)+v|0,i[A+4>>2]=I,i[A>>2]=u-(-67108864&l)}function L(A,I){var g,C,B,Q,E,a,_,c,t,r,e=0,y=0,h=0;s=g=s-416|0,C=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,B=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,Q=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,E=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,h=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,a=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,_=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,c=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,A=i[I+92>>2],i[g+408>>2]=i[I+88>>2],i[g+412>>2]=A,A=i[I+84>>2],i[g+400>>2]=i[I+80>>2],i[g+404>>2]=A,A=i[I+76>>2],i[g+376>>2]=i[I+72>>2],i[g+380>>2]=A,e=i[4+(A=y=I- -64|0)>>2],i[g+368>>2]=i[A>>2],i[g+372>>2]=e,A=i[I+92>>2],i[g+360>>2]=i[I+88>>2],i[g+364>>2]=A,A=i[I+84>>2],i[g+352>>2]=i[I+80>>2],i[g+356>>2]=A,AI(A=g+384|0,g+368|0,g+352|0),e=i[g+396>>2],i[I+88>>2]=i[g+392>>2],i[I+92>>2]=e,e=i[g+388>>2],i[I+80>>2]=i[g+384>>2],i[I+84>>2]=e,e=i[I+60>>2],i[g+344>>2]=i[I+56>>2],i[g+348>>2]=e,e=i[I+52>>2],i[g+336>>2]=i[I+48>>2],i[g+340>>2]=e,e=i[I+76>>2],i[g+328>>2]=i[I+72>>2],i[g+332>>2]=e,e=i[y+4>>2],i[g+320>>2]=i[y>>2],i[g+324>>2]=e,AI(A,g+336|0,g+320|0),e=i[g+396>>2],i[I+72>>2]=i[g+392>>2],i[I+76>>2]=e,e=i[g+388>>2],i[y>>2]=i[g+384>>2],i[y+4>>2]=e,e=i[I+44>>2],i[g+312>>2]=i[I+40>>2],i[g+316>>2]=e,e=i[I+36>>2],i[g+304>>2]=i[I+32>>2],i[g+308>>2]=e,e=i[I+60>>2],i[g+296>>2]=i[I+56>>2],i[g+300>>2]=e,e=i[I+52>>2],i[g+288>>2]=i[I+48>>2],i[g+292>>2]=e,AI(A,g+304|0,g+288|0),e=i[g+396>>2],i[I+56>>2]=i[g+392>>2],i[I+60>>2]=e,e=i[g+388>>2],i[I+48>>2]=i[g+384>>2],i[I+52>>2]=e,e=i[I+28>>2],i[g+280>>2]=i[I+24>>2],i[g+284>>2]=e,e=i[I+20>>2],i[g+272>>2]=i[I+16>>2],i[g+276>>2]=e,e=i[I+44>>2],i[g+264>>2]=i[I+40>>2],i[g+268>>2]=e,e=i[I+36>>2],i[g+256>>2]=i[I+32>>2],i[g+260>>2]=e,AI(A,g+272|0,g+256|0),e=i[g+396>>2],i[I+40>>2]=i[g+392>>2],i[I+44>>2]=e,e=i[g+388>>2],i[I+32>>2]=i[g+384>>2],i[I+36>>2]=e,e=i[I+12>>2],i[g+248>>2]=i[I+8>>2],i[g+252>>2]=e,e=i[I+4>>2],i[g+240>>2]=i[I>>2],i[g+244>>2]=e,e=i[I+28>>2],i[g+232>>2]=i[I+24>>2],i[g+236>>2]=e,e=i[I+20>>2],i[g+224>>2]=i[I+16>>2],i[g+228>>2]=e,AI(A,g+240|0,g+224|0),e=i[g+396>>2],i[I+24>>2]=i[g+392>>2],i[I+28>>2]=e,e=i[g+388>>2],i[I+16>>2]=i[g+384>>2],i[I+20>>2]=e,e=i[g+412>>2],i[g+216>>2]=i[g+408>>2],i[g+220>>2]=e,e=i[g+404>>2],i[g+208>>2]=i[g+400>>2],i[g+212>>2]=e,e=i[I+12>>2],i[g+200>>2]=i[I+8>>2],i[g+204>>2]=e,e=i[I+4>>2],i[g+192>>2]=i[I>>2],i[g+196>>2]=e,AI(A,g+208|0,g+192|0),e=i[g+384>>2],t=i[g+388>>2],r=i[g+392>>2],i[I+12>>2]=i[g+396>>2]^_,i[I+8>>2]=a^r,i[I+4>>2]=h^t,i[I>>2]=e^c,h=i[I+92>>2],i[g+408>>2]=i[I+88>>2],i[g+412>>2]=h,h=i[I+84>>2],i[g+400>>2]=i[I+80>>2],i[g+404>>2]=h,h=i[I+76>>2],i[g+184>>2]=i[I+72>>2],i[g+188>>2]=h,h=i[y+4>>2],i[g+176>>2]=i[y>>2],i[g+180>>2]=h,h=i[I+92>>2],i[g+168>>2]=i[I+88>>2],i[g+172>>2]=h,h=i[I+84>>2],i[g+160>>2]=i[I+80>>2],i[g+164>>2]=h,AI(A,g+176|0,g+160|0),h=i[g+396>>2],i[I+88>>2]=i[g+392>>2],i[I+92>>2]=h,h=i[g+388>>2],i[I+80>>2]=i[g+384>>2],i[I+84>>2]=h,h=i[I+60>>2],i[g+152>>2]=i[I+56>>2],i[g+156>>2]=h,h=i[I+52>>2],i[g+144>>2]=i[I+48>>2],i[g+148>>2]=h,h=i[I+76>>2],i[g+136>>2]=i[I+72>>2],i[g+140>>2]=h,h=i[y+4>>2],i[g+128>>2]=i[y>>2],i[g+132>>2]=h,AI(A,g+144|0,g+128|0),h=i[g+396>>2],i[I+72>>2]=i[g+392>>2],i[I+76>>2]=h,h=i[g+388>>2],i[y>>2]=i[g+384>>2],i[y+4>>2]=h,y=i[I+44>>2],i[g+120>>2]=i[I+40>>2],i[g+124>>2]=y,y=i[I+36>>2],i[g+112>>2]=i[I+32>>2],i[g+116>>2]=y,y=i[I+60>>2],i[g+104>>2]=i[I+56>>2],i[g+108>>2]=y,y=i[I+52>>2],i[g+96>>2]=i[I+48>>2],i[g+100>>2]=y,AI(A,g+112|0,g+96|0),y=i[g+396>>2],i[I+56>>2]=i[g+392>>2],i[I+60>>2]=y,y=i[g+388>>2],i[I+48>>2]=i[g+384>>2],i[I+52>>2]=y,y=i[I+28>>2],i[g+88>>2]=i[I+24>>2],i[g+92>>2]=y,y=i[I+20>>2],i[g+80>>2]=i[I+16>>2],i[g+84>>2]=y,y=i[I+44>>2],i[g+72>>2]=i[I+40>>2],i[g+76>>2]=y,y=i[I+36>>2],i[g+64>>2]=i[I+32>>2],i[g+68>>2]=y,AI(A,g+80|0,g- -64|0),y=i[g+396>>2],i[I+40>>2]=i[g+392>>2],i[I+44>>2]=y,y=i[g+388>>2],i[I+32>>2]=i[g+384>>2],i[I+36>>2]=y,y=i[I+12>>2],i[g+56>>2]=i[I+8>>2],i[g+60>>2]=y,y=i[I+4>>2],i[g+48>>2]=i[I>>2],i[g+52>>2]=y,y=i[I+28>>2],i[g+40>>2]=i[I+24>>2],i[g+44>>2]=y,y=i[I+20>>2],i[g+32>>2]=i[I+16>>2],i[g+36>>2]=y,AI(A,g+48|0,g+32|0),y=i[g+396>>2],i[I+24>>2]=i[g+392>>2],i[I+28>>2]=y,y=i[g+388>>2],i[I+16>>2]=i[g+384>>2],i[I+20>>2]=y,y=i[g+412>>2],i[g+24>>2]=i[g+408>>2],i[g+28>>2]=y,y=i[g+404>>2],i[g+16>>2]=i[g+400>>2],i[g+20>>2]=y,y=i[I+12>>2],i[g+8>>2]=i[I+8>>2],i[g+12>>2]=y,y=i[I+4>>2],i[g>>2]=i[I>>2],i[g+4>>2]=y,AI(A,g+16|0,g),A=i[g+384>>2],y=i[g+388>>2],h=i[g+392>>2],i[I+12>>2]=i[g+396>>2]^E,i[I+8>>2]=h^Q,i[I+4>>2]=y^B,i[I>>2]=A^C,s=g+416|0}function P(A,I,g){var C,B,Q,E,a,_,c,t,r,e,y,h,D,f,p=0,w=0,n=0;for(s=C=s-288|0,y=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,h=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,D=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,c=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,t=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,r=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,f=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=g+112|0,A=33620224^(e=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24),i[I>>2]=A,i[(a=g+96|0)>>2]=1427652059^e,i[(_=g+80|0)>>2]=A,w=e^f,i[(A=g- -64|0)>>2]=w,i[g+56>>2]=1110511904,i[g+60>>2]=-584534669,i[(B=g+48|0)>>2]=1427652059,i[B+4>>2]=-248528275,i[g+40>>2]=1496785429,i[g+44>>2]=1652156816,i[(Q=g+32|0)>>2]=33620224,i[Q+4>>2]=218629379,i[g+24>>2]=1110511904,i[g+28>>2]=-584534669,i[(E=g+16|0)>>2]=1427652059,i[E+4>>2]=-248528275,i[g>>2]=w,w=1652156816^r,i[g+124>>2]=w,n=1496785429^t,i[g+120>>2]=n,p=218629379^c,i[g+116>>2]=p,i[g+108>>2]=-584534669^r,i[g+104>>2]=1110511904^t,i[g+100>>2]=-248528275^c,i[g+92>>2]=w,i[g+88>>2]=n,i[g+84>>2]=p,w=r^D,i[g+76>>2]=w,n=t^h,i[g+72>>2]=n,p=c^y,i[g+68>>2]=p,i[g+12>>2]=w,i[g+8>>2]=n,i[g+4>>2]=p,n=0;w=i[I+12>>2],i[C+280>>2]=i[I+8>>2],i[C+284>>2]=w,w=i[I+4>>2],i[C+272>>2]=i[I>>2],i[C+276>>2]=w,w=i[a+12>>2],i[C+248>>2]=i[a+8>>2],i[C+252>>2]=w,w=i[a+4>>2],i[C+240>>2]=i[a>>2],i[C+244>>2]=w,w=i[I+12>>2],i[C+232>>2]=i[I+8>>2],i[C+236>>2]=w,w=i[I+4>>2],i[C+224>>2]=i[I>>2],i[C+228>>2]=w,AI(w=C+256|0,C+240|0,C+224|0),p=i[C+268>>2],i[I+8>>2]=i[C+264>>2],i[I+12>>2]=p,p=i[C+260>>2],i[I>>2]=i[C+256>>2],i[I+4>>2]=p,p=i[_+12>>2],i[C+216>>2]=i[_+8>>2],i[C+220>>2]=p,p=i[_+4>>2],i[C+208>>2]=i[_>>2],i[C+212>>2]=p,p=i[a+12>>2],i[C+200>>2]=i[a+8>>2],i[C+204>>2]=p,p=i[a+4>>2],i[C+192>>2]=i[a>>2],i[C+196>>2]=p,AI(w,C+208|0,C+192|0),p=i[C+268>>2],i[a+8>>2]=i[C+264>>2],i[a+12>>2]=p,p=i[C+260>>2],i[a>>2]=i[C+256>>2],i[a+4>>2]=p,p=i[A+12>>2],i[C+184>>2]=i[A+8>>2],i[C+188>>2]=p,p=i[A+4>>2],i[C+176>>2]=i[A>>2],i[C+180>>2]=p,p=i[_+12>>2],i[C+168>>2]=i[_+8>>2],i[C+172>>2]=p,p=i[_+4>>2],i[C+160>>2]=i[_>>2],i[C+164>>2]=p,AI(w,C+176|0,C+160|0),p=i[C+268>>2],i[_+8>>2]=i[C+264>>2],i[_+12>>2]=p,p=i[C+260>>2],i[_>>2]=i[C+256>>2],i[_+4>>2]=p,p=i[B+12>>2],i[C+152>>2]=i[B+8>>2],i[C+156>>2]=p,p=i[B+4>>2],i[C+144>>2]=i[B>>2],i[C+148>>2]=p,p=i[A+12>>2],i[C+136>>2]=i[A+8>>2],i[C+140>>2]=p,p=i[A+4>>2],i[C+128>>2]=i[A>>2],i[C+132>>2]=p,AI(w,C+144|0,C+128|0),p=i[C+268>>2],i[A+8>>2]=i[C+264>>2],i[A+12>>2]=p,p=i[C+260>>2],i[A>>2]=i[C+256>>2],i[A+4>>2]=p,p=i[Q+12>>2],i[C+120>>2]=i[Q+8>>2],i[C+124>>2]=p,p=i[Q+4>>2],i[C+112>>2]=i[Q>>2],i[C+116>>2]=p,p=i[B+12>>2],i[C+104>>2]=i[B+8>>2],i[C+108>>2]=p,p=i[B+4>>2],i[C+96>>2]=i[B>>2],i[C+100>>2]=p,AI(w,C+112|0,C+96|0),p=i[C+268>>2],i[B+8>>2]=i[C+264>>2],i[B+12>>2]=p,p=i[C+260>>2],i[B>>2]=i[C+256>>2],i[B+4>>2]=p,p=i[E+12>>2],i[C+88>>2]=i[E+8>>2],i[C+92>>2]=p,p=i[E+4>>2],i[C+80>>2]=i[E>>2],i[C+84>>2]=p,p=i[Q+12>>2],i[C+72>>2]=i[Q+8>>2],i[C+76>>2]=p,p=i[Q+4>>2],i[C+64>>2]=i[Q>>2],i[C+68>>2]=p,AI(w,C+80|0,C- -64|0),p=i[C+268>>2],i[Q+8>>2]=i[C+264>>2],i[Q+12>>2]=p,p=i[C+260>>2],i[Q>>2]=i[C+256>>2],i[Q+4>>2]=p,p=i[g+12>>2],i[C+56>>2]=i[g+8>>2],i[C+60>>2]=p,p=i[g+4>>2],i[C+48>>2]=i[g>>2],i[C+52>>2]=p,p=i[E+12>>2],i[C+40>>2]=i[E+8>>2],i[C+44>>2]=p,p=i[E+4>>2],i[C+32>>2]=i[E>>2],i[C+36>>2]=p,AI(w,C+48|0,C+32|0),p=i[C+268>>2],i[E+8>>2]=i[C+264>>2],i[E+12>>2]=p,p=i[C+260>>2],i[E>>2]=i[C+256>>2],i[E+4>>2]=p,p=i[C+284>>2],i[C+24>>2]=i[C+280>>2],i[C+28>>2]=p,p=i[C+276>>2],i[C+16>>2]=i[C+272>>2],i[C+20>>2]=p,p=i[g+12>>2],i[C+8>>2]=i[g+8>>2],i[C+12>>2]=p,p=i[g+4>>2],i[C>>2]=i[g>>2],i[C+4>>2]=p,AI(w,C+16|0,C),w=i[C+268>>2],i[g+8>>2]=i[C+264>>2],i[g+12>>2]=w,w=i[C+260>>2],i[g>>2]=i[C+256>>2],i[g+4>>2]=w,i[g+12>>2]=(o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24)^D,i[g+8>>2]=(o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24)^h,i[g+4>>2]=(o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24)^y,i[g>>2]=(o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24)^f,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^e,i[g+68>>2]=(o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24)^c,i[g+72>>2]=(o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24)^t,i[g+76>>2]=(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24)^r,10!=(0|(n=n+1|0)););s=C+288|0}function q(A,I){var g,B=0,Q=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0;if(s=g=s-48|0,!((B=nI(A))||(B=-26,I-3>>>0<4294967294))){_=i[A+44>>2],B=i[A+48>>2],i[g+4>>2]=0,Q=i[A+40>>2],i[g+32>>2]=B,i[g+16>>2]=-1,i[g+12>>2]=Q,B=((e=(Q=B<<3)>>>0<_>>>0?_:Q)>>>0)/((_=B<<2)>>>0)|0,i[g+24>>2]=B,i[g+28>>2]=B<<2,i[g+20>>2]=a(B,_),B=i[A+52>>2],i[g+40>>2]=I,i[g+36>>2]=B,h=I=s,s=B=I-1152&-64,I=-25;A:{if(!(!(_=g+4|0)|!A)&&(Q=K(i[_+20>>2]<<3),i[_+4>>2]=Q,I=-22,Q)){I:{if((I=i[_+16>>2])&&1024==(((Q=I<<10)>>>0)/(I>>>0)|0)&&(I=K(12),i[_>>2]=I,I)){if(i[I>>2]=0,i[I+4>>2]=0,I=tI(B+128|0,Q),i[9404]=I,I)i[B+128>>2]=0;else if(I=i[B+128>>2])break I;BA(i[_>>2]),i[_>>2]=0}WI(_,i[A+56>>2]),s=h,I=-22;break A}if(i[i[_>>2]>>2]=I,i[i[_>>2]+4>>2]=I,i[i[_>>2]+8>>2]=Q,D=i[_+36>>2],eA(I=B+128|0,0,0,64),i[B+124>>2]=i[A+48>>2],WA(I,Q=B+124|0,4,0),i[B+124>>2]=i[A+4>>2],WA(I,Q,4,0),i[B+124>>2]=i[A+44>>2],WA(I,Q,4,0),i[B+124>>2]=i[A+40>>2],WA(I,Q,4,0),i[B+124>>2]=19,WA(I,Q,4,0),i[B+124>>2]=D,WA(I,Q,4,0),i[B+124>>2]=i[A+12>>2],WA(I,Q,4,0),(Q=i[A+8>>2])&&(WA(I,Q,i[A+12>>2],0),1&C[A+56|0]&&(XC(i[A+8>>2],i[A+12>>2]),i[A+12>>2]=0)),i[B+124>>2]=i[A+20>>2],WA(I=B+128|0,B+124|0,4,0),(Q=i[A+16>>2])&&WA(I,Q,i[A+20>>2],0),i[B+124>>2]=i[A+28>>2],WA(I=B+128|0,B+124|0,4,0),(Q=i[A+24>>2])&&(WA(I,Q,i[A+28>>2],0),2&o[A+56|0]&&(XC(i[A+24>>2],i[A+28>>2]),i[A+28>>2]=0)),i[B+124>>2]=i[A+36>>2],WA(I=B+128|0,B+124|0,4,0),(Q=i[A+32>>2])&&WA(I,Q,i[A+36>>2],0),Hg(B+128|0,B+48|0,64),XC(B+112|0,8),i[_+28>>2])for(Q=0;;){for(i[B+112>>2]=0,i[B+116>>2]=Q,aA(B+128|0,1024,B+48|0,72),D=i[i[_>>2]+4>>2]+(a(i[_+24>>2],Q)<<10)|0,I=0;c=(r=I<<3)+D|0,t=i[4+(y=(e=B+128|0)+r|0)>>2],i[c>>2]=i[y>>2],i[c+4>>2]=t,y=(c=8|r)+D|0,t=i[4+(c=c+e|0)>>2],i[y>>2]=i[c>>2],i[y+4>>2]=t,y=(c=16|r)+D|0,t=i[4+(c=c+e|0)>>2],i[y>>2]=i[c>>2],i[y+4>>2]=t,c=(r|=24)+D|0,y=i[4+(r=r+e|0)>>2],i[c>>2]=i[r>>2],i[c+4>>2]=y,128!=(0|(I=I+4|0)););for(i[B+112>>2]=1,aA(e,1024,B+48|0,72),D=1024+(i[i[_>>2]+4>>2]+(a(i[_+24>>2],Q)<<10)|0)|0,I=0;c=(r=I<<3)+D|0,t=i[4+(y=(e=B+128|0)+r|0)>>2],i[c>>2]=i[y>>2],i[c+4>>2]=t,y=(c=8|r)+D|0,t=i[4+(c=c+e|0)>>2],i[y>>2]=i[c>>2],i[y+4>>2]=t,y=(c=16|r)+D|0,t=i[4+(c=c+e|0)>>2],i[y>>2]=i[c>>2],i[y+4>>2]=t,c=(r|=24)+D|0,e=i[4+(r=r+e|0)>>2],i[c>>2]=i[r>>2],i[c+4>>2]=e,128!=(0|(I=I+4|0)););if(!((Q=Q+1|0)>>>0>2]))break}XC(B+128|0,1024),XC(B+48|0,72),I=0}s=h}if(B=I,!I){if(i[g+12>>2])for(;;){if(s=I=s-80|0,!(!(_=g+4|0)|!i[_+28>>2])){for(C[I+72|0]=0,i[I+64>>2]=p,B=0;i[I+76>>2]=0,Q=i[I+76>>2],i[I+56>>2]=i[I+72>>2],i[I+60>>2]=Q,i[I+68>>2]=B,Q=i[I+68>>2],i[I+48>>2]=i[I+64>>2],i[I+52>>2]=Q,F(_,I+48|0),(B=B+1|0)>>>0<(Q=i[_+28>>2])>>>0;);if(C[I+72|0]=1,Q){for(B=0;i[I+76>>2]=0,Q=i[I+76>>2],i[I+40>>2]=i[I+72>>2],i[I+44>>2]=Q,i[I+68>>2]=B,Q=i[I+68>>2],i[I+32>>2]=i[I+64>>2],i[I+36>>2]=Q,F(_,I+32|0),(B=B+1|0)>>>0<(Q=i[_+28>>2])>>>0;);if(C[I+72|0]=2,Q){for(B=0;i[I+76>>2]=0,Q=i[I+76>>2],i[I+24>>2]=i[I+72>>2],i[I+28>>2]=Q,i[I+68>>2]=B,Q=i[I+68>>2],i[I+16>>2]=i[I+64>>2],i[I+20>>2]=Q,F(_,I+16|0),(B=B+1|0)>>>0<(Q=i[_+28>>2])>>>0;);if(C[I+72|0]=3,Q)for(B=0;i[I+76>>2]=0,Q=i[I+76>>2],i[I+8>>2]=i[I+72>>2],i[I+12>>2]=Q,i[I+68>>2]=B,Q=i[I+68>>2],i[I>>2]=i[I+64>>2],i[I+4>>2]=Q,F(_,I),(B=B+1|0)>>>0>2];);}}}if(s=I+80|0,!((p=p+1|0)>>>0>2]))break}if(s=I=s-2048|0,!(!A|!(B=g+4|0))){if(p=i[B+24>>2],Ng(I+1024|0,c=(i[i[B>>2]+4>>2]+(p<<10)|0)-1024|0,1024),(y=i[B+28>>2])>>>0>=2)for(D=1;;){for(_=c+(a(D,p)<<10)|0,r=0;t=i[(h=(Q=r<<3)+(e=I+1024|0)|0)>>2],w=i[(f=Q+_|0)>>2],f=i[h+4>>2]^i[f+4>>2],i[h>>2]=t^w,i[h+4>>2]=f,f=i[(h=(t=8|Q)+e|0)>>2],w=i[(t=_+t|0)>>2],t=i[h+4>>2]^i[t+4>>2],i[h>>2]=f^w,i[h+4>>2]=t,f=i[(h=(t=16|Q)+e|0)>>2],w=i[(t=_+t|0)>>2],t=i[h+4>>2]^i[t+4>>2],i[h>>2]=f^w,i[h+4>>2]=t,h=i[(Q=(h=e)+(e=24|Q)|0)>>2],t=i[(e=_+e|0)>>2],e=i[Q+4>>2]^i[e+4>>2],i[Q>>2]=t^h,i[Q+4>>2]=e,128!=(0|(r=r+4|0)););if((0|y)==(0|(D=D+1|0)))break}_=Ng(I,I+1024|0,1024),aA(i[A>>2],i[A+4>>2],_,1024),XC(_+1024|0,1024),XC(_,1024),WI(B,i[A+56>>2])}s=I+2048|0,B=0}}return s=g+48|0,B}function z(A,I,g,B,Q){var E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0;for(E=s+-64|0,a=i[A+60>>2],_=i[A+56>>2],P=i[A+52>>2],L=i[A+48>>2],c=i[A+44>>2],t=i[A+40>>2],r=i[A+36>>2],e=i[A+32>>2],y=i[A+28>>2],h=i[A+24>>2],D=i[A+20>>2],f=i[A+16>>2],p=i[A+12>>2],w=i[A+8>>2],n=i[A+4>>2],k=i[A>>2];;){if(!Q&B>>>0>63|Q)F=g;else{if(i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,i[E+24>>2]=0,i[E+28>>2]=0,i[E+16>>2]=0,i[E+20>>2]=0,i[E+8>>2]=0,i[E+12>>2]=0,i[E>>2]=0,i[E+4>>2]=0,N=0,B|Q)for(;C[N+E|0]=o[I+N|0],!Q&(N=N+1|0)>>>0>>0|Q;);I=F=E,O=g}for(q=20,S=k,Y=n,J=w,l=p,N=f,g=D,M=h,K=y,U=e,x=r,d=t,G=a,v=_,u=P,m=L,b=c;H=N,S=Lg((N=S+N|0)^m,16),H=m=Lg(H^(U=S+U|0),12),m=Lg((R=N+m|0)^S,8),N=Lg(H^(U=m+U|0),7),G=Lg((S=K+l|0)^G,16),K=Lg((b=G+b|0)^K,12),l=Lg((J=M+J|0)^v,16),M=Lg((d=l+d|0)^M,12),v=(z=S+K|0)+N|0,j=Lg((J=M+J|0)^l,8),S=Lg(v^j,16),l=Lg((Y=g+Y|0)^u,16),g=Lg((x=l+x|0)^g,12),H=N,u=Lg((Y=g+Y|0)^l,8),H=Lg(H^(N=(X=u+x|0)+S|0),12),v=Lg(S^(l=H+v|0),8),N=Lg((x=v+N|0)^H,7),H=U,U=J,S=Lg(G^z,8),J=Lg((G=S+b|0)^K,7),u=Lg((U=U+J|0)^u,16),b=Lg((K=H+u|0)^J,12),u=Lg(u^(J=b+U|0),8),K=Lg((U=K+u|0)^b,7),b=G,G=Y,Y=Lg((d=d+j|0)^M,7),M=b+(m=Lg((G=G+Y|0)^m,16))|0,b=G,G=Lg(M^Y,12),m=Lg(m^(Y=b+G|0),8),M=Lg((b=M+m|0)^G,7),H=d,G=S,S=Lg(g^X,7),G=Lg(G^(d=S+R|0),16),R=Lg((g=H+G|0)^S,12),G=Lg(G^(S=R+d|0),8),g=Lg((d=g+G|0)^R,7),q=q-2|0;);if(q=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,R=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,z=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,j=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,X=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,H=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,W=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,V=o[I+32|0]|o[I+33|0]<<8|o[I+34|0]<<16|o[I+35|0]<<24,Z=o[I+36|0]|o[I+37|0]<<8|o[I+38|0]<<16|o[I+39|0]<<24,T=o[I+40|0]|o[I+41|0]<<8|o[I+42|0]<<16|o[I+43|0]<<24,$=o[I+44|0]|o[I+45|0]<<8|o[I+46|0]<<16|o[I+47|0]<<24,AA=o[I+48|0]|o[I+49|0]<<8|o[I+50|0]<<16|o[I+51|0]<<24,IA=o[I+52|0]|o[I+53|0]<<8|o[I+54|0]<<16|o[I+55|0]<<24,gA=o[I+56|0]|o[I+57|0]<<8|o[I+58|0]<<16|o[I+59|0]<<24,CA=o[I+60|0]|o[I+61|0]<<8|o[I+62|0]<<16|o[I+63|0]<<24,S=S+k^(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24),C[0|F]=S,C[F+1|0]=S>>>8,C[F+2|0]=S>>>16,C[F+3|0]=S>>>24,S=G+a^CA,C[F+60|0]=S,C[F+61|0]=S>>>8,C[F+62|0]=S>>>16,C[F+63|0]=S>>>24,S=v+_^gA,C[F+56|0]=S,C[F+57|0]=S>>>8,C[F+58|0]=S>>>16,C[F+59|0]=S>>>24,S=u+P^IA,C[F+52|0]=S,C[F+53|0]=S>>>8,C[F+54|0]=S>>>16,C[F+55|0]=S>>>24,S=m+L^AA,C[F+48|0]=S,C[F+49|0]=S>>>8,C[F+50|0]=S>>>16,C[F+51|0]=S>>>24,S=b+c^$,C[F+44|0]=S,C[F+45|0]=S>>>8,C[F+46|0]=S>>>16,C[F+47|0]=S>>>24,S=d+t^T,C[F+40|0]=S,C[F+41|0]=S>>>8,C[F+42|0]=S>>>16,C[F+43|0]=S>>>24,S=x+r^Z,C[F+36|0]=S,C[F+37|0]=S>>>8,C[F+38|0]=S>>>16,C[F+39|0]=S>>>24,S=U+e^V,C[F+32|0]=S,C[F+33|0]=S>>>8,C[F+34|0]=S>>>16,C[F+35|0]=S>>>24,K=K+y^W,C[F+28|0]=K,C[F+29|0]=K>>>8,C[F+30|0]=K>>>16,C[F+31|0]=K>>>24,M=H^M+h,C[F+24|0]=M,C[F+25|0]=M>>>8,C[F+26|0]=M>>>16,C[F+27|0]=M>>>24,g=X^g+D,C[F+20|0]=g,C[F+21|0]=g>>>8,C[F+22|0]=g>>>16,C[F+23|0]=g>>>24,g=j^N+f,C[F+16|0]=g,C[F+17|0]=g>>>8,C[F+18|0]=g>>>16,C[F+19|0]=g>>>24,g=z^l+p,C[F+12|0]=g,C[F+13|0]=g>>>8,C[F+14|0]=g>>>16,C[F+15|0]=g>>>24,g=R^J+w,C[F+8|0]=g,C[F+9|0]=g>>>8,C[F+10|0]=g>>>16,C[F+11|0]=g>>>24,g=q^Y+n,C[F+4|0]=g,C[F+5|0]=g>>>8,C[F+6|0]=g>>>16,C[F+7|0]=g>>>24,P=!(L=L+1|0)+P|0,!Q&B>>>0<=64){if(!(!(B|Q)|!Q&B>>>0>63|!!(0|Q)))for(N=0;C[N+O|0]=o[F+N|0],B>>>0>(N=N+1|0)>>>0;);i[A+52>>2]=P,i[A+48>>2]=L;break}I=I- -64|0,g=F- -64|0,Q=Q-1|0,Q=(B=B+-64|0)>>>0<4294967232?Q+1|0:Q}}function j(A,I){I|=0;var g,B=0,Q=0,o=0,E=0,a=0,_=0,c=0;return s=g=s-704|0,B=80+((Q=i[72+(A|=0)>>2]>>>3&127)+A|0)|0,Q>>>0>=112?(Ng(B,35056,128-Q|0),k(A,Q=A+80|0,g,g+640|0),bg(Q,0,112)):Ng(B,35056,112-Q|0),_=(o=i[A+64>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+68>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[A+192|0]=B,C[A+193|0]=B>>>8,C[A+194|0]=B>>>16,C[A+195|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[A+196|0]=Q,C[A+197|0]=Q>>>8,C[A+198|0]=Q>>>16,C[A+199|0]=Q>>>24,_=(o=i[A+72>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+76>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[A+200|0]=B,C[A+201|0]=B>>>8,C[A+202|0]=B>>>16,C[A+203|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[A+204|0]=Q,C[A+205|0]=Q>>>8,C[A+206|0]=Q>>>16,C[A+207|0]=Q>>>24,k(A,A+80|0,g,g+640|0),_=(o=i[A>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+4>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[0|I]=B,C[I+1|0]=B>>>8,C[I+2|0]=B>>>16,C[I+3|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+4|0]=Q,C[I+5|0]=Q>>>8,C[I+6|0]=Q>>>16,C[I+7|0]=Q>>>24,_=(o=i[A+8>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+12>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+8|0]=B,C[I+9|0]=B>>>8,C[I+10|0]=B>>>16,C[I+11|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+12|0]=Q,C[I+13|0]=Q>>>8,C[I+14|0]=Q>>>16,C[I+15|0]=Q>>>24,_=(o=i[A+16>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+20>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+16|0]=B,C[I+17|0]=B>>>8,C[I+18|0]=B>>>16,C[I+19|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+20|0]=Q,C[I+21|0]=Q>>>8,C[I+22|0]=Q>>>16,C[I+23|0]=Q>>>24,_=(o=i[A+24>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+28>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+24|0]=B,C[I+25|0]=B>>>8,C[I+26|0]=B>>>16,C[I+27|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+28|0]=Q,C[I+29|0]=Q>>>8,C[I+30|0]=Q>>>16,C[I+31|0]=Q>>>24,_=(o=i[A+32>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+36>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+32|0]=B,C[I+33|0]=B>>>8,C[I+34|0]=B>>>16,C[I+35|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+36|0]=Q,C[I+37|0]=Q>>>8,C[I+38|0]=Q>>>16,C[I+39|0]=Q>>>24,_=(o=i[A+40>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+44>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+40|0]=B,C[I+41|0]=B>>>8,C[I+42|0]=B>>>16,C[I+43|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+44|0]=Q,C[I+45|0]=Q>>>8,C[I+46|0]=Q>>>16,C[I+47|0]=Q>>>24,_=(o=i[A+48>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+52>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+48|0]=B,C[I+49|0]=B>>>8,C[I+50|0]=B>>>16,C[I+51|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+52|0]=Q,C[I+53|0]=Q>>>8,C[I+54|0]=Q>>>16,C[I+55|0]=Q>>>24,_=(o=i[A+56>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,B=I,c=E<<24,E=(a=-16777216&o)>>>24|0,I=c|a<<8|-16777216&((255&(I=i[A+60>>2]))<<24|o>>>8)|16711680&((16777215&I)<<8|o>>>24)|I>>>8&65280|I>>>24,C[B+56|0]=I,C[B+57|0]=I>>>8,C[B+58|0]=I>>>16,C[B+59|0]=I>>>24,I=Q|E|_,I|=Q=0,C[B+60|0]=I,C[B+61|0]=I>>>8,C[B+62|0]=I>>>16,C[B+63|0]=I>>>24,XC(g,704),XC(A,208),s=g+704|0,0}function X(A,I,g){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S,N,G=0;s=B=s-224|0,c=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,t=o[0|(G=g- -64|0)]|o[G+1|0]<<8|o[G+2|0]<<16|o[G+3|0]<<24,r=o[g+80|0]|o[g+81|0]<<8|o[g+82|0]<<16|o[g+83|0]<<24,e=o[g+32|0]|o[g+33|0]<<8|o[g+34|0]<<16|o[g+35|0]<<24,y=o[g+48|0]|o[g+49|0]<<8|o[g+50|0]<<16|o[g+51|0]<<24,Q=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,h=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,D=o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24,f=o[g+84|0]|o[g+85|0]<<8|o[g+86|0]<<16|o[g+87|0]<<24,p=o[g+36|0]|o[g+37|0]<<8|o[g+38|0]<<16|o[g+39|0]<<24,w=o[g+52|0]|o[g+53|0]<<8|o[g+54|0]<<16|o[g+55|0]<<24,E=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,n=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,k=o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24,F=o[g+88|0]|o[g+89|0]<<8|o[g+90|0]<<16|o[g+91|0]<<24,S=o[g+40|0]|o[g+41|0]<<8|o[g+42|0]<<16|o[g+43|0]<<24,N=o[g+56|0]|o[g+57|0]<<8|o[g+58|0]<<16|o[g+59|0]<<24,a=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=(_=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)^(o[g+44|0]|o[g+45|0]<<8|o[g+46|0]<<16|o[g+47|0]<<24)&(o[g+60|0]|o[g+61|0]<<8|o[g+62|0]<<16|o[g+63|0]<<24)^(o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24)^(o[g+92|0]|o[g+93|0]<<8|o[g+94|0]<<16|o[g+95|0]<<24)^(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24),C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=S&N^k^F^n^E,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=p&w^D^f^h^Q,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=e&y^c^t^r^a,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,A=i[g+92>>2],i[B+216>>2]=i[g+88>>2],i[B+220>>2]=A,A=i[g+84>>2],i[B+208>>2]=i[g+80>>2],i[B+212>>2]=A,A=i[g+76>>2],i[B+184>>2]=i[g+72>>2],i[B+188>>2]=A,A=i[G+4>>2],i[B+176>>2]=i[G>>2],i[B+180>>2]=A,A=i[g+92>>2],i[B+168>>2]=i[g+88>>2],i[B+172>>2]=A,A=i[g+84>>2],i[B+160>>2]=i[g+80>>2],i[B+164>>2]=A,AI(A=B+192|0,B+176|0,B+160|0),I=i[B+204>>2],i[g+88>>2]=i[B+200>>2],i[g+92>>2]=I,I=i[B+196>>2],i[g+80>>2]=i[B+192>>2],i[g+84>>2]=I,I=i[g+60>>2],i[B+152>>2]=i[g+56>>2],i[B+156>>2]=I,I=i[g+52>>2],i[B+144>>2]=i[g+48>>2],i[B+148>>2]=I,I=i[g+76>>2],i[B+136>>2]=i[g+72>>2],i[B+140>>2]=I,I=i[G+4>>2],i[B+128>>2]=i[G>>2],i[B+132>>2]=I,AI(A,B+144|0,B+128|0),I=i[B+204>>2],i[g+72>>2]=i[B+200>>2],i[g+76>>2]=I,I=i[B+196>>2],i[G>>2]=i[B+192>>2],i[G+4>>2]=I,I=i[g+44>>2],i[B+120>>2]=i[g+40>>2],i[B+124>>2]=I,I=i[g+36>>2],i[B+112>>2]=i[g+32>>2],i[B+116>>2]=I,I=i[g+60>>2],i[B+104>>2]=i[g+56>>2],i[B+108>>2]=I,I=i[g+52>>2],i[B+96>>2]=i[g+48>>2],i[B+100>>2]=I,AI(A,B+112|0,B+96|0),I=i[B+204>>2],i[g+56>>2]=i[B+200>>2],i[g+60>>2]=I,I=i[B+196>>2],i[g+48>>2]=i[B+192>>2],i[g+52>>2]=I,I=i[g+28>>2],i[B+88>>2]=i[g+24>>2],i[B+92>>2]=I,I=i[g+20>>2],i[B+80>>2]=i[g+16>>2],i[B+84>>2]=I,I=i[g+44>>2],i[B+72>>2]=i[g+40>>2],i[B+76>>2]=I,I=i[g+36>>2],i[B+64>>2]=i[g+32>>2],i[B+68>>2]=I,AI(A,B+80|0,B- -64|0),I=i[B+204>>2],i[g+40>>2]=i[B+200>>2],i[g+44>>2]=I,I=i[B+196>>2],i[g+32>>2]=i[B+192>>2],i[g+36>>2]=I,I=i[g+12>>2],i[B+56>>2]=i[g+8>>2],i[B+60>>2]=I,I=i[g+4>>2],i[B+48>>2]=i[g>>2],i[B+52>>2]=I,I=i[g+28>>2],i[B+40>>2]=i[g+24>>2],i[B+44>>2]=I,I=i[g+20>>2],i[B+32>>2]=i[g+16>>2],i[B+36>>2]=I,AI(A,B+48|0,B+32|0),I=i[B+204>>2],i[g+24>>2]=i[B+200>>2],i[g+28>>2]=I,I=i[B+196>>2],i[g+16>>2]=i[B+192>>2],i[g+20>>2]=I,I=i[B+220>>2],i[B+24>>2]=i[B+216>>2],i[B+28>>2]=I,I=i[B+212>>2],i[B+16>>2]=i[B+208>>2],i[B+20>>2]=I,I=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=I,I=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=I,AI(A,B+16|0,B),A=i[B+192>>2],I=i[B+196>>2],G=i[B+200>>2],i[g+12>>2]=_^i[B+204>>2],i[g+8>>2]=G^E,i[g+4>>2]=I^Q,i[g>>2]=A^a,s=B+224|0}function O(A,I,g){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n=0,k=0,F=0,S=0,N=0;s=B=s-224|0,F=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,k=o[0|(n=g- -64|0)]|o[n+1|0]<<8|o[n+2|0]<<16|o[n+3|0]<<24,Q=o[g+80|0]|o[g+81|0]<<8|o[g+82|0]<<16|o[g+83|0]<<24,E=o[g+32|0]|o[g+33|0]<<8|o[g+34|0]<<16|o[g+35|0]<<24,a=o[g+48|0]|o[g+49|0]<<8|o[g+50|0]<<16|o[g+51|0]<<24,S=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,_=o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24,c=o[g+84|0]|o[g+85|0]<<8|o[g+86|0]<<16|o[g+87|0]<<24,t=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,r=o[g+36|0]|o[g+37|0]<<8|o[g+38|0]<<16|o[g+39|0]<<24,e=o[g+52|0]|o[g+53|0]<<8|o[g+54|0]<<16|o[g+55|0]<<24,N=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,y=o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24,h=o[g+88|0]|o[g+89|0]<<8|o[g+90|0]<<16|o[g+91|0]<<24,D=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,f=o[g+40|0]|o[g+41|0]<<8|o[g+42|0]<<16|o[g+43|0]<<24,p=o[g+56|0]|o[g+57|0]<<8|o[g+58|0]<<16|o[g+59|0]<<24,w=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=(o[g+44|0]|o[g+45|0]<<8|o[g+46|0]<<16|o[g+47|0]<<24)&(o[g+60|0]|o[g+61|0]<<8|o[g+62|0]<<16|o[g+63|0]<<24)^(o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24)^(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24)^(o[g+92|0]|o[g+93|0]<<8|o[g+94|0]<<16|o[g+95|0]<<24)^(o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24),C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,N=f&p^N^h^D^y,C[A+8|0]=N,C[A+9|0]=N>>>8,C[A+10|0]=N>>>16,C[A+11|0]=N>>>24,S=r&e^S^c^t^_,C[A+4|0]=S,C[A+5|0]=S>>>8,C[A+6|0]=S>>>16,C[A+7|0]=S>>>24,F=E&a^F^k^Q^w,C[0|A]=F,C[A+1|0]=F>>>8,C[A+2|0]=F>>>16,C[A+3|0]=F>>>24,A=i[g+92>>2],i[B+216>>2]=i[g+88>>2],i[B+220>>2]=A,A=i[g+84>>2],i[B+208>>2]=i[g+80>>2],i[B+212>>2]=A,A=i[g+76>>2],i[B+184>>2]=i[g+72>>2],i[B+188>>2]=A,A=i[n+4>>2],i[B+176>>2]=i[n>>2],i[B+180>>2]=A,A=i[g+92>>2],i[B+168>>2]=i[g+88>>2],i[B+172>>2]=A,A=i[g+84>>2],i[B+160>>2]=i[g+80>>2],i[B+164>>2]=A,AI(A=B+192|0,B+176|0,B+160|0),k=i[B+204>>2],i[g+88>>2]=i[B+200>>2],i[g+92>>2]=k,k=i[B+196>>2],i[g+80>>2]=i[B+192>>2],i[g+84>>2]=k,k=i[g+60>>2],i[B+152>>2]=i[g+56>>2],i[B+156>>2]=k,k=i[g+52>>2],i[B+144>>2]=i[g+48>>2],i[B+148>>2]=k,k=i[g+76>>2],i[B+136>>2]=i[g+72>>2],i[B+140>>2]=k,k=i[n+4>>2],i[B+128>>2]=i[n>>2],i[B+132>>2]=k,AI(A,B+144|0,B+128|0),k=i[B+204>>2],i[g+72>>2]=i[B+200>>2],i[g+76>>2]=k,k=i[B+196>>2],i[n>>2]=i[B+192>>2],i[n+4>>2]=k,n=i[g+44>>2],i[B+120>>2]=i[g+40>>2],i[B+124>>2]=n,n=i[g+36>>2],i[B+112>>2]=i[g+32>>2],i[B+116>>2]=n,n=i[g+60>>2],i[B+104>>2]=i[g+56>>2],i[B+108>>2]=n,n=i[g+52>>2],i[B+96>>2]=i[g+48>>2],i[B+100>>2]=n,AI(A,B+112|0,B+96|0),n=i[B+204>>2],i[g+56>>2]=i[B+200>>2],i[g+60>>2]=n,n=i[B+196>>2],i[g+48>>2]=i[B+192>>2],i[g+52>>2]=n,n=i[g+28>>2],i[B+88>>2]=i[g+24>>2],i[B+92>>2]=n,n=i[g+20>>2],i[B+80>>2]=i[g+16>>2],i[B+84>>2]=n,n=i[g+44>>2],i[B+72>>2]=i[g+40>>2],i[B+76>>2]=n,n=i[g+36>>2],i[B+64>>2]=i[g+32>>2],i[B+68>>2]=n,AI(A,B+80|0,B- -64|0),n=i[B+204>>2],i[g+40>>2]=i[B+200>>2],i[g+44>>2]=n,n=i[B+196>>2],i[g+32>>2]=i[B+192>>2],i[g+36>>2]=n,n=i[g+12>>2],i[B+56>>2]=i[g+8>>2],i[B+60>>2]=n,n=i[g+4>>2],i[B+48>>2]=i[g>>2],i[B+52>>2]=n,n=i[g+28>>2],i[B+40>>2]=i[g+24>>2],i[B+44>>2]=n,n=i[g+20>>2],i[B+32>>2]=i[g+16>>2],i[B+36>>2]=n,AI(A,B+48|0,B+32|0),n=i[B+204>>2],i[g+24>>2]=i[B+200>>2],i[g+28>>2]=n,n=i[B+196>>2],i[g+16>>2]=i[B+192>>2],i[g+20>>2]=n,n=i[B+220>>2],i[B+24>>2]=i[B+216>>2],i[B+28>>2]=n,n=i[B+212>>2],i[B+16>>2]=i[B+208>>2],i[B+20>>2]=n,n=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=n,n=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=n,AI(A,B+16|0,B),A=i[B+192>>2],n=i[B+196>>2],k=i[B+200>>2],i[g+12>>2]=I^i[B+204>>2],i[g+8>>2]=k^N,i[g+4>>2]=n^S,i[g>>2]=A^F,s=B+224|0}function W(A,I){var g,B,Q,E,a,_,c,t,r,e,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0;s=g=s-800|0,y=i[I+44>>2],D=i[I+84>>2],f=i[I+48>>2],p=i[I+88>>2],w=i[I+52>>2],h=i[I+92>>2],S=i[I+56>>2],n=i[I+96>>2],K=i[I+60>>2],N=i[I+100>>2],H=i[(U=I- -64|0)>>2],Y=i[I+104>>2],J=i[I+68>>2],d=i[I+108>>2],m=i[I+72>>2],l=i[I+112>>2],u=i[I+40>>2],x=i[I+80>>2],k=i[I+76>>2],F=i[I+116>>2],i[g+324>>2]=k+F,i[g+320>>2]=m+l,i[g+316>>2]=J+d,i[g+312>>2]=H+Y,i[g+308>>2]=N+K,i[g+304>>2]=n+S,i[g+300>>2]=h+w,i[g+296>>2]=f+p,i[g+292>>2]=y+D,i[g+288>>2]=u+x,i[g+36>>2]=F-k,i[g+32>>2]=l-m,i[g+28>>2]=d-J,i[g+24>>2]=Y-H,i[g+20>>2]=N-K,i[g+16>>2]=n-S,i[g+12>>2]=h-w,i[g+8>>2]=p-f,i[g+4>>2]=D-y,i[g>>2]=x-u,b(y=g+288|0,y,g),b(f=g+240|0,I,w=I+40|0),R(D=g+192|0,f),b(D,y,D),i[g+452>>2]=0,i[g+456>>2]=0,i[g+460>>2]=0,i[g+464>>2]=0,i[g+468>>2]=0,i[g+436>>2]=0,i[g+440>>2]=0,i[g+444>>2]=0,i[g+448>>2]=0,i[g+432>>2]=1,GA(p=g+576|0,g+432|0,D),b(D=g+720|0,p,y),b(K=g+672|0,p,f),b(n=g+48|0,D,K),b(n,n,y=I+120|0),b(g+528|0,I,1632),b(g+480|0,w,1632),b(g+624|0,D,2944),b(D=g+336|0,y,n),QI(S=g+384|0,D),h=o[g+384|0],D=i[I+36>>2],y=i[I+32>>2],i[g+176>>2]=y,i[g+180>>2]=D,f=i[I+28>>2],D=i[I+24>>2],i[g+168>>2]=D,i[g+172>>2]=f,p=i[I+20>>2],f=i[I+16>>2],i[g+160>>2]=f,i[g+164>>2]=p,w=i[I+12>>2],p=i[I+8>>2],i[g+152>>2]=p,i[g+156>>2]=w,N=i[I+4>>2],w=i[I>>2],i[g+144>>2]=w,i[g+148>>2]=N,N=i[I+44>>2],H=i[I+48>>2],Y=i[I+52>>2],J=i[I+56>>2],d=i[I+60>>2],m=i[U>>2],l=i[I+68>>2],u=i[I+72>>2],x=i[I+76>>2],U=i[I+40>>2],P=i[g+484>>2],k=i[g+148>>2],q=i[g+492>>2],F=i[g+156>>2],z=i[g+500>>2],G=i[g+164>>2],j=i[g+508>>2],M=i[g+172>>2],X=i[g+516>>2],v=i[g+180>>2],O=i[g+480>>2],W=i[g+488>>2],V=i[g+496>>2],Z=i[g+504>>2],h=0-(1&h)|0,i[g+176>>2]=y^h&(y^i[g+512>>2]),i[g+168>>2]=D^h&(D^Z),i[g+160>>2]=f^h&(f^V),i[g+152>>2]=p^h&(p^W),i[g+144>>2]=w^h&(w^O),i[g+180>>2]=v^h&(v^X),i[g+172>>2]=M^h&(M^j),i[g+164>>2]=G^h&(G^z),i[g+156>>2]=F^h&(F^q),i[g+148>>2]=k^h&(k^P),v=i[g+528>>2],P=i[g+532>>2],q=i[g+536>>2],z=i[g+540>>2],j=i[g+544>>2],X=i[g+548>>2],O=i[g+552>>2],W=i[g+556>>2],V=i[g+560>>2],Z=i[g+564>>2],y=i[g+672>>2],B=i[g+624>>2],D=i[g+676>>2],Q=i[g+628>>2],f=i[g+680>>2],E=i[g+632>>2],p=i[g+684>>2],a=i[g+636>>2],w=i[g+688>>2],_=i[g+640>>2],k=i[g+692>>2],c=i[g+644>>2],F=i[g+696>>2],t=i[g+648>>2],G=i[g+700>>2],r=i[g+652>>2],M=i[g+704>>2],e=i[g+656>>2],L=i[g+708>>2],i[g+708>>2]=L^h&(i[g+660>>2]^L),i[g+704>>2]=M^h&(M^e),i[g+700>>2]=G^h&(G^r),i[g+696>>2]=F^h&(F^t),i[g+692>>2]=k^h&(k^c),i[g+688>>2]=w^h&(w^_),i[g+684>>2]=p^h&(p^a),i[g+680>>2]=f^h&(f^E),i[g+676>>2]=D^h&(D^Q),i[g+672>>2]=y^h&(y^B),b(y=g+96|0,g+144|0,n),QI(S,y),D=i[I+84>>2],f=i[I+88>>2],p=i[I+92>>2],w=i[I+96>>2],n=i[I+100>>2],k=i[I+104>>2],F=i[I+108>>2],G=i[I+112>>2],M=i[I+80>>2],L=i[I+116>>2],I=0-(1&C[g+384|0])|0,y=x^h&(x^Z),i[g+420>>2]=L-(I&(0-y^y)^y),y=u^h&(u^V),i[g+416>>2]=G-(I&(0-y^y)^y),y=l^h&(l^W),i[g+412>>2]=F-(I&(0-y^y)^y),y=m^h&(m^O),i[g+408>>2]=k-(I&(0-y^y)^y),y=d^h&(d^X),i[g+404>>2]=n-(I&(0-y^y)^y),y=J^h&(J^j),i[g+400>>2]=w-(I&(0-y^y)^y),y=Y^h&(Y^z),i[g+396>>2]=p-(I&(0-y^y)^y),y=H^h&(H^q),i[g+392>>2]=f-(I&(0-y^y)^y),y=N^h&(N^P),i[g+388>>2]=D-(I&(0-y^y)^y),y=I,I=U^h&(U^v),i[g+384>>2]=M-(y&(0-I^I)^I),b(S,K,S),QI(g+768|0,S),I=0-(1&C[g+768|0])|0,y=i[g+384>>2],i[g+384>>2]=I&(0-y^y)^y,y=i[g+388>>2],i[g+388>>2]=I&(0-y^y)^y,y=i[g+392>>2],i[g+392>>2]=I&(0-y^y)^y,y=i[g+396>>2],i[g+396>>2]=I&(0-y^y)^y,y=i[g+400>>2],i[g+400>>2]=I&(0-y^y)^y,y=i[g+404>>2],i[g+404>>2]=I&(0-y^y)^y,y=i[g+408>>2],i[g+408>>2]=I&(0-y^y)^y,y=i[g+412>>2],i[g+412>>2]=I&(0-y^y)^y,y=i[g+416>>2],i[g+416>>2]=I&(0-y^y)^y,y=I,I=i[g+420>>2],i[g+420>>2]=y&(0-I^I)^I,QI(A,S),s=g+800|0}function V(A,I){var g,C,B,Q,E,a,_,c,t,r=0,e=0;s=g=s-288|0,C=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,B=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,Q=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,E=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,a=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,_=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,c=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,t=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,A=i[I+124>>2],i[g+280>>2]=i[I+120>>2],i[g+284>>2]=A,A=i[I+116>>2],i[g+272>>2]=i[I+112>>2],i[g+276>>2]=A,A=i[I+108>>2],i[g+248>>2]=i[I+104>>2],i[g+252>>2]=A,A=i[I+100>>2],i[g+240>>2]=i[I+96>>2],i[g+244>>2]=A,A=i[I+124>>2],i[g+232>>2]=i[I+120>>2],i[g+236>>2]=A,A=i[I+116>>2],i[g+224>>2]=i[I+112>>2],i[g+228>>2]=A,AI(e=g+256|0,g+240|0,g+224|0),A=i[g+268>>2],i[I+120>>2]=i[g+264>>2],i[I+124>>2]=A,A=i[g+260>>2],i[I+112>>2]=i[g+256>>2],i[I+116>>2]=A,A=i[I+92>>2],i[g+216>>2]=i[I+88>>2],i[g+220>>2]=A,A=i[I+84>>2],i[g+208>>2]=i[I+80>>2],i[g+212>>2]=A,A=i[I+108>>2],i[g+200>>2]=i[I+104>>2],i[g+204>>2]=A,A=i[I+100>>2],i[g+192>>2]=i[I+96>>2],i[g+196>>2]=A,AI(e,g+208|0,g+192|0),A=i[g+268>>2],i[I+104>>2]=i[g+264>>2],i[I+108>>2]=A,A=i[g+260>>2],i[I+96>>2]=i[g+256>>2],i[I+100>>2]=A,A=i[I+76>>2],i[g+184>>2]=i[I+72>>2],i[g+188>>2]=A,r=i[4+(A=I- -64|0)>>2],i[g+176>>2]=i[A>>2],i[g+180>>2]=r,r=i[I+92>>2],i[g+168>>2]=i[I+88>>2],i[g+172>>2]=r,r=i[I+84>>2],i[g+160>>2]=i[I+80>>2],i[g+164>>2]=r,AI(e,g+176|0,g+160|0),r=i[g+268>>2],i[I+88>>2]=i[g+264>>2],i[I+92>>2]=r,r=i[g+260>>2],i[I+80>>2]=i[g+256>>2],i[I+84>>2]=r,r=i[I+60>>2],i[g+152>>2]=i[I+56>>2],i[g+156>>2]=r,r=i[I+52>>2],i[g+144>>2]=i[I+48>>2],i[g+148>>2]=r,r=i[I+76>>2],i[g+136>>2]=i[I+72>>2],i[g+140>>2]=r,r=i[A+4>>2],i[g+128>>2]=i[A>>2],i[g+132>>2]=r,AI(e,g+144|0,g+128|0),r=i[g+268>>2],i[I+72>>2]=i[g+264>>2],i[I+76>>2]=r,r=i[g+260>>2],i[A>>2]=i[g+256>>2],i[A+4>>2]=r,r=i[I+44>>2],i[g+120>>2]=i[I+40>>2],i[g+124>>2]=r,r=i[I+36>>2],i[g+112>>2]=i[I+32>>2],i[g+116>>2]=r,r=i[I+60>>2],i[g+104>>2]=i[I+56>>2],i[g+108>>2]=r,r=i[I+52>>2],i[g+96>>2]=i[I+48>>2],i[g+100>>2]=r,AI(e,g+112|0,g+96|0),r=i[g+268>>2],i[I+56>>2]=i[g+264>>2],i[I+60>>2]=r,r=i[g+260>>2],i[I+48>>2]=i[g+256>>2],i[I+52>>2]=r,r=i[I+28>>2],i[g+88>>2]=i[I+24>>2],i[g+92>>2]=r,r=i[I+20>>2],i[g+80>>2]=i[I+16>>2],i[g+84>>2]=r,r=i[I+44>>2],i[g+72>>2]=i[I+40>>2],i[g+76>>2]=r,r=i[I+36>>2],i[g+64>>2]=i[I+32>>2],i[g+68>>2]=r,AI(e,g+80|0,g- -64|0),r=i[g+268>>2],i[I+40>>2]=i[g+264>>2],i[I+44>>2]=r,r=i[g+260>>2],i[I+32>>2]=i[g+256>>2],i[I+36>>2]=r,r=i[I+12>>2],i[g+56>>2]=i[I+8>>2],i[g+60>>2]=r,r=i[I+4>>2],i[g+48>>2]=i[I>>2],i[g+52>>2]=r,r=i[I+28>>2],i[g+40>>2]=i[I+24>>2],i[g+44>>2]=r,r=i[I+20>>2],i[g+32>>2]=i[I+16>>2],i[g+36>>2]=r,AI(e,g+48|0,g+32|0),r=i[g+268>>2],i[I+24>>2]=i[g+264>>2],i[I+28>>2]=r,r=i[g+260>>2],i[I+16>>2]=i[g+256>>2],i[I+20>>2]=r,r=i[g+284>>2],i[g+24>>2]=i[g+280>>2],i[g+28>>2]=r,r=i[g+276>>2],i[g+16>>2]=i[g+272>>2],i[g+20>>2]=r,r=i[I+12>>2],i[g+8>>2]=i[I+8>>2],i[g+12>>2]=r,r=i[I+4>>2],i[g>>2]=i[I>>2],i[g+4>>2]=r,AI(e,g+16|0,g),e=i[g+268>>2],i[I+8>>2]=i[g+264>>2],i[I+12>>2]=e,e=i[g+260>>2],i[I>>2]=i[g+256>>2],i[I+4>>2]=e,i[I+12>>2]=(o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)^c,i[I+8>>2]=(o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24)^_,i[I+4>>2]=(o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)^a,i[I>>2]=(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24)^t,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^E,i[I+68>>2]=(o[I+68|0]|o[I+69|0]<<8|o[I+70|0]<<16|o[I+71|0]<<24)^Q,i[I+72>>2]=(o[I+72|0]|o[I+73|0]<<8|o[I+74|0]<<16|o[I+75|0]<<24)^B,i[I+76>>2]=(o[I+76|0]|o[I+77|0]<<8|o[I+78|0]<<16|o[I+79|0]<<24)^C,s=g+288|0}function Z(A,I,g,C){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k=0,F=0,S=0,N=0;s=B=s-240|0,i[B+200>>2]=0,i[B+204>>2]=0,i[B+192>>2]=0,i[B+196>>2]=0,Ng(F=B+192|0,I,g),S=o[C+16|0]|o[C+17|0]<<8|o[C+18|0]<<16|o[C+19|0]<<24,N=o[0|(I=C- -64|0)]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,k=o[C+80|0]|o[C+81|0]<<8|o[C+82|0]<<16|o[C+83|0]<<24,Q=o[C+32|0]|o[C+33|0]<<8|o[C+34|0]<<16|o[C+35|0]<<24,E=o[C+48|0]|o[C+49|0]<<8|o[C+50|0]<<16|o[C+51|0]<<24,a=o[C+20|0]|o[C+21|0]<<8|o[C+22|0]<<16|o[C+23|0]<<24,_=o[C+68|0]|o[C+69|0]<<8|o[C+70|0]<<16|o[C+71|0]<<24,c=o[C+84|0]|o[C+85|0]<<8|o[C+86|0]<<16|o[C+87|0]<<24,t=o[C+36|0]|o[C+37|0]<<8|o[C+38|0]<<16|o[C+39|0]<<24,r=o[C+52|0]|o[C+53|0]<<8|o[C+54|0]<<16|o[C+55|0]<<24,e=o[C+24|0]|o[C+25|0]<<8|o[C+26|0]<<16|o[C+27|0]<<24,y=o[C+72|0]|o[C+73|0]<<8|o[C+74|0]<<16|o[C+75|0]<<24,h=o[C+88|0]|o[C+89|0]<<8|o[C+90|0]<<16|o[C+91|0]<<24,D=o[C+40|0]|o[C+41|0]<<8|o[C+42|0]<<16|o[C+43|0]<<24,f=o[C+56|0]|o[C+57|0]<<8|o[C+58|0]<<16|o[C+59|0]<<24,p=i[B+192>>2],w=i[B+196>>2],n=i[B+200>>2],i[B+204>>2]=(o[C+44|0]|o[C+45|0]<<8|o[C+46|0]<<16|o[C+47|0]<<24)&(o[C+60|0]|o[C+61|0]<<8|o[C+62|0]<<16|o[C+63|0]<<24)^(o[C+28|0]|o[C+29|0]<<8|o[C+30|0]<<16|o[C+31|0]<<24)^(o[C+76|0]|o[C+77|0]<<8|o[C+78|0]<<16|o[C+79|0]<<24)^i[B+204>>2]^(o[C+92|0]|o[C+93|0]<<8|o[C+94|0]<<16|o[C+95|0]<<24),i[B+200>>2]=D&f^h^n^y^e,i[B+196>>2]=t&r^c^w^_^a,i[B+192>>2]=Q&E^S^N^k^p,bg(g+F|0,0,16-g|0),Ng(A,F,g),g=i[B+192>>2],F=i[B+196>>2],S=i[B+200>>2],N=i[B+204>>2],A=i[C+92>>2],i[B+232>>2]=i[C+88>>2],i[B+236>>2]=A,A=i[C+84>>2],i[B+224>>2]=i[C+80>>2],i[B+228>>2]=A,A=i[C+76>>2],i[B+184>>2]=i[C+72>>2],i[B+188>>2]=A,A=i[I+4>>2],i[B+176>>2]=i[I>>2],i[B+180>>2]=A,A=i[C+92>>2],i[B+168>>2]=i[C+88>>2],i[B+172>>2]=A,A=i[C+84>>2],i[B+160>>2]=i[C+80>>2],i[B+164>>2]=A,AI(A=B+208|0,B+176|0,B+160|0),k=i[B+220>>2],i[C+88>>2]=i[B+216>>2],i[C+92>>2]=k,k=i[B+212>>2],i[C+80>>2]=i[B+208>>2],i[C+84>>2]=k,k=i[C+60>>2],i[B+152>>2]=i[C+56>>2],i[B+156>>2]=k,k=i[C+52>>2],i[B+144>>2]=i[C+48>>2],i[B+148>>2]=k,k=i[C+76>>2],i[B+136>>2]=i[C+72>>2],i[B+140>>2]=k,k=i[I+4>>2],i[B+128>>2]=i[I>>2],i[B+132>>2]=k,AI(A,B+144|0,B+128|0),k=i[B+220>>2],i[C+72>>2]=i[B+216>>2],i[C+76>>2]=k,k=i[B+212>>2],i[I>>2]=i[B+208>>2],i[I+4>>2]=k,I=i[C+44>>2],i[B+120>>2]=i[C+40>>2],i[B+124>>2]=I,I=i[C+36>>2],i[B+112>>2]=i[C+32>>2],i[B+116>>2]=I,I=i[C+60>>2],i[B+104>>2]=i[C+56>>2],i[B+108>>2]=I,I=i[C+52>>2],i[B+96>>2]=i[C+48>>2],i[B+100>>2]=I,AI(A,B+112|0,B+96|0),I=i[B+220>>2],i[C+56>>2]=i[B+216>>2],i[C+60>>2]=I,I=i[B+212>>2],i[C+48>>2]=i[B+208>>2],i[C+52>>2]=I,I=i[C+28>>2],i[B+88>>2]=i[C+24>>2],i[B+92>>2]=I,I=i[C+20>>2],i[B+80>>2]=i[C+16>>2],i[B+84>>2]=I,I=i[C+44>>2],i[B+72>>2]=i[C+40>>2],i[B+76>>2]=I,I=i[C+36>>2],i[B+64>>2]=i[C+32>>2],i[B+68>>2]=I,AI(A,B+80|0,B- -64|0),I=i[B+220>>2],i[C+40>>2]=i[B+216>>2],i[C+44>>2]=I,I=i[B+212>>2],i[C+32>>2]=i[B+208>>2],i[C+36>>2]=I,I=i[C+12>>2],i[B+56>>2]=i[C+8>>2],i[B+60>>2]=I,I=i[C+4>>2],i[B+48>>2]=i[C>>2],i[B+52>>2]=I,I=i[C+28>>2],i[B+40>>2]=i[C+24>>2],i[B+44>>2]=I,I=i[C+20>>2],i[B+32>>2]=i[C+16>>2],i[B+36>>2]=I,AI(A,B+48|0,B+32|0),I=i[B+220>>2],i[C+24>>2]=i[B+216>>2],i[C+28>>2]=I,I=i[B+212>>2],i[C+16>>2]=i[B+208>>2],i[C+20>>2]=I,I=i[B+236>>2],i[B+24>>2]=i[B+232>>2],i[B+28>>2]=I,I=i[B+228>>2],i[B+16>>2]=i[B+224>>2],i[B+20>>2]=I,I=i[C+12>>2],i[B+8>>2]=i[C+8>>2],i[B+12>>2]=I,I=i[C+4>>2],i[B>>2]=i[C>>2],i[B+4>>2]=I,AI(A,B+16|0,B),A=i[B+208>>2],I=i[B+212>>2],k=i[B+216>>2],i[C+12>>2]=N^i[B+220>>2],i[C+8>>2]=k^S,i[C+4>>2]=I^F,i[C>>2]=A^g,s=B+240|0}function T(A,I,g,B,Q){A|=0,I|=0,g|=0,B|=0;var i=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0;if(a=1886610805^(B=o[0|(Q|=0)]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),E=1936682341^(i=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24),c=1852142177^B,_=1819895653^i,i=1852075885^(B=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24),Q=1685025377^(r=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24),t=2037671283^B,r^=1952801890,(0|(h=(I+g|0)-(y=7&g)|0))!=(0|I))for(;t=c=c+(B=t^(w=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24))|0,_=_+(r^=n=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)|0,_=B>>>0>c>>>0?_+1|0:_,E=Q+E|0,E=(s=a)>>>0>(a=i+a|0)>>>0?E+1|0:E,Q=c+(i=UI(i,Q,13)^a)|0,c=_+(e=f^E)|0,e=UI(i,e,17)^Q,D=UI(e,c=(s=Q>>>0>>0?c+1|0:c)^f,13),p=f,B=UI(B,r,16),i=_^f,_=B^t,a=UI(a,E,32),t=c,c=f+i|0,t=1+(a=t+(E=(B=_+a|0)>>>0>>0?c+1|0:c)|0)|0,c=a,c=(a=B+e|0)>>>0>>0?t:c,D=UI(t=a^D,r=c^p,17),p=f,i=UI(_,i,21),E^=f,k=B^i,Q=UI(Q,s,32),i=f+E|0,Q=r+(s=(B=k+Q|0)>>>0>>0?i+1|0:i)|0,i=(_=B+t|0)^D,Q=(e=_>>>0>>0?Q+1|0:Q)^p,E=UI(k,E,16),r=t=s^f,E=UI(B^=E,t,21),s=f,t=(B=(a=UI(a,c,32))+B|0)^E,c=f+r|0,r=(E=B>>>0>>0?c+1|0:c)^s,c=UI(_,e,32),_=f,a=B^w,E^=n,(0|h)!=(0|(I=I+8|0)););switch(g<<=24,B=0,y-1|0){case 6:g|=o[I+6|0]<<16;case 5:g|=o[I+5|0]<<8;case 4:g|=o[I+4|0];case 3:e=(B=o[I+3|0])>>>8|0,B<<=24,g|=e;case 2:B|=(e=o[I+2|0])<<16,g|=y=e>>>16|0;case 1:B|=(e=o[I+1|0])<<8,g|=y=e>>>24|0;case 0:B=o[0|I]|B}return r=UI(I=B^t,t=g^r,16),_=_+t|0,c=(I=I+c|0)>>>0>>0?_+1|0:_,r=UI(_=I^r,t=c^f,21),e=f,s=1+(E=Q+E|0)|0,y=E,y=a=a>>>0>(E=i+a|0)>>>0?s:y,h=UI(E,a,32),t=f+t|0,e=UI(_=r^(a=_+h|0),r=e^(t=a>>>0>>0?t+1|0:t),16),h=f,Q=UI(i,Q,13)^E,i=(i=c)+(c=f^y)|0,y=UI(I=I+Q|0,E=I>>>0>>0?i+1|0:i,32),r=f+r|0,y=UI(_=e^(i=_+y|0),e=(r=i>>>0>>0?r+1|0:r)^h,21),h=f,I=a+(Q=c=UI(Q,c,17)^I)|0,a=(E^=f)+t|0,t=Q=I>>>0>>0?a+1|0:a,s=y,a=_+(y=UI(I,Q,32))|0,_=f+e|0,y=UI(Q=s^a,e=(_=a>>>0>>0?_+1|0:_)^h,16),h=f,s=i,E=UI(c,E,13)^I,c=(t^=f)+r|0,r=i=(I=s+(i=E)|0)>>>0>>0?c+1|0:c,i=UI(I,i,32),c=e+f|0,e=(s=Q)>>>0>(Q=Q+(255^i)|0)>>>0?c+1|0:c,y=UI(c=Q^y,i=h^e,21),h=f,E=UI(E,t,17)^I,g=(t=r^f)+(g^_)|0,_=g=(I=E+(B^=a)|0)>>>0>>0?g+1|0:g,g=UI(I,g,32),B=i+f|0,c=UI(a=(g=g+c|0)^y,B=(i=g>>>0>>0?B+1|0:B)^h,16),r=f,E=UI(E,t,13)^I,t=e+(_^=f)|0,t=Q=(I=Q+E|0)>>>0>>0?t+1|0:t,Q=UI(I,Q,32),y=r,s=1+(B=B+f|0)|0,r=B,r=(B=Q+a|0)>>>0>>0?s:r,c=UI(a=B^c,Q=y^r,21),e=f,E=UI(E,_,17),s=1+(i=i+(_=t^f)|0)|0,t=i,E=I=(y=g)>>>0>(g=g+(i=I^E)|0)>>>0?s:t,I=UI(g,I,32),Q=Q+f|0,t=(I=I+a|0)>>>0>>0?Q+1|0:Q,c=UI(a=I^c,Q=t^e,16),e=f,i=UI(i,_,13),_=r+(E^=f)|0,_=g=(r=B)>>>0>(B=B+(i^=g)|0)>>>0?_+1|0:_,g=UI(B,g,32),Q=Q+f|0,r=(g=g+a|0)>>>0>>0?Q+1|0:Q,c=UI(a=g^c,Q=r^e,21),e=f,i=UI(i,E,17),y=1+(_=t+(E=_^f)|0)|0,t=_,I=UI(B=I+(_=B^i)|0,i=B>>>0>>0?y:t,32),Q=Q+f|0,t=(I=I+a|0)>>>0>>0?Q+1|0:Q,c=UI(a=I^c,Q=t^e,16),e=f,E=UI(_,E,13),_=r+(i^=f)|0,_=g=(B=g+(E^=B)|0)>>>0>>0?_+1|0:_,g=UI(B,g,32),Q=Q+f|0,a=UI((g=g+a|0)^c,(Q=g>>>0>>0?Q+1|0:Q)^e,21),c=f,B=UI(E,i,17)^B,E=UI(B,i=_^f,13),i=i+t|0,I=f^(I>>>0>(B=I+B|0)>>>0?i+1:i),a=UI(B^=E,I,17)^a,i=f^c,_=1+(I=I+Q|0)|0,Q=I,I=UI(I=g+B|0,g=g>>>0>I>>>0?_:Q,32)^a^I,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,I=g^f^i,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,0}function $(A,I){var g,C,B,Q,E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,L=0;s=g=s-624|0,R(a=g+480|0,I),b(a,1632,a),c=i[g+516>>2],i[g+276>>2]=c,t=i[g+512>>2],i[g+272>>2]=t,r=i[g+508>>2],i[g+268>>2]=r,e=i[g+504>>2],i[g+264>>2]=e,y=i[g+500>>2],i[g+260>>2]=y,h=i[g+496>>2],i[g+256>>2]=h,D=i[g+492>>2],i[g+252>>2]=D,f=i[g+488>>2],i[g+248>>2]=f,p=i[g+484>>2],i[g+244>>2]=p,n=i[g+480>>2],i[g+240>>2]=n+1,b(_=g+240|0,_,33968),i[g+468>>2]=c-12055116,i[g+464>>2]=t-18696448,i[g+460>>2]=r-3247719,i[g+456>>2]=e-6275908,i[g+452>>2]=y-8787816,i[g+448>>2]=h+114729,i[g+444>>2]=D+6949391,i[g+440>>2]=f-15372611,i[g+436>>2]=p+13857413,i[g+432>>2]=n-10913610,b(w=g+192|0,a,1584),i[g+228>>2]=0-i[g+228>>2],i[g+224>>2]=0-i[g+224>>2],i[g+220>>2]=0-i[g+220>>2],i[g+216>>2]=0-i[g+216>>2],i[g+212>>2]=0-i[g+212>>2],i[g+208>>2]=0-i[g+208>>2],i[g+204>>2]=0-i[g+204>>2],i[g+200>>2]=0-i[g+200>>2],i[g+196>>2]=0-i[g+196>>2],i[g+192>>2]=~i[g+192>>2],b(w,w,g+432|0),a=GA(C=g+384|0,_,w),b(_=g+336|0,C,I),QI(B=g+576|0,_),E=o[g+576|0],Y=i[g+420>>2],_=i[g+372>>2],J=i[g+416>>2],k=i[g+368>>2],d=i[g+412>>2],F=i[g+364>>2],m=i[g+408>>2],S=i[g+360>>2],l=i[g+404>>2],N=i[g+356>>2],u=i[g+400>>2],G=i[g+352>>2],x=i[g+396>>2],M=i[g+348>>2],v=i[g+392>>2],K=i[g+344>>2],L=i[g+388>>2],U=i[g+340>>2],Q=i[g+384>>2],H=i[g+336>>2],I=a-1|0,i[g+612>>2]=I&c,i[g+608>>2]=I&t,i[g+604>>2]=I&r,i[g+600>>2]=I&e,i[g+596>>2]=I&y,i[g+592>>2]=I&h,i[g+588>>2]=I&D,i[g+584>>2]=I&f,i[g+580>>2]=I&p,i[g+576>>2]=n|0-a,H=I&(0-(H^(a=0-(1&E)|0)&(H^0-H))^Q)^Q,i[g+384>>2]=H,U=L^I&(L^0-(U^a&(U^0-U))),i[g+388>>2]=U,K=v^I&(v^0-(K^a&(K^0-K))),i[g+392>>2]=K,M=x^I&(x^0-(M^a&(M^0-M))),i[g+396>>2]=M,G=u^I&(u^0-(G^a&(G^0-G))),i[g+400>>2]=G,N=l^I&(l^0-(N^a&(N^0-N))),i[g+404>>2]=N,S=m^I&(m^0-(S^a&(S^0-S))),i[g+408>>2]=S,F=d^I&(d^0-(F^a&(F^0-F))),i[g+412>>2]=F,k=J^I&(J^0-(k^a&(k^0-k))),i[g+416>>2]=k,a=Y^I&(Y^0-(_^a&(_^0-_))),i[g+420>>2]=a,i[g+564>>2]=c,i[g+560>>2]=t,i[g+556>>2]=r,i[g+552>>2]=e,i[g+548>>2]=y,i[g+544>>2]=h,i[g+540>>2]=D,i[g+536>>2]=f,i[g+532>>2]=p,i[g+528>>2]=n-1,b(I=g+528|0,I,B),b(I,I,34016),c=i[g+192>>2],t=i[g+528>>2],r=i[g+196>>2],e=i[g+532>>2],y=i[g+200>>2],h=i[g+536>>2],D=i[g+204>>2],f=i[g+540>>2],p=i[g+208>>2],n=i[g+544>>2],_=i[g+212>>2],Y=i[g+548>>2],J=i[g+216>>2],d=i[g+552>>2],m=i[g+220>>2],l=i[g+556>>2],u=i[g+224>>2],x=i[g+560>>2],v=i[g+228>>2],L=i[g+564>>2],i[g+180>>2]=a<<1,i[g+176>>2]=k<<1,i[g+172>>2]=F<<1,i[g+168>>2]=S<<1,i[g+164>>2]=N<<1,i[g+160>>2]=G<<1,i[g+156>>2]=M<<1,i[g+152>>2]=K<<1,i[g+148>>2]=U<<1,i[g+144>>2]=H<<1,i[g+564>>2]=L-v,i[g+560>>2]=x-u,i[g+556>>2]=l-m,i[g+552>>2]=d-J,i[g+548>>2]=Y-_,i[g+544>>2]=n-p,i[g+540>>2]=f-D,i[g+536>>2]=h-y,i[g+532>>2]=e-r,i[g+528>>2]=t-c,b(a=g+144|0,a,w),b(w=g+96|0,I,34064),R(g+288|0,C),I=i[g+324>>2],i[g+84>>2]=0-I,c=i[g+320>>2],i[g+80>>2]=0-c,t=i[g+316>>2],i[g+76>>2]=0-t,r=i[g+312>>2],i[g+72>>2]=0-r,e=i[g+308>>2],i[g+68>>2]=0-e,y=i[g+304>>2],i[g+64>>2]=0-y,h=i[g+300>>2],i[g+60>>2]=0-h,D=i[g+296>>2],i[g+56>>2]=0-D,f=i[g+292>>2],i[g+52>>2]=0-f,p=i[g+288>>2],i[g+48>>2]=1-p,i[g+36>>2]=I,i[g+32>>2]=c,i[g+28>>2]=t,i[g+24>>2]=r,i[g+20>>2]=e,i[g+16>>2]=y,i[g+12>>2]=h,i[g+8>>2]=D,i[g+4>>2]=f,i[g>>2]=p+1,b(A,a,g),b(A+40|0,I=g+48|0,w),b(A+80|0,w,g),b(A+120|0,a,I),s=g+624|0}function AA(A,I,g){var B,E=0,a=0,_=0,c=0,t=0;s=B=s+-64|0;A:{if((g-65&255)>>>0>191){if(a=-1,!(o[A+80|0]|o[A+81|0]<<8|o[A+82|0]<<16|o[A+83|0]<<24|o[A+84|0]|o[A+85|0]<<8|o[A+86|0]<<16|o[A+87|0]<<24)){if((_=o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)>>>0>=129){if(c=E=o[A+68|0]|o[A+69|0]<<8|o[A+70|0]<<16|o[A+71|0]<<24,E=(_=128+(a=o[A+64|0]|o[A+65|0]<<8|o[A+66|0]<<16|o[A+67|0]<<24)|0)>>>0<128?E+1|0:E,C[A+64|0]=_,C[A+65|0]=_>>>8,C[A+66|0]=_>>>16,C[A+67|0]=_>>>24,C[A+68|0]=E,C[A+69|0]=E>>>8,C[A+70|0]=E>>>16,C[A+71|0]=E>>>24,E=o[A+76|0]|o[A+77|0]<<8|o[A+78|0]<<16|o[A+79|0]<<24,E=(t=a=-1==(0|c)&a>>>0>4294967167)>>>0>(a=a+(o[A+72|0]|o[A+73|0]<<8|o[A+74|0]<<16|o[A+75|0]<<24)|0)>>>0?E+1|0:E,C[A+72|0]=a,C[A+73|0]=a>>>8,C[A+74|0]=a>>>16,C[A+75|0]=a>>>24,C[A+76|0]=E,C[A+77|0]=E>>>8,C[A+78|0]=E>>>16,C[A+79|0]=E>>>24,p(A,E=A+96|0),a=(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)-128|0,C[A+352|0]=a,C[A+353|0]=a>>>8,C[A+354|0]=a>>>16,C[A+355|0]=a>>>24,a>>>0>=129)break A;Ng(E,A+224|0,a),_=o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24}a=t=o[A+68|0]|o[A+69|0]<<8|o[A+70|0]<<16|o[A+71|0]<<24,a=(c=_+(E=o[A+64|0]|o[A+65|0]<<8|o[A+66|0]<<16|o[A+67|0]<<24)|0)>>>0<_>>>0?a+1|0:a,C[A+64|0]=c,C[A+65|0]=c>>>8,C[A+66|0]=c>>>16,C[A+67|0]=c>>>24,C[A+68|0]=a,C[A+69|0]=a>>>8,C[A+70|0]=a>>>16,C[A+71|0]=a>>>24,a=(0|a)==(0|t)&E>>>0>c>>>0|a>>>0>>0,E=o[A+76|0]|o[A+77|0]<<8|o[A+78|0]<<16|o[A+79|0]<<24,E=(t=a)>>>0>(a=a+(o[A+72|0]|o[A+73|0]<<8|o[A+74|0]<<16|o[A+75|0]<<24)|0)>>>0?E+1|0:E,C[A+72|0]=a,C[A+73|0]=a>>>8,C[A+74|0]=a>>>16,C[A+75|0]=a>>>24,C[A+76|0]=E,C[A+77|0]=E>>>8,C[A+78|0]=E>>>16,C[A+79|0]=E>>>24,o[A+356|0]&&(C[A+88|0]=255,C[A+89|0]=255,C[A+90|0]=255,C[A+91|0]=255,C[A+92|0]=255,C[A+93|0]=255,C[A+94|0]=255,C[A+95|0]=255),C[A+80|0]=255,C[A+81|0]=255,C[A+82|0]=255,C[A+83|0]=255,C[A+84|0]=255,C[A+85|0]=255,C[A+86|0]=255,C[A+87|0]=255,bg((a=A+96|0)+_|0,0,256-_|0),p(A,a),E=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,i[B>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[B+4>>2]=E,E=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,i[B+8>>2]=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,i[B+12>>2]=E,E=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,i[B+16>>2]=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,i[B+20>>2]=E,E=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,i[B+24>>2]=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,i[B+28>>2]=E,E=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,i[B+32>>2]=o[A+32|0]|o[A+33|0]<<8|o[A+34|0]<<16|o[A+35|0]<<24,i[B+36>>2]=E,E=o[A+44|0]|o[A+45|0]<<8|o[A+46|0]<<16|o[A+47|0]<<24,i[B+40>>2]=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,i[B+44>>2]=E,E=o[A+52|0]|o[A+53|0]<<8|o[A+54|0]<<16|o[A+55|0]<<24,i[B+48>>2]=o[A+48|0]|o[A+49|0]<<8|o[A+50|0]<<16|o[A+51|0]<<24,i[B+52>>2]=E,E=o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24,i[B+56>>2]=o[A+56|0]|o[A+57|0]<<8|o[A+58|0]<<16|o[A+59|0]<<24,i[B+60>>2]=E,Ng(I,B,g),XC(A,64),XC(a,256),a=0}return s=B- -64|0,a}rC(),Q()}r(1386,1234,306,1142),Q()}function IA(A,I,g){A|=0,I|=0,g|=0;var B,Q,E,a=0,_=0;s=B=s-192|0,i[B+144>>2]=0,i[B+148>>2]=0,i[B+152>>2]=0,i[B+156>>2]=0,i[B+104>>2]=0,i[B+108>>2]=0,i[B+112>>2]=0,i[B+116>>2]=0,i[B+120>>2]=0,i[B+124>>2]=0,a=i[8799],i[B+168>>2]=i[8798],i[B+172>>2]=a,a=i[8801],i[B+176>>2]=i[8800],i[B+180>>2]=a,a=i[8803],i[B+184>>2]=i[8802],i[B+188>>2]=a,i[B+128>>2]=0,i[B+132>>2]=0,i[B+136>>2]=0,i[B+140>>2]=0,i[B+96>>2]=0,i[B+100>>2]=0,a=i[8797],i[B+160>>2]=i[8796],i[B+164>>2]=a,a=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,i[B+80>>2]=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,i[B+84>>2]=a,a=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,i[B+88>>2]=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,i[B+92>>2]=a,a=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,i[B+64>>2]=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24,i[B+68>>2]=a,a=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,i[B+72>>2]=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,i[B+76>>2]=a,Eg(g=B+128|0,a=B- -64|0),S(g),_=i[B+156>>2],i[B+24>>2]=i[B+152>>2],i[B+28>>2]=_,_=i[B+148>>2],i[B+16>>2]=i[B+144>>2],i[B+20>>2]=_,_=i[B+140>>2],i[B+8>>2]=i[B+136>>2],i[B+12>>2]=_,_=i[B+132>>2],i[B>>2]=i[B+128>>2],i[B+4>>2]=_,i[B+120>>2]=0,i[B+124>>2]=0,i[B+112>>2]=0,i[B+116>>2]=0,i[B+104>>2]=0,i[B+108>>2]=0,i[B+96>>2]=0,i[B+100>>2]=0,_=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[B+80>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[B+84>>2]=_,_=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[B+88>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[B+92>>2]=_,_=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,Q=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,E=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[B+56>>2]=0,i[B+60>>2]=0,i[B+48>>2]=0,i[B+52>>2]=0,i[B+40>>2]=0,i[B+44>>2]=0,i[B+64>>2]=E,i[B+68>>2]=I,i[B+72>>2]=_,i[B+76>>2]=Q,i[B+32>>2]=0,i[B+36>>2]=0,og(a,B),I=i[B+124>>2],i[B+184>>2]=i[B+120>>2],i[B+188>>2]=I,I=i[B+116>>2],i[B+176>>2]=i[B+112>>2],i[B+180>>2]=I,I=i[B+108>>2],i[B+168>>2]=i[B+104>>2],i[B+172>>2]=I,I=i[B+100>>2],i[B+160>>2]=i[B+96>>2],i[B+164>>2]=I,I=i[B+92>>2],i[B+152>>2]=i[B+88>>2],i[B+156>>2]=I,I=i[B+84>>2],i[B+144>>2]=i[B+80>>2],i[B+148>>2]=I,I=i[B+76>>2],i[B+136>>2]=i[B+72>>2],i[B+140>>2]=I,I=i[B+68>>2],i[B+128>>2]=i[B+64>>2],i[B+132>>2]=I,S(g),I=i[B+156>>2],a=i[B+152>>2],C[A+24|0]=a,C[A+25|0]=a>>>8,C[A+26|0]=a>>>16,C[A+27|0]=a>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[B+148>>2],a=i[B+144>>2],C[A+16|0]=a,C[A+17|0]=a>>>8,C[A+18|0]=a>>>16,C[A+19|0]=a>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[B+140>>2],a=i[B+136>>2],C[A+8|0]=a,C[A+9|0]=a>>>8,C[A+10|0]=a>>>16,C[A+11|0]=a>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[B+132>>2],a=i[B+128>>2],C[0|A]=a,C[A+1|0]=a>>>8,C[A+2|0]=a>>>16,C[A+3|0]=a>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,XC(g,64),s=B+192|0}function gA(A){var I,g,B,Q,o,E,_,c,t,r,e=0,y=0,h=0,D=0,f=0;for(s=I=s-2048|0,$A(D=I+640|0,A),e=i[A+36>>2],i[I+352>>2]=i[A+32>>2],i[I+356>>2]=e,e=i[A+28>>2],i[I+344>>2]=i[A+24>>2],i[I+348>>2]=e,e=i[A+20>>2],i[I+336>>2]=i[A+16>>2],i[I+340>>2]=e,e=i[A+12>>2],i[I+328>>2]=i[A+8>>2],i[I+332>>2]=e,e=i[A+4>>2],i[I+320>>2]=i[A>>2],i[I+324>>2]=e,e=i[A+52>>2],i[I+368>>2]=i[A+48>>2],i[I+372>>2]=e,e=i[A+60>>2],i[I+376>>2]=i[A+56>>2],i[I+380>>2]=e,e=i[4+(h=A- -64|0)>>2],i[I+384>>2]=i[h>>2],i[I+388>>2]=e,e=i[A+76>>2],i[I+392>>2]=i[A+72>>2],i[I+396>>2]=e,e=i[A+44>>2],i[I+360>>2]=i[A+40>>2],i[I+364>>2]=e,e=i[A+92>>2],i[I+408>>2]=i[A+88>>2],i[I+412>>2]=e,e=i[A+100>>2],i[I+416>>2]=i[A+96>>2],i[I+420>>2]=e,e=i[A+108>>2],i[I+424>>2]=i[A+104>>2],i[I+428>>2]=e,e=i[A+116>>2],i[I+432>>2]=i[A+112>>2],i[I+436>>2]=e,e=i[A+84>>2],i[I+400>>2]=i[A+80>>2],i[I+404>>2]=e,KA(y=I+480|0,h=I+320|0),b(e=I+160|0,y,g=I+600|0),b(I+200|0,B=I+520|0,Q=I+560|0),b(I+240|0,Q,g),b(I+280|0,y,B),sA(y,e,D),b(h,y,g),b(_=I+360|0,B,Q),b(c=I+400|0,Q,g),b(t=I+440|0,y,B),$A(A=I+800|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+960|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+1120|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+1280|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+1440|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+1600|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(I+1760|0,h),i[I+32>>2]=0,i[I+36>>2]=0,i[I+24>>2]=0,i[I+28>>2]=0,i[I+16>>2]=0,i[I+20>>2]=0,i[I+8>>2]=0,i[I+12>>2]=0,i[I+52>>2]=0,i[I+56>>2]=0,i[I+60>>2]=0,i[I+64>>2]=0,i[I+68>>2]=0,i[I+72>>2]=0,i[I+76>>2]=0,i[I+80>>2]=1,i[I>>2]=0,i[I+4>>2]=0,i[I+44>>2]=0,i[I+48>>2]=0,i[I+40>>2]=1,bg(I+84|0,0,76),r=I+120|0,o=I+2008|0,E=I+1968|0,D=I+80|0,h=I+40|0,A=252;e=i[I+36>>2],i[(y=I+1960|0)>>2]=i[I+32>>2],i[y+4>>2]=e,e=i[I+28>>2],i[(y=I+1952|0)>>2]=i[I+24>>2],i[y+4>>2]=e,e=i[I+20>>2],i[(y=I+1944|0)>>2]=i[I+16>>2],i[y+4>>2]=e,e=i[I+12>>2],i[(y=I+1936|0)>>2]=i[I+8>>2],i[y+4>>2]=e,e=i[I+4>>2],i[I+1928>>2]=i[I>>2],i[I+1932>>2]=e,e=i[h+36>>2],i[E+32>>2]=i[h+32>>2],i[E+36>>2]=e,e=i[h+28>>2],i[E+24>>2]=i[h+24>>2],i[E+28>>2]=e,e=i[h+20>>2],i[E+16>>2]=i[h+16>>2],i[E+20>>2]=e,e=i[h+12>>2],i[E+8>>2]=i[h+8>>2],i[E+12>>2]=e,e=i[h+4>>2],i[E>>2]=i[h>>2],i[E+4>>2]=e,e=i[D+36>>2],i[o+32>>2]=i[D+32>>2],i[o+36>>2]=e,e=i[D+28>>2],i[o+24>>2]=i[D+24>>2],i[o+28>>2]=e,e=i[D+20>>2],i[o+16>>2]=i[D+16>>2],i[o+20>>2]=e,e=i[D+12>>2],i[o+8>>2]=i[D+8>>2],i[o+12>>2]=e,e=i[D+4>>2],i[o>>2]=i[D>>2],i[o+4>>2]=e,e=A,f=C[A+33712|0],KA(y=I+480|0,I+1928|0),(0|f)>0?(b(A=I+320|0,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),sA(y,A,(I+640|0)+a((254&f)>>>1|0,160)|0)):(0|f)>=0||(b(A=I+320|0,y=I+480|0,g),b(_,B,Q),b(c,Q,g),b(t,y,B),hA(y,A,(I+640|0)+a((0-f&254)>>>1|0,160)|0)),b(I,A=I+480|0,g),b(h,B,Q),b(D,Q,g),b(r,A,B),A=e-1|0,e;);return QI(A=I+640|0,I),A=GI(A,32),s=I+2048|0,A}function CA(A,I,g,B,Q){var i,E,a,_,c,t,r,e,y,s,h,D,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0;if(B?(d=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24,l=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,m=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,u=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24):(d=1797285236,m=1634760805,l=2036477234,u=857760878),B=i=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,N=E=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,U=a=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,w=d,S=_=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,G=l,b=c=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,M=t=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,n=r=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,I=e=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,K=u,f=y=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,p=s=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,k=h=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,g=D=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24,F=m,(0|Q)>0)for(;H=Lg(g+K|0,7)^b,x=Lg(H+K|0,9)^N,Y=Lg(B+F|0,7)^f,v=Lg(Y+F|0,9)^M,R=Lg(Y+v|0,13)^B,J=Lg(w+S|0,7)^p,n=Lg(J+w|0,9)^n,p=Lg(n+J|0,13)^S,w=Lg(n+p|0,18)^w,f=Lg(I+G|0,7)^U,B=R^Lg(w+f|0,7),N=Lg(B+w|0,9)^x,U=Lg(B+N|0,13)^f,w=Lg(N+U|0,18)^w,k=Lg(f+G|0,9)^k,f=Lg(k+f|0,13)^I,I=Lg(f+k|0,18)^G,S=Lg(I+H|0,7)^p,M=Lg(S+I|0,9)^v,b=Lg(S+M|0,13)^H,G=Lg(M+b|0,18)^I,g=Lg(H+x|0,13)^g,p=Lg(g+x|0,18)^K,I=Lg(p+Y|0,7)^f,n=Lg(I+p|0,9)^n,f=Lg(I+n|0,13)^Y,K=Lg(n+f|0,18)^p,F=Lg(v+R|0,18)^F,g=Lg(F+J|0,7)^g,k=Lg(g+F|0,9)^k,p=Lg(g+k|0,13)^J,F=Lg(k+p|0,18)^F,(0|(L=L+2|0))<(0|Q););Q=w+d|0,C[A+60|0]=Q,C[A+61|0]=Q>>>8,C[A+62|0]=Q>>>16,C[A+63|0]=Q>>>24,Q=U+a|0,C[A+56|0]=Q,C[A+57|0]=Q>>>8,C[A+58|0]=Q>>>16,C[A+59|0]=Q>>>24,Q=N+E|0,C[A+52|0]=Q,C[A+53|0]=Q>>>8,C[A+54|0]=Q>>>16,C[A+55|0]=Q>>>24,B=B+i|0,C[A+48|0]=B,C[A+49|0]=B>>>8,C[A+50|0]=B>>>16,C[A+51|0]=B>>>24,B=S+_|0,C[A+44|0]=B,C[A+45|0]=B>>>8,C[A+46|0]=B>>>16,C[A+47|0]=B>>>24,B=G+l|0,C[A+40|0]=B,C[A+41|0]=B>>>8,C[A+42|0]=B>>>16,C[A+43|0]=B>>>24,B=b+c|0,C[A+36|0]=B,C[A+37|0]=B>>>8,C[A+38|0]=B>>>16,C[A+39|0]=B>>>24,B=M+t|0,C[A+32|0]=B,C[A+33|0]=B>>>8,C[A+34|0]=B>>>16,C[A+35|0]=B>>>24,B=n+r|0,C[A+28|0]=B,C[A+29|0]=B>>>8,C[A+30|0]=B>>>16,C[A+31|0]=B>>>24,I=I+e|0,C[A+24|0]=I,C[A+25|0]=I>>>8,C[A+26|0]=I>>>16,C[A+27|0]=I>>>24,I=K+u|0,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=f+y|0,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24,I=p+s|0,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=k+h|0,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=g+D|0,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=F+m|0,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24}function BA(A){var I=0,g=0,C=0,B=0,Q=0,o=0,a=0,c=0,t=0;A:if(A|=0){Q=(C=A-8|0)+(A=-8&(I=i[A-4>>2]))|0;I:if(!(1&I)){if(!(2&I))break A;if((C=C-(I=i[C>>2])|0)>>>0>2],I>>>0<=255){if((0|(B=i[C+8>>2]))!=(0|g))break B;c=37620,t=i[9405]&Lg(-2,I>>>3|0),i[c>>2]=t;break I}if(a=i[C+24>>2],(0|g)!=(0|C)){I=i[C+8>>2],i[I+12>>2]=g,i[g+8>>2]=I;break g}if(B=i[C+20>>2])I=C+20|0;else{if(!(B=i[C+16>>2]))break C;I=C+16|0}for(;o=I,I=(g=B)+20|0,(B=i[g+20>>2])||(I=g+16|0,B=i[g+16>>2]););i[o>>2]=0;break g}if(3&~(I=i[Q+4>>2]))break I;return i[9407]=A,i[Q+4>>2]=-2&I,i[C+4>>2]=1|A,void(i[Q>>2]=A)}i[B+12>>2]=g,i[g+8>>2]=B;break I}g=0}if(a){I=i[C+28>>2];g:{if(i[(B=37924+(I<<2)|0)>>2]==(0|C)){if(i[B>>2]=g,g)break g;c=37624,t=i[9406]&Lg(-2,I),i[c>>2]=t;break I}if(i[a+(i[a+16>>2]==(0|C)?16:20)>>2]=g,!g)break I}i[g+24>>2]=a,(I=i[C+16>>2])&&(i[g+16>>2]=I,i[I+24>>2]=g),(I=i[C+20>>2])&&(i[g+20>>2]=I,i[I+24>>2]=g)}}if(!(C>>>0>=Q>>>0)&&1&(I=i[Q+4>>2])){I:{g:{C:{B:{if(!(2&I)){if((0|Q)==i[9411]){if(i[9411]=C,A=i[9408]+A|0,i[9408]=A,i[C+4>>2]=1|A,i[9410]!=(0|C))break A;return i[9407]=0,void(i[9410]=0)}if((0|Q)==i[9410])return i[9410]=C,A=i[9407]+A|0,i[9407]=A,i[C+4>>2]=1|A,void(i[A+C>>2]=A);if(A=(-8&I)+A|0,g=i[Q+12>>2],I>>>0<=255){if((0|(B=i[Q+8>>2]))==(0|g)){c=37620,t=i[9405]&Lg(-2,I>>>3|0),i[c>>2]=t;break g}i[B+12>>2]=g,i[g+8>>2]=B;break g}if(a=i[Q+24>>2],(0|g)!=(0|Q)){I=i[Q+8>>2],i[I+12>>2]=g,i[g+8>>2]=I;break C}if(B=i[Q+20>>2])I=Q+20|0;else{if(!(B=i[Q+16>>2]))break B;I=Q+16|0}for(;o=I,I=(g=B)+20|0,(B=i[g+20>>2])||(I=g+16|0,B=i[g+16>>2]););i[o>>2]=0;break C}i[Q+4>>2]=-2&I,i[C+4>>2]=1|A,i[A+C>>2]=A;break I}g=0}if(a){I=i[Q+28>>2];C:{if((0|Q)==i[(B=37924+(I<<2)|0)>>2]){if(i[B>>2]=g,g)break C;c=37624,t=i[9406]&Lg(-2,I),i[c>>2]=t;break g}if(i[a+((0|Q)==i[a+16>>2]?16:20)>>2]=g,!g)break g}i[g+24>>2]=a,(I=i[Q+16>>2])&&(i[g+16>>2]=I,i[I+24>>2]=g),(I=i[Q+20>>2])&&(i[g+20>>2]=I,i[I+24>>2]=g)}}if(i[C+4>>2]=1|A,i[A+C>>2]=A,i[9410]==(0|C))return void(i[9407]=A)}if(A>>>0<=255)return I=37660+(-8&A)|0,(B=i[9405])&(A=1<<(A>>>3))?A=i[I+8>>2]:(i[9405]=A|B,A=I),i[I+8>>2]=C,i[A+12>>2]=C,i[C+12>>2]=I,void(i[C+8>>2]=A);g=31,A>>>0<=16777215&&(g=62+((A>>>38-(I=_(A>>>8|0))&1)-(I<<1)|0)|0),i[C+28>>2]=g,i[C+16>>2]=0,i[C+20>>2]=0,o=37924+(g<<2)|0;I:{g:{if((I=i[9406])&(B=1<>>1|0):0),I=i[o>>2];;){if(B=I,(-8&i[I+4>>2])==(0|A))break g;if(I=g>>>29|0,g<<=1,!(I=i[(o=16+((4&I)+B|0)|0)>>2]))break}g=24,I=B}else i[9406]=I|B,g=24,I=o;B=C,Q=C,A=8;break I}I=i[B+8>>2],i[I+12>>2]=C,g=8,o=B+8|0,Q=0,A=24}i[o>>2]=C,i[g+C>>2]=I,i[C+12>>2]=B,i[A+C>>2]=Q,A=i[9413]-1|0,i[9413]=A||-1}}}function QA(A,I,g,C,B,E,a,_,c){var t=0,r=0,e=0,y=0,h=0,D=0,f=0,w=0;if(I-65>>>0<4294967232|a>>>0>64)A=-1;else{w=t=s,s=t=t-512&-64;A:{I:if(!(!(!(C|B)|g)|!A|((D=255&I)-65&255)>>>0<=191|!(!(I=255&a)||E)|I>>>0>=65)){if(I){if(!E)break I;_?(r=725511199^(o[_+8|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24),e=-1694144372^(o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24),a=-1377402159^(o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24),_=1359893119^(o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24)):(r=725511199,e=-1694144372,a=-1377402159,_=1359893119),c?(y=327033209^(o[c+8|0]|o[c+9|0]<<8|o[c+10|0]<<16|o[c+11|0]<<24),h=1541459225^(o[c+12|0]|o[c+13|0]<<8|o[c+14|0]<<16|o[c+15|0]<<24),f=-79577749^(o[0|c]|o[c+1|0]<<8|o[c+2|0]<<16|o[c+3|0]<<24),c=528734635^(o[c+4|0]|o[c+5|0]<<8|o[c+6|0]<<16|o[c+7|0]<<24)):(y=327033209,h=1541459225,f=-79577749,c=528734635),bg(t- -64|0,0,293),i[t+56>>2]=y,i[t+60>>2]=h,i[t+48>>2]=f,i[t+52>>2]=c,i[t+40>>2]=r,i[t+44>>2]=e,i[t+32>>2]=a,i[t+36>>2]=_,i[t+24>>2]=1595750129,i[t+28>>2]=-1521486534,i[t+16>>2]=-23791573,i[t+20>>2]=1013904242,i[t+8>>2]=-2067093701,i[t+12>>2]=-1150833019,i[t>>2]=-222443256^(I<<8|D),i[t+4>>2]=I>>>24^1779033703,bg((a=t+384|0)+I|0,0,128-I|0),Ng(a,E,I),Ng(t+96|0,a,128),i[t+352>>2]=128,XC(a,128),I=128}else _?(r=725511199^(o[_+8|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24),e=-1694144372^(o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24),E=1359893119^(o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24),I=-1377402159^(o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24)):(r=725511199,e=-1694144372,E=1359893119,I=-1377402159),c?(y=327033209^(o[c+8|0]|o[c+9|0]<<8|o[c+10|0]<<16|o[c+11|0]<<24),h=1541459225^(o[c+12|0]|o[c+13|0]<<8|o[c+14|0]<<16|o[c+15|0]<<24),_=528734635^(o[c+4|0]|o[c+5|0]<<8|o[c+6|0]<<16|o[c+7|0]<<24),a=-79577749^(o[0|c]|o[c+1|0]<<8|o[c+2|0]<<16|o[c+3|0]<<24)):(y=327033209,h=1541459225,_=528734635,a=-79577749),bg(t- -64|0,0,293),i[t+56>>2]=y,i[t+60>>2]=h,i[t+48>>2]=a,i[t+52>>2]=_,i[t+40>>2]=r,i[t+44>>2]=e,i[t+32>>2]=I,i[t+36>>2]=E,i[t+24>>2]=1595750129,i[t+28>>2]=-1521486534,i[t+16>>2]=-23791573,i[t+20>>2]=1013904242,i[t+8>>2]=-2067093701,i[t+12>>2]=-1150833019,i[t>>2]=-222443256^D,i[t+4>>2]=1779033703,I=0;g:if(C|B)for(c=t+224|0,_=t+96|0;;){if(a=I+_|0,!B&C>>>0<=(E=256-I|0)>>>0){Ng(a,g,C),i[t+352>>2]=C+i[t+352>>2];break g}if(Ng(a,g,E),i[t+352>>2]=E+i[t+352>>2],r=I=i[t+68>>2],I=(e=(a=i[t+64>>2])+128|0)>>>0<128?I+1|0:I,i[t+64>>2]=e,i[t+68>>2]=I,I=i[t+76>>2],I=(r=a=-1==(0|r)&a>>>0>4294967167)>>>0>(a=a+i[t+72>>2]|0)>>>0?I+1|0:I,i[t+72>>2]=a,i[t+76>>2]=I,p(t,_),Ng(_,c,128),I=i[t+352>>2]-128|0,i[t+352>>2]=I,g=g+E|0,!((B=B-(C>>>0>>0)|0)|(C=C-E|0)))break}AA(t,A,D),s=w;break A}rC(),Q()}A=0}return A}function iA(A,I,g,B,Q,E,_){var c,t,r=0,e=0,y=0;if(s=c=s+-64|0,t=K(32)){i[c+36>>2]=0,i[c+40>>2]=0,i[c+28>>2]=0,i[c+32>>2]=0,i[c+24>>2]=16,i[c+20>>2]=Q,i[c+16>>2]=B,i[c+12>>2]=g,i[c+8>>2]=32,i[c+4>>2]=t,i[c+60>>2]=0,i[c+56>>2]=1,i[c+52>>2]=1,i[c+48>>2]=I,i[c+44>>2]=A;A:if(A=q(c+4|0,_))XC(t,32);else{if(E){r=c+4|0,s=Q=s-32|0,A=-31;I:{g:{C:switch(_-1|0){case 1:A=o[1434]|o[1435]<<8|o[1436]<<16|o[1437]<<24,I=o[1430]|o[1431]<<8|o[1432]<<16|o[1433]<<24,C[0|E]=I,C[E+1|0]=I>>>8,C[E+2|0]=I>>>16,C[E+3|0]=I>>>24,C[E+4|0]=A,C[E+5|0]=A>>>8,C[E+6|0]=A>>>16,C[E+7|0]=A>>>24,A=o[1439]|o[1440]<<8|o[1441]<<16|o[1442]<<24,I=o[1435]|o[1436]<<8|o[1437]<<16|o[1438]<<24,C[E+5|0]=I,C[E+6|0]=I>>>8,C[E+7|0]=I>>>16,C[E+8|0]=I>>>24,C[E+9|0]=A,C[E+10|0]=A>>>8,C[E+11|0]=A>>>16,C[E+12|0]=A>>>24,g=-12,I=12;break g;case 0:break C;default:break I}A=o[1422]|o[1423]<<8|o[1424]<<16|o[1425]<<24,I=o[1418]|o[1419]<<8|o[1420]<<16|o[1421]<<24,C[0|E]=I,C[E+1|0]=I>>>8,C[E+2|0]=I>>>16,C[E+3|0]=I>>>24,C[E+4|0]=A,C[E+5|0]=A>>>8,C[E+6|0]=A>>>16,C[E+7|0]=A>>>24,A=o[1426]|o[1427]<<8|o[1428]<<16|o[1429]<<24,C[E+8|0]=A,C[E+9|0]=A>>>8,C[E+10|0]=A>>>16,C[E+11|0]=A>>>24,g=-11,I=11}if(!(A=nI(r)))if(C[Q+13|0]=0,C[Q+11|0]=49,C[Q+12|0]=57,(g=g+128|0)>>>0<=(A=RI(Q+11|0))>>>0)A=-31;else if(I=Ng(I+E|0,Q+11|0,A+1|0),(e=g-A|0)>>>0<4)A=-31;else{for(C[0|(_=A+I|0)]=36,C[_+1|0]=109,C[_+2|0]=61,C[_+3|0]=0,A=i[r+44>>2],I=10;g=I,B=(A>>>0)/10|0,C[0|(y=(I=I-1|0)+(Q+22|0)|0)]=A-a(B,10)|48,!(A>>>0<10)&&(A=B,I););if(Ng(A=Q+11|0,y,I=11-g|0),C[A+I|0]=0,(I=e-3|0)>>>0<=(A=RI(A))>>>0)A=-31;else if(g=Ng(_+3|0,Q+11|0,A+1|0),(e=I-A|0)>>>0<4)A=-31;else{for(C[0|(_=A+g|0)]=44,C[_+1|0]=116,C[_+2|0]=61,C[_+3|0]=0,A=i[r+40>>2],I=10;g=I,B=(A>>>0)/10|0,C[0|(y=(I=I-1|0)+(Q+22|0)|0)]=A-a(B,10)|48,!(A>>>0<10)&&(A=B,I););if(Ng(A=Q+11|0,y,I=11-g|0),C[A+I|0]=0,(I=e-3|0)>>>0<=(A=RI(A))>>>0)A=-31;else if(g=Ng(_+3|0,Q+11|0,A+1|0),(e=I-A|0)>>>0<4)A=-31;else{for(C[0|(_=A+g|0)]=44,C[_+1|0]=112,C[_+2|0]=61,C[_+3|0]=0,A=i[r+48>>2],I=10;g=I,B=(A>>>0)/10|0,C[0|(y=(I=I-1|0)+(Q+22|0)|0)]=A-a(B,10)|48,!(A>>>0<10)&&(A=B,I););Ng(A=Q+11|0,y,I=11-g|0),C[A+I|0]=0,(I=e-3|0)>>>0<=(A=RI(A))>>>0?A=-31:(g=Ng(_+3|0,Q+11|0,A+1|0),(B=I-A|0)>>>0<2?A=-31:(C[0|(A=A+g|0)]=36,C[A+1|0]=0,XA(I=A+1|0,g=B-1|0,i[r+16>>2],i[r+20>>2],3)?(A=-31,(B=(B=g)-(g=RI(I))|0)>>>0<2||(C[0|(A=I+g|0)]=36,C[A+1|0]=0,A=XA(A+1|0,B-1|0,i[r>>2],i[r+4>>2],3)?0:-31)):A=-31))}}}}if(s=Q+32|0,A){XC(t,32),XC(E,128),A=-31;break A}}XC(t,32),A=0}BA(t)}else A=-22;return s=c- -64|0,A}function oA(A,I){var g,C=0,B=0,Q=0,o=0,E=0,a=0,c=0;g=A+I|0;A:{I:if(!(1&(C=i[A+4>>2]))){if(!(2&C))break A;I=(C=i[A>>2])+I|0;g:{C:{B:{if((0|(A=A-C|0))!=i[9410]){if(B=i[A+12>>2],C>>>0<=255){if((0|(Q=i[A+8>>2]))!=(0|B))break B;a=37620,c=i[9405]&Lg(-2,C>>>3|0),i[a>>2]=c;break I}if(o=i[A+24>>2],(0|A)!=(0|B)){C=i[A+8>>2],i[C+12>>2]=B,i[B+8>>2]=C;break g}if(Q=i[A+20>>2])C=A+20|0;else{if(!(Q=i[A+16>>2]))break C;C=A+16|0}for(;E=C,C=(B=Q)+20|0,(Q=i[B+20>>2])||(C=B+16|0,Q=i[B+16>>2]););i[E>>2]=0;break g}if(3&~(C=i[g+4>>2]))break I;return i[9407]=I,i[g+4>>2]=-2&C,i[A+4>>2]=1|I,void(i[g>>2]=I)}i[Q+12>>2]=B,i[B+8>>2]=Q;break I}B=0}if(o){C=i[A+28>>2];g:{if(i[(Q=37924+(C<<2)|0)>>2]==(0|A)){if(i[Q>>2]=B,B)break g;a=37624,c=i[9406]&Lg(-2,C),i[a>>2]=c;break I}if(i[o+(i[o+16>>2]==(0|A)?16:20)>>2]=B,!B)break I}i[B+24>>2]=o,(C=i[A+16>>2])&&(i[B+16>>2]=C,i[C+24>>2]=B),(C=i[A+20>>2])&&(i[B+20>>2]=C,i[C+24>>2]=B)}}I:{g:{C:{B:{if(!(2&(C=i[g+4>>2]))){if(i[9411]==(0|g)){if(i[9411]=A,I=i[9408]+I|0,i[9408]=I,i[A+4>>2]=1|I,i[9410]!=(0|A))break A;return i[9407]=0,void(i[9410]=0)}if(i[9410]==(0|g))return i[9410]=A,I=i[9407]+I|0,i[9407]=I,i[A+4>>2]=1|I,void(i[A+I>>2]=I);if(I=(-8&C)+I|0,B=i[g+12>>2],C>>>0<=255){if((0|(Q=i[g+8>>2]))==(0|B)){a=37620,c=i[9405]&Lg(-2,C>>>3|0),i[a>>2]=c;break g}i[Q+12>>2]=B,i[B+8>>2]=Q;break g}if(o=i[g+24>>2],(0|B)!=(0|g)){C=i[g+8>>2],i[C+12>>2]=B,i[B+8>>2]=C;break C}if(Q=i[g+20>>2])C=g+20|0;else{if(!(Q=i[g+16>>2]))break B;C=g+16|0}for(;E=C,C=(B=Q)+20|0,(Q=i[B+20>>2])||(C=B+16|0,Q=i[B+16>>2]););i[E>>2]=0;break C}i[g+4>>2]=-2&C,i[A+4>>2]=1|I,i[A+I>>2]=I;break I}B=0}if(o){C=i[g+28>>2];C:{if(i[(Q=37924+(C<<2)|0)>>2]==(0|g)){if(i[Q>>2]=B,B)break C;a=37624,c=i[9406]&Lg(-2,C),i[a>>2]=c;break g}if(i[o+(i[o+16>>2]==(0|g)?16:20)>>2]=B,!B)break g}i[B+24>>2]=o,(C=i[g+16>>2])&&(i[B+16>>2]=C,i[C+24>>2]=B),(C=i[g+20>>2])&&(i[B+20>>2]=C,i[C+24>>2]=B)}}if(i[A+4>>2]=1|I,i[A+I>>2]=I,i[9410]==(0|A))return void(i[9407]=I)}if(I>>>0<=255)return C=37660+(-8&I)|0,(B=i[9405])&(I=1<<(I>>>3))?I=i[C+8>>2]:(i[9405]=I|B,I=C),i[C+8>>2]=A,i[I+12>>2]=A,i[A+12>>2]=C,void(i[A+8>>2]=I);B=31,I>>>0<=16777215&&(B=62+((I>>>38-(C=_(I>>>8|0))&1)-(C<<1)|0)|0),i[A+28>>2]=B,i[A+16>>2]=0,i[A+20>>2]=0,C=37924+(B<<2)|0;I:{if((Q=i[9406])&(E=1<>>1|0):0),C=i[C>>2];;){if(Q=C,(-8&i[C+4>>2])==(0|I))break I;if(C=B>>>29|0,B<<=1,!(C=i[16+(E=Q+(4&C)|0)>>2]))break}i[E+16>>2]=A,i[A+24>>2]=Q}else i[9406]=Q|E,i[C>>2]=A,i[A+24>>2]=C;return i[A+12>>2]=A,void(i[A+8>>2]=A)}I=i[Q+8>>2],i[I+12>>2]=A,i[Q+8>>2]=A,i[A+24>>2]=0,i[A+12>>2]=Q,i[A+8>>2]=I}}function EA(A,I){var g,B=0,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0;return s=g=s-512|0,B=-1,E=o[I+31|0],Q=o[0|I],1&(((255&(127&~E|~(o[I+1|0]&o[I+2|0]&o[I+3|0]&o[I+4|0]&o[I+5|0]&o[I+6|0]&o[I+7|0]&o[I+8|0]&o[I+9|0]&o[I+10|0]&o[I+11|0]&o[I+12|0]&o[I+13|0]&o[I+14|0]&o[I+15|0]&o[I+16|0]&o[I+17|0]&o[I+18|0]&o[I+19|0]&o[I+20|0]&o[I+21|0]&o[I+22|0]&o[I+23|0]&o[I+24|0]&o[I+25|0]&o[I+26|0]&o[I+27|0]&o[I+28|0]&o[I+29|0]&o[I+30|0])))-1&236-Q)>>>8|Q|E>>>7)||(fA(E=g+336|0,I),R(g+288|0,E),I=i[g+324>>2],i[g+276>>2]=0-I,B=i[g+320>>2],i[g+272>>2]=0-B,Q=i[g+316>>2],i[g+268>>2]=0-Q,a=i[g+312>>2],i[g+264>>2]=0-a,_=i[g+308>>2],i[g+260>>2]=0-_,c=i[g+304>>2],i[g+256>>2]=0-c,t=i[g+300>>2],i[g+252>>2]=0-t,r=i[g+296>>2],i[g+248>>2]=0-r,e=i[g+292>>2],i[g+244>>2]=0-e,y=i[g+288>>2],i[g+240>>2]=1-y,R(h=g+144|0,p=g+240|0),i[g+228>>2]=I,i[g+224>>2]=B,i[g+220>>2]=Q,i[g+216>>2]=a,i[g+212>>2]=_,i[g+208>>2]=c,i[g+204>>2]=t,i[g+200>>2]=r,i[g+196>>2]=e,i[g+192>>2]=y+1,R(B=g+96|0,a=g+192|0),b(I=g+48|0,1584,h),Q=i[g+96>>2],_=i[g+48>>2],c=i[g+100>>2],t=i[g+52>>2],r=i[g+104>>2],e=i[g+56>>2],y=i[g+108>>2],h=i[g+60>>2],D=i[g+112>>2],f=i[g+64>>2],w=i[g+116>>2],n=i[g+68>>2],k=i[g+120>>2],F=i[g+72>>2],S=i[g+124>>2],N=i[g+76>>2],G=i[g+128>>2],M=i[g+80>>2],i[g+84>>2]=0-(i[g+84>>2]+i[g+132>>2]|0),i[g+80>>2]=0-(G+M|0),i[g+76>>2]=0-(S+N|0),i[g+72>>2]=0-(k+F|0),i[g+68>>2]=0-(w+n|0),i[g+64>>2]=0-(D+f|0),i[g+60>>2]=0-(y+h|0),i[g+56>>2]=0-(r+e|0),i[g+52>>2]=0-(c+t|0),i[g+48>>2]=0-(Q+_|0),b(g,I,B),i[g+404>>2]=0,i[g+408>>2]=0,i[g+412>>2]=0,i[g+416>>2]=0,i[g+420>>2]=0,i[g+388>>2]=0,i[g+392>>2]=0,i[g+384>>2]=1,i[g+396>>2]=0,i[g+400>>2]=0,f=GA(Q=g+432|0,g+384|0,g),b(A,Q,a),b(B=A+40|0,Q,A),b(B,B,I),b(A,A,E),E=i[A+36>>2]<<1,i[A+36>>2]=E,Q=i[A+32>>2]<<1,i[A+32>>2]=Q,a=i[A+28>>2]<<1,i[A+28>>2]=a,_=i[A+24>>2]<<1,i[A+24>>2]=_,c=i[A+20>>2]<<1,i[A+20>>2]=c,t=i[A+16>>2]<<1,i[A+16>>2]=t,r=i[A+12>>2]<<1,i[A+12>>2]=r,e=i[A+8>>2]<<1,i[A+8>>2]=e,y=i[A+4>>2]<<1,i[A+4>>2]=y,h=i[A>>2]<<1,i[A>>2]=h,QI(D=g+480|0,A),I=0-(1&C[g+480|0])|0,i[A+36>>2]=E^I&(E^0-E),i[A+32>>2]=Q^I&(Q^0-Q),i[A+28>>2]=a^I&(a^0-a),i[A+24>>2]=_^I&(_^0-_),i[A+20>>2]=c^I&(c^0-c),i[A+16>>2]=t^I&(t^0-t),i[A+12>>2]=r^I&(r^0-r),i[A+8>>2]=e^I&(e^0-e),i[A+4>>2]=y^I&(y^0-y),i[A>>2]=h^I&(h^0-h),b(B,p,B),i[A+84>>2]=0,i[A+88>>2]=0,i[A+80>>2]=1,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,i[A+116>>2]=0,b(I=A+120|0,A,B),QI(D,I),A=o[g+480|0],QI(D,B),B=0-(GI(D,32)|1-f|1&A)|0),s=g+512|0,B}function aA(A,I,g,B){var Q,o=0,E=0;Q=o=s,s=o=o-576&-64,i[o+188>>2]=I;A:if(I>>>0<=64){if((0|eA(E=o+192|0,0,0,I))<0)break A;if((0|WA(E,o+188|0,4,0))<0)break A;if((0|WA(E,g,B,0))<0)break A;Hg(E,A,I)}else if(!((0|eA(E=o+192|0,0,0,64))<0||(0|WA(E,o+188|0,4,0))<0||(0|WA(E,g,B,0))<0||(0|Hg(E,o+112|0,64))<0)){if(g=i[o+116>>2],B=i[o+112>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,g=i[o+124>>2],B=i[o+120>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=g,C[A+13|0]=g>>>8,C[A+14|0]=g>>>16,C[A+15|0]=g>>>24,g=i[o+140>>2],B=i[o+136>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=g,C[A+29|0]=g>>>8,C[A+30|0]=g>>>16,C[A+31|0]=g>>>24,g=i[o+132>>2],B=i[o+128>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=g,C[A+21|0]=g>>>8,C[A+22|0]=g>>>16,C[A+23|0]=g>>>24,A=A+32|0,(I=I-32|0)>>>0>=65)for(;;){if(g=i[o+172>>2],i[o+104>>2]=i[o+168>>2],i[o+108>>2]=g,g=i[o+164>>2],i[o+96>>2]=i[o+160>>2],i[o+100>>2]=g,g=i[o+156>>2],i[o+88>>2]=i[o+152>>2],i[o+92>>2]=g,g=i[o+148>>2],i[o+80>>2]=i[o+144>>2],i[o+84>>2]=g,g=i[o+140>>2],i[o+72>>2]=i[o+136>>2],i[o+76>>2]=g,B=i[o+132>>2],i[(g=o- -64|0)>>2]=i[o+128>>2],i[g+4>>2]=B,g=i[o+124>>2],i[o+56>>2]=i[o+120>>2],i[o+60>>2]=g,g=i[o+116>>2],i[o+48>>2]=i[o+112>>2],i[o+52>>2]=g,(0|lA(o+112|0,64,o+48|0,64,0,0,0))<0)break A;if(g=i[o+116>>2],B=i[o+112>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,g=i[o+124>>2],B=i[o+120>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=g,C[A+13|0]=g>>>8,C[A+14|0]=g>>>16,C[A+15|0]=g>>>24,g=i[o+140>>2],B=i[o+136>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=g,C[A+29|0]=g>>>8,C[A+30|0]=g>>>16,C[A+31|0]=g>>>24,g=i[o+132>>2],B=i[o+128>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=g,C[A+21|0]=g>>>8,C[A+22|0]=g>>>16,C[A+23|0]=g>>>24,A=A+32|0,!((I=I-32|0)>>>0>64))break}g=i[o+172>>2],i[o+104>>2]=i[o+168>>2],i[o+108>>2]=g,g=i[o+164>>2],i[o+96>>2]=i[o+160>>2],i[o+100>>2]=g,g=i[o+156>>2],i[o+88>>2]=i[o+152>>2],i[o+92>>2]=g,g=i[o+148>>2],i[o+80>>2]=i[o+144>>2],i[o+84>>2]=g,g=i[o+140>>2],i[o+72>>2]=i[o+136>>2],i[o+76>>2]=g,B=i[o+132>>2],i[(g=o- -64|0)>>2]=i[o+128>>2],i[g+4>>2]=B,g=i[o+124>>2],i[o+56>>2]=i[o+120>>2],i[o+60>>2]=g,g=i[o+116>>2],i[o+48>>2]=i[o+112>>2],i[o+52>>2]=g,(0|lA(g=o+112|0,I,o+48|0,64,0,0,0))<0||Ng(A,g,I)}XC(o+192|0,384),s=Q}function _A(A,I,g,B,Q,_,c,t,r,e,y){var h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0;if(h=Ig(r,0,t,0),!(n=f)&h>>>0>=1073741824|n)return i[9404]=22,-1;if(1==(0|c)|c>>>0>1)return i[9404]=22,-1;if(h=c,!(!(_&(n=_-1|0)|c&(h=-1!=(0|n)?h+1|0:h))&(!c&_>>>0>=2|!!(0|c))))return i[9404]=28,-1;if(!r||!t)return i[9404]=28,-1;if(!(33554431/(r>>>0)>>>0>>0|t>>>0>16777215)&&!c&33554431/(t>>>0)>>>0>=_>>>0&&!((M=a(G=t<<7,r))>>>0>(h=(k=a(_,G))+M|0)>>>0||(D=h)>>>0>(h=((F=t<<8)+h|0)- -64|0)>>>0)){A:{if(h>>>0>E[A+8>>2]){if(w=-1,Rg(A))break A;if(s=n=s-16|0,D=tI(n+12|0,h),i[9404]=D,D=D?0:i[n+12>>2],i[A+4>>2]=D,i[A>>2]=D,i[A+8>>2]=D?h:0,s=n+16|0,!D)break A}for(DI(I,g,B,Q,U=i[A+4>>2],M),Y=((k=(D=(K=M+U|0)+k|0)+(t<<7)|0)+G|0)-64|0,Q=_-1|0,N=t<<5,b=D+F|0,J=(D+G|0)-64|0;;){for(F=a(G,H)+U|0,w=0;B=(A=w<<2)+F|0,i[A+D>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,h=(B=4|A)+D|0,B=B+F|0,i[h>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,h=(B=8|A)+D|0,B=B+F|0,i[h>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,B=(A|=12)+D|0,A=A+F|0,i[B>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,n=0,h=0,(0|N)!=(0|(w=w+4|0)););for(B=0,A=0;Ng(K+(a(B,N)<<2)|0,D,G),tA(D,k,b,t),Ng(K+(a(N,1|B)<<2)|0,k,G),tA(k,D,b,t),(0|c)==(0|(A=(B=B+2|0)>>>0<2?A+1|0:A))&B>>>0<_>>>0|A>>>0>>0;);for(;;){for(A=K+(a(N,Q&i[J>>2])<<2)|0,w=0;i[(p=(B=w<<2)+D|0)>>2]=i[p>>2]^i[A+B>>2],i[(S=(p=4|B)+D|0)>>2]=i[S>>2]^i[A+p>>2],i[(S=(p=8|B)+D|0)>>2]=i[S>>2]^i[A+p>>2],i[(p=(B|=12)+D|0)>>2]=i[p>>2]^i[A+B>>2],(0|N)!=(0|(w=w+4|0)););for(tA(D,k,b,t),A=K+(a(N,Q&i[Y>>2])<<2)|0,w=0;i[(p=(B=w<<2)+k|0)>>2]=i[p>>2]^i[A+B>>2],i[(S=(p=4|B)+k|0)>>2]=i[S>>2]^i[A+p>>2],i[(S=(p=8|B)+k|0)>>2]=i[S>>2]^i[A+p>>2],i[(p=(B|=12)+k|0)>>2]=i[p>>2]^i[A+B>>2],(0|N)!=(0|(w=w+4|0)););if(tA(k,D,b,t),w=0,!((0|c)==(0|(h=(n=n+2|0)>>>0<2?h+1|0:h))&_>>>0>n>>>0|c>>>0>h>>>0))break}for(;B=(A=w<<2)+F|0,h=i[A+D>>2],C[0|B]=h,C[B+1|0]=h>>>8,C[B+2|0]=h>>>16,C[B+3|0]=h>>>24,B=(h=4|A)+F|0,h=i[h+D>>2],C[0|B]=h,C[B+1|0]=h>>>8,C[B+2|0]=h>>>16,C[B+3|0]=h>>>24,B=(h=8|A)+F|0,h=i[h+D>>2],C[0|B]=h,C[B+1|0]=h>>>8,C[B+2|0]=h>>>16,C[B+3|0]=h>>>24,A=(B=12|A)+F|0,B=i[B+D>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,(0|N)!=(0|(w=w+4|0)););if((0|(H=H+1|0))==(0|r))break}DI(I,g,U,M,e,y),w=0}return w}return i[9404]=48,-1}function cA(A,I,g){A|=0,I|=0,g|=0;var B,Q,E,a=0;s=B=s-192|0,i[B+96>>2]=0,i[B+100>>2]=0,i[B+104>>2]=0,i[B+108>>2]=0,i[B+112>>2]=0,i[B+116>>2]=0,i[B+120>>2]=0,i[B+124>>2]=0,a=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[B+80>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[B+84>>2]=a,a=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[B+88>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[B+92>>2]=a,Q=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,E=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,a=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[B+40>>2]=0,i[B+44>>2]=0,i[B+48>>2]=0,i[B+52>>2]=0,i[B+56>>2]=0,i[B+60>>2]=0,i[B+64>>2]=a,i[B+68>>2]=I,i[B+72>>2]=Q,i[B+76>>2]=E,i[B+32>>2]=0,i[B+36>>2]=0,I=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,i[B+16>>2]=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,i[B+20>>2]=I,I=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,i[B+24>>2]=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,i[B+28>>2]=I,I=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,i[B>>2]=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24,i[B+4>>2]=I,I=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,i[B+8>>2]=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,i[B+12>>2]=I,og(B- -64|0,B),g=i[B+124>>2],i[B+184>>2]=i[B+120>>2],i[B+188>>2]=g,I=i[B+116>>2],i[B+176>>2]=i[B+112>>2],i[B+180>>2]=I,I=i[B+108>>2],i[B+168>>2]=i[B+104>>2],i[B+172>>2]=I,I=i[B+100>>2],i[B+160>>2]=i[B+96>>2],i[B+164>>2]=I,I=i[B+92>>2],i[B+152>>2]=i[B+88>>2],i[B+156>>2]=I,I=i[B+84>>2],i[B+144>>2]=i[B+80>>2],i[B+148>>2]=I,I=i[B+76>>2],i[B+136>>2]=i[B+72>>2],i[B+140>>2]=I,I=i[B+68>>2],i[B+128>>2]=i[B+64>>2],i[B+132>>2]=I,S(I=B+128|0),a=i[B+156>>2],g=i[B+152>>2],C[A+24|0]=g,C[A+25|0]=g>>>8,C[A+26|0]=g>>>16,C[A+27|0]=g>>>24,C[A+28|0]=a,C[A+29|0]=a>>>8,C[A+30|0]=a>>>16,C[A+31|0]=a>>>24,a=i[B+148>>2],g=i[B+144>>2],C[A+16|0]=g,C[A+17|0]=g>>>8,C[A+18|0]=g>>>16,C[A+19|0]=g>>>24,C[A+20|0]=a,C[A+21|0]=a>>>8,C[A+22|0]=a>>>16,C[A+23|0]=a>>>24,a=i[B+140>>2],g=i[B+136>>2],C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=a,C[A+13|0]=a>>>8,C[A+14|0]=a>>>16,C[A+15|0]=a>>>24,a=i[B+132>>2],g=i[B+128>>2],C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=a,C[A+5|0]=a>>>8,C[A+6|0]=a>>>16,C[A+7|0]=a>>>24,XC(I,64),s=B+192|0}function tA(A,I,g,C){var B=0,Q=0,o=0,E=0,a=0;if(Q=i[4+(B=((C<<7)+A|0)-64|0)>>2],i[g>>2]=i[B>>2],i[g+4>>2]=Q,Q=i[B+60>>2],i[g+56>>2]=i[B+56>>2],i[g+60>>2]=Q,Q=i[B+52>>2],i[g+48>>2]=i[B+48>>2],i[g+52>>2]=Q,Q=i[B+44>>2],i[g+40>>2]=i[B+40>>2],i[g+44>>2]=Q,Q=i[B+36>>2],i[g+32>>2]=i[B+32>>2],i[g+36>>2]=Q,Q=i[B+28>>2],i[g+24>>2]=i[B+24>>2],i[g+28>>2]=Q,Q=i[B+20>>2],i[g+16>>2]=i[B+16>>2],i[g+20>>2]=Q,Q=i[B+12>>2],i[g+8>>2]=i[B+8>>2],i[g+12>>2]=Q,C)for(Q=C<<1,a=C<<6;C=(E<<6)+A|0,i[g>>2]=i[g>>2]^i[C>>2],i[g+4>>2]=i[g+4>>2]^i[C+4>>2],i[g+8>>2]=i[g+8>>2]^i[C+8>>2],i[g+12>>2]=i[g+12>>2]^i[C+12>>2],i[g+16>>2]=i[g+16>>2]^i[C+16>>2],i[g+20>>2]=i[g+20>>2]^i[C+20>>2],i[g+24>>2]=i[g+24>>2]^i[C+24>>2],i[g+28>>2]=i[g+28>>2]^i[C+28>>2],i[g+32>>2]=i[g+32>>2]^i[C+32>>2],i[g+36>>2]=i[g+36>>2]^i[C+36>>2],i[g+40>>2]=i[g+40>>2]^i[C+40>>2],i[g+44>>2]=i[g+44>>2]^i[C+44>>2],i[g+48>>2]=i[g+48>>2]^i[C+48>>2],i[g+52>>2]=i[g+52>>2]^i[C+52>>2],i[g+56>>2]=i[g+56>>2]^i[C+56>>2],i[g+60>>2]=i[g+60>>2]^i[C+60>>2],VA(g),o=i[g+60>>2],i[56+(B=(E<<5)+I|0)>>2]=i[g+56>>2],i[B+60>>2]=o,o=i[g+52>>2],i[B+48>>2]=i[g+48>>2],i[B+52>>2]=o,o=i[g+44>>2],i[B+40>>2]=i[g+40>>2],i[B+44>>2]=o,o=i[g+36>>2],i[B+32>>2]=i[g+32>>2],i[B+36>>2]=o,o=i[g+28>>2],i[B+24>>2]=i[g+24>>2],i[B+28>>2]=o,o=i[g+20>>2],i[B+16>>2]=i[g+16>>2],i[B+20>>2]=o,o=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=o,o=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=o,i[g>>2]=i[g>>2]^i[C- -64>>2],i[g+4>>2]=i[g+4>>2]^i[C+68>>2],i[g+8>>2]=i[g+8>>2]^i[C+72>>2],i[g+12>>2]=i[g+12>>2]^i[C+76>>2],i[g+16>>2]=i[g+16>>2]^i[C+80>>2],i[g+20>>2]=i[g+20>>2]^i[C+84>>2],i[g+24>>2]=i[g+24>>2]^i[C+88>>2],i[g+28>>2]=i[g+28>>2]^i[C+92>>2],i[g+32>>2]=i[g+32>>2]^i[C+96>>2],i[g+36>>2]=i[g+36>>2]^i[C+100>>2],i[g+40>>2]=i[g+40>>2]^i[C+104>>2],i[g+44>>2]=i[g+44>>2]^i[C+108>>2],i[g+48>>2]=i[g+48>>2]^i[C+112>>2],i[g+52>>2]=i[g+52>>2]^i[C+116>>2],i[g+56>>2]=i[g+56>>2]^i[C+120>>2],i[g+60>>2]=i[g+60>>2]^i[C+124>>2],VA(g),C=B+a|0,B=i[g+60>>2],i[C+56>>2]=i[g+56>>2],i[C+60>>2]=B,B=i[g+52>>2],i[C+48>>2]=i[g+48>>2],i[C+52>>2]=B,B=i[g+44>>2],i[C+40>>2]=i[g+40>>2],i[C+44>>2]=B,B=i[g+36>>2],i[C+32>>2]=i[g+32>>2],i[C+36>>2]=B,B=i[g+28>>2],i[C+24>>2]=i[g+24>>2],i[C+28>>2]=B,B=i[g+20>>2],i[C+16>>2]=i[g+16>>2],i[C+20>>2]=B,B=i[g+12>>2],i[C+8>>2]=i[g+8>>2],i[C+12>>2]=B,B=i[g+4>>2],i[C>>2]=i[g>>2],i[C+4>>2]=B,Q>>>0>(E=E+2|0)>>>0;);}function rA(A,I,g,C){var B=0,Q=0,E=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0;if(h=i[A+36>>2],y=i[A+32>>2],s=i[A+28>>2],r=i[A+24>>2],e=i[A+20>>2],!C&g>>>0>=16|C)for(M=!o[A+80|0]<<24,p=i[A+4>>2],K=a(p,5),n=i[A+8>>2],N=a(n,5),F=i[A+12>>2],S=a(F,5),G=i[A+16>>2],k=a(G,5),w=i[A>>2];B=Ig(E=((o[I+3|0]|o[I+4|0]<<8|o[I+5|0]<<16|o[I+6|0]<<24)>>>2&67108863)+r|0,0,F,0),c=f,e=(_=Ig(r=(67108863&(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24))+e|0,0,G,0))+B|0,B=f+c|0,B=_>>>0>e>>>0?B+1|0:B,c=Ig(s=((o[I+6|0]|o[I+7|0]<<8|o[I+8|0]<<16|o[I+9|0]<<24)>>>4&67108863)+s|0,0,n,0),B=f+B|0,B=c>>>0>(e=c+e|0)>>>0?B+1|0:B,c=Ig(y=((o[I+9|0]|o[I+10|0]<<8|o[I+11|0]<<16|o[I+12|0]<<24)>>>6|0)+y|0,0,p,0),B=f+B|0,B=c>>>0>(e=c+e|0)>>>0?B+1|0:B,c=Ig(h=h+M+((o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)>>>8)|0,0,w,0),B=f+B|0,U=e=c+e|0,e=c>>>0>e>>>0?B+1|0:B,B=Ig(E,0,n,0),c=f,_=Ig(r,0,F,0),Q=f+c|0,Q=(B=_+B|0)>>>0<_>>>0?Q+1|0:Q,c=(_=Ig(s,0,p,0))+B|0,B=f+Q|0,B=_>>>0>c>>>0?B+1|0:B,_=Ig(y,0,w,0),B=f+B|0,B=_>>>0>(c=_+c|0)>>>0?B+1|0:B,_=Ig(h,0,k,0),B=f+B|0,b=c=_+c|0,c=_>>>0>c>>>0?B+1|0:B,B=Ig(E,0,p,0),t=f,_=(Q=Ig(r,0,n,0))+B|0,B=f+t|0,B=Q>>>0>_>>>0?B+1|0:B,t=Ig(s,0,w,0),Q=f+B|0,Q=(_=t+_|0)>>>0>>0?Q+1|0:Q,t=Ig(y,0,k,0),B=f+Q|0,B=(_=t+_|0)>>>0>>0?B+1|0:B,t=Ig(h,0,S,0),B=f+B|0,H=_=t+_|0,_=_>>>0>>0?B+1|0:B,B=Ig(E,0,w,0),Q=f,t=(D=Ig(r,0,p,0))+B|0,B=f+Q|0,B=t>>>0>>0?B+1|0:B,Q=Ig(s,0,k,0),B=f+B|0,B=Q>>>0>(t=Q+t|0)>>>0?B+1|0:B,D=Ig(y,0,S,0),Q=f+B|0,Q=(t=D+t|0)>>>0>>0?Q+1|0:Q,D=Ig(h,0,N,0),B=f+Q|0,B=(t=D+t|0)>>>0>>0?B+1|0:B,D=t,t=B,B=Ig(E,0,k,0),Q=f,E=(r=Ig(r,0,w,0))+B|0,B=f+Q|0,B=E>>>0>>0?B+1|0:B,r=Ig(s,0,S,0),B=f+B|0,B=(E=r+E|0)>>>0>>0?B+1|0:B,r=Ig(y,0,N,0),B=f+B|0,B=(E=r+E|0)>>>0>>0?B+1|0:B,r=Ig(h,0,K,0),Q=f+B|0,Q=(E=r+E|0)>>>0>>0?Q+1|0:Q,r=E,B=t,B=(E=(s=(67108863&Q)<<6|E>>>26)+D|0)>>>0>>0?B+1|0:B,s=E,y=(67108863&B)<<6|E>>>26,B=_,B=(E=y+H|0)>>>0>>0?B+1|0:B,y=E,Q=c,h=B=(E=(67108863&B)<<6|E>>>26)+b|0,c=(67108863&(Q=B>>>0>>0?Q+1|0:Q))<<6|B>>>26,B=e,r=(67108863&s)+((B=a((67108863&((E=c+U|0)>>>0>>0?B+1:B))<<6|E>>>26,5)+(67108863&r)|0)>>>26|0)|0,s=67108863&y,y=67108863&h,h=67108863&E,e=67108863&B,I=I+16|0,!(C=C-(g>>>0<16)|0)&(g=g-16|0)>>>0>15|C;);i[A+20>>2]=e,i[A+36>>2]=h,i[A+32>>2]=y,i[A+28>>2]=s,i[A+24>>2]=r}function eA(A,I,g,B){A|=0,I|=0;var i=0;return i=-1,(B|=0)-65>>>0<4294967232|(g|=0)>>>0>64||(g&&I?(s=i=s-128|0,!I|((B&=255)-65&255)>>>0<=191|((g&=255)-65&255)>>>0<=191?(rC(),Q()):(bg(A- -64|0,0,293),C[A+56|0]=121,C[A+57|0]=33,C[A+58|0]=126,C[A+59|0]=19,C[A+60|0]=25,C[A+61|0]=205,C[A+62|0]=224,C[A+63|0]=91,C[A+48|0]=107,C[A+49|0]=189,C[A+50|0]=65,C[A+51|0]=251,C[A+52|0]=171,C[A+53|0]=217,C[A+54|0]=131,C[A+55|0]=31,C[A+40|0]=31,C[A+41|0]=108,C[A+42|0]=62,C[A+43|0]=43,C[A+44|0]=140,C[A+45|0]=104,C[A+46|0]=5,C[A+47|0]=155,C[A+32|0]=209,C[A+33|0]=130,C[A+34|0]=230,C[A+35|0]=173,C[A+36|0]=127,C[A+37|0]=82,C[A+38|0]=14,C[A+39|0]=81,C[A+24|0]=241,C[A+25|0]=54,C[A+26|0]=29,C[A+27|0]=95,C[A+28|0]=58,C[A+29|0]=245,C[A+30|0]=79,C[A+31|0]=165,C[A+16|0]=43,C[A+17|0]=248,C[A+18|0]=148,C[A+19|0]=254,C[A+20|0]=114,C[A+21|0]=243,C[A+22|0]=110,C[A+23|0]=60,C[A+8|0]=59,C[A+9|0]=167,C[A+10|0]=202,C[A+11|0]=132,C[A+12|0]=133,C[A+13|0]=174,C[A+14|0]=103,C[A+15|0]=187,B=-222443256^(g<<8|B),C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,B=g>>>24^1779033703,C[A+4|0]=B,C[A+5|0]=B>>>8,C[A+6|0]=B>>>16,C[A+7|0]=B>>>24,g=Ng(bg(i,0,128),I,g),Ng(A+96|0,g,128),I=128+(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)|0,C[A+352|0]=I,C[A+353|0]=I>>>8,C[A+354|0]=I>>>16,C[A+355|0]=I>>>24,XC(g,128),s=g+128|0)):(((I=255&B)-65&255)>>>0<=191&&(rC(),Q()),bg(A- -64|0,0,293),C[A+56|0]=121,C[A+57|0]=33,C[A+58|0]=126,C[A+59|0]=19,C[A+60|0]=25,C[A+61|0]=205,C[A+62|0]=224,C[A+63|0]=91,C[A+48|0]=107,C[A+49|0]=189,C[A+50|0]=65,C[A+51|0]=251,C[A+52|0]=171,C[A+53|0]=217,C[A+54|0]=131,C[A+55|0]=31,C[A+40|0]=31,C[A+41|0]=108,C[A+42|0]=62,C[A+43|0]=43,C[A+44|0]=140,C[A+45|0]=104,C[A+46|0]=5,C[A+47|0]=155,C[A+32|0]=209,C[A+33|0]=130,C[A+34|0]=230,C[A+35|0]=173,C[A+36|0]=127,C[A+37|0]=82,C[A+38|0]=14,C[A+39|0]=81,C[A+24|0]=241,C[A+25|0]=54,C[A+26|0]=29,C[A+27|0]=95,C[A+28|0]=58,C[A+29|0]=245,C[A+30|0]=79,C[A+31|0]=165,C[A+16|0]=43,C[A+17|0]=248,C[A+18|0]=148,C[A+19|0]=254,C[A+20|0]=114,C[A+21|0]=243,C[A+22|0]=110,C[A+23|0]=60,C[A+8|0]=59,C[A+9|0]=167,C[A+10|0]=202,C[A+11|0]=132,C[A+12|0]=133,C[A+13|0]=174,C[A+14|0]=103,C[A+15|0]=187,I^=-222443256,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,C[A+4|0]=103,C[A+5|0]=230,C[A+6|0]=9,C[A+7|0]=106),i=0),0|i}function yA(A,I,g,B){A|=0,I|=0,g|=0;var Q=0,i=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0;for((B|=0)?(i=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,E=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,Q=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,t=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24):(i=2036477234,E=857760878,Q=1634760805,t=1797285236),a=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,e=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,_=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,y=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,c=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,w=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,s=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,B=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,h=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,D=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,I=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,g=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24;r=g,g=Lg((f=I)^(I=g+Q|0),16),r=s=Lg(r^(Q=g+s|0),12),p=Lg((f=I+s|0)^g,8),I=Lg(r^(s=p+Q|0),7),a=Lg((g=B+t|0)^a,16),B=Lg((y=a+y|0)^B,12),r=h,i=Lg((t=i+h|0)^e,16),Q=Lg(r^(h=i+c|0),12),c=Lg((c=i)^(i=Q+t|0),8),g=Lg(c^(t=(n=g+B|0)+I|0),16),e=Lg((E=E+D|0)^_,16),D=Lg((_=e+w|0)^D,12),r=I,I=Lg((E=D+E|0)^e,8),r=Lg(r^(_=(k=I+_|0)+g|0),12),e=Lg(g^(t=r+t|0),8),g=Lg((w=e+_|0)^r,7),a=Lg(a^n,8),B=Lg((y=a+y|0)^B,7),_=Lg((i=B+i|0)^I,16),B=Lg((I=_+s|0)^B,12),_=Lg(_^(i=B+i|0),8),B=Lg((s=I+_|0)^B,7),I=Lg((c=c+h|0)^Q,7),h=Lg((E=I+E|0)^p,16),p=Lg(I^(Q=h+y|0),12),I=Lg(h^(E=p+E|0),8),h=Lg((y=Q+I|0)^p,7),r=c,c=a,Q=Lg(D^k,7),c=Lg(c^(a=Q+f|0),16),f=Lg(Q^(D=r+c|0),12),a=Lg(c^(Q=f+a|0),8),D=Lg((c=D+a|0)^f,7),10!=(0|(F=F+1|0)););return C[0|A]=Q,C[A+1|0]=Q>>>8,C[A+2|0]=Q>>>16,C[A+3|0]=Q>>>24,C[A+28|0]=a,C[A+29|0]=a>>>8,C[A+30|0]=a>>>16,C[A+31|0]=a>>>24,C[A+24|0]=e,C[A+25|0]=e>>>8,C[A+26|0]=e>>>16,C[A+27|0]=e>>>24,C[A+20|0]=_,C[A+21|0]=_>>>8,C[A+22|0]=_>>>16,C[A+23|0]=_>>>24,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24,C[A+12|0]=t,C[A+13|0]=t>>>8,C[A+14|0]=t>>>16,C[A+15|0]=t>>>24,C[A+8|0]=i,C[A+9|0]=i>>>8,C[A+10|0]=i>>>16,C[A+11|0]=i>>>24,C[A+4|0]=E,C[A+5|0]=E>>>8,C[A+6|0]=E>>>16,C[A+7|0]=E>>>24,0}function sA(A,I,g){var C,B,Q,o,E,a,_,c,t,r,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0;y=i[I+4>>2],e=i[I+44>>2],h=i[I+8>>2],D=i[I+48>>2],f=i[I+12>>2],p=i[I+52>>2],w=i[I+16>>2],n=i[I+56>>2],k=i[I+20>>2],F=i[I+60>>2],S=i[I+24>>2],N=i[(s=I- -64|0)>>2],G=i[I+28>>2],M=i[I+68>>2],K=i[I+32>>2],U=i[I+72>>2],H=i[I+36>>2],Y=i[I+76>>2],i[A>>2]=i[I>>2]+i[I+40>>2],i[A+36>>2]=H+Y,i[A+32>>2]=K+U,i[A+28>>2]=G+M,i[A+24>>2]=S+N,i[A+20>>2]=k+F,i[A+16>>2]=w+n,i[A+12>>2]=f+p,i[A+8>>2]=h+D,i[A+4>>2]=e+y,e=i[I+4>>2],h=i[I+44>>2],D=i[I+8>>2],f=i[I+48>>2],p=i[I+12>>2],w=i[I+52>>2],n=i[I+16>>2],k=i[I+56>>2],F=i[I+20>>2],S=i[I+60>>2],N=i[I+24>>2],s=i[s>>2],y=i[I+28>>2],G=i[I+68>>2],M=i[I+32>>2],K=i[I+72>>2],U=i[I>>2],H=i[I+40>>2],i[A+76>>2]=i[I+76>>2]-i[I+36>>2],i[A+72>>2]=K-M,i[A+68>>2]=G-y,i[(y=A- -64|0)>>2]=s-N,i[A+60>>2]=S-F,i[A+56>>2]=k-n,i[A+52>>2]=w-p,i[A+48>>2]=f-D,i[A+44>>2]=h-e,i[A+40>>2]=H-U,b(A+80|0,A,g),b(e=A+40|0,e,g+40|0),b(A+120|0,g+120|0,I+120|0),b(A,I+80|0,g+80|0),H=i[A+4>>2],Y=i[A+8>>2],Q=i[A+12>>2],o=i[A+16>>2],E=i[A+20>>2],a=i[A+24>>2],_=i[A+28>>2],c=i[A+32>>2],t=i[A+36>>2],I=i[A+44>>2],g=i[A+84>>2],e=i[A+48>>2],h=i[A+88>>2],D=i[A+52>>2],f=i[A+92>>2],p=i[A+56>>2],w=i[A+96>>2],n=i[A+60>>2],k=i[A+100>>2],F=i[y>>2],S=i[A+104>>2],s=i[A+68>>2],N=i[A+108>>2],G=i[A+72>>2],M=i[A+112>>2],r=i[A>>2],K=i[A+40>>2],U=i[A+80>>2],C=i[A+76>>2],B=i[A+116>>2],i[A+76>>2]=C+B,i[A+72>>2]=G+M,i[A+68>>2]=s+N,i[y>>2]=F+S,i[A+60>>2]=n+k,i[A+56>>2]=p+w,i[A+52>>2]=D+f,i[A+48>>2]=e+h,i[A+44>>2]=I+g,i[A+40>>2]=K+U,i[A+36>>2]=B-C,i[A+32>>2]=M-G,i[A+28>>2]=N-s,i[A+24>>2]=S-F,i[A+20>>2]=k-n,i[A+16>>2]=w-p,i[A+12>>2]=f-D,i[A+8>>2]=h-e,i[A+4>>2]=g-I,i[A>>2]=U-K,I=t<<1,g=i[A+156>>2],i[A+156>>2]=I-g,y=c<<1,e=i[A+152>>2],i[A+152>>2]=y-e,h=_<<1,D=i[A+148>>2],i[A+148>>2]=h-D,f=a<<1,p=i[A+144>>2],i[A+144>>2]=f-p,w=E<<1,n=i[A+140>>2],i[A+140>>2]=w-n,k=o<<1,F=i[A+136>>2],i[A+136>>2]=k-F,S=Q<<1,s=i[A+132>>2],i[A+132>>2]=S-s,N=Y<<1,G=i[A+128>>2],i[A+128>>2]=N-G,M=H<<1,K=i[A+124>>2],i[A+124>>2]=M-K,U=r<<1,H=i[A+120>>2],i[A+120>>2]=U-H,i[A+112>>2]=e+y,i[A+108>>2]=h+D,i[A+104>>2]=f+p,i[A+100>>2]=w+n,i[A+96>>2]=k+F,i[A+92>>2]=S+s,i[A+88>>2]=N+G,i[A+84>>2]=M+K,i[A+80>>2]=U+H,i[A+116>>2]=I+g}function hA(A,I,g){var C,B,Q,o,E,a,_,c,t,r,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0;y=i[I+4>>2],e=i[I+44>>2],h=i[I+8>>2],D=i[I+48>>2],f=i[I+12>>2],p=i[I+52>>2],w=i[I+16>>2],n=i[I+56>>2],k=i[I+20>>2],F=i[I+60>>2],S=i[I+24>>2],N=i[(s=I- -64|0)>>2],G=i[I+28>>2],M=i[I+68>>2],K=i[I+32>>2],U=i[I+72>>2],H=i[I+36>>2],Y=i[I+76>>2],i[A>>2]=i[I>>2]+i[I+40>>2],i[A+36>>2]=H+Y,i[A+32>>2]=K+U,i[A+28>>2]=G+M,i[A+24>>2]=S+N,i[A+20>>2]=k+F,i[A+16>>2]=w+n,i[A+12>>2]=f+p,i[A+8>>2]=h+D,i[A+4>>2]=e+y,e=i[I+4>>2],h=i[I+44>>2],D=i[I+8>>2],f=i[I+48>>2],p=i[I+12>>2],w=i[I+52>>2],n=i[I+16>>2],k=i[I+56>>2],F=i[I+20>>2],S=i[I+60>>2],N=i[I+24>>2],s=i[s>>2],y=i[I+28>>2],G=i[I+68>>2],M=i[I+32>>2],K=i[I+72>>2],U=i[I>>2],H=i[I+40>>2],i[A+76>>2]=i[I+76>>2]-i[I+36>>2],i[A+72>>2]=K-M,i[A+68>>2]=G-y,i[(y=A- -64|0)>>2]=s-N,i[A+60>>2]=S-F,i[A+56>>2]=k-n,i[A+52>>2]=w-p,i[A+48>>2]=f-D,i[A+44>>2]=h-e,i[A+40>>2]=H-U,b(A+80|0,A,g+40|0),b(e=A+40|0,e,g),b(A+120|0,g+120|0,I+120|0),b(A,I+80|0,g+80|0),H=i[A+4>>2],Y=i[A+8>>2],Q=i[A+12>>2],o=i[A+16>>2],E=i[A+20>>2],a=i[A+24>>2],_=i[A+28>>2],c=i[A+32>>2],t=i[A+36>>2],I=i[A+44>>2],g=i[A+84>>2],e=i[A+48>>2],h=i[A+88>>2],D=i[A+52>>2],f=i[A+92>>2],p=i[A+56>>2],w=i[A+96>>2],n=i[A+60>>2],k=i[A+100>>2],F=i[y>>2],S=i[A+104>>2],s=i[A+68>>2],N=i[A+108>>2],G=i[A+72>>2],M=i[A+112>>2],r=i[A>>2],K=i[A+40>>2],U=i[A+80>>2],C=i[A+76>>2],B=i[A+116>>2],i[A+76>>2]=C+B,i[A+72>>2]=G+M,i[A+68>>2]=s+N,i[y>>2]=F+S,i[A+60>>2]=n+k,i[A+56>>2]=p+w,i[A+52>>2]=D+f,i[A+48>>2]=e+h,i[A+44>>2]=I+g,i[A+40>>2]=K+U,i[A+36>>2]=B-C,i[A+32>>2]=M-G,i[A+28>>2]=N-s,i[A+24>>2]=S-F,i[A+20>>2]=k-n,i[A+16>>2]=w-p,i[A+12>>2]=f-D,i[A+8>>2]=h-e,i[A+4>>2]=g-I,i[A>>2]=U-K,I=i[A+156>>2],g=t<<1,i[A+156>>2]=I+g,y=i[A+152>>2],e=c<<1,i[A+152>>2]=y+e,h=i[A+148>>2],D=_<<1,i[A+148>>2]=h+D,f=i[A+144>>2],p=a<<1,i[A+144>>2]=f+p,w=i[A+140>>2],n=E<<1,i[A+140>>2]=w+n,k=i[A+136>>2],F=o<<1,i[A+136>>2]=k+F,S=i[A+132>>2],s=Q<<1,i[A+132>>2]=S+s,N=i[A+128>>2],G=Y<<1,i[A+128>>2]=N+G,M=i[A+124>>2],K=H<<1,i[A+124>>2]=M+K,U=i[A+120>>2],H=r<<1,i[A+120>>2]=U+H,i[A+112>>2]=e-y,i[A+108>>2]=D-h,i[A+104>>2]=p-f,i[A+100>>2]=n-w,i[A+96>>2]=F-k,i[A+92>>2]=s-S,i[A+88>>2]=G-N,i[A+84>>2]=K-M,i[A+80>>2]=H-U,i[A+116>>2]=g-I}function DA(A,I,g){var C,B,Q,o,E,a,_,c,t,r,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0;y=i[I+4>>2],e=i[I+44>>2],h=i[I+8>>2],D=i[I+48>>2],f=i[I+12>>2],p=i[I+52>>2],w=i[I+16>>2],n=i[I+56>>2],k=i[I+20>>2],F=i[I+60>>2],S=i[I+24>>2],N=i[(s=I- -64|0)>>2],G=i[I+28>>2],M=i[I+68>>2],K=i[I+32>>2],U=i[I+72>>2],H=i[I+36>>2],Y=i[I+76>>2],i[A>>2]=i[I>>2]+i[I+40>>2],i[A+36>>2]=H+Y,i[A+32>>2]=K+U,i[A+28>>2]=G+M,i[A+24>>2]=S+N,i[A+20>>2]=k+F,i[A+16>>2]=w+n,i[A+12>>2]=f+p,i[A+8>>2]=h+D,i[A+4>>2]=e+y,e=i[I+4>>2],h=i[I+44>>2],D=i[I+8>>2],f=i[I+48>>2],p=i[I+12>>2],w=i[I+52>>2],n=i[I+16>>2],k=i[I+56>>2],F=i[I+20>>2],S=i[I+60>>2],N=i[I+24>>2],s=i[s>>2],y=i[I+28>>2],G=i[I+68>>2],M=i[I+32>>2],K=i[I+72>>2],U=i[I>>2],H=i[I+40>>2],i[A+76>>2]=i[I+76>>2]-i[I+36>>2],i[A+72>>2]=K-M,i[A+68>>2]=G-y,i[(y=A- -64|0)>>2]=s-N,i[A+60>>2]=S-F,i[A+56>>2]=k-n,i[A+52>>2]=w-p,i[A+48>>2]=f-D,i[A+44>>2]=h-e,i[A+40>>2]=H-U,b(A+80|0,A,g),b(e=A+40|0,e,g+40|0),b(A+120|0,g+80|0,I+120|0),H=i[I+84>>2],Y=i[I+88>>2],Q=i[I+92>>2],o=i[I+96>>2],E=i[I+100>>2],a=i[I+104>>2],_=i[I+108>>2],c=i[I+112>>2],t=i[I+116>>2],g=i[A+44>>2],e=i[A+84>>2],h=i[A+48>>2],D=i[A+88>>2],f=i[A+52>>2],p=i[A+92>>2],w=i[A+56>>2],n=i[A+96>>2],k=i[A+60>>2],F=i[A+100>>2],S=i[y>>2],s=i[A+104>>2],N=i[A+68>>2],G=i[A+108>>2],M=i[A+72>>2],K=i[A+112>>2],r=i[I+80>>2],I=i[A+40>>2],U=i[A+80>>2],C=i[A+76>>2],B=i[A+116>>2],i[A+76>>2]=C+B,i[A+72>>2]=M+K,i[A+68>>2]=N+G,i[y>>2]=S+s,i[A+60>>2]=k+F,i[A+56>>2]=w+n,i[A+52>>2]=f+p,i[A+48>>2]=h+D,i[A+44>>2]=g+e,i[A+40>>2]=I+U,i[A+36>>2]=B-C,i[A+32>>2]=K-M,i[A+28>>2]=G-N,i[A+24>>2]=s-S,i[A+20>>2]=F-k,i[A+16>>2]=n-w,i[A+12>>2]=p-f,i[A+8>>2]=D-h,i[A+4>>2]=e-g,i[A>>2]=U-I,I=t<<1,g=i[A+156>>2],i[A+156>>2]=I-g,y=c<<1,e=i[A+152>>2],i[A+152>>2]=y-e,h=_<<1,D=i[A+148>>2],i[A+148>>2]=h-D,f=a<<1,p=i[A+144>>2],i[A+144>>2]=f-p,w=E<<1,n=i[A+140>>2],i[A+140>>2]=w-n,k=o<<1,F=i[A+136>>2],i[A+136>>2]=k-F,S=Q<<1,s=i[A+132>>2],i[A+132>>2]=S-s,N=Y<<1,G=i[A+128>>2],i[A+128>>2]=N-G,M=H<<1,K=i[A+124>>2],i[A+124>>2]=M-K,U=r<<1,H=i[A+120>>2],i[A+120>>2]=U-H,i[A+112>>2]=e+y,i[A+108>>2]=h+D,i[A+104>>2]=f+p,i[A+100>>2]=w+n,i[A+96>>2]=k+F,i[A+92>>2]=S+s,i[A+88>>2]=N+G,i[A+84>>2]=M+K,i[A+80>>2]=U+H,i[A+116>>2]=I+g}function fA(A,I){var g,C,B,Q,E,a,_,c,t,r,e,y,s,h,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0;s=o[I+31|0],g=o[I+30|0],C=o[I+29|0],B=o[I+6|0],Q=o[I+5|0],E=o[I+4|0],a=o[I+9|0],_=o[I+8|0],c=o[I+7|0],t=o[I+12|0],K=o[I+11|0],U=o[I+10|0],r=o[I+15|0],b=o[I+14|0],e=o[I+13|0],S=o[I+28|0],M=o[I+27|0],N=o[I+26|0],F=o[I+25|0],n=o[I+24|0],w=o[I+23|0],h=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,k=(p=o[I+21|0])<<15,p=D=p>>>17|0,G=k,G|=(k=o[I+20|0])<<7,k=(D=k>>>25|0)|p,p=(D=o[I+22|0])>>>9|0,D=D<<23|G,p|=k,y=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,I=0,k=D,D=(33554431&(I=(G=y+16777216|0)>>>0<16777216?1:I))<<7|G>>>25,I=(I>>>25|0)+p|0,D=(p=k=k+D|0)>>>0>>0?I+1|0:I,I=(k=p+33554432|0)>>>0<33554432?D+1|0:D,i[A+24>>2]=p-(-67108864&k),D=(p=w>>>27|0)|n>>>19|F>>>11,p=w=(n=F<<21|(w=n<<13|w<<5))+(p=(67108863&(p=I))<<6|k>>>26)|0,I=D,D=(w=n+16777216|0)>>>0<16777216?I+1|0:I,i[A+28>>2]=p-(1040187392&w),p=(D=(I=D)>>>25|0)+(p=M>>>20|N>>>28|S>>>12)|0,I=p=(D=w=(I=(33554431&I)<<7|w>>>25)+(M<<12|N<<4|S<<20)|0)>>>0>>0?p+1|0:p,w=(S=D+33554432|0)>>>0<33554432?I+1|0:I,i[A+32>>2]=D-(-67108864&S),p=t>>>13|(D=K>>>21|U>>>29),I=(p=(M=16777216+(K=K<<11|U<<3|t<<19)|0)>>>0<16777216?p+1|0:p)>>>25|0,p=(D=n=b<<10|e<<2|r<<18)+(n=(33554431&p)<<7|M>>>25)|0,D=I+(F=b>>>22|e>>>30|r>>>14)|0,I=D=p>>>0>>0?D+1|0:D,n=((67108863&(I=(n=p+33554432|0)>>>0<33554432?I+1|0:I))<<6|(D=n)>>>26)+(N=y-(-33554432&G)|0)|0,i[A+20>>2]=n,i[A+16>>2]=p-(-67108864&D),D=Q>>>18|E>>>26|B>>>10,p=(D=(N=16777216+(U=Q<<14|E<<6|B<<22)|0)>>>0<16777216?D+1|0:D)>>>25|0,D=(I=n=_<<13|c<<5|a<<21)+(n=(33554431&D)<<7|N>>>25)|0,I=p+(F=_>>>19|c>>>27|a>>>11)|0,I=D>>>0>>0?I+1|0:I,p=(F=D+33554432|0)>>>0<33554432?I+1|0:I,i[A+8>>2]=D-(-67108864&F),S=(w=(67108863&w)<<6|S>>>26)+(b=s<<18&33292288|g<<10|C<<2)|0,I=D=g>>>22|C>>>30,D=(w=b+16777216|0)>>>0<16777216?I+1|0:I,i[A+36>>2]=S-(33554432&w),p=K+((67108863&p)<<6|F>>>26)|0,i[A+12>>2]=p-(234881024&M),n=U-(2113929216&N)|0,p=Ig((33554431&(I=D))<<7|w>>>25,D=I>>>25|0,19,0),I=f,p=(D=p+h|0)>>>0

>>0?I+1|0:I,w=((67108863&(p=(I=D+33554432|0)>>>0<33554432?p+1|0:p))<<6|I>>>26)+n|0,i[A+4>>2]=w,i[A>>2]=D-(-67108864&I)}function pA(A,I,g,B,E,a,_,c){A|=0,I|=0,g|=0,B|=0,E|=0,a|=0,_|=0;var t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0;if(1==(-7&(c|=0))){A:{I:{g:{C:{B:{Q:{i:{if(B){o:{E:{if(c>>>0<=3){for(;;){y=r;a:{_:{c:{t:{for(;;){if(t=(t=(e=C[g+y|0])-65|0)&(~(90-e)&~t)>>>8&255|e+4&(~(e+65488)&~(57-e))>>>8&255|e+185&(~(e+65439)&~(122-e))>>>8&255|~(1+(16336^e))>>>8&63|~(1+(16340^e))>>>8&62,255!=(0|(t|=(t-1&1+(65470^e))>>>8&255)))break t;if(t=0,!E)break o;if(!kI(E,e))break;if((y=y+1|0)>>>0>=B>>>0)break c}r=y;break o}if(D=t+(D<<6)|0,s>>>0>1)break _;s=s+6|0;break a}r=(A=r+1|0)>>>0>>0?B:A;break o}if(s=s-2|0,I>>>0<=h>>>0)break E;C[A+h|0]=D>>>s,h=h+1|0}if(t=0,!((r=y+1|0)>>>0>>0))break}break o}for(;;){a:{if(t=(t=(e=C[g+y|0])-65|0)&(~(90-e)&~t)>>>8&255|e+4&(~(e+65488)&~(57-e))>>>8&255|e+185&(~(e+65439)&~(122-e))>>>8&255|~(1+(16288^e))>>>8&63|~(1+(16338^e))>>>8&62,255==(0|(t|=(t-1&1+(65470^e))>>>8&255))){if(t=0,!E)break o;if(kI(E,e)){if((y=y+1|0)>>>0>=B>>>0)break a;continue}r=y;break o}if(D=t+(D<<6)|0,s>>>0<2)s=s+6|0;else{if(s=s-2|0,I>>>0<=h>>>0)break E;C[A+h|0]=D>>>s,h=h+1|0}if(t=0,(r=y+1|0)>>>0>=B>>>0)break o;y=r;continue}break}r=(A=r+1|0)>>>0>>0?B:A;break o}r=y,i[9404]=68,t=1}if(s>>>0>4)break i;A=r}else A=0;if(I=-1,t){r=A;break A}if(~(-1<>>0<2){c=A;break B}if(r=A>>>0>B>>>0?A:B,y=s>>>1|0,!E)break Q;for(c=A;;){if((0|c)==(0|r)){t=68;break C}if(61!=(0|(A=C[g+c|0]))){if(!kI(E,A)){t=28,r=c;break C}}else y=y-1|0;if(c=c+1|0,!y)break}break B}I=-1;break A}if(t=68,A>>>0>=B>>>0)break C;if(61!=o[A+g|0]){r=A,t=28;break C}if(c=A+y|0,1!=(0|y)){if((0|(s=A+1|0))==(0|r))break C;if(61!=o[g+s|0]){r=s,t=28;break C}if(2!=(0|y)){if((0|(A=A+2|0))==(0|r))break C;if(t=28,r=A,61!=o[A+g|0])break C}}}if(I=0,E)break g;break I}i[9404]=t;break A}if(!(B>>>0<=c>>>0)){for(;;){if(!kI(E,C[g+c|0]))break I;if((0|(c=c+1|0))==(0|B))break}c=B}}r=c,f=h}return _?i[_>>2]=g+r:(0|B)!=(0|r)&&(i[9404]=28,I=-1),a&&(i[a>>2]=f),0|I}rC(),Q()}function wA(A,I,g,B){A|=0,I|=0,g|=0;var Q=0,i=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0;for((B|=0)?(Q=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24,_=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,c=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,B=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24):(Q=1797285236,_=2036477234,c=857760878,B=1634760805),i=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,a=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,E=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,f=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,D=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,p=20,s=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,h=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,r=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,e=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,y=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,I=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,g=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24;t=Lg(g+c|0,7)^i,w=Lg(t+c|0,9)^D,r=Lg(B+s|0,7)^r,n=Lg(r+B|0,9)^a,k=Lg(n+r|0,13)^s,e=Lg(Q+h|0,7)^e,E=Lg(e+Q|0,9)^E,a=Lg(E+e|0,13)^h,Q=Lg(E+a|0,18)^Q,i=Lg(I+_|0,7)^f,s=k^Lg(Q+i|0,7),D=w^Lg(s+Q|0,9),f=Lg(s+D|0,13)^i,Q=Lg(D+f|0,18)^Q,y=Lg(i+_|0,9)^y,F=Lg(y+i|0,13)^I,I=Lg(F+y|0,18)^_,h=Lg(I+t|0,7)^a,a=Lg(h+I|0,9)^n,i=Lg(a+h|0,13)^t,_=Lg(i+a|0,18)^I,t=Lg(t+w|0,13)^g,g=Lg(t+w|0,18)^c,I=Lg(g+r|0,7)^F,E=Lg(I+g|0,9)^E,r=Lg(I+E|0,13)^r,c=Lg(E+r|0,18)^g,B=Lg(n+k|0,18)^B,g=Lg(B+e|0,7)^t,y=Lg(g+B|0,9)^y,e=Lg(g+y|0,13)^e,B=Lg(y+e|0,18)^B,t=p>>>0>2,p=p-2|0,t;);return C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+28|0]=i,C[A+29|0]=i>>>8,C[A+30|0]=i>>>16,C[A+31|0]=i>>>24,C[A+24|0]=a,C[A+25|0]=a>>>8,C[A+26|0]=a>>>16,C[A+27|0]=a>>>24,C[A+20|0]=E,C[A+21|0]=E>>>8,C[A+22|0]=E>>>16,C[A+23|0]=E>>>24,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24,C[A+12|0]=Q,C[A+13|0]=Q>>>8,C[A+14|0]=Q>>>16,C[A+15|0]=Q>>>24,C[A+8|0]=_,C[A+9|0]=_>>>8,C[A+10|0]=_>>>16,C[A+11|0]=_>>>24,C[A+4|0]=c,C[A+5|0]=c>>>8,C[A+6|0]=c>>>16,C[A+7|0]=c>>>24,0}function nA(A,I){var g,B,Q,E,a=0,_=0,c=0,t=0,r=0,e=0;for(s=g=s-480|0;c=(_=g+288|0)+(a<<1)|0,t=o[I+a|0],C[c+1|0]=t>>>4,C[0|c]=15&t,_=_+((c=1|a)<<1)|0,c=o[I+c|0],C[_+1|0]=c>>>4,C[0|_]=15&c,32!=(0|(a=a+2|0)););for(I=0;a=8+(_=(a=I)+o[0|(I=(g+288|0)+r|0)]|0)|0,C[0|I]=_-(240&a),a=8+(_=o[I+1|0]+(a<<24>>24>>4)|0)|0,C[I+1|0]=_-(240&a),a=8+(_=o[I+2|0]+(a<<24>>24>>4)|0)|0,C[I+2|0]=_-(240&a),I=a<<24>>24>>4,63!=(0|(r=r+3|0)););for(C[g+351|0]=o[g+351|0]+I,i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0,i[A>>2]=0,i[A+4>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+40>>2]=1,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A+80>>2]=1,bg(A+84|0,0,76),Q=A+120|0,r=A+80|0,I=A+40|0,_=g+208|0,B=g+168|0,c=g+248|0,a=1;zA(e=g+8|0,a>>>1|0,C[(g+288|0)+a|0]),DA(t=g+128|0,A,e),b(A,t,c),b(I,B,_),b(r,_,c),b(Q,t,B),e=a>>>0<62,a=a+2|0,e;);for(a=i[A+36>>2],i[g+392>>2]=i[A+32>>2],i[g+396>>2]=a,a=i[A+28>>2],i[g+384>>2]=i[A+24>>2],i[g+388>>2]=a,a=i[A+20>>2],i[g+376>>2]=i[A+16>>2],i[g+380>>2]=a,a=i[A+12>>2],i[g+368>>2]=i[A+8>>2],i[g+372>>2]=a,a=i[A+4>>2],i[g+360>>2]=i[A>>2],i[g+364>>2]=a,a=i[I+12>>2],i[g+408>>2]=i[I+8>>2],i[g+412>>2]=a,a=i[I+20>>2],i[g+416>>2]=i[I+16>>2],i[g+420>>2]=a,a=i[I+28>>2],i[g+424>>2]=i[I+24>>2],i[g+428>>2]=a,a=i[I+36>>2],i[g+432>>2]=i[I+32>>2],i[g+436>>2]=a,a=i[I+4>>2],i[g+400>>2]=i[I>>2],i[g+404>>2]=a,a=i[r+12>>2],i[g+448>>2]=i[r+8>>2],i[g+452>>2]=a,a=i[r+20>>2],i[g+456>>2]=i[r+16>>2],i[g+460>>2]=a,a=i[r+28>>2],i[g+464>>2]=i[r+24>>2],i[g+468>>2]=a,a=i[r+36>>2],i[g+472>>2]=i[r+32>>2],i[g+476>>2]=a,a=i[r+4>>2],i[g+440>>2]=i[r>>2],i[g+444>>2]=a,KA(t,a=g+360|0),b(a,t,c),b(e=g+400|0,B,_),b(E=g+440|0,_,c),KA(t,a),b(a,t,c),b(e,B,_),b(E,_,c),KA(t,a),b(a,t,c),b(e,B,_),b(E,_,c),KA(t,a),b(A,t,c),b(I,B,_),b(r,_,c),b(Q,t,B),a=0;zA(e=g+8|0,a>>>1|0,C[(g+288|0)+a|0]),DA(t=g+128|0,A,e),b(A,t,c),b(I,B,_),b(r,_,c),b(Q,t,B),t=a>>>0<62,a=a+2|0,t;);s=g+480|0}function kA(A,I){A|=0;var g,C,B,Q,i,o=0,E=0,a=0,_=0,c=0,t=0;for(s=g=s-736|0,n(c=g+704|0,I|=0,I),n(E=g+224|0,I,c),n(_=g+672|0,I,E),n(a=g+640|0,_,_),n(C=g+416|0,c,a),n(c=g+320|0,I,C),n(o=g+608|0,a,a),n(a=g+288|0,c,c),n(t=g+576|0,C,a),n(i=g+448|0,o,a),n(B=g+544|0,t,t),n(t=g+384|0,o,B),n(Q=g+352|0,E,t),n(E=g+192|0,o,Q),n(o=g+160|0,_,E),n(g+96|0,_,o),n(E=g+512|0,B,Q),n(o=g+480|0,_,E),n(E=g+256|0,i,o),n(g+128|0,a,E),n(a=g- -64|0,t,o),n(o=g+32|0,_,a),n(g,C,o),n(A,c,g),_=0;n(A,A,A),126!=(0|(_=_+1|0)););return n(A,A,g+352|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+704|0),n(A,A,g),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+160|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+256|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g- -64|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+96|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+320|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+512|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+192|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+480|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+128|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+32|0),s=g+736|0,0-GI(I,32)|0}function FA(A,I,g){A|=0;var B,Q,i,E,a=0,_=0,c=0,t=0,r=0;return s=i=s-160|0,FI(I|=0,g|=0,32,0),C[0|I]=248&o[0|I],C[I+31|0]=63&o[I+31|0]|64,nA(i,I),tg(A,i),_=o[(Q=g)+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,a=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,c=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,t=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,r=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,g=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,E=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,B=I,I=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,C[B+24|0]=I,C[B+25|0]=I>>>8,C[B+26|0]=I>>>16,C[B+27|0]=I>>>24,C[B+28|0]=E,C[B+29|0]=E>>>8,C[B+30|0]=E>>>16,C[B+31|0]=E>>>24,C[B+16|0]=c,C[B+17|0]=c>>>8,C[B+18|0]=c>>>16,C[B+19|0]=c>>>24,C[B+20|0]=t,C[B+21|0]=t>>>8,C[B+22|0]=t>>>16,C[B+23|0]=t>>>24,C[B+8|0]=_,C[B+9|0]=_>>>8,C[B+10|0]=_>>>16,C[B+11|0]=_>>>24,C[B+12|0]=a,C[B+13|0]=a>>>8,C[B+14|0]=a>>>16,C[B+15|0]=a>>>24,C[0|B]=r,C[B+1|0]=r>>>8,C[B+2|0]=r>>>16,C[B+3|0]=r>>>24,C[B+4|0]=g,C[B+5|0]=g>>>8,C[B+6|0]=g>>>16,C[B+7|0]=g>>>24,c=o[(a=A)+8|0]|o[a+9|0]<<8|o[a+10|0]<<16|o[a+11|0]<<24,t=o[a+12|0]|o[a+13|0]<<8|o[a+14|0]<<16|o[a+15|0]<<24,r=o[a+16|0]|o[a+17|0]<<8|o[a+18|0]<<16|o[a+19|0]<<24,g=o[a+20|0]|o[a+21|0]<<8|o[a+22|0]<<16|o[a+23|0]<<24,I=o[0|a]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24,A=o[a+4|0]|o[a+5|0]<<8|o[a+6|0]<<16|o[a+7|0]<<24,_=o[a+28|0]|o[a+29|0]<<8|o[a+30|0]<<16|o[a+31|0]<<24,a=o[a+24|0]|o[a+25|0]<<8|o[a+26|0]<<16|o[a+27|0]<<24,C[B+56|0]=a,C[B+57|0]=a>>>8,C[B+58|0]=a>>>16,C[B+59|0]=a>>>24,C[B+60|0]=_,C[B+61|0]=_>>>8,C[B+62|0]=_>>>16,C[B+63|0]=_>>>24,C[B+48|0]=r,C[B+49|0]=r>>>8,C[B+50|0]=r>>>16,C[B+51|0]=r>>>24,C[B+52|0]=g,C[B+53|0]=g>>>8,C[B+54|0]=g>>>16,C[B+55|0]=g>>>24,C[B+40|0]=c,C[B+41|0]=c>>>8,C[B+42|0]=c>>>16,C[B+43|0]=c>>>24,C[B+44|0]=t,C[B+45|0]=t>>>8,C[B+46|0]=t>>>16,C[B+47|0]=t>>>24,C[B+32|0]=I,C[B+33|0]=I>>>8,C[B+34|0]=I>>>16,C[B+35|0]=I>>>24,C[B+36|0]=A,C[B+37|0]=A>>>8,C[B+38|0]=A>>>16,C[B+39|0]=A>>>24,s=i+160|0,0}function SA(A,I,g,B){var Q,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0;if(s=Q=s-704|0,g|B)if(E=(B<<3|g>>>29)+(a=c=i[A+76>>2])|0,_=(r=i[A+72>>2])+(t=g<<3)|0,i[A+72>>2]=_,E=_>>>0>>0?E+1|0:E,i[A+76>>2]=E,c=i[A+68>>2],E=(E=_=(0|E)==(0|a)&_>>>0>>0|E>>>0>>0)>>>0>(_=_+i[A+64>>2]|0)>>>0?c+1|0:c,_=(t=B>>>29|0)+_|0,i[A+64>>2]=_,i[A+68>>2]=_>>>0>>0?E+1|0:E,_=A+80|0,(0|B)==(0|(c=f=0-((E=0)+((t=127&((7&a)<<29|r>>>3))>>>0>128)|0)|0))&g>>>0>=(r=128-t|0)>>>0|B>>>0>c>>>0){if(a=0,c=0,!E&(127^t)>>>0>=3|E)for(p=252&r;C[(E=a+t|0)+_|0]=o[I+a|0],C[_+(t+(E=1|a)|0)|0]=o[I+E|0],C[_+(t+(E=2|a)|0)|0]=o[I+E|0],C[_+(t+(E=3|a)|0)|0]=o[I+E|0],E=c,c=(a=a+4|0)>>>0<4?E+1|0:E,E=h,h=E=(e=e+4|0)>>>0<4?E+1|0:E,(0|e)!=(0|p)|(0|D)!=(0|E););if(h=E=0,E|(e=3&r))for(;C[(E=a+t|0)+_|0]=o[I+a|0],E=c,c=(a=a+1|0)?E:E+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|e)!=(0|y)|(0|h)!=(0|E););if(k(A,_,Q,a=Q+640|0),I=I+r|0,!(B=B-((g>>>0>>0)+f|0)|0)&(g=g-r|0)>>>0>127|B)for(;k(A,I,Q,a),I=I+128|0,!(B=B-(g>>>0<128)|0)&(g=g-128|0)>>>0>127|B;);if(g|B){if(A=3&g,y=0,D=0,a=0,c=0,!B&g>>>0>=4|B)for(e=124&g,r=0,g=0,B=0;C[a+_|0]=o[I+a|0],C[(E=1|a)+_|0]=o[I+E|0],C[(E=2|a)+_|0]=o[I+E|0],C[(E=3|a)+_|0]=o[I+E|0],E=c,c=(a=a+4|0)>>>0<4?E+1|0:E,E=B,B=E=(g=g+4|0)>>>0<4?E+1|0:E,(0|g)!=(0|e)|(0|r)!=(0|E););if(A|h)for(;C[a+_|0]=o[I+a|0],c=(a=a+1|0)?c:c+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|A)!=(0|y)|(0|h)!=(0|E););}XC(Q,704)}else{if(a=0,c=0,!B&g>>>0>=4|B)for(A=-4&g;C[(E=a+t|0)+_|0]=o[I+a|0],C[_+(r=t+(E=1|a)|0)|0]=o[I+E|0],C[_+(r=t+(E=2|a)|0)|0]=o[I+E|0],C[_+(r=t+(E=3|a)|0)|0]=o[I+E|0],E=c,c=(a=a+4|0)>>>0<4?E+1|0:E,E=h,h=E=(e=e+4|0)>>>0<4?E+1|0:E,(0|A)!=(0|e)|(0|B)!=(0|E););if((g&=3)|(A=0))for(;C[(B=a+t|0)+_|0]=o[I+a|0],c=(a=a+1|0)?c:c+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|g)!=(0|y)|(0|A)!=(0|E););}return s=Q+704|0,0}function NA(A,I,g){var C,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0;s=i[I+4>>2],B=i[A+4>>2],h=i[I+8>>2],Q=i[A+8>>2],D=i[I+12>>2],o=i[A+12>>2],f=i[I+16>>2],E=i[A+16>>2],p=i[I+20>>2],a=i[A+20>>2],y=i[I+24>>2],_=i[A+24>>2],w=i[I+28>>2],c=i[A+28>>2],n=i[I+32>>2],t=i[A+32>>2],k=i[I+36>>2],r=i[A+36>>2],g=0-g|0,e=i[A>>2],i[A>>2]=g&(e^i[I>>2])^e,i[A+36>>2]=r^g&(r^k),i[A+32>>2]=t^g&(t^n),i[A+28>>2]=c^g&(c^w),i[A+24>>2]=_^g&(_^y),i[A+20>>2]=a^g&(a^p),i[A+16>>2]=E^g&(E^f),i[A+12>>2]=o^g&(o^D),i[A+8>>2]=Q^g&(Q^h),i[A+4>>2]=B^g&(B^s),B=i[A+44>>2],s=i[I+44>>2],Q=i[A+48>>2],h=i[I+48>>2],o=i[A+52>>2],D=i[I+52>>2],E=i[A+56>>2],f=i[I+56>>2],a=i[A+60>>2],p=i[I+60>>2],_=i[(y=A- -64|0)>>2],w=i[I- -64>>2],c=i[A+68>>2],n=i[I+68>>2],t=i[A+72>>2],k=i[I+72>>2],r=i[A+40>>2],e=i[I+40>>2],C=i[A+76>>2],i[A+76>>2]=C^g&(i[I+76>>2]^C),i[A+72>>2]=t^g&(t^k),i[A+68>>2]=c^g&(c^n),i[y>>2]=_^g&(_^w),i[A+60>>2]=a^g&(a^p),i[A+56>>2]=E^g&(E^f),i[A+52>>2]=o^g&(o^D),i[A+48>>2]=Q^g&(Q^h),i[A+44>>2]=B^g&(B^s),i[A+40>>2]=r^g&(r^e),B=i[A+84>>2],s=i[I+84>>2],Q=i[A+88>>2],h=i[I+88>>2],o=i[A+92>>2],D=i[I+92>>2],E=i[A+96>>2],f=i[I+96>>2],a=i[A+100>>2],p=i[I+100>>2],_=i[A+104>>2],y=i[I+104>>2],c=i[A+108>>2],w=i[I+108>>2],t=i[A+112>>2],n=i[I+112>>2],r=i[A+80>>2],k=i[I+80>>2],e=i[A+116>>2],i[A+116>>2]=g&(e^i[I+116>>2])^e,i[A+112>>2]=t^g&(t^n),i[A+108>>2]=c^g&(c^w),i[A+104>>2]=_^g&(_^y),i[A+100>>2]=a^g&(a^p),i[A+96>>2]=E^g&(E^f),i[A+92>>2]=o^g&(o^D),i[A+88>>2]=Q^g&(Q^h),i[A+84>>2]=B^g&(B^s),i[A+80>>2]=r^g&(r^k),B=i[A+124>>2],s=i[I+124>>2],Q=i[A+128>>2],h=i[I+128>>2],o=i[A+132>>2],D=i[I+132>>2],E=i[A+136>>2],f=i[I+136>>2],a=i[A+140>>2],p=i[I+140>>2],_=i[A+144>>2],y=i[I+144>>2],c=i[A+148>>2],w=i[I+148>>2],t=i[A+152>>2],n=i[I+152>>2],r=i[A+120>>2],k=i[I+120>>2],e=i[I+156>>2],I=i[A+156>>2],i[A+156>>2]=g&(e^I)^I,i[A+152>>2]=t^g&(t^n),i[A+148>>2]=c^g&(c^w),i[A+144>>2]=_^g&(_^y),i[A+140>>2]=a^g&(a^p),i[A+136>>2]=E^g&(E^f),i[A+132>>2]=o^g&(o^D),i[A+128>>2]=Q^g&(Q^h),i[A+124>>2]=B^g&(B^s),i[A+120>>2]=r^g&(r^k)}function GA(A,I,g){var B,Q,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0;return s=B=s-320|0,R(o=B+240|0,g),b(o,o,g),R(A,o),b(A,A,g),b(A,A,I),PA(A,A),b(A,A,o),b(A,A,I),R(o=B+192|0,A),b(o,o,g),E=i[I+4>>2],h=i[I+8>>2],f=i[I+12>>2],p=i[I+16>>2],w=i[I+20>>2],n=i[I+24>>2],k=i[I+28>>2],F=i[I+32>>2],S=i[I>>2],g=i[B+192>>2],o=i[B+196>>2],a=i[B+200>>2],_=i[B+204>>2],c=i[B+208>>2],t=i[B+212>>2],r=i[B+216>>2],e=i[B+220>>2],y=i[B+224>>2],D=i[B+228>>2],N=i[I+36>>2],i[B+180>>2]=D-N,i[B+176>>2]=y-F,i[B+172>>2]=e-k,i[B+168>>2]=r-n,i[B+164>>2]=t-w,i[B+160>>2]=c-p,i[B+156>>2]=_-f,i[B+152>>2]=a-h,i[B+148>>2]=o-E,i[B+144>>2]=g-S,i[B+132>>2]=D+N,i[B+128>>2]=y+F,i[B+124>>2]=e+k,i[B+120>>2]=r+n,i[B+116>>2]=t+w,i[B+112>>2]=c+p,i[B+108>>2]=_+f,i[B+104>>2]=a+h,i[B+100>>2]=o+E,i[B+96>>2]=g+S,b(E=B+48|0,I,1632),i[B+84>>2]=D+i[B+84>>2],i[B+80>>2]=y+i[B+80>>2],i[B+76>>2]=e+i[B+76>>2],i[B+72>>2]=r+i[B+72>>2],i[B+68>>2]=t+i[B+68>>2],i[B+64>>2]=c+i[B+64>>2],i[B+60>>2]=_+i[B+60>>2],i[B+56>>2]=a+i[B+56>>2],i[B+52>>2]=o+i[B+52>>2],i[B+48>>2]=g+i[B+48>>2],QI(B,B+144|0),f=GI(B,32),QI(B,B+96|0),h=GI(B,32),QI(B,E),I=GI(B,32),b(B,A,1632),y=i[A+4>>2],e=i[A+8>>2],r=i[A+12>>2],t=i[A+16>>2],c=i[A+20>>2],_=i[A+24>>2],a=i[A+28>>2],o=i[A+32>>2],E=i[A>>2],p=i[B>>2],w=i[B+4>>2],n=i[B+8>>2],k=i[B+12>>2],F=i[B+16>>2],S=i[B+20>>2],D=i[B+24>>2],N=i[B+28>>2],Q=i[B+32>>2],g=(I=0-(I|h)|0)&((g=i[A+36>>2])^i[B+36>>2])^g,i[A+36>>2]=g,o^=I&(o^Q),i[A+32>>2]=o,a^=I&(a^N),i[A+28>>2]=a,_^=I&(_^D),i[A+24>>2]=_,c^=I&(c^S),i[A+20>>2]=c,t^=I&(t^F),i[A+16>>2]=t,r^=I&(r^k),i[A+12>>2]=r,e^=I&(e^n),i[A+8>>2]=e,y^=I&(y^w),i[A+4>>2]=y,E^=I&(E^p),i[A>>2]=E,QI(B+288|0,A),I=0-(1&C[B+288|0])|0,i[A+36>>2]=g^I&(g^0-g),i[A+32>>2]=o^I&(o^0-o),i[A+28>>2]=a^I&(a^0-a),i[A+24>>2]=_^I&(_^0-_),i[A+20>>2]=c^I&(c^0-c),i[A+16>>2]=t^I&(t^0-t),i[A+12>>2]=r^I&(r^0-r),i[A+8>>2]=e^I&(e^0-e),i[A+4>>2]=y^I&(y^0-y),i[A>>2]=E^I&(E^0-E),s=B+320|0,h|f}function MA(A,I){var g,B,Q,E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0;return s=g=s-320|0,fA(B=A+40|0,I),i[A+84>>2]=0,i[A+88>>2]=0,i[A+80>>2]=1,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,i[A+116>>2]=0,R(a=g+240|0,B),b(_=g+192|0,a,1584),i[g+192>>2]=i[g+192>>2]+1,c=i[g+240>>2]-1|0,i[g+240>>2]=c,t=i[g+244>>2],r=i[g+248>>2],e=i[g+252>>2],y=i[g+256>>2],h=i[g+260>>2],D=i[g+264>>2],f=i[g+268>>2],p=i[g+272>>2],w=i[g+276>>2],b(A,a,_),PA(A,A),b(A,a,A),R(a=g+144|0,A),b(a,a,_),a=i[g+180>>2],i[g+132>>2]=a-w,_=i[g+176>>2],i[g+128>>2]=_-p,n=i[g+172>>2],i[g+124>>2]=n-f,k=i[g+168>>2],i[g+120>>2]=k-D,F=i[g+164>>2],i[g+116>>2]=F-h,S=i[g+160>>2],i[g+112>>2]=S-y,N=i[g+156>>2],i[g+108>>2]=N-e,G=i[g+152>>2],i[g+104>>2]=G-r,M=i[g+148>>2],i[g+100>>2]=M-t,K=i[g+144>>2],i[g+96>>2]=K-c,i[g+84>>2]=a+w,i[g+80>>2]=_+p,i[g+76>>2]=f+n,i[g+72>>2]=D+k,i[g+68>>2]=h+F,i[g+64>>2]=y+S,i[g+60>>2]=e+N,i[g+56>>2]=r+G,i[g+52>>2]=t+M,i[g+48>>2]=c+K,QI(g,g+96|0),p=GI(g,32),QI(g,g+48|0),n=GI(g,32),b(g,A,1632),f=i[A+4>>2],D=i[A+8>>2],h=i[A+12>>2],y=i[A+16>>2],e=i[A+20>>2],r=i[A+24>>2],t=i[A+28>>2],c=i[A+32>>2],w=i[A>>2],k=i[g>>2],F=i[g+4>>2],S=i[g+8>>2],N=i[g+12>>2],G=i[g+16>>2],M=i[g+20>>2],K=i[g+24>>2],Q=i[g+28>>2],E=i[g+32>>2],_=(a=p-1|0)&((_=i[A+36>>2])^i[g+36>>2])^_,i[A+36>>2]=_,c^=a&(c^E),i[A+32>>2]=c,t^=a&(t^Q),i[A+28>>2]=t,r^=a&(r^K),i[A+24>>2]=r,e^=a&(e^M),i[A+20>>2]=e,y^=a&(y^G),i[A+16>>2]=y,h^=a&(h^N),i[A+12>>2]=h,D^=a&(D^S),i[A+8>>2]=D,f^=a&(f^F),i[A+4>>2]=f,a=w^a&(w^k),i[A>>2]=a,QI(g+288|0,A),I=0-(1&C[g+288|0]^o[I+31|0]>>>7^o[38144]>>>2)|0,i[A+36>>2]=_^I&(_^0-_),i[A+32>>2]=c^I&(c^0-c),i[A+28>>2]=t^I&(t^0-t),i[A+24>>2]=r^I&(r^0-r),i[A+20>>2]=e^I&(e^0-e),i[A+16>>2]=y^I&(y^0-y),i[A+12>>2]=h^I&(h^0-h),i[A+8>>2]=D^I&(D^0-D),i[A+4>>2]=f^I&(f^0-f),i[A>>2]=a^I&(a^0-a),b(A+120|0,A,B),s=g+320|0,(p|n)-1|0}function KA(A,I){var g,C,B,Q,o,E,a,_,c,t,r,e,y,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0;s=g=s-48|0,R(A,I),R(A+80|0,I+40|0),v(A+120|0,I+80|0),h=i[I+44>>2],D=i[I+4>>2],n=i[I+48>>2],f=i[I+8>>2],k=i[I+52>>2],p=i[I+12>>2],F=i[I+56>>2],w=i[I+16>>2],K=i[I+60>>2],S=i[I+20>>2],U=i[I- -64>>2],N=i[I+24>>2],b=i[I+68>>2],G=i[I+28>>2],H=i[I+72>>2],Y=i[I+32>>2],J=i[I+40>>2],M=i[I>>2],i[A+76>>2]=i[I+76>>2]+i[I+36>>2],i[A+72>>2]=H+Y,i[A+68>>2]=b+G,i[(C=A- -64|0)>>2]=U+N,i[A+60>>2]=K+S,i[A+56>>2]=F+w,i[A+52>>2]=k+p,i[A+48>>2]=n+f,i[A+44>>2]=h+D,i[A+40>>2]=J+M,R(g,A+40|0),I=i[A+4>>2],h=i[A+84>>2],D=i[A+8>>2],n=i[A+88>>2],f=i[A+12>>2],k=i[A+92>>2],p=i[A+16>>2],F=i[A+96>>2],w=i[A+20>>2],K=i[A+100>>2],S=i[A+24>>2],U=i[A+104>>2],N=i[A+28>>2],b=i[A+108>>2],G=i[A+32>>2],H=i[A+112>>2],Y=i[A>>2],J=i[A+80>>2],Q=(M=i[A+116>>2])-(B=i[A+36>>2])|0,i[A+116>>2]=Q,o=H-G|0,i[A+112>>2]=o,E=b-N|0,i[A+108>>2]=E,a=U-S|0,i[A+104>>2]=a,_=K-w|0,i[A+100>>2]=_,c=F-p|0,i[A+96>>2]=c,t=k-f|0,i[A+92>>2]=t,r=n-D|0,i[A+88>>2]=r,e=h-I|0,i[A+84>>2]=e,y=J-Y|0,i[A+80>>2]=y,M=M+B|0,i[A+76>>2]=M,G=G+H|0,i[A+72>>2]=G,N=N+b|0,i[A+68>>2]=N,S=S+U|0,i[C>>2]=S,w=w+K|0,i[A+60>>2]=w,p=p+F|0,i[A+56>>2]=p,f=f+k|0,i[A+52>>2]=f,D=D+n|0,i[A+48>>2]=D,I=I+h|0,i[A+44>>2]=I,h=Y+J|0,i[A+40>>2]=h,n=i[g>>2],k=i[g+4>>2],F=i[g+8>>2],K=i[g+12>>2],U=i[g+16>>2],b=i[g+20>>2],H=i[g+24>>2],Y=i[g+28>>2],J=i[g+32>>2],i[A+36>>2]=i[g+36>>2]-M,i[A+32>>2]=J-G,i[A+28>>2]=Y-N,i[A+24>>2]=H-S,i[A+20>>2]=b-w,i[A+16>>2]=U-p,i[A+12>>2]=K-f,i[A+8>>2]=F-D,i[A+4>>2]=k-I,i[A>>2]=n-h,I=i[A+124>>2],h=i[A+128>>2],D=i[A+132>>2],n=i[A+136>>2],f=i[A+140>>2],k=i[A+144>>2],p=i[A+148>>2],F=i[A+152>>2],w=i[A+120>>2],i[A+156>>2]=i[A+156>>2]-Q,i[A+152>>2]=F-o,i[A+148>>2]=p-E,i[A+144>>2]=k-a,i[A+140>>2]=f-_,i[A+136>>2]=n-c,i[A+132>>2]=D-t,i[A+128>>2]=h-r,i[A+124>>2]=I-e,i[A+120>>2]=w-y,s=g+48|0}function UA(A,I,g,B){var Q,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0;if(s=Q=s-288|0,g|B)if(E=(B<<3|g>>>29)+(a=c=i[A+36>>2])|0,_=(t=i[A+32>>2])+(r=g<<3)|0,i[A+32>>2]=_,i[A+36>>2]=_>>>0>>0?E+1|0:E,c=A+40|0,(0|B)==(0|(_=f=0-((E=0)+((r=63&((7&a)<<29|t>>>3))>>>0>64)|0)|0))&g>>>0>=(t=64-r|0)>>>0|B>>>0>_>>>0){if(a=0,_=0,!E&(63^r)>>>0>=3|E)for(p=124&t;C[(E=a+r|0)+c|0]=o[I+a|0],C[c+(r+(E=1|a)|0)|0]=o[I+E|0],C[c+(r+(E=2|a)|0)|0]=o[I+E|0],C[c+(r+(E=3|a)|0)|0]=o[I+E|0],E=_,_=(a=a+4|0)>>>0<4?E+1|0:E,E=h,h=E=(e=e+4|0)>>>0<4?E+1|0:E,(0|e)!=(0|p)|(0|D)!=(0|E););if(h=E=0,E|(e=3&t))for(;C[(E=a+r|0)+c|0]=o[I+a|0],E=_,_=(a=a+1|0)?E:E+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|e)!=(0|y)|(0|h)!=(0|E););if(J(A,c,Q,a=Q+256|0),I=I+t|0,!(B=B-((g>>>0>>0)+f|0)|0)&(g=g-t|0)>>>0>63|B)for(;J(A,I,Q,a),I=I- -64|0,E=B-1|0,!(B=(g=g+-64|0)>>>0<4294967232?E+1|0:E)&g>>>0>63|B;);if(g|B){if(A=3&g,y=0,D=0,a=0,_=0,!B&g>>>0>=4|B)for(e=60&g,t=0,g=0,B=0;C[a+c|0]=o[I+a|0],C[(E=1|a)+c|0]=o[I+E|0],C[(E=2|a)+c|0]=o[I+E|0],C[(E=3|a)+c|0]=o[I+E|0],E=_,_=(a=a+4|0)>>>0<4?E+1|0:E,E=B,B=E=(g=g+4|0)>>>0<4?E+1|0:E,(0|g)!=(0|e)|(0|t)!=(0|E););if(A|h)for(;C[a+c|0]=o[I+a|0],_=(a=a+1|0)?_:_+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|A)!=(0|y)|(0|h)!=(0|E););}XC(Q,288)}else{if(a=0,_=0,!B&g>>>0>=4|B)for(A=-4&g;C[(E=a+r|0)+c|0]=o[I+a|0],C[c+(t=r+(E=1|a)|0)|0]=o[I+E|0],C[c+(t=r+(E=2|a)|0)|0]=o[I+E|0],C[c+(t=r+(E=3|a)|0)|0]=o[I+E|0],E=_,_=(a=a+4|0)>>>0<4?E+1|0:E,E=h,h=E=(e=e+4|0)>>>0<4?E+1|0:E,(0|A)!=(0|e)|(0|B)!=(0|E););if((g&=3)|(A=0))for(;C[(B=a+r|0)+c|0]=o[I+a|0],_=(a=a+1|0)?_:_+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|g)!=(0|y)|(0|A)!=(0|E););}return s=Q+288|0,0}function bA(A,I,g,C,B,Q){var o=0;i[Q>>2]=8;A:{I:{o=A,o=(A=!I&A>>>0<=32768)?32768:o;g:{C:{if(!(A=A?0:I)&g>>>5>>>0<=o>>>0|A){if(g>>>0>=4096)break C;I=1;break g}if(i[B>>2]=1,A=1,(I=(o>>>0)/(i[Q>>2]<<2>>>0)|0)>>>0<4)break A;if(A=2,I>>>0<8)break A;if(I>>>0<16)return void(i[C>>2]=3);if(I>>>0<32)return void(i[C>>2]=4);if(I>>>0<64)return void(i[C>>2]=5);if(I>>>0<128)return void(i[C>>2]=6);if(I>>>0<256)return void(i[C>>2]=7);if(I>>>0<512)return void(i[C>>2]=8);if(I>>>0<1024)return void(i[C>>2]=9);if(I>>>0<2048)return void(i[C>>2]=10);if(I>>>0<4096)return void(i[C>>2]=11);if(I>>>0<8192)return void(i[C>>2]=12);if(I>>>0<16384)return void(i[C>>2]=13);if(I>>>0<32768)return void(i[C>>2]=14);if(I>>>0<65536)return void(i[C>>2]=15);if(I>>>0<131072)return void(i[C>>2]=16);if(I>>>0<262144)return void(i[C>>2]=17);if(I>>>0<524288)return void(i[C>>2]=18);if(I>>>0<1048576)return void(i[C>>2]=19);if(I>>>0<2097152)return void(i[C>>2]=20);if(I>>>0<4194304)return void(i[C>>2]=21);if(I>>>0<8388608)return void(i[C>>2]=22);if(I>>>0<16777216)return void(i[C>>2]=23);if(I>>>0>=33554432)break I;return void(i[C>>2]=24)}I=2,g>>>0<8192||(I=3,g>>>0<16384||(I=4,g>>>0<32768||(I=5,g>>>0<65536||(I=6,g>>>0<131072||(I=7,g>>>0<262144||(I=8,g>>>0<524288||(I=9,g>>>0<1048576||(I=10,g>>>0<2097152||(I=11,g>>>0<4194304||(I=12,g>>>0<8388608||(I=13,g>>>0<16777216||(I=14,g>>>0<33554432||(I=15,g>>>0<67108864||(I=16,g>>>0<134217728||(I=17,g>>>0<268435456||(I=18,g>>>0<536870912||(I=19,g>>>0<1073741824||(I=(0|g)>=0?20:21))))))))))))))))))}return g=I,i[C>>2]=g,A=(I=A)>>>2|0,I=(3&I)<<30|o>>>2,C=31&g,(63&g)>>>0>=32?(g=0,A=A>>>C|0):(g=A>>>C|0,A=((1<>>C),void(i[B>>2]=((!g&A>>>0>=1073741823|g?1073741823:A)>>>0)/E[Q>>2])}A=I>>>0<67108864?25:26}i[C>>2]=A}function HA(A,I,g){var C,B,Q,o,E,a,_,c,t=0;s=C=s-160|0,i[A>>2]=1,i[A+4>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+36>>2]=0,i[A+40>>2]=1,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A+80>>2]=1,bg(A+84|0,0,76),NA(A,I,(255&(1^(t=g-((g>>31&g)<<1)|0)))-1>>>31|0),NA(A,I+160|0,(255&(2^t))-1>>>31|0),NA(A,I+320|0,(255&(3^t))-1>>>31|0),NA(A,I+480|0,(255&(4^t))-1>>>31|0),NA(A,I+640|0,(255&(5^t))-1>>>31|0),NA(A,I+800|0,(255&(6^t))-1>>>31|0),NA(A,I+960|0,(255&(7^t))-1>>>31|0),NA(A,I+1120|0,(255&(8^t))-1>>>31|0),I=i[A+76>>2],i[C+32>>2]=i[A+72>>2],i[C+36>>2]=I,t=i[4+(I=A- -64|0)>>2],i[C+24>>2]=i[I>>2],i[C+28>>2]=t,I=i[A+60>>2],i[C+16>>2]=i[A+56>>2],i[C+20>>2]=I,I=i[A+52>>2],i[C+8>>2]=i[A+48>>2],i[C+12>>2]=I,I=i[A+44>>2],i[C>>2]=i[A+40>>2],i[C+4>>2]=I,I=i[A+36>>2],i[C+72>>2]=i[A+32>>2],i[C+76>>2]=I,t=i[A+28>>2],i[(I=C- -64|0)>>2]=i[A+24>>2],i[I+4>>2]=t,I=i[A+20>>2],i[C+56>>2]=i[A+16>>2],i[C+60>>2]=I,I=i[A+12>>2],i[C+48>>2]=i[A+8>>2],i[C+52>>2]=I,I=i[A+4>>2],i[C+40>>2]=i[A>>2],i[C+44>>2]=I,I=i[A+92>>2],i[C+88>>2]=i[A+88>>2],i[C+92>>2]=I,I=i[A+100>>2],i[C+96>>2]=i[A+96>>2],i[C+100>>2]=I,I=i[A+108>>2],i[C+104>>2]=i[A+104>>2],i[C+108>>2]=I,I=i[A+116>>2],i[C+112>>2]=i[A+112>>2],i[C+116>>2]=I,I=i[A+84>>2],i[C+80>>2]=i[A+80>>2],i[C+84>>2]=I,I=i[A+124>>2],t=i[A+128>>2],B=i[A+132>>2],Q=i[A+136>>2],o=i[A+140>>2],E=i[A+144>>2],a=i[A+148>>2],_=i[A+152>>2],c=i[A+120>>2],i[C+156>>2]=0-i[A+156>>2],i[C+152>>2]=0-_,i[C+148>>2]=0-a,i[C+144>>2]=0-E,i[C+140>>2]=0-o,i[C+136>>2]=0-Q,i[C+132>>2]=0-B,i[C+128>>2]=0-t,i[C+124>>2]=0-I,i[C+120>>2]=0-c,NA(A,C,(128&g)>>>7|0),s=C+160|0}function YA(A,I){A|=0,I|=0;var g,B,Q,E,a,_=0,c=0,t=0;return s=c=s-192|0,ag(c,32),FI(I,c,32,0),C[0|I]=248&o[0|I],C[I+31|0]=63&o[I+31|0]|64,nA(t=c+32|0,I),tg(A,t),g=c,t=i[c+28>>2],c=i[c+24>>2],C[I+24|0]=c,C[I+25|0]=c>>>8,C[I+26|0]=c>>>16,C[I+27|0]=c>>>24,C[I+28|0]=t,C[I+29|0]=t>>>8,C[I+30|0]=t>>>16,C[I+31|0]=t>>>24,t=i[g+20>>2],c=i[g+16>>2],C[I+16|0]=c,C[I+17|0]=c>>>8,C[I+18|0]=c>>>16,C[I+19|0]=c>>>24,C[I+20|0]=t,C[I+21|0]=t>>>8,C[I+22|0]=t>>>16,C[I+23|0]=t>>>24,t=i[g+12>>2],c=i[g+8>>2],C[I+8|0]=c,C[I+9|0]=c>>>8,C[I+10|0]=c>>>16,C[I+11|0]=c>>>24,C[I+12|0]=t,C[I+13|0]=t>>>8,C[I+14|0]=t>>>16,C[I+15|0]=t>>>24,t=i[g+4>>2],c=i[g>>2],C[0|I]=c,C[I+1|0]=c>>>8,C[I+2|0]=c>>>16,C[I+3|0]=c>>>24,C[I+4|0]=t,C[I+5|0]=t>>>8,C[I+6|0]=t>>>16,C[I+7|0]=t>>>24,B=o[(_=A)+8|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24,Q=o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24,E=o[_+16|0]|o[_+17|0]<<8|o[_+18|0]<<16|o[_+19|0]<<24,t=o[_+20|0]|o[_+21|0]<<8|o[_+22|0]<<16|o[_+23|0]<<24,c=o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24,A=o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24,a=o[_+28|0]|o[_+29|0]<<8|o[_+30|0]<<16|o[_+31|0]<<24,_=o[_+24|0]|o[_+25|0]<<8|o[_+26|0]<<16|o[_+27|0]<<24,C[I+56|0]=_,C[I+57|0]=_>>>8,C[I+58|0]=_>>>16,C[I+59|0]=_>>>24,C[I+60|0]=a,C[I+61|0]=a>>>8,C[I+62|0]=a>>>16,C[I+63|0]=a>>>24,C[I+48|0]=E,C[I+49|0]=E>>>8,C[I+50|0]=E>>>16,C[I+51|0]=E>>>24,C[I+52|0]=t,C[I+53|0]=t>>>8,C[I+54|0]=t>>>16,C[I+55|0]=t>>>24,C[I+40|0]=B,C[I+41|0]=B>>>8,C[I+42|0]=B>>>16,C[I+43|0]=B>>>24,C[I+44|0]=Q,C[I+45|0]=Q>>>8,C[I+46|0]=Q>>>16,C[I+47|0]=Q>>>24,C[I+32|0]=c,C[I+33|0]=c>>>8,C[I+34|0]=c>>>16,C[I+35|0]=c>>>24,C[I+36|0]=A,C[I+37|0]=A>>>8,C[I+38|0]=A>>>16,C[I+39|0]=A>>>24,XC(g,32),s=g+192|0,0}function JA(A,I){I|=0;var g,B,Q=0,o=0,E=0,a=0;return s=g=s-288|0,o=40+((Q=i[32+(A|=0)>>2]>>>3&63)+A|0)|0,Q>>>0>=56?(Ng(o,35520,64-Q|0),J(A,A+40|0,g,g+256|0),i[A+88>>2]=0,i[A+92>>2]=0,i[A+80>>2]=0,i[A+84>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[(Q=A- -64|0)>>2]=0,i[Q+4>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+40>>2]=0,i[A+44>>2]=0):Ng(o,35520,56-Q|0),E=(Q=16711680&(o=i[A+32>>2]))>>>8|0,a=Q<<24,B=(Q=-16777216&o)>>>24|0,Q=(a|=Q<<8)|-16777216&((255&(Q=i[A+36>>2]))<<24|o>>>8)|16711680&((16777215&Q)<<8|o>>>24)|Q>>>8&65280|Q>>>24,C[A+96|0]=Q,C[A+97|0]=Q>>>8,C[A+98|0]=Q>>>16,C[A+99|0]=Q>>>24,Q=E|B|o<<24|(65280&o)<<8,Q|=E=0,C[A+100|0]=Q,C[A+101|0]=Q>>>8,C[A+102|0]=Q>>>16,C[A+103|0]=Q>>>24,J(A,A+40|0,g,g+256|0),Q=(Q=i[A>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[0|I]=Q,C[I+1|0]=Q>>>8,C[I+2|0]=Q>>>16,C[I+3|0]=Q>>>24,Q=(Q=i[A+4>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+4|0]=Q,C[I+5|0]=Q>>>8,C[I+6|0]=Q>>>16,C[I+7|0]=Q>>>24,Q=(Q=i[A+8>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+8|0]=Q,C[I+9|0]=Q>>>8,C[I+10|0]=Q>>>16,C[I+11|0]=Q>>>24,Q=(Q=i[A+12>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+12|0]=Q,C[I+13|0]=Q>>>8,C[I+14|0]=Q>>>16,C[I+15|0]=Q>>>24,Q=(Q=i[A+16>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+16|0]=Q,C[I+17|0]=Q>>>8,C[I+18|0]=Q>>>16,C[I+19|0]=Q>>>24,Q=(Q=i[A+20>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+20|0]=Q,C[I+21|0]=Q>>>8,C[I+22|0]=Q>>>16,C[I+23|0]=Q>>>24,Q=(Q=i[A+24>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+24|0]=Q,C[I+25|0]=Q>>>8,C[I+26|0]=Q>>>16,C[I+27|0]=Q>>>24,Q=(Q=i[A+28>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+28|0]=Q,C[I+29|0]=Q>>>8,C[I+30|0]=Q>>>16,C[I+31|0]=Q>>>24,XC(g,288),XC(A,104),s=g+288|0,0}function dA(A,I){A|=0;var g,B=0;s=g=s+-64|0,B=o[60+(I|=0)|0]|o[I+61|0]<<8|o[I+62|0]<<16|o[I+63|0]<<24,i[g+56>>2]=o[I+56|0]|o[I+57|0]<<8|o[I+58|0]<<16|o[I+59|0]<<24,i[g+60>>2]=B,B=o[I+52|0]|o[I+53|0]<<8|o[I+54|0]<<16|o[I+55|0]<<24,i[g+48>>2]=o[I+48|0]|o[I+49|0]<<8|o[I+50|0]<<16|o[I+51|0]<<24,i[g+52>>2]=B,B=o[I+44|0]|o[I+45|0]<<8|o[I+46|0]<<16|o[I+47|0]<<24,i[g+40>>2]=o[I+40|0]|o[I+41|0]<<8|o[I+42|0]<<16|o[I+43|0]<<24,i[g+44>>2]=B,B=o[I+36|0]|o[I+37|0]<<8|o[I+38|0]<<16|o[I+39|0]<<24,i[g+32>>2]=o[I+32|0]|o[I+33|0]<<8|o[I+34|0]<<16|o[I+35|0]<<24,i[g+36>>2]=B,B=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[g+24>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[g+28>>2]=B,B=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[g+16>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[g+20>>2]=B,B=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[g>>2]=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,i[g+4>>2]=B,B=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[g+8>>2]=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,i[g+12>>2]=B,S(g),I=i[g+28>>2],B=i[g+24>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[g+20>>2],B=i[g+16>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[g+12>>2],B=i[g+8>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[g+4>>2],B=i[g>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,XC(g,64),s=g- -64|0}function mA(A,I,g){A|=0,I|=0;var B,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0;if(s=B=s-96|0,(g|=0)>>>0>=65&&($I(A),UA(A,I,g,0),JA(A,B),g=32,I=B),$I(A),i[B+88>>2]=909522486,i[B+92>>2]=909522486,i[B+80>>2]=909522486,i[B+84>>2]=909522486,i[B+72>>2]=909522486,i[B+76>>2]=909522486,i[(a=r=B- -64|0)>>2]=909522486,i[a+4>>2]=909522486,i[B+56>>2]=909522486,i[B+60>>2]=909522486,i[B+48>>2]=909522486,i[B+52>>2]=909522486,i[B+40>>2]=909522486,i[B+44>>2]=909522486,i[B+32>>2]=909522486,i[B+36>>2]=909522486,g){if(g>>>0>=4)for(_=124&g;C[0|(E=(a=B+32|0)+Q|0)]=o[0|E]^o[I+Q|0],C[0|(e=(E=1|Q)+a|0)]=o[0|e]^o[I+E|0],C[0|(e=(E=2|Q)+a|0)]=o[0|e]^o[I+E|0],C[0|(E=(E=a)+(a=3|Q)|0)]=o[0|E]^o[I+a|0],Q=Q+4|0,(0|_)!=(0|(c=c+4|0)););if(c=3&g)for(;C[0|(a=(B+32|0)+Q|0)]=o[0|a]^o[I+Q|0],Q=Q+1|0,(0|c)!=(0|(t=t+1|0)););}if(UA(A,B+32|0,64,0),$I(a=A+104|0),i[B+88>>2]=1549556828,i[B+92>>2]=1549556828,i[B+80>>2]=1549556828,i[B+84>>2]=1549556828,i[B+72>>2]=1549556828,i[B+76>>2]=1549556828,i[r>>2]=1549556828,i[r+4>>2]=1549556828,i[B+56>>2]=1549556828,i[B+60>>2]=1549556828,i[B+48>>2]=1549556828,i[B+52>>2]=1549556828,i[B+40>>2]=1549556828,i[B+44>>2]=1549556828,i[B+32>>2]=1549556828,i[B+36>>2]=1549556828,g){if(t=0,Q=0,g>>>0>=4)for(r=124&g,c=0;C[0|(_=(A=B+32|0)+Q|0)]=o[0|_]^o[I+Q|0],C[0|(E=(_=1|Q)+A|0)]=o[0|E]^o[I+_|0],C[0|(E=(_=2|Q)+A|0)]=o[0|E]^o[I+_|0],C[0|(_=(E=A)+(A=3|Q)|0)]=o[0|_]^o[A+I|0],Q=Q+4|0,(0|r)!=(0|(c=c+4|0)););if(A=3&g)for(;C[0|(g=(B+32|0)+Q|0)]=o[0|g]^o[I+Q|0],Q=Q+1|0,(0|A)!=(0|(t=t+1|0)););}return UA(a,A=B+32|0,64,0),XC(A,64),XC(B,32),s=B+96|0,0}function lA(A,I,g,C,B,o,E){var a=0,_=0,c=0,t=0,r=0,e=0,y=0;if(I-65>>>0<4294967232|E>>>0>64)A=-1;else{e=a=s,s=a=a-512&-64;A:{I:if(!(!(!(C|B)|g)|!A|((_=255&I)-65&255)>>>0<=191|!(!(I=255&E)||o)|I>>>0>=65)){if(I){if(!o)break I;bg(a- -64|0,0,293),i[a+56>>2]=327033209,i[a+60>>2]=1541459225,i[a+48>>2]=-79577749,i[a+52>>2]=528734635,i[a+40>>2]=725511199,i[a+44>>2]=-1694144372,i[a+32>>2]=-1377402159,i[a+36>>2]=1359893119,i[a+24>>2]=1595750129,i[a+28>>2]=-1521486534,i[a+16>>2]=-23791573,i[a+20>>2]=1013904242,i[a+8>>2]=-2067093701,i[a+12>>2]=-1150833019,i[a>>2]=-222443256^(I<<8|_),i[a+4>>2]=I>>>24^1779033703,bg((E=a+384|0)+I|0,0,128-I|0),Ng(E,o,I),Ng(a+96|0,E,128),i[a+352>>2]=128,XC(E,128),I=128}else bg(a- -64|0,0,293),i[a+56>>2]=327033209,i[a+60>>2]=1541459225,i[a+48>>2]=-79577749,i[a+52>>2]=528734635,i[a+40>>2]=725511199,i[a+44>>2]=-1694144372,i[a+32>>2]=-1377402159,i[a+36>>2]=1359893119,i[a+24>>2]=1595750129,i[a+28>>2]=-1521486534,i[a+16>>2]=-23791573,i[a+20>>2]=1013904242,i[a+8>>2]=-2067093701,i[a+12>>2]=-1150833019,i[a>>2]=-222443256^_,i[a+4>>2]=1779033703,I=0;g:if(C|B)for(y=a+224|0,c=a+96|0;;){if(E=I+c|0,!B&C>>>0<=(o=256-I|0)>>>0){Ng(E,g,C),i[a+352>>2]=C+i[a+352>>2];break g}if(Ng(E,g,o),i[a+352>>2]=o+i[a+352>>2],t=I=i[a+68>>2],I=(r=(E=i[a+64>>2])+128|0)>>>0<128?I+1|0:I,i[a+64>>2]=r,i[a+68>>2]=I,I=i[a+76>>2],I=(t=E=-1==(0|t)&E>>>0>4294967167)>>>0>(E=E+i[a+72>>2]|0)>>>0?I+1|0:I,i[a+72>>2]=E,i[a+76>>2]=I,p(a,c),Ng(c,y,128),I=i[a+352>>2]-128|0,i[a+352>>2]=I,g=g+o|0,!((B=B-(C>>>0>>0)|0)|(C=C-o|0)))break}AA(a,A,_),s=e;break A}rC(),Q()}A=0}return A}function uA(A,I){A|=0,I|=0;var g,B=0;s=g=s-128|0,i[g+80>>2]=0,i[g+84>>2]=0,i[g+88>>2]=0,i[g+92>>2]=0,i[g+40>>2]=0,i[g+44>>2]=0,i[g+48>>2]=0,i[g+52>>2]=0,i[g+56>>2]=0,i[g+60>>2]=0,B=i[8799],i[g+104>>2]=i[8798],i[g+108>>2]=B,B=i[8801],i[g+112>>2]=i[8800],i[g+116>>2]=B,B=i[8803],i[g+120>>2]=i[8802],i[g+124>>2]=B,i[g+64>>2]=0,i[g+68>>2]=0,i[g+72>>2]=0,i[g+76>>2]=0,C[g+64|0]=1,i[g+32>>2]=0,i[g+36>>2]=0,B=i[8797],i[g+96>>2]=i[8796],i[g+100>>2]=B,B=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[g+24>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[g+28>>2]=B,B=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[g+16>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[g+20>>2]=B,B=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[g+8>>2]=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,i[g+12>>2]=B,B=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[g>>2]=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,i[g+4>>2]=B,Eg(I=g- -64|0,g),S(I),I=i[g+92>>2],B=i[g+88>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[g+84>>2],B=i[g+80>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[g+76>>2],B=i[g+72>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[g+68>>2],B=i[g+64>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,s=g+128|0}function xA(A,I){A|=0,I|=0;var g,B=0;s=g=s-128|0,i[g+80>>2]=0,i[g+84>>2]=0,i[g+88>>2]=0,i[g+92>>2]=0,i[g+40>>2]=0,i[g+44>>2]=0,i[g+48>>2]=0,i[g+52>>2]=0,i[g+56>>2]=0,i[g+60>>2]=0,B=i[8799],i[g+104>>2]=i[8798],i[g+108>>2]=B,B=i[8801],i[g+112>>2]=i[8800],i[g+116>>2]=B,B=i[8803],i[g+120>>2]=i[8802],i[g+124>>2]=B,i[g+64>>2]=0,i[g+68>>2]=0,i[g+72>>2]=0,i[g+76>>2]=0,i[g+32>>2]=0,i[g+36>>2]=0,B=i[8797],i[g+96>>2]=i[8796],i[g+100>>2]=B,B=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[g+16>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[g+20>>2]=B,B=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[g+24>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[g+28>>2]=B,B=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[g>>2]=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,i[g+4>>2]=B,B=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[g+8>>2]=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,i[g+12>>2]=B,Eg(I=g- -64|0,g),S(I),I=i[g+92>>2],B=i[g+88>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[g+84>>2],B=i[g+80>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[g+76>>2],B=i[g+72>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[g+68>>2],B=i[g+64>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,s=g+128|0}function vA(A,I,g,B){var Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0;A:{if((E=i[A+56>>2])|(Q=i[A+60>>2])){if(e=_=16-E|0,t=(_=(0|(a=0-((E>>>0>16)+Q|0)|0))==(0|B)&g>>>0>_>>>0|B>>>0>a>>>0)?e:g,e=_=_?a:B,_|t){if(_=A- -64|0,a=0,E=0,!e&t>>>0>=4|e)for(r=-4&t;Q=a+i[A+56>>2]|0,C[Q+_|0]=o[I+a|0],Q=(y=1|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+y|0],Q=(y=2|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+y|0],Q=(y=3|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+y|0],Q=E,E=(a=a+4|0)>>>0<4?Q+1|0:Q,Q=h,h=Q=(c=c+4|0)>>>0<4?Q+1|0:Q,(0|c)!=(0|r)|(0|e)!=(0|Q););if(h=Q=0,Q|(c=3&t))for(;Q=a+i[A+56>>2]|0,C[Q+_|0]=o[I+a|0],E=(a=a+1|0)?E:E+1|0,Q=D,D=Q=(s=s+1|0)?Q:Q+1|0,(0|c)!=(0|s)|(0|h)!=(0|Q););E=i[A+56>>2],Q=i[A+60>>2]}if(Q=Q+e|0,Q=(E=E+t|0)>>>0>>0?Q+1|0:Q,i[A+56>>2]=E,i[A+60>>2]=Q,!Q&E>>>0<16)break A;rA(A,A- -64|0,16,0),i[A+56>>2]=0,i[A+60>>2]=0,g=(E=g)-t|0,B=B-((E>>>0>>0)+e|0)|0,I=I+t|0}if(!B&g>>>0>=16|B&&(rA(A,I,E=-16&g,B),g&=15,B=0,I=I+E|0),g|B){if(_=A- -64|0,s=0,D=0,a=0,E=0,!B&g>>>0>=4|B)for(t=12&g,e=0,c=0;Q=a+i[A+56>>2]|0,C[Q+_|0]=o[I+a|0],Q=(r=1|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+r|0],Q=(r=2|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+r|0],Q=(r=3|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+r|0],E=(a=a+4|0)>>>0<4?E+1|0:E,Q=h,h=Q=(c=c+4|0)>>>0<4?Q+1|0:Q,(0|t)!=(0|c)|(0|e)!=(0|Q););if(h=Q=0,Q|(c=3&g))for(;Q=a+i[A+56>>2]|0,C[Q+_|0]=o[I+a|0],E=(a=a+1|0)?E:E+1|0,Q=D,D=Q=(s=s+1|0)?Q:Q+1|0,(0|c)!=(0|s)|(0|h)!=(0|Q););E=B+i[A+60>>2]|0,E=(I=g+i[A+56>>2]|0)>>>0>>0?E+1|0:E,i[A+56>>2]=I,i[A+60>>2]=E}}}function RA(A,I,g){var C,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0;s=i[I+4>>2],B=i[A+4>>2],h=i[I+8>>2],Q=i[A+8>>2],D=i[I+12>>2],o=i[A+12>>2],f=i[I+16>>2],E=i[A+16>>2],p=i[I+20>>2],a=i[A+20>>2],e=i[I+24>>2],_=i[A+24>>2],w=i[I+28>>2],c=i[A+28>>2],n=i[I+32>>2],t=i[A+32>>2],k=i[I+36>>2],r=i[A+36>>2],g=0-g|0,y=i[A>>2],i[A>>2]=g&(y^i[I>>2])^y,i[A+36>>2]=r^g&(r^k),i[A+32>>2]=t^g&(t^n),i[A+28>>2]=c^g&(c^w),i[A+24>>2]=_^g&(_^e),i[A+20>>2]=a^g&(a^p),i[A+16>>2]=E^g&(E^f),i[A+12>>2]=o^g&(o^D),i[A+8>>2]=Q^g&(Q^h),i[A+4>>2]=B^g&(B^s),B=i[A+44>>2],s=i[I+44>>2],Q=i[A+48>>2],h=i[I+48>>2],o=i[A+52>>2],D=i[I+52>>2],E=i[A+56>>2],f=i[I+56>>2],a=i[A+60>>2],p=i[I+60>>2],_=i[(e=A- -64|0)>>2],w=i[I- -64>>2],c=i[A+68>>2],n=i[I+68>>2],t=i[A+72>>2],k=i[I+72>>2],r=i[A+40>>2],y=i[I+40>>2],C=i[A+76>>2],i[A+76>>2]=C^g&(i[I+76>>2]^C),i[A+72>>2]=t^g&(t^k),i[A+68>>2]=c^g&(c^n),i[e>>2]=_^g&(_^w),i[A+60>>2]=a^g&(a^p),i[A+56>>2]=E^g&(E^f),i[A+52>>2]=o^g&(o^D),i[A+48>>2]=Q^g&(Q^h),i[A+44>>2]=B^g&(B^s),i[A+40>>2]=r^g&(r^y),B=i[A+84>>2],s=i[I+84>>2],Q=i[A+88>>2],h=i[I+88>>2],o=i[A+92>>2],D=i[I+92>>2],E=i[A+96>>2],f=i[I+96>>2],a=i[A+100>>2],p=i[I+100>>2],_=i[A+104>>2],e=i[I+104>>2],c=i[A+108>>2],w=i[I+108>>2],t=i[A+112>>2],n=i[I+112>>2],r=i[A+80>>2],k=i[I+80>>2],y=i[I+116>>2],I=i[A+116>>2],i[A+116>>2]=g&(y^I)^I,i[A+112>>2]=t^g&(t^n),i[A+108>>2]=c^g&(c^w),i[A+104>>2]=_^g&(_^e),i[A+100>>2]=a^g&(a^p),i[A+96>>2]=E^g&(E^f),i[A+92>>2]=o^g&(o^D),i[A+88>>2]=Q^g&(Q^h),i[A+84>>2]=B^g&(B^s),i[A+80>>2]=r^g&(r^k)}function LA(A,I){var g,C,B=0;for(s=g=s-192|0,R(C=g+144|0,I),R(B=g+96|0,C),R(B,B),b(B,I,B),b(C,C,B),R(I=g+48|0,C),b(B,B,I),R(I,B),R(I,I),R(I,I),R(I,I),R(I,I),b(B,I,B),R(I,B),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),b(I,I,B),R(g,I),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),b(I,g,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),b(B,I,B),R(I,B),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),b(I,I,B),R(g,I),I=1;R(g,g),100!=(0|(I=I+1|0)););b(I=g+48|0,g,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),b(B=g+96|0,I,B),R(B,B),R(B,B),R(B,B),R(B,B),R(B,B),b(A,B,g+144|0),s=g+192|0}function PA(A,I){var g,C=0,B=0;for(s=g=s-144|0,R(B=g+96|0,I),R(C=g+48|0,B),R(C,C),b(C,I,C),b(B,B,C),R(B,B),b(B,C,B),R(C,B),R(C,C),R(C,C),R(C,C),R(C,C),b(B,C,B),R(C,B),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),b(C,C,B),R(g,C),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),b(C,g,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),b(B,C,B),R(C,B),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),b(C,C,B),R(g,C),C=1;R(g,g),100!=(0|(C=C+1|0)););b(C=g+48|0,g,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),b(B=g+96|0,C,B),R(B,B),R(B,B),b(A,B,I),s=g+144|0}function qA(A,I){var g,B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S=0,N=0,G=0,M=0;s=g=s-320|0,fA(B=A+40|0,I),i[A+84>>2]=0,i[A+88>>2]=0,i[A+80>>2]=1,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,i[A+116>>2]=0,R(G=g+240|0,B),b(N=g+192|0,G,1584),M=-1,Q=i[g+240>>2]-1|0,i[g+240>>2]=Q,i[g+192>>2]=i[g+192>>2]+1,E=i[g+244>>2],a=i[g+248>>2],_=i[g+252>>2],c=i[g+256>>2],t=i[g+260>>2],r=i[g+264>>2],e=i[g+268>>2],y=i[g+272>>2],h=i[g+276>>2],R(S=g+144|0,N),b(S,S,N),R(A,S),b(A,A,N),b(A,A,G),PA(A,A),b(A,A,S),b(A,A,G),R(S=g+96|0,A),b(S,S,N),N=i[g+132>>2],i[g+84>>2]=N-h,S=i[g+128>>2],i[g+80>>2]=S-y,G=i[g+124>>2],i[g+76>>2]=G-e,D=i[g+120>>2],i[g+72>>2]=D-r,f=i[g+116>>2],i[g+68>>2]=f-t,p=i[g+112>>2],i[g+64>>2]=p-c,w=i[g+108>>2],i[g+60>>2]=w-_,n=i[g+104>>2],i[g+56>>2]=n-a,k=i[g+100>>2],i[g+52>>2]=k-E,F=i[g+96>>2],i[g+48>>2]=F-Q,QI(g,g+48|0);A:{if(!GI(g,32)){if(i[g+36>>2]=N+h,i[g+32>>2]=S+y,i[g+28>>2]=G+e,i[g+24>>2]=r+D,i[g+20>>2]=t+f,i[g+16>>2]=c+p,i[g+12>>2]=_+w,i[g+8>>2]=a+n,i[g+4>>2]=E+k,i[g>>2]=Q+F,QI(N=g+288|0,g),!GI(N,32))break A;b(A,A,1632)}QI(g+288|0,A),(1&C[g+288|0])==(o[I+31|0]>>>7|0)&&(i[A>>2]=0-i[A>>2],i[A+36>>2]=0-i[A+36>>2],i[A+32>>2]=0-i[A+32>>2],i[A+28>>2]=0-i[A+28>>2],i[A+24>>2]=0-i[A+24>>2],i[A+20>>2]=0-i[A+20>>2],i[A+16>>2]=0-i[A+16>>2],i[A+12>>2]=0-i[A+12>>2],i[A+8>>2]=0-i[A+8>>2],i[A+4>>2]=0-i[A+4>>2]),b(A+120|0,A,B),M=0}return s=g+320|0,M}function zA(A,I,g){var C,B,Q,o,E,_,c,t,r=0;s=C=s-128|0,i[A>>2]=1,i[A+4>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+36>>2]=0,i[A+40>>2]=1,bg(A+44|0,0,76),RA(A,I=a(I,960)+2992|0,(255&(1^(r=g-((g>>31&g)<<1)|0)))-1>>>31|0),RA(A,I+120|0,(255&(2^r))-1>>>31|0),RA(A,I+240|0,(255&(3^r))-1>>>31|0),RA(A,I+360|0,(255&(4^r))-1>>>31|0),RA(A,I+480|0,(255&(5^r))-1>>>31|0),RA(A,I+600|0,(255&(6^r))-1>>>31|0),RA(A,I+720|0,(255&(7^r))-1>>>31|0),RA(A,I+840|0,(255&(8^r))-1>>>31|0),I=i[A+76>>2],i[C+40>>2]=i[A+72>>2],i[C+44>>2]=I,r=i[4+(I=A- -64|0)>>2],i[C+32>>2]=i[I>>2],i[C+36>>2]=r,I=i[A+60>>2],i[C+24>>2]=i[A+56>>2],i[C+28>>2]=I,I=i[A+52>>2],i[C+16>>2]=i[A+48>>2],i[C+20>>2]=I,I=i[A+44>>2],i[C+8>>2]=i[A+40>>2],i[C+12>>2]=I,I=i[A+12>>2],i[C+56>>2]=i[A+8>>2],i[C+60>>2]=I,r=i[A+20>>2],i[(I=C- -64|0)>>2]=i[A+16>>2],i[I+4>>2]=r,I=i[A+28>>2],i[C+72>>2]=i[A+24>>2],i[C+76>>2]=I,I=i[A+36>>2],i[C+80>>2]=i[A+32>>2],i[C+84>>2]=I,I=i[A+4>>2],i[C+48>>2]=i[A>>2],i[C+52>>2]=I,I=i[A+84>>2],r=i[A+88>>2],B=i[A+92>>2],Q=i[A+96>>2],o=i[A+100>>2],E=i[A+104>>2],_=i[A+108>>2],c=i[A+112>>2],t=i[A+80>>2],i[C+124>>2]=0-i[A+116>>2],i[C+120>>2]=0-c,i[C+116>>2]=0-_,i[C+112>>2]=0-E,i[C+108>>2]=0-o,i[C+104>>2]=0-Q,i[C+100>>2]=0-B,i[C+96>>2]=0-r,i[C+92>>2]=0-I,i[C+88>>2]=0-t,RA(A,C+8|0,(128&g)>>>7|0),s=C+128|0}function jA(A){var I,g,C,B,Q,o,E,a,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0;return s=I=s-320|0,R(c=I+240|0,A),R(t=I+192|0,A+40|0),R(_=I+144|0,A+80|0),A=i[I+240>>2],r=i[I+192>>2],e=i[I+244>>2],y=i[I+196>>2],h=i[I+248>>2],D=i[I+200>>2],f=i[I+252>>2],p=i[I+204>>2],w=i[I+256>>2],n=i[I+208>>2],k=i[I+260>>2],F=i[I+212>>2],S=i[I+264>>2],N=i[I+216>>2],G=i[I+268>>2],M=i[I+220>>2],K=i[I+272>>2],U=i[I+224>>2],i[I+84>>2]=i[I+228>>2]-i[I+276>>2],i[I+80>>2]=U-K,i[I+76>>2]=M-G,i[I+72>>2]=N-S,i[I+68>>2]=F-k,i[I+64>>2]=n-w,i[I+60>>2]=p-f,i[I+56>>2]=D-h,i[I+52>>2]=y-e,i[I+48>>2]=r-A,b(A=I+48|0,A,_),b(I,c,t),b(I,I,1584),R(I+96|0,_),_=i[I+48>>2],c=i[I+96>>2],t=i[I>>2],r=i[I+52>>2],e=i[I+100>>2],y=i[I+4>>2],h=i[I+56>>2],D=i[I+104>>2],f=i[I+8>>2],p=i[I+60>>2],w=i[I+108>>2],n=i[I+12>>2],k=i[I+64>>2],F=i[I+112>>2],S=i[I+16>>2],N=i[I+68>>2],G=i[I+116>>2],M=i[I+20>>2],K=i[I+72>>2],U=i[I+120>>2],g=i[I+24>>2],C=i[I+76>>2],B=i[I+124>>2],Q=i[I+28>>2],o=i[I+80>>2],E=i[I+128>>2],a=i[I+32>>2],i[I+84>>2]=i[I+84>>2]-(i[I+132>>2]+i[I+36>>2]|0),i[I+80>>2]=o-(E+a|0),i[I+76>>2]=C-(B+Q|0),i[I+72>>2]=K-(U+g|0),i[I+68>>2]=N-(G+M|0),i[I+64>>2]=k-(F+S|0),i[I+60>>2]=p-(w+n|0),i[I+56>>2]=h-(D+f|0),i[I+52>>2]=r-(e+y|0),i[I+48>>2]=_-(c+t|0),QI(_=I+288|0,A),A=GI(_,32),s=I+320|0,A}function XA(A,I,g,B,i){A|=0,I|=0,g|=0,B|=0;var E=0,_=0,c=0,t=0,e=0,y=0,s=0;A:{I:{g:{C:{B:{Q:{i:{if(1==(-7&(i|=0))&&(c=(E=(B>>>0)/3|0)<<2,(E=a(E,-3)+B|0)&&(c=2&i?2+((E>>>1|0)+c|0)|0:c+4|0),!(I>>>0<=c>>>0))){if(!(i>>>0>=4)){if(!B){i=0;break C}E=0,i=0;break i}if(!B){i=0;break C}for(E=0,i=0;;){for(e=o[g+t|0]|e<<8,E|=8;y=65510+(_=e>>>(E=E-6|0)&63)>>>8|0,s=_+65484>>>8|0,C[A+i|0]=~(1+(16321^_))>>>8&45|_+252&_+65474>>>8&~s|~(_+32705)>>>8&95|y&_+65|s&_+71&~y,i=i+1|0,E>>>0>5;);if((0|(t=t+1|0))==(0|B))break}if(!E)break B;t=45,_=32705,B=95;break Q}rC(),Q()}for(;;){for(e=o[g+t|0]|e<<8,E|=8;y=65510+(_=e>>>(E=E-6|0)&63)>>>8|0,s=_+65484>>>8|0,C[A+i|0]=~(1+(16321^_))>>>8&43|_+252&_+65474>>>8&~s|~(_+16321)>>>8&47|y&_+65|s&_+71&~y,i=i+1|0,E>>>0>5;);if((0|(t=t+1|0))==(0|B))break}if(!E)break B;t=43,_=16321,B=47}_=~((g=e<<6-E&63)+_)>>>8&B|(E=g+65510>>>8|0)&g+65,B=g+65484>>>8|0,C[A+i|0]=~(1+(16321^g))>>>8&t|_|g+252&g+65474>>>8&~B|B&g+71&~E,i=i+1|0}if(i>>>0>c>>>0)break g}if(i>>>0>>0)break I;c=i;break A}r(1104,1218,231,1503),Q()}bg(A+i|0,61,c-i|0)}return bg(A+c|0,0,(I>>>0>(g=c+1|0)>>>0?I:g)-c|0),0|A}function OA(A,I,g){var C,B,Q,E=0,_=0,c=0,t=0,r=0;s=C=s-16|0,B=i[A+20>>2],i[A+20>>2]=0,Q=i[A+4>>2],i[A+4>>2]=0,c=-26;A:{I:{g:{C:switch(g-1|0){case 1:if(gg(I,1182,9))break I;I=I+9|0;break g;case 0:break C;default:break A}if(gg(I,1173,8))break I;I=I+8|0}if(36!=o[0|I]|118!=o[I+1|0]||(E=61==o[I+2|0]),E&&!(((t=o[0|(g=I+3|0)])-58&255)>>>0<246)){for(r=E?g:I,I=0,E=t;;){if(_=g,I>>>0>429496729)break I;if((g=(255&E)-48|0)>>>0>~(I=a(I,10))>>>0)break I;if(I=I+g|0,!(((E=o[0|(g=_+1|0)])-58&255)>>>0>245))break}if(!(48==(0|t)&(0|_)!=(0|r)|(0|g)==(0|r))){if(19!=(0|I))break A;if(!(36!=(255&E)|109!=o[_+2|0]|61!=o[_+3|0])&&(g=lI(_+4|0,I=C+12|0))&&(i[A+44>>2]=i[C+12>>2],!(44!=o[0|g]|116!=o[g+1|0]|61!=o[g+2|0])&&(g=lI(g+3|0,I))&&(i[A+40>>2]=i[C+12>>2],!(44!=o[0|g]|112!=o[g+1|0]|61!=o[g+2|0])&&(g=lI(g+3|0,I))&&(E=i[C+12>>2],i[A+48>>2]=E,i[A+52>>2]=E,36==o[0|g]&&(i[C+12>>2]=B,!pA(_=i[A+16>>2],B,E=g=g+1|0,t=RI(g),0,I,g=C+8|0,3)&&(i[A+20>>2]=i[C+12>>2],E=i[C+8>>2],36==o[0|E]&&(i[C+12>>2]=Q,E=E+1|0,!pA(i[A>>2],Q,E,RI(E),0,I,g,3)))))))){if(i[A+4>>2]=i[C+12>>2],I=i[C+8>>2],c=nI(A))break A;c=o[0|I]?-32:0;break A}}}}c=-32}return s=C+16|0,c}function WA(A,I,g,B){var Q=0,i=0,E=0,a=0,_=0,c=0,t=0;if(g|B)A:for(t=A+224|0,_=A+96|0,i=o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24;;){if(Q=i+_|0,!B&g>>>0<=(E=256-i|0)>>>0){Ng(Q,I,g),I=g+(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)|0,C[A+352|0]=I,C[A+353|0]=I>>>8,C[A+354|0]=I>>>16,C[A+355|0]=I>>>24;break A}if(Ng(Q,I,E),Q=(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)+E|0,C[A+352|0]=Q,C[A+353|0]=Q>>>8,C[A+354|0]=Q>>>16,C[A+355|0]=Q>>>24,c=i=o[A+68|0]|o[A+69|0]<<8|o[A+70|0]<<16|o[A+71|0]<<24,i=(a=128+(Q=o[A+64|0]|o[A+65|0]<<8|o[A+66|0]<<16|o[A+67|0]<<24)|0)>>>0<128?i+1|0:i,C[A+64|0]=a,C[A+65|0]=a>>>8,C[A+66|0]=a>>>16,C[A+67|0]=a>>>24,C[A+68|0]=i,C[A+69|0]=i>>>8,C[A+70|0]=i>>>16,C[A+71|0]=i>>>24,i=o[A+76|0]|o[A+77|0]<<8|o[A+78|0]<<16|o[A+79|0]<<24,i=(c=Q=-1==(0|c)&Q>>>0>4294967167)>>>0>(Q=Q+(o[A+72|0]|o[A+73|0]<<8|o[A+74|0]<<16|o[A+75|0]<<24)|0)>>>0?i+1|0:i,C[A+72|0]=Q,C[A+73|0]=Q>>>8,C[A+74|0]=Q>>>16,C[A+75|0]=Q>>>24,C[A+76|0]=i,C[A+77|0]=i>>>8,C[A+78|0]=i>>>16,C[A+79|0]=i>>>24,p(A,_),Ng(_,t,128),Q=i=(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)-128|0,C[A+352|0]=Q,C[A+353|0]=Q>>>8,C[A+354|0]=Q>>>16,C[A+355|0]=Q>>>24,I=I+E|0,!((B=B-(g>>>0>>0)|0)|(g=g-E|0)))break}return 0}function VA(A){var I=0,g=0,C=0,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0;for(g=i[A+60>>2],h=i[A+56>>2],s=i[A+52>>2],e=i[A+48>>2],I=i[A+44>>2],C=i[A+40>>2],D=i[A+36>>2],r=i[A+32>>2],B=i[A+28>>2],Q=i[A+24>>2],o=i[A+20>>2],E=i[A+16>>2],a=i[A+12>>2],_=i[A+8>>2],c=i[A+4>>2],t=i[A>>2];y=Lg(o+c|0,7)^D,f=Lg(y+o|0,9)^s,E=Lg(t+e|0,7)^E,p=Lg(E+t|0,9)^r,w=Lg(p+E|0,13)^e,a=Lg(I+g|0,7)^a,B=Lg(a+g|0,9)^B,r=Lg(B+a|0,13)^I,g=Lg(B+r|0,18)^g,I=Lg(C+Q|0,7)^h,e=w^Lg(g+I|0,7),s=f^Lg(e+g|0,9),h=Lg(e+s|0,13)^I,g=Lg(s+h|0,18)^g,_=Lg(I+C|0,9)^_,Q=Lg(_+I|0,13)^Q,C=Lg(Q+_|0,18)^C,I=Lg(C+y|0,7)^r,r=Lg(I+C|0,9)^p,D=Lg(I+r|0,13)^y,C=Lg(r+D|0,18)^C,c=Lg(y+f|0,13)^c,o=Lg(c+f|0,18)^o,Q=Lg(o+E|0,7)^Q,B=Lg(Q+o|0,9)^B,E=Lg(B+Q|0,13)^E,o=Lg(E+B|0,18)^o,t=Lg(p+w|0,18)^t,c=Lg(t+a|0,7)^c,_=Lg(c+t|0,9)^_,a=Lg(_+c|0,13)^a,t=Lg(a+_|0,18)^t,y=n>>>0<6,n=n+2|0,y;);i[A>>2]=i[A>>2]+t,i[A+4>>2]=i[A+4>>2]+c,i[A+8>>2]=i[A+8>>2]+_,i[A+12>>2]=i[A+12>>2]+a,i[A+16>>2]=i[A+16>>2]+E,i[A+20>>2]=i[A+20>>2]+o,i[A+24>>2]=i[A+24>>2]+Q,i[A+28>>2]=i[A+28>>2]+B,i[A+32>>2]=i[A+32>>2]+r,i[A+36>>2]=i[A+36>>2]+D,i[A+40>>2]=i[A+40>>2]+C,i[A+44>>2]=i[A+44>>2]+I,i[A+48>>2]=i[A+48>>2]+e,i[A+52>>2]=i[A+52>>2]+s,i[A+56>>2]=i[A+56>>2]+h,i[A+60>>2]=i[A+60>>2]+g}function ZA(A,I,g,B){var Q,i=0;return s=Q=s-320|0,i=-1,NI(g)&&(KI(g)||MA(Q,g)||gA(Q)&&(C[0|A]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],g=o[I+31|0],B&&(C[0|A]=248&o[0|A],g|=64),C[A+31|0]=127&g,u(g=Q+160|0,A,Q),tg(A,g),(127&o[A+31|0]|o[A+30|0]|o[A+29|0]|o[A+28|0]|o[A+27|0]|o[A+26|0]|o[A+25|0]|o[A+24|0]|o[A+23|0]|o[A+22|0]|o[A+21|0]|o[A+20|0]|o[A+19|0]|o[A+18|0]|o[A+17|0]|o[A+16|0]|o[A+15|0]|o[A+14|0]|o[A+13|0]|o[A+12|0]|o[A+11|0]|o[A+10|0]|o[A+9|0]|o[A+8|0]|o[A+7|0]|o[A+6|0]|o[A+5|0]|o[A+4|0]|o[A+3|0]|o[A+2|0]|o[A+1|0]|1^o[0|A])-1&256||(i=GI(I,32)?-1:0))),s=Q+320|0,i}function TA(A,I,g,B,Q){var E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0;if(s=E=s-48|0,Q&&ag(Q,102),!(36!=o[0|B]|55!=o[B+1|0]|36!=o[B+2|0])&&(r=uI(o[B+3|0]))&&(a=PI(E+12|0,B+4|0))&&(t=PI(E+8|0,a))){for(_=RI(t)+1|0;a=0,_&&36!=o[0|(a=t+(_=_-1|0)|0)];);if(c=a-t|0,a||(c=RI(t)),!((c=45+(_=(a=c)+(t-B|0)|0)|0)>>>0>102|a>>>0>c>>>0||(c=A,y=I,h=g,A=31&(r=r-1024|0),(63&r)>>>0>=32?(I=1<>>32-A,_A(c,y,h,t,a,g,I,i[E+12>>2],i[E+8>>2],E+16|0,32)))){for(a=Ng(Q,B,_),C[0|(A=a+_|0)]=36,e=(c=a+102|0)-(Q=A+1|0)|0,g=0;;){A:if((I=g)>>>0>31)B=Q;else if(A=Q,g=(_=I+1|0)+(y=(g=31-I|0)>>>0>=2?2:g)|0,B=0,t=0,Q=o[(r=E+16|0)+I|0],y&&(Q=o[_+r|0]<<8|Q,(0|(I=I+2|0))!=(0|g)&&(t=1,Q=o[I+r|0]<<16|Q)),e&&(C[0|A]=o[1024+(63&Q)|0],1!=(0|e))){if(C[A+1|0]=o[1024+(Q>>>6&63)|0],y=A+e|0,I=A+2|0,(0|g)!=(0|_)){if(2==(0|e))break A;if(C[A+2|0]=o[1024+(Q>>>12&63)|0],I=A+3|0,t){if(3==(0|e))break A;C[A+3|0]=o[1024+(Q>>>18|0)|0],I=A+4|0}}if(e=y-(Q=I)|0,Q)continue}break}XC(E+16|0,32),e=0,!B|B>>>0>=c>>>0||(C[0|B]=0,e=a)}}return s=E+48|0,e}function $A(A,I){var g,C=0,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0;C=i[I+4>>2],Q=i[I+44>>2],o=i[I+8>>2],E=i[I+48>>2],a=i[I+12>>2],_=i[I+52>>2],c=i[I+16>>2],t=i[I+56>>2],r=i[I+20>>2],e=i[I+60>>2],y=i[I+24>>2],s=i[(B=I- -64|0)>>2],h=i[I+28>>2],D=i[I+68>>2],f=i[I+32>>2],p=i[I+72>>2],w=i[I+36>>2],g=i[I+76>>2],i[A>>2]=i[I>>2]+i[I+40>>2],i[A+36>>2]=w+g,i[A+32>>2]=f+p,i[A+28>>2]=h+D,i[A+24>>2]=y+s,i[A+20>>2]=r+e,i[A+16>>2]=c+t,i[A+12>>2]=a+_,i[A+8>>2]=o+E,i[A+4>>2]=C+Q,C=i[I+4>>2],Q=i[I+44>>2],o=i[I+8>>2],E=i[I+48>>2],a=i[I+12>>2],_=i[I+52>>2],c=i[I+16>>2],t=i[I+56>>2],r=i[I+20>>2],e=i[I+60>>2],y=i[I+24>>2],B=i[B>>2],s=i[I+28>>2],h=i[I+68>>2],D=i[I+32>>2],f=i[I+72>>2],p=i[I>>2],w=i[I+40>>2],i[A+76>>2]=i[I+76>>2]-i[I+36>>2],i[A+72>>2]=f-D,i[A+68>>2]=h-s,i[A- -64>>2]=B-y,i[A+60>>2]=e-r,i[A+56>>2]=t-c,i[A+52>>2]=_-a,i[A+48>>2]=E-o,i[A+44>>2]=Q-C,i[A+40>>2]=w-p,C=i[I+84>>2],i[A+80>>2]=i[I+80>>2],i[A+84>>2]=C,C=i[I+92>>2],i[A+88>>2]=i[I+88>>2],i[A+92>>2]=C,C=i[I+100>>2],i[A+96>>2]=i[I+96>>2],i[A+100>>2]=C,C=i[I+108>>2],i[A+104>>2]=i[I+104>>2],i[A+108>>2]=C,C=i[I+116>>2],i[A+112>>2]=i[I+112>>2],i[A+116>>2]=C,b(A+120|0,I+120|0,1680)}function AI(A,I,g){var C,B,Q,o,E,a,_,c,t,r,e,y,h=0,D=0,f=0,p=0,w=0;h=i[I+12>>2],D=i[I+8>>2],f=i[I+4>>2],C=s+-64&-64,I=i[I>>2],i[C>>2]=i[35744+((255&I)<<2)>>2],i[C+4>>2]=i[35744+(f>>>6&1020)>>2],i[C+8>>2]=i[35744+(D>>>14&1020)>>2],i[C+12>>2]=i[35744+(h>>>22&1020)>>2],i[C+16>>2]=i[35744+((255&f)<<2)>>2],i[C+20>>2]=i[35744+(D>>>6&1020)>>2],i[C+24>>2]=i[35744+(h>>>14&1020)>>2],i[C+28>>2]=i[35744+(I>>>22&1020)>>2],i[C+32>>2]=i[35744+((255&D)<<2)>>2],i[C+36>>2]=i[35744+(h>>>6&1020)>>2],i[C+40>>2]=i[35744+(I>>>14&1020)>>2],i[C+44>>2]=i[35744+(f>>>22&1020)>>2],i[C+48>>2]=i[35744+((255&h)<<2)>>2],i[C+52>>2]=i[35744+(I>>>6&1020)>>2],i[C+56>>2]=i[35744+(f>>>14&1020)>>2],i[C+60>>2]=i[35744+(D>>>22&1020)>>2],I=i[C+12>>2],h=i[C>>2],D=i[C+4>>2],f=i[C+8>>2],B=i[C+28>>2],Q=i[C+16>>2],o=i[C+20>>2],E=i[C+24>>2],a=i[C+44>>2],_=i[C+32>>2],c=i[C+36>>2],t=i[C+40>>2],r=i[g>>2],e=i[g+4>>2],y=i[g+8>>2],p=A,w=i[g+12>>2]^i[C+48>>2]^Lg(i[C+52>>2],8)^Lg(i[C+56>>2],16)^Lg(i[C+60>>2],24),i[p+12>>2]=w,p=A,w=Lg(c,8)^_^Lg(t,16)^Lg(a,24)^y,i[p+8>>2]=w,p=A,w=Lg(o,8)^Q^Lg(E,16)^Lg(B,24)^e,i[p+4>>2]=w,p=A,w=Lg(D,8)^h^Lg(f,16)^Lg(I,24)^r,i[p>>2]=w}function II(A,I,g){var B,Q=0;return s=B=s-160|0,C[0|A]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],Q=o[I+31|0],g&&(C[0|A]=248&o[0|A],Q|=64),C[A+31|0]=127&Q,nA(B,A),tg(A,B),g=-1,(127&o[A+31|0]|o[A+30|0]|o[A+29|0]|o[A+28|0]|o[A+27|0]|o[A+26|0]|o[A+25|0]|o[A+24|0]|o[A+23|0]|o[A+22|0]|o[A+21|0]|o[A+20|0]|o[A+19|0]|o[A+18|0]|o[A+17|0]|o[A+16|0]|o[A+15|0]|o[A+14|0]|o[A+13|0]|o[A+12|0]|o[A+11|0]|o[A+10|0]|o[A+9|0]|o[A+8|0]|o[A+7|0]|o[A+6|0]|o[A+5|0]|o[A+4|0]|o[A+3|0]|o[A+2|0]|o[A+1|0]|1^o[0|A])-1&256||(g=GI(I,32)?-1:0),s=B+160|0,g}function gI(A,I){var g,B,Q,o,E,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0;(_=i[A+56>>2])|(c=i[A+60>>2])&&(C[(r=A- -64|0)+_|0]=1,!((f=_+1|0)?c:c+1|0)&f>>>0<=15&&bg(65+(A+_|0)|0,0,15-_|0),C[A+80|0]=1,rA(A,r,16,0)),f=i[A+52>>2],h=i[A+48>>2],r=i[A+44>>2],_=i[A+24>>2],e=i[A+28>>2]+(_>>>26|0)|0,t=i[A+32>>2]+(e>>>26|0)|0,g=i[A+36>>2]+(t>>>26|0)|0,c=(s=(_=(_=(67108863&_)+((y=i[A+20>>2]+a(g>>>26|0,5)|0)>>>26|0)|0)&(e=(t=(E=(67108863&g)+((o=(B=67108863&t)+((Q=(D=67108863&e)+((y=_+((c=5+(s=67108863&y)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)-67108864|0)>>31)|y&(t=67108863&(y=(t>>>31|0)-1|0)))<<26|c&t|e&s)+i[A+40>>2]|0,C[0|I]=c,C[I+1|0]=c>>>8,C[I+2|0]=c>>>16,C[I+3|0]=c>>>24,s=c>>>0>>0,c=0,c=(_=(D=e&D|t&Q)<<20|_>>>6)>>>0>(_=_+r|0)>>>0?1:c,c=(r=_)>>>0>(_=_+s|0)>>>0?c+1|0:c,C[I+4|0]=_,C[I+5|0]=_>>>8,C[I+6|0]=_>>>16,C[I+7|0]=_>>>24,_=0,r=(r=(t=e&B|t&o)<<14|D>>>12)>>>0>(h=r+h|0)>>>0?1:_,_=h,h=c,_=_+c|0,c=r,c=_>>>0>>0?c+1|0:c,C[I+8|0]=_,C[I+9|0]=_>>>8,C[I+10|0]=_>>>16,C[I+11|0]=_>>>24,c=(_=(_=(y&E|e&g)<<8|t>>>18)+f|0)+c|0,C[I+12|0]=c,C[I+13|0]=c>>>8,C[I+14|0]=c>>>16,C[I+15|0]=c>>>24,XC(A,88)}function CI(A,I,g){A|=0,I|=0,g|=0;var B,Q=0;return s=B=s-16|0,C[B+15|0]=0,Q=-1,0|pB[i[8930]](A,I,g)||(C[B+15|0]=o[0|A]|o[B+15|0],C[B+15|0]=o[A+1|0]|o[B+15|0],C[B+15|0]=o[A+2|0]|o[B+15|0],C[B+15|0]=o[A+3|0]|o[B+15|0],C[B+15|0]=o[A+4|0]|o[B+15|0],C[B+15|0]=o[A+5|0]|o[B+15|0],C[B+15|0]=o[A+6|0]|o[B+15|0],C[B+15|0]=o[A+7|0]|o[B+15|0],C[B+15|0]=o[A+8|0]|o[B+15|0],C[B+15|0]=o[A+9|0]|o[B+15|0],C[B+15|0]=o[A+10|0]|o[B+15|0],C[B+15|0]=o[A+11|0]|o[B+15|0],C[B+15|0]=o[A+12|0]|o[B+15|0],C[B+15|0]=o[A+13|0]|o[B+15|0],C[B+15|0]=o[A+14|0]|o[B+15|0],C[B+15|0]=o[A+15|0]|o[B+15|0],C[B+15|0]=o[A+16|0]|o[B+15|0],C[B+15|0]=o[A+17|0]|o[B+15|0],C[B+15|0]=o[A+18|0]|o[B+15|0],C[B+15|0]=o[A+19|0]|o[B+15|0],C[B+15|0]=o[A+20|0]|o[B+15|0],C[B+15|0]=o[A+21|0]|o[B+15|0],C[B+15|0]=o[A+22|0]|o[B+15|0],C[B+15|0]=o[A+23|0]|o[B+15|0],C[B+15|0]=o[A+24|0]|o[B+15|0],C[B+15|0]=o[A+25|0]|o[B+15|0],C[B+15|0]=o[A+26|0]|o[B+15|0],C[B+15|0]=o[A+27|0]|o[B+15|0],C[B+15|0]=o[A+28|0]|o[B+15|0],C[B+15|0]=o[A+29|0]|o[B+15|0],C[B+15|0]=o[A+30|0]|o[B+15|0],C[B+15|0]=o[A+31|0]|o[B+15|0],Q=(o[B+15|0]<<23)-8388608>>31),s=B+16|0,0|Q}function BI(A,I,g,C,B){var Q=0,o=0,E=0,a=0,_=0,c=0,t=0;A:{if(1==(0|C)|C>>>0>1)i[9404]=22;else{s=C=s-128|0,i[C- -64>>2]=0,i[C+56>>2]=0,i[C+60>>2]=0,i[C+48>>2]=0,i[C+52>>2]=0,i[C+40>>2]=0,i[C+44>>2]=0,i[C+32>>2]=0,i[C+36>>2]=0,i[C+24>>2]=0,i[C+28>>2]=0,i[C+16>>2]=0,i[C+20>>2]=0,Q=RI(A),i[C+28>>2]=Q,i[C+44>>2]=Q,i[C+12>>2]=Q,o=K(Q),i[C+40>>2]=o,E=K(Q),i[C+24>>2]=E,a=K(Q),i[C+8>>2]=a;I:if(!a|!o|!E||!(Q=K(Q)))BA(o),BA(E),BA(a),A=-22;else{if(A=OA(C+8|0,A,B)){BA(i[C+40>>2]),BA(i[C+24>>2]),BA(i[C+8>>2]),BA(Q);break I}a=i[C+28>>2],_=i[C+24>>2],A=i[C+60>>2],c=i[C+52>>2],t=i[C+48>>2],ag(Q,o=i[C+12>>2]),(E=K(o))?(i[C+100>>2]=0,i[C+104>>2]=0,i[C+92>>2]=0,i[C+96>>2]=0,i[C+88>>2]=a,i[C+84>>2]=_,i[C+80>>2]=g,i[C+76>>2]=I,i[C+72>>2]=o,i[C+68>>2]=E,i[C+124>>2]=0,i[C+120>>2]=A,i[C+116>>2]=A,i[C+112>>2]=c,i[C+108>>2]=t,(A=q(C+68|0,B))||Ng(Q,E,o),XC(E,o),BA(E)):A=-22,BA(i[C+40>>2]),BA(i[C+24>>2]),A||(A=MI(Q,i[C+8>>2],i[C+12>>2])?-35:0),BA(Q),BA(i[C+8>>2])}if(s=C+128|0,I=A,!A)break A;-35==(0|A)&&(i[9404]=28)}I=-1}return I}function QI(A,I){var g,B,Q,o,E,_,c,t=0,r=0;B=i[I+32>>2],Q=i[I+28>>2],o=i[I+24>>2],E=i[I+20>>2],_=i[I+16>>2],c=i[I+12>>2],t=i[I+4>>2],r=i[I>>2],g=i[I+36>>2],I=i[I+8>>2],r=a((B+(Q+(o+(E+(_+(c+((t+(r+(a(g,19)+16777216>>>25|0)>>26)>>25)+I>>26)>>25)>>26)>>25)>>26)>>25)>>26)+g>>25,19)+r|0,C[0|A]=r,C[A+2|0]=r>>>16,C[A+1|0]=r>>>8,t=t+(r>>26)|0,C[A+5|0]=t>>>14,C[A+4|0]=t>>>6,C[A+3|0]=r>>>24&3|t<<2,I=I+(t>>25)|0,C[A+8|0]=I>>>13,C[A+7|0]=I>>>5,C[A+6|0]=I<<3|(29360128&t)>>>22,r=(I>>26)+c|0,C[A+11|0]=r>>>11,C[A+10|0]=r>>>3,C[A+9|0]=r<<5|(65011712&I)>>>21,t=(r>>25)+_|0,C[A+15|0]=t>>>18,C[A+14|0]=t>>>10,C[A+13|0]=t>>>2,I=(t>>26)+E|0,C[A+16|0]=I,C[A+12|0]=t<<6|(33030144&r)>>>19,C[A+18|0]=I>>>16,C[A+17|0]=I>>>8,t=(I>>25)+o|0,C[A+21|0]=t>>>15,C[A+20|0]=t>>>7,C[A+19|0]=I>>>24&1|t<<1,I=(t>>26)+Q|0,C[A+24|0]=I>>>13,C[A+23|0]=I>>>5,C[A+22|0]=I<<3|(58720256&t)>>>23,t=(I>>25)+B|0,C[A+27|0]=t>>>12,C[A+26|0]=t>>>4,C[A+25|0]=t<<4|(31457280&I)>>>21,I=g+(t>>26)|0,C[A+30|0]=I>>>10,C[A+29|0]=I>>>2,C[A+31|0]=(33292288&I)>>>18,C[A+28|0]=I<<6|(66060288&t)>>>20}function iI(A,I,g){A|=0,I|=0;var B,Q=0,i=0,E=0,a=0,_=0,c=0,t=0;if(s=B=s-192|0,(g|=0)>>>0>=129&&(SI(A),SA(A,I,g,0),j(A,B),g=64,I=B),SI(A),bg(B- -64|0,54,128),g){if(g>>>0>=4)for(t=252&g;C[0|(Q=(E=B- -64|0)+i|0)]=o[0|Q]^o[I+i|0],C[0|(a=(Q=1|i)+E|0)]=o[0|a]^o[I+Q|0],C[0|(a=(Q=2|i)+E|0)]=o[0|a]^o[I+Q|0],C[0|(Q=(Q=E)+(E=3|i)|0)]=o[0|Q]^o[I+E|0],i=i+4|0,(0|t)!=(0|(_=_+4|0)););if(_=3&g)for(;C[0|(E=(B- -64|0)+i|0)]=o[0|E]^o[I+i|0],i=i+1|0,(0|_)!=(0|(c=c+1|0)););}if(SA(A,i=B- -64|0,128,0),SI(E=A+208|0),bg(i,92,128),g){if(c=0,i=0,g>>>0>=4)for(t=252&g,_=0;C[0|(Q=(A=B- -64|0)+i|0)]=o[0|Q]^o[I+i|0],C[0|(a=(Q=1|i)+A|0)]=o[0|a]^o[I+Q|0],C[0|(a=(Q=2|i)+A|0)]=o[0|a]^o[I+Q|0],C[0|(Q=(Q=A)+(A=3|i)|0)]=o[0|Q]^o[A+I|0],i=i+4|0,(0|t)!=(0|(_=_+4|0)););if(A=3&g)for(;C[0|(g=(B- -64|0)+i|0)]=o[0|g]^o[I+i|0],i=i+1|0,(0|A)!=(0|(c=c+1|0)););}return SA(E,A=B- -64|0,128,0),XC(A,128),XC(B,64),s=B+192|0,0}function oI(A,I){var g;return A|=0,I|=0,i[12+(g=s-16|0)>>2]=A,i[g+8>>2]=I,i[g+4>>2]=0,i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]]^o[i[g+8>>2]],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+1|0]^o[i[g+8>>2]+1|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+2|0]^o[i[g+8>>2]+2|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+3|0]^o[i[g+8>>2]+3|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+4|0]^o[i[g+8>>2]+4|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+5|0]^o[i[g+8>>2]+5|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+6|0]^o[i[g+8>>2]+6|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+7|0]^o[i[g+8>>2]+7|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+8|0]^o[i[g+8>>2]+8|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+9|0]^o[i[g+8>>2]+9|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+10|0]^o[i[g+8>>2]+10|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+11|0]^o[i[g+8>>2]+11|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+12|0]^o[i[g+8>>2]+12|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+13|0]^o[i[g+8>>2]+13|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+14|0]^o[i[g+8>>2]+14|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+15|0]^o[i[g+8>>2]+15|0],(i[g+4>>2]-1>>>8&1)-1|0}function EI(A,I,g,C,B,Q,o){var E,a,_,c=0,t=0,r=0,e=0;s=E=s-352|0,yA(E,Q,o,0);A:{if(!(((c=!!(0|B))|!B&C>>>0>A-g>>>0)&A>>>0>g>>>0)&(!B&g-A>>>0>=C>>>0|A>>>0>=g>>>0)){if(i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,t=(o=(c=!!(0|B))|!B&C>>>0>=32)?32:C,r=o?0:B,o=c|!B&C>>>0>32,!(C|B)){e=1;break A}}else g=yg(A,g,C),i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,t=(o=c|!B&C>>>0>=32)?32:C,r=o?0:B,o=c|!B&C>>>0>32;Ng(E- -64|0,g,t),e=0}return c=r,ug(a=E+32|0,a,_=t+32|0,c=_>>>0<32?c+1|0:c,c=Q+16|0,E),wC(E+96|0,a),e||Ng(A,E- -64|0,t),XC(E+32|0,64),o&&mg(A+t|0,g+t|0,C-t|0,B-((C>>>0>>0)+r|0)|0,c,1,0,E),XC(E,32),SC(g=E+96|0,A,C,B),nC(g,I),XC(g,256),s=E+352|0,0}function aI(A,I,g,C,B,Q,o){var E,a,_,c=0,t=0,r=0,e=0;s=E=s-352|0,wA(E,Q,o,0);A:{if(!(((c=!!(0|B))|!B&C>>>0>A-g>>>0)&A>>>0>g>>>0)&(!B&g-A>>>0>=C>>>0|A>>>0>=g>>>0)){if(i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,t=(o=(c=!!(0|B))|!B&C>>>0>=32)?32:C,r=o?0:B,o=c|!B&C>>>0>32,!(C|B)){e=1;break A}}else g=yg(A,g,C),i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,t=(o=c|!B&C>>>0>=32)?32:C,r=o?0:B,o=c|!B&C>>>0>32;Ng(E- -64|0,g,t),e=0}return c=r,aC(a=E+32|0,a,_=t+32|0,c=_>>>0<32?c+1|0:c,c=Q+16|0,E),wC(E+96|0,a),e||Ng(A,E- -64|0,t),XC(E+32|0,64),o&&oC(A+t|0,g+t|0,C-t|0,B-((C>>>0>>0)+r|0)|0,c,1,0,E),XC(E,32),SC(g=E+96|0,A,C,B),nC(g,I),XC(g,256),s=E+352|0,0}function _I(A,I,g,B,Q){var o;return A|=0,I|=0,g|=0,B|=0,s=o=s-480|0,iI(o,Q|=0,32),dC(o,I,g,B),wg(o,o+416|0),I=i[o+444>>2],g=i[o+440>>2],C[A+24|0]=g,C[A+25|0]=g>>>8,C[A+26|0]=g>>>16,C[A+27|0]=g>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[o+436>>2],g=i[o+432>>2],C[A+16|0]=g,C[A+17|0]=g>>>8,C[A+18|0]=g>>>16,C[A+19|0]=g>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[o+428>>2],g=i[o+424>>2],C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[o+420>>2],g=i[o+416>>2],C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,s=o+480|0,0}function cI(A,I,g){A|=0,I|=0;var B,Q=0;return s=B=s+-64|0,FI(B,g|=0,32,0),g=i[B+28>>2],Q=i[B+24>>2],C[I+24|0]=Q,C[I+25|0]=Q>>>8,C[I+26|0]=Q>>>16,C[I+27|0]=Q>>>24,C[I+28|0]=g,C[I+29|0]=g>>>8,C[I+30|0]=g>>>16,C[I+31|0]=g>>>24,g=i[B+20>>2],Q=i[B+16>>2],C[I+16|0]=Q,C[I+17|0]=Q>>>8,C[I+18|0]=Q>>>16,C[I+19|0]=Q>>>24,C[I+20|0]=g,C[I+21|0]=g>>>8,C[I+22|0]=g>>>16,C[I+23|0]=g>>>24,g=i[B+12>>2],Q=i[B+8>>2],C[I+8|0]=Q,C[I+9|0]=Q>>>8,C[I+10|0]=Q>>>16,C[I+11|0]=Q>>>24,C[I+12|0]=g,C[I+13|0]=g>>>8,C[I+14|0]=g>>>16,C[I+15|0]=g>>>24,g=i[B+4>>2],Q=i[B>>2],C[0|I]=Q,C[I+1|0]=Q>>>8,C[I+2|0]=Q>>>16,C[I+3|0]=Q>>>24,C[I+4|0]=g,C[I+5|0]=g>>>8,C[I+6|0]=g>>>16,C[I+7|0]=g>>>24,XC(B,64),A=pC(A,I),s=B- -64|0,0|A}function tI(A,I){var g=0,C=0,B=0,Q=0,o=0,E=0;return I>>>0>4294967168?48:(I>>>0>=4294967168?(i[9404]=48,g=0):(g=0,(I=K(76+(Q=I>>>0<11?16:I+11&-8)|0))&&(g=I-8|0,63&I?(B=(-8&(E=i[(o=I-4|0)>>2]))-(C=(I=((I=(I+63&-64)-8|0)-g>>>0<=15?64:0)+I|0)-g|0)|0,3&E?(i[I+4>>2]=B|1&i[I+4>>2]|2,i[4+(B=I+B|0)>>2]=1|i[B+4>>2],i[o>>2]=C|1&i[o>>2]|2,i[4+(B=g+C|0)>>2]=1|i[B+4>>2],oA(g,C)):(g=i[g>>2],i[I+4>>2]=B,i[I>>2]=g+C)):I=g,3&(g=i[I+4>>2])&&((C=-8&g)>>>0<=Q+16>>>0||(i[I+4>>2]=Q|1&g|2,g=I+Q|0,Q=C-Q|0,i[g+4>>2]=3|Q,i[4+(C=I+C|0)>>2]=1|i[C+4>>2],oA(g,Q))),g=I+8|0)),g?(i[A>>2]=g,0):48)}function rI(A,I,g,C,B,Q,o,E,a,_,c){var t;if(t=bg(A,0,I),1==(0|g)|g>>>0>1)return i[9404]=22,-1;if(!(!g&I>>>0<=15)){if(!(!(Q|a)&_>>>0<2147483649))return i[9404]=22,-1;if(!(!((!a&E>>>0>=3|!!(0|a))&_>>>0>8191)|(0|C)==(0|t)))return 1==(0|c)?(Q=_>>>10|0,s=A=s+-64|0,t&&ag(t,I),(g=K(I))?(i[A+36>>2]=0,i[A+40>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+24>>2]=16,i[A+20>>2]=o,i[A+16>>2]=B,i[A+12>>2]=C,i[A+8>>2]=I,i[A+4>>2]=g,i[A+60>>2]=0,i[A+56>>2]=1,i[A+52>>2]=1,i[A+48>>2]=Q,i[A+44>>2]=E,(C=q(A+4|0,1))|!t||Ng(t,g,I),XC(g,I),BA(g)):C=-22,s=A- -64|0,C?-1:0):(i[9404]=28,-1)}return i[9404]=28,-1}function eI(A,I,g,C,B,Q,i){var o,E,a=0,_=0,c=0;s=o=s-96|0,wA(o,Q,i,0),DC(i=o+32|0,32,0,E=Q+16|0,o),Q=-1;A:{I:if(!fC(g,I,C,B,i)){if(Q=0,!A)break A;g:{if(!(((g=!!(0|B))|!B&C>>>0>I-A>>>0)&A>>>0>>0)&(!B&C>>>0<=A-I>>>0|A>>>0<=I>>>0)){if(!(C|B))break g;g=(Q=!B&C>>>0>=32|!!(0|B))?32:C,a=Q?0:B}else I=yg(A,I,C),g=(Q=g|!B&C>>>0>=32)?32:C,a=Q?0:B;if(Q=a,c=Ng(o- -64|0,I,g),aC(i=o+32|0,i,_=g+32|0,Q=_>>>0<32?Q+1|0:Q,E,o),A=Ng(A,c,g),XC(i,64),Q=0,!B&C>>>0<33)break I;oC(A+g|0,I+g|0,C-g|0,B-(a+(g>>>0>C>>>0)|0)|0,E,1,0,o);break I}aC(A=o+32|0,A,32,0,E,o),XC(A,64)}XC(o,32)}return s=o+96|0,Q}function yI(A,I,g,C,B,Q,o,E,a,_,c){var t;if(t=bg(A,0,I),1==(0|g)|g>>>0>1)return i[9404]=22,-1;if(!(!g&I>>>0<=15)){if(!(!(Q|a)&_>>>0<2147483649))return i[9404]=22,-1;if(!(!(!!(E|a)&_>>>0>8191)|(0|C)==(0|t)))return 2==(0|c)?(Q=_>>>10|0,s=A=s+-64|0,t&&ag(t,I),(g=K(I))?(i[A+36>>2]=0,i[A+40>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+24>>2]=16,i[A+20>>2]=o,i[A+16>>2]=B,i[A+12>>2]=C,i[A+8>>2]=I,i[A+4>>2]=g,i[A+60>>2]=0,i[A+56>>2]=1,i[A+52>>2]=1,i[A+48>>2]=Q,i[A+44>>2]=E,(C=q(A+4|0,2))|!t||Ng(t,g,I),XC(g,I),BA(g)):C=-22,s=A- -64|0,C?-1:0):(i[9404]=28,-1)}return i[9404]=28,-1}function sI(A,I,g,C,B,Q,i){var o,E,a=0,_=0;s=o=s-96|0,yA(o,Q,i,0),Xg(i=o+32|0,32,0,E=Q+16|0,o),Q=-1;A:{I:if(!fC(g,I,C,B,i)){if(Q=0,!A)break A;g:{if(!(((g=!!(0|B))|!B&C>>>0>I-A>>>0)&A>>>0>>0)&(!B&C>>>0<=A-I>>>0|A>>>0<=I>>>0)){if(!(C|B))break g;g=(Q=!B&C>>>0>=32|!!(0|B))?32:C,i=Q?0:B}else I=yg(A,I,C),g=(Q=g|!B&C>>>0>=32)?32:C,i=Q?0:B;if(a=g,_=Ng(o- -64|0,I,g),ug(g=o+32|0,g,Q=a+32|0,Q>>>0<32?i+1|0:i,E,o),g=Ng(A,_,a),Q=0,!B&C>>>0<33)break I;mg(g+a|0,I+a|0,C-a|0,B-(i+(C>>>0>>0)|0)|0,E,1,0,o);break I}ug(A=o+32|0,A,32,0,E,o)}XC(o,32)}return s=o+96|0,Q}function hI(A,I,g,C,B,Q,E,a,_,c){var t,r;return s=t=s-400|0,i[t+4>>2]=0,yA(r=t+16|0,_,c,0),c=o[_+20|0]|o[_+21|0]<<8|o[_+22|0]<<16|o[_+23|0]<<24,i[t+8>>2]=o[_+16|0]|o[_+17|0]<<8|o[_+18|0]<<16|o[_+19|0]<<24,i[t+12>>2]=c,jg(c=t+80|0,64,0,t+4|0,r),wC(_=t+144|0,c),XC(c,64),SC(_,Q,E,a),SC(_,35680,0-E&15,0),SC(_,I,g,C),SC(_,35680,0-g&15,0),i[t+72>>2]=E,i[t+76>>2]=a,SC(_,Q=t+72|0,8,0),i[t+72>>2]=g,i[t+76>>2]=C,SC(_,Q,8,0),nC(_,Q=t+48|0),XC(_,256),_=oI(Q,B),XC(Q,16),A&&(_?(bg(A,0,g),_=-1):(Og(A,I,g,C,t+4|0,t+16|0),_=0)),XC(t+16|0,32),s=t+400|0,_}function DI(A,I,g,B,Q,o){var E,a;if(s=E=s-496|0,mA(a=E+288|0,A,I),mC(a,g,B,0),o)for(A=0,I=0;g=(I=I+1|0)<<24|(65280&I)<<8|I>>>8&65280|I>>>24,C[E+76|0]=g,C[E+77|0]=g>>>8,C[E+78|0]=g>>>16,C[E+79|0]=g>>>24,Ng(g=E+80|0,E+288|0,208),mC(g,E+76|0,4,0),Sg(g,E+32|0),g=i[E+60>>2],i[E+24>>2]=i[E+56>>2],i[E+28>>2]=g,g=i[E+52>>2],i[E+16>>2]=i[E+48>>2],i[E+20>>2]=g,g=i[E+44>>2],i[E+8>>2]=i[E+40>>2],i[E+12>>2]=g,g=i[E+36>>2],i[E>>2]=i[E+32>>2],i[E+4>>2]=g,Ng(g=A+Q|0,E,(A=o-A|0)>>>0>=32?32:A),o>>>0>(A=I<<5)>>>0;);XC(E+288|0,208),s=E+496|0}function fI(A,I,g,B,Q,i){var o,E,a=0;return s=o=s-32|0,a=-1,(E=g>>>0<32)&!B||(Ug(o,32,0,Q,i),fC(I+16|0,I+32|0,g-32|0,B-E|0,o)||(Gg(A,I,g,B,Q,i),C[A+24|0]=0,C[A+25|0]=0,C[A+26|0]=0,C[A+27|0]=0,C[A+28|0]=0,C[A+29|0]=0,C[A+30|0]=0,C[A+31|0]=0,C[A+16|0]=0,C[A+17|0]=0,C[A+18|0]=0,C[A+19|0]=0,C[A+20|0]=0,C[A+21|0]=0,C[A+22|0]=0,C[A+23|0]=0,C[A+8|0]=0,C[A+9|0]=0,C[A+10|0]=0,C[A+11|0]=0,C[A+12|0]=0,C[A+13|0]=0,C[A+14|0]=0,C[A+15|0]=0,C[0|A]=0,C[A+1|0]=0,C[A+2|0]=0,C[A+3|0]=0,C[A+4|0]=0,C[A+5|0]=0,C[A+6|0]=0,C[A+7|0]=0,a=0)),s=o+32|0,a}function pI(A,I,g,C,B,Q,E,a,_,c,t){var r,e,y;return s=r=s-384|0,i[r+4>>2]=0,yA(e=r+16|0,c,t,0),t=o[c+20|0]|o[c+21|0]<<8|o[c+22|0]<<16|o[c+23|0]<<24,i[r+8>>2]=o[c+16|0]|o[c+17|0]<<8|o[c+18|0]<<16|o[c+19|0]<<24,i[r+12>>2]=t,jg(t=r- -64|0,64,0,y=r+4|0,e),wC(c=r+128|0,t),XC(t,64),SC(c,E,a,_),SC(c,35680,0-a&15,0),Og(A,C,B,Q,y,e),SC(c,A,B,Q),SC(c,35680,0-B&15,0),i[r+56>>2]=a,i[r+60>>2]=_,SC(c,A=r+56|0,8,0),i[r+56>>2]=B,i[r+60>>2]=Q,SC(c,A,8,0),nC(c,I),XC(c,256),g&&(i[g>>2]=16,i[g+4>>2]=0),XC(r+16|0,32),s=r+384|0,0}function wI(A,I,g,C,B){var Q,E,a=0;return s=Q=s+-64|0,!g&(E=RI(A))>>>0<128?(i[Q+60>>2]=0,i[Q+52>>2]=0,i[Q+56>>2]=0,i[Q+44>>2]=0,i[Q+48>>2]=0,g=0,E&&(g=E,(1|E)>>>0<65536||(g=E)),!(a=K(g))|!(3&o[a-4|0])||bg(a,0,g),a?(i[Q+36>>2]=0,i[Q+40>>2]=0,i[Q+12>>2]=a,i[Q+20>>2]=a,i[Q+24>>2]=E,i[Q+4>>2]=a,i[Q+16>>2]=E,i[Q+28>>2]=0,i[Q+32>>2]=0,i[Q+8>>2]=E,OA(Q+4|0,A,B)?(i[9404]=28,A=-1):A=i[Q+44>>2]!=(0|I)|i[Q+48>>2]!=(C>>>10|0),BA(a)):A=-1):(i[9404]=28,A=-1),s=Q- -64|0,A}function nI(A){var I,g=0,C=0;if(!A)return-25;if(!i[A>>2])return-1;if(E[A+4>>2]<16)return-2;if(!(i[A+8>>2]|!i[A+12>>2]))return-18;if(g=i[A+20>>2],!i[A+16>>2])return g?-19:-6;if(g>>>0<8)return-6;if(!(i[A+24>>2]|!i[A+28>>2]))return-20;if(!(i[A+32>>2]|!i[A+36>>2]))return-21;if(!(g=i[A+48>>2]))return-16;if(g>>>0>16777215)return-17;if(C=-14,!((I=i[A+44>>2])>>>0<8)){if(I>>>0>2097152)return-15;if(!(g<<3>>>0>I>>>0)){if(!i[A+40>>2])return-12;if(!(A=i[A+52>>2]))return-28;C=A>>>0>16777215?-29:0}}return C}function kI(A,I){var g,C=0,B=0;g=I;A:{I:{g:{if(I&=255){if(3&A)for(;;){if(!(C=o[0|A])|(0|I)==(0|C))break A;if(!(3&(A=A+1|0)))break}if(-2139062144!=(-2139062144&((C=i[A>>2])|16843008-C)))break g;for(B=a(I,16843009);;){if(-2139062144!=(-2139062144&(16843008-(I=C^B)|I)))break g;if(C=i[A+4>>2],A=I=A+4|0,-2139062144!=(-2139062144&(16843008-C|C)))break}break I}A=RI(A)+A|0;break A}I=A}for(;;){if(!(C=o[0|(A=I)]))break A;if(I=A+1|0,(0|C)==(255&g))break}}return o[0|A]==(255&g)?A:0}function FI(A,I,g,C){var B,Q=0;return s=B=s-208|0,i[B+72>>2]=0,i[B+76>>2]=0,Q=i[8591],i[B+8>>2]=i[8590],i[B+12>>2]=Q,Q=i[8593],i[B+16>>2]=i[8592],i[B+20>>2]=Q,Q=i[8595],i[B+24>>2]=i[8594],i[B+28>>2]=Q,Q=i[8597],i[B+32>>2]=i[8596],i[B+36>>2]=Q,Q=i[8599],i[B+40>>2]=i[8598],i[B+44>>2]=Q,Q=i[8601],i[B+48>>2]=i[8600],i[B+52>>2]=Q,Q=i[8603],i[B+56>>2]=i[8602],i[B+60>>2]=Q,i[B+64>>2]=0,i[B+68>>2]=0,Q=i[8589],i[B>>2]=i[8588],i[B+4>>2]=Q,SA(B,I,g,C),j(B,A),s=B+208|0,0}function SI(A){var I=0;return i[64+(A|=0)>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,I=i[8589],i[A>>2]=i[8588],i[A+4>>2]=I,I=i[8591],i[A+8>>2]=i[8590],i[A+12>>2]=I,I=i[8593],i[A+16>>2]=i[8592],i[A+20>>2]=I,I=i[8595],i[A+24>>2]=i[8594],i[A+28>>2]=I,I=i[8597],i[A+32>>2]=i[8596],i[A+36>>2]=I,I=i[8599],i[A+40>>2]=i[8598],i[A+44>>2]=I,I=i[8601],i[A+48>>2]=i[8600],i[A+52>>2]=I,I=i[8603],i[A+56>>2]=i[8602],i[A+60>>2]=I,0}function NI(A){return~((127&~o[A+31|0]|o[A+1|0]&o[A+2|0]&o[A+3|0]&o[A+4|0]&o[A+5|0]&o[A+6|0]&o[A+7|0]&o[A+8|0]&o[A+9|0]&o[A+10|0]&o[A+11|0]&o[A+12|0]&o[A+13|0]&o[A+14|0]&o[A+15|0]&o[A+16|0]&o[A+17|0]&o[A+18|0]&o[A+19|0]&o[A+20|0]&o[A+21|0]&o[A+22|0]&o[A+23|0]&o[A+24|0]&o[A+25|0]&o[A+26|0]&o[A+27|0]&o[A+28|0]&o[A+30|0]&o[A+29|0]^255)-1&236-o[0|A])>>>8&1}function GI(A,I){var g,B=0,Q=0,i=0,E=0;if(C[15+(g=s-16|0)|0]=0,I){if(I>>>0>=4)for(E=-4&I;B=A+Q|0,C[g+15|0]=o[0|B]|o[g+15|0],C[g+15|0]=o[B+1|0]|o[g+15|0],C[g+15|0]=o[B+2|0]|o[g+15|0],C[g+15|0]=o[B+3|0]|o[g+15|0],Q=Q+4|0,(0|E)!=(0|(i=i+4|0)););if(B=3&I)for(I=0;C[g+15|0]=o[A+Q|0]|o[g+15|0],Q=Q+1|0,(0|B)!=(0|(I=I+1|0)););}return o[g+15|0]-1>>>8&1}function MI(A,I,g){var B,Q=0,E=0;if(i[12+(B=s-16|0)>>2]=A,i[B+8>>2]=I,A=0,C[B+7|0]=0,g){if(I=1&g,1!=(0|g))for(E=-2&g,g=0;C[B+7|0]=o[B+7|0]|o[i[B+12>>2]+A|0]^o[i[B+8>>2]+A|0],Q=1|A,C[B+7|0]=o[B+7|0]|o[Q+i[B+12>>2]|0]^o[i[B+8>>2]+Q|0],A=A+2|0,(0|E)!=(0|(g=g+2|0)););I&&(C[B+7|0]=o[B+7|0]|o[i[B+12>>2]+A|0]^o[i[B+8>>2]+A|0])}return(o[B+7|0]-1>>>8&1)-1|0}function KI(A){for(var I=0,g=0,C=0,B=0,Q=0,i=0,E=0,a=0,_=0,c=0;B=(g=o[A+C|0])^o[0|(I=C+2688|0)]|B,Q=g^o[I+192|0]|Q,i=g^o[I+160|0]|i,E=g^o[I+128|0]|E,a=g^o[I+96|0]|a,_=g^o[I- -64|0]|_,c=g^o[I+32|0]|c,31!=(0|(C=C+1|0)););return((255&((I=127^(A=127&o[A+31|0]))|Q))-1|(255&(I|i))-1|(255&(I|E))-1|(255&(122^A|a))-1|(255&(5^A|_))-1|(255&(A|c))-1|(255&(A|B))-1)>>>8&1}function UI(A,I,g){var C=0,B=0,Q=0,i=0;return B=31&(Q=i=63&g),Q=Q>>>0>=32?-1>>>B|0:(C=-1>>>B|0)|(1<>>0>=32?(C=Q<>>32-B|C<>>0>=32?(C=-1<>>32-C,A&=g,I&=C,C=31&B,B>>>0>=32?(g=0,A=I>>>C|0):(g=I>>>C|0,A=((1<>>C),f=g|Q,A|i}function bI(A,I,g,C,B,Q){A|=0,I|=0,g|=0;var o=0,E=0;A:I:{g:{if(!(!(B|=0)&(C|=0)>>>0<64||(E=1+(B=B-1|0)|0,o=B,!(C=(B=C+-64|0)>>>0<4294967232?E:o)&B>>>0>4294967231|C))){if(!U(o=g,g=g- -64|0,B,C,Q|=0,0))break g;A&&bg(A,0,B)}if(C=-1,!I)break I;i[I>>2]=0,i[I+4>>2]=0,C=-1;break A}I&&(i[I>>2]=B,i[I+4>>2]=C),C=0,A&&yg(A,g,B)}return 0|C}function HI(A,I,g,C,B,Q,o,E,a,_){var c,t,r;return s=c=s-352|0,jg(r=c+32|0,64,0,a,_),wC(t=c+96|0,r),XC(r,64),SC(t,Q,o,E),SC(t,35648,0-o&15,0),SC(t,I,g,C),SC(t,35648,0-g&15,0),i[c+24>>2]=o,i[c+28>>2]=E,SC(t,Q=c+24|0,8,0),i[c+24>>2]=g,i[c+28>>2]=C,SC(t,Q,8,0),nC(t,c),XC(t,256),Q=oI(c,B),XC(c,16),A&&(Q?(bg(A,0,g),Q=-1):(Cg(A,I,g,C,a,1,_),Q=0)),s=c+352|0,Q}function YI(A,I,g,C,B,Q){var E,a;return A|=0,I|=0,g|=0,C|=0,Q|=0,s=E=s-32|0,a=o[0|(B|=0)]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,B=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[E+24>>2]=0,i[E+28>>2]=0,i[E+16>>2]=a,i[E+20>>2]=B,i[E+8>>2]=0,i[E+12>>2]=0,i[E>>2]=g,i[E+4>>2]=C,I-65>>>0<=4294967246?(i[9404]=28,A=-1):A=QA(A,I,0,0,0,Q,32,E,E+16|0),s=E+32|0,0|A}function JI(A,I,g,C,B){var Q,o;return A|=0,I|=0,g|=0,C|=0,s=Q=s-512|0,iI(o=Q+32|0,B|=0,32),dC(o,I,g,C),wg(o,Q+448|0),I=i[Q+476>>2],i[Q+24>>2]=i[Q+472>>2],i[Q+28>>2]=I,I=i[Q+468>>2],i[Q+16>>2]=i[Q+464>>2],i[Q+20>>2]=I,I=i[Q+460>>2],i[Q+8>>2]=i[Q+456>>2],i[Q+12>>2]=I,I=i[Q+452>>2],i[Q>>2]=i[Q+448>>2],i[Q+4>>2]=I,I=NC(A,Q),g=MI(Q,A,32),s=Q+512|0,((0|A)==(0|Q)?-1:I)|g}function dI(A,I,g,C,B,Q,o,E,a,_){var c,t,r;return s=c=s-352|0,Xg(r=c+32|0,64,0,a,_),wC(t=c+96|0,r),XC(r,64),SC(t,Q,o,E),i[c+24>>2]=o,i[c+28>>2]=E,SC(t,Q=c+24|0,8,0),SC(t,I,g,C),i[c+24>>2]=g,i[c+28>>2]=C,SC(t,Q,8,0),nC(t,c),XC(t,256),Q=oI(c,B),XC(c,16),A&&(Q?(bg(A,0,g),Q=-1):(mg(A,I,g,C,a,1,0,_),Q=0)),s=c+352|0,Q}function mI(A,I,g,C,B,Q,o,E,a,_,c){var t,r,e;return s=t=s-336|0,jg(e=t+16|0,64,0,_,c),wC(r=t+80|0,e),XC(e,64),SC(r,o,E,a),SC(r,35648,0-E&15,0),Cg(A,C,B,Q,_,1,c),SC(r,A,B,Q),SC(r,35648,0-B&15,0),i[t+8>>2]=E,i[t+12>>2]=a,SC(r,A=t+8|0,8,0),i[t+8>>2]=B,i[t+12>>2]=Q,SC(r,A,8,0),nC(r,I),XC(r,256),g&&(i[g>>2]=16,i[g+4>>2]=0),s=t+336|0,0}function lI(A,I){var g,C=0,B=0,Q=0,E=0,_=0;A:if(!(((g=o[0|A])-58&255)>>>0<246)){for(C=g,B=A;;){if(E=B,Q>>>0>429496729)break A;if((C=(255&C)-48|0)>>>0>~(Q=a(Q,10))>>>0)break A;if(Q=Q+C|0,!(((C=o[0|(B=B+1|0)])-58&255)>>>0>245))break}48==(0|g)&(0|A)!=(0|E)|(0|A)==(0|B)||(i[I>>2]=Q,_=B)}return _}function uI(A){var I=0,g=0,C=0,B=0;I=65,g=1024;A:{I:{if((0|(C=255&A))!=o[1024])for(C=a(C,16843009);;){if(-2139062144!=(-2139062144&((B=C^i[g>>2])|16843008-B)))break I;if(g=g+4|0,!((I=I-4|0)>>>0>3))break}if(!I)break A}for(A&=255;;){if((0|A)==o[0|g])return g;if(g=g+1|0,!(I=I-1|0))break}}return 0}function xI(A,I,g,C,B,Q,o,E,a,_,c){var t,r,e;return s=t=s-336|0,Xg(e=t+16|0,64,0,_,c),wC(r=t+80|0,e),XC(e,64),SC(r,o,E,a),i[t+8>>2]=E,i[t+12>>2]=a,SC(r,o=t+8|0,8,0),mg(A,C,B,Q,_,1,0,c),SC(r,A,B,Q),i[t+8>>2]=B,i[t+12>>2]=Q,SC(r,o,8,0),nC(r,I),XC(r,256),g&&(i[g>>2]=16,i[g+4>>2]=0),s=t+336|0,0}function vI(A,I,g,B,Q,i){return!B&g>>>0>=32|B?(Gg(A,I,g,B,Q,i),hC(A+16|0,A+32|0,g-32|0,B-(g>>>0<32)|0,A),C[A+8|0]=0,C[A+9|0]=0,C[A+10|0]=0,C[A+11|0]=0,C[A+12|0]=0,C[A+13|0]=0,C[A+14|0]=0,C[A+15|0]=0,C[0|A]=0,C[A+1|0]=0,C[A+2|0]=0,C[A+3|0]=0,C[A+4|0]=0,C[A+5|0]=0,C[A+6|0]=0,C[A+7|0]=0,A=0):A=-1,A}function RI(A){var I=0,g=0,C=0;A:{I:if(3&(I=A)){if(!o[0|I])return 0;for(;;){if(!(3&(I=I+1|0)))break I;if(!o[0|I])break}break A}for(;g=I,I=I+4|0,-2139062144==(-2139062144&((C=i[g>>2])|16843008-C)););for(;g=(I=g)+1|0,o[0|I];);}return I-A|0}function LI(A,I,g,C,B,Q){I|=0,B|=0,Q|=0;var o,E=0;return s=o=s-16|0,w(A|=0,o+8|0,yg(A- -64|0,g|=0,C|=0),C,B,Q,0),i[o+12>>2]|64!=i[o+8>>2]?(I&&(i[I>>2]=0,i[I+4>>2]=0),bg(A,0,C- -64|0),E=-1):I&&(i[I>>2]=C- -64,i[I+4>>2]=B-((C>>>0<4294967232)-1|0)),s=o+16|0,0|E}function PI(A,I){var g,C=0,B=0,Q=0,E=0;return(g=uI(o[0|I]))&&(C=uI(o[I+1|0]))&&(B=uI(o[I+2|0]))&&(Q=uI(o[I+3|0]))&&(E=uI(o[I+4|0]))?(i[A>>2]=g-1024|C-1024<<6|B-1024<<12|Q-1024<<18|E-1024<<24,I+5|0):(i[A>>2]=0,0)}function qI(A,I,g){var C;for(i[12+(C=s-16|0)>>2]=A,i[C+8>>2]=I,A=0,i[C+4>>2]=0;i[C+4>>2]=i[C+4>>2]|o[i[C+12>>2]+A|0]^o[i[C+8>>2]+A|0],I=1|A,i[C+4>>2]=i[C+4>>2]|o[I+i[C+12>>2]|0]^o[I+i[C+8>>2]|0],(0|g)!=(0|(A=A+2|0)););return(i[C+4>>2]-1>>>8&1)-1|0}function zI(A,I,g,C,B,Q,o,E,a,_,c){var t=0,r=0,e=0;return r=-1,(t=C>>>0<32)&!B||!(t=B-t|0)&(e=C-32|0)>>>0>4294967263|t|!E&o>>>0>4294967263|E||(r=0|pB[i[c>>2]](A,g,e,(g+C|0)-32|0,32,Q,o,a,_)),I&&(i[I>>2]=r?0:C-32|0,i[I+4>>2]=r?0:B-(C>>>0<32)|0),r}function jI(A,I){var g,C=0,B=0,Q=0;s=g=s-896|0,fA(C=g+848|0,I),fA(B=g+800|0,I+32|0),$(Q=g+320|0,C),$(I=g+160|0,B),$A(C=g+640|0,I),sA(I=g+480|0,Q,C),b(g,I,C=g+600|0),b(g+40|0,B=g+520|0,Q=g+560|0),b(g+80|0,Q,C),b(g+120|0,I,B),W(A,g),s=g+896|0}function XI(A){var I=0,g=0,B=0,Q=0,i=0;for(I=1;g=(B=I)+o[0|(I=A+Q|0)]|0,C[0|I]=g,g=o[I+1|0]+(g>>>8|0)|0,C[I+1|0]=g,g=o[I+2|0]+(g>>>8|0)|0,C[I+2|0]=g,B=I,I=o[I+3|0]+(g>>>8|0)|0,C[B+3|0]=I,I=I>>>8|0,Q=Q+4|0,4!=(0|(i=i+4|0)););}function OI(A,I,g,C,B,Q,o){var E;return s=E=s-16|0,A=bg(A,0,128),!(C|Q)&o>>>0<2147483649?(!Q&B>>>0>=3|!!(0|Q))&o>>>0>8191?(ag(E,16),A=iA(B,o>>>10|0,I,g,E,A,1)?-1:0):(i[9404]=28,A=-1):(i[9404]=22,A=-1),s=E+16|0,A}function WI(A,I){var g=0;4&I&&((I=i[A>>2])&&XC(i[I+4>>2],i[A+16>>2]<<10),(I=i[A+4>>2])&&XC(I,i[A+20>>2]<<3)),BA(i[A+4>>2]),i[A+4>>2]=0,(I=i[A>>2])&&(g=i[I>>2])&&BA(g),BA(I),i[A>>2]=0}function VI(A,I,g,C,B,o,E,a,_,c,t){return!B&C>>>0>4294967263|!!(0|B)|!a&E>>>0>=4294967264|!!(0|a)?(rC(),Q()):(A=0|pB[i[t>>2]](A,A+C|0,32,g,C,o,E,_,c),I&&(C=(g=C+32|0)>>>0<32?B+1|0:B,i[I>>2]=A?0:g,i[I+4>>2]=A?0:C)),A}function ZI(A){var I=0,g=0,C=0,B=0,Q=0,i=0,E=0,a=0;for(I=32,g=1;a|=(B=o[(C=I-2|0)+A|0])-(Q=o[C+2912|0])>>8&(I=((i=o[2912+(I=I-1|0)|0])^(E=o[A+I|0]))-1>>8&g)|E-i>>8&g,g=I&(B^Q)-1>>8,I=C;);return!!(255&a)}function TI(A,I,g,C,B,Q,o){var E;return s=E=s-16|0,A=bg(A,0,128),!(C|Q)&o>>>0<2147483649?!!(B|Q)&o>>>0>8191?(ag(E,16),A=iA(B,o>>>10|0,I,g,E,A,2)?-1:0):(i[9404]=28,A=-1):(i[9404]=22,A=-1),s=E+16|0,A}function $I(A){var I=0;return i[32+(A|=0)>>2]=0,i[A+36>>2]=0,I=i[8809],i[A>>2]=i[8808],i[A+4>>2]=I,I=i[8811],i[A+8>>2]=i[8810],i[A+12>>2]=I,I=i[8813],i[A+16>>2]=i[8812],i[A+20>>2]=I,I=i[8815],i[A+24>>2]=i[8814],i[A+28>>2]=I,0}function Ag(A,I,g,C,B,Q,i){var o,E,a=0,_=0;return s=o=s+-64|0,a=-1,(E=g>>>0<16)&!C||CI(_=o+32|0,i,Q)||yA(o,35584,_,0)||(a=sI(A,I+16|0,I,g-16|0,C-E|0,B,o),XC(o,32)),s=o- -64|0,a}function Ig(A,I,g,C){var B,Q,i,o,E=0,_=0;return o=a(E=g>>>16|0,_=A>>>16|0),E=(65535&(_=((i=a(B=65535&g,Q=65535&A))>>>16|0)+a(_,B)|0))+a(E,Q)|0,f=(a(I,g)+o|0)+a(A,C)+(_>>>16)+(E>>>16)|0,65535&i|E<<16}function gg(A,I,g){var C=0,B=0;if(!g)return 0;if(C=o[0|A])A:{for(;;){if((0|(B=o[0|I]))!=(0|C)|!B)break A;if(!(g=g-1|0))break A;if(I=I+1|0,C=o[A+1|0],A=A+1|0,!C)break}C=0}else C=0;return C-o[0|I]|0}function Cg(A,I,g,C,B,o,E){var a=0,_=0;if(a=C,!(1==(((a=(_=g+63|0)>>>0<63?a+1|0:a)>>>6|0)+!!(0|(a=(63&a)<<26|_>>>6))|0)&o>>>0>(_=0-a|0)>>>0|1==(0|C)|C>>>0>1))return 0|pB[i[9199]](A,I,g,C,B,o,E);rC(),Q()}function Bg(A,I,g,C,B,Q,i){var o;return A|=0,I|=0,g|=0,C|=0,B|=0,s=o=s+-64|0,CI(o+32|0,i|=0,Q|=0)?Q=-1:(Q=-1,wA(o,35664,o+32|0,0)||(Q=vI(A,I,g,C,B,o),XC(o,32))),s=o- -64|0,0|Q}function Qg(A,I,g,C,B,Q,i){var o;return A|=0,I|=0,g|=0,C|=0,B|=0,s=o=s+-64|0,CI(o+32|0,i|=0,Q|=0)?Q=-1:(Q=-1,wA(o,35664,o+32|0,0)||(Q=fI(A,I,g,C,B,o),XC(o,32))),s=o- -64|0,0|Q}function ig(A,I,g,C,B,i,o){var E;if(s=E=s+-64|0,!C&g>>>0<4294967280)return CI(E+32|0,o,i)?o=-1:(o=-1,yA(E,35584,E+32|0,0)||(o=EI(A+16|0,A,I,g,C,B,E),XC(E,32))),s=E- -64|0,o;rC(),Q()}function og(A,I){for(var g=0,B=0,Q=0,i=0,E=0;B=A+Q|0,g=o[I+Q|0]+(o[0|B]+g|0)|0,C[0|B]=g,i=(B=1|Q)+A|0,g=o[I+B|0]+(o[0|i]+(g>>>8|0)|0)|0,C[0|i]=g,g=g>>>8|0,Q=Q+2|0,32!=(0|(E=E+2|0)););}function Eg(A,I){for(var g=0,B=0,Q=0,i=0,E=0;g=(o[0|(B=A+Q|0)]-o[I+Q|0]|0)+g|0,C[0|B]=g,g=(o[0|(i=(B=1|Q)+A|0)]-o[I+B|0]|0)+(g>>8)|0,C[0|i]=g,g>>=8,Q=Q+2|0,64!=(0|(E=E+2|0)););}function ag(A,I){A|=0;var g,B=0,Q=0,i=0;if(s=g=s-16|0,I|=0)for(;C[g+15|0]=0,Q=A+B|0,i=0|t(36800,g+15|0,0),C[0|Q]=i,(0|(B=B+1|0))!=(0|I););s=g+16|0}function _g(A,I,g,C,B,Q,i){var o,E,a=0;return s=o=s-32|0,a=-1,(E=g>>>0<16)&!C||cC(o,Q,i)||(a=eI(A,I+16|0,I,g-16|0,C-E|0,B,o),XC(o,32)),s=o+32|0,a}function cg(A){var I,g;A:{if(!((A=(I=i[8924])+(g=A+7&-8)|0)>>>0<=I>>>0&&g)){if(A>>>0<=wB()<<16>>>0)break A;if(0|y(0|A))break A}return i[9404]=48,-1}return i[8924]=A,I}function tg(A,I){var g,B,Q;s=g=s-176|0,LA(B=g+96|0,I+80|0),b(Q=g+48|0,I,B),b(g,I+40|0,B),QI(A,g),QI(g+144|0,Q),C[A+31|0]=o[A+31|0]^o[g+144|0]<<7,s=g+176|0}function rg(A,I,g,C,B,Q,i,o,E,a){var _,c,t=0,r=0,e=0;return s=_=s-16|0,t=-1,_C(c=_+4|0)||(r=-1,e=_A(c,A,I,g,C,B,Q,i,o,E,a),t=Rg(c)?r:e),s=_+16|0,t}function eg(A,I,g,C,B,o,E,a,_,c,t,r){return g&&(i[g>>2]=32,i[g+4>>2]=0),!_&a>>>0<4294967264&!o&B>>>0<=4294967263||(rC(),Q()),0|pB[i[r>>2]](A,I,32,C,B,E,a,c,t)}function yg(A,I,g){var B=0;if(A>>>0>>0)return Ng(A,I,g);if(g)for(B=A+g|0,I=I+g|0;I=I-1|0,C[0|(B=B-1|0)]=o[0|I],g=g-1|0;);return A}function sg(A,I,g,C,B,i,o){var E,a=0;if(s=E=s-32|0,!C&g>>>0<4294967280)return a=-1,cC(E,i,o)||(a=aI(A+16|0,A,I,g,C,B,E),XC(E,32)),s=E+32|0,a;rC(),Q()}function hg(A,I,g,C,B,Q){return I|=0,0|(!(C|=0)&(g|=0)>>>0>=16|C?eI(A|=0,I+16|0,I,g-16|0,C-(g>>>0<16)|0,B|=0,Q|=0):-1)}function Dg(A,I,g,C,B,Q){return I|=0,0|(!(C|=0)&(g|=0)>>>0>=16|C?sI(A|=0,I+16|0,I,g-16|0,C-(g>>>0<16)|0,B|=0,Q|=0):-1)}function fg(A,I,g,C,B,Q,o,E,a,_,c){return!C&g>>>0>4294967263|C|!E&o>>>0>4294967263|E?-1:0|pB[i[c>>2]](A,I,g,B,32,Q,o,a,_)}function pg(A,I,g){A|=0;var C,B=0;return s=C=s-32|0,B=-1,CI(C,g|=0,I|=0)||(B=wA(A,35664,C,0)),s=C+32|0,0|B}function wg(A,I){var g;return I|=0,s=g=s+-64|0,j(A|=0,g),SA(A=A+208|0,g,64,0),j(A,I),XC(g,64),s=g- -64|0,0}function ng(A,I,g,C){var B;return I|=0,g|=0,C|=0,s=B=s+-64|0,j(A|=0,B),A=w(I,g,B,64,0,C,1),s=B- -64|0,0|A}function kg(A,I){var g,C,B;b(A,I,g=I+120|0),b(A+40|0,C=I+40|0,B=I+80|0),b(A+80|0,B,g),b(A+120|0,I,C)}function Fg(A,I,g,C,B,Q,i){return 0|TI(A|=0,I|=0,(A=0)|(g|=0),C|=0,A|(B|=0),Q|=0,i|=0)}function Sg(A,I){var g;return I|=0,s=g=s-32|0,JA(A|=0,g),UA(A=A+104|0,g,32,0),JA(A,I),XC(g,32),s=g+32|0,0}function Ng(A,I,g){var B=0;if(g)for(B=A;C[0|B]=o[0|I],B=B+1|0,I=I+1|0,g=g-1|0;);return A}function Gg(A,I,g,C,B,Q){var i;return s=i=s-32|0,wA(i,B,Q,0),A=oC(A,I,g,C,B+16|0,0,0,i),XC(i,32),s=i+32|0,A}function Mg(A){for(A|=0;ag(A,32),C[A+31|0]=31&o[A+31|0],!ZI(A)||GI(A,32););}function Kg(A,I,g){var C;return I|=0,g|=0,s=C=s+-64|0,j(A|=0,C),A=U(I,C,64,0,g,1),s=C- -64|0,0|A}function Ug(A,I,g,C,B){var Q;return s=Q=s-32|0,wA(Q,C,B,0),A=DC(A,I,g,C+16|0,Q),XC(Q,32),s=Q+32|0,A}function bg(A,I,g){var B=0;if(g)for(B=A;C[0|B]=I,B=B+1|0,g=g-1|0;);return A}function Hg(A,I,g){return A|=0,I|=0,(g|=0)>>>0>=256&&(r(1366,1279,107,1123),Q()),0|AA(A,I,255&g)}function Yg(A,I,g,C,B,Q,i){return 0|aI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function Jg(A,I,g,C,B,Q,i){return 0|eI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function dg(A,I,g,C,B,Q,i){return 0|EI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function mg(A,I,g,C,B,o,E,a){return 1==(0|C)|C>>>0>1&&(rC(),Q()),0|pB[i[9198]](A,I,g,C,B,o,E,a)}function lg(A,I,g,C,B,Q,i){return 0|sI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function ug(A,I,g,C,B,o){return 1==(0|C)|C>>>0>1&&(rC(),Q()),0|pB[i[9198]](A,I,g,C,B,0,0,o)}function xg(A,I,g,C,B,o){return 1==(0|C)|C>>>0>1&&(rC(),Q()),0|pB[i[9199]](A,I,g,C,B,0,o)}function vg(A,I,g,C,B,Q){return w(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,0),0}function Rg(A){var I;return(I=i[A>>2])&&BA(I),i[A+8>>2]=0,i[A>>2]=0,i[A+4>>2]=0,0}function Lg(A,I){var g=0;return(-1>>>(g=31&I)&A)<>>A}function Pg(A,I,g,C,B,Q){return 0|vI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)}function qg(A,I,g,C,B,Q){return 0|fI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)}function zg(A,I,g,C,B,Q){return 0|Gg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)}function jg(A,I,g,C,B){return 1==(0|g)|g>>>0>1&&(rC(),Q()),0|pB[i[9197]](A,I,g,C,B)}function Xg(A,I,g,C,B){return 1==(0|g)|g>>>0>1&&(rC(),Q()),0|pB[i[9196]](A,I,g,C,B)}function Og(A,I,g,C,B,o){1==(0|C)|C>>>0>1&&(rC(),Q()),pB[i[9199]](A,I,g,C,B,1,o)}function Wg(A,I,g,C,B){return 0|U(A|=0,I|=0,g|=0,C|=0,B|=0,0)}function Vg(A,I,g,C,B){return 0|hC(A|=0,I|=0,g|=0,C|=0,B|=0)}function Zg(A,I,g,C,B){return 0|fC(A|=0,I|=0,g|=0,C|=0,B|=0)}function Tg(A,I,g,C,B){return 0|Ug(A|=0,I|=0,g|=0,C|=0,B|=0)}function $g(){var A;s=A=s-16|0,C[A+15|0]=0,t(36836,A+15|0,0),s=A+16|0}function AC(A,I,g,C){return CA(A|=0,I|=0,g|=0,C|=0,20),0}function IC(A,I,g,C){return CA(A|=0,I|=0,g|=0,C|=0,12),0}function gC(A,I,g,C){return CA(A|=0,I|=0,g|=0,C|=0,8),0}function CC(A,I,g,C){return 0|FI(A|=0,I|=0,g|=0,C|=0)}function BC(A,I,g,C){return 0|SC(A|=0,I|=0,g|=0,C|=0)}function QC(A,I,g,C){return 0|SA(A|=0,I|=0,g|=0,C|=0)}function iC(A,I,g,C){return 0|eA(A|=0,I|=0,g|=0,C|=0)}function oC(A,I,g,C,B,Q,o,E){return 0|pB[i[8933]](A,I,g,C,B,Q,o,E)}function EC(A,I,g,C){return 0|dC(A|=0,I|=0,g|=0,C|=0)}function aC(A,I,g,C,B,Q){return 0|pB[i[8933]](A,I,g,C,B,0,0,Q)}function _C(A){return i[A+8>>2]=0,i[A>>2]=0,i[A+4>>2]=0,0}function cC(A,I,g){return 0|pg(A|=0,I|=0,g|=0)}function tC(A,I,g){return 0|CI(A|=0,I|=0,g|=0)}function rC(){var A;(A=i[9538])&&pB[0|A](),DB(),Q()}function eC(A,I,g){return 0|Hg(A|=0,I|=0,g|=0)}function yC(A,I,g){return 0|iI(A|=0,I|=0,g|=0)}function sC(A,I){return A|=0,ag(I|=0,32),0|pC(A,I)}function hC(A,I,g,C,B){return 0|pB[i[8925]](A,I,g,C,B)}function DC(A,I,g,C,B){return 0|pB[i[8932]](A,I,g,C,B)}function fC(A,I,g,C,B){return 0|pB[i[8926]](A,I,g,C,B)}function pC(A,I){return A|=0,I|=0,0|pB[i[8931]](A,I)}function wC(A,I){return A|=0,I|=0,0|pB[i[8927]](A,I)}function nC(A,I){return A|=0,I|=0,0|pB[i[8929]](A,I)}function kC(A,I,g,C,B,Q,i){return lA(A,I,g,C,B,Q,i)}function FC(A){return A?31-_(A-1^A)|0:32}function SC(A,I,g,C){return 0|pB[i[8928]](A,I,g,C)}function NC(A,I){return 0|qI(A|=0,I|=0,32)}function GC(A,I){return 0|qI(A|=0,I|=0,64)}function MC(A,I,g){n(A|=0,I|=0,g|=0)}function KC(A,I){return 0|pC(A|=0,I|=0)}function UC(A,I){return 0|sC(A|=0,I|=0)}function bC(A,I,g,C){return BI(A,I,g,C,1)}function HC(A,I,g,C){return wI(A,I,g,C,1)}function YC(A,I,g,C){return wI(A,I,g,C,2)}function JC(A,I,g,C){return BI(A,I,g,C,2)}function dC(A,I,g,C){return SA(A,I,g,C),0}function mC(A,I,g,C){return UA(A,I,g,C),0}function lC(A,I,g,C){return WA(A,I,g,C)}function uC(A){return SI(A|=0),0}function xC(){return-2147483648}function vC(){return 1073741824}function RC(){return 268435456}function LC(){return 33554432}function PC(A){ag(A|=0,32)}function qC(){return 67108864}function zC(A){ag(A|=0,16)}function jC(){return 16777216}function XC(A,I){bg(A,0,I)}function OC(){return 1564}function WC(){return 1338}function VC(){return 8192}function ZC(){return 384}function TC(){return 256}function $C(){return 416}function AB(){return 128}function IB(){return 208}function gB(){return 64}function CB(){return 16}function BB(){return 32}function QB(){return-65}function iB(){return-33}function oB(){return 48}function EB(){return-17}function aB(){return 12}function _B(){return 24}function cB(){return-1}function tB(){return 2}function rB(){return 3}function eB(){return 8}function yB(){return 1}function sB(){return 4}function hB(){return 0}function DB(){e(),Q()}B(I=o,1024,\"Li8wMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5egBqcwByYW5kb21ieXRlcwBiNjRfcG9zIDw9IGI2NF9sZW4AY3J5cHRvX2dlbmVyaWNoYXNoX2JsYWtlMmJfZmluYWwAYXJnb24yaWQsYXJnb24yaQAkYXJnb24yaQAkYXJnb24yaWQAcmFuZG9tYnl0ZXMvcmFuZG9tYnl0ZXMuYwBzb2RpdW0vY29kZWNzLmMAY3J5cHRvX2dlbmVyaWNoYXNoL2JsYWtlMmIvcmVmL2JsYWtlMmItcmVmLmMAY3J5cHRvX2dlbmVyaWNoYXNoL2JsYWtlMmIvcmVmL2dlbmVyaWNoYXNoX2JsYWtlMmIuYwB4MjU1MTlibGFrZTJiAGJ1Zl9sZW4gPD0gU0laRV9NQVgAb3V0bGVuIDw9IFVJTlQ4X01BWABTLT5idWZsZW4gPD0gQkxBS0UyQl9CTE9DS0JZVEVTACRhcmdvbjJpJHY9ACRhcmdvbjJpZCR2PQBjdXJ2ZTI1NTE5AGVkMjU1MTkAaG1hY3NoYTUxMjI1NgBjdXJ2ZTI1NTE5eHNhbHNhMjBwb2x5MTMwNQBzb2RpdW1fYmluMmJhc2U2NABzaXBoYXNoMjQAc2hhNTEyAHhzYWxzYTIwADEuMC4yMAAkYXJnb24yaSQAJGFyZ29uMmlkJAAkNyQAAAAAAAC2eFn/hXLTAL1uFf8PCmoAKcABAJjoef+8PKD/mXHO/wC34v60DUj/AAAAAAAAAACwoA7+08mG/54YjwB/aTUAYAy9AKfX+/+fTID+amXh/x78BACSDK4=\"),B(I,1680,\"WfGy/grlpv973Sr+HhTUAFKAAwAw0fMAd3lA/zLjnP8AbsUBZxuQ\"),B(I,1728,\"hTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/L2Oo/qrimf9ms9gA4o16/3pCmf629YYA4+QZAdY56//YrTj/tefSAHeAnf+BX4j/bn4zAAKpt/8HgmL+RbBe/3QE4wHZ8pH/yq0fAWkBJ/8ur0UA5C86/9fgRf7POEX/EP6L/xfP1P/KFH7/X9Vg/wmwIQDIBc//8SqA/iMhwP/45cQBgRF4APtnl/8HNHD/jDhC/yji9f/ZRiX+rNYJ/0hDhgGSwNb/LCZwAES4S//OWvsAleuNALWqOgB09O8AXJ0CAGatYgDpiWABfzHLAAWblAAXlAn/03oMACKGGv/bzIgAhggp/+BTK/5VGfcAbX8A/qmIMADud9v/563VAM4S/v4Iugf/fgkHAW8qSABvNOz+YD+NAJO/f/7NTsD/DmrtAbvbTACv87v+aVmtAFUZWQGi85QAAnbR/iGeCQCLoy7/XUYoAGwqjv5v/I7/m9+QADPlp/9J/Jv/XnQM/5ig2v+c7iX/s+rP/8UAs/+apI0A4cRoAAojGf7R1PL/Yf3e/rhl5QDeEn8BpIiH/x7PjP6SYfMAgcAa/slUIf9vCk7/k1Gy/wQEGACh7tf/Bo0hADXXDv8ptdD/54udALPL3f//uXEAveKs/3FC1v/KPi3/ZkAI/06uEP6FdUT/\"),B(I,2720,\"AQ==\"),B(I,2752,\"JuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQ=\"),B(I,2943,\"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\"),B(I,33964,\"AQAAAHbBXwBlcAL/UPyh/vJqxv+FBrIA5N9wAN/uVf4z8xoAPiuL/stBCg==\"),B(I,34016,\"M03tAJGqVv82JjP/8YBl/yl5Sv/sTpsAqZdp/pwpSADCZq//zqJl/wAAAAAAAAAAGy57ARKo/f/Tr5f+w9tgADh2vv7+0fX/mWR+/uiBFf81uPL/x6Td\"),B(I,34144,\"AQ==\"),B(I,34176,\"4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f0xpYnNvZGl1bURSRwAAAAAIybzzZ+YJajunyoSFrme7K/iU/nLzbjzxNh1fOvVPpdGC5q1/Ug5RH2w+K4xoBZtrvUH7q9mDH3khfhMZzeBbIq4o15gvikLNZe8jkUQ3cS87TezP+8C1vNuJgaXbtek4tUjzW8JWORnQBbbxEfFZm08Zr6SCP5IYgW3a1V4cq0ICA6OYqgfYvm9wRQFbgxKMsuROvoUxJOK0/9XDfQxVb4l78nRdvnKxlhY7/rHegDUSxyWnBtyblCZpz3Txm8HSSvGewWmb5OMlTziGR77vtdWMi8adwQ9lnKx3zKEMJHUCK1lvLOktg+SmbqqEdErU+0G93KmwXLVTEYPaiPl2q99m7lJRPpgQMrQtbcYxqD8h+5jIJwOw5A7vvsd/Wb/Cj6g98wvgxiWnCpNHkafVb4ID4FFjygZwbg4KZykpFPwv0kaFCrcnJskmXDghGy7tKsRa/G0sTd+zlZ0TDThT3mOvi1RzCmWosnc8uwpqduau7UcuycKBOzWCFIUscpJkA/FMoei/ogEwQrxLZhqokZf40HCLS8IwvlQGo1FsxxhS79YZ6JLREKllVSQGmdYqIHFXhTUO9LjRuzJwoGoQyNDSuBbBpBlTq0FRCGw3Hpnrjt9Md0gnqEib4bW8sDRjWsnFswwcOcuKQeNKqthOc+Njd0/KnFujuLLW828uaPyy713ugo90YC8XQ29jpXhyq/ChFHjIhOw5ZBoIAseMKB5jI/r/vpDpvYLe62xQpBV5xrL3o/m+K1Ny4/J4ccacYSbqzj4nygfCwCHHuIbRHuvgzdZ92up40W7uf0999bpvF3KqZ/AGppjIosV9YwquDfm+BJg/ERtHHBM1C3EbhH0EI/V32yiTJMdAe6vKMry+yRUKvp48TA0QnMRnHUO2Qj7LvtTFTCp+ZfycKX9Z7PrWOqtvy18XWEdKjBlEbIA=\"),B(I,35184,\"7dP1XBpjEljWnPei3vneFA==\"),B(I,35215,\"EA==\"),B(I,35232,\"Z+YJaoWuZ7ty8248OvVPpX9SDlGMaAWbq9mDHxnN4FuYL4pCkUQ3cc/7wLWl27XpW8JWOfER8Vmkgj+S1V4cq5iqB9gBW4MSvoUxJMN9DFV0Xb5y/rHegKcG3Jt08ZvBwWmb5IZHvu/GncEPzKEMJG8s6S2qhHRK3KmwXNqI+XZSUT6YbcYxqMgnA7DHf1m/8wvgxkeRp9VRY8oGZykpFIUKtyc4IRsu/G0sTRMNOFNUcwpluwpqdi7JwoGFLHKSoei/oktmGqhwi0vCo1FsxxnoktEkBpnWhTUO9HCgahAWwaQZCGw3Hkx3SCe1vLA0swwcOUqq2E5Pypxb828uaO6Cj3RvY6V4FHjIhAgCx4z6/76Q62xQpPej+b7yeHHGgA==\"),B(I,35600,\"U2lnRWQyNTUxOSBubyBFZDI1NTE5IGNvbGxpc2lvbnMB\"),B(I,35696,\"EJUBAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQ==\"),B(I,35744,\"xmNjpfh8fITud3eZ9nt7jf/y8g3Wa2u93m9vsZHFxVRgMDBQAgEBA85nZ6lWKyt95/7+GbXX12JNq6vm7HZ2mo/KykUfgoKdicnJQPp9fYfv+voVsllZ645HR8n78PALQa2t7LPU1GdfoqL9Ra+v6iOcnL9TpKT35HJylpvAwFt1t7fC4f39HD2Tk65MJiZqbDY2Wn4/P0H19/cCg8zMT2g0NFxRpaX00eXlNPnx8QjicXGTq9jYc2IxMVMqFRU/CAQEDJXHx1JGIyNlncPDXjAYGCg3lpahCgUFDy+amrUOBwcJJBISNhuAgJvf4uI9zevrJk4nJ2l/srLN6nV1nxIJCRsdg4OeWCwsdDQaGi42Gxst3G5usrRaWu5boKD7pFJS9nY7O0231tZhfbOzzlIpKXvd4+M+Xi8vcROEhJemU1P1udHRaAAAAADB7e0sQCAgYOP8/B95sbHItltb7dRqar6Ny8tGZ76+2XI5OUuUSkremExM1LBYWOiFz89Ku9DQa8Xv7ypPqqrl7fv7FoZDQ8WaTU3XZjMzVRGFhZSKRUXP6fn5EAQCAgb+f3+BoFBQ8Hg8PEQln5+6S6io46JRUfNdo6P+gEBAwAWPj4o/kpKtIZ2dvHA4OEjx9fUEY7y833e2tsGv2tp1QiEhYyAQEDDl//8a/fPzDr/S0m2Bzc1MGAwMFCYTEzXD7Owvvl9f4TWXl6KIRETMLhcXOZPExFdVp6fy/H5+gno9PUfIZGSsul1d5zIZGSvmc3OVwGBgoBmBgZieT0/Ro9zcf0QiImZUKip+O5CQqwuIiIOMRkbKx+7uKWu4uNMoFBQ8p97eebxeXuIWCwsdrdvbdtvg4DtkMjJWdDo6ThQKCh6SSUnbDAYGCkgkJGy4XFzkn8LCXb3T025DrKzvxGJipjmRkagxlZWk0+TkN/J5eYvV5+cyi8jIQ243N1nabW23AY2NjLHV1WScTk7SSamp4NhsbLSsVlb68/T0B8/q6iXKZWWv9Hp6jkeurukQCAgYb7q61fB4eIhKJSVvXC4ucjgcHCRXpqbxc7S0x5fGxlHL6Ogjod3dfOh0dJw+Hx8hlktL3WG9vdwNi4uGD4qKheBwcJB8Pj5CcbW1xMxmZqqQSEjYBgMDBff29gEcDg4SwmFho2o1NV+uV1f5abm50BeGhpGZwcFYOh0dJyeenrnZ4eE46/j4EyuYmLMiEREz0mlpu6nZ2XAHjo6JM5SUpy2bm7Y8Hh4iFYeHksnp6SCHzs5JqlVV/1AoKHil3996A4yMj1mhofgJiYmAGg0NF2W/v9rX5uYxhEJCxtBoaLiCQUHDKZmZsFotLXceDw8Re7Cwy6hUVPxtu7vWLBYWOgoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAAR\");var fB,pB=(fB=[null,function(A,I,g,B,Q){var E,a,_;return A|=0,I|=0,g|=0,B|=0,Q|=0,s=E=(a=s)-128&-64,i[E>>2]=67108863&(o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),i[E+4>>2]=(o[Q+3|0]|o[Q+4|0]<<8|o[Q+5|0]<<16|o[Q+6|0]<<24)>>>2&67108611,i[E+8>>2]=(o[Q+6|0]|o[Q+7|0]<<8|o[Q+8|0]<<16|o[Q+9|0]<<24)>>>4&67092735,i[E+12>>2]=(o[Q+9|0]|o[Q+10|0]<<8|o[Q+11|0]<<16|o[Q+12|0]<<24)>>>6&66076671,_=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+20>>2]=0,i[E+24>>2]=0,i[E+28>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,i[E+16>>2]=_>>>8&1048575,i[E+40>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+44>>2]=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+48>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,Q=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,C[E+80|0]=0,i[E+56>>2]=0,i[E+60>>2]=0,i[E+52>>2]=Q,vA(E,I,g,B),gI(E,A),s=a,0},function(A,I,g,B,Q){var E,a,_;return A|=0,I|=0,g|=0,B|=0,Q|=0,s=E=(a=s)-192&-64,i[E+64>>2]=67108863&(o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),i[E+68>>2]=(o[Q+3|0]|o[Q+4|0]<<8|o[Q+5|0]<<16|o[Q+6|0]<<24)>>>2&67108611,i[E+72>>2]=(o[Q+6|0]|o[Q+7|0]<<8|o[Q+8|0]<<16|o[Q+9|0]<<24)>>>4&67092735,i[E+76>>2]=(o[Q+9|0]|o[Q+10|0]<<8|o[Q+11|0]<<16|o[Q+12|0]<<24)>>>6&66076671,_=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+84>>2]=0,i[E+88>>2]=0,i[E+92>>2]=0,i[E+96>>2]=0,i[E+100>>2]=0,i[E+80>>2]=_>>>8&1048575,i[E+104>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+108>>2]=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+112>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,Q=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,C[E+144|0]=0,i[E+120>>2]=0,i[E+124>>2]=0,i[E+116>>2]=Q,vA(Q=E- -64|0,I,g,B),gI(Q,I=E+48|0),A=oI(A,I),s=a,0|A},function(A,I){var g;return I|=0,i[(A|=0)>>2]=67108863&(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24),i[A+4>>2]=(o[I+3|0]|o[I+4|0]<<8|o[I+5|0]<<16|o[I+6|0]<<24)>>>2&67108611,i[A+8>>2]=(o[I+6|0]|o[I+7|0]<<8|o[I+8|0]<<16|o[I+9|0]<<24)>>>4&67092735,i[A+12>>2]=(o[I+9|0]|o[I+10|0]<<8|o[I+11|0]<<16|o[I+12|0]<<24)>>>6&66076671,g=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[A+20>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+36>>2]=0,i[A+16>>2]=g>>>8&1048575,i[A+40>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[A+44>>2]=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[A+48>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,I=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,C[A+80|0]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+52>>2]=I,0},function(A,I,g,C){return vA(A|=0,I|=0,g|=0,C|=0),0},function(A,I){return gI(A|=0,I|=0),0},function(A,I,g){A|=0,I|=0,g|=0;var B,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,pA=0,wA=0,nA=0,kA=0;for(s=B=s-368|0;D=(a=o[g+Q|0])^o[0|(c=Q+34112|0)]|D,h=a^o[c+192|0]|h,y=a^o[c+160|0]|y,e=a^o[c+128|0]|e,_=a^o[c+96|0]|_,t=a^o[c- -64|0]|t,E=a^o[c+32|0]|E,31!=(0|(Q=Q+1|0)););if(Q=-1,!(256&((255&((a=127^(c=127&o[g+31|0]))|h))-1|(255&(a|y))-1|(255&(a|e))-1|(255&(87^c|_))-1|(255&(t|c))-1|(255&(E|c))-1|(255&(c|D))-1))){for(Q=I,I=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[B+360>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,i[B+364>>2]=I,I=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[B+352>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[B+356>>2]=I,E=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,I=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[B+336>>2]=I,i[B+340>>2]=E,E=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[B+344>>2]=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,i[B+348>>2]=E,C[B+336|0]=248&I,C[B+367|0]=63&o[B+367|0]|64,fA(B+288|0,g),i[B+260>>2]=0,i[B+264>>2]=0,i[B+268>>2]=0,i[B+272>>2]=0,i[B+276>>2]=0,i[B+208>>2]=0,i[B+212>>2]=0,i[B+216>>2]=0,i[B+220>>2]=0,i[B+224>>2]=0,i[B+228>>2]=0,I=i[B+308>>2],i[B+160>>2]=i[B+304>>2],i[B+164>>2]=I,I=i[B+316>>2],i[B+168>>2]=i[B+312>>2],i[B+172>>2]=I,I=i[B+324>>2],i[B+176>>2]=i[B+320>>2],i[B+180>>2]=I,i[B+244>>2]=0,i[B+248>>2]=0,i[B+240>>2]=1,i[B+252>>2]=0,i[B+256>>2]=0,i[B+192>>2]=0,i[B+196>>2]=0,i[B+200>>2]=0,i[B+204>>2]=0,I=i[B+292>>2],i[B+144>>2]=i[B+288>>2],i[B+148>>2]=I,I=i[B+300>>2],i[B+152>>2]=i[B+296>>2],i[B+156>>2]=I,i[B+116>>2]=0,i[B+120>>2]=0,i[B+124>>2]=0,i[B+128>>2]=0,i[B+132>>2]=0,i[B+100>>2]=0,i[B+104>>2]=0,i[B+96>>2]=1,i[B+108>>2]=0,i[B+112>>2]=0,g=254;Z=i[B+276>>2],a=i[B+180>>2],T=i[B+96>>2],$=i[B+192>>2],AA=i[B+144>>2],IA=i[B+240>>2],gA=i[B+100>>2],CA=i[B+196>>2],BA=i[B+148>>2],QA=i[B+244>>2],U=i[B+104>>2],iA=i[B+200>>2],H=i[B+152>>2],oA=i[B+248>>2],d=i[B+108>>2],EA=i[B+204>>2],m=i[B+156>>2],aA=i[B+252>>2],Y=i[B+112>>2],_A=i[B+208>>2],M=i[B+160>>2],cA=i[B+256>>2],D=i[B+116>>2],tA=i[B+212>>2],r=i[B+164>>2],rA=i[B+260>>2],h=i[B+120>>2],eA=i[B+216>>2],y=i[B+168>>2],yA=i[B+264>>2],e=i[B+124>>2],sA=i[B+220>>2],_=i[B+172>>2],hA=i[B+268>>2],t=i[B+128>>2],DA=i[B+224>>2],E=i[B+176>>2],G=i[B+272>>2],pA=g,K=(F=(I=0-((I=V)^(V=o[(wA=B+336|0)+(g>>>3|0)|0]>>>(7&g)&1))|0)&((Q=i[B+132>>2])^(j=i[B+228>>2])))^Q,i[B+132>>2]=K,X=a^(S=I&(a^Z)),i[B+84>>2]=X-K,J=t^(w=I&(t^DA)),i[B+128>>2]=J,O=(N=I&(E^G))^E,i[B+80>>2]=O-J,u=e^(n=I&(e^sA)),i[B+124>>2]=u,nA=_^(k=I&(_^hA)),i[B+76>>2]=nA-u,x=h^(p=I&(h^eA)),i[B+120>>2]=x,kA=y^(c=I&(y^yA)),i[B+72>>2]=kA-x,v=D^(a=I&(D^tA)),i[B+116>>2]=v,L=r^(D=I&(r^rA)),i[B+68>>2]=L-v,P=Y^(h=I&(Y^_A)),i[B+112>>2]=P,l=M^(y=I&(M^cA)),i[B+64>>2]=l-P,q=d^(e=I&(d^EA)),i[B+108>>2]=q,W=m^(_=I&(m^aA)),i[B+60>>2]=W-q,z=U^(t=I&(U^iA)),i[B+104>>2]=z,d=H^(E=I&(H^oA)),i[B+56>>2]=d-z,U=gA^(Q=I&(gA^CA)),i[B+100>>2]=U,m=BA^(g=I&(BA^QA)),i[B+52>>2]=m-U,H=T^(Y=I&(T^$)),i[B+96>>2]=H,M=(I&=AA^IA)^AA,i[B+48>>2]=M-H,r=S^Z,F^=j,i[B+36>>2]=r-F,S=N^G,w^=DA,i[B+32>>2]=S-w,N=k^hA,n^=sA,i[B+28>>2]=N-n,k=c^yA,p^=eA,i[B+24>>2]=k-p,c=D^rA,a^=tA,i[B+20>>2]=c-a,D=y^cA,h^=_A,i[B+16>>2]=D-h,y=_^aA,e^=EA,i[B+12>>2]=y-e,_=E^oA,t^=iA,i[B+8>>2]=_-t,E=g^QA,Q^=CA,i[B+4>>2]=E-Q,g=I^IA,I=Y^$,i[B>>2]=g-I,i[B+276>>2]=r+F,i[B+272>>2]=S+w,i[B+268>>2]=n+N,i[B+264>>2]=p+k,i[B+260>>2]=a+c,i[B+256>>2]=h+D,i[B+248>>2]=_+t,i[B+244>>2]=Q+E,i[B+240>>2]=I+g,i[B+252>>2]=e+y,i[B+228>>2]=K+X,i[B+224>>2]=J+O,i[B+220>>2]=u+nA,i[B+216>>2]=x+kA,i[B+212>>2]=v+L,i[B+208>>2]=l+P,i[B+204>>2]=q+W,i[B+200>>2]=d+z,i[B+196>>2]=U+m,i[B+192>>2]=M+H,b(X=B+96|0,J=B+48|0,K=B+240|0),b(G=B+192|0,G,B),R(J,B),R(B,K),r=i[B+192>>2],F=i[B+96>>2],S=i[B+196>>2],w=i[B+100>>2],N=i[B+200>>2],n=i[B+104>>2],k=i[B+204>>2],p=i[B+108>>2],c=i[B+208>>2],a=i[B+112>>2],D=i[B+212>>2],h=i[B+116>>2],y=i[B+216>>2],e=i[B+120>>2],_=i[B+220>>2],t=i[B+124>>2],E=i[B+224>>2],Q=i[B+128>>2],g=i[B+228>>2],I=i[B+132>>2],i[B+180>>2]=g+I,i[B+176>>2]=Q+E,i[B+172>>2]=_+t,i[B+168>>2]=e+y,i[B+164>>2]=h+D,i[B+160>>2]=a+c,i[B+156>>2]=p+k,i[B+152>>2]=n+N,i[B+148>>2]=S+w,i[B+144>>2]=r+F,i[B+228>>2]=I-g,i[B+224>>2]=Q-E,i[B+220>>2]=t-_,i[B+216>>2]=e-y,i[B+212>>2]=h-D,i[B+208>>2]=a-c,i[B+204>>2]=p-k,i[B+200>>2]=n-N,i[B+196>>2]=w-S,i[B+192>>2]=F-r,b(K,B,J),u=i[B+52>>2],p=i[B+4>>2],x=i[B+56>>2],c=i[B+8>>2],v=i[B+64>>2],y=i[B+16>>2],P=i[B+60>>2],e=i[B+12>>2],q=i[B+72>>2],_=i[B+24>>2],z=i[B+68>>2],t=i[B+20>>2],U=i[B+80>>2],E=i[B+32>>2],H=i[B+76>>2],Q=i[B+28>>2],j=i[B+84>>2],I=i[B+36>>2],O=i[B+48>>2],g=i[B>>2]-O|0,i[B>>2]=g,I=I-j|0,i[B+36>>2]=I,Y=Q-H|0,i[B+28>>2]=Y,M=E-U|0,i[B+32>>2]=M,a=t-z|0,i[B+20>>2]=a,D=_-q|0,i[B+24>>2]=D,h=e-P|0,i[B+12>>2]=h,y=y-v|0,i[B+16>>2]=y,e=c-x|0,i[B+8>>2]=e,E=p-u|0,i[B+4>>2]=E,R(G,G),I=Ig(I,I>>31,121666,0),Q=f,W=I,I=Ig((33554431&(Q=(r=I+16777216|0)>>>0<16777216?Q+1|0:Q))<<7|r>>>25,Q>>25,19,0),t=f,Q=I,I=Ig(g,g>>31,121666,0),l=f+t|0,I=I>>>0>(Q=Q+I|0)>>>0?l+1|0:l,g=(_=Q+33554432|0)>>>0<33554432?I+1|0:I,F=Q-(-67108864&_)|0,i[B+96>>2]=F,t=Ig(E,E>>31,121666,0),Q=f,Q=(E=t+16777216|0)>>>0<16777216?Q+1|0:Q,S=(t-(-33554432&E)|0)+((67108863&g)<<6|_>>>26)|0,i[B+100>>2]=S,l=(I=Q)>>25,Q=(33554431&I)<<7|E>>>25,g=Ig(e,e>>31,121666,0)+Q|0,I=l+f|0,I=g>>>0>>0?I+1|0:I,t=(w=g+33554432|0)>>>0<33554432?I+1|0:I,N=g-(-67108864&w)|0,i[B+104>>2]=N,Q=Ig(y,y>>31,121666,0),E=f,g=Ig(h,h>>31,121666,0),I=f,L=Q,d=g,Q=(33554431&(I=(n=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|n>>>25,I=(I>>25)+E|0,I=(g=L+Q|0)>>>0>>0?I+1|0:I,E=(k=g+33554432|0)>>>0<33554432?I+1|0:I,p=g-(-67108864&k)|0,i[B+112>>2]=p,Q=Ig(D,D>>31,121666,0),_=f,g=Ig(a,a>>31,121666,0),I=f,L=Q,m=g,Q=(33554431&(I=(c=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|c>>>25,I=(I>>25)+_|0,I=(g=L+Q|0)>>>0>>0?I+1|0:I,Q=(a=g+33554432|0)>>>0<33554432?I+1|0:I,D=g-(-67108864&a)|0,i[B+120>>2]=D,_=Ig(M,M>>31,121666,0),e=f,g=Ig(Y,Y>>31,121666,0),I=f,M=g,g=(33554431&(I=(h=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|h>>>25,I=(I>>25)+e|0,I=g>>>0>(_=g+_|0)>>>0?I+1|0:I,g=(y=_+33554432|0)>>>0<33554432?I+1|0:I,e=_-(-67108864&y)|0,i[B+128>>2]=e,_=(t=d+((67108863&t)<<6|w>>>26)|0)-(-33554432&n)|0,i[B+108>>2]=_,t=(E=m+((67108863&E)<<6|k>>>26)|0)-(-33554432&c)|0,i[B+116>>2]=t,E=(I=M+((67108863&Q)<<6|a>>>26)|0)-(-33554432&h)|0,i[B+124>>2]=E,g=(g=W+((67108863&g)<<6|y>>>26)|0)-(-33554432&r)|0,i[B+132>>2]=g,R(I=B+144|0,I),i[B+84>>2]=g+j,i[B+80>>2]=e+U,i[B+76>>2]=E+H,i[B+72>>2]=D+q,i[B+68>>2]=t+z,i[B+64>>2]=p+v,i[B+60>>2]=_+P,i[B+56>>2]=N+x,i[B+52>>2]=S+u,i[B+48>>2]=F+O,g=pA-1|0,b(X,B+288|0,G),b(G,B,J),pA;);D=i[B+144>>2],F=i[B+240>>2],h=i[B+148>>2],S=i[B+244>>2],y=i[B+152>>2],w=i[B+248>>2],e=i[B+156>>2],N=i[B+252>>2],_=i[B+160>>2],n=i[B+256>>2],t=i[B+164>>2],k=i[B+260>>2],E=i[B+168>>2],p=i[B+264>>2],Q=i[B+172>>2],c=i[B+268>>2],g=i[B+176>>2],a=i[B+272>>2],r=0-V|0,I=i[B+276>>2],i[B+276>>2]=r&(I^i[B+180>>2])^I,i[B+272>>2]=a^r&(g^a),i[B+268>>2]=c^r&(Q^c),i[B+264>>2]=p^r&(E^p),i[B+260>>2]=k^r&(t^k),i[B+256>>2]=n^r&(_^n),i[B+252>>2]=N^r&(e^N),i[B+248>>2]=w^r&(y^w),i[B+244>>2]=S^r&(h^S),i[B+240>>2]=F^r&(D^F),F=i[B+192>>2],D=i[B+96>>2],S=i[B+196>>2],h=i[B+100>>2],w=i[B+200>>2],y=i[B+104>>2],N=i[B+204>>2],e=i[B+108>>2],n=i[B+208>>2],_=i[B+112>>2],k=i[B+212>>2],t=i[B+116>>2],p=i[B+216>>2],E=i[B+120>>2],c=i[B+220>>2],Q=i[B+124>>2],a=i[B+224>>2],g=i[B+128>>2],I=i[B+228>>2],i[B+228>>2]=r&(I^i[B+132>>2])^I,i[B+224>>2]=a^r&(g^a),i[B+220>>2]=c^r&(Q^c),i[B+216>>2]=p^r&(E^p),i[B+212>>2]=k^r&(t^k),i[B+208>>2]=n^r&(_^n),i[B+204>>2]=N^r&(e^N),i[B+200>>2]=w^r&(y^w),i[B+196>>2]=S^r&(h^S),i[B+192>>2]=F^r&(D^F),LA(G,G),b(K,K,G),QI(A,K),XC(wA,32),Q=0}return s=B+368|0,0|Q},function(A,I){var g,B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S;return I|=0,s=g=s-304|0,C[0|(A|=0)]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],I=o[I+31|0],C[0|A]=248&o[0|A],C[A+31|0]=63&I|64,nA(g+48|0,A),I=i[g+128>>2],B=i[g+88>>2],Q=i[g+132>>2],E=i[g+92>>2],a=i[g+136>>2],_=i[g+96>>2],c=i[g+140>>2],t=i[g+100>>2],r=i[g+144>>2],e=i[g+104>>2],y=i[g+148>>2],h=i[g+108>>2],D=i[g+152>>2],f=i[g+112>>2],p=i[g+156>>2],w=i[g+116>>2],n=i[g+160>>2],k=i[g+120>>2],F=i[g+124>>2],S=i[g+164>>2],i[g+292>>2]=F+S,i[g+288>>2]=n+k,i[g+284>>2]=p+w,i[g+280>>2]=D+f,i[g+276>>2]=y+h,i[g+272>>2]=r+e,i[g+268>>2]=c+t,i[g+264>>2]=a+_,i[g+260>>2]=Q+E,i[g+256>>2]=I+B,i[g+244>>2]=S-F,i[g+240>>2]=n-k,i[g+236>>2]=p-w,i[g+232>>2]=D-f,i[g+228>>2]=y-h,i[g+224>>2]=r-e,i[g+220>>2]=c-t,i[g+216>>2]=a-_,i[g+212>>2]=Q-E,i[g+208>>2]=I-B,LA(I=g+208|0,I),b(g,g+256|0,I),QI(A,g),s=g+304|0,0},function(A,I,g,B,Q){A|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-112|0,(I|=0)|(g|=0)){a=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,i[E+24>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,i[E+28>>2]=a,a=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+16>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+20>>2]=a,a=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[E>>2]=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[E+4>>2]=a,a=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+8>>2]=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,i[E+12>>2]=a,Q=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,B=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[E+104>>2]=0,i[E+108>>2]=0,i[E+96>>2]=Q,i[E+100>>2]=B;A:{if(!g&I>>>0>=64|g){for(;AC(A,E+96|0,E,0),B=o[E+104|0]+1|0,C[E+104|0]=B,B=o[E+105|0]+(B>>>8|0)|0,C[E+105|0]=B,B=o[E+106|0]+(B>>>8|0)|0,C[E+106|0]=B,B=o[E+107|0]+(B>>>8|0)|0,C[E+107|0]=B,B=o[E+108|0]+(B>>>8|0)|0,C[E+108|0]=B,B=o[E+109|0]+(B>>>8|0)|0,C[E+109|0]=B,B=o[E+110|0]+(B>>>8|0)|0,C[E+110|0]=B,C[E+111|0]=o[E+111|0]+(B>>>8|0),A=A- -64|0,g=g-1|0,!(g=(I=I+-64|0)>>>0<4294967232?g+1|0:g)&I>>>0>63|g;);if(!(I|g))break A}if(B=0,AC(E+32|0,E+96|0,E,0),a=3&I,Q=0,!g&I>>>0>=4|g)for(g=60&I,I=0;_=c=E+32|0,C[A+Q|0]=o[_+Q|0],C[(t=1|Q)+A|0]=o[_+t|0],C[(_=2|Q)+A|0]=o[_+c|0],C[(_=3|Q)+A|0]=o[_+(E+32|0)|0],Q=Q+4|0,(0|g)!=(0|(I=I+4|0)););if(a)for(;C[A+Q|0]=o[(E+32|0)+Q|0],Q=Q+1|0,(0|a)!=(0|(B=B+1|0)););}XC(E+32|0,64),XC(E,32)}return s=E+112|0,0},function(A,I,g,B,Q,E,a,_){A|=0,I|=0,Q|=0,E|=0,a|=0,_|=0;var c,t=0;if(s=c=s-112|0,(g|=0)|(B|=0)){t=o[_+28|0]|o[_+29|0]<<8|o[_+30|0]<<16|o[_+31|0]<<24,i[c+24>>2]=o[_+24|0]|o[_+25|0]<<8|o[_+26|0]<<16|o[_+27|0]<<24,i[c+28>>2]=t,t=o[_+20|0]|o[_+21|0]<<8|o[_+22|0]<<16|o[_+23|0]<<24,i[c+16>>2]=o[_+16|0]|o[_+17|0]<<8|o[_+18|0]<<16|o[_+19|0]<<24,i[c+20>>2]=t,t=o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24,i[c>>2]=o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24,i[c+4>>2]=t,t=o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24,i[c+8>>2]=o[_+8|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24,i[c+12>>2]=t,_=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[c+96>>2]=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[c+100>>2]=_,C[c+104|0]=E,C[c+111|0]=a>>>24,C[c+110|0]=a>>>16,C[c+109|0]=a>>>8,C[c+108|0]=a,C[c+107|0]=(16777215&a)<<8|E>>>24,C[c+106|0]=(65535&a)<<16|E>>>16,C[c+105|0]=(255&a)<<24|E>>>8;A:{if(!B&g>>>0>=64|B){for(;;){for(_=0,AC(c+32|0,c+96|0,c,0);E=c+32|0,C[A+_|0]=o[E+_|0]^o[I+_|0],C[(Q=1|_)+A|0]=o[Q+E|0]^o[I+Q|0],64!=(0|(_=_+2|0)););if(Q=o[c+104|0]+1|0,C[c+104|0]=Q,Q=o[c+105|0]+(Q>>>8|0)|0,C[c+105|0]=Q,Q=o[c+106|0]+(Q>>>8|0)|0,C[c+106|0]=Q,Q=o[c+107|0]+(Q>>>8|0)|0,C[c+107|0]=Q,Q=o[c+108|0]+(Q>>>8|0)|0,C[c+108|0]=Q,Q=o[c+109|0]+(Q>>>8|0)|0,C[c+109|0]=Q,Q=o[c+110|0]+(Q>>>8|0)|0,C[c+110|0]=Q,C[c+111|0]=o[c+111|0]+(Q>>>8|0),I=I- -64|0,A=A- -64|0,B=B-1|0,!(!(B=(g=g+-64|0)>>>0<4294967232?B+1|0:B)&g>>>0>63|B))break}if(!(g|B))break A}if(_=0,AC(c+32|0,c+96|0,c,0),E=1&g,1!=(0|g)|B)for(B=62&g,Q=0;a=c+32|0,C[A+_|0]=o[a+_|0]^o[I+_|0],C[(g=1|_)+A|0]=o[g+a|0]^o[I+g|0],_=_+2|0,(0|B)!=(0|(Q=Q+2|0)););E&&(C[A+_|0]=o[(c+32|0)+_|0]^o[I+_|0])}XC(c+32|0,64),XC(c,32)}return s=c+112|0,0},function(A,I,g,C,B,Q,i,o,E){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0;var a,_,c=0;if(_=c=s,s=a=c-192&-32,P(E|=0,o|=0,a- -64|0),E=0,i>>>0<=63)o=0;else for(c=64;H(Q+E|0,a- -64|0),E=o=c,(c=o- -64|0)>>>0<=i>>>0;);if((c=32|o)>>>0>i>>>0)E=o;else for(;V(Q+o|0,a- -64|0),E=c,(c=(o=c)+32|0)>>>0<=i>>>0;);if((o=31&i)&&(bg((c=a+32|0)|o,0,32-o|0),Ng(c,Q+E|0,o),V(c,a- -64|0)),E=32,o=0,B>>>0<32)Q=0;else for(;m(A+o|0,C+o|0,a- -64|0),Q=E,(E=(o=E)+32|0)>>>0<=B>>>0;);return(o=31&B)&&(bg((E=a+32|0)|o,0,32-o|0),Ng(E,C+Q|0,o),m(a,E,a- -64|0),Ng(A+Q|0,a,o)),Y(I,g,i,B,a- -64|0),s=_,0},function(A,I,g,C,B,Q,i,o,E){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0;var a,_,c=0;if(_=c=s,s=a=c-224&-32,P(E|=0,o|=0,a+96|0),E=0,i>>>0<=63)o=0;else for(c=64;H(Q+E|0,a+96|0),E=o=c,(c=o- -64|0)>>>0<=i>>>0;);if((c=32|o)>>>0>i>>>0)E=o;else for(;V(Q+o|0,a+96|0),E=c,(c=(o=c)+32|0)>>>0<=i>>>0;);(o=31&i)&&(bg((c=a- -64|0)|o,0,32-o|0),Ng(c,Q+E|0,o),V(c,a+96|0));A:{I:{g:{C:{B:{if(A){if(E=32,g>>>0<32)break B;for(Q=0;d(A+Q|0,I+Q|0,a+96|0),Q=o=E,(E=o+32|0)>>>0<=g>>>0;);}else{if(Q=32,g>>>0<32)break g;for(E=0;d(a+32|0,I+E|0,a+96|0),E=o=Q,(Q=o+32|0)>>>0<=g>>>0;);}if(!(Q=31&g))break A;if(A)break C;break I}if(o=0,Q=g,!g)break A}x(A+o|0,I+o|0,Q,a+96|0);break A}if(o=0,Q=g,!g)break A}x(a+32|0,I+o|0,Q,a+96|0)}Y(a,B,i,g,a+96|0),o=-1;A:{I:{if(I=B-16|0){if(16==(0|I))break I;break A}o=oI(a,C);break A}o=NC(a,C)}return!A|!o||bg(A,0,g),s=_,0|o},function(A,I,g,C,B,Q,E,a,_){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,E|=0;var c,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0;if(s=c=s-528|0,G(_|=0,a|=0,c+400|0),_=0,E>>>0<=31)a=0;else for(r=32;L(Q+_|0,c+400|0),_=a=r,(r=a+32|0)>>>0<=E>>>0;);if((_=16|a)>>>0<=E>>>0)for(r=c+416|0,y=c+432|0,h=c+448|0,e=c+464|0,D=c+480|0;f=o[0|(a=Q+a|0)]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24,p=o[a+4|0]|o[a+5|0]<<8|o[a+6|0]<<16|o[a+7|0]<<24,w=o[a+8|0]|o[a+9|0]<<8|o[a+10|0]<<16|o[a+11|0]<<24,n=o[a+12|0]|o[a+13|0]<<8|o[a+14|0]<<16|o[a+15|0]<<24,a=i[D+12>>2],i[c+520>>2]=i[D+8>>2],i[c+524>>2]=a,a=i[D+4>>2],i[c+512>>2]=i[D>>2],i[c+516>>2]=a,a=i[e+12>>2],i[c+376>>2]=i[e+8>>2],i[c+380>>2]=a,a=i[e+4>>2],i[c+368>>2]=i[e>>2],i[c+372>>2]=a,a=i[D+12>>2],i[c+360>>2]=i[D+8>>2],i[c+364>>2]=a,a=i[D+4>>2],i[c+352>>2]=i[D>>2],i[c+356>>2]=a,AI(a=c+496|0,c+368|0,c+352|0),t=i[c+508>>2],i[D+8>>2]=i[c+504>>2],i[D+12>>2]=t,t=i[c+500>>2],i[D>>2]=i[c+496>>2],i[D+4>>2]=t,t=i[h+12>>2],i[c+344>>2]=i[h+8>>2],i[c+348>>2]=t,t=i[h+4>>2],i[c+336>>2]=i[h>>2],i[c+340>>2]=t,t=i[e+12>>2],i[c+328>>2]=i[e+8>>2],i[c+332>>2]=t,t=i[e+4>>2],i[c+320>>2]=i[e>>2],i[c+324>>2]=t,AI(a,c+336|0,c+320|0),t=i[c+508>>2],i[e+8>>2]=i[c+504>>2],i[e+12>>2]=t,t=i[c+500>>2],i[e>>2]=i[c+496>>2],i[e+4>>2]=t,t=i[y+12>>2],i[c+312>>2]=i[y+8>>2],i[c+316>>2]=t,t=i[y+4>>2],i[c+304>>2]=i[y>>2],i[c+308>>2]=t,t=i[h+12>>2],i[c+296>>2]=i[h+8>>2],i[c+300>>2]=t,t=i[h+4>>2],i[c+288>>2]=i[h>>2],i[c+292>>2]=t,AI(a,c+304|0,c+288|0),t=i[c+508>>2],i[h+8>>2]=i[c+504>>2],i[h+12>>2]=t,t=i[c+500>>2],i[h>>2]=i[c+496>>2],i[h+4>>2]=t,t=i[r+12>>2],i[c+280>>2]=i[r+8>>2],i[c+284>>2]=t,t=i[r+4>>2],i[c+272>>2]=i[r>>2],i[c+276>>2]=t,t=i[y+12>>2],i[c+264>>2]=i[y+8>>2],i[c+268>>2]=t,t=i[y+4>>2],i[c+256>>2]=i[y>>2],i[c+260>>2]=t,AI(a,c+272|0,c+256|0),t=i[c+508>>2],i[y+8>>2]=i[c+504>>2],i[y+12>>2]=t,t=i[c+500>>2],i[y>>2]=i[c+496>>2],i[y+4>>2]=t,t=i[c+412>>2],i[c+248>>2]=i[c+408>>2],i[c+252>>2]=t,t=i[c+404>>2],i[c+240>>2]=i[c+400>>2],i[c+244>>2]=t,t=i[r+12>>2],i[c+232>>2]=i[r+8>>2],i[c+236>>2]=t,t=i[r+4>>2],i[c+224>>2]=i[r>>2],i[c+228>>2]=t,AI(a,c+240|0,c+224|0),t=i[c+508>>2],i[r+8>>2]=i[c+504>>2],i[r+12>>2]=t,t=i[c+500>>2],i[r>>2]=i[c+496>>2],i[r+4>>2]=t,t=i[c+524>>2],i[c+216>>2]=i[c+520>>2],i[c+220>>2]=t,t=i[c+412>>2],i[c+200>>2]=i[c+408>>2],i[c+204>>2]=t,t=i[c+516>>2],i[c+208>>2]=i[c+512>>2],i[c+212>>2]=t,t=i[c+404>>2],i[c+192>>2]=i[c+400>>2],i[c+196>>2]=t,AI(a,c+208|0,c+192|0),i[c+412>>2]=n^i[c+508>>2],i[c+408>>2]=i[c+504>>2]^w,i[c+404>>2]=i[c+500>>2]^p,i[c+400>>2]=i[c+496>>2]^f,(_=(a=_)+16|0)>>>0<=E>>>0;);if((_=15&E)&&(bg((r=c+384|0)|_,0,16-_|0),Ng(r,Q+a|0,_),_=i[c+384>>2],r=i[c+388>>2],y=i[c+392>>2],h=i[c+396>>2],a=i[c+492>>2],Q=i[c+488>>2],i[c+520>>2]=Q,i[c+524>>2]=a,e=i[c+476>>2],i[c+184>>2]=i[c+472>>2],i[c+188>>2]=e,i[c+168>>2]=Q,i[c+172>>2]=a,a=i[c+484>>2],Q=i[c+480>>2],i[c+512>>2]=Q,i[c+516>>2]=a,e=i[c+468>>2],i[c+176>>2]=i[c+464>>2],i[c+180>>2]=e,i[c+160>>2]=Q,i[c+164>>2]=a,AI(Q=c+496|0,c+176|0,c+160|0),a=i[c+508>>2],i[c+488>>2]=i[c+504>>2],i[c+492>>2]=a,a=i[c+460>>2],i[c+152>>2]=i[c+456>>2],i[c+156>>2]=a,a=i[c+476>>2],i[c+136>>2]=i[c+472>>2],i[c+140>>2]=a,a=i[c+500>>2],i[c+480>>2]=i[c+496>>2],i[c+484>>2]=a,a=i[c+452>>2],i[c+144>>2]=i[c+448>>2],i[c+148>>2]=a,a=i[c+468>>2],i[c+128>>2]=i[c+464>>2],i[c+132>>2]=a,AI(Q,c+144|0,c+128|0),a=i[c+508>>2],i[c+472>>2]=i[c+504>>2],i[c+476>>2]=a,a=i[c+444>>2],i[c+120>>2]=i[c+440>>2],i[c+124>>2]=a,a=i[c+460>>2],i[c+104>>2]=i[c+456>>2],i[c+108>>2]=a,a=i[c+500>>2],i[c+464>>2]=i[c+496>>2],i[c+468>>2]=a,a=i[c+436>>2],i[c+112>>2]=i[c+432>>2],i[c+116>>2]=a,a=i[c+452>>2],i[c+96>>2]=i[c+448>>2],i[c+100>>2]=a,AI(Q,c+112|0,c+96|0),a=i[c+508>>2],i[c+456>>2]=i[c+504>>2],i[c+460>>2]=a,a=i[c+428>>2],i[c+88>>2]=i[c+424>>2],i[c+92>>2]=a,a=i[c+444>>2],i[c+72>>2]=i[c+440>>2],i[c+76>>2]=a,a=i[c+500>>2],i[c+448>>2]=i[c+496>>2],i[c+452>>2]=a,a=i[c+420>>2],i[c+80>>2]=i[c+416>>2],i[c+84>>2]=a,a=i[c+436>>2],i[c+64>>2]=i[c+432>>2],i[c+68>>2]=a,AI(Q,c+80|0,c- -64|0),a=i[c+508>>2],i[c+440>>2]=i[c+504>>2],i[c+444>>2]=a,a=i[c+412>>2],i[c+56>>2]=i[c+408>>2],i[c+60>>2]=a,a=i[c+428>>2],i[c+40>>2]=i[c+424>>2],i[c+44>>2]=a,a=i[c+500>>2],i[c+432>>2]=i[c+496>>2],i[c+436>>2]=a,a=i[c+404>>2],i[c+48>>2]=i[c+400>>2],i[c+52>>2]=a,a=i[c+420>>2],i[c+32>>2]=i[c+416>>2],i[c+36>>2]=a,AI(Q,c+48|0,c+32|0),a=i[c+508>>2],i[c+424>>2]=i[c+504>>2],i[c+428>>2]=a,a=i[c+524>>2],i[c+24>>2]=i[c+520>>2],i[c+28>>2]=a,a=i[c+412>>2],i[c+8>>2]=i[c+408>>2],i[c+12>>2]=a,a=i[c+500>>2],i[c+416>>2]=i[c+496>>2],i[c+420>>2]=a,a=i[c+516>>2],i[c+16>>2]=i[c+512>>2],i[c+20>>2]=a,a=i[c+404>>2],i[c>>2]=i[c+400>>2],i[c+4>>2]=a,AI(Q,c+16|0,c),i[c+412>>2]=h^i[c+508>>2],i[c+408>>2]=y^i[c+504>>2],i[c+404>>2]=r^i[c+500>>2],i[c+400>>2]=_^i[c+496>>2]),r=16,a=0,B>>>0<16)_=0;else for(;X(A+a|0,C+a|0,c+400|0),_=r,(r=(a=r)+16|0)>>>0<=B>>>0;);return(Q=15&B)&&(bg((a=c+384|0)|Q,0,16-Q|0),Ng(a,C+_|0,Q),X(C=c+512|0,a,c+400|0),Ng(A+_|0,C,Q)),l(I,g,E,B,c+400|0),s=c+528|0,0},function(A,I,g,C,B,Q,E,a,_){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,E|=0;var c,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0;if(s=c=s-544|0,G(_|=0,a|=0,c+432|0),_=0,E>>>0<=31)a=0;else for(r=32;L(Q+_|0,c+432|0),_=a=r,(r=a+32|0)>>>0<=E>>>0;);if((_=16|a)>>>0<=E>>>0)for(r=c+448|0,y=c+464|0,h=c+480|0,e=c+496|0,D=c+512|0;f=o[0|(a=Q+a|0)]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24,p=o[a+4|0]|o[a+5|0]<<8|o[a+6|0]<<16|o[a+7|0]<<24,w=o[a+8|0]|o[a+9|0]<<8|o[a+10|0]<<16|o[a+11|0]<<24,n=o[a+12|0]|o[a+13|0]<<8|o[a+14|0]<<16|o[a+15|0]<<24,a=i[D+12>>2],i[c+392>>2]=i[D+8>>2],i[c+396>>2]=a,a=i[D+4>>2],i[c+384>>2]=i[D>>2],i[c+388>>2]=a,a=i[e+12>>2],i[c+376>>2]=i[e+8>>2],i[c+380>>2]=a,a=i[e+4>>2],i[c+368>>2]=i[e>>2],i[c+372>>2]=a,a=i[D+12>>2],i[c+360>>2]=i[D+8>>2],i[c+364>>2]=a,a=i[D+4>>2],i[c+352>>2]=i[D>>2],i[c+356>>2]=a,AI(a=c+528|0,c+368|0,c+352|0),t=i[c+540>>2],i[D+8>>2]=i[c+536>>2],i[D+12>>2]=t,t=i[c+532>>2],i[D>>2]=i[c+528>>2],i[D+4>>2]=t,t=i[h+12>>2],i[c+344>>2]=i[h+8>>2],i[c+348>>2]=t,t=i[h+4>>2],i[c+336>>2]=i[h>>2],i[c+340>>2]=t,t=i[e+12>>2],i[c+328>>2]=i[e+8>>2],i[c+332>>2]=t,t=i[e+4>>2],i[c+320>>2]=i[e>>2],i[c+324>>2]=t,AI(a,c+336|0,c+320|0),t=i[c+540>>2],i[e+8>>2]=i[c+536>>2],i[e+12>>2]=t,t=i[c+532>>2],i[e>>2]=i[c+528>>2],i[e+4>>2]=t,t=i[y+12>>2],i[c+312>>2]=i[y+8>>2],i[c+316>>2]=t,t=i[y+4>>2],i[c+304>>2]=i[y>>2],i[c+308>>2]=t,t=i[h+12>>2],i[c+296>>2]=i[h+8>>2],i[c+300>>2]=t,t=i[h+4>>2],i[c+288>>2]=i[h>>2],i[c+292>>2]=t,AI(a,c+304|0,c+288|0),t=i[c+540>>2],i[h+8>>2]=i[c+536>>2],i[h+12>>2]=t,t=i[c+532>>2],i[h>>2]=i[c+528>>2],i[h+4>>2]=t,t=i[r+12>>2],i[c+280>>2]=i[r+8>>2],i[c+284>>2]=t,t=i[r+4>>2],i[c+272>>2]=i[r>>2],i[c+276>>2]=t,t=i[y+12>>2],i[c+264>>2]=i[y+8>>2],i[c+268>>2]=t,t=i[y+4>>2],i[c+256>>2]=i[y>>2],i[c+260>>2]=t,AI(a,c+272|0,c+256|0),t=i[c+540>>2],i[y+8>>2]=i[c+536>>2],i[y+12>>2]=t,t=i[c+532>>2],i[y>>2]=i[c+528>>2],i[y+4>>2]=t,t=i[c+444>>2],i[c+248>>2]=i[c+440>>2],i[c+252>>2]=t,t=i[c+436>>2],i[c+240>>2]=i[c+432>>2],i[c+244>>2]=t,t=i[r+12>>2],i[c+232>>2]=i[r+8>>2],i[c+236>>2]=t,t=i[r+4>>2],i[c+224>>2]=i[r>>2],i[c+228>>2]=t,AI(a,c+240|0,c+224|0),t=i[c+540>>2],i[r+8>>2]=i[c+536>>2],i[r+12>>2]=t,t=i[c+532>>2],i[r>>2]=i[c+528>>2],i[r+4>>2]=t,t=i[c+396>>2],i[c+216>>2]=i[c+392>>2],i[c+220>>2]=t,t=i[c+444>>2],i[c+200>>2]=i[c+440>>2],i[c+204>>2]=t,t=i[c+388>>2],i[c+208>>2]=i[c+384>>2],i[c+212>>2]=t,t=i[c+436>>2],i[c+192>>2]=i[c+432>>2],i[c+196>>2]=t,AI(a,c+208|0,c+192|0),i[c+444>>2]=n^i[c+540>>2],i[c+440>>2]=i[c+536>>2]^w,i[c+436>>2]=i[c+532>>2]^p,i[c+432>>2]=i[c+528>>2]^f,(_=(a=_)+16|0)>>>0<=E>>>0;);(_=15&E)&&(bg((r=c+416|0)|_,0,16-_|0),Ng(r,Q+a|0,_),_=i[c+416>>2],r=i[c+420>>2],y=i[c+424>>2],h=i[c+428>>2],a=i[c+524>>2],Q=i[c+520>>2],i[c+392>>2]=Q,i[c+396>>2]=a,e=i[c+508>>2],i[c+184>>2]=i[c+504>>2],i[c+188>>2]=e,i[c+168>>2]=Q,i[c+172>>2]=a,a=i[c+516>>2],Q=i[c+512>>2],i[c+384>>2]=Q,i[c+388>>2]=a,e=i[c+500>>2],i[c+176>>2]=i[c+496>>2],i[c+180>>2]=e,i[c+160>>2]=Q,i[c+164>>2]=a,AI(Q=c+528|0,c+176|0,c+160|0),a=i[c+540>>2],i[c+520>>2]=i[c+536>>2],i[c+524>>2]=a,a=i[c+492>>2],i[c+152>>2]=i[c+488>>2],i[c+156>>2]=a,a=i[c+508>>2],i[c+136>>2]=i[c+504>>2],i[c+140>>2]=a,a=i[c+532>>2],i[c+512>>2]=i[c+528>>2],i[c+516>>2]=a,a=i[c+484>>2],i[c+144>>2]=i[c+480>>2],i[c+148>>2]=a,a=i[c+500>>2],i[c+128>>2]=i[c+496>>2],i[c+132>>2]=a,AI(Q,c+144|0,c+128|0),a=i[c+540>>2],i[c+504>>2]=i[c+536>>2],i[c+508>>2]=a,a=i[c+476>>2],i[c+120>>2]=i[c+472>>2],i[c+124>>2]=a,a=i[c+492>>2],i[c+104>>2]=i[c+488>>2],i[c+108>>2]=a,a=i[c+532>>2],i[c+496>>2]=i[c+528>>2],i[c+500>>2]=a,a=i[c+468>>2],i[c+112>>2]=i[c+464>>2],i[c+116>>2]=a,a=i[c+484>>2],i[c+96>>2]=i[c+480>>2],i[c+100>>2]=a,AI(Q,c+112|0,c+96|0),a=i[c+540>>2],i[c+488>>2]=i[c+536>>2],i[c+492>>2]=a,a=i[c+460>>2],i[c+88>>2]=i[c+456>>2],i[c+92>>2]=a,a=i[c+476>>2],i[c+72>>2]=i[c+472>>2],i[c+76>>2]=a,a=i[c+532>>2],i[c+480>>2]=i[c+528>>2],i[c+484>>2]=a,a=i[c+452>>2],i[c+80>>2]=i[c+448>>2],i[c+84>>2]=a,a=i[c+468>>2],i[c+64>>2]=i[c+464>>2],i[c+68>>2]=a,AI(Q,c+80|0,c- -64|0),a=i[c+540>>2],i[c+472>>2]=i[c+536>>2],i[c+476>>2]=a,a=i[c+444>>2],i[c+56>>2]=i[c+440>>2],i[c+60>>2]=a,a=i[c+460>>2],i[c+40>>2]=i[c+456>>2],i[c+44>>2]=a,a=i[c+532>>2],i[c+464>>2]=i[c+528>>2],i[c+468>>2]=a,a=i[c+436>>2],i[c+48>>2]=i[c+432>>2],i[c+52>>2]=a,a=i[c+452>>2],i[c+32>>2]=i[c+448>>2],i[c+36>>2]=a,AI(Q,c+48|0,c+32|0),a=i[c+540>>2],i[c+456>>2]=i[c+536>>2],i[c+460>>2]=a,a=i[c+396>>2],i[c+24>>2]=i[c+392>>2],i[c+28>>2]=a,a=i[c+444>>2],i[c+8>>2]=i[c+440>>2],i[c+12>>2]=a,a=i[c+532>>2],i[c+448>>2]=i[c+528>>2],i[c+452>>2]=a,a=i[c+388>>2],i[c+16>>2]=i[c+384>>2],i[c+20>>2]=a,a=i[c+436>>2],i[c>>2]=i[c+432>>2],i[c+4>>2]=a,AI(Q,c+16|0,c),i[c+444>>2]=h^i[c+540>>2],i[c+440>>2]=y^i[c+536>>2],i[c+436>>2]=r^i[c+532>>2],i[c+432>>2]=_^i[c+528>>2]);A:{I:{g:{C:{B:{if(A){if(r=16,g>>>0<16)break B;for(_=0;O(A+_|0,I+_|0,c+432|0),_=a=r,(r=a+16|0)>>>0<=g>>>0;);}else{if(_=16,g>>>0<16)break g;for(r=0;O(c+528|0,I+r|0,c+432|0),r=a=_,(_=a+16|0)>>>0<=g>>>0;);}if(!(_=15&g))break A;if(A)break C;break I}if(a=0,!(_=g))break A}Z(A+a|0,I+a|0,_,c+432|0);break A}if(a=0,!(_=g))break A}Z(c+528|0,I+a|0,_,c+432|0)}l(c+384|0,B,E,g,c+432|0),a=-1;A:{I:{if(I=B-16|0){if(16==(0|I))break I;break A}a=oI(c+384|0,C);break A}a=NC(c+384|0,C)}return!A|!a||bg(A,0,g),s=c+544|0,0|a},function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,s=Q=s+-64|0,(I|=0)|(g|=0)&&(i[Q+8>>2]=2036477234,i[Q+12>>2]=1797285236,i[Q>>2]=1634760805,i[Q+4>>2]=857760878,i[Q+16>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,i[Q+20>>2]=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[Q+24>>2]=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,i[Q+28>>2]=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24,i[Q+32>>2]=o[B+16|0]|o[B+17|0]<<8|o[B+18|0]<<16|o[B+19|0]<<24,i[Q+36>>2]=o[B+20|0]|o[B+21|0]<<8|o[B+22|0]<<16|o[B+23|0]<<24,i[Q+40>>2]=o[B+24|0]|o[B+25|0]<<8|o[B+26|0]<<16|o[B+27|0]<<24,B=o[B+28|0]|o[B+29|0]<<8|o[B+30|0]<<16|o[B+31|0]<<24,i[Q+48>>2]=0,i[Q+52>>2]=0,i[Q+44>>2]=B,i[Q+56>>2]=o[0|C]|o[C+1|0]<<8|o[C+2|0]<<16|o[C+3|0]<<24,i[Q+60>>2]=o[C+4|0]|o[C+5|0]<<8|o[C+6|0]<<16|o[C+7|0]<<24,z(Q,A=bg(A,0,I),A,I,g),XC(Q,64)),s=Q- -64|0,0},function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,s=Q=s+-64|0,(I|=0)|(g|=0)&&(i[Q+8>>2]=2036477234,i[Q+12>>2]=1797285236,i[Q>>2]=1634760805,i[Q+4>>2]=857760878,i[Q+16>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,i[Q+20>>2]=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[Q+24>>2]=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,i[Q+28>>2]=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24,i[Q+32>>2]=o[B+16|0]|o[B+17|0]<<8|o[B+18|0]<<16|o[B+19|0]<<24,i[Q+36>>2]=o[B+20|0]|o[B+21|0]<<8|o[B+22|0]<<16|o[B+23|0]<<24,i[Q+40>>2]=o[B+24|0]|o[B+25|0]<<8|o[B+26|0]<<16|o[B+27|0]<<24,B=o[B+28|0]|o[B+29|0]<<8|o[B+30|0]<<16|o[B+31|0]<<24,i[Q+48>>2]=0,i[Q+44>>2]=B,i[Q+52>>2]=o[0|C]|o[C+1|0]<<8|o[C+2|0]<<16|o[C+3|0]<<24,i[Q+56>>2]=o[C+4|0]|o[C+5|0]<<8|o[C+6|0]<<16|o[C+7|0]<<24,i[Q+60>>2]=o[C+8|0]|o[C+9|0]<<8|o[C+10|0]<<16|o[C+11|0]<<24,z(Q,A=bg(A,0,I),A,I,g),XC(Q,64)),s=Q- -64|0,0},function(A,I,g,C,B,Q,E,a){var _;return A|=0,I|=0,B|=0,Q|=0,E|=0,a|=0,s=_=s+-64|0,(g|=0)|(C|=0)&&(i[_+8>>2]=2036477234,i[_+12>>2]=1797285236,i[_>>2]=1634760805,i[_+4>>2]=857760878,i[_+16>>2]=o[0|a]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24,i[_+20>>2]=o[a+4|0]|o[a+5|0]<<8|o[a+6|0]<<16|o[a+7|0]<<24,i[_+24>>2]=o[a+8|0]|o[a+9|0]<<8|o[a+10|0]<<16|o[a+11|0]<<24,i[_+28>>2]=o[a+12|0]|o[a+13|0]<<8|o[a+14|0]<<16|o[a+15|0]<<24,i[_+32>>2]=o[a+16|0]|o[a+17|0]<<8|o[a+18|0]<<16|o[a+19|0]<<24,i[_+36>>2]=o[a+20|0]|o[a+21|0]<<8|o[a+22|0]<<16|o[a+23|0]<<24,i[_+40>>2]=o[a+24|0]|o[a+25|0]<<8|o[a+26|0]<<16|o[a+27|0]<<24,i[_+44>>2]=o[a+28|0]|o[a+29|0]<<8|o[a+30|0]<<16|o[a+31|0]<<24,i[_+48>>2]=Q,i[_+52>>2]=E,i[_+56>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,i[_+60>>2]=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,z(_,I,A,g,C),XC(_,64)),s=_- -64|0,0},function(A,I,g,C,B,Q,E){var a;return A|=0,I|=0,B|=0,Q|=0,E|=0,s=a=s+-64|0,(g|=0)|(C|=0)&&(i[a+8>>2]=2036477234,i[a+12>>2]=1797285236,i[a>>2]=1634760805,i[a+4>>2]=857760878,i[a+16>>2]=o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24,i[a+20>>2]=o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24,i[a+24>>2]=o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24,i[a+28>>2]=o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24,i[a+32>>2]=o[E+16|0]|o[E+17|0]<<8|o[E+18|0]<<16|o[E+19|0]<<24,i[a+36>>2]=o[E+20|0]|o[E+21|0]<<8|o[E+22|0]<<16|o[E+23|0]<<24,i[a+40>>2]=o[E+24|0]|o[E+25|0]<<8|o[E+26|0]<<16|o[E+27|0]<<24,E=o[E+28|0]|o[E+29|0]<<8|o[E+30|0]<<16|o[E+31|0]<<24,i[a+48>>2]=Q,i[a+44>>2]=E,i[a+52>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,i[a+56>>2]=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[a+60>>2]=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,z(a,I,A,g,C),XC(a,64)),s=a- -64|0,0}],fB.grow=function(A){var I=this.length;return this.length=this.length+A,I},fB.set=function(A,I){this[A]=I},fB.get=function(A){return this[A]},fB);function wB(){return g.byteLength/65536|0}return{e:Object.create(Object.prototype,{grow:{value:function(A){A|=0;var B=0|wB(),Q=B+A|0;if(B>>0<4294967280?(xI(A,A+C|0,0,g|=0,C,B,o|=0,E,a|=0,c|=0,t|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,i[I>>2]=A,i[I+4>>2]=B)):(rC(),Q()),0},D:function(A,I,g,C,B,Q,i,o,E,a,_,c){return 0|mI(A|=0,I|=0,g|=0,C|=0,(A=0)|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,_|=0,c|=0)},E:function(A,I,g,C,B,o,E,a,_,c,t){return A|=0,I|=0,C|=0,E|=0,_|=0,E|=_=0,!(B|=0)&(C|=_)>>>0<4294967280?(mI(A,A+C|0,0,g|=0,C,B,o|=0,E,a|=0,c|=0,t|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,i[I>>2]=A,i[I+4>>2]=B)):(rC(),Q()),0},F:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|dI(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},G:function(A,I,g,C,B,Q,o,E,a,_,c){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=dI(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,o|=0,E,a|=0,_|=0,c|=0)),I&&(i[I>>2]=g?0:B-16|0,i[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},H:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|HI(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},I:function(A,I,g,C,B,Q,o,E,a,_,c){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=HI(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,o|=0,E,a|=0,_|=0,c|=0)),I&&(i[I>>2]=g?0:B-16|0,i[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},J:BB,K:aB,L:hB,M:CB,N:EB,O:PC,P:BB,Q:eB,R:hB,S:CB,T:EB,U:PC,V:function(A,I,g,C,B,Q,i,o,E,a,_,c){return 0|pI(A|=0,I|=0,g|=0,C|=0,(A=0)|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,_|=0,c|=0)},W:function(A,I,g,C,B,o,E,a,_,c,t){return A|=0,I|=0,C|=0,E|=0,_|=0,E|=_=0,!(B|=0)&(C|=_)>>>0<4294967280?(pI(A,A+C|0,0,g|=0,C,B,o|=0,E,a|=0,c|=0,t|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,i[I>>2]=A,i[I+4>>2]=B)):(rC(),Q()),0},X:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|hI(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},Y:function(A,I,g,C,B,Q,o,E,a,_,c){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=hI(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,o|=0,E,a|=0,_|=0,c|=0)),I&&(i[I>>2]=g?0:B-16|0,i[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},Z:BB,_:_B,$:hB,aa:CB,ba:EB,ca:PC,da:BB,ea:BB,fa:function(){return 1462},ga:_I,ha:JI,ia:PC,ja:BB,ka:BB,la:IB,ma:PC,na:mA,oa:function(A,I,g,C){return 0|mC(A|=0,I|=0,g|=0,C|=0)},pa:Sg,qa:function(A,I,g,C,B){var Q;return A|=0,I|=0,g|=0,C|=0,s=Q=s-240|0,mA(Q,B|=0,32),UA(Q,I,g,C),JA(Q,I=Q+208|0),UA(g=Q+104|0,I,32,0),JA(g,A),XC(I,32),s=Q+240|0,0},ra:function(A,I,g,C,B){var Q,i;return A|=0,I|=0,g|=0,C|=0,s=Q=s-272|0,mA(i=Q+32|0,B|=0,32),UA(i,I,g,C),JA(i,I=Q+240|0),UA(g=Q+136|0,I,32,0),JA(g,Q),XC(I,32),I=NC(A,Q),g=MI(Q,A,32),s=Q+272|0,((0|A)==(0|Q)?-1:I)|g},sa:gB,ta:BB,ua:$C,va:PC,wa:iI,xa:EC,ya:wg,za:function(A,I,g,C,B){var Q;return A|=0,I|=0,g|=0,C|=0,s=Q=s-480|0,iI(Q,B|=0,32),SA(Q,I,g,C),j(Q,I=Q+416|0),SA(g=Q+208|0,I,64,0),j(g,A),XC(I,64),s=Q+480|0,0},Aa:function(A,I,g,C,B){var Q,i;return A|=0,I|=0,g|=0,C|=0,s=Q=s-544|0,iI(i=Q- -64|0,B|=0,32),SA(i,I,g,C),j(i,I=Q+480|0),SA(g=Q+272|0,I,64,0),j(g,Q),XC(I,64),I=GC(A,Q),g=MI(Q,A,64),s=Q+544|0,((0|A)==(0|Q)?-1:I)|g},Ba:BB,Ca:BB,Da:$C,Ea:PC,Fa:yC,Ga:EC,Ha:function(A,I){I|=0;var g,B=0;return s=g=s+-64|0,wg(A|=0,g),B=i[g+28>>2],A=i[g+24>>2],C[I+24|0]=A,C[I+25|0]=A>>>8,C[I+26|0]=A>>>16,C[I+27|0]=A>>>24,C[I+28|0]=B,C[I+29|0]=B>>>8,C[I+30|0]=B>>>16,C[I+31|0]=B>>>24,B=i[g+20>>2],A=i[g+16>>2],C[I+16|0]=A,C[I+17|0]=A>>>8,C[I+18|0]=A>>>16,C[I+19|0]=A>>>24,C[I+20|0]=B,C[I+21|0]=B>>>8,C[I+22|0]=B>>>16,C[I+23|0]=B>>>24,B=i[g+12>>2],A=i[g+8>>2],C[I+8|0]=A,C[I+9|0]=A>>>8,C[I+10|0]=A>>>16,C[I+11|0]=A>>>24,C[I+12|0]=B,C[I+13|0]=B>>>8,C[I+14|0]=B>>>16,C[I+15|0]=B>>>24,B=i[g+4>>2],A=i[g>>2],C[0|I]=A,C[I+1|0]=A>>>8,C[I+2|0]=A>>>16,C[I+3|0]=A>>>24,C[I+4|0]=B,C[I+5|0]=B>>>8,C[I+6|0]=B>>>16,C[I+7|0]=B>>>24,s=g- -64|0,0},Ia:_I,Ja:JI,Ka:BB,La:BB,Ma:BB,Na:BB,Oa:_B,Pa:BB,Qa:CB,Ra:CB,Sa:EB,Ta:function(){return 1476},Ua:function(A,I,g){return 0|cI(A|=0,I|=0,g|=0)},Va:UC,Wa:cC,Xa:Pg,Ya:qg,Za:Bg,_a:Qg,$a:Yg,ab:function(A,I,g,C,B,Q,i,o){A|=0,I|=0,g|=0,Q|=0;var E,a=0;return a=C|=0,C=B|=0,E=0|a,s=a=s-32|0,B=-1,cC(a,i|=0,o|=0)||(B=aI(A,I,g,E,C,Q,a),XC(a,32)),s=a+32|0,0|B},bb:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(rC(),Q()),0|aI(A+16|0,A,I,g,C,B,i)},cb:function(A,I,g,C,B,Q,i){return 0|sg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},db:Jg,eb:function(A,I,g,C,B,Q,i,o){A|=0,I|=0,g|=0,Q|=0;var E,a=0;return a=C|=0,C=B|=0,E=0|a,s=a=s-32|0,B=-1,cC(a,i|=0,o|=0)||(B=eI(A,I,g,E,C,Q,a),XC(a,32)),s=a+32|0,0|B},fb:hg,gb:function(A,I,g,C,B,Q,i){return 0|_g(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},hb:function(A,I,g,B,Q){A|=0,I|=0,Q|=0;var o,E,a,_,c=0,t=0;return c=g|=0,g=B|=0,_=0|c,c=B=s,s=o=B-512&-64,B=-1,UC(E=o- -64|0,a=o+32|0)||(iC(B=o+128|0,0,0,24),lC(B,E,32,0),lC(B,Q,32,0),eC(B,t=o+96|0,24),B=sg(A+32|0,I,_,g,t,Q,a),I=i[o+92>>2],g=i[o+88>>2],C[A+24|0]=g,C[A+25|0]=g>>>8,C[A+26|0]=g>>>16,C[A+27|0]=g>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[o+84>>2],g=i[o+80>>2],C[A+16|0]=g,C[A+17|0]=g>>>8,C[A+18|0]=g>>>16,C[A+19|0]=g>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[o+76>>2],g=i[o+72>>2],C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[o+68>>2],g=i[o+64>>2],C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,XC(a,32),XC(E,32),XC(t,24)),s=c,0|B},ib:function(A,I,g,C,B,Q){A|=0,I|=0,B|=0,Q|=0;var i,o,E=0;return o=E=s,s=i=E-448&-64,E=-1,!(C|=0)&(g|=0)>>>0>=48|C&&(iC(E=i- -64|0,0,0,24),lC(E,I,32,0),lC(E,B,32,0),eC(E,B=i+32|0,24),E=_g(A,I+32|0,g-32|0,C-(g>>>0<32)|0,B,I,Q)),s=o,0|E},jb:oB,kb:cI,lb:sC,mb:pg,nb:Pg,ob:qg,pb:Bg,qb:Qg,rb:BB,sb:BB,tb:BB,ub:BB,vb:_B,wb:BB,xb:CB,yb:CB,zb:EB,Ab:yA,Bb:BB,Cb:CB,Db:BB,Eb:CB,Fb:wA,Gb:BB,Hb:CB,Ib:BB,Jb:CB,Kb:AC,Lb:gB,Mb:CB,Nb:BB,Ob:CB,Pb:IC,Qb:gB,Rb:CB,Sb:BB,Tb:CB,Ub:gC,Vb:gB,Wb:CB,Xb:BB,Yb:CB,Zb:CB,_b:gB,$b:BB,ac:CB,bc:gB,cc:BB,dc:WC,ec:ZC,fc:function(A,I,g,C,B,Q,i){return 0|kC(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},gc:iC,hc:function(A,I,g,C){return 0|lC(A|=0,I|=0,g|=0,C|=0)},ic:eC,jc:PC,kc:CB,lc:gB,mc:BB,nc:CB,oc:gB,pc:BB,qc:CB,rc:CB,sc:ZC,tc:PC,uc:kC,vc:function(A,I,g,C,B,Q,i,o,E){return 0|QA(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0)},wc:eA,xc:function(A,I,g,B,i,E){A|=0,I|=0,i|=0,E|=0;var a=0,_=0,c=0,t=0,r=0,e=0,y=0;if(a=-1,!((B|=0)-65>>>0<4294967232|(g|=0)>>>0>64)){A:{if(!g||!I){if(((t=255&B)-65&255)>>>0>191){i?(_=725511199^(o[i+8|0]|o[i+9|0]<<8|o[i+10|0]<<16|o[i+11|0]<<24),g=-1694144372^(o[i+12|0]|o[i+13|0]<<8|o[i+14|0]<<16|o[i+15|0]<<24),I=-1377402159^(o[0|i]|o[i+1|0]<<8|o[i+2|0]<<16|o[i+3|0]<<24),i=1359893119^(o[i+4|0]|o[i+5|0]<<8|o[i+6|0]<<16|o[i+7|0]<<24)):(_=725511199,g=-1694144372,I=-1377402159,i=1359893119),E?(c=327033209^(o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24),B=1541459225^(o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24),a=-79577749^(o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24),E=528734635^(o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24)):(c=327033209,B=1541459225,a=-79577749,E=528734635),bg(A- -64|0,0,293),C[A+56|0]=c,C[A+57|0]=c>>>8,C[A+58|0]=c>>>16,C[A+59|0]=c>>>24,C[A+60|0]=B,C[A+61|0]=B>>>8,C[A+62|0]=B>>>16,C[A+63|0]=B>>>24,C[A+48|0]=a,C[A+49|0]=a>>>8,C[A+50|0]=a>>>16,C[A+51|0]=a>>>24,C[A+52|0]=E,C[A+53|0]=E>>>8,C[A+54|0]=E>>>16,C[A+55|0]=E>>>24,C[A+40|0]=_,C[A+41|0]=_>>>8,C[A+42|0]=_>>>16,C[A+43|0]=_>>>24,C[A+44|0]=g,C[A+45|0]=g>>>8,C[A+46|0]=g>>>16,C[A+47|0]=g>>>24,C[A+32|0]=I,C[A+33|0]=I>>>8,C[A+34|0]=I>>>16,C[A+35|0]=I>>>24,C[A+36|0]=i,C[A+37|0]=i>>>8,C[A+38|0]=i>>>16,C[A+39|0]=i>>>24,C[A+24|0]=241,C[A+25|0]=54,C[A+26|0]=29,C[A+27|0]=95,C[A+28|0]=58,C[A+29|0]=245,C[A+30|0]=79,C[A+31|0]=165,C[A+16|0]=43,C[A+17|0]=248,C[A+18|0]=148,C[A+19|0]=254,C[A+20|0]=114,C[A+21|0]=243,C[A+22|0]=110,C[A+23|0]=60,C[A+8|0]=59,C[A+9|0]=167,C[A+10|0]=202,C[A+11|0]=132,C[A+12|0]=133,C[A+13|0]=174,C[A+14|0]=103,C[A+15|0]=187,I=-222443256^t,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,C[A+4|0]=103,C[A+5|0]=230,C[A+6|0]=9,C[A+7|0]=106;break A}rC(),Q()}s=e=s-128|0,!I|((y=255&B)-65&255)>>>0<=191|((t=255&g)-65&255)>>>0<=191?(rC(),Q()):(i?(_=725511199^(o[i+8|0]|o[i+9|0]<<8|o[i+10|0]<<16|o[i+11|0]<<24),g=-1694144372^(o[i+12|0]|o[i+13|0]<<8|o[i+14|0]<<16|o[i+15|0]<<24),a=-1377402159^(o[0|i]|o[i+1|0]<<8|o[i+2|0]<<16|o[i+3|0]<<24),i=1359893119^(o[i+4|0]|o[i+5|0]<<8|o[i+6|0]<<16|o[i+7|0]<<24)):(_=725511199,g=-1694144372,a=-1377402159,i=1359893119),E?(c=327033209^(o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24),B=1541459225^(o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24),r=-79577749^(o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24),E=528734635^(o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24)):(c=327033209,B=1541459225,r=-79577749,E=528734635),bg(A- -64|0,0,293),C[A+56|0]=c,C[A+57|0]=c>>>8,C[A+58|0]=c>>>16,C[A+59|0]=c>>>24,C[A+60|0]=B,C[A+61|0]=B>>>8,C[A+62|0]=B>>>16,C[A+63|0]=B>>>24,C[A+48|0]=r,C[A+49|0]=r>>>8,C[A+50|0]=r>>>16,C[A+51|0]=r>>>24,C[A+52|0]=E,C[A+53|0]=E>>>8,C[A+54|0]=E>>>16,C[A+55|0]=E>>>24,C[A+40|0]=_,C[A+41|0]=_>>>8,C[A+42|0]=_>>>16,C[A+43|0]=_>>>24,C[A+44|0]=g,C[A+45|0]=g>>>8,C[A+46|0]=g>>>16,C[A+47|0]=g>>>24,C[A+32|0]=a,C[A+33|0]=a>>>8,C[A+34|0]=a>>>16,C[A+35|0]=a>>>24,C[A+36|0]=i,C[A+37|0]=i>>>8,C[A+38|0]=i>>>16,C[A+39|0]=i>>>24,C[A+24|0]=241,C[A+25|0]=54,C[A+26|0]=29,C[A+27|0]=95,C[A+28|0]=58,C[A+29|0]=245,C[A+30|0]=79,C[A+31|0]=165,C[A+16|0]=43,C[A+17|0]=248,C[A+18|0]=148,C[A+19|0]=254,C[A+20|0]=114,C[A+21|0]=243,C[A+22|0]=110,C[A+23|0]=60,C[A+8|0]=59,C[A+9|0]=167,C[A+10|0]=202,C[A+11|0]=132,C[A+12|0]=133,C[A+13|0]=174,C[A+14|0]=103,C[A+15|0]=187,g=-222443256^(t<<8|y),C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,g=t>>>24^1779033703,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,g=Ng(bg(e,0,128),I,t),Ng(A+96|0,g,128),I=128+(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)|0,C[A+352|0]=I,C[A+353|0]=I>>>8,C[A+354|0]=I>>>16,C[A+355|0]=I>>>24,XC(g,128),s=g+128|0)}a=0}return 0|a},yc:lC,zc:Hg,Ac:gB,Bc:CC,Cc:function(){return 1531},Dc:BB,Ec:function(){return 104},Fc:$I,Gc:function(A,I,g,C){return 0|UA(A|=0,I|=0,g|=0,C|=0)},Hc:JA,Ic:function(A,I,g,C){A|=0,I|=0,g|=0,C|=0;var B,Q=0;return s=B=s-112|0,Q=i[8811],i[B+16>>2]=i[8810],i[B+20>>2]=Q,Q=i[8813],i[B+24>>2]=i[8812],i[B+28>>2]=Q,Q=i[8815],i[B+32>>2]=i[8814],i[B+36>>2]=Q,i[B+40>>2]=0,i[B+44>>2]=0,Q=i[8809],i[B+8>>2]=i[8808],i[B+12>>2]=Q,UA(Q=B+8|0,I,g,C),JA(Q,A),s=B+112|0,0},Jc:gB,Kc:IB,Lc:SI,Mc:QC,Nc:j,Oc:CC,Pc:CB,Qc:gB,Rc:eB,Sc:BB,Tc:YI,Uc:WC,Vc:CB,Wc:gB,Xc:eB,Yc:BB,Zc:YI,_c:PC,$c:function(A,I,g){return 0|mA(A|=0,I|=0,g|=0)},ad:function(A,I,g){return 0|mC(A|=0,I|=0,g|=0,0)},bd:function(A,I){return Sg(A|=0,I|=0),XC(A,4),0},cd:function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,s=Q=s-208|0,mA(Q,I|=0,g|=0),mC(Q,C,B,0),Sg(Q,A),XC(Q,4),s=Q+208|0,0},dd:PC,ed:function(A,I,g,B,Q){A|=0,I|=0,g|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-256|0,C[E+15|0]=1,I>>>0<=8160){if(I>>>0>=32)for(t=A-32|0,a=32;c=a,mA(a=E+48|0,Q,32),_&&mC(a,_+t|0,32,0),mC(a=E+48|0,g,B,0),mC(a,E+15|0,1,0),Sg(a,A+_|0),C[E+15|0]=o[E+15|0]+1,(a=(_=c)+32|0)>>>0<=I>>>0;);(_=31&I)&&(mA(I=E+48|0,Q,32),c&&mC(I,(A+c|0)-32|0,32,0),mC(I=E+48|0,g,B,0),mC(I,E+15|0,1,0),Sg(g=I,I=E+16|0),Ng(A+c|0,I,_),XC(I,32)),XC(E+48|0,208),A=0}else i[9404]=28,A=-1;return s=E+256|0,0|A},fd:BB,gd:hB,hd:function(){return 8160},id:IB,jd:yC,kd:function(A,I,g){return 0|dC(A|=0,I|=0,g|=0,0)},ld:function(A,I){return wg(A|=0,I|=0),XC(A,4),0},md:function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,s=Q=s-416|0,iI(Q,I|=0,g|=0),dC(Q,C,B,0),wg(Q,A),XC(Q,4),s=Q+416|0,0},nd:function(A){ag(A|=0,64)},od:function(A,I,g,B,Q){A|=0,I|=0,g|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-496|0,C[E+15|0]=1,I>>>0<=16320){if(I>>>0>=64)for(t=A+-64|0,a=64;c=a,iI(a=E+80|0,Q,64),_&&dC(a,_+t|0,64,0),dC(a=E+80|0,g,B,0),dC(a,E+15|0,1,0),wg(a,A+_|0),C[E+15|0]=o[E+15|0]+1,(a=(_=c)- -64|0)>>>0<=I>>>0;);(_=63&I)&&(iI(I=E+80|0,Q,64),c&&dC(I,(A+c|0)-64|0,64,0),dC(I=E+80|0,g,B,0),dC(I,E+15|0,1,0),wg(g=I,I=E+16|0),Ng(A+c|0,I,_),XC(I,64)),XC(E+80|0,416),A=0}else i[9404]=28,A=-1;return s=E+496|0,0|A},pd:gB,qd:hB,rd:function(){return 16320},sd:$C,td:function(A,I,g){return A|=0,kC(I|=0,32,g|=0,32,0,0,0),0|KC(A,I)},ud:function(A,I){return A|=0,ag(I|=0,32),0|KC(A,I)},vd:function(A,I,g,B,i){I|=0,g|=0,B|=0,i|=0;var E,a,_=0,c=0,t=0;if(a=_=s,s=_=_-512&-64,E=(A|=0)||I){if(t=-1,!tC(c=_+96|0,B,i)){for(B=I||A,A=0,iC(I=_+128|0,0,0,64),lC(I,c,32,0),XC(c,32),lC(I,g,32,0),lC(I,i,32,0),eC(I,_+32|0,64),XC(I,384);g=(I=_+32|0)+A|0,C[A+E|0]=o[0|g],C[A+B|0]=o[g+32|0],C[(g=1|A)+E|0]=o[I+g|0],C[g+B|0]=o[I+(33|A)|0],32!=(0|(A=A+2|0)););XC(I,64),t=0}return s=a,0|t}rC(),Q()},wd:function(A,I,g,B,i){I|=0,g|=0,B|=0,i|=0;var E,a,_=0,c=0,t=0;if(a=_=s,s=_=_-512&-64,E=(A|=0)||I){if(t=-1,!tC(c=_+96|0,B,i)){for(B=I||A,A=0,iC(I=_+128|0,0,0,64),lC(I,c,32,0),XC(c,32),lC(I,i,32,0),lC(I,g,32,0),eC(I,_+32|0,64),XC(I,384);g=(I=_+32|0)+A|0,C[A+B|0]=o[0|g],C[A+E|0]=o[g+32|0],C[(g=1|A)+B|0]=o[I+g|0],C[g+E|0]=o[I+(33|A)|0],32!=(0|(A=A+2|0)););XC(I,64),t=0}return s=a,0|t}rC(),Q()},xd:BB,yd:BB,zd:BB,Ad:BB,Bd:function(){return 1332},Cd:TC,Dd:CB,Ed:BB,Fd:Vg,Gd:Zg,Hd:function(A,I){return 0|wC(A|=0,I|=0)},Id:BC,Jd:function(A,I){return 0|nC(A|=0,I|=0)},Kd:function(){return 1494},Ld:PC,Md:Vg,Nd:Zg,Od:wC,Pd:BC,Qd:nC,Rd:CB,Sd:BB,Td:TC,Ud:PC,Vd:yB,Wd:CB,Xd:cB,Yd:hB,Zd:cB,_d:CB,$d:AB,ae:function(){return 1554},be:rB,ce:cB,de:VC,ee:xC,fe:sB,ge:LC,he:function(){return 6},ie:function(){return 134217728},je:eB,ke:function(){return 536870912},le:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|rI(A|=0,(A=0)|(I|=0),g|=0,C|=0,A|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},me:function(A,I,g,C,B,Q,i){return 0|OI(A|=0,I|=0,(A=0)|(g|=0),C|=0,A|(B|=0),Q|=0,i|=0)},ne:function(A,I,g,C){return 0|bC(A|=0,I|=0,g|=0,C|=0)},oe:function(A,I,g,C){return 0|HC(A|=0,I|=0,g|=0,C|=0)},pe:function(A,I,g,C){return 0|YC(A|=0,I|=0,g|=0,C|=0)},qe:tB,re:CB,se:cB,te:hB,ue:cB,ve:CB,we:AB,xe:OC,ye:yB,ze:cB,Ae:VC,Be:xC,Ce:tB,De:qC,Ee:rB,Fe:RC,Ge:sB,He:vC,Ie:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|yI(A|=0,(A=0)|(I|=0),g|=0,C|=0,A|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},Je:Fg,Ke:function(A,I,g,C){return 0|JC(A|=0,I|=0,g|=0,C|=0)},Le:yB,Me:tB,Ne:tB,Oe:CB,Pe:cB,Qe:hB,Re:cB,Se:CB,Te:AB,Ue:OC,Ve:yB,We:cB,Xe:VC,Ye:xC,Ze:tB,_e:qC,$e:rB,af:RC,bf:sB,cf:vC,df:function(A,I,g,C,B,Q,o,E,a,_,c){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,o|=0,E|=0,a|=0,_|=0,I|=0,B|=0,E|=0;A:{switch((c|=0)-1|0){case 0:A=rI(A,I,g,C,B,Q,o,E,a,_,1);break A;case 1:A=yI(A,I,g,C,B,Q,o,E,a,_,2);break A}i[9404]=28,A=-1}return 0|A},ef:Fg,ff:function(A,I,g,C,B,i,o,E){A|=0,I|=0,g|=0,C|=0,B|=0,i|=0,o|=0,g|=0,B|=0;A:{switch((E|=0)-1|0){case 1:A=TI(A,I,g,C,B,i,o);break A;default:rC(),Q();case 0:}A=OI(A,I,g,C,B,i,o)}return 0|A},gf:function(A,I,g,C){return I|=0,g|=0,C|=0,gg(A|=0,1564,10)?gg(A,1554,9)?(i[9404]=28,A=-1):A=bC(A,I,g,C):A=JC(A,I,g,C),0|A},hf:function(A,I,g,C){return I|=0,g|=0,C|=0,gg(A|=0,1564,10)?gg(A,1554,9)?(i[9404]=28,A=-1):A=HC(A,I,g,C):A=YC(A,I,g,C),0|A},jf:function(){return 1156},kf:function(){return 1443},lf:KC,mf:tC,nf:BB,of:BB,pf:CI,qf:pC,rf:BB,sf:BB,tf:BB,uf:_B,vf:BB,wf:CB,xf:CB,yf:EB,zf:function(){return 1486},Af:Pg,Bf:qg,Cf:PC,Df:Yg,Ef:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(rC(),Q()),aI(A+16|0,A,I,g,C,B,i),0},Ff:Jg,Gf:hg,Hf:Pg,If:qg,Jf:BB,Kf:_B,Lf:BB,Mf:CB,Nf:CB,Of:EB,Pf:PC,Qf:PC,Rf:function(A,I,g){return A|=0,g|=0,ag(I|=0,24),yA(A,I,g,0),C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,g=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,I=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,C[A+44|0]=0,C[A+45|0]=0,C[A+46|0]=0,C[A+47|0]=0,C[A+48|0]=0,C[A+49|0]=0,C[A+50|0]=0,C[A+51|0]=0,C[A+36|0]=g,C[A+37|0]=g>>>8,C[A+38|0]=g>>>16,C[A+39|0]=g>>>24,C[A+40|0]=I,C[A+41|0]=I>>>8,C[A+42|0]=I>>>16,C[A+43|0]=I>>>24,0},Sf:function(A,I,g){return yA(A|=0,I|=0,g|=0,0),C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,g=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,I=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,C[A+44|0]=0,C[A+45|0]=0,C[A+46|0]=0,C[A+47|0]=0,C[A+48|0]=0,C[A+49|0]=0,C[A+50|0]=0,C[A+51|0]=0,C[A+36|0]=g,C[A+37|0]=g>>>8,C[A+38|0]=g>>>16,C[A+39|0]=g>>>24,C[A+40|0]=I,C[A+41|0]=I>>>8,C[A+42|0]=I>>>16,C[A+43|0]=I>>>24,0},Tf:function(A){var I,g=0,B=0;s=I=s-48|0,g=o[28+(A|=0)|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,i[I+24>>2]=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,i[I+28>>2]=g,g=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,i[I+16>>2]=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,i[I+20>>2]=g,g=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,i[I>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[I+4>>2]=g,g=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,i[I+8>>2]=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,i[I+12>>2]=g,g=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,i[I+32>>2]=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,i[I+36>>2]=g,xg(I,I,40,0,A+32|0,A),g=i[I+28>>2],B=i[I+24>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=g,C[A+29|0]=g>>>8,C[A+30|0]=g>>>16,C[A+31|0]=g>>>24,g=i[I+20>>2],B=i[I+16>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=g,C[A+21|0]=g>>>8,C[A+22|0]=g>>>16,C[A+23|0]=g>>>24,g=i[I+12>>2],B=i[I+8>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=g,C[A+13|0]=g>>>8,C[A+14|0]=g>>>16,C[A+15|0]=g>>>24,g=i[I+4>>2],B=i[I>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,B=i[I+36>>2],g=i[I+32>>2],C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,C[A+36|0]=g,C[A+37|0]=g>>>8,C[A+38|0]=g>>>16,C[A+39|0]=g>>>24,C[A+40|0]=B,C[A+41|0]=B>>>8,C[A+42|0]=B>>>16,C[A+43|0]=B>>>24,s=I+48|0},Uf:function(A,I,g,B,E,a,_,c,t,r){A|=0,I|=0,B|=0,a|=0,_|=0,t|=0,r|=0;var e,y=0,h=0,D=0;return y=E|=0,y|=E=0,e=E|(c|=0),s=E=s-384|0,(g|=0)&&(i[g>>2]=0,i[g+4>>2]=0),!a&y>>>0<4294967279?(jg(h=E+16|0,64,0,D=A+32|0,A),wC(c=E+80|0,h),XC(h,64),SC(c,_,e,t),SC(c,35216,0-e&15,0),i[E+72>>2]=0,i[E+76>>2]=0,i[(_=E- -64|0)>>2]=0,i[_+4>>2]=0,i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,i[E+16>>2]=0,i[E+20>>2]=0,i[E+24>>2]=0,i[E+28>>2]=0,C[E+16|0]=r,Cg(h,h,64,0,D,1,A),SC(c,h,64,0),C[0|I]=o[E+16|0],Cg(I=I+1|0,B,y,a,D,2,A),SC(c,I,y,a),SC(c,35216,15&y,0),i[E+8>>2]=e,i[E+12>>2]=t,SC(c,B=E+8|0,8,0),i[E+8>>2]=y- -64,i[E+12>>2]=a-((y>>>0<4294967232)-1|0),SC(c,B,8,0),nC(c,I=I+y|0),XC(c,256),C[A+36|0]=o[A+36|0]^o[0|I],C[A+37|0]=o[A+37|0]^o[I+1|0],C[A+38|0]=o[A+38|0]^o[I+2|0],C[A+39|0]=o[A+39|0]^o[I+3|0],C[A+40|0]=o[A+40|0]^o[I+4|0],C[A+41|0]=o[A+41|0]^o[I+5|0],C[A+42|0]=o[A+42|0]^o[I+6|0],C[A+43|0]=o[A+43|0]^o[I+7|0],XI(D),(2&r||GI(D,4))&&(I=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,i[E+360>>2]=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,i[E+364>>2]=I,I=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,i[E+352>>2]=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,i[E+356>>2]=I,I=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,i[E+336>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[E+340>>2]=I,I=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,i[E+344>>2]=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,i[E+348>>2]=I,I=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,i[E+368>>2]=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,i[E+372>>2]=I,xg(I=E+336|0,I,40,0,D,A),I=i[E+364>>2],B=i[E+360>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[E+356>>2],B=i[E+352>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[E+348>>2],B=i[E+344>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[E+340>>2],B=i[E+336>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=i[E+368>>2],B=i[E+372>>2],C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,C[A+36|0]=I,C[A+37|0]=I>>>8,C[A+38|0]=I>>>16,C[A+39|0]=I>>>24,C[A+40|0]=B,C[A+41|0]=B>>>8,C[A+42|0]=B>>>16,C[A+43|0]=B>>>24),g&&(a=(A=y+17|0)>>>0<17?a+1|0:a,i[g>>2]=A,i[g+4>>2]=a),s=E+384|0):(rC(),Q()),0},Vf:function(A,I,g,B,E,a,_,c,t,r){A|=0,I|=0,B|=0,E|=0,c|=0,r|=0;var e,y=0,h=0,D=0,f=0,p=0,w=0;y=a|=0,a=_|=0,h=0|y,e=t|=0,s=_=s-400|0,(g|=0)&&(i[g>>2]=0,i[g+4>>2]=0),B&&(C[0|B]=255),w=-1;A:{I:{if(!((t=h>>>0<17)&!a)){if(p=y=a-t|0,!y&(t=h-17|0)>>>0>=4294967279|y)break I;jg(D=_+32|0,64,0,f=A+32|0,A),wC(y=_+96|0,D),XC(D,64),SC(y,c,e,r),SC(y,35216,0-e&15,0),i[_+88>>2]=0,i[_+92>>2]=0,i[_+80>>2]=0,i[_+84>>2]=0,i[_+72>>2]=0,i[_+76>>2]=0,i[(c=_- -64|0)>>2]=0,i[c+4>>2]=0,i[_+56>>2]=0,i[_+60>>2]=0,i[_+48>>2]=0,i[_+52>>2]=0,i[_+40>>2]=0,i[_+44>>2]=0,i[_+32>>2]=0,i[_+36>>2]=0,C[_+32|0]=o[0|E],Cg(D,D,64,0,f,1,A),c=o[_+32|0],C[_+32|0]=o[0|E],SC(y,D,64,0),SC(y,E=E+1|0,t,p),SC(y,35216,h-1&15,0),i[_+24>>2]=e,i[_+28>>2]=r,SC(y,r=_+24|0,8,0),a=(h=h+47|0)>>>0<47?a+1|0:a,i[_+24>>2]=h,i[_+28>>2]=a,SC(y,r,8,0),nC(y,_),XC(y,256),MI(_,E+t|0,16)?XC(_,16):(Cg(I,E,t,p,f,2,A),C[A+36|0]=o[A+36|0]^o[0|_],C[A+37|0]=o[A+37|0]^o[_+1|0],C[A+38|0]=o[A+38|0]^o[_+2|0],C[A+39|0]=o[A+39|0]^o[_+3|0],C[A+40|0]=o[A+40|0]^o[_+4|0],C[A+41|0]=o[A+41|0]^o[_+5|0],C[A+42|0]=o[A+42|0]^o[_+6|0],C[A+43|0]=o[A+43|0]^o[_+7|0],XI(f),(2&c||GI(f,4))&&(I=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,i[_+376>>2]=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,i[_+380>>2]=I,I=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,i[_+368>>2]=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,i[_+372>>2]=I,I=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,i[_+352>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[_+356>>2]=I,I=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,i[_+360>>2]=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,i[_+364>>2]=I,I=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,i[_+384>>2]=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,i[_+388>>2]=I,xg(I=_+352|0,I,40,0,f,A),I=i[_+380>>2],E=i[_+376>>2],C[A+24|0]=E,C[A+25|0]=E>>>8,C[A+26|0]=E>>>16,C[A+27|0]=E>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[_+372>>2],E=i[_+368>>2],C[A+16|0]=E,C[A+17|0]=E>>>8,C[A+18|0]=E>>>16,C[A+19|0]=E>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[_+364>>2],E=i[_+360>>2],C[A+8|0]=E,C[A+9|0]=E>>>8,C[A+10|0]=E>>>16,C[A+11|0]=E>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[_+356>>2],E=i[_+352>>2],C[0|A]=E,C[A+1|0]=E>>>8,C[A+2|0]=E>>>16,C[A+3|0]=E>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=i[_+384>>2],E=i[_+388>>2],C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,C[A+36|0]=I,C[A+37|0]=I>>>8,C[A+38|0]=I>>>16,C[A+39|0]=I>>>24,C[A+40|0]=E,C[A+41|0]=E>>>8,C[A+42|0]=E>>>16,C[A+43|0]=E>>>24),g&&(i[g>>2]=t,i[g+4>>2]=p),w=0,B&&(C[0|B]=c))}s=_+400|0;break A}rC(),Q()}return 0|w},Wf:function(){return 52},Xf:function(){return 17},Yf:_B,Zf:BB,_f:function(){return-18},$f:hB,ag:yB,bg:tB,cg:rB,dg:eB,eg:CB,fg:function(){return 1521},gg:T,hg:zC,ig:eB,jg:CB,kg:T,lg:IB,mg:gB,ng:BB,og:BB,pg:gB,qg:QB,rg:function(){return 1454},sg:function(A,I,g){return 0|FA(A|=0,I|=0,g|=0)},tg:function(A,I){return 0|YA(A|=0,I|=0)},ug:LI,vg:bI,wg:vg,xg:Wg,yg:function(A){return 0|uC(A|=0)},zg:QC,Ag:function(A,I,g,C){return 0|ng(A|=0,I|=0,g|=0,C|=0)},Bg:function(A,I,g){return 0|Kg(A|=0,I|=0,g|=0)},Cg:IB,Dg:gB,Eg:BB,Fg:BB,Gg:gB,Hg:QB,Ig:function(A,I){A|=0;var g,B,Q,i,E,a,_=0;return g=o[8+(_=I|=0)|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24,B=o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24,Q=o[_+16|0]|o[_+17|0]<<8|o[_+18|0]<<16|o[_+19|0]<<24,i=o[_+20|0]|o[_+21|0]<<8|o[_+22|0]<<16|o[_+23|0]<<24,E=o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24,I=o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24,a=o[_+28|0]|o[_+29|0]<<8|o[_+30|0]<<16|o[_+31|0]<<24,_=o[_+24|0]|o[_+25|0]<<8|o[_+26|0]<<16|o[_+27|0]<<24,C[A+24|0]=_,C[A+25|0]=_>>>8,C[A+26|0]=_>>>16,C[A+27|0]=_>>>24,C[A+28|0]=a,C[A+29|0]=a>>>8,C[A+30|0]=a>>>16,C[A+31|0]=a>>>24,C[A+16|0]=Q,C[A+17|0]=Q>>>8,C[A+18|0]=Q>>>16,C[A+19|0]=Q>>>24,C[A+20|0]=i,C[A+21|0]=i>>>8,C[A+22|0]=i>>>16,C[A+23|0]=i>>>24,C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=B,C[A+13|0]=B>>>8,C[A+14|0]=B>>>16,C[A+15|0]=B>>>24,C[0|A]=E,C[A+1|0]=E>>>8,C[A+2|0]=E>>>16,C[A+3|0]=E>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,0},Jg:function(A,I){A|=0;var g,B,Q,i,E,a,_=0;return g=o[32+(_=I|=0)|0]|o[_+33|0]<<8|o[_+34|0]<<16|o[_+35|0]<<24,B=o[_+36|0]|o[_+37|0]<<8|o[_+38|0]<<16|o[_+39|0]<<24,Q=o[_+40|0]|o[_+41|0]<<8|o[_+42|0]<<16|o[_+43|0]<<24,i=o[_+44|0]|o[_+45|0]<<8|o[_+46|0]<<16|o[_+47|0]<<24,E=o[_+48|0]|o[_+49|0]<<8|o[_+50|0]<<16|o[_+51|0]<<24,I=o[_+52|0]|o[_+53|0]<<8|o[_+54|0]<<16|o[_+55|0]<<24,a=o[_+60|0]|o[_+61|0]<<8|o[_+62|0]<<16|o[_+63|0]<<24,_=o[_+56|0]|o[_+57|0]<<8|o[_+58|0]<<16|o[_+59|0]<<24,C[A+24|0]=_,C[A+25|0]=_>>>8,C[A+26|0]=_>>>16,C[A+27|0]=_>>>24,C[A+28|0]=a,C[A+29|0]=a>>>8,C[A+30|0]=a>>>16,C[A+31|0]=a>>>24,C[A+16|0]=E,C[A+17|0]=E>>>8,C[A+18|0]=E>>>16,C[A+19|0]=E>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,C[A+8|0]=Q,C[A+9|0]=Q>>>8,C[A+10|0]=Q>>>16,C[A+11|0]=Q>>>24,C[A+12|0]=i,C[A+13|0]=i>>>8,C[A+14|0]=i>>>16,C[A+15|0]=i>>>24,C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=B,C[A+5|0]=B>>>8,C[A+6|0]=B>>>16,C[A+7|0]=B>>>24,0},Kg:uC,Lg:QC,Mg:ng,Ng:Kg,Og:FA,Pg:YA,Qg:function(A,I){A|=0;var g,C=0,B=0,Q=0,o=0,E=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,fA=0,pA=0,wA=0,nA=0,kA=0,FA=0,SA=0,NA=0,GA=0,MA=0,KA=0,UA=0,bA=0,HA=0,YA=0;return s=g=s-256|0,SA=-1,KI(I|=0)||qA(C=g+96|0,I)||gA(C)&&(SA=0,u=i[g+172>>2],i[g+36>>2]=0-u,n=i[g+168>>2],i[g+32>>2]=0-n,x=i[g+164>>2],i[g+28>>2]=0-x,k=i[g+160>>2],i[g+24>>2]=0-k,v=i[g+156>>2],i[g+20>>2]=0-v,F=i[g+152>>2],i[g+16>>2]=0-F,R=i[g+148>>2],i[g+12>>2]=0-R,S=i[g+144>>2],i[g+8>>2]=0-S,L=i[g+140>>2],i[g+4>>2]=0-L,Q=i[g+136>>2],i[g>>2]=1-Q,LA(g,g),I=Ig(N=i[g+4>>2],d=N>>31,G=v<<1,IA=G>>31),C=f,B=Ig(p=i[g>>2],M=p>>31,k,K=k>>31),C=f+C|0,C=(I=B+I|0)>>>0>>0?C+1|0:C,B=(o=Ig(U=i[g+8>>2],P=U>>31,F,b=F>>31))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(m=i[g+12>>2],j=m>>31,W=R<<1,CA=W>>31),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(q=i[g+16>>2],V=q>>31,S,H=S>>31),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,fA=o=i[g+20>>2],h=Ig(o,BA=o>>31,Z=L<<1,QA=Z>>31),B=f+I|0,B=(C=h+C|0)>>>0>>0?B+1|0:B,pA=r=i[g+24>>2],I=(Q=Ig(r,sA=r>>31,h=Q+1|0,Y=h>>31))+C|0,C=f+B|0,C=I>>>0>>0?C+1|0:C,iA=i[g+28>>2],B=(Q=Ig(w=a(iA,19),X=w>>31,T=u<<1,oA=T>>31))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,NA=i[g+32>>2],B=Ig(_=a(NA,19),z=_>>31,n,J=n>>31),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,GA=i[g+36>>2],B=Ig(y=a(GA,19),l=y>>31,$=x<<1,EA=$>>31),I=f+I|0,c=C=B+C|0,Q=C>>>0>>0?I+1|0:I,I=Ig(F,b,N,d),C=f,E=Ig(p,M,v,aA=v>>31),B=f+C|0,B=(I=E+I|0)>>>0>>0?B+1|0:B,E=Ig(U,P,R,_A=R>>31),C=f+B|0,C=(I=E+I|0)>>>0>>0?C+1|0:C,B=(E=Ig(S,H,m,j))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(q,V,L,cA=L>>31),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(h,Y,o,BA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,E=Ig(r=a(r,19),AA=r>>31,u,tA=u>>31),B=f+I|0,B=(C=E+C|0)>>>0>>0?B+1|0:B,I=(E=Ig(n,J,w,X))+C|0,C=f+B|0,C=I>>>0>>0?C+1|0:C,B=(E=Ig(_,z,x,rA=x>>31))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(y,l,k,K),I=f+I|0,wA=C=C+B|0,O=C>>>0>>0?I+1|0:I,I=Ig(N,d,W,CA),B=f,C=(E=Ig(p,M,F,b))+I|0,I=f+B|0,I=C>>>0>>0?I+1|0:I,E=Ig(S,H,U,P),B=f+I|0,B=(C=E+C|0)>>>0>>0?B+1|0:B,I=(E=Ig(m,j,Z,QA))+C|0,C=f+B|0,C=I>>>0>>0?C+1|0:C,B=(E=Ig(h,Y,q,V))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(E=a(o,19),eA=E>>31,T,oA),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(n,J,r,AA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,o=Ig(w,X,$,EA),B=f+I|0,B=(C=o+C|0)>>>0>>0?B+1|0:B,I=(o=Ig(_,z,k,K))+C|0,C=f+B|0,C=I>>>0>>0?C+1|0:C,B=(o=Ig(y,l,G,IA))+I|0,I=f+C|0,MA=B,KA=I=B>>>0>>0?I+1|0:I,UA=B=B+33554432|0,bA=I=B>>>0<33554432?I+1|0:I,B=(67108863&I)<<6|B>>>26,I=(I>>26)+O|0,wA=o=B+wA|0,I=B>>>0>o>>>0?I+1|0:I,HA=o=o+16777216|0,I=(C=(B=o>>>0<16777216?I+1|0:I)>>25)+Q|0,I=(B=(o=(33554431&B)<<7|o>>>25)+c|0)>>>0>>0?I+1|0:I,D=C=B+33554432|0,o=I=C>>>0<33554432?I+1|0:I,i[g+72>>2]=B-(-67108864&C),I=Ig(N,d,Z,QA),C=f,Q=Ig(p,M,S,H),B=f+C|0,B=(I=Q+I|0)>>>0>>0?B+1|0:B,C=(Q=Ig(h,Y,U,P))+I|0,I=f+B|0,I=C>>>0>>0?I+1|0:I,B=Ig(Q=a(m,19),yA=Q>>31,T,oA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(c=Ig(O=a(q,19),hA=O>>31,n,J))+C|0,C=f+I|0,C=B>>>0>>0?C+1|0:C,c=Ig($,EA,E,eA),I=f+C|0,I=(B=c+B|0)>>>0>>0?I+1|0:I,C=(c=Ig(k,K,r,AA))+B|0,B=f+I|0,B=C>>>0>>0?B+1|0:B,c=Ig(w,X,G,IA),I=f+B|0,I=(C=c+C|0)>>>0>>0?I+1|0:I,B=Ig(_,z,F,b),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(c=Ig(y,l,W,CA))+C|0,C=f+I|0,e=B,nA=B>>>0>>0?C+1|0:C,I=Ig(h,Y,N,d),C=f,B=(c=Ig(p,M,L,cA))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,c=C=a(U,19),C=(t=Ig(C,DA=C>>31,u,tA))+B|0,B=f+I|0,B=C>>>0>>0?B+1|0:B,t=Ig(n,J,Q,yA),I=f+B|0,I=(C=t+C|0)>>>0>>0?I+1|0:I,B=Ig(O,hA,x,rA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(t=Ig(k,K,E,eA))+C|0,C=f+I|0,C=B>>>0>>0?C+1|0:C,t=Ig(r,AA,v,aA),I=f+C|0,I=(B=t+B|0)>>>0>>0?I+1|0:I,C=(t=Ig(F,b,w,X))+B|0,B=f+I|0,B=C>>>0>>0?B+1|0:B,t=Ig(_,z,R,_A),I=f+B|0,I=(C=t+C|0)>>>0>>0?I+1|0:I,B=Ig(y,l,S,H),I=f+I|0,kA=C=B+C|0,t=C>>>0>>0?I+1|0:I,I=Ig(I=a(N,19),I>>31,T,oA),C=f,B=Ig(p,M,h,Y),C=f+C|0,C=(I=B+I|0)>>>0>>0?C+1|0:C,B=(c=Ig(n,J,c,DA))+I|0,I=f+C|0,C=(Q=Ig(Q,yA,$,EA))+B|0,B=f+(B>>>0>>0?I+1|0:I)|0,B=C>>>0>>0?B+1|0:B,Q=Ig(k,K,O,hA),I=f+B|0,I=(C=Q+C|0)>>>0>>0?I+1|0:I,B=Ig(G,IA,E,eA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(Q=Ig(F,b,r,AA))+C|0,C=f+I|0,C=B>>>0>>0?C+1|0:C,Q=Ig(w,X,W,CA),I=f+C|0,I=(B=Q+B|0)>>>0>>0?I+1|0:I,C=(Q=Ig(_,z,S,H))+B|0,B=f+I|0,B=C>>>0>>0?B+1|0:B,Q=Ig(y,l,Z,QA),I=f+B|0,c=C=Q+C|0,yA=I=C>>>0>>0?I+1|0:I,DA=C=C+33554432|0,YA=I=C>>>0<33554432?I+1|0:I,B=I>>26,I=(67108863&I)<<6|C>>>26,C=B+t|0,t=Q=I+kA|0,I=C=I>>>0>Q>>>0?C+1|0:C,kA=Q=Q+16777216|0,Q=(33554431&(I=Q>>>0<16777216?I+1|0:I))<<7|Q>>>25,I=(I>>25)+nA|0,I=(C=Q+e|0)>>>0>>0?I+1|0:I,B=C,nA=C=C+33554432|0,Q=I=C>>>0<33554432?I+1|0:I,i[g+56>>2]=B-(-67108864&C),I=Ig(k,K,N,d),B=f,C=(e=Ig(p,M,x,rA))+I|0,I=f+B|0,I=C>>>0>>0?I+1|0:I,B=Ig(U,P,v,aA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=Ig(F,b,m,j),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,e=Ig(q,V,R,_A),B=f+I|0,B=(C=e+C|0)>>>0>>0?B+1|0:B,I=(e=Ig(S,H,fA,BA))+C|0,C=f+B|0,C=I>>>0>>0?C+1|0:C,B=(e=Ig(L,cA,pA,sA))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(iA,FA=iA>>31,h,Y),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(_,z,u,tA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,e=(B=C)+(C=Ig(y,l,n,J))|0,B=f+I|0,C=(I=o>>26)+(C=C>>>0>e>>>0?B+1|0:B)|0,D=B=(o=(67108863&o)<<6|D>>>26)+e|0,I=C=B>>>0>>0?C+1|0:C,e=B=B+16777216|0,o=I=B>>>0<16777216?I+1|0:I,i[g+76>>2]=D-(-33554432&B),I=Ig(S,H,N,d),C=f,D=Ig(p,M,R,_A),B=f+C|0,B=(I=D+I|0)>>>0>>0?B+1|0:B,D=Ig(U,P,L,cA),C=f+B|0,C=(I=D+I|0)>>>0>>0?C+1|0:C,B=(D=Ig(h,Y,m,j))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(O,hA,u,tA),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(n,J,E,eA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,C=(r=Ig(r,AA,x,rA))+C|0,B=f+I|0,I=(w=Ig(k,K,w,X))+C|0,C=f+(C>>>0>>0?B+1|0:B)|0,B=(_=Ig(_,z,v,aA))+I|0,I=f+(I>>>0>>0?C+1|0:C)|0,I=B>>>0<_>>>0?I+1|0:I,C=B,B=Ig(y,l,F,b),I=f+I|0,D=C=C+B|0,I=(I=C>>>0>>0?I+1|0:I)+(C=Q>>26)|0,_=Q=D+(B=(67108863&Q)<<6|nA>>>26)|0,I=B>>>0>Q>>>0?I+1|0:I,w=C=Q+16777216|0,Q=B=C>>>0<16777216?I+1|0:I,i[g+60>>2]=_-(-33554432&C),I=Ig(N,d,$,EA),B=f,C=(_=Ig(p,M,n,J))+I|0,I=f+B|0,I=C>>>0<_>>>0?I+1|0:I,B=Ig(k,K,U,P),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,_=Ig(m,j,G,IA),B=f+I|0,B=(C=_+C|0)>>>0<_>>>0?B+1|0:B,I=(_=Ig(F,b,q,V))+C|0,C=f+B|0,C=I>>>0<_>>>0?C+1|0:C,B=(_=Ig(W,CA,fA,BA))+I|0,I=f+C|0,I=B>>>0<_>>>0?I+1|0:I,C=B,B=Ig(S,H,pA,sA),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=C,C=Ig(iA,FA,Z,QA),I=f+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,_=C=NA,C=(G=Ig(C,r=C>>31,h,Y))+B|0,B=f+I|0,I=(y=Ig(y,l,T,oA))+C|0,C=f+(C>>>0>>0?B+1|0:B)|0,B=I>>>0>>0?C+1|0:C,C=I,I=(I=o>>25)+B|0,I=(C=C+(o=(33554431&o)<<7|e>>>25)|0)>>>0>>0?I+1|0:I,B=C,y=C=C+33554432|0,o=I=C>>>0<33554432?I+1|0:I,i[g+80>>2]=B-(-67108864&C),C=Q>>25,B=(Q=(33554431&Q)<<7|w>>>25)+(MA-(I=-67108864&UA)|0)|0,I=C+(KA-((I>>>0>MA>>>0)+bA|0)|0)|0,I=B>>>0>>0?I+1|0:I,I=((67108863&(I=(C=B+33554432|0)>>>0<33554432?I+1|0:I))<<6|C>>>26)+(G=wA-(-33554432&HA)|0)|0,i[g+68>>2]=I,i[g+64>>2]=B-(-67108864&C),I=Ig(n,J,N,d),B=f,C=(Q=Ig(p,M,u,tA))+I|0,I=f+B|0,I=C>>>0>>0?I+1|0:I,B=(Q=Ig(U,P,x,rA))+C|0,C=f+I|0,C=B>>>0>>0?C+1|0:C,I=(Q=Ig(k,K,m,j))+B|0,B=f+C|0,B=I>>>0>>0?B+1|0:B,C=(Q=Ig(q,V,v,aA))+I|0,I=f+B|0,I=C>>>0>>0?I+1|0:I,B=Ig(F,b,fA,BA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=Ig(R,_A,pA,sA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(Q=Ig(S,H,iA,FA))+C|0,C=f+I|0,C=B>>>0>>0?C+1|0:C,Q=(I=Ig(_,r,L,cA))+B|0,B=f+C|0,B=I>>>0>Q>>>0?B+1|0:B,C=Q,Q=Ig(I=GA,I>>31,h,Y),I=f+B|0,B=C=C+Q|0,I=(I=C>>>0>>0?I+1|0:I)+(C=o>>26)|0,I=(B=B+(o=(67108863&o)<<6|y>>>26)|0)>>>0>>0?I+1|0:I,I=(C=B+16777216|0)>>>0<16777216?I+1|0:I,i[g+84>>2]=B-(-33554432&C),o=t-(-33554432&kA)|0,Q=c-(B=-67108864&DA)|0,p=yA-((B>>>0>c>>>0)+YA|0)|0,I=Ig((33554431&(B=I))<<7|C>>>25,I>>=25,19,0),C=f+p|0,I=I>>>0>(B=I+Q|0)>>>0?C+1|0:C,I=((67108863&(I=(C=B+33554432|0)>>>0<33554432?I+1|0:I))<<6|C>>>26)+o|0,i[g+52>>2]=I,i[g+48>>2]=B-(-67108864&C),QI(A,g+48|0)),s=g+256|0,0|SA},Rg:function(A,I){A|=0;var g,B=0;return s=g=s+-64|0,FI(g,I|=0,32,0),C[0|g]=248&o[0|g],C[g+31|0]=63&o[g+31|0]|64,I=i[g+20>>2],B=i[g+16>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[g+12>>2],B=i[g+8>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[g+4>>2],B=i[g>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=i[g+28>>2],B=i[g+24>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,XC(g,64),s=g- -64|0,0},Sg:Wg,Tg:bI,Ug:vg,Vg:LI,Wg:BB,Xg:eB,Yg:cB,Zg:BB,_g:aB,$g:cB,ah:function(A,I,g,C,B){return 0|Xg(A|=0,I|=0,g|=0,C|=0,B|=0)},bh:function(A,I,g,C,B,Q,i,o){return 0|mg(A|=0,I|=0,(A=0)|(g|=0),C|=0,B|=0,A|(Q|=0),i|=0,o|=0)},ch:function(A,I,g,C,B,Q){return 0|ug(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)},dh:function(A,I,g,C,B){return 0|jg(A|=0,I|=0,g|=0,C|=0,B|=0)},eh:function(A,I,g,C,B,Q,i){return 0|Cg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},fh:function(A,I,g,C,B,Q){return 0|xg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)},gh:PC,hh:PC,ih:BB,jh:_B,kh:cB,lh:function(){return 1538},mh:Tg,nh:zg,oh:PC,ph:BB,qh:eB,rh:cB,sh:function(A,I,g,C,B){return 0|DC(A|=0,I|=0,g|=0,C|=0,B|=0)},th:function(A,I,g,C,B,Q,i,o){return 0|oC(A|=0,I|=0,(A=0)|(g|=0),C|=0,B|=0,A|(Q|=0),i|=0,o|=0)},uh:function(A,I,g,C,B,Q){return 0|aC(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)},vh:PC,wh:Tg,xh:function(A,I,g,C,B,Q,i,o){var E;return A|=0,I|=0,g|=0,C|=0,Q|=0,i|=0,s=E=s-32|0,wA(E,B|=0,o|=0,0),A=oC(o=A,I,(A=0)|g,C,B+16|0,A|Q,i,E),XC(E,32),s=E+32|0,0|A},yh:zg,zh:BB,Ah:_B,Bh:cB,Ch:PC,Dh:CB,Eh:BB,Fh:gB,Gh:oI,Hh:NC,Ih:GC,Jh:function(){return 1089},Kh:function(){var A,I;return s=A=s-16|0,C[A+15|0]=0,I=0|t(36800,A+15|0,0),s=A+16|0,0|I},Lh:$g,Mh:function(A){var I,g=0,B=0;if(s=I=s-16|0,(A|=0)>>>0>=2){for(g=(0-A>>>0)%(A>>>0)|0;C[I+15|0]=0,g>>>0>(B=0|t(36800,I+15|0,0))>>>0;);g=(B>>>0)%(A>>>0)|0}return s=I+16|0,0|g},Nh:ag,Oh:function(A,I,g){jg(A|=0,I|=0,0,34336,g|=0)},Ph:BB,Qh:function(){var A=0,I=0;return(A=i[9539])&&(A=i[A+20>>2])&&(I=0|pB[0|A]()),0|I},Rh:function(A,I,g){A|=0,I|=0;var B,i=0,o=0,E=0;if(s=B=s-16|0,g|=0)r(1346,1192,198,1092),Q();else{if(I|g)for(;C[B+15|0]=0,o=A+i|0,E=0|t(36800,B+15|0,0),C[0|o]=E,(0|I)!=(0|(i=i+1|0)););s=B+16|0}},Sh:function(A,I,g,B){A|=0,g|=0;var i=0,E=0,a=0;if(!((B|=0)>>>0>2147483646|B<<1>>>0>=(I|=0)>>>0)){if(I=0,B){for(;i=(I<<1)+A|0,E=15&(a=o[I+g|0]),C[i+1|0]=22272+((E<<8)+(E+65526&55552)|0)>>>8,E=i,i=a>>>4|0,C[0|E]=87+((i+65526>>>8&217)+i|0),(0|B)!=(0|(I=I+1|0)););I=B<<1}else I=0;return C[I+A|0]=0,0|A}rC(),Q()},Th:function(A,I,g,B,Q,E,a){A|=0,I|=0,g|=0,Q|=0,E|=0,a|=0;var _=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0;A:{I:{g:{C:{B:{Q:{i:{o:{E:{if(B|=0){if(Q)break E;for(c=1,Q=0;;){if(!(255&((s=(65526+(t=(223&(e=o[g+_|0]))-55&255)^t+65520)>>>8|0)|(h=65526+(e^=48)>>>8|0))))break i;if(I>>>0<=y>>>0)break o;if(t=t&s|e&h,255&r?(C[A+y|0]=Q|t,y=y+1|0):Q=t<<4,r=~r,(0|(_=_+1|0))==(0|B))break}_=B;break i}if(A=0,!a)break A;break g}for(;;){E:{a:{_:{c:{t:{if(!(255&((e=(65526+(c=(223&(t=o[g+_|0]))-55&255)^c+65520)>>>8|0)|(h=65526+(s=48^t)>>>8|0)))){if(255&r)break Q;if(c=0,!kI(Q,t))break C;if((_=r=_+1|0)>>>0>>0)break t;break C}if(I>>>0<=y>>>0)break o;if(c=c&e|s&h,!(255&r))break c;C[A+y|0]=c|D,y=y+1|0;break E}for(;;){if(!(255&((s=(65526+(e=(223&(t=o[g+_|0]))-55&255)^e+65520)>>>8|0)|(D=65526+(h=48^t)>>>8|0)))){if(!kI(Q,t))break C;if((_=_+1|0)>>>0>>0)continue;break _}break}if(I>>>0<=y>>>0)break a;c=e&s|h&D}D=c<<4,r=0;break E}_=B>>>0>r>>>0?B:r;break C}r=0;break o}if(r=~r,c=1,!((_=_+1|0)>>>0>>0))break}break i}i[9404]=68,c=0}if(!(255&r))break B}i[9404]=28,c=-1,_=_-1|0,y=0;break C}y=c?y:0,c=c-1|0}if(!a){if((0|B)!=(0|_))break I;A=c;break A}}i[a>>2]=g+_,A=c;break A}i[9404]=28,A=-1}return E&&(i[E>>2]=y),0|A},Uh:function(A,I){A|=0;var g=0;return 1!=(-7&(I|=0))&&(rC(),Q()),1+((3&(g=(g=A)+a(A=(A>>>0)/3|0,-3)|0)?2&I?g+1|0:4:0)+(A<<2)|0)|0},Vh:XA,Wh:pA,Xh:function(){var A=0;return i[9537]?A=1:($g(),ag(38128,16),i[9537]=1,A=0),0|A},Yh:function(A,I,g,B,E){A|=0,I|=0,g|=0,E|=0;var a,_=0,c=0,t=0;s=a=s-16|0;A:{if(B|=0){if((_=B-1|0)&B?(c=~g,_=_-((g>>>0)%(B>>>0)|0)|0):_&=c=~g,_>>>0>=c>>>0)break A;if((g=g+_|0)>>>0>=E>>>0)I=-1;else for(A&&(i[A>>2]=g+1),A=I+g|0,I=0,C[a+15|0]=0,g=0;c=E=A-g|0,t=o[0|E]&o[a+15|0],E=(g^_)-1>>>24|0,C[0|c]=t|128&E,C[a+15|0]=E|o[a+15|0],(0|B)!=(0|(g=g+1|0)););}else I=-1;return s=a+16|0,0|I}rC(),Q()},Zh:function(A,I,g,C){A|=0,I|=0,g|=0,C|=0;var B,Q=0,E=0,a=0,_=0,c=0;if(i[12+(B=s-16|0)>>2]=0,C-1>>>0>>0){for(c=(Q=g-1|0)+I|0,g=0,I=0;_=((128^(E=o[c-g|0]))-1&i[B+12>>2]-1&a-1)>>>8&1,i[B+12>>2]=i[B+12>>2]|0-_&g,I|=_,a|=E,(0|C)!=(0|(g=g+1|0)););i[A>>2]=Q-i[B+12>>2],A=(255&I)-1|0}else A=-1;return 0|A},_h:function(){return 1547},$h:function(){return 26},ai:tB,bi:hB,ci:cI,di:sC,ei:function(A,I,g){A|=0;var C,B=0;return s=C=s-32|0,B=-1,CI(C,g|=0,I|=0)||(B=yA(A,35584,C,0)),s=C+32|0,0|B},fi:dg,gi:function(A,I,g,C,B,Q,i,o){var E,a;return A|=0,I|=0,g|=0,Q|=0,a=C|=0,C=B|=0,s=E=s+-64|0,CI(E+32|0,o|=0,i|=0)?B=-1:(B=-1,yA(E,35584,E+32|0,0)||(B=EI(A,I,g,a,C,Q,E),XC(E,32))),s=E- -64|0,0|B},hi:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(rC(),Q()),0|EI(A+16|0,A,I,g,C,B,i)},ii:function(A,I,g,C,B,Q,i){return 0|ig(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},ji:lg,ki:function(A,I,g,C,B,Q,i,o){var E,a;return A|=0,I|=0,g|=0,Q|=0,a=C|=0,C=B|=0,s=E=s+-64|0,CI(E+32|0,o|=0,i|=0)?B=-1:(B=-1,yA(E,35584,E+32|0,0)||(B=sI(A,I,g,a,C,Q,E),XC(E,32))),s=E- -64|0,0|B},li:Dg,mi:function(A,I,g,C,B,Q,i){return 0|Ag(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},ni:BB,oi:BB,pi:BB,qi:BB,ri:_B,si:CB,ti:EB,ui:function(A,I,g,B,Q){A|=0,I|=0,Q|=0;var o,E,a,_,c=0,t=0;return c=g|=0,g=B|=0,_=0|c,c=B=s,s=o=B-512&-64,B=-1,sC(E=o- -64|0,a=o+32|0)||(iC(B=o+128|0,0,0,24),lC(B,E,32,0),lC(B,Q,32,0),eC(B,t=o+96|0,24),B=ig(A+32|0,I,_,g,t,Q,a),I=i[o+92>>2],g=i[o+88>>2],C[A+24|0]=g,C[A+25|0]=g>>>8,C[A+26|0]=g>>>16,C[A+27|0]=g>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[o+84>>2],g=i[o+80>>2],C[A+16|0]=g,C[A+17|0]=g>>>8,C[A+18|0]=g>>>16,C[A+19|0]=g>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[o+76>>2],g=i[o+72>>2],C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[o+68>>2],g=i[o+64>>2],C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,XC(a,32),XC(E,32),XC(t,24)),s=c,0|B},vi:function(A,I,g,C,B,Q){A|=0,I|=0,B|=0,Q|=0;var i,o,E=0;return o=E=s,s=i=E-448&-64,E=-1,!(C|=0)&(g|=0)>>>0>=48|C&&(iC(E=i- -64|0,0,0,24),lC(E,I,32,0),lC(E,B,32,0),eC(E,B=i+32|0,24),E=Ag(A,I+32|0,g-32|0,C-(g>>>0<32)|0,B,I,Q)),s=o,0|E},wi:oB,xi:function(A){var I,g=0;return s=I=s-160|0,NI(A|=0)&&(KI(A)||MA(I,A)||jA(I)&&(g=!!(0|gA(I)))),s=I+160|0,0|g},yi:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return s=C=s-800|0,Q=-1,MA(B=C+640|0,I|=0)||jA(B)&&(MA(I=C+480|0,g)||jA(I)&&($A(C,I),sA(I=C+160|0,B,C),kg(g=C+320|0,I),tg(A,g),Q=0)),s=C+800|0,0|Q},zi:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return s=C=s-800|0,Q=-1,MA(B=C+640|0,I|=0)||jA(B)&&(MA(I=C+480|0,g)||jA(I)&&($A(C,I),hA(I=C+160|0,B,C),kg(g=C+320|0,I),tg(A,g),Q=0)),s=C+800|0,0|Q},Ai:function(A,I){return M(A|=0,I|=0),0},Bi:function(A){var I;A|=0,s=I=s-32|0,ag(I,32),M(A,I),s=I+32|0},Ci:Mg,Di:kA,Ei:xA,Fi:uA,Gi:cA,Hi:dA,Ii:IA,Ji:MC,Ki:BB,Li:gB,Mi:BB,Ni:gB,Oi:BB,Pi:function(A){var I;return s=I=s-160|0,A=EA(I,A|=0),s=I+160|0,0|!A},Qi:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return s=C=s-800|0,Q=-1,EA(B=C+640|0,I|=0)||EA(I=C+480|0,g)||($A(C,I),sA(I=C+160|0,B,C),kg(g=C+320|0,I),W(A,g),Q=0),s=C+800|0,0|Q},Ri:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return s=C=s-800|0,Q=-1,EA(B=C+640|0,I|=0)||EA(I=C+480|0,g)||($A(C,I),hA(I=C+160|0,B,C),kg(g=C+320|0,I),W(A,g),Q=0),s=C+800|0,0|Q},Si:function(A,I){return jI(A|=0,I|=0),0},Ti:function(A){var I;A|=0,s=I=s+-64|0,ag(I,64),jI(A,I),s=I- -64|0},Ui:function(A){Mg(A|=0)},Vi:function(A,I){return 0|kA(A|=0,I|=0)},Wi:function(A,I){xA(A|=0,I|=0)},Xi:function(A,I){uA(A|=0,I|=0)},Yi:function(A,I,g){cA(A|=0,I|=0,g|=0)},Zi:function(A,I,g){IA(A|=0,I|=0,g|=0)},_i:MC,$i:function(A,I){dA(A|=0,I|=0)},aj:BB,bj:gB,cj:gB,dj:BB,ej:function(A,I,g,C,B,Q,i,o,E,a){return 0|rg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0,a|=0)},fj:CB,gj:cB,hj:hB,ij:cB,jj:BB,kj:function(){return 102},lj:function(){return 1575},mj:function(){return 32768},nj:cB,oj:jC,pj:cB,qj:function(){return 524288},rj:jC,sj:LC,tj:vC,uj:function(A,I,g,C,B,Q,o,E,a,_){var c,t,r;I|=0,g|=0,C|=0,B|=0,Q|=0,o|=0,a|=0,_|=0,t=0|(E|=0),s=E=s-16|0,r=I|=0,c=bg(A|=0,0,I),A=0|B;A:if(1==(0|(B=g|Q))|B>>>0>1)i[9404]=22,A=-1;else if(!g&I>>>0>=16|g){if(bA(t,a,_,E+12|0,E+8|0,E+4|0),(0|C)==(0|c)){i[9404]=28,A=-1;break A}B=A,A=31&(I=i[E+12>>2]),(63&I)>>>0>=32?(I=1<>>32-A,A=rg(C,B,o,32,g,I,i[E+4>>2],i[E+8>>2],c,r)}else i[9404]=28,A=-1;return s=E+16|0,0|A},vj:function(A,I,g,B,Q,E,a){I|=0,g|=0,B|=0,E|=0,a|=0;var _,c,t,r=0,e=0,y=0,h=0,D=0,p=0,w=0;r=Q|=0,r|=Q=0,s=_=s-128|0,c=bg(A|=0,0,102),D=22,t=g|Q;A:{I:{if(!B){bA(r,E,a,_+16|0,_+12|0,_+8|0),ag(e=_+96|0,32),D=28,g=_+32|0,E=i[_+16>>2],a=Ig(A=i[_+12>>2],0,B=i[_+8>>2],0);g:if(!(!(r=f)&a>>>0>1073741823|r|E>>>0>63)&&(C[0|g]=36,C[g+1|0]=55,C[g+2|0]=36,C[g+4|0]=o[1024+(63&B)|0],C[g+3|0]=o[E+1024|0],C[g+8|0]=o[1024+(B>>>24&63)|0],C[g+7|0]=o[1024+(B>>>18&63)|0],C[g+6|0]=o[1024+(B>>>12&63)|0],C[g+5|0]=o[1024+(B>>>6&63)|0],(B=g+9|0)&&(0|B)!=(0|(y=g+58|0))&&(C[0|B]=o[1024+(63&A)|0],1!=(0|(B=y-B|0))&&(C[g+10|0]=o[1024+(A>>>6&63)|0],2!=(0|B)&&(C[g+11|0]=o[1024+(A>>>12&63)|0],3!=(0|B)&&(C[g+12|0]=o[1024+(A>>>18&63)|0],4!=(0|B)&&(C[g+13|0]=o[1024+(A>>>24&63)|0],E=g+14|0))))))){for(r=y-E|0,A=0;;){if(B=E,!(A>>>0>=32)){if(E=o[A+e|0],(p=(a=A+1|0)>>>0>=32)?h=0:(E=o[a+e|0]<<8|E,(a=A+2|0)>>>0>=32?h=0:(E=o[a+e|0]<<16|E,h=1,a=A+3|0)),A=a,!r)break g;if(C[0|B]=o[1024+(63&E)|0],1==(0|r))break g;if(C[B+1|0]=o[1024+(E>>>6&63)|0],w=B+r|0,a=B+2|0,!p){if(2==(0|r))break g;if(C[B+2|0]=o[1024+(E>>>12&63)|0],a=B+3|0,h){if(3==(0|r))break g;C[B+3|0]=o[1024+(E>>>18|0)|0],a=B+4|0}}if(r=w-(E=a)|0,E)continue;break g}break}B>>>0>=y>>>0||(C[0|B]=0,Q=g)}if(Q){if(_C(A=_+20|0))break I;if(I=TA(A,I,t,g,c),Rg(A),I){A=0;break A}}}i[9404]=D}A=-1}return s=_+128|0,0|A},wj:function(A,I,g,C){I|=0,C|=0;var B,Q,i=0;B=A|=0,Q=g|=0,g=0,s=C=s-128|0;A:{I:{for(;;){if(!o[g+B|0]){A=g;break I}if(!o[B+(A=g+1|0)|0])break I;if(!o[B+(A=g+2|0)|0])break I;if(102==(0|(g=g+3|0)))break}g=-1;break A}g=-1,101==(0|A)&&(_C(i=C+4|0)||(bg(A=C+16|0,0,102),I=TA(i,I,Q,B,A),Rg(i),I&&(g=MI(A,B,102),XC(A,102))))}return s=C+128|0,0|g},xj:function(A,I,g,C){var B,Q;Q=A|=0,s=B=s-32|0,bA(I|=0,g|=0,C|=0,B+28|0,B+20|0,B+12|0),A=0;A:{I:{g:{for(;;){if(o[A+Q|0]){if(o[Q+(I=A+1|0)|0]&&o[Q+(I=A+2|0)|0]){if(102!=(0|(A=A+3|0)))continue;break g}}else I=A;break}if(101==(0|I)){if(g=B+8|0,C=B+16|0,A=0,36!=o[0|Q]|55!=o[Q+1|0]|36!=o[Q+2|0]||(I=uI(o[Q+3|0]),i[B+24>>2]=I?I-1024|0:0,I&&(I=PI(g,Q+4|0))&&(A=PI(C,I))),A)break I;i[9404]=28,A=-1;break A}}i[9404]=28,A=-1;break A}A=1,i[B+28>>2]!=i[B+24>>2]|i[B+12>>2]!=i[B+8>>2]||(A=i[B+20>>2]!=i[B+16>>2])}return s=B+32|0,0|A},yj:function(A,I,g){return 0|ZA(A|=0,I|=0,g|=0,1)},zj:function(A,I,g){return 0|ZA(A|=0,I|=0,g|=0,0)},Aj:function(A,I){return 0|II(A|=0,I|=0,1)},Bj:function(A,I){return 0|II(A|=0,I|=0,0)},Cj:BB,Dj:BB,Ej:function(A,I,g){A|=0,I|=0;var B,Q=0;return s=B=s-320|0,Q=-1,EA(B,g|=0)||(C[0|A]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],C[A+31|0]=127&o[I+31|0],u(I=B+160|0,A,B),W(A,I),Q=GI(A,32)?-1:0),s=B+320|0,0|Q},Fj:function(A,I){var g;return I|=0,s=g=s-160|0,C[0|(A|=0)]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],C[A+31|0]=127&o[I+31|0],nA(g,A),W(A,g),A=GI(A,32),s=g+160|0,0|(A?-1:0)},Gj:BB,Hj:BB,Ij:dg,Jj:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(rC(),Q()),EI(A+16|0,A,I,g,C,B,i),0},Kj:lg,Lj:Dg,Mj:BB,Nj:_B,Oj:CB,Pj:EB,Qj:CB,Rj:CB,Sj:function(A,I,g,B,Q){A|=0,I|=0,g|=0,B|=0;var i,E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0;if(p=1886610805^(a=o[0|(Q|=0)]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),D=1936682341^(_=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24),a^=1852142177,c=1819895653^_,w=1852075907^(_=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24),n=1685025377^(Q=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24),t=2037671283^_,_=1952801890^Q,s=g,(0|(E=(g+I|0)-(i=7&g)|0))!=(0|I))for(;g=(e=_^(k=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24))+c|0,t=B=a+(Q=t^(y=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24))|0,r=g=B>>>0>>0?g+1|0:g,a=B,B=g,g=D+n|0,g=(_=p+w|0)>>>0

>>0?g+1|0:g,h=(c=UI(w,n,13)^_)+a|0,B=(a=f^g)+B|0,a=UI(c,a,17)^h,p=UI(a,B=(c=c>>>0>h>>>0?B+1|0:B)^f,13),D=f,e=UI(Q,e,16),Q=r^f,e^=t,r=UI(_,g,32),g=f+Q|0,g=(t=B)+(B=(_=e+r|0)>>>0>>0?g+1|0:g)|0,r=g=(t=a+_|0)>>>0<_>>>0?g+1|0:g,p=UI(a=t^p,g^=D,17),D=f,e=UI(e,Q,21),Q=B^f,e^=_,_=UI(h,c,32),B=f+Q|0,g=(_=(c=e+_|0)>>>0<_>>>0?B+1|0:B)+g|0,w=(a=a+c|0)^p,B=g=a>>>0>>0?g+1|0:g,n=g^D,g=UI(e,Q,16),e=_^=f,h=UI(g^=c,_,21),c=f,r=(_=UI(t,r,32))+g|0,g=f+e|0,t=r^h,_=(g=_>>>0>r>>>0?g+1|0:g)^c,a=UI(a,B,32),c=f,p=y^r,D=g^k,(0|E)!=(0|(I=I+8|0)););switch(y=0,Q=s<<24,i-1|0){case 6:Q|=o[I+6|0]<<16;case 5:Q|=o[I+5|0]<<8;case 4:Q|=o[I+4|0];case 3:y|=(g=o[I+3|0])<<24,Q|=B=g>>>8|0;case 2:y|=(B=o[I+2|0])<<16,Q|=g=B>>>16|0;case 1:y|=(g=o[I+1|0])<<8,Q|=B=g>>>24|0;case 0:y=o[0|I]|y}return h=Q,I=Q^_,B=UI(Q=t^y,I,16),I=I+c|0,r=I=(t=Q+a|0)>>>0>>0?I+1|0:I,s=UI(Q=B^t,I^=g=f,21),_=f,g=D+n|0,B=g=(a=p+w|0)>>>0

>>0?g+1|0:g,c=Q,Q=UI(a,g,32),g=f+I|0,I=_,_=g=Q>>>0>(c=c+Q|0)>>>0?g+1|0:g,p=UI(Q=c^s,I^=g,16),D=f,g=(a=e=UI(w,n,13)^a)+t|0,B=(t=f^B)+r|0,r=Q,Q=UI(g,B=g>>>0>>0?B+1|0:B,32),I=f+I|0,k=Q=(a=Q>>>0>(s=r+Q|0)>>>0?I+1|0:I)^D,r=p^=s,D=UI(e,t,17)^g,g=(e=f^B)+_|0,I=g=(B=c=(I=D)+c|0)>>>0>>0?g+1|0:g,_=UI(B,g,32),g=f+Q|0,c=(t=_+r|0)^y,h^=r=_>>>0>t>>>0?g+1|0:g,Q=UI(D,e,13)^B,B=UI(Q,I^=f,17),I=I+a|0,Q=B^(_=Q+s|0),B=I=_>>>0>>0?I+1|0:I,g=(I^=g=f)+h|0,g=Q>>>0>(c=Q+c|0)>>>0?g+1|0:g,Q=UI(Q,I,13)^c,a=g,s=UI(Q,I=g^f,17),y=f,h=UI(p,k,21),e=r^f,r=t^h,_=238^UI(_,B,32),g=f+e|0,g=(h=I)+(I=(B=r+_|0)>>>0<_>>>0?g+1|0:g)|0,_=g=(t=B+Q|0)>>>0>>0?g+1|0:g,y=UI(Q=t^s,g^=y,13),h=f,r=UI(r,e,16),e=I^f,s=B^r,B=UI(c,a,32),I=f+e|0,B=(c=g)+(g=B>>>0>(a=s+B|0)>>>0?I+1|0:I)|0,c=B=(r=Q+a|0)>>>0>>0?B+1|0:B,y=UI(Q=y^r,I=B^h,17),h=f,B=UI(s,e,21),e=g^f,s=B^a,B=UI(t,_,32),g=f+e|0,g=(B=B>>>0>(a=s+B|0)>>>0?g+1|0:g)+I|0,_=g=(t=Q+a|0)>>>0>>0?g+1|0:g,y=UI(Q=t^y,I=g^h,13),h=f,g=UI(s,e,16),e=B^f,s=g^a,g=UI(r,c,32),B=f+e|0,g=(B=g>>>0>(a=s+g|0)>>>0?B+1|0:B)+I|0,c=g=(r=Q+a|0)>>>0>>0?g+1|0:g,y=UI(Q=y^r,I=g^h,17),h=f,g=UI(s,e,21),e=B^f,s=g^a,a=UI(t,_,32),g=f+e|0,I=(g=(B=s+a|0)>>>0>>0?g+1|0:g)+I|0,a=I=(_=B+Q|0)>>>0>>0?I+1|0:I,y=UI(Q=_^y,I^=h,13),h=f,t=UI(s,e,16),s=g^f,t^=B,c=UI(r,c,32),g=f+s|0,g=(r=I)+(I=(B=t+c|0)>>>0>>0?g+1|0:g)|0,c=g=(r=B+Q|0)>>>0>>0?g+1|0:g,y=UI(Q=y^r,g^=h,17),h=f,t=UI(t,s,21),s=I^f,t^=B,B=UI(_,a,32),I=f+s|0,B=(_=g)+(g=B>>>0>(a=t+B|0)>>>0?I+1|0:I)|0,_=Q=(B=(I=Q+a|0)>>>0>>0?B+1|0:B)^h,y^=I,t=UI(t,s,16),e=g^f,a=(t^=a)+(c=UI(r,c,32))|0,g=f+e|0,I=UI(I,B,32),s=f,B=g=a>>>0>>0?g+1|0:g,c=A,t=(r=UI(t,e,21)^a)^I^a^y,C[0|c]=t,C[c+1|0]=t>>>8,C[c+2|0]=t>>>16,C[c+3|0]=t>>>24,g=(e=s^g^Q)^(Q=g^f),C[c+4|0]=g,C[c+5|0]=g>>>8,C[c+6|0]=g>>>16,C[c+7|0]=g>>>24,g=Q+s|0,g=(c=I)>>>0>(I=I+r|0)>>>0?g+1|0:g,h=I,Q=UI(r,Q,16)^I,r=g,s=I=g^f,B=(g=_)+B|0,_=a=(c=y^=221)+a|0,a=UI(a,B=a>>>0>>0?B+1|0:B,32),I=f+I|0,I=a>>>0>(t=a+Q|0)>>>0?I+1|0:I,a=UI(Q,s,21)^t,c=I,D=UI(a,Q=I^f,16),e=f,I=UI(y,g,13),g=r+(s=B^f)|0,I=g=(B=h+(y=I^_)|0)>>>0>>0?g+1|0:g,_=a,a=UI(B,g,32),g=f+Q|0,e=g=(_=a>>>0>(r=_+a|0)>>>0?g+1|0:g)^e,h=UI(D^=r,g,21),a=f,g=UI(y,s,17),I=c+(s=I^f)|0,B=I=(Q=t+(y=g^B)|0)>>>0>>0?I+1|0:I,I=UI(Q,I,32),g=e+f|0,e=g=(c=a)^(a=(I=I+D|0)>>>0>>0?g+1|0:g),c=I,h=UI(D=h^I,g,16),t=f,I=UI(y,s,13),g=_+(s=B^f)|0,I=UI(Q=r+(y=I^Q)|0,g=Q>>>0>>0?g+1|0:g,32),B=e+f|0,e=B=(_=(I=I+D|0)>>>0>>0?B+1|0:B)^t,r=I,h=UI(D=h^I,B,21),t=f,I=UI(y,s,17),g=a+(s=g^f)|0,B=g=(Q=c+(y=I^Q)|0)>>>0>>0?g+1|0:g,I=UI(Q,g,32),g=e+f|0,e=g=(a=(I=I+D|0)>>>0>>0?g+1|0:g)^t,c=I,h=UI(D=h^I,g,16),t=f,I=UI(y,s,13),B=_+(s=B^f)|0,g=UI(Q=r+(y=I^Q)|0,B=Q>>>0>>0?B+1|0:B,32),I=e+f|0,_=g=g+D|0,h=UI(h^g,(I=g>>>0>>0?I+1|0:I)^t,21),t=f,r=UI(y,s,17),g=B^f,r=UI(B=Q^r,g,13),g=g+a|0,g=(B=B+c|0)>>>0>>0?g+1|0:g,Q=UI(a=B^r,g^=Q=f,17)^h,B=f^t,g=I+g|0,I=UI(I=a+_|0,g=I>>>0<_>>>0?g+1|0:g,32)^Q^I,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=g^f^B,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,0},Tj:function(A,I,g,B,Q){A|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-112|0,a=I|=0,I|(_=g|=0)){I=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,i[E+24>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,i[E+28>>2]=I,I=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+16>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+20>>2]=I,I=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[E>>2]=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[E+4>>2]=I,I=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+8>>2]=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,i[E+12>>2]=I,I=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,g=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[E+104>>2]=0,i[E+108>>2]=0,i[E+96>>2]=I,i[E+100>>2]=g;A:{if(!_&a>>>0>=64|_){for(;IC(A,E+96|0,E,0),I=o[E+104|0]+1|0,C[E+104|0]=I,I=o[E+105|0]+(I>>>8|0)|0,C[E+105|0]=I,I=o[E+106|0]+(I>>>8|0)|0,C[E+106|0]=I,I=o[E+107|0]+(I>>>8|0)|0,C[E+107|0]=I,I=o[E+108|0]+(I>>>8|0)|0,C[E+108|0]=I,I=o[E+109|0]+(I>>>8|0)|0,C[E+109|0]=I,I=o[E+110|0]+(I>>>8|0)|0,C[E+110|0]=I,C[E+111|0]=o[E+111|0]+(I>>>8|0),A=A- -64|0,_=_-1|0,!(_=(a=a+-64|0)>>>0<4294967232?_+1|0:_)&a>>>0>63|_;);if(!(a|_))break A}if(g=0,IC(E+32|0,E+96|0,E,0),B=3&a,I=0,!_&a>>>0>=4|_)for(_=60&a,Q=0;a=t=E+32|0,C[A+I|0]=o[a+I|0],C[(c=1|I)+A|0]=o[a+c|0],C[(c=2|I)+A|0]=o[a+c|0],C[(a=3|I)+A|0]=o[a+t|0],I=I+4|0,(0|_)!=(0|(Q=Q+4|0)););if(B)for(;C[A+I|0]=o[(E+32|0)+I|0],I=I+1|0,(0|B)!=(0|(g=g+1|0)););}XC(E+32|0,64),XC(E,32)}return s=E+112|0,0},Uj:function(A,I,g,B,Q,E){A|=0,I|=0,Q|=0,E|=0;var a,_=0,c=0;if(s=a=s-112|0,_=g|=0,(B|=0)|g){g=o[E+28|0]|o[E+29|0]<<8|o[E+30|0]<<16|o[E+31|0]<<24,i[a+24>>2]=o[E+24|0]|o[E+25|0]<<8|o[E+26|0]<<16|o[E+27|0]<<24,i[a+28>>2]=g,g=o[E+20|0]|o[E+21|0]<<8|o[E+22|0]<<16|o[E+23|0]<<24,i[a+16>>2]=o[E+16|0]|o[E+17|0]<<8|o[E+18|0]<<16|o[E+19|0]<<24,i[a+20>>2]=g,g=o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24,i[a>>2]=o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24,i[a+4>>2]=g,g=o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24,i[a+8>>2]=o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24,i[a+12>>2]=g,g=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,Q=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[a+104>>2]=0,i[a+108>>2]=0,i[a+96>>2]=g,i[a+100>>2]=Q;A:{if(!B&_>>>0>=64|B){for(;;){for(g=0,IC(a+32|0,a+96|0,a,0);E=a+32|0,C[A+g|0]=o[E+g|0]^o[I+g|0],C[(Q=1|g)+A|0]=o[Q+E|0]^o[I+Q|0],64!=(0|(g=g+2|0)););if(g=o[a+104|0]+1|0,C[a+104|0]=g,g=o[a+105|0]+(g>>>8|0)|0,C[a+105|0]=g,g=o[a+106|0]+(g>>>8|0)|0,C[a+106|0]=g,g=o[a+107|0]+(g>>>8|0)|0,C[a+107|0]=g,g=o[a+108|0]+(g>>>8|0)|0,C[a+108|0]=g,g=o[a+109|0]+(g>>>8|0)|0,C[a+109|0]=g,g=o[a+110|0]+(g>>>8|0)|0,C[a+110|0]=g,C[a+111|0]=o[a+111|0]+(g>>>8|0),I=I- -64|0,A=A- -64|0,B=B-1|0,!(!(B=(_=_+-64|0)>>>0<4294967232?B+1|0:B)&_>>>0>63|B))break}if(!(B|_))break A}if(g=0,IC(a+32|0,a+96|0,a,0),E=1&_,1!=(0|_)|B)for(_&=62,B=0;c=a+32|0,C[A+g|0]=o[c+g|0]^o[I+g|0],C[(Q=1|g)+A|0]=o[Q+c|0]^o[I+Q|0],g=g+2|0,(0|_)!=(0|(B=B+2|0)););E&&(C[A+g|0]=o[(a+32|0)+g|0]^o[I+g|0])}XC(a+32|0,64),XC(a,32)}return s=a+112|0,0},Vj:BB,Wj:eB,Xj:cB,Yj:PC,Zj:function(A,I,g,B,Q){A|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-112|0,a=I|=0,I|(_=g|=0)){I=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,i[E+24>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,i[E+28>>2]=I,I=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+16>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+20>>2]=I,I=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[E>>2]=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[E+4>>2]=I,I=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+8>>2]=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,i[E+12>>2]=I,I=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,g=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[E+104>>2]=0,i[E+108>>2]=0,i[E+96>>2]=I,i[E+100>>2]=g;A:{if(!_&a>>>0>=64|_){for(;gC(A,E+96|0,E,0),I=o[E+104|0]+1|0,C[E+104|0]=I,I=o[E+105|0]+(I>>>8|0)|0,C[E+105|0]=I,I=o[E+106|0]+(I>>>8|0)|0,C[E+106|0]=I,I=o[E+107|0]+(I>>>8|0)|0,C[E+107|0]=I,I=o[E+108|0]+(I>>>8|0)|0,C[E+108|0]=I,I=o[E+109|0]+(I>>>8|0)|0,C[E+109|0]=I,I=o[E+110|0]+(I>>>8|0)|0,C[E+110|0]=I,C[E+111|0]=o[E+111|0]+(I>>>8|0),A=A- -64|0,_=_-1|0,!(_=(a=a+-64|0)>>>0<4294967232?_+1|0:_)&a>>>0>63|_;);if(!(a|_))break A}if(g=0,gC(E+32|0,E+96|0,E,0),B=3&a,I=0,!_&a>>>0>=4|_)for(_=60&a,Q=0;a=t=E+32|0,C[A+I|0]=o[a+I|0],C[(c=1|I)+A|0]=o[a+c|0],C[(c=2|I)+A|0]=o[a+c|0],C[(a=3|I)+A|0]=o[a+t|0],I=I+4|0,(0|_)!=(0|(Q=Q+4|0)););if(B)for(;C[A+I|0]=o[(E+32|0)+I|0],I=I+1|0,(0|B)!=(0|(g=g+1|0)););}XC(E+32|0,64),XC(E,32)}return s=E+112|0,0},_j:function(A,I,g,B,Q,E){A|=0,I|=0,Q|=0,E|=0;var a,_=0,c=0;if(s=a=s-112|0,_=g|=0,(B|=0)|g){g=o[E+28|0]|o[E+29|0]<<8|o[E+30|0]<<16|o[E+31|0]<<24,i[a+24>>2]=o[E+24|0]|o[E+25|0]<<8|o[E+26|0]<<16|o[E+27|0]<<24,i[a+28>>2]=g,g=o[E+20|0]|o[E+21|0]<<8|o[E+22|0]<<16|o[E+23|0]<<24,i[a+16>>2]=o[E+16|0]|o[E+17|0]<<8|o[E+18|0]<<16|o[E+19|0]<<24,i[a+20>>2]=g,g=o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24,i[a>>2]=o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24,i[a+4>>2]=g,g=o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24,i[a+8>>2]=o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24,i[a+12>>2]=g,g=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,Q=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[a+104>>2]=0,i[a+108>>2]=0,i[a+96>>2]=g,i[a+100>>2]=Q;A:{if(!B&_>>>0>=64|B){for(;;){for(g=0,gC(a+32|0,a+96|0,a,0);E=a+32|0,C[A+g|0]=o[E+g|0]^o[I+g|0],C[(Q=1|g)+A|0]=o[Q+E|0]^o[I+Q|0],64!=(0|(g=g+2|0)););if(g=o[a+104|0]+1|0,C[a+104|0]=g,g=o[a+105|0]+(g>>>8|0)|0,C[a+105|0]=g,g=o[a+106|0]+(g>>>8|0)|0,C[a+106|0]=g,g=o[a+107|0]+(g>>>8|0)|0,C[a+107|0]=g,g=o[a+108|0]+(g>>>8|0)|0,C[a+108|0]=g,g=o[a+109|0]+(g>>>8|0)|0,C[a+109|0]=g,g=o[a+110|0]+(g>>>8|0)|0,C[a+110|0]=g,C[a+111|0]=o[a+111|0]+(g>>>8|0),I=I- -64|0,A=A- -64|0,B=B-1|0,!(!(B=(_=_+-64|0)>>>0<4294967232?B+1|0:B)&_>>>0>63|B))break}if(!(B|_))break A}if(g=0,gC(a+32|0,a+96|0,a,0),E=1&_,1!=(0|_)|B)for(_&=62,B=0;c=a+32|0,C[A+g|0]=o[c+g|0]^o[I+g|0],C[(Q=1|g)+A|0]=o[Q+c|0]^o[I+Q|0],g=g+2|0,(0|_)!=(0|(B=B+2|0)););E&&(C[A+g|0]=o[(a+32|0)+g|0]^o[I+g|0])}XC(a+32|0,64),XC(a,32)}return s=a+112|0,0},$j:BB,ak:eB,bk:cB,ck:PC,dk:BB,ek:_B,fk:cB,gk:function(A,I,g,C,B){var Q;return A|=0,I|=0,g|=0,s=Q=s-32|0,yA(Q,C|=0,B|=0,0),A=Xg(A,I,g,C+16|0,Q),s=Q+32|0,0|A},hk:function(A,I,g,C,B,Q,i,o){var E;return A|=0,I|=0,g|=0,C|=0,Q|=0,i|=0,s=E=s-32|0,yA(E,B|=0,o|=0,0),A=mg(o=A,I,(A=0)|g,C,B+16|0,A|Q,i,E),s=E+32|0,0|A},ik:function(A,I,g,C,B,Q){var i;return A|=0,I|=0,g|=0,C|=0,s=i=s-32|0,yA(i,B|=0,Q|=0,0),A=mg(A,I,g,C,B+16|0,0,0,i),s=i+32|0,0|A},jk:PC,kk:K,lk:BA,mk:pB}}(A)}(I)},instantiate:function(A,I){return{then:function(g){var C=new y.Module(A);g({instance:new y.Instance(C,I)})}}},RuntimeError:Error};t=[];var s,h,D,f,p,w,n,k=!1;function F(){var A=e.buffer;B.HEAP8=s=new Int8Array(A),B.HEAP16=D=new Int16Array(A),B.HEAPU8=h=new Uint8Array(A),B.HEAPU16=new Uint16Array(A),B.HEAP32=f=new Int32Array(A),B.HEAPU32=p=new Uint32Array(A),B.HEAPF32=w=new Float32Array(A),B.HEAPF64=n=new Float64Array(A)}var S=[],N=[],G=[],M=0,K=null,U=null;function b(A){throw B.onAbort?.(A),r(A=\"Aborted(\"+A+\")\"),k=!0,A+=\". Build with -sASSERTIONS for more info.\",new y.RuntimeError(A)}var H,Y=A=>A.startsWith(\"file://\");var J={36800:()=>B.getRandomValue(),36836:()=>{if(void 0===B.getRandomValue)try{var A=\"object\"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto;I=void 0===I?C:I;var g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),B.getRandomValue=g}catch(A){try{var C=require(\"crypto\"),Q=function(){var A=C.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};Q(),B.getRandomValue=Q}catch(A){throw\"No secure random number generator found\"}}}},d=A=>{for(;A.length>0;)A.shift()(B)};B.noExitRuntime;var m,l=\"undefined\"!=typeof TextDecoder?new TextDecoder:void 0,u=(A,I)=>A?((A,I,g)=>{for(var C=I+g,B=I;A[B]&&!(B>=C);)++B;if(B-I>16&&A.buffer&&l)return l.decode(A.subarray(I,B));for(var Q=\"\";I>10,56320|1023&a)}}else Q+=String.fromCharCode((31&i)<<6|o)}else Q+=String.fromCharCode(i)}return Q})(h,A,I):\"\",x=[],v=A=>{var I=(A-e.buffer.byteLength+65535)/65536;try{return e.grow(I),F(),1}catch(A){}},R={b:(A,I,g,C)=>{b(`Assertion failed: ${u(A)}, at: `+[I?u(I):\"unknown filename\",g,C?u(C):\"unknown function\"])},c:()=>{b(\"\")},a:(A,I,g)=>((A,I,g)=>{var C=((A,I)=>{var g;for(x.length=0;g=h[A++];){var C=105!=g;I+=(C&=112!=g)&&I%8?4:0,x.push(112==g?p[I>>2]:105==g?f[I>>2]:n[I>>3]),I+=C?8:4}return x})(I,g);return J[A](...C)})(A,I,g),d:A=>{var I=h.length,g=2147483648;if((A>>>=0)>g)return!1;for(var C,B=1;B<=4;B*=2){var Q=I*(1+.2/B);Q=Math.min(Q,A+100663296);var i=Math.min(g,(C=Math.max(A,Q))+(65536-C%65536)%65536);if(v(i))return!0}return!1}},L=function(){var A={a:R};function I(A,I){var g;return L=A.exports,e=L.e,F(),g=L.f,N.unshift(g),function(A){if(M--,B.monitorRunDependencies?.(M),0==M&&(null!==K&&(clearInterval(K),K=null),U)){var I=U;U=null,I()}}(),L}if(M++,B.monitorRunDependencies?.(M),B.instantiateWasm)try{return B.instantiateWasm(A,I)}catch(A){return r(`Module.instantiateWasm callback failed with error: ${A}`),!1}return H||(H=\"<<< WASM_BINARY_FILE >>>\"),function(A,I,C){(function(A){return Promise.resolve().then((()=>function(A){if(A==H&&t)return new Uint8Array(t);if(g)return g(A);throw\"both async and sync fetching of the wasm failed\"}(A)))})(A).then((A=>y.instantiate(A,I))).then(C,(A=>{r(`failed to asynchronously prepare wasm: ${A}`),b(A)}))}(H,A,(function(A){I(A.instance)})),{}}();function P(){function A(){m||(m=!0,B.calledRun=!0,k||(d(N),B.onRuntimeInitialized?.(),function(){if(B.postRun)for(\"function\"==typeof B.postRun&&(B.postRun=[B.postRun]);B.postRun.length;)A=B.postRun.shift(),G.unshift(A);var A;d(G)}()))}M>0||(function(){if(B.preRun)for(\"function\"==typeof B.preRun&&(B.preRun=[B.preRun]);B.preRun.length;)A=B.preRun.shift(),S.unshift(A);var A;d(S)}(),M>0||(B.setStatus?(B.setStatus(\"Running...\"),setTimeout((function(){setTimeout((function(){B.setStatus(\"\")}),1),A()}),1)):A()))}if(B._crypto_aead_aegis128l_keybytes=()=>(B._crypto_aead_aegis128l_keybytes=L.g)(),B._crypto_aead_aegis128l_nsecbytes=()=>(B._crypto_aead_aegis128l_nsecbytes=L.h)(),B._crypto_aead_aegis128l_npubbytes=()=>(B._crypto_aead_aegis128l_npubbytes=L.i)(),B._crypto_aead_aegis128l_abytes=()=>(B._crypto_aead_aegis128l_abytes=L.j)(),B._crypto_aead_aegis128l_messagebytes_max=()=>(B._crypto_aead_aegis128l_messagebytes_max=L.k)(),B._crypto_aead_aegis128l_keygen=A=>(B._crypto_aead_aegis128l_keygen=L.l)(A),B._crypto_aead_aegis128l_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_encrypt=L.m)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis128l_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_aegis128l_encrypt_detached=L.n)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_aegis128l_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_decrypt=L.o)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis128l_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_decrypt_detached=L.p)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_keybytes=()=>(B._crypto_aead_aegis256_keybytes=L.q)(),B._crypto_aead_aegis256_nsecbytes=()=>(B._crypto_aead_aegis256_nsecbytes=L.r)(),B._crypto_aead_aegis256_npubbytes=()=>(B._crypto_aead_aegis256_npubbytes=L.s)(),B._crypto_aead_aegis256_abytes=()=>(B._crypto_aead_aegis256_abytes=L.t)(),B._crypto_aead_aegis256_messagebytes_max=()=>(B._crypto_aead_aegis256_messagebytes_max=L.u)(),B._crypto_aead_aegis256_keygen=A=>(B._crypto_aead_aegis256_keygen=L.v)(A),B._crypto_aead_aegis256_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_encrypt=L.w)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_aegis256_encrypt_detached=L.x)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_aegis256_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_decrypt=L.y)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_decrypt_detached=L.z)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aes256gcm_is_available=()=>(B._crypto_aead_aes256gcm_is_available=L.A)(),B._crypto_aead_chacha20poly1305_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_chacha20poly1305_encrypt_detached=L.B)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_chacha20poly1305_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_encrypt=L.C)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_chacha20poly1305_ietf_encrypt_detached=L.D)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_chacha20poly1305_ietf_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_encrypt=L.E)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_decrypt_detached=L.F)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_decrypt=L.G)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_decrypt_detached=L.H)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_decrypt=L.I)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_keybytes=()=>(B._crypto_aead_chacha20poly1305_ietf_keybytes=L.J)(),B._crypto_aead_chacha20poly1305_ietf_npubbytes=()=>(B._crypto_aead_chacha20poly1305_ietf_npubbytes=L.K)(),B._crypto_aead_chacha20poly1305_ietf_nsecbytes=()=>(B._crypto_aead_chacha20poly1305_ietf_nsecbytes=L.L)(),B._crypto_aead_chacha20poly1305_ietf_abytes=()=>(B._crypto_aead_chacha20poly1305_ietf_abytes=L.M)(),B._crypto_aead_chacha20poly1305_ietf_messagebytes_max=()=>(B._crypto_aead_chacha20poly1305_ietf_messagebytes_max=L.N)(),B._crypto_aead_chacha20poly1305_ietf_keygen=A=>(B._crypto_aead_chacha20poly1305_ietf_keygen=L.O)(A),B._crypto_aead_chacha20poly1305_keybytes=()=>(B._crypto_aead_chacha20poly1305_keybytes=L.P)(),B._crypto_aead_chacha20poly1305_npubbytes=()=>(B._crypto_aead_chacha20poly1305_npubbytes=L.Q)(),B._crypto_aead_chacha20poly1305_nsecbytes=()=>(B._crypto_aead_chacha20poly1305_nsecbytes=L.R)(),B._crypto_aead_chacha20poly1305_abytes=()=>(B._crypto_aead_chacha20poly1305_abytes=L.S)(),B._crypto_aead_chacha20poly1305_messagebytes_max=()=>(B._crypto_aead_chacha20poly1305_messagebytes_max=L.T)(),B._crypto_aead_chacha20poly1305_keygen=A=>(B._crypto_aead_chacha20poly1305_keygen=L.U)(A),B._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=L.V)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_xchacha20poly1305_ietf_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_encrypt=L.W)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=L.X)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_decrypt=L.Y)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_keybytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_keybytes=L.Z)(),B._crypto_aead_xchacha20poly1305_ietf_npubbytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_npubbytes=L._)(),B._crypto_aead_xchacha20poly1305_ietf_nsecbytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_nsecbytes=L.$)(),B._crypto_aead_xchacha20poly1305_ietf_abytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_abytes=L.aa)(),B._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=()=>(B._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=L.ba)(),B._crypto_aead_xchacha20poly1305_ietf_keygen=A=>(B._crypto_aead_xchacha20poly1305_ietf_keygen=L.ca)(A),B._crypto_auth_bytes=()=>(B._crypto_auth_bytes=L.da)(),B._crypto_auth_keybytes=()=>(B._crypto_auth_keybytes=L.ea)(),B._crypto_auth_primitive=()=>(B._crypto_auth_primitive=L.fa)(),B._crypto_auth=(A,I,g,C,Q)=>(B._crypto_auth=L.ga)(A,I,g,C,Q),B._crypto_auth_verify=(A,I,g,C,Q)=>(B._crypto_auth_verify=L.ha)(A,I,g,C,Q),B._crypto_auth_keygen=A=>(B._crypto_auth_keygen=L.ia)(A),B._crypto_auth_hmacsha256_bytes=()=>(B._crypto_auth_hmacsha256_bytes=L.ja)(),B._crypto_auth_hmacsha256_keybytes=()=>(B._crypto_auth_hmacsha256_keybytes=L.ka)(),B._crypto_auth_hmacsha256_statebytes=()=>(B._crypto_auth_hmacsha256_statebytes=L.la)(),B._crypto_auth_hmacsha256_keygen=A=>(B._crypto_auth_hmacsha256_keygen=L.ma)(A),B._crypto_auth_hmacsha256_init=(A,I,g)=>(B._crypto_auth_hmacsha256_init=L.na)(A,I,g),B._crypto_auth_hmacsha256_update=(A,I,g,C)=>(B._crypto_auth_hmacsha256_update=L.oa)(A,I,g,C),B._crypto_auth_hmacsha256_final=(A,I)=>(B._crypto_auth_hmacsha256_final=L.pa)(A,I),B._crypto_auth_hmacsha256=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha256=L.qa)(A,I,g,C,Q),B._crypto_auth_hmacsha256_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha256_verify=L.ra)(A,I,g,C,Q),B._crypto_auth_hmacsha512_bytes=()=>(B._crypto_auth_hmacsha512_bytes=L.sa)(),B._crypto_auth_hmacsha512_keybytes=()=>(B._crypto_auth_hmacsha512_keybytes=L.ta)(),B._crypto_auth_hmacsha512_statebytes=()=>(B._crypto_auth_hmacsha512_statebytes=L.ua)(),B._crypto_auth_hmacsha512_keygen=A=>(B._crypto_auth_hmacsha512_keygen=L.va)(A),B._crypto_auth_hmacsha512_init=(A,I,g)=>(B._crypto_auth_hmacsha512_init=L.wa)(A,I,g),B._crypto_auth_hmacsha512_update=(A,I,g,C)=>(B._crypto_auth_hmacsha512_update=L.xa)(A,I,g,C),B._crypto_auth_hmacsha512_final=(A,I)=>(B._crypto_auth_hmacsha512_final=L.ya)(A,I),B._crypto_auth_hmacsha512=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512=L.za)(A,I,g,C,Q),B._crypto_auth_hmacsha512_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512_verify=L.Aa)(A,I,g,C,Q),B._crypto_auth_hmacsha512256_bytes=()=>(B._crypto_auth_hmacsha512256_bytes=L.Ba)(),B._crypto_auth_hmacsha512256_keybytes=()=>(B._crypto_auth_hmacsha512256_keybytes=L.Ca)(),B._crypto_auth_hmacsha512256_statebytes=()=>(B._crypto_auth_hmacsha512256_statebytes=L.Da)(),B._crypto_auth_hmacsha512256_keygen=A=>(B._crypto_auth_hmacsha512256_keygen=L.Ea)(A),B._crypto_auth_hmacsha512256_init=(A,I,g)=>(B._crypto_auth_hmacsha512256_init=L.Fa)(A,I,g),B._crypto_auth_hmacsha512256_update=(A,I,g,C)=>(B._crypto_auth_hmacsha512256_update=L.Ga)(A,I,g,C),B._crypto_auth_hmacsha512256_final=(A,I)=>(B._crypto_auth_hmacsha512256_final=L.Ha)(A,I),B._crypto_auth_hmacsha512256=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512256=L.Ia)(A,I,g,C,Q),B._crypto_auth_hmacsha512256_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512256_verify=L.Ja)(A,I,g,C,Q),B._crypto_box_seedbytes=()=>(B._crypto_box_seedbytes=L.Ka)(),B._crypto_box_publickeybytes=()=>(B._crypto_box_publickeybytes=L.La)(),B._crypto_box_secretkeybytes=()=>(B._crypto_box_secretkeybytes=L.Ma)(),B._crypto_box_beforenmbytes=()=>(B._crypto_box_beforenmbytes=L.Na)(),B._crypto_box_noncebytes=()=>(B._crypto_box_noncebytes=L.Oa)(),B._crypto_box_zerobytes=()=>(B._crypto_box_zerobytes=L.Pa)(),B._crypto_box_boxzerobytes=()=>(B._crypto_box_boxzerobytes=L.Qa)(),B._crypto_box_macbytes=()=>(B._crypto_box_macbytes=L.Ra)(),B._crypto_box_messagebytes_max=()=>(B._crypto_box_messagebytes_max=L.Sa)(),B._crypto_box_primitive=()=>(B._crypto_box_primitive=L.Ta)(),B._crypto_box_seed_keypair=(A,I,g)=>(B._crypto_box_seed_keypair=L.Ua)(A,I,g),B._crypto_box_keypair=(A,I)=>(B._crypto_box_keypair=L.Va)(A,I),B._crypto_box_beforenm=(A,I,g)=>(B._crypto_box_beforenm=L.Wa)(A,I,g),B._crypto_box_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_afternm=L.Xa)(A,I,g,C,Q,i),B._crypto_box_open_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_open_afternm=L.Ya)(A,I,g,C,Q,i),B._crypto_box=(A,I,g,C,Q,i,o)=>(B._crypto_box=L.Za)(A,I,g,C,Q,i,o),B._crypto_box_open=(A,I,g,C,Q,i,o)=>(B._crypto_box_open=L._a)(A,I,g,C,Q,i,o),B._crypto_box_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_detached_afternm=L.$a)(A,I,g,C,Q,i,o),B._crypto_box_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_detached=L.ab)(A,I,g,C,Q,i,o,E),B._crypto_box_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_easy_afternm=L.bb)(A,I,g,C,Q,i),B._crypto_box_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_easy=L.cb)(A,I,g,C,Q,i,o),B._crypto_box_open_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_open_detached_afternm=L.db)(A,I,g,C,Q,i,o),B._crypto_box_open_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_open_detached=L.eb)(A,I,g,C,Q,i,o,E),B._crypto_box_open_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_open_easy_afternm=L.fb)(A,I,g,C,Q,i),B._crypto_box_open_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_open_easy=L.gb)(A,I,g,C,Q,i,o),B._crypto_box_seal=(A,I,g,C,Q)=>(B._crypto_box_seal=L.hb)(A,I,g,C,Q),B._crypto_box_seal_open=(A,I,g,C,Q,i)=>(B._crypto_box_seal_open=L.ib)(A,I,g,C,Q,i),B._crypto_box_sealbytes=()=>(B._crypto_box_sealbytes=L.jb)(),B._crypto_box_curve25519xsalsa20poly1305_seed_keypair=(A,I,g)=>(B._crypto_box_curve25519xsalsa20poly1305_seed_keypair=L.kb)(A,I,g),B._crypto_box_curve25519xsalsa20poly1305_keypair=(A,I)=>(B._crypto_box_curve25519xsalsa20poly1305_keypair=L.lb)(A,I),B._crypto_box_curve25519xsalsa20poly1305_beforenm=(A,I,g)=>(B._crypto_box_curve25519xsalsa20poly1305_beforenm=L.mb)(A,I,g),B._crypto_box_curve25519xsalsa20poly1305_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xsalsa20poly1305_afternm=L.nb)(A,I,g,C,Q,i),B._crypto_box_curve25519xsalsa20poly1305_open_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xsalsa20poly1305_open_afternm=L.ob)(A,I,g,C,Q,i),B._crypto_box_curve25519xsalsa20poly1305=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xsalsa20poly1305=L.pb)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xsalsa20poly1305_open=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xsalsa20poly1305_open=L.qb)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xsalsa20poly1305_seedbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_seedbytes=L.rb)(),B._crypto_box_curve25519xsalsa20poly1305_publickeybytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_publickeybytes=L.sb)(),B._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=L.tb)(),B._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=L.ub)(),B._crypto_box_curve25519xsalsa20poly1305_noncebytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_noncebytes=L.vb)(),B._crypto_box_curve25519xsalsa20poly1305_zerobytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_zerobytes=L.wb)(),B._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=L.xb)(),B._crypto_box_curve25519xsalsa20poly1305_macbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_macbytes=L.yb)(),B._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=()=>(B._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=L.zb)(),B._crypto_core_hchacha20=(A,I,g,C)=>(B._crypto_core_hchacha20=L.Ab)(A,I,g,C),B._crypto_core_hchacha20_outputbytes=()=>(B._crypto_core_hchacha20_outputbytes=L.Bb)(),B._crypto_core_hchacha20_inputbytes=()=>(B._crypto_core_hchacha20_inputbytes=L.Cb)(),B._crypto_core_hchacha20_keybytes=()=>(B._crypto_core_hchacha20_keybytes=L.Db)(),B._crypto_core_hchacha20_constbytes=()=>(B._crypto_core_hchacha20_constbytes=L.Eb)(),B._crypto_core_hsalsa20=(A,I,g,C)=>(B._crypto_core_hsalsa20=L.Fb)(A,I,g,C),B._crypto_core_hsalsa20_outputbytes=()=>(B._crypto_core_hsalsa20_outputbytes=L.Gb)(),B._crypto_core_hsalsa20_inputbytes=()=>(B._crypto_core_hsalsa20_inputbytes=L.Hb)(),B._crypto_core_hsalsa20_keybytes=()=>(B._crypto_core_hsalsa20_keybytes=L.Ib)(),B._crypto_core_hsalsa20_constbytes=()=>(B._crypto_core_hsalsa20_constbytes=L.Jb)(),B._crypto_core_salsa20=(A,I,g,C)=>(B._crypto_core_salsa20=L.Kb)(A,I,g,C),B._crypto_core_salsa20_outputbytes=()=>(B._crypto_core_salsa20_outputbytes=L.Lb)(),B._crypto_core_salsa20_inputbytes=()=>(B._crypto_core_salsa20_inputbytes=L.Mb)(),B._crypto_core_salsa20_keybytes=()=>(B._crypto_core_salsa20_keybytes=L.Nb)(),B._crypto_core_salsa20_constbytes=()=>(B._crypto_core_salsa20_constbytes=L.Ob)(),B._crypto_core_salsa2012=(A,I,g,C)=>(B._crypto_core_salsa2012=L.Pb)(A,I,g,C),B._crypto_core_salsa2012_outputbytes=()=>(B._crypto_core_salsa2012_outputbytes=L.Qb)(),B._crypto_core_salsa2012_inputbytes=()=>(B._crypto_core_salsa2012_inputbytes=L.Rb)(),B._crypto_core_salsa2012_keybytes=()=>(B._crypto_core_salsa2012_keybytes=L.Sb)(),B._crypto_core_salsa2012_constbytes=()=>(B._crypto_core_salsa2012_constbytes=L.Tb)(),B._crypto_core_salsa208=(A,I,g,C)=>(B._crypto_core_salsa208=L.Ub)(A,I,g,C),B._crypto_core_salsa208_outputbytes=()=>(B._crypto_core_salsa208_outputbytes=L.Vb)(),B._crypto_core_salsa208_inputbytes=()=>(B._crypto_core_salsa208_inputbytes=L.Wb)(),B._crypto_core_salsa208_keybytes=()=>(B._crypto_core_salsa208_keybytes=L.Xb)(),B._crypto_core_salsa208_constbytes=()=>(B._crypto_core_salsa208_constbytes=L.Yb)(),B._crypto_generichash_bytes_min=()=>(B._crypto_generichash_bytes_min=L.Zb)(),B._crypto_generichash_bytes_max=()=>(B._crypto_generichash_bytes_max=L._b)(),B._crypto_generichash_bytes=()=>(B._crypto_generichash_bytes=L.$b)(),B._crypto_generichash_keybytes_min=()=>(B._crypto_generichash_keybytes_min=L.ac)(),B._crypto_generichash_keybytes_max=()=>(B._crypto_generichash_keybytes_max=L.bc)(),B._crypto_generichash_keybytes=()=>(B._crypto_generichash_keybytes=L.cc)(),B._crypto_generichash_primitive=()=>(B._crypto_generichash_primitive=L.dc)(),B._crypto_generichash_statebytes=()=>(B._crypto_generichash_statebytes=L.ec)(),B._crypto_generichash=(A,I,g,C,Q,i,o)=>(B._crypto_generichash=L.fc)(A,I,g,C,Q,i,o),B._crypto_generichash_init=(A,I,g,C)=>(B._crypto_generichash_init=L.gc)(A,I,g,C),B._crypto_generichash_update=(A,I,g,C)=>(B._crypto_generichash_update=L.hc)(A,I,g,C),B._crypto_generichash_final=(A,I,g)=>(B._crypto_generichash_final=L.ic)(A,I,g),B._crypto_generichash_keygen=A=>(B._crypto_generichash_keygen=L.jc)(A),B._crypto_generichash_blake2b_bytes_min=()=>(B._crypto_generichash_blake2b_bytes_min=L.kc)(),B._crypto_generichash_blake2b_bytes_max=()=>(B._crypto_generichash_blake2b_bytes_max=L.lc)(),B._crypto_generichash_blake2b_bytes=()=>(B._crypto_generichash_blake2b_bytes=L.mc)(),B._crypto_generichash_blake2b_keybytes_min=()=>(B._crypto_generichash_blake2b_keybytes_min=L.nc)(),B._crypto_generichash_blake2b_keybytes_max=()=>(B._crypto_generichash_blake2b_keybytes_max=L.oc)(),B._crypto_generichash_blake2b_keybytes=()=>(B._crypto_generichash_blake2b_keybytes=L.pc)(),B._crypto_generichash_blake2b_saltbytes=()=>(B._crypto_generichash_blake2b_saltbytes=L.qc)(),B._crypto_generichash_blake2b_personalbytes=()=>(B._crypto_generichash_blake2b_personalbytes=L.rc)(),B._crypto_generichash_blake2b_statebytes=()=>(B._crypto_generichash_blake2b_statebytes=L.sc)(),B._crypto_generichash_blake2b_keygen=A=>(B._crypto_generichash_blake2b_keygen=L.tc)(A),B._crypto_generichash_blake2b=(A,I,g,C,Q,i,o)=>(B._crypto_generichash_blake2b=L.uc)(A,I,g,C,Q,i,o),B._crypto_generichash_blake2b_salt_personal=(A,I,g,C,Q,i,o,E,a)=>(B._crypto_generichash_blake2b_salt_personal=L.vc)(A,I,g,C,Q,i,o,E,a),B._crypto_generichash_blake2b_init=(A,I,g,C)=>(B._crypto_generichash_blake2b_init=L.wc)(A,I,g,C),B._crypto_generichash_blake2b_init_salt_personal=(A,I,g,C,Q,i)=>(B._crypto_generichash_blake2b_init_salt_personal=L.xc)(A,I,g,C,Q,i),B._crypto_generichash_blake2b_update=(A,I,g,C)=>(B._crypto_generichash_blake2b_update=L.yc)(A,I,g,C),B._crypto_generichash_blake2b_final=(A,I,g)=>(B._crypto_generichash_blake2b_final=L.zc)(A,I,g),B._crypto_hash_bytes=()=>(B._crypto_hash_bytes=L.Ac)(),B._crypto_hash=(A,I,g,C)=>(B._crypto_hash=L.Bc)(A,I,g,C),B._crypto_hash_primitive=()=>(B._crypto_hash_primitive=L.Cc)(),B._crypto_hash_sha256_bytes=()=>(B._crypto_hash_sha256_bytes=L.Dc)(),B._crypto_hash_sha256_statebytes=()=>(B._crypto_hash_sha256_statebytes=L.Ec)(),B._crypto_hash_sha256_init=A=>(B._crypto_hash_sha256_init=L.Fc)(A),B._crypto_hash_sha256_update=(A,I,g,C)=>(B._crypto_hash_sha256_update=L.Gc)(A,I,g,C),B._crypto_hash_sha256_final=(A,I)=>(B._crypto_hash_sha256_final=L.Hc)(A,I),B._crypto_hash_sha256=(A,I,g,C)=>(B._crypto_hash_sha256=L.Ic)(A,I,g,C),B._crypto_hash_sha512_bytes=()=>(B._crypto_hash_sha512_bytes=L.Jc)(),B._crypto_hash_sha512_statebytes=()=>(B._crypto_hash_sha512_statebytes=L.Kc)(),B._crypto_hash_sha512_init=A=>(B._crypto_hash_sha512_init=L.Lc)(A),B._crypto_hash_sha512_update=(A,I,g,C)=>(B._crypto_hash_sha512_update=L.Mc)(A,I,g,C),B._crypto_hash_sha512_final=(A,I)=>(B._crypto_hash_sha512_final=L.Nc)(A,I),B._crypto_hash_sha512=(A,I,g,C)=>(B._crypto_hash_sha512=L.Oc)(A,I,g,C),B._crypto_kdf_blake2b_bytes_min=()=>(B._crypto_kdf_blake2b_bytes_min=L.Pc)(),B._crypto_kdf_blake2b_bytes_max=()=>(B._crypto_kdf_blake2b_bytes_max=L.Qc)(),B._crypto_kdf_blake2b_contextbytes=()=>(B._crypto_kdf_blake2b_contextbytes=L.Rc)(),B._crypto_kdf_blake2b_keybytes=()=>(B._crypto_kdf_blake2b_keybytes=L.Sc)(),B._crypto_kdf_blake2b_derive_from_key=(A,I,g,C,Q,i)=>(B._crypto_kdf_blake2b_derive_from_key=L.Tc)(A,I,g,C,Q,i),B._crypto_kdf_primitive=()=>(B._crypto_kdf_primitive=L.Uc)(),B._crypto_kdf_bytes_min=()=>(B._crypto_kdf_bytes_min=L.Vc)(),B._crypto_kdf_bytes_max=()=>(B._crypto_kdf_bytes_max=L.Wc)(),B._crypto_kdf_contextbytes=()=>(B._crypto_kdf_contextbytes=L.Xc)(),B._crypto_kdf_keybytes=()=>(B._crypto_kdf_keybytes=L.Yc)(),B._crypto_kdf_derive_from_key=(A,I,g,C,Q,i)=>(B._crypto_kdf_derive_from_key=L.Zc)(A,I,g,C,Q,i),B._crypto_kdf_keygen=A=>(B._crypto_kdf_keygen=L._c)(A),B._crypto_kdf_hkdf_sha256_extract_init=(A,I,g)=>(B._crypto_kdf_hkdf_sha256_extract_init=L.$c)(A,I,g),B._crypto_kdf_hkdf_sha256_extract_update=(A,I,g)=>(B._crypto_kdf_hkdf_sha256_extract_update=L.ad)(A,I,g),B._crypto_kdf_hkdf_sha256_extract_final=(A,I)=>(B._crypto_kdf_hkdf_sha256_extract_final=L.bd)(A,I),B._crypto_kdf_hkdf_sha256_extract=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha256_extract=L.cd)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha256_keygen=A=>(B._crypto_kdf_hkdf_sha256_keygen=L.dd)(A),B._crypto_kdf_hkdf_sha256_expand=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha256_expand=L.ed)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha256_keybytes=()=>(B._crypto_kdf_hkdf_sha256_keybytes=L.fd)(),B._crypto_kdf_hkdf_sha256_bytes_min=()=>(B._crypto_kdf_hkdf_sha256_bytes_min=L.gd)(),B._crypto_kdf_hkdf_sha256_bytes_max=()=>(B._crypto_kdf_hkdf_sha256_bytes_max=L.hd)(),B._crypto_kdf_hkdf_sha256_statebytes=()=>(B._crypto_kdf_hkdf_sha256_statebytes=L.id)(),B._crypto_kdf_hkdf_sha512_extract_init=(A,I,g)=>(B._crypto_kdf_hkdf_sha512_extract_init=L.jd)(A,I,g),B._crypto_kdf_hkdf_sha512_extract_update=(A,I,g)=>(B._crypto_kdf_hkdf_sha512_extract_update=L.kd)(A,I,g),B._crypto_kdf_hkdf_sha512_extract_final=(A,I)=>(B._crypto_kdf_hkdf_sha512_extract_final=L.ld)(A,I),B._crypto_kdf_hkdf_sha512_extract=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha512_extract=L.md)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha512_keygen=A=>(B._crypto_kdf_hkdf_sha512_keygen=L.nd)(A),B._crypto_kdf_hkdf_sha512_expand=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha512_expand=L.od)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha512_keybytes=()=>(B._crypto_kdf_hkdf_sha512_keybytes=L.pd)(),B._crypto_kdf_hkdf_sha512_bytes_min=()=>(B._crypto_kdf_hkdf_sha512_bytes_min=L.qd)(),B._crypto_kdf_hkdf_sha512_bytes_max=()=>(B._crypto_kdf_hkdf_sha512_bytes_max=L.rd)(),B._crypto_kdf_hkdf_sha512_statebytes=()=>(B._crypto_kdf_hkdf_sha512_statebytes=L.sd)(),B._crypto_kx_seed_keypair=(A,I,g)=>(B._crypto_kx_seed_keypair=L.td)(A,I,g),B._crypto_kx_keypair=(A,I)=>(B._crypto_kx_keypair=L.ud)(A,I),B._crypto_kx_client_session_keys=(A,I,g,C,Q)=>(B._crypto_kx_client_session_keys=L.vd)(A,I,g,C,Q),B._crypto_kx_server_session_keys=(A,I,g,C,Q)=>(B._crypto_kx_server_session_keys=L.wd)(A,I,g,C,Q),B._crypto_kx_publickeybytes=()=>(B._crypto_kx_publickeybytes=L.xd)(),B._crypto_kx_secretkeybytes=()=>(B._crypto_kx_secretkeybytes=L.yd)(),B._crypto_kx_seedbytes=()=>(B._crypto_kx_seedbytes=L.zd)(),B._crypto_kx_sessionkeybytes=()=>(B._crypto_kx_sessionkeybytes=L.Ad)(),B._crypto_kx_primitive=()=>(B._crypto_kx_primitive=L.Bd)(),B._crypto_onetimeauth_statebytes=()=>(B._crypto_onetimeauth_statebytes=L.Cd)(),B._crypto_onetimeauth_bytes=()=>(B._crypto_onetimeauth_bytes=L.Dd)(),B._crypto_onetimeauth_keybytes=()=>(B._crypto_onetimeauth_keybytes=L.Ed)(),B._crypto_onetimeauth=(A,I,g,C,Q)=>(B._crypto_onetimeauth=L.Fd)(A,I,g,C,Q),B._crypto_onetimeauth_verify=(A,I,g,C,Q)=>(B._crypto_onetimeauth_verify=L.Gd)(A,I,g,C,Q),B._crypto_onetimeauth_init=(A,I)=>(B._crypto_onetimeauth_init=L.Hd)(A,I),B._crypto_onetimeauth_update=(A,I,g,C)=>(B._crypto_onetimeauth_update=L.Id)(A,I,g,C),B._crypto_onetimeauth_final=(A,I)=>(B._crypto_onetimeauth_final=L.Jd)(A,I),B._crypto_onetimeauth_primitive=()=>(B._crypto_onetimeauth_primitive=L.Kd)(),B._crypto_onetimeauth_keygen=A=>(B._crypto_onetimeauth_keygen=L.Ld)(A),B._crypto_onetimeauth_poly1305=(A,I,g,C,Q)=>(B._crypto_onetimeauth_poly1305=L.Md)(A,I,g,C,Q),B._crypto_onetimeauth_poly1305_verify=(A,I,g,C,Q)=>(B._crypto_onetimeauth_poly1305_verify=L.Nd)(A,I,g,C,Q),B._crypto_onetimeauth_poly1305_init=(A,I)=>(B._crypto_onetimeauth_poly1305_init=L.Od)(A,I),B._crypto_onetimeauth_poly1305_update=(A,I,g,C)=>(B._crypto_onetimeauth_poly1305_update=L.Pd)(A,I,g,C),B._crypto_onetimeauth_poly1305_final=(A,I)=>(B._crypto_onetimeauth_poly1305_final=L.Qd)(A,I),B._crypto_onetimeauth_poly1305_bytes=()=>(B._crypto_onetimeauth_poly1305_bytes=L.Rd)(),B._crypto_onetimeauth_poly1305_keybytes=()=>(B._crypto_onetimeauth_poly1305_keybytes=L.Sd)(),B._crypto_onetimeauth_poly1305_statebytes=()=>(B._crypto_onetimeauth_poly1305_statebytes=L.Td)(),B._crypto_onetimeauth_poly1305_keygen=A=>(B._crypto_onetimeauth_poly1305_keygen=L.Ud)(A),B._crypto_pwhash_argon2i_alg_argon2i13=()=>(B._crypto_pwhash_argon2i_alg_argon2i13=L.Vd)(),B._crypto_pwhash_argon2i_bytes_min=()=>(B._crypto_pwhash_argon2i_bytes_min=L.Wd)(),B._crypto_pwhash_argon2i_bytes_max=()=>(B._crypto_pwhash_argon2i_bytes_max=L.Xd)(),B._crypto_pwhash_argon2i_passwd_min=()=>(B._crypto_pwhash_argon2i_passwd_min=L.Yd)(),B._crypto_pwhash_argon2i_passwd_max=()=>(B._crypto_pwhash_argon2i_passwd_max=L.Zd)(),B._crypto_pwhash_argon2i_saltbytes=()=>(B._crypto_pwhash_argon2i_saltbytes=L._d)(),B._crypto_pwhash_argon2i_strbytes=()=>(B._crypto_pwhash_argon2i_strbytes=L.$d)(),B._crypto_pwhash_argon2i_strprefix=()=>(B._crypto_pwhash_argon2i_strprefix=L.ae)(),B._crypto_pwhash_argon2i_opslimit_min=()=>(B._crypto_pwhash_argon2i_opslimit_min=L.be)(),B._crypto_pwhash_argon2i_opslimit_max=()=>(B._crypto_pwhash_argon2i_opslimit_max=L.ce)(),B._crypto_pwhash_argon2i_memlimit_min=()=>(B._crypto_pwhash_argon2i_memlimit_min=L.de)(),B._crypto_pwhash_argon2i_memlimit_max=()=>(B._crypto_pwhash_argon2i_memlimit_max=L.ee)(),B._crypto_pwhash_argon2i_opslimit_interactive=()=>(B._crypto_pwhash_argon2i_opslimit_interactive=L.fe)(),B._crypto_pwhash_argon2i_memlimit_interactive=()=>(B._crypto_pwhash_argon2i_memlimit_interactive=L.ge)(),B._crypto_pwhash_argon2i_opslimit_moderate=()=>(B._crypto_pwhash_argon2i_opslimit_moderate=L.he)(),B._crypto_pwhash_argon2i_memlimit_moderate=()=>(B._crypto_pwhash_argon2i_memlimit_moderate=L.ie)(),B._crypto_pwhash_argon2i_opslimit_sensitive=()=>(B._crypto_pwhash_argon2i_opslimit_sensitive=L.je)(),B._crypto_pwhash_argon2i_memlimit_sensitive=()=>(B._crypto_pwhash_argon2i_memlimit_sensitive=L.ke)(),B._crypto_pwhash_argon2i=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash_argon2i=L.le)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_argon2i_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_argon2i_str=L.me)(A,I,g,C,Q,i,o),B._crypto_pwhash_argon2i_str_verify=(A,I,g,C)=>(B._crypto_pwhash_argon2i_str_verify=L.ne)(A,I,g,C),B._crypto_pwhash_argon2i_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_argon2i_str_needs_rehash=L.oe)(A,I,g,C),B._crypto_pwhash_argon2id_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_argon2id_str_needs_rehash=L.pe)(A,I,g,C),B._crypto_pwhash_argon2id_alg_argon2id13=()=>(B._crypto_pwhash_argon2id_alg_argon2id13=L.qe)(),B._crypto_pwhash_argon2id_bytes_min=()=>(B._crypto_pwhash_argon2id_bytes_min=L.re)(),B._crypto_pwhash_argon2id_bytes_max=()=>(B._crypto_pwhash_argon2id_bytes_max=L.se)(),B._crypto_pwhash_argon2id_passwd_min=()=>(B._crypto_pwhash_argon2id_passwd_min=L.te)(),B._crypto_pwhash_argon2id_passwd_max=()=>(B._crypto_pwhash_argon2id_passwd_max=L.ue)(),B._crypto_pwhash_argon2id_saltbytes=()=>(B._crypto_pwhash_argon2id_saltbytes=L.ve)(),B._crypto_pwhash_argon2id_strbytes=()=>(B._crypto_pwhash_argon2id_strbytes=L.we)(),B._crypto_pwhash_argon2id_strprefix=()=>(B._crypto_pwhash_argon2id_strprefix=L.xe)(),B._crypto_pwhash_argon2id_opslimit_min=()=>(B._crypto_pwhash_argon2id_opslimit_min=L.ye)(),B._crypto_pwhash_argon2id_opslimit_max=()=>(B._crypto_pwhash_argon2id_opslimit_max=L.ze)(),B._crypto_pwhash_argon2id_memlimit_min=()=>(B._crypto_pwhash_argon2id_memlimit_min=L.Ae)(),B._crypto_pwhash_argon2id_memlimit_max=()=>(B._crypto_pwhash_argon2id_memlimit_max=L.Be)(),B._crypto_pwhash_argon2id_opslimit_interactive=()=>(B._crypto_pwhash_argon2id_opslimit_interactive=L.Ce)(),B._crypto_pwhash_argon2id_memlimit_interactive=()=>(B._crypto_pwhash_argon2id_memlimit_interactive=L.De)(),B._crypto_pwhash_argon2id_opslimit_moderate=()=>(B._crypto_pwhash_argon2id_opslimit_moderate=L.Ee)(),B._crypto_pwhash_argon2id_memlimit_moderate=()=>(B._crypto_pwhash_argon2id_memlimit_moderate=L.Fe)(),B._crypto_pwhash_argon2id_opslimit_sensitive=()=>(B._crypto_pwhash_argon2id_opslimit_sensitive=L.Ge)(),B._crypto_pwhash_argon2id_memlimit_sensitive=()=>(B._crypto_pwhash_argon2id_memlimit_sensitive=L.He)(),B._crypto_pwhash_argon2id=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash_argon2id=L.Ie)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_argon2id_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_argon2id_str=L.Je)(A,I,g,C,Q,i,o),B._crypto_pwhash_argon2id_str_verify=(A,I,g,C)=>(B._crypto_pwhash_argon2id_str_verify=L.Ke)(A,I,g,C),B._crypto_pwhash_alg_argon2i13=()=>(B._crypto_pwhash_alg_argon2i13=L.Le)(),B._crypto_pwhash_alg_argon2id13=()=>(B._crypto_pwhash_alg_argon2id13=L.Me)(),B._crypto_pwhash_alg_default=()=>(B._crypto_pwhash_alg_default=L.Ne)(),B._crypto_pwhash_bytes_min=()=>(B._crypto_pwhash_bytes_min=L.Oe)(),B._crypto_pwhash_bytes_max=()=>(B._crypto_pwhash_bytes_max=L.Pe)(),B._crypto_pwhash_passwd_min=()=>(B._crypto_pwhash_passwd_min=L.Qe)(),B._crypto_pwhash_passwd_max=()=>(B._crypto_pwhash_passwd_max=L.Re)(),B._crypto_pwhash_saltbytes=()=>(B._crypto_pwhash_saltbytes=L.Se)(),B._crypto_pwhash_strbytes=()=>(B._crypto_pwhash_strbytes=L.Te)(),B._crypto_pwhash_strprefix=()=>(B._crypto_pwhash_strprefix=L.Ue)(),B._crypto_pwhash_opslimit_min=()=>(B._crypto_pwhash_opslimit_min=L.Ve)(),B._crypto_pwhash_opslimit_max=()=>(B._crypto_pwhash_opslimit_max=L.We)(),B._crypto_pwhash_memlimit_min=()=>(B._crypto_pwhash_memlimit_min=L.Xe)(),B._crypto_pwhash_memlimit_max=()=>(B._crypto_pwhash_memlimit_max=L.Ye)(),B._crypto_pwhash_opslimit_interactive=()=>(B._crypto_pwhash_opslimit_interactive=L.Ze)(),B._crypto_pwhash_memlimit_interactive=()=>(B._crypto_pwhash_memlimit_interactive=L._e)(),B._crypto_pwhash_opslimit_moderate=()=>(B._crypto_pwhash_opslimit_moderate=L.$e)(),B._crypto_pwhash_memlimit_moderate=()=>(B._crypto_pwhash_memlimit_moderate=L.af)(),B._crypto_pwhash_opslimit_sensitive=()=>(B._crypto_pwhash_opslimit_sensitive=L.bf)(),B._crypto_pwhash_memlimit_sensitive=()=>(B._crypto_pwhash_memlimit_sensitive=L.cf)(),B._crypto_pwhash=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash=L.df)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_str=L.ef)(A,I,g,C,Q,i,o),B._crypto_pwhash_str_alg=(A,I,g,C,Q,i,o,E)=>(B._crypto_pwhash_str_alg=L.ff)(A,I,g,C,Q,i,o,E),B._crypto_pwhash_str_verify=(A,I,g,C)=>(B._crypto_pwhash_str_verify=L.gf)(A,I,g,C),B._crypto_pwhash_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_str_needs_rehash=L.hf)(A,I,g,C),B._crypto_pwhash_primitive=()=>(B._crypto_pwhash_primitive=L.jf)(),B._crypto_scalarmult_primitive=()=>(B._crypto_scalarmult_primitive=L.kf)(),B._crypto_scalarmult_base=(A,I)=>(B._crypto_scalarmult_base=L.lf)(A,I),B._crypto_scalarmult=(A,I,g)=>(B._crypto_scalarmult=L.mf)(A,I,g),B._crypto_scalarmult_bytes=()=>(B._crypto_scalarmult_bytes=L.nf)(),B._crypto_scalarmult_scalarbytes=()=>(B._crypto_scalarmult_scalarbytes=L.of)(),B._crypto_scalarmult_curve25519=(A,I,g)=>(B._crypto_scalarmult_curve25519=L.pf)(A,I,g),B._crypto_scalarmult_curve25519_base=(A,I)=>(B._crypto_scalarmult_curve25519_base=L.qf)(A,I),B._crypto_scalarmult_curve25519_bytes=()=>(B._crypto_scalarmult_curve25519_bytes=L.rf)(),B._crypto_scalarmult_curve25519_scalarbytes=()=>(B._crypto_scalarmult_curve25519_scalarbytes=L.sf)(),B._crypto_secretbox_keybytes=()=>(B._crypto_secretbox_keybytes=L.tf)(),B._crypto_secretbox_noncebytes=()=>(B._crypto_secretbox_noncebytes=L.uf)(),B._crypto_secretbox_zerobytes=()=>(B._crypto_secretbox_zerobytes=L.vf)(),B._crypto_secretbox_boxzerobytes=()=>(B._crypto_secretbox_boxzerobytes=L.wf)(),B._crypto_secretbox_macbytes=()=>(B._crypto_secretbox_macbytes=L.xf)(),B._crypto_secretbox_messagebytes_max=()=>(B._crypto_secretbox_messagebytes_max=L.yf)(),B._crypto_secretbox_primitive=()=>(B._crypto_secretbox_primitive=L.zf)(),B._crypto_secretbox=(A,I,g,C,Q,i)=>(B._crypto_secretbox=L.Af)(A,I,g,C,Q,i),B._crypto_secretbox_open=(A,I,g,C,Q,i)=>(B._crypto_secretbox_open=L.Bf)(A,I,g,C,Q,i),B._crypto_secretbox_keygen=A=>(B._crypto_secretbox_keygen=L.Cf)(A),B._crypto_secretbox_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_detached=L.Df)(A,I,g,C,Q,i,o),B._crypto_secretbox_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_easy=L.Ef)(A,I,g,C,Q,i),B._crypto_secretbox_open_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_open_detached=L.Ff)(A,I,g,C,Q,i,o),B._crypto_secretbox_open_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_open_easy=L.Gf)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xsalsa20poly1305=L.Hf)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305_open=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xsalsa20poly1305_open=L.If)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305_keybytes=()=>(B._crypto_secretbox_xsalsa20poly1305_keybytes=L.Jf)(),B._crypto_secretbox_xsalsa20poly1305_noncebytes=()=>(B._crypto_secretbox_xsalsa20poly1305_noncebytes=L.Kf)(),B._crypto_secretbox_xsalsa20poly1305_zerobytes=()=>(B._crypto_secretbox_xsalsa20poly1305_zerobytes=L.Lf)(),B._crypto_secretbox_xsalsa20poly1305_boxzerobytes=()=>(B._crypto_secretbox_xsalsa20poly1305_boxzerobytes=L.Mf)(),B._crypto_secretbox_xsalsa20poly1305_macbytes=()=>(B._crypto_secretbox_xsalsa20poly1305_macbytes=L.Nf)(),B._crypto_secretbox_xsalsa20poly1305_messagebytes_max=()=>(B._crypto_secretbox_xsalsa20poly1305_messagebytes_max=L.Of)(),B._crypto_secretbox_xsalsa20poly1305_keygen=A=>(B._crypto_secretbox_xsalsa20poly1305_keygen=L.Pf)(A),B._crypto_secretstream_xchacha20poly1305_keygen=A=>(B._crypto_secretstream_xchacha20poly1305_keygen=L.Qf)(A),B._crypto_secretstream_xchacha20poly1305_init_push=(A,I,g)=>(B._crypto_secretstream_xchacha20poly1305_init_push=L.Rf)(A,I,g),B._crypto_secretstream_xchacha20poly1305_init_pull=(A,I,g)=>(B._crypto_secretstream_xchacha20poly1305_init_pull=L.Sf)(A,I,g),B._crypto_secretstream_xchacha20poly1305_rekey=A=>(B._crypto_secretstream_xchacha20poly1305_rekey=L.Tf)(A),B._crypto_secretstream_xchacha20poly1305_push=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_secretstream_xchacha20poly1305_push=L.Uf)(A,I,g,C,Q,i,o,E,a,_),B._crypto_secretstream_xchacha20poly1305_pull=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_secretstream_xchacha20poly1305_pull=L.Vf)(A,I,g,C,Q,i,o,E,a,_),B._crypto_secretstream_xchacha20poly1305_statebytes=()=>(B._crypto_secretstream_xchacha20poly1305_statebytes=L.Wf)(),B._crypto_secretstream_xchacha20poly1305_abytes=()=>(B._crypto_secretstream_xchacha20poly1305_abytes=L.Xf)(),B._crypto_secretstream_xchacha20poly1305_headerbytes=()=>(B._crypto_secretstream_xchacha20poly1305_headerbytes=L.Yf)(),B._crypto_secretstream_xchacha20poly1305_keybytes=()=>(B._crypto_secretstream_xchacha20poly1305_keybytes=L.Zf)(),B._crypto_secretstream_xchacha20poly1305_messagebytes_max=()=>(B._crypto_secretstream_xchacha20poly1305_messagebytes_max=L._f)(),B._crypto_secretstream_xchacha20poly1305_tag_message=()=>(B._crypto_secretstream_xchacha20poly1305_tag_message=L.$f)(),B._crypto_secretstream_xchacha20poly1305_tag_push=()=>(B._crypto_secretstream_xchacha20poly1305_tag_push=L.ag)(),B._crypto_secretstream_xchacha20poly1305_tag_rekey=()=>(B._crypto_secretstream_xchacha20poly1305_tag_rekey=L.bg)(),B._crypto_secretstream_xchacha20poly1305_tag_final=()=>(B._crypto_secretstream_xchacha20poly1305_tag_final=L.cg)(),B._crypto_shorthash_bytes=()=>(B._crypto_shorthash_bytes=L.dg)(),B._crypto_shorthash_keybytes=()=>(B._crypto_shorthash_keybytes=L.eg)(),B._crypto_shorthash_primitive=()=>(B._crypto_shorthash_primitive=L.fg)(),B._crypto_shorthash=(A,I,g,C,Q)=>(B._crypto_shorthash=L.gg)(A,I,g,C,Q),B._crypto_shorthash_keygen=A=>(B._crypto_shorthash_keygen=L.hg)(A),B._crypto_shorthash_siphash24_bytes=()=>(B._crypto_shorthash_siphash24_bytes=L.ig)(),B._crypto_shorthash_siphash24_keybytes=()=>(B._crypto_shorthash_siphash24_keybytes=L.jg)(),B._crypto_shorthash_siphash24=(A,I,g,C,Q)=>(B._crypto_shorthash_siphash24=L.kg)(A,I,g,C,Q),B._crypto_sign_statebytes=()=>(B._crypto_sign_statebytes=L.lg)(),B._crypto_sign_bytes=()=>(B._crypto_sign_bytes=L.mg)(),B._crypto_sign_seedbytes=()=>(B._crypto_sign_seedbytes=L.ng)(),B._crypto_sign_publickeybytes=()=>(B._crypto_sign_publickeybytes=L.og)(),B._crypto_sign_secretkeybytes=()=>(B._crypto_sign_secretkeybytes=L.pg)(),B._crypto_sign_messagebytes_max=()=>(B._crypto_sign_messagebytes_max=L.qg)(),B._crypto_sign_primitive=()=>(B._crypto_sign_primitive=L.rg)(),B._crypto_sign_seed_keypair=(A,I,g)=>(B._crypto_sign_seed_keypair=L.sg)(A,I,g),B._crypto_sign_keypair=(A,I)=>(B._crypto_sign_keypair=L.tg)(A,I),B._crypto_sign=(A,I,g,C,Q,i)=>(B._crypto_sign=L.ug)(A,I,g,C,Q,i),B._crypto_sign_open=(A,I,g,C,Q,i)=>(B._crypto_sign_open=L.vg)(A,I,g,C,Q,i),B._crypto_sign_detached=(A,I,g,C,Q,i)=>(B._crypto_sign_detached=L.wg)(A,I,g,C,Q,i),B._crypto_sign_verify_detached=(A,I,g,C,Q)=>(B._crypto_sign_verify_detached=L.xg)(A,I,g,C,Q),B._crypto_sign_init=A=>(B._crypto_sign_init=L.yg)(A),B._crypto_sign_update=(A,I,g,C)=>(B._crypto_sign_update=L.zg)(A,I,g,C),B._crypto_sign_final_create=(A,I,g,C)=>(B._crypto_sign_final_create=L.Ag)(A,I,g,C),B._crypto_sign_final_verify=(A,I,g)=>(B._crypto_sign_final_verify=L.Bg)(A,I,g),B._crypto_sign_ed25519ph_statebytes=()=>(B._crypto_sign_ed25519ph_statebytes=L.Cg)(),B._crypto_sign_ed25519_bytes=()=>(B._crypto_sign_ed25519_bytes=L.Dg)(),B._crypto_sign_ed25519_seedbytes=()=>(B._crypto_sign_ed25519_seedbytes=L.Eg)(),B._crypto_sign_ed25519_publickeybytes=()=>(B._crypto_sign_ed25519_publickeybytes=L.Fg)(),B._crypto_sign_ed25519_secretkeybytes=()=>(B._crypto_sign_ed25519_secretkeybytes=L.Gg)(),B._crypto_sign_ed25519_messagebytes_max=()=>(B._crypto_sign_ed25519_messagebytes_max=L.Hg)(),B._crypto_sign_ed25519_sk_to_seed=(A,I)=>(B._crypto_sign_ed25519_sk_to_seed=L.Ig)(A,I),B._crypto_sign_ed25519_sk_to_pk=(A,I)=>(B._crypto_sign_ed25519_sk_to_pk=L.Jg)(A,I),B._crypto_sign_ed25519ph_init=A=>(B._crypto_sign_ed25519ph_init=L.Kg)(A),B._crypto_sign_ed25519ph_update=(A,I,g,C)=>(B._crypto_sign_ed25519ph_update=L.Lg)(A,I,g,C),B._crypto_sign_ed25519ph_final_create=(A,I,g,C)=>(B._crypto_sign_ed25519ph_final_create=L.Mg)(A,I,g,C),B._crypto_sign_ed25519ph_final_verify=(A,I,g)=>(B._crypto_sign_ed25519ph_final_verify=L.Ng)(A,I,g),B._crypto_sign_ed25519_seed_keypair=(A,I,g)=>(B._crypto_sign_ed25519_seed_keypair=L.Og)(A,I,g),B._crypto_sign_ed25519_keypair=(A,I)=>(B._crypto_sign_ed25519_keypair=L.Pg)(A,I),B._crypto_sign_ed25519_pk_to_curve25519=(A,I)=>(B._crypto_sign_ed25519_pk_to_curve25519=L.Qg)(A,I),B._crypto_sign_ed25519_sk_to_curve25519=(A,I)=>(B._crypto_sign_ed25519_sk_to_curve25519=L.Rg)(A,I),B._crypto_sign_ed25519_verify_detached=(A,I,g,C,Q)=>(B._crypto_sign_ed25519_verify_detached=L.Sg)(A,I,g,C,Q),B._crypto_sign_ed25519_open=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519_open=L.Tg)(A,I,g,C,Q,i),B._crypto_sign_ed25519_detached=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519_detached=L.Ug)(A,I,g,C,Q,i),B._crypto_sign_ed25519=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519=L.Vg)(A,I,g,C,Q,i),B._crypto_stream_chacha20_keybytes=()=>(B._crypto_stream_chacha20_keybytes=L.Wg)(),B._crypto_stream_chacha20_noncebytes=()=>(B._crypto_stream_chacha20_noncebytes=L.Xg)(),B._crypto_stream_chacha20_messagebytes_max=()=>(B._crypto_stream_chacha20_messagebytes_max=L.Yg)(),B._crypto_stream_chacha20_ietf_keybytes=()=>(B._crypto_stream_chacha20_ietf_keybytes=L.Zg)(),B._crypto_stream_chacha20_ietf_noncebytes=()=>(B._crypto_stream_chacha20_ietf_noncebytes=L._g)(),B._crypto_stream_chacha20_ietf_messagebytes_max=()=>(B._crypto_stream_chacha20_ietf_messagebytes_max=L.$g)(),B._crypto_stream_chacha20=(A,I,g,C,Q)=>(B._crypto_stream_chacha20=L.ah)(A,I,g,C,Q),B._crypto_stream_chacha20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_chacha20_xor_ic=L.bh)(A,I,g,C,Q,i,o,E),B._crypto_stream_chacha20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_chacha20_xor=L.ch)(A,I,g,C,Q,i),B._crypto_stream_chacha20_ietf=(A,I,g,C,Q)=>(B._crypto_stream_chacha20_ietf=L.dh)(A,I,g,C,Q),B._crypto_stream_chacha20_ietf_xor_ic=(A,I,g,C,Q,i,o)=>(B._crypto_stream_chacha20_ietf_xor_ic=L.eh)(A,I,g,C,Q,i,o),B._crypto_stream_chacha20_ietf_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_chacha20_ietf_xor=L.fh)(A,I,g,C,Q,i),B._crypto_stream_chacha20_ietf_keygen=A=>(B._crypto_stream_chacha20_ietf_keygen=L.gh)(A),B._crypto_stream_chacha20_keygen=A=>(B._crypto_stream_chacha20_keygen=L.hh)(A),B._crypto_stream_keybytes=()=>(B._crypto_stream_keybytes=L.ih)(),B._crypto_stream_noncebytes=()=>(B._crypto_stream_noncebytes=L.jh)(),B._crypto_stream_messagebytes_max=()=>(B._crypto_stream_messagebytes_max=L.kh)(),B._crypto_stream_primitive=()=>(B._crypto_stream_primitive=L.lh)(),B._crypto_stream=(A,I,g,C,Q)=>(B._crypto_stream=L.mh)(A,I,g,C,Q),B._crypto_stream_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xor=L.nh)(A,I,g,C,Q,i),B._crypto_stream_keygen=A=>(B._crypto_stream_keygen=L.oh)(A),B._crypto_stream_salsa20_keybytes=()=>(B._crypto_stream_salsa20_keybytes=L.ph)(),B._crypto_stream_salsa20_noncebytes=()=>(B._crypto_stream_salsa20_noncebytes=L.qh)(),B._crypto_stream_salsa20_messagebytes_max=()=>(B._crypto_stream_salsa20_messagebytes_max=L.rh)(),B._crypto_stream_salsa20=(A,I,g,C,Q)=>(B._crypto_stream_salsa20=L.sh)(A,I,g,C,Q),B._crypto_stream_salsa20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_salsa20_xor_ic=L.th)(A,I,g,C,Q,i,o,E),B._crypto_stream_salsa20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa20_xor=L.uh)(A,I,g,C,Q,i),B._crypto_stream_salsa20_keygen=A=>(B._crypto_stream_salsa20_keygen=L.vh)(A),B._crypto_stream_xsalsa20=(A,I,g,C,Q)=>(B._crypto_stream_xsalsa20=L.wh)(A,I,g,C,Q),B._crypto_stream_xsalsa20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_xsalsa20_xor_ic=L.xh)(A,I,g,C,Q,i,o,E),B._crypto_stream_xsalsa20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xsalsa20_xor=L.yh)(A,I,g,C,Q,i),B._crypto_stream_xsalsa20_keybytes=()=>(B._crypto_stream_xsalsa20_keybytes=L.zh)(),B._crypto_stream_xsalsa20_noncebytes=()=>(B._crypto_stream_xsalsa20_noncebytes=L.Ah)(),B._crypto_stream_xsalsa20_messagebytes_max=()=>(B._crypto_stream_xsalsa20_messagebytes_max=L.Bh)(),B._crypto_stream_xsalsa20_keygen=A=>(B._crypto_stream_xsalsa20_keygen=L.Ch)(A),B._crypto_verify_16_bytes=()=>(B._crypto_verify_16_bytes=L.Dh)(),B._crypto_verify_32_bytes=()=>(B._crypto_verify_32_bytes=L.Eh)(),B._crypto_verify_64_bytes=()=>(B._crypto_verify_64_bytes=L.Fh)(),B._crypto_verify_16=(A,I)=>(B._crypto_verify_16=L.Gh)(A,I),B._crypto_verify_32=(A,I)=>(B._crypto_verify_32=L.Hh)(A,I),B._crypto_verify_64=(A,I)=>(B._crypto_verify_64=L.Ih)(A,I),B._randombytes_implementation_name=()=>(B._randombytes_implementation_name=L.Jh)(),B._randombytes_random=()=>(B._randombytes_random=L.Kh)(),B._randombytes_stir=()=>(B._randombytes_stir=L.Lh)(),B._randombytes_uniform=A=>(B._randombytes_uniform=L.Mh)(A),B._randombytes_buf=(A,I)=>(B._randombytes_buf=L.Nh)(A,I),B._randombytes_buf_deterministic=(A,I,g)=>(B._randombytes_buf_deterministic=L.Oh)(A,I,g),B._randombytes_seedbytes=()=>(B._randombytes_seedbytes=L.Ph)(),B._randombytes_close=()=>(B._randombytes_close=L.Qh)(),B._randombytes=(A,I,g)=>(B._randombytes=L.Rh)(A,I,g),B._sodium_bin2hex=(A,I,g,C)=>(B._sodium_bin2hex=L.Sh)(A,I,g,C),B._sodium_hex2bin=(A,I,g,C,Q,i,o)=>(B._sodium_hex2bin=L.Th)(A,I,g,C,Q,i,o),B._sodium_base64_encoded_len=(A,I)=>(B._sodium_base64_encoded_len=L.Uh)(A,I),B._sodium_bin2base64=(A,I,g,C,Q)=>(B._sodium_bin2base64=L.Vh)(A,I,g,C,Q),B._sodium_base642bin=(A,I,g,C,Q,i,o,E)=>(B._sodium_base642bin=L.Wh)(A,I,g,C,Q,i,o,E),B._sodium_init=()=>(B._sodium_init=L.Xh)(),B._sodium_pad=(A,I,g,C,Q)=>(B._sodium_pad=L.Yh)(A,I,g,C,Q),B._sodium_unpad=(A,I,g,C)=>(B._sodium_unpad=L.Zh)(A,I,g,C),B._sodium_version_string=()=>(B._sodium_version_string=L._h)(),B._sodium_library_version_major=()=>(B._sodium_library_version_major=L.$h)(),B._sodium_library_version_minor=()=>(B._sodium_library_version_minor=L.ai)(),B._sodium_library_minimal=()=>(B._sodium_library_minimal=L.bi)(),B._crypto_box_curve25519xchacha20poly1305_seed_keypair=(A,I,g)=>(B._crypto_box_curve25519xchacha20poly1305_seed_keypair=L.ci)(A,I,g),B._crypto_box_curve25519xchacha20poly1305_keypair=(A,I)=>(B._crypto_box_curve25519xchacha20poly1305_keypair=L.di)(A,I),B._crypto_box_curve25519xchacha20poly1305_beforenm=(A,I,g)=>(B._crypto_box_curve25519xchacha20poly1305_beforenm=L.ei)(A,I,g),B._crypto_box_curve25519xchacha20poly1305_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_detached_afternm=L.fi)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_curve25519xchacha20poly1305_detached=L.gi)(A,I,g,C,Q,i,o,E),B._crypto_box_curve25519xchacha20poly1305_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_easy_afternm=L.hi)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_easy=L.ii)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=L.ji)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_open_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_curve25519xchacha20poly1305_open_detached=L.ki)(A,I,g,C,Q,i,o,E),B._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=L.li)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_open_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_open_easy=L.mi)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_seedbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_seedbytes=L.ni)(),B._crypto_box_curve25519xchacha20poly1305_publickeybytes=()=>(B._crypto_box_curve25519xchacha20poly1305_publickeybytes=L.oi)(),B._crypto_box_curve25519xchacha20poly1305_secretkeybytes=()=>(B._crypto_box_curve25519xchacha20poly1305_secretkeybytes=L.pi)(),B._crypto_box_curve25519xchacha20poly1305_beforenmbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_beforenmbytes=L.qi)(),B._crypto_box_curve25519xchacha20poly1305_noncebytes=()=>(B._crypto_box_curve25519xchacha20poly1305_noncebytes=L.ri)(),B._crypto_box_curve25519xchacha20poly1305_macbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_macbytes=L.si)(),B._crypto_box_curve25519xchacha20poly1305_messagebytes_max=()=>(B._crypto_box_curve25519xchacha20poly1305_messagebytes_max=L.ti)(),B._crypto_box_curve25519xchacha20poly1305_seal=(A,I,g,C,Q)=>(B._crypto_box_curve25519xchacha20poly1305_seal=L.ui)(A,I,g,C,Q),B._crypto_box_curve25519xchacha20poly1305_seal_open=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_seal_open=L.vi)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_sealbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_sealbytes=L.wi)(),B._crypto_core_ed25519_is_valid_point=A=>(B._crypto_core_ed25519_is_valid_point=L.xi)(A),B._crypto_core_ed25519_add=(A,I,g)=>(B._crypto_core_ed25519_add=L.yi)(A,I,g),B._crypto_core_ed25519_sub=(A,I,g)=>(B._crypto_core_ed25519_sub=L.zi)(A,I,g),B._crypto_core_ed25519_from_uniform=(A,I)=>(B._crypto_core_ed25519_from_uniform=L.Ai)(A,I),B._crypto_core_ed25519_random=A=>(B._crypto_core_ed25519_random=L.Bi)(A),B._crypto_core_ed25519_scalar_random=A=>(B._crypto_core_ed25519_scalar_random=L.Ci)(A),B._crypto_core_ed25519_scalar_invert=(A,I)=>(B._crypto_core_ed25519_scalar_invert=L.Di)(A,I),B._crypto_core_ed25519_scalar_negate=(A,I)=>(B._crypto_core_ed25519_scalar_negate=L.Ei)(A,I),B._crypto_core_ed25519_scalar_complement=(A,I)=>(B._crypto_core_ed25519_scalar_complement=L.Fi)(A,I),B._crypto_core_ed25519_scalar_add=(A,I,g)=>(B._crypto_core_ed25519_scalar_add=L.Gi)(A,I,g),B._crypto_core_ed25519_scalar_reduce=(A,I)=>(B._crypto_core_ed25519_scalar_reduce=L.Hi)(A,I),B._crypto_core_ed25519_scalar_sub=(A,I,g)=>(B._crypto_core_ed25519_scalar_sub=L.Ii)(A,I,g),B._crypto_core_ed25519_scalar_mul=(A,I,g)=>(B._crypto_core_ed25519_scalar_mul=L.Ji)(A,I,g),B._crypto_core_ed25519_bytes=()=>(B._crypto_core_ed25519_bytes=L.Ki)(),B._crypto_core_ed25519_nonreducedscalarbytes=()=>(B._crypto_core_ed25519_nonreducedscalarbytes=L.Li)(),B._crypto_core_ed25519_uniformbytes=()=>(B._crypto_core_ed25519_uniformbytes=L.Mi)(),B._crypto_core_ed25519_hashbytes=()=>(B._crypto_core_ed25519_hashbytes=L.Ni)(),B._crypto_core_ed25519_scalarbytes=()=>(B._crypto_core_ed25519_scalarbytes=L.Oi)(),B._crypto_core_ristretto255_is_valid_point=A=>(B._crypto_core_ristretto255_is_valid_point=L.Pi)(A),B._crypto_core_ristretto255_add=(A,I,g)=>(B._crypto_core_ristretto255_add=L.Qi)(A,I,g),B._crypto_core_ristretto255_sub=(A,I,g)=>(B._crypto_core_ristretto255_sub=L.Ri)(A,I,g),B._crypto_core_ristretto255_from_hash=(A,I)=>(B._crypto_core_ristretto255_from_hash=L.Si)(A,I),B._crypto_core_ristretto255_random=A=>(B._crypto_core_ristretto255_random=L.Ti)(A),B._crypto_core_ristretto255_scalar_random=A=>(B._crypto_core_ristretto255_scalar_random=L.Ui)(A),B._crypto_core_ristretto255_scalar_invert=(A,I)=>(B._crypto_core_ristretto255_scalar_invert=L.Vi)(A,I),B._crypto_core_ristretto255_scalar_negate=(A,I)=>(B._crypto_core_ristretto255_scalar_negate=L.Wi)(A,I),B._crypto_core_ristretto255_scalar_complement=(A,I)=>(B._crypto_core_ristretto255_scalar_complement=L.Xi)(A,I),B._crypto_core_ristretto255_scalar_add=(A,I,g)=>(B._crypto_core_ristretto255_scalar_add=L.Yi)(A,I,g),B._crypto_core_ristretto255_scalar_sub=(A,I,g)=>(B._crypto_core_ristretto255_scalar_sub=L.Zi)(A,I,g),B._crypto_core_ristretto255_scalar_mul=(A,I,g)=>(B._crypto_core_ristretto255_scalar_mul=L._i)(A,I,g),B._crypto_core_ristretto255_scalar_reduce=(A,I)=>(B._crypto_core_ristretto255_scalar_reduce=L.$i)(A,I),B._crypto_core_ristretto255_bytes=()=>(B._crypto_core_ristretto255_bytes=L.aj)(),B._crypto_core_ristretto255_nonreducedscalarbytes=()=>(B._crypto_core_ristretto255_nonreducedscalarbytes=L.bj)(),B._crypto_core_ristretto255_hashbytes=()=>(B._crypto_core_ristretto255_hashbytes=L.cj)(),B._crypto_core_ristretto255_scalarbytes=()=>(B._crypto_core_ristretto255_scalarbytes=L.dj)(),B._crypto_pwhash_scryptsalsa208sha256_ll=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_pwhash_scryptsalsa208sha256_ll=L.ej)(A,I,g,C,Q,i,o,E,a,_),B._crypto_pwhash_scryptsalsa208sha256_bytes_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_bytes_min=L.fj)(),B._crypto_pwhash_scryptsalsa208sha256_bytes_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_bytes_max=L.gj)(),B._crypto_pwhash_scryptsalsa208sha256_passwd_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_passwd_min=L.hj)(),B._crypto_pwhash_scryptsalsa208sha256_passwd_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_passwd_max=L.ij)(),B._crypto_pwhash_scryptsalsa208sha256_saltbytes=()=>(B._crypto_pwhash_scryptsalsa208sha256_saltbytes=L.jj)(),B._crypto_pwhash_scryptsalsa208sha256_strbytes=()=>(B._crypto_pwhash_scryptsalsa208sha256_strbytes=L.kj)(),B._crypto_pwhash_scryptsalsa208sha256_strprefix=()=>(B._crypto_pwhash_scryptsalsa208sha256_strprefix=L.lj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_min=L.mj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_max=L.nj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_min=L.oj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_max=L.pj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=L.qj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=L.rj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=L.sj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=L.tj)(),B._crypto_pwhash_scryptsalsa208sha256=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_pwhash_scryptsalsa208sha256=L.uj)(A,I,g,C,Q,i,o,E,a,_),B._crypto_pwhash_scryptsalsa208sha256_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_scryptsalsa208sha256_str=L.vj)(A,I,g,C,Q,i,o),B._crypto_pwhash_scryptsalsa208sha256_str_verify=(A,I,g,C)=>(B._crypto_pwhash_scryptsalsa208sha256_str_verify=L.wj)(A,I,g,C),B._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=L.xj)(A,I,g,C),B._crypto_scalarmult_ed25519=(A,I,g)=>(B._crypto_scalarmult_ed25519=L.yj)(A,I,g),B._crypto_scalarmult_ed25519_noclamp=(A,I,g)=>(B._crypto_scalarmult_ed25519_noclamp=L.zj)(A,I,g),B._crypto_scalarmult_ed25519_base=(A,I)=>(B._crypto_scalarmult_ed25519_base=L.Aj)(A,I),B._crypto_scalarmult_ed25519_base_noclamp=(A,I)=>(B._crypto_scalarmult_ed25519_base_noclamp=L.Bj)(A,I),B._crypto_scalarmult_ed25519_bytes=()=>(B._crypto_scalarmult_ed25519_bytes=L.Cj)(),B._crypto_scalarmult_ed25519_scalarbytes=()=>(B._crypto_scalarmult_ed25519_scalarbytes=L.Dj)(),B._crypto_scalarmult_ristretto255=(A,I,g)=>(B._crypto_scalarmult_ristretto255=L.Ej)(A,I,g),B._crypto_scalarmult_ristretto255_base=(A,I)=>(B._crypto_scalarmult_ristretto255_base=L.Fj)(A,I),B._crypto_scalarmult_ristretto255_bytes=()=>(B._crypto_scalarmult_ristretto255_bytes=L.Gj)(),B._crypto_scalarmult_ristretto255_scalarbytes=()=>(B._crypto_scalarmult_ristretto255_scalarbytes=L.Hj)(),B._crypto_secretbox_xchacha20poly1305_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_xchacha20poly1305_detached=L.Ij)(A,I,g,C,Q,i,o),B._crypto_secretbox_xchacha20poly1305_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xchacha20poly1305_easy=L.Jj)(A,I,g,C,Q,i),B._crypto_secretbox_xchacha20poly1305_open_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_xchacha20poly1305_open_detached=L.Kj)(A,I,g,C,Q,i,o),B._crypto_secretbox_xchacha20poly1305_open_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xchacha20poly1305_open_easy=L.Lj)(A,I,g,C,Q,i),B._crypto_secretbox_xchacha20poly1305_keybytes=()=>(B._crypto_secretbox_xchacha20poly1305_keybytes=L.Mj)(),B._crypto_secretbox_xchacha20poly1305_noncebytes=()=>(B._crypto_secretbox_xchacha20poly1305_noncebytes=L.Nj)(),B._crypto_secretbox_xchacha20poly1305_macbytes=()=>(B._crypto_secretbox_xchacha20poly1305_macbytes=L.Oj)(),B._crypto_secretbox_xchacha20poly1305_messagebytes_max=()=>(B._crypto_secretbox_xchacha20poly1305_messagebytes_max=L.Pj)(),B._crypto_shorthash_siphashx24_bytes=()=>(B._crypto_shorthash_siphashx24_bytes=L.Qj)(),B._crypto_shorthash_siphashx24_keybytes=()=>(B._crypto_shorthash_siphashx24_keybytes=L.Rj)(),B._crypto_shorthash_siphashx24=(A,I,g,C,Q)=>(B._crypto_shorthash_siphashx24=L.Sj)(A,I,g,C,Q),B._crypto_stream_salsa2012=(A,I,g,C,Q)=>(B._crypto_stream_salsa2012=L.Tj)(A,I,g,C,Q),B._crypto_stream_salsa2012_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa2012_xor=L.Uj)(A,I,g,C,Q,i),B._crypto_stream_salsa2012_keybytes=()=>(B._crypto_stream_salsa2012_keybytes=L.Vj)(),B._crypto_stream_salsa2012_noncebytes=()=>(B._crypto_stream_salsa2012_noncebytes=L.Wj)(),B._crypto_stream_salsa2012_messagebytes_max=()=>(B._crypto_stream_salsa2012_messagebytes_max=L.Xj)(),B._crypto_stream_salsa2012_keygen=A=>(B._crypto_stream_salsa2012_keygen=L.Yj)(A),B._crypto_stream_salsa208=(A,I,g,C,Q)=>(B._crypto_stream_salsa208=L.Zj)(A,I,g,C,Q),B._crypto_stream_salsa208_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa208_xor=L._j)(A,I,g,C,Q,i),B._crypto_stream_salsa208_keybytes=()=>(B._crypto_stream_salsa208_keybytes=L.$j)(),B._crypto_stream_salsa208_noncebytes=()=>(B._crypto_stream_salsa208_noncebytes=L.ak)(),B._crypto_stream_salsa208_messagebytes_max=()=>(B._crypto_stream_salsa208_messagebytes_max=L.bk)(),B._crypto_stream_salsa208_keygen=A=>(B._crypto_stream_salsa208_keygen=L.ck)(A),B._crypto_stream_xchacha20_keybytes=()=>(B._crypto_stream_xchacha20_keybytes=L.dk)(),B._crypto_stream_xchacha20_noncebytes=()=>(B._crypto_stream_xchacha20_noncebytes=L.ek)(),B._crypto_stream_xchacha20_messagebytes_max=()=>(B._crypto_stream_xchacha20_messagebytes_max=L.fk)(),B._crypto_stream_xchacha20=(A,I,g,C,Q)=>(B._crypto_stream_xchacha20=L.gk)(A,I,g,C,Q),B._crypto_stream_xchacha20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_xchacha20_xor_ic=L.hk)(A,I,g,C,Q,i,o,E),B._crypto_stream_xchacha20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xchacha20_xor=L.ik)(A,I,g,C,Q,i),B._crypto_stream_xchacha20_keygen=A=>(B._crypto_stream_xchacha20_keygen=L.jk)(A),B._malloc=A=>(B._malloc=L.kk)(A),B._free=A=>(B._free=L.lk)(A),B.setValue=function(A,I,g=\"i8\"){switch(g.endsWith(\"*\")&&(g=\"*\"),g){case\"i1\":case\"i8\":s[A]=I;break;case\"i16\":D[A>>1]=I;break;case\"i32\":f[A>>2]=I;break;case\"i64\":b(\"to do setValue(i64) use WASM_BIGINT\");case\"float\":w[A>>2]=I;break;case\"double\":n[A>>3]=I;break;case\"*\":p[A>>2]=I;break;default:b(`invalid type for setValue: ${g}`)}},B.getValue=function(A,I=\"i8\"){switch(I.endsWith(\"*\")&&(I=\"*\"),I){case\"i1\":case\"i8\":return s[A];case\"i16\":return D[A>>1];case\"i32\":return f[A>>2];case\"i64\":b(\"to do getValue(i64) use WASM_BIGINT\");case\"float\":return w[A>>2];case\"double\":return n[A>>3];case\"*\":return p[A>>2];default:b(`invalid type for getValue: ${I}`)}},B.UTF8ToString=u,U=function A(){m||P(),m||(U=A)},B.preInit)for(\"function\"==typeof B.preInit&&(B.preInit=[B.preInit]);B.preInit.length>0;)B.preInit.pop()();P()}))};var g,B=void 0!==B?B:{},Q=\"object\"==typeof window,i=\"function\"==typeof importScripts,o=\"object\"==typeof process&&\"object\"==typeof process.versions&&\"string\"==typeof process.versions.node,E=Object.assign({},B),a=\"\";if(o){var _=require(\"fs\"),c=require(\"path\");a=__dirname+\"/\",g=A=>(A=Y(A)?new URL(A):c.normalize(A),_.readFileSync(A)),!B.thisProgram&&process.argv.length>1&&process.argv[1].replace(/\\\\/g,\"/\"),process.argv.slice(2),\"undefined\"!=typeof module&&(module.exports=B)}else(Q||i)&&(i?a=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(a=document.currentScript.src),a=a.startsWith(\"blob:\")?\"\":a.substr(0,a.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1),i&&(g=A=>{var I=new XMLHttpRequest;return I.open(\"GET\",A,!1),I.responseType=\"arraybuffer\",I.send(null),new Uint8Array(I.response)}));B.print;var t,r,e=B.printErr||void 0;Object.assign(B,E),E=null,B.arguments&&B.arguments,B.thisProgram&&B.thisProgram,B.quit&&B.quit,B.wasmBinary&&(t=B.wasmBinary);var y,s,h,D,f,p,w,n=!1;function k(){var A=r.buffer;B.HEAP8=y=new Int8Array(A),B.HEAP16=h=new Int16Array(A),B.HEAPU8=s=new Uint8Array(A),B.HEAPU16=new Uint16Array(A),B.HEAP32=D=new Int32Array(A),B.HEAPU32=f=new Uint32Array(A),B.HEAPF32=p=new Float32Array(A),B.HEAPF64=w=new Float64Array(A)}var F=[],S=[],N=[],G=0,M=null,K=null;function U(A){throw B.onAbort?.(A),e(A=\"Aborted(\"+A+\")\"),n=!0,A+=\". Build with -sASSERTIONS for more info.\",new WebAssembly.RuntimeError(A)}var b,H=\"data:application/octet-stream;base64,\",Y=A=>A.startsWith(\"file://\");function J(A){return Promise.resolve().then((()=>function(A){if(A==b&&t)return new Uint8Array(t);var I=function(A){if((A=>A.startsWith(H))(A))return function(A){if(void 0!==o&&o){var I=Buffer.from(A,\"base64\");return new Uint8Array(I.buffer,I.byteOffset,I.length)}for(var g=atob(A),C=new Uint8Array(g.length),B=0;BB.getRandomValue(),36836:()=>{if(void 0===B.getRandomValue)try{var A=\"object\"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto;I=void 0===I?C:I;var g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),B.getRandomValue=g}catch(A){try{var C=require(\"crypto\"),Q=function(){var A=C.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};Q(),B.getRandomValue=Q}catch(A){throw\"No secure random number generator found\"}}}},m=A=>{for(;A.length>0;)A.shift()(B)};B.noExitRuntime;var l,u=\"undefined\"!=typeof TextDecoder?new TextDecoder:void 0,x=(A,I)=>A?((A,I,g)=>{for(var C=I+g,B=I;A[B]&&!(B>=C);)++B;if(B-I>16&&A.buffer&&u)return u.decode(A.subarray(I,B));for(var Q=\"\";I>10,56320|1023&a)}}else Q+=String.fromCharCode((31&i)<<6|o)}else Q+=String.fromCharCode(i)}return Q})(s,A,I):\"\",v=[],R=A=>{var I=(A-r.buffer.byteLength+65535)/65536;try{return r.grow(I),k(),1}catch(A){}},L={b:(A,I,g,C)=>{U(`Assertion failed: ${x(A)}, at: `+[I?x(I):\"unknown filename\",g,C?x(C):\"unknown function\"])},c:()=>{U(\"\")},d:(A,I,g)=>s.copyWithin(A,I,I+g),a:(A,I,g)=>((A,I,g)=>{var C=((A,I)=>{var g;for(v.length=0;g=s[A++];){var C=105!=g;I+=(C&=112!=g)&&I%8?4:0,v.push(112==g?f[I>>2]:105==g?D[I>>2]:w[I>>3]),I+=C?8:4}return v})(I,g);return d[A](...C)})(A,I,g),e:A=>{var I=s.length,g=2147483648;if((A>>>=0)>g)return!1;for(var C,B=1;B<=4;B*=2){var Q=I*(1+.2/B);Q=Math.min(Q,A+100663296);var i=Math.min(g,(C=Math.max(A,Q))+(65536-C%65536)%65536);if(R(i))return!0}return!1}},P=function(){var A,I={a:L};function g(A,I){return P=A.exports,r=P.f,k(),function(A){if(G--,B.monitorRunDependencies?.(G),0==G&&(null!==M&&(clearInterval(M),M=null),K)){var I=K;K=null,I()}}(),P}if(G++,B.monitorRunDependencies?.(G),B.instantiateWasm)try{return B.instantiateWasm(I,g)}catch(A){return e(`Module.instantiateWasm callback failed with error: ${A}`),!1}return b||(b=\"data:application/octet-stream;base64,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AkJmAFcCQ2YAEgJEZgCrAQJFZgCjAgJGZgCqAQJHZgCpAQJIZgBYAklmAFcCSmYACgJLZgAlAkxmAAoCTWYADQJOZgANAk9mACwCUGYAEgJRZgASAlJmAJ4DAlNmAJ0DAlRmAJwDAlVmAKICAlZmAKECAldmAJsDAlhmAJoDAllmACUCWmYACgJfZgCZAwIkZgAcAmFnAFECYmcAOQJjZwBkAmRnACcCZWcADQJmZwDoAgJnZwChAQJoZwDzAQJpZwAnAmpnAA0Ca2cAoQECbGcAUAJtZwAWAm5nAAoCb2cACgJwZwAWAnFnAMoBAnJnAIADAnNnAP8CAnRnAP4CAnVnAKABAnZnAJ8BAndnAJ4BAnhnAJ0BAnlnAP0CAnpnAHECQWcA/AICQmcA+wICQ2cAUAJEZwAWAkVnAAoCRmcACgJHZwAWAkhnAMoBAklnAIIDAkpnAIEDAktnAMkBAkxnAHECTWcAyAECTmcAxwECT2cAzAECUGcAywECUWcAhwMCUmcAhgMCU2cAnQECVGcAnwECVWcAngECVmcAoAECV2cACgJYZwAnAllnABQCWmcACgJfZwDrAQIkZwAUAmFoAJ8CAmJoAJ4CAmNoAJ0CAmRoAJwCAmVoAJsCAmZoAJoCAmdoABICaGgAEgJpaAAKAmpoACUCa2gAFAJsaACIAwJtaACcAQJuaACbAQJvaAASAnBoAAoCcWgAJwJyaAAUAnNoAJgCAnRoAJcCAnVoAJYCAnZoABICd2gAnAECeGgAlQICeWgAmwECemgACgJBaAAlAkJoABQCQ2gAEgJEaAANAkVoAAoCRmgAFgJHaAA3AkhoAD8CSWgAsQECSmgAvAMCS2gAuwMCTGgA6AECTWgAugMCTmgAGQJPaAC5AwJQaAAKAlFoALgDAlJoAJQCAlNoAJIDAlRoAJEDAlVoAJADAlZoAIIBAldoAIEBAlhoAMEDAlloALQDAlpoAKsDAl9oANgCAiRoANcCAmFpADkCYmkAHAJjaQB6AmRpAEECZWkAiQMCZmkAmgECZ2kAkwICaGkAkgICaWkAkAICamkAmQECa2kAjwICbGkAmAECbWkAjgICbmkACgJvaQAKAnBpAAoCcWkACgJyaQAlAnNpAA0CdGkALAJ1aQCNAgJ2aQCMAgJ3aQDBAQJ4aQCwAwJ5aQCvAwJ6aQCuAwJBaQCt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iEL///8AgyIIIAEoAA8iO0EGdkH///8Aca0iBn58IAEoAAoiPEEYdq0gATEADkIIhoQgATEAD0IQhoRCAYhC////AIMiDCACKAAKIj1BBHZB////AHGtIg1+fCA5QRh2rSACMQAGQgiGhCACMQAHQhCGhEICiEL///8AgyIOIDtBGHatIAExABNCCIaEIAExABRCEIaEQgOIIgl+fCACKAAPIjlBBnZB////AHGtIgcgATUAB0IHiEL///8AgyIPfnwgPUEYdq0gAjEADkIIhoQgAjEAD0IQhoRCAYhC////AIMiCiA8QQR2Qf///wBxrSIQfnwgOUEYdq0gAjEAE0IIhoQgAjEAFEIQhoRCA4giESABKAACIjlBGHatIAExAAZCCIaEIAExAAdCEIaEQgKIQv///wCDIhJ+fCACMwAVIAIxABdCEIZCgID8AIOEIhUgOUEFdkH///8Aca0iFn58IAEzAAAgATEAAkIQhkKAgPwAg4QiFyACKAAXIjlBBXZB////AHGtIhh+fCAEIAV+IAkgC358IAggDH58IA0gEH58IAYgDn58IAcgEn58IAogD358IBEgFn58IBUgF358Ih1CgIBAfSIeQhWIfCITIBNCgIBAfSIgQoCAgH+DfSA5QRh2rSACMQAbQgiGhCACMQAcQhCGhEICiEL///8AgyITIAEoABxBB3atIhl+IDpBGHatIAExABtCCIaEIAExABxCEIaEQgKIQv///wCDIhogAigAHEEHdq0iG358IAMgG34gGCAZfnwgEyAafnwiIUKAgEB9Ih9CFYh8IiIgIkKAgEB9IhxCgICA/////wCDfSIiQpPYKH58ICEgH0KAgID/////AIN9IBUgGX4gGCAafnwgBCAbfnwgAyATfnwgAyAYfiARIBl+fCAVIBp+fCAJIBt+fCAEIBN+fCIjQoCAQH0iFEIViHwiH0KAgEB9IiRCFYh8IiFCmNocfnwgHyAkQoCAgH+DfSIfQuf2J358ICMgFEKAgIB/g30gESAafiAHIBl+fCAEIBh+fCADIBV+fCAGIBt+fCAJIBN+fCAKIBl+IAcgGn58IAMgEX58IAkgGH58IAQgFX58IAwgG358IAYgE358IhRCgIBAfSIkQhWIfCIlQoCAQH0iJkIViHwiI0LTjEN+fCAdIAUgCX4gBiALfnwgCCAQfnwgDSAP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SQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAvyAgICfwF+AkAgAkUNACAAIAE6AAAgACACaiIDQQFrIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0EDayABOgAAIANBAmsgAToAACACQQdJDQAgACABOgADIANBBGsgAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkEEayABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBCGsgATYCACACQQxrIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQRBrIAE2AgAgAkEUayABNgIAIAJBGGsgATYCACACQRxrIAE2AgAgBCADQQRxQRhyIgRrIgJBIEkNACABrUKBgICAEH4hBSADIARqIQEDQCABIAU3AxggASAFNwMQIAEgBTcDCCABIAU3AwAgAUEgaiEBIAJBIGsiAkEfSw0ACwsgAAsEAEEQCxkBAX9BiKoCKAIAIgAEQCAAERYACxCLAQAL1AECBX8CfgJ/IAJCAFIEQCAAQeABaiEHIABB4ABqIQMgACgA4AIhBANAIAMgBGohBkGAAiAEayIFrSIIIAJaBEAgBiABIAKnIgEQCxogACAAKADgAiABajYA4AJBAAwDCyAGIAEgBRALGiAAIAAoAOACIAVqNgDgAiAAIAApAEAiCUKAAXw3AEAgACAAKQBIIAlC/35WrXw3AEggACADEFIgAyAHQYABEAsaIAAgACgA4AJBgAFrIgQ2AOACIAEgBWohASACIAh9IgJCAFINAAsLQQALC58EARN/IAEoAgQhAiABKAIsIQMgASgCCCEEIAEoAjAhBSABKAIMIQYgASgCNCEHIAEoAhAhCCABKAI4IQkgASgCFCEKIAEoAjwhCyABKAIYIQwgAUFAayINKAIAIQ4gASgCHCEPIAEoAkQhECABKAIgIREgASgCSCESIAEoAiQhEyABKAJMIRQgACABKAIAIAEoAihqNgIAIAAgEyAUajYCJCAAIBEgEmo2AiAgACAPIBBqNgIcIAAgDCAOajYCGCAAIAogC2o2AhQgACAIIAlqNgIQIAAgBiAHajYCDCAAIAQgBWo2AgggACACIANqNgIEIAEoAgQhAiABKAIsIQMgASgCCCEEIAEoAjAhBSABKAIMIQYgASgCNCEHIAEoAhAhCCABKAI4IQkgASgCFCEKIAEoAjwhCyABKAIYIQwgDSgCACENIAEoAhwhDiABKAJEIQ8gASgCICEQIAEoAkghESABKAIAIRIgASgCKCETIAAgASgCTCABKAIkazYCTCAAIBEgEGs2AkggACAPIA5rNgJEIABBQGsgDSAMazYCACAAIAsgCms2AjwgACAJIAhrNgI4IAAgByAGazYCNCAAIAUgBGs2AjAgACADIAJrNgIsIAAgEyASazYCKCAAIAEpAlA3AlAgACABKQJYNwJYIAAgASkCYDcCYCAAIAEpAmg3AmggACABKQJwNwJwIABB+ABqIAFB+ABqQZANEAYL6AQBCX8gACABKAIgIgUgASgCHCIGIAEoAhgiByABKAIUIgggASgCECIJIAEoAgwiCiABKAIIIgQgASgCBCIDIAEoAgAiAiABKAIkIgFBE2xBgICACGpBGXZqQRp1akEZdWpBGnVqQRl1akEadWpBGXVqQRp1akEZdWpBGnUgAWpBGXVBE2wgAmoiAjoAACAAIAJBEHY6AAIgACACQQh2OgABIAAgAyACQRp1aiIDQQ52OgAFIAAgA0EGdjoABCAAIAJBGHZBA3EgA0ECdHI6AAMgACAEIANBGXVqIgJBDXY6AAggACACQQV2OgAHIAAgAkEDdCADQYCAgA5xQRZ2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ABcgAy0AD3I6AA8gAyAALQAYIAMtAA9yOgAPIAMgAC0AGSADLQAPcjoADyADIAAtABogAy0AD3I6AA8gAyAALQAbIAMtAA9yOgAPIAMgAC0AHCADLQAPcjoADyADIAAtAB0gAy0AD3I6AA8gAyAALQAeIAMtAA9yOgAPIAMgAC0AHyADLQAPcjoADyADLQAPQRd0QYCAgARrQR91IQQLIANBEGokACAEC30BA38CQAJAIAAiAUEDcUUNACABLQAARQRAQQAPCwNAIAFBAWoiAUEDcUUNASABLQAADQALDAELA0AgASICQQRqIQFBgIKECCACKAIAIgNrIANyQYCBgoR4cUGAgYKEeEYNAAsDQCACIgFBAWohAiABLQAADQALCyABIABrCycAIAJBgAJPBEBB1gpB/wlB6wBB4wgQAQALIAAgASACQf8BcRCDAQv7AwECf0F/IQQCQCACQcAASw0AIANBwQBrQUBJDQACQCABQQAgAhtFBEAgA0H/AXEiAUHBAGtB/wFxQb8BTQRAEA4ACyAAQUBrQQBBpQIQDBogAEL5wvibkaOz8NsANwA4IABC6/qG2r+19sEfNwAwIABCn9j52cKR2oKbfzcAKCAAQtGFmu/6z5SH0QA3ACAgAELx7fT4paf9p6V/NwAYIABCq/DT9K/uvLc8NwAQIABCu86qptjQ67O7fzcACCAAIAGtQoiS95X/zPmE6gCFNwAADAELAn8gAkH/AXEhAiMAQYABayIFJAACQCADQf8BcSIDQcEAa0H/AXFBvwFNDQAgAUUNACACQcEAa0H/AXFBvwFNDQAgAEFAa0EAQaUCEAwaIABC+cL4m5Gjs/DbADcAOCAAQuv6htq/tfbBHzcAMCAAQp/Y+dnCkdqCm383ACggAELRhZrv+s+Uh9EANwAgIABC8e30+KWn/aelfzcAGCAAQqvw0/Sv7ry3PDcAECAAQrvOqqbY0Ouzu383AAggACADrSACrUIIhoRCiJL3lf/M+YTqAIU3AAAgAEHgAGogBUEAQYABEAwgASACEAsiAUGAARALGiAAIAAoAOACQYABajYA4AIgAUGAARAJIAFBgAFqJABBAAwBCxAOAAsNAQtBACEECyAECw0AIAAgASACECQaQQAL6AUCB34DfyMAQaACayILJAACQCACUA0AIAAgACkDICIDIAJCA4Z8NwMgIABBKGohCkLAACADQgOIQj+DIgR9IgggAlgEQEIAIQMgBEI/hUIDWgRAIAhC/ACDIQcDQCAKIAMgBHynaiABIAOnai0AADoAACAKIANCAYQiCSAEfKdqIAEgCadqLQAAOgAAIAogA0IChCIJIAR8p2ogASAJp2otAAA6AAAgCiADQgOEIgkgBHynaiABIAmnai0AADoAACADQgR8IQMgBUIEfCIFIAdSDQALCyAIQgODIgVCAFIEQANAIAogAyAEfKdqIAEgA6dqLQAAOgAAIANCAXwhAyAGQgF8IgYgBVINAAsLIAAgCiALIAtBgAJqIgwQYiABIAinaiEBIAIgCH0iAkI/VgRAA0AgACABIAsgDBBiIAFBQGshASACQkB8IgJCP1YNAAsLAkAgAlANACACQgODIQRCACEGQgAhAyACQgRaBEAgAkI8gyEFQgAhAgNAIAogA6ciAGogACABai0AADoAACAKIABBAXIiDGogASAMai0AADoAACAKIABBAnIiDGogASAMai0AADoAACAKIABBA3IiAGogACABai0AADoAACADQgR8IQMgAkIEfCICIAVSDQALCyAEUA0AA0AgCiADpyIAaiAAIAFqLQAAOgAAIANCAXwhAyAGQgF8IgYgBFINAAsLIAtBoAIQCQwBC0IAIQMgAkIEWgRAIAJCfIMhCANAIAogAyAEfKdqIAEgA6dqLQAAOgAAIAogA0IBhCIHIAR8p2ogASAHp2otAAA6AAAgCiADQgKEIgcgBHynaiABIAenai0AADoAACAKIANCA4QiByAEfKdqIAEgB6dqLQAAOgAAIANCBHwhAyAFQgR8IgUgCFINAAsLIAJCA4MiAlANAANAIAogAyAEfKdqIAEgA6dqLQAAOgAAIANCAXwhAyAGQgF8IgYgAlINAAsLIAtBoAJqJABBAAsEAEEYCw0AIAAgASACEBcaQQALBABBCAv3EgIVfgN/IAAgACgALCIWQQV2Qf///wBxrSAAKAA8QQN2rSICQoOhVn4gADMAKiAAMQAsQhCGQoCA/ACDhHwiC0KAgEB9IghCFYd8IgFCg6FWfiAANQAxQgeIQv///wCDIgNC04xDfiAAKAAXIhdBGHatIAAxABtCCIaEIAAxABxCEIaEQgKIQv///wCDfCAAKAA0IhhBBHZB////AHGtIgRC5/YnfnwgFkEY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QbABaiQAC7sGAQl/IwBB4ABrIgMkACACQcEATwRAIAAQYxogACABIAKtECQaIAAgAxAtGkEgIQIgAyEBCyAAEGMaIANCtuzYsePGjZs2NwNYIANCtuzYsePGjZs2NwNQIANCtuzYsePGjZs2NwNIIANBQGsiCkK27Nix48aNmzY3AwAgA0K27Nix48aNmzY3AzggA0K27Nix48aNmzY3AzAgA0K27Nix48aNmzY3AyggA0K27Nix48aNmzY3AyACQCACRQ0AIAJBBE8EQCACQfwAcSEGA0AgA0EgaiILIARqIgUgBS0AACABIARqLQAAczoAACALIARBAXIiBWoiCCAILQAAIAEgBWotAABzOgAAIAsgBEECciIFaiIIIAgtAAAgASAFai0AAHM6AAAgCyAEQQNyIgVqIgggCC0AACABIAVqLQAAczoAACAEQQRqIQQgB0EEaiIHIAZHDQALCyACQQNxIgdFDQADQCADQSBqIARqIgYgBi0AACABIARqLQAAczoAACAEQQFqIQQgCUEBaiIJIAdHDQALCyAAIANBIGpCwAAQJBogAEHoAGoiABBjGiADQty48eLFi5eu3AA3A1ggA0LcuPHixYuXrtwANwNQIANC3Ljx4sWLl67cADcDSCAKQty48eLFi5eu3AA3AwAgA0LcuPHixYuXrtwANwM4IANC3Ljx4sWLl67cADcDMCADQty48eLFi5eu3AA3AyggA0LcuPHixYuXrtwANwMgAkAgAkUNAEEAIQlBACEEIAJBBE8EQCACQfwAcSEKQQAhBwNAIANBIGoiCCAEaiIGIAYtAAAgASAEai0AAHM6AAAgCCAEQQFyIgZqIgUgBS0AACABIAZqLQAAczoAACAIIARBAnIiBmoiBSAFLQAAIAEgBmotAABzOgAAIAggBEEDciIGaiIFIAUtAAAgASAGai0AAHM6AAAgBEEEaiEEIAdBBGoiByAKRw0ACwsgAkEDcSICRQ0AA0AgA0EgaiAEaiIHIActAAAgASAEai0AAHM6AAAgBEEBaiEEIAlBAWoiCSACRw0ACwsgACADQSBqIgBCwAAQJBogAEHAABAJIANBIBAJIANB4ABqJABBAAs7AQF/IwBBQGoiAiQAIAAgAhAdGiAAQdABaiIAIAJCwAAQFxogACABEB0aIAJBwAAQCSACQUBrJABBAAtyACAAQgA3A0AgAEIANwNIIABBsIwCKQMANwMAIABBuIwCKQMANwMIIABBwIwCKQMANwMQIABByIwCKQMANwMYIABB0IwCKQMANwMgIABB2IwCKQMANwMoIABB4IwCKQMANwMwIABB6IwCKQMANwM4QQALIwAgAUKAgICAEFoEQBAOAAsgACABIAIgA0G0nwIoAgARDwAL5QgBGH8jAEHAAmsiAiQAIABBKGoiFyABEDYgAEIANwJUIABBATYCUCAAQgA3AlwgAEIANwJkIABCADcCbCAAQQA2AnQgAkHwAWoiBCAXEAUgAkHAAWoiDiAEQbAMEAYgAiACKALAAUEBajYCwAEgAiACKALwAUEBayIDNgLwASACKAL0ASENIAIoAvgBIQUgAigC/AEhBiACKAKAAiEHIAIoAoQCIQggAigCiAIhCSACKAKMAiEKIAIoApACIQsgAigClAIhDCAAIAQgDhAGIAAgABBuIAAgBCAAEAYgAkGQAWoiBCAAEAUgBCAEIA4QBiACIAIoArQBIgQgDGs2AoQBIAIgAigCsAEiDiALazYCgAEgAiACKAKsASIPIAprNgJ8IAIgAigCqAEiECAJazYCeCACIAIoAqQBIhEgCGs2AnQgAiACKAKgASISIAdrNgJwIAIgAigCnAEiEyAGazYCbCACIAIoApgBIhQgBWs2AmggAiACKAKUASIVIA1rNgJkIAIgAigCkAEiFiADazYCYCACIAQgDGo2AlQgAiALIA5qNgJQIAIgCiAPajYCTCACIAkgEGo2AkggAiAIIBFqNgJEIAIgByASajYCQCACIAYgE2o2AjwgAiAFIBRqNgI4IAIgDSAVajYCNCACIAMgFmo2AjAgAiACQeAAahARIAJBIBAaIQQgAiACQTBqEBEgAkEgEBohDyACIABB4AwQBiAAKAIEIQwgACgCCCELIAAoAgwhCiAAKAIQIQkgACgCFCEIIAAoAhghByAAKAIcIQYgACgCICEFIAAoAgAhDiACKAIAIRAgAigCBCERIAIoAgghEiACKAIMIRMgAigCECEUIAIoAhQhFSACKAIYIRYgAigCHCEYIAIoAiAhGSAAIARBAWsiAyAAKAIkIg0gAigCJHNxIA1zIg02AiQgACAFIAUgGXMgA3FzIgU2AiAgACAGIAYgGHMgA3FzIgY2AhwgACAHIAcgFnMgA3FzIgc2AhggACAIIAggFXMgA3FzIgg2AhQgACAJIAkgFHMgA3FzIgk2AhAgACAKIAogE3MgA3FzIgo2AgwgACALIAsgEnMgA3FzIgs2AgggACAMIAwgEXMgA3FzIgw2AgQgACAOIA4gEHMgA3FzIgM2AgAgAkGgAmogABARIABBACACLQCgAkEBcSABLQAfQQd2c0GAqgItAABBAnZzayIBIA1BACANa3NxIA1zNgIkIAAgBUEAIAVrcyABcSAFczYCICAAIAZBACAGa3MgAXEgBnM2AhwgACAHQQAgB2tzIAFxIAdzNgIYIAAgCEEAIAhrcyABcSAIczYCFCAAIAlBACAJa3MgAXEgCXM2AhAgACAKQQAgCmtzIAFxIApzNgIMIAAgC0EAIAtrcyABcSALczYCCCAAIAxBACAMa3MgAXEgDHM2AgQgACADQQAgA2tzIAFxIANzNgIAIABB+ABqIAAgFxAGIAJBwAJqJAAgBCAPckEBawvKCAEDfyMAQcABayICJAAgAkGQAWoiBCABEAUgAkHgAGoiAyAEEAUgAyADEAUgAyABIAMQBiAEIAQgAxAGIAJBMGoiASAEEAUgAyADIAEQBiABIAMQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSADIAEgAxAGIAEgAxAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgASADEAYgAiABEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgASACIAEQBiABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSADIAEgAxAGIAEgAxAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgASADEAYgAiABEAVBASEBA0AgAiACEAUgAUEBaiIBQeQARw0ACyACQTBqIgEgAiABEAYgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgAkHgAGoiAyABIAMQBiADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSAAIAMgAkGQAWoQBiACQcABaiQAC/QEARl+IAExAB8hAiABMQAeIQYgATEAHSEOIAExAAYhByABMQAFIQggATEABCEDIAExAAkhDyABMQAIIRAgATEAByERIAExAAwhCSABMQALIQogATEACiELIAExAA8hDCABMQAOIRIgATEADSETIAExABwhBCABMQAbIRQgATEAGiEVIAExABkhBSABMQAYIRYgATEAFyEXIAE1AAAhGCAAIAExABVCD4YgATEAFEIHhoQgATEAFkIXhoQgATUAECIZQoCAgAh8IhpCGYh8Ig0gDUKAgIAQfCINQoCAgOAPg30+AhggACAWQg2GIBdCBYaEIAVCFYaEIgUgDUIaiHwgBUKAgIAIfCIFQoCAgPADg30+AhwgACAUQgyGIBVCBIaEIARCFIaEIAVCGYh8IgQgBEKAgIAQfCIEQoCAgOAPg30+AiAg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ASACIAk2AsgBIAIgCjYCxAEgAiALQQFqNgLAASACQeAAaiISIAJBwAFqIhMQBSACQTBqIhBBsAwgDBAGIAIoAmAhASACKAIwIQMgAigCZCEEIAIoAjQhBSACKAJoIQYgAigCOCEHIAIoAmwhCCACKAI8IQkgAigCcCEKIAIoAkAhCyACKAJ0IQwgAigCRCEOIAIoAnghDyACKAJIIRQgAigCfCEVIAIoAkwhFiACKAKAASEXIAIoAlAhGCACQQAgAigCVCACKAKEAWprNgJUIAJBACAXIBhqazYCUCACQQAgFSAWams2AkwgAkEAIA8gFGprNgJIIAJBACAMIA5qazYCRCACQQAgCiALams2AkAgAkEAIAggCWprNgI8IAJBACAGIAdqazYCOCACQQAgBCAFams2AjQgAkEAIAEgA2prNgIwIAIgECASEAYgAkIANwKUAyACQgA3ApwDIAJBADYCpAMgAkIANwKEAyACQQE2AoADIAJCADcCjAMgAkGwA2oiASACQYADaiACEGohDyAAIAEgExAGIABBKGoiAyABIAAQBiADIAMgEBAGIAAgACANEAYgACAAKAIkQQF0IgQ2AiQgACAAKAIgQQF0IgU2AiAgACAAKAIcQQF0IgY2AhwgACAAKAIYQQF0Igc2AhggACAAKAIUQQF0Igg2AhQgACAAKAIQQQF0Igk2AhAgACAAKAIMQQF0Igo2AgwgACAAKAIIQQF0Igs2AgggACAAKAIEQQF0Igw2AgQgACAAKAIAQQF0Ig42AgAgAkHgA2oiDSAAEBEgAEEAIAItAOADQQFxayIBIARBACAEa3NxIARzNgIkIAAgBUEAIAVrcyABcSAFczYCICAAIAZBACAGa3MgAXEgBnM2AhwgACAHQQAgB2tzIAFxIAdzNgIYIAAgCEEAIAhrcyABcSAIczYCFCAAIAlBACAJa3MgAXEgCXM2AhAgACAKQQAgCmtzIAFxIApzNgIMIAAgC0EAIAtrcyABcSALczYCCCAAIAxBACAMa3MgAXEgDHM2AgQgACAOQQAgDmtzIAFxIA5zNgIAIAMgESADEAYgAEIANwJUIABBATYCUCAAQgA3AlwgAEIANwJkIABCADcCbCAAQQA2AnQgAEH4AGoiASAAIAMQBiANIAEQESACLQDgAyEAIA0gAxARQQAgDUEgEBpBASAPayAAQQFxcnJrIQMLIAJBgARqJAAgAwuFBwEKfyMAQeADayICJAADQCACQaACaiIFIANBAXRqIgYgASADai0AACIHQQR2OgABIAYgB0EPcToAACADQQFyIgZBAXQgBWoiByABIAZqLQAAIgZBBHY6AAEgByAGQQ9xOgAAIANBAmoiA0EgRw0AC0EAIQEDQCACQaACaiAEaiIDIAMtAAAgAWoiASABQQhqIgFB8AFxazoAACADIAMtAAEgAcBBBHVqIgEgAUEIaiIBQfABcWs6AAEgAyADLQACIAHAQQR1aiIBIAFBCGoiAUHwAXFrOgACIAHAQQR1IQEgBEEDaiIEQT9HDQALIAIgAi0A3wIgAWo6AN8CIABCADcCICAAQgA3AhggAEIANwIQIABCADcCCCAAQgA3AgAgAEIANwIsIABBATYCKCAAQgA3AjQgAEIANwI8IABCADcCRCAAQoCAgIAQNwJMIABB1ABqQQBBzAAQDBogAEH4AGohCyAAQdAAaiEHIABBKGohCSACQdABaiEBIAJBqAFqIQYgAkH4AWohBEEBIQMDQCACQQhqIgggA0EBdiACQaACaiADaiwAABCPASACQYABaiIFIAAgCBBtIAAgBSAEEAYgCSAGIAEQBiAHIAEgBBAGIAsgBSAGEAYgA0E+SSADQQJqIQMNAAsgAiAAKQIgNwOIAyACIAApAhg3A4ADIAIgACkCEDcD+AIgAiAAKQIINwPwAiACIAApAgA3A+gCIAIgCSkCCDcDmAMgAiAJKQIQNwOgAyACIAkpAhg3A6gDIAIgCSkCIDcDsAMgAiAJKQIANwOQAyACIAcpAgg3A8ADIAIgBykCEDcDyAMgAiAHKQIYNwPQAyACIAcpAiA3A9gDIAIgBykCADcDuAMgBSACQegCaiIKEBggCiAFIAQQBiACQZADaiIDIAYgARAGIAJBuANqIgggASAEEAYgBSAKEBggCiAFIAQQBiADIAYgARAGIAggASAEEAYgBSAKEBggCiAFIAQQBiADIAYgARAGIAggASAEEAYgBSAKEBggACAFIAQQBiAJIAYgARAGIAcgASAEEAYgCyAFIAYQBkEAIQMDQCACQQhqIgggA0EBdiACQaACaiADaiwAABCPASACQYABaiIFIAAgCBBtIAAgBSAEEAYgCSAGIAEQBiAHIAEgBBAGIAsgBSAGEAYgA0E+SSADQQJqIQMNAAsgAkHgA2okAAuLAQEBfyMAQRBrIgIgADYCDCACIAE2AghBACEAIAJBADYCBANAIAIgAigCBCACKAIMIABqLQAAIAIoAgggAGotAABzcjYCBCACIAIoAgQgAEEBciIBIAIoAgxqLQAAIAIoAgggAWotAABzcjYCBCAAQQJqIgBBIEcNAAsgAigCBEEBa0EIdkEBcUEBaws0AQJ/IwBBIGsiAyQAQX8hBCADIAIgARAfRQRAIABB0JYCIANBABArIQQLIANBIGokACAECxYAIAFBIBAZIAAgAUGMlwIoAgARAAAL6AIBAn8CQCAAIAFGDQAgASAAIAJqIgRrQQAgAkEBdGtNBEAgACABIAIQCw8LIAAgAXNBA3EhAwJAAkAgACABSQRAIAMEQCAAIQMMAwsgAEEDcUUEQCAAIQMMAgsgACEDA0AgAkUNBCADIAEtAAA6AAAgAUEBaiEBIAJBAWshAiADQQFqIgNBA3ENAAsMAQsCQCADDQAgBEEDcQRAA0AgAkUNBSAAIAJBAWsiAmoiAyABIAJqLQAAOgAAIANBA3ENAAsLIAJBA00NAANAIAAgAkEEayICaiABIAJqKAIANgIAIAJBA0sNAAsLIAJFDQIDQCAAIAJBAWsiAmogASACai0AADoAACACDQALDAILIAJBA00NAANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIAJBBGsiAkEDSw0ACwsgAkUNAANAIAMgAS0AADoAACADQQFqIQMgAUEBaiEBIAJBAWsiAg0ACwsgAAuAAgEDfwJ/AkACQAJAIAEiA0H/AXEiAQRAIABBA3EEQANAIAAtAAAiAkUNBSABIAJGDQUgAEEBaiIAQQNxDQALC0GAgoQIIAAoAgAiAmsgAnJBgIGChHhxQYCBgoR4Rw0BIAFBgYKECGwhBANAQYCChAggAiAEcyIBayABckGAgYKEeHFBgIGChHhHDQIgACgCBCECIABBBGoiASEAIAJBgIKECCACa3JBgIGChHhxQYCBgoR4Rg0ACwwCCyAAECAgAGoMAwsgACEBCwNAIAEiAC0AACICRQ0BIABBAWohASACIANB/wFxRw0ACwsgAAsiAEEAIAAtAAAgA0H/AXFGGwtgAQJ/IAJFBEBBAA8LIAAtAAAiAwR/AkADQCADIAEtAAAiBEcNASAERQ0BIAJBAWsiAkUNASABQQFqIQEgAC0AASEDIABBAWohACADDQALQQAhAwsgAwVBAAsgAS0AAGsLUgECf0HwlgIoAgAiASAAQQdqQXhxIgJqIQACQCACQQAgACABTRtFBEAgAD8AQRB0TQ0BIAAQBA0BC0HwpQJBMDYCAEF/DwtB8JYCIAA2AgAgAQs5AQF/IwBBIGsiAiQAIAAgAhAtGiAAQegAaiIAIAJCIBAkGiAAIAEQLRogAkEgEAkgAkEgaiQAQQALlgEBAX8jAEHQAWsiAyQAIANCADcDSCADQbiMAikDADcDCCADQcCMAikDADcDECADQciMAikDADcDGCADQdCMAikDADcDICADQdiMAikDADcDKCADQeCMAikDADcDMCADQeiMAikDADcDOCADQgA3A0AgA0GwjAIpAwA3AwAgAyABIAIQFxogAyAAEB0aIANB0AFqJABBAAsQACAAIAEgAiADQQgQaUEACxAAIAAgASACIANBDBBpQQALEAAgACABIAIgA0EUEGlBAAuhEQIsfwV+IwBBoAZrIgIkACABKAIsIQMgASgCVCEFIAEoAjAhDCABKAJYIQ0gASgCNCEOIAEoAlwhDyABKAI4IRAgASgCYCERIAEoAjwhEiABKAJkIRMgAUFAayIUKAIAIRYgASgCaCEEIAEoAkQhBiABKAJsIQcgASgCSCEIIAEoAnAhCSABKAIoIQogASgCUCELIAIgASgCTCIVIAEoAnQiF2o2AsQCIAIgCCAJajYCwAIgAiAGIAdqNgK8AiACIAQgFmo2ArgCIAIgEiATajYCtAIgAiAQIBFqNgKwAiACIA4gD2o2AqwCIAIgDCANajYCqAIgAiADIAVqNgKkAiACIAogC2o2AqACIAIgFyAVazYCJCACIAkgCGs2AiAgAiAHIAZrNgIcIAIgBCAWazYCGCACIBMgEms2AhQgAiARIBBrNgIQIAIgDyAOazYCDCACIA0gDGs2AgggAiAFIANrNgIEIAIgCyAKazYCACACQaACaiIFIAUgAhAGIAJB8AFqIgYgASABQShqIgMQBiACQcABaiIEIAYQBSAEIAUgBBAGIAJCADcCxAMgAkIANwLMAyACQQA2AtQDIAJCADcCtAMgAkIANwK8AyACQQE2ArADIAJBwARqIgcgAkGwA2ogBBBqGiACQdAFaiIEIAcgBRAGIAJBoAVqIh8gByAGEAYgAkEwaiIdIAQgHxAGIB0gHSABQfgAaiIFEAYgAkGQBGogAUHgDBAGIAJB4ANqIANB4AwQBiACQfAEaiAEQYAXEAYgAkHQAmoiAyAFIB0QBiACQYADaiIYIAMQESACLQCAAyEDIAIgASkCICIuNwOwASACIAEpAhgiLzcDqAEgAiABKQIQIjA3A6ABIAIgASkCCCIxNwOYASACIAEpAgAiMjcDkAEgASgCLCEFIAEoAjAhDCABKAI0IQ0gASgCOCEOIAEoAjwhDyAUKAIAIRAgASgCRCERIAEoAkghEiABKAJMIRMgASgCKCEWIAIoAuQDIQogAigClAEhBCACKALsAyELIAIoApwBIQYgAigC9AMhFCACKAKkASEHIAIoAvwDIRUgAigCrAEhCCACKAKEBCEXIAIoArQBIQkgAigC4AMhHiACKALoAyEZIAIoAvADIRogAigC+AMhGyACQQAgA0EBcWsiAyAupyIcIAIoAoAEc3EgHHM2ArABIAIgGyAvpyIccyADcSAcczYCqAEgAiAaIDCnIhtzIANxIBtzNgKgASACIBkgMaciGnMgA3EgGnM2ApgBIAIgHiAypyIZcyADcSAZczYCkAEgAiAJIAkgF3MgA3FzNgK0ASACIAggCCAVcyADcXM2AqwBIAIgByAHIBRzIANxczYCpAEgAiAGIAYgC3MgA3FzNgKcASACIAQgBCAKcyADcXM2ApQBIAIoApAEIRcgAigClAQhHiACKAKYBCEZIAIoApwEIRogAigCoAQhGyACKAKkBCEcIAIoAqgEISAgAigCrAQhISACKAKwBCEiIAIoArQEISMgAigCoAUhBCACKALwBCEkIAIoAqQFIQYgAigC9AQhJSACKAKoBSEHIAIoAvgEISYgAigCrAUhCCACKAL8BCEnIAIoArAFIQkgAigCgAUhKCACKAK0BSEKIAIoAoQFISkgAigCuAUhCyACKAKIBSEqIAIoArwFIRQgAigCjAUhKyACKALABSEVIAIoApAFISwgAiACKALEBSItIAIoApQFcyADcSAtczYCxAUgAiAVIBUgLHMgA3FzNgLABSACIBQgFCArcyADcXM2ArwFIAIgCyALICpzIANxczYCuAUgAiAKIAogKXMgA3FzNgK0BSACIAkgCSAocyADcXM2ArAFIAIgCCAIICdzIANxczYCrAUgAiAHIAcgJnMgA3FzNgKoBSACIAYgBiAlcyADcXM2AqQFIAIgBCAEICRzIANxczYCoAUgAkHgAGoiBCACQZABaiAdEAYgGCAEEBEgASgCVCEEIAEoAlghBiABKAJcIQcgASgCYCEIIAEoAmQhCSABKAJoIQogASgCbCELIAEoAnAhFCABKAJQIRUgAiABKAJ0QQAgAi0AgANBAXFrIgEgEyATICNzIANxcyITQQAgE2tzcSATc2s2AqQDIAIgFCASIBIgInMgA3FzIhJBACASa3MgAXEgEnNrNgKgAyACIAsgESARICFzIANxcyIRQQAgEWtzIAFxIBFzazYCnAMgAiAKIBAgECAgcyADcXMiEEEAIBBrcyABcSAQc2s2ApgDIAIgCSAPIA8gHHMgA3FzIg9BACAPa3MgAXEgD3NrNgKUAyACIAggDiAOIBtzIANxcyIOQQAgDmtzIAFxIA5zazYCkAMgAiAHIA0gDSAacyADcXMiDUEAIA1rcyABcSANc2s2AowDIAIgBiAMIAwgGXMgA3FzIgxBACAMa3MgAXEgDHNrNgKIAyACIAQgBSAFIB5zIANxcyIFQQAgBWtzIAFxIAVzazYChAMgAiAVIAEgFiAWIBdzIANxcyIBQQAgAWtzcSABc2s2AoADIBggHyAYEAYgAkGABmogGBARIAJBACACLQCABkEBcWsiASACKAKAAyIDQQAgA2tzcSADczYCgAMgAiACKAKEAyIDQQAgA2tzIAFxIANzNgKEAyACIAIoAogDIgNBACADa3MgAXEgA3M2AogDIAIgAigCjAMiA0EAIANrcyABcSADczYCjAMgAiACKAKQAyIDQQAgA2tzIAFxIANzNgKQAyACIAIoApQDIgNBACADa3MgAXEgA3M2ApQDIAIgAigCmAMiA0EAIANrcyABcSADczYCmAMgAiACKAKcAyIDQQAgA2tzIAFxIANzNgKcAyACIAIoAqADIgNBACADa3MgAXEgA3M2AqADIAIgASACKAKkAyIBQQAgAWtzcSABczYCpAMgACAYEBEgAkGgBmokAAv4AQEKfwNAIAQgACADai0AACIBIANBgBVqIgItAABzciEEIAogASACLQDAAXNyIQogCSABIAItAKABc3IhCSAIIAEgAi0AgAFzciEIIAcgASACLQBgc3IhByAGIAEgAkFAay0AAHNyIQYgBSABIAItACBzciEFIANBAWoiA0EfRw0ACyAKIAAtAB9B/wBxIgBB/wBzIgFyQf8BcUEBayABIAlyQf8BcUEBayABIAhyQf8BcUEBayAHIABB+gBzckH/AXFBAWsgBiAAQQVzckH/AXFBAWsgACAFckH/AXFBAWsgACAEckH/AXFBAWtycnJycnJBCHZBAXELwQUBHH8jAEHAAmsiASQAIAFB8AFqIgMgABAFIAFBwAFqIgQgAEEoahAFIAFBkAFqIgIgAEHQAGoQBSABKALwASEAIAEoAsABIQUgASgC9AEhBiABKALEASEHIAEoAvgBIQggASgCyAEhCSABKAL8ASEKIAEoAswBIQsgASgCgAIhDCABKALQASENIAEoAoQCIQ4gASgC1AEhDyABKAKIAiEQIAEoAtgBIREgASgCjAIhEiABKALcASETIAEoApACIRQgASgC4AEhFSABIAEoAuQBIAEoApQCazYCVCABIBUgFGs2AlAgASATIBJrNgJMIAEgESAQazYCSCABIA8gDms2AkQgASANIAxrNgJAIAEgCyAKazYCPCABIAkgCGs2AjggASAHIAZrNgI0IAEgBSAAazYCMCABQTBqIhYgFiACEAYgASADIAQQBiABIAFBsAwQBiABQeAAaiACEAUgASgCMCEAIAEoAmAhBSABKAIAIQYgASgCNCEHIAEoAmQhCCABKAIEIQkgASgCOCEKIAEoAmghCyABKAIIIQwgASgCPCENIAEoAmwhDiABKAIMIQ8gASgCQCEQIAEoAnAhESABKAIQIRIgASgCRCETIAEoAnQhFCABKAIUIRUgASgCSCECIAEoAnghAyABKAIYIQQgASgCTCEXIAEoAnwhGCABKAIcIRkgASgCUCEaIAEoAoABIRsgASgCICEcIAEgASgCVCABKAKEASABKAIkams2AlQgASAaIBsgHGprNgJQIAEgFyAYIBlqazYCTCABIAIgAyAEams2AkggASATIBQgFWprNgJEIAEgECARIBJqazYCQCABIA0gDiAPams2AjwgASAKIAsgDGprNgI4IAEgByAIIAlqazYCNCABIAAgBSAGams2AjAgAUGgAmoiACAWEBEgAEEgEBogAUHAAmokAAuFAwIDfwF+IwBB4AJrIgYkACAGIAQgBUEAECsaAn8C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IAEpAhA3A1AgAiABKQIoNwNIIAIgASkCIDcDQCADIAJB0ABqIAJBQGsQCCABIAIpAogCNwIoIAEgAikCgAI3AiAgAiABKQIINwM4IAIgASkCADcDMCACIAEpAhg3AyggAiABKQIQNwMgIAMgAkEwaiACQSBqEAggASACKQKIAjcCGCABIAIpAoACNwIQIAIgAikDmAI3AxggAiACKQOQAjcDECACIAEpAgg3AwggAiABKQIANwMAIAMgAkEQaiACEAggASACKQKIAjcCCCABIAIpAoACNwIAIAEgCiABKAAMczYCDCABIAkgASgACHM2AgggASAIIAEoAARzNgIEIAEgCyABKAAAczYCACAAIAcgACgAAHM2AgAgASAGIAEoAERzNgJEIAEgBSABKABIczYCSCABIAQgASgATHM2AkwgAkGgAmokAAvwCQEdfyABKAIEIQQgASgCLCEDIAEoAgghBSABKAIwIQYgASgCDCEHIAEoAjQhCCABKAIQIQkgASgCOCEKIAEoAhQhCyABKAI8IQwgASgCGCENIAFBQGsiDigCACEPIAEoAhwhECABKAJEIREgASgCICESIAEoAkghEyABKAIkIRQgASgCTCEVIAAgASgCACABKAIoajYCACAAIBQgFWo2AiQgACASIBNqNgIgIAAgECARajYCHCAAIA0gD2o2AhggACALIAxqNgIUIAAgCSAKajYCECAAIAcgCGo2AgwgACAFIAZqNgIIIAAgAyAEajYCBCABKAIEIQMgASgCLCEFIAEoAgghBiABKAIwIQcgASgCDCEIIAEoAjQhCSABKAIQIQogASgCOCELIAEoAhQhDCABKAI8IQ0gASgCGCEPIA4oAgAhDiABKAIcIQQgASgCRCEQIAEoAiAhESABKAJIIRIgASgCACETIAEoAighFCAAIAEoAkwgASgCJGs2AkwgACASIBFrNgJIIAAgECAEazYCRCAAQUBrIgQgDiAPazYCACAAIA0gDGs2AjwgACALIAprNgI4IAAgCSAIazYCNCAAIAcgBms2AjAgACAFIANrNgIsIAAgFCATazYCKCAAQdAAaiAAIAJBKGoQBiAAQShqIgMgAyACEAYgAEH4AGogAkH4AGogAUH4AGoQBiAAIAFB0ABqIAJB0ABqEAYgACgCBCEUIAAoAgghFSAAKAIMIRYgACgCECEXIAAoAhQhGCAAKAIYIRkgACgCHCEaIAAoAiAhGyAAKAIkIRwgACgCLCEBIAAoAlQhAiAAKAIwIQMgACgCWCEFIAAoAjQhBiAAKAJcIQcgACgCOCEIIAAoAmAhCSAAKAI8IQogACgCZCELIAQoAgAhDCAAKAJoIQ0gACgCRCEOIAAoAmwhDyAAKAJIIRAgACgCcCERIAAoAgAhHSAAKAIoIRIgACgCUCETIAAgACgCTCIeIAAoAnQiH2o2AkwgACAQIBFqNgJIIAAgDiAPajYCRCAEIAwgDWo2AgAgACAKIAtqNgI8IAAgCCAJajYCOCAAIAYgB2o2AjQgACADIAVqNgIwIAAgASACajYCLCAAIBIgE2o2AiggACAfIB5rNgIkIAAgESAQazYCICAAIA8gDms2AhwgACANIAxrNgIYIAAgCyAKazYCFCAAIAkgCGs2AhAgACAHIAZrNgIMIAAgBSADazYCCCAAIAIgAWs2AgQgACATIBJrNgIAIAAgACgCnAEiASAcQQF0IgJqNgKcASAAIAAoApgBIgQgG0EBdCIDajYCmAEgACAAKAKUASIFIBpBAXQiBmo2ApQBIAAgACgCkAEiByAZQQF0IghqNgKQASAAIAAoAowBIgkgGEEBdCIKajYCjAEgACAAKAKIASILIBdBAXQiDGo2AogBIAAgACgChAEiDSAWQQF0Ig5qNgKEASAAIAAoAoABIg8gFUEBdCIQajYCgAEgACAAKAJ8IhEgFEEBdCISajYCfCAAIAAoAngiEyAdQQF0IhRqNgJ4IAAgAyAEazYCcCAAIAYgBWs2AmwgACAIIAdrNgJoIAAgCiAJazYCZCAAIAwgC2s2AmAgACAOIA1rNgJcIAAgECAPazYCWCAAIBIgEWs2AlQgACAUIBNrNgJQIAAgAiABazYCdAtAAQN/IAAgASABQfgAaiICEAYgAEEoaiABQShqIgMgAUHQAGoiBBAGIABB0ABqIAQgAhAGIABB+ABqIAEgAxAGCxcAIAAgASACrSADrUIghoQgBCAFEL8BCxcAIAAgASACrSADrUIghoQgBCAFEMABC4UBAQV/AkAgAS0AABA4IgJFDQAgAS0AARA4IgNFDQAgAS0AAhA4IgRFDQAgAS0AAxA4IgVFDQAgAS0ABBA4IgZFDQAgACACQYAIayADQYAIa0EGdHIgBEGACGtBDHRyIAVBgAhrQRJ0ciAGQYAIa0EYdHI2AgAgAUEFag8LIABBADYCAEEAC8MGAQR/IAIgACADQQd0akFAaiIEKQIANwIAIAIgBCkCODcCOCACIAQpAjA3AjAgAiAEKQIoNwIoIAIgBCkCIDcCICACIAQpAhg3AhggAiAEKQIQNwIQIAIgBCkCCDcCCCADBEAgA0EBdCEGIANBBnQhBwNAIAIgAigCACAAIAVBBnRqIgMoAgBzNgIAIAIgAigCBCADKAIEczYCBCACIAIoAgggAygCCHM2AgggAiACKAIMIAMoAgxzNgIMIAIgAigCECADKAIQczYCECACIAIoAhQgAygCFHM2AhQgAiACKAIYIAMoAhhzNgIYIAIgAigCHCADKAIcczYCHCACIAIoAiAgAygCIHM2AiAgAiACKAIkIAMoAiRzNgIkIAIgAigCKCADKAIoczYCKCACIAIoAiwgAygCLHM2AiwgAiACKAIwIAMoAjBzNgIwIAIgAigCNCADKAI0czYCNCACIAIoAjggAygCOHM2AjggAiACKAI8IAMoAjxzNgI8IAIQuwEgASAFQQV0aiIEIAIpAjg3AjggBCACKQIwNwIwIAQgAikCKDcCKCAEIAIpAiA3AiAgBCACKQIYNwIYIAQgAikCEDcCECAEIAIpAgg3AgggBCACKQIANwIAIAIgAigCACADQUBrKAIAczYCACACIAIoAgQgAygCRHM2AgQgAiACKAIIIAMoAkhzNgIIIAIgAigCDCADKAJMczYCDCACIAIoAhAgAygCUHM2AhAgAiACKAIUIAMoAlRzNgIUIAIgAigCGCADKAJYczYCGCACIAIoAhwgAygCXHM2AhwgAiACKAIgIAMoAmBzNgIgIAIgAigCJCADKAJkczYCJCACIAIoAiggAygCaHM2AiggAiACKAIsIAMoAmxzNgIsIAIgAigCMCADKAJwczYCMCACIAIoAjQgAygCdHM2AjQgAiACKAI4IAMoAnhzNgI4IAIgAigCPCADKAJ8czYCPCACELsBIAQgB2oiAyACKQI4NwI4IAMgAikCMDcCMCADIAIpAig3AiggAyACKQIgNwIgIAMgAikCGDcCGCADIAIpAhA3AhAgAyACKQIINwIIIAMgAikCADcCACAFQQJqIgUgBkkNAAsLCyIBAX8gACgCACIBBEAgARAVCyAAQQA2AgggAEIANwIAQQALkR4CEX8UfiMAQYAgayIFJAACQCAARQ0AAkACQAJ/IAAoAiQiAkECRwRAIAEtAAghCSAAKAIEIQ4gASgCAAwBCyAAKAIEIQ4gAS0ACCEJIAEoAgAiDA0BIAlBAk8NAUEACyEMIAVBgBhqQQBBgAgQDBogBUG4EGpBAEHIBxAMGiAFIAytNwOAECABNQIEIRcgBSAJrUL/AYM3A5AQIAUgFzcDiBAgBSAANQIQNwOYECAANQIIIRcgBSACrTcDqBAgBSAXNwOgECAAKAIURQ0BQgAhFwNAIARB/wBxIgNFBEAgBSAXQgF8Ihc3A7AQIAVBAEGACBAMIgJBgAhqQQBBgAgQDBogAkGAGGoiBiACQYAQaiACEHUgBiACIAJBgAhqEHULIA4gBEEDdGogBUGACGogA0EDdGopAwA3AwAgBEEBaiIEIAAoAhQiA0kNAAsMAQsgACgCFCEDQQEhEAsgCSAMckUiEUEBdCIIIANPDQBBfyAAKAIYIgJBAWsgCCACIAEoAgQiDWxqIAMgCWxqIgogAnAbIApqIQQgCUEBaiESIA2tISYDQCAKQQFrIAQgCiAAKAIYIgJwQQFGGyENIAAoAhwhByAQBH8gACgCACgCBCANQQp0agUgDiAIQQN0agspAwAhEyABIAg2AgwgJiATQiCIpyAHcK0gERshGAJ+IAxFBEAgCUUEQCAIQQFrIQRCAAwCCyADIAlsIQQgGCAmUQRAIAQgCGpBAWshBEIADAILIAQgCEVrIQRCAAwBCyAYICZRBH8gCCADQX9zagVBAEF/IAgbIANrCyACaiEEQgAgCUEDRg0AGiADIBJsrQshFyAAKAIAKAIEIgMgAiAYp2xBCnRqIBcgBEEBa618IAStIBNC/////w+DIhcgF35CIIh+QiCIfSACrYKnQQp0aiEEIAMgDUEKdGohAiADIApBCnRqIQcCQCAMBEAgAiAEIAcQdQwBCyAFQYAYaiAEQYAIEAsaQQAhBANAIARBA3QiAyAFQYAYaiILaiIGIAYpAwAgAiADaikDAIU3AwAgCyADQQhyIgZqIg8gDykDACACIAZqKQMAhTcDACALIANBEHIiBmoiDyAPKQMAIAIgBmopAwCFNwMAIAsgA0EYciIDaiIGIAYpAwAgAiADaikDAIU3AwAgBEEEaiIEQYABRw0ACyAFQYAQaiALQYAIEAsaQQAhA0EAIQQDQCAFQYAYaiAEQQd0aiICIAIpAzgiFyACKQMYIhh8IBhCAYZC/v///x+DIBdC/////w+DfnwiGCACKQN4hUIgiSITIAIpA1giFnwgE0L/////D4MgFkIBhkL+////H4N+fCIWIBeFQiiJIhcgGHwgF0L/////D4MgGEIBhkL+////H4N+fCIYIBOFQjCJIhMgAikDKCIUIAIpAwgiFXwgFUIBhkL+////H4MgFEL/////D4N+fCIVIAIpA2iFQiCJIhsgAikDSCIcfCAbQv////8PgyAcQgGGQv7///8fg358IhwgFIVCKIkiFCAVfCAUQv////8PgyAVQgGGQv7///8fg358IhUgG4VCMIkiGyAcfCAbQv////8PgyAcQgGGQv7///8fg358IhwgFIVCAYkiFCACKQMgIh8gAikDACIafCAaQgGGQv7///8fgyAfQv////8Pg358IhogAikDYIVCIIkiICACQUBrIgYpAwAiI3wgIEL/////D4MgI0IBhkL+////H4N+fCIjIB+FQiiJIh8gGnwgH0L/////D4MgGkIBhkL+////H4N+fCIafCAUQv////8PgyAaQgGGQv7///8fg358IhmFQiCJIiQgAikDMCIhIAIpAxAiHXwgHUIBhkL+////H4MgIUL/////D4N+fCIdIAIpA3CFQiCJIiIgAikDUCIefCAiQv////8PgyAeQgGGQv7///8fg358Ih4gIYVCKIkiISAdfCAhQv////8PgyAdQgGGQv7///8fg358Ih0gIoVCMIkiIiAefCAiQv////8PgyAeQgGGQv7///8fg358Ih58ICRC/////w+DIB5CAYZC/v///x+DfnwiJSAUhUIoiSIUIBl8IBRC/////w+DIBlCAYZC/v///x+DfnwiGTcDACACIBkgJIVCMIkiGTcDeCACIBkgJXwgGUL/////D4MgJUIBhkL+////H4N+fCIZNwNQIAIgFCAZhUIBiTcDKCACIB4gIYVCAYkiFCAVfCAUQv////8PgyAVQgGGQv7///8fg358IhUgGiAghUIwiSIahUIgiSIgIBMgFnwgE0L/////D4MgFkIBhkL+////H4N+fCITfCAgQv////8PgyATQgGGQv7///8fg358IhYgFIVCKIkiFCAVfCAUQv////8PgyAVQgGGQv7///8fg358IhkgIIVCMIkiFTcDYCACIBk3AwggAiAVIBZ8IBVC/////w+DIBZCAYZC/v///x+DfnwiFiAUhUIBiTcDMCACIBY3A1ggAiATIBeFQgGJIhcgHXwgF0L/////D4MgHUIBhkL+////H4N+fCITIBuFQiCJIhYgGiAjfCAaQv////8PgyAjQgGGQv7///8fg358IhR8IBZC/////w+DIBRCAYZC/v///x+DfnwiFSAXhUIoiSIXIBN8IBdC/////w+DIBNCAYZC/v///x+DfnwiEzcDECACIBMgFoVCMIkiEzcDaCAGIBMgFXwgE0L/////D4MgFUIBhkL+////H4N+fCIVNwMAIAIgGCAUIB+FQgGJIhN8IBhCAYZC/v///x+DIBNC/////w+DfnwiGCAihUIgiSIWIBx8IBZC/////w+DIBxCAYZC/v///x+DfnwiFCAThUIoiSITIBh8IBNC/////w+DIBhCAYZC/v///x+DfnwiGyAWhUIwiSIYIBR8IBhC/////w+DIBRCAYZC/v///x+DfnwiFjcDSCACIBg3A3AgAiAbNwMYIAIgFSAXhUIBiTcDOCACIBMgFoVCAYk3AyAgBEEBaiIEQQhHDQALA0AgBUGAGGogA0EEdGoiAiACKQOIAyIXIAIpA4gBIhh8IBhCAYZC/v///x+DIBdC/////w+DfnwiGCACKQOIB4VCIIkiEyACKQOIBSIWfCATQv////8PgyAWQgGGQv7///8fg358IhYgF4VCKIkiFyAYfCAXQv////8PgyAYQgGGQv7///8fg358IhggE4VCMIkiEyACKQOIAiIUIAIpAwgiFXwgFUIBhkL+////H4MgFEL/////D4N+fCIVIAIpA4gGhUIgiSIbIAIpA4gEIhx8IBtC/////w+DIBxCAYZC/v///x+DfnwiHCAUhUIoiSIUIBV8IBRC/////w+DIBVCAYZC/v///x+DfnwiFSAbhUIwiSIbIBx8IBtC/////w+DIBxCAYZC/v///x+DfnwiHCAUhUIBiSIUIAIpA4ACIh8gAikDACIafCAaQgGGQv7///8fgyAfQv////8Pg358IhogAikDgAaFQiCJIiAgAikDgAQiI3wgIEL/////D4MgI0IBhkL+////H4N+fCIjIB+FQiiJIh8gGnwgH0L/////D4MgGkIBhkL+////H4N+fCIafCAUQv////8PgyAaQgGGQv7///8fg358IhmFQiCJIiQgAikDgAMiISACKQOAASIdfCAdQgGGQv7///8fgyAhQv////8Pg358Ih0gAikDgAeFQiCJIiIgAikDgAUiHnwgIkL/////D4MgHkIBhkL+////H4N+fCIeICGFQiiJIiEgHXwgIUL/////D4MgHUIBhkL+////H4N+fCIdICKFQjCJIiIgHnwgIkL/////D4MgHkIBhkL+////H4N+fCIefCAkQv////8PgyAeQgGGQv7///8fg358IiUgFIVCKIkiFCAZfCAUQv////8PgyAZQgGGQv7///8fg358Ihk3AwAgAiAZICSFQjCJIhk3A4gHIAIgGSAlfCAZQv////8PgyAlQgGGQv7///8fg358Ihk3A4AFIAIgFCAZhUIBiTcDiAIgAiAeICGFQgGJIhQgFXwgFEL/////D4MgFUIBhkL+////H4N+fCIVIBogIIVCMIkiGoVCIIkiICATIBZ8IBNC/////w+DIBZCAYZC/v///x+DfnwiE3wgIEL/////D4MgE0IBhkL+////H4N+fCIWIBSFQiiJIhQgFXwgFEL/////D4MgFUIBhkL+////H4N+fCIZICCFQjCJIhU3A4AGIAIgGTcDCCACIBUgFnwgFUL/////D4MgFkIBhkL+////H4N+fCIWIBSFQgGJNwOAAyACIBY3A4gFIAIgEyAXhUIBiSIXIB18IBdC/////w+DIB1CAYZC/v///x+DfnwiEyAbhUIgiSIWIBogI3wgGkL/////D4MgI0IBhkL+////H4N+fCIUfCAWQv////8PgyAUQgGGQv7///8fg358IhUgF4VCKIkiFyATfCAXQv////8PgyATQgGGQv7///8fg358IhM3A4ABIAIgEyAWhUIwiSITNwOIBiACIBMgFXwgE0L/////D4MgFUIBhkL+////H4N+fCIVNwOABCACIBggFCAfhUIBiSITfCAYQgGGQv7///8fgyATQv////8Pg358IhggIoVCIIkiFiAcfCAWQv////8PgyAcQgGGQv7///8fg358IhQgE4VCKIkiEyAYfCATQv////8PgyAYQgGGQv7///8fg358IhsgFoVCMIkiGCAUfCAYQv////8PgyAUQgGGQv7///8f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IAAgARAGIAAgABBuIAAgACAEEAYgACAAIAEQBiADQcABaiIEIAAQBSAEIAQgAhAGIAEoAgQhBSABKAIIIQ0gASgCDCEOIAEoAhAhDyABKAIUIRAgASgCGCERIAEoAhwhEiABKAIgIRMgASgCACEUIAMoAsABIQIgAygCxAEhBCADKALIASEGIAMoAswBIQcgAygC0AEhCCADKALUASEJIAMoAtgBIQogAygC3AEhCyADKALgASEMIAMgAygC5AEiFSABKAIkIhZrNgK0ASADIAwgE2s2ArABIAMgCyASazYCrAEgAyAKIBFrNgKoASADIAkgEGs2AqQBIAMgCCAPazYCoAEgAyAHIA5rNgKcASADIAYgDWs2ApgBIAMgBCAFazYClAEgAyACIBRrNgKQASADIBUgFmo2AoQBIAMgDCATajYCgAEgAyALIBJqNgJ8IAMgCiARajYCeCADIAkgEGo2AnQgAyAIIA9qNgJwIAMgByAOajYCbCADIAYgDWo2AmggAyAEIAVqNgJkIAMgAiAUajYCYCADQTBqIgUgAUHgDBAGIAMgFSADKAJUajYCVCADIAwgAygCUGo2AlAgAyALIAMoAkxqNgJMIAMgCiADKAJIajYCSCADIAkgAygCRGo2AkQgAyAIIAMoAkBqNgJAIAMgByADKAI8ajYCPCADIAYgAygCOGo2AjggAyAEIAMoAjRqNgI0IAMgAiADKAIwajYCMCADIANBkAFqEBEgA0EgEBohDiADIANB4ABqEBEgA0EgEBohDSADIAUQESADQSAQGiEBIAMgAEHgDBAGIAAoAgQhDCAAKAIIIQsgACgCDCEKIAAoAhAhCSAAKAIUIQggACgCGCEHIAAoAhwhBiAAKAIgIQQgACgCACEFIAMoAgAhDyADKAIEIRAgAygCCCERIAMoAgwhEiADKAIQIRMgAygCFCEUIAMoAhghFSADKAIcIRYgAygCICEXIABBACABIA1yayIBIAAoAiQiAiADKAIkc3EgAnMiAjYCJCAAIAQgBCAXcyABcXMiBDYCICAAIAYgBiAWcyABcXMiBjYCHCAAIAcgByAVcyABcXMiBzYCGCAAIAggCCAUcyABcXMiCDYCFCAAIAkgCSATcyABcXMiCTYCECAAIAogCiAScyABcXMiCjYCDCAAIAsgCyARcyABcXMiCzYCCCAAIAwg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DigCACEPIAEoAhwhECABKAJEIREgASgCICESIAEoAkghEyABKAIkIRQgASgCTCEVIAAgASgCACABKAIoajYCACAAIBQgFWo2AiQgACASIBNqNgIgIAAgECARajYCHCAAIA0gD2o2AhggACALIAxqNgIUIAAgCSAKajYCECAAIAcgCGo2AgwgACAFIAZqNgIIIAAgAyAEajYCBCABKAIEIQMgASgCLCEFIAEoAgghBiABKAIwIQcgASgCDCEIIAEoAjQhCSABKAIQIQogASgCOCELIAEoAhQhDCABKAI8IQ0gASgCGCEPIA4oAgAhDiABKAIcIQQgASgCRCEQIAEoAiAhESABKAJIIRIgASgCACETIAEoAighFCAAIAEoAkwgASgCJGs2AkwgACASIBFrNgJIIAAgECAEazYCRCAAQUBrIgQgDiAPazYCACAAIA0gDGs2AjwgACALIAprNgI4IAAgCSAIazYCNCAAIAcgBms2AjAgACAFIANrNgIsIAAgFCATazYCKCAAQdAAaiAAIAIQBiAAQShqIgMgAyACQShqEAYgAEH4AGogAkHQAGogAUH4AGoQBiABKAJUIRQgASgCWCEVIAEoAlwhFiABKAJgIRcgASgCZCEYIAEoAmghGSABKAJsIRogASgCcCEbIAEoAnQhHCAAKAIsIQIgACgCVCEDIAAoAjAhBSAAKAJYIQYgACgCNCEHIAAoAlwhCCAAKAI4IQkgACgCYCEKIAAoAjwhCyAAKAJkIQwgBCgCACENIAAoAmghDiAAKAJEIQ8gACgCbCEQIAAoAkghESAAKAJwIRIgASgCUCEdIAAoAighASAAKAJQIRMgACAAKAJMIh4gACgCdCIfajYCTCAAIBEgEmo2AkggACAPIBBqNgJEIAQgDSAOajYCACAAIAsgDGo2AjwgACAJIApqNgI4IAAgByAIajYCNCAAIAUgBmo2AjAgACACIANqNgIsIAAgASATajYCKCAAIB8gHms2AiQgACASIBFrNgIgIAAgECAPazYCHCAAIA4gDWs2AhggACAMIAtrNgIUIAAgCiAJazYCECAAIAggB2s2AgwgACAGIAVrNgIIIAAgAyACazYCBCAAIBMgAWs2AgAgACAcQQF0IgEgACgCnAEiAms2ApwBIAAgG0EBdCIEIAAoApgBIgNrNgKYASAAIBpBAXQiBSAAKAKUASIGazYClAEgACAZQQF0IgcgACgCkAEiCGs2ApABIAAgGEEBdCIJIAAoAowBIgprNgKMASAAIBdBAXQiCyAAKAKIASIMazYCiAEgACAWQQF0Ig0gACgChAEiDms2AoQBIAAgFUEBdCIPIAAoAoABIhBrNgKAASAAIBRBAXQiESAAKAJ8IhJrNgJ8IAAgHUEBdCITIAAoAngiFGs2AnggACADIARqNgJwIAAgBSAGajYCbCAAIAcgCGo2AmggACAJIApqNgJkIAAgCyAMajYCYCAAIA0gDmo2AlwgACAPIBBqNgJYIAAgESASajYCVCAAIBMgFGo2AlAgACABIAJqNgJ0C64IAQN/IwBBkAFrIgMkACADQeAAaiIEIAEQBSADQTBqIgIgBBAFIAIgAhAFIAIgASACEAYgBCAEIAIQBiAEIAQQBSAEIAIgBBAGIAIgBBAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAQgAiAEEAYgAiAEEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACIAQQBiADIAIQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSACIAMgAhAGIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAQgAiAEEAYgAiAEEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACIAQQBiADIAIQBUEBIQIDQCADIAMQBSACQQFqIgJB5ABHDQALIANBMGoiAiADIAIQBiACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSADQeAAaiIEIAIgBBAGIAQgBBAFIAQgBBAFIAAgBCABEAYgA0GQAWokAAumBAIOfgp/IAAoAiQhEiAAKAIgIRMgACgCHCEUIAAoAhghFSAAKAIUIREgAkIQWgRAIAAtAFBFQRh0IRYgACgCECIXrSEPIAAoAgwiGK0hDSAAKAIIIhmtIQsgACgCBCIarSEJIBpBBWytIRAgGUEFbK0hDiAYQQVsrSEMIBdBBWytIQogADUCACEIA0AgASgAA0ECdkH///8fcSAVaq0iAyANfiABKAAAQf///x9xIBFqrSIEIA9+fCABKAAGQQR2Qf///x9xIBRqrSIFIAt+fCABKAAJQQZ2IBNqrSIGIAl+fCASIBZqIAEoAAxBCHZqrSIHIAh+fCADIAt+IAQgDX58IAUgCX58IAYgCH58IAcgCn58IAMgCX4gBCALfnwgBSAIfnwgBiAKfnwgByAMfnwgAyAIfiAEIAl+fCAFIAp+fCAGIAx+fCAHIA5+fCADIAp+IAQgCH58IAUgDH58IAYgDn58IAcgEH58IgNCGohC/////w+DfCIEQhqIQv////8Pg3wiBUIaiEL/////D4N8IgZCGohC/////w+DfCIHQhqIp0EFbCADp0H///8fcWoiEUEadiAEp0H///8fcWohFSAFp0H///8fcSEUIAan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aIVCIIkiCyABKQNIIgx8IAxCAYZC/v///x+DIAtC/////w+DfnwiDCADhUIoiSIDIAZ8IANC/////w+DIAZCAYZC/v///x+DfnwiBiALhUIwiSILIAx8IAtC/////w+DIAxCAYZC/v///x+DfnwiDCADhUIBiSIDIAEpAyAiDyABKQMAIgp8IApCAYZC/v///x+DIA9C/////w+DfnwiCiABKQNghUIgiSIQIAFBQGsiFikDACITfCATQgGGQv7///8fgyAQQv////8Pg358IhMgD4VCKIkiDyAKfCAPQv////8PgyAKQgGGQv7///8fg358Igp8IANC/////w+DIApCAYZC/v///x+DfnwiCYVCIIkiFCABKQMwIhEgASkDECINfCANQgGGQv7///8fgyARQv////8Pg358Ig0gASkDcIVCIIkiEiABKQNQIg58IA5CAYZC/v///x+DIBJC/////w+DfnwiDiARhUIoiSIRIA18IBFC/////w+DIA1CAYZC/v///x+DfnwiDSAShUIwiSISIA58IBJC/////w+DIA5CAYZC/v///x+DfnwiDnwgFEL/////D4MgDkIBhkL+////H4N+fCIVIAOFQiiJIgMgCXwgA0L/////D4MgCUIBhkL+////H4N+fCIJNwMAIAEgCSAUhUIwiSIJNwN4IAEgCSAVfCAJQv////8PgyAVQgGGQv7///8fg358Igk3A1AgASADIAmFQgGJNwMoIAEgBCAFfCAEQv////8PgyAFQgGGQv7///8fg358IgQgDiARhUIBiSIFIAZ8IAVC/////w+DIAZCAYZC/v///x+DfnwiAyAKIBCFQjCJIgaFQiCJIgp8IARCAYZC/v///x+DIApC/////w+DfnwiECAFhUIoiSIFIAN8IAVC/////w+DIANCAYZC/v///x+DfnwiCSAKhUIwiSIDNwNgIAEgCTcDCCABIAUgAyAQfCADQv////8PgyAQQgGGQv7///8fg358IgWFQgGJNwMwIAEgBTcDWCABIAQgCIVCAYkiCCANfCAIQv////8PgyANQgGGQv7///8fg358IgQgC4VCIIkiBSAGIBN8IAZC/////w+DIBNCAYZC/v///x+DfnwiA3wgBUL/////D4MgA0IBhkL+////H4N+fCIGIAiFQiiJIgggBHwgCEL/////D4MgBEIBhkL+////H4N+fCIENwMQIAEgBCAFhUIwiSIENwNoIBYgBCAGfCAEQv////8PgyAGQgGGQv7///8fg358IgY3AwAgASAHIAMgD4VCAYkiBHwgB0IBhkL+////H4MgBEL/////D4N+fCIHIBKFQiCJIgUgDHwgBUL/////D4MgDEIBhkL+////H4N+fCIDIASFQiiJIgQgB3wgBEL/////D4MgB0IBhkL+////H4N+fCILIAWFQjCJIgcgA3wgB0L/////D4MgA0IBhkL+////H4N+fCIFNwNIIAEgBzcDcCABIAs3AxggASAGIAiFQgGJNwM4IAEgBCAFhUIBiTcDICAAQQFqIgBBCEcNAAtBACEAA0AgGEGACGogAEEEdGoiASABKQOIAyIIIAEpA4gBIgd8IAdCAYZC/v///x+DIAhC/////w+DfnwiByABKQOIB4VCIIkiBCABKQOIBSIFfCAFQgGGQv7///8fgyAEQv////8Pg358IgUgCIVCKIkiCCAHfCAIQv////8PgyAHQgGGQv7///8fg358IgcgBIVCMIkiBCABKQOIAiIDIAEpAwgiBnwgBkIBhkL+////H4MgA0L/////D4N+fCIGIAEpA4gGhUIgiSILIAEpA4gEIgx8IAxCAYZC/v///x+DIAtC/////w+DfnwiDCADhUIoiSIDIAZ8IANC/////w+DIAZCAYZC/v///x+DfnwiBiALhUIwiSILIAx8IAtC/////w+DIAxCAYZC/v///x+DfnwiDCADhUIBiSIDIAEpA4ACIg8gASkDACIKfCAKQgGGQv7///8fgyAPQv////8Pg358IgogASkDgAaFQiCJIhAgASkDgAQiE3wgE0IBhkL+////H4MgEEL/////D4N+fCITIA+FQiiJIg8gCnwgD0L/////D4MgCkIBhkL+////H4N+fCIKfCADQv////8PgyAKQgGGQv7///8fg358IgmFQiCJIhQgASkDgAMiESABKQOAASINfCANQgGGQv7///8fgyARQv////8Pg358Ig0gASkDgAeFQiCJIhIgASkDgAUiDnwgDkIBhkL+////H4MgEkL/////D4N+fCIOIBGFQiiJIhEgDXwgEUL/////D4MgDUIBhkL+////H4N+fCINIBKFQjCJIhIgDnwgEkL/////D4MgDkIBhkL+////H4N+fCIOfCAUQv////8PgyAOQgGGQv7///8fg358IhUgA4VCKIkiAyAJfCADQv////8PgyAJQgGGQv7///8fg358Igk3AwAgASAJIBSFQjCJIgk3A4gHIAEgCSAVfCAJQv////8PgyAVQgGGQv7///8fg358Igk3A4AFIAEgAyAJhUIBiTcDiAIgASAEIAV8IARC/////w+DIAVCAYZC/v///x+DfnwiBCAOIBGFQgGJIgUgBnwgBUL/////D4MgBkIBhkL+////H4N+fCIDIAogEIVCMIkiBoVCIIkiCnwgBEIBhkL+////H4MgCkL/////D4N+fCIQIAWFQiiJIgUgA3wgBUL/////D4MgA0IBhkL+////H4N+fCIJIAqFQjCJIgM3A4AGIAEgCTcDCCABIAUgAyAQfCADQv////8PgyAQQgGGQv7///8fg358IgWFQgGJNwOAAyABIAU3A4gFIAEgBCAIhUIBiSIIIA18IAhC/////w+DIA1CAYZC/v///x+DfnwiBCALhUIgiSIFIAYgE3wgBkL/////D4MgE0IBhkL+////H4N+fCIDfCAFQv////8PgyADQgGGQv7///8fg358IgYgCIVCKIkiCCAEfCAIQv////8PgyAEQgGGQv7///8fg358IgQ3A4ABIAEgBCAFhUIwiSIENwOIBiABIAQgBnwgBEL/////D4MgBkIBhkL+////H4N+fCIGNwOABCABIAcgAyAPhUIBiSIEfCAHQgGGQv7///8fgyAEQv////8Pg358IgcgEoVCIIkiBSAMfCAFQv////8PgyAMQgGGQv7///8fg358IgMgBIVCKIkiBCAHfCAEQv////8PgyAHQgGGQv7///8fg358IgsgBYVCMIkiByADfCAHQv////8PgyADQgGGQv7///8fg358IgU3A4gEIAEgBzcDgAcgASALNwOIASABIAYgCIVCAYk3A4gDIAEgBCAFhUIBiTcDgAIgAEEBaiIAQQhHDQALIAIgGEGACBALIQFBACEAA0AgASAAQQN0IgJqIhYgFikDACAYQYAIaiIZIAJqKQMAhTcDACABIAJBCHIiFmoiFyAXKQMAIBYgGWopAwCFNwMAIAEgAkEQciIWaiIXIBcpAwAgGEGACGogFmopAwCFNwMAIAEgAkEYciICaiIWIBYpAwAgGEGACGogAmop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AnA3A+ADIAJBgARqIgMgAkHwA2ogAkHgA2oQCCABIAIpAogENwJ4IAEgAikCgAQ3AnAgAiABKQJYNwPYAyACIAEpAlA3A9ADIAIgASkCaDcDyAMgAiABKQJgNwPAAyADIAJB0ANqIAJBwANqEAggASACKQKIBDcCaCABIAIpAoAENwJgIAIgASkCSDcDuAMgAiABQUBrIgApAgA3A7ADIAIgASkCWDcDqAMgAiABKQJQNwOgAyADIAJBsANqIAJBoANqEAggASACKQKIBDcCWCABIAIpAoAENwJQIAIgASkCODcDmAMgAiABKQIwNwOQAyACIAEpAkg3A4gDIAIgACkCADcDgAMgAyACQZADaiACQYADahAIIAEgAikCiAQ3AkggACACKQKABDcCACACIAEpAig3A/gCIAIgASkCIDcD8AIgAiABKQI4NwPoAiACIAEpAjA3A+ACIAMgAkHwAmogAkHgAmoQCCABIAIpAogENwI4IAEgAikCgAQ3AjAgAiABKQIYNwPYAiACIAEpAhA3A9ACIAIgASkCKDcDyAIgAiABKQIgNwPAAiADIAJB0AJqIAJBwAJqEAggASACKQKIBDcCKCABIAIpAoAENwIgIAIgASkCCDcDuAIgAiABKQIANwOwAiACIAEpAhg3A6gCIAIgASkCEDcDoAIgAyACQbACaiACQaACahAIIAEgAikCiAQ3AhggASACKQKABDcCECACIAIpA5gENwOYAiACIAIpA5AENwOQAiACIAEpAgg3A4gCIAIgASkCADcDgAIgAyACQZACaiACQYACahAIIAEgAikCiAQ3AgggASACKQKABDcCACABIBIgASgADHM2AgwgASARIAEoAAhzNgIIIAEgECABKAAEczYCBCABIBMgASgAAHM2AgAgACAPIAAoAABzNgIAIAEgDiABKABEczYCRCABIA0gASgASHM2AkggASAMIAEoAExzNgJMIAIgASkCeDcDmAQgAiABKQJwNwOQBCACIAEpAmg3A/gBIAIgASkCYDcD8AEgAiABKQJ4NwPoASACIAEpAnA3A+ABIAMgAkHwAWogAkHgAWoQCCABIAIpAogENwJ4IAEgAikCgAQ3AnAgAiABKQJYNwPYASACIAEpAlA3A9ABIAIgASkCaDcDyAEgAiABKQJgNwPAASADIAJB0AFqIAJBwAFqEAggASACKQKIBDcCaCABIAIpAoAENwJgIAIgASkCSDcDuAEgAiAAKQIANwOwASACIAEpAlg3A6gBIAIgASkCUDcDoAEgAyACQbABaiACQaABahAIIAEgAikCiAQ3AlggASACKQKABDcCUCACIAEpAjg3A5gBIAIgASkCMDcDkAEgAiABKQJINwOIASACIAApAgA3A4ABIAMgAkGQAWogAkGAAWoQCCABIAIpAogENwJIIAAgAikCgAQ3AgAgAiABKQIoNwN4IAIgASkCIDcDcCACIAEpAjg3A2ggAiABKQIwNwNgIAMgAkHwAGogAkHgAGoQCCABIAIpAogENwI4IAEgAikCgAQ3AjAgAiABKQIYNwNYIAIgASkCEDcDUCACIAEpAig3A0ggAiABKQIgNwNAIAMgAkHQAGogAkFAaxAIIAEgAikCiAQ3AiggASACKQKABDcCICACIAEpAgg3AzggAiABKQIANwMwIAIgASkCGDcDKCACIAEpAhA3AyAgAyACQTBqIAJBIGoQCCABIAIpAogENwIYIAEgAikCgAQ3AhAgAiACKQOYBDcDGCACIAIpA5AENwMQIAIgASkCCDcDCCACIAEpAgA3AwAgAyACQRBqIAIQCCABIAIpAogENwIIIAEgAikCgAQ3AgAgASALIAEoAAxzNgIMIAEgCiABKAAIczYCCCABIAkgASgABHM2AgQgASAIIAEoAABzNgIAIAAgByAAKAAAczYCACABIAYgASgARHM2AkQgASAFIAEoAEhzNgJIIAEgBCABKABMczYCTCACQaAEaiQAC70JARF/IwBBoAJrIgMkACABKAAEIRAgASgACCERIAEoAAwhEiAAKAAEIQsgACgACCEMIAAoAAwhDSABKAAAIRMgAkHwAGoiASAAKAAAIg5BgIKEEHMiADYCACACQeAAaiIGIA5B2/vgqAVzNgIAIAJB0ABqIgcgADYCACACQUBrIgAgDiATcyIFNgIAIAJCoKLEkbSurZRdNwI4IAJBMGoiCELb++Co1c3wl3E3AgAgAkKVxNzJhbL6vOIANwIoIAJBIGoiCUKAgoSQsKCBhA03AgAgAkKgosSRtK6tlF03AhggAkEQaiIKQtv74KjVzfCXcTcCACACIAU2AgAgAiANQZDT55MGcyIFNgJ8IAIgDEGVxNzJBXMiBDYCeCACIAtBg4qg6ABzIg82AnQgAiANQfPqoul9czYCbCACIAxBoKLEkQRzNgJoIAIgC0HthL+Jf3M2AmQgAiAFNgJcIAIgBDYCWCACIA82AlQgAiANIBJzIgU2AkwgAiAMIBFzIgQ2AkggAiALIBBzIg82AkQgAiAFNgIMIAIgBDYCCCACIA82AgRBACEFA0AgAyABKQIINwOYAiADIAEpAgA3A5ACIAMgBikCCDcD+AEgAyAGKQIANwPwASADIAEpAgg3A+gBIAMgASkCADcD4AEgA0GAAmoiBCADQfABaiADQeABahAIIAEgAykCiAI3AgggASADKQKAAjcCACADIAcpAgg3A9gBIAMgBykCADcD0AEgAyAGKQIINwPIASADIAYpAgA3A8ABIAQgA0HQAWogA0HAAWoQCCAGIAMpAogCNwIIIAYgAykCgAI3AgAgAyAAKQIINwO4ASADIAApAgA3A7ABIAMgBykCCDcDqAEgAyAHKQIANwOgASAEIANBsAFqIANBoAFqEAggByADKQKIAjcCCCAHIAMpAoACNwIAIAMgCCkCCDcDmAEgAyAIKQIANwOQASADIAApAgg3A4gBIAMgACkCADcDgAEgBCADQZABaiADQYABahAIIAAgAykCiAI3AgggACADKQKAAjcCACADIAkpAgg3A3ggAyAJKQIANwNwIAMgCCkCCDcDaCADIAgpAgA3A2AgBCADQfAAaiADQeAAahAIIAggAykCiAI3AgggCCADKQKAAjcCACADIAopAgg3A1ggAyAKKQIANwNQIAMgCSkCCDcDSCADIAkpAgA3A0AgBCADQdAAaiADQUBrEAggCSADKQKIAjcCCCAJIAMpAoACNwIAIAMgAikCCDcDOCADIAIpAgA3AzAgAyAKKQIINwMoIAMgCikCADcDICAEIANBMGogA0EgahAIIAogAykCiAI3AgggCiADKQKAAjcCACADIAMpA5gCNwMYIAMgAykDkAI3AxAgAyACKQIINwMIIAMgAikCADcDACAEIANBEGogAxAIIAIgAykCiAI3AgggAiADKQKAAjcCACACIAIoAAwgEnM2AgwgAiACKAAIIBFzNgIIIAIgAigABCAQczYCBCACIAIoAAAgE3M2AgAgACAAKAAAIA5zNgIAIAIgAigARCALczYCRCACIAIoAEggDHM2AkggAiACKABMIA1zNgJMIAVBAWoiBUEKRw0ACyADQaACaiQACxAAIAAgAUGMlwIoAgARAAAL0g8BJH8jAEHwBGsiAiQAIAJB4ANqIgMgARAFIANB4AwgAxAGIAIgAigChAQiBzYClAIgAiACKAKABCIINgKQAiACIAIoAvwDIgk2AowCIAIgAigC+AMiCjYCiAIgAiACKAL0AyILNgKEAiACIAIoAvADIgw2AoACIAIgAigC7AMiDTYC/AEgAiACKALoAyIONgL4ASACIAIoAuQDIgU2AvQBIAIgAigC4AMiBkEBajYC8AEgAkHwAWoiBCAEQbCJAhAGIAIgB0HM5N8FazYC1AMgAiAIQYCS9QhrNgLQAyACIAlB55zGAWs2AswDIAIgCkHEhv8CazYCyAMgAiALQeiumARrNgLEAyACIAxBqYAHajYCwAMgAiANQY+UqANqNgK8AyACIA5Bw6KqB2s2ArgDIAIgBUGF5c0GajYCtAMgAiAGQcqOmgVrNgKwAyACQcABaiIZIANBsAwQBiACQQAgAigC5AFrNgLkASACQQAgAigC4AFrNgLgASACQQAgAigC3AFrNgLcASACQQAgAigC2AFrNgLYASACQQAgAigC1AFrNgLUASACQQAgAigC0AFrNgLQASACQQAgAigCzAFrNgLMASACQQAgAigCyAFrNgLIASACQQAgAigCxAFrNgLEASACIAIoAsABQX9zNgLAASAZIBkgAkGwA2oQBiACQYADaiIiIAQgGRBqIQMgAkHQAmoiBCAiIAEQBiACQcAEaiIkIAQQESACLQDABCElIAIoAqQDIRogAigC9AIhBCACKAKgAyEbIAIoAvACIRAgAigCnAMhHCACKALsAiERIAIoApgDIR0gAigC6AIhEiACKAKUAyEeIAIoAuQCIRMgAigCkAMhHyACKALgAiEUIAIoAowDISAgAigC3AIhFSACKAKIAyEhIAIoAtgCIRYgAigChAMhDyACKALUAiEXIAIoAoADISMgAigC0AIhGCACIAcgA0EBayIBcTYC5AQgAiABIAhxNgLgBCACIAEgCXE2AtwEIAIgASAKcTYC2AQgAiABIAtxNgLUBCACIAEgDHE2AtAEIAIgASANcTYCzAQgAiABIA5xNgLIBCACIAEgBXE2AsQEIAIgBkEAIANrcjYCwAQgAiAjICNBACAYQQAgJUEBcWsiAyAYQQAg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IAIgASADEAYgAkGQBmoiASACEAUgASABEAUgAkGQB2oiBSACIAEQBiACQcAEaiIDIAUQBSADIAMQBSADIAMQBSADIAMQBSACQZAEaiIBIAUgAxAGIAEgARAFIAEgARAFIAEgASACEAYgAiACKQOwBDcDgAQgAiACKQOoBDcD+AMgAiACKQOgBDcD8AMgAiACKQOYBDcD6AMgAiACKQOQBDcD4AMgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABIAJB4ANqIgMQBiABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEgAxAGIAIgAikDsAQ3A9ADIAIgAikDqAQ3A8gDIAIgAikDoAQ3A8ADIAIgAikDmAQ3A7gDIAIgAikDkAQ3A7ADIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgASACQbADaiIDEAYgAiACKQOwBDcD0AMgAiACKQOoBDcDyAMgAiACKQOgBDcDwAMgAiACKQOYBDcDuAMgAiACKQOQBDcDsAMgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABIAMQBiACIAIpA7AENwPQAyACIAIpA6gENwPIAyACIAIpA6AENwPAAyACIAIpA5gENwO4AyACIAIpA5AENwOwAwNAIAJBkARqIgEgARAFIARBAWoiBEH4AEcNAAsgASABIAJBsANqEAYgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABIAJB4ANqEAYgASABEAUgASABEAUgASABEAUgASABIAIQBiABIAEQBSACQZADaiABEBEgAigCgAIhAyACKAKEAiEEIAIoAogCIQUgAigCjAIhBiACKAKQAiEHIAIoApQCIQggAigCmAIhCSACKAKcAiEKIAIoAqACIQsgAkEAIAItAJEDQQFxayIBIAIoAqQCIgxBACAMa3NxIAxzIgw2ApQFIAIgCyALQQAgC2tzIAFxcyILNgKQBSACIAogCkEAIAprcyABcXMiCjYCjAUgAiAJIAlBACAJa3MgAXFzIgk2AogFIAIgCCAIQQAgCGtzIAFxcyIINgKEBSACIAcgB0EAIAdrcyABcXMiBzYCgAUgAiAGIAZBACAGa3MgAXFzIgY2AvwEIAIgBSAFQQAgBWtzIAFxcyIFNgL4BCACIAQgBEEAIARrcyABcXMiBDYC9AQgAiADIANBACADa3MgAXFzIAFBhtodcWsiAUEBajYC8AQgAiAMNgK0BiACIAs2ArAGIAIgCjYCrAYgAiAJNgKoBiACIAg2AqQGIAIgBzYCoAYgAiAGNgKcBiACIAU2ApgGIAIgBDYClAYgAiABQQFrNgKQBiACIAJB8ARqEDUgAkGQB2oiASACQZAGaiACEAYgACABEBEgACAALQAfIBByOgAfIAIgABA0BEAQiwEACyACIAIpAiA3A7AGIAIgAikCGDcDqAYgAiACKQIQNwOgBiACIAIpAgg3A5gGIAIgAikCMDcDwAYgAiACKQI4NwPIBiACIAJBQGspAgA3A9AGIAIgAikCSDcD2AYgAiACKQIANwOQBiACIAIpAig3A7gGIAIgAikCcDcDgAcgAiACKQJoNwP4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QQFrQR92ECogACABQcAHaiAEQQdzQf8BcUEBa0EfdhAqIAAgAUHgCGogBEEIc0H/AXFBAWtBH3YQKiADIAApAkg3AyAgAyAAQUBrKQIANwMYIAMgACkCODcDECADIAApAjA3AwggAyAAKQIoNwMAIAMgACkCIDcDSCADQUBrIAApAhg3AwAgAyAAKQIQNwM4IAMgACkCCDcDMCADIAApAgA3AyggAyAAKQJYNwNYIAMgACkCYDcDYCADIAApAmg3A2ggAyAAKQJwNwNwIAMgACkCUDcDUCAAKAJ8IQEgACgCgAEhBCAAKAKEASEFIAAoAogBIQYgACgCjAEhByAAKAKQASEIIAAoApQBIQkgACgCmAEhCiAAKAJ4IQsgA0EAIAAoApwBazYCnAEgA0EAIAprNgKYASADQQAgCWs2ApQBIANBACAIazYCkAEgA0EAIAdrNgKMASADQQAgBms2AogBIANBACAFazYChAEgA0EAIARrNgKAASADQQAgAWs2AnwgA0EAIAtrNgJ4IAAgAyACQYABcUEHdhAqIANBoAFqJAALjhEBE38jAEHAH2siAyQAIANBoAFqIAIQECADQYAeaiIGIAIpAiA3AwAgA0H4HWoiByACKQIYNwMAIANB8B1qIgkgAikCEDcDACADQegdaiIMIAIpAgg3AwAgAyACKQIANwPgHSADQZAeaiINIAIpAjA3AwAgA0GYHmoiDiACKQI4NwMAIANBoB5qIg8gAkFAaykCADcDACADQageaiIQIAIpAkg3AwAgAyACKQIoNwOIHiADQbgeaiIRIAIpAlg3AwAgA0HAHmoiEiACKQJgNwMAIANByB5qIhMgAikCaDcDACADQdAeaiIUIAIpAnA3AwAgAyACKQJQNwOwHiADQcgbaiIIIANB4B1qIhUQGCADQegSaiILIAggA0HAHGoiBBAGIANBkBNqIANB8BtqIgUgA0GYHGoiChAGIANBuBNqIAogBBAGIANB4BNqIAggBRAGIANBwAJqIgQgCxAQIANBqBpqIgggAiAEEBMgA0HIEWoiCyAIIANBoBtqIgQQBiADQfARaiADQdAaaiIFIANB+BpqIgoQBiADQZgSaiAKIAQQBiADQcASaiAIIAUQBiADQeADaiALEBAgBiADQYgTaikCADcDACAHIANBgBNqKQIANwMAIAkgA0H4EmopAgA3AwAgDCADQfASaikCADcDACANIANBmBNqKQIANwMAIA4gA0GgE2opAgA3AwAgDyADQagTaikCADcDACAQIANBsBNqKQIANwMAIAMgAykC6BI3A+AdIAMgAykCkBM3A4geIBQgA0HYE2opAgA3AwAgEyADQdATaikCADcDACASIANByBNqKQIANwMAIBEgA0HAE2opAgA3AwAgAyADKQK4EzcDsB4gA0GIGWoiCCAVEBggA0GoEGoiCyAIIANBgBpqIgQQBiADQdAQaiADQbAZaiIFIANB2BlqIgoQBiADQfgQaiAKIAQQBiADQaARaiAIIAUQBiADQYAFaiIEIAsQECADQegXaiIIIAIgBBATIANBiA9qIgsgCCADQeAYaiIEEAYgA0GwD2ogA0GQGGoiBSADQbgYaiIKEAYgA0HYD2ogCiAEEAYgA0GAEGogCCAFEAYgA0GgBmogCxAQIAYgA0HoEWopAgA3AwAgByADQeARaikCADcDACAJIANB2BFqKQIANwMAIAwgA0HQEWopAgA3AwAgDSADQfgRaikCADcDACAOIANBgBJqKQIANwMAIA8gA0GIEmopAgA3AwAgECADQZASaikCADcDACADIAMpAsgRNwPgHSADIAMpAvARNwOIHiAUIANBuBJqKQIANwMAIBMgA0GwEmopAgA3AwAgEiADQagSaikCADcDACARIANBoBJqKQIANwMAIAMgAykCmBI3A7AeIANByBZqIgggFRAYIANB6A1qIgsgCCADQcAXaiIEEAYgA0GQDmogA0HwFmoiBSADQZgXaiIKEAYgA0G4DmogCiAEEAYgA0HgDmogCCAFEAYgA0HAB2oiBCALEBAgA0GoFWoiCiACIAQQEyADQcgMaiIIIAogA0GgFmoiAhAGIANB8AxqIANB0BVqIgQgA0H4FWoiBRAGIANBmA1qIAUgAhAGIANBwA1qIAogBBAGIANB4AhqIAgQECAGIANByBBqKQIANwMAIAcgA0HAEGopAgA3AwAgCSADQbgQaikCADcDACAMIANBsBBqKQIANwMAIA0gA0HYEGopAgA3AwAgDiADQeAQaikCADcDACAPIANB6BBqKQIANwMAIBAgA0HwEGopAgA3AwAgAyADKQKoEDcD4B0gAyADKQLQEDcDiB4gFCADQZgRaikCADcDACATIANBkBFqKQIANwMAIBIgA0GIEWopAgA3AwAgESADQYARaikCADcDACADIAMpAvgQNwOwHiADQYgUaiIEIBUQGCADQagLaiIJIAQgA0GAFWoiAhAGIANB0AtqIANBsBRqIgYgA0HYFGoiBxAGIANB+AtqIAcgAhAGIANBoAxqIAQgBhAGIANBgApqIAkQEEEAIQZBACECA0AgA0GAH2oiBCACQQF0aiIHIAEgAmotAAAiCUEEdjoAASAHIAlBD3E6AAAgAkEBciIHQQF0IARqIgkgASAHai0AACIHQQR2OgABIAkgB0EPcToAACACQQJqIgJBIEcNAAtBACEBA0AgA0GAH2ogBmoiAiACLQAAIAFqIgEgAUEIaiIBQfABcWs6AAAgAiACLQABIAHAQQR1aiIBIAFBCGoiAUHwAXFrOgABIAIgAi0AAiABwEEEdWoiASABQQhqIgFB8AFxazoAAiABwEEEdSEBIAZBA2oiBkE/Rw0ACyADIAMtAL8fIAFqOgC/HyAAQgA3AiAgAEIANwIYIABCADcCECAAQgA3AgggAEIANwIAIABCADcCLCAAQQE2AiggAEIANwI0IABCADcCPCAAQgA3AkQgAEKAgICAEDcCTCAAQdQAakEAQcwAEAwaIABB+ABqIQ0gAEHQAGohDiAAQShqIQ8gA0G4HWohByADQbAeaiEBIANBiB5qIQYgA0GQHWohCSADQdgeaiECQT8hDANAIAMgA0GgAWoiCiADQYAfaiAMaiwAABCQASADQeAdaiIEIAAgAxATIANB6BxqIgUgBCACEAYgCSAGIAEQBiAHIAEgAhAGIAQgBRAYIAUgBCACEAYgCSAGIAEQBiAHIAEgAhAGIAQgBRAYIAUgBCACEAYgCSAGIAEQBiAHIAEgAhAGIAQgBRAYIAUgBCACEAYgCSAGIAEQBiAHIAEgAhAGIAQgBRAYIAAgBCACEAYgDyAGIAEQBiAOIAEgAhAGIA0gBCAGEAYgDEEBayIMDQALIAMgCiADLACAHxCQASAEIAAgAxATIAAgBCACEAYgDyAGIAEQBiAOIAEgAhAGIA0gBCAGEAYgA0HAH2okAAvpBgIcfgl/IAAgASgCDCIgQQF0rCIIIAEoAgQiIUEBdKwiAn4gASgCCCIirCINIA1+fCABKAIQIiOsIgcgASgCACIkQQF0rCIFfnwgASgCHCIeQSZsrCIOIB6sIhF+fCABKAIgIiVBE2ysIgMgASgCGCIfQQF0rH58IAEoAiQiJkEmbKwiBCABKAIUIgFBAXSsIgl+fEIBhiIVQoCAgBB8IhZCGocgAiAHfiAiQQF0rCILICCsIhJ+fCABrCIPIAV+fCADIB5BAXSsIhN+fCAEIB+sIgp+fEIBhnwiF0KAgIAIfCIYQhmHIAggEn4gByALfnwgAiAJfnwgBSAKfnwgAyAlrCIQfnwgBCATfnxCAYZ8IgYgBkKAgIAQfCIMQoCAgOAPg30+AhggACABQSZsrCAPfiAkrCIGIAZ+fCAfQRNsrCIGICNBAXSsIhR+fCAIIA5+fCADIAt+fCACIAR+fEIBhiIZQoCAgBB8IhpCGocgBiAJfiAFICGsIht+fCAHIA5+fCADIAh+fCAEIA1+fEIBhnwiHEKAgIAIfCIdQhmHIAUgDX4gAiAbfnwgBiAKfnwgCSAOfnwgAyAUfnwgBCAIfnxCAYZ8IgYgBkKAgIAQfCIGQoCAgOAPg30+AgggACALIA9+IAcgCH58IAIgCn58IAUgEX58IAQgEH58QgGGIAxCGod8IgwgDEKAgIAIfCIMQoCAgPAPg30+AhwgACAFIBJ+IAIgDX58IAogDn58IAMgCX58IAQgB358QgGGIAZCGod8IgMgA0KAgIAIfCIDQoCAgPAPg30+AgwgACAKIAt+IAcgB358IAggCX58IAIgE358IAUgEH58IAQgJqwiB358QgGGIAxCGYd8IgQgBEKAgIAQfCIEQoCAgOAPg30+AiAgACAXIBhCgICA8A+DfSAVIBZCgICAYIN9IANCGYd8IgNCgICAEHwiCUIaiHw+AhQgACADIAlCgICA4A+DfT4CECAAIAggCn4gDyAUfnwgCyARfnwgAiAQfnwgBSAHfnxCAYYgBEIah3wiAiACQoCAgAh8IgJCgICA8A+DfT4CJCAAIBwgHUKAgIDwD4N9IBkgGkKAgIBgg30gAkIZh0ITfnwiAkKAgIAQfCIFQhqIfD4CBCAAIAIgBUKAgIDgD4N9PgIAC/4CAQZ/IAFBgH9LBEBBMA8LAn8gAUGAf08EQEHwpQJBMDYCAEEADAELQQBBECABQQtqQXhxIAFBC0kbIgVBzABqEB4iAUUNABogAUEIayECAkAgAUE/cUUEQCACIQEMAQsgAUEEayIGKAIAIgdBeHEgAUE/akFAcUEIayIBQcAAQQAgASACa0EPTRtqIgEgAmsiA2shBCAHQQNxRQRAIAIoAgAhAiABIAQ2AgQgASACIANqNgIADAELIAEgBCABKAIEQQFxckECcjYCBCABIARqIgQgBCgCBEEBcjYCBCAGIAMgBigCAEEBcXJBAnI2AgAgAiADaiIEIAQoAgRBAXI2AgQgAiADEI4BCwJAIAEoAgQiAkEDcUUNACACQXhxIgMgBUEQak0NACABIAUgAkEBcXJBAnI2AgQgASAFaiICIAMgBWsiBUEDcjYCBCABIANqIgMgAygCBEEBcjYCBCACIAUQjgELIAFBCGoLIgFFBEBBMA8LIAAgATYCAEEAC4kGARd/IwBBwAJrIgIkACAAQShqIgYgARA2IABCADcCVCAAQQE2AlAgAEIANwJcIABCADcCZCAAQgA3AmwgAEEANgJ0IAJB8AFqIgUgBhAFIAJBwAFqIgQgBUGwDBAGQX8hByACIAIoAvABQQFrIgg2AvABIAIgAigCwAFBAWo2AsABIAIoAvQBIQkgAigC+AEhCiACKAL8ASELIAIoAoACIQwgAigChAIhDSACKAKIAiEOIAIoAowCIQ8gAigCkAIhECACKAKUAiERIAJBkAFqIgMgBBAFIAMgAyAEEAYgACADEAUgACAAIAQQBiAAIAAgBRAGIAAgABBuIAAgACADEAYgACAAIAUQBiACQeAAaiIDIAAQBSADIAMgBBAGIAIgAigChAEiBCARazYCVCACIAIoAoABIgMgEGs2AlAgAiACKAJ8IgUgD2s2AkwgAiACKAJ4IhIgDms2AkggAiACKAJ0IhMgDWs2AkQgAiACKAJwIhQgDGs2AkAgAiACKAJsIhUgC2s2AjwgAiACKAJoIhYgCms2AjggAiACKAJkIhcgCWs2AjQgAiACKAJgIhggCGs2AjAgAiACQTBqEBECQCACQSAQGkUEQCACIAQgEWo2AiQgAiADIBBqNgIgIAIgBSAPajYCHCACIA4gEmo2AhggAiANIBNqNgIUIAIgDCAUajYCECACIAsgFWo2AgwgAiAKIBZqNgIIIAIgCSAXajYCBCACIAggGGo2AgAgAkGgAmoiBCACEBEgBEEgEBpFDQEgACAAQeAMEAYLIAJBoAJqIAAQESACLQCgAkEBcSABLQAfQQd2RgRAIABBACAAKAIAazYCACAAQQAgACgCJGs2AiQgAEEAIAAoAiBrNgIgIABBACAAKAIcazYCHCAAQQAgACgCGGs2AhggAEEAIAAoAhRrNgIUIABBACAAKAIQazYCECAAQQAgACgCDGs2AgwgAEEAIAAoAghrNgIIIABBACAAKAIEazYCBAsgAEH4AGogACAGEAZBACEHCyACQcACaiQAIAcLBQBBgAILEAAgACABQYSXAigCABEAAAsQACAAIAFB/JYCKAIAEQAACy0BAX4gAq0gA61CIIaEIgZCEFoEfyAAIAFBEGogASAGQhB9IAQgBRBeBUF/CwsYACAAIAEgAiADrSAErUIghoQgBSAGEF4LGAAgACABIAIgA60gBK1CIIaEIAUgBhBPCxYAIAAgASACrSADrUIghoQgBCAFEHkLFQAgACABrSACrUIghoQgAyAEEM0BCxYAIAAgASACrSADrUIghoQgBEEAEHYLFwAgACABIAIgA60gBK1CIIaEIAUQhQMLFwAgACABIAIgA60gBK1CIIaEIAUQgwMLFwAgACABIAIgA60gBK1CIIaEIAUQhAMLFQAgACABIAKtIAOtQiCGhCAEEOkCCx8AIAAgASACrSADrUIghoQgBK0gBa1CIIaEIAYQ0QELGgAgACABIAKtIAOtQiCGhEGAlwIoAgARAgALHAAgACABIAKtIAOtQiCGhCAEQfiWAigCABERAAscACAAIAEgAq0gA61CIIaEIARB9JYCKAIAEREACxcAIAAgASACrSADrUIghoQgBCAFEOoCCxIAIAAgASACrSADrUIghoQQRwsYACAAIAEgAiADrSAErUIghoQgBSAGEGELLQEBfiACrSADrUIghoQiBkIQWgR/IAAgAUEQaiABIAZCEH0gBCAFEF0FQX8LCxgAIAAgASACIAOtIAStQiCGhCAFIAYQXQsYACAAIAEgAiADrSAErUIghoQgBSAGEE4LGQAgACABIAKtIAOtQiCGhCAEIAUgBhD3AgsZACAAIAEgAq0gA61CIIaEIAQgBSAGEPgCCxIAIAAgASACrSADrUIghoQQJgsVACAAIAEgAq0gA61CIIaEIAQQ4gILFQAgACABIAKtIAOtQiCGhCAEEOMCC4wBAQF/IwBBEGsiAiAANgIMIAIgATYCCEEAIQAgAkEANgIEA0AgAiACKAIEIAIoAgwgAGotAAAgAigCCCAAai0AAHNyNgIEIAIgAigCBCAAQQFyIgEgAigCDGotAAAgAigCCCABai0AAHNyNgIEIABBAmoiAEHAAEcNAAsgAigCBEEBa0EIdkEBcUEBawvaAgECfyMAQZADayIIJAAgCEEANgIEIAhBEGoiCSAGIAdBABAbGiAIIAYpABA3AgggCEHQAGoiB0LAACAIQQRqIAkQMxogCEGQAWoiBiAHQfyWAigCABEAABogB0HAABAJIAYgBCAFQYCXAigCABECABogBkHglgJCACAFfUIPg0GAlwIoAgARAgAaIAYgASACQYCXAigCABECABogBkHglgJCACACfUIPg0GAlwIoAgARAgAaIAggBTcDSCAGIAhByABqIgRCCEGAlwIoAgARAgAaIAggAjcDSCAGIARCCEGAlwIoAgARAgAaIAYgCEEwaiIEQYSXAigCABEAABogBkGAAhAJIAQgAxA3IQYgBEEQEAkCQCAARQ0AIAYEQCAAQQAgAqcQDBpBfyEGDAELIAAgASACIAhBBGogCEEQahDqAUEAIQYLIAhBEGpBIBAJIAhBkANqJAAgBgusAgEDfyMAQYADayIJJAAgCUEANgIEIAlBEGoiCiAHIAhBABAbGiAJIAcpABA3AgggCUFAayIIQsAAIAlBBGoiCyAKEDMaIAlBgAFqIgcgCEH8lgIoAgARAAAaIAhBwAAQCSAHIAUgBkGAlwIoAgARAgAaIAdB4JYCQgAgBn1CD4NBgJcCKAIAEQIAGiAAIAMgBCALIAoQ6gEgByAAIARBgJcCKAIAEQIAGiAHQeCWAkIAIAR9Qg+DQYCXAigCABECABogCSAGNwM4IAcgCUE4aiIAQghBgJcCKAIAEQIAGiAJIAQ3AzggByAAQghBgJcCKAIAEQIAGiAHIAFBhJcCKAIAEQAAGiAHQYACEAkgAgRAIAJCEDcDAAsgCUEQakEgEAkgCUGAA2okAEEAC0oBAn8jAEEgayIGJABBfyEHAkAgAkIQVA0AIAYgBCAFEEANACAAIAFBEGogASACQhB9IAMgBhBdIQcgBkEgEAkLIAZBIGokACAHC08BAn8jAEEgayIGJAAgAkLw////D1QEQEF/IQcgBiAEIAUQQEUEQCAAQRBqIAAgASACIAMgBhBOIQcgBkEgEAkLIAZBIGokACAHDwsQDgAL6AQBAn8jAEGgAWsiBCQAIAAgAS0AADoAACAAIAEtAAE6AAEgACABLQACOgACIAAgAS0AAzoAAyAAIAEtAAQ6AAQgACABLQAFOgAFIAAgAS0ABjoABiAAIAEtAAc6AAcgACABLQAIOgAIIAAgAS0ACToACSAAIAEtAAo6AAogACABLQALOgALIAAgAS0ADDoADCAAIAEtAA06AA0gACABLQAOOgAOIAAgAS0ADzoADyAAIAEtABA6ABAgACABLQAROgARIAAgAS0AEjoAEiAAIAEtABM6ABMgACABLQAUOgAUIAAgAS0AFToAFSAAIAEtABY6ABYgACABLQAXOgAXIAAgAS0AGDoAGCAAIAEtABk6ABkgACABLQAaOgAaIAAgAS0AGzoAGyAAIAEtABw6ABwgACABLQAdOgAdIAAgAS0AHjoAHiABLQAfIQMgACACBH8gACAALQAAQfgBcToAACADQcAAcgUgAwtB/wBxOgAfIAQgABA+IAAgBBAvQX8hAyAALQAfQf8AcSAALQAeIAAtAB0gAC0AHCAALQAbIAAtABogAC0AGSAALQAYIAAtABcgAC0AFiAALQAVIAAtABQgAC0AEyAALQASIAAtABEgAC0AECAALQAPIAAtAA4gAC0ADSAALQAMIAAtAAsgAC0ACiAALQAJIAAtAAggAC0AByAALQAGIAAtAAUgAC0ABCAALQADIAAtAAIgAC0AASAALQAAQQFzcnJycnJycnJycnJycnJycnJycnJycnJycnJycnJyckEBa0GAAnFFBEBBf0EAIAFBIBAaGyEDCyAEQaABaiQAIAMLjgUBAn8jAEHAAmsiBCQAQX8hBQJAIAIQa0UNACACEEwNACAEIAIQNA0AIAQQbEUNACAAIAEtAAA6AAAgACABLQABOgABIAAgAS0AAjoAAiAAIAEtAAM6AAMgACABLQAEOgAEIAAgAS0ABToABSAAIAEtAAY6AAYgACABLQAHOgAHIAAgAS0ACDoACCAAIAEtAAk6AAkgACABLQAKOgAKIAAgAS0ACzoACyAAIAEtAAw6AAwgACABLQANOgANIAAgAS0ADjoADiAAIAEtAA86AA8gACABLQAQOgAQIAAgAS0AEToAESAAIAEtABI6ABIgACABLQATOgATIAAgAS0AFDoAFCAAIAEtABU6ABUgACABLQAWOgAWIAAgAS0AFzoAFyAA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DCAHKQAAQuv6htq/tfbBH4ULIQ4gAUFAa0EAQaUCEAwaIAEgDDcDOCABIA43AzAgASALNwMoIAEgDTcDICABQvHt9Pilp/2npX83AxggAUKr8NP0r+68tzw3AxAgAUK7zqqm2NDrs7t/NwMIIAEgCK1CiJL3lf/M+YTqAIU3AwBBAAshBAJAIANQDQAgAUHgAWohCSABQeAAaiEFA0AgBCAFaiEHQYACIARrIgatIgsgA1oEQCAHIAIgA6ciAhALGiABIAEoAuACIAJqNgLgAgwCCyAHIAIgBhALGiABIAEoAuACIAZqNgLgAiABIAEpA0AiDEKAAXw3A0AgASABKQNIIAxC/35WrXw3A0ggASAFEFIgBSAJQYABEAsaIAEgASgC4AJBgAFrIgQ2AuACIAIgBmohAiADIAt9IgNCAFINAAsLIAEgACAIEIMBGiAKJABBAAwBCxAOAAshCAsgCAsFAEGAAwsKACAAIAEgAhAHC/ADAgJ/An4jAEHAAWsiAyQAIANCADcDkAEgA0IANwOYASADQgA3A2ggA0IANwNwIANCADcDeCADQfiSAikDADcDqAEgA0GAkwIpAwA3A7ABIANBiJMCKQMANwO4ASADQgA3A4ABIANCADcDiAEgA0IANwNgIANB8JICKQMANwOgASADIAIpABA3A1AgAyACKQAYNwNYIAMgAikAADcDQCADIAIpAAg3A0ggA0GAAWoiAiADQUBrIgQQhQEgAhAoIAMgAykDmAE3AxggAyADKQOQATcDECADIAMpA4gBNwMIIAMgAykDgAE3AwAgA0IANwN4IANCADcDcCADQgA3A2ggA0IANwNgIAMgASkAEDcDUCADIAEpABg3A1ggASkACCEFIAEpAAAhBiADQgA3AzggA0IANwMwIANCADcDKCADIAY3A0AgAyAFNwNIIANCADcDICAEIAMQ6QEgAyADKQN4NwO4ASADIAMpA3A3A7ABIAMgAykDaDcDqAEgAyADKQNgNwOgASADIAMpA1g3A5gBIAMgAykDUDcDkAEgAyADKQNINwOIASADIAMpA0A3A4ABIAIQKCAAIAMpA5gBNwAYIAAgAykDkAE3ABAgACADKQOIATcACCAAIAMpA4ABNwAAIAJBwAAQCSADQcABaiQAC5cBAQF/IwBBQGoiAiQAIAIgASkAODcDOCACIAEpADA3AzAgAiABKQAoNwMoIAIgASkAIDcDICACIAEpABg3AxggAiABKQAQNwMQIAIgASkAADcDACACIAEpAAg3AwggAhAoIAAgAikDGDcAGCAAIAIpAxA3ABAgACACKQMINwAIIAAgAikDADcAACACQcAAEAkgAkFAayQAC8cCAgF/An4jAEHAAWsiAyQAIANCADcDYCADQgA3A2ggA0IANwNwIANCADcDeCADIAEpABA3A1AgAyABKQAYNwNYIAEpAAghBCABKQAAIQUgA0IANwMoIANCADcDMCADQgA3AzggAyAFNwNAIAMgBDcDSCADQgA3AyAgAyACKQAQNwMQIAMgAikAGDcDGCADIAIpAAA3AwAgAyACKQAINwMIIANBQGsgAxDpASADIAMpA3g3A7gBIAMgAykDcDcDsAEgAyADKQNoNwOoASADIAMpA2A3A6ABIAMgAykDWDcDmAEgAyADKQNQNwOQASADIAMpA0g3A4gBIAMgAykDQDcDgAEgA0GAAWoiARAoIAAgAykDmAE3ABggACADKQOQATcAECAAIAMpA4gBNwAIIAAgAykDgAE3AAAgAUHAABAJIANBwAFqJAAL5QEBAX8jAEGAAWsiAiQAIAJCADcDUCACQgA3A1ggAkIANwMoIAJCADcDMCACQgA3AzggAkH4kgIpAwA3A2ggAkGAkwIpAwA3A3AgAkGIkwIpAwA3A3ggAkIANwNAIAJCADcDSCACQQE6AEAgAkIANwMgIAJB8JICKQMANwNgIAIgASkAGDcDGCACIAEpABA3AxAgAiABKQAINwMIIAIgASkAADcDACACQUBrIgEgAhCFASABECggACACKQNYNwAYIAAgAikDUDcAECAAIAIpA0g3AAggACACKQNANwAAIAJBgAFqJAAL3gEBAX8jAEGAAWsiAiQAIAJCADcDUCACQgA3A1ggAkIANwMoIAJCADcDMCACQgA3AzggAkH4kgIpAwA3A2ggAkGAkwIpAwA3A3AgAkGIkwIpAwA3A3ggAkIANwNAIAJCADcDSCACQgA3AyAgAkHwkgIpAwA3A2AgAiABKQAQNwMQIAIgASkAGDcDGCACIAEpAAA3AwAgAiABKQAINwMIIAJBQGsiASACEIUBIAEQKCAAIAIpA1g3ABggACACKQNQNwAQIAAgAikDSDcACCAAIAIpA0A3AAAgAkGAAWokAAvPCwELfyMAQeAFayICJAAgAkHABWoiByABIAEQByACQeABaiIGIAEgBxAHIAJBoAVqIgQgASAGEAcgAkGABWoiBSAEIAQQByACQaADaiIJIAcgBRAHIAJBwAJqIgcgASAJEAcgAkHgBGoiAyAFIAUQByACQaACaiIFIAcgBxAHIAJBwARqIgggCSAFEAcgAkHAA2oiDCADIAUQByACQaAEaiIKIAggCBAHIAJBgANqIgggAyAKEAcgAkHgAmoiCyAGIAgQByACQcABaiIGIAMgCxAHIAJBoAFqIgMgBCAGEAcgAkHgAGogBCADEAcgAkGABGoiBiAKIAsQByACQeADaiIDIAQgBhAHIAJBgAJqIgYgDCADEAcgAkGAAWogBSAGEAcgAkFAayIFIAggAxAHIAJBIGoiAyAEIAUQByACIAkgAxAHIAAgByACEAdBACEEA0AgACAAIAAQByAEQQFqIgRB/gBHDQALIAAgACACQeACahAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACACQcAFahAHIAAgACACEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkGgAWoQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAhAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkGAAmoQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAJBQGsQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkHgAGoQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkHAAmoQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAJBgARqEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkHAAWoQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkHgA2oQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACACEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACACQYABahAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkEgahAHIAJB4AVqJABBACABQSAQGmsLKAADQCAAQSAQGSAAIAAtAB9BH3E6AB8gABCNAUUNACAAQSAQGg0ACwsKACAAIAEgAhAuCykBAX8jAEEQayIAJAAgAEEAOgAPQeSfAiAAQQ9qQQAQABogAEEQaiQAC2MBBX8DQCAAIANqIgIgASADai0AACAEIAItAABqaiICOgAAIAAgA0EBciIEaiIGIAEgBGotAAAgBi0AACACQQh2amoiAjoAACACQQh2IQQgA0ECaiEDIAVBAmoiBUEgRw0ACwsoACACQoCAgIAQWgRAEA4ACyAAIAEgAiADQQEgBEG8nwIoAgAREAAaCwQAQQwLdAEFfwJAQQEhAgNAIAAgA2oiASACIAEtAABqIgI6AAAgASABLQABIAJBCHZqIgI6AAEgASABLQACIAJBCHZqIgI6AAIgASABLQADIAJBCHZqIgE6AAMgAUEIdiECIANBBGohAyAEQQRqIgRBBEcNAAsMAAsLggcBFH8jAEHwAWsiBCQAIARCADcDyAEgBEIANwPAASAEQcABaiIJIAEgAhALGiADKAAQIQYgA0FAayIBKAAAIQcgAygAUCEFIAMoACAhCCADKAAwIQogAygAFCELIAMoAEQhDCADKABUIQ0gAygAJCEOIAMoADQhDyADKAAYIRAgAygASCERIAMoAFghEiADKAAoIRMgAygAOCEUIAQoAsABIRUgBCgCxAEhFiAEKALIASEXIAQgAygALCADKAA8cSADKAAcIAMoAEwgAygAXCAEKALMAXNzc3M2AswBIAQgEyAUcSAQIBEgEiAXc3NzczYCyAEgBCAOIA9xIAsgDCANIBZzc3NzNgLEASAEIAggCnEgBiAHIAUgFXNzc3M2AsABIAIgCWpBAEEQIAJrEAwaIAAgCSACEAsaIAQoAsABIQAgBCgCxAEhAiAEKALIASEGIAQoAswBIQcgBCADKQJYNwPoASAEIAMpAlA3A+ABIAQgAykCSDcDuAEgBCABKQIANwOwASAEIAMpAlg3A6gBIAQgAykCUDcDoAEgBEHQAWoiBSAEQbABaiAEQaABahAIIAMgBCkC2AE3AlggAyAEKQLQATcCUCAEIAMpAjg3A5gBIAQgAykCMDcDkAEgBCADKQJINwOIASAEIAEpAgA3A4ABIAUgBEGQAWogBEGAAWoQCCADIAQpAtgBNwJIIAEgBCkC0AE3AgAgBCADKQIoNwN4IAQgAykCIDcDcCAEIAMpAjg3A2ggBCADKQIwNwNgIAUgBEHwAGogBEHgAGoQCCADIAQpAtgBNwI4IAMgBCkC0AE3AjAgBCADKQIYNwNYIAQgAykCEDcDUCAEIAMpAig3A0ggBCADKQIgNwNAIAUgBEHQAGogBEFAaxAIIAMgBCkC2AE3AiggAyAEKQLQATcCICAEIAMpAgg3AzggBCADKQIANwMwIAQgAykCGDcDKCAEIAMpAhA3AyAgBSAEQTBqIARBIGoQCCADIAQpAtgBNwIYIAMgBCkC0AE3AhAgBCAEKQPoATcDGCAEIAQpA+ABNwMQIAQgAykCCDcDCCAEIAMpAgA3AwAgBSAEQRBqIAQQCCAEKALQASEBIAQoAtQBIQUgBCgC2AEhCCADIAcgBCgC3AFzNgIMIAMgBiAIczYCCCADIAIgBXM2AgQgAyAAIAFzNgIAIARB8AFqJAALqwYBFH8jAEHgAWsiAyQAIAIoABAhBCACQUBrIgUoAAAhBiACKABQIQkgAigAICEKIAIoADAhCyACKAAUIQcgAigARCEMIAIoAFQhDSABKAAEIQ4gAigAJCEPIAIoADQhECACKAAYIQggAigASCERIAIoAFghEiABKAAIIRMgAigAKCEUIAIoADghFSABKAAAIRYgACACKAAsIAIoADxxIAIoABwgAigATCACKABcIAEoAAxzc3NzIgE2AAwgACAUIBVxIAggESASIBNzc3NzIgg2AAggACAPIBBxIAcgDCANIA5zc3NzIgc2AAQgACAKIAtxIAQgBiAJIBZzc3NzIgA2AAAgAyACKQJYNwPYASADIAIpAlA3A9ABIAMgAikCSDcDuAEgAyAFKQIANwOwASADIAIpAlg3A6gBIAMgAikCUDcDoAEgA0HAAWoiBCADQbABaiADQaABahAIIAIgAykCyAE3AlggAiADKQLAATcCUCADIAIpAjg3A5gBIAMgAikCMDcDkAEgAyACKQJINwOIASADIAUpAgA3A4ABIAQgA0GQAWogA0GAAWoQCCACIAMpAsgBNwJIIAUgAykCwAE3AgAgAyACKQIoNwN4IAMgAikCIDcDcCADIAIpAjg3A2ggAyACKQIwNwNgIAQgA0HwAGogA0HgAGoQCCACIAMpAsgBNwI4IAIgAykCwAE3AjAgAyACKQIYNwNYIAMgAikCEDcDUCADIAIpAig3A0ggAyACKQIgNwNAIAQgA0HQAGogA0FAaxAIIAIgAykCyAE3AiggAiADKQLAATcCICADIAIpAgg3AzggAyACKQIANwMwIAMgAikCGDcDKCADIAIpAhA3AyAgBCADQTBqIANBIGoQCCACIAMpAsgBNwIYIAIgAykCwAE3AhAgAyADKQPYATcDGCADIAMpA9ABNwMQIAMgAikCCDcDCCADIAIpAgA3AwAgBCADQRBqIAMQCCADKALAASEFIAMoAsQBIQQgAygCyAEhBiACIAMoAswBIAFzNgIMIAIgBiAIczYCCCACIAQgB3M2AgQgAiAAIAVzNgIAIANB4AFqJAALiwkBEX8jAEHgAWsiBSQAIAQoADwgA0EddnMhDiAEKAA4IANBA3RzIQ8gBCgANCACQR12cyEQIARBMGoiAygAACACQQN0cyERIARBEGohAiAEQSBqIQYgBEFAayEHIARB0ABqIQgDQCAFIAgpAgg3A9gBIAUgCCkCADcD0AEgBSAHKQIINwO4ASAFIAcpAgA3A7ABIAUgCCkCCDcDqAEgBSAIKQIANwOgASAFQcABaiIJIAVBsAFqIAVBoAFqEAggCCAFKQLIATcCCCAIIAUpAsABNwIAIAUgAykCCDcDmAEgBSADKQIANwOQASAFIAcpAgg3A4gBIAUgBykCADcDgAEgCSAFQZABaiAFQYABahAIIAcgBSkCyAE3AgggByAFKQLAATcCACAFIAYpAgg3A3ggBSAGKQIANwNwIAUgAykCCDcDaCAFIAMpAgA3A2AgCSAFQfAAaiAFQeAAahAIIAMgBSkCyAE3AgggAyAFKQLAATcCACAFIAIpAgg3A1ggBSACKQIANwNQIAUgBikCCDcDSCAFIAYpAgA3A0AgCSAFQdAAaiAFQUBrEAggBiAFKQLIATcCCCAGIAUpAsABNwIAIAUgBCkCCDcDOCAFIAQpAgA3AzAgBSACKQIINwMoIAUgAikCADcDICAJIAVBMGogBUEgahAIIAIgBSkCyAE3AgggAiAFKQLAATcCACAFIAUpA9gBNwMYIAUgBSkD0AE3AxAgBSAEKQIINwMIIAUgBCkCADcDACAJIAVBEGogBRAIIAUoAsABIQsgBSgCxAEhDCAFKALIASEJIAQgDiAFKALMAXMiDTYCDCAEIAkgD3MiCTYCCCAEIAwgEHMiDDYCBCAEIAsgEXMiCzYCACAKQQFqIgpBB0cNAAsCQAJAAkACQCABQRBrDhEAAgICAgICAgICAgICAgICAQILIAQoABAhASAEKAAwIQIgBCgAICEDIAQoAFAhBiAEQUBrKAAAIQcgBCgAFCEIIAQoADQhCiAEKAAkIQ4gBCgAVCEPIAQoAEQhECAEKAAYIREgBCgAOCESIAQoACghEyAEKABYIRQgBCgASCEVIAAgBCgAHCAEKAA8IAQoACwgBCgAXCAEKABMc3NzcyANczYADCAAIBEgEiATIBQgFXNzc3MgCXM2AAggACAIIAogDiAPIBBzc3NzIAxzNgAEIAAgASACIAMgBiAHc3NzcyALczYAAAwCCyAEKAAgIQEgBCgAECECIAQoACQhAyAEKAAUIQYgBCgAKCEHIAQoABghCCAAIAQoACwgBCgAHHMgDXM2AAwgACAHIAhzIAlzNgAIIAAgAyAGcyAMczYABCAAIAEgAnMgC3M2AAAgBCgAMCEBIAQoAFAhAiAEQUBrKAAAIQMgBCgANCEGIAQoAFQhByAEKABEIQggBCgAOCEKIAQoAFghDSAEKABIIQkgACAEKAA8IAQoAFwgBCgATHNzNgAcIAAgCiAJIA1zczYAGCAAIAYgByAIc3M2ABQgACABIAIgA3NzNgAQDAELIABBACABEAwaCyAFQeABaiQAC6UGARR/IwBB4AFrIgMkACACKAAQIQUgAkFAayIEKAAAIQkgAigAUCEKIAIoACAhCyACKAAwIQwgASgABCEGIAIoABQhDSACKABEIQ4gAigAVCEPIAIoACQhECACKAA0IREgASgACCEHIAIoABghEiACKABIIRMgAigAWCEUIAIoACghFSACKAA4IRYgASgAACEIIAAgASgADCIBIAIoACwgAigAPHEgAigAHCACKABcIAIoAExzc3NzNgAMIAAgByAVIBZxIBIgEyAUc3NzczYACCAAIAYgECARcSANIA4gD3Nzc3M2AAQgACAIIAsgDHEgBSAJIApzc3NzNgAAIAMgAikCWDcD2AEgAyACKQJQNwPQASADIAIpAkg3A7gBIAMgBCkCADcDsAEgAyACKQJYNwOoASADIAIpAlA3A6ABIANBwAFqIgAgA0GwAWogA0GgAWoQCCACIAMpAsgBNwJYIAIgAykCwAE3AlAgAyACKQI4NwOYASADIAIpAjA3A5ABIAMgAikCSDcDiAEgAyAEKQIANwOAASAAIANBkAFqIANBgAFqEAggAiADKQLIATcCSCAEIAMpAsABNwIAIAMgAikCKDcDeCADIAIpAiA3A3AgAyACKQI4NwNoIAMgAikCMDcDYCAAIANB8ABqIANB4ABqEAggAiADKQLIATcCOCACIAMpAsABNwIwIAMgAikCGDcDWCADIAIpAhA3A1AgAyACKQIoNwNIIAMgAikCIDcDQCAAIANB0ABqIANBQGsQCCACIAMpAsgBNwIoIAIgAykCwAE3AiAgAyACKQIINwM4IAMgAikCADcDMCADIAIpAhg3AyggAyACKQIQNwMgIAAgA0EwaiADQSBqEAggAiADKQLIATcCGCACIAMpAsABNwIQIAMgAykD2AE3AxggAyADKQPQATcDECADIAIpAgg3AwggAyACKQIANwMAIAAgA0EQaiADEAggAygCwAEhACADKALEASEEIAMoAsgBIQUgAiABIAMoAswBczYCDCACIAUgB3M2AgggAiAEIAZzNgIEIAIgACAIczYCACADQeABaiQAC6UJAQ1/IwBBoANrIgIkACAAKAAQIQYgACgAFCEHIAAoABghCCAAKAAcIQkgACgABCEEIAAoAAghBSAAKAAMIQogACgAACELIAIgASkCWDcDmAMgAiABKQJQNwOQAyACIAEpAkg3A/gCIAIgAUFAayIAKQIANwPwAiACIAEpAlg3A+gCIAIgASkCUDcD4AIgAkGAA2oiAyACQfACaiACQeACahAIIAEgAikCiAM3AlggASACKQKAAzcCUCACIAEpAjg3A9gCIAIgASkCMDcD0AIgAiABKQJINwPIAiACIAApAgA3A8ACIAMgAkHQAmogAkHAAmoQCCABIAIpAogDNwJIIAAgAikCgAM3AgAgAiABKQIoNwO4AiACIAEpAiA3A7ACIAIgASkCODcDqAIgAiABKQIwNwOgAiADIAJBsAJqIAJBoAJqEAggASACKQKIAzcCOCABIAIpAoADNwIwIAIgASkCGDcDmAIgAiABKQIQNwOQAiACIAEpAig3A4gCIAIgASkCIDcDgAIgAyACQZACaiACQYACahAIIAEgAikCiAM3AiggASACKQKAAzcCICACIAEpAgg3A/gBIAIgASkCADcD8AEgAiABKQIYNwPoASACIAEpAhA3A+ABIAMgAkHwAWogAkHgAWoQCCABIAIpAogDNwIYIAEgAikCgAM3AhAgAiACKQOYAzcD2AEgAiACKQOQAzcD0AEgAiABKQIINwPIASACIAEpAgA3A8ABIAMgAkHQAWogAkHAAWoQCCACKAKAAyEMIAIoAoQDIQ0gAigCiAMhDiABIAogAigCjANzNgIMIAEgBSAOczYCCCABIAQgDXM2AgQgASALIAxzNgIAIAIgASkCWDcDmAMgAiABKQJQNwOQAyACIAEpAkg3A7gBIAIgACkCADcDsAEgAiABKQJYNwOoASACIAEpAlA3A6ABIAMgAkGwAWogAkGgAWoQCCABIAIpAogDNwJYIAEgAikCgAM3AlAgAiABKQI4NwOYASACIAEpAjA3A5ABIAIgASkCSDcDiAEgAiAAKQIANwOAASADIAJBkAFqIAJBgAFqEAggASACKQKIAzcCSCAAIAIpAoADNwIAIAIgASkCKDcDeCACIAEpAiA3A3AgAiABKQI4NwNoIAIgASkCMDcDYCADIAJB8ABqIAJB4ABqEAggASACKQKIAzcCOCABIAIpAoADNwIwIAIgASkCGDcDWCACIAEpAhA3A1AgAiABKQIoNwNIIAIgASkCIDcDQCADIAJB0ABqIAJBQGsQCCABIAIpAogDNwIoIAEgAikCgAM3AiAgAiABKQIINwM4IAIgASkCADcDMCACIAEpAhg3AyggAiABKQIQNwMgIAMgAkEwaiACQSBqEAggASACKQKIAzcCGCABIAIpAoADNwIQIAIgAikDmAM3AxggAiACKQOQAzcDECACIAEpAgg3AwggAiABKQIANwMAIAMgAkEQaiACEAggAigCgAMhACACKAKEAyEEIAIoAogDIQUgASAJIAIoAowDczYCDCABIAUgCHM2AgggASAEIAdzNgIEIAEgACAGczYCACACQaADaiQAC/MUARl/IwBBoAZrIgMkACABKAAEIQsgASgACCEMIAEoAAwhDSABKAAQIQ4gASgAFCEEIAEoABghDyABKAAcIRAgACgABCERIAAoAAghEiAAKAAMIRMgACgAECEUIAAoABQhFSAAKAAYIRYgACgAHCEXIAEoAAAhBSACQUBrIgEgACgAACIYQYCChBBzNgIAIAJClcTcyYWy+rziADcCOCACQTBqIgBCgIKEkLCggYQNNwIAIAJCoKLEkbSurZRdNwIoIAJBIGoiBkLb++Co1c3wl3E3AgAgAiAFIBhzIhk2AgAgAiAXQfPqoul9czYCXCACIBZBoKLEkQRzNgJYIAIgFUHthL+Jf3M2AlQgAkHQAGoiBSAUQdv74KgFczYCACACIBNBkNPnkwZzNgJMIAIgEkGVxNzJBXM2AkggAiARQYOKoOgAczYCRCACIBAgF3MiEDYCHCACIA8gFnMiDzYCGCACIAQgFXMiGjYCFCACQRBqIgQgDiAUcyIONgIAIAIgDSATcyINNgIMIAIgDCAScyIMNgIIIAIgCyARcyIbNgIEQQAhCwNAIAMgBSkCCDcDmAYgAyAFKQIANwOQBiADIAEpAgg3A/gFIAMgASkCADcD8AUgAyAFKQIINwPoBSADIAUpAgA3A+AFIANBgAZqIgcgA0HwBWogA0HgBWoQCCAFIAMpAogGNwIIIAUgAykCgAY3AgAgAyAAKQIINwPYBSADIAApAgA3A9AFIAMgASkCCDcDyAUgAyABKQIANwPABSAHIANB0AVqIANBwAVqEAggASADKQKIBjcCCCABIAMpAoAGNwIAIAMgBikCCDcDuAUgAyAGKQIANwOwBSADIAApAgg3A6gFIAMgACkCADcDoAUgByADQbAFaiADQaAFahAIIAAgAykCiAY3AgggACADKQKABjcCACADIAQpAgg3A5gFIAMgBCkCADcDkAUgAyAGKQIINwOIBSADIAYpAgA3A4AFIAcgA0GQBWogA0GABWoQCCAGIAMpAogGNwIIIAYgAykCgAY3AgAgAyACKQIINwP4BCADIAIpAgA3A/AEIAMgBCkCCDcD6AQgAyAEKQIANwPgBCAHIANB8ARqIANB4ARqEAggBCADKQKIBjcCCCAEIAMpAoAGNwIAIAMgAykDmAY3A9gEIAMgAykDkAY3A9AEIAMgAikCCDcDyAQgAyACKQIANwPABCAHIANB0ARqIANBwARqEAggAygCgAYhCCADKAKEBiEJIAMoAogGIQogAiADKAKMBiATczYCDCACIAogEnM2AgggAiAJIBFzNgIEIAIgCCAYczYCACADIAUpAgg3A5gGIAMgBSkCADcDkAYgAyABKQIINwO4BCADIAEpAgA3A7AEIAMgBSkCCDcDqAQgAyAFKQIANwOgBCAHIANBsARqIANBoARqEAggBSADKQKIBjcCCCAFIAMpAoAGNwIAIAMgACkCCDcDmAQgAyAAKQIANwOQBCADIAEpAgg3A4gEIAMgASkCADcDgAQgByADQZAEaiADQYAEahAIIAEgAykCiAY3AgggASADKQKABjcCACADIAYpAgg3A/gDIAMgBikCADcD8AMgAyAAKQIINwPoAyADIAApAgA3A+ADIAcgA0HwA2ogA0HgA2oQCCAAIAMpAogGNwIIIAAgAykCgAY3AgAgAyAEKQIINwPYAyADIAQpAgA3A9ADIAMgBikCCDcDyAMgAyAGKQIANwPAAyAHIANB0ANqIANBwANqEAggBiADKQKIBjcCCCAGIAMpAoAGNwIAIAMgAikCCDcDuAMgAyACKQIANwOwAyADIAQpAgg3A6gDIAMgBCkCADcDoAMgByADQbADaiADQaADahAIIAQgAykCiAY3AgggBCADKQKABjcCACADIAMpA5gGNwOYAyADIAMpA5AGNwOQAyADIAIpAgg3A4gDIAMgAikCADcDgAMgByADQZADaiADQYADahAIIAMoAoAGIQggAygChAYhCSADKAKIBiEKIAIgAygCjAYgF3M2AgwgAiAKIBZzNgIIIAIgCSAVczYCBCACIAggFHM2AgAgAyAFKQIINwOYBiADIAUpAgA3A5AGIAMgASkCCDcD+AIgAyABKQIANwPwAiADIAUpAgg3A+gCIAMgBSkCADcD4AIgByADQfACaiADQeACahAIIAUgAykCiAY3AgggBSADKQKABjcCACADIAApAgg3A9gCIAMgACkCADcD0AIgAyABKQIINwPIAiADIAEpAgA3A8ACIAcgA0HQAmogA0HAAmoQCCABIAMpAogGNwIIIAEgAykCgAY3AgAgAyAGKQIINwO4AiADIAYpAgA3A7ACIAMgACkCCDcDqAIgAyAAKQIANwOgAiAHIANBsAJqIANBoAJqEAggACADKQKIBjcCCCAAIAMpAoAGNwIAIAMgBCkCCDcDmAIgAyAEKQIANwOQAiADIAYpAgg3A4gCIAMgBikCADcDgAIgByADQZACaiADQYACahAIIAYgAykCiAY3AgggBiADKQKABjcCACADIAIpAgg3A/gBIAMgAikCADcD8AEgAyAEKQIINwPoASADIAQpAgA3A+ABIAcgA0HwAWogA0HgAWoQCCAEIAMpAogGNwIIIAQgAykCgAY3AgAgAyADKQOYBjcD2AEgAyADKQOQBjcD0AEgAyACKQIINwPIASADIAIpAgA3A8ABIAcgA0HQAWogA0HAAWoQCCADKAKABiEIIAMoAoQGIQkgAygCiAYhCiACIAMoAowGIA1zNgIMIAIgCiAMczYCCCACIAkgG3M2AgQgAiAIIBlzNgIAIAMgBSkCCDcDmAYgAyAFKQIANwOQBiADIAEpAgg3A7gBIAMgASkCADcDsAEgAyAFKQIINwOoASADIAUpAgA3A6ABIAcgA0GwAWogA0GgAWoQCCAFIAMpAogGNwIIIAUgAykCgAY3AgAgAyAAKQIINwOYASADIAApAgA3A5ABIAMgASkCCDcDiAEgAyABKQIANwOAASAHIANBkAFqIANBgAFqEAggASADKQKIBjcCCCABIAMpAoAGNwIAIAMgBikCCDcDeCADIAYpAgA3A3AgAyAAKQIINwNoIAMgACkCADcDYCAHIANB8ABqIANB4ABqEAggACADKQKIBjcCCCAAIAMpAoAGNwIAIAMgBCkCCDcDWCADIAQpAgA3A1AgAyAGKQIINwNIIAMgBikCADcDQCAHIANB0ABqIANBQGsQCCAGIAMpAogGNwIIIAYgAykCgAY3AgAgAyACKQIINwM4IAMgAikCADcDMCADIAQpAgg3AyggAyAEKQIANwMgIAcgA0EwaiADQSBqEAggBCADKQKIBjcCCCAEIAMpAoAGNwIAIAMgAykDmAY3AxggAyADKQOQBjcDECADIAIpAgg3AwggAyACKQIANwMAIAcgA0EQaiADEAggAygCgAYhCCADKAKEBiEJIAMoAogGIQogAiADKAKMBiAQczYCDCACIAogD3M2AgggAiAJIBpzNgIEIAIgCCAOczYCACALQQFqIgtBBEcNAAsgA0GgBmokAAsIACAAQRAQGQsEAEFfC5gKAR5/IwBBwAJrIgQkACAEQgA3A5gCIARCADcDkAIgBEIANwOIAiAEQgA3A4ACIARBgAJqIgUgASACEAsaIAMoABAhCyADKAAwIQwgAygAFCENIAMoADQhDiADKAAYIQ8gAygAOCEQIAMoABwhESADKAA8IRIgAygAJCEBIAMoAFQhEyADKAB0IRQgAygAZCEGIAMoACwhByADKABcIRUgAygAfCEWIAMoAGwhCCADKAAgIQkgAygAUCEXIAMoAHAhGCADKABgIQogBCgCkAIhGSAEKAKAAiEaIAQoAoQCIRsgBCgCiAIhHCAEKAKMAiEdIAQoApQCIR4gBCgCnAIhHyAEIAMoACgiICADKABoIiEgAygAeHEgAygAWCAEKAKYAnNzczYCmAIgBCAJIAogGHEgFyAZc3NzNgKQAiAEIAcgCCAWcSAVIB9zc3M2ApwCIAQgASAGIBRxIBMgHnNzczYClAIgBCAIIAcgEnEgESAdc3NzNgKMAiAEICEgECAgcSAPIBxzc3M2AogCIAQgBiABIA5xIA0gG3NzczYChAIgBCAKIAkgDHEgCyAac3NzNgKAAiACIAVqQQBBICACaxAMGiAAIAUgAhALGiAEKAKYAiEBIAQoApACIQIgBCgCnAIhBiAEKAKUAiEHIAQoAoACIQggBCgChAIhCSAEKAKIAiEKIAQoAowCIQsgBCADKQJ4NwO4AiAEIAMpAnA3A7ACIAQgAykCaDcD+AEgBCADKQJgNwPwASAEIAMpAng3A+gBIAQgAykCcDcD4AEgBEGgAmoiBSAEQfABaiAEQeABahAIIAMgBCkCqAI3AnggAyAEKQKgAjcCcCAEIAMpAlg3A9gBIAQgAykCUDcD0AEgBCADKQJoNwPIASAEIAMpAmA3A8ABIAUgBEHQAWogBEHAAWoQCCADIAQpAqgCNwJoIAMgBCkCoAI3AmAgBCADKQJINwO4ASAEIANBQGsiACkCADcDsAEgBCADKQJYNwOoASAEIAMpAlA3A6ABIAUgBEGwAWogBEGgAWoQCCADIAQpAqgCNwJYIAMgBCkCoAI3AlAgBCADKQI4NwOYASAEIAMpAjA3A5ABIAQgAykCSDcDiAEgBCAAKQIANwOAASAFIARBkAFqIARBgAFqEAggAyAEKQKoAjcCSCAAIAQpAqACNwIAIAQgAykCKDcDeCAEIAMpAiA3A3AgBCADKQI4NwNoIAQgAykCMDcDYCAFIARB8ABqIARB4ABqEAggAyAEKQKoAjcCOCADIAQpAqACNwIwIAQgAykCGDcDWCAEIAMpAhA3A1AgBCADKQIoNwNIIAQgAykCIDcDQCAFIARB0ABqIARBQGsQCCADIAQpAqgCNwIoIAMgBCkCoAI3AiAgBCADKQIINwM4IAQgAykCADcDMCAEIAMpAhg3AyggBCADKQIQNwMgIAUgBEEwaiAEQSBqEAggAyAEKQKoAjcCGCADIAQpAqACNwIQIAQgBCkDuAI3AxggBCAEKQOwAjcDECAEIAMpAgg3AwggBCADKQIANwMAIAUgBEEQaiAEEAggAyAEKQKoAjcCCCADIAQpAqACNwIAIAMgCyADKAAMczYCDCADIAogAygACHM2AgggAyAJIAMoAARzNgIEIAMgCCADKAAAczYCACAAIAIgACgAAHM2AgAgAyAHIAMoAERzNgJEIAMgASADKABIczYCSCADIAYgAygATHM2AkwgBEHAAmokAAuRCQEefyMAQaACayIDJAAgAigAECEOIAIoADAhDyACKAAUIRAgASgABCERIAIoADQhEiACKAAYIRMgASgACCEUIAIoADghFSACKAAcIQggASgADCEWIAIoADwhFyACKAAgIQUgAigAUCEJIAEoABAhGCACKABwIRkgAigAYCEEIAIoACQhBiACKABUIQogASgAFCEaIAIoAHQhGyACKABkIQwgAigAKCEHIAIoAFghCyABKAAYIRwgAigAeCEdIAIoAGghDSABKAAAIR4gACACKAAsIh8gAigAbCIgIAIoAHxxIAIoAFwgASgAHHNzcyIBNgAcIAAgByANIB1xIAsgHHNzcyILNgAYIAAgBiAMIBtxIAogGnNzcyIKNgAUIAAgBSAEIBlxIAkgGHNzcyIJNgAQIAAgICAXIB9xIAggFnNzcyIINgAMIAAgDSAHIBVxIBMgFHNzcyIHNgAIIAAgDCAGIBJxIBAgEXNzcyIGNgAEIAAgBCAFIA9xIA4gHnNzcyIFNgAAIAMgAikCeDcDmAIgAyACKQJwNwOQAiADIAIpAmg3A/gBIAMgAikCYDcD8AEgAyACKQJ4NwPoASADIAIpAnA3A+ABIANBgAJqIgQgA0HwAWogA0HgAWoQCCACIAMpAogCNwJ4IAIgAykCgAI3AnAgAyACKQJYNwPYASADIAIpAlA3A9ABIAMgAikCaDcDyAEgAyACKQJgNwPAASAEIANB0AFqIANBwAFqEAggAiADKQKIAjcCaCACIAMpAoACNwJgIAMgAikCSDcDuAEgAyACQUBrIgApAgA3A7ABIAMgAikCWDcDqAEgAyACKQJQNwOgASAEIANBsAFqIANBoAFqEAggAiADKQKIAjcCWCACIAMpAoACNwJQIAMgAikCODcDmAEgAyACKQIwNwOQASADIAIpAkg3A4gBIAMgACkCADcDgAEgBCADQZABaiADQYABahAIIAIgAykCiAI3AkggACADKQKAAjcCACADIAIpAig3A3ggAyACKQIgNwNwIAMgAikCODcDaCADIAIpAjA3A2AgBCADQfAAaiADQeAAahAIIAIgAykCiAI3AjggAiADKQKAAjcCMCADIAIpAhg3A1ggAyACKQIQNwNQIAMgAikCKDcDSCADIAIpAiA3A0AgBCADQdAAaiADQUBrEAggAiADKQKIAjcCKCACIAMpAoACNwIgIAMgAikCCDcDOCADIAIpAgA3AzAgAyACKQIYNwMoIAMgAikCEDcDICAEIANBMGogA0EgahAIIAIgAykCiAI3AhggAiAD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IAIoAHAhGiACKABgIQkgAigAJCEKIAEoABQhCyACKABUIRsgAigAdCEcIAIoAGQhDCACKAAoIQ0gASgAGCEOIAIoAFghHSACKAB4IR4gAigAaCEPIAEoAAAhECAAIAIoACwiHyABKAAcIgEgAigAXCACKABsIiAgAigAfHFzc3M2ABwgACANIA4gHSAPIB5xc3NzNgAYIAAgCiALIBsgDCAccXNzczYAFCAAIAQgCCAZIAkgGnFzc3M2ABAgACAgIAcgFyAYIB9xc3NzNgAMIAAgDyAGIBUgDSAWcXNzczYACCAAIAwgBSATIAogFHFzc3M2AAQgACAJIBAgESAEIBJxc3NzNgAAIAMgAikCeDcDmAIgAyACKQJwNwOQAiADIAIpAmg3A/gBIAMgAikCYDcD8AEgAyACKQJ4NwPoASADIAIpAnA3A+ABIANBgAJqIgQgA0HwAWogA0HgAWoQCCACIAMpAogCNwJ4IAIgAykCgAI3AnAgAyACKQJYNwPYASADIAIpAlA3A9ABIAMgAikCaDcDyAEgAyACKQJgNwPAASAEIANB0AFqIANBwAFqEAggAiADKQKIAjcCaCACIAMpAoACNwJgIAMgAikCSDcDuAEgAyACQUBrIgApAgA3A7ABIAMgAikCWDcDqAEgAyACKQJQNwOgASAEIANBsAFqIANBoAFqEAggAiADKQKIAjcCWCACIAMpAoACNwJQIAMgAikCODcDmAEgAyACKQIwNwOQASADIAIpAkg3A4gBIAMgACkCADcDgAEgBCADQZABaiADQYABahAIIAIgAykCiAI3AkggACADKQKAAjcCACADIAIpAig3A3ggAyACKQIgNwNwIAMgAikCODcDaCADIAIpAjA3A2AgBCADQfAAaiADQeAAahAIIAIgAykCiAI3AjggAiADKQKAAjcCMCADIAIpAhg3A1ggAyACKQIQNwNQIAMgAikCKDcDSCADIAIpAiA3A0AgBCADQdAAaiADQUBrEAggAiADKQKIAjcCKCACIAMpAoACNwIgIAMgAikCCDcDOCADIAIpAgA3AzAgAyACKQIYNwMoIAMgAikCEDcDICAEIANBMGogA0EgahAIIAIgAykCiAI3AhggAiADKQKAAjcCECADIAMpA5gCNwMYIAMgAykDkAI3AxAgAyACKQIINwMIIAMgAikCADcDACAE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ACJDNwPQAiADIAEpAAg3A9gCIAMgQ6dB+AFxOgDQAiADIAMtAO8CQT9xQcAAcjoA7wIgA0GgAmogAhA2IANCADcChAIgA0IANwKMAiADQQA2ApQCIANCADcD0AEgA0IANwPYASADQgA3A+ABIAMgAykDsAI3A6ABIAMgAykDuAI3A6gBIAMgAykDwAI3A7ABIANCADcC9AEgA0EBNgLwASADQgA3AvwBIANCADcDwAEgA0IANwPIASADIAMpA6ACNwOQASADIAMpA6gCNwOYASADQgA3AnQgA0IANwJ8IANBADYChAEgA0IANwJkIANBATYCYCADQgA3AmxB/gEhAkEAIQQDQCADKAKUAiEJIAMoArQBIQYgAygCYCEHIAMoAsABIQogAygCkAEhCyADKALwASENIAMoAmQhCCADKALEASEMIAMoApQBIQUgAygC9AEhECADKAJoIQ4gAygCyAEhESADKAKYASESIAMoAvgBIRMgAygCbCEPIAMoAswBIRQgAygCnAEhFSADKAL8ASEXIAMoAnAhGCADKALQASEcIAMoAqABIR0gAygCgAIhHiADKAJ0IRkgAygC1AEhHyADKAKkASEgIAMoAoQCISEgAygCeCEaIAMoAtgBISIgAygCqAEhIyADKAKIAiEkIAMoAnwhGyADKALcASElIAMoAqwBISYgAygCjAIhJyADKAKAASEWIAMoAuABISggAygCsAEhKSADKAKQAiEsIANBACAEIANB0AJqIi0gAiIBQQN2ai0AACACQQdxdkEBcSIEc2siAiADKAKEASIqIAMoAuQBIitzcSIuICpzIio2AoQBIAMgBiAGIAlzIAJxIi9zIjAgKms2AlQgAyAWIBYgKHMgAnEiMXMiBjYCgAEgAyApICkgLHMgAnEiFnMiKSAGazYCUCADIBsgGyAlcyACcSIycyIbNgJ8IAMgJiAmICdzIAJxIjNzIiYgG2s2AkwgAyAaIBogInMgAnEiNHMiGjYCeCADICMgIyAkcyACcSI1cyIjIBprNgJIIAMgGSAZIB9zIAJxIjZzIhk2AnQgAyAgICAgIXMgAnEiN3MiICAZazYCRCADIBggGCAccyACcSI4cyIYNgJwIAMgHSAdIB5zIAJxIjlzIh0gGGs2AkAgAyAPIA8gFHMgAnEiOnMiDzYCbCADIBUgFSAXcyACcSI7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BiAWIAMgGhAGIAENAAsgAygCkAEhECADKALwASECIAMoApQBIQ4gAygC9AEhBiADKAKYASERIAMoAvgBIQcgAygCnAEhEiADKAL8ASEKIAMoAqABIRMgAygCgAIhCyADKAKkASEPIAMoAoQCIQ0gAygCqAEhFCADKAKIAiEIIAMoAqwBIRUgAygCjAIhDCADKAKwASEXIAMoApACIQUgA0EAIARrIgEgAygClAIiBCADKAK0AXNxIARzNgKUAiADIAUgBSAXcyABcXM2ApACIAMgDCAMIBVzIAFxczYCjAIgAyAIIAggFHMgAXFzNgKIAiADIA0gDSAPcyABcXM2AoQCIAMgCyALIBNzIAFxczYCgAIgAyAKIAogEnMgAXFzNgL8ASADIAcgByARcyABcXM2AvgBIAMgBiAGIA5zIAFxczYC9AEgAyACIAIgEHMgAXFzNgLwASADKALAASECIAMoAmAhBSADKALEASEEIAMoAmQhECADKALIASEGIAMoAmghDiADKALMASEHIAMoAmwhESADKALQASEKIAMoAnAhEiADKALUASELIAMoAnQhEyADKALYASENIAMoAnghDyADKALcASEIIAMoAnwhFCADKALgASEMIAMoAoABIRUgAyADKALkASIXIAMoAoQBcyABcSAXczYC5AEgAyAMIAwgFXMgAXFzNgLgASADIAggCCAUcyABcXM2AtwBIAMgDSANIA9zIAFxczYC2AEgAyALIAsgE3MgAXFzNgLUASADIAogCiAScyABcXM2AtABIAMgByAHIBFzIAFxczYCzAEgAyAGIAYgDnMgAXFzNgLIASADIAQgBCAQcyABcXM2AsQBIAMgAiACIAVzIAFxczYCwAEgFiAWEDUgGSAZIBYQBiAAIBkQESAtQSAQCUEAIQkLIANB8AJqJAAgCQs4AQF/IwBBIGsiBiQAIAYgBCAFQQAQGxogACABIAKtIAOtQiCGhCAEQRBqQgAgBhA7IAZBIGokAAtAAQF/IwBBIGsiCCQAIAggBCAHQQAQGxogACABIAKtIAOtQiCGhCAEQRBqIAWtIAatQiCGhCAIEDsgCEEgaiQACzQBAX8jAEEgayIFJAAgBSADIARBABAbGiAAIAGtIAKtQiCGhCADQRBqIAUQUyAFQSBqJAALtgQCA38CfiMAQfAAayIGJAAgAq0gA61C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IwtbAQJ+IAetIAitQiCGhCEMQX8hAiAErSAFrUIghoQiC0IQWgRAIAAgAyALQhB9IAMgC6dqQRBrIAYgDCAJIAoQsgEhAgsgAQRAIAFCACALQhB9IAIbNwMACyACCyUAIAAgAiADrSAErUIghoQgBSAGIAetIAitQiCGhCAJIAoQsgELWQECfgJ/IAatIAetQiCGhCEMIAOtIAStQiCGhCILQvD///8PVARAIAAgACALp2pBACACIAsgBSAMIAkgChCzARogAQRAIAEgC0IQfDcDAAtBAAwBCxAOAAsLJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALELMBC1sBAn4gB60gCK1CIIaEIQxBfyECIAStIAWtQiCGhCILQhBaBEAgACADIAtCEH0gAyALp2pBEGsgBiAMIAkgChDDASECCyABBEAgAUIAIAtCEH0gAhs3AwALIAILJQAgACACIAOtIAStQiCGhCAFIAYgB60gCK1CIIaEIAkgChDDAQtbAQJ+IAetIAitQiCGhCEMQX8hAiAErSAFrUIghoQiC0IQWgRAIAAgAyALQhB9IAMgC6dqQRBrIAYgDCAJIAoQxAEhAgsgAQRAIAFCACALQhB9IAIbNwMACyACCyUAIAAgAiADrSAErUIghoQgBSAGIAetIAitQiCGhCAJIAoQxAELWQECfgJ/IAatIAetQiCGhCEMIAOtIAStQiCGhCILQvD///8PVARAIAAgACALp2pBACACIAsgBSAMIAkgChDFARogAQRAIAEgC0IQfDcDAAtBAAwBCxAOAAsLJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALEMUBC1kBAn4CfyAGrSAHrUIghoQhDCADrSAErUIghoQiC0Lw////D1QEQCAAIAAgC6dqQQAgAiALIAUgDCAJIAoQxgEaIAEEQCABIAtCEHw3AwALQQAMAQsQDgALCycAIAAgASACIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAogCxDGAQtZAQJ+IAetIAitQiCGhCELQX8hAQJAIAOtIAStQiCGhCIMQt////8PVg0AIAtC3////w9WDQAgACACIAynIAVBICAGIAunIAkgCkGsnwIoAgARDQAhAQsgAQuAAQEDfiAHrSAIrUIghoQhDEF/IQICQCAErSAFrUIghoQiC0IgVA0AIAtCIH0iDULf////D1YNACAMQt////8PVg0AIAAgAyANpyADIAunakEga0EgIAYgDKcgCSAKQayfAigCABENACECCyABBEAgAUIAIAtCIH0gAhs3AwALIAILYAECfiAErSAFrUIghoQhDCAHrSAIrUIghoQhDSACBEAgAkIgNwMACyANQuD///8PVCAMQt////8PWHFFBEAQDgALIAAgAUEgIAMgDKcgBiANpyAKIAtBqJ8CKAIAEQ0AC3YBAn4CfyAGrSAHrUIghoQhCwJAIAOtIAStQiCGhCIMQt////8PVg0AIAtC4P///w9aDQAgACAAIAynIgNqQSAgAiADIAUgC6cgCSAKQaifAigCABENACEAIAEEQCABQgAgDEIgfCAAGzcDAAsgAAwBCxAOAAsLWQECfiAHrSAIrUIghoQhC0F/IQECQCADrSAErUIghoQiDELf////D1YNACALQt////8PVg0AIAAgAiAMpyAFQSAgBiALpyAJIApBpJ8CKAIAEQ0AIQELIAELgAEBA34gB60gCK1CIIaEIQxBfyECAkAgBK0gBa1CIIaEIgtCIFQNACALQiB9Ig1C3////w9WDQAgDELf////D1YNACAAIAMgDacgAyALp2pBIGtBICAGIAynIAkgCkGknwIoAgARDQAhAgsgAQRAIAFCACALQiB9IAIbNwMACyACC2ABAn4gBK0gBa1CIIaEIQwgB60gCK1CIIaEIQ0gAgRAIAJCIDcDAAsgDULg////D1QgDELf////D1hxRQRAEA4ACyAAIAFBICADIAynIAYgDacgCiALQaCfAigCABENAAt2AQJ+An8gBq0gB61CIIaEIQsCQCADrSAErUIghoQiDELf////D1YNACALQuD///8PWg0AIAAgACAMpyIDakEgIAIgAyAFIAunIAkgCkGgnwIoAgARDQAhACABBEAgAUIAIAxCIHwgABs3AwALIAAMAQsQDgALCwUAQegACwQAQRoLBQBBiwwLBQBBtAoL/QEBBX8jACIFIQkgBUGABGtBQHEiBSQAIAAgASAAGyIHBEBBfyEGIAVB4ABqIgggAyAEEB9FBEAgASAAIAEbIQNBACEAIAVBgAFqIgFBAEEAQcAAECIaIAEgCEIgEA8aIAhBIBAJIAEgBEIgEA8aIAEgAkIgEA8aIAEg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ACABIAIgAxAiCwsAIAAgASACEMcBCw0AIAAgASACIAMQyAELBwAgABDJAQsJACAAIAEQywELCwAgACABIAIQzAELBQBBrgsLOgEDfiABKQAgIQIgASkAKCEDIAEpADAhBCAAIAEpADg3ABggACAENwAQIAAgAzcACCAAIAI3AABBAAs6AQN+IAEpAAghAiABKQAQIQMgASkAACEEIAAgASkAGDcAGCAAIAM3ABAgACACNwAIIAAgBDcAAEEAC3wBAX8CQAJAAkAgA0LAAFQNACADQkB8IgNCv////w9WDQAgAiACQUBrIgUgAyAEQQAQdkUNASAARQ0AIABBACADpxAMGgtBfyECIAFFDQEgAUIANwMAQX8PCyABBEAgASADNwMAC0EAIQIgAEUNACAAIAUgA6cQQhoLIAILcAECfyMAQRBrIgUkACAAIAVBCGogAEFAayACIAOnIgIQQiADIARBABB4GgJAIAUpAwhCwABSBEAgAQRAIAFCADcDAAsgAEEAIAJBQGsQDBpBfyEGDAELIAFFDQAgASADQkB9NwMACyAFQRBqJAAgBgsTACAAIAEgAiADIARBABB4GkEAC20BAX8jAEFAaiICJAAgAiABQiAQRxogAiACLQAAQfgBcToAACACIAItAB9BP3FBwAByOgAfIAAgAikDEDcAECAAIAIpAwg3AAggACACKQMANwAAIAAgAikDGDcAGCACQcAAEAkgAkFAayQAQQAL5woCD38nfiMAQYACayICJABBfyEIAkAgARBMDQAgAkHgAGoiAyABEJQBDQAgAxBsRQ0AQQAhCCACQQAgAigCrAEiAWs2AiQgAkEAIAIoAqgBIgNrNgIgIAJBACACKAKkASIJazYCHCACQQAgAigCoAEiBGs2AhggAkEAIAIoApwBIgprNgIUIAJBACACKAKYASIFazYCECACQQAgAigClAEiC2s2AgwgAkEAIAIoApABIgZrNgIIIAJBACACKAKMASIMazYCBCACQQEgAigCiAEiB2s2AgAgAiACEDUgAiACKAIEIg2sIhkgCkEBdKwiIn4gAjQCACIRIASsIhR+fCACKAIIIgSsIhsgBawiFX58IAIoAgwiBawiHiALQQF0rCIjfnwgAigCECIOrCIfIAasIhZ+fCACKAIUIgasIiQgDEEBdKwiJX58IAIoAhgiD6wiLiAH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IAIQPQ0AIAMgARAQIANBoAFqIgEgBSADEFUgA0HAAmoiAiABEFYgACACEEtBACEECyADQaAGaiQAIAQLZQEDfyMAQaAGayIDJABBfyEEAkAgA0GABWoiBSABED0NACADQeADaiIBIAIQPQ0AIAMgARAQIANBoAFqIgEgBSADEBMgA0HAAmoiAiABEFYgACACEEtBACEECyADQaAGaiQAIAQLHQEBfyMAQaABayIBJAAgASAAED0gAUGgAWokAEULpQEBBn8jAEEQayIFQQA2AgxBfyEEIAIgA0EBa0sEfyABIAJBAWsiB2ohCEEAIQJBACEBQQAhBANAIAUgBSgCDCIGQQAgCCACay0AACIJQYABc0EBayAGQQFrIARBAWtxcUEIdkEBcSIGayACcXI2AgwgASAGciEBIAQgCXIhBCACQQFqIgIgA0cNAAsgACAHIAUoAgxrNgIAIAFB/wFxQQFrBUF/CwshAQF/IwBBIGsiASQAIAFBIBAZIAAgARCMASABQSBqJAALCwAgACABEIwBQQALcwEDfyMAQaAGayIDJABBfyEEAkAgA0GABWoiBSABEDQNACAFEE1FDQAgA0HgA2oiASACEDQNACABEE1FDQAgAyABEBAgA0GgAWoiASAFIAMQVSADQcACaiICIAEQViAAIAIQL0EAIQQLIANBoAZqJAAgBAtzAQN/IwBBoAZrIgMkAEF/IQQCQCADQYAFaiIFIAEQNA0AIAUQTUUNACADQeADaiIBIAIQNA0AIAEQTUUNACADIAEQECADQaABaiIBIAUgAxATIANBwAJqIgIgARBWIAAgAhAvQQAhBAsgA0GgBmokACAEC0ABAn8jAEGgAWsiASQAAkAgABBrRQ0AIAAQTA0AIAEgABA0DQAgARBNRQ0AIAEQbEEARyECCyABQaABaiQAIAILBgBBwP8AC7UCAgV/AX4jAEHwA2siBSQAIAVBAToADwJ/IAFBwP8ATQRAIAFBwABPBEAgAEFAaiEJIAOtIQpBwAAhBgNAIAYhByAFQdAAaiIGIARBwAAQLhogCARAIAYgCCAJakLAABAmGgsgBUHQAGoiBiACIAoQJhogBiAFQQ9qQgEQJhogBiAAIAhqEDEaIAUgBS0AD0EBajoADyAHIQggB0FAayIGIAFNDQALCyABQT9xIggEQCAFQdAAaiIBIARBwAAQ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ZABcjnj+aHy+ALWxPv/6KVUAmIIqAWD89gCXlz/+74U+ACA4nAAtp73/joWzAYNW0wC7s5b++qoO/9KjTgAlNJcAY00aAO6c1f/VwNEBSS5UABRBKQE2zk8AyYOS/qpvGP+xITL+qybL/073dADR3ZkAhYCyATosGQDJJzsBvRP8ADHl0gF1u3UAtbO4AQBy2wAwXpMA9Sk4AH0NzP70rXcALN0g/lTqFAD5oMYB7H7q/y9jqP6q4pn/ZrPYAOKNev96Qpn+tvWGAOPkGQHWOev/2K04/7Xn0gB3gJ3/gV+I/25+MwACqbf/B4Ji/kWwXv90BOMB2fKR/8qtHwFpASf/Lq9FAOQvOv/X4EX+zzhF/xD+i/8Xz9T/yhR+/1/VYP8JsCEAyAXP//EqgP4jIcD/+OXEAYEReAD7Z5f/BzRw/4w4Qv8o4vX/2UYl/qzWCf9IQ4YBksDW/ywmcABEuEv/zlr7AJXrjQC1qjoAdPTvAFydAgBmrWIA6YlgAX8xywAFm5QAF5QJ/9N6DAAihhr/28yIAIYIKf/gUyv+VRn3AG1/AP6piDAA7nfb/+et1QDOEv7+CLoH/34JBwFvKkgAbzTs/mA/jQCTv3/+zU7A/w5q7QG720wAr/O7/mlZrQBVGVkBovOUAAJ20f4hngkAi6Mu/11GKABsKo7+b/yO/5vfkAAz5af/Sfyb/150DP+YoNr/nO4l/7Pqz//FALP/mqSNAOHEaAAKIxn+0dTy/2H93v64ZeUA3hJ/AaSIh/8ez4z+kmHzAIHAGv7JVCH/bwpO/5NRsv8EBBgAoe7X/waNIQA11w7/KbXQ/+eLnQCzy93//7lxAL3irP9xQtb/yj4t/2ZACP9OrhD+hXVE/wBBoBULAQEAQcAVC7ABJuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQAQf8WC6zxARD9QF0AoGo/ADnTV/4M0roAWLx0/kHYAQD/yD0B2EKU/wD7XAAksuH/AAAA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AZGInAD8dan+keLuAO8XawBttbz/5nAx/kmq7f/nt+P/UNwUAMJrfwF/zWUALjTFAdKrJP9YA1r/OJeNAGC7//8qTsgA/kZGAfR9qADMRIoBfNdGAGZCyP4RNOQAddyP/sv4ewA4Eq7/upek/zPo0AGg5Cv/+R0ZAUS+PwANAAAAAP8AAAAA9QAAAAAAAPsAAAAAAAD9AAAAAPMAAAAABwAAAAAAAwAAAADzAAAAAAUAAAAAAAAAAAsAAAAAAAsAAAAA8wAAAAAAAP0AAAAAAP8AAAAAAwAAAAD1AAAAAAAAAA8AAAAAAP8AAAAA/wAAAAAHAAAAAAUAQayJAgsrAQAAAHbBXwBlcAL/UPyh/vJqxv+FBrIA5N9wAN/uVf4z8xoAPiuL/stBCgBB4IkCC1czTe0AkapW/zYmM//xgGX/KXlK/+xOmwCpl2n+nClIAMJmr//OomX/AAAAAAAAAAAbLnsBEqj9/9Ovl/7D22AAOHa+/v7R9f+ZZH7+6IEV/zW48v/HpN0AQeCKAgsBAQBBgIsCC/EG4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f0xpYnNvZGl1bURSRwAAAAAIybzzZ+YJajunyoSFrme7K/iU/nLzbjzxNh1fOvVPpdGC5q1/Ug5RH2w+K4xoBZtrvUH7q9mDH3khfhMZzeBbIq4o15gvikLNZe8jkUQ3cS87TezP+8C1vNuJgaXbtek4tUjzW8JWORnQBbbxEfFZm08Zr6SCP5IYgW3a1V4cq0ICA6OYqgfYvm9wRQFbgxKMsuROvoUxJOK0/9XDfQxVb4l78nRdvnKxlhY7/rHegDUSxyWnBtyblCZpz3Txm8HSSvGewWmb5OMlTziGR77vtdWMi8adwQ9lnKx3zKEMJHUCK1lvLOktg+SmbqqEdErU+0G93KmwXLVTEYPaiPl2q99m7lJRPpgQMrQtbcYxqD8h+5jIJwOw5A7vvsd/Wb/Cj6g98wvgxiWnCpNHkafVb4ID4FFjygZwbg4K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\"),A=I,J(b).then((I=>WebAssembly.instantiate(I,A))).then((function(A){g(A.instance)}),(A=>{e(`failed to asynchronously prepare wasm: ${A}`),U(A)})),{}}();function q(){function A(){l||(l=!0,B.calledRun=!0,n||(m(S),B.onRuntimeInitialized?.(),function(){if(B.postRun)for(\"function\"==typeof B.postRun&&(B.postRun=[B.postRun]);B.postRun.length;)A=B.postRun.shift(),N.unshift(A);var A;m(N)}()))}G>0||(function(){if(B.preRun)for(\"function\"==typeof B.preRun&&(B.preRun=[B.preRun]);B.preRun.length;)A=B.preRun.shift(),F.unshift(A);var A;m(F)}(),G>0||(B.setStatus?(B.setStatus(\"Running...\"),setTimeout((function(){setTimeout((function(){B.setStatus(\"\")}),1),A()}),1)):A()))}if(B._crypto_aead_aegis128l_keybytes=()=>(B._crypto_aead_aegis128l_keybytes=P.g)(),B._crypto_aead_aegis128l_nsecbytes=()=>(B._crypto_aead_aegis128l_nsecbytes=P.h)(),B._crypto_aead_aegis128l_npubbytes=()=>(B._crypto_aead_aegis128l_npubbytes=P.i)(),B._crypto_aead_aegis128l_abytes=()=>(B._crypto_aead_aegis128l_abytes=P.j)(),B._crypto_aead_aegis128l_messagebytes_max=()=>(B._crypto_aead_aegis128l_messagebytes_max=P.k)(),B._crypto_aead_aegis128l_keygen=A=>(B._crypto_aead_aegis128l_keygen=P.l)(A),B._crypto_aead_aegis128l_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_encrypt=P.m)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis128l_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_aegis128l_encrypt_detached=P.n)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_aegis128l_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_decrypt=P.o)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis128l_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_decrypt_detached=P.p)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_keybytes=()=>(B._crypto_aead_aegis256_keybytes=P.q)(),B._crypto_aead_aegis256_nsecbytes=()=>(B._crypto_aead_aegis256_nsecbytes=P.r)(),B._crypto_aead_aegis256_npubbytes=()=>(B._crypto_aead_aegis256_npubbytes=P.s)(),B._crypto_aead_aegis256_abytes=()=>(B._crypto_aead_aegis256_abytes=P.t)(),B._crypto_aead_aegis256_messagebytes_max=()=>(B._crypto_aead_aegis256_messagebytes_max=P.u)(),B._crypto_aead_aegis256_keygen=A=>(B._crypto_aead_aegis256_keygen=P.v)(A),B._crypto_aead_aegis256_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_encrypt=P.w)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_aegis256_encrypt_detached=P.x)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_aegis256_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_decrypt=P.y)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_decrypt_detached=P.z)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aes256gcm_is_available=()=>(B._crypto_aead_aes256gcm_is_available=P.A)(),B._crypto_aead_chacha20poly1305_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_chacha20poly1305_encrypt_detached=P.B)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_chacha20poly1305_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_encrypt=P.C)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_chacha20poly1305_ietf_encrypt_detached=P.D)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_chacha20poly1305_ietf_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_encrypt=P.E)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_decrypt_detached=P.F)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_decrypt=P.G)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_decrypt_detached=P.H)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_decrypt=P.I)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_keybytes=()=>(B._crypto_aead_chacha20poly1305_ietf_keybytes=P.J)(),B._crypto_aead_chacha20poly1305_ietf_npubbytes=()=>(B._crypto_aead_chacha20poly1305_ietf_npubbytes=P.K)(),B._crypto_aead_chacha20poly1305_ietf_nsecbytes=()=>(B._crypto_aead_chacha20poly1305_ietf_nsecbytes=P.L)(),B._crypto_aead_chacha20poly1305_ietf_abytes=()=>(B._crypto_aead_chacha20poly1305_ietf_abytes=P.M)(),B._crypto_aead_chacha20poly1305_ietf_messagebytes_max=()=>(B._crypto_aead_chacha20poly1305_ietf_messagebytes_max=P.N)(),B._crypto_aead_chacha20poly1305_ietf_keygen=A=>(B._crypto_aead_chacha20poly1305_ietf_keygen=P.O)(A),B._crypto_aead_chacha20poly1305_keybytes=()=>(B._crypto_aead_chacha20poly1305_keybytes=P.P)(),B._crypto_aead_chacha20poly1305_npubbytes=()=>(B._crypto_aead_chacha20poly1305_npubbytes=P.Q)(),B._crypto_aead_chacha20poly1305_nsecbytes=()=>(B._crypto_aead_chacha20poly1305_nsecbytes=P.R)(),B._crypto_aead_chacha20poly1305_abytes=()=>(B._crypto_aead_chacha20poly1305_abytes=P.S)(),B._crypto_aead_chacha20poly1305_messagebytes_max=()=>(B._crypto_aead_chacha20poly1305_messagebytes_max=P.T)(),B._crypto_aead_chacha20poly1305_keygen=A=>(B._crypto_aead_chacha20poly1305_keygen=P.U)(A),B._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=P.V)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_xchacha20poly1305_ietf_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_encrypt=P.W)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=P.X)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_decrypt=P.Y)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_keybytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_keybytes=P.Z)(),B._crypto_aead_xchacha20poly1305_ietf_npubbytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_npubbytes=P._)(),B._crypto_aead_xchacha20poly1305_ietf_nsecbytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_nsecbytes=P.$)(),B._crypto_aead_xchacha20poly1305_ietf_abytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_abytes=P.aa)(),B._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=()=>(B._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=P.ba)(),B._crypto_aead_xchacha20poly1305_ietf_keygen=A=>(B._crypto_aead_xchacha20poly1305_ietf_keygen=P.ca)(A),B._crypto_auth_bytes=()=>(B._crypto_auth_bytes=P.da)(),B._crypto_auth_keybytes=()=>(B._crypto_auth_keybytes=P.ea)(),B._crypto_auth_primitive=()=>(B._crypto_auth_primitive=P.fa)(),B._crypto_auth=(A,I,g,C,Q)=>(B._crypto_auth=P.ga)(A,I,g,C,Q),B._crypto_auth_verify=(A,I,g,C,Q)=>(B._crypto_auth_verify=P.ha)(A,I,g,C,Q),B._crypto_auth_keygen=A=>(B._crypto_auth_keygen=P.ia)(A),B._crypto_auth_hmacsha256_bytes=()=>(B._crypto_auth_hmacsha256_bytes=P.ja)(),B._crypto_auth_hmacsha256_keybytes=()=>(B._crypto_auth_hmacsha256_keybytes=P.ka)(),B._crypto_auth_hmacsha256_statebytes=()=>(B._crypto_auth_hmacsha256_statebytes=P.la)(),B._crypto_auth_hmacsha256_keygen=A=>(B._crypto_auth_hmacsha256_keygen=P.ma)(A),B._crypto_auth_hmacsha256_init=(A,I,g)=>(B._crypto_auth_hmacsha256_init=P.na)(A,I,g),B._crypto_auth_hmacsha256_update=(A,I,g,C)=>(B._crypto_auth_hmacsha256_update=P.oa)(A,I,g,C),B._crypto_auth_hmacsha256_final=(A,I)=>(B._crypto_auth_hmacsha256_final=P.pa)(A,I),B._crypto_auth_hmacsha256=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha256=P.qa)(A,I,g,C,Q),B._crypto_auth_hmacsha256_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha256_verify=P.ra)(A,I,g,C,Q),B._crypto_auth_hmacsha512_bytes=()=>(B._crypto_auth_hmacsha512_bytes=P.sa)(),B._crypto_auth_hmacsha512_keybytes=()=>(B._crypto_auth_hmacsha512_keybytes=P.ta)(),B._crypto_auth_hmacsha512_statebytes=()=>(B._crypto_auth_hmacsha512_statebytes=P.ua)(),B._crypto_auth_hmacsha512_keygen=A=>(B._crypto_auth_hmacsha512_keygen=P.va)(A),B._crypto_auth_hmacsha512_init=(A,I,g)=>(B._crypto_auth_hmacsha512_init=P.wa)(A,I,g),B._crypto_auth_hmacsha512_update=(A,I,g,C)=>(B._crypto_auth_hmacsha512_update=P.xa)(A,I,g,C),B._crypto_auth_hmacsha512_final=(A,I)=>(B._crypto_auth_hmacsha512_final=P.ya)(A,I),B._crypto_auth_hmacsha512=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512=P.za)(A,I,g,C,Q),B._crypto_auth_hmacsha512_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512_verify=P.Aa)(A,I,g,C,Q),B._crypto_auth_hmacsha512256_bytes=()=>(B._crypto_auth_hmacsha512256_bytes=P.Ba)(),B._crypto_auth_hmacsha512256_keybytes=()=>(B._crypto_auth_hmacsha512256_keybytes=P.Ca)(),B._crypto_auth_hmacsha512256_statebytes=()=>(B._crypto_auth_hmacsha512256_statebytes=P.Da)(),B._crypto_auth_hmacsha512256_keygen=A=>(B._crypto_auth_hmacsha512256_keygen=P.Ea)(A),B._crypto_auth_hmacsha512256_init=(A,I,g)=>(B._crypto_auth_hmacsha512256_init=P.Fa)(A,I,g),B._crypto_auth_hmacsha512256_update=(A,I,g,C)=>(B._crypto_auth_hmacsha512256_update=P.Ga)(A,I,g,C),B._crypto_auth_hmacsha512256_final=(A,I)=>(B._crypto_auth_hmacsha512256_final=P.Ha)(A,I),B._crypto_auth_hmacsha512256=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512256=P.Ia)(A,I,g,C,Q),B._crypto_auth_hmacsha512256_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512256_verify=P.Ja)(A,I,g,C,Q),B._crypto_box_seedbytes=()=>(B._crypto_box_seedbytes=P.Ka)(),B._crypto_box_publickeybytes=()=>(B._crypto_box_publickeybytes=P.La)(),B._crypto_box_secretkeybytes=()=>(B._crypto_box_secretkeybytes=P.Ma)(),B._crypto_box_beforenmbytes=()=>(B._crypto_box_beforenmbytes=P.Na)(),B._crypto_box_noncebytes=()=>(B._crypto_box_noncebytes=P.Oa)(),B._crypto_box_zerobytes=()=>(B._crypto_box_zerobytes=P.Pa)(),B._crypto_box_boxzerobytes=()=>(B._crypto_box_boxzerobytes=P.Qa)(),B._crypto_box_macbytes=()=>(B._crypto_box_macbytes=P.Ra)(),B._crypto_box_messagebytes_max=()=>(B._crypto_box_messagebytes_max=P.Sa)(),B._crypto_box_primitive=()=>(B._crypto_box_primitive=P.Ta)(),B._crypto_box_seed_keypair=(A,I,g)=>(B._crypto_box_seed_keypair=P.Ua)(A,I,g),B._crypto_box_keypair=(A,I)=>(B._crypto_box_keypair=P.Va)(A,I),B._crypto_box_beforenm=(A,I,g)=>(B._crypto_box_beforenm=P.Wa)(A,I,g),B._crypto_box_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_afternm=P.Xa)(A,I,g,C,Q,i),B._crypto_box_open_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_open_afternm=P.Ya)(A,I,g,C,Q,i),B._crypto_box=(A,I,g,C,Q,i,o)=>(B._crypto_box=P.Za)(A,I,g,C,Q,i,o),B._crypto_box_open=(A,I,g,C,Q,i,o)=>(B._crypto_box_open=P._a)(A,I,g,C,Q,i,o),B._crypto_box_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_detached_afternm=P.$a)(A,I,g,C,Q,i,o),B._crypto_box_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_detached=P.ab)(A,I,g,C,Q,i,o,E),B._crypto_box_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_easy_afternm=P.bb)(A,I,g,C,Q,i),B._crypto_box_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_easy=P.cb)(A,I,g,C,Q,i,o),B._crypto_box_open_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_open_detached_afternm=P.db)(A,I,g,C,Q,i,o),B._crypto_box_open_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_open_detached=P.eb)(A,I,g,C,Q,i,o,E),B._crypto_box_open_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_open_easy_afternm=P.fb)(A,I,g,C,Q,i),B._crypto_box_open_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_open_easy=P.gb)(A,I,g,C,Q,i,o),B._crypto_box_seal=(A,I,g,C,Q)=>(B._crypto_box_seal=P.hb)(A,I,g,C,Q),B._crypto_box_seal_open=(A,I,g,C,Q,i)=>(B._crypto_box_seal_open=P.ib)(A,I,g,C,Q,i),B._crypto_box_sealbytes=()=>(B._crypto_box_sealbytes=P.jb)(),B._crypto_box_curve25519xsalsa20poly1305_seed_keypair=(A,I,g)=>(B._crypto_box_curve25519xsalsa20poly1305_seed_keypair=P.kb)(A,I,g),B._crypto_box_curve25519xsalsa20poly1305_keypair=(A,I)=>(B._crypto_box_curve25519xsalsa20poly1305_keypair=P.lb)(A,I),B._crypto_box_curve25519xsalsa20poly1305_beforenm=(A,I,g)=>(B._crypto_box_curve25519xsalsa20poly1305_beforenm=P.mb)(A,I,g),B._crypto_box_curve25519xsalsa20poly1305_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xsalsa20poly1305_afternm=P.nb)(A,I,g,C,Q,i),B._crypto_box_curve25519xsalsa20poly1305_open_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xsalsa20poly1305_open_afternm=P.ob)(A,I,g,C,Q,i),B._crypto_box_curve25519xsalsa20poly1305=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xsalsa20poly1305=P.pb)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xsalsa20poly1305_open=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xsalsa20poly1305_open=P.qb)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xsalsa20poly1305_seedbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_seedbytes=P.rb)(),B._crypto_box_curve25519xsalsa20poly1305_publickeybytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_publickeybytes=P.sb)(),B._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=P.tb)(),B._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=P.ub)(),B._crypto_box_curve25519xsalsa20poly1305_noncebytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_noncebytes=P.vb)(),B._crypto_box_curve25519xsalsa20poly1305_zerobytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_zerobytes=P.wb)(),B._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=P.xb)(),B._crypto_box_curve25519xsalsa20poly1305_macbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_macbytes=P.yb)(),B._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=()=>(B._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=P.zb)(),B._crypto_core_hchacha20=(A,I,g,C)=>(B._crypto_core_hchacha20=P.Ab)(A,I,g,C),B._crypto_core_hchacha20_outputbytes=()=>(B._crypto_core_hchacha20_outputbytes=P.Bb)(),B._crypto_core_hchacha20_inputbytes=()=>(B._crypto_core_hchacha20_inputbytes=P.Cb)(),B._crypto_core_hchacha20_keybytes=()=>(B._crypto_core_hchacha20_keybytes=P.Db)(),B._crypto_core_hchacha20_constbytes=()=>(B._crypto_core_hchacha20_constbytes=P.Eb)(),B._crypto_core_hsalsa20=(A,I,g,C)=>(B._crypto_core_hsalsa20=P.Fb)(A,I,g,C),B._crypto_core_hsalsa20_outputbytes=()=>(B._crypto_core_hsalsa20_outputbytes=P.Gb)(),B._crypto_core_hsalsa20_inputbytes=()=>(B._crypto_core_hsalsa20_inputbytes=P.Hb)(),B._crypto_core_hsalsa20_keybytes=()=>(B._crypto_core_hsalsa20_keybytes=P.Ib)(),B._crypto_core_hsalsa20_constbytes=()=>(B._crypto_core_hsalsa20_constbytes=P.Jb)(),B._crypto_core_salsa20=(A,I,g,C)=>(B._crypto_core_salsa20=P.Kb)(A,I,g,C),B._crypto_core_salsa20_outputbytes=()=>(B._crypto_core_salsa20_outputbytes=P.Lb)(),B._crypto_core_salsa20_inputbytes=()=>(B._crypto_core_salsa20_inputbytes=P.Mb)(),B._crypto_core_salsa20_keybytes=()=>(B._crypto_core_salsa20_keybytes=P.Nb)(),B._crypto_core_salsa20_constbytes=()=>(B._crypto_core_salsa20_constbytes=P.Ob)(),B._crypto_core_salsa2012=(A,I,g,C)=>(B._crypto_core_salsa2012=P.Pb)(A,I,g,C),B._crypto_core_salsa2012_outputbytes=()=>(B._crypto_core_salsa2012_outputbytes=P.Qb)(),B._crypto_core_salsa2012_inputbytes=()=>(B._crypto_core_salsa2012_inputbytes=P.Rb)(),B._crypto_core_salsa2012_keybytes=()=>(B._crypto_core_salsa2012_keybytes=P.Sb)(),B._crypto_core_salsa2012_constbytes=()=>(B._crypto_core_salsa2012_constbytes=P.Tb)(),B._crypto_core_salsa208=(A,I,g,C)=>(B._crypto_core_salsa208=P.Ub)(A,I,g,C),B._crypto_core_salsa208_outputbytes=()=>(B._crypto_core_salsa208_outputbytes=P.Vb)(),B._crypto_core_salsa208_inputbytes=()=>(B._crypto_core_salsa208_inputbytes=P.Wb)(),B._crypto_core_salsa208_keybytes=()=>(B._crypto_core_salsa208_keybytes=P.Xb)(),B._crypto_core_salsa208_constbytes=()=>(B._crypto_core_salsa208_constbytes=P.Yb)(),B._crypto_generichash_bytes_min=()=>(B._crypto_generichash_bytes_min=P.Zb)(),B._crypto_generichash_bytes_max=()=>(B._crypto_generichash_bytes_max=P._b)(),B._crypto_generichash_bytes=()=>(B._crypto_generichash_bytes=P.$b)(),B._crypto_generichash_keybytes_min=()=>(B._crypto_generichash_keybytes_min=P.ac)(),B._crypto_generichash_keybytes_max=()=>(B._crypto_generichash_keybytes_max=P.bc)(),B._crypto_generichash_keybytes=()=>(B._crypto_generichash_keybytes=P.cc)(),B._crypto_generichash_primitive=()=>(B._crypto_generichash_primitive=P.dc)(),B._crypto_generichash_statebytes=()=>(B._crypto_generichash_statebytes=P.ec)(),B._crypto_generichash=(A,I,g,C,Q,i,o)=>(B._crypto_generichash=P.fc)(A,I,g,C,Q,i,o),B._crypto_generichash_init=(A,I,g,C)=>(B._crypto_generichash_init=P.gc)(A,I,g,C),B._crypto_generichash_update=(A,I,g,C)=>(B._crypto_generichash_update=P.hc)(A,I,g,C),B._crypto_generichash_final=(A,I,g)=>(B._crypto_generichash_final=P.ic)(A,I,g),B._crypto_generichash_keygen=A=>(B._crypto_generichash_keygen=P.jc)(A),B._crypto_generichash_blake2b_bytes_min=()=>(B._crypto_generichash_blake2b_bytes_min=P.kc)(),B._crypto_generichash_blake2b_bytes_max=()=>(B._crypto_generichash_blake2b_bytes_max=P.lc)(),B._crypto_generichash_blake2b_bytes=()=>(B._crypto_generichash_blake2b_bytes=P.mc)(),B._crypto_generichash_blake2b_keybytes_min=()=>(B._crypto_generichash_blake2b_keybytes_min=P.nc)(),B._crypto_generichash_blake2b_keybytes_max=()=>(B._crypto_generichash_blake2b_keybytes_max=P.oc)(),B._crypto_generichash_blake2b_keybytes=()=>(B._crypto_generichash_blake2b_keybytes=P.pc)(),B._crypto_generichash_blake2b_saltbytes=()=>(B._crypto_generichash_blake2b_saltbytes=P.qc)(),B._crypto_generichash_blake2b_personalbytes=()=>(B._crypto_generichash_blake2b_personalbytes=P.rc)(),B._crypto_generichash_blake2b_statebytes=()=>(B._crypto_generichash_blake2b_statebytes=P.sc)(),B._crypto_generichash_blake2b_keygen=A=>(B._crypto_generichash_blake2b_keygen=P.tc)(A),B._crypto_generichash_blake2b=(A,I,g,C,Q,i,o)=>(B._crypto_generichash_blake2b=P.uc)(A,I,g,C,Q,i,o),B._crypto_generichash_blake2b_salt_personal=(A,I,g,C,Q,i,o,E,a)=>(B._crypto_generichash_blake2b_salt_personal=P.vc)(A,I,g,C,Q,i,o,E,a),B._crypto_generichash_blake2b_init=(A,I,g,C)=>(B._crypto_generichash_blake2b_init=P.wc)(A,I,g,C),B._crypto_generichash_blake2b_init_salt_personal=(A,I,g,C,Q,i)=>(B._crypto_generichash_blake2b_init_salt_personal=P.xc)(A,I,g,C,Q,i),B._crypto_generichash_blake2b_update=(A,I,g,C)=>(B._crypto_generichash_blake2b_update=P.yc)(A,I,g,C),B._crypto_generichash_blake2b_final=(A,I,g)=>(B._crypto_generichash_blake2b_final=P.zc)(A,I,g),B._crypto_hash_bytes=()=>(B._crypto_hash_bytes=P.Ac)(),B._crypto_hash=(A,I,g,C)=>(B._crypto_hash=P.Bc)(A,I,g,C),B._crypto_hash_primitive=()=>(B._crypto_hash_primitive=P.Cc)(),B._crypto_hash_sha256_bytes=()=>(B._crypto_hash_sha256_bytes=P.Dc)(),B._crypto_hash_sha256_statebytes=()=>(B._crypto_hash_sha256_statebytes=P.Ec)(),B._crypto_hash_sha256_init=A=>(B._crypto_hash_sha256_init=P.Fc)(A),B._crypto_hash_sha256_update=(A,I,g,C)=>(B._crypto_hash_sha256_update=P.Gc)(A,I,g,C),B._crypto_hash_sha256_final=(A,I)=>(B._crypto_hash_sha256_final=P.Hc)(A,I),B._crypto_hash_sha256=(A,I,g,C)=>(B._crypto_hash_sha256=P.Ic)(A,I,g,C),B._crypto_hash_sha512_bytes=()=>(B._crypto_hash_sha512_bytes=P.Jc)(),B._crypto_hash_sha512_statebytes=()=>(B._crypto_hash_sha512_statebytes=P.Kc)(),B._crypto_hash_sha512_init=A=>(B._crypto_hash_sha512_init=P.Lc)(A),B._crypto_hash_sha512_update=(A,I,g,C)=>(B._crypto_hash_sha512_update=P.Mc)(A,I,g,C),B._crypto_hash_sha512_final=(A,I)=>(B._crypto_hash_sha512_final=P.Nc)(A,I),B._crypto_hash_sha512=(A,I,g,C)=>(B._crypto_hash_sha512=P.Oc)(A,I,g,C),B._crypto_kdf_blake2b_bytes_min=()=>(B._crypto_kdf_blake2b_bytes_min=P.Pc)(),B._crypto_kdf_blake2b_bytes_max=()=>(B._crypto_kdf_blake2b_bytes_max=P.Qc)(),B._crypto_kdf_blake2b_contextbytes=()=>(B._crypto_kdf_blake2b_contextbytes=P.Rc)(),B._crypto_kdf_blake2b_keybytes=()=>(B._crypto_kdf_blake2b_keybytes=P.Sc)(),B._crypto_kdf_blake2b_derive_from_key=(A,I,g,C,Q,i)=>(B._crypto_kdf_blake2b_derive_from_key=P.Tc)(A,I,g,C,Q,i),B._crypto_kdf_primitive=()=>(B._crypto_kdf_primitive=P.Uc)(),B._crypto_kdf_bytes_min=()=>(B._crypto_kdf_bytes_min=P.Vc)(),B._crypto_kdf_bytes_max=()=>(B._crypto_kdf_bytes_max=P.Wc)(),B._crypto_kdf_contextbytes=()=>(B._crypto_kdf_contextbytes=P.Xc)(),B._crypto_kdf_keybytes=()=>(B._crypto_kdf_keybytes=P.Yc)(),B._crypto_kdf_derive_from_key=(A,I,g,C,Q,i)=>(B._crypto_kdf_derive_from_key=P.Zc)(A,I,g,C,Q,i),B._crypto_kdf_keygen=A=>(B._crypto_kdf_keygen=P._c)(A),B._crypto_kdf_hkdf_sha256_extract_init=(A,I,g)=>(B._crypto_kdf_hkdf_sha256_extract_init=P.$c)(A,I,g),B._crypto_kdf_hkdf_sha256_extract_update=(A,I,g)=>(B._crypto_kdf_hkdf_sha256_extract_update=P.ad)(A,I,g),B._crypto_kdf_hkdf_sha256_extract_final=(A,I)=>(B._crypto_kdf_hkdf_sha256_extract_final=P.bd)(A,I),B._crypto_kdf_hkdf_sha256_extract=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha256_extract=P.cd)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha256_keygen=A=>(B._crypto_kdf_hkdf_sha256_keygen=P.dd)(A),B._crypto_kdf_hkdf_sha256_expand=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha256_expand=P.ed)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha256_keybytes=()=>(B._crypto_kdf_hkdf_sha256_keybytes=P.fd)(),B._crypto_kdf_hkdf_sha256_bytes_min=()=>(B._crypto_kdf_hkdf_sha256_bytes_min=P.gd)(),B._crypto_kdf_hkdf_sha256_bytes_max=()=>(B._crypto_kdf_hkdf_sha256_bytes_max=P.hd)(),B._crypto_kdf_hkdf_sha256_statebytes=()=>(B._crypto_kdf_hkdf_sha256_statebytes=P.id)(),B._crypto_kdf_hkdf_sha512_extract_init=(A,I,g)=>(B._crypto_kdf_hkdf_sha512_extract_init=P.jd)(A,I,g),B._crypto_kdf_hkdf_sha512_extract_update=(A,I,g)=>(B._crypto_kdf_hkdf_sha512_extract_update=P.kd)(A,I,g),B._crypto_kdf_hkdf_sha512_extract_final=(A,I)=>(B._crypto_kdf_hkdf_sha512_extract_final=P.ld)(A,I),B._crypto_kdf_hkdf_sha512_extract=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha512_extract=P.md)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha512_keygen=A=>(B._crypto_kdf_hkdf_sha512_keygen=P.nd)(A),B._crypto_kdf_hkdf_sha512_expand=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha512_expand=P.od)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha512_keybytes=()=>(B._crypto_kdf_hkdf_sha512_keybytes=P.pd)(),B._crypto_kdf_hkdf_sha512_bytes_min=()=>(B._crypto_kdf_hkdf_sha512_bytes_min=P.qd)(),B._crypto_kdf_hkdf_sha512_bytes_max=()=>(B._crypto_kdf_hkdf_sha512_bytes_max=P.rd)(),B._crypto_kdf_hkdf_sha512_statebytes=()=>(B._crypto_kdf_hkdf_sha512_statebytes=P.sd)(),B._crypto_kx_seed_keypair=(A,I,g)=>(B._crypto_kx_seed_keypair=P.td)(A,I,g),B._crypto_kx_keypair=(A,I)=>(B._crypto_kx_keypair=P.ud)(A,I),B._crypto_kx_client_session_keys=(A,I,g,C,Q)=>(B._crypto_kx_client_session_keys=P.vd)(A,I,g,C,Q),B._crypto_kx_server_session_keys=(A,I,g,C,Q)=>(B._crypto_kx_server_session_keys=P.wd)(A,I,g,C,Q),B._crypto_kx_publickeybytes=()=>(B._crypto_kx_publickeybytes=P.xd)(),B._crypto_kx_secretkeybytes=()=>(B._crypto_kx_secretkeybytes=P.yd)(),B._crypto_kx_seedbytes=()=>(B._crypto_kx_seedbytes=P.zd)(),B._crypto_kx_sessionkeybytes=()=>(B._crypto_kx_sessionkeybytes=P.Ad)(),B._crypto_kx_primitive=()=>(B._crypto_kx_primitive=P.Bd)(),B._crypto_onetimeauth_statebytes=()=>(B._crypto_onetimeauth_statebytes=P.Cd)(),B._crypto_onetimeauth_bytes=()=>(B._crypto_onetimeauth_bytes=P.Dd)(),B._crypto_onetimeauth_keybytes=()=>(B._crypto_onetimeauth_keybytes=P.Ed)(),B._crypto_onetimeauth=(A,I,g,C,Q)=>(B._crypto_onetimeauth=P.Fd)(A,I,g,C,Q),B._crypto_onetimeauth_verify=(A,I,g,C,Q)=>(B._crypto_onetimeauth_verify=P.Gd)(A,I,g,C,Q),B._crypto_onetimeauth_init=(A,I)=>(B._crypto_onetimeauth_init=P.Hd)(A,I),B._crypto_onetimeauth_update=(A,I,g,C)=>(B._crypto_onetimeauth_update=P.Id)(A,I,g,C),B._crypto_onetimeauth_final=(A,I)=>(B._crypto_onetimeauth_final=P.Jd)(A,I),B._crypto_onetimeauth_primitive=()=>(B._crypto_onetimeauth_primitive=P.Kd)(),B._crypto_onetimeauth_keygen=A=>(B._crypto_onetimeauth_keygen=P.Ld)(A),B._crypto_onetimeauth_poly1305=(A,I,g,C,Q)=>(B._crypto_onetimeauth_poly1305=P.Md)(A,I,g,C,Q),B._crypto_onetimeauth_poly1305_verify=(A,I,g,C,Q)=>(B._crypto_onetimeauth_poly1305_verify=P.Nd)(A,I,g,C,Q),B._crypto_onetimeauth_poly1305_init=(A,I)=>(B._crypto_onetimeauth_poly1305_init=P.Od)(A,I),B._crypto_onetimeauth_poly1305_update=(A,I,g,C)=>(B._crypto_onetimeauth_poly1305_update=P.Pd)(A,I,g,C),B._crypto_onetimeauth_poly1305_final=(A,I)=>(B._crypto_onetimeauth_poly1305_final=P.Qd)(A,I),B._crypto_onetimeauth_poly1305_bytes=()=>(B._crypto_onetimeauth_poly1305_bytes=P.Rd)(),B._crypto_onetimeauth_poly1305_keybytes=()=>(B._crypto_onetimeauth_poly1305_keybytes=P.Sd)(),B._crypto_onetimeauth_poly1305_statebytes=()=>(B._crypto_onetimeauth_poly1305_statebytes=P.Td)(),B._crypto_onetimeauth_poly1305_keygen=A=>(B._crypto_onetimeauth_poly1305_keygen=P.Ud)(A),B._crypto_pwhash_argon2i_alg_argon2i13=()=>(B._crypto_pwhash_argon2i_alg_argon2i13=P.Vd)(),B._crypto_pwhash_argon2i_bytes_min=()=>(B._crypto_pwhash_argon2i_bytes_min=P.Wd)(),B._crypto_pwhash_argon2i_bytes_max=()=>(B._crypto_pwhash_argon2i_bytes_max=P.Xd)(),B._crypto_pwhash_argon2i_passwd_min=()=>(B._crypto_pwhash_argon2i_passwd_min=P.Yd)(),B._crypto_pwhash_argon2i_passwd_max=()=>(B._crypto_pwhash_argon2i_passwd_max=P.Zd)(),B._crypto_pwhash_argon2i_saltbytes=()=>(B._crypto_pwhash_argon2i_saltbytes=P._d)(),B._crypto_pwhash_argon2i_strbytes=()=>(B._crypto_pwhash_argon2i_strbytes=P.$d)(),B._crypto_pwhash_argon2i_strprefix=()=>(B._crypto_pwhash_argon2i_strprefix=P.ae)(),B._crypto_pwhash_argon2i_opslimit_min=()=>(B._crypto_pwhash_argon2i_opslimit_min=P.be)(),B._crypto_pwhash_argon2i_opslimit_max=()=>(B._crypto_pwhash_argon2i_opslimit_max=P.ce)(),B._crypto_pwhash_argon2i_memlimit_min=()=>(B._crypto_pwhash_argon2i_memlimit_min=P.de)(),B._crypto_pwhash_argon2i_memlimit_max=()=>(B._crypto_pwhash_argon2i_memlimit_max=P.ee)(),B._crypto_pwhash_argon2i_opslimit_interactive=()=>(B._crypto_pwhash_argon2i_opslimit_interactive=P.fe)(),B._crypto_pwhash_argon2i_memlimit_interactive=()=>(B._crypto_pwhash_argon2i_memlimit_interactive=P.ge)(),B._crypto_pwhash_argon2i_opslimit_moderate=()=>(B._crypto_pwhash_argon2i_opslimit_moderate=P.he)(),B._crypto_pwhash_argon2i_memlimit_moderate=()=>(B._crypto_pwhash_argon2i_memlimit_moderate=P.ie)(),B._crypto_pwhash_argon2i_opslimit_sensitive=()=>(B._crypto_pwhash_argon2i_opslimit_sensitive=P.je)(),B._crypto_pwhash_argon2i_memlimit_sensitive=()=>(B._crypto_pwhash_argon2i_memlimit_sensitive=P.ke)(),B._crypto_pwhash_argon2i=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash_argon2i=P.le)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_argon2i_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_argon2i_str=P.me)(A,I,g,C,Q,i,o),B._crypto_pwhash_argon2i_str_verify=(A,I,g,C)=>(B._crypto_pwhash_argon2i_str_verify=P.ne)(A,I,g,C),B._crypto_pwhash_argon2i_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_argon2i_str_needs_rehash=P.oe)(A,I,g,C),B._crypto_pwhash_argon2id_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_argon2id_str_needs_rehash=P.pe)(A,I,g,C),B._crypto_pwhash_argon2id_alg_argon2id13=()=>(B._crypto_pwhash_argon2id_alg_argon2id13=P.qe)(),B._crypto_pwhash_argon2id_bytes_min=()=>(B._crypto_pwhash_argon2id_bytes_min=P.re)(),B._crypto_pwhash_argon2id_bytes_max=()=>(B._crypto_pwhash_argon2id_bytes_max=P.se)(),B._crypto_pwhash_argon2id_passwd_min=()=>(B._crypto_pwhash_argon2id_passwd_min=P.te)(),B._crypto_pwhash_argon2id_passwd_max=()=>(B._crypto_pwhash_argon2id_passwd_max=P.ue)(),B._crypto_pwhash_argon2id_saltbytes=()=>(B._crypto_pwhash_argon2id_saltbytes=P.ve)(),B._crypto_pwhash_argon2id_strbytes=()=>(B._crypto_pwhash_argon2id_strbytes=P.we)(),B._crypto_pwhash_argon2id_strprefix=()=>(B._crypto_pwhash_argon2id_strprefix=P.xe)(),B._crypto_pwhash_argon2id_opslimit_min=()=>(B._crypto_pwhash_argon2id_opslimit_min=P.ye)(),B._crypto_pwhash_argon2id_opslimit_max=()=>(B._crypto_pwhash_argon2id_opslimit_max=P.ze)(),B._crypto_pwhash_argon2id_memlimit_min=()=>(B._crypto_pwhash_argon2id_memlimit_min=P.Ae)(),B._crypto_pwhash_argon2id_memlimit_max=()=>(B._crypto_pwhash_argon2id_memlimit_max=P.Be)(),B._crypto_pwhash_argon2id_opslimit_interactive=()=>(B._crypto_pwhash_argon2id_opslimit_interactive=P.Ce)(),B._crypto_pwhash_argon2id_memlimit_interactive=()=>(B._crypto_pwhash_argon2id_memlimit_interactive=P.De)(),B._crypto_pwhash_argon2id_opslimit_moderate=()=>(B._crypto_pwhash_argon2id_opslimit_moderate=P.Ee)(),B._crypto_pwhash_argon2id_memlimit_moderate=()=>(B._crypto_pwhash_argon2id_memlimit_moderate=P.Fe)(),B._crypto_pwhash_argon2id_opslimit_sensitive=()=>(B._crypto_pwhash_argon2id_opslimit_sensitive=P.Ge)(),B._crypto_pwhash_argon2id_memlimit_sensitive=()=>(B._crypto_pwhash_argon2id_memlimit_sensitive=P.He)(),B._crypto_pwhash_argon2id=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash_argon2id=P.Ie)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_argon2id_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_argon2id_str=P.Je)(A,I,g,C,Q,i,o),B._crypto_pwhash_argon2id_str_verify=(A,I,g,C)=>(B._crypto_pwhash_argon2id_str_verify=P.Ke)(A,I,g,C),B._crypto_pwhash_alg_argon2i13=()=>(B._crypto_pwhash_alg_argon2i13=P.Le)(),B._crypto_pwhash_alg_argon2id13=()=>(B._crypto_pwhash_alg_argon2id13=P.Me)(),B._crypto_pwhash_alg_default=()=>(B._crypto_pwhash_alg_default=P.Ne)(),B._crypto_pwhash_bytes_min=()=>(B._crypto_pwhash_bytes_min=P.Oe)(),B._crypto_pwhash_bytes_max=()=>(B._crypto_pwhash_bytes_max=P.Pe)(),B._crypto_pwhash_passwd_min=()=>(B._crypto_pwhash_passwd_min=P.Qe)(),B._crypto_pwhash_passwd_max=()=>(B._crypto_pwhash_passwd_max=P.Re)(),B._crypto_pwhash_saltbytes=()=>(B._crypto_pwhash_saltbytes=P.Se)(),B._crypto_pwhash_strbytes=()=>(B._crypto_pwhash_strbytes=P.Te)(),B._crypto_pwhash_strprefix=()=>(B._crypto_pwhash_strprefix=P.Ue)(),B._crypto_pwhash_opslimit_min=()=>(B._crypto_pwhash_opslimit_min=P.Ve)(),B._crypto_pwhash_opslimit_max=()=>(B._crypto_pwhash_opslimit_max=P.We)(),B._crypto_pwhash_memlimit_min=()=>(B._crypto_pwhash_memlimit_min=P.Xe)(),B._crypto_pwhash_memlimit_max=()=>(B._crypto_pwhash_memlimit_max=P.Ye)(),B._crypto_pwhash_opslimit_interactive=()=>(B._crypto_pwhash_opslimit_interactive=P.Ze)(),B._crypto_pwhash_memlimit_interactive=()=>(B._crypto_pwhash_memlimit_interactive=P._e)(),B._crypto_pwhash_opslimit_moderate=()=>(B._crypto_pwhash_opslimit_moderate=P.$e)(),B._crypto_pwhash_memlimit_moderate=()=>(B._crypto_pwhash_memlimit_moderate=P.af)(),B._crypto_pwhash_opslimit_sensitive=()=>(B._crypto_pwhash_opslimit_sensitive=P.bf)(),B._crypto_pwhash_memlimit_sensitive=()=>(B._crypto_pwhash_memlimit_sensitive=P.cf)(),B._crypto_pwhash=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash=P.df)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_str=P.ef)(A,I,g,C,Q,i,o),B._crypto_pwhash_str_alg=(A,I,g,C,Q,i,o,E)=>(B._crypto_pwhash_str_alg=P.ff)(A,I,g,C,Q,i,o,E),B._crypto_pwhash_str_verify=(A,I,g,C)=>(B._crypto_pwhash_str_verify=P.gf)(A,I,g,C),B._crypto_pwhash_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_str_needs_rehash=P.hf)(A,I,g,C),B._crypto_pwhash_primitive=()=>(B._crypto_pwhash_primitive=P.jf)(),B._crypto_scalarmult_primitive=()=>(B._crypto_scalarmult_primitive=P.kf)(),B._crypto_scalarmult_base=(A,I)=>(B._crypto_scalarmult_base=P.lf)(A,I),B._crypto_scalarmult=(A,I,g)=>(B._crypto_scalarmult=P.mf)(A,I,g),B._crypto_scalarmult_bytes=()=>(B._crypto_scalarmult_bytes=P.nf)(),B._crypto_scalarmult_scalarbytes=()=>(B._crypto_scalarmult_scalarbytes=P.of)(),B._crypto_scalarmult_curve25519=(A,I,g)=>(B._crypto_scalarmult_curve25519=P.pf)(A,I,g),B._crypto_scalarmult_curve25519_base=(A,I)=>(B._crypto_scalarmult_curve25519_base=P.qf)(A,I),B._crypto_scalarmult_curve25519_bytes=()=>(B._crypto_scalarmult_curve25519_bytes=P.rf)(),B._crypto_scalarmult_curve25519_scalarbytes=()=>(B._crypto_scalarmult_curve25519_scalarbytes=P.sf)(),B._crypto_secretbox_keybytes=()=>(B._crypto_secretbox_keybytes=P.tf)(),B._crypto_secretbox_noncebytes=()=>(B._crypto_secretbox_noncebytes=P.uf)(),B._crypto_secretbox_zerobytes=()=>(B._crypto_secretbox_zerobytes=P.vf)(),B._crypto_secretbox_boxzerobytes=()=>(B._crypto_secretbox_boxzerobytes=P.wf)(),B._crypto_secretbox_macbytes=()=>(B._crypto_secretbox_macbytes=P.xf)(),B._crypto_secretbox_messagebytes_max=()=>(B._crypto_secretbox_messagebytes_max=P.yf)(),B._crypto_secretbox_primitive=()=>(B._crypto_secretbox_primitive=P.zf)(),B._crypto_secretbox=(A,I,g,C,Q,i)=>(B._crypto_secretbox=P.Af)(A,I,g,C,Q,i),B._crypto_secretbox_open=(A,I,g,C,Q,i)=>(B._crypto_secretbox_open=P.Bf)(A,I,g,C,Q,i),B._crypto_secretbox_keygen=A=>(B._crypto_secretbox_keygen=P.Cf)(A),B._crypto_secretbox_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_detached=P.Df)(A,I,g,C,Q,i,o),B._crypto_secretbox_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_easy=P.Ef)(A,I,g,C,Q,i),B._crypto_secretbox_open_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_open_detached=P.Ff)(A,I,g,C,Q,i,o),B._crypto_secretbox_open_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_open_easy=P.Gf)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xsalsa20poly1305=P.Hf)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305_open=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xsalsa20poly1305_open=P.If)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305_keybytes=()=>(B._crypto_secretbox_xsalsa20poly1305_keybytes=P.Jf)(),B._crypto_secretbox_xsalsa20poly1305_noncebytes=()=>(B._crypto_secretbox_xsalsa20poly1305_noncebytes=P.Kf)(),B._crypto_secretbox_xsalsa20poly1305_zerobytes=()=>(B._crypto_secretbox_xsalsa20poly1305_zerobytes=P.Lf)(),B._crypto_secretbox_xsalsa20poly1305_boxzerobytes=()=>(B._crypto_secretbox_xsalsa20poly1305_boxzerobytes=P.Mf)(),B._crypto_secretbox_xsalsa20poly1305_macbytes=()=>(B._crypto_secretbox_xsalsa20poly1305_macbytes=P.Nf)(),B._crypto_secretbox_xsalsa20poly1305_messagebytes_max=()=>(B._crypto_secretbox_xsalsa20poly1305_messagebytes_max=P.Of)(),B._crypto_secretbox_xsalsa20poly1305_keygen=A=>(B._crypto_secretbox_xsalsa20poly1305_keygen=P.Pf)(A),B._crypto_secretstream_xchacha20poly1305_keygen=A=>(B._crypto_secretstream_xchacha20poly1305_keygen=P.Qf)(A),B._crypto_secretstream_xchacha20poly1305_init_push=(A,I,g)=>(B._crypto_secretstream_xchacha20poly1305_init_push=P.Rf)(A,I,g),B._crypto_secretstream_xchacha20poly1305_init_pull=(A,I,g)=>(B._crypto_secretstream_xchacha20poly1305_init_pull=P.Sf)(A,I,g),B._crypto_secretstream_xchacha20poly1305_rekey=A=>(B._crypto_secretstream_xchacha20poly1305_rekey=P.Tf)(A),B._crypto_secretstream_xchacha20poly1305_push=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_secretstream_xchacha20poly1305_push=P.Uf)(A,I,g,C,Q,i,o,E,a,_),B._crypto_secretstream_xchacha20poly1305_pull=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_secretstream_xchacha20poly1305_pull=P.Vf)(A,I,g,C,Q,i,o,E,a,_),B._crypto_secretstream_xchacha20poly1305_statebytes=()=>(B._crypto_secretstream_xchacha20poly1305_statebytes=P.Wf)(),B._crypto_secretstream_xchacha20poly1305_abytes=()=>(B._crypto_secretstream_xchacha20poly1305_abytes=P.Xf)(),B._crypto_secretstream_xchacha20poly1305_headerbytes=()=>(B._crypto_secretstream_xchacha20poly1305_headerbytes=P.Yf)(),B._crypto_secretstream_xchacha20poly1305_keybytes=()=>(B._crypto_secretstream_xchacha20poly1305_keybytes=P.Zf)(),B._crypto_secretstream_xchacha20poly1305_messagebytes_max=()=>(B._crypto_secretstream_xchacha20poly1305_messagebytes_max=P._f)(),B._crypto_secretstream_xchacha20poly1305_tag_message=()=>(B._crypto_secretstream_xchacha20poly1305_tag_message=P.$f)(),B._crypto_secretstream_xchacha20poly1305_tag_push=()=>(B._crypto_secretstream_xchacha20poly1305_tag_push=P.ag)(),B._crypto_secretstream_xchacha20poly1305_tag_rekey=()=>(B._crypto_secretstream_xchacha20poly1305_tag_rekey=P.bg)(),B._crypto_secretstream_xchacha20poly1305_tag_final=()=>(B._crypto_secretstream_xchacha20poly1305_tag_final=P.cg)(),B._crypto_shorthash_bytes=()=>(B._crypto_shorthash_bytes=P.dg)(),B._crypto_shorthash_keybytes=()=>(B._crypto_shorthash_keybytes=P.eg)(),B._crypto_shorthash_primitive=()=>(B._crypto_shorthash_primitive=P.fg)(),B._crypto_shorthash=(A,I,g,C,Q)=>(B._crypto_shorthash=P.gg)(A,I,g,C,Q),B._crypto_shorthash_keygen=A=>(B._crypto_shorthash_keygen=P.hg)(A),B._crypto_shorthash_siphash24_bytes=()=>(B._crypto_shorthash_siphash24_bytes=P.ig)(),B._crypto_shorthash_siphash24_keybytes=()=>(B._crypto_shorthash_siphash24_keybytes=P.jg)(),B._crypto_shorthash_siphash24=(A,I,g,C,Q)=>(B._crypto_shorthash_siphash24=P.kg)(A,I,g,C,Q),B._crypto_sign_statebytes=()=>(B._crypto_sign_statebytes=P.lg)(),B._crypto_sign_bytes=()=>(B._crypto_sign_bytes=P.mg)(),B._crypto_sign_seedbytes=()=>(B._crypto_sign_seedbytes=P.ng)(),B._crypto_sign_publickeybytes=()=>(B._crypto_sign_publickeybytes=P.og)(),B._crypto_sign_secretkeybytes=()=>(B._crypto_sign_secretkeybytes=P.pg)(),B._crypto_sign_messagebytes_max=()=>(B._crypto_sign_messagebytes_max=P.qg)(),B._crypto_sign_primitive=()=>(B._crypto_sign_primitive=P.rg)(),B._crypto_sign_seed_keypair=(A,I,g)=>(B._crypto_sign_seed_keypair=P.sg)(A,I,g),B._crypto_sign_keypair=(A,I)=>(B._crypto_sign_keypair=P.tg)(A,I),B._crypto_sign=(A,I,g,C,Q,i)=>(B._crypto_sign=P.ug)(A,I,g,C,Q,i),B._crypto_sign_open=(A,I,g,C,Q,i)=>(B._crypto_sign_open=P.vg)(A,I,g,C,Q,i),B._crypto_sign_detached=(A,I,g,C,Q,i)=>(B._crypto_sign_detached=P.wg)(A,I,g,C,Q,i),B._crypto_sign_verify_detached=(A,I,g,C,Q)=>(B._crypto_sign_verify_detached=P.xg)(A,I,g,C,Q),B._crypto_sign_init=A=>(B._crypto_sign_init=P.yg)(A),B._crypto_sign_update=(A,I,g,C)=>(B._crypto_sign_update=P.zg)(A,I,g,C),B._crypto_sign_final_create=(A,I,g,C)=>(B._crypto_sign_final_create=P.Ag)(A,I,g,C),B._crypto_sign_final_verify=(A,I,g)=>(B._crypto_sign_final_verify=P.Bg)(A,I,g),B._crypto_sign_ed25519ph_statebytes=()=>(B._crypto_sign_ed25519ph_statebytes=P.Cg)(),B._crypto_sign_ed25519_bytes=()=>(B._crypto_sign_ed25519_bytes=P.Dg)(),B._crypto_sign_ed25519_seedbytes=()=>(B._crypto_sign_ed25519_seedbytes=P.Eg)(),B._crypto_sign_ed25519_publickeybytes=()=>(B._crypto_sign_ed25519_publickeybytes=P.Fg)(),B._crypto_sign_ed25519_secretkeybytes=()=>(B._crypto_sign_ed25519_secretkeybytes=P.Gg)(),B._crypto_sign_ed25519_messagebytes_max=()=>(B._crypto_sign_ed25519_messagebytes_max=P.Hg)(),B._crypto_sign_ed25519_sk_to_seed=(A,I)=>(B._crypto_sign_ed25519_sk_to_seed=P.Ig)(A,I),B._crypto_sign_ed25519_sk_to_pk=(A,I)=>(B._crypto_sign_ed25519_sk_to_pk=P.Jg)(A,I),B._crypto_sign_ed25519ph_init=A=>(B._crypto_sign_ed25519ph_init=P.Kg)(A),B._crypto_sign_ed25519ph_update=(A,I,g,C)=>(B._crypto_sign_ed25519ph_update=P.Lg)(A,I,g,C),B._crypto_sign_ed25519ph_final_create=(A,I,g,C)=>(B._crypto_sign_ed25519ph_final_create=P.Mg)(A,I,g,C),B._crypto_sign_ed25519ph_final_verify=(A,I,g)=>(B._crypto_sign_ed25519ph_final_verify=P.Ng)(A,I,g),B._crypto_sign_ed25519_seed_keypair=(A,I,g)=>(B._crypto_sign_ed25519_seed_keypair=P.Og)(A,I,g),B._crypto_sign_ed25519_keypair=(A,I)=>(B._crypto_sign_ed25519_keypair=P.Pg)(A,I),B._crypto_sign_ed25519_pk_to_curve25519=(A,I)=>(B._crypto_sign_ed25519_pk_to_curve25519=P.Qg)(A,I),B._crypto_sign_ed25519_sk_to_curve25519=(A,I)=>(B._crypto_sign_ed25519_sk_to_curve25519=P.Rg)(A,I),B._crypto_sign_ed25519_verify_detached=(A,I,g,C,Q)=>(B._crypto_sign_ed25519_verify_detached=P.Sg)(A,I,g,C,Q),B._crypto_sign_ed25519_open=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519_open=P.Tg)(A,I,g,C,Q,i),B._crypto_sign_ed25519_detached=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519_detached=P.Ug)(A,I,g,C,Q,i),B._crypto_sign_ed25519=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519=P.Vg)(A,I,g,C,Q,i),B._crypto_stream_chacha20_keybytes=()=>(B._crypto_stream_chacha20_keybytes=P.Wg)(),B._crypto_stream_chacha20_noncebytes=()=>(B._crypto_stream_chacha20_noncebytes=P.Xg)(),B._crypto_stream_chacha20_messagebytes_max=()=>(B._crypto_stream_chacha20_messagebytes_max=P.Yg)(),B._crypto_stream_chacha20_ietf_keybytes=()=>(B._crypto_stream_chacha20_ietf_keybytes=P.Zg)(),B._crypto_stream_chacha20_ietf_noncebytes=()=>(B._crypto_stream_chacha20_ietf_noncebytes=P._g)(),B._crypto_stream_chacha20_ietf_messagebytes_max=()=>(B._crypto_stream_chacha20_ietf_messagebytes_max=P.$g)(),B._crypto_stream_chacha20=(A,I,g,C,Q)=>(B._crypto_stream_chacha20=P.ah)(A,I,g,C,Q),B._crypto_stream_chacha20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_chacha20_xor_ic=P.bh)(A,I,g,C,Q,i,o,E),B._crypto_stream_chacha20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_chacha20_xor=P.ch)(A,I,g,C,Q,i),B._crypto_stream_chacha20_ietf=(A,I,g,C,Q)=>(B._crypto_stream_chacha20_ietf=P.dh)(A,I,g,C,Q),B._crypto_stream_chacha20_ietf_xor_ic=(A,I,g,C,Q,i,o)=>(B._crypto_stream_chacha20_ietf_xor_ic=P.eh)(A,I,g,C,Q,i,o),B._crypto_stream_chacha20_ietf_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_chacha20_ietf_xor=P.fh)(A,I,g,C,Q,i),B._crypto_stream_chacha20_ietf_keygen=A=>(B._crypto_stream_chacha20_ietf_keygen=P.gh)(A),B._crypto_stream_chacha20_keygen=A=>(B._crypto_stream_chacha20_keygen=P.hh)(A),B._crypto_stream_keybytes=()=>(B._crypto_stream_keybytes=P.ih)(),B._crypto_stream_noncebytes=()=>(B._crypto_stream_noncebytes=P.jh)(),B._crypto_stream_messagebytes_max=()=>(B._crypto_stream_messagebytes_max=P.kh)(),B._crypto_stream_primitive=()=>(B._crypto_stream_primitive=P.lh)(),B._crypto_stream=(A,I,g,C,Q)=>(B._crypto_stream=P.mh)(A,I,g,C,Q),B._crypto_stream_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xor=P.nh)(A,I,g,C,Q,i),B._crypto_stream_keygen=A=>(B._crypto_stream_keygen=P.oh)(A),B._crypto_stream_salsa20_keybytes=()=>(B._crypto_stream_salsa20_keybytes=P.ph)(),B._crypto_stream_salsa20_noncebytes=()=>(B._crypto_stream_salsa20_noncebytes=P.qh)(),B._crypto_stream_salsa20_messagebytes_max=()=>(B._crypto_stream_salsa20_messagebytes_max=P.rh)(),B._crypto_stream_salsa20=(A,I,g,C,Q)=>(B._crypto_stream_salsa20=P.sh)(A,I,g,C,Q),B._crypto_stream_salsa20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_salsa20_xor_ic=P.th)(A,I,g,C,Q,i,o,E),B._crypto_stream_salsa20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa20_xor=P.uh)(A,I,g,C,Q,i),B._crypto_stream_salsa20_keygen=A=>(B._crypto_stream_salsa20_keygen=P.vh)(A),B._crypto_stream_xsalsa20=(A,I,g,C,Q)=>(B._crypto_stream_xsalsa20=P.wh)(A,I,g,C,Q),B._crypto_stream_xsalsa20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_xsalsa20_xor_ic=P.xh)(A,I,g,C,Q,i,o,E),B._crypto_stream_xsalsa20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xsalsa20_xor=P.yh)(A,I,g,C,Q,i),B._crypto_stream_xsalsa20_keybytes=()=>(B._crypto_stream_xsalsa20_keybytes=P.zh)(),B._crypto_stream_xsalsa20_noncebytes=()=>(B._crypto_stream_xsalsa20_noncebytes=P.Ah)(),B._crypto_stream_xsalsa20_messagebytes_max=()=>(B._crypto_stream_xsalsa20_messagebytes_max=P.Bh)(),B._crypto_stream_xsalsa20_keygen=A=>(B._crypto_stream_xsalsa20_keygen=P.Ch)(A),B._crypto_verify_16_bytes=()=>(B._crypto_verify_16_bytes=P.Dh)(),B._crypto_verify_32_bytes=()=>(B._crypto_verify_32_bytes=P.Eh)(),B._crypto_verify_64_bytes=()=>(B._crypto_verify_64_bytes=P.Fh)(),B._crypto_verify_16=(A,I)=>(B._crypto_verify_16=P.Gh)(A,I),B._crypto_verify_32=(A,I)=>(B._crypto_verify_32=P.Hh)(A,I),B._crypto_verify_64=(A,I)=>(B._crypto_verify_64=P.Ih)(A,I),B._randombytes_implementation_name=()=>(B._randombytes_implementation_name=P.Jh)(),B._randombytes_random=()=>(B._randombytes_random=P.Kh)(),B._randombytes_stir=()=>(B._randombytes_stir=P.Lh)(),B._randombytes_uniform=A=>(B._randombytes_uniform=P.Mh)(A),B._randombytes_buf=(A,I)=>(B._randombytes_buf=P.Nh)(A,I),B._randombytes_buf_deterministic=(A,I,g)=>(B._randombytes_buf_deterministic=P.Oh)(A,I,g),B._randombytes_seedbytes=()=>(B._randombytes_seedbytes=P.Ph)(),B._randombytes_close=()=>(B._randombytes_close=P.Qh)(),B._randombytes=(A,I,g)=>(B._randombytes=P.Rh)(A,I,g),B._sodium_bin2hex=(A,I,g,C)=>(B._sodium_bin2hex=P.Sh)(A,I,g,C),B._sodium_hex2bin=(A,I,g,C,Q,i,o)=>(B._sodium_hex2bin=P.Th)(A,I,g,C,Q,i,o),B._sodium_base64_encoded_len=(A,I)=>(B._sodium_base64_encoded_len=P.Uh)(A,I),B._sodium_bin2base64=(A,I,g,C,Q)=>(B._sodium_bin2base64=P.Vh)(A,I,g,C,Q),B._sodium_base642bin=(A,I,g,C,Q,i,o,E)=>(B._sodium_base642bin=P.Wh)(A,I,g,C,Q,i,o,E),B._sodium_init=()=>(B._sodium_init=P.Xh)(),B._sodium_pad=(A,I,g,C,Q)=>(B._sodium_pad=P.Yh)(A,I,g,C,Q),B._sodium_unpad=(A,I,g,C)=>(B._sodium_unpad=P.Zh)(A,I,g,C),B._sodium_version_string=()=>(B._sodium_version_string=P._h)(),B._sodium_library_version_major=()=>(B._sodium_library_version_major=P.$h)(),B._sodium_library_version_minor=()=>(B._sodium_library_version_minor=P.ai)(),B._sodium_library_minimal=()=>(B._sodium_library_minimal=P.bi)(),B._crypto_box_curve25519xchacha20poly1305_seed_keypair=(A,I,g)=>(B._crypto_box_curve25519xchacha20poly1305_seed_keypair=P.ci)(A,I,g),B._crypto_box_curve25519xchacha20poly1305_keypair=(A,I)=>(B._crypto_box_curve25519xchacha20poly1305_keypair=P.di)(A,I),B._crypto_box_curve25519xchacha20poly1305_beforenm=(A,I,g)=>(B._crypto_box_curve25519xchacha20poly1305_beforenm=P.ei)(A,I,g),B._crypto_box_curve25519xchacha20poly1305_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_detached_afternm=P.fi)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_curve25519xchacha20poly1305_detached=P.gi)(A,I,g,C,Q,i,o,E),B._crypto_box_curve25519xchacha20poly1305_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_easy_afternm=P.hi)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_easy=P.ii)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=P.ji)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_open_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_curve25519xchacha20poly1305_open_detached=P.ki)(A,I,g,C,Q,i,o,E),B._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=P.li)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_open_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_open_easy=P.mi)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_seedbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_seedbytes=P.ni)(),B._crypto_box_curve25519xchacha20poly1305_publickeybytes=()=>(B._crypto_box_curve25519xchacha20poly1305_publickeybytes=P.oi)(),B._crypto_box_curve25519xchacha20poly1305_secretkeybytes=()=>(B._crypto_box_curve25519xchacha20poly1305_secretkeybytes=P.pi)(),B._crypto_box_curve25519xchacha20poly1305_beforenmbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_beforenmbytes=P.qi)(),B._crypto_box_curve25519xchacha20poly1305_noncebytes=()=>(B._crypto_box_curve25519xchacha20poly1305_noncebytes=P.ri)(),B._crypto_box_curve25519xchacha20poly1305_macbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_macbytes=P.si)(),B._crypto_box_curve25519xchacha20poly1305_messagebytes_max=()=>(B._crypto_box_curve25519xchacha20poly1305_messagebytes_max=P.ti)(),B._crypto_box_curve25519xchacha20poly1305_seal=(A,I,g,C,Q)=>(B._crypto_box_curve25519xchacha20poly1305_seal=P.ui)(A,I,g,C,Q),B._crypto_box_curve25519xchacha20poly1305_seal_open=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_seal_open=P.vi)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_sealbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_sealbytes=P.wi)(),B._crypto_core_ed25519_is_valid_point=A=>(B._crypto_core_ed25519_is_valid_point=P.xi)(A),B._crypto_core_ed25519_add=(A,I,g)=>(B._crypto_core_ed25519_add=P.yi)(A,I,g),B._crypto_core_ed25519_sub=(A,I,g)=>(B._crypto_core_ed25519_sub=P.zi)(A,I,g),B._crypto_core_ed25519_from_uniform=(A,I)=>(B._crypto_core_ed25519_from_uniform=P.Ai)(A,I),B._crypto_core_ed25519_random=A=>(B._crypto_core_ed25519_random=P.Bi)(A),B._crypto_core_ed25519_scalar_random=A=>(B._crypto_core_ed25519_scalar_random=P.Ci)(A),B._crypto_core_ed25519_scalar_invert=(A,I)=>(B._crypto_core_ed25519_scalar_invert=P.Di)(A,I),B._crypto_core_ed25519_scalar_negate=(A,I)=>(B._crypto_core_ed25519_scalar_negate=P.Ei)(A,I),B._crypto_core_ed25519_scalar_complement=(A,I)=>(B._crypto_core_ed25519_scalar_complement=P.Fi)(A,I),B._crypto_core_ed25519_scalar_add=(A,I,g)=>(B._crypto_core_ed25519_scalar_add=P.Gi)(A,I,g),B._crypto_core_ed25519_scalar_reduce=(A,I)=>(B._crypto_core_ed25519_scalar_reduce=P.Hi)(A,I),B._crypto_core_ed25519_scalar_sub=(A,I,g)=>(B._crypto_core_ed25519_scalar_sub=P.Ii)(A,I,g),B._crypto_core_ed25519_scalar_mul=(A,I,g)=>(B._crypto_core_ed25519_scalar_mul=P.Ji)(A,I,g),B._crypto_core_ed25519_bytes=()=>(B._crypto_core_ed25519_bytes=P.Ki)(),B._crypto_core_ed25519_nonreducedscalarbytes=()=>(B._crypto_core_ed25519_nonreducedscalarbytes=P.Li)(),B._crypto_core_ed25519_uniformbytes=()=>(B._crypto_core_ed25519_uniformbytes=P.Mi)(),B._crypto_core_ed25519_hashbytes=()=>(B._crypto_core_ed25519_hashbytes=P.Ni)(),B._crypto_core_ed25519_scalarbytes=()=>(B._crypto_core_ed25519_scalarbytes=P.Oi)(),B._crypto_core_ristretto255_is_valid_point=A=>(B._crypto_core_ristretto255_is_valid_point=P.Pi)(A),B._crypto_core_ristretto255_add=(A,I,g)=>(B._crypto_core_ristretto255_add=P.Qi)(A,I,g),B._crypto_core_ristretto255_sub=(A,I,g)=>(B._crypto_core_ristretto255_sub=P.Ri)(A,I,g),B._crypto_core_ristretto255_from_hash=(A,I)=>(B._crypto_core_ristretto255_from_hash=P.Si)(A,I),B._crypto_core_ristretto255_random=A=>(B._crypto_core_ristretto255_random=P.Ti)(A),B._crypto_core_ristretto255_scalar_random=A=>(B._crypto_core_ristretto255_scalar_random=P.Ui)(A),B._crypto_core_ristretto255_scalar_invert=(A,I)=>(B._crypto_core_ristretto255_scalar_invert=P.Vi)(A,I),B._crypto_core_ristretto255_scalar_negate=(A,I)=>(B._crypto_core_ristretto255_scalar_negate=P.Wi)(A,I),B._crypto_core_ristretto255_scalar_complement=(A,I)=>(B._crypto_core_ristretto255_scalar_complement=P.Xi)(A,I),B._crypto_core_ristretto255_scalar_add=(A,I,g)=>(B._crypto_core_ristretto255_scalar_add=P.Yi)(A,I,g),B._crypto_core_ristretto255_scalar_sub=(A,I,g)=>(B._crypto_core_ristretto255_scalar_sub=P.Zi)(A,I,g),B._crypto_core_ristretto255_scalar_mul=(A,I,g)=>(B._crypto_core_ristretto255_scalar_mul=P._i)(A,I,g),B._crypto_core_ristretto255_scalar_reduce=(A,I)=>(B._crypto_core_ristretto255_scalar_reduce=P.$i)(A,I),B._crypto_core_ristretto255_bytes=()=>(B._crypto_core_ristretto255_bytes=P.aj)(),B._crypto_core_ristretto255_nonreducedscalarbytes=()=>(B._crypto_core_ristretto255_nonreducedscalarbytes=P.bj)(),B._crypto_core_ristretto255_hashbytes=()=>(B._crypto_core_ristretto255_hashbytes=P.cj)(),B._crypto_core_ristretto255_scalarbytes=()=>(B._crypto_core_ristretto255_scalarbytes=P.dj)(),B._crypto_pwhash_scryptsalsa208sha256_ll=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_pwhash_scryptsalsa208sha256_ll=P.ej)(A,I,g,C,Q,i,o,E,a,_),B._crypto_pwhash_scryptsalsa208sha256_bytes_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_bytes_min=P.fj)(),B._crypto_pwhash_scryptsalsa208sha256_bytes_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_bytes_max=P.gj)(),B._crypto_pwhash_scryptsalsa208sha256_passwd_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_passwd_min=P.hj)(),B._crypto_pwhash_scryptsalsa208sha256_passwd_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_passwd_max=P.ij)(),B._crypto_pwhash_scryptsalsa208sha256_saltbytes=()=>(B._crypto_pwhash_scryptsalsa208sha256_saltbytes=P.jj)(),B._crypto_pwhash_scryptsalsa208sha256_strbytes=()=>(B._crypto_pwhash_scryptsalsa208sha256_strbytes=P.kj)(),B._crypto_pwhash_scryptsalsa208sha256_strprefix=()=>(B._crypto_pwhash_scryptsalsa208sha256_strprefix=P.lj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_min=P.mj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_max=P.nj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_min=P.oj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_max=P.pj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=P.qj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=P.rj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=P.sj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=P.tj)(),B._crypto_pwhash_scryptsalsa208sha256=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_pwhash_scryptsalsa208sha256=P.uj)(A,I,g,C,Q,i,o,E,a,_),B._crypto_pwhash_scryptsalsa208sha256_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_scryptsalsa208sha256_str=P.vj)(A,I,g,C,Q,i,o),B._crypto_pwhash_scryptsalsa208sha256_str_verify=(A,I,g,C)=>(B._crypto_pwhash_scryptsalsa208sha256_str_verify=P.wj)(A,I,g,C),B._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=P.xj)(A,I,g,C),B._crypto_scalarmult_ed25519=(A,I,g)=>(B._crypto_scalarmult_ed25519=P.yj)(A,I,g),B._crypto_scalarmult_ed25519_noclamp=(A,I,g)=>(B._crypto_scalarmult_ed25519_noclamp=P.zj)(A,I,g),B._crypto_scalarmult_ed25519_base=(A,I)=>(B._crypto_scalarmult_ed25519_base=P.Aj)(A,I),B._crypto_scalarmult_ed25519_base_noclamp=(A,I)=>(B._crypto_scalarmult_ed25519_base_noclamp=P.Bj)(A,I),B._crypto_scalarmult_ed25519_bytes=()=>(B._crypto_scalarmult_ed25519_bytes=P.Cj)(),B._crypto_scalarmult_ed25519_scalarbytes=()=>(B._crypto_scalarmult_ed25519_scalarbytes=P.Dj)(),B._crypto_scalarmult_ristretto255=(A,I,g)=>(B._crypto_scalarmult_ristretto255=P.Ej)(A,I,g),B._crypto_scalarmult_ristretto255_base=(A,I)=>(B._crypto_scalarmult_ristretto255_base=P.Fj)(A,I),B._crypto_scalarmult_ristretto255_bytes=()=>(B._crypto_scalarmult_ristretto255_bytes=P.Gj)(),B._crypto_scalarmult_ristretto255_scalarbytes=()=>(B._crypto_scalarmult_ristretto255_scalarbytes=P.Hj)(),B._crypto_secretbox_xchacha20poly1305_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_xchacha20poly1305_detached=P.Ij)(A,I,g,C,Q,i,o),B._crypto_secretbox_xchacha20poly1305_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xchacha20poly1305_easy=P.Jj)(A,I,g,C,Q,i),B._crypto_secretbox_xchacha20poly1305_open_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_xchacha20poly1305_open_detached=P.Kj)(A,I,g,C,Q,i,o),B._crypto_secretbox_xchacha20poly1305_open_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xchacha20poly1305_open_easy=P.Lj)(A,I,g,C,Q,i),B._crypto_secretbox_xchacha20poly1305_keybytes=()=>(B._crypto_secretbox_xchacha20poly1305_keybytes=P.Mj)(),B._crypto_secretbox_xchacha20poly1305_noncebytes=()=>(B._crypto_secretbox_xchacha20poly1305_noncebytes=P.Nj)(),B._crypto_secretbox_xchacha20poly1305_macbytes=()=>(B._crypto_secretbox_xchacha20poly1305_macbytes=P.Oj)(),B._crypto_secretbox_xchacha20poly1305_messagebytes_max=()=>(B._crypto_secretbox_xchacha20poly1305_messagebytes_max=P.Pj)(),B._crypto_shorthash_siphashx24_bytes=()=>(B._crypto_shorthash_siphashx24_bytes=P.Qj)(),B._crypto_shorthash_siphashx24_keybytes=()=>(B._crypto_shorthash_siphashx24_keybytes=P.Rj)(),B._crypto_shorthash_siphashx24=(A,I,g,C,Q)=>(B._crypto_shorthash_siphashx24=P.Sj)(A,I,g,C,Q),B._crypto_stream_salsa2012=(A,I,g,C,Q)=>(B._crypto_stream_salsa2012=P.Tj)(A,I,g,C,Q),B._crypto_stream_salsa2012_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa2012_xor=P.Uj)(A,I,g,C,Q,i),B._crypto_stream_salsa2012_keybytes=()=>(B._crypto_stream_salsa2012_keybytes=P.Vj)(),B._crypto_stream_salsa2012_noncebytes=()=>(B._crypto_stream_salsa2012_noncebytes=P.Wj)(),B._crypto_stream_salsa2012_messagebytes_max=()=>(B._crypto_stream_salsa2012_messagebytes_max=P.Xj)(),B._crypto_stream_salsa2012_keygen=A=>(B._crypto_stream_salsa2012_keygen=P.Yj)(A),B._crypto_stream_salsa208=(A,I,g,C,Q)=>(B._crypto_stream_salsa208=P.Zj)(A,I,g,C,Q),B._crypto_stream_salsa208_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa208_xor=P._j)(A,I,g,C,Q,i),B._crypto_stream_salsa208_keybytes=()=>(B._crypto_stream_salsa208_keybytes=P.$j)(),B._crypto_stream_salsa208_noncebytes=()=>(B._crypto_stream_salsa208_noncebytes=P.ak)(),B._crypto_stream_salsa208_messagebytes_max=()=>(B._crypto_stream_salsa208_messagebytes_max=P.bk)(),B._crypto_stream_salsa208_keygen=A=>(B._crypto_stream_salsa208_keygen=P.ck)(A),B._crypto_stream_xchacha20_keybytes=()=>(B._crypto_stream_xchacha20_keybytes=P.dk)(),B._crypto_stream_xchacha20_noncebytes=()=>(B._crypto_stream_xchacha20_noncebytes=P.ek)(),B._crypto_stream_xchacha20_messagebytes_max=()=>(B._crypto_stream_xchacha20_messagebytes_max=P.fk)(),B._crypto_stream_xchacha20=(A,I,g,C,Q)=>(B._crypto_stream_xchacha20=P.gk)(A,I,g,C,Q),B._crypto_stream_xchacha20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_xchacha20_xor_ic=P.hk)(A,I,g,C,Q,i,o,E),B._crypto_stream_xchacha20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xchacha20_xor=P.ik)(A,I,g,C,Q,i),B._crypto_stream_xchacha20_keygen=A=>(B._crypto_stream_xchacha20_keygen=P.jk)(A),B._malloc=A=>(B._malloc=P.kk)(A),B._free=A=>(B._free=P.lk)(A),B.setValue=function(A,I,g=\"i8\"){switch(g.endsWith(\"*\")&&(g=\"*\"),g){case\"i1\":case\"i8\":y[A]=I;break;case\"i16\":h[A>>1]=I;break;case\"i32\":D[A>>2]=I;break;case\"i64\":U(\"to do setValue(i64) use WASM_BIGINT\");case\"float\":p[A>>2]=I;break;case\"double\":w[A>>3]=I;break;case\"*\":f[A>>2]=I;break;default:U(`invalid type for setValue: ${g}`)}},B.getValue=function(A,I=\"i8\"){switch(I.endsWith(\"*\")&&(I=\"*\"),I){case\"i1\":case\"i8\":return y[A];case\"i16\":return h[A>>1];case\"i32\":return D[A>>2];case\"i64\":U(\"to do getValue(i64) use WASM_BIGINT\");case\"float\":return p[A>>2];case\"double\":return w[A>>3];case\"*\":return f[A>>2];default:U(`invalid type for getValue: ${I}`)}},B.UTF8ToString=x,K=function A(){l||q(),l||(K=A)},B.preInit)for(\"function\"==typeof B.preInit&&(B.preInit=[B.preInit]);B.preInit.length>0;)B.preInit.pop()();q()})).catch((function(){return C.useBackupModule()})),I}\"function\"==typeof define&&define.amd?define([\"exports\"],I):\"object\"==typeof exports&&\"string\"!=typeof exports.nodeName?I(exports):A.libsodium=I(A.libsodium_mod||(A.commonJsStrict={}))}(this);\n","!function(e){function a(e,a){\"use strict\";var r,t=\"uint8array\",_=a.ready.then((function(){function t(){if(0!==r._sodium_init())throw new Error(\"libsodium was not correctly initialized.\");for(var a=[\"crypto_aead_aegis128l_decrypt\",\"crypto_aead_aegis128l_decrypt_detached\",\"crypto_aead_aegis128l_encrypt\",\"crypto_aead_aegis128l_encrypt_detached\",\"crypto_aead_aegis128l_keygen\",\"crypto_aead_aegis256_decrypt\",\"crypto_aead_aegis256_decrypt_detached\",\"crypto_aead_aegis256_encrypt\",\"crypto_aead_aegis256_encrypt_detached\",\"crypto_aead_aegis256_keygen\",\"crypto_aead_chacha20poly1305_decrypt\",\"crypto_aead_chacha20poly1305_decrypt_detached\",\"crypto_aead_chacha20poly1305_encrypt\",\"crypto_aead_chacha20poly1305_encrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_decrypt\",\"crypto_aead_chacha20poly1305_ietf_decrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_encrypt\",\"crypto_aead_chacha20poly1305_ietf_encrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_keygen\",\"crypto_aead_chacha20poly1305_keygen\",\"crypto_aead_xchacha20poly1305_ietf_decrypt\",\"crypto_aead_xchacha20poly1305_ietf_decrypt_detached\",\"crypto_aead_xchacha20poly1305_ietf_encrypt\",\"crypto_aead_xchacha20poly1305_ietf_encrypt_detached\",\"crypto_aead_xchacha20poly1305_ietf_keygen\",\"crypto_auth\",\"crypto_auth_hmacsha256\",\"crypto_auth_hmacsha256_final\",\"crypto_auth_hmacsha256_init\",\"crypto_auth_hmacsha256_keygen\",\"crypto_auth_hmacsha256_update\",\"crypto_auth_hmacsha256_verify\",\"crypto_auth_hmacsha512\",\"crypto_auth_hmacsha512256\",\"crypto_auth_hmacsha512256_final\",\"crypto_auth_hmacsha512256_init\",\"crypto_auth_hmacsha512256_keygen\",\"crypto_auth_hmacsha512256_update\",\"crypto_auth_hmacsha512256_verify\",\"crypto_auth_hmacsha512_final\",\"crypto_auth_hmacsha512_init\",\"crypto_auth_hmacsha512_keygen\",\"crypto_auth_hmacsha512_update\",\"crypto_auth_hmacsha512_verify\",\"crypto_auth_keygen\",\"crypto_auth_verify\",\"crypto_box_beforenm\",\"crypto_box_curve25519xchacha20poly1305_beforenm\",\"crypto_box_curve25519xchacha20poly1305_detached\",\"crypto_box_curve25519xchacha20poly1305_detached_afternm\",\"crypto_box_curve25519xchacha20poly1305_easy\",\"crypto_box_curve25519xchacha20poly1305_easy_afternm\",\"crypto_box_curve25519xchacha20poly1305_keypair\",\"crypto_box_curve25519xchacha20poly1305_open_detached\",\"crypto_box_curve25519xchacha20poly1305_open_detached_afternm\",\"crypto_box_curve25519xchacha20poly1305_open_easy\",\"crypto_box_curve25519xchacha20poly1305_open_easy_afternm\",\"crypto_box_curve25519xchacha20poly1305_seal\",\"crypto_box_curve25519xchacha20poly1305_seal_open\",\"crypto_box_curve25519xchacha20poly1305_seed_keypair\",\"crypto_box_detached\",\"crypto_box_easy\",\"crypto_box_easy_afternm\",\"crypto_box_keypair\",\"crypto_box_open_detached\",\"crypto_box_open_easy\",\"crypto_box_open_easy_afternm\",\"crypto_box_seal\",\"crypto_box_seal_open\",\"crypto_box_seed_keypair\",\"crypto_core_ed25519_add\",\"crypto_core_ed25519_from_hash\",\"crypto_core_ed25519_from_uniform\",\"crypto_core_ed25519_is_valid_point\",\"crypto_core_ed25519_random\",\"crypto_core_ed25519_scalar_add\",\"crypto_core_ed25519_scalar_complement\",\"crypto_core_ed25519_scalar_invert\",\"crypto_core_ed25519_scalar_mul\",\"crypto_core_ed25519_scalar_negate\",\"crypto_core_ed25519_scalar_random\",\"crypto_core_ed25519_scalar_reduce\",\"crypto_core_ed25519_scalar_sub\",\"crypto_core_ed25519_sub\",\"crypto_core_hchacha20\",\"crypto_core_hsalsa20\",\"crypto_core_ristretto255_add\",\"crypto_core_ristretto255_from_hash\",\"crypto_core_ristretto255_is_valid_point\",\"crypto_core_ristretto255_random\",\"crypto_core_ristretto255_scalar_add\",\"crypto_core_ristretto255_scalar_complement\",\"crypto_core_ristretto255_scalar_invert\",\"crypto_core_ristretto255_scalar_mul\",\"crypto_core_ristretto255_scalar_negate\",\"crypto_core_ristretto255_scalar_random\",\"crypto_core_ristretto255_scalar_reduce\",\"crypto_core_ristretto255_scalar_sub\",\"crypto_core_ristretto255_sub\",\"crypto_generichash\",\"crypto_generichash_blake2b_salt_personal\",\"crypto_generichash_final\",\"crypto_generichash_init\",\"crypto_generichash_keygen\",\"crypto_generichash_update\",\"crypto_hash\",\"crypto_hash_sha256\",\"crypto_hash_sha256_final\",\"crypto_hash_sha256_init\",\"crypto_hash_sha256_update\",\"crypto_hash_sha512\",\"crypto_hash_sha512_final\",\"crypto_hash_sha512_init\",\"crypto_hash_sha512_update\",\"crypto_kdf_derive_from_key\",\"crypto_kdf_keygen\",\"crypto_kx_client_session_keys\",\"crypto_kx_keypair\",\"crypto_kx_seed_keypair\",\"crypto_kx_server_session_keys\",\"crypto_onetimeauth\",\"crypto_onetimeauth_final\",\"crypto_onetimeauth_init\",\"crypto_onetimeauth_keygen\",\"crypto_onetimeauth_update\",\"crypto_onetimeauth_verify\",\"crypto_pwhash\",\"crypto_pwhash_scryptsalsa208sha256\",\"crypto_pwhash_scryptsalsa208sha256_ll\",\"crypto_pwhash_scryptsalsa208sha256_str\",\"crypto_pwhash_scryptsalsa208sha256_str_verify\",\"crypto_pwhash_str\",\"crypto_pwhash_str_needs_rehash\",\"crypto_pwhash_str_verify\",\"crypto_scalarmult\",\"crypto_scalarmult_base\",\"crypto_scalarmult_ed25519\",\"crypto_scalarmult_ed25519_base\",\"crypto_scalarmult_ed25519_base_noclamp\",\"crypto_scalarmult_ed25519_noclamp\",\"crypto_scalarmult_ristretto255\",\"crypto_scalarmult_ristretto255_base\",\"crypto_secretbox_detached\",\"crypto_secretbox_easy\",\"crypto_secretbox_keygen\",\"crypto_secretbox_open_detached\",\"crypto_secretbox_open_easy\",\"crypto_secretstream_xchacha20poly1305_init_pull\",\"crypto_secretstream_xchacha20poly1305_init_push\",\"crypto_secretstream_xchacha20poly1305_keygen\",\"crypto_secretstream_xchacha20poly1305_pull\",\"crypto_secretstream_xchacha20poly1305_push\",\"crypto_secretstream_xchacha20poly1305_rekey\",\"crypto_shorthash\",\"crypto_shorthash_keygen\",\"crypto_shorthash_siphashx24\",\"crypto_sign\",\"crypto_sign_detached\",\"crypto_sign_ed25519_pk_to_curve25519\",\"crypto_sign_ed25519_sk_to_curve25519\",\"crypto_sign_ed25519_sk_to_pk\",\"crypto_sign_ed25519_sk_to_seed\",\"crypto_sign_final_create\",\"crypto_sign_final_verify\",\"crypto_sign_init\",\"crypto_sign_keypair\",\"crypto_sign_open\",\"crypto_sign_seed_keypair\",\"crypto_sign_update\",\"crypto_sign_verify_detached\",\"crypto_stream_chacha20\",\"crypto_stream_chacha20_ietf_xor\",\"crypto_stream_chacha20_ietf_xor_ic\",\"crypto_stream_chacha20_keygen\",\"crypto_stream_chacha20_xor\",\"crypto_stream_chacha20_xor_ic\",\"crypto_stream_keygen\",\"crypto_stream_xchacha20_keygen\",\"crypto_stream_xchacha20_xor\",\"crypto_stream_xchacha20_xor_ic\",\"randombytes_buf\",\"randombytes_buf_deterministic\",\"randombytes_close\",\"randombytes_random\",\"randombytes_set_implementation\",\"randombytes_stir\",\"randombytes_uniform\",\"sodium_version_string\"],t=[x,k,S,T,w,Y,B,A,M,I,K,N,L,O,U,C,P,R,X,G,D,F,V,H,W,q,j,z,J,Q,Z,$,ee,ae,re,te,_e,ne,se,ce,oe,he,pe,ye,ie,le,ue,de,ve,ge,be,fe,me,Ee,xe,ke,Se,Te,we,Ye,Be,Ae,Me,Ie,Ke,Ne,Le,Oe,Ue,Ce,Pe,Re,Xe,Ge,De,Fe,Ve,He,We,qe,je,ze,Je,Qe,Ze,$e,ea,aa,ra,ta,_a,na,sa,ca,oa,ha,pa,ya,ia,la,ua,da,va,ga,ba,fa,ma,Ea,xa,ka,Sa,Ta,wa,Ya,Ba,Aa,Ma,Ia,Ka,Na,La,Oa,Ua,Ca,Pa,Ra,Xa,Ga,Da,Fa,Va,Ha,Wa,qa,ja,za,Ja,Qa,Za,$a,er,ar,rr,tr,_r,nr,sr,cr,or,hr,pr,yr,ir,lr,ur,dr,vr,gr,br,fr,mr,Er,xr,kr,Sr,Tr,wr,Yr,Br,Ar,Mr,Ir,Kr,Nr,Lr,Or,Ur,Cr,Pr,Rr,Xr,Gr,Dr,Fr,Vr,Hr,Wr,qr],_=0;_=240?(p=4,o=!0):y>=224?(p=3,o=!0):y>=192?(p=2,o=!0):y<128&&(p=1,o=!0)}while(!o);for(var i=p-(c.length-h),l=0;l>8&-39)<<8|87+(a=e[n]>>>4)+(a-10>>8&-39),_+=String.fromCharCode(255&t)+String.fromCharCode(t>>>8);return _}var o={ORIGINAL:1,ORIGINAL_NO_PADDING:3,URLSAFE:5,URLSAFE_NO_PADDING:7};function h(e){if(null==e)return o.URLSAFE_NO_PADDING;if(e!==o.ORIGINAL&&e!==o.ORIGINAL_NO_PADDING&&e!==o.URLSAFE&&e!=o.URLSAFE_NO_PADDING)throw new Error(\"unsupported base64 variant\");return e}function p(e,a){a=h(a),e=E(_,e,\"input\");var t,_=[],n=0|Math.floor(e.length/3),c=e.length-3*n,o=4*n+(0!==c?2&a?2+(c>>>1):4:0),p=new u(o+1),y=d(e);return _.push(y),_.push(p.address),0===r._sodium_bin2base64(p.address,p.length,y,e.length,a)&&b(_,\"conversion failed\"),p.length=o,t=s(p.to_Uint8Array()),g(_),t}function y(e,a){var r=a||t;if(!i(r))throw new Error(r+\" output format is not available\");if(e instanceof u){if(\"uint8array\"===r)return e.to_Uint8Array();if(\"text\"===r)return s(e.to_Uint8Array());if(\"hex\"===r)return c(e.to_Uint8Array());if(\"base64\"===r)return p(e.to_Uint8Array(),o.URLSAFE_NO_PADDING);throw new Error('What is output format \"'+r+'\"?')}if(\"object\"==typeof e){for(var _=Object.keys(e),n={},h=0;h<_.length;h++)n[_[h]]=y(e[_[h]],r);return n}if(\"string\"==typeof e)return e;throw new TypeError(\"Cannot format output\")}function i(e){for(var a=[\"uint8array\",\"text\",\"hex\",\"base64\"],r=0;r=BigInt(0)){const e=a>>BigInt(32);e>BigInt(4294967295)&&f(c,\"subkey_id cannot be more than 64 bits\"),h=Number(e),o=Number(a&BigInt(4294967295))}else\"number\"==typeof a&&(0|a)===a&&a>=0?o=a:f(c,\"subkey_id must be an unsigned integer or bigint\");\"string\"!=typeof t&&f(c,\"ctx must be a string\"),t=n(t+\"\\0\"),null!=i&&t.length-1!==i&&f(c,\"invalid ctx length\");var p=d(t),i=t.length-1;c.push(p),_=E(c,_,\"key\");var v,b=0|r._crypto_kdf_keybytes();_.length!==b&&f(c,\"invalid key length\"),v=d(_),c.push(v);var x=new u(0|e),k=x.address;c.push(k),r._crypto_kdf_derive_from_key(k,e,o,h,p,v);var S=y(x,s);return g(c),S}function Aa(e){var a=[];l(e);var t=new u(0|r._crypto_kdf_keybytes()),_=t.address;a.push(_),r._crypto_kdf_keygen(_);var n=y(t,e);return g(a),n}function Ma(e,a,t,_){var n=[];l(_),e=E(n,e,\"clientPublicKey\");var s,c=0|r._crypto_kx_publickeybytes();e.length!==c&&f(n,\"invalid clientPublicKey length\"),s=d(e),n.push(s),a=E(n,a,\"clientSecretKey\");var o,h=0|r._crypto_kx_secretkeybytes();a.length!==h&&f(n,\"invalid clientSecretKey length\"),o=d(a),n.push(o),t=E(n,t,\"serverPublicKey\");var p,i=0|r._crypto_kx_publickeybytes();t.length!==i&&f(n,\"invalid serverPublicKey length\"),p=d(t),n.push(p);var v=new u(0|r._crypto_kx_sessionkeybytes()),m=v.address;n.push(m);var x=new u(0|r._crypto_kx_sessionkeybytes()),k=x.address;if(n.push(k),!(0|r._crypto_kx_client_session_keys(m,k,s,o,p))){var S=y({sharedRx:v,sharedTx:x},_);return g(n),S}b(n,\"invalid usage\")}function Ia(e){var a=[];l(e);var t=new u(0|r._crypto_kx_publickeybytes()),_=t.address;a.push(_);var n=new u(0|r._crypto_kx_secretkeybytes()),s=n.address;if(a.push(s),!(0|r._crypto_kx_keypair(_,s))){var c={publicKey:y(t,e),privateKey:y(n,e),keyType:\"x25519\"};return g(a),c}b(a,\"internal error\")}function Ka(e,a){var t=[];l(a),e=E(t,e,\"seed\");var _,n=0|r._crypto_kx_seedbytes();e.length!==n&&f(t,\"invalid seed length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_kx_publickeybytes()),c=s.address;t.push(c);var o=new u(0|r._crypto_kx_secretkeybytes()),h=o.address;if(t.push(h),!(0|r._crypto_kx_seed_keypair(c,h,_))){var p={publicKey:y(s,a),privateKey:y(o,a),keyType:\"x25519\"};return g(t),p}b(t,\"internal error\")}function Na(e,a,t,_){var n=[];l(_),e=E(n,e,\"serverPublicKey\");var s,c=0|r._crypto_kx_publickeybytes();e.length!==c&&f(n,\"invalid serverPublicKey length\"),s=d(e),n.push(s),a=E(n,a,\"serverSecretKey\");var o,h=0|r._crypto_kx_secretkeybytes();a.length!==h&&f(n,\"invalid serverSecretKey length\"),o=d(a),n.push(o),t=E(n,t,\"clientPublicKey\");var p,i=0|r._crypto_kx_publickeybytes();t.length!==i&&f(n,\"invalid clientPublicKey length\"),p=d(t),n.push(p);var v=new u(0|r._crypto_kx_sessionkeybytes()),m=v.address;n.push(m);var x=new u(0|r._crypto_kx_sessionkeybytes()),k=x.address;if(n.push(k),!(0|r._crypto_kx_server_session_keys(m,k,s,o,p))){var S=y({sharedRx:v,sharedTx:x},_);return g(n),S}b(n,\"invalid usage\")}function La(e,a,t){var _=[];l(t);var n=d(e=E(_,e,\"message\")),s=e.length;_.push(n),a=E(_,a,\"key\");var c,o=0|r._crypto_onetimeauth_keybytes();a.length!==o&&f(_,\"invalid key length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_onetimeauth_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_onetimeauth(p,n,s,0,c))){var i=y(h,t);return g(_),i}b(_,\"invalid usage\")}function Oa(e,a){var t=[];l(a),m(t,e,\"state_address\");var _=new u(0|r._crypto_onetimeauth_bytes()),n=_.address;if(t.push(n),!(0|r._crypto_onetimeauth_final(e,n))){var s=(r._free(e),y(_,a));return g(t),s}b(t,\"invalid usage\")}function Ua(e,a){var t=[];l(a);var _=null;null!=e&&(_=d(e=E(t,e,\"key\")),e.length,t.push(_));var n=new u(144).address;if(!(0|r._crypto_onetimeauth_init(n,_))){var s=n;return g(t),s}b(t,\"invalid usage\")}function Ca(e){var a=[];l(e);var t=new u(0|r._crypto_onetimeauth_keybytes()),_=t.address;a.push(_),r._crypto_onetimeauth_keygen(_);var n=y(t,e);return g(a),n}function Pa(e,a,t){var _=[];l(t),m(_,e,\"state_address\");var n=d(a=E(_,a,\"message_chunk\")),s=a.length;_.push(n),0|r._crypto_onetimeauth_update(e,n,s)&&b(_,\"invalid usage\"),g(_)}function Ra(e,a,t){var _=[];e=E(_,e,\"hash\");var n,s=0|r._crypto_onetimeauth_bytes();e.length!==s&&f(_,\"invalid hash length\"),n=d(e),_.push(n);var c=d(a=E(_,a,\"message\")),o=a.length;_.push(c),t=E(_,t,\"key\");var h,p=0|r._crypto_onetimeauth_keybytes();t.length!==p&&f(_,\"invalid key length\"),h=d(t),_.push(h);var y=!(0|r._crypto_onetimeauth_verify(n,c,o,0,h));return g(_),y}function Xa(e,a,t,_,n,s,c){var o=[];l(c),m(o,e,\"keyLength\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&f(o,\"keyLength must be an unsigned integer\");var h=d(a=E(o,a,\"password\")),p=a.length;o.push(h),t=E(o,t,\"salt\");var i,v=0|r._crypto_pwhash_saltbytes();t.length!==v&&f(o,\"invalid salt length\"),i=d(t),o.push(i),m(o,_,\"opsLimit\"),(\"number\"!=typeof _||(0|_)!==_||_<0)&&f(o,\"opsLimit must be an unsigned integer\"),m(o,n,\"memLimit\"),(\"number\"!=typeof n||(0|n)!==n||n<0)&&f(o,\"memLimit must be an unsigned integer\"),m(o,s,\"algorithm\"),(\"number\"!=typeof s||(0|s)!==s||s<0)&&f(o,\"algorithm must be an unsigned integer\");var x=new u(0|e),k=x.address;if(o.push(k),!(0|r._crypto_pwhash(k,e,0,h,p,0,i,_,0,n,s))){var S=y(x,c);return g(o),S}b(o,\"invalid usage\")}function Ga(e,a,t,_,n,s){var c=[];l(s),m(c,e,\"keyLength\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&f(c,\"keyLength must be an unsigned integer\");var o=d(a=E(c,a,\"password\")),h=a.length;c.push(o),t=E(c,t,\"salt\");var p,i=0|r._crypto_pwhash_scryptsalsa208sha256_saltbytes();t.length!==i&&f(c,\"invalid salt length\"),p=d(t),c.push(p),m(c,_,\"opsLimit\"),(\"number\"!=typeof _||(0|_)!==_||_<0)&&f(c,\"opsLimit must be an unsigned integer\"),m(c,n,\"memLimit\"),(\"number\"!=typeof n||(0|n)!==n||n<0)&&f(c,\"memLimit must be an unsigned integer\");var v=new u(0|e),x=v.address;if(c.push(x),!(0|r._crypto_pwhash_scryptsalsa208sha256(x,e,0,o,h,0,p,_,0,n))){var k=y(v,s);return g(c),k}b(c,\"invalid usage\")}function Da(e,a,t,_,n,s,c){var o=[];l(c);var h=d(e=E(o,e,\"password\")),p=e.length;o.push(h);var i=d(a=E(o,a,\"salt\")),v=a.length;o.push(i),m(o,t,\"opsLimit\"),(\"number\"!=typeof t||(0|t)!==t||t<0)&&f(o,\"opsLimit must be an unsigned integer\"),m(o,_,\"r\"),(\"number\"!=typeof _||(0|_)!==_||_<0)&&f(o,\"r must be an unsigned integer\"),m(o,n,\"p\"),(\"number\"!=typeof n||(0|n)!==n||n<0)&&f(o,\"p must be an unsigned integer\"),m(o,s,\"keyLength\"),(\"number\"!=typeof s||(0|s)!==s||s<0)&&f(o,\"keyLength must be an unsigned integer\");var x=new u(0|s),k=x.address;if(o.push(k),!(0|r._crypto_pwhash_scryptsalsa208sha256_ll(h,p,i,v,t,0,_,n,k,s))){var S=y(x,c);return g(o),S}b(o,\"invalid usage\")}function Fa(e,a,t,_){var n=[];l(_);var s=d(e=E(n,e,\"password\")),c=e.length;n.push(s),m(n,a,\"opsLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&f(n,\"opsLimit must be an unsigned integer\"),m(n,t,\"memLimit\"),(\"number\"!=typeof t||(0|t)!==t||t<0)&&f(n,\"memLimit must be an unsigned integer\");var o=new u(0|r._crypto_pwhash_scryptsalsa208sha256_strbytes()).address;if(n.push(o),!(0|r._crypto_pwhash_scryptsalsa208sha256_str(o,s,c,0,a,0,t))){var h=r.UTF8ToString(o);return g(n),h}b(n,\"invalid usage\")}function Va(e,a,t){var _=[];l(t),\"string\"!=typeof e&&f(_,\"hashed_password must be a string\"),e=n(e+\"\\0\"),null!=c&&e.length-1!==c&&f(_,\"invalid hashed_password length\");var s=d(e),c=e.length-1;_.push(s);var o=d(a=E(_,a,\"password\")),h=a.length;_.push(o);var p=!(0|r._crypto_pwhash_scryptsalsa208sha256_str_verify(s,o,h,0));return g(_),p}function Ha(e,a,t,_){var n=[];l(_);var s=d(e=E(n,e,\"password\")),c=e.length;n.push(s),m(n,a,\"opsLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&f(n,\"opsLimit must be an unsigned integer\"),m(n,t,\"memLimit\"),(\"number\"!=typeof t||(0|t)!==t||t<0)&&f(n,\"memLimit must be an unsigned integer\");var o=new u(0|r._crypto_pwhash_strbytes()).address;if(n.push(o),!(0|r._crypto_pwhash_str(o,s,c,0,a,0,t))){var h=r.UTF8ToString(o);return g(n),h}b(n,\"invalid usage\")}function Wa(e,a,t,_){var s=[];l(_),\"string\"!=typeof e&&f(s,\"hashed_password must be a string\"),e=n(e+\"\\0\"),null!=o&&e.length-1!==o&&f(s,\"invalid hashed_password length\");var c=d(e),o=e.length-1;s.push(c),m(s,a,\"opsLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&f(s,\"opsLimit must be an unsigned integer\"),m(s,t,\"memLimit\"),(\"number\"!=typeof t||(0|t)!==t||t<0)&&f(s,\"memLimit must be an unsigned integer\");var h=!!(0|r._crypto_pwhash_str_needs_rehash(c,a,0,t));return g(s),h}function qa(e,a,t){var _=[];l(t),\"string\"!=typeof e&&f(_,\"hashed_password must be a string\"),e=n(e+\"\\0\"),null!=c&&e.length-1!==c&&f(_,\"invalid hashed_password length\");var s=d(e),c=e.length-1;_.push(s);var o=d(a=E(_,a,\"password\")),h=a.length;_.push(o);var p=!(0|r._crypto_pwhash_str_verify(s,o,h,0));return g(_),p}function ja(e,a,t){var _=[];l(t),e=E(_,e,\"privateKey\");var n,s=0|r._crypto_scalarmult_scalarbytes();e.length!==s&&f(_,\"invalid privateKey length\"),n=d(e),_.push(n),a=E(_,a,\"publicKey\");var c,o=0|r._crypto_scalarmult_bytes();a.length!==o&&f(_,\"invalid publicKey length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_scalarmult_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_scalarmult(p,n,c))){var i=y(h,t);return g(_),i}b(_,\"weak public key\")}function za(e,a){var t=[];l(a),e=E(t,e,\"privateKey\");var _,n=0|r._crypto_scalarmult_scalarbytes();e.length!==n&&f(t,\"invalid privateKey length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_scalarmult_bytes()),c=s.address;if(t.push(c),!(0|r._crypto_scalarmult_base(c,_))){var o=y(s,a);return g(t),o}b(t,\"unknown error\")}function Ja(e,a,t){var _=[];l(t),e=E(_,e,\"n\");var n,s=0|r._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&f(_,\"invalid n length\"),n=d(e),_.push(n),a=E(_,a,\"p\");var c,o=0|r._crypto_scalarmult_ed25519_bytes();a.length!==o&&f(_,\"invalid p length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_scalarmult_ed25519_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_scalarmult_ed25519(p,n,c))){var i=y(h,t);return g(_),i}b(_,\"invalid point or scalar is 0\")}function Qa(e,a){var t=[];l(a),e=E(t,e,\"scalar\");var _,n=0|r._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&f(t,\"invalid scalar length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_scalarmult_ed25519_bytes()),c=s.address;if(t.push(c),!(0|r._crypto_scalarmult_ed25519_base(c,_))){var o=y(s,a);return g(t),o}b(t,\"scalar is 0\")}function Za(e,a){var t=[];l(a),e=E(t,e,\"scalar\");var _,n=0|r._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&f(t,\"invalid scalar length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_scalarmult_ed25519_bytes()),c=s.address;if(t.push(c),!(0|r._crypto_scalarmult_ed25519_base_noclamp(c,_))){var o=y(s,a);return g(t),o}b(t,\"scalar is 0\")}function $a(e,a,t){var _=[];l(t),e=E(_,e,\"n\");var n,s=0|r._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&f(_,\"invalid n length\"),n=d(e),_.push(n),a=E(_,a,\"p\");var c,o=0|r._crypto_scalarmult_ed25519_bytes();a.length!==o&&f(_,\"invalid p length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_scalarmult_ed25519_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_scalarmult_ed25519_noclamp(p,n,c))){var i=y(h,t);return g(_),i}b(_,\"invalid point or scalar is 0\")}function er(e,a,t){var _=[];l(t),e=E(_,e,\"scalar\");var n,s=0|r._crypto_scalarmult_ristretto255_scalarbytes();e.length!==s&&f(_,\"invalid scalar length\"),n=d(e),_.push(n),a=E(_,a,\"element\");var c,o=0|r._crypto_scalarmult_ristretto255_bytes();a.length!==o&&f(_,\"invalid element length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_scalarmult_ristretto255_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_scalarmult_ristretto255(p,n,c))){var i=y(h,t);return g(_),i}b(_,\"result is identity element\")}function ar(e,a){var t=[];l(a),e=E(t,e,\"scalar\");var _,n=0|r._crypto_core_ristretto255_scalarbytes();e.length!==n&&f(t,\"invalid scalar length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_core_ristretto255_bytes()),c=s.address;if(t.push(c),!(0|r._crypto_scalarmult_ristretto255_base(c,_))){var o=y(s,a);return g(t),o}b(t,\"scalar is 0\")}function rr(e,a,t,_){var n=[];l(_);var s=d(e=E(n,e,\"message\")),c=e.length;n.push(s),a=E(n,a,\"nonce\");var o,h=0|r._crypto_secretbox_noncebytes();a.length!==h&&f(n,\"invalid nonce length\"),o=d(a),n.push(o),t=E(n,t,\"key\");var p,i=0|r._crypto_secretbox_keybytes();t.length!==i&&f(n,\"invalid key length\"),p=d(t),n.push(p);var v=new u(0|c),m=v.address;n.push(m);var x=new u(0|r._crypto_secretbox_macbytes()),k=x.address;if(n.push(k),!(0|r._crypto_secretbox_detached(m,k,s,c,0,o,p))){var S=y({mac:x,cipher:v},_);return g(n),S}b(n,\"invalid usage\")}function tr(e,a,t,_){var n=[];l(_);var s=d(e=E(n,e,\"message\")),c=e.length;n.push(s),a=E(n,a,\"nonce\");var o,h=0|r._crypto_secretbox_noncebytes();a.length!==h&&f(n,\"invalid nonce length\"),o=d(a),n.push(o),t=E(n,t,\"key\");var p,i=0|r._crypto_secretbox_keybytes();t.length!==i&&f(n,\"invalid key length\"),p=d(t),n.push(p);var v=new u(c+r._crypto_secretbox_macbytes()|0),m=v.address;if(n.push(m),!(0|r._crypto_secretbox_easy(m,s,c,0,o,p))){var x=y(v,_);return g(n),x}b(n,\"invalid usage\")}function _r(e){var a=[];l(e);var t=new u(0|r._crypto_secretbox_keybytes()),_=t.address;a.push(_),r._crypto_secretbox_keygen(_);var n=y(t,e);return g(a),n}function nr(e,a,t,_,n){var s=[];l(n);var c=d(e=E(s,e,\"ciphertext\")),o=e.length;s.push(c),a=E(s,a,\"mac\");var h,p=0|r._crypto_secretbox_macbytes();a.length!==p&&f(s,\"invalid mac length\"),h=d(a),s.push(h),t=E(s,t,\"nonce\");var i,v=0|r._crypto_secretbox_noncebytes();t.length!==v&&f(s,\"invalid nonce length\"),i=d(t),s.push(i),_=E(s,_,\"key\");var m,x=0|r._crypto_secretbox_keybytes();_.length!==x&&f(s,\"invalid key length\"),m=d(_),s.push(m);var k=new u(0|o),S=k.address;if(s.push(S),!(0|r._crypto_secretbox_open_detached(S,c,h,o,0,i,m))){var T=y(k,n);return g(s),T}b(s,\"wrong secret key for the given ciphertext\")}function sr(e,a,t,_){var n=[];l(_),e=E(n,e,\"ciphertext\");var s,c=r._crypto_secretbox_macbytes(),o=e.length;o>>0;return g([]),a}function Vr(e,a){var t=[];l(a);for(var _=r._malloc(24),n=0;n<6;n++)r.setValue(_+4*n,r.Runtime.addFunction(e[[\"implementation_name\",\"random\",\"stir\",\"uniform\",\"buf\",\"close\"][n]]),\"i32\");0|r._randombytes_set_implementation(_)&&b(t,\"unsupported implementation\"),g(t)}function Hr(e){l(e),r._randombytes_stir()}function Wr(e,a){var t=[];l(a),m(t,e,\"upper_bound\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&f(t,\"upper_bound must be an unsigned integer\");var _=r._randombytes_uniform(e)>>>0;return g(t),_}function qr(){var e=r._sodium_version_string(),a=r.UTF8ToString(e);return g([]),a}return u.prototype.to_Uint8Array=function(){var e=new Uint8Array(this.length);return e.set(r.HEAPU8.subarray(this.address,this.address+this.length)),e},e.add=function(e,a){if(!(e instanceof Uint8Array&&a instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can added\");var r=e.length,t=0,_=0;if(a.length!=e.length)throw new TypeError(\"Arguments must have the same length\");for(_=0;_>=8,t+=e[_]+a[_],e[_]=255&t},e.base64_variants=o,e.compare=function(e,a){if(!(e instanceof Uint8Array&&a instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be compared\");if(e.length!==a.length)throw new TypeError(\"Only instances of identical length can be compared\");for(var r=0,t=1,_=e.length;_-- >0;)r|=a[_]-e[_]>>8&t,t&=(a[_]^e[_])-1>>8;return r+r+t-1},e.from_base64=function(e,a){a=h(a);var t,_=[],n=new u(3*(e=E(_,e,\"input\")).length/4),s=d(e),c=v(4),o=v(4);return _.push(s),_.push(n.address),_.push(n.result_bin_len_p),_.push(n.b64_end_p),0!==r._sodium_base642bin(n.address,n.length,s,e.length,0,c,o,a)&&b(_,\"invalid input\"),r.getValue(o,\"i32\")-s!==e.length&&b(_,\"incomplete input\"),n.length=r.getValue(c,\"i32\"),t=n.to_Uint8Array(),g(_),t},e.from_hex=function(e){var a,t=[],_=new u((e=E(t,e,\"input\")).length/2),n=d(e),s=v(4);return t.push(n),t.push(_.address),t.push(_.hex_end_p),0!==r._sodium_hex2bin(_.address,_.length,n,e.length,0,0,s)&&b(t,\"invalid input\"),r.getValue(s,\"i32\")-n!==e.length&&b(t,\"incomplete input\"),a=_.to_Uint8Array(),g(t),a},e.from_string=n,e.increment=function(e){if(!(e instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be incremented\");for(var a=256,r=0,t=e.length;r>=8,a+=e[r],e[r]=255&a},e.is_zero=function(e){if(!(e instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be checked\");for(var a=0,r=0,t=e.length;r 0\");var t,_=[],n=v(4),s=1,c=0,o=0|e.length,h=new u(o+a);_.push(n),_.push(h.address);for(var p=h.address,y=h.address+o+a;p>>48|o>>>32|o>>>16|o))-1>>16);return 0!==r._sodium_pad(n,h.address,e.length,a,h.length)&&b(_,\"internal error\"),h.length=r.getValue(n,\"i32\"),t=h.to_Uint8Array(),g(_),t},e.unpad=function(e,a){if(!(e instanceof Uint8Array))throw new TypeError(\"buffer must be a Uint8Array\");if((a|=0)<=0)throw new Error(\"block size must be > 0\");var t=[],_=d(e),n=v(4);return t.push(_),t.push(n),0!==r._sodium_unpad(n,_,e.length,a)&&b(t,\"unsupported/invalid padding\"),e=(e=new Uint8Array(e)).subarray(0,r.getValue(n,\"i32\")),g(t),e},e.ready=_,e.symbols=function(){return Object.keys(e).sort()},e.to_base64=p,e.to_hex=c,e.to_string=s,e}var r=\"object\"==typeof e.sodium&&\"function\"==typeof e.sodium.onload?e.sodium.onload:null;\"function\"==typeof define&&define.amd?define([\"exports\",\"libsodium-sumo\"],a):\"object\"==typeof exports&&\"string\"!=typeof exports.nodeName?a(exports,require(\"libsodium-sumo\")):e.sodium=a(e.commonJsStrict={},e.libsodium),r&&e.sodium.ready.then((function(){r(e.sodium)}))}(this);\n","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","'use strict';\n\n/** @type {import('./isNaN')} */\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\n","'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n","'use strict';\n\nvar $isNaN = require('./isNaN');\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n\tif ($isNaN(number) || number === 0) {\n\t\treturn number;\n\t}\n\treturn number < 0 ? -1 : +1;\n};\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar objectKeys = require('object-keys');\nvar hasSymbols = require('has-symbols/shams')();\nvar callBound = require('call-bound');\nvar $Object = require('es-object-atoms');\nvar $push = callBound('Array.prototype.push');\nvar $propIsEnumerable = callBound('Object.prototype.propertyIsEnumerable');\nvar originalGetSymbols = hasSymbols ? $Object.getOwnPropertySymbols : null;\n\n// eslint-disable-next-line no-unused-vars\nmodule.exports = function assign(target, source1) {\n\tif (target == null) { throw new TypeError('target must be an object'); }\n\tvar to = $Object(target); // step 1\n\tif (arguments.length === 1) {\n\t\treturn to; // step 2\n\t}\n\tfor (var s = 1; s < arguments.length; ++s) {\n\t\tvar from = $Object(arguments[s]); // step 3.a.i\n\n\t\t// step 3.a.ii:\n\t\tvar keys = objectKeys(from);\n\t\tvar getSymbols = hasSymbols && ($Object.getOwnPropertySymbols || originalGetSymbols);\n\t\tif (getSymbols) {\n\t\t\tvar syms = getSymbols(from);\n\t\t\tfor (var j = 0; j < syms.length; ++j) {\n\t\t\t\tvar key = syms[j];\n\t\t\t\tif ($propIsEnumerable(from, key)) {\n\t\t\t\t\t$push(keys, key);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// step 3.a.iii:\n\t\tfor (var i = 0; i < keys.length; ++i) {\n\t\t\tvar nextKey = keys[i];\n\t\t\tif ($propIsEnumerable(from, nextKey)) { // step 3.a.iii.2\n\t\t\t\tvar propValue = from[nextKey]; // step 3.a.iii.2.a\n\t\t\t\tto[nextKey] = propValue; // step 3.a.iii.2.b\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to; // step 4\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar lacksProperEnumerationOrder = function () {\n\tif (!Object.assign) {\n\t\treturn false;\n\t}\n\t/*\n\t * v8, specifically in node 4.x, has a bug with incorrect property enumeration order\n\t * note: this does not detect the bug unless there's 20 characters\n\t */\n\tvar str = 'abcdefghijklmnopqrst';\n\tvar letters = str.split('');\n\tvar map = {};\n\tfor (var i = 0; i < letters.length; ++i) {\n\t\tmap[letters[i]] = letters[i];\n\t}\n\tvar obj = Object.assign({}, map);\n\tvar actual = '';\n\tfor (var k in obj) {\n\t\tactual += k;\n\t}\n\treturn str !== actual;\n};\n\nvar assignHasPendingExceptions = function () {\n\tif (!Object.assign || !Object.preventExtensions) {\n\t\treturn false;\n\t}\n\t/*\n\t * Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t * which is 72% slower than our shim, and Firefox 40's native implementation.\n\t */\n\tvar thrower = Object.preventExtensions({ 1: 2 });\n\ttry {\n\t\tObject.assign(thrower, 'xy');\n\t} catch (e) {\n\t\treturn thrower[1] === 'y';\n\t}\n\treturn false;\n};\n\nmodule.exports = function getPolyfill() {\n\tif (!Object.assign) {\n\t\treturn implementation;\n\t}\n\tif (lacksProperEnumerationOrder()) {\n\t\treturn implementation;\n\t}\n\tif (assignHasPendingExceptions()) {\n\t\treturn implementation;\n\t}\n\treturn Object.assign;\n};\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n\n'use strict';\n\nvar asn1 = require('asn1.js');\n\nexports.certificate = require('./certificate');\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('modulus')['int'](),\n\t\tthis.key('publicExponent')['int'](),\n\t\tthis.key('privateExponent')['int'](),\n\t\tthis.key('prime1')['int'](),\n\t\tthis.key('prime2')['int'](),\n\t\tthis.key('exponent1')['int'](),\n\t\tthis.key('exponent2')['int'](),\n\t\tthis.key('coefficient')['int']()\n\t);\n});\nexports.RSAPrivateKey = RSAPrivateKey;\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('modulus')['int'](),\n\t\tthis.key('publicExponent')['int']()\n\t);\n});\nexports.RSAPublicKey = RSAPublicKey;\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').objid(),\n\t\tthis.key('none').null_().optional(),\n\t\tthis.key('curve').objid().optional(),\n\t\tthis.key('params').seq().obj(\n\t\t\tthis.key('p')['int'](),\n\t\t\tthis.key('q')['int'](),\n\t\t\tthis.key('g')['int']()\n\t\t).optional()\n\t);\n});\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPublicKey').bitstr()\n\t);\n});\nexports.PublicKey = PublicKey;\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPrivateKey').octstr()\n\t);\n});\nexports.PrivateKey = PrivateKeyInfo;\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').seq().obj(\n\t\t\tthis.key('id').objid(),\n\t\t\tthis.key('decrypt').seq().obj(\n\t\t\t\tthis.key('kde').seq().obj(\n\t\t\t\t\tthis.key('id').objid(),\n\t\t\t\t\tthis.key('kdeparams').seq().obj(\n\t\t\t\t\t\tthis.key('salt').octstr(),\n\t\t\t\t\t\tthis.key('iters')['int']()\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\tthis.key('cipher').seq().obj(\n\t\t\t\t\tthis.key('algo').objid(),\n\t\t\t\t\tthis.key('iv').octstr()\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t\tthis.key('subjectPrivateKey').octstr()\n\t);\n});\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo;\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('p')['int'](),\n\t\tthis.key('q')['int'](),\n\t\tthis.key('g')['int'](),\n\t\tthis.key('pub_key')['int'](),\n\t\tthis.key('priv_key')['int']()\n\t);\n});\nexports.DSAPrivateKey = DSAPrivateKey;\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n\tthis['int']();\n});\n\nvar ECParameters = asn1.define('ECParameters', function () {\n\tthis.choice({\n\t\tnamedCurve: this.objid()\n\t});\n});\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('privateKey').octstr(),\n\t\tthis.key('parameters').optional().explicit(0).use(ECParameters),\n\t\tthis.key('publicKey').optional().explicit(1).bitstr()\n\t);\n});\nexports.ECPrivateKey = ECPrivateKey;\n\nexports.signature = asn1.define('signature', function () {\n\tthis.seq().obj(\n\t\tthis.key('r')['int'](),\n\t\tthis.key('s')['int']()\n\t);\n});\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict';\n\nvar asn = require('asn1.js');\n\nvar Time = asn.define('Time', function () {\n\tthis.choice({\n\t\tutcTime: this.utctime(),\n\t\tgeneralTime: this.gentime()\n\t});\n});\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n\tthis.seq().obj(\n\t\tthis.key('type').objid(),\n\t\tthis.key('value').any()\n\t);\n});\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').objid(),\n\t\tthis.key('parameters').optional(),\n\t\tthis.key('curve').objid().optional()\n\t);\n});\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPublicKey').bitstr()\n\t);\n});\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n\tthis.setof(AttributeTypeValue);\n});\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n\tthis.seqof(RelativeDistinguishedName);\n});\n\nvar Name = asn.define('Name', function () {\n\tthis.choice({\n\t\trdnSequence: this.use(RDNSequence)\n\t});\n});\n\nvar Validity = asn.define('Validity', function () {\n\tthis.seq().obj(\n\t\tthis.key('notBefore').use(Time),\n\t\tthis.key('notAfter').use(Time)\n\t);\n});\n\nvar Extension = asn.define('Extension', function () {\n\tthis.seq().obj(\n\t\tthis.key('extnID').objid(),\n\t\tthis.key('critical').bool().def(false),\n\t\tthis.key('extnValue').octstr()\n\t);\n});\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n\tthis.seq().obj(\n\t\tthis.key('version').explicit(0)['int']().optional(),\n\t\tthis.key('serialNumber')['int'](),\n\t\tthis.key('signature').use(AlgorithmIdentifier),\n\t\tthis.key('issuer').use(Name),\n\t\tthis.key('validity').use(Validity),\n\t\tthis.key('subject').use(Name),\n\t\tthis.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n\t\tthis.key('issuerUniqueID').implicit(1).bitstr().optional(),\n\t\tthis.key('subjectUniqueID').implicit(2).bitstr().optional(),\n\t\tthis.key('extensions').explicit(3).seqof(Extension).optional()\n\t);\n});\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n\tthis.seq().obj(\n\t\tthis.key('tbsCertificate').use(TBSCertificate),\n\t\tthis.key('signatureAlgorithm').use(AlgorithmIdentifier),\n\t\tthis.key('signatureValue').bitstr()\n\t);\n});\n\nmodule.exports = X509Certificate;\n","'use strict';\n\n// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m;\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m;\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m;\nvar evp = require('evp_bytestokey');\nvar ciphers = require('browserify-aes');\nvar Buffer = require('safe-buffer').Buffer;\nmodule.exports = function (okey, password) {\n\tvar key = okey.toString();\n\tvar match = key.match(findProc);\n\tvar decrypted;\n\tif (!match) {\n\t\tvar match2 = key.match(fullRegex);\n\t\tdecrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64');\n\t} else {\n\t\tvar suite = 'aes' + match[1];\n\t\tvar iv = Buffer.from(match[2], 'hex');\n\t\tvar cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64');\n\t\tvar cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key;\n\t\tvar out = [];\n\t\tvar cipher = ciphers.createDecipheriv(suite, cipherKey, iv);\n\t\tout.push(cipher.update(cipherText));\n\t\tout.push(cipher['final']());\n\t\tdecrypted = Buffer.concat(out);\n\t}\n\tvar tag = key.match(startRegex)[1];\n\treturn {\n\t\ttag: tag,\n\t\tdata: decrypted\n\t};\n};\n","'use strict';\n\nvar asn1 = require('./asn1');\nvar aesid = require('./aesid.json');\nvar fixProc = require('./fixProc');\nvar ciphers = require('browserify-aes');\nvar compat = require('pbkdf2');\nvar Buffer = require('safe-buffer').Buffer;\n\nfunction decrypt(data, password) {\n\tvar salt = data.algorithm.decrypt.kde.kdeparams.salt;\n\tvar iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10);\n\tvar algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')];\n\tvar iv = data.algorithm.decrypt.cipher.iv;\n\tvar cipherText = data.subjectPrivateKey;\n\tvar keylen = parseInt(algo.split('-')[1], 10) / 8;\n\tvar key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1');\n\tvar cipher = ciphers.createDecipheriv(algo, key, iv);\n\tvar out = [];\n\tout.push(cipher.update(cipherText));\n\tout.push(cipher['final']());\n\treturn Buffer.concat(out);\n}\n\nfunction parseKeys(buffer) {\n\tvar password;\n\tif (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n\t\tpassword = buffer.passphrase;\n\t\tbuffer = buffer.key;\n\t}\n\tif (typeof buffer === 'string') {\n\t\tbuffer = Buffer.from(buffer);\n\t}\n\n\tvar stripped = fixProc(buffer, password);\n\n\tvar type = stripped.tag;\n\tvar data = stripped.data;\n\tvar subtype, ndata;\n\tswitch (type) {\n\t\tcase 'CERTIFICATE':\n\t\t\tndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo;\n\t\t\t// falls through\n\t\tcase 'PUBLIC KEY':\n\t\t\tif (!ndata) {\n\t\t\t\tndata = asn1.PublicKey.decode(data, 'der');\n\t\t\t}\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\tndata.subjectPrivateKey = ndata.subjectPublicKey;\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'ec',\n\t\t\t\t\t\tdata: ndata\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tdata: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'ENCRYPTED PRIVATE KEY':\n\t\t\tdata = asn1.EncryptedPrivateKey.decode(data, 'der');\n\t\t\tdata = decrypt(data, password);\n\t\t\t// falls through\n\t\tcase 'PRIVATE KEY':\n\t\t\tndata = asn1.PrivateKey.decode(data, 'der');\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcurve: ndata.algorithm.curve,\n\t\t\t\t\t\tprivateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tparams: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'RSA PUBLIC KEY':\n\t\t\treturn asn1.RSAPublicKey.decode(data, 'der');\n\t\tcase 'RSA PRIVATE KEY':\n\t\t\treturn asn1.RSAPrivateKey.decode(data, 'der');\n\t\tcase 'DSA PRIVATE KEY':\n\t\t\treturn {\n\t\t\t\ttype: 'dsa',\n\t\t\t\tparams: asn1.DSAPrivateKey.decode(data, 'der')\n\t\t\t};\n\t\tcase 'EC PRIVATE KEY':\n\t\t\tdata = asn1.ECPrivateKey.decode(data, 'der');\n\t\t\treturn {\n\t\t\t\tcurve: data.parameters.value,\n\t\t\t\tprivateKey: data.privateKey\n\t\t\t};\n\t\tdefault: throw new Error('unknown key type ' + type);\n\t}\n}\nparseKeys.signature = asn1.signature;\n\nmodule.exports = parseKeys;\n","'use strict';\n\nexports.pbkdf2 = require('./lib/async');\nexports.pbkdf2Sync = require('./lib/sync');\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar checkParameters = require('./precondition');\nvar defaultEncoding = require('./default-encoding');\nvar sync = require('./sync');\nvar toBuffer = require('./to-buffer');\n\nvar ZERO_BUF;\nvar subtle = global.crypto && global.crypto.subtle;\nvar toBrowser = {\n\tsha: 'SHA-1',\n\t'sha-1': 'SHA-1',\n\tsha1: 'SHA-1',\n\tsha256: 'SHA-256',\n\t'sha-256': 'SHA-256',\n\tsha384: 'SHA-384',\n\t'sha-384': 'SHA-384',\n\t'sha-512': 'SHA-512',\n\tsha512: 'SHA-512'\n};\nvar checks = [];\nvar nextTick;\nfunction getNextTick() {\n\tif (nextTick) {\n\t\treturn nextTick;\n\t}\n\tif (global.process && global.process.nextTick) {\n\t\tnextTick = global.process.nextTick;\n\t} else if (global.queueMicrotask) {\n\t\tnextTick = global.queueMicrotask;\n\t} else if (global.setImmediate) {\n\t\tnextTick = global.setImmediate;\n\t} else {\n\t\tnextTick = global.setTimeout;\n\t}\n\treturn nextTick;\n}\nfunction browserPbkdf2(password, salt, iterations, length, algo) {\n\treturn subtle.importKey('raw', password, { name: 'PBKDF2' }, false, ['deriveBits']).then(function (key) {\n\t\treturn subtle.deriveBits({\n\t\t\tname: 'PBKDF2',\n\t\t\tsalt: salt,\n\t\t\titerations: iterations,\n\t\t\thash: {\n\t\t\t\tname: algo\n\t\t\t}\n\t\t}, key, length << 3);\n\t}).then(function (res) {\n\t\treturn Buffer.from(res);\n\t});\n}\nfunction checkNative(algo) {\n\tif (global.process && !global.process.browser) {\n\t\treturn Promise.resolve(false);\n\t}\n\tif (!subtle || !subtle.importKey || !subtle.deriveBits) {\n\t\treturn Promise.resolve(false);\n\t}\n\tif (checks[algo] !== undefined) {\n\t\treturn checks[algo];\n\t}\n\tZERO_BUF = ZERO_BUF || Buffer.alloc(8);\n\tvar prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n\t\t.then(\n\t\t\tfunction () { return true; },\n\t\t\tfunction () { return false; }\n\t\t);\n\tchecks[algo] = prom;\n\treturn prom;\n}\n\nfunction resolvePromise(promise, callback) {\n\tpromise.then(function (out) {\n\t\tgetNextTick()(function () {\n\t\t\tcallback(null, out);\n\t\t});\n\t}, function (e) {\n\t\tgetNextTick()(function () {\n\t\t\tcallback(e);\n\t\t});\n\t});\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n\tif (typeof digest === 'function') {\n\t\tcallback = digest;\n\t\tdigest = undefined;\n\t}\n\n\tcheckParameters(iterations, keylen);\n\tpassword = toBuffer(password, defaultEncoding, 'Password');\n\tsalt = toBuffer(salt, defaultEncoding, 'Salt');\n\tif (typeof callback !== 'function') {\n\t\tthrow new Error('No callback provided to pbkdf2');\n\t}\n\n\tdigest = digest || 'sha1';\n\tvar algo = toBrowser[digest.toLowerCase()];\n\n\tif (!algo || typeof global.Promise !== 'function') {\n\t\tgetNextTick()(function () {\n\t\t\tvar out;\n\t\t\ttry {\n\t\t\t\tout = sync(password, salt, iterations, keylen, digest);\n\t\t\t} catch (e) {\n\t\t\t\tcallback(e);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcallback(null, out);\n\t\t});\n\t\treturn;\n\t}\n\n\tresolvePromise(checkNative(algo).then(function (resp) {\n\t\tif (resp) {\n\t\t\treturn browserPbkdf2(password, salt, iterations, keylen, algo);\n\t\t}\n\n\t\treturn sync(password, salt, iterations, keylen, digest);\n\t}), callback);\n};\n","'use strict';\n\nvar defaultEncoding;\n/* istanbul ignore next */\nif (global.process && global.process.browser) {\n\tdefaultEncoding = 'utf-8';\n} else if (global.process && global.process.version) {\n\tvar pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10);\n\n\tdefaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary';\n} else {\n\tdefaultEncoding = 'utf-8';\n}\nmodule.exports = defaultEncoding;\n","'use strict';\n\nvar $isFinite = isFinite;\nvar MAX_ALLOC = Math.pow(2, 30) - 1; // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n\tif (typeof iterations !== 'number') {\n\t\tthrow new TypeError('Iterations not a number');\n\t}\n\n\tif (iterations < 0 || !$isFinite(iterations)) {\n\t\tthrow new TypeError('Bad iterations');\n\t}\n\n\tif (typeof keylen !== 'number') {\n\t\tthrow new TypeError('Key length not a number');\n\t}\n\n\tif (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n\t\tthrow new TypeError('Bad key length');\n\t}\n};\n","'use strict';\n\nvar md5 = require('create-hash/md5');\nvar RIPEMD160 = require('ripemd160');\nvar sha = require('sha.js');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar checkParameters = require('./precondition');\nvar defaultEncoding = require('./default-encoding');\nvar toBuffer = require('./to-buffer');\n\nvar ZEROS = Buffer.alloc(128);\nvar sizes = {\n\t__proto__: null,\n\tmd5: 16,\n\tsha1: 20,\n\tsha224: 28,\n\tsha256: 32,\n\tsha384: 48,\n\tsha512: 64,\n\t'sha512-256': 32,\n\tripemd160: 20,\n\trmd160: 20\n};\n\nvar mapping = {\n\t__proto__: null,\n\t'sha-1': 'sha1',\n\t'sha-224': 'sha224',\n\t'sha-256': 'sha256',\n\t'sha-384': 'sha384',\n\t'sha-512': 'sha512',\n\t'ripemd-160': 'ripemd160'\n};\n\nfunction rmd160Func(data) {\n\treturn new RIPEMD160().update(data).digest();\n}\n\nfunction getDigest(alg) {\n\tfunction shaFunc(data) {\n\t\treturn sha(alg).update(data).digest();\n\t}\n\n\tif (alg === 'rmd160' || alg === 'ripemd160') {\n\t\treturn rmd160Func;\n\t}\n\tif (alg === 'md5') {\n\t\treturn md5;\n\t}\n\treturn shaFunc;\n}\n\nfunction Hmac(alg, key, saltLen) {\n\tvar hash = getDigest(alg);\n\tvar blocksize = alg === 'sha512' || alg === 'sha384' ? 128 : 64;\n\n\tif (key.length > blocksize) {\n\t\tkey = hash(key);\n\t} else if (key.length < blocksize) {\n\t\tkey = Buffer.concat([key, ZEROS], blocksize);\n\t}\n\n\tvar ipad = Buffer.allocUnsafe(blocksize + sizes[alg]);\n\tvar opad = Buffer.allocUnsafe(blocksize + sizes[alg]);\n\tfor (var i = 0; i < blocksize; i++) {\n\t\tipad[i] = key[i] ^ 0x36;\n\t\topad[i] = key[i] ^ 0x5C;\n\t}\n\n\tvar ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4);\n\tipad.copy(ipad1, 0, 0, blocksize);\n\tthis.ipad1 = ipad1;\n\tthis.ipad2 = ipad;\n\tthis.opad = opad;\n\tthis.alg = alg;\n\tthis.blocksize = blocksize;\n\tthis.hash = hash;\n\tthis.size = sizes[alg];\n}\n\nHmac.prototype.run = function (data, ipad) {\n\tdata.copy(ipad, this.blocksize);\n\tvar h = this.hash(ipad);\n\th.copy(this.opad, this.blocksize);\n\treturn this.hash(this.opad);\n};\n\nfunction pbkdf2(password, salt, iterations, keylen, digest) {\n\tcheckParameters(iterations, keylen);\n\tpassword = toBuffer(password, defaultEncoding, 'Password');\n\tsalt = toBuffer(salt, defaultEncoding, 'Salt');\n\n\tvar lowerDigest = (digest || 'sha1').toLowerCase();\n\tvar mappedDigest = mapping[lowerDigest] || lowerDigest;\n\tvar size = sizes[mappedDigest];\n\tif (typeof size !== 'number' || !size) {\n\t\tthrow new TypeError('Digest algorithm not supported: ' + digest);\n\t}\n\n\tvar hmac = new Hmac(mappedDigest, password, salt.length);\n\n\tvar DK = Buffer.allocUnsafe(keylen);\n\tvar block1 = Buffer.allocUnsafe(salt.length + 4);\n\tsalt.copy(block1, 0, 0, salt.length);\n\n\tvar destPos = 0;\n\tvar hLen = size;\n\tvar l = Math.ceil(keylen / hLen);\n\n\tfor (var i = 1; i <= l; i++) {\n\t\tblock1.writeUInt32BE(i, salt.length);\n\n\t\tvar T = hmac.run(block1, hmac.ipad1);\n\t\tvar U = T;\n\n\t\tfor (var j = 1; j < iterations; j++) {\n\t\t\tU = hmac.run(U, hmac.ipad2);\n\t\t\tfor (var k = 0; k < hLen; k++) {\n\t\t\t\tT[k] ^= U[k];\n\t\t\t}\n\t\t}\n\n\t\tT.copy(DK, destPos);\n\t\tdestPos += hLen;\n\t}\n\n\treturn DK;\n}\n\nmodule.exports = pbkdf2;\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar toBuffer = require('to-buffer');\n\nvar useUint8Array = typeof Uint8Array !== 'undefined';\nvar useArrayBuffer = useUint8Array && typeof ArrayBuffer !== 'undefined';\nvar isView = useArrayBuffer && ArrayBuffer.isView;\n\nmodule.exports = function (thing, encoding, name) {\n\tif (\n\t\ttypeof thing === 'string'\n\t\t|| Buffer.isBuffer(thing)\n\t\t|| (useUint8Array && thing instanceof Uint8Array)\n\t\t|| (isView && isView(thing))\n\t) {\n\t\treturn toBuffer(thing, encoding);\n\t}\n\tthrow new TypeError(name + ' must be a string, a Buffer, a Uint8Array, or a DataView');\n};\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = [\n\t'Float16Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int8Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'BigInt64Array',\n\t'BigUint64Array'\n];\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('events').EventEmitter;\n","'use strict';\n\nvar Buffer = require('buffer').Buffer;\nvar inherits = require('inherits');\nvar HashBase = require('hash-base');\n\nvar ARRAY16 = new Array(16);\n\nvar zl = [\n\t0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n\t7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n\t3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n\t1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n\t4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar zr = [\n\t5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n\t6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n\t15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n\t8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n\t12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar sl = [\n\t11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n\t7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n\t11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n\t11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n\t9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sr = [\n\t8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n\t9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n\t9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n\t15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n\t8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e];\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000];\n\nfunction rotl(x, n) {\n\treturn (x << n) | (x >>> (32 - n));\n}\n\nfunction fn1(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0;\n}\n\nfunction fn2(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + ((b & c) | (~b & d)) + m + k) | 0, s) + e) | 0;\n}\n\nfunction fn3(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + ((b | ~c) ^ d) + m + k) | 0, s) + e) | 0;\n}\n\nfunction fn4(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + ((b & d) | (c & ~d)) + m + k) | 0, s) + e) | 0;\n}\n\nfunction fn5(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + (b ^ (c | ~d)) + m + k) | 0, s) + e) | 0;\n}\n\nfunction RIPEMD160() {\n\tHashBase.call(this, 64);\n\n\t// state\n\tthis._a = 0x67452301;\n\tthis._b = 0xefcdab89;\n\tthis._c = 0x98badcfe;\n\tthis._d = 0x10325476;\n\tthis._e = 0xc3d2e1f0;\n}\n\ninherits(RIPEMD160, HashBase);\n\nRIPEMD160.prototype._update = function () {\n\tvar words = ARRAY16;\n\tfor (var j = 0; j < 16; ++j) {\n\t\twords[j] = this._block.readInt32LE(j * 4);\n\t}\n\n\tvar al = this._a | 0;\n\tvar bl = this._b | 0;\n\tvar cl = this._c | 0;\n\tvar dl = this._d | 0;\n\tvar el = this._e | 0;\n\n\tvar ar = this._a | 0;\n\tvar br = this._b | 0;\n\tvar cr = this._c | 0;\n\tvar dr = this._d | 0;\n\tvar er = this._e | 0;\n\n\t// computation\n\tfor (var i = 0; i < 80; i += 1) {\n\t\tvar tl;\n\t\tvar tr;\n\t\tif (i < 16) {\n\t\t\ttl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i]);\n\t\t\ttr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i]);\n\t\t} else if (i < 32) {\n\t\t\ttl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i]);\n\t\t\ttr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i]);\n\t\t} else if (i < 48) {\n\t\t\ttl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i]);\n\t\t\ttr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i]);\n\t\t} else if (i < 64) {\n\t\t\ttl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i]);\n\t\t\ttr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i]);\n\t\t} else { // if (i<80) {\n\t\t\ttl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i]);\n\t\t\ttr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i]);\n\t\t}\n\n\t\tal = el;\n\t\tel = dl;\n\t\tdl = rotl(cl, 10);\n\t\tcl = bl;\n\t\tbl = tl;\n\n\t\tar = er;\n\t\ter = dr;\n\t\tdr = rotl(cr, 10);\n\t\tcr = br;\n\t\tbr = tr;\n\t}\n\n\t// update state\n\tvar t = (this._b + cl + dr) | 0;\n\tthis._b = (this._c + dl + er) | 0;\n\tthis._c = (this._d + el + ar) | 0;\n\tthis._d = (this._e + al + br) | 0;\n\tthis._e = (this._a + bl + cr) | 0;\n\tthis._a = t;\n};\n\nRIPEMD160.prototype._digest = function () {\n\t// create padding and handle blocks\n\tthis._block[this._blockOffset] = 0x80;\n\tthis._blockOffset += 1;\n\tif (this._blockOffset > 56) {\n\t\tthis._block.fill(0, this._blockOffset, 64);\n\t\tthis._update();\n\t\tthis._blockOffset = 0;\n\t}\n\n\tthis._block.fill(0, this._blockOffset, 56);\n\tthis._block.writeUInt32LE(this._length[0], 56);\n\tthis._block.writeUInt32LE(this._length[1], 60);\n\tthis._update();\n\n\t// produce result\n\tvar buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20); // eslint-disable-line no-buffer-constructor\n\tbuffer.writeInt32LE(this._a, 0);\n\tbuffer.writeInt32LE(this._b, 4);\n\tbuffer.writeInt32LE(this._c, 8);\n\tbuffer.writeInt32LE(this._d, 12);\n\tbuffer.writeInt32LE(this._e, 16);\n\treturn buffer;\n};\n\nmodule.exports = RIPEMD160;\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar toBuffer = require('./to-buffer');\nvar Transform = require('readable-stream').Transform;\nvar inherits = require('inherits');\n\nfunction HashBase(blockSize) {\n\tTransform.call(this);\n\n\tthis._block = Buffer.allocUnsafe(blockSize);\n\tthis._blockSize = blockSize;\n\tthis._blockOffset = 0;\n\tthis._length = [0, 0, 0, 0];\n\n\tthis._finalized = false;\n}\n\ninherits(HashBase, Transform);\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n\tvar error = null;\n\ttry {\n\t\tthis.update(chunk, encoding);\n\t} catch (err) {\n\t\terror = err;\n\t}\n\n\tcallback(error);\n};\n\nHashBase.prototype._flush = function (callback) {\n\tvar error = null;\n\ttry {\n\t\tthis.push(this.digest());\n\t} catch (err) {\n\t\terror = err;\n\t}\n\n\tcallback(error);\n};\n\nHashBase.prototype.update = function (data, encoding) {\n\tif (this._finalized) {\n\t\tthrow new Error('Digest already called');\n\t}\n\n\tvar dataBuffer = toBuffer(data, encoding); // asserts correct input type\n\n\t// consume data\n\tvar block = this._block;\n\tvar offset = 0;\n\twhile (this._blockOffset + dataBuffer.length - offset >= this._blockSize) {\n\t\tfor (var i = this._blockOffset; i < this._blockSize;) {\n\t\t\tblock[i] = dataBuffer[offset];\n\t\t\ti += 1;\n\t\t\toffset += 1;\n\t\t}\n\t\tthis._update();\n\t\tthis._blockOffset = 0;\n\t}\n\twhile (offset < dataBuffer.length) {\n\t\tblock[this._blockOffset] = dataBuffer[offset];\n\t\tthis._blockOffset += 1;\n\t\toffset += 1;\n\t}\n\n\t// update length\n\tfor (var j = 0, carry = dataBuffer.length * 8; carry > 0; ++j) {\n\t\tthis._length[j] += carry;\n\t\tcarry = (this._length[j] / 0x0100000000) | 0;\n\t\tif (carry > 0) {\n\t\t\tthis._length[j] -= 0x0100000000 * carry;\n\t\t}\n\t}\n\n\treturn this;\n};\n\nHashBase.prototype._update = function () {\n\tthrow new Error('_update is not implemented');\n};\n\nHashBase.prototype.digest = function (encoding) {\n\tif (this._finalized) {\n\t\tthrow new Error('Digest already called');\n\t}\n\tthis._finalized = true;\n\n\tvar digest = this._digest();\n\tif (encoding !== undefined) {\n\t\tdigest = digest.toString(encoding);\n\t}\n\n\t// reset state\n\tthis._block.fill(0);\n\tthis._blockOffset = 0;\n\tfor (var i = 0; i < 4; ++i) {\n\t\tthis._length[i] = 0;\n\t}\n\n\treturn digest;\n};\n\nHashBase.prototype._digest = function () {\n\tthrow new Error('_digest is not implemented');\n};\n\nmodule.exports = HashBase;\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar toBuffer = require('to-buffer');\n\nvar useUint8Array = typeof Uint8Array !== 'undefined';\nvar useArrayBuffer = useUint8Array && typeof ArrayBuffer !== 'undefined';\nvar isView = useArrayBuffer && ArrayBuffer.isView;\n\nmodule.exports = function (thing, encoding) {\n\tif (\n\t\ttypeof thing === 'string'\n || Buffer.isBuffer(thing)\n || (useUint8Array && thing instanceof Uint8Array)\n || (isView && isView(thing))\n\t) {\n\t\treturn toBuffer(thing, encoding);\n\t}\n\tthrow new TypeError('The \"data\" argument must be a string, a Buffer, a Uint8Array, or a DataView');\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, { hasUnpiped: false });\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n pna.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n pna.nextTick(emitErrorNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, _this, err);\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","module.exports = require('events').EventEmitter;\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict';\n\nvar callBound = require('call-bound');\nvar isRegex = require('is-regex');\n\nvar $exec = callBound('RegExp.prototype.exec');\nvar $TypeError = require('es-errors/type');\n\n/** @type {import('.')} */\nmodule.exports = function regexTester(regex) {\n\tif (!isRegex(regex)) {\n\t\tthrow new $TypeError('`regex` must be a RegExp');\n\t}\n\treturn function test(s) {\n\t\treturn $exec(regex, s) !== null;\n\t};\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar toBuffer = require('to-buffer');\n\n// prototype class for hash functions\nfunction Hash(blockSize, finalSize) {\n\tthis._block = Buffer.alloc(blockSize);\n\tthis._finalSize = finalSize;\n\tthis._blockSize = blockSize;\n\tthis._len = 0;\n}\n\nHash.prototype.update = function (data, enc) {\n\t/* eslint no-param-reassign: 0 */\n\tdata = toBuffer(data, enc || 'utf8');\n\n\tvar block = this._block;\n\tvar blockSize = this._blockSize;\n\tvar length = data.length;\n\tvar accum = this._len;\n\n\tfor (var offset = 0; offset < length;) {\n\t\tvar assigned = accum % blockSize;\n\t\tvar remainder = Math.min(length - offset, blockSize - assigned);\n\n\t\tfor (var i = 0; i < remainder; i++) {\n\t\t\tblock[assigned + i] = data[offset + i];\n\t\t}\n\n\t\taccum += remainder;\n\t\toffset += remainder;\n\n\t\tif ((accum % blockSize) === 0) {\n\t\t\tthis._update(block);\n\t\t}\n\t}\n\n\tthis._len += length;\n\treturn this;\n};\n\nHash.prototype.digest = function (enc) {\n\tvar rem = this._len % this._blockSize;\n\n\tthis._block[rem] = 0x80;\n\n\t/*\n\t * zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n\t * non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n\t */\n\tthis._block.fill(0, rem + 1);\n\n\tif (rem >= this._finalSize) {\n\t\tthis._update(this._block);\n\t\tthis._block.fill(0);\n\t}\n\n\tvar bits = this._len * 8;\n\n\t// uint32\n\tif (bits <= 0xffffffff) {\n\t\tthis._block.writeUInt32BE(bits, this._blockSize - 4);\n\n\t\t// uint64\n\t} else {\n\t\tvar lowBits = (bits & 0xffffffff) >>> 0;\n\t\tvar highBits = (bits - lowBits) / 0x100000000;\n\n\t\tthis._block.writeUInt32BE(highBits, this._blockSize - 8);\n\t\tthis._block.writeUInt32BE(lowBits, this._blockSize - 4);\n\t}\n\n\tthis._update(this._block);\n\tvar hash = this._hash();\n\n\treturn enc ? hash.toString(enc) : hash;\n};\n\nHash.prototype._update = function () {\n\tthrow new Error('_update must be implemented by subclass');\n};\n\nmodule.exports = Hash;\n","'use strict';\n\nmodule.exports = function SHA(algorithm) {\n\tvar alg = algorithm.toLowerCase();\n\n\tvar Algorithm = module.exports[alg];\n\tif (!Algorithm) {\n\t\tthrow new Error(alg + ' is not supported (we accept pull requests)');\n\t}\n\n\treturn new Algorithm();\n};\n\nmodule.exports.sha = require('./sha');\nmodule.exports.sha1 = require('./sha1');\nmodule.exports.sha224 = require('./sha224');\nmodule.exports.sha256 = require('./sha256');\nmodule.exports.sha384 = require('./sha384');\nmodule.exports.sha512 = require('./sha512');\n","'use strict';\n\n/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar K = [\n\t0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n];\n\nvar W = new Array(80);\n\nfunction Sha() {\n\tthis.init();\n\tthis._w = W;\n\n\tHash.call(this, 64, 56);\n}\n\ninherits(Sha, Hash);\n\nSha.prototype.init = function () {\n\tthis._a = 0x67452301;\n\tthis._b = 0xefcdab89;\n\tthis._c = 0x98badcfe;\n\tthis._d = 0x10325476;\n\tthis._e = 0xc3d2e1f0;\n\n\treturn this;\n};\n\nfunction rotl5(num) {\n\treturn (num << 5) | (num >>> 27);\n}\n\nfunction rotl30(num) {\n\treturn (num << 30) | (num >>> 2);\n}\n\nfunction ft(s, b, c, d) {\n\tif (s === 0) {\n\t\treturn (b & c) | (~b & d);\n\t}\n\tif (s === 2) {\n\t\treturn (b & c) | (b & d) | (c & d);\n\t}\n\treturn b ^ c ^ d;\n}\n\nSha.prototype._update = function (M) {\n\tvar w = this._w;\n\n\tvar a = this._a | 0;\n\tvar b = this._b | 0;\n\tvar c = this._c | 0;\n\tvar d = this._d | 0;\n\tvar e = this._e | 0;\n\n\tfor (var i = 0; i < 16; ++i) {\n\t\tw[i] = M.readInt32BE(i * 4);\n\t}\n\tfor (; i < 80; ++i) {\n\t\tw[i] = w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16];\n\t}\n\n\tfor (var j = 0; j < 80; ++j) {\n\t\tvar s = ~~(j / 20);\n\t\tvar t = (rotl5(a) + ft(s, b, c, d) + e + w[j] + K[s]) | 0;\n\n\t\te = d;\n\t\td = c;\n\t\tc = rotl30(b);\n\t\tb = a;\n\t\ta = t;\n\t}\n\n\tthis._a = (a + this._a) | 0;\n\tthis._b = (b + this._b) | 0;\n\tthis._c = (c + this._c) | 0;\n\tthis._d = (d + this._d) | 0;\n\tthis._e = (e + this._e) | 0;\n};\n\nSha.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(20);\n\n\tH.writeInt32BE(this._a | 0, 0);\n\tH.writeInt32BE(this._b | 0, 4);\n\tH.writeInt32BE(this._c | 0, 8);\n\tH.writeInt32BE(this._d | 0, 12);\n\tH.writeInt32BE(this._e | 0, 16);\n\n\treturn H;\n};\n\nmodule.exports = Sha;\n","'use strict';\n\n/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar K = [\n\t0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n];\n\nvar W = new Array(80);\n\nfunction Sha1() {\n\tthis.init();\n\tthis._w = W;\n\n\tHash.call(this, 64, 56);\n}\n\ninherits(Sha1, Hash);\n\nSha1.prototype.init = function () {\n\tthis._a = 0x67452301;\n\tthis._b = 0xefcdab89;\n\tthis._c = 0x98badcfe;\n\tthis._d = 0x10325476;\n\tthis._e = 0xc3d2e1f0;\n\n\treturn this;\n};\n\nfunction rotl1(num) {\n\treturn (num << 1) | (num >>> 31);\n}\n\nfunction rotl5(num) {\n\treturn (num << 5) | (num >>> 27);\n}\n\nfunction rotl30(num) {\n\treturn (num << 30) | (num >>> 2);\n}\n\nfunction ft(s, b, c, d) {\n\tif (s === 0) {\n\t\treturn (b & c) | (~b & d);\n\t}\n\tif (s === 2) {\n\t\treturn (b & c) | (b & d) | (c & d);\n\t}\n\treturn b ^ c ^ d;\n}\n\nSha1.prototype._update = function (M) {\n\tvar w = this._w;\n\n\tvar a = this._a | 0;\n\tvar b = this._b | 0;\n\tvar c = this._c | 0;\n\tvar d = this._d | 0;\n\tvar e = this._e | 0;\n\n\tfor (var i = 0; i < 16; ++i) {\n\t\tw[i] = M.readInt32BE(i * 4);\n\t}\n\tfor (; i < 80; ++i) {\n\t\tw[i] = rotl1(w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16]);\n\t}\n\n\tfor (var j = 0; j < 80; ++j) {\n\t\tvar s = ~~(j / 20);\n\t\tvar t = (rotl5(a) + ft(s, b, c, d) + e + w[j] + K[s]) | 0;\n\n\t\te = d;\n\t\td = c;\n\t\tc = rotl30(b);\n\t\tb = a;\n\t\ta = t;\n\t}\n\n\tthis._a = (a + this._a) | 0;\n\tthis._b = (b + this._b) | 0;\n\tthis._c = (c + this._c) | 0;\n\tthis._d = (d + this._d) | 0;\n\tthis._e = (e + this._e) | 0;\n};\n\nSha1.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(20);\n\n\tH.writeInt32BE(this._a | 0, 0);\n\tH.writeInt32BE(this._b | 0, 4);\n\tH.writeInt32BE(this._c | 0, 8);\n\tH.writeInt32BE(this._d | 0, 12);\n\tH.writeInt32BE(this._e | 0, 16);\n\n\treturn H;\n};\n\nmodule.exports = Sha1;\n","'use strict';\n\n/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits');\nvar Sha256 = require('./sha256');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar W = new Array(64);\n\nfunction Sha224() {\n\tthis.init();\n\n\tthis._w = W; // new Array(64)\n\n\tHash.call(this, 64, 56);\n}\n\ninherits(Sha224, Sha256);\n\nSha224.prototype.init = function () {\n\tthis._a = 0xc1059ed8;\n\tthis._b = 0x367cd507;\n\tthis._c = 0x3070dd17;\n\tthis._d = 0xf70e5939;\n\tthis._e = 0xffc00b31;\n\tthis._f = 0x68581511;\n\tthis._g = 0x64f98fa7;\n\tthis._h = 0xbefa4fa4;\n\n\treturn this;\n};\n\nSha224.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(28);\n\n\tH.writeInt32BE(this._a, 0);\n\tH.writeInt32BE(this._b, 4);\n\tH.writeInt32BE(this._c, 8);\n\tH.writeInt32BE(this._d, 12);\n\tH.writeInt32BE(this._e, 16);\n\tH.writeInt32BE(this._f, 20);\n\tH.writeInt32BE(this._g, 24);\n\n\treturn H;\n};\n\nmodule.exports = Sha224;\n","'use strict';\n\n/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar K = [\n\t0x428A2F98,\n\t0x71374491,\n\t0xB5C0FBCF,\n\t0xE9B5DBA5,\n\t0x3956C25B,\n\t0x59F111F1,\n\t0x923F82A4,\n\t0xAB1C5ED5,\n\t0xD807AA98,\n\t0x12835B01,\n\t0x243185BE,\n\t0x550C7DC3,\n\t0x72BE5D74,\n\t0x80DEB1FE,\n\t0x9BDC06A7,\n\t0xC19BF174,\n\t0xE49B69C1,\n\t0xEFBE4786,\n\t0x0FC19DC6,\n\t0x240CA1CC,\n\t0x2DE92C6F,\n\t0x4A7484AA,\n\t0x5CB0A9DC,\n\t0x76F988DA,\n\t0x983E5152,\n\t0xA831C66D,\n\t0xB00327C8,\n\t0xBF597FC7,\n\t0xC6E00BF3,\n\t0xD5A79147,\n\t0x06CA6351,\n\t0x14292967,\n\t0x27B70A85,\n\t0x2E1B2138,\n\t0x4D2C6DFC,\n\t0x53380D13,\n\t0x650A7354,\n\t0x766A0ABB,\n\t0x81C2C92E,\n\t0x92722C85,\n\t0xA2BFE8A1,\n\t0xA81A664B,\n\t0xC24B8B70,\n\t0xC76C51A3,\n\t0xD192E819,\n\t0xD6990624,\n\t0xF40E3585,\n\t0x106AA070,\n\t0x19A4C116,\n\t0x1E376C08,\n\t0x2748774C,\n\t0x34B0BCB5,\n\t0x391C0CB3,\n\t0x4ED8AA4A,\n\t0x5B9CCA4F,\n\t0x682E6FF3,\n\t0x748F82EE,\n\t0x78A5636F,\n\t0x84C87814,\n\t0x8CC70208,\n\t0x90BEFFFA,\n\t0xA4506CEB,\n\t0xBEF9A3F7,\n\t0xC67178F2\n];\n\nvar W = new Array(64);\n\nfunction Sha256() {\n\tthis.init();\n\n\tthis._w = W; // new Array(64)\n\n\tHash.call(this, 64, 56);\n}\n\ninherits(Sha256, Hash);\n\nSha256.prototype.init = function () {\n\tthis._a = 0x6a09e667;\n\tthis._b = 0xbb67ae85;\n\tthis._c = 0x3c6ef372;\n\tthis._d = 0xa54ff53a;\n\tthis._e = 0x510e527f;\n\tthis._f = 0x9b05688c;\n\tthis._g = 0x1f83d9ab;\n\tthis._h = 0x5be0cd19;\n\n\treturn this;\n};\n\nfunction ch(x, y, z) {\n\treturn z ^ (x & (y ^ z));\n}\n\nfunction maj(x, y, z) {\n\treturn (x & y) | (z & (x | y));\n}\n\nfunction sigma0(x) {\n\treturn ((x >>> 2) | (x << 30)) ^ ((x >>> 13) | (x << 19)) ^ ((x >>> 22) | (x << 10));\n}\n\nfunction sigma1(x) {\n\treturn ((x >>> 6) | (x << 26)) ^ ((x >>> 11) | (x << 21)) ^ ((x >>> 25) | (x << 7));\n}\n\nfunction gamma0(x) {\n\treturn ((x >>> 7) | (x << 25)) ^ ((x >>> 18) | (x << 14)) ^ (x >>> 3);\n}\n\nfunction gamma1(x) {\n\treturn ((x >>> 17) | (x << 15)) ^ ((x >>> 19) | (x << 13)) ^ (x >>> 10);\n}\n\nSha256.prototype._update = function (M) {\n\tvar w = this._w;\n\n\tvar a = this._a | 0;\n\tvar b = this._b | 0;\n\tvar c = this._c | 0;\n\tvar d = this._d | 0;\n\tvar e = this._e | 0;\n\tvar f = this._f | 0;\n\tvar g = this._g | 0;\n\tvar h = this._h | 0;\n\n\tfor (var i = 0; i < 16; ++i) {\n\t\tw[i] = M.readInt32BE(i * 4);\n\t}\n\tfor (; i < 64; ++i) {\n\t\tw[i] = (gamma1(w[i - 2]) + w[i - 7] + gamma0(w[i - 15]) + w[i - 16]) | 0;\n\t}\n\n\tfor (var j = 0; j < 64; ++j) {\n\t\tvar T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + w[j]) | 0;\n\t\tvar T2 = (sigma0(a) + maj(a, b, c)) | 0;\n\n\t\th = g;\n\t\tg = f;\n\t\tf = e;\n\t\te = (d + T1) | 0;\n\t\td = c;\n\t\tc = b;\n\t\tb = a;\n\t\ta = (T1 + T2) | 0;\n\t}\n\n\tthis._a = (a + this._a) | 0;\n\tthis._b = (b + this._b) | 0;\n\tthis._c = (c + this._c) | 0;\n\tthis._d = (d + this._d) | 0;\n\tthis._e = (e + this._e) | 0;\n\tthis._f = (f + this._f) | 0;\n\tthis._g = (g + this._g) | 0;\n\tthis._h = (h + this._h) | 0;\n};\n\nSha256.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(32);\n\n\tH.writeInt32BE(this._a, 0);\n\tH.writeInt32BE(this._b, 4);\n\tH.writeInt32BE(this._c, 8);\n\tH.writeInt32BE(this._d, 12);\n\tH.writeInt32BE(this._e, 16);\n\tH.writeInt32BE(this._f, 20);\n\tH.writeInt32BE(this._g, 24);\n\tH.writeInt32BE(this._h, 28);\n\n\treturn H;\n};\n\nmodule.exports = Sha256;\n","'use strict';\n\nvar inherits = require('inherits');\nvar SHA512 = require('./sha512');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar W = new Array(160);\n\nfunction Sha384() {\n\tthis.init();\n\tthis._w = W;\n\n\tHash.call(this, 128, 112);\n}\n\ninherits(Sha384, SHA512);\n\nSha384.prototype.init = function () {\n\tthis._ah = 0xcbbb9d5d;\n\tthis._bh = 0x629a292a;\n\tthis._ch = 0x9159015a;\n\tthis._dh = 0x152fecd8;\n\tthis._eh = 0x67332667;\n\tthis._fh = 0x8eb44a87;\n\tthis._gh = 0xdb0c2e0d;\n\tthis._hh = 0x47b5481d;\n\n\tthis._al = 0xc1059ed8;\n\tthis._bl = 0x367cd507;\n\tthis._cl = 0x3070dd17;\n\tthis._dl = 0xf70e5939;\n\tthis._el = 0xffc00b31;\n\tthis._fl = 0x68581511;\n\tthis._gl = 0x64f98fa7;\n\tthis._hl = 0xbefa4fa4;\n\n\treturn this;\n};\n\nSha384.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(48);\n\n\tfunction writeInt64BE(h, l, offset) {\n\t\tH.writeInt32BE(h, offset);\n\t\tH.writeInt32BE(l, offset + 4);\n\t}\n\n\twriteInt64BE(this._ah, this._al, 0);\n\twriteInt64BE(this._bh, this._bl, 8);\n\twriteInt64BE(this._ch, this._cl, 16);\n\twriteInt64BE(this._dh, this._dl, 24);\n\twriteInt64BE(this._eh, this._el, 32);\n\twriteInt64BE(this._fh, this._fl, 40);\n\n\treturn H;\n};\n\nmodule.exports = Sha384;\n","'use strict';\n\nvar inherits = require('inherits');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar K = [\n\t0x428a2f98,\n\t0xd728ae22,\n\t0x71374491,\n\t0x23ef65cd,\n\t0xb5c0fbcf,\n\t0xec4d3b2f,\n\t0xe9b5dba5,\n\t0x8189dbbc,\n\t0x3956c25b,\n\t0xf348b538,\n\t0x59f111f1,\n\t0xb605d019,\n\t0x923f82a4,\n\t0xaf194f9b,\n\t0xab1c5ed5,\n\t0xda6d8118,\n\t0xd807aa98,\n\t0xa3030242,\n\t0x12835b01,\n\t0x45706fbe,\n\t0x243185be,\n\t0x4ee4b28c,\n\t0x550c7dc3,\n\t0xd5ffb4e2,\n\t0x72be5d74,\n\t0xf27b896f,\n\t0x80deb1fe,\n\t0x3b1696b1,\n\t0x9bdc06a7,\n\t0x25c71235,\n\t0xc19bf174,\n\t0xcf692694,\n\t0xe49b69c1,\n\t0x9ef14ad2,\n\t0xefbe4786,\n\t0x384f25e3,\n\t0x0fc19dc6,\n\t0x8b8cd5b5,\n\t0x240ca1cc,\n\t0x77ac9c65,\n\t0x2de92c6f,\n\t0x592b0275,\n\t0x4a7484aa,\n\t0x6ea6e483,\n\t0x5cb0a9dc,\n\t0xbd41fbd4,\n\t0x76f988da,\n\t0x831153b5,\n\t0x983e5152,\n\t0xee66dfab,\n\t0xa831c66d,\n\t0x2db43210,\n\t0xb00327c8,\n\t0x98fb213f,\n\t0xbf597fc7,\n\t0xbeef0ee4,\n\t0xc6e00bf3,\n\t0x3da88fc2,\n\t0xd5a79147,\n\t0x930aa725,\n\t0x06ca6351,\n\t0xe003826f,\n\t0x14292967,\n\t0x0a0e6e70,\n\t0x27b70a85,\n\t0x46d22ffc,\n\t0x2e1b2138,\n\t0x5c26c926,\n\t0x4d2c6dfc,\n\t0x5ac42aed,\n\t0x53380d13,\n\t0x9d95b3df,\n\t0x650a7354,\n\t0x8baf63de,\n\t0x766a0abb,\n\t0x3c77b2a8,\n\t0x81c2c92e,\n\t0x47edaee6,\n\t0x92722c85,\n\t0x1482353b,\n\t0xa2bfe8a1,\n\t0x4cf10364,\n\t0xa81a664b,\n\t0xbc423001,\n\t0xc24b8b70,\n\t0xd0f89791,\n\t0xc76c51a3,\n\t0x0654be30,\n\t0xd192e819,\n\t0xd6ef5218,\n\t0xd6990624,\n\t0x5565a910,\n\t0xf40e3585,\n\t0x5771202a,\n\t0x106aa070,\n\t0x32bbd1b8,\n\t0x19a4c116,\n\t0xb8d2d0c8,\n\t0x1e376c08,\n\t0x5141ab53,\n\t0x2748774c,\n\t0xdf8eeb99,\n\t0x34b0bcb5,\n\t0xe19b48a8,\n\t0x391c0cb3,\n\t0xc5c95a63,\n\t0x4ed8aa4a,\n\t0xe3418acb,\n\t0x5b9cca4f,\n\t0x7763e373,\n\t0x682e6ff3,\n\t0xd6b2b8a3,\n\t0x748f82ee,\n\t0x5defb2fc,\n\t0x78a5636f,\n\t0x43172f60,\n\t0x84c87814,\n\t0xa1f0ab72,\n\t0x8cc70208,\n\t0x1a6439ec,\n\t0x90befffa,\n\t0x23631e28,\n\t0xa4506ceb,\n\t0xde82bde9,\n\t0xbef9a3f7,\n\t0xb2c67915,\n\t0xc67178f2,\n\t0xe372532b,\n\t0xca273ece,\n\t0xea26619c,\n\t0xd186b8c7,\n\t0x21c0c207,\n\t0xeada7dd6,\n\t0xcde0eb1e,\n\t0xf57d4f7f,\n\t0xee6ed178,\n\t0x06f067aa,\n\t0x72176fba,\n\t0x0a637dc5,\n\t0xa2c898a6,\n\t0x113f9804,\n\t0xbef90dae,\n\t0x1b710b35,\n\t0x131c471b,\n\t0x28db77f5,\n\t0x23047d84,\n\t0x32caab7b,\n\t0x40c72493,\n\t0x3c9ebe0a,\n\t0x15c9bebc,\n\t0x431d67c4,\n\t0x9c100d4c,\n\t0x4cc5d4be,\n\t0xcb3e42b6,\n\t0x597f299c,\n\t0xfc657e2a,\n\t0x5fcb6fab,\n\t0x3ad6faec,\n\t0x6c44198c,\n\t0x4a475817\n];\n\nvar W = new Array(160);\n\nfunction Sha512() {\n\tthis.init();\n\tthis._w = W;\n\n\tHash.call(this, 128, 112);\n}\n\ninherits(Sha512, Hash);\n\nSha512.prototype.init = function () {\n\tthis._ah = 0x6a09e667;\n\tthis._bh = 0xbb67ae85;\n\tthis._ch = 0x3c6ef372;\n\tthis._dh = 0xa54ff53a;\n\tthis._eh = 0x510e527f;\n\tthis._fh = 0x9b05688c;\n\tthis._gh = 0x1f83d9ab;\n\tthis._hh = 0x5be0cd19;\n\n\tthis._al = 0xf3bcc908;\n\tthis._bl = 0x84caa73b;\n\tthis._cl = 0xfe94f82b;\n\tthis._dl = 0x5f1d36f1;\n\tthis._el = 0xade682d1;\n\tthis._fl = 0x2b3e6c1f;\n\tthis._gl = 0xfb41bd6b;\n\tthis._hl = 0x137e2179;\n\n\treturn this;\n};\n\nfunction Ch(x, y, z) {\n\treturn z ^ (x & (y ^ z));\n}\n\nfunction maj(x, y, z) {\n\treturn (x & y) | (z & (x | y));\n}\n\nfunction sigma0(x, xl) {\n\treturn ((x >>> 28) | (xl << 4)) ^ ((xl >>> 2) | (x << 30)) ^ ((xl >>> 7) | (x << 25));\n}\n\nfunction sigma1(x, xl) {\n\treturn ((x >>> 14) | (xl << 18)) ^ ((x >>> 18) | (xl << 14)) ^ ((xl >>> 9) | (x << 23));\n}\n\nfunction Gamma0(x, xl) {\n\treturn ((x >>> 1) | (xl << 31)) ^ ((x >>> 8) | (xl << 24)) ^ (x >>> 7);\n}\n\nfunction Gamma0l(x, xl) {\n\treturn ((x >>> 1) | (xl << 31)) ^ ((x >>> 8) | (xl << 24)) ^ ((x >>> 7) | (xl << 25));\n}\n\nfunction Gamma1(x, xl) {\n\treturn ((x >>> 19) | (xl << 13)) ^ ((xl >>> 29) | (x << 3)) ^ (x >>> 6);\n}\n\nfunction Gamma1l(x, xl) {\n\treturn ((x >>> 19) | (xl << 13)) ^ ((xl >>> 29) | (x << 3)) ^ ((x >>> 6) | (xl << 26));\n}\n\nfunction getCarry(a, b) {\n\treturn (a >>> 0) < (b >>> 0) ? 1 : 0;\n}\n\nSha512.prototype._update = function (M) {\n\tvar w = this._w;\n\n\tvar ah = this._ah | 0;\n\tvar bh = this._bh | 0;\n\tvar ch = this._ch | 0;\n\tvar dh = this._dh | 0;\n\tvar eh = this._eh | 0;\n\tvar fh = this._fh | 0;\n\tvar gh = this._gh | 0;\n\tvar hh = this._hh | 0;\n\n\tvar al = this._al | 0;\n\tvar bl = this._bl | 0;\n\tvar cl = this._cl | 0;\n\tvar dl = this._dl | 0;\n\tvar el = this._el | 0;\n\tvar fl = this._fl | 0;\n\tvar gl = this._gl | 0;\n\tvar hl = this._hl | 0;\n\n\tfor (var i = 0; i < 32; i += 2) {\n\t\tw[i] = M.readInt32BE(i * 4);\n\t\tw[i + 1] = M.readInt32BE((i * 4) + 4);\n\t}\n\tfor (; i < 160; i += 2) {\n\t\tvar xh = w[i - (15 * 2)];\n\t\tvar xl = w[i - (15 * 2) + 1];\n\t\tvar gamma0 = Gamma0(xh, xl);\n\t\tvar gamma0l = Gamma0l(xl, xh);\n\n\t\txh = w[i - (2 * 2)];\n\t\txl = w[i - (2 * 2) + 1];\n\t\tvar gamma1 = Gamma1(xh, xl);\n\t\tvar gamma1l = Gamma1l(xl, xh);\n\n\t\t// w[i] = gamma0 + w[i - 7] + gamma1 + w[i - 16]\n\t\tvar Wi7h = w[i - (7 * 2)];\n\t\tvar Wi7l = w[i - (7 * 2) + 1];\n\n\t\tvar Wi16h = w[i - (16 * 2)];\n\t\tvar Wi16l = w[i - (16 * 2) + 1];\n\n\t\tvar Wil = (gamma0l + Wi7l) | 0;\n\t\tvar Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0;\n\t\tWil = (Wil + gamma1l) | 0;\n\t\tWih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0;\n\t\tWil = (Wil + Wi16l) | 0;\n\t\tWih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0;\n\n\t\tw[i] = Wih;\n\t\tw[i + 1] = Wil;\n\t}\n\n\tfor (var j = 0; j < 160; j += 2) {\n\t\tWih = w[j];\n\t\tWil = w[j + 1];\n\n\t\tvar majh = maj(ah, bh, ch);\n\t\tvar majl = maj(al, bl, cl);\n\n\t\tvar sigma0h = sigma0(ah, al);\n\t\tvar sigma0l = sigma0(al, ah);\n\t\tvar sigma1h = sigma1(eh, el);\n\t\tvar sigma1l = sigma1(el, eh);\n\n\t\t// t1 = h + sigma1 + ch + K[j] + w[j]\n\t\tvar Kih = K[j];\n\t\tvar Kil = K[j + 1];\n\n\t\tvar chh = Ch(eh, fh, gh);\n\t\tvar chl = Ch(el, fl, gl);\n\n\t\tvar t1l = (hl + sigma1l) | 0;\n\t\tvar t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0;\n\t\tt1l = (t1l + chl) | 0;\n\t\tt1h = (t1h + chh + getCarry(t1l, chl)) | 0;\n\t\tt1l = (t1l + Kil) | 0;\n\t\tt1h = (t1h + Kih + getCarry(t1l, Kil)) | 0;\n\t\tt1l = (t1l + Wil) | 0;\n\t\tt1h = (t1h + Wih + getCarry(t1l, Wil)) | 0;\n\n\t\t// t2 = sigma0 + maj\n\t\tvar t2l = (sigma0l + majl) | 0;\n\t\tvar t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0;\n\n\t\thh = gh;\n\t\thl = gl;\n\t\tgh = fh;\n\t\tgl = fl;\n\t\tfh = eh;\n\t\tfl = el;\n\t\tel = (dl + t1l) | 0;\n\t\teh = (dh + t1h + getCarry(el, dl)) | 0;\n\t\tdh = ch;\n\t\tdl = cl;\n\t\tch = bh;\n\t\tcl = bl;\n\t\tbh = ah;\n\t\tbl = al;\n\t\tal = (t1l + t2l) | 0;\n\t\tah = (t1h + t2h + getCarry(al, t1l)) | 0;\n\t}\n\n\tthis._al = (this._al + al) | 0;\n\tthis._bl = (this._bl + bl) | 0;\n\tthis._cl = (this._cl + cl) | 0;\n\tthis._dl = (this._dl + dl) | 0;\n\tthis._el = (this._el + el) | 0;\n\tthis._fl = (this._fl + fl) | 0;\n\tthis._gl = (this._gl + gl) | 0;\n\tthis._hl = (this._hl + hl) | 0;\n\n\tthis._ah = (this._ah + ah + getCarry(this._al, al)) | 0;\n\tthis._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0;\n\tthis._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0;\n\tthis._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0;\n\tthis._eh = (this._eh + eh + getCarry(this._el, el)) | 0;\n\tthis._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0;\n\tthis._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0;\n\tthis._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0;\n};\n\nSha512.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(64);\n\n\tfunction writeInt64BE(h, l, offset) {\n\t\tH.writeInt32BE(h, offset);\n\t\tH.writeInt32BE(l, offset + 4);\n\t}\n\n\twriteInt64BE(this._ah, this._al, 0);\n\twriteInt64BE(this._bh, this._bl, 8);\n\twriteInt64BE(this._ch, this._cl, 16);\n\twriteInt64BE(this._dh, this._dl, 24);\n\twriteInt64BE(this._eh, this._el, 32);\n\twriteInt64BE(this._fh, this._fl, 40);\n\twriteInt64BE(this._gh, this._gl, 48);\n\twriteInt64BE(this._hh, this._hl, 56);\n\n\treturn H;\n};\n\nmodule.exports = Sha512;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/lib/_stream_readable.js');\nStream.Writable = require('readable-stream/lib/_stream_writable.js');\nStream.Duplex = require('readable-stream/lib/_stream_duplex.js');\nStream.Transform = require('readable-stream/lib/_stream_transform.js');\nStream.PassThrough = require('readable-stream/lib/_stream_passthrough.js');\nStream.finished = require('readable-stream/lib/internal/streams/end-of-stream.js')\nStream.pipeline = require('readable-stream/lib/internal/streams/pipeline.js')\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports['default'] = symbolObservablePonyfill;\nfunction symbolObservablePonyfill(root) {\n\tvar result;\n\tvar _Symbol = root.Symbol;\n\n\tif (typeof _Symbol === 'function') {\n\t\tif (_Symbol.observable) {\n\t\t\tresult = _Symbol.observable;\n\t\t} else {\n\n\t\t\t// This just needs to be something that won't trample other user's Symbol.for use\n\t\t\t// It also will guide people to the source of their issues, if this is problematic.\n\t\t\t// META: It's a resource locator!\n\t\t\tresult = _Symbol['for']('https://github.com/benlesh/symbol-observable');\n\t\t\ttry {\n\t\t\t\t_Symbol.observable = result;\n\t\t\t} catch (err) {\n\t\t\t\t// Do nothing. In some environments, users have frozen `Symbol` for security reasons,\n\t\t\t\t// if it is frozen assigning to it will throw. In this case, we don't care, because\n\t\t\t\t// they will need to use the returned value from the ponyfill.\n\t\t\t}\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};","module.exports = require('./lib/ponyfill');\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar isArray = require('isarray');\nvar typedArrayBuffer = require('typed-array-buffer');\n\nvar isView = ArrayBuffer.isView || function isView(obj) {\n\ttry {\n\t\ttypedArrayBuffer(obj);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar useUint8Array = typeof Uint8Array !== 'undefined';\nvar useArrayBuffer = typeof ArrayBuffer !== 'undefined'\n\t&& typeof Uint8Array !== 'undefined';\nvar useFromArrayBuffer = useArrayBuffer && (Buffer.prototype instanceof Uint8Array || Buffer.TYPED_ARRAY_SUPPORT);\n\nmodule.exports = function toBuffer(data, encoding) {\n\tif (Buffer.isBuffer(data)) {\n\t\tif (data.constructor && !('isBuffer' in data)) {\n\t\t\t// probably a SlowBuffer\n\t\t\treturn Buffer.from(data);\n\t\t}\n\t\treturn data;\n\t}\n\n\tif (typeof data === 'string') {\n\t\treturn Buffer.from(data, encoding);\n\t}\n\n\t/*\n\t * Wrap any TypedArray instances and DataViews\n\t * Makes sense only on engines with full TypedArray support -- let Buffer detect that\n\t */\n\tif (useArrayBuffer && isView(data)) {\n\t\t// Bug in Node.js <6.3.1, which treats this as out-of-bounds\n\t\tif (data.byteLength === 0) {\n\t\t\treturn Buffer.alloc(0);\n\t\t}\n\n\t\t// When Buffer is based on Uint8Array, we can just construct it from ArrayBuffer\n\t\tif (useFromArrayBuffer) {\n\t\t\tvar res = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n\t\t\t/*\n\t\t\t * Recheck result size, as offset/length doesn't work on Node.js <5.10\n\t\t\t * We just go to Uint8Array case if this fails\n\t\t\t */\n\t\t\tif (res.byteLength === data.byteLength) {\n\t\t\t\treturn res;\n\t\t\t}\n\t\t}\n\n\t\t// Convert to Uint8Array bytes and then to Buffer\n\t\tvar uint8 = data instanceof Uint8Array ? data : new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n\t\tvar result = Buffer.from(uint8);\n\n\t\t/*\n\t\t * Let's recheck that conversion succeeded\n\t\t * We have .length but not .byteLength when useFromArrayBuffer is false\n\t\t */\n\t\tif (result.length === data.byteLength) {\n\t\t\treturn result;\n\t\t}\n\t}\n\n\t/*\n\t * Uint8Array in engines where Buffer.from might not work with ArrayBuffer, just copy over\n\t * Doesn't make sense with other TypedArray instances\n\t */\n\tif (useUint8Array && data instanceof Uint8Array) {\n\t\treturn Buffer.from(data);\n\t}\n\n\tvar isArr = isArray(data);\n\tif (isArr) {\n\t\tfor (var i = 0; i < data.length; i += 1) {\n\t\t\tvar x = data[i];\n\t\t\tif (\n\t\t\t\ttypeof x !== 'number'\n\t\t\t\t|| x < 0\n\t\t\t\t|| x > 255\n\t\t\t\t|| ~~x !== x // NaN and integer check\n\t\t\t) {\n\t\t\t\tthrow new RangeError('Array items must be numbers in the range 0-255.');\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Old Buffer polyfill on an engine that doesn't have TypedArray support\n\t * Also, this is from a different Buffer polyfill implementation then we have, as instanceof check failed\n\t * Convert to our current Buffer implementation\n\t */\n\tif (\n\t\tisArr || (\n\t\t\tBuffer.isBuffer(data)\n\t\t\t&& data.constructor\n\t\t\t&& typeof data.constructor.isBuffer === 'function'\n\t\t\t&& data.constructor.isBuffer(data)\n\t\t)\n\t) {\n\t\treturn Buffer.from(data);\n\t}\n\n\tthrow new TypeError('The \"data\" argument must be a string, an Array, a Buffer, a Uint8Array, or a DataView.');\n};\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","import { GeneratedType } from \"@cosmjs/proto-signing\";\nimport { MsgFleetMoveResponse } from \"./types/structs/structs/tx\";\nimport { MsgPermissionSetOnObject } from \"./types/structs/structs/tx\";\nimport { EventGuild } from \"./types/structs/structs/events\";\nimport { EventOreTheft } from \"./types/structs/structs/events\";\nimport { MsgStructMove } from \"./types/structs/structs/tx\";\nimport { MsgStructOreMinerComplete } from \"./types/structs/structs/tx\";\nimport { QueryAllAddressByPlayerRequest } from \"./types/structs/structs/query\";\nimport { EventOreMigrateDetail } from \"./types/structs/structs/events\";\nimport { MsgGuildBankRedeemResponse } from \"./types/structs/structs/tx\";\nimport { MsgStructBuildComplete } from \"./types/structs/structs/tx\";\nimport { MsgStructDefenseSet } from \"./types/structs/structs/tx\";\nimport { MsgProviderUpdateAccessPolicy } from \"./types/structs/structs/tx\";\nimport { QueryAllFleetRequest } from \"./types/structs/structs/query\";\nimport { MsgAllocationCreate } from \"./types/structs/structs/tx\";\nimport { MsgPermissionResponse } from \"./types/structs/structs/tx\";\nimport { QueryParamsRequest } from \"./types/structs/structs/query\";\nimport { QueryAllFleetResponse } from \"./types/structs/structs/query\";\nimport { PlayerInventory } from \"./types/structs/structs/player\";\nimport { EventProviderGrantGuildDetail } from \"./types/structs/structs/events\";\nimport { EventGuildBankMintDetail } from \"./types/structs/structs/events\";\nimport { MsgSubstationCreateResponse } from \"./types/structs/structs/tx\";\nimport { MsgSubstationPlayerMigrateResponse } from \"./types/structs/structs/tx\";\nimport { MsgProviderUpdateCapacityMinimum } from \"./types/structs/structs/tx\";\nimport { QueryGetGuildMembershipApplicationResponse } from \"./types/structs/structs/query\";\nimport { QueryGetPlayerResponse } from \"./types/structs/structs/query\";\nimport { QueryGetSubstationResponse } from \"./types/structs/structs/query\";\nimport { StructDefender } from \"./types/structs/structs/struct\";\nimport { MsgReactorDefuseResponse } from \"./types/structs/structs/tx\";\nimport { MsgStructAttack } from \"./types/structs/structs/tx\";\nimport { EventTime } from \"./types/structs/structs/events\";\nimport { MsgSubstationDelete } from \"./types/structs/structs/tx\";\nimport { Guild } from \"./types/structs/structs/guild\";\nimport { QueryGetProviderRequest } from \"./types/structs/structs/query\";\nimport { MsgAllocationUpdate } from \"./types/structs/structs/tx\";\nimport { MsgSubstationPlayerDisconnectResponse } from \"./types/structs/structs/tx\";\nimport { EventAlphaRefineDetail } from \"./types/structs/structs/events\";\nimport { MsgAllocationDeleteResponse } from \"./types/structs/structs/tx\";\nimport { MsgGuildMembershipInviteRevoke } from \"./types/structs/structs/tx\";\nimport { MsgProviderUpdateDurationMinimum } from \"./types/structs/structs/tx\";\nimport { InternalAddressAssociation } from \"./types/structs/structs/address\";\nimport { Params } from \"./types/structs/structs/params\";\nimport { PermissionRecord } from \"./types/structs/structs/permission\";\nimport { EventReactor } from \"./types/structs/structs/events\";\nimport { EventStructAttribute } from \"./types/structs/structs/events\";\nimport { MsgAddressRevoke } from \"./types/structs/structs/tx\";\nimport { MsgSubstationPlayerConnectResponse } from \"./types/structs/structs/tx\";\nimport { QueryGetFleetRequest } from \"./types/structs/structs/query\";\nimport { QueryGetInfusionResponse } from \"./types/structs/structs/query\";\nimport { QueryGetStructTypeRequest } from \"./types/structs/structs/query\";\nimport { EventAttackDefenderCounterDetail } from \"./types/structs/structs/events\";\nimport { MsgStructGeneratorInfuse } from \"./types/structs/structs/tx\";\nimport { QueryAllPlayerHaltedResponse } from \"./types/structs/structs/query\";\nimport { EventProviderRevokeGuildDetail } from \"./types/structs/structs/events\";\nimport { PlanetAttributeRecord } from \"./types/structs/structs/planet\";\nimport { MsgPlanetExploreResponse } from \"./types/structs/structs/tx\";\nimport { QueryGetStructTypeResponse } from \"./types/structs/structs/query\";\nimport { EventInfusion } from \"./types/structs/structs/events\";\nimport { PlanetAttributes } from \"./types/structs/structs/planet\";\nimport { MsgStructOreRefineryStatusResponse } from \"./types/structs/structs/tx\";\nimport { QueryAllAgreementByProviderRequest } from \"./types/structs/structs/query\";\nimport { QueryAllGuildResponse } from \"./types/structs/structs/query\";\nimport { QueryGetGuildMembershipApplicationRequest } from \"./types/structs/structs/query\";\nimport { QueryGetProviderByCollateralAddressRequest } from \"./types/structs/structs/query\";\nimport { EventGuildBankAddressDetail } from \"./types/structs/structs/events\";\nimport { MsgGuildUpdateJoinInfusionMinimumBypassByRequest } from \"./types/structs/structs/tx\";\nimport { MsgPermissionRevokeOnAddress } from \"./types/structs/structs/tx\";\nimport { QueryParamsResponse } from \"./types/structs/structs/query\";\nimport { QueryAllPlanetRequest } from \"./types/structs/structs/query\";\nimport { QueryAllPlayerResponse } from \"./types/structs/structs/query\";\nimport { MsgAddressRevokeResponse } from \"./types/structs/structs/tx\";\nimport { MsgStructActivate } from \"./types/structs/structs/tx\";\nimport { MsgStructGeneratorStatusResponse } from \"./types/structs/structs/tx\";\nimport { MsgAgreementCapacityIncrease } from \"./types/structs/structs/tx\";\nimport { QueryGetGuildByBankCollateralAddressRequest } from \"./types/structs/structs/query\";\nimport { QueryValidateSignatureRequest } from \"./types/structs/structs/query\";\nimport { MsgPlanetRaidComplete } from \"./types/structs/structs/tx\";\nimport { QueryAllAgreementRequest } from \"./types/structs/structs/query\";\nimport { QueryAllStructResponse } from \"./types/structs/structs/query\";\nimport { QueryAllSubstationResponse } from \"./types/structs/structs/query\";\nimport { EventPlayerResumed } from \"./types/structs/structs/events\";\nimport { QueryAllGuildBankCollateralAddressRequest } from \"./types/structs/structs/query\";\nimport { EventStructDefender } from \"./types/structs/structs/events\";\nimport { EventAttackDetail } from \"./types/structs/structs/events\";\nimport { MsgAddressRegister } from \"./types/structs/structs/tx\";\nimport { MsgGuildMembershipRequestApprove } from \"./types/structs/structs/tx\";\nimport { MsgStructOreMinerStatusResponse } from \"./types/structs/structs/tx\";\nimport { QueryAllAllocationRequest } from \"./types/structs/structs/query\";\nimport { QueryAllAllocationBySourceRequest } from \"./types/structs/structs/query\";\nimport { GridAttributes } from \"./types/structs/structs/grid\";\nimport { StructsPacketData } from \"./types/structs/structs/packet\";\nimport { EventSubstation } from \"./types/structs/structs/events\";\nimport { MsgFleetMove } from \"./types/structs/structs/tx\";\nimport { MsgGuildBankRedeem } from \"./types/structs/structs/tx\";\nimport { QueryGetFleetByIndexRequest } from \"./types/structs/structs/query\";\nimport { QueryGetGridResponse } from \"./types/structs/structs/query\";\nimport { QueryGetInfusionRequest } from \"./types/structs/structs/query\";\nimport { QueryAllInfusionResponse } from \"./types/structs/structs/query\";\nimport { EventProviderAddressDetail } from \"./types/structs/structs/events\";\nimport { MsgGuildUpdateEndpoint } from \"./types/structs/structs/tx\";\nimport { MsgGuildUpdateEntryRank } from \"./types/structs/structs/tx\";\nimport { MsgPermissionGuildRankSet } from \"./types/structs/structs/tx\";\nimport { MsgPermissionGuildRankRevoke } from \"./types/structs/structs/tx\";\nimport { MsgPlayerUpdateGuildRank } from \"./types/structs/structs/tx\";\nimport { MsgPlayerUpdateGuildRankResponse } from \"./types/structs/structs/tx\";\nimport { MsgAgreementDurationIncrease } from \"./types/structs/structs/tx\";\nimport { QueryAllAllocationResponse } from \"./types/structs/structs/query\";\nimport { QueryAllReactorResponse } from \"./types/structs/structs/query\";\nimport { EventStructType } from \"./types/structs/structs/events\";\nimport { EventGrid } from \"./types/structs/structs/events\";\nimport { EventGuildBankRedeem } from \"./types/structs/structs/events\";\nimport { EventOreMineDetail } from \"./types/structs/structs/events\";\nimport { QueryAllAllocationByDestinationRequest } from \"./types/structs/structs/query\";\nimport { Player } from \"./types/structs/structs/player\";\nimport { MsgPlayerResumeResponse } from \"./types/structs/structs/tx\";\nimport { MsgStructStatusResponse } from \"./types/structs/structs/tx\";\nimport { MsgStructStorageRecall } from \"./types/structs/structs/tx\";\nimport { MsgAgreementResponse } from \"./types/structs/structs/tx\";\nimport { MsgProviderCreate } from \"./types/structs/structs/tx\";\nimport { MsgPlayerSendResponse } from \"./types/structs/structs/tx\";\nimport { QueryAllAddressRequest } from \"./types/structs/structs/query\";\nimport { QueryGetReactorResponse } from \"./types/structs/structs/query\";\nimport { EventProviderGrantGuild } from \"./types/structs/structs/events\";\nimport { EventGuildBankConfiscateAndBurn } from \"./types/structs/structs/events\";\nimport { QueryBlockHeightResponse } from \"./types/structs/structs/query\";\nimport { QueryAllPlanetByPlayerRequest } from \"./types/structs/structs/query\";\nimport { MsgGuildMembershipRequestRevoke } from \"./types/structs/structs/tx\";\nimport { QueryAllStructAttributeRequest } from \"./types/structs/structs/query\";\nimport { Reactor } from \"./types/structs/structs/reactor\";\nimport { EventAttack } from \"./types/structs/structs/events\";\nimport { MsgSubstationAllocationDisconnectResponse } from \"./types/structs/structs/tx\";\nimport { MsgAgreementCapacityDecrease } from \"./types/structs/structs/tx\";\nimport { QueryAllGuildBankCollateralAddressResponse } from \"./types/structs/structs/query\";\nimport { QueryAllSubstationRequest } from \"./types/structs/structs/query\";\nimport { QueryValidateSignatureResponse } from \"./types/structs/structs/query\";\nimport { EventFleet } from \"./types/structs/structs/events\";\nimport { Provider } from \"./types/structs/structs/provider\";\nimport { QueryBlockHeight } from \"./types/structs/structs/query\";\nimport { QueryGetReactorRequest } from \"./types/structs/structs/query\";\nimport { GridRecord } from \"./types/structs/structs/grid\";\nimport { MsgGuildUpdateJoinInfusionMinimumBypassByInvite } from \"./types/structs/structs/tx\";\nimport { MsgReactorInfuseResponse } from \"./types/structs/structs/tx\";\nimport { MsgStructBuildCancel } from \"./types/structs/structs/tx\";\nimport { Substation } from \"./types/structs/structs/substation\";\nimport { MsgGuildUpdateOwnerId } from \"./types/structs/structs/tx\";\nimport { MsgGuildMembershipInviteDeny } from \"./types/structs/structs/tx\";\nimport { MsgSubstationDeleteResponse } from \"./types/structs/structs/tx\";\nimport { Fleet } from \"./types/structs/structs/fleet\";\nimport { QueryAllPlanetAttributeRequest } from \"./types/structs/structs/query\";\nimport { QueryAllReactorRequest } from \"./types/structs/structs/query\";\nimport { EventProvider } from \"./types/structs/structs/events\";\nimport { EventGuildBankRedeemDetail } from \"./types/structs/structs/events\";\nimport { MsgPlayerResume } from \"./types/structs/structs/tx\";\nimport { MsgProviderWithdrawBalance } from \"./types/structs/structs/tx\";\nimport { MsgProviderUpdateDurationMaximum } from \"./types/structs/structs/tx\";\nimport { QueryAllInfusionRequest } from \"./types/structs/structs/query\";\nimport { QueryGetProviderResponse } from \"./types/structs/structs/query\";\nimport { QueryAllProviderCollateralAddressResponse } from \"./types/structs/structs/query\";\nimport { NoData } from \"./types/structs/structs/packet\";\nimport { MsgReactorBeginMigration } from \"./types/structs/structs/tx\";\nimport { MsgReactorBeginMigrationResponse } from \"./types/structs/structs/tx\";\nimport { MsgSubstationPlayerDisconnect } from \"./types/structs/structs/tx\";\nimport { GuildMembershipApplication } from \"./types/structs/structs/guild\";\nimport { QueryGetAllocationRequest } from \"./types/structs/structs/query\";\nimport { EventAgreement } from \"./types/structs/structs/events\";\nimport { MsgAllocationDelete } from \"./types/structs/structs/tx\";\nimport { MsgAgreementOpen } from \"./types/structs/structs/tx\";\nimport { MsgPlayerSend } from \"./types/structs/structs/tx\";\nimport { QueryGetGuildRequest } from \"./types/structs/structs/query\";\nimport { Planet } from \"./types/structs/structs/planet\";\nimport { MsgAllocationTransferResponse } from \"./types/structs/structs/tx\";\nimport { MsgStructDefenseClear } from \"./types/structs/structs/tx\";\nimport { QueryAllAgreementResponse } from \"./types/structs/structs/query\";\nimport { QueryAllPermissionByObjectRequest } from \"./types/structs/structs/query\";\nimport { QueryAllStructAttributeResponse } from \"./types/structs/structs/query\";\nimport { EventAlphaDefuseDetail } from \"./types/structs/structs/events\";\nimport { MsgGuildMembershipJoinProxy } from \"./types/structs/structs/tx\";\nimport { MsgStructBuildInitiate } from \"./types/structs/structs/tx\";\nimport { GenesisState } from \"./types/structs/structs/genesis\";\nimport { QueryGetFleetResponse } from \"./types/structs/structs/query\";\nimport { QueryAllGuildRequest } from \"./types/structs/structs/query\";\nimport { QueryGetPlanetAttributeResponse } from \"./types/structs/structs/query\";\nimport { MsgGuildBankMintResponse } from \"./types/structs/structs/tx\";\nimport { MsgGuildBankConfiscateAndBurn } from \"./types/structs/structs/tx\";\nimport { MsgSubstationPlayerConnect } from \"./types/structs/structs/tx\";\nimport { QueryAllGuildMembershipApplicationResponse } from \"./types/structs/structs/query\";\nimport { QueryAllProviderRequest } from \"./types/structs/structs/query\";\nimport { QueryGetProviderByEarningsAddressRequest } from \"./types/structs/structs/query\";\nimport { EventPlayer } from \"./types/structs/structs/events\";\nimport { EventProviderRevokeGuild } from \"./types/structs/structs/events\";\nimport { MsgAddressRegisterResponse } from \"./types/structs/structs/tx\";\nimport { MsgPermissionGrantOnObject } from \"./types/structs/structs/tx\";\nimport { QueryGetPlayerRequest } from \"./types/structs/structs/query\";\nimport { QueryAllStructTypeResponse } from \"./types/structs/structs/query\";\nimport { MsgPlanetRaidCompleteResponse } from \"./types/structs/structs/tx\";\nimport { MsgReactorDefuse } from \"./types/structs/structs/tx\";\nimport { MsgStructStealthActivate } from \"./types/structs/structs/tx\";\nimport { QueryGetGuildBankCollateralAddressRequest } from \"./types/structs/structs/query\";\nimport { QueryAllGuildMembershipApplicationRequest } from \"./types/structs/structs/query\";\nimport { QueryAllPermissionRequest } from \"./types/structs/structs/query\";\nimport { QueryAllProviderEarningsAddressResponse } from \"./types/structs/structs/query\";\nimport { Struct } from \"./types/structs/structs/struct\";\nimport { EventProviderAddress } from \"./types/structs/structs/events\";\nimport { MsgSubstationAllocationDisconnect } from \"./types/structs/structs/tx\";\nimport { QueryGetAddressRequest } from \"./types/structs/structs/query\";\nimport { EventPlayerHalted } from \"./types/structs/structs/events\";\nimport { MsgUpdateParams } from \"./types/structs/structs/tx\";\nimport { MsgGuildBankMint } from \"./types/structs/structs/tx\";\nimport { MsgGuildUpdateJoinInfusionMinimum } from \"./types/structs/structs/tx\";\nimport { QueryAllPermissionResponse } from \"./types/structs/structs/query\";\nimport { EventAllocation } from \"./types/structs/structs/events\";\nimport { EventTimeDetail } from \"./types/structs/structs/events\";\nimport { MsgPlayerUpdatePrimaryAddress } from \"./types/structs/structs/tx\";\nimport { QueryGetAgreementRequest } from \"./types/structs/structs/query\";\nimport { MsgPermissionGrantOnAddress } from \"./types/structs/structs/tx\";\nimport { MsgPermissionSetOnAddress } from \"./types/structs/structs/tx\";\nimport { EventAddressActivity } from \"./types/structs/structs/events\";\nimport { EventRaid } from \"./types/structs/structs/events\";\nimport { MsgAllocationUpdateResponse } from \"./types/structs/structs/tx\";\nimport { MsgStructAttackResponse } from \"./types/structs/structs/tx\";\nimport { MsgSubstationCreate } from \"./types/structs/structs/tx\";\nimport { QueryAllPlanetAttributeResponse } from \"./types/structs/structs/query\";\nimport { QueryAllProviderEarningsAddressRequest } from \"./types/structs/structs/query\";\nimport { QueryAllPlayerRequest } from \"./types/structs/structs/query\";\nimport { QueryGetStructAttributeRequest } from \"./types/structs/structs/query\";\nimport { EventGuildBankAddress } from \"./types/structs/structs/events\";\nimport { MsgAllocationCreateResponse } from \"./types/structs/structs/tx\";\nimport { Allocation } from \"./types/structs/structs/allocation\";\nimport { QueryAllPermissionByPlayerRequest } from \"./types/structs/structs/query\";\nimport { QueryAllProviderCollateralAddressRequest } from \"./types/structs/structs/query\";\nimport { QueryGetProviderEarningsAddressRequest } from \"./types/structs/structs/query\";\nimport { MsgAllocationTransfer } from \"./types/structs/structs/tx\";\nimport { MsgGuildBankConfiscateAndBurnResponse } from \"./types/structs/structs/tx\";\nimport { MsgGuildMembershipKick } from \"./types/structs/structs/tx\";\nimport { QueryAllGridResponse } from \"./types/structs/structs/query\";\nimport { FleetAttributeRecord } from \"./types/structs/structs/fleet\";\nimport { MsgSubstationPlayerMigrate } from \"./types/structs/structs/tx\";\nimport { MsgProviderUpdateCapacityMaximum } from \"./types/structs/structs/tx\";\nimport { EventDelete } from \"./types/structs/structs/events\";\nimport { EventGuildBankMint } from \"./types/structs/structs/events\";\nimport { QueryGetGridRequest } from \"./types/structs/structs/query\";\nimport { QueryGetGuildResponse } from \"./types/structs/structs/query\";\nimport { QueryGetProviderCollateralAddressRequest } from \"./types/structs/structs/query\";\nimport { QueryGetStructRequest } from \"./types/structs/structs/query\";\nimport { QueryGetStructAttributeResponse } from \"./types/structs/structs/query\";\nimport { QueryAllStructTypeRequest } from \"./types/structs/structs/query\";\nimport { EventAlphaRefine } from \"./types/structs/structs/events\";\nimport { QueryAllInfusionByDestinationRequest } from \"./types/structs/structs/query\";\nimport { QueryGetPermissionRequest } from \"./types/structs/structs/query\";\nimport { QueryGetStructResponse } from \"./types/structs/structs/query\";\nimport { QueryGetSubstationRequest } from \"./types/structs/structs/query\";\nimport { EventRaidDetail } from \"./types/structs/structs/events\";\nimport { MsgGuildMembershipInvite } from \"./types/structs/structs/tx\";\nimport { MsgGuildMembershipInviteApprove } from \"./types/structs/structs/tx\";\nimport { QueryGetAllocationResponse } from \"./types/structs/structs/query\";\nimport { QueryAllGridRequest } from \"./types/structs/structs/query\";\nimport { QueryAllStructRequest } from \"./types/structs/structs/query\";\nimport { StructAttributeRecord } from \"./types/structs/structs/struct\";\nimport { EventPlanetAttribute } from \"./types/structs/structs/events\";\nimport { EventOreMine } from \"./types/structs/structs/events\";\nimport { EventAttackShotDetail } from \"./types/structs/structs/events\";\nimport { MsgStructStealthDeactivate } from \"./types/structs/structs/tx\";\nimport { StructAttributes } from \"./types/structs/structs/struct\";\nimport { EventStruct } from \"./types/structs/structs/events\";\nimport { MsgGuildUpdateResponse } from \"./types/structs/structs/tx\";\nimport { MsgProviderGuildRevoke } from \"./types/structs/structs/tx\";\nimport { MsgProviderDelete } from \"./types/structs/structs/tx\";\nimport { Agreement } from \"./types/structs/structs/agreement\";\nimport { EventGuildBankConfiscateAndBurnDetail } from \"./types/structs/structs/events\";\nimport { EventGuildMembershipApplication } from \"./types/structs/structs/events\";\nimport { MsgGuildMembershipJoin } from \"./types/structs/structs/tx\";\nimport { MsgPlanetExplore } from \"./types/structs/structs/tx\";\nimport { MsgStructStorageStash } from \"./types/structs/structs/tx\";\nimport { MsgSubstationAllocationConnectResponse } from \"./types/structs/structs/tx\";\nimport { MsgPermissionRevokeOnObject } from \"./types/structs/structs/tx\";\nimport { MsgReactorCancelDefusion } from \"./types/structs/structs/tx\";\nimport { MsgSubstationAllocationConnect } from \"./types/structs/structs/tx\";\nimport { QueryGetPlanetRequest } from \"./types/structs/structs/query\";\nimport { StructType } from \"./types/structs/structs/struct\";\nimport { MsgGuildMembershipResponse } from \"./types/structs/structs/tx\";\nimport { MsgReactorInfuse } from \"./types/structs/structs/tx\";\nimport { MsgStructBuildCompleteAndStash } from \"./types/structs/structs/tx\";\nimport { AddressAssociation } from \"./types/structs/structs/address\";\nimport { EventAddressAssociation } from \"./types/structs/structs/events\";\nimport { MsgReactorCancelDefusionResponse } from \"./types/structs/structs/tx\";\nimport { AddressRecord } from \"./types/structs/structs/address\";\nimport { StructDefenders } from \"./types/structs/structs/struct\";\nimport { EventPlanet } from \"./types/structs/structs/events\";\nimport { MsgGuildUpdateEntrySubstationId } from \"./types/structs/structs/tx\";\nimport { AddressActivity } from \"./types/structs/structs/address\";\nimport { EventAlphaInfuse } from \"./types/structs/structs/events\";\nimport { MsgUpdateParamsResponse } from \"./types/structs/structs/tx\";\nimport { MsgStructOreRefineryComplete } from \"./types/structs/structs/tx\";\nimport { QueryAllPlayerHaltedRequest } from \"./types/structs/structs/query\";\nimport { EventAlphaDefuse } from \"./types/structs/structs/events\";\nimport { QueryAllAddressResponse } from \"./types/structs/structs/query\";\nimport { QueryGetPermissionResponse } from \"./types/structs/structs/query\";\nimport { QueryGetPlanetAttributeRequest } from \"./types/structs/structs/query\";\nimport { EventPermission } from \"./types/structs/structs/events\";\nimport { EventOreTheftDetail } from \"./types/structs/structs/events\";\nimport { QueryGetPlanetResponse } from \"./types/structs/structs/query\";\nimport { Infusion } from \"./types/structs/structs/infusion\";\nimport { MsgGuildCreate } from \"./types/structs/structs/tx\";\nimport { MsgGuildMembershipRequest } from \"./types/structs/structs/tx\";\nimport { MsgPlayerUpdatePrimaryAddressResponse } from \"./types/structs/structs/tx\";\nimport { MsgAgreementClose } from \"./types/structs/structs/tx\";\nimport { QueryGetAgreementResponse } from \"./types/structs/structs/query\";\nimport { EventOreMigrate } from \"./types/structs/structs/events\";\nimport { MsgGuildCreateResponse } from \"./types/structs/structs/tx\";\nimport { MsgProviderGuildGrant } from \"./types/structs/structs/tx\";\nimport { QueryAddressResponse } from \"./types/structs/structs/query\";\nimport { MsgGuildMembershipRequestDeny } from \"./types/structs/structs/tx\";\nimport { MsgStructDeactivate } from \"./types/structs/structs/tx\";\nimport { MsgProviderResponse } from \"./types/structs/structs/tx\";\nimport { QueryAllPlanetResponse } from \"./types/structs/structs/query\";\nimport { QueryAllProviderResponse } from \"./types/structs/structs/query\";\nimport { EventAlphaInfuseDetail } from \"./types/structs/structs/events\";\nimport { MsgGuildUpdateName } from \"./types/structs/structs/tx\";\nimport { MsgGuildUpdatePfp } from \"./types/structs/structs/tx\";\nimport { MsgPlayerUpdateName } from \"./types/structs/structs/tx\";\nimport { MsgPlayerUpdatePfp } from \"./types/structs/structs/tx\";\nimport { MsgPlayerUpdateResponse } from \"./types/structs/structs/tx\";\nimport { MsgPlanetUpdateName } from \"./types/structs/structs/tx\";\nimport { MsgPlanetUpdateResponse } from \"./types/structs/structs/tx\";\nimport { MsgSubstationUpdateName } from \"./types/structs/structs/tx\";\nimport { MsgSubstationUpdatePfp } from \"./types/structs/structs/tx\";\nimport { MsgSubstationUpdateResponse } from \"./types/structs/structs/tx\";\n\nconst msgTypes: Array<[string, GeneratedType]> = [\n [\"/structs.structs.MsgFleetMoveResponse\", MsgFleetMoveResponse],\n [\"/structs.structs.MsgPermissionSetOnObject\", MsgPermissionSetOnObject],\n [\"/structs.structs.EventGuild\", EventGuild],\n [\"/structs.structs.EventOreTheft\", EventOreTheft],\n [\"/structs.structs.MsgStructMove\", MsgStructMove],\n [\"/structs.structs.MsgStructOreMinerComplete\", MsgStructOreMinerComplete],\n [\"/structs.structs.QueryAllAddressByPlayerRequest\", QueryAllAddressByPlayerRequest],\n [\"/structs.structs.EventOreMigrateDetail\", EventOreMigrateDetail],\n [\"/structs.structs.MsgGuildBankRedeemResponse\", MsgGuildBankRedeemResponse],\n [\"/structs.structs.MsgStructBuildComplete\", MsgStructBuildComplete],\n [\"/structs.structs.MsgStructDefenseSet\", MsgStructDefenseSet],\n [\"/structs.structs.MsgProviderUpdateAccessPolicy\", MsgProviderUpdateAccessPolicy],\n [\"/structs.structs.QueryAllFleetRequest\", QueryAllFleetRequest],\n [\"/structs.structs.MsgAllocationCreate\", MsgAllocationCreate],\n [\"/structs.structs.MsgPermissionResponse\", MsgPermissionResponse],\n [\"/structs.structs.QueryParamsRequest\", QueryParamsRequest],\n [\"/structs.structs.QueryAllFleetResponse\", QueryAllFleetResponse],\n [\"/structs.structs.PlayerInventory\", PlayerInventory],\n [\"/structs.structs.EventProviderGrantGuildDetail\", EventProviderGrantGuildDetail],\n [\"/structs.structs.EventGuildBankMintDetail\", EventGuildBankMintDetail],\n [\"/structs.structs.MsgSubstationCreateResponse\", MsgSubstationCreateResponse],\n [\"/structs.structs.MsgSubstationPlayerMigrateResponse\", MsgSubstationPlayerMigrateResponse],\n [\"/structs.structs.MsgProviderUpdateCapacityMinimum\", MsgProviderUpdateCapacityMinimum],\n [\"/structs.structs.QueryGetGuildMembershipApplicationResponse\", QueryGetGuildMembershipApplicationResponse],\n [\"/structs.structs.QueryGetPlayerResponse\", QueryGetPlayerResponse],\n [\"/structs.structs.QueryGetSubstationResponse\", QueryGetSubstationResponse],\n [\"/structs.structs.StructDefender\", StructDefender],\n [\"/structs.structs.MsgReactorDefuseResponse\", MsgReactorDefuseResponse],\n [\"/structs.structs.MsgStructAttack\", MsgStructAttack],\n [\"/structs.structs.EventTime\", EventTime],\n [\"/structs.structs.MsgSubstationDelete\", MsgSubstationDelete],\n [\"/structs.structs.Guild\", Guild],\n [\"/structs.structs.QueryGetProviderRequest\", QueryGetProviderRequest],\n [\"/structs.structs.MsgAllocationUpdate\", MsgAllocationUpdate],\n [\"/structs.structs.MsgSubstationPlayerDisconnectResponse\", MsgSubstationPlayerDisconnectResponse],\n [\"/structs.structs.EventAlphaRefineDetail\", EventAlphaRefineDetail],\n [\"/structs.structs.MsgAllocationDeleteResponse\", MsgAllocationDeleteResponse],\n [\"/structs.structs.MsgGuildMembershipInviteRevoke\", MsgGuildMembershipInviteRevoke],\n [\"/structs.structs.MsgProviderUpdateDurationMinimum\", MsgProviderUpdateDurationMinimum],\n [\"/structs.structs.InternalAddressAssociation\", InternalAddressAssociation],\n [\"/structs.structs.Params\", Params],\n [\"/structs.structs.PermissionRecord\", PermissionRecord],\n [\"/structs.structs.EventReactor\", EventReactor],\n [\"/structs.structs.EventStructAttribute\", EventStructAttribute],\n [\"/structs.structs.MsgAddressRevoke\", MsgAddressRevoke],\n [\"/structs.structs.MsgSubstationPlayerConnectResponse\", MsgSubstationPlayerConnectResponse],\n [\"/structs.structs.QueryGetFleetRequest\", QueryGetFleetRequest],\n [\"/structs.structs.QueryGetInfusionResponse\", QueryGetInfusionResponse],\n [\"/structs.structs.QueryGetStructTypeRequest\", QueryGetStructTypeRequest],\n [\"/structs.structs.EventAttackDefenderCounterDetail\", EventAttackDefenderCounterDetail],\n [\"/structs.structs.MsgStructGeneratorInfuse\", MsgStructGeneratorInfuse],\n [\"/structs.structs.QueryAllPlayerHaltedResponse\", QueryAllPlayerHaltedResponse],\n [\"/structs.structs.EventProviderRevokeGuildDetail\", EventProviderRevokeGuildDetail],\n [\"/structs.structs.PlanetAttributeRecord\", PlanetAttributeRecord],\n [\"/structs.structs.MsgPlanetExploreResponse\", MsgPlanetExploreResponse],\n [\"/structs.structs.QueryGetStructTypeResponse\", QueryGetStructTypeResponse],\n [\"/structs.structs.EventInfusion\", EventInfusion],\n [\"/structs.structs.PlanetAttributes\", PlanetAttributes],\n [\"/structs.structs.MsgStructOreRefineryStatusResponse\", MsgStructOreRefineryStatusResponse],\n [\"/structs.structs.QueryAllAgreementByProviderRequest\", QueryAllAgreementByProviderRequest],\n [\"/structs.structs.QueryAllGuildResponse\", QueryAllGuildResponse],\n [\"/structs.structs.QueryGetGuildMembershipApplicationRequest\", QueryGetGuildMembershipApplicationRequest],\n [\"/structs.structs.QueryGetProviderByCollateralAddressRequest\", QueryGetProviderByCollateralAddressRequest],\n [\"/structs.structs.EventGuildBankAddressDetail\", EventGuildBankAddressDetail],\n [\"/structs.structs.MsgGuildUpdateJoinInfusionMinimumBypassByRequest\", MsgGuildUpdateJoinInfusionMinimumBypassByRequest],\n [\"/structs.structs.MsgPermissionRevokeOnAddress\", MsgPermissionRevokeOnAddress],\n [\"/structs.structs.QueryParamsResponse\", QueryParamsResponse],\n [\"/structs.structs.QueryAllPlanetRequest\", QueryAllPlanetRequest],\n [\"/structs.structs.QueryAllPlayerResponse\", QueryAllPlayerResponse],\n [\"/structs.structs.MsgAddressRevokeResponse\", MsgAddressRevokeResponse],\n [\"/structs.structs.MsgStructActivate\", MsgStructActivate],\n [\"/structs.structs.MsgStructGeneratorStatusResponse\", MsgStructGeneratorStatusResponse],\n [\"/structs.structs.MsgAgreementCapacityIncrease\", MsgAgreementCapacityIncrease],\n [\"/structs.structs.QueryGetGuildByBankCollateralAddressRequest\", QueryGetGuildByBankCollateralAddressRequest],\n [\"/structs.structs.QueryValidateSignatureRequest\", QueryValidateSignatureRequest],\n [\"/structs.structs.MsgPlanetRaidComplete\", MsgPlanetRaidComplete],\n [\"/structs.structs.QueryAllAgreementRequest\", QueryAllAgreementRequest],\n [\"/structs.structs.QueryAllStructResponse\", QueryAllStructResponse],\n [\"/structs.structs.QueryAllSubstationResponse\", QueryAllSubstationResponse],\n [\"/structs.structs.EventPlayerResumed\", EventPlayerResumed],\n [\"/structs.structs.QueryAllGuildBankCollateralAddressRequest\", QueryAllGuildBankCollateralAddressRequest],\n [\"/structs.structs.EventStructDefender\", EventStructDefender],\n [\"/structs.structs.EventAttackDetail\", EventAttackDetail],\n [\"/structs.structs.MsgAddressRegister\", MsgAddressRegister],\n [\"/structs.structs.MsgGuildMembershipRequestApprove\", MsgGuildMembershipRequestApprove],\n [\"/structs.structs.MsgStructOreMinerStatusResponse\", MsgStructOreMinerStatusResponse],\n [\"/structs.structs.QueryAllAllocationRequest\", QueryAllAllocationRequest],\n [\"/structs.structs.QueryAllAllocationBySourceRequest\", QueryAllAllocationBySourceRequest],\n [\"/structs.structs.GridAttributes\", GridAttributes],\n [\"/structs.structs.StructsPacketData\", StructsPacketData],\n [\"/structs.structs.EventSubstation\", EventSubstation],\n [\"/structs.structs.MsgFleetMove\", MsgFleetMove],\n [\"/structs.structs.MsgGuildBankRedeem\", MsgGuildBankRedeem],\n [\"/structs.structs.QueryGetFleetByIndexRequest\", QueryGetFleetByIndexRequest],\n [\"/structs.structs.QueryGetGridResponse\", QueryGetGridResponse],\n [\"/structs.structs.QueryGetInfusionRequest\", QueryGetInfusionRequest],\n [\"/structs.structs.QueryAllInfusionResponse\", QueryAllInfusionResponse],\n [\"/structs.structs.EventProviderAddressDetail\", EventProviderAddressDetail],\n [\"/structs.structs.MsgGuildUpdateEndpoint\", MsgGuildUpdateEndpoint],\n [\"/structs.structs.MsgAgreementDurationIncrease\", MsgAgreementDurationIncrease],\n [\"/structs.structs.QueryAllAllocationResponse\", QueryAllAllocationResponse],\n [\"/structs.structs.QueryAllReactorResponse\", QueryAllReactorResponse],\n [\"/structs.structs.EventStructType\", EventStructType],\n [\"/structs.structs.EventGrid\", EventGrid],\n [\"/structs.structs.EventGuildBankRedeem\", EventGuildBankRedeem],\n [\"/structs.structs.EventOreMineDetail\", EventOreMineDetail],\n [\"/structs.structs.QueryAllAllocationByDestinationRequest\", QueryAllAllocationByDestinationRequest],\n [\"/structs.structs.Player\", Player],\n [\"/structs.structs.MsgPlayerResumeResponse\", MsgPlayerResumeResponse],\n [\"/structs.structs.MsgStructStatusResponse\", MsgStructStatusResponse],\n [\"/structs.structs.MsgStructStorageRecall\", MsgStructStorageRecall],\n [\"/structs.structs.MsgAgreementResponse\", MsgAgreementResponse],\n [\"/structs.structs.MsgProviderCreate\", MsgProviderCreate],\n [\"/structs.structs.MsgPlayerSendResponse\", MsgPlayerSendResponse],\n [\"/structs.structs.QueryAllAddressRequest\", QueryAllAddressRequest],\n [\"/structs.structs.QueryGetReactorResponse\", QueryGetReactorResponse],\n [\"/structs.structs.EventProviderGrantGuild\", EventProviderGrantGuild],\n [\"/structs.structs.EventGuildBankConfiscateAndBurn\", EventGuildBankConfiscateAndBurn],\n [\"/structs.structs.QueryBlockHeightResponse\", QueryBlockHeightResponse],\n [\"/structs.structs.QueryAllPlanetByPlayerRequest\", QueryAllPlanetByPlayerRequest],\n [\"/structs.structs.MsgGuildMembershipRequestRevoke\", MsgGuildMembershipRequestRevoke],\n [\"/structs.structs.QueryAllStructAttributeRequest\", QueryAllStructAttributeRequest],\n [\"/structs.structs.Reactor\", Reactor],\n [\"/structs.structs.EventAttack\", EventAttack],\n [\"/structs.structs.MsgSubstationAllocationDisconnectResponse\", MsgSubstationAllocationDisconnectResponse],\n [\"/structs.structs.MsgAgreementCapacityDecrease\", MsgAgreementCapacityDecrease],\n [\"/structs.structs.QueryAllGuildBankCollateralAddressResponse\", QueryAllGuildBankCollateralAddressResponse],\n [\"/structs.structs.QueryAllSubstationRequest\", QueryAllSubstationRequest],\n [\"/structs.structs.QueryValidateSignatureResponse\", QueryValidateSignatureResponse],\n [\"/structs.structs.EventFleet\", EventFleet],\n [\"/structs.structs.Provider\", Provider],\n [\"/structs.structs.QueryBlockHeight\", QueryBlockHeight],\n [\"/structs.structs.QueryGetReactorRequest\", QueryGetReactorRequest],\n [\"/structs.structs.GridRecord\", GridRecord],\n [\"/structs.structs.MsgGuildUpdateJoinInfusionMinimumBypassByInvite\", MsgGuildUpdateJoinInfusionMinimumBypassByInvite],\n [\"/structs.structs.MsgReactorInfuseResponse\", MsgReactorInfuseResponse],\n [\"/structs.structs.MsgStructBuildCancel\", MsgStructBuildCancel],\n [\"/structs.structs.Substation\", Substation],\n [\"/structs.structs.MsgGuildUpdateOwnerId\", MsgGuildUpdateOwnerId],\n [\"/structs.structs.MsgGuildMembershipInviteDeny\", MsgGuildMembershipInviteDeny],\n [\"/structs.structs.MsgSubstationDeleteResponse\", MsgSubstationDeleteResponse],\n [\"/structs.structs.Fleet\", Fleet],\n [\"/structs.structs.QueryAllPlanetAttributeRequest\", QueryAllPlanetAttributeRequest],\n [\"/structs.structs.QueryAllReactorRequest\", QueryAllReactorRequest],\n [\"/structs.structs.EventProvider\", EventProvider],\n [\"/structs.structs.EventGuildBankRedeemDetail\", EventGuildBankRedeemDetail],\n [\"/structs.structs.MsgPlayerResume\", MsgPlayerResume],\n [\"/structs.structs.MsgProviderWithdrawBalance\", MsgProviderWithdrawBalance],\n [\"/structs.structs.MsgProviderUpdateDurationMaximum\", MsgProviderUpdateDurationMaximum],\n [\"/structs.structs.QueryAllInfusionRequest\", QueryAllInfusionRequest],\n [\"/structs.structs.QueryGetProviderResponse\", QueryGetProviderResponse],\n [\"/structs.structs.QueryAllProviderCollateralAddressResponse\", QueryAllProviderCollateralAddressResponse],\n [\"/structs.structs.NoData\", NoData],\n [\"/structs.structs.MsgReactorBeginMigration\", MsgReactorBeginMigration],\n [\"/structs.structs.MsgReactorBeginMigrationResponse\", MsgReactorBeginMigrationResponse],\n [\"/structs.structs.MsgSubstationPlayerDisconnect\", MsgSubstationPlayerDisconnect],\n [\"/structs.structs.GuildMembershipApplication\", GuildMembershipApplication],\n [\"/structs.structs.QueryGetAllocationRequest\", QueryGetAllocationRequest],\n [\"/structs.structs.EventAgreement\", EventAgreement],\n [\"/structs.structs.MsgAllocationDelete\", MsgAllocationDelete],\n [\"/structs.structs.MsgAgreementOpen\", MsgAgreementOpen],\n [\"/structs.structs.MsgPlayerSend\", MsgPlayerSend],\n [\"/structs.structs.QueryGetGuildRequest\", QueryGetGuildRequest],\n [\"/structs.structs.Planet\", Planet],\n [\"/structs.structs.MsgAllocationTransferResponse\", MsgAllocationTransferResponse],\n [\"/structs.structs.MsgStructDefenseClear\", MsgStructDefenseClear],\n [\"/structs.structs.QueryAllAgreementResponse\", QueryAllAgreementResponse],\n [\"/structs.structs.QueryAllPermissionByObjectRequest\", QueryAllPermissionByObjectRequest],\n [\"/structs.structs.QueryAllStructAttributeResponse\", QueryAllStructAttributeResponse],\n [\"/structs.structs.EventAlphaDefuseDetail\", EventAlphaDefuseDetail],\n [\"/structs.structs.MsgGuildMembershipJoinProxy\", MsgGuildMembershipJoinProxy],\n [\"/structs.structs.MsgStructBuildInitiate\", MsgStructBuildInitiate],\n [\"/structs.structs.GenesisState\", GenesisState],\n [\"/structs.structs.QueryGetFleetResponse\", QueryGetFleetResponse],\n [\"/structs.structs.QueryAllGuildRequest\", QueryAllGuildRequest],\n [\"/structs.structs.QueryGetPlanetAttributeResponse\", QueryGetPlanetAttributeResponse],\n [\"/structs.structs.MsgGuildBankMintResponse\", MsgGuildBankMintResponse],\n [\"/structs.structs.MsgGuildBankConfiscateAndBurn\", MsgGuildBankConfiscateAndBurn],\n [\"/structs.structs.MsgSubstationPlayerConnect\", MsgSubstationPlayerConnect],\n [\"/structs.structs.QueryAllGuildMembershipApplicationResponse\", QueryAllGuildMembershipApplicationResponse],\n [\"/structs.structs.QueryAllProviderRequest\", QueryAllProviderRequest],\n [\"/structs.structs.QueryGetProviderByEarningsAddressRequest\", QueryGetProviderByEarningsAddressRequest],\n [\"/structs.structs.EventPlayer\", EventPlayer],\n [\"/structs.structs.EventProviderRevokeGuild\", EventProviderRevokeGuild],\n [\"/structs.structs.MsgAddressRegisterResponse\", MsgAddressRegisterResponse],\n [\"/structs.structs.MsgPermissionGrantOnObject\", MsgPermissionGrantOnObject],\n [\"/structs.structs.QueryGetPlayerRequest\", QueryGetPlayerRequest],\n [\"/structs.structs.QueryAllStructTypeResponse\", QueryAllStructTypeResponse],\n [\"/structs.structs.MsgPlanetRaidCompleteResponse\", MsgPlanetRaidCompleteResponse],\n [\"/structs.structs.MsgReactorDefuse\", MsgReactorDefuse],\n [\"/structs.structs.MsgStructStealthActivate\", MsgStructStealthActivate],\n [\"/structs.structs.QueryGetGuildBankCollateralAddressRequest\", QueryGetGuildBankCollateralAddressRequest],\n [\"/structs.structs.QueryAllGuildMembershipApplicationRequest\", QueryAllGuildMembershipApplicationRequest],\n [\"/structs.structs.QueryAllPermissionRequest\", QueryAllPermissionRequest],\n [\"/structs.structs.QueryAllProviderEarningsAddressResponse\", QueryAllProviderEarningsAddressResponse],\n [\"/structs.structs.Struct\", Struct],\n [\"/structs.structs.EventProviderAddress\", EventProviderAddress],\n [\"/structs.structs.MsgSubstationAllocationDisconnect\", MsgSubstationAllocationDisconnect],\n [\"/structs.structs.QueryGetAddressRequest\", QueryGetAddressRequest],\n [\"/structs.structs.EventPlayerHalted\", EventPlayerHalted],\n [\"/structs.structs.MsgUpdateParams\", MsgUpdateParams],\n [\"/structs.structs.MsgGuildBankMint\", MsgGuildBankMint],\n [\"/structs.structs.MsgGuildUpdateJoinInfusionMinimum\", MsgGuildUpdateJoinInfusionMinimum],\n [\"/structs.structs.QueryAllPermissionResponse\", QueryAllPermissionResponse],\n [\"/structs.structs.EventAllocation\", EventAllocation],\n [\"/structs.structs.EventTimeDetail\", EventTimeDetail],\n [\"/structs.structs.MsgPlayerUpdatePrimaryAddress\", MsgPlayerUpdatePrimaryAddress],\n [\"/structs.structs.QueryGetAgreementRequest\", QueryGetAgreementRequest],\n [\"/structs.structs.MsgPermissionGrantOnAddress\", MsgPermissionGrantOnAddress],\n [\"/structs.structs.MsgPermissionSetOnAddress\", MsgPermissionSetOnAddress],\n [\"/structs.structs.EventAddressActivity\", EventAddressActivity],\n [\"/structs.structs.EventRaid\", EventRaid],\n [\"/structs.structs.MsgAllocationUpdateResponse\", MsgAllocationUpdateResponse],\n [\"/structs.structs.MsgStructAttackResponse\", MsgStructAttackResponse],\n [\"/structs.structs.MsgSubstationCreate\", MsgSubstationCreate],\n [\"/structs.structs.QueryAllPlanetAttributeResponse\", QueryAllPlanetAttributeResponse],\n [\"/structs.structs.QueryAllProviderEarningsAddressRequest\", QueryAllProviderEarningsAddressRequest],\n [\"/structs.structs.QueryAllPlayerRequest\", QueryAllPlayerRequest],\n [\"/structs.structs.QueryGetStructAttributeRequest\", QueryGetStructAttributeRequest],\n [\"/structs.structs.EventGuildBankAddress\", EventGuildBankAddress],\n [\"/structs.structs.MsgAllocationCreateResponse\", MsgAllocationCreateResponse],\n [\"/structs.structs.Allocation\", Allocation],\n [\"/structs.structs.QueryAllPermissionByPlayerRequest\", QueryAllPermissionByPlayerRequest],\n [\"/structs.structs.QueryAllProviderCollateralAddressRequest\", QueryAllProviderCollateralAddressRequest],\n [\"/structs.structs.QueryGetProviderEarningsAddressRequest\", QueryGetProviderEarningsAddressRequest],\n [\"/structs.structs.MsgAllocationTransfer\", MsgAllocationTransfer],\n [\"/structs.structs.MsgGuildBankConfiscateAndBurnResponse\", MsgGuildBankConfiscateAndBurnResponse],\n [\"/structs.structs.MsgGuildMembershipKick\", MsgGuildMembershipKick],\n [\"/structs.structs.QueryAllGridResponse\", QueryAllGridResponse],\n [\"/structs.structs.FleetAttributeRecord\", FleetAttributeRecord],\n [\"/structs.structs.MsgSubstationPlayerMigrate\", MsgSubstationPlayerMigrate],\n [\"/structs.structs.MsgProviderUpdateCapacityMaximum\", MsgProviderUpdateCapacityMaximum],\n [\"/structs.structs.EventDelete\", EventDelete],\n [\"/structs.structs.EventGuildBankMint\", EventGuildBankMint],\n [\"/structs.structs.QueryGetGridRequest\", QueryGetGridRequest],\n [\"/structs.structs.QueryGetGuildResponse\", QueryGetGuildResponse],\n [\"/structs.structs.QueryGetProviderCollateralAddressRequest\", QueryGetProviderCollateralAddressRequest],\n [\"/structs.structs.QueryGetStructRequest\", QueryGetStructRequest],\n [\"/structs.structs.QueryGetStructAttributeResponse\", QueryGetStructAttributeResponse],\n [\"/structs.structs.QueryAllStructTypeRequest\", QueryAllStructTypeRequest],\n [\"/structs.structs.EventAlphaRefine\", EventAlphaRefine],\n [\"/structs.structs.QueryAllInfusionByDestinationRequest\", QueryAllInfusionByDestinationRequest],\n [\"/structs.structs.QueryGetPermissionRequest\", QueryGetPermissionRequest],\n [\"/structs.structs.QueryGetStructResponse\", QueryGetStructResponse],\n [\"/structs.structs.QueryGetSubstationRequest\", QueryGetSubstationRequest],\n [\"/structs.structs.EventRaidDetail\", EventRaidDetail],\n [\"/structs.structs.MsgGuildMembershipInvite\", MsgGuildMembershipInvite],\n [\"/structs.structs.MsgGuildMembershipInviteApprove\", MsgGuildMembershipInviteApprove],\n [\"/structs.structs.QueryGetAllocationResponse\", QueryGetAllocationResponse],\n [\"/structs.structs.QueryAllGridRequest\", QueryAllGridRequest],\n [\"/structs.structs.QueryAllStructRequest\", QueryAllStructRequest],\n [\"/structs.structs.StructAttributeRecord\", StructAttributeRecord],\n [\"/structs.structs.EventPlanetAttribute\", EventPlanetAttribute],\n [\"/structs.structs.EventOreMine\", EventOreMine],\n [\"/structs.structs.EventAttackShotDetail\", EventAttackShotDetail],\n [\"/structs.structs.MsgStructStealthDeactivate\", MsgStructStealthDeactivate],\n [\"/structs.structs.StructAttributes\", StructAttributes],\n [\"/structs.structs.EventStruct\", EventStruct],\n [\"/structs.structs.MsgGuildUpdateResponse\", MsgGuildUpdateResponse],\n [\"/structs.structs.MsgProviderGuildRevoke\", MsgProviderGuildRevoke],\n [\"/structs.structs.MsgProviderDelete\", MsgProviderDelete],\n [\"/structs.structs.Agreement\", Agreement],\n [\"/structs.structs.EventGuildBankConfiscateAndBurnDetail\", EventGuildBankConfiscateAndBurnDetail],\n [\"/structs.structs.EventGuildMembershipApplication\", EventGuildMembershipApplication],\n [\"/structs.structs.MsgGuildMembershipJoin\", MsgGuildMembershipJoin],\n [\"/structs.structs.MsgPlanetExplore\", MsgPlanetExplore],\n [\"/structs.structs.MsgStructStorageStash\", MsgStructStorageStash],\n [\"/structs.structs.MsgSubstationAllocationConnectResponse\", MsgSubstationAllocationConnectResponse],\n [\"/structs.structs.MsgPermissionRevokeOnObject\", MsgPermissionRevokeOnObject],\n [\"/structs.structs.MsgReactorCancelDefusion\", MsgReactorCancelDefusion],\n [\"/structs.structs.MsgSubstationAllocationConnect\", MsgSubstationAllocationConnect],\n [\"/structs.structs.QueryGetPlanetRequest\", QueryGetPlanetRequest],\n [\"/structs.structs.StructType\", StructType],\n [\"/structs.structs.MsgGuildMembershipResponse\", MsgGuildMembershipResponse],\n [\"/structs.structs.MsgReactorInfuse\", MsgReactorInfuse],\n [\"/structs.structs.MsgStructBuildCompleteAndStash\", MsgStructBuildCompleteAndStash],\n [\"/structs.structs.AddressAssociation\", AddressAssociation],\n [\"/structs.structs.EventAddressAssociation\", EventAddressAssociation],\n [\"/structs.structs.MsgReactorCancelDefusionResponse\", MsgReactorCancelDefusionResponse],\n [\"/structs.structs.AddressRecord\", AddressRecord],\n [\"/structs.structs.StructDefenders\", StructDefenders],\n [\"/structs.structs.EventPlanet\", EventPlanet],\n [\"/structs.structs.MsgGuildUpdateEntrySubstationId\", MsgGuildUpdateEntrySubstationId],\n [\"/structs.structs.AddressActivity\", AddressActivity],\n [\"/structs.structs.EventAlphaInfuse\", EventAlphaInfuse],\n [\"/structs.structs.MsgUpdateParamsResponse\", MsgUpdateParamsResponse],\n [\"/structs.structs.MsgStructOreRefineryComplete\", MsgStructOreRefineryComplete],\n [\"/structs.structs.QueryAllPlayerHaltedRequest\", QueryAllPlayerHaltedRequest],\n [\"/structs.structs.EventAlphaDefuse\", EventAlphaDefuse],\n [\"/structs.structs.QueryAllAddressResponse\", QueryAllAddressResponse],\n [\"/structs.structs.QueryGetPermissionResponse\", QueryGetPermissionResponse],\n [\"/structs.structs.QueryGetPlanetAttributeRequest\", QueryGetPlanetAttributeRequest],\n [\"/structs.structs.EventPermission\", EventPermission],\n [\"/structs.structs.EventOreTheftDetail\", EventOreTheftDetail],\n [\"/structs.structs.QueryGetPlanetResponse\", QueryGetPlanetResponse],\n [\"/structs.structs.Infusion\", Infusion],\n [\"/structs.structs.MsgGuildCreate\", MsgGuildCreate],\n [\"/structs.structs.MsgGuildMembershipRequest\", MsgGuildMembershipRequest],\n [\"/structs.structs.MsgPlayerUpdatePrimaryAddressResponse\", MsgPlayerUpdatePrimaryAddressResponse],\n [\"/structs.structs.MsgAgreementClose\", MsgAgreementClose],\n [\"/structs.structs.QueryGetAgreementResponse\", QueryGetAgreementResponse],\n [\"/structs.structs.EventOreMigrate\", EventOreMigrate],\n [\"/structs.structs.MsgGuildCreateResponse\", MsgGuildCreateResponse],\n [\"/structs.structs.MsgProviderGuildGrant\", MsgProviderGuildGrant],\n [\"/structs.structs.QueryAddressResponse\", QueryAddressResponse],\n [\"/structs.structs.MsgGuildMembershipRequestDeny\", MsgGuildMembershipRequestDeny],\n [\"/structs.structs.MsgStructDeactivate\", MsgStructDeactivate],\n [\"/structs.structs.MsgProviderResponse\", MsgProviderResponse],\n [\"/structs.structs.QueryAllPlanetResponse\", QueryAllPlanetResponse],\n [\"/structs.structs.QueryAllProviderResponse\", QueryAllProviderResponse],\n [\"/structs.structs.EventAlphaInfuseDetail\", EventAlphaInfuseDetail],\n [\"/structs.structs.MsgGuildUpdateEntryRank\", MsgGuildUpdateEntryRank],\n [\"/structs.structs.MsgPermissionGuildRankSet\", MsgPermissionGuildRankSet],\n [\"/structs.structs.MsgPermissionGuildRankRevoke\", MsgPermissionGuildRankRevoke],\n [\"/structs.structs.MsgPlayerUpdateGuildRank\", MsgPlayerUpdateGuildRank],\n [\"/structs.structs.MsgPlayerUpdateGuildRankResponse\", MsgPlayerUpdateGuildRankResponse],\n [\"/structs.structs.MsgGuildUpdateName\", MsgGuildUpdateName],\n [\"/structs.structs.MsgGuildUpdatePfp\", MsgGuildUpdatePfp],\n [\"/structs.structs.MsgPlayerUpdateName\", MsgPlayerUpdateName],\n [\"/structs.structs.MsgPlayerUpdatePfp\", MsgPlayerUpdatePfp],\n [\"/structs.structs.MsgPlayerUpdateResponse\", MsgPlayerUpdateResponse],\n [\"/structs.structs.MsgPlanetUpdateName\", MsgPlanetUpdateName],\n [\"/structs.structs.MsgPlanetUpdateResponse\", MsgPlanetUpdateResponse],\n [\"/structs.structs.MsgSubstationUpdateName\", MsgSubstationUpdateName],\n [\"/structs.structs.MsgSubstationUpdatePfp\", MsgSubstationUpdatePfp],\n [\"/structs.structs.MsgSubstationUpdateResponse\", MsgSubstationUpdateResponse],\n \n];\n\nexport { msgTypes }","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: cosmos/base/query/v1beta1/pagination.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"cosmos.base.query.v1beta1\";\n\n/**\n * PageRequest is to be embedded in gRPC request messages for efficient\n * pagination. Ex:\n *\n * message SomeRequest {\n * Foo some_parameter = 1;\n * PageRequest pagination = 2;\n * }\n */\nexport interface PageRequest {\n /**\n * key is a value returned in PageResponse.next_key to begin\n * querying the next page most efficiently. Only one of offset or key\n * should be set.\n */\n key: Uint8Array;\n /**\n * offset is a numeric offset that can be used when key is unavailable.\n * It is less efficient than using key. Only one of offset or key should\n * be set.\n */\n offset: number;\n /**\n * limit is the total number of results to be returned in the result page.\n * If left empty it will default to a value to be set by each app.\n */\n limit: number;\n /**\n * count_total is set to true to indicate that the result set should include\n * a count of the total number of items available for pagination in UIs.\n * count_total is only respected when offset is used. It is ignored when key\n * is set.\n */\n countTotal: boolean;\n /**\n * reverse is set to true if results are to be returned in the descending order.\n *\n * Since: cosmos-sdk 0.43\n */\n reverse: boolean;\n}\n\n/**\n * PageResponse is to be embedded in gRPC response messages where the\n * corresponding request message has used PageRequest.\n *\n * message SomeResponse {\n * repeated Bar results = 1;\n * PageResponse page = 2;\n * }\n */\nexport interface PageResponse {\n /**\n * next_key is the key to be passed to PageRequest.key to\n * query the next page most efficiently. It will be empty if\n * there are no more results.\n */\n nextKey: Uint8Array;\n /**\n * total is total number of results available if PageRequest.count_total\n * was set, its value is undefined otherwise\n */\n total: number;\n}\n\nfunction createBasePageRequest(): PageRequest {\n return { key: new Uint8Array(0), offset: 0, limit: 0, countTotal: false, reverse: false };\n}\n\nexport const PageRequest: MessageFns = {\n encode(message: PageRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.offset !== 0) {\n writer.uint32(16).uint64(message.offset);\n }\n if (message.limit !== 0) {\n writer.uint32(24).uint64(message.limit);\n }\n if (message.countTotal !== false) {\n writer.uint32(32).bool(message.countTotal);\n }\n if (message.reverse !== false) {\n writer.uint32(40).bool(message.reverse);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PageRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePageRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.bytes();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.offset = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.limit = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.countTotal = reader.bool();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.reverse = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PageRequest {\n return {\n key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(0),\n offset: isSet(object.offset) ? globalThis.Number(object.offset) : 0,\n limit: isSet(object.limit) ? globalThis.Number(object.limit) : 0,\n countTotal: isSet(object.countTotal) ? globalThis.Boolean(object.countTotal) : false,\n reverse: isSet(object.reverse) ? globalThis.Boolean(object.reverse) : false,\n };\n },\n\n toJSON(message: PageRequest): unknown {\n const obj: any = {};\n if (message.key.length !== 0) {\n obj.key = base64FromBytes(message.key);\n }\n if (message.offset !== 0) {\n obj.offset = Math.round(message.offset);\n }\n if (message.limit !== 0) {\n obj.limit = Math.round(message.limit);\n }\n if (message.countTotal !== false) {\n obj.countTotal = message.countTotal;\n }\n if (message.reverse !== false) {\n obj.reverse = message.reverse;\n }\n return obj;\n },\n\n create, I>>(base?: I): PageRequest {\n return PageRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): PageRequest {\n const message = createBasePageRequest();\n message.key = object.key ?? new Uint8Array(0);\n message.offset = object.offset ?? 0;\n message.limit = object.limit ?? 0;\n message.countTotal = object.countTotal ?? false;\n message.reverse = object.reverse ?? false;\n return message;\n },\n};\n\nfunction createBasePageResponse(): PageResponse {\n return { nextKey: new Uint8Array(0), total: 0 };\n}\n\nexport const PageResponse: MessageFns = {\n encode(message: PageResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.nextKey.length !== 0) {\n writer.uint32(10).bytes(message.nextKey);\n }\n if (message.total !== 0) {\n writer.uint32(16).uint64(message.total);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PageResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePageResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.nextKey = reader.bytes();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.total = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PageResponse {\n return {\n nextKey: isSet(object.nextKey) ? bytesFromBase64(object.nextKey) : new Uint8Array(0),\n total: isSet(object.total) ? globalThis.Number(object.total) : 0,\n };\n },\n\n toJSON(message: PageResponse): unknown {\n const obj: any = {};\n if (message.nextKey.length !== 0) {\n obj.nextKey = base64FromBytes(message.nextKey);\n }\n if (message.total !== 0) {\n obj.total = Math.round(message.total);\n }\n return obj;\n },\n\n create, I>>(base?: I): PageResponse {\n return PageResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): PageResponse {\n const message = createBasePageResponse();\n message.nextKey = object.nextKey ?? new Uint8Array(0);\n message.total = object.total ?? 0;\n return message;\n },\n};\n\nfunction bytesFromBase64(b64: string): Uint8Array {\n if ((globalThis as any).Buffer) {\n return Uint8Array.from(globalThis.Buffer.from(b64, \"base64\"));\n } else {\n const bin = globalThis.atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n }\n}\n\nfunction base64FromBytes(arr: Uint8Array): string {\n if ((globalThis as any).Buffer) {\n return globalThis.Buffer.from(arr).toString(\"base64\");\n } else {\n const bin: string[] = [];\n arr.forEach((byte) => {\n bin.push(globalThis.String.fromCharCode(byte));\n });\n return globalThis.btoa(bin.join(\"\"));\n }\n}\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: cosmos/base/v1beta1/coin.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"cosmos.base.v1beta1\";\n\n/**\n * Coin defines a token with a denomination and an amount.\n *\n * NOTE: The amount field is an Int which implements the custom method\n * signatures required by gogoproto.\n */\nexport interface Coin {\n denom: string;\n amount: string;\n}\n\n/**\n * DecCoin defines a token with a denomination and a decimal amount.\n *\n * NOTE: The amount field is an Dec which implements the custom method\n * signatures required by gogoproto.\n */\nexport interface DecCoin {\n denom: string;\n amount: string;\n}\n\nfunction createBaseCoin(): Coin {\n return { denom: \"\", amount: \"\" };\n}\n\nexport const Coin: MessageFns = {\n encode(message: Coin, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.amount !== \"\") {\n writer.uint32(18).string(message.amount);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Coin {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCoin();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.denom = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.amount = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Coin {\n return {\n denom: isSet(object.denom) ? globalThis.String(object.denom) : \"\",\n amount: isSet(object.amount) ? globalThis.String(object.amount) : \"\",\n };\n },\n\n toJSON(message: Coin): unknown {\n const obj: any = {};\n if (message.denom !== \"\") {\n obj.denom = message.denom;\n }\n if (message.amount !== \"\") {\n obj.amount = message.amount;\n }\n return obj;\n },\n\n create, I>>(base?: I): Coin {\n return Coin.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Coin {\n const message = createBaseCoin();\n message.denom = object.denom ?? \"\";\n message.amount = object.amount ?? \"\";\n return message;\n },\n};\n\nfunction createBaseDecCoin(): DecCoin {\n return { denom: \"\", amount: \"\" };\n}\n\nexport const DecCoin: MessageFns = {\n encode(message: DecCoin, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.amount !== \"\") {\n writer.uint32(18).string(message.amount);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DecCoin {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDecCoin();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.denom = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.amount = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): DecCoin {\n return {\n denom: isSet(object.denom) ? globalThis.String(object.denom) : \"\",\n amount: isSet(object.amount) ? globalThis.String(object.amount) : \"\",\n };\n },\n\n toJSON(message: DecCoin): unknown {\n const obj: any = {};\n if (message.denom !== \"\") {\n obj.denom = message.denom;\n }\n if (message.amount !== \"\") {\n obj.amount = message.amount;\n }\n return obj;\n },\n\n create, I>>(base?: I): DecCoin {\n return DecCoin.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): DecCoin {\n const message = createBaseDecCoin();\n message.denom = object.denom ?? \"\";\n message.amount = object.amount ?? \"\";\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: google/protobuf/timestamp.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"google.protobuf\";\n\n/**\n * A Timestamp represents a point in time independent of any time zone or local\n * calendar, encoded as a count of seconds and fractions of seconds at\n * nanosecond resolution. The count is relative to an epoch at UTC midnight on\n * January 1, 1970, in the proleptic Gregorian calendar which extends the\n * Gregorian calendar backwards to year one.\n *\n * All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n * second table is needed for interpretation, using a [24-hour linear\n * smear](https://developers.google.com/time/smear).\n *\n * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n * restricting to that range, we ensure that we can convert to and from [RFC\n * 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n *\n * # Examples\n *\n * Example 1: Compute Timestamp from POSIX `time()`.\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(time(NULL));\n * timestamp.set_nanos(0);\n *\n * Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n *\n * struct timeval tv;\n * gettimeofday(&tv, NULL);\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(tv.tv_sec);\n * timestamp.set_nanos(tv.tv_usec * 1000);\n *\n * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n *\n * FILETIME ft;\n * GetSystemTimeAsFileTime(&ft);\n * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n *\n * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n * Timestamp timestamp;\n * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n *\n * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n *\n * long millis = System.currentTimeMillis();\n *\n * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n * .setNanos((int) ((millis % 1000) * 1000000)).build();\n *\n * Example 5: Compute Timestamp from Java `Instant.now()`.\n *\n * Instant now = Instant.now();\n *\n * Timestamp timestamp =\n * Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n * .setNanos(now.getNano()).build();\n *\n * Example 6: Compute Timestamp from current time in Python.\n *\n * timestamp = Timestamp()\n * timestamp.GetCurrentTime()\n *\n * # JSON Mapping\n *\n * In JSON format, the Timestamp type is encoded as a string in the\n * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n * format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n * where {year} is always expressed using four digits while {month}, {day},\n * {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n * seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n * are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n * is required. A proto3 JSON serializer should always use UTC (as indicated by\n * \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n * able to accept both UTC and other timezones (as indicated by an offset).\n *\n * For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n * 01:30 UTC on January 15, 2017.\n *\n * In JavaScript, one can convert a Date object to this format using the\n * standard\n * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n * method. In Python, a standard `datetime.datetime` object can be converted\n * to this format using\n * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n * the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n * the Joda Time's [`ISODateTimeFormat.dateTime()`](\n * http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n * ) to obtain a formatter capable of generating timestamps in this format.\n */\nexport interface Timestamp {\n /**\n * Represents seconds of UTC time since Unix epoch\n * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n * 9999-12-31T23:59:59Z inclusive.\n */\n seconds: number;\n /**\n * Non-negative fractions of a second at nanosecond resolution. Negative\n * second values with fractions must still have non-negative nanos values\n * that count forward in time. Must be from 0 to 999,999,999\n * inclusive.\n */\n nanos: number;\n}\n\nfunction createBaseTimestamp(): Timestamp {\n return { seconds: 0, nanos: 0 };\n}\n\nexport const Timestamp: MessageFns = {\n encode(message: Timestamp, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.seconds !== 0) {\n writer.uint32(8).int64(message.seconds);\n }\n if (message.nanos !== 0) {\n writer.uint32(16).int32(message.nanos);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Timestamp {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTimestamp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.seconds = longToNumber(reader.int64());\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.nanos = reader.int32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Timestamp {\n return {\n seconds: isSet(object.seconds) ? globalThis.Number(object.seconds) : 0,\n nanos: isSet(object.nanos) ? globalThis.Number(object.nanos) : 0,\n };\n },\n\n toJSON(message: Timestamp): unknown {\n const obj: any = {};\n if (message.seconds !== 0) {\n obj.seconds = Math.round(message.seconds);\n }\n if (message.nanos !== 0) {\n obj.nanos = Math.round(message.nanos);\n }\n return obj;\n },\n\n create, I>>(base?: I): Timestamp {\n return Timestamp.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Timestamp {\n const message = createBaseTimestamp();\n message.seconds = object.seconds ?? 0;\n message.nanos = object.nanos ?? 0;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/address.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { Timestamp } from \"../../google/protobuf/timestamp\";\nimport { registrationStatus, registrationStatusFromJSON, registrationStatusToJSON } from \"./keys\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface AddressRecord {\n address: string;\n playerIndex: number;\n}\n\nexport interface AddressAssociation {\n address: string;\n playerIndex: number;\n registrationStatus: registrationStatus;\n}\n\nexport interface AddressActivity {\n address: string;\n blockHeight: number;\n blockTime: Date | undefined;\n}\n\nexport interface InternalAddressAssociation {\n address: string;\n objectId: string;\n}\n\nfunction createBaseAddressRecord(): AddressRecord {\n return { address: \"\", playerIndex: 0 };\n}\n\nexport const AddressRecord: MessageFns = {\n encode(message: AddressRecord, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.playerIndex !== 0) {\n writer.uint32(16).uint64(message.playerIndex);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): AddressRecord {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAddressRecord();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.playerIndex = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): AddressRecord {\n return {\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n playerIndex: isSet(object.playerIndex) ? globalThis.Number(object.playerIndex) : 0,\n };\n },\n\n toJSON(message: AddressRecord): unknown {\n const obj: any = {};\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.playerIndex !== 0) {\n obj.playerIndex = Math.round(message.playerIndex);\n }\n return obj;\n },\n\n create, I>>(base?: I): AddressRecord {\n return AddressRecord.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): AddressRecord {\n const message = createBaseAddressRecord();\n message.address = object.address ?? \"\";\n message.playerIndex = object.playerIndex ?? 0;\n return message;\n },\n};\n\nfunction createBaseAddressAssociation(): AddressAssociation {\n return { address: \"\", playerIndex: 0, registrationStatus: 0 };\n}\n\nexport const AddressAssociation: MessageFns = {\n encode(message: AddressAssociation, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.playerIndex !== 0) {\n writer.uint32(16).uint64(message.playerIndex);\n }\n if (message.registrationStatus !== 0) {\n writer.uint32(24).int32(message.registrationStatus);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): AddressAssociation {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAddressAssociation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.playerIndex = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.registrationStatus = reader.int32() as any;\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): AddressAssociation {\n return {\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n playerIndex: isSet(object.playerIndex) ? globalThis.Number(object.playerIndex) : 0,\n registrationStatus: isSet(object.registrationStatus) ? registrationStatusFromJSON(object.registrationStatus) : 0,\n };\n },\n\n toJSON(message: AddressAssociation): unknown {\n const obj: any = {};\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.playerIndex !== 0) {\n obj.playerIndex = Math.round(message.playerIndex);\n }\n if (message.registrationStatus !== 0) {\n obj.registrationStatus = registrationStatusToJSON(message.registrationStatus);\n }\n return obj;\n },\n\n create, I>>(base?: I): AddressAssociation {\n return AddressAssociation.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): AddressAssociation {\n const message = createBaseAddressAssociation();\n message.address = object.address ?? \"\";\n message.playerIndex = object.playerIndex ?? 0;\n message.registrationStatus = object.registrationStatus ?? 0;\n return message;\n },\n};\n\nfunction createBaseAddressActivity(): AddressActivity {\n return { address: \"\", blockHeight: 0, blockTime: undefined };\n}\n\nexport const AddressActivity: MessageFns = {\n encode(message: AddressActivity, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.blockHeight !== 0) {\n writer.uint32(16).int64(message.blockHeight);\n }\n if (message.blockTime !== undefined) {\n Timestamp.encode(toTimestamp(message.blockTime), writer.uint32(26).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): AddressActivity {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAddressActivity();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.blockHeight = longToNumber(reader.int64());\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.blockTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): AddressActivity {\n return {\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n blockHeight: isSet(object.blockHeight) ? globalThis.Number(object.blockHeight) : 0,\n blockTime: isSet(object.blockTime) ? fromJsonTimestamp(object.blockTime) : undefined,\n };\n },\n\n toJSON(message: AddressActivity): unknown {\n const obj: any = {};\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.blockHeight !== 0) {\n obj.blockHeight = Math.round(message.blockHeight);\n }\n if (message.blockTime !== undefined) {\n obj.blockTime = message.blockTime.toISOString();\n }\n return obj;\n },\n\n create, I>>(base?: I): AddressActivity {\n return AddressActivity.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): AddressActivity {\n const message = createBaseAddressActivity();\n message.address = object.address ?? \"\";\n message.blockHeight = object.blockHeight ?? 0;\n message.blockTime = object.blockTime ?? undefined;\n return message;\n },\n};\n\nfunction createBaseInternalAddressAssociation(): InternalAddressAssociation {\n return { address: \"\", objectId: \"\" };\n}\n\nexport const InternalAddressAssociation: MessageFns = {\n encode(message: InternalAddressAssociation, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.objectId !== \"\") {\n writer.uint32(18).string(message.objectId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): InternalAddressAssociation {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseInternalAddressAssociation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.objectId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): InternalAddressAssociation {\n return {\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n objectId: isSet(object.objectId) ? globalThis.String(object.objectId) : \"\",\n };\n },\n\n toJSON(message: InternalAddressAssociation): unknown {\n const obj: any = {};\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.objectId !== \"\") {\n obj.objectId = message.objectId;\n }\n return obj;\n },\n\n create, I>>(base?: I): InternalAddressAssociation {\n return InternalAddressAssociation.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): InternalAddressAssociation {\n const message = createBaseInternalAddressAssociation();\n message.address = object.address ?? \"\";\n message.objectId = object.objectId ?? \"\";\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction toTimestamp(date: Date): Timestamp {\n const seconds = Math.trunc(date.getTime() / 1_000);\n const nanos = (date.getTime() % 1_000) * 1_000_000;\n return { seconds, nanos };\n}\n\nfunction fromTimestamp(t: Timestamp): Date {\n let millis = (t.seconds || 0) * 1_000;\n millis += (t.nanos || 0) / 1_000_000;\n return new globalThis.Date(millis);\n}\n\nfunction fromJsonTimestamp(o: any): Date {\n if (o instanceof globalThis.Date) {\n return o;\n } else if (typeof o === \"string\") {\n return new globalThis.Date(o);\n } else {\n return fromTimestamp(Timestamp.fromJSON(o));\n }\n}\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/agreement.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface Agreement {\n id: string;\n providerId: string;\n allocationId: string;\n capacity: number;\n startBlock: number;\n endBlock: number;\n creator: string;\n owner: string;\n}\n\nfunction createBaseAgreement(): Agreement {\n return { id: \"\", providerId: \"\", allocationId: \"\", capacity: 0, startBlock: 0, endBlock: 0, creator: \"\", owner: \"\" };\n}\n\nexport const Agreement: MessageFns = {\n encode(message: Agreement, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n if (message.allocationId !== \"\") {\n writer.uint32(26).string(message.allocationId);\n }\n if (message.capacity !== 0) {\n writer.uint32(32).uint64(message.capacity);\n }\n if (message.startBlock !== 0) {\n writer.uint32(40).uint64(message.startBlock);\n }\n if (message.endBlock !== 0) {\n writer.uint32(48).uint64(message.endBlock);\n }\n if (message.creator !== \"\") {\n writer.uint32(58).string(message.creator);\n }\n if (message.owner !== \"\") {\n writer.uint32(66).string(message.owner);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Agreement {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAgreement();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.allocationId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.capacity = longToNumber(reader.uint64());\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.startBlock = longToNumber(reader.uint64());\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.endBlock = longToNumber(reader.uint64());\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 8: {\n if (tag !== 66) {\n break;\n }\n\n message.owner = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Agreement {\n return {\n id: isSet(object.id) ? globalThis.String(object.id) : \"\",\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n allocationId: isSet(object.allocationId) ? globalThis.String(object.allocationId) : \"\",\n capacity: isSet(object.capacity) ? globalThis.Number(object.capacity) : 0,\n startBlock: isSet(object.startBlock) ? globalThis.Number(object.startBlock) : 0,\n endBlock: isSet(object.endBlock) ? globalThis.Number(object.endBlock) : 0,\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n owner: isSet(object.owner) ? globalThis.String(object.owner) : \"\",\n };\n },\n\n toJSON(message: Agreement): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.allocationId !== \"\") {\n obj.allocationId = message.allocationId;\n }\n if (message.capacity !== 0) {\n obj.capacity = Math.round(message.capacity);\n }\n if (message.startBlock !== 0) {\n obj.startBlock = Math.round(message.startBlock);\n }\n if (message.endBlock !== 0) {\n obj.endBlock = Math.round(message.endBlock);\n }\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.owner !== \"\") {\n obj.owner = message.owner;\n }\n return obj;\n },\n\n create, I>>(base?: I): Agreement {\n return Agreement.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Agreement {\n const message = createBaseAgreement();\n message.id = object.id ?? \"\";\n message.providerId = object.providerId ?? \"\";\n message.allocationId = object.allocationId ?? \"\";\n message.capacity = object.capacity ?? 0;\n message.startBlock = object.startBlock ?? 0;\n message.endBlock = object.endBlock ?? 0;\n message.creator = object.creator ?? \"\";\n message.owner = object.owner ?? \"\";\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/allocation.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { allocationType, allocationTypeFromJSON, allocationTypeToJSON } from \"./keys\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface Allocation {\n id: string;\n type: allocationType;\n /** Core allocation details */\n sourceObjectId: string;\n index: number;\n destinationId: string;\n /** Who does this currently belong to */\n creator: string;\n controller: string;\n /** Locking will be needed for IBC */\n locked: boolean;\n}\n\nfunction createBaseAllocation(): Allocation {\n return {\n id: \"\",\n type: 0,\n sourceObjectId: \"\",\n index: 0,\n destinationId: \"\",\n creator: \"\",\n controller: \"\",\n locked: false,\n };\n}\n\nexport const Allocation: MessageFns = {\n encode(message: Allocation, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.type !== 0) {\n writer.uint32(16).int32(message.type);\n }\n if (message.sourceObjectId !== \"\") {\n writer.uint32(26).string(message.sourceObjectId);\n }\n if (message.index !== 0) {\n writer.uint32(32).uint64(message.index);\n }\n if (message.destinationId !== \"\") {\n writer.uint32(42).string(message.destinationId);\n }\n if (message.creator !== \"\") {\n writer.uint32(50).string(message.creator);\n }\n if (message.controller !== \"\") {\n writer.uint32(58).string(message.controller);\n }\n if (message.locked !== false) {\n writer.uint32(64).bool(message.locked);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Allocation {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAllocation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.type = reader.int32() as any;\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.sourceObjectId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.index = longToNumber(reader.uint64());\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.destinationId = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.controller = reader.string();\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.locked = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Allocation {\n return {\n id: isSet(object.id) ? globalThis.String(object.id) : \"\",\n type: isSet(object.type) ? allocationTypeFromJSON(object.type) : 0,\n sourceObjectId: isSet(object.sourceObjectId) ? globalThis.String(object.sourceObjectId) : \"\",\n index: isSet(object.index) ? globalThis.Number(object.index) : 0,\n destinationId: isSet(object.destinationId) ? globalThis.String(object.destinationId) : \"\",\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n controller: isSet(object.controller) ? globalThis.String(object.controller) : \"\",\n locked: isSet(object.locked) ? globalThis.Boolean(object.locked) : false,\n };\n },\n\n toJSON(message: Allocation): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n if (message.type !== 0) {\n obj.type = allocationTypeToJSON(message.type);\n }\n if (message.sourceObjectId !== \"\") {\n obj.sourceObjectId = message.sourceObjectId;\n }\n if (message.index !== 0) {\n obj.index = Math.round(message.index);\n }\n if (message.destinationId !== \"\") {\n obj.destinationId = message.destinationId;\n }\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.controller !== \"\") {\n obj.controller = message.controller;\n }\n if (message.locked !== false) {\n obj.locked = message.locked;\n }\n return obj;\n },\n\n create, I>>(base?: I): Allocation {\n return Allocation.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Allocation {\n const message = createBaseAllocation();\n message.id = object.id ?? \"\";\n message.type = object.type ?? 0;\n message.sourceObjectId = object.sourceObjectId ?? \"\";\n message.index = object.index ?? 0;\n message.destinationId = object.destinationId ?? \"\";\n message.creator = object.creator ?? \"\";\n message.controller = object.controller ?? \"\";\n message.locked = object.locked ?? false;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/events.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { Timestamp } from \"../../google/protobuf/timestamp\";\nimport { AddressActivity, AddressAssociation } from \"./address\";\nimport { Agreement } from \"./agreement\";\nimport { Allocation } from \"./allocation\";\nimport { Fleet } from \"./fleet\";\nimport { GridRecord } from \"./grid\";\nimport { Guild, GuildMembershipApplication } from \"./guild\";\nimport { Infusion } from \"./infusion\";\nimport {\n ambit,\n ambitFromJSON,\n ambitToJSON,\n objectType,\n objectTypeFromJSON,\n objectTypeToJSON,\n raidStatus,\n raidStatusFromJSON,\n raidStatusToJSON,\n techActiveWeaponry,\n techActiveWeaponryFromJSON,\n techActiveWeaponryToJSON,\n techPassiveWeaponry,\n techPassiveWeaponryFromJSON,\n techPassiveWeaponryToJSON,\n techPlanetaryDefenses,\n techPlanetaryDefensesFromJSON,\n techPlanetaryDefensesToJSON,\n techUnitDefenses,\n techUnitDefensesFromJSON,\n techUnitDefensesToJSON,\n techWeaponControl,\n techWeaponControlFromJSON,\n techWeaponControlToJSON,\n techWeaponSystem,\n techWeaponSystemFromJSON,\n techWeaponSystemToJSON,\n} from \"./keys\";\nimport { PermissionRecord } from \"./permission\";\nimport { Planet, PlanetAttributeRecord } from \"./planet\";\nimport { Player } from \"./player\";\nimport { Provider } from \"./provider\";\nimport { Reactor } from \"./reactor\";\nimport { Struct, StructAttributeRecord, StructDefender, StructType } from \"./struct\";\nimport { Substation } from \"./substation\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface EventAllocation {\n allocation: Allocation | undefined;\n}\n\nexport interface EventAgreement {\n agreement: Agreement | undefined;\n}\n\nexport interface EventFleet {\n fleet: Fleet | undefined;\n}\n\nexport interface EventGuild {\n guild: Guild | undefined;\n}\n\nexport interface EventInfusion {\n infusion: Infusion | undefined;\n}\n\nexport interface EventPlanet {\n planet: Planet | undefined;\n}\n\nexport interface EventPlanetAttribute {\n planetAttributeRecord: PlanetAttributeRecord | undefined;\n}\n\nexport interface EventPlayer {\n player: Player | undefined;\n}\n\nexport interface EventProvider {\n provider: Provider | undefined;\n}\n\nexport interface EventReactor {\n reactor: Reactor | undefined;\n}\n\nexport interface EventStruct {\n structure: Struct | undefined;\n}\n\nexport interface EventStructAttribute {\n structAttributeRecord: StructAttributeRecord | undefined;\n}\n\nexport interface EventStructDefender {\n structDefender: StructDefender | undefined;\n}\n\nexport interface EventStructType {\n structType: StructType | undefined;\n}\n\nexport interface EventSubstation {\n substation: Substation | undefined;\n}\n\nexport interface EventTime {\n eventTimeDetail: EventTimeDetail | undefined;\n}\n\nexport interface EventTimeDetail {\n blockHeight: number;\n blockTime: Date | undefined;\n}\n\nexport interface EventPermission {\n permissionRecord: PermissionRecord | undefined;\n}\n\nexport interface EventGrid {\n gridRecord: GridRecord | undefined;\n}\n\nexport interface EventProviderAddress {\n eventProviderAddressDetail: EventProviderAddressDetail | undefined;\n}\n\nexport interface EventProviderAddressDetail {\n providerId: string;\n collateralPool: string;\n earningPool: string;\n}\n\nexport interface EventProviderGrantGuild {\n eventProviderGrantGuildDetail: EventProviderGrantGuildDetail | undefined;\n}\n\nexport interface EventProviderGrantGuildDetail {\n providerId: string;\n guildId: string;\n}\n\nexport interface EventProviderRevokeGuild {\n eventProviderRevokeGuildDetail: EventProviderRevokeGuildDetail | undefined;\n}\n\nexport interface EventProviderRevokeGuildDetail {\n providerId: string;\n guildId: string;\n}\n\nexport interface EventPlayerHalted {\n playerId: string;\n}\n\nexport interface EventPlayerResumed {\n playerId: string;\n}\n\nexport interface EventDelete {\n objectId: string;\n}\n\nexport interface EventAddressAssociation {\n addressAssociation: AddressAssociation | undefined;\n}\n\nexport interface EventAddressActivity {\n addressActivity: AddressActivity | undefined;\n}\n\nexport interface EventGuildBankAddress {\n eventGuildBankAddressDetail: EventGuildBankAddressDetail | undefined;\n}\n\nexport interface EventGuildBankAddressDetail {\n guildId: string;\n bankCollateralPool: string;\n bankTokenPool: string;\n}\n\nexport interface EventGuildBankMint {\n eventGuildBankMintDetail: EventGuildBankMintDetail | undefined;\n}\n\nexport interface EventGuildBankMintDetail {\n guildId: string;\n amountAlpha: number;\n amountToken: number;\n playerId: string;\n}\n\nexport interface EventGuildBankRedeem {\n eventGuildBankRedeemDetail: EventGuildBankRedeemDetail | undefined;\n}\n\nexport interface EventGuildBankRedeemDetail {\n guildId: string;\n amountAlpha: number;\n amountToken: number;\n playerId: string;\n}\n\nexport interface EventGuildBankConfiscateAndBurn {\n eventGuildBankConfiscateAndBurnDetail: EventGuildBankConfiscateAndBurnDetail | undefined;\n}\n\nexport interface EventGuildBankConfiscateAndBurnDetail {\n guildId: string;\n amountAlpha: number;\n amountToken: number;\n address: string;\n}\n\nexport interface EventGuildMembershipApplication {\n guildMembershipApplication: GuildMembershipApplication | undefined;\n}\n\nexport interface EventOreMine {\n eventOreMineDetail: EventOreMineDetail | undefined;\n}\n\nexport interface EventOreMineDetail {\n playerId: string;\n primaryAddress: string;\n amount: number;\n}\n\nexport interface EventAlphaRefine {\n eventAlphaRefineDetail: EventAlphaRefineDetail | undefined;\n}\n\nexport interface EventAlphaRefineDetail {\n playerId: string;\n primaryAddress: string;\n amount: number;\n}\n\nexport interface EventAlphaInfuse {\n eventAlphaInfuseDetail: EventAlphaInfuseDetail | undefined;\n}\n\nexport interface EventAlphaInfuseDetail {\n playerId: string;\n primaryAddress: string;\n amount: number;\n}\n\nexport interface EventAlphaDefuse {\n eventAlphaDefuseDetail: EventAlphaDefuseDetail | undefined;\n}\n\nexport interface EventAlphaDefuseDetail {\n primaryAddress: string;\n amount: number;\n}\n\nexport interface EventOreTheft {\n eventOreTheftDetail: EventOreTheftDetail | undefined;\n}\n\nexport interface EventOreTheftDetail {\n victimPrimaryAddress: string;\n victimPlayerId: string;\n thiefPrimaryAddress: string;\n thiefPlayerId: string;\n amount: number;\n}\n\nexport interface EventOreMigrate {\n eventOreMigrateDetail: EventOreMigrateDetail | undefined;\n}\n\nexport interface EventOreMigrateDetail {\n playerId: string;\n primaryAddress: string;\n oldPrimaryAddress: string;\n amount: number;\n}\n\nexport interface EventAttack {\n eventAttackDetail: EventAttackDetail | undefined;\n}\n\nexport interface EventAttackDetail {\n attackerStructId: string;\n attackerStructType: number;\n attackerStructLocationType: objectType;\n attackerStructLocationId: string;\n attackerStructOperatingAmbit: ambit;\n attackerStructSlot: number;\n weaponSystem: techWeaponSystem;\n weaponControl: techWeaponControl;\n activeWeaponry: techActiveWeaponry;\n eventAttackShotDetail: EventAttackShotDetail[];\n recoilDamageToAttacker: boolean;\n recoilDamage: number;\n recoilDamageDestroyedAttacker: boolean;\n planetaryDefenseCannonDamageToAttacker: boolean;\n planetaryDefenseCannonDamage: number;\n planetaryDefenseCannonDamageDestroyedAttacker: boolean;\n attackerPlayerId: string;\n targetPlayerId: string;\n}\n\nexport interface EventAttackShotDetail {\n targetStructId: string;\n targetStructType: number;\n targetStructLocationType: objectType;\n targetStructLocationId: string;\n targetStructOperatingAmbit: ambit;\n targetStructSlot: number;\n evaded: boolean;\n evadedCause: techUnitDefenses;\n evadedByPlanetaryDefenses: boolean;\n evadedByPlanetaryDefensesCause: techPlanetaryDefenses;\n blocked: boolean;\n blockedByStructId: string;\n blockedByStructType: number;\n blockedByStructLocationType: objectType;\n blockedByStructLocationId: string;\n blockedByStructOperatingAmbit: ambit;\n blockedByStructSlot: number;\n blockerDestroyed: boolean;\n eventAttackDefenderCounterDetail: EventAttackDefenderCounterDetail[];\n damageDealt: number;\n damageReduction: number;\n damageReductionCause: techUnitDefenses;\n damage: number;\n targetCountered: boolean;\n targetCounteredDamage: number;\n targetCounterDestroyedAttacker: boolean;\n targetCounterCause: techPassiveWeaponry;\n targetDestroyed: boolean;\n postDestructionDamageToAttacker: boolean;\n postDestructionDamage: number;\n postDestructionDamageDestroyedAttacker: boolean;\n postDestructionDamageCause: techPassiveWeaponry;\n}\n\nexport interface EventAttackDefenderCounterDetail {\n counterByStructId: string;\n counterByStructType: number;\n counterByStructLocationType: objectType;\n counterByStructLocationId: string;\n counterByStructOperatingAmbit: ambit;\n counterByStructSlot: number;\n counterDamage: number;\n counterDestroyedAttacker: boolean;\n}\n\nexport interface EventRaid {\n eventRaidDetail: EventRaidDetail | undefined;\n}\n\nexport interface EventRaidDetail {\n fleetId: string;\n planetId: string;\n status: raidStatus;\n}\n\nfunction createBaseEventAllocation(): EventAllocation {\n return { allocation: undefined };\n}\n\nexport const EventAllocation: MessageFns = {\n encode(message: EventAllocation, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.allocation !== undefined) {\n Allocation.encode(message.allocation, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAllocation {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAllocation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.allocation = Allocation.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAllocation {\n return { allocation: isSet(object.allocation) ? Allocation.fromJSON(object.allocation) : undefined };\n },\n\n toJSON(message: EventAllocation): unknown {\n const obj: any = {};\n if (message.allocation !== undefined) {\n obj.allocation = Allocation.toJSON(message.allocation);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAllocation {\n return EventAllocation.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAllocation {\n const message = createBaseEventAllocation();\n message.allocation = (object.allocation !== undefined && object.allocation !== null)\n ? Allocation.fromPartial(object.allocation)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventAgreement(): EventAgreement {\n return { agreement: undefined };\n}\n\nexport const EventAgreement: MessageFns = {\n encode(message: EventAgreement, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.agreement !== undefined) {\n Agreement.encode(message.agreement, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAgreement {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAgreement();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.agreement = Agreement.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAgreement {\n return { agreement: isSet(object.agreement) ? Agreement.fromJSON(object.agreement) : undefined };\n },\n\n toJSON(message: EventAgreement): unknown {\n const obj: any = {};\n if (message.agreement !== undefined) {\n obj.agreement = Agreement.toJSON(message.agreement);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAgreement {\n return EventAgreement.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAgreement {\n const message = createBaseEventAgreement();\n message.agreement = (object.agreement !== undefined && object.agreement !== null)\n ? Agreement.fromPartial(object.agreement)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventFleet(): EventFleet {\n return { fleet: undefined };\n}\n\nexport const EventFleet: MessageFns = {\n encode(message: EventFleet, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.fleet !== undefined) {\n Fleet.encode(message.fleet, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventFleet {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventFleet();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.fleet = Fleet.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventFleet {\n return { fleet: isSet(object.fleet) ? Fleet.fromJSON(object.fleet) : undefined };\n },\n\n toJSON(message: EventFleet): unknown {\n const obj: any = {};\n if (message.fleet !== undefined) {\n obj.fleet = Fleet.toJSON(message.fleet);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventFleet {\n return EventFleet.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventFleet {\n const message = createBaseEventFleet();\n message.fleet = (object.fleet !== undefined && object.fleet !== null) ? Fleet.fromPartial(object.fleet) : undefined;\n return message;\n },\n};\n\nfunction createBaseEventGuild(): EventGuild {\n return { guild: undefined };\n}\n\nexport const EventGuild: MessageFns = {\n encode(message: EventGuild, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.guild !== undefined) {\n Guild.encode(message.guild, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventGuild {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventGuild();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.guild = Guild.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventGuild {\n return { guild: isSet(object.guild) ? Guild.fromJSON(object.guild) : undefined };\n },\n\n toJSON(message: EventGuild): unknown {\n const obj: any = {};\n if (message.guild !== undefined) {\n obj.guild = Guild.toJSON(message.guild);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventGuild {\n return EventGuild.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventGuild {\n const message = createBaseEventGuild();\n message.guild = (object.guild !== undefined && object.guild !== null) ? Guild.fromPartial(object.guild) : undefined;\n return message;\n },\n};\n\nfunction createBaseEventInfusion(): EventInfusion {\n return { infusion: undefined };\n}\n\nexport const EventInfusion: MessageFns = {\n encode(message: EventInfusion, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.infusion !== undefined) {\n Infusion.encode(message.infusion, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventInfusion {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventInfusion();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.infusion = Infusion.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventInfusion {\n return { infusion: isSet(object.infusion) ? Infusion.fromJSON(object.infusion) : undefined };\n },\n\n toJSON(message: EventInfusion): unknown {\n const obj: any = {};\n if (message.infusion !== undefined) {\n obj.infusion = Infusion.toJSON(message.infusion);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventInfusion {\n return EventInfusion.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventInfusion {\n const message = createBaseEventInfusion();\n message.infusion = (object.infusion !== undefined && object.infusion !== null)\n ? Infusion.fromPartial(object.infusion)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventPlanet(): EventPlanet {\n return { planet: undefined };\n}\n\nexport const EventPlanet: MessageFns = {\n encode(message: EventPlanet, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.planet !== undefined) {\n Planet.encode(message.planet, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventPlanet {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventPlanet();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.planet = Planet.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventPlanet {\n return { planet: isSet(object.planet) ? Planet.fromJSON(object.planet) : undefined };\n },\n\n toJSON(message: EventPlanet): unknown {\n const obj: any = {};\n if (message.planet !== undefined) {\n obj.planet = Planet.toJSON(message.planet);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventPlanet {\n return EventPlanet.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventPlanet {\n const message = createBaseEventPlanet();\n message.planet = (object.planet !== undefined && object.planet !== null)\n ? Planet.fromPartial(object.planet)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventPlanetAttribute(): EventPlanetAttribute {\n return { planetAttributeRecord: undefined };\n}\n\nexport const EventPlanetAttribute: MessageFns = {\n encode(message: EventPlanetAttribute, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.planetAttributeRecord !== undefined) {\n PlanetAttributeRecord.encode(message.planetAttributeRecord, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventPlanetAttribute {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventPlanetAttribute();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.planetAttributeRecord = PlanetAttributeRecord.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventPlanetAttribute {\n return {\n planetAttributeRecord: isSet(object.planetAttributeRecord)\n ? PlanetAttributeRecord.fromJSON(object.planetAttributeRecord)\n : undefined,\n };\n },\n\n toJSON(message: EventPlanetAttribute): unknown {\n const obj: any = {};\n if (message.planetAttributeRecord !== undefined) {\n obj.planetAttributeRecord = PlanetAttributeRecord.toJSON(message.planetAttributeRecord);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventPlanetAttribute {\n return EventPlanetAttribute.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventPlanetAttribute {\n const message = createBaseEventPlanetAttribute();\n message.planetAttributeRecord =\n (object.planetAttributeRecord !== undefined && object.planetAttributeRecord !== null)\n ? PlanetAttributeRecord.fromPartial(object.planetAttributeRecord)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventPlayer(): EventPlayer {\n return { player: undefined };\n}\n\nexport const EventPlayer: MessageFns = {\n encode(message: EventPlayer, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.player !== undefined) {\n Player.encode(message.player, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventPlayer {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventPlayer();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.player = Player.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventPlayer {\n return { player: isSet(object.player) ? Player.fromJSON(object.player) : undefined };\n },\n\n toJSON(message: EventPlayer): unknown {\n const obj: any = {};\n if (message.player !== undefined) {\n obj.player = Player.toJSON(message.player);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventPlayer {\n return EventPlayer.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventPlayer {\n const message = createBaseEventPlayer();\n message.player = (object.player !== undefined && object.player !== null)\n ? Player.fromPartial(object.player)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventProvider(): EventProvider {\n return { provider: undefined };\n}\n\nexport const EventProvider: MessageFns = {\n encode(message: EventProvider, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.provider !== undefined) {\n Provider.encode(message.provider, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventProvider {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventProvider();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.provider = Provider.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventProvider {\n return { provider: isSet(object.provider) ? Provider.fromJSON(object.provider) : undefined };\n },\n\n toJSON(message: EventProvider): unknown {\n const obj: any = {};\n if (message.provider !== undefined) {\n obj.provider = Provider.toJSON(message.provider);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventProvider {\n return EventProvider.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventProvider {\n const message = createBaseEventProvider();\n message.provider = (object.provider !== undefined && object.provider !== null)\n ? Provider.fromPartial(object.provider)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventReactor(): EventReactor {\n return { reactor: undefined };\n}\n\nexport const EventReactor: MessageFns = {\n encode(message: EventReactor, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.reactor !== undefined) {\n Reactor.encode(message.reactor, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventReactor {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventReactor();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.reactor = Reactor.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventReactor {\n return { reactor: isSet(object.reactor) ? Reactor.fromJSON(object.reactor) : undefined };\n },\n\n toJSON(message: EventReactor): unknown {\n const obj: any = {};\n if (message.reactor !== undefined) {\n obj.reactor = Reactor.toJSON(message.reactor);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventReactor {\n return EventReactor.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventReactor {\n const message = createBaseEventReactor();\n message.reactor = (object.reactor !== undefined && object.reactor !== null)\n ? Reactor.fromPartial(object.reactor)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventStruct(): EventStruct {\n return { structure: undefined };\n}\n\nexport const EventStruct: MessageFns = {\n encode(message: EventStruct, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.structure !== undefined) {\n Struct.encode(message.structure, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventStruct {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventStruct();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.structure = Struct.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventStruct {\n return { structure: isSet(object.structure) ? Struct.fromJSON(object.structure) : undefined };\n },\n\n toJSON(message: EventStruct): unknown {\n const obj: any = {};\n if (message.structure !== undefined) {\n obj.structure = Struct.toJSON(message.structure);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventStruct {\n return EventStruct.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventStruct {\n const message = createBaseEventStruct();\n message.structure = (object.structure !== undefined && object.structure !== null)\n ? Struct.fromPartial(object.structure)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventStructAttribute(): EventStructAttribute {\n return { structAttributeRecord: undefined };\n}\n\nexport const EventStructAttribute: MessageFns = {\n encode(message: EventStructAttribute, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.structAttributeRecord !== undefined) {\n StructAttributeRecord.encode(message.structAttributeRecord, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventStructAttribute {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventStructAttribute();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.structAttributeRecord = StructAttributeRecord.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventStructAttribute {\n return {\n structAttributeRecord: isSet(object.structAttributeRecord)\n ? StructAttributeRecord.fromJSON(object.structAttributeRecord)\n : undefined,\n };\n },\n\n toJSON(message: EventStructAttribute): unknown {\n const obj: any = {};\n if (message.structAttributeRecord !== undefined) {\n obj.structAttributeRecord = StructAttributeRecord.toJSON(message.structAttributeRecord);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventStructAttribute {\n return EventStructAttribute.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventStructAttribute {\n const message = createBaseEventStructAttribute();\n message.structAttributeRecord =\n (object.structAttributeRecord !== undefined && object.structAttributeRecord !== null)\n ? StructAttributeRecord.fromPartial(object.structAttributeRecord)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventStructDefender(): EventStructDefender {\n return { structDefender: undefined };\n}\n\nexport const EventStructDefender: MessageFns = {\n encode(message: EventStructDefender, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.structDefender !== undefined) {\n StructDefender.encode(message.structDefender, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventStructDefender {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventStructDefender();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.structDefender = StructDefender.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventStructDefender {\n return {\n structDefender: isSet(object.structDefender) ? StructDefender.fromJSON(object.structDefender) : undefined,\n };\n },\n\n toJSON(message: EventStructDefender): unknown {\n const obj: any = {};\n if (message.structDefender !== undefined) {\n obj.structDefender = StructDefender.toJSON(message.structDefender);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventStructDefender {\n return EventStructDefender.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventStructDefender {\n const message = createBaseEventStructDefender();\n message.structDefender = (object.structDefender !== undefined && object.structDefender !== null)\n ? StructDefender.fromPartial(object.structDefender)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventStructType(): EventStructType {\n return { structType: undefined };\n}\n\nexport const EventStructType: MessageFns = {\n encode(message: EventStructType, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.structType !== undefined) {\n StructType.encode(message.structType, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventStructType {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventStructType();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.structType = StructType.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventStructType {\n return { structType: isSet(object.structType) ? StructType.fromJSON(object.structType) : undefined };\n },\n\n toJSON(message: EventStructType): unknown {\n const obj: any = {};\n if (message.structType !== undefined) {\n obj.structType = StructType.toJSON(message.structType);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventStructType {\n return EventStructType.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventStructType {\n const message = createBaseEventStructType();\n message.structType = (object.structType !== undefined && object.structType !== null)\n ? StructType.fromPartial(object.structType)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventSubstation(): EventSubstation {\n return { substation: undefined };\n}\n\nexport const EventSubstation: MessageFns = {\n encode(message: EventSubstation, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.substation !== undefined) {\n Substation.encode(message.substation, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventSubstation {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventSubstation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.substation = Substation.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventSubstation {\n return { substation: isSet(object.substation) ? Substation.fromJSON(object.substation) : undefined };\n },\n\n toJSON(message: EventSubstation): unknown {\n const obj: any = {};\n if (message.substation !== undefined) {\n obj.substation = Substation.toJSON(message.substation);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventSubstation {\n return EventSubstation.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventSubstation {\n const message = createBaseEventSubstation();\n message.substation = (object.substation !== undefined && object.substation !== null)\n ? Substation.fromPartial(object.substation)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventTime(): EventTime {\n return { eventTimeDetail: undefined };\n}\n\nexport const EventTime: MessageFns = {\n encode(message: EventTime, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventTimeDetail !== undefined) {\n EventTimeDetail.encode(message.eventTimeDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventTime {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventTime();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventTimeDetail = EventTimeDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventTime {\n return {\n eventTimeDetail: isSet(object.eventTimeDetail) ? EventTimeDetail.fromJSON(object.eventTimeDetail) : undefined,\n };\n },\n\n toJSON(message: EventTime): unknown {\n const obj: any = {};\n if (message.eventTimeDetail !== undefined) {\n obj.eventTimeDetail = EventTimeDetail.toJSON(message.eventTimeDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventTime {\n return EventTime.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventTime {\n const message = createBaseEventTime();\n message.eventTimeDetail = (object.eventTimeDetail !== undefined && object.eventTimeDetail !== null)\n ? EventTimeDetail.fromPartial(object.eventTimeDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventTimeDetail(): EventTimeDetail {\n return { blockHeight: 0, blockTime: undefined };\n}\n\nexport const EventTimeDetail: MessageFns = {\n encode(message: EventTimeDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.blockHeight !== 0) {\n writer.uint32(8).int64(message.blockHeight);\n }\n if (message.blockTime !== undefined) {\n Timestamp.encode(toTimestamp(message.blockTime), writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventTimeDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventTimeDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.blockHeight = longToNumber(reader.int64());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.blockTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventTimeDetail {\n return {\n blockHeight: isSet(object.blockHeight) ? globalThis.Number(object.blockHeight) : 0,\n blockTime: isSet(object.blockTime) ? fromJsonTimestamp(object.blockTime) : undefined,\n };\n },\n\n toJSON(message: EventTimeDetail): unknown {\n const obj: any = {};\n if (message.blockHeight !== 0) {\n obj.blockHeight = Math.round(message.blockHeight);\n }\n if (message.blockTime !== undefined) {\n obj.blockTime = message.blockTime.toISOString();\n }\n return obj;\n },\n\n create, I>>(base?: I): EventTimeDetail {\n return EventTimeDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventTimeDetail {\n const message = createBaseEventTimeDetail();\n message.blockHeight = object.blockHeight ?? 0;\n message.blockTime = object.blockTime ?? undefined;\n return message;\n },\n};\n\nfunction createBaseEventPermission(): EventPermission {\n return { permissionRecord: undefined };\n}\n\nexport const EventPermission: MessageFns = {\n encode(message: EventPermission, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.permissionRecord !== undefined) {\n PermissionRecord.encode(message.permissionRecord, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventPermission {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventPermission();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.permissionRecord = PermissionRecord.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventPermission {\n return {\n permissionRecord: isSet(object.permissionRecord) ? PermissionRecord.fromJSON(object.permissionRecord) : undefined,\n };\n },\n\n toJSON(message: EventPermission): unknown {\n const obj: any = {};\n if (message.permissionRecord !== undefined) {\n obj.permissionRecord = PermissionRecord.toJSON(message.permissionRecord);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventPermission {\n return EventPermission.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventPermission {\n const message = createBaseEventPermission();\n message.permissionRecord = (object.permissionRecord !== undefined && object.permissionRecord !== null)\n ? PermissionRecord.fromPartial(object.permissionRecord)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventGrid(): EventGrid {\n return { gridRecord: undefined };\n}\n\nexport const EventGrid: MessageFns = {\n encode(message: EventGrid, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.gridRecord !== undefined) {\n GridRecord.encode(message.gridRecord, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventGrid {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventGrid();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.gridRecord = GridRecord.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventGrid {\n return { gridRecord: isSet(object.gridRecord) ? GridRecord.fromJSON(object.gridRecord) : undefined };\n },\n\n toJSON(message: EventGrid): unknown {\n const obj: any = {};\n if (message.gridRecord !== undefined) {\n obj.gridRecord = GridRecord.toJSON(message.gridRecord);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventGrid {\n return EventGrid.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventGrid {\n const message = createBaseEventGrid();\n message.gridRecord = (object.gridRecord !== undefined && object.gridRecord !== null)\n ? GridRecord.fromPartial(object.gridRecord)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventProviderAddress(): EventProviderAddress {\n return { eventProviderAddressDetail: undefined };\n}\n\nexport const EventProviderAddress: MessageFns = {\n encode(message: EventProviderAddress, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventProviderAddressDetail !== undefined) {\n EventProviderAddressDetail.encode(message.eventProviderAddressDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventProviderAddress {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventProviderAddress();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventProviderAddressDetail = EventProviderAddressDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventProviderAddress {\n return {\n eventProviderAddressDetail: isSet(object.eventProviderAddressDetail)\n ? EventProviderAddressDetail.fromJSON(object.eventProviderAddressDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventProviderAddress): unknown {\n const obj: any = {};\n if (message.eventProviderAddressDetail !== undefined) {\n obj.eventProviderAddressDetail = EventProviderAddressDetail.toJSON(message.eventProviderAddressDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventProviderAddress {\n return EventProviderAddress.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventProviderAddress {\n const message = createBaseEventProviderAddress();\n message.eventProviderAddressDetail =\n (object.eventProviderAddressDetail !== undefined && object.eventProviderAddressDetail !== null)\n ? EventProviderAddressDetail.fromPartial(object.eventProviderAddressDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventProviderAddressDetail(): EventProviderAddressDetail {\n return { providerId: \"\", collateralPool: \"\", earningPool: \"\" };\n}\n\nexport const EventProviderAddressDetail: MessageFns = {\n encode(message: EventProviderAddressDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.providerId !== \"\") {\n writer.uint32(10).string(message.providerId);\n }\n if (message.collateralPool !== \"\") {\n writer.uint32(18).string(message.collateralPool);\n }\n if (message.earningPool !== \"\") {\n writer.uint32(26).string(message.earningPool);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventProviderAddressDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventProviderAddressDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.collateralPool = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.earningPool = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventProviderAddressDetail {\n return {\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n collateralPool: isSet(object.collateralPool) ? globalThis.String(object.collateralPool) : \"\",\n earningPool: isSet(object.earningPool) ? globalThis.String(object.earningPool) : \"\",\n };\n },\n\n toJSON(message: EventProviderAddressDetail): unknown {\n const obj: any = {};\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.collateralPool !== \"\") {\n obj.collateralPool = message.collateralPool;\n }\n if (message.earningPool !== \"\") {\n obj.earningPool = message.earningPool;\n }\n return obj;\n },\n\n create, I>>(base?: I): EventProviderAddressDetail {\n return EventProviderAddressDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventProviderAddressDetail {\n const message = createBaseEventProviderAddressDetail();\n message.providerId = object.providerId ?? \"\";\n message.collateralPool = object.collateralPool ?? \"\";\n message.earningPool = object.earningPool ?? \"\";\n return message;\n },\n};\n\nfunction createBaseEventProviderGrantGuild(): EventProviderGrantGuild {\n return { eventProviderGrantGuildDetail: undefined };\n}\n\nexport const EventProviderGrantGuild: MessageFns = {\n encode(message: EventProviderGrantGuild, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventProviderGrantGuildDetail !== undefined) {\n EventProviderGrantGuildDetail.encode(message.eventProviderGrantGuildDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventProviderGrantGuild {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventProviderGrantGuild();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventProviderGrantGuildDetail = EventProviderGrantGuildDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventProviderGrantGuild {\n return {\n eventProviderGrantGuildDetail: isSet(object.eventProviderGrantGuildDetail)\n ? EventProviderGrantGuildDetail.fromJSON(object.eventProviderGrantGuildDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventProviderGrantGuild): unknown {\n const obj: any = {};\n if (message.eventProviderGrantGuildDetail !== undefined) {\n obj.eventProviderGrantGuildDetail = EventProviderGrantGuildDetail.toJSON(message.eventProviderGrantGuildDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventProviderGrantGuild {\n return EventProviderGrantGuild.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventProviderGrantGuild {\n const message = createBaseEventProviderGrantGuild();\n message.eventProviderGrantGuildDetail =\n (object.eventProviderGrantGuildDetail !== undefined && object.eventProviderGrantGuildDetail !== null)\n ? EventProviderGrantGuildDetail.fromPartial(object.eventProviderGrantGuildDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventProviderGrantGuildDetail(): EventProviderGrantGuildDetail {\n return { providerId: \"\", guildId: \"\" };\n}\n\nexport const EventProviderGrantGuildDetail: MessageFns = {\n encode(message: EventProviderGrantGuildDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.providerId !== \"\") {\n writer.uint32(10).string(message.providerId);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventProviderGrantGuildDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventProviderGrantGuildDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventProviderGrantGuildDetail {\n return {\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n };\n },\n\n toJSON(message: EventProviderGrantGuildDetail): unknown {\n const obj: any = {};\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n return obj;\n },\n\n create, I>>(base?: I): EventProviderGrantGuildDetail {\n return EventProviderGrantGuildDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): EventProviderGrantGuildDetail {\n const message = createBaseEventProviderGrantGuildDetail();\n message.providerId = object.providerId ?? \"\";\n message.guildId = object.guildId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseEventProviderRevokeGuild(): EventProviderRevokeGuild {\n return { eventProviderRevokeGuildDetail: undefined };\n}\n\nexport const EventProviderRevokeGuild: MessageFns = {\n encode(message: EventProviderRevokeGuild, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventProviderRevokeGuildDetail !== undefined) {\n EventProviderRevokeGuildDetail.encode(message.eventProviderRevokeGuildDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventProviderRevokeGuild {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventProviderRevokeGuild();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventProviderRevokeGuildDetail = EventProviderRevokeGuildDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventProviderRevokeGuild {\n return {\n eventProviderRevokeGuildDetail: isSet(object.eventProviderRevokeGuildDetail)\n ? EventProviderRevokeGuildDetail.fromJSON(object.eventProviderRevokeGuildDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventProviderRevokeGuild): unknown {\n const obj: any = {};\n if (message.eventProviderRevokeGuildDetail !== undefined) {\n obj.eventProviderRevokeGuildDetail = EventProviderRevokeGuildDetail.toJSON(\n message.eventProviderRevokeGuildDetail,\n );\n }\n return obj;\n },\n\n create, I>>(base?: I): EventProviderRevokeGuild {\n return EventProviderRevokeGuild.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventProviderRevokeGuild {\n const message = createBaseEventProviderRevokeGuild();\n message.eventProviderRevokeGuildDetail =\n (object.eventProviderRevokeGuildDetail !== undefined && object.eventProviderRevokeGuildDetail !== null)\n ? EventProviderRevokeGuildDetail.fromPartial(object.eventProviderRevokeGuildDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventProviderRevokeGuildDetail(): EventProviderRevokeGuildDetail {\n return { providerId: \"\", guildId: \"\" };\n}\n\nexport const EventProviderRevokeGuildDetail: MessageFns = {\n encode(message: EventProviderRevokeGuildDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.providerId !== \"\") {\n writer.uint32(10).string(message.providerId);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventProviderRevokeGuildDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventProviderRevokeGuildDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventProviderRevokeGuildDetail {\n return {\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n };\n },\n\n toJSON(message: EventProviderRevokeGuildDetail): unknown {\n const obj: any = {};\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n return obj;\n },\n\n create, I>>(base?: I): EventProviderRevokeGuildDetail {\n return EventProviderRevokeGuildDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): EventProviderRevokeGuildDetail {\n const message = createBaseEventProviderRevokeGuildDetail();\n message.providerId = object.providerId ?? \"\";\n message.guildId = object.guildId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseEventPlayerHalted(): EventPlayerHalted {\n return { playerId: \"\" };\n}\n\nexport const EventPlayerHalted: MessageFns = {\n encode(message: EventPlayerHalted, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.playerId !== \"\") {\n writer.uint32(10).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventPlayerHalted {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventPlayerHalted();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventPlayerHalted {\n return { playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\" };\n },\n\n toJSON(message: EventPlayerHalted): unknown {\n const obj: any = {};\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): EventPlayerHalted {\n return EventPlayerHalted.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventPlayerHalted {\n const message = createBaseEventPlayerHalted();\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseEventPlayerResumed(): EventPlayerResumed {\n return { playerId: \"\" };\n}\n\nexport const EventPlayerResumed: MessageFns = {\n encode(message: EventPlayerResumed, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.playerId !== \"\") {\n writer.uint32(10).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventPlayerResumed {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventPlayerResumed();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventPlayerResumed {\n return { playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\" };\n },\n\n toJSON(message: EventPlayerResumed): unknown {\n const obj: any = {};\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): EventPlayerResumed {\n return EventPlayerResumed.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventPlayerResumed {\n const message = createBaseEventPlayerResumed();\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseEventDelete(): EventDelete {\n return { objectId: \"\" };\n}\n\nexport const EventDelete: MessageFns = {\n encode(message: EventDelete, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.objectId !== \"\") {\n writer.uint32(10).string(message.objectId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventDelete {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventDelete();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.objectId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventDelete {\n return { objectId: isSet(object.objectId) ? globalThis.String(object.objectId) : \"\" };\n },\n\n toJSON(message: EventDelete): unknown {\n const obj: any = {};\n if (message.objectId !== \"\") {\n obj.objectId = message.objectId;\n }\n return obj;\n },\n\n create, I>>(base?: I): EventDelete {\n return EventDelete.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventDelete {\n const message = createBaseEventDelete();\n message.objectId = object.objectId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseEventAddressAssociation(): EventAddressAssociation {\n return { addressAssociation: undefined };\n}\n\nexport const EventAddressAssociation: MessageFns = {\n encode(message: EventAddressAssociation, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.addressAssociation !== undefined) {\n AddressAssociation.encode(message.addressAssociation, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAddressAssociation {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAddressAssociation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.addressAssociation = AddressAssociation.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAddressAssociation {\n return {\n addressAssociation: isSet(object.addressAssociation)\n ? AddressAssociation.fromJSON(object.addressAssociation)\n : undefined,\n };\n },\n\n toJSON(message: EventAddressAssociation): unknown {\n const obj: any = {};\n if (message.addressAssociation !== undefined) {\n obj.addressAssociation = AddressAssociation.toJSON(message.addressAssociation);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAddressAssociation {\n return EventAddressAssociation.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAddressAssociation {\n const message = createBaseEventAddressAssociation();\n message.addressAssociation = (object.addressAssociation !== undefined && object.addressAssociation !== null)\n ? AddressAssociation.fromPartial(object.addressAssociation)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventAddressActivity(): EventAddressActivity {\n return { addressActivity: undefined };\n}\n\nexport const EventAddressActivity: MessageFns = {\n encode(message: EventAddressActivity, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.addressActivity !== undefined) {\n AddressActivity.encode(message.addressActivity, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAddressActivity {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAddressActivity();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.addressActivity = AddressActivity.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAddressActivity {\n return {\n addressActivity: isSet(object.addressActivity) ? AddressActivity.fromJSON(object.addressActivity) : undefined,\n };\n },\n\n toJSON(message: EventAddressActivity): unknown {\n const obj: any = {};\n if (message.addressActivity !== undefined) {\n obj.addressActivity = AddressActivity.toJSON(message.addressActivity);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAddressActivity {\n return EventAddressActivity.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAddressActivity {\n const message = createBaseEventAddressActivity();\n message.addressActivity = (object.addressActivity !== undefined && object.addressActivity !== null)\n ? AddressActivity.fromPartial(object.addressActivity)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventGuildBankAddress(): EventGuildBankAddress {\n return { eventGuildBankAddressDetail: undefined };\n}\n\nexport const EventGuildBankAddress: MessageFns = {\n encode(message: EventGuildBankAddress, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventGuildBankAddressDetail !== undefined) {\n EventGuildBankAddressDetail.encode(message.eventGuildBankAddressDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventGuildBankAddress {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventGuildBankAddress();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventGuildBankAddressDetail = EventGuildBankAddressDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventGuildBankAddress {\n return {\n eventGuildBankAddressDetail: isSet(object.eventGuildBankAddressDetail)\n ? EventGuildBankAddressDetail.fromJSON(object.eventGuildBankAddressDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventGuildBankAddress): unknown {\n const obj: any = {};\n if (message.eventGuildBankAddressDetail !== undefined) {\n obj.eventGuildBankAddressDetail = EventGuildBankAddressDetail.toJSON(message.eventGuildBankAddressDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventGuildBankAddress {\n return EventGuildBankAddress.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventGuildBankAddress {\n const message = createBaseEventGuildBankAddress();\n message.eventGuildBankAddressDetail =\n (object.eventGuildBankAddressDetail !== undefined && object.eventGuildBankAddressDetail !== null)\n ? EventGuildBankAddressDetail.fromPartial(object.eventGuildBankAddressDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventGuildBankAddressDetail(): EventGuildBankAddressDetail {\n return { guildId: \"\", bankCollateralPool: \"\", bankTokenPool: \"\" };\n}\n\nexport const EventGuildBankAddressDetail: MessageFns = {\n encode(message: EventGuildBankAddressDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.guildId !== \"\") {\n writer.uint32(10).string(message.guildId);\n }\n if (message.bankCollateralPool !== \"\") {\n writer.uint32(18).string(message.bankCollateralPool);\n }\n if (message.bankTokenPool !== \"\") {\n writer.uint32(26).string(message.bankTokenPool);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventGuildBankAddressDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventGuildBankAddressDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.bankCollateralPool = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.bankTokenPool = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventGuildBankAddressDetail {\n return {\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n bankCollateralPool: isSet(object.bankCollateralPool) ? globalThis.String(object.bankCollateralPool) : \"\",\n bankTokenPool: isSet(object.bankTokenPool) ? globalThis.String(object.bankTokenPool) : \"\",\n };\n },\n\n toJSON(message: EventGuildBankAddressDetail): unknown {\n const obj: any = {};\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.bankCollateralPool !== \"\") {\n obj.bankCollateralPool = message.bankCollateralPool;\n }\n if (message.bankTokenPool !== \"\") {\n obj.bankTokenPool = message.bankTokenPool;\n }\n return obj;\n },\n\n create, I>>(base?: I): EventGuildBankAddressDetail {\n return EventGuildBankAddressDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventGuildBankAddressDetail {\n const message = createBaseEventGuildBankAddressDetail();\n message.guildId = object.guildId ?? \"\";\n message.bankCollateralPool = object.bankCollateralPool ?? \"\";\n message.bankTokenPool = object.bankTokenPool ?? \"\";\n return message;\n },\n};\n\nfunction createBaseEventGuildBankMint(): EventGuildBankMint {\n return { eventGuildBankMintDetail: undefined };\n}\n\nexport const EventGuildBankMint: MessageFns = {\n encode(message: EventGuildBankMint, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventGuildBankMintDetail !== undefined) {\n EventGuildBankMintDetail.encode(message.eventGuildBankMintDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventGuildBankMint {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventGuildBankMint();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventGuildBankMintDetail = EventGuildBankMintDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventGuildBankMint {\n return {\n eventGuildBankMintDetail: isSet(object.eventGuildBankMintDetail)\n ? EventGuildBankMintDetail.fromJSON(object.eventGuildBankMintDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventGuildBankMint): unknown {\n const obj: any = {};\n if (message.eventGuildBankMintDetail !== undefined) {\n obj.eventGuildBankMintDetail = EventGuildBankMintDetail.toJSON(message.eventGuildBankMintDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventGuildBankMint {\n return EventGuildBankMint.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventGuildBankMint {\n const message = createBaseEventGuildBankMint();\n message.eventGuildBankMintDetail =\n (object.eventGuildBankMintDetail !== undefined && object.eventGuildBankMintDetail !== null)\n ? EventGuildBankMintDetail.fromPartial(object.eventGuildBankMintDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventGuildBankMintDetail(): EventGuildBankMintDetail {\n return { guildId: \"\", amountAlpha: 0, amountToken: 0, playerId: \"\" };\n}\n\nexport const EventGuildBankMintDetail: MessageFns = {\n encode(message: EventGuildBankMintDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.guildId !== \"\") {\n writer.uint32(10).string(message.guildId);\n }\n if (message.amountAlpha !== 0) {\n writer.uint32(16).uint64(message.amountAlpha);\n }\n if (message.amountToken !== 0) {\n writer.uint32(24).uint64(message.amountToken);\n }\n if (message.playerId !== \"\") {\n writer.uint32(34).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventGuildBankMintDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventGuildBankMintDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.amountAlpha = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.amountToken = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventGuildBankMintDetail {\n return {\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n amountAlpha: isSet(object.amountAlpha) ? globalThis.Number(object.amountAlpha) : 0,\n amountToken: isSet(object.amountToken) ? globalThis.Number(object.amountToken) : 0,\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: EventGuildBankMintDetail): unknown {\n const obj: any = {};\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.amountAlpha !== 0) {\n obj.amountAlpha = Math.round(message.amountAlpha);\n }\n if (message.amountToken !== 0) {\n obj.amountToken = Math.round(message.amountToken);\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): EventGuildBankMintDetail {\n return EventGuildBankMintDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventGuildBankMintDetail {\n const message = createBaseEventGuildBankMintDetail();\n message.guildId = object.guildId ?? \"\";\n message.amountAlpha = object.amountAlpha ?? 0;\n message.amountToken = object.amountToken ?? 0;\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseEventGuildBankRedeem(): EventGuildBankRedeem {\n return { eventGuildBankRedeemDetail: undefined };\n}\n\nexport const EventGuildBankRedeem: MessageFns = {\n encode(message: EventGuildBankRedeem, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventGuildBankRedeemDetail !== undefined) {\n EventGuildBankRedeemDetail.encode(message.eventGuildBankRedeemDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventGuildBankRedeem {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventGuildBankRedeem();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventGuildBankRedeemDetail = EventGuildBankRedeemDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventGuildBankRedeem {\n return {\n eventGuildBankRedeemDetail: isSet(object.eventGuildBankRedeemDetail)\n ? EventGuildBankRedeemDetail.fromJSON(object.eventGuildBankRedeemDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventGuildBankRedeem): unknown {\n const obj: any = {};\n if (message.eventGuildBankRedeemDetail !== undefined) {\n obj.eventGuildBankRedeemDetail = EventGuildBankRedeemDetail.toJSON(message.eventGuildBankRedeemDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventGuildBankRedeem {\n return EventGuildBankRedeem.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventGuildBankRedeem {\n const message = createBaseEventGuildBankRedeem();\n message.eventGuildBankRedeemDetail =\n (object.eventGuildBankRedeemDetail !== undefined && object.eventGuildBankRedeemDetail !== null)\n ? EventGuildBankRedeemDetail.fromPartial(object.eventGuildBankRedeemDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventGuildBankRedeemDetail(): EventGuildBankRedeemDetail {\n return { guildId: \"\", amountAlpha: 0, amountToken: 0, playerId: \"\" };\n}\n\nexport const EventGuildBankRedeemDetail: MessageFns = {\n encode(message: EventGuildBankRedeemDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.guildId !== \"\") {\n writer.uint32(10).string(message.guildId);\n }\n if (message.amountAlpha !== 0) {\n writer.uint32(16).uint64(message.amountAlpha);\n }\n if (message.amountToken !== 0) {\n writer.uint32(24).uint64(message.amountToken);\n }\n if (message.playerId !== \"\") {\n writer.uint32(34).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventGuildBankRedeemDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventGuildBankRedeemDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.amountAlpha = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.amountToken = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventGuildBankRedeemDetail {\n return {\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n amountAlpha: isSet(object.amountAlpha) ? globalThis.Number(object.amountAlpha) : 0,\n amountToken: isSet(object.amountToken) ? globalThis.Number(object.amountToken) : 0,\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: EventGuildBankRedeemDetail): unknown {\n const obj: any = {};\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.amountAlpha !== 0) {\n obj.amountAlpha = Math.round(message.amountAlpha);\n }\n if (message.amountToken !== 0) {\n obj.amountToken = Math.round(message.amountToken);\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): EventGuildBankRedeemDetail {\n return EventGuildBankRedeemDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventGuildBankRedeemDetail {\n const message = createBaseEventGuildBankRedeemDetail();\n message.guildId = object.guildId ?? \"\";\n message.amountAlpha = object.amountAlpha ?? 0;\n message.amountToken = object.amountToken ?? 0;\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseEventGuildBankConfiscateAndBurn(): EventGuildBankConfiscateAndBurn {\n return { eventGuildBankConfiscateAndBurnDetail: undefined };\n}\n\nexport const EventGuildBankConfiscateAndBurn: MessageFns = {\n encode(message: EventGuildBankConfiscateAndBurn, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventGuildBankConfiscateAndBurnDetail !== undefined) {\n EventGuildBankConfiscateAndBurnDetail.encode(\n message.eventGuildBankConfiscateAndBurnDetail,\n writer.uint32(10).fork(),\n ).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventGuildBankConfiscateAndBurn {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventGuildBankConfiscateAndBurn();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventGuildBankConfiscateAndBurnDetail = EventGuildBankConfiscateAndBurnDetail.decode(\n reader,\n reader.uint32(),\n );\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventGuildBankConfiscateAndBurn {\n return {\n eventGuildBankConfiscateAndBurnDetail: isSet(object.eventGuildBankConfiscateAndBurnDetail)\n ? EventGuildBankConfiscateAndBurnDetail.fromJSON(object.eventGuildBankConfiscateAndBurnDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventGuildBankConfiscateAndBurn): unknown {\n const obj: any = {};\n if (message.eventGuildBankConfiscateAndBurnDetail !== undefined) {\n obj.eventGuildBankConfiscateAndBurnDetail = EventGuildBankConfiscateAndBurnDetail.toJSON(\n message.eventGuildBankConfiscateAndBurnDetail,\n );\n }\n return obj;\n },\n\n create, I>>(base?: I): EventGuildBankConfiscateAndBurn {\n return EventGuildBankConfiscateAndBurn.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): EventGuildBankConfiscateAndBurn {\n const message = createBaseEventGuildBankConfiscateAndBurn();\n message.eventGuildBankConfiscateAndBurnDetail =\n (object.eventGuildBankConfiscateAndBurnDetail !== undefined &&\n object.eventGuildBankConfiscateAndBurnDetail !== null)\n ? EventGuildBankConfiscateAndBurnDetail.fromPartial(object.eventGuildBankConfiscateAndBurnDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventGuildBankConfiscateAndBurnDetail(): EventGuildBankConfiscateAndBurnDetail {\n return { guildId: \"\", amountAlpha: 0, amountToken: 0, address: \"\" };\n}\n\nexport const EventGuildBankConfiscateAndBurnDetail: MessageFns = {\n encode(message: EventGuildBankConfiscateAndBurnDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.guildId !== \"\") {\n writer.uint32(10).string(message.guildId);\n }\n if (message.amountAlpha !== 0) {\n writer.uint32(16).uint64(message.amountAlpha);\n }\n if (message.amountToken !== 0) {\n writer.uint32(24).uint64(message.amountToken);\n }\n if (message.address !== \"\") {\n writer.uint32(34).string(message.address);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventGuildBankConfiscateAndBurnDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventGuildBankConfiscateAndBurnDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.amountAlpha = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.amountToken = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventGuildBankConfiscateAndBurnDetail {\n return {\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n amountAlpha: isSet(object.amountAlpha) ? globalThis.Number(object.amountAlpha) : 0,\n amountToken: isSet(object.amountToken) ? globalThis.Number(object.amountToken) : 0,\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n };\n },\n\n toJSON(message: EventGuildBankConfiscateAndBurnDetail): unknown {\n const obj: any = {};\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.amountAlpha !== 0) {\n obj.amountAlpha = Math.round(message.amountAlpha);\n }\n if (message.amountToken !== 0) {\n obj.amountToken = Math.round(message.amountToken);\n }\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): EventGuildBankConfiscateAndBurnDetail {\n return EventGuildBankConfiscateAndBurnDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): EventGuildBankConfiscateAndBurnDetail {\n const message = createBaseEventGuildBankConfiscateAndBurnDetail();\n message.guildId = object.guildId ?? \"\";\n message.amountAlpha = object.amountAlpha ?? 0;\n message.amountToken = object.amountToken ?? 0;\n message.address = object.address ?? \"\";\n return message;\n },\n};\n\nfunction createBaseEventGuildMembershipApplication(): EventGuildMembershipApplication {\n return { guildMembershipApplication: undefined };\n}\n\nexport const EventGuildMembershipApplication: MessageFns = {\n encode(message: EventGuildMembershipApplication, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.guildMembershipApplication !== undefined) {\n GuildMembershipApplication.encode(message.guildMembershipApplication, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventGuildMembershipApplication {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventGuildMembershipApplication();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.guildMembershipApplication = GuildMembershipApplication.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventGuildMembershipApplication {\n return {\n guildMembershipApplication: isSet(object.guildMembershipApplication)\n ? GuildMembershipApplication.fromJSON(object.guildMembershipApplication)\n : undefined,\n };\n },\n\n toJSON(message: EventGuildMembershipApplication): unknown {\n const obj: any = {};\n if (message.guildMembershipApplication !== undefined) {\n obj.guildMembershipApplication = GuildMembershipApplication.toJSON(message.guildMembershipApplication);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventGuildMembershipApplication {\n return EventGuildMembershipApplication.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): EventGuildMembershipApplication {\n const message = createBaseEventGuildMembershipApplication();\n message.guildMembershipApplication =\n (object.guildMembershipApplication !== undefined && object.guildMembershipApplication !== null)\n ? GuildMembershipApplication.fromPartial(object.guildMembershipApplication)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventOreMine(): EventOreMine {\n return { eventOreMineDetail: undefined };\n}\n\nexport const EventOreMine: MessageFns = {\n encode(message: EventOreMine, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventOreMineDetail !== undefined) {\n EventOreMineDetail.encode(message.eventOreMineDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventOreMine {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventOreMine();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventOreMineDetail = EventOreMineDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventOreMine {\n return {\n eventOreMineDetail: isSet(object.eventOreMineDetail)\n ? EventOreMineDetail.fromJSON(object.eventOreMineDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventOreMine): unknown {\n const obj: any = {};\n if (message.eventOreMineDetail !== undefined) {\n obj.eventOreMineDetail = EventOreMineDetail.toJSON(message.eventOreMineDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventOreMine {\n return EventOreMine.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventOreMine {\n const message = createBaseEventOreMine();\n message.eventOreMineDetail = (object.eventOreMineDetail !== undefined && object.eventOreMineDetail !== null)\n ? EventOreMineDetail.fromPartial(object.eventOreMineDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventOreMineDetail(): EventOreMineDetail {\n return { playerId: \"\", primaryAddress: \"\", amount: 0 };\n}\n\nexport const EventOreMineDetail: MessageFns = {\n encode(message: EventOreMineDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.playerId !== \"\") {\n writer.uint32(10).string(message.playerId);\n }\n if (message.primaryAddress !== \"\") {\n writer.uint32(18).string(message.primaryAddress);\n }\n if (message.amount !== 0) {\n writer.uint32(24).uint64(message.amount);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventOreMineDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventOreMineDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.primaryAddress = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.amount = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventOreMineDetail {\n return {\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n primaryAddress: isSet(object.primaryAddress) ? globalThis.String(object.primaryAddress) : \"\",\n amount: isSet(object.amount) ? globalThis.Number(object.amount) : 0,\n };\n },\n\n toJSON(message: EventOreMineDetail): unknown {\n const obj: any = {};\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.primaryAddress !== \"\") {\n obj.primaryAddress = message.primaryAddress;\n }\n if (message.amount !== 0) {\n obj.amount = Math.round(message.amount);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventOreMineDetail {\n return EventOreMineDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventOreMineDetail {\n const message = createBaseEventOreMineDetail();\n message.playerId = object.playerId ?? \"\";\n message.primaryAddress = object.primaryAddress ?? \"\";\n message.amount = object.amount ?? 0;\n return message;\n },\n};\n\nfunction createBaseEventAlphaRefine(): EventAlphaRefine {\n return { eventAlphaRefineDetail: undefined };\n}\n\nexport const EventAlphaRefine: MessageFns = {\n encode(message: EventAlphaRefine, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventAlphaRefineDetail !== undefined) {\n EventAlphaRefineDetail.encode(message.eventAlphaRefineDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAlphaRefine {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAlphaRefine();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventAlphaRefineDetail = EventAlphaRefineDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAlphaRefine {\n return {\n eventAlphaRefineDetail: isSet(object.eventAlphaRefineDetail)\n ? EventAlphaRefineDetail.fromJSON(object.eventAlphaRefineDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventAlphaRefine): unknown {\n const obj: any = {};\n if (message.eventAlphaRefineDetail !== undefined) {\n obj.eventAlphaRefineDetail = EventAlphaRefineDetail.toJSON(message.eventAlphaRefineDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAlphaRefine {\n return EventAlphaRefine.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAlphaRefine {\n const message = createBaseEventAlphaRefine();\n message.eventAlphaRefineDetail =\n (object.eventAlphaRefineDetail !== undefined && object.eventAlphaRefineDetail !== null)\n ? EventAlphaRefineDetail.fromPartial(object.eventAlphaRefineDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventAlphaRefineDetail(): EventAlphaRefineDetail {\n return { playerId: \"\", primaryAddress: \"\", amount: 0 };\n}\n\nexport const EventAlphaRefineDetail: MessageFns = {\n encode(message: EventAlphaRefineDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.playerId !== \"\") {\n writer.uint32(10).string(message.playerId);\n }\n if (message.primaryAddress !== \"\") {\n writer.uint32(18).string(message.primaryAddress);\n }\n if (message.amount !== 0) {\n writer.uint32(24).uint64(message.amount);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAlphaRefineDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAlphaRefineDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.primaryAddress = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.amount = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAlphaRefineDetail {\n return {\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n primaryAddress: isSet(object.primaryAddress) ? globalThis.String(object.primaryAddress) : \"\",\n amount: isSet(object.amount) ? globalThis.Number(object.amount) : 0,\n };\n },\n\n toJSON(message: EventAlphaRefineDetail): unknown {\n const obj: any = {};\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.primaryAddress !== \"\") {\n obj.primaryAddress = message.primaryAddress;\n }\n if (message.amount !== 0) {\n obj.amount = Math.round(message.amount);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAlphaRefineDetail {\n return EventAlphaRefineDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAlphaRefineDetail {\n const message = createBaseEventAlphaRefineDetail();\n message.playerId = object.playerId ?? \"\";\n message.primaryAddress = object.primaryAddress ?? \"\";\n message.amount = object.amount ?? 0;\n return message;\n },\n};\n\nfunction createBaseEventAlphaInfuse(): EventAlphaInfuse {\n return { eventAlphaInfuseDetail: undefined };\n}\n\nexport const EventAlphaInfuse: MessageFns = {\n encode(message: EventAlphaInfuse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventAlphaInfuseDetail !== undefined) {\n EventAlphaInfuseDetail.encode(message.eventAlphaInfuseDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAlphaInfuse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAlphaInfuse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventAlphaInfuseDetail = EventAlphaInfuseDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAlphaInfuse {\n return {\n eventAlphaInfuseDetail: isSet(object.eventAlphaInfuseDetail)\n ? EventAlphaInfuseDetail.fromJSON(object.eventAlphaInfuseDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventAlphaInfuse): unknown {\n const obj: any = {};\n if (message.eventAlphaInfuseDetail !== undefined) {\n obj.eventAlphaInfuseDetail = EventAlphaInfuseDetail.toJSON(message.eventAlphaInfuseDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAlphaInfuse {\n return EventAlphaInfuse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAlphaInfuse {\n const message = createBaseEventAlphaInfuse();\n message.eventAlphaInfuseDetail =\n (object.eventAlphaInfuseDetail !== undefined && object.eventAlphaInfuseDetail !== null)\n ? EventAlphaInfuseDetail.fromPartial(object.eventAlphaInfuseDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventAlphaInfuseDetail(): EventAlphaInfuseDetail {\n return { playerId: \"\", primaryAddress: \"\", amount: 0 };\n}\n\nexport const EventAlphaInfuseDetail: MessageFns = {\n encode(message: EventAlphaInfuseDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.playerId !== \"\") {\n writer.uint32(10).string(message.playerId);\n }\n if (message.primaryAddress !== \"\") {\n writer.uint32(18).string(message.primaryAddress);\n }\n if (message.amount !== 0) {\n writer.uint32(24).uint64(message.amount);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAlphaInfuseDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAlphaInfuseDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.primaryAddress = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.amount = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAlphaInfuseDetail {\n return {\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n primaryAddress: isSet(object.primaryAddress) ? globalThis.String(object.primaryAddress) : \"\",\n amount: isSet(object.amount) ? globalThis.Number(object.amount) : 0,\n };\n },\n\n toJSON(message: EventAlphaInfuseDetail): unknown {\n const obj: any = {};\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.primaryAddress !== \"\") {\n obj.primaryAddress = message.primaryAddress;\n }\n if (message.amount !== 0) {\n obj.amount = Math.round(message.amount);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAlphaInfuseDetail {\n return EventAlphaInfuseDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAlphaInfuseDetail {\n const message = createBaseEventAlphaInfuseDetail();\n message.playerId = object.playerId ?? \"\";\n message.primaryAddress = object.primaryAddress ?? \"\";\n message.amount = object.amount ?? 0;\n return message;\n },\n};\n\nfunction createBaseEventAlphaDefuse(): EventAlphaDefuse {\n return { eventAlphaDefuseDetail: undefined };\n}\n\nexport const EventAlphaDefuse: MessageFns = {\n encode(message: EventAlphaDefuse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventAlphaDefuseDetail !== undefined) {\n EventAlphaDefuseDetail.encode(message.eventAlphaDefuseDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAlphaDefuse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAlphaDefuse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventAlphaDefuseDetail = EventAlphaDefuseDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAlphaDefuse {\n return {\n eventAlphaDefuseDetail: isSet(object.eventAlphaDefuseDetail)\n ? EventAlphaDefuseDetail.fromJSON(object.eventAlphaDefuseDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventAlphaDefuse): unknown {\n const obj: any = {};\n if (message.eventAlphaDefuseDetail !== undefined) {\n obj.eventAlphaDefuseDetail = EventAlphaDefuseDetail.toJSON(message.eventAlphaDefuseDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAlphaDefuse {\n return EventAlphaDefuse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAlphaDefuse {\n const message = createBaseEventAlphaDefuse();\n message.eventAlphaDefuseDetail =\n (object.eventAlphaDefuseDetail !== undefined && object.eventAlphaDefuseDetail !== null)\n ? EventAlphaDefuseDetail.fromPartial(object.eventAlphaDefuseDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventAlphaDefuseDetail(): EventAlphaDefuseDetail {\n return { primaryAddress: \"\", amount: 0 };\n}\n\nexport const EventAlphaDefuseDetail: MessageFns = {\n encode(message: EventAlphaDefuseDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.primaryAddress !== \"\") {\n writer.uint32(10).string(message.primaryAddress);\n }\n if (message.amount !== 0) {\n writer.uint32(16).uint64(message.amount);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAlphaDefuseDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAlphaDefuseDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.primaryAddress = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.amount = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAlphaDefuseDetail {\n return {\n primaryAddress: isSet(object.primaryAddress) ? globalThis.String(object.primaryAddress) : \"\",\n amount: isSet(object.amount) ? globalThis.Number(object.amount) : 0,\n };\n },\n\n toJSON(message: EventAlphaDefuseDetail): unknown {\n const obj: any = {};\n if (message.primaryAddress !== \"\") {\n obj.primaryAddress = message.primaryAddress;\n }\n if (message.amount !== 0) {\n obj.amount = Math.round(message.amount);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAlphaDefuseDetail {\n return EventAlphaDefuseDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAlphaDefuseDetail {\n const message = createBaseEventAlphaDefuseDetail();\n message.primaryAddress = object.primaryAddress ?? \"\";\n message.amount = object.amount ?? 0;\n return message;\n },\n};\n\nfunction createBaseEventOreTheft(): EventOreTheft {\n return { eventOreTheftDetail: undefined };\n}\n\nexport const EventOreTheft: MessageFns = {\n encode(message: EventOreTheft, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventOreTheftDetail !== undefined) {\n EventOreTheftDetail.encode(message.eventOreTheftDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventOreTheft {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventOreTheft();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventOreTheftDetail = EventOreTheftDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventOreTheft {\n return {\n eventOreTheftDetail: isSet(object.eventOreTheftDetail)\n ? EventOreTheftDetail.fromJSON(object.eventOreTheftDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventOreTheft): unknown {\n const obj: any = {};\n if (message.eventOreTheftDetail !== undefined) {\n obj.eventOreTheftDetail = EventOreTheftDetail.toJSON(message.eventOreTheftDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventOreTheft {\n return EventOreTheft.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventOreTheft {\n const message = createBaseEventOreTheft();\n message.eventOreTheftDetail = (object.eventOreTheftDetail !== undefined && object.eventOreTheftDetail !== null)\n ? EventOreTheftDetail.fromPartial(object.eventOreTheftDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventOreTheftDetail(): EventOreTheftDetail {\n return { victimPrimaryAddress: \"\", victimPlayerId: \"\", thiefPrimaryAddress: \"\", thiefPlayerId: \"\", amount: 0 };\n}\n\nexport const EventOreTheftDetail: MessageFns = {\n encode(message: EventOreTheftDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.victimPrimaryAddress !== \"\") {\n writer.uint32(10).string(message.victimPrimaryAddress);\n }\n if (message.victimPlayerId !== \"\") {\n writer.uint32(18).string(message.victimPlayerId);\n }\n if (message.thiefPrimaryAddress !== \"\") {\n writer.uint32(26).string(message.thiefPrimaryAddress);\n }\n if (message.thiefPlayerId !== \"\") {\n writer.uint32(34).string(message.thiefPlayerId);\n }\n if (message.amount !== 0) {\n writer.uint32(40).uint64(message.amount);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventOreTheftDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventOreTheftDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.victimPrimaryAddress = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.victimPlayerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.thiefPrimaryAddress = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.thiefPlayerId = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.amount = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventOreTheftDetail {\n return {\n victimPrimaryAddress: isSet(object.victimPrimaryAddress) ? globalThis.String(object.victimPrimaryAddress) : \"\",\n victimPlayerId: isSet(object.victimPlayerId) ? globalThis.String(object.victimPlayerId) : \"\",\n thiefPrimaryAddress: isSet(object.thiefPrimaryAddress) ? globalThis.String(object.thiefPrimaryAddress) : \"\",\n thiefPlayerId: isSet(object.thiefPlayerId) ? globalThis.String(object.thiefPlayerId) : \"\",\n amount: isSet(object.amount) ? globalThis.Number(object.amount) : 0,\n };\n },\n\n toJSON(message: EventOreTheftDetail): unknown {\n const obj: any = {};\n if (message.victimPrimaryAddress !== \"\") {\n obj.victimPrimaryAddress = message.victimPrimaryAddress;\n }\n if (message.victimPlayerId !== \"\") {\n obj.victimPlayerId = message.victimPlayerId;\n }\n if (message.thiefPrimaryAddress !== \"\") {\n obj.thiefPrimaryAddress = message.thiefPrimaryAddress;\n }\n if (message.thiefPlayerId !== \"\") {\n obj.thiefPlayerId = message.thiefPlayerId;\n }\n if (message.amount !== 0) {\n obj.amount = Math.round(message.amount);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventOreTheftDetail {\n return EventOreTheftDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventOreTheftDetail {\n const message = createBaseEventOreTheftDetail();\n message.victimPrimaryAddress = object.victimPrimaryAddress ?? \"\";\n message.victimPlayerId = object.victimPlayerId ?? \"\";\n message.thiefPrimaryAddress = object.thiefPrimaryAddress ?? \"\";\n message.thiefPlayerId = object.thiefPlayerId ?? \"\";\n message.amount = object.amount ?? 0;\n return message;\n },\n};\n\nfunction createBaseEventOreMigrate(): EventOreMigrate {\n return { eventOreMigrateDetail: undefined };\n}\n\nexport const EventOreMigrate: MessageFns = {\n encode(message: EventOreMigrate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventOreMigrateDetail !== undefined) {\n EventOreMigrateDetail.encode(message.eventOreMigrateDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventOreMigrate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventOreMigrate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventOreMigrateDetail = EventOreMigrateDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventOreMigrate {\n return {\n eventOreMigrateDetail: isSet(object.eventOreMigrateDetail)\n ? EventOreMigrateDetail.fromJSON(object.eventOreMigrateDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventOreMigrate): unknown {\n const obj: any = {};\n if (message.eventOreMigrateDetail !== undefined) {\n obj.eventOreMigrateDetail = EventOreMigrateDetail.toJSON(message.eventOreMigrateDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventOreMigrate {\n return EventOreMigrate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventOreMigrate {\n const message = createBaseEventOreMigrate();\n message.eventOreMigrateDetail =\n (object.eventOreMigrateDetail !== undefined && object.eventOreMigrateDetail !== null)\n ? EventOreMigrateDetail.fromPartial(object.eventOreMigrateDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventOreMigrateDetail(): EventOreMigrateDetail {\n return { playerId: \"\", primaryAddress: \"\", oldPrimaryAddress: \"\", amount: 0 };\n}\n\nexport const EventOreMigrateDetail: MessageFns = {\n encode(message: EventOreMigrateDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.playerId !== \"\") {\n writer.uint32(10).string(message.playerId);\n }\n if (message.primaryAddress !== \"\") {\n writer.uint32(18).string(message.primaryAddress);\n }\n if (message.oldPrimaryAddress !== \"\") {\n writer.uint32(26).string(message.oldPrimaryAddress);\n }\n if (message.amount !== 0) {\n writer.uint32(32).uint64(message.amount);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventOreMigrateDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventOreMigrateDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.primaryAddress = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.oldPrimaryAddress = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.amount = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventOreMigrateDetail {\n return {\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n primaryAddress: isSet(object.primaryAddress) ? globalThis.String(object.primaryAddress) : \"\",\n oldPrimaryAddress: isSet(object.oldPrimaryAddress) ? globalThis.String(object.oldPrimaryAddress) : \"\",\n amount: isSet(object.amount) ? globalThis.Number(object.amount) : 0,\n };\n },\n\n toJSON(message: EventOreMigrateDetail): unknown {\n const obj: any = {};\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.primaryAddress !== \"\") {\n obj.primaryAddress = message.primaryAddress;\n }\n if (message.oldPrimaryAddress !== \"\") {\n obj.oldPrimaryAddress = message.oldPrimaryAddress;\n }\n if (message.amount !== 0) {\n obj.amount = Math.round(message.amount);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventOreMigrateDetail {\n return EventOreMigrateDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventOreMigrateDetail {\n const message = createBaseEventOreMigrateDetail();\n message.playerId = object.playerId ?? \"\";\n message.primaryAddress = object.primaryAddress ?? \"\";\n message.oldPrimaryAddress = object.oldPrimaryAddress ?? \"\";\n message.amount = object.amount ?? 0;\n return message;\n },\n};\n\nfunction createBaseEventAttack(): EventAttack {\n return { eventAttackDetail: undefined };\n}\n\nexport const EventAttack: MessageFns = {\n encode(message: EventAttack, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventAttackDetail !== undefined) {\n EventAttackDetail.encode(message.eventAttackDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAttack {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAttack();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventAttackDetail = EventAttackDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAttack {\n return {\n eventAttackDetail: isSet(object.eventAttackDetail)\n ? EventAttackDetail.fromJSON(object.eventAttackDetail)\n : undefined,\n };\n },\n\n toJSON(message: EventAttack): unknown {\n const obj: any = {};\n if (message.eventAttackDetail !== undefined) {\n obj.eventAttackDetail = EventAttackDetail.toJSON(message.eventAttackDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAttack {\n return EventAttack.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAttack {\n const message = createBaseEventAttack();\n message.eventAttackDetail = (object.eventAttackDetail !== undefined && object.eventAttackDetail !== null)\n ? EventAttackDetail.fromPartial(object.eventAttackDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventAttackDetail(): EventAttackDetail {\n return {\n attackerStructId: \"\",\n attackerStructType: 0,\n attackerStructLocationType: 0,\n attackerStructLocationId: \"\",\n attackerStructOperatingAmbit: 0,\n attackerStructSlot: 0,\n weaponSystem: 0,\n weaponControl: 0,\n activeWeaponry: 0,\n eventAttackShotDetail: [],\n recoilDamageToAttacker: false,\n recoilDamage: 0,\n recoilDamageDestroyedAttacker: false,\n planetaryDefenseCannonDamageToAttacker: false,\n planetaryDefenseCannonDamage: 0,\n planetaryDefenseCannonDamageDestroyedAttacker: false,\n attackerPlayerId: \"\",\n targetPlayerId: \"\",\n };\n}\n\nexport const EventAttackDetail: MessageFns = {\n encode(message: EventAttackDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.attackerStructId !== \"\") {\n writer.uint32(10).string(message.attackerStructId);\n }\n if (message.attackerStructType !== 0) {\n writer.uint32(16).uint64(message.attackerStructType);\n }\n if (message.attackerStructLocationType !== 0) {\n writer.uint32(24).int32(message.attackerStructLocationType);\n }\n if (message.attackerStructLocationId !== \"\") {\n writer.uint32(34).string(message.attackerStructLocationId);\n }\n if (message.attackerStructOperatingAmbit !== 0) {\n writer.uint32(40).int32(message.attackerStructOperatingAmbit);\n }\n if (message.attackerStructSlot !== 0) {\n writer.uint32(48).uint64(message.attackerStructSlot);\n }\n if (message.weaponSystem !== 0) {\n writer.uint32(56).int32(message.weaponSystem);\n }\n if (message.weaponControl !== 0) {\n writer.uint32(64).int32(message.weaponControl);\n }\n if (message.activeWeaponry !== 0) {\n writer.uint32(72).int32(message.activeWeaponry);\n }\n for (const v of message.eventAttackShotDetail) {\n EventAttackShotDetail.encode(v!, writer.uint32(82).fork()).join();\n }\n if (message.recoilDamageToAttacker !== false) {\n writer.uint32(88).bool(message.recoilDamageToAttacker);\n }\n if (message.recoilDamage !== 0) {\n writer.uint32(96).uint64(message.recoilDamage);\n }\n if (message.recoilDamageDestroyedAttacker !== false) {\n writer.uint32(104).bool(message.recoilDamageDestroyedAttacker);\n }\n if (message.planetaryDefenseCannonDamageToAttacker !== false) {\n writer.uint32(112).bool(message.planetaryDefenseCannonDamageToAttacker);\n }\n if (message.planetaryDefenseCannonDamage !== 0) {\n writer.uint32(120).uint64(message.planetaryDefenseCannonDamage);\n }\n if (message.planetaryDefenseCannonDamageDestroyedAttacker !== false) {\n writer.uint32(128).bool(message.planetaryDefenseCannonDamageDestroyedAttacker);\n }\n if (message.attackerPlayerId !== \"\") {\n writer.uint32(138).string(message.attackerPlayerId);\n }\n if (message.targetPlayerId !== \"\") {\n writer.uint32(146).string(message.targetPlayerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAttackDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAttackDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.attackerStructId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.attackerStructType = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.attackerStructLocationType = reader.int32() as any;\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.attackerStructLocationId = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.attackerStructOperatingAmbit = reader.int32() as any;\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.attackerStructSlot = longToNumber(reader.uint64());\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.weaponSystem = reader.int32() as any;\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.weaponControl = reader.int32() as any;\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.activeWeaponry = reader.int32() as any;\n continue;\n }\n case 10: {\n if (tag !== 82) {\n break;\n }\n\n message.eventAttackShotDetail.push(EventAttackShotDetail.decode(reader, reader.uint32()));\n continue;\n }\n case 11: {\n if (tag !== 88) {\n break;\n }\n\n message.recoilDamageToAttacker = reader.bool();\n continue;\n }\n case 12: {\n if (tag !== 96) {\n break;\n }\n\n message.recoilDamage = longToNumber(reader.uint64());\n continue;\n }\n case 13: {\n if (tag !== 104) {\n break;\n }\n\n message.recoilDamageDestroyedAttacker = reader.bool();\n continue;\n }\n case 14: {\n if (tag !== 112) {\n break;\n }\n\n message.planetaryDefenseCannonDamageToAttacker = reader.bool();\n continue;\n }\n case 15: {\n if (tag !== 120) {\n break;\n }\n\n message.planetaryDefenseCannonDamage = longToNumber(reader.uint64());\n continue;\n }\n case 16: {\n if (tag !== 128) {\n break;\n }\n\n message.planetaryDefenseCannonDamageDestroyedAttacker = reader.bool();\n continue;\n }\n case 17: {\n if (tag !== 138) {\n break;\n }\n\n message.attackerPlayerId = reader.string();\n continue;\n }\n case 18: {\n if (tag !== 146) {\n break;\n }\n\n message.targetPlayerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAttackDetail {\n return {\n attackerStructId: isSet(object.attackerStructId) ? globalThis.String(object.attackerStructId) : \"\",\n attackerStructType: isSet(object.attackerStructType) ? globalThis.Number(object.attackerStructType) : 0,\n attackerStructLocationType: isSet(object.attackerStructLocationType)\n ? objectTypeFromJSON(object.attackerStructLocationType)\n : 0,\n attackerStructLocationId: isSet(object.attackerStructLocationId)\n ? globalThis.String(object.attackerStructLocationId)\n : \"\",\n attackerStructOperatingAmbit: isSet(object.attackerStructOperatingAmbit)\n ? ambitFromJSON(object.attackerStructOperatingAmbit)\n : 0,\n attackerStructSlot: isSet(object.attackerStructSlot) ? globalThis.Number(object.attackerStructSlot) : 0,\n weaponSystem: isSet(object.weaponSystem) ? techWeaponSystemFromJSON(object.weaponSystem) : 0,\n weaponControl: isSet(object.weaponControl) ? techWeaponControlFromJSON(object.weaponControl) : 0,\n activeWeaponry: isSet(object.activeWeaponry) ? techActiveWeaponryFromJSON(object.activeWeaponry) : 0,\n eventAttackShotDetail: globalThis.Array.isArray(object?.eventAttackShotDetail)\n ? object.eventAttackShotDetail.map((e: any) => EventAttackShotDetail.fromJSON(e))\n : [],\n recoilDamageToAttacker: isSet(object.recoilDamageToAttacker)\n ? globalThis.Boolean(object.recoilDamageToAttacker)\n : false,\n recoilDamage: isSet(object.recoilDamage) ? globalThis.Number(object.recoilDamage) : 0,\n recoilDamageDestroyedAttacker: isSet(object.recoilDamageDestroyedAttacker)\n ? globalThis.Boolean(object.recoilDamageDestroyedAttacker)\n : false,\n planetaryDefenseCannonDamageToAttacker: isSet(object.planetaryDefenseCannonDamageToAttacker)\n ? globalThis.Boolean(object.planetaryDefenseCannonDamageToAttacker)\n : false,\n planetaryDefenseCannonDamage: isSet(object.planetaryDefenseCannonDamage)\n ? globalThis.Number(object.planetaryDefenseCannonDamage)\n : 0,\n planetaryDefenseCannonDamageDestroyedAttacker: isSet(object.planetaryDefenseCannonDamageDestroyedAttacker)\n ? globalThis.Boolean(object.planetaryDefenseCannonDamageDestroyedAttacker)\n : false,\n attackerPlayerId: isSet(object.attackerPlayerId) ? globalThis.String(object.attackerPlayerId) : \"\",\n targetPlayerId: isSet(object.targetPlayerId) ? globalThis.String(object.targetPlayerId) : \"\",\n };\n },\n\n toJSON(message: EventAttackDetail): unknown {\n const obj: any = {};\n if (message.attackerStructId !== \"\") {\n obj.attackerStructId = message.attackerStructId;\n }\n if (message.attackerStructType !== 0) {\n obj.attackerStructType = Math.round(message.attackerStructType);\n }\n if (message.attackerStructLocationType !== 0) {\n obj.attackerStructLocationType = objectTypeToJSON(message.attackerStructLocationType);\n }\n if (message.attackerStructLocationId !== \"\") {\n obj.attackerStructLocationId = message.attackerStructLocationId;\n }\n if (message.attackerStructOperatingAmbit !== 0) {\n obj.attackerStructOperatingAmbit = ambitToJSON(message.attackerStructOperatingAmbit);\n }\n if (message.attackerStructSlot !== 0) {\n obj.attackerStructSlot = Math.round(message.attackerStructSlot);\n }\n if (message.weaponSystem !== 0) {\n obj.weaponSystem = techWeaponSystemToJSON(message.weaponSystem);\n }\n if (message.weaponControl !== 0) {\n obj.weaponControl = techWeaponControlToJSON(message.weaponControl);\n }\n if (message.activeWeaponry !== 0) {\n obj.activeWeaponry = techActiveWeaponryToJSON(message.activeWeaponry);\n }\n if (message.eventAttackShotDetail?.length) {\n obj.eventAttackShotDetail = message.eventAttackShotDetail.map((e) => EventAttackShotDetail.toJSON(e));\n }\n if (message.recoilDamageToAttacker !== false) {\n obj.recoilDamageToAttacker = message.recoilDamageToAttacker;\n }\n if (message.recoilDamage !== 0) {\n obj.recoilDamage = Math.round(message.recoilDamage);\n }\n if (message.recoilDamageDestroyedAttacker !== false) {\n obj.recoilDamageDestroyedAttacker = message.recoilDamageDestroyedAttacker;\n }\n if (message.planetaryDefenseCannonDamageToAttacker !== false) {\n obj.planetaryDefenseCannonDamageToAttacker = message.planetaryDefenseCannonDamageToAttacker;\n }\n if (message.planetaryDefenseCannonDamage !== 0) {\n obj.planetaryDefenseCannonDamage = Math.round(message.planetaryDefenseCannonDamage);\n }\n if (message.planetaryDefenseCannonDamageDestroyedAttacker !== false) {\n obj.planetaryDefenseCannonDamageDestroyedAttacker = message.planetaryDefenseCannonDamageDestroyedAttacker;\n }\n if (message.attackerPlayerId !== \"\") {\n obj.attackerPlayerId = message.attackerPlayerId;\n }\n if (message.targetPlayerId !== \"\") {\n obj.targetPlayerId = message.targetPlayerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAttackDetail {\n return EventAttackDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAttackDetail {\n const message = createBaseEventAttackDetail();\n message.attackerStructId = object.attackerStructId ?? \"\";\n message.attackerStructType = object.attackerStructType ?? 0;\n message.attackerStructLocationType = object.attackerStructLocationType ?? 0;\n message.attackerStructLocationId = object.attackerStructLocationId ?? \"\";\n message.attackerStructOperatingAmbit = object.attackerStructOperatingAmbit ?? 0;\n message.attackerStructSlot = object.attackerStructSlot ?? 0;\n message.weaponSystem = object.weaponSystem ?? 0;\n message.weaponControl = object.weaponControl ?? 0;\n message.activeWeaponry = object.activeWeaponry ?? 0;\n message.eventAttackShotDetail = object.eventAttackShotDetail?.map((e) => EventAttackShotDetail.fromPartial(e)) ||\n [];\n message.recoilDamageToAttacker = object.recoilDamageToAttacker ?? false;\n message.recoilDamage = object.recoilDamage ?? 0;\n message.recoilDamageDestroyedAttacker = object.recoilDamageDestroyedAttacker ?? false;\n message.planetaryDefenseCannonDamageToAttacker = object.planetaryDefenseCannonDamageToAttacker ?? false;\n message.planetaryDefenseCannonDamage = object.planetaryDefenseCannonDamage ?? 0;\n message.planetaryDefenseCannonDamageDestroyedAttacker = object.planetaryDefenseCannonDamageDestroyedAttacker ??\n false;\n message.attackerPlayerId = object.attackerPlayerId ?? \"\";\n message.targetPlayerId = object.targetPlayerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseEventAttackShotDetail(): EventAttackShotDetail {\n return {\n targetStructId: \"\",\n targetStructType: 0,\n targetStructLocationType: 0,\n targetStructLocationId: \"\",\n targetStructOperatingAmbit: 0,\n targetStructSlot: 0,\n evaded: false,\n evadedCause: 0,\n evadedByPlanetaryDefenses: false,\n evadedByPlanetaryDefensesCause: 0,\n blocked: false,\n blockedByStructId: \"\",\n blockedByStructType: 0,\n blockedByStructLocationType: 0,\n blockedByStructLocationId: \"\",\n blockedByStructOperatingAmbit: 0,\n blockedByStructSlot: 0,\n blockerDestroyed: false,\n eventAttackDefenderCounterDetail: [],\n damageDealt: 0,\n damageReduction: 0,\n damageReductionCause: 0,\n damage: 0,\n targetCountered: false,\n targetCounteredDamage: 0,\n targetCounterDestroyedAttacker: false,\n targetCounterCause: 0,\n targetDestroyed: false,\n postDestructionDamageToAttacker: false,\n postDestructionDamage: 0,\n postDestructionDamageDestroyedAttacker: false,\n postDestructionDamageCause: 0,\n };\n}\n\nexport const EventAttackShotDetail: MessageFns = {\n encode(message: EventAttackShotDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.targetStructId !== \"\") {\n writer.uint32(10).string(message.targetStructId);\n }\n if (message.targetStructType !== 0) {\n writer.uint32(16).uint64(message.targetStructType);\n }\n if (message.targetStructLocationType !== 0) {\n writer.uint32(24).int32(message.targetStructLocationType);\n }\n if (message.targetStructLocationId !== \"\") {\n writer.uint32(34).string(message.targetStructLocationId);\n }\n if (message.targetStructOperatingAmbit !== 0) {\n writer.uint32(40).int32(message.targetStructOperatingAmbit);\n }\n if (message.targetStructSlot !== 0) {\n writer.uint32(48).uint64(message.targetStructSlot);\n }\n if (message.evaded !== false) {\n writer.uint32(56).bool(message.evaded);\n }\n if (message.evadedCause !== 0) {\n writer.uint32(64).int32(message.evadedCause);\n }\n if (message.evadedByPlanetaryDefenses !== false) {\n writer.uint32(72).bool(message.evadedByPlanetaryDefenses);\n }\n if (message.evadedByPlanetaryDefensesCause !== 0) {\n writer.uint32(80).int32(message.evadedByPlanetaryDefensesCause);\n }\n if (message.blocked !== false) {\n writer.uint32(88).bool(message.blocked);\n }\n if (message.blockedByStructId !== \"\") {\n writer.uint32(98).string(message.blockedByStructId);\n }\n if (message.blockedByStructType !== 0) {\n writer.uint32(104).uint64(message.blockedByStructType);\n }\n if (message.blockedByStructLocationType !== 0) {\n writer.uint32(112).int32(message.blockedByStructLocationType);\n }\n if (message.blockedByStructLocationId !== \"\") {\n writer.uint32(122).string(message.blockedByStructLocationId);\n }\n if (message.blockedByStructOperatingAmbit !== 0) {\n writer.uint32(128).int32(message.blockedByStructOperatingAmbit);\n }\n if (message.blockedByStructSlot !== 0) {\n writer.uint32(136).uint64(message.blockedByStructSlot);\n }\n if (message.blockerDestroyed !== false) {\n writer.uint32(144).bool(message.blockerDestroyed);\n }\n for (const v of message.eventAttackDefenderCounterDetail) {\n EventAttackDefenderCounterDetail.encode(v!, writer.uint32(154).fork()).join();\n }\n if (message.damageDealt !== 0) {\n writer.uint32(160).uint64(message.damageDealt);\n }\n if (message.damageReduction !== 0) {\n writer.uint32(168).uint64(message.damageReduction);\n }\n if (message.damageReductionCause !== 0) {\n writer.uint32(176).int32(message.damageReductionCause);\n }\n if (message.damage !== 0) {\n writer.uint32(184).uint64(message.damage);\n }\n if (message.targetCountered !== false) {\n writer.uint32(192).bool(message.targetCountered);\n }\n if (message.targetCounteredDamage !== 0) {\n writer.uint32(200).uint64(message.targetCounteredDamage);\n }\n if (message.targetCounterDestroyedAttacker !== false) {\n writer.uint32(208).bool(message.targetCounterDestroyedAttacker);\n }\n if (message.targetCounterCause !== 0) {\n writer.uint32(216).int32(message.targetCounterCause);\n }\n if (message.targetDestroyed !== false) {\n writer.uint32(224).bool(message.targetDestroyed);\n }\n if (message.postDestructionDamageToAttacker !== false) {\n writer.uint32(232).bool(message.postDestructionDamageToAttacker);\n }\n if (message.postDestructionDamage !== 0) {\n writer.uint32(240).uint64(message.postDestructionDamage);\n }\n if (message.postDestructionDamageDestroyedAttacker !== false) {\n writer.uint32(248).bool(message.postDestructionDamageDestroyedAttacker);\n }\n if (message.postDestructionDamageCause !== 0) {\n writer.uint32(256).int32(message.postDestructionDamageCause);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAttackShotDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAttackShotDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.targetStructId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.targetStructType = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.targetStructLocationType = reader.int32() as any;\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.targetStructLocationId = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.targetStructOperatingAmbit = reader.int32() as any;\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.targetStructSlot = longToNumber(reader.uint64());\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.evaded = reader.bool();\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.evadedCause = reader.int32() as any;\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.evadedByPlanetaryDefenses = reader.bool();\n continue;\n }\n case 10: {\n if (tag !== 80) {\n break;\n }\n\n message.evadedByPlanetaryDefensesCause = reader.int32() as any;\n continue;\n }\n case 11: {\n if (tag !== 88) {\n break;\n }\n\n message.blocked = reader.bool();\n continue;\n }\n case 12: {\n if (tag !== 98) {\n break;\n }\n\n message.blockedByStructId = reader.string();\n continue;\n }\n case 13: {\n if (tag !== 104) {\n break;\n }\n\n message.blockedByStructType = longToNumber(reader.uint64());\n continue;\n }\n case 14: {\n if (tag !== 112) {\n break;\n }\n\n message.blockedByStructLocationType = reader.int32() as any;\n continue;\n }\n case 15: {\n if (tag !== 122) {\n break;\n }\n\n message.blockedByStructLocationId = reader.string();\n continue;\n }\n case 16: {\n if (tag !== 128) {\n break;\n }\n\n message.blockedByStructOperatingAmbit = reader.int32() as any;\n continue;\n }\n case 17: {\n if (tag !== 136) {\n break;\n }\n\n message.blockedByStructSlot = longToNumber(reader.uint64());\n continue;\n }\n case 18: {\n if (tag !== 144) {\n break;\n }\n\n message.blockerDestroyed = reader.bool();\n continue;\n }\n case 19: {\n if (tag !== 154) {\n break;\n }\n\n message.eventAttackDefenderCounterDetail.push(\n EventAttackDefenderCounterDetail.decode(reader, reader.uint32()),\n );\n continue;\n }\n case 20: {\n if (tag !== 160) {\n break;\n }\n\n message.damageDealt = longToNumber(reader.uint64());\n continue;\n }\n case 21: {\n if (tag !== 168) {\n break;\n }\n\n message.damageReduction = longToNumber(reader.uint64());\n continue;\n }\n case 22: {\n if (tag !== 176) {\n break;\n }\n\n message.damageReductionCause = reader.int32() as any;\n continue;\n }\n case 23: {\n if (tag !== 184) {\n break;\n }\n\n message.damage = longToNumber(reader.uint64());\n continue;\n }\n case 24: {\n if (tag !== 192) {\n break;\n }\n\n message.targetCountered = reader.bool();\n continue;\n }\n case 25: {\n if (tag !== 200) {\n break;\n }\n\n message.targetCounteredDamage = longToNumber(reader.uint64());\n continue;\n }\n case 26: {\n if (tag !== 208) {\n break;\n }\n\n message.targetCounterDestroyedAttacker = reader.bool();\n continue;\n }\n case 27: {\n if (tag !== 216) {\n break;\n }\n\n message.targetCounterCause = reader.int32() as any;\n continue;\n }\n case 28: {\n if (tag !== 224) {\n break;\n }\n\n message.targetDestroyed = reader.bool();\n continue;\n }\n case 29: {\n if (tag !== 232) {\n break;\n }\n\n message.postDestructionDamageToAttacker = reader.bool();\n continue;\n }\n case 30: {\n if (tag !== 240) {\n break;\n }\n\n message.postDestructionDamage = longToNumber(reader.uint64());\n continue;\n }\n case 31: {\n if (tag !== 248) {\n break;\n }\n\n message.postDestructionDamageDestroyedAttacker = reader.bool();\n continue;\n }\n case 32: {\n if (tag !== 256) {\n break;\n }\n\n message.postDestructionDamageCause = reader.int32() as any;\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAttackShotDetail {\n return {\n targetStructId: isSet(object.targetStructId) ? globalThis.String(object.targetStructId) : \"\",\n targetStructType: isSet(object.targetStructType) ? globalThis.Number(object.targetStructType) : 0,\n targetStructLocationType: isSet(object.targetStructLocationType)\n ? objectTypeFromJSON(object.targetStructLocationType)\n : 0,\n targetStructLocationId: isSet(object.targetStructLocationId)\n ? globalThis.String(object.targetStructLocationId)\n : \"\",\n targetStructOperatingAmbit: isSet(object.targetStructOperatingAmbit)\n ? ambitFromJSON(object.targetStructOperatingAmbit)\n : 0,\n targetStructSlot: isSet(object.targetStructSlot) ? globalThis.Number(object.targetStructSlot) : 0,\n evaded: isSet(object.evaded) ? globalThis.Boolean(object.evaded) : false,\n evadedCause: isSet(object.evadedCause) ? techUnitDefensesFromJSON(object.evadedCause) : 0,\n evadedByPlanetaryDefenses: isSet(object.evadedByPlanetaryDefenses)\n ? globalThis.Boolean(object.evadedByPlanetaryDefenses)\n : false,\n evadedByPlanetaryDefensesCause: isSet(object.evadedByPlanetaryDefensesCause)\n ? techPlanetaryDefensesFromJSON(object.evadedByPlanetaryDefensesCause)\n : 0,\n blocked: isSet(object.blocked) ? globalThis.Boolean(object.blocked) : false,\n blockedByStructId: isSet(object.blockedByStructId) ? globalThis.String(object.blockedByStructId) : \"\",\n blockedByStructType: isSet(object.blockedByStructType) ? globalThis.Number(object.blockedByStructType) : 0,\n blockedByStructLocationType: isSet(object.blockedByStructLocationType)\n ? objectTypeFromJSON(object.blockedByStructLocationType)\n : 0,\n blockedByStructLocationId: isSet(object.blockedByStructLocationId)\n ? globalThis.String(object.blockedByStructLocationId)\n : \"\",\n blockedByStructOperatingAmbit: isSet(object.blockedByStructOperatingAmbit)\n ? ambitFromJSON(object.blockedByStructOperatingAmbit)\n : 0,\n blockedByStructSlot: isSet(object.blockedByStructSlot) ? globalThis.Number(object.blockedByStructSlot) : 0,\n blockerDestroyed: isSet(object.blockerDestroyed) ? globalThis.Boolean(object.blockerDestroyed) : false,\n eventAttackDefenderCounterDetail: globalThis.Array.isArray(object?.eventAttackDefenderCounterDetail)\n ? object.eventAttackDefenderCounterDetail.map((e: any) => EventAttackDefenderCounterDetail.fromJSON(e))\n : [],\n damageDealt: isSet(object.damageDealt) ? globalThis.Number(object.damageDealt) : 0,\n damageReduction: isSet(object.damageReduction) ? globalThis.Number(object.damageReduction) : 0,\n damageReductionCause: isSet(object.damageReductionCause)\n ? techUnitDefensesFromJSON(object.damageReductionCause)\n : 0,\n damage: isSet(object.damage) ? globalThis.Number(object.damage) : 0,\n targetCountered: isSet(object.targetCountered) ? globalThis.Boolean(object.targetCountered) : false,\n targetCounteredDamage: isSet(object.targetCounteredDamage) ? globalThis.Number(object.targetCounteredDamage) : 0,\n targetCounterDestroyedAttacker: isSet(object.targetCounterDestroyedAttacker)\n ? globalThis.Boolean(object.targetCounterDestroyedAttacker)\n : false,\n targetCounterCause: isSet(object.targetCounterCause) ? techPassiveWeaponryFromJSON(object.targetCounterCause) : 0,\n targetDestroyed: isSet(object.targetDestroyed) ? globalThis.Boolean(object.targetDestroyed) : false,\n postDestructionDamageToAttacker: isSet(object.postDestructionDamageToAttacker)\n ? globalThis.Boolean(object.postDestructionDamageToAttacker)\n : false,\n postDestructionDamage: isSet(object.postDestructionDamage) ? globalThis.Number(object.postDestructionDamage) : 0,\n postDestructionDamageDestroyedAttacker: isSet(object.postDestructionDamageDestroyedAttacker)\n ? globalThis.Boolean(object.postDestructionDamageDestroyedAttacker)\n : false,\n postDestructionDamageCause: isSet(object.postDestructionDamageCause)\n ? techPassiveWeaponryFromJSON(object.postDestructionDamageCause)\n : 0,\n };\n },\n\n toJSON(message: EventAttackShotDetail): unknown {\n const obj: any = {};\n if (message.targetStructId !== \"\") {\n obj.targetStructId = message.targetStructId;\n }\n if (message.targetStructType !== 0) {\n obj.targetStructType = Math.round(message.targetStructType);\n }\n if (message.targetStructLocationType !== 0) {\n obj.targetStructLocationType = objectTypeToJSON(message.targetStructLocationType);\n }\n if (message.targetStructLocationId !== \"\") {\n obj.targetStructLocationId = message.targetStructLocationId;\n }\n if (message.targetStructOperatingAmbit !== 0) {\n obj.targetStructOperatingAmbit = ambitToJSON(message.targetStructOperatingAmbit);\n }\n if (message.targetStructSlot !== 0) {\n obj.targetStructSlot = Math.round(message.targetStructSlot);\n }\n if (message.evaded !== false) {\n obj.evaded = message.evaded;\n }\n if (message.evadedCause !== 0) {\n obj.evadedCause = techUnitDefensesToJSON(message.evadedCause);\n }\n if (message.evadedByPlanetaryDefenses !== false) {\n obj.evadedByPlanetaryDefenses = message.evadedByPlanetaryDefenses;\n }\n if (message.evadedByPlanetaryDefensesCause !== 0) {\n obj.evadedByPlanetaryDefensesCause = techPlanetaryDefensesToJSON(message.evadedByPlanetaryDefensesCause);\n }\n if (message.blocked !== false) {\n obj.blocked = message.blocked;\n }\n if (message.blockedByStructId !== \"\") {\n obj.blockedByStructId = message.blockedByStructId;\n }\n if (message.blockedByStructType !== 0) {\n obj.blockedByStructType = Math.round(message.blockedByStructType);\n }\n if (message.blockedByStructLocationType !== 0) {\n obj.blockedByStructLocationType = objectTypeToJSON(message.blockedByStructLocationType);\n }\n if (message.blockedByStructLocationId !== \"\") {\n obj.blockedByStructLocationId = message.blockedByStructLocationId;\n }\n if (message.blockedByStructOperatingAmbit !== 0) {\n obj.blockedByStructOperatingAmbit = ambitToJSON(message.blockedByStructOperatingAmbit);\n }\n if (message.blockedByStructSlot !== 0) {\n obj.blockedByStructSlot = Math.round(message.blockedByStructSlot);\n }\n if (message.blockerDestroyed !== false) {\n obj.blockerDestroyed = message.blockerDestroyed;\n }\n if (message.eventAttackDefenderCounterDetail?.length) {\n obj.eventAttackDefenderCounterDetail = message.eventAttackDefenderCounterDetail.map((e) =>\n EventAttackDefenderCounterDetail.toJSON(e)\n );\n }\n if (message.damageDealt !== 0) {\n obj.damageDealt = Math.round(message.damageDealt);\n }\n if (message.damageReduction !== 0) {\n obj.damageReduction = Math.round(message.damageReduction);\n }\n if (message.damageReductionCause !== 0) {\n obj.damageReductionCause = techUnitDefensesToJSON(message.damageReductionCause);\n }\n if (message.damage !== 0) {\n obj.damage = Math.round(message.damage);\n }\n if (message.targetCountered !== false) {\n obj.targetCountered = message.targetCountered;\n }\n if (message.targetCounteredDamage !== 0) {\n obj.targetCounteredDamage = Math.round(message.targetCounteredDamage);\n }\n if (message.targetCounterDestroyedAttacker !== false) {\n obj.targetCounterDestroyedAttacker = message.targetCounterDestroyedAttacker;\n }\n if (message.targetCounterCause !== 0) {\n obj.targetCounterCause = techPassiveWeaponryToJSON(message.targetCounterCause);\n }\n if (message.targetDestroyed !== false) {\n obj.targetDestroyed = message.targetDestroyed;\n }\n if (message.postDestructionDamageToAttacker !== false) {\n obj.postDestructionDamageToAttacker = message.postDestructionDamageToAttacker;\n }\n if (message.postDestructionDamage !== 0) {\n obj.postDestructionDamage = Math.round(message.postDestructionDamage);\n }\n if (message.postDestructionDamageDestroyedAttacker !== false) {\n obj.postDestructionDamageDestroyedAttacker = message.postDestructionDamageDestroyedAttacker;\n }\n if (message.postDestructionDamageCause !== 0) {\n obj.postDestructionDamageCause = techPassiveWeaponryToJSON(message.postDestructionDamageCause);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventAttackShotDetail {\n return EventAttackShotDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventAttackShotDetail {\n const message = createBaseEventAttackShotDetail();\n message.targetStructId = object.targetStructId ?? \"\";\n message.targetStructType = object.targetStructType ?? 0;\n message.targetStructLocationType = object.targetStructLocationType ?? 0;\n message.targetStructLocationId = object.targetStructLocationId ?? \"\";\n message.targetStructOperatingAmbit = object.targetStructOperatingAmbit ?? 0;\n message.targetStructSlot = object.targetStructSlot ?? 0;\n message.evaded = object.evaded ?? false;\n message.evadedCause = object.evadedCause ?? 0;\n message.evadedByPlanetaryDefenses = object.evadedByPlanetaryDefenses ?? false;\n message.evadedByPlanetaryDefensesCause = object.evadedByPlanetaryDefensesCause ?? 0;\n message.blocked = object.blocked ?? false;\n message.blockedByStructId = object.blockedByStructId ?? \"\";\n message.blockedByStructType = object.blockedByStructType ?? 0;\n message.blockedByStructLocationType = object.blockedByStructLocationType ?? 0;\n message.blockedByStructLocationId = object.blockedByStructLocationId ?? \"\";\n message.blockedByStructOperatingAmbit = object.blockedByStructOperatingAmbit ?? 0;\n message.blockedByStructSlot = object.blockedByStructSlot ?? 0;\n message.blockerDestroyed = object.blockerDestroyed ?? false;\n message.eventAttackDefenderCounterDetail =\n object.eventAttackDefenderCounterDetail?.map((e) => EventAttackDefenderCounterDetail.fromPartial(e)) || [];\n message.damageDealt = object.damageDealt ?? 0;\n message.damageReduction = object.damageReduction ?? 0;\n message.damageReductionCause = object.damageReductionCause ?? 0;\n message.damage = object.damage ?? 0;\n message.targetCountered = object.targetCountered ?? false;\n message.targetCounteredDamage = object.targetCounteredDamage ?? 0;\n message.targetCounterDestroyedAttacker = object.targetCounterDestroyedAttacker ?? false;\n message.targetCounterCause = object.targetCounterCause ?? 0;\n message.targetDestroyed = object.targetDestroyed ?? false;\n message.postDestructionDamageToAttacker = object.postDestructionDamageToAttacker ?? false;\n message.postDestructionDamage = object.postDestructionDamage ?? 0;\n message.postDestructionDamageDestroyedAttacker = object.postDestructionDamageDestroyedAttacker ?? false;\n message.postDestructionDamageCause = object.postDestructionDamageCause ?? 0;\n return message;\n },\n};\n\nfunction createBaseEventAttackDefenderCounterDetail(): EventAttackDefenderCounterDetail {\n return {\n counterByStructId: \"\",\n counterByStructType: 0,\n counterByStructLocationType: 0,\n counterByStructLocationId: \"\",\n counterByStructOperatingAmbit: 0,\n counterByStructSlot: 0,\n counterDamage: 0,\n counterDestroyedAttacker: false,\n };\n}\n\nexport const EventAttackDefenderCounterDetail: MessageFns = {\n encode(message: EventAttackDefenderCounterDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.counterByStructId !== \"\") {\n writer.uint32(10).string(message.counterByStructId);\n }\n if (message.counterByStructType !== 0) {\n writer.uint32(16).uint64(message.counterByStructType);\n }\n if (message.counterByStructLocationType !== 0) {\n writer.uint32(24).int32(message.counterByStructLocationType);\n }\n if (message.counterByStructLocationId !== \"\") {\n writer.uint32(34).string(message.counterByStructLocationId);\n }\n if (message.counterByStructOperatingAmbit !== 0) {\n writer.uint32(40).int32(message.counterByStructOperatingAmbit);\n }\n if (message.counterByStructSlot !== 0) {\n writer.uint32(48).uint64(message.counterByStructSlot);\n }\n if (message.counterDamage !== 0) {\n writer.uint32(56).uint64(message.counterDamage);\n }\n if (message.counterDestroyedAttacker !== false) {\n writer.uint32(64).bool(message.counterDestroyedAttacker);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventAttackDefenderCounterDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAttackDefenderCounterDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.counterByStructId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.counterByStructType = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.counterByStructLocationType = reader.int32() as any;\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.counterByStructLocationId = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.counterByStructOperatingAmbit = reader.int32() as any;\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.counterByStructSlot = longToNumber(reader.uint64());\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.counterDamage = longToNumber(reader.uint64());\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.counterDestroyedAttacker = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventAttackDefenderCounterDetail {\n return {\n counterByStructId: isSet(object.counterByStructId) ? globalThis.String(object.counterByStructId) : \"\",\n counterByStructType: isSet(object.counterByStructType) ? globalThis.Number(object.counterByStructType) : 0,\n counterByStructLocationType: isSet(object.counterByStructLocationType)\n ? objectTypeFromJSON(object.counterByStructLocationType)\n : 0,\n counterByStructLocationId: isSet(object.counterByStructLocationId)\n ? globalThis.String(object.counterByStructLocationId)\n : \"\",\n counterByStructOperatingAmbit: isSet(object.counterByStructOperatingAmbit)\n ? ambitFromJSON(object.counterByStructOperatingAmbit)\n : 0,\n counterByStructSlot: isSet(object.counterByStructSlot) ? globalThis.Number(object.counterByStructSlot) : 0,\n counterDamage: isSet(object.counterDamage) ? globalThis.Number(object.counterDamage) : 0,\n counterDestroyedAttacker: isSet(object.counterDestroyedAttacker)\n ? globalThis.Boolean(object.counterDestroyedAttacker)\n : false,\n };\n },\n\n toJSON(message: EventAttackDefenderCounterDetail): unknown {\n const obj: any = {};\n if (message.counterByStructId !== \"\") {\n obj.counterByStructId = message.counterByStructId;\n }\n if (message.counterByStructType !== 0) {\n obj.counterByStructType = Math.round(message.counterByStructType);\n }\n if (message.counterByStructLocationType !== 0) {\n obj.counterByStructLocationType = objectTypeToJSON(message.counterByStructLocationType);\n }\n if (message.counterByStructLocationId !== \"\") {\n obj.counterByStructLocationId = message.counterByStructLocationId;\n }\n if (message.counterByStructOperatingAmbit !== 0) {\n obj.counterByStructOperatingAmbit = ambitToJSON(message.counterByStructOperatingAmbit);\n }\n if (message.counterByStructSlot !== 0) {\n obj.counterByStructSlot = Math.round(message.counterByStructSlot);\n }\n if (message.counterDamage !== 0) {\n obj.counterDamage = Math.round(message.counterDamage);\n }\n if (message.counterDestroyedAttacker !== false) {\n obj.counterDestroyedAttacker = message.counterDestroyedAttacker;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): EventAttackDefenderCounterDetail {\n return EventAttackDefenderCounterDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): EventAttackDefenderCounterDetail {\n const message = createBaseEventAttackDefenderCounterDetail();\n message.counterByStructId = object.counterByStructId ?? \"\";\n message.counterByStructType = object.counterByStructType ?? 0;\n message.counterByStructLocationType = object.counterByStructLocationType ?? 0;\n message.counterByStructLocationId = object.counterByStructLocationId ?? \"\";\n message.counterByStructOperatingAmbit = object.counterByStructOperatingAmbit ?? 0;\n message.counterByStructSlot = object.counterByStructSlot ?? 0;\n message.counterDamage = object.counterDamage ?? 0;\n message.counterDestroyedAttacker = object.counterDestroyedAttacker ?? false;\n return message;\n },\n};\n\nfunction createBaseEventRaid(): EventRaid {\n return { eventRaidDetail: undefined };\n}\n\nexport const EventRaid: MessageFns = {\n encode(message: EventRaid, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.eventRaidDetail !== undefined) {\n EventRaidDetail.encode(message.eventRaidDetail, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventRaid {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventRaid();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.eventRaidDetail = EventRaidDetail.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventRaid {\n return {\n eventRaidDetail: isSet(object.eventRaidDetail) ? EventRaidDetail.fromJSON(object.eventRaidDetail) : undefined,\n };\n },\n\n toJSON(message: EventRaid): unknown {\n const obj: any = {};\n if (message.eventRaidDetail !== undefined) {\n obj.eventRaidDetail = EventRaidDetail.toJSON(message.eventRaidDetail);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventRaid {\n return EventRaid.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventRaid {\n const message = createBaseEventRaid();\n message.eventRaidDetail = (object.eventRaidDetail !== undefined && object.eventRaidDetail !== null)\n ? EventRaidDetail.fromPartial(object.eventRaidDetail)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEventRaidDetail(): EventRaidDetail {\n return { fleetId: \"\", planetId: \"\", status: 0 };\n}\n\nexport const EventRaidDetail: MessageFns = {\n encode(message: EventRaidDetail, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.fleetId !== \"\") {\n writer.uint32(10).string(message.fleetId);\n }\n if (message.planetId !== \"\") {\n writer.uint32(18).string(message.planetId);\n }\n if (message.status !== 0) {\n writer.uint32(24).int32(message.status);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EventRaidDetail {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventRaidDetail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.fleetId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.planetId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.status = reader.int32() as any;\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EventRaidDetail {\n return {\n fleetId: isSet(object.fleetId) ? globalThis.String(object.fleetId) : \"\",\n planetId: isSet(object.planetId) ? globalThis.String(object.planetId) : \"\",\n status: isSet(object.status) ? raidStatusFromJSON(object.status) : 0,\n };\n },\n\n toJSON(message: EventRaidDetail): unknown {\n const obj: any = {};\n if (message.fleetId !== \"\") {\n obj.fleetId = message.fleetId;\n }\n if (message.planetId !== \"\") {\n obj.planetId = message.planetId;\n }\n if (message.status !== 0) {\n obj.status = raidStatusToJSON(message.status);\n }\n return obj;\n },\n\n create, I>>(base?: I): EventRaidDetail {\n return EventRaidDetail.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): EventRaidDetail {\n const message = createBaseEventRaidDetail();\n message.fleetId = object.fleetId ?? \"\";\n message.planetId = object.planetId ?? \"\";\n message.status = object.status ?? 0;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction toTimestamp(date: Date): Timestamp {\n const seconds = Math.trunc(date.getTime() / 1_000);\n const nanos = (date.getTime() % 1_000) * 1_000_000;\n return { seconds, nanos };\n}\n\nfunction fromTimestamp(t: Timestamp): Date {\n let millis = (t.seconds || 0) * 1_000;\n millis += (t.nanos || 0) / 1_000_000;\n return new globalThis.Date(millis);\n}\n\nfunction fromJsonTimestamp(o: any): Date {\n if (o instanceof globalThis.Date) {\n return o;\n } else if (typeof o === \"string\") {\n return new globalThis.Date(o);\n } else {\n return fromTimestamp(Timestamp.fromJSON(o));\n }\n}\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/fleet.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport {\n fleetStatus,\n fleetStatusFromJSON,\n fleetStatusToJSON,\n objectType,\n objectTypeFromJSON,\n objectTypeToJSON,\n} from \"./keys\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface Fleet {\n id: string;\n owner: string;\n locationType: objectType;\n locationId: string;\n status: fleetStatus;\n /** Towards Planet */\n locationListForward: string;\n /** Towards End of List */\n locationListBackward: string;\n space: string[];\n air: string[];\n land: string[];\n water: string[];\n spaceSlots: number;\n airSlots: number;\n landSlots: number;\n waterSlots: number;\n commandStruct: string;\n}\n\nexport interface FleetAttributeRecord {\n attributeId: string;\n value: number;\n}\n\nfunction createBaseFleet(): Fleet {\n return {\n id: \"\",\n owner: \"\",\n locationType: 0,\n locationId: \"\",\n status: 0,\n locationListForward: \"\",\n locationListBackward: \"\",\n space: [],\n air: [],\n land: [],\n water: [],\n spaceSlots: 0,\n airSlots: 0,\n landSlots: 0,\n waterSlots: 0,\n commandStruct: \"\",\n };\n}\n\nexport const Fleet: MessageFns = {\n encode(message: Fleet, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.owner !== \"\") {\n writer.uint32(18).string(message.owner);\n }\n if (message.locationType !== 0) {\n writer.uint32(24).int32(message.locationType);\n }\n if (message.locationId !== \"\") {\n writer.uint32(34).string(message.locationId);\n }\n if (message.status !== 0) {\n writer.uint32(40).int32(message.status);\n }\n if (message.locationListForward !== \"\") {\n writer.uint32(50).string(message.locationListForward);\n }\n if (message.locationListBackward !== \"\") {\n writer.uint32(58).string(message.locationListBackward);\n }\n for (const v of message.space) {\n writer.uint32(66).string(v!);\n }\n for (const v of message.air) {\n writer.uint32(74).string(v!);\n }\n for (const v of message.land) {\n writer.uint32(82).string(v!);\n }\n for (const v of message.water) {\n writer.uint32(90).string(v!);\n }\n if (message.spaceSlots !== 0) {\n writer.uint32(96).uint64(message.spaceSlots);\n }\n if (message.airSlots !== 0) {\n writer.uint32(104).uint64(message.airSlots);\n }\n if (message.landSlots !== 0) {\n writer.uint32(112).uint64(message.landSlots);\n }\n if (message.waterSlots !== 0) {\n writer.uint32(120).uint64(message.waterSlots);\n }\n if (message.commandStruct !== \"\") {\n writer.uint32(130).string(message.commandStruct);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Fleet {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFleet();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.owner = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.locationType = reader.int32() as any;\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.locationId = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.status = reader.int32() as any;\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.locationListForward = reader.string();\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.locationListBackward = reader.string();\n continue;\n }\n case 8: {\n if (tag !== 66) {\n break;\n }\n\n message.space.push(reader.string());\n continue;\n }\n case 9: {\n if (tag !== 74) {\n break;\n }\n\n message.air.push(reader.string());\n continue;\n }\n case 10: {\n if (tag !== 82) {\n break;\n }\n\n message.land.push(reader.string());\n continue;\n }\n case 11: {\n if (tag !== 90) {\n break;\n }\n\n message.water.push(reader.string());\n continue;\n }\n case 12: {\n if (tag !== 96) {\n break;\n }\n\n message.spaceSlots = longToNumber(reader.uint64());\n continue;\n }\n case 13: {\n if (tag !== 104) {\n break;\n }\n\n message.airSlots = longToNumber(reader.uint64());\n continue;\n }\n case 14: {\n if (tag !== 112) {\n break;\n }\n\n message.landSlots = longToNumber(reader.uint64());\n continue;\n }\n case 15: {\n if (tag !== 120) {\n break;\n }\n\n message.waterSlots = longToNumber(reader.uint64());\n continue;\n }\n case 16: {\n if (tag !== 130) {\n break;\n }\n\n message.commandStruct = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Fleet {\n return {\n id: isSet(object.id) ? globalThis.String(object.id) : \"\",\n owner: isSet(object.owner) ? globalThis.String(object.owner) : \"\",\n locationType: isSet(object.locationType) ? objectTypeFromJSON(object.locationType) : 0,\n locationId: isSet(object.locationId) ? globalThis.String(object.locationId) : \"\",\n status: isSet(object.status) ? fleetStatusFromJSON(object.status) : 0,\n locationListForward: isSet(object.locationListForward) ? globalThis.String(object.locationListForward) : \"\",\n locationListBackward: isSet(object.locationListBackward) ? globalThis.String(object.locationListBackward) : \"\",\n space: globalThis.Array.isArray(object?.space) ? object.space.map((e: any) => globalThis.String(e)) : [],\n air: globalThis.Array.isArray(object?.air) ? object.air.map((e: any) => globalThis.String(e)) : [],\n land: globalThis.Array.isArray(object?.land) ? object.land.map((e: any) => globalThis.String(e)) : [],\n water: globalThis.Array.isArray(object?.water) ? object.water.map((e: any) => globalThis.String(e)) : [],\n spaceSlots: isSet(object.spaceSlots) ? globalThis.Number(object.spaceSlots) : 0,\n airSlots: isSet(object.airSlots) ? globalThis.Number(object.airSlots) : 0,\n landSlots: isSet(object.landSlots) ? globalThis.Number(object.landSlots) : 0,\n waterSlots: isSet(object.waterSlots) ? globalThis.Number(object.waterSlots) : 0,\n commandStruct: isSet(object.commandStruct) ? globalThis.String(object.commandStruct) : \"\",\n };\n },\n\n toJSON(message: Fleet): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n if (message.owner !== \"\") {\n obj.owner = message.owner;\n }\n if (message.locationType !== 0) {\n obj.locationType = objectTypeToJSON(message.locationType);\n }\n if (message.locationId !== \"\") {\n obj.locationId = message.locationId;\n }\n if (message.status !== 0) {\n obj.status = fleetStatusToJSON(message.status);\n }\n if (message.locationListForward !== \"\") {\n obj.locationListForward = message.locationListForward;\n }\n if (message.locationListBackward !== \"\") {\n obj.locationListBackward = message.locationListBackward;\n }\n if (message.space?.length) {\n obj.space = message.space;\n }\n if (message.air?.length) {\n obj.air = message.air;\n }\n if (message.land?.length) {\n obj.land = message.land;\n }\n if (message.water?.length) {\n obj.water = message.water;\n }\n if (message.spaceSlots !== 0) {\n obj.spaceSlots = Math.round(message.spaceSlots);\n }\n if (message.airSlots !== 0) {\n obj.airSlots = Math.round(message.airSlots);\n }\n if (message.landSlots !== 0) {\n obj.landSlots = Math.round(message.landSlots);\n }\n if (message.waterSlots !== 0) {\n obj.waterSlots = Math.round(message.waterSlots);\n }\n if (message.commandStruct !== \"\") {\n obj.commandStruct = message.commandStruct;\n }\n return obj;\n },\n\n create, I>>(base?: I): Fleet {\n return Fleet.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Fleet {\n const message = createBaseFleet();\n message.id = object.id ?? \"\";\n message.owner = object.owner ?? \"\";\n message.locationType = object.locationType ?? 0;\n message.locationId = object.locationId ?? \"\";\n message.status = object.status ?? 0;\n message.locationListForward = object.locationListForward ?? \"\";\n message.locationListBackward = object.locationListBackward ?? \"\";\n message.space = object.space?.map((e) => e) || [];\n message.air = object.air?.map((e) => e) || [];\n message.land = object.land?.map((e) => e) || [];\n message.water = object.water?.map((e) => e) || [];\n message.spaceSlots = object.spaceSlots ?? 0;\n message.airSlots = object.airSlots ?? 0;\n message.landSlots = object.landSlots ?? 0;\n message.waterSlots = object.waterSlots ?? 0;\n message.commandStruct = object.commandStruct ?? \"\";\n return message;\n },\n};\n\nfunction createBaseFleetAttributeRecord(): FleetAttributeRecord {\n return { attributeId: \"\", value: 0 };\n}\n\nexport const FleetAttributeRecord: MessageFns = {\n encode(message: FleetAttributeRecord, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.attributeId !== \"\") {\n writer.uint32(10).string(message.attributeId);\n }\n if (message.value !== 0) {\n writer.uint32(16).uint64(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FleetAttributeRecord {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFleetAttributeRecord();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.attributeId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.value = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FleetAttributeRecord {\n return {\n attributeId: isSet(object.attributeId) ? globalThis.String(object.attributeId) : \"\",\n value: isSet(object.value) ? globalThis.Number(object.value) : 0,\n };\n },\n\n toJSON(message: FleetAttributeRecord): unknown {\n const obj: any = {};\n if (message.attributeId !== \"\") {\n obj.attributeId = message.attributeId;\n }\n if (message.value !== 0) {\n obj.value = Math.round(message.value);\n }\n return obj;\n },\n\n create, I>>(base?: I): FleetAttributeRecord {\n return FleetAttributeRecord.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): FleetAttributeRecord {\n const message = createBaseFleetAttributeRecord();\n message.attributeId = object.attributeId ?? \"\";\n message.value = object.value ?? 0;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/genesis.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { AddressRecord } from \"./address\";\nimport { Agreement } from \"./agreement\";\nimport { Allocation } from \"./allocation\";\nimport { GridRecord } from \"./grid\";\nimport { Guild } from \"./guild\";\nimport { Infusion } from \"./infusion\";\nimport { Params } from \"./params\";\nimport { PermissionRecord } from \"./permission\";\nimport { Planet } from \"./planet\";\nimport { Player } from \"./player\";\nimport { Provider } from \"./provider\";\nimport { Reactor } from \"./reactor\";\nimport { Struct } from \"./struct\";\nimport { Substation } from \"./substation\";\n\nexport const protobufPackage = \"structs.structs\";\n\n/** GenesisState defines the structs module's genesis state. */\nexport interface GenesisState {\n /** params defines all the parameters of the module. */\n params: Params | undefined;\n portId: string;\n allocationList: Allocation[];\n agreementList: Agreement[];\n infusionList: Infusion[];\n guildList: Guild[];\n guildCount: number;\n planetList: Planet[];\n planetCount: number;\n playerList: Player[];\n playerHalted: string[];\n playerCount: number;\n providerList: Provider[];\n providerCount: number;\n reactorList: Reactor[];\n reactorCount: number;\n structList: Struct[];\n structCount: number;\n substationList: Substation[];\n substationCount: number;\n permissionList: PermissionRecord[];\n gridList: GridRecord[];\n addressList: AddressRecord[];\n}\n\nfunction createBaseGenesisState(): GenesisState {\n return {\n params: undefined,\n portId: \"\",\n allocationList: [],\n agreementList: [],\n infusionList: [],\n guildList: [],\n guildCount: 0,\n planetList: [],\n planetCount: 0,\n playerList: [],\n playerHalted: [],\n playerCount: 0,\n providerList: [],\n providerCount: 0,\n reactorList: [],\n reactorCount: 0,\n structList: [],\n structCount: 0,\n substationList: [],\n substationCount: 0,\n permissionList: [],\n gridList: [],\n addressList: [],\n };\n}\n\nexport const GenesisState: MessageFns = {\n encode(message: GenesisState, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.params !== undefined) {\n Params.encode(message.params, writer.uint32(10).fork()).join();\n }\n if (message.portId !== \"\") {\n writer.uint32(18).string(message.portId);\n }\n for (const v of message.allocationList) {\n Allocation.encode(v!, writer.uint32(26).fork()).join();\n }\n for (const v of message.agreementList) {\n Agreement.encode(v!, writer.uint32(34).fork()).join();\n }\n for (const v of message.infusionList) {\n Infusion.encode(v!, writer.uint32(42).fork()).join();\n }\n for (const v of message.guildList) {\n Guild.encode(v!, writer.uint32(50).fork()).join();\n }\n if (message.guildCount !== 0) {\n writer.uint32(56).uint64(message.guildCount);\n }\n for (const v of message.planetList) {\n Planet.encode(v!, writer.uint32(66).fork()).join();\n }\n if (message.planetCount !== 0) {\n writer.uint32(72).uint64(message.planetCount);\n }\n for (const v of message.playerList) {\n Player.encode(v!, writer.uint32(82).fork()).join();\n }\n for (const v of message.playerHalted) {\n writer.uint32(90).string(v!);\n }\n if (message.playerCount !== 0) {\n writer.uint32(96).uint64(message.playerCount);\n }\n for (const v of message.providerList) {\n Provider.encode(v!, writer.uint32(106).fork()).join();\n }\n if (message.providerCount !== 0) {\n writer.uint32(112).uint64(message.providerCount);\n }\n for (const v of message.reactorList) {\n Reactor.encode(v!, writer.uint32(122).fork()).join();\n }\n if (message.reactorCount !== 0) {\n writer.uint32(128).uint64(message.reactorCount);\n }\n for (const v of message.structList) {\n Struct.encode(v!, writer.uint32(138).fork()).join();\n }\n if (message.structCount !== 0) {\n writer.uint32(144).uint64(message.structCount);\n }\n for (const v of message.substationList) {\n Substation.encode(v!, writer.uint32(154).fork()).join();\n }\n if (message.substationCount !== 0) {\n writer.uint32(160).uint64(message.substationCount);\n }\n for (const v of message.permissionList) {\n PermissionRecord.encode(v!, writer.uint32(170).fork()).join();\n }\n for (const v of message.gridList) {\n GridRecord.encode(v!, writer.uint32(178).fork()).join();\n }\n for (const v of message.addressList) {\n AddressRecord.encode(v!, writer.uint32(186).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): GenesisState {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGenesisState();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.params = Params.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.portId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.allocationList.push(Allocation.decode(reader, reader.uint32()));\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.agreementList.push(Agreement.decode(reader, reader.uint32()));\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.infusionList.push(Infusion.decode(reader, reader.uint32()));\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.guildList.push(Guild.decode(reader, reader.uint32()));\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.guildCount = longToNumber(reader.uint64());\n continue;\n }\n case 8: {\n if (tag !== 66) {\n break;\n }\n\n message.planetList.push(Planet.decode(reader, reader.uint32()));\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.planetCount = longToNumber(reader.uint64());\n continue;\n }\n case 10: {\n if (tag !== 82) {\n break;\n }\n\n message.playerList.push(Player.decode(reader, reader.uint32()));\n continue;\n }\n case 11: {\n if (tag !== 90) {\n break;\n }\n\n message.playerHalted.push(reader.string());\n continue;\n }\n case 12: {\n if (tag !== 96) {\n break;\n }\n\n message.playerCount = longToNumber(reader.uint64());\n continue;\n }\n case 13: {\n if (tag !== 106) {\n break;\n }\n\n message.providerList.push(Provider.decode(reader, reader.uint32()));\n continue;\n }\n case 14: {\n if (tag !== 112) {\n break;\n }\n\n message.providerCount = longToNumber(reader.uint64());\n continue;\n }\n case 15: {\n if (tag !== 122) {\n break;\n }\n\n message.reactorList.push(Reactor.decode(reader, reader.uint32()));\n continue;\n }\n case 16: {\n if (tag !== 128) {\n break;\n }\n\n message.reactorCount = longToNumber(reader.uint64());\n continue;\n }\n case 17: {\n if (tag !== 138) {\n break;\n }\n\n message.structList.push(Struct.decode(reader, reader.uint32()));\n continue;\n }\n case 18: {\n if (tag !== 144) {\n break;\n }\n\n message.structCount = longToNumber(reader.uint64());\n continue;\n }\n case 19: {\n if (tag !== 154) {\n break;\n }\n\n message.substationList.push(Substation.decode(reader, reader.uint32()));\n continue;\n }\n case 20: {\n if (tag !== 160) {\n break;\n }\n\n message.substationCount = longToNumber(reader.uint64());\n continue;\n }\n case 21: {\n if (tag !== 170) {\n break;\n }\n\n message.permissionList.push(PermissionRecord.decode(reader, reader.uint32()));\n continue;\n }\n case 22: {\n if (tag !== 178) {\n break;\n }\n\n message.gridList.push(GridRecord.decode(reader, reader.uint32()));\n continue;\n }\n case 23: {\n if (tag !== 186) {\n break;\n }\n\n message.addressList.push(AddressRecord.decode(reader, reader.uint32()));\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): GenesisState {\n return {\n params: isSet(object.params) ? Params.fromJSON(object.params) : undefined,\n portId: isSet(object.portId) ? globalThis.String(object.portId) : \"\",\n allocationList: globalThis.Array.isArray(object?.allocationList)\n ? object.allocationList.map((e: any) => Allocation.fromJSON(e))\n : [],\n agreementList: globalThis.Array.isArray(object?.agreementList)\n ? object.agreementList.map((e: any) => Agreement.fromJSON(e))\n : [],\n infusionList: globalThis.Array.isArray(object?.infusionList)\n ? object.infusionList.map((e: any) => Infusion.fromJSON(e))\n : [],\n guildList: globalThis.Array.isArray(object?.guildList) ? object.guildList.map((e: any) => Guild.fromJSON(e)) : [],\n guildCount: isSet(object.guildCount) ? globalThis.Number(object.guildCount) : 0,\n planetList: globalThis.Array.isArray(object?.planetList)\n ? object.planetList.map((e: any) => Planet.fromJSON(e))\n : [],\n planetCount: isSet(object.planetCount) ? globalThis.Number(object.planetCount) : 0,\n playerList: globalThis.Array.isArray(object?.playerList)\n ? object.playerList.map((e: any) => Player.fromJSON(e))\n : [],\n playerHalted: globalThis.Array.isArray(object?.playerHalted)\n ? object.playerHalted.map((e: any) => globalThis.String(e))\n : [],\n playerCount: isSet(object.playerCount) ? globalThis.Number(object.playerCount) : 0,\n providerList: globalThis.Array.isArray(object?.providerList)\n ? object.providerList.map((e: any) => Provider.fromJSON(e))\n : [],\n providerCount: isSet(object.providerCount) ? globalThis.Number(object.providerCount) : 0,\n reactorList: globalThis.Array.isArray(object?.reactorList)\n ? object.reactorList.map((e: any) => Reactor.fromJSON(e))\n : [],\n reactorCount: isSet(object.reactorCount) ? globalThis.Number(object.reactorCount) : 0,\n structList: globalThis.Array.isArray(object?.structList)\n ? object.structList.map((e: any) => Struct.fromJSON(e))\n : [],\n structCount: isSet(object.structCount) ? globalThis.Number(object.structCount) : 0,\n substationList: globalThis.Array.isArray(object?.substationList)\n ? object.substationList.map((e: any) => Substation.fromJSON(e))\n : [],\n substationCount: isSet(object.substationCount) ? globalThis.Number(object.substationCount) : 0,\n permissionList: globalThis.Array.isArray(object?.permissionList)\n ? object.permissionList.map((e: any) => PermissionRecord.fromJSON(e))\n : [],\n gridList: globalThis.Array.isArray(object?.gridList)\n ? object.gridList.map((e: any) => GridRecord.fromJSON(e))\n : [],\n addressList: globalThis.Array.isArray(object?.addressList)\n ? object.addressList.map((e: any) => AddressRecord.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: GenesisState): unknown {\n const obj: any = {};\n if (message.params !== undefined) {\n obj.params = Params.toJSON(message.params);\n }\n if (message.portId !== \"\") {\n obj.portId = message.portId;\n }\n if (message.allocationList?.length) {\n obj.allocationList = message.allocationList.map((e) => Allocation.toJSON(e));\n }\n if (message.agreementList?.length) {\n obj.agreementList = message.agreementList.map((e) => Agreement.toJSON(e));\n }\n if (message.infusionList?.length) {\n obj.infusionList = message.infusionList.map((e) => Infusion.toJSON(e));\n }\n if (message.guildList?.length) {\n obj.guildList = message.guildList.map((e) => Guild.toJSON(e));\n }\n if (message.guildCount !== 0) {\n obj.guildCount = Math.round(message.guildCount);\n }\n if (message.planetList?.length) {\n obj.planetList = message.planetList.map((e) => Planet.toJSON(e));\n }\n if (message.planetCount !== 0) {\n obj.planetCount = Math.round(message.planetCount);\n }\n if (message.playerList?.length) {\n obj.playerList = message.playerList.map((e) => Player.toJSON(e));\n }\n if (message.playerHalted?.length) {\n obj.playerHalted = message.playerHalted;\n }\n if (message.playerCount !== 0) {\n obj.playerCount = Math.round(message.playerCount);\n }\n if (message.providerList?.length) {\n obj.providerList = message.providerList.map((e) => Provider.toJSON(e));\n }\n if (message.providerCount !== 0) {\n obj.providerCount = Math.round(message.providerCount);\n }\n if (message.reactorList?.length) {\n obj.reactorList = message.reactorList.map((e) => Reactor.toJSON(e));\n }\n if (message.reactorCount !== 0) {\n obj.reactorCount = Math.round(message.reactorCount);\n }\n if (message.structList?.length) {\n obj.structList = message.structList.map((e) => Struct.toJSON(e));\n }\n if (message.structCount !== 0) {\n obj.structCount = Math.round(message.structCount);\n }\n if (message.substationList?.length) {\n obj.substationList = message.substationList.map((e) => Substation.toJSON(e));\n }\n if (message.substationCount !== 0) {\n obj.substationCount = Math.round(message.substationCount);\n }\n if (message.permissionList?.length) {\n obj.permissionList = message.permissionList.map((e) => PermissionRecord.toJSON(e));\n }\n if (message.gridList?.length) {\n obj.gridList = message.gridList.map((e) => GridRecord.toJSON(e));\n }\n if (message.addressList?.length) {\n obj.addressList = message.addressList.map((e) => AddressRecord.toJSON(e));\n }\n return obj;\n },\n\n create, I>>(base?: I): GenesisState {\n return GenesisState.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): GenesisState {\n const message = createBaseGenesisState();\n message.params = (object.params !== undefined && object.params !== null)\n ? Params.fromPartial(object.params)\n : undefined;\n message.portId = object.portId ?? \"\";\n message.allocationList = object.allocationList?.map((e) => Allocation.fromPartial(e)) || [];\n message.agreementList = object.agreementList?.map((e) => Agreement.fromPartial(e)) || [];\n message.infusionList = object.infusionList?.map((e) => Infusion.fromPartial(e)) || [];\n message.guildList = object.guildList?.map((e) => Guild.fromPartial(e)) || [];\n message.guildCount = object.guildCount ?? 0;\n message.planetList = object.planetList?.map((e) => Planet.fromPartial(e)) || [];\n message.planetCount = object.planetCount ?? 0;\n message.playerList = object.playerList?.map((e) => Player.fromPartial(e)) || [];\n message.playerHalted = object.playerHalted?.map((e) => e) || [];\n message.playerCount = object.playerCount ?? 0;\n message.providerList = object.providerList?.map((e) => Provider.fromPartial(e)) || [];\n message.providerCount = object.providerCount ?? 0;\n message.reactorList = object.reactorList?.map((e) => Reactor.fromPartial(e)) || [];\n message.reactorCount = object.reactorCount ?? 0;\n message.structList = object.structList?.map((e) => Struct.fromPartial(e)) || [];\n message.structCount = object.structCount ?? 0;\n message.substationList = object.substationList?.map((e) => Substation.fromPartial(e)) || [];\n message.substationCount = object.substationCount ?? 0;\n message.permissionList = object.permissionList?.map((e) => PermissionRecord.fromPartial(e)) || [];\n message.gridList = object.gridList?.map((e) => GridRecord.fromPartial(e)) || [];\n message.addressList = object.addressList?.map((e) => AddressRecord.fromPartial(e)) || [];\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/grid.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface GridRecord {\n attributeId: string;\n value: number;\n}\n\nexport interface GridAttributes {\n ore: number;\n fuel: number;\n capacity: number;\n load: number;\n structsLoad: number;\n power: number;\n connectionCapacity: number;\n connectionCount: number;\n allocationPointerStart: number;\n allocationPointerEnd: number;\n proxyNonce: number;\n lastAction: number;\n nonce: number;\n ready: number;\n checkpointBlock: number;\n}\n\nfunction createBaseGridRecord(): GridRecord {\n return { attributeId: \"\", value: 0 };\n}\n\nexport const GridRecord: MessageFns = {\n encode(message: GridRecord, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.attributeId !== \"\") {\n writer.uint32(10).string(message.attributeId);\n }\n if (message.value !== 0) {\n writer.uint32(16).uint64(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): GridRecord {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGridRecord();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.attributeId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.value = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): GridRecord {\n return {\n attributeId: isSet(object.attributeId) ? globalThis.String(object.attributeId) : \"\",\n value: isSet(object.value) ? globalThis.Number(object.value) : 0,\n };\n },\n\n toJSON(message: GridRecord): unknown {\n const obj: any = {};\n if (message.attributeId !== \"\") {\n obj.attributeId = message.attributeId;\n }\n if (message.value !== 0) {\n obj.value = Math.round(message.value);\n }\n return obj;\n },\n\n create, I>>(base?: I): GridRecord {\n return GridRecord.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): GridRecord {\n const message = createBaseGridRecord();\n message.attributeId = object.attributeId ?? \"\";\n message.value = object.value ?? 0;\n return message;\n },\n};\n\nfunction createBaseGridAttributes(): GridAttributes {\n return {\n ore: 0,\n fuel: 0,\n capacity: 0,\n load: 0,\n structsLoad: 0,\n power: 0,\n connectionCapacity: 0,\n connectionCount: 0,\n allocationPointerStart: 0,\n allocationPointerEnd: 0,\n proxyNonce: 0,\n lastAction: 0,\n nonce: 0,\n ready: 0,\n checkpointBlock: 0,\n };\n}\n\nexport const GridAttributes: MessageFns = {\n encode(message: GridAttributes, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.ore !== 0) {\n writer.uint32(8).uint64(message.ore);\n }\n if (message.fuel !== 0) {\n writer.uint32(16).uint64(message.fuel);\n }\n if (message.capacity !== 0) {\n writer.uint32(24).uint64(message.capacity);\n }\n if (message.load !== 0) {\n writer.uint32(32).uint64(message.load);\n }\n if (message.structsLoad !== 0) {\n writer.uint32(40).uint64(message.structsLoad);\n }\n if (message.power !== 0) {\n writer.uint32(48).uint64(message.power);\n }\n if (message.connectionCapacity !== 0) {\n writer.uint32(56).uint64(message.connectionCapacity);\n }\n if (message.connectionCount !== 0) {\n writer.uint32(64).uint64(message.connectionCount);\n }\n if (message.allocationPointerStart !== 0) {\n writer.uint32(72).uint64(message.allocationPointerStart);\n }\n if (message.allocationPointerEnd !== 0) {\n writer.uint32(80).uint64(message.allocationPointerEnd);\n }\n if (message.proxyNonce !== 0) {\n writer.uint32(88).uint64(message.proxyNonce);\n }\n if (message.lastAction !== 0) {\n writer.uint32(96).uint64(message.lastAction);\n }\n if (message.nonce !== 0) {\n writer.uint32(104).uint64(message.nonce);\n }\n if (message.ready !== 0) {\n writer.uint32(112).uint64(message.ready);\n }\n if (message.checkpointBlock !== 0) {\n writer.uint32(120).uint64(message.checkpointBlock);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): GridAttributes {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGridAttributes();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.ore = longToNumber(reader.uint64());\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.fuel = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.capacity = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.load = longToNumber(reader.uint64());\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.structsLoad = longToNumber(reader.uint64());\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.power = longToNumber(reader.uint64());\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.connectionCapacity = longToNumber(reader.uint64());\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.connectionCount = longToNumber(reader.uint64());\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.allocationPointerStart = longToNumber(reader.uint64());\n continue;\n }\n case 10: {\n if (tag !== 80) {\n break;\n }\n\n message.allocationPointerEnd = longToNumber(reader.uint64());\n continue;\n }\n case 11: {\n if (tag !== 88) {\n break;\n }\n\n message.proxyNonce = longToNumber(reader.uint64());\n continue;\n }\n case 12: {\n if (tag !== 96) {\n break;\n }\n\n message.lastAction = longToNumber(reader.uint64());\n continue;\n }\n case 13: {\n if (tag !== 104) {\n break;\n }\n\n message.nonce = longToNumber(reader.uint64());\n continue;\n }\n case 14: {\n if (tag !== 112) {\n break;\n }\n\n message.ready = longToNumber(reader.uint64());\n continue;\n }\n case 15: {\n if (tag !== 120) {\n break;\n }\n\n message.checkpointBlock = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): GridAttributes {\n return {\n ore: isSet(object.ore) ? globalThis.Number(object.ore) : 0,\n fuel: isSet(object.fuel) ? globalThis.Number(object.fuel) : 0,\n capacity: isSet(object.capacity) ? globalThis.Number(object.capacity) : 0,\n load: isSet(object.load) ? globalThis.Number(object.load) : 0,\n structsLoad: isSet(object.structsLoad) ? globalThis.Number(object.structsLoad) : 0,\n power: isSet(object.power) ? globalThis.Number(object.power) : 0,\n connectionCapacity: isSet(object.connectionCapacity) ? globalThis.Number(object.connectionCapacity) : 0,\n connectionCount: isSet(object.connectionCount) ? globalThis.Number(object.connectionCount) : 0,\n allocationPointerStart: isSet(object.allocationPointerStart)\n ? globalThis.Number(object.allocationPointerStart)\n : 0,\n allocationPointerEnd: isSet(object.allocationPointerEnd) ? globalThis.Number(object.allocationPointerEnd) : 0,\n proxyNonce: isSet(object.proxyNonce) ? globalThis.Number(object.proxyNonce) : 0,\n lastAction: isSet(object.lastAction) ? globalThis.Number(object.lastAction) : 0,\n nonce: isSet(object.nonce) ? globalThis.Number(object.nonce) : 0,\n ready: isSet(object.ready) ? globalThis.Number(object.ready) : 0,\n checkpointBlock: isSet(object.checkpointBlock) ? globalThis.Number(object.checkpointBlock) : 0,\n };\n },\n\n toJSON(message: GridAttributes): unknown {\n const obj: any = {};\n if (message.ore !== 0) {\n obj.ore = Math.round(message.ore);\n }\n if (message.fuel !== 0) {\n obj.fuel = Math.round(message.fuel);\n }\n if (message.capacity !== 0) {\n obj.capacity = Math.round(message.capacity);\n }\n if (message.load !== 0) {\n obj.load = Math.round(message.load);\n }\n if (message.structsLoad !== 0) {\n obj.structsLoad = Math.round(message.structsLoad);\n }\n if (message.power !== 0) {\n obj.power = Math.round(message.power);\n }\n if (message.connectionCapacity !== 0) {\n obj.connectionCapacity = Math.round(message.connectionCapacity);\n }\n if (message.connectionCount !== 0) {\n obj.connectionCount = Math.round(message.connectionCount);\n }\n if (message.allocationPointerStart !== 0) {\n obj.allocationPointerStart = Math.round(message.allocationPointerStart);\n }\n if (message.allocationPointerEnd !== 0) {\n obj.allocationPointerEnd = Math.round(message.allocationPointerEnd);\n }\n if (message.proxyNonce !== 0) {\n obj.proxyNonce = Math.round(message.proxyNonce);\n }\n if (message.lastAction !== 0) {\n obj.lastAction = Math.round(message.lastAction);\n }\n if (message.nonce !== 0) {\n obj.nonce = Math.round(message.nonce);\n }\n if (message.ready !== 0) {\n obj.ready = Math.round(message.ready);\n }\n if (message.checkpointBlock !== 0) {\n obj.checkpointBlock = Math.round(message.checkpointBlock);\n }\n return obj;\n },\n\n create, I>>(base?: I): GridAttributes {\n return GridAttributes.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): GridAttributes {\n const message = createBaseGridAttributes();\n message.ore = object.ore ?? 0;\n message.fuel = object.fuel ?? 0;\n message.capacity = object.capacity ?? 0;\n message.load = object.load ?? 0;\n message.structsLoad = object.structsLoad ?? 0;\n message.power = object.power ?? 0;\n message.connectionCapacity = object.connectionCapacity ?? 0;\n message.connectionCount = object.connectionCount ?? 0;\n message.allocationPointerStart = object.allocationPointerStart ?? 0;\n message.allocationPointerEnd = object.allocationPointerEnd ?? 0;\n message.proxyNonce = object.proxyNonce ?? 0;\n message.lastAction = object.lastAction ?? 0;\n message.nonce = object.nonce ?? 0;\n message.ready = object.ready ?? 0;\n message.checkpointBlock = object.checkpointBlock ?? 0;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/guild.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport {\n guildJoinBypassLevel,\n guildJoinBypassLevelFromJSON,\n guildJoinBypassLevelToJSON,\n guildJoinType,\n guildJoinTypeFromJSON,\n guildJoinTypeToJSON,\n registrationStatus,\n registrationStatusFromJSON,\n registrationStatusToJSON,\n} from \"./keys\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface Guild {\n id: string;\n index: number;\n endpoint: string;\n creator: string;\n owner: string;\n joinInfusionMinimum: number;\n joinInfusionMinimumBypassByRequest: guildJoinBypassLevel;\n joinInfusionMinimumBypassByInvite: guildJoinBypassLevel;\n primaryReactorId: string;\n entrySubstationId: string;\n}\n\nexport interface GuildMembershipApplication {\n guildId: string;\n playerId: string;\n /** Invite | Request */\n joinType: guildJoinType;\n registrationStatus: registrationStatus;\n proposer: string;\n substationId: string;\n}\n\nfunction createBaseGuild(): Guild {\n return {\n id: \"\",\n index: 0,\n endpoint: \"\",\n creator: \"\",\n owner: \"\",\n joinInfusionMinimum: 0,\n joinInfusionMinimumBypassByRequest: 0,\n joinInfusionMinimumBypassByInvite: 0,\n primaryReactorId: \"\",\n entrySubstationId: \"\",\n };\n}\n\nexport const Guild: MessageFns = {\n encode(message: Guild, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.index !== 0) {\n writer.uint32(16).uint64(message.index);\n }\n if (message.endpoint !== \"\") {\n writer.uint32(26).string(message.endpoint);\n }\n if (message.creator !== \"\") {\n writer.uint32(34).string(message.creator);\n }\n if (message.owner !== \"\") {\n writer.uint32(42).string(message.owner);\n }\n if (message.joinInfusionMinimum !== 0) {\n writer.uint32(48).uint64(message.joinInfusionMinimum);\n }\n if (message.joinInfusionMinimumBypassByRequest !== 0) {\n writer.uint32(56).int32(message.joinInfusionMinimumBypassByRequest);\n }\n if (message.joinInfusionMinimumBypassByInvite !== 0) {\n writer.uint32(64).int32(message.joinInfusionMinimumBypassByInvite);\n }\n if (message.primaryReactorId !== \"\") {\n writer.uint32(74).string(message.primaryReactorId);\n }\n if (message.entrySubstationId !== \"\") {\n writer.uint32(82).string(message.entrySubstationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Guild {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGuild();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.index = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.endpoint = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.owner = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.joinInfusionMinimum = longToNumber(reader.uint64());\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.joinInfusionMinimumBypassByRequest = reader.int32() as any;\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.joinInfusionMinimumBypassByInvite = reader.int32() as any;\n continue;\n }\n case 9: {\n if (tag !== 74) {\n break;\n }\n\n message.primaryReactorId = reader.string();\n continue;\n }\n case 10: {\n if (tag !== 82) {\n break;\n }\n\n message.entrySubstationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Guild {\n return {\n id: isSet(object.id) ? globalThis.String(object.id) : \"\",\n index: isSet(object.index) ? globalThis.Number(object.index) : 0,\n endpoint: isSet(object.endpoint) ? globalThis.String(object.endpoint) : \"\",\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n owner: isSet(object.owner) ? globalThis.String(object.owner) : \"\",\n joinInfusionMinimum: isSet(object.joinInfusionMinimum) ? globalThis.Number(object.joinInfusionMinimum) : 0,\n joinInfusionMinimumBypassByRequest: isSet(object.joinInfusionMinimumBypassByRequest)\n ? guildJoinBypassLevelFromJSON(object.joinInfusionMinimumBypassByRequest)\n : 0,\n joinInfusionMinimumBypassByInvite: isSet(object.joinInfusionMinimumBypassByInvite)\n ? guildJoinBypassLevelFromJSON(object.joinInfusionMinimumBypassByInvite)\n : 0,\n primaryReactorId: isSet(object.primaryReactorId) ? globalThis.String(object.primaryReactorId) : \"\",\n entrySubstationId: isSet(object.entrySubstationId) ? globalThis.String(object.entrySubstationId) : \"\",\n };\n },\n\n toJSON(message: Guild): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n if (message.index !== 0) {\n obj.index = Math.round(message.index);\n }\n if (message.endpoint !== \"\") {\n obj.endpoint = message.endpoint;\n }\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.owner !== \"\") {\n obj.owner = message.owner;\n }\n if (message.joinInfusionMinimum !== 0) {\n obj.joinInfusionMinimum = Math.round(message.joinInfusionMinimum);\n }\n if (message.joinInfusionMinimumBypassByRequest !== 0) {\n obj.joinInfusionMinimumBypassByRequest = guildJoinBypassLevelToJSON(message.joinInfusionMinimumBypassByRequest);\n }\n if (message.joinInfusionMinimumBypassByInvite !== 0) {\n obj.joinInfusionMinimumBypassByInvite = guildJoinBypassLevelToJSON(message.joinInfusionMinimumBypassByInvite);\n }\n if (message.primaryReactorId !== \"\") {\n obj.primaryReactorId = message.primaryReactorId;\n }\n if (message.entrySubstationId !== \"\") {\n obj.entrySubstationId = message.entrySubstationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): Guild {\n return Guild.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Guild {\n const message = createBaseGuild();\n message.id = object.id ?? \"\";\n message.index = object.index ?? 0;\n message.endpoint = object.endpoint ?? \"\";\n message.creator = object.creator ?? \"\";\n message.owner = object.owner ?? \"\";\n message.joinInfusionMinimum = object.joinInfusionMinimum ?? 0;\n message.joinInfusionMinimumBypassByRequest = object.joinInfusionMinimumBypassByRequest ?? 0;\n message.joinInfusionMinimumBypassByInvite = object.joinInfusionMinimumBypassByInvite ?? 0;\n message.primaryReactorId = object.primaryReactorId ?? \"\";\n message.entrySubstationId = object.entrySubstationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseGuildMembershipApplication(): GuildMembershipApplication {\n return { guildId: \"\", playerId: \"\", joinType: 0, registrationStatus: 0, proposer: \"\", substationId: \"\" };\n}\n\nexport const GuildMembershipApplication: MessageFns = {\n encode(message: GuildMembershipApplication, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.guildId !== \"\") {\n writer.uint32(10).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(18).string(message.playerId);\n }\n if (message.joinType !== 0) {\n writer.uint32(24).int32(message.joinType);\n }\n if (message.registrationStatus !== 0) {\n writer.uint32(32).int32(message.registrationStatus);\n }\n if (message.proposer !== \"\") {\n writer.uint32(42).string(message.proposer);\n }\n if (message.substationId !== \"\") {\n writer.uint32(50).string(message.substationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): GuildMembershipApplication {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGuildMembershipApplication();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.joinType = reader.int32() as any;\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.registrationStatus = reader.int32() as any;\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.proposer = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): GuildMembershipApplication {\n return {\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n joinType: isSet(object.joinType) ? guildJoinTypeFromJSON(object.joinType) : 0,\n registrationStatus: isSet(object.registrationStatus) ? registrationStatusFromJSON(object.registrationStatus) : 0,\n proposer: isSet(object.proposer) ? globalThis.String(object.proposer) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n };\n },\n\n toJSON(message: GuildMembershipApplication): unknown {\n const obj: any = {};\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.joinType !== 0) {\n obj.joinType = guildJoinTypeToJSON(message.joinType);\n }\n if (message.registrationStatus !== 0) {\n obj.registrationStatus = registrationStatusToJSON(message.registrationStatus);\n }\n if (message.proposer !== \"\") {\n obj.proposer = message.proposer;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): GuildMembershipApplication {\n return GuildMembershipApplication.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): GuildMembershipApplication {\n const message = createBaseGuildMembershipApplication();\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.joinType = object.joinType ?? 0;\n message.registrationStatus = object.registrationStatus ?? 0;\n message.proposer = object.proposer ?? \"\";\n message.substationId = object.substationId ?? \"\";\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/infusion.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { objectType, objectTypeFromJSON, objectTypeToJSON } from \"./keys\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface Infusion {\n destinationType: objectType;\n destinationId: string;\n fuel: number;\n power: number;\n commission: string;\n playerId: string;\n address: string;\n ratio: number;\n defusing: number;\n}\n\nfunction createBaseInfusion(): Infusion {\n return {\n destinationType: 0,\n destinationId: \"\",\n fuel: 0,\n power: 0,\n commission: \"\",\n playerId: \"\",\n address: \"\",\n ratio: 0,\n defusing: 0,\n };\n}\n\nexport const Infusion: MessageFns = {\n encode(message: Infusion, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.destinationType !== 0) {\n writer.uint32(8).int32(message.destinationType);\n }\n if (message.destinationId !== \"\") {\n writer.uint32(18).string(message.destinationId);\n }\n if (message.fuel !== 0) {\n writer.uint32(24).uint64(message.fuel);\n }\n if (message.power !== 0) {\n writer.uint32(32).uint64(message.power);\n }\n if (message.commission !== \"\") {\n writer.uint32(42).string(message.commission);\n }\n if (message.playerId !== \"\") {\n writer.uint32(50).string(message.playerId);\n }\n if (message.address !== \"\") {\n writer.uint32(58).string(message.address);\n }\n if (message.ratio !== 0) {\n writer.uint32(64).uint64(message.ratio);\n }\n if (message.defusing !== 0) {\n writer.uint32(72).uint64(message.defusing);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Infusion {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseInfusion();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.destinationType = reader.int32() as any;\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.destinationId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.fuel = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.power = longToNumber(reader.uint64());\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.commission = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.ratio = longToNumber(reader.uint64());\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.defusing = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Infusion {\n return {\n destinationType: isSet(object.destinationType) ? objectTypeFromJSON(object.destinationType) : 0,\n destinationId: isSet(object.destinationId) ? globalThis.String(object.destinationId) : \"\",\n fuel: isSet(object.fuel) ? globalThis.Number(object.fuel) : 0,\n power: isSet(object.power) ? globalThis.Number(object.power) : 0,\n commission: isSet(object.commission) ? globalThis.String(object.commission) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n ratio: isSet(object.ratio) ? globalThis.Number(object.ratio) : 0,\n defusing: isSet(object.defusing) ? globalThis.Number(object.defusing) : 0,\n };\n },\n\n toJSON(message: Infusion): unknown {\n const obj: any = {};\n if (message.destinationType !== 0) {\n obj.destinationType = objectTypeToJSON(message.destinationType);\n }\n if (message.destinationId !== \"\") {\n obj.destinationId = message.destinationId;\n }\n if (message.fuel !== 0) {\n obj.fuel = Math.round(message.fuel);\n }\n if (message.power !== 0) {\n obj.power = Math.round(message.power);\n }\n if (message.commission !== \"\") {\n obj.commission = message.commission;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.ratio !== 0) {\n obj.ratio = Math.round(message.ratio);\n }\n if (message.defusing !== 0) {\n obj.defusing = Math.round(message.defusing);\n }\n return obj;\n },\n\n create, I>>(base?: I): Infusion {\n return Infusion.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Infusion {\n const message = createBaseInfusion();\n message.destinationType = object.destinationType ?? 0;\n message.destinationId = object.destinationId ?? \"\";\n message.fuel = object.fuel ?? 0;\n message.power = object.power ?? 0;\n message.commission = object.commission ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.address = object.address ?? \"\";\n message.ratio = object.ratio ?? 0;\n message.defusing = object.defusing ?? 0;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/keys.proto\n\n/* eslint-disable */\n\nexport const protobufPackage = \"structs.structs\";\n\nexport enum objectType {\n guild = 0,\n player = 1,\n planet = 2,\n reactor = 3,\n substation = 4,\n struct = 5,\n allocation = 6,\n infusion = 7,\n address = 8,\n fleet = 9,\n provider = 10,\n agreement = 11,\n UNRECOGNIZED = -1,\n}\n\nexport function objectTypeFromJSON(object: any): objectType {\n switch (object) {\n case 0:\n case \"guild\":\n return objectType.guild;\n case 1:\n case \"player\":\n return objectType.player;\n case 2:\n case \"planet\":\n return objectType.planet;\n case 3:\n case \"reactor\":\n return objectType.reactor;\n case 4:\n case \"substation\":\n return objectType.substation;\n case 5:\n case \"struct\":\n return objectType.struct;\n case 6:\n case \"allocation\":\n return objectType.allocation;\n case 7:\n case \"infusion\":\n return objectType.infusion;\n case 8:\n case \"address\":\n return objectType.address;\n case 9:\n case \"fleet\":\n return objectType.fleet;\n case 10:\n case \"provider\":\n return objectType.provider;\n case 11:\n case \"agreement\":\n return objectType.agreement;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return objectType.UNRECOGNIZED;\n }\n}\n\nexport function objectTypeToJSON(object: objectType): string {\n switch (object) {\n case objectType.guild:\n return \"guild\";\n case objectType.player:\n return \"player\";\n case objectType.planet:\n return \"planet\";\n case objectType.reactor:\n return \"reactor\";\n case objectType.substation:\n return \"substation\";\n case objectType.struct:\n return \"struct\";\n case objectType.allocation:\n return \"allocation\";\n case objectType.infusion:\n return \"infusion\";\n case objectType.address:\n return \"address\";\n case objectType.fleet:\n return \"fleet\";\n case objectType.provider:\n return \"provider\";\n case objectType.agreement:\n return \"agreement\";\n case objectType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum gridAttributeType {\n ore = 0,\n fuel = 1,\n capacity = 2,\n load = 3,\n structsLoad = 4,\n power = 5,\n connectionCapacity = 6,\n connectionCount = 7,\n allocationPointerStart = 8,\n allocationPointerEnd = 9,\n proxyNonce = 10,\n lastAction = 11,\n nonce = 12,\n ready = 13,\n checkpointBlock = 14,\n UNRECOGNIZED = -1,\n}\n\nexport function gridAttributeTypeFromJSON(object: any): gridAttributeType {\n switch (object) {\n case 0:\n case \"ore\":\n return gridAttributeType.ore;\n case 1:\n case \"fuel\":\n return gridAttributeType.fuel;\n case 2:\n case \"capacity\":\n return gridAttributeType.capacity;\n case 3:\n case \"load\":\n return gridAttributeType.load;\n case 4:\n case \"structsLoad\":\n return gridAttributeType.structsLoad;\n case 5:\n case \"power\":\n return gridAttributeType.power;\n case 6:\n case \"connectionCapacity\":\n return gridAttributeType.connectionCapacity;\n case 7:\n case \"connectionCount\":\n return gridAttributeType.connectionCount;\n case 8:\n case \"allocationPointerStart\":\n return gridAttributeType.allocationPointerStart;\n case 9:\n case \"allocationPointerEnd\":\n return gridAttributeType.allocationPointerEnd;\n case 10:\n case \"proxyNonce\":\n return gridAttributeType.proxyNonce;\n case 11:\n case \"lastAction\":\n return gridAttributeType.lastAction;\n case 12:\n case \"nonce\":\n return gridAttributeType.nonce;\n case 13:\n case \"ready\":\n return gridAttributeType.ready;\n case 14:\n case \"checkpointBlock\":\n return gridAttributeType.checkpointBlock;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return gridAttributeType.UNRECOGNIZED;\n }\n}\n\nexport function gridAttributeTypeToJSON(object: gridAttributeType): string {\n switch (object) {\n case gridAttributeType.ore:\n return \"ore\";\n case gridAttributeType.fuel:\n return \"fuel\";\n case gridAttributeType.capacity:\n return \"capacity\";\n case gridAttributeType.load:\n return \"load\";\n case gridAttributeType.structsLoad:\n return \"structsLoad\";\n case gridAttributeType.power:\n return \"power\";\n case gridAttributeType.connectionCapacity:\n return \"connectionCapacity\";\n case gridAttributeType.connectionCount:\n return \"connectionCount\";\n case gridAttributeType.allocationPointerStart:\n return \"allocationPointerStart\";\n case gridAttributeType.allocationPointerEnd:\n return \"allocationPointerEnd\";\n case gridAttributeType.proxyNonce:\n return \"proxyNonce\";\n case gridAttributeType.lastAction:\n return \"lastAction\";\n case gridAttributeType.nonce:\n return \"nonce\";\n case gridAttributeType.ready:\n return \"ready\";\n case gridAttributeType.checkpointBlock:\n return \"checkpointBlock\";\n case gridAttributeType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum allocationType {\n static = 0,\n dynamic = 1,\n automated = 2,\n providerAgreement = 3,\n UNRECOGNIZED = -1,\n}\n\nexport function allocationTypeFromJSON(object: any): allocationType {\n switch (object) {\n case 0:\n case \"static\":\n return allocationType.static;\n case 1:\n case \"dynamic\":\n return allocationType.dynamic;\n case 2:\n case \"automated\":\n return allocationType.automated;\n case 3:\n case \"providerAgreement\":\n return allocationType.providerAgreement;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return allocationType.UNRECOGNIZED;\n }\n}\n\nexport function allocationTypeToJSON(object: allocationType): string {\n switch (object) {\n case allocationType.static:\n return \"static\";\n case allocationType.dynamic:\n return \"dynamic\";\n case allocationType.automated:\n return \"automated\";\n case allocationType.providerAgreement:\n return \"providerAgreement\";\n case allocationType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum guildJoinBypassLevel {\n /** closed - Feature off */\n closed = 0,\n /** permissioned - Only those with permissions can do it */\n permissioned = 1,\n /** member - All members of the guild can contribute */\n member = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function guildJoinBypassLevelFromJSON(object: any): guildJoinBypassLevel {\n switch (object) {\n case 0:\n case \"closed\":\n return guildJoinBypassLevel.closed;\n case 1:\n case \"permissioned\":\n return guildJoinBypassLevel.permissioned;\n case 2:\n case \"member\":\n return guildJoinBypassLevel.member;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return guildJoinBypassLevel.UNRECOGNIZED;\n }\n}\n\nexport function guildJoinBypassLevelToJSON(object: guildJoinBypassLevel): string {\n switch (object) {\n case guildJoinBypassLevel.closed:\n return \"closed\";\n case guildJoinBypassLevel.permissioned:\n return \"permissioned\";\n case guildJoinBypassLevel.member:\n return \"member\";\n case guildJoinBypassLevel.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum guildJoinType {\n invite = 0,\n request = 1,\n direct = 2,\n proxy = 3,\n UNRECOGNIZED = -1,\n}\n\nexport function guildJoinTypeFromJSON(object: any): guildJoinType {\n switch (object) {\n case 0:\n case \"invite\":\n return guildJoinType.invite;\n case 1:\n case \"request\":\n return guildJoinType.request;\n case 2:\n case \"direct\":\n return guildJoinType.direct;\n case 3:\n case \"proxy\":\n return guildJoinType.proxy;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return guildJoinType.UNRECOGNIZED;\n }\n}\n\nexport function guildJoinTypeToJSON(object: guildJoinType): string {\n switch (object) {\n case guildJoinType.invite:\n return \"invite\";\n case guildJoinType.request:\n return \"request\";\n case guildJoinType.direct:\n return \"direct\";\n case guildJoinType.proxy:\n return \"proxy\";\n case guildJoinType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum registrationStatus {\n proposed = 0,\n approved = 1,\n denied = 2,\n revoked = 3,\n UNRECOGNIZED = -1,\n}\n\nexport function registrationStatusFromJSON(object: any): registrationStatus {\n switch (object) {\n case 0:\n case \"proposed\":\n return registrationStatus.proposed;\n case 1:\n case \"approved\":\n return registrationStatus.approved;\n case 2:\n case \"denied\":\n return registrationStatus.denied;\n case 3:\n case \"revoked\":\n return registrationStatus.revoked;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return registrationStatus.UNRECOGNIZED;\n }\n}\n\nexport function registrationStatusToJSON(object: registrationStatus): string {\n switch (object) {\n case registrationStatus.proposed:\n return \"proposed\";\n case registrationStatus.approved:\n return \"approved\";\n case registrationStatus.denied:\n return \"denied\";\n case registrationStatus.revoked:\n return \"revoked\";\n case registrationStatus.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum ambit {\n none = 0,\n water = 1,\n land = 2,\n air = 3,\n space = 4,\n local = 5,\n UNRECOGNIZED = -1,\n}\n\nexport function ambitFromJSON(object: any): ambit {\n switch (object) {\n case 0:\n case \"none\":\n return ambit.none;\n case 1:\n case \"water\":\n return ambit.water;\n case 2:\n case \"land\":\n return ambit.land;\n case 3:\n case \"air\":\n return ambit.air;\n case 4:\n case \"space\":\n return ambit.space;\n case 5:\n case \"local\":\n return ambit.local;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ambit.UNRECOGNIZED;\n }\n}\n\nexport function ambitToJSON(object: ambit): string {\n switch (object) {\n case ambit.none:\n return \"none\";\n case ambit.water:\n return \"water\";\n case ambit.land:\n return \"land\";\n case ambit.air:\n return \"air\";\n case ambit.space:\n return \"space\";\n case ambit.local:\n return \"local\";\n case ambit.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum raidStatus {\n initiated = 0,\n ongoing = 2,\n attackerDefeated = 1,\n attackerRetreated = 5,\n raidSuccessful = 3,\n demilitarized = 4,\n UNRECOGNIZED = -1,\n}\n\nexport function raidStatusFromJSON(object: any): raidStatus {\n switch (object) {\n case 0:\n case \"initiated\":\n return raidStatus.initiated;\n case 2:\n case \"ongoing\":\n return raidStatus.ongoing;\n case 1:\n case \"attackerDefeated\":\n return raidStatus.attackerDefeated;\n case 5:\n case \"attackerRetreated\":\n return raidStatus.attackerRetreated;\n case 3:\n case \"raidSuccessful\":\n return raidStatus.raidSuccessful;\n case 4:\n case \"demilitarized\":\n return raidStatus.demilitarized;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return raidStatus.UNRECOGNIZED;\n }\n}\n\nexport function raidStatusToJSON(object: raidStatus): string {\n switch (object) {\n case raidStatus.initiated:\n return \"initiated\";\n case raidStatus.ongoing:\n return \"ongoing\";\n case raidStatus.attackerDefeated:\n return \"attackerDefeated\";\n case raidStatus.attackerRetreated:\n return \"attackerRetreated\";\n case raidStatus.raidSuccessful:\n return \"raidSuccessful\";\n case raidStatus.demilitarized:\n return \"demilitarized\";\n case raidStatus.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum planetStatus {\n active = 0,\n complete = 1,\n UNRECOGNIZED = -1,\n}\n\nexport function planetStatusFromJSON(object: any): planetStatus {\n switch (object) {\n case 0:\n case \"active\":\n return planetStatus.active;\n case 1:\n case \"complete\":\n return planetStatus.complete;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return planetStatus.UNRECOGNIZED;\n }\n}\n\nexport function planetStatusToJSON(object: planetStatus): string {\n switch (object) {\n case planetStatus.active:\n return \"active\";\n case planetStatus.complete:\n return \"complete\";\n case planetStatus.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum fleetStatus {\n onStation = 0,\n away = 1,\n UNRECOGNIZED = -1,\n}\n\nexport function fleetStatusFromJSON(object: any): fleetStatus {\n switch (object) {\n case 0:\n case \"onStation\":\n return fleetStatus.onStation;\n case 1:\n case \"away\":\n return fleetStatus.away;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return fleetStatus.UNRECOGNIZED;\n }\n}\n\nexport function fleetStatusToJSON(object: fleetStatus): string {\n switch (object) {\n case fleetStatus.onStation:\n return \"onStation\";\n case fleetStatus.away:\n return \"away\";\n case fleetStatus.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum structAttributeType {\n health = 0,\n status = 1,\n blockStartBuild = 2,\n blockStartOreMine = 3,\n blockStartOreRefine = 4,\n protectedStructIndex = 5,\n typeCount = 6,\n UNRECOGNIZED = -1,\n}\n\nexport function structAttributeTypeFromJSON(object: any): structAttributeType {\n switch (object) {\n case 0:\n case \"health\":\n return structAttributeType.health;\n case 1:\n case \"status\":\n return structAttributeType.status;\n case 2:\n case \"blockStartBuild\":\n return structAttributeType.blockStartBuild;\n case 3:\n case \"blockStartOreMine\":\n return structAttributeType.blockStartOreMine;\n case 4:\n case \"blockStartOreRefine\":\n return structAttributeType.blockStartOreRefine;\n case 5:\n case \"protectedStructIndex\":\n return structAttributeType.protectedStructIndex;\n case 6:\n case \"typeCount\":\n return structAttributeType.typeCount;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return structAttributeType.UNRECOGNIZED;\n }\n}\n\nexport function structAttributeTypeToJSON(object: structAttributeType): string {\n switch (object) {\n case structAttributeType.health:\n return \"health\";\n case structAttributeType.status:\n return \"status\";\n case structAttributeType.blockStartBuild:\n return \"blockStartBuild\";\n case structAttributeType.blockStartOreMine:\n return \"blockStartOreMine\";\n case structAttributeType.blockStartOreRefine:\n return \"blockStartOreRefine\";\n case structAttributeType.protectedStructIndex:\n return \"protectedStructIndex\";\n case structAttributeType.typeCount:\n return \"typeCount\";\n case structAttributeType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum planetAttributeType {\n planetaryShield = 0,\n repairNetworkQuantity = 1,\n defensiveCannonQuantity = 2,\n coordinatedGlobalShieldNetworkQuantity = 3,\n lowOrbitBallisticsInterceptorNetworkQuantity = 4,\n advancedLowOrbitBallisticsInterceptorNetworkQuantity = 5,\n lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator = 6,\n lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator = 7,\n orbitalJammingStationQuantity = 8,\n advancedOrbitalJammingStationQuantity = 9,\n blockStartRaid = 10,\n UNRECOGNIZED = -1,\n}\n\nexport function planetAttributeTypeFromJSON(object: any): planetAttributeType {\n switch (object) {\n case 0:\n case \"planetaryShield\":\n return planetAttributeType.planetaryShield;\n case 1:\n case \"repairNetworkQuantity\":\n return planetAttributeType.repairNetworkQuantity;\n case 2:\n case \"defensiveCannonQuantity\":\n return planetAttributeType.defensiveCannonQuantity;\n case 3:\n case \"coordinatedGlobalShieldNetworkQuantity\":\n return planetAttributeType.coordinatedGlobalShieldNetworkQuantity;\n case 4:\n case \"lowOrbitBallisticsInterceptorNetworkQuantity\":\n return planetAttributeType.lowOrbitBallisticsInterceptorNetworkQuantity;\n case 5:\n case \"advancedLowOrbitBallisticsInterceptorNetworkQuantity\":\n return planetAttributeType.advancedLowOrbitBallisticsInterceptorNetworkQuantity;\n case 6:\n case \"lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator\":\n return planetAttributeType.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator;\n case 7:\n case \"lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator\":\n return planetAttributeType.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator;\n case 8:\n case \"orbitalJammingStationQuantity\":\n return planetAttributeType.orbitalJammingStationQuantity;\n case 9:\n case \"advancedOrbitalJammingStationQuantity\":\n return planetAttributeType.advancedOrbitalJammingStationQuantity;\n case 10:\n case \"blockStartRaid\":\n return planetAttributeType.blockStartRaid;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return planetAttributeType.UNRECOGNIZED;\n }\n}\n\nexport function planetAttributeTypeToJSON(object: planetAttributeType): string {\n switch (object) {\n case planetAttributeType.planetaryShield:\n return \"planetaryShield\";\n case planetAttributeType.repairNetworkQuantity:\n return \"repairNetworkQuantity\";\n case planetAttributeType.defensiveCannonQuantity:\n return \"defensiveCannonQuantity\";\n case planetAttributeType.coordinatedGlobalShieldNetworkQuantity:\n return \"coordinatedGlobalShieldNetworkQuantity\";\n case planetAttributeType.lowOrbitBallisticsInterceptorNetworkQuantity:\n return \"lowOrbitBallisticsInterceptorNetworkQuantity\";\n case planetAttributeType.advancedLowOrbitBallisticsInterceptorNetworkQuantity:\n return \"advancedLowOrbitBallisticsInterceptorNetworkQuantity\";\n case planetAttributeType.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator:\n return \"lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator\";\n case planetAttributeType.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator:\n return \"lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator\";\n case planetAttributeType.orbitalJammingStationQuantity:\n return \"orbitalJammingStationQuantity\";\n case planetAttributeType.advancedOrbitalJammingStationQuantity:\n return \"advancedOrbitalJammingStationQuantity\";\n case planetAttributeType.blockStartRaid:\n return \"blockStartRaid\";\n case planetAttributeType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum techWeaponSystem {\n primaryWeapon = 0,\n secondaryWeapon = 1,\n UNRECOGNIZED = -1,\n}\n\nexport function techWeaponSystemFromJSON(object: any): techWeaponSystem {\n switch (object) {\n case 0:\n case \"primaryWeapon\":\n return techWeaponSystem.primaryWeapon;\n case 1:\n case \"secondaryWeapon\":\n return techWeaponSystem.secondaryWeapon;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return techWeaponSystem.UNRECOGNIZED;\n }\n}\n\nexport function techWeaponSystemToJSON(object: techWeaponSystem): string {\n switch (object) {\n case techWeaponSystem.primaryWeapon:\n return \"primaryWeapon\";\n case techWeaponSystem.secondaryWeapon:\n return \"secondaryWeapon\";\n case techWeaponSystem.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum techWeaponControl {\n noWeaponControl = 0,\n guided = 1,\n unguided = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function techWeaponControlFromJSON(object: any): techWeaponControl {\n switch (object) {\n case 0:\n case \"noWeaponControl\":\n return techWeaponControl.noWeaponControl;\n case 1:\n case \"guided\":\n return techWeaponControl.guided;\n case 2:\n case \"unguided\":\n return techWeaponControl.unguided;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return techWeaponControl.UNRECOGNIZED;\n }\n}\n\nexport function techWeaponControlToJSON(object: techWeaponControl): string {\n switch (object) {\n case techWeaponControl.noWeaponControl:\n return \"noWeaponControl\";\n case techWeaponControl.guided:\n return \"guided\";\n case techWeaponControl.unguided:\n return \"unguided\";\n case techWeaponControl.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum techActiveWeaponry {\n noActiveWeaponry = 0,\n guidedWeaponry = 1,\n unguidedWeaponry = 2,\n attackRun = 3,\n selfDestruct = 4,\n UNRECOGNIZED = -1,\n}\n\nexport function techActiveWeaponryFromJSON(object: any): techActiveWeaponry {\n switch (object) {\n case 0:\n case \"noActiveWeaponry\":\n return techActiveWeaponry.noActiveWeaponry;\n case 1:\n case \"guidedWeaponry\":\n return techActiveWeaponry.guidedWeaponry;\n case 2:\n case \"unguidedWeaponry\":\n return techActiveWeaponry.unguidedWeaponry;\n case 3:\n case \"attackRun\":\n return techActiveWeaponry.attackRun;\n case 4:\n case \"selfDestruct\":\n return techActiveWeaponry.selfDestruct;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return techActiveWeaponry.UNRECOGNIZED;\n }\n}\n\nexport function techActiveWeaponryToJSON(object: techActiveWeaponry): string {\n switch (object) {\n case techActiveWeaponry.noActiveWeaponry:\n return \"noActiveWeaponry\";\n case techActiveWeaponry.guidedWeaponry:\n return \"guidedWeaponry\";\n case techActiveWeaponry.unguidedWeaponry:\n return \"unguidedWeaponry\";\n case techActiveWeaponry.attackRun:\n return \"attackRun\";\n case techActiveWeaponry.selfDestruct:\n return \"selfDestruct\";\n case techActiveWeaponry.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum techPassiveWeaponry {\n noPassiveWeaponry = 0,\n counterAttack = 1,\n strongCounterAttack = 2,\n advancedCounterAttack = 3,\n lastResort = 4,\n UNRECOGNIZED = -1,\n}\n\nexport function techPassiveWeaponryFromJSON(object: any): techPassiveWeaponry {\n switch (object) {\n case 0:\n case \"noPassiveWeaponry\":\n return techPassiveWeaponry.noPassiveWeaponry;\n case 1:\n case \"counterAttack\":\n return techPassiveWeaponry.counterAttack;\n case 2:\n case \"strongCounterAttack\":\n return techPassiveWeaponry.strongCounterAttack;\n case 3:\n case \"advancedCounterAttack\":\n return techPassiveWeaponry.advancedCounterAttack;\n case 4:\n case \"lastResort\":\n return techPassiveWeaponry.lastResort;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return techPassiveWeaponry.UNRECOGNIZED;\n }\n}\n\nexport function techPassiveWeaponryToJSON(object: techPassiveWeaponry): string {\n switch (object) {\n case techPassiveWeaponry.noPassiveWeaponry:\n return \"noPassiveWeaponry\";\n case techPassiveWeaponry.counterAttack:\n return \"counterAttack\";\n case techPassiveWeaponry.strongCounterAttack:\n return \"strongCounterAttack\";\n case techPassiveWeaponry.advancedCounterAttack:\n return \"advancedCounterAttack\";\n case techPassiveWeaponry.lastResort:\n return \"lastResort\";\n case techPassiveWeaponry.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum techUnitDefenses {\n noUnitDefenses = 0,\n defensiveManeuver = 1,\n signalJamming = 2,\n armour = 3,\n indirectCombatModule = 4,\n stealthMode = 5,\n perimeterFencing = 6,\n reinforcedWalls = 7,\n UNRECOGNIZED = -1,\n}\n\nexport function techUnitDefensesFromJSON(object: any): techUnitDefenses {\n switch (object) {\n case 0:\n case \"noUnitDefenses\":\n return techUnitDefenses.noUnitDefenses;\n case 1:\n case \"defensiveManeuver\":\n return techUnitDefenses.defensiveManeuver;\n case 2:\n case \"signalJamming\":\n return techUnitDefenses.signalJamming;\n case 3:\n case \"armour\":\n return techUnitDefenses.armour;\n case 4:\n case \"indirectCombatModule\":\n return techUnitDefenses.indirectCombatModule;\n case 5:\n case \"stealthMode\":\n return techUnitDefenses.stealthMode;\n case 6:\n case \"perimeterFencing\":\n return techUnitDefenses.perimeterFencing;\n case 7:\n case \"reinforcedWalls\":\n return techUnitDefenses.reinforcedWalls;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return techUnitDefenses.UNRECOGNIZED;\n }\n}\n\nexport function techUnitDefensesToJSON(object: techUnitDefenses): string {\n switch (object) {\n case techUnitDefenses.noUnitDefenses:\n return \"noUnitDefenses\";\n case techUnitDefenses.defensiveManeuver:\n return \"defensiveManeuver\";\n case techUnitDefenses.signalJamming:\n return \"signalJamming\";\n case techUnitDefenses.armour:\n return \"armour\";\n case techUnitDefenses.indirectCombatModule:\n return \"indirectCombatModule\";\n case techUnitDefenses.stealthMode:\n return \"stealthMode\";\n case techUnitDefenses.perimeterFencing:\n return \"perimeterFencing\";\n case techUnitDefenses.reinforcedWalls:\n return \"reinforcedWalls\";\n case techUnitDefenses.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum techOreReserveDefenses {\n noOreReserveDefenses = 0,\n coordinatedReserveResponseTracker = 1,\n rapidResponsePackage = 2,\n activeScanning = 3,\n monitoringStation = 4,\n oreBunker = 5,\n UNRECOGNIZED = -1,\n}\n\nexport function techOreReserveDefensesFromJSON(object: any): techOreReserveDefenses {\n switch (object) {\n case 0:\n case \"noOreReserveDefenses\":\n return techOreReserveDefenses.noOreReserveDefenses;\n case 1:\n case \"coordinatedReserveResponseTracker\":\n return techOreReserveDefenses.coordinatedReserveResponseTracker;\n case 2:\n case \"rapidResponsePackage\":\n return techOreReserveDefenses.rapidResponsePackage;\n case 3:\n case \"activeScanning\":\n return techOreReserveDefenses.activeScanning;\n case 4:\n case \"monitoringStation\":\n return techOreReserveDefenses.monitoringStation;\n case 5:\n case \"oreBunker\":\n return techOreReserveDefenses.oreBunker;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return techOreReserveDefenses.UNRECOGNIZED;\n }\n}\n\nexport function techOreReserveDefensesToJSON(object: techOreReserveDefenses): string {\n switch (object) {\n case techOreReserveDefenses.noOreReserveDefenses:\n return \"noOreReserveDefenses\";\n case techOreReserveDefenses.coordinatedReserveResponseTracker:\n return \"coordinatedReserveResponseTracker\";\n case techOreReserveDefenses.rapidResponsePackage:\n return \"rapidResponsePackage\";\n case techOreReserveDefenses.activeScanning:\n return \"activeScanning\";\n case techOreReserveDefenses.monitoringStation:\n return \"monitoringStation\";\n case techOreReserveDefenses.oreBunker:\n return \"oreBunker\";\n case techOreReserveDefenses.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum techPlanetaryDefenses {\n noPlanetaryDefense = 0,\n defensiveCannon = 1,\n /**\n * lowOrbitBallisticInterceptorNetwork - advancedLowOrbitBallisticInterceptorNetwork = 3;\n * repairNetwork = 4;\n * coordinatedGlobalShieldNetwork = 5;\n * orbitalJammingStation = 6;\n * advancedOrbitalJammingStation = 7;\n */\n lowOrbitBallisticInterceptorNetwork = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function techPlanetaryDefensesFromJSON(object: any): techPlanetaryDefenses {\n switch (object) {\n case 0:\n case \"noPlanetaryDefense\":\n return techPlanetaryDefenses.noPlanetaryDefense;\n case 1:\n case \"defensiveCannon\":\n return techPlanetaryDefenses.defensiveCannon;\n case 2:\n case \"lowOrbitBallisticInterceptorNetwork\":\n return techPlanetaryDefenses.lowOrbitBallisticInterceptorNetwork;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return techPlanetaryDefenses.UNRECOGNIZED;\n }\n}\n\nexport function techPlanetaryDefensesToJSON(object: techPlanetaryDefenses): string {\n switch (object) {\n case techPlanetaryDefenses.noPlanetaryDefense:\n return \"noPlanetaryDefense\";\n case techPlanetaryDefenses.defensiveCannon:\n return \"defensiveCannon\";\n case techPlanetaryDefenses.lowOrbitBallisticInterceptorNetwork:\n return \"lowOrbitBallisticInterceptorNetwork\";\n case techPlanetaryDefenses.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum techStorageFacilities {\n noStorageFacilities = 0,\n dock = 1,\n hanger = 2,\n fleetBase = 3,\n UNRECOGNIZED = -1,\n}\n\nexport function techStorageFacilitiesFromJSON(object: any): techStorageFacilities {\n switch (object) {\n case 0:\n case \"noStorageFacilities\":\n return techStorageFacilities.noStorageFacilities;\n case 1:\n case \"dock\":\n return techStorageFacilities.dock;\n case 2:\n case \"hanger\":\n return techStorageFacilities.hanger;\n case 3:\n case \"fleetBase\":\n return techStorageFacilities.fleetBase;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return techStorageFacilities.UNRECOGNIZED;\n }\n}\n\nexport function techStorageFacilitiesToJSON(object: techStorageFacilities): string {\n switch (object) {\n case techStorageFacilities.noStorageFacilities:\n return \"noStorageFacilities\";\n case techStorageFacilities.dock:\n return \"dock\";\n case techStorageFacilities.hanger:\n return \"hanger\";\n case techStorageFacilities.fleetBase:\n return \"fleetBase\";\n case techStorageFacilities.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum techPlanetaryMining {\n noPlanetaryMining = 0,\n oreMiningRig = 1,\n UNRECOGNIZED = -1,\n}\n\nexport function techPlanetaryMiningFromJSON(object: any): techPlanetaryMining {\n switch (object) {\n case 0:\n case \"noPlanetaryMining\":\n return techPlanetaryMining.noPlanetaryMining;\n case 1:\n case \"oreMiningRig\":\n return techPlanetaryMining.oreMiningRig;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return techPlanetaryMining.UNRECOGNIZED;\n }\n}\n\nexport function techPlanetaryMiningToJSON(object: techPlanetaryMining): string {\n switch (object) {\n case techPlanetaryMining.noPlanetaryMining:\n return \"noPlanetaryMining\";\n case techPlanetaryMining.oreMiningRig:\n return \"oreMiningRig\";\n case techPlanetaryMining.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum techPlanetaryRefineries {\n noPlanetaryRefinery = 0,\n oreRefinery = 1,\n UNRECOGNIZED = -1,\n}\n\nexport function techPlanetaryRefineriesFromJSON(object: any): techPlanetaryRefineries {\n switch (object) {\n case 0:\n case \"noPlanetaryRefinery\":\n return techPlanetaryRefineries.noPlanetaryRefinery;\n case 1:\n case \"oreRefinery\":\n return techPlanetaryRefineries.oreRefinery;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return techPlanetaryRefineries.UNRECOGNIZED;\n }\n}\n\nexport function techPlanetaryRefineriesToJSON(object: techPlanetaryRefineries): string {\n switch (object) {\n case techPlanetaryRefineries.noPlanetaryRefinery:\n return \"noPlanetaryRefinery\";\n case techPlanetaryRefineries.oreRefinery:\n return \"oreRefinery\";\n case techPlanetaryRefineries.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum techPowerGeneration {\n noPowerGeneration = 0,\n smallGenerator = 1,\n mediumGenerator = 2,\n largeGenerator = 3,\n UNRECOGNIZED = -1,\n}\n\nexport function techPowerGenerationFromJSON(object: any): techPowerGeneration {\n switch (object) {\n case 0:\n case \"noPowerGeneration\":\n return techPowerGeneration.noPowerGeneration;\n case 1:\n case \"smallGenerator\":\n return techPowerGeneration.smallGenerator;\n case 2:\n case \"mediumGenerator\":\n return techPowerGeneration.mediumGenerator;\n case 3:\n case \"largeGenerator\":\n return techPowerGeneration.largeGenerator;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return techPowerGeneration.UNRECOGNIZED;\n }\n}\n\nexport function techPowerGenerationToJSON(object: techPowerGeneration): string {\n switch (object) {\n case techPowerGeneration.noPowerGeneration:\n return \"noPowerGeneration\";\n case techPowerGeneration.smallGenerator:\n return \"smallGenerator\";\n case techPowerGeneration.mediumGenerator:\n return \"mediumGenerator\";\n case techPowerGeneration.largeGenerator:\n return \"largeGenerator\";\n case techPowerGeneration.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum providerAccessPolicy {\n openMarket = 0,\n guildMarket = 1,\n closedMarket = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function providerAccessPolicyFromJSON(object: any): providerAccessPolicy {\n switch (object) {\n case 0:\n case \"openMarket\":\n return providerAccessPolicy.openMarket;\n case 1:\n case \"guildMarket\":\n return providerAccessPolicy.guildMarket;\n case 2:\n case \"closedMarket\":\n return providerAccessPolicy.closedMarket;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return providerAccessPolicy.UNRECOGNIZED;\n }\n}\n\nexport function providerAccessPolicyToJSON(object: providerAccessPolicy): string {\n switch (object) {\n case providerAccessPolicy.openMarket:\n return \"openMarket\";\n case providerAccessPolicy.guildMarket:\n return \"guildMarket\";\n case providerAccessPolicy.closedMarket:\n return \"closedMarket\";\n case providerAccessPolicy.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/packet.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface StructsPacketData {\n noData?: NoData | undefined;\n}\n\nexport interface NoData {\n}\n\nfunction createBaseStructsPacketData(): StructsPacketData {\n return { noData: undefined };\n}\n\nexport const StructsPacketData: MessageFns = {\n encode(message: StructsPacketData, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.noData !== undefined) {\n NoData.encode(message.noData, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): StructsPacketData {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStructsPacketData();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.noData = NoData.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): StructsPacketData {\n return { noData: isSet(object.noData) ? NoData.fromJSON(object.noData) : undefined };\n },\n\n toJSON(message: StructsPacketData): unknown {\n const obj: any = {};\n if (message.noData !== undefined) {\n obj.noData = NoData.toJSON(message.noData);\n }\n return obj;\n },\n\n create, I>>(base?: I): StructsPacketData {\n return StructsPacketData.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): StructsPacketData {\n const message = createBaseStructsPacketData();\n message.noData = (object.noData !== undefined && object.noData !== null)\n ? NoData.fromPartial(object.noData)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseNoData(): NoData {\n return {};\n}\n\nexport const NoData: MessageFns = {\n encode(_: NoData, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): NoData {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseNoData();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): NoData {\n return {};\n },\n\n toJSON(_: NoData): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): NoData {\n return NoData.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): NoData {\n const message = createBaseNoData();\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/params.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"structs.structs\";\n\n/** Params defines the parameters for the module. */\nexport interface Params {\n}\n\nfunction createBaseParams(): Params {\n return {};\n}\n\nexport const Params: MessageFns = {\n encode(_: Params, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Params {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): Params {\n return {};\n },\n\n toJSON(_: Params): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): Params {\n return Params.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): Params {\n const message = createBaseParams();\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/permission.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface PermissionRecord {\n permissionId: string;\n value: number;\n}\n\nfunction createBasePermissionRecord(): PermissionRecord {\n return { permissionId: \"\", value: 0 };\n}\n\nexport const PermissionRecord: MessageFns = {\n encode(message: PermissionRecord, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.permissionId !== \"\") {\n writer.uint32(10).string(message.permissionId);\n }\n if (message.value !== 0) {\n writer.uint32(16).uint64(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PermissionRecord {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePermissionRecord();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.permissionId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.value = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PermissionRecord {\n return {\n permissionId: isSet(object.permissionId) ? globalThis.String(object.permissionId) : \"\",\n value: isSet(object.value) ? globalThis.Number(object.value) : 0,\n };\n },\n\n toJSON(message: PermissionRecord): unknown {\n const obj: any = {};\n if (message.permissionId !== \"\") {\n obj.permissionId = message.permissionId;\n }\n if (message.value !== 0) {\n obj.value = Math.round(message.value);\n }\n return obj;\n },\n\n create, I>>(base?: I): PermissionRecord {\n return PermissionRecord.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): PermissionRecord {\n const message = createBasePermissionRecord();\n message.permissionId = object.permissionId ?? \"\";\n message.value = object.value ?? 0;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/planet.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { planetStatus, planetStatusFromJSON, planetStatusToJSON } from \"./keys\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface Planet {\n id: string;\n maxOre: number;\n creator: string;\n owner: string;\n space: string[];\n air: string[];\n land: string[];\n water: string[];\n spaceSlots: number;\n airSlots: number;\n landSlots: number;\n waterSlots: number;\n status: planetStatus;\n /** First in line to battle planet */\n locationListStart: string;\n /** End of the line */\n locationListLast: string;\n}\n\nexport interface PlanetAttributeRecord {\n attributeId: string;\n value: number;\n}\n\nexport interface PlanetAttributes {\n planetaryShield: number;\n repairNetworkQuantity: number;\n defensiveCannonQuantity: number;\n coordinatedGlobalShieldNetworkQuantity: number;\n lowOrbitBallisticsInterceptorNetworkQuantity: number;\n advancedLowOrbitBallisticsInterceptorNetworkQuantity: number;\n lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator: number;\n lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator: number;\n orbitalJammingStationQuantity: number;\n advancedOrbitalJammingStationQuantity: number;\n blockStartRaid: number;\n}\n\nfunction createBasePlanet(): Planet {\n return {\n id: \"\",\n maxOre: 0,\n creator: \"\",\n owner: \"\",\n space: [],\n air: [],\n land: [],\n water: [],\n spaceSlots: 0,\n airSlots: 0,\n landSlots: 0,\n waterSlots: 0,\n status: 0,\n locationListStart: \"\",\n locationListLast: \"\",\n };\n}\n\nexport const Planet: MessageFns = {\n encode(message: Planet, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.maxOre !== 0) {\n writer.uint32(16).uint64(message.maxOre);\n }\n if (message.creator !== \"\") {\n writer.uint32(26).string(message.creator);\n }\n if (message.owner !== \"\") {\n writer.uint32(34).string(message.owner);\n }\n for (const v of message.space) {\n writer.uint32(42).string(v!);\n }\n for (const v of message.air) {\n writer.uint32(50).string(v!);\n }\n for (const v of message.land) {\n writer.uint32(58).string(v!);\n }\n for (const v of message.water) {\n writer.uint32(66).string(v!);\n }\n if (message.spaceSlots !== 0) {\n writer.uint32(72).uint64(message.spaceSlots);\n }\n if (message.airSlots !== 0) {\n writer.uint32(80).uint64(message.airSlots);\n }\n if (message.landSlots !== 0) {\n writer.uint32(88).uint64(message.landSlots);\n }\n if (message.waterSlots !== 0) {\n writer.uint32(96).uint64(message.waterSlots);\n }\n if (message.status !== 0) {\n writer.uint32(104).int32(message.status);\n }\n if (message.locationListStart !== \"\") {\n writer.uint32(114).string(message.locationListStart);\n }\n if (message.locationListLast !== \"\") {\n writer.uint32(122).string(message.locationListLast);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Planet {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePlanet();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.maxOre = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.owner = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.space.push(reader.string());\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.air.push(reader.string());\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.land.push(reader.string());\n continue;\n }\n case 8: {\n if (tag !== 66) {\n break;\n }\n\n message.water.push(reader.string());\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.spaceSlots = longToNumber(reader.uint64());\n continue;\n }\n case 10: {\n if (tag !== 80) {\n break;\n }\n\n message.airSlots = longToNumber(reader.uint64());\n continue;\n }\n case 11: {\n if (tag !== 88) {\n break;\n }\n\n message.landSlots = longToNumber(reader.uint64());\n continue;\n }\n case 12: {\n if (tag !== 96) {\n break;\n }\n\n message.waterSlots = longToNumber(reader.uint64());\n continue;\n }\n case 13: {\n if (tag !== 104) {\n break;\n }\n\n message.status = reader.int32() as any;\n continue;\n }\n case 14: {\n if (tag !== 114) {\n break;\n }\n\n message.locationListStart = reader.string();\n continue;\n }\n case 15: {\n if (tag !== 122) {\n break;\n }\n\n message.locationListLast = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Planet {\n return {\n id: isSet(object.id) ? globalThis.String(object.id) : \"\",\n maxOre: isSet(object.maxOre) ? globalThis.Number(object.maxOre) : 0,\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n owner: isSet(object.owner) ? globalThis.String(object.owner) : \"\",\n space: globalThis.Array.isArray(object?.space) ? object.space.map((e: any) => globalThis.String(e)) : [],\n air: globalThis.Array.isArray(object?.air) ? object.air.map((e: any) => globalThis.String(e)) : [],\n land: globalThis.Array.isArray(object?.land) ? object.land.map((e: any) => globalThis.String(e)) : [],\n water: globalThis.Array.isArray(object?.water) ? object.water.map((e: any) => globalThis.String(e)) : [],\n spaceSlots: isSet(object.spaceSlots) ? globalThis.Number(object.spaceSlots) : 0,\n airSlots: isSet(object.airSlots) ? globalThis.Number(object.airSlots) : 0,\n landSlots: isSet(object.landSlots) ? globalThis.Number(object.landSlots) : 0,\n waterSlots: isSet(object.waterSlots) ? globalThis.Number(object.waterSlots) : 0,\n status: isSet(object.status) ? planetStatusFromJSON(object.status) : 0,\n locationListStart: isSet(object.locationListStart) ? globalThis.String(object.locationListStart) : \"\",\n locationListLast: isSet(object.locationListLast) ? globalThis.String(object.locationListLast) : \"\",\n };\n },\n\n toJSON(message: Planet): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n if (message.maxOre !== 0) {\n obj.maxOre = Math.round(message.maxOre);\n }\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.owner !== \"\") {\n obj.owner = message.owner;\n }\n if (message.space?.length) {\n obj.space = message.space;\n }\n if (message.air?.length) {\n obj.air = message.air;\n }\n if (message.land?.length) {\n obj.land = message.land;\n }\n if (message.water?.length) {\n obj.water = message.water;\n }\n if (message.spaceSlots !== 0) {\n obj.spaceSlots = Math.round(message.spaceSlots);\n }\n if (message.airSlots !== 0) {\n obj.airSlots = Math.round(message.airSlots);\n }\n if (message.landSlots !== 0) {\n obj.landSlots = Math.round(message.landSlots);\n }\n if (message.waterSlots !== 0) {\n obj.waterSlots = Math.round(message.waterSlots);\n }\n if (message.status !== 0) {\n obj.status = planetStatusToJSON(message.status);\n }\n if (message.locationListStart !== \"\") {\n obj.locationListStart = message.locationListStart;\n }\n if (message.locationListLast !== \"\") {\n obj.locationListLast = message.locationListLast;\n }\n return obj;\n },\n\n create, I>>(base?: I): Planet {\n return Planet.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Planet {\n const message = createBasePlanet();\n message.id = object.id ?? \"\";\n message.maxOre = object.maxOre ?? 0;\n message.creator = object.creator ?? \"\";\n message.owner = object.owner ?? \"\";\n message.space = object.space?.map((e) => e) || [];\n message.air = object.air?.map((e) => e) || [];\n message.land = object.land?.map((e) => e) || [];\n message.water = object.water?.map((e) => e) || [];\n message.spaceSlots = object.spaceSlots ?? 0;\n message.airSlots = object.airSlots ?? 0;\n message.landSlots = object.landSlots ?? 0;\n message.waterSlots = object.waterSlots ?? 0;\n message.status = object.status ?? 0;\n message.locationListStart = object.locationListStart ?? \"\";\n message.locationListLast = object.locationListLast ?? \"\";\n return message;\n },\n};\n\nfunction createBasePlanetAttributeRecord(): PlanetAttributeRecord {\n return { attributeId: \"\", value: 0 };\n}\n\nexport const PlanetAttributeRecord: MessageFns = {\n encode(message: PlanetAttributeRecord, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.attributeId !== \"\") {\n writer.uint32(10).string(message.attributeId);\n }\n if (message.value !== 0) {\n writer.uint32(16).uint64(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PlanetAttributeRecord {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePlanetAttributeRecord();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.attributeId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.value = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PlanetAttributeRecord {\n return {\n attributeId: isSet(object.attributeId) ? globalThis.String(object.attributeId) : \"\",\n value: isSet(object.value) ? globalThis.Number(object.value) : 0,\n };\n },\n\n toJSON(message: PlanetAttributeRecord): unknown {\n const obj: any = {};\n if (message.attributeId !== \"\") {\n obj.attributeId = message.attributeId;\n }\n if (message.value !== 0) {\n obj.value = Math.round(message.value);\n }\n return obj;\n },\n\n create, I>>(base?: I): PlanetAttributeRecord {\n return PlanetAttributeRecord.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): PlanetAttributeRecord {\n const message = createBasePlanetAttributeRecord();\n message.attributeId = object.attributeId ?? \"\";\n message.value = object.value ?? 0;\n return message;\n },\n};\n\nfunction createBasePlanetAttributes(): PlanetAttributes {\n return {\n planetaryShield: 0,\n repairNetworkQuantity: 0,\n defensiveCannonQuantity: 0,\n coordinatedGlobalShieldNetworkQuantity: 0,\n lowOrbitBallisticsInterceptorNetworkQuantity: 0,\n advancedLowOrbitBallisticsInterceptorNetworkQuantity: 0,\n lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator: 0,\n lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator: 0,\n orbitalJammingStationQuantity: 0,\n advancedOrbitalJammingStationQuantity: 0,\n blockStartRaid: 0,\n };\n}\n\nexport const PlanetAttributes: MessageFns = {\n encode(message: PlanetAttributes, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.planetaryShield !== 0) {\n writer.uint32(8).uint64(message.planetaryShield);\n }\n if (message.repairNetworkQuantity !== 0) {\n writer.uint32(16).uint64(message.repairNetworkQuantity);\n }\n if (message.defensiveCannonQuantity !== 0) {\n writer.uint32(24).uint64(message.defensiveCannonQuantity);\n }\n if (message.coordinatedGlobalShieldNetworkQuantity !== 0) {\n writer.uint32(32).uint64(message.coordinatedGlobalShieldNetworkQuantity);\n }\n if (message.lowOrbitBallisticsInterceptorNetworkQuantity !== 0) {\n writer.uint32(40).uint64(message.lowOrbitBallisticsInterceptorNetworkQuantity);\n }\n if (message.advancedLowOrbitBallisticsInterceptorNetworkQuantity !== 0) {\n writer.uint32(48).uint64(message.advancedLowOrbitBallisticsInterceptorNetworkQuantity);\n }\n if (message.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator !== 0) {\n writer.uint32(56).uint64(message.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator);\n }\n if (message.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator !== 0) {\n writer.uint32(64).uint64(message.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator);\n }\n if (message.orbitalJammingStationQuantity !== 0) {\n writer.uint32(72).uint64(message.orbitalJammingStationQuantity);\n }\n if (message.advancedOrbitalJammingStationQuantity !== 0) {\n writer.uint32(80).uint64(message.advancedOrbitalJammingStationQuantity);\n }\n if (message.blockStartRaid !== 0) {\n writer.uint32(88).uint64(message.blockStartRaid);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PlanetAttributes {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePlanetAttributes();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.planetaryShield = longToNumber(reader.uint64());\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.repairNetworkQuantity = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.defensiveCannonQuantity = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.coordinatedGlobalShieldNetworkQuantity = longToNumber(reader.uint64());\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.lowOrbitBallisticsInterceptorNetworkQuantity = longToNumber(reader.uint64());\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.advancedLowOrbitBallisticsInterceptorNetworkQuantity = longToNumber(reader.uint64());\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator = longToNumber(reader.uint64());\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator = longToNumber(reader.uint64());\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.orbitalJammingStationQuantity = longToNumber(reader.uint64());\n continue;\n }\n case 10: {\n if (tag !== 80) {\n break;\n }\n\n message.advancedOrbitalJammingStationQuantity = longToNumber(reader.uint64());\n continue;\n }\n case 11: {\n if (tag !== 88) {\n break;\n }\n\n message.blockStartRaid = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PlanetAttributes {\n return {\n planetaryShield: isSet(object.planetaryShield) ? globalThis.Number(object.planetaryShield) : 0,\n repairNetworkQuantity: isSet(object.repairNetworkQuantity) ? globalThis.Number(object.repairNetworkQuantity) : 0,\n defensiveCannonQuantity: isSet(object.defensiveCannonQuantity)\n ? globalThis.Number(object.defensiveCannonQuantity)\n : 0,\n coordinatedGlobalShieldNetworkQuantity: isSet(object.coordinatedGlobalShieldNetworkQuantity)\n ? globalThis.Number(object.coordinatedGlobalShieldNetworkQuantity)\n : 0,\n lowOrbitBallisticsInterceptorNetworkQuantity: isSet(object.lowOrbitBallisticsInterceptorNetworkQuantity)\n ? globalThis.Number(object.lowOrbitBallisticsInterceptorNetworkQuantity)\n : 0,\n advancedLowOrbitBallisticsInterceptorNetworkQuantity:\n isSet(object.advancedLowOrbitBallisticsInterceptorNetworkQuantity)\n ? globalThis.Number(object.advancedLowOrbitBallisticsInterceptorNetworkQuantity)\n : 0,\n lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator:\n isSet(object.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator)\n ? globalThis.Number(object.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator)\n : 0,\n lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator:\n isSet(object.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator)\n ? globalThis.Number(object.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator)\n : 0,\n orbitalJammingStationQuantity: isSet(object.orbitalJammingStationQuantity)\n ? globalThis.Number(object.orbitalJammingStationQuantity)\n : 0,\n advancedOrbitalJammingStationQuantity: isSet(object.advancedOrbitalJammingStationQuantity)\n ? globalThis.Number(object.advancedOrbitalJammingStationQuantity)\n : 0,\n blockStartRaid: isSet(object.blockStartRaid) ? globalThis.Number(object.blockStartRaid) : 0,\n };\n },\n\n toJSON(message: PlanetAttributes): unknown {\n const obj: any = {};\n if (message.planetaryShield !== 0) {\n obj.planetaryShield = Math.round(message.planetaryShield);\n }\n if (message.repairNetworkQuantity !== 0) {\n obj.repairNetworkQuantity = Math.round(message.repairNetworkQuantity);\n }\n if (message.defensiveCannonQuantity !== 0) {\n obj.defensiveCannonQuantity = Math.round(message.defensiveCannonQuantity);\n }\n if (message.coordinatedGlobalShieldNetworkQuantity !== 0) {\n obj.coordinatedGlobalShieldNetworkQuantity = Math.round(message.coordinatedGlobalShieldNetworkQuantity);\n }\n if (message.lowOrbitBallisticsInterceptorNetworkQuantity !== 0) {\n obj.lowOrbitBallisticsInterceptorNetworkQuantity = Math.round(\n message.lowOrbitBallisticsInterceptorNetworkQuantity,\n );\n }\n if (message.advancedLowOrbitBallisticsInterceptorNetworkQuantity !== 0) {\n obj.advancedLowOrbitBallisticsInterceptorNetworkQuantity = Math.round(\n message.advancedLowOrbitBallisticsInterceptorNetworkQuantity,\n );\n }\n if (message.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator !== 0) {\n obj.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator = Math.round(\n message.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator,\n );\n }\n if (message.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator !== 0) {\n obj.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator = Math.round(\n message.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator,\n );\n }\n if (message.orbitalJammingStationQuantity !== 0) {\n obj.orbitalJammingStationQuantity = Math.round(message.orbitalJammingStationQuantity);\n }\n if (message.advancedOrbitalJammingStationQuantity !== 0) {\n obj.advancedOrbitalJammingStationQuantity = Math.round(message.advancedOrbitalJammingStationQuantity);\n }\n if (message.blockStartRaid !== 0) {\n obj.blockStartRaid = Math.round(message.blockStartRaid);\n }\n return obj;\n },\n\n create, I>>(base?: I): PlanetAttributes {\n return PlanetAttributes.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): PlanetAttributes {\n const message = createBasePlanetAttributes();\n message.planetaryShield = object.planetaryShield ?? 0;\n message.repairNetworkQuantity = object.repairNetworkQuantity ?? 0;\n message.defensiveCannonQuantity = object.defensiveCannonQuantity ?? 0;\n message.coordinatedGlobalShieldNetworkQuantity = object.coordinatedGlobalShieldNetworkQuantity ?? 0;\n message.lowOrbitBallisticsInterceptorNetworkQuantity = object.lowOrbitBallisticsInterceptorNetworkQuantity ?? 0;\n message.advancedLowOrbitBallisticsInterceptorNetworkQuantity =\n object.advancedLowOrbitBallisticsInterceptorNetworkQuantity ?? 0;\n message.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator =\n object.lowOrbitBallisticsInterceptorNetworkSuccessRateNumerator ?? 0;\n message.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator =\n object.lowOrbitBallisticsInterceptorNetworkSuccessRateDenominator ?? 0;\n message.orbitalJammingStationQuantity = object.orbitalJammingStationQuantity ?? 0;\n message.advancedOrbitalJammingStationQuantity = object.advancedOrbitalJammingStationQuantity ?? 0;\n message.blockStartRaid = object.blockStartRaid ?? 0;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/player.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { Coin } from \"../../cosmos/base/v1beta1/coin\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface Player {\n id: string;\n index: number;\n guildId: string;\n substationId: string;\n creator: string;\n primaryAddress: string;\n planetId: string;\n fleetId: string;\n}\n\nexport interface PlayerInventory {\n rocks: Coin | undefined;\n}\n\nfunction createBasePlayer(): Player {\n return {\n id: \"\",\n index: 0,\n guildId: \"\",\n substationId: \"\",\n creator: \"\",\n primaryAddress: \"\",\n planetId: \"\",\n fleetId: \"\",\n };\n}\n\nexport const Player: MessageFns = {\n encode(message: Player, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.index !== 0) {\n writer.uint32(16).uint64(message.index);\n }\n if (message.guildId !== \"\") {\n writer.uint32(26).string(message.guildId);\n }\n if (message.substationId !== \"\") {\n writer.uint32(34).string(message.substationId);\n }\n if (message.creator !== \"\") {\n writer.uint32(42).string(message.creator);\n }\n if (message.primaryAddress !== \"\") {\n writer.uint32(50).string(message.primaryAddress);\n }\n if (message.planetId !== \"\") {\n writer.uint32(58).string(message.planetId);\n }\n if (message.fleetId !== \"\") {\n writer.uint32(66).string(message.fleetId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Player {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePlayer();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.index = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.primaryAddress = reader.string();\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.planetId = reader.string();\n continue;\n }\n case 8: {\n if (tag !== 66) {\n break;\n }\n\n message.fleetId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Player {\n return {\n id: isSet(object.id) ? globalThis.String(object.id) : \"\",\n index: isSet(object.index) ? globalThis.Number(object.index) : 0,\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n primaryAddress: isSet(object.primaryAddress) ? globalThis.String(object.primaryAddress) : \"\",\n planetId: isSet(object.planetId) ? globalThis.String(object.planetId) : \"\",\n fleetId: isSet(object.fleetId) ? globalThis.String(object.fleetId) : \"\",\n };\n },\n\n toJSON(message: Player): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n if (message.index !== 0) {\n obj.index = Math.round(message.index);\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.primaryAddress !== \"\") {\n obj.primaryAddress = message.primaryAddress;\n }\n if (message.planetId !== \"\") {\n obj.planetId = message.planetId;\n }\n if (message.fleetId !== \"\") {\n obj.fleetId = message.fleetId;\n }\n return obj;\n },\n\n create, I>>(base?: I): Player {\n return Player.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Player {\n const message = createBasePlayer();\n message.id = object.id ?? \"\";\n message.index = object.index ?? 0;\n message.guildId = object.guildId ?? \"\";\n message.substationId = object.substationId ?? \"\";\n message.creator = object.creator ?? \"\";\n message.primaryAddress = object.primaryAddress ?? \"\";\n message.planetId = object.planetId ?? \"\";\n message.fleetId = object.fleetId ?? \"\";\n return message;\n },\n};\n\nfunction createBasePlayerInventory(): PlayerInventory {\n return { rocks: undefined };\n}\n\nexport const PlayerInventory: MessageFns = {\n encode(message: PlayerInventory, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.rocks !== undefined) {\n Coin.encode(message.rocks, writer.uint32(106).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PlayerInventory {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePlayerInventory();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 13: {\n if (tag !== 106) {\n break;\n }\n\n message.rocks = Coin.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PlayerInventory {\n return { rocks: isSet(object.rocks) ? Coin.fromJSON(object.rocks) : undefined };\n },\n\n toJSON(message: PlayerInventory): unknown {\n const obj: any = {};\n if (message.rocks !== undefined) {\n obj.rocks = Coin.toJSON(message.rocks);\n }\n return obj;\n },\n\n create, I>>(base?: I): PlayerInventory {\n return PlayerInventory.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): PlayerInventory {\n const message = createBasePlayerInventory();\n message.rocks = (object.rocks !== undefined && object.rocks !== null) ? Coin.fromPartial(object.rocks) : undefined;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/provider.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { Coin } from \"../../cosmos/base/v1beta1/coin\";\nimport { providerAccessPolicy, providerAccessPolicyFromJSON, providerAccessPolicyToJSON } from \"./keys\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface Provider {\n id: string;\n index: number;\n substationId: string;\n rate: Coin | undefined;\n accessPolicy: providerAccessPolicy;\n capacityMinimum: number;\n capacityMaximum: number;\n durationMinimum: number;\n durationMaximum: number;\n providerCancellationPenalty: string;\n consumerCancellationPenalty: string;\n creator: string;\n owner: string;\n}\n\nfunction createBaseProvider(): Provider {\n return {\n id: \"\",\n index: 0,\n substationId: \"\",\n rate: undefined,\n accessPolicy: 0,\n capacityMinimum: 0,\n capacityMaximum: 0,\n durationMinimum: 0,\n durationMaximum: 0,\n providerCancellationPenalty: \"\",\n consumerCancellationPenalty: \"\",\n creator: \"\",\n owner: \"\",\n };\n}\n\nexport const Provider: MessageFns = {\n encode(message: Provider, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.index !== 0) {\n writer.uint32(16).uint64(message.index);\n }\n if (message.substationId !== \"\") {\n writer.uint32(26).string(message.substationId);\n }\n if (message.rate !== undefined) {\n Coin.encode(message.rate, writer.uint32(34).fork()).join();\n }\n if (message.accessPolicy !== 0) {\n writer.uint32(40).int32(message.accessPolicy);\n }\n if (message.capacityMinimum !== 0) {\n writer.uint32(48).uint64(message.capacityMinimum);\n }\n if (message.capacityMaximum !== 0) {\n writer.uint32(56).uint64(message.capacityMaximum);\n }\n if (message.durationMinimum !== 0) {\n writer.uint32(64).uint64(message.durationMinimum);\n }\n if (message.durationMaximum !== 0) {\n writer.uint32(72).uint64(message.durationMaximum);\n }\n if (message.providerCancellationPenalty !== \"\") {\n writer.uint32(82).string(message.providerCancellationPenalty);\n }\n if (message.consumerCancellationPenalty !== \"\") {\n writer.uint32(90).string(message.consumerCancellationPenalty);\n }\n if (message.creator !== \"\") {\n writer.uint32(98).string(message.creator);\n }\n if (message.owner !== \"\") {\n writer.uint32(106).string(message.owner);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Provider {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProvider();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.index = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.rate = Coin.decode(reader, reader.uint32());\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.accessPolicy = reader.int32() as any;\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.capacityMinimum = longToNumber(reader.uint64());\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.capacityMaximum = longToNumber(reader.uint64());\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.durationMinimum = longToNumber(reader.uint64());\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.durationMaximum = longToNumber(reader.uint64());\n continue;\n }\n case 10: {\n if (tag !== 82) {\n break;\n }\n\n message.providerCancellationPenalty = reader.string();\n continue;\n }\n case 11: {\n if (tag !== 90) {\n break;\n }\n\n message.consumerCancellationPenalty = reader.string();\n continue;\n }\n case 12: {\n if (tag !== 98) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 13: {\n if (tag !== 106) {\n break;\n }\n\n message.owner = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Provider {\n return {\n id: isSet(object.id) ? globalThis.String(object.id) : \"\",\n index: isSet(object.index) ? globalThis.Number(object.index) : 0,\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n rate: isSet(object.rate) ? Coin.fromJSON(object.rate) : undefined,\n accessPolicy: isSet(object.accessPolicy) ? providerAccessPolicyFromJSON(object.accessPolicy) : 0,\n capacityMinimum: isSet(object.capacityMinimum) ? globalThis.Number(object.capacityMinimum) : 0,\n capacityMaximum: isSet(object.capacityMaximum) ? globalThis.Number(object.capacityMaximum) : 0,\n durationMinimum: isSet(object.durationMinimum) ? globalThis.Number(object.durationMinimum) : 0,\n durationMaximum: isSet(object.durationMaximum) ? globalThis.Number(object.durationMaximum) : 0,\n providerCancellationPenalty: isSet(object.providerCancellationPenalty)\n ? globalThis.String(object.providerCancellationPenalty)\n : \"\",\n consumerCancellationPenalty: isSet(object.consumerCancellationPenalty)\n ? globalThis.String(object.consumerCancellationPenalty)\n : \"\",\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n owner: isSet(object.owner) ? globalThis.String(object.owner) : \"\",\n };\n },\n\n toJSON(message: Provider): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n if (message.index !== 0) {\n obj.index = Math.round(message.index);\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n if (message.rate !== undefined) {\n obj.rate = Coin.toJSON(message.rate);\n }\n if (message.accessPolicy !== 0) {\n obj.accessPolicy = providerAccessPolicyToJSON(message.accessPolicy);\n }\n if (message.capacityMinimum !== 0) {\n obj.capacityMinimum = Math.round(message.capacityMinimum);\n }\n if (message.capacityMaximum !== 0) {\n obj.capacityMaximum = Math.round(message.capacityMaximum);\n }\n if (message.durationMinimum !== 0) {\n obj.durationMinimum = Math.round(message.durationMinimum);\n }\n if (message.durationMaximum !== 0) {\n obj.durationMaximum = Math.round(message.durationMaximum);\n }\n if (message.providerCancellationPenalty !== \"\") {\n obj.providerCancellationPenalty = message.providerCancellationPenalty;\n }\n if (message.consumerCancellationPenalty !== \"\") {\n obj.consumerCancellationPenalty = message.consumerCancellationPenalty;\n }\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.owner !== \"\") {\n obj.owner = message.owner;\n }\n return obj;\n },\n\n create, I>>(base?: I): Provider {\n return Provider.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Provider {\n const message = createBaseProvider();\n message.id = object.id ?? \"\";\n message.index = object.index ?? 0;\n message.substationId = object.substationId ?? \"\";\n message.rate = (object.rate !== undefined && object.rate !== null) ? Coin.fromPartial(object.rate) : undefined;\n message.accessPolicy = object.accessPolicy ?? 0;\n message.capacityMinimum = object.capacityMinimum ?? 0;\n message.capacityMaximum = object.capacityMaximum ?? 0;\n message.durationMinimum = object.durationMinimum ?? 0;\n message.durationMaximum = object.durationMaximum ?? 0;\n message.providerCancellationPenalty = object.providerCancellationPenalty ?? \"\";\n message.consumerCancellationPenalty = object.consumerCancellationPenalty ?? \"\";\n message.creator = object.creator ?? \"\";\n message.owner = object.owner ?? \"\";\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/query.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { PageRequest, PageResponse } from \"../../cosmos/base/query/v1beta1/pagination\";\nimport { InternalAddressAssociation } from \"./address\";\nimport { Agreement } from \"./agreement\";\nimport { Allocation } from \"./allocation\";\nimport { Fleet } from \"./fleet\";\nimport { GridAttributes, GridRecord } from \"./grid\";\nimport { Guild, GuildMembershipApplication } from \"./guild\";\nimport { Infusion } from \"./infusion\";\nimport { Params } from \"./params\";\nimport { PermissionRecord } from \"./permission\";\nimport { Planet, PlanetAttributeRecord, PlanetAttributes } from \"./planet\";\nimport { Player, PlayerInventory } from \"./player\";\nimport { Provider } from \"./provider\";\nimport { Reactor } from \"./reactor\";\nimport { Struct, StructAttributeRecord, StructAttributes, StructType } from \"./struct\";\nimport { Substation } from \"./substation\";\n\nexport const protobufPackage = \"structs.structs\";\n\n/** QueryParamsRequest is request type for the Query/Params RPC method. */\nexport interface QueryParamsRequest {\n}\n\n/** QueryParamsResponse is response type for the Query/Params RPC method. */\nexport interface QueryParamsResponse {\n /** params holds all the parameters of this module. */\n params: Params | undefined;\n}\n\nexport interface QueryBlockHeight {\n}\n\nexport interface QueryBlockHeightResponse {\n blockHeight: number;\n}\n\nexport interface QueryGetAddressRequest {\n address: string;\n}\n\nexport interface QueryAllAddressByPlayerRequest {\n playerId: string;\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllAddressRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAddressResponse {\n address: string;\n playerId: string;\n permissions: number;\n}\n\nexport interface QueryAllAddressResponse {\n address: QueryAddressResponse[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetAgreementRequest {\n id: string;\n}\n\nexport interface QueryGetAgreementResponse {\n Agreement: Agreement | undefined;\n}\n\nexport interface QueryAllAgreementRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllAgreementByProviderRequest {\n pagination: PageRequest | undefined;\n providerId: string;\n}\n\nexport interface QueryAllAgreementResponse {\n Agreement: Agreement[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetAllocationRequest {\n id: string;\n}\n\nexport interface QueryGetAllocationResponse {\n Allocation: Allocation | undefined;\n gridAttributes: GridAttributes | undefined;\n}\n\nexport interface QueryAllAllocationRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllAllocationBySourceRequest {\n pagination: PageRequest | undefined;\n sourceId: string;\n}\n\nexport interface QueryAllAllocationByDestinationRequest {\n pagination: PageRequest | undefined;\n destinationId: string;\n}\n\nexport interface QueryAllAllocationResponse {\n Allocation: Allocation[];\n pagination: PageResponse | undefined;\n status: number[];\n}\n\nexport interface QueryGetFleetRequest {\n id: string;\n}\n\nexport interface QueryGetFleetResponse {\n Fleet: Fleet | undefined;\n}\n\nexport interface QueryGetFleetByIndexRequest {\n index: number;\n}\n\nexport interface QueryAllFleetRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllFleetResponse {\n Fleet: Fleet[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetGridRequest {\n attributeId: string;\n}\n\nexport interface QueryAllGridRequest {\n pagination: PageRequest | undefined;\n}\n\n/** Generic Responses for Permissions */\nexport interface QueryGetGridResponse {\n gridRecord: GridRecord | undefined;\n}\n\nexport interface QueryAllGridResponse {\n gridRecords: GridRecord[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetGuildRequest {\n id: string;\n}\n\nexport interface QueryGetGuildResponse {\n Guild: Guild | undefined;\n}\n\nexport interface QueryAllGuildRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllGuildResponse {\n Guild: Guild[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetGuildBankCollateralAddressRequest {\n guildId: string;\n}\n\nexport interface QueryAllGuildBankCollateralAddressRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllGuildBankCollateralAddressResponse {\n internalAddressAssociation: InternalAddressAssociation[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetGuildByBankCollateralAddressRequest {\n address: string;\n}\n\nexport interface QueryGetGuildMembershipApplicationRequest {\n guildId: string;\n playerId: string;\n}\n\nexport interface QueryGetGuildMembershipApplicationResponse {\n GuildMembershipApplication: GuildMembershipApplication | undefined;\n}\n\nexport interface QueryAllGuildMembershipApplicationRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllGuildMembershipApplicationResponse {\n GuildMembershipApplication: GuildMembershipApplication[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetInfusionRequest {\n destinationId: string;\n address: string;\n}\n\nexport interface QueryGetInfusionResponse {\n Infusion: Infusion | undefined;\n}\n\nexport interface QueryAllInfusionByDestinationRequest {\n destinationId: string;\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllInfusionRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllInfusionResponse {\n Infusion: Infusion[];\n pagination: PageResponse | undefined;\n status: number[];\n}\n\nexport interface QueryGetPermissionRequest {\n permissionId: string;\n}\n\nexport interface QueryAllPermissionByObjectRequest {\n objectId: string;\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllPermissionByPlayerRequest {\n playerId: string;\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllPermissionRequest {\n pagination: PageRequest | undefined;\n}\n\n/** Generic Responses for Permissions */\nexport interface QueryGetPermissionResponse {\n permissionRecord: PermissionRecord | undefined;\n}\n\nexport interface QueryAllPermissionResponse {\n permissionRecords: PermissionRecord[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetPlanetRequest {\n id: string;\n}\n\nexport interface QueryGetPlanetResponse {\n Planet: Planet | undefined;\n gridAttributes: GridAttributes | undefined;\n planetAttributes: PlanetAttributes | undefined;\n}\n\nexport interface QueryAllPlanetRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllPlanetByPlayerRequest {\n playerId: string;\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllPlanetResponse {\n Planet: Planet[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetPlanetAttributeRequest {\n planetId: string;\n attributeType: string;\n}\n\nexport interface QueryGetPlanetAttributeResponse {\n attribute: number;\n}\n\nexport interface QueryAllPlanetAttributeRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllPlanetAttributeResponse {\n planetAttributeRecords: PlanetAttributeRecord[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetPlayerRequest {\n id: string;\n}\n\nexport interface QueryGetPlayerResponse {\n Player: Player | undefined;\n gridAttributes: GridAttributes | undefined;\n playerInventory: PlayerInventory | undefined;\n halted: boolean;\n}\n\nexport interface QueryAllPlayerRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllPlayerResponse {\n Player: Player[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryAllPlayerHaltedRequest {\n}\n\nexport interface QueryAllPlayerHaltedResponse {\n PlayerId: string[];\n}\n\nexport interface QueryGetProviderRequest {\n id: string;\n}\n\nexport interface QueryGetProviderResponse {\n Provider: Provider | undefined;\n gridAttributes: GridAttributes | undefined;\n}\n\nexport interface QueryAllProviderRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllProviderResponse {\n Provider: Provider[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetProviderCollateralAddressRequest {\n providerId: string;\n}\n\nexport interface QueryAllProviderCollateralAddressRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllProviderCollateralAddressResponse {\n internalAddressAssociation: InternalAddressAssociation[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetProviderByCollateralAddressRequest {\n address: string;\n}\n\nexport interface QueryGetProviderEarningsAddressRequest {\n providerId: string;\n}\n\nexport interface QueryAllProviderEarningsAddressRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllProviderEarningsAddressResponse {\n internalAddressAssociation: InternalAddressAssociation[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetProviderByEarningsAddressRequest {\n address: string;\n}\n\nexport interface QueryGetReactorRequest {\n id: string;\n}\n\nexport interface QueryGetReactorResponse {\n Reactor: Reactor | undefined;\n gridAttributes: GridAttributes | undefined;\n}\n\nexport interface QueryAllReactorRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllReactorResponse {\n Reactor: Reactor[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetStructRequest {\n id: string;\n}\n\nexport interface QueryGetStructResponse {\n Struct: Struct | undefined;\n structAttributes: StructAttributes | undefined;\n gridAttributes: GridAttributes | undefined;\n structDefenders: string[];\n}\n\nexport interface QueryAllStructRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllStructResponse {\n Struct: Struct[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetStructAttributeRequest {\n structId: string;\n attributeType: string;\n}\n\nexport interface QueryGetStructAttributeResponse {\n attribute: number;\n}\n\nexport interface QueryAllStructAttributeRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllStructAttributeResponse {\n structAttributeRecords: StructAttributeRecord[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetStructTypeRequest {\n id: number;\n}\n\nexport interface QueryGetStructTypeResponse {\n StructType: StructType | undefined;\n}\n\nexport interface QueryAllStructTypeRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllStructTypeResponse {\n StructType: StructType[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryGetSubstationRequest {\n id: string;\n}\n\nexport interface QueryGetSubstationResponse {\n Substation: Substation | undefined;\n gridAttributes: GridAttributes | undefined;\n}\n\nexport interface QueryAllSubstationRequest {\n pagination: PageRequest | undefined;\n}\n\nexport interface QueryAllSubstationResponse {\n Substation: Substation[];\n pagination: PageResponse | undefined;\n}\n\nexport interface QueryValidateSignatureRequest {\n address: string;\n message: string;\n proofPubKey: string;\n proofSignature: string;\n}\n\nexport interface QueryValidateSignatureResponse {\n pubkeyFormatError: boolean;\n signatureFormatError: boolean;\n addressPubkeyMismatch: boolean;\n signatureInvalid: boolean;\n valid: boolean;\n}\n\nfunction createBaseQueryParamsRequest(): QueryParamsRequest {\n return {};\n}\n\nexport const QueryParamsRequest: MessageFns = {\n encode(_: QueryParamsRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): QueryParamsRequest {\n return {};\n },\n\n toJSON(_: QueryParamsRequest): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): QueryParamsRequest {\n return QueryParamsRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): QueryParamsRequest {\n const message = createBaseQueryParamsRequest();\n return message;\n },\n};\n\nfunction createBaseQueryParamsResponse(): QueryParamsResponse {\n return { params: undefined };\n}\n\nexport const QueryParamsResponse: MessageFns = {\n encode(message: QueryParamsResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.params !== undefined) {\n Params.encode(message.params, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.params = Params.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryParamsResponse {\n return { params: isSet(object.params) ? Params.fromJSON(object.params) : undefined };\n },\n\n toJSON(message: QueryParamsResponse): unknown {\n const obj: any = {};\n if (message.params !== undefined) {\n obj.params = Params.toJSON(message.params);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryParamsResponse {\n return QueryParamsResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryParamsResponse {\n const message = createBaseQueryParamsResponse();\n message.params = (object.params !== undefined && object.params !== null)\n ? Params.fromPartial(object.params)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryBlockHeight(): QueryBlockHeight {\n return {};\n}\n\nexport const QueryBlockHeight: MessageFns = {\n encode(_: QueryBlockHeight, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryBlockHeight {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryBlockHeight();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): QueryBlockHeight {\n return {};\n },\n\n toJSON(_: QueryBlockHeight): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): QueryBlockHeight {\n return QueryBlockHeight.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): QueryBlockHeight {\n const message = createBaseQueryBlockHeight();\n return message;\n },\n};\n\nfunction createBaseQueryBlockHeightResponse(): QueryBlockHeightResponse {\n return { blockHeight: 0 };\n}\n\nexport const QueryBlockHeightResponse: MessageFns = {\n encode(message: QueryBlockHeightResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.blockHeight !== 0) {\n writer.uint32(8).uint64(message.blockHeight);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryBlockHeightResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryBlockHeightResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.blockHeight = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryBlockHeightResponse {\n return { blockHeight: isSet(object.blockHeight) ? globalThis.Number(object.blockHeight) : 0 };\n },\n\n toJSON(message: QueryBlockHeightResponse): unknown {\n const obj: any = {};\n if (message.blockHeight !== 0) {\n obj.blockHeight = Math.round(message.blockHeight);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryBlockHeightResponse {\n return QueryBlockHeightResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryBlockHeightResponse {\n const message = createBaseQueryBlockHeightResponse();\n message.blockHeight = object.blockHeight ?? 0;\n return message;\n },\n};\n\nfunction createBaseQueryGetAddressRequest(): QueryGetAddressRequest {\n return { address: \"\" };\n}\n\nexport const QueryGetAddressRequest: MessageFns = {\n encode(message: QueryGetAddressRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetAddressRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetAddressRequest {\n return { address: isSet(object.address) ? globalThis.String(object.address) : \"\" };\n },\n\n toJSON(message: QueryGetAddressRequest): unknown {\n const obj: any = {};\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetAddressRequest {\n return QueryGetAddressRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetAddressRequest {\n const message = createBaseQueryGetAddressRequest();\n message.address = object.address ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryAllAddressByPlayerRequest(): QueryAllAddressByPlayerRequest {\n return { playerId: \"\", pagination: undefined };\n}\n\nexport const QueryAllAddressByPlayerRequest: MessageFns = {\n encode(message: QueryAllAddressByPlayerRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.playerId !== \"\") {\n writer.uint32(10).string(message.playerId);\n }\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllAddressByPlayerRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllAddressByPlayerRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllAddressByPlayerRequest {\n return {\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllAddressByPlayerRequest): unknown {\n const obj: any = {};\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllAddressByPlayerRequest {\n return QueryAllAddressByPlayerRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllAddressByPlayerRequest {\n const message = createBaseQueryAllAddressByPlayerRequest();\n message.playerId = object.playerId ?? \"\";\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllAddressRequest(): QueryAllAddressRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllAddressRequest: MessageFns = {\n encode(message: QueryAllAddressRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllAddressRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllAddressRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllAddressRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllAddressRequest {\n return QueryAllAddressRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllAddressRequest {\n const message = createBaseQueryAllAddressRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAddressResponse(): QueryAddressResponse {\n return { address: \"\", playerId: \"\", permissions: 0 };\n}\n\nexport const QueryAddressResponse: MessageFns = {\n encode(message: QueryAddressResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.playerId !== \"\") {\n writer.uint32(18).string(message.playerId);\n }\n if (message.permissions !== 0) {\n writer.uint32(24).uint64(message.permissions);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAddressResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAddressResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.permissions = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAddressResponse {\n return {\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n permissions: isSet(object.permissions) ? globalThis.Number(object.permissions) : 0,\n };\n },\n\n toJSON(message: QueryAddressResponse): unknown {\n const obj: any = {};\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.permissions !== 0) {\n obj.permissions = Math.round(message.permissions);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAddressResponse {\n return QueryAddressResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAddressResponse {\n const message = createBaseQueryAddressResponse();\n message.address = object.address ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.permissions = object.permissions ?? 0;\n return message;\n },\n};\n\nfunction createBaseQueryAllAddressResponse(): QueryAllAddressResponse {\n return { address: [], pagination: undefined };\n}\n\nexport const QueryAllAddressResponse: MessageFns = {\n encode(message: QueryAllAddressResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.address) {\n QueryAddressResponse.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllAddressResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllAddressResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.address.push(QueryAddressResponse.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllAddressResponse {\n return {\n address: globalThis.Array.isArray(object?.address)\n ? object.address.map((e: any) => QueryAddressResponse.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllAddressResponse): unknown {\n const obj: any = {};\n if (message.address?.length) {\n obj.address = message.address.map((e) => QueryAddressResponse.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllAddressResponse {\n return QueryAllAddressResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllAddressResponse {\n const message = createBaseQueryAllAddressResponse();\n message.address = object.address?.map((e) => QueryAddressResponse.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetAgreementRequest(): QueryGetAgreementRequest {\n return { id: \"\" };\n}\n\nexport const QueryGetAgreementRequest: MessageFns = {\n encode(message: QueryGetAgreementRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetAgreementRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetAgreementRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetAgreementRequest {\n return { id: isSet(object.id) ? globalThis.String(object.id) : \"\" };\n },\n\n toJSON(message: QueryGetAgreementRequest): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetAgreementRequest {\n return QueryGetAgreementRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetAgreementRequest {\n const message = createBaseQueryGetAgreementRequest();\n message.id = object.id ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetAgreementResponse(): QueryGetAgreementResponse {\n return { Agreement: undefined };\n}\n\nexport const QueryGetAgreementResponse: MessageFns = {\n encode(message: QueryGetAgreementResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.Agreement !== undefined) {\n Agreement.encode(message.Agreement, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetAgreementResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetAgreementResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Agreement = Agreement.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetAgreementResponse {\n return { Agreement: isSet(object.Agreement) ? Agreement.fromJSON(object.Agreement) : undefined };\n },\n\n toJSON(message: QueryGetAgreementResponse): unknown {\n const obj: any = {};\n if (message.Agreement !== undefined) {\n obj.Agreement = Agreement.toJSON(message.Agreement);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetAgreementResponse {\n return QueryGetAgreementResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetAgreementResponse {\n const message = createBaseQueryGetAgreementResponse();\n message.Agreement = (object.Agreement !== undefined && object.Agreement !== null)\n ? Agreement.fromPartial(object.Agreement)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllAgreementRequest(): QueryAllAgreementRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllAgreementRequest: MessageFns = {\n encode(message: QueryAllAgreementRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllAgreementRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllAgreementRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllAgreementRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllAgreementRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllAgreementRequest {\n return QueryAllAgreementRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllAgreementRequest {\n const message = createBaseQueryAllAgreementRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllAgreementByProviderRequest(): QueryAllAgreementByProviderRequest {\n return { pagination: undefined, providerId: \"\" };\n}\n\nexport const QueryAllAgreementByProviderRequest: MessageFns = {\n encode(message: QueryAllAgreementByProviderRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllAgreementByProviderRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllAgreementByProviderRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllAgreementByProviderRequest {\n return {\n pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined,\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n };\n },\n\n toJSON(message: QueryAllAgreementByProviderRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllAgreementByProviderRequest {\n return QueryAllAgreementByProviderRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllAgreementByProviderRequest {\n const message = createBaseQueryAllAgreementByProviderRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n message.providerId = object.providerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryAllAgreementResponse(): QueryAllAgreementResponse {\n return { Agreement: [], pagination: undefined };\n}\n\nexport const QueryAllAgreementResponse: MessageFns = {\n encode(message: QueryAllAgreementResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.Agreement) {\n Agreement.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllAgreementResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllAgreementResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Agreement.push(Agreement.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllAgreementResponse {\n return {\n Agreement: globalThis.Array.isArray(object?.Agreement)\n ? object.Agreement.map((e: any) => Agreement.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllAgreementResponse): unknown {\n const obj: any = {};\n if (message.Agreement?.length) {\n obj.Agreement = message.Agreement.map((e) => Agreement.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllAgreementResponse {\n return QueryAllAgreementResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllAgreementResponse {\n const message = createBaseQueryAllAgreementResponse();\n message.Agreement = object.Agreement?.map((e) => Agreement.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetAllocationRequest(): QueryGetAllocationRequest {\n return { id: \"\" };\n}\n\nexport const QueryGetAllocationRequest: MessageFns = {\n encode(message: QueryGetAllocationRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetAllocationRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetAllocationRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetAllocationRequest {\n return { id: isSet(object.id) ? globalThis.String(object.id) : \"\" };\n },\n\n toJSON(message: QueryGetAllocationRequest): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetAllocationRequest {\n return QueryGetAllocationRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetAllocationRequest {\n const message = createBaseQueryGetAllocationRequest();\n message.id = object.id ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetAllocationResponse(): QueryGetAllocationResponse {\n return { Allocation: undefined, gridAttributes: undefined };\n}\n\nexport const QueryGetAllocationResponse: MessageFns = {\n encode(message: QueryGetAllocationResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.Allocation !== undefined) {\n Allocation.encode(message.Allocation, writer.uint32(10).fork()).join();\n }\n if (message.gridAttributes !== undefined) {\n GridAttributes.encode(message.gridAttributes, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetAllocationResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetAllocationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Allocation = Allocation.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.gridAttributes = GridAttributes.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetAllocationResponse {\n return {\n Allocation: isSet(object.Allocation) ? Allocation.fromJSON(object.Allocation) : undefined,\n gridAttributes: isSet(object.gridAttributes) ? GridAttributes.fromJSON(object.gridAttributes) : undefined,\n };\n },\n\n toJSON(message: QueryGetAllocationResponse): unknown {\n const obj: any = {};\n if (message.Allocation !== undefined) {\n obj.Allocation = Allocation.toJSON(message.Allocation);\n }\n if (message.gridAttributes !== undefined) {\n obj.gridAttributes = GridAttributes.toJSON(message.gridAttributes);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetAllocationResponse {\n return QueryGetAllocationResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetAllocationResponse {\n const message = createBaseQueryGetAllocationResponse();\n message.Allocation = (object.Allocation !== undefined && object.Allocation !== null)\n ? Allocation.fromPartial(object.Allocation)\n : undefined;\n message.gridAttributes = (object.gridAttributes !== undefined && object.gridAttributes !== null)\n ? GridAttributes.fromPartial(object.gridAttributes)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllAllocationRequest(): QueryAllAllocationRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllAllocationRequest: MessageFns = {\n encode(message: QueryAllAllocationRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllAllocationRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllAllocationRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllAllocationRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllAllocationRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllAllocationRequest {\n return QueryAllAllocationRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllAllocationRequest {\n const message = createBaseQueryAllAllocationRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllAllocationBySourceRequest(): QueryAllAllocationBySourceRequest {\n return { pagination: undefined, sourceId: \"\" };\n}\n\nexport const QueryAllAllocationBySourceRequest: MessageFns = {\n encode(message: QueryAllAllocationBySourceRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n if (message.sourceId !== \"\") {\n writer.uint32(18).string(message.sourceId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllAllocationBySourceRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllAllocationBySourceRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.sourceId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllAllocationBySourceRequest {\n return {\n pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined,\n sourceId: isSet(object.sourceId) ? globalThis.String(object.sourceId) : \"\",\n };\n },\n\n toJSON(message: QueryAllAllocationBySourceRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n if (message.sourceId !== \"\") {\n obj.sourceId = message.sourceId;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllAllocationBySourceRequest {\n return QueryAllAllocationBySourceRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllAllocationBySourceRequest {\n const message = createBaseQueryAllAllocationBySourceRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n message.sourceId = object.sourceId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryAllAllocationByDestinationRequest(): QueryAllAllocationByDestinationRequest {\n return { pagination: undefined, destinationId: \"\" };\n}\n\nexport const QueryAllAllocationByDestinationRequest: MessageFns = {\n encode(message: QueryAllAllocationByDestinationRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n if (message.destinationId !== \"\") {\n writer.uint32(18).string(message.destinationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllAllocationByDestinationRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllAllocationByDestinationRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.destinationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllAllocationByDestinationRequest {\n return {\n pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined,\n destinationId: isSet(object.destinationId) ? globalThis.String(object.destinationId) : \"\",\n };\n },\n\n toJSON(message: QueryAllAllocationByDestinationRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n if (message.destinationId !== \"\") {\n obj.destinationId = message.destinationId;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllAllocationByDestinationRequest {\n return QueryAllAllocationByDestinationRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllAllocationByDestinationRequest {\n const message = createBaseQueryAllAllocationByDestinationRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n message.destinationId = object.destinationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryAllAllocationResponse(): QueryAllAllocationResponse {\n return { Allocation: [], pagination: undefined, status: [] };\n}\n\nexport const QueryAllAllocationResponse: MessageFns = {\n encode(message: QueryAllAllocationResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.Allocation) {\n Allocation.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n writer.uint32(26).fork();\n for (const v of message.status) {\n writer.uint64(v);\n }\n writer.join();\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllAllocationResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllAllocationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Allocation.push(Allocation.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n case 3: {\n if (tag === 24) {\n message.status.push(longToNumber(reader.uint64()));\n\n continue;\n }\n\n if (tag === 26) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.status.push(longToNumber(reader.uint64()));\n }\n\n continue;\n }\n\n break;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllAllocationResponse {\n return {\n Allocation: globalThis.Array.isArray(object?.Allocation)\n ? object.Allocation.map((e: any) => Allocation.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n status: globalThis.Array.isArray(object?.status) ? object.status.map((e: any) => globalThis.Number(e)) : [],\n };\n },\n\n toJSON(message: QueryAllAllocationResponse): unknown {\n const obj: any = {};\n if (message.Allocation?.length) {\n obj.Allocation = message.Allocation.map((e) => Allocation.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n if (message.status?.length) {\n obj.status = message.status.map((e) => Math.round(e));\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllAllocationResponse {\n return QueryAllAllocationResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllAllocationResponse {\n const message = createBaseQueryAllAllocationResponse();\n message.Allocation = object.Allocation?.map((e) => Allocation.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n message.status = object.status?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseQueryGetFleetRequest(): QueryGetFleetRequest {\n return { id: \"\" };\n}\n\nexport const QueryGetFleetRequest: MessageFns = {\n encode(message: QueryGetFleetRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetFleetRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetFleetRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetFleetRequest {\n return { id: isSet(object.id) ? globalThis.String(object.id) : \"\" };\n },\n\n toJSON(message: QueryGetFleetRequest): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetFleetRequest {\n return QueryGetFleetRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetFleetRequest {\n const message = createBaseQueryGetFleetRequest();\n message.id = object.id ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetFleetResponse(): QueryGetFleetResponse {\n return { Fleet: undefined };\n}\n\nexport const QueryGetFleetResponse: MessageFns = {\n encode(message: QueryGetFleetResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.Fleet !== undefined) {\n Fleet.encode(message.Fleet, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetFleetResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetFleetResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Fleet = Fleet.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetFleetResponse {\n return { Fleet: isSet(object.Fleet) ? Fleet.fromJSON(object.Fleet) : undefined };\n },\n\n toJSON(message: QueryGetFleetResponse): unknown {\n const obj: any = {};\n if (message.Fleet !== undefined) {\n obj.Fleet = Fleet.toJSON(message.Fleet);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetFleetResponse {\n return QueryGetFleetResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetFleetResponse {\n const message = createBaseQueryGetFleetResponse();\n message.Fleet = (object.Fleet !== undefined && object.Fleet !== null) ? Fleet.fromPartial(object.Fleet) : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetFleetByIndexRequest(): QueryGetFleetByIndexRequest {\n return { index: 0 };\n}\n\nexport const QueryGetFleetByIndexRequest: MessageFns = {\n encode(message: QueryGetFleetByIndexRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.index !== 0) {\n writer.uint32(8).uint64(message.index);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetFleetByIndexRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetFleetByIndexRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.index = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetFleetByIndexRequest {\n return { index: isSet(object.index) ? globalThis.Number(object.index) : 0 };\n },\n\n toJSON(message: QueryGetFleetByIndexRequest): unknown {\n const obj: any = {};\n if (message.index !== 0) {\n obj.index = Math.round(message.index);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetFleetByIndexRequest {\n return QueryGetFleetByIndexRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetFleetByIndexRequest {\n const message = createBaseQueryGetFleetByIndexRequest();\n message.index = object.index ?? 0;\n return message;\n },\n};\n\nfunction createBaseQueryAllFleetRequest(): QueryAllFleetRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllFleetRequest: MessageFns = {\n encode(message: QueryAllFleetRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllFleetRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllFleetRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllFleetRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllFleetRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllFleetRequest {\n return QueryAllFleetRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllFleetRequest {\n const message = createBaseQueryAllFleetRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllFleetResponse(): QueryAllFleetResponse {\n return { Fleet: [], pagination: undefined };\n}\n\nexport const QueryAllFleetResponse: MessageFns = {\n encode(message: QueryAllFleetResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.Fleet) {\n Fleet.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllFleetResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllFleetResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Fleet.push(Fleet.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllFleetResponse {\n return {\n Fleet: globalThis.Array.isArray(object?.Fleet) ? object.Fleet.map((e: any) => Fleet.fromJSON(e)) : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllFleetResponse): unknown {\n const obj: any = {};\n if (message.Fleet?.length) {\n obj.Fleet = message.Fleet.map((e) => Fleet.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllFleetResponse {\n return QueryAllFleetResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllFleetResponse {\n const message = createBaseQueryAllFleetResponse();\n message.Fleet = object.Fleet?.map((e) => Fleet.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetGridRequest(): QueryGetGridRequest {\n return { attributeId: \"\" };\n}\n\nexport const QueryGetGridRequest: MessageFns = {\n encode(message: QueryGetGridRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.attributeId !== \"\") {\n writer.uint32(10).string(message.attributeId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetGridRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetGridRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.attributeId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetGridRequest {\n return { attributeId: isSet(object.attributeId) ? globalThis.String(object.attributeId) : \"\" };\n },\n\n toJSON(message: QueryGetGridRequest): unknown {\n const obj: any = {};\n if (message.attributeId !== \"\") {\n obj.attributeId = message.attributeId;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetGridRequest {\n return QueryGetGridRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetGridRequest {\n const message = createBaseQueryGetGridRequest();\n message.attributeId = object.attributeId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryAllGridRequest(): QueryAllGridRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllGridRequest: MessageFns = {\n encode(message: QueryAllGridRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllGridRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllGridRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllGridRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllGridRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllGridRequest {\n return QueryAllGridRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllGridRequest {\n const message = createBaseQueryAllGridRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetGridResponse(): QueryGetGridResponse {\n return { gridRecord: undefined };\n}\n\nexport const QueryGetGridResponse: MessageFns = {\n encode(message: QueryGetGridResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.gridRecord !== undefined) {\n GridRecord.encode(message.gridRecord, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetGridResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetGridResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.gridRecord = GridRecord.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetGridResponse {\n return { gridRecord: isSet(object.gridRecord) ? GridRecord.fromJSON(object.gridRecord) : undefined };\n },\n\n toJSON(message: QueryGetGridResponse): unknown {\n const obj: any = {};\n if (message.gridRecord !== undefined) {\n obj.gridRecord = GridRecord.toJSON(message.gridRecord);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetGridResponse {\n return QueryGetGridResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetGridResponse {\n const message = createBaseQueryGetGridResponse();\n message.gridRecord = (object.gridRecord !== undefined && object.gridRecord !== null)\n ? GridRecord.fromPartial(object.gridRecord)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllGridResponse(): QueryAllGridResponse {\n return { gridRecords: [], pagination: undefined };\n}\n\nexport const QueryAllGridResponse: MessageFns = {\n encode(message: QueryAllGridResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.gridRecords) {\n GridRecord.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllGridResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllGridResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.gridRecords.push(GridRecord.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllGridResponse {\n return {\n gridRecords: globalThis.Array.isArray(object?.gridRecords)\n ? object.gridRecords.map((e: any) => GridRecord.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllGridResponse): unknown {\n const obj: any = {};\n if (message.gridRecords?.length) {\n obj.gridRecords = message.gridRecords.map((e) => GridRecord.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllGridResponse {\n return QueryAllGridResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllGridResponse {\n const message = createBaseQueryAllGridResponse();\n message.gridRecords = object.gridRecords?.map((e) => GridRecord.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetGuildRequest(): QueryGetGuildRequest {\n return { id: \"\" };\n}\n\nexport const QueryGetGuildRequest: MessageFns = {\n encode(message: QueryGetGuildRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetGuildRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetGuildRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetGuildRequest {\n return { id: isSet(object.id) ? globalThis.String(object.id) : \"\" };\n },\n\n toJSON(message: QueryGetGuildRequest): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetGuildRequest {\n return QueryGetGuildRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetGuildRequest {\n const message = createBaseQueryGetGuildRequest();\n message.id = object.id ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetGuildResponse(): QueryGetGuildResponse {\n return { Guild: undefined };\n}\n\nexport const QueryGetGuildResponse: MessageFns = {\n encode(message: QueryGetGuildResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.Guild !== undefined) {\n Guild.encode(message.Guild, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetGuildResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetGuildResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Guild = Guild.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetGuildResponse {\n return { Guild: isSet(object.Guild) ? Guild.fromJSON(object.Guild) : undefined };\n },\n\n toJSON(message: QueryGetGuildResponse): unknown {\n const obj: any = {};\n if (message.Guild !== undefined) {\n obj.Guild = Guild.toJSON(message.Guild);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetGuildResponse {\n return QueryGetGuildResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetGuildResponse {\n const message = createBaseQueryGetGuildResponse();\n message.Guild = (object.Guild !== undefined && object.Guild !== null) ? Guild.fromPartial(object.Guild) : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllGuildRequest(): QueryAllGuildRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllGuildRequest: MessageFns = {\n encode(message: QueryAllGuildRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllGuildRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllGuildRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllGuildRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllGuildRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllGuildRequest {\n return QueryAllGuildRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllGuildRequest {\n const message = createBaseQueryAllGuildRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllGuildResponse(): QueryAllGuildResponse {\n return { Guild: [], pagination: undefined };\n}\n\nexport const QueryAllGuildResponse: MessageFns = {\n encode(message: QueryAllGuildResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.Guild) {\n Guild.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllGuildResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllGuildResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Guild.push(Guild.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllGuildResponse {\n return {\n Guild: globalThis.Array.isArray(object?.Guild) ? object.Guild.map((e: any) => Guild.fromJSON(e)) : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllGuildResponse): unknown {\n const obj: any = {};\n if (message.Guild?.length) {\n obj.Guild = message.Guild.map((e) => Guild.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllGuildResponse {\n return QueryAllGuildResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllGuildResponse {\n const message = createBaseQueryAllGuildResponse();\n message.Guild = object.Guild?.map((e) => Guild.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetGuildBankCollateralAddressRequest(): QueryGetGuildBankCollateralAddressRequest {\n return { guildId: \"\" };\n}\n\nexport const QueryGetGuildBankCollateralAddressRequest: MessageFns = {\n encode(message: QueryGetGuildBankCollateralAddressRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.guildId !== \"\") {\n writer.uint32(10).string(message.guildId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetGuildBankCollateralAddressRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetGuildBankCollateralAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetGuildBankCollateralAddressRequest {\n return { guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\" };\n },\n\n toJSON(message: QueryGetGuildBankCollateralAddressRequest): unknown {\n const obj: any = {};\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryGetGuildBankCollateralAddressRequest {\n return QueryGetGuildBankCollateralAddressRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetGuildBankCollateralAddressRequest {\n const message = createBaseQueryGetGuildBankCollateralAddressRequest();\n message.guildId = object.guildId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryAllGuildBankCollateralAddressRequest(): QueryAllGuildBankCollateralAddressRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllGuildBankCollateralAddressRequest: MessageFns = {\n encode(message: QueryAllGuildBankCollateralAddressRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllGuildBankCollateralAddressRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllGuildBankCollateralAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllGuildBankCollateralAddressRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllGuildBankCollateralAddressRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllGuildBankCollateralAddressRequest {\n return QueryAllGuildBankCollateralAddressRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllGuildBankCollateralAddressRequest {\n const message = createBaseQueryAllGuildBankCollateralAddressRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllGuildBankCollateralAddressResponse(): QueryAllGuildBankCollateralAddressResponse {\n return { internalAddressAssociation: [], pagination: undefined };\n}\n\nexport const QueryAllGuildBankCollateralAddressResponse: MessageFns = {\n encode(message: QueryAllGuildBankCollateralAddressResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.internalAddressAssociation) {\n InternalAddressAssociation.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllGuildBankCollateralAddressResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllGuildBankCollateralAddressResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.internalAddressAssociation.push(InternalAddressAssociation.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllGuildBankCollateralAddressResponse {\n return {\n internalAddressAssociation: globalThis.Array.isArray(object?.internalAddressAssociation)\n ? object.internalAddressAssociation.map((e: any) => InternalAddressAssociation.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllGuildBankCollateralAddressResponse): unknown {\n const obj: any = {};\n if (message.internalAddressAssociation?.length) {\n obj.internalAddressAssociation = message.internalAddressAssociation.map((e) =>\n InternalAddressAssociation.toJSON(e)\n );\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllGuildBankCollateralAddressResponse {\n return QueryAllGuildBankCollateralAddressResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllGuildBankCollateralAddressResponse {\n const message = createBaseQueryAllGuildBankCollateralAddressResponse();\n message.internalAddressAssociation =\n object.internalAddressAssociation?.map((e) => InternalAddressAssociation.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetGuildByBankCollateralAddressRequest(): QueryGetGuildByBankCollateralAddressRequest {\n return { address: \"\" };\n}\n\nexport const QueryGetGuildByBankCollateralAddressRequest: MessageFns = {\n encode(\n message: QueryGetGuildByBankCollateralAddressRequest,\n writer: BinaryWriter = new BinaryWriter(),\n ): BinaryWriter {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetGuildByBankCollateralAddressRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetGuildByBankCollateralAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetGuildByBankCollateralAddressRequest {\n return { address: isSet(object.address) ? globalThis.String(object.address) : \"\" };\n },\n\n toJSON(message: QueryGetGuildByBankCollateralAddressRequest): unknown {\n const obj: any = {};\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryGetGuildByBankCollateralAddressRequest {\n return QueryGetGuildByBankCollateralAddressRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetGuildByBankCollateralAddressRequest {\n const message = createBaseQueryGetGuildByBankCollateralAddressRequest();\n message.address = object.address ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetGuildMembershipApplicationRequest(): QueryGetGuildMembershipApplicationRequest {\n return { guildId: \"\", playerId: \"\" };\n}\n\nexport const QueryGetGuildMembershipApplicationRequest: MessageFns = {\n encode(message: QueryGetGuildMembershipApplicationRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.guildId !== \"\") {\n writer.uint32(10).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(18).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetGuildMembershipApplicationRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetGuildMembershipApplicationRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetGuildMembershipApplicationRequest {\n return {\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: QueryGetGuildMembershipApplicationRequest): unknown {\n const obj: any = {};\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryGetGuildMembershipApplicationRequest {\n return QueryGetGuildMembershipApplicationRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetGuildMembershipApplicationRequest {\n const message = createBaseQueryGetGuildMembershipApplicationRequest();\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetGuildMembershipApplicationResponse(): QueryGetGuildMembershipApplicationResponse {\n return { GuildMembershipApplication: undefined };\n}\n\nexport const QueryGetGuildMembershipApplicationResponse: MessageFns = {\n encode(message: QueryGetGuildMembershipApplicationResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.GuildMembershipApplication !== undefined) {\n GuildMembershipApplication.encode(message.GuildMembershipApplication, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetGuildMembershipApplicationResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetGuildMembershipApplicationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.GuildMembershipApplication = GuildMembershipApplication.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetGuildMembershipApplicationResponse {\n return {\n GuildMembershipApplication: isSet(object.GuildMembershipApplication)\n ? GuildMembershipApplication.fromJSON(object.GuildMembershipApplication)\n : undefined,\n };\n },\n\n toJSON(message: QueryGetGuildMembershipApplicationResponse): unknown {\n const obj: any = {};\n if (message.GuildMembershipApplication !== undefined) {\n obj.GuildMembershipApplication = GuildMembershipApplication.toJSON(message.GuildMembershipApplication);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryGetGuildMembershipApplicationResponse {\n return QueryGetGuildMembershipApplicationResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetGuildMembershipApplicationResponse {\n const message = createBaseQueryGetGuildMembershipApplicationResponse();\n message.GuildMembershipApplication =\n (object.GuildMembershipApplication !== undefined && object.GuildMembershipApplication !== null)\n ? GuildMembershipApplication.fromPartial(object.GuildMembershipApplication)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllGuildMembershipApplicationRequest(): QueryAllGuildMembershipApplicationRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllGuildMembershipApplicationRequest: MessageFns = {\n encode(message: QueryAllGuildMembershipApplicationRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllGuildMembershipApplicationRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllGuildMembershipApplicationRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllGuildMembershipApplicationRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllGuildMembershipApplicationRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllGuildMembershipApplicationRequest {\n return QueryAllGuildMembershipApplicationRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllGuildMembershipApplicationRequest {\n const message = createBaseQueryAllGuildMembershipApplicationRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllGuildMembershipApplicationResponse(): QueryAllGuildMembershipApplicationResponse {\n return { GuildMembershipApplication: [], pagination: undefined };\n}\n\nexport const QueryAllGuildMembershipApplicationResponse: MessageFns = {\n encode(message: QueryAllGuildMembershipApplicationResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.GuildMembershipApplication) {\n GuildMembershipApplication.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllGuildMembershipApplicationResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllGuildMembershipApplicationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.GuildMembershipApplication.push(GuildMembershipApplication.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllGuildMembershipApplicationResponse {\n return {\n GuildMembershipApplication: globalThis.Array.isArray(object?.GuildMembershipApplication)\n ? object.GuildMembershipApplication.map((e: any) => GuildMembershipApplication.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllGuildMembershipApplicationResponse): unknown {\n const obj: any = {};\n if (message.GuildMembershipApplication?.length) {\n obj.GuildMembershipApplication = message.GuildMembershipApplication.map((e) =>\n GuildMembershipApplication.toJSON(e)\n );\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllGuildMembershipApplicationResponse {\n return QueryAllGuildMembershipApplicationResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllGuildMembershipApplicationResponse {\n const message = createBaseQueryAllGuildMembershipApplicationResponse();\n message.GuildMembershipApplication =\n object.GuildMembershipApplication?.map((e) => GuildMembershipApplication.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetInfusionRequest(): QueryGetInfusionRequest {\n return { destinationId: \"\", address: \"\" };\n}\n\nexport const QueryGetInfusionRequest: MessageFns = {\n encode(message: QueryGetInfusionRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.destinationId !== \"\") {\n writer.uint32(10).string(message.destinationId);\n }\n if (message.address !== \"\") {\n writer.uint32(18).string(message.address);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetInfusionRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetInfusionRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.destinationId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetInfusionRequest {\n return {\n destinationId: isSet(object.destinationId) ? globalThis.String(object.destinationId) : \"\",\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n };\n },\n\n toJSON(message: QueryGetInfusionRequest): unknown {\n const obj: any = {};\n if (message.destinationId !== \"\") {\n obj.destinationId = message.destinationId;\n }\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetInfusionRequest {\n return QueryGetInfusionRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetInfusionRequest {\n const message = createBaseQueryGetInfusionRequest();\n message.destinationId = object.destinationId ?? \"\";\n message.address = object.address ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetInfusionResponse(): QueryGetInfusionResponse {\n return { Infusion: undefined };\n}\n\nexport const QueryGetInfusionResponse: MessageFns = {\n encode(message: QueryGetInfusionResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.Infusion !== undefined) {\n Infusion.encode(message.Infusion, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetInfusionResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetInfusionResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Infusion = Infusion.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetInfusionResponse {\n return { Infusion: isSet(object.Infusion) ? Infusion.fromJSON(object.Infusion) : undefined };\n },\n\n toJSON(message: QueryGetInfusionResponse): unknown {\n const obj: any = {};\n if (message.Infusion !== undefined) {\n obj.Infusion = Infusion.toJSON(message.Infusion);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetInfusionResponse {\n return QueryGetInfusionResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetInfusionResponse {\n const message = createBaseQueryGetInfusionResponse();\n message.Infusion = (object.Infusion !== undefined && object.Infusion !== null)\n ? Infusion.fromPartial(object.Infusion)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllInfusionByDestinationRequest(): QueryAllInfusionByDestinationRequest {\n return { destinationId: \"\", pagination: undefined };\n}\n\nexport const QueryAllInfusionByDestinationRequest: MessageFns = {\n encode(message: QueryAllInfusionByDestinationRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.destinationId !== \"\") {\n writer.uint32(10).string(message.destinationId);\n }\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllInfusionByDestinationRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllInfusionByDestinationRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.destinationId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllInfusionByDestinationRequest {\n return {\n destinationId: isSet(object.destinationId) ? globalThis.String(object.destinationId) : \"\",\n pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllInfusionByDestinationRequest): unknown {\n const obj: any = {};\n if (message.destinationId !== \"\") {\n obj.destinationId = message.destinationId;\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllInfusionByDestinationRequest {\n return QueryAllInfusionByDestinationRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllInfusionByDestinationRequest {\n const message = createBaseQueryAllInfusionByDestinationRequest();\n message.destinationId = object.destinationId ?? \"\";\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllInfusionRequest(): QueryAllInfusionRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllInfusionRequest: MessageFns = {\n encode(message: QueryAllInfusionRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllInfusionRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllInfusionRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllInfusionRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllInfusionRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllInfusionRequest {\n return QueryAllInfusionRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllInfusionRequest {\n const message = createBaseQueryAllInfusionRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllInfusionResponse(): QueryAllInfusionResponse {\n return { Infusion: [], pagination: undefined, status: [] };\n}\n\nexport const QueryAllInfusionResponse: MessageFns = {\n encode(message: QueryAllInfusionResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.Infusion) {\n Infusion.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n writer.uint32(26).fork();\n for (const v of message.status) {\n writer.uint64(v);\n }\n writer.join();\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllInfusionResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllInfusionResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Infusion.push(Infusion.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n case 3: {\n if (tag === 24) {\n message.status.push(longToNumber(reader.uint64()));\n\n continue;\n }\n\n if (tag === 26) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.status.push(longToNumber(reader.uint64()));\n }\n\n continue;\n }\n\n break;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllInfusionResponse {\n return {\n Infusion: globalThis.Array.isArray(object?.Infusion) ? object.Infusion.map((e: any) => Infusion.fromJSON(e)) : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n status: globalThis.Array.isArray(object?.status) ? object.status.map((e: any) => globalThis.Number(e)) : [],\n };\n },\n\n toJSON(message: QueryAllInfusionResponse): unknown {\n const obj: any = {};\n if (message.Infusion?.length) {\n obj.Infusion = message.Infusion.map((e) => Infusion.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n if (message.status?.length) {\n obj.status = message.status.map((e) => Math.round(e));\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllInfusionResponse {\n return QueryAllInfusionResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllInfusionResponse {\n const message = createBaseQueryAllInfusionResponse();\n message.Infusion = object.Infusion?.map((e) => Infusion.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n message.status = object.status?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseQueryGetPermissionRequest(): QueryGetPermissionRequest {\n return { permissionId: \"\" };\n}\n\nexport const QueryGetPermissionRequest: MessageFns = {\n encode(message: QueryGetPermissionRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.permissionId !== \"\") {\n writer.uint32(10).string(message.permissionId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetPermissionRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetPermissionRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.permissionId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetPermissionRequest {\n return { permissionId: isSet(object.permissionId) ? globalThis.String(object.permissionId) : \"\" };\n },\n\n toJSON(message: QueryGetPermissionRequest): unknown {\n const obj: any = {};\n if (message.permissionId !== \"\") {\n obj.permissionId = message.permissionId;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetPermissionRequest {\n return QueryGetPermissionRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetPermissionRequest {\n const message = createBaseQueryGetPermissionRequest();\n message.permissionId = object.permissionId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryAllPermissionByObjectRequest(): QueryAllPermissionByObjectRequest {\n return { objectId: \"\", pagination: undefined };\n}\n\nexport const QueryAllPermissionByObjectRequest: MessageFns = {\n encode(message: QueryAllPermissionByObjectRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.objectId !== \"\") {\n writer.uint32(10).string(message.objectId);\n }\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPermissionByObjectRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPermissionByObjectRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.objectId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPermissionByObjectRequest {\n return {\n objectId: isSet(object.objectId) ? globalThis.String(object.objectId) : \"\",\n pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllPermissionByObjectRequest): unknown {\n const obj: any = {};\n if (message.objectId !== \"\") {\n obj.objectId = message.objectId;\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllPermissionByObjectRequest {\n return QueryAllPermissionByObjectRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllPermissionByObjectRequest {\n const message = createBaseQueryAllPermissionByObjectRequest();\n message.objectId = object.objectId ?? \"\";\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllPermissionByPlayerRequest(): QueryAllPermissionByPlayerRequest {\n return { playerId: \"\", pagination: undefined };\n}\n\nexport const QueryAllPermissionByPlayerRequest: MessageFns = {\n encode(message: QueryAllPermissionByPlayerRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.playerId !== \"\") {\n writer.uint32(10).string(message.playerId);\n }\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPermissionByPlayerRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPermissionByPlayerRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPermissionByPlayerRequest {\n return {\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllPermissionByPlayerRequest): unknown {\n const obj: any = {};\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllPermissionByPlayerRequest {\n return QueryAllPermissionByPlayerRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllPermissionByPlayerRequest {\n const message = createBaseQueryAllPermissionByPlayerRequest();\n message.playerId = object.playerId ?? \"\";\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllPermissionRequest(): QueryAllPermissionRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllPermissionRequest: MessageFns = {\n encode(message: QueryAllPermissionRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPermissionRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPermissionRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPermissionRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllPermissionRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllPermissionRequest {\n return QueryAllPermissionRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllPermissionRequest {\n const message = createBaseQueryAllPermissionRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetPermissionResponse(): QueryGetPermissionResponse {\n return { permissionRecord: undefined };\n}\n\nexport const QueryGetPermissionResponse: MessageFns = {\n encode(message: QueryGetPermissionResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.permissionRecord !== undefined) {\n PermissionRecord.encode(message.permissionRecord, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetPermissionResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetPermissionResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.permissionRecord = PermissionRecord.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetPermissionResponse {\n return {\n permissionRecord: isSet(object.permissionRecord) ? PermissionRecord.fromJSON(object.permissionRecord) : undefined,\n };\n },\n\n toJSON(message: QueryGetPermissionResponse): unknown {\n const obj: any = {};\n if (message.permissionRecord !== undefined) {\n obj.permissionRecord = PermissionRecord.toJSON(message.permissionRecord);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetPermissionResponse {\n return QueryGetPermissionResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetPermissionResponse {\n const message = createBaseQueryGetPermissionResponse();\n message.permissionRecord = (object.permissionRecord !== undefined && object.permissionRecord !== null)\n ? PermissionRecord.fromPartial(object.permissionRecord)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllPermissionResponse(): QueryAllPermissionResponse {\n return { permissionRecords: [], pagination: undefined };\n}\n\nexport const QueryAllPermissionResponse: MessageFns = {\n encode(message: QueryAllPermissionResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.permissionRecords) {\n PermissionRecord.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPermissionResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPermissionResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.permissionRecords.push(PermissionRecord.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPermissionResponse {\n return {\n permissionRecords: globalThis.Array.isArray(object?.permissionRecords)\n ? object.permissionRecords.map((e: any) => PermissionRecord.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllPermissionResponse): unknown {\n const obj: any = {};\n if (message.permissionRecords?.length) {\n obj.permissionRecords = message.permissionRecords.map((e) => PermissionRecord.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllPermissionResponse {\n return QueryAllPermissionResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllPermissionResponse {\n const message = createBaseQueryAllPermissionResponse();\n message.permissionRecords = object.permissionRecords?.map((e) => PermissionRecord.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetPlanetRequest(): QueryGetPlanetRequest {\n return { id: \"\" };\n}\n\nexport const QueryGetPlanetRequest: MessageFns = {\n encode(message: QueryGetPlanetRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetPlanetRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetPlanetRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetPlanetRequest {\n return { id: isSet(object.id) ? globalThis.String(object.id) : \"\" };\n },\n\n toJSON(message: QueryGetPlanetRequest): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetPlanetRequest {\n return QueryGetPlanetRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetPlanetRequest {\n const message = createBaseQueryGetPlanetRequest();\n message.id = object.id ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetPlanetResponse(): QueryGetPlanetResponse {\n return { Planet: undefined, gridAttributes: undefined, planetAttributes: undefined };\n}\n\nexport const QueryGetPlanetResponse: MessageFns = {\n encode(message: QueryGetPlanetResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.Planet !== undefined) {\n Planet.encode(message.Planet, writer.uint32(10).fork()).join();\n }\n if (message.gridAttributes !== undefined) {\n GridAttributes.encode(message.gridAttributes, writer.uint32(18).fork()).join();\n }\n if (message.planetAttributes !== undefined) {\n PlanetAttributes.encode(message.planetAttributes, writer.uint32(26).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetPlanetResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetPlanetResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Planet = Planet.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.gridAttributes = GridAttributes.decode(reader, reader.uint32());\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.planetAttributes = PlanetAttributes.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetPlanetResponse {\n return {\n Planet: isSet(object.Planet) ? Planet.fromJSON(object.Planet) : undefined,\n gridAttributes: isSet(object.gridAttributes) ? GridAttributes.fromJSON(object.gridAttributes) : undefined,\n planetAttributes: isSet(object.planetAttributes) ? PlanetAttributes.fromJSON(object.planetAttributes) : undefined,\n };\n },\n\n toJSON(message: QueryGetPlanetResponse): unknown {\n const obj: any = {};\n if (message.Planet !== undefined) {\n obj.Planet = Planet.toJSON(message.Planet);\n }\n if (message.gridAttributes !== undefined) {\n obj.gridAttributes = GridAttributes.toJSON(message.gridAttributes);\n }\n if (message.planetAttributes !== undefined) {\n obj.planetAttributes = PlanetAttributes.toJSON(message.planetAttributes);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetPlanetResponse {\n return QueryGetPlanetResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetPlanetResponse {\n const message = createBaseQueryGetPlanetResponse();\n message.Planet = (object.Planet !== undefined && object.Planet !== null)\n ? Planet.fromPartial(object.Planet)\n : undefined;\n message.gridAttributes = (object.gridAttributes !== undefined && object.gridAttributes !== null)\n ? GridAttributes.fromPartial(object.gridAttributes)\n : undefined;\n message.planetAttributes = (object.planetAttributes !== undefined && object.planetAttributes !== null)\n ? PlanetAttributes.fromPartial(object.planetAttributes)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllPlanetRequest(): QueryAllPlanetRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllPlanetRequest: MessageFns = {\n encode(message: QueryAllPlanetRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPlanetRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPlanetRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPlanetRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllPlanetRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllPlanetRequest {\n return QueryAllPlanetRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllPlanetRequest {\n const message = createBaseQueryAllPlanetRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllPlanetByPlayerRequest(): QueryAllPlanetByPlayerRequest {\n return { playerId: \"\", pagination: undefined };\n}\n\nexport const QueryAllPlanetByPlayerRequest: MessageFns = {\n encode(message: QueryAllPlanetByPlayerRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.playerId !== \"\") {\n writer.uint32(10).string(message.playerId);\n }\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPlanetByPlayerRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPlanetByPlayerRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPlanetByPlayerRequest {\n return {\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllPlanetByPlayerRequest): unknown {\n const obj: any = {};\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllPlanetByPlayerRequest {\n return QueryAllPlanetByPlayerRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllPlanetByPlayerRequest {\n const message = createBaseQueryAllPlanetByPlayerRequest();\n message.playerId = object.playerId ?? \"\";\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllPlanetResponse(): QueryAllPlanetResponse {\n return { Planet: [], pagination: undefined };\n}\n\nexport const QueryAllPlanetResponse: MessageFns = {\n encode(message: QueryAllPlanetResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.Planet) {\n Planet.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPlanetResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPlanetResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Planet.push(Planet.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPlanetResponse {\n return {\n Planet: globalThis.Array.isArray(object?.Planet) ? object.Planet.map((e: any) => Planet.fromJSON(e)) : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllPlanetResponse): unknown {\n const obj: any = {};\n if (message.Planet?.length) {\n obj.Planet = message.Planet.map((e) => Planet.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllPlanetResponse {\n return QueryAllPlanetResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllPlanetResponse {\n const message = createBaseQueryAllPlanetResponse();\n message.Planet = object.Planet?.map((e) => Planet.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetPlanetAttributeRequest(): QueryGetPlanetAttributeRequest {\n return { planetId: \"\", attributeType: \"\" };\n}\n\nexport const QueryGetPlanetAttributeRequest: MessageFns = {\n encode(message: QueryGetPlanetAttributeRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.planetId !== \"\") {\n writer.uint32(10).string(message.planetId);\n }\n if (message.attributeType !== \"\") {\n writer.uint32(18).string(message.attributeType);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetPlanetAttributeRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetPlanetAttributeRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.planetId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.attributeType = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetPlanetAttributeRequest {\n return {\n planetId: isSet(object.planetId) ? globalThis.String(object.planetId) : \"\",\n attributeType: isSet(object.attributeType) ? globalThis.String(object.attributeType) : \"\",\n };\n },\n\n toJSON(message: QueryGetPlanetAttributeRequest): unknown {\n const obj: any = {};\n if (message.planetId !== \"\") {\n obj.planetId = message.planetId;\n }\n if (message.attributeType !== \"\") {\n obj.attributeType = message.attributeType;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetPlanetAttributeRequest {\n return QueryGetPlanetAttributeRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetPlanetAttributeRequest {\n const message = createBaseQueryGetPlanetAttributeRequest();\n message.planetId = object.planetId ?? \"\";\n message.attributeType = object.attributeType ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetPlanetAttributeResponse(): QueryGetPlanetAttributeResponse {\n return { attribute: 0 };\n}\n\nexport const QueryGetPlanetAttributeResponse: MessageFns = {\n encode(message: QueryGetPlanetAttributeResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.attribute !== 0) {\n writer.uint32(8).uint64(message.attribute);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetPlanetAttributeResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetPlanetAttributeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.attribute = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetPlanetAttributeResponse {\n return { attribute: isSet(object.attribute) ? globalThis.Number(object.attribute) : 0 };\n },\n\n toJSON(message: QueryGetPlanetAttributeResponse): unknown {\n const obj: any = {};\n if (message.attribute !== 0) {\n obj.attribute = Math.round(message.attribute);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetPlanetAttributeResponse {\n return QueryGetPlanetAttributeResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetPlanetAttributeResponse {\n const message = createBaseQueryGetPlanetAttributeResponse();\n message.attribute = object.attribute ?? 0;\n return message;\n },\n};\n\nfunction createBaseQueryAllPlanetAttributeRequest(): QueryAllPlanetAttributeRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllPlanetAttributeRequest: MessageFns = {\n encode(message: QueryAllPlanetAttributeRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPlanetAttributeRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPlanetAttributeRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPlanetAttributeRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllPlanetAttributeRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllPlanetAttributeRequest {\n return QueryAllPlanetAttributeRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllPlanetAttributeRequest {\n const message = createBaseQueryAllPlanetAttributeRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllPlanetAttributeResponse(): QueryAllPlanetAttributeResponse {\n return { planetAttributeRecords: [], pagination: undefined };\n}\n\nexport const QueryAllPlanetAttributeResponse: MessageFns = {\n encode(message: QueryAllPlanetAttributeResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.planetAttributeRecords) {\n PlanetAttributeRecord.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPlanetAttributeResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPlanetAttributeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.planetAttributeRecords.push(PlanetAttributeRecord.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPlanetAttributeResponse {\n return {\n planetAttributeRecords: globalThis.Array.isArray(object?.planetAttributeRecords)\n ? object.planetAttributeRecords.map((e: any) => PlanetAttributeRecord.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllPlanetAttributeResponse): unknown {\n const obj: any = {};\n if (message.planetAttributeRecords?.length) {\n obj.planetAttributeRecords = message.planetAttributeRecords.map((e) => PlanetAttributeRecord.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllPlanetAttributeResponse {\n return QueryAllPlanetAttributeResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllPlanetAttributeResponse {\n const message = createBaseQueryAllPlanetAttributeResponse();\n message.planetAttributeRecords = object.planetAttributeRecords?.map((e) => PlanetAttributeRecord.fromPartial(e)) ||\n [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetPlayerRequest(): QueryGetPlayerRequest {\n return { id: \"\" };\n}\n\nexport const QueryGetPlayerRequest: MessageFns = {\n encode(message: QueryGetPlayerRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetPlayerRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetPlayerRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetPlayerRequest {\n return { id: isSet(object.id) ? globalThis.String(object.id) : \"\" };\n },\n\n toJSON(message: QueryGetPlayerRequest): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetPlayerRequest {\n return QueryGetPlayerRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetPlayerRequest {\n const message = createBaseQueryGetPlayerRequest();\n message.id = object.id ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetPlayerResponse(): QueryGetPlayerResponse {\n return { Player: undefined, gridAttributes: undefined, playerInventory: undefined, halted: false };\n}\n\nexport const QueryGetPlayerResponse: MessageFns = {\n encode(message: QueryGetPlayerResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.Player !== undefined) {\n Player.encode(message.Player, writer.uint32(10).fork()).join();\n }\n if (message.gridAttributes !== undefined) {\n GridAttributes.encode(message.gridAttributes, writer.uint32(18).fork()).join();\n }\n if (message.playerInventory !== undefined) {\n PlayerInventory.encode(message.playerInventory, writer.uint32(26).fork()).join();\n }\n if (message.halted !== false) {\n writer.uint32(32).bool(message.halted);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetPlayerResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetPlayerResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Player = Player.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.gridAttributes = GridAttributes.decode(reader, reader.uint32());\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerInventory = PlayerInventory.decode(reader, reader.uint32());\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.halted = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetPlayerResponse {\n return {\n Player: isSet(object.Player) ? Player.fromJSON(object.Player) : undefined,\n gridAttributes: isSet(object.gridAttributes) ? GridAttributes.fromJSON(object.gridAttributes) : undefined,\n playerInventory: isSet(object.playerInventory) ? PlayerInventory.fromJSON(object.playerInventory) : undefined,\n halted: isSet(object.halted) ? globalThis.Boolean(object.halted) : false,\n };\n },\n\n toJSON(message: QueryGetPlayerResponse): unknown {\n const obj: any = {};\n if (message.Player !== undefined) {\n obj.Player = Player.toJSON(message.Player);\n }\n if (message.gridAttributes !== undefined) {\n obj.gridAttributes = GridAttributes.toJSON(message.gridAttributes);\n }\n if (message.playerInventory !== undefined) {\n obj.playerInventory = PlayerInventory.toJSON(message.playerInventory);\n }\n if (message.halted !== false) {\n obj.halted = message.halted;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetPlayerResponse {\n return QueryGetPlayerResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetPlayerResponse {\n const message = createBaseQueryGetPlayerResponse();\n message.Player = (object.Player !== undefined && object.Player !== null)\n ? Player.fromPartial(object.Player)\n : undefined;\n message.gridAttributes = (object.gridAttributes !== undefined && object.gridAttributes !== null)\n ? GridAttributes.fromPartial(object.gridAttributes)\n : undefined;\n message.playerInventory = (object.playerInventory !== undefined && object.playerInventory !== null)\n ? PlayerInventory.fromPartial(object.playerInventory)\n : undefined;\n message.halted = object.halted ?? false;\n return message;\n },\n};\n\nfunction createBaseQueryAllPlayerRequest(): QueryAllPlayerRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllPlayerRequest: MessageFns = {\n encode(message: QueryAllPlayerRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPlayerRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPlayerRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPlayerRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllPlayerRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllPlayerRequest {\n return QueryAllPlayerRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllPlayerRequest {\n const message = createBaseQueryAllPlayerRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllPlayerResponse(): QueryAllPlayerResponse {\n return { Player: [], pagination: undefined };\n}\n\nexport const QueryAllPlayerResponse: MessageFns = {\n encode(message: QueryAllPlayerResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.Player) {\n Player.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPlayerResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPlayerResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Player.push(Player.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPlayerResponse {\n return {\n Player: globalThis.Array.isArray(object?.Player) ? object.Player.map((e: any) => Player.fromJSON(e)) : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllPlayerResponse): unknown {\n const obj: any = {};\n if (message.Player?.length) {\n obj.Player = message.Player.map((e) => Player.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllPlayerResponse {\n return QueryAllPlayerResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllPlayerResponse {\n const message = createBaseQueryAllPlayerResponse();\n message.Player = object.Player?.map((e) => Player.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllPlayerHaltedRequest(): QueryAllPlayerHaltedRequest {\n return {};\n}\n\nexport const QueryAllPlayerHaltedRequest: MessageFns = {\n encode(_: QueryAllPlayerHaltedRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPlayerHaltedRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPlayerHaltedRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): QueryAllPlayerHaltedRequest {\n return {};\n },\n\n toJSON(_: QueryAllPlayerHaltedRequest): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): QueryAllPlayerHaltedRequest {\n return QueryAllPlayerHaltedRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): QueryAllPlayerHaltedRequest {\n const message = createBaseQueryAllPlayerHaltedRequest();\n return message;\n },\n};\n\nfunction createBaseQueryAllPlayerHaltedResponse(): QueryAllPlayerHaltedResponse {\n return { PlayerId: [] };\n}\n\nexport const QueryAllPlayerHaltedResponse: MessageFns = {\n encode(message: QueryAllPlayerHaltedResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.PlayerId) {\n writer.uint32(10).string(v!);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllPlayerHaltedResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllPlayerHaltedResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.PlayerId.push(reader.string());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllPlayerHaltedResponse {\n return {\n PlayerId: globalThis.Array.isArray(object?.PlayerId) ? object.PlayerId.map((e: any) => globalThis.String(e)) : [],\n };\n },\n\n toJSON(message: QueryAllPlayerHaltedResponse): unknown {\n const obj: any = {};\n if (message.PlayerId?.length) {\n obj.PlayerId = message.PlayerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllPlayerHaltedResponse {\n return QueryAllPlayerHaltedResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllPlayerHaltedResponse {\n const message = createBaseQueryAllPlayerHaltedResponse();\n message.PlayerId = object.PlayerId?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseQueryGetProviderRequest(): QueryGetProviderRequest {\n return { id: \"\" };\n}\n\nexport const QueryGetProviderRequest: MessageFns = {\n encode(message: QueryGetProviderRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetProviderRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetProviderRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetProviderRequest {\n return { id: isSet(object.id) ? globalThis.String(object.id) : \"\" };\n },\n\n toJSON(message: QueryGetProviderRequest): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetProviderRequest {\n return QueryGetProviderRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetProviderRequest {\n const message = createBaseQueryGetProviderRequest();\n message.id = object.id ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetProviderResponse(): QueryGetProviderResponse {\n return { Provider: undefined, gridAttributes: undefined };\n}\n\nexport const QueryGetProviderResponse: MessageFns = {\n encode(message: QueryGetProviderResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.Provider !== undefined) {\n Provider.encode(message.Provider, writer.uint32(10).fork()).join();\n }\n if (message.gridAttributes !== undefined) {\n GridAttributes.encode(message.gridAttributes, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetProviderResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetProviderResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Provider = Provider.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.gridAttributes = GridAttributes.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetProviderResponse {\n return {\n Provider: isSet(object.Provider) ? Provider.fromJSON(object.Provider) : undefined,\n gridAttributes: isSet(object.gridAttributes) ? GridAttributes.fromJSON(object.gridAttributes) : undefined,\n };\n },\n\n toJSON(message: QueryGetProviderResponse): unknown {\n const obj: any = {};\n if (message.Provider !== undefined) {\n obj.Provider = Provider.toJSON(message.Provider);\n }\n if (message.gridAttributes !== undefined) {\n obj.gridAttributes = GridAttributes.toJSON(message.gridAttributes);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetProviderResponse {\n return QueryGetProviderResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetProviderResponse {\n const message = createBaseQueryGetProviderResponse();\n message.Provider = (object.Provider !== undefined && object.Provider !== null)\n ? Provider.fromPartial(object.Provider)\n : undefined;\n message.gridAttributes = (object.gridAttributes !== undefined && object.gridAttributes !== null)\n ? GridAttributes.fromPartial(object.gridAttributes)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllProviderRequest(): QueryAllProviderRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllProviderRequest: MessageFns = {\n encode(message: QueryAllProviderRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllProviderRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllProviderRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllProviderRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllProviderRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllProviderRequest {\n return QueryAllProviderRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllProviderRequest {\n const message = createBaseQueryAllProviderRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllProviderResponse(): QueryAllProviderResponse {\n return { Provider: [], pagination: undefined };\n}\n\nexport const QueryAllProviderResponse: MessageFns = {\n encode(message: QueryAllProviderResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.Provider) {\n Provider.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllProviderResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllProviderResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Provider.push(Provider.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllProviderResponse {\n return {\n Provider: globalThis.Array.isArray(object?.Provider) ? object.Provider.map((e: any) => Provider.fromJSON(e)) : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllProviderResponse): unknown {\n const obj: any = {};\n if (message.Provider?.length) {\n obj.Provider = message.Provider.map((e) => Provider.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllProviderResponse {\n return QueryAllProviderResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllProviderResponse {\n const message = createBaseQueryAllProviderResponse();\n message.Provider = object.Provider?.map((e) => Provider.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetProviderCollateralAddressRequest(): QueryGetProviderCollateralAddressRequest {\n return { providerId: \"\" };\n}\n\nexport const QueryGetProviderCollateralAddressRequest: MessageFns = {\n encode(message: QueryGetProviderCollateralAddressRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.providerId !== \"\") {\n writer.uint32(10).string(message.providerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetProviderCollateralAddressRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetProviderCollateralAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetProviderCollateralAddressRequest {\n return { providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\" };\n },\n\n toJSON(message: QueryGetProviderCollateralAddressRequest): unknown {\n const obj: any = {};\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryGetProviderCollateralAddressRequest {\n return QueryGetProviderCollateralAddressRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetProviderCollateralAddressRequest {\n const message = createBaseQueryGetProviderCollateralAddressRequest();\n message.providerId = object.providerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryAllProviderCollateralAddressRequest(): QueryAllProviderCollateralAddressRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllProviderCollateralAddressRequest: MessageFns = {\n encode(message: QueryAllProviderCollateralAddressRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllProviderCollateralAddressRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllProviderCollateralAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllProviderCollateralAddressRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllProviderCollateralAddressRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllProviderCollateralAddressRequest {\n return QueryAllProviderCollateralAddressRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllProviderCollateralAddressRequest {\n const message = createBaseQueryAllProviderCollateralAddressRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllProviderCollateralAddressResponse(): QueryAllProviderCollateralAddressResponse {\n return { internalAddressAssociation: [], pagination: undefined };\n}\n\nexport const QueryAllProviderCollateralAddressResponse: MessageFns = {\n encode(message: QueryAllProviderCollateralAddressResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.internalAddressAssociation) {\n InternalAddressAssociation.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllProviderCollateralAddressResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllProviderCollateralAddressResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.internalAddressAssociation.push(InternalAddressAssociation.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllProviderCollateralAddressResponse {\n return {\n internalAddressAssociation: globalThis.Array.isArray(object?.internalAddressAssociation)\n ? object.internalAddressAssociation.map((e: any) => InternalAddressAssociation.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllProviderCollateralAddressResponse): unknown {\n const obj: any = {};\n if (message.internalAddressAssociation?.length) {\n obj.internalAddressAssociation = message.internalAddressAssociation.map((e) =>\n InternalAddressAssociation.toJSON(e)\n );\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllProviderCollateralAddressResponse {\n return QueryAllProviderCollateralAddressResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllProviderCollateralAddressResponse {\n const message = createBaseQueryAllProviderCollateralAddressResponse();\n message.internalAddressAssociation =\n object.internalAddressAssociation?.map((e) => InternalAddressAssociation.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetProviderByCollateralAddressRequest(): QueryGetProviderByCollateralAddressRequest {\n return { address: \"\" };\n}\n\nexport const QueryGetProviderByCollateralAddressRequest: MessageFns = {\n encode(message: QueryGetProviderByCollateralAddressRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetProviderByCollateralAddressRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetProviderByCollateralAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetProviderByCollateralAddressRequest {\n return { address: isSet(object.address) ? globalThis.String(object.address) : \"\" };\n },\n\n toJSON(message: QueryGetProviderByCollateralAddressRequest): unknown {\n const obj: any = {};\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryGetProviderByCollateralAddressRequest {\n return QueryGetProviderByCollateralAddressRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetProviderByCollateralAddressRequest {\n const message = createBaseQueryGetProviderByCollateralAddressRequest();\n message.address = object.address ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetProviderEarningsAddressRequest(): QueryGetProviderEarningsAddressRequest {\n return { providerId: \"\" };\n}\n\nexport const QueryGetProviderEarningsAddressRequest: MessageFns = {\n encode(message: QueryGetProviderEarningsAddressRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.providerId !== \"\") {\n writer.uint32(10).string(message.providerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetProviderEarningsAddressRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetProviderEarningsAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetProviderEarningsAddressRequest {\n return { providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\" };\n },\n\n toJSON(message: QueryGetProviderEarningsAddressRequest): unknown {\n const obj: any = {};\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryGetProviderEarningsAddressRequest {\n return QueryGetProviderEarningsAddressRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetProviderEarningsAddressRequest {\n const message = createBaseQueryGetProviderEarningsAddressRequest();\n message.providerId = object.providerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryAllProviderEarningsAddressRequest(): QueryAllProviderEarningsAddressRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllProviderEarningsAddressRequest: MessageFns = {\n encode(message: QueryAllProviderEarningsAddressRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllProviderEarningsAddressRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllProviderEarningsAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllProviderEarningsAddressRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllProviderEarningsAddressRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllProviderEarningsAddressRequest {\n return QueryAllProviderEarningsAddressRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllProviderEarningsAddressRequest {\n const message = createBaseQueryAllProviderEarningsAddressRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllProviderEarningsAddressResponse(): QueryAllProviderEarningsAddressResponse {\n return { internalAddressAssociation: [], pagination: undefined };\n}\n\nexport const QueryAllProviderEarningsAddressResponse: MessageFns = {\n encode(message: QueryAllProviderEarningsAddressResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.internalAddressAssociation) {\n InternalAddressAssociation.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllProviderEarningsAddressResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllProviderEarningsAddressResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.internalAddressAssociation.push(InternalAddressAssociation.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllProviderEarningsAddressResponse {\n return {\n internalAddressAssociation: globalThis.Array.isArray(object?.internalAddressAssociation)\n ? object.internalAddressAssociation.map((e: any) => InternalAddressAssociation.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllProviderEarningsAddressResponse): unknown {\n const obj: any = {};\n if (message.internalAddressAssociation?.length) {\n obj.internalAddressAssociation = message.internalAddressAssociation.map((e) =>\n InternalAddressAssociation.toJSON(e)\n );\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryAllProviderEarningsAddressResponse {\n return QueryAllProviderEarningsAddressResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllProviderEarningsAddressResponse {\n const message = createBaseQueryAllProviderEarningsAddressResponse();\n message.internalAddressAssociation =\n object.internalAddressAssociation?.map((e) => InternalAddressAssociation.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetProviderByEarningsAddressRequest(): QueryGetProviderByEarningsAddressRequest {\n return { address: \"\" };\n}\n\nexport const QueryGetProviderByEarningsAddressRequest: MessageFns = {\n encode(message: QueryGetProviderByEarningsAddressRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetProviderByEarningsAddressRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetProviderByEarningsAddressRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetProviderByEarningsAddressRequest {\n return { address: isSet(object.address) ? globalThis.String(object.address) : \"\" };\n },\n\n toJSON(message: QueryGetProviderByEarningsAddressRequest): unknown {\n const obj: any = {};\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): QueryGetProviderByEarningsAddressRequest {\n return QueryGetProviderByEarningsAddressRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetProviderByEarningsAddressRequest {\n const message = createBaseQueryGetProviderByEarningsAddressRequest();\n message.address = object.address ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetReactorRequest(): QueryGetReactorRequest {\n return { id: \"\" };\n}\n\nexport const QueryGetReactorRequest: MessageFns = {\n encode(message: QueryGetReactorRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetReactorRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetReactorRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetReactorRequest {\n return { id: isSet(object.id) ? globalThis.String(object.id) : \"\" };\n },\n\n toJSON(message: QueryGetReactorRequest): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetReactorRequest {\n return QueryGetReactorRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetReactorRequest {\n const message = createBaseQueryGetReactorRequest();\n message.id = object.id ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetReactorResponse(): QueryGetReactorResponse {\n return { Reactor: undefined, gridAttributes: undefined };\n}\n\nexport const QueryGetReactorResponse: MessageFns = {\n encode(message: QueryGetReactorResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.Reactor !== undefined) {\n Reactor.encode(message.Reactor, writer.uint32(10).fork()).join();\n }\n if (message.gridAttributes !== undefined) {\n GridAttributes.encode(message.gridAttributes, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetReactorResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetReactorResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Reactor = Reactor.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.gridAttributes = GridAttributes.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetReactorResponse {\n return {\n Reactor: isSet(object.Reactor) ? Reactor.fromJSON(object.Reactor) : undefined,\n gridAttributes: isSet(object.gridAttributes) ? GridAttributes.fromJSON(object.gridAttributes) : undefined,\n };\n },\n\n toJSON(message: QueryGetReactorResponse): unknown {\n const obj: any = {};\n if (message.Reactor !== undefined) {\n obj.Reactor = Reactor.toJSON(message.Reactor);\n }\n if (message.gridAttributes !== undefined) {\n obj.gridAttributes = GridAttributes.toJSON(message.gridAttributes);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetReactorResponse {\n return QueryGetReactorResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetReactorResponse {\n const message = createBaseQueryGetReactorResponse();\n message.Reactor = (object.Reactor !== undefined && object.Reactor !== null)\n ? Reactor.fromPartial(object.Reactor)\n : undefined;\n message.gridAttributes = (object.gridAttributes !== undefined && object.gridAttributes !== null)\n ? GridAttributes.fromPartial(object.gridAttributes)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllReactorRequest(): QueryAllReactorRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllReactorRequest: MessageFns = {\n encode(message: QueryAllReactorRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllReactorRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllReactorRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllReactorRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllReactorRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllReactorRequest {\n return QueryAllReactorRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllReactorRequest {\n const message = createBaseQueryAllReactorRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllReactorResponse(): QueryAllReactorResponse {\n return { Reactor: [], pagination: undefined };\n}\n\nexport const QueryAllReactorResponse: MessageFns = {\n encode(message: QueryAllReactorResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.Reactor) {\n Reactor.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllReactorResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllReactorResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Reactor.push(Reactor.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllReactorResponse {\n return {\n Reactor: globalThis.Array.isArray(object?.Reactor) ? object.Reactor.map((e: any) => Reactor.fromJSON(e)) : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllReactorResponse): unknown {\n const obj: any = {};\n if (message.Reactor?.length) {\n obj.Reactor = message.Reactor.map((e) => Reactor.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllReactorResponse {\n return QueryAllReactorResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllReactorResponse {\n const message = createBaseQueryAllReactorResponse();\n message.Reactor = object.Reactor?.map((e) => Reactor.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetStructRequest(): QueryGetStructRequest {\n return { id: \"\" };\n}\n\nexport const QueryGetStructRequest: MessageFns = {\n encode(message: QueryGetStructRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetStructRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetStructRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetStructRequest {\n return { id: isSet(object.id) ? globalThis.String(object.id) : \"\" };\n },\n\n toJSON(message: QueryGetStructRequest): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetStructRequest {\n return QueryGetStructRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetStructRequest {\n const message = createBaseQueryGetStructRequest();\n message.id = object.id ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetStructResponse(): QueryGetStructResponse {\n return { Struct: undefined, structAttributes: undefined, gridAttributes: undefined, structDefenders: [] };\n}\n\nexport const QueryGetStructResponse: MessageFns = {\n encode(message: QueryGetStructResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.Struct !== undefined) {\n Struct.encode(message.Struct, writer.uint32(10).fork()).join();\n }\n if (message.structAttributes !== undefined) {\n StructAttributes.encode(message.structAttributes, writer.uint32(18).fork()).join();\n }\n if (message.gridAttributes !== undefined) {\n GridAttributes.encode(message.gridAttributes, writer.uint32(26).fork()).join();\n }\n for (const v of message.structDefenders) {\n writer.uint32(34).string(v!);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetStructResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetStructResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Struct = Struct.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structAttributes = StructAttributes.decode(reader, reader.uint32());\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.gridAttributes = GridAttributes.decode(reader, reader.uint32());\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.structDefenders.push(reader.string());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetStructResponse {\n return {\n Struct: isSet(object.Struct) ? Struct.fromJSON(object.Struct) : undefined,\n structAttributes: isSet(object.structAttributes) ? StructAttributes.fromJSON(object.structAttributes) : undefined,\n gridAttributes: isSet(object.gridAttributes) ? GridAttributes.fromJSON(object.gridAttributes) : undefined,\n structDefenders: globalThis.Array.isArray(object?.structDefenders)\n ? object.structDefenders.map((e: any) => globalThis.String(e))\n : [],\n };\n },\n\n toJSON(message: QueryGetStructResponse): unknown {\n const obj: any = {};\n if (message.Struct !== undefined) {\n obj.Struct = Struct.toJSON(message.Struct);\n }\n if (message.structAttributes !== undefined) {\n obj.structAttributes = StructAttributes.toJSON(message.structAttributes);\n }\n if (message.gridAttributes !== undefined) {\n obj.gridAttributes = GridAttributes.toJSON(message.gridAttributes);\n }\n if (message.structDefenders?.length) {\n obj.structDefenders = message.structDefenders;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetStructResponse {\n return QueryGetStructResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetStructResponse {\n const message = createBaseQueryGetStructResponse();\n message.Struct = (object.Struct !== undefined && object.Struct !== null)\n ? Struct.fromPartial(object.Struct)\n : undefined;\n message.structAttributes = (object.structAttributes !== undefined && object.structAttributes !== null)\n ? StructAttributes.fromPartial(object.structAttributes)\n : undefined;\n message.gridAttributes = (object.gridAttributes !== undefined && object.gridAttributes !== null)\n ? GridAttributes.fromPartial(object.gridAttributes)\n : undefined;\n message.structDefenders = object.structDefenders?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseQueryAllStructRequest(): QueryAllStructRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllStructRequest: MessageFns = {\n encode(message: QueryAllStructRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllStructRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllStructRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllStructRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllStructRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllStructRequest {\n return QueryAllStructRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllStructRequest {\n const message = createBaseQueryAllStructRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllStructResponse(): QueryAllStructResponse {\n return { Struct: [], pagination: undefined };\n}\n\nexport const QueryAllStructResponse: MessageFns = {\n encode(message: QueryAllStructResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.Struct) {\n Struct.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllStructResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllStructResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Struct.push(Struct.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllStructResponse {\n return {\n Struct: globalThis.Array.isArray(object?.Struct) ? object.Struct.map((e: any) => Struct.fromJSON(e)) : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllStructResponse): unknown {\n const obj: any = {};\n if (message.Struct?.length) {\n obj.Struct = message.Struct.map((e) => Struct.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllStructResponse {\n return QueryAllStructResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllStructResponse {\n const message = createBaseQueryAllStructResponse();\n message.Struct = object.Struct?.map((e) => Struct.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetStructAttributeRequest(): QueryGetStructAttributeRequest {\n return { structId: \"\", attributeType: \"\" };\n}\n\nexport const QueryGetStructAttributeRequest: MessageFns = {\n encode(message: QueryGetStructAttributeRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.structId !== \"\") {\n writer.uint32(10).string(message.structId);\n }\n if (message.attributeType !== \"\") {\n writer.uint32(18).string(message.attributeType);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetStructAttributeRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetStructAttributeRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.attributeType = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetStructAttributeRequest {\n return {\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n attributeType: isSet(object.attributeType) ? globalThis.String(object.attributeType) : \"\",\n };\n },\n\n toJSON(message: QueryGetStructAttributeRequest): unknown {\n const obj: any = {};\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n if (message.attributeType !== \"\") {\n obj.attributeType = message.attributeType;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetStructAttributeRequest {\n return QueryGetStructAttributeRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetStructAttributeRequest {\n const message = createBaseQueryGetStructAttributeRequest();\n message.structId = object.structId ?? \"\";\n message.attributeType = object.attributeType ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetStructAttributeResponse(): QueryGetStructAttributeResponse {\n return { attribute: 0 };\n}\n\nexport const QueryGetStructAttributeResponse: MessageFns = {\n encode(message: QueryGetStructAttributeResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.attribute !== 0) {\n writer.uint32(8).uint64(message.attribute);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetStructAttributeResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetStructAttributeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.attribute = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetStructAttributeResponse {\n return { attribute: isSet(object.attribute) ? globalThis.Number(object.attribute) : 0 };\n },\n\n toJSON(message: QueryGetStructAttributeResponse): unknown {\n const obj: any = {};\n if (message.attribute !== 0) {\n obj.attribute = Math.round(message.attribute);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetStructAttributeResponse {\n return QueryGetStructAttributeResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryGetStructAttributeResponse {\n const message = createBaseQueryGetStructAttributeResponse();\n message.attribute = object.attribute ?? 0;\n return message;\n },\n};\n\nfunction createBaseQueryAllStructAttributeRequest(): QueryAllStructAttributeRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllStructAttributeRequest: MessageFns = {\n encode(message: QueryAllStructAttributeRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllStructAttributeRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllStructAttributeRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllStructAttributeRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllStructAttributeRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllStructAttributeRequest {\n return QueryAllStructAttributeRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllStructAttributeRequest {\n const message = createBaseQueryAllStructAttributeRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllStructAttributeResponse(): QueryAllStructAttributeResponse {\n return { structAttributeRecords: [], pagination: undefined };\n}\n\nexport const QueryAllStructAttributeResponse: MessageFns = {\n encode(message: QueryAllStructAttributeResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.structAttributeRecords) {\n StructAttributeRecord.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllStructAttributeResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllStructAttributeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.structAttributeRecords.push(StructAttributeRecord.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllStructAttributeResponse {\n return {\n structAttributeRecords: globalThis.Array.isArray(object?.structAttributeRecords)\n ? object.structAttributeRecords.map((e: any) => StructAttributeRecord.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllStructAttributeResponse): unknown {\n const obj: any = {};\n if (message.structAttributeRecords?.length) {\n obj.structAttributeRecords = message.structAttributeRecords.map((e) => StructAttributeRecord.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllStructAttributeResponse {\n return QueryAllStructAttributeResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryAllStructAttributeResponse {\n const message = createBaseQueryAllStructAttributeResponse();\n message.structAttributeRecords = object.structAttributeRecords?.map((e) => StructAttributeRecord.fromPartial(e)) ||\n [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetStructTypeRequest(): QueryGetStructTypeRequest {\n return { id: 0 };\n}\n\nexport const QueryGetStructTypeRequest: MessageFns = {\n encode(message: QueryGetStructTypeRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== 0) {\n writer.uint32(8).uint64(message.id);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetStructTypeRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetStructTypeRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.id = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetStructTypeRequest {\n return { id: isSet(object.id) ? globalThis.Number(object.id) : 0 };\n },\n\n toJSON(message: QueryGetStructTypeRequest): unknown {\n const obj: any = {};\n if (message.id !== 0) {\n obj.id = Math.round(message.id);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetStructTypeRequest {\n return QueryGetStructTypeRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetStructTypeRequest {\n const message = createBaseQueryGetStructTypeRequest();\n message.id = object.id ?? 0;\n return message;\n },\n};\n\nfunction createBaseQueryGetStructTypeResponse(): QueryGetStructTypeResponse {\n return { StructType: undefined };\n}\n\nexport const QueryGetStructTypeResponse: MessageFns = {\n encode(message: QueryGetStructTypeResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.StructType !== undefined) {\n StructType.encode(message.StructType, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetStructTypeResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetStructTypeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.StructType = StructType.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetStructTypeResponse {\n return { StructType: isSet(object.StructType) ? StructType.fromJSON(object.StructType) : undefined };\n },\n\n toJSON(message: QueryGetStructTypeResponse): unknown {\n const obj: any = {};\n if (message.StructType !== undefined) {\n obj.StructType = StructType.toJSON(message.StructType);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetStructTypeResponse {\n return QueryGetStructTypeResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetStructTypeResponse {\n const message = createBaseQueryGetStructTypeResponse();\n message.StructType = (object.StructType !== undefined && object.StructType !== null)\n ? StructType.fromPartial(object.StructType)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllStructTypeRequest(): QueryAllStructTypeRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllStructTypeRequest: MessageFns = {\n encode(message: QueryAllStructTypeRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllStructTypeRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllStructTypeRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllStructTypeRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllStructTypeRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllStructTypeRequest {\n return QueryAllStructTypeRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllStructTypeRequest {\n const message = createBaseQueryAllStructTypeRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllStructTypeResponse(): QueryAllStructTypeResponse {\n return { StructType: [], pagination: undefined };\n}\n\nexport const QueryAllStructTypeResponse: MessageFns = {\n encode(message: QueryAllStructTypeResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.StructType) {\n StructType.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllStructTypeResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllStructTypeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.StructType.push(StructType.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllStructTypeResponse {\n return {\n StructType: globalThis.Array.isArray(object?.StructType)\n ? object.StructType.map((e: any) => StructType.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllStructTypeResponse): unknown {\n const obj: any = {};\n if (message.StructType?.length) {\n obj.StructType = message.StructType.map((e) => StructType.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllStructTypeResponse {\n return QueryAllStructTypeResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllStructTypeResponse {\n const message = createBaseQueryAllStructTypeResponse();\n message.StructType = object.StructType?.map((e) => StructType.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryGetSubstationRequest(): QueryGetSubstationRequest {\n return { id: \"\" };\n}\n\nexport const QueryGetSubstationRequest: MessageFns = {\n encode(message: QueryGetSubstationRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetSubstationRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetSubstationRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetSubstationRequest {\n return { id: isSet(object.id) ? globalThis.String(object.id) : \"\" };\n },\n\n toJSON(message: QueryGetSubstationRequest): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetSubstationRequest {\n return QueryGetSubstationRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetSubstationRequest {\n const message = createBaseQueryGetSubstationRequest();\n message.id = object.id ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryGetSubstationResponse(): QueryGetSubstationResponse {\n return { Substation: undefined, gridAttributes: undefined };\n}\n\nexport const QueryGetSubstationResponse: MessageFns = {\n encode(message: QueryGetSubstationResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.Substation !== undefined) {\n Substation.encode(message.Substation, writer.uint32(10).fork()).join();\n }\n if (message.gridAttributes !== undefined) {\n GridAttributes.encode(message.gridAttributes, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryGetSubstationResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryGetSubstationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Substation = Substation.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.gridAttributes = GridAttributes.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryGetSubstationResponse {\n return {\n Substation: isSet(object.Substation) ? Substation.fromJSON(object.Substation) : undefined,\n gridAttributes: isSet(object.gridAttributes) ? GridAttributes.fromJSON(object.gridAttributes) : undefined,\n };\n },\n\n toJSON(message: QueryGetSubstationResponse): unknown {\n const obj: any = {};\n if (message.Substation !== undefined) {\n obj.Substation = Substation.toJSON(message.Substation);\n }\n if (message.gridAttributes !== undefined) {\n obj.gridAttributes = GridAttributes.toJSON(message.gridAttributes);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryGetSubstationResponse {\n return QueryGetSubstationResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryGetSubstationResponse {\n const message = createBaseQueryGetSubstationResponse();\n message.Substation = (object.Substation !== undefined && object.Substation !== null)\n ? Substation.fromPartial(object.Substation)\n : undefined;\n message.gridAttributes = (object.gridAttributes !== undefined && object.gridAttributes !== null)\n ? GridAttributes.fromPartial(object.gridAttributes)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllSubstationRequest(): QueryAllSubstationRequest {\n return { pagination: undefined };\n}\n\nexport const QueryAllSubstationRequest: MessageFns = {\n encode(message: QueryAllSubstationRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pagination !== undefined) {\n PageRequest.encode(message.pagination, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllSubstationRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllSubstationRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.pagination = PageRequest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllSubstationRequest {\n return { pagination: isSet(object.pagination) ? PageRequest.fromJSON(object.pagination) : undefined };\n },\n\n toJSON(message: QueryAllSubstationRequest): unknown {\n const obj: any = {};\n if (message.pagination !== undefined) {\n obj.pagination = PageRequest.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllSubstationRequest {\n return QueryAllSubstationRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllSubstationRequest {\n const message = createBaseQueryAllSubstationRequest();\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryAllSubstationResponse(): QueryAllSubstationResponse {\n return { Substation: [], pagination: undefined };\n}\n\nexport const QueryAllSubstationResponse: MessageFns = {\n encode(message: QueryAllSubstationResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.Substation) {\n Substation.encode(v!, writer.uint32(10).fork()).join();\n }\n if (message.pagination !== undefined) {\n PageResponse.encode(message.pagination, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryAllSubstationResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryAllSubstationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.Substation.push(Substation.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.pagination = PageResponse.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryAllSubstationResponse {\n return {\n Substation: globalThis.Array.isArray(object?.Substation)\n ? object.Substation.map((e: any) => Substation.fromJSON(e))\n : [],\n pagination: isSet(object.pagination) ? PageResponse.fromJSON(object.pagination) : undefined,\n };\n },\n\n toJSON(message: QueryAllSubstationResponse): unknown {\n const obj: any = {};\n if (message.Substation?.length) {\n obj.Substation = message.Substation.map((e) => Substation.toJSON(e));\n }\n if (message.pagination !== undefined) {\n obj.pagination = PageResponse.toJSON(message.pagination);\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryAllSubstationResponse {\n return QueryAllSubstationResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): QueryAllSubstationResponse {\n const message = createBaseQueryAllSubstationResponse();\n message.Substation = object.Substation?.map((e) => Substation.fromPartial(e)) || [];\n message.pagination = (object.pagination !== undefined && object.pagination !== null)\n ? PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseQueryValidateSignatureRequest(): QueryValidateSignatureRequest {\n return { address: \"\", message: \"\", proofPubKey: \"\", proofSignature: \"\" };\n}\n\nexport const QueryValidateSignatureRequest: MessageFns = {\n encode(message: QueryValidateSignatureRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.message !== \"\") {\n writer.uint32(18).string(message.message);\n }\n if (message.proofPubKey !== \"\") {\n writer.uint32(26).string(message.proofPubKey);\n }\n if (message.proofSignature !== \"\") {\n writer.uint32(34).string(message.proofSignature);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryValidateSignatureRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidateSignatureRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.message = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.proofPubKey = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.proofSignature = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryValidateSignatureRequest {\n return {\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n message: isSet(object.message) ? globalThis.String(object.message) : \"\",\n proofPubKey: isSet(object.proofPubKey) ? globalThis.String(object.proofPubKey) : \"\",\n proofSignature: isSet(object.proofSignature) ? globalThis.String(object.proofSignature) : \"\",\n };\n },\n\n toJSON(message: QueryValidateSignatureRequest): unknown {\n const obj: any = {};\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.message !== \"\") {\n obj.message = message.message;\n }\n if (message.proofPubKey !== \"\") {\n obj.proofPubKey = message.proofPubKey;\n }\n if (message.proofSignature !== \"\") {\n obj.proofSignature = message.proofSignature;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryValidateSignatureRequest {\n return QueryValidateSignatureRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryValidateSignatureRequest {\n const message = createBaseQueryValidateSignatureRequest();\n message.address = object.address ?? \"\";\n message.message = object.message ?? \"\";\n message.proofPubKey = object.proofPubKey ?? \"\";\n message.proofSignature = object.proofSignature ?? \"\";\n return message;\n },\n};\n\nfunction createBaseQueryValidateSignatureResponse(): QueryValidateSignatureResponse {\n return {\n pubkeyFormatError: false,\n signatureFormatError: false,\n addressPubkeyMismatch: false,\n signatureInvalid: false,\n valid: false,\n };\n}\n\nexport const QueryValidateSignatureResponse: MessageFns = {\n encode(message: QueryValidateSignatureResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.pubkeyFormatError !== false) {\n writer.uint32(8).bool(message.pubkeyFormatError);\n }\n if (message.signatureFormatError !== false) {\n writer.uint32(16).bool(message.signatureFormatError);\n }\n if (message.addressPubkeyMismatch !== false) {\n writer.uint32(24).bool(message.addressPubkeyMismatch);\n }\n if (message.signatureInvalid !== false) {\n writer.uint32(32).bool(message.signatureInvalid);\n }\n if (message.valid !== false) {\n writer.uint32(40).bool(message.valid);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): QueryValidateSignatureResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseQueryValidateSignatureResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.pubkeyFormatError = reader.bool();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.signatureFormatError = reader.bool();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.addressPubkeyMismatch = reader.bool();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.signatureInvalid = reader.bool();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.valid = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): QueryValidateSignatureResponse {\n return {\n pubkeyFormatError: isSet(object.pubkeyFormatError) ? globalThis.Boolean(object.pubkeyFormatError) : false,\n signatureFormatError: isSet(object.signatureFormatError)\n ? globalThis.Boolean(object.signatureFormatError)\n : false,\n addressPubkeyMismatch: isSet(object.addressPubkeyMismatch)\n ? globalThis.Boolean(object.addressPubkeyMismatch)\n : false,\n signatureInvalid: isSet(object.signatureInvalid) ? globalThis.Boolean(object.signatureInvalid) : false,\n valid: isSet(object.valid) ? globalThis.Boolean(object.valid) : false,\n };\n },\n\n toJSON(message: QueryValidateSignatureResponse): unknown {\n const obj: any = {};\n if (message.pubkeyFormatError !== false) {\n obj.pubkeyFormatError = message.pubkeyFormatError;\n }\n if (message.signatureFormatError !== false) {\n obj.signatureFormatError = message.signatureFormatError;\n }\n if (message.addressPubkeyMismatch !== false) {\n obj.addressPubkeyMismatch = message.addressPubkeyMismatch;\n }\n if (message.signatureInvalid !== false) {\n obj.signatureInvalid = message.signatureInvalid;\n }\n if (message.valid !== false) {\n obj.valid = message.valid;\n }\n return obj;\n },\n\n create, I>>(base?: I): QueryValidateSignatureResponse {\n return QueryValidateSignatureResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): QueryValidateSignatureResponse {\n const message = createBaseQueryValidateSignatureResponse();\n message.pubkeyFormatError = object.pubkeyFormatError ?? false;\n message.signatureFormatError = object.signatureFormatError ?? false;\n message.addressPubkeyMismatch = object.addressPubkeyMismatch ?? false;\n message.signatureInvalid = object.signatureInvalid ?? false;\n message.valid = object.valid ?? false;\n return message;\n },\n};\n\n/** Query defines the gRPC querier service. */\nexport interface Query {\n GetBlockHeight(request: QueryBlockHeight): Promise;\n /** Parameters queries the parameters of the module. */\n Params(request: QueryParamsRequest): Promise;\n /** Queries for Addresses. */\n Address(request: QueryGetAddressRequest): Promise;\n AddressAll(request: QueryAllAddressRequest): Promise;\n AddressAllByPlayer(request: QueryAllAddressByPlayerRequest): Promise;\n /** Queries a list of Agreement items. */\n Agreement(request: QueryGetAgreementRequest): Promise;\n AgreementAll(request: QueryAllAgreementRequest): Promise;\n AgreementAllByProvider(request: QueryAllAgreementByProviderRequest): Promise;\n /** Queries a list of Allocation items. */\n Allocation(request: QueryGetAllocationRequest): Promise;\n AllocationAll(request: QueryAllAllocationRequest): Promise;\n AllocationAllBySource(request: QueryAllAllocationBySourceRequest): Promise;\n AllocationAllByDestination(request: QueryAllAllocationByDestinationRequest): Promise;\n /** Queries a list of Fleet items. */\n Fleet(request: QueryGetFleetRequest): Promise;\n FleetByIndex(request: QueryGetFleetByIndexRequest): Promise;\n FleetAll(request: QueryAllFleetRequest): Promise;\n /** Queries a specific Grid details */\n Grid(request: QueryGetGridRequest): Promise;\n /** Queries a list of all Grid details */\n GridAll(request: QueryAllGridRequest): Promise;\n /** Queries a list of Guild items. */\n Guild(request: QueryGetGuildRequest): Promise;\n GuildAll(request: QueryAllGuildRequest): Promise;\n GuildBankCollateralAddress(\n request: QueryGetGuildBankCollateralAddressRequest,\n ): Promise;\n GuildBankCollateralAddressAll(\n request: QueryAllGuildBankCollateralAddressRequest,\n ): Promise;\n GuildMembershipApplication(\n request: QueryGetGuildMembershipApplicationRequest,\n ): Promise;\n GuildMembershipApplicationAll(\n request: QueryAllGuildMembershipApplicationRequest,\n ): Promise;\n /** Queries a list of Infusions. */\n Infusion(request: QueryGetInfusionRequest): Promise;\n InfusionAll(request: QueryAllInfusionRequest): Promise;\n InfusionAllByDestination(request: QueryAllInfusionByDestinationRequest): Promise;\n /** Queries a specific Permission */\n Permission(request: QueryGetPermissionRequest): Promise;\n /** Queries a list of Permissions based on Object */\n PermissionByObject(request: QueryAllPermissionByObjectRequest): Promise;\n /** Queries a list of Permissions based on the Player with the permissions */\n PermissionByPlayer(request: QueryAllPermissionByPlayerRequest): Promise;\n /** Queries a list of all Permissions */\n PermissionAll(request: QueryAllPermissionRequest): Promise;\n /** Queries a list of Player items. */\n Player(request: QueryGetPlayerRequest): Promise;\n PlayerAll(request: QueryAllPlayerRequest): Promise;\n PlayerHaltedAll(request: QueryAllPlayerHaltedRequest): Promise;\n /** Queries a list of Planet items. */\n Planet(request: QueryGetPlanetRequest): Promise;\n PlanetAll(request: QueryAllPlanetRequest): Promise;\n PlanetAllByPlayer(request: QueryAllPlanetByPlayerRequest): Promise;\n PlanetAttribute(request: QueryGetPlanetAttributeRequest): Promise;\n /** Queries a list of all Planet Attributes */\n PlanetAttributeAll(request: QueryAllPlanetAttributeRequest): Promise;\n /** Queries a list of Allocation items. */\n Provider(request: QueryGetProviderRequest): Promise;\n ProviderAll(request: QueryAllProviderRequest): Promise;\n ProviderCollateralAddress(\n request: QueryGetProviderCollateralAddressRequest,\n ): Promise;\n ProviderCollateralAddressAll(\n request: QueryAllProviderCollateralAddressRequest,\n ): Promise;\n /**\n * TODO Requires a lookup table that I don't know if we care about\n * rpc ProviderByCollateralAddress (QueryGetProviderByCollateralAddressRequest) returns (QueryGetProviderResponse) {\n * option (google.api.http).get = \"/structs/provider_by_collateral_address/{address}\";\n * }\n */\n ProviderEarningsAddress(\n request: QueryGetProviderEarningsAddressRequest,\n ): Promise;\n ProviderEarningsAddressAll(\n request: QueryAllProviderEarningsAddressRequest,\n ): Promise;\n /** Queries a list of Reactor items. */\n Reactor(request: QueryGetReactorRequest): Promise;\n ReactorAll(request: QueryAllReactorRequest): Promise;\n /** Queries a list of Structs items. */\n Struct(request: QueryGetStructRequest): Promise;\n StructAll(request: QueryAllStructRequest): Promise;\n StructAttribute(request: QueryGetStructAttributeRequest): Promise;\n /** Queries a list of all Struct Attributes */\n StructAttributeAll(request: QueryAllStructAttributeRequest): Promise;\n /** Queries a list of Struct Types items. */\n StructType(request: QueryGetStructTypeRequest): Promise;\n StructTypeAll(request: QueryAllStructTypeRequest): Promise;\n /** Queries a list of Substation items. */\n Substation(request: QueryGetSubstationRequest): Promise;\n SubstationAll(request: QueryAllSubstationRequest): Promise;\n ValidateSignature(request: QueryValidateSignatureRequest): Promise;\n}\n\nexport const QueryServiceName = \"structs.structs.Query\";\nexport class QueryClientImpl implements Query {\n private readonly rpc: Rpc;\n private readonly service: string;\n constructor(rpc: Rpc, opts?: { service?: string }) {\n this.service = opts?.service || QueryServiceName;\n this.rpc = rpc;\n this.GetBlockHeight = this.GetBlockHeight.bind(this);\n this.Params = this.Params.bind(this);\n this.Address = this.Address.bind(this);\n this.AddressAll = this.AddressAll.bind(this);\n this.AddressAllByPlayer = this.AddressAllByPlayer.bind(this);\n this.Agreement = this.Agreement.bind(this);\n this.AgreementAll = this.AgreementAll.bind(this);\n this.AgreementAllByProvider = this.AgreementAllByProvider.bind(this);\n this.Allocation = this.Allocation.bind(this);\n this.AllocationAll = this.AllocationAll.bind(this);\n this.AllocationAllBySource = this.AllocationAllBySource.bind(this);\n this.AllocationAllByDestination = this.AllocationAllByDestination.bind(this);\n this.Fleet = this.Fleet.bind(this);\n this.FleetByIndex = this.FleetByIndex.bind(this);\n this.FleetAll = this.FleetAll.bind(this);\n this.Grid = this.Grid.bind(this);\n this.GridAll = this.GridAll.bind(this);\n this.Guild = this.Guild.bind(this);\n this.GuildAll = this.GuildAll.bind(this);\n this.GuildBankCollateralAddress = this.GuildBankCollateralAddress.bind(this);\n this.GuildBankCollateralAddressAll = this.GuildBankCollateralAddressAll.bind(this);\n this.GuildMembershipApplication = this.GuildMembershipApplication.bind(this);\n this.GuildMembershipApplicationAll = this.GuildMembershipApplicationAll.bind(this);\n this.Infusion = this.Infusion.bind(this);\n this.InfusionAll = this.InfusionAll.bind(this);\n this.InfusionAllByDestination = this.InfusionAllByDestination.bind(this);\n this.Permission = this.Permission.bind(this);\n this.PermissionByObject = this.PermissionByObject.bind(this);\n this.PermissionByPlayer = this.PermissionByPlayer.bind(this);\n this.PermissionAll = this.PermissionAll.bind(this);\n this.Player = this.Player.bind(this);\n this.PlayerAll = this.PlayerAll.bind(this);\n this.PlayerHaltedAll = this.PlayerHaltedAll.bind(this);\n this.Planet = this.Planet.bind(this);\n this.PlanetAll = this.PlanetAll.bind(this);\n this.PlanetAllByPlayer = this.PlanetAllByPlayer.bind(this);\n this.PlanetAttribute = this.PlanetAttribute.bind(this);\n this.PlanetAttributeAll = this.PlanetAttributeAll.bind(this);\n this.Provider = this.Provider.bind(this);\n this.ProviderAll = this.ProviderAll.bind(this);\n this.ProviderCollateralAddress = this.ProviderCollateralAddress.bind(this);\n this.ProviderCollateralAddressAll = this.ProviderCollateralAddressAll.bind(this);\n this.ProviderEarningsAddress = this.ProviderEarningsAddress.bind(this);\n this.ProviderEarningsAddressAll = this.ProviderEarningsAddressAll.bind(this);\n this.Reactor = this.Reactor.bind(this);\n this.ReactorAll = this.ReactorAll.bind(this);\n this.Struct = this.Struct.bind(this);\n this.StructAll = this.StructAll.bind(this);\n this.StructAttribute = this.StructAttribute.bind(this);\n this.StructAttributeAll = this.StructAttributeAll.bind(this);\n this.StructType = this.StructType.bind(this);\n this.StructTypeAll = this.StructTypeAll.bind(this);\n this.Substation = this.Substation.bind(this);\n this.SubstationAll = this.SubstationAll.bind(this);\n this.ValidateSignature = this.ValidateSignature.bind(this);\n }\n GetBlockHeight(request: QueryBlockHeight): Promise {\n const data = QueryBlockHeight.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GetBlockHeight\", data);\n return promise.then((data) => QueryBlockHeightResponse.decode(new BinaryReader(data)));\n }\n\n Params(request: QueryParamsRequest): Promise {\n const data = QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Params\", data);\n return promise.then((data) => QueryParamsResponse.decode(new BinaryReader(data)));\n }\n\n Address(request: QueryGetAddressRequest): Promise {\n const data = QueryGetAddressRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Address\", data);\n return promise.then((data) => QueryAddressResponse.decode(new BinaryReader(data)));\n }\n\n AddressAll(request: QueryAllAddressRequest): Promise {\n const data = QueryAllAddressRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AddressAll\", data);\n return promise.then((data) => QueryAllAddressResponse.decode(new BinaryReader(data)));\n }\n\n AddressAllByPlayer(request: QueryAllAddressByPlayerRequest): Promise {\n const data = QueryAllAddressByPlayerRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AddressAllByPlayer\", data);\n return promise.then((data) => QueryAllAddressResponse.decode(new BinaryReader(data)));\n }\n\n Agreement(request: QueryGetAgreementRequest): Promise {\n const data = QueryGetAgreementRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Agreement\", data);\n return promise.then((data) => QueryGetAgreementResponse.decode(new BinaryReader(data)));\n }\n\n AgreementAll(request: QueryAllAgreementRequest): Promise {\n const data = QueryAllAgreementRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AgreementAll\", data);\n return promise.then((data) => QueryAllAgreementResponse.decode(new BinaryReader(data)));\n }\n\n AgreementAllByProvider(request: QueryAllAgreementByProviderRequest): Promise {\n const data = QueryAllAgreementByProviderRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AgreementAllByProvider\", data);\n return promise.then((data) => QueryAllAgreementResponse.decode(new BinaryReader(data)));\n }\n\n Allocation(request: QueryGetAllocationRequest): Promise {\n const data = QueryGetAllocationRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Allocation\", data);\n return promise.then((data) => QueryGetAllocationResponse.decode(new BinaryReader(data)));\n }\n\n AllocationAll(request: QueryAllAllocationRequest): Promise {\n const data = QueryAllAllocationRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AllocationAll\", data);\n return promise.then((data) => QueryAllAllocationResponse.decode(new BinaryReader(data)));\n }\n\n AllocationAllBySource(request: QueryAllAllocationBySourceRequest): Promise {\n const data = QueryAllAllocationBySourceRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AllocationAllBySource\", data);\n return promise.then((data) => QueryAllAllocationResponse.decode(new BinaryReader(data)));\n }\n\n AllocationAllByDestination(request: QueryAllAllocationByDestinationRequest): Promise {\n const data = QueryAllAllocationByDestinationRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AllocationAllByDestination\", data);\n return promise.then((data) => QueryAllAllocationResponse.decode(new BinaryReader(data)));\n }\n\n Fleet(request: QueryGetFleetRequest): Promise {\n const data = QueryGetFleetRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Fleet\", data);\n return promise.then((data) => QueryGetFleetResponse.decode(new BinaryReader(data)));\n }\n\n FleetByIndex(request: QueryGetFleetByIndexRequest): Promise {\n const data = QueryGetFleetByIndexRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"FleetByIndex\", data);\n return promise.then((data) => QueryGetFleetResponse.decode(new BinaryReader(data)));\n }\n\n FleetAll(request: QueryAllFleetRequest): Promise {\n const data = QueryAllFleetRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"FleetAll\", data);\n return promise.then((data) => QueryAllFleetResponse.decode(new BinaryReader(data)));\n }\n\n Grid(request: QueryGetGridRequest): Promise {\n const data = QueryGetGridRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Grid\", data);\n return promise.then((data) => QueryGetGridResponse.decode(new BinaryReader(data)));\n }\n\n GridAll(request: QueryAllGridRequest): Promise {\n const data = QueryAllGridRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GridAll\", data);\n return promise.then((data) => QueryAllGridResponse.decode(new BinaryReader(data)));\n }\n\n Guild(request: QueryGetGuildRequest): Promise {\n const data = QueryGetGuildRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Guild\", data);\n return promise.then((data) => QueryGetGuildResponse.decode(new BinaryReader(data)));\n }\n\n GuildAll(request: QueryAllGuildRequest): Promise {\n const data = QueryAllGuildRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildAll\", data);\n return promise.then((data) => QueryAllGuildResponse.decode(new BinaryReader(data)));\n }\n\n GuildBankCollateralAddress(\n request: QueryGetGuildBankCollateralAddressRequest,\n ): Promise {\n const data = QueryGetGuildBankCollateralAddressRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildBankCollateralAddress\", data);\n return promise.then((data) => QueryAllGuildBankCollateralAddressResponse.decode(new BinaryReader(data)));\n }\n\n GuildBankCollateralAddressAll(\n request: QueryAllGuildBankCollateralAddressRequest,\n ): Promise {\n const data = QueryAllGuildBankCollateralAddressRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildBankCollateralAddressAll\", data);\n return promise.then((data) => QueryAllGuildBankCollateralAddressResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipApplication(\n request: QueryGetGuildMembershipApplicationRequest,\n ): Promise {\n const data = QueryGetGuildMembershipApplicationRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipApplication\", data);\n return promise.then((data) => QueryGetGuildMembershipApplicationResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipApplicationAll(\n request: QueryAllGuildMembershipApplicationRequest,\n ): Promise {\n const data = QueryAllGuildMembershipApplicationRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipApplicationAll\", data);\n return promise.then((data) => QueryAllGuildMembershipApplicationResponse.decode(new BinaryReader(data)));\n }\n\n Infusion(request: QueryGetInfusionRequest): Promise {\n const data = QueryGetInfusionRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Infusion\", data);\n return promise.then((data) => QueryGetInfusionResponse.decode(new BinaryReader(data)));\n }\n\n InfusionAll(request: QueryAllInfusionRequest): Promise {\n const data = QueryAllInfusionRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"InfusionAll\", data);\n return promise.then((data) => QueryAllInfusionResponse.decode(new BinaryReader(data)));\n }\n\n InfusionAllByDestination(request: QueryAllInfusionByDestinationRequest): Promise {\n const data = QueryAllInfusionByDestinationRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"InfusionAllByDestination\", data);\n return promise.then((data) => QueryAllInfusionResponse.decode(new BinaryReader(data)));\n }\n\n Permission(request: QueryGetPermissionRequest): Promise {\n const data = QueryGetPermissionRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Permission\", data);\n return promise.then((data) => QueryGetPermissionResponse.decode(new BinaryReader(data)));\n }\n\n PermissionByObject(request: QueryAllPermissionByObjectRequest): Promise {\n const data = QueryAllPermissionByObjectRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PermissionByObject\", data);\n return promise.then((data) => QueryAllPermissionResponse.decode(new BinaryReader(data)));\n }\n\n PermissionByPlayer(request: QueryAllPermissionByPlayerRequest): Promise {\n const data = QueryAllPermissionByPlayerRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PermissionByPlayer\", data);\n return promise.then((data) => QueryAllPermissionResponse.decode(new BinaryReader(data)));\n }\n\n PermissionAll(request: QueryAllPermissionRequest): Promise {\n const data = QueryAllPermissionRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PermissionAll\", data);\n return promise.then((data) => QueryAllPermissionResponse.decode(new BinaryReader(data)));\n }\n\n Player(request: QueryGetPlayerRequest): Promise {\n const data = QueryGetPlayerRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Player\", data);\n return promise.then((data) => QueryGetPlayerResponse.decode(new BinaryReader(data)));\n }\n\n PlayerAll(request: QueryAllPlayerRequest): Promise {\n const data = QueryAllPlayerRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PlayerAll\", data);\n return promise.then((data) => QueryAllPlayerResponse.decode(new BinaryReader(data)));\n }\n\n PlayerHaltedAll(request: QueryAllPlayerHaltedRequest): Promise {\n const data = QueryAllPlayerHaltedRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PlayerHaltedAll\", data);\n return promise.then((data) => QueryAllPlayerHaltedResponse.decode(new BinaryReader(data)));\n }\n\n Planet(request: QueryGetPlanetRequest): Promise {\n const data = QueryGetPlanetRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Planet\", data);\n return promise.then((data) => QueryGetPlanetResponse.decode(new BinaryReader(data)));\n }\n\n PlanetAll(request: QueryAllPlanetRequest): Promise {\n const data = QueryAllPlanetRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PlanetAll\", data);\n return promise.then((data) => QueryAllPlanetResponse.decode(new BinaryReader(data)));\n }\n\n PlanetAllByPlayer(request: QueryAllPlanetByPlayerRequest): Promise {\n const data = QueryAllPlanetByPlayerRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PlanetAllByPlayer\", data);\n return promise.then((data) => QueryAllPlanetResponse.decode(new BinaryReader(data)));\n }\n\n PlanetAttribute(request: QueryGetPlanetAttributeRequest): Promise {\n const data = QueryGetPlanetAttributeRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PlanetAttribute\", data);\n return promise.then((data) => QueryGetPlanetAttributeResponse.decode(new BinaryReader(data)));\n }\n\n PlanetAttributeAll(request: QueryAllPlanetAttributeRequest): Promise {\n const data = QueryAllPlanetAttributeRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PlanetAttributeAll\", data);\n return promise.then((data) => QueryAllPlanetAttributeResponse.decode(new BinaryReader(data)));\n }\n\n Provider(request: QueryGetProviderRequest): Promise {\n const data = QueryGetProviderRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Provider\", data);\n return promise.then((data) => QueryGetProviderResponse.decode(new BinaryReader(data)));\n }\n\n ProviderAll(request: QueryAllProviderRequest): Promise {\n const data = QueryAllProviderRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderAll\", data);\n return promise.then((data) => QueryAllProviderResponse.decode(new BinaryReader(data)));\n }\n\n ProviderCollateralAddress(\n request: QueryGetProviderCollateralAddressRequest,\n ): Promise {\n const data = QueryGetProviderCollateralAddressRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderCollateralAddress\", data);\n return promise.then((data) => QueryAllProviderCollateralAddressResponse.decode(new BinaryReader(data)));\n }\n\n ProviderCollateralAddressAll(\n request: QueryAllProviderCollateralAddressRequest,\n ): Promise {\n const data = QueryAllProviderCollateralAddressRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderCollateralAddressAll\", data);\n return promise.then((data) => QueryAllProviderCollateralAddressResponse.decode(new BinaryReader(data)));\n }\n\n ProviderEarningsAddress(\n request: QueryGetProviderEarningsAddressRequest,\n ): Promise {\n const data = QueryGetProviderEarningsAddressRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderEarningsAddress\", data);\n return promise.then((data) => QueryAllProviderEarningsAddressResponse.decode(new BinaryReader(data)));\n }\n\n ProviderEarningsAddressAll(\n request: QueryAllProviderEarningsAddressRequest,\n ): Promise {\n const data = QueryAllProviderEarningsAddressRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderEarningsAddressAll\", data);\n return promise.then((data) => QueryAllProviderEarningsAddressResponse.decode(new BinaryReader(data)));\n }\n\n Reactor(request: QueryGetReactorRequest): Promise {\n const data = QueryGetReactorRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Reactor\", data);\n return promise.then((data) => QueryGetReactorResponse.decode(new BinaryReader(data)));\n }\n\n ReactorAll(request: QueryAllReactorRequest): Promise {\n const data = QueryAllReactorRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ReactorAll\", data);\n return promise.then((data) => QueryAllReactorResponse.decode(new BinaryReader(data)));\n }\n\n Struct(request: QueryGetStructRequest): Promise {\n const data = QueryGetStructRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Struct\", data);\n return promise.then((data) => QueryGetStructResponse.decode(new BinaryReader(data)));\n }\n\n StructAll(request: QueryAllStructRequest): Promise {\n const data = QueryAllStructRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructAll\", data);\n return promise.then((data) => QueryAllStructResponse.decode(new BinaryReader(data)));\n }\n\n StructAttribute(request: QueryGetStructAttributeRequest): Promise {\n const data = QueryGetStructAttributeRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructAttribute\", data);\n return promise.then((data) => QueryGetStructAttributeResponse.decode(new BinaryReader(data)));\n }\n\n StructAttributeAll(request: QueryAllStructAttributeRequest): Promise {\n const data = QueryAllStructAttributeRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructAttributeAll\", data);\n return promise.then((data) => QueryAllStructAttributeResponse.decode(new BinaryReader(data)));\n }\n\n StructType(request: QueryGetStructTypeRequest): Promise {\n const data = QueryGetStructTypeRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructType\", data);\n return promise.then((data) => QueryGetStructTypeResponse.decode(new BinaryReader(data)));\n }\n\n StructTypeAll(request: QueryAllStructTypeRequest): Promise {\n const data = QueryAllStructTypeRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructTypeAll\", data);\n return promise.then((data) => QueryAllStructTypeResponse.decode(new BinaryReader(data)));\n }\n\n Substation(request: QueryGetSubstationRequest): Promise {\n const data = QueryGetSubstationRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"Substation\", data);\n return promise.then((data) => QueryGetSubstationResponse.decode(new BinaryReader(data)));\n }\n\n SubstationAll(request: QueryAllSubstationRequest): Promise {\n const data = QueryAllSubstationRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"SubstationAll\", data);\n return promise.then((data) => QueryAllSubstationResponse.decode(new BinaryReader(data)));\n }\n\n ValidateSignature(request: QueryValidateSignatureRequest): Promise {\n const data = QueryValidateSignatureRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ValidateSignature\", data);\n return promise.then((data) => QueryValidateSignatureResponse.decode(new BinaryReader(data)));\n }\n}\n\ninterface Rpc {\n request(service: string, method: string, data: Uint8Array): Promise;\n}\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/reactor.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface Reactor {\n id: string;\n validator: string;\n guildId: string;\n defaultCommission: string;\n rawAddress: Uint8Array;\n}\n\nfunction createBaseReactor(): Reactor {\n return { id: \"\", validator: \"\", guildId: \"\", defaultCommission: \"\", rawAddress: new Uint8Array(0) };\n}\n\nexport const Reactor: MessageFns = {\n encode(message: Reactor, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.validator !== \"\") {\n writer.uint32(18).string(message.validator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(26).string(message.guildId);\n }\n if (message.defaultCommission !== \"\") {\n writer.uint32(34).string(message.defaultCommission);\n }\n if (message.rawAddress.length !== 0) {\n writer.uint32(42).bytes(message.rawAddress);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Reactor {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseReactor();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.validator = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.defaultCommission = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.rawAddress = reader.bytes();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Reactor {\n return {\n id: isSet(object.id) ? globalThis.String(object.id) : \"\",\n validator: isSet(object.validator) ? globalThis.String(object.validator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n defaultCommission: isSet(object.defaultCommission) ? globalThis.String(object.defaultCommission) : \"\",\n rawAddress: isSet(object.rawAddress) ? bytesFromBase64(object.rawAddress) : new Uint8Array(0),\n };\n },\n\n toJSON(message: Reactor): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n if (message.validator !== \"\") {\n obj.validator = message.validator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.defaultCommission !== \"\") {\n obj.defaultCommission = message.defaultCommission;\n }\n if (message.rawAddress.length !== 0) {\n obj.rawAddress = base64FromBytes(message.rawAddress);\n }\n return obj;\n },\n\n create, I>>(base?: I): Reactor {\n return Reactor.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Reactor {\n const message = createBaseReactor();\n message.id = object.id ?? \"\";\n message.validator = object.validator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.defaultCommission = object.defaultCommission ?? \"\";\n message.rawAddress = object.rawAddress ?? new Uint8Array(0);\n return message;\n },\n};\n\nfunction bytesFromBase64(b64: string): Uint8Array {\n if ((globalThis as any).Buffer) {\n return Uint8Array.from(globalThis.Buffer.from(b64, \"base64\"));\n } else {\n const bin = globalThis.atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n }\n}\n\nfunction base64FromBytes(arr: Uint8Array): string {\n if ((globalThis as any).Buffer) {\n return globalThis.Buffer.from(arr).toString(\"base64\");\n } else {\n const bin: string[] = [];\n arr.forEach((byte) => {\n bin.push(globalThis.String.fromCharCode(byte));\n });\n return globalThis.btoa(bin.join(\"\"));\n }\n}\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/struct.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport {\n ambit,\n ambitFromJSON,\n ambitToJSON,\n objectType,\n objectTypeFromJSON,\n objectTypeToJSON,\n techActiveWeaponry,\n techActiveWeaponryFromJSON,\n techActiveWeaponryToJSON,\n techOreReserveDefenses,\n techOreReserveDefensesFromJSON,\n techOreReserveDefensesToJSON,\n techPassiveWeaponry,\n techPassiveWeaponryFromJSON,\n techPassiveWeaponryToJSON,\n techPlanetaryDefenses,\n techPlanetaryDefensesFromJSON,\n techPlanetaryDefensesToJSON,\n techPlanetaryMining,\n techPlanetaryMiningFromJSON,\n techPlanetaryMiningToJSON,\n techPlanetaryRefineries,\n techPlanetaryRefineriesFromJSON,\n techPlanetaryRefineriesToJSON,\n techPowerGeneration,\n techPowerGenerationFromJSON,\n techPowerGenerationToJSON,\n techUnitDefenses,\n techUnitDefensesFromJSON,\n techUnitDefensesToJSON,\n techWeaponControl,\n techWeaponControlFromJSON,\n techWeaponControlToJSON,\n} from \"./keys\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface Struct {\n /** What it is */\n id: string;\n index: number;\n type: number;\n /** Who is it */\n creator: string;\n owner: string;\n /** Where it is */\n locationType: objectType;\n locationId: string;\n operatingAmbit: ambit;\n slot: number;\n}\n\nexport interface StructType {\n id: number;\n /** TODO Deprecating... Will match with Class for now. */\n type: string;\n /** New Struct Type Identity Details */\n class: string;\n classAbbreviation: string;\n defaultCosmeticModelNumber: string;\n defaultCosmeticName: string;\n /** Fundamental attributes */\n category: objectType;\n /** How many of this Struct Type a player can have */\n buildLimit: number;\n /** How much compute is needed to build */\n buildDifficulty: number;\n /** How much energy the Struct consumes during building */\n buildDraw: number;\n /** How much damage can it take */\n maxHealth: number;\n /** How much energy the Struct consumes when active */\n passiveDraw: number;\n /**\n * Details about location and movement\n * TODO move category to here and make it flag based too\n * Replicate what was done for ambits flags\n */\n possibleAmbit: number;\n /** Can the Struct change ambit? */\n movable: boolean;\n /** Does the Struct occupy a slot. Trying to find something to help set Command Ships apart */\n slotBound: boolean;\n /** Primary Weapon Configuration */\n primaryWeapon: techActiveWeaponry;\n primaryWeaponControl: techWeaponControl;\n primaryWeaponCharge: number;\n primaryWeaponAmbits: number;\n primaryWeaponTargets: number;\n primaryWeaponShots: number;\n primaryWeaponDamage: number;\n primaryWeaponBlockable: boolean;\n primaryWeaponCounterable: boolean;\n primaryWeaponRecoilDamage: number;\n primaryWeaponShotSuccessRateNumerator: number;\n primaryWeaponShotSuccessRateDenominator: number;\n /** Secondary Weapon Configuration */\n secondaryWeapon: techActiveWeaponry;\n secondaryWeaponControl: techWeaponControl;\n secondaryWeaponCharge: number;\n secondaryWeaponAmbits: number;\n secondaryWeaponTargets: number;\n secondaryWeaponShots: number;\n secondaryWeaponDamage: number;\n secondaryWeaponBlockable: boolean;\n secondaryWeaponCounterable: boolean;\n secondaryWeaponRecoilDamage: number;\n secondaryWeaponShotSuccessRateNumerator: number;\n secondaryWeaponShotSuccessRateDenominator: number;\n /** Tech Tree Features */\n passiveWeaponry: techPassiveWeaponry;\n unitDefenses: techUnitDefenses;\n oreReserveDefenses: techOreReserveDefenses;\n planetaryDefenses: techPlanetaryDefenses;\n planetaryMining: techPlanetaryMining;\n planetaryRefinery: techPlanetaryRefineries;\n powerGeneration: techPowerGeneration;\n /** Charge uses */\n activateCharge: number;\n buildCharge: number;\n defendChangeCharge: number;\n moveCharge: number;\n stealthActivateCharge: number;\n /** Tech Tree Attributes */\n attackReduction: number;\n /** For Indirect Combat Module */\n attackCounterable: boolean;\n /** For Stealth Mode */\n stealthSystems: boolean;\n /** Counter */\n counterAttack: number;\n /** Advanced Counter */\n counterAttackSameAmbit: number;\n postDestructionDamage: number;\n /** Power Generation */\n generatingRate: number;\n /** The shield that is added to the Planet */\n planetaryShieldContribution: number;\n oreMiningDifficulty: number;\n oreRefiningDifficulty: number;\n unguidedDefensiveSuccessRateNumerator: number;\n unguidedDefensiveSuccessRateDenominator: number;\n guidedDefensiveSuccessRateNumerator: number;\n guidedDefensiveSuccessRateDenominator: number;\n /**\n * I wish this was higher up in a different area of the definition\n * but I really don't feel like renumbering this entire thing again.\n */\n triggerRaidDefeatByDestruction: boolean;\n}\n\nexport interface StructDefender {\n protectedStructId: string;\n defendingStructId: string;\n}\n\nexport interface StructDefenders {\n structDefenders: StructDefender[];\n}\n\nexport interface StructAttributeRecord {\n attributeId: string;\n value: number;\n}\n\nexport interface StructAttributes {\n health: number;\n status: number;\n blockStartBuild: number;\n blockStartOreMine: number;\n blockStartOreRefine: number;\n protectedStructIndex: number;\n typeCount: number;\n isMaterialized: boolean;\n isBuilt: boolean;\n isOnline: boolean;\n isHidden: boolean;\n isDestroyed: boolean;\n isLocked: boolean;\n}\n\nfunction createBaseStruct(): Struct {\n return {\n id: \"\",\n index: 0,\n type: 0,\n creator: \"\",\n owner: \"\",\n locationType: 0,\n locationId: \"\",\n operatingAmbit: 0,\n slot: 0,\n };\n}\n\nexport const Struct: MessageFns = {\n encode(message: Struct, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.index !== 0) {\n writer.uint32(16).uint64(message.index);\n }\n if (message.type !== 0) {\n writer.uint32(24).uint64(message.type);\n }\n if (message.creator !== \"\") {\n writer.uint32(34).string(message.creator);\n }\n if (message.owner !== \"\") {\n writer.uint32(42).string(message.owner);\n }\n if (message.locationType !== 0) {\n writer.uint32(48).int32(message.locationType);\n }\n if (message.locationId !== \"\") {\n writer.uint32(58).string(message.locationId);\n }\n if (message.operatingAmbit !== 0) {\n writer.uint32(64).int32(message.operatingAmbit);\n }\n if (message.slot !== 0) {\n writer.uint32(72).uint64(message.slot);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Struct {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStruct();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.index = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.type = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.owner = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.locationType = reader.int32() as any;\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.locationId = reader.string();\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.operatingAmbit = reader.int32() as any;\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.slot = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Struct {\n return {\n id: isSet(object.id) ? globalThis.String(object.id) : \"\",\n index: isSet(object.index) ? globalThis.Number(object.index) : 0,\n type: isSet(object.type) ? globalThis.Number(object.type) : 0,\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n owner: isSet(object.owner) ? globalThis.String(object.owner) : \"\",\n locationType: isSet(object.locationType) ? objectTypeFromJSON(object.locationType) : 0,\n locationId: isSet(object.locationId) ? globalThis.String(object.locationId) : \"\",\n operatingAmbit: isSet(object.operatingAmbit) ? ambitFromJSON(object.operatingAmbit) : 0,\n slot: isSet(object.slot) ? globalThis.Number(object.slot) : 0,\n };\n },\n\n toJSON(message: Struct): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n if (message.index !== 0) {\n obj.index = Math.round(message.index);\n }\n if (message.type !== 0) {\n obj.type = Math.round(message.type);\n }\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.owner !== \"\") {\n obj.owner = message.owner;\n }\n if (message.locationType !== 0) {\n obj.locationType = objectTypeToJSON(message.locationType);\n }\n if (message.locationId !== \"\") {\n obj.locationId = message.locationId;\n }\n if (message.operatingAmbit !== 0) {\n obj.operatingAmbit = ambitToJSON(message.operatingAmbit);\n }\n if (message.slot !== 0) {\n obj.slot = Math.round(message.slot);\n }\n return obj;\n },\n\n create, I>>(base?: I): Struct {\n return Struct.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Struct {\n const message = createBaseStruct();\n message.id = object.id ?? \"\";\n message.index = object.index ?? 0;\n message.type = object.type ?? 0;\n message.creator = object.creator ?? \"\";\n message.owner = object.owner ?? \"\";\n message.locationType = object.locationType ?? 0;\n message.locationId = object.locationId ?? \"\";\n message.operatingAmbit = object.operatingAmbit ?? 0;\n message.slot = object.slot ?? 0;\n return message;\n },\n};\n\nfunction createBaseStructType(): StructType {\n return {\n id: 0,\n type: \"\",\n class: \"\",\n classAbbreviation: \"\",\n defaultCosmeticModelNumber: \"\",\n defaultCosmeticName: \"\",\n category: 0,\n buildLimit: 0,\n buildDifficulty: 0,\n buildDraw: 0,\n maxHealth: 0,\n passiveDraw: 0,\n possibleAmbit: 0,\n movable: false,\n slotBound: false,\n primaryWeapon: 0,\n primaryWeaponControl: 0,\n primaryWeaponCharge: 0,\n primaryWeaponAmbits: 0,\n primaryWeaponTargets: 0,\n primaryWeaponShots: 0,\n primaryWeaponDamage: 0,\n primaryWeaponBlockable: false,\n primaryWeaponCounterable: false,\n primaryWeaponRecoilDamage: 0,\n primaryWeaponShotSuccessRateNumerator: 0,\n primaryWeaponShotSuccessRateDenominator: 0,\n secondaryWeapon: 0,\n secondaryWeaponControl: 0,\n secondaryWeaponCharge: 0,\n secondaryWeaponAmbits: 0,\n secondaryWeaponTargets: 0,\n secondaryWeaponShots: 0,\n secondaryWeaponDamage: 0,\n secondaryWeaponBlockable: false,\n secondaryWeaponCounterable: false,\n secondaryWeaponRecoilDamage: 0,\n secondaryWeaponShotSuccessRateNumerator: 0,\n secondaryWeaponShotSuccessRateDenominator: 0,\n passiveWeaponry: 0,\n unitDefenses: 0,\n oreReserveDefenses: 0,\n planetaryDefenses: 0,\n planetaryMining: 0,\n planetaryRefinery: 0,\n powerGeneration: 0,\n activateCharge: 0,\n buildCharge: 0,\n defendChangeCharge: 0,\n moveCharge: 0,\n stealthActivateCharge: 0,\n attackReduction: 0,\n attackCounterable: false,\n stealthSystems: false,\n counterAttack: 0,\n counterAttackSameAmbit: 0,\n postDestructionDamage: 0,\n generatingRate: 0,\n planetaryShieldContribution: 0,\n oreMiningDifficulty: 0,\n oreRefiningDifficulty: 0,\n unguidedDefensiveSuccessRateNumerator: 0,\n unguidedDefensiveSuccessRateDenominator: 0,\n guidedDefensiveSuccessRateNumerator: 0,\n guidedDefensiveSuccessRateDenominator: 0,\n triggerRaidDefeatByDestruction: false,\n };\n}\n\nexport const StructType: MessageFns = {\n encode(message: StructType, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== 0) {\n writer.uint32(8).uint64(message.id);\n }\n if (message.type !== \"\") {\n writer.uint32(18).string(message.type);\n }\n if (message.class !== \"\") {\n writer.uint32(506).string(message.class);\n }\n if (message.classAbbreviation !== \"\") {\n writer.uint32(514).string(message.classAbbreviation);\n }\n if (message.defaultCosmeticModelNumber !== \"\") {\n writer.uint32(522).string(message.defaultCosmeticModelNumber);\n }\n if (message.defaultCosmeticName !== \"\") {\n writer.uint32(530).string(message.defaultCosmeticName);\n }\n if (message.category !== 0) {\n writer.uint32(24).int32(message.category);\n }\n if (message.buildLimit !== 0) {\n writer.uint32(32).uint64(message.buildLimit);\n }\n if (message.buildDifficulty !== 0) {\n writer.uint32(40).uint64(message.buildDifficulty);\n }\n if (message.buildDraw !== 0) {\n writer.uint32(48).uint64(message.buildDraw);\n }\n if (message.maxHealth !== 0) {\n writer.uint32(56).uint64(message.maxHealth);\n }\n if (message.passiveDraw !== 0) {\n writer.uint32(64).uint64(message.passiveDraw);\n }\n if (message.possibleAmbit !== 0) {\n writer.uint32(72).uint64(message.possibleAmbit);\n }\n if (message.movable !== false) {\n writer.uint32(80).bool(message.movable);\n }\n if (message.slotBound !== false) {\n writer.uint32(88).bool(message.slotBound);\n }\n if (message.primaryWeapon !== 0) {\n writer.uint32(96).int32(message.primaryWeapon);\n }\n if (message.primaryWeaponControl !== 0) {\n writer.uint32(104).int32(message.primaryWeaponControl);\n }\n if (message.primaryWeaponCharge !== 0) {\n writer.uint32(112).uint64(message.primaryWeaponCharge);\n }\n if (message.primaryWeaponAmbits !== 0) {\n writer.uint32(120).uint64(message.primaryWeaponAmbits);\n }\n if (message.primaryWeaponTargets !== 0) {\n writer.uint32(128).uint64(message.primaryWeaponTargets);\n }\n if (message.primaryWeaponShots !== 0) {\n writer.uint32(136).uint64(message.primaryWeaponShots);\n }\n if (message.primaryWeaponDamage !== 0) {\n writer.uint32(144).uint64(message.primaryWeaponDamage);\n }\n if (message.primaryWeaponBlockable !== false) {\n writer.uint32(152).bool(message.primaryWeaponBlockable);\n }\n if (message.primaryWeaponCounterable !== false) {\n writer.uint32(160).bool(message.primaryWeaponCounterable);\n }\n if (message.primaryWeaponRecoilDamage !== 0) {\n writer.uint32(168).uint64(message.primaryWeaponRecoilDamage);\n }\n if (message.primaryWeaponShotSuccessRateNumerator !== 0) {\n writer.uint32(176).uint64(message.primaryWeaponShotSuccessRateNumerator);\n }\n if (message.primaryWeaponShotSuccessRateDenominator !== 0) {\n writer.uint32(184).uint64(message.primaryWeaponShotSuccessRateDenominator);\n }\n if (message.secondaryWeapon !== 0) {\n writer.uint32(192).int32(message.secondaryWeapon);\n }\n if (message.secondaryWeaponControl !== 0) {\n writer.uint32(200).int32(message.secondaryWeaponControl);\n }\n if (message.secondaryWeaponCharge !== 0) {\n writer.uint32(208).uint64(message.secondaryWeaponCharge);\n }\n if (message.secondaryWeaponAmbits !== 0) {\n writer.uint32(216).uint64(message.secondaryWeaponAmbits);\n }\n if (message.secondaryWeaponTargets !== 0) {\n writer.uint32(224).uint64(message.secondaryWeaponTargets);\n }\n if (message.secondaryWeaponShots !== 0) {\n writer.uint32(232).uint64(message.secondaryWeaponShots);\n }\n if (message.secondaryWeaponDamage !== 0) {\n writer.uint32(240).uint64(message.secondaryWeaponDamage);\n }\n if (message.secondaryWeaponBlockable !== false) {\n writer.uint32(248).bool(message.secondaryWeaponBlockable);\n }\n if (message.secondaryWeaponCounterable !== false) {\n writer.uint32(256).bool(message.secondaryWeaponCounterable);\n }\n if (message.secondaryWeaponRecoilDamage !== 0) {\n writer.uint32(264).uint64(message.secondaryWeaponRecoilDamage);\n }\n if (message.secondaryWeaponShotSuccessRateNumerator !== 0) {\n writer.uint32(272).uint64(message.secondaryWeaponShotSuccessRateNumerator);\n }\n if (message.secondaryWeaponShotSuccessRateDenominator !== 0) {\n writer.uint32(280).uint64(message.secondaryWeaponShotSuccessRateDenominator);\n }\n if (message.passiveWeaponry !== 0) {\n writer.uint32(288).int32(message.passiveWeaponry);\n }\n if (message.unitDefenses !== 0) {\n writer.uint32(296).int32(message.unitDefenses);\n }\n if (message.oreReserveDefenses !== 0) {\n writer.uint32(304).int32(message.oreReserveDefenses);\n }\n if (message.planetaryDefenses !== 0) {\n writer.uint32(312).int32(message.planetaryDefenses);\n }\n if (message.planetaryMining !== 0) {\n writer.uint32(320).int32(message.planetaryMining);\n }\n if (message.planetaryRefinery !== 0) {\n writer.uint32(328).int32(message.planetaryRefinery);\n }\n if (message.powerGeneration !== 0) {\n writer.uint32(336).int32(message.powerGeneration);\n }\n if (message.activateCharge !== 0) {\n writer.uint32(344).uint64(message.activateCharge);\n }\n if (message.buildCharge !== 0) {\n writer.uint32(352).uint64(message.buildCharge);\n }\n if (message.defendChangeCharge !== 0) {\n writer.uint32(360).uint64(message.defendChangeCharge);\n }\n if (message.moveCharge !== 0) {\n writer.uint32(368).uint64(message.moveCharge);\n }\n if (message.stealthActivateCharge !== 0) {\n writer.uint32(376).uint64(message.stealthActivateCharge);\n }\n if (message.attackReduction !== 0) {\n writer.uint32(384).uint64(message.attackReduction);\n }\n if (message.attackCounterable !== false) {\n writer.uint32(392).bool(message.attackCounterable);\n }\n if (message.stealthSystems !== false) {\n writer.uint32(400).bool(message.stealthSystems);\n }\n if (message.counterAttack !== 0) {\n writer.uint32(408).uint64(message.counterAttack);\n }\n if (message.counterAttackSameAmbit !== 0) {\n writer.uint32(416).uint64(message.counterAttackSameAmbit);\n }\n if (message.postDestructionDamage !== 0) {\n writer.uint32(424).uint64(message.postDestructionDamage);\n }\n if (message.generatingRate !== 0) {\n writer.uint32(432).uint64(message.generatingRate);\n }\n if (message.planetaryShieldContribution !== 0) {\n writer.uint32(440).uint64(message.planetaryShieldContribution);\n }\n if (message.oreMiningDifficulty !== 0) {\n writer.uint32(448).uint64(message.oreMiningDifficulty);\n }\n if (message.oreRefiningDifficulty !== 0) {\n writer.uint32(456).uint64(message.oreRefiningDifficulty);\n }\n if (message.unguidedDefensiveSuccessRateNumerator !== 0) {\n writer.uint32(464).uint64(message.unguidedDefensiveSuccessRateNumerator);\n }\n if (message.unguidedDefensiveSuccessRateDenominator !== 0) {\n writer.uint32(472).uint64(message.unguidedDefensiveSuccessRateDenominator);\n }\n if (message.guidedDefensiveSuccessRateNumerator !== 0) {\n writer.uint32(480).uint64(message.guidedDefensiveSuccessRateNumerator);\n }\n if (message.guidedDefensiveSuccessRateDenominator !== 0) {\n writer.uint32(488).uint64(message.guidedDefensiveSuccessRateDenominator);\n }\n if (message.triggerRaidDefeatByDestruction !== false) {\n writer.uint32(496).bool(message.triggerRaidDefeatByDestruction);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): StructType {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStructType();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.id = longToNumber(reader.uint64());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.type = reader.string();\n continue;\n }\n case 63: {\n if (tag !== 506) {\n break;\n }\n\n message.class = reader.string();\n continue;\n }\n case 64: {\n if (tag !== 514) {\n break;\n }\n\n message.classAbbreviation = reader.string();\n continue;\n }\n case 65: {\n if (tag !== 522) {\n break;\n }\n\n message.defaultCosmeticModelNumber = reader.string();\n continue;\n }\n case 66: {\n if (tag !== 530) {\n break;\n }\n\n message.defaultCosmeticName = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.category = reader.int32() as any;\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.buildLimit = longToNumber(reader.uint64());\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.buildDifficulty = longToNumber(reader.uint64());\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.buildDraw = longToNumber(reader.uint64());\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.maxHealth = longToNumber(reader.uint64());\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.passiveDraw = longToNumber(reader.uint64());\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.possibleAmbit = longToNumber(reader.uint64());\n continue;\n }\n case 10: {\n if (tag !== 80) {\n break;\n }\n\n message.movable = reader.bool();\n continue;\n }\n case 11: {\n if (tag !== 88) {\n break;\n }\n\n message.slotBound = reader.bool();\n continue;\n }\n case 12: {\n if (tag !== 96) {\n break;\n }\n\n message.primaryWeapon = reader.int32() as any;\n continue;\n }\n case 13: {\n if (tag !== 104) {\n break;\n }\n\n message.primaryWeaponControl = reader.int32() as any;\n continue;\n }\n case 14: {\n if (tag !== 112) {\n break;\n }\n\n message.primaryWeaponCharge = longToNumber(reader.uint64());\n continue;\n }\n case 15: {\n if (tag !== 120) {\n break;\n }\n\n message.primaryWeaponAmbits = longToNumber(reader.uint64());\n continue;\n }\n case 16: {\n if (tag !== 128) {\n break;\n }\n\n message.primaryWeaponTargets = longToNumber(reader.uint64());\n continue;\n }\n case 17: {\n if (tag !== 136) {\n break;\n }\n\n message.primaryWeaponShots = longToNumber(reader.uint64());\n continue;\n }\n case 18: {\n if (tag !== 144) {\n break;\n }\n\n message.primaryWeaponDamage = longToNumber(reader.uint64());\n continue;\n }\n case 19: {\n if (tag !== 152) {\n break;\n }\n\n message.primaryWeaponBlockable = reader.bool();\n continue;\n }\n case 20: {\n if (tag !== 160) {\n break;\n }\n\n message.primaryWeaponCounterable = reader.bool();\n continue;\n }\n case 21: {\n if (tag !== 168) {\n break;\n }\n\n message.primaryWeaponRecoilDamage = longToNumber(reader.uint64());\n continue;\n }\n case 22: {\n if (tag !== 176) {\n break;\n }\n\n message.primaryWeaponShotSuccessRateNumerator = longToNumber(reader.uint64());\n continue;\n }\n case 23: {\n if (tag !== 184) {\n break;\n }\n\n message.primaryWeaponShotSuccessRateDenominator = longToNumber(reader.uint64());\n continue;\n }\n case 24: {\n if (tag !== 192) {\n break;\n }\n\n message.secondaryWeapon = reader.int32() as any;\n continue;\n }\n case 25: {\n if (tag !== 200) {\n break;\n }\n\n message.secondaryWeaponControl = reader.int32() as any;\n continue;\n }\n case 26: {\n if (tag !== 208) {\n break;\n }\n\n message.secondaryWeaponCharge = longToNumber(reader.uint64());\n continue;\n }\n case 27: {\n if (tag !== 216) {\n break;\n }\n\n message.secondaryWeaponAmbits = longToNumber(reader.uint64());\n continue;\n }\n case 28: {\n if (tag !== 224) {\n break;\n }\n\n message.secondaryWeaponTargets = longToNumber(reader.uint64());\n continue;\n }\n case 29: {\n if (tag !== 232) {\n break;\n }\n\n message.secondaryWeaponShots = longToNumber(reader.uint64());\n continue;\n }\n case 30: {\n if (tag !== 240) {\n break;\n }\n\n message.secondaryWeaponDamage = longToNumber(reader.uint64());\n continue;\n }\n case 31: {\n if (tag !== 248) {\n break;\n }\n\n message.secondaryWeaponBlockable = reader.bool();\n continue;\n }\n case 32: {\n if (tag !== 256) {\n break;\n }\n\n message.secondaryWeaponCounterable = reader.bool();\n continue;\n }\n case 33: {\n if (tag !== 264) {\n break;\n }\n\n message.secondaryWeaponRecoilDamage = longToNumber(reader.uint64());\n continue;\n }\n case 34: {\n if (tag !== 272) {\n break;\n }\n\n message.secondaryWeaponShotSuccessRateNumerator = longToNumber(reader.uint64());\n continue;\n }\n case 35: {\n if (tag !== 280) {\n break;\n }\n\n message.secondaryWeaponShotSuccessRateDenominator = longToNumber(reader.uint64());\n continue;\n }\n case 36: {\n if (tag !== 288) {\n break;\n }\n\n message.passiveWeaponry = reader.int32() as any;\n continue;\n }\n case 37: {\n if (tag !== 296) {\n break;\n }\n\n message.unitDefenses = reader.int32() as any;\n continue;\n }\n case 38: {\n if (tag !== 304) {\n break;\n }\n\n message.oreReserveDefenses = reader.int32() as any;\n continue;\n }\n case 39: {\n if (tag !== 312) {\n break;\n }\n\n message.planetaryDefenses = reader.int32() as any;\n continue;\n }\n case 40: {\n if (tag !== 320) {\n break;\n }\n\n message.planetaryMining = reader.int32() as any;\n continue;\n }\n case 41: {\n if (tag !== 328) {\n break;\n }\n\n message.planetaryRefinery = reader.int32() as any;\n continue;\n }\n case 42: {\n if (tag !== 336) {\n break;\n }\n\n message.powerGeneration = reader.int32() as any;\n continue;\n }\n case 43: {\n if (tag !== 344) {\n break;\n }\n\n message.activateCharge = longToNumber(reader.uint64());\n continue;\n }\n case 44: {\n if (tag !== 352) {\n break;\n }\n\n message.buildCharge = longToNumber(reader.uint64());\n continue;\n }\n case 45: {\n if (tag !== 360) {\n break;\n }\n\n message.defendChangeCharge = longToNumber(reader.uint64());\n continue;\n }\n case 46: {\n if (tag !== 368) {\n break;\n }\n\n message.moveCharge = longToNumber(reader.uint64());\n continue;\n }\n case 47: {\n if (tag !== 376) {\n break;\n }\n\n message.stealthActivateCharge = longToNumber(reader.uint64());\n continue;\n }\n case 48: {\n if (tag !== 384) {\n break;\n }\n\n message.attackReduction = longToNumber(reader.uint64());\n continue;\n }\n case 49: {\n if (tag !== 392) {\n break;\n }\n\n message.attackCounterable = reader.bool();\n continue;\n }\n case 50: {\n if (tag !== 400) {\n break;\n }\n\n message.stealthSystems = reader.bool();\n continue;\n }\n case 51: {\n if (tag !== 408) {\n break;\n }\n\n message.counterAttack = longToNumber(reader.uint64());\n continue;\n }\n case 52: {\n if (tag !== 416) {\n break;\n }\n\n message.counterAttackSameAmbit = longToNumber(reader.uint64());\n continue;\n }\n case 53: {\n if (tag !== 424) {\n break;\n }\n\n message.postDestructionDamage = longToNumber(reader.uint64());\n continue;\n }\n case 54: {\n if (tag !== 432) {\n break;\n }\n\n message.generatingRate = longToNumber(reader.uint64());\n continue;\n }\n case 55: {\n if (tag !== 440) {\n break;\n }\n\n message.planetaryShieldContribution = longToNumber(reader.uint64());\n continue;\n }\n case 56: {\n if (tag !== 448) {\n break;\n }\n\n message.oreMiningDifficulty = longToNumber(reader.uint64());\n continue;\n }\n case 57: {\n if (tag !== 456) {\n break;\n }\n\n message.oreRefiningDifficulty = longToNumber(reader.uint64());\n continue;\n }\n case 58: {\n if (tag !== 464) {\n break;\n }\n\n message.unguidedDefensiveSuccessRateNumerator = longToNumber(reader.uint64());\n continue;\n }\n case 59: {\n if (tag !== 472) {\n break;\n }\n\n message.unguidedDefensiveSuccessRateDenominator = longToNumber(reader.uint64());\n continue;\n }\n case 60: {\n if (tag !== 480) {\n break;\n }\n\n message.guidedDefensiveSuccessRateNumerator = longToNumber(reader.uint64());\n continue;\n }\n case 61: {\n if (tag !== 488) {\n break;\n }\n\n message.guidedDefensiveSuccessRateDenominator = longToNumber(reader.uint64());\n continue;\n }\n case 62: {\n if (tag !== 496) {\n break;\n }\n\n message.triggerRaidDefeatByDestruction = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): StructType {\n return {\n id: isSet(object.id) ? globalThis.Number(object.id) : 0,\n type: isSet(object.type) ? globalThis.String(object.type) : \"\",\n class: isSet(object.class) ? globalThis.String(object.class) : \"\",\n classAbbreviation: isSet(object.classAbbreviation) ? globalThis.String(object.classAbbreviation) : \"\",\n defaultCosmeticModelNumber: isSet(object.defaultCosmeticModelNumber)\n ? globalThis.String(object.defaultCosmeticModelNumber)\n : \"\",\n defaultCosmeticName: isSet(object.defaultCosmeticName) ? globalThis.String(object.defaultCosmeticName) : \"\",\n category: isSet(object.category) ? objectTypeFromJSON(object.category) : 0,\n buildLimit: isSet(object.buildLimit) ? globalThis.Number(object.buildLimit) : 0,\n buildDifficulty: isSet(object.buildDifficulty) ? globalThis.Number(object.buildDifficulty) : 0,\n buildDraw: isSet(object.buildDraw) ? globalThis.Number(object.buildDraw) : 0,\n maxHealth: isSet(object.maxHealth) ? globalThis.Number(object.maxHealth) : 0,\n passiveDraw: isSet(object.passiveDraw) ? globalThis.Number(object.passiveDraw) : 0,\n possibleAmbit: isSet(object.possibleAmbit) ? globalThis.Number(object.possibleAmbit) : 0,\n movable: isSet(object.movable) ? globalThis.Boolean(object.movable) : false,\n slotBound: isSet(object.slotBound) ? globalThis.Boolean(object.slotBound) : false,\n primaryWeapon: isSet(object.primaryWeapon) ? techActiveWeaponryFromJSON(object.primaryWeapon) : 0,\n primaryWeaponControl: isSet(object.primaryWeaponControl)\n ? techWeaponControlFromJSON(object.primaryWeaponControl)\n : 0,\n primaryWeaponCharge: isSet(object.primaryWeaponCharge) ? globalThis.Number(object.primaryWeaponCharge) : 0,\n primaryWeaponAmbits: isSet(object.primaryWeaponAmbits) ? globalThis.Number(object.primaryWeaponAmbits) : 0,\n primaryWeaponTargets: isSet(object.primaryWeaponTargets) ? globalThis.Number(object.primaryWeaponTargets) : 0,\n primaryWeaponShots: isSet(object.primaryWeaponShots) ? globalThis.Number(object.primaryWeaponShots) : 0,\n primaryWeaponDamage: isSet(object.primaryWeaponDamage) ? globalThis.Number(object.primaryWeaponDamage) : 0,\n primaryWeaponBlockable: isSet(object.primaryWeaponBlockable)\n ? globalThis.Boolean(object.primaryWeaponBlockable)\n : false,\n primaryWeaponCounterable: isSet(object.primaryWeaponCounterable)\n ? globalThis.Boolean(object.primaryWeaponCounterable)\n : false,\n primaryWeaponRecoilDamage: isSet(object.primaryWeaponRecoilDamage)\n ? globalThis.Number(object.primaryWeaponRecoilDamage)\n : 0,\n primaryWeaponShotSuccessRateNumerator: isSet(object.primaryWeaponShotSuccessRateNumerator)\n ? globalThis.Number(object.primaryWeaponShotSuccessRateNumerator)\n : 0,\n primaryWeaponShotSuccessRateDenominator: isSet(object.primaryWeaponShotSuccessRateDenominator)\n ? globalThis.Number(object.primaryWeaponShotSuccessRateDenominator)\n : 0,\n secondaryWeapon: isSet(object.secondaryWeapon) ? techActiveWeaponryFromJSON(object.secondaryWeapon) : 0,\n secondaryWeaponControl: isSet(object.secondaryWeaponControl)\n ? techWeaponControlFromJSON(object.secondaryWeaponControl)\n : 0,\n secondaryWeaponCharge: isSet(object.secondaryWeaponCharge) ? globalThis.Number(object.secondaryWeaponCharge) : 0,\n secondaryWeaponAmbits: isSet(object.secondaryWeaponAmbits) ? globalThis.Number(object.secondaryWeaponAmbits) : 0,\n secondaryWeaponTargets: isSet(object.secondaryWeaponTargets)\n ? globalThis.Number(object.secondaryWeaponTargets)\n : 0,\n secondaryWeaponShots: isSet(object.secondaryWeaponShots) ? globalThis.Number(object.secondaryWeaponShots) : 0,\n secondaryWeaponDamage: isSet(object.secondaryWeaponDamage) ? globalThis.Number(object.secondaryWeaponDamage) : 0,\n secondaryWeaponBlockable: isSet(object.secondaryWeaponBlockable)\n ? globalThis.Boolean(object.secondaryWeaponBlockable)\n : false,\n secondaryWeaponCounterable: isSet(object.secondaryWeaponCounterable)\n ? globalThis.Boolean(object.secondaryWeaponCounterable)\n : false,\n secondaryWeaponRecoilDamage: isSet(object.secondaryWeaponRecoilDamage)\n ? globalThis.Number(object.secondaryWeaponRecoilDamage)\n : 0,\n secondaryWeaponShotSuccessRateNumerator: isSet(object.secondaryWeaponShotSuccessRateNumerator)\n ? globalThis.Number(object.secondaryWeaponShotSuccessRateNumerator)\n : 0,\n secondaryWeaponShotSuccessRateDenominator: isSet(object.secondaryWeaponShotSuccessRateDenominator)\n ? globalThis.Number(object.secondaryWeaponShotSuccessRateDenominator)\n : 0,\n passiveWeaponry: isSet(object.passiveWeaponry) ? techPassiveWeaponryFromJSON(object.passiveWeaponry) : 0,\n unitDefenses: isSet(object.unitDefenses) ? techUnitDefensesFromJSON(object.unitDefenses) : 0,\n oreReserveDefenses: isSet(object.oreReserveDefenses)\n ? techOreReserveDefensesFromJSON(object.oreReserveDefenses)\n : 0,\n planetaryDefenses: isSet(object.planetaryDefenses) ? techPlanetaryDefensesFromJSON(object.planetaryDefenses) : 0,\n planetaryMining: isSet(object.planetaryMining) ? techPlanetaryMiningFromJSON(object.planetaryMining) : 0,\n planetaryRefinery: isSet(object.planetaryRefinery)\n ? techPlanetaryRefineriesFromJSON(object.planetaryRefinery)\n : 0,\n powerGeneration: isSet(object.powerGeneration) ? techPowerGenerationFromJSON(object.powerGeneration) : 0,\n activateCharge: isSet(object.activateCharge) ? globalThis.Number(object.activateCharge) : 0,\n buildCharge: isSet(object.buildCharge) ? globalThis.Number(object.buildCharge) : 0,\n defendChangeCharge: isSet(object.defendChangeCharge) ? globalThis.Number(object.defendChangeCharge) : 0,\n moveCharge: isSet(object.moveCharge) ? globalThis.Number(object.moveCharge) : 0,\n stealthActivateCharge: isSet(object.stealthActivateCharge) ? globalThis.Number(object.stealthActivateCharge) : 0,\n attackReduction: isSet(object.attackReduction) ? globalThis.Number(object.attackReduction) : 0,\n attackCounterable: isSet(object.attackCounterable) ? globalThis.Boolean(object.attackCounterable) : false,\n stealthSystems: isSet(object.stealthSystems) ? globalThis.Boolean(object.stealthSystems) : false,\n counterAttack: isSet(object.counterAttack) ? globalThis.Number(object.counterAttack) : 0,\n counterAttackSameAmbit: isSet(object.counterAttackSameAmbit)\n ? globalThis.Number(object.counterAttackSameAmbit)\n : 0,\n postDestructionDamage: isSet(object.postDestructionDamage) ? globalThis.Number(object.postDestructionDamage) : 0,\n generatingRate: isSet(object.generatingRate) ? globalThis.Number(object.generatingRate) : 0,\n planetaryShieldContribution: isSet(object.planetaryShieldContribution)\n ? globalThis.Number(object.planetaryShieldContribution)\n : 0,\n oreMiningDifficulty: isSet(object.oreMiningDifficulty) ? globalThis.Number(object.oreMiningDifficulty) : 0,\n oreRefiningDifficulty: isSet(object.oreRefiningDifficulty) ? globalThis.Number(object.oreRefiningDifficulty) : 0,\n unguidedDefensiveSuccessRateNumerator: isSet(object.unguidedDefensiveSuccessRateNumerator)\n ? globalThis.Number(object.unguidedDefensiveSuccessRateNumerator)\n : 0,\n unguidedDefensiveSuccessRateDenominator: isSet(object.unguidedDefensiveSuccessRateDenominator)\n ? globalThis.Number(object.unguidedDefensiveSuccessRateDenominator)\n : 0,\n guidedDefensiveSuccessRateNumerator: isSet(object.guidedDefensiveSuccessRateNumerator)\n ? globalThis.Number(object.guidedDefensiveSuccessRateNumerator)\n : 0,\n guidedDefensiveSuccessRateDenominator: isSet(object.guidedDefensiveSuccessRateDenominator)\n ? globalThis.Number(object.guidedDefensiveSuccessRateDenominator)\n : 0,\n triggerRaidDefeatByDestruction: isSet(object.triggerRaidDefeatByDestruction)\n ? globalThis.Boolean(object.triggerRaidDefeatByDestruction)\n : false,\n };\n },\n\n toJSON(message: StructType): unknown {\n const obj: any = {};\n if (message.id !== 0) {\n obj.id = Math.round(message.id);\n }\n if (message.type !== \"\") {\n obj.type = message.type;\n }\n if (message.class !== \"\") {\n obj.class = message.class;\n }\n if (message.classAbbreviation !== \"\") {\n obj.classAbbreviation = message.classAbbreviation;\n }\n if (message.defaultCosmeticModelNumber !== \"\") {\n obj.defaultCosmeticModelNumber = message.defaultCosmeticModelNumber;\n }\n if (message.defaultCosmeticName !== \"\") {\n obj.defaultCosmeticName = message.defaultCosmeticName;\n }\n if (message.category !== 0) {\n obj.category = objectTypeToJSON(message.category);\n }\n if (message.buildLimit !== 0) {\n obj.buildLimit = Math.round(message.buildLimit);\n }\n if (message.buildDifficulty !== 0) {\n obj.buildDifficulty = Math.round(message.buildDifficulty);\n }\n if (message.buildDraw !== 0) {\n obj.buildDraw = Math.round(message.buildDraw);\n }\n if (message.maxHealth !== 0) {\n obj.maxHealth = Math.round(message.maxHealth);\n }\n if (message.passiveDraw !== 0) {\n obj.passiveDraw = Math.round(message.passiveDraw);\n }\n if (message.possibleAmbit !== 0) {\n obj.possibleAmbit = Math.round(message.possibleAmbit);\n }\n if (message.movable !== false) {\n obj.movable = message.movable;\n }\n if (message.slotBound !== false) {\n obj.slotBound = message.slotBound;\n }\n if (message.primaryWeapon !== 0) {\n obj.primaryWeapon = techActiveWeaponryToJSON(message.primaryWeapon);\n }\n if (message.primaryWeaponControl !== 0) {\n obj.primaryWeaponControl = techWeaponControlToJSON(message.primaryWeaponControl);\n }\n if (message.primaryWeaponCharge !== 0) {\n obj.primaryWeaponCharge = Math.round(message.primaryWeaponCharge);\n }\n if (message.primaryWeaponAmbits !== 0) {\n obj.primaryWeaponAmbits = Math.round(message.primaryWeaponAmbits);\n }\n if (message.primaryWeaponTargets !== 0) {\n obj.primaryWeaponTargets = Math.round(message.primaryWeaponTargets);\n }\n if (message.primaryWeaponShots !== 0) {\n obj.primaryWeaponShots = Math.round(message.primaryWeaponShots);\n }\n if (message.primaryWeaponDamage !== 0) {\n obj.primaryWeaponDamage = Math.round(message.primaryWeaponDamage);\n }\n if (message.primaryWeaponBlockable !== false) {\n obj.primaryWeaponBlockable = message.primaryWeaponBlockable;\n }\n if (message.primaryWeaponCounterable !== false) {\n obj.primaryWeaponCounterable = message.primaryWeaponCounterable;\n }\n if (message.primaryWeaponRecoilDamage !== 0) {\n obj.primaryWeaponRecoilDamage = Math.round(message.primaryWeaponRecoilDamage);\n }\n if (message.primaryWeaponShotSuccessRateNumerator !== 0) {\n obj.primaryWeaponShotSuccessRateNumerator = Math.round(message.primaryWeaponShotSuccessRateNumerator);\n }\n if (message.primaryWeaponShotSuccessRateDenominator !== 0) {\n obj.primaryWeaponShotSuccessRateDenominator = Math.round(message.primaryWeaponShotSuccessRateDenominator);\n }\n if (message.secondaryWeapon !== 0) {\n obj.secondaryWeapon = techActiveWeaponryToJSON(message.secondaryWeapon);\n }\n if (message.secondaryWeaponControl !== 0) {\n obj.secondaryWeaponControl = techWeaponControlToJSON(message.secondaryWeaponControl);\n }\n if (message.secondaryWeaponCharge !== 0) {\n obj.secondaryWeaponCharge = Math.round(message.secondaryWeaponCharge);\n }\n if (message.secondaryWeaponAmbits !== 0) {\n obj.secondaryWeaponAmbits = Math.round(message.secondaryWeaponAmbits);\n }\n if (message.secondaryWeaponTargets !== 0) {\n obj.secondaryWeaponTargets = Math.round(message.secondaryWeaponTargets);\n }\n if (message.secondaryWeaponShots !== 0) {\n obj.secondaryWeaponShots = Math.round(message.secondaryWeaponShots);\n }\n if (message.secondaryWeaponDamage !== 0) {\n obj.secondaryWeaponDamage = Math.round(message.secondaryWeaponDamage);\n }\n if (message.secondaryWeaponBlockable !== false) {\n obj.secondaryWeaponBlockable = message.secondaryWeaponBlockable;\n }\n if (message.secondaryWeaponCounterable !== false) {\n obj.secondaryWeaponCounterable = message.secondaryWeaponCounterable;\n }\n if (message.secondaryWeaponRecoilDamage !== 0) {\n obj.secondaryWeaponRecoilDamage = Math.round(message.secondaryWeaponRecoilDamage);\n }\n if (message.secondaryWeaponShotSuccessRateNumerator !== 0) {\n obj.secondaryWeaponShotSuccessRateNumerator = Math.round(message.secondaryWeaponShotSuccessRateNumerator);\n }\n if (message.secondaryWeaponShotSuccessRateDenominator !== 0) {\n obj.secondaryWeaponShotSuccessRateDenominator = Math.round(message.secondaryWeaponShotSuccessRateDenominator);\n }\n if (message.passiveWeaponry !== 0) {\n obj.passiveWeaponry = techPassiveWeaponryToJSON(message.passiveWeaponry);\n }\n if (message.unitDefenses !== 0) {\n obj.unitDefenses = techUnitDefensesToJSON(message.unitDefenses);\n }\n if (message.oreReserveDefenses !== 0) {\n obj.oreReserveDefenses = techOreReserveDefensesToJSON(message.oreReserveDefenses);\n }\n if (message.planetaryDefenses !== 0) {\n obj.planetaryDefenses = techPlanetaryDefensesToJSON(message.planetaryDefenses);\n }\n if (message.planetaryMining !== 0) {\n obj.planetaryMining = techPlanetaryMiningToJSON(message.planetaryMining);\n }\n if (message.planetaryRefinery !== 0) {\n obj.planetaryRefinery = techPlanetaryRefineriesToJSON(message.planetaryRefinery);\n }\n if (message.powerGeneration !== 0) {\n obj.powerGeneration = techPowerGenerationToJSON(message.powerGeneration);\n }\n if (message.activateCharge !== 0) {\n obj.activateCharge = Math.round(message.activateCharge);\n }\n if (message.buildCharge !== 0) {\n obj.buildCharge = Math.round(message.buildCharge);\n }\n if (message.defendChangeCharge !== 0) {\n obj.defendChangeCharge = Math.round(message.defendChangeCharge);\n }\n if (message.moveCharge !== 0) {\n obj.moveCharge = Math.round(message.moveCharge);\n }\n if (message.stealthActivateCharge !== 0) {\n obj.stealthActivateCharge = Math.round(message.stealthActivateCharge);\n }\n if (message.attackReduction !== 0) {\n obj.attackReduction = Math.round(message.attackReduction);\n }\n if (message.attackCounterable !== false) {\n obj.attackCounterable = message.attackCounterable;\n }\n if (message.stealthSystems !== false) {\n obj.stealthSystems = message.stealthSystems;\n }\n if (message.counterAttack !== 0) {\n obj.counterAttack = Math.round(message.counterAttack);\n }\n if (message.counterAttackSameAmbit !== 0) {\n obj.counterAttackSameAmbit = Math.round(message.counterAttackSameAmbit);\n }\n if (message.postDestructionDamage !== 0) {\n obj.postDestructionDamage = Math.round(message.postDestructionDamage);\n }\n if (message.generatingRate !== 0) {\n obj.generatingRate = Math.round(message.generatingRate);\n }\n if (message.planetaryShieldContribution !== 0) {\n obj.planetaryShieldContribution = Math.round(message.planetaryShieldContribution);\n }\n if (message.oreMiningDifficulty !== 0) {\n obj.oreMiningDifficulty = Math.round(message.oreMiningDifficulty);\n }\n if (message.oreRefiningDifficulty !== 0) {\n obj.oreRefiningDifficulty = Math.round(message.oreRefiningDifficulty);\n }\n if (message.unguidedDefensiveSuccessRateNumerator !== 0) {\n obj.unguidedDefensiveSuccessRateNumerator = Math.round(message.unguidedDefensiveSuccessRateNumerator);\n }\n if (message.unguidedDefensiveSuccessRateDenominator !== 0) {\n obj.unguidedDefensiveSuccessRateDenominator = Math.round(message.unguidedDefensiveSuccessRateDenominator);\n }\n if (message.guidedDefensiveSuccessRateNumerator !== 0) {\n obj.guidedDefensiveSuccessRateNumerator = Math.round(message.guidedDefensiveSuccessRateNumerator);\n }\n if (message.guidedDefensiveSuccessRateDenominator !== 0) {\n obj.guidedDefensiveSuccessRateDenominator = Math.round(message.guidedDefensiveSuccessRateDenominator);\n }\n if (message.triggerRaidDefeatByDestruction !== false) {\n obj.triggerRaidDefeatByDestruction = message.triggerRaidDefeatByDestruction;\n }\n return obj;\n },\n\n create, I>>(base?: I): StructType {\n return StructType.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): StructType {\n const message = createBaseStructType();\n message.id = object.id ?? 0;\n message.type = object.type ?? \"\";\n message.class = object.class ?? \"\";\n message.classAbbreviation = object.classAbbreviation ?? \"\";\n message.defaultCosmeticModelNumber = object.defaultCosmeticModelNumber ?? \"\";\n message.defaultCosmeticName = object.defaultCosmeticName ?? \"\";\n message.category = object.category ?? 0;\n message.buildLimit = object.buildLimit ?? 0;\n message.buildDifficulty = object.buildDifficulty ?? 0;\n message.buildDraw = object.buildDraw ?? 0;\n message.maxHealth = object.maxHealth ?? 0;\n message.passiveDraw = object.passiveDraw ?? 0;\n message.possibleAmbit = object.possibleAmbit ?? 0;\n message.movable = object.movable ?? false;\n message.slotBound = object.slotBound ?? false;\n message.primaryWeapon = object.primaryWeapon ?? 0;\n message.primaryWeaponControl = object.primaryWeaponControl ?? 0;\n message.primaryWeaponCharge = object.primaryWeaponCharge ?? 0;\n message.primaryWeaponAmbits = object.primaryWeaponAmbits ?? 0;\n message.primaryWeaponTargets = object.primaryWeaponTargets ?? 0;\n message.primaryWeaponShots = object.primaryWeaponShots ?? 0;\n message.primaryWeaponDamage = object.primaryWeaponDamage ?? 0;\n message.primaryWeaponBlockable = object.primaryWeaponBlockable ?? false;\n message.primaryWeaponCounterable = object.primaryWeaponCounterable ?? false;\n message.primaryWeaponRecoilDamage = object.primaryWeaponRecoilDamage ?? 0;\n message.primaryWeaponShotSuccessRateNumerator = object.primaryWeaponShotSuccessRateNumerator ?? 0;\n message.primaryWeaponShotSuccessRateDenominator = object.primaryWeaponShotSuccessRateDenominator ?? 0;\n message.secondaryWeapon = object.secondaryWeapon ?? 0;\n message.secondaryWeaponControl = object.secondaryWeaponControl ?? 0;\n message.secondaryWeaponCharge = object.secondaryWeaponCharge ?? 0;\n message.secondaryWeaponAmbits = object.secondaryWeaponAmbits ?? 0;\n message.secondaryWeaponTargets = object.secondaryWeaponTargets ?? 0;\n message.secondaryWeaponShots = object.secondaryWeaponShots ?? 0;\n message.secondaryWeaponDamage = object.secondaryWeaponDamage ?? 0;\n message.secondaryWeaponBlockable = object.secondaryWeaponBlockable ?? false;\n message.secondaryWeaponCounterable = object.secondaryWeaponCounterable ?? false;\n message.secondaryWeaponRecoilDamage = object.secondaryWeaponRecoilDamage ?? 0;\n message.secondaryWeaponShotSuccessRateNumerator = object.secondaryWeaponShotSuccessRateNumerator ?? 0;\n message.secondaryWeaponShotSuccessRateDenominator = object.secondaryWeaponShotSuccessRateDenominator ?? 0;\n message.passiveWeaponry = object.passiveWeaponry ?? 0;\n message.unitDefenses = object.unitDefenses ?? 0;\n message.oreReserveDefenses = object.oreReserveDefenses ?? 0;\n message.planetaryDefenses = object.planetaryDefenses ?? 0;\n message.planetaryMining = object.planetaryMining ?? 0;\n message.planetaryRefinery = object.planetaryRefinery ?? 0;\n message.powerGeneration = object.powerGeneration ?? 0;\n message.activateCharge = object.activateCharge ?? 0;\n message.buildCharge = object.buildCharge ?? 0;\n message.defendChangeCharge = object.defendChangeCharge ?? 0;\n message.moveCharge = object.moveCharge ?? 0;\n message.stealthActivateCharge = object.stealthActivateCharge ?? 0;\n message.attackReduction = object.attackReduction ?? 0;\n message.attackCounterable = object.attackCounterable ?? false;\n message.stealthSystems = object.stealthSystems ?? false;\n message.counterAttack = object.counterAttack ?? 0;\n message.counterAttackSameAmbit = object.counterAttackSameAmbit ?? 0;\n message.postDestructionDamage = object.postDestructionDamage ?? 0;\n message.generatingRate = object.generatingRate ?? 0;\n message.planetaryShieldContribution = object.planetaryShieldContribution ?? 0;\n message.oreMiningDifficulty = object.oreMiningDifficulty ?? 0;\n message.oreRefiningDifficulty = object.oreRefiningDifficulty ?? 0;\n message.unguidedDefensiveSuccessRateNumerator = object.unguidedDefensiveSuccessRateNumerator ?? 0;\n message.unguidedDefensiveSuccessRateDenominator = object.unguidedDefensiveSuccessRateDenominator ?? 0;\n message.guidedDefensiveSuccessRateNumerator = object.guidedDefensiveSuccessRateNumerator ?? 0;\n message.guidedDefensiveSuccessRateDenominator = object.guidedDefensiveSuccessRateDenominator ?? 0;\n message.triggerRaidDefeatByDestruction = object.triggerRaidDefeatByDestruction ?? false;\n return message;\n },\n};\n\nfunction createBaseStructDefender(): StructDefender {\n return { protectedStructId: \"\", defendingStructId: \"\" };\n}\n\nexport const StructDefender: MessageFns = {\n encode(message: StructDefender, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.protectedStructId !== \"\") {\n writer.uint32(10).string(message.protectedStructId);\n }\n if (message.defendingStructId !== \"\") {\n writer.uint32(18).string(message.defendingStructId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): StructDefender {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStructDefender();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.protectedStructId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.defendingStructId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): StructDefender {\n return {\n protectedStructId: isSet(object.protectedStructId) ? globalThis.String(object.protectedStructId) : \"\",\n defendingStructId: isSet(object.defendingStructId) ? globalThis.String(object.defendingStructId) : \"\",\n };\n },\n\n toJSON(message: StructDefender): unknown {\n const obj: any = {};\n if (message.protectedStructId !== \"\") {\n obj.protectedStructId = message.protectedStructId;\n }\n if (message.defendingStructId !== \"\") {\n obj.defendingStructId = message.defendingStructId;\n }\n return obj;\n },\n\n create, I>>(base?: I): StructDefender {\n return StructDefender.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): StructDefender {\n const message = createBaseStructDefender();\n message.protectedStructId = object.protectedStructId ?? \"\";\n message.defendingStructId = object.defendingStructId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseStructDefenders(): StructDefenders {\n return { structDefenders: [] };\n}\n\nexport const StructDefenders: MessageFns = {\n encode(message: StructDefenders, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.structDefenders) {\n StructDefender.encode(v!, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): StructDefenders {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStructDefenders();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.structDefenders.push(StructDefender.decode(reader, reader.uint32()));\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): StructDefenders {\n return {\n structDefenders: globalThis.Array.isArray(object?.structDefenders)\n ? object.structDefenders.map((e: any) => StructDefender.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: StructDefenders): unknown {\n const obj: any = {};\n if (message.structDefenders?.length) {\n obj.structDefenders = message.structDefenders.map((e) => StructDefender.toJSON(e));\n }\n return obj;\n },\n\n create, I>>(base?: I): StructDefenders {\n return StructDefenders.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): StructDefenders {\n const message = createBaseStructDefenders();\n message.structDefenders = object.structDefenders?.map((e) => StructDefender.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseStructAttributeRecord(): StructAttributeRecord {\n return { attributeId: \"\", value: 0 };\n}\n\nexport const StructAttributeRecord: MessageFns = {\n encode(message: StructAttributeRecord, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.attributeId !== \"\") {\n writer.uint32(10).string(message.attributeId);\n }\n if (message.value !== 0) {\n writer.uint32(16).uint64(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): StructAttributeRecord {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStructAttributeRecord();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.attributeId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.value = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): StructAttributeRecord {\n return {\n attributeId: isSet(object.attributeId) ? globalThis.String(object.attributeId) : \"\",\n value: isSet(object.value) ? globalThis.Number(object.value) : 0,\n };\n },\n\n toJSON(message: StructAttributeRecord): unknown {\n const obj: any = {};\n if (message.attributeId !== \"\") {\n obj.attributeId = message.attributeId;\n }\n if (message.value !== 0) {\n obj.value = Math.round(message.value);\n }\n return obj;\n },\n\n create, I>>(base?: I): StructAttributeRecord {\n return StructAttributeRecord.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): StructAttributeRecord {\n const message = createBaseStructAttributeRecord();\n message.attributeId = object.attributeId ?? \"\";\n message.value = object.value ?? 0;\n return message;\n },\n};\n\nfunction createBaseStructAttributes(): StructAttributes {\n return {\n health: 0,\n status: 0,\n blockStartBuild: 0,\n blockStartOreMine: 0,\n blockStartOreRefine: 0,\n protectedStructIndex: 0,\n typeCount: 0,\n isMaterialized: false,\n isBuilt: false,\n isOnline: false,\n isHidden: false,\n isDestroyed: false,\n isLocked: false,\n };\n}\n\nexport const StructAttributes: MessageFns = {\n encode(message: StructAttributes, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.health !== 0) {\n writer.uint32(8).uint64(message.health);\n }\n if (message.status !== 0) {\n writer.uint32(16).uint64(message.status);\n }\n if (message.blockStartBuild !== 0) {\n writer.uint32(24).uint64(message.blockStartBuild);\n }\n if (message.blockStartOreMine !== 0) {\n writer.uint32(32).uint64(message.blockStartOreMine);\n }\n if (message.blockStartOreRefine !== 0) {\n writer.uint32(40).uint64(message.blockStartOreRefine);\n }\n if (message.protectedStructIndex !== 0) {\n writer.uint32(48).uint64(message.protectedStructIndex);\n }\n if (message.typeCount !== 0) {\n writer.uint32(56).uint64(message.typeCount);\n }\n if (message.isMaterialized !== false) {\n writer.uint32(64).bool(message.isMaterialized);\n }\n if (message.isBuilt !== false) {\n writer.uint32(72).bool(message.isBuilt);\n }\n if (message.isOnline !== false) {\n writer.uint32(80).bool(message.isOnline);\n }\n if (message.isHidden !== false) {\n writer.uint32(88).bool(message.isHidden);\n }\n if (message.isDestroyed !== false) {\n writer.uint32(96).bool(message.isDestroyed);\n }\n if (message.isLocked !== false) {\n writer.uint32(104).bool(message.isLocked);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): StructAttributes {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStructAttributes();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.health = longToNumber(reader.uint64());\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.status = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.blockStartBuild = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.blockStartOreMine = longToNumber(reader.uint64());\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.blockStartOreRefine = longToNumber(reader.uint64());\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.protectedStructIndex = longToNumber(reader.uint64());\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.typeCount = longToNumber(reader.uint64());\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.isMaterialized = reader.bool();\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.isBuilt = reader.bool();\n continue;\n }\n case 10: {\n if (tag !== 80) {\n break;\n }\n\n message.isOnline = reader.bool();\n continue;\n }\n case 11: {\n if (tag !== 88) {\n break;\n }\n\n message.isHidden = reader.bool();\n continue;\n }\n case 12: {\n if (tag !== 96) {\n break;\n }\n\n message.isDestroyed = reader.bool();\n continue;\n }\n case 13: {\n if (tag !== 104) {\n break;\n }\n\n message.isLocked = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): StructAttributes {\n return {\n health: isSet(object.health) ? globalThis.Number(object.health) : 0,\n status: isSet(object.status) ? globalThis.Number(object.status) : 0,\n blockStartBuild: isSet(object.blockStartBuild) ? globalThis.Number(object.blockStartBuild) : 0,\n blockStartOreMine: isSet(object.blockStartOreMine) ? globalThis.Number(object.blockStartOreMine) : 0,\n blockStartOreRefine: isSet(object.blockStartOreRefine) ? globalThis.Number(object.blockStartOreRefine) : 0,\n protectedStructIndex: isSet(object.protectedStructIndex) ? globalThis.Number(object.protectedStructIndex) : 0,\n typeCount: isSet(object.typeCount) ? globalThis.Number(object.typeCount) : 0,\n isMaterialized: isSet(object.isMaterialized) ? globalThis.Boolean(object.isMaterialized) : false,\n isBuilt: isSet(object.isBuilt) ? globalThis.Boolean(object.isBuilt) : false,\n isOnline: isSet(object.isOnline) ? globalThis.Boolean(object.isOnline) : false,\n isHidden: isSet(object.isHidden) ? globalThis.Boolean(object.isHidden) : false,\n isDestroyed: isSet(object.isDestroyed) ? globalThis.Boolean(object.isDestroyed) : false,\n isLocked: isSet(object.isLocked) ? globalThis.Boolean(object.isLocked) : false,\n };\n },\n\n toJSON(message: StructAttributes): unknown {\n const obj: any = {};\n if (message.health !== 0) {\n obj.health = Math.round(message.health);\n }\n if (message.status !== 0) {\n obj.status = Math.round(message.status);\n }\n if (message.blockStartBuild !== 0) {\n obj.blockStartBuild = Math.round(message.blockStartBuild);\n }\n if (message.blockStartOreMine !== 0) {\n obj.blockStartOreMine = Math.round(message.blockStartOreMine);\n }\n if (message.blockStartOreRefine !== 0) {\n obj.blockStartOreRefine = Math.round(message.blockStartOreRefine);\n }\n if (message.protectedStructIndex !== 0) {\n obj.protectedStructIndex = Math.round(message.protectedStructIndex);\n }\n if (message.typeCount !== 0) {\n obj.typeCount = Math.round(message.typeCount);\n }\n if (message.isMaterialized !== false) {\n obj.isMaterialized = message.isMaterialized;\n }\n if (message.isBuilt !== false) {\n obj.isBuilt = message.isBuilt;\n }\n if (message.isOnline !== false) {\n obj.isOnline = message.isOnline;\n }\n if (message.isHidden !== false) {\n obj.isHidden = message.isHidden;\n }\n if (message.isDestroyed !== false) {\n obj.isDestroyed = message.isDestroyed;\n }\n if (message.isLocked !== false) {\n obj.isLocked = message.isLocked;\n }\n return obj;\n },\n\n create, I>>(base?: I): StructAttributes {\n return StructAttributes.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): StructAttributes {\n const message = createBaseStructAttributes();\n message.health = object.health ?? 0;\n message.status = object.status ?? 0;\n message.blockStartBuild = object.blockStartBuild ?? 0;\n message.blockStartOreMine = object.blockStartOreMine ?? 0;\n message.blockStartOreRefine = object.blockStartOreRefine ?? 0;\n message.protectedStructIndex = object.protectedStructIndex ?? 0;\n message.typeCount = object.typeCount ?? 0;\n message.isMaterialized = object.isMaterialized ?? false;\n message.isBuilt = object.isBuilt ?? false;\n message.isOnline = object.isOnline ?? false;\n message.isHidden = object.isHidden ?? false;\n message.isDestroyed = object.isDestroyed ?? false;\n message.isLocked = object.isLocked ?? false;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/substation.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"structs.structs\";\n\nexport interface Substation {\n id: string;\n owner: string;\n creator: string;\n}\n\nfunction createBaseSubstation(): Substation {\n return { id: \"\", owner: \"\", creator: \"\" };\n}\n\nexport const Substation: MessageFns = {\n encode(message: Substation, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.owner !== \"\") {\n writer.uint32(18).string(message.owner);\n }\n if (message.creator !== \"\") {\n writer.uint32(26).string(message.creator);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Substation {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSubstation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.owner = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Substation {\n return {\n id: isSet(object.id) ? globalThis.String(object.id) : \"\",\n owner: isSet(object.owner) ? globalThis.String(object.owner) : \"\",\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n };\n },\n\n toJSON(message: Substation): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n if (message.owner !== \"\") {\n obj.owner = message.owner;\n }\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n return obj;\n },\n\n create, I>>(base?: I): Substation {\n return Substation.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Substation {\n const message = createBaseSubstation();\n message.id = object.id ?? \"\";\n message.owner = object.owner ?? \"\";\n message.creator = object.creator ?? \"\";\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.6.1\n// protoc unknown\n// source: structs/structs/tx.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { Coin } from \"../../cosmos/base/v1beta1/coin\";\nimport { Timestamp } from \"../../google/protobuf/timestamp\";\nimport { Fleet } from \"./fleet\";\nimport { GuildMembershipApplication } from \"./guild\";\nimport {\n allocationType,\n allocationTypeFromJSON,\n allocationTypeToJSON,\n ambit,\n ambitFromJSON,\n ambitToJSON,\n guildJoinBypassLevel,\n guildJoinBypassLevelFromJSON,\n guildJoinBypassLevelToJSON,\n objectType,\n objectTypeFromJSON,\n objectTypeToJSON,\n providerAccessPolicy,\n providerAccessPolicyFromJSON,\n providerAccessPolicyToJSON,\n} from \"./keys\";\nimport { Params } from \"./params\";\nimport { Planet } from \"./planet\";\nimport { Struct } from \"./struct\";\n\nexport const protobufPackage = \"structs.structs\";\n\n/** MsgUpdateParams is the Msg/UpdateParams request type. */\nexport interface MsgUpdateParams {\n /** authority is the address that controls the module (defaults to x/gov unless overwritten). */\n authority: string;\n /**\n * params defines the module parameters to update.\n *\n * NOTE: All parameters must be supplied.\n */\n params: Params | undefined;\n}\n\n/**\n * MsgUpdateParamsResponse defines the response structure for executing a\n * MsgUpdateParams message.\n */\nexport interface MsgUpdateParamsResponse {\n}\n\nexport interface MsgAddressRegister {\n creator: string;\n playerId: string;\n address: string;\n proofPubKey: string;\n proofSignature: string;\n permissions: number;\n}\n\nexport interface MsgAddressRegisterResponse {\n}\n\nexport interface MsgAddressRevoke {\n creator: string;\n address: string;\n}\n\nexport interface MsgAddressRevokeResponse {\n}\n\nexport interface MsgAllocationCreate {\n creator: string;\n controller: string;\n sourceObjectId: string;\n allocationType: allocationType;\n power: number;\n}\n\nexport interface MsgAllocationCreateResponse {\n allocationId: string;\n}\n\nexport interface MsgAllocationDelete {\n creator: string;\n allocationId: string;\n}\n\nexport interface MsgAllocationDeleteResponse {\n allocationId: string;\n}\n\nexport interface MsgAllocationUpdate {\n creator: string;\n allocationId: string;\n power: number;\n}\n\nexport interface MsgAllocationUpdateResponse {\n allocationId: string;\n}\n\nexport interface MsgAllocationTransfer {\n creator: string;\n allocationId: string;\n controller: string;\n}\n\nexport interface MsgAllocationTransferResponse {\n allocationId: string;\n}\n\nexport interface MsgFleetMove {\n creator: string;\n fleetId: string;\n destinationLocationId: string;\n}\n\nexport interface MsgFleetMoveResponse {\n fleet: Fleet | undefined;\n}\n\nexport interface MsgGuildBankMint {\n creator: string;\n amountAlpha: number;\n amountToken: number;\n}\n\nexport interface MsgGuildBankMintResponse {\n}\n\nexport interface MsgGuildBankRedeem {\n creator: string;\n amountToken: Coin | undefined;\n}\n\nexport interface MsgGuildBankRedeemResponse {\n}\n\nexport interface MsgGuildBankConfiscateAndBurn {\n creator: string;\n address: string;\n amountToken: number;\n}\n\nexport interface MsgGuildBankConfiscateAndBurnResponse {\n}\n\nexport interface MsgGuildCreate {\n creator: string;\n reactorId: string;\n endpoint: string;\n entrySubstationId: string;\n}\n\nexport interface MsgGuildCreateResponse {\n guildId: string;\n}\n\nexport interface MsgGuildUpdateOwnerId {\n creator: string;\n guildId: string;\n owner: string;\n}\n\nexport interface MsgGuildUpdateEntrySubstationId {\n creator: string;\n guildId: string;\n entrySubstationId: string;\n}\n\nexport interface MsgGuildUpdateEndpoint {\n creator: string;\n guildId: string;\n endpoint: string;\n}\n\nexport interface MsgGuildUpdateJoinInfusionMinimum {\n creator: string;\n guildId: string;\n joinInfusionMinimum: number;\n}\n\nexport interface MsgGuildUpdateJoinInfusionMinimumBypassByRequest {\n creator: string;\n guildId: string;\n guildJoinBypassLevel: guildJoinBypassLevel;\n}\n\nexport interface MsgGuildUpdateJoinInfusionMinimumBypassByInvite {\n creator: string;\n guildId: string;\n guildJoinBypassLevel: guildJoinBypassLevel;\n}\n\nexport interface MsgGuildUpdateEntryRank {\n creator: string;\n newEntryRank: number;\n}\n\nexport interface MsgGuildUpdateName {\n creator: string;\n guildId: string;\n name: string;\n}\n\nexport interface MsgGuildUpdatePfp {\n creator: string;\n guildId: string;\n pfp: string;\n}\n\nexport interface MsgGuildUpdateResponse {\n}\n\nexport interface MsgGuildMembershipInvite {\n creator: string;\n guildId: string;\n playerId: string;\n substationId: string;\n}\n\nexport interface MsgGuildMembershipInviteApprove {\n creator: string;\n guildId: string;\n playerId: string;\n substationId: string;\n}\n\nexport interface MsgGuildMembershipInviteDeny {\n creator: string;\n guildId: string;\n playerId: string;\n}\n\nexport interface MsgGuildMembershipInviteRevoke {\n creator: string;\n guildId: string;\n playerId: string;\n}\n\nexport interface MsgGuildMembershipJoin {\n creator: string;\n guildId: string;\n playerId: string;\n substationId: string;\n infusionId: string[];\n}\n\nexport interface MsgGuildMembershipJoinProxy {\n creator: string;\n address: string;\n substationId: string;\n proofPubKey: string;\n proofSignature: string;\n playerName: string;\n playerPfp: string;\n}\n\nexport interface MsgGuildMembershipKick {\n creator: string;\n guildId: string;\n playerId: string;\n}\n\nexport interface MsgGuildMembershipRequest {\n creator: string;\n guildId: string;\n playerId: string;\n substationId: string;\n}\n\nexport interface MsgGuildMembershipRequestApprove {\n creator: string;\n guildId: string;\n playerId: string;\n substationId: string;\n}\n\nexport interface MsgGuildMembershipRequestDeny {\n creator: string;\n guildId: string;\n playerId: string;\n}\n\nexport interface MsgGuildMembershipRequestRevoke {\n creator: string;\n guildId: string;\n playerId: string;\n}\n\nexport interface MsgGuildMembershipResponse {\n guildMembershipApplication: GuildMembershipApplication | undefined;\n}\n\nexport interface MsgPermissionGrantOnObject {\n creator: string;\n objectId: string;\n playerId: string;\n permissions: number;\n}\n\nexport interface MsgPermissionGrantOnAddress {\n creator: string;\n address: string;\n permissions: number;\n}\n\nexport interface MsgPermissionRevokeOnObject {\n creator: string;\n objectId: string;\n playerId: string;\n permissions: number;\n}\n\nexport interface MsgPermissionRevokeOnAddress {\n creator: string;\n address: string;\n permissions: number;\n}\n\nexport interface MsgPermissionSetOnObject {\n creator: string;\n objectId: string;\n playerId: string;\n permissions: number;\n}\n\nexport interface MsgPermissionSetOnAddress {\n creator: string;\n address: string;\n permissions: number;\n}\n\nexport interface MsgPermissionGuildRankSet {\n creator: string;\n objectId: string;\n guildId: string;\n permission: number;\n rank: number;\n}\n\nexport interface MsgPermissionGuildRankRevoke {\n creator: string;\n objectId: string;\n guildId: string;\n permission: number;\n}\n\nexport interface MsgPermissionResponse {\n}\n\nexport interface MsgPlanetExplore {\n creator: string;\n playerId: string;\n}\n\nexport interface MsgPlanetExploreResponse {\n planet: Planet | undefined;\n}\n\nexport interface MsgPlanetRaidComplete {\n creator: string;\n fleetId: string;\n proof: string;\n nonce: string;\n}\n\nexport interface MsgPlanetRaidCompleteResponse {\n fleet: Fleet | undefined;\n planet: Planet | undefined;\n oreStolen: number;\n}\n\nexport interface MsgPlanetUpdateName {\n creator: string;\n planetId: string;\n name: string;\n}\n\nexport interface MsgPlanetUpdateResponse {\n}\n\nexport interface MsgPlayerUpdatePrimaryAddress {\n creator: string;\n primaryAddress: string;\n}\n\nexport interface MsgPlayerUpdatePrimaryAddressResponse {\n}\n\nexport interface MsgPlayerUpdateGuildRank {\n creator: string;\n playerId: string;\n guildRank: number;\n}\n\nexport interface MsgPlayerUpdateGuildRankResponse {\n}\n\nexport interface MsgPlayerUpdateName {\n creator: string;\n playerId: string;\n name: string;\n}\n\nexport interface MsgPlayerUpdatePfp {\n creator: string;\n playerId: string;\n pfp: string;\n}\n\nexport interface MsgPlayerUpdateResponse {\n}\n\nexport interface MsgPlayerResume {\n creator: string;\n playerId: string;\n}\n\nexport interface MsgPlayerResumeResponse {\n}\n\n/**\n * MsgReactorInfuse defines a SDK message for performing a delegation of coins\n * from a delegator to a validator.\n */\nexport interface MsgReactorInfuse {\n creator: string;\n delegatorAddress: string;\n validatorAddress: string;\n amount: Coin | undefined;\n}\n\n/** MsgReactorInfuseResponse defines the Msg/Delegate response type. */\nexport interface MsgReactorInfuseResponse {\n}\n\n/**\n * MsgReactorBeginMigration defines a SDK message for performing a redelegation\n * of coins from a delegator and source validator to a destination validator.\n */\nexport interface MsgReactorBeginMigration {\n creator: string;\n delegatorAddress: string;\n validatorSrcAddress: string;\n validatorDstAddress: string;\n amount: Coin | undefined;\n}\n\n/** MsgBeginMigrationResponse defines the Msg/BeginRedelegate response type. */\nexport interface MsgReactorBeginMigrationResponse {\n completionTime: Date | undefined;\n}\n\n/**\n * MsgReactorDefuse defines a SDK message for performing an undelegation from a\n * delegate and a validator.\n */\nexport interface MsgReactorDefuse {\n creator: string;\n delegatorAddress: string;\n validatorAddress: string;\n amount: Coin | undefined;\n}\n\n/** MsgReactorDefuseResponse defines the Msg/Undelegate response type. */\nexport interface MsgReactorDefuseResponse {\n completionTime:\n | Date\n | undefined;\n /**\n * amount returns the amount of undelegated coins\n *\n * Since: cosmos-sdk 0.50\n */\n amount: Coin | undefined;\n}\n\n/**\n * MsgReactorCancelDefusion defines the SDK message for performing a cancel unbonding delegation for delegator\n *\n * Since: cosmos-sdk 0.46\n */\nexport interface MsgReactorCancelDefusion {\n creator: string;\n delegatorAddress: string;\n validatorAddress: string;\n /** amount is always less than or equal to unbonding delegation entry balance */\n amount:\n | Coin\n | undefined;\n /** creation_height is the height which the unbonding took place. */\n creationHeight: number;\n}\n\n/**\n * MsgReactorCancelDefusionResponse\n *\n * Since: cosmos-sdk 0.46\n */\nexport interface MsgReactorCancelDefusionResponse {\n}\n\nexport interface MsgStructStatusResponse {\n struct: Struct | undefined;\n}\n\nexport interface MsgStructActivate {\n creator: string;\n structId: string;\n}\n\nexport interface MsgStructDeactivate {\n creator: string;\n structId: string;\n}\n\nexport interface MsgStructBuildInitiate {\n creator: string;\n playerId: string;\n structTypeId: number;\n /** objectType locationType = 4; */\n operatingAmbit: ambit;\n slot: number;\n}\n\nexport interface MsgStructBuildComplete {\n creator: string;\n structId: string;\n proof: string;\n nonce: string;\n}\n\nexport interface MsgStructBuildCancel {\n creator: string;\n structId: string;\n}\n\nexport interface MsgStructBuildCompleteAndStash {\n creator: string;\n structId: string;\n proof: string;\n nonce: string;\n storageDestinationId: string;\n storageAmbit: ambit;\n storageSlot: number;\n}\n\nexport interface MsgStructDefenseSet {\n creator: string;\n defenderStructId: string;\n protectedStructId: string;\n}\n\nexport interface MsgStructDefenseClear {\n creator: string;\n defenderStructId: string;\n}\n\nexport interface MsgStructMove {\n creator: string;\n structId: string;\n locationType: objectType;\n ambit: ambit;\n slot: number;\n}\n\nexport interface MsgStructAttack {\n creator: string;\n operatingStructId: string;\n targetStructId: string[];\n weaponSystem: string;\n}\n\nexport interface MsgStructAttackResponse {\n}\n\nexport interface MsgStructStealthActivate {\n creator: string;\n structId: string;\n}\n\nexport interface MsgStructStealthDeactivate {\n creator: string;\n structId: string;\n}\n\nexport interface MsgStructGeneratorInfuse {\n creator: string;\n structId: string;\n infuseAmount: string;\n}\n\nexport interface MsgStructGeneratorStatusResponse {\n}\n\nexport interface MsgStructOreMinerComplete {\n creator: string;\n structId: string;\n proof: string;\n nonce: string;\n}\n\nexport interface MsgStructOreMinerStatusResponse {\n struct: Struct | undefined;\n}\n\nexport interface MsgStructOreRefineryComplete {\n creator: string;\n structId: string;\n proof: string;\n nonce: string;\n}\n\nexport interface MsgStructOreRefineryStatusResponse {\n struct: Struct | undefined;\n}\n\nexport interface MsgStructStorageStash {\n creator: string;\n structId: string;\n locationId: string;\n ambit: ambit;\n slot: number;\n}\n\nexport interface MsgStructStorageRecall {\n creator: string;\n structId: string;\n locationId: string;\n ambit: ambit;\n slot: number;\n activate: boolean;\n}\n\nexport interface MsgSubstationCreate {\n creator: string;\n owner: string;\n allocationId: string;\n}\n\nexport interface MsgSubstationCreateResponse {\n substationId: string;\n}\n\nexport interface MsgSubstationUpdateName {\n creator: string;\n substationId: string;\n name: string;\n}\n\nexport interface MsgSubstationUpdatePfp {\n creator: string;\n substationId: string;\n pfp: string;\n}\n\nexport interface MsgSubstationUpdateResponse {\n}\n\nexport interface MsgSubstationDelete {\n creator: string;\n substationId: string;\n migrationSubstationId: string;\n}\n\nexport interface MsgSubstationDeleteResponse {\n}\n\nexport interface MsgSubstationAllocationConnect {\n creator: string;\n allocationId: string;\n destinationId: string;\n}\n\nexport interface MsgSubstationAllocationConnectResponse {\n}\n\nexport interface MsgSubstationAllocationDisconnect {\n creator: string;\n allocationId: string;\n}\n\nexport interface MsgSubstationAllocationDisconnectResponse {\n}\n\nexport interface MsgSubstationPlayerConnect {\n creator: string;\n substationId: string;\n playerId: string;\n}\n\nexport interface MsgSubstationPlayerConnectResponse {\n}\n\nexport interface MsgSubstationPlayerDisconnect {\n creator: string;\n playerId: string;\n}\n\nexport interface MsgSubstationPlayerDisconnectResponse {\n}\n\nexport interface MsgSubstationPlayerMigrate {\n creator: string;\n substationId: string;\n playerId: string[];\n}\n\nexport interface MsgSubstationPlayerMigrateResponse {\n}\n\nexport interface MsgAgreementOpen {\n creator: string;\n providerId: string;\n duration: number;\n capacity: number;\n}\n\nexport interface MsgAgreementClose {\n creator: string;\n agreementId: string;\n}\n\nexport interface MsgAgreementCapacityIncrease {\n creator: string;\n agreementId: string;\n capacityIncrease: number;\n}\n\nexport interface MsgAgreementCapacityDecrease {\n creator: string;\n agreementId: string;\n capacityDecrease: number;\n}\n\nexport interface MsgAgreementDurationIncrease {\n creator: string;\n agreementId: string;\n durationIncrease: number;\n}\n\nexport interface MsgAgreementResponse {\n}\n\nexport interface MsgProviderCreate {\n creator: string;\n substationId: string;\n rate: Coin | undefined;\n accessPolicy: providerAccessPolicy;\n providerCancellationPenalty: string;\n consumerCancellationPenalty: string;\n capacityMinimum: number;\n capacityMaximum: number;\n durationMinimum: number;\n durationMaximum: number;\n}\n\nexport interface MsgProviderWithdrawBalance {\n creator: string;\n providerId: string;\n destinationAddress: string;\n}\n\nexport interface MsgProviderUpdateCapacityMinimum {\n creator: string;\n providerId: string;\n newMinimumCapacity: number;\n}\n\nexport interface MsgProviderUpdateCapacityMaximum {\n creator: string;\n providerId: string;\n newMaximumCapacity: number;\n}\n\nexport interface MsgProviderUpdateDurationMinimum {\n creator: string;\n providerId: string;\n newMinimumDuration: number;\n}\n\nexport interface MsgProviderUpdateDurationMaximum {\n creator: string;\n providerId: string;\n newMaximumDuration: number;\n}\n\nexport interface MsgProviderUpdateAccessPolicy {\n creator: string;\n providerId: string;\n accessPolicy: providerAccessPolicy;\n}\n\nexport interface MsgProviderGuildGrant {\n creator: string;\n providerId: string;\n guildId: string[];\n}\n\nexport interface MsgProviderGuildRevoke {\n creator: string;\n providerId: string;\n guildId: string[];\n}\n\nexport interface MsgProviderDelete {\n creator: string;\n providerId: string;\n}\n\nexport interface MsgProviderResponse {\n}\n\nexport interface MsgPlayerSend {\n creator: string;\n fromAddress: string;\n toAddress: string;\n amount: Coin[];\n}\n\n/** This message has no fields. */\nexport interface MsgPlayerSendResponse {\n}\n\nfunction createBaseMsgUpdateParams(): MsgUpdateParams {\n return { authority: \"\", params: undefined };\n}\n\nexport const MsgUpdateParams: MessageFns = {\n encode(message: MsgUpdateParams, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.authority !== \"\") {\n writer.uint32(10).string(message.authority);\n }\n if (message.params !== undefined) {\n Params.encode(message.params, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateParams {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.authority = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.params = Params.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgUpdateParams {\n return {\n authority: isSet(object.authority) ? globalThis.String(object.authority) : \"\",\n params: isSet(object.params) ? Params.fromJSON(object.params) : undefined,\n };\n },\n\n toJSON(message: MsgUpdateParams): unknown {\n const obj: any = {};\n if (message.authority !== \"\") {\n obj.authority = message.authority;\n }\n if (message.params !== undefined) {\n obj.params = Params.toJSON(message.params);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgUpdateParams {\n return MsgUpdateParams.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgUpdateParams {\n const message = createBaseMsgUpdateParams();\n message.authority = object.authority ?? \"\";\n message.params = (object.params !== undefined && object.params !== null)\n ? Params.fromPartial(object.params)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgUpdateParamsResponse(): MsgUpdateParamsResponse {\n return {};\n}\n\nexport const MsgUpdateParamsResponse: MessageFns = {\n encode(_: MsgUpdateParamsResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateParamsResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateParamsResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgUpdateParamsResponse {\n return {};\n },\n\n toJSON(_: MsgUpdateParamsResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgUpdateParamsResponse {\n return MsgUpdateParamsResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgUpdateParamsResponse {\n const message = createBaseMsgUpdateParamsResponse();\n return message;\n },\n};\n\nfunction createBaseMsgAddressRegister(): MsgAddressRegister {\n return { creator: \"\", playerId: \"\", address: \"\", proofPubKey: \"\", proofSignature: \"\", permissions: 0 };\n}\n\nexport const MsgAddressRegister: MessageFns = {\n encode(message: MsgAddressRegister, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.playerId !== \"\") {\n writer.uint32(18).string(message.playerId);\n }\n if (message.address !== \"\") {\n writer.uint32(26).string(message.address);\n }\n if (message.proofPubKey !== \"\") {\n writer.uint32(34).string(message.proofPubKey);\n }\n if (message.proofSignature !== \"\") {\n writer.uint32(42).string(message.proofSignature);\n }\n if (message.permissions !== 0) {\n writer.uint32(48).uint64(message.permissions);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAddressRegister {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAddressRegister();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.proofPubKey = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.proofSignature = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.permissions = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAddressRegister {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n proofPubKey: isSet(object.proofPubKey) ? globalThis.String(object.proofPubKey) : \"\",\n proofSignature: isSet(object.proofSignature) ? globalThis.String(object.proofSignature) : \"\",\n permissions: isSet(object.permissions) ? globalThis.Number(object.permissions) : 0,\n };\n },\n\n toJSON(message: MsgAddressRegister): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.proofPubKey !== \"\") {\n obj.proofPubKey = message.proofPubKey;\n }\n if (message.proofSignature !== \"\") {\n obj.proofSignature = message.proofSignature;\n }\n if (message.permissions !== 0) {\n obj.permissions = Math.round(message.permissions);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAddressRegister {\n return MsgAddressRegister.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAddressRegister {\n const message = createBaseMsgAddressRegister();\n message.creator = object.creator ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.address = object.address ?? \"\";\n message.proofPubKey = object.proofPubKey ?? \"\";\n message.proofSignature = object.proofSignature ?? \"\";\n message.permissions = object.permissions ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgAddressRegisterResponse(): MsgAddressRegisterResponse {\n return {};\n}\n\nexport const MsgAddressRegisterResponse: MessageFns = {\n encode(_: MsgAddressRegisterResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAddressRegisterResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAddressRegisterResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgAddressRegisterResponse {\n return {};\n },\n\n toJSON(_: MsgAddressRegisterResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgAddressRegisterResponse {\n return MsgAddressRegisterResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgAddressRegisterResponse {\n const message = createBaseMsgAddressRegisterResponse();\n return message;\n },\n};\n\nfunction createBaseMsgAddressRevoke(): MsgAddressRevoke {\n return { creator: \"\", address: \"\" };\n}\n\nexport const MsgAddressRevoke: MessageFns = {\n encode(message: MsgAddressRevoke, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.address !== \"\") {\n writer.uint32(18).string(message.address);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAddressRevoke {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAddressRevoke();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAddressRevoke {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n };\n },\n\n toJSON(message: MsgAddressRevoke): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAddressRevoke {\n return MsgAddressRevoke.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAddressRevoke {\n const message = createBaseMsgAddressRevoke();\n message.creator = object.creator ?? \"\";\n message.address = object.address ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgAddressRevokeResponse(): MsgAddressRevokeResponse {\n return {};\n}\n\nexport const MsgAddressRevokeResponse: MessageFns = {\n encode(_: MsgAddressRevokeResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAddressRevokeResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAddressRevokeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgAddressRevokeResponse {\n return {};\n },\n\n toJSON(_: MsgAddressRevokeResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgAddressRevokeResponse {\n return MsgAddressRevokeResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgAddressRevokeResponse {\n const message = createBaseMsgAddressRevokeResponse();\n return message;\n },\n};\n\nfunction createBaseMsgAllocationCreate(): MsgAllocationCreate {\n return { creator: \"\", controller: \"\", sourceObjectId: \"\", allocationType: 0, power: 0 };\n}\n\nexport const MsgAllocationCreate: MessageFns = {\n encode(message: MsgAllocationCreate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.controller !== \"\") {\n writer.uint32(18).string(message.controller);\n }\n if (message.sourceObjectId !== \"\") {\n writer.uint32(26).string(message.sourceObjectId);\n }\n if (message.allocationType !== 0) {\n writer.uint32(32).int32(message.allocationType);\n }\n if (message.power !== 0) {\n writer.uint32(40).uint64(message.power);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAllocationCreate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAllocationCreate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.controller = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.sourceObjectId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.allocationType = reader.int32() as any;\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.power = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAllocationCreate {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n controller: isSet(object.controller) ? globalThis.String(object.controller) : \"\",\n sourceObjectId: isSet(object.sourceObjectId) ? globalThis.String(object.sourceObjectId) : \"\",\n allocationType: isSet(object.allocationType) ? allocationTypeFromJSON(object.allocationType) : 0,\n power: isSet(object.power) ? globalThis.Number(object.power) : 0,\n };\n },\n\n toJSON(message: MsgAllocationCreate): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.controller !== \"\") {\n obj.controller = message.controller;\n }\n if (message.sourceObjectId !== \"\") {\n obj.sourceObjectId = message.sourceObjectId;\n }\n if (message.allocationType !== 0) {\n obj.allocationType = allocationTypeToJSON(message.allocationType);\n }\n if (message.power !== 0) {\n obj.power = Math.round(message.power);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAllocationCreate {\n return MsgAllocationCreate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAllocationCreate {\n const message = createBaseMsgAllocationCreate();\n message.creator = object.creator ?? \"\";\n message.controller = object.controller ?? \"\";\n message.sourceObjectId = object.sourceObjectId ?? \"\";\n message.allocationType = object.allocationType ?? 0;\n message.power = object.power ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgAllocationCreateResponse(): MsgAllocationCreateResponse {\n return { allocationId: \"\" };\n}\n\nexport const MsgAllocationCreateResponse: MessageFns = {\n encode(message: MsgAllocationCreateResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.allocationId !== \"\") {\n writer.uint32(10).string(message.allocationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAllocationCreateResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAllocationCreateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.allocationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAllocationCreateResponse {\n return { allocationId: isSet(object.allocationId) ? globalThis.String(object.allocationId) : \"\" };\n },\n\n toJSON(message: MsgAllocationCreateResponse): unknown {\n const obj: any = {};\n if (message.allocationId !== \"\") {\n obj.allocationId = message.allocationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAllocationCreateResponse {\n return MsgAllocationCreateResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAllocationCreateResponse {\n const message = createBaseMsgAllocationCreateResponse();\n message.allocationId = object.allocationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgAllocationDelete(): MsgAllocationDelete {\n return { creator: \"\", allocationId: \"\" };\n}\n\nexport const MsgAllocationDelete: MessageFns = {\n encode(message: MsgAllocationDelete, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.allocationId !== \"\") {\n writer.uint32(18).string(message.allocationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAllocationDelete {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAllocationDelete();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.allocationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAllocationDelete {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n allocationId: isSet(object.allocationId) ? globalThis.String(object.allocationId) : \"\",\n };\n },\n\n toJSON(message: MsgAllocationDelete): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.allocationId !== \"\") {\n obj.allocationId = message.allocationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAllocationDelete {\n return MsgAllocationDelete.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAllocationDelete {\n const message = createBaseMsgAllocationDelete();\n message.creator = object.creator ?? \"\";\n message.allocationId = object.allocationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgAllocationDeleteResponse(): MsgAllocationDeleteResponse {\n return { allocationId: \"\" };\n}\n\nexport const MsgAllocationDeleteResponse: MessageFns = {\n encode(message: MsgAllocationDeleteResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.allocationId !== \"\") {\n writer.uint32(10).string(message.allocationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAllocationDeleteResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAllocationDeleteResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.allocationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAllocationDeleteResponse {\n return { allocationId: isSet(object.allocationId) ? globalThis.String(object.allocationId) : \"\" };\n },\n\n toJSON(message: MsgAllocationDeleteResponse): unknown {\n const obj: any = {};\n if (message.allocationId !== \"\") {\n obj.allocationId = message.allocationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAllocationDeleteResponse {\n return MsgAllocationDeleteResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAllocationDeleteResponse {\n const message = createBaseMsgAllocationDeleteResponse();\n message.allocationId = object.allocationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgAllocationUpdate(): MsgAllocationUpdate {\n return { creator: \"\", allocationId: \"\", power: 0 };\n}\n\nexport const MsgAllocationUpdate: MessageFns = {\n encode(message: MsgAllocationUpdate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.allocationId !== \"\") {\n writer.uint32(18).string(message.allocationId);\n }\n if (message.power !== 0) {\n writer.uint32(24).uint64(message.power);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAllocationUpdate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAllocationUpdate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.allocationId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.power = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAllocationUpdate {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n allocationId: isSet(object.allocationId) ? globalThis.String(object.allocationId) : \"\",\n power: isSet(object.power) ? globalThis.Number(object.power) : 0,\n };\n },\n\n toJSON(message: MsgAllocationUpdate): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.allocationId !== \"\") {\n obj.allocationId = message.allocationId;\n }\n if (message.power !== 0) {\n obj.power = Math.round(message.power);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAllocationUpdate {\n return MsgAllocationUpdate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAllocationUpdate {\n const message = createBaseMsgAllocationUpdate();\n message.creator = object.creator ?? \"\";\n message.allocationId = object.allocationId ?? \"\";\n message.power = object.power ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgAllocationUpdateResponse(): MsgAllocationUpdateResponse {\n return { allocationId: \"\" };\n}\n\nexport const MsgAllocationUpdateResponse: MessageFns = {\n encode(message: MsgAllocationUpdateResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.allocationId !== \"\") {\n writer.uint32(10).string(message.allocationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAllocationUpdateResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAllocationUpdateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.allocationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAllocationUpdateResponse {\n return { allocationId: isSet(object.allocationId) ? globalThis.String(object.allocationId) : \"\" };\n },\n\n toJSON(message: MsgAllocationUpdateResponse): unknown {\n const obj: any = {};\n if (message.allocationId !== \"\") {\n obj.allocationId = message.allocationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAllocationUpdateResponse {\n return MsgAllocationUpdateResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAllocationUpdateResponse {\n const message = createBaseMsgAllocationUpdateResponse();\n message.allocationId = object.allocationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgAllocationTransfer(): MsgAllocationTransfer {\n return { creator: \"\", allocationId: \"\", controller: \"\" };\n}\n\nexport const MsgAllocationTransfer: MessageFns = {\n encode(message: MsgAllocationTransfer, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.allocationId !== \"\") {\n writer.uint32(18).string(message.allocationId);\n }\n if (message.controller !== \"\") {\n writer.uint32(26).string(message.controller);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAllocationTransfer {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAllocationTransfer();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.allocationId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.controller = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAllocationTransfer {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n allocationId: isSet(object.allocationId) ? globalThis.String(object.allocationId) : \"\",\n controller: isSet(object.controller) ? globalThis.String(object.controller) : \"\",\n };\n },\n\n toJSON(message: MsgAllocationTransfer): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.allocationId !== \"\") {\n obj.allocationId = message.allocationId;\n }\n if (message.controller !== \"\") {\n obj.controller = message.controller;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAllocationTransfer {\n return MsgAllocationTransfer.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAllocationTransfer {\n const message = createBaseMsgAllocationTransfer();\n message.creator = object.creator ?? \"\";\n message.allocationId = object.allocationId ?? \"\";\n message.controller = object.controller ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgAllocationTransferResponse(): MsgAllocationTransferResponse {\n return { allocationId: \"\" };\n}\n\nexport const MsgAllocationTransferResponse: MessageFns = {\n encode(message: MsgAllocationTransferResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.allocationId !== \"\") {\n writer.uint32(10).string(message.allocationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAllocationTransferResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAllocationTransferResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.allocationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAllocationTransferResponse {\n return { allocationId: isSet(object.allocationId) ? globalThis.String(object.allocationId) : \"\" };\n },\n\n toJSON(message: MsgAllocationTransferResponse): unknown {\n const obj: any = {};\n if (message.allocationId !== \"\") {\n obj.allocationId = message.allocationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAllocationTransferResponse {\n return MsgAllocationTransferResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgAllocationTransferResponse {\n const message = createBaseMsgAllocationTransferResponse();\n message.allocationId = object.allocationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgFleetMove(): MsgFleetMove {\n return { creator: \"\", fleetId: \"\", destinationLocationId: \"\" };\n}\n\nexport const MsgFleetMove: MessageFns = {\n encode(message: MsgFleetMove, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.fleetId !== \"\") {\n writer.uint32(18).string(message.fleetId);\n }\n if (message.destinationLocationId !== \"\") {\n writer.uint32(26).string(message.destinationLocationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgFleetMove {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgFleetMove();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.fleetId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.destinationLocationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgFleetMove {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n fleetId: isSet(object.fleetId) ? globalThis.String(object.fleetId) : \"\",\n destinationLocationId: isSet(object.destinationLocationId) ? globalThis.String(object.destinationLocationId) : \"\",\n };\n },\n\n toJSON(message: MsgFleetMove): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.fleetId !== \"\") {\n obj.fleetId = message.fleetId;\n }\n if (message.destinationLocationId !== \"\") {\n obj.destinationLocationId = message.destinationLocationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgFleetMove {\n return MsgFleetMove.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgFleetMove {\n const message = createBaseMsgFleetMove();\n message.creator = object.creator ?? \"\";\n message.fleetId = object.fleetId ?? \"\";\n message.destinationLocationId = object.destinationLocationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgFleetMoveResponse(): MsgFleetMoveResponse {\n return { fleet: undefined };\n}\n\nexport const MsgFleetMoveResponse: MessageFns = {\n encode(message: MsgFleetMoveResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.fleet !== undefined) {\n Fleet.encode(message.fleet, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgFleetMoveResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgFleetMoveResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.fleet = Fleet.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgFleetMoveResponse {\n return { fleet: isSet(object.fleet) ? Fleet.fromJSON(object.fleet) : undefined };\n },\n\n toJSON(message: MsgFleetMoveResponse): unknown {\n const obj: any = {};\n if (message.fleet !== undefined) {\n obj.fleet = Fleet.toJSON(message.fleet);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgFleetMoveResponse {\n return MsgFleetMoveResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgFleetMoveResponse {\n const message = createBaseMsgFleetMoveResponse();\n message.fleet = (object.fleet !== undefined && object.fleet !== null) ? Fleet.fromPartial(object.fleet) : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgGuildBankMint(): MsgGuildBankMint {\n return { creator: \"\", amountAlpha: 0, amountToken: 0 };\n}\n\nexport const MsgGuildBankMint: MessageFns = {\n encode(message: MsgGuildBankMint, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.amountAlpha !== 0) {\n writer.uint32(16).uint64(message.amountAlpha);\n }\n if (message.amountToken !== 0) {\n writer.uint32(24).uint64(message.amountToken);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildBankMint {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildBankMint();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.amountAlpha = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.amountToken = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildBankMint {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n amountAlpha: isSet(object.amountAlpha) ? globalThis.Number(object.amountAlpha) : 0,\n amountToken: isSet(object.amountToken) ? globalThis.Number(object.amountToken) : 0,\n };\n },\n\n toJSON(message: MsgGuildBankMint): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.amountAlpha !== 0) {\n obj.amountAlpha = Math.round(message.amountAlpha);\n }\n if (message.amountToken !== 0) {\n obj.amountToken = Math.round(message.amountToken);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildBankMint {\n return MsgGuildBankMint.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildBankMint {\n const message = createBaseMsgGuildBankMint();\n message.creator = object.creator ?? \"\";\n message.amountAlpha = object.amountAlpha ?? 0;\n message.amountToken = object.amountToken ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgGuildBankMintResponse(): MsgGuildBankMintResponse {\n return {};\n}\n\nexport const MsgGuildBankMintResponse: MessageFns = {\n encode(_: MsgGuildBankMintResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildBankMintResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildBankMintResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgGuildBankMintResponse {\n return {};\n },\n\n toJSON(_: MsgGuildBankMintResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildBankMintResponse {\n return MsgGuildBankMintResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgGuildBankMintResponse {\n const message = createBaseMsgGuildBankMintResponse();\n return message;\n },\n};\n\nfunction createBaseMsgGuildBankRedeem(): MsgGuildBankRedeem {\n return { creator: \"\", amountToken: undefined };\n}\n\nexport const MsgGuildBankRedeem: MessageFns = {\n encode(message: MsgGuildBankRedeem, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.amountToken !== undefined) {\n Coin.encode(message.amountToken, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildBankRedeem {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildBankRedeem();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.amountToken = Coin.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildBankRedeem {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n amountToken: isSet(object.amountToken) ? Coin.fromJSON(object.amountToken) : undefined,\n };\n },\n\n toJSON(message: MsgGuildBankRedeem): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.amountToken !== undefined) {\n obj.amountToken = Coin.toJSON(message.amountToken);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildBankRedeem {\n return MsgGuildBankRedeem.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildBankRedeem {\n const message = createBaseMsgGuildBankRedeem();\n message.creator = object.creator ?? \"\";\n message.amountToken = (object.amountToken !== undefined && object.amountToken !== null)\n ? Coin.fromPartial(object.amountToken)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgGuildBankRedeemResponse(): MsgGuildBankRedeemResponse {\n return {};\n}\n\nexport const MsgGuildBankRedeemResponse: MessageFns = {\n encode(_: MsgGuildBankRedeemResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildBankRedeemResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildBankRedeemResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgGuildBankRedeemResponse {\n return {};\n },\n\n toJSON(_: MsgGuildBankRedeemResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildBankRedeemResponse {\n return MsgGuildBankRedeemResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgGuildBankRedeemResponse {\n const message = createBaseMsgGuildBankRedeemResponse();\n return message;\n },\n};\n\nfunction createBaseMsgGuildBankConfiscateAndBurn(): MsgGuildBankConfiscateAndBurn {\n return { creator: \"\", address: \"\", amountToken: 0 };\n}\n\nexport const MsgGuildBankConfiscateAndBurn: MessageFns = {\n encode(message: MsgGuildBankConfiscateAndBurn, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.address !== \"\") {\n writer.uint32(18).string(message.address);\n }\n if (message.amountToken !== 0) {\n writer.uint32(24).uint64(message.amountToken);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildBankConfiscateAndBurn {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildBankConfiscateAndBurn();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.amountToken = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildBankConfiscateAndBurn {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n amountToken: isSet(object.amountToken) ? globalThis.Number(object.amountToken) : 0,\n };\n },\n\n toJSON(message: MsgGuildBankConfiscateAndBurn): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.amountToken !== 0) {\n obj.amountToken = Math.round(message.amountToken);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildBankConfiscateAndBurn {\n return MsgGuildBankConfiscateAndBurn.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgGuildBankConfiscateAndBurn {\n const message = createBaseMsgGuildBankConfiscateAndBurn();\n message.creator = object.creator ?? \"\";\n message.address = object.address ?? \"\";\n message.amountToken = object.amountToken ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgGuildBankConfiscateAndBurnResponse(): MsgGuildBankConfiscateAndBurnResponse {\n return {};\n}\n\nexport const MsgGuildBankConfiscateAndBurnResponse: MessageFns = {\n encode(_: MsgGuildBankConfiscateAndBurnResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildBankConfiscateAndBurnResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildBankConfiscateAndBurnResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgGuildBankConfiscateAndBurnResponse {\n return {};\n },\n\n toJSON(_: MsgGuildBankConfiscateAndBurnResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgGuildBankConfiscateAndBurnResponse {\n return MsgGuildBankConfiscateAndBurnResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n _: I,\n ): MsgGuildBankConfiscateAndBurnResponse {\n const message = createBaseMsgGuildBankConfiscateAndBurnResponse();\n return message;\n },\n};\n\nfunction createBaseMsgGuildCreate(): MsgGuildCreate {\n return { creator: \"\", reactorId: \"\", endpoint: \"\", entrySubstationId: \"\" };\n}\n\nexport const MsgGuildCreate: MessageFns = {\n encode(message: MsgGuildCreate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.reactorId !== \"\") {\n writer.uint32(18).string(message.reactorId);\n }\n if (message.endpoint !== \"\") {\n writer.uint32(26).string(message.endpoint);\n }\n if (message.entrySubstationId !== \"\") {\n writer.uint32(34).string(message.entrySubstationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildCreate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildCreate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.reactorId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.endpoint = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.entrySubstationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildCreate {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n reactorId: isSet(object.reactorId) ? globalThis.String(object.reactorId) : \"\",\n endpoint: isSet(object.endpoint) ? globalThis.String(object.endpoint) : \"\",\n entrySubstationId: isSet(object.entrySubstationId) ? globalThis.String(object.entrySubstationId) : \"\",\n };\n },\n\n toJSON(message: MsgGuildCreate): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.reactorId !== \"\") {\n obj.reactorId = message.reactorId;\n }\n if (message.endpoint !== \"\") {\n obj.endpoint = message.endpoint;\n }\n if (message.entrySubstationId !== \"\") {\n obj.entrySubstationId = message.entrySubstationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildCreate {\n return MsgGuildCreate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildCreate {\n const message = createBaseMsgGuildCreate();\n message.creator = object.creator ?? \"\";\n message.reactorId = object.reactorId ?? \"\";\n message.endpoint = object.endpoint ?? \"\";\n message.entrySubstationId = object.entrySubstationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildCreateResponse(): MsgGuildCreateResponse {\n return { guildId: \"\" };\n}\n\nexport const MsgGuildCreateResponse: MessageFns = {\n encode(message: MsgGuildCreateResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.guildId !== \"\") {\n writer.uint32(10).string(message.guildId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildCreateResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildCreateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildCreateResponse {\n return { guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\" };\n },\n\n toJSON(message: MsgGuildCreateResponse): unknown {\n const obj: any = {};\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildCreateResponse {\n return MsgGuildCreateResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildCreateResponse {\n const message = createBaseMsgGuildCreateResponse();\n message.guildId = object.guildId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildUpdateOwnerId(): MsgGuildUpdateOwnerId {\n return { creator: \"\", guildId: \"\", owner: \"\" };\n}\n\nexport const MsgGuildUpdateOwnerId: MessageFns = {\n encode(message: MsgGuildUpdateOwnerId, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.owner !== \"\") {\n writer.uint32(26).string(message.owner);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildUpdateOwnerId {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildUpdateOwnerId();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.owner = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildUpdateOwnerId {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n owner: isSet(object.owner) ? globalThis.String(object.owner) : \"\",\n };\n },\n\n toJSON(message: MsgGuildUpdateOwnerId): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.owner !== \"\") {\n obj.owner = message.owner;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildUpdateOwnerId {\n return MsgGuildUpdateOwnerId.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildUpdateOwnerId {\n const message = createBaseMsgGuildUpdateOwnerId();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.owner = object.owner ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildUpdateEntrySubstationId(): MsgGuildUpdateEntrySubstationId {\n return { creator: \"\", guildId: \"\", entrySubstationId: \"\" };\n}\n\nexport const MsgGuildUpdateEntrySubstationId: MessageFns = {\n encode(message: MsgGuildUpdateEntrySubstationId, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.entrySubstationId !== \"\") {\n writer.uint32(26).string(message.entrySubstationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildUpdateEntrySubstationId {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildUpdateEntrySubstationId();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.entrySubstationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildUpdateEntrySubstationId {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n entrySubstationId: isSet(object.entrySubstationId) ? globalThis.String(object.entrySubstationId) : \"\",\n };\n },\n\n toJSON(message: MsgGuildUpdateEntrySubstationId): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.entrySubstationId !== \"\") {\n obj.entrySubstationId = message.entrySubstationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildUpdateEntrySubstationId {\n return MsgGuildUpdateEntrySubstationId.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgGuildUpdateEntrySubstationId {\n const message = createBaseMsgGuildUpdateEntrySubstationId();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.entrySubstationId = object.entrySubstationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildUpdateEndpoint(): MsgGuildUpdateEndpoint {\n return { creator: \"\", guildId: \"\", endpoint: \"\" };\n}\n\nexport const MsgGuildUpdateEndpoint: MessageFns = {\n encode(message: MsgGuildUpdateEndpoint, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.endpoint !== \"\") {\n writer.uint32(26).string(message.endpoint);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildUpdateEndpoint {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildUpdateEndpoint();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.endpoint = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildUpdateEndpoint {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n endpoint: isSet(object.endpoint) ? globalThis.String(object.endpoint) : \"\",\n };\n },\n\n toJSON(message: MsgGuildUpdateEndpoint): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.endpoint !== \"\") {\n obj.endpoint = message.endpoint;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildUpdateEndpoint {\n return MsgGuildUpdateEndpoint.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildUpdateEndpoint {\n const message = createBaseMsgGuildUpdateEndpoint();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.endpoint = object.endpoint ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildUpdateJoinInfusionMinimum(): MsgGuildUpdateJoinInfusionMinimum {\n return { creator: \"\", guildId: \"\", joinInfusionMinimum: 0 };\n}\n\nexport const MsgGuildUpdateJoinInfusionMinimum: MessageFns = {\n encode(message: MsgGuildUpdateJoinInfusionMinimum, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.joinInfusionMinimum !== 0) {\n writer.uint32(24).uint64(message.joinInfusionMinimum);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildUpdateJoinInfusionMinimum {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildUpdateJoinInfusionMinimum();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.joinInfusionMinimum = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildUpdateJoinInfusionMinimum {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n joinInfusionMinimum: isSet(object.joinInfusionMinimum) ? globalThis.Number(object.joinInfusionMinimum) : 0,\n };\n },\n\n toJSON(message: MsgGuildUpdateJoinInfusionMinimum): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.joinInfusionMinimum !== 0) {\n obj.joinInfusionMinimum = Math.round(message.joinInfusionMinimum);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgGuildUpdateJoinInfusionMinimum {\n return MsgGuildUpdateJoinInfusionMinimum.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgGuildUpdateJoinInfusionMinimum {\n const message = createBaseMsgGuildUpdateJoinInfusionMinimum();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.joinInfusionMinimum = object.joinInfusionMinimum ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgGuildUpdateJoinInfusionMinimumBypassByRequest(): MsgGuildUpdateJoinInfusionMinimumBypassByRequest {\n return { creator: \"\", guildId: \"\", guildJoinBypassLevel: 0 };\n}\n\nexport const MsgGuildUpdateJoinInfusionMinimumBypassByRequest: MessageFns<\n MsgGuildUpdateJoinInfusionMinimumBypassByRequest\n> = {\n encode(\n message: MsgGuildUpdateJoinInfusionMinimumBypassByRequest,\n writer: BinaryWriter = new BinaryWriter(),\n ): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.guildJoinBypassLevel !== 0) {\n writer.uint32(24).int32(message.guildJoinBypassLevel);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildUpdateJoinInfusionMinimumBypassByRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildUpdateJoinInfusionMinimumBypassByRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.guildJoinBypassLevel = reader.int32() as any;\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildUpdateJoinInfusionMinimumBypassByRequest {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n guildJoinBypassLevel: isSet(object.guildJoinBypassLevel)\n ? guildJoinBypassLevelFromJSON(object.guildJoinBypassLevel)\n : 0,\n };\n },\n\n toJSON(message: MsgGuildUpdateJoinInfusionMinimumBypassByRequest): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.guildJoinBypassLevel !== 0) {\n obj.guildJoinBypassLevel = guildJoinBypassLevelToJSON(message.guildJoinBypassLevel);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgGuildUpdateJoinInfusionMinimumBypassByRequest {\n return MsgGuildUpdateJoinInfusionMinimumBypassByRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgGuildUpdateJoinInfusionMinimumBypassByRequest {\n const message = createBaseMsgGuildUpdateJoinInfusionMinimumBypassByRequest();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.guildJoinBypassLevel = object.guildJoinBypassLevel ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgGuildUpdateJoinInfusionMinimumBypassByInvite(): MsgGuildUpdateJoinInfusionMinimumBypassByInvite {\n return { creator: \"\", guildId: \"\", guildJoinBypassLevel: 0 };\n}\n\nexport const MsgGuildUpdateJoinInfusionMinimumBypassByInvite: MessageFns<\n MsgGuildUpdateJoinInfusionMinimumBypassByInvite\n> = {\n encode(\n message: MsgGuildUpdateJoinInfusionMinimumBypassByInvite,\n writer: BinaryWriter = new BinaryWriter(),\n ): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.guildJoinBypassLevel !== 0) {\n writer.uint32(24).int32(message.guildJoinBypassLevel);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildUpdateJoinInfusionMinimumBypassByInvite {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildUpdateJoinInfusionMinimumBypassByInvite();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.guildJoinBypassLevel = reader.int32() as any;\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildUpdateJoinInfusionMinimumBypassByInvite {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n guildJoinBypassLevel: isSet(object.guildJoinBypassLevel)\n ? guildJoinBypassLevelFromJSON(object.guildJoinBypassLevel)\n : 0,\n };\n },\n\n toJSON(message: MsgGuildUpdateJoinInfusionMinimumBypassByInvite): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.guildJoinBypassLevel !== 0) {\n obj.guildJoinBypassLevel = guildJoinBypassLevelToJSON(message.guildJoinBypassLevel);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgGuildUpdateJoinInfusionMinimumBypassByInvite {\n return MsgGuildUpdateJoinInfusionMinimumBypassByInvite.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgGuildUpdateJoinInfusionMinimumBypassByInvite {\n const message = createBaseMsgGuildUpdateJoinInfusionMinimumBypassByInvite();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.guildJoinBypassLevel = object.guildJoinBypassLevel ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgGuildUpdateEntryRank(): MsgGuildUpdateEntryRank {\n return { creator: \"\", newEntryRank: 0 };\n}\n\nexport const MsgGuildUpdateEntryRank: MessageFns = {\n encode(message: MsgGuildUpdateEntryRank, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.newEntryRank !== 0) {\n writer.uint32(16).uint64(message.newEntryRank);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildUpdateEntryRank {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildUpdateEntryRank();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.newEntryRank = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildUpdateEntryRank {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n newEntryRank: isSet(object.newEntryRank) ? globalThis.Number(object.newEntryRank) : 0,\n };\n },\n\n toJSON(message: MsgGuildUpdateEntryRank): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.newEntryRank !== 0) {\n obj.newEntryRank = Math.round(message.newEntryRank);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildUpdateEntryRank {\n return MsgGuildUpdateEntryRank.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildUpdateEntryRank {\n const message = createBaseMsgGuildUpdateEntryRank();\n message.creator = object.creator ?? \"\";\n message.newEntryRank = object.newEntryRank ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgGuildUpdateResponse(): MsgGuildUpdateResponse {\n return {};\n}\n\nexport const MsgGuildUpdateResponse: MessageFns = {\n encode(_: MsgGuildUpdateResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildUpdateResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildUpdateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgGuildUpdateResponse {\n return {};\n },\n\n toJSON(_: MsgGuildUpdateResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildUpdateResponse {\n return MsgGuildUpdateResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgGuildUpdateResponse {\n const message = createBaseMsgGuildUpdateResponse();\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipInvite(): MsgGuildMembershipInvite {\n return { creator: \"\", guildId: \"\", playerId: \"\", substationId: \"\" };\n}\n\nexport const MsgGuildMembershipInvite: MessageFns = {\n encode(message: MsgGuildMembershipInvite, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n if (message.substationId !== \"\") {\n writer.uint32(34).string(message.substationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipInvite {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipInvite();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipInvite {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n };\n },\n\n toJSON(message: MsgGuildMembershipInvite): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildMembershipInvite {\n return MsgGuildMembershipInvite.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildMembershipInvite {\n const message = createBaseMsgGuildMembershipInvite();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.substationId = object.substationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipInviteApprove(): MsgGuildMembershipInviteApprove {\n return { creator: \"\", guildId: \"\", playerId: \"\", substationId: \"\" };\n}\n\nexport const MsgGuildMembershipInviteApprove: MessageFns = {\n encode(message: MsgGuildMembershipInviteApprove, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n if (message.substationId !== \"\") {\n writer.uint32(34).string(message.substationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipInviteApprove {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipInviteApprove();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipInviteApprove {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n };\n },\n\n toJSON(message: MsgGuildMembershipInviteApprove): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildMembershipInviteApprove {\n return MsgGuildMembershipInviteApprove.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgGuildMembershipInviteApprove {\n const message = createBaseMsgGuildMembershipInviteApprove();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.substationId = object.substationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipInviteDeny(): MsgGuildMembershipInviteDeny {\n return { creator: \"\", guildId: \"\", playerId: \"\" };\n}\n\nexport const MsgGuildMembershipInviteDeny: MessageFns = {\n encode(message: MsgGuildMembershipInviteDeny, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipInviteDeny {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipInviteDeny();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipInviteDeny {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: MsgGuildMembershipInviteDeny): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildMembershipInviteDeny {\n return MsgGuildMembershipInviteDeny.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildMembershipInviteDeny {\n const message = createBaseMsgGuildMembershipInviteDeny();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipInviteRevoke(): MsgGuildMembershipInviteRevoke {\n return { creator: \"\", guildId: \"\", playerId: \"\" };\n}\n\nexport const MsgGuildMembershipInviteRevoke: MessageFns = {\n encode(message: MsgGuildMembershipInviteRevoke, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipInviteRevoke {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipInviteRevoke();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipInviteRevoke {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: MsgGuildMembershipInviteRevoke): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildMembershipInviteRevoke {\n return MsgGuildMembershipInviteRevoke.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgGuildMembershipInviteRevoke {\n const message = createBaseMsgGuildMembershipInviteRevoke();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipJoin(): MsgGuildMembershipJoin {\n return { creator: \"\", guildId: \"\", playerId: \"\", substationId: \"\", infusionId: [] };\n}\n\nexport const MsgGuildMembershipJoin: MessageFns = {\n encode(message: MsgGuildMembershipJoin, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n if (message.substationId !== \"\") {\n writer.uint32(34).string(message.substationId);\n }\n for (const v of message.infusionId) {\n writer.uint32(42).string(v!);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipJoin {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipJoin();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.infusionId.push(reader.string());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipJoin {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n infusionId: globalThis.Array.isArray(object?.infusionId)\n ? object.infusionId.map((e: any) => globalThis.String(e))\n : [],\n };\n },\n\n toJSON(message: MsgGuildMembershipJoin): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n if (message.infusionId?.length) {\n obj.infusionId = message.infusionId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildMembershipJoin {\n return MsgGuildMembershipJoin.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildMembershipJoin {\n const message = createBaseMsgGuildMembershipJoin();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.substationId = object.substationId ?? \"\";\n message.infusionId = object.infusionId?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipJoinProxy(): MsgGuildMembershipJoinProxy {\n return { creator: \"\", address: \"\", substationId: \"\", proofPubKey: \"\", proofSignature: \"\", playerName: \"\", playerPfp: \"\" };\n}\n\nexport const MsgGuildMembershipJoinProxy: MessageFns = {\n encode(message: MsgGuildMembershipJoinProxy, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.address !== \"\") {\n writer.uint32(18).string(message.address);\n }\n if (message.substationId !== \"\") {\n writer.uint32(26).string(message.substationId);\n }\n if (message.proofPubKey !== \"\") {\n writer.uint32(34).string(message.proofPubKey);\n }\n if (message.proofSignature !== \"\") {\n writer.uint32(42).string(message.proofSignature);\n }\n if (message.playerName !== \"\") {\n writer.uint32(50).string(message.playerName);\n }\n if (message.playerPfp !== \"\") {\n writer.uint32(58).string(message.playerPfp);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipJoinProxy {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipJoinProxy();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.proofPubKey = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.proofSignature = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.playerName = reader.string();\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.playerPfp = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipJoinProxy {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n proofPubKey: isSet(object.proofPubKey) ? globalThis.String(object.proofPubKey) : \"\",\n proofSignature: isSet(object.proofSignature) ? globalThis.String(object.proofSignature) : \"\",\n playerName: isSet(object.playerName) ? globalThis.String(object.playerName) : \"\",\n playerPfp: isSet(object.playerPfp) ? globalThis.String(object.playerPfp) : \"\",\n };\n },\n\n toJSON(message: MsgGuildMembershipJoinProxy): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n if (message.proofPubKey !== \"\") {\n obj.proofPubKey = message.proofPubKey;\n }\n if (message.proofSignature !== \"\") {\n obj.proofSignature = message.proofSignature;\n }\n if (message.playerName !== \"\") {\n obj.playerName = message.playerName;\n }\n if (message.playerPfp !== \"\") {\n obj.playerPfp = message.playerPfp;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildMembershipJoinProxy {\n return MsgGuildMembershipJoinProxy.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildMembershipJoinProxy {\n const message = createBaseMsgGuildMembershipJoinProxy();\n message.creator = object.creator ?? \"\";\n message.address = object.address ?? \"\";\n message.substationId = object.substationId ?? \"\";\n message.proofPubKey = object.proofPubKey ?? \"\";\n message.proofSignature = object.proofSignature ?? \"\";\n message.playerName = object.playerName ?? \"\";\n message.playerPfp = object.playerPfp ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipKick(): MsgGuildMembershipKick {\n return { creator: \"\", guildId: \"\", playerId: \"\" };\n}\n\nexport const MsgGuildMembershipKick: MessageFns = {\n encode(message: MsgGuildMembershipKick, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipKick {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipKick();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipKick {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: MsgGuildMembershipKick): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildMembershipKick {\n return MsgGuildMembershipKick.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildMembershipKick {\n const message = createBaseMsgGuildMembershipKick();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipRequest(): MsgGuildMembershipRequest {\n return { creator: \"\", guildId: \"\", playerId: \"\", substationId: \"\" };\n}\n\nexport const MsgGuildMembershipRequest: MessageFns = {\n encode(message: MsgGuildMembershipRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n if (message.substationId !== \"\") {\n writer.uint32(34).string(message.substationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipRequest {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n };\n },\n\n toJSON(message: MsgGuildMembershipRequest): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildMembershipRequest {\n return MsgGuildMembershipRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildMembershipRequest {\n const message = createBaseMsgGuildMembershipRequest();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.substationId = object.substationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipRequestApprove(): MsgGuildMembershipRequestApprove {\n return { creator: \"\", guildId: \"\", playerId: \"\", substationId: \"\" };\n}\n\nexport const MsgGuildMembershipRequestApprove: MessageFns = {\n encode(message: MsgGuildMembershipRequestApprove, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n if (message.substationId !== \"\") {\n writer.uint32(34).string(message.substationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipRequestApprove {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipRequestApprove();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipRequestApprove {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n };\n },\n\n toJSON(message: MsgGuildMembershipRequestApprove): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgGuildMembershipRequestApprove {\n return MsgGuildMembershipRequestApprove.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgGuildMembershipRequestApprove {\n const message = createBaseMsgGuildMembershipRequestApprove();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.substationId = object.substationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipRequestDeny(): MsgGuildMembershipRequestDeny {\n return { creator: \"\", guildId: \"\", playerId: \"\" };\n}\n\nexport const MsgGuildMembershipRequestDeny: MessageFns = {\n encode(message: MsgGuildMembershipRequestDeny, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipRequestDeny {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipRequestDeny();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipRequestDeny {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: MsgGuildMembershipRequestDeny): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildMembershipRequestDeny {\n return MsgGuildMembershipRequestDeny.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgGuildMembershipRequestDeny {\n const message = createBaseMsgGuildMembershipRequestDeny();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipRequestRevoke(): MsgGuildMembershipRequestRevoke {\n return { creator: \"\", guildId: \"\", playerId: \"\" };\n}\n\nexport const MsgGuildMembershipRequestRevoke: MessageFns = {\n encode(message: MsgGuildMembershipRequestRevoke, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipRequestRevoke {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipRequestRevoke();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipRequestRevoke {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: MsgGuildMembershipRequestRevoke): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildMembershipRequestRevoke {\n return MsgGuildMembershipRequestRevoke.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgGuildMembershipRequestRevoke {\n const message = createBaseMsgGuildMembershipRequestRevoke();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildMembershipResponse(): MsgGuildMembershipResponse {\n return { guildMembershipApplication: undefined };\n}\n\nexport const MsgGuildMembershipResponse: MessageFns = {\n encode(message: MsgGuildMembershipResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.guildMembershipApplication !== undefined) {\n GuildMembershipApplication.encode(message.guildMembershipApplication, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildMembershipResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildMembershipResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.guildMembershipApplication = GuildMembershipApplication.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildMembershipResponse {\n return {\n guildMembershipApplication: isSet(object.guildMembershipApplication)\n ? GuildMembershipApplication.fromJSON(object.guildMembershipApplication)\n : undefined,\n };\n },\n\n toJSON(message: MsgGuildMembershipResponse): unknown {\n const obj: any = {};\n if (message.guildMembershipApplication !== undefined) {\n obj.guildMembershipApplication = GuildMembershipApplication.toJSON(message.guildMembershipApplication);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildMembershipResponse {\n return MsgGuildMembershipResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildMembershipResponse {\n const message = createBaseMsgGuildMembershipResponse();\n message.guildMembershipApplication =\n (object.guildMembershipApplication !== undefined && object.guildMembershipApplication !== null)\n ? GuildMembershipApplication.fromPartial(object.guildMembershipApplication)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgPermissionGrantOnObject(): MsgPermissionGrantOnObject {\n return { creator: \"\", objectId: \"\", playerId: \"\", permissions: 0 };\n}\n\nexport const MsgPermissionGrantOnObject: MessageFns = {\n encode(message: MsgPermissionGrantOnObject, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.objectId !== \"\") {\n writer.uint32(18).string(message.objectId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n if (message.permissions !== 0) {\n writer.uint32(32).uint64(message.permissions);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPermissionGrantOnObject {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPermissionGrantOnObject();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.objectId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.permissions = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPermissionGrantOnObject {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n objectId: isSet(object.objectId) ? globalThis.String(object.objectId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n permissions: isSet(object.permissions) ? globalThis.Number(object.permissions) : 0,\n };\n },\n\n toJSON(message: MsgPermissionGrantOnObject): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.objectId !== \"\") {\n obj.objectId = message.objectId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.permissions !== 0) {\n obj.permissions = Math.round(message.permissions);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPermissionGrantOnObject {\n return MsgPermissionGrantOnObject.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPermissionGrantOnObject {\n const message = createBaseMsgPermissionGrantOnObject();\n message.creator = object.creator ?? \"\";\n message.objectId = object.objectId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.permissions = object.permissions ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgPermissionGrantOnAddress(): MsgPermissionGrantOnAddress {\n return { creator: \"\", address: \"\", permissions: 0 };\n}\n\nexport const MsgPermissionGrantOnAddress: MessageFns = {\n encode(message: MsgPermissionGrantOnAddress, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.address !== \"\") {\n writer.uint32(18).string(message.address);\n }\n if (message.permissions !== 0) {\n writer.uint32(24).uint64(message.permissions);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPermissionGrantOnAddress {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPermissionGrantOnAddress();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.permissions = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPermissionGrantOnAddress {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n permissions: isSet(object.permissions) ? globalThis.Number(object.permissions) : 0,\n };\n },\n\n toJSON(message: MsgPermissionGrantOnAddress): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.permissions !== 0) {\n obj.permissions = Math.round(message.permissions);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPermissionGrantOnAddress {\n return MsgPermissionGrantOnAddress.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPermissionGrantOnAddress {\n const message = createBaseMsgPermissionGrantOnAddress();\n message.creator = object.creator ?? \"\";\n message.address = object.address ?? \"\";\n message.permissions = object.permissions ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgPermissionRevokeOnObject(): MsgPermissionRevokeOnObject {\n return { creator: \"\", objectId: \"\", playerId: \"\", permissions: 0 };\n}\n\nexport const MsgPermissionRevokeOnObject: MessageFns = {\n encode(message: MsgPermissionRevokeOnObject, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.objectId !== \"\") {\n writer.uint32(18).string(message.objectId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n if (message.permissions !== 0) {\n writer.uint32(32).uint64(message.permissions);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPermissionRevokeOnObject {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPermissionRevokeOnObject();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.objectId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.permissions = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPermissionRevokeOnObject {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n objectId: isSet(object.objectId) ? globalThis.String(object.objectId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n permissions: isSet(object.permissions) ? globalThis.Number(object.permissions) : 0,\n };\n },\n\n toJSON(message: MsgPermissionRevokeOnObject): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.objectId !== \"\") {\n obj.objectId = message.objectId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.permissions !== 0) {\n obj.permissions = Math.round(message.permissions);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPermissionRevokeOnObject {\n return MsgPermissionRevokeOnObject.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPermissionRevokeOnObject {\n const message = createBaseMsgPermissionRevokeOnObject();\n message.creator = object.creator ?? \"\";\n message.objectId = object.objectId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.permissions = object.permissions ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgPermissionRevokeOnAddress(): MsgPermissionRevokeOnAddress {\n return { creator: \"\", address: \"\", permissions: 0 };\n}\n\nexport const MsgPermissionRevokeOnAddress: MessageFns = {\n encode(message: MsgPermissionRevokeOnAddress, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.address !== \"\") {\n writer.uint32(18).string(message.address);\n }\n if (message.permissions !== 0) {\n writer.uint32(24).uint64(message.permissions);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPermissionRevokeOnAddress {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPermissionRevokeOnAddress();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.permissions = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPermissionRevokeOnAddress {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n permissions: isSet(object.permissions) ? globalThis.Number(object.permissions) : 0,\n };\n },\n\n toJSON(message: MsgPermissionRevokeOnAddress): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.permissions !== 0) {\n obj.permissions = Math.round(message.permissions);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPermissionRevokeOnAddress {\n return MsgPermissionRevokeOnAddress.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPermissionRevokeOnAddress {\n const message = createBaseMsgPermissionRevokeOnAddress();\n message.creator = object.creator ?? \"\";\n message.address = object.address ?? \"\";\n message.permissions = object.permissions ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgPermissionSetOnObject(): MsgPermissionSetOnObject {\n return { creator: \"\", objectId: \"\", playerId: \"\", permissions: 0 };\n}\n\nexport const MsgPermissionSetOnObject: MessageFns = {\n encode(message: MsgPermissionSetOnObject, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.objectId !== \"\") {\n writer.uint32(18).string(message.objectId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n if (message.permissions !== 0) {\n writer.uint32(32).uint64(message.permissions);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPermissionSetOnObject {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPermissionSetOnObject();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.objectId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.permissions = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPermissionSetOnObject {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n objectId: isSet(object.objectId) ? globalThis.String(object.objectId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n permissions: isSet(object.permissions) ? globalThis.Number(object.permissions) : 0,\n };\n },\n\n toJSON(message: MsgPermissionSetOnObject): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.objectId !== \"\") {\n obj.objectId = message.objectId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.permissions !== 0) {\n obj.permissions = Math.round(message.permissions);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPermissionSetOnObject {\n return MsgPermissionSetOnObject.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPermissionSetOnObject {\n const message = createBaseMsgPermissionSetOnObject();\n message.creator = object.creator ?? \"\";\n message.objectId = object.objectId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.permissions = object.permissions ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgPermissionSetOnAddress(): MsgPermissionSetOnAddress {\n return { creator: \"\", address: \"\", permissions: 0 };\n}\n\nexport const MsgPermissionSetOnAddress: MessageFns = {\n encode(message: MsgPermissionSetOnAddress, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.address !== \"\") {\n writer.uint32(18).string(message.address);\n }\n if (message.permissions !== 0) {\n writer.uint32(24).uint64(message.permissions);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPermissionSetOnAddress {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPermissionSetOnAddress();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.address = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.permissions = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPermissionSetOnAddress {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n address: isSet(object.address) ? globalThis.String(object.address) : \"\",\n permissions: isSet(object.permissions) ? globalThis.Number(object.permissions) : 0,\n };\n },\n\n toJSON(message: MsgPermissionSetOnAddress): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.address !== \"\") {\n obj.address = message.address;\n }\n if (message.permissions !== 0) {\n obj.permissions = Math.round(message.permissions);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPermissionSetOnAddress {\n return MsgPermissionSetOnAddress.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPermissionSetOnAddress {\n const message = createBaseMsgPermissionSetOnAddress();\n message.creator = object.creator ?? \"\";\n message.address = object.address ?? \"\";\n message.permissions = object.permissions ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgPermissionGuildRankSet(): MsgPermissionGuildRankSet {\n return { creator: \"\", objectId: \"\", guildId: \"\", permission: 0, rank: 0 };\n}\n\nexport const MsgPermissionGuildRankSet: MessageFns = {\n encode(message: MsgPermissionGuildRankSet, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.objectId !== \"\") {\n writer.uint32(18).string(message.objectId);\n }\n if (message.guildId !== \"\") {\n writer.uint32(26).string(message.guildId);\n }\n if (message.permission !== 0) {\n writer.uint32(32).uint64(message.permission);\n }\n if (message.rank !== 0) {\n writer.uint32(40).uint64(message.rank);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPermissionGuildRankSet {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPermissionGuildRankSet();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.objectId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.permission = longToNumber(reader.uint64());\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.rank = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPermissionGuildRankSet {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n objectId: isSet(object.objectId) ? globalThis.String(object.objectId) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n permission: isSet(object.permission) ? globalThis.Number(object.permission) : 0,\n rank: isSet(object.rank) ? globalThis.Number(object.rank) : 0,\n };\n },\n\n toJSON(message: MsgPermissionGuildRankSet): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.objectId !== \"\") {\n obj.objectId = message.objectId;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.permission !== 0) {\n obj.permission = Math.round(message.permission);\n }\n if (message.rank !== 0) {\n obj.rank = Math.round(message.rank);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPermissionGuildRankSet {\n return MsgPermissionGuildRankSet.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPermissionGuildRankSet {\n const message = createBaseMsgPermissionGuildRankSet();\n message.creator = object.creator ?? \"\";\n message.objectId = object.objectId ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.permission = object.permission ?? 0;\n message.rank = object.rank ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgPermissionGuildRankRevoke(): MsgPermissionGuildRankRevoke {\n return { creator: \"\", objectId: \"\", guildId: \"\", permission: 0 };\n}\n\nexport const MsgPermissionGuildRankRevoke: MessageFns = {\n encode(message: MsgPermissionGuildRankRevoke, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.objectId !== \"\") {\n writer.uint32(18).string(message.objectId);\n }\n if (message.guildId !== \"\") {\n writer.uint32(26).string(message.guildId);\n }\n if (message.permission !== 0) {\n writer.uint32(32).uint64(message.permission);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPermissionGuildRankRevoke {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPermissionGuildRankRevoke();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.objectId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.permission = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPermissionGuildRankRevoke {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n objectId: isSet(object.objectId) ? globalThis.String(object.objectId) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n permission: isSet(object.permission) ? globalThis.Number(object.permission) : 0,\n };\n },\n\n toJSON(message: MsgPermissionGuildRankRevoke): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.objectId !== \"\") {\n obj.objectId = message.objectId;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.permission !== 0) {\n obj.permission = Math.round(message.permission);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPermissionGuildRankRevoke {\n return MsgPermissionGuildRankRevoke.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgPermissionGuildRankRevoke {\n const message = createBaseMsgPermissionGuildRankRevoke();\n message.creator = object.creator ?? \"\";\n message.objectId = object.objectId ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.permission = object.permission ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgPermissionResponse(): MsgPermissionResponse {\n return {};\n}\n\nexport const MsgPermissionResponse: MessageFns = {\n encode(_: MsgPermissionResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPermissionResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPermissionResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgPermissionResponse {\n return {};\n },\n\n toJSON(_: MsgPermissionResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgPermissionResponse {\n return MsgPermissionResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgPermissionResponse {\n const message = createBaseMsgPermissionResponse();\n return message;\n },\n};\n\nfunction createBaseMsgPlanetExplore(): MsgPlanetExplore {\n return { creator: \"\", playerId: \"\" };\n}\n\nexport const MsgPlanetExplore: MessageFns = {\n encode(message: MsgPlanetExplore, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.playerId !== \"\") {\n writer.uint32(18).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlanetExplore {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlanetExplore();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPlanetExplore {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: MsgPlanetExplore): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPlanetExplore {\n return MsgPlanetExplore.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPlanetExplore {\n const message = createBaseMsgPlanetExplore();\n message.creator = object.creator ?? \"\";\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgPlanetExploreResponse(): MsgPlanetExploreResponse {\n return { planet: undefined };\n}\n\nexport const MsgPlanetExploreResponse: MessageFns = {\n encode(message: MsgPlanetExploreResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.planet !== undefined) {\n Planet.encode(message.planet, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlanetExploreResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlanetExploreResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.planet = Planet.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPlanetExploreResponse {\n return { planet: isSet(object.planet) ? Planet.fromJSON(object.planet) : undefined };\n },\n\n toJSON(message: MsgPlanetExploreResponse): unknown {\n const obj: any = {};\n if (message.planet !== undefined) {\n obj.planet = Planet.toJSON(message.planet);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPlanetExploreResponse {\n return MsgPlanetExploreResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPlanetExploreResponse {\n const message = createBaseMsgPlanetExploreResponse();\n message.planet = (object.planet !== undefined && object.planet !== null)\n ? Planet.fromPartial(object.planet)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgPlanetRaidComplete(): MsgPlanetRaidComplete {\n return { creator: \"\", fleetId: \"\", proof: \"\", nonce: \"\" };\n}\n\nexport const MsgPlanetRaidComplete: MessageFns = {\n encode(message: MsgPlanetRaidComplete, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.fleetId !== \"\") {\n writer.uint32(18).string(message.fleetId);\n }\n if (message.proof !== \"\") {\n writer.uint32(26).string(message.proof);\n }\n if (message.nonce !== \"\") {\n writer.uint32(34).string(message.nonce);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlanetRaidComplete {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlanetRaidComplete();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.fleetId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.proof = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.nonce = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPlanetRaidComplete {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n fleetId: isSet(object.fleetId) ? globalThis.String(object.fleetId) : \"\",\n proof: isSet(object.proof) ? globalThis.String(object.proof) : \"\",\n nonce: isSet(object.nonce) ? globalThis.String(object.nonce) : \"\",\n };\n },\n\n toJSON(message: MsgPlanetRaidComplete): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.fleetId !== \"\") {\n obj.fleetId = message.fleetId;\n }\n if (message.proof !== \"\") {\n obj.proof = message.proof;\n }\n if (message.nonce !== \"\") {\n obj.nonce = message.nonce;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPlanetRaidComplete {\n return MsgPlanetRaidComplete.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPlanetRaidComplete {\n const message = createBaseMsgPlanetRaidComplete();\n message.creator = object.creator ?? \"\";\n message.fleetId = object.fleetId ?? \"\";\n message.proof = object.proof ?? \"\";\n message.nonce = object.nonce ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgPlanetRaidCompleteResponse(): MsgPlanetRaidCompleteResponse {\n return { fleet: undefined, planet: undefined, oreStolen: 0 };\n}\n\nexport const MsgPlanetRaidCompleteResponse: MessageFns = {\n encode(message: MsgPlanetRaidCompleteResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.fleet !== undefined) {\n Fleet.encode(message.fleet, writer.uint32(10).fork()).join();\n }\n if (message.planet !== undefined) {\n Planet.encode(message.planet, writer.uint32(18).fork()).join();\n }\n if (message.oreStolen !== 0) {\n writer.uint32(24).uint64(message.oreStolen);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlanetRaidCompleteResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlanetRaidCompleteResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.fleet = Fleet.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.planet = Planet.decode(reader, reader.uint32());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.oreStolen = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPlanetRaidCompleteResponse {\n return {\n fleet: isSet(object.fleet) ? Fleet.fromJSON(object.fleet) : undefined,\n planet: isSet(object.planet) ? Planet.fromJSON(object.planet) : undefined,\n oreStolen: isSet(object.oreStolen) ? globalThis.Number(object.oreStolen) : 0,\n };\n },\n\n toJSON(message: MsgPlanetRaidCompleteResponse): unknown {\n const obj: any = {};\n if (message.fleet !== undefined) {\n obj.fleet = Fleet.toJSON(message.fleet);\n }\n if (message.planet !== undefined) {\n obj.planet = Planet.toJSON(message.planet);\n }\n if (message.oreStolen !== 0) {\n obj.oreStolen = Math.round(message.oreStolen);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPlanetRaidCompleteResponse {\n return MsgPlanetRaidCompleteResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgPlanetRaidCompleteResponse {\n const message = createBaseMsgPlanetRaidCompleteResponse();\n message.fleet = (object.fleet !== undefined && object.fleet !== null) ? Fleet.fromPartial(object.fleet) : undefined;\n message.planet = (object.planet !== undefined && object.planet !== null)\n ? Planet.fromPartial(object.planet)\n : undefined;\n message.oreStolen = object.oreStolen ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgPlayerUpdatePrimaryAddress(): MsgPlayerUpdatePrimaryAddress {\n return { creator: \"\", primaryAddress: \"\" };\n}\n\nexport const MsgPlayerUpdatePrimaryAddress: MessageFns = {\n encode(message: MsgPlayerUpdatePrimaryAddress, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.primaryAddress !== \"\") {\n writer.uint32(18).string(message.primaryAddress);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlayerUpdatePrimaryAddress {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlayerUpdatePrimaryAddress();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.primaryAddress = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPlayerUpdatePrimaryAddress {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n primaryAddress: isSet(object.primaryAddress) ? globalThis.String(object.primaryAddress) : \"\",\n };\n },\n\n toJSON(message: MsgPlayerUpdatePrimaryAddress): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.primaryAddress !== \"\") {\n obj.primaryAddress = message.primaryAddress;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPlayerUpdatePrimaryAddress {\n return MsgPlayerUpdatePrimaryAddress.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgPlayerUpdatePrimaryAddress {\n const message = createBaseMsgPlayerUpdatePrimaryAddress();\n message.creator = object.creator ?? \"\";\n message.primaryAddress = object.primaryAddress ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgPlayerUpdatePrimaryAddressResponse(): MsgPlayerUpdatePrimaryAddressResponse {\n return {};\n}\n\nexport const MsgPlayerUpdatePrimaryAddressResponse: MessageFns = {\n encode(_: MsgPlayerUpdatePrimaryAddressResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlayerUpdatePrimaryAddressResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlayerUpdatePrimaryAddressResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgPlayerUpdatePrimaryAddressResponse {\n return {};\n },\n\n toJSON(_: MsgPlayerUpdatePrimaryAddressResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgPlayerUpdatePrimaryAddressResponse {\n return MsgPlayerUpdatePrimaryAddressResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n _: I,\n ): MsgPlayerUpdatePrimaryAddressResponse {\n const message = createBaseMsgPlayerUpdatePrimaryAddressResponse();\n return message;\n },\n};\n\nfunction createBaseMsgPlayerUpdateGuildRank(): MsgPlayerUpdateGuildRank {\n return { creator: \"\", playerId: \"\", guildRank: 0 };\n}\n\nexport const MsgPlayerUpdateGuildRank: MessageFns = {\n encode(message: MsgPlayerUpdateGuildRank, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.playerId !== \"\") {\n writer.uint32(18).string(message.playerId);\n }\n if (message.guildRank !== 0) {\n writer.uint32(24).uint64(message.guildRank);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlayerUpdateGuildRank {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlayerUpdateGuildRank();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.guildRank = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPlayerUpdateGuildRank {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n guildRank: isSet(object.guildRank) ? globalThis.Number(object.guildRank) : 0,\n };\n },\n\n toJSON(message: MsgPlayerUpdateGuildRank): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.guildRank !== 0) {\n obj.guildRank = Math.round(message.guildRank);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPlayerUpdateGuildRank {\n return MsgPlayerUpdateGuildRank.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPlayerUpdateGuildRank {\n const message = createBaseMsgPlayerUpdateGuildRank();\n message.creator = object.creator ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.guildRank = object.guildRank ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgPlayerUpdateGuildRankResponse(): MsgPlayerUpdateGuildRankResponse {\n return {};\n}\n\nexport const MsgPlayerUpdateGuildRankResponse: MessageFns = {\n encode(_: MsgPlayerUpdateGuildRankResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlayerUpdateGuildRankResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlayerUpdateGuildRankResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgPlayerUpdateGuildRankResponse {\n return {};\n },\n\n toJSON(_: MsgPlayerUpdateGuildRankResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgPlayerUpdateGuildRankResponse {\n return MsgPlayerUpdateGuildRankResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n _: I,\n ): MsgPlayerUpdateGuildRankResponse {\n const message = createBaseMsgPlayerUpdateGuildRankResponse();\n return message;\n },\n};\n\nfunction createBaseMsgPlayerResume(): MsgPlayerResume {\n return { creator: \"\", playerId: \"\" };\n}\n\nexport const MsgPlayerResume: MessageFns = {\n encode(message: MsgPlayerResume, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.playerId !== \"\") {\n writer.uint32(18).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlayerResume {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlayerResume();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPlayerResume {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: MsgPlayerResume): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPlayerResume {\n return MsgPlayerResume.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPlayerResume {\n const message = createBaseMsgPlayerResume();\n message.creator = object.creator ?? \"\";\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgPlayerResumeResponse(): MsgPlayerResumeResponse {\n return {};\n}\n\nexport const MsgPlayerResumeResponse: MessageFns = {\n encode(_: MsgPlayerResumeResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlayerResumeResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlayerResumeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgPlayerResumeResponse {\n return {};\n },\n\n toJSON(_: MsgPlayerResumeResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgPlayerResumeResponse {\n return MsgPlayerResumeResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgPlayerResumeResponse {\n const message = createBaseMsgPlayerResumeResponse();\n return message;\n },\n};\n\nfunction createBaseMsgReactorInfuse(): MsgReactorInfuse {\n return { creator: \"\", delegatorAddress: \"\", validatorAddress: \"\", amount: undefined };\n}\n\nexport const MsgReactorInfuse: MessageFns = {\n encode(message: MsgReactorInfuse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.delegatorAddress !== \"\") {\n writer.uint32(18).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(26).string(message.validatorAddress);\n }\n if (message.amount !== undefined) {\n Coin.encode(message.amount, writer.uint32(34).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgReactorInfuse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgReactorInfuse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.delegatorAddress = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.validatorAddress = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.amount = Coin.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgReactorInfuse {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n delegatorAddress: isSet(object.delegatorAddress) ? globalThis.String(object.delegatorAddress) : \"\",\n validatorAddress: isSet(object.validatorAddress) ? globalThis.String(object.validatorAddress) : \"\",\n amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined,\n };\n },\n\n toJSON(message: MsgReactorInfuse): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.delegatorAddress !== \"\") {\n obj.delegatorAddress = message.delegatorAddress;\n }\n if (message.validatorAddress !== \"\") {\n obj.validatorAddress = message.validatorAddress;\n }\n if (message.amount !== undefined) {\n obj.amount = Coin.toJSON(message.amount);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgReactorInfuse {\n return MsgReactorInfuse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgReactorInfuse {\n const message = createBaseMsgReactorInfuse();\n message.creator = object.creator ?? \"\";\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n message.amount = (object.amount !== undefined && object.amount !== null)\n ? Coin.fromPartial(object.amount)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgReactorInfuseResponse(): MsgReactorInfuseResponse {\n return {};\n}\n\nexport const MsgReactorInfuseResponse: MessageFns = {\n encode(_: MsgReactorInfuseResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgReactorInfuseResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgReactorInfuseResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgReactorInfuseResponse {\n return {};\n },\n\n toJSON(_: MsgReactorInfuseResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgReactorInfuseResponse {\n return MsgReactorInfuseResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgReactorInfuseResponse {\n const message = createBaseMsgReactorInfuseResponse();\n return message;\n },\n};\n\nfunction createBaseMsgReactorBeginMigration(): MsgReactorBeginMigration {\n return { creator: \"\", delegatorAddress: \"\", validatorSrcAddress: \"\", validatorDstAddress: \"\", amount: undefined };\n}\n\nexport const MsgReactorBeginMigration: MessageFns = {\n encode(message: MsgReactorBeginMigration, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.delegatorAddress !== \"\") {\n writer.uint32(18).string(message.delegatorAddress);\n }\n if (message.validatorSrcAddress !== \"\") {\n writer.uint32(26).string(message.validatorSrcAddress);\n }\n if (message.validatorDstAddress !== \"\") {\n writer.uint32(34).string(message.validatorDstAddress);\n }\n if (message.amount !== undefined) {\n Coin.encode(message.amount, writer.uint32(42).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgReactorBeginMigration {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgReactorBeginMigration();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.delegatorAddress = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.validatorSrcAddress = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.validatorDstAddress = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.amount = Coin.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgReactorBeginMigration {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n delegatorAddress: isSet(object.delegatorAddress) ? globalThis.String(object.delegatorAddress) : \"\",\n validatorSrcAddress: isSet(object.validatorSrcAddress) ? globalThis.String(object.validatorSrcAddress) : \"\",\n validatorDstAddress: isSet(object.validatorDstAddress) ? globalThis.String(object.validatorDstAddress) : \"\",\n amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined,\n };\n },\n\n toJSON(message: MsgReactorBeginMigration): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.delegatorAddress !== \"\") {\n obj.delegatorAddress = message.delegatorAddress;\n }\n if (message.validatorSrcAddress !== \"\") {\n obj.validatorSrcAddress = message.validatorSrcAddress;\n }\n if (message.validatorDstAddress !== \"\") {\n obj.validatorDstAddress = message.validatorDstAddress;\n }\n if (message.amount !== undefined) {\n obj.amount = Coin.toJSON(message.amount);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgReactorBeginMigration {\n return MsgReactorBeginMigration.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgReactorBeginMigration {\n const message = createBaseMsgReactorBeginMigration();\n message.creator = object.creator ?? \"\";\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorSrcAddress = object.validatorSrcAddress ?? \"\";\n message.validatorDstAddress = object.validatorDstAddress ?? \"\";\n message.amount = (object.amount !== undefined && object.amount !== null)\n ? Coin.fromPartial(object.amount)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgReactorBeginMigrationResponse(): MsgReactorBeginMigrationResponse {\n return { completionTime: undefined };\n}\n\nexport const MsgReactorBeginMigrationResponse: MessageFns = {\n encode(message: MsgReactorBeginMigrationResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.completionTime !== undefined) {\n Timestamp.encode(toTimestamp(message.completionTime), writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgReactorBeginMigrationResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgReactorBeginMigrationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.completionTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgReactorBeginMigrationResponse {\n return { completionTime: isSet(object.completionTime) ? fromJsonTimestamp(object.completionTime) : undefined };\n },\n\n toJSON(message: MsgReactorBeginMigrationResponse): unknown {\n const obj: any = {};\n if (message.completionTime !== undefined) {\n obj.completionTime = message.completionTime.toISOString();\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgReactorBeginMigrationResponse {\n return MsgReactorBeginMigrationResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgReactorBeginMigrationResponse {\n const message = createBaseMsgReactorBeginMigrationResponse();\n message.completionTime = object.completionTime ?? undefined;\n return message;\n },\n};\n\nfunction createBaseMsgReactorDefuse(): MsgReactorDefuse {\n return { creator: \"\", delegatorAddress: \"\", validatorAddress: \"\", amount: undefined };\n}\n\nexport const MsgReactorDefuse: MessageFns = {\n encode(message: MsgReactorDefuse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.delegatorAddress !== \"\") {\n writer.uint32(18).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(26).string(message.validatorAddress);\n }\n if (message.amount !== undefined) {\n Coin.encode(message.amount, writer.uint32(34).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgReactorDefuse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgReactorDefuse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.delegatorAddress = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.validatorAddress = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.amount = Coin.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgReactorDefuse {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n delegatorAddress: isSet(object.delegatorAddress) ? globalThis.String(object.delegatorAddress) : \"\",\n validatorAddress: isSet(object.validatorAddress) ? globalThis.String(object.validatorAddress) : \"\",\n amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined,\n };\n },\n\n toJSON(message: MsgReactorDefuse): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.delegatorAddress !== \"\") {\n obj.delegatorAddress = message.delegatorAddress;\n }\n if (message.validatorAddress !== \"\") {\n obj.validatorAddress = message.validatorAddress;\n }\n if (message.amount !== undefined) {\n obj.amount = Coin.toJSON(message.amount);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgReactorDefuse {\n return MsgReactorDefuse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgReactorDefuse {\n const message = createBaseMsgReactorDefuse();\n message.creator = object.creator ?? \"\";\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n message.amount = (object.amount !== undefined && object.amount !== null)\n ? Coin.fromPartial(object.amount)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgReactorDefuseResponse(): MsgReactorDefuseResponse {\n return { completionTime: undefined, amount: undefined };\n}\n\nexport const MsgReactorDefuseResponse: MessageFns = {\n encode(message: MsgReactorDefuseResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.completionTime !== undefined) {\n Timestamp.encode(toTimestamp(message.completionTime), writer.uint32(10).fork()).join();\n }\n if (message.amount !== undefined) {\n Coin.encode(message.amount, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgReactorDefuseResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgReactorDefuseResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.completionTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.amount = Coin.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgReactorDefuseResponse {\n return {\n completionTime: isSet(object.completionTime) ? fromJsonTimestamp(object.completionTime) : undefined,\n amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined,\n };\n },\n\n toJSON(message: MsgReactorDefuseResponse): unknown {\n const obj: any = {};\n if (message.completionTime !== undefined) {\n obj.completionTime = message.completionTime.toISOString();\n }\n if (message.amount !== undefined) {\n obj.amount = Coin.toJSON(message.amount);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgReactorDefuseResponse {\n return MsgReactorDefuseResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgReactorDefuseResponse {\n const message = createBaseMsgReactorDefuseResponse();\n message.completionTime = object.completionTime ?? undefined;\n message.amount = (object.amount !== undefined && object.amount !== null)\n ? Coin.fromPartial(object.amount)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgReactorCancelDefusion(): MsgReactorCancelDefusion {\n return { creator: \"\", delegatorAddress: \"\", validatorAddress: \"\", amount: undefined, creationHeight: 0 };\n}\n\nexport const MsgReactorCancelDefusion: MessageFns = {\n encode(message: MsgReactorCancelDefusion, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.delegatorAddress !== \"\") {\n writer.uint32(18).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(26).string(message.validatorAddress);\n }\n if (message.amount !== undefined) {\n Coin.encode(message.amount, writer.uint32(34).fork()).join();\n }\n if (message.creationHeight !== 0) {\n writer.uint32(40).int64(message.creationHeight);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgReactorCancelDefusion {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgReactorCancelDefusion();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.delegatorAddress = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.validatorAddress = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.amount = Coin.decode(reader, reader.uint32());\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.creationHeight = longToNumber(reader.int64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgReactorCancelDefusion {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n delegatorAddress: isSet(object.delegatorAddress) ? globalThis.String(object.delegatorAddress) : \"\",\n validatorAddress: isSet(object.validatorAddress) ? globalThis.String(object.validatorAddress) : \"\",\n amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined,\n creationHeight: isSet(object.creationHeight) ? globalThis.Number(object.creationHeight) : 0,\n };\n },\n\n toJSON(message: MsgReactorCancelDefusion): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.delegatorAddress !== \"\") {\n obj.delegatorAddress = message.delegatorAddress;\n }\n if (message.validatorAddress !== \"\") {\n obj.validatorAddress = message.validatorAddress;\n }\n if (message.amount !== undefined) {\n obj.amount = Coin.toJSON(message.amount);\n }\n if (message.creationHeight !== 0) {\n obj.creationHeight = Math.round(message.creationHeight);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgReactorCancelDefusion {\n return MsgReactorCancelDefusion.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgReactorCancelDefusion {\n const message = createBaseMsgReactorCancelDefusion();\n message.creator = object.creator ?? \"\";\n message.delegatorAddress = object.delegatorAddress ?? \"\";\n message.validatorAddress = object.validatorAddress ?? \"\";\n message.amount = (object.amount !== undefined && object.amount !== null)\n ? Coin.fromPartial(object.amount)\n : undefined;\n message.creationHeight = object.creationHeight ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgReactorCancelDefusionResponse(): MsgReactorCancelDefusionResponse {\n return {};\n}\n\nexport const MsgReactorCancelDefusionResponse: MessageFns = {\n encode(_: MsgReactorCancelDefusionResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgReactorCancelDefusionResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgReactorCancelDefusionResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgReactorCancelDefusionResponse {\n return {};\n },\n\n toJSON(_: MsgReactorCancelDefusionResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgReactorCancelDefusionResponse {\n return MsgReactorCancelDefusionResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n _: I,\n ): MsgReactorCancelDefusionResponse {\n const message = createBaseMsgReactorCancelDefusionResponse();\n return message;\n },\n};\n\nfunction createBaseMsgStructStatusResponse(): MsgStructStatusResponse {\n return { struct: undefined };\n}\n\nexport const MsgStructStatusResponse: MessageFns = {\n encode(message: MsgStructStatusResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.struct !== undefined) {\n Struct.encode(message.struct, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructStatusResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructStatusResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.struct = Struct.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructStatusResponse {\n return { struct: isSet(object.struct) ? Struct.fromJSON(object.struct) : undefined };\n },\n\n toJSON(message: MsgStructStatusResponse): unknown {\n const obj: any = {};\n if (message.struct !== undefined) {\n obj.struct = Struct.toJSON(message.struct);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructStatusResponse {\n return MsgStructStatusResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructStatusResponse {\n const message = createBaseMsgStructStatusResponse();\n message.struct = (object.struct !== undefined && object.struct !== null)\n ? Struct.fromPartial(object.struct)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgStructActivate(): MsgStructActivate {\n return { creator: \"\", structId: \"\" };\n}\n\nexport const MsgStructActivate: MessageFns = {\n encode(message: MsgStructActivate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructActivate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructActivate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructActivate {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n };\n },\n\n toJSON(message: MsgStructActivate): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructActivate {\n return MsgStructActivate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructActivate {\n const message = createBaseMsgStructActivate();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructDeactivate(): MsgStructDeactivate {\n return { creator: \"\", structId: \"\" };\n}\n\nexport const MsgStructDeactivate: MessageFns = {\n encode(message: MsgStructDeactivate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructDeactivate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructDeactivate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructDeactivate {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n };\n },\n\n toJSON(message: MsgStructDeactivate): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructDeactivate {\n return MsgStructDeactivate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructDeactivate {\n const message = createBaseMsgStructDeactivate();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructBuildInitiate(): MsgStructBuildInitiate {\n return { creator: \"\", playerId: \"\", structTypeId: 0, operatingAmbit: 0, slot: 0 };\n}\n\nexport const MsgStructBuildInitiate: MessageFns = {\n encode(message: MsgStructBuildInitiate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.playerId !== \"\") {\n writer.uint32(18).string(message.playerId);\n }\n if (message.structTypeId !== 0) {\n writer.uint32(24).uint64(message.structTypeId);\n }\n if (message.operatingAmbit !== 0) {\n writer.uint32(32).int32(message.operatingAmbit);\n }\n if (message.slot !== 0) {\n writer.uint32(40).uint64(message.slot);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructBuildInitiate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructBuildInitiate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.structTypeId = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.operatingAmbit = reader.int32() as any;\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.slot = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructBuildInitiate {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n structTypeId: isSet(object.structTypeId) ? globalThis.Number(object.structTypeId) : 0,\n operatingAmbit: isSet(object.operatingAmbit) ? ambitFromJSON(object.operatingAmbit) : 0,\n slot: isSet(object.slot) ? globalThis.Number(object.slot) : 0,\n };\n },\n\n toJSON(message: MsgStructBuildInitiate): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.structTypeId !== 0) {\n obj.structTypeId = Math.round(message.structTypeId);\n }\n if (message.operatingAmbit !== 0) {\n obj.operatingAmbit = ambitToJSON(message.operatingAmbit);\n }\n if (message.slot !== 0) {\n obj.slot = Math.round(message.slot);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructBuildInitiate {\n return MsgStructBuildInitiate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructBuildInitiate {\n const message = createBaseMsgStructBuildInitiate();\n message.creator = object.creator ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.structTypeId = object.structTypeId ?? 0;\n message.operatingAmbit = object.operatingAmbit ?? 0;\n message.slot = object.slot ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgStructBuildComplete(): MsgStructBuildComplete {\n return { creator: \"\", structId: \"\", proof: \"\", nonce: \"\" };\n}\n\nexport const MsgStructBuildComplete: MessageFns = {\n encode(message: MsgStructBuildComplete, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n if (message.proof !== \"\") {\n writer.uint32(26).string(message.proof);\n }\n if (message.nonce !== \"\") {\n writer.uint32(34).string(message.nonce);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructBuildComplete {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructBuildComplete();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.proof = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.nonce = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructBuildComplete {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n proof: isSet(object.proof) ? globalThis.String(object.proof) : \"\",\n nonce: isSet(object.nonce) ? globalThis.String(object.nonce) : \"\",\n };\n },\n\n toJSON(message: MsgStructBuildComplete): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n if (message.proof !== \"\") {\n obj.proof = message.proof;\n }\n if (message.nonce !== \"\") {\n obj.nonce = message.nonce;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructBuildComplete {\n return MsgStructBuildComplete.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructBuildComplete {\n const message = createBaseMsgStructBuildComplete();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n message.proof = object.proof ?? \"\";\n message.nonce = object.nonce ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructBuildCancel(): MsgStructBuildCancel {\n return { creator: \"\", structId: \"\" };\n}\n\nexport const MsgStructBuildCancel: MessageFns = {\n encode(message: MsgStructBuildCancel, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructBuildCancel {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructBuildCancel();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructBuildCancel {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n };\n },\n\n toJSON(message: MsgStructBuildCancel): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructBuildCancel {\n return MsgStructBuildCancel.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructBuildCancel {\n const message = createBaseMsgStructBuildCancel();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructBuildCompleteAndStash(): MsgStructBuildCompleteAndStash {\n return { creator: \"\", structId: \"\", proof: \"\", nonce: \"\", storageDestinationId: \"\", storageAmbit: 0, storageSlot: 0 };\n}\n\nexport const MsgStructBuildCompleteAndStash: MessageFns = {\n encode(message: MsgStructBuildCompleteAndStash, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n if (message.proof !== \"\") {\n writer.uint32(26).string(message.proof);\n }\n if (message.nonce !== \"\") {\n writer.uint32(34).string(message.nonce);\n }\n if (message.storageDestinationId !== \"\") {\n writer.uint32(42).string(message.storageDestinationId);\n }\n if (message.storageAmbit !== 0) {\n writer.uint32(48).int32(message.storageAmbit);\n }\n if (message.storageSlot !== 0) {\n writer.uint32(56).uint64(message.storageSlot);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructBuildCompleteAndStash {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructBuildCompleteAndStash();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.proof = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.nonce = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.storageDestinationId = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.storageAmbit = reader.int32() as any;\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.storageSlot = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructBuildCompleteAndStash {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n proof: isSet(object.proof) ? globalThis.String(object.proof) : \"\",\n nonce: isSet(object.nonce) ? globalThis.String(object.nonce) : \"\",\n storageDestinationId: isSet(object.storageDestinationId) ? globalThis.String(object.storageDestinationId) : \"\",\n storageAmbit: isSet(object.storageAmbit) ? ambitFromJSON(object.storageAmbit) : 0,\n storageSlot: isSet(object.storageSlot) ? globalThis.Number(object.storageSlot) : 0,\n };\n },\n\n toJSON(message: MsgStructBuildCompleteAndStash): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n if (message.proof !== \"\") {\n obj.proof = message.proof;\n }\n if (message.nonce !== \"\") {\n obj.nonce = message.nonce;\n }\n if (message.storageDestinationId !== \"\") {\n obj.storageDestinationId = message.storageDestinationId;\n }\n if (message.storageAmbit !== 0) {\n obj.storageAmbit = ambitToJSON(message.storageAmbit);\n }\n if (message.storageSlot !== 0) {\n obj.storageSlot = Math.round(message.storageSlot);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructBuildCompleteAndStash {\n return MsgStructBuildCompleteAndStash.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgStructBuildCompleteAndStash {\n const message = createBaseMsgStructBuildCompleteAndStash();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n message.proof = object.proof ?? \"\";\n message.nonce = object.nonce ?? \"\";\n message.storageDestinationId = object.storageDestinationId ?? \"\";\n message.storageAmbit = object.storageAmbit ?? 0;\n message.storageSlot = object.storageSlot ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgStructDefenseSet(): MsgStructDefenseSet {\n return { creator: \"\", defenderStructId: \"\", protectedStructId: \"\" };\n}\n\nexport const MsgStructDefenseSet: MessageFns = {\n encode(message: MsgStructDefenseSet, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.defenderStructId !== \"\") {\n writer.uint32(18).string(message.defenderStructId);\n }\n if (message.protectedStructId !== \"\") {\n writer.uint32(26).string(message.protectedStructId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructDefenseSet {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructDefenseSet();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.defenderStructId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.protectedStructId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructDefenseSet {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n defenderStructId: isSet(object.defenderStructId) ? globalThis.String(object.defenderStructId) : \"\",\n protectedStructId: isSet(object.protectedStructId) ? globalThis.String(object.protectedStructId) : \"\",\n };\n },\n\n toJSON(message: MsgStructDefenseSet): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.defenderStructId !== \"\") {\n obj.defenderStructId = message.defenderStructId;\n }\n if (message.protectedStructId !== \"\") {\n obj.protectedStructId = message.protectedStructId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructDefenseSet {\n return MsgStructDefenseSet.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructDefenseSet {\n const message = createBaseMsgStructDefenseSet();\n message.creator = object.creator ?? \"\";\n message.defenderStructId = object.defenderStructId ?? \"\";\n message.protectedStructId = object.protectedStructId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructDefenseClear(): MsgStructDefenseClear {\n return { creator: \"\", defenderStructId: \"\" };\n}\n\nexport const MsgStructDefenseClear: MessageFns = {\n encode(message: MsgStructDefenseClear, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.defenderStructId !== \"\") {\n writer.uint32(18).string(message.defenderStructId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructDefenseClear {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructDefenseClear();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.defenderStructId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructDefenseClear {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n defenderStructId: isSet(object.defenderStructId) ? globalThis.String(object.defenderStructId) : \"\",\n };\n },\n\n toJSON(message: MsgStructDefenseClear): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.defenderStructId !== \"\") {\n obj.defenderStructId = message.defenderStructId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructDefenseClear {\n return MsgStructDefenseClear.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructDefenseClear {\n const message = createBaseMsgStructDefenseClear();\n message.creator = object.creator ?? \"\";\n message.defenderStructId = object.defenderStructId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructMove(): MsgStructMove {\n return { creator: \"\", structId: \"\", locationType: 0, ambit: 0, slot: 0 };\n}\n\nexport const MsgStructMove: MessageFns = {\n encode(message: MsgStructMove, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n if (message.locationType !== 0) {\n writer.uint32(32).int32(message.locationType);\n }\n if (message.ambit !== 0) {\n writer.uint32(40).int32(message.ambit);\n }\n if (message.slot !== 0) {\n writer.uint32(48).uint64(message.slot);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructMove {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructMove();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.locationType = reader.int32() as any;\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.ambit = reader.int32() as any;\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.slot = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructMove {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n locationType: isSet(object.locationType) ? objectTypeFromJSON(object.locationType) : 0,\n ambit: isSet(object.ambit) ? ambitFromJSON(object.ambit) : 0,\n slot: isSet(object.slot) ? globalThis.Number(object.slot) : 0,\n };\n },\n\n toJSON(message: MsgStructMove): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n if (message.locationType !== 0) {\n obj.locationType = objectTypeToJSON(message.locationType);\n }\n if (message.ambit !== 0) {\n obj.ambit = ambitToJSON(message.ambit);\n }\n if (message.slot !== 0) {\n obj.slot = Math.round(message.slot);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructMove {\n return MsgStructMove.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructMove {\n const message = createBaseMsgStructMove();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n message.locationType = object.locationType ?? 0;\n message.ambit = object.ambit ?? 0;\n message.slot = object.slot ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgStructAttack(): MsgStructAttack {\n return { creator: \"\", operatingStructId: \"\", targetStructId: [], weaponSystem: \"\" };\n}\n\nexport const MsgStructAttack: MessageFns = {\n encode(message: MsgStructAttack, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.operatingStructId !== \"\") {\n writer.uint32(18).string(message.operatingStructId);\n }\n for (const v of message.targetStructId) {\n writer.uint32(26).string(v!);\n }\n if (message.weaponSystem !== \"\") {\n writer.uint32(34).string(message.weaponSystem);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructAttack {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructAttack();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.operatingStructId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.targetStructId.push(reader.string());\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.weaponSystem = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructAttack {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n operatingStructId: isSet(object.operatingStructId) ? globalThis.String(object.operatingStructId) : \"\",\n targetStructId: globalThis.Array.isArray(object?.targetStructId)\n ? object.targetStructId.map((e: any) => globalThis.String(e))\n : [],\n weaponSystem: isSet(object.weaponSystem) ? globalThis.String(object.weaponSystem) : \"\",\n };\n },\n\n toJSON(message: MsgStructAttack): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.operatingStructId !== \"\") {\n obj.operatingStructId = message.operatingStructId;\n }\n if (message.targetStructId?.length) {\n obj.targetStructId = message.targetStructId;\n }\n if (message.weaponSystem !== \"\") {\n obj.weaponSystem = message.weaponSystem;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructAttack {\n return MsgStructAttack.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructAttack {\n const message = createBaseMsgStructAttack();\n message.creator = object.creator ?? \"\";\n message.operatingStructId = object.operatingStructId ?? \"\";\n message.targetStructId = object.targetStructId?.map((e) => e) || [];\n message.weaponSystem = object.weaponSystem ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructAttackResponse(): MsgStructAttackResponse {\n return {};\n}\n\nexport const MsgStructAttackResponse: MessageFns = {\n encode(_: MsgStructAttackResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructAttackResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructAttackResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgStructAttackResponse {\n return {};\n },\n\n toJSON(_: MsgStructAttackResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgStructAttackResponse {\n return MsgStructAttackResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgStructAttackResponse {\n const message = createBaseMsgStructAttackResponse();\n return message;\n },\n};\n\nfunction createBaseMsgStructStealthActivate(): MsgStructStealthActivate {\n return { creator: \"\", structId: \"\" };\n}\n\nexport const MsgStructStealthActivate: MessageFns = {\n encode(message: MsgStructStealthActivate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructStealthActivate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructStealthActivate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructStealthActivate {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n };\n },\n\n toJSON(message: MsgStructStealthActivate): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructStealthActivate {\n return MsgStructStealthActivate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructStealthActivate {\n const message = createBaseMsgStructStealthActivate();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructStealthDeactivate(): MsgStructStealthDeactivate {\n return { creator: \"\", structId: \"\" };\n}\n\nexport const MsgStructStealthDeactivate: MessageFns = {\n encode(message: MsgStructStealthDeactivate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructStealthDeactivate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructStealthDeactivate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructStealthDeactivate {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n };\n },\n\n toJSON(message: MsgStructStealthDeactivate): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructStealthDeactivate {\n return MsgStructStealthDeactivate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructStealthDeactivate {\n const message = createBaseMsgStructStealthDeactivate();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructGeneratorInfuse(): MsgStructGeneratorInfuse {\n return { creator: \"\", structId: \"\", infuseAmount: \"\" };\n}\n\nexport const MsgStructGeneratorInfuse: MessageFns = {\n encode(message: MsgStructGeneratorInfuse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n if (message.infuseAmount !== \"\") {\n writer.uint32(26).string(message.infuseAmount);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructGeneratorInfuse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructGeneratorInfuse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.infuseAmount = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructGeneratorInfuse {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n infuseAmount: isSet(object.infuseAmount) ? globalThis.String(object.infuseAmount) : \"\",\n };\n },\n\n toJSON(message: MsgStructGeneratorInfuse): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n if (message.infuseAmount !== \"\") {\n obj.infuseAmount = message.infuseAmount;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructGeneratorInfuse {\n return MsgStructGeneratorInfuse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructGeneratorInfuse {\n const message = createBaseMsgStructGeneratorInfuse();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n message.infuseAmount = object.infuseAmount ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructGeneratorStatusResponse(): MsgStructGeneratorStatusResponse {\n return {};\n}\n\nexport const MsgStructGeneratorStatusResponse: MessageFns = {\n encode(_: MsgStructGeneratorStatusResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructGeneratorStatusResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructGeneratorStatusResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgStructGeneratorStatusResponse {\n return {};\n },\n\n toJSON(_: MsgStructGeneratorStatusResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgStructGeneratorStatusResponse {\n return MsgStructGeneratorStatusResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n _: I,\n ): MsgStructGeneratorStatusResponse {\n const message = createBaseMsgStructGeneratorStatusResponse();\n return message;\n },\n};\n\nfunction createBaseMsgStructOreMinerComplete(): MsgStructOreMinerComplete {\n return { creator: \"\", structId: \"\", proof: \"\", nonce: \"\" };\n}\n\nexport const MsgStructOreMinerComplete: MessageFns = {\n encode(message: MsgStructOreMinerComplete, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n if (message.proof !== \"\") {\n writer.uint32(26).string(message.proof);\n }\n if (message.nonce !== \"\") {\n writer.uint32(34).string(message.nonce);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructOreMinerComplete {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructOreMinerComplete();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.proof = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.nonce = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructOreMinerComplete {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n proof: isSet(object.proof) ? globalThis.String(object.proof) : \"\",\n nonce: isSet(object.nonce) ? globalThis.String(object.nonce) : \"\",\n };\n },\n\n toJSON(message: MsgStructOreMinerComplete): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n if (message.proof !== \"\") {\n obj.proof = message.proof;\n }\n if (message.nonce !== \"\") {\n obj.nonce = message.nonce;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructOreMinerComplete {\n return MsgStructOreMinerComplete.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructOreMinerComplete {\n const message = createBaseMsgStructOreMinerComplete();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n message.proof = object.proof ?? \"\";\n message.nonce = object.nonce ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructOreMinerStatusResponse(): MsgStructOreMinerStatusResponse {\n return { struct: undefined };\n}\n\nexport const MsgStructOreMinerStatusResponse: MessageFns = {\n encode(message: MsgStructOreMinerStatusResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.struct !== undefined) {\n Struct.encode(message.struct, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructOreMinerStatusResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructOreMinerStatusResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.struct = Struct.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructOreMinerStatusResponse {\n return { struct: isSet(object.struct) ? Struct.fromJSON(object.struct) : undefined };\n },\n\n toJSON(message: MsgStructOreMinerStatusResponse): unknown {\n const obj: any = {};\n if (message.struct !== undefined) {\n obj.struct = Struct.toJSON(message.struct);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructOreMinerStatusResponse {\n return MsgStructOreMinerStatusResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgStructOreMinerStatusResponse {\n const message = createBaseMsgStructOreMinerStatusResponse();\n message.struct = (object.struct !== undefined && object.struct !== null)\n ? Struct.fromPartial(object.struct)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgStructOreRefineryComplete(): MsgStructOreRefineryComplete {\n return { creator: \"\", structId: \"\", proof: \"\", nonce: \"\" };\n}\n\nexport const MsgStructOreRefineryComplete: MessageFns = {\n encode(message: MsgStructOreRefineryComplete, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n if (message.proof !== \"\") {\n writer.uint32(26).string(message.proof);\n }\n if (message.nonce !== \"\") {\n writer.uint32(34).string(message.nonce);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructOreRefineryComplete {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructOreRefineryComplete();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.proof = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.nonce = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructOreRefineryComplete {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n proof: isSet(object.proof) ? globalThis.String(object.proof) : \"\",\n nonce: isSet(object.nonce) ? globalThis.String(object.nonce) : \"\",\n };\n },\n\n toJSON(message: MsgStructOreRefineryComplete): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n if (message.proof !== \"\") {\n obj.proof = message.proof;\n }\n if (message.nonce !== \"\") {\n obj.nonce = message.nonce;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructOreRefineryComplete {\n return MsgStructOreRefineryComplete.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructOreRefineryComplete {\n const message = createBaseMsgStructOreRefineryComplete();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n message.proof = object.proof ?? \"\";\n message.nonce = object.nonce ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStructOreRefineryStatusResponse(): MsgStructOreRefineryStatusResponse {\n return { struct: undefined };\n}\n\nexport const MsgStructOreRefineryStatusResponse: MessageFns = {\n encode(message: MsgStructOreRefineryStatusResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.struct !== undefined) {\n Struct.encode(message.struct, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructOreRefineryStatusResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructOreRefineryStatusResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.struct = Struct.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructOreRefineryStatusResponse {\n return { struct: isSet(object.struct) ? Struct.fromJSON(object.struct) : undefined };\n },\n\n toJSON(message: MsgStructOreRefineryStatusResponse): unknown {\n const obj: any = {};\n if (message.struct !== undefined) {\n obj.struct = Struct.toJSON(message.struct);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgStructOreRefineryStatusResponse {\n return MsgStructOreRefineryStatusResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgStructOreRefineryStatusResponse {\n const message = createBaseMsgStructOreRefineryStatusResponse();\n message.struct = (object.struct !== undefined && object.struct !== null)\n ? Struct.fromPartial(object.struct)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgStructStorageStash(): MsgStructStorageStash {\n return { creator: \"\", structId: \"\", locationId: \"\", ambit: 0, slot: 0 };\n}\n\nexport const MsgStructStorageStash: MessageFns = {\n encode(message: MsgStructStorageStash, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n if (message.locationId !== \"\") {\n writer.uint32(26).string(message.locationId);\n }\n if (message.ambit !== 0) {\n writer.uint32(32).int32(message.ambit);\n }\n if (message.slot !== 0) {\n writer.uint32(40).uint64(message.slot);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructStorageStash {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructStorageStash();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.locationId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.ambit = reader.int32() as any;\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.slot = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructStorageStash {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n locationId: isSet(object.locationId) ? globalThis.String(object.locationId) : \"\",\n ambit: isSet(object.ambit) ? ambitFromJSON(object.ambit) : 0,\n slot: isSet(object.slot) ? globalThis.Number(object.slot) : 0,\n };\n },\n\n toJSON(message: MsgStructStorageStash): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n if (message.locationId !== \"\") {\n obj.locationId = message.locationId;\n }\n if (message.ambit !== 0) {\n obj.ambit = ambitToJSON(message.ambit);\n }\n if (message.slot !== 0) {\n obj.slot = Math.round(message.slot);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructStorageStash {\n return MsgStructStorageStash.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructStorageStash {\n const message = createBaseMsgStructStorageStash();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n message.locationId = object.locationId ?? \"\";\n message.ambit = object.ambit ?? 0;\n message.slot = object.slot ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgStructStorageRecall(): MsgStructStorageRecall {\n return { creator: \"\", structId: \"\", locationId: \"\", ambit: 0, slot: 0, activate: false };\n}\n\nexport const MsgStructStorageRecall: MessageFns = {\n encode(message: MsgStructStorageRecall, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.structId !== \"\") {\n writer.uint32(18).string(message.structId);\n }\n if (message.locationId !== \"\") {\n writer.uint32(26).string(message.locationId);\n }\n if (message.ambit !== 0) {\n writer.uint32(32).int32(message.ambit);\n }\n if (message.slot !== 0) {\n writer.uint32(40).uint64(message.slot);\n }\n if (message.activate !== false) {\n writer.uint32(48).bool(message.activate);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgStructStorageRecall {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStructStorageRecall();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.structId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.locationId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.ambit = reader.int32() as any;\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.slot = longToNumber(reader.uint64());\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.activate = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgStructStorageRecall {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n structId: isSet(object.structId) ? globalThis.String(object.structId) : \"\",\n locationId: isSet(object.locationId) ? globalThis.String(object.locationId) : \"\",\n ambit: isSet(object.ambit) ? ambitFromJSON(object.ambit) : 0,\n slot: isSet(object.slot) ? globalThis.Number(object.slot) : 0,\n activate: isSet(object.activate) ? globalThis.Boolean(object.activate) : false,\n };\n },\n\n toJSON(message: MsgStructStorageRecall): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.structId !== \"\") {\n obj.structId = message.structId;\n }\n if (message.locationId !== \"\") {\n obj.locationId = message.locationId;\n }\n if (message.ambit !== 0) {\n obj.ambit = ambitToJSON(message.ambit);\n }\n if (message.slot !== 0) {\n obj.slot = Math.round(message.slot);\n }\n if (message.activate !== false) {\n obj.activate = message.activate;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgStructStorageRecall {\n return MsgStructStorageRecall.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgStructStorageRecall {\n const message = createBaseMsgStructStorageRecall();\n message.creator = object.creator ?? \"\";\n message.structId = object.structId ?? \"\";\n message.locationId = object.locationId ?? \"\";\n message.ambit = object.ambit ?? 0;\n message.slot = object.slot ?? 0;\n message.activate = object.activate ?? false;\n return message;\n },\n};\n\nfunction createBaseMsgSubstationCreate(): MsgSubstationCreate {\n return { creator: \"\", owner: \"\", allocationId: \"\" };\n}\n\nexport const MsgSubstationCreate: MessageFns = {\n encode(message: MsgSubstationCreate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.owner !== \"\") {\n writer.uint32(18).string(message.owner);\n }\n if (message.allocationId !== \"\") {\n writer.uint32(26).string(message.allocationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationCreate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationCreate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.owner = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.allocationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubstationCreate {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n owner: isSet(object.owner) ? globalThis.String(object.owner) : \"\",\n allocationId: isSet(object.allocationId) ? globalThis.String(object.allocationId) : \"\",\n };\n },\n\n toJSON(message: MsgSubstationCreate): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.owner !== \"\") {\n obj.owner = message.owner;\n }\n if (message.allocationId !== \"\") {\n obj.allocationId = message.allocationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgSubstationCreate {\n return MsgSubstationCreate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgSubstationCreate {\n const message = createBaseMsgSubstationCreate();\n message.creator = object.creator ?? \"\";\n message.owner = object.owner ?? \"\";\n message.allocationId = object.allocationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgSubstationCreateResponse(): MsgSubstationCreateResponse {\n return { substationId: \"\" };\n}\n\nexport const MsgSubstationCreateResponse: MessageFns = {\n encode(message: MsgSubstationCreateResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.substationId !== \"\") {\n writer.uint32(10).string(message.substationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationCreateResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationCreateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubstationCreateResponse {\n return { substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\" };\n },\n\n toJSON(message: MsgSubstationCreateResponse): unknown {\n const obj: any = {};\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgSubstationCreateResponse {\n return MsgSubstationCreateResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgSubstationCreateResponse {\n const message = createBaseMsgSubstationCreateResponse();\n message.substationId = object.substationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgSubstationDelete(): MsgSubstationDelete {\n return { creator: \"\", substationId: \"\", migrationSubstationId: \"\" };\n}\n\nexport const MsgSubstationDelete: MessageFns = {\n encode(message: MsgSubstationDelete, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.substationId !== \"\") {\n writer.uint32(18).string(message.substationId);\n }\n if (message.migrationSubstationId !== \"\") {\n writer.uint32(26).string(message.migrationSubstationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationDelete {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationDelete();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.migrationSubstationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubstationDelete {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n migrationSubstationId: isSet(object.migrationSubstationId) ? globalThis.String(object.migrationSubstationId) : \"\",\n };\n },\n\n toJSON(message: MsgSubstationDelete): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n if (message.migrationSubstationId !== \"\") {\n obj.migrationSubstationId = message.migrationSubstationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgSubstationDelete {\n return MsgSubstationDelete.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgSubstationDelete {\n const message = createBaseMsgSubstationDelete();\n message.creator = object.creator ?? \"\";\n message.substationId = object.substationId ?? \"\";\n message.migrationSubstationId = object.migrationSubstationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgSubstationDeleteResponse(): MsgSubstationDeleteResponse {\n return {};\n}\n\nexport const MsgSubstationDeleteResponse: MessageFns = {\n encode(_: MsgSubstationDeleteResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationDeleteResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationDeleteResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgSubstationDeleteResponse {\n return {};\n },\n\n toJSON(_: MsgSubstationDeleteResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgSubstationDeleteResponse {\n return MsgSubstationDeleteResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgSubstationDeleteResponse {\n const message = createBaseMsgSubstationDeleteResponse();\n return message;\n },\n};\n\nfunction createBaseMsgSubstationAllocationConnect(): MsgSubstationAllocationConnect {\n return { creator: \"\", allocationId: \"\", destinationId: \"\" };\n}\n\nexport const MsgSubstationAllocationConnect: MessageFns = {\n encode(message: MsgSubstationAllocationConnect, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.allocationId !== \"\") {\n writer.uint32(18).string(message.allocationId);\n }\n if (message.destinationId !== \"\") {\n writer.uint32(26).string(message.destinationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationAllocationConnect {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationAllocationConnect();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.allocationId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.destinationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubstationAllocationConnect {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n allocationId: isSet(object.allocationId) ? globalThis.String(object.allocationId) : \"\",\n destinationId: isSet(object.destinationId) ? globalThis.String(object.destinationId) : \"\",\n };\n },\n\n toJSON(message: MsgSubstationAllocationConnect): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.allocationId !== \"\") {\n obj.allocationId = message.allocationId;\n }\n if (message.destinationId !== \"\") {\n obj.destinationId = message.destinationId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgSubstationAllocationConnect {\n return MsgSubstationAllocationConnect.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgSubstationAllocationConnect {\n const message = createBaseMsgSubstationAllocationConnect();\n message.creator = object.creator ?? \"\";\n message.allocationId = object.allocationId ?? \"\";\n message.destinationId = object.destinationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgSubstationAllocationConnectResponse(): MsgSubstationAllocationConnectResponse {\n return {};\n}\n\nexport const MsgSubstationAllocationConnectResponse: MessageFns = {\n encode(_: MsgSubstationAllocationConnectResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationAllocationConnectResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationAllocationConnectResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgSubstationAllocationConnectResponse {\n return {};\n },\n\n toJSON(_: MsgSubstationAllocationConnectResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgSubstationAllocationConnectResponse {\n return MsgSubstationAllocationConnectResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n _: I,\n ): MsgSubstationAllocationConnectResponse {\n const message = createBaseMsgSubstationAllocationConnectResponse();\n return message;\n },\n};\n\nfunction createBaseMsgSubstationAllocationDisconnect(): MsgSubstationAllocationDisconnect {\n return { creator: \"\", allocationId: \"\" };\n}\n\nexport const MsgSubstationAllocationDisconnect: MessageFns = {\n encode(message: MsgSubstationAllocationDisconnect, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.allocationId !== \"\") {\n writer.uint32(18).string(message.allocationId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationAllocationDisconnect {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationAllocationDisconnect();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.allocationId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubstationAllocationDisconnect {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n allocationId: isSet(object.allocationId) ? globalThis.String(object.allocationId) : \"\",\n };\n },\n\n toJSON(message: MsgSubstationAllocationDisconnect): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.allocationId !== \"\") {\n obj.allocationId = message.allocationId;\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgSubstationAllocationDisconnect {\n return MsgSubstationAllocationDisconnect.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgSubstationAllocationDisconnect {\n const message = createBaseMsgSubstationAllocationDisconnect();\n message.creator = object.creator ?? \"\";\n message.allocationId = object.allocationId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgSubstationAllocationDisconnectResponse(): MsgSubstationAllocationDisconnectResponse {\n return {};\n}\n\nexport const MsgSubstationAllocationDisconnectResponse: MessageFns = {\n encode(_: MsgSubstationAllocationDisconnectResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationAllocationDisconnectResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationAllocationDisconnectResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgSubstationAllocationDisconnectResponse {\n return {};\n },\n\n toJSON(_: MsgSubstationAllocationDisconnectResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgSubstationAllocationDisconnectResponse {\n return MsgSubstationAllocationDisconnectResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n _: I,\n ): MsgSubstationAllocationDisconnectResponse {\n const message = createBaseMsgSubstationAllocationDisconnectResponse();\n return message;\n },\n};\n\nfunction createBaseMsgSubstationPlayerConnect(): MsgSubstationPlayerConnect {\n return { creator: \"\", substationId: \"\", playerId: \"\" };\n}\n\nexport const MsgSubstationPlayerConnect: MessageFns = {\n encode(message: MsgSubstationPlayerConnect, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.substationId !== \"\") {\n writer.uint32(18).string(message.substationId);\n }\n if (message.playerId !== \"\") {\n writer.uint32(26).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationPlayerConnect {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationPlayerConnect();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubstationPlayerConnect {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: MsgSubstationPlayerConnect): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgSubstationPlayerConnect {\n return MsgSubstationPlayerConnect.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgSubstationPlayerConnect {\n const message = createBaseMsgSubstationPlayerConnect();\n message.creator = object.creator ?? \"\";\n message.substationId = object.substationId ?? \"\";\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgSubstationPlayerConnectResponse(): MsgSubstationPlayerConnectResponse {\n return {};\n}\n\nexport const MsgSubstationPlayerConnectResponse: MessageFns = {\n encode(_: MsgSubstationPlayerConnectResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationPlayerConnectResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationPlayerConnectResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgSubstationPlayerConnectResponse {\n return {};\n },\n\n toJSON(_: MsgSubstationPlayerConnectResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgSubstationPlayerConnectResponse {\n return MsgSubstationPlayerConnectResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n _: I,\n ): MsgSubstationPlayerConnectResponse {\n const message = createBaseMsgSubstationPlayerConnectResponse();\n return message;\n },\n};\n\nfunction createBaseMsgSubstationPlayerDisconnect(): MsgSubstationPlayerDisconnect {\n return { creator: \"\", playerId: \"\" };\n}\n\nexport const MsgSubstationPlayerDisconnect: MessageFns = {\n encode(message: MsgSubstationPlayerDisconnect, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.playerId !== \"\") {\n writer.uint32(18).string(message.playerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationPlayerDisconnect {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationPlayerDisconnect();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubstationPlayerDisconnect {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n };\n },\n\n toJSON(message: MsgSubstationPlayerDisconnect): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgSubstationPlayerDisconnect {\n return MsgSubstationPlayerDisconnect.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgSubstationPlayerDisconnect {\n const message = createBaseMsgSubstationPlayerDisconnect();\n message.creator = object.creator ?? \"\";\n message.playerId = object.playerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgSubstationPlayerDisconnectResponse(): MsgSubstationPlayerDisconnectResponse {\n return {};\n}\n\nexport const MsgSubstationPlayerDisconnectResponse: MessageFns = {\n encode(_: MsgSubstationPlayerDisconnectResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationPlayerDisconnectResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationPlayerDisconnectResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgSubstationPlayerDisconnectResponse {\n return {};\n },\n\n toJSON(_: MsgSubstationPlayerDisconnectResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgSubstationPlayerDisconnectResponse {\n return MsgSubstationPlayerDisconnectResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n _: I,\n ): MsgSubstationPlayerDisconnectResponse {\n const message = createBaseMsgSubstationPlayerDisconnectResponse();\n return message;\n },\n};\n\nfunction createBaseMsgSubstationPlayerMigrate(): MsgSubstationPlayerMigrate {\n return { creator: \"\", substationId: \"\", playerId: [] };\n}\n\nexport const MsgSubstationPlayerMigrate: MessageFns = {\n encode(message: MsgSubstationPlayerMigrate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.substationId !== \"\") {\n writer.uint32(18).string(message.substationId);\n }\n for (const v of message.playerId) {\n writer.uint32(26).string(v!);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationPlayerMigrate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationPlayerMigrate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.playerId.push(reader.string());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubstationPlayerMigrate {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n playerId: globalThis.Array.isArray(object?.playerId) ? object.playerId.map((e: any) => globalThis.String(e)) : [],\n };\n },\n\n toJSON(message: MsgSubstationPlayerMigrate): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n if (message.playerId?.length) {\n obj.playerId = message.playerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgSubstationPlayerMigrate {\n return MsgSubstationPlayerMigrate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgSubstationPlayerMigrate {\n const message = createBaseMsgSubstationPlayerMigrate();\n message.creator = object.creator ?? \"\";\n message.substationId = object.substationId ?? \"\";\n message.playerId = object.playerId?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseMsgSubstationPlayerMigrateResponse(): MsgSubstationPlayerMigrateResponse {\n return {};\n}\n\nexport const MsgSubstationPlayerMigrateResponse: MessageFns = {\n encode(_: MsgSubstationPlayerMigrateResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationPlayerMigrateResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationPlayerMigrateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgSubstationPlayerMigrateResponse {\n return {};\n },\n\n toJSON(_: MsgSubstationPlayerMigrateResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgSubstationPlayerMigrateResponse {\n return MsgSubstationPlayerMigrateResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n _: I,\n ): MsgSubstationPlayerMigrateResponse {\n const message = createBaseMsgSubstationPlayerMigrateResponse();\n return message;\n },\n};\n\nfunction createBaseMsgAgreementOpen(): MsgAgreementOpen {\n return { creator: \"\", providerId: \"\", duration: 0, capacity: 0 };\n}\n\nexport const MsgAgreementOpen: MessageFns = {\n encode(message: MsgAgreementOpen, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n if (message.duration !== 0) {\n writer.uint32(24).uint64(message.duration);\n }\n if (message.capacity !== 0) {\n writer.uint32(32).uint64(message.capacity);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAgreementOpen {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAgreementOpen();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.duration = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.capacity = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAgreementOpen {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n duration: isSet(object.duration) ? globalThis.Number(object.duration) : 0,\n capacity: isSet(object.capacity) ? globalThis.Number(object.capacity) : 0,\n };\n },\n\n toJSON(message: MsgAgreementOpen): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.duration !== 0) {\n obj.duration = Math.round(message.duration);\n }\n if (message.capacity !== 0) {\n obj.capacity = Math.round(message.capacity);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAgreementOpen {\n return MsgAgreementOpen.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAgreementOpen {\n const message = createBaseMsgAgreementOpen();\n message.creator = object.creator ?? \"\";\n message.providerId = object.providerId ?? \"\";\n message.duration = object.duration ?? 0;\n message.capacity = object.capacity ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgAgreementClose(): MsgAgreementClose {\n return { creator: \"\", agreementId: \"\" };\n}\n\nexport const MsgAgreementClose: MessageFns = {\n encode(message: MsgAgreementClose, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.agreementId !== \"\") {\n writer.uint32(18).string(message.agreementId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAgreementClose {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAgreementClose();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.agreementId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAgreementClose {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n agreementId: isSet(object.agreementId) ? globalThis.String(object.agreementId) : \"\",\n };\n },\n\n toJSON(message: MsgAgreementClose): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.agreementId !== \"\") {\n obj.agreementId = message.agreementId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAgreementClose {\n return MsgAgreementClose.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAgreementClose {\n const message = createBaseMsgAgreementClose();\n message.creator = object.creator ?? \"\";\n message.agreementId = object.agreementId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgAgreementCapacityIncrease(): MsgAgreementCapacityIncrease {\n return { creator: \"\", agreementId: \"\", capacityIncrease: 0 };\n}\n\nexport const MsgAgreementCapacityIncrease: MessageFns = {\n encode(message: MsgAgreementCapacityIncrease, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.agreementId !== \"\") {\n writer.uint32(18).string(message.agreementId);\n }\n if (message.capacityIncrease !== 0) {\n writer.uint32(24).uint64(message.capacityIncrease);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAgreementCapacityIncrease {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAgreementCapacityIncrease();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.agreementId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.capacityIncrease = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAgreementCapacityIncrease {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n agreementId: isSet(object.agreementId) ? globalThis.String(object.agreementId) : \"\",\n capacityIncrease: isSet(object.capacityIncrease) ? globalThis.Number(object.capacityIncrease) : 0,\n };\n },\n\n toJSON(message: MsgAgreementCapacityIncrease): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.agreementId !== \"\") {\n obj.agreementId = message.agreementId;\n }\n if (message.capacityIncrease !== 0) {\n obj.capacityIncrease = Math.round(message.capacityIncrease);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAgreementCapacityIncrease {\n return MsgAgreementCapacityIncrease.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAgreementCapacityIncrease {\n const message = createBaseMsgAgreementCapacityIncrease();\n message.creator = object.creator ?? \"\";\n message.agreementId = object.agreementId ?? \"\";\n message.capacityIncrease = object.capacityIncrease ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgAgreementCapacityDecrease(): MsgAgreementCapacityDecrease {\n return { creator: \"\", agreementId: \"\", capacityDecrease: 0 };\n}\n\nexport const MsgAgreementCapacityDecrease: MessageFns = {\n encode(message: MsgAgreementCapacityDecrease, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.agreementId !== \"\") {\n writer.uint32(18).string(message.agreementId);\n }\n if (message.capacityDecrease !== 0) {\n writer.uint32(24).uint64(message.capacityDecrease);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAgreementCapacityDecrease {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAgreementCapacityDecrease();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.agreementId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.capacityDecrease = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAgreementCapacityDecrease {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n agreementId: isSet(object.agreementId) ? globalThis.String(object.agreementId) : \"\",\n capacityDecrease: isSet(object.capacityDecrease) ? globalThis.Number(object.capacityDecrease) : 0,\n };\n },\n\n toJSON(message: MsgAgreementCapacityDecrease): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.agreementId !== \"\") {\n obj.agreementId = message.agreementId;\n }\n if (message.capacityDecrease !== 0) {\n obj.capacityDecrease = Math.round(message.capacityDecrease);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAgreementCapacityDecrease {\n return MsgAgreementCapacityDecrease.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAgreementCapacityDecrease {\n const message = createBaseMsgAgreementCapacityDecrease();\n message.creator = object.creator ?? \"\";\n message.agreementId = object.agreementId ?? \"\";\n message.capacityDecrease = object.capacityDecrease ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgAgreementDurationIncrease(): MsgAgreementDurationIncrease {\n return { creator: \"\", agreementId: \"\", durationIncrease: 0 };\n}\n\nexport const MsgAgreementDurationIncrease: MessageFns = {\n encode(message: MsgAgreementDurationIncrease, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.agreementId !== \"\") {\n writer.uint32(18).string(message.agreementId);\n }\n if (message.durationIncrease !== 0) {\n writer.uint32(24).uint64(message.durationIncrease);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAgreementDurationIncrease {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAgreementDurationIncrease();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.agreementId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.durationIncrease = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgAgreementDurationIncrease {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n agreementId: isSet(object.agreementId) ? globalThis.String(object.agreementId) : \"\",\n durationIncrease: isSet(object.durationIncrease) ? globalThis.Number(object.durationIncrease) : 0,\n };\n },\n\n toJSON(message: MsgAgreementDurationIncrease): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.agreementId !== \"\") {\n obj.agreementId = message.agreementId;\n }\n if (message.durationIncrease !== 0) {\n obj.durationIncrease = Math.round(message.durationIncrease);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgAgreementDurationIncrease {\n return MsgAgreementDurationIncrease.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgAgreementDurationIncrease {\n const message = createBaseMsgAgreementDurationIncrease();\n message.creator = object.creator ?? \"\";\n message.agreementId = object.agreementId ?? \"\";\n message.durationIncrease = object.durationIncrease ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgAgreementResponse(): MsgAgreementResponse {\n return {};\n}\n\nexport const MsgAgreementResponse: MessageFns = {\n encode(_: MsgAgreementResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgAgreementResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAgreementResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgAgreementResponse {\n return {};\n },\n\n toJSON(_: MsgAgreementResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgAgreementResponse {\n return MsgAgreementResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgAgreementResponse {\n const message = createBaseMsgAgreementResponse();\n return message;\n },\n};\n\nfunction createBaseMsgProviderCreate(): MsgProviderCreate {\n return {\n creator: \"\",\n substationId: \"\",\n rate: undefined,\n accessPolicy: 0,\n providerCancellationPenalty: \"\",\n consumerCancellationPenalty: \"\",\n capacityMinimum: 0,\n capacityMaximum: 0,\n durationMinimum: 0,\n durationMaximum: 0,\n };\n}\n\nexport const MsgProviderCreate: MessageFns = {\n encode(message: MsgProviderCreate, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.substationId !== \"\") {\n writer.uint32(18).string(message.substationId);\n }\n if (message.rate !== undefined) {\n Coin.encode(message.rate, writer.uint32(26).fork()).join();\n }\n if (message.accessPolicy !== 0) {\n writer.uint32(32).int32(message.accessPolicy);\n }\n if (message.providerCancellationPenalty !== \"\") {\n writer.uint32(42).string(message.providerCancellationPenalty);\n }\n if (message.consumerCancellationPenalty !== \"\") {\n writer.uint32(50).string(message.consumerCancellationPenalty);\n }\n if (message.capacityMinimum !== 0) {\n writer.uint32(56).uint64(message.capacityMinimum);\n }\n if (message.capacityMaximum !== 0) {\n writer.uint32(64).uint64(message.capacityMaximum);\n }\n if (message.durationMinimum !== 0) {\n writer.uint32(72).uint64(message.durationMinimum);\n }\n if (message.durationMaximum !== 0) {\n writer.uint32(80).uint64(message.durationMaximum);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgProviderCreate {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgProviderCreate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.rate = Coin.decode(reader, reader.uint32());\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.accessPolicy = reader.int32() as any;\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.providerCancellationPenalty = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.consumerCancellationPenalty = reader.string();\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.capacityMinimum = longToNumber(reader.uint64());\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.capacityMaximum = longToNumber(reader.uint64());\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.durationMinimum = longToNumber(reader.uint64());\n continue;\n }\n case 10: {\n if (tag !== 80) {\n break;\n }\n\n message.durationMaximum = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgProviderCreate {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n rate: isSet(object.rate) ? Coin.fromJSON(object.rate) : undefined,\n accessPolicy: isSet(object.accessPolicy) ? providerAccessPolicyFromJSON(object.accessPolicy) : 0,\n providerCancellationPenalty: isSet(object.providerCancellationPenalty)\n ? globalThis.String(object.providerCancellationPenalty)\n : \"\",\n consumerCancellationPenalty: isSet(object.consumerCancellationPenalty)\n ? globalThis.String(object.consumerCancellationPenalty)\n : \"\",\n capacityMinimum: isSet(object.capacityMinimum) ? globalThis.Number(object.capacityMinimum) : 0,\n capacityMaximum: isSet(object.capacityMaximum) ? globalThis.Number(object.capacityMaximum) : 0,\n durationMinimum: isSet(object.durationMinimum) ? globalThis.Number(object.durationMinimum) : 0,\n durationMaximum: isSet(object.durationMaximum) ? globalThis.Number(object.durationMaximum) : 0,\n };\n },\n\n toJSON(message: MsgProviderCreate): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n if (message.rate !== undefined) {\n obj.rate = Coin.toJSON(message.rate);\n }\n if (message.accessPolicy !== 0) {\n obj.accessPolicy = providerAccessPolicyToJSON(message.accessPolicy);\n }\n if (message.providerCancellationPenalty !== \"\") {\n obj.providerCancellationPenalty = message.providerCancellationPenalty;\n }\n if (message.consumerCancellationPenalty !== \"\") {\n obj.consumerCancellationPenalty = message.consumerCancellationPenalty;\n }\n if (message.capacityMinimum !== 0) {\n obj.capacityMinimum = Math.round(message.capacityMinimum);\n }\n if (message.capacityMaximum !== 0) {\n obj.capacityMaximum = Math.round(message.capacityMaximum);\n }\n if (message.durationMinimum !== 0) {\n obj.durationMinimum = Math.round(message.durationMinimum);\n }\n if (message.durationMaximum !== 0) {\n obj.durationMaximum = Math.round(message.durationMaximum);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgProviderCreate {\n return MsgProviderCreate.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgProviderCreate {\n const message = createBaseMsgProviderCreate();\n message.creator = object.creator ?? \"\";\n message.substationId = object.substationId ?? \"\";\n message.rate = (object.rate !== undefined && object.rate !== null) ? Coin.fromPartial(object.rate) : undefined;\n message.accessPolicy = object.accessPolicy ?? 0;\n message.providerCancellationPenalty = object.providerCancellationPenalty ?? \"\";\n message.consumerCancellationPenalty = object.consumerCancellationPenalty ?? \"\";\n message.capacityMinimum = object.capacityMinimum ?? 0;\n message.capacityMaximum = object.capacityMaximum ?? 0;\n message.durationMinimum = object.durationMinimum ?? 0;\n message.durationMaximum = object.durationMaximum ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgProviderWithdrawBalance(): MsgProviderWithdrawBalance {\n return { creator: \"\", providerId: \"\", destinationAddress: \"\" };\n}\n\nexport const MsgProviderWithdrawBalance: MessageFns = {\n encode(message: MsgProviderWithdrawBalance, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n if (message.destinationAddress !== \"\") {\n writer.uint32(26).string(message.destinationAddress);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgProviderWithdrawBalance {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgProviderWithdrawBalance();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.destinationAddress = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgProviderWithdrawBalance {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n destinationAddress: isSet(object.destinationAddress) ? globalThis.String(object.destinationAddress) : \"\",\n };\n },\n\n toJSON(message: MsgProviderWithdrawBalance): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.destinationAddress !== \"\") {\n obj.destinationAddress = message.destinationAddress;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgProviderWithdrawBalance {\n return MsgProviderWithdrawBalance.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgProviderWithdrawBalance {\n const message = createBaseMsgProviderWithdrawBalance();\n message.creator = object.creator ?? \"\";\n message.providerId = object.providerId ?? \"\";\n message.destinationAddress = object.destinationAddress ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgProviderUpdateCapacityMinimum(): MsgProviderUpdateCapacityMinimum {\n return { creator: \"\", providerId: \"\", newMinimumCapacity: 0 };\n}\n\nexport const MsgProviderUpdateCapacityMinimum: MessageFns = {\n encode(message: MsgProviderUpdateCapacityMinimum, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n if (message.newMinimumCapacity !== 0) {\n writer.uint32(24).uint64(message.newMinimumCapacity);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgProviderUpdateCapacityMinimum {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgProviderUpdateCapacityMinimum();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.newMinimumCapacity = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgProviderUpdateCapacityMinimum {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n newMinimumCapacity: isSet(object.newMinimumCapacity) ? globalThis.Number(object.newMinimumCapacity) : 0,\n };\n },\n\n toJSON(message: MsgProviderUpdateCapacityMinimum): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.newMinimumCapacity !== 0) {\n obj.newMinimumCapacity = Math.round(message.newMinimumCapacity);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgProviderUpdateCapacityMinimum {\n return MsgProviderUpdateCapacityMinimum.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgProviderUpdateCapacityMinimum {\n const message = createBaseMsgProviderUpdateCapacityMinimum();\n message.creator = object.creator ?? \"\";\n message.providerId = object.providerId ?? \"\";\n message.newMinimumCapacity = object.newMinimumCapacity ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgProviderUpdateCapacityMaximum(): MsgProviderUpdateCapacityMaximum {\n return { creator: \"\", providerId: \"\", newMaximumCapacity: 0 };\n}\n\nexport const MsgProviderUpdateCapacityMaximum: MessageFns = {\n encode(message: MsgProviderUpdateCapacityMaximum, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n if (message.newMaximumCapacity !== 0) {\n writer.uint32(24).uint64(message.newMaximumCapacity);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgProviderUpdateCapacityMaximum {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgProviderUpdateCapacityMaximum();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.newMaximumCapacity = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgProviderUpdateCapacityMaximum {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n newMaximumCapacity: isSet(object.newMaximumCapacity) ? globalThis.Number(object.newMaximumCapacity) : 0,\n };\n },\n\n toJSON(message: MsgProviderUpdateCapacityMaximum): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.newMaximumCapacity !== 0) {\n obj.newMaximumCapacity = Math.round(message.newMaximumCapacity);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgProviderUpdateCapacityMaximum {\n return MsgProviderUpdateCapacityMaximum.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgProviderUpdateCapacityMaximum {\n const message = createBaseMsgProviderUpdateCapacityMaximum();\n message.creator = object.creator ?? \"\";\n message.providerId = object.providerId ?? \"\";\n message.newMaximumCapacity = object.newMaximumCapacity ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgProviderUpdateDurationMinimum(): MsgProviderUpdateDurationMinimum {\n return { creator: \"\", providerId: \"\", newMinimumDuration: 0 };\n}\n\nexport const MsgProviderUpdateDurationMinimum: MessageFns = {\n encode(message: MsgProviderUpdateDurationMinimum, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n if (message.newMinimumDuration !== 0) {\n writer.uint32(24).uint64(message.newMinimumDuration);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgProviderUpdateDurationMinimum {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgProviderUpdateDurationMinimum();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.newMinimumDuration = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgProviderUpdateDurationMinimum {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n newMinimumDuration: isSet(object.newMinimumDuration) ? globalThis.Number(object.newMinimumDuration) : 0,\n };\n },\n\n toJSON(message: MsgProviderUpdateDurationMinimum): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.newMinimumDuration !== 0) {\n obj.newMinimumDuration = Math.round(message.newMinimumDuration);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgProviderUpdateDurationMinimum {\n return MsgProviderUpdateDurationMinimum.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgProviderUpdateDurationMinimum {\n const message = createBaseMsgProviderUpdateDurationMinimum();\n message.creator = object.creator ?? \"\";\n message.providerId = object.providerId ?? \"\";\n message.newMinimumDuration = object.newMinimumDuration ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgProviderUpdateDurationMaximum(): MsgProviderUpdateDurationMaximum {\n return { creator: \"\", providerId: \"\", newMaximumDuration: 0 };\n}\n\nexport const MsgProviderUpdateDurationMaximum: MessageFns = {\n encode(message: MsgProviderUpdateDurationMaximum, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n if (message.newMaximumDuration !== 0) {\n writer.uint32(24).uint64(message.newMaximumDuration);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgProviderUpdateDurationMaximum {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgProviderUpdateDurationMaximum();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.newMaximumDuration = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgProviderUpdateDurationMaximum {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n newMaximumDuration: isSet(object.newMaximumDuration) ? globalThis.Number(object.newMaximumDuration) : 0,\n };\n },\n\n toJSON(message: MsgProviderUpdateDurationMaximum): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.newMaximumDuration !== 0) {\n obj.newMaximumDuration = Math.round(message.newMaximumDuration);\n }\n return obj;\n },\n\n create, I>>(\n base?: I,\n ): MsgProviderUpdateDurationMaximum {\n return MsgProviderUpdateDurationMaximum.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgProviderUpdateDurationMaximum {\n const message = createBaseMsgProviderUpdateDurationMaximum();\n message.creator = object.creator ?? \"\";\n message.providerId = object.providerId ?? \"\";\n message.newMaximumDuration = object.newMaximumDuration ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgProviderUpdateAccessPolicy(): MsgProviderUpdateAccessPolicy {\n return { creator: \"\", providerId: \"\", accessPolicy: 0 };\n}\n\nexport const MsgProviderUpdateAccessPolicy: MessageFns = {\n encode(message: MsgProviderUpdateAccessPolicy, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n if (message.accessPolicy !== 0) {\n writer.uint32(24).int32(message.accessPolicy);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgProviderUpdateAccessPolicy {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgProviderUpdateAccessPolicy();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.accessPolicy = reader.int32() as any;\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgProviderUpdateAccessPolicy {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n accessPolicy: isSet(object.accessPolicy) ? providerAccessPolicyFromJSON(object.accessPolicy) : 0,\n };\n },\n\n toJSON(message: MsgProviderUpdateAccessPolicy): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.accessPolicy !== 0) {\n obj.accessPolicy = providerAccessPolicyToJSON(message.accessPolicy);\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgProviderUpdateAccessPolicy {\n return MsgProviderUpdateAccessPolicy.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(\n object: I,\n ): MsgProviderUpdateAccessPolicy {\n const message = createBaseMsgProviderUpdateAccessPolicy();\n message.creator = object.creator ?? \"\";\n message.providerId = object.providerId ?? \"\";\n message.accessPolicy = object.accessPolicy ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgProviderGuildGrant(): MsgProviderGuildGrant {\n return { creator: \"\", providerId: \"\", guildId: [] };\n}\n\nexport const MsgProviderGuildGrant: MessageFns = {\n encode(message: MsgProviderGuildGrant, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n for (const v of message.guildId) {\n writer.uint32(26).string(v!);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgProviderGuildGrant {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgProviderGuildGrant();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.guildId.push(reader.string());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgProviderGuildGrant {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n guildId: globalThis.Array.isArray(object?.guildId) ? object.guildId.map((e: any) => globalThis.String(e)) : [],\n };\n },\n\n toJSON(message: MsgProviderGuildGrant): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.guildId?.length) {\n obj.guildId = message.guildId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgProviderGuildGrant {\n return MsgProviderGuildGrant.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgProviderGuildGrant {\n const message = createBaseMsgProviderGuildGrant();\n message.creator = object.creator ?? \"\";\n message.providerId = object.providerId ?? \"\";\n message.guildId = object.guildId?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseMsgProviderGuildRevoke(): MsgProviderGuildRevoke {\n return { creator: \"\", providerId: \"\", guildId: [] };\n}\n\nexport const MsgProviderGuildRevoke: MessageFns = {\n encode(message: MsgProviderGuildRevoke, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n for (const v of message.guildId) {\n writer.uint32(26).string(v!);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgProviderGuildRevoke {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgProviderGuildRevoke();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.guildId.push(reader.string());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgProviderGuildRevoke {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n guildId: globalThis.Array.isArray(object?.guildId) ? object.guildId.map((e: any) => globalThis.String(e)) : [],\n };\n },\n\n toJSON(message: MsgProviderGuildRevoke): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n if (message.guildId?.length) {\n obj.guildId = message.guildId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgProviderGuildRevoke {\n return MsgProviderGuildRevoke.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgProviderGuildRevoke {\n const message = createBaseMsgProviderGuildRevoke();\n message.creator = object.creator ?? \"\";\n message.providerId = object.providerId ?? \"\";\n message.guildId = object.guildId?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseMsgProviderDelete(): MsgProviderDelete {\n return { creator: \"\", providerId: \"\" };\n}\n\nexport const MsgProviderDelete: MessageFns = {\n encode(message: MsgProviderDelete, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.providerId !== \"\") {\n writer.uint32(18).string(message.providerId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgProviderDelete {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgProviderDelete();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.providerId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgProviderDelete {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n providerId: isSet(object.providerId) ? globalThis.String(object.providerId) : \"\",\n };\n },\n\n toJSON(message: MsgProviderDelete): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.providerId !== \"\") {\n obj.providerId = message.providerId;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgProviderDelete {\n return MsgProviderDelete.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgProviderDelete {\n const message = createBaseMsgProviderDelete();\n message.creator = object.creator ?? \"\";\n message.providerId = object.providerId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgProviderResponse(): MsgProviderResponse {\n return {};\n}\n\nexport const MsgProviderResponse: MessageFns = {\n encode(_: MsgProviderResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgProviderResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgProviderResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgProviderResponse {\n return {};\n },\n\n toJSON(_: MsgProviderResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgProviderResponse {\n return MsgProviderResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgProviderResponse {\n const message = createBaseMsgProviderResponse();\n return message;\n },\n};\n\nfunction createBaseMsgPlayerSend(): MsgPlayerSend {\n return { creator: \"\", fromAddress: \"\", toAddress: \"\", amount: [] };\n}\n\nexport const MsgPlayerSend: MessageFns = {\n encode(message: MsgPlayerSend, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.fromAddress !== \"\") {\n writer.uint32(18).string(message.fromAddress);\n }\n if (message.toAddress !== \"\") {\n writer.uint32(26).string(message.toAddress);\n }\n for (const v of message.amount) {\n Coin.encode(v!, writer.uint32(34).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlayerSend {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlayerSend();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.fromAddress = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.toAddress = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.amount.push(Coin.decode(reader, reader.uint32()));\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPlayerSend {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n fromAddress: isSet(object.fromAddress) ? globalThis.String(object.fromAddress) : \"\",\n toAddress: isSet(object.toAddress) ? globalThis.String(object.toAddress) : \"\",\n amount: globalThis.Array.isArray(object?.amount) ? object.amount.map((e: any) => Coin.fromJSON(e)) : [],\n };\n },\n\n toJSON(message: MsgPlayerSend): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.fromAddress !== \"\") {\n obj.fromAddress = message.fromAddress;\n }\n if (message.toAddress !== \"\") {\n obj.toAddress = message.toAddress;\n }\n if (message.amount?.length) {\n obj.amount = message.amount.map((e) => Coin.toJSON(e));\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPlayerSend {\n return MsgPlayerSend.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPlayerSend {\n const message = createBaseMsgPlayerSend();\n message.creator = object.creator ?? \"\";\n message.fromAddress = object.fromAddress ?? \"\";\n message.toAddress = object.toAddress ?? \"\";\n message.amount = object.amount?.map((e) => Coin.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseMsgPlayerSendResponse(): MsgPlayerSendResponse {\n return {};\n}\n\nexport const MsgPlayerSendResponse: MessageFns = {\n encode(_: MsgPlayerSendResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlayerSendResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlayerSendResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgPlayerSendResponse {\n return {};\n },\n\n toJSON(_: MsgPlayerSendResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgPlayerSendResponse {\n return MsgPlayerSendResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgPlayerSendResponse {\n const message = createBaseMsgPlayerSendResponse();\n return message;\n },\n};\n\nfunction createBaseMsgGuildUpdateName(): MsgGuildUpdateName {\n return { creator: \"\", guildId: \"\", name: \"\" };\n}\n\nexport const MsgGuildUpdateName: MessageFns = {\n encode(message: MsgGuildUpdateName, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.name !== \"\") {\n writer.uint32(26).string(message.name);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildUpdateName {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildUpdateName();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.name = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildUpdateName {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n name: isSet(object.name) ? globalThis.String(object.name) : \"\",\n };\n },\n\n toJSON(message: MsgGuildUpdateName): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.name !== \"\") {\n obj.name = message.name;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildUpdateName {\n return MsgGuildUpdateName.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildUpdateName {\n const message = createBaseMsgGuildUpdateName();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.name = object.name ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgGuildUpdatePfp(): MsgGuildUpdatePfp {\n return { creator: \"\", guildId: \"\", pfp: \"\" };\n}\n\nexport const MsgGuildUpdatePfp: MessageFns = {\n encode(message: MsgGuildUpdatePfp, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.guildId !== \"\") {\n writer.uint32(18).string(message.guildId);\n }\n if (message.pfp !== \"\") {\n writer.uint32(26).string(message.pfp);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgGuildUpdatePfp {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGuildUpdatePfp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.guildId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.pfp = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgGuildUpdatePfp {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n guildId: isSet(object.guildId) ? globalThis.String(object.guildId) : \"\",\n pfp: isSet(object.pfp) ? globalThis.String(object.pfp) : \"\",\n };\n },\n\n toJSON(message: MsgGuildUpdatePfp): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.guildId !== \"\") {\n obj.guildId = message.guildId;\n }\n if (message.pfp !== \"\") {\n obj.pfp = message.pfp;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgGuildUpdatePfp {\n return MsgGuildUpdatePfp.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgGuildUpdatePfp {\n const message = createBaseMsgGuildUpdatePfp();\n message.creator = object.creator ?? \"\";\n message.guildId = object.guildId ?? \"\";\n message.pfp = object.pfp ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgPlanetUpdateName(): MsgPlanetUpdateName {\n return { creator: \"\", planetId: \"\", name: \"\" };\n}\n\nexport const MsgPlanetUpdateName: MessageFns = {\n encode(message: MsgPlanetUpdateName, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.planetId !== \"\") {\n writer.uint32(18).string(message.planetId);\n }\n if (message.name !== \"\") {\n writer.uint32(26).string(message.name);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlanetUpdateName {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlanetUpdateName();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.planetId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.name = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPlanetUpdateName {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n planetId: isSet(object.planetId) ? globalThis.String(object.planetId) : \"\",\n name: isSet(object.name) ? globalThis.String(object.name) : \"\",\n };\n },\n\n toJSON(message: MsgPlanetUpdateName): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.planetId !== \"\") {\n obj.planetId = message.planetId;\n }\n if (message.name !== \"\") {\n obj.name = message.name;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPlanetUpdateName {\n return MsgPlanetUpdateName.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPlanetUpdateName {\n const message = createBaseMsgPlanetUpdateName();\n message.creator = object.creator ?? \"\";\n message.planetId = object.planetId ?? \"\";\n message.name = object.name ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgPlanetUpdateResponse(): MsgPlanetUpdateResponse {\n return {};\n}\n\nexport const MsgPlanetUpdateResponse: MessageFns = {\n encode(_: MsgPlanetUpdateResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlanetUpdateResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlanetUpdateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgPlanetUpdateResponse {\n return {};\n },\n\n toJSON(_: MsgPlanetUpdateResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgPlanetUpdateResponse {\n return MsgPlanetUpdateResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgPlanetUpdateResponse {\n const message = createBaseMsgPlanetUpdateResponse();\n return message;\n },\n};\n\nfunction createBaseMsgPlayerUpdateName(): MsgPlayerUpdateName {\n return { creator: \"\", playerId: \"\", name: \"\" };\n}\n\nexport const MsgPlayerUpdateName: MessageFns = {\n encode(message: MsgPlayerUpdateName, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.playerId !== \"\") {\n writer.uint32(18).string(message.playerId);\n }\n if (message.name !== \"\") {\n writer.uint32(26).string(message.name);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlayerUpdateName {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlayerUpdateName();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.name = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPlayerUpdateName {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n name: isSet(object.name) ? globalThis.String(object.name) : \"\",\n };\n },\n\n toJSON(message: MsgPlayerUpdateName): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.name !== \"\") {\n obj.name = message.name;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPlayerUpdateName {\n return MsgPlayerUpdateName.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPlayerUpdateName {\n const message = createBaseMsgPlayerUpdateName();\n message.creator = object.creator ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.name = object.name ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgPlayerUpdatePfp(): MsgPlayerUpdatePfp {\n return { creator: \"\", playerId: \"\", pfp: \"\" };\n}\n\nexport const MsgPlayerUpdatePfp: MessageFns = {\n encode(message: MsgPlayerUpdatePfp, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.playerId !== \"\") {\n writer.uint32(18).string(message.playerId);\n }\n if (message.pfp !== \"\") {\n writer.uint32(26).string(message.pfp);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlayerUpdatePfp {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlayerUpdatePfp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.playerId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.pfp = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgPlayerUpdatePfp {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n playerId: isSet(object.playerId) ? globalThis.String(object.playerId) : \"\",\n pfp: isSet(object.pfp) ? globalThis.String(object.pfp) : \"\",\n };\n },\n\n toJSON(message: MsgPlayerUpdatePfp): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.playerId !== \"\") {\n obj.playerId = message.playerId;\n }\n if (message.pfp !== \"\") {\n obj.pfp = message.pfp;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgPlayerUpdatePfp {\n return MsgPlayerUpdatePfp.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgPlayerUpdatePfp {\n const message = createBaseMsgPlayerUpdatePfp();\n message.creator = object.creator ?? \"\";\n message.playerId = object.playerId ?? \"\";\n message.pfp = object.pfp ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgPlayerUpdateResponse(): MsgPlayerUpdateResponse {\n return {};\n}\n\nexport const MsgPlayerUpdateResponse: MessageFns = {\n encode(_: MsgPlayerUpdateResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgPlayerUpdateResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgPlayerUpdateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgPlayerUpdateResponse {\n return {};\n },\n\n toJSON(_: MsgPlayerUpdateResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgPlayerUpdateResponse {\n return MsgPlayerUpdateResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgPlayerUpdateResponse {\n const message = createBaseMsgPlayerUpdateResponse();\n return message;\n },\n};\n\nfunction createBaseMsgSubstationUpdateName(): MsgSubstationUpdateName {\n return { creator: \"\", substationId: \"\", name: \"\" };\n}\n\nexport const MsgSubstationUpdateName: MessageFns = {\n encode(message: MsgSubstationUpdateName, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.substationId !== \"\") {\n writer.uint32(18).string(message.substationId);\n }\n if (message.name !== \"\") {\n writer.uint32(26).string(message.name);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationUpdateName {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationUpdateName();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.name = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubstationUpdateName {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n name: isSet(object.name) ? globalThis.String(object.name) : \"\",\n };\n },\n\n toJSON(message: MsgSubstationUpdateName): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n if (message.name !== \"\") {\n obj.name = message.name;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgSubstationUpdateName {\n return MsgSubstationUpdateName.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgSubstationUpdateName {\n const message = createBaseMsgSubstationUpdateName();\n message.creator = object.creator ?? \"\";\n message.substationId = object.substationId ?? \"\";\n message.name = object.name ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgSubstationUpdatePfp(): MsgSubstationUpdatePfp {\n return { creator: \"\", substationId: \"\", pfp: \"\" };\n}\n\nexport const MsgSubstationUpdatePfp: MessageFns = {\n encode(message: MsgSubstationUpdatePfp, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.creator !== \"\") {\n writer.uint32(10).string(message.creator);\n }\n if (message.substationId !== \"\") {\n writer.uint32(18).string(message.substationId);\n }\n if (message.pfp !== \"\") {\n writer.uint32(26).string(message.pfp);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationUpdatePfp {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationUpdatePfp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.creator = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.substationId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.pfp = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubstationUpdatePfp {\n return {\n creator: isSet(object.creator) ? globalThis.String(object.creator) : \"\",\n substationId: isSet(object.substationId) ? globalThis.String(object.substationId) : \"\",\n pfp: isSet(object.pfp) ? globalThis.String(object.pfp) : \"\",\n };\n },\n\n toJSON(message: MsgSubstationUpdatePfp): unknown {\n const obj: any = {};\n if (message.creator !== \"\") {\n obj.creator = message.creator;\n }\n if (message.substationId !== \"\") {\n obj.substationId = message.substationId;\n }\n if (message.pfp !== \"\") {\n obj.pfp = message.pfp;\n }\n return obj;\n },\n\n create, I>>(base?: I): MsgSubstationUpdatePfp {\n return MsgSubstationUpdatePfp.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): MsgSubstationUpdatePfp {\n const message = createBaseMsgSubstationUpdatePfp();\n message.creator = object.creator ?? \"\";\n message.substationId = object.substationId ?? \"\";\n message.pfp = object.pfp ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgSubstationUpdateResponse(): MsgSubstationUpdateResponse {\n return {};\n}\n\nexport const MsgSubstationUpdateResponse: MessageFns = {\n encode(_: MsgSubstationUpdateResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MsgSubstationUpdateResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubstationUpdateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MsgSubstationUpdateResponse {\n return {};\n },\n\n toJSON(_: MsgSubstationUpdateResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): MsgSubstationUpdateResponse {\n return MsgSubstationUpdateResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): MsgSubstationUpdateResponse {\n const message = createBaseMsgSubstationUpdateResponse();\n return message;\n },\n};\n\n/** Msg defines the Msg service. */\nexport interface Msg {\n /**\n * UpdateParams defines a (governance) operation for updating the module\n * parameters. The authority defaults to the x/gov module account.\n */\n UpdateParams(request: MsgUpdateParams): Promise;\n AddressRegister(request: MsgAddressRegister): Promise;\n AddressRevoke(request: MsgAddressRevoke): Promise;\n AgreementOpen(request: MsgAgreementOpen): Promise;\n AgreementClose(request: MsgAgreementClose): Promise;\n AgreementCapacityIncrease(request: MsgAgreementCapacityIncrease): Promise;\n AgreementCapacityDecrease(request: MsgAgreementCapacityDecrease): Promise;\n AgreementDurationIncrease(request: MsgAgreementDurationIncrease): Promise;\n AllocationCreate(request: MsgAllocationCreate): Promise;\n AllocationDelete(request: MsgAllocationDelete): Promise;\n AllocationUpdate(request: MsgAllocationUpdate): Promise;\n AllocationTransfer(request: MsgAllocationTransfer): Promise;\n FleetMove(request: MsgFleetMove): Promise;\n GuildCreate(request: MsgGuildCreate): Promise;\n GuildBankMint(request: MsgGuildBankMint): Promise;\n GuildBankRedeem(request: MsgGuildBankRedeem): Promise;\n GuildBankConfiscateAndBurn(request: MsgGuildBankConfiscateAndBurn): Promise;\n GuildUpdateOwnerId(request: MsgGuildUpdateOwnerId): Promise;\n GuildUpdateEntrySubstationId(request: MsgGuildUpdateEntrySubstationId): Promise;\n GuildUpdateEndpoint(request: MsgGuildUpdateEndpoint): Promise;\n GuildUpdateJoinInfusionMinimum(request: MsgGuildUpdateJoinInfusionMinimum): Promise;\n GuildUpdateJoinInfusionMinimumBypassByInvite(\n request: MsgGuildUpdateJoinInfusionMinimumBypassByInvite,\n ): Promise;\n GuildUpdateJoinInfusionMinimumBypassByRequest(\n request: MsgGuildUpdateJoinInfusionMinimumBypassByRequest,\n ): Promise;\n GuildMembershipInvite(request: MsgGuildMembershipInvite): Promise;\n GuildMembershipInviteApprove(request: MsgGuildMembershipInviteApprove): Promise;\n GuildMembershipInviteDeny(request: MsgGuildMembershipInviteDeny): Promise;\n GuildMembershipInviteRevoke(request: MsgGuildMembershipInviteRevoke): Promise;\n GuildMembershipJoin(request: MsgGuildMembershipJoin): Promise;\n GuildMembershipJoinProxy(request: MsgGuildMembershipJoinProxy): Promise;\n GuildMembershipKick(request: MsgGuildMembershipKick): Promise;\n GuildMembershipRequest(request: MsgGuildMembershipRequest): Promise;\n GuildMembershipRequestApprove(request: MsgGuildMembershipRequestApprove): Promise;\n GuildMembershipRequestDeny(request: MsgGuildMembershipRequestDeny): Promise;\n GuildMembershipRequestRevoke(request: MsgGuildMembershipRequestRevoke): Promise;\n PermissionGrantOnAddress(request: MsgPermissionGrantOnAddress): Promise;\n PermissionGrantOnObject(request: MsgPermissionGrantOnObject): Promise;\n PermissionRevokeOnAddress(request: MsgPermissionRevokeOnAddress): Promise;\n PermissionRevokeOnObject(request: MsgPermissionRevokeOnObject): Promise;\n PermissionSetOnAddress(request: MsgPermissionSetOnAddress): Promise;\n PermissionSetOnObject(request: MsgPermissionSetOnObject): Promise;\n PlanetExplore(request: MsgPlanetExplore): Promise;\n PlanetRaidComplete(request: MsgPlanetRaidComplete): Promise;\n PlayerUpdatePrimaryAddress(request: MsgPlayerUpdatePrimaryAddress): Promise;\n PlayerResume(request: MsgPlayerResume): Promise;\n PlayerSend(request: MsgPlayerSend): Promise;\n ProviderCreate(request: MsgProviderCreate): Promise;\n ProviderWithdrawBalance(request: MsgProviderWithdrawBalance): Promise;\n ProviderUpdateCapacityMinimum(request: MsgProviderUpdateCapacityMinimum): Promise;\n ProviderUpdateCapacityMaximum(request: MsgProviderUpdateCapacityMaximum): Promise;\n ProviderUpdateDurationMinimum(request: MsgProviderUpdateDurationMinimum): Promise;\n ProviderUpdateDurationMaximum(request: MsgProviderUpdateDurationMaximum): Promise;\n ProviderUpdateAccessPolicy(request: MsgProviderUpdateAccessPolicy): Promise;\n ProviderGuildGrant(request: MsgProviderGuildGrant): Promise;\n ProviderGuildRevoke(request: MsgProviderGuildRevoke): Promise;\n ProviderDelete(request: MsgProviderDelete): Promise;\n ReactorInfuse(request: MsgReactorInfuse): Promise;\n ReactorDefuse(request: MsgReactorDefuse): Promise;\n ReactorBeginMigration(request: MsgReactorBeginMigration): Promise;\n ReactorCancelDefusion(request: MsgReactorCancelDefusion): Promise;\n StructActivate(request: MsgStructActivate): Promise;\n StructDeactivate(request: MsgStructDeactivate): Promise;\n StructBuildInitiate(request: MsgStructBuildInitiate): Promise;\n StructBuildComplete(request: MsgStructBuildComplete): Promise;\n StructBuildCancel(request: MsgStructBuildCancel): Promise;\n StructDefenseSet(request: MsgStructDefenseSet): Promise;\n StructDefenseClear(request: MsgStructDefenseClear): Promise;\n StructMove(request: MsgStructMove): Promise;\n StructAttack(request: MsgStructAttack): Promise;\n StructStealthActivate(request: MsgStructStealthActivate): Promise;\n StructStealthDeactivate(request: MsgStructStealthDeactivate): Promise;\n StructGeneratorInfuse(request: MsgStructGeneratorInfuse): Promise;\n StructOreMinerComplete(request: MsgStructOreMinerComplete): Promise;\n StructOreRefineryComplete(request: MsgStructOreRefineryComplete): Promise;\n SubstationCreate(request: MsgSubstationCreate): Promise;\n SubstationDelete(request: MsgSubstationDelete): Promise;\n SubstationAllocationConnect(request: MsgSubstationAllocationConnect): Promise;\n SubstationAllocationDisconnect(\n request: MsgSubstationAllocationDisconnect,\n ): Promise;\n SubstationPlayerConnect(request: MsgSubstationPlayerConnect): Promise;\n SubstationPlayerDisconnect(request: MsgSubstationPlayerDisconnect): Promise;\n SubstationPlayerMigrate(request: MsgSubstationPlayerMigrate): Promise;\n}\n\nexport const MsgServiceName = \"structs.structs.Msg\";\nexport class MsgClientImpl implements Msg {\n private readonly rpc: Rpc;\n private readonly service: string;\n constructor(rpc: Rpc, opts?: { service?: string }) {\n this.service = opts?.service || MsgServiceName;\n this.rpc = rpc;\n this.UpdateParams = this.UpdateParams.bind(this);\n this.AddressRegister = this.AddressRegister.bind(this);\n this.AddressRevoke = this.AddressRevoke.bind(this);\n this.AgreementOpen = this.AgreementOpen.bind(this);\n this.AgreementClose = this.AgreementClose.bind(this);\n this.AgreementCapacityIncrease = this.AgreementCapacityIncrease.bind(this);\n this.AgreementCapacityDecrease = this.AgreementCapacityDecrease.bind(this);\n this.AgreementDurationIncrease = this.AgreementDurationIncrease.bind(this);\n this.AllocationCreate = this.AllocationCreate.bind(this);\n this.AllocationDelete = this.AllocationDelete.bind(this);\n this.AllocationUpdate = this.AllocationUpdate.bind(this);\n this.AllocationTransfer = this.AllocationTransfer.bind(this);\n this.FleetMove = this.FleetMove.bind(this);\n this.GuildCreate = this.GuildCreate.bind(this);\n this.GuildBankMint = this.GuildBankMint.bind(this);\n this.GuildBankRedeem = this.GuildBankRedeem.bind(this);\n this.GuildBankConfiscateAndBurn = this.GuildBankConfiscateAndBurn.bind(this);\n this.GuildUpdateOwnerId = this.GuildUpdateOwnerId.bind(this);\n this.GuildUpdateEntrySubstationId = this.GuildUpdateEntrySubstationId.bind(this);\n this.GuildUpdateEndpoint = this.GuildUpdateEndpoint.bind(this);\n this.GuildUpdateJoinInfusionMinimum = this.GuildUpdateJoinInfusionMinimum.bind(this);\n this.GuildUpdateJoinInfusionMinimumBypassByInvite = this.GuildUpdateJoinInfusionMinimumBypassByInvite.bind(this);\n this.GuildUpdateJoinInfusionMinimumBypassByRequest = this.GuildUpdateJoinInfusionMinimumBypassByRequest.bind(this);\n this.GuildMembershipInvite = this.GuildMembershipInvite.bind(this);\n this.GuildMembershipInviteApprove = this.GuildMembershipInviteApprove.bind(this);\n this.GuildMembershipInviteDeny = this.GuildMembershipInviteDeny.bind(this);\n this.GuildMembershipInviteRevoke = this.GuildMembershipInviteRevoke.bind(this);\n this.GuildMembershipJoin = this.GuildMembershipJoin.bind(this);\n this.GuildMembershipJoinProxy = this.GuildMembershipJoinProxy.bind(this);\n this.GuildMembershipKick = this.GuildMembershipKick.bind(this);\n this.GuildMembershipRequest = this.GuildMembershipRequest.bind(this);\n this.GuildMembershipRequestApprove = this.GuildMembershipRequestApprove.bind(this);\n this.GuildMembershipRequestDeny = this.GuildMembershipRequestDeny.bind(this);\n this.GuildMembershipRequestRevoke = this.GuildMembershipRequestRevoke.bind(this);\n this.PermissionGrantOnAddress = this.PermissionGrantOnAddress.bind(this);\n this.PermissionGrantOnObject = this.PermissionGrantOnObject.bind(this);\n this.PermissionRevokeOnAddress = this.PermissionRevokeOnAddress.bind(this);\n this.PermissionRevokeOnObject = this.PermissionRevokeOnObject.bind(this);\n this.PermissionSetOnAddress = this.PermissionSetOnAddress.bind(this);\n this.PermissionSetOnObject = this.PermissionSetOnObject.bind(this);\n this.PlanetExplore = this.PlanetExplore.bind(this);\n this.PlanetRaidComplete = this.PlanetRaidComplete.bind(this);\n this.PlayerUpdatePrimaryAddress = this.PlayerUpdatePrimaryAddress.bind(this);\n this.PlayerResume = this.PlayerResume.bind(this);\n this.PlayerSend = this.PlayerSend.bind(this);\n this.ProviderCreate = this.ProviderCreate.bind(this);\n this.ProviderWithdrawBalance = this.ProviderWithdrawBalance.bind(this);\n this.ProviderUpdateCapacityMinimum = this.ProviderUpdateCapacityMinimum.bind(this);\n this.ProviderUpdateCapacityMaximum = this.ProviderUpdateCapacityMaximum.bind(this);\n this.ProviderUpdateDurationMinimum = this.ProviderUpdateDurationMinimum.bind(this);\n this.ProviderUpdateDurationMaximum = this.ProviderUpdateDurationMaximum.bind(this);\n this.ProviderUpdateAccessPolicy = this.ProviderUpdateAccessPolicy.bind(this);\n this.ProviderGuildGrant = this.ProviderGuildGrant.bind(this);\n this.ProviderGuildRevoke = this.ProviderGuildRevoke.bind(this);\n this.ProviderDelete = this.ProviderDelete.bind(this);\n this.ReactorInfuse = this.ReactorInfuse.bind(this);\n this.ReactorDefuse = this.ReactorDefuse.bind(this);\n this.ReactorBeginMigration = this.ReactorBeginMigration.bind(this);\n this.ReactorCancelDefusion = this.ReactorCancelDefusion.bind(this);\n this.StructActivate = this.StructActivate.bind(this);\n this.StructDeactivate = this.StructDeactivate.bind(this);\n this.StructBuildInitiate = this.StructBuildInitiate.bind(this);\n this.StructBuildComplete = this.StructBuildComplete.bind(this);\n this.StructBuildCancel = this.StructBuildCancel.bind(this);\n this.StructDefenseSet = this.StructDefenseSet.bind(this);\n this.StructDefenseClear = this.StructDefenseClear.bind(this);\n this.StructMove = this.StructMove.bind(this);\n this.StructAttack = this.StructAttack.bind(this);\n this.StructStealthActivate = this.StructStealthActivate.bind(this);\n this.StructStealthDeactivate = this.StructStealthDeactivate.bind(this);\n this.StructGeneratorInfuse = this.StructGeneratorInfuse.bind(this);\n this.StructOreMinerComplete = this.StructOreMinerComplete.bind(this);\n this.StructOreRefineryComplete = this.StructOreRefineryComplete.bind(this);\n this.SubstationCreate = this.SubstationCreate.bind(this);\n this.SubstationDelete = this.SubstationDelete.bind(this);\n this.SubstationAllocationConnect = this.SubstationAllocationConnect.bind(this);\n this.SubstationAllocationDisconnect = this.SubstationAllocationDisconnect.bind(this);\n this.SubstationPlayerConnect = this.SubstationPlayerConnect.bind(this);\n this.SubstationPlayerDisconnect = this.SubstationPlayerDisconnect.bind(this);\n this.SubstationPlayerMigrate = this.SubstationPlayerMigrate.bind(this);\n }\n UpdateParams(request: MsgUpdateParams): Promise {\n const data = MsgUpdateParams.encode(request).finish();\n const promise = this.rpc.request(this.service, \"UpdateParams\", data);\n return promise.then((data) => MsgUpdateParamsResponse.decode(new BinaryReader(data)));\n }\n\n AddressRegister(request: MsgAddressRegister): Promise {\n const data = MsgAddressRegister.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AddressRegister\", data);\n return promise.then((data) => MsgAddressRegisterResponse.decode(new BinaryReader(data)));\n }\n\n AddressRevoke(request: MsgAddressRevoke): Promise {\n const data = MsgAddressRevoke.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AddressRevoke\", data);\n return promise.then((data) => MsgAddressRevokeResponse.decode(new BinaryReader(data)));\n }\n\n AgreementOpen(request: MsgAgreementOpen): Promise {\n const data = MsgAgreementOpen.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AgreementOpen\", data);\n return promise.then((data) => MsgAgreementResponse.decode(new BinaryReader(data)));\n }\n\n AgreementClose(request: MsgAgreementClose): Promise {\n const data = MsgAgreementClose.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AgreementClose\", data);\n return promise.then((data) => MsgAgreementResponse.decode(new BinaryReader(data)));\n }\n\n AgreementCapacityIncrease(request: MsgAgreementCapacityIncrease): Promise {\n const data = MsgAgreementCapacityIncrease.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AgreementCapacityIncrease\", data);\n return promise.then((data) => MsgAgreementResponse.decode(new BinaryReader(data)));\n }\n\n AgreementCapacityDecrease(request: MsgAgreementCapacityDecrease): Promise {\n const data = MsgAgreementCapacityDecrease.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AgreementCapacityDecrease\", data);\n return promise.then((data) => MsgAgreementResponse.decode(new BinaryReader(data)));\n }\n\n AgreementDurationIncrease(request: MsgAgreementDurationIncrease): Promise {\n const data = MsgAgreementDurationIncrease.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AgreementDurationIncrease\", data);\n return promise.then((data) => MsgAgreementResponse.decode(new BinaryReader(data)));\n }\n\n AllocationCreate(request: MsgAllocationCreate): Promise {\n const data = MsgAllocationCreate.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AllocationCreate\", data);\n return promise.then((data) => MsgAllocationCreateResponse.decode(new BinaryReader(data)));\n }\n\n AllocationDelete(request: MsgAllocationDelete): Promise {\n const data = MsgAllocationDelete.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AllocationDelete\", data);\n return promise.then((data) => MsgAllocationDeleteResponse.decode(new BinaryReader(data)));\n }\n\n AllocationUpdate(request: MsgAllocationUpdate): Promise {\n const data = MsgAllocationUpdate.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AllocationUpdate\", data);\n return promise.then((data) => MsgAllocationUpdateResponse.decode(new BinaryReader(data)));\n }\n\n AllocationTransfer(request: MsgAllocationTransfer): Promise {\n const data = MsgAllocationTransfer.encode(request).finish();\n const promise = this.rpc.request(this.service, \"AllocationTransfer\", data);\n return promise.then((data) => MsgAllocationTransferResponse.decode(new BinaryReader(data)));\n }\n\n FleetMove(request: MsgFleetMove): Promise {\n const data = MsgFleetMove.encode(request).finish();\n const promise = this.rpc.request(this.service, \"FleetMove\", data);\n return promise.then((data) => MsgFleetMoveResponse.decode(new BinaryReader(data)));\n }\n\n GuildCreate(request: MsgGuildCreate): Promise {\n const data = MsgGuildCreate.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildCreate\", data);\n return promise.then((data) => MsgGuildCreateResponse.decode(new BinaryReader(data)));\n }\n\n GuildBankMint(request: MsgGuildBankMint): Promise {\n const data = MsgGuildBankMint.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildBankMint\", data);\n return promise.then((data) => MsgGuildBankMintResponse.decode(new BinaryReader(data)));\n }\n\n GuildBankRedeem(request: MsgGuildBankRedeem): Promise {\n const data = MsgGuildBankRedeem.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildBankRedeem\", data);\n return promise.then((data) => MsgGuildBankRedeemResponse.decode(new BinaryReader(data)));\n }\n\n GuildBankConfiscateAndBurn(request: MsgGuildBankConfiscateAndBurn): Promise {\n const data = MsgGuildBankConfiscateAndBurn.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildBankConfiscateAndBurn\", data);\n return promise.then((data) => MsgGuildBankConfiscateAndBurnResponse.decode(new BinaryReader(data)));\n }\n\n GuildUpdateOwnerId(request: MsgGuildUpdateOwnerId): Promise {\n const data = MsgGuildUpdateOwnerId.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildUpdateOwnerId\", data);\n return promise.then((data) => MsgGuildUpdateResponse.decode(new BinaryReader(data)));\n }\n\n GuildUpdateEntrySubstationId(request: MsgGuildUpdateEntrySubstationId): Promise {\n const data = MsgGuildUpdateEntrySubstationId.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildUpdateEntrySubstationId\", data);\n return promise.then((data) => MsgGuildUpdateResponse.decode(new BinaryReader(data)));\n }\n\n GuildUpdateEndpoint(request: MsgGuildUpdateEndpoint): Promise {\n const data = MsgGuildUpdateEndpoint.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildUpdateEndpoint\", data);\n return promise.then((data) => MsgGuildUpdateResponse.decode(new BinaryReader(data)));\n }\n\n GuildUpdateJoinInfusionMinimum(request: MsgGuildUpdateJoinInfusionMinimum): Promise {\n const data = MsgGuildUpdateJoinInfusionMinimum.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildUpdateJoinInfusionMinimum\", data);\n return promise.then((data) => MsgGuildUpdateResponse.decode(new BinaryReader(data)));\n }\n\n GuildUpdateJoinInfusionMinimumBypassByInvite(\n request: MsgGuildUpdateJoinInfusionMinimumBypassByInvite,\n ): Promise {\n const data = MsgGuildUpdateJoinInfusionMinimumBypassByInvite.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildUpdateJoinInfusionMinimumBypassByInvite\", data);\n return promise.then((data) => MsgGuildUpdateResponse.decode(new BinaryReader(data)));\n }\n\n GuildUpdateJoinInfusionMinimumBypassByRequest(\n request: MsgGuildUpdateJoinInfusionMinimumBypassByRequest,\n ): Promise {\n const data = MsgGuildUpdateJoinInfusionMinimumBypassByRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildUpdateJoinInfusionMinimumBypassByRequest\", data);\n return promise.then((data) => MsgGuildUpdateResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipInvite(request: MsgGuildMembershipInvite): Promise {\n const data = MsgGuildMembershipInvite.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipInvite\", data);\n return promise.then((data) => MsgGuildMembershipResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipInviteApprove(request: MsgGuildMembershipInviteApprove): Promise {\n const data = MsgGuildMembershipInviteApprove.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipInviteApprove\", data);\n return promise.then((data) => MsgGuildMembershipResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipInviteDeny(request: MsgGuildMembershipInviteDeny): Promise {\n const data = MsgGuildMembershipInviteDeny.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipInviteDeny\", data);\n return promise.then((data) => MsgGuildMembershipResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipInviteRevoke(request: MsgGuildMembershipInviteRevoke): Promise {\n const data = MsgGuildMembershipInviteRevoke.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipInviteRevoke\", data);\n return promise.then((data) => MsgGuildMembershipResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipJoin(request: MsgGuildMembershipJoin): Promise {\n const data = MsgGuildMembershipJoin.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipJoin\", data);\n return promise.then((data) => MsgGuildMembershipResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipJoinProxy(request: MsgGuildMembershipJoinProxy): Promise {\n const data = MsgGuildMembershipJoinProxy.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipJoinProxy\", data);\n return promise.then((data) => MsgGuildMembershipResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipKick(request: MsgGuildMembershipKick): Promise {\n const data = MsgGuildMembershipKick.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipKick\", data);\n return promise.then((data) => MsgGuildMembershipResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipRequest(request: MsgGuildMembershipRequest): Promise {\n const data = MsgGuildMembershipRequest.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipRequest\", data);\n return promise.then((data) => MsgGuildMembershipResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipRequestApprove(request: MsgGuildMembershipRequestApprove): Promise {\n const data = MsgGuildMembershipRequestApprove.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipRequestApprove\", data);\n return promise.then((data) => MsgGuildMembershipResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipRequestDeny(request: MsgGuildMembershipRequestDeny): Promise {\n const data = MsgGuildMembershipRequestDeny.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipRequestDeny\", data);\n return promise.then((data) => MsgGuildMembershipResponse.decode(new BinaryReader(data)));\n }\n\n GuildMembershipRequestRevoke(request: MsgGuildMembershipRequestRevoke): Promise {\n const data = MsgGuildMembershipRequestRevoke.encode(request).finish();\n const promise = this.rpc.request(this.service, \"GuildMembershipRequestRevoke\", data);\n return promise.then((data) => MsgGuildMembershipResponse.decode(new BinaryReader(data)));\n }\n\n PermissionGrantOnAddress(request: MsgPermissionGrantOnAddress): Promise {\n const data = MsgPermissionGrantOnAddress.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PermissionGrantOnAddress\", data);\n return promise.then((data) => MsgPermissionResponse.decode(new BinaryReader(data)));\n }\n\n PermissionGrantOnObject(request: MsgPermissionGrantOnObject): Promise {\n const data = MsgPermissionGrantOnObject.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PermissionGrantOnObject\", data);\n return promise.then((data) => MsgPermissionResponse.decode(new BinaryReader(data)));\n }\n\n PermissionRevokeOnAddress(request: MsgPermissionRevokeOnAddress): Promise {\n const data = MsgPermissionRevokeOnAddress.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PermissionRevokeOnAddress\", data);\n return promise.then((data) => MsgPermissionResponse.decode(new BinaryReader(data)));\n }\n\n PermissionRevokeOnObject(request: MsgPermissionRevokeOnObject): Promise {\n const data = MsgPermissionRevokeOnObject.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PermissionRevokeOnObject\", data);\n return promise.then((data) => MsgPermissionResponse.decode(new BinaryReader(data)));\n }\n\n PermissionSetOnAddress(request: MsgPermissionSetOnAddress): Promise {\n const data = MsgPermissionSetOnAddress.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PermissionSetOnAddress\", data);\n return promise.then((data) => MsgPermissionResponse.decode(new BinaryReader(data)));\n }\n\n PermissionSetOnObject(request: MsgPermissionSetOnObject): Promise {\n const data = MsgPermissionSetOnObject.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PermissionSetOnObject\", data);\n return promise.then((data) => MsgPermissionResponse.decode(new BinaryReader(data)));\n }\n\n PlanetExplore(request: MsgPlanetExplore): Promise {\n const data = MsgPlanetExplore.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PlanetExplore\", data);\n return promise.then((data) => MsgPlanetExploreResponse.decode(new BinaryReader(data)));\n }\n\n PlanetRaidComplete(request: MsgPlanetRaidComplete): Promise {\n const data = MsgPlanetRaidComplete.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PlanetRaidComplete\", data);\n return promise.then((data) => MsgPlanetRaidCompleteResponse.decode(new BinaryReader(data)));\n }\n\n PlayerUpdatePrimaryAddress(request: MsgPlayerUpdatePrimaryAddress): Promise {\n const data = MsgPlayerUpdatePrimaryAddress.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PlayerUpdatePrimaryAddress\", data);\n return promise.then((data) => MsgPlayerUpdatePrimaryAddressResponse.decode(new BinaryReader(data)));\n }\n\n PlayerResume(request: MsgPlayerResume): Promise {\n const data = MsgPlayerResume.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PlayerResume\", data);\n return promise.then((data) => MsgPlayerResumeResponse.decode(new BinaryReader(data)));\n }\n\n PlayerSend(request: MsgPlayerSend): Promise {\n const data = MsgPlayerSend.encode(request).finish();\n const promise = this.rpc.request(this.service, \"PlayerSend\", data);\n return promise.then((data) => MsgPlayerSendResponse.decode(new BinaryReader(data)));\n }\n\n ProviderCreate(request: MsgProviderCreate): Promise {\n const data = MsgProviderCreate.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderCreate\", data);\n return promise.then((data) => MsgProviderResponse.decode(new BinaryReader(data)));\n }\n\n ProviderWithdrawBalance(request: MsgProviderWithdrawBalance): Promise {\n const data = MsgProviderWithdrawBalance.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderWithdrawBalance\", data);\n return promise.then((data) => MsgProviderResponse.decode(new BinaryReader(data)));\n }\n\n ProviderUpdateCapacityMinimum(request: MsgProviderUpdateCapacityMinimum): Promise {\n const data = MsgProviderUpdateCapacityMinimum.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderUpdateCapacityMinimum\", data);\n return promise.then((data) => MsgProviderResponse.decode(new BinaryReader(data)));\n }\n\n ProviderUpdateCapacityMaximum(request: MsgProviderUpdateCapacityMaximum): Promise {\n const data = MsgProviderUpdateCapacityMaximum.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderUpdateCapacityMaximum\", data);\n return promise.then((data) => MsgProviderResponse.decode(new BinaryReader(data)));\n }\n\n ProviderUpdateDurationMinimum(request: MsgProviderUpdateDurationMinimum): Promise {\n const data = MsgProviderUpdateDurationMinimum.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderUpdateDurationMinimum\", data);\n return promise.then((data) => MsgProviderResponse.decode(new BinaryReader(data)));\n }\n\n ProviderUpdateDurationMaximum(request: MsgProviderUpdateDurationMaximum): Promise {\n const data = MsgProviderUpdateDurationMaximum.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderUpdateDurationMaximum\", data);\n return promise.then((data) => MsgProviderResponse.decode(new BinaryReader(data)));\n }\n\n ProviderUpdateAccessPolicy(request: MsgProviderUpdateAccessPolicy): Promise {\n const data = MsgProviderUpdateAccessPolicy.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderUpdateAccessPolicy\", data);\n return promise.then((data) => MsgProviderResponse.decode(new BinaryReader(data)));\n }\n\n ProviderGuildGrant(request: MsgProviderGuildGrant): Promise {\n const data = MsgProviderGuildGrant.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderGuildGrant\", data);\n return promise.then((data) => MsgProviderResponse.decode(new BinaryReader(data)));\n }\n\n ProviderGuildRevoke(request: MsgProviderGuildRevoke): Promise {\n const data = MsgProviderGuildRevoke.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderGuildRevoke\", data);\n return promise.then((data) => MsgProviderResponse.decode(new BinaryReader(data)));\n }\n\n ProviderDelete(request: MsgProviderDelete): Promise {\n const data = MsgProviderDelete.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ProviderDelete\", data);\n return promise.then((data) => MsgProviderResponse.decode(new BinaryReader(data)));\n }\n\n ReactorInfuse(request: MsgReactorInfuse): Promise {\n const data = MsgReactorInfuse.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ReactorInfuse\", data);\n return promise.then((data) => MsgReactorInfuseResponse.decode(new BinaryReader(data)));\n }\n\n ReactorDefuse(request: MsgReactorDefuse): Promise {\n const data = MsgReactorDefuse.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ReactorDefuse\", data);\n return promise.then((data) => MsgReactorDefuseResponse.decode(new BinaryReader(data)));\n }\n\n ReactorBeginMigration(request: MsgReactorBeginMigration): Promise {\n const data = MsgReactorBeginMigration.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ReactorBeginMigration\", data);\n return promise.then((data) => MsgReactorBeginMigrationResponse.decode(new BinaryReader(data)));\n }\n\n ReactorCancelDefusion(request: MsgReactorCancelDefusion): Promise {\n const data = MsgReactorCancelDefusion.encode(request).finish();\n const promise = this.rpc.request(this.service, \"ReactorCancelDefusion\", data);\n return promise.then((data) => MsgReactorCancelDefusionResponse.decode(new BinaryReader(data)));\n }\n\n StructActivate(request: MsgStructActivate): Promise {\n const data = MsgStructActivate.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructActivate\", data);\n return promise.then((data) => MsgStructStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructDeactivate(request: MsgStructDeactivate): Promise {\n const data = MsgStructDeactivate.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructDeactivate\", data);\n return promise.then((data) => MsgStructStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructBuildInitiate(request: MsgStructBuildInitiate): Promise {\n const data = MsgStructBuildInitiate.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructBuildInitiate\", data);\n return promise.then((data) => MsgStructStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructBuildComplete(request: MsgStructBuildComplete): Promise {\n const data = MsgStructBuildComplete.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructBuildComplete\", data);\n return promise.then((data) => MsgStructStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructBuildCancel(request: MsgStructBuildCancel): Promise {\n const data = MsgStructBuildCancel.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructBuildCancel\", data);\n return promise.then((data) => MsgStructStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructDefenseSet(request: MsgStructDefenseSet): Promise {\n const data = MsgStructDefenseSet.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructDefenseSet\", data);\n return promise.then((data) => MsgStructStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructDefenseClear(request: MsgStructDefenseClear): Promise {\n const data = MsgStructDefenseClear.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructDefenseClear\", data);\n return promise.then((data) => MsgStructStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructMove(request: MsgStructMove): Promise {\n const data = MsgStructMove.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructMove\", data);\n return promise.then((data) => MsgStructStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructAttack(request: MsgStructAttack): Promise {\n const data = MsgStructAttack.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructAttack\", data);\n return promise.then((data) => MsgStructAttackResponse.decode(new BinaryReader(data)));\n }\n\n StructStealthActivate(request: MsgStructStealthActivate): Promise {\n const data = MsgStructStealthActivate.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructStealthActivate\", data);\n return promise.then((data) => MsgStructStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructStealthDeactivate(request: MsgStructStealthDeactivate): Promise {\n const data = MsgStructStealthDeactivate.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructStealthDeactivate\", data);\n return promise.then((data) => MsgStructStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructGeneratorInfuse(request: MsgStructGeneratorInfuse): Promise {\n const data = MsgStructGeneratorInfuse.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructGeneratorInfuse\", data);\n return promise.then((data) => MsgStructGeneratorStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructOreMinerComplete(request: MsgStructOreMinerComplete): Promise {\n const data = MsgStructOreMinerComplete.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructOreMinerComplete\", data);\n return promise.then((data) => MsgStructOreMinerStatusResponse.decode(new BinaryReader(data)));\n }\n\n StructOreRefineryComplete(request: MsgStructOreRefineryComplete): Promise {\n const data = MsgStructOreRefineryComplete.encode(request).finish();\n const promise = this.rpc.request(this.service, \"StructOreRefineryComplete\", data);\n return promise.then((data) => MsgStructOreRefineryStatusResponse.decode(new BinaryReader(data)));\n }\n\n SubstationCreate(request: MsgSubstationCreate): Promise {\n const data = MsgSubstationCreate.encode(request).finish();\n const promise = this.rpc.request(this.service, \"SubstationCreate\", data);\n return promise.then((data) => MsgSubstationCreateResponse.decode(new BinaryReader(data)));\n }\n\n SubstationDelete(request: MsgSubstationDelete): Promise {\n const data = MsgSubstationDelete.encode(request).finish();\n const promise = this.rpc.request(this.service, \"SubstationDelete\", data);\n return promise.then((data) => MsgSubstationDeleteResponse.decode(new BinaryReader(data)));\n }\n\n SubstationAllocationConnect(\n request: MsgSubstationAllocationConnect,\n ): Promise {\n const data = MsgSubstationAllocationConnect.encode(request).finish();\n const promise = this.rpc.request(this.service, \"SubstationAllocationConnect\", data);\n return promise.then((data) => MsgSubstationAllocationConnectResponse.decode(new BinaryReader(data)));\n }\n\n SubstationAllocationDisconnect(\n request: MsgSubstationAllocationDisconnect,\n ): Promise {\n const data = MsgSubstationAllocationDisconnect.encode(request).finish();\n const promise = this.rpc.request(this.service, \"SubstationAllocationDisconnect\", data);\n return promise.then((data) => MsgSubstationAllocationDisconnectResponse.decode(new BinaryReader(data)));\n }\n\n SubstationPlayerConnect(request: MsgSubstationPlayerConnect): Promise {\n const data = MsgSubstationPlayerConnect.encode(request).finish();\n const promise = this.rpc.request(this.service, \"SubstationPlayerConnect\", data);\n return promise.then((data) => MsgSubstationPlayerConnectResponse.decode(new BinaryReader(data)));\n }\n\n SubstationPlayerDisconnect(request: MsgSubstationPlayerDisconnect): Promise {\n const data = MsgSubstationPlayerDisconnect.encode(request).finish();\n const promise = this.rpc.request(this.service, \"SubstationPlayerDisconnect\", data);\n return promise.then((data) => MsgSubstationPlayerDisconnectResponse.decode(new BinaryReader(data)));\n }\n\n SubstationPlayerMigrate(request: MsgSubstationPlayerMigrate): Promise {\n const data = MsgSubstationPlayerMigrate.encode(request).finish();\n const promise = this.rpc.request(this.service, \"SubstationPlayerMigrate\", data);\n return promise.then((data) => MsgSubstationPlayerMigrateResponse.decode(new BinaryReader(data)));\n }\n}\n\ninterface Rpc {\n request(service: string, method: string, data: Uint8Array): Promise;\n}\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction toTimestamp(date: Date): Timestamp {\n const seconds = Math.trunc(date.getTime() / 1_000);\n const nanos = (date.getTime() % 1_000) * 1_000_000;\n return { seconds, nanos };\n}\n\nfunction fromTimestamp(t: Timestamp): Date {\n let millis = (t.seconds || 0) * 1_000;\n millis += (t.nanos || 0) / 1_000_000;\n return new globalThis.Date(millis);\n}\n\nfunction fromJsonTimestamp(o: any): Date {\n if (o instanceof globalThis.Date) {\n return o;\n } else if (typeof o === \"string\") {\n return new globalThis.Date(o);\n } else {\n return fromTimestamp(Timestamp.fromJSON(o));\n }\n}\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n","'use strict';\n\nvar $TypeError = require('es-errors/type');\n\nvar callBound = require('call-bound');\n\n/** @type {undefined | ((thisArg: import('.').TypedArray) => Buffer)} */\nvar $typedArrayBuffer = callBound('TypedArray.prototype.buffer', true);\n\nvar isTypedArray = require('is-typed-array');\n\n/** @type {import('.')} */\n// node <= 0.10, < 0.11.4 has a nonconfigurable own property instead of a prototype getter\nmodule.exports = $typedArrayBuffer || function typedArrayBuffer(x) {\n\tif (!isTypedArray(x)) {\n\t\tthrow new $TypeError('Not a Typed Array');\n\t}\n\treturn x.buffer;\n};\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch(e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return (\n isTypedArray(value) ||\n isDataView(value)\n );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n typeof Map !== 'undefined' &&\n isMapToString(new Map())\n);\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working\n ? isMapToString(value)\n : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n typeof Set !== 'undefined' &&\n isSetToString(new Set())\n);\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working\n ? isSetToString(value)\n : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n typeof WeakMap !== 'undefined' &&\n isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working\n ? isWeakMapToString(value)\n : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n typeof WeakSet !== 'undefined' &&\n isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working\n ? isArrayBufferToString(value)\n : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n typeof DataView !== 'undefined' &&\n isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working\n ? isDataViewToString(value)\n : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === 'undefined') {\n return false;\n }\n\n if (typeof isSharedArrayBufferToString.working === 'undefined') {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n\n return isSharedArrayBufferToString.working\n ? isSharedArrayBufferToString(value)\n : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return (\n isNumberObject(value) ||\n isStringObject(value) ||\n isBooleanObject(value) ||\n isBigIntObject(value) ||\n isSymbolObject(value)\n );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (\n isArrayBuffer(value) ||\n isSharedArrayBuffer(value)\n );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + ' is not supported in userland');\n }\n });\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n .replace(/\\*/g, '.*')\n .replace(/,/g, '$|^')\n .toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').slice(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.slice(1, -1);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","var indexOf = function (xs, item) {\n if (xs.indexOf) return xs.indexOf(item);\n else for (var i = 0; i < xs.length; i++) {\n if (xs[i] === item) return i;\n }\n return -1;\n};\nvar Object_keys = function (obj) {\n if (Object.keys) return Object.keys(obj)\n else {\n var res = [];\n for (var key in obj) res.push(key)\n return res;\n }\n};\n\nvar forEach = function (xs, fn) {\n if (xs.forEach) return xs.forEach(fn)\n else for (var i = 0; i < xs.length; i++) {\n fn(xs[i], i, xs);\n }\n};\n\nvar defineProp = (function() {\n try {\n Object.defineProperty({}, '_', {});\n return function(obj, name, value) {\n Object.defineProperty(obj, name, {\n writable: true,\n enumerable: false,\n configurable: true,\n value: value\n })\n };\n } catch(e) {\n return function(obj, name, value) {\n obj[name] = value;\n };\n }\n}());\n\nvar globals = ['Array', 'Boolean', 'Date', 'Error', 'EvalError', 'Function',\n'Infinity', 'JSON', 'Math', 'NaN', 'Number', 'Object', 'RangeError',\n'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError',\n'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', 'escape',\n'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'undefined', 'unescape'];\n\nfunction Context() {}\nContext.prototype = {};\n\nvar Script = exports.Script = function NodeScript (code) {\n if (!(this instanceof Script)) return new Script(code);\n this.code = code;\n};\n\nScript.prototype.runInContext = function (context) {\n if (!(context instanceof Context)) {\n throw new TypeError(\"needs a 'context' argument.\");\n }\n \n var iframe = document.createElement('iframe');\n if (!iframe.style) iframe.style = {};\n iframe.style.display = 'none';\n \n document.body.appendChild(iframe);\n \n var win = iframe.contentWindow;\n var wEval = win.eval, wExecScript = win.execScript;\n\n if (!wEval && wExecScript) {\n // win.eval() magically appears when this is called in IE:\n wExecScript.call(win, 'null');\n wEval = win.eval;\n }\n \n forEach(Object_keys(context), function (key) {\n win[key] = context[key];\n });\n forEach(globals, function (key) {\n if (context[key]) {\n win[key] = context[key];\n }\n });\n \n var winKeys = Object_keys(win);\n\n var res = wEval.call(win, this.code);\n \n forEach(Object_keys(win), function (key) {\n // Avoid copying circular objects like `top` and `window` by only\n // updating existing context properties or new properties in the `win`\n // that was only introduced after the eval.\n if (key in context || indexOf(winKeys, key) === -1) {\n context[key] = win[key];\n }\n });\n\n forEach(globals, function (key) {\n if (!(key in context)) {\n defineProp(context, key, win[key]);\n }\n });\n \n document.body.removeChild(iframe);\n \n return res;\n};\n\nScript.prototype.runInThisContext = function () {\n return eval(this.code); // maybe...\n};\n\nScript.prototype.runInNewContext = function (context) {\n var ctx = Script.createContext(context);\n var res = this.runInContext(ctx);\n\n if (context) {\n forEach(Object_keys(ctx), function (key) {\n context[key] = ctx[key];\n });\n }\n\n return res;\n};\n\nforEach(Object_keys(Script.prototype), function (name) {\n exports[name] = Script[name] = function (code) {\n var s = Script(code);\n return s[name].apply(s, [].slice.call(arguments, 1));\n };\n});\n\nexports.isContext = function (context) {\n return context instanceof Context;\n};\n\nexports.createScript = function (code) {\n return exports.Script(code);\n};\n\nexports.createContext = Script.createContext = function (context) {\n var copy = new Context();\n if(typeof context === 'object') {\n forEach(Object_keys(context), function (key) {\n copy[key] = context[key];\n });\n }\n return copy;\n};\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBind = require('call-bind');\nvar callBound = require('call-bound');\nvar gOPD = require('gopd');\nvar getProto = require('get-proto');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\n\n/** @type {(array: readonly T[], value: unknown) => number} */\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\n/** @typedef {import('./types').Getter} Getter */\n/** @type {import('./types').Cache} */\nvar cache = { __proto__: null };\nif (hasToStringTag && gOPD && getProto) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr && getProto) {\n\t\t\tvar proto = getProto(arr);\n\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor && proto) {\n\t\t\t\tvar superProto = getProto(proto);\n\t\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(descriptor.get);\n\t\t}\n\t});\n} else {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tvar fn = arr.slice || arr.set;\n\t\tif (fn) {\n\t\t\tcache[\n\t\t\t\t/** @type {`$${import('.').TypedArrayName}`} */ ('$' + typedArray)\n\t\t\t] = /** @type {import('./types').BoundSlice | import('./types').BoundSet} */ (\n\t\t\t\t// @ts-expect-error TODO FIXME\n\t\t\t\tcallBind(fn)\n\t\t\t);\n\t\t}\n\t});\n}\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t/** @type {Record<`\\$${import('.').TypedArrayName}`, Getter>} */ (cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */\n\t\tfunction (getter, typedArray) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error a throw is fine here\n\t\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\t\tfound = /** @type {import('.').TypedArrayName} */ ($slice(typedArray, 1));\n\t\t\t\t\t}\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar trySlices = function tryAllSlices(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t/** @type {Record<`\\$${import('.').TypedArrayName}`, Getter>} */(cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */ function (getter, name) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error a throw is fine here\n\t\t\t\t\tgetter(value);\n\t\t\t\t\tfound = /** @type {import('.').TypedArrayName} */ ($slice(name, 1));\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {import('.')} */\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\t/** @type {string} */\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\tif ($indexOf(typedArrays, tag) > -1) {\n\t\t\treturn tag;\n\t\t}\n\t\tif (tag !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\t// node < 0.6 hits here on real Typed Arrays\n\t\treturn trySlices(value);\n\t}\n\tif (!gOPD) { return null; } // unknown engine\n\treturn tryTypedArrays(value);\n};\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NO_IL = exports.NO = exports.MemoryStream = exports.Stream = void 0;\nvar ponyfill_1 = require(\"symbol-observable/ponyfill\");\nvar globalthis_1 = require(\"globalthis\");\nvar $$observable = ponyfill_1.default(globalthis_1.getPolyfill());\nvar NO = {};\nexports.NO = NO;\nfunction noop() { }\nfunction cp(a) {\n var l = a.length;\n var b = Array(l);\n for (var i = 0; i < l; ++i)\n b[i] = a[i];\n return b;\n}\nfunction and(f1, f2) {\n return function andFn(t) {\n return f1(t) && f2(t);\n };\n}\nfunction _try(c, t, u) {\n try {\n return c.f(t);\n }\n catch (e) {\n u._e(e);\n return NO;\n }\n}\nvar NO_IL = {\n _n: noop,\n _e: noop,\n _c: noop,\n};\nexports.NO_IL = NO_IL;\n// mutates the input\nfunction internalizeProducer(producer) {\n producer._start = function _start(il) {\n il.next = il._n;\n il.error = il._e;\n il.complete = il._c;\n this.start(il);\n };\n producer._stop = producer.stop;\n}\nvar StreamSub = /** @class */ (function () {\n function StreamSub(_stream, _listener) {\n this._stream = _stream;\n this._listener = _listener;\n }\n StreamSub.prototype.unsubscribe = function () {\n this._stream._remove(this._listener);\n };\n return StreamSub;\n}());\nvar Observer = /** @class */ (function () {\n function Observer(_listener) {\n this._listener = _listener;\n }\n Observer.prototype.next = function (value) {\n this._listener._n(value);\n };\n Observer.prototype.error = function (err) {\n this._listener._e(err);\n };\n Observer.prototype.complete = function () {\n this._listener._c();\n };\n return Observer;\n}());\nvar FromObservable = /** @class */ (function () {\n function FromObservable(observable) {\n this.type = 'fromObservable';\n this.ins = observable;\n this.active = false;\n }\n FromObservable.prototype._start = function (out) {\n this.out = out;\n this.active = true;\n this._sub = this.ins.subscribe(new Observer(out));\n if (!this.active)\n this._sub.unsubscribe();\n };\n FromObservable.prototype._stop = function () {\n if (this._sub)\n this._sub.unsubscribe();\n this.active = false;\n };\n return FromObservable;\n}());\nvar Merge = /** @class */ (function () {\n function Merge(insArr) {\n this.type = 'merge';\n this.insArr = insArr;\n this.out = NO;\n this.ac = 0;\n }\n Merge.prototype._start = function (out) {\n this.out = out;\n var s = this.insArr;\n var L = s.length;\n this.ac = L;\n for (var i = 0; i < L; i++)\n s[i]._add(this);\n };\n Merge.prototype._stop = function () {\n var s = this.insArr;\n var L = s.length;\n for (var i = 0; i < L; i++)\n s[i]._remove(this);\n this.out = NO;\n };\n Merge.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n u._n(t);\n };\n Merge.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Merge.prototype._c = function () {\n if (--this.ac <= 0) {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n }\n };\n return Merge;\n}());\nvar CombineListener = /** @class */ (function () {\n function CombineListener(i, out, p) {\n this.i = i;\n this.out = out;\n this.p = p;\n p.ils.push(this);\n }\n CombineListener.prototype._n = function (t) {\n var p = this.p, out = this.out;\n if (out === NO)\n return;\n if (p.up(t, this.i)) {\n var b = cp(p.vals);\n out._n(b);\n }\n };\n CombineListener.prototype._e = function (err) {\n var out = this.out;\n if (out === NO)\n return;\n out._e(err);\n };\n CombineListener.prototype._c = function () {\n var p = this.p;\n if (p.out === NO)\n return;\n if (--p.Nc === 0)\n p.out._c();\n };\n return CombineListener;\n}());\nvar Combine = /** @class */ (function () {\n function Combine(insArr) {\n this.type = 'combine';\n this.insArr = insArr;\n this.out = NO;\n this.ils = [];\n this.Nc = this.Nn = 0;\n this.vals = [];\n }\n Combine.prototype.up = function (t, i) {\n var v = this.vals[i];\n var Nn = !this.Nn ? 0 : v === NO ? --this.Nn : this.Nn;\n this.vals[i] = t;\n return Nn === 0;\n };\n Combine.prototype._start = function (out) {\n this.out = out;\n var s = this.insArr;\n var n = this.Nc = this.Nn = s.length;\n var vals = this.vals = new Array(n);\n if (n === 0) {\n out._n([]);\n out._c();\n }\n else {\n for (var i = 0; i < n; i++) {\n vals[i] = NO;\n s[i]._add(new CombineListener(i, out, this));\n }\n }\n };\n Combine.prototype._stop = function () {\n var s = this.insArr;\n var n = s.length;\n var ils = this.ils;\n for (var i = 0; i < n; i++)\n s[i]._remove(ils[i]);\n this.out = NO;\n this.ils = [];\n this.vals = [];\n };\n return Combine;\n}());\nvar FromArray = /** @class */ (function () {\n function FromArray(a) {\n this.type = 'fromArray';\n this.a = a;\n }\n FromArray.prototype._start = function (out) {\n var a = this.a;\n for (var i = 0, n = a.length; i < n; i++)\n out._n(a[i]);\n out._c();\n };\n FromArray.prototype._stop = function () {\n };\n return FromArray;\n}());\nvar FromPromise = /** @class */ (function () {\n function FromPromise(p) {\n this.type = 'fromPromise';\n this.on = false;\n this.p = p;\n }\n FromPromise.prototype._start = function (out) {\n var prod = this;\n this.on = true;\n this.p.then(function (v) {\n if (prod.on) {\n out._n(v);\n out._c();\n }\n }, function (e) {\n out._e(e);\n }).then(noop, function (err) {\n setTimeout(function () { throw err; });\n });\n };\n FromPromise.prototype._stop = function () {\n this.on = false;\n };\n return FromPromise;\n}());\nvar Periodic = /** @class */ (function () {\n function Periodic(period) {\n this.type = 'periodic';\n this.period = period;\n this.intervalID = -1;\n this.i = 0;\n }\n Periodic.prototype._start = function (out) {\n var self = this;\n function intervalHandler() { out._n(self.i++); }\n this.intervalID = setInterval(intervalHandler, this.period);\n };\n Periodic.prototype._stop = function () {\n if (this.intervalID !== -1)\n clearInterval(this.intervalID);\n this.intervalID = -1;\n this.i = 0;\n };\n return Periodic;\n}());\nvar Debug = /** @class */ (function () {\n function Debug(ins, arg) {\n this.type = 'debug';\n this.ins = ins;\n this.out = NO;\n this.s = noop;\n this.l = '';\n if (typeof arg === 'string')\n this.l = arg;\n else if (typeof arg === 'function')\n this.s = arg;\n }\n Debug.prototype._start = function (out) {\n this.out = out;\n this.ins._add(this);\n };\n Debug.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n Debug.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n var s = this.s, l = this.l;\n if (s !== noop) {\n try {\n s(t);\n }\n catch (e) {\n u._e(e);\n }\n }\n else if (l)\n console.log(l + ':', t);\n else\n console.log(t);\n u._n(t);\n };\n Debug.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Debug.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return Debug;\n}());\nvar Drop = /** @class */ (function () {\n function Drop(max, ins) {\n this.type = 'drop';\n this.ins = ins;\n this.out = NO;\n this.max = max;\n this.dropped = 0;\n }\n Drop.prototype._start = function (out) {\n this.out = out;\n this.dropped = 0;\n this.ins._add(this);\n };\n Drop.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n Drop.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n if (this.dropped++ >= this.max)\n u._n(t);\n };\n Drop.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Drop.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return Drop;\n}());\nvar EndWhenListener = /** @class */ (function () {\n function EndWhenListener(out, op) {\n this.out = out;\n this.op = op;\n }\n EndWhenListener.prototype._n = function () {\n this.op.end();\n };\n EndWhenListener.prototype._e = function (err) {\n this.out._e(err);\n };\n EndWhenListener.prototype._c = function () {\n this.op.end();\n };\n return EndWhenListener;\n}());\nvar EndWhen = /** @class */ (function () {\n function EndWhen(o, ins) {\n this.type = 'endWhen';\n this.ins = ins;\n this.out = NO;\n this.o = o;\n this.oil = NO_IL;\n }\n EndWhen.prototype._start = function (out) {\n this.out = out;\n this.o._add(this.oil = new EndWhenListener(out, this));\n this.ins._add(this);\n };\n EndWhen.prototype._stop = function () {\n this.ins._remove(this);\n this.o._remove(this.oil);\n this.out = NO;\n this.oil = NO_IL;\n };\n EndWhen.prototype.end = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n EndWhen.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n u._n(t);\n };\n EndWhen.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n EndWhen.prototype._c = function () {\n this.end();\n };\n return EndWhen;\n}());\nvar Filter = /** @class */ (function () {\n function Filter(passes, ins) {\n this.type = 'filter';\n this.ins = ins;\n this.out = NO;\n this.f = passes;\n }\n Filter.prototype._start = function (out) {\n this.out = out;\n this.ins._add(this);\n };\n Filter.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n Filter.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n var r = _try(this, t, u);\n if (r === NO || !r)\n return;\n u._n(t);\n };\n Filter.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Filter.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return Filter;\n}());\nvar FlattenListener = /** @class */ (function () {\n function FlattenListener(out, op) {\n this.out = out;\n this.op = op;\n }\n FlattenListener.prototype._n = function (t) {\n this.out._n(t);\n };\n FlattenListener.prototype._e = function (err) {\n this.out._e(err);\n };\n FlattenListener.prototype._c = function () {\n this.op.inner = NO;\n this.op.less();\n };\n return FlattenListener;\n}());\nvar Flatten = /** @class */ (function () {\n function Flatten(ins) {\n this.type = 'flatten';\n this.ins = ins;\n this.out = NO;\n this.open = true;\n this.inner = NO;\n this.il = NO_IL;\n }\n Flatten.prototype._start = function (out) {\n this.out = out;\n this.open = true;\n this.inner = NO;\n this.il = NO_IL;\n this.ins._add(this);\n };\n Flatten.prototype._stop = function () {\n this.ins._remove(this);\n if (this.inner !== NO)\n this.inner._remove(this.il);\n this.out = NO;\n this.open = true;\n this.inner = NO;\n this.il = NO_IL;\n };\n Flatten.prototype.less = function () {\n var u = this.out;\n if (u === NO)\n return;\n if (!this.open && this.inner === NO)\n u._c();\n };\n Flatten.prototype._n = function (s) {\n var u = this.out;\n if (u === NO)\n return;\n var _a = this, inner = _a.inner, il = _a.il;\n if (inner !== NO && il !== NO_IL)\n inner._remove(il);\n (this.inner = s)._add(this.il = new FlattenListener(u, this));\n };\n Flatten.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Flatten.prototype._c = function () {\n this.open = false;\n this.less();\n };\n return Flatten;\n}());\nvar Fold = /** @class */ (function () {\n function Fold(f, seed, ins) {\n var _this = this;\n this.type = 'fold';\n this.ins = ins;\n this.out = NO;\n this.f = function (t) { return f(_this.acc, t); };\n this.acc = this.seed = seed;\n }\n Fold.prototype._start = function (out) {\n this.out = out;\n this.acc = this.seed;\n out._n(this.acc);\n this.ins._add(this);\n };\n Fold.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n this.acc = this.seed;\n };\n Fold.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n var r = _try(this, t, u);\n if (r === NO)\n return;\n u._n(this.acc = r);\n };\n Fold.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Fold.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return Fold;\n}());\nvar Last = /** @class */ (function () {\n function Last(ins) {\n this.type = 'last';\n this.ins = ins;\n this.out = NO;\n this.has = false;\n this.val = NO;\n }\n Last.prototype._start = function (out) {\n this.out = out;\n this.has = false;\n this.ins._add(this);\n };\n Last.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n this.val = NO;\n };\n Last.prototype._n = function (t) {\n this.has = true;\n this.val = t;\n };\n Last.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Last.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n if (this.has) {\n u._n(this.val);\n u._c();\n }\n else\n u._e(new Error('last() failed because input stream completed'));\n };\n return Last;\n}());\nvar MapOp = /** @class */ (function () {\n function MapOp(project, ins) {\n this.type = 'map';\n this.ins = ins;\n this.out = NO;\n this.f = project;\n }\n MapOp.prototype._start = function (out) {\n this.out = out;\n this.ins._add(this);\n };\n MapOp.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n MapOp.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n var r = _try(this, t, u);\n if (r === NO)\n return;\n u._n(r);\n };\n MapOp.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n MapOp.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return MapOp;\n}());\nvar Remember = /** @class */ (function () {\n function Remember(ins) {\n this.type = 'remember';\n this.ins = ins;\n this.out = NO;\n }\n Remember.prototype._start = function (out) {\n this.out = out;\n this.ins._add(out);\n };\n Remember.prototype._stop = function () {\n this.ins._remove(this.out);\n this.out = NO;\n };\n return Remember;\n}());\nvar ReplaceError = /** @class */ (function () {\n function ReplaceError(replacer, ins) {\n this.type = 'replaceError';\n this.ins = ins;\n this.out = NO;\n this.f = replacer;\n }\n ReplaceError.prototype._start = function (out) {\n this.out = out;\n this.ins._add(this);\n };\n ReplaceError.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n ReplaceError.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n u._n(t);\n };\n ReplaceError.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n try {\n this.ins._remove(this);\n (this.ins = this.f(err))._add(this);\n }\n catch (e) {\n u._e(e);\n }\n };\n ReplaceError.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return ReplaceError;\n}());\nvar StartWith = /** @class */ (function () {\n function StartWith(ins, val) {\n this.type = 'startWith';\n this.ins = ins;\n this.out = NO;\n this.val = val;\n }\n StartWith.prototype._start = function (out) {\n this.out = out;\n this.out._n(this.val);\n this.ins._add(out);\n };\n StartWith.prototype._stop = function () {\n this.ins._remove(this.out);\n this.out = NO;\n };\n return StartWith;\n}());\nvar Take = /** @class */ (function () {\n function Take(max, ins) {\n this.type = 'take';\n this.ins = ins;\n this.out = NO;\n this.max = max;\n this.taken = 0;\n }\n Take.prototype._start = function (out) {\n this.out = out;\n this.taken = 0;\n if (this.max <= 0)\n out._c();\n else\n this.ins._add(this);\n };\n Take.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n Take.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n var m = ++this.taken;\n if (m < this.max)\n u._n(t);\n else if (m === this.max) {\n u._n(t);\n u._c();\n }\n };\n Take.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Take.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return Take;\n}());\nvar Stream = /** @class */ (function () {\n function Stream(producer) {\n this._prod = producer || NO;\n this._ils = [];\n this._stopID = NO;\n this._dl = NO;\n this._d = false;\n this._target = null;\n this._err = NO;\n }\n Stream.prototype._n = function (t) {\n var a = this._ils;\n var L = a.length;\n if (this._d)\n this._dl._n(t);\n if (L == 1)\n a[0]._n(t);\n else if (L == 0)\n return;\n else {\n var b = cp(a);\n for (var i = 0; i < L; i++)\n b[i]._n(t);\n }\n };\n Stream.prototype._e = function (err) {\n if (this._err !== NO)\n return;\n this._err = err;\n var a = this._ils;\n var L = a.length;\n this._x();\n if (this._d)\n this._dl._e(err);\n if (L == 1)\n a[0]._e(err);\n else if (L == 0)\n return;\n else {\n var b = cp(a);\n for (var i = 0; i < L; i++)\n b[i]._e(err);\n }\n if (!this._d && L == 0)\n throw this._err;\n };\n Stream.prototype._c = function () {\n var a = this._ils;\n var L = a.length;\n this._x();\n if (this._d)\n this._dl._c();\n if (L == 1)\n a[0]._c();\n else if (L == 0)\n return;\n else {\n var b = cp(a);\n for (var i = 0; i < L; i++)\n b[i]._c();\n }\n };\n Stream.prototype._x = function () {\n if (this._ils.length === 0)\n return;\n if (this._prod !== NO)\n this._prod._stop();\n this._err = NO;\n this._ils = [];\n };\n Stream.prototype._stopNow = function () {\n // WARNING: code that calls this method should\n // first check if this._prod is valid (not `NO`)\n this._prod._stop();\n this._err = NO;\n this._stopID = NO;\n };\n Stream.prototype._add = function (il) {\n var ta = this._target;\n if (ta)\n return ta._add(il);\n var a = this._ils;\n a.push(il);\n if (a.length > 1)\n return;\n if (this._stopID !== NO) {\n clearTimeout(this._stopID);\n this._stopID = NO;\n }\n else {\n var p = this._prod;\n if (p !== NO)\n p._start(this);\n }\n };\n Stream.prototype._remove = function (il) {\n var _this = this;\n var ta = this._target;\n if (ta)\n return ta._remove(il);\n var a = this._ils;\n var i = a.indexOf(il);\n if (i > -1) {\n a.splice(i, 1);\n if (this._prod !== NO && a.length <= 0) {\n this._err = NO;\n this._stopID = setTimeout(function () { return _this._stopNow(); });\n }\n else if (a.length === 1) {\n this._pruneCycles();\n }\n }\n };\n // If all paths stemming from `this` stream eventually end at `this`\n // stream, then we remove the single listener of `this` stream, to\n // force it to end its execution and dispose resources. This method\n // assumes as a precondition that this._ils has just one listener.\n Stream.prototype._pruneCycles = function () {\n if (this._hasNoSinks(this, []))\n this._remove(this._ils[0]);\n };\n // Checks whether *there is no* path starting from `x` that leads to an end\n // listener (sink) in the stream graph, following edges A->B where B is a\n // listener of A. This means these paths constitute a cycle somehow. Is given\n // a trace of all visited nodes so far.\n Stream.prototype._hasNoSinks = function (x, trace) {\n if (trace.indexOf(x) !== -1)\n return true;\n else if (x.out === this)\n return true;\n else if (x.out && x.out !== NO)\n return this._hasNoSinks(x.out, trace.concat(x));\n else if (x._ils) {\n for (var i = 0, N = x._ils.length; i < N; i++)\n if (!this._hasNoSinks(x._ils[i], trace.concat(x)))\n return false;\n return true;\n }\n else\n return false;\n };\n Stream.prototype.ctor = function () {\n return this instanceof MemoryStream ? MemoryStream : Stream;\n };\n /**\n * Adds a Listener to the Stream.\n *\n * @param {Listener} listener\n */\n Stream.prototype.addListener = function (listener) {\n listener._n = listener.next || noop;\n listener._e = listener.error || noop;\n listener._c = listener.complete || noop;\n this._add(listener);\n };\n /**\n * Removes a Listener from the Stream, assuming the Listener was added to it.\n *\n * @param {Listener} listener\n */\n Stream.prototype.removeListener = function (listener) {\n this._remove(listener);\n };\n /**\n * Adds a Listener to the Stream returning a Subscription to remove that\n * listener.\n *\n * @param {Listener} listener\n * @returns {Subscription}\n */\n Stream.prototype.subscribe = function (listener) {\n this.addListener(listener);\n return new StreamSub(this, listener);\n };\n /**\n * Add interop between most.js and RxJS 5\n *\n * @returns {Stream}\n */\n Stream.prototype[$$observable] = function () {\n return this;\n };\n /**\n * Creates a new Stream given a Producer.\n *\n * @factory true\n * @param {Producer} producer An optional Producer that dictates how to\n * start, generate events, and stop the Stream.\n * @return {Stream}\n */\n Stream.create = function (producer) {\n if (producer) {\n if (typeof producer.start !== 'function'\n || typeof producer.stop !== 'function')\n throw new Error('producer requires both start and stop functions');\n internalizeProducer(producer); // mutates the input\n }\n return new Stream(producer);\n };\n /**\n * Creates a new MemoryStream given a Producer.\n *\n * @factory true\n * @param {Producer} producer An optional Producer that dictates how to\n * start, generate events, and stop the Stream.\n * @return {MemoryStream}\n */\n Stream.createWithMemory = function (producer) {\n if (producer)\n internalizeProducer(producer); // mutates the input\n return new MemoryStream(producer);\n };\n /**\n * Creates a Stream that does nothing when started. It never emits any event.\n *\n * Marble diagram:\n *\n * ```text\n * never\n * -----------------------\n * ```\n *\n * @factory true\n * @return {Stream}\n */\n Stream.never = function () {\n return new Stream({ _start: noop, _stop: noop });\n };\n /**\n * Creates a Stream that immediately emits the \"complete\" notification when\n * started, and that's it.\n *\n * Marble diagram:\n *\n * ```text\n * empty\n * -|\n * ```\n *\n * @factory true\n * @return {Stream}\n */\n Stream.empty = function () {\n return new Stream({\n _start: function (il) { il._c(); },\n _stop: noop,\n });\n };\n /**\n * Creates a Stream that immediately emits an \"error\" notification with the\n * value you passed as the `error` argument when the stream starts, and that's\n * it.\n *\n * Marble diagram:\n *\n * ```text\n * throw(X)\n * -X\n * ```\n *\n * @factory true\n * @param error The error event to emit on the created stream.\n * @return {Stream}\n */\n Stream.throw = function (error) {\n return new Stream({\n _start: function (il) { il._e(error); },\n _stop: noop,\n });\n };\n /**\n * Creates a stream from an Array, Promise, or an Observable.\n *\n * @factory true\n * @param {Array|PromiseLike|Observable} input The input to make a stream from.\n * @return {Stream}\n */\n Stream.from = function (input) {\n if (typeof input[$$observable] === 'function')\n return Stream.fromObservable(input);\n else if (typeof input.then === 'function')\n return Stream.fromPromise(input);\n else if (Array.isArray(input))\n return Stream.fromArray(input);\n throw new TypeError(\"Type of input to from() must be an Array, Promise, or Observable\");\n };\n /**\n * Creates a Stream that immediately emits the arguments that you give to\n * *of*, then completes.\n *\n * Marble diagram:\n *\n * ```text\n * of(1,2,3)\n * 123|\n * ```\n *\n * @factory true\n * @param a The first value you want to emit as an event on the stream.\n * @param b The second value you want to emit as an event on the stream. One\n * or more of these values may be given as arguments.\n * @return {Stream}\n */\n Stream.of = function () {\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i] = arguments[_i];\n }\n return Stream.fromArray(items);\n };\n /**\n * Converts an array to a stream. The returned stream will emit synchronously\n * all the items in the array, and then complete.\n *\n * Marble diagram:\n *\n * ```text\n * fromArray([1,2,3])\n * 123|\n * ```\n *\n * @factory true\n * @param {Array} array The array to be converted as a stream.\n * @return {Stream}\n */\n Stream.fromArray = function (array) {\n return new Stream(new FromArray(array));\n };\n /**\n * Converts a promise to a stream. The returned stream will emit the resolved\n * value of the promise, and then complete. However, if the promise is\n * rejected, the stream will emit the corresponding error.\n *\n * Marble diagram:\n *\n * ```text\n * fromPromise( ----42 )\n * -----------------42|\n * ```\n *\n * @factory true\n * @param {PromiseLike} promise The promise to be converted as a stream.\n * @return {Stream}\n */\n Stream.fromPromise = function (promise) {\n return new Stream(new FromPromise(promise));\n };\n /**\n * Converts an Observable into a Stream.\n *\n * @factory true\n * @param {any} observable The observable to be converted as a stream.\n * @return {Stream}\n */\n Stream.fromObservable = function (obs) {\n if (obs.endWhen !== undefined)\n return obs;\n var o = typeof obs[$$observable] === 'function' ? obs[$$observable]() : obs;\n return new Stream(new FromObservable(o));\n };\n /**\n * Creates a stream that periodically emits incremental numbers, every\n * `period` milliseconds.\n *\n * Marble diagram:\n *\n * ```text\n * periodic(1000)\n * ---0---1---2---3---4---...\n * ```\n *\n * @factory true\n * @param {number} period The interval in milliseconds to use as a rate of\n * emission.\n * @return {Stream}\n */\n Stream.periodic = function (period) {\n return new Stream(new Periodic(period));\n };\n Stream.prototype._map = function (project) {\n return new (this.ctor())(new MapOp(project, this));\n };\n /**\n * Transforms each event from the input Stream through a `project` function,\n * to get a Stream that emits those transformed events.\n *\n * Marble diagram:\n *\n * ```text\n * --1---3--5-----7------\n * map(i => i * 10)\n * --10--30-50----70-----\n * ```\n *\n * @param {Function} project A function of type `(t: T) => U` that takes event\n * `t` of type `T` from the input Stream and produces an event of type `U`, to\n * be emitted on the output Stream.\n * @return {Stream}\n */\n Stream.prototype.map = function (project) {\n return this._map(project);\n };\n /**\n * It's like `map`, but transforms each input event to always the same\n * constant value on the output Stream.\n *\n * Marble diagram:\n *\n * ```text\n * --1---3--5-----7-----\n * mapTo(10)\n * --10--10-10----10----\n * ```\n *\n * @param projectedValue A value to emit on the output Stream whenever the\n * input Stream emits any value.\n * @return {Stream}\n */\n Stream.prototype.mapTo = function (projectedValue) {\n var s = this.map(function () { return projectedValue; });\n var op = s._prod;\n op.type = 'mapTo';\n return s;\n };\n /**\n * Only allows events that pass the test given by the `passes` argument.\n *\n * Each event from the input stream is given to the `passes` function. If the\n * function returns `true`, the event is forwarded to the output stream,\n * otherwise it is ignored and not forwarded.\n *\n * Marble diagram:\n *\n * ```text\n * --1---2--3-----4-----5---6--7-8--\n * filter(i => i % 2 === 0)\n * ------2--------4---------6----8--\n * ```\n *\n * @param {Function} passes A function of type `(t: T) => boolean` that takes\n * an event from the input stream and checks if it passes, by returning a\n * boolean.\n * @return {Stream}\n */\n Stream.prototype.filter = function (passes) {\n var p = this._prod;\n if (p instanceof Filter)\n return new Stream(new Filter(and(p.f, passes), p.ins));\n return new Stream(new Filter(passes, this));\n };\n /**\n * Lets the first `amount` many events from the input stream pass to the\n * output stream, then makes the output stream complete.\n *\n * Marble diagram:\n *\n * ```text\n * --a---b--c----d---e--\n * take(3)\n * --a---b--c|\n * ```\n *\n * @param {number} amount How many events to allow from the input stream\n * before completing the output stream.\n * @return {Stream}\n */\n Stream.prototype.take = function (amount) {\n return new (this.ctor())(new Take(amount, this));\n };\n /**\n * Ignores the first `amount` many events from the input stream, and then\n * after that starts forwarding events from the input stream to the output\n * stream.\n *\n * Marble diagram:\n *\n * ```text\n * --a---b--c----d---e--\n * drop(3)\n * --------------d---e--\n * ```\n *\n * @param {number} amount How many events to ignore from the input stream\n * before forwarding all events from the input stream to the output stream.\n * @return {Stream}\n */\n Stream.prototype.drop = function (amount) {\n return new Stream(new Drop(amount, this));\n };\n /**\n * When the input stream completes, the output stream will emit the last event\n * emitted by the input stream, and then will also complete.\n *\n * Marble diagram:\n *\n * ```text\n * --a---b--c--d----|\n * last()\n * -----------------d|\n * ```\n *\n * @return {Stream}\n */\n Stream.prototype.last = function () {\n return new Stream(new Last(this));\n };\n /**\n * Prepends the given `initial` value to the sequence of events emitted by the\n * input stream. The returned stream is a MemoryStream, which means it is\n * already `remember()`'d.\n *\n * Marble diagram:\n *\n * ```text\n * ---1---2-----3---\n * startWith(0)\n * 0--1---2-----3---\n * ```\n *\n * @param initial The value or event to prepend.\n * @return {MemoryStream}\n */\n Stream.prototype.startWith = function (initial) {\n return new MemoryStream(new StartWith(this, initial));\n };\n /**\n * Uses another stream to determine when to complete the current stream.\n *\n * When the given `other` stream emits an event or completes, the output\n * stream will complete. Before that happens, the output stream will behaves\n * like the input stream.\n *\n * Marble diagram:\n *\n * ```text\n * ---1---2-----3--4----5----6---\n * endWhen( --------a--b--| )\n * ---1---2-----3--4--|\n * ```\n *\n * @param other Some other stream that is used to know when should the output\n * stream of this operator complete.\n * @return {Stream}\n */\n Stream.prototype.endWhen = function (other) {\n return new (this.ctor())(new EndWhen(other, this));\n };\n /**\n * \"Folds\" the stream onto itself.\n *\n * Combines events from the past throughout\n * the entire execution of the input stream, allowing you to accumulate them\n * together. It's essentially like `Array.prototype.reduce`. The returned\n * stream is a MemoryStream, which means it is already `remember()`'d.\n *\n * The output stream starts by emitting the `seed` which you give as argument.\n * Then, when an event happens on the input stream, it is combined with that\n * seed value through the `accumulate` function, and the output value is\n * emitted on the output stream. `fold` remembers that output value as `acc`\n * (\"accumulator\"), and then when a new input event `t` happens, `acc` will be\n * combined with that to produce the new `acc` and so forth.\n *\n * Marble diagram:\n *\n * ```text\n * ------1-----1--2----1----1------\n * fold((acc, x) => acc + x, 3)\n * 3-----4-----5--7----8----9------\n * ```\n *\n * @param {Function} accumulate A function of type `(acc: R, t: T) => R` that\n * takes the previous accumulated value `acc` and the incoming event from the\n * input stream and produces the new accumulated value.\n * @param seed The initial accumulated value, of type `R`.\n * @return {MemoryStream}\n */\n Stream.prototype.fold = function (accumulate, seed) {\n return new MemoryStream(new Fold(accumulate, seed, this));\n };\n /**\n * Replaces an error with another stream.\n *\n * When (and if) an error happens on the input stream, instead of forwarding\n * that error to the output stream, *replaceError* will call the `replace`\n * function which returns the stream that the output stream will replicate.\n * And, in case that new stream also emits an error, `replace` will be called\n * again to get another stream to start replicating.\n *\n * Marble diagram:\n *\n * ```text\n * --1---2-----3--4-----X\n * replaceError( () => --10--| )\n * --1---2-----3--4--------10--|\n * ```\n *\n * @param {Function} replace A function of type `(err) => Stream` that takes\n * the error that occurred on the input stream or on the previous replacement\n * stream and returns a new stream. The output stream will behave like the\n * stream that this function returns.\n * @return {Stream}\n */\n Stream.prototype.replaceError = function (replace) {\n return new (this.ctor())(new ReplaceError(replace, this));\n };\n /**\n * Flattens a \"stream of streams\", handling only one nested stream at a time\n * (no concurrency).\n *\n * If the input stream is a stream that emits streams, then this operator will\n * return an output stream which is a flat stream: emits regular events. The\n * flattening happens without concurrency. It works like this: when the input\n * stream emits a nested stream, *flatten* will start imitating that nested\n * one. However, as soon as the next nested stream is emitted on the input\n * stream, *flatten* will forget the previous nested one it was imitating, and\n * will start imitating the new nested one.\n *\n * Marble diagram:\n *\n * ```text\n * --+--------+---------------\n * \\ \\\n * \\ ----1----2---3--\n * --a--b----c----d--------\n * flatten\n * -----a--b------1----2---3--\n * ```\n *\n * @return {Stream}\n */\n Stream.prototype.flatten = function () {\n return new Stream(new Flatten(this));\n };\n /**\n * Passes the input stream to a custom operator, to produce an output stream.\n *\n * *compose* is a handy way of using an existing function in a chained style.\n * Instead of writing `outStream = f(inStream)` you can write\n * `outStream = inStream.compose(f)`.\n *\n * @param {function} operator A function that takes a stream as input and\n * returns a stream as well.\n * @return {Stream}\n */\n Stream.prototype.compose = function (operator) {\n return operator(this);\n };\n /**\n * Returns an output stream that behaves like the input stream, but also\n * remembers the most recent event that happens on the input stream, so that a\n * newly added listener will immediately receive that memorised event.\n *\n * @return {MemoryStream}\n */\n Stream.prototype.remember = function () {\n return new MemoryStream(new Remember(this));\n };\n /**\n * Returns an output stream that identically behaves like the input stream,\n * but also runs a `spy` function for each event, to help you debug your app.\n *\n * *debug* takes a `spy` function as argument, and runs that for each event\n * happening on the input stream. If you don't provide the `spy` argument,\n * then *debug* will just `console.log` each event. This helps you to\n * understand the flow of events through some operator chain.\n *\n * Please note that if the output stream has no listeners, then it will not\n * start, which means `spy` will never run because no actual event happens in\n * that case.\n *\n * Marble diagram:\n *\n * ```text\n * --1----2-----3-----4--\n * debug\n * --1----2-----3-----4--\n * ```\n *\n * @param {function} labelOrSpy A string to use as the label when printing\n * debug information on the console, or a 'spy' function that takes an event\n * as argument, and does not need to return anything.\n * @return {Stream}\n */\n Stream.prototype.debug = function (labelOrSpy) {\n return new (this.ctor())(new Debug(this, labelOrSpy));\n };\n /**\n * *imitate* changes this current Stream to emit the same events that the\n * `other` given Stream does. This method returns nothing.\n *\n * This method exists to allow one thing: **circular dependency of streams**.\n * For instance, let's imagine that for some reason you need to create a\n * circular dependency where stream `first$` depends on stream `second$`\n * which in turn depends on `first$`:\n *\n * \n * ```js\n * import delay from 'xstream/extra/delay'\n *\n * var first$ = second$.map(x => x * 10).take(3);\n * var second$ = first$.map(x => x + 1).startWith(1).compose(delay(100));\n * ```\n *\n * However, that is invalid JavaScript, because `second$` is undefined\n * on the first line. This is how *imitate* can help solve it:\n *\n * ```js\n * import delay from 'xstream/extra/delay'\n *\n * var secondProxy$ = xs.create();\n * var first$ = secondProxy$.map(x => x * 10).take(3);\n * var second$ = first$.map(x => x + 1).startWith(1).compose(delay(100));\n * secondProxy$.imitate(second$);\n * ```\n *\n * We create `secondProxy$` before the others, so it can be used in the\n * declaration of `first$`. Then, after both `first$` and `second$` are\n * defined, we hook `secondProxy$` with `second$` with `imitate()` to tell\n * that they are \"the same\". `imitate` will not trigger the start of any\n * stream, it just binds `secondProxy$` and `second$` together.\n *\n * The following is an example where `imitate()` is important in Cycle.js\n * applications. A parent component contains some child components. A child\n * has an action stream which is given to the parent to define its state:\n *\n * \n * ```js\n * const childActionProxy$ = xs.create();\n * const parent = Parent({...sources, childAction$: childActionProxy$});\n * const childAction$ = parent.state$.map(s => s.child.action$).flatten();\n * childActionProxy$.imitate(childAction$);\n * ```\n *\n * Note, though, that **`imitate()` does not support MemoryStreams**. If we\n * would attempt to imitate a MemoryStream in a circular dependency, we would\n * either get a race condition (where the symptom would be \"nothing happens\")\n * or an infinite cyclic emission of values. It's useful to think about\n * MemoryStreams as cells in a spreadsheet. It doesn't make any sense to\n * define a spreadsheet cell `A1` with a formula that depends on `B1` and\n * cell `B1` defined with a formula that depends on `A1`.\n *\n * If you find yourself wanting to use `imitate()` with a\n * MemoryStream, you should rework your code around `imitate()` to use a\n * Stream instead. Look for the stream in the circular dependency that\n * represents an event stream, and that would be a candidate for creating a\n * proxy Stream which then imitates the target Stream.\n *\n * @param {Stream} target The other stream to imitate on the current one. Must\n * not be a MemoryStream.\n */\n Stream.prototype.imitate = function (target) {\n if (target instanceof MemoryStream)\n throw new Error('A MemoryStream was given to imitate(), but it only ' +\n 'supports a Stream. Read more about this restriction here: ' +\n 'https://github.com/staltz/xstream#faq');\n this._target = target;\n for (var ils = this._ils, N = ils.length, i = 0; i < N; i++)\n target._add(ils[i]);\n this._ils = [];\n };\n /**\n * Forces the Stream to emit the given value to its listeners.\n *\n * As the name indicates, if you use this, you are most likely doing something\n * The Wrong Way. Please try to understand the reactive way before using this\n * method. Use it only when you know what you are doing.\n *\n * @param value The \"next\" value you want to broadcast to all listeners of\n * this Stream.\n */\n Stream.prototype.shamefullySendNext = function (value) {\n this._n(value);\n };\n /**\n * Forces the Stream to emit the given error to its listeners.\n *\n * As the name indicates, if you use this, you are most likely doing something\n * The Wrong Way. Please try to understand the reactive way before using this\n * method. Use it only when you know what you are doing.\n *\n * @param {any} error The error you want to broadcast to all the listeners of\n * this Stream.\n */\n Stream.prototype.shamefullySendError = function (error) {\n this._e(error);\n };\n /**\n * Forces the Stream to emit the \"completed\" event to its listeners.\n *\n * As the name indicates, if you use this, you are most likely doing something\n * The Wrong Way. Please try to understand the reactive way before using this\n * method. Use it only when you know what you are doing.\n */\n Stream.prototype.shamefullySendComplete = function () {\n this._c();\n };\n /**\n * Adds a \"debug\" listener to the stream. There can only be one debug\n * listener, that's why this is 'setDebugListener'. To remove the debug\n * listener, just call setDebugListener(null).\n *\n * A debug listener is like any other listener. The only difference is that a\n * debug listener is \"stealthy\": its presence/absence does not trigger the\n * start/stop of the stream (or the producer inside the stream). This is\n * useful so you can inspect what is going on without changing the behavior\n * of the program. If you have an idle stream and you add a normal listener to\n * it, the stream will start executing. But if you set a debug listener on an\n * idle stream, it won't start executing (not until the first normal listener\n * is added).\n *\n * As the name indicates, we don't recommend using this method to build app\n * logic. In fact, in most cases the debug operator works just fine. Only use\n * this one if you know what you're doing.\n *\n * @param {Listener} listener\n */\n Stream.prototype.setDebugListener = function (listener) {\n if (!listener) {\n this._d = false;\n this._dl = NO;\n }\n else {\n this._d = true;\n listener._n = listener.next || noop;\n listener._e = listener.error || noop;\n listener._c = listener.complete || noop;\n this._dl = listener;\n }\n };\n /**\n * Blends multiple streams together, emitting events from all of them\n * concurrently.\n *\n * *merge* takes multiple streams as arguments, and creates a stream that\n * behaves like each of the argument streams, in parallel.\n *\n * Marble diagram:\n *\n * ```text\n * --1----2-----3--------4---\n * ----a-----b----c---d------\n * merge\n * --1-a--2--b--3-c---d--4---\n * ```\n *\n * @factory true\n * @param {Stream} stream1 A stream to merge together with other streams.\n * @param {Stream} stream2 A stream to merge together with other streams. Two\n * or more streams may be given as arguments.\n * @return {Stream}\n */\n Stream.merge = function merge() {\n var streams = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n streams[_i] = arguments[_i];\n }\n return new Stream(new Merge(streams));\n };\n /**\n * Combines multiple input streams together to return a stream whose events\n * are arrays that collect the latest events from each input stream.\n *\n * *combine* internally remembers the most recent event from each of the input\n * streams. When any of the input streams emits an event, that event together\n * with all the other saved events are combined into an array. That array will\n * be emitted on the output stream. It's essentially a way of joining together\n * the events from multiple streams.\n *\n * Marble diagram:\n *\n * ```text\n * --1----2-----3--------4---\n * ----a-----b-----c--d------\n * combine\n * ----1a-2a-2b-3b-3c-3d-4d--\n * ```\n *\n * @factory true\n * @param {Stream} stream1 A stream to combine together with other streams.\n * @param {Stream} stream2 A stream to combine together with other streams.\n * Multiple streams, not just two, may be given as arguments.\n * @return {Stream}\n */\n Stream.combine = function combine() {\n var streams = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n streams[_i] = arguments[_i];\n }\n return new Stream(new Combine(streams));\n };\n return Stream;\n}());\nexports.Stream = Stream;\nvar MemoryStream = /** @class */ (function (_super) {\n __extends(MemoryStream, _super);\n function MemoryStream(producer) {\n var _this = _super.call(this, producer) || this;\n _this._has = false;\n return _this;\n }\n MemoryStream.prototype._n = function (x) {\n this._v = x;\n this._has = true;\n _super.prototype._n.call(this, x);\n };\n MemoryStream.prototype._add = function (il) {\n var ta = this._target;\n if (ta)\n return ta._add(il);\n var a = this._ils;\n a.push(il);\n if (a.length > 1) {\n if (this._has)\n il._n(this._v);\n return;\n }\n if (this._stopID !== NO) {\n if (this._has)\n il._n(this._v);\n clearTimeout(this._stopID);\n this._stopID = NO;\n }\n else if (this._has)\n il._n(this._v);\n else {\n var p = this._prod;\n if (p !== NO)\n p._start(this);\n }\n };\n MemoryStream.prototype._stopNow = function () {\n this._has = false;\n _super.prototype._stopNow.call(this);\n };\n MemoryStream.prototype._x = function () {\n this._has = false;\n _super.prototype._x.call(this);\n };\n MemoryStream.prototype.map = function (project) {\n return this._map(project);\n };\n MemoryStream.prototype.mapTo = function (projectedValue) {\n return _super.prototype.mapTo.call(this, projectedValue);\n };\n MemoryStream.prototype.take = function (amount) {\n return _super.prototype.take.call(this, amount);\n };\n MemoryStream.prototype.endWhen = function (other) {\n return _super.prototype.endWhen.call(this, other);\n };\n MemoryStream.prototype.replaceError = function (replace) {\n return _super.prototype.replaceError.call(this, replace);\n };\n MemoryStream.prototype.remember = function () {\n return this;\n };\n MemoryStream.prototype.debug = function (labelOrSpy) {\n return _super.prototype.debug.call(this, labelOrSpy);\n };\n return MemoryStream;\n}(Stream));\nexports.MemoryStream = MemoryStream;\nvar xs = Stream;\nexports.default = xs;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVEQUFrRTtBQUNsRSx5Q0FBMEQ7QUFFMUQsSUFBTSxZQUFZLEdBQUcsa0JBQXdCLENBQUMsd0JBQWEsRUFBRSxDQUFDLENBQUM7QUFFL0QsSUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBOC9ETCxnQkFBRTtBQTcvRFgsU0FBUyxJQUFJLEtBQUssQ0FBQztBQUVuQixTQUFTLEVBQUUsQ0FBSSxDQUFXO0lBQ3hCLElBQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDbkIsSUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRCxTQUFTLEdBQUcsQ0FBSSxFQUFxQixFQUFFLEVBQXFCO0lBQzFELE9BQU8sU0FBUyxLQUFLLENBQUMsQ0FBSTtRQUN4QixPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQU1ELFNBQVMsSUFBSSxDQUFPLENBQW1CLEVBQUUsQ0FBSSxFQUFFLENBQWM7SUFDM0QsSUFBSTtRQUNGLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNmO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1IsT0FBTyxFQUFFLENBQUM7S0FDWDtBQUNILENBQUM7QUFRRCxJQUFNLEtBQUss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TCxVQUFNLFVBQWlEO1FBQ3JELE9BQU8saUJBQU0sS0FBSyxZQUFDLFVBQWlCLENBQW9CLENBQUM7SUFDM0QsQ0FBQztJQUNILG1CQUFDO0FBQUQsQ0FBQyxBQXhFRCxDQUFxQyxNQUFNLEdBd0UxQztBQXhFWSxvQ0FBWTtBQTJFekIsSUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDO0FBRWxCLGtCQUFlLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwb255ZmlsbFN5bWJvbE9ic2VydmFibGUgZnJvbSAnc3ltYm9sLW9ic2VydmFibGUvcG9ueWZpbGwnO1xuaW1wb3J0IHsgZ2V0UG9seWZpbGwgYXMgZ2V0R2xvYmFsVGhpcyB9IGZyb20gJ2dsb2JhbHRoaXMnO1xuXG5jb25zdCAkJG9ic2VydmFibGUgPSBwb255ZmlsbFN5bWJvbE9ic2VydmFibGUoZ2V0R2xvYmFsVGhpcygpKTtcblxuY29uc3QgTk8gPSB7fTtcbmZ1bmN0aW9uIG5vb3AoKSB7IH1cblxuZnVuY3Rpb24gY3A8VD4oYTogQXJyYXk8VD4pOiBBcnJheTxUPiB7XG4gIGNvbnN0IGwgPSBhLmxlbmd0aDtcbiAgY29uc3QgYiA9IEFycmF5KGwpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGw7ICsraSkgYltpXSA9IGFbaV07XG4gIHJldHVybiBiO1xufVxuXG5mdW5jdGlvbiBhbmQ8VD4oZjE6ICh0OiBUKSA9PiBib29sZWFuLCBmMjogKHQ6IFQpID0+IGJvb2xlYW4pOiAodDogVCkgPT4gYm9vbGVhbiB7XG4gIHJldHVybiBmdW5jdGlvbiBhbmRGbih0OiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGYxKHQpICYmIGYyKHQpO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgRkNvbnRhaW5lcjxULCBSPiB7XG4gIGYodDogVCk6IFI7XG59XG5cbmZ1bmN0aW9uIF90cnk8VCwgUj4oYzogRkNvbnRhaW5lcjxULCBSPiwgdDogVCwgdTogU3RyZWFtPGFueT4pOiBSIHwge30ge1xuICB0cnkge1xuICAgIHJldHVybiBjLmYodCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB1Ll9lKGUpO1xuICAgIHJldHVybiBOTztcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludGVybmFsTGlzdGVuZXI8VD4ge1xuICBfbjogKHY6IFQpID0+IHZvaWQ7XG4gIF9lOiAoZXJyOiBhbnkpID0+IHZvaWQ7XG4gIF9jOiAoKSA9PiB2b2lkO1xufVxuXG5jb25zdCBOT19JTDogSW50ZXJuYWxMaXN0ZW5lcjxhbnk+ID0ge1xuICBfbjogbm9vcCxcbiAgX2U6IG5vb3AsXG4gIF9jOiBub29wLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBJbnRlcm5hbFByb2R1Y2VyPFQ+IHtcbiAgX3N0YXJ0KGxpc3RlbmVyOiBJbnRlcm5hbExpc3RlbmVyPFQ+KTogdm9pZDtcbiAgX3N0b3A6ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3V0U2VuZGVyPFQ+IHtcbiAgb3V0OiBTdHJlYW08VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlcmF0b3I8VCwgUj4gZXh0ZW5kcyBJbnRlcm5hbFByb2R1Y2VyPFI+LCBJbnRlcm5hbExpc3RlbmVyPFQ+LCBPdXRTZW5kZXI8Uj4ge1xuICB0eXBlOiBzdHJpbmc7XG4gIGluczogU3RyZWFtPFQ+O1xuICBfc3RhcnQob3V0OiBTdHJlYW08Uj4pOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFnZ3JlZ2F0b3I8VCwgVT4gZXh0ZW5kcyBJbnRlcm5hbFByb2R1Y2VyPFU+LCBPdXRTZW5kZXI8VT4ge1xuICB0eXBlOiBzdHJpbmc7XG4gIGluc0FycjogQXJyYXk8U3RyZWFtPFQ+PjtcbiAgX3N0YXJ0KG91dDogU3RyZWFtPFU+KTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWNlcjxUPiB7XG4gIHN0YXJ0OiAobGlzdGVuZXI6IExpc3RlbmVyPFQ+KSA9PiB2b2lkO1xuICBzdG9wOiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RlbmVyPFQ+IHtcbiAgbmV4dDogKHg6IFQpID0+IHZvaWQ7XG4gIGVycm9yOiAoZXJyOiBhbnkpID0+IHZvaWQ7XG4gIGNvbXBsZXRlOiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1YnNjcmlwdGlvbiB7XG4gIHVuc3Vic2NyaWJlKCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJsZTxUPiB7XG4gIHN1YnNjcmliZShsaXN0ZW5lcjogTGlzdGVuZXI8VD4pOiBTdWJzY3JpcHRpb247XG59XG5cbi8vIG11dGF0ZXMgdGhlIGlucHV0XG5mdW5jdGlvbiBpbnRlcm5hbGl6ZVByb2R1Y2VyPFQ+KHByb2R1Y2VyOiBQcm9kdWNlcjxUPiAmIFBhcnRpYWw8SW50ZXJuYWxQcm9kdWNlcjxUPj4pIHtcbiAgcHJvZHVjZXIuX3N0YXJ0ID0gZnVuY3Rpb24gX3N0YXJ0KGlsOiBJbnRlcm5hbExpc3RlbmVyPFQ+ICYgUGFydGlhbDxMaXN0ZW5lcjxUPj4pIHtcbiAgICBpbC5uZXh0ID0gaWwuX247XG4gICAgaWwuZXJyb3IgPSBpbC5fZTtcbiAgICBpbC5jb21wbGV0ZSA9IGlsLl9jO1xuICAgIHRoaXMuc3RhcnQoaWwgYXMgTGlzdGVuZXI8VD4pO1xuICB9O1xuICBwcm9kdWNlci5fc3RvcCA9IHByb2R1Y2VyLnN0b3A7XG59XG5cbmNsYXNzIFN0cmVhbVN1YjxUPiBpbXBsZW1lbnRzIFN1YnNjcmlwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3N0cmVhbTogU3RyZWFtPFQ+LCBwcml2YXRlIF9saXN0ZW5lcjogSW50ZXJuYWxMaXN0ZW5lcjxUPikgeyB9XG5cbiAgdW5zdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgdGhpcy5fc3RyZWFtLl9yZW1vdmUodGhpcy5fbGlzdGVuZXIpO1xuICB9XG59XG5cbmNsYXNzIE9ic2VydmVyPFQ+IGltcGxlbWVudHMgTGlzdGVuZXI8VD4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9saXN0ZW5lcjogSW50ZXJuYWxMaXN0ZW5lcjxUPikgeyB9XG5cbiAgbmV4dCh2YWx1ZTogVCkge1xuICAgIHRoaXMuX2xpc3RlbmVyLl9uKHZhbHVlKTtcbiAgfVxuXG4gIGVycm9yKGVycjogYW55KSB7XG4gICAgdGhpcy5fbGlzdGVuZXIuX2UoZXJyKTtcbiAgfVxuXG4gIGNvbXBsZXRlKCkge1xuICAgIHRoaXMuX2xpc3RlbmVyLl9jKCk7XG4gIH1cbn1cblxuY2xhc3MgRnJvbU9ic2VydmFibGU8VD4gaW1wbGVtZW50cyBJbnRlcm5hbFByb2R1Y2VyPFQ+IHtcbiAgcHVibGljIHR5cGUgPSAnZnJvbU9ic2VydmFibGUnO1xuICBwdWJsaWMgaW5zOiBPYnNlcnZhYmxlPFQ+O1xuICBwdWJsaWMgb3V0PzogU3RyZWFtPFQ+O1xuICBwcml2YXRlIGFjdGl2ZTogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfc3ViOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3Iob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxUPikge1xuICAgIHRoaXMuaW5zID0gb2JzZXJ2YWJsZTtcbiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xuICAgIHRoaXMuX3N1YiA9IHRoaXMuaW5zLnN1YnNjcmliZShuZXcgT2JzZXJ2ZXIob3V0KSk7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZSkgdGhpcy5fc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBfc3RvcCgpIHtcbiAgICBpZiAodGhpcy5fc3ViKSB0aGlzLl9zdWIudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVyZ2VTaWduYXR1cmUge1xuICAoKTogU3RyZWFtPGFueT47XG4gIDxUMT4oczE6IFN0cmVhbTxUMT4pOiBTdHJlYW08VDE+O1xuICA8VDEsIFQyPihcbiAgICBzMTogU3RyZWFtPFQxPixcbiAgICBzMjogU3RyZWFtPFQyPik6IFN0cmVhbTxUMSB8IFQyPjtcbiAgPFQxLCBUMiwgVDM+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+KTogU3RyZWFtPFQxIHwgVDIgfCBUMz47XG4gIDxUMSwgVDIsIFQzLCBUND4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4pOiBTdHJlYW08VDEgfCBUMiB8IFQzIHwgVDQ+O1xuICA8VDEsIFQyLCBUMywgVDQsIFQ1PihcbiAgICBzMTogU3RyZWFtPFQxPixcbiAgICBzMjogU3RyZWFtPFQyPixcbiAgICBzMzogU3RyZWFtPFQzPixcbiAgICBzNDogU3RyZWFtPFQ0PixcbiAgICBzNTogU3RyZWFtPFQ1Pik6IFN0cmVhbTxUMSB8IFQyIHwgVDMgfCBUNCB8IFQ1PjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+KTogU3RyZWFtPFQxIHwgVDIgfCBUMyB8IFQ0IHwgVDUgfCBUNj47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4sXG4gICAgczU6IFN0cmVhbTxUNT4sXG4gICAgczY6IFN0cmVhbTxUNj4sXG4gICAgczc6IFN0cmVhbTxUNz4pOiBTdHJlYW08VDEgfCBUMiB8IFQzIHwgVDQgfCBUNSB8IFQ2IHwgVDc+O1xuICA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4PihcbiAgICBzMTogU3RyZWFtPFQxPixcbiAgICBzMjogU3RyZWFtPFQyPixcbiAgICBzMzogU3RyZWFtPFQzPixcbiAgICBzNDogU3RyZWFtPFQ0PixcbiAgICBzNTogU3RyZWFtPFQ1PixcbiAgICBzNjogU3RyZWFtPFQ2PixcbiAgICBzNzogU3RyZWFtPFQ3PixcbiAgICBzODogU3RyZWFtPFQ4Pik6IFN0cmVhbTxUMSB8IFQyIHwgVDMgfCBUNCB8IFQ1IHwgVDYgfCBUNyB8IFQ4PjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+KTogU3RyZWFtPFQxIHwgVDIgfCBUMyB8IFQ0IHwgVDUgfCBUNiB8IFQ3IHwgVDggfCBUOT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+LFxuICAgIHMxMDogU3RyZWFtPFQxMD4pOiBTdHJlYW08VDEgfCBUMiB8IFQzIHwgVDQgfCBUNSB8IFQ2IHwgVDcgfCBUOCB8IFQ5IHwgVDEwPjtcbiAgPFQ+KC4uLnN0cmVhbTogQXJyYXk8U3RyZWFtPFQ+Pik6IFN0cmVhbTxUPjtcbn1cblxuY2xhc3MgTWVyZ2U8VD4gaW1wbGVtZW50cyBBZ2dyZWdhdG9yPFQsIFQ+LCBJbnRlcm5hbExpc3RlbmVyPFQ+IHtcbiAgcHVibGljIHR5cGUgPSAnbWVyZ2UnO1xuICBwdWJsaWMgaW5zQXJyOiBBcnJheTxTdHJlYW08VD4+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHByaXZhdGUgYWM6IG51bWJlcjsgLy8gYWMgaXMgYWN0aXZlQ291bnRcblxuICBjb25zdHJ1Y3RvcihpbnNBcnI6IEFycmF5PFN0cmVhbTxUPj4pIHtcbiAgICB0aGlzLmluc0FyciA9IGluc0FycjtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLmFjID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIGNvbnN0IHMgPSB0aGlzLmluc0FycjtcbiAgICBjb25zdCBMID0gcy5sZW5ndGg7XG4gICAgdGhpcy5hYyA9IEw7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIHNbaV0uX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIGNvbnN0IHMgPSB0aGlzLmluc0FycjtcbiAgICBjb25zdCBMID0gcy5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIHNbaV0uX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIGlmICgtLXRoaXMuYWMgPD0gMCkge1xuICAgICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgICB1Ll9jKCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluZVNpZ25hdHVyZSB7XG4gICgpOiBTdHJlYW08QXJyYXk8YW55Pj47XG4gIDxUMT4oczE6IFN0cmVhbTxUMT4pOiBTdHJlYW08W1QxXT47XG4gIDxUMSwgVDI+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+KTogU3RyZWFtPFtUMSwgVDJdPjtcbiAgPFQxLCBUMiwgVDM+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+KTogU3RyZWFtPFtUMSwgVDIsIFQzXT47XG4gIDxUMSwgVDIsIFQzLCBUND4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4pOiBTdHJlYW08W1QxLCBUMiwgVDMsIFQ0XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDU+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDVdPjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4sXG4gICAgczU6IFN0cmVhbTxUNT4sXG4gICAgczY6IFN0cmVhbTxUNj4sXG4gICAgczc6IFN0cmVhbTxUNz4pOiBTdHJlYW08W1QxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDg+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDhdPjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+LFxuICAgIHMxMDogU3RyZWFtPFQxMD4pOiBTdHJlYW08W1QxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMF0+O1xuICA8VD4oLi4uc3RyZWFtOiBBcnJheTxTdHJlYW08VD4+KTogU3RyZWFtPEFycmF5PFQ+PjtcbiAgKC4uLnN0cmVhbTogQXJyYXk8U3RyZWFtPGFueT4+KTogU3RyZWFtPEFycmF5PGFueT4+O1xufVxuXG5jbGFzcyBDb21iaW5lTGlzdGVuZXI8VD4gaW1wbGVtZW50cyBJbnRlcm5hbExpc3RlbmVyPFQ+LCBPdXRTZW5kZXI8QXJyYXk8VD4+IHtcbiAgcHJpdmF0ZSBpOiBudW1iZXI7XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxBcnJheTxUPj47XG4gIHByaXZhdGUgcDogQ29tYmluZTxUPjtcblxuICBjb25zdHJ1Y3RvcihpOiBudW1iZXIsIG91dDogU3RyZWFtPEFycmF5PFQ+PiwgcDogQ29tYmluZTxUPikge1xuICAgIHRoaXMuaSA9IGk7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5wID0gcDtcbiAgICBwLmlscy5wdXNoKHRoaXMpO1xuICB9XG5cbiAgX24odDogVCk6IHZvaWQge1xuICAgIGNvbnN0IHAgPSB0aGlzLnAsIG91dCA9IHRoaXMub3V0O1xuICAgIGlmIChvdXQgPT09IE5PKSByZXR1cm47XG4gICAgaWYgKHAudXAodCwgdGhpcy5pKSkge1xuICAgICAgY29uc3QgYiA9IGNwKHAudmFscyk7XG4gICAgICBvdXQuX24oYik7XG4gICAgfVxuICB9XG5cbiAgX2UoZXJyOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBvdXQgPSB0aGlzLm91dDtcbiAgICBpZiAob3V0ID09PSBOTykgcmV0dXJuO1xuICAgIG91dC5fZShlcnIpO1xuICB9XG5cbiAgX2MoKTogdm9pZCB7XG4gICAgY29uc3QgcCA9IHRoaXMucDtcbiAgICBpZiAocC5vdXQgPT09IE5PKSByZXR1cm47XG4gICAgaWYgKC0tcC5OYyA9PT0gMCkgcC5vdXQuX2MoKTtcbiAgfVxufVxuXG5jbGFzcyBDb21iaW5lPFI+IGltcGxlbWVudHMgQWdncmVnYXRvcjxhbnksIEFycmF5PFI+PiB7XG4gIHB1YmxpYyB0eXBlID0gJ2NvbWJpbmUnO1xuICBwdWJsaWMgaW5zQXJyOiBBcnJheTxTdHJlYW08YW55Pj47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxBcnJheTxSPj47XG4gIHB1YmxpYyBpbHM6IEFycmF5PENvbWJpbmVMaXN0ZW5lcjxhbnk+PjtcbiAgcHVibGljIE5jOiBudW1iZXI7IC8vICpOKnVtYmVyIG9mIHN0cmVhbXMgc3RpbGwgdG8gc2VuZCAqYypvbXBsZXRlXG4gIHB1YmxpYyBObjogbnVtYmVyOyAvLyAqTip1bWJlciBvZiBzdHJlYW1zIHN0aWxsIHRvIHNlbmQgKm4qZXh0XG4gIHB1YmxpYyB2YWxzOiBBcnJheTxSPjtcblxuICBjb25zdHJ1Y3RvcihpbnNBcnI6IEFycmF5PFN0cmVhbTxhbnk+Pikge1xuICAgIHRoaXMuaW5zQXJyID0gaW5zQXJyO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPEFycmF5PFI+PjtcbiAgICB0aGlzLmlscyA9IFtdO1xuICAgIHRoaXMuTmMgPSB0aGlzLk5uID0gMDtcbiAgICB0aGlzLnZhbHMgPSBbXTtcbiAgfVxuXG4gIHVwKHQ6IGFueSwgaTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdiA9IHRoaXMudmFsc1tpXTtcbiAgICBjb25zdCBObiA9ICF0aGlzLk5uID8gMCA6IHYgPT09IE5PID8gLS10aGlzLk5uIDogdGhpcy5ObjtcbiAgICB0aGlzLnZhbHNbaV0gPSB0O1xuICAgIHJldHVybiBObiA9PT0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxBcnJheTxSPj4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICBjb25zdCBzID0gdGhpcy5pbnNBcnI7XG4gICAgY29uc3QgbiA9IHRoaXMuTmMgPSB0aGlzLk5uID0gcy5sZW5ndGg7XG4gICAgY29uc3QgdmFscyA9IHRoaXMudmFscyA9IG5ldyBBcnJheShuKTtcbiAgICBpZiAobiA9PT0gMCkge1xuICAgICAgb3V0Ll9uKFtdKTtcbiAgICAgIG91dC5fYygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykge1xuICAgICAgICB2YWxzW2ldID0gTk87XG4gICAgICAgIHNbaV0uX2FkZChuZXcgQ29tYmluZUxpc3RlbmVyKGksIG91dCwgdGhpcykpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIGNvbnN0IHMgPSB0aGlzLmluc0FycjtcbiAgICBjb25zdCBuID0gcy5sZW5ndGg7XG4gICAgY29uc3QgaWxzID0gdGhpcy5pbHM7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHNbaV0uX3JlbW92ZShpbHNbaV0pO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPEFycmF5PFI+PjtcbiAgICB0aGlzLmlscyA9IFtdO1xuICAgIHRoaXMudmFscyA9IFtdO1xuICB9XG59XG5cbmNsYXNzIEZyb21BcnJheTxUPiBpbXBsZW1lbnRzIEludGVybmFsUHJvZHVjZXI8VD4ge1xuICBwdWJsaWMgdHlwZSA9ICdmcm9tQXJyYXknO1xuICBwdWJsaWMgYTogQXJyYXk8VD47XG5cbiAgY29uc3RydWN0b3IoYTogQXJyYXk8VD4pIHtcbiAgICB0aGlzLmEgPSBhO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogSW50ZXJuYWxMaXN0ZW5lcjxUPik6IHZvaWQge1xuICAgIGNvbnN0IGEgPSB0aGlzLmE7XG4gICAgZm9yIChsZXQgaSA9IDAsIG4gPSBhLmxlbmd0aDsgaSA8IG47IGkrKykgb3V0Ll9uKGFbaV0pO1xuICAgIG91dC5fYygpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gIH1cbn1cblxuY2xhc3MgRnJvbVByb21pc2U8VD4gaW1wbGVtZW50cyBJbnRlcm5hbFByb2R1Y2VyPFQ+IHtcbiAgcHVibGljIHR5cGUgPSAnZnJvbVByb21pc2UnO1xuICBwdWJsaWMgb246IGJvb2xlYW47XG4gIHB1YmxpYyBwOiBQcm9taXNlTGlrZTxUPjtcblxuICBjb25zdHJ1Y3RvcihwOiBQcm9taXNlTGlrZTxUPikge1xuICAgIHRoaXMub24gPSBmYWxzZTtcbiAgICB0aGlzLnAgPSBwO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogSW50ZXJuYWxMaXN0ZW5lcjxUPik6IHZvaWQge1xuICAgIGNvbnN0IHByb2QgPSB0aGlzO1xuICAgIHRoaXMub24gPSB0cnVlO1xuICAgIHRoaXMucC50aGVuKFxuICAgICAgKHY6IFQpID0+IHtcbiAgICAgICAgaWYgKHByb2Qub24pIHtcbiAgICAgICAgICBvdXQuX24odik7XG4gICAgICAgICAgb3V0Ll9jKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoZTogYW55KSA9PiB7XG4gICAgICAgIG91dC5fZShlKTtcbiAgICAgIH0sXG4gICAgKS50aGVuKG5vb3AsIChlcnI6IGFueSkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7IHRocm93IGVycjsgfSk7XG4gICAgfSk7XG4gIH1cblxuICBfc3RvcCgpOiB2b2lkIHtcbiAgICB0aGlzLm9uID0gZmFsc2U7XG4gIH1cbn1cblxuY2xhc3MgUGVyaW9kaWMgaW1wbGVtZW50cyBJbnRlcm5hbFByb2R1Y2VyPG51bWJlcj4ge1xuICBwdWJsaWMgdHlwZSA9ICdwZXJpb2RpYyc7XG4gIHB1YmxpYyBwZXJpb2Q6IG51bWJlcjtcbiAgcHJpdmF0ZSBpbnRlcnZhbElEOiBhbnk7XG4gIHByaXZhdGUgaTogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHBlcmlvZDogbnVtYmVyKSB7XG4gICAgdGhpcy5wZXJpb2QgPSBwZXJpb2Q7XG4gICAgdGhpcy5pbnRlcnZhbElEID0gLTE7XG4gICAgdGhpcy5pID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IEludGVybmFsTGlzdGVuZXI8bnVtYmVyPik6IHZvaWQge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIGZ1bmN0aW9uIGludGVydmFsSGFuZGxlcigpIHsgb3V0Ll9uKHNlbGYuaSsrKTsgfVxuICAgIHRoaXMuaW50ZXJ2YWxJRCA9IHNldEludGVydmFsKGludGVydmFsSGFuZGxlciwgdGhpcy5wZXJpb2QpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW50ZXJ2YWxJRCAhPT0gLTEpIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElEKTtcbiAgICB0aGlzLmludGVydmFsSUQgPSAtMTtcbiAgICB0aGlzLmkgPSAwO1xuICB9XG59XG5cbmNsYXNzIERlYnVnPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdkZWJ1Zyc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFQ+O1xuICBwcml2YXRlIHM6ICh0OiBUKSA9PiBhbnk7IC8vIHNweVxuICBwcml2YXRlIGw6IHN0cmluZzsgLy8gbGFiZWxcblxuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPik7XG4gIGNvbnN0cnVjdG9yKGluczogU3RyZWFtPFQ+LCBhcmc/OiBzdHJpbmcpO1xuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPiwgYXJnPzogKHQ6IFQpID0+IGFueSk7XG4gIGNvbnN0cnVjdG9yKGluczogU3RyZWFtPFQ+LCBhcmc/OiBzdHJpbmcgfCAoKHQ6IFQpID0+IGFueSkpO1xuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPiwgYXJnPzogc3RyaW5nIHwgKCh0OiBUKSA9PiBhbnkpIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5zID0gbm9vcDtcbiAgICB0aGlzLmwgPSAnJztcbiAgICBpZiAodHlwZW9mIGFyZyA9PT0gJ3N0cmluZycpIHRoaXMubCA9IGFyZzsgZWxzZSBpZiAodHlwZW9mIGFyZyA9PT0gJ2Z1bmN0aW9uJykgdGhpcy5zID0gYXJnO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHMgPSB0aGlzLnMsIGwgPSB0aGlzLmw7XG4gICAgaWYgKHMgIT09IG5vb3ApIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHModCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHUuX2UoZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChsKSBjb25zb2xlLmxvZyhsICsgJzonLCB0KTsgZWxzZSBjb25zb2xlLmxvZyh0KTtcbiAgICB1Ll9uKHQpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2MoKTtcbiAgfVxufVxuXG5jbGFzcyBEcm9wPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdkcm9wJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHB1YmxpYyBtYXg6IG51bWJlcjtcbiAgcHJpdmF0ZSBkcm9wcGVkOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IobWF4OiBudW1iZXIsIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5tYXggPSBtYXg7XG4gICAgdGhpcy5kcm9wcGVkID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuZHJvcHBlZCA9IDA7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGlmICh0aGlzLmRyb3BwZWQrKyA+PSB0aGlzLm1heCkgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9jKCk7XG4gIH1cbn1cblxuY2xhc3MgRW5kV2hlbkxpc3RlbmVyPFQ+IGltcGxlbWVudHMgSW50ZXJuYWxMaXN0ZW5lcjxhbnk+IHtcbiAgcHJpdmF0ZSBvdXQ6IFN0cmVhbTxUPjtcbiAgcHJpdmF0ZSBvcDogRW5kV2hlbjxUPjtcblxuICBjb25zdHJ1Y3RvcihvdXQ6IFN0cmVhbTxUPiwgb3A6IEVuZFdoZW48VD4pIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm9wID0gb3A7XG4gIH1cblxuICBfbigpIHtcbiAgICB0aGlzLm9wLmVuZCgpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICB0aGlzLm91dC5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgdGhpcy5vcC5lbmQoKTtcbiAgfVxufVxuXG5jbGFzcyBFbmRXaGVuPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdlbmRXaGVuJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHB1YmxpYyBvOiBTdHJlYW08YW55PjsgLy8gbyA9IG90aGVyXG4gIHByaXZhdGUgb2lsOiBJbnRlcm5hbExpc3RlbmVyPGFueT47IC8vIG9pbCA9IG90aGVyIEludGVybmFsTGlzdGVuZXJcblxuICBjb25zdHJ1Y3RvcihvOiBTdHJlYW08YW55PiwgaW5zOiBTdHJlYW08VD4pIHtcbiAgICB0aGlzLmlucyA9IGlucztcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLm8gPSBvO1xuICAgIHRoaXMub2lsID0gTk9fSUw7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm8uX2FkZCh0aGlzLm9pbCA9IG5ldyBFbmRXaGVuTGlzdGVuZXIob3V0LCB0aGlzKSk7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vLl9yZW1vdmUodGhpcy5vaWwpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMub2lsID0gTk9fSUw7XG4gIH1cblxuICBlbmQoKTogdm9pZCB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2MoKTtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIHRoaXMuZW5kKCk7XG4gIH1cbn1cblxuY2xhc3MgRmlsdGVyPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdmaWx0ZXInO1xuICBwdWJsaWMgaW5zOiBTdHJlYW08VD47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxUPjtcbiAgcHVibGljIGY6ICh0OiBUKSA9PiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHBhc3NlczogKHQ6IFQpID0+IGJvb2xlYW4sIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5mID0gcGFzc2VzO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHIgPSBfdHJ5KHRoaXMsIHQsIHUpO1xuICAgIGlmIChyID09PSBOTyB8fCAhcikgcmV0dXJuO1xuICAgIHUuX24odCk7XG4gIH1cblxuICBfZShlcnI6IGFueSkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9lKGVycik7XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmNsYXNzIEZsYXR0ZW5MaXN0ZW5lcjxUPiBpbXBsZW1lbnRzIEludGVybmFsTGlzdGVuZXI8VD4ge1xuICBwcml2YXRlIG91dDogU3RyZWFtPFQ+O1xuICBwcml2YXRlIG9wOiBGbGF0dGVuPFQ+O1xuXG4gIGNvbnN0cnVjdG9yKG91dDogU3RyZWFtPFQ+LCBvcDogRmxhdHRlbjxUPikge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMub3AgPSBvcDtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICB0aGlzLm91dC5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgdGhpcy5vdXQuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIHRoaXMub3AuaW5uZXIgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5vcC5sZXNzKCk7XG4gIH1cbn1cblxuY2xhc3MgRmxhdHRlbjxUPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFN0cmVhbTxUPiwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdmbGF0dGVuJztcbiAgcHVibGljIGluczogU3RyZWFtPFN0cmVhbTxUPj47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxUPjtcbiAgcHJpdmF0ZSBvcGVuOiBib29sZWFuO1xuICBwdWJsaWMgaW5uZXI6IFN0cmVhbTxUPjsgLy8gQ3VycmVudCBpbm5lciBTdHJlYW1cbiAgcHJpdmF0ZSBpbDogSW50ZXJuYWxMaXN0ZW5lcjxUPjsgLy8gQ3VycmVudCBpbm5lciBJbnRlcm5hbExpc3RlbmVyXG5cbiAgY29uc3RydWN0b3IoaW5zOiBTdHJlYW08U3RyZWFtPFQ+Pikge1xuICAgIHRoaXMuaW5zID0gaW5zO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgdGhpcy5pbm5lciA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLmlsID0gTk9fSUw7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICAgIHRoaXMuaW5uZXIgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5pbCA9IE5PX0lMO1xuICAgIHRoaXMuaW5zLl9hZGQodGhpcyk7XG4gIH1cblxuICBfc3RvcCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucy5fcmVtb3ZlKHRoaXMpO1xuICAgIGlmICh0aGlzLmlubmVyICE9PSBOTykgdGhpcy5pbm5lci5fcmVtb3ZlKHRoaXMuaWwpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgdGhpcy5pbm5lciA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLmlsID0gTk9fSUw7XG4gIH1cblxuICBsZXNzKCk6IHZvaWQge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICBpZiAoIXRoaXMub3BlbiAmJiB0aGlzLmlubmVyID09PSBOTykgdS5fYygpO1xuICB9XG5cbiAgX24oczogU3RyZWFtPFQ+KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHsgaW5uZXIsIGlsIH0gPSB0aGlzO1xuICAgIGlmIChpbm5lciAhPT0gTk8gJiYgaWwgIT09IE5PX0lMKSBpbm5lci5fcmVtb3ZlKGlsKTtcbiAgICAodGhpcy5pbm5lciA9IHMpLl9hZGQodGhpcy5pbCA9IG5ldyBGbGF0dGVuTGlzdGVuZXIodSwgdGhpcykpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgdGhpcy5sZXNzKCk7XG4gIH1cbn1cblxuY2xhc3MgRm9sZDxULCBSPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFQsIFI+IHtcbiAgcHVibGljIHR5cGUgPSAnZm9sZCc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFI+O1xuICBwdWJsaWMgZjogKHQ6IFQpID0+IFI7XG4gIHB1YmxpYyBzZWVkOiBSO1xuICBwcml2YXRlIGFjYzogUjsgLy8gaW5pdGlhbGl6ZWQgYXMgc2VlZFxuXG4gIGNvbnN0cnVjdG9yKGY6IChhY2M6IFIsIHQ6IFQpID0+IFIsIHNlZWQ6IFIsIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08Uj47XG4gICAgdGhpcy5mID0gKHQ6IFQpID0+IGYodGhpcy5hY2MsIHQpO1xuICAgIHRoaXMuYWNjID0gdGhpcy5zZWVkID0gc2VlZDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxSPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuYWNjID0gdGhpcy5zZWVkO1xuICAgIG91dC5fbih0aGlzLmFjYyk7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08Uj47XG4gICAgdGhpcy5hY2MgPSB0aGlzLnNlZWQ7XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHIgPSBfdHJ5KHRoaXMsIHQsIHUpO1xuICAgIGlmIChyID09PSBOTykgcmV0dXJuO1xuICAgIHUuX24odGhpcy5hY2MgPSByIGFzIFIpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2MoKTtcbiAgfVxufVxuXG5jbGFzcyBMYXN0PFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdsYXN0JztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHByaXZhdGUgaGFzOiBib29sZWFuO1xuICBwcml2YXRlIHZhbDogVDtcblxuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPikge1xuICAgIHRoaXMuaW5zID0gaW5zO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMuaGFzID0gZmFsc2U7XG4gICAgdGhpcy52YWwgPSBOTyBhcyBUO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5oYXMgPSBmYWxzZTtcbiAgICB0aGlzLmlucy5fYWRkKHRoaXMpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLnZhbCA9IE5PIGFzIFQ7XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgdGhpcy5oYXMgPSB0cnVlO1xuICAgIHRoaXMudmFsID0gdDtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICBpZiAodGhpcy5oYXMpIHtcbiAgICAgIHUuX24odGhpcy52YWwpO1xuICAgICAgdS5fYygpO1xuICAgIH0gZWxzZSB1Ll9lKG5ldyBFcnJvcignbGFzdCgpIGZhaWxlZCBiZWNhdXNlIGlucHV0IHN0cmVhbSBjb21wbGV0ZWQnKSk7XG4gIH1cbn1cblxuY2xhc3MgTWFwT3A8VCwgUj4gaW1wbGVtZW50cyBPcGVyYXRvcjxULCBSPiB7XG4gIHB1YmxpYyB0eXBlID0gJ21hcCc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFI+O1xuICBwdWJsaWMgZjogKHQ6IFQpID0+IFI7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogKHQ6IFQpID0+IFIsIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08Uj47XG4gICAgdGhpcy5mID0gcHJvamVjdDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxSPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuaW5zLl9hZGQodGhpcyk7XG4gIH1cblxuICBfc3RvcCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucy5fcmVtb3ZlKHRoaXMpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFI+O1xuICB9XG5cbiAgX24odDogVCkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICBjb25zdCByID0gX3RyeSh0aGlzLCB0LCB1KTtcbiAgICBpZiAociA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9uKHIgYXMgUik7XG4gIH1cblxuICBfZShlcnI6IGFueSkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9lKGVycik7XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmNsYXNzIFJlbWVtYmVyPFQ+IGltcGxlbWVudHMgSW50ZXJuYWxQcm9kdWNlcjxUPiB7XG4gIHB1YmxpYyB0eXBlID0gJ3JlbWVtYmVyJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG5cbiAgY29uc3RydWN0b3IoaW5zOiBTdHJlYW08VD4pIHtcbiAgICB0aGlzLmlucyA9IGlucztcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuaW5zLl9hZGQob3V0KTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcy5vdXQpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICB9XG59XG5cbmNsYXNzIFJlcGxhY2VFcnJvcjxUPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFQsIFQ+IHtcbiAgcHVibGljIHR5cGUgPSAncmVwbGFjZUVycm9yJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHB1YmxpYyBmOiAoZXJyOiBhbnkpID0+IFN0cmVhbTxUPjtcblxuICBjb25zdHJ1Y3RvcihyZXBsYWNlcjogKGVycjogYW55KSA9PiBTdHJlYW08VD4sIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5mID0gcmVwbGFjZXI7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLmlucy5fYWRkKHRoaXMpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmlucy5fcmVtb3ZlKHRoaXMpO1xuICAgICAgKHRoaXMuaW5zID0gdGhpcy5mKGVycikpLl9hZGQodGhpcyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdS5fZShlKTtcbiAgICB9XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmNsYXNzIFN0YXJ0V2l0aDxUPiBpbXBsZW1lbnRzIEludGVybmFsUHJvZHVjZXI8VD4ge1xuICBwdWJsaWMgdHlwZSA9ICdzdGFydFdpdGgnO1xuICBwdWJsaWMgaW5zOiBTdHJlYW08VD47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxUPjtcbiAgcHVibGljIHZhbDogVDtcblxuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPiwgdmFsOiBUKSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy52YWwgPSB2YWw7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm91dC5fbih0aGlzLnZhbCk7XG4gICAgdGhpcy5pbnMuX2FkZChvdXQpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzLm91dCk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cbn1cblxuY2xhc3MgVGFrZTxUPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFQsIFQ+IHtcbiAgcHVibGljIHR5cGUgPSAndGFrZSc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFQ+O1xuICBwdWJsaWMgbWF4OiBudW1iZXI7XG4gIHByaXZhdGUgdGFrZW46IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihtYXg6IG51bWJlciwgaW5zOiBTdHJlYW08VD4pIHtcbiAgICB0aGlzLmlucyA9IGlucztcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLm1heCA9IG1heDtcbiAgICB0aGlzLnRha2VuID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMudGFrZW4gPSAwO1xuICAgIGlmICh0aGlzLm1heCA8PSAwKSBvdXQuX2MoKTsgZWxzZSB0aGlzLmlucy5fYWRkKHRoaXMpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgY29uc3QgbSA9ICsrdGhpcy50YWtlbjtcbiAgICBpZiAobSA8IHRoaXMubWF4KSB1Ll9uKHQpOyBlbHNlIGlmIChtID09PSB0aGlzLm1heCkge1xuICAgICAgdS5fbih0KTtcbiAgICAgIHUuX2MoKTtcbiAgICB9XG4gIH1cblxuICBfZShlcnI6IGFueSkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9lKGVycik7XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdHJlYW08VD4gaW1wbGVtZW50cyBJbnRlcm5hbExpc3RlbmVyPFQ+IHtcbiAgcHVibGljIF9wcm9kOiBJbnRlcm5hbFByb2R1Y2VyPFQ+O1xuICBwcm90ZWN0ZWQgX2lsczogQXJyYXk8SW50ZXJuYWxMaXN0ZW5lcjxUPj47IC8vICdpbHMnID0gSW50ZXJuYWwgbGlzdGVuZXJzXG4gIHByb3RlY3RlZCBfc3RvcElEOiBhbnk7XG4gIHByb3RlY3RlZCBfZGw6IEludGVybmFsTGlzdGVuZXI8VD47IC8vIHRoZSBkZWJ1ZyBsaXN0ZW5lclxuICBwcm90ZWN0ZWQgX2Q6IGJvb2xlYW47IC8vIGZsYWcgaW5kaWNhdGluZyB0aGUgZXhpc3RlbmNlIG9mIHRoZSBkZWJ1ZyBsaXN0ZW5lclxuICBwcm90ZWN0ZWQgX3RhcmdldDogU3RyZWFtPFQ+IHwgbnVsbDsgLy8gaW1pdGF0aW9uIHRhcmdldCBpZiB0aGlzIFN0cmVhbSB3aWxsIGltaXRhdGVcbiAgcHJvdGVjdGVkIF9lcnI6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcm9kdWNlcj86IEludGVybmFsUHJvZHVjZXI8VD4pIHtcbiAgICB0aGlzLl9wcm9kID0gcHJvZHVjZXIgfHwgTk8gYXMgSW50ZXJuYWxQcm9kdWNlcjxUPjtcbiAgICB0aGlzLl9pbHMgPSBbXTtcbiAgICB0aGlzLl9zdG9wSUQgPSBOTztcbiAgICB0aGlzLl9kbCA9IE5PIGFzIEludGVybmFsTGlzdGVuZXI8VD47XG4gICAgdGhpcy5fZCA9IGZhbHNlO1xuICAgIHRoaXMuX3RhcmdldCA9IG51bGw7XG4gICAgdGhpcy5fZXJyID0gTk87XG4gIH1cblxuICBfbih0OiBUKTogdm9pZCB7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBMID0gYS5sZW5ndGg7XG4gICAgaWYgKHRoaXMuX2QpIHRoaXMuX2RsLl9uKHQpO1xuICAgIGlmIChMID09IDEpIGFbMF0uX24odCk7IGVsc2UgaWYgKEwgPT0gMCkgcmV0dXJuOyBlbHNlIHtcbiAgICAgIGNvbnN0IGIgPSBjcChhKTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTDsgaSsrKSBiW2ldLl9uKHQpO1xuICAgIH1cbiAgfVxuXG4gIF9lKGVycjogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2VyciAhPT0gTk8pIHJldHVybjtcbiAgICB0aGlzLl9lcnIgPSBlcnI7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBMID0gYS5sZW5ndGg7XG4gICAgdGhpcy5feCgpO1xuICAgIGlmICh0aGlzLl9kKSB0aGlzLl9kbC5fZShlcnIpO1xuICAgIGlmIChMID09IDEpIGFbMF0uX2UoZXJyKTsgZWxzZSBpZiAoTCA9PSAwKSByZXR1cm47IGVsc2Uge1xuICAgICAgY29uc3QgYiA9IGNwKGEpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIGJbaV0uX2UoZXJyKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9kICYmIEwgPT0gMCkgdGhyb3cgdGhpcy5fZXJyO1xuICB9XG5cbiAgX2MoKTogdm9pZCB7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBMID0gYS5sZW5ndGg7XG4gICAgdGhpcy5feCgpO1xuICAgIGlmICh0aGlzLl9kKSB0aGlzLl9kbC5fYygpO1xuICAgIGlmIChMID09IDEpIGFbMF0uX2MoKTsgZWxzZSBpZiAoTCA9PSAwKSByZXR1cm47IGVsc2Uge1xuICAgICAgY29uc3QgYiA9IGNwKGEpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIGJbaV0uX2MoKTtcbiAgICB9XG4gIH1cblxuICBfeCgpOiB2b2lkIHsgLy8gdGVhciBkb3duIGxvZ2ljLCBhZnRlciBlcnJvciBvciBjb21wbGV0ZVxuICAgIGlmICh0aGlzLl9pbHMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgaWYgKHRoaXMuX3Byb2QgIT09IE5PKSB0aGlzLl9wcm9kLl9zdG9wKCk7XG4gICAgdGhpcy5fZXJyID0gTk87XG4gICAgdGhpcy5faWxzID0gW107XG4gIH1cblxuICBfc3RvcE5vdygpIHtcbiAgICAvLyBXQVJOSU5HOiBjb2RlIHRoYXQgY2FsbHMgdGhpcyBtZXRob2Qgc2hvdWxkXG4gICAgLy8gZmlyc3QgY2hlY2sgaWYgdGhpcy5fcHJvZCBpcyB2YWxpZCAobm90IGBOT2ApXG4gICAgdGhpcy5fcHJvZC5fc3RvcCgpO1xuICAgIHRoaXMuX2VyciA9IE5PO1xuICAgIHRoaXMuX3N0b3BJRCA9IE5PO1xuICB9XG5cbiAgX2FkZChpbDogSW50ZXJuYWxMaXN0ZW5lcjxUPik6IHZvaWQge1xuICAgIGNvbnN0IHRhID0gdGhpcy5fdGFyZ2V0O1xuICAgIGlmICh0YSkgcmV0dXJuIHRhLl9hZGQoaWwpO1xuICAgIGNvbnN0IGEgPSB0aGlzLl9pbHM7XG4gICAgYS5wdXNoKGlsKTtcbiAgICBpZiAoYS5sZW5ndGggPiAxKSByZXR1cm47XG4gICAgaWYgKHRoaXMuX3N0b3BJRCAhPT0gTk8pIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9zdG9wSUQpO1xuICAgICAgdGhpcy5fc3RvcElEID0gTk87XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHAgPSB0aGlzLl9wcm9kO1xuICAgICAgaWYgKHAgIT09IE5PKSBwLl9zdGFydCh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBfcmVtb3ZlKGlsOiBJbnRlcm5hbExpc3RlbmVyPFQ+KTogdm9pZCB7XG4gICAgY29uc3QgdGEgPSB0aGlzLl90YXJnZXQ7XG4gICAgaWYgKHRhKSByZXR1cm4gdGEuX3JlbW92ZShpbCk7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBpID0gYS5pbmRleE9mKGlsKTtcbiAgICBpZiAoaSA+IC0xKSB7XG4gICAgICBhLnNwbGljZShpLCAxKTtcbiAgICAgIGlmICh0aGlzLl9wcm9kICE9PSBOTyAmJiBhLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgIHRoaXMuX2VyciA9IE5PO1xuICAgICAgICB0aGlzLl9zdG9wSUQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3N0b3BOb3coKSk7XG4gICAgICB9IGVsc2UgaWYgKGEubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHRoaXMuX3BydW5lQ3ljbGVzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgYWxsIHBhdGhzIHN0ZW1taW5nIGZyb20gYHRoaXNgIHN0cmVhbSBldmVudHVhbGx5IGVuZCBhdCBgdGhpc2BcbiAgLy8gc3RyZWFtLCB0aGVuIHdlIHJlbW92ZSB0aGUgc2luZ2xlIGxpc3RlbmVyIG9mIGB0aGlzYCBzdHJlYW0sIHRvXG4gIC8vIGZvcmNlIGl0IHRvIGVuZCBpdHMgZXhlY3V0aW9uIGFuZCBkaXNwb3NlIHJlc291cmNlcy4gVGhpcyBtZXRob2RcbiAgLy8gYXNzdW1lcyBhcyBhIHByZWNvbmRpdGlvbiB0aGF0IHRoaXMuX2lscyBoYXMganVzdCBvbmUgbGlzdGVuZXIuXG4gIF9wcnVuZUN5Y2xlcygpIHtcbiAgICBpZiAodGhpcy5faGFzTm9TaW5rcyh0aGlzLCBbXSkpIHRoaXMuX3JlbW92ZSh0aGlzLl9pbHNbMF0pO1xuICB9XG5cbiAgLy8gQ2hlY2tzIHdoZXRoZXIgKnRoZXJlIGlzIG5vKiBwYXRoIHN0YXJ0aW5nIGZyb20gYHhgIHRoYXQgbGVhZHMgdG8gYW4gZW5kXG4gIC8vIGxpc3RlbmVyIChzaW5rKSBpbiB0aGUgc3RyZWFtIGdyYXBoLCBmb2xsb3dpbmcgZWRnZXMgQS0+QiB3aGVyZSBCIGlzIGFcbiAgLy8gbGlzdGVuZXIgb2YgQS4gVGhpcyBtZWFucyB0aGVzZSBwYXRocyBjb25zdGl0dXRlIGEgY3ljbGUgc29tZWhvdy4gSXMgZ2l2ZW5cbiAgLy8gYSB0cmFjZSBvZiBhbGwgdmlzaXRlZCBub2RlcyBzbyBmYXIuXG4gIF9oYXNOb1NpbmtzKHg6IEludGVybmFsTGlzdGVuZXI8YW55PiwgdHJhY2U6IEFycmF5PGFueT4pOiBib29sZWFuIHtcbiAgICBpZiAodHJhY2UuaW5kZXhPZih4KSAhPT0gLTEpXG4gICAgICByZXR1cm4gdHJ1ZTsgZWxzZVxuICAgICAgaWYgKCh4IGFzIGFueSBhcyBPdXRTZW5kZXI8YW55Pikub3V0ID09PSB0aGlzKVxuICAgICAgICByZXR1cm4gdHJ1ZTsgZWxzZVxuICAgICAgICBpZiAoKHggYXMgYW55IGFzIE91dFNlbmRlcjxhbnk+KS5vdXQgJiYgKHggYXMgYW55IGFzIE91dFNlbmRlcjxhbnk+KS5vdXQgIT09IE5PKVxuICAgICAgICAgIHJldHVybiB0aGlzLl9oYXNOb1NpbmtzKCh4IGFzIGFueSBhcyBPdXRTZW5kZXI8YW55Pikub3V0LCB0cmFjZS5jb25jYXQoeCkpOyBlbHNlXG4gICAgICAgICAgaWYgKCh4IGFzIFN0cmVhbTxhbnk+KS5faWxzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMCwgTiA9ICh4IGFzIFN0cmVhbTxhbnk+KS5faWxzLmxlbmd0aDsgaSA8IE47IGkrKylcbiAgICAgICAgICAgICAgaWYgKCF0aGlzLl9oYXNOb1NpbmtzKCh4IGFzIFN0cmVhbTxhbnk+KS5faWxzW2ldLCB0cmFjZS5jb25jYXQoeCkpKVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH0gZWxzZSByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGN0b3IoKTogdHlwZW9mIFN0cmVhbSB7XG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBNZW1vcnlTdHJlYW0gPyBNZW1vcnlTdHJlYW0gOiBTdHJlYW07XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIExpc3RlbmVyIHRvIHRoZSBTdHJlYW0uXG4gICAqXG4gICAqIEBwYXJhbSB7TGlzdGVuZXJ9IGxpc3RlbmVyXG4gICAqL1xuICBhZGRMaXN0ZW5lcihsaXN0ZW5lcjogUGFydGlhbDxMaXN0ZW5lcjxUPj4pOiB2b2lkIHtcbiAgICAobGlzdGVuZXIgYXMgSW50ZXJuYWxMaXN0ZW5lcjxUPikuX24gPSBsaXN0ZW5lci5uZXh0IHx8IG5vb3A7XG4gICAgKGxpc3RlbmVyIGFzIEludGVybmFsTGlzdGVuZXI8VD4pLl9lID0gbGlzdGVuZXIuZXJyb3IgfHwgbm9vcDtcbiAgICAobGlzdGVuZXIgYXMgSW50ZXJuYWxMaXN0ZW5lcjxUPikuX2MgPSBsaXN0ZW5lci5jb21wbGV0ZSB8fCBub29wO1xuICAgIHRoaXMuX2FkZChsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgTGlzdGVuZXIgZnJvbSB0aGUgU3RyZWFtLCBhc3N1bWluZyB0aGUgTGlzdGVuZXIgd2FzIGFkZGVkIHRvIGl0LlxuICAgKlxuICAgKiBAcGFyYW0ge0xpc3RlbmVyPFQ+fSBsaXN0ZW5lclxuICAgKi9cbiAgcmVtb3ZlTGlzdGVuZXIobGlzdGVuZXI6IFBhcnRpYWw8TGlzdGVuZXI8VD4+KTogdm9pZCB7XG4gICAgdGhpcy5fcmVtb3ZlKGxpc3RlbmVyIGFzIEludGVybmFsTGlzdGVuZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBMaXN0ZW5lciB0byB0aGUgU3RyZWFtIHJldHVybmluZyBhIFN1YnNjcmlwdGlvbiB0byByZW1vdmUgdGhhdFxuICAgKiBsaXN0ZW5lci5cbiAgICpcbiAgICogQHBhcmFtIHtMaXN0ZW5lcn0gbGlzdGVuZXJcbiAgICogQHJldHVybnMge1N1YnNjcmlwdGlvbn1cbiAgICovXG4gIHN1YnNjcmliZShsaXN0ZW5lcjogUGFydGlhbDxMaXN0ZW5lcjxUPj4pOiBTdWJzY3JpcHRpb24ge1xuICAgIHRoaXMuYWRkTGlzdGVuZXIobGlzdGVuZXIpO1xuICAgIHJldHVybiBuZXcgU3RyZWFtU3ViPFQ+KHRoaXMsIGxpc3RlbmVyIGFzIEludGVybmFsTGlzdGVuZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBpbnRlcm9wIGJldHdlZW4gbW9zdC5qcyBhbmQgUnhKUyA1XG4gICAqXG4gICAqIEByZXR1cm5zIHtTdHJlYW19XG4gICAqL1xuICBbJCRvYnNlcnZhYmxlXSgpOiBTdHJlYW08VD4ge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgU3RyZWFtIGdpdmVuIGEgUHJvZHVjZXIuXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtQcm9kdWNlcn0gcHJvZHVjZXIgQW4gb3B0aW9uYWwgUHJvZHVjZXIgdGhhdCBkaWN0YXRlcyBob3cgdG9cbiAgICogc3RhcnQsIGdlbmVyYXRlIGV2ZW50cywgYW5kIHN0b3AgdGhlIFN0cmVhbS5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZTxUPihwcm9kdWNlcj86IFByb2R1Y2VyPFQ+KTogU3RyZWFtPFQ+IHtcbiAgICBpZiAocHJvZHVjZXIpIHtcbiAgICAgIGlmICh0eXBlb2YgcHJvZHVjZXIuc3RhcnQgIT09ICdmdW5jdGlvbidcbiAgICAgICAgfHwgdHlwZW9mIHByb2R1Y2VyLnN0b3AgIT09ICdmdW5jdGlvbicpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcigncHJvZHVjZXIgcmVxdWlyZXMgYm90aCBzdGFydCBhbmQgc3RvcCBmdW5jdGlvbnMnKTtcbiAgICAgIGludGVybmFsaXplUHJvZHVjZXIocHJvZHVjZXIpOyAvLyBtdXRhdGVzIHRoZSBpbnB1dFxuICAgIH1cbiAgICByZXR1cm4gbmV3IFN0cmVhbShwcm9kdWNlciBhcyBJbnRlcm5hbFByb2R1Y2VyPFQ+ICYgUHJvZHVjZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgTWVtb3J5U3RyZWFtIGdpdmVuIGEgUHJvZHVjZXIuXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtQcm9kdWNlcn0gcHJvZHVjZXIgQW4gb3B0aW9uYWwgUHJvZHVjZXIgdGhhdCBkaWN0YXRlcyBob3cgdG9cbiAgICogc3RhcnQsIGdlbmVyYXRlIGV2ZW50cywgYW5kIHN0b3AgdGhlIFN0cmVhbS5cbiAgICogQHJldHVybiB7TWVtb3J5U3RyZWFtfVxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZVdpdGhNZW1vcnk8VD4ocHJvZHVjZXI/OiBQcm9kdWNlcjxUPik6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgaWYgKHByb2R1Y2VyKSBpbnRlcm5hbGl6ZVByb2R1Y2VyKHByb2R1Y2VyKTsgLy8gbXV0YXRlcyB0aGUgaW5wdXRcbiAgICByZXR1cm4gbmV3IE1lbW9yeVN0cmVhbTxUPihwcm9kdWNlciBhcyBJbnRlcm5hbFByb2R1Y2VyPFQ+ICYgUHJvZHVjZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBTdHJlYW0gdGhhdCBkb2VzIG5vdGhpbmcgd2hlbiBzdGFydGVkLiBJdCBuZXZlciBlbWl0cyBhbnkgZXZlbnQuXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqICAgICAgICAgIG5ldmVyXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAZmFjdG9yeSB0cnVlXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBuZXZlcjxUID0gYW55PigpOiBTdHJlYW08VD4ge1xuICAgIHJldHVybiBuZXcgU3RyZWFtPFQ+KHsgX3N0YXJ0OiBub29wLCBfc3RvcDogbm9vcCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgU3RyZWFtIHRoYXQgaW1tZWRpYXRlbHkgZW1pdHMgdGhlIFwiY29tcGxldGVcIiBub3RpZmljYXRpb24gd2hlblxuICAgKiBzdGFydGVkLCBhbmQgdGhhdCdzIGl0LlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiBlbXB0eVxuICAgKiAtfFxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgZW1wdHk8VCA9IGFueT4oKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPih7XG4gICAgICBfc3RhcnQoaWw6IEludGVybmFsTGlzdGVuZXI8YW55PikgeyBpbC5fYygpOyB9LFxuICAgICAgX3N0b3A6IG5vb3AsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFN0cmVhbSB0aGF0IGltbWVkaWF0ZWx5IGVtaXRzIGFuIFwiZXJyb3JcIiBub3RpZmljYXRpb24gd2l0aCB0aGVcbiAgICogdmFsdWUgeW91IHBhc3NlZCBhcyB0aGUgYGVycm9yYCBhcmd1bWVudCB3aGVuIHRoZSBzdHJlYW0gc3RhcnRzLCBhbmQgdGhhdCdzXG4gICAqIGl0LlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiB0aHJvdyhYKVxuICAgKiAtWFxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0gZXJyb3IgVGhlIGVycm9yIGV2ZW50IHRvIGVtaXQgb24gdGhlIGNyZWF0ZWQgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgdGhyb3coZXJyb3I6IGFueSk6IFN0cmVhbTxhbnk+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxhbnk+KHtcbiAgICAgIF9zdGFydChpbDogSW50ZXJuYWxMaXN0ZW5lcjxhbnk+KSB7IGlsLl9lKGVycm9yKTsgfSxcbiAgICAgIF9zdG9wOiBub29wLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdHJlYW0gZnJvbSBhbiBBcnJheSwgUHJvbWlzZSwgb3IgYW4gT2JzZXJ2YWJsZS5cbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0ge0FycmF5fFByb21pc2VMaWtlfE9ic2VydmFibGV9IGlucHV0IFRoZSBpbnB1dCB0byBtYWtlIGEgc3RyZWFtIGZyb20uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBmcm9tPFQ+KGlucHV0OiBQcm9taXNlTGlrZTxUPiB8IFN0cmVhbTxUPiB8IEFycmF5PFQ+IHwgT2JzZXJ2YWJsZTxUPik6IFN0cmVhbTxUPiB7XG4gICAgaWYgKHR5cGVvZiBpbnB1dFskJG9ic2VydmFibGVdID09PSAnZnVuY3Rpb24nKVxuICAgICAgcmV0dXJuIFN0cmVhbS5mcm9tT2JzZXJ2YWJsZTxUPihpbnB1dCBhcyBPYnNlcnZhYmxlPFQ+KTsgZWxzZVxuICAgICAgaWYgKHR5cGVvZiAoaW5wdXQgYXMgUHJvbWlzZUxpa2U8VD4pLnRoZW4gPT09ICdmdW5jdGlvbicpXG4gICAgICAgIHJldHVybiBTdHJlYW0uZnJvbVByb21pc2U8VD4oaW5wdXQgYXMgUHJvbWlzZUxpa2U8VD4pOyBlbHNlXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGlucHV0KSlcbiAgICAgICAgICByZXR1cm4gU3RyZWFtLmZyb21BcnJheTxUPihpbnB1dCk7XG5cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBUeXBlIG9mIGlucHV0IHRvIGZyb20oKSBtdXN0IGJlIGFuIEFycmF5LCBQcm9taXNlLCBvciBPYnNlcnZhYmxlYCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFN0cmVhbSB0aGF0IGltbWVkaWF0ZWx5IGVtaXRzIHRoZSBhcmd1bWVudHMgdGhhdCB5b3UgZ2l2ZSB0b1xuICAgKiAqb2YqLCB0aGVuIGNvbXBsZXRlcy5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogb2YoMSwyLDMpXG4gICAqIDEyM3xcbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIGEgVGhlIGZpcnN0IHZhbHVlIHlvdSB3YW50IHRvIGVtaXQgYXMgYW4gZXZlbnQgb24gdGhlIHN0cmVhbS5cbiAgICogQHBhcmFtIGIgVGhlIHNlY29uZCB2YWx1ZSB5b3Ugd2FudCB0byBlbWl0IGFzIGFuIGV2ZW50IG9uIHRoZSBzdHJlYW0uIE9uZVxuICAgKiBvciBtb3JlIG9mIHRoZXNlIHZhbHVlcyBtYXkgYmUgZ2l2ZW4gYXMgYXJndW1lbnRzLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgb2Y8VD4oLi4uaXRlbXM6IEFycmF5PFQ+KTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gU3RyZWFtLmZyb21BcnJheTxUPihpdGVtcyk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYW4gYXJyYXkgdG8gYSBzdHJlYW0uIFRoZSByZXR1cm5lZCBzdHJlYW0gd2lsbCBlbWl0IHN5bmNocm9ub3VzbHlcbiAgICogYWxsIHRoZSBpdGVtcyBpbiB0aGUgYXJyYXksIGFuZCB0aGVuIGNvbXBsZXRlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiBmcm9tQXJyYXkoWzEsMiwzXSlcbiAgICogMTIzfFxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gYmUgY29udmVydGVkIGFzIGEgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgZnJvbUFycmF5PFQ+KGFycmF5OiBBcnJheTxUPik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08VD4obmV3IEZyb21BcnJheTxUPihhcnJheSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgcHJvbWlzZSB0byBhIHN0cmVhbS4gVGhlIHJldHVybmVkIHN0cmVhbSB3aWxsIGVtaXQgdGhlIHJlc29sdmVkXG4gICAqIHZhbHVlIG9mIHRoZSBwcm9taXNlLCBhbmQgdGhlbiBjb21wbGV0ZS4gSG93ZXZlciwgaWYgdGhlIHByb21pc2UgaXNcbiAgICogcmVqZWN0ZWQsIHRoZSBzdHJlYW0gd2lsbCBlbWl0IHRoZSBjb3JyZXNwb25kaW5nIGVycm9yLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiBmcm9tUHJvbWlzZSggLS0tLTQyIClcbiAgICogLS0tLS0tLS0tLS0tLS0tLS00MnxcbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtQcm9taXNlTGlrZX0gcHJvbWlzZSBUaGUgcHJvbWlzZSB0byBiZSBjb252ZXJ0ZWQgYXMgYSBzdHJlYW0uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBmcm9tUHJvbWlzZTxUPihwcm9taXNlOiBQcm9taXNlTGlrZTxUPik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08VD4obmV3IEZyb21Qcm9taXNlPFQ+KHByb21pc2UpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhbiBPYnNlcnZhYmxlIGludG8gYSBTdHJlYW0uXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHthbnl9IG9ic2VydmFibGUgVGhlIG9ic2VydmFibGUgdG8gYmUgY29udmVydGVkIGFzIGEgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgZnJvbU9ic2VydmFibGU8VD4ob2JzOiB7IHN1YnNjcmliZTogYW55IH0pOiBTdHJlYW08VD4ge1xuICAgIGlmICgob2JzIGFzIFN0cmVhbTxUPikuZW5kV2hlbiAhPT0gdW5kZWZpbmVkKSByZXR1cm4gb2JzIGFzIFN0cmVhbTxUPjtcbiAgICBjb25zdCBvID0gdHlwZW9mIG9ic1skJG9ic2VydmFibGVdID09PSAnZnVuY3Rpb24nID8gb2JzWyQkb2JzZXJ2YWJsZV0oKSA6IG9icztcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPihuZXcgRnJvbU9ic2VydmFibGUobykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdHJlYW0gdGhhdCBwZXJpb2RpY2FsbHkgZW1pdHMgaW5jcmVtZW50YWwgbnVtYmVycywgZXZlcnlcbiAgICogYHBlcmlvZGAgbWlsbGlzZWNvbmRzLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAgICAgcGVyaW9kaWMoMTAwMClcbiAgICogLS0tMC0tLTEtLS0yLS0tMy0tLTQtLS0uLi5cbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtudW1iZXJ9IHBlcmlvZCBUaGUgaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzIHRvIHVzZSBhcyBhIHJhdGUgb2ZcbiAgICogZW1pc3Npb24uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBwZXJpb2RpYyhwZXJpb2Q6IG51bWJlcik6IFN0cmVhbTxudW1iZXI+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxudW1iZXI+KG5ldyBQZXJpb2RpYyhwZXJpb2QpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCbGVuZHMgbXVsdGlwbGUgc3RyZWFtcyB0b2dldGhlciwgZW1pdHRpbmcgZXZlbnRzIGZyb20gYWxsIG9mIHRoZW1cbiAgICogY29uY3VycmVudGx5LlxuICAgKlxuICAgKiAqbWVyZ2UqIHRha2VzIG11bHRpcGxlIHN0cmVhbXMgYXMgYXJndW1lbnRzLCBhbmQgY3JlYXRlcyBhIHN0cmVhbSB0aGF0XG4gICAqIGJlaGF2ZXMgbGlrZSBlYWNoIG9mIHRoZSBhcmd1bWVudCBzdHJlYW1zLCBpbiBwYXJhbGxlbC5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tLTItLS0tLTMtLS0tLS0tLTQtLS1cbiAgICogLS0tLWEtLS0tLWItLS0tYy0tLWQtLS0tLS1cbiAgICogICAgICAgICAgICBtZXJnZVxuICAgKiAtLTEtYS0tMi0tYi0tMy1jLS0tZC0tNC0tLVxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0ge1N0cmVhbX0gc3RyZWFtMSBBIHN0cmVhbSB0byBtZXJnZSB0b2dldGhlciB3aXRoIG90aGVyIHN0cmVhbXMuXG4gICAqIEBwYXJhbSB7U3RyZWFtfSBzdHJlYW0yIEEgc3RyZWFtIHRvIG1lcmdlIHRvZ2V0aGVyIHdpdGggb3RoZXIgc3RyZWFtcy4gVHdvXG4gICAqIG9yIG1vcmUgc3RyZWFtcyBtYXkgYmUgZ2l2ZW4gYXMgYXJndW1lbnRzLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgbWVyZ2U6IE1lcmdlU2lnbmF0dXJlID0gZnVuY3Rpb24gbWVyZ2UoLi4uc3RyZWFtczogQXJyYXk8U3RyZWFtPGFueT4+KSB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08YW55PihuZXcgTWVyZ2Uoc3RyZWFtcykpO1xuICB9IGFzIE1lcmdlU2lnbmF0dXJlO1xuXG4gIC8qKlxuICAgKiBDb21iaW5lcyBtdWx0aXBsZSBpbnB1dCBzdHJlYW1zIHRvZ2V0aGVyIHRvIHJldHVybiBhIHN0cmVhbSB3aG9zZSBldmVudHNcbiAgICogYXJlIGFycmF5cyB0aGF0IGNvbGxlY3QgdGhlIGxhdGVzdCBldmVudHMgZnJvbSBlYWNoIGlucHV0IHN0cmVhbS5cbiAgICpcbiAgICogKmNvbWJpbmUqIGludGVybmFsbHkgcmVtZW1iZXJzIHRoZSBtb3N0IHJlY2VudCBldmVudCBmcm9tIGVhY2ggb2YgdGhlIGlucHV0XG4gICAqIHN0cmVhbXMuIFdoZW4gYW55IG9mIHRoZSBpbnB1dCBzdHJlYW1zIGVtaXRzIGFuIGV2ZW50LCB0aGF0IGV2ZW50IHRvZ2V0aGVyXG4gICAqIHdpdGggYWxsIHRoZSBvdGhlciBzYXZlZCBldmVudHMgYXJlIGNvbWJpbmVkIGludG8gYW4gYXJyYXkuIFRoYXQgYXJyYXkgd2lsbFxuICAgKiBiZSBlbWl0dGVkIG9uIHRoZSBvdXRwdXQgc3RyZWFtLiBJdCdzIGVzc2VudGlhbGx5IGEgd2F5IG9mIGpvaW5pbmcgdG9nZXRoZXJcbiAgICogdGhlIGV2ZW50cyBmcm9tIG11bHRpcGxlIHN0cmVhbXMuXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tMS0tLS0yLS0tLS0zLS0tLS0tLS00LS0tXG4gICAqIC0tLS1hLS0tLS1iLS0tLS1jLS1kLS0tLS0tXG4gICAqICAgICAgICAgIGNvbWJpbmVcbiAgICogLS0tLTFhLTJhLTJiLTNiLTNjLTNkLTRkLS1cbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtTdHJlYW19IHN0cmVhbTEgQSBzdHJlYW0gdG8gY29tYmluZSB0b2dldGhlciB3aXRoIG90aGVyIHN0cmVhbXMuXG4gICAqIEBwYXJhbSB7U3RyZWFtfSBzdHJlYW0yIEEgc3RyZWFtIHRvIGNvbWJpbmUgdG9nZXRoZXIgd2l0aCBvdGhlciBzdHJlYW1zLlxuICAgKiBNdWx0aXBsZSBzdHJlYW1zLCBub3QganVzdCB0d28sIG1heSBiZSBnaXZlbiBhcyBhcmd1bWVudHMuXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBjb21iaW5lOiBDb21iaW5lU2lnbmF0dXJlID0gZnVuY3Rpb24gY29tYmluZSguLi5zdHJlYW1zOiBBcnJheTxTdHJlYW08YW55Pj4pIHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxBcnJheTxhbnk+PihuZXcgQ29tYmluZTxhbnk+KHN0cmVhbXMpKTtcbiAgfSBhcyBDb21iaW5lU2lnbmF0dXJlO1xuXG4gIHByb3RlY3RlZCBfbWFwPFU+KHByb2plY3Q6ICh0OiBUKSA9PiBVKTogU3RyZWFtPFU+IHwgTWVtb3J5U3RyZWFtPFU+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VT4obmV3IE1hcE9wPFQsIFU+KHByb2plY3QsIHRoaXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm1zIGVhY2ggZXZlbnQgZnJvbSB0aGUgaW5wdXQgU3RyZWFtIHRocm91Z2ggYSBgcHJvamVjdGAgZnVuY3Rpb24sXG4gICAqIHRvIGdldCBhIFN0cmVhbSB0aGF0IGVtaXRzIHRob3NlIHRyYW5zZm9ybWVkIGV2ZW50cy5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tMy0tNS0tLS0tNy0tLS0tLVxuICAgKiAgICBtYXAoaSA9PiBpICogMTApXG4gICAqIC0tMTAtLTMwLTUwLS0tLTcwLS0tLS1cbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IHByb2plY3QgQSBmdW5jdGlvbiBvZiB0eXBlIGAodDogVCkgPT4gVWAgdGhhdCB0YWtlcyBldmVudFxuICAgKiBgdGAgb2YgdHlwZSBgVGAgZnJvbSB0aGUgaW5wdXQgU3RyZWFtIGFuZCBwcm9kdWNlcyBhbiBldmVudCBvZiB0eXBlIGBVYCwgdG9cbiAgICogYmUgZW1pdHRlZCBvbiB0aGUgb3V0cHV0IFN0cmVhbS5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgbWFwPFU+KHByb2plY3Q6ICh0OiBUKSA9PiBVKTogU3RyZWFtPFU+IHtcbiAgICByZXR1cm4gdGhpcy5fbWFwKHByb2plY3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0J3MgbGlrZSBgbWFwYCwgYnV0IHRyYW5zZm9ybXMgZWFjaCBpbnB1dCBldmVudCB0byBhbHdheXMgdGhlIHNhbWVcbiAgICogY29uc3RhbnQgdmFsdWUgb24gdGhlIG91dHB1dCBTdHJlYW0uXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tMS0tLTMtLTUtLS0tLTctLS0tLVxuICAgKiAgICAgICBtYXBUbygxMClcbiAgICogLS0xMC0tMTAtMTAtLS0tMTAtLS0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0gcHJvamVjdGVkVmFsdWUgQSB2YWx1ZSB0byBlbWl0IG9uIHRoZSBvdXRwdXQgU3RyZWFtIHdoZW5ldmVyIHRoZVxuICAgKiBpbnB1dCBTdHJlYW0gZW1pdHMgYW55IHZhbHVlLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBtYXBUbzxVPihwcm9qZWN0ZWRWYWx1ZTogVSk6IFN0cmVhbTxVPiB7XG4gICAgY29uc3QgcyA9IHRoaXMubWFwKCgpID0+IHByb2plY3RlZFZhbHVlKTtcbiAgICBjb25zdCBvcDogT3BlcmF0b3I8VCwgVT4gPSBzLl9wcm9kIGFzIE9wZXJhdG9yPFQsIFU+O1xuICAgIG9wLnR5cGUgPSAnbWFwVG8nO1xuICAgIHJldHVybiBzO1xuICB9XG5cbiAgZmlsdGVyPFMgZXh0ZW5kcyBUPihwYXNzZXM6ICh0OiBUKSA9PiB0IGlzIFMpOiBTdHJlYW08Uz47XG4gIGZpbHRlcihwYXNzZXM6ICh0OiBUKSA9PiBib29sZWFuKTogU3RyZWFtPFQ+O1xuICAvKipcbiAgICogT25seSBhbGxvd3MgZXZlbnRzIHRoYXQgcGFzcyB0aGUgdGVzdCBnaXZlbiBieSB0aGUgYHBhc3Nlc2AgYXJndW1lbnQuXG4gICAqXG4gICAqIEVhY2ggZXZlbnQgZnJvbSB0aGUgaW5wdXQgc3RyZWFtIGlzIGdpdmVuIHRvIHRoZSBgcGFzc2VzYCBmdW5jdGlvbi4gSWYgdGhlXG4gICAqIGZ1bmN0aW9uIHJldHVybnMgYHRydWVgLCB0aGUgZXZlbnQgaXMgZm9yd2FyZGVkIHRvIHRoZSBvdXRwdXQgc3RyZWFtLFxuICAgKiBvdGhlcndpc2UgaXQgaXMgaWdub3JlZCBhbmQgbm90IGZvcndhcmRlZC5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tMi0tMy0tLS0tNC0tLS0tNS0tLTYtLTctOC0tXG4gICAqICAgICBmaWx0ZXIoaSA9PiBpICUgMiA9PT0gMClcbiAgICogLS0tLS0tMi0tLS0tLS0tNC0tLS0tLS0tLTYtLS0tOC0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwYXNzZXMgQSBmdW5jdGlvbiBvZiB0eXBlIGAodDogVCkgPT4gYm9vbGVhbmAgdGhhdCB0YWtlc1xuICAgKiBhbiBldmVudCBmcm9tIHRoZSBpbnB1dCBzdHJlYW0gYW5kIGNoZWNrcyBpZiBpdCBwYXNzZXMsIGJ5IHJldHVybmluZyBhXG4gICAqIGJvb2xlYW4uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIGZpbHRlcihwYXNzZXM6ICh0OiBUKSA9PiBib29sZWFuKTogU3RyZWFtPFQ+IHtcbiAgICBjb25zdCBwID0gdGhpcy5fcHJvZDtcbiAgICBpZiAocCBpbnN0YW5jZW9mIEZpbHRlcilcbiAgICAgIHJldHVybiBuZXcgU3RyZWFtPFQ+KG5ldyBGaWx0ZXI8VD4oXG4gICAgICAgIGFuZCgocCBhcyBGaWx0ZXI8VD4pLmYsIHBhc3NlcyksXG4gICAgICAgIChwIGFzIEZpbHRlcjxUPikuaW5zXG4gICAgICApKTtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPihuZXcgRmlsdGVyPFQ+KHBhc3NlcywgdGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIExldHMgdGhlIGZpcnN0IGBhbW91bnRgIG1hbnkgZXZlbnRzIGZyb20gdGhlIGlucHV0IHN0cmVhbSBwYXNzIHRvIHRoZVxuICAgKiBvdXRwdXQgc3RyZWFtLCB0aGVuIG1ha2VzIHRoZSBvdXRwdXQgc3RyZWFtIGNvbXBsZXRlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLWEtLS1iLS1jLS0tLWQtLS1lLS1cbiAgICogICAgdGFrZSgzKVxuICAgKiAtLWEtLS1iLS1jfFxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGFtb3VudCBIb3cgbWFueSBldmVudHMgdG8gYWxsb3cgZnJvbSB0aGUgaW5wdXQgc3RyZWFtXG4gICAqIGJlZm9yZSBjb21wbGV0aW5nIHRoZSBvdXRwdXQgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICB0YWtlKGFtb3VudDogbnVtYmVyKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VD4obmV3IFRha2U8VD4oYW1vdW50LCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogSWdub3JlcyB0aGUgZmlyc3QgYGFtb3VudGAgbWFueSBldmVudHMgZnJvbSB0aGUgaW5wdXQgc3RyZWFtLCBhbmQgdGhlblxuICAgKiBhZnRlciB0aGF0IHN0YXJ0cyBmb3J3YXJkaW5nIGV2ZW50cyBmcm9tIHRoZSBpbnB1dCBzdHJlYW0gdG8gdGhlIG91dHB1dFxuICAgKiBzdHJlYW0uXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tYS0tLWItLWMtLS0tZC0tLWUtLVxuICAgKiAgICAgICBkcm9wKDMpXG4gICAqIC0tLS0tLS0tLS0tLS0tZC0tLWUtLVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGFtb3VudCBIb3cgbWFueSBldmVudHMgdG8gaWdub3JlIGZyb20gdGhlIGlucHV0IHN0cmVhbVxuICAgKiBiZWZvcmUgZm9yd2FyZGluZyBhbGwgZXZlbnRzIGZyb20gdGhlIGlucHV0IHN0cmVhbSB0byB0aGUgb3V0cHV0IHN0cmVhbS5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgZHJvcChhbW91bnQ6IG51bWJlcik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08VD4obmV3IERyb3A8VD4oYW1vdW50LCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiB0aGUgaW5wdXQgc3RyZWFtIGNvbXBsZXRlcywgdGhlIG91dHB1dCBzdHJlYW0gd2lsbCBlbWl0IHRoZSBsYXN0IGV2ZW50XG4gICAqIGVtaXR0ZWQgYnkgdGhlIGlucHV0IHN0cmVhbSwgYW5kIHRoZW4gd2lsbCBhbHNvIGNvbXBsZXRlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLWEtLS1iLS1jLS1kLS0tLXxcbiAgICogICAgICAgbGFzdCgpXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tZHxcbiAgICogYGBgXG4gICAqXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIGxhc3QoKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPihuZXcgTGFzdDxUPih0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogUHJlcGVuZHMgdGhlIGdpdmVuIGBpbml0aWFsYCB2YWx1ZSB0byB0aGUgc2VxdWVuY2Ugb2YgZXZlbnRzIGVtaXR0ZWQgYnkgdGhlXG4gICAqIGlucHV0IHN0cmVhbS4gVGhlIHJldHVybmVkIHN0cmVhbSBpcyBhIE1lbW9yeVN0cmVhbSwgd2hpY2ggbWVhbnMgaXQgaXNcbiAgICogYWxyZWFkeSBgcmVtZW1iZXIoKWAnZC5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0tMS0tLTItLS0tLTMtLS1cbiAgICogICBzdGFydFdpdGgoMClcbiAgICogMC0tMS0tLTItLS0tLTMtLS1cbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSBpbml0aWFsIFRoZSB2YWx1ZSBvciBldmVudCB0byBwcmVwZW5kLlxuICAgKiBAcmV0dXJuIHtNZW1vcnlTdHJlYW19XG4gICAqL1xuICBzdGFydFdpdGgoaW5pdGlhbDogVCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBNZW1vcnlTdHJlYW08VD4obmV3IFN0YXJ0V2l0aDxUPih0aGlzLCBpbml0aWFsKSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlcyBhbm90aGVyIHN0cmVhbSB0byBkZXRlcm1pbmUgd2hlbiB0byBjb21wbGV0ZSB0aGUgY3VycmVudCBzdHJlYW0uXG4gICAqXG4gICAqIFdoZW4gdGhlIGdpdmVuIGBvdGhlcmAgc3RyZWFtIGVtaXRzIGFuIGV2ZW50IG9yIGNvbXBsZXRlcywgdGhlIG91dHB1dFxuICAgKiBzdHJlYW0gd2lsbCBjb21wbGV0ZS4gQmVmb3JlIHRoYXQgaGFwcGVucywgdGhlIG91dHB1dCBzdHJlYW0gd2lsbCBiZWhhdmVzXG4gICAqIGxpa2UgdGhlIGlucHV0IHN0cmVhbS5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0tMS0tLTItLS0tLTMtLTQtLS0tNS0tLS02LS0tXG4gICAqICAgZW5kV2hlbiggLS0tLS0tLS1hLS1iLS18IClcbiAgICogLS0tMS0tLTItLS0tLTMtLTQtLXxcbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciBTb21lIG90aGVyIHN0cmVhbSB0aGF0IGlzIHVzZWQgdG8ga25vdyB3aGVuIHNob3VsZCB0aGUgb3V0cHV0XG4gICAqIHN0cmVhbSBvZiB0aGlzIG9wZXJhdG9yIGNvbXBsZXRlLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBlbmRXaGVuKG90aGVyOiBTdHJlYW08YW55Pik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyAodGhpcy5jdG9yKCkpPFQ+KG5ldyBFbmRXaGVuPFQ+KG90aGVyLCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogXCJGb2xkc1wiIHRoZSBzdHJlYW0gb250byBpdHNlbGYuXG4gICAqXG4gICAqIENvbWJpbmVzIGV2ZW50cyBmcm9tIHRoZSBwYXN0IHRocm91Z2hvdXRcbiAgICogdGhlIGVudGlyZSBleGVjdXRpb24gb2YgdGhlIGlucHV0IHN0cmVhbSwgYWxsb3dpbmcgeW91IHRvIGFjY3VtdWxhdGUgdGhlbVxuICAgKiB0b2dldGhlci4gSXQncyBlc3NlbnRpYWxseSBsaWtlIGBBcnJheS5wcm90b3R5cGUucmVkdWNlYC4gVGhlIHJldHVybmVkXG4gICAqIHN0cmVhbSBpcyBhIE1lbW9yeVN0cmVhbSwgd2hpY2ggbWVhbnMgaXQgaXMgYWxyZWFkeSBgcmVtZW1iZXIoKWAnZC5cbiAgICpcbiAgICogVGhlIG91dHB1dCBzdHJlYW0gc3RhcnRzIGJ5IGVtaXR0aW5nIHRoZSBgc2VlZGAgd2hpY2ggeW91IGdpdmUgYXMgYXJndW1lbnQuXG4gICAqIFRoZW4sIHdoZW4gYW4gZXZlbnQgaGFwcGVucyBvbiB0aGUgaW5wdXQgc3RyZWFtLCBpdCBpcyBjb21iaW5lZCB3aXRoIHRoYXRcbiAgICogc2VlZCB2YWx1ZSB0aHJvdWdoIHRoZSBgYWNjdW11bGF0ZWAgZnVuY3Rpb24sIGFuZCB0aGUgb3V0cHV0IHZhbHVlIGlzXG4gICAqIGVtaXR0ZWQgb24gdGhlIG91dHB1dCBzdHJlYW0uIGBmb2xkYCByZW1lbWJlcnMgdGhhdCBvdXRwdXQgdmFsdWUgYXMgYGFjY2BcbiAgICogKFwiYWNjdW11bGF0b3JcIiksIGFuZCB0aGVuIHdoZW4gYSBuZXcgaW5wdXQgZXZlbnQgYHRgIGhhcHBlbnMsIGBhY2NgIHdpbGwgYmVcbiAgICogY29tYmluZWQgd2l0aCB0aGF0IHRvIHByb2R1Y2UgdGhlIG5ldyBgYWNjYCBhbmQgc28gZm9ydGguXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tLS0tLTEtLS0tLTEtLTItLS0tMS0tLS0xLS0tLS0tXG4gICAqICAgZm9sZCgoYWNjLCB4KSA9PiBhY2MgKyB4LCAzKVxuICAgKiAzLS0tLS00LS0tLS01LS03LS0tLTgtLS0tOS0tLS0tLVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gYWNjdW11bGF0ZSBBIGZ1bmN0aW9uIG9mIHR5cGUgYChhY2M6IFIsIHQ6IFQpID0+IFJgIHRoYXRcbiAgICogdGFrZXMgdGhlIHByZXZpb3VzIGFjY3VtdWxhdGVkIHZhbHVlIGBhY2NgIGFuZCB0aGUgaW5jb21pbmcgZXZlbnQgZnJvbSB0aGVcbiAgICogaW5wdXQgc3RyZWFtIGFuZCBwcm9kdWNlcyB0aGUgbmV3IGFjY3VtdWxhdGVkIHZhbHVlLlxuICAgKiBAcGFyYW0gc2VlZCBUaGUgaW5pdGlhbCBhY2N1bXVsYXRlZCB2YWx1ZSwgb2YgdHlwZSBgUmAuXG4gICAqIEByZXR1cm4ge01lbW9yeVN0cmVhbX1cbiAgICovXG4gIGZvbGQ8Uj4oYWNjdW11bGF0ZTogKGFjYzogUiwgdDogVCkgPT4gUiwgc2VlZDogUik6IE1lbW9yeVN0cmVhbTxSPiB7XG4gICAgcmV0dXJuIG5ldyBNZW1vcnlTdHJlYW08Uj4obmV3IEZvbGQ8VCwgUj4oYWNjdW11bGF0ZSwgc2VlZCwgdGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFuIGVycm9yIHdpdGggYW5vdGhlciBzdHJlYW0uXG4gICAqXG4gICAqIFdoZW4gKGFuZCBpZikgYW4gZXJyb3IgaGFwcGVucyBvbiB0aGUgaW5wdXQgc3RyZWFtLCBpbnN0ZWFkIG9mIGZvcndhcmRpbmdcbiAgICogdGhhdCBlcnJvciB0byB0aGUgb3V0cHV0IHN0cmVhbSwgKnJlcGxhY2VFcnJvciogd2lsbCBjYWxsIHRoZSBgcmVwbGFjZWBcbiAgICogZnVuY3Rpb24gd2hpY2ggcmV0dXJucyB0aGUgc3RyZWFtIHRoYXQgdGhlIG91dHB1dCBzdHJlYW0gd2lsbCByZXBsaWNhdGUuXG4gICAqIEFuZCwgaW4gY2FzZSB0aGF0IG5ldyBzdHJlYW0gYWxzbyBlbWl0cyBhbiBlcnJvciwgYHJlcGxhY2VgIHdpbGwgYmUgY2FsbGVkXG4gICAqIGFnYWluIHRvIGdldCBhbm90aGVyIHN0cmVhbSB0byBzdGFydCByZXBsaWNhdGluZy5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tMi0tLS0tMy0tNC0tLS0tWFxuICAgKiAgIHJlcGxhY2VFcnJvciggKCkgPT4gLS0xMC0tfCApXG4gICAqIC0tMS0tLTItLS0tLTMtLTQtLS0tLS0tLTEwLS18XG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSByZXBsYWNlIEEgZnVuY3Rpb24gb2YgdHlwZSBgKGVycikgPT4gU3RyZWFtYCB0aGF0IHRha2VzXG4gICAqIHRoZSBlcnJvciB0aGF0IG9jY3VycmVkIG9uIHRoZSBpbnB1dCBzdHJlYW0gb3Igb24gdGhlIHByZXZpb3VzIHJlcGxhY2VtZW50XG4gICAqIHN0cmVhbSBhbmQgcmV0dXJucyBhIG5ldyBzdHJlYW0uIFRoZSBvdXRwdXQgc3RyZWFtIHdpbGwgYmVoYXZlIGxpa2UgdGhlXG4gICAqIHN0cmVhbSB0aGF0IHRoaXMgZnVuY3Rpb24gcmV0dXJucy5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgcmVwbGFjZUVycm9yKHJlcGxhY2U6IChlcnI6IGFueSkgPT4gU3RyZWFtPFQ+KTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VD4obmV3IFJlcGxhY2VFcnJvcjxUPihyZXBsYWNlLCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogRmxhdHRlbnMgYSBcInN0cmVhbSBvZiBzdHJlYW1zXCIsIGhhbmRsaW5nIG9ubHkgb25lIG5lc3RlZCBzdHJlYW0gYXQgYSB0aW1lXG4gICAqIChubyBjb25jdXJyZW5jeSkuXG4gICAqXG4gICAqIElmIHRoZSBpbnB1dCBzdHJlYW0gaXMgYSBzdHJlYW0gdGhhdCBlbWl0cyBzdHJlYW1zLCB0aGVuIHRoaXMgb3BlcmF0b3Igd2lsbFxuICAgKiByZXR1cm4gYW4gb3V0cHV0IHN0cmVhbSB3aGljaCBpcyBhIGZsYXQgc3RyZWFtOiBlbWl0cyByZWd1bGFyIGV2ZW50cy4gVGhlXG4gICAqIGZsYXR0ZW5pbmcgaGFwcGVucyB3aXRob3V0IGNvbmN1cnJlbmN5LiBJdCB3b3JrcyBsaWtlIHRoaXM6IHdoZW4gdGhlIGlucHV0XG4gICAqIHN0cmVhbSBlbWl0cyBhIG5lc3RlZCBzdHJlYW0sICpmbGF0dGVuKiB3aWxsIHN0YXJ0IGltaXRhdGluZyB0aGF0IG5lc3RlZFxuICAgKiBvbmUuIEhvd2V2ZXIsIGFzIHNvb24gYXMgdGhlIG5leHQgbmVzdGVkIHN0cmVhbSBpcyBlbWl0dGVkIG9uIHRoZSBpbnB1dFxuICAgKiBzdHJlYW0sICpmbGF0dGVuKiB3aWxsIGZvcmdldCB0aGUgcHJldmlvdXMgbmVzdGVkIG9uZSBpdCB3YXMgaW1pdGF0aW5nLCBhbmRcbiAgICogd2lsbCBzdGFydCBpbWl0YXRpbmcgdGhlIG5ldyBuZXN0ZWQgb25lLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS1cbiAgICogICBcXCAgICAgICAgXFxcbiAgICogICAgXFwgICAgICAgLS0tLTEtLS0tMi0tLTMtLVxuICAgKiAgICAtLWEtLWItLS0tYy0tLS1kLS0tLS0tLS1cbiAgICogICAgICAgICAgIGZsYXR0ZW5cbiAgICogLS0tLS1hLS1iLS0tLS0tMS0tLS0yLS0tMy0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBmbGF0dGVuPFI+KHRoaXM6IFN0cmVhbTxTdHJlYW08Uj4gfCBNZW1vcnlTdHJlYW08Uj4+KTogU3RyZWFtPFI+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxSPihuZXcgRmxhdHRlbih0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogUGFzc2VzIHRoZSBpbnB1dCBzdHJlYW0gdG8gYSBjdXN0b20gb3BlcmF0b3IsIHRvIHByb2R1Y2UgYW4gb3V0cHV0IHN0cmVhbS5cbiAgICpcbiAgICogKmNvbXBvc2UqIGlzIGEgaGFuZHkgd2F5IG9mIHVzaW5nIGFuIGV4aXN0aW5nIGZ1bmN0aW9uIGluIGEgY2hhaW5lZCBzdHlsZS5cbiAgICogSW5zdGVhZCBvZiB3cml0aW5nIGBvdXRTdHJlYW0gPSBmKGluU3RyZWFtKWAgeW91IGNhbiB3cml0ZVxuICAgKiBgb3V0U3RyZWFtID0gaW5TdHJlYW0uY29tcG9zZShmKWAuXG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IG9wZXJhdG9yIEEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIHN0cmVhbSBhcyBpbnB1dCBhbmRcbiAgICogcmV0dXJucyBhIHN0cmVhbSBhcyB3ZWxsLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBjb21wb3NlPFU+KG9wZXJhdG9yOiAoc3RyZWFtOiBTdHJlYW08VD4pID0+IFUpOiBVIHtcbiAgICByZXR1cm4gb3BlcmF0b3IodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvdXRwdXQgc3RyZWFtIHRoYXQgYmVoYXZlcyBsaWtlIHRoZSBpbnB1dCBzdHJlYW0sIGJ1dCBhbHNvXG4gICAqIHJlbWVtYmVycyB0aGUgbW9zdCByZWNlbnQgZXZlbnQgdGhhdCBoYXBwZW5zIG9uIHRoZSBpbnB1dCBzdHJlYW0sIHNvIHRoYXQgYVxuICAgKiBuZXdseSBhZGRlZCBsaXN0ZW5lciB3aWxsIGltbWVkaWF0ZWx5IHJlY2VpdmUgdGhhdCBtZW1vcmlzZWQgZXZlbnQuXG4gICAqXG4gICAqIEByZXR1cm4ge01lbW9yeVN0cmVhbX1cbiAgICovXG4gIHJlbWVtYmVyKCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBNZW1vcnlTdHJlYW08VD4obmV3IFJlbWVtYmVyPFQ+KHRoaXMpKTtcbiAgfVxuXG4gIGRlYnVnKCk6IFN0cmVhbTxUPjtcbiAgZGVidWcobGFiZWxPclNweTogc3RyaW5nKTogU3RyZWFtPFQ+O1xuICBkZWJ1ZyhsYWJlbE9yU3B5OiAodDogVCkgPT4gYW55KTogU3RyZWFtPFQ+O1xuICAvKipcbiAgICogUmV0dXJucyBhbiBvdXRwdXQgc3RyZWFtIHRoYXQgaWRlbnRpY2FsbHkgYmVoYXZlcyBsaWtlIHRoZSBpbnB1dCBzdHJlYW0sXG4gICAqIGJ1dCBhbHNvIHJ1bnMgYSBgc3B5YCBmdW5jdGlvbiBmb3IgZWFjaCBldmVudCwgdG8gaGVscCB5b3UgZGVidWcgeW91ciBhcHAuXG4gICAqXG4gICAqICpkZWJ1ZyogdGFrZXMgYSBgc3B5YCBmdW5jdGlvbiBhcyBhcmd1bWVudCwgYW5kIHJ1bnMgdGhhdCBmb3IgZWFjaCBldmVudFxuICAgKiBoYXBwZW5pbmcgb24gdGhlIGlucHV0IHN0cmVhbS4gSWYgeW91IGRvbid0IHByb3ZpZGUgdGhlIGBzcHlgIGFyZ3VtZW50LFxuICAgKiB0aGVuICpkZWJ1Zyogd2lsbCBqdXN0IGBjb25zb2xlLmxvZ2AgZWFjaCBldmVudC4gVGhpcyBoZWxwcyB5b3UgdG9cbiAgICogdW5kZXJzdGFuZCB0aGUgZmxvdyBvZiBldmVudHMgdGhyb3VnaCBzb21lIG9wZXJhdG9yIGNoYWluLlxuICAgKlxuICAgKiBQbGVhc2Ugbm90ZSB0aGF0IGlmIHRoZSBvdXRwdXQgc3RyZWFtIGhhcyBubyBsaXN0ZW5lcnMsIHRoZW4gaXQgd2lsbCBub3RcbiAgICogc3RhcnQsIHdoaWNoIG1lYW5zIGBzcHlgIHdpbGwgbmV2ZXIgcnVuIGJlY2F1c2Ugbm8gYWN0dWFsIGV2ZW50IGhhcHBlbnMgaW5cbiAgICogdGhhdCBjYXNlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLTEtLS0tMi0tLS0tMy0tLS0tNC0tXG4gICAqICAgICAgICAgZGVidWdcbiAgICogLS0xLS0tLTItLS0tLTMtLS0tLTQtLVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gbGFiZWxPclNweSBBIHN0cmluZyB0byB1c2UgYXMgdGhlIGxhYmVsIHdoZW4gcHJpbnRpbmdcbiAgICogZGVidWcgaW5mb3JtYXRpb24gb24gdGhlIGNvbnNvbGUsIG9yIGEgJ3NweScgZnVuY3Rpb24gdGhhdCB0YWtlcyBhbiBldmVudFxuICAgKiBhcyBhcmd1bWVudCwgYW5kIGRvZXMgbm90IG5lZWQgdG8gcmV0dXJuIGFueXRoaW5nLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBkZWJ1ZyhsYWJlbE9yU3B5Pzogc3RyaW5nIHwgKCh0OiBUKSA9PiBhbnkpKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VD4obmV3IERlYnVnPFQ+KHRoaXMsIGxhYmVsT3JTcHkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAqaW1pdGF0ZSogY2hhbmdlcyB0aGlzIGN1cnJlbnQgU3RyZWFtIHRvIGVtaXQgdGhlIHNhbWUgZXZlbnRzIHRoYXQgdGhlXG4gICAqIGBvdGhlcmAgZ2l2ZW4gU3RyZWFtIGRvZXMuIFRoaXMgbWV0aG9kIHJldHVybnMgbm90aGluZy5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgZXhpc3RzIHRvIGFsbG93IG9uZSB0aGluZzogKipjaXJjdWxhciBkZXBlbmRlbmN5IG9mIHN0cmVhbXMqKi5cbiAgICogRm9yIGluc3RhbmNlLCBsZXQncyBpbWFnaW5lIHRoYXQgZm9yIHNvbWUgcmVhc29uIHlvdSBuZWVkIHRvIGNyZWF0ZSBhXG4gICAqIGNpcmN1bGFyIGRlcGVuZGVuY3kgd2hlcmUgc3RyZWFtIGBmaXJzdCRgIGRlcGVuZHMgb24gc3RyZWFtIGBzZWNvbmQkYFxuICAgKiB3aGljaCBpbiB0dXJuIGRlcGVuZHMgb24gYGZpcnN0JGA6XG4gICAqXG4gICAqIDwhLS0gc2tpcC1leGFtcGxlIC0tPlxuICAgKiBgYGBqc1xuICAgKiBpbXBvcnQgZGVsYXkgZnJvbSAneHN0cmVhbS9leHRyYS9kZWxheSdcbiAgICpcbiAgICogdmFyIGZpcnN0JCA9IHNlY29uZCQubWFwKHggPT4geCAqIDEwKS50YWtlKDMpO1xuICAgKiB2YXIgc2Vjb25kJCA9IGZpcnN0JC5tYXAoeCA9PiB4ICsgMSkuc3RhcnRXaXRoKDEpLmNvbXBvc2UoZGVsYXkoMTAwKSk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBIb3dldmVyLCB0aGF0IGlzIGludmFsaWQgSmF2YVNjcmlwdCwgYmVjYXVzZSBgc2Vjb25kJGAgaXMgdW5kZWZpbmVkXG4gICAqIG9uIHRoZSBmaXJzdCBsaW5lLiBUaGlzIGlzIGhvdyAqaW1pdGF0ZSogY2FuIGhlbHAgc29sdmUgaXQ6XG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGltcG9ydCBkZWxheSBmcm9tICd4c3RyZWFtL2V4dHJhL2RlbGF5J1xuICAgKlxuICAgKiB2YXIgc2Vjb25kUHJveHkkID0geHMuY3JlYXRlKCk7XG4gICAqIHZhciBmaXJzdCQgPSBzZWNvbmRQcm94eSQubWFwKHggPT4geCAqIDEwKS50YWtlKDMpO1xuICAgKiB2YXIgc2Vjb25kJCA9IGZpcnN0JC5tYXAoeCA9PiB4ICsgMSkuc3RhcnRXaXRoKDEpLmNvbXBvc2UoZGVsYXkoMTAwKSk7XG4gICAqIHNlY29uZFByb3h5JC5pbWl0YXRlKHNlY29uZCQpO1xuICAgKiBgYGBcbiAgICpcbiAgICogV2UgY3JlYXRlIGBzZWNvbmRQcm94eSRgIGJlZm9yZSB0aGUgb3RoZXJzLCBzbyBpdCBjYW4gYmUgdXNlZCBpbiB0aGVcbiAgICogZGVjbGFyYXRpb24gb2YgYGZpcnN0JGAuIFRoZW4sIGFmdGVyIGJvdGggYGZpcnN0JGAgYW5kIGBzZWNvbmQkYCBhcmVcbiAgICogZGVmaW5lZCwgd2UgaG9vayBgc2Vjb25kUHJveHkkYCB3aXRoIGBzZWNvbmQkYCB3aXRoIGBpbWl0YXRlKClgIHRvIHRlbGxcbiAgICogdGhhdCB0aGV5IGFyZSBcInRoZSBzYW1lXCIuIGBpbWl0YXRlYCB3aWxsIG5vdCB0cmlnZ2VyIHRoZSBzdGFydCBvZiBhbnlcbiAgICogc3RyZWFtLCBpdCBqdXN0IGJpbmRzIGBzZWNvbmRQcm94eSRgIGFuZCBgc2Vjb25kJGAgdG9nZXRoZXIuXG4gICAqXG4gICAqIFRoZSBmb2xsb3dpbmcgaXMgYW4gZXhhbXBsZSB3aGVyZSBgaW1pdGF0ZSgpYCBpcyBpbXBvcnRhbnQgaW4gQ3ljbGUuanNcbiAgICogYXBwbGljYXRpb25zLiBBIHBhcmVudCBjb21wb25lbnQgY29udGFpbnMgc29tZSBjaGlsZCBjb21wb25lbnRzLiBBIGNoaWxkXG4gICAqIGhhcyBhbiBhY3Rpb24gc3RyZWFtIHdoaWNoIGlzIGdpdmVuIHRvIHRoZSBwYXJlbnQgdG8gZGVmaW5lIGl0cyBzdGF0ZTpcbiAgICpcbiAgICogPCEtLSBza2lwLWV4YW1wbGUgLS0+XG4gICAqIGBgYGpzXG4gICAqIGNvbnN0IGNoaWxkQWN0aW9uUHJveHkkID0geHMuY3JlYXRlKCk7XG4gICAqIGNvbnN0IHBhcmVudCA9IFBhcmVudCh7Li4uc291cmNlcywgY2hpbGRBY3Rpb24kOiBjaGlsZEFjdGlvblByb3h5JH0pO1xuICAgKiBjb25zdCBjaGlsZEFjdGlvbiQgPSBwYXJlbnQuc3RhdGUkLm1hcChzID0+IHMuY2hpbGQuYWN0aW9uJCkuZmxhdHRlbigpO1xuICAgKiBjaGlsZEFjdGlvblByb3h5JC5pbWl0YXRlKGNoaWxkQWN0aW9uJCk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBOb3RlLCB0aG91Z2gsIHRoYXQgKipgaW1pdGF0ZSgpYCBkb2VzIG5vdCBzdXBwb3J0IE1lbW9yeVN0cmVhbXMqKi4gSWYgd2VcbiAgICogd291bGQgYXR0ZW1wdCB0byBpbWl0YXRlIGEgTWVtb3J5U3RyZWFtIGluIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSwgd2Ugd291bGRcbiAgICogZWl0aGVyIGdldCBhIHJhY2UgY29uZGl0aW9uICh3aGVyZSB0aGUgc3ltcHRvbSB3b3VsZCBiZSBcIm5vdGhpbmcgaGFwcGVuc1wiKVxuICAgKiBvciBhbiBpbmZpbml0ZSBjeWNsaWMgZW1pc3Npb24gb2YgdmFsdWVzLiBJdCdzIHVzZWZ1bCB0byB0aGluayBhYm91dFxuICAgKiBNZW1vcnlTdHJlYW1zIGFzIGNlbGxzIGluIGEgc3ByZWFkc2hlZXQuIEl0IGRvZXNuJ3QgbWFrZSBhbnkgc2Vuc2UgdG9cbiAgICogZGVmaW5lIGEgc3ByZWFkc2hlZXQgY2VsbCBgQTFgIHdpdGggYSBmb3JtdWxhIHRoYXQgZGVwZW5kcyBvbiBgQjFgIGFuZFxuICAgKiBjZWxsIGBCMWAgZGVmaW5lZCB3aXRoIGEgZm9ybXVsYSB0aGF0IGRlcGVuZHMgb24gYEExYC5cbiAgICpcbiAgICogSWYgeW91IGZpbmQgeW91cnNlbGYgd2FudGluZyB0byB1c2UgYGltaXRhdGUoKWAgd2l0aCBhXG4gICAqIE1lbW9yeVN0cmVhbSwgeW91IHNob3VsZCByZXdvcmsgeW91ciBjb2RlIGFyb3VuZCBgaW1pdGF0ZSgpYCB0byB1c2UgYVxuICAgKiBTdHJlYW0gaW5zdGVhZC4gTG9vayBmb3IgdGhlIHN0cmVhbSBpbiB0aGUgY2lyY3VsYXIgZGVwZW5kZW5jeSB0aGF0XG4gICAqIHJlcHJlc2VudHMgYW4gZXZlbnQgc3RyZWFtLCBhbmQgdGhhdCB3b3VsZCBiZSBhIGNhbmRpZGF0ZSBmb3IgY3JlYXRpbmcgYVxuICAgKiBwcm94eSBTdHJlYW0gd2hpY2ggdGhlbiBpbWl0YXRlcyB0aGUgdGFyZ2V0IFN0cmVhbS5cbiAgICpcbiAgICogQHBhcmFtIHtTdHJlYW19IHRhcmdldCBUaGUgb3RoZXIgc3RyZWFtIHRvIGltaXRhdGUgb24gdGhlIGN1cnJlbnQgb25lLiBNdXN0XG4gICAqIG5vdCBiZSBhIE1lbW9yeVN0cmVhbS5cbiAgICovXG4gIGltaXRhdGUodGFyZ2V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgTWVtb3J5U3RyZWFtKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBIE1lbW9yeVN0cmVhbSB3YXMgZ2l2ZW4gdG8gaW1pdGF0ZSgpLCBidXQgaXQgb25seSAnICtcbiAgICAgICAgJ3N1cHBvcnRzIGEgU3RyZWFtLiBSZWFkIG1vcmUgYWJvdXQgdGhpcyByZXN0cmljdGlvbiBoZXJlOiAnICtcbiAgICAgICAgJ2h0dHBzOi8vZ2l0aHViLmNvbS9zdGFsdHoveHN0cmVhbSNmYXEnKTtcbiAgICB0aGlzLl90YXJnZXQgPSB0YXJnZXQ7XG4gICAgZm9yIChsZXQgaWxzID0gdGhpcy5faWxzLCBOID0gaWxzLmxlbmd0aCwgaSA9IDA7IGkgPCBOOyBpKyspIHRhcmdldC5fYWRkKGlsc1tpXSk7XG4gICAgdGhpcy5faWxzID0gW107XG4gIH1cblxuICAvKipcbiAgICogRm9yY2VzIHRoZSBTdHJlYW0gdG8gZW1pdCB0aGUgZ2l2ZW4gdmFsdWUgdG8gaXRzIGxpc3RlbmVycy5cbiAgICpcbiAgICogQXMgdGhlIG5hbWUgaW5kaWNhdGVzLCBpZiB5b3UgdXNlIHRoaXMsIHlvdSBhcmUgbW9zdCBsaWtlbHkgZG9pbmcgc29tZXRoaW5nXG4gICAqIFRoZSBXcm9uZyBXYXkuIFBsZWFzZSB0cnkgdG8gdW5kZXJzdGFuZCB0aGUgcmVhY3RpdmUgd2F5IGJlZm9yZSB1c2luZyB0aGlzXG4gICAqIG1ldGhvZC4gVXNlIGl0IG9ubHkgd2hlbiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgXCJuZXh0XCIgdmFsdWUgeW91IHdhbnQgdG8gYnJvYWRjYXN0IHRvIGFsbCBsaXN0ZW5lcnMgb2ZcbiAgICogdGhpcyBTdHJlYW0uXG4gICAqL1xuICBzaGFtZWZ1bGx5U2VuZE5leHQodmFsdWU6IFQpIHtcbiAgICB0aGlzLl9uKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JjZXMgdGhlIFN0cmVhbSB0byBlbWl0IHRoZSBnaXZlbiBlcnJvciB0byBpdHMgbGlzdGVuZXJzLlxuICAgKlxuICAgKiBBcyB0aGUgbmFtZSBpbmRpY2F0ZXMsIGlmIHlvdSB1c2UgdGhpcywgeW91IGFyZSBtb3N0IGxpa2VseSBkb2luZyBzb21ldGhpbmdcbiAgICogVGhlIFdyb25nIFdheS4gUGxlYXNlIHRyeSB0byB1bmRlcnN0YW5kIHRoZSByZWFjdGl2ZSB3YXkgYmVmb3JlIHVzaW5nIHRoaXNcbiAgICogbWV0aG9kLiBVc2UgaXQgb25seSB3aGVuIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy5cbiAgICpcbiAgICogQHBhcmFtIHthbnl9IGVycm9yIFRoZSBlcnJvciB5b3Ugd2FudCB0byBicm9hZGNhc3QgdG8gYWxsIHRoZSBsaXN0ZW5lcnMgb2ZcbiAgICogdGhpcyBTdHJlYW0uXG4gICAqL1xuICBzaGFtZWZ1bGx5U2VuZEVycm9yKGVycm9yOiBhbnkpIHtcbiAgICB0aGlzLl9lKGVycm9yKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JjZXMgdGhlIFN0cmVhbSB0byBlbWl0IHRoZSBcImNvbXBsZXRlZFwiIGV2ZW50IHRvIGl0cyBsaXN0ZW5lcnMuXG4gICAqXG4gICAqIEFzIHRoZSBuYW1lIGluZGljYXRlcywgaWYgeW91IHVzZSB0aGlzLCB5b3UgYXJlIG1vc3QgbGlrZWx5IGRvaW5nIHNvbWV0aGluZ1xuICAgKiBUaGUgV3JvbmcgV2F5LiBQbGVhc2UgdHJ5IHRvIHVuZGVyc3RhbmQgdGhlIHJlYWN0aXZlIHdheSBiZWZvcmUgdXNpbmcgdGhpc1xuICAgKiBtZXRob2QuIFVzZSBpdCBvbmx5IHdoZW4geW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLlxuICAgKi9cbiAgc2hhbWVmdWxseVNlbmRDb21wbGV0ZSgpIHtcbiAgICB0aGlzLl9jKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIFwiZGVidWdcIiBsaXN0ZW5lciB0byB0aGUgc3RyZWFtLiBUaGVyZSBjYW4gb25seSBiZSBvbmUgZGVidWdcbiAgICogbGlzdGVuZXIsIHRoYXQncyB3aHkgdGhpcyBpcyAnc2V0RGVidWdMaXN0ZW5lcicuIFRvIHJlbW92ZSB0aGUgZGVidWdcbiAgICogbGlzdGVuZXIsIGp1c3QgY2FsbCBzZXREZWJ1Z0xpc3RlbmVyKG51bGwpLlxuICAgKlxuICAgKiBBIGRlYnVnIGxpc3RlbmVyIGlzIGxpa2UgYW55IG90aGVyIGxpc3RlbmVyLiBUaGUgb25seSBkaWZmZXJlbmNlIGlzIHRoYXQgYVxuICAgKiBkZWJ1ZyBsaXN0ZW5lciBpcyBcInN0ZWFsdGh5XCI6IGl0cyBwcmVzZW5jZS9hYnNlbmNlIGRvZXMgbm90IHRyaWdnZXIgdGhlXG4gICAqIHN0YXJ0L3N0b3Agb2YgdGhlIHN0cmVhbSAob3IgdGhlIHByb2R1Y2VyIGluc2lkZSB0aGUgc3RyZWFtKS4gVGhpcyBpc1xuICAgKiB1c2VmdWwgc28geW91IGNhbiBpbnNwZWN0IHdoYXQgaXMgZ29pbmcgb24gd2l0aG91dCBjaGFuZ2luZyB0aGUgYmVoYXZpb3JcbiAgICogb2YgdGhlIHByb2dyYW0uIElmIHlvdSBoYXZlIGFuIGlkbGUgc3RyZWFtIGFuZCB5b3UgYWRkIGEgbm9ybWFsIGxpc3RlbmVyIHRvXG4gICAqIGl0LCB0aGUgc3RyZWFtIHdpbGwgc3RhcnQgZXhlY3V0aW5nLiBCdXQgaWYgeW91IHNldCBhIGRlYnVnIGxpc3RlbmVyIG9uIGFuXG4gICAqIGlkbGUgc3RyZWFtLCBpdCB3b24ndCBzdGFydCBleGVjdXRpbmcgKG5vdCB1bnRpbCB0aGUgZmlyc3Qgbm9ybWFsIGxpc3RlbmVyXG4gICAqIGlzIGFkZGVkKS5cbiAgICpcbiAgICogQXMgdGhlIG5hbWUgaW5kaWNhdGVzLCB3ZSBkb24ndCByZWNvbW1lbmQgdXNpbmcgdGhpcyBtZXRob2QgdG8gYnVpbGQgYXBwXG4gICAqIGxvZ2ljLiBJbiBmYWN0LCBpbiBtb3N0IGNhc2VzIHRoZSBkZWJ1ZyBvcGVyYXRvciB3b3JrcyBqdXN0IGZpbmUuIE9ubHkgdXNlXG4gICAqIHRoaXMgb25lIGlmIHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge0xpc3RlbmVyPFQ+fSBsaXN0ZW5lclxuICAgKi9cbiAgc2V0RGVidWdMaXN0ZW5lcihsaXN0ZW5lcjogUGFydGlhbDxMaXN0ZW5lcjxUPj4gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCFsaXN0ZW5lcikge1xuICAgICAgdGhpcy5fZCA9IGZhbHNlO1xuICAgICAgdGhpcy5fZGwgPSBOTyBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9kID0gdHJ1ZTtcbiAgICAgIChsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+KS5fbiA9IGxpc3RlbmVyLm5leHQgfHwgbm9vcDtcbiAgICAgIChsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+KS5fZSA9IGxpc3RlbmVyLmVycm9yIHx8IG5vb3A7XG4gICAgICAobGlzdGVuZXIgYXMgSW50ZXJuYWxMaXN0ZW5lcjxUPikuX2MgPSBsaXN0ZW5lci5jb21wbGV0ZSB8fCBub29wO1xuICAgICAgdGhpcy5fZGwgPSBsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+O1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTWVtb3J5U3RyZWFtPFQ+IGV4dGVuZHMgU3RyZWFtPFQ+IHtcbiAgcHJpdmF0ZSBfdj86IFQ7XG4gIHByaXZhdGUgX2hhcz86IGJvb2xlYW4gPSBmYWxzZTtcbiAgY29uc3RydWN0b3IocHJvZHVjZXI6IEludGVybmFsUHJvZHVjZXI8VD4pIHtcbiAgICBzdXBlcihwcm9kdWNlcik7XG4gIH1cblxuICBfbih4OiBUKSB7XG4gICAgdGhpcy5fdiA9IHg7XG4gICAgdGhpcy5faGFzID0gdHJ1ZTtcbiAgICBzdXBlci5fbih4KTtcbiAgfVxuXG4gIF9hZGQoaWw6IEludGVybmFsTGlzdGVuZXI8VD4pOiB2b2lkIHtcbiAgICBjb25zdCB0YSA9IHRoaXMuX3RhcmdldDtcbiAgICBpZiAodGEpIHJldHVybiB0YS5fYWRkKGlsKTtcbiAgICBjb25zdCBhID0gdGhpcy5faWxzO1xuICAgIGEucHVzaChpbCk7XG4gICAgaWYgKGEubGVuZ3RoID4gMSkge1xuICAgICAgaWYgKHRoaXMuX2hhcykgaWwuX24odGhpcy5fdiEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5fc3RvcElEICE9PSBOTykge1xuICAgICAgaWYgKHRoaXMuX2hhcykgaWwuX24odGhpcy5fdiEpO1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3N0b3BJRCk7XG4gICAgICB0aGlzLl9zdG9wSUQgPSBOTztcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2hhcykgaWwuX24odGhpcy5fdiEpOyBlbHNlIHtcbiAgICAgIGNvbnN0IHAgPSB0aGlzLl9wcm9kO1xuICAgICAgaWYgKHAgIT09IE5PKSBwLl9zdGFydCh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBfc3RvcE5vdygpIHtcbiAgICB0aGlzLl9oYXMgPSBmYWxzZTtcbiAgICBzdXBlci5fc3RvcE5vdygpO1xuICB9XG5cbiAgX3goKTogdm9pZCB7XG4gICAgdGhpcy5faGFzID0gZmFsc2U7XG4gICAgc3VwZXIuX3goKTtcbiAgfVxuXG4gIG1hcDxVPihwcm9qZWN0OiAodDogVCkgPT4gVSk6IE1lbW9yeVN0cmVhbTxVPiB7XG4gICAgcmV0dXJuIHRoaXMuX21hcChwcm9qZWN0KSBhcyBNZW1vcnlTdHJlYW08VT47XG4gIH1cblxuICBtYXBUbzxVPihwcm9qZWN0ZWRWYWx1ZTogVSk6IE1lbW9yeVN0cmVhbTxVPiB7XG4gICAgcmV0dXJuIHN1cGVyLm1hcFRvKHByb2plY3RlZFZhbHVlKSBhcyBNZW1vcnlTdHJlYW08VT47XG4gIH1cblxuICB0YWtlKGFtb3VudDogbnVtYmVyKTogTWVtb3J5U3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gc3VwZXIudGFrZShhbW91bnQpIGFzIE1lbW9yeVN0cmVhbTxUPjtcbiAgfVxuXG4gIGVuZFdoZW4ob3RoZXI6IFN0cmVhbTxhbnk+KTogTWVtb3J5U3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gc3VwZXIuZW5kV2hlbihvdGhlcikgYXMgTWVtb3J5U3RyZWFtPFQ+O1xuICB9XG5cbiAgcmVwbGFjZUVycm9yKHJlcGxhY2U6IChlcnI6IGFueSkgPT4gU3RyZWFtPFQ+KTogTWVtb3J5U3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gc3VwZXIucmVwbGFjZUVycm9yKHJlcGxhY2UpIGFzIE1lbW9yeVN0cmVhbTxUPjtcbiAgfVxuXG4gIHJlbWVtYmVyKCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkZWJ1ZygpOiBNZW1vcnlTdHJlYW08VD47XG4gIGRlYnVnKGxhYmVsT3JTcHk6IHN0cmluZyk6IE1lbW9yeVN0cmVhbTxUPjtcbiAgZGVidWcobGFiZWxPclNweTogKHQ6IFQpID0+IGFueSk6IE1lbW9yeVN0cmVhbTxUPjtcbiAgZGVidWcobGFiZWxPclNweT86IHN0cmluZyB8ICgodDogVCkgPT4gYW55KSB8IHVuZGVmaW5lZCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIHN1cGVyLmRlYnVnKGxhYmVsT3JTcHkgYXMgYW55KSBhcyBNZW1vcnlTdHJlYW08VD47XG4gIH1cbn1cblxuZXhwb3J0IHsgTk8sIE5PX0lMIH07XG5jb25zdCB4cyA9IFN0cmVhbTtcbnR5cGUgeHM8VD4gPSBTdHJlYW08VD47XG5leHBvcnQgZGVmYXVsdCB4cztcbiJdfQ==","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = create;\nconst is_message_js_1 = require(\"./is-message.js\");\nconst descriptors_js_1 = require(\"./descriptors.js\");\nconst scalar_js_1 = require(\"./reflect/scalar.js\");\nconst guard_js_1 = require(\"./reflect/guard.js\");\nconst unsafe_js_1 = require(\"./reflect/unsafe.js\");\nconst wrappers_js_1 = require(\"./wkt/wrappers.js\");\n// bootstrap-inject google.protobuf.Edition.EDITION_PROTO3: const $name: Edition.$localName = $number;\nconst EDITION_PROTO3 = 999;\n// bootstrap-inject google.protobuf.Edition.EDITION_PROTO2: const $name: Edition.$localName = $number;\nconst EDITION_PROTO2 = 998;\n// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.IMPLICIT: const $name: FeatureSet_FieldPresence.$localName = $number;\nconst IMPLICIT = 2;\n/**\n * Create a new message instance.\n *\n * The second argument is an optional initializer object, where all fields are\n * optional.\n */\nfunction create(schema, init) {\n if ((0, is_message_js_1.isMessage)(init, schema)) {\n return init;\n }\n const message = createZeroMessage(schema);\n if (init !== undefined) {\n initMessage(schema, message, init);\n }\n return message;\n}\n/**\n * Sets field values from a MessageInitShape on a zero message.\n */\nfunction initMessage(messageDesc, message, init) {\n for (const member of messageDesc.members) {\n let value = init[member.localName];\n if (value == null) {\n // intentionally ignore undefined and null\n continue;\n }\n let field;\n if (member.kind == \"oneof\") {\n const oneofField = (0, unsafe_js_1.unsafeOneofCase)(init, member);\n if (!oneofField) {\n continue;\n }\n field = oneofField;\n value = (0, unsafe_js_1.unsafeGet)(init, oneofField);\n }\n else {\n field = member;\n }\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- no need to convert enum\n switch (field.fieldKind) {\n case \"message\":\n value = toMessage(field, value);\n break;\n case \"scalar\":\n value = initScalar(field, value);\n break;\n case \"list\":\n value = initList(field, value);\n break;\n case \"map\":\n value = initMap(field, value);\n break;\n }\n (0, unsafe_js_1.unsafeSet)(message, field, value);\n }\n return message;\n}\nfunction initScalar(field, value) {\n if (field.scalar == descriptors_js_1.ScalarType.BYTES) {\n return toU8Arr(value);\n }\n return value;\n}\nfunction initMap(field, value) {\n if ((0, guard_js_1.isObject)(value)) {\n if (field.scalar == descriptors_js_1.ScalarType.BYTES) {\n return convertObjectValues(value, toU8Arr);\n }\n if (field.mapKind == \"message\") {\n return convertObjectValues(value, (val) => toMessage(field, val));\n }\n }\n return value;\n}\nfunction initList(field, value) {\n if (Array.isArray(value)) {\n if (field.scalar == descriptors_js_1.ScalarType.BYTES) {\n return value.map(toU8Arr);\n }\n if (field.listKind == \"message\") {\n return value.map((item) => toMessage(field, item));\n }\n }\n return value;\n}\nfunction toMessage(field, value) {\n if (field.fieldKind == \"message\" &&\n !field.oneof &&\n (0, wrappers_js_1.isWrapperDesc)(field.message)) {\n // Types from google/protobuf/wrappers.proto are unwrapped when used in\n // a singular field that is not part of a oneof group.\n return initScalar(field.message.fields[0], value);\n }\n if ((0, guard_js_1.isObject)(value)) {\n if (field.message.typeName == \"google.protobuf.Struct\" &&\n field.parent.typeName !== \"google.protobuf.Value\") {\n // google.protobuf.Struct is represented with JsonObject when used in a\n // field, except when used in google.protobuf.Value.\n return value;\n }\n if (!(0, is_message_js_1.isMessage)(value, field.message)) {\n return create(field.message, value);\n }\n }\n return value;\n}\n// converts any ArrayLike to Uint8Array if necessary.\nfunction toU8Arr(value) {\n return Array.isArray(value) ? new Uint8Array(value) : value;\n}\nfunction convertObjectValues(obj, fn) {\n const ret = {};\n for (const entry of Object.entries(obj)) {\n ret[entry[0]] = fn(entry[1]);\n }\n return ret;\n}\nconst tokenZeroMessageField = Symbol();\nconst messagePrototypes = new WeakMap();\n/**\n * Create a zero message.\n */\nfunction createZeroMessage(desc) {\n let msg;\n if (!needsPrototypeChain(desc)) {\n msg = {\n $typeName: desc.typeName,\n };\n for (const member of desc.members) {\n if (member.kind == \"oneof\" || member.presence == IMPLICIT) {\n msg[member.localName] = createZeroField(member);\n }\n }\n }\n else {\n // Support default values and track presence via the prototype chain\n const cached = messagePrototypes.get(desc);\n let prototype;\n let members;\n if (cached) {\n ({ prototype, members } = cached);\n }\n else {\n prototype = {};\n members = new Set();\n for (const member of desc.members) {\n if (member.kind == \"oneof\") {\n // we can only put immutable values on the prototype,\n // oneof ADTs are mutable\n continue;\n }\n if (member.fieldKind != \"scalar\" && member.fieldKind != \"enum\") {\n // only scalar and enum values are immutable, map, list, and message\n // are not\n continue;\n }\n if (member.presence == IMPLICIT) {\n // implicit presence tracks field presence by zero values - e.g. 0, false, \"\", are unset, 1, true, \"x\" are set.\n // message, map, list fields are mutable, and also have IMPLICIT presence.\n continue;\n }\n members.add(member);\n prototype[member.localName] = createZeroField(member);\n }\n messagePrototypes.set(desc, { prototype, members });\n }\n msg = Object.create(prototype);\n msg.$typeName = desc.typeName;\n for (const member of desc.members) {\n if (members.has(member)) {\n continue;\n }\n if (member.kind == \"field\") {\n if (member.fieldKind == \"message\") {\n continue;\n }\n if (member.fieldKind == \"scalar\" || member.fieldKind == \"enum\") {\n if (member.presence != IMPLICIT) {\n continue;\n }\n }\n }\n msg[member.localName] = createZeroField(member);\n }\n }\n return msg;\n}\n/**\n * Do we need the prototype chain to track field presence?\n */\nfunction needsPrototypeChain(desc) {\n switch (desc.file.edition) {\n case EDITION_PROTO3:\n // proto3 always uses implicit presence, we never need the prototype chain.\n return false;\n case EDITION_PROTO2:\n // proto2 never uses implicit presence, we always need the prototype chain.\n return true;\n default:\n // If a message uses scalar or enum fields with explicit presence, we need\n // the prototype chain to track presence. This rule does not apply to fields\n // in a oneof group - they use a different mechanism to track presence.\n return desc.fields.some((f) => f.presence != IMPLICIT && f.fieldKind != \"message\" && !f.oneof);\n }\n}\n/**\n * Returns a zero value for oneof groups, and for every field kind except\n * messages. Scalar and enum fields can have default values.\n */\nfunction createZeroField(field) {\n if (field.kind == \"oneof\") {\n return { case: undefined };\n }\n if (field.fieldKind == \"list\") {\n return [];\n }\n if (field.fieldKind == \"map\") {\n return {}; // Object.create(null) would be desirable here, but is unsupported by react https://react.dev/reference/react/use-server#serializable-parameters-and-return-values\n }\n if (field.fieldKind == \"message\") {\n return tokenZeroMessageField;\n }\n const defaultValue = field.getDefaultValue();\n if (defaultValue !== undefined) {\n return field.fieldKind == \"scalar\" && field.longAsString\n ? defaultValue.toString()\n : defaultValue;\n }\n return field.fieldKind == \"scalar\"\n ? (0, scalar_js_1.scalarZeroValue)(field.scalar, field.longAsString)\n : field.enum.values[0].number;\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScalarType = void 0;\n/**\n * Scalar value types. This is a subset of field types declared by protobuf\n * enum google.protobuf.FieldDescriptorProto.Type The types GROUP and MESSAGE\n * are omitted, but the numerical values are identical.\n */\nvar ScalarType;\n(function (ScalarType) {\n // 0 is reserved for errors.\n // Order is weird for historical reasons.\n ScalarType[ScalarType[\"DOUBLE\"] = 1] = \"DOUBLE\";\n ScalarType[ScalarType[\"FLOAT\"] = 2] = \"FLOAT\";\n // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if\n // negative values are likely.\n ScalarType[ScalarType[\"INT64\"] = 3] = \"INT64\";\n ScalarType[ScalarType[\"UINT64\"] = 4] = \"UINT64\";\n // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if\n // negative values are likely.\n ScalarType[ScalarType[\"INT32\"] = 5] = \"INT32\";\n ScalarType[ScalarType[\"FIXED64\"] = 6] = \"FIXED64\";\n ScalarType[ScalarType[\"FIXED32\"] = 7] = \"FIXED32\";\n ScalarType[ScalarType[\"BOOL\"] = 8] = \"BOOL\";\n ScalarType[ScalarType[\"STRING\"] = 9] = \"STRING\";\n // Tag-delimited aggregate.\n // Group type is deprecated and not supported in proto3. However, Proto3\n // implementations should still be able to parse the group wire format and\n // treat group fields as unknown fields.\n // TYPE_GROUP = 10,\n // TYPE_MESSAGE = 11, // Length-delimited aggregate.\n // New in version 2.\n ScalarType[ScalarType[\"BYTES\"] = 12] = \"BYTES\";\n ScalarType[ScalarType[\"UINT32\"] = 13] = \"UINT32\";\n // TYPE_ENUM = 14,\n ScalarType[ScalarType[\"SFIXED32\"] = 15] = \"SFIXED32\";\n ScalarType[ScalarType[\"SFIXED64\"] = 16] = \"SFIXED64\";\n ScalarType[ScalarType[\"SINT32\"] = 17] = \"SINT32\";\n ScalarType[ScalarType[\"SINT64\"] = 18] = \"SINT64\";\n})(ScalarType || (exports.ScalarType = ScalarType = {}));\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromBinary = fromBinary;\nexports.mergeFromBinary = mergeFromBinary;\nexports.readField = readField;\nconst descriptors_js_1 = require(\"./descriptors.js\");\nconst scalar_js_1 = require(\"./reflect/scalar.js\");\nconst reflect_js_1 = require(\"./reflect/reflect.js\");\nconst binary_encoding_js_1 = require(\"./wire/binary-encoding.js\");\n// Default options for parsing binary data.\nconst readDefaults = {\n readUnknownFields: true,\n};\nfunction makeReadOptions(options) {\n return options ? Object.assign(Object.assign({}, readDefaults), options) : readDefaults;\n}\n/**\n * Parse serialized binary data.\n */\nfunction fromBinary(schema, bytes, options) {\n const msg = (0, reflect_js_1.reflect)(schema, undefined, false);\n readMessage(msg, new binary_encoding_js_1.BinaryReader(bytes), makeReadOptions(options), false, bytes.byteLength);\n return msg.message;\n}\n/**\n * Parse from binary data, merging fields.\n *\n * Repeated fields are appended. Map entries are added, overwriting\n * existing keys.\n *\n * If a message field is already present, it will be merged with the\n * new data.\n */\nfunction mergeFromBinary(schema, target, bytes, options) {\n readMessage((0, reflect_js_1.reflect)(schema, target, false), new binary_encoding_js_1.BinaryReader(bytes), makeReadOptions(options), false, bytes.byteLength);\n return target;\n}\n/**\n * If `delimited` is false, read the length given in `lengthOrDelimitedFieldNo`.\n *\n * If `delimited` is true, read until an EndGroup tag. `lengthOrDelimitedFieldNo`\n * is the expected field number.\n *\n * @private\n */\nfunction readMessage(message, reader, options, delimited, lengthOrDelimitedFieldNo) {\n var _a;\n const end = delimited ? reader.len : reader.pos + lengthOrDelimitedFieldNo;\n let fieldNo, wireType;\n const unknownFields = (_a = message.getUnknown()) !== null && _a !== void 0 ? _a : [];\n while (reader.pos < end) {\n [fieldNo, wireType] = reader.tag();\n if (delimited && wireType == binary_encoding_js_1.WireType.EndGroup) {\n break;\n }\n const field = message.findNumber(fieldNo);\n if (!field) {\n const data = reader.skip(wireType, fieldNo);\n if (options.readUnknownFields) {\n unknownFields.push({ no: fieldNo, wireType, data });\n }\n continue;\n }\n readField(message, reader, field, wireType, options);\n }\n if (delimited) {\n if (wireType != binary_encoding_js_1.WireType.EndGroup || fieldNo !== lengthOrDelimitedFieldNo) {\n throw new Error(`invalid end group tag`);\n }\n }\n if (unknownFields.length > 0) {\n message.setUnknown(unknownFields);\n }\n}\n/**\n * @private\n */\nfunction readField(message, reader, field, wireType, options) {\n switch (field.fieldKind) {\n case \"scalar\":\n message.set(field, readScalar(reader, field.scalar));\n break;\n case \"enum\":\n message.set(field, readScalar(reader, descriptors_js_1.ScalarType.INT32));\n break;\n case \"message\":\n message.set(field, readMessageField(reader, options, field, message.get(field)));\n break;\n case \"list\":\n readListField(reader, wireType, message.get(field), options);\n break;\n case \"map\":\n readMapEntry(reader, message.get(field), options);\n break;\n }\n}\n// Read a map field, expecting key field = 1, value field = 2\nfunction readMapEntry(reader, map, options) {\n const field = map.field();\n let key, val;\n const end = reader.pos + reader.uint32();\n while (reader.pos < end) {\n const [fieldNo] = reader.tag();\n switch (fieldNo) {\n case 1:\n key = readScalar(reader, field.mapKey);\n break;\n case 2:\n switch (field.mapKind) {\n case \"scalar\":\n val = readScalar(reader, field.scalar);\n break;\n case \"enum\":\n val = reader.int32();\n break;\n case \"message\":\n val = readMessageField(reader, options, field);\n break;\n }\n break;\n }\n }\n if (key === undefined) {\n key = (0, scalar_js_1.scalarZeroValue)(field.mapKey, false);\n }\n if (val === undefined) {\n switch (field.mapKind) {\n case \"scalar\":\n val = (0, scalar_js_1.scalarZeroValue)(field.scalar, false);\n break;\n case \"enum\":\n val = field.enum.values[0].number;\n break;\n case \"message\":\n val = (0, reflect_js_1.reflect)(field.message, undefined, false);\n break;\n }\n }\n map.set(key, val);\n}\nfunction readListField(reader, wireType, list, options) {\n var _a;\n const field = list.field();\n if (field.listKind === \"message\") {\n list.add(readMessageField(reader, options, field));\n return;\n }\n const scalarType = (_a = field.scalar) !== null && _a !== void 0 ? _a : descriptors_js_1.ScalarType.INT32;\n const packed = wireType == binary_encoding_js_1.WireType.LengthDelimited &&\n scalarType != descriptors_js_1.ScalarType.STRING &&\n scalarType != descriptors_js_1.ScalarType.BYTES;\n if (!packed) {\n list.add(readScalar(reader, scalarType));\n return;\n }\n const e = reader.uint32() + reader.pos;\n while (reader.pos < e) {\n list.add(readScalar(reader, scalarType));\n }\n}\nfunction readMessageField(reader, options, field, mergeMessage) {\n const delimited = field.delimitedEncoding;\n const message = mergeMessage !== null && mergeMessage !== void 0 ? mergeMessage : (0, reflect_js_1.reflect)(field.message, undefined, false);\n readMessage(message, reader, options, delimited, delimited ? field.number : reader.uint32());\n return message;\n}\nfunction readScalar(reader, type) {\n switch (type) {\n case descriptors_js_1.ScalarType.STRING:\n return reader.string();\n case descriptors_js_1.ScalarType.BOOL:\n return reader.bool();\n case descriptors_js_1.ScalarType.DOUBLE:\n return reader.double();\n case descriptors_js_1.ScalarType.FLOAT:\n return reader.float();\n case descriptors_js_1.ScalarType.INT32:\n return reader.int32();\n case descriptors_js_1.ScalarType.INT64:\n return reader.int64();\n case descriptors_js_1.ScalarType.UINT64:\n return reader.uint64();\n case descriptors_js_1.ScalarType.FIXED64:\n return reader.fixed64();\n case descriptors_js_1.ScalarType.BYTES:\n return reader.bytes();\n case descriptors_js_1.ScalarType.FIXED32:\n return reader.fixed32();\n case descriptors_js_1.ScalarType.SFIXED32:\n return reader.sfixed32();\n case descriptors_js_1.ScalarType.SFIXED64:\n return reader.sfixed64();\n case descriptors_js_1.ScalarType.SINT64:\n return reader.sint64();\n case descriptors_js_1.ScalarType.UINT32:\n return reader.uint32();\n case descriptors_js_1.ScalarType.SINT32:\n return reader.sint32();\n }\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isMessage = isMessage;\n/**\n * Determine whether the given `arg` is a message.\n * If `desc` is set, determine whether `arg` is this specific message.\n */\nfunction isMessage(arg, schema) {\n const isMessage = arg !== null &&\n typeof arg == \"object\" &&\n \"$typeName\" in arg &&\n typeof arg.$typeName == \"string\";\n if (!isMessage) {\n return false;\n }\n if (schema === undefined) {\n return true;\n }\n return schema.typeName === arg.$typeName;\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.protoInt64 = void 0;\nconst varint_js_1 = require(\"./wire/varint.js\");\n/**\n * Int64Support for the current environment.\n */\nexports.protoInt64 = makeInt64Support();\nfunction makeInt64Support() {\n const dv = new DataView(new ArrayBuffer(8));\n // note that Safari 14 implements BigInt, but not the DataView methods\n const ok = typeof BigInt === \"function\" &&\n typeof dv.getBigInt64 === \"function\" &&\n typeof dv.getBigUint64 === \"function\" &&\n typeof dv.setBigInt64 === \"function\" &&\n typeof dv.setBigUint64 === \"function\" &&\n (typeof process != \"object\" ||\n typeof process.env != \"object\" ||\n process.env.BUF_BIGINT_DISABLE !== \"1\");\n if (ok) {\n const MIN = BigInt(\"-9223372036854775808\"), MAX = BigInt(\"9223372036854775807\"), UMIN = BigInt(\"0\"), UMAX = BigInt(\"18446744073709551615\");\n return {\n zero: BigInt(0),\n supported: true,\n parse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > MAX || bi < MIN) {\n throw new Error(`invalid int64: ${value}`);\n }\n return bi;\n },\n uParse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > UMAX || bi < UMIN) {\n throw new Error(`invalid uint64: ${value}`);\n }\n return bi;\n },\n enc(value) {\n dv.setBigInt64(0, this.parse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n uEnc(value) {\n dv.setBigInt64(0, this.uParse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n dec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigInt64(0, true);\n },\n uDec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigUint64(0, true);\n },\n };\n }\n return {\n zero: \"0\",\n supported: false,\n parse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return value;\n },\n uParse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return value;\n },\n enc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return (0, varint_js_1.int64FromString)(value);\n },\n uEnc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return (0, varint_js_1.int64FromString)(value);\n },\n dec(lo, hi) {\n return (0, varint_js_1.int64ToString)(lo, hi);\n },\n uDec(lo, hi) {\n return (0, varint_js_1.uInt64ToString)(lo, hi);\n },\n };\n}\nfunction assertInt64String(value) {\n if (!/^-?[0-9]+$/.test(value)) {\n throw new Error(\"invalid int64: \" + value);\n }\n}\nfunction assertUInt64String(value) {\n if (!/^[0-9]+$/.test(value)) {\n throw new Error(\"invalid uint64: \" + value);\n }\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FieldError = void 0;\nexports.isFieldError = isFieldError;\nconst errorNames = [\n \"FieldValueInvalidError\",\n \"FieldListRangeError\",\n \"ForeignFieldError\",\n];\nclass FieldError extends Error {\n constructor(fieldOrOneof, message, name = \"FieldValueInvalidError\") {\n super(message);\n this.name = name;\n this.field = () => fieldOrOneof;\n }\n}\nexports.FieldError = FieldError;\nfunction isFieldError(arg) {\n return (arg instanceof Error &&\n errorNames.includes(arg.name) &&\n \"field\" in arg &&\n typeof arg.field == \"function\");\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isObject = isObject;\nexports.isOneofADT = isOneofADT;\nexports.isReflectList = isReflectList;\nexports.isReflectMap = isReflectMap;\nexports.isReflectMessage = isReflectMessage;\nconst unsafe_js_1 = require(\"./unsafe.js\");\nfunction isObject(arg) {\n return arg !== null && typeof arg == \"object\" && !Array.isArray(arg);\n}\nfunction isOneofADT(arg) {\n return (arg !== null &&\n typeof arg == \"object\" &&\n \"case\" in arg &&\n ((typeof arg.case == \"string\" && \"value\" in arg && arg.value != null) ||\n (arg.case === undefined &&\n (!(\"value\" in arg) || arg.value === undefined))));\n}\nfunction isReflectList(arg, field) {\n var _a, _b, _c, _d;\n if (isObject(arg) &&\n unsafe_js_1.unsafeLocal in arg &&\n \"add\" in arg &&\n \"field\" in arg &&\n typeof arg.field == \"function\") {\n if (field !== undefined) {\n const a = field, b = arg.field();\n return (a.listKind == b.listKind &&\n a.scalar === b.scalar &&\n ((_a = a.message) === null || _a === void 0 ? void 0 : _a.typeName) === ((_b = b.message) === null || _b === void 0 ? void 0 : _b.typeName) &&\n ((_c = a.enum) === null || _c === void 0 ? void 0 : _c.typeName) === ((_d = b.enum) === null || _d === void 0 ? void 0 : _d.typeName));\n }\n return true;\n }\n return false;\n}\nfunction isReflectMap(arg, field) {\n var _a, _b, _c, _d;\n if (isObject(arg) &&\n unsafe_js_1.unsafeLocal in arg &&\n \"has\" in arg &&\n \"field\" in arg &&\n typeof arg.field == \"function\") {\n if (field !== undefined) {\n const a = field, b = arg.field();\n return (a.mapKey === b.mapKey &&\n a.mapKind == b.mapKind &&\n a.scalar === b.scalar &&\n ((_a = a.message) === null || _a === void 0 ? void 0 : _a.typeName) === ((_b = b.message) === null || _b === void 0 ? void 0 : _b.typeName) &&\n ((_c = a.enum) === null || _c === void 0 ? void 0 : _c.typeName) === ((_d = b.enum) === null || _d === void 0 ? void 0 : _d.typeName));\n }\n return true;\n }\n return false;\n}\nfunction isReflectMessage(arg, messageDesc) {\n return (isObject(arg) &&\n unsafe_js_1.unsafeLocal in arg &&\n \"desc\" in arg &&\n isObject(arg.desc) &&\n arg.desc.kind === \"message\" &&\n (messageDesc === undefined || arg.desc.typeName == messageDesc.typeName));\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkField = checkField;\nexports.checkListItem = checkListItem;\nexports.checkMapEntry = checkMapEntry;\nexports.formatVal = formatVal;\nconst descriptors_js_1 = require(\"../descriptors.js\");\nconst is_message_js_1 = require(\"../is-message.js\");\nconst error_js_1 = require(\"./error.js\");\nconst guard_js_1 = require(\"./guard.js\");\nconst binary_encoding_js_1 = require(\"../wire/binary-encoding.js\");\nconst text_encoding_js_1 = require(\"../wire/text-encoding.js\");\nconst proto_int64_js_1 = require(\"../proto-int64.js\");\n/**\n * Check whether the given field value is valid for the reflect API.\n */\nfunction checkField(field, value) {\n const check = field.fieldKind == \"list\"\n ? (0, guard_js_1.isReflectList)(value, field)\n : field.fieldKind == \"map\"\n ? (0, guard_js_1.isReflectMap)(value, field)\n : checkSingular(field, value);\n if (check === true) {\n return undefined;\n }\n let reason;\n switch (field.fieldKind) {\n case \"list\":\n reason = `expected ${formatReflectList(field)}, got ${formatVal(value)}`;\n break;\n case \"map\":\n reason = `expected ${formatReflectMap(field)}, got ${formatVal(value)}`;\n break;\n default: {\n reason = reasonSingular(field, value, check);\n }\n }\n return new error_js_1.FieldError(field, reason);\n}\n/**\n * Check whether the given list item is valid for the reflect API.\n */\nfunction checkListItem(field, index, value) {\n const check = checkSingular(field, value);\n if (check !== true) {\n return new error_js_1.FieldError(field, `list item #${index + 1}: ${reasonSingular(field, value, check)}`);\n }\n return undefined;\n}\n/**\n * Check whether the given map key and value are valid for the reflect API.\n */\nfunction checkMapEntry(field, key, value) {\n const checkKey = checkScalarValue(key, field.mapKey);\n if (checkKey !== true) {\n return new error_js_1.FieldError(field, `invalid map key: ${reasonSingular({ scalar: field.mapKey }, key, checkKey)}`);\n }\n const checkVal = checkSingular(field, value);\n if (checkVal !== true) {\n return new error_js_1.FieldError(field, `map entry ${formatVal(key)}: ${reasonSingular(field, value, checkVal)}`);\n }\n return undefined;\n}\nfunction checkSingular(field, value) {\n if (field.scalar !== undefined) {\n return checkScalarValue(value, field.scalar);\n }\n if (field.enum !== undefined) {\n if (field.enum.open) {\n return Number.isInteger(value);\n }\n return field.enum.values.some((v) => v.number === value);\n }\n return (0, guard_js_1.isReflectMessage)(value, field.message);\n}\nfunction checkScalarValue(value, scalar) {\n switch (scalar) {\n case descriptors_js_1.ScalarType.DOUBLE:\n return typeof value == \"number\";\n case descriptors_js_1.ScalarType.FLOAT:\n if (typeof value != \"number\") {\n return false;\n }\n if (Number.isNaN(value) || !Number.isFinite(value)) {\n return true;\n }\n if (value > binary_encoding_js_1.FLOAT32_MAX || value < binary_encoding_js_1.FLOAT32_MIN) {\n return `${value.toFixed()} out of range`;\n }\n return true;\n case descriptors_js_1.ScalarType.INT32:\n case descriptors_js_1.ScalarType.SFIXED32:\n case descriptors_js_1.ScalarType.SINT32:\n // signed\n if (typeof value !== \"number\" || !Number.isInteger(value)) {\n return false;\n }\n if (value > binary_encoding_js_1.INT32_MAX || value < binary_encoding_js_1.INT32_MIN) {\n return `${value.toFixed()} out of range`;\n }\n return true;\n case descriptors_js_1.ScalarType.FIXED32:\n case descriptors_js_1.ScalarType.UINT32:\n // unsigned\n if (typeof value !== \"number\" || !Number.isInteger(value)) {\n return false;\n }\n if (value > binary_encoding_js_1.UINT32_MAX || value < 0) {\n return `${value.toFixed()} out of range`;\n }\n return true;\n case descriptors_js_1.ScalarType.BOOL:\n return typeof value == \"boolean\";\n case descriptors_js_1.ScalarType.STRING:\n if (typeof value != \"string\") {\n return false;\n }\n return (0, text_encoding_js_1.getTextEncoding)().checkUtf8(value) || \"invalid UTF8\";\n case descriptors_js_1.ScalarType.BYTES:\n return value instanceof Uint8Array;\n case descriptors_js_1.ScalarType.INT64:\n case descriptors_js_1.ScalarType.SFIXED64:\n case descriptors_js_1.ScalarType.SINT64:\n // signed\n if (typeof value == \"bigint\" ||\n typeof value == \"number\" ||\n (typeof value == \"string\" && value.length > 0)) {\n try {\n proto_int64_js_1.protoInt64.parse(value);\n return true;\n }\n catch (e) {\n return `${value} out of range`;\n }\n }\n return false;\n case descriptors_js_1.ScalarType.FIXED64:\n case descriptors_js_1.ScalarType.UINT64:\n // unsigned\n if (typeof value == \"bigint\" ||\n typeof value == \"number\" ||\n (typeof value == \"string\" && value.length > 0)) {\n try {\n proto_int64_js_1.protoInt64.uParse(value);\n return true;\n }\n catch (e) {\n return `${value} out of range`;\n }\n }\n return false;\n }\n}\nfunction reasonSingular(field, val, details) {\n details =\n typeof details == \"string\" ? `: ${details}` : `, got ${formatVal(val)}`;\n if (field.scalar !== undefined) {\n return `expected ${scalarTypeDescription(field.scalar)}` + details;\n }\n else if (field.enum !== undefined) {\n return `expected ${field.enum.toString()}` + details;\n }\n return `expected ${formatReflectMessage(field.message)}` + details;\n}\nfunction formatVal(val) {\n switch (typeof val) {\n case \"object\":\n if (val === null) {\n return \"null\";\n }\n if (val instanceof Uint8Array) {\n return `Uint8Array(${val.length})`;\n }\n if (Array.isArray(val)) {\n return `Array(${val.length})`;\n }\n if ((0, guard_js_1.isReflectList)(val)) {\n return formatReflectList(val.field());\n }\n if ((0, guard_js_1.isReflectMap)(val)) {\n return formatReflectMap(val.field());\n }\n if ((0, guard_js_1.isReflectMessage)(val)) {\n return formatReflectMessage(val.desc);\n }\n if ((0, is_message_js_1.isMessage)(val)) {\n return `message ${val.$typeName}`;\n }\n return \"object\";\n case \"string\":\n return val.length > 30 ? \"string\" : `\"${val.split('\"').join('\\\\\"')}\"`;\n case \"boolean\":\n return String(val);\n case \"number\":\n return String(val);\n case \"bigint\":\n return String(val) + \"n\";\n default:\n // \"symbol\" | \"undefined\" | \"object\" | \"function\"\n return typeof val;\n }\n}\nfunction formatReflectMessage(desc) {\n return `ReflectMessage (${desc.typeName})`;\n}\nfunction formatReflectList(field) {\n switch (field.listKind) {\n case \"message\":\n return `ReflectList (${field.message.toString()})`;\n case \"enum\":\n return `ReflectList (${field.enum.toString()})`;\n case \"scalar\":\n return `ReflectList (${descriptors_js_1.ScalarType[field.scalar]})`;\n }\n}\nfunction formatReflectMap(field) {\n switch (field.mapKind) {\n case \"message\":\n return `ReflectMap (${descriptors_js_1.ScalarType[field.mapKey]}, ${field.message.toString()})`;\n case \"enum\":\n return `ReflectMap (${descriptors_js_1.ScalarType[field.mapKey]}, ${field.enum.toString()})`;\n case \"scalar\":\n return `ReflectMap (${descriptors_js_1.ScalarType[field.mapKey]}, ${descriptors_js_1.ScalarType[field.scalar]})`;\n }\n}\nfunction scalarTypeDescription(scalar) {\n switch (scalar) {\n case descriptors_js_1.ScalarType.STRING:\n return \"string\";\n case descriptors_js_1.ScalarType.BOOL:\n return \"boolean\";\n case descriptors_js_1.ScalarType.INT64:\n case descriptors_js_1.ScalarType.SINT64:\n case descriptors_js_1.ScalarType.SFIXED64:\n return \"bigint (int64)\";\n case descriptors_js_1.ScalarType.UINT64:\n case descriptors_js_1.ScalarType.FIXED64:\n return \"bigint (uint64)\";\n case descriptors_js_1.ScalarType.BYTES:\n return \"Uint8Array\";\n case descriptors_js_1.ScalarType.DOUBLE:\n return \"number (float64)\";\n case descriptors_js_1.ScalarType.FLOAT:\n return \"number (float32)\";\n case descriptors_js_1.ScalarType.FIXED32:\n case descriptors_js_1.ScalarType.UINT32:\n return \"number (uint32)\";\n case descriptors_js_1.ScalarType.INT32:\n case descriptors_js_1.ScalarType.SFIXED32:\n case descriptors_js_1.ScalarType.SINT32:\n return \"number (int32)\";\n }\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reflect = reflect;\nexports.reflectList = reflectList;\nexports.reflectMap = reflectMap;\nconst descriptors_js_1 = require(\"../descriptors.js\");\nconst reflect_check_js_1 = require(\"./reflect-check.js\");\nconst error_js_1 = require(\"./error.js\");\nconst unsafe_js_1 = require(\"./unsafe.js\");\nconst create_js_1 = require(\"../create.js\");\nconst wrappers_js_1 = require(\"../wkt/wrappers.js\");\nconst scalar_js_1 = require(\"./scalar.js\");\nconst proto_int64_js_1 = require(\"../proto-int64.js\");\nconst guard_js_1 = require(\"./guard.js\");\n/**\n * Create a ReflectMessage.\n */\nfunction reflect(messageDesc, message, \n/**\n * By default, field values are validated when setting them. For example,\n * a value for an uint32 field must be a ECMAScript Number >= 0.\n *\n * When field values are trusted, performance can be improved by disabling\n * checks.\n */\ncheck = true) {\n return new ReflectMessageImpl(messageDesc, message, check);\n}\nclass ReflectMessageImpl {\n get sortedFields() {\n var _a;\n return ((_a = this._sortedFields) !== null && _a !== void 0 ? _a : (this._sortedFields = this.desc.fields\n .concat()\n .sort((a, b) => a.number - b.number)));\n }\n constructor(messageDesc, message, check = true) {\n this.lists = new Map();\n this.maps = new Map();\n this.check = check;\n this.desc = messageDesc;\n this.message = this[unsafe_js_1.unsafeLocal] = message !== null && message !== void 0 ? message : (0, create_js_1.create)(messageDesc);\n this.fields = messageDesc.fields;\n this.oneofs = messageDesc.oneofs;\n this.members = messageDesc.members;\n }\n findNumber(number) {\n if (!this._fieldsByNumber) {\n this._fieldsByNumber = new Map(this.desc.fields.map((f) => [f.number, f]));\n }\n return this._fieldsByNumber.get(number);\n }\n oneofCase(oneof) {\n assertOwn(this.message, oneof);\n return (0, unsafe_js_1.unsafeOneofCase)(this.message, oneof);\n }\n isSet(field) {\n assertOwn(this.message, field);\n return (0, unsafe_js_1.unsafeIsSet)(this.message, field);\n }\n clear(field) {\n assertOwn(this.message, field);\n (0, unsafe_js_1.unsafeClear)(this.message, field);\n }\n get(field) {\n assertOwn(this.message, field);\n const value = (0, unsafe_js_1.unsafeGet)(this.message, field);\n switch (field.fieldKind) {\n case \"list\":\n // eslint-disable-next-line no-case-declarations\n let list = this.lists.get(field);\n if (!list || list[unsafe_js_1.unsafeLocal] !== value) {\n this.lists.set(field, (list = new ReflectListImpl(field, value, this.check)));\n }\n return list;\n case \"map\":\n // eslint-disable-next-line no-case-declarations\n let map = this.maps.get(field);\n if (!map || map[unsafe_js_1.unsafeLocal] !== value) {\n this.maps.set(field, (map = new ReflectMapImpl(field, value, this.check)));\n }\n return map;\n case \"message\":\n return messageToReflect(field, value, this.check);\n case \"scalar\":\n return (value === undefined\n ? (0, scalar_js_1.scalarZeroValue)(field.scalar, false)\n : longToReflect(field, value));\n case \"enum\":\n return (value !== null && value !== void 0 ? value : field.enum.values[0].number);\n }\n }\n set(field, value) {\n assertOwn(this.message, field);\n if (this.check) {\n const err = (0, reflect_check_js_1.checkField)(field, value);\n if (err) {\n throw err;\n }\n }\n let local;\n if (field.fieldKind == \"message\") {\n local = messageToLocal(field, value);\n }\n else if ((0, guard_js_1.isReflectMap)(value) || (0, guard_js_1.isReflectList)(value)) {\n local = value[unsafe_js_1.unsafeLocal];\n }\n else {\n local = longToLocal(field, value);\n }\n (0, unsafe_js_1.unsafeSet)(this.message, field, local);\n }\n getUnknown() {\n return this.message.$unknown;\n }\n setUnknown(value) {\n this.message.$unknown = value;\n }\n}\nfunction assertOwn(owner, member) {\n if (member.parent.typeName !== owner.$typeName) {\n throw new error_js_1.FieldError(member, `cannot use ${member.toString()} with message ${owner.$typeName}`, \"ForeignFieldError\");\n }\n}\n/**\n * Create a ReflectList.\n */\nfunction reflectList(field, unsafeInput, \n/**\n * By default, field values are validated when setting them. For example,\n * a value for an uint32 field must be a ECMAScript Number >= 0.\n *\n * When field values are trusted, performance can be improved by disabling\n * checks.\n */\ncheck = true) {\n return new ReflectListImpl(field, unsafeInput !== null && unsafeInput !== void 0 ? unsafeInput : [], check);\n}\nclass ReflectListImpl {\n field() {\n return this._field;\n }\n get size() {\n return this._arr.length;\n }\n constructor(field, unsafeInput, check) {\n this._field = field;\n this._arr = this[unsafe_js_1.unsafeLocal] = unsafeInput;\n this.check = check;\n }\n get(index) {\n const item = this._arr[index];\n return item === undefined\n ? undefined\n : listItemToReflect(this._field, item, this.check);\n }\n set(index, item) {\n if (index < 0 || index >= this._arr.length) {\n throw new error_js_1.FieldError(this._field, `list item #${index + 1}: out of range`);\n }\n if (this.check) {\n const err = (0, reflect_check_js_1.checkListItem)(this._field, index, item);\n if (err) {\n throw err;\n }\n }\n this._arr[index] = listItemToLocal(this._field, item);\n }\n add(item) {\n if (this.check) {\n const err = (0, reflect_check_js_1.checkListItem)(this._field, this._arr.length, item);\n if (err) {\n throw err;\n }\n }\n this._arr.push(listItemToLocal(this._field, item));\n return undefined;\n }\n clear() {\n this._arr.splice(0, this._arr.length);\n }\n [Symbol.iterator]() {\n return this.values();\n }\n keys() {\n return this._arr.keys();\n }\n *values() {\n for (const item of this._arr) {\n yield listItemToReflect(this._field, item, this.check);\n }\n }\n *entries() {\n for (let i = 0; i < this._arr.length; i++) {\n yield [i, listItemToReflect(this._field, this._arr[i], this.check)];\n }\n }\n}\n/**\n * Create a ReflectMap.\n */\nfunction reflectMap(field, unsafeInput, \n/**\n * By default, field values are validated when setting them. For example,\n * a value for an uint32 field must be a ECMAScript Number >= 0.\n *\n * When field values are trusted, performance can be improved by disabling\n * checks.\n */\ncheck = true) {\n return new ReflectMapImpl(field, unsafeInput, check);\n}\nclass ReflectMapImpl {\n constructor(field, unsafeInput, check = true) {\n this.obj = this[unsafe_js_1.unsafeLocal] = unsafeInput !== null && unsafeInput !== void 0 ? unsafeInput : {};\n this.check = check;\n this._field = field;\n }\n field() {\n return this._field;\n }\n set(key, value) {\n if (this.check) {\n const err = (0, reflect_check_js_1.checkMapEntry)(this._field, key, value);\n if (err) {\n throw err;\n }\n }\n this.obj[mapKeyToLocal(key)] = mapValueToLocal(this._field, value);\n return this;\n }\n delete(key) {\n const k = mapKeyToLocal(key);\n const has = Object.prototype.hasOwnProperty.call(this.obj, k);\n if (has) {\n delete this.obj[k];\n }\n return has;\n }\n clear() {\n for (const key of Object.keys(this.obj)) {\n delete this.obj[key];\n }\n }\n get(key) {\n let val = this.obj[mapKeyToLocal(key)];\n if (val !== undefined) {\n val = mapValueToReflect(this._field, val, this.check);\n }\n return val;\n }\n has(key) {\n return Object.prototype.hasOwnProperty.call(this.obj, mapKeyToLocal(key));\n }\n *keys() {\n for (const objKey of Object.keys(this.obj)) {\n yield mapKeyToReflect(objKey, this._field.mapKey);\n }\n }\n *entries() {\n for (const objEntry of Object.entries(this.obj)) {\n yield [\n mapKeyToReflect(objEntry[0], this._field.mapKey),\n mapValueToReflect(this._field, objEntry[1], this.check),\n ];\n }\n }\n [Symbol.iterator]() {\n return this.entries();\n }\n get size() {\n return Object.keys(this.obj).length;\n }\n *values() {\n for (const val of Object.values(this.obj)) {\n yield mapValueToReflect(this._field, val, this.check);\n }\n }\n forEach(callbackfn, thisArg) {\n for (const mapEntry of this.entries()) {\n callbackfn.call(thisArg, mapEntry[1], mapEntry[0], this);\n }\n }\n}\nfunction messageToLocal(field, value) {\n if (!(0, guard_js_1.isReflectMessage)(value)) {\n return value;\n }\n if ((0, wrappers_js_1.isWrapper)(value.message) &&\n !field.oneof &&\n field.fieldKind == \"message\") {\n // Types from google/protobuf/wrappers.proto are unwrapped when used in\n // a singular field that is not part of a oneof group.\n return value.message.value;\n }\n if (value.desc.typeName == \"google.protobuf.Struct\" &&\n field.parent.typeName != \"google.protobuf.Value\") {\n // google.protobuf.Struct is represented with JsonObject when used in a\n // field, except when used in google.protobuf.Value.\n return wktStructToLocal(value.message);\n }\n return value.message;\n}\nfunction messageToReflect(field, value, check) {\n if (value !== undefined) {\n if ((0, wrappers_js_1.isWrapperDesc)(field.message) &&\n !field.oneof &&\n field.fieldKind == \"message\") {\n // Types from google/protobuf/wrappers.proto are unwrapped when used in\n // a singular field that is not part of a oneof group.\n value = {\n $typeName: field.message.typeName,\n value: longToReflect(field.message.fields[0], value),\n };\n }\n else if (field.message.typeName == \"google.protobuf.Struct\" &&\n field.parent.typeName != \"google.protobuf.Value\" &&\n (0, guard_js_1.isObject)(value)) {\n // google.protobuf.Struct is represented with JsonObject when used in a\n // field, except when used in google.protobuf.Value.\n value = wktStructToReflect(value);\n }\n }\n return new ReflectMessageImpl(field.message, value, check);\n}\nfunction listItemToLocal(field, value) {\n if (field.listKind == \"message\") {\n return messageToLocal(field, value);\n }\n return longToLocal(field, value);\n}\nfunction listItemToReflect(field, value, check) {\n if (field.listKind == \"message\") {\n return messageToReflect(field, value, check);\n }\n return longToReflect(field, value);\n}\nfunction mapValueToLocal(field, value) {\n if (field.mapKind == \"message\") {\n return messageToLocal(field, value);\n }\n return longToLocal(field, value);\n}\nfunction mapValueToReflect(field, value, check) {\n if (field.mapKind == \"message\") {\n return messageToReflect(field, value, check);\n }\n return value;\n}\nfunction mapKeyToLocal(key) {\n return typeof key == \"string\" || typeof key == \"number\" ? key : String(key);\n}\n/**\n * Converts a map key (any scalar value except float, double, or bytes) from its\n * representation in a message (string or number, the only possible object key\n * types) to the closest possible type in ECMAScript.\n */\nfunction mapKeyToReflect(key, type) {\n switch (type) {\n case descriptors_js_1.ScalarType.STRING:\n return key;\n case descriptors_js_1.ScalarType.INT32:\n case descriptors_js_1.ScalarType.FIXED32:\n case descriptors_js_1.ScalarType.UINT32:\n case descriptors_js_1.ScalarType.SFIXED32:\n case descriptors_js_1.ScalarType.SINT32: {\n const n = Number.parseInt(key);\n if (Number.isFinite(n)) {\n return n;\n }\n break;\n }\n case descriptors_js_1.ScalarType.BOOL:\n switch (key) {\n case \"true\":\n return true;\n case \"false\":\n return false;\n }\n break;\n case descriptors_js_1.ScalarType.UINT64:\n case descriptors_js_1.ScalarType.FIXED64:\n try {\n return proto_int64_js_1.protoInt64.uParse(key);\n }\n catch (_a) {\n //\n }\n break;\n default:\n // INT64, SFIXED64, SINT64\n try {\n return proto_int64_js_1.protoInt64.parse(key);\n }\n catch (_b) {\n //\n }\n break;\n }\n return key;\n}\nfunction longToReflect(field, value) {\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (field.scalar) {\n case descriptors_js_1.ScalarType.INT64:\n case descriptors_js_1.ScalarType.SFIXED64:\n case descriptors_js_1.ScalarType.SINT64:\n if (\"longAsString\" in field &&\n field.longAsString &&\n typeof value == \"string\") {\n value = proto_int64_js_1.protoInt64.parse(value);\n }\n break;\n case descriptors_js_1.ScalarType.FIXED64:\n case descriptors_js_1.ScalarType.UINT64:\n if (\"longAsString\" in field &&\n field.longAsString &&\n typeof value == \"string\") {\n value = proto_int64_js_1.protoInt64.uParse(value);\n }\n break;\n }\n return value;\n}\nfunction longToLocal(field, value) {\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (field.scalar) {\n case descriptors_js_1.ScalarType.INT64:\n case descriptors_js_1.ScalarType.SFIXED64:\n case descriptors_js_1.ScalarType.SINT64:\n if (\"longAsString\" in field && field.longAsString) {\n value = String(value);\n }\n else if (typeof value == \"string\" || typeof value == \"number\") {\n value = proto_int64_js_1.protoInt64.parse(value);\n }\n break;\n case descriptors_js_1.ScalarType.FIXED64:\n case descriptors_js_1.ScalarType.UINT64:\n if (\"longAsString\" in field && field.longAsString) {\n value = String(value);\n }\n else if (typeof value == \"string\" || typeof value == \"number\") {\n value = proto_int64_js_1.protoInt64.uParse(value);\n }\n break;\n }\n return value;\n}\nfunction wktStructToReflect(json) {\n const struct = {\n $typeName: \"google.protobuf.Struct\",\n fields: {},\n };\n if ((0, guard_js_1.isObject)(json)) {\n for (const [k, v] of Object.entries(json)) {\n struct.fields[k] = wktValueToReflect(v);\n }\n }\n return struct;\n}\nfunction wktStructToLocal(val) {\n const json = {};\n for (const [k, v] of Object.entries(val.fields)) {\n json[k] = wktValueToLocal(v);\n }\n return json;\n}\nfunction wktValueToLocal(val) {\n switch (val.kind.case) {\n case \"structValue\":\n return wktStructToLocal(val.kind.value);\n case \"listValue\":\n return val.kind.value.values.map(wktValueToLocal);\n case \"nullValue\":\n case undefined:\n return null;\n default:\n return val.kind.value;\n }\n}\nfunction wktValueToReflect(json) {\n const value = {\n $typeName: \"google.protobuf.Value\",\n kind: { case: undefined },\n };\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- invalid input is unselected kind\n switch (typeof json) {\n case \"number\":\n value.kind = { case: \"numberValue\", value: json };\n break;\n case \"string\":\n value.kind = { case: \"stringValue\", value: json };\n break;\n case \"boolean\":\n value.kind = { case: \"boolValue\", value: json };\n break;\n case \"object\":\n if (json === null) {\n const nullValue = 0;\n value.kind = { case: \"nullValue\", value: nullValue };\n }\n else if (Array.isArray(json)) {\n const listValue = {\n $typeName: \"google.protobuf.ListValue\",\n values: [],\n };\n if (Array.isArray(json)) {\n for (const e of json) {\n listValue.values.push(wktValueToReflect(e));\n }\n }\n value.kind = {\n case: \"listValue\",\n value: listValue,\n };\n }\n else {\n value.kind = {\n case: \"structValue\",\n value: wktStructToReflect(json),\n };\n }\n break;\n }\n return value;\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.scalarEquals = scalarEquals;\nexports.scalarZeroValue = scalarZeroValue;\nexports.isScalarZeroValue = isScalarZeroValue;\nconst proto_int64_js_1 = require(\"../proto-int64.js\");\nconst descriptors_js_1 = require(\"../descriptors.js\");\n/**\n * Returns true if both scalar values are equal.\n */\nfunction scalarEquals(type, a, b) {\n if (a === b) {\n // This correctly matches equal values except BYTES and (possibly) 64-bit integers.\n return true;\n }\n // Special case BYTES - we need to compare each byte individually\n if (type == descriptors_js_1.ScalarType.BYTES) {\n if (!(a instanceof Uint8Array) || !(b instanceof Uint8Array)) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n }\n // Special case 64-bit integers - we support number, string and bigint representation.\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (type) {\n case descriptors_js_1.ScalarType.UINT64:\n case descriptors_js_1.ScalarType.FIXED64:\n case descriptors_js_1.ScalarType.INT64:\n case descriptors_js_1.ScalarType.SFIXED64:\n case descriptors_js_1.ScalarType.SINT64:\n // Loose comparison will match between 0n, 0 and \"0\".\n return a == b;\n }\n // Anything that hasn't been caught by strict comparison or special cased\n // BYTES and 64-bit integers is not equal.\n return false;\n}\n/**\n * Returns the zero value for the given scalar type.\n */\nfunction scalarZeroValue(type, longAsString) {\n switch (type) {\n case descriptors_js_1.ScalarType.STRING:\n return \"\";\n case descriptors_js_1.ScalarType.BOOL:\n return false;\n default:\n // Handles INT32, UINT32, SINT32, FIXED32, SFIXED32.\n // We do not use individual cases to save a few bytes code size.\n return 0;\n case descriptors_js_1.ScalarType.DOUBLE:\n case descriptors_js_1.ScalarType.FLOAT:\n return 0.0;\n case descriptors_js_1.ScalarType.INT64:\n case descriptors_js_1.ScalarType.UINT64:\n case descriptors_js_1.ScalarType.SFIXED64:\n case descriptors_js_1.ScalarType.FIXED64:\n case descriptors_js_1.ScalarType.SINT64:\n return (longAsString ? \"0\" : proto_int64_js_1.protoInt64.zero);\n case descriptors_js_1.ScalarType.BYTES:\n return new Uint8Array(0);\n }\n}\n/**\n * Returns true for a zero-value. For example, an integer has the zero-value `0`,\n * a boolean is `false`, a string is `\"\"`, and bytes is an empty Uint8Array.\n *\n * In proto3, zero-values are not written to the wire, unless the field is\n * optional or repeated.\n */\nfunction isScalarZeroValue(type, value) {\n switch (type) {\n case descriptors_js_1.ScalarType.BOOL:\n return value === false;\n case descriptors_js_1.ScalarType.STRING:\n return value === \"\";\n case descriptors_js_1.ScalarType.BYTES:\n return value instanceof Uint8Array && !value.byteLength;\n default:\n return value == 0; // Loose comparison matches 0n, 0 and \"0\"\n }\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unsafeLocal = void 0;\nexports.unsafeOneofCase = unsafeOneofCase;\nexports.unsafeIsSet = unsafeIsSet;\nexports.unsafeIsSetExplicit = unsafeIsSetExplicit;\nexports.unsafeGet = unsafeGet;\nexports.unsafeSet = unsafeSet;\nexports.unsafeClear = unsafeClear;\nconst scalar_js_1 = require(\"./scalar.js\");\n// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.IMPLICIT: const $name: FeatureSet_FieldPresence.$localName = $number;\nconst IMPLICIT = 2;\nexports.unsafeLocal = Symbol.for(\"reflect unsafe local\");\n/**\n * Return the selected field of a oneof group.\n *\n * @private\n */\nfunction unsafeOneofCase(target, // eslint-disable-line @typescript-eslint/no-explicit-any -- `any` is the best choice for dynamic access\noneof) {\n const c = target[oneof.localName].case;\n if (c === undefined) {\n return c;\n }\n return oneof.fields.find((f) => f.localName === c);\n}\n/**\n * Returns true if the field is set.\n *\n * @private\n */\nfunction unsafeIsSet(target, // eslint-disable-line @typescript-eslint/no-explicit-any -- `any` is the best choice for dynamic access\nfield) {\n const name = field.localName;\n if (field.oneof) {\n return target[field.oneof.localName].case === name; // eslint-disable-line @typescript-eslint/no-unsafe-member-access\n }\n if (field.presence != IMPLICIT) {\n // Fields with explicit presence have properties on the prototype chain\n // for default / zero values (except for proto3).\n return (target[name] !== undefined &&\n Object.prototype.hasOwnProperty.call(target, name));\n }\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (field.fieldKind) {\n case \"list\":\n return target[name].length > 0;\n case \"map\":\n return Object.keys(target[name]).length > 0; // eslint-disable-line @typescript-eslint/no-unsafe-argument\n case \"scalar\":\n return !(0, scalar_js_1.isScalarZeroValue)(field.scalar, target[name]);\n case \"enum\":\n return target[name] !== field.enum.values[0].number;\n }\n throw new Error(\"message field with implicit presence\");\n}\n/**\n * Returns true if the field is set, but only for singular fields with explicit\n * presence (proto2).\n *\n * @private\n */\nfunction unsafeIsSetExplicit(target, localName) {\n return (Object.prototype.hasOwnProperty.call(target, localName) &&\n target[localName] !== undefined);\n}\n/**\n * Return a field value, respecting oneof groups.\n *\n * @private\n */\nfunction unsafeGet(target, field) {\n if (field.oneof) {\n const oneof = target[field.oneof.localName];\n if (oneof.case === field.localName) {\n return oneof.value;\n }\n return undefined;\n }\n return target[field.localName];\n}\n/**\n * Set a field value, respecting oneof groups.\n *\n * @private\n */\nfunction unsafeSet(target, field, value) {\n if (field.oneof) {\n target[field.oneof.localName] = {\n case: field.localName,\n value: value,\n };\n }\n else {\n target[field.localName] = value;\n }\n}\n/**\n * Resets the field, so that unsafeIsSet() will return false.\n *\n * @private\n */\nfunction unsafeClear(target, // eslint-disable-line @typescript-eslint/no-explicit-any -- `any` is the best choice for dynamic access\nfield) {\n const name = field.localName;\n if (field.oneof) {\n const oneofLocalName = field.oneof.localName;\n if (target[oneofLocalName].case === name) {\n target[oneofLocalName] = { case: undefined };\n }\n }\n else if (field.presence != IMPLICIT) {\n // Fields with explicit presence have properties on the prototype chain\n // for default / zero values (except for proto3). By deleting their own\n // property, the field is reset.\n delete target[name];\n }\n else {\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (field.fieldKind) {\n case \"map\":\n target[name] = {};\n break;\n case \"list\":\n target[name] = [];\n break;\n case \"enum\":\n target[name] = field.enum.values[0].number;\n break;\n case \"scalar\":\n target[name] = (0, scalar_js_1.scalarZeroValue)(field.scalar, field.longAsString);\n break;\n }\n }\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBinary = toBinary;\nexports.writeField = writeField;\nconst reflect_js_1 = require(\"./reflect/reflect.js\");\nconst binary_encoding_js_1 = require(\"./wire/binary-encoding.js\");\nconst descriptors_js_1 = require(\"./descriptors.js\");\n// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.LEGACY_REQUIRED: const $name: FeatureSet_FieldPresence.$localName = $number;\nconst LEGACY_REQUIRED = 3;\n// Default options for serializing binary data.\nconst writeDefaults = {\n writeUnknownFields: true,\n};\nfunction makeWriteOptions(options) {\n return options ? Object.assign(Object.assign({}, writeDefaults), options) : writeDefaults;\n}\nfunction toBinary(schema, message, options) {\n return writeFields(new binary_encoding_js_1.BinaryWriter(), makeWriteOptions(options), (0, reflect_js_1.reflect)(schema, message)).finish();\n}\nfunction writeFields(writer, opts, msg) {\n var _a;\n for (const f of msg.sortedFields) {\n if (!msg.isSet(f)) {\n if (f.presence == LEGACY_REQUIRED) {\n throw new Error(`cannot encode field ${msg.desc.typeName}.${f.name} to binary: required field not set`);\n }\n continue;\n }\n writeField(writer, opts, msg, f);\n }\n if (opts.writeUnknownFields) {\n for (const { no, wireType, data } of (_a = msg.getUnknown()) !== null && _a !== void 0 ? _a : []) {\n writer.tag(no, wireType).raw(data);\n }\n }\n return writer;\n}\n/**\n * @private\n */\nfunction writeField(writer, opts, msg, field) {\n var _a;\n switch (field.fieldKind) {\n case \"scalar\":\n case \"enum\":\n writeScalar(writer, msg.desc.typeName, field.name, (_a = field.scalar) !== null && _a !== void 0 ? _a : descriptors_js_1.ScalarType.INT32, field.number, msg.get(field));\n break;\n case \"list\":\n writeListField(writer, opts, field, msg.get(field));\n break;\n case \"message\":\n writeMessageField(writer, opts, field, msg.get(field));\n break;\n case \"map\":\n for (const [key, val] of msg.get(field)) {\n writeMapEntry(writer, opts, field, key, val);\n }\n break;\n }\n}\nfunction writeScalar(writer, msgName, fieldName, scalarType, fieldNo, value) {\n writeScalarValue(writer.tag(fieldNo, writeTypeOfScalar(scalarType)), msgName, fieldName, scalarType, value);\n}\nfunction writeMessageField(writer, opts, field, message) {\n if (field.delimitedEncoding) {\n writeFields(writer.tag(field.number, binary_encoding_js_1.WireType.StartGroup), opts, message).tag(field.number, binary_encoding_js_1.WireType.EndGroup);\n }\n else {\n writeFields(writer.tag(field.number, binary_encoding_js_1.WireType.LengthDelimited).fork(), opts, message).join();\n }\n}\nfunction writeListField(writer, opts, field, list) {\n var _a;\n if (field.listKind == \"message\") {\n for (const item of list) {\n writeMessageField(writer, opts, field, item);\n }\n return;\n }\n const scalarType = (_a = field.scalar) !== null && _a !== void 0 ? _a : descriptors_js_1.ScalarType.INT32;\n if (field.packed) {\n if (!list.size) {\n return;\n }\n writer.tag(field.number, binary_encoding_js_1.WireType.LengthDelimited).fork();\n for (const item of list) {\n writeScalarValue(writer, field.parent.typeName, field.name, scalarType, item);\n }\n writer.join();\n return;\n }\n for (const item of list) {\n writeScalar(writer, field.parent.typeName, field.name, scalarType, field.number, item);\n }\n}\nfunction writeMapEntry(writer, opts, field, key, value) {\n var _a;\n writer.tag(field.number, binary_encoding_js_1.WireType.LengthDelimited).fork();\n // write key, expecting key field number = 1\n writeScalar(writer, field.parent.typeName, field.name, field.mapKey, 1, key);\n // write value, expecting value field number = 2\n switch (field.mapKind) {\n case \"scalar\":\n case \"enum\":\n writeScalar(writer, field.parent.typeName, field.name, (_a = field.scalar) !== null && _a !== void 0 ? _a : descriptors_js_1.ScalarType.INT32, 2, value);\n break;\n case \"message\":\n writeFields(writer.tag(2, binary_encoding_js_1.WireType.LengthDelimited).fork(), opts, value).join();\n break;\n }\n writer.join();\n}\nfunction writeScalarValue(writer, msgName, fieldName, type, value) {\n try {\n switch (type) {\n case descriptors_js_1.ScalarType.STRING:\n writer.string(value);\n break;\n case descriptors_js_1.ScalarType.BOOL:\n writer.bool(value);\n break;\n case descriptors_js_1.ScalarType.DOUBLE:\n writer.double(value);\n break;\n case descriptors_js_1.ScalarType.FLOAT:\n writer.float(value);\n break;\n case descriptors_js_1.ScalarType.INT32:\n writer.int32(value);\n break;\n case descriptors_js_1.ScalarType.INT64:\n writer.int64(value);\n break;\n case descriptors_js_1.ScalarType.UINT64:\n writer.uint64(value);\n break;\n case descriptors_js_1.ScalarType.FIXED64:\n writer.fixed64(value);\n break;\n case descriptors_js_1.ScalarType.BYTES:\n writer.bytes(value);\n break;\n case descriptors_js_1.ScalarType.FIXED32:\n writer.fixed32(value);\n break;\n case descriptors_js_1.ScalarType.SFIXED32:\n writer.sfixed32(value);\n break;\n case descriptors_js_1.ScalarType.SFIXED64:\n writer.sfixed64(value);\n break;\n case descriptors_js_1.ScalarType.SINT64:\n writer.sint64(value);\n break;\n case descriptors_js_1.ScalarType.UINT32:\n writer.uint32(value);\n break;\n case descriptors_js_1.ScalarType.SINT32:\n writer.sint32(value);\n break;\n }\n }\n catch (e) {\n if (e instanceof Error) {\n throw new Error(`cannot encode field ${msgName}.${fieldName} to binary: ${e.message}`);\n }\n throw e;\n }\n}\nfunction writeTypeOfScalar(type) {\n switch (type) {\n case descriptors_js_1.ScalarType.BYTES:\n case descriptors_js_1.ScalarType.STRING:\n return binary_encoding_js_1.WireType.LengthDelimited;\n case descriptors_js_1.ScalarType.DOUBLE:\n case descriptors_js_1.ScalarType.FIXED64:\n case descriptors_js_1.ScalarType.SFIXED64:\n return binary_encoding_js_1.WireType.Bit64;\n case descriptors_js_1.ScalarType.FIXED32:\n case descriptors_js_1.ScalarType.SFIXED32:\n case descriptors_js_1.ScalarType.FLOAT:\n return binary_encoding_js_1.WireType.Bit32;\n default:\n return binary_encoding_js_1.WireType.Varint;\n }\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.base64Decode = base64Decode;\nexports.base64Encode = base64Encode;\n/* eslint-disable @typescript-eslint/ban-ts-comment, @typescript-eslint/no-unnecessary-condition, prefer-const */\n/**\n * Decodes a base64 string to a byte array.\n *\n * - ignores white-space, including line breaks and tabs\n * - allows inner padding (can decode concatenated base64 strings)\n * - does not require padding\n * - understands base64url encoding:\n * \"-\" instead of \"+\",\n * \"_\" instead of \"/\",\n * no padding\n */\nfunction base64Decode(base64Str) {\n const table = getDecodeTable();\n // estimate byte size, not accounting for inner padding and whitespace\n let es = (base64Str.length * 3) / 4;\n if (base64Str[base64Str.length - 2] == \"=\")\n es -= 2;\n else if (base64Str[base64Str.length - 1] == \"=\")\n es -= 1;\n let bytes = new Uint8Array(es), bytePos = 0, // position in byte array\n groupPos = 0, // position in base64 group\n b, // current byte\n p = 0; // previous byte\n for (let i = 0; i < base64Str.length; i++) {\n b = table[base64Str.charCodeAt(i)];\n if (b === undefined) {\n switch (base64Str[i]) {\n // @ts-expect-error TS7029: Fallthrough case in switch\n case \"=\":\n groupPos = 0; // reset state when padding found\n // eslint-disable-next-line no-fallthrough\n case \"\\n\":\n case \"\\r\":\n case \"\\t\":\n case \" \":\n continue; // skip white-space, and padding\n default:\n throw Error(\"invalid base64 string\");\n }\n }\n switch (groupPos) {\n case 0:\n p = b;\n groupPos = 1;\n break;\n case 1:\n bytes[bytePos++] = (p << 2) | ((b & 48) >> 4);\n p = b;\n groupPos = 2;\n break;\n case 2:\n bytes[bytePos++] = ((p & 15) << 4) | ((b & 60) >> 2);\n p = b;\n groupPos = 3;\n break;\n case 3:\n bytes[bytePos++] = ((p & 3) << 6) | b;\n groupPos = 0;\n break;\n }\n }\n if (groupPos == 1)\n throw Error(\"invalid base64 string\");\n return bytes.subarray(0, bytePos);\n}\n/**\n * Encode a byte array to a base64 string.\n *\n * By default, this function uses the standard base64 encoding with padding.\n *\n * To encode without padding, use encoding = \"std_raw\".\n *\n * To encode with the URL encoding, use encoding = \"url\", which replaces the\n * characters +/ by their URL-safe counterparts -_, and omits padding.\n */\nfunction base64Encode(bytes, encoding = \"std\") {\n const table = getEncodeTable(encoding);\n const pad = encoding == \"std\";\n let base64 = \"\", groupPos = 0, // position in base64 group\n b, // current byte\n p = 0; // carry over from previous byte\n for (let i = 0; i < bytes.length; i++) {\n b = bytes[i];\n switch (groupPos) {\n case 0:\n base64 += table[b >> 2];\n p = (b & 3) << 4;\n groupPos = 1;\n break;\n case 1:\n base64 += table[p | (b >> 4)];\n p = (b & 15) << 2;\n groupPos = 2;\n break;\n case 2:\n base64 += table[p | (b >> 6)];\n base64 += table[b & 63];\n groupPos = 0;\n break;\n }\n }\n // add output padding\n if (groupPos) {\n base64 += table[p];\n if (pad) {\n base64 += \"=\";\n if (groupPos == 1)\n base64 += \"=\";\n }\n }\n return base64;\n}\n// lookup table from base64 character to byte\nlet encodeTableStd;\nlet encodeTableUrl;\n// lookup table from base64 character *code* to byte because lookup by number is fast\nlet decodeTable;\nfunction getEncodeTable(encoding) {\n if (!encodeTableStd) {\n encodeTableStd =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\".split(\"\");\n encodeTableUrl = encodeTableStd.slice(0, -2).concat(\"-\", \"_\");\n }\n return encoding == \"url\" ? encodeTableUrl : encodeTableStd;\n}\nfunction getDecodeTable() {\n if (!decodeTable) {\n decodeTable = [];\n const encodeTable = getEncodeTable(\"std\");\n for (let i = 0; i < encodeTable.length; i++)\n decodeTable[encodeTable[i].charCodeAt(0)] = i;\n // support base64url variants\n decodeTable[\"-\".charCodeAt(0)] = encodeTable.indexOf(\"+\");\n decodeTable[\"_\".charCodeAt(0)] = encodeTable.indexOf(\"/\");\n }\n return decodeTable;\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BinaryReader = exports.BinaryWriter = exports.INT32_MIN = exports.INT32_MAX = exports.UINT32_MAX = exports.FLOAT32_MIN = exports.FLOAT32_MAX = exports.WireType = void 0;\nconst varint_js_1 = require(\"./varint.js\");\nconst proto_int64_js_1 = require(\"../proto-int64.js\");\nconst text_encoding_js_1 = require(\"./text-encoding.js\");\n/* eslint-disable prefer-const,no-case-declarations,@typescript-eslint/restrict-plus-operands */\n/**\n * Protobuf binary format wire types.\n *\n * A wire type provides just enough information to find the length of the\n * following value.\n *\n * See https://developers.google.com/protocol-buffers/docs/encoding#structure\n */\nvar WireType;\n(function (WireType) {\n /**\n * Used for int32, int64, uint32, uint64, sint32, sint64, bool, enum\n */\n WireType[WireType[\"Varint\"] = 0] = \"Varint\";\n /**\n * Used for fixed64, sfixed64, double.\n * Always 8 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit64\"] = 1] = \"Bit64\";\n /**\n * Used for string, bytes, embedded messages, packed repeated fields\n *\n * Only repeated numeric types (types which use the varint, 32-bit,\n * or 64-bit wire types) can be packed. In proto3, such fields are\n * packed by default.\n */\n WireType[WireType[\"LengthDelimited\"] = 2] = \"LengthDelimited\";\n /**\n * Start of a tag-delimited aggregate, such as a proto2 group, or a message\n * in editions with message_encoding = DELIMITED.\n */\n WireType[WireType[\"StartGroup\"] = 3] = \"StartGroup\";\n /**\n * End of a tag-delimited aggregate.\n */\n WireType[WireType[\"EndGroup\"] = 4] = \"EndGroup\";\n /**\n * Used for fixed32, sfixed32, float.\n * Always 4 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit32\"] = 5] = \"Bit32\";\n})(WireType || (exports.WireType = WireType = {}));\n/**\n * Maximum value for a 32-bit floating point value (Protobuf FLOAT).\n */\nexports.FLOAT32_MAX = 3.4028234663852886e38;\n/**\n * Minimum value for a 32-bit floating point value (Protobuf FLOAT).\n */\nexports.FLOAT32_MIN = -3.4028234663852886e38;\n/**\n * Maximum value for an unsigned 32-bit integer (Protobuf UINT32, FIXED32).\n */\nexports.UINT32_MAX = 0xffffffff;\n/**\n * Maximum value for a signed 32-bit integer (Protobuf INT32, SFIXED32, SINT32).\n */\nexports.INT32_MAX = 0x7fffffff;\n/**\n * Minimum value for a signed 32-bit integer (Protobuf INT32, SFIXED32, SINT32).\n */\nexports.INT32_MIN = -0x80000000;\nclass BinaryWriter {\n constructor(encodeUtf8 = (0, text_encoding_js_1.getTextEncoding)().encodeUtf8) {\n this.encodeUtf8 = encodeUtf8;\n /**\n * Previous fork states.\n */\n this.stack = [];\n this.chunks = [];\n this.buf = [];\n }\n /**\n * Return all bytes written and reset this writer.\n */\n finish() {\n if (this.buf.length) {\n this.chunks.push(new Uint8Array(this.buf)); // flush the buffer\n this.buf = [];\n }\n let len = 0;\n for (let i = 0; i < this.chunks.length; i++)\n len += this.chunks[i].length;\n let bytes = new Uint8Array(len);\n let offset = 0;\n for (let i = 0; i < this.chunks.length; i++) {\n bytes.set(this.chunks[i], offset);\n offset += this.chunks[i].length;\n }\n this.chunks = [];\n return bytes;\n }\n /**\n * Start a new fork for length-delimited data like a message\n * or a packed repeated field.\n *\n * Must be joined later with `join()`.\n */\n fork() {\n this.stack.push({ chunks: this.chunks, buf: this.buf });\n this.chunks = [];\n this.buf = [];\n return this;\n }\n /**\n * Join the last fork. Write its length and bytes, then\n * return to the previous state.\n */\n join() {\n // get chunk of fork\n let chunk = this.finish();\n // restore previous state\n let prev = this.stack.pop();\n if (!prev)\n throw new Error(\"invalid state, fork stack empty\");\n this.chunks = prev.chunks;\n this.buf = prev.buf;\n // write length of chunk as varint\n this.uint32(chunk.byteLength);\n return this.raw(chunk);\n }\n /**\n * Writes a tag (field number and wire type).\n *\n * Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`.\n *\n * Generated code should compute the tag ahead of time and call `uint32()`.\n */\n tag(fieldNo, type) {\n return this.uint32(((fieldNo << 3) | type) >>> 0);\n }\n /**\n * Write a chunk of raw bytes.\n */\n raw(chunk) {\n if (this.buf.length) {\n this.chunks.push(new Uint8Array(this.buf));\n this.buf = [];\n }\n this.chunks.push(chunk);\n return this;\n }\n /**\n * Write a `uint32` value, an unsigned 32 bit varint.\n */\n uint32(value) {\n assertUInt32(value);\n // write value as varint 32, inlined for speed\n while (value > 0x7f) {\n this.buf.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n this.buf.push(value);\n return this;\n }\n /**\n * Write a `int32` value, a signed 32 bit varint.\n */\n int32(value) {\n assertInt32(value);\n (0, varint_js_1.varint32write)(value, this.buf);\n return this;\n }\n /**\n * Write a `bool` value, a variant.\n */\n bool(value) {\n this.buf.push(value ? 1 : 0);\n return this;\n }\n /**\n * Write a `bytes` value, length-delimited arbitrary data.\n */\n bytes(value) {\n this.uint32(value.byteLength); // write length of chunk as varint\n return this.raw(value);\n }\n /**\n * Write a `string` value, length-delimited data converted to UTF-8 text.\n */\n string(value) {\n let chunk = this.encodeUtf8(value);\n this.uint32(chunk.byteLength); // write length of chunk as varint\n return this.raw(chunk);\n }\n /**\n * Write a `float` value, 32-bit floating point number.\n */\n float(value) {\n assertFloat32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setFloat32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `double` value, a 64-bit floating point number.\n */\n double(value) {\n let chunk = new Uint8Array(8);\n new DataView(chunk.buffer).setFloat64(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed32` value, an unsigned, fixed-length 32-bit integer.\n */\n fixed32(value) {\n assertUInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setUint32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sfixed32` value, a signed, fixed-length 32-bit integer.\n */\n sfixed32(value) {\n assertInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setInt32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sint32` value, a signed, zigzag-encoded 32-bit varint.\n */\n sint32(value) {\n assertInt32(value);\n // zigzag encode\n value = ((value << 1) ^ (value >> 31)) >>> 0;\n (0, varint_js_1.varint32write)(value, this.buf);\n return this;\n }\n /**\n * Write a `fixed64` value, a signed, fixed-length 64-bit integer.\n */\n sfixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = proto_int64_js_1.protoInt64.enc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed64` value, an unsigned, fixed-length 64 bit integer.\n */\n fixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = proto_int64_js_1.protoInt64.uEnc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `int64` value, a signed 64-bit varint.\n */\n int64(value) {\n let tc = proto_int64_js_1.protoInt64.enc(value);\n (0, varint_js_1.varint64write)(tc.lo, tc.hi, this.buf);\n return this;\n }\n /**\n * Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64(value) {\n let tc = proto_int64_js_1.protoInt64.enc(value), \n // zigzag encode\n sign = tc.hi >> 31, lo = (tc.lo << 1) ^ sign, hi = ((tc.hi << 1) | (tc.lo >>> 31)) ^ sign;\n (0, varint_js_1.varint64write)(lo, hi, this.buf);\n return this;\n }\n /**\n * Write a `uint64` value, an unsigned 64-bit varint.\n */\n uint64(value) {\n let tc = proto_int64_js_1.protoInt64.uEnc(value);\n (0, varint_js_1.varint64write)(tc.lo, tc.hi, this.buf);\n return this;\n }\n}\nexports.BinaryWriter = BinaryWriter;\nclass BinaryReader {\n constructor(buf, decodeUtf8 = (0, text_encoding_js_1.getTextEncoding)().decodeUtf8) {\n this.decodeUtf8 = decodeUtf8;\n this.varint64 = varint_js_1.varint64read; // dirty cast for `this`\n /**\n * Read a `uint32` field, an unsigned 32 bit varint.\n */\n this.uint32 = varint_js_1.varint32read;\n this.buf = buf;\n this.len = buf.length;\n this.pos = 0;\n this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n /**\n * Reads a tag - field number and wire type.\n */\n tag() {\n let tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7;\n if (fieldNo <= 0 || wireType < 0 || wireType > 5)\n throw new Error(\"illegal tag: field no \" + fieldNo + \" wire type \" + wireType);\n return [fieldNo, wireType];\n }\n /**\n * Skip one element and return the skipped data.\n *\n * When skipping StartGroup, provide the tags field number to check for\n * matching field number in the EndGroup tag.\n */\n skip(wireType, fieldNo) {\n let start = this.pos;\n switch (wireType) {\n case WireType.Varint:\n while (this.buf[this.pos++] & 0x80) {\n // ignore\n }\n break;\n // eslint-disable-next-line\n // @ts-expect-error TS7029: Fallthrough case in switch\n case WireType.Bit64:\n this.pos += 4;\n // eslint-disable-next-line no-fallthrough\n case WireType.Bit32:\n this.pos += 4;\n break;\n case WireType.LengthDelimited:\n let len = this.uint32();\n this.pos += len;\n break;\n case WireType.StartGroup:\n for (;;) {\n const [fn, wt] = this.tag();\n if (wt === WireType.EndGroup) {\n if (fieldNo !== undefined && fn !== fieldNo) {\n throw new Error(\"invalid end group tag\");\n }\n break;\n }\n this.skip(wt, fn);\n }\n break;\n default:\n throw new Error(\"cant skip wire type \" + wireType);\n }\n this.assertBounds();\n return this.buf.subarray(start, this.pos);\n }\n /**\n * Throws error if position in byte array is out of range.\n */\n assertBounds() {\n if (this.pos > this.len)\n throw new RangeError(\"premature EOF\");\n }\n /**\n * Read a `int32` field, a signed 32 bit varint.\n */\n int32() {\n return this.uint32() | 0;\n }\n /**\n * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.\n */\n sint32() {\n let zze = this.uint32();\n // decode zigzag\n return (zze >>> 1) ^ -(zze & 1);\n }\n /**\n * Read a `int64` field, a signed 64-bit varint.\n */\n int64() {\n return proto_int64_js_1.protoInt64.dec(...this.varint64());\n }\n /**\n * Read a `uint64` field, an unsigned 64-bit varint.\n */\n uint64() {\n return proto_int64_js_1.protoInt64.uDec(...this.varint64());\n }\n /**\n * Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64() {\n let [lo, hi] = this.varint64();\n // decode zig zag\n let s = -(lo & 1);\n lo = ((lo >>> 1) | ((hi & 1) << 31)) ^ s;\n hi = (hi >>> 1) ^ s;\n return proto_int64_js_1.protoInt64.dec(lo, hi);\n }\n /**\n * Read a `bool` field, a variant.\n */\n bool() {\n let [lo, hi] = this.varint64();\n return lo !== 0 || hi !== 0;\n }\n /**\n * Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.\n */\n fixed32() {\n return this.view.getUint32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `sfixed32` field, a signed, fixed-length 32-bit integer.\n */\n sfixed32() {\n return this.view.getInt32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.\n */\n fixed64() {\n return proto_int64_js_1.protoInt64.uDec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `fixed64` field, a signed, fixed-length 64-bit integer.\n */\n sfixed64() {\n return proto_int64_js_1.protoInt64.dec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `float` field, 32-bit floating point number.\n */\n float() {\n return this.view.getFloat32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `double` field, a 64-bit floating point number.\n */\n double() {\n return this.view.getFloat64((this.pos += 8) - 8, true);\n }\n /**\n * Read a `bytes` field, length-delimited arbitrary data.\n */\n bytes() {\n let len = this.uint32(), start = this.pos;\n this.pos += len;\n this.assertBounds();\n return this.buf.subarray(start, start + len);\n }\n /**\n * Read a `string` field, length-delimited data converted to UTF-8 text.\n */\n string() {\n return this.decodeUtf8(this.bytes());\n }\n}\nexports.BinaryReader = BinaryReader;\n/**\n * Assert a valid signed protobuf 32-bit integer as a number or string.\n */\nfunction assertInt32(arg) {\n if (typeof arg == \"string\") {\n arg = Number(arg);\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid int32: \" + typeof arg);\n }\n if (!Number.isInteger(arg) ||\n arg > exports.INT32_MAX ||\n arg < exports.INT32_MIN)\n throw new Error(\"invalid int32: \" + arg);\n}\n/**\n * Assert a valid unsigned protobuf 32-bit integer as a number or string.\n */\nfunction assertUInt32(arg) {\n if (typeof arg == \"string\") {\n arg = Number(arg);\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid uint32: \" + typeof arg);\n }\n if (!Number.isInteger(arg) ||\n arg > exports.UINT32_MAX ||\n arg < 0)\n throw new Error(\"invalid uint32: \" + arg);\n}\n/**\n * Assert a valid protobuf float value as a number or string.\n */\nfunction assertFloat32(arg) {\n if (typeof arg == \"string\") {\n const o = arg;\n arg = Number(arg);\n if (isNaN(arg) && o !== \"NaN\") {\n throw new Error(\"invalid float32: \" + o);\n }\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid float32: \" + typeof arg);\n }\n if (Number.isFinite(arg) &&\n (arg > exports.FLOAT32_MAX || arg < exports.FLOAT32_MIN))\n throw new Error(\"invalid float32: \" + arg);\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./binary-encoding.js\"), exports);\n__exportStar(require(\"./base64-encoding.js\"), exports);\n__exportStar(require(\"./text-encoding.js\"), exports);\n__exportStar(require(\"./text-format.js\"), exports);\n__exportStar(require(\"./size-delimited.js\"), exports);\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sizeDelimitedEncode = sizeDelimitedEncode;\nexports.sizeDelimitedDecodeStream = sizeDelimitedDecodeStream;\nexports.sizeDelimitedPeek = sizeDelimitedPeek;\nconst to_binary_js_1 = require(\"../to-binary.js\");\nconst binary_encoding_js_1 = require(\"./binary-encoding.js\");\nconst from_binary_js_1 = require(\"../from-binary.js\");\n/**\n * Serialize a message, prefixing it with its size.\n *\n * A size-delimited message is a varint size in bytes, followed by exactly\n * that many bytes of a message serialized with the binary format.\n *\n * This size-delimited format is compatible with other implementations.\n * For details, see https://github.com/protocolbuffers/protobuf/issues/10229\n */\nfunction sizeDelimitedEncode(messageDesc, message, options) {\n const writer = new binary_encoding_js_1.BinaryWriter();\n writer.bytes((0, to_binary_js_1.toBinary)(messageDesc, message, options));\n return writer.finish();\n}\n/**\n * Parse a stream of size-delimited messages.\n *\n * A size-delimited message is a varint size in bytes, followed by exactly\n * that many bytes of a message serialized with the binary format.\n *\n * This size-delimited format is compatible with other implementations.\n * For details, see https://github.com/protocolbuffers/protobuf/issues/10229\n */\nfunction sizeDelimitedDecodeStream(messageDesc, iterable, options) {\n return __asyncGenerator(this, arguments, function* sizeDelimitedDecodeStream_1() {\n var _a, e_1, _b, _c;\n // append chunk to buffer, returning updated buffer\n function append(buffer, chunk) {\n const n = new Uint8Array(buffer.byteLength + chunk.byteLength);\n n.set(buffer);\n n.set(chunk, buffer.length);\n return n;\n }\n let buffer = new Uint8Array(0);\n try {\n for (var _d = true, iterable_1 = __asyncValues(iterable), iterable_1_1; iterable_1_1 = yield __await(iterable_1.next()), _a = iterable_1_1.done, !_a; _d = true) {\n _c = iterable_1_1.value;\n _d = false;\n const chunk = _c;\n buffer = append(buffer, chunk);\n for (;;) {\n const size = sizeDelimitedPeek(buffer);\n if (size.eof) {\n // size is incomplete, buffer more data\n break;\n }\n if (size.offset + size.size > buffer.byteLength) {\n // message is incomplete, buffer more data\n break;\n }\n yield yield __await((0, from_binary_js_1.fromBinary)(messageDesc, buffer.subarray(size.offset, size.offset + size.size), options));\n buffer = buffer.subarray(size.offset + size.size);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_1.return)) yield __await(_b.call(iterable_1));\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (buffer.byteLength > 0) {\n throw new Error(\"incomplete data\");\n }\n });\n}\n/**\n * Decodes the size from the given size-delimited message, which may be\n * incomplete.\n *\n * Returns an object with the following properties:\n * - size: The size of the delimited message in bytes\n * - offset: The offset in the given byte array where the message starts\n * - eof: true\n *\n * If the size-delimited data does not include all bytes of the varint size,\n * the following object is returned:\n * - size: null\n * - offset: null\n * - eof: false\n *\n * This function can be used to implement parsing of size-delimited messages\n * from a stream.\n */\nfunction sizeDelimitedPeek(data) {\n const sizeEof = { eof: true, size: null, offset: null };\n for (let i = 0; i < 10; i++) {\n if (i > data.byteLength) {\n return sizeEof;\n }\n if ((data[i] & 0x80) == 0) {\n const reader = new binary_encoding_js_1.BinaryReader(data);\n let size;\n try {\n size = reader.uint32();\n }\n catch (e) {\n if (e instanceof RangeError) {\n return sizeEof;\n }\n throw e;\n }\n return {\n eof: false,\n size,\n offset: reader.pos,\n };\n }\n }\n throw new Error(\"invalid varint\");\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.configureTextEncoding = configureTextEncoding;\nexports.getTextEncoding = getTextEncoding;\nconst symbol = Symbol.for(\"@bufbuild/protobuf/text-encoding\");\n/**\n * Protobuf-ES requires the Text Encoding API to convert UTF-8 from and to\n * binary. This WHATWG API is widely available, but it is not part of the\n * ECMAScript standard. On runtimes where it is not available, use this\n * function to provide your own implementation.\n *\n * Note that the Text Encoding API does not provide a way to validate UTF-8.\n * Our implementation falls back to use encodeURIComponent().\n */\nfunction configureTextEncoding(textEncoding) {\n globalThis[symbol] = textEncoding;\n}\nfunction getTextEncoding() {\n if (globalThis[symbol] == undefined) {\n const te = new globalThis.TextEncoder();\n const td = new globalThis.TextDecoder();\n globalThis[symbol] = {\n encodeUtf8(text) {\n return te.encode(text);\n },\n decodeUtf8(bytes) {\n return td.decode(bytes);\n },\n checkUtf8(text) {\n try {\n encodeURIComponent(text);\n return true;\n }\n catch (e) {\n return false;\n }\n },\n };\n }\n return globalThis[symbol];\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseTextFormatEnumValue = parseTextFormatEnumValue;\nexports.parseTextFormatScalarValue = parseTextFormatScalarValue;\nconst descriptors_js_1 = require(\"../descriptors.js\");\nconst proto_int64_js_1 = require(\"../proto-int64.js\");\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/**\n * Parse an enum value from the Protobuf text format.\n *\n * @private\n */\nfunction parseTextFormatEnumValue(descEnum, value) {\n const enumValue = descEnum.values.find((v) => v.name === value);\n if (!enumValue) {\n throw new Error(`cannot parse ${descEnum} default value: ${value}`);\n }\n return enumValue.number;\n}\n/**\n * Parse a scalar value from the Protobuf text format.\n *\n * @private\n */\nfunction parseTextFormatScalarValue(type, value) {\n switch (type) {\n case descriptors_js_1.ScalarType.STRING:\n return value;\n case descriptors_js_1.ScalarType.BYTES: {\n const u = unescapeBytesDefaultValue(value);\n if (u === false) {\n throw new Error(`cannot parse ${descriptors_js_1.ScalarType[type]} default value: ${value}`);\n }\n return u;\n }\n case descriptors_js_1.ScalarType.INT64:\n case descriptors_js_1.ScalarType.SFIXED64:\n case descriptors_js_1.ScalarType.SINT64:\n return proto_int64_js_1.protoInt64.parse(value);\n case descriptors_js_1.ScalarType.UINT64:\n case descriptors_js_1.ScalarType.FIXED64:\n return proto_int64_js_1.protoInt64.uParse(value);\n case descriptors_js_1.ScalarType.DOUBLE:\n case descriptors_js_1.ScalarType.FLOAT:\n switch (value) {\n case \"inf\":\n return Number.POSITIVE_INFINITY;\n case \"-inf\":\n return Number.NEGATIVE_INFINITY;\n case \"nan\":\n return Number.NaN;\n default:\n return parseFloat(value);\n }\n case descriptors_js_1.ScalarType.BOOL:\n return value === \"true\";\n case descriptors_js_1.ScalarType.INT32:\n case descriptors_js_1.ScalarType.UINT32:\n case descriptors_js_1.ScalarType.SINT32:\n case descriptors_js_1.ScalarType.FIXED32:\n case descriptors_js_1.ScalarType.SFIXED32:\n return parseInt(value, 10);\n }\n}\n/**\n * Parses a text-encoded default value (proto2) of a BYTES field.\n */\nfunction unescapeBytesDefaultValue(str) {\n const b = [];\n const input = {\n tail: str,\n c: \"\",\n next() {\n if (this.tail.length == 0) {\n return false;\n }\n this.c = this.tail[0];\n this.tail = this.tail.substring(1);\n return true;\n },\n take(n) {\n if (this.tail.length >= n) {\n const r = this.tail.substring(0, n);\n this.tail = this.tail.substring(n);\n return r;\n }\n return false;\n },\n };\n while (input.next()) {\n switch (input.c) {\n case \"\\\\\":\n if (input.next()) {\n switch (input.c) {\n case \"\\\\\":\n b.push(input.c.charCodeAt(0));\n break;\n case \"b\":\n b.push(0x08);\n break;\n case \"f\":\n b.push(0x0c);\n break;\n case \"n\":\n b.push(0x0a);\n break;\n case \"r\":\n b.push(0x0d);\n break;\n case \"t\":\n b.push(0x09);\n break;\n case \"v\":\n b.push(0x0b);\n break;\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\": {\n const s = input.c;\n const t = input.take(2);\n if (t === false) {\n return false;\n }\n const n = parseInt(s + t, 8);\n if (isNaN(n)) {\n return false;\n }\n b.push(n);\n break;\n }\n case \"x\": {\n const s = input.c;\n const t = input.take(2);\n if (t === false) {\n return false;\n }\n const n = parseInt(s + t, 16);\n if (isNaN(n)) {\n return false;\n }\n b.push(n);\n break;\n }\n case \"u\": {\n const s = input.c;\n const t = input.take(4);\n if (t === false) {\n return false;\n }\n const n = parseInt(s + t, 16);\n if (isNaN(n)) {\n return false;\n }\n const chunk = new Uint8Array(4);\n const view = new DataView(chunk.buffer);\n view.setInt32(0, n, true);\n b.push(chunk[0], chunk[1], chunk[2], chunk[3]);\n break;\n }\n case \"U\": {\n const s = input.c;\n const t = input.take(8);\n if (t === false) {\n return false;\n }\n const tc = proto_int64_js_1.protoInt64.uEnc(s + t);\n const chunk = new Uint8Array(8);\n const view = new DataView(chunk.buffer);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n b.push(chunk[0], chunk[1], chunk[2], chunk[3], chunk[4], chunk[5], chunk[6], chunk[7]);\n break;\n }\n }\n }\n break;\n default:\n b.push(input.c.charCodeAt(0));\n }\n }\n return new Uint8Array(b);\n}\n","\"use strict\";\n// Copyright 2008 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n// Code generated by the Protocol Buffer compiler is owned by the owner\n// of the input file used when generating it. This code is not\n// standalone and requires a support library to be linked with it. This\n// support library is itself covered by the above license.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.varint64read = varint64read;\nexports.varint64write = varint64write;\nexports.int64FromString = int64FromString;\nexports.int64ToString = int64ToString;\nexports.uInt64ToString = uInt64ToString;\nexports.varint32write = varint32write;\nexports.varint32read = varint32read;\n/* eslint-disable prefer-const,@typescript-eslint/restrict-plus-operands */\n/**\n * Read a 64 bit varint as two JS numbers.\n *\n * Returns tuple:\n * [0]: low bits\n * [1]: high bits\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L175\n */\nfunction varint64read() {\n let lowBits = 0;\n let highBits = 0;\n for (let shift = 0; shift < 28; shift += 7) {\n let b = this.buf[this.pos++];\n lowBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n let middleByte = this.buf[this.pos++];\n // last four bits of the first 32 bit number\n lowBits |= (middleByte & 0x0f) << 28;\n // 3 upper bits are part of the next 32 bit number\n highBits = (middleByte & 0x70) >> 4;\n if ((middleByte & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n for (let shift = 3; shift <= 31; shift += 7) {\n let b = this.buf[this.pos++];\n highBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n throw new Error(\"invalid varint\");\n}\n/**\n * Write a 64 bit varint, given as two JS numbers, to the given bytes array.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/writer.js#L344\n */\nfunction varint64write(lo, hi, bytes) {\n for (let i = 0; i < 28; i = i + 7) {\n const shift = lo >>> i;\n const hasNext = !(shift >>> 7 == 0 && hi == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n const splitBits = ((lo >>> 28) & 0x0f) | ((hi & 0x07) << 4);\n const hasMoreBits = !(hi >> 3 == 0);\n bytes.push((hasMoreBits ? splitBits | 0x80 : splitBits) & 0xff);\n if (!hasMoreBits) {\n return;\n }\n for (let i = 3; i < 31; i = i + 7) {\n const shift = hi >>> i;\n const hasNext = !(shift >>> 7 == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n bytes.push((hi >>> 31) & 0x01);\n}\n// constants for binary math\nconst TWO_PWR_32_DBL = 0x100000000;\n/**\n * Parse decimal string of 64 bit integer value as two JS numbers.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nfunction int64FromString(dec) {\n // Check for minus sign.\n const minus = dec[0] === \"-\";\n if (minus) {\n dec = dec.slice(1);\n }\n // Work 6 decimal digits at a time, acting like we're converting base 1e6\n // digits to binary. This is safe to do with floating point math because\n // Number.isSafeInteger(ALL_32_BITS * 1e6) == true.\n const base = 1e6;\n let lowBits = 0;\n let highBits = 0;\n function add1e6digit(begin, end) {\n // Note: Number('') is 0.\n const digit1e6 = Number(dec.slice(begin, end));\n highBits *= base;\n lowBits = lowBits * base + digit1e6;\n // Carry bits from lowBits to\n if (lowBits >= TWO_PWR_32_DBL) {\n highBits = highBits + ((lowBits / TWO_PWR_32_DBL) | 0);\n lowBits = lowBits % TWO_PWR_32_DBL;\n }\n }\n add1e6digit(-24, -18);\n add1e6digit(-18, -12);\n add1e6digit(-12, -6);\n add1e6digit(-6);\n return minus ? negate(lowBits, highBits) : newBits(lowBits, highBits);\n}\n/**\n * Losslessly converts a 64-bit signed integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nfunction int64ToString(lo, hi) {\n let bits = newBits(lo, hi);\n // If we're treating the input as a signed value and the high bit is set, do\n // a manual two's complement conversion before the decimal conversion.\n const negative = bits.hi & 0x80000000;\n if (negative) {\n bits = negate(bits.lo, bits.hi);\n }\n const result = uInt64ToString(bits.lo, bits.hi);\n return negative ? \"-\" + result : result;\n}\n/**\n * Losslessly converts a 64-bit unsigned integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nfunction uInt64ToString(lo, hi) {\n ({ lo, hi } = toUnsigned(lo, hi));\n // Skip the expensive conversion if the number is small enough to use the\n // built-in conversions.\n // Number.MAX_SAFE_INTEGER = 0x001FFFFF FFFFFFFF, thus any number with\n // highBits <= 0x1FFFFF can be safely expressed with a double and retain\n // integer precision.\n // Proven by: Number.isSafeInteger(0x1FFFFF * 2**32 + 0xFFFFFFFF) == true.\n if (hi <= 0x1fffff) {\n return String(TWO_PWR_32_DBL * hi + lo);\n }\n // What this code is doing is essentially converting the input number from\n // base-2 to base-1e7, which allows us to represent the 64-bit range with\n // only 3 (very large) digits. Those digits are then trivial to convert to\n // a base-10 string.\n // The magic numbers used here are -\n // 2^24 = 16777216 = (1,6777216) in base-1e7.\n // 2^48 = 281474976710656 = (2,8147497,6710656) in base-1e7.\n // Split 32:32 representation into 16:24:24 representation so our\n // intermediate digits don't overflow.\n const low = lo & 0xffffff;\n const mid = ((lo >>> 24) | (hi << 8)) & 0xffffff;\n const high = (hi >> 16) & 0xffff;\n // Assemble our three base-1e7 digits, ignoring carries. The maximum\n // value in a digit at this step is representable as a 48-bit integer, which\n // can be stored in a 64-bit floating point number.\n let digitA = low + mid * 6777216 + high * 6710656;\n let digitB = mid + high * 8147497;\n let digitC = high * 2;\n // Apply carries from A to B and from B to C.\n const base = 10000000;\n if (digitA >= base) {\n digitB += Math.floor(digitA / base);\n digitA %= base;\n }\n if (digitB >= base) {\n digitC += Math.floor(digitB / base);\n digitB %= base;\n }\n // If digitC is 0, then we should have returned in the trivial code path\n // at the top for non-safe integers. Given this, we can assume both digitB\n // and digitA need leading zeros.\n return (digitC.toString() +\n decimalFrom1e7WithLeadingZeros(digitB) +\n decimalFrom1e7WithLeadingZeros(digitA));\n}\nfunction toUnsigned(lo, hi) {\n return { lo: lo >>> 0, hi: hi >>> 0 };\n}\nfunction newBits(lo, hi) {\n return { lo: lo | 0, hi: hi | 0 };\n}\n/**\n * Returns two's compliment negation of input.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Signed_32-bit_integers\n */\nfunction negate(lowBits, highBits) {\n highBits = ~highBits;\n if (lowBits) {\n lowBits = ~lowBits + 1;\n }\n else {\n // If lowBits is 0, then bitwise-not is 0xFFFFFFFF,\n // adding 1 to that, results in 0x100000000, which leaves\n // the low bits 0x0 and simply adds one to the high bits.\n highBits += 1;\n }\n return newBits(lowBits, highBits);\n}\n/**\n * Returns decimal representation of digit1e7 with leading zeros.\n */\nconst decimalFrom1e7WithLeadingZeros = (digit1e7) => {\n const partial = String(digit1e7);\n return \"0000000\".slice(partial.length) + partial;\n};\n/**\n * Write a 32 bit varint, signed or unsigned. Same as `varint64write(0, value, bytes)`\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/1b18833f4f2a2f681f4e4a25cdf3b0a43115ec26/js/binary/encoder.js#L144\n */\nfunction varint32write(value, bytes) {\n if (value >= 0) {\n // write value as varint 32\n while (value > 0x7f) {\n bytes.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n bytes.push(value);\n }\n else {\n for (let i = 0; i < 9; i++) {\n bytes.push((value & 127) | 128);\n value = value >> 7;\n }\n bytes.push(1);\n }\n}\n/**\n * Read an unsigned 32 bit varint.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L220\n */\nfunction varint32read() {\n let b = this.buf[this.pos++];\n let result = b & 0x7f;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 7;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 14;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 21;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n // Extract only last 4 bits\n b = this.buf[this.pos++];\n result |= (b & 0x0f) << 28;\n for (let readBytes = 5; (b & 0x80) !== 0 && readBytes < 10; readBytes++)\n b = this.buf[this.pos++];\n if ((b & 0x80) != 0)\n throw new Error(\"invalid varint\");\n this.assertBounds();\n // Result can have 32 bits, convert it to unsigned\n return result >>> 0;\n}\n","\"use strict\";\n// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isWrapper = isWrapper;\nexports.isWrapperDesc = isWrapperDesc;\nfunction isWrapper(arg) {\n return isWrapperTypeName(arg.$typeName);\n}\nfunction isWrapperDesc(messageDesc) {\n const f = messageDesc.fields[0];\n return (isWrapperTypeName(messageDesc.typeName) &&\n f !== undefined &&\n f.fieldKind == \"scalar\" &&\n f.name == \"value\" &&\n f.number == 1);\n}\nfunction isWrapperTypeName(name) {\n return (name.startsWith(\"google.protobuf.\") &&\n [\n \"DoubleValue\",\n \"FloatValue\",\n \"Int64Value\",\n \"UInt64Value\",\n \"Int32Value\",\n \"UInt32Value\",\n \"BoolValue\",\n \"StringValue\",\n \"BytesValue\",\n ].includes(name.substring(16)));\n}\n","'use strict';\n\nvar possibleNames = require('possible-typed-array-names');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\n/** @type {import('.')} */\nmodule.exports = function availableTypedArrays() {\n\tvar /** @type {ReturnType} */ out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\t// @ts-expect-error\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdO = {};","var webpackQueues = typeof Symbol === \"function\" ? Symbol(\"webpack queues\") : \"__webpack_queues__\";\nvar webpackExports = typeof Symbol === \"function\" ? Symbol(\"webpack exports\") : \"__webpack_exports__\";\nvar webpackError = typeof Symbol === \"function\" ? Symbol(\"webpack error\") : \"__webpack_error__\";\nvar resolveQueue = (queue) => {\n\tif(queue && queue.d < 1) {\n\t\tqueue.d = 1;\n\t\tqueue.forEach((fn) => (fn.r--));\n\t\tqueue.forEach((fn) => (fn.r-- ? fn.r++ : fn()));\n\t}\n}\nvar wrapDeps = (deps) => (deps.map((dep) => {\n\tif(dep !== null && typeof dep === \"object\") {\n\t\tif(dep[webpackQueues]) return dep;\n\t\tif(dep.then) {\n\t\t\tvar queue = [];\n\t\t\tqueue.d = 0;\n\t\t\tdep.then((r) => {\n\t\t\t\tobj[webpackExports] = r;\n\t\t\t\tresolveQueue(queue);\n\t\t\t}, (e) => {\n\t\t\t\tobj[webpackError] = e;\n\t\t\t\tresolveQueue(queue);\n\t\t\t});\n\t\t\tvar obj = {};\n\t\t\tobj[webpackQueues] = (fn) => (fn(queue));\n\t\t\treturn obj;\n\t\t}\n\t}\n\tvar ret = {};\n\tret[webpackQueues] = x => {};\n\tret[webpackExports] = dep;\n\treturn ret;\n}));\n__webpack_require__.a = (module, body, hasAwait) => {\n\tvar queue;\n\thasAwait && ((queue = []).d = -1);\n\tvar depQueues = new Set();\n\tvar exports = module.exports;\n\tvar currentDeps;\n\tvar outerResolve;\n\tvar reject;\n\tvar promise = new Promise((resolve, rej) => {\n\t\treject = rej;\n\t\touterResolve = resolve;\n\t});\n\tpromise[webpackExports] = exports;\n\tpromise[webpackQueues] = (fn) => (queue && fn(queue), depQueues.forEach(fn), promise[\"catch\"](x => {}));\n\tmodule.exports = promise;\n\tbody((deps) => {\n\t\tcurrentDeps = wrapDeps(deps);\n\t\tvar fn;\n\t\tvar getResult = () => (currentDeps.map((d) => {\n\t\t\tif(d[webpackError]) throw d[webpackError];\n\t\t\treturn d[webpackExports];\n\t\t}))\n\t\tvar promise = new Promise((resolve) => {\n\t\t\tfn = () => (resolve(getResult));\n\t\t\tfn.r = 0;\n\t\t\tvar fnQueue = (q) => (q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn))));\n\t\t\tcurrentDeps.map((dep) => (dep[webpackQueues](fnQueue)));\n\t\t});\n\t\treturn fn.r ? promise : getResult();\n\t}, (err) => ((err ? reject(promise[webpackError] = err) : outerResolve(exports)), resolveQueue(queue)));\n\tqueue && queue.d < 0 && (queue.d = 0);\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","","// startup\n// Load entry module and return exports\n// This entry module used 'module' so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./js/index.js\");\n",""],"names":[],"sourceRoot":""} \ No newline at end of file